)]}'
{
  "log": [
    {
      "commit": "db8f1a7930c6b5826357646746337dafc983f953",
      "tree": "bff679d611583a71ea1e2faf4bb44fb689679187",
      "parents": [
        "9d70fb1aa2a7193a5c13a76e1be5891bf31a855c"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Mar 21 18:05:03 2020"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Mar 21 18:06:04 2020"
      },
      "message": "Fix `DeprecationWarning: __int__ returned non-int` on Py3\n\nIn `BitString.__int__()`\n"
    },
    {
      "commit": "9d70fb1aa2a7193a5c13a76e1be5891bf31a855c",
      "tree": "b7e71896d61dcd567014eb5aabc9bd32d9dfb5d3",
      "parents": [
        "74978b7b955b76ba685cb8be7a532f0966894a6a"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Mar 14 17:42:16 2020"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Mar 14 17:42:50 2020"
      },
      "message": "Fix tox docs watning\n"
    },
    {
      "commit": "74978b7b955b76ba685cb8be7a532f0966894a6a",
      "tree": "b53d22858696b88a5414eb698361d09a11dddcb5",
      "parents": [
        "0421ec974415354d834d86e55b522d17b8c1005c"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Mar 14 17:36:30 2020"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Mar 14 17:37:12 2020"
      },
      "message": "Fix tox deps inheritance\n"
    },
    {
      "commit": "0421ec974415354d834d86e55b522d17b8c1005c",
      "tree": "f70e7ab0083ea7d1c1d1b4089314b52e97486879",
      "parents": [
        "4078c15c718b3668245ecdb7899f8f4e0c501fb2"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Mar 14 14:44:58 2020"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Mar 14 14:45:32 2020"
      },
      "message": "Run unittests from tox across many Pythons\n"
    },
    {
      "commit": "4078c15c718b3668245ecdb7899f8f4e0c501fb2",
      "tree": "dce3faf8f2030e2aa51e1e6dfe541f18649e4bed",
      "parents": [
        "acb78299d1270a2fea0d11e5509777b7c5777f3f"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Mar 08 18:20:18 2020"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Mar 08 18:22:13 2020"
      },
      "message": "Add tox.ini with some basic runners\n"
    },
    {
      "commit": "acb78299d1270a2fea0d11e5509777b7c5777f3f",
      "tree": "2891457442ed8818b6aa4e6a3bc627891c58d011",
      "parents": [
        "1de0d168bc3a5d7ddf39002d7433743490aed047"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Mar 08 18:12:07 2020"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Mar 08 18:21:47 2020"
      },
      "message": "Advance copyright statement to year 2020\n"
    },
    {
      "commit": "1de0d168bc3a5d7ddf39002d7433743490aed047",
      "tree": "96a51eadeb153af11a32da809b0b9d91fb302448",
      "parents": [
        "6bb6e5b1cc752caf5c08cafca350644c8028dcda"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Dec 15 18:20:18 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 15 18:20:18 2019"
      },
      "message": "Update FUNDING.yml"
    },
    {
      "commit": "6bb6e5b1cc752caf5c08cafca350644c8028dcda",
      "tree": "2dcc4595154391cca29a43c1a2112193d33096ef",
      "parents": [
        "96b0a7742a243dbcdacdcdcc64e141437a40835a"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 23 09:08:00 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 23 09:08:00 2019"
      },
      "message": "Update CHANGES.rst"
    },
    {
      "commit": "96b0a7742a243dbcdacdcdcc64e141437a40835a",
      "tree": "3a085a20e202c339d60cf4cf68b867e2b532e13f",
      "parents": [
        "f10434e31f9293c4e739ac6c5d1519f407bd1540",
        "cda318a63f8d6a3c43408ac8d3dfa405d3ca7c7c"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 23 09:06:57 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 23 09:06:57 2019"
      },
      "message": "Make BER/CER/DER decodersstreaming and suspendible (#176)\n\nThe goal of this change is to make the decoder yielding on input\r\ndata starvation and resuming from where it stopped whenever the\r\ncaller decides to try again (hopefully making sure that some more\r\ninput becomes available).\r\n\r\nThis change makes it possible for the decoder to operate on streams\r\nof data (meaning that the entire DER blob might not be immediately\r\navailable on input).\r\n\r\nOn top of that, the decoder yields partially reconstructed ASN.1\r\nobject on input starvation making it possible for the caller to\r\ninspect what has been decoded so far and possibly consume partial\r\nASN.1 data.\r\n\r\nAll these new feature are natively available through\r\n`StreamingDecoder` class. Previously published API is implemented\r\nas a thin wrapper on top of that ensuring backward compatibility.\r\n"
    },
    {
      "commit": "cda318a63f8d6a3c43408ac8d3dfa405d3ca7c7c",
      "tree": "3a085a20e202c339d60cf4cf68b867e2b532e13f",
      "parents": [
        "2b646e07d5d83f0892fa2a809ae4c981430cb12c"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 23 09:06:42 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 23 09:06:42 2019"
      },
      "message": "Update CHANGES.rst"
    },
    {
      "commit": "2b646e07d5d83f0892fa2a809ae4c981430cb12c",
      "tree": "20b10450bced84c425ca0735b4ee7202e68ee1ec",
      "parents": [
        "788af3c44edc2ebd079eda3f7a4ae2f9931446fd",
        "f10434e31f9293c4e739ac6c5d1519f407bd1540"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 23 08:57:24 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 23 08:57:24 2019"
      },
      "message": "Merge branch \u0027master\u0027 into streamoptimum37"
    },
    {
      "commit": "788af3c44edc2ebd079eda3f7a4ae2f9931446fd",
      "tree": "2d06cd815b392ca7f075d4c51b76451677a35742",
      "parents": [
        "fdd0bd66f66e5f7832287ff0994f4219632935a7",
        "317452bd76d711c35a1bbdda54879606dd693268"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 23 08:53:28 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 23 08:53:28 2019"
      },
      "message": "Merge pull request #1 from janpipek/support-incomplete-substrate\n\nTurn BER decoder into a suspendible generator"
    },
    {
      "commit": "f10434e31f9293c4e739ac6c5d1519f407bd1540",
      "tree": "0bf3697ebcdca7c256f0a9c5f8e2cc560b6f19b0",
      "parents": [
        "a867de48b5285334e6adde2f4a43d13b61e7d4e4"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 23 08:50:39 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 23 08:50:39 2019"
      },
      "message": "Prepare to branch 0.4.x\n"
    },
    {
      "commit": "a867de48b5285334e6adde2f4a43d13b61e7d4e4",
      "tree": "7835580567d1d6d34f591038d37886bbec070070",
      "parents": [
        "fcf7c502c49033a31ed27678fd4b93655e9f6f82"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Nov 17 09:35:33 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Nov 17 09:35:33 2019"
      },
      "message": "Add Py3.8 Travis job\n"
    },
    {
      "commit": "fcf7c502c49033a31ed27678fd4b93655e9f6f82",
      "tree": "f0c22c4be1c93fd707243990fe4cf3496b2e6441",
      "parents": [
        "a7d2ac036866e5f437bd6f9a9f01723f601b4073"
      ],
      "author": {
        "name": "Hugo van Kemenade",
        "email": "hugovk@users.noreply.github.com",
        "time": "Sat Nov 16 19:31:31 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 16 19:31:31 2019"
      },
      "message": "Add support for Python 3.8, drop EOL 3.4 (#182)\n\n* Drop support for EOL Python 3.4\r\n* Remove Py2.5 workarounds\r\n* Change Travis setup to test on default Xenial\r\n* Add support for Python 3.8 and update changelog\r\n"
    },
    {
      "commit": "a7d2ac036866e5f437bd6f9a9f01723f601b4073",
      "tree": "543d918472952d4d7b41ff9ea3ff56fc21b38448",
      "parents": [
        "e51d6f520bdd57748f70b8defc2bda1ddea9856b"
      ],
      "author": {
        "name": "Jon Dufresne",
        "email": "jon.dufresne@gmail.com",
        "time": "Sat Nov 16 18:19:07 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 16 18:19:07 2019"
      },
      "message": "Drop support for EOL Pythons (#131)\n\nPython 2.4, 2.5, 2.6, 3.2 and 3.3 are end of life. They are no longer\r\nreceiving bug fixes, including for security issues. These Pythons went\r\nEOL on:\r\n\r\nPython 2.6: 2013-10-29\r\nPython 3.2: 2016-02-20\r\nPython 3.3: 2017-09-29\r\n\r\nFor additional details on supported Python versions, see:\r\n\r\nhttps://devguide.python.org/#status-of-python-branches\r\n\r\nRemoving support for EOL Pythons will reduce testing and maintenance\r\nresources.\r\n\r\nUsing pypinfo, here are the download statistics of the project for the\r\nlast 30 days, showing limited downloads from EOL Pythons:\r\n\r\n| python_version | percent | download_count |\r\n| -------------- | ------: | -------------: |\r\n| 2.7            |  90.33% |      7,975,885 |\r\n| 3.6            |   4.95% |        437,261 |\r\n| 3.5            |   2.99% |        263,637 |\r\n| 3.4            |   1.02% |         89,723 |\r\n| 2.6            |   0.69% |         60,511 |\r\n| 3.7            |   0.02% |          2,024 |\r\n| 3.3            |   0.00% |            441 |\r\n| 3.2            |   0.00% |             38 |\r\n| 3.8            |   0.00% |              9 |\r\n| None           |   0.00% |              2 |\r\n\r\nBy removing support for older Pythons, can remove or update the\r\nfollowing workarounds and code:\r\n\r\n* Built-in function bin() is always available.\r\n* Built-in function callable() is always available.\r\n* Built-in function all() is always available.\r\n* The collections.OrderedDict class is always available.\r\n* The datetime.strptime() method is always available.\r\n* The platform module is always available.\r\n* The string.partition() method is always available.\r\n* The NullHandler class is always available.\r\n* The method .__trunc__() is always available.\r\n* Can use set literals.\r\n* Updated unittest is always available. The unittest2 module is\r\n  unnecessary.\r\n\r\nUsers on older versions of Python can continue to download, install, and\r\nuse older versions of the library that continue to have support for\r\nolder Pythons."
    },
    {
      "commit": "e51d6f520bdd57748f70b8defc2bda1ddea9856b",
      "tree": "1dfe24c8ad09fbabe11efc31a0a122c8fad4c145",
      "parents": [
        "70c1bbde72f8b53f82ed1a7e00cb98fe51c1455f"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 16 17:35:13 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 16 17:35:13 2019"
      },
      "message": "Prepare for 0.5.0\n"
    },
    {
      "commit": "70c1bbde72f8b53f82ed1a7e00cb98fe51c1455f",
      "tree": "f826f713315c6a8f7f63cd5ecb23ec10c735822a",
      "parents": [
        "c42c23e62f55910f73acc9777e5a7777a3987427"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 16 17:12:43 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 16 17:12:43 2019"
      },
      "message": "Release 0.4.8\n"
    },
    {
      "commit": "317452bd76d711c35a1bbdda54879606dd693268",
      "tree": "2d06cd815b392ca7f075d4c51b76451677a35742",
      "parents": [
        "8393983359edc25b75cbe07f0d4c13497285aa71"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 16 17:02:12 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 16 17:02:12 2019"
      },
      "message": "Pass `tagMap` and `typeMap` to decoder instance\n\nThis change should simplify decoder specialization by means\nof parameterization in addition to subclassing.\n"
    },
    {
      "commit": "8393983359edc25b75cbe07f0d4c13497285aa71",
      "tree": "78a3a65bd81653b9a3f06a6562650d82c42fbd1f",
      "parents": [
        "3e802d75b8fc679382d2b37501efb2f38be0518b"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 16 11:06:16 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Nov 16 11:06:16 2019"
      },
      "message": "Refactor codec classes linkage\n\nMake it looking more uniform and easier to override if needed.\n"
    },
    {
      "commit": "3e802d75b8fc679382d2b37501efb2f38be0518b",
      "tree": "d4951c37bd9d354e8d5fd38236b61943880db31a",
      "parents": [
        "f0c228eb638447dffce15bdbfe698b436b06a915"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:52:40 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:52:40 2019"
      },
      "message": "Fix streaming unit test\n"
    },
    {
      "commit": "f0c228eb638447dffce15bdbfe698b436b06a915",
      "tree": "ca761e02a58a174f1fe1a3c004e6253b6ff0318f",
      "parents": [
        "3318f76a16ce30abc6a74da9739d91a48effea0f",
        "09350693e2fe927b9c0bf9aaf05eda442b57bc9a"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:47:13 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:47:13 2019"
      },
      "message": "Merge branch \u0027support-incomplete-substrate\u0027 of github.com:janpipek/pyasn1 into support-incomplete-substrate\n"
    },
    {
      "commit": "3318f76a16ce30abc6a74da9739d91a48effea0f",
      "tree": "ca761e02a58a174f1fe1a3c004e6253b6ff0318f",
      "parents": [
        "3fb3fcff21d65194c5774cf90042183096bb6f08"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Thu Nov 07 10:19:06 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:39:11 2019"
      },
      "message": "Fix Integer decoder to handle empty payload\n"
    },
    {
      "commit": "3fb3fcff21d65194c5774cf90042183096bb6f08",
      "tree": "7e6b86b174e05a6953b0ba54b69ab15ef24935a0",
      "parents": [
        "b75800d3c5b7b0996f5d19c1787106509882d212"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Thu Oct 03 08:28:52 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:39:11 2019"
      },
      "message": "Reuse `SingleItemDecoder` object in `StreamingDecoder`\n\nTry to reuse `SingleItemDecoder` object to leverage its caches.\n"
    },
    {
      "commit": "b75800d3c5b7b0996f5d19c1787106509882d212",
      "tree": "65955ddc3c4db1efc5ab8b94dc92b65081ffd374",
      "parents": [
        "5283ebbad9905606eb44a8daeb39da34353b3d99"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Oct 01 08:31:21 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:39:11 2019"
      },
      "message": "Add minor performance optimising changes\n"
    },
    {
      "commit": "5283ebbad9905606eb44a8daeb39da34353b3d99",
      "tree": "2973a59019f7e6f97146e2ecebc98a8b42ac917e",
      "parents": [
        "831e97aeb147c31ac44ef38e481aef2a1320fddf"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Oct 01 07:36:51 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:39:11 2019"
      },
      "message": "Optimize `streaming` objects access for performance\n"
    },
    {
      "commit": "831e97aeb147c31ac44ef38e481aef2a1320fddf",
      "tree": "f1a7a410eb601302d14238b5e1f3f09111718b87",
      "parents": [
        "2e6e1ab5d28094dfabcb114a0eca16413ab1ff1b"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Oct 01 07:05:42 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:39:11 2019"
      },
      "message": "Update `streaming.read` docstring\n\nCo-Authored-By: Jan Pipek \u003cjan.pipek@gmail.com\u003e"
    },
    {
      "commit": "2e6e1ab5d28094dfabcb114a0eca16413ab1ff1b",
      "tree": "1b71f765b88676ca804eb0694a74b227fcb42875",
      "parents": [
        "93e11a2dfded950827ba3393b5a4562270a766da"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Oct 01 07:04:50 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:39:11 2019"
      },
      "message": "Update docstring on streaming.read\n\nCo-Authored-By: Jan Pipek \u003cjan.pipek@gmail.com\u003e"
    },
    {
      "commit": "93e11a2dfded950827ba3393b5a4562270a766da",
      "tree": "cddf49a1daa1258d91f348bad30eabc662241bd8",
      "parents": [
        "fdd0bd66f66e5f7832287ff0994f4219632935a7"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Sep 14 16:46:08 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:39:11 2019"
      },
      "message": "Refactor BER decoder into a suspendable coroutine\n\nThe goal of this change is to make the decoder stopping on input\ndata starvation and resuming from where it stopped whenever the\ncaller decides to try again (hopefully making sure that some more\ninput becomes available).\n\nThis change makes it possible for the decoder to operate on streams\nof data (meaning that the entire DER blob might not be immediately\navailable on input).\n\nOn top of that, the decoder yields partially reconstructed ASN.1\nobject on input starvation making it possible for the caller to\ninspect what has been decoded so far and possibly consume partial\nASN.1 data.\n\nAll these new feature are natively available through\n`StreamingDecoder` class. Previously published API is implemented\nas a thin wrapper on top of that ensuring backward compatibility.\n"
    },
    {
      "commit": "fdd0bd66f66e5f7832287ff0994f4219632935a7",
      "tree": "d67eb8a59111fa10d3da77baa8fcc013b4776b36",
      "parents": [
        "6ba15da143da226186b6e92c6a2169c779d21bd8",
        "4d7d55330522f43472e8637c5f9a01778dea0f3a"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:34:40 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:34:40 2019"
      },
      "message": "Merge branch \u0027streamoptimum37\u0027 of github.com:janpipek/pyasn1 into streamoptimum37\n"
    },
    {
      "commit": "6ba15da143da226186b6e92c6a2169c779d21bd8",
      "tree": "d67eb8a59111fa10d3da77baa8fcc013b4776b36",
      "parents": [
        "14a4b3ca144affa9f1b28c83cec4fd861fd256e9"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 13 12:26:37 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "CachingStreamWrapperTestCase\n"
    },
    {
      "commit": "14a4b3ca144affa9f1b28c83cec4fd861fd256e9",
      "tree": "a68ebe64be19332cf0521c46dbf54aa2a61a34c8",
      "parents": [
        "21eb5309fe3c2737b1e2b00f185ae791b5afbe3a"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 13 10:17:40 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "Simplify _CachingStreamWrapper\n"
    },
    {
      "commit": "21eb5309fe3c2737b1e2b00f185ae791b5afbe3a",
      "tree": "6e4494b29842f7a401c4bb5318ad17eb3fcea319",
      "parents": [
        "c547dde3fa555795c6b42c043eea792d390085a9"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 13 09:54:27 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "Hide other auxiliary functions.\n"
    },
    {
      "commit": "c547dde3fa555795c6b42c043eea792d390085a9",
      "tree": "1e43a8f2c5cbdad2b3ffa8a2a89ff8c0a44fdf62",
      "parents": [
        "8446ab5f523cb78707ef3aa0532c29ffda6db9b5"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 13 09:50:54 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "Address several pull requests comments + hide asSeekableStream\n"
    },
    {
      "commit": "8446ab5f523cb78707ef3aa0532c29ffda6db9b5",
      "tree": "bfa2a889b893d25e6755a746a1167d9769eeed2d",
      "parents": [
        "e279319d412c6d7045c8bf90d0d887ed5097ff29"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 15:44:33 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "Additional test on ZIP files\n"
    },
    {
      "commit": "e279319d412c6d7045c8bf90d0d887ed5097ff29",
      "tree": "18ae8ab6056f2a95fab2e535be0af6db82e2f2dc",
      "parents": [
        "21b4e64d28da30d3276228db5f5dd44f493a0092"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 15:27:55 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "Implement _CachedStreamWrapper\n"
    },
    {
      "commit": "21b4e64d28da30d3276228db5f5dd44f493a0092",
      "tree": "5d22cc6312418bcd4e846dd6642e4adf4148c999",
      "parents": [
        "3c5ebb96df4238f81439ae05ca20b5fe3936aab4"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 13:53:10 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "Docstrings in requested format.\n"
    },
    {
      "commit": "3c5ebb96df4238f81439ae05ca20b5fe3936aab4",
      "tree": "2f0fe1b30f17c0f3b2a2cba055e8143728eb015c",
      "parents": [
        "3cf920db9e1c41fe5c4b834a263d3e0fe06e4440"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 13:08:08 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "Trivial changes from the MR.\n"
    },
    {
      "commit": "3cf920db9e1c41fe5c4b834a263d3e0fe06e4440",
      "tree": "2d580af6ae0b7c3b4edee78f6908a01ab3ba8e13",
      "parents": [
        "0005c889b2e9b5a33e0109372c31474da610ebfd"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 11:15:28 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "Update tests with more streams for ber.decoder\n"
    },
    {
      "commit": "0005c889b2e9b5a33e0109372c31474da610ebfd",
      "tree": "c248ffb73f08a4f371ef292d8d84ef1ada43cd90",
      "parents": [
        "5522ba40fd4b0e066cf9415868bfd4aed5508799"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 11:15:03 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "UnsupportedSubstrateError\n"
    },
    {
      "commit": "5522ba40fd4b0e066cf9415868bfd4aed5508799",
      "tree": "998ded1d9993542ce09f9a4df3e43405805a5b74",
      "parents": [
        "acc422a26d61237db975d3b4bbb836fc8b5a6ffb"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 10:43:46 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "Fail with unseekable streams.\n"
    },
    {
      "commit": "acc422a26d61237db975d3b4bbb836fc8b5a6ffb",
      "tree": "e94629e5341c837f519cd7705faafe287bb31261",
      "parents": [
        "7bdade5c71642ad34487db53130cd0c3372dc860"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 06 12:59:50 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "API that work with pyasn1-modules\n"
    },
    {
      "commit": "7bdade5c71642ad34487db53130cd0c3372dc860",
      "tree": "69aa0c1a4a4bc1834a6acda2d7f380eb7c59de95",
      "parents": [
        "c42c23e62f55910f73acc9777e5a7777a3987427"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Wed Aug 28 12:48:26 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Nov 15 18:31:42 2019"
      },
      "message": "Prepare for streams\n\nRewrite Decoder in terms of BytesIO\n\nBER Decoders implemented with BytesIO but for the most complex\n\nBER UniversalConstructedTypeDecoder in terms of BytesIO\n\nBER Decoder (stream-based) suggestion\n\nFixed some of the failing tests\n\nFixed several failed tests\n\nFix all remaining tests but the non-implemented Any\n\nImplement untagged Any with back-seek\n\nFix cer and der to work with streams\n\nSimplify unnecessary added complexity\n\nMake use of IOBase hierarchy (properly?) - in progress\n\nTests failing\n\nFixed most failing tests\n\n1 remaining\n\nSeveraů small optimizations\n\nFix logging\n\nNote: As we do not want to read the whole stream, explicit output of remaining bytes is not used.\n\nRename and document utility functions for BER decoder\n\nFixed ínverted condition in BitStringDecoder.valueDecoder\n\nFixed wrongly acquired fullPosition in AnyDecoder.indefLenValueDecoder\n\nFixed logging None length\n\nendOfStream(BytesIO) working in 2.7\n\nMicrooptimizations for endOfStream (not using it)\n\nTest for checking binary files as substrate\n\nPython 2.7 BytesIO wrapper for `file`s\n\nRefactor keep API compatibility with original version\n"
    },
    {
      "commit": "09350693e2fe927b9c0bf9aaf05eda442b57bc9a",
      "tree": "0c970c360dba3d3a659472b58c5d6815b36e81dc",
      "parents": [
        "0261649b878ccdf6304eb9e9172f45127b882ee3"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Thu Nov 07 10:19:06 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Thu Nov 07 10:19:06 2019"
      },
      "message": "Fix Integer decoder to handle empty payload\n"
    },
    {
      "commit": "c42c23e62f55910f73acc9777e5a7777a3987427",
      "tree": "c0ea5be491d00e8f42734d1f8c7909909cfb63b3",
      "parents": [
        "40d5a7f27b8f56e103cdc83d3a294f02c5eb1496"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Nov 03 23:02:01 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 03 23:02:01 2019"
      },
      "message": "Allow combining constraints operating on sets (#181)\n\nAdded ability of combining `SingleValueConstraint` and\r\n`PermittedAlphabetConstraint` objects into one for proper\r\nmodeling `FROM ... EXCEPT ...` ASN.1 clause."
    },
    {
      "commit": "0261649b878ccdf6304eb9e9172f45127b882ee3",
      "tree": "7cdecdc0f02f53d577236ee8039ae2329d241237",
      "parents": [
        "2aa38f0348e74f1151de8bd6c230d58503e85a9a"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Thu Oct 03 08:28:52 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Thu Oct 03 08:28:52 2019"
      },
      "message": "Reuse `SingleItemDecoder` object in `StreamingDecoder`\n\nTry to reuse `SingleItemDecoder` object to leverage its caches.\n"
    },
    {
      "commit": "2aa38f0348e74f1151de8bd6c230d58503e85a9a",
      "tree": "f007f413ffbe6e993250d771a8c3ec2007d6e158",
      "parents": [
        "cbd65b03b1c68eb42df11261d655d69cb7170ef3"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Oct 01 08:31:21 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Oct 01 08:31:21 2019"
      },
      "message": "Add minor performance optimising changes\n"
    },
    {
      "commit": "cbd65b03b1c68eb42df11261d655d69cb7170ef3",
      "tree": "80a3fe5428d9e0192d754405dd30ed169ae85931",
      "parents": [
        "904ad0a2b6882b12ac5df1bed58beb2bc96422dc"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Oct 01 07:36:51 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Oct 01 07:36:51 2019"
      },
      "message": "Optimize `streaming` objects access for performance\n"
    },
    {
      "commit": "904ad0a2b6882b12ac5df1bed58beb2bc96422dc",
      "tree": "490169eb7a57d275f91466f099b5d80a08f0b84f",
      "parents": [
        "5e5cd761531a32eba2c8e80789358830e83fd66a"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Oct 01 07:05:42 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 01 07:05:42 2019"
      },
      "message": "Update `streaming.read` docstring\n\nCo-Authored-By: Jan Pipek \u003cjan.pipek@gmail.com\u003e"
    },
    {
      "commit": "5e5cd761531a32eba2c8e80789358830e83fd66a",
      "tree": "340311b124c164025ec7178dd7a274c46c610170",
      "parents": [
        "4f644c59bf3ec34a3a8b9cd045dfd7cd1735259f"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Oct 01 07:04:50 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 01 07:04:50 2019"
      },
      "message": "Update docstring on streaming.read\n\nCo-Authored-By: Jan Pipek \u003cjan.pipek@gmail.com\u003e"
    },
    {
      "commit": "4f644c59bf3ec34a3a8b9cd045dfd7cd1735259f",
      "tree": "873f47b66d57f88f57d8b2c24f71df366114e560",
      "parents": [
        "4d7d55330522f43472e8637c5f9a01778dea0f3a"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Sep 14 16:46:08 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Sep 28 21:05:25 2019"
      },
      "message": "Refactor BER decoder into a suspendable coroutine\n\nThe goal of this change is to make the decoder stopping on input\ndata starvation and resuming from where it stopped whenever the\ncaller decides to try again (hopefully making sure that some more\ninput becomes available).\n\nThis change makes it possible for the decoder to operate on streams\nof data (meaning that the entire DER blob might not be immediately\navailable on input).\n\nOn top of that, the decoder yields partially reconstructed ASN.1\nobject on input starvation making it possible for the caller to\ninspect what has been decoded so far and possibly consume partial\nASN.1 data.\n\nAll these new feature are natively available through\n`StreamingDecoder` class. Previously published API is implemented\nas a thin wrapper on top of that ensuring backward compatibility.\n"
    },
    {
      "commit": "4d7d55330522f43472e8637c5f9a01778dea0f3a",
      "tree": "5105f1e1c050b84b82e9a63bc59b57caee852020",
      "parents": [
        "ec49b521106ac9cfa6b3099f8579e69276234103"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 13 12:26:37 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 13 12:26:37 2019"
      },
      "message": "CachingStreamWrapperTestCase\n"
    },
    {
      "commit": "ec49b521106ac9cfa6b3099f8579e69276234103",
      "tree": "d1a0d18c6593d3f6c1e545213eb2d8cab15e7ccf",
      "parents": [
        "0fbc60eba7270f2b30f67b2e3dfbd74b0123340f"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 13 10:17:40 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 13 10:17:40 2019"
      },
      "message": "Simplify _CachingStreamWrapper\n"
    },
    {
      "commit": "0fbc60eba7270f2b30f67b2e3dfbd74b0123340f",
      "tree": "02c852f56eba4810b3dcdee5990ebc2ff0026db0",
      "parents": [
        "4b523401a044e5c7f66068f0057ac9786277eca8"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 13 09:54:27 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 13 09:54:27 2019"
      },
      "message": "Hide other auxiliary functions.\n"
    },
    {
      "commit": "4b523401a044e5c7f66068f0057ac9786277eca8",
      "tree": "e6ee1e10bb315000d435f7c7659c7a985dcfe849",
      "parents": [
        "85b6687e190731cdbde4de437f8e7a79bf6f7676"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 13 09:50:54 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 13 09:50:54 2019"
      },
      "message": "Address several pull requests comments + hide asSeekableStream\n"
    },
    {
      "commit": "40d5a7f27b8f56e103cdc83d3a294f02c5eb1496",
      "tree": "3e3c70258afa606cef690f558a615987ad110ce3",
      "parents": [
        "bac135a0ac35acb6ebefa683541fc34b920f7671"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Sep 10 16:28:11 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Sep 10 16:28:11 2019"
      },
      "message": "Fix failing `OctetString` to unicode conversion tests on Py2\n"
    },
    {
      "commit": "85b6687e190731cdbde4de437f8e7a79bf6f7676",
      "tree": "a914874032db8fad2b8ea2e85db348ccc72bc15f",
      "parents": [
        "e27f97182e859fc6048ff13b028961da578dc340"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 15:44:33 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 15:45:16 2019"
      },
      "message": "Additional test on ZIP files\n"
    },
    {
      "commit": "e27f97182e859fc6048ff13b028961da578dc340",
      "tree": "8c1e509ca01da2fa3c6c96b06a2cddb6e30ae0c6",
      "parents": [
        "043d97d7ecd01da7c5ac43a0e87565ba0f3bd35b"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 15:27:55 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 15:36:22 2019"
      },
      "message": "Implement _CachedStreamWrapper\n"
    },
    {
      "commit": "043d97d7ecd01da7c5ac43a0e87565ba0f3bd35b",
      "tree": "16287ad784f2012872fa1d749c6dd1a6131f1d2a",
      "parents": [
        "56f33ff38a4ba4dedc23e095d509f2f20f373ba2"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 13:53:10 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 13:53:10 2019"
      },
      "message": "Docstrings in requested format.\n"
    },
    {
      "commit": "56f33ff38a4ba4dedc23e095d509f2f20f373ba2",
      "tree": "8a3b775eb6cec4735014252d454affe8dc5c1fee",
      "parents": [
        "a462fec429b751fa1cb39da6d5a6781ad9ec0d0d"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 13:08:08 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 13:08:08 2019"
      },
      "message": "Trivial changes from the MR.\n"
    },
    {
      "commit": "a462fec429b751fa1cb39da6d5a6781ad9ec0d0d",
      "tree": "27e5bc60cf8096ef280c53de2d1fe39ab4352480",
      "parents": [
        "6e0186a0979acd07f8e29ebc0867fec7710d118a"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 11:15:28 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 11:15:28 2019"
      },
      "message": "Update tests with more streams for ber.decoder\n"
    },
    {
      "commit": "6e0186a0979acd07f8e29ebc0867fec7710d118a",
      "tree": "41b2f6e84f4fd8c47cf515aa44a5cb664f987929",
      "parents": [
        "545b1b42cefab351e37c769e79d7516e5935cd9b"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 11:15:03 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 11:15:03 2019"
      },
      "message": "UnsupportedSubstrateError\n"
    },
    {
      "commit": "545b1b42cefab351e37c769e79d7516e5935cd9b",
      "tree": "a787b8164b0ec00e4f2c7cfdfa09276f669d48e6",
      "parents": [
        "0758362ca777039bf6a2d033cf665944f46e3c9a"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 10:43:46 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Tue Sep 10 10:43:46 2019"
      },
      "message": "Fail with unseekable streams.\n"
    },
    {
      "commit": "bac135a0ac35acb6ebefa683541fc34b920f7671",
      "tree": "f3ce7c674edc50d02cd8b041684dda3c52fcf497",
      "parents": [
        "aa5eb55ad9aaa67bf158c19864582ff7efb9854c"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Sep 07 16:16:28 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Sep 07 16:16:28 2019"
      },
      "message": "Improve open maps debugging in decoder\n"
    },
    {
      "commit": "0758362ca777039bf6a2d033cf665944f46e3c9a",
      "tree": "aca61f9b4cc92fa5388b9a898fb8ebb975911e2a",
      "parents": [
        "e82afbacffea9f739f9ec215b3247d529c9ea19f"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 06 12:59:50 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 06 12:59:50 2019"
      },
      "message": "API that work with pyasn1-modules\n"
    },
    {
      "commit": "e82afbacffea9f739f9ec215b3247d529c9ea19f",
      "tree": "75407586800258121718880ae7b1ecc5e911dfef",
      "parents": [
        "aa5eb55ad9aaa67bf158c19864582ff7efb9854c"
      ],
      "author": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Wed Aug 28 12:48:26 2019"
      },
      "committer": {
        "name": "Jan Pipek",
        "email": "jan.pipek@gmail.com",
        "time": "Fri Sep 06 12:54:22 2019"
      },
      "message": "Prepare for streams\n\nRewrite Decoder in terms of BytesIO\n\nBER Decoders implemented with BytesIO but for the most complex\n\nBER UniversalConstructedTypeDecoder in terms of BytesIO\n\nBER Decoder (stream-based) suggestion\n\nFixed some of the failing tests\n\nFixed several failed tests\n\nFix all remaining tests but the non-implemented Any\n\nImplement untagged Any with back-seek\n\nFix cer and der to work with streams\n\nSimplify unnecessary added complexity\n\nMake use of IOBase hierarchy (properly?) - in progress\n\nTests failing\n\nFixed most failing tests\n\n1 remaining\n\nSeveraů small optimizations\n\nFix logging\n\nNote: As we do not want to read the whole stream, explicit output of remaining bytes is not used.\n\nRename and document utility functions for BER decoder\n\nFixed ínverted condition in BitStringDecoder.valueDecoder\n\nFixed wrongly acquired fullPosition in AnyDecoder.indefLenValueDecoder\n\nFixed logging None length\n\nendOfStream(BytesIO) working in 2.7\n\nMicrooptimizations for endOfStream (not using it)\n\nTest for checking binary files as substrate\n\nPython 2.7 BytesIO wrapper for `file`s\n\nRefactor keep API compatibility with original version\n"
    },
    {
      "commit": "aa5eb55ad9aaa67bf158c19864582ff7efb9854c",
      "tree": "0274f344eb1ca8481fc92b30786ca024604c1762",
      "parents": [
        "771aa24c2b52e0ec410f9a94c3a114a6078a3641"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Sep 01 16:16:32 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Sep 01 16:16:32 2019"
      },
      "message": "Prepare for 0.4.8\n"
    },
    {
      "commit": "771aa24c2b52e0ec410f9a94c3a114a6078a3641",
      "tree": "8e6e6a207046117cb66aea3bf0fff6a34e02a2dd",
      "parents": [
        "3cae125ac526f614021274337b5992a418191ab8"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Sep 01 15:58:56 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Sep 01 15:58:56 2019"
      },
      "message": "Release 0.4.7\n"
    },
    {
      "commit": "3cae125ac526f614021274337b5992a418191ab8",
      "tree": "7a96481cbb318d0d3a016ea6bc19048f4c70f559",
      "parents": [
        "d0b7f2ec8677eec8f9aa31103a66f5cab18e9308"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Wed Aug 28 08:02:35 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Wed Aug 28 08:02:35 2019"
      },
      "message": "Add an afterthought on WITH COMPONENTS constraint\n"
    },
    {
      "commit": "d0b7f2ec8677eec8f9aa31103a66f5cab18e9308",
      "tree": "52c0e965e87f064d88a10bc43f9cfd9c86fd052a",
      "parents": [
        "7214dcae11f58b0c480bd30170da3eb4734ca707"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Aug 27 08:17:42 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 27 08:17:42 2019"
      },
      "message": "Add `SET ... WITH COMPONENTS ...` ASN.1 construct support (#171)\n\nAdded `WithComponentsConstraint` along with related\r\n`ComponentPresentConstraint` and `ComponentAbsentConstraint` classes\r\nto be used with `Sequence`/`Set` types representing\r\n`SET ... WITH COMPONENTS ...` like ASN.1 constructs."
    },
    {
      "commit": "7214dcae11f58b0c480bd30170da3eb4734ca707",
      "tree": "e50ed3c5290a38fd70989ae25d894cf5c149611e",
      "parents": [
        "41ce2e5cfeef488f847c3f58ff3d9d0fceb9ded7"
      ],
      "author": {
        "name": "Hugo van Kemenade",
        "email": "hugovk@users.noreply.github.com",
        "time": "Tue Aug 27 08:10:10 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Aug 27 08:10:10 2019"
      },
      "message": "Fix for Python 4 (#173)\n\n"
    },
    {
      "commit": "41ce2e5cfeef488f847c3f58ff3d9d0fceb9ded7",
      "tree": "742135c2f6a578a45bac4850fb72f915f136e464",
      "parents": [
        "66afc8921e4f5d3a41e407ab6d95ce7e4ec5383a"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Aug 25 13:17:38 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 25 13:17:38 2019"
      },
      "message": "Deprecate `sizeSpec` in favor of `subtypeSpec` (#172)\n\nThis commit deprecates `subtypeSpec` attributes and keyword argument.\r\nIt is now recommended to pass `ValueSizeConstraint`, as well as all\r\nother constraints, to `subtypeSpec`.\r\n\r\nBy way of the change mentioned above, this commit fixes a design bug\r\nin a way of how the items assigned to constructed types are verified.\r\nNow if `Asn1Type`-based object is assigned, its compatibility is\r\nverified based on having all tags and constraint objects as the type\r\nin field definition. When a bare Python value is assigned, then field\r\ntype object is cloned and initialized with the bare value (constraints\r\nverificaton would run at this moment).\r\n"
    },
    {
      "commit": "66afc8921e4f5d3a41e407ab6d95ce7e4ec5383a",
      "tree": "e552f03ee7846566b4b036c192d9ed326a9e74a5",
      "parents": [
        "ec580e545ef25f117573014d40ca5c512e58dbf3"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Aug 25 12:35:44 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 25 12:35:44 2019"
      },
      "message": "Add `isInconsistent` property hook to all constructed types (#170)\n\nAdded `isInconsistent` property to all constructed types. This property\r\nconceptually replaces `verifySizeSpec` method to serve a more general\r\npurpose e.g. ensuring all required fields are in a good shape. By\r\ndefault this check invokes subtype constraints verification and is run\r\nby codecs on value de/serialisation."
    },
    {
      "commit": "ec580e545ef25f117573014d40ca5c512e58dbf3",
      "tree": "dad8502fede106be240e929ac1bd40e0e79c179e",
      "parents": [
        "d87d4dbf78d5669ab668a57ae94b7732dd1314e6"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Aug 13 21:24:23 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Aug 13 21:24:23 2019"
      },
      "message": "Fix ConstraintsUnion docstring\n"
    },
    {
      "commit": "d87d4dbf78d5669ab668a57ae94b7732dd1314e6",
      "tree": "f15653086df52a0c2f086a3e26f73a85b2e6ff72",
      "parents": [
        "bb6b6e26fd2072dae8ba6664e2b8b6c5b78ce5a8"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Aug 13 21:22:00 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Tue Aug 13 21:22:00 2019"
      },
      "message": "Prepare 0.4.7\n"
    },
    {
      "commit": "bb6b6e26fd2072dae8ba6664e2b8b6c5b78ce5a8",
      "tree": "8f4ba9a556e1227fd2626716a210a004ce056525",
      "parents": [
        "fb824beb47f0e58463bb9a4b4b50bd804f30b9f2"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Wed Jul 31 19:43:30 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Wed Jul 31 19:43:30 2019"
      },
      "message": "Release 0.4.6\n"
    },
    {
      "commit": "fb824beb47f0e58463bb9a4b4b50bd804f30b9f2",
      "tree": "ddd5036bcb6125b4d592eb6e4e3399de1b24f8a4",
      "parents": [
        "fc10c68fabf184116aaf1915e41a4f5fd21a4a27"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Wed Jul 31 19:40:15 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Wed Jul 31 19:40:15 2019"
      },
      "message": "Fix failing unit tests on Py25\n"
    },
    {
      "commit": "fc10c68fabf184116aaf1915e41a4f5fd21a4a27",
      "tree": "bdda5c1baa665adca1f820339d358dc02f4024ef",
      "parents": [
        "2f7535c697c3ca9f7c930a5ea79293f0b8d4313b"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Wed Jul 31 19:26:37 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Wed Jul 31 19:26:37 2019"
      },
      "message": "Remove a couple of `except as` statements to benefit old Pythons\n"
    },
    {
      "commit": "2f7535c697c3ca9f7c930a5ea79293f0b8d4313b",
      "tree": "d5013853b379f4d19ee58a64aa724fbb255c0255",
      "parents": [
        "18974828b048383f15cab77e2e3c181a373ace1a"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 16:58:17 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 16:58:17 2019"
      },
      "message": "Document base ASN.1 types\n\nAlso many fixes here and there to docs and docstrings.\n"
    },
    {
      "commit": "18974828b048383f15cab77e2e3c181a373ace1a",
      "tree": "6cfde59b3c748c07fb44fb2d7a1ea29bdc588225",
      "parents": [
        "bc6cc03491480afe90663fed9b56e07537980022"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 12:14:50 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 12:17:20 2019"
      },
      "message": "Fix Python builtins ReST references in docstrings\n"
    },
    {
      "commit": "bc6cc03491480afe90663fed9b56e07537980022",
      "tree": "ca0d3687f160bbee066f2c1c3cd5eb91f4b93368",
      "parents": [
        "5a5e096520d6ee42b99abaa724e16a48c10f261d"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 11:14:21 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 11:14:21 2019"
      },
      "message": "Fix Travis docs build on Python 3.4+\n"
    },
    {
      "commit": "5a5e096520d6ee42b99abaa724e16a48c10f261d",
      "tree": "c987c4e2ba32947eacd5b4855926796dc2290931",
      "parents": [
        "2d32a37914c479d24b08fd9ba2e2ece43bde8cd1"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 09:47:45 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 09:47:45 2019"
      },
      "message": "Remove Python `id` from `repr`\n\nIt seems to clutter representation printout, especially in the\nrendered docs.\n"
    },
    {
      "commit": "2d32a37914c479d24b08fd9ba2e2ece43bde8cd1",
      "tree": "04c826c6cf7302aa3b2f2402a128ff4fa8ff41c4",
      "parents": [
        "e1500c60c0a15a641d5ee834f792fd0f2167c8b8"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 09:33:27 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 09:33:27 2019"
      },
      "message": "Enable docs build in Travis\n"
    },
    {
      "commit": "e1500c60c0a15a641d5ee834f792fd0f2167c8b8",
      "tree": "3b0330806b1b86f9d17ca0306f04b3e358bda68d",
      "parents": [
        "4b24fcb98a21a6259ab1b71cd46f382401fad508"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 09:09:28 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 09:09:28 2019"
      },
      "message": "Add exception classes documentation\n\nAlso fix references to exception objects in other docstrings.\n"
    },
    {
      "commit": "4b24fcb98a21a6259ab1b71cd46f382401fad508",
      "tree": "748d4151f5a26b2f02cfb3a8701cca075688aeba",
      "parents": [
        "bce62d5e146a83d3c2d003443875d16271e30a61"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 07:50:54 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 13 07:50:54 2019"
      },
      "message": "Add docstring for `.reset()` and `.clear()` methods\n"
    },
    {
      "commit": "bce62d5e146a83d3c2d003443875d16271e30a61",
      "tree": "2eb823ea8da98616788a92e987bfcb13636259d2",
      "parents": [
        "62efcb94b15ca7fbd5261ca999bf5eca5680de5f"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Jul 12 21:24:08 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Jul 12 21:24:37 2019"
      },
      "message": "Fix to pass decoder `options` to open type decoder\n\nPrior to this fix, recursively encoded open types won\u0027t get\nfully decoded all the way.\n"
    },
    {
      "commit": "62efcb94b15ca7fbd5261ca999bf5eca5680de5f",
      "tree": "94cd7ed5091c5f1421ba6b186116bbc86303ca23",
      "parents": [
        "7b3f79cac2ce765537baa406762d59eae47de04c"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Jul 12 20:42:04 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 12 20:42:04 2019"
      },
      "message": "Fix CER/DER encoders to respect open types (#167)\n\n* Fix CER/DER encoders to respect open types\r\n\r\nAdded a bunch of unit tests to CER/DER codecs covering open types.\r\n"
    },
    {
      "commit": "7b3f79cac2ce765537baa406762d59eae47de04c",
      "tree": "6942818a0fb1266825e93ce8b9f4aaf594b881f9",
      "parents": [
        "cf9b3f5f67501b85296c05456bbd324352177718"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Jul 12 20:31:41 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 12 20:31:41 2019"
      },
      "message": "Add `SequenceOf`/`SetOf` list-like slicing support (#168)\n\n"
    },
    {
      "commit": "cf9b3f5f67501b85296c05456bbd324352177718",
      "tree": "02d8ae96bfbcd56323427351eab78b8185b42eb3",
      "parents": [
        "954629f0ba38d9ba26744daba36d97b352ebb721"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Mon Jul 08 22:18:00 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 08 22:18:00 2019"
      },
      "message": "Add more docs on `OpenType` (#166)\n\nThis change adds more explanations and examples on ASN.1 ANY\r\nDEFINED BY syntax (OpenType)."
    },
    {
      "commit": "954629f0ba38d9ba26744daba36d97b352ebb721",
      "tree": "11283277e43337f22ac6c5fa95a46e97488a186e",
      "parents": [
        "b5e2eebe53736eb96f3baf5c17ae953261e09d6c"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Jul 07 16:49:24 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 07 16:49:24 2019"
      },
      "message": "Update FUNDING.yml"
    },
    {
      "commit": "b5e2eebe53736eb96f3baf5c17ae953261e09d6c",
      "tree": "dac2f96248bee477ef0a25a67fb34090bd1eca65",
      "parents": [
        "ba302699d8fc791760829aa9a6b014563eedbf2c"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jul 06 12:04:53 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 06 12:04:53 2019"
      },
      "message": "Add `SET|SEQUENCE OF ANY` encoding support (#165)\n\nFor example:\r\n\r\n  AttributeTypeAndValues ::\u003d SEQUENCE {\r\n    type OBJECT IDENTIFIER,\r\n    values SET OF ANY DEFINED BY type\r\n  }\r\n\r\nThis patch adds support of the above ASN.1 syntax to BER/DER/CER\r\ncodecs.\r\n\r\nIt appears that to implement this feature properly, `SetOf`/`SequenceOf`\r\npyasn1 types need to have `.componentType` wrapped into something\r\nsimilar to `NamedType` that `Set`/`Sequence` have. That additional\r\nlayer would then carry the open type meta information. Without it,\r\n`Sequence`/`Set` codec needs to signal `SetOf`/`SequenceOf` codec\r\nof the open type being processed, which is a slight hack.\r\n\r\nA other inconvenience is that when `SetOf`/`SequenceOf` deal with\r\nan open type component, they should not verify types on component\r\nassignment. Without open type property in `SetOf`/`SequenceOf`,\r\nthe code checks for `Any` component type which is another hack.\r\n\r\nThe above shortcomings should be addressed in the follow up patch."
    },
    {
      "commit": "ba302699d8fc791760829aa9a6b014563eedbf2c",
      "tree": "c3ecf1a26575947ee669a62b7130837d46da2858",
      "parents": [
        "dd6640a921a5de7f2b35d8bb852d6eb52527f0a7"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Thu Jul 04 06:51:06 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Thu Jul 04 06:51:06 2019"
      },
      "message": "Add GitHub funding button\n"
    },
    {
      "commit": "dd6640a921a5de7f2b35d8bb852d6eb52527f0a7",
      "tree": "99dd97358516473d4f5af0da4c9399f3cb7b9ac8",
      "parents": [
        "4a9abf7ae867e9ebabc850320d87a7c1230acfad"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Jun 30 21:49:59 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 30 21:49:59 2019"
      },
      "message": "Improve CER/DER encoding of GeneralizedTime (#164)\n\n- Added support for subseconds CER/DER encoding edge cases in\r\n  `GeneralizedTime` codec\r\n- Fixed 3-digit fractional seconds value CER/DER encoding of\r\n  `GeneralizedTime`"
    },
    {
      "commit": "4a9abf7ae867e9ebabc850320d87a7c1230acfad",
      "tree": "98e32bd72e9a5054703a2c32a711a724d28c75b3",
      "parents": [
        "fe2725f8c80039d9d82af2bd3299abc174417c27"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jun 29 06:50:35 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jun 29 07:24:35 2019"
      },
      "message": "Rename pyasn1 unicode exceptions\n\nThe new exception classes names are `PyAsn1UnicodeDecodeError`\nand `PyAsn1UnicodeEncodeError`.\n\nAlso, unit tests added.\n"
    },
    {
      "commit": "fe2725f8c80039d9d82af2bd3299abc174417c27",
      "tree": "cb54020c6601951e656714c6bafc3a76faab4d4f",
      "parents": [
        "adf4c5b1ef11026102dad0bb77b54576e0ebd71c"
      ],
      "author": {
        "name": "Alex Shafer",
        "email": "ashafer@pm.me",
        "time": "Sat Jun 29 06:20:15 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Jun 29 06:20:15 2019"
      },
      "message": "Add specific exceptions for String issues (#155)\n\nThis change helps telling unicode-related exceptions from other PyAsn1Error exceptions."
    },
    {
      "commit": "adf4c5b1ef11026102dad0bb77b54576e0ebd71c",
      "tree": "cc1891f2893b0ddd2dda337eabceeacecbdbb3a9",
      "parents": [
        "66d329acaaf204eff63ae595fd7d6f56cd530c72"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Fri Jun 28 20:48:40 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 28 20:48:40 2019"
      },
      "message": "Fix `AnyDecoder` to accept `TagMap` as `asn1Spec` (#152)\n\nFixes `AnyDecoder` to accept `TagMap` as `asn1Spec`.\r\nThe use-case is to make `AnyDecoder` operational when\r\ndumping raw value on error condition is enabled\r\n"
    },
    {
      "commit": "66d329acaaf204eff63ae595fd7d6f56cd530c72",
      "tree": "46187ae1df17aa9eb728abc2c55ef5ce612c6764",
      "parents": [
        "b028644dea4244f1cd2513ab0241c8cb9be43324"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sun Jun 23 17:48:31 2019"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 23 17:48:31 2019"
      },
      "message": "SequenceOf/SetOf to remain a schema objects (#162)\n\n* Add `omitEmptyOptionals` encoder option\r\n\r\nAdded `omitEmptyOptionals` option which is respected by `Sequence`\r\nand `Set` encoders. When `omitEmptyOptionals` is set to `True`, empty\r\ninitialized optional components are not encoded. Default is `False`.\r\n\r\n* Change `SequenceOf`/`SetOf` behaviour\r\n\r\n- New elements to `SequenceOf`/`SetOf` objects can now be added at any\r\n  position - the requirement for the new elements to reside at the end\r\n  of the existing ones (i.e. s[len(s)] \u003d 123) is removed.\r\n\r\n- Removed default initializer from `SequenceOf`/`SetOf` types to ensure\r\n  consistent behaviour with the rest of ASN.1 types. Before this change,\r\n  `SequenceOf`/`SetOf` instances immediately become value objects\r\n  behaving like an empty list. With this change, `SequenceOf`/`SetOf`\r\n  objects remain schema objects unless a component is added or\r\n  `.clear()` is called.\r\n\r\n- Added `.reset()` method to all constructed types to turn value object\r\n  into a schema object.\r\n"
    },
    {
      "commit": "b028644dea4244f1cd2513ab0241c8cb9be43324",
      "tree": "f055cbf850a4b39241c410cdb5f29b095a84958d",
      "parents": [
        "25cf116ef8d11bb0e08454c0f3635c9f4002c2d6"
      ],
      "author": {
        "name": "Harrison",
        "email": "HarrisonGregg@users.noreply.github.com",
        "time": "Thu Jun 20 18:43:25 2019"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Thu Jun 20 18:43:25 2019"
      },
      "message": "Remove invalid escape sequences to get rid of DeprecationWarning in Python3. (#161)\n\n"
    },
    {
      "commit": "25cf116ef8d11bb0e08454c0f3635c9f4002c2d6",
      "tree": "2e2f64d0e817b7bf853e7e4274e5fdd89e10d9c5",
      "parents": [
        "df6fc9a8aae16e32f60a1ff1f42a52c8c344a993"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Dec 29 22:43:33 2018"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Dec 29 22:43:33 2018"
      },
      "message": "Prepare for 0.4.6\n"
    },
    {
      "commit": "df6fc9a8aae16e32f60a1ff1f42a52c8c344a993",
      "tree": "65688a5c5441d1a4594b6c15a3cded6e2a97aca1",
      "parents": [
        "a4b30dcb6c34e303129498d697fb3cd805c1e48d"
      ],
      "author": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Dec 29 20:43:31 2018"
      },
      "committer": {
        "name": "Ilya Etingof",
        "email": "etingof@gmail.com",
        "time": "Sat Dec 29 20:44:17 2018"
      },
      "message": "Release 0.4.5\n\nAlso extend copyright to the year 2019\n"
    }
  ],
  "next": "a4b30dcb6c34e303129498d697fb3cd805c1e48d"
}
