From 0e15f97c77465aed3b41eb944cf7e720ea264992 Mon Sep 17 00:00:00 2001 From: Bottersnike Date: Wed, 12 Jan 2022 21:12:23 +0000 Subject: [PATCH] Bits and bobs --- templates/pages/_keys.html | 10 + templates/pages/cardid.html | 3 +- templates/pages/index.html | 13 +- templates/pages/server.html | 2 + templates/pages/smartea.html | 209 + .../smartea.op2_common.get_music_info.html | 3728 +++++++++++++++++ templates/pages/transport.html | 2 +- 7 files changed, 3959 insertions(+), 8 deletions(-) create mode 100644 templates/pages/_keys.html create mode 100644 templates/pages/smartea.html create mode 100644 templates/pages/smartea.op2_common.get_music_info.html diff --git a/templates/pages/_keys.html b/templates/pages/_keys.html new file mode 100644 index 0000000..958ea55 --- /dev/null +++ b/templates/pages/_keys.html @@ -0,0 +1,10 @@ + + + + + + + + + +
X-Eamuse-Info69d74627d985ee2187161570d08d93b12455035b6df0d8205df5
cardmng7e924ed8d88464c65cb2deeab0b0b0ca9aca90c2b2e0f242
\ No newline at end of file diff --git a/templates/pages/cardid.html b/templates/pages/cardid.html index ecc66f7..fc6bb3a 100644 --- a/templates/pages/cardid.html +++ b/templates/pages/cardid.html @@ -259,8 +259,7 @@ card[15] = checksum(card) needs doubled. This was presumably done to give the values more range, but I sincerely doubt it adds any additional security.

- +
I'm curious how Bemani implemented this in their own code!

Curiosity is a great thing. Unfortunately, this is code that is implement within the game specific DLL files. diff --git a/templates/pages/index.html b/templates/pages/index.html index 5f10426..a85458c 100644 --- a/templates/pages/index.html +++ b/templates/pages/index.html @@ -8,11 +8,11 @@ going to have to reverse engineer an open source project (or a closed source one, for that matter), I might as well just go reverse engineer an actual game (or it's stdlib, as most of my time has been spent currently).

For the sake of being lazy, I'll probably end up calling it eAmuse more than anything else throughout these - pages. Other names you may come across include httpac* and xrpc. The latter are the - suite of HTTP functions used in the Bemani stdlib, and the name of their communication protocol they implement - at the application layer, but whenever someone refers to any of them in the context of a rhythm game, they will - be referring to the things documented here.
- *I believe httpac is the official name for the protocol internally. + pages. Other names you may come across include httpac and xrpc*. The former is the + suite of HTTP functions used in the Bemani stdlib, and the latter then name of their communication protocol they + implement at the application layer, but whenever someone refers to any of them in the context of a rhythm game, + they will be referring to the things documented here.
+ *I believe xrpc is the officialy used name for the protocol.

These pages are very much a work in progress, and are being written as I reverse engineer parts of the protocol. I've been asserting all my assumptions by writing my own implementation as I go, however it currently @@ -35,6 +35,9 @@

If you yoink chunks of Python code, attribution is always appreciated, but consider it under CC0 (just don't be that person who tries to take credit for it, yeah?).

+

Assembly and C snippets often come with an accompanying filename and address. If you're interested in learning how + things work in more detail, I'd strongly recommend checking them out. Not all games come with the same version of + files; the provided addresses are for build SDVX build KFC-2019020600, using the default base offset.

Contents

    diff --git a/templates/pages/server.html b/templates/pages/server.html index e3538b2..e29c5be 100644 --- a/templates/pages/server.html +++ b/templates/pages/server.html @@ -12,6 +12,8 @@

    To make matters even easier, none of these endpoints require any functioning logic! It should be noted that to follow along, however, you will need a functioning packet encoder and decoder.

    +

    Quick tangent: If the words "Smart E-Amusement" ring a bell and have you curious, you may be interested in + how that works.

    Groundwork

    Before we get started, there are a few things we need to get out of the way. One potential elephant in the room is how we tell games to use our server. You may have configured this thousands of times, or maybe this is your first diff --git a/templates/pages/smartea.html b/templates/pages/smartea.html new file mode 100644 index 0000000..25b0d54 --- /dev/null +++ b/templates/pages/smartea.html @@ -0,0 +1,209 @@ +{% extends "base.html" %} +{% block body %} +

    Smart E-Amusement

    +

    So maybe you've turned on that checkbox before, and you're wondering what magic it used? Thankfully, source code for + that tool is actually shipped along with it (provided you have a legitimate copy) so we can have a look.

    +

    ...and that's where the trail runs cold. Upon cracking open the source you will just be faced with walls of hardcoded + binary data. Let's take a serious look at what we have here instead.

    +

    The first important thing to note is that every single reply from easrv is hardcoded. This means their encryption is + also hardcoded, and sure enough the header is hardcoded to 1-53d121c7-a8b3 (in fact, the entire HTTP + header block is a hardcoded string!).

    +

    Many of these responses are only rqeuired by specific games. I've not yet compiled a list of which is for what game, + but consider it a future expansion coming later :).

    +

    services.get

    +
    {% highlight "cxml" %}
    +
    +    
    +        
    +        
    +        
    +        
    +        
    +        
    +        
    +        
    +        
    +        
    +        
    +        
    +        
    +        
    +        
    +        
    +        
    +        
    +    
    +{% endhighlight %}
    + +

    pcbtracker.alive

    +
    {% highlight "cxml" %}
    +
    +    
    +{% endhighlight %}
    + +

    message.get

    +

    Maintenance disabled:

    +
    {% highlight "cxml" %}
    +
    +    
    +{% endhighlight %}
    +

    Maintenance enabled:

    +
    {% highlight "cxml" %}
    +
    +    
    +        
    +        
    +    
    +{% endhighlight %}
    + +

    facility.get

    +

    This packet notably has its encoding bytes as 00 FF which to the best of my knowledge is not a valid + encoding. I used Shift-JIS here to decode the location name.

    +
    {% highlight "cxml" %}
    +
    +    
    +    
    +        US-01
    +        US
    +        .
    +        ・ョ・ッ・ョ・・
    +        0
    +    
    +    
    +        .
    +        0
    +    
    +    
    +        1.0.0.127
    +        8888
    +        8888
    +    
    +    
    +        1
    +        .
    +        0
    +        0
    +    
    +    
    +        
    +        0
    +        0
    +        1000000
    +        
    +        
    +        http://localhost
    +        http://localhost
    +        http://localhost
    +        http://localhost
    +        http://localhost
    +        
    +    
    +    
    +{% endhighlight %}
    + +

    pcbevent.put

    +
    {% highlight "cxml" %}
    +
    +    
    +{% endhighlight %}
    + +

    package.list

    +
    {% highlight "cxml" %}
    +
    +    
    +{% endhighlight %}
    + +

    tax.get_phase

    +
    {% highlight "cxml" %}
    +
    +    
    +        0
    +    
    +{% endhighlight %}
    + +

    eventlog.write

    +
    {% highlight "cxml" %}
    +
    +    
    +        1
    +        0
    +        0
    +        0
    +    
    +{% endhighlight %}
    + +

    machine.get_control

    +
    {% highlight "cxml" %}
    +
    +    
    +        
    +            nop
    +        
    +    
    +{% endhighlight %}
    + +

    info2.common

    +
    {% highlight "cxml" %}
    +
    +    
    +        
    +    
    +{% endhighlight %}
    + +

    pcb2.boot

    +
    {% highlight "cxml" %}
    +
    +    
    +        
    +            AS
    +            1
    +            0
    +            0
    +        
    +    
    +{% endhighlight %}
    + +

    pcb2.error

    +
    {% highlight "cxml" %}
    +
    +    
    +{% endhighlight %}
    + +

    system.getmaster

    +

    Just an error response unless the game is one of...

    +

    Steel Chronicle (KGG-*):

    +
    {% highlight "cxml" %}
    +
    +    
    +        1
    +        MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
    +        MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
    +        1120367223
    +    
    +{% endhighlight %}
    +

    Metal Gear Arcade (I36-*):

    +
    {% highlight "cxml" %}
    +
    +    
    +        1
    +        MjAxMTA4MTAwMDoxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MToxOjE6MQ==
    +        MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
    +        1120367223
    +    
    +{% endhighlight %}
    + +

    hdkoperation.get

    +

    Only used by Steel Chronicle as far as I can tell

    +
    {% highlight "cxml" %}
    +
    +    
    +        1
    +        0,0,0,0,0,0,0,0,0
    +    
    +{% endhighlight %}
    + +

    op2_common.get_music_info

    +

    This one is really long. It's got its own dedicated + page if you really want to see it anyway.

    +

    It appears to be specifically for Nostalgia Op.2, however this may be incorrect.

    +{% endblock %} \ No newline at end of file diff --git a/templates/pages/smartea.op2_common.get_music_info.html b/templates/pages/smartea.op2_common.get_music_info.html new file mode 100644 index 0000000..e07a82e --- /dev/null +++ b/templates/pages/smartea.op2_common.get_music_info.html @@ -0,0 +1,3728 @@ +{% extends "base.html" %} +{% block body %} +

    op2_common.get_music_info

    +
    {% highlight "cxml" %}
    +
    +    
    +        
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                200
    +                4000
    +                1
    +                1
    +                1
    +                1
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-03-15 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-08-22 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-07-18 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                200
    +                4000
    +                1
    +                1
    +                1
    +                1
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                250
    +                5000
    +                1
    +                1
    +                1
    +                1
    +                2019-07-04 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                700
    +                21000
    +                1
    +                1
    +                1
    +                1
    +                2018-11-21 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                250
    +                5000
    +                1
    +                1
    +                1
    +                1
    +                2019-05-02 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-03-01 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2019-01-17 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-03-01 10:00
    +                2020-02-01 05:00
    +                250
    +                5000
    +                1
    +                1
    +                1
    +                1
    +                2018-10-25 10:00
    +                2020-02-01 05:00
    +            
    +            
    +                2017-03-01 10:00
    +                2020-02-01 05:00
    +                250
    +                5000
    +                1
    +                1
    +                1
    +                1
    +                2018-11-08 10:00
    +                2020-02-01 05:00
    +            
    +            
    +                2017-03-01 10:00
    +                2020-02-01 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-03-28 10:00
    +                2022-02-28 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                250
    +                5000
    +                1
    +                1
    +                1
    +                1
    +                2019-08-08 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                500
    +                15000
    +                1
    +                1
    +                1
    +                1
    +                2019-08-29 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                500
    +                15000
    +                1
    +                1
    +                1
    +                1
    +                2019-08-15 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-04-25 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2018-11-08 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-03-01 10:00
    +                2020-02-01 05:00
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-06-13 10:00
    +                2020-02-01 05:00
    +            
    +            
    +                2017-03-01 10:00
    +                2020-02-01 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-03-15 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                500
    +                15000
    +                1
    +                1
    +                1
    +                1
    +                2018-12-25 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2019-11-01 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2019-09-19 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                500
    +                15000
    +                1
    +                1
    +                1
    +                1
    +                2019-10-17 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                700
    +                21000
    +                1
    +                1
    +                1
    +                1
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-03-01 10:00
    +                2020-02-01 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-08-15 10:00
    +                2022-02-14 05:00
    +            
    +            
    +                2017-03-01 10:00
    +                2020-02-01 05:00
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-04-18 10:00
    +                2020-01-29 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-05-02 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-09-05 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-10-03 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-10-24 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                250
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2018-10-18 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-03-02 10:00
    +                2020-02-02 05:00
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-06-13 10:00
    +                2020-02-01 05:00
    +            
    +            
    +                2017-03-01 10:00
    +                2020-02-01 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-03-02 10:00
    +                2020-02-02 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-03-15 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-03-15 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2020-04-01 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-03-15 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2020-04-01 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-03-15 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2020-04-01 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-03-15 10:00
    +                9999-12-31 23:59
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2020-04-01 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-03-15 10:00
    +                9999-12-31 23:59
    +                800
    +                24000
    +                1
    +                1
    +                0
    +                1
    +                2020-04-01 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                700
    +                21000
    +                1
    +                1
    +                1
    +                1
    +                2019-01-31 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                500
    +                15000
    +                1
    +                1
    +                1
    +                1
    +                2019-08-08 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2019-08-01 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2018-11-21 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-05-30 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-04-04 10:00
    +                2020-03-04 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-03-15 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-04-19 10:00
    +                2020-03-19 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-03-15 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-08-24 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-06-01 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-01-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-06-01 10:00
    +                2020-05-01 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-06-01 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-06-15 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-06-15 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-06-15 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2019-07-25 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-07-20 10:00
    +                2020-06-20 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-08-10 10:00
    +                2020-07-10 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-07-20 10:00
    +                2020-06-20 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-07-20 10:00
    +                2020-06-20 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-07-20 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-12-06 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-07-20 10:00
    +                2020-06-20 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-07-20 10:00
    +                2020-06-20 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-07-27 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-07-27 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-07-19 07:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-09-06 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-08-22 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-07-20 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-07-20 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-08-15 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-08-10 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-07-20 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-07-27 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2018-11-21 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-08-03 10:00
    +                2020-07-03 05:00
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2018-11-21 10:00
    +                2020-07-02 23:59
    +            
    +            
    +                2017-08-03 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-08-10 10:00
    +                2020-07-10 05:00
    +                250
    +                5000
    +                1
    +                1
    +                1
    +                1
    +                2018-09-25 10:00
    +                2020-07-09 23:59
    +            
    +            
    +                2017-08-10 10:00
    +                2020-07-10 05:00
    +                250
    +                5000
    +                1
    +                1
    +                1
    +                1
    +                2019-04-18 10:00
    +                2020-07-10 05:00
    +            
    +            
    +                2017-08-10 10:00
    +                2020-07-10 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-08-17 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-08-17 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-08-17 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-08-24 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-08-17 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-08-24 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-09-07 10:00
    +                9999-12-31 23:59
    +                314
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2019-03-14 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-09-14 10:00
    +                2020-08-14 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-09-14 10:00
    +                2020-08-14 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-09-27 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-09-27 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-09-28 10:00
    +                2020-08-28 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-10-03 10:00
    +                2020-09-03 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-10-26 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-11-16 10:00
    +                2020-10-16 05:00
    +                200
    +                4000
    +                1
    +                1
    +                1
    +                1
    +                2018-09-25 10:00
    +                2020-10-08 10:00
    +            
    +            
    +                2017-11-16 10:00
    +                2020-10-16 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-04-26 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2018-11-21 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-10-26 10:00
    +                9999-12-31 23:59
    +                200
    +                4000
    +                1
    +                1
    +                1
    +                1
    +                2018-11-01 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2017-10-19 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-10-19 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-10-19 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-11-23 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-11-08 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-11-08 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-11-29 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-11-29 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-11-29 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-12-21 09:00
    +                2020-11-21 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-12-27 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-12-27 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-12-27 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-01-04 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-12-21 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-12-21 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-12-21 09:00
    +                2020-11-21 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-12-21 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-12-21 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-12-21 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-02-15 10:00
    +                2021-01-15 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2017-12-21 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-01-18 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-01-24 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-02-01 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                0
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-02-15 10:00
    +                2021-01-15 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-02-14 09:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-02-15 10:00
    +                2021-01-15 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-02-15 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-04-26 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-04-26 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-03-21 10:00
    +                2021-02-21 05:00
    +                250
    +                5000
    +                1
    +                1
    +                1
    +                1
    +                2019-01-17 10:00
    +                2021-02-20 10:00
    +            
    +            
    +                2018-03-14 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-03-21 10:00
    +                2021-02-21 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-03-01 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-03-14 10:00
    +                9999-12-31 23:59
    +                314
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2019-03-14 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2019-03-01 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-03-21 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-03-21 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-03-21 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-03-21 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-04-02 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-04-05 10:00
    +                2021-03-05 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-04-05 10:00
    +                2021-03-05 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-04-26 10:00
    +                2021-03-25 10:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-05-03 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-05-03 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-05-03 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-05-03 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-07-19 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-07-19 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-08-09 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-06-21 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-08-02 10:00
    +                2021-07-02 05:00
    +                200
    +                4000
    +                1
    +                1
    +                1
    +                1
    +                2018-09-25 10:00
    +                2021-07-01 23:59
    +            
    +            
    +                2018-07-05 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-06-21 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-10-18 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-11-01 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-10-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-10-18 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-10-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-11-01 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-11-01 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-08-30 10:00
    +                9999-12-31 23:59
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-08-29 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                1000
    +                30000
    +                1
    +                1
    +                1
    +                1
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2018-09-25 10:00
    +                2021-08-25 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                2021-08-25 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-10-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-10-04 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                500
    +                15000
    +                1
    +                1
    +                1
    +                1
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                500
    +                15000
    +                1
    +                1
    +                1
    +                1
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2019-08-22 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-10-18 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-10-04 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-10-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                2021-08-25 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                2021-08-25 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                2021-08-25 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                2021-08-25 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-09-25 10:00
    +                9999-12-31 23:59
    +                250
    +                5000
    +                1
    +                1
    +                1
    +                1
    +                9999-12-31 23:59
    +                9999-12-31 23:59
    +            
    +            
    +                2018-11-21 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-12-06 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-11-15 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-11-29 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-11-29 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-11-15 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-01-24 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-12-13 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-12-20 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-12-20 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-12-20 10:00
    +                9999-12-31 23:59
    +                700
    +                21000
    +                1
    +                1
    +                1
    +                1
    +                2019-01-31 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2019-01-10 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-01-10 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-01-10 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-01-10 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-01-10 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-03-14 10:00
    +                2022-02-14 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2018-12-25 10:00
    +                2021-11-25 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-03-14 10:00
    +                2022-02-14 05:00
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-04-25 10:00
    +                2022-02-14 05:00
    +            
    +            
    +                2019-04-25 10:00
    +                2022-03-25 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-03-28 10:00
    +                2022-02-28 05:00
    +                400
    +                10000
    +                1
    +                1
    +                1
    +                1
    +                2019-04-25 10:00
    +                2022-02-28 05:00
    +            
    +            
    +                2019-02-14 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-02-21 10:00
    +                9999-12-31 23:59
    +                700
    +                30000
    +                1
    +                1
    +                1
    +                1
    +                2019-02-28 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2019-02-21 10:00
    +                9999-12-31 23:59
    +                700
    +                21000
    +                1
    +                1
    +                1
    +                1
    +                2019-02-28 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2019-02-28 10:00
    +                9999-12-31 23:59
    +                1000
    +                30000
    +                1
    +                1
    +                1
    +                1
    +                2019-02-28 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2019-04-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-04-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-04-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-08-22 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-03-07 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-04-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-03-21 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-03-28 10:00
    +                2022-02-28 05:00
    +                250
    +                5000
    +                1
    +                1
    +                1
    +                1
    +                2019-04-18 10:00
    +                2022-02-28 05:00
    +            
    +            
    +                2019-03-28 10:00
    +                2022-02-28 05:00
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-04-18 10:00
    +                2022-02-28 05:00
    +            
    +            
    +                2019-03-28 10:00
    +                2022-02-28 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-03-28 10:00
    +                2022-02-28 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-03-28 10:00
    +                2022-02-28 05:00
    +                250
    +                5000
    +                1
    +                1
    +                1
    +                1
    +                2019-05-30 10:00
    +                2022-02-28 05:00
    +            
    +            
    +                2019-03-28 10:00
    +                2022-02-28 05:00
    +                300
    +                7500
    +                1
    +                1
    +                1
    +                1
    +                2019-04-25 10:00
    +                2022-02-28 05:00
    +            
    +            
    +                2019-03-27 10:00
    +                9999-12-31 23:59
    +                500
    +                15000
    +                1
    +                1
    +                1
    +                1
    +                2019-04-04 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2019-04-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-04-25 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-04-25 10:00
    +                2022-03-25 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-05-16 10:00
    +                2022-04-16 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-05-09 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-05-23 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-05-23 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-05-09 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-06-06 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-06-06 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-06-20 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-07-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-07-11 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-06-26 10:00
    +                2022-05-26 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-06-26 10:00
    +                2022-05-26 05:00
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-06-26 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-08-07 00:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-08-07 00:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-09-26 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-09-26 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-10-10 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-10-10 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-10-10 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-10-10 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-11-01 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-08-01 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-09-12 10:00
    +                9999-12-31 23:59
    +                500
    +                15000
    +                1
    +                1
    +                1
    +                1
    +                2019-09-12 10:00
    +                9999-12-31 23:59
    +            
    +            
    +                2019-09-12 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-09-12 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-09-12 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-09-12 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-09-12 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-09-12 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-09-12 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +            
    +                2019-09-12 10:00
    +                9999-12-31 23:59
    +                0
    +                0
    +                1
    +                1
    +                1
    +                1
    +                2100-01-01 00:00
    +                2200-01-01 00:00
    +            
    +        
    +        
    +            -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    +            -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    +            -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    +            -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    +        
    +        
    +        
    +        
    +    
    +{% endhighlight %}
    +{% endblock %} diff --git a/templates/pages/transport.html b/templates/pages/transport.html index 94d42da..ad0c921 100644 --- a/templates/pages/transport.html +++ b/templates/pages/transport.html @@ -34,7 +34,7 @@

    Our per-packet key is then generated using md5(serial | salt | KEY). Identifying KEY is left as an exercise for the reader, however should not be especially challenging. Check the page source if you're stuck.

    - +

    LZ77

    Packets are compressed using lzss. The compressed data structure is a repeating cycle of an 8 bit flags byte,