gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] branch master updated (e428783e -> 6de49ea2)


From: gnunet
Subject: [taler-exchange] branch master updated (e428783e -> 6de49ea2)
Date: Sun, 05 Jul 2020 20:45:56 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a change to branch master
in repository exchange.

    from e428783e GNUNET_free_non_null is gone, use GNUNET_free
     new 9d3336f8 v8 bump
     new 5ac44873 fix status code
     new dd23ca41 ign
     new c31048b0 implement #6181
     new 18aba845 void basedb due to signature format change
     new 19f51f55 make tests skip until we have a wallet to regen the DB
     new 77ab94eb update exchange API to return struct instead of lots of 
individual args for TALER_EXCHANGE_transfers_get() -- simplifies merchant later
     new cde71b7f modify TALER_EXCHANGE_deposits_get() API to combine returned 
arguments into a struct (simplifies merchant later)
     new 4844023f modify TALER_EXCHANGE_deposits_get() API to avoid NULL 
pointers and need for deep copies
     new e0e06276 combine sections
     new 727b7b04 return fee as well
     new 4f828855 towards changing timestamp in deposit confirmation (tests 
failing)
     new 5b01ccbf sleep to ensure aggregator has work
     new 0985dfd1 fix status code
     new 70a8aca6 implement #6181
     new 035c505c modify TALER_EXCHANGE_deposits_get() API to combine returned 
arguments into a struct (simplifies merchant later)
     new 556085ac modify TALER_EXCHANGE_deposits_get() API to avoid NULL 
pointers and need for deep copies
     new 4119dbd1 update
     new 142f6eda use unregister
     new baab185d more ecs
     new 78b13737 fix status code
     new 91e0debf implement #6181
     new ef97d426 update exchange API to return struct instead of lots of 
individual args for TALER_EXCHANGE_transfers_get() -- simplifies merchant later
     new cdbf3a05 modify TALER_EXCHANGE_deposits_get() API to combine returned 
arguments into a struct (simplifies merchant later)
     new 099102dc modify TALER_EXCHANGE_deposits_get() API to avoid NULL 
pointers and need for deep copies
     new e9d80d76 return fee as well
     new d63cf1e4 modify TALER_EXCHANGE_deposits_get() API to combine returned 
arguments into a struct (simplifies merchant later)
     new 532440ac modify TALER_EXCHANGE_deposits_get() API to avoid NULL 
pointers and need for deep copies
     new 15daa781 return fee as well
     new 7f10627a update
     new 9ed9c018 fix drop call
     new af28c9b4 fix auditor drop
     new 03615083 ecs
     new 6eabe1ab more ECs
     new 44c70269 update ECs
     new ef0e7992 created taler_sq_lib
     new 83319e17 implemented the other functions for taler_sq_lib
     new 9bbaff19 fixed endianness in taler_sq_lib
     new acd8d318 taler_error_codes.h auto generated from gnunet/gana.git as a 
submodule
     new 9dbc462d bringing gana up to date so uncrustify accepts 
taler_error_codes.h
     new 98f967f3 do init submodules
     new a5d92981 update gana
     new b46b1e5f update gana
     new c9d94bc9 sync gana
     new 0c4eca0d moved yna to exchange
     new a32a5ef2 add TALER_yna_to_string()
     new 6b85ad04 synchronize with latest GANA
     new 33e7b1f6 TALER_TESTING_cmd_admin_add_incoming_with_ref finds 
reserve_pub if reserve_priv doesn't exist
     new a54757de synchronize with latest GANA
     new 25ecc977 add TALER_MHD_parse_internal_json_data()
     new f2ec9c08 testing traits for uint32_t and GNUNET_TIME_Relative
     new e01bcbb2 traits for int64_t and json_t
     new dc9f41a7 clarify with/without wire fee issue, sanity checks on 
currencies
     new 5220e839 synchronize with latest GANA
     new c88af6df fix #6236
     new b0311807 fix FIXME by exposing deposit permission signing in API 
instead of doing it inside of the testing logic
     new 60abe4ca bump required version
     new 2170984c response to CB
     new ee94ca0e minor typo
     new 7ddd2dba expand justifications / agree with append-only log
     new 2279c8ab fix typo
     new 49f466df move rewind command to exchange, add proper support for 
rewinding in batches, modify API to rewind to label
     new 6eb32a65 fix error reporting/handling
     new 77195fe6 v8 bump
     new fcc5e81d fix status code
     new 846c3640 ign
     new c7086fcc implement #6181
     new cf596d66 void basedb due to signature format change
     new eb965ac7 make tests skip until we have a wallet to regen the DB
     new bfeb9ac5 update exchange API to return struct instead of lots of 
individual args for TALER_EXCHANGE_transfers_get() -- simplifies merchant later
     new 3910cb74 modify TALER_EXCHANGE_deposits_get() API to combine returned 
arguments into a struct (simplifies merchant later)
     new a177098a modify TALER_EXCHANGE_deposits_get() API to avoid NULL 
pointers and need for deep copies
     new ce0e66b1 combine sections
     new 0dfe7c23 return fee as well
     new 7217b8d0 towards changing timestamp in deposit confirmation (tests 
failing)
     new 65c3c71c sleep to ensure aggregator has work
     new 353c4e2f modify TALER_EXCHANGE_deposits_get() API to combine returned 
arguments into a struct (simplifies merchant later)
     new f88fd464 modify TALER_EXCHANGE_deposits_get() API to avoid NULL 
pointers and need for deep copies
     new 5a454738 return fee as well
     new 9e057983 update
     new 3355509e use unregister
     new 863e7b4f more ecs
     new 6725053b v8 bump
     new 1d7a2a33 fix status code
     new 7e414d61 ign
     new a8cd04da implement #6181
     new f93bf0b7 void basedb due to signature format change
     new a368f427 make tests skip until we have a wallet to regen the DB
     new 1038107e update exchange API to return struct instead of lots of 
individual args for TALER_EXCHANGE_transfers_get() -- simplifies merchant later
     new 62e33107 modify TALER_EXCHANGE_deposits_get() API to combine returned 
arguments into a struct (simplifies merchant later)
     new 275ff5e8 modify TALER_EXCHANGE_deposits_get() API to avoid NULL 
pointers and need for deep copies
     new fcda74fb combine sections
     new 28dff453 return fee as well
     new 141d4b15 towards changing timestamp in deposit confirmation (tests 
failing)
     new 93464191 sleep to ensure aggregator has work
     new c1108af9 update
     new e72d9f8b v8 bump
     new e9c62a69 fix status code
     new b4cfefcd ign
     new 52f370c8 implement #6181
     new b81da19a void basedb due to signature format change
     new 922d3be4 make tests skip until we have a wallet to regen the DB
     new 35bfdbef update exchange API to return struct instead of lots of 
individual args for TALER_EXCHANGE_transfers_get() -- simplifies merchant later
     new 1ed77a9f modify TALER_EXCHANGE_deposits_get() API to combine returned 
arguments into a struct (simplifies merchant later)
     new e4aa60fc modify TALER_EXCHANGE_deposits_get() API to avoid NULL 
pointers and need for deep copies
     new 02eeee79 add ec
     new 3b7710d2 combine sections
     new af52541e return fee as well
     new 7ab9d526 towards changing timestamp in deposit confirmation (tests 
failing)
     new eaa21af9 sleep to ensure aggregator has work
     new 178e549b merge
     new 18e62d85 use unregister
     new 65a782f6 more ecs
     new 9e0cb7d9 merge
     new cc8eecca fix drop call
     new 5f993f57 fix auditor drop
     new 879383e5 ecs
     new 903c421f more ECs
     new 6801e8e5 update ECs
     new 21ac29b7 created taler_sq_lib
     new 1490cd0e implemented the other functions for taler_sq_lib
     new 97969229 fixed endianness in taler_sq_lib
     new 11144599 taler_error_codes.h auto generated from gnunet/gana.git as a 
submodule
     new 0b6fd082 bringing gana up to date so uncrustify accepts 
taler_error_codes.h
     new e6f2f110 do init submodules
     new 9e921ce1 update gana
     new d55af097 update gana
     new bbaefc47 sync gana
     new 0276abcd moved yna to exchange
     new 6b6814a2 add TALER_yna_to_string()
     new 1f02997c synchronize with latest GANA
     new 991e3a48 synchronize with latest GANA
     new 7d845b0c add TALER_MHD_parse_internal_json_data()
     new 1aa16875 TALER_TESTING_cmd_admin_add_incoming_with_ref finds 
reserve_pub if reserve_priv doesn't exist
     new ffc3f20d Merge branch 'protocolv8' of git+ssh://git.taler.net/exchange 
into protocolv8
     new 697f522c testing traits for uint32_t and GNUNET_TIME_Relative
     new 48d4690f clarify with/without wire fee issue, sanity checks on 
currencies
     new 29d163d5 traits for int64_t and json_t
     new b3411dc6 Merge branch 'protocolv8' of git+ssh://git.taler.net/exchange 
into protocolv8
     new 00636804 synchronize with latest GANA
     new d0d71dab fix #6236
     new d5ba2437 fix FIXME by exposing deposit permission signing in API 
instead of doing it inside of the testing logic
     new ff09eddf bump required version
     new 968491bb response to CB
     new 73d98fcf minor typo
     new c43922a5 expand justifications / agree with append-only log
     new bf50cb23 fix typo
     new 025c2f56 move rewind command to exchange, add proper support for 
rewinding in batches, modify API to rewind to label
     new b145c172 fix error reporting/handling
     new 042e5caf merge
     new ed5b98a2 GNUNET_free_non_null is gone, use GNUNET_free
     new 6de49ea2 Merge branch 'protocolv8'

The 152 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitignore                                         |    3 +
 .gitmodules                                        |    3 +
 README                                             |    2 +-
 bootstrap                                          |    9 +
 configure.ac                                       |   41 +
 contrib/gana                                       |    1 +
 contrib/tos/tos.rst                                |  102 +-
 doc/audit/report-202005.pdf                        |  Bin 0 -> 129969 bytes
 doc/audit/response-202005.tex                      |  238 +
 src/Makefile.am                                    |    4 +
 src/auditor/auditor-basedb.age                     |    1 -
 src/auditor/auditor-basedb.fees                    |  Bin 600 -> 0 bytes
 src/auditor/auditor-basedb.mpub                    |    1 -
 src/auditor/auditor-basedb.sql                     | 4881 -------------------
 src/auditor/generate-revoke-basedb.sh              |    4 +
 src/auditor/revoke-basedb.age                      |    1 -
 src/auditor/revoke-basedb.fees                     |  Bin 600 -> 0 bytes
 src/auditor/revoke-basedb.mpub                     |    1 -
 src/auditor/revoke-basedb.sql                      | 4892 --------------------
 .../taler-auditor-httpd_deposit-confirmation.c     |    5 +-
 src/auditor/taler-helper-auditor-coins.c           |    9 +-
 src/auditor/taler-helper-auditor-deposits.c        |    9 +-
 src/auditor/taler-helper-auditor-reserves.c        |    1 -
 src/auditor/test-auditor.sh                        |    8 +-
 src/auditor/test-revocation.sh                     |    8 +-
 src/auditordb/auditor-0001.sql                     |    2 +-
 src/auditordb/drop0001.sql                         |    4 +-
 src/auditordb/plugin_auditordb_postgres.c          |   10 +-
 src/exchange-tools/taler-exchange-keyup.c          |   12 +-
 src/exchange/taler-exchange-aggregator.c           |   12 +
 src/exchange/taler-exchange-httpd.c                |   65 +-
 src/exchange/taler-exchange-httpd_deposit.c        |  193 +-
 src/exchange/taler-exchange-httpd_keystate.c       |    9 +-
 src/exchange/taler-exchange-httpd_refund.c         |   99 +-
 src/exchange/taler-exchange-httpd_responses.c      |    4 +-
 src/exchange/taler-exchange-httpd_wire.c           |    4 +
 src/exchange/taler-exchange-httpd_withdraw.c       |    4 -
 src/exchangedb/drop0001.sql                        |    4 +-
 src/exchangedb/exchange-0001.sql                   |    3 +-
 src/exchangedb/plugin_exchangedb_postgres.c        |   74 +-
 src/exchangedb/test_exchangedb.c                   |   71 +-
 src/include/taler_auditordb_plugin.h               |    4 +-
 src/include/taler_bank_service.h                   |    8 +-
 src/include/taler_error_codes.h                    | 2550 ----------
 src/include/taler_exchange_service.h               |  150 +-
 src/include/taler_exchangedb_plugin.h              |   18 +-
 src/include/taler_mhd_lib.h                        |   27 +-
 src/include/taler_signatures.h                     |   37 +-
 src/include/{taler_pq_lib.h => taler_sq_lib.h}     |   94 +-
 src/include/taler_testing_lib.h                    |  178 +-
 src/include/taler_util.h                           |   48 +
 src/lib/auditor_api_deposit_confirmation.c         |   17 +-
 src/lib/exchange_api_common.c                      |   36 +-
 src/lib/exchange_api_deposit.c                     |   66 +-
 src/lib/exchange_api_deposits_get.c                |   72 +-
 src/lib/exchange_api_handle.c                      |    2 +-
 src/lib/exchange_api_melt.c                        |   10 +-
 src/lib/exchange_api_refund.c                      |   29 +-
 src/lib/exchange_api_transfers_get.c               |  170 +-
 src/lib/exchange_api_withdraw2.c                   |    2 -
 src/mhd/mhd_parsing.c                              |   64 +-
 src/{pq => sq}/Makefile.am                         |   34 +-
 src/sq/sq_query_helper.c                           |  288 ++
 src/sq/sq_result_helper.c                          |  381 ++
 src/sq/test_sq.c                                   |  227 +
 src/testing/Makefile.am                            |    1 +
 src/testing/test_auditor_api.c                     |    1 -
 src/testing/test_exchange_api.c                    |    7 +-
 src/testing/test_exchange_api_twisted.c            |   14 -
 src/testing/test_taler_exchange_aggregator.c       |   24 +
 .../testing_api_cmd_auditor_deposit_confirmation.c |    8 +-
 .../testing_api_cmd_bank_admin_add_incoming.c      |  112 +-
 src/testing/testing_api_cmd_batch.c                |   22 +
 src/testing/testing_api_cmd_deposit.c              |   84 +-
 src/testing/testing_api_cmd_deposits_get.c         |   22 +-
 src/testing/testing_api_cmd_insert_deposit.c       |   26 +-
 src/testing/testing_api_cmd_refund.c               |   29 +-
 src/testing/testing_api_cmd_rewind.c               |  222 +
 src/testing/testing_api_cmd_stat.c                 |    1 -
 src/testing/testing_api_cmd_transfer_get.c         |   33 +-
 src/testing/testing_api_loop.c                     |   11 +-
 src/testing/testing_api_trait_json.c               |   42 +
 src/testing/testing_api_trait_number.c             |   80 +
 src/testing/testing_api_trait_time.c               |   44 +
 src/util/Makefile.am                               |    1 +
 src/util/yna.c                                     |   88 +
 86 files changed, 3032 insertions(+), 13146 deletions(-)
 create mode 160000 contrib/gana
 create mode 100644 doc/audit/report-202005.pdf
 create mode 100644 doc/audit/response-202005.tex
 delete mode 100644 src/auditor/auditor-basedb.age
 delete mode 100644 src/auditor/auditor-basedb.fees
 delete mode 100644 src/auditor/auditor-basedb.mpub
 delete mode 100644 src/auditor/auditor-basedb.sql
 delete mode 100644 src/auditor/revoke-basedb.age
 delete mode 100644 src/auditor/revoke-basedb.fees
 delete mode 100644 src/auditor/revoke-basedb.mpub
 delete mode 100644 src/auditor/revoke-basedb.sql
 delete mode 100644 src/include/taler_error_codes.h
 copy src/include/{taler_pq_lib.h => taler_sq_lib.h} (53%)
 copy src/{pq => sq}/Makefile.am (57%)
 create mode 100644 src/sq/sq_query_helper.c
 create mode 100644 src/sq/sq_result_helper.c
 create mode 100644 src/sq/test_sq.c
 create mode 100644 src/testing/testing_api_cmd_rewind.c
 create mode 100644 src/util/yna.c

diff --git a/.gitignore b/.gitignore
index 09c0fe45..4b3e5a35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,6 +32,7 @@ GPATH
 GRTAGS
 GTAGS
 *.swp
+src/include/taler_error_codes.h
 src/lib/test_exchange_api
 doc/doxygen/doxygen_sqlite3.db
 src/auditor/taler-auditor-dbinit
@@ -81,6 +82,7 @@ src/wire-plugins/test_ebics_wireformat
 src/wire-plugins/test_wire_plugin
 src/wire-plugins/test_wire_plugin_transactions_taler_bank
 src/pq/test_pq
+src/sq/test_sq
 src/util/test_amount
 src/util/test_crypto
 src/util/test_json
@@ -126,3 +128,4 @@ uncrustify.cfg
 vgcore.*
 tags
 /.vscode
+src/testing/test_bank_api_with_nexus
diff --git a/.gitmodules b/.gitmodules
index de5e3305..af62a847 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -5,3 +5,6 @@
        path = doc/prebuilt
        url = https://git.taler.net/docs.git
        branch = prebuilt
+[submodule "contrib/gana"]
+       path = contrib/gana
+       url = https://gnunet.org/git/gana.git
diff --git a/README b/README
index 99e19b4d..e7c52ec0 100644
--- a/README
+++ b/README
@@ -33,7 +33,7 @@ Dependencies:
 These are the direct dependencies for running a Taler exchange:
 
 - GNUnet            >= 0.10.2
-- GNU libmicrohttpd >= 0.9.55
+- GNU libmicrohttpd >= 0.9.71
 - Postgres          >= 9.5
 
 
diff --git a/bootstrap b/bootstrap
index 44f929c6..55522f71 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,5 +1,7 @@
 #!/bin/sh
 
+set -eu
+
 if ! git --version >/dev/null; then
   echo "git not installed"
   exit 1
@@ -7,6 +9,13 @@ fi
 
 git submodule update --init
 
+# Generate taler-error-codes.h in gana and copy it to
+# src/include/taler_error_codes.h
+cd contrib/gana/gnu-taler-error-codes
+make
+cd ../../..
+cp contrib/gana/gnu-taler-error-codes/taler-error-codes.h 
src/include/taler_error_codes.h
+
 # This is more portable than `which' but comes with
 # the caveat of not(?) properly working on busybox's ash:
 existence()
diff --git a/configure.ac b/configure.ac
index 401f84c2..a51b3247 100644
--- a/configure.ac
+++ b/configure.ac
@@ -261,6 +261,16 @@ AS_IF([test $libgnunetpq != 1],
 *** ]])])
 
 
+# Check for GNUnet's libgnunetsq
+libgnunetsq=0
+AC_MSG_CHECKING([for libgnunetsq])
+AC_CHECK_HEADERS([gnunet/gnunet_sq_lib.h],
+ [AC_CHECK_LIB([gnunetsq], [GNUNET_SQ_result_spec_string], libgnunetsq=1)],
+  [], [#ifdef HAVE_GNUNET_PLATFORM_H
+        #include <gnunet/platform.h>
+       #endif])
+
+
 # check for libmicrohttpd
 microhttpd=0
 AC_MSG_CHECKING([for microhttpd])
@@ -326,6 +336,35 @@ CFLAGS=$CFLAGS_SAVE
 LDFLAGS=$LDFLAGS_SAVE
 LIBS=$LIBS_SAVE
 
+# test for sqlite
+sqlite=false
+AC_MSG_CHECKING(for SQLite)
+AC_ARG_WITH(sqlite,
+  [  --with-sqlite=PFX       base of SQLite installation],
+  [AC_MSG_RESULT("$with_sqlite")
+   AS_CASE([$with_sqlite],
+     [no],[],
+     [yes],[
+      AC_CHECK_HEADERS(sqlite3.h,
+      sqlite=true)],
+     [
+    LDFLAGS="-L$with_sqlite/lib $LDFLAGS"
+    CPPFLAGS="-I$with_sqlite/include $CPPFLAGS"
+    AC_CHECK_HEADERS(sqlite3.h,
+     EXT_LIB_PATH="-L$with_sqlite/lib $EXT_LIB_PATH"
+     SQLITE_LDFLAGS="-L$with_sqlite/lib"
+     SQLITE_CPPFLAGS="-I$with_sqlite/include"
+     sqlite=true)
+    LDFLAGS=$SAVE_LDFLAGS
+    CPPFLAGS=$SAVE_CPPFLAGS
+    ])
+  ],
+  [AC_MSG_RESULT([--with-sqlite not specified])
+    AC_CHECK_HEADERS(sqlite3.h, sqlite=true)])
+AM_CONDITIONAL(HAVE_SQLITE, [test x$sqlite = xtrue] && [test $libgnunetsq = 1])
+AC_SUBST(SQLITE_CPPFLAGS)
+AC_SUBST(SQLITE_LDFLAGS)
+
 # check for libtalertwistertesting
 talertwister=0
 AC_MSG_CHECKING([for talertwister])
@@ -459,6 +498,7 @@ AM_CONDITIONAL([ENABLE_DOC], [test "x$enable_doc" = "xyes"])
 AM_CONDITIONAL([HAVE_EXPENSIVE_TESTS], [false])
 AM_CONDITIONAL([MHD_HAVE_EPOLL], [false])
 AM_CONDITIONAL([HAVE_POSTGRESQL], [false])
+AM_CONDITIONAL([HAVE_SQLITE], [false])
 AM_CONDITIONAL([HAVE_LIBCURL], [false])
 AM_CONDITIONAL([HAVE_LIBGNURL], [false])
 AM_CONDITIONAL([HAVE_DEVELOPER], [false])
@@ -488,6 +528,7 @@ AC_CONFIG_FILES([Makefile
                  src/json/Makefile
                  src/mhd/Makefile
                  src/pq/Makefile
+                 src/sq/Makefile
                  src/util/Makefile
                  ])
 AC_OUTPUT
diff --git a/contrib/gana b/contrib/gana
new file mode 160000
index 00000000..c0fedb8d
--- /dev/null
+++ b/contrib/gana
@@ -0,0 +1 @@
+Subproject commit c0fedb8d45c41fb283fec714b48278e6661d51be
diff --git a/contrib/tos/tos.rst b/contrib/tos/tos.rst
index 2ef5c2c2..9e500cae 100644
--- a/contrib/tos/tos.rst
+++ b/contrib/tos/tos.rst
@@ -87,6 +87,16 @@ transfers that cannot be reversed. We will only refuse to 
execute transfers if
 the transfers are prohibited by a competent legal authority and we are ordered
 to do so.
 
+When using our Services, you agree to not take any action that intentionally
+imposes an unreasonable load on our infrastructure. If you find security
+problems in our Services, you agree to first report them to
+security@taler-systems.com and grant us the right to publish your report. We
+warrant that we will ourselves publicly disclose any issues reported within 3
+months, and that we will not prosecute anyone reporting security issues if
+they did not exploit the issue beyond a proof-of-concept, and followed the
+above responsible disclosure practice.
+
+
 Fees
 ----
 
@@ -104,17 +114,14 @@ We reserve the right to provide different types of 
rewards to users either in
 the form of discount for our Services or in any other form at our discretion
 and without prior notice to you.
 
-Eligibility
------------
+Eligibility and Financial self-responsibility
+---------------------------------------------
 
 To be eligible to use our Services, you must be able to form legally binding
 contracts or have the permission of your legal guardian. By using our
 Services, you represent and warrant that you meet all eligibility requirements
 that we outline in these Terms.
 
-Financial self-responsibility
------------------------------
-
 You will be responsible for maintaining the availability, integrity and
 confidentiality of the data stored in your wallet. When you setup a Taler
 Wallet, you are strongly advised to follow the precautionary measures offered
@@ -136,17 +143,6 @@ of Taler Systems SA. You are welcome to use the name in 
relation to processing
 payments using the Taler protocol, assuming your use is compatible with an
 official release from the GNU Project that is not older than two years.
 
-Your use of our services
-------------------------
-
-When using our Services, you agree to not take any action that intentionally
-imposes an unreasonable load on our infrastructure. If you find security
-problems in our Services, you agree to first report them to
-security@taler-systems.com and grant us the right to publish your report. We
-warrant that we will ourselves publicly disclose any issues reported within 3
-months, and that we will not prosecute anyone reporting security issues if
-they did not exploit the issue beyond a proof-of-concept, and followed the
-above responsible disclosure practice.
 
 Limitation of liability & disclaimer of warranties
 --------------------------------------------------
@@ -175,9 +171,6 @@ Any other terms, conditions, warranties, or representations 
associated with
 such content, are solely between you and such organizations and/or
 individuals.
 
-Limitation of liability
------------------------
-
 To the fullest extent permitted by applicable law, in no event will we or any
 of our officers, directors, representatives, agents, servants, counsel,
 employees, consultants, lawyers, and other personnel authorized to act,
@@ -206,9 +199,6 @@ damages. Some jurisdictions do not allow the exclusion or 
limitation of
 liability for consequential or incidental damages, so the above limitation may
 not apply to you.
 
-Warranty disclaimer
--------------------
-
 Our services are provided "as is" and without warranty of any kind. To the
 maximum extent permitted by law, we disclaim all representations and
 warranties, express or implied, relating to the services and underlying
@@ -225,8 +215,8 @@ implied warranties, so the foregoing disclaimers may not 
apply to you. This
 paragraph gives you specific legal rights and you may also have other legal
 rights that vary from state to state.
 
-Indemnity
----------
+Indemnity and Time limitation on claims and Termination
+-------------------------------------------------------
 
 To the extent permitted by applicable law, you agree to defend, indemnify, and
 hold harmless the Taler Parties from and against any and all claims, damages,
@@ -236,32 +226,16 @@ the Services; (b) any feedback or submissions you provide 
to us concerning the
 Taler Wallet; (c) your violation of any term of this Agreement; or (d) your
 violation of any law, rule, or regulation, or the rights of any third party.
 
-Time limitation on claims
--------------------------
-
 You agree that any claim you may have arising out of or related to your
 relationship with us must be filed within one year after such claim arises,
 otherwise, your claim in permanently barred.
 
-Governing law
--------------
-
-No matter where you’re located, the laws of Switzerland will govern these
-Terms. If any provisions of these Terms are inconsistent with any applicable
-law, those provisions will be superseded or modified only to the extent such
-provisions are inconsistent. The parties agree to submit to the ordinary
-courts in Zurich, Switzerland for exclusive jurisdiction of any dispute
-arising out of or related to your use of the Services or your breach of these
-Terms.
-
-Termination
------------
-
 In the event of termination concerning your use of our Services, your
 obligations under this Agreement will still continue.
 
-Discontinuance of services
---------------------------
+
+Discontinuance of services and Force majeure
+--------------------------------------------
 
 We may, in our sole discretion and without cost to you, with or without prior
 notice, and at any time, modify or discontinue, temporarily or permanently,
@@ -273,24 +247,6 @@ or liable for any loss of funds in the event that we 
discontinue or depreciate
 the Services and your Taler Wallet fails to transfer out the coins within a
 three months notification period.
 
-No waiver
----------
-
-Our failure to exercise or delay in exercising any right, power, or privilege
-under this Agreement shall not operate as a waiver; nor shall any single or
-partial exercise of any right, power, or privilege preclude any other or
-further exercise thereof.
-
-Severability
-------------
-
-If it turns out that any part of this Agreement is invalid, void, or for any
-reason unenforceable, that term will be deemed severable and limited or
-eliminated to the minimum extent necessary.
-
-Force majeure
--------------
-
 We shall not be held liable for any delays, failure in performance, or
 interruptions of service which result directly or indirectly from any cause or
 condition beyond our reasonable control, including but not limited to: any
@@ -301,14 +257,29 @@ services, failure of equipment and/or software, other 
catastrophe, or any
 other occurrence which is beyond our reasonable control and shall not affect
 the validity and enforceability of any remaining provisions.
 
-Assignment
-----------
+
+Governing law, Waivers, Severability and Assignment
+------------------------------------------------
+
+No matter where you’re located, the laws of Switzerland will govern these
+Terms. If any provisions of these Terms are inconsistent with any applicable
+law, those provisions will be superseded or modified only to the extent such
+provisions are inconsistent. The parties agree to submit to the ordinary
+courts in Zurich, Switzerland for exclusive jurisdiction of any dispute
+arising out of or related to your use of the Services or your breach of these
+Terms.
+
+Our failure to exercise or delay in exercising any right, power, or privilege
+under this Agreement shall not operate as a waiver; nor shall any single or
+partial exercise of any right, power, or privilege preclude any other or
+further exercise thereof.
 
 You agree that we may assign any of our rights and/or transfer, sub-contract,
 or delegate any of our obligations under these Terms.
 
-Entire agreement
-----------------
+If it turns out that any part of this Agreement is invalid, void, or for any
+reason unenforceable, that term will be deemed severable and limited or
+eliminated to the minimum extent necessary.
 
 This Agreement sets forth the entire understanding and agreement as to the
 subject matter hereof and supersedes any and all prior discussions,
@@ -317,6 +288,7 @@ prior versions of this Agreement) and every nature between 
us. Except as
 provided for above, any modification to this Agreement must be in writing and
 must be signed by both parties.
 
+
 Questions or comments
 ---------------------
 
diff --git a/doc/audit/report-202005.pdf b/doc/audit/report-202005.pdf
new file mode 100644
index 00000000..55d52cdf
Binary files /dev/null and b/doc/audit/report-202005.pdf differ
diff --git a/doc/audit/response-202005.tex b/doc/audit/response-202005.tex
new file mode 100644
index 00000000..b07e053e
--- /dev/null
+++ b/doc/audit/response-202005.tex
@@ -0,0 +1,238 @@
+\documentclass[11pt]{article}
+\oddsidemargin=0in \evensidemargin=0in
+\textwidth=6.2in \textheight=8.7in
+%\topmargin=-0.2in
+
+\usepackage[ansinew]{inputenc}
+\usepackage{makeidx,amsmath,amssymb,exscale,multicol,epsfig,graphics}
+
+\begin{document}
+\pagestyle{headings}
+\title{Preliminary response to the \\ GNU Taler security audit in Q2/Q3 2020}
+\author{Christian Grothoff \and Florian Dold}
+
+\maketitle
+
+\section{Abstract}
+
+This is the preliminary response to the source code audit report CodeBlau
+created for GNU Taler in Q2/Q3 2020.  A final response with more details is
+expected later this year.
+
+\section{Management Summary}
+
+We thank CodeBlau for their detailed report and thorough analysis. We are
+particularly impressed that they reported issues against components that were
+not even in-scope, and also that they found an {\em interesting} new corner
+case we had not previously considered. Finally, we also find several of their
+architectural recommendations to strengthen security to be worthwhile, and
+while some were already on our long-term roadmap, we will reprioritize our
+roadmap given their recommendations.
+
+Given our extensive discussions with CodeBlau, we also have the impression
+that they really took the time to understand the system, and look forward
+to working with CodeBlau as a competent auditor for GNU Taler in the future.
+
+\section{Issues in the exchange}
+
+We agree with the issues CodeBlau discovered and both parties believe that
+they have all been addressed.
+
+\section{Issues in the auditor}
+
+We appreciate CodeBlau's extensive list of checks the Taler auditor performs,
+which was previously not documented adequately by us. We agree that the
+auditor still needs more comprehensive documentation.
+
+As for issue \#6416, we agree with the analysis and the proposed fix, even if
+the implications are not fully clear. It has not yet been implemented as we
+want to carefully review all of the SQL statements implicated in the
+resolution and ensure we fully understand the implications.
+
+\section{Issues in GNUnet}
+
+We agree with the issues CodeBlau discovered and both parties believe that
+they have all been addressed.
+
+\section{General remarks on the code}
+
+We understand that writing the code in another programming language may make
+certain checks for the auditor less work to implement. However, our choice of C
+is based on the advantages that make it superior to contemporary languages for
+our use case:  relatively low complexity of the language (compared to C++);
+availability of mature compilers, static and dynamic analysis tools;
+predictable performance; access to stable and battle-tested libraries; and
+future-proofness due to portability to older systems as well as new platforms.
+
+We believe creating a parallel implementation in other languages would provide
+advantages, especially with respect to avoiding ``the implementation is the
+specification''-style issues.  However, given limited resources will not make
+this a priority.
+
+We disagree that all modern software development has embraced the idea that
+memory errors are to be handled in ways other than terminating or restarting
+the process. Many programming languages (Erlang, Java) hardly offer any other
+means of handling out-of-memory situations than to terminate the process. We
+also insist that Taler {\em does} handle out-of-memory as it does have code
+that terminates the process (we do {\em not} simply ignore the return value
+from {\tt malloc()} or other allocation functions!). We simply consider that
+terminating the process (which is run by a hypervisor that will restart the
+service) is the correct way to handle out-of-memory situations.  We also have
+limits in place that should prevent attackers from causing large amounts of
+memory to be consumed, and also have code to automatically preemptively
+restart the process to guard against memory exhaustion from memory
+fragmentation.  Finally, a common problem with abrupt termination may be
+corrupted files.  However, the code mostly only reads from files and limits
+writing to the Postgres database. Hence, there is no possibility of corrupt
+files being left behind even in the case of abnormal termination.
+
+
+\section{More specs and documentation code}
+
+We agree with the recommendation that the documentation should be improved,
+and will try to improve it along the lines recommended by CodeBlau.
+
+\section{Protocol change: API for uniformly distributed seeds}
+
+We agree with the suggestion, have made the necessary changes, and both
+parties believe that the suggestion has been implemented.
+
+\section{Reduce code complexity}
+
+\subsection{Reduce global variables}
+
+While we do not disagree with the general goal to have few global variables,
+we also believe that there are cases where global variables make sense.
+
+We have already tried to minimize the scope of variables. The remaining few
+global variables are largely ``read-only'' configuration data. The report does
+not point out specific instances that would be particularly beneficial to
+eliminate. As we continue to work on the code, we will of course evaluate
+whether the removal of a particular global variable would make the code
+cleaner.
+
+Also, we want to point out that all global variables we introduce
+in the exchange are indicated with a prefix {\tt TEH\_} in the code, so they
+are easy to identify as such.
+
+\subsection{Callbacks, type p(r)unning}
+
+We understand that higher order functions in C can be confusing, but this
+is also a common pattern to enable code re-use and asynchronous execution
+which is essential for network applications. We do not believe that we
+use callbacks {\em excessively}.  Rewriting the code in another language
+may indeed make this part easier to understand, alas would have other
+disadvantages as pointed out previously.
+
+\subsection{Initializing structs with memset}
+
+Using {\tt memset()} first prevents compiler (or valgrind) warnings about
+using uninitialized memory, possibly hiding bugs. We also do use struct
+initialization in many cases.
+
+The GNUnet-wrappers are generally designed to be ``safer'' or ``stricter''
+variants of the corresponding libc functions, and not merely ``the same''.
+Hence we do not believe that renaming {\tt GNUNET\_malloc} is indicated.
+
+The argument that {\tt memset()}ing first makes the code inherently more
+obvious also seems fallacious, as it would commonly result in dead stores,
+which can confuse developers and produce false-positive warnings from static
+analysis tools.
+
+\subsection{NULL pointer handling}
+
+The problem with the ``goto fail'' style error handling is that it rarely
+results in specific error handling where diagnostics are created that are
+specific to the error. Using this style of programming encourages developers
+to create simplistic error handling, which can result in inappropriate error
+handling logic and also makes it harder to attribute errors to the specific
+cause.
+
+However, we have no prohibition on using this style of error handling either:
+if it is appropriate, develpers should make a case-by-case decision as to how
+to best handle a specific error.
+
+We have made some first changes to how {\tt GNUNET\_free()} works in response
+to the report, and will discuss further changes with the GNUnet development
+team.
+
+\subsection{Hidden security assumptions}
+
+We disagree that the assumptions stated are ``hidden'', as (1) the Taler code
+has its own checks to warrant that the requirements of the {\tt
+  GNUNET\_malloc()} API are satisfied (so enforcement is not limited to the
+abstraction layer), and (2) the maximum allocation size limit is quite clearly
+specified in the GNUnet documentation.  Also, the GNUnet-functions are not
+merely an abstraction layer for portability, but they provided extended
+semantics that we rely upon. So it is not like it is possible to swap this
+layer and expect anything to continue to work.
+
+When we use the libjansson library, it is understood that it does not use
+the GNUnet operations, and the code is careful about this distinction.
+
+\subsection{Get rid of boolean function arguments}
+
+We agree that this can make the code more readable, and have in some places
+already changed the code in this way.
+
+\section{Structural Recommendation}
+
+\subsection{Least privilege}
+
+It is wrong to say that GNU Taler has ``no work done'' on privilege separation.
+For example, the {\tt taler-exchange-dbinit} tool is the only tool that 
requires
+CREATE, ALTER and DROP rights on database tables, thus enusring that the 
``main''
+process does not need these rights.
+
+We also already had the {\tt taler-exchange-keyup} tool responsible for
+initializing keys. In response to the audit, we already changed the GNUnet API
+to make sure that tools do not create keys as a side-effect of trying to read
+non-existent key files.
+
+We agree with the recommendation on further privilege separation for access
+to cryptographic keys, and intend to implement this in the near future.
+
+\subsection{File system access}
+
+The auditor helpers actually only read from the file system, only the LaTeX
+invocation to compile the final report to PDF inherently needs write
+access. We do not predict that we will retool LaTeX.  Also, the file system
+access is completely uncritical, as the auditor by design runs on a system
+that is separate from the production exchange system.
+
+Because that system will not have {\em any} crypto keys (not even the one of
+the auditor!), CodeBlau is wrong to assume that reading from or writing to the
+file system represents a security threat.
+
+We have started to better document the operational requirements on running the
+auditor.
+
+\subsection{Avoid dlopen}
+
+Taler actually uses {\tt ltdlopen()} from GNU libtool, which provides
+compiler flags to convert the dynamic linkage into static linkage.  For
+development, dynamic linkage has many advantages.
+
+We plan to test and document how to build GNU Taler with only static
+linkage, and will recommend this style of deployment for the Taler
+exchange for production.
+
+\subsection{Reduce reliance on PostgreSQL}
+
+CodeBlau's suggestion to use an append-only transaction logging service in
+addition to the PostgreSQL database is a reasonable suggestion for a
+production-grade deployment of GNU Taler, as it would allow partial disaster
+recovery even in the presence of an attacker that has gained write access to
+the exchange's database.
+
+We are currently still investigating whether the transaction logging should be
+implemented directly by the exchange service, or via the database's extensible
+replication mechanism.  Any implementation of such an append-only logging
+mechanism must be carefully designed to ensure it does not negatively impact
+the exchange's availability and does not interfere with serializability of
+database transactions.  As such we believe that transaction logging can only be
+provided on a best-effort basis.  Fortunately, even a best-effort append-only
+transaction log would serve to limit the financial damage incurred by the
+exchange in an active database compromise scenario.
+
+\end{document}
diff --git a/src/Makefile.am b/src/Makefile.am
index 4b07a116..4d4e533e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,6 +3,9 @@ AM_CPPFLAGS = -I$(top_srcdir)/src/include
 if HAVE_POSTGRESQL
   PQ_DIR = pq
 endif
+if HAVE_SQLITE
+  SQ_DIR = sq
+endif
 
 pkgcfgdir = $(prefix)/share/taler/config.d/
 pkgcfg_DATA = \
@@ -17,6 +20,7 @@ SUBDIRS = \
   json \
   curl \
   $(PQ_DIR) \
+  $(SQ_DIR) \
   mhd \
   bank-lib \
   exchangedb \
diff --git a/src/auditor/auditor-basedb.age b/src/auditor/auditor-basedb.age
deleted file mode 100644
index 43f81861..00000000
--- a/src/auditor/auditor-basedb.age
+++ /dev/null
@@ -1 +0,0 @@
-1584124548
diff --git a/src/auditor/auditor-basedb.fees b/src/auditor/auditor-basedb.fees
deleted file mode 100644
index c3fe1637..00000000
Binary files a/src/auditor/auditor-basedb.fees and /dev/null differ
diff --git a/src/auditor/auditor-basedb.mpub b/src/auditor/auditor-basedb.mpub
deleted file mode 100644
index 0ed9694f..00000000
--- a/src/auditor/auditor-basedb.mpub
+++ /dev/null
@@ -1 +0,0 @@
-BX3MKH0E1YPF03P1T2G4NKMYNHBGE1TC2N5P6RWHT1JHNXC32EN0
diff --git a/src/auditor/auditor-basedb.sql b/src/auditor/auditor-basedb.sql
deleted file mode 100644
index 4e592593..00000000
--- a/src/auditor/auditor-basedb.sql
+++ /dev/null
@@ -1,4881 +0,0 @@
---
--- PostgreSQL database dump
---
-
--- Dumped from database version 10.5 (Debian 10.5-1)
--- Dumped by pg_dump version 10.5 (Debian 10.5-1)
-
-SET statement_timeout = 0;
-SET lock_timeout = 0;
-SET idle_in_transaction_session_timeout = 0;
-SET client_encoding = 'UTF8';
-SET standard_conforming_strings = on;
-SELECT pg_catalog.set_config('search_path', '', false);
-SET check_function_bodies = false;
-SET client_min_messages = warning;
-SET row_security = off;
-
---
--- Name: _v; Type: SCHEMA; Schema: -; Owner: -
---
-
-CREATE SCHEMA _v;
-
-
---
--- Name: SCHEMA _v; Type: COMMENT; Schema: -; Owner: -
---
-
-COMMENT ON SCHEMA _v IS 'Schema for versioning data and functionality.';
-
-
---
--- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
---
-
-CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
-
-
---
--- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -
---
-
-COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
-
-
---
--- Name: assert_patch_is_applied(text); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.assert_patch_is_applied(in_patch_name text) RETURNS text
-    LANGUAGE plpgsql
-    AS $$
-DECLARE
-    t_text TEXT;
-BEGIN
-    SELECT patch_name INTO t_text FROM _v.patches WHERE patch_name = 
in_patch_name;
-    IF NOT FOUND THEN
-        RAISE EXCEPTION 'Patch % is not applied!', in_patch_name;
-    END IF;
-    RETURN format('Patch %s is applied.', in_patch_name);
-END;
-$$;
-
-
---
--- Name: FUNCTION assert_patch_is_applied(in_patch_name text); Type: COMMENT; 
Schema: _v; Owner: -
---
-
-COMMENT ON FUNCTION _v.assert_patch_is_applied(in_patch_name text) IS 
'Function that can be used to make sure that patch has been applied.';
-
-
---
--- Name: assert_user_is_not_superuser(); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.assert_user_is_not_superuser() RETURNS text
-    LANGUAGE plpgsql
-    AS $$
-DECLARE
-    v_super bool;
-BEGIN
-    SELECT usesuper INTO v_super FROM pg_user WHERE usename = current_user;
-    IF v_super THEN
-        RAISE EXCEPTION 'Current user is superuser - cannot continue.';
-    END IF;
-    RETURN 'assert_user_is_not_superuser: OK';
-END;
-$$;
-
-
---
--- Name: FUNCTION assert_user_is_not_superuser(); Type: COMMENT; Schema: _v; 
Owner: -
---
-
-COMMENT ON FUNCTION _v.assert_user_is_not_superuser() IS 'Function that can be 
used to make sure that patch is being applied using normal (not superuser) 
account.';
-
-
---
--- Name: assert_user_is_one_of(text[]); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.assert_user_is_one_of(VARIADIC p_acceptable_users text[]) 
RETURNS text
-    LANGUAGE plpgsql
-    AS $$
-DECLARE
-BEGIN
-    IF current_user = any( p_acceptable_users ) THEN
-        RETURN 'assert_user_is_one_of: OK';
-    END IF;
-    RAISE EXCEPTION 'User is not one of: % - cannot continue.', 
p_acceptable_users;
-END;
-$$;
-
-
---
--- Name: FUNCTION assert_user_is_one_of(VARIADIC p_acceptable_users text[]); 
Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON FUNCTION _v.assert_user_is_one_of(VARIADIC p_acceptable_users 
text[]) IS 'Function that can be used to make sure that patch is being applied 
by one of defined users.';
-
-
---
--- Name: assert_user_is_superuser(); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.assert_user_is_superuser() RETURNS text
-    LANGUAGE plpgsql
-    AS $$
-DECLARE
-    v_super bool;
-BEGIN
-    SELECT usesuper INTO v_super FROM pg_user WHERE usename = current_user;
-    IF v_super THEN
-        RETURN 'assert_user_is_superuser: OK';
-    END IF;
-    RAISE EXCEPTION 'Current user is not superuser - cannot continue.';
-END;
-$$;
-
-
---
--- Name: FUNCTION assert_user_is_superuser(); Type: COMMENT; Schema: _v; 
Owner: -
---
-
-COMMENT ON FUNCTION _v.assert_user_is_superuser() IS 'Function that can be 
used to make sure that patch is being applied using superuser account.';
-
-
---
--- Name: register_patch(text); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.register_patch(text) RETURNS SETOF integer
-    LANGUAGE sql
-    AS $_$
-    SELECT _v.register_patch( $1, NULL, NULL );
-$_$;
-
-
---
--- Name: FUNCTION register_patch(text); Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON FUNCTION _v.register_patch(text) IS 'Wrapper to allow registration 
of patches without requirements and conflicts.';
-
-
---
--- Name: register_patch(text, text[]); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.register_patch(text, text[]) RETURNS SETOF integer
-    LANGUAGE sql
-    AS $_$
-    SELECT _v.register_patch( $1, $2, NULL );
-$_$;
-
-
---
--- Name: FUNCTION register_patch(text, text[]); Type: COMMENT; Schema: _v; 
Owner: -
---
-
-COMMENT ON FUNCTION _v.register_patch(text, text[]) IS 'Wrapper to allow 
registration of patches without conflicts.';
-
-
---
--- Name: register_patch(text, text[], text[]); Type: FUNCTION; Schema: _v; 
Owner: -
---
-
-CREATE FUNCTION _v.register_patch(in_patch_name text, in_requirements text[], 
in_conflicts text[], OUT versioning integer) RETURNS SETOF integer
-    LANGUAGE plpgsql
-    AS $$
-DECLARE
-    t_text   TEXT;
-    t_text_a TEXT[];
-    i INT4;
-BEGIN
-    -- Thanks to this we know only one patch will be applied at a time
-    LOCK TABLE _v.patches IN EXCLUSIVE MODE;
-
-    SELECT patch_name INTO t_text FROM _v.patches WHERE patch_name = 
in_patch_name;
-    IF FOUND THEN
-        RAISE EXCEPTION 'Patch % is already applied!', in_patch_name;
-    END IF;
-
-    t_text_a := ARRAY( SELECT patch_name FROM _v.patches WHERE patch_name = 
any( in_conflicts ) );
-    IF array_upper( t_text_a, 1 ) IS NOT NULL THEN
-        RAISE EXCEPTION 'Versioning patches conflict. Conflicting patche(s) 
installed: %.', array_to_string( t_text_a, ', ' );
-    END IF;
-
-    IF array_upper( in_requirements, 1 ) IS NOT NULL THEN
-        t_text_a := '{}';
-        FOR i IN array_lower( in_requirements, 1 ) .. array_upper( 
in_requirements, 1 ) LOOP
-            SELECT patch_name INTO t_text FROM _v.patches WHERE patch_name = 
in_requirements[i];
-            IF NOT FOUND THEN
-                t_text_a := t_text_a || in_requirements[i];
-            END IF;
-        END LOOP;
-        IF array_upper( t_text_a, 1 ) IS NOT NULL THEN
-            RAISE EXCEPTION 'Missing prerequisite(s): %.', array_to_string( 
t_text_a, ', ' );
-        END IF;
-    END IF;
-
-    INSERT INTO _v.patches (patch_name, applied_tsz, applied_by, requires, 
conflicts ) VALUES ( in_patch_name, now(), current_user, coalesce( 
in_requirements, '{}' ), coalesce( in_conflicts, '{}' ) );
-    RETURN;
-END;
-$$;
-
-
---
--- Name: FUNCTION register_patch(in_patch_name text, in_requirements text[], 
in_conflicts text[], OUT versioning integer); Type: COMMENT; Schema: _v; Owner: 
-
---
-
-COMMENT ON FUNCTION _v.register_patch(in_patch_name text, in_requirements 
text[], in_conflicts text[], OUT versioning integer) IS 'Function to register 
patches in database. Raises exception if there are conflicts, prerequisites are 
not installed or the migration has already been installed.';
-
-
---
--- Name: unregister_patch(text); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.unregister_patch(in_patch_name text, OUT versioning 
integer) RETURNS SETOF integer
-    LANGUAGE plpgsql
-    AS $$
-DECLARE
-    i        INT4;
-    t_text_a TEXT[];
-BEGIN
-    -- Thanks to this we know only one patch will be applied at a time
-    LOCK TABLE _v.patches IN EXCLUSIVE MODE;
-
-    t_text_a := ARRAY( SELECT patch_name FROM _v.patches WHERE in_patch_name = 
ANY( requires ) );
-    IF array_upper( t_text_a, 1 ) IS NOT NULL THEN
-        RAISE EXCEPTION 'Cannot uninstall %, as it is required by: %.', 
in_patch_name, array_to_string( t_text_a, ', ' );
-    END IF;
-
-    DELETE FROM _v.patches WHERE patch_name = in_patch_name;
-    GET DIAGNOSTICS i = ROW_COUNT;
-    IF i < 1 THEN
-        RAISE EXCEPTION 'Patch % is not installed, so it can''t be 
uninstalled!', in_patch_name;
-    END IF;
-
-    RETURN;
-END;
-$$;
-
-
---
--- Name: FUNCTION unregister_patch(in_patch_name text, OUT versioning 
integer); Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON FUNCTION _v.unregister_patch(in_patch_name text, OUT versioning 
integer) IS 'Function to unregister patches in database. Dies if the patch is 
not registered, or if unregistering it would break dependencies.';
-
-
-SET default_tablespace = '';
-
-SET default_with_oids = false;
-
---
--- Name: patches; Type: TABLE; Schema: _v; Owner: -
---
-
-CREATE TABLE _v.patches (
-    patch_name text NOT NULL,
-    applied_tsz timestamp with time zone DEFAULT now() NOT NULL,
-    applied_by text NOT NULL,
-    requires text[],
-    conflicts text[]
-);
-
-
---
--- Name: TABLE patches; Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON TABLE _v.patches IS 'Contains information about what patches are 
currently applied on database.';
-
-
---
--- Name: COLUMN patches.patch_name; Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON COLUMN _v.patches.patch_name IS 'Name of patch, has to be unique 
for every patch.';
-
-
---
--- Name: COLUMN patches.applied_tsz; Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON COLUMN _v.patches.applied_tsz IS 'When the patch was applied.';
-
-
---
--- Name: COLUMN patches.applied_by; Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON COLUMN _v.patches.applied_by IS 'Who applied this patch (PostgreSQL 
username)';
-
-
---
--- Name: COLUMN patches.requires; Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON COLUMN _v.patches.requires IS 'List of patches that are required 
for given patch.';
-
-
---
--- Name: COLUMN patches.conflicts; Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON COLUMN _v.patches.conflicts IS 'List of patches that conflict with 
given patch.';
-
-
---
--- Name: aggregation_tracking; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.aggregation_tracking (
-    aggregation_serial_id bigint NOT NULL,
-    deposit_serial_id bigint NOT NULL,
-    wtid_raw bytea
-);
-
-
---
--- Name: TABLE aggregation_tracking; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.aggregation_tracking IS 'mapping from wire transfer 
identifiers (WTID) to deposits (and back)';
-
-
---
--- Name: aggregation_tracking_aggregation_serial_id_seq; Type: SEQUENCE; 
Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.aggregation_tracking_aggregation_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: aggregation_tracking_aggregation_serial_id_seq; Type: SEQUENCE OWNED 
BY; Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.aggregation_tracking_aggregation_serial_id_seq OWNED BY 
public.aggregation_tracking.aggregation_serial_id;
-
-
---
--- Name: app_bankaccount; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.app_bankaccount (
-    is_public boolean NOT NULL,
-    account_no integer NOT NULL,
-    balance character varying NOT NULL,
-    user_id integer NOT NULL
-);
-
-
---
--- Name: app_bankaccount_account_no_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.app_bankaccount_account_no_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: app_bankaccount_account_no_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.app_bankaccount_account_no_seq OWNED BY 
public.app_bankaccount.account_no;
-
-
---
--- Name: app_banktransaction; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.app_banktransaction (
-    id integer NOT NULL,
-    amount character varying NOT NULL,
-    subject character varying(200) NOT NULL,
-    date timestamp with time zone NOT NULL,
-    cancelled boolean NOT NULL,
-    request_uid character varying(128) NOT NULL,
-    credit_account_id integer NOT NULL,
-    debit_account_id integer NOT NULL
-);
-
-
---
--- Name: app_banktransaction_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.app_banktransaction_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: app_banktransaction_id_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.app_banktransaction_id_seq OWNED BY 
public.app_banktransaction.id;
-
-
---
--- Name: app_talerwithdrawoperation; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.app_talerwithdrawoperation (
-    withdraw_id uuid NOT NULL,
-    amount character varying NOT NULL,
-    selection_done boolean NOT NULL,
-    confirmation_done boolean NOT NULL,
-    aborted boolean NOT NULL,
-    selected_reserve_pub text,
-    selected_exchange_account_id integer,
-    withdraw_account_id integer NOT NULL
-);
-
-
---
--- Name: auditor_balance_summary; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_balance_summary (
-    master_pub bytea,
-    denom_balance_val bigint NOT NULL,
-    denom_balance_frac integer NOT NULL,
-    deposit_fee_balance_val bigint NOT NULL,
-    deposit_fee_balance_frac integer NOT NULL,
-    melt_fee_balance_val bigint NOT NULL,
-    melt_fee_balance_frac integer NOT NULL,
-    refund_fee_balance_val bigint NOT NULL,
-    refund_fee_balance_frac integer NOT NULL,
-    risk_val bigint NOT NULL,
-    risk_frac integer NOT NULL,
-    loss_val bigint NOT NULL,
-    loss_frac integer NOT NULL,
-    irregular_recoup_val bigint NOT NULL,
-    irregular_recoup_frac integer NOT NULL
-);
-
-
---
--- Name: TABLE auditor_balance_summary; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_balance_summary IS 'the sum of the outstanding 
coins from auditor_denomination_pending (denom_pubs must belong to the 
respectives exchange master public key); it represents the 
auditor_balance_summary of the exchange at this point (modulo unexpected 
historic_loss-style events where denomination keys are compromised)';
-
-
---
--- Name: auditor_denomination_pending; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_denomination_pending (
-    denom_pub_hash bytea NOT NULL,
-    denom_balance_val bigint NOT NULL,
-    denom_balance_frac integer NOT NULL,
-    denom_loss_val bigint NOT NULL,
-    denom_loss_frac integer NOT NULL,
-    num_issued bigint NOT NULL,
-    denom_risk_val bigint NOT NULL,
-    denom_risk_frac integer NOT NULL,
-    recoup_loss_val bigint NOT NULL,
-    recoup_loss_frac integer NOT NULL
-);
-
-
---
--- Name: TABLE auditor_denomination_pending; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON TABLE public.auditor_denomination_pending IS 'outstanding 
denomination coins that the exchange is aware of and what the respective 
balances are (outstanding as well as issued overall which implies the maximum 
value at risk).';
-
-
---
--- Name: COLUMN auditor_denomination_pending.num_issued; Type: COMMENT; 
Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.auditor_denomination_pending.num_issued IS 'counts 
the number of coins issued (withdraw, refresh) of this denomination';
-
-
---
--- Name: COLUMN auditor_denomination_pending.denom_risk_val; Type: COMMENT; 
Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.auditor_denomination_pending.denom_risk_val IS 
'amount that could theoretically be lost in the future due to recoup 
operations';
-
-
---
--- Name: COLUMN auditor_denomination_pending.recoup_loss_val; Type: COMMENT; 
Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.auditor_denomination_pending.recoup_loss_val IS 
'amount actually lost due to recoup operations past revocation';
-
-
---
--- Name: auditor_denominations; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_denominations (
-    denom_pub_hash bytea NOT NULL,
-    master_pub bytea,
-    valid_from bigint NOT NULL,
-    expire_withdraw bigint NOT NULL,
-    expire_deposit bigint NOT NULL,
-    expire_legal bigint NOT NULL,
-    coin_val bigint NOT NULL,
-    coin_frac integer NOT NULL,
-    fee_withdraw_val bigint NOT NULL,
-    fee_withdraw_frac integer NOT NULL,
-    fee_deposit_val bigint NOT NULL,
-    fee_deposit_frac integer NOT NULL,
-    fee_refresh_val bigint NOT NULL,
-    fee_refresh_frac integer NOT NULL,
-    fee_refund_val bigint NOT NULL,
-    fee_refund_frac integer NOT NULL,
-    CONSTRAINT auditor_denominations_denom_pub_hash_check CHECK 
((length(denom_pub_hash) = 64))
-);
-
-
---
--- Name: TABLE auditor_denominations; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_denominations IS 'denomination keys the 
auditor is aware of';
-
-
---
--- Name: auditor_exchange_signkeys; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_exchange_signkeys (
-    master_pub bytea,
-    ep_start bigint NOT NULL,
-    ep_expire bigint NOT NULL,
-    ep_end bigint NOT NULL,
-    exchange_pub bytea NOT NULL,
-    master_sig bytea NOT NULL,
-    CONSTRAINT auditor_exchange_signkeys_exchange_pub_check CHECK 
((length(exchange_pub) = 32)),
-    CONSTRAINT auditor_exchange_signkeys_master_sig_check CHECK 
((length(master_sig) = 64))
-);
-
-
---
--- Name: TABLE auditor_exchange_signkeys; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON TABLE public.auditor_exchange_signkeys IS 'list of the online 
signing keys of exchanges we are auditing';
-
-
---
--- Name: auditor_exchanges; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_exchanges (
-    master_pub bytea NOT NULL,
-    exchange_url character varying NOT NULL,
-    CONSTRAINT auditor_exchanges_master_pub_check CHECK ((length(master_pub) = 
32))
-);
-
-
---
--- Name: TABLE auditor_exchanges; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_exchanges IS 'list of the exchanges we are 
auditing';
-
-
---
--- Name: auditor_historic_denomination_revenue; Type: TABLE; Schema: public; 
Owner: -
---
-
-CREATE TABLE public.auditor_historic_denomination_revenue (
-    master_pub bytea,
-    denom_pub_hash bytea NOT NULL,
-    revenue_timestamp bigint NOT NULL,
-    revenue_balance_val bigint NOT NULL,
-    revenue_balance_frac integer NOT NULL,
-    loss_balance_val bigint NOT NULL,
-    loss_balance_frac integer NOT NULL,
-    CONSTRAINT auditor_historic_denomination_revenue_denom_pub_hash_check 
CHECK ((length(denom_pub_hash) = 64))
-);
-
-
---
--- Name: TABLE auditor_historic_denomination_revenue; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_historic_denomination_revenue IS 'Table with 
historic profits; basically, when a denom_pub has expired and everything 
associated with it is garbage collected, the final profits end up in here; note 
that the denom_pub here is not a foreign key, we just keep it as a reference 
point.';
-
-
---
--- Name: COLUMN auditor_historic_denomination_revenue.revenue_balance_val; 
Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON COLUMN 
public.auditor_historic_denomination_revenue.revenue_balance_val IS 'the sum of 
all of the profits we made on the coin except for withdraw fees (which are in 
historic_reserve_revenue); so this includes the deposit, melt and refund fees';
-
-
---
--- Name: auditor_historic_reserve_summary; Type: TABLE; Schema: public; Owner: 
-
---
-
-CREATE TABLE public.auditor_historic_reserve_summary (
-    master_pub bytea,
-    start_date bigint NOT NULL,
-    end_date bigint NOT NULL,
-    reserve_profits_val bigint NOT NULL,
-    reserve_profits_frac integer NOT NULL
-);
-
-
---
--- Name: TABLE auditor_historic_reserve_summary; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_historic_reserve_summary IS 'historic profits 
from reserves; we eventually GC auditor_historic_reserve_revenue, and then 
store the totals in here (by time intervals).';
-
-
---
--- Name: auditor_predicted_result; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_predicted_result (
-    master_pub bytea,
-    balance_val bigint NOT NULL,
-    balance_frac integer NOT NULL
-);
-
-
---
--- Name: TABLE auditor_predicted_result; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON TABLE public.auditor_predicted_result IS 'Table with the sum of the 
ledger, auditor_historic_revenue and the auditor_reserve_balance.  This is the 
final amount that the exchange should have in its bank account right now.';
-
-
---
--- Name: auditor_progress_aggregation; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_progress_aggregation (
-    master_pub bytea NOT NULL,
-    last_wire_out_serial_id bigint DEFAULT 0 NOT NULL
-);
-
-
---
--- Name: TABLE auditor_progress_aggregation; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON TABLE public.auditor_progress_aggregation IS 'information as to 
which transactions the auditor has processed in the exchange database.  Used 
for SELECTing the
- statements to process.  The indices include the last serial ID from the 
respective tables that we have processed. Thus, we need to select those table 
entries that are strictly larger (and process in monotonically increasing 
order).';
-
-
---
--- Name: auditor_progress_coin; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_progress_coin (
-    master_pub bytea NOT NULL,
-    last_withdraw_serial_id bigint DEFAULT 0 NOT NULL,
-    last_deposit_serial_id bigint DEFAULT 0 NOT NULL,
-    last_melt_serial_id bigint DEFAULT 0 NOT NULL,
-    last_refund_serial_id bigint DEFAULT 0 NOT NULL,
-    last_recoup_serial_id bigint DEFAULT 0 NOT NULL,
-    last_recoup_refresh_serial_id bigint DEFAULT 0 NOT NULL
-);
-
-
---
--- Name: TABLE auditor_progress_coin; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_progress_coin IS 'information as to which 
transactions the auditor has processed in the exchange database.  Used for 
SELECTing the
- statements to process.  The indices include the last serial ID from the 
respective tables that we have processed. Thus, we need to select those table 
entries that are strictly larger (and process in monotonically increasing 
order).';
-
-
---
--- Name: auditor_progress_deposit_confirmation; Type: TABLE; Schema: public; 
Owner: -
---
-
-CREATE TABLE public.auditor_progress_deposit_confirmation (
-    master_pub bytea NOT NULL,
-    last_deposit_confirmation_serial_id bigint DEFAULT 0 NOT NULL
-);
-
-
---
--- Name: TABLE auditor_progress_deposit_confirmation; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_progress_deposit_confirmation IS 'information 
as to which transactions the auditor has processed in the exchange database.  
Used for SELECTing the
- statements to process.  The indices include the last serial ID from the 
respective tables that we have processed. Thus, we need to select those table 
entries that are strictly larger (and process in monotonically increasing 
order).';
-
-
---
--- Name: auditor_progress_reserve; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_progress_reserve (
-    master_pub bytea NOT NULL,
-    last_reserve_in_serial_id bigint DEFAULT 0 NOT NULL,
-    last_reserve_out_serial_id bigint DEFAULT 0 NOT NULL,
-    last_reserve_recoup_serial_id bigint DEFAULT 0 NOT NULL,
-    last_reserve_close_serial_id bigint DEFAULT 0 NOT NULL
-);
-
-
---
--- Name: TABLE auditor_progress_reserve; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON TABLE public.auditor_progress_reserve IS 'information as to which 
transactions the auditor has processed in the exchange database.  Used for 
SELECTing the
- statements to process.  The indices include the last serial ID from the 
respective tables that we have processed. Thus, we need to select those table 
entries that are strictly larger (and process in monotonically increasing 
order).';
-
-
---
--- Name: auditor_reserve_balance; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_reserve_balance (
-    master_pub bytea,
-    reserve_balance_val bigint NOT NULL,
-    reserve_balance_frac integer NOT NULL,
-    withdraw_fee_balance_val bigint NOT NULL,
-    withdraw_fee_balance_frac integer NOT NULL
-);
-
-
---
--- Name: TABLE auditor_reserve_balance; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_reserve_balance IS 'sum of the balances of all 
customer reserves (by exchange master public key)';
-
-
---
--- Name: auditor_reserves; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_reserves (
-    reserve_pub bytea NOT NULL,
-    master_pub bytea,
-    reserve_balance_val bigint NOT NULL,
-    reserve_balance_frac integer NOT NULL,
-    withdraw_fee_balance_val bigint NOT NULL,
-    withdraw_fee_balance_frac integer NOT NULL,
-    expiration_date bigint NOT NULL,
-    auditor_reserves_rowid bigint NOT NULL,
-    origin_account text,
-    CONSTRAINT auditor_reserves_reserve_pub_check CHECK ((length(reserve_pub) 
= 32))
-);
-
-
---
--- Name: TABLE auditor_reserves; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_reserves IS 'all of the customer reserves and 
their respective balances that the auditor is aware of';
-
-
---
--- Name: auditor_reserves_auditor_reserves_rowid_seq; Type: SEQUENCE; Schema: 
public; Owner: -
---
-
-CREATE SEQUENCE public.auditor_reserves_auditor_reserves_rowid_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auditor_reserves_auditor_reserves_rowid_seq; Type: SEQUENCE OWNED BY; 
Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.auditor_reserves_auditor_reserves_rowid_seq OWNED BY 
public.auditor_reserves.auditor_reserves_rowid;
-
-
---
--- Name: auditor_wire_fee_balance; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_wire_fee_balance (
-    master_pub bytea,
-    wire_fee_balance_val bigint NOT NULL,
-    wire_fee_balance_frac integer NOT NULL
-);
-
-
---
--- Name: TABLE auditor_wire_fee_balance; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON TABLE public.auditor_wire_fee_balance IS 'sum of the balances of 
all wire fees (by exchange master public key)';
-
-
---
--- Name: auth_group; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auth_group (
-    id integer NOT NULL,
-    name character varying(150) NOT NULL
-);
-
-
---
--- Name: auth_group_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.auth_group_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auth_group_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.auth_group_id_seq OWNED BY public.auth_group.id;
-
-
---
--- Name: auth_group_permissions; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auth_group_permissions (
-    id integer NOT NULL,
-    group_id integer NOT NULL,
-    permission_id integer NOT NULL
-);
-
-
---
--- Name: auth_group_permissions_id_seq; Type: SEQUENCE; Schema: public; Owner: 
-
---
-
-CREATE SEQUENCE public.auth_group_permissions_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auth_group_permissions_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.auth_group_permissions_id_seq OWNED BY 
public.auth_group_permissions.id;
-
-
---
--- Name: auth_permission; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auth_permission (
-    id integer NOT NULL,
-    name character varying(255) NOT NULL,
-    content_type_id integer NOT NULL,
-    codename character varying(100) NOT NULL
-);
-
-
---
--- Name: auth_permission_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.auth_permission_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auth_permission_id_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.auth_permission_id_seq OWNED BY 
public.auth_permission.id;
-
-
---
--- Name: auth_user; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auth_user (
-    id integer NOT NULL,
-    password character varying(128) NOT NULL,
-    last_login timestamp with time zone,
-    is_superuser boolean NOT NULL,
-    username character varying(150) NOT NULL,
-    first_name character varying(30) NOT NULL,
-    last_name character varying(150) NOT NULL,
-    email character varying(254) NOT NULL,
-    is_staff boolean NOT NULL,
-    is_active boolean NOT NULL,
-    date_joined timestamp with time zone NOT NULL
-);
-
-
---
--- Name: auth_user_groups; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auth_user_groups (
-    id integer NOT NULL,
-    user_id integer NOT NULL,
-    group_id integer NOT NULL
-);
-
-
---
--- Name: auth_user_groups_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.auth_user_groups_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auth_user_groups_id_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.auth_user_groups_id_seq OWNED BY 
public.auth_user_groups.id;
-
-
---
--- Name: auth_user_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.auth_user_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auth_user_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.auth_user_id_seq OWNED BY public.auth_user.id;
-
-
---
--- Name: auth_user_user_permissions; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auth_user_user_permissions (
-    id integer NOT NULL,
-    user_id integer NOT NULL,
-    permission_id integer NOT NULL
-);
-
-
---
--- Name: auth_user_user_permissions_id_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.auth_user_user_permissions_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auth_user_user_permissions_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.auth_user_user_permissions_id_seq OWNED BY 
public.auth_user_user_permissions.id;
-
-
---
--- Name: denomination_revocations; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.denomination_revocations (
-    denom_revocations_serial_id bigint NOT NULL,
-    denom_pub_hash bytea NOT NULL,
-    master_sig bytea NOT NULL,
-    CONSTRAINT denomination_revocations_master_sig_check CHECK 
((length(master_sig) = 64))
-);
-
-
---
--- Name: TABLE denomination_revocations; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON TABLE public.denomination_revocations IS 'remembering which 
denomination keys have been revoked';
-
-
---
--- Name: denomination_revocations_denom_revocations_serial_id_seq; Type: 
SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.denomination_revocations_denom_revocations_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: denomination_revocations_denom_revocations_serial_id_seq; Type: 
SEQUENCE OWNED BY; Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.denomination_revocations_denom_revocations_serial_id_seq 
OWNED BY public.denomination_revocations.denom_revocations_serial_id;
-
-
---
--- Name: denominations; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.denominations (
-    denom_pub_hash bytea NOT NULL,
-    denom_pub bytea NOT NULL,
-    master_pub bytea NOT NULL,
-    master_sig bytea NOT NULL,
-    valid_from bigint NOT NULL,
-    expire_withdraw bigint NOT NULL,
-    expire_deposit bigint NOT NULL,
-    expire_legal bigint NOT NULL,
-    coin_val bigint NOT NULL,
-    coin_frac integer NOT NULL,
-    fee_withdraw_val bigint NOT NULL,
-    fee_withdraw_frac integer NOT NULL,
-    fee_deposit_val bigint NOT NULL,
-    fee_deposit_frac integer NOT NULL,
-    fee_refresh_val bigint NOT NULL,
-    fee_refresh_frac integer NOT NULL,
-    fee_refund_val bigint NOT NULL,
-    fee_refund_frac integer NOT NULL,
-    CONSTRAINT denominations_denom_pub_hash_check CHECK 
((length(denom_pub_hash) = 64)),
-    CONSTRAINT denominations_master_pub_check CHECK ((length(master_pub) = 
32)),
-    CONSTRAINT denominations_master_sig_check CHECK ((length(master_sig) = 64))
-);
-
-
---
--- Name: TABLE denominations; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.denominations IS 'Main denominations table. All the 
coins the exchange knows about.';
-
-
---
--- Name: deposit_confirmations; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.deposit_confirmations (
-    master_pub bytea,
-    serial_id bigint NOT NULL,
-    h_contract_terms bytea NOT NULL,
-    h_wire bytea NOT NULL,
-    "timestamp" bigint NOT NULL,
-    refund_deadline bigint NOT NULL,
-    amount_without_fee_val bigint NOT NULL,
-    amount_without_fee_frac integer NOT NULL,
-    coin_pub bytea NOT NULL,
-    merchant_pub bytea NOT NULL,
-    exchange_sig bytea NOT NULL,
-    exchange_pub bytea NOT NULL,
-    master_sig bytea NOT NULL,
-    CONSTRAINT deposit_confirmations_coin_pub_check CHECK ((length(coin_pub) = 
32)),
-    CONSTRAINT deposit_confirmations_exchange_pub_check CHECK 
((length(exchange_pub) = 32)),
-    CONSTRAINT deposit_confirmations_exchange_sig_check CHECK 
((length(exchange_sig) = 64)),
-    CONSTRAINT deposit_confirmations_h_contract_terms_check CHECK 
((length(h_contract_terms) = 64)),
-    CONSTRAINT deposit_confirmations_h_wire_check CHECK ((length(h_wire) = 
64)),
-    CONSTRAINT deposit_confirmations_master_sig_check CHECK 
((length(master_sig) = 64)),
-    CONSTRAINT deposit_confirmations_merchant_pub_check CHECK 
((length(merchant_pub) = 32))
-);
-
-
---
--- Name: TABLE deposit_confirmations; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.deposit_confirmations IS 'deposit confirmation sent to 
us by merchants; we must check that the exchange reported these properly.';
-
-
---
--- Name: deposit_confirmations_serial_id_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.deposit_confirmations_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: deposit_confirmations_serial_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.deposit_confirmations_serial_id_seq OWNED BY 
public.deposit_confirmations.serial_id;
-
-
---
--- Name: deposits; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.deposits (
-    deposit_serial_id bigint NOT NULL,
-    coin_pub bytea NOT NULL,
-    amount_with_fee_val bigint NOT NULL,
-    amount_with_fee_frac integer NOT NULL,
-    "timestamp" bigint NOT NULL,
-    refund_deadline bigint NOT NULL,
-    wire_deadline bigint NOT NULL,
-    merchant_pub bytea NOT NULL,
-    h_contract_terms bytea NOT NULL,
-    h_wire bytea NOT NULL,
-    coin_sig bytea NOT NULL,
-    wire text NOT NULL,
-    tiny boolean DEFAULT false NOT NULL,
-    done boolean DEFAULT false NOT NULL,
-    CONSTRAINT deposits_coin_sig_check CHECK ((length(coin_sig) = 64)),
-    CONSTRAINT deposits_h_contract_terms_check CHECK 
((length(h_contract_terms) = 64)),
-    CONSTRAINT deposits_h_wire_check CHECK ((length(h_wire) = 64)),
-    CONSTRAINT deposits_merchant_pub_check CHECK ((length(merchant_pub) = 32))
-);
-
-
---
--- Name: TABLE deposits; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.deposits IS 'Deposits we have received and for which 
we need to make (aggregate) wire transfers (and manage refunds).';
-
-
---
--- Name: COLUMN deposits.tiny; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.deposits.tiny IS 'Set to TRUE if we decided that the 
amount is too small to ever trigger a wire transfer by itself (requires real 
aggregation)';
-
-
---
--- Name: COLUMN deposits.done; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.deposits.done IS 'Set to TRUE once we have included 
this deposit in some aggregate wire transfer to the merchant';
-
-
---
--- Name: deposits_deposit_serial_id_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.deposits_deposit_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: deposits_deposit_serial_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.deposits_deposit_serial_id_seq OWNED BY 
public.deposits.deposit_serial_id;
-
-
---
--- Name: django_content_type; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.django_content_type (
-    id integer NOT NULL,
-    app_label character varying(100) NOT NULL,
-    model character varying(100) NOT NULL
-);
-
-
---
--- Name: django_content_type_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.django_content_type_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: django_content_type_id_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.django_content_type_id_seq OWNED BY 
public.django_content_type.id;
-
-
---
--- Name: django_migrations; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.django_migrations (
-    id integer NOT NULL,
-    app character varying(255) NOT NULL,
-    name character varying(255) NOT NULL,
-    applied timestamp with time zone NOT NULL
-);
-
-
---
--- Name: django_migrations_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.django_migrations_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: django_migrations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.django_migrations_id_seq OWNED BY 
public.django_migrations.id;
-
-
---
--- Name: django_session; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.django_session (
-    session_key character varying(40) NOT NULL,
-    session_data text NOT NULL,
-    expire_date timestamp with time zone NOT NULL
-);
-
-
---
--- Name: exchange_wire_fees; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.exchange_wire_fees (
-    exchange_pub bytea NOT NULL,
-    h_wire_method bytea NOT NULL,
-    wire_fee_val bigint NOT NULL,
-    wire_fee_frac integer NOT NULL,
-    closing_fee_val bigint NOT NULL,
-    closing_fee_frac integer NOT NULL,
-    start_date bigint NOT NULL,
-    end_date bigint NOT NULL,
-    exchange_sig bytea NOT NULL,
-    CONSTRAINT exchange_wire_fees_exchange_pub_check CHECK 
((length(exchange_pub) = 32)),
-    CONSTRAINT exchange_wire_fees_exchange_sig_check CHECK 
((length(exchange_sig) = 64)),
-    CONSTRAINT exchange_wire_fees_h_wire_method_check CHECK 
((length(h_wire_method) = 64))
-);
-
-
---
--- Name: known_coins; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.known_coins (
-    coin_pub bytea NOT NULL,
-    denom_pub_hash bytea NOT NULL,
-    denom_sig bytea NOT NULL,
-    CONSTRAINT known_coins_coin_pub_check CHECK ((length(coin_pub) = 32))
-);
-
-
---
--- Name: TABLE known_coins; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.known_coins IS 'information about coins and their 
signatures, so we do not have to store the signatures more than once if a coin 
is involved in multiple operations';
-
-
---
--- Name: merchant_contract_terms; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_contract_terms (
-    order_id character varying NOT NULL,
-    merchant_pub bytea NOT NULL,
-    contract_terms bytea NOT NULL,
-    h_contract_terms bytea NOT NULL,
-    "timestamp" bigint NOT NULL,
-    row_id bigint NOT NULL,
-    paid boolean DEFAULT false NOT NULL,
-    CONSTRAINT merchant_contract_terms_h_contract_terms_check CHECK 
((length(h_contract_terms) = 64)),
-    CONSTRAINT merchant_contract_terms_merchant_pub_check CHECK 
((length(merchant_pub) = 32))
-);
-
-
---
--- Name: merchant_contract_terms_row_id_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.merchant_contract_terms_row_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: merchant_contract_terms_row_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.merchant_contract_terms_row_id_seq OWNED BY 
public.merchant_contract_terms.row_id;
-
-
---
--- Name: merchant_deposits; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_deposits (
-    h_contract_terms bytea NOT NULL,
-    merchant_pub bytea NOT NULL,
-    coin_pub bytea NOT NULL,
-    exchange_url character varying NOT NULL,
-    amount_with_fee_val bigint NOT NULL,
-    amount_with_fee_frac integer NOT NULL,
-    deposit_fee_val bigint NOT NULL,
-    deposit_fee_frac integer NOT NULL,
-    refund_fee_val bigint NOT NULL,
-    refund_fee_frac integer NOT NULL,
-    wire_fee_val bigint NOT NULL,
-    wire_fee_frac integer NOT NULL,
-    signkey_pub bytea NOT NULL,
-    exchange_proof bytea NOT NULL,
-    CONSTRAINT merchant_deposits_coin_pub_check CHECK ((length(coin_pub) = 
32)),
-    CONSTRAINT merchant_deposits_merchant_pub_check CHECK 
((length(merchant_pub) = 32)),
-    CONSTRAINT merchant_deposits_signkey_pub_check CHECK ((length(signkey_pub) 
= 32))
-);
-
-
---
--- Name: merchant_orders; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_orders (
-    order_id character varying NOT NULL,
-    merchant_pub bytea NOT NULL,
-    contract_terms bytea NOT NULL,
-    "timestamp" bigint NOT NULL,
-    CONSTRAINT merchant_orders_merchant_pub_check CHECK ((length(merchant_pub) 
= 32))
-);
-
-
---
--- Name: merchant_proofs; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_proofs (
-    exchange_url character varying NOT NULL,
-    wtid bytea NOT NULL,
-    execution_time bigint NOT NULL,
-    signkey_pub bytea NOT NULL,
-    proof bytea NOT NULL,
-    CONSTRAINT merchant_proofs_signkey_pub_check CHECK ((length(signkey_pub) = 
32)),
-    CONSTRAINT merchant_proofs_wtid_check CHECK ((length(wtid) = 32))
-);
-
-
---
--- Name: merchant_refunds; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_refunds (
-    rtransaction_id bigint NOT NULL,
-    merchant_pub bytea NOT NULL,
-    h_contract_terms bytea NOT NULL,
-    coin_pub bytea NOT NULL,
-    reason character varying NOT NULL,
-    refund_amount_val bigint NOT NULL,
-    refund_amount_frac integer NOT NULL,
-    refund_fee_val bigint NOT NULL,
-    refund_fee_frac integer NOT NULL,
-    CONSTRAINT merchant_refunds_coin_pub_check CHECK ((length(coin_pub) = 32)),
-    CONSTRAINT merchant_refunds_merchant_pub_check CHECK 
((length(merchant_pub) = 32))
-);
-
-
---
--- Name: merchant_refunds_rtransaction_id_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.merchant_refunds_rtransaction_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: merchant_refunds_rtransaction_id_seq; Type: SEQUENCE OWNED BY; 
Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.merchant_refunds_rtransaction_id_seq OWNED BY 
public.merchant_refunds.rtransaction_id;
-
-
---
--- Name: merchant_session_info; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_session_info (
-    session_id character varying NOT NULL,
-    fulfillment_url character varying NOT NULL,
-    order_id character varying NOT NULL,
-    merchant_pub bytea NOT NULL,
-    "timestamp" bigint NOT NULL,
-    CONSTRAINT merchant_session_info_merchant_pub_check CHECK 
((length(merchant_pub) = 32))
-);
-
-
---
--- Name: merchant_tip_pickups; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_tip_pickups (
-    tip_id bytea NOT NULL,
-    pickup_id bytea NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    CONSTRAINT merchant_tip_pickups_pickup_id_check CHECK ((length(pickup_id) 
= 64))
-);
-
-
---
--- Name: merchant_tip_reserve_credits; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_tip_reserve_credits (
-    reserve_priv bytea NOT NULL,
-    credit_uuid bytea NOT NULL,
-    "timestamp" bigint NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    CONSTRAINT merchant_tip_reserve_credits_credit_uuid_check CHECK 
((length(credit_uuid) = 64)),
-    CONSTRAINT merchant_tip_reserve_credits_reserve_priv_check CHECK 
((length(reserve_priv) = 32))
-);
-
-
---
--- Name: merchant_tip_reserves; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_tip_reserves (
-    reserve_priv bytea NOT NULL,
-    expiration bigint NOT NULL,
-    balance_val bigint NOT NULL,
-    balance_frac integer NOT NULL,
-    CONSTRAINT merchant_tip_reserves_reserve_priv_check CHECK 
((length(reserve_priv) = 32))
-);
-
-
---
--- Name: merchant_tips; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_tips (
-    reserve_priv bytea NOT NULL,
-    tip_id bytea NOT NULL,
-    exchange_url character varying NOT NULL,
-    justification character varying NOT NULL,
-    extra bytea NOT NULL,
-    "timestamp" bigint NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    left_val bigint NOT NULL,
-    left_frac integer NOT NULL,
-    CONSTRAINT merchant_tips_reserve_priv_check CHECK ((length(reserve_priv) = 
32)),
-    CONSTRAINT merchant_tips_tip_id_check CHECK ((length(tip_id) = 64))
-);
-
-
---
--- Name: merchant_transfers; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_transfers (
-    h_contract_terms bytea NOT NULL,
-    coin_pub bytea NOT NULL,
-    wtid bytea NOT NULL,
-    CONSTRAINT merchant_transfers_coin_pub_check CHECK ((length(coin_pub) = 
32)),
-    CONSTRAINT merchant_transfers_wtid_check CHECK ((length(wtid) = 32))
-);
-
-
---
--- Name: prewire; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.prewire (
-    prewire_uuid bigint NOT NULL,
-    type text NOT NULL,
-    finished boolean DEFAULT false NOT NULL,
-    buf bytea NOT NULL
-);
-
-
---
--- Name: TABLE prewire; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.prewire IS 'pre-commit data for wire transfers we are 
about to execute';
-
-
---
--- Name: prewire_prewire_uuid_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.prewire_prewire_uuid_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: prewire_prewire_uuid_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.prewire_prewire_uuid_seq OWNED BY 
public.prewire.prewire_uuid;
-
-
---
--- Name: recoup; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.recoup (
-    recoup_uuid bigint NOT NULL,
-    coin_pub bytea NOT NULL,
-    coin_sig bytea NOT NULL,
-    coin_blind bytea NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    "timestamp" bigint NOT NULL,
-    h_blind_ev bytea NOT NULL,
-    CONSTRAINT recoup_coin_blind_check CHECK ((length(coin_blind) = 32)),
-    CONSTRAINT recoup_coin_sig_check CHECK ((length(coin_sig) = 64))
-);
-
-
---
--- Name: TABLE recoup; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.recoup IS 'Information about recoups that were 
executed';
-
-
---
--- Name: COLUMN recoup.coin_pub; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.recoup.coin_pub IS 'Do not CASCADE ON DROP on the 
coin_pub, as we may keep the coin alive!';
-
-
---
--- Name: recoup_recoup_uuid_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.recoup_recoup_uuid_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: recoup_recoup_uuid_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.recoup_recoup_uuid_seq OWNED BY 
public.recoup.recoup_uuid;
-
-
---
--- Name: recoup_refresh; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.recoup_refresh (
-    recoup_refresh_uuid bigint NOT NULL,
-    coin_pub bytea NOT NULL,
-    coin_sig bytea NOT NULL,
-    coin_blind bytea NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    "timestamp" bigint NOT NULL,
-    h_blind_ev bytea NOT NULL,
-    CONSTRAINT recoup_refresh_coin_blind_check CHECK ((length(coin_blind) = 
32)),
-    CONSTRAINT recoup_refresh_coin_sig_check CHECK ((length(coin_sig) = 64))
-);
-
-
---
--- Name: COLUMN recoup_refresh.coin_pub; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON COLUMN public.recoup_refresh.coin_pub IS 'Do not CASCADE ON DROP on 
the coin_pub, as we may keep the coin alive!';
-
-
---
--- Name: recoup_refresh_recoup_refresh_uuid_seq; Type: SEQUENCE; Schema: 
public; Owner: -
---
-
-CREATE SEQUENCE public.recoup_refresh_recoup_refresh_uuid_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: recoup_refresh_recoup_refresh_uuid_seq; Type: SEQUENCE OWNED BY; 
Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.recoup_refresh_recoup_refresh_uuid_seq OWNED BY 
public.recoup_refresh.recoup_refresh_uuid;
-
-
---
--- Name: refresh_commitments; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.refresh_commitments (
-    melt_serial_id bigint NOT NULL,
-    rc bytea NOT NULL,
-    old_coin_pub bytea NOT NULL,
-    old_coin_sig bytea NOT NULL,
-    amount_with_fee_val bigint NOT NULL,
-    amount_with_fee_frac integer NOT NULL,
-    noreveal_index integer NOT NULL,
-    CONSTRAINT refresh_commitments_old_coin_sig_check CHECK 
((length(old_coin_sig) = 64)),
-    CONSTRAINT refresh_commitments_rc_check CHECK ((length(rc) = 64))
-);
-
-
---
--- Name: TABLE refresh_commitments; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.refresh_commitments IS 'Commitments made when melting 
coins and the gamma value chosen by the exchange.';
-
-
---
--- Name: refresh_commitments_melt_serial_id_seq; Type: SEQUENCE; Schema: 
public; Owner: -
---
-
-CREATE SEQUENCE public.refresh_commitments_melt_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: refresh_commitments_melt_serial_id_seq; Type: SEQUENCE OWNED BY; 
Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.refresh_commitments_melt_serial_id_seq OWNED BY 
public.refresh_commitments.melt_serial_id;
-
-
---
--- Name: refresh_revealed_coins; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.refresh_revealed_coins (
-    rc bytea NOT NULL,
-    freshcoin_index integer NOT NULL,
-    link_sig bytea NOT NULL,
-    denom_pub_hash bytea NOT NULL,
-    coin_ev bytea NOT NULL,
-    h_coin_ev bytea NOT NULL,
-    ev_sig bytea NOT NULL,
-    CONSTRAINT refresh_revealed_coins_h_coin_ev_check CHECK 
((length(h_coin_ev) = 64)),
-    CONSTRAINT refresh_revealed_coins_link_sig_check CHECK ((length(link_sig) 
= 64))
-);
-
-
---
--- Name: TABLE refresh_revealed_coins; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.refresh_revealed_coins IS 'Revelations about the new 
coins that are to be created during a melting session.';
-
-
---
--- Name: COLUMN refresh_revealed_coins.rc; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON COLUMN public.refresh_revealed_coins.rc IS 'refresh commitment 
identifying the melt operation';
-
-
---
--- Name: COLUMN refresh_revealed_coins.freshcoin_index; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON COLUMN public.refresh_revealed_coins.freshcoin_index IS 'index of 
the fresh coin being created (one melt operation may result in multiple fresh 
coins)';
-
-
---
--- Name: COLUMN refresh_revealed_coins.coin_ev; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON COLUMN public.refresh_revealed_coins.coin_ev IS 'envelope of the 
new coin to be signed';
-
-
---
--- Name: COLUMN refresh_revealed_coins.h_coin_ev; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON COLUMN public.refresh_revealed_coins.h_coin_ev IS 'hash of the 
envelope of the new coin to be signed (for lookups)';
-
-
---
--- Name: COLUMN refresh_revealed_coins.ev_sig; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON COLUMN public.refresh_revealed_coins.ev_sig IS 'exchange signature 
over the envelope';
-
-
---
--- Name: refresh_transfer_keys; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.refresh_transfer_keys (
-    rc bytea NOT NULL,
-    transfer_pub bytea NOT NULL,
-    transfer_privs bytea NOT NULL,
-    CONSTRAINT refresh_transfer_keys_transfer_pub_check CHECK 
((length(transfer_pub) = 32))
-);
-
-
---
--- Name: TABLE refresh_transfer_keys; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.refresh_transfer_keys IS 'Transfer keys of a refresh 
operation (the data revealed to the exchange).';
-
-
---
--- Name: COLUMN refresh_transfer_keys.rc; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON COLUMN public.refresh_transfer_keys.rc IS 'refresh commitment 
identifying the melt operation';
-
-
---
--- Name: COLUMN refresh_transfer_keys.transfer_pub; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON COLUMN public.refresh_transfer_keys.transfer_pub IS 'transfer 
public key for the gamma index';
-
-
---
--- Name: COLUMN refresh_transfer_keys.transfer_privs; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON COLUMN public.refresh_transfer_keys.transfer_privs IS 'array of 
TALER_CNC_KAPPA - 1 transfer private keys that have been revealed, with the 
gamma entry being skipped';
-
-
---
--- Name: refunds; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.refunds (
-    refund_serial_id bigint NOT NULL,
-    coin_pub bytea NOT NULL,
-    merchant_pub bytea NOT NULL,
-    merchant_sig bytea NOT NULL,
-    h_contract_terms bytea NOT NULL,
-    rtransaction_id bigint NOT NULL,
-    amount_with_fee_val bigint NOT NULL,
-    amount_with_fee_frac integer NOT NULL,
-    CONSTRAINT refunds_h_contract_terms_check CHECK ((length(h_contract_terms) 
= 64)),
-    CONSTRAINT refunds_merchant_pub_check CHECK ((length(merchant_pub) = 32)),
-    CONSTRAINT refunds_merchant_sig_check CHECK ((length(merchant_sig) = 64))
-);
-
-
---
--- Name: TABLE refunds; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.refunds IS 'Data on coins that were refunded. 
Technically, refunds always apply against specific deposit operations involving 
a coin. The combination of coin_pub, merchant_pub, h_contract_terms and 
rtransaction_id MUST be unique, and we usually select by coin_pub so that one 
goes first.';
-
-
---
--- Name: COLUMN refunds.rtransaction_id; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON COLUMN public.refunds.rtransaction_id IS 'used by the merchant to 
make refunds unique in case the same coin for the same deposit gets a 
subsequent (higher) refund';
-
-
---
--- Name: refunds_refund_serial_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.refunds_refund_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: refunds_refund_serial_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.refunds_refund_serial_id_seq OWNED BY 
public.refunds.refund_serial_id;
-
-
---
--- Name: reserves; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.reserves (
-    reserve_pub bytea NOT NULL,
-    account_details text NOT NULL,
-    current_balance_val bigint NOT NULL,
-    current_balance_frac integer NOT NULL,
-    expiration_date bigint NOT NULL,
-    gc_date bigint NOT NULL,
-    CONSTRAINT reserves_reserve_pub_check CHECK ((length(reserve_pub) = 32))
-);
-
-
---
--- Name: TABLE reserves; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.reserves IS 'Summarizes the balance of a reserve. 
Updated when new funds are added or withdrawn.';
-
-
---
--- Name: COLUMN reserves.expiration_date; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON COLUMN public.reserves.expiration_date IS 'Used to trigger closing 
of reserves that have not been drained after some time';
-
-
---
--- Name: COLUMN reserves.gc_date; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.reserves.gc_date IS 'Used to forget all information 
about a reserve during garbage collection';
-
-
---
--- Name: reserves_close; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.reserves_close (
-    close_uuid bigint NOT NULL,
-    reserve_pub bytea NOT NULL,
-    execution_date bigint NOT NULL,
-    wtid bytea NOT NULL,
-    receiver_account text NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    closing_fee_val bigint NOT NULL,
-    closing_fee_frac integer NOT NULL,
-    CONSTRAINT reserves_close_wtid_check CHECK ((length(wtid) = 32))
-);
-
-
---
--- Name: TABLE reserves_close; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.reserves_close IS 'wire transfers executed by the 
reserve to close reserves';
-
-
---
--- Name: reserves_close_close_uuid_seq; Type: SEQUENCE; Schema: public; Owner: 
-
---
-
-CREATE SEQUENCE public.reserves_close_close_uuid_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: reserves_close_close_uuid_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.reserves_close_close_uuid_seq OWNED BY 
public.reserves_close.close_uuid;
-
-
---
--- Name: reserves_in; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.reserves_in (
-    reserve_in_serial_id bigint NOT NULL,
-    reserve_pub bytea NOT NULL,
-    wire_reference bigint NOT NULL,
-    credit_val bigint NOT NULL,
-    credit_frac integer NOT NULL,
-    sender_account_details text NOT NULL,
-    exchange_account_section text NOT NULL,
-    execution_date bigint NOT NULL
-);
-
-
---
--- Name: TABLE reserves_in; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.reserves_in IS 'list of transfers of funds into the 
reserves, one per incoming wire transfer';
-
-
---
--- Name: reserves_in_reserve_in_serial_id_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.reserves_in_reserve_in_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: reserves_in_reserve_in_serial_id_seq; Type: SEQUENCE OWNED BY; 
Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.reserves_in_reserve_in_serial_id_seq OWNED BY 
public.reserves_in.reserve_in_serial_id;
-
-
---
--- Name: reserves_out; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.reserves_out (
-    reserve_out_serial_id bigint NOT NULL,
-    h_blind_ev bytea NOT NULL,
-    denom_pub_hash bytea NOT NULL,
-    denom_sig bytea NOT NULL,
-    reserve_pub bytea NOT NULL,
-    reserve_sig bytea NOT NULL,
-    execution_date bigint NOT NULL,
-    amount_with_fee_val bigint NOT NULL,
-    amount_with_fee_frac integer NOT NULL,
-    CONSTRAINT reserves_out_h_blind_ev_check CHECK ((length(h_blind_ev) = 64)),
-    CONSTRAINT reserves_out_reserve_sig_check CHECK ((length(reserve_sig) = 
64))
-);
-
-
---
--- Name: TABLE reserves_out; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.reserves_out IS 'Withdraw operations performed on 
reserves.';
-
-
---
--- Name: COLUMN reserves_out.h_blind_ev; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON COLUMN public.reserves_out.h_blind_ev IS 'Hash of the blinded coin, 
used as primary key here so that broken clients that use a non-random coin or 
blinding factor fail to withdraw (otherwise they would fail on deposit when the 
coin is not unique there).';
-
-
---
--- Name: COLUMN reserves_out.denom_pub_hash; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON COLUMN public.reserves_out.denom_pub_hash IS 'We do not CASCADE ON 
DELETE here, we may keep the denomination data alive';
-
-
---
--- Name: reserves_out_reserve_out_serial_id_seq; Type: SEQUENCE; Schema: 
public; Owner: -
---
-
-CREATE SEQUENCE public.reserves_out_reserve_out_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: reserves_out_reserve_out_serial_id_seq; Type: SEQUENCE OWNED BY; 
Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.reserves_out_reserve_out_serial_id_seq OWNED BY 
public.reserves_out.reserve_out_serial_id;
-
-
---
--- Name: wire_auditor_account_progress; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.wire_auditor_account_progress (
-    master_pub bytea NOT NULL,
-    account_name text NOT NULL,
-    last_wire_reserve_in_serial_id bigint DEFAULT 0 NOT NULL,
-    last_wire_wire_out_serial_id bigint DEFAULT 0 NOT NULL,
-    wire_in_off bigint,
-    wire_out_off bigint
-);
-
-
---
--- Name: TABLE wire_auditor_account_progress; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON TABLE public.wire_auditor_account_progress IS 'information as to 
which transactions the auditor has processed in the exchange database.  Used 
for SELECTing the
- statements to process.  The indices include the last serial ID from the 
respective tables that we have processed. Thus, we need to select those table 
entries that are strictly larger (and process in monotonically increasing 
order).';
-
-
---
--- Name: wire_auditor_progress; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.wire_auditor_progress (
-    master_pub bytea NOT NULL,
-    last_timestamp bigint NOT NULL,
-    last_reserve_close_uuid bigint NOT NULL
-);
-
-
---
--- Name: wire_fee; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.wire_fee (
-    wire_method character varying NOT NULL,
-    start_date bigint NOT NULL,
-    end_date bigint NOT NULL,
-    wire_fee_val bigint NOT NULL,
-    wire_fee_frac integer NOT NULL,
-    closing_fee_val bigint NOT NULL,
-    closing_fee_frac integer NOT NULL,
-    master_sig bytea NOT NULL,
-    CONSTRAINT wire_fee_master_sig_check CHECK ((length(master_sig) = 64))
-);
-
-
---
--- Name: TABLE wire_fee; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.wire_fee IS 'list of the wire fees of this exchange, 
by date';
-
-
---
--- Name: wire_out; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.wire_out (
-    wireout_uuid bigint NOT NULL,
-    execution_date bigint NOT NULL,
-    wtid_raw bytea NOT NULL,
-    wire_target text NOT NULL,
-    exchange_account_section text NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    CONSTRAINT wire_out_wtid_raw_check CHECK ((length(wtid_raw) = 32))
-);
-
-
---
--- Name: TABLE wire_out; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.wire_out IS 'wire transfers the exchange has executed';
-
-
---
--- Name: wire_out_wireout_uuid_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.wire_out_wireout_uuid_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: wire_out_wireout_uuid_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.wire_out_wireout_uuid_seq OWNED BY 
public.wire_out.wireout_uuid;
-
-
---
--- Name: aggregation_tracking aggregation_serial_id; Type: DEFAULT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.aggregation_tracking ALTER COLUMN 
aggregation_serial_id SET DEFAULT 
nextval('public.aggregation_tracking_aggregation_serial_id_seq'::regclass);
-
-
---
--- Name: app_bankaccount account_no; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_bankaccount ALTER COLUMN account_no SET DEFAULT 
nextval('public.app_bankaccount_account_no_seq'::regclass);
-
-
---
--- Name: app_banktransaction id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_banktransaction ALTER COLUMN id SET DEFAULT 
nextval('public.app_banktransaction_id_seq'::regclass);
-
-
---
--- Name: auditor_reserves auditor_reserves_rowid; Type: DEFAULT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_reserves ALTER COLUMN auditor_reserves_rowid 
SET DEFAULT 
nextval('public.auditor_reserves_auditor_reserves_rowid_seq'::regclass);
-
-
---
--- Name: auth_group id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group ALTER COLUMN id SET DEFAULT 
nextval('public.auth_group_id_seq'::regclass);
-
-
---
--- Name: auth_group_permissions id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group_permissions ALTER COLUMN id SET DEFAULT 
nextval('public.auth_group_permissions_id_seq'::regclass);
-
-
---
--- Name: auth_permission id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_permission ALTER COLUMN id SET DEFAULT 
nextval('public.auth_permission_id_seq'::regclass);
-
-
---
--- Name: auth_user id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user ALTER COLUMN id SET DEFAULT 
nextval('public.auth_user_id_seq'::regclass);
-
-
---
--- Name: auth_user_groups id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_groups ALTER COLUMN id SET DEFAULT 
nextval('public.auth_user_groups_id_seq'::regclass);
-
-
---
--- Name: auth_user_user_permissions id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_user_permissions ALTER COLUMN id SET DEFAULT 
nextval('public.auth_user_user_permissions_id_seq'::regclass);
-
-
---
--- Name: denomination_revocations denom_revocations_serial_id; Type: DEFAULT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.denomination_revocations ALTER COLUMN 
denom_revocations_serial_id SET DEFAULT 
nextval('public.denomination_revocations_denom_revocations_serial_id_seq'::regclass);
-
-
---
--- Name: deposit_confirmations serial_id; Type: DEFAULT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.deposit_confirmations ALTER COLUMN serial_id SET 
DEFAULT nextval('public.deposit_confirmations_serial_id_seq'::regclass);
-
-
---
--- Name: deposits deposit_serial_id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.deposits ALTER COLUMN deposit_serial_id SET DEFAULT 
nextval('public.deposits_deposit_serial_id_seq'::regclass);
-
-
---
--- Name: django_content_type id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.django_content_type ALTER COLUMN id SET DEFAULT 
nextval('public.django_content_type_id_seq'::regclass);
-
-
---
--- Name: django_migrations id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.django_migrations ALTER COLUMN id SET DEFAULT 
nextval('public.django_migrations_id_seq'::regclass);
-
-
---
--- Name: merchant_contract_terms row_id; Type: DEFAULT; Schema: public; Owner: 
-
---
-
-ALTER TABLE ONLY public.merchant_contract_terms ALTER COLUMN row_id SET 
DEFAULT nextval('public.merchant_contract_terms_row_id_seq'::regclass);
-
-
---
--- Name: merchant_refunds rtransaction_id; Type: DEFAULT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.merchant_refunds ALTER COLUMN rtransaction_id SET 
DEFAULT nextval('public.merchant_refunds_rtransaction_id_seq'::regclass);
-
-
---
--- Name: prewire prewire_uuid; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.prewire ALTER COLUMN prewire_uuid SET DEFAULT 
nextval('public.prewire_prewire_uuid_seq'::regclass);
-
-
---
--- Name: recoup recoup_uuid; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.recoup ALTER COLUMN recoup_uuid SET DEFAULT 
nextval('public.recoup_recoup_uuid_seq'::regclass);
-
-
---
--- Name: recoup_refresh recoup_refresh_uuid; Type: DEFAULT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.recoup_refresh ALTER COLUMN recoup_refresh_uuid SET 
DEFAULT nextval('public.recoup_refresh_recoup_refresh_uuid_seq'::regclass);
-
-
---
--- Name: refresh_commitments melt_serial_id; Type: DEFAULT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.refresh_commitments ALTER COLUMN melt_serial_id SET 
DEFAULT nextval('public.refresh_commitments_melt_serial_id_seq'::regclass);
-
-
---
--- Name: refunds refund_serial_id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refunds ALTER COLUMN refund_serial_id SET DEFAULT 
nextval('public.refunds_refund_serial_id_seq'::regclass);
-
-
---
--- Name: reserves_close close_uuid; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_close ALTER COLUMN close_uuid SET DEFAULT 
nextval('public.reserves_close_close_uuid_seq'::regclass);
-
-
---
--- Name: reserves_in reserve_in_serial_id; Type: DEFAULT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.reserves_in ALTER COLUMN reserve_in_serial_id SET 
DEFAULT nextval('public.reserves_in_reserve_in_serial_id_seq'::regclass);
-
-
---
--- Name: reserves_out reserve_out_serial_id; Type: DEFAULT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.reserves_out ALTER COLUMN reserve_out_serial_id SET 
DEFAULT nextval('public.reserves_out_reserve_out_serial_id_seq'::regclass);
-
-
---
--- Name: wire_out wireout_uuid; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_out ALTER COLUMN wireout_uuid SET DEFAULT 
nextval('public.wire_out_wireout_uuid_seq'::regclass);
-
-
---
--- Data for Name: patches; Type: TABLE DATA; Schema: _v; Owner: -
---
-
-COPY _v.patches (patch_name, applied_tsz, applied_by, requires, conflicts) 
FROM stdin;
-exchange-0001  2020-03-13 19:35:27.122355+01   grothoff        {}      {}
-auditor-0001   2020-03-13 19:35:34.389994+01   grothoff        {}      {}
-merchant-0001  2020-03-13 19:35:37.767017+01   grothoff        {}      {}
-\.
-
-
---
--- Data for Name: aggregation_tracking; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.aggregation_tracking (aggregation_serial_id, deposit_serial_id, 
wtid_raw) FROM stdin;
-\.
-
-
---
--- Data for Name: app_bankaccount; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.app_bankaccount (is_public, account_no, balance, user_id) FROM 
stdin;
-t      3       +TESTKUDOS:0    3
-t      4       +TESTKUDOS:0    4
-t      5       +TESTKUDOS:0    5
-t      6       +TESTKUDOS:0    6
-t      7       +TESTKUDOS:0    7
-t      8       +TESTKUDOS:0    8
-f      9       +TESTKUDOS:0    9
-f      10      +TESTKUDOS:0    10
-f      11      +TESTKUDOS:90   11
-t      1       -TESTKUDOS:200  1
-f      12      +TESTKUDOS:82   12
-t      2       +TESTKUDOS:28   2
-\.
-
-
---
--- Data for Name: app_banktransaction; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.app_banktransaction (id, amount, subject, date, cancelled, 
request_uid, credit_account_id, debit_account_id) FROM stdin;
-1      TESTKUDOS:100   Joining bonus   2020-03-13 19:35:41.187705+01   f       
5e24163f-5331-4629-87e8-40fb8715a0c2    11      1
-2      TESTKUDOS:10    HG3AD5KPDE27RB7A2Y5WZK9K6GTX998K05YZ6C4DEC2RRR1J3PT0    
2020-03-13 19:35:41.278467+01   f       9f36a88e-3b60-4e3a-9eba-e990fc231631    
2       11
-3      TESTKUDOS:100   Joining bonus   2020-03-13 19:35:43.794597+01   f       
ad97b48b-6d1c-4634-9b43-7a130f35dc82    12      1
-4      TESTKUDOS:18    RT4Y2C6W4X7SX0Z064TRQ4H2ZZH1GD5E7WWZHMJQ9WM5F5KGWQ40    
2020-03-13 19:35:43.881571+01   f       b0223db0-35f9-4a33-958c-321d1f96deb4    
2       12
-\.
-
-
---
--- Data for Name: app_talerwithdrawoperation; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.app_talerwithdrawoperation (withdraw_id, amount, selection_done, 
confirmation_done, aborted, selected_reserve_pub, selected_exchange_account_id, 
withdraw_account_id) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_balance_summary; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_balance_summary (master_pub, denom_balance_val, 
denom_balance_frac, deposit_fee_balance_val, deposit_fee_balance_frac, 
melt_fee_balance_val, melt_fee_balance_frac, refund_fee_balance_val, 
refund_fee_balance_frac, risk_val, risk_frac, loss_val, loss_frac, 
irregular_recoup_val, irregular_recoup_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_denomination_pending; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.auditor_denomination_pending (denom_pub_hash, denom_balance_val, 
denom_balance_frac, denom_loss_val, denom_loss_frac, num_issued, 
denom_risk_val, denom_risk_frac, recoup_loss_val, recoup_loss_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_denominations; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_denominations (denom_pub_hash, master_pub, valid_from, 
expire_withdraw, expire_deposit, expire_legal, coin_val, coin_frac, 
fee_withdraw_val, fee_withdraw_frac, fee_deposit_val, fee_deposit_frac, 
fee_refresh_val, fee_refresh_frac, fee_refund_val, fee_refund_frac) FROM stdin;
-\\xa96d1614b62d8a838b7ebee977db7f3d3b7c3630c8d6aee9c96e848c5b4f72200672fb3ffe229bb3c0ca63fda38757550f42170cf04fa8c647342d4d82abee67
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584124527000000        1584729327000000        1647196527000000        
1678732527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xbb45dd1f40b446b36785e2178930240f1407da65a34dc2f4c39b527838e014ae2f5a5249a5db28ab0a64c1e37608fc7345508132dff6c135fd8c1bf651248dac
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584729027000000        1585333827000000        1647801027000000        
1679337027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xff062da42a2041b151a9a116837e70a11be427656d0e79ee440386edaa31181931fcc88667cbcfd1a47dcc382e8f770d897807ec2b0be258ca061eed3bee85ee
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585333527000000        1585938327000000        1648405527000000        
1679941527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x9cb0ae54f9c698ebd27e4de1c80894794ba23e6a96651809bd62aaf4b09fc051248a210d11f632c21a9bf60eb8a81bcee79dbdf8827a522774beabb2e17f26ba
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585938027000000        1586542827000000        1649010027000000        
1680546027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x73cc45fec9836dec65d8c0d9b9e0bed91b00a855f640a7ba5710ccf9f83b592660711f7fd27ad73cbe9b36ac8c934b3cf8dedb73a816a2e99338a600d171a09a
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1586542527000000        1587147327000000        1649614527000000        
1681150527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xc17a45b79c699f6706a467b28baf97c8634266ce019fefef7f949690a6630f75c34a1dcf8793ecdb44eeca1ec4b4a599ef40d8bc93bf98ec92dbde5a02b4208d
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587147027000000        1587751827000000        1650219027000000        
1681755027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xec3d9d60b61b86944f9200d17e51f16f8a3da2f549078d93fc666ac749413eed8b8c81c933f4571cc6f5133125df4ca44d4f0b2c9df66b695f61c52ecae31b72
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587751527000000        1588356327000000        1650823527000000        
1682359527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x8e7a9699d1a4641f86dc5ccdd6905dda424bc97d25763b4f84a96094b549c657287dfb95a9a3bb8f91dba3c8e60debdd67caa97bc16fbc7c649981a935d60834
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588356027000000        1588960827000000        1651428027000000        
1682964027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xec63e694c0183b24220e53ecc1b0edad4b82c6603faefd6e22973ba7ef86630f14c53355c235a51c3a6ad91ce2d58e3b30a8dbde6a1608b432f4daf3722ab05c
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588960527000000        1589565327000000        1652032527000000        
1683568527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x0722edfc399662ca7faffec24979257e075cd88a5a87f3fe146aaab3edd24553e8061fc50edb8976dcec14b7084b0fea412031c4ac384f42929c8751725c7730
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1589565027000000        1590169827000000        1652637027000000        
1684173027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xfa028ba1a8afd9a5617714699a85418c8374ce17bb6772c38a34a1f2291c987fa27f9153d24d2dfdcfa88fbd8cee27fd2b6ab2695393faa6e0c306899fcf8779
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590169527000000        1590774327000000        1653241527000000        
1684777527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xb09acb2b6c52f00344caa32cf7c22a4096f6f9f0e49c2e5185f81bca35cc3ff0342f3c592f4c3eb98f58425bf14c6a46b19f7c7e8e2d4c82bb05818f8cd72b0e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590774027000000        1591378827000000        1653846027000000        
1685382027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x8f86f18e72a6fea2e535ef6ab4ab220354de7513b2178410bd107332d913f609908f7dce6525617cca313271245f74a52eef4910234425a276fa3640ed585361
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591378527000000        1591983327000000        1654450527000000        
1685986527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x6fbada069741a8cf3c0a0b0af5e673757cd38cc2b09c79c40e2fde238d41c934b97ced29394675359b44ebb9fc97e6808c9c4538b510d5df6e304c2cdf4d7eaf
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591983027000000        1592587827000000        1655055027000000        
1686591027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xe9e17b1050c939d2dfa1e1cf820114c83a9d368c9b9273d853e29525467fd8561edcda45870c0f8364fc4242b2ba94eaf5729e316f4e9c2f4bc45f4312c08f5c
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1592587527000000        1593192327000000        1655659527000000        
1687195527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xe7683d3b5ba7e7ebc47c07fa128a5dbd2f165d74c8ce40db5cbdfc5c4c4c2f2929be11b643153d2359bb2422ed50e5c6341f03f770ffd83118f5a4711e15cf61
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593192027000000        1593796827000000        1656264027000000        
1687800027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xcd129a8de5bcb9a417ee3384450490aadc6e96d4c23a011412abc9914135b15c8af62b3efe2fc1bffb38fe665bf006e8c818b795ef1c5c0d2f8e9a5544abfe7f
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593796527000000        1594401327000000        1656868527000000        
1688404527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x9a52bfde8f794fc3ebe4c5041fa82a3a188dc7e80f30e3920e89728af6aa65e63b8832b14c346898a64ef0c265b39a13a296e8831774e60f4a9b955903d00955
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1594401027000000        1595005827000000        1657473027000000        
1689009027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x53f73b67bdd0d71a3272f4f75837b1b78d8c9b7d862005b247977f6bc8d632112cf09f2755b805efaf06d1f09f10bba629a03c0f9520be15808b8b982d040b6e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595005527000000        1595610327000000        1658077527000000        
1689613527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x05e4e536ac90d31d6d00eab4e4fe65d0ef4a104164d9d4df273161040c182cd71cdc9e1a589f0ea506259f02331e96d718cf9fdb32de1a0796e3fddf75f05f7e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595610027000000        1596214827000000        1658682027000000        
1690218027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x43d57d44225a1fe965beec829a7cd3d8d7bcd486a8cee33710595f5e89b8ca8b6c71072c3c6e7a58d3a99e52da89f3d1c718b9b8107d8f297ca8959953b03b6d
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596214527000000        1596819327000000        1659286527000000        
1690822527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x5dd555b83b7c8249fe58aee8a1aa26b6abec1bb646c08468bbb5dd8bad9631cbea25955cd74f260593e0d8677911bc956e7ffd291da0922caed2fe7f3ce900c7
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596819027000000        1597423827000000        1659891027000000        
1691427027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xf5fdea21d65de4a8375054fa9aee4ffb76cd37732ae433536fc04e8e0605f68979f0aa816d8c1c6bd5ca9cc7eba9e86f2f6a76b56d2b246af7de357be35ca8b6
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1597423527000000        1598028327000000        1660495527000000        
1692031527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x3700f86633a517f3d477814161e960d675e76fbdc106d38cc223593a757fdf7ddab5ece025c0ca61b8d5bb87fc8de6cce0806edaf64c0e7822b3eb589dfbd220
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598028027000000        1598632827000000        1661100027000000        
1692636027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x77aba628bce3de6e7d1f56641a5b8f610d075503ca1825e6bccee78917b29b05ae675d54a5bd45a2e36aae4abc7eca6c2dcd09d885112d83d886bc3f58b0eee1
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598632527000000        1599237327000000        1661704527000000        
1693240527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x2d6e598e2b72549beadc9fc123231f322a589282d7058bb2b5e7392e7c2bba6c326d964acdccde37f906d5e27a11f0336792d0782132d41613f6e39ab7ee3404
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599237027000000        1599841827000000        1662309027000000        
1693845027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x98a9c9651e6a672fcbae9a1ebdeb1a98b6aaf91b2fbf22274cd02411e8b18af0b38d2883785bbfd7e8aad783142a1218122bf52354cb4f0c1e6cc7e3c9588697
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599841527000000        1600446327000000        1662913527000000        
1694449527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x0691299e9a38d9baa96dfc372381c15795e578416f4661251ea0a48e93d51dd3e7e107290e867903defd1b631a287316e7ff02c0a8a06f56bb1a3ee16c45c1db
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1600446027000000        1601050827000000        1663518027000000        
1695054027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x7b59a5bd355465d9bd76bcd0b3fba924d23e4991c8173bf4c2d659ea7456f92eeed8d9f98a6dac8b3e5f99fcb15f17a1b7f3a9a9251ce5bd4f3b15db2f67150c
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601050527000000        1601655327000000        1664122527000000        
1695658527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x1c58c604e312745957a04c19efd9a1a01f6a02971586571b7149f9cc96aad9acd5768c15110e73004a0071a2e654d38e095e5f0c8e8e4672af83fb3fa9735934
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601655027000000        1602259827000000        1664727027000000        
1696263027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x4d5ddafe2829d944ef1dce238b01206c4bed413cb867e45fd9daf153ab91a504c003d00a8f4fd209664bb7f62f031dc0e67d7645c3a703e093abff98175d723f
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602259527000000        1602864327000000        1665331527000000        
1696867527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x65cb9f2c483b19fab8014736451988c5c33285933f8dc64ff3cf90835f2653cb7041712e518839354d5485e97ef4838c4e8e5d98b67dd6f4e77ea84a9f26f683
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602864027000000        1603468827000000        1665936027000000        
1697472027000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x209f39ddd8564e30ef4957b75ab3caceef0c1525f7ebdfcba8e241c2b43cee69a1aa4c9efa26c46a1c0f674e36711873ce2b7d8301cec150d8673432c3d81ad7
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1603468527000000        1604073327000000        1666540527000000        
1698076527000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xe2557e383c1c3c019681c2521d415a758f1becb629a3a75fd9dc212f0f2e802aee81e71db725f0f9913bea0f913978bd7d238558712aa957d80c4e1673292b13
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584124527000000        1584729327000000        1647196527000000        
1678732527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x89d632dde6b67bcd5496434399229c75e8925653c5c952393a61131b03f941ba1ec3de4e210861a730b85fb87cdcd7ccabc26317cdcb823f83d027ba8777324a
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584729027000000        1585333827000000        1647801027000000        
1679337027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xf5ec27a33faef3b0da60b8403beaebe30e385c3bbb0849372b164d26b8c73265914f804eabffb948646a8ee0ff18ac8681b5014adb983dbc692a4406791ec1f2
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585333527000000        1585938327000000        1648405527000000        
1679941527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x736fae372040bd5d2d9c97e454efa630d0ca6a01a277602638c998af302418885e017148f4ea7cbb144a0c29a463c8c922f3c527f0ff63add38f64292c69f5a4
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585938027000000        1586542827000000        1649010027000000        
1680546027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x4faae841605109e2e8f43768baf54551b8d2ac29b16f601799c2ee260b9bcad53c8b4e5ab2352bbc1b12bc28c53df0e3ea355d61227430edb4644cdc4546907d
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1586542527000000        1587147327000000        1649614527000000        
1681150527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x6848b532bbfefccfbe4fcff80fe6688ce482d891673965e64c99c2b363ad9d30177f1ef45d2abb9c947577f8e23e3aec2bc2c2e38d113acc13eb6b808fa5bb1b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587147027000000        1587751827000000        1650219027000000        
1681755027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x198bd5a41044f28606f048ce59414508461044ba74ba6abd7555bb91c78b750d594519eac6ade5e9f6a25cee0c3c0a1a6c6d3e7c42d529e68478802ca2c0e3ef
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587751527000000        1588356327000000        1650823527000000        
1682359527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xb2e527f7d2180fa33a36f84d4a20d7d1a7a8f3d816634ea9a568ef8a1ff446facf89ab5bd01a585c8bb40c6088dd255f5e6bc0581d87b1bbed0194fc3d1f3cfe
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588356027000000        1588960827000000        1651428027000000        
1682964027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x294fdd3e4e9176cfa35ad3f56da2f9648cb1d0a682e6b72e195fe46d9c792238d9dc663e30bff65c08cbce3caabcb9a8211e3888a5e5347dd50c6f05fc3afbc1
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588960527000000        1589565327000000        1652032527000000        
1683568527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x678dd52ec4a7d4b4c2106cd3d83e14e70155bdb22497ccf200b25451c65e62062f684bb0acd1494bc7281c4e73f7539976f757456452831d6ff1a4438f87aded
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1589565027000000        1590169827000000        1652637027000000        
1684173027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x3a98d8ef0e0a1e94e4703d14db2fdf6af57e8ccb0aceb3bd1aaecf747a45ff42fbbc82cfd972e863d7276f35b9b0bf5b1045a2055a4447f1b2de890459122718
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590169527000000        1590774327000000        1653241527000000        
1684777527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x0f4c04c2c2ac57229cca630b90f8e1cae021a5fe6887d0e641746cbb6afb7a4b4463feb403c307625a772cb9e144d941f9a2a5354418cf649ae23012cf9deeb7
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590774027000000        1591378827000000        1653846027000000        
1685382027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x2c8e413cd938e04f542bc9244698a4846cae350be51a4b96c23dd62328131d9f52c55d59461946268e76de4b73f3343797905bbc79e43639e911c1dd776062e8
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591378527000000        1591983327000000        1654450527000000        
1685986527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x8132c0e0e925daf9425ffc2a1f19b014d3e5eaaab3f0dee040a88a8fe49e796ff7086f55e451cc3f89f4db290f650b15541ab9433f6748bd61740d997a173e87
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591983027000000        1592587827000000        1655055027000000        
1686591027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xad283ca32be3327f8be03fae2f76639bcc280f2148545efdbde8f26a4d78b67c5142d3ca173bf3ff8bcd8d0270002b4eb6510f0d8bc6aa047409dfdc2320cffe
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1592587527000000        1593192327000000        1655659527000000        
1687195527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x7bdcd195530ada526322c2b2ef1146ec3ba338b9d4e24c00454d97f805e46535512248f8d80ff821673f46464f9a95867f03d8c63d269582609b9599d46bbe00
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593192027000000        1593796827000000        1656264027000000        
1687800027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x08410df47dc40825ad229bb0cc18c2ff1c378db2f44d688f808b15156935c759c3786d00f587d53826bc5981eec8d0714bf6bae4ebd6d5f4e46c9bfdd37e086c
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593796527000000        1594401327000000        1656868527000000        
1688404527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x3b422076450dd388ec63cd304e3efe3fd8e63711d3b53b78b9edeae4f75aaae1d06fcdbd807507ee6e47ac0bc5a71d61dc2b321e211077bd9f845e5974cac6a3
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1594401027000000        1595005827000000        1657473027000000        
1689009027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x310e1d0c6ac2a8aec9f821935d6c3fa9cc881043931d1c151401f0ad2e7a9c210768bea8b5939a3236f99a62a140f6055d1b74967143eee4f072f6bc9c247016
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595005527000000        1595610327000000        1658077527000000        
1689613527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xea393ee266fe343fef6461d76325f099fb0c365ce0518cf1dc8150bcbbd7f3b1cb2418d9e4855dbe9b35d0647a31141a181dec55c80b7b3ad2d93ef4703ed749
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595610027000000        1596214827000000        1658682027000000        
1690218027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xa724adab3e64fd5d7710f9620815d6ef7d631382af62d43759103ef6a9b689c66cd38fd669fda2dbd796d8221e06f91868556bbdecff3b356d52c9df988d313b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596214527000000        1596819327000000        1659286527000000        
1690822527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x7c2400b641bc05f2d2be2bfd2a5d0af2a811a8b3ae6c66ef760d47c250e9020460d28de2872c17cfd6b1016ad6a6e28c62b5b672f46ab9355af0ec149f7e9aed
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596819027000000        1597423827000000        1659891027000000        
1691427027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xddcbcd710d062c8bf0493e790bc001768d60d000cc064b33ddbfd4bc71417c7657953766c55f33247acb905ea1ab69656d8cf78e384e4f0510ab0d27fc69f0e9
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1597423527000000        1598028327000000        1660495527000000        
1692031527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xffefe5a4137034b1f91b954e42777fbdd0a7464b37e83335e1a6d0ae19a05879f1fdae0d375befbcf381ab5378cd514945b27a5e83d269b8737000d302f61bdb
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598028027000000        1598632827000000        1661100027000000        
1692636027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x63e58e0daf3f9a2676fb1413859d980b07ae3731edea601ef941ed68a24d941937785701009fdf58db7ea87344afae343070d34e54ed403e094fd3df691f3d47
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598632527000000        1599237327000000        1661704527000000        
1693240527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xa0741392a26e9f5d7780e740ed710ad8407a71dff1c23fd0059a6b759e8bbee8eb6962b67cba3915178e5640d68177e8b8de599f249656b98d3e1caa3875dfcd
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599237027000000        1599841827000000        1662309027000000        
1693845027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x5b797546d8bbf3313e548256097eca0000f18e136faa339a89c81f5e9bed6145caf876b61d9613a1d2f2aaadf8926576e491c6224df6e8b87b5e83272fbc70e6
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599841527000000        1600446327000000        1662913527000000        
1694449527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x6a09bde9661b00281d3ce948af500471cd71903b50b11eeed970a6e00144909ce5513cddc4ddf7a5cdac6211aceaabca7b17595508ed5458eaa907943802600e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1600446027000000        1601050827000000        1663518027000000        
1695054027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x9cecf3582ee4c71272074227936e90e689a8296bad1b2524e0410882454299f6ba39743b80bb714d1b5ac8e765ed80b0103bfcefdb884bad6866f7aa45d06b17
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601050527000000        1601655327000000        1664122527000000        
1695658527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xd2e957c9d5b7a9815cd99e61761688441323293483c12903efa2329e5bfcdb8db2ae0dcedf0f773920525bcbec0660a47bf7cc5fe8321f7a0185f49c52c2ed49
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601655027000000        1602259827000000        1664727027000000        
1696263027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x58de8f1a094ef83e0c2210ebbfaef4e4f6df9f6591d15b4d77266f264cc40c9d347ab3f462ea31528c995875cc0b3f8de66966128dde4d6107714a820644ba7e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602259527000000        1602864327000000        1665331527000000        
1696867527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x63ddd1b71fac8f9dc59893a23d001670c1db9840a24dbbf1e6b2bb490864070fa60f37766e45b02f56f7d558f4e694ef57743ac6b2477f7ba5e1407a001ad465
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602864027000000        1603468827000000        1665936027000000        
1697472027000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xc1df649c58ee62c06ee0db1d4bc3aaf83c76b5fb180b52d2b57249478d5900b845050eca79bc7767d14993c58bc4730f9e5dfe8f793fa404a9bcba5ac79d40c1
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1603468527000000        1604073327000000        1666540527000000        
1698076527000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xa6576c13e5143d56edc29a8c4917121a1c3917f3436c26f3349de6c226bb96bce029469a4b627b504a3f17d70c4ad7e6c015b4873e98c87238c9b824018f461b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584124527000000        1584729327000000        1647196527000000        
1678732527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xddc88ee65b9d5ffc9787a9154065eae790812d277640692b9de92d2ccbe417d95f649de7208d63a5b8dfbe9df3215c1c61862c14863168507078619eb14921a2
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584729027000000        1585333827000000        1647801027000000        
1679337027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xca5e89c144df5f82fac1329f3c86754b0e0a105f7cf27eb9412d20cb48db7eeed585252b6a25a99c85ffaea656af87336881999a8035b50d7917c12f6a9b90c6
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585333527000000        1585938327000000        1648405527000000        
1679941527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xb13be79e272cf95452c46fdc192d07d16f24c0c0d9638bf2ba7814146c195272bd5f6a308e5c53460c4e5adc12c8116170bef14a542ceae0379dd0862008d868
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585938027000000        1586542827000000        1649010027000000        
1680546027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x19d70de23bde1e436057b52e826f99bfa483b84ce088c89daa91a32eab5edd2edfa2aafa1714e1cddfc6faf8667574e76bf139865720b73ac9d6d4e6cc04c5e0
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1586542527000000        1587147327000000        1649614527000000        
1681150527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x8b6569762ff8a11fe0faa5b32c40ac6c89dc20727a792995c3edb02d0291e5489c43b196f5201c04b5cc6ca3e5e165e796e1e6f3b7a4d1a0f523b5dafe9df2af
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587147027000000        1587751827000000        1650219027000000        
1681755027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xe3c8b25ef11b8de1f79bd681cb42c8c77abe4b5c446173dff907bd71e0b869c456fcb6f502ec91599746ee4a8c2fc8b8118d8a09017b09cc12b1af700a296750
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587751527000000        1588356327000000        1650823527000000        
1682359527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x7fa7641cf151fc60d8c54c9b5d5df0d654e2f23680d45b1b143b83c202eaa3a99f9b2e61bafded652492052f8748394efe5a0fc800be252a47b2ee9b2fbf947f
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588356027000000        1588960827000000        1651428027000000        
1682964027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xa58ee51ad47a34c26d50a4c911040fd2991f2bc728d24bde2543bf4d26bcdca6f48dbe2a98cf874fee4064fd3d47f0d89a6dda4bbd44af9d5ee6dbbf4cb17fba
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588960527000000        1589565327000000        1652032527000000        
1683568527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x1add4a9cf6ac98d872cbea41c8decfd34cb0c21ac0c9c5b864332733396093486204eefac6fa25f5581fa2fbc973464324ebf00cf05ab5e74d768cc2ef74945e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1589565027000000        1590169827000000        1652637027000000        
1684173027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xc1c70468e1436c7742a22cb3fc1ff0e69a5549987dec101c448283338d35ecaf15b09f447d092950500b47c501c15ba33dcfedbfc366c370728175c65c9df943
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590169527000000        1590774327000000        1653241527000000        
1684777527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xcc651df9bb6f5ecc41fb359bb0c4adbdb269da8ae2538c6a5b899c8ee1061767ffce29ff897ef1384fcacbc51301a64eb2720c796cdb1c809e7ec2605589b885
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590774027000000        1591378827000000        1653846027000000        
1685382027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xfa6e3c35c16c059871ed81afea3328e8c971332ce564e7c13baee8869242f512d8bcc9ffb3ea9fa2c3f87137ef729aae47e145f1518fc3658440a5dc910e5566
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591378527000000        1591983327000000        1654450527000000        
1685986527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xce1f1c37056c63bb7f60accd955972c2193d48abe8db245a2b5698582c75f24c9c5ecade1877d2056c0ade564342626091500c990144a32fc20876ba1a9ca534
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591983027000000        1592587827000000        1655055027000000        
1686591027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x47de80930d0b79ef1bba526d1eb8e0d9c97e06e21b4a55fc6416b550d8b243b725e5debb43921d222521f9918694573c4489dfb50c3710652e318cbef5cee304
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1592587527000000        1593192327000000        1655659527000000        
1687195527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xa14dfdb030aa65c85f65af028728f3ff1de427cdf8d44fcfd07e688080c38ae8cef65442f6a5aa861cc7fdc10e3cf5688eebd77433a1356f5564b90d9cb0d91e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593192027000000        1593796827000000        1656264027000000        
1687800027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x2c30c000ea26545d5dd5df051cc7d9d45c430d5d63678a04e3d562ab68af69296f7c5dcc6a8caed61498a63e0a9182ee2192afde46115b52775d25577d7ca8c0
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593796527000000        1594401327000000        1656868527000000        
1688404527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xcb9a25d8a80d60b3431403195f50f71b28bf1fdb608ba2ecad24b6e7a02dd3b8d12b26eb4cf840c98bbc1d629b3b12853d91837f410990701007b7901ab49900
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1594401027000000        1595005827000000        1657473027000000        
1689009027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x831f49572c67918fa6d843a59a6112a90ac74f72ad70ab5abff60fdad26c2052d34a973f6f2529aa3e7d8d7c579dc77ea40b4c1c012250869290da3dd0323311
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595005527000000        1595610327000000        1658077527000000        
1689613527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x9e1b7933018618a7fed22ce2f841214c4587a7fa2a7d2a6f6e27aab525f8ab25a53ba878dc62c2b9d7722594e2330621962467d268770361ff277fbaafc89060
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595610027000000        1596214827000000        1658682027000000        
1690218027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x467df6abe3205708661cb892fd45bd4a024542d59e2d5a4488122f2dd685c475d9426e23285f9b868c163fe52be65d42f9f963f787014b60fe091ea8914fef30
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596214527000000        1596819327000000        1659286527000000        
1690822527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x27f580f5add0226f18eb385d280be808a59a0872d1da41b054b1dbb822516c5f82925d607aeaecd6f10451dc6596884715c425c71be7f2f769d1bd394e308296
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596819027000000        1597423827000000        1659891027000000        
1691427027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xf072c12ceeef24628f4543557914e0e6fd8d2386da229ca52793772ec7e00e8a0cf84f1bd96dd9b6e535ba0890558b64ee00ad0862e6e077be545b22dbd76ea5
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1597423527000000        1598028327000000        1660495527000000        
1692031527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xdff34e92c071b4022a12c51446a58ce0de6facb1a5f86eaedf30e6965ad8db665ce1556286d1a554e36d67af5079ef22f90f21a21a09df2ae8f7c5d7f436fd42
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598028027000000        1598632827000000        1661100027000000        
1692636027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x091712f282d74bb33f903c23a11315c414a2e661131632bf49a7cc841bc8ae65f9d10a5f6144557beb1fbbfe00785a00df098296360469f048a906667c289770
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598632527000000        1599237327000000        1661704527000000        
1693240527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x4c0e2f8254fcf5ee3ee7cff5baa5dc782565af7615117a4247486f87f48529c407acbd078df27b266b28b157eabafb108aec4d15706c9b704dc8e1b5e0672c64
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599237027000000        1599841827000000        1662309027000000        
1693845027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x17edfe6a00c0f73775d2b1cbcce3cf2758e45d9f12a889f0353d57ca71fdc50ef8b989354967d3e3a4a19d561097b233a0d172d3d479c34ab741b4fa15f8c4eb
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599841527000000        1600446327000000        1662913527000000        
1694449527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xf1b4524f05edeb81b92c8a1d179ff9dd58a7ae91204e667f5e06258a962ae14f9cdc293689569db1cc38b882a0a2471b52164ef4a9267db30a928ff5b4a4340e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1600446027000000        1601050827000000        1663518027000000        
1695054027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xf5540668fab2a27f8ad6bef45f727a180a01aabd28c042fd6189608ccb636188bf7b24b3e5dcf16bfcf49588dfc0131c028a2745ad31a988b14d95ea47dbd2de
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601050527000000        1601655327000000        1664122527000000        
1695658527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xcf5c6d6dca58e3ab6a1304c9f088bcd8dca056bd33448029dfaaf28aac36bd7cef9e1f83a67d10fab0fcd9e81d7432ea8cc110dae534e38a95c4c1db30b87e2e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601655027000000        1602259827000000        1664727027000000        
1696263027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xf8a7c34086b833ce093ccb1b91802fe2e9f79f23860e91ba3036d7d68c5a111789480b749f1100451f971556598adc53cd6bc5e22988cd0aaa4c001147f88322
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602259527000000        1602864327000000        1665331527000000        
1696867527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x2c50cea43b2a9d85633181c8ef2782c2a796ab638122d9604738fa8478aaa5e0e1199a9c587a2d3d15de108dda8047f4e1b4155e09c8c0460cbeb22bbfdcec85
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602864027000000        1603468827000000        1665936027000000        
1697472027000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x7ff91d9ef771cf4c9089ef1a742292bd887eae63c50ec766d3c27571bf92618ee49267e72581f097a1740e8a2a67d63f59685be0a44d2a7bb0f91aeec4b9f4e9
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1603468527000000        1604073327000000        1666540527000000        
1698076527000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x597a8051c87010b154a8dfa6643279b0c166b51539c69b9cb19af986ab521ed59877b3868c0e56aac00ebbd6f1f3036a6b667403fc032e32b5589ddb9c257b8d
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584124527000000        1584729327000000        1647196527000000        
1678732527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x7246fdafe0cfad50a1068db61dcf1717abc01a6197db5fb2fa5bcf482d90e5071b7f670f10b9309551a53978bfa64481656854e7484bf6f867f3e94b8383d33b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584729027000000        1585333827000000        1647801027000000        
1679337027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xeb874e306cba69263f4ee7a1cecb2b7649b54a1d1ccd427343a838dafd4f8f2d97b828bc65c9557f83934e041f8957c5e7e28c3bad7e79a984c7a24acf57f803
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585333527000000        1585938327000000        1648405527000000        
1679941527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xcd70779a6f182bbfffdc0da52269411a478384f9844eba7897009ffc8ba92c52ebfeaaa274564177ba77baddb77a7ea16d5f2327d6e78cb871f52f7cb458765d
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585938027000000        1586542827000000        1649010027000000        
1680546027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x3b6d21737bf0bab81896a28cce0df7b6fad9718ed09fbcc0617c6f1da04d7806a9e7ab60bb2ede861246390a649951c74d210b12f5cccbc7d1e2539911bf585b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1586542527000000        1587147327000000        1649614527000000        
1681150527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x54c2564a81f88da5548a49c35edca0ca631c5d801855159e92b2d7549f2269cc3b939f72b13c99943008afab327d0586b561584ee1cf0a099a08994a7453402b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587147027000000        1587751827000000        1650219027000000        
1681755027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xd70f44b6a74a3fa01744112c45f1908a1a448d19347cc8b972ad88c70be8e04deeebd4f7d2c266f6432b1b190b30cf73332e5005334877ea340247183e304bbb
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587751527000000        1588356327000000        1650823527000000        
1682359527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xa0f8b3d8cc70612760d8fb5d88e7f5f5ef57d5501aafa3304269be86ee0896bcd44e46cd678b27ebcb95e0fe1c782c87b30f935321f686371dbc1cf1bbd3bd97
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588356027000000        1588960827000000        1651428027000000        
1682964027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x82adf06d497236bc505e9e907efc5ae1481d749600b7979423f8eb9bc4c72a62f97b5adc9f0cc69c052e1eab3a73fe15dbc0ba02c7555afa749b2fa70db79a3b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588960527000000        1589565327000000        1652032527000000        
1683568527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xabd95251f9ae32a208eceb957fc394ce015ecb98cb20711f238689939f7ca9aac028fcee070dcf38c9dcd8ba631d1ad708a2a19eebf5cd88534c7e0e62996a67
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1589565027000000        1590169827000000        1652637027000000        
1684173027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x71f8874cad42e50a4477f00de15c59e721c5528b3785528ca8ec84f3f4660efc6ed472202bf2eab37f2379440d64ade01b03cef107a4dfdbc398bc1674806c17
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590169527000000        1590774327000000        1653241527000000        
1684777527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x8bdeba76d758bd1faface814b4fb6c895d0236fc04d073ff25ceb4f5be3613521865b25fda61f6109f8c994dfb1cb21aa93aeefbb235885f300a3a510b952090
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590774027000000        1591378827000000        1653846027000000        
1685382027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xf0608e0448c58a93ec0be344191f06ce313513be1d317280126faeda910cbdcadaef9add0b88bd526fefdc8fc91351dc80e366f053b33fd4e69521a1412e4af3
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591378527000000        1591983327000000        1654450527000000        
1685986527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xb9b3d31175f4c977c18e742e6b2d444af91db6087fa1b81fc693c99b7715e320ea602a84cbce759261772291e0165dc57f0af52dae54ef39a2291191900deb10
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591983027000000        1592587827000000        1655055027000000        
1686591027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xeebc5aa02919f853f75f78fc702fa7a9484d4ddafd3ae91ebe91ff2bd6383a1fd883ab12de4bcba8169cc9ae7de167f32c7f2cc4dc3ec146726bc45820b98abe
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1592587527000000        1593192327000000        1655659527000000        
1687195527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x7d8e9387284f9c8597f20827bc4bebcbff97c770892d7ca6bc46ceb77126a104e0924b97406f70bfada5950ba16de2f6bbc73a59b63727be6885d4acf8b0f425
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593192027000000        1593796827000000        1656264027000000        
1687800027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xca057129f7ea605703e8194c49fb73b7728a0dac8e0cb1aa74c0399306b779cf2616a7bed50044058447a4e69303d294acc8a8163a5d02d7a3738eb80a5183dc
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593796527000000        1594401327000000        1656868527000000        
1688404527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xeec6c2ff5c537ae5087dde8a8cc2466de3c571e589fe6ce26b5384b9dcb334b98f828e4e255e15387257fef093998cce104585849a5655fd26d9eaccfa0fd11d
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1594401027000000        1595005827000000        1657473027000000        
1689009027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xe194585a6a21ea6ef6d6c4da87c950653aea1fad8755818f0c6ca8500802618f384a8b78efb0c487f27981cf2901457f5c18a05df30b2f83554e89c2a87a74c5
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595005527000000        1595610327000000        1658077527000000        
1689613527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xea3be6389edbca88905977f3975ff68bc8fa7c99d09a8d7a9f86ff717fb49e88c410e1f8fecfaf5ae87166453ddf479be016686cb804e56488b0af99dd918ea1
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595610027000000        1596214827000000        1658682027000000        
1690218027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x3527980fcac602204588e0f9aa5f8c608d3a023418ecec3439ebc5f0aea358802c6e96bf0b6a7e05cc926ad4f17739ac456ca7a46bf9cf4a64c334ec9e13363a
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596214527000000        1596819327000000        1659286527000000        
1690822527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x17ccc94df1731183e8d3977169afbad2f54c9e3624d6369134cc96b5097d36d53864f676ebf1cc7ed94c9bbfca232a02bbcc447005b7f5fb6407ca24223d3f38
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596819027000000        1597423827000000        1659891027000000        
1691427027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x8a7b6fa6074351b69a4fbb08c139225066f91ac3673bae447e31663c0f29174e8ba1284aa3b58078e19fa8cde0faf000db681ca36f9c1415b4bd0592c9cdf01e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1597423527000000        1598028327000000        1660495527000000        
1692031527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xe81c80f69f6d546234e5c4af547a8db8287c00423856490f177bc2898c5eeae1228f4e54596a579f5415e69364319d6e629ca942d6c7605e90c5254d76989df2
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598028027000000        1598632827000000        1661100027000000        
1692636027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x6ebf441db55cbed32bd1a9eace307fe8a354e39f879d7ee35e17d2b4d531503d5765b8db81e1d76039957f00e609cae35ae003ed9ac6253ceb9f8ba51bfe046e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598632527000000        1599237327000000        1661704527000000        
1693240527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xb7312854a7c1160d7f3d2bcf627aa143b8789af24016aee01082c8c7095add2a726a69e3ee2bbf35fdca7c1ba0a4df857be16949dede5fe2de2e0176e5974206
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599237027000000        1599841827000000        1662309027000000        
1693845027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xb54852bdc9304bcadb4af920c36d2651381ea2c36686293d05f130f5115993a7d4fce63620c722f13663c198d92a9d12707d90fcf779719c87712269c84374ca
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599841527000000        1600446327000000        1662913527000000        
1694449527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x8be470be5403c1ae0c0278238d097ab0516233ad5620ebf5c8b0eb94190b2ed63d0b2529bb4cc6795c6486ff6b9127d7041942d8143e07c5a26cc10cb304268b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1600446027000000        1601050827000000        1663518027000000        
1695054027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x839c05ded3a73edd5631ec93d0f461d7adae76d360bc75e24a678d5120348230972d0e45df2f8a59fcfa24ca012f003c99d645b8084ddb7b81cd243f7c015c08
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601050527000000        1601655327000000        1664122527000000        
1695658527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xfe7826d2f2bb375a29375d6ea026fcfca525827d667c94d74e9e8b0c4f7cb5a9b3c284aa6c31bf99fc00ab4e6fe625d12e197bb5b99dee6e6a1a03ae24ec76db
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601655027000000        1602259827000000        1664727027000000        
1696263027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xb0ab62dc4cb846f0482e71066eec379ecf3657bd806b4d797e125457b4eba59aee76872724c048597818b4125f388561ab1bae031355f4e8d5df2ed565ac73b7
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602259527000000        1602864327000000        1665331527000000        
1696867527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x62f289752f1c3eceea483fe407b8ddde976821c0e2ac910394d191b6761aa4e41fb995e8360930d6766d68013e5b340e1a9b06ac7108374b14fa9fb378098b91
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602864027000000        1603468827000000        1665936027000000        
1697472027000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x9bd261f42cb7be585884414ec175eeaa7c446a0d3f26059cbd121a45adca55d377aaba48798f5d3c5094882194eee811e40bea8d5e18de1ee4393a6316b2eeb8
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1603468527000000        1604073327000000        1666540527000000        
1698076527000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x1e5e384e59ac0bdd77b086344af2985d8a5b1d4e58804ec47824d3d37a5927e0cedf43c55ce4051192f089480a1c61e31393185862e4781e563659684ca9d61e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584124527000000        1584729327000000        1647196527000000        
1678732527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x3a1e88834aae2945a1143238e367ee63ac473383553b81e78b903246fc2ad1e20a4ec6fd6c9400c30ec0883bc0c4d0bbc6824cc3e155450faec74144070d164e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584729027000000        1585333827000000        1647801027000000        
1679337027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x440ecd32fd5ef557cd02a53e17d936a34f7ec084e5aaaad521cde1ac77d4a4ac094eb424e8ee25d7389cd27763b7a92ec1522d637b8f953b59c767b789f6ede1
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585333527000000        1585938327000000        1648405527000000        
1679941527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x6dddf8715186a8eb2a1cb88c6b31becd0205db2956289622f32f055a4985070b230996e1ed5faf8db243ffa3fd9e784e34c0e014f232b4e29f8a7ab9e2f22caa
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585938027000000        1586542827000000        1649010027000000        
1680546027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xc1710f64ac6a6b8fa3d25387cd064283e52e2f79ae6fc6ce48df855cf7045634af2f1162119c48925ecd8a483b36b6545886deda8757e3b18cb79aa77ae409ef
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1586542527000000        1587147327000000        1649614527000000        
1681150527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x29db9458faff8b21df3e0b3f84c92d386501a1071dc4c3d8eef767cf0c4578d3aa929be60c01aec4575c79886ee1e174384b7265d1c679dfaeabdfac33b7acc8
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587147027000000        1587751827000000        1650219027000000        
1681755027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xe95b5d5f7ef71a62977150668372acfa9bb3418ded88dfba4d3e4b392d3cb5e9c757dbf8702934f96e785b093373ee10e16988d6a894c43c50b4be34c0287f05
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587751527000000        1588356327000000        1650823527000000        
1682359527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x3ba78adafbae2851f7e89e251f96446b3f07582968708786333b9fd72f50c008b29a474b6189140e71ee4aea2a7b2ee056e3684162096521afd8efe97d6449bb
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588356027000000        1588960827000000        1651428027000000        
1682964027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xce3424320907bdb4b3192f3c384eac349b1c1262752839a341ab7202c47d4f78cf8b8ce590ede72cf1d755a2397ffc26e575e04d9de5cb024892e2954f4a72ae
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588960527000000        1589565327000000        1652032527000000        
1683568527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x0ad8cdeffa1fa20ecc12fc359a7c9ee5dcbd86e3c9e45bea047b00a3a1d3d93b643a053c76f06c6e20f8fcd36af54c2055f377ccc98592de6bd1093009a1e296
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1589565027000000        1590169827000000        1652637027000000        
1684173027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x6c7918da2db6cf0d50baa637a5d6334a9348cffff793bed6775c1834f9768f74d81386eeed55fbc9ebe3d97c52a797c6946d069fde4272cfc9c555394fd7965a
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590169527000000        1590774327000000        1653241527000000        
1684777527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xe70d5534d31b0542c9c4e020d5bbf140652d0c6f36aae26fca18ec4accf1a7bdf82fdca08140c0719cc40d8153ef52d6c6cc53dcf55e6369c416ceee888d93de
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590774027000000        1591378827000000        1653846027000000        
1685382027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x99ade2cd19f3699cd23d31ff44f55f69e40bc9fa0118304d17011871519e035bb0ff14f3fe045539f4230d2aa171ac6d0d38a717cdf60645a906c8e291ea8fd4
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591378527000000        1591983327000000        1654450527000000        
1685986527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xd4fd8e4a9c5bb20e021e9333a1871f31b78e12cb92113f248bcf303ddd3285c184d5704969caba9be0226b4e9ce222dc033cc491ff16bbcd6b2b1039fad3f9a8
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591983027000000        1592587827000000        1655055027000000        
1686591027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xccb767410225a0a5655d3e5852e2b7a3014676365fa1f8b2cdbd98dc9c39015a26da313c2cdfc8bb3c14fd6aff08142eff1d4c250a24c1989cf3fc1b1a89741b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1592587527000000        1593192327000000        1655659527000000        
1687195527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xc2e39ed6d084ee01e55815c586e056c98be19e0eb1bcdde16299b310bcde1cb34785cdc11ac318f2e0cabffe9b835bd3c174da2973f35a1badc423bee334d13a
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593192027000000        1593796827000000        1656264027000000        
1687800027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x4b691ba37fec3d24255cf1ace52e36a9f288b36244c0c61d7007cffd45513d0527f5f3c05659b4f9fc8a3185b24c04b626cf0d751ef0b77f02d1506a3b7cce9b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593796527000000        1594401327000000        1656868527000000        
1688404527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xb5807d51b5e20742015336a4c2208a8928d91c1a1ff2aed45d73689a6030ea41acb940321a45e02c25b92de7665387de7bafaef2db8bb29977a711ff3e1e4cd1
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1594401027000000        1595005827000000        1657473027000000        
1689009027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xf5a7447d8227068a31470b1b3c070b6ceab3bc63e0aee599ee753282ded24670414ac04be069d26f885f1fb29960e6e9af0846460fd220a3169869f83fe3d825
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595005527000000        1595610327000000        1658077527000000        
1689613527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xf8dae00595714666ad8c7881ced4755c6145c730e89738e66eec4555cd64003ef9080496ffeaacb3af335ff988807c820de0865be9c36074a805aeb22879ad5f
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595610027000000        1596214827000000        1658682027000000        
1690218027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xd3ddd0f005e026cb906eed33c0bc4dfa1ec62697788deb415584b68ed7aabc6268591f853aa36f8d691acbb9863a56ac594c358d060aeaab6e8d4cc5571fa19e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596214527000000        1596819327000000        1659286527000000        
1690822527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xbd5e2204e03e457b19f62dc7ceabe1001a964248bf6840a19639ddffc9c3510b8ece27d12cd0f54c3bc58f27fc8bee6dc9b141280ff6bee9300716ec1e80c6a7
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596819027000000        1597423827000000        1659891027000000        
1691427027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xa71dbf87f15110e37038bf5621c50a5bce5c4a1337474739bc4c42f0f40afbbc62c90445f30959480dd8d66a9c5852b0e93d8d90a5ac10023bfa3a7b65dd9291
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1597423527000000        1598028327000000        1660495527000000        
1692031527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x29d6d00d949c4790c20d59ec73676e15534cb1c146b0916ed20615239fb4d712a0e0807fc9adf6ecb41615c28441c225ab32b3788fc8d4a653a0a7462cbecf19
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598028027000000        1598632827000000        1661100027000000        
1692636027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x9a9e6a85a27507bb16676c418d12f3a8bac940b55e59109239fe063ea03c1cbfb3f1c1ead34d8a68437ef59e2c24fbbd72727349d928e368be80d6e3e23f28ee
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598632527000000        1599237327000000        1661704527000000        
1693240527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x353a0d013b2aaae6639b723315e74a47f2549d602e3222007f254126a6db8fe8745c28adb772acbfbbdbc7548783fc3773d1f28f1a5a72d3c5bc629ae72dc23b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599237027000000        1599841827000000        1662309027000000        
1693845027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xb351b95acb03de7d85f73635aa79e54a3e72b9827f249c889db3a98b02129fd37d77552daa366c8c81c27df9a443bf846c9a1be996b3141da2111e83b8192856
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599841527000000        1600446327000000        1662913527000000        
1694449527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xcc6425da4bc0b5708ec1bac6f43f6e3d96354716b6e969672b159d56a94bec8a7384b96bc11fc0ee08d463f42003816cf1b243315ac8047ddb2591e040891a87
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1600446027000000        1601050827000000        1663518027000000        
1695054027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x1799d4b35aafe948b59f3d0eebf034d61c1d45732367a54d5811d8d694edc58a2034262a822a83e14e77e13d4d332bca71ffb284ba012cdeea1c9d321d5f2dab
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601050527000000        1601655327000000        1664122527000000        
1695658527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xcbaa0317d27bd90dcc9c1fadb0bacd291128775a01a14e719f23bdff89ed764aa4783ddd0f3ada1568371f0318cbc172721de0f4bcfc4ec674b295fea79db61d
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601655027000000        1602259827000000        1664727027000000        
1696263027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x689e5487355ee63b3fe1fc74f6e68b846cbb53c6698d6436d2cc602f2b689ac03b0d9f0b3d2e3b007db10b92b5624e179861df7daee64361c3a1757c1b94798a
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602259527000000        1602864327000000        1665331527000000        
1696867527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x7978efb03620d4808a5eb9ebd4d2363e1d2a28b5464f3650832f5a8a5f96e568aeb26febb57cacb2e4e097000ddf987586ec6078d4d459777b9fe23d959172a7
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602864027000000        1603468827000000        1665936027000000        
1697472027000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x5a3ef191b4f27a6667f4c34ff8794136ea9b3e3a29e7dcdd6475be15f8b1ac09c3ad2a8007b46bdee3b3196ffc864a685373888e4bf35a3c8f9750d5488eb008
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1603468527000000        1604073327000000        1666540527000000        
1698076527000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xdaca7cdc05a7e781c04ab1e233ca2664bac59caed67e4d00fef43e31f191487a7cb91d8b862d6f9329da670ba79e6aa599de8896a6032249796f50870eae3933
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584124527000000        1584729327000000        1647196527000000        
1678732527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x70e1710ad98a6a196e28d1fd5f47e3efcd1b8e7b2f2c3a827876d2ac95f522849d4d310447b76c798fa99b8c2d2f778f584ea1794f9a6bd67e233f9755d0fbdd
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584729027000000        1585333827000000        1647801027000000        
1679337027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x026828646242d17763289929b2e79e08ed0af6ef5e94c2e96ba2ec22fe38c4df3557ec2b99d7e6c1309a4c63f830548a86789d73e7032b7524d9b686be8f7db7
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585333527000000        1585938327000000        1648405527000000        
1679941527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x9c46be3b92d42255ef22a8d18d3bf65d2600fb7b034d2f8d1c09dabe5a345f2e05322f6db09e8c70c0a52fd091ca4376405e85e6393a0a3bb7ba02894bc251ad
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585938027000000        1586542827000000        1649010027000000        
1680546027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xb1dc83372de79855773717f0bc277c05909631a21672115b41ec805552235854229edd90b3b8334e1bf0eefe781167440f68bdbb61a482457d7c526407527eb4
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1586542527000000        1587147327000000        1649614527000000        
1681150527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xf0dac394e0c22dbb44052708ed32560413d530b0485b238c5a92e02d5020516aeffda52bfaa95a97038727f0e3679bb64ed63e26d46c3c14bd829add29c6e339
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587147027000000        1587751827000000        1650219027000000        
1681755027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x9611496044ae44b36d15c142db917df55069befb21d6f7edb77727028f7342abeae8c7a842d0f43620b54d5845f1e3ccc886326c1277d7455e406e6a026cc5ed
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587751527000000        1588356327000000        1650823527000000        
1682359527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x8254bc93c919dc2e169b97e6bcfdf7bb16b466cfa7a6c047248d37361ac31df661165e9a9f633b39922da22b6121d65e0f9f466f3ab48da861728defc26b0793
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588356027000000        1588960827000000        1651428027000000        
1682964027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x22687bb7f5689e6cd945fa27c438e9efb41ae3984aa990f6b10940e780c410d380735d6b13b3f5c4294ea2124ea5c4e935336df23e84e0aaddec8325118a72a0
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588960527000000        1589565327000000        1652032527000000        
1683568527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x701ca07967f0258f55a69ab005c59a8e830b6d0a6cc2b057754d60c05048ef5d391e708719cb2b5b7e3a331ea0c382b19fdafe20429f6f17dcff306c7bcb6519
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1589565027000000        1590169827000000        1652637027000000        
1684173027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x94ad0c4fa48c6d19e1b1712c4b6330f5f156303a6eb3ce17e79320df4e5dc42641a09aa349271ed6341fbd3c70bedc14d1759136cd1dbaf34cd3c3883093af2d
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590169527000000        1590774327000000        1653241527000000        
1684777527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xc46aa522338c44a61794946022c7aacdfc177cc056a5ba686d7304bac4c99309c8b053a3d47381d1550dcf31370485d393bad7cbbabd2fca5dc0826659e1be70
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590774027000000        1591378827000000        1653846027000000        
1685382027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xf4646cafb8a856272b8a6896df96dda4f6f4fdcf3d799be76930af7307b88316f4cba350a06755ed97c6105a40964c29db27b60f85e9d883185ea90237eeef09
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591378527000000        1591983327000000        1654450527000000        
1685986527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x20fe9cc3b1cb73bef401048d55f789dba305380277596dce68fe8bb983840934520ae78da7cf22a760bc5281b78eca6f88b9f56d47bacca513c4aec6c12daf44
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591983027000000        1592587827000000        1655055027000000        
1686591027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xcdcf0e88cf82d3cfd0c3abffed069072a54887fcfb154826bc23d3749d748d2e17c9bf873af4b315efcd2c1297b77c4850b7e76f84455a1443217a0a358775a3
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1592587527000000        1593192327000000        1655659527000000        
1687195527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xfc7567301d3779518ec847800b1028fcf15f715dd717bfe3c25a3cfbceb2c04450694f1864d07ec6b1c47d275d2fa486030342f6156a1f83c2b6c24859594a47
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593192027000000        1593796827000000        1656264027000000        
1687800027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xd7ec29922a2ab2c75db8815c37639811b54dcaf790a7d647d88dfd9381118d0ccb0fc131d56639e07eda8160d43ef211ebafd16980d8aa7a71d140fb84072daf
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593796527000000        1594401327000000        1656868527000000        
1688404527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x425b7bbad7b652b7ee98590299f06e4fef593b4a3c190c6f07e2def0fce849b95f131f8be12a7cdf6ae0f4e4786cf73d71682727b9c896416f73c41ba974e7ac
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1594401027000000        1595005827000000        1657473027000000        
1689009027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xd001bd79bdf26801b8c94490190f35af5e66d7b55e5c1f69e92e71faaf590b05046231f1cd1ffd3d1a1f58d181f5e2aa9bfbce128b7c2dfeb8ca9dcba2bfe911
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595005527000000        1595610327000000        1658077527000000        
1689613527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xc5fe89ff0980ec18e88168476f477efb0933742a44091aaaddcc97545e078e8c385600a70041857fa8083394b0e8ea6ac0000cf7a03cb94ea97b45186929d824
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595610027000000        1596214827000000        1658682027000000        
1690218027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xdbbd22a161dc28ebeb39c8c19b62c24a477399c6fa69a4cdd3c405d9dc4fccbda2c244b66feff49aa7eb7b58583503f34a4e73e83e2f6329d54c59df811a2dba
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596214527000000        1596819327000000        1659286527000000        
1690822527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x45ca11e9216ea067d43e637c6a1c915afbadf21429d7e704e5358239289024b48c9c955e3d010b9ad2bba0b2c9fb493c3248ea6bb5065bbd6238eec1f522e005
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596819027000000        1597423827000000        1659891027000000        
1691427027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x1c3c8bc7b05cb996362e2b4f9d4d02942a55f168f82ecd4fd91226f4d00420f2fd1d74331490962cce588c2fa593584ef247a4bcffbea9fc6219cfad974cf7ba
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1597423527000000        1598028327000000        1660495527000000        
1692031527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x2320b1ad58ba388b2c77dc68b3aff1c8a190e1956867d0e1a205466e830f2770b39b545fed68dbe24ae6ec2782958f263a225814f5fe0c2e09ecffaeeb617d2a
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598028027000000        1598632827000000        1661100027000000        
1692636027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xdd15cc1ccbc9e88271efb73fed0e16d0f2f6e49fe81c105facabc5fbeb53bee1305c3eef89325a735dd0f9bb7d3a4bd9520594e6c9e5e41b5163c24c5127b09c
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598632527000000        1599237327000000        1661704527000000        
1693240527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xd1b124342be72b23b3e0e68ffb9f8b538e30dc828ce4a582c32e8f78aa39ee17d7f939beea0078609f6e45ca5f78a596709c2f98ee0a714967ac1be79798a29b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599237027000000        1599841827000000        1662309027000000        
1693845027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x9c4af6f6354aca37595ef1deaa37e5e7cb8bd7530e635e3d395e6902615aab6ea9fff183823c20d97e76ccee0b82d43571e2b2683fdc4e913c71bb66ec162036
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599841527000000        1600446327000000        1662913527000000        
1694449527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x89d7ac9dd5b2f6b576b754f28b1c52f4cd7ead3bb2186edfe6235528b7250331f2eb4aa460e66753addfff4b1189ffde244472e98c9b6caeb7980db71231699b
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1600446027000000        1601050827000000        1663518027000000        
1695054027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x99a69e5e26e2f8e5f83104c79dee072ee6018669f8d7b0f0c666d2e2f775db3423c0bd186facb12f9eb200b78a84afa21e7f06f0c95f0d42a916973fd0f2208c
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601050527000000        1601655327000000        1664122527000000        
1695658527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x582a8c78af9af9a6ea680ab0ae51582123676c98a2eb206d2f5e9b023e448ab6e1b07702740fce88e9cd9fe3b9db8a107ffdbbcbbcc785e8f79052a4cfdfc206
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601655027000000        1602259827000000        1664727027000000        
1696263027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xc1c5873f0daa2d7876f25794f58f81e01f33de23842c7861a02daa8813ff1ba8b8657cbd5f97aa9ae80f1d6933897ce8f6bde911e2e80b06915d319b4af03528
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602259527000000        1602864327000000        1665331527000000        
1696867527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x4a70b8ee6a64968de4911cd02ea3c24fac7c5c6d6cf1ca2b6f1ced96073258c5cd7e1fa5a6c731d9e6ec7a282f457eaa49027756fab56bab60c833ef9230575e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602864027000000        1603468827000000        1665936027000000        
1697472027000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xaba6767e5fd7e407e88a1611419cc2493fd0855029fec7b8ee354db11c25e5e8ba3619d469789167a1cc31c2bf989237bf84addbe22e2e21839e4287e29df2a2
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1603468527000000        1604073327000000        1666540527000000        
1698076527000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584124527000000        1584729327000000        1647196527000000        
1678732527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x219e13f4cc746bd69a9e42d0064f18f01df10a300f1e7f0eb6b702ce609c1c298cf79cb314ee6e6355b34e9683d010cda9feb50322f30f47604475ecea87ae51
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584729027000000        1585333827000000        1647801027000000        
1679337027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x38a6316d7733d9ab22dc1ee21ddeec54445ab802265704f2cb1886424d2c71c9e01282bf1c7154bf812fda1515eb61b0e71ee6d3594a099f5e2ad3b7543a4256
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585333527000000        1585938327000000        1648405527000000        
1679941527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x7129214704224f28016e13a81c5580ec25d516481a672541353410afc1eb28da038fa5429f2e324e95f96022279f8099c79625d3136b4c574d485d4370130a95
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585938027000000        1586542827000000        1649010027000000        
1680546027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xc7ca973d4625d38421b350ecc2681bee151fa3890ffc4bf01ca0dce134ec798249cd9eaff9fff59833bcc8acb740c26d0535989dab7c2dd1aef9a68641a7fd2c
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1586542527000000        1587147327000000        1649614527000000        
1681150527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x0c8cbbbe4b792c026532ee2b04eead7061235e2cfaf6640e4ca3386b5b86d01ab079c357186c5072e4a1af19c1b7d7fc5424d5b302530513605e36d6086697cd
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587147027000000        1587751827000000        1650219027000000        
1681755027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x932b578fac6c518e2b2d9ae8590e67b3a5cd16275f2413aa545435f0f243f1b917cb8b99543669c5b075ea339b5f65e6d3bf834c1f379ae491b3eaafed97fbb0
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587751527000000        1588356327000000        1650823527000000        
1682359527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x599ca0bb385b935f35c4954295ebcaa36ca4266987a715bd8aa4f6840267853c82cdb4f3b8065ec2c75f77c72f01417acb92a427a7dd1eddabc8f587ead09e60
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588356027000000        1588960827000000        1651428027000000        
1682964027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x1651117a6ecb0e06b992727774ca18b3c6b74af6e6f6a216403a1c50f979712c8936d34b4689746e7045bf6cabbc1376b78a10154810179071efec0002fdccda
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588960527000000        1589565327000000        1652032527000000        
1683568527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xab36a85522f86017ed676eba3e5edd2cad851339a7c2e6cb25e7810782b05b4e444e98f60280faa29c71f41958455b75ee271a547b2b257b3a12d2ddb8f1a1cc
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1589565027000000        1590169827000000        1652637027000000        
1684173027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x224f0386a1b2de9542a2a6fc46c670b9aff12adca237f220e485e3b6a3fe8daa048bc09feb8d5cb9c3aac9653a58bed33a3ad39395561c2c99c20cce471f2b56
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590169527000000        1590774327000000        1653241527000000        
1684777527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x5b9e014d272f57e4bd324400118d99854f12bb448d4f7478ce986fe8bde7bd9feebed3bdfd9fe2b28b36cf398363d7b291066f21ee6e601dec05a56aeaec91ef
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590774027000000        1591378827000000        1653846027000000        
1685382027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xa380b56b294a436a4b80f24016b5d0eaf28c92d975b399fc29bc3aeacaa7400d0dd3cdad622c4f8a2c0a15dec3601d6f75c45df3306a7901ce50b95af5fc4fbe
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591378527000000        1591983327000000        1654450527000000        
1685986527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x42b90336763f126f6144297aa83afce12f9c6690c7c1e2866afc3497cf526d997338399f92639c80e2362ccac4e4de71930aca47fa7718d0bd74f49824308a3f
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591983027000000        1592587827000000        1655055027000000        
1686591027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x6576b9dfcd7d9e6fb5991cca26a3eea1584637a0dcdbcc892e5ae5580cd542723c313ef89571eb2269adc40633c938e840c2e32e38c816d3c4e8ce40a18e03a9
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1592587527000000        1593192327000000        1655659527000000        
1687195527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xa6b81af3384f1a3402a8cfe1bd9635cb5a45e1394cdb9008d01a7db888201456dc3331c344cd246c48e216570cbca93f1b16c5831d9d6c70be25659cac679486
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593192027000000        1593796827000000        1656264027000000        
1687800027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x574f9fdc3ebafb73ef88030346728d582d62a8d942cea38a11812f97e578af30ed0f29b893b3e23685864380fba443a6f302e55660fb23f3ad424a8ff3c30bd7
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593796527000000        1594401327000000        1656868527000000        
1688404527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xff224808ff0ad42106d317584aab3cac2124212c7b06e6bb51209a03259f5c9cdd7e062b959342e57dd4d3c6d7e41556ae484bda9b6883d29f565ba445b08356
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1594401027000000        1595005827000000        1657473027000000        
1689009027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x5b928f1516a891672a807fdbdc9161e69d3e8ad738efd8984f546dfd7af15dac67481882daa25a1cccbcbe90a5f95b8aaeecee7a67946525991aea83c87138c4
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595005527000000        1595610327000000        1658077527000000        
1689613527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x0ef1a5d5333fa440ee46dd5c6e1b8e124a5f1bada7afe420ad600ace26657de38696e805900892b7d34b623296bc8af8748f9339e9d3e4cb5651999927cf4bdb
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595610027000000        1596214827000000        1658682027000000        
1690218027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x20d2d6aa2894eb8ed375f6e0b39532f9ea83fdd5ec7f6615c270534b27d6538f0289fe486843da523cd6d59783677447ea6fcb914945ad85b7133db93d0d52c4
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596214527000000        1596819327000000        1659286527000000        
1690822527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xdff6d8d844938fd27d142a4dcc0a5e2b6ee848cd0657b8b9afab2e6d2265b6f66c0638df55d387d0a17b30cb9d7283a9b64476fbd0acb4b95cb86ade59b42cac
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596819027000000        1597423827000000        1659891027000000        
1691427027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x62af1aad614c87e4c7211e2e1a6d404259666145600da2ca69d2e0a4f3f0ede9a7ab84c8b8a54e973eb59418df7a35d3429368f179c1e216704c1069028e9de8
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1597423527000000        1598028327000000        1660495527000000        
1692031527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xcebe8de4b2897b5e3f52d99278dc0fa28b5f3722e93183a1755739d4a779c137d9399acfe7893966a45628b4ceaecbee88a6b4b9280b9f60d41d48d943da0677
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598028027000000        1598632827000000        1661100027000000        
1692636027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x2ac1920af6289b24cb867bf6ec8b70c8b3f1df824aa936b2c383af03375493a49184525d4ca8702bb7dc4f60d414e03a0859053d0d36dcfb5889c543da59759c
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598632527000000        1599237327000000        1661704527000000        
1693240527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xbf00094b35ee43894327f7502174a5ce0b3a6d04f7469bdb70b2f7793710a0f4e34c088d939b2b1c4569e39b3c06d28773c6f7a091e7419fb6d64d321f55bfc1
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599237027000000        1599841827000000        1662309027000000        
1693845027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x930afff580a3d98056ef09d557c0efe2696c28626e926f163442084190781116a2619da31d57905e5c07b32171a11be861c06c0cd032db27f66337652f6b6dc9
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599841527000000        1600446327000000        1662913527000000        
1694449527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xf427726927f6deb2496e0899c5126ae1ab5594e0a9b4cb9c2292d822b5e6bea9c1204c96817ecb6ff19283c2e08f77f174c9719f783db029d1008ddf014539e3
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1600446027000000        1601050827000000        1663518027000000        
1695054027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x82bc94f87de76b23d6d351dd5df662852d2153f116c7fed549834dea6cb58ba7d1121bf71dafe295646ce6657e1b73a38e218a701bb542215922dd7a4b399caa
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601050527000000        1601655327000000        1664122527000000        
1695658527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xe61c2d268d94f57c99b3d4b82cd2b9a83aca28e1f3d7597245787e6d3cd1bf9a0e33190cdf12a7b830c0a5e86fe0a7133b442e2f49472d1c3c2ea3a401d34c29
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601655027000000        1602259827000000        1664727027000000        
1696263027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x8973c5a7102a6da989320dd6bacf6a4302c2b58dd2d4fcd41d6415eaac1258daf3eff8b5efd2c394acdd2dd2562f8c84efbdf7aa6c1597591579a672ffe51948
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602259527000000        1602864327000000        1665331527000000        
1696867527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x8fdbdb6b90c53ca421f9bdbcfb7f0c14c5da59b2ac010d264aa76d4c0708f095794f57f07d1c1abba907a8f77ef9f8d41ef19661d993a1196a9771a93fea98d5
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602864027000000        1603468827000000        1665936027000000        
1697472027000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x7dab82a9348a3ef8616de6b8784ffcfdb5e4fdf47783a0c60017ec646b24e7f28034e1550a7c705f0e9ede1747f3fc1a8bfd77b3cde21187325094b3d274dbfb
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1603468527000000        1604073327000000        1666540527000000        
1698076527000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584124527000000        1584729327000000        1647196527000000        
1678732527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x20c978f9a2db37186d61ff11d9e30dcda92b2d8e29077bac309f9db9be570a75f7543935dc75f976443cb953832215fb2520cdfb3f06abae1e9e74c45c0fa589
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1584729027000000        1585333827000000        1647801027000000        
1679337027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x4883660d80ed5b9651c06a467a913c5504940fc360d607fc922f5aabf1ef0e7567d952eba4764dcb1a3ceca37e42a5a49e86ec724240789eb6955866255d0c7c
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585333527000000        1585938327000000        1648405527000000        
1679941527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x22348d1ad408d8ca6fa6d65ade4567aa687645a75b7e697af05be4df8fd8e5726b859aac44b6d0f6b589b105eb645842e17646881c31e813ec54f98de11c1194
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1585938027000000        1586542827000000        1649010027000000        
1680546027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x5ca639afc97ac81e65ed5a047ec4039c2f01224fd70e58863a382a7f9af580d27d0e70e217a37976ef3bbcb29f9b8aaa70dea6c55654a4674418e1565b7bdfe2
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1586542527000000        1587147327000000        1649614527000000        
1681150527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x6c7ed8d5009908068dbc107ed5740591c2934c2b20a17db1a5b5c4cdacc23864187a7c24e3e02c5a51a197e3121ab4d18f27f1070b98869f4b8f1381328a7c96
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587147027000000        1587751827000000        1650219027000000        
1681755027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xf68937d70a7a1b3c9eb5932cd8760fdd18efd455b6f8e881aa0be1188466573f5b3d295045d07bd65d197dadc310484bad2d8fdde6dbc7c429aba29b8a696d84
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1587751527000000        1588356327000000        1650823527000000        
1682359527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x12f79d30c267ac4f4c96d9c4a7a3cc20b0344ca6fade34c4d2c101797a84fdc49552f9dee0c56a535f36fec2fe81fddb9efb2a78261b357229c0071fc7685b46
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588356027000000        1588960827000000        1651428027000000        
1682964027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x0f1f0d0a5cce6e3e7351e308f12554eeb9636729232575e59b315577a72f88be32e0ca83c027b4a69b98e02aa52ac88816d06e40b7a98964ca16c13cf8037c8c
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1588960527000000        1589565327000000        1652032527000000        
1683568527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x6f446b124d0ba3d24fe2b37597dc3771f2f3f8a30a416f799b113a062b61c1a02282d66b5dc3552739a8f4f72d2e0169b0ce4b241ecf6855b43cee59517e9b2a
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1589565027000000        1590169827000000        1652637027000000        
1684173027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x48db11bcbdc2695aceeb3bf99b43975521af749f0c0798117a3499db593094423e2c585d2fc605ecdb1f540ea9b7c46e74d5f69c8eca106bcfac840f8bd136b1
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590169527000000        1590774327000000        1653241527000000        
1684777527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x12c102dbf4cb63761dce1611e278a075b617920bf4ba837a584dd1d55ce02423e2a3dc5632cf7b71671dea5b723a499cefa86e8b75adea0631ecb7d4c283dd0d
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1590774027000000        1591378827000000        1653846027000000        
1685382027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xd2e2e3cc32b8db5ef884246990dfd5fe7a739b021db8f764a1dcfe63ea72f01cdd61ef75e51eeb4804c7620bede23ab72ce7b70ed4f6a4c61e33580cd3825ae2
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591378527000000        1591983327000000        1654450527000000        
1685986527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x981de637694002caa02c2d44d2f9ebd56a9c3bb4df9a41ecb00a0fe5d7e587a456c35ac5bbef24165ab38db6a1c5d7e5586a0df332f3a01272ff7e52813cf237
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1591983027000000        1592587827000000        1655055027000000        
1686591027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x1ddf58992df18cc06f19ead407f8a67330ad63dc896b981e907010696dd30f3866b57eae146946582b609e4d64089c7a88bffba4f66b8719e1482495e4f91a7e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1592587527000000        1593192327000000        1655659527000000        
1687195527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x76c4a304399a29a22602a7499dbb603a98f59f75c62c07a1ca8c62de960b2ccfb4f8558675ff5ca18ccbdaa1ab6ed55e1d66d7422ce790c250646cf03d9d957e
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593192027000000        1593796827000000        1656264027000000        
1687800027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x4e496c18160552ad02b3074d1a944062573ee32f25f62c5f2b803be49116d87397bc9e5f0f131c08f7914e770e4ab685ec98eca9216fe1ef668afd20e2fc43aa
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1593796527000000        1594401327000000        1656868527000000        
1688404527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x71dca7e2794fd0d21b785e82f27fb351ebf06d4391a74a6feb220ef03632fdd61bda97d28cc3b4a039affebbc02e1532c4546eb5a7c1c1990ac5394335a910eb
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1594401027000000        1595005827000000        1657473027000000        
1689009027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x789c55f97b0f830327f8a85f80307b590aff4392ca3f6ae98ebf7838b54d293d74e8ef9163a32b07f0a7288ae515218276cd66cdbc9e95ace31cc34dcd93c012
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595005527000000        1595610327000000        1658077527000000        
1689613527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x007831ac13fb2fd91a3c534f21cf7cdea6d9780aed594c42b15d7fa86c119636db27324fc66c90523ac3e34f711f7128cafa8842e504acf3bc26d5fe3082ac7f
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1595610027000000        1596214827000000        1658682027000000        
1690218027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x854d619f4d4e057244a431e6e22819f1cfde23c714d2dabf7b090736afbcbce1ee7140ce7b56f71623ffa83d50d7681be685d8b2dd5d34e388ba2fbea0e85761
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596214527000000        1596819327000000        1659286527000000        
1690822527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xd21902884a8475d70ca341e11cad968081041a221797074b1cd63327806802c8900efa115d3d851895d737c38d7c709b1807b3332c43ffe1723e25181b1d724c
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1596819027000000        1597423827000000        1659891027000000        
1691427027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x1dbd8b1d3a1c032f0b833ec7bf3f4848febe6489449b8e8e9ce8e408f2932ca6b6951a7cf2f493a99751ce064b7b23029da1c56242a9a0639b0fd8ae93d1212f
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1597423527000000        1598028327000000        1660495527000000        
1692031527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x8f7f6d914a70f57e8480f65b732478cf9eb808ec794d472d9159299c41fab8674e97378039e21cbd79ab67b1f60cc5fe7334c584e6fdd53255df8dd2e1234a4c
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598028027000000        1598632827000000        1661100027000000        
1692636027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xb02bf813b2db03452be8bca6a75245131e6e815a34fc0b9c807f2d09e082ebf20e103b9fb0262808343bdd495d11dc1fca022a718fe596514852e46ebd30ce7a
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1598632527000000        1599237327000000        1661704527000000        
1693240527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x8a0f9e4fde53bdc1493c68daa3868b3168ba7b65a8ca10733eaa57af364d14331b2004632e253f4b0d5f722a2240cacb3edd3e2c799d9f2a30d110af6dad4209
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599237027000000        1599841827000000        1662309027000000        
1693845027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xc1f565b59b68e91567944d3920f18b0342f22cdc29c8caef2e565a62a7cd5e6c408ab30e4eee68a3717eea9856e51142510a1cfcb5f2ba7a71ae68cde062c3f8
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1599841527000000        1600446327000000        1662913527000000        
1694449527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x355c36c58f56c0639b6f32cd28c7e6f55bffc12614e1fbe7521211cde17631826e2ad632c9eeab6fb74385aeb600d61c342d8ede9ed84613f024006a460c6a80
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1600446027000000        1601050827000000        1663518027000000        
1695054027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xafa1af804d576aa34a733bedce5aeb778fd7afa5123668cc30aa6ea5740a3a6cb6a7bc834c471ea17e9a0b867926d0fa73cecd85a70a5d6dc6ef6aec92912010
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601050527000000        1601655327000000        1664122527000000        
1695658527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x6a0249c2536390e37c24462960e36c4f1a503be881978bd2e634990537a92568f6fc6490aa100118673ff64a200e0dca758ac2c783115eeb8e7df36bf0db3b27
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1601655027000000        1602259827000000        1664727027000000        
1696263027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x8cea8ac77b34e19673eb0371460636bdab438dcba72fcab2fa302384fb4e15d48b63a245949e52dfb4170566a14cc4456a73896b7496fcc24115a4d3a31a00c8
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602259527000000        1602864327000000        1665331527000000        
1696867527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xcfd79051d789a6c52ad31cd300b0f89362dc008da611ce6b4a9fec830b47060a963ab5437c5154969a53b62ce4a5f9bd1e5e04e538b8195a3a8056cf661a12ac
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1602864027000000        1603468827000000        1665936027000000        
1697472027000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xcef49acfd01ea30db38bbe6b73d15c1a56ce590a58f77cbc6206373c247989835391be91ebd15e00c1ba9249b08bcb0578588ed46fb908c03e19d4fe34295366
    \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
1603468527000000        1604073327000000        1666540527000000        
1698076527000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\.
-
-
---
--- Data for Name: auditor_exchange_signkeys; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_exchange_signkeys (master_pub, ep_start, ep_expire, 
ep_end, exchange_pub, master_sig) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_exchanges; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.auditor_exchanges (master_pub, exchange_url) FROM stdin;
-\\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa    
http://localhost:8081/
-\.
-
-
---
--- Data for Name: auditor_historic_denomination_revenue; Type: TABLE DATA; 
Schema: public; Owner: -
---
-
-COPY public.auditor_historic_denomination_revenue (master_pub, denom_pub_hash, 
revenue_timestamp, revenue_balance_val, revenue_balance_frac, loss_balance_val, 
loss_balance_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_historic_reserve_summary; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.auditor_historic_reserve_summary (master_pub, start_date, 
end_date, reserve_profits_val, reserve_profits_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_predicted_result; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_predicted_result (master_pub, balance_val, balance_frac) 
FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_progress_aggregation; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.auditor_progress_aggregation (master_pub, last_wire_out_serial_id) 
FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_progress_coin; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_progress_coin (master_pub, last_withdraw_serial_id, 
last_deposit_serial_id, last_melt_serial_id, last_refund_serial_id, 
last_recoup_serial_id, last_recoup_refresh_serial_id) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_progress_deposit_confirmation; Type: TABLE DATA; 
Schema: public; Owner: -
---
-
-COPY public.auditor_progress_deposit_confirmation (master_pub, 
last_deposit_confirmation_serial_id) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_progress_reserve; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_progress_reserve (master_pub, last_reserve_in_serial_id, 
last_reserve_out_serial_id, last_reserve_recoup_serial_id, 
last_reserve_close_serial_id) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_reserve_balance; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_reserve_balance (master_pub, reserve_balance_val, 
reserve_balance_frac, withdraw_fee_balance_val, withdraw_fee_balance_frac) FROM 
stdin;
-\.
-
-
---
--- Data for Name: auditor_reserves; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.auditor_reserves (reserve_pub, master_pub, reserve_balance_val, 
reserve_balance_frac, withdraw_fee_balance_val, withdraw_fee_balance_frac, 
expiration_date, auditor_reserves_rowid, origin_account) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_wire_fee_balance; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_wire_fee_balance (master_pub, wire_fee_balance_val, 
wire_fee_balance_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: auth_group; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.auth_group (id, name) FROM stdin;
-\.
-
-
---
--- Data for Name: auth_group_permissions; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auth_group_permissions (id, group_id, permission_id) FROM stdin;
-\.
-
-
---
--- Data for Name: auth_permission; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.auth_permission (id, name, content_type_id, codename) FROM stdin;
-1      Can add permission      1       add_permission
-2      Can change permission   1       change_permission
-3      Can delete permission   1       delete_permission
-4      Can view permission     1       view_permission
-5      Can add group   2       add_group
-6      Can change group        2       change_group
-7      Can delete group        2       delete_group
-8      Can view group  2       view_group
-9      Can add user    3       add_user
-10     Can change user 3       change_user
-11     Can delete user 3       delete_user
-12     Can view user   3       view_user
-13     Can add content type    4       add_contenttype
-14     Can change content type 4       change_contenttype
-15     Can delete content type 4       delete_contenttype
-16     Can view content type   4       view_contenttype
-17     Can add session 5       add_session
-18     Can change session      5       change_session
-19     Can delete session      5       delete_session
-20     Can view session        5       view_session
-21     Can add bank account    6       add_bankaccount
-22     Can change bank account 6       change_bankaccount
-23     Can delete bank account 6       delete_bankaccount
-24     Can view bank account   6       view_bankaccount
-25     Can add taler withdraw operation        7       
add_talerwithdrawoperation
-26     Can change taler withdraw operation     7       
change_talerwithdrawoperation
-27     Can delete taler withdraw operation     7       
delete_talerwithdrawoperation
-28     Can view taler withdraw operation       7       
view_talerwithdrawoperation
-29     Can add bank transaction        8       add_banktransaction
-30     Can change bank transaction     8       change_banktransaction
-31     Can delete bank transaction     8       delete_banktransaction
-32     Can view bank transaction       8       view_banktransaction
-\.
-
-
---
--- Data for Name: auth_user; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.auth_user (id, password, last_login, is_superuser, username, 
first_name, last_name, email, is_staff, is_active, date_joined) FROM stdin;
-1      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       Bank                            f       t       2020-03-13 
19:35:38.157863+01
-2      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       Exchange                                f       t       
2020-03-13 19:35:38.237327+01
-3      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       Tor                             f       t       2020-03-13 
19:35:38.302998+01
-4      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       GNUnet                          f       t       2020-03-13 
19:35:38.368415+01
-5      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       Taler                           f       t       2020-03-13 
19:35:38.434473+01
-6      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       FSF                             f       t       2020-03-13 
19:35:38.499854+01
-7      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       Tutorial                                f       t       
2020-03-13 19:35:38.567893+01
-8      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       Survey                          f       t       2020-03-13 
19:35:38.638836+01
-9      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       42                              f       t       2020-03-13 
19:35:39.051866+01
-10     
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       43                              f       t       2020-03-13 
19:35:39.469868+01
-11     
pbkdf2_sha256$180000$dcFtllevXo2d$0ihEIW62H0Cp7cO5hW8wZT0+Vgf+G61Ihvam9R0vUa0=  
\N      f       testuser-LX9PpmbM                               f       t       
2020-03-13 19:35:41.106028+01
-12     
pbkdf2_sha256$180000$CAv2OAXaz8qe$CwXlK4qnwaN+Qr4T0BxPSaMlgxNztPkv/rpNI8i/4TE=  
\N      f       testuser-GlcUdYmc                               f       t       
2020-03-13 19:35:43.726736+01
-\.
-
-
---
--- Data for Name: auth_user_groups; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.auth_user_groups (id, user_id, group_id) FROM stdin;
-\.
-
-
---
--- Data for Name: auth_user_user_permissions; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.auth_user_user_permissions (id, user_id, permission_id) FROM stdin;
-\.
-
-
---
--- Data for Name: denomination_revocations; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.denomination_revocations (denom_revocations_serial_id, 
denom_pub_hash, master_sig) FROM stdin;
-\.
-
-
---
--- Data for Name: denominations; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.denominations (denom_pub_hash, denom_pub, master_pub, master_sig, 
valid_from, expire_withdraw, expire_deposit, expire_legal, coin_val, coin_frac, 
fee_withdraw_val, fee_withdraw_frac, fee_deposit_val, fee_deposit_frac, 
fee_refresh_val, fee_refresh_frac, fee_refund_val, fee_refund_frac) FROM stdin;
-\\xca5e89c144df5f82fac1329f3c86754b0e0a105f7cf27eb9412d20cb48db7eeed585252b6a25a99c85ffaea656af87336881999a8035b50d7917c12f6a9b90c6
    
\\x00800003ce4886caec21e05ee1abe6f6f4c8d81dd0ac85ca353471a839da3750ad17f281673a1c29bf91454c595c6d8cc14aa335bba13c6ca6ec649f5df6a89335a6aa1c01f6e01fd45ebeef59d5c8d985c9bc92d524b760a3a256daf6f9a96465621469e31880129962b94fb7cc3c12571879f30e4ba3a27399d03913b12357c1fbaacf010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x87fd4d25c4af04e [...]
-\\xb13be79e272cf95452c46fdc192d07d16f24c0c0d9638bf2ba7814146c195272bd5f6a308e5c53460c4e5adc12c8116170bef14a542ceae0379dd0862008d868
    
\\x00800003e1a047301ab6f248378b1625136bb85c95b482305e46666861fde22919b117b8880145d62bd6e8f2475f2e01e0ca8c2cd31f385a9cd770b075fc75341d84d5b915f390db44ecb110538004c1595217fdf37015c474f24f55476f33a1df7007cff712b195ca54003b83d19680201631356e18a467eae4a5d3c8a0da68c39f7c65010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xcc734296a398733 [...]
-\\xa6576c13e5143d56edc29a8c4917121a1c3917f3436c26f3349de6c226bb96bce029469a4b627b504a3f17d70c4ad7e6c015b4873e98c87238c9b824018f461b
    
\\x00800003ec4d515927a5c089ec4bbb1c3307282fcc3688aa855a3ab3d7b9575504aff6a6260784b77c32b8768d7cc5a01568a756397d4d2424bd54e29ba8e552e7abaf77fc232bdcbf9df532af931724ed3ac81f738e15513c827799115d19ca130fc81163722970abc9a964dd5534b03415d9102a899d0aeba8e1fa47d5b71a0eee75e5010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x9d4b5be1bf25df0 [...]
-\\x19d70de23bde1e436057b52e826f99bfa483b84ce088c89daa91a32eab5edd2edfa2aafa1714e1cddfc6faf8667574e76bf139865720b73ac9d6d4e6cc04c5e0
    
\\x00800003d98f24063131deea0b9040bf7454597718f6f948fd144072bc6f13e7ba1dcd390b527dac570a543f4839dab9db73f57f8d0d00e7b3e03e3a1725268420feea15491262b8495e9c65fc16f5de4422efddcbeb6d1f3efd8ea2e9c851afff851e1bc5de62b1f2a7853edf8d2252d219c9ef6783a944266d40354d02a44e3b6c1b89010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xef6e3cd3c60c0cb [...]
-\\xddc88ee65b9d5ffc9787a9154065eae790812d277640692b9de92d2ccbe417d95f649de7208d63a5b8dfbe9df3215c1c61862c14863168507078619eb14921a2
    
\\x00800003e1ee0243d9f85b5479929948af7e82c0f1b9c951cfbe56360ceaf4d71477bed24d39f12c3b702fb62340c87b7103e82ea4de7b865d7eb027ea35ac848d04386e973dbfdcb2dff9cac33584eb64790bfdd68b56be1c0c58b7fe7db494aac8fe547e9ec92e5dc1c67cd75b3c0ab1085e4b0098a1e1c15fc00b040204916bcbf94f010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x765eb874c74dcf4 [...]
-\\xff062da42a2041b151a9a116837e70a11be427656d0e79ee440386edaa31181931fcc88667cbcfd1a47dcc382e8f770d897807ec2b0be258ca061eed3bee85ee
    
\\x00800003c41864e17885d6a72358c7eedaeead1158d641ef6e21e406227bbf64371f897c657c658ec0f5380bf17ddd48900c081246962ac89705cf84fc0252552a70a3cff2b5e732f874f44018d7ac5b7fa19c6e661155ebb191798198e0cb365b61cde26c5cd795881d8099db156911752678c3bb308dd5d2d41ef6caf75b0802e634c7010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x4d07eb9010978dd [...]
-\\x9cb0ae54f9c698ebd27e4de1c80894794ba23e6a96651809bd62aaf4b09fc051248a210d11f632c21a9bf60eb8a81bcee79dbdf8827a522774beabb2e17f26ba
    
\\x00800003c803d6a8bf9489f9545c3c199b18794e22313602b2e7f19b74df47a987c284c1887ec33d14ec34c1f25b22c8ab1a915b16a446018b7a15fcc4aefd453cb13b27e28af23fa21dc325f2608543b390d41b27dcfa2dbbe27b6aa9f230e13b9124225d1538b703059ab6a003435731ba7d2ff9137723f0f17f8d77d9980ab8c7a149010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x15534bb923b5520 [...]
-\\xa96d1614b62d8a838b7ebee977db7f3d3b7c3630c8d6aee9c96e848c5b4f72200672fb3ffe229bb3c0ca63fda38757550f42170cf04fa8c647342d4d82abee67
    
\\x00800003cb92954f616154a0ebe5c193a06fd3018035f879bdc03381d2a83d43b6f287e3d4cf4806523973118374ba31f6a8a71a545c1fca5f1026bdc767db8f3eed12956599b1cc6555fe388eee70a61e8e795df3ed48e6c67ea7b88ded6f00f0b4b1550fb2493031bc553374b63bec73c348b0a8e761f1c1275deb5d82ca1c4e613c61010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xd86f56888547205 [...]
-\\x73cc45fec9836dec65d8c0d9b9e0bed91b00a855f640a7ba5710ccf9f83b592660711f7fd27ad73cbe9b36ac8c934b3cf8dedb73a816a2e99338a600d171a09a
    
\\x00800003d0556420e2c659389778fc16e0e3d5fb2b49a56cca48126bfd7930f4993dc9c09ba31b0bbe576ac6c4a5f5aad846022d9eeef2889123987cf273867a2ec2c36e2ecf7f0ca08d4a252a6a8432eb9dd399f7a135948caea9edfd0ce3f10817ccdd5999bc75126de2431f616518fc75e4889ecfd726cebd27e8e114c3976a87df3b010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x3f477a85d8436d2 [...]
-\\xbb45dd1f40b446b36785e2178930240f1407da65a34dc2f4c39b527838e014ae2f5a5249a5db28ab0a64c1e37608fc7345508132dff6c135fd8c1bf651248dac
    
\\x00800003c8517efeb52d4907be3df6b94345049dc6d8fad031a444feb8e90a320b1b1d91060b21fdd71ca7476a8cfb204102ed44413ca2a40e59a07864e2015207a392a44ddef8546fa47fab665976beff3674e9acf3e179c3c36f1246740a08f25bfcf88d775776911aebd57082730077f1fa594e265988388c2505a4baa4174265022d010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x171138cc0d66243 [...]
-\\x440ecd32fd5ef557cd02a53e17d936a34f7ec084e5aaaad521cde1ac77d4a4ac094eb424e8ee25d7389cd27763b7a92ec1522d637b8f953b59c767b789f6ede1
    
\\x00800003cc1ffd73de7dfebe1c562ce6a9ce5cfd3146ff33ab0f30492a72f1a6a742f324577025a341379715c90f0c04dbd96d07a27391a3325a94c0f175cf6d6414f961bdc6b323cc1207143486a647f1c3be1be501101b73129a8e5c4156026fe37d8ab50658d3c29eb7af3e53dbf5b34fc2043e18f12d97b04914f8b2caa01f4f0473010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xa1c8c14005102e0 [...]
-\\x6dddf8715186a8eb2a1cb88c6b31becd0205db2956289622f32f055a4985070b230996e1ed5faf8db243ffa3fd9e784e34c0e014f232b4e29f8a7ab9e2f22caa
    
\\x00800003d2172c1f2cac388f4a262c5c6e6f829e56fe426714aaf5d3554dd0b212645aad03b746f5fdfa51c63d19bb4da228c4df158463ee5fd115c515c204bec75697c3c6ebe4047f385d17b609aa8e4cc542d9bd77e076f451e9b7ab4168fd3a81b4e4c94d166f6569d9ec2459bb9f08f8501583c58abbfe1cb45807f5b94ba5263b83010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x595814f099c431e [...]
-\\x1e5e384e59ac0bdd77b086344af2985d8a5b1d4e58804ec47824d3d37a5927e0cedf43c55ce4051192f089480a1c61e31393185862e4781e563659684ca9d61e
    
\\x00800003b9d0e89e0464cc294a4b703cb0916ec8f101c199c0913ff6b89889b34921e5370b0ceff1a645e605e0df0b2e76e50b676672bf6dd30ef8c69c2f54e9ea7d4d8970399edf6c1825908a3173df18383cc0a167684553c523acb9aec5cc6352355e856d273fd73b5da3a01aab35e85df41477312a4c75b085e624f38eba384c9aeb010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x304650635cac382 [...]
-\\xc1710f64ac6a6b8fa3d25387cd064283e52e2f79ae6fc6ce48df855cf7045634af2f1162119c48925ecd8a483b36b6545886deda8757e3b18cb79aa77ae409ef
    
\\x00800003ad5737091e9743fd02b05911ecdcf921459b8b5a15dd43fafccafead79069faa43d2aaf9a70b983a37bf75e0916e5024ca8bb73a9d2836027b6dbfd29ce3d5b20724b76ae6b86d8fec4f4920600613478f62bc9035cef81a43c78e4ee250f64c17b5857884e17b0d169715f78b30d94aa6e997e389c128e4ae4c3f49331ccf47010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xceca691d7178b57 [...]
-\\x3a1e88834aae2945a1143238e367ee63ac473383553b81e78b903246fc2ad1e20a4ec6fd6c9400c30ec0883bc0c4d0bbc6824cc3e155450faec74144070d164e
    
\\x00800003c591404b33727f144ecb7c99cc91486002e1e7ff0117fcc13c717195c82ea114c0279ac87ab8a3e4b0a618c4b67630e31a0d4aa8de2b477156be1b3f396a51d13934c9f81b377c09e465f76a7effe7509a1fa44fa3f623d0d52c6ecc94dc2a5fa63b3c054f60a25937d7acabf9fecfa896b40bf9e8a50699cd1b00d4689adc8b010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xef4431c1d9ff48d [...]
-\\xeb874e306cba69263f4ee7a1cecb2b7649b54a1d1ccd427343a838dafd4f8f2d97b828bc65c9557f83934e041f8957c5e7e28c3bad7e79a984c7a24acf57f803
    
\\x008000039d401132681791f70513d712f0f4b19241230afb120695b8a250e1766e06fe82150635cd4da217d182c1e3624a08312970e70a533a06f05701a23417b243b6e42d9dea9b1d67cb1f019352d19dd8afb4ca1773451080080562600af5d49ade612754a6a827fa95095230f1344ffd931f480fb1303aa901dbe240acfec0451847010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x5a499be00f19391 [...]
-\\xcd70779a6f182bbfffdc0da52269411a478384f9844eba7897009ffc8ba92c52ebfeaaa274564177ba77baddb77a7ea16d5f2327d6e78cb871f52f7cb458765d
    
\\x00800003c47b94ccfedae9656f4b5c8c6f9524418a356d254af754e22cf6520b58da9c537c3be39e81a410f9e5e04c58f2733928c7d76fb10cea441eb8c3ca4fe35f3fd7e977e08c649bfdd0bb480da9443db0b95bf2da14476aab5c4bb6a459f337b71cc9959b37c242f684d9788835bdf90bd54cc55460d6917077b5caca4043905e57010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x55285c088ad40c3 [...]
-\\x597a8051c87010b154a8dfa6643279b0c166b51539c69b9cb19af986ab521ed59877b3868c0e56aac00ebbd6f1f3036a6b667403fc032e32b5589ddb9c257b8d
    
\\x00800003d9d03d2b9b09d7277ca24c5231038d49a46d080c8bd7671b665c39328e6b1be137953fe40be4a3cc752cff25165b08ad41a9d49707bfd49601d0dde0bfccfcadd64f02320c253db5da792606a53f8da11d1e9c39b9f18dff9ddf07c40b11ff235506da19b9e5aac9b7f17b02ad6718269a95fa48b7a5927b9b58eadf229750f7010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xba8ae58e0b93543 [...]
-\\x3b6d21737bf0bab81896a28cce0df7b6fad9718ed09fbcc0617c6f1da04d7806a9e7ab60bb2ede861246390a649951c74d210b12f5cccbc7d1e2539911bf585b
    
\\x00800003b41bdc5e3f58e742601e474858b2c7a6c55e078c74ee175e71a4804fe0d774f9dbc503bf7b00d491ceac3a43798c613777d6c2cd86169ea8bf41395b6695baa3b0fe4fb56e561cf7479c3c3fa725bc095e15fc4a3620734e1e26e26354401db4c53305044bca0003e578dd9b77428db0fa36c8bc0e9751b2323e341b6fa6d00d010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x52a44f26383e8b7 [...]
-\\x7246fdafe0cfad50a1068db61dcf1717abc01a6197db5fb2fa5bcf482d90e5071b7f670f10b9309551a53978bfa64481656854e7484bf6f867f3e94b8383d33b
    
\\x00800003a188bc13744a4300c1b95817c396f9076e755a0a09f403f94380db24b4a16bacbf48852a2d8753aae1a71727daa3bf6561b7a940c05798134066b3a367aa3c7fc286ef31368cbecb1de36b2e0ceaac727dadba705a98024ce98e2b07ad7e7820798192769c8f15262a30cc0c98ec2d4af730bec1cd16fe7096eac035329c391b010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x98845def777f9c9 [...]
-\\x026828646242d17763289929b2e79e08ed0af6ef5e94c2e96ba2ec22fe38c4df3557ec2b99d7e6c1309a4c63f830548a86789d73e7032b7524d9b686be8f7db7
    
\\x00800003be4a7bb6192c1aa5e29adb2e162eed80bb207610b94139364156e901ae3a902b5f3188230287e0612dcbf9cf91a35e03736abd6f209a7d29faca45a4d55efb0c4b74a52cf8be1f9c0db0a4bc5a6b7d06c2170789fdb5dd7960628e3ea50fd1b2bf3aeae6c0eca4c7c7116051ad5edee47850dd811fa569e54eee2d06dd5f0231010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x5b898f41af05403 [...]
-\\x9c46be3b92d42255ef22a8d18d3bf65d2600fb7b034d2f8d1c09dabe5a345f2e05322f6db09e8c70c0a52fd091ca4376405e85e6393a0a3bb7ba02894bc251ad
    
\\x00800003d5e49296ba82cc605345d6467a826e8b5237de416c65607b4da81bfee63da4aca78b8513b26de0e87d841b252c98d8f2e489aebf9841c515d1eb0793dd32a11d14b6cec67741dd1b18ca422df9fab85f23fe61db1b5bfcef5d83e88bf975fe84eb03e153cd5045b77eade82bb71a5083301c89c778b62c199f386fe5a867a87b010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x968470a35890911 [...]
-\\xdaca7cdc05a7e781c04ab1e233ca2664bac59caed67e4d00fef43e31f191487a7cb91d8b862d6f9329da670ba79e6aa599de8896a6032249796f50870eae3933
    
\\x00800003c09b6a69e5216256944a4647ea9b6db44423b35597fc0c4c8918deef59a930facae82b65e54e9e5e76d3b2fb9608844a6ca8f9a28a8380b3f43be1ba3b523377475fe4a60e047cb78ebc09d979a48cc271be31bd31dc10d638d29e68189de3b3bec2e3e7093a48b2e11614093ceb8003f0724cee27330fbd995c193e3a0a463f010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x834a002ab74ff3a [...]
-\\xb1dc83372de79855773717f0bc277c05909631a21672115b41ec805552235854229edd90b3b8334e1bf0eefe781167440f68bdbb61a482457d7c526407527eb4
    
\\x00800003d902ed74e57fcfdf691130afce1819a1556d3eb5e71de2696c208fed60e8eb24da71e28c33d15b77299784e42ba181a84f35181863061fb16867ce56a1f08d2e936598ad89ac0162a5b0357b7d446563850b07fc2ad9a151a45edd93bd3371777f4eeb5ba0c265f8b51efcd5261eb61f8cb48ef3d83d2aa05330718190f4d89d010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x7d0c4621b3e8df3 [...]
-\\x70e1710ad98a6a196e28d1fd5f47e3efcd1b8e7b2f2c3a827876d2ac95f522849d4d310447b76c798fa99b8c2d2f778f584ea1794f9a6bd67e233f9755d0fbdd
    
\\x00800003a9b87263fa85ab87cec1d6f4453dce53beaf85ee2260f6533b16738adb0edf2da3704af15ef730b7aaae3be3803fccea699c1dbab23a11bb2892e9d7c0b0434d3f8f05467361f818f4038c67d7dee0fbfec836a4993dc66e1890749d38da26b014b69ce9e1543f0e8ba81622304be9f90131f31a31fce0fb63850c60bf6a65b9010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x3af07bf48c1ee87 [...]
-\\x4883660d80ed5b9651c06a467a913c5504940fc360d607fc922f5aabf1ef0e7567d952eba4764dcb1a3ceca37e42a5a49e86ec724240789eb6955866255d0c7c
    
\\x008000039efb9e5e59ff102939f6ca0854e42d3ae1e988f5a9477bb7ff143245e5cdd40b1730c6c0b2c5d6b34839e84c6768d78928f290154d88f589afbe7d219fb7f63b2cd2cf0dd5930e6d0c01c3581d4a4cbe72c3f26095ffdd8ec494015a613c02240b89acb5381e06e72fb949c002ba1f887b39479cc6a2fbf864c2437c1c8d0b7b010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x89d3f7e88b73571 [...]
-\\x22348d1ad408d8ca6fa6d65ade4567aa687645a75b7e697af05be4df8fd8e5726b859aac44b6d0f6b589b105eb645842e17646881c31e813ec54f98de11c1194
    
\\x00800003d7272bcbf166e1aad6c5b95aec6043986528265d0416f1e610aa38b787a9ba80a13f314facf4b1357269a5f4a2176a4ac1477bddbb39fb9143c85cb11f53a289b75b448334c793bfb0f602d599977c3a5a252ec48b81807481cfa97c2df0b366111611f65bb1653d604da3403f188fd804f5dcf1f9dfe41977ade0bbeaff90df010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x640f14fe341fa70 [...]
-\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
    
\\x00800003f83ed03e7c128662173fa86474e21137a372fda811106ad733002b3e7079f6711d5e074ba962bf825f5753483681a6c5654705e5c01d390e9a4a8fe928e6ad0e4a34920df1e00b4d98d8c73e8d83b5caee590700a4379b8171a1b23e82fa9baa81b2949f57361037a4956c2141a24c0fc0add51c6769a90a6740f25907a0f2b7010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xb5a03c23f108414 [...]
-\\x5ca639afc97ac81e65ed5a047ec4039c2f01224fd70e58863a382a7f9af580d27d0e70e217a37976ef3bbcb29f9b8aaa70dea6c55654a4674418e1565b7bdfe2
    
\\x00800003ce25fd45c8df7a0d851c43f314200887fc8ddbe39c98f93559235dd4d69497a4b66f7cd808e05543c53e454a6f5b88f57e60e64cc7424e315563ebaac7ffad0e20b38cedccb2606584fe1f9473500b9286a9081d283a42e9554cfd3426a6b3f511f2aa436d6139957a2e52cc521feea4ed9bf8ed26326cd9a038f6b9a5f15ac9010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x96ed3ed03dbf725 [...]
-\\x20c978f9a2db37186d61ff11d9e30dcda92b2d8e29077bac309f9db9be570a75f7543935dc75f976443cb953832215fb2520cdfb3f06abae1e9e74c45c0fa589
    
\\x00800003bf890a83bc06473603be6aa8561026fc2cee10cd4a14869dcd8becd5bb21f3fddd3bf8bad62c4eb6d72c951889e636f599425d5cf2bac1b96e2f25f318acd8703f60a2adeb4d6991ce0dd8b3ce89b265327cda0c70554c56a97a8482dbd9e3aaa311872bdb1419571b6c9ee6aa1e7bd562568e3d849bda4f064cfb8fdf1c3a57010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xff0ea7bd5f77ca3 [...]
-\\x38a6316d7733d9ab22dc1ee21ddeec54445ab802265704f2cb1886424d2c71c9e01282bf1c7154bf812fda1515eb61b0e71ee6d3594a099f5e2ad3b7543a4256
    
\\x00800003dec4ff80e64098b7ae00280b357ce5563a98441c172c7c385b46af5b1be3e08d6010ff046bb2f94ac108613ffb7c3ddc9d325e722d28df0c0f9e0ab9ea2ae8ea5db847ec640b22c15a0eee77226c15192851b34e3c4e9d7ebf99e08a424bf88649201b225d02729d3c3cb227f1a94a70c45b85c30c6ba1f148389ebbaee92965010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xd7658085054adea [...]
-\\x7129214704224f28016e13a81c5580ec25d516481a672541353410afc1eb28da038fa5429f2e324e95f96022279f8099c79625d3136b4c574d485d4370130a95
    
\\x00800003bf60e5046468a2871409663abe71406c795bf1eea7324d766dc7e371038b3104238d08e3c79d92cc8176a4361d78fb7616a2201bf98e70553a5a79fcefe47ae4c89286be08aeca35f5b8e64ac51c17ab019def36a72d0f5d3ef68ef3af454eee726c01d8ec342fef5e89419d2c42f1c822e2aaeeea314ffa6c924ea9c780f4db010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x32670ec806a514e [...]
-\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
    
\\x00800003bc3dd9c22574bd250fb58c4628dd8ad4480ac88f76602c563234ddbc06c7610b9c32ce137acf9c458ed251108c4e098fcf4aac926c7eda1550a26739f6a51800895c660fd01066518101667a8aae345a9ac839c8c6ceccc55127d668ae1fffebe0792228b6ceef327a60ee45e2bf642d17e1b3f35fc41614478ef863727cac87010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x3b4f830a3f7c7fb [...]
-\\xc7ca973d4625d38421b350ecc2681bee151fa3890ffc4bf01ca0dce134ec798249cd9eaff9fff59833bcc8acb740c26d0535989dab7c2dd1aef9a68641a7fd2c
    
\\x00800003b50ea8f56d6483194523f595ffd5cdea47d3c5cf662f35ebde6d914f060952211985ce21a33ec2df14e25a1684a6e54bebab5d150735a45080659ee32ff1b4b0ea31b22cb9ec7b1db49e15b2b4e9bd2317f78467a97a9b44646e8fd423f57a7dd28f28dc385ff58f636254c645bca3b5d9dadb0292056835a2cf9da897699745010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xc5084a8e8a01e46 [...]
-\\x219e13f4cc746bd69a9e42d0064f18f01df10a300f1e7f0eb6b702ce609c1c298cf79cb314ee6e6355b34e9683d010cda9feb50322f30f47604475ecea87ae51
    
\\x00800003cad11e9222a9db28e0b7cb83c3471e00b7d165c9c75fde2bf3157952ab20d569f7488082fb24dd48f342b8e46cb507fdab6b5d570f30bdbd25a84d6b7b58b2cfeb49ce3dc1f5b5611142cab5459a91a690ccb71229efeffde04aed806e7d0f79f82e9b3fe776b9e474212a5134f85c2740939807e1457c8150860c5ec4c5360d010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xfe63aa058348bb8 [...]
-\\xf5ec27a33faef3b0da60b8403beaebe30e385c3bbb0849372b164d26b8c73265914f804eabffb948646a8ee0ff18ac8681b5014adb983dbc692a4406791ec1f2
    
\\x00800003a3aa7255ad8146f08166581ffb0485e0f7151ab33ca42bb49c5a5cb713acf170f4a41caaec47093963d7d96e8b70208b7f946e87752011146a3e2687ec502df89295ad24c9f0c6a0de3cebce5beff56f29a2874a2041867d968d93dd72200773fcfb97cfc0642d056c74a69f4b8de44bff6ca0a31066a77d8bae36f3172ef491010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xc4b621489acc39e [...]
-\\x736fae372040bd5d2d9c97e454efa630d0ca6a01a277602638c998af302418885e017148f4ea7cbb144a0c29a463c8c922f3c527f0ff63add38f64292c69f5a4
    
\\x00800003e295a2b289c08db64929f3358e797b79bdd1d47a5fdf8fd2311ae251a49524c2e5ff73c2a3c8e3a9e1ad3a22bfc85ff50d52e8e0b4a71203fdc33812d1f0d284f11c964a3d9045050553bff210b055beaaead552c8fe254dead414ae74e8e1059336af45d9b103c82cff12c48251d2e376d75b459f55ee07b6519bb25d9b3455010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xff0ad2fcc355f96 [...]
-\\xe2557e383c1c3c019681c2521d415a758f1becb629a3a75fd9dc212f0f2e802aee81e71db725f0f9913bea0f913978bd7d238558712aa957d80c4e1673292b13
    
\\x00800003e507725bcf9546efceca340ab3e26584112e0ef76dd658530c8c49d533cdfa99eb4b15aab02a9688b090c3d41524c16017367e68dd16697ba7378d107bb2847028738ed00a6a9c770503b8dc738b16c780fa27d9e50b355fd977ade1ac8c810b454d6c5fc387a00da8b67ff4a501bf90e4cd055ae47f3c3a091a1fd4113d9565010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xffe91c3d5d330d8 [...]
-\\x4faae841605109e2e8f43768baf54551b8d2ac29b16f601799c2ee260b9bcad53c8b4e5ab2352bbc1b12bc28c53df0e3ea355d61227430edb4644cdc4546907d
    
\\x00800003bff0c91b4cb35659641e0899c62e521f645d152916158343a3317d53558dccca832301e3f870efdd7a9df5247a37583b13a4a2e5076d65e0b2adf890857dffd58666b1ad707cc32441d51b15aba2339a41d7e0c1e43b51c0ee088ac49e402e849e869dc6c49c1bd85d0faa341e5680e770b7a06f9f3f6122f50393560277ee63010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\x127896e38a662f1 [...]
-\\x89d632dde6b67bcd5496434399229c75e8925653c5c952393a61131b03f941ba1ec3de4e210861a730b85fb87cdcd7ccabc26317cdcb823f83d027ba8777324a
    
\\x00800003a92dd9345bbf84d519201c8cbad3783c48f9e8c5039c4a827183a0d002b44c08a9651d1d12859f314caa2e91a28ffbf2abddd4d0ab74ac03db2407680de5cf19dc3955f6b8cd6b6ae1cd4846c8b4d3a8d6fe0b24196ea1ffecf157b9523f60227d776b3b351bc060bb0220136242761cf2a548c1c657a0687d4fdd53ee3d8327010001
       \\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa     
\\xe88df9aa6e98cfc [...]
-\.
-
-
---
--- Data for Name: deposit_confirmations; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.deposit_confirmations (master_pub, serial_id, h_contract_terms, 
h_wire, "timestamp", refund_deadline, amount_without_fee_val, 
amount_without_fee_frac, coin_pub, merchant_pub, exchange_sig, exchange_pub, 
master_sig) FROM stdin;
-\.
-
-
---
--- Data for Name: deposits; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.deposits (deposit_serial_id, coin_pub, amount_with_fee_val, 
amount_with_fee_frac, "timestamp", refund_deadline, wire_deadline, 
merchant_pub, h_contract_terms, h_wire, coin_sig, wire, tiny, done) FROM stdin;
-1      \\xda43e65bcadb947221036c387da292da2642c97961f450027820d0d9d5ab1a0f     
4       0       1584124542000000        1584125442000000        
1584125442000000        
\\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\x61043073e65af0221d1c95ca0a32917de5241b89f81678577db4df852e19b5545a11b0b1d5f786917fe0df200159864d78c575ce57421112e58bdbf0e1b90672
     
\\x137f048953e22f0e5d28fc42089dfefbf9af016870a369a489f99c2b7038951e3644106d64a0906a06ef332199c006201be7c37cde19d3103b41394b885e3f7f
     \\x642576f253e7849a632bf7a61c38a5f3 [...]
-2      \\x9c73b669f228b004180fdcf3a9f33afdd000fddbaf12688eed6e3f4c57cef523     
7       0       1584124544000000        1584125444000000        
1584125444000000        
\\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\x06c4c1f2ee5260b7fb8bb1542fd840107b046cfe46b05923d205a5c03f03a3d19c367ff4c642be00989a36d3dd48abb6b444a7566897902b5d62e6cb01e10edd
     
\\x137f048953e22f0e5d28fc42089dfefbf9af016870a369a489f99c2b7038951e3644106d64a0906a06ef332199c006201be7c37cde19d3103b41394b885e3f7f
     \\xb47295d4d8bb784929ca37c74a3ab62a [...]
-3      \\x0b11cfd1ebfd067d2cbc26e663f2f814a8b5e9a387667adedfc15006b5531b0a     
3       0       1584124545000000        1584125445000000        
1584125445000000        
\\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\x2552601dc511378133958937eaf4e1c6cd934cefcdfb1645774ca60278e386acbfa6dbfa6062e0c55dd09af197ba578ac715d74f11015c95b51904fe4e5adfcd
     
\\x137f048953e22f0e5d28fc42089dfefbf9af016870a369a489f99c2b7038951e3644106d64a0906a06ef332199c006201be7c37cde19d3103b41394b885e3f7f
     \\xdee39e3e40bd23cb375afd5c8f934f3e [...]
-\.
-
-
---
--- Data for Name: django_content_type; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.django_content_type (id, app_label, model) FROM stdin;
-1      auth    permission
-2      auth    group
-3      auth    user
-4      contenttypes    contenttype
-5      sessions        session
-6      app     bankaccount
-7      app     talerwithdrawoperation
-8      app     banktransaction
-\.
-
-
---
--- Data for Name: django_migrations; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.django_migrations (id, app, name, applied) FROM stdin;
-1      contenttypes    0001_initial    2020-03-13 19:35:37.942029+01
-2      auth    0001_initial    2020-03-13 19:35:37.965921+01
-3      app     0001_initial    2020-03-13 19:35:38.006049+01
-4      contenttypes    0002_remove_content_type_name   2020-03-13 
19:35:38.02578+01
-5      auth    0002_alter_permission_name_max_length   2020-03-13 
19:35:38.029156+01
-6      auth    0003_alter_user_email_max_length        2020-03-13 
19:35:38.034873+01
-7      auth    0004_alter_user_username_opts   2020-03-13 19:35:38.040331+01
-8      auth    0005_alter_user_last_login_null 2020-03-13 19:35:38.046473+01
-9      auth    0006_require_contenttypes_0002  2020-03-13 19:35:38.047897+01
-10     auth    0007_alter_validators_add_error_messages        2020-03-13 
19:35:38.053184+01
-11     auth    0008_alter_user_username_max_length     2020-03-13 
19:35:38.063052+01
-12     auth    0009_alter_user_last_name_max_length    2020-03-13 
19:35:38.071748+01
-13     auth    0010_alter_group_name_max_length        2020-03-13 
19:35:38.078775+01
-14     auth    0011_update_proxy_permissions   2020-03-13 19:35:38.085658+01
-15     sessions        0001_initial    2020-03-13 19:35:38.090129+01
-\.
-
-
---
--- Data for Name: django_session; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.django_session (session_key, session_data, expire_date) FROM stdin;
-\.
-
-
---
--- Data for Name: exchange_wire_fees; Type: TABLE DATA; Schema: public; Owner: 
-
---
-
-COPY public.exchange_wire_fees (exchange_pub, h_wire_method, wire_fee_val, 
wire_fee_frac, closing_fee_val, closing_fee_frac, start_date, end_date, 
exchange_sig) FROM stdin;
-\\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa    
\\xf9099467bd884e86871559a62a7f23b6e876bf084a30371891b5129ce4440d3cbe27afe387d39b2ce8d9625abd388517c81bfc8da9f2e0f8c9471bff65a802b2
     0       1000000 0       1000000 1577833200000000        1609455600000000   
     
\\xac23892c002bf8a985814ae72efcc892c969a76146a4e678b8baa39be9a77aa44b6bb38061f0c7e5b62af0dc80a90d90269a9dcccf1f20dc970a7f587e912602
-\\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa    
\\xf9099467bd884e86871559a62a7f23b6e876bf084a30371891b5129ce4440d3cbe27afe387d39b2ce8d9625abd388517c81bfc8da9f2e0f8c9471bff65a802b2
     0       1000000 0       1000000 1609455600000000        1640991600000000   
     
\\xd6a6229b7c19ce8eff9032ba6c2a10814419d915130c18ff9b9f5ac2cfcc356df041b8490216051ae64aa70f135aef569fe80611b89e08f8fbe0e8119ce75e07
-\\x5f4749c40e0facf00ec1d0a04ace9eac5707074c154b636391d0651af58313aa    
\\xf9099467bd884e86871559a62a7f23b6e876bf084a30371891b5129ce4440d3cbe27afe387d39b2ce8d9625abd388517c81bfc8da9f2e0f8c9471bff65a802b2
     0       1000000 0       1000000 1640991600000000        1672527600000000   
     
\\x0f71224698bd93d8ae632f307f9693057a631930534fc3ca30d1b8b6bfa9d8ec4d684b9aeeb156f02ed1ed4d7c7960b2960f06351c7046341c0dc035ce70bb05
-\.
-
-
---
--- Data for Name: known_coins; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.known_coins (coin_pub, denom_pub_hash, denom_sig) FROM stdin;
-\\xda43e65bcadb947221036c387da292da2642c97961f450027820d0d9d5ab1a0f    
\\xe2557e383c1c3c019681c2521d415a758f1becb629a3a75fd9dc212f0f2e802aee81e71db725f0f9913bea0f913978bd7d238558712aa957d80c4e1673292b13
     
\\x08075ab603a3dcafc04dda6808d30c65ddee0027cd08cadf3d73d7ec9c6458d92473ed0532b389dc2f1877d86a9d4eefabd08db7e6d258d9de1eebb13a3974db1afcaee9d1c59f0d18134c0738e26e45ea06c61302e6494a4c76a80e0742ea68c063b2742250caef0931bb2d2dfb5a4c7addd70c0ec45afeadff9288c581934b
-\\x9c73b669f228b004180fdcf3a9f33afdd000fddbaf12688eed6e3f4c57cef523    
\\xa96d1614b62d8a838b7ebee977db7f3d3b7c3630c8d6aee9c96e848c5b4f72200672fb3ffe229bb3c0ca63fda38757550f42170cf04fa8c647342d4d82abee67
     
\\x5bad81f95c0fe8de6a8e5994526ffd7d511bfbfd37f43cdce2aff542af08c9c5a08789da0d31d5404995db7296583b8a32c9f79cce2bbc60238e1874caa107c7ed1d9bba2f9d2896945f3db6d8ffe23af7fc1dda85984ae7c0d12d961e46d96ac0f1ae1835f757ba98231409b9efa95b369b30d6f4e9663b0b03917c69430b1b
-\\x0b11cfd1ebfd067d2cbc26e663f2f814a8b5e9a387667adedfc15006b5531b0a    
\\xe2557e383c1c3c019681c2521d415a758f1becb629a3a75fd9dc212f0f2e802aee81e71db725f0f9913bea0f913978bd7d238558712aa957d80c4e1673292b13
     
\\x8e645e50b8a904c8d36ee6fb9242a49ba189395226d4a2fd995e77662acc4627fa54bdba1cdca91d6dffb908e18c3eda66674cb7e4ae7bb1b3c63d57b337bb408691d90e96200b89d0c1edce84670794755203cc57971034a544910cfb43f31902b32a1261df553fd18a9e75ea0d5be0d7f0fc7501b00fc97f45502d62d54a87
-\.
-
-
---
--- Data for Name: merchant_contract_terms; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.merchant_contract_terms (order_id, merchant_pub, contract_terms, 
h_contract_terms, "timestamp", row_id, paid) FROM stdin;
-2020.073-03CD47SDDBMRY 
\\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\x7b22616d6f756e74223a22544553544b55444f533a34222c2273756d6d617279223a2268656c6c6f20776f726c64222c2266756c66696c6c6d656e745f75726c223a2274616c65723a2f2f66756c66696c6c6d656e742d737563636573732f746878222c22726566756e645f646561646c696e65223a7b22745f6d73223a313538343132353434323030307d2c22776972655f7472616e736665725f646561646c696e65223a7b22745f6d73223a313538343132353434323030307d2c226f726465725f696422
 [...]
-2020.073-038FRAPFCXZ9A 
\\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\x7b22616d6f756e74223a22544553544b55444f533a37222c2273756d6d617279223a226f7264657220746861742077696c6c20626520726566756e646564222c2266756c66696c6c6d656e745f75726c223a2274616c65723a2f2f66756c66696c6c6d656e742d737563636573732f746878222c22726566756e645f646561646c696e65223a7b22745f6d73223a313538343132353434343030307d2c22776972655f7472616e736665725f646561646c696e65223a7b22745f6d73223a313538343132353434
 [...]
-2020.073-00M1XHBR2J7P4 
\\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\x7b22616d6f756e74223a22544553544b55444f533a33222c2273756d6d617279223a227061796d656e7420616674657220726566756e64222c2266756c66696c6c6d656e745f75726c223a2274616c65723a2f2f66756c66696c6c6d656e742d737563636573732f746878222c22726566756e645f646561646c696e65223a7b22745f6d73223a313538343132353434353030307d2c22776972655f7472616e736665725f646561646c696e65223a7b22745f6d73223a313538343132353434353030307d2c22
 [...]
-\.
-
-
---
--- Data for Name: merchant_deposits; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.merchant_deposits (h_contract_terms, merchant_pub, coin_pub, 
exchange_url, amount_with_fee_val, amount_with_fee_frac, deposit_fee_val, 
deposit_fee_frac, refund_fee_val, refund_fee_frac, wire_fee_val, wire_fee_frac, 
signkey_pub, exchange_proof) FROM stdin;
-\\x61043073e65af0221d1c95ca0a32917de5241b89f81678577db4df852e19b5545a11b0b1d5f786917fe0df200159864d78c575ce57421112e58bdbf0e1b90672
    \\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\xda43e65bcadb947221036c387da292da2642c97961f450027820d0d9d5ab1a0f     
http://localhost:8081/  4       0       0       2000000 0       4000000 0       
1000000 \\x211946babbc3b7f23a87e5c3edfaf2566e556437c95ca68965a69073edfc07be     
\\x7b22737461747573223a224445504f5349545f4f4b222c22736967223a2242564553504b415043395447594d584e5047
 [...]
-\\x06c4c1f2ee5260b7fb8bb1542fd840107b046cfe46b05923d205a5c03f03a3d19c367ff4c642be00989a36d3dd48abb6b444a7566897902b5d62e6cb01e10edd
    \\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\x9c73b669f228b004180fdcf3a9f33afdd000fddbaf12688eed6e3f4c57cef523     
http://localhost:8081/  7       0       0       1000000 0       1000000 0       
1000000 \\x211946babbc3b7f23a87e5c3edfaf2566e556437c95ca68965a69073edfc07be     
\\x7b22737461747573223a224445504f5349545f4f4b222c22736967223a22465450344e434e3431344d42333942564458
 [...]
-\\x2552601dc511378133958937eaf4e1c6cd934cefcdfb1645774ca60278e386acbfa6dbfa6062e0c55dd09af197ba578ac715d74f11015c95b51904fe4e5adfcd
    \\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\x0b11cfd1ebfd067d2cbc26e663f2f814a8b5e9a387667adedfc15006b5531b0a     
http://localhost:8081/  3       0       0       2000000 0       4000000 0       
1000000 \\x211946babbc3b7f23a87e5c3edfaf2566e556437c95ca68965a69073edfc07be     
\\x7b22737461747573223a224445504f5349545f4f4b222c22736967223a2234393546534e3248533635484d3233525948
 [...]
-\.
-
-
---
--- Data for Name: merchant_orders; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.merchant_orders (order_id, merchant_pub, contract_terms, 
"timestamp") FROM stdin;
-2020.073-03CD47SDDBMRY 
\\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\x7b22616d6f756e74223a22544553544b55444f533a34222c2273756d6d617279223a2268656c6c6f20776f726c64222c2266756c66696c6c6d656e745f75726c223a2274616c65723a2f2f66756c66696c6c6d656e742d737563636573732f746878222c22726566756e645f646561646c696e65223a7b22745f6d73223a313538343132353434323030307d2c22776972655f7472616e736665725f646561646c696e65223a7b22745f6d73223a313538343132353434323030307d2c226f726465725f696422
 [...]
-2020.073-038FRAPFCXZ9A 
\\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\x7b22616d6f756e74223a22544553544b55444f533a37222c2273756d6d617279223a226f7264657220746861742077696c6c20626520726566756e646564222c2266756c66696c6c6d656e745f75726c223a2274616c65723a2f2f66756c66696c6c6d656e742d737563636573732f746878222c22726566756e645f646561646c696e65223a7b22745f6d73223a313538343132353434343030307d2c22776972655f7472616e736665725f646561646c696e65223a7b22745f6d73223a313538343132353434
 [...]
-2020.073-00M1XHBR2J7P4 
\\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\x7b22616d6f756e74223a22544553544b55444f533a33222c2273756d6d617279223a227061796d656e7420616674657220726566756e64222c2266756c66696c6c6d656e745f75726c223a2274616c65723a2f2f66756c66696c6c6d656e742d737563636573732f746878222c22726566756e645f646561646c696e65223a7b22745f6d73223a313538343132353434353030307d2c22776972655f7472616e736665725f646561646c696e65223a7b22745f6d73223a313538343132353434353030307d2c22
 [...]
-\.
-
-
---
--- Data for Name: merchant_proofs; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.merchant_proofs (exchange_url, wtid, execution_time, signkey_pub, 
proof) FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_refunds; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.merchant_refunds (rtransaction_id, merchant_pub, h_contract_terms, 
coin_pub, reason, refund_amount_val, refund_amount_frac, refund_fee_val, 
refund_fee_frac) FROM stdin;
-1      \\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\x06c4c1f2ee5260b7fb8bb1542fd840107b046cfe46b05923d205a5c03f03a3d19c367ff4c642be00989a36d3dd48abb6b444a7566897902b5d62e6cb01e10edd
     \\x9c73b669f228b004180fdcf3a9f33afdd000fddbaf12688eed6e3f4c57cef523     
test refund     6       0       0       1000000
-\.
-
-
---
--- Data for Name: merchant_session_info; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.merchant_session_info (session_id, fulfillment_url, order_id, 
merchant_pub, "timestamp") FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_tip_pickups; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.merchant_tip_pickups (tip_id, pickup_id, amount_val, amount_frac) 
FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_tip_reserve_credits; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.merchant_tip_reserve_credits (reserve_priv, credit_uuid, 
"timestamp", amount_val, amount_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_tip_reserves; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.merchant_tip_reserves (reserve_priv, expiration, balance_val, 
balance_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_tips; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.merchant_tips (reserve_priv, tip_id, exchange_url, justification, 
extra, "timestamp", amount_val, amount_frac, left_val, left_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_transfers; Type: TABLE DATA; Schema: public; Owner: 
-
---
-
-COPY public.merchant_transfers (h_contract_terms, coin_pub, wtid) FROM stdin;
-\.
-
-
---
--- Data for Name: prewire; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.prewire (prewire_uuid, type, finished, buf) FROM stdin;
-\.
-
-
---
--- Data for Name: recoup; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.recoup (recoup_uuid, coin_pub, coin_sig, coin_blind, amount_val, 
amount_frac, "timestamp", h_blind_ev) FROM stdin;
-\.
-
-
---
--- Data for Name: recoup_refresh; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.recoup_refresh (recoup_refresh_uuid, coin_pub, coin_sig, 
coin_blind, amount_val, amount_frac, "timestamp", h_blind_ev) FROM stdin;
-\.
-
-
---
--- Data for Name: refresh_commitments; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.refresh_commitments (melt_serial_id, rc, old_coin_pub, 
old_coin_sig, amount_with_fee_val, amount_with_fee_frac, noreveal_index) FROM 
stdin;
-1      
\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
     \\xda43e65bcadb947221036c387da292da2642c97961f450027820d0d9d5ab1a0f     
\\xce68d5436fb8696ba93b63a5e41189bf086c7bbd5df1e408f78ff92da88b8d7d171e46f8bfafa4ea456fa063248d2bf13bbb4f8274fc9f08b6067b0cb2425f0e
     4       0       0
-2      
\\xa2539fb2b22358903ebe61138e60844461b396a3716609da9bb0e1e6e034f2469a70c53480769ed38e70f6b2f47525f5a7315e881883308264b5783bbc3da4d9
     \\x9c73b669f228b004180fdcf3a9f33afdd000fddbaf12688eed6e3f4c57cef523     
\\x86edaa88e64050d9c970a86199ae8224a5c36af4593c12f1e3a141484f10cf0641dfdb58fedaf60a548674b3eb1d458aa20d6ac0e7d1e6f50cb58d348b66420c
     8       98000000        0
-3      
\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
     \\x0b11cfd1ebfd067d2cbc26e663f2f814a8b5e9a387667adedfc15006b5531b0a     
\\x5288dfb612ff514caa7494a42f652cd3f0c829352f313d8b83c3f5bca01bf4aaf0377a81ddea348bf2e10b5bb74fb42afa8437cb1f26451645cf1169f2602306
     5       0       0
-\.
-
-
---
--- Data for Name: refresh_revealed_coins; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.refresh_revealed_coins (rc, freshcoin_index, link_sig, 
denom_pub_hash, coin_ev, h_coin_ev, ev_sig) FROM stdin;
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    0       
\\x5d757d8ded464cc535bbff5c7e06cd72001e40f68dd4643b4ce5e331f57de481e7de40e2d3820ca75c023d8eb3952991d2c3d096756d4ff461190dd1f401060c
     
\\x1e5e384e59ac0bdd77b086344af2985d8a5b1d4e58804ec47824d3d37a5927e0cedf43c55ce4051192f089480a1c61e31393185862e4781e563659684ca9d61e
     
\\x29bcd76b9b306ed48e2aa57d2a247b4ee6b655212eee8d51674523a880058369d03480bb7ae91c3ac1bd921ba34
 [...]
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    1       
\\x5a56609f221a13e60c169eda62547c17010f77a5e28cf9db0a260d515ebbde3fac03012aa569dc2b2c18a450303af9439f16c636c6172bedd10b82e4a3e3c000
     
\\xdaca7cdc05a7e781c04ab1e233ca2664bac59caed67e4d00fef43e31f191487a7cb91d8b862d6f9329da670ba79e6aa599de8896a6032249796f50870eae3933
     
\\x67b94720ae891e31b0587e11758b73ef6a50b08088d791646eb814a0870d42157d7ee2b83f32f0ccd6d9ee48b55
 [...]
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    2       
\\x85674d5a1d5d66204adac4f41b2587397c8ef91cbfc73c1926774250bf62a357274b87b34baec80fafcb1e6c5b5afba69b18086836a98bce5fbcbf025fb0860e
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\xb813ebadd403e28c505f9b36513d5a719c47930c86dd26728d2385b5aba6aac9c73a9598cf7f8c54dabe11fafa6
 [...]
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    3       
\\x762c3c9e4f32274b6b4a50fe2ca43f0b99f9e3331a9697021103bc7ca3c96a51c8c8c7c2b01115f75572c756a75298f2ac54541585945fc471116615ff39be03
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x49c34a8f419206f64259ac19130400bbb024dfc05c9c5fd2f1038d9cb6d11e2da3611fe1bb6201480f39dd85931
 [...]
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    4       
\\xc3fab254b784fc6083d1b358dddc5cb55f9df8896d95c7111dc607042d0e31d598fa7d97c66c576fa4d7de6b380634d84487f7d15689f9113d5fe34635ce080a
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x7ccdf86b1ed6fac9ab765d37b20d5dcc607301b69f451af8627faec8755c40824cc65ea79ba58d9ea124a751543
 [...]
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    5       
\\x1e925b8f0f7086d88f720dd36f5d0992cd7c0032169e83bb35a0c4aa204a67990ddde826e3449eeb13f2ae9488aa0352d04dd72236c12db04a5f66f9dff1c007
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\xaca3449e8ef650707fea1fcb024ed31d0347bd9a1ee7e950b24b9d455da4e13a4a6b5fbbe0c9bea099c75bf5926
 [...]
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    6       
\\x1a45b240f4826bc117cc1e6eb40b336b335ef0a8e9b39b0ac80a86a9f51f8a32da55e62f4eefb9da93d58d7b8f35741f15bfefd9cca040bafe9efdaba1b5a404
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x5a997181b752affc30a943efc6ee3796a7f84d32f0448d8095c7bd9bdc270f3171173feca5c8f2a864992db02d2
 [...]
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    7       
\\xf6af907a7221099d88723bfe887b5029165ecb3175e7e7bf0592f2d017b368ac207f26a76bcfcaa6c5aa613e4c5413bc0f6111d85652113d3927b631a3cc6105
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x0795e25daf7c8630e893af5d3cb36de449fcc969bb617d356a5f6b6f26637ccb696238fa45c637c7598e088565f
 [...]
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    8       
\\xf3b3ec15b3624c6cf4aa0b508210d5a63543c332e53d554773c67c29626e82cdf64b310c4dac0abfcc227f90c8d4b083350f674011dbe2323205cbb885482304
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x1f7bda798f2113f9e3c2f7df93509c54f1c9498313f2bc7406ae27bb4e08416eb0863360aaf2f0392d4fff868fe
 [...]
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    9       
\\xb3c397a5aeb2e185aeaf38d987c762c68dba30bc2d0bcb6a7c43742abcb14e520530a8f4bc38ccd69e63c0be75d40b63a50ee18c765b5d82e86b2a4ebaec0704
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x6c5d135d20d976b2171e6158996e4367b1b79b8fc1247844f28cf7b304092b432d207e1dbb89dcb8846aec027cc
 [...]
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    10      
\\xd8c58be2dd15c706938af45b65705e2d94456d96fe1f60a47670e32beff58b45a8794aad5cff585ff4a5491c467627efcab483b06a303685b39aeaa1be263109
     
\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
     
\\x253df068a7d6ddbbd71bbc424427cf86cb5ac66dfbabecd85a45a3d7f55650e696774fb74f972089ca301ca8a2
 [...]
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    11      
\\x058e8f11a5662c2e7ae39919837587018cfd2d2c10f01d7814f9353367a44a3f2f161e35283d3186e6177a34e4a5a23045518cc7e6de2d68d7dae663858b530a
     
\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
     
\\x5ae1ddab42247a51044a37095f826fef1f525dad474a8fc382698818da05da0bb066e03375c5348d062f77f16a
 [...]
-\\xa2539fb2b22358903ebe61138e60844461b396a3716609da9bb0e1e6e034f2469a70c53480769ed38e70f6b2f47525f5a7315e881883308264b5783bbc3da4d9
    0       
\\xc9ff941f9cf7caa2ae2630dd1ac6bd69e6e9ab045b00294722e63988f787b9a8c2fa90cbe743cbed4fb29f56a1e08c9ccdec641599bb9842e0f1275347a2ba0b
     
\\xe2557e383c1c3c019681c2521d415a758f1becb629a3a75fd9dc212f0f2e802aee81e71db725f0f9913bea0f913978bd7d238558712aa957d80c4e1673292b13
     
\\x67c6c2c7470fbdb3a65f1950d19738fa6357ad7cc86edb4498a75267ee149e143486cdacf57323aedf52d174060
 [...]
-\\xa2539fb2b22358903ebe61138e60844461b396a3716609da9bb0e1e6e034f2469a70c53480769ed38e70f6b2f47525f5a7315e881883308264b5783bbc3da4d9
    1       
\\xc81d12035061e98cca2e6982e219d8a98b093e91f27557459fb8a031fce1d90c94d1fc92f62eb9a4c4ea349314be1094908422d8a170ad780c617c4f484f7f04
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x19998639e81429659fdf6c006399c0a0bc3272af6d34ff18b6ae5f416c30676fdbdd9f6042b43d61d69cf6eaa2d
 [...]
-\\xa2539fb2b22358903ebe61138e60844461b396a3716609da9bb0e1e6e034f2469a70c53480769ed38e70f6b2f47525f5a7315e881883308264b5783bbc3da4d9
    2       
\\xc48ec00804a5b6e7f974e85a497b68bbf961ba2db50d8435a16f8a38c3500853726e3d38e81df367e50b9d502147fe7a269cecc6dda08a72a3ade01b5a877004
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x01c316b96b8e85ef2d716d93f6f58d3a6b1c5e0935638bb58c3a2f10338c2db42227ff7ce32d83a71d7b3de756a
 [...]
-\\xa2539fb2b22358903ebe61138e60844461b396a3716609da9bb0e1e6e034f2469a70c53480769ed38e70f6b2f47525f5a7315e881883308264b5783bbc3da4d9
    3       
\\xb02923008152cea2db5d14b6657990f533808cb8e1dc67e345e3244d604502d17e5a7ae7aa3f2ade4d1de0a92a6de8f959f6e757a7bbe73115feb83ece591c07
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\xa3129304e20212998064a10be845deec89ac8854459aecf29d6f4aee90bfa9f5bfe3dcf47136fcd05034e61edb5
 [...]
-\\xa2539fb2b22358903ebe61138e60844461b396a3716609da9bb0e1e6e034f2469a70c53480769ed38e70f6b2f47525f5a7315e881883308264b5783bbc3da4d9
    4       
\\x1148ec703f3836d250f2a8f30d20d3fc3cada4cd62dc95ad4d51500f4173c7ed0ac60d2fcabceeaf61ca5dabe94e3aecb4f769676c102d2f3fe20ec2172a780e
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x0ee06d4694680c476c6e10f89e8a736d74e3013726ab729aee56881c8c438ef2bdb429a87c81f9ac6f84e6d8c53
 [...]
-\\xa2539fb2b22358903ebe61138e60844461b396a3716609da9bb0e1e6e034f2469a70c53480769ed38e70f6b2f47525f5a7315e881883308264b5783bbc3da4d9
    5       
\\x5d0f0b223586c45ba70b8ffe37220e26b10253ce8b46fa0c3de51a15bb475fcabc29230f626dfdc06d81b62b1ac492a9ab40f411587a4a47600f3c3f098dd102
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x2a102c4fde797a6d31e30a8053cde824c71d7cf000e0cba76403098e7f7278b90df4435ac0b44c6549d16d9bfc4
 [...]
-\\xa2539fb2b22358903ebe61138e60844461b396a3716609da9bb0e1e6e034f2469a70c53480769ed38e70f6b2f47525f5a7315e881883308264b5783bbc3da4d9
    6       
\\x377e84c3960755fa37310a10545b32c6c7d14b7d321c36b269e45d3785bd3b153af776b034283ef87d522d3c2c79b49c6d46a1411a268f85c942fff9e0af9f0b
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x6c8f89a681a8e4e50d7db49c715837dc65d3405cf15d45e06043ab5376302a1f2bcf31f27ecc574c84ff1bd48d3
 [...]
-\\xa2539fb2b22358903ebe61138e60844461b396a3716609da9bb0e1e6e034f2469a70c53480769ed38e70f6b2f47525f5a7315e881883308264b5783bbc3da4d9
    7       
\\xd3db6a16e4c76989683799a647e8ef5f9ef5636ff0d368dc9c0a002cec75d56b804f1ca0ae62cee558c588a99a81cca36d67247cb37cd299d30974f569465804
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x5c20d8aa919a3c79bfc6b1fc79898670ddad6e7dd6e1952ba3c15c45709764824b74b32b50ce3b52e1db8cd7c0f
 [...]
-\\xa2539fb2b22358903ebe61138e60844461b396a3716609da9bb0e1e6e034f2469a70c53480769ed38e70f6b2f47525f5a7315e881883308264b5783bbc3da4d9
    8       
\\xc4a911677931b7be2587ce7253a2c3a87c7478a01714ef62f4e5977f84d5d676a0680d3eb7ca36cf3c34882108e9d553e9cdddfa37e08c1b6fde1ae8d150a70c
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x74a0ffe9db28559cc9a971e507221b13caa7e99f9ee7a0d935c27a4db017995a92f9a10fdc6eb84fb9d1dc80c24
 [...]
-\\xa2539fb2b22358903ebe61138e60844461b396a3716609da9bb0e1e6e034f2469a70c53480769ed38e70f6b2f47525f5a7315e881883308264b5783bbc3da4d9
    9       
\\x9fe022928413f617bdb339824f2d7163b18c783d2e6aab345419c62bc0971ea590945493743cd191fd6f5f8319971ecc09c753233fa9c9be340a1365312f0509
     
\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
     
\\x56cae8204b13e2976d516b82a3d79099c4be2441bf4a6be89262c2db2dfbddd0f1d519c5a29495dbf822833e094
 [...]
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    0       
\\x8fa015f01274a235d1ae6cd2730aeb05af565c05b44516832868f09acb5c8f96e4cd8c75f16c616a9b0b94f3a440f5ef95e70ab23a423d21a149f2e64a0b9909
     
\\x597a8051c87010b154a8dfa6643279b0c166b51539c69b9cb19af986ab521ed59877b3868c0e56aac00ebbd6f1f3036a6b667403fc032e32b5589ddb9c257b8d
     
\\x3c513ec4c410ddc6ff8b8de06e8ce94349416c4f274049bf6ca233acf24e4a7806bab05842c7f8937be0c6404a4
 [...]
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    1       
\\xe78b1b4c9ebbb700f6b93b07aa5a1113e9ac6c47d91155592a4349de03d5fb5c2f1bee591d7d57f9791795376d5dee6b4d1532fdbe41995a0e5c137108e4fd08
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x5e2d10765c803b815492fcbe61ce4c4f99a2cd3fb8b9eb669a0bf460897fab5eebdfb80b315a1e6ce87e3ce37dc
 [...]
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    2       
\\x22d56c30bfb8a46e93b88ed3e619d8a9cefb25e81fc904350215bf12ed9e472e64278a9c081542f221b8d7b943d4ba701efcb1b28f5bf8e1344d9d94f8cf8e08
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x87e08b409c650f96fc5f44b709f89d495a114b2dfaef2cc080f80daffd31b10492d730c1ac53f4fcf0c6e38eb85
 [...]
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    3       
\\x6eeb50565e1868f5f45eedc4e7c5c374dfdb0825a05a4107f3465aa04aea4f998685cf83c251040404cf119e0546f514253d633a7d412dc7814e93ff889cd606
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x5da5e4b8d3dbf9a0e213d9f0eba615b775163def1dd2c2ed86183bf2c680ea0445200bc1d5476dd15f94a281b3d
 [...]
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    4       
\\xe5cf825054ada349d92b314f08b9a30a1cb11946656ba9908ff384caab4832e8933e4e62431e49fc294a32df3eb8b41c5a18ad17ae12a67f0443f3b04b6bfd02
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\xbaa409153fca06a9ef78260005e4f0c3da914d3a2428ba497a63df4873036c9e939e70cef5b5c934e28680a9f6b
 [...]
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    5       
\\xb5dba95165bc6fe856a37e9dfffae9812aa24eb8980e1ab2303ae801f385a8246da19abf3cb36a355965a6dbd14b3c6daaa2dec660477b42af9aaeeb5cdb190f
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x8f7755289e434a002683adc94e685c1eec5c86f5b4e362861ce9ae3b584d866d512bd6172f66f0f40b16ca66c54
 [...]
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    6       
\\xfa28b91161591dd94f3391f3e60e2703028183cd45466e8443e5bbeb906ad1b1da778b9db001073f6fe143fe953693b6e2c293727019c90629dfa5028f321d05
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x97b90952c9f6fdf1f2e510fce2275f50f9050050f1fbfc6abd19ef429b447cdc010618793c8ca869e7b5efc6214
 [...]
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    7       
\\x40f3c6bc97286e741ea369872937aecae9c8517f4f18d4527fded7c0eb271b8a28c3d08e3d1ab662c4c9bb55160053698e5b2af1ac5149762835dd7921fa960b
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x1c7da343e189ed46a2a02b89e8e7eff4825e9cf17ff4c824cd6100752c01fd1330b90002e521aed4dc6d290b733
 [...]
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    8       
\\x4134b5fcc2deb08c0f5778192d47dc68d9375453f4cb86cb3c439a8fd921a5611b9af1d4d3b9738cc4e22258bfbbedcbce4035b58bfdae72040b4c7033993104
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x93628a46344628353fbab35846bf6dc8cc7b4cb9ecee206050b94172d310146fc3a33634853e164d901f85065bb
 [...]
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    9       
\\x96dcdc4c56449144f1540bc5785649a736ee6fa1f8a77faf55e2ddacc99710921e959dca1910893f20157327fd7acadce2ac4795a58a744cea7303fc47a52608
     
\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
     
\\x7631553a86c25f673faa46ba1a43567031115b9ef718f80776f7addc330e257879f88fb2bacbb6f6589e70f5870
 [...]
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    10      
\\x0321a8bef7f6aaf41a94b11eecf9fdbbdbb3984172c299e8a4fa3dcc097e6fcffdc0977d514b79d240e3a3248815270227393990a48f3d38a529501b40a14c0b
     
\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
     
\\x3ee67f5cc03aec02327e8cbbdc823160971156c76c49faa92d6f283b42e6f2845059e4913ffaac4736cfcbaab1
 [...]
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    11      
\\xfbf7b5b7a64fbe3d046d1fa1142dbb4b9f5a54c1bd3f7f6d84049db375ff57b7a949248fe236f20ad84727d8f41a9b19151e6ca64c59bcb145f9aa5a415c220e
     
\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
     
\\xc1e1703786ef733bd2e1a7d034f328a7652c3189bece90e09cef65fe4f6029ebeb42f10b89dfef2eb09ade2ba6
 [...]
-\.
-
-
---
--- Data for Name: refresh_transfer_keys; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.refresh_transfer_keys (rc, transfer_pub, transfer_privs) FROM 
stdin;
-\\x9549429543fc07348c349a52ff48729b79be84d2f0179b246badd57fe175ca0380623da9bc796586062a0d1a9e316db948b5229dde43fa382f1e485bebab9fa9
    \\x8ffae84ace74029e161b0564f6d1b6e2356669016cdf5699b2688ee402f2e104     
\\xaa122988f1a74af7bd81addbdc49d43cc0087da441f9deb5f98e4f2d77aaafd84d1b77a563f097800f2ee5a4389643ecbe49a79792905d007cddeaea35880d72
-\\xa2539fb2b22358903ebe61138e60844461b396a3716609da9bb0e1e6e034f2469a70c53480769ed38e70f6b2f47525f5a7315e881883308264b5783bbc3da4d9
    \\x2ce2660435ab4541ccbefc7be12c07bb4f029808d5730c0b18341dc61c326c28     
\\x61eab7022cf30cfd36cf91fc697651fe07907e67344cfe53c11d5d2516889e80bd1ffa2641bd388d9006756bb32ad40d7eab6561f6e18aeaa7dad342e3df0678
-\\x65488fb18fb61b07f9e57894cc6c25458f91fa6c94989273f5c0752d67982872110e2091c7e6275376878ed19c3eb18c4c2f95c1c0d714a42b410207be061313
    \\xc9e688e1ce02b452c395921c47dfa754a63565e5adde18d8587cbe009b3e5538     
\\xcfb6b57252f7c3a20eeb5bedcf36e6993d4bc70cac62c21552f648a61fe736d75eab6830314b1c01737c5e050751201c5d5f886f7eb36fed069c5cc23e674d8f
-\.
-
-
---
--- Data for Name: refunds; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.refunds (refund_serial_id, coin_pub, merchant_pub, merchant_sig, 
h_contract_terms, rtransaction_id, amount_with_fee_val, amount_with_fee_frac) 
FROM stdin;
-1      \\x9c73b669f228b004180fdcf3a9f33afdd000fddbaf12688eed6e3f4c57cef523     
\\x4fda09cefc0512ad67c429bae8cf38caeccab4f7efe696a2a1394429f9ed8b1d     
\\xd3d48cd8b734e55aa411c2f7e941b82ffa5758f0ee9fb41419e1548607cc64a30fd9c77e0e21067d9adaf4d8ddca8e377d374d719a8528f876a8f5ae60016703
     
\\x06c4c1f2ee5260b7fb8bb1542fd840107b046cfe46b05923d205a5c03f03a3d19c367ff4c642be00989a36d3dd48abb6b444a7566897902b5d62e6cb01e10edd
     1       6       0
-\.
-
-
---
--- Data for Name: reserves; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.reserves (reserve_pub, account_details, current_balance_val, 
current_balance_frac, expiration_date, gc_date) FROM stdin;
-\\x8c06a696766b847c2cea178bcfcd333435d4a513017df3308d73058c60321db4    
payto://x-taler-bank/localhost/testuser-LX9PpmbM        0       1000000 
1586543741000000        1804876542000000
-\\xc689e130dc274f9e83e031358b9222ffe21834ae3f39f8d2574f28579670e5c8    
payto://x-taler-bank/localhost/testuser-GlcUdYmc        0       1000000 
1586543743000000        1804876544000000
-\.
-
-
---
--- Data for Name: reserves_close; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.reserves_close (close_uuid, reserve_pub, execution_date, wtid, 
receiver_account, amount_val, amount_frac, closing_fee_val, closing_fee_frac) 
FROM stdin;
-\.
-
-
---
--- Data for Name: reserves_in; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.reserves_in (reserve_in_serial_id, reserve_pub, wire_reference, 
credit_val, credit_frac, sender_account_details, exchange_account_section, 
execution_date) FROM stdin;
-1      \\x8c06a696766b847c2cea178bcfcd333435d4a513017df3308d73058c60321db4     
2       10      0       payto://x-taler-bank/localhost/testuser-LX9PpmbM        
exchange-account-1      1584124541000000
-2      \\xc689e130dc274f9e83e031358b9222ffe21834ae3f39f8d2574f28579670e5c8     
4       18      0       payto://x-taler-bank/localhost/testuser-GlcUdYmc        
exchange-account-1      1584124543000000
-\.
-
-
---
--- Data for Name: reserves_out; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.reserves_out (reserve_out_serial_id, h_blind_ev, denom_pub_hash, 
denom_sig, reserve_pub, reserve_sig, execution_date, amount_with_fee_val, 
amount_with_fee_frac) FROM stdin;
-1      
\\xfa1b86c56993a05a45f37483320bae8b4b2348ffa0be05f91eabf4c5931f4bfb251c3a76d0edc013d9eafe465e0e5e37a9972afbd990f3c7d072b77e9e94ac00
     
\\xe2557e383c1c3c019681c2521d415a758f1becb629a3a75fd9dc212f0f2e802aee81e71db725f0f9913bea0f913978bd7d238558712aa957d80c4e1673292b13
     
\\x2f5305e1e1440e301c58ea6f8987e0969851c758340411ca003579edfacb49f6ff8b695b49809c5c9d974a42bc5613656feb0ad6fe7cac42eb40bd41cf95cd0238018de9c871d9708e18f5db0867cd787cfa7274c83dee612008e3300b960973c7aa50be873e543928ba70d33ea48d9
 [...]
-2      
\\x1aa1a7cad3f2595aa0251458f6a0009a8ee37af3caa54f939bee61fce69c8d469c467b24e2c2141bcf08a4f7b9d0d91ea36b57315e8943db1422a822d0cf0440
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\xb166db2b2202d49345c7f7dae302e2c6668ecc578505ad53c7ddc27a9e3382c33dd7c02fdff0df4e8597b28039c58f7b7c66a76dfe0733d16974055284d66244bc35dbd6ff7e0e218fc8239686ef9be85711f5257b38eb6ed3e416870784cfcc9a455a797a2158f9c4653aa5e45745d
 [...]
-3      
\\xf8be32fcfa942f145d0550ecc999217eafef010d95b594951fe030210252199c3853747eecd60c3d19b7a51d3657c1018a752dc0a4667c17284dcbf3428d2e6d
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x479f052c5389067a5319e8756bfb8e3ae79b2f0dfb3af72bceafe3ef9ecf87a77c6e68214dbf740bfa570a092e332492d422f953cb5af7f9c503faa77106e167220714a4e920aa04cc4cdc8fe91c76022c63ae596b484a1c8d62d9c9d08005fbc1468526cc027ea1f5ebc3d55b8579d
 [...]
-4      
\\x823d560ca5ae4a90a9a69e7bf60522ab787a264cbcadc5a82da9d4536f9cbf54e93fe9b612e2dd6b8e7ae8308807aa4946a77615f0ac08730c3d48766f7d8150
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\xa15ce91a4145dd0f32433bfd540bab400a9e65578d52e3ca0597b3217db130274c9826341df00a93cdc8aaafc66967ec35dddc7eba93e733824d0b62b0e8194cf19a45ef57751d92c9b9748c1e79751d7f774210be72ca80159b8e39616ee81e3f2ddaef2692721532b9c1c62784b81
 [...]
-5      
\\xe3fdf5a6f1f973472c480241883541599c62872663e01943883c1fd52f55e763664be60574589435d7cf7e40262701cbcb5aa38d7d1a2df8b63d4d007d071ec9
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x0505ee5f1acc559b0bb41e551d1aefc894c97d200edd46ba92a7cc44af5374f2d7aadebf543dd3675eceb38d728c9b134e9e91302800a0af2b66c764002f420e9296da60fb7fe4d21b4b5c6aa27de90f4dfc101062c33c5109e4e3b7ddf0c6ba87e5fe89957deb96752320e9fdee1d7
 [...]
-6      
\\xc9b289aeb3eda68342b90b684c7b9e533d1639cb8bbf2535dc1ae62da20778ca72d13de51eca2c5235469d4d9c3a914626fd15befb75caf0598a165c1c68b953
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x5c9945994705719a944ef7113cea1ff498ff8b30345fa31016c744910b9ad624005691ed3357a5fd77503fcf3b352f6e8f82cedae1c08faab1d023b1bafe48ba193b84648daa31767321dad9ee9d66d7078c51317100827d8a54849e34fd6421939908b4c24507fde5917a9e693239d
 [...]
-7      
\\xf14c1a7a3d4f707722fc36053d5151b61ae3909fd0f663d503f526a866fc6a9b94a2bc08415426ed81e1a485e5e8388c736b06d9624b9332ad76b87a0e1d2712
     
\\xdaca7cdc05a7e781c04ab1e233ca2664bac59caed67e4d00fef43e31f191487a7cb91d8b862d6f9329da670ba79e6aa599de8896a6032249796f50870eae3933
     
\\x57120d516229df94203ac957bd8a8c07b3a38d7d315d11fc138c3ba617826ff4d35ae37fc292b52a2a02083e843e9d81a5f8840f6f11e756ffafb3d7dd3ab488ba333988d2fb2d3d0b4d4b02c017c31890b022cd18fb37d72e1e23e5cc9b9833006af9c7343ecf7c6e9a8dcf6b0e888
 [...]
-8      
\\x350520ffbb831ff91710b66618669bff74c545bd9d53d917b7e0d8c226ac59d5f1543e2dcf985fd172be823956af675c46f1e5e01ea2e5c5bf5f42468f64bbfa
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x76b26ba25d3c1e7f33322144fbb4ee5694c5f11a4e7f6f0ed0d243571efc78032f8ad021d81c9844496a831ec757b3fc38a0c793af54972bb1d38a01d5f07b006d6c7ac45416b884cc76c59ecfed5ff1d3f9322ba490c979cb99e1e6be32040479e4e4965c2c1eed54fae00eda0e918
 [...]
-9      
\\xceb2492209454f94008bee1b0f4d809e5f836396f79a50b26ceaf3212d0c43c063e8b83c4ff665594eb185552f037f5aac411a25ee7c0a4361dfcf82e90e51c5
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x539c1cc9e91372e8d373f6939178e2566f3970944259ebfc2ede1cb352ce468612cde7a4b99f1fb0286582e66b03a22d89f61c0170f7c00598437982a88b55f8997d4993501bc96b88decc787f9f0dc7238b2199f1df34b3be1a6e567bfacecd7a293fcaeab57c267d4182d494df3fd
 [...]
-10     
\\x8351a4ef65bfe266ff642393c10a4cffb6748528cdc2fe607e160314665d6efd91089255ecc0867405aef3f7d97f6d864b22438124ba79d29494f2439df5aaaa
     
\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
     
\\x733acc58f69234a58cc571a15430c447d39f6b1e9c6b2699cdf87caf8226f16d2800be3c9ed11ca8b9b9410227ff9730d3916381959e6b2c60ff425d4966cb52591f721f6c01c53084db6d57a67d0136ddd12bf010fb97062370061511b6f0a8fd16373b2473a61bff4f5f9c6d0fef
 [...]
-11     
\\x632929a099c72fde8b3f8f86682ae2d5cdf8fd645068342b491d1aa521ee3bf35337225c6c61ff4312c4eab983507d74482415d66cee4c065d50d977b98676a1
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x685d1aebd2cab0af54a5da8a679c208f6d37d4126f9e1b9cc0581926887f5b8c5ccb844603495c8b5fecf7f5e30d8b9d3ad67fcf116d8b1d1cf593c892c737a51e29045e77db3a00fdaf2120259ef519b72b3c5861f3ff806c0ffea52f141b51edd762293a3f2abfb356161dce663f
 [...]
-12     
\\xd992aa3ec6bd29c170d3fcc91e91d82577c7fe65fda3162558b1c10736683ea1c2f55efc8e79c9e684f5f3eb2550a4c141b472a5a0f41c6cb4db4a66bd6c88c5
     
\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
     
\\xc085f590f5c325652872f55c8e4653aa7c245d0ea4f3ab9cb8563fa86b0c3227b2fe22874dc0ce0f051d458b8fbe1661e3bea78f3a35ba22ff5e61b14781b66f007466de7f488e39c5f58176c387db320959274005b6127e963e677951a14e8462872a1d5775cbe34512434f9a360a
 [...]
-13     
\\xecacdf2e69a8ee2e19c7a29bc943c8d011268a0a24ca9f3e21753c01bfd47fe7ee2b9fb4581d4c30e285aa0e7cfe12115b428281b53d912a068f65068130c567
     
\\xa96d1614b62d8a838b7ebee977db7f3d3b7c3630c8d6aee9c96e848c5b4f72200672fb3ffe229bb3c0ca63fda38757550f42170cf04fa8c647342d4d82abee67
     
\\x18066d277056e3dbb475c587cf35c39d54739b07c989a7d3cbe3b25f57b8e14999dca51493b19376670e7f7aa2a0afc76d7740eee7cb446793cbabbbf7d58da47ac85378d25ff2d8e5f0db025bc159c206dd334c8d2cb6b19e1712a4d090079f24777ea51a5a3f2cdabb722821aa7a
 [...]
-14     
\\xde074157cd9d02c4cc4e11754ff867f96456ed0af5245db58f4bb16e9aa9686c0ad7ad484f051488a2fe6e0d069df8ca2e802d1328143e4d73de9aa93ffe9e47
     
\\x1e5e384e59ac0bdd77b086344af2985d8a5b1d4e58804ec47824d3d37a5927e0cedf43c55ce4051192f089480a1c61e31393185862e4781e563659684ca9d61e
     
\\x1a50336560bbc7ba5b61e0243ea6ee42745bfa5bf7cda1fc82c2570cd0d4abd5a29f002476e9e89f4be3a83a79a02a68d11a8403fc0b1a81536fe1bb2c59d2ae29a00726ea7c586dd437874b2a2b5478af4bbefdea43e9a24accf2666ebfbda795d34589223944ca7d76fd2aa0bbdf
 [...]
-15     
\\xea3efab045c5e9828d08dee7d4a0a871642fee94bb298af1748f1c529227f0655800f8d28055a0207c32172a58e28269b488d5333e2ee72c7cd53934be02b4d9
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x5afeaa9d75790cd0d9169a07b46011993687357ac9d09aa73c981cc1ad81b00f151250bf7e7dce712a6100968e5acbef806de583a7eb3a29560caa8a490639d32cef0ff965282a942c77c70f4c1445f45685042f691863ff2ec5f4a86adf8c1da78ed0e9ae7cddfd99187a92fa904c
 [...]
-16     
\\xbf03d2169dd458c679e4d7f0d81de5caebbac9c8427c187c1fe9da48377581159cf221d79d7dd67c21156276a2773e0016a7311cb65be73b9dfdd80e140f4adb
     
\\xa6576c13e5143d56edc29a8c4917121a1c3917f3436c26f3349de6c226bb96bce029469a4b627b504a3f17d70c4ad7e6c015b4873e98c87238c9b824018f461b
     
\\x5cb4339ecfaf2d660d56f80a0765efa2bbcf63430b2afbc95eb7ef42a0f566975f27241c6efa36e5910b83244ef82cad2b5e3ff4a8d338a5be505cc00ec2355197f81cac375f37ca1bc7afe0cb546b461d1fc1f8b339d5c641c6799ebd867c7edc7002fa4afbedb7f095d858ab7469
 [...]
-17     
\\x94529840e7ce591646521cf00e0d709bf4542318307492afc8935d6991638ff0d1f145724ad1d4d1b83083314bc7e2fd25b6cad123efc85bc7c8f55cde62b94f
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x09a36c9277ec01a29ef40ea76bb60d0563131b7dd7237bf7b480d9d2acac7f89bca077ac0bce392a62283b6588227f472e27279971e98fe31d205831bfc3c31a43e370becde748d0f3117040ee490fd97bcc9400f6e5e849d0d4a36593ad292a8e65c2e69d7ab9ead7343d48c065d0
 [...]
-18     
\\xc655a88e8f2cadf3cc7ec42fee373206bff0fbef40b293eda1ab509ffb67355b9ff38bfad9aab124c11f90b7d2b40ff1457bf58dd71c19ad9118883cbe39aaa8
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x01035ae702e16e9c836378a0555c1714fc13526d43c081389c7bc7f08b83018d4554159d4e1dfd99c73f66f2adc219de3e4cccba16b35665bc59c794b6c01616c78f2ecafb4d95a282c6328212e6433fe79188cab57056a9c13d47107d31eb5625339924f490e01282b91e28934c05
 [...]
-19     
\\xf17cb2a463cc112c56312b250c44a786b8f34d9804368e159abfc6d5dcf6c6facb5da20a029c923a392f74021aaec291e0e6414156a01cbb3fc1fdb074396898
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x19553d53c7dfeafa86e23eacd87e8ede57d7750fca5307dcc83b1aee49fc9dcba27a70a294c4e75d4ede7775f1e352d16fe0673f1eeecf3d652d045415a06fa58b20d5c3f4e3cc444aae3d27a21018ba45cb5b912297b3370e5c563e0ecc540d67885062e7ca3ae3fc78a652a47ad6
 [...]
-20     
\\xd2b69f953def6efc355fc9c90354cd01cd1e72afe7c358947d701157e2b8458fd414754a1fa67c08ab0f42a6cb87c45e4a8f0fa93afb5d8ed10428f7791690e2
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x8002dd9304a443b1eb33d11c7a63dae67949087a8bbbb0e381ba23c4985ff498cd3b6d53342589d7e7518422d92959316a93c13847b626ba9d3f85566838f53d0768865744db40c8bfd53260c765b54c80686374f43a5c661e837fc6a0e3b1477b69a143f67afafcede90a8b36a94c
 [...]
-21     
\\x19ea00eac23aa835f64fae13c3e837572eeeea7b7a7b316b390451711eb947c312a75707853ad435e932325eb204f49ba3922a5ff776b81b8ea65df8b9ef7c40
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x5840096bf1ddb120f2b9797ca33d89dc430409d806c8eb44648dd61766789684fce09254aad26f64747ea6f071bd3ba1101f338036165e571a06d5b02d7e753d489094aa373d69e7d2bd2a25f279de94b58238e0b3eb968e6584f6fe6aea36517883933b41456241ca9a5909ebc187
 [...]
-22     
\\x921ec4037d54de78d334d451d68d6c09bcf518ec8cd2bb93294df08a38962ad1990955b3775f4a8a85582334e3553ec3eadcfe0fa22c7e583f5156fd5ff730c9
     
\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
     
\\x39a60102e685b6a6633b04d5cacab13a76131d3268ca9362bc996e71e6120b3d6f72a012af9a4c4f1cf6b66a7481aa0a7338117ca1b2b4593621ea2652c593e13ec8b68aeeacd00f13609a13a074e925e3445e30b886c2bfcf13f0dd52989bcac8736fb45849e0c481dd05cc80e330
 [...]
-23     
\\x1efcee558d5bb3aba55d6b5cb7e62638aa0c17bbddeb99b3eb9c9997c976362fda0b0f00f5dca05473e6bfdc763b7348655931138386d45b4f9002a798176d16
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x31c964f058e9a7986cfeb513ddda0a5058eedbc4de2eebca4be32c2e1080f2323ebc3f7619fcd80f369ee3fb88460872599d4d6c3ee03af0dba777b657ef124f166dcb19146ad74f07804845097bc1447d4b0f9074ba9f7a16fa9a2345f53820c01fe6c7dbdc632243f6b9b380cbbd
 [...]
-24     
\\xcaa70a990eeba71f90a86379a11b4786176402f80422213a3f1110eafd112262b82e9a7953e4834f58b081783ba4a806b2886a7ce7131359018be96654c433d7
     
\\x47e5c7c13b7b267f28df1d734a99e45e139c5c22d4abe4219be0d1918eeace6c933a6720f678008c9877548c4aaa3029aff0bd82d7085fac0046405e6202cc62
     
\\x2d2f7243d46aae23ac5966f69c8c1bf0eb947ff418b4ad53b7f5e852d938f8fc80de8c2cd452cae4a890e4ca47fed4801a7aaf7143f4de5af748e1e4d8eaf3132d4e03e7cf51ae8f40267753b7279802a8503bae5809db5bcd02a701486f61351a9087d87840fd0f1ab2cf17e5cd32
 [...]
-25     
\\x60407d1b14561de74f9060b2704af8b44d722a300c19131445c4d8e41fca020392f555b071cf889c1ee61c1cfc4590c1925c7d0c55a12185d22610edbd7ae8a1
     
\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
     
\\x117d07b85f8e96a14a154c094d12c9eaa96fd00f542d1f6db611b339a65bc1ddf1e2b924d171190bb8424087cda7fd28aa09f932764d22b20f5d50a4111f5eb0b74ae511f5207c3c653170608add58c43685f0f50f397dbd66ec97d444935aced35d0a9be39080b89ea4d98470f9a0
 [...]
-26     
\\xa7fead0b1f217abcdd865867ad345bc0842012b37a09bc878639bcb013d6fbd55707775221144a137929b7de252e10e4b58129f5e1c3395b926e9ad13fb57cdd
     
\\x7668572c927d369ce701c10f7cf48ca67148183b126bc793ff741c54ce60c366e53f166c57a8c2039c894b521ef69e967c724e6a9261e2a424d0c8fbae3736c3
     
\\x552b17682757c46977ca00b8a1d87d618bcd543f741074f2b1caca3f3e2c7f387bc87d67e51ff2c5eed7b8668d706b606b85f3e16792b2ffdc28153564e52b52978f0525884948ff694171398a92e1c788f24a63e1bb1c2e64e728ac6e4950c150b97db2094f77d3371550ad6f1d30
 [...]
-\.
-
-
---
--- Data for Name: wire_auditor_account_progress; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.wire_auditor_account_progress (master_pub, account_name, 
last_wire_reserve_in_serial_id, last_wire_wire_out_serial_id, wire_in_off, 
wire_out_off) FROM stdin;
-\.
-
-
---
--- Data for Name: wire_auditor_progress; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.wire_auditor_progress (master_pub, last_timestamp, 
last_reserve_close_uuid) FROM stdin;
-\.
-
-
---
--- Data for Name: wire_fee; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.wire_fee (wire_method, start_date, end_date, wire_fee_val, 
wire_fee_frac, closing_fee_val, closing_fee_frac, master_sig) FROM stdin;
-\.
-
-
---
--- Data for Name: wire_out; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.wire_out (wireout_uuid, execution_date, wtid_raw, wire_target, 
exchange_account_section, amount_val, amount_frac) FROM stdin;
-\.
-
-
---
--- Name: aggregation_tracking_aggregation_serial_id_seq; Type: SEQUENCE SET; 
Schema: public; Owner: -
---
-
-SELECT 
pg_catalog.setval('public.aggregation_tracking_aggregation_serial_id_seq', 1, 
false);
-
-
---
--- Name: app_bankaccount_account_no_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.app_bankaccount_account_no_seq', 12, true);
-
-
---
--- Name: app_banktransaction_id_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.app_banktransaction_id_seq', 4, true);
-
-
---
--- Name: auditor_reserves_auditor_reserves_rowid_seq; Type: SEQUENCE SET; 
Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.auditor_reserves_auditor_reserves_rowid_seq', 
1, false);
-
-
---
--- Name: auth_group_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.auth_group_id_seq', 1, false);
-
-
---
--- Name: auth_group_permissions_id_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.auth_group_permissions_id_seq', 1, false);
-
-
---
--- Name: auth_permission_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.auth_permission_id_seq', 32, true);
-
-
---
--- Name: auth_user_groups_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.auth_user_groups_id_seq', 1, false);
-
-
---
--- Name: auth_user_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.auth_user_id_seq', 12, true);
-
-
---
--- Name: auth_user_user_permissions_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.auth_user_user_permissions_id_seq', 1, false);
-
-
---
--- Name: denomination_revocations_denom_revocations_serial_id_seq; Type: 
SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT 
pg_catalog.setval('public.denomination_revocations_denom_revocations_serial_id_seq',
 1, false);
-
-
---
--- Name: deposit_confirmations_serial_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.deposit_confirmations_serial_id_seq', 1, 
false);
-
-
---
--- Name: deposits_deposit_serial_id_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.deposits_deposit_serial_id_seq', 3, true);
-
-
---
--- Name: django_content_type_id_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.django_content_type_id_seq', 8, true);
-
-
---
--- Name: django_migrations_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.django_migrations_id_seq', 15, true);
-
-
---
--- Name: merchant_contract_terms_row_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.merchant_contract_terms_row_id_seq', 3, true);
-
-
---
--- Name: merchant_refunds_rtransaction_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.merchant_refunds_rtransaction_id_seq', 1, 
true);
-
-
---
--- Name: prewire_prewire_uuid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.prewire_prewire_uuid_seq', 1, false);
-
-
---
--- Name: recoup_recoup_uuid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.recoup_recoup_uuid_seq', 1, false);
-
-
---
--- Name: recoup_refresh_recoup_refresh_uuid_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.recoup_refresh_recoup_refresh_uuid_seq', 1, 
false);
-
-
---
--- Name: refresh_commitments_melt_serial_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.refresh_commitments_melt_serial_id_seq', 3, 
true);
-
-
---
--- Name: refunds_refund_serial_id_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.refunds_refund_serial_id_seq', 1, true);
-
-
---
--- Name: reserves_close_close_uuid_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.reserves_close_close_uuid_seq', 1, false);
-
-
---
--- Name: reserves_in_reserve_in_serial_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.reserves_in_reserve_in_serial_id_seq', 2, 
true);
-
-
---
--- Name: reserves_out_reserve_out_serial_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.reserves_out_reserve_out_serial_id_seq', 26, 
true);
-
-
---
--- Name: wire_out_wireout_uuid_seq; Type: SEQUENCE SET; Schema: public; Owner: 
-
---
-
-SELECT pg_catalog.setval('public.wire_out_wireout_uuid_seq', 1, false);
-
-
---
--- Name: patches patches_pkey; Type: CONSTRAINT; Schema: _v; Owner: -
---
-
-ALTER TABLE ONLY _v.patches
-    ADD CONSTRAINT patches_pkey PRIMARY KEY (patch_name);
-
-
---
--- Name: aggregation_tracking aggregation_tracking_aggregation_serial_id_key; 
Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.aggregation_tracking
-    ADD CONSTRAINT aggregation_tracking_aggregation_serial_id_key UNIQUE 
(aggregation_serial_id);
-
-
---
--- Name: aggregation_tracking aggregation_tracking_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.aggregation_tracking
-    ADD CONSTRAINT aggregation_tracking_pkey PRIMARY KEY (deposit_serial_id);
-
-
---
--- Name: app_bankaccount app_bankaccount_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.app_bankaccount
-    ADD CONSTRAINT app_bankaccount_pkey PRIMARY KEY (account_no);
-
-
---
--- Name: app_bankaccount app_bankaccount_user_id_key; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_bankaccount
-    ADD CONSTRAINT app_bankaccount_user_id_key UNIQUE (user_id);
-
-
---
--- Name: app_banktransaction app_banktransaction_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_banktransaction
-    ADD CONSTRAINT app_banktransaction_pkey PRIMARY KEY (id);
-
-
---
--- Name: app_banktransaction app_banktransaction_request_uid_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_banktransaction
-    ADD CONSTRAINT app_banktransaction_request_uid_key UNIQUE (request_uid);
-
-
---
--- Name: app_talerwithdrawoperation app_talerwithdrawoperation_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_talerwithdrawoperation
-    ADD CONSTRAINT app_talerwithdrawoperation_pkey PRIMARY KEY (withdraw_id);
-
-
---
--- Name: auditor_denomination_pending auditor_denomination_pending_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_denomination_pending
-    ADD CONSTRAINT auditor_denomination_pending_pkey PRIMARY KEY 
(denom_pub_hash);
-
-
---
--- Name: auditor_denominations auditor_denominations_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_denominations
-    ADD CONSTRAINT auditor_denominations_pkey PRIMARY KEY (denom_pub_hash);
-
-
---
--- Name: auditor_exchanges auditor_exchanges_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_exchanges
-    ADD CONSTRAINT auditor_exchanges_pkey PRIMARY KEY (master_pub);
-
-
---
--- Name: auditor_historic_denomination_revenue 
auditor_historic_denomination_revenue_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.auditor_historic_denomination_revenue
-    ADD CONSTRAINT auditor_historic_denomination_revenue_pkey PRIMARY KEY 
(denom_pub_hash);
-
-
---
--- Name: auditor_progress_aggregation auditor_progress_aggregation_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_aggregation
-    ADD CONSTRAINT auditor_progress_aggregation_pkey PRIMARY KEY (master_pub);
-
-
---
--- Name: auditor_progress_coin auditor_progress_coin_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_coin
-    ADD CONSTRAINT auditor_progress_coin_pkey PRIMARY KEY (master_pub);
-
-
---
--- Name: auditor_progress_deposit_confirmation 
auditor_progress_deposit_confirmation_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_deposit_confirmation
-    ADD CONSTRAINT auditor_progress_deposit_confirmation_pkey PRIMARY KEY 
(master_pub);
-
-
---
--- Name: auditor_progress_reserve auditor_progress_reserve_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_reserve
-    ADD CONSTRAINT auditor_progress_reserve_pkey PRIMARY KEY (master_pub);
-
-
---
--- Name: auditor_reserves auditor_reserves_auditor_reserves_rowid_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_reserves
-    ADD CONSTRAINT auditor_reserves_auditor_reserves_rowid_key UNIQUE 
(auditor_reserves_rowid);
-
-
---
--- Name: auth_group auth_group_name_key; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.auth_group
-    ADD CONSTRAINT auth_group_name_key UNIQUE (name);
-
-
---
--- Name: auth_group_permissions 
auth_group_permissions_group_id_permission_id_0cd325b0_uniq; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group_permissions
-    ADD CONSTRAINT auth_group_permissions_group_id_permission_id_0cd325b0_uniq 
UNIQUE (group_id, permission_id);
-
-
---
--- Name: auth_group_permissions auth_group_permissions_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group_permissions
-    ADD CONSTRAINT auth_group_permissions_pkey PRIMARY KEY (id);
-
-
---
--- Name: auth_group auth_group_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group
-    ADD CONSTRAINT auth_group_pkey PRIMARY KEY (id);
-
-
---
--- Name: auth_permission 
auth_permission_content_type_id_codename_01ab375a_uniq; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_permission
-    ADD CONSTRAINT auth_permission_content_type_id_codename_01ab375a_uniq 
UNIQUE (content_type_id, codename);
-
-
---
--- Name: auth_permission auth_permission_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_permission
-    ADD CONSTRAINT auth_permission_pkey PRIMARY KEY (id);
-
-
---
--- Name: auth_user_groups auth_user_groups_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_groups
-    ADD CONSTRAINT auth_user_groups_pkey PRIMARY KEY (id);
-
-
---
--- Name: auth_user_groups auth_user_groups_user_id_group_id_94350c0c_uniq; 
Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_groups
-    ADD CONSTRAINT auth_user_groups_user_id_group_id_94350c0c_uniq UNIQUE 
(user_id, group_id);
-
-
---
--- Name: auth_user auth_user_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user
-    ADD CONSTRAINT auth_user_pkey PRIMARY KEY (id);
-
-
---
--- Name: auth_user_user_permissions auth_user_user_permissions_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_user_permissions
-    ADD CONSTRAINT auth_user_user_permissions_pkey PRIMARY KEY (id);
-
-
---
--- Name: auth_user_user_permissions 
auth_user_user_permissions_user_id_permission_id_14a6b632_uniq; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_user_permissions
-    ADD CONSTRAINT 
auth_user_user_permissions_user_id_permission_id_14a6b632_uniq UNIQUE (user_id, 
permission_id);
-
-
---
--- Name: auth_user auth_user_username_key; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.auth_user
-    ADD CONSTRAINT auth_user_username_key UNIQUE (username);
-
-
---
--- Name: denomination_revocations 
denomination_revocations_denom_revocations_serial_id_key; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.denomination_revocations
-    ADD CONSTRAINT denomination_revocations_denom_revocations_serial_id_key 
UNIQUE (denom_revocations_serial_id);
-
-
---
--- Name: denomination_revocations denomination_revocations_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.denomination_revocations
-    ADD CONSTRAINT denomination_revocations_pkey PRIMARY KEY (denom_pub_hash);
-
-
---
--- Name: denominations denominations_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.denominations
-    ADD CONSTRAINT denominations_pkey PRIMARY KEY (denom_pub_hash);
-
-
---
--- Name: deposit_confirmations deposit_confirmations_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.deposit_confirmations
-    ADD CONSTRAINT deposit_confirmations_pkey PRIMARY KEY (h_contract_terms, 
h_wire, coin_pub, merchant_pub, exchange_sig, exchange_pub, master_sig);
-
-
---
--- Name: deposit_confirmations deposit_confirmations_serial_id_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.deposit_confirmations
-    ADD CONSTRAINT deposit_confirmations_serial_id_key UNIQUE (serial_id);
-
-
---
--- Name: deposits deposits_coin_pub_merchant_pub_h_contract_terms_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.deposits
-    ADD CONSTRAINT deposits_coin_pub_merchant_pub_h_contract_terms_key UNIQUE 
(coin_pub, merchant_pub, h_contract_terms);
-
-
---
--- Name: deposits deposits_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.deposits
-    ADD CONSTRAINT deposits_pkey PRIMARY KEY (deposit_serial_id);
-
-
---
--- Name: django_content_type 
django_content_type_app_label_model_76bd3d3b_uniq; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.django_content_type
-    ADD CONSTRAINT django_content_type_app_label_model_76bd3d3b_uniq UNIQUE 
(app_label, model);
-
-
---
--- Name: django_content_type django_content_type_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.django_content_type
-    ADD CONSTRAINT django_content_type_pkey PRIMARY KEY (id);
-
-
---
--- Name: django_migrations django_migrations_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.django_migrations
-    ADD CONSTRAINT django_migrations_pkey PRIMARY KEY (id);
-
-
---
--- Name: django_session django_session_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.django_session
-    ADD CONSTRAINT django_session_pkey PRIMARY KEY (session_key);
-
-
---
--- Name: exchange_wire_fees exchange_wire_fees_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.exchange_wire_fees
-    ADD CONSTRAINT exchange_wire_fees_pkey PRIMARY KEY (exchange_pub, 
h_wire_method, start_date, end_date);
-
-
---
--- Name: known_coins known_coins_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.known_coins
-    ADD CONSTRAINT known_coins_pkey PRIMARY KEY (coin_pub);
-
-
---
--- Name: merchant_contract_terms 
merchant_contract_terms_h_contract_terms_merchant_pub_key; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_contract_terms
-    ADD CONSTRAINT merchant_contract_terms_h_contract_terms_merchant_pub_key 
UNIQUE (h_contract_terms, merchant_pub);
-
-
---
--- Name: merchant_contract_terms merchant_contract_terms_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_contract_terms
-    ADD CONSTRAINT merchant_contract_terms_pkey PRIMARY KEY (order_id, 
merchant_pub);
-
-
---
--- Name: merchant_contract_terms merchant_contract_terms_row_id_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_contract_terms
-    ADD CONSTRAINT merchant_contract_terms_row_id_key UNIQUE (row_id);
-
-
---
--- Name: merchant_deposits merchant_deposits_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_deposits
-    ADD CONSTRAINT merchant_deposits_pkey PRIMARY KEY (h_contract_terms, 
coin_pub);
-
-
---
--- Name: merchant_orders merchant_orders_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_orders
-    ADD CONSTRAINT merchant_orders_pkey PRIMARY KEY (order_id, merchant_pub);
-
-
---
--- Name: merchant_proofs merchant_proofs_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_proofs
-    ADD CONSTRAINT merchant_proofs_pkey PRIMARY KEY (wtid, exchange_url);
-
-
---
--- Name: merchant_refunds merchant_refunds_rtransaction_id_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_refunds
-    ADD CONSTRAINT merchant_refunds_rtransaction_id_key UNIQUE 
(rtransaction_id);
-
-
---
--- Name: merchant_session_info merchant_session_info_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_session_info
-    ADD CONSTRAINT merchant_session_info_pkey PRIMARY KEY (session_id, 
fulfillment_url, merchant_pub);
-
-
---
--- Name: merchant_session_info 
merchant_session_info_session_id_fulfillment_url_order_id_m_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_session_info
-    ADD CONSTRAINT 
merchant_session_info_session_id_fulfillment_url_order_id_m_key UNIQUE 
(session_id, fulfillment_url, order_id, merchant_pub);
-
-
---
--- Name: merchant_tip_pickups merchant_tip_pickups_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_tip_pickups
-    ADD CONSTRAINT merchant_tip_pickups_pkey PRIMARY KEY (pickup_id);
-
-
---
--- Name: merchant_tip_reserve_credits merchant_tip_reserve_credits_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_tip_reserve_credits
-    ADD CONSTRAINT merchant_tip_reserve_credits_pkey PRIMARY KEY (credit_uuid);
-
-
---
--- Name: merchant_tip_reserves merchant_tip_reserves_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_tip_reserves
-    ADD CONSTRAINT merchant_tip_reserves_pkey PRIMARY KEY (reserve_priv);
-
-
---
--- Name: merchant_tips merchant_tips_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.merchant_tips
-    ADD CONSTRAINT merchant_tips_pkey PRIMARY KEY (tip_id);
-
-
---
--- Name: merchant_transfers merchant_transfers_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_transfers
-    ADD CONSTRAINT merchant_transfers_pkey PRIMARY KEY (h_contract_terms, 
coin_pub);
-
-
---
--- Name: prewire prewire_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.prewire
-    ADD CONSTRAINT prewire_pkey PRIMARY KEY (prewire_uuid);
-
-
---
--- Name: recoup recoup_recoup_uuid_key; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.recoup
-    ADD CONSTRAINT recoup_recoup_uuid_key UNIQUE (recoup_uuid);
-
-
---
--- Name: recoup_refresh recoup_refresh_recoup_refresh_uuid_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.recoup_refresh
-    ADD CONSTRAINT recoup_refresh_recoup_refresh_uuid_key UNIQUE 
(recoup_refresh_uuid);
-
-
---
--- Name: refresh_commitments refresh_commitments_melt_serial_id_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_commitments
-    ADD CONSTRAINT refresh_commitments_melt_serial_id_key UNIQUE 
(melt_serial_id);
-
-
---
--- Name: refresh_commitments refresh_commitments_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_commitments
-    ADD CONSTRAINT refresh_commitments_pkey PRIMARY KEY (rc);
-
-
---
--- Name: refresh_revealed_coins refresh_revealed_coins_coin_ev_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_revealed_coins
-    ADD CONSTRAINT refresh_revealed_coins_coin_ev_key UNIQUE (coin_ev);
-
-
---
--- Name: refresh_revealed_coins refresh_revealed_coins_h_coin_ev_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_revealed_coins
-    ADD CONSTRAINT refresh_revealed_coins_h_coin_ev_key UNIQUE (h_coin_ev);
-
-
---
--- Name: refresh_revealed_coins refresh_revealed_coins_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_revealed_coins
-    ADD CONSTRAINT refresh_revealed_coins_pkey PRIMARY KEY (rc, 
freshcoin_index);
-
-
---
--- Name: refresh_transfer_keys refresh_transfer_keys_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_transfer_keys
-    ADD CONSTRAINT refresh_transfer_keys_pkey PRIMARY KEY (rc);
-
-
---
--- Name: refunds refunds_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refunds
-    ADD CONSTRAINT refunds_pkey PRIMARY KEY (coin_pub, merchant_pub, 
h_contract_terms, rtransaction_id);
-
-
---
--- Name: refunds refunds_refund_serial_id_key; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.refunds
-    ADD CONSTRAINT refunds_refund_serial_id_key UNIQUE (refund_serial_id);
-
-
---
--- Name: reserves_close reserves_close_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.reserves_close
-    ADD CONSTRAINT reserves_close_pkey PRIMARY KEY (close_uuid);
-
-
---
--- Name: reserves_in reserves_in_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.reserves_in
-    ADD CONSTRAINT reserves_in_pkey PRIMARY KEY (reserve_pub, wire_reference);
-
-
---
--- Name: reserves_in reserves_in_reserve_in_serial_id_key; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_in
-    ADD CONSTRAINT reserves_in_reserve_in_serial_id_key UNIQUE 
(reserve_in_serial_id);
-
-
---
--- Name: reserves_out reserves_out_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.reserves_out
-    ADD CONSTRAINT reserves_out_pkey PRIMARY KEY (h_blind_ev);
-
-
---
--- Name: reserves_out reserves_out_reserve_out_serial_id_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_out
-    ADD CONSTRAINT reserves_out_reserve_out_serial_id_key UNIQUE 
(reserve_out_serial_id);
-
-
---
--- Name: reserves reserves_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves
-    ADD CONSTRAINT reserves_pkey PRIMARY KEY (reserve_pub);
-
-
---
--- Name: wire_auditor_account_progress wire_auditor_account_progress_pkey; 
Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_auditor_account_progress
-    ADD CONSTRAINT wire_auditor_account_progress_pkey PRIMARY KEY (master_pub, 
account_name);
-
-
---
--- Name: wire_auditor_progress wire_auditor_progress_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_auditor_progress
-    ADD CONSTRAINT wire_auditor_progress_pkey PRIMARY KEY (master_pub);
-
-
---
--- Name: wire_fee wire_fee_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_fee
-    ADD CONSTRAINT wire_fee_pkey PRIMARY KEY (wire_method, start_date);
-
-
---
--- Name: wire_out wire_out_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_out
-    ADD CONSTRAINT wire_out_pkey PRIMARY KEY (wireout_uuid);
-
-
---
--- Name: wire_out wire_out_wtid_raw_key; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.wire_out
-    ADD CONSTRAINT wire_out_wtid_raw_key UNIQUE (wtid_raw);
-
-
---
--- Name: aggregation_tracking_wtid_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX aggregation_tracking_wtid_index ON public.aggregation_tracking 
USING btree (wtid_raw);
-
-
---
--- Name: INDEX aggregation_tracking_wtid_index; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON INDEX public.aggregation_tracking_wtid_index IS 'for 
lookup_transactions';
-
-
---
--- Name: app_banktransaction_credit_account_id_a8ba05ac; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX app_banktransaction_credit_account_id_a8ba05ac ON 
public.app_banktransaction USING btree (credit_account_id);
-
-
---
--- Name: app_banktransaction_date_f72bcad6; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX app_banktransaction_date_f72bcad6 ON public.app_banktransaction 
USING btree (date);
-
-
---
--- Name: app_banktransaction_debit_account_id_5b1f7528; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX app_banktransaction_debit_account_id_5b1f7528 ON 
public.app_banktransaction USING btree (debit_account_id);
-
-
---
--- Name: app_banktransaction_request_uid_b7d06af5_like; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX app_banktransaction_request_uid_b7d06af5_like ON 
public.app_banktransaction USING btree (request_uid varchar_pattern_ops);
-
-
---
--- Name: app_talerwithdrawoperation_selected_exchange_account__6c8b96cf; Type: 
INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX app_talerwithdrawoperation_selected_exchange_account__6c8b96cf ON 
public.app_talerwithdrawoperation USING btree (selected_exchange_account_id);
-
-
---
--- Name: app_talerwithdrawoperation_withdraw_account_id_992dc5b3; Type: INDEX; 
Schema: public; Owner: -
---
-
-CREATE INDEX app_talerwithdrawoperation_withdraw_account_id_992dc5b3 ON 
public.app_talerwithdrawoperation USING btree (withdraw_account_id);
-
-
---
--- Name: auditor_historic_reserve_summary_by_master_pub_start_date; Type: 
INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX auditor_historic_reserve_summary_by_master_pub_start_date ON 
public.auditor_historic_reserve_summary USING btree (master_pub, start_date);
-
-
---
--- Name: auditor_reserves_by_reserve_pub; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX auditor_reserves_by_reserve_pub ON public.auditor_reserves USING 
btree (reserve_pub);
-
-
---
--- Name: auth_group_name_a6ea08ec_like; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX auth_group_name_a6ea08ec_like ON public.auth_group USING btree 
(name varchar_pattern_ops);
-
-
---
--- Name: auth_group_permissions_group_id_b120cbf9; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX auth_group_permissions_group_id_b120cbf9 ON 
public.auth_group_permissions USING btree (group_id);
-
-
---
--- Name: auth_group_permissions_permission_id_84c5c92e; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX auth_group_permissions_permission_id_84c5c92e ON 
public.auth_group_permissions USING btree (permission_id);
-
-
---
--- Name: auth_permission_content_type_id_2f476e4b; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX auth_permission_content_type_id_2f476e4b ON 
public.auth_permission USING btree (content_type_id);
-
-
---
--- Name: auth_user_groups_group_id_97559544; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX auth_user_groups_group_id_97559544 ON public.auth_user_groups 
USING btree (group_id);
-
-
---
--- Name: auth_user_groups_user_id_6a12ed8b; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX auth_user_groups_user_id_6a12ed8b ON public.auth_user_groups 
USING btree (user_id);
-
-
---
--- Name: auth_user_user_permissions_permission_id_1fbb5f2c; Type: INDEX; 
Schema: public; Owner: -
---
-
-CREATE INDEX auth_user_user_permissions_permission_id_1fbb5f2c ON 
public.auth_user_user_permissions USING btree (permission_id);
-
-
---
--- Name: auth_user_user_permissions_user_id_a95ead1b; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX auth_user_user_permissions_user_id_a95ead1b ON 
public.auth_user_user_permissions USING btree (user_id);
-
-
---
--- Name: auth_user_username_6821ab7c_like; Type: INDEX; Schema: public; Owner: 
-
---
-
-CREATE INDEX auth_user_username_6821ab7c_like ON public.auth_user USING btree 
(username varchar_pattern_ops);
-
-
---
--- Name: denominations_expire_legal_index; Type: INDEX; Schema: public; Owner: 
-
---
-
-CREATE INDEX denominations_expire_legal_index ON public.denominations USING 
btree (expire_legal);
-
-
---
--- Name: deposits_coin_pub_merchant_contract_index; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX deposits_coin_pub_merchant_contract_index ON public.deposits 
USING btree (coin_pub, merchant_pub, h_contract_terms);
-
-
---
--- Name: INDEX deposits_coin_pub_merchant_contract_index; Type: COMMENT; 
Schema: public; Owner: -
---
-
-COMMENT ON INDEX public.deposits_coin_pub_merchant_contract_index IS 'for 
deposits_get_ready';
-
-
---
--- Name: deposits_get_ready_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX deposits_get_ready_index ON public.deposits USING btree (tiny, 
done, wire_deadline, refund_deadline);
-
-
---
--- Name: deposits_iterate_matching_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX deposits_iterate_matching_index ON public.deposits USING btree 
(merchant_pub, h_wire, done, wire_deadline);
-
-
---
--- Name: INDEX deposits_iterate_matching_index; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON INDEX public.deposits_iterate_matching_index IS 'for 
deposits_iterate_matching';
-
-
---
--- Name: django_session_expire_date_a5c62663; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX django_session_expire_date_a5c62663 ON public.django_session 
USING btree (expire_date);
-
-
---
--- Name: django_session_session_key_c0390e0f_like; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX django_session_session_key_c0390e0f_like ON public.django_session 
USING btree (session_key varchar_pattern_ops);
-
-
---
--- Name: known_coins_by_denomination; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX known_coins_by_denomination ON public.known_coins USING btree 
(denom_pub_hash);
-
-
---
--- Name: merchant_transfers_by_coin; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX merchant_transfers_by_coin ON public.merchant_transfers USING 
btree (h_contract_terms, coin_pub);
-
-
---
--- Name: merchant_transfers_by_wtid; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX merchant_transfers_by_wtid ON public.merchant_transfers USING 
btree (wtid);
-
-
---
--- Name: prepare_iteration_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX prepare_iteration_index ON public.prewire USING btree (finished);
-
-
---
--- Name: INDEX prepare_iteration_index; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON INDEX public.prepare_iteration_index IS 'for wire_prepare_data_get 
and gc_prewire';
-
-
---
--- Name: recoup_by_coin_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX recoup_by_coin_index ON public.recoup USING btree (coin_pub);
-
-
---
--- Name: recoup_by_h_blind_ev; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX recoup_by_h_blind_ev ON public.recoup USING btree (h_blind_ev);
-
-
---
--- Name: recoup_for_by_reserve; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX recoup_for_by_reserve ON public.recoup USING btree (coin_pub, 
h_blind_ev);
-
-
---
--- Name: recoup_refresh_by_coin_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX recoup_refresh_by_coin_index ON public.recoup_refresh USING btree 
(coin_pub);
-
-
---
--- Name: recoup_refresh_by_h_blind_ev; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX recoup_refresh_by_h_blind_ev ON public.recoup_refresh USING btree 
(h_blind_ev);
-
-
---
--- Name: recoup_refresh_for_by_reserve; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX recoup_refresh_for_by_reserve ON public.recoup_refresh USING 
btree (coin_pub, h_blind_ev);
-
-
---
--- Name: refresh_commitments_old_coin_pub_index; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX refresh_commitments_old_coin_pub_index ON 
public.refresh_commitments USING btree (old_coin_pub);
-
-
---
--- Name: refresh_revealed_coins_coin_pub_index; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX refresh_revealed_coins_coin_pub_index ON 
public.refresh_revealed_coins USING btree (denom_pub_hash);
-
-
---
--- Name: refresh_transfer_keys_coin_tpub; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX refresh_transfer_keys_coin_tpub ON public.refresh_transfer_keys 
USING btree (rc, transfer_pub);
-
-
---
--- Name: INDEX refresh_transfer_keys_coin_tpub; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON INDEX public.refresh_transfer_keys_coin_tpub IS 'for get_link 
(unsure if this helps or hurts for performance as there should be very few 
transfer public keys per rc, but at least in theory this helps the ORDER BY 
clause)';
-
-
---
--- Name: refunds_coin_pub_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX refunds_coin_pub_index ON public.refunds USING btree (coin_pub);
-
-
---
--- Name: reserves_close_by_reserve; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX reserves_close_by_reserve ON public.reserves_close USING btree 
(reserve_pub);
-
-
---
--- Name: reserves_expiration_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX reserves_expiration_index ON public.reserves USING btree 
(expiration_date, current_balance_val, current_balance_frac);
-
-
---
--- Name: INDEX reserves_expiration_index; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON INDEX public.reserves_expiration_index IS 'used in 
get_expired_reserves';
-
-
---
--- Name: reserves_gc_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX reserves_gc_index ON public.reserves USING btree (gc_date);
-
-
---
--- Name: INDEX reserves_gc_index; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON INDEX public.reserves_gc_index IS 'for reserve garbage collection';
-
-
---
--- Name: reserves_in_exchange_account_serial; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX reserves_in_exchange_account_serial ON public.reserves_in USING 
btree (exchange_account_section, reserve_in_serial_id DESC);
-
-
---
--- Name: reserves_in_execution_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX reserves_in_execution_index ON public.reserves_in USING btree 
(exchange_account_section, execution_date);
-
-
---
--- Name: reserves_out_execution_date; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX reserves_out_execution_date ON public.reserves_out USING btree 
(execution_date);
-
-
---
--- Name: reserves_out_for_get_withdraw_info; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX reserves_out_for_get_withdraw_info ON public.reserves_out USING 
btree (denom_pub_hash, h_blind_ev);
-
-
---
--- Name: reserves_out_reserve_pub_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX reserves_out_reserve_pub_index ON public.reserves_out USING btree 
(reserve_pub);
-
-
---
--- Name: INDEX reserves_out_reserve_pub_index; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON INDEX public.reserves_out_reserve_pub_index IS 'for 
get_reserves_out';
-
-
---
--- Name: wire_fee_gc_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX wire_fee_gc_index ON public.wire_fee USING btree (end_date);
-
-
---
--- Name: aggregation_tracking aggregation_tracking_deposit_serial_id_fkey; 
Type: FK CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.aggregation_tracking
-    ADD CONSTRAINT aggregation_tracking_deposit_serial_id_fkey FOREIGN KEY 
(deposit_serial_id) REFERENCES public.deposits(deposit_serial_id) ON DELETE 
CASCADE;
-
-
---
--- Name: app_bankaccount app_bankaccount_user_id_2722a34f_fk_auth_user_id; 
Type: FK CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_bankaccount
-    ADD CONSTRAINT app_bankaccount_user_id_2722a34f_fk_auth_user_id FOREIGN 
KEY (user_id) REFERENCES public.auth_user(id) DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: app_banktransaction 
app_banktransaction_credit_account_id_a8ba05ac_fk_app_banka; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_banktransaction
-    ADD CONSTRAINT app_banktransaction_credit_account_id_a8ba05ac_fk_app_banka 
FOREIGN KEY (credit_account_id) REFERENCES public.app_bankaccount(account_no) 
DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: app_banktransaction 
app_banktransaction_debit_account_id_5b1f7528_fk_app_banka; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_banktransaction
-    ADD CONSTRAINT app_banktransaction_debit_account_id_5b1f7528_fk_app_banka 
FOREIGN KEY (debit_account_id) REFERENCES public.app_bankaccount(account_no) 
DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: app_talerwithdrawoperation 
app_talerwithdrawope_selected_exchange_ac_6c8b96cf_fk_app_banka; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_talerwithdrawoperation
-    ADD CONSTRAINT 
app_talerwithdrawope_selected_exchange_ac_6c8b96cf_fk_app_banka FOREIGN KEY 
(selected_exchange_account_id) REFERENCES public.app_bankaccount(account_no) 
DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: app_talerwithdrawoperation 
app_talerwithdrawope_withdraw_account_id_992dc5b3_fk_app_banka; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_talerwithdrawoperation
-    ADD CONSTRAINT 
app_talerwithdrawope_withdraw_account_id_992dc5b3_fk_app_banka FOREIGN KEY 
(withdraw_account_id) REFERENCES public.app_bankaccount(account_no) DEFERRABLE 
INITIALLY DEFERRED;
-
-
---
--- Name: auditor_denomination_pending 
auditor_denomination_pending_denom_pub_hash_fkey; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_denomination_pending
-    ADD CONSTRAINT auditor_denomination_pending_denom_pub_hash_fkey FOREIGN 
KEY (denom_pub_hash) REFERENCES public.auditor_denominations(denom_pub_hash) ON 
DELETE CASCADE;
-
-
---
--- Name: auth_group_permissions 
auth_group_permissio_permission_id_84c5c92e_fk_auth_perm; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group_permissions
-    ADD CONSTRAINT auth_group_permissio_permission_id_84c5c92e_fk_auth_perm 
FOREIGN KEY (permission_id) REFERENCES public.auth_permission(id) DEFERRABLE 
INITIALLY DEFERRED;
-
-
---
--- Name: auth_group_permissions 
auth_group_permissions_group_id_b120cbf9_fk_auth_group_id; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group_permissions
-    ADD CONSTRAINT auth_group_permissions_group_id_b120cbf9_fk_auth_group_id 
FOREIGN KEY (group_id) REFERENCES public.auth_group(id) DEFERRABLE INITIALLY 
DEFERRED;
-
-
---
--- Name: auth_permission 
auth_permission_content_type_id_2f476e4b_fk_django_co; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_permission
-    ADD CONSTRAINT auth_permission_content_type_id_2f476e4b_fk_django_co 
FOREIGN KEY (content_type_id) REFERENCES public.django_content_type(id) 
DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: auth_user_groups auth_user_groups_group_id_97559544_fk_auth_group_id; 
Type: FK CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_groups
-    ADD CONSTRAINT auth_user_groups_group_id_97559544_fk_auth_group_id FOREIGN 
KEY (group_id) REFERENCES public.auth_group(id) DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: auth_user_groups auth_user_groups_user_id_6a12ed8b_fk_auth_user_id; 
Type: FK CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_groups
-    ADD CONSTRAINT auth_user_groups_user_id_6a12ed8b_fk_auth_user_id FOREIGN 
KEY (user_id) REFERENCES public.auth_user(id) DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: auth_user_user_permissions 
auth_user_user_permi_permission_id_1fbb5f2c_fk_auth_perm; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_user_permissions
-    ADD CONSTRAINT auth_user_user_permi_permission_id_1fbb5f2c_fk_auth_perm 
FOREIGN KEY (permission_id) REFERENCES public.auth_permission(id) DEFERRABLE 
INITIALLY DEFERRED;
-
-
---
--- Name: auth_user_user_permissions 
auth_user_user_permissions_user_id_a95ead1b_fk_auth_user_id; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_user_permissions
-    ADD CONSTRAINT auth_user_user_permissions_user_id_a95ead1b_fk_auth_user_id 
FOREIGN KEY (user_id) REFERENCES public.auth_user(id) DEFERRABLE INITIALLY 
DEFERRED;
-
-
---
--- Name: denomination_revocations 
denomination_revocations_denom_pub_hash_fkey; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.denomination_revocations
-    ADD CONSTRAINT denomination_revocations_denom_pub_hash_fkey FOREIGN KEY 
(denom_pub_hash) REFERENCES public.denominations(denom_pub_hash) ON DELETE 
CASCADE;
-
-
---
--- Name: deposits deposits_coin_pub_fkey; Type: FK CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.deposits
-    ADD CONSTRAINT deposits_coin_pub_fkey FOREIGN KEY (coin_pub) REFERENCES 
public.known_coins(coin_pub) ON DELETE CASCADE;
-
-
---
--- Name: known_coins known_coins_denom_pub_hash_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.known_coins
-    ADD CONSTRAINT known_coins_denom_pub_hash_fkey FOREIGN KEY 
(denom_pub_hash) REFERENCES public.denominations(denom_pub_hash) ON DELETE 
CASCADE;
-
-
---
--- Name: auditor_exchange_signkeys master_pub_ref; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_exchange_signkeys
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_denominations master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_denominations
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_progress_reserve master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_reserve
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_progress_aggregation master_pub_ref; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_aggregation
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_progress_deposit_confirmation master_pub_ref; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_deposit_confirmation
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_progress_coin master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_coin
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: wire_auditor_account_progress master_pub_ref; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_auditor_account_progress
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: wire_auditor_progress master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_auditor_progress
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_reserves master_pub_ref; Type: FK CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.auditor_reserves
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_reserve_balance master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_reserve_balance
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_wire_fee_balance master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_wire_fee_balance
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_balance_summary master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_balance_summary
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_historic_denomination_revenue master_pub_ref; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_historic_denomination_revenue
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_historic_reserve_summary master_pub_ref; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_historic_reserve_summary
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: deposit_confirmations master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.deposit_confirmations
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_predicted_result master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_predicted_result
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: merchant_deposits merchant_deposits_h_contract_terms_fkey; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_deposits
-    ADD CONSTRAINT merchant_deposits_h_contract_terms_fkey FOREIGN KEY 
(h_contract_terms, merchant_pub) REFERENCES 
public.merchant_contract_terms(h_contract_terms, merchant_pub);
-
-
---
--- Name: merchant_tip_pickups merchant_tip_pickups_tip_id_fkey; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_tip_pickups
-    ADD CONSTRAINT merchant_tip_pickups_tip_id_fkey FOREIGN KEY (tip_id) 
REFERENCES public.merchant_tips(tip_id) ON DELETE CASCADE;
-
-
---
--- Name: recoup recoup_coin_pub_fkey; Type: FK CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.recoup
-    ADD CONSTRAINT recoup_coin_pub_fkey FOREIGN KEY (coin_pub) REFERENCES 
public.known_coins(coin_pub);
-
-
---
--- Name: recoup recoup_h_blind_ev_fkey; Type: FK CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.recoup
-    ADD CONSTRAINT recoup_h_blind_ev_fkey FOREIGN KEY (h_blind_ev) REFERENCES 
public.reserves_out(h_blind_ev) ON DELETE CASCADE;
-
-
---
--- Name: recoup_refresh recoup_refresh_coin_pub_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.recoup_refresh
-    ADD CONSTRAINT recoup_refresh_coin_pub_fkey FOREIGN KEY (coin_pub) 
REFERENCES public.known_coins(coin_pub);
-
-
---
--- Name: recoup_refresh recoup_refresh_h_blind_ev_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.recoup_refresh
-    ADD CONSTRAINT recoup_refresh_h_blind_ev_fkey FOREIGN KEY (h_blind_ev) 
REFERENCES public.refresh_revealed_coins(h_coin_ev) ON DELETE CASCADE;
-
-
---
--- Name: refresh_commitments refresh_commitments_old_coin_pub_fkey; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_commitments
-    ADD CONSTRAINT refresh_commitments_old_coin_pub_fkey FOREIGN KEY 
(old_coin_pub) REFERENCES public.known_coins(coin_pub) ON DELETE CASCADE;
-
-
---
--- Name: refresh_revealed_coins refresh_revealed_coins_denom_pub_hash_fkey; 
Type: FK CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_revealed_coins
-    ADD CONSTRAINT refresh_revealed_coins_denom_pub_hash_fkey FOREIGN KEY 
(denom_pub_hash) REFERENCES public.denominations(denom_pub_hash) ON DELETE 
CASCADE;
-
-
---
--- Name: refresh_revealed_coins refresh_revealed_coins_rc_fkey; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_revealed_coins
-    ADD CONSTRAINT refresh_revealed_coins_rc_fkey FOREIGN KEY (rc) REFERENCES 
public.refresh_commitments(rc) ON DELETE CASCADE;
-
-
---
--- Name: refresh_transfer_keys refresh_transfer_keys_rc_fkey; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_transfer_keys
-    ADD CONSTRAINT refresh_transfer_keys_rc_fkey FOREIGN KEY (rc) REFERENCES 
public.refresh_commitments(rc) ON DELETE CASCADE;
-
-
---
--- Name: refunds refunds_coin_pub_fkey; Type: FK CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.refunds
-    ADD CONSTRAINT refunds_coin_pub_fkey FOREIGN KEY (coin_pub) REFERENCES 
public.known_coins(coin_pub) ON DELETE CASCADE;
-
-
---
--- Name: reserves_close reserves_close_reserve_pub_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_close
-    ADD CONSTRAINT reserves_close_reserve_pub_fkey FOREIGN KEY (reserve_pub) 
REFERENCES public.reserves(reserve_pub) ON DELETE CASCADE;
-
-
---
--- Name: reserves_in reserves_in_reserve_pub_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_in
-    ADD CONSTRAINT reserves_in_reserve_pub_fkey FOREIGN KEY (reserve_pub) 
REFERENCES public.reserves(reserve_pub) ON DELETE CASCADE;
-
-
---
--- Name: reserves_out reserves_out_denom_pub_hash_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_out
-    ADD CONSTRAINT reserves_out_denom_pub_hash_fkey FOREIGN KEY 
(denom_pub_hash) REFERENCES public.denominations(denom_pub_hash);
-
-
---
--- Name: reserves_out reserves_out_reserve_pub_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_out
-    ADD CONSTRAINT reserves_out_reserve_pub_fkey FOREIGN KEY (reserve_pub) 
REFERENCES public.reserves(reserve_pub) ON DELETE CASCADE;
-
-
---
--- Name: aggregation_tracking wire_out_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.aggregation_tracking
-    ADD CONSTRAINT wire_out_ref FOREIGN KEY (wtid_raw) REFERENCES 
public.wire_out(wtid_raw) ON DELETE CASCADE DEFERRABLE;
-
-
---
--- PostgreSQL database dump complete
---
-
diff --git a/src/auditor/generate-revoke-basedb.sh 
b/src/auditor/generate-revoke-basedb.sh
index e687b1ff..00ad3a6c 100755
--- a/src/auditor/generate-revoke-basedb.sh
+++ b/src/auditor/generate-revoke-basedb.sh
@@ -8,6 +8,10 @@
 set -eu
 
 
+echo "Script disabled: taler-wallet-cli integration test known to fail right 
now!"
+exit 1
+
+
 trap "kill `jobs -p` &> /dev/null || true" ERR
 
 # Exit, with status code "skip" (no 'real' failure)
diff --git a/src/auditor/revoke-basedb.age b/src/auditor/revoke-basedb.age
deleted file mode 100644
index 421485f5..00000000
--- a/src/auditor/revoke-basedb.age
+++ /dev/null
@@ -1 +0,0 @@
-1585247241
diff --git a/src/auditor/revoke-basedb.fees b/src/auditor/revoke-basedb.fees
deleted file mode 100644
index 500c9505..00000000
Binary files a/src/auditor/revoke-basedb.fees and /dev/null differ
diff --git a/src/auditor/revoke-basedb.mpub b/src/auditor/revoke-basedb.mpub
deleted file mode 100644
index 6482de61..00000000
--- a/src/auditor/revoke-basedb.mpub
+++ /dev/null
@@ -1 +0,0 @@
-NG08W20XYEN3M663JQ0THGSRH2QT7Y3390933FVSZE033Q9A9XE0
diff --git a/src/auditor/revoke-basedb.sql b/src/auditor/revoke-basedb.sql
deleted file mode 100644
index d4f9f1e6..00000000
--- a/src/auditor/revoke-basedb.sql
+++ /dev/null
@@ -1,4892 +0,0 @@
---
--- PostgreSQL database dump
---
-
--- Dumped from database version 10.5 (Debian 10.5-1)
--- Dumped by pg_dump version 10.5 (Debian 10.5-1)
-
-SET statement_timeout = 0;
-SET lock_timeout = 0;
-SET idle_in_transaction_session_timeout = 0;
-SET client_encoding = 'UTF8';
-SET standard_conforming_strings = on;
-SELECT pg_catalog.set_config('search_path', '', false);
-SET check_function_bodies = false;
-SET client_min_messages = warning;
-SET row_security = off;
-
---
--- Name: _v; Type: SCHEMA; Schema: -; Owner: -
---
-
-CREATE SCHEMA _v;
-
-
---
--- Name: SCHEMA _v; Type: COMMENT; Schema: -; Owner: -
---
-
-COMMENT ON SCHEMA _v IS 'Schema for versioning data and functionality.';
-
-
---
--- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
---
-
-CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
-
-
---
--- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -
---
-
-COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
-
-
---
--- Name: assert_patch_is_applied(text); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.assert_patch_is_applied(in_patch_name text) RETURNS text
-    LANGUAGE plpgsql
-    AS $$
-DECLARE
-    t_text TEXT;
-BEGIN
-    SELECT patch_name INTO t_text FROM _v.patches WHERE patch_name = 
in_patch_name;
-    IF NOT FOUND THEN
-        RAISE EXCEPTION 'Patch % is not applied!', in_patch_name;
-    END IF;
-    RETURN format('Patch %s is applied.', in_patch_name);
-END;
-$$;
-
-
---
--- Name: FUNCTION assert_patch_is_applied(in_patch_name text); Type: COMMENT; 
Schema: _v; Owner: -
---
-
-COMMENT ON FUNCTION _v.assert_patch_is_applied(in_patch_name text) IS 
'Function that can be used to make sure that patch has been applied.';
-
-
---
--- Name: assert_user_is_not_superuser(); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.assert_user_is_not_superuser() RETURNS text
-    LANGUAGE plpgsql
-    AS $$
-DECLARE
-    v_super bool;
-BEGIN
-    SELECT usesuper INTO v_super FROM pg_user WHERE usename = current_user;
-    IF v_super THEN
-        RAISE EXCEPTION 'Current user is superuser - cannot continue.';
-    END IF;
-    RETURN 'assert_user_is_not_superuser: OK';
-END;
-$$;
-
-
---
--- Name: FUNCTION assert_user_is_not_superuser(); Type: COMMENT; Schema: _v; 
Owner: -
---
-
-COMMENT ON FUNCTION _v.assert_user_is_not_superuser() IS 'Function that can be 
used to make sure that patch is being applied using normal (not superuser) 
account.';
-
-
---
--- Name: assert_user_is_one_of(text[]); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.assert_user_is_one_of(VARIADIC p_acceptable_users text[]) 
RETURNS text
-    LANGUAGE plpgsql
-    AS $$
-DECLARE
-BEGIN
-    IF current_user = any( p_acceptable_users ) THEN
-        RETURN 'assert_user_is_one_of: OK';
-    END IF;
-    RAISE EXCEPTION 'User is not one of: % - cannot continue.', 
p_acceptable_users;
-END;
-$$;
-
-
---
--- Name: FUNCTION assert_user_is_one_of(VARIADIC p_acceptable_users text[]); 
Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON FUNCTION _v.assert_user_is_one_of(VARIADIC p_acceptable_users 
text[]) IS 'Function that can be used to make sure that patch is being applied 
by one of defined users.';
-
-
---
--- Name: assert_user_is_superuser(); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.assert_user_is_superuser() RETURNS text
-    LANGUAGE plpgsql
-    AS $$
-DECLARE
-    v_super bool;
-BEGIN
-    SELECT usesuper INTO v_super FROM pg_user WHERE usename = current_user;
-    IF v_super THEN
-        RETURN 'assert_user_is_superuser: OK';
-    END IF;
-    RAISE EXCEPTION 'Current user is not superuser - cannot continue.';
-END;
-$$;
-
-
---
--- Name: FUNCTION assert_user_is_superuser(); Type: COMMENT; Schema: _v; 
Owner: -
---
-
-COMMENT ON FUNCTION _v.assert_user_is_superuser() IS 'Function that can be 
used to make sure that patch is being applied using superuser account.';
-
-
---
--- Name: register_patch(text); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.register_patch(text) RETURNS SETOF integer
-    LANGUAGE sql
-    AS $_$
-    SELECT _v.register_patch( $1, NULL, NULL );
-$_$;
-
-
---
--- Name: FUNCTION register_patch(text); Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON FUNCTION _v.register_patch(text) IS 'Wrapper to allow registration 
of patches without requirements and conflicts.';
-
-
---
--- Name: register_patch(text, text[]); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.register_patch(text, text[]) RETURNS SETOF integer
-    LANGUAGE sql
-    AS $_$
-    SELECT _v.register_patch( $1, $2, NULL );
-$_$;
-
-
---
--- Name: FUNCTION register_patch(text, text[]); Type: COMMENT; Schema: _v; 
Owner: -
---
-
-COMMENT ON FUNCTION _v.register_patch(text, text[]) IS 'Wrapper to allow 
registration of patches without conflicts.';
-
-
---
--- Name: register_patch(text, text[], text[]); Type: FUNCTION; Schema: _v; 
Owner: -
---
-
-CREATE FUNCTION _v.register_patch(in_patch_name text, in_requirements text[], 
in_conflicts text[], OUT versioning integer) RETURNS SETOF integer
-    LANGUAGE plpgsql
-    AS $$
-DECLARE
-    t_text   TEXT;
-    t_text_a TEXT[];
-    i INT4;
-BEGIN
-    -- Thanks to this we know only one patch will be applied at a time
-    LOCK TABLE _v.patches IN EXCLUSIVE MODE;
-
-    SELECT patch_name INTO t_text FROM _v.patches WHERE patch_name = 
in_patch_name;
-    IF FOUND THEN
-        RAISE EXCEPTION 'Patch % is already applied!', in_patch_name;
-    END IF;
-
-    t_text_a := ARRAY( SELECT patch_name FROM _v.patches WHERE patch_name = 
any( in_conflicts ) );
-    IF array_upper( t_text_a, 1 ) IS NOT NULL THEN
-        RAISE EXCEPTION 'Versioning patches conflict. Conflicting patche(s) 
installed: %.', array_to_string( t_text_a, ', ' );
-    END IF;
-
-    IF array_upper( in_requirements, 1 ) IS NOT NULL THEN
-        t_text_a := '{}';
-        FOR i IN array_lower( in_requirements, 1 ) .. array_upper( 
in_requirements, 1 ) LOOP
-            SELECT patch_name INTO t_text FROM _v.patches WHERE patch_name = 
in_requirements[i];
-            IF NOT FOUND THEN
-                t_text_a := t_text_a || in_requirements[i];
-            END IF;
-        END LOOP;
-        IF array_upper( t_text_a, 1 ) IS NOT NULL THEN
-            RAISE EXCEPTION 'Missing prerequisite(s): %.', array_to_string( 
t_text_a, ', ' );
-        END IF;
-    END IF;
-
-    INSERT INTO _v.patches (patch_name, applied_tsz, applied_by, requires, 
conflicts ) VALUES ( in_patch_name, now(), current_user, coalesce( 
in_requirements, '{}' ), coalesce( in_conflicts, '{}' ) );
-    RETURN;
-END;
-$$;
-
-
---
--- Name: FUNCTION register_patch(in_patch_name text, in_requirements text[], 
in_conflicts text[], OUT versioning integer); Type: COMMENT; Schema: _v; Owner: 
-
---
-
-COMMENT ON FUNCTION _v.register_patch(in_patch_name text, in_requirements 
text[], in_conflicts text[], OUT versioning integer) IS 'Function to register 
patches in database. Raises exception if there are conflicts, prerequisites are 
not installed or the migration has already been installed.';
-
-
---
--- Name: unregister_patch(text); Type: FUNCTION; Schema: _v; Owner: -
---
-
-CREATE FUNCTION _v.unregister_patch(in_patch_name text, OUT versioning 
integer) RETURNS SETOF integer
-    LANGUAGE plpgsql
-    AS $$
-DECLARE
-    i        INT4;
-    t_text_a TEXT[];
-BEGIN
-    -- Thanks to this we know only one patch will be applied at a time
-    LOCK TABLE _v.patches IN EXCLUSIVE MODE;
-
-    t_text_a := ARRAY( SELECT patch_name FROM _v.patches WHERE in_patch_name = 
ANY( requires ) );
-    IF array_upper( t_text_a, 1 ) IS NOT NULL THEN
-        RAISE EXCEPTION 'Cannot uninstall %, as it is required by: %.', 
in_patch_name, array_to_string( t_text_a, ', ' );
-    END IF;
-
-    DELETE FROM _v.patches WHERE patch_name = in_patch_name;
-    GET DIAGNOSTICS i = ROW_COUNT;
-    IF i < 1 THEN
-        RAISE EXCEPTION 'Patch % is not installed, so it can''t be 
uninstalled!', in_patch_name;
-    END IF;
-
-    RETURN;
-END;
-$$;
-
-
---
--- Name: FUNCTION unregister_patch(in_patch_name text, OUT versioning 
integer); Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON FUNCTION _v.unregister_patch(in_patch_name text, OUT versioning 
integer) IS 'Function to unregister patches in database. Dies if the patch is 
not registered, or if unregistering it would break dependencies.';
-
-
-SET default_tablespace = '';
-
-SET default_with_oids = false;
-
---
--- Name: patches; Type: TABLE; Schema: _v; Owner: -
---
-
-CREATE TABLE _v.patches (
-    patch_name text NOT NULL,
-    applied_tsz timestamp with time zone DEFAULT now() NOT NULL,
-    applied_by text NOT NULL,
-    requires text[],
-    conflicts text[]
-);
-
-
---
--- Name: TABLE patches; Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON TABLE _v.patches IS 'Contains information about what patches are 
currently applied on database.';
-
-
---
--- Name: COLUMN patches.patch_name; Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON COLUMN _v.patches.patch_name IS 'Name of patch, has to be unique 
for every patch.';
-
-
---
--- Name: COLUMN patches.applied_tsz; Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON COLUMN _v.patches.applied_tsz IS 'When the patch was applied.';
-
-
---
--- Name: COLUMN patches.applied_by; Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON COLUMN _v.patches.applied_by IS 'Who applied this patch (PostgreSQL 
username)';
-
-
---
--- Name: COLUMN patches.requires; Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON COLUMN _v.patches.requires IS 'List of patches that are required 
for given patch.';
-
-
---
--- Name: COLUMN patches.conflicts; Type: COMMENT; Schema: _v; Owner: -
---
-
-COMMENT ON COLUMN _v.patches.conflicts IS 'List of patches that conflict with 
given patch.';
-
-
---
--- Name: aggregation_tracking; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.aggregation_tracking (
-    aggregation_serial_id bigint NOT NULL,
-    deposit_serial_id bigint NOT NULL,
-    wtid_raw bytea
-);
-
-
---
--- Name: TABLE aggregation_tracking; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.aggregation_tracking IS 'mapping from wire transfer 
identifiers (WTID) to deposits (and back)';
-
-
---
--- Name: aggregation_tracking_aggregation_serial_id_seq; Type: SEQUENCE; 
Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.aggregation_tracking_aggregation_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: aggregation_tracking_aggregation_serial_id_seq; Type: SEQUENCE OWNED 
BY; Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.aggregation_tracking_aggregation_serial_id_seq OWNED BY 
public.aggregation_tracking.aggregation_serial_id;
-
-
---
--- Name: app_bankaccount; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.app_bankaccount (
-    is_public boolean NOT NULL,
-    account_no integer NOT NULL,
-    balance character varying NOT NULL,
-    user_id integer NOT NULL
-);
-
-
---
--- Name: app_bankaccount_account_no_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.app_bankaccount_account_no_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: app_bankaccount_account_no_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.app_bankaccount_account_no_seq OWNED BY 
public.app_bankaccount.account_no;
-
-
---
--- Name: app_banktransaction; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.app_banktransaction (
-    id integer NOT NULL,
-    amount character varying NOT NULL,
-    subject character varying(200) NOT NULL,
-    date timestamp with time zone NOT NULL,
-    cancelled boolean NOT NULL,
-    request_uid character varying(128) NOT NULL,
-    credit_account_id integer NOT NULL,
-    debit_account_id integer NOT NULL
-);
-
-
---
--- Name: app_banktransaction_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.app_banktransaction_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: app_banktransaction_id_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.app_banktransaction_id_seq OWNED BY 
public.app_banktransaction.id;
-
-
---
--- Name: app_talerwithdrawoperation; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.app_talerwithdrawoperation (
-    withdraw_id uuid NOT NULL,
-    amount character varying NOT NULL,
-    selection_done boolean NOT NULL,
-    confirmation_done boolean NOT NULL,
-    aborted boolean NOT NULL,
-    selected_reserve_pub text,
-    selected_exchange_account_id integer,
-    withdraw_account_id integer NOT NULL
-);
-
-
---
--- Name: auditor_balance_summary; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_balance_summary (
-    master_pub bytea,
-    denom_balance_val bigint NOT NULL,
-    denom_balance_frac integer NOT NULL,
-    deposit_fee_balance_val bigint NOT NULL,
-    deposit_fee_balance_frac integer NOT NULL,
-    melt_fee_balance_val bigint NOT NULL,
-    melt_fee_balance_frac integer NOT NULL,
-    refund_fee_balance_val bigint NOT NULL,
-    refund_fee_balance_frac integer NOT NULL,
-    risk_val bigint NOT NULL,
-    risk_frac integer NOT NULL,
-    loss_val bigint NOT NULL,
-    loss_frac integer NOT NULL,
-    irregular_recoup_val bigint NOT NULL,
-    irregular_recoup_frac integer NOT NULL
-);
-
-
---
--- Name: TABLE auditor_balance_summary; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_balance_summary IS 'the sum of the outstanding 
coins from auditor_denomination_pending (denom_pubs must belong to the 
respectives exchange master public key); it represents the 
auditor_balance_summary of the exchange at this point (modulo unexpected 
historic_loss-style events where denomination keys are compromised)';
-
-
---
--- Name: auditor_denomination_pending; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_denomination_pending (
-    denom_pub_hash bytea NOT NULL,
-    denom_balance_val bigint NOT NULL,
-    denom_balance_frac integer NOT NULL,
-    denom_loss_val bigint NOT NULL,
-    denom_loss_frac integer NOT NULL,
-    num_issued bigint NOT NULL,
-    denom_risk_val bigint NOT NULL,
-    denom_risk_frac integer NOT NULL,
-    recoup_loss_val bigint NOT NULL,
-    recoup_loss_frac integer NOT NULL
-);
-
-
---
--- Name: TABLE auditor_denomination_pending; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON TABLE public.auditor_denomination_pending IS 'outstanding 
denomination coins that the exchange is aware of and what the respective 
balances are (outstanding as well as issued overall which implies the maximum 
value at risk).';
-
-
---
--- Name: COLUMN auditor_denomination_pending.num_issued; Type: COMMENT; 
Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.auditor_denomination_pending.num_issued IS 'counts 
the number of coins issued (withdraw, refresh) of this denomination';
-
-
---
--- Name: COLUMN auditor_denomination_pending.denom_risk_val; Type: COMMENT; 
Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.auditor_denomination_pending.denom_risk_val IS 
'amount that could theoretically be lost in the future due to recoup 
operations';
-
-
---
--- Name: COLUMN auditor_denomination_pending.recoup_loss_val; Type: COMMENT; 
Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.auditor_denomination_pending.recoup_loss_val IS 
'amount actually lost due to recoup operations past revocation';
-
-
---
--- Name: auditor_denominations; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_denominations (
-    denom_pub_hash bytea NOT NULL,
-    master_pub bytea,
-    valid_from bigint NOT NULL,
-    expire_withdraw bigint NOT NULL,
-    expire_deposit bigint NOT NULL,
-    expire_legal bigint NOT NULL,
-    coin_val bigint NOT NULL,
-    coin_frac integer NOT NULL,
-    fee_withdraw_val bigint NOT NULL,
-    fee_withdraw_frac integer NOT NULL,
-    fee_deposit_val bigint NOT NULL,
-    fee_deposit_frac integer NOT NULL,
-    fee_refresh_val bigint NOT NULL,
-    fee_refresh_frac integer NOT NULL,
-    fee_refund_val bigint NOT NULL,
-    fee_refund_frac integer NOT NULL,
-    CONSTRAINT auditor_denominations_denom_pub_hash_check CHECK 
((length(denom_pub_hash) = 64))
-);
-
-
---
--- Name: TABLE auditor_denominations; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_denominations IS 'denomination keys the 
auditor is aware of';
-
-
---
--- Name: auditor_exchange_signkeys; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_exchange_signkeys (
-    master_pub bytea,
-    ep_start bigint NOT NULL,
-    ep_expire bigint NOT NULL,
-    ep_end bigint NOT NULL,
-    exchange_pub bytea NOT NULL,
-    master_sig bytea NOT NULL,
-    CONSTRAINT auditor_exchange_signkeys_exchange_pub_check CHECK 
((length(exchange_pub) = 32)),
-    CONSTRAINT auditor_exchange_signkeys_master_sig_check CHECK 
((length(master_sig) = 64))
-);
-
-
---
--- Name: TABLE auditor_exchange_signkeys; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON TABLE public.auditor_exchange_signkeys IS 'list of the online 
signing keys of exchanges we are auditing';
-
-
---
--- Name: auditor_exchanges; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_exchanges (
-    master_pub bytea NOT NULL,
-    exchange_url character varying NOT NULL,
-    CONSTRAINT auditor_exchanges_master_pub_check CHECK ((length(master_pub) = 
32))
-);
-
-
---
--- Name: TABLE auditor_exchanges; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_exchanges IS 'list of the exchanges we are 
auditing';
-
-
---
--- Name: auditor_historic_denomination_revenue; Type: TABLE; Schema: public; 
Owner: -
---
-
-CREATE TABLE public.auditor_historic_denomination_revenue (
-    master_pub bytea,
-    denom_pub_hash bytea NOT NULL,
-    revenue_timestamp bigint NOT NULL,
-    revenue_balance_val bigint NOT NULL,
-    revenue_balance_frac integer NOT NULL,
-    loss_balance_val bigint NOT NULL,
-    loss_balance_frac integer NOT NULL,
-    CONSTRAINT auditor_historic_denomination_revenue_denom_pub_hash_check 
CHECK ((length(denom_pub_hash) = 64))
-);
-
-
---
--- Name: TABLE auditor_historic_denomination_revenue; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_historic_denomination_revenue IS 'Table with 
historic profits; basically, when a denom_pub has expired and everything 
associated with it is garbage collected, the final profits end up in here; note 
that the denom_pub here is not a foreign key, we just keep it as a reference 
point.';
-
-
---
--- Name: COLUMN auditor_historic_denomination_revenue.revenue_balance_val; 
Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON COLUMN 
public.auditor_historic_denomination_revenue.revenue_balance_val IS 'the sum of 
all of the profits we made on the coin except for withdraw fees (which are in 
historic_reserve_revenue); so this includes the deposit, melt and refund fees';
-
-
---
--- Name: auditor_historic_reserve_summary; Type: TABLE; Schema: public; Owner: 
-
---
-
-CREATE TABLE public.auditor_historic_reserve_summary (
-    master_pub bytea,
-    start_date bigint NOT NULL,
-    end_date bigint NOT NULL,
-    reserve_profits_val bigint NOT NULL,
-    reserve_profits_frac integer NOT NULL
-);
-
-
---
--- Name: TABLE auditor_historic_reserve_summary; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_historic_reserve_summary IS 'historic profits 
from reserves; we eventually GC auditor_historic_reserve_revenue, and then 
store the totals in here (by time intervals).';
-
-
---
--- Name: auditor_predicted_result; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_predicted_result (
-    master_pub bytea,
-    balance_val bigint NOT NULL,
-    balance_frac integer NOT NULL
-);
-
-
---
--- Name: TABLE auditor_predicted_result; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON TABLE public.auditor_predicted_result IS 'Table with the sum of the 
ledger, auditor_historic_revenue and the auditor_reserve_balance.  This is the 
final amount that the exchange should have in its bank account right now.';
-
-
---
--- Name: auditor_progress_aggregation; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_progress_aggregation (
-    master_pub bytea NOT NULL,
-    last_wire_out_serial_id bigint DEFAULT 0 NOT NULL
-);
-
-
---
--- Name: TABLE auditor_progress_aggregation; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON TABLE public.auditor_progress_aggregation IS 'information as to 
which transactions the auditor has processed in the exchange database.  Used 
for SELECTing the
- statements to process.  The indices include the last serial ID from the 
respective tables that we have processed. Thus, we need to select those table 
entries that are strictly larger (and process in monotonically increasing 
order).';
-
-
---
--- Name: auditor_progress_coin; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_progress_coin (
-    master_pub bytea NOT NULL,
-    last_withdraw_serial_id bigint DEFAULT 0 NOT NULL,
-    last_deposit_serial_id bigint DEFAULT 0 NOT NULL,
-    last_melt_serial_id bigint DEFAULT 0 NOT NULL,
-    last_refund_serial_id bigint DEFAULT 0 NOT NULL,
-    last_recoup_serial_id bigint DEFAULT 0 NOT NULL,
-    last_recoup_refresh_serial_id bigint DEFAULT 0 NOT NULL
-);
-
-
---
--- Name: TABLE auditor_progress_coin; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_progress_coin IS 'information as to which 
transactions the auditor has processed in the exchange database.  Used for 
SELECTing the
- statements to process.  The indices include the last serial ID from the 
respective tables that we have processed. Thus, we need to select those table 
entries that are strictly larger (and process in monotonically increasing 
order).';
-
-
---
--- Name: auditor_progress_deposit_confirmation; Type: TABLE; Schema: public; 
Owner: -
---
-
-CREATE TABLE public.auditor_progress_deposit_confirmation (
-    master_pub bytea NOT NULL,
-    last_deposit_confirmation_serial_id bigint DEFAULT 0 NOT NULL
-);
-
-
---
--- Name: TABLE auditor_progress_deposit_confirmation; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_progress_deposit_confirmation IS 'information 
as to which transactions the auditor has processed in the exchange database.  
Used for SELECTing the
- statements to process.  The indices include the last serial ID from the 
respective tables that we have processed. Thus, we need to select those table 
entries that are strictly larger (and process in monotonically increasing 
order).';
-
-
---
--- Name: auditor_progress_reserve; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_progress_reserve (
-    master_pub bytea NOT NULL,
-    last_reserve_in_serial_id bigint DEFAULT 0 NOT NULL,
-    last_reserve_out_serial_id bigint DEFAULT 0 NOT NULL,
-    last_reserve_recoup_serial_id bigint DEFAULT 0 NOT NULL,
-    last_reserve_close_serial_id bigint DEFAULT 0 NOT NULL
-);
-
-
---
--- Name: TABLE auditor_progress_reserve; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON TABLE public.auditor_progress_reserve IS 'information as to which 
transactions the auditor has processed in the exchange database.  Used for 
SELECTing the
- statements to process.  The indices include the last serial ID from the 
respective tables that we have processed. Thus, we need to select those table 
entries that are strictly larger (and process in monotonically increasing 
order).';
-
-
---
--- Name: auditor_reserve_balance; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_reserve_balance (
-    master_pub bytea,
-    reserve_balance_val bigint NOT NULL,
-    reserve_balance_frac integer NOT NULL,
-    withdraw_fee_balance_val bigint NOT NULL,
-    withdraw_fee_balance_frac integer NOT NULL
-);
-
-
---
--- Name: TABLE auditor_reserve_balance; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_reserve_balance IS 'sum of the balances of all 
customer reserves (by exchange master public key)';
-
-
---
--- Name: auditor_reserves; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_reserves (
-    reserve_pub bytea NOT NULL,
-    master_pub bytea,
-    reserve_balance_val bigint NOT NULL,
-    reserve_balance_frac integer NOT NULL,
-    withdraw_fee_balance_val bigint NOT NULL,
-    withdraw_fee_balance_frac integer NOT NULL,
-    expiration_date bigint NOT NULL,
-    auditor_reserves_rowid bigint NOT NULL,
-    origin_account text,
-    CONSTRAINT auditor_reserves_reserve_pub_check CHECK ((length(reserve_pub) 
= 32))
-);
-
-
---
--- Name: TABLE auditor_reserves; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.auditor_reserves IS 'all of the customer reserves and 
their respective balances that the auditor is aware of';
-
-
---
--- Name: auditor_reserves_auditor_reserves_rowid_seq; Type: SEQUENCE; Schema: 
public; Owner: -
---
-
-CREATE SEQUENCE public.auditor_reserves_auditor_reserves_rowid_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auditor_reserves_auditor_reserves_rowid_seq; Type: SEQUENCE OWNED BY; 
Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.auditor_reserves_auditor_reserves_rowid_seq OWNED BY 
public.auditor_reserves.auditor_reserves_rowid;
-
-
---
--- Name: auditor_wire_fee_balance; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auditor_wire_fee_balance (
-    master_pub bytea,
-    wire_fee_balance_val bigint NOT NULL,
-    wire_fee_balance_frac integer NOT NULL
-);
-
-
---
--- Name: TABLE auditor_wire_fee_balance; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON TABLE public.auditor_wire_fee_balance IS 'sum of the balances of 
all wire fees (by exchange master public key)';
-
-
---
--- Name: auth_group; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auth_group (
-    id integer NOT NULL,
-    name character varying(150) NOT NULL
-);
-
-
---
--- Name: auth_group_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.auth_group_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auth_group_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.auth_group_id_seq OWNED BY public.auth_group.id;
-
-
---
--- Name: auth_group_permissions; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auth_group_permissions (
-    id integer NOT NULL,
-    group_id integer NOT NULL,
-    permission_id integer NOT NULL
-);
-
-
---
--- Name: auth_group_permissions_id_seq; Type: SEQUENCE; Schema: public; Owner: 
-
---
-
-CREATE SEQUENCE public.auth_group_permissions_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auth_group_permissions_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.auth_group_permissions_id_seq OWNED BY 
public.auth_group_permissions.id;
-
-
---
--- Name: auth_permission; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auth_permission (
-    id integer NOT NULL,
-    name character varying(255) NOT NULL,
-    content_type_id integer NOT NULL,
-    codename character varying(100) NOT NULL
-);
-
-
---
--- Name: auth_permission_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.auth_permission_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auth_permission_id_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.auth_permission_id_seq OWNED BY 
public.auth_permission.id;
-
-
---
--- Name: auth_user; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auth_user (
-    id integer NOT NULL,
-    password character varying(128) NOT NULL,
-    last_login timestamp with time zone,
-    is_superuser boolean NOT NULL,
-    username character varying(150) NOT NULL,
-    first_name character varying(30) NOT NULL,
-    last_name character varying(150) NOT NULL,
-    email character varying(254) NOT NULL,
-    is_staff boolean NOT NULL,
-    is_active boolean NOT NULL,
-    date_joined timestamp with time zone NOT NULL
-);
-
-
---
--- Name: auth_user_groups; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auth_user_groups (
-    id integer NOT NULL,
-    user_id integer NOT NULL,
-    group_id integer NOT NULL
-);
-
-
---
--- Name: auth_user_groups_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.auth_user_groups_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auth_user_groups_id_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.auth_user_groups_id_seq OWNED BY 
public.auth_user_groups.id;
-
-
---
--- Name: auth_user_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.auth_user_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auth_user_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.auth_user_id_seq OWNED BY public.auth_user.id;
-
-
---
--- Name: auth_user_user_permissions; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.auth_user_user_permissions (
-    id integer NOT NULL,
-    user_id integer NOT NULL,
-    permission_id integer NOT NULL
-);
-
-
---
--- Name: auth_user_user_permissions_id_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.auth_user_user_permissions_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: auth_user_user_permissions_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.auth_user_user_permissions_id_seq OWNED BY 
public.auth_user_user_permissions.id;
-
-
---
--- Name: denomination_revocations; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.denomination_revocations (
-    denom_revocations_serial_id bigint NOT NULL,
-    denom_pub_hash bytea NOT NULL,
-    master_sig bytea NOT NULL,
-    CONSTRAINT denomination_revocations_master_sig_check CHECK 
((length(master_sig) = 64))
-);
-
-
---
--- Name: TABLE denomination_revocations; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON TABLE public.denomination_revocations IS 'remembering which 
denomination keys have been revoked';
-
-
---
--- Name: denomination_revocations_denom_revocations_serial_id_seq; Type: 
SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.denomination_revocations_denom_revocations_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: denomination_revocations_denom_revocations_serial_id_seq; Type: 
SEQUENCE OWNED BY; Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.denomination_revocations_denom_revocations_serial_id_seq 
OWNED BY public.denomination_revocations.denom_revocations_serial_id;
-
-
---
--- Name: denominations; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.denominations (
-    denom_pub_hash bytea NOT NULL,
-    denom_pub bytea NOT NULL,
-    master_pub bytea NOT NULL,
-    master_sig bytea NOT NULL,
-    valid_from bigint NOT NULL,
-    expire_withdraw bigint NOT NULL,
-    expire_deposit bigint NOT NULL,
-    expire_legal bigint NOT NULL,
-    coin_val bigint NOT NULL,
-    coin_frac integer NOT NULL,
-    fee_withdraw_val bigint NOT NULL,
-    fee_withdraw_frac integer NOT NULL,
-    fee_deposit_val bigint NOT NULL,
-    fee_deposit_frac integer NOT NULL,
-    fee_refresh_val bigint NOT NULL,
-    fee_refresh_frac integer NOT NULL,
-    fee_refund_val bigint NOT NULL,
-    fee_refund_frac integer NOT NULL,
-    CONSTRAINT denominations_denom_pub_hash_check CHECK 
((length(denom_pub_hash) = 64)),
-    CONSTRAINT denominations_master_pub_check CHECK ((length(master_pub) = 
32)),
-    CONSTRAINT denominations_master_sig_check CHECK ((length(master_sig) = 64))
-);
-
-
---
--- Name: TABLE denominations; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.denominations IS 'Main denominations table. All the 
coins the exchange knows about.';
-
-
---
--- Name: deposit_confirmations; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.deposit_confirmations (
-    master_pub bytea,
-    serial_id bigint NOT NULL,
-    h_contract_terms bytea NOT NULL,
-    h_wire bytea NOT NULL,
-    "timestamp" bigint NOT NULL,
-    refund_deadline bigint NOT NULL,
-    amount_without_fee_val bigint NOT NULL,
-    amount_without_fee_frac integer NOT NULL,
-    coin_pub bytea NOT NULL,
-    merchant_pub bytea NOT NULL,
-    exchange_sig bytea NOT NULL,
-    exchange_pub bytea NOT NULL,
-    master_sig bytea NOT NULL,
-    CONSTRAINT deposit_confirmations_coin_pub_check CHECK ((length(coin_pub) = 
32)),
-    CONSTRAINT deposit_confirmations_exchange_pub_check CHECK 
((length(exchange_pub) = 32)),
-    CONSTRAINT deposit_confirmations_exchange_sig_check CHECK 
((length(exchange_sig) = 64)),
-    CONSTRAINT deposit_confirmations_h_contract_terms_check CHECK 
((length(h_contract_terms) = 64)),
-    CONSTRAINT deposit_confirmations_h_wire_check CHECK ((length(h_wire) = 
64)),
-    CONSTRAINT deposit_confirmations_master_sig_check CHECK 
((length(master_sig) = 64)),
-    CONSTRAINT deposit_confirmations_merchant_pub_check CHECK 
((length(merchant_pub) = 32))
-);
-
-
---
--- Name: TABLE deposit_confirmations; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.deposit_confirmations IS 'deposit confirmation sent to 
us by merchants; we must check that the exchange reported these properly.';
-
-
---
--- Name: deposit_confirmations_serial_id_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.deposit_confirmations_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: deposit_confirmations_serial_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.deposit_confirmations_serial_id_seq OWNED BY 
public.deposit_confirmations.serial_id;
-
-
---
--- Name: deposits; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.deposits (
-    deposit_serial_id bigint NOT NULL,
-    coin_pub bytea NOT NULL,
-    amount_with_fee_val bigint NOT NULL,
-    amount_with_fee_frac integer NOT NULL,
-    "timestamp" bigint NOT NULL,
-    refund_deadline bigint NOT NULL,
-    wire_deadline bigint NOT NULL,
-    merchant_pub bytea NOT NULL,
-    h_contract_terms bytea NOT NULL,
-    h_wire bytea NOT NULL,
-    coin_sig bytea NOT NULL,
-    wire text NOT NULL,
-    tiny boolean DEFAULT false NOT NULL,
-    done boolean DEFAULT false NOT NULL,
-    CONSTRAINT deposits_coin_sig_check CHECK ((length(coin_sig) = 64)),
-    CONSTRAINT deposits_h_contract_terms_check CHECK 
((length(h_contract_terms) = 64)),
-    CONSTRAINT deposits_h_wire_check CHECK ((length(h_wire) = 64)),
-    CONSTRAINT deposits_merchant_pub_check CHECK ((length(merchant_pub) = 32))
-);
-
-
---
--- Name: TABLE deposits; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.deposits IS 'Deposits we have received and for which 
we need to make (aggregate) wire transfers (and manage refunds).';
-
-
---
--- Name: COLUMN deposits.tiny; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.deposits.tiny IS 'Set to TRUE if we decided that the 
amount is too small to ever trigger a wire transfer by itself (requires real 
aggregation)';
-
-
---
--- Name: COLUMN deposits.done; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.deposits.done IS 'Set to TRUE once we have included 
this deposit in some aggregate wire transfer to the merchant';
-
-
---
--- Name: deposits_deposit_serial_id_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.deposits_deposit_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: deposits_deposit_serial_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.deposits_deposit_serial_id_seq OWNED BY 
public.deposits.deposit_serial_id;
-
-
---
--- Name: django_content_type; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.django_content_type (
-    id integer NOT NULL,
-    app_label character varying(100) NOT NULL,
-    model character varying(100) NOT NULL
-);
-
-
---
--- Name: django_content_type_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.django_content_type_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: django_content_type_id_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.django_content_type_id_seq OWNED BY 
public.django_content_type.id;
-
-
---
--- Name: django_migrations; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.django_migrations (
-    id integer NOT NULL,
-    app character varying(255) NOT NULL,
-    name character varying(255) NOT NULL,
-    applied timestamp with time zone NOT NULL
-);
-
-
---
--- Name: django_migrations_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.django_migrations_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: django_migrations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.django_migrations_id_seq OWNED BY 
public.django_migrations.id;
-
-
---
--- Name: django_session; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.django_session (
-    session_key character varying(40) NOT NULL,
-    session_data text NOT NULL,
-    expire_date timestamp with time zone NOT NULL
-);
-
-
---
--- Name: exchange_wire_fees; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.exchange_wire_fees (
-    exchange_pub bytea NOT NULL,
-    h_wire_method bytea NOT NULL,
-    wire_fee_val bigint NOT NULL,
-    wire_fee_frac integer NOT NULL,
-    closing_fee_val bigint NOT NULL,
-    closing_fee_frac integer NOT NULL,
-    start_date bigint NOT NULL,
-    end_date bigint NOT NULL,
-    exchange_sig bytea NOT NULL,
-    CONSTRAINT exchange_wire_fees_exchange_pub_check CHECK 
((length(exchange_pub) = 32)),
-    CONSTRAINT exchange_wire_fees_exchange_sig_check CHECK 
((length(exchange_sig) = 64)),
-    CONSTRAINT exchange_wire_fees_h_wire_method_check CHECK 
((length(h_wire_method) = 64))
-);
-
-
---
--- Name: known_coins; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.known_coins (
-    coin_pub bytea NOT NULL,
-    denom_pub_hash bytea NOT NULL,
-    denom_sig bytea NOT NULL,
-    CONSTRAINT known_coins_coin_pub_check CHECK ((length(coin_pub) = 32))
-);
-
-
---
--- Name: TABLE known_coins; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.known_coins IS 'information about coins and their 
signatures, so we do not have to store the signatures more than once if a coin 
is involved in multiple operations';
-
-
---
--- Name: merchant_contract_terms; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_contract_terms (
-    order_id character varying NOT NULL,
-    merchant_pub bytea NOT NULL,
-    contract_terms bytea NOT NULL,
-    h_contract_terms bytea NOT NULL,
-    "timestamp" bigint NOT NULL,
-    row_id bigint NOT NULL,
-    paid boolean DEFAULT false NOT NULL,
-    CONSTRAINT merchant_contract_terms_h_contract_terms_check CHECK 
((length(h_contract_terms) = 64)),
-    CONSTRAINT merchant_contract_terms_merchant_pub_check CHECK 
((length(merchant_pub) = 32))
-);
-
-
---
--- Name: merchant_contract_terms_row_id_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.merchant_contract_terms_row_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: merchant_contract_terms_row_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.merchant_contract_terms_row_id_seq OWNED BY 
public.merchant_contract_terms.row_id;
-
-
---
--- Name: merchant_deposits; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_deposits (
-    h_contract_terms bytea NOT NULL,
-    merchant_pub bytea NOT NULL,
-    coin_pub bytea NOT NULL,
-    exchange_url character varying NOT NULL,
-    amount_with_fee_val bigint NOT NULL,
-    amount_with_fee_frac integer NOT NULL,
-    deposit_fee_val bigint NOT NULL,
-    deposit_fee_frac integer NOT NULL,
-    refund_fee_val bigint NOT NULL,
-    refund_fee_frac integer NOT NULL,
-    wire_fee_val bigint NOT NULL,
-    wire_fee_frac integer NOT NULL,
-    signkey_pub bytea NOT NULL,
-    exchange_proof bytea NOT NULL,
-    CONSTRAINT merchant_deposits_coin_pub_check CHECK ((length(coin_pub) = 
32)),
-    CONSTRAINT merchant_deposits_merchant_pub_check CHECK 
((length(merchant_pub) = 32)),
-    CONSTRAINT merchant_deposits_signkey_pub_check CHECK ((length(signkey_pub) 
= 32))
-);
-
-
---
--- Name: merchant_orders; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_orders (
-    order_id character varying NOT NULL,
-    merchant_pub bytea NOT NULL,
-    contract_terms bytea NOT NULL,
-    "timestamp" bigint NOT NULL,
-    CONSTRAINT merchant_orders_merchant_pub_check CHECK ((length(merchant_pub) 
= 32))
-);
-
-
---
--- Name: merchant_proofs; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_proofs (
-    exchange_url character varying NOT NULL,
-    wtid bytea NOT NULL,
-    execution_time bigint NOT NULL,
-    signkey_pub bytea NOT NULL,
-    proof bytea NOT NULL,
-    CONSTRAINT merchant_proofs_signkey_pub_check CHECK ((length(signkey_pub) = 
32)),
-    CONSTRAINT merchant_proofs_wtid_check CHECK ((length(wtid) = 32))
-);
-
-
---
--- Name: merchant_refunds; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_refunds (
-    rtransaction_id bigint NOT NULL,
-    merchant_pub bytea NOT NULL,
-    h_contract_terms bytea NOT NULL,
-    coin_pub bytea NOT NULL,
-    reason character varying NOT NULL,
-    refund_amount_val bigint NOT NULL,
-    refund_amount_frac integer NOT NULL,
-    refund_fee_val bigint NOT NULL,
-    refund_fee_frac integer NOT NULL,
-    CONSTRAINT merchant_refunds_coin_pub_check CHECK ((length(coin_pub) = 32)),
-    CONSTRAINT merchant_refunds_merchant_pub_check CHECK 
((length(merchant_pub) = 32))
-);
-
-
---
--- Name: merchant_refunds_rtransaction_id_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.merchant_refunds_rtransaction_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: merchant_refunds_rtransaction_id_seq; Type: SEQUENCE OWNED BY; 
Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.merchant_refunds_rtransaction_id_seq OWNED BY 
public.merchant_refunds.rtransaction_id;
-
-
---
--- Name: merchant_session_info; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_session_info (
-    session_id character varying NOT NULL,
-    fulfillment_url character varying NOT NULL,
-    order_id character varying NOT NULL,
-    merchant_pub bytea NOT NULL,
-    "timestamp" bigint NOT NULL,
-    CONSTRAINT merchant_session_info_merchant_pub_check CHECK 
((length(merchant_pub) = 32))
-);
-
-
---
--- Name: merchant_tip_pickups; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_tip_pickups (
-    tip_id bytea NOT NULL,
-    pickup_id bytea NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    CONSTRAINT merchant_tip_pickups_pickup_id_check CHECK ((length(pickup_id) 
= 64))
-);
-
-
---
--- Name: merchant_tip_reserve_credits; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_tip_reserve_credits (
-    reserve_priv bytea NOT NULL,
-    credit_uuid bytea NOT NULL,
-    "timestamp" bigint NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    CONSTRAINT merchant_tip_reserve_credits_credit_uuid_check CHECK 
((length(credit_uuid) = 64)),
-    CONSTRAINT merchant_tip_reserve_credits_reserve_priv_check CHECK 
((length(reserve_priv) = 32))
-);
-
-
---
--- Name: merchant_tip_reserves; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_tip_reserves (
-    reserve_priv bytea NOT NULL,
-    expiration bigint NOT NULL,
-    balance_val bigint NOT NULL,
-    balance_frac integer NOT NULL,
-    CONSTRAINT merchant_tip_reserves_reserve_priv_check CHECK 
((length(reserve_priv) = 32))
-);
-
-
---
--- Name: merchant_tips; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_tips (
-    reserve_priv bytea NOT NULL,
-    tip_id bytea NOT NULL,
-    exchange_url character varying NOT NULL,
-    justification character varying NOT NULL,
-    extra bytea NOT NULL,
-    "timestamp" bigint NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    left_val bigint NOT NULL,
-    left_frac integer NOT NULL,
-    CONSTRAINT merchant_tips_reserve_priv_check CHECK ((length(reserve_priv) = 
32)),
-    CONSTRAINT merchant_tips_tip_id_check CHECK ((length(tip_id) = 64))
-);
-
-
---
--- Name: merchant_transfers; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.merchant_transfers (
-    h_contract_terms bytea NOT NULL,
-    coin_pub bytea NOT NULL,
-    wtid bytea NOT NULL,
-    CONSTRAINT merchant_transfers_coin_pub_check CHECK ((length(coin_pub) = 
32)),
-    CONSTRAINT merchant_transfers_wtid_check CHECK ((length(wtid) = 32))
-);
-
-
---
--- Name: prewire; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.prewire (
-    prewire_uuid bigint NOT NULL,
-    type text NOT NULL,
-    finished boolean DEFAULT false NOT NULL,
-    buf bytea NOT NULL
-);
-
-
---
--- Name: TABLE prewire; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.prewire IS 'pre-commit data for wire transfers we are 
about to execute';
-
-
---
--- Name: prewire_prewire_uuid_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.prewire_prewire_uuid_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: prewire_prewire_uuid_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.prewire_prewire_uuid_seq OWNED BY 
public.prewire.prewire_uuid;
-
-
---
--- Name: recoup; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.recoup (
-    recoup_uuid bigint NOT NULL,
-    coin_pub bytea NOT NULL,
-    coin_sig bytea NOT NULL,
-    coin_blind bytea NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    "timestamp" bigint NOT NULL,
-    h_blind_ev bytea NOT NULL,
-    CONSTRAINT recoup_coin_blind_check CHECK ((length(coin_blind) = 32)),
-    CONSTRAINT recoup_coin_sig_check CHECK ((length(coin_sig) = 64))
-);
-
-
---
--- Name: TABLE recoup; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.recoup IS 'Information about recoups that were 
executed';
-
-
---
--- Name: COLUMN recoup.coin_pub; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.recoup.coin_pub IS 'Do not CASCADE ON DROP on the 
coin_pub, as we may keep the coin alive!';
-
-
---
--- Name: recoup_recoup_uuid_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.recoup_recoup_uuid_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: recoup_recoup_uuid_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.recoup_recoup_uuid_seq OWNED BY 
public.recoup.recoup_uuid;
-
-
---
--- Name: recoup_refresh; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.recoup_refresh (
-    recoup_refresh_uuid bigint NOT NULL,
-    coin_pub bytea NOT NULL,
-    coin_sig bytea NOT NULL,
-    coin_blind bytea NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    "timestamp" bigint NOT NULL,
-    h_blind_ev bytea NOT NULL,
-    CONSTRAINT recoup_refresh_coin_blind_check CHECK ((length(coin_blind) = 
32)),
-    CONSTRAINT recoup_refresh_coin_sig_check CHECK ((length(coin_sig) = 64))
-);
-
-
---
--- Name: COLUMN recoup_refresh.coin_pub; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON COLUMN public.recoup_refresh.coin_pub IS 'Do not CASCADE ON DROP on 
the coin_pub, as we may keep the coin alive!';
-
-
---
--- Name: recoup_refresh_recoup_refresh_uuid_seq; Type: SEQUENCE; Schema: 
public; Owner: -
---
-
-CREATE SEQUENCE public.recoup_refresh_recoup_refresh_uuid_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: recoup_refresh_recoup_refresh_uuid_seq; Type: SEQUENCE OWNED BY; 
Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.recoup_refresh_recoup_refresh_uuid_seq OWNED BY 
public.recoup_refresh.recoup_refresh_uuid;
-
-
---
--- Name: refresh_commitments; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.refresh_commitments (
-    melt_serial_id bigint NOT NULL,
-    rc bytea NOT NULL,
-    old_coin_pub bytea NOT NULL,
-    old_coin_sig bytea NOT NULL,
-    amount_with_fee_val bigint NOT NULL,
-    amount_with_fee_frac integer NOT NULL,
-    noreveal_index integer NOT NULL,
-    CONSTRAINT refresh_commitments_old_coin_sig_check CHECK 
((length(old_coin_sig) = 64)),
-    CONSTRAINT refresh_commitments_rc_check CHECK ((length(rc) = 64))
-);
-
-
---
--- Name: TABLE refresh_commitments; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.refresh_commitments IS 'Commitments made when melting 
coins and the gamma value chosen by the exchange.';
-
-
---
--- Name: refresh_commitments_melt_serial_id_seq; Type: SEQUENCE; Schema: 
public; Owner: -
---
-
-CREATE SEQUENCE public.refresh_commitments_melt_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: refresh_commitments_melt_serial_id_seq; Type: SEQUENCE OWNED BY; 
Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.refresh_commitments_melt_serial_id_seq OWNED BY 
public.refresh_commitments.melt_serial_id;
-
-
---
--- Name: refresh_revealed_coins; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.refresh_revealed_coins (
-    rc bytea NOT NULL,
-    freshcoin_index integer NOT NULL,
-    link_sig bytea NOT NULL,
-    denom_pub_hash bytea NOT NULL,
-    coin_ev bytea NOT NULL,
-    h_coin_ev bytea NOT NULL,
-    ev_sig bytea NOT NULL,
-    CONSTRAINT refresh_revealed_coins_h_coin_ev_check CHECK 
((length(h_coin_ev) = 64)),
-    CONSTRAINT refresh_revealed_coins_link_sig_check CHECK ((length(link_sig) 
= 64))
-);
-
-
---
--- Name: TABLE refresh_revealed_coins; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.refresh_revealed_coins IS 'Revelations about the new 
coins that are to be created during a melting session.';
-
-
---
--- Name: COLUMN refresh_revealed_coins.rc; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON COLUMN public.refresh_revealed_coins.rc IS 'refresh commitment 
identifying the melt operation';
-
-
---
--- Name: COLUMN refresh_revealed_coins.freshcoin_index; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON COLUMN public.refresh_revealed_coins.freshcoin_index IS 'index of 
the fresh coin being created (one melt operation may result in multiple fresh 
coins)';
-
-
---
--- Name: COLUMN refresh_revealed_coins.coin_ev; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON COLUMN public.refresh_revealed_coins.coin_ev IS 'envelope of the 
new coin to be signed';
-
-
---
--- Name: COLUMN refresh_revealed_coins.h_coin_ev; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON COLUMN public.refresh_revealed_coins.h_coin_ev IS 'hash of the 
envelope of the new coin to be signed (for lookups)';
-
-
---
--- Name: COLUMN refresh_revealed_coins.ev_sig; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON COLUMN public.refresh_revealed_coins.ev_sig IS 'exchange signature 
over the envelope';
-
-
---
--- Name: refresh_transfer_keys; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.refresh_transfer_keys (
-    rc bytea NOT NULL,
-    transfer_pub bytea NOT NULL,
-    transfer_privs bytea NOT NULL,
-    CONSTRAINT refresh_transfer_keys_transfer_pub_check CHECK 
((length(transfer_pub) = 32))
-);
-
-
---
--- Name: TABLE refresh_transfer_keys; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.refresh_transfer_keys IS 'Transfer keys of a refresh 
operation (the data revealed to the exchange).';
-
-
---
--- Name: COLUMN refresh_transfer_keys.rc; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON COLUMN public.refresh_transfer_keys.rc IS 'refresh commitment 
identifying the melt operation';
-
-
---
--- Name: COLUMN refresh_transfer_keys.transfer_pub; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON COLUMN public.refresh_transfer_keys.transfer_pub IS 'transfer 
public key for the gamma index';
-
-
---
--- Name: COLUMN refresh_transfer_keys.transfer_privs; Type: COMMENT; Schema: 
public; Owner: -
---
-
-COMMENT ON COLUMN public.refresh_transfer_keys.transfer_privs IS 'array of 
TALER_CNC_KAPPA - 1 transfer private keys that have been revealed, with the 
gamma entry being skipped';
-
-
---
--- Name: refunds; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.refunds (
-    refund_serial_id bigint NOT NULL,
-    coin_pub bytea NOT NULL,
-    merchant_pub bytea NOT NULL,
-    merchant_sig bytea NOT NULL,
-    h_contract_terms bytea NOT NULL,
-    rtransaction_id bigint NOT NULL,
-    amount_with_fee_val bigint NOT NULL,
-    amount_with_fee_frac integer NOT NULL,
-    CONSTRAINT refunds_h_contract_terms_check CHECK ((length(h_contract_terms) 
= 64)),
-    CONSTRAINT refunds_merchant_pub_check CHECK ((length(merchant_pub) = 32)),
-    CONSTRAINT refunds_merchant_sig_check CHECK ((length(merchant_sig) = 64))
-);
-
-
---
--- Name: TABLE refunds; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.refunds IS 'Data on coins that were refunded. 
Technically, refunds always apply against specific deposit operations involving 
a coin. The combination of coin_pub, merchant_pub, h_contract_terms and 
rtransaction_id MUST be unique, and we usually select by coin_pub so that one 
goes first.';
-
-
---
--- Name: COLUMN refunds.rtransaction_id; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON COLUMN public.refunds.rtransaction_id IS 'used by the merchant to 
make refunds unique in case the same coin for the same deposit gets a 
subsequent (higher) refund';
-
-
---
--- Name: refunds_refund_serial_id_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.refunds_refund_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: refunds_refund_serial_id_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.refunds_refund_serial_id_seq OWNED BY 
public.refunds.refund_serial_id;
-
-
---
--- Name: reserves; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.reserves (
-    reserve_pub bytea NOT NULL,
-    account_details text NOT NULL,
-    current_balance_val bigint NOT NULL,
-    current_balance_frac integer NOT NULL,
-    expiration_date bigint NOT NULL,
-    gc_date bigint NOT NULL,
-    CONSTRAINT reserves_reserve_pub_check CHECK ((length(reserve_pub) = 32))
-);
-
-
---
--- Name: TABLE reserves; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.reserves IS 'Summarizes the balance of a reserve. 
Updated when new funds are added or withdrawn.';
-
-
---
--- Name: COLUMN reserves.expiration_date; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON COLUMN public.reserves.expiration_date IS 'Used to trigger closing 
of reserves that have not been drained after some time';
-
-
---
--- Name: COLUMN reserves.gc_date; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON COLUMN public.reserves.gc_date IS 'Used to forget all information 
about a reserve during garbage collection';
-
-
---
--- Name: reserves_close; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.reserves_close (
-    close_uuid bigint NOT NULL,
-    reserve_pub bytea NOT NULL,
-    execution_date bigint NOT NULL,
-    wtid bytea NOT NULL,
-    receiver_account text NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    closing_fee_val bigint NOT NULL,
-    closing_fee_frac integer NOT NULL,
-    CONSTRAINT reserves_close_wtid_check CHECK ((length(wtid) = 32))
-);
-
-
---
--- Name: TABLE reserves_close; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.reserves_close IS 'wire transfers executed by the 
reserve to close reserves';
-
-
---
--- Name: reserves_close_close_uuid_seq; Type: SEQUENCE; Schema: public; Owner: 
-
---
-
-CREATE SEQUENCE public.reserves_close_close_uuid_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: reserves_close_close_uuid_seq; Type: SEQUENCE OWNED BY; Schema: 
public; Owner: -
---
-
-ALTER SEQUENCE public.reserves_close_close_uuid_seq OWNED BY 
public.reserves_close.close_uuid;
-
-
---
--- Name: reserves_in; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.reserves_in (
-    reserve_in_serial_id bigint NOT NULL,
-    reserve_pub bytea NOT NULL,
-    wire_reference bigint NOT NULL,
-    credit_val bigint NOT NULL,
-    credit_frac integer NOT NULL,
-    sender_account_details text NOT NULL,
-    exchange_account_section text NOT NULL,
-    execution_date bigint NOT NULL
-);
-
-
---
--- Name: TABLE reserves_in; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.reserves_in IS 'list of transfers of funds into the 
reserves, one per incoming wire transfer';
-
-
---
--- Name: reserves_in_reserve_in_serial_id_seq; Type: SEQUENCE; Schema: public; 
Owner: -
---
-
-CREATE SEQUENCE public.reserves_in_reserve_in_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: reserves_in_reserve_in_serial_id_seq; Type: SEQUENCE OWNED BY; 
Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.reserves_in_reserve_in_serial_id_seq OWNED BY 
public.reserves_in.reserve_in_serial_id;
-
-
---
--- Name: reserves_out; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.reserves_out (
-    reserve_out_serial_id bigint NOT NULL,
-    h_blind_ev bytea NOT NULL,
-    denom_pub_hash bytea NOT NULL,
-    denom_sig bytea NOT NULL,
-    reserve_pub bytea NOT NULL,
-    reserve_sig bytea NOT NULL,
-    execution_date bigint NOT NULL,
-    amount_with_fee_val bigint NOT NULL,
-    amount_with_fee_frac integer NOT NULL,
-    CONSTRAINT reserves_out_h_blind_ev_check CHECK ((length(h_blind_ev) = 64)),
-    CONSTRAINT reserves_out_reserve_sig_check CHECK ((length(reserve_sig) = 
64))
-);
-
-
---
--- Name: TABLE reserves_out; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.reserves_out IS 'Withdraw operations performed on 
reserves.';
-
-
---
--- Name: COLUMN reserves_out.h_blind_ev; Type: COMMENT; Schema: public; Owner: 
-
---
-
-COMMENT ON COLUMN public.reserves_out.h_blind_ev IS 'Hash of the blinded coin, 
used as primary key here so that broken clients that use a non-random coin or 
blinding factor fail to withdraw (otherwise they would fail on deposit when the 
coin is not unique there).';
-
-
---
--- Name: COLUMN reserves_out.denom_pub_hash; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON COLUMN public.reserves_out.denom_pub_hash IS 'We do not CASCADE ON 
DELETE here, we may keep the denomination data alive';
-
-
---
--- Name: reserves_out_reserve_out_serial_id_seq; Type: SEQUENCE; Schema: 
public; Owner: -
---
-
-CREATE SEQUENCE public.reserves_out_reserve_out_serial_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: reserves_out_reserve_out_serial_id_seq; Type: SEQUENCE OWNED BY; 
Schema: public; Owner: -
---
-
-ALTER SEQUENCE public.reserves_out_reserve_out_serial_id_seq OWNED BY 
public.reserves_out.reserve_out_serial_id;
-
-
---
--- Name: wire_auditor_account_progress; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.wire_auditor_account_progress (
-    master_pub bytea NOT NULL,
-    account_name text NOT NULL,
-    last_wire_reserve_in_serial_id bigint DEFAULT 0 NOT NULL,
-    last_wire_wire_out_serial_id bigint DEFAULT 0 NOT NULL,
-    wire_in_off bigint,
-    wire_out_off bigint
-);
-
-
---
--- Name: TABLE wire_auditor_account_progress; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON TABLE public.wire_auditor_account_progress IS 'information as to 
which transactions the auditor has processed in the exchange database.  Used 
for SELECTing the
- statements to process.  The indices include the last serial ID from the 
respective tables that we have processed. Thus, we need to select those table 
entries that are strictly larger (and process in monotonically increasing 
order).';
-
-
---
--- Name: wire_auditor_progress; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.wire_auditor_progress (
-    master_pub bytea NOT NULL,
-    last_timestamp bigint NOT NULL,
-    last_reserve_close_uuid bigint NOT NULL
-);
-
-
---
--- Name: wire_fee; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.wire_fee (
-    wire_method character varying NOT NULL,
-    start_date bigint NOT NULL,
-    end_date bigint NOT NULL,
-    wire_fee_val bigint NOT NULL,
-    wire_fee_frac integer NOT NULL,
-    closing_fee_val bigint NOT NULL,
-    closing_fee_frac integer NOT NULL,
-    master_sig bytea NOT NULL,
-    CONSTRAINT wire_fee_master_sig_check CHECK ((length(master_sig) = 64))
-);
-
-
---
--- Name: TABLE wire_fee; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.wire_fee IS 'list of the wire fees of this exchange, 
by date';
-
-
---
--- Name: wire_out; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.wire_out (
-    wireout_uuid bigint NOT NULL,
-    execution_date bigint NOT NULL,
-    wtid_raw bytea NOT NULL,
-    wire_target text NOT NULL,
-    exchange_account_section text NOT NULL,
-    amount_val bigint NOT NULL,
-    amount_frac integer NOT NULL,
-    CONSTRAINT wire_out_wtid_raw_check CHECK ((length(wtid_raw) = 32))
-);
-
-
---
--- Name: TABLE wire_out; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON TABLE public.wire_out IS 'wire transfers the exchange has executed';
-
-
---
--- Name: wire_out_wireout_uuid_seq; Type: SEQUENCE; Schema: public; Owner: -
---
-
-CREATE SEQUENCE public.wire_out_wireout_uuid_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
---
--- Name: wire_out_wireout_uuid_seq; Type: SEQUENCE OWNED BY; Schema: public; 
Owner: -
---
-
-ALTER SEQUENCE public.wire_out_wireout_uuid_seq OWNED BY 
public.wire_out.wireout_uuid;
-
-
---
--- Name: aggregation_tracking aggregation_serial_id; Type: DEFAULT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.aggregation_tracking ALTER COLUMN 
aggregation_serial_id SET DEFAULT 
nextval('public.aggregation_tracking_aggregation_serial_id_seq'::regclass);
-
-
---
--- Name: app_bankaccount account_no; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_bankaccount ALTER COLUMN account_no SET DEFAULT 
nextval('public.app_bankaccount_account_no_seq'::regclass);
-
-
---
--- Name: app_banktransaction id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_banktransaction ALTER COLUMN id SET DEFAULT 
nextval('public.app_banktransaction_id_seq'::regclass);
-
-
---
--- Name: auditor_reserves auditor_reserves_rowid; Type: DEFAULT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_reserves ALTER COLUMN auditor_reserves_rowid 
SET DEFAULT 
nextval('public.auditor_reserves_auditor_reserves_rowid_seq'::regclass);
-
-
---
--- Name: auth_group id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group ALTER COLUMN id SET DEFAULT 
nextval('public.auth_group_id_seq'::regclass);
-
-
---
--- Name: auth_group_permissions id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group_permissions ALTER COLUMN id SET DEFAULT 
nextval('public.auth_group_permissions_id_seq'::regclass);
-
-
---
--- Name: auth_permission id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_permission ALTER COLUMN id SET DEFAULT 
nextval('public.auth_permission_id_seq'::regclass);
-
-
---
--- Name: auth_user id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user ALTER COLUMN id SET DEFAULT 
nextval('public.auth_user_id_seq'::regclass);
-
-
---
--- Name: auth_user_groups id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_groups ALTER COLUMN id SET DEFAULT 
nextval('public.auth_user_groups_id_seq'::regclass);
-
-
---
--- Name: auth_user_user_permissions id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_user_permissions ALTER COLUMN id SET DEFAULT 
nextval('public.auth_user_user_permissions_id_seq'::regclass);
-
-
---
--- Name: denomination_revocations denom_revocations_serial_id; Type: DEFAULT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.denomination_revocations ALTER COLUMN 
denom_revocations_serial_id SET DEFAULT 
nextval('public.denomination_revocations_denom_revocations_serial_id_seq'::regclass);
-
-
---
--- Name: deposit_confirmations serial_id; Type: DEFAULT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.deposit_confirmations ALTER COLUMN serial_id SET 
DEFAULT nextval('public.deposit_confirmations_serial_id_seq'::regclass);
-
-
---
--- Name: deposits deposit_serial_id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.deposits ALTER COLUMN deposit_serial_id SET DEFAULT 
nextval('public.deposits_deposit_serial_id_seq'::regclass);
-
-
---
--- Name: django_content_type id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.django_content_type ALTER COLUMN id SET DEFAULT 
nextval('public.django_content_type_id_seq'::regclass);
-
-
---
--- Name: django_migrations id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.django_migrations ALTER COLUMN id SET DEFAULT 
nextval('public.django_migrations_id_seq'::regclass);
-
-
---
--- Name: merchant_contract_terms row_id; Type: DEFAULT; Schema: public; Owner: 
-
---
-
-ALTER TABLE ONLY public.merchant_contract_terms ALTER COLUMN row_id SET 
DEFAULT nextval('public.merchant_contract_terms_row_id_seq'::regclass);
-
-
---
--- Name: merchant_refunds rtransaction_id; Type: DEFAULT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.merchant_refunds ALTER COLUMN rtransaction_id SET 
DEFAULT nextval('public.merchant_refunds_rtransaction_id_seq'::regclass);
-
-
---
--- Name: prewire prewire_uuid; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.prewire ALTER COLUMN prewire_uuid SET DEFAULT 
nextval('public.prewire_prewire_uuid_seq'::regclass);
-
-
---
--- Name: recoup recoup_uuid; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.recoup ALTER COLUMN recoup_uuid SET DEFAULT 
nextval('public.recoup_recoup_uuid_seq'::regclass);
-
-
---
--- Name: recoup_refresh recoup_refresh_uuid; Type: DEFAULT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.recoup_refresh ALTER COLUMN recoup_refresh_uuid SET 
DEFAULT nextval('public.recoup_refresh_recoup_refresh_uuid_seq'::regclass);
-
-
---
--- Name: refresh_commitments melt_serial_id; Type: DEFAULT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.refresh_commitments ALTER COLUMN melt_serial_id SET 
DEFAULT nextval('public.refresh_commitments_melt_serial_id_seq'::regclass);
-
-
---
--- Name: refunds refund_serial_id; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refunds ALTER COLUMN refund_serial_id SET DEFAULT 
nextval('public.refunds_refund_serial_id_seq'::regclass);
-
-
---
--- Name: reserves_close close_uuid; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_close ALTER COLUMN close_uuid SET DEFAULT 
nextval('public.reserves_close_close_uuid_seq'::regclass);
-
-
---
--- Name: reserves_in reserve_in_serial_id; Type: DEFAULT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.reserves_in ALTER COLUMN reserve_in_serial_id SET 
DEFAULT nextval('public.reserves_in_reserve_in_serial_id_seq'::regclass);
-
-
---
--- Name: reserves_out reserve_out_serial_id; Type: DEFAULT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.reserves_out ALTER COLUMN reserve_out_serial_id SET 
DEFAULT nextval('public.reserves_out_reserve_out_serial_id_seq'::regclass);
-
-
---
--- Name: wire_out wireout_uuid; Type: DEFAULT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_out ALTER COLUMN wireout_uuid SET DEFAULT 
nextval('public.wire_out_wireout_uuid_seq'::regclass);
-
-
---
--- Data for Name: patches; Type: TABLE DATA; Schema: _v; Owner: -
---
-
-COPY _v.patches (patch_name, applied_tsz, applied_by, requires, conflicts) 
FROM stdin;
-exchange-0001  2020-03-26 19:26:49.92415+01    grothoff        {}      {}
-auditor-0001   2020-03-26 19:26:58.388906+01   grothoff        {}      {}
-merchant-0001  2020-03-26 19:27:01.737972+01   grothoff        {}      {}
-\.
-
-
---
--- Data for Name: aggregation_tracking; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.aggregation_tracking (aggregation_serial_id, deposit_serial_id, 
wtid_raw) FROM stdin;
-\.
-
-
---
--- Data for Name: app_bankaccount; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.app_bankaccount (is_public, account_no, balance, user_id) FROM 
stdin;
-t      3       +TESTKUDOS:0    3
-t      4       +TESTKUDOS:0    4
-t      5       +TESTKUDOS:0    5
-t      6       +TESTKUDOS:0    6
-t      7       +TESTKUDOS:0    7
-t      8       +TESTKUDOS:0    8
-f      9       +TESTKUDOS:0    9
-f      10      +TESTKUDOS:0    10
-t      1       -TESTKUDOS:100  1
-f      11      +TESTKUDOS:92   11
-t      2       +TESTKUDOS:8    2
-\.
-
-
---
--- Data for Name: app_banktransaction; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.app_banktransaction (id, amount, subject, date, cancelled, 
request_uid, credit_account_id, debit_account_id) FROM stdin;
-1      TESTKUDOS:100   Joining bonus   2020-03-26 19:27:05.284133+01   f       
245cba88-c96b-44f9-965f-636e193f978a    11      1
-2      TESTKUDOS:8     AVFJ2WDPP5DB6E37XP0R8MDA1C42W1Q94HNQZASW3061WR7C78V0    
2020-03-26 19:27:05.384338+01   f       d44d7057-e248-4204-bb8e-4d9b0f434ac2    
2       11
-\.
-
-
---
--- Data for Name: app_talerwithdrawoperation; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.app_talerwithdrawoperation (withdraw_id, amount, selection_done, 
confirmation_done, aborted, selected_reserve_pub, selected_exchange_account_id, 
withdraw_account_id) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_balance_summary; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_balance_summary (master_pub, denom_balance_val, 
denom_balance_frac, deposit_fee_balance_val, deposit_fee_balance_frac, 
melt_fee_balance_val, melt_fee_balance_frac, refund_fee_balance_val, 
refund_fee_balance_frac, risk_val, risk_frac, loss_val, loss_frac, 
irregular_recoup_val, irregular_recoup_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_denomination_pending; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.auditor_denomination_pending (denom_pub_hash, denom_balance_val, 
denom_balance_frac, denom_loss_val, denom_loss_frac, num_issued, 
denom_risk_val, denom_risk_frac, recoup_loss_val, recoup_loss_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_denominations; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_denominations (denom_pub_hash, master_pub, valid_from, 
expire_withdraw, expire_deposit, expire_legal, coin_val, coin_frac, 
fee_withdraw_val, fee_withdraw_frac, fee_deposit_val, fee_deposit_frac, 
fee_refresh_val, fee_refresh_frac, fee_refund_val, fee_refund_frac) FROM stdin;
-\\xb378eecaa2af3d60482c35dad80df06074d106d106c4a99c0bf17ff78a1c4932f6c61c244ccfc9bce512b86d2e1029b1d79d5f6fa165e29f200906e8a25a1e7b
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585247210000000        1585852010000000        1648319210000000        
1679855210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x0075376d6ad4bce8456a069e7bde945b7f9dd36d73480a147b55c2b06d18274dd666d2fcc28d94fcf6e8c401c26d462e2985a6714a59967886979c77f8ff6418
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585851710000000        1586456510000000        1648923710000000        
1680459710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x05a962dc843c0ff39ee8e5fc3762a8c73db6be6e8777ea3eb8b5cb4e3423f7eae716dd7826800bc9778e004eeff63d38e3e3496475c5574a6978660bff8d677e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1586456210000000        1587061010000000        1649528210000000        
1681064210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x6a947bbcb38b820a51840d9cc4f0ffae9a605d045f0661f391cb241120e2bf147dd7954aec09deb4e8b70ca0725a6fe0c6bfd486b8470773e0970d0293eb5b30
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587060710000000        1587665510000000        1650132710000000        
1681668710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x5b5d76d5af2cb092c8ff4b46d0d8e1d470bfdf010a456e290b5daf27633401624716c8cad6e767da252c78cf798c9e5bd5b71d34cf9d34788ec2efc8d38db026
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587665210000000        1588270010000000        1650737210000000        
1682273210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xa901213e3003e1b9010fe14ecec385d940c1062eb55665cabd1b7ecb4bb221b5dc4a504edc0a98341564c526e65f765c0c0339a9c4cacc14047f921974c0bc3a
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588269710000000        1588874510000000        1651341710000000        
1682877710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xd29aaeecf5fbf380c2e8fdacd14b7a23933face6bd10f28dcc749b777a399a7860a598f17359fe51a33aff7c4c832ce87e88c2c589933b029929782c2bccfbab
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588874210000000        1589479010000000        1651946210000000        
1683482210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xc56922dcda6e711bac6a7c8f3bd1539b2b5a7bfe9332832401e604ac2dd73a44da2209ab79bfa3113f3b37fbf7f5a01523e894f4fe18c1570544b4c83491eb2e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1589478710000000        1590083510000000        1652550710000000        
1684086710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x3755790ee6224cfff6c5db1d30eb3104b44998e1c3af8fbde9e24e8a11fb6ea6b48defbcf9d1503f8f7f58562ea5839e7133a054a6ac27794edb1a82aa9549e1
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590083210000000        1590688010000000        1653155210000000        
1684691210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x2a0033891df149843997e3a479c447991380cdc13b804333f3089f25d0025eb810b3488384acf97a43f0b56f234a799febb0933bf2fd4e8b89e4cb8927558cce
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590687710000000        1591292510000000        1653759710000000        
1685295710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x71d2de23e29bafed8c56373de5e7b25855b9160a2539b3535d7a9643548f8040dfb496895221925236b764817108a9a4ebca9690de96b7b141b5bdd9e0b9c070
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591292210000000        1591897010000000        1654364210000000        
1685900210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xf2b3041ac316e2fa5656ed3035d55de12c428409518854086a1f9167d660e76ffe76a1762d7561011380582dadbca08304b398b0e7a8001c1d9b6d283690b7a1
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591896710000000        1592501510000000        1654968710000000        
1686504710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x7cce87953b40814584186cf6d8a027decdeaf0abc91e3a79d5881b9706924e689e652005414c1ae373ab06482106a09ea6ae0a490a0ed665fc0f78cd38241292
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1592501210000000        1593106010000000        1655573210000000        
1687109210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xa9558be38da8ff07c79fdc8a2d49e50ccc1ce8d2326e58fca362b8f28c46e140ddd0aa94d6db59a384f28ba935825949d565f0be8967fd2d052167d3efcf23df
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593105710000000        1593710510000000        1656177710000000        
1687713710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x26e839b7a0dbf7a50786189671b5f91235fe012177dded0a65073b946cd2012e0887c8d659191c8eb3ecd7ec4a9881bd1af4d0ce834c20bceba82ba222429d75
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593710210000000        1594315010000000        1656782210000000        
1688318210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x93521fafe0753b9ac944df2b5088764539c41564d4c8659b5b64b05d1673526fb51035aa5cf4fcf3a70797435e205ad15b8b801d4822579c209828f91c34950c
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594314710000000        1594919510000000        1657386710000000        
1688922710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x611216fe1f0d351925360b2e5f504e6ff857d7d90ab0731d7e121223eafac584c35e1f587980dbb950a83ef93f46e85da0b35973607a3bb417c4e9ba105643d8
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594919210000000        1595524010000000        1657991210000000        
1689527210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x1cd5380661be05eee2aa2b9a7885eacb8c70fbadcb3a0f9f5f5190dfd699f8f3067fc8c9453b7037fe6de9bc84b76d3018e4e9bc8e535b36b736aeb6e5e15ca7
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1595523710000000        1596128510000000        1658595710000000        
1690131710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xd6a0f2c0e038bc72508e4024ebdf3b4ac6666a9494748149210a13e17cabd8b5c1386ea458ecd3a0af132791a7e4ef4919c86b2fed5791d03e12924c1089a5eb
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596128210000000        1596733010000000        1659200210000000        
1690736210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xa405466aa03b97274d8f093b0477c616a58532684a25de6153fd19affe58caa58d00768dc2c8b6ce514a80c4ed77e6d0385d9648039d39639d6631dec2766f4c
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596732710000000        1597337510000000        1659804710000000        
1691340710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x064a5c17b5a90e46f58604436d34a2660cf06f383e4e3a449d10e98d726b231c399688bd1b216798091f0d1e2ce1325d84995eb04dc71ce5b1ea75c9f77847e4
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597337210000000        1597942010000000        1660409210000000        
1691945210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x48ed78d94d51217716a001c9364ba73d6f418f1783455ae18815fe288b7f25494ad56b2cfebbee2005e57a6ecd2352ca0c8101628ef8072a5946b2cc0c93051e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597941710000000        1598546510000000        1661013710000000        
1692549710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x63dac59cab8c7778c124ce13ec041a319a198c583c42604bce00bfd294f8b65d8cd382dab81f1e19c0500da84c41847a8a3d2f6362662d748d83054e29ce83eb
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1598546210000000        1599151010000000        1661618210000000        
1693154210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x151533270a1b5cc2bc2257bf80b55700a8229aaee5153a7cbbfae69a60221a6dc9a0b6580fa57389a3e542d5e16070a7b1b1106b4b534d0a7007f500619f51b4
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599150710000000        1599755510000000        1662222710000000        
1693758710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x6ea4274729ad9eafc072e4ad474ef802fdaa1584341adfef43043e369187fd63796d6787a4025464ea07e428b2316c60b4116da2068e2af9a6749e63586b1809
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599755210000000        1600360010000000        1662827210000000        
1694363210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x7b4b20b04b041348520fe2c5c9a449d3ef883ebecaeb5a60f03971a911f51cf1e281c328785b0fb1ee28c521ea195969c259ff54532e2ab83c3feea5f8a5c4d2
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600359710000000        1600964510000000        1663431710000000        
1694967710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xd2e06593f7acfc46946e23929994d69ed4316a2ea9eae0acbba7584224358d444fc2c8dc74a0174253362d976b647eea3353c678c0188901731cd35c037a5172
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600964210000000        1601569010000000        1664036210000000        
1695572210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x5325201602106788cec43e0b1ca568904591b32a528a563ef959a5e97fab8a51618667ba28e18821976bb697a3adb1d814e33bdabd37db0c21640e63bbea9d4c
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1601568710000000        1602173510000000        1664640710000000        
1696176710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xe27dc2dc8aca4fc4c55ed955fedde2c35f1f1835eaa8b5e8142fac5287516038c24deae42e9ab8602905c6919ac8fb9727822bdb2962c9506ce4ab37864f9ca1
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602173210000000        1602778010000000        1665245210000000        
1696781210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x1264a2f5b5c378ee5837971f9e5a9a4338a47eaf72961bacb241e907cb891ae4766aab8369bab91b84b39b31c239a484a2febcce7b551d1da5c1f2e1b9980f15
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602777710000000        1603382510000000        1665849710000000        
1697385710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x454b79a65edad8b2091105870ac85fe522e9230e03a1f5b9049e5d03a2577146287ffa632df54ce33d361b920102af8203f2f2123133c6aa6809975e11226d2c
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603382210000000        1603987010000000        1666454210000000        
1697990210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x9dc566a04f9a3a41870aaed2a04663f4fe8fd5d7b494a41d73d5045fcf180bf97facb61e98fcc6eaf9b688af96fc4abf4a58b6b3d8b42b4ca311b8d8c02650b0
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603986710000000        1604591510000000        1667058710000000        
1698594710000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xa1e69176cc4061fb32a1385394e4ccee48d1549914129ccc18ed538f3a5c7c9fa2673b953c681cf3cb35b55740256937c3eaaa440cba6d7c8dd498acf50d9ef3
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1604591210000000        1605196010000000        1667663210000000        
1699199210000000        10      0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x770c748e581e8ed7edea219a09ecb0018a2015d5a8017f746511950f5da1c4ad1ded37a5f054bb1b0b8902cbd3767f9b0cf4e0a8e5a8f29bf555eb89dfe78fad
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585247210000000        1585852010000000        1648319210000000        
1679855210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x478fe9f5af3431c4d3eb0041181970ebfc4ef63e15f712f3f0882bf6ad45c14698ac62d1c58b687b3811de87e2a3f6bad2a04382e70b98e225680285fad80678
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585851710000000        1586456510000000        1648923710000000        
1680459710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xd24ed264c3aed6dc5e0b038789f8b96c7a39e5afad1a6d1152e7522dce16cb07057c685ebb3ec13c4d813e7526934a0bedae3a3f69ff5ed67b17ce19c3900d07
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1586456210000000        1587061010000000        1649528210000000        
1681064210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x423cb1aa741ab0a5237c1a1e96d8564a5cd1a4e1cc092690215c66d33c2ac3bc55d265997f49cb54405ba72c621465571b26dc781c6fc224ebdd418042540ffe
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587060710000000        1587665510000000        1650132710000000        
1681668710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xd628b203825e5c1d6f06fc772be687e4b1236e8525660bebc08612c7d985f1f55c2d01e32f26a994ee775a5d425c1c02d8c75ecc00fc90ede6f83fea0a5e090d
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587665210000000        1588270010000000        1650737210000000        
1682273210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xea07a69a2e207613ee0342ac42375a512a5de80c2de1fe45b8e02fc088afc54e57800714896492d7592f1760ce39a52b2e993f188ae22af2b581338541df9e6d
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588269710000000        1588874510000000        1651341710000000        
1682877710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xb0e17ff4a5cbef557de82ff930b13011bd3f3ec7c9ae048146acacaccfabef30fd1dfe9c431391293ba9c6f2ef4fcc605d0c2f2b6037fe50d064e16ef46725fa
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588874210000000        1589479010000000        1651946210000000        
1683482210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xaa603aecf389058bad8639cb59cc294c2e07810582bc742d9464b9b1ce1db3c34c6acd1d6ddc15b392e59ea35c1950134adc777d0d7f1f374783d4d671c250c9
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1589478710000000        1590083510000000        1652550710000000        
1684086710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xea6820ab6c18df81c1e83382b22e376a1f0e32ca3cf44b698f2d045e0211d61b91ad2eb23223038fae7ead0ad8151569f7d4ab19d457342fb1092ddb8acb0448
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590083210000000        1590688010000000        1653155210000000        
1684691210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x9031081bcbc575982c7ef830a3c295e8bf53ae135da5a0a36dd0a8798b9e80730f0dfafae43181eecdcd7f4b5f2e8d92461e9285d3344ede49e6b8f0abbdf990
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590687710000000        1591292510000000        1653759710000000        
1685295710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xc9c8855f6bf389672a04ffa463cb17a978cd60de6fff056c4babe6e4714405789a117e83f7d16ac0994f12399a18821f02518ffc24b69dc54e1b449d727244af
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591292210000000        1591897010000000        1654364210000000        
1685900210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x34f12718d044564fb64907fd6da488af13745f71fa519a2241f2ad66173e328c25ab029acb0614d9f455517f2a5ea151b503ac40d765d8739e32611f938357fa
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591896710000000        1592501510000000        1654968710000000        
1686504710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xd0b0025e5f0fe1b3b63b82dd8d3622f9bf597ca75ee456db436fb9b70feab75b2addf53d418da957197cb831cb9f24815f9260b13c58a21598b17164e99a6db9
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1592501210000000        1593106010000000        1655573210000000        
1687109210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xa201d1f554ed771eacff448c58b847a075cf2e26067dbfe4341ed0d7cac664ed923f67736459c56e2e35ea662eb9cf6b3cd72ef9de03b423513c1553a004eda6
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593105710000000        1593710510000000        1656177710000000        
1687713710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x8418bf8f77a622bf35ada66becc880478e3d21636e7bc67eb16583f06e384f6d36c54a5b3308723fbaf976bbbee491b89864db5849e0143c3f2ec32b8a4e7904
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593710210000000        1594315010000000        1656782210000000        
1688318210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xf203968c6583ca909214cdfcedee187f3eeb9439ec533326304146787f4b7de96c14eef9d0e76741901125b166be7476143886790e6affdf8d3ce03090da6ba8
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594314710000000        1594919510000000        1657386710000000        
1688922710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xec3dcd118571b36d0d66a591fc847e3e631b48714c8aba050eba1320212c084b99aed3ca443a8bc0962fa0022da729eb122a26a4fd49b398d57c948346390d3c
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594919210000000        1595524010000000        1657991210000000        
1689527210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xb2533b2ef6147c934a80bb385287ddd0a56db64abcb50e017c9cf292727ef48b9fd71e2ca5a655b1260c8d07bb89612c76faaba2a882c9fc32f06f813c688704
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1595523710000000        1596128510000000        1658595710000000        
1690131710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x5c42d74048f0f95be8cbdd401f5c52404c1c841218797be83c623b592355b3dc5c8345e16c1057e02052555bf341fb79236a27a189f90b9f6fd01b0e5480ae2c
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596128210000000        1596733010000000        1659200210000000        
1690736210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xfa4c794cd00de8256058a2f2fe0db828dce524248d2948659c9dd954baa2664d82a291a2ec9d29a0402822a6039723ae60b35d40ad23098ff35f1501eee05d2e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596732710000000        1597337510000000        1659804710000000        
1691340710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xc2c67403edabb6712ffd28584485f924ed8bfa9bbe8fc92e79c0fe06e29a0ea908894601bc67f483414ceab1c0e2014ad072fa9d50d039a4f15996b0cf7bd322
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597337210000000        1597942010000000        1660409210000000        
1691945210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x1265c56f0ff9d983edf4116e74381bf08002d13b16450395bedf89b768c41509cbb84cea3c37383ede857bd2e7822db7201b0bb8009937fbee558087cc5606c0
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597941710000000        1598546510000000        1661013710000000        
1692549710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x48e61492b0edb65f7f30404ed9bbd1df09e6d6b02946663480b56b99dd6501f0d8c3cf1f4836a67d8040af93029ad73ce05015235c07c26b3347a24c813f8994
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1598546210000000        1599151010000000        1661618210000000        
1693154210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xe41e7a792cce6eb2fadc32efbfa1668b09e6835b4dd36573fddf1169b738adb48abb9f265bfa4442f58690d8b88cdcf553ee57356f1bde96c98aaadd0004b45b
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599150710000000        1599755510000000        1662222710000000        
1693758710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x932ff95ddb379cb1b5b4d30c2306072cb558a845ff69e396de62d8ccb9deeda2ed96a7c1e624f9aab477289533cf07b4642a3bdc06f5410cc3aab2f8b8aa00fe
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599755210000000        1600360010000000        1662827210000000        
1694363210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xa892380640102dbfdb06bf698d3985c890ef7879b885a999a5021a5c2631217592861d5cf27705f7035ec16e1b284dc5d1add6a5e5ea4192358ccf6951b9fbf6
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600359710000000        1600964510000000        1663431710000000        
1694967710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xc4b2f765266e0c216ca5a0ee39d9f3268d4bf529c808b890a4a3355a1f7a9e962df89c835dd3ccddfb20879281aad895833d9292fd7b4394a3c8d0f0b1552d69
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600964210000000        1601569010000000        1664036210000000        
1695572210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xae96c3dda1bc040dd9f30f16d9118e16237a56decc1badf5e918805f3959dbcdcc206190ce9a81aa06be999899c187f86a112a76c5331eb8635537a0d1597a37
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1601568710000000        1602173510000000        1664640710000000        
1696176710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xe9652c2e421600735f4b580ff9d71ea40ebbe54606411e484decec3b61abf37d7a921d9320a69f1806652b4c7e9c0f5d7e5c4154015f7ca2fbee3214f8d0f875
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602173210000000        1602778010000000        1665245210000000        
1696781210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x177a0deae7b9263287cd88fea9dff0667fefadced9558b7374215c0abd40b7f50bc2fb6c488f198b0efe8dfbf96ccc3273ccdae095e7909f4764717531cf1e04
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602777710000000        1603382510000000        1665849710000000        
1697385710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xe9da8f472d16740cea65dab706ef151172a45ce8c48b92196b712277d12c9ad43089503c7bc2e2c98daa64d20969fc082f924c6b19eaec3e8e4aed1f9df273ff
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603382210000000        1603987010000000        1666454210000000        
1697990210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\x83bb4ce6e18f7da1119c219e29fa91ab9d22de9a1612154b7e1c5841f88264310025d0928586feb554229f902a105e3bb6636f20e6c42f7e41529a78594d5e00
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603986710000000        1604591510000000        1667058710000000        
1698594710000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xf2435f6d2b47158c77f3c7057fdc9bb41c30b2937f84c5c6b6cdd3ddfae22bf88b1e5f86dae495349f2bea4a43914e82dac390c23553d5d1b256d01136aece17
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1604591210000000        1605196010000000        1667663210000000        
1699199210000000        8       0       0       5000000 0       2000000 0       
3000000 0       4000000
-\\xb2b398d560e595d6d879842cd209cc84c924a57538ffe918aa6f3107492495740d2dadd63f34109c3a19caa665eabb781359cac5c496e56a36bfc6926d3a45a8
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585247210000000        1585852010000000        1648319210000000        
1679855210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x22104ae3f0d6f6e6579cb6c7e00f4ce253150e2fecb6610d64f5a0643b628c38f6bf26565b91221a9d53b2af71be535bbde0ab3ef0266302668b4683708dc28c
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585851710000000        1586456510000000        1648923710000000        
1680459710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x76697f4126c154b222b4c8e3f87e1c4aebd70a13aa1b73817e97bac1a03af9f8f6eb6008e0fb5fd0a9c8d147f96e3a6d48abe0f322969a8435081ddfbc8c56d7
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1586456210000000        1587061010000000        1649528210000000        
1681064210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x83a1afd9a1b99a4d7824bb878db71db8b8718daab4429c879f55edda6c7050ed8efd60ef95b84af213dbdbbbe283bb84fb32817a8bd2476de1d563a7ae3940f7
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587060710000000        1587665510000000        1650132710000000        
1681668710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xb08a0f5ed1b5859b7fdf907c5cfa6439e79f21ef48dfbf5c93b7e7ba10262c0652e5b4ea64dca448eda615d06b851d85773a6a4d94e2fa210c7dc9e6730f222f
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587665210000000        1588270010000000        1650737210000000        
1682273210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xabfb9c9fcaec888f4c41cc0caa0697e857c7438ffd5b44ad31c6a03706e9f507e47b84042a40b40bbfce9ac3086337f1f93a3dd6c73b81b5dbe6b8008d0b195d
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588269710000000        1588874510000000        1651341710000000        
1682877710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xd7b3a005ecef0e48d0c0c27e41ca25f45bfbb4fb379544bc7294645a82afd617380b61409830ebfca9f4b88937ea01cfbac87ebd7dd4c00923d53a899782d5a0
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588874210000000        1589479010000000        1651946210000000        
1683482210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x736e42a1f4bb9a49045220bf4024995bcd982acfc61e23f515ac426f922fa9b29d757095b891a0e25b8e225c227046d744a00bb26172d14e0f1a1fb0d00f9daf
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1589478710000000        1590083510000000        1652550710000000        
1684086710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xc3765433d6e727f0b51d6b2e10c9bc10a8e6beca70e57904bd130ca6d72c72015f6e31ee9e66706fe978576b4e0e6d2f956f775cfada9d1a419cdfad6aec15d9
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590083210000000        1590688010000000        1653155210000000        
1684691210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x77f3cda2f035ae31416334c127cc558f2fe9ac11a828693d2dd58369cc372bc9529bb59abaeaa9330f681aff4e954af7f71f4af57c61a2a1d0edccf64808d072
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590687710000000        1591292510000000        1653759710000000        
1685295710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x68b9a7b30a6319213df3410e1ba3f51707435d5cbf0a6edcc56c8954a5756d61f1e600be8a4f39fe6424e184995c1dda8515fe26ba5e448a8b833e827bf7a831
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591292210000000        1591897010000000        1654364210000000        
1685900210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x1df3e99efd724a6c0dc0a2823ac9166edbcf1bd7a6cb0413866babc471686c59097c77538a86207890150aedd4185f4510e6818e4c750746101540e32b715b05
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591896710000000        1592501510000000        1654968710000000        
1686504710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x5f05d950f1890fccb8485c90bb3dd12593a54a28214db64eb38cb8717b68adc26156f8487ae3559c289047fd628688ac6f5631282c4e5c388842291bb46f3824
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1592501210000000        1593106010000000        1655573210000000        
1687109210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xe2260b2f3dccab0bcb338cc2882486ec3d820dd90bce313c98fa1a585373c12258ec5e6b03cbb1a3ad3a9f05e37e93f84f101b917a0dcacc56b0556e35fd4370
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593105710000000        1593710510000000        1656177710000000        
1687713710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x9940f65d34ead9955365a9a662346df1df231f59b35d11647f1dc539978c123984f76b40d72c82c8959eaa4a4c43718d1a9dde9cd1b355f4516373c1d71ca80d
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593710210000000        1594315010000000        1656782210000000        
1688318210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xaafbd0f00ba4171f53f308074294c05c4a89d70c82bfb22e3bf301d5a612d70492a75d0d7f06a2bce5375d826bcebc537faae1c904f51e84c8fe02de79b9f1ea
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594314710000000        1594919510000000        1657386710000000        
1688922710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x9f7e3c4dfad9eab80fdaadf26b544e5dd077a53bec8d16299774b0414b2968f699fd109f5890c286774d40adcc2c0058282dd91c1044e95a14fb0952a68f92cf
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594919210000000        1595524010000000        1657991210000000        
1689527210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x657bd65e4f96a0f101b424398e3027c407b429c748304835b2785e8a102cc0dc7eb0b64a4b4cd334114ce8b8d15ca7a54144fd93438b842da690e2e16fc00a0f
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1595523710000000        1596128510000000        1658595710000000        
1690131710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xabf5ac2d1d162a67e34eb3c18495ef0f10cf1fe91ac95034ae74573a4917a8e3fac9df84bf7627fedbf6635a3ee9b63c2dac558272f4f33692ba7553f2460b23
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596128210000000        1596733010000000        1659200210000000        
1690736210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xb18c75b760c19d74eaf60640c27cdca32e617e79fa375af367253fd5d82de0ffcb2cac275e10fa34414c7e487c022e1cc8cc0a4ff1b6aea6699044db55a2d6e8
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596732710000000        1597337510000000        1659804710000000        
1691340710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xc8f4067b6df97c0f776882147e3050ee7fe6515d36bb3543f64d86a421ffc829e6223d7574140a69dbcaf1d9c2adfac04c20eaee5f9fda7647e3ade21fc89d58
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597337210000000        1597942010000000        1660409210000000        
1691945210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x59cdf5b4960217fb40fb89197ff524d7d07d85ea9e8a86ff2df1de83168834b6718e40d0311781d494418d60d4da3c2c74993e658f4810fe29c921c79e70abea
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597941710000000        1598546510000000        1661013710000000        
1692549710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x0cd102d8a79598cadba8953351ca90d4e0fc6dfd400c28a8dc5a13a40d22baa877ebaa8b1f5783d37f7ce24a4da699a11299ce7d0243177969c7478e9ab0e9c3
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1598546210000000        1599151010000000        1661618210000000        
1693154210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x55132d223a1cc81ed6d1520e1479781932eae0786a8d966204533d8ac2acf6bda3bfc29f4e2c638e58e1403dff7a755e90cc82fc87ea19b7230c7fe8d29f07f2
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599150710000000        1599755510000000        1662222710000000        
1693758710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xd712b1d48df298318617323fcadd4932df3972f52d8a0f715e185ab1b35138265e752ea28a2391aa65717e0cf99f18167c397266b3daa7142675dc12920f26a0
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599755210000000        1600360010000000        1662827210000000        
1694363210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x64b9bb4270e35f24aa1ff42fa24e37f091d6897743ef2a33b45de3a901cfa1358fe1c8b0b5c8976a77e2cbd70b3fcf1656658ceec5498c64c2f3e441232d6bf6
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600359710000000        1600964510000000        1663431710000000        
1694967710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xea0a144ba2b13f631d017472caf6126fa74a406b15ef655d21a0afb990d73af47295af21864089594cddb95b929c3e7d573e1fca7b46cdaf0d5a947638b4e21e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600964210000000        1601569010000000        1664036210000000        
1695572210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x98a8e152432ccca7f72f9e1ce4161822df6b989dae89f1fb84f81ea01b97d8badd8d9cda5fbde90fa28f048eee5f72525e793edbd1172867f1d3b45d2d12b5eb
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1601568710000000        1602173510000000        1664640710000000        
1696176710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xc56873a3aaa4f1c03b07956ba80407614f95cef4a964080dbff67850fde6e45b51ef838e1fd118d6a2220fc6fa7d66581a33663cb77417b240b3ec5e5dd379bd
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602173210000000        1602778010000000        1665245210000000        
1696781210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x9600561209bfd7c43d2342a93f5f2a33b249d1edec0d8494e93731fef49c9111bb03a10ceb809566187fd3664ce6ee38eacb489e8537a74759c99d137082e57f
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602777710000000        1603382510000000        1665849710000000        
1697385710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x546e71f08f7965f19aed709f2e1d446d175caa3665353a26587032dc1a20d09d7fba8244bfe5257c9701b0a5325f658945b4e45a3f8a396b40c8710fdd5141de
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603382210000000        1603987010000000        1666454210000000        
1697990210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xa59076edbc3104a91b98a27be3f166e733b3f412041c0594b27927f28a3e9ce8ccf495d341627a0372dcca6ab90d22743d7a9c5b47ce4c1240c49f0a870390fb
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603986710000000        1604591510000000        1667058710000000        
1698594710000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\xdb58657fba4f2bd0434188927b298e64b3d6a850c8cee9d6361dbcf1551a4fee9476036aca0b125dae93b76b4f18c4a1714e122c994d0d894bb5399ee88c99fb
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1604591210000000        1605196010000000        1667663210000000        
1699199210000000        5       0       0       1000000 0       1000000 0       
3000000 0       1000000
-\\x133ec98fa5d8efee9e3db8305dbf2710c92fead62b0e5498cd3b6327a08bcda6829d723b7030edfaefd254544ee98919cb79ae488d288f0b44e2398b47543cf1
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585247210000000        1585852010000000        1648319210000000        
1679855210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x596dd70417dea3f96b72decf73ebbee411295403914758bcc5d562d1232ad6aa8b14857b58e1cf9ae9b1535ffe4fbdeb4e9b6d67f0739173b64d9bfab00c1f0c
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585851710000000        1586456510000000        1648923710000000        
1680459710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x5557667cab72b0e107bcf82f6afca038342e4dc9a1c9ad16e03dc7f8b087ef861fdfaf39c755ca5f63323740dd13edbbb844a72769442659736031ab8dc9f825
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1586456210000000        1587061010000000        1649528210000000        
1681064210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x117efb8a2696ee71b862baf5718e5e897aa7b454c0b71731a8c51e174d6f47f0fb5f2b3e863b62242ab49a94f4a8c3b6adcc4c33e1f4f8eba0d0f2ab121a136d
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587060710000000        1587665510000000        1650132710000000        
1681668710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x8ba1aedd039e8a27c23c673551ec9036efeed66998fb3371591db8ffd4a3782ef69b6a62969744c9c2052c40cb4600a8a1adc5bf731d0a4f76bb882fb7f20882
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587665210000000        1588270010000000        1650737210000000        
1682273210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xf67f29265d2ff217d3b10a405f10948095527a1130bd9940b449ef76bb911c4fccb4b2e3d16d7e032f91a5eb71ab1d4a67df4430f69707ac71b5d39b30659f3b
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588269710000000        1588874510000000        1651341710000000        
1682877710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x4e8ce661c04af3c5b33513911ecbfa3d939740d19c73e1a988633398cb0ed4cdf038c42bfa3ee51b1161ac21004c42eabe557d045ee33453c9c9bfeebeaaf4ff
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588874210000000        1589479010000000        1651946210000000        
1683482210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x86902375dc166eb59ad208aa55a5f6b1fd98e00820ae55c82dff32b9cb24691432b12e6fe3132e2175d8de54a95ac4057aa709eb31772a40bdb66aabb1b2d66f
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1589478710000000        1590083510000000        1652550710000000        
1684086710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xc98410a63b5283e3fd3746f4f1d40429e185eb675a490aea0355d459d8148cdf07414dd52086902b048bb38c41d9f2e062d66c8a5215cb78c1638bfae90e2eb4
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590083210000000        1590688010000000        1653155210000000        
1684691210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xa11b8c9834c5f253ac0d6e7887de20cbb41f0085b2f7e35b50ff8795c062865534f17b131199845cfb025335933aec53a25c93956bc52362bcdaa51d33a88d99
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590687710000000        1591292510000000        1653759710000000        
1685295710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x50740bd39f5bccab5f3d5d5d0450a3af3d5100e061a2fa8101a843704511e51d9f3049b060e68a5fca43e954a553d64ac575418cfe28380793db72e7a85d5459
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591292210000000        1591897010000000        1654364210000000        
1685900210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xd8f913b6171b665b34523910b161f296d7ad1f04a20291a81c295c2929b4cf8c08ffdbef97042e263d93b82ee12002caaab69d2692c15fed75a271075182a242
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591896710000000        1592501510000000        1654968710000000        
1686504710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x143ca07a3017510fed894746142d6072e1d36266c75ebde7f9ced543ab224acb252e02ebd9900eddee6f804f9991c44eb6740605ede5aa81c7d19239301dc03a
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1592501210000000        1593106010000000        1655573210000000        
1687109210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x2e0a60b017910b147f18237c9e69a9a88f541d22426c3260589c010cdb9213a264353c43d507d17a0f7574672ce0d4d3404172c3864702a9be351bbd46542803
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593105710000000        1593710510000000        1656177710000000        
1687713710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x68cd82c929fec87a096fbfc4f6da596342ed86a6f8e90862f8e459a14d26849f811f28e9898c566c90748360190632a00539bb9b1dbc12dced2726034c60870f
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593710210000000        1594315010000000        1656782210000000        
1688318210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x20d3f42ca922c4f58ed26eec2f86c77495d9b48d4f0c04f5f1ec99d1f4fb98839cec4b6edced97bc8fa7f12276e6b9736df2b41fe94d27e314fc2587acf393d7
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594314710000000        1594919510000000        1657386710000000        
1688922710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x5985c9aa64ca1f29c6faf3bc713c948138f2e595572337241e16c4b324ce9e10e02742c1250e5ae1e4bcbe6bc00b765e40afeb698d3fa61350bb3e8841de11a5
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594919210000000        1595524010000000        1657991210000000        
1689527210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x4b33d18ffbbe7ee1aa0ef7644d28c80e1e2359a47ccf8b158c6bd04bfc8dd29ce52f7426bb3a788d6e37d52a840425f4dd7bc5c865745078577202c64f52fc9e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1595523710000000        1596128510000000        1658595710000000        
1690131710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xf1adc9150816414eb4f52128618355d9d5bd91ca8912d63f8e7a64ca34b1d7da69d32601866906589eea7d188782eaf246d333dc6e2bd19bf69a9a7b7483fa78
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596128210000000        1596733010000000        1659200210000000        
1690736210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x0fa5cfdb816c6138bc62a113cef662541dd8c523b05b31c54d5f81367d0a31377688115e683d966ad0210b0f48a8105dcb0bf5fd46ff219be378e551db102923
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596732710000000        1597337510000000        1659804710000000        
1691340710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x703b416c294aac9b4090aa92c3a1f109334704fc40cbde0a34554e5bc9f4211eabd39733a6cf4cb0f262ae18df506cb9dcba4ecb4b4e0cc1a8ca561b3583e313
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597337210000000        1597942010000000        1660409210000000        
1691945210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xa3d873e455e18af938d24cf662c6bf37a9af858ebe4bf47a11c96dbff473465c7ed15177b14b7838aac4903c6855adedbc8a66815f0544c86f371a89ee41c0ac
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597941710000000        1598546510000000        1661013710000000        
1692549710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xb099cc5eef6d7321f18012f657a17df19416c8a618dea525df502a1ee6fae657a50256c78e6075e9377d3a0e02ab38fde36ed232b2af9ac77ca6930e81de17e0
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1598546210000000        1599151010000000        1661618210000000        
1693154210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x61855979e9803991bb836485fd0888797888dd56e9e8f07ecbba3ce0669373256f44c6815c66c9bd71975571790a8dbb2be8a79b614c1a07c417f48ac0cb5bb9
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599150710000000        1599755510000000        1662222710000000        
1693758710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x7ca5c33be6ea670eda1354da45efdc57b6c8399f6b1e610654d57237e9b294fa7c15f036ea43ce335307848dc0603b9b5c706f597649013d212bdb0313bea037
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599755210000000        1600360010000000        1662827210000000        
1694363210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xc583157b04cac89a2bfe8a2320f9e01ce123d8604aa4f133bd9cca72a725947707c383ffd6662b88bb5d1267e4aab6b4cacf41a29fce49dec4f34d97a8ddcef0
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600359710000000        1600964510000000        1663431710000000        
1694967710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x08e39ccae406332695a9cfc04d20d3f733d1eda5ffb1d1771477aa6e2bce440ea646f5f3829a43129ac991a0323c6dc6a2717fa72683c338cd330824ee9bc0e1
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600964210000000        1601569010000000        1664036210000000        
1695572210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x4333acaa5662f939afd4a38290ac2a39bde7ebd680fee28a047815e6c94c9c54291587af56c9be0e8bf0b96edd09cfa3cc57425e88b333649755ee53b4403c6a
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1601568710000000        1602173510000000        1664640710000000        
1696176710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x774aeed719dcbb168d5257834a6419777a8e339a6979d9a93dde3385d76a97c2a5a0478e8ad0ac57164e27c9b5c8bc7eae65f9e6bb9fcd3022dcc03d53f5c885
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602173210000000        1602778010000000        1665245210000000        
1696781210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x05e02d74bbbf5f3b4192e9fb55c67f37a439da3ff07d6e849fa6d7b7d70a103338a7b61699e253a3a556388a7ec81fe48addb0ca7fba9230e79edae128c0e12e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602777710000000        1603382510000000        1665849710000000        
1697385710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x85fa8e533d7f8ccb17c8f7992ff8ac2d993eb781003655bbf38455c5ccee44768244f6d87020ab1ef14041d89610f318a7f2cf6a912d97ef97cd29c742d1acb1
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603382210000000        1603987010000000        1666454210000000        
1697990210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xc85238fd83db5be800a69bcf2d6d4bddc01df075760a83ac9face592fd257ce738d91159bcd66825ce1d661e99d4bc5e2858ec01771c9c2d911d9afff9ff721b
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603986710000000        1604591510000000        1667058710000000        
1698594710000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xca0a05f0d9d31709f15a0c19f114dde9103e16907cf42d72232d7d528f4d86f8ce3d05d502ba062889b3807f7326df6ec5c75823bb10bdaaa49765ca59dadd7d
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1604591210000000        1605196010000000        1667663210000000        
1699199210000000        4       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xe0726684567b8f6e972ae98a1c743d83344292e41f48d2696272bbe7d7cf28e4fe4ca576cefee21dcf4d05dc1927dbed383bd6383af4f6919c6185cb86c29fc2
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585247210000000        1585852010000000        1648319210000000        
1679855210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x5e3fff3c1f92845ba0dcf1651b7ec20c0da933572c2ce961c0b7944ee4ee3fa13562d8fe5d799f8eb8e528cb431033634fe73318ccec18db2246ad6bafa0c762
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585851710000000        1586456510000000        1648923710000000        
1680459710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xf47266abe3cb33716f3b864e07b033f66af6c7be58a6364c28d6c507b7ff70acf649b9a7396cffbdf77bb5bd7af9196c5299191dedd5c9a6ff04073be2ddb945
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1586456210000000        1587061010000000        1649528210000000        
1681064210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x85ac0b83d4e7d7d59d97c69057d729e8eff4493677e7ca61c55593b87f647fd7fda8d5b2712848a1d4df31ff2f27f60815078aa5f2e59e9db57ea625cbb65bd0
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587060710000000        1587665510000000        1650132710000000        
1681668710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x1f9600cf0bdf811771933679fd1dde21429a0c73f961960af88cd8d1d53a5ffdfaaf5f31cc5f7b28846298ef0a84de0f3abf8e9389814bcb913e21c630ee3cc5
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587665210000000        1588270010000000        1650737210000000        
1682273210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x6fb5795135c3e9dda4c1f9726330f5c2133c1f10d75784c9acf91e2f5c480a50bcb7c3af863a2ce41df9aa20ec99eb6f9ca328ba3ce70718d4bbde98467f9077
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588269710000000        1588874510000000        1651341710000000        
1682877710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x0c85da610e0f8ff8ecf6aa169d4a5546125f86d16cf6540852ed508585e62f80521248f909a5d10202e4721be516f6443f0343b4cd77062193f0ecff1fa688c2
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588874210000000        1589479010000000        1651946210000000        
1683482210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x362cfb8a2e90e503a2c6737a72410fea45baf4811c9326fb67b11210c79646b209c45c30b0d36c8858e10bb0ba574fecbe6cca19539b23abc5e2e5c32ad721f6
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1589478710000000        1590083510000000        1652550710000000        
1684086710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xe5c9a96e3c86cbecd1dbb3115134af53d6eabae04febb9b16bbed023f88d6595b31c96d76614ea1d9fa6cd41d33b69e01a81c8e72189eaceeefea14fcc85ae9b
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590083210000000        1590688010000000        1653155210000000        
1684691210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x9e387402e2c0ed7310ba9fc821fc8bfeb97c7cdc1c745f5bfb9b101c8aefff575aaceaddde7a4a73d913da0fd3cb3b713355d1e1d9b5591f0cee4960ee49f082
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590687710000000        1591292510000000        1653759710000000        
1685295710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x506bcf4cd7e2d1d680bbefae1f3081a1fbe16d06e053cade3eaddeeeee4aca1cd2da1937e23ac1f02d4198ae01e0fc5262da41b38b30d5c1425e52c48f3d8670
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591292210000000        1591897010000000        1654364210000000        
1685900210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x8ec5d99117b5d08d9877621063cb351bbf1a75981c0848e9ee3bfb5d2f33d2d657cf5dbf3829e504137e00dc7f10c5d47adb48262c1bcecb09af9e6e836a21e2
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591896710000000        1592501510000000        1654968710000000        
1686504710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x866eed1ec1a323f1bfdcce39d5713711c6c875025dd58d4104aba4274ce9091a55b2c3e25076bd2ccf911a8cc25227c9d4070087d187701554167d7c37192da2
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1592501210000000        1593106010000000        1655573210000000        
1687109210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xa3af6b7ba5e61e2bb741deb79693b575f4929b12acaeb6842134067c0640ec26da7ae11f88e37fcbd3bded0347147b7d1689f4deba2f9e60507fa9568b24c1d7
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593105710000000        1593710510000000        1656177710000000        
1687713710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xd93143bed0c88b7620b4eaa41df90750dc6bd54e7401820e063bedf7061c89dbda2336011360f70888a4934f2c7c3fa03ded0e959eadc46ab90faa62e0faf562
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593710210000000        1594315010000000        1656782210000000        
1688318210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x30d2aed6b932d5ecbbfd6af28463c1ecfe7c178d93c78c3a77fbb50ba939c3623fe83d61d8a980b7ef992f976d4700cca5b8a9dbfe69d097639bbdd1dc3e0bcd
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594314710000000        1594919510000000        1657386710000000        
1688922710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xe3668654fb8f1a3f4f03716ef07f5c99c3ef78f881e2cf2eed90bc0b30375d7590b405dac4afe600f79f3e4ae46c99316aeb1bcc35b6690159bd2105e6c2c0c6
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594919210000000        1595524010000000        1657991210000000        
1689527210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x7ad08082cfe946f44c267270fc18ae6ed8415e069a6b5a4d2f74e0aa916f3c444488d3576c1d2cf9b32b8cd2448ef0bf15b5c38bc09266c689a3142c87b2565e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1595523710000000        1596128510000000        1658595710000000        
1690131710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xdd2db79a4569f54a04a721054dddaee82002e56fae734096a1fbd7d0d5c45d42f0a48b0073caef24e484bae22e987e488bfdf6216175c11a0a6700b6ea484b1f
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596128210000000        1596733010000000        1659200210000000        
1690736210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x06967749c6890b49eeea509129a0a5da20afcf1d521bfb132bec60505a35d0e3ef9f37db07be5fec157ed39c0358ef8611e76517b3af3ad5bd9a4b6c7186713c
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596732710000000        1597337510000000        1659804710000000        
1691340710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xa30eade17313fb80b1a774cd5879408f565ba6681952314812dcb9401df2f7704d9e6318c1dd11d19cb766df6fd6c8d7a5737f84c4bd4013fa5166ad3d15f01e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597337210000000        1597942010000000        1660409210000000        
1691945210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x684f3ed9abd9e696f61267a93b9e3f990e29980838ae3a17fca5db3c1d8c81a1dfb3e35b16412824526161110d047c57e066b317715d2b1ca73a21d8cbcd2fa7
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597941710000000        1598546510000000        1661013710000000        
1692549710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x6e5ec95f36ae8c7402634ac623b8f58ff26f998c35abbfaea1342dee90f34fe84e05df9219690e911cc50ce16a8aa11eb7f15cceb6f22dbb17c15783e0c5be5c
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1598546210000000        1599151010000000        1661618210000000        
1693154210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x165dbaf0c1bdd9d42be3722c488e5079a24091fd7dad07a5beade4c9603cb0682dc3708da84b3b095ca6863ec51f16804b2b297b8dbf31041ce56155ddb2b2cc
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599150710000000        1599755510000000        1662222710000000        
1693758710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x74deb3f1abe0d0f7faedfb22fd0fa7c7496742a1aa2ccfd64086373df84639f8c6f87a976cda46f35df449c8bce076355d62870b7bf17f2f6907d900b59e1dee
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599755210000000        1600360010000000        1662827210000000        
1694363210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xdbd34e536724be18061fb45c8f2e479ee586d5ae2ad2145096f4d25fbcbf97168d5a94d5740351a76f107eb40db7337999b7bc0114ad2d00c8b0eb5d61f1a723
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600359710000000        1600964510000000        1663431710000000        
1694967710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xed4ea51f74204cb8177ea6b80ff8801222f54153397cbc190f39d3c72a264a451fb4043bbce6ca5691f8407c5c17fbf9c96ba8f729bf139a0f0277e6fa89860a
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600964210000000        1601569010000000        1664036210000000        
1695572210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x816f803af6a7e11f0aa487de940ae8a0a30e402721dae1e10d34213e1b0cf99d694d2840b2d2b832f77e1d2feca9df281847905e5301cfa180bd1461309fe4cc
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1601568710000000        1602173510000000        1664640710000000        
1696176710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xa5e1ffe58f26df4a9dd211988634517c07d854be23f66e5e77986e65fac688abd0333036b05baa09a72f13b57b4b872e19c7258b3355357e389833f71ea071f0
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602173210000000        1602778010000000        1665245210000000        
1696781210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x3f0cb2a60e00b839aa07b37fa79e6ff7a287c13fd0b958a5328c3719a1bc26b5edea0238c48bd8cee41bc04b2816e26ced58bf0014e1d59212a82d58a1fdda97
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602777710000000        1603382510000000        1665849710000000        
1697385710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\x92ab7592772b2b881f7e70ae12e5ee8398b76bc0ef94e4c737b7dfcf9854f4f18cf2115345c0d24a30bcd717c27be8d5b140dc015da8862894b241761e253922
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603382210000000        1603987010000000        1666454210000000        
1697990210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xd1061fe76cbaae0d04ab65e940c76e6bc9b82f09010caf40556b9672aa71a021dc89670edf00f86c32729d330fb09092a0a75f039db49601364b9a5b2379510b
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603986710000000        1604591510000000        1667058710000000        
1698594710000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xd136ffb55575c4ff5be64442bb108b83cec060c9bab8a5432e9762f0e32121bf3696990a13291206f08deb193356fda4cde77ebca556adf77099ba42ad4b03d3
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1604591210000000        1605196010000000        1667663210000000        
1699199210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xfac60747f6f5230990e394d61524d5e5c2d7fde9d64cb67971383afded993d28b8ccc24859da6595521f2131f8b29f7249a132b21bd783ddc17df6743baa690f
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585247210000000        1585852010000000        1648319210000000        
1679855210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xaf1c014942d7a667381cc079933a31eee8c9ecba69f1d05957757ff2735a71c20ec47253af465621395e5c5c08b0677345119eaa1d49309afbec7fbb27c85185
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585851710000000        1586456510000000        1648923710000000        
1680459710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x9de8cce48ed3e96948d3b3afaa80ce3b88300019c9bc6f2448a82a9902ab58fb624caad443502b31a5b346881d74d3a52548fafdebe59134015a4af878d25f1e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1586456210000000        1587061010000000        1649528210000000        
1681064210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x5829756a33e2512e0c52cde712e9c737c4bd5efec68356606c9fca2163cb40262163ea08a65ac6a76a145397423299aa076a8f1f8e9957b8963409f85fdfb230
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587060710000000        1587665510000000        1650132710000000        
1681668710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xe282452214a9d34232b6c24f6eccf2a97893d2ad9741e9e0b4c874a5c5fc2544446e0b43c0bda9211bbdce61a4762bcf9db641b46ec67ed8f71f3b0ff398d5a9
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587665210000000        1588270010000000        1650737210000000        
1682273210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x88337537317cc8b51018fb4c4548bbedcbbf28c0c2eec201d8352f9110d08e80d3e1449a0008f62e5f44a27efdaf5ffa99c34abfb0279e2cb7fb8e9e9c091ed3
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588269710000000        1588874510000000        1651341710000000        
1682877710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x3a5a7bbe7f8eec2371c769e6143d6ee1d449ca7cafaf1851bb96f4c9d2084d3231e74ae18fda9616a031199cb712737f01af2880510224d1e4119c26edadf105
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588874210000000        1589479010000000        1651946210000000        
1683482210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x2fd6f2fa3d765fa976d488bc81e267be30795510570e980048c76145fbfdf4bf79b6858d1745000c0cd72149a80720225d9483bdd81e2e5e4434e7eec5ba7b0e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1589478710000000        1590083510000000        1652550710000000        
1684086710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x6e873350425cf51f7564bc5fbef921e7c9bf830c9d35f00d3f762b55aa504608e1dfc017499a3ac8abaa201cf072e6e3c9d3bada76e4e9378844aa1bceb461cf
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590083210000000        1590688010000000        1653155210000000        
1684691210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x7c9fbc4197c48b8a6bee1360043ca58353cb3e40890fd78a6f04ab69cce9c00a88d572841d49943c2d7fc525c7f9fa3a413ff3d8a26a73e6dd226d0bc3b3b4d0
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590687710000000        1591292510000000        1653759710000000        
1685295710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x9068b60510081087c9d4acc4a906fdd20dfe5ea8ea54e817433fad3ee25ea35e086ca5a7983097b0243f41583020699d491123a721bc45daa490b176f7c62b2a
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591292210000000        1591897010000000        1654364210000000        
1685900210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x17e4a9d8daa2ca64826813cde9733f5949d9a30c88260c7d5933c6ea811a27b9f5c4732774466ff8d1f9b0b5d9ec439827e2f795119baf9164b7c7d139fd5ea7
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591896710000000        1592501510000000        1654968710000000        
1686504710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x8fd23473f33b66e7336bce01e3b938f95b31f63f874edb521d5c9ff57969d5d78596f84b5a0447bfeccfd07f6b98710cdcb9306c62ee34ff53be01d0c7e678e4
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1592501210000000        1593106010000000        1655573210000000        
1687109210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x69a2095992f3cddfd5f273c5c8fa9cacb924c58e1b5132c79c8001eb47e3e04fc812189675eafbe68b76579bb21fd056c4974502cedb1a7216c1ee7c42fe1f76
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593105710000000        1593710510000000        1656177710000000        
1687713710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x3cf8a9a58ac03112f46a64c298a8150dad26d383fb12702ed4e225a8525da5b6ae26e4439d2b09a3635654c8599916d35142ceaeb5b9ef7094c8e918dd2acce6
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593710210000000        1594315010000000        1656782210000000        
1688318210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xf8d36ed24a9593576c0fbe1fca1c45e91bbd440adf76f1e7589793d5cdc1f797084cf42f28d1b949b63ea04f107edbc98ae27a35bb3e635181f6ff7b74946b34
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594314710000000        1594919510000000        1657386710000000        
1688922710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x1cef4b14c92d23143dc22bc8bff1c7637ae220ad5af5ec7b8fc5b289b592dc536381653840495238ad17efd80e3d067806ec02c93ee7d353fefeb90386312dd0
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594919210000000        1595524010000000        1657991210000000        
1689527210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x6f15242144bfcddaaa200d7e799d514c320cadd2f149143656ef18425774ab340f174dfd87dafc87e4d15fc78dacb1afebe374b21a10208da099a650bae5eed6
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1595523710000000        1596128510000000        1658595710000000        
1690131710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x4cb3097f1c37488a5f59c8e175f6989c8a2f5d8dae61a92105c1e46c19da6d64d0d952aad31cdfa0f5e24c90ffca6bfa9402466d6718f6e46adb408f734058a3
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596128210000000        1596733010000000        1659200210000000        
1690736210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x440183e206d698c7a2730d1e5f71b32707963b9d6f117764657f3a615727f29ff7f69b2ea777fa55cda06b11777ffb77c6c73aa20968f9ffaa2f0c82d8128635
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596732710000000        1597337510000000        1659804710000000        
1691340710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x8d14780f3f5baf8bb404d9d55185b8d151d1c3c5fa4236f6e5f2d0a6ad41a024eea070561434393d5d75e466795b99304a6455a81f3f220ce70486306b9b6f2a
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597337210000000        1597942010000000        1660409210000000        
1691945210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x4b4d8458b842b658affb89f20635a3cf34036637fac52e83774af8c363c5c99986e74ecdc301dfd17cd87bd5893fcb3a8fd83a27867b7f5f269df497d5cdc821
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597941710000000        1598546510000000        1661013710000000        
1692549710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xdf88cefbbb63463e09ce6355c7295f42bd686c851d63965ba8d1a41bb30bbf8bb2471a4e72fa61262b5870221fd78d3771c10e13da1c7745e2a2871e15cec100
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1598546210000000        1599151010000000        1661618210000000        
1693154210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x776aed60373a03618957c5a94ee0ffe060aac91f810030e1b21334fd489aba75d3ac5a29f3f64e8d9b6a767c095be327fa8dce9af14687196edd62348e59a620
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599150710000000        1599755510000000        1662222710000000        
1693758710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x3defc51b1c9b98abb0983b2210d8af346725a940769536fe9d279b372486cf803b031f378cfd45aba481f283b6d30b5f73297d5dc1793ca877168db2b9645b6a
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599755210000000        1600360010000000        1662827210000000        
1694363210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x017334ba5b590f808e52213a51501905e57e6c4dc50bb4c34d07e039d8a29de77ace1725d4c2403ccb86256d48759f5df7de1127b6f0ffd369252370f7eeb511
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600359710000000        1600964510000000        1663431710000000        
1694967710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x681520926447893b8d3557ecc1ebdba90eb23336ab721e93b954a42bf12a5f6cef5b67dc3d5a345d2ef96a1ed838a13d0512686f6ceba52ddd7c064a3b5a14f0
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600964210000000        1601569010000000        1664036210000000        
1695572210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x25dc433ebaa4d91f9a7180e25f7d119c831ad9c1dbb1b8bdc05d03d3084ed4122ff6aada834a9c5dd3b5b1cec41946a1088e29278aa382819fad83ab188d82d8
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1601568710000000        1602173510000000        1664640710000000        
1696176710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xaf630ded5f31fe2d4fc0b4209710fa38388c7e4d285d43592db68cd78623d1ae4be3f5e159bf7e01fb6baddb92981b96779c72ce4bac828b68e8a46f4853785a
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602173210000000        1602778010000000        1665245210000000        
1696781210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x4cb9299a278deb0617c68dffc002d8f5c7ea71b3601f456f8aa09b50835380e4a91ae1814b6ff460e490a077338039ec2adc15d93992c0668c05206375510f2c
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602777710000000        1603382510000000        1665849710000000        
1697385710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x276a6185aae025ddbd40ddca7cdcb5e11d9aba1465db83997cbb198ee3aa65976d11bb4d40f8b5eddb305117b4f88b090a5d66918761aee9e87a10024d490edb
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603382210000000        1603987010000000        1666454210000000        
1697990210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xb3be6818a39d860eac2ec503286ee89697f668dd4fceaac27ef9f372affe273e03a76a961f96c3cf03d8acede33afec84a8c899a557bada8b16dc5616295885d
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603986710000000        1604591510000000        1667058710000000        
1698594710000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\xf80f1f2994576496bc3d150c08404c7dadee844f5b220c0eb780f5d369f0d2481e2852c7dddb112f29c64832a5559e42d6c5c171ad96a5733a98da12a2200b44
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1604591210000000        1605196010000000        1667663210000000        
1699199210000000        1       0       0       2000000 0       2000000 0       
3000000 0       1000000
-\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585247210000000        1585852010000000        1648319210000000        
1679855210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585851710000000        1586456510000000        1648923710000000        
1680459710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x98e9f02ee744cc60bb24bdf368c4b1a01e70b6d327c38380cd6a306d5451b79802d7b11a2859ffa86bc9e86f80ce67a8fb8aae6adcd0274739822cf2167b961a
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1586456210000000        1587061010000000        1649528210000000        
1681064210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x993df19db1d9858d347a101b12278024a0034c70b2ab7a2b40bc87ee5c15e933ce1d952bae328b5a428c8bf39924481466c9ddb42fcccc8592324c8760961366
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587060710000000        1587665510000000        1650132710000000        
1681668710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xda270368811829cb9103c1bb50c9d144bf3b263a2ef7902558d4d806de58be3df7598b6efc7287a0ebf7e340eacb69992d32e5316ef63b144df2b866796cd934
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587665210000000        1588270010000000        1650737210000000        
1682273210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x47c01b601fcf1fb694b873ffcbbf6f29a967a62a4d8bb117224dea0059d89a75336a58a71a14a0c8e08474116ede3af09278f75027f5017ec8678de2b3a9fd79
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588269710000000        1588874510000000        1651341710000000        
1682877710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xa457bc1d426fd999113e12ebd82b6acad05856052cf84127b956680b59059c63408d45d054a4fc141bbe75194eb377247180ec7ca46d9c85b9f3380ed5642fe9
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588874210000000        1589479010000000        1651946210000000        
1683482210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x8ee49acb2433bce380f39d5d35079c17ad446c51a4515a91ff51fb8c15946eb4999a0bc6c08c44633ec509dd43f9b10eb7cd0435475e9bd0674593b1ae8882cb
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1589478710000000        1590083510000000        1652550710000000        
1684086710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x8a4572e2e1307d787c2df87ae424f11c29a04a6bd56d170b92ad51f7d93c0b1558749b5c8503e6afcd7f26fc0bb76ac8691b96af396e549897f55f9f84f75668
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590083210000000        1590688010000000        1653155210000000        
1684691210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x165970869cbac37765df1a5b6668996ff985a1dce898d2e6e3001c99dd4ef50c625178de459f8978eedb762159d74910ce1d406d51568f8c36b698645b99adb7
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590687710000000        1591292510000000        1653759710000000        
1685295710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x6c2e6b6de36b5556a9dd88073a174a22f8c45d82dadf45e12a77080fe78271f59704bff1a27f81c9e4e534036d312d799b12b00f7417fe3e4b5b42fc394d9246
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591292210000000        1591897010000000        1654364210000000        
1685900210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x4d093bbbbf8d09bdcdece049e41693c3313fe3d7e1c3fab2cbe7468117eb61bf170a805be83c55b5b00a5c39e454dc685916e899ca6d119c115178ac7fbbeda7
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591896710000000        1592501510000000        1654968710000000        
1686504710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x937c18af83d1e5b4ae777dfeed5569f6425de3a3cd1934ab2b07e2ee9daac5728187fa5489e207d93cc315f70657392f6dc7b81908e1ac37a94d5fc550a877bf
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1592501210000000        1593106010000000        1655573210000000        
1687109210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x22a6087b38521a417e96a8649be7ca5086fadad0d399a6128a3eed9f2ef076016a9ea677c9aeec7b6587372a787707dd934b505b7f9b50c13e6a9c004751d3ec
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593105710000000        1593710510000000        1656177710000000        
1687713710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x5793eb71e2e610b279666cdc1ee3fdfbb9d4765573aba7d2d02edd2c9b973818e1a38e3ee42e3062cae853c36fe660f9e1378e3c003c142f7ff3d31304489bf4
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593710210000000        1594315010000000        1656782210000000        
1688318210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x721093e6f159bc5d74dedc00e1a964d2fe6c98085b7c7afabe821346249072332aa642b7d33841ca47dcfeb1c292f1892026b6cf4fd150319eab171f97e944a4
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594314710000000        1594919510000000        1657386710000000        
1688922710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x158276bfcc7388cd491511f8f8fdbabc4ef8c5e011341d8f3ffe90e8f37a3ead99551ab339ca8c650a783510c95cad58897e5e99e2f7ebca59fcb85a00908e50
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594919210000000        1595524010000000        1657991210000000        
1689527210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x1f8f6e2464a0ab5b3dad30b55a8a0593decdf5359ef995d07ff4f1b6fd3551ea359f93ecdc95b83e1a31273bab6adde46fdf585495c6e9e06a4cc593287f8c9f
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1595523710000000        1596128510000000        1658595710000000        
1690131710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x5c0ac65cf450c8c0ea758a0ff1637d435641bcf74c114a12c11524d4f0ad0da3faf3e0f4a886edb51706372e6e072e69177163313e32d3691f14a4c26c6f4641
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596128210000000        1596733010000000        1659200210000000        
1690736210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x2252c33242e3d31c7d4a176255ead7a2f8573762f4b6d6e07d8784d9879a2655d4acab02ec6d6192861b09318c4fa7de31f00bf15cd460842d550237c3218118
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596732710000000        1597337510000000        1659804710000000        
1691340710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x54df5ed833117a0da8ce07e7192f07c67dd9578ac400dab173c89520f82b004752f1a6527e55a0661e089755482670844b9eef747a40bc712938e786a2437885
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597337210000000        1597942010000000        1660409210000000        
1691945210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xff6212eda23c185b56b845937dde409a7fb307679c44f72510e81fd91959cc13987838f9dd0cc76641935bb67622d41256de15f241ae9c4ce86e38d70da572ea
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597941710000000        1598546510000000        1661013710000000        
1692549710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x88cf6a75f50811a39837a8e04d11b08325f7d8ec24d47942088ce54d66794196574c40ccaa2df8aca347e49f06523d9720583a8ce6f73d4f8ef8ab5fc57d3d3b
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1598546210000000        1599151010000000        1661618210000000        
1693154210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x3fbf102070aa2a1ed19a0a779d2a23f4f094712bd5822a5d38ebb5cd341dd3931c30e3f4ea01d99092c833ba23e8c79b651aca0dd1b8c41d5f7670533cb78ca7
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599150710000000        1599755510000000        1662222710000000        
1693758710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xe3c00b46ea754f23cd3b5d41377fe7142d4146e13594e70d67a541b14a5a1f55e3a4619113c1593cd82bd32dfa74f7e2e27bbc4be449181d31b606c67c8ff591
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599755210000000        1600360010000000        1662827210000000        
1694363210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xc322cd92118aabd445aec705cfc7e90a52fa11c86163eaa97e22ccda4839717679d0b3348b778dfc4a98f5274a1adb343d4cec43df97243a89b812abf4a4940e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600359710000000        1600964510000000        1663431710000000        
1694967710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x4c3c6d57a0664d5da30c8394375fd8ae8d06e27455e41afc4198cbf509abfdfc86ee823d070715e58fbded3acf3830c5e323a01b28fb629e3e728ceb77e2f13b
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600964210000000        1601569010000000        1664036210000000        
1695572210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xbdeb7ac98af9c80c621707ba229659bbc0c9849a35efe1a32ab0b88943b736280c3f92fcef449337260c5e71f6c5bee5098c2a53a71b62c5d4ebe659db962ba8
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1601568710000000        1602173510000000        1664640710000000        
1696176710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xc0b1afac5368d72b7251a133e13e4c3f271e0570361837d614ebcc0110045056eb78c5569ec668cc07a99d641e9dee321be1b621c03ed276f4870d79b227629a
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602173210000000        1602778010000000        1665245210000000        
1696781210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xfe0571c189ffa9598bd2b10daca0b41915b79d2af0d182686b4489578fa21be8fff2682722dd4843d3db53627a7ad82923e893a341c8f1d3a81606a42c0fbf03
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602777710000000        1603382510000000        1665849710000000        
1697385710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xa0d996a0157b9c4008fd1daf1d8fbd0749d520f31b913357f2bbbe1100ec7d2307226a46573037a9c03cd36f85d5ff9aa9cd52d1a95b3637205befdebcaf93ba
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603382210000000        1603987010000000        1666454210000000        
1697990210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\xed9964b3619fdd935bfc8df972bb2506f28f19cb821c1262bd62b3ff4338710b07e629bc0fda9b6e35233d770831386fc7b3ccc41316f4ae63164c7843e78c06
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603986710000000        1604591510000000        1667058710000000        
1698594710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x9f4b88691c86a171acb6c468816bcd93d0ad44e027412758b6980d0225407db0fb4f2475c5266ba59be99d262248708c8ab1aabf5857c09d1c076ce6f84598a3
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1604591210000000        1605196010000000        1667663210000000        
1699199210000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\\x747f5c89194b7266b995701b18f8f5f9b31a1f18997b72aa306b12fe8c1be3db30507cf68c32408ad8ed9accdf31dfb56ac917b362dd21e4727b7e499540110f
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585247210000000        1585852010000000        1648319210000000        
1679855210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xf3b15f353353c828067a48d0cb5cc98b82fd0fe9f0403e675cbd25a702f0601c7254a5c1f12aa67841d9b347bed3720680b3fe8f48b3a3219ec5df26a55f41c6
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585851710000000        1586456510000000        1648923710000000        
1680459710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x0e15259d45b92cb3220d56402b7cecdde2e0c7b35ac8c8fb35bac63491ed0087c7d878333802f9f46f17e663cc5e6a75571527114651b854ca920dc09d9d456d
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1586456210000000        1587061010000000        1649528210000000        
1681064210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xf449fc3fb518f2f296fee1686d745967d03c457efc5c843ec7d18603aa0975b7295b28afc80c03a27359abacd0b8707d9fc2017c4c4ab91a128481b82bcd4d42
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587060710000000        1587665510000000        1650132710000000        
1681668710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x3bacefcce0349291c705d69b39cba778aa0701d0bb2747d3010479c031f6f407e3be7bffe675b6076e7cb84ddd42da866073233515581cc8beb594980927f883
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1587665210000000        1588270010000000        1650737210000000        
1682273210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xfd2ad49aab62ebae12f33fe6de7ccf47884d467965b906937194b5fc4bff011da194010a26d10aa3fe51d376fa91f6b24e4a874b9641b755ec78ff6330f913b2
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588269710000000        1588874510000000        1651341710000000        
1682877710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xb3e1d98bb8bad7430a19bb95c9a1f5b1d6b34fe2f5193ea95f069cfd78944aee3e2c0fca478cbd5583010d630d1273adfb563f615eab1187bac00bac7d26deb3
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1588874210000000        1589479010000000        1651946210000000        
1683482210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x8e58bc9aa845a8dcb4c93507273ab06f388df9d187a25e6982e2f15a5dd2778c6ea2616a95c4fc8fd01dc76bc667441e9f3db3c58ffe569a9f9634214c379f22
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1589478710000000        1590083510000000        1652550710000000        
1684086710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x3c635b2a8a0891f12f3279c0d9e6549c677d1b4616e5233a54fdc9bce4a6224a90f01058553f7744093a19478bd71590f74ba95211aa91ce0806e58175a0756e
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590083210000000        1590688010000000        1653155210000000        
1684691210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xc4765bcd9146d2e30f25dad9b3586eccfde80776971bf4126de8abd2c0f48192809a30a41349904bce93bd8a25d2966549b451b732fe049c77e4da8d82e4b600
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1590687710000000        1591292510000000        1653759710000000        
1685295710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xbe125ef28ac75b00c11aa8118ca94a84929c6a4216bd6c8ff349b607c83e543b770b0ee24b580141a50ec997a2b73860f43658e1eeaf273b42e7fa2771dab223
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591292210000000        1591897010000000        1654364210000000        
1685900210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xa477048519c7f8e54e792da8e2616e4c744c71e897f479c73b13409e7f9130f7d9e3f58c7798cca753a1ca799951c5f713f6d389dd0973c2eacf758a0ed7690d
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1591896710000000        1592501510000000        1654968710000000        
1686504710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xf65f27fdd6ec270b95757c171a4961b3234b6ddc7f42cdd259741ec405383b12500b5645fc1f74311478277624b3ba16362dadb6bafbd629f7c89c2db86d6b10
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1592501210000000        1593106010000000        1655573210000000        
1687109210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x381a76a33cbee8583d1e275d77ff8b4a233cc47f0d87ce76e4ab34fb13cd61b64f0c589be2c9f24cf1988fce64cadf29ebd1d4755445f7d6bee70a0ac2ee3d2d
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593105710000000        1593710510000000        1656177710000000        
1687713710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xab99a6befa6052eadfb7f61f9d4b3b701c2624cc3f384df41f1a31d51385f991137819b981721c0209a2fece0bb555e805f6ea2681d3d153e0aaaf66f461a092
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1593710210000000        1594315010000000        1656782210000000        
1688318210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x352c018bbc511a492262cf5e101aff1d079b4ee563303e06a4f77581976509fad09f88a568c7a75eb521020b30bf1ad39ad07624dca02595bee20049073e6fb6
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594314710000000        1594919510000000        1657386710000000        
1688922710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xfff1c04f3e24640dbc9b8041f758eaf9f7ce0dcdf3259974e7fc85e2fa8a6905b55a495e567c70289aae9cd9043f30a03ea06608fd34afadb0aa08ec26f4edee
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1594919210000000        1595524010000000        1657991210000000        
1689527210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x104974b598dda349ecced03038b53eb9528dee10014385d4d33b02b9a2c953682a05a32a120fb7ce97a5e97af9df3f9102db5cd835e63d8c2a656d1046039a82
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1595523710000000        1596128510000000        1658595710000000        
1690131710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xa010b38180f0b7a0c061f7c5bb68d1da3d520d80eff59180f622ffda9bc51f9d2de29a3d75b91932cb1bbd32cd333f4ee8d82255810c91e0ae11400ae84e0378
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596128210000000        1596733010000000        1659200210000000        
1690736210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xee0eb3d3eb3906db27a82f41ddc494383f6b613ca5b56e4396b83d04e7c565237f71ce98b3c5581a39f9e47eeb731dc74828e70930528b0d0a09fb1f71869c30
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1596732710000000        1597337510000000        1659804710000000        
1691340710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xb72e604db5657b8d528f16d2b4a7fccc12b0b97cc43dd749e9f5d1cb78f7a65776af046ee2646592353ac41b6517a0ec64b37ea7cb3456d763854a1b16eadd2d
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597337210000000        1597942010000000        1660409210000000        
1691945210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x568c9a5170ffd7ce7ef2eb2f2c294cfd54df443730b6d7d100297e980e7958a13aece3da0a50809810964d26aa0a1c805ec71598888120f22e22b90cd8f962ee
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1597941710000000        1598546510000000        1661013710000000        
1692549710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x456a9de9e94e34ed44892ecffdd98a2c13cf14ea322745456c8e3ddcbc42591474514933a8017d01018834096b3e1f09dd22b24f0c6fd554cea781ce2c849f8d
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1598546210000000        1599151010000000        1661618210000000        
1693154210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xc236898146d3077793082f98e9a6f88c1897482bc4be742a09cad99b85f28f87eb17da75230273a31ab8be3719568c9a1e4c4aa3e78309873127e1db3adb00e0
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599150710000000        1599755510000000        1662222710000000        
1693758710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x81c218ca0a206bd839b2ade8018b88f7c1983900f1a26bf4c89807b10def2e4a53c0245034a6c34e7335d853ec1a4344baf9324711ee52ba9d5925314891defb
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1599755210000000        1600360010000000        1662827210000000        
1694363210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x44e130ec640e8492c999d1bb9522ff27606a2ca8f5264a22415c661d0f00ac70989193722ea7fb332e495ca48a36446ad22be424406ee78f60b9d20b089283e2
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600359710000000        1600964510000000        1663431710000000        
1694967710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x214da53a649cf2b3ff4255ebb59fb7e7b0412a419b21df0989d0d6af0ef540aac8338e691b31d550ca59c2c8d4d60f12434c034b982d38fe77ead94665e9178f
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1600964210000000        1601569010000000        1664036210000000        
1695572210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x3341ff9efe2047bb74b842827056a58d87d46e3e4cbd3fefe1086a1ac55c9fa63795536626654ee22cbd62181fa9fecc1055a91473d1a419705e03cae7174fde
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1601568710000000        1602173510000000        1664640710000000        
1696176710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xbc17dc5cabe2dc94e9e7f4ebc48cd3b405debd95214d558c866f9b25e4a20bf01877a1e173d9a71a59e8d19424de6ea41cfe992adfde1995c6bc9850eb707d39
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602173210000000        1602778010000000        1665245210000000        
1696781210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x7294a2c2aed5224625bf2261ae05ef0945c5c2e39e68382ce7f282d8906681545a74b4967ea0608143adb52f5e51bdbc928ca81aa42a20a25f4c7890152d4f3b
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1602777710000000        1603382510000000        1665849710000000        
1697385710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xe6e9928e69600ff897cfc930a9025ed83ae7c222f210748982f78e530ab2ae21d620b5ef5baaf150e92981a95bce2b95d21936828a77a6b4bc0f693ad26294b6
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603382210000000        1603987010000000        1666454210000000        
1697990210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xfa402d97d8baf09dbf27b6f466e24a272e55a0b525d2201fa61cd2f45c6bda0eac110c05ac97ef914e12a2a5ad5be6181474035982bb7e646c93318443f7524b
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1603986710000000        1604591510000000        1667058710000000        
1698594710000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\x995df75df0a3cda873baea40ad4b18aed83d13f2685d6e94f125681c613430baa1565ec480ffa3a812c08569e93fb9b733fd84beac6ae7abe53819621052c0c6
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1604591210000000        1605196010000000        1667663210000000        
1699199210000000        0       1000000 0       1000000 0       1000000 0       
1000000 0       1000000
-\\xf83190c4582e1152cd1d1cc323b2b0bce4603dac971c160babf3389cf5e585796e4c3973db82924be749ba9655471d73653774df3963cc86535f423fd628ce48
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585247210000000        1585852010000000        1648319210000000        
1679855210000000        2       0       0       3000000 0       3000000 0       
4000000 0       2000000
-\\xb09b6217d72bdb8f393332f676b9c85c2e246a6685c6f4ee8e96384b23ca29e89e587f782d24625001c7cd6cea13e85fdcc9591452f43c6d717d24297dd2dec6
    \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
1585851710000000        1586456510000000        1648923710000000        
1680459710000000        0       10000000        0       1000000 0       1000000 
0       3000000 0       1000000
-\.
-
-
---
--- Data for Name: auditor_exchange_signkeys; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_exchange_signkeys (master_pub, ep_start, ep_expire, 
ep_end, exchange_pub, master_sig) FROM stdin;
-\\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c    
1585247210000000        1587666410000000        1648319210000000        
\\x946e8b5af562e6bdae3f9e9f1996162e81eb835d52f6b1455194d1c8a4afde69     
\\x099f81f628dcb585af0d033f33aa03c6070e0d929b3aae82bf8d0496ae1134c9302bda7ba2325470039e1845b7a72b1adccdbe0a0703f89ebeeb2b5876dee503
-\.
-
-
---
--- Data for Name: auditor_exchanges; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.auditor_exchanges (master_pub, exchange_url) FROM stdin;
-\\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c    
http://localhost:8081/
-\.
-
-
---
--- Data for Name: auditor_historic_denomination_revenue; Type: TABLE DATA; 
Schema: public; Owner: -
---
-
-COPY public.auditor_historic_denomination_revenue (master_pub, denom_pub_hash, 
revenue_timestamp, revenue_balance_val, revenue_balance_frac, loss_balance_val, 
loss_balance_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_historic_reserve_summary; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.auditor_historic_reserve_summary (master_pub, start_date, 
end_date, reserve_profits_val, reserve_profits_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_predicted_result; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_predicted_result (master_pub, balance_val, balance_frac) 
FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_progress_aggregation; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.auditor_progress_aggregation (master_pub, last_wire_out_serial_id) 
FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_progress_coin; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_progress_coin (master_pub, last_withdraw_serial_id, 
last_deposit_serial_id, last_melt_serial_id, last_refund_serial_id, 
last_recoup_serial_id, last_recoup_refresh_serial_id) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_progress_deposit_confirmation; Type: TABLE DATA; 
Schema: public; Owner: -
---
-
-COPY public.auditor_progress_deposit_confirmation (master_pub, 
last_deposit_confirmation_serial_id) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_progress_reserve; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_progress_reserve (master_pub, last_reserve_in_serial_id, 
last_reserve_out_serial_id, last_reserve_recoup_serial_id, 
last_reserve_close_serial_id) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_reserve_balance; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_reserve_balance (master_pub, reserve_balance_val, 
reserve_balance_frac, withdraw_fee_balance_val, withdraw_fee_balance_frac) FROM 
stdin;
-\.
-
-
---
--- Data for Name: auditor_reserves; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.auditor_reserves (reserve_pub, master_pub, reserve_balance_val, 
reserve_balance_frac, withdraw_fee_balance_val, withdraw_fee_balance_frac, 
expiration_date, auditor_reserves_rowid, origin_account) FROM stdin;
-\.
-
-
---
--- Data for Name: auditor_wire_fee_balance; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auditor_wire_fee_balance (master_pub, wire_fee_balance_val, 
wire_fee_balance_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: auth_group; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.auth_group (id, name) FROM stdin;
-\.
-
-
---
--- Data for Name: auth_group_permissions; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.auth_group_permissions (id, group_id, permission_id) FROM stdin;
-\.
-
-
---
--- Data for Name: auth_permission; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.auth_permission (id, name, content_type_id, codename) FROM stdin;
-1      Can add permission      1       add_permission
-2      Can change permission   1       change_permission
-3      Can delete permission   1       delete_permission
-4      Can view permission     1       view_permission
-5      Can add group   2       add_group
-6      Can change group        2       change_group
-7      Can delete group        2       delete_group
-8      Can view group  2       view_group
-9      Can add user    3       add_user
-10     Can change user 3       change_user
-11     Can delete user 3       delete_user
-12     Can view user   3       view_user
-13     Can add content type    4       add_contenttype
-14     Can change content type 4       change_contenttype
-15     Can delete content type 4       delete_contenttype
-16     Can view content type   4       view_contenttype
-17     Can add session 5       add_session
-18     Can change session      5       change_session
-19     Can delete session      5       delete_session
-20     Can view session        5       view_session
-21     Can add bank account    6       add_bankaccount
-22     Can change bank account 6       change_bankaccount
-23     Can delete bank account 6       delete_bankaccount
-24     Can view bank account   6       view_bankaccount
-25     Can add taler withdraw operation        7       
add_talerwithdrawoperation
-26     Can change taler withdraw operation     7       
change_talerwithdrawoperation
-27     Can delete taler withdraw operation     7       
delete_talerwithdrawoperation
-28     Can view taler withdraw operation       7       
view_talerwithdrawoperation
-29     Can add bank transaction        8       add_banktransaction
-30     Can change bank transaction     8       change_banktransaction
-31     Can delete bank transaction     8       delete_banktransaction
-32     Can view bank transaction       8       view_banktransaction
-\.
-
-
---
--- Data for Name: auth_user; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.auth_user (id, password, last_login, is_superuser, username, 
first_name, last_name, email, is_staff, is_active, date_joined) FROM stdin;
-1      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       Bank                            f       t       2020-03-26 
19:27:02.111305+01
-2      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       Exchange                                f       t       
2020-03-26 19:27:02.185388+01
-3      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       Tor                             f       t       2020-03-26 
19:27:02.253714+01
-4      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       GNUnet                          f       t       2020-03-26 
19:27:02.319708+01
-5      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       Taler                           f       t       2020-03-26 
19:27:02.385619+01
-6      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       FSF                             f       t       2020-03-26 
19:27:02.452093+01
-7      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       Tutorial                                f       t       
2020-03-26 19:27:02.517685+01
-8      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       Survey                          f       t       2020-03-26 
19:27:02.583952+01
-9      
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       42                              f       t       2020-03-26 
19:27:03.007416+01
-10     
pbkdf2_sha256$180000$RBYjEO0WzE1z$x2Avt35TkOL2pMHvts3B1U1NIJalXZf95WnJhGFOAUs=  
\N      f       43                              f       t       2020-03-26 
19:27:03.433778+01
-11     
pbkdf2_sha256$180000$8p8hsOkotA0i$JXXYtj800s5rl0nyU9HCVuMB6ergdsZIVhaN5Qnx2LI=  
\N      f       testuser-JjVD1AYx                               f       t       
2020-03-26 19:27:05.200825+01
-\.
-
-
---
--- Data for Name: auth_user_groups; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.auth_user_groups (id, user_id, group_id) FROM stdin;
-\.
-
-
---
--- Data for Name: auth_user_user_permissions; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.auth_user_user_permissions (id, user_id, permission_id) FROM stdin;
-\.
-
-
---
--- Data for Name: denomination_revocations; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.denomination_revocations (denom_revocations_serial_id, 
denom_pub_hash, master_sig) FROM stdin;
-1      
\\xe0726684567b8f6e972ae98a1c743d83344292e41f48d2696272bbe7d7cf28e4fe4ca576cefee21dcf4d05dc1927dbed383bd6383af4f6919c6185cb86c29fc2
     
\\x22960d2314f1582a329648f60b9cf4260a030e824b1250bc5579971282746a0aa8d148b988945bedf94a4f3ffb566926e399f7073d2355e578d7e71472140d0f
-2      
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x21fcac8b4ab4a51300d5a1315655d0ef8cce440fbf4518bc4ef759e4da6fe8f3bd725739ac7d77455dc3b006f66cfdda86567063b187708b588489408c5eda03
-\.
-
-
---
--- Data for Name: denominations; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.denominations (denom_pub_hash, denom_pub, master_pub, master_sig, 
valid_from, expire_withdraw, expire_deposit, expire_legal, coin_val, coin_frac, 
fee_withdraw_val, fee_withdraw_frac, fee_deposit_val, fee_deposit_frac, 
fee_refresh_val, fee_refresh_frac, fee_refund_val, fee_refund_frac) FROM stdin;
-\\xb08a0f5ed1b5859b7fdf907c5cfa6439e79f21ef48dfbf5c93b7e7ba10262c0652e5b4ea64dca448eda615d06b851d85773a6a4d94e2fa210c7dc9e6730f222f
    
\\x00800003f634a8b280d60e393fc134a026a9e75c73da984ee8b37d6f97126316c21a35030145c82a573dc4c2c8a1aaaeb4190a9ead8c3b5e7324f1f2aa4a4128460c41c63aecfba3a2345ae4fa0ad575077937b99c2fc3db16f3ff57ba26b5509bce6861f7223e18de56e76069a0fef1af8035997118cea476eaad9b8617fb1454af3a21010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x6dec5a22a2f272f [...]
-\\x22104ae3f0d6f6e6579cb6c7e00f4ce253150e2fecb6610d64f5a0643b628c38f6bf26565b91221a9d53b2af71be535bbde0ab3ef0266302668b4683708dc28c
    
\\x00800003d55ade68ee8e9736f077580c578526fda98ceeb09b45fda0ea51caac39833bdb2a18b515ae5e651b2cae56f6d52036119b31fd0dee64cc9fdf41187628016eb46db60fee0297c81effe636f910e3c6475afb86990374be80a89ddc305974c7c72b8055b9cdc965b2efc0a2c8fab26d70aea32585fdb75670084011f1128d630f010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x09610beb2ef510e [...]
-\\x83a1afd9a1b99a4d7824bb878db71db8b8718daab4429c879f55edda6c7050ed8efd60ef95b84af213dbdbbbe283bb84fb32817a8bd2476de1d563a7ae3940f7
    
\\x00800003b28058f5eaa720fb59f2af6159888da4879499ee69315b44294a0f286991a9939757cb48209c78f920ebfe3087af83b6123e44249a16e8e82917f63097ea43306937e8ad94c577541d8e5da649bf5176418f130fef96baf66e093d367b80f04cf5d78c08dfc9c17789bb3515281466daed6f7af3093ae1fefba33c3aed5f7151010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xab3fe5dfd1db939 [...]
-\\xb2b398d560e595d6d879842cd209cc84c924a57538ffe918aa6f3107492495740d2dadd63f34109c3a19caa665eabb781359cac5c496e56a36bfc6926d3a45a8
    
\\x00800003ccf8f6e955ec8dbd5e1fafdbd4c2a5c63d6357c58171c5ce23cec69db797dc7d5d1e634d5cea7484cc2be8ef4615db3f9d0d8ff2769f3f06ded82447c3f4eea765131b0af9d9acae660876f2ab540ad8c1fcebb713f75da2ea03ce49c0c74667771ec592a90d263aa67b3771ec78312614b9998b597c84c7f155d94dc17ba6fb010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xae5361bdb70271f [...]
-\\x76697f4126c154b222b4c8e3f87e1c4aebd70a13aa1b73817e97bac1a03af9f8f6eb6008e0fb5fd0a9c8d147f96e3a6d48abe0f322969a8435081ddfbc8c56d7
    
\\x00800003c005baafd68b9a18061a96d08a1f93c22924052134f0a5494208fb1d411886db3e0ecb074ae90bfffc03cf2b2232dd97116220e176379a5a72e8f80e57083e336a15611a673cbeafc0bd938a765a46b41524f29b5c7e736a7dbc2ff01ed34dc3764435fe9ab7a64f839d3346e6930f36081444990c8c44805dadfdb19b79478f010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x9c201cd873b697e [...]
-\\x5b5d76d5af2cb092c8ff4b46d0d8e1d470bfdf010a456e290b5daf27633401624716c8cad6e767da252c78cf798c9e5bd5b71d34cf9d34788ec2efc8d38db026
    
\\x00800003ad0b99c6fff794279491456c65ef1115fb9d8dfea6b45f82b4971926815cab2264de5dc5a200289c2ad0212f6d7b595833284a423add333c599f8d92ce818a6eedd2df2557883249446258d516af67f711aced066bd0a9afbc5899ac54b0ea901936b9b05243ec73e6cd4e1275563395f3706565590adc115d28ad0ec84ebff7010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x05bc742ac859e4d [...]
-\\x0075376d6ad4bce8456a069e7bde945b7f9dd36d73480a147b55c2b06d18274dd666d2fcc28d94fcf6e8c401c26d462e2985a6714a59967886979c77f8ff6418
    
\\x00800003a9e811c8ec80e58b61eb62f02d23473c1a778a7faeb417a8140fb988d39a04dd5c1bdc031a0013e68d9fe7fb734da2e51f25c950e069c16d8f743c314b7035bfd12cd1dbc0243749fa6ca6ffed65674d1124277e54f48dfddb22ce3556352192eeaa41336b225f6416cfdf30e9a234d74d509bfa6604fb37626691e733325bc3010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x911d59d6e060e1a [...]
-\\x6a947bbcb38b820a51840d9cc4f0ffae9a605d045f0661f391cb241120e2bf147dd7954aec09deb4e8b70ca0725a6fe0c6bfd486b8470773e0970d0293eb5b30
    
\\x00800003aceef5e810ff509df46bb7578317fe5bf1a03e15954addc71e0e89b8043882b7ffa46e4dcf8d841527e90bd55e3b53175d6f849a8c211b49bcbf839e3315a820d56d8bf914c091dafa986b03d45974825feb252f8b18cf00119964b535cfcd03983a8a106995455ea0f3747f04673b600b6a00a7417f21538a240bc589f5d053010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x9556a823266bd93 [...]
-\\xb378eecaa2af3d60482c35dad80df06074d106d106c4a99c0bf17ff78a1c4932f6c61c244ccfc9bce512b86d2e1029b1d79d5f6fa165e29f200906e8a25a1e7b
    
\\x00800003dde42ff25bd4087a637db2c939985b8c32e96ab4a2e56c23d1e0b9d882c7e15def40d30d84363ffe2bbdfbd91dfb174305e772e6aed1dae9955c2580033219d64cbbf69a209c6fe7a71923fa1b349a9fe0b484c76a790da03d8ede39900a120bd4f3a60a755c16ec216f7f0d4e5cead106c197ae01c2a93379c55fe8911b2347010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xa79b383231e346a [...]
-\\x05a962dc843c0ff39ee8e5fc3762a8c73db6be6e8777ea3eb8b5cb4e3423f7eae716dd7826800bc9778e004eeff63d38e3e3496475c5574a6978660bff8d677e
    
\\x00800003ea5907be696e6a24713e2a8960145d74e8e787ec45cdf9e425a2fb2723125176c6540d36a64663f8a8a49239043d6a8e4f0cb1d7bcc240661eaeb961f9c2c4d292b724702e0c1da78d602b89e962d9cf4a9f7bc0124957d22fc29a900fcd6679bc9d752191a65b9f81a3393c662dae0f3a5cde312bbbdac6b5aff830decdc883010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x2a507230a1e3189 [...]
-\\x1f9600cf0bdf811771933679fd1dde21429a0c73f961960af88cd8d1d53a5ffdfaaf5f31cc5f7b28846298ef0a84de0f3abf8e9389814bcb913e21c630ee3cc5
    
\\x00800003cd35fbfe22e73bcb6dae7d7cb25fc6afe7628b1a3a1c2508ceb19b90cc8a6eb7c60ceece972bddb680500a030c29e4578b2bcc3e7000c992ec02811bda634d311d840a72b4735ba94534464b162b94092c192d535391678854c3245594d39ec21ffd5ca9ac2afc864a834b86e5f494004064817fc172c459ae6548eb3c1ce26b010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x40730d9738e4d8a [...]
-\\x5e3fff3c1f92845ba0dcf1651b7ec20c0da933572c2ce961c0b7944ee4ee3fa13562d8fe5d799f8eb8e528cb431033634fe73318ccec18db2246ad6bafa0c762
    
\\x00800003d92a694f24b843c35b266d64e8255b7d42ba05b344cf172d1e5801009cc1307a6c11454e985e3d107de7c10e44fd5129ff91b6cf6183f09bea1098de73eafdc4640b4bd8f1ba96b01fa4ccc417446e9c05d13b046e6be8fe3b8e1a8f5a5e99ed97fd3aa54e169360b504cc34e670c248b3a2ed6c9ba3e9c30bdff95cf08f0a29010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xc70623f832c4c91 [...]
-\\x85ac0b83d4e7d7d59d97c69057d729e8eff4493677e7ca61c55593b87f647fd7fda8d5b2712848a1d4df31ff2f27f60815078aa5f2e59e9db57ea625cbb65bd0
    
\\x00800003ce500a6d6a3c11ee23d22c03268a0a13606922c59678dea760e235a48c590681fe7794c4d1e63777a1bef2fe7fdb78eeaaaa2396f704df79e6dc21fd3ae140465d7879a2288acbd6f337b964455cea44ae3aaf5955331a742996e772d0b77917cc22b13282729d3f90781587d31da76bf86cf9c8431e1f11ebbe69ebbedd1edd010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xb65706df00d2a8c [...]
-\\xe0726684567b8f6e972ae98a1c743d83344292e41f48d2696272bbe7d7cf28e4fe4ca576cefee21dcf4d05dc1927dbed383bd6383af4f6919c6185cb86c29fc2
    
\\x00800003b0551bf050ee616e0a65669e3aa367e66d0bd6fc8d0c188d31a5179bc6f3ef6a584cedefb23babef8688b0b07a4333203d440375ad0f02199a93b17cb42ca6c52def85dcf6b6a796ef98eb84a051fa05be4ff0646cc21f9cc8619576f3599afda20313b3adff21dfeaf689712d3764f83172c8b5b0291b18ffda239af0a9a163010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x6a38bc0801b022a [...]
-\\xf47266abe3cb33716f3b864e07b033f66af6c7be58a6364c28d6c507b7ff70acf649b9a7396cffbdf77bb5bd7af9196c5299191dedd5c9a6ff04073be2ddb945
    
\\x00800003c9c044e7e249e21c0f484f4d08b192186bd0d2f9d0e4ef9ca8c5d61f324c053a095a27700d204435cdeddced1dd0f8644669b46d8e9b79e2af304f42351a0eb094b0f93f6ef102cd0807806d4d3d8f7cb2b69ec866a3f133199b2acd51aa6c219bab92a8a3a37d833499ff9a7eba5d8ba28928702410b9d6620c59a4611ed187010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x74ab80aba486999 [...]
-\\x8ba1aedd039e8a27c23c673551ec9036efeed66998fb3371591db8ffd4a3782ef69b6a62969744c9c2052c40cb4600a8a1adc5bf731d0a4f76bb882fb7f20882
    
\\x00800003b98754c02d0e499276a63d9173c48466d7a97f253b8c129dcbeb6b3b6f41362bcbf90448da2722a6fe8655016d434030d6cc7e67617bbff116ddbd4e4e412ab56333aed2f0e014a160c9eec0009f84ba6c09d606e25bf74413fa825e62c37878df606c306c0b41ddecdf854550cb5d5fb236768bb60f16f97f16aaf4b50cdf7d010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x24d467b321192e0 [...]
-\\x596dd70417dea3f96b72decf73ebbee411295403914758bcc5d562d1232ad6aa8b14857b58e1cf9ae9b1535ffe4fbdeb4e9b6d67f0739173b64d9bfab00c1f0c
    
\\x00800003b0e1c04b9976d6eba81ea37b67007c594a9d7a843f4437e81e26e671e66234e9e7c044d3aafb293cdaeb4a62fa3c9286c4bacac8a5925a1fae8aa84cf911deb8de017893b2317210d7f8b9f13ee8441d922413e54f429dfb3f3c778fd27e6e497a3707bd763349aaab51df7ecfd7ad26d30456d5715958a0f3535e4d38d4a30b010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xe314ee9e945c658 [...]
-\\x117efb8a2696ee71b862baf5718e5e897aa7b454c0b71731a8c51e174d6f47f0fb5f2b3e863b62242ab49a94f4a8c3b6adcc4c33e1f4f8eba0d0f2ab121a136d
    
\\x00800003aa84ecfda79a2e2ee06163dc14c700f1ef089493f905b39c95b555acc265c68738b0a956f241e41b786fcf8e5a4e44a2a95bad2458ba257454e45274421cc58c88ce300d0619f05b845b6c9f8f3d691159469e5e0f44a21978582d2bc53e800b7b216ab4fea54fa8b3ec2a46c01a635725a763c4eac46dffc02a597699cf8ac5010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x2f5631d9c0da794 [...]
-\\x133ec98fa5d8efee9e3db8305dbf2710c92fead62b0e5498cd3b6327a08bcda6829d723b7030edfaefd254544ee98919cb79ae488d288f0b44e2398b47543cf1
    
\\x00800003d12b2e46adcb4b64c396b334010401f805bc1f5448d23a854aedbac29ee346cc069eecd774a7d66467f85133533e7ae7d284c091bc499d012867e7b9826991e1d9dd5c9faad98011e342f5192ec64775c1dc93b2b2b5b40b7cdaa450085574b5e682687c9b77866211b8aee01b4ee5bf5f287ada53c9ece7e32e5b1dd34afe15010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x553880a4746a6d8 [...]
-\\x5557667cab72b0e107bcf82f6afca038342e4dc9a1c9ad16e03dc7f8b087ef861fdfaf39c755ca5f63323740dd13edbbb844a72769442659736031ab8dc9f825
    
\\x00800003edd5526b05915fc86cea4943435410a19f281c1d89a54df84792032e495147511eaf43a84f86a95570f922653a238f97b042d757f0cdc9e969cfc0a075099308880a6dde598eb3a8ed09e8ecf64edcffc0fbf3f0641ed1429a45624e77ceff7aa1d30ec6efd671a55059bcaff6f44a168ed13fd35a74d251975bd4dbb66547a3010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xf36a4245dee05fa [...]
-\\xe282452214a9d34232b6c24f6eccf2a97893d2ad9741e9e0b4c874a5c5fc2544446e0b43c0bda9211bbdce61a4762bcf9db641b46ec67ed8f71f3b0ff398d5a9
    
\\x00800003cb8272ab137e8957e6b27a69532b8e418d4bae8ff05d5ff728a426577b606d63afc82c2062498dff4957aafde398a7834e5f0e2368598ce52efa69fc9f5dd6d35390b476d803880f4908dd953f98d22949c41694d8c2d3e37e2c229f2246b50ce62b50fe32088f5885fef1028a5aef7dfb307f86625b6eb2dbd145d32bbb9947010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x7c5d50c01a587fa [...]
-\\xaf1c014942d7a667381cc079933a31eee8c9ecba69f1d05957757ff2735a71c20ec47253af465621395e5c5c08b0677345119eaa1d49309afbec7fbb27c85185
    
\\x00800003b1bf3b11f7ccc2ff27f974eac3d706d7acfb5449ab83b8d8e9041c6ceef4e255bb779d1221160f4f5cac7e386f8e76acf607dc6bc25171800ed692fd6ab86e4ca021ee55ce71d982970293ff74d5bda9c57914e77bee22bf2f29bcc0655467dd6c28faaf4b10986a20318fd46807b81250713eb65ed39c8d5e8ab3581efbe2cb010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x8b7616206d7866b [...]
-\\x5829756a33e2512e0c52cde712e9c737c4bd5efec68356606c9fca2163cb40262163ea08a65ac6a76a145397423299aa076a8f1f8e9957b8963409f85fdfb230
    
\\x00800003990f6be03aa254d61bd3a440c5b36314cd6a094b146a52be5db6cc09c3be4c96377c37b3c63e16d2a680ff720969af10986d4ba1744b3006354202d10918c8268788457bc447b9bd82ee1e296acc0799167ace2b11138abfbec7bd492fb55bc9b768d64bb0b70fb63b19f287c29ba2c48b5ea25ce20fcb38948c17a6463265f1010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x761e40863d94889 [...]
-\\xfac60747f6f5230990e394d61524d5e5c2d7fde9d64cb67971383afded993d28b8ccc24859da6595521f2131f8b29f7249a132b21bd783ddc17df6743baa690f
    
\\x00800003cef2c01704641dc599c84d724e2a23281e41c0b3e169d762e75cbd349c57b21648fee483f3d4f3a835c844b1abe496d92c8b812ffeada1bd501efd5937e6c1e2fb062565d0941fd91d57aab14bafb9b3e472dcafa3008db23a90a6bc371e8314adc1e48ebfd9be4eb090381421bb596b2f9a590feae44abdc7e9d822ed71e791010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x741daa2061da8db [...]
-\\x9de8cce48ed3e96948d3b3afaa80ce3b88300019c9bc6f2448a82a9902ab58fb624caad443502b31a5b346881d74d3a52548fafdebe59134015a4af878d25f1e
    
\\x00800003b94088d823d110517028c323cf8eb01011e1242c875323bfca0e1894e19053b015bc801b61366bd90a52d60a36c0387a07cc5cc66e2bcad30756a89e6f416a5a628ade9e3d395e045eafbba08f546028e93e40605bcc08fc0973923b2d81641d9acba5cdf22271a8e0fea3d55a60fd007f4bed17623d85a81aae53e3f06ff4bf010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x9a5d96fb19223c5 [...]
-\\x3bacefcce0349291c705d69b39cba778aa0701d0bb2747d3010479c031f6f407e3be7bffe675b6076e7cb84ddd42da866073233515581cc8beb594980927f883
    
\\x008000039efdb7a58afbbbdfc3af3aa76fd48254eff1f8597ed1b147ce649f423de47858b6b5f07f6e59d1137bc5a0131e9514468c3237ec10f9b67f481c7136a067f95c52c24620c888c2cf6b9d08a0b7ccdf0d9f70e646cfc2ff46d7724d28135600036ed9bb37e78a924f6db1cb6d0779fd56a352f8faf756502b484c1a2b1f27c1af010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xff2eb53c691bf84 [...]
-\\xf3b15f353353c828067a48d0cb5cc98b82fd0fe9f0403e675cbd25a702f0601c7254a5c1f12aa67841d9b347bed3720680b3fe8f48b3a3219ec5df26a55f41c6
    
\\x00800003cd5947b0a750cf42de888eeb4dddf5546075f3ad6e010b1802cfc7141018616b01417cd60c4bac659de6ad3e93227de6377109f4a62c8c6c2cf3cc158c6a6fa8664154f84221732e11a0b44ead391f4a062356f824713f0e57024bd9e93f602f3d7d96a25232dcfc993ffa4820264b49b21746ab6b9ce8d38bdeeb69d540a961010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x68ad49dae3dc521 [...]
-\\xf449fc3fb518f2f296fee1686d745967d03c457efc5c843ec7d18603aa0975b7295b28afc80c03a27359abacd0b8707d9fc2017c4c4ab91a128481b82bcd4d42
    
\\x00800003c65e7547192fde53f1d3d862a15fe8290497f5cfc6a6bf695346c6a0959fbcf01df3afc8eedd2df6555a65e60f0e34e94cfbbda6c58ccc5928f9f35b230c38fee2ccf9dcd0977182197511ab21d7502703a9432fd3ae9089c583d0d503b2a6a071074980f69a922f6a52d38dd24374c98ce95861e753c49fa87de7a0c88dcca9010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xbcbb51a02765929 [...]
-\\x747f5c89194b7266b995701b18f8f5f9b31a1f18997b72aa306b12fe8c1be3db30507cf68c32408ad8ed9accdf31dfb56ac917b362dd21e4727b7e499540110f
    
\\x00800003ceb8ec579cd089e157fe5155f3d0ffb70db073940f8a163c1a51441a44cff4eecfed0ed60c886107592cbdaafab3ae817182766a6402dd7d6f95aafa3b65b8cbc2fe81ad57d6d2924fbe3c6581f70250ef4ecdab91f43b588e14ef9091a8bd72a61d95e76606b3840beb7794fb92462ef1cae154a2cae67b30525f7bb0a61231010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x7ebdcc5dc79759b [...]
-\\x0e15259d45b92cb3220d56402b7cecdde2e0c7b35ac8c8fb35bac63491ed0087c7d878333802f9f46f17e663cc5e6a75571527114651b854ca920dc09d9d456d
    
\\x00800003c1e2c9c05b49085c35ac878ec97e53ea09cbfbe8c06c1e069bd477389dffc4ff73f6ba8c3ddd279a161b598d8d599c7e93778d45f89405aa457d77fd912e4ec2793783bd28117fc3c89d9dad1520dd46d58a5ab3ccf73b1bd6cad83cdb08e5992071e356555465f4fccd29a0465f150e18562ab78da1a7e26d288870f12032d5010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xe7fbd1cb37ce89f [...]
-\\xda270368811829cb9103c1bb50c9d144bf3b263a2ef7902558d4d806de58be3df7598b6efc7287a0ebf7e340eacb69992d32e5316ef63b144df2b866796cd934
    
\\x00800003a3e5d2201f8f6720e6206acf80cc2ce407adba174d79c4f72d30ec6c83e8d0f0ca7d29c489974824d6fc7aae5d3b203de67c6f5d0db2dc8f8719f09d30f9ded0c0698455dc4baedc6a6627648f5ca4943d1e0e22a3c49dd170c625dc2a6a06e1e9d6d187792a3748e9f73fb7c795bd9a6b59505a0e254e7305546209cc6f0fe9010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x7435cefb6723aa3 [...]
-\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
    
\\x00800003cd57265e6acbc3fe78eac67ae683406c3ee72b118db97420012fb8ce9faa64dc62e4489a14b72b365f0bd697ba4a375e33029851ac7840207be92b0689736e62b913588a0a95aa72a382236704f885bc32cd8ac01e913640226f4e932155b2083ed05eb0899350ac59120c5e1e3d287c8f63eef98159d4c11b61d3ee84a03c43010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x04eb4aeda3bea01 [...]
-\\x993df19db1d9858d347a101b12278024a0034c70b2ab7a2b40bc87ee5c15e933ce1d952bae328b5a428c8bf39924481466c9ddb42fcccc8592324c8760961366
    
\\x00800003d9316d8066f9e582fea86b1e1a6d846184987ad96f73f88e66e30853b35c86dfa86953d3264749dec61577d52171e1abd66213ae7eb2999953943060a4530adf930e44bdfa052dc6d890d4315693870f11c4091de89005aba66647f90ddc615dc78f72c1374567950912f85c04a00716e2833e576d403ef8a20e2972e7a2758f010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xb9921d59e4272ae [...]
-\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
    
\\x00800003b986211387b410e1acf0938086595550c7cd4f84115ac0c87fef183d63963a9eb50d58ff0100e33466a39f26da9cb5f9088d829c1e8243c1964b49e66e39320d06ae95b388148e13dce4693fb3309c68b374b521a868f41da9b0235388c592964602202f776f807da998d5caf858b36fe46e983c1b063c28ab7fbbedec3c697b010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x78bcf7e85711ced [...]
-\\x98e9f02ee744cc60bb24bdf368c4b1a01e70b6d327c38380cd6a306d5451b79802d7b11a2859ffa86bc9e86f80ce67a8fb8aae6adcd0274739822cf2167b961a
    
\\x00800003c1f82acfb562d6bad63f16a1bdc8e302dfbbc1f9cf9136f0b5ebd0204abd1e47917635712b2eeb9ce861a50490474e4345ef60042047a1376717510059037edaa8c0df53da16ece15d91b7dacb694521ed903af2ac0af387992da3d326feefe574ec7813ebd7688d77a9170cf70a55e9f63588e1ed57d220102933e780a6f8d1010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x08c5c5d8ec00c2b [...]
-\\xd628b203825e5c1d6f06fc772be687e4b1236e8525660bebc08612c7d985f1f55c2d01e32f26a994ee775a5d425c1c02d8c75ecc00fc90ede6f83fea0a5e090d
    
\\x00800003b1ac68a79a3326822f02c389681aeade7733d91ab3a79427c16039783f6f6ca0de0bdcc63c5bbff73f8da7f532a569f5d2a563eed5a826b0485472e71659dff71e2dffe3ea2bffacca6ced7363f77b40a3e6f22c0bd3c6b3e9a27cea48f9aad0a4582f2b0a56182e771d87f08c30f83646fcb3394ebe7a40de8cb1167d4235f5010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x5a703fcd8e76dba [...]
-\\x478fe9f5af3431c4d3eb0041181970ebfc4ef63e15f712f3f0882bf6ad45c14698ac62d1c58b687b3811de87e2a3f6bad2a04382e70b98e225680285fad80678
    
\\x00800003b7aee48ab5d2db9ca0c90bdd4e6248b88117b984a09d3d1fd369373ae92229daf97270d0898958e32507471ab8e0930b63d4cb30585e5dff7f5c11060991ec3bf00c0b6a492be39595674ef0cd1c139c9ad9e04598a97e01ae51d40869c9011b75b7c5cff426c314eb1deb36b2d306e7ab0f03c157b45171ed814523d66ed8d9010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xc981df81e9dbc37 [...]
-\\x423cb1aa741ab0a5237c1a1e96d8564a5cd1a4e1cc092690215c66d33c2ac3bc55d265997f49cb54405ba72c621465571b26dc781c6fc224ebdd418042540ffe
    
\\x00800003cf2c3266dda5e26deeed6f12cbd216497461ef98d732286109cc866bbc281bacbea593f534e77700c6caed6084311fd243f058c53d622b69d7ac525f2eea33ad8796dc6ac6eec5af846df48c413665614c4e92c3cb4f6f3f03dcef1de33e3700ff2d8ae413366d3c92d26d46267c0027d0dec324da79805d85710790afdc1a8b010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x8b37dccb31a6b8a [...]
-\\x770c748e581e8ed7edea219a09ecb0018a2015d5a8017f746511950f5da1c4ad1ded37a5f054bb1b0b8902cbd3767f9b0cf4e0a8e5a8f29bf555eb89dfe78fad
    
\\x00800003c25aced68214c1987b142f6407c6a40b01c3cac34606abcc69f71e13c5e3064b85a6b0a4ebeab7350e785887cbe9b1bc89746f16488352003fb00b202c71d1dbef46651c18b0c25e080a2a17c9c05f00c76c07bdf01399026a51f9d5e4337e9e4585d7dff0b2ec3ed02db6458c297dc892e3542037180b15993904eefaf64013010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x53048fbf584f2c3 [...]
-\\xd24ed264c3aed6dc5e0b038789f8b96c7a39e5afad1a6d1152e7522dce16cb07057c685ebb3ec13c4d813e7526934a0bedae3a3f69ff5ed67b17ce19c3900d07
    
\\x00800003b7063021c33fe1a2350cd57dd0460a9b87ac5f1e1de626400f6c07b7b930180a8183753725882ba4b484a3995ce50f69bfcaa55decbec1dee1474478ed1b09590672eabb0ec284c40adf1821da15855b79226ab705b915f1a1c7700b8534fb5d8bca6183ff89a975bd772dadb4f4facd3206f048ed71cbe61732557e5f09ca6d010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x9927a1597b6a4eb [...]
-\\xf83190c4582e1152cd1d1cc323b2b0bce4603dac971c160babf3389cf5e585796e4c3973db82924be749ba9655471d73653774df3963cc86535f423fd628ce48
    
\\x0100000398c7409ceac2a45d8107fbc805d73def578387ccc929c08f6ef999c1d31656b8aa88bb7ce82709cb61fc71aa1866d4c208e875e0da6edd6677fc3ee1f4dbf1096ece98873937a4a06c1446653db2aea6bd51c3a288b619420305035c785b9d78120fdf2900bdb51d388c130f66871250ae7fc84e0848f44e4edae8c61811cc9b35f5b8c280bad4103f47febb3476df92ec7feaa3133b3f128e7afe0095b37f7e149c44d2f92e107e544dab6e5926b
 [...]
-\\xabfb9c9fcaec888f4c41cc0caa0697e857c7438ffd5b44ad31c6a03706e9f507e47b84042a40b40bbfce9ac3086337f1f93a3dd6c73b81b5dbe6b8008d0b195d
    
\\x00800003c3e1272d04100a4da90c1c1fa880a9ce307147aea9c3446fc8d8af0c79c8bc5c3d18245f1d0de8341b7604e55f037c699023b1617f4a680b5af11c7667bd179ebc624ada5e9a566f4def432059e4b6987a003f9e0d1642d78f881d35f70e88596c8fc9a04b3fbd58db223c3cf67bf5b918d49c42b8f278d5b9fdf4c22e9b0e8b010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x92b719ff98607bf [...]
-\\xa901213e3003e1b9010fe14ecec385d940c1062eb55665cabd1b7ecb4bb221b5dc4a504edc0a98341564c526e65f765c0c0339a9c4cacc14047f921974c0bc3a
    
\\x00800003c2fc18727b002faaf51a748d609df4f2decef150315870e32ac863700490a84ad74da172a383e7cac437c2d7c01952fcc8e20acaafc0a95f7bbd39d3ecc16f9176fe346c41124efa51ca753226bd8f63439fcb019f191bd06b28c88144325070d8c30c0647ba0649bb6353da90f52e7456b2d15a91dd83fc08623928e91d644f010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x078d5089fda1a6b [...]
-\\x6fb5795135c3e9dda4c1f9726330f5c2133c1f10d75784c9acf91e2f5c480a50bcb7c3af863a2ce41df9aa20ec99eb6f9ca328ba3ce70718d4bbde98467f9077
    
\\x00800003ce0c661bdd3ecfce5c3c0a4b600dce4cfbae366e89a36980c73737a3c885b9c18e0bee6aab678ceefb5c7d1fe23625735c1528624e06eb7855e27e633f0b968ad0d28c883ffc38db707d9800abda97d68ae9269bf765f40f7155ae91a7d12d5aed6ba9884c6d2b5a99c4e3fac277e21462f227fc04f2be4a049e16d8aefa43eb010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x20088dda14c294c [...]
-\\xf67f29265d2ff217d3b10a405f10948095527a1130bd9940b449ef76bb911c4fccb4b2e3d16d7e032f91a5eb71ab1d4a67df4430f69707ac71b5d39b30659f3b
    
\\x00800003e006a9ea892bd6352b09367421a6434bb14481eef0b9815dbcaf34939bfbf1ab545b0795fd39b1fed1a56d52581e7ee5d0143c9855f0dae8a25046369998320fbba3e6a51cc772110aca3e9871421242b3b1ac5416f5adb1989cf65508a52f0a282bf3017210f8695540531d4ac25c91c4095b3759da44661f34f602d373fa85010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x649d8a73c8d858b [...]
-\\x88337537317cc8b51018fb4c4548bbedcbbf28c0c2eec201d8352f9110d08e80d3e1449a0008f62e5f44a27efdaf5ffa99c34abfb0279e2cb7fb8e9e9c091ed3
    
\\x00800003a9fb3a0f9cd59f01975206a2466546bb1151c79e3fd721f46589966b81277b685ddd768f58c505b1a40de62e87073e623748ccde14fe11933c25c1d1d9d9989c501fec933b04921ef94e72e2f27b403b3935d4905a7df21d1943e372195315e62379ed7c040f4d1110eca8095ccc5dbdcf2bcf533ac49db010ca6bea0dbe664f010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x81f04ba3211ad8c [...]
-\\xfd2ad49aab62ebae12f33fe6de7ccf47884d467965b906937194b5fc4bff011da194010a26d10aa3fe51d376fa91f6b24e4a874b9641b755ec78ff6330f913b2
    
\\x00800003a13560cc33a4d3c46ed4936079d4a857a36313d950aa782e0b2e7caf438d76300c0a8f827bc691451755ccd1a12d1520af895de882128c92b21cd270c5d60815bac69ef00944c7389412b801b5ac04553cf4bf77c15463c3ee72f4a69b4df0c32f0af8a34e9d2acd478f60787be2769ec73b08e6ff4248fac33decc33727e75d010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x1938eecca25bf04 [...]
-\\x47c01b601fcf1fb694b873ffcbbf6f29a967a62a4d8bb117224dea0059d89a75336a58a71a14a0c8e08474116ede3af09278f75027f5017ec8678de2b3a9fd79
    
\\x00800003bf5abf26d345a5a8d9c4bbe7566c68c34c8e94f38078dc5c1e044071954d2aaa75d0c91346c324af56b6965e4c6a36068820f98ef77185043b95a05bbd4f0a4912a0bfd9cd939fc990ecd85d3ad2ead9d5dcce378ed35c08ebdfbc6206887ba2d84fde2b64506a66fd84ea04f8fad937565f2985f2df0dd2213ea4db6240cdad010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\x76672d0041d15cc [...]
-\\xea07a69a2e207613ee0342ac42375a512a5de80c2de1fe45b8e02fc088afc54e57800714896492d7592f1760ce39a52b2e993f188ae22af2b581338541df9e6d
    
\\x00800003d584493d65b12ffb09660cdf99fe7a0e73cd2bdc171f3842ee4553b1adabd4fc6cc66898994cbe304f1556bfd146b10c0d99c5f760d0914617e50e5ff2bd3f87afef5be664878951b684de9c04c402845dce1686826657ac3f265a83f5a83ac164d9a565bd76b3e7d7ace886df11e36b43cc261e66cf72273a8569bd1dcaa323010001
       \\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c     
\\xcc6fcc2c5aafdb1 [...]
-\\xb09b6217d72bdb8f393332f676b9c85c2e246a6685c6f4ee8e96384b23ca29e89e587f782d24625001c7cd6cea13e85fdcc9591452f43c6d717d24297dd2dec6
    
\\x01000003f03df875cb648ec841dc9a2f1b022dbbcdda85a0a751e4af31f417d93ab82940a39cd6a012173fd2d23660794f4c6abfa808a096ac80693b1e37ddd90e01ceff63814c30b181cc571366f996044b43e8e8353b1aa05e9fb104d54a4cc808b1fa007a052531ae857cb0cf835ffbc6eb8995c7d6cc761dee167f113c315bfa15c54fc5c70a1afc157e9b424863b27aeb1f3f2418f5d8e4704bb950cf697e45af263e03330804c618a4cf74c2b8a291a
 [...]
-\.
-
-
---
--- Data for Name: deposit_confirmations; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.deposit_confirmations (master_pub, serial_id, h_contract_terms, 
h_wire, "timestamp", refund_deadline, amount_without_fee_val, 
amount_without_fee_frac, coin_pub, merchant_pub, exchange_sig, exchange_pub, 
master_sig) FROM stdin;
-\\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c    1       
\\x33dd12045a32c69793ec8aff33d4ed3a18e96490ef0e6a95c4216eece585e79c4589523cd3de5c5435b8891935944c19f544c1901152fcdd224bb6daa90793e3
     
\\xb5a83c13d972e767ee6746d0537d32cffadc8a0af078212c858c4e74d835e965707f782edb666ae541402ec83b136213951e730ec01021fd0d5679583f67e8d8
     1585247238000000        1585248138000000        0       1000000 
\\x24209fe74c418f2babfdad3860e58645ea750c60e1d1ad1ed22c110ab2eb83a0     
\\x4d3d827abb497a7696f0efeea4d0e9f1eda12fd5718 [...]
-\.
-
-
---
--- Data for Name: deposits; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.deposits (deposit_serial_id, coin_pub, amount_with_fee_val, 
amount_with_fee_frac, "timestamp", refund_deadline, wire_deadline, 
merchant_pub, h_contract_terms, h_wire, coin_sig, wire, tiny, done) FROM stdin;
-1      \\x07fa6375f8679153a23927ce068b019acc3d50fd696e74caf09f2fd776c21cb8     
1       0       1585247230000000        1585248130000000        
1585248130000000        
\\x4d3d827abb497a7696f0efeea4d0e9f1eda12fd5718a1f5bba57c27e612144fb     
\\x8390d204c43d8418bdf4a2e5466fb50084a86829ab5b445cd38c199bfdf433a6b2dcb78d977ba238be29fed3640acf62954837308581bfc86bac0c48c0d08997
     
\\xb5a83c13d972e767ee6746d0537d32cffadc8a0af078212c858c4e74d835e965707f782edb666ae541402ec83b136213951e730ec01021fd0d5679583f67e8d8
     \\x8a54ca1e621e70637f08def917a9e7ba [...]
-2      \\x24209fe74c418f2babfdad3860e58645ea750c60e1d1ad1ed22c110ab2eb83a0     
0       2000000 1585247238000000        1585248138000000        
1585248138000000        
\\x4d3d827abb497a7696f0efeea4d0e9f1eda12fd5718a1f5bba57c27e612144fb     
\\x33dd12045a32c69793ec8aff33d4ed3a18e96490ef0e6a95c4216eece585e79c4589523cd3de5c5435b8891935944c19f544c1901152fcdd224bb6daa90793e3
     
\\xb5a83c13d972e767ee6746d0537d32cffadc8a0af078212c858c4e74d835e965707f782edb666ae541402ec83b136213951e730ec01021fd0d5679583f67e8d8
     \\xf4976cd0bb732303872537f5f8 [...]
-\.
-
-
---
--- Data for Name: django_content_type; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.django_content_type (id, app_label, model) FROM stdin;
-1      auth    permission
-2      auth    group
-3      auth    user
-4      contenttypes    contenttype
-5      sessions        session
-6      app     bankaccount
-7      app     talerwithdrawoperation
-8      app     banktransaction
-\.
-
-
---
--- Data for Name: django_migrations; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.django_migrations (id, app, name, applied) FROM stdin;
-1      contenttypes    0001_initial    2020-03-26 19:27:01.883355+01
-2      auth    0001_initial    2020-03-26 19:27:01.911343+01
-3      app     0001_initial    2020-03-26 19:27:01.957748+01
-4      contenttypes    0002_remove_content_type_name   2020-03-26 
19:27:01.98024+01
-5      auth    0002_alter_permission_name_max_length   2020-03-26 
19:27:01.9839+01
-6      auth    0003_alter_user_email_max_length        2020-03-26 
19:27:01.989985+01
-7      auth    0004_alter_user_username_opts   2020-03-26 19:27:01.996036+01
-8      auth    0005_alter_user_last_login_null 2020-03-26 19:27:02.003583+01
-9      auth    0006_require_contenttypes_0002  2020-03-26 19:27:02.004971+01
-10     auth    0007_alter_validators_add_error_messages        2020-03-26 
19:27:02.010342+01
-11     auth    0008_alter_user_username_max_length     2020-03-26 
19:27:02.018993+01
-12     auth    0009_alter_user_last_name_max_length    2020-03-26 
19:27:02.02738+01
-13     auth    0010_alter_group_name_max_length        2020-03-26 
19:27:02.033904+01
-14     auth    0011_update_proxy_permissions   2020-03-26 19:27:02.041875+01
-15     sessions        0001_initial    2020-03-26 19:27:02.046428+01
-\.
-
-
---
--- Data for Name: django_session; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.django_session (session_key, session_data, expire_date) FROM stdin;
-\.
-
-
---
--- Data for Name: exchange_wire_fees; Type: TABLE DATA; Schema: public; Owner: 
-
---
-
-COPY public.exchange_wire_fees (exchange_pub, h_wire_method, wire_fee_val, 
wire_fee_frac, closing_fee_val, closing_fee_frac, start_date, end_date, 
exchange_sig) FROM stdin;
-\\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c    
\\xf9099467bd884e86871559a62a7f23b6e876bf084a30371891b5129ce4440d3cbe27afe387d39b2ce8d9625abd388517c81bfc8da9f2e0f8c9471bff65a802b2
     0       1000000 0       1000000 1577833200000000        1609455600000000   
     
\\x464682af73ec741329585433751b206eb2520bb65470ef018faa1c485030057220b883b6b968b8fbff256cfeecf2f995830ba20dc6a356cdc0207314d5e2af0e
-\\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c    
\\xf9099467bd884e86871559a62a7f23b6e876bf084a30371891b5129ce4440d3cbe27afe387d39b2ce8d9625abd388517c81bfc8da9f2e0f8c9471bff65a802b2
     0       1000000 0       1000000 1609455600000000        1640991600000000   
     
\\x472c8ea2c7e1e8cc0bc5c55063f4cbe3d67b2e94355c4fd702b14b64d2986090292f67493a9921a63aa67057c5d169aa2e7f96b4c5d729879675e6d07595dd08
-\\xac008e081df3aa3a18c395c1a8c33888afa3f863481231bf79fb8031dd2a4f5c    
\\xf9099467bd884e86871559a62a7f23b6e876bf084a30371891b5129ce4440d3cbe27afe387d39b2ce8d9625abd388517c81bfc8da9f2e0f8c9471bff65a802b2
     0       1000000 0       1000000 1640991600000000        1672527600000000   
     
\\xc5ced6e9f6914133e532678d4136ddd79180a7465a0fe8f11b9d47f74916b71c5edd6f5064da771d819386714d6bb8cbc252a14554cae356630008a81b7ac70d
-\.
-
-
---
--- Data for Name: known_coins; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.known_coins (coin_pub, denom_pub_hash, denom_sig) FROM stdin;
-\\x2750ad23f959b4616f9bb9913b2c05789ac60905a9ecccd2a499f99ec9d40d0a    
\\xe0726684567b8f6e972ae98a1c743d83344292e41f48d2696272bbe7d7cf28e4fe4ca576cefee21dcf4d05dc1927dbed383bd6383af4f6919c6185cb86c29fc2
     
\\x974ee8270e59824583948825272df1816ad14b0304ec9b37546fc91f8946d27416549486ca279f35b054390663c0475b1f29b9bffdec6bb2450029b742d7694ea034f18f439b17ae7aae6f8acd8f3939d9a4c3fdfb7bbc448993d8b4d082df47d340c5e62faae002d728696cbda03eb4362aff1d4292f6f9d34d6ab6f6685ad9
-\\x07fa6375f8679153a23927ce068b019acc3d50fd696e74caf09f2fd776c21cb8    
\\xfac60747f6f5230990e394d61524d5e5c2d7fde9d64cb67971383afded993d28b8ccc24859da6595521f2131f8b29f7249a132b21bd783ddc17df6743baa690f
     
\\x83c04be2454671a89ace301cbb411f274541dfd4f7507b8087902a9b291ed676aec6f727f4d6f1a3e0d476cbbc2168e506d35a832c3e0ccbca28ce88b25c32756368ab972d2fbe5e05f665941beed0282f0ddf81cb41324ea5550294cc3f182c61578a09aa341ed5413fcea49821ce673841694ef953374b07dbabfaa444cfc9
-\\x39ecdf0cece28769866927fdcbc0229e73e0e6458efd948eb07278b8ac0d738c    
\\xb2b398d560e595d6d879842cd209cc84c924a57538ffe918aa6f3107492495740d2dadd63f34109c3a19caa665eabb781359cac5c496e56a36bfc6926d3a45a8
     
\\x613eea075a730f76e14eeb41e1baa6eec22ff929880ca8f587f66f402f627d4d1bcfa3936042c55be7cfec44313d25c5a16632314a6d235b416de39be3ba132789106d61a1adaedc8c54a100fc9ac6aeadd2032a4e654029cc67e8a3db891f69915aff2e8519484ad76bd56b2c5be8f4837d6bde18cc5f4b09fd0a679b91cacb
-\\x5dda7191fa7b5e84562493ff81198c38d00b847b9c16c26d8b92b906781e7560    
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x80074868b3e549225c6c87faa8737dc832aab8407f5d1fb65904eeb4045ae170b002443a63dbd769848f172d8b9e17d469d922fa4cffc6381f1f3dac00266df603d42a70eec700b69b9ede18a95bde9c7938e585a4a48d9c721fd947ae66686487b029cba41e527bdf8ebdc86c5dbfdad788f49b4dc2f58a6403995101e487ee
-\\x06a8b55926e31e43b7514c608cc267fe498bbb6ee62655ef792c71966af1fa97    
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x9e2827f7ccd5b3444a171d2279740abedb5ee623092e02cd602c7454855475b92de52cfa3dfbe9f060ab8f29f645af7b4cc230575212ad52e9bbe3da8affe17bbc42699e97d81b2fa334c35977dd17716fcf2bf3aee3c1c24a2ac727f26d64554e171f7fac975e08c81ee61d7671ad3e8852fac6171757d1d7c7d39e2554420f
-\\x4c647b1aa4a9b73b44a797b104bedcb9dfb4d46ba36b9e7b3f2125b3ba761c4b    
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x98337fbf9c56519ec1de2aea2ea0162e13691aaf954b8ac8a32067d7f1a45a5866e99ccb03932bbf1c445100ca70363b4cf28b76e3bc6443666c677ed02a74251d32beaf3a978fef137aa00d655079e32df3bb495d02998bbe41d0e552178bb36f15d10f25f6e609c25ba69a06da8a05e65ebf01ab4f22b7b18373248506956b
-\\x6582a1874903dfdb722dbfda9c54cf0715fc63801ed583deb18e180bc8332a22    
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x3e9426a6e6f7190342e4c2145619544881470c114cd752cc6648ff3f96d4970ab6c809695dbfe879c60cb03014b8d3714f3a95e8f6c8627271f5ef5e1af9eed4db7257ca7367491b7e99d0342cb57274a4be51f873b1892cf5a1ec548e59e2e8e0919fa4c47b15fc5f973630971e5f7acb3519c372432562b97384f5daec9245
-\\x310b12c172bc4c7af4a0afd129a91fc88f59c07a7a9b78d528971be425169509    
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x851da010c78e988cd85fb4ec0e7df7ff360af246eb7e11f2843490c535375aab07f615c7ce1f98e1f636083f44d8e4dd208936f7355b2f074a06ae2e2aa8d74a53e8330999df6667c65a2dbb452b58956928a47be6bbcdb2df9d4fbc802080a54c2cb7bf0a73cadc6c51bb7473bc15b190635c64527c05c0910a2515ed31cf72
-\\x66e756ee0c152112a5a31e2127d3a13df65fdcc6a5d3de9abe803ed293508f05    
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x0b100148c18896ae2e7ca3b18f2e7b83497217c4a05d2a64b69e233264dc6f2b817871aa1dfd074d3b48e29fa20f782a45a66922a0d805e7f91b9431b19dcc1bf1a11fbe6165def68d54eb80f5bcb7b37beb38641168ef15d8812b9682dc7d1b3279e499632139d96b7996bb8d88b00b902199b7126d7a492517d673b57a1cb2
-\\x4a4693f51d818eb32db0972f19710b2450e3514033fa33e6588c90e265b56095    
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x563182fed54bc151b33f935ade827faf970a393f756f674ac85e31ad6e02b599f9c2ec8498c7b0e9441acb8c68da3688b56c2ce7e26b4aeaa5421356c6149aed33a9832e8f5903f2a140ca499d171d156c04879318ba1f900bc0eae9afc6ac0094d68ad782ddbe49a712c5a59a6a9125217b82c53ee99b4a0a37739872098a4a
-\\xeefcdce7677b4b91ba60c28abc7f2f827d8868e09abfb439567e255cff085137    
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x9a239c847a3235355ee0ecd526d486f213f3df2a4dcffc8e3e0d691ad59007995d01e6f4723eb9334588a14b993ab4f039bf85efcaa58a251e9b7e64525f0a0a8084215ae18b014405b73ecce7e6e840ca5ae0de3ea46bfad2b81f2e38ec5a5961e2fa3cbb7c61fb67146cf82528e1a9b987be9f83bb7e2927a557d70a00835e
-\\x24209fe74c418f2babfdad3860e58645ea750c60e1d1ad1ed22c110ab2eb83a0    
\\xb09b6217d72bdb8f393332f676b9c85c2e246a6685c6f4ee8e96384b23ca29e89e587f782d24625001c7cd6cea13e85fdcc9591452f43c6d717d24297dd2dec6
     
\\x1aa15032c925171a476ee694c75fcbee781cf98fe40034ca13f8369a7e8d0c9a0c1afca19353db50f3c8e6a8ad2fdabfe69c9786182df0a064ca5217c5e0d91882cf7d45109f1fa0435eed069ba3ed872c986fed3c7c6130d2e918733d76e262aedb0ddd4ff03d035dddfd9b65f7de41e1259c0ae5bbf3599841844ff3f0f94b0330e01da7ebf001755604aed05b7372c
 [...]
-\.
-
-
---
--- Data for Name: merchant_contract_terms; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.merchant_contract_terms (order_id, merchant_pub, contract_terms, 
h_contract_terms, "timestamp", row_id, paid) FROM stdin;
-2020.086-0104C3T13YHRE 
\\x4d3d827abb497a7696f0efeea4d0e9f1eda12fd5718a1f5bba57c27e612144fb     
\\x7b22616d6f756e74223a22544553544b55444f533a31222c2273756d6d617279223a22666f6f222c2266756c66696c6c6d656e745f75726c223a22222c22726566756e645f646561646c696e65223a7b22745f6d73223a313538353234383133303030307d2c22776972655f7472616e736665725f646561646c696e65223a7b22745f6d73223a313538353234383133303030307d2c226f726465725f6964223a22323032302e3038362d30313034433354313359485245222c2274696d657374616d70223a7b
 [...]
-2020.086-01WE89FA7FS14 
\\x4d3d827abb497a7696f0efeea4d0e9f1eda12fd5718a1f5bba57c27e612144fb     
\\x7b22616d6f756e74223a22544553544b55444f533a302e3032222c2273756d6d617279223a22626172222c2266756c66696c6c6d656e745f75726c223a22222c22726566756e645f646561646c696e65223a7b22745f6d73223a313538353234383133383030307d2c22776972655f7472616e736665725f646561646c696e65223a7b22745f6d73223a313538353234383133383030307d2c226f726465725f6964223a22323032302e3038362d30315745383946413746533134222c2274696d657374616d70
 [...]
-\.
-
-
---
--- Data for Name: merchant_deposits; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.merchant_deposits (h_contract_terms, merchant_pub, coin_pub, 
exchange_url, amount_with_fee_val, amount_with_fee_frac, deposit_fee_val, 
deposit_fee_frac, refund_fee_val, refund_fee_frac, wire_fee_val, wire_fee_frac, 
signkey_pub, exchange_proof) FROM stdin;
-\\x8390d204c43d8418bdf4a2e5466fb50084a86829ab5b445cd38c199bfdf433a6b2dcb78d977ba238be29fed3640acf62954837308581bfc86bac0c48c0d08997
    \\x4d3d827abb497a7696f0efeea4d0e9f1eda12fd5718a1f5bba57c27e612144fb     
\\x07fa6375f8679153a23927ce068b019acc3d50fd696e74caf09f2fd776c21cb8     
http://localhost:8081/  1       0       0       2000000 0       1000000 0       
1000000 \\x946e8b5af562e6bdae3f9e9f1996162e81eb835d52f6b1455194d1c8a4afde69     
\\x7b22737461747573223a224445504f5349545f4f4b222c22736967223a2259413239344743533532314d4b46394e5831
 [...]
-\\x33dd12045a32c69793ec8aff33d4ed3a18e96490ef0e6a95c4216eece585e79c4589523cd3de5c5435b8891935944c19f544c1901152fcdd224bb6daa90793e3
    \\x4d3d827abb497a7696f0efeea4d0e9f1eda12fd5718a1f5bba57c27e612144fb     
\\x24209fe74c418f2babfdad3860e58645ea750c60e1d1ad1ed22c110ab2eb83a0     
http://localhost:8081/  0       2000000 0       1000000 0       1000000 0       
1000000 \\x946e8b5af562e6bdae3f9e9f1996162e81eb835d52f6b1455194d1c8a4afde69     
\\x7b22737461747573223a224445504f5349545f4f4b222c22736967223a2230474257464748425a4e58304e5933
 [...]
-\.
-
-
---
--- Data for Name: merchant_orders; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.merchant_orders (order_id, merchant_pub, contract_terms, 
"timestamp") FROM stdin;
-2020.086-0104C3T13YHRE 
\\x4d3d827abb497a7696f0efeea4d0e9f1eda12fd5718a1f5bba57c27e612144fb     
\\x7b22616d6f756e74223a22544553544b55444f533a31222c2273756d6d617279223a22666f6f222c2266756c66696c6c6d656e745f75726c223a22222c22726566756e645f646561646c696e65223a7b22745f6d73223a313538353234383133303030307d2c22776972655f7472616e736665725f646561646c696e65223a7b22745f6d73223a313538353234383133303030307d2c226f726465725f6964223a22323032302e3038362d30313034433354313359485245222c2274696d657374616d70223a7b
 [...]
-2020.086-01WE89FA7FS14 
\\x4d3d827abb497a7696f0efeea4d0e9f1eda12fd5718a1f5bba57c27e612144fb     
\\x7b22616d6f756e74223a22544553544b55444f533a302e3032222c2273756d6d617279223a22626172222c2266756c66696c6c6d656e745f75726c223a22222c22726566756e645f646561646c696e65223a7b22745f6d73223a313538353234383133383030307d2c22776972655f7472616e736665725f646561646c696e65223a7b22745f6d73223a313538353234383133383030307d2c226f726465725f6964223a22323032302e3038362d30315745383946413746533134222c2274696d657374616d70
 [...]
-\.
-
-
---
--- Data for Name: merchant_proofs; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.merchant_proofs (exchange_url, wtid, execution_time, signkey_pub, 
proof) FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_refunds; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.merchant_refunds (rtransaction_id, merchant_pub, h_contract_terms, 
coin_pub, reason, refund_amount_val, refund_amount_frac, refund_fee_val, 
refund_fee_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_session_info; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.merchant_session_info (session_id, fulfillment_url, order_id, 
merchant_pub, "timestamp") FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_tip_pickups; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.merchant_tip_pickups (tip_id, pickup_id, amount_val, amount_frac) 
FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_tip_reserve_credits; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.merchant_tip_reserve_credits (reserve_priv, credit_uuid, 
"timestamp", amount_val, amount_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_tip_reserves; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.merchant_tip_reserves (reserve_priv, expiration, balance_val, 
balance_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_tips; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.merchant_tips (reserve_priv, tip_id, exchange_url, justification, 
extra, "timestamp", amount_val, amount_frac, left_val, left_frac) FROM stdin;
-\.
-
-
---
--- Data for Name: merchant_transfers; Type: TABLE DATA; Schema: public; Owner: 
-
---
-
-COPY public.merchant_transfers (h_contract_terms, coin_pub, wtid) FROM stdin;
-\.
-
-
---
--- Data for Name: prewire; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.prewire (prewire_uuid, type, finished, buf) FROM stdin;
-\.
-
-
---
--- Data for Name: recoup; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.recoup (recoup_uuid, coin_pub, coin_sig, coin_blind, amount_val, 
amount_frac, "timestamp", h_blind_ev) FROM stdin;
-1      \\x2750ad23f959b4616f9bb9913b2c05789ac60905a9ecccd2a499f99ec9d40d0a     
\\x458250decaaee758800ede6a5f0dffa49e8a2ee946bbcfa37156d6a9ab5032f25fc83874092e1868fa17f8c747547f1afc956cb57a9f39989f14fec6bd6ec007
     \\xdb7023ef2d57c4f4500a37295021194aea177622a15f4d8c11fd0136b269265a     2  
     0       1585247229000000        
\\xe4c580166cc482aeed98e877c5c4b6d288c458c78ffdea5eff38729a2412bf787c7a462e5705103920288717ef27a3dbabd1c1c07ad7ea425e25ed7763dcc1f0
-\.
-
-
---
--- Data for Name: recoup_refresh; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.recoup_refresh (recoup_refresh_uuid, coin_pub, coin_sig, 
coin_blind, amount_val, amount_frac, "timestamp", h_blind_ev) FROM stdin;
-1      \\x5dda7191fa7b5e84562493ff81198c38d00b847b9c16c26d8b92b906781e7560     
\\xfd217b015e0ccf9054b607a5ed62f1eeccbf65ed85277424418d9992671c38272eaed29d337a8e3542df1b650cb07abe436156d0790a1fcf0f902aaff6e32a0d
     \\xa6257f6882d3cc5c3c9b882d692f7e5736a732bb3396bbb3975bba0b18e6321e     0  
     10000000        1585852036000000        
\\xc88c70b05f6f8cff8c173bcf1b223478c51c4497ba93c2472fe4dc76d00689cb4951a8ceca4d00944d8bde9cf2aac94db5e129c6e5be44a1a7ff8a864b3bd0d9
-2      \\x06a8b55926e31e43b7514c608cc267fe498bbb6ee62655ef792c71966af1fa97     
\\x8061b43e162908e52a6ad932109c20125708e1aac8c147a95d9fba80fd81f1c5e4d903f83656f6ca9ec3dfaa4bc1533adb3c5f972c19acace87028551b822502
     \\xf6d96f6a32d51fc9eac7282ab677bf1639f62d8d78e1fa9d159d6507b492ca27     0  
     10000000        1585852036000000        
\\x33b42711b523febdb144fd930a49b050ed9108da4f653c9d7ff79c6fa3a77942449f6abdaa9ec0f43f8b2ee892082dec6e8fd86d244be5cc7504ae7b625420e3
-3      \\x4c647b1aa4a9b73b44a797b104bedcb9dfb4d46ba36b9e7b3f2125b3ba761c4b     
\\x093df9c0402076959641e4063e3aed2278bf4d52eb6da260b72a1c7a38db4d9b8064d8bd76a8c03f262e5d805f77adc54dac03b776287b616d27fb42f7bae70f
     \\xe7c812758c46b02b551f8ec6c3b936db1c28a6ff9e2004668d530f9708aaae33     0  
     10000000        1585852036000000        
\\xf98f4b7afe27fdd8a572159413cfff527f6249d8731feb2f81811572cd3719f4daf4e671fee2bf180d1a15a203a6c5fe4c8d6f3a9e00d2f074e44efe3b4c44b8
-4      \\x6582a1874903dfdb722dbfda9c54cf0715fc63801ed583deb18e180bc8332a22     
\\x790190f22f2d60f54114ee168b6e9f58d2466763299c04012796678e98c1723bc99baec9c542c0d10a459b38a7e9fed7d17c470106a62098f77305955ea1ba08
     \\xd0a6359ef0fb86433c3d34a89594107fac6aeb9d4b3cfed5dcb8a07087561ce7     0  
     10000000        1585852036000000        
\\x9e88a7e41f31c1048782955bde254a663e55c6764ea9b9354918221c2c6053ec2b6832fb72a80435c0b2055d754dde03ee7dac4e3251037150180d02f363364f
-5      \\x310b12c172bc4c7af4a0afd129a91fc88f59c07a7a9b78d528971be425169509     
\\xb11b6cf502182e7661c368187179872574d68836bbd7f4ddaf72ff14c04862030197cd760a129022fa70743f4adbfc0fd71c0fb36d5d9d1a299d27f7582e5706
     \\xea2a6013507080345e8e68b0a5da32560da61e31f65da3c61ed0ec2da203d75c     0  
     10000000        1585852036000000        
\\xe2d21bfbb014870b62172458af49b6b8e6a36af38c79afbfd9fad9d66420b3d8af2e98c5b6c1a16fd49aca7b74bbfdb4ccce32d879d79f2a579afec89b627317
-6      \\x66e756ee0c152112a5a31e2127d3a13df65fdcc6a5d3de9abe803ed293508f05     
\\xfb67164fb92f9c194e9d11adad127973532b74e6b6d44e917cd445cd05931a3da0a0e64cee92272d1501af215f355cd015f96c6f2ab8a5a7cae63dd8b54ce90a
     \\x795951840313147957428fbc8f2eee4bea77042c2546331a46c9c6d0e79ef242     0  
     10000000        1585852036000000        
\\x5def2ae83577b46954abe9fccec8930c9d9f0d825bc545b224f990545f9b6fb1c38d559677ea9252ca3daeeac5963dc79fc860a240b7b3a7b9af8ed47a679b14
-7      \\x4a4693f51d818eb32db0972f19710b2450e3514033fa33e6588c90e265b56095     
\\x170c35d8d4e6fc0f470701f2d08f4f038c47af1a5a590294783d714606cbc58b2f517f6bc33b68567548d04079f0a0b0c58707ac132e0df116a9079a77871d07
     \\xea00a088f3efc2497b7d93976134696330398f4b4a4bff48df050e9a0161dcc9     0  
     10000000        1585852036000000        
\\xb697df52aad42496994e2737f2980617856867883392fa8dcf71eea3a69896ae3385d84bf5e32226ae51553fbb5cffdbf57cfa6764d6d6918ec978c9f4971a82
-8      \\xeefcdce7677b4b91ba60c28abc7f2f827d8868e09abfb439567e255cff085137     
\\xcbeb077660ab284a9ec0bae485c65c1c8c8244689648611612934063e740e1f0e3f01e7a309e5befea045fbb81e20c90b2353dc503020eecc2f378c5565ebe0c
     \\x6d4a775680ef7de6a176cfc0d6e3ab00c5401f4a4e2bd53ef982a35cc97b1cdc     0  
     10000000        1585852036000000        
\\xe5ca930828a38b367f72ec9e268125eda82664be5fecfa3841df1ca0e9a9ec6e6c719153eb6a44aeb2675e4f3d013d11e51edbd492bacbc8bf8656bd626d108a
-\.
-
-
---
--- Data for Name: refresh_commitments; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.refresh_commitments (melt_serial_id, rc, old_coin_pub, 
old_coin_sig, amount_with_fee_val, amount_with_fee_frac, noreveal_index) FROM 
stdin;
-1      
\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
     \\x39ecdf0cece28769866927fdcbc0229e73e0e6458efd948eb07278b8ac0d738c     
\\x62a900a609109f343f68b39c5e0508b8cdde3da11fe8d0e21145ab5575abc8a0629f7328baa62c206296686b0b6a63370657135bbba8fa88be3b24353cd01f0f
     5       0       0
-2      
\\x9299f109ba5bbfb69085914e2112d4857a48d4a1f87bac2dc3f161e1e160566f3b1908b1102c1f58619f812c7cccd8efe7cf76056a55ddcb9bb598f1f49cea3f
     \\x39ecdf0cece28769866927fdcbc0229e73e0e6458efd948eb07278b8ac0d738c     
\\x7cab0997915f3c39464afcde89e7e35df1a450bbad44128b78f7da52f3328a73f3b0890a2f330ad76ca6e5d30caabd71e3e4e7ece21f5576964da4594dec8904
     0       80000000        0
-3      
\\xfcc21691669f322732ca1b3229921c06ad7de9ac8bbeb67cf83424a2380ad26f70552b222c21be55287447acba12746af988ed5bbddff7331589c2a3376879ec
     \\x24209fe74c418f2babfdad3860e58645ea750c60e1d1ad1ed22c110ab2eb83a0     
\\xc24c117ead15d951c26b1748c302d574ee01b05be54ce134d33994a200cd2fb4b1b2e03e85dd1786a36874dd9f0a51645ad5d8cf24eca34ad13df75418f4bc0b
     0       7000000 0
-\.
-
-
---
--- Data for Name: refresh_revealed_coins; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.refresh_revealed_coins (rc, freshcoin_index, link_sig, 
denom_pub_hash, coin_ev, h_coin_ev, ev_sig) FROM stdin;
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    0       
\\x12b4debb810bd37ece7834604c3ba148cf831542903204b1247ee57a9d9e45428d388c4846926bbe840c548f2b3b3508af5bda66d78445663d930dc55b32ee09
     
\\x596dd70417dea3f96b72decf73ebbee411295403914758bcc5d562d1232ad6aa8b14857b58e1cf9ae9b1535ffe4fbdeb4e9b6d67f0739173b64d9bfab00c1f0c
     
\\x01707fabae5b3f80339b9e28271b6d3ee4e63741de61b4b274cf742032fc9a6f38c352b798fda4a8c490a5a8886
 [...]
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    1       
\\x52b38f12698482134ba9474f05c7067fa0b7d0e88eb8b8ff940f639997e248275aacc8f14cfaf377d8d66dea69caf3741eb0946a6cd10de7f7ae657278a73e00
     
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\xc83267d087846d48caf06d8a713e7cc66bf62c580630bc455149216cddcee9cfecb4fcb53b930794e99762bbaab
 [...]
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    2       
\\xe5d363effc8515ebac851b8595b5f6524c6bd72d929eae91618c6afba69e12b26e8543c10ec55f1e8f7b80c259a171b10d98b7f9f2ba4d1221eff2cd9c28a50e
     
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\xa4ebd6b85fa5150c4f43edb97a706a389f6832f2da4ffe55d3bb52690aa669340f3772165a752a000a7bd010f5d
 [...]
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    3       
\\x95bd7c78e505e0f035256c88a0cb82b57b2b0f5b1a910f5c89ee538eb25b24ab0814781321c29494fec061c6b069919a245ba868ddc900baf720de49875ac507
     
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\xc5c2680371529b827e0c36f3f7999be4ad4b722ca0c64bf008bbab9fdfbc8dda025aa6ffb64f40fea79d628e197
 [...]
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    4       
\\xc92ad8dccfd74b064cf8e0c878b07a64c9d569a59b14d020e44bf452686456cce2d278749387c79b8fd8d475bf7521c2f3026a54c3df116fae5873b70cb26601
     
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x6e5cac4b0e48806e94acab58742a2f32a297648c1a3a52bca43f78a155657e24814a1da3f9d8b77722c5bf5225a
 [...]
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    5       
\\xbb38496d1d1a79d3aacdbbf888ef6dc053531eff1bbd01bfbf1c3589578de6cc2d0e0da06032ee6967b969f975499acb111f62ea52df767dbc7f6069d65dd001
     
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x8245e8ebed90310ab7728d08e80bef8bb1937739b46aaa3212ac8147dc354edeac4c29f3022f74a4427cc692f5a
 [...]
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    6       
\\xacf163dd694450addc765dfee90db4b3278923f396e9e659b52c0d28ea5b714b90782932a671581551b71392df2a9006135f392052e1bd4516dccc59ccfa1105
     
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x7ee1c4e887a71495ea8536079562dda9c0c6b408d6b66a602b1aedabe967ffd538a5e8b35d023aadaec3ee01c9b
 [...]
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    7       
\\xcb38875258c9294ee196d9f5bdcb51a737fd2de505a46f8bcfecb181569f96a9c08bb39b1ee6f0233dc26a461ec017e1eb741a0a9d538a502bc0c4a3e2383108
     
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\xca95ab52a78d3a587584a3d9e04cbd4c89d2ea8ba4ed55147cdcb44770750cc62e832ef8446869652ab1ed38841
 [...]
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    8       
\\x97f293befcafecd875f4c154785c02cc097a0b703cb61aa99408d4495091c5862be75327197dccdd56c48067e444c19da0a9a19c1377d632be95920f8ee19901
     
\\x7f1749df7f2033f92e5a5a3ff9117934b7ac5d5757da9424b0d46d4286359678d67fca8b3792ad086bf23bae26833ed5ca3715373ab56ada7aa69db79df5c3fe
     
\\x7830fdaddbf1548106a2e99e8910352cc4f1fac6737bfa10b8b4b60281f99cdc4294fba9140e85f3d11754a1110
 [...]
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    9       
\\x28c07b28799f691cf5aa7121d9f8bdce5df35b00dfb678a1ad96f7da7a495b9f993dcf953d2cc8a458169f743254d671eb875c5cfe9f1af9f9a93ad487407008
     
\\xf3b15f353353c828067a48d0cb5cc98b82fd0fe9f0403e675cbd25a702f0601c7254a5c1f12aa67841d9b347bed3720680b3fe8f48b3a3219ec5df26a55f41c6
     
\\x8771d525e4929d7be8e026073dc4b9bb1b1bb1e05bdcfb072ae2c7e0d919f4ee37348042e12a1b050e95506bbbc
 [...]
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    10      
\\x5ad43c0ccde2c664e79cfbf76553df07f2e52462f6f83c7fdb24c3f0926916a6b67e5b0f4183d7d15e8e05d670090500302c0b1c912f11c3e8fa83c38677fb05
     
\\xf3b15f353353c828067a48d0cb5cc98b82fd0fe9f0403e675cbd25a702f0601c7254a5c1f12aa67841d9b347bed3720680b3fe8f48b3a3219ec5df26a55f41c6
     
\\x579db5e78f4e053806b6d8ca301acf0ff90a049a7c57402dd501e63946276c93ab41b38ca042e0ae4646c24189
 [...]
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    11      
\\x965f589b30e912fbd1f6f2887cec7f6a37701a7bfcf84d9ba70350d126efa35b1b721dcfc353f5777125a0b28e256b9645a153ba7b2c542054ba5fc345baec0c
     
\\xf3b15f353353c828067a48d0cb5cc98b82fd0fe9f0403e675cbd25a702f0601c7254a5c1f12aa67841d9b347bed3720680b3fe8f48b3a3219ec5df26a55f41c6
     
\\x2a67d2eda9b1b84392d22bc220e1c1be939d8ab64176bd88813e63e1f3cb9f2f7c9049628a985fbf89920241c5
 [...]
-\\x9299f109ba5bbfb69085914e2112d4857a48d4a1f87bac2dc3f161e1e160566f3b1908b1102c1f58619f812c7cccd8efe7cf76056a55ddcb9bb598f1f49cea3f
    0       
\\x53a6f7525578adba5deb77351745a19c77953ee2495bfe1d1f34298ef3436e7f873be770f6b668d757b499e2153e248768e8a663cfd74395f49b608f423a9c0d
     
\\xb09b6217d72bdb8f393332f676b9c85c2e246a6685c6f4ee8e96384b23ca29e89e587f782d24625001c7cd6cea13e85fdcc9591452f43c6d717d24297dd2dec6
     
\\x1f1807b89a9acd9dcfe852bae1ff6db0cfa5b0ec6c80c04896a5e018300fc6d469fe4ddce79f0b77159606b048f
 [...]
-\\x9299f109ba5bbfb69085914e2112d4857a48d4a1f87bac2dc3f161e1e160566f3b1908b1102c1f58619f812c7cccd8efe7cf76056a55ddcb9bb598f1f49cea3f
    1       
\\x371335ef38d97b73042c2dc656d34e5d0d416154838a503d66a2daf1791c82b130889809ec3b0cbc40417690d07fd8b41ff754139ba9c9e8c84d172258b33004
     
\\xb09b6217d72bdb8f393332f676b9c85c2e246a6685c6f4ee8e96384b23ca29e89e587f782d24625001c7cd6cea13e85fdcc9591452f43c6d717d24297dd2dec6
     
\\xd3f5a10d829522cd19fc83f462b2999312122acb59fac2da00110645827be939ada4eb4a51af509f6b7e0cdeac0
 [...]
-\\x9299f109ba5bbfb69085914e2112d4857a48d4a1f87bac2dc3f161e1e160566f3b1908b1102c1f58619f812c7cccd8efe7cf76056a55ddcb9bb598f1f49cea3f
    2       
\\x362a9a20844e454a0fc9062289bc478c3beff6538c000ed3adaa4127b7e878deec7ca9c77c1ade56a3deb5eaa97be1f3b9858612c1a2551f25a87e6a28459e0c
     
\\xb09b6217d72bdb8f393332f676b9c85c2e246a6685c6f4ee8e96384b23ca29e89e587f782d24625001c7cd6cea13e85fdcc9591452f43c6d717d24297dd2dec6
     
\\x19f30be726726f1638c9b89529e453dcc6ee3107355789939b0beddb4456d6267700a6e819e8f490ef73e4807a9
 [...]
-\\x9299f109ba5bbfb69085914e2112d4857a48d4a1f87bac2dc3f161e1e160566f3b1908b1102c1f58619f812c7cccd8efe7cf76056a55ddcb9bb598f1f49cea3f
    3       
\\x4119ced37056b0de05ff5bdbcff621bd9a5acf9329a6aae9613bc84f8680767191c935cfbb568cb95f9c79e939b21a8cc509cf760462b96a0fad0ca5b7edbc04
     
\\xb09b6217d72bdb8f393332f676b9c85c2e246a6685c6f4ee8e96384b23ca29e89e587f782d24625001c7cd6cea13e85fdcc9591452f43c6d717d24297dd2dec6
     
\\x57e6b0c6bb6896570069f7090ffebf89d62a34096464481d00a1e59b98ca420458134471c93445fbc774bb71b59
 [...]
-\\x9299f109ba5bbfb69085914e2112d4857a48d4a1f87bac2dc3f161e1e160566f3b1908b1102c1f58619f812c7cccd8efe7cf76056a55ddcb9bb598f1f49cea3f
    4       
\\x55ad17639332de18700a2b670e5dad0589f29404103cb5163cbc105528cfb82799d67b2ad941d80962eaa7856e3695edf6cab28fc9cd7b9300c778f6a961df04
     
\\xb09b6217d72bdb8f393332f676b9c85c2e246a6685c6f4ee8e96384b23ca29e89e587f782d24625001c7cd6cea13e85fdcc9591452f43c6d717d24297dd2dec6
     
\\x91da6326fa9c5efe992f8c7d807177fe464b7edc247f3ae78ee3629f61755af4e370535ad2b60dd66eedcf76e26
 [...]
-\\x9299f109ba5bbfb69085914e2112d4857a48d4a1f87bac2dc3f161e1e160566f3b1908b1102c1f58619f812c7cccd8efe7cf76056a55ddcb9bb598f1f49cea3f
    5       
\\xea792ede870a12621f594314e274f07150e6788559929de7de7d8169e75cf69f7204e6cbd8054e221b11eb2666ac63e6a3584a81feef99c28be70d570775250f
     
\\xb09b6217d72bdb8f393332f676b9c85c2e246a6685c6f4ee8e96384b23ca29e89e587f782d24625001c7cd6cea13e85fdcc9591452f43c6d717d24297dd2dec6
     
\\x83ab4f307610060a1c81c4b74cc69a4073017cd0b599f89cee9218900be96a971f43b095d2a05c03975573ad524
 [...]
-\\x9299f109ba5bbfb69085914e2112d4857a48d4a1f87bac2dc3f161e1e160566f3b1908b1102c1f58619f812c7cccd8efe7cf76056a55ddcb9bb598f1f49cea3f
    6       
\\xa02bfeaa2d5a66c44e6f233365f760f53018cc1d96499a235a90e9c1437781dfcd6768cdfb502797ce4006666781933d687af7ff85d7226e7d8db6da73199a0b
     
\\xb09b6217d72bdb8f393332f676b9c85c2e246a6685c6f4ee8e96384b23ca29e89e587f782d24625001c7cd6cea13e85fdcc9591452f43c6d717d24297dd2dec6
     
\\xd1014baba95c600cf77ac40559b28b03bbd579283989af84c6b3adeb7bef11887b19bab7c5eb174ffddce3fc0ab
 [...]
-\\xfcc21691669f322732ca1b3229921c06ad7de9ac8bbeb67cf83424a2380ad26f70552b222c21be55287447acba12746af988ed5bbddff7331589c2a3376879ec
    0       
\\x6e35b295208cceeb9c6c199b1f1ae52fda3e4ccab3543b5bf8b506fcc8756b1bc0073e437ea2851f66e63894512ec5916eab0a158c0932dbb20a45678681720d
     
\\xf3b15f353353c828067a48d0cb5cc98b82fd0fe9f0403e675cbd25a702f0601c7254a5c1f12aa67841d9b347bed3720680b3fe8f48b3a3219ec5df26a55f41c6
     
\\x6536da6ceb5cec792ae76b6acb5710a99ecaf1190c097bdd5a1e1af087c2442e7e9e962c572150a055bc2cb781d
 [...]
-\\xfcc21691669f322732ca1b3229921c06ad7de9ac8bbeb67cf83424a2380ad26f70552b222c21be55287447acba12746af988ed5bbddff7331589c2a3376879ec
    1       
\\x3bc4b3e1be4d49b66bf2094752ccc521082565f02dd53c7469d452d22cd9dd934417cd35fa12efe3e75ad826862bef6a8da065d551d6a06258bfba8c39bef502
     
\\xf3b15f353353c828067a48d0cb5cc98b82fd0fe9f0403e675cbd25a702f0601c7254a5c1f12aa67841d9b347bed3720680b3fe8f48b3a3219ec5df26a55f41c6
     
\\xb2a698d8cf72b3d4b36ffe39fc03540e28a7ecaf645b59d69d4e16a7908c971eb408cb1789fce47071bb3ec8bd9
 [...]
-\.
-
-
---
--- Data for Name: refresh_transfer_keys; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.refresh_transfer_keys (rc, transfer_pub, transfer_privs) FROM 
stdin;
-\\x31cced9afea62ba3578d70d72b0fb97669a4e3337ae4e20df97c4754dd7e9c279fa14b0eebe7041289b281d3d7604e7c53b6e7eba614d8a29cab3a559707b785
    \\xd918c54605c7e14648b928b526ed8038148c15af15e293a1c5ba6d687ee91056     
\\x9a86bcdbb3d50a280f8de9623bd82135a36799d7de417d8a7021f5cbb9e2ce71b2c8c52445efa89e81e1c8c7b440601719b6508e9db637d902a873fd4ab2bf1a
-\\x9299f109ba5bbfb69085914e2112d4857a48d4a1f87bac2dc3f161e1e160566f3b1908b1102c1f58619f812c7cccd8efe7cf76056a55ddcb9bb598f1f49cea3f
    \\x14df49a28a7c6c38f3e7d5d6185105b7382b2a8f996bf0038d1442ce331f834c     
\\x972486fadf7f64314b0b46238bb42920083c2b669c311ac887ff2e596b6096ff50b70e22dfc1b04412eb3422f03b81fe16816c1ee53c1585d355d5d4e9bb81d7
-\\xfcc21691669f322732ca1b3229921c06ad7de9ac8bbeb67cf83424a2380ad26f70552b222c21be55287447acba12746af988ed5bbddff7331589c2a3376879ec
    \\x83f68c7d166403c62d94e094e08cbb0a9aacc0862d230ccf972846a5b99a6a18     
\\xf64291cb3a36b748230f9eb097439b0138e4854bd33d56da070b2321ed20bc8eb73263a72f5f5e269b9c6e8271e6e74a26cffc5e5c3dea208cf8367b796b39dd
-\.
-
-
---
--- Data for Name: refunds; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.refunds (refund_serial_id, coin_pub, merchant_pub, merchant_sig, 
h_contract_terms, rtransaction_id, amount_with_fee_val, amount_with_fee_frac) 
FROM stdin;
-\.
-
-
---
--- Data for Name: reserves; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.reserves (reserve_pub, account_details, current_balance_val, 
current_balance_frac, expiration_date, gc_date) FROM stdin;
-\\x56df2171b6b15ab33867ed818451aa0b082e06e9246b7fab3c180c1e60ec3a36    
payto://x-taler-bank/localhost/testuser-JjVD1AYx        0       0       
1587666429000000        1805999230000000
-\.
-
-
---
--- Data for Name: reserves_close; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.reserves_close (close_uuid, reserve_pub, execution_date, wtid, 
receiver_account, amount_val, amount_frac, closing_fee_val, closing_fee_frac) 
FROM stdin;
-\.
-
-
---
--- Data for Name: reserves_in; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.reserves_in (reserve_in_serial_id, reserve_pub, wire_reference, 
credit_val, credit_frac, sender_account_details, exchange_account_section, 
execution_date) FROM stdin;
-1      \\x56df2171b6b15ab33867ed818451aa0b082e06e9246b7fab3c180c1e60ec3a36     
2       8       0       payto://x-taler-bank/localhost/testuser-JjVD1AYx        
exchange-account-1      1585247225000000
-\.
-
-
---
--- Data for Name: reserves_out; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.reserves_out (reserve_out_serial_id, h_blind_ev, denom_pub_hash, 
denom_sig, reserve_pub, reserve_sig, execution_date, amount_with_fee_val, 
amount_with_fee_frac) FROM stdin;
-1      
\\xe2a5976be0ff4d8fcbc4158806046c4d13e5451be8a85b16e0f733a349f12f021dbdd7fdab0d3c97cd80e2a0962321f44ff82d5cacf8bf7a2ef3d0e57839fef7
     
\\xb2b398d560e595d6d879842cd209cc84c924a57538ffe918aa6f3107492495740d2dadd63f34109c3a19caa665eabb781359cac5c496e56a36bfc6926d3a45a8
     
\\x88d94c7ef6b9fdbe123821244ccc8cc7d5bf4f4f3f88341a7d0bdd5bab04fb0f2e06e2fbebca41eb8d6d926f0da55fab4bbe32cb9bd39e05ba305106dd31002547e62637030349da5ab8f468de6e232856f946f79db511649d469c08b8f014e7c4503a9fcd74247c15e85ab5189b537
 [...]
-2      
\\x729dbcc6b62e8c06af71732625ab60fc87ff2b8c8f67eec84c2fc091ff96acab9d6e46d9daec54cdbdcfed0c971487d232c070707ba45dc842318f4d82f759d2
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x5503753f883cb430a8f127898411600b0446a87d3f9b0f590d69530bb648e214130d2a02228fd0e380cfa4c7787948d54cbb64070ece94ff077065309e3f164168481ff29375ac141765db17149e12b269f8b9b8a3f6b527b87c8bc8537ae0d36ad7b7c085365d3c69a59f5fd0afddb
 [...]
-3      
\\x2f445f26fdeed3207cff9fc26c0da8cb334ae9cffa6c504e6113e01ca870450f9427e43e7fef653f161562c68b49cc032425247db5ec0beab3c48f5ea2afed4a
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x5dfaa41d01999757ba3c2989dcd95d32e90a55573f12ffb1b7482edb149cc71a068cdd8ac8f124c932be077ccc1a1d5884a8a3696c32d0771205b4088c6b7f7aa972b6e03352587acb341e9d5cfa7a6a8dde24a0d19b8f4f3a256d623a7403c105c4f8726d65b5428f141ee49566100
 [...]
-4      
\\xb461405da8de1da0bbed12352af73b58860dd9222b0ee43d6bd410e10c830c140df671286b8818abc1664cc260de8957b40dc5085f44f3f65facce7c949f44fd
     
\\x747f5c89194b7266b995701b18f8f5f9b31a1f18997b72aa306b12fe8c1be3db30507cf68c32408ad8ed9accdf31dfb56ac917b362dd21e4727b7e499540110f
     
\\x83dbe0e184f2445941d57c8ead85ab4d22f86db1cee9c15c9958772b9ac870b32064e82ca7db7a8cfcb18f95d0656fffe8b2d2ec185cef483fd830868c11f1f52563b32f3cd50ff7a9401a41d13b5850ef79fee7f8031a45c692c0a843c1c4ed1dbd41cc0bb12efd29fa5755569fe35
 [...]
-5      
\\xe4c580166cc482aeed98e877c5c4b6d288c458c78ffdea5eff38729a2412bf787c7a462e5705103920288717ef27a3dbabd1c1c07ad7ea425e25ed7763dcc1f0
     
\\xe0726684567b8f6e972ae98a1c743d83344292e41f48d2696272bbe7d7cf28e4fe4ca576cefee21dcf4d05dc1927dbed383bd6383af4f6919c6185cb86c29fc2
     
\\x84869b61fd17f94c8a23e40424b1247e94a4cf5208962106a63db062be1ce1f54dd86e1f1a7dff56a03ad1a769abb4ca34844dd9593208d053cbe656fe64e5e790c9db67012988cafe65a3fcaa0a844720b9b13b26e0e977cb18cb3753bae29f43b5e2185116a40644dbc83b8408c32
 [...]
-6      
\\xfbe66b1b4843b2790ccff3d22d3454aa433919d967a231523f0178503914c79ebed229e74519c0a201d03384c181b8e30aeaee8be86b7fd109febb06f6c8dcbf
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x3321faadd56c35f36d7398a8f77ee4a2969a499e3c90a41e1c91d6512f2c89156ea535c7bda92fa6c43edbce360d9d26bed704f0a4a363e6390f06c36d55b47c13d0f9f45d10d87ee2006068ca2d7ba8ca87cc003c1c95fc0d2947240e0d6d0ed041501842dd54eab84a7fa232dda60
 [...]
-7      
\\xb8406db7a5f0ef73155b7c696136e3867c0088b166d904cbb511f431be02ef0d7f9d5965928954582a15ddc734953341e2286df1a004a3f08b57bbbd1b9cafef
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x1ecc94b5f450b885c41f612509ca1babcab67e46d291e94d22ad28d24dfe258b896c25311cc9d51fc40e83c87c7071f539a27a8a6c3e02f61945c199a6d21e0c431c232802d23ba10bdf3516097da8a236471748115dd4ba468642ff750746b06890c1a3050276a53568b31b919659c
 [...]
-8      
\\x80f9cd293cccb47979a32a7a48ca65db99e7931c98b48183fca8c116a907c703677270a1b2dc52f3ce32a4145e02a40041beaebfddc97c5e14d0c525d1cdba20
     
\\x747f5c89194b7266b995701b18f8f5f9b31a1f18997b72aa306b12fe8c1be3db30507cf68c32408ad8ed9accdf31dfb56ac917b362dd21e4727b7e499540110f
     
\\x7f003d48d5382176d0d1721e464ae92715b294bd21b4512f69730c5e1bdda025e3c96c5fd49791fc9351283545c1e3cc07947972f8ab27bea324a6521b684b101b1ac35791f26d0af2526e3b06e5d90d401f78af82ad3f03f00b342c52361d331543e4b40be61fca3d205e443eeb4c5
 [...]
-9      
\\x9ee5fcdd21814ca508e77fb1f12878fd8fde8de0dbf98c09c4eafbdb16d1a891a5cdf4fc6bb27b35f332cab91777340b925ba6cb09814f8151b5b877cb472050
     
\\x747f5c89194b7266b995701b18f8f5f9b31a1f18997b72aa306b12fe8c1be3db30507cf68c32408ad8ed9accdf31dfb56ac917b362dd21e4727b7e499540110f
     
\\x9a71e4484e30c9b649e6ba6c64a4450f758e34226d369ca0837ca459776fb2f142b572b1e64d846bb4845c362d8ca07268fed5b31edbf65f413fb2fb1caa8abc83d92d0da49fdafff32042ef867989bb78957e59faac66291837a8c3fa230fbc992f404a1a31924f6f99e7a8d76949d
 [...]
-10     
\\x60632d0439e49678b7f284dfab08a4a3e657f521465d440bb103dd6012da2514ef38b48f972765d56c27460428450c6618d5cbeef6a71adfb1b2abf64fc4bf68
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x5a35b65a05ef66471acb62788150dc92f0d3bdb5af550eedd18f364e88bb30f53d95a1a740348d3c2a92d5df395655a87920724068fd877dfed267c172cc2d065769b83e220bb743f450ab6c609c32171e49333dfa13a696c393d0ea0c3a955262410f5e096963a606d7e7012b7c5b
 [...]
-11     
\\xca41556b29565f0be8a1614df891946e35d4e20c1e613d983c2401102d56e89615780ce613a025470c2b03ca188314d510109a52adbd99c3fbc8aefca447dc8b
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\xa8b27505ef3eb313171476cf80897adc89921bcb3e97eb758b3b0b928909eca42249182e8595faa046dd8f545a021a8c3b25b0d3022e3a5e77a928000ad3402147a562ee6b78744976cf2db1a64fe03f308987db1f85ec1197a049bbc506d979c9666951d57cc9daa0893b0241de5a
 [...]
-12     
\\x4b53c212fc6d01d19b6eea549ef51d69255630cbe2828ee728ac02457cb885f03dff8d89c6bd63e51f7fe0172b644b967a24061dd25ccb83a6d18626a31e37c3
     
\\x747f5c89194b7266b995701b18f8f5f9b31a1f18997b72aa306b12fe8c1be3db30507cf68c32408ad8ed9accdf31dfb56ac917b362dd21e4727b7e499540110f
     
\\xa30d8e019e066ee05a44e8b7327c9fcf7d6e503e4815f5bc885b99656dd1acd1985b43d8ded53cf587196cf06a8e27890bb51d883c79c7da39795ba68cc3abcae887f682c38ab3d8988269e4a72550fbf1c92af8eb2376aa55359f899345bebff26c3ce9a7ea5f57ed122eae9f4c43
 [...]
-13     
\\xde66e8165426c0a5506e3cda95fa32a5e5ad78fe18c8af2a6309416a86d69da1132131edca99b2684c0a0793246143d7b1bdadb8f6ee09e2201134fa0d0994ff
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x936ac8eb60f0dbba8c146170c1c46da9b6dcf604c7759be8de925b990425c6e2f129516ed0234a13d5782db59b49b1a2a56185a5674a749c0b89f4869e2997678a86d7effb16a4b8348aa1470d0dfa559beb5b3e240f331415449911a1d63a85247b4bade791b3093d36a993d2785a
 [...]
-14     
\\xf2cf47750bf61cd70088a8c23f5a2449aa915d839e23d20cd845166b2183e7788b25df00d0da40fee13af660a10e5e85b0bc878d807e1c5f13046e0ed151537d
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x6b1f1eba71b3e8fa153b47f0d5acb90903ec86e69adf63d40a78ecb75ec1025029295d7d354eaba636ab7f06f28250026ce8ace07b3ea294fbfab77339fc6cf7dbaf86cfbb8ac2d1c88655012dbc5211b84eb4af42d8fe5bb5b841568586cd749df3b20ede2d2b6cdd6d9ce9d0f207
 [...]
-15     
\\x0e53156fba4e75d71bb1dd03ec212bb660cff0c2d5bc3683d6677a4fda7ff6c9644bd039ae479cd315c2a9445cdfcedac1aa2e323ae501fd0d2c04781c37cc62
     
\\xfac60747f6f5230990e394d61524d5e5c2d7fde9d64cb67971383afded993d28b8ccc24859da6595521f2131f8b29f7249a132b21bd783ddc17df6743baa690f
     
\\x1b4a73f61abd43fe3032e7bd7f2ae75b7d4b7aaf1d52a7ffa41cad1fcfaba3df9ad4f53f682164ff189a5cae3f5476d800d48769a444608b0f88960fdef16c3538c55281221fb882edc57f474e4deff47300e2a920124e54a8076258edd1c372e5944a9fe9f5df7875595efb55c6ef
 [...]
-16     
\\x8462d40f51d83a81b975f8944404ac198173e851992a346e07ad09c859093a2a19ca7bb8c78d9c1b063a5ce248932ba32bc6a3ed07329f3c9609a4be9858bf8f
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x3d0bef9880eabf5d8e4db31ddc896f5cac12daf48f1cdd5a4a8dbfca48ca645c11148b32e15a441d6e17c7669ea10f51bf596d10b741ebd898d64bf7b498f9cce4fe7203f371ae03e5b2cfd261ef336a00817aecd243ec61ac5849a35536246eab312708d61cc8abbbd50b1cc9a6ba
 [...]
-17     
\\x4b35931e6ead2975c9099cfc47fe715087be04a7c3730a131cf16dcd6e8b5fbd1b58e660afa7d1022cba95f9a2e1bacf6187115329db523d6b9aa404345853bc
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x705c95c755ac42c1280f8ef6bfe442362d3aaa9f373fe5090338cbb39531f6c0ff83d3724a0e098ad1b6af8831ad26473c8990d2bff5a18c6133692f8dc9ac0ffa0a80b2906d022a3b35de9aab72e18032f2279e9d8f82cdd993f0a07f9e6d15ce9c8e54fe22ba64d992c7c9314854
 [...]
-18     
\\x05f3a74fe2fe247762d754fcdd5bcb83d563ecfe3b6afcf5bb7c84ff818896fa3080d0311117990e576e31d54d3656c121018fe343bd32faf81b6ad6a21e332f
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x9a46f96041f4a79916724a0761def85dd23f21dc710642e665793d7055d3f1764fdcd177a287aa609886016d3b42578d0cd9acde50f46473d6f772e2949ccf00db546f37a53697f8cf3e63024d742f752508927af9ff6950fc3e6ee7032c3d49a79f858ec12d01bee7f78ba5b5e6e5
 [...]
-19     
\\x66ae656c02e2fffdec39453e05cbc4422de0bae93fc22f845a681e9c0a80c5b27b11b16813ef6a63a184884b0eb911ef09f7b92fa043d48a320c7dea5c2bac7f
     
\\x747f5c89194b7266b995701b18f8f5f9b31a1f18997b72aa306b12fe8c1be3db30507cf68c32408ad8ed9accdf31dfb56ac917b362dd21e4727b7e499540110f
     
\\x6edf87b1913134c93ffd14a9734c2e4b69bf841b7ba133606d26edddd69b3561ea733d3de73bc3a3780f0feef8817d5e5b0d4a7b13bcfd185deb5594a1a3c9d5b3d9929d8d566c1c9769de373a035c033ac02c98974c55229493225dcb880d54fdc56e95a8ff1c945a28ca7c63952c
 [...]
-20     
\\x8a31eeabe64ae80d2c0c99c68e7200f5089608071ff04cfa32fc40c0143ccbec2d190a2aedf72ad5926177665e55f3ef66a3e19a9401afba76ef539e7451870f
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x08c3e0f40be0aaabcb31d5f8045ee908192792e0980c12945bbe5dfdcd1e779386b9fdfbddae72bf84021918967496c69e9d0f9630a3b4975b2dbbed4e6a4a4df8ce88f1c538131b519a1b4cd795c01b8e204440a3590b9ce757409b349442ca72f12f4e4f0e080be5628eb75aea9d
 [...]
-25     
\\xf2a6c8490d5759e9cd44d8e474ee8aac282a95326b8af1b3e6cd097f65e055633f8a95f456add1ae539a161142b551001ea7d643630e561169a0b0c2f2054917
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x65d094cd42bf265e17f74ec061b5f58f07b460c9942f9049346e620d98c1109b4b1ac4b4db065539c8159f198824c271c41be310b14f2f0ad4276cc5d18f8aae19a8eed68eacd558dc82f270232dae708d259ae0250c5166950fe88b6c63bf6d296883d449d9daf3cc30d1e32861da
 [...]
-21     
\\x8faff62e01a2e73d5510bc93d1dce5bcc032e616c0650201650ca170dc815ec175e6223c85b232553c08a00bdf5d0db1ceaff775c91f2d9afac0ba97e9b63081
     
\\x747f5c89194b7266b995701b18f8f5f9b31a1f18997b72aa306b12fe8c1be3db30507cf68c32408ad8ed9accdf31dfb56ac917b362dd21e4727b7e499540110f
     
\\xc1cbe09f93ec79424d690499b928d23c2653cf52f5fcd624d40627382fd35756c985f91e4d971da86ede32db8b0ed286f55fb02794d723866e61e9cee99a6765c7e42ae8f926d8d73a7f95441219450df3386fa0ea5949f8a83ed298f33c7cf3cdd16a7eefababc065429ee72db1cd
 [...]
-22     
\\x58a82e4e4716bde678b3532cc06632b50d47afc1637391e2b6e95b3fea751077a746967495c3ea32994316e4bbe2bf8bf2e1637a882938802e5429b43e4f0c84
     
\\x747f5c89194b7266b995701b18f8f5f9b31a1f18997b72aa306b12fe8c1be3db30507cf68c32408ad8ed9accdf31dfb56ac917b362dd21e4727b7e499540110f
     
\\x7681e9b708d5e987a6dc6b23f081273b2f5645d2b3a6bae978f11e2cbb93e31061d23b1865fc8dee54d5205480929ed5dfae1c166e00575dbaa53eeed8b8b53405bf89a8fe2ac5bb1fbf2bc11c340492e307797d7d0b1edd8a10d44b1c1b72b20a784b03fdccb6eeb8b1038f8c68a5
 [...]
-23     
\\x9aaa401c7cbe71171a1cf1a75fbcad721f2071a2495622c3a2be00fe19addf942c29260bb2e427310938e85cbe0bc76adbb19bbfb27e40fb69c4156010c7802a
     
\\x747f5c89194b7266b995701b18f8f5f9b31a1f18997b72aa306b12fe8c1be3db30507cf68c32408ad8ed9accdf31dfb56ac917b362dd21e4727b7e499540110f
     
\\x24dedb75ebc6b9529c652c41b88dd408f6a5078845d464a27ae4473a1d3f6aa93c719303ba1ef5fdde5a83941ca804179491e0cc22007af400c61c9175e0776b9879c6cc422a464c752c6eb06766553ca3c241bb4bb68810d7c9e4f723deacb2daaa3741a3c5b25ccce0d92e92dabd
 [...]
-24     
\\x6ecd5993d2ebb9c51f62e3fb88db2092e39c63fbdbbe87adc8b9f3c874a2c89b1b20b87ba0ab1e8c25c57e272cbf584ab94bd666b45c299fda51b6e46d7425a0
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x2900c01b645d85e0e49a1649cd416b5367bd3401f64d3b5230b05aa047e0dc6ba9c555056e51cffec724b2c38bdf0ed14519f098d987fd4b629ac27d1173c46203285913837c82422373b37707f7d866ed454ea90609ffff635efe7f0d79fbc916c8058dd3b108f07f3353e6fd8cee
 [...]
-26     
\\x16c88a50e2920c8a330585b2e490e22929c6d7ce9abb2d519c6381efc9e939248fdca90b509ec25c2a0de4b13046e1692e9bde9304a03825c0bbf31db4043b50
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x9a027e2d37b4eaf80f54372d5097332208e4c9daa42f7615855e545c01c3424e703150911901cfd8e7c82748c324e3f7000f3ec6168bbaa64f40b8cec7db1be6ff581c47506581add4828a9ccf031d52816dd7912872d221eff1ba197ecc7ba2e5e442384326e3075382623775a9be
 [...]
-27     
\\x4a773b09239e4eb500fc1f7901824a15d989f9d0fabf717bacd3a8a81c7ae9858fea32244fbd882f0f55d8763262a34508b0a9e1ce50b96c3e04212568a724c8
     
\\x747f5c89194b7266b995701b18f8f5f9b31a1f18997b72aa306b12fe8c1be3db30507cf68c32408ad8ed9accdf31dfb56ac917b362dd21e4727b7e499540110f
     
\\x216c2135704cf4f5e1275784111b36a56bfdc9a5370a0197a8b610db27c170074e30f37079cfd0a64ffd919236c1bd8e98c4ad1939e51e43adc0e180cfcc08d0ae2ac0565d5350662ab50700ea87b17a08ee280896b7d98cdb3abfd459297b3da7ea536cd75d420e516b7f25a85e93
 [...]
-28     
\\x77f76187f4587134ab7e00b26347225863ef176a0d9885c4206e01611cca519ea0c5fc5ac6cdcbaef3823b9cca6bab32487bd9c5e0ccaaa00614917c9355c168
     
\\x515baaf90e9c05724c56f5304095310345032d27286e6136a972ac6017b9f67fa608a11a806b632cc1f7d367ea63e1df40cd2d0c0756de82f829bc67f8b82ec5
     
\\x711ef153eafca8a60f7a7033d50f96ab6f614d8ebde72ef96742d5d351cc75f409a9c8a25f8151e39fcfc7de7299e3f0a725b58705f4822ffbe9ebca7d0ace87722e91848ea5fb94f637c65d145b803781b23d1a22dc2742aec014364dc54ed6ce4aab2eb13da550b4b08e62d09297
 [...]
-\.
-
-
---
--- Data for Name: wire_auditor_account_progress; Type: TABLE DATA; Schema: 
public; Owner: -
---
-
-COPY public.wire_auditor_account_progress (master_pub, account_name, 
last_wire_reserve_in_serial_id, last_wire_wire_out_serial_id, wire_in_off, 
wire_out_off) FROM stdin;
-\.
-
-
---
--- Data for Name: wire_auditor_progress; Type: TABLE DATA; Schema: public; 
Owner: -
---
-
-COPY public.wire_auditor_progress (master_pub, last_timestamp, 
last_reserve_close_uuid) FROM stdin;
-\.
-
-
---
--- Data for Name: wire_fee; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.wire_fee (wire_method, start_date, end_date, wire_fee_val, 
wire_fee_frac, closing_fee_val, closing_fee_frac, master_sig) FROM stdin;
-\.
-
-
---
--- Data for Name: wire_out; Type: TABLE DATA; Schema: public; Owner: -
---
-
-COPY public.wire_out (wireout_uuid, execution_date, wtid_raw, wire_target, 
exchange_account_section, amount_val, amount_frac) FROM stdin;
-\.
-
-
---
--- Name: aggregation_tracking_aggregation_serial_id_seq; Type: SEQUENCE SET; 
Schema: public; Owner: -
---
-
-SELECT 
pg_catalog.setval('public.aggregation_tracking_aggregation_serial_id_seq', 1, 
false);
-
-
---
--- Name: app_bankaccount_account_no_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.app_bankaccount_account_no_seq', 11, true);
-
-
---
--- Name: app_banktransaction_id_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.app_banktransaction_id_seq', 2, true);
-
-
---
--- Name: auditor_reserves_auditor_reserves_rowid_seq; Type: SEQUENCE SET; 
Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.auditor_reserves_auditor_reserves_rowid_seq', 
1, false);
-
-
---
--- Name: auth_group_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.auth_group_id_seq', 1, false);
-
-
---
--- Name: auth_group_permissions_id_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.auth_group_permissions_id_seq', 1, false);
-
-
---
--- Name: auth_permission_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.auth_permission_id_seq', 32, true);
-
-
---
--- Name: auth_user_groups_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.auth_user_groups_id_seq', 1, false);
-
-
---
--- Name: auth_user_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.auth_user_id_seq', 11, true);
-
-
---
--- Name: auth_user_user_permissions_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.auth_user_user_permissions_id_seq', 1, false);
-
-
---
--- Name: denomination_revocations_denom_revocations_serial_id_seq; Type: 
SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT 
pg_catalog.setval('public.denomination_revocations_denom_revocations_serial_id_seq',
 2, true);
-
-
---
--- Name: deposit_confirmations_serial_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.deposit_confirmations_serial_id_seq', 1, 
true);
-
-
---
--- Name: deposits_deposit_serial_id_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.deposits_deposit_serial_id_seq', 2, true);
-
-
---
--- Name: django_content_type_id_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.django_content_type_id_seq', 8, true);
-
-
---
--- Name: django_migrations_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.django_migrations_id_seq', 15, true);
-
-
---
--- Name: merchant_contract_terms_row_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.merchant_contract_terms_row_id_seq', 2, true);
-
-
---
--- Name: merchant_refunds_rtransaction_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.merchant_refunds_rtransaction_id_seq', 1, 
false);
-
-
---
--- Name: prewire_prewire_uuid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.prewire_prewire_uuid_seq', 1, false);
-
-
---
--- Name: recoup_recoup_uuid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
---
-
-SELECT pg_catalog.setval('public.recoup_recoup_uuid_seq', 1, true);
-
-
---
--- Name: recoup_refresh_recoup_refresh_uuid_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.recoup_refresh_recoup_refresh_uuid_seq', 8, 
true);
-
-
---
--- Name: refresh_commitments_melt_serial_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.refresh_commitments_melt_serial_id_seq', 3, 
true);
-
-
---
--- Name: refunds_refund_serial_id_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.refunds_refund_serial_id_seq', 1, false);
-
-
---
--- Name: reserves_close_close_uuid_seq; Type: SEQUENCE SET; Schema: public; 
Owner: -
---
-
-SELECT pg_catalog.setval('public.reserves_close_close_uuid_seq', 1, false);
-
-
---
--- Name: reserves_in_reserve_in_serial_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.reserves_in_reserve_in_serial_id_seq', 1, 
true);
-
-
---
--- Name: reserves_out_reserve_out_serial_id_seq; Type: SEQUENCE SET; Schema: 
public; Owner: -
---
-
-SELECT pg_catalog.setval('public.reserves_out_reserve_out_serial_id_seq', 28, 
true);
-
-
---
--- Name: wire_out_wireout_uuid_seq; Type: SEQUENCE SET; Schema: public; Owner: 
-
---
-
-SELECT pg_catalog.setval('public.wire_out_wireout_uuid_seq', 1, false);
-
-
---
--- Name: patches patches_pkey; Type: CONSTRAINT; Schema: _v; Owner: -
---
-
-ALTER TABLE ONLY _v.patches
-    ADD CONSTRAINT patches_pkey PRIMARY KEY (patch_name);
-
-
---
--- Name: aggregation_tracking aggregation_tracking_aggregation_serial_id_key; 
Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.aggregation_tracking
-    ADD CONSTRAINT aggregation_tracking_aggregation_serial_id_key UNIQUE 
(aggregation_serial_id);
-
-
---
--- Name: aggregation_tracking aggregation_tracking_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.aggregation_tracking
-    ADD CONSTRAINT aggregation_tracking_pkey PRIMARY KEY (deposit_serial_id);
-
-
---
--- Name: app_bankaccount app_bankaccount_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.app_bankaccount
-    ADD CONSTRAINT app_bankaccount_pkey PRIMARY KEY (account_no);
-
-
---
--- Name: app_bankaccount app_bankaccount_user_id_key; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_bankaccount
-    ADD CONSTRAINT app_bankaccount_user_id_key UNIQUE (user_id);
-
-
---
--- Name: app_banktransaction app_banktransaction_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_banktransaction
-    ADD CONSTRAINT app_banktransaction_pkey PRIMARY KEY (id);
-
-
---
--- Name: app_banktransaction app_banktransaction_request_uid_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_banktransaction
-    ADD CONSTRAINT app_banktransaction_request_uid_key UNIQUE (request_uid);
-
-
---
--- Name: app_talerwithdrawoperation app_talerwithdrawoperation_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_talerwithdrawoperation
-    ADD CONSTRAINT app_talerwithdrawoperation_pkey PRIMARY KEY (withdraw_id);
-
-
---
--- Name: auditor_denomination_pending auditor_denomination_pending_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_denomination_pending
-    ADD CONSTRAINT auditor_denomination_pending_pkey PRIMARY KEY 
(denom_pub_hash);
-
-
---
--- Name: auditor_denominations auditor_denominations_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_denominations
-    ADD CONSTRAINT auditor_denominations_pkey PRIMARY KEY (denom_pub_hash);
-
-
---
--- Name: auditor_exchanges auditor_exchanges_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_exchanges
-    ADD CONSTRAINT auditor_exchanges_pkey PRIMARY KEY (master_pub);
-
-
---
--- Name: auditor_historic_denomination_revenue 
auditor_historic_denomination_revenue_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.auditor_historic_denomination_revenue
-    ADD CONSTRAINT auditor_historic_denomination_revenue_pkey PRIMARY KEY 
(denom_pub_hash);
-
-
---
--- Name: auditor_progress_aggregation auditor_progress_aggregation_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_aggregation
-    ADD CONSTRAINT auditor_progress_aggregation_pkey PRIMARY KEY (master_pub);
-
-
---
--- Name: auditor_progress_coin auditor_progress_coin_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_coin
-    ADD CONSTRAINT auditor_progress_coin_pkey PRIMARY KEY (master_pub);
-
-
---
--- Name: auditor_progress_deposit_confirmation 
auditor_progress_deposit_confirmation_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_deposit_confirmation
-    ADD CONSTRAINT auditor_progress_deposit_confirmation_pkey PRIMARY KEY 
(master_pub);
-
-
---
--- Name: auditor_progress_reserve auditor_progress_reserve_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_reserve
-    ADD CONSTRAINT auditor_progress_reserve_pkey PRIMARY KEY (master_pub);
-
-
---
--- Name: auditor_reserves auditor_reserves_auditor_reserves_rowid_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_reserves
-    ADD CONSTRAINT auditor_reserves_auditor_reserves_rowid_key UNIQUE 
(auditor_reserves_rowid);
-
-
---
--- Name: auth_group auth_group_name_key; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.auth_group
-    ADD CONSTRAINT auth_group_name_key UNIQUE (name);
-
-
---
--- Name: auth_group_permissions 
auth_group_permissions_group_id_permission_id_0cd325b0_uniq; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group_permissions
-    ADD CONSTRAINT auth_group_permissions_group_id_permission_id_0cd325b0_uniq 
UNIQUE (group_id, permission_id);
-
-
---
--- Name: auth_group_permissions auth_group_permissions_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group_permissions
-    ADD CONSTRAINT auth_group_permissions_pkey PRIMARY KEY (id);
-
-
---
--- Name: auth_group auth_group_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group
-    ADD CONSTRAINT auth_group_pkey PRIMARY KEY (id);
-
-
---
--- Name: auth_permission 
auth_permission_content_type_id_codename_01ab375a_uniq; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_permission
-    ADD CONSTRAINT auth_permission_content_type_id_codename_01ab375a_uniq 
UNIQUE (content_type_id, codename);
-
-
---
--- Name: auth_permission auth_permission_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_permission
-    ADD CONSTRAINT auth_permission_pkey PRIMARY KEY (id);
-
-
---
--- Name: auth_user_groups auth_user_groups_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_groups
-    ADD CONSTRAINT auth_user_groups_pkey PRIMARY KEY (id);
-
-
---
--- Name: auth_user_groups auth_user_groups_user_id_group_id_94350c0c_uniq; 
Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_groups
-    ADD CONSTRAINT auth_user_groups_user_id_group_id_94350c0c_uniq UNIQUE 
(user_id, group_id);
-
-
---
--- Name: auth_user auth_user_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user
-    ADD CONSTRAINT auth_user_pkey PRIMARY KEY (id);
-
-
---
--- Name: auth_user_user_permissions auth_user_user_permissions_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_user_permissions
-    ADD CONSTRAINT auth_user_user_permissions_pkey PRIMARY KEY (id);
-
-
---
--- Name: auth_user_user_permissions 
auth_user_user_permissions_user_id_permission_id_14a6b632_uniq; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_user_permissions
-    ADD CONSTRAINT 
auth_user_user_permissions_user_id_permission_id_14a6b632_uniq UNIQUE (user_id, 
permission_id);
-
-
---
--- Name: auth_user auth_user_username_key; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.auth_user
-    ADD CONSTRAINT auth_user_username_key UNIQUE (username);
-
-
---
--- Name: denomination_revocations 
denomination_revocations_denom_revocations_serial_id_key; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.denomination_revocations
-    ADD CONSTRAINT denomination_revocations_denom_revocations_serial_id_key 
UNIQUE (denom_revocations_serial_id);
-
-
---
--- Name: denomination_revocations denomination_revocations_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.denomination_revocations
-    ADD CONSTRAINT denomination_revocations_pkey PRIMARY KEY (denom_pub_hash);
-
-
---
--- Name: denominations denominations_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.denominations
-    ADD CONSTRAINT denominations_pkey PRIMARY KEY (denom_pub_hash);
-
-
---
--- Name: deposit_confirmations deposit_confirmations_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.deposit_confirmations
-    ADD CONSTRAINT deposit_confirmations_pkey PRIMARY KEY (h_contract_terms, 
h_wire, coin_pub, merchant_pub, exchange_sig, exchange_pub, master_sig);
-
-
---
--- Name: deposit_confirmations deposit_confirmations_serial_id_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.deposit_confirmations
-    ADD CONSTRAINT deposit_confirmations_serial_id_key UNIQUE (serial_id);
-
-
---
--- Name: deposits deposits_coin_pub_merchant_pub_h_contract_terms_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.deposits
-    ADD CONSTRAINT deposits_coin_pub_merchant_pub_h_contract_terms_key UNIQUE 
(coin_pub, merchant_pub, h_contract_terms);
-
-
---
--- Name: deposits deposits_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.deposits
-    ADD CONSTRAINT deposits_pkey PRIMARY KEY (deposit_serial_id);
-
-
---
--- Name: django_content_type 
django_content_type_app_label_model_76bd3d3b_uniq; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.django_content_type
-    ADD CONSTRAINT django_content_type_app_label_model_76bd3d3b_uniq UNIQUE 
(app_label, model);
-
-
---
--- Name: django_content_type django_content_type_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.django_content_type
-    ADD CONSTRAINT django_content_type_pkey PRIMARY KEY (id);
-
-
---
--- Name: django_migrations django_migrations_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.django_migrations
-    ADD CONSTRAINT django_migrations_pkey PRIMARY KEY (id);
-
-
---
--- Name: django_session django_session_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.django_session
-    ADD CONSTRAINT django_session_pkey PRIMARY KEY (session_key);
-
-
---
--- Name: exchange_wire_fees exchange_wire_fees_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.exchange_wire_fees
-    ADD CONSTRAINT exchange_wire_fees_pkey PRIMARY KEY (exchange_pub, 
h_wire_method, start_date, end_date);
-
-
---
--- Name: known_coins known_coins_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.known_coins
-    ADD CONSTRAINT known_coins_pkey PRIMARY KEY (coin_pub);
-
-
---
--- Name: merchant_contract_terms 
merchant_contract_terms_h_contract_terms_merchant_pub_key; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_contract_terms
-    ADD CONSTRAINT merchant_contract_terms_h_contract_terms_merchant_pub_key 
UNIQUE (h_contract_terms, merchant_pub);
-
-
---
--- Name: merchant_contract_terms merchant_contract_terms_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_contract_terms
-    ADD CONSTRAINT merchant_contract_terms_pkey PRIMARY KEY (order_id, 
merchant_pub);
-
-
---
--- Name: merchant_contract_terms merchant_contract_terms_row_id_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_contract_terms
-    ADD CONSTRAINT merchant_contract_terms_row_id_key UNIQUE (row_id);
-
-
---
--- Name: merchant_deposits merchant_deposits_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_deposits
-    ADD CONSTRAINT merchant_deposits_pkey PRIMARY KEY (h_contract_terms, 
coin_pub);
-
-
---
--- Name: merchant_orders merchant_orders_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_orders
-    ADD CONSTRAINT merchant_orders_pkey PRIMARY KEY (order_id, merchant_pub);
-
-
---
--- Name: merchant_proofs merchant_proofs_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_proofs
-    ADD CONSTRAINT merchant_proofs_pkey PRIMARY KEY (wtid, exchange_url);
-
-
---
--- Name: merchant_refunds merchant_refunds_rtransaction_id_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_refunds
-    ADD CONSTRAINT merchant_refunds_rtransaction_id_key UNIQUE 
(rtransaction_id);
-
-
---
--- Name: merchant_session_info merchant_session_info_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_session_info
-    ADD CONSTRAINT merchant_session_info_pkey PRIMARY KEY (session_id, 
fulfillment_url, merchant_pub);
-
-
---
--- Name: merchant_session_info 
merchant_session_info_session_id_fulfillment_url_order_id_m_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_session_info
-    ADD CONSTRAINT 
merchant_session_info_session_id_fulfillment_url_order_id_m_key UNIQUE 
(session_id, fulfillment_url, order_id, merchant_pub);
-
-
---
--- Name: merchant_tip_pickups merchant_tip_pickups_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_tip_pickups
-    ADD CONSTRAINT merchant_tip_pickups_pkey PRIMARY KEY (pickup_id);
-
-
---
--- Name: merchant_tip_reserve_credits merchant_tip_reserve_credits_pkey; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_tip_reserve_credits
-    ADD CONSTRAINT merchant_tip_reserve_credits_pkey PRIMARY KEY (credit_uuid);
-
-
---
--- Name: merchant_tip_reserves merchant_tip_reserves_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_tip_reserves
-    ADD CONSTRAINT merchant_tip_reserves_pkey PRIMARY KEY (reserve_priv);
-
-
---
--- Name: merchant_tips merchant_tips_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.merchant_tips
-    ADD CONSTRAINT merchant_tips_pkey PRIMARY KEY (tip_id);
-
-
---
--- Name: merchant_transfers merchant_transfers_pkey; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_transfers
-    ADD CONSTRAINT merchant_transfers_pkey PRIMARY KEY (h_contract_terms, 
coin_pub);
-
-
---
--- Name: prewire prewire_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.prewire
-    ADD CONSTRAINT prewire_pkey PRIMARY KEY (prewire_uuid);
-
-
---
--- Name: recoup recoup_recoup_uuid_key; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.recoup
-    ADD CONSTRAINT recoup_recoup_uuid_key UNIQUE (recoup_uuid);
-
-
---
--- Name: recoup_refresh recoup_refresh_recoup_refresh_uuid_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.recoup_refresh
-    ADD CONSTRAINT recoup_refresh_recoup_refresh_uuid_key UNIQUE 
(recoup_refresh_uuid);
-
-
---
--- Name: refresh_commitments refresh_commitments_melt_serial_id_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_commitments
-    ADD CONSTRAINT refresh_commitments_melt_serial_id_key UNIQUE 
(melt_serial_id);
-
-
---
--- Name: refresh_commitments refresh_commitments_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_commitments
-    ADD CONSTRAINT refresh_commitments_pkey PRIMARY KEY (rc);
-
-
---
--- Name: refresh_revealed_coins refresh_revealed_coins_coin_ev_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_revealed_coins
-    ADD CONSTRAINT refresh_revealed_coins_coin_ev_key UNIQUE (coin_ev);
-
-
---
--- Name: refresh_revealed_coins refresh_revealed_coins_h_coin_ev_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_revealed_coins
-    ADD CONSTRAINT refresh_revealed_coins_h_coin_ev_key UNIQUE (h_coin_ev);
-
-
---
--- Name: refresh_revealed_coins refresh_revealed_coins_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_revealed_coins
-    ADD CONSTRAINT refresh_revealed_coins_pkey PRIMARY KEY (rc, 
freshcoin_index);
-
-
---
--- Name: refresh_transfer_keys refresh_transfer_keys_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_transfer_keys
-    ADD CONSTRAINT refresh_transfer_keys_pkey PRIMARY KEY (rc);
-
-
---
--- Name: refunds refunds_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refunds
-    ADD CONSTRAINT refunds_pkey PRIMARY KEY (coin_pub, merchant_pub, 
h_contract_terms, rtransaction_id);
-
-
---
--- Name: refunds refunds_refund_serial_id_key; Type: CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.refunds
-    ADD CONSTRAINT refunds_refund_serial_id_key UNIQUE (refund_serial_id);
-
-
---
--- Name: reserves_close reserves_close_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.reserves_close
-    ADD CONSTRAINT reserves_close_pkey PRIMARY KEY (close_uuid);
-
-
---
--- Name: reserves_in reserves_in_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.reserves_in
-    ADD CONSTRAINT reserves_in_pkey PRIMARY KEY (reserve_pub, wire_reference);
-
-
---
--- Name: reserves_in reserves_in_reserve_in_serial_id_key; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_in
-    ADD CONSTRAINT reserves_in_reserve_in_serial_id_key UNIQUE 
(reserve_in_serial_id);
-
-
---
--- Name: reserves_out reserves_out_pkey; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.reserves_out
-    ADD CONSTRAINT reserves_out_pkey PRIMARY KEY (h_blind_ev);
-
-
---
--- Name: reserves_out reserves_out_reserve_out_serial_id_key; Type: 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_out
-    ADD CONSTRAINT reserves_out_reserve_out_serial_id_key UNIQUE 
(reserve_out_serial_id);
-
-
---
--- Name: reserves reserves_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves
-    ADD CONSTRAINT reserves_pkey PRIMARY KEY (reserve_pub);
-
-
---
--- Name: wire_auditor_account_progress wire_auditor_account_progress_pkey; 
Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_auditor_account_progress
-    ADD CONSTRAINT wire_auditor_account_progress_pkey PRIMARY KEY (master_pub, 
account_name);
-
-
---
--- Name: wire_auditor_progress wire_auditor_progress_pkey; Type: CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_auditor_progress
-    ADD CONSTRAINT wire_auditor_progress_pkey PRIMARY KEY (master_pub);
-
-
---
--- Name: wire_fee wire_fee_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_fee
-    ADD CONSTRAINT wire_fee_pkey PRIMARY KEY (wire_method, start_date);
-
-
---
--- Name: wire_out wire_out_pkey; Type: CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_out
-    ADD CONSTRAINT wire_out_pkey PRIMARY KEY (wireout_uuid);
-
-
---
--- Name: wire_out wire_out_wtid_raw_key; Type: CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.wire_out
-    ADD CONSTRAINT wire_out_wtid_raw_key UNIQUE (wtid_raw);
-
-
---
--- Name: aggregation_tracking_wtid_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX aggregation_tracking_wtid_index ON public.aggregation_tracking 
USING btree (wtid_raw);
-
-
---
--- Name: INDEX aggregation_tracking_wtid_index; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON INDEX public.aggregation_tracking_wtid_index IS 'for 
lookup_transactions';
-
-
---
--- Name: app_banktransaction_credit_account_id_a8ba05ac; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX app_banktransaction_credit_account_id_a8ba05ac ON 
public.app_banktransaction USING btree (credit_account_id);
-
-
---
--- Name: app_banktransaction_date_f72bcad6; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX app_banktransaction_date_f72bcad6 ON public.app_banktransaction 
USING btree (date);
-
-
---
--- Name: app_banktransaction_debit_account_id_5b1f7528; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX app_banktransaction_debit_account_id_5b1f7528 ON 
public.app_banktransaction USING btree (debit_account_id);
-
-
---
--- Name: app_banktransaction_request_uid_b7d06af5_like; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX app_banktransaction_request_uid_b7d06af5_like ON 
public.app_banktransaction USING btree (request_uid varchar_pattern_ops);
-
-
---
--- Name: app_talerwithdrawoperation_selected_exchange_account__6c8b96cf; Type: 
INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX app_talerwithdrawoperation_selected_exchange_account__6c8b96cf ON 
public.app_talerwithdrawoperation USING btree (selected_exchange_account_id);
-
-
---
--- Name: app_talerwithdrawoperation_withdraw_account_id_992dc5b3; Type: INDEX; 
Schema: public; Owner: -
---
-
-CREATE INDEX app_talerwithdrawoperation_withdraw_account_id_992dc5b3 ON 
public.app_talerwithdrawoperation USING btree (withdraw_account_id);
-
-
---
--- Name: auditor_historic_reserve_summary_by_master_pub_start_date; Type: 
INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX auditor_historic_reserve_summary_by_master_pub_start_date ON 
public.auditor_historic_reserve_summary USING btree (master_pub, start_date);
-
-
---
--- Name: auditor_reserves_by_reserve_pub; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX auditor_reserves_by_reserve_pub ON public.auditor_reserves USING 
btree (reserve_pub);
-
-
---
--- Name: auth_group_name_a6ea08ec_like; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX auth_group_name_a6ea08ec_like ON public.auth_group USING btree 
(name varchar_pattern_ops);
-
-
---
--- Name: auth_group_permissions_group_id_b120cbf9; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX auth_group_permissions_group_id_b120cbf9 ON 
public.auth_group_permissions USING btree (group_id);
-
-
---
--- Name: auth_group_permissions_permission_id_84c5c92e; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX auth_group_permissions_permission_id_84c5c92e ON 
public.auth_group_permissions USING btree (permission_id);
-
-
---
--- Name: auth_permission_content_type_id_2f476e4b; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX auth_permission_content_type_id_2f476e4b ON 
public.auth_permission USING btree (content_type_id);
-
-
---
--- Name: auth_user_groups_group_id_97559544; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX auth_user_groups_group_id_97559544 ON public.auth_user_groups 
USING btree (group_id);
-
-
---
--- Name: auth_user_groups_user_id_6a12ed8b; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX auth_user_groups_user_id_6a12ed8b ON public.auth_user_groups 
USING btree (user_id);
-
-
---
--- Name: auth_user_user_permissions_permission_id_1fbb5f2c; Type: INDEX; 
Schema: public; Owner: -
---
-
-CREATE INDEX auth_user_user_permissions_permission_id_1fbb5f2c ON 
public.auth_user_user_permissions USING btree (permission_id);
-
-
---
--- Name: auth_user_user_permissions_user_id_a95ead1b; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX auth_user_user_permissions_user_id_a95ead1b ON 
public.auth_user_user_permissions USING btree (user_id);
-
-
---
--- Name: auth_user_username_6821ab7c_like; Type: INDEX; Schema: public; Owner: 
-
---
-
-CREATE INDEX auth_user_username_6821ab7c_like ON public.auth_user USING btree 
(username varchar_pattern_ops);
-
-
---
--- Name: denominations_expire_legal_index; Type: INDEX; Schema: public; Owner: 
-
---
-
-CREATE INDEX denominations_expire_legal_index ON public.denominations USING 
btree (expire_legal);
-
-
---
--- Name: deposits_coin_pub_merchant_contract_index; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX deposits_coin_pub_merchant_contract_index ON public.deposits 
USING btree (coin_pub, merchant_pub, h_contract_terms);
-
-
---
--- Name: INDEX deposits_coin_pub_merchant_contract_index; Type: COMMENT; 
Schema: public; Owner: -
---
-
-COMMENT ON INDEX public.deposits_coin_pub_merchant_contract_index IS 'for 
deposits_get_ready';
-
-
---
--- Name: deposits_get_ready_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX deposits_get_ready_index ON public.deposits USING btree (tiny, 
done, wire_deadline, refund_deadline);
-
-
---
--- Name: deposits_iterate_matching_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX deposits_iterate_matching_index ON public.deposits USING btree 
(merchant_pub, h_wire, done, wire_deadline);
-
-
---
--- Name: INDEX deposits_iterate_matching_index; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON INDEX public.deposits_iterate_matching_index IS 'for 
deposits_iterate_matching';
-
-
---
--- Name: django_session_expire_date_a5c62663; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX django_session_expire_date_a5c62663 ON public.django_session 
USING btree (expire_date);
-
-
---
--- Name: django_session_session_key_c0390e0f_like; Type: INDEX; Schema: 
public; Owner: -
---
-
-CREATE INDEX django_session_session_key_c0390e0f_like ON public.django_session 
USING btree (session_key varchar_pattern_ops);
-
-
---
--- Name: known_coins_by_denomination; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX known_coins_by_denomination ON public.known_coins USING btree 
(denom_pub_hash);
-
-
---
--- Name: merchant_transfers_by_coin; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX merchant_transfers_by_coin ON public.merchant_transfers USING 
btree (h_contract_terms, coin_pub);
-
-
---
--- Name: merchant_transfers_by_wtid; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX merchant_transfers_by_wtid ON public.merchant_transfers USING 
btree (wtid);
-
-
---
--- Name: prepare_iteration_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX prepare_iteration_index ON public.prewire USING btree (finished);
-
-
---
--- Name: INDEX prepare_iteration_index; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON INDEX public.prepare_iteration_index IS 'for wire_prepare_data_get 
and gc_prewire';
-
-
---
--- Name: recoup_by_coin_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX recoup_by_coin_index ON public.recoup USING btree (coin_pub);
-
-
---
--- Name: recoup_by_h_blind_ev; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX recoup_by_h_blind_ev ON public.recoup USING btree (h_blind_ev);
-
-
---
--- Name: recoup_for_by_reserve; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX recoup_for_by_reserve ON public.recoup USING btree (coin_pub, 
h_blind_ev);
-
-
---
--- Name: recoup_refresh_by_coin_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX recoup_refresh_by_coin_index ON public.recoup_refresh USING btree 
(coin_pub);
-
-
---
--- Name: recoup_refresh_by_h_blind_ev; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX recoup_refresh_by_h_blind_ev ON public.recoup_refresh USING btree 
(h_blind_ev);
-
-
---
--- Name: recoup_refresh_for_by_reserve; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX recoup_refresh_for_by_reserve ON public.recoup_refresh USING 
btree (coin_pub, h_blind_ev);
-
-
---
--- Name: refresh_commitments_old_coin_pub_index; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX refresh_commitments_old_coin_pub_index ON 
public.refresh_commitments USING btree (old_coin_pub);
-
-
---
--- Name: refresh_revealed_coins_coin_pub_index; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX refresh_revealed_coins_coin_pub_index ON 
public.refresh_revealed_coins USING btree (denom_pub_hash);
-
-
---
--- Name: refresh_transfer_keys_coin_tpub; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX refresh_transfer_keys_coin_tpub ON public.refresh_transfer_keys 
USING btree (rc, transfer_pub);
-
-
---
--- Name: INDEX refresh_transfer_keys_coin_tpub; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON INDEX public.refresh_transfer_keys_coin_tpub IS 'for get_link 
(unsure if this helps or hurts for performance as there should be very few 
transfer public keys per rc, but at least in theory this helps the ORDER BY 
clause)';
-
-
---
--- Name: refunds_coin_pub_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX refunds_coin_pub_index ON public.refunds USING btree (coin_pub);
-
-
---
--- Name: reserves_close_by_reserve; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX reserves_close_by_reserve ON public.reserves_close USING btree 
(reserve_pub);
-
-
---
--- Name: reserves_expiration_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX reserves_expiration_index ON public.reserves USING btree 
(expiration_date, current_balance_val, current_balance_frac);
-
-
---
--- Name: INDEX reserves_expiration_index; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON INDEX public.reserves_expiration_index IS 'used in 
get_expired_reserves';
-
-
---
--- Name: reserves_gc_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX reserves_gc_index ON public.reserves USING btree (gc_date);
-
-
---
--- Name: INDEX reserves_gc_index; Type: COMMENT; Schema: public; Owner: -
---
-
-COMMENT ON INDEX public.reserves_gc_index IS 'for reserve garbage collection';
-
-
---
--- Name: reserves_in_exchange_account_serial; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX reserves_in_exchange_account_serial ON public.reserves_in USING 
btree (exchange_account_section, reserve_in_serial_id DESC);
-
-
---
--- Name: reserves_in_execution_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX reserves_in_execution_index ON public.reserves_in USING btree 
(exchange_account_section, execution_date);
-
-
---
--- Name: reserves_out_execution_date; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX reserves_out_execution_date ON public.reserves_out USING btree 
(execution_date);
-
-
---
--- Name: reserves_out_for_get_withdraw_info; Type: INDEX; Schema: public; 
Owner: -
---
-
-CREATE INDEX reserves_out_for_get_withdraw_info ON public.reserves_out USING 
btree (denom_pub_hash, h_blind_ev);
-
-
---
--- Name: reserves_out_reserve_pub_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX reserves_out_reserve_pub_index ON public.reserves_out USING btree 
(reserve_pub);
-
-
---
--- Name: INDEX reserves_out_reserve_pub_index; Type: COMMENT; Schema: public; 
Owner: -
---
-
-COMMENT ON INDEX public.reserves_out_reserve_pub_index IS 'for 
get_reserves_out';
-
-
---
--- Name: wire_fee_gc_index; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX wire_fee_gc_index ON public.wire_fee USING btree (end_date);
-
-
---
--- Name: aggregation_tracking aggregation_tracking_deposit_serial_id_fkey; 
Type: FK CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.aggregation_tracking
-    ADD CONSTRAINT aggregation_tracking_deposit_serial_id_fkey FOREIGN KEY 
(deposit_serial_id) REFERENCES public.deposits(deposit_serial_id) ON DELETE 
CASCADE;
-
-
---
--- Name: app_bankaccount app_bankaccount_user_id_2722a34f_fk_auth_user_id; 
Type: FK CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_bankaccount
-    ADD CONSTRAINT app_bankaccount_user_id_2722a34f_fk_auth_user_id FOREIGN 
KEY (user_id) REFERENCES public.auth_user(id) DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: app_banktransaction 
app_banktransaction_credit_account_id_a8ba05ac_fk_app_banka; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_banktransaction
-    ADD CONSTRAINT app_banktransaction_credit_account_id_a8ba05ac_fk_app_banka 
FOREIGN KEY (credit_account_id) REFERENCES public.app_bankaccount(account_no) 
DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: app_banktransaction 
app_banktransaction_debit_account_id_5b1f7528_fk_app_banka; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_banktransaction
-    ADD CONSTRAINT app_banktransaction_debit_account_id_5b1f7528_fk_app_banka 
FOREIGN KEY (debit_account_id) REFERENCES public.app_bankaccount(account_no) 
DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: app_talerwithdrawoperation 
app_talerwithdrawope_selected_exchange_ac_6c8b96cf_fk_app_banka; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_talerwithdrawoperation
-    ADD CONSTRAINT 
app_talerwithdrawope_selected_exchange_ac_6c8b96cf_fk_app_banka FOREIGN KEY 
(selected_exchange_account_id) REFERENCES public.app_bankaccount(account_no) 
DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: app_talerwithdrawoperation 
app_talerwithdrawope_withdraw_account_id_992dc5b3_fk_app_banka; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.app_talerwithdrawoperation
-    ADD CONSTRAINT 
app_talerwithdrawope_withdraw_account_id_992dc5b3_fk_app_banka FOREIGN KEY 
(withdraw_account_id) REFERENCES public.app_bankaccount(account_no) DEFERRABLE 
INITIALLY DEFERRED;
-
-
---
--- Name: auditor_denomination_pending 
auditor_denomination_pending_denom_pub_hash_fkey; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_denomination_pending
-    ADD CONSTRAINT auditor_denomination_pending_denom_pub_hash_fkey FOREIGN 
KEY (denom_pub_hash) REFERENCES public.auditor_denominations(denom_pub_hash) ON 
DELETE CASCADE;
-
-
---
--- Name: auth_group_permissions 
auth_group_permissio_permission_id_84c5c92e_fk_auth_perm; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group_permissions
-    ADD CONSTRAINT auth_group_permissio_permission_id_84c5c92e_fk_auth_perm 
FOREIGN KEY (permission_id) REFERENCES public.auth_permission(id) DEFERRABLE 
INITIALLY DEFERRED;
-
-
---
--- Name: auth_group_permissions 
auth_group_permissions_group_id_b120cbf9_fk_auth_group_id; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_group_permissions
-    ADD CONSTRAINT auth_group_permissions_group_id_b120cbf9_fk_auth_group_id 
FOREIGN KEY (group_id) REFERENCES public.auth_group(id) DEFERRABLE INITIALLY 
DEFERRED;
-
-
---
--- Name: auth_permission 
auth_permission_content_type_id_2f476e4b_fk_django_co; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_permission
-    ADD CONSTRAINT auth_permission_content_type_id_2f476e4b_fk_django_co 
FOREIGN KEY (content_type_id) REFERENCES public.django_content_type(id) 
DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: auth_user_groups auth_user_groups_group_id_97559544_fk_auth_group_id; 
Type: FK CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_groups
-    ADD CONSTRAINT auth_user_groups_group_id_97559544_fk_auth_group_id FOREIGN 
KEY (group_id) REFERENCES public.auth_group(id) DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: auth_user_groups auth_user_groups_user_id_6a12ed8b_fk_auth_user_id; 
Type: FK CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_groups
-    ADD CONSTRAINT auth_user_groups_user_id_6a12ed8b_fk_auth_user_id FOREIGN 
KEY (user_id) REFERENCES public.auth_user(id) DEFERRABLE INITIALLY DEFERRED;
-
-
---
--- Name: auth_user_user_permissions 
auth_user_user_permi_permission_id_1fbb5f2c_fk_auth_perm; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_user_permissions
-    ADD CONSTRAINT auth_user_user_permi_permission_id_1fbb5f2c_fk_auth_perm 
FOREIGN KEY (permission_id) REFERENCES public.auth_permission(id) DEFERRABLE 
INITIALLY DEFERRED;
-
-
---
--- Name: auth_user_user_permissions 
auth_user_user_permissions_user_id_a95ead1b_fk_auth_user_id; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auth_user_user_permissions
-    ADD CONSTRAINT auth_user_user_permissions_user_id_a95ead1b_fk_auth_user_id 
FOREIGN KEY (user_id) REFERENCES public.auth_user(id) DEFERRABLE INITIALLY 
DEFERRED;
-
-
---
--- Name: denomination_revocations 
denomination_revocations_denom_pub_hash_fkey; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.denomination_revocations
-    ADD CONSTRAINT denomination_revocations_denom_pub_hash_fkey FOREIGN KEY 
(denom_pub_hash) REFERENCES public.denominations(denom_pub_hash) ON DELETE 
CASCADE;
-
-
---
--- Name: deposits deposits_coin_pub_fkey; Type: FK CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.deposits
-    ADD CONSTRAINT deposits_coin_pub_fkey FOREIGN KEY (coin_pub) REFERENCES 
public.known_coins(coin_pub) ON DELETE CASCADE;
-
-
---
--- Name: known_coins known_coins_denom_pub_hash_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.known_coins
-    ADD CONSTRAINT known_coins_denom_pub_hash_fkey FOREIGN KEY 
(denom_pub_hash) REFERENCES public.denominations(denom_pub_hash) ON DELETE 
CASCADE;
-
-
---
--- Name: auditor_exchange_signkeys master_pub_ref; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_exchange_signkeys
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_denominations master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_denominations
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_progress_reserve master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_reserve
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_progress_aggregation master_pub_ref; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_aggregation
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_progress_deposit_confirmation master_pub_ref; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_deposit_confirmation
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_progress_coin master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_progress_coin
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: wire_auditor_account_progress master_pub_ref; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_auditor_account_progress
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: wire_auditor_progress master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.wire_auditor_progress
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_reserves master_pub_ref; Type: FK CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.auditor_reserves
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_reserve_balance master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_reserve_balance
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_wire_fee_balance master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_wire_fee_balance
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_balance_summary master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_balance_summary
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_historic_denomination_revenue master_pub_ref; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_historic_denomination_revenue
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_historic_reserve_summary master_pub_ref; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_historic_reserve_summary
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: deposit_confirmations master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.deposit_confirmations
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: auditor_predicted_result master_pub_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.auditor_predicted_result
-    ADD CONSTRAINT master_pub_ref FOREIGN KEY (master_pub) REFERENCES 
public.auditor_exchanges(master_pub) ON DELETE CASCADE;
-
-
---
--- Name: merchant_deposits merchant_deposits_h_contract_terms_fkey; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_deposits
-    ADD CONSTRAINT merchant_deposits_h_contract_terms_fkey FOREIGN KEY 
(h_contract_terms, merchant_pub) REFERENCES 
public.merchant_contract_terms(h_contract_terms, merchant_pub);
-
-
---
--- Name: merchant_tip_pickups merchant_tip_pickups_tip_id_fkey; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.merchant_tip_pickups
-    ADD CONSTRAINT merchant_tip_pickups_tip_id_fkey FOREIGN KEY (tip_id) 
REFERENCES public.merchant_tips(tip_id) ON DELETE CASCADE;
-
-
---
--- Name: recoup recoup_coin_pub_fkey; Type: FK CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.recoup
-    ADD CONSTRAINT recoup_coin_pub_fkey FOREIGN KEY (coin_pub) REFERENCES 
public.known_coins(coin_pub);
-
-
---
--- Name: recoup recoup_h_blind_ev_fkey; Type: FK CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.recoup
-    ADD CONSTRAINT recoup_h_blind_ev_fkey FOREIGN KEY (h_blind_ev) REFERENCES 
public.reserves_out(h_blind_ev) ON DELETE CASCADE;
-
-
---
--- Name: recoup_refresh recoup_refresh_coin_pub_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.recoup_refresh
-    ADD CONSTRAINT recoup_refresh_coin_pub_fkey FOREIGN KEY (coin_pub) 
REFERENCES public.known_coins(coin_pub);
-
-
---
--- Name: recoup_refresh recoup_refresh_h_blind_ev_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.recoup_refresh
-    ADD CONSTRAINT recoup_refresh_h_blind_ev_fkey FOREIGN KEY (h_blind_ev) 
REFERENCES public.refresh_revealed_coins(h_coin_ev) ON DELETE CASCADE;
-
-
---
--- Name: refresh_commitments refresh_commitments_old_coin_pub_fkey; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_commitments
-    ADD CONSTRAINT refresh_commitments_old_coin_pub_fkey FOREIGN KEY 
(old_coin_pub) REFERENCES public.known_coins(coin_pub) ON DELETE CASCADE;
-
-
---
--- Name: refresh_revealed_coins refresh_revealed_coins_denom_pub_hash_fkey; 
Type: FK CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_revealed_coins
-    ADD CONSTRAINT refresh_revealed_coins_denom_pub_hash_fkey FOREIGN KEY 
(denom_pub_hash) REFERENCES public.denominations(denom_pub_hash) ON DELETE 
CASCADE;
-
-
---
--- Name: refresh_revealed_coins refresh_revealed_coins_rc_fkey; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_revealed_coins
-    ADD CONSTRAINT refresh_revealed_coins_rc_fkey FOREIGN KEY (rc) REFERENCES 
public.refresh_commitments(rc) ON DELETE CASCADE;
-
-
---
--- Name: refresh_transfer_keys refresh_transfer_keys_rc_fkey; Type: FK 
CONSTRAINT; Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.refresh_transfer_keys
-    ADD CONSTRAINT refresh_transfer_keys_rc_fkey FOREIGN KEY (rc) REFERENCES 
public.refresh_commitments(rc) ON DELETE CASCADE;
-
-
---
--- Name: refunds refunds_coin_pub_fkey; Type: FK CONSTRAINT; Schema: public; 
Owner: -
---
-
-ALTER TABLE ONLY public.refunds
-    ADD CONSTRAINT refunds_coin_pub_fkey FOREIGN KEY (coin_pub) REFERENCES 
public.known_coins(coin_pub) ON DELETE CASCADE;
-
-
---
--- Name: reserves_close reserves_close_reserve_pub_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_close
-    ADD CONSTRAINT reserves_close_reserve_pub_fkey FOREIGN KEY (reserve_pub) 
REFERENCES public.reserves(reserve_pub) ON DELETE CASCADE;
-
-
---
--- Name: reserves_in reserves_in_reserve_pub_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_in
-    ADD CONSTRAINT reserves_in_reserve_pub_fkey FOREIGN KEY (reserve_pub) 
REFERENCES public.reserves(reserve_pub) ON DELETE CASCADE;
-
-
---
--- Name: reserves_out reserves_out_denom_pub_hash_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_out
-    ADD CONSTRAINT reserves_out_denom_pub_hash_fkey FOREIGN KEY 
(denom_pub_hash) REFERENCES public.denominations(denom_pub_hash);
-
-
---
--- Name: reserves_out reserves_out_reserve_pub_fkey; Type: FK CONSTRAINT; 
Schema: public; Owner: -
---
-
-ALTER TABLE ONLY public.reserves_out
-    ADD CONSTRAINT reserves_out_reserve_pub_fkey FOREIGN KEY (reserve_pub) 
REFERENCES public.reserves(reserve_pub) ON DELETE CASCADE;
-
-
---
--- Name: aggregation_tracking wire_out_ref; Type: FK CONSTRAINT; Schema: 
public; Owner: -
---
-
-ALTER TABLE ONLY public.aggregation_tracking
-    ADD CONSTRAINT wire_out_ref FOREIGN KEY (wtid_raw) REFERENCES 
public.wire_out(wtid_raw) ON DELETE CASCADE DEFERRABLE;
-
-
---
--- PostgreSQL database dump complete
---
-
diff --git a/src/auditor/taler-auditor-httpd_deposit-confirmation.c 
b/src/auditor/taler-auditor-httpd_deposit-confirmation.c
index 5f84a725..1039164c 100644
--- a/src/auditor/taler-auditor-httpd_deposit-confirmation.c
+++ b/src/auditor/taler-auditor-httpd_deposit-confirmation.c
@@ -155,7 +155,7 @@ verify_and_execute_deposit_confirmation (
       .purpose.size = htonl (sizeof (struct TALER_DepositConfirmationPS)),
       .h_contract_terms = dc->h_contract_terms,
       .h_wire = dc->h_wire,
-      .timestamp = GNUNET_TIME_absolute_hton (dc->timestamp),
+      .exchange_timestamp = GNUNET_TIME_absolute_hton (dc->exchange_timestamp),
       .refund_deadline = GNUNET_TIME_absolute_hton (dc->refund_deadline),
       .coin_pub = dc->coin_pub,
       .merchant = dc->merchant
@@ -224,7 +224,8 @@ TAH_DEPOSIT_CONFIRMATION_handler (struct TAH_RequestHandler 
*rh,
   struct GNUNET_JSON_Specification spec[] = {
     GNUNET_JSON_spec_fixed_auto ("h_contract_terms", &dc.h_contract_terms),
     GNUNET_JSON_spec_fixed_auto ("h_wire", &dc.h_wire),
-    GNUNET_JSON_spec_absolute_time ("timestamp", &dc.timestamp),
+    GNUNET_JSON_spec_absolute_time ("exchange_timestamp",
+                                    &dc.exchange_timestamp),
     GNUNET_JSON_spec_absolute_time ("refund_deadline", &dc.refund_deadline),
     TALER_JSON_spec_amount ("amount_without_fee", &dc.amount_without_fee),
     GNUNET_JSON_spec_fixed_auto ("coin_pub", &dc.coin_pub),
diff --git a/src/auditor/taler-helper-auditor-coins.c 
b/src/auditor/taler-helper-auditor-coins.c
index 663532af..1a03ac72 100644
--- a/src/auditor/taler-helper-auditor-coins.c
+++ b/src/auditor/taler-helper-auditor-coins.c
@@ -1535,7 +1535,8 @@ refresh_session_cb (void *cls,
  *
  * @param cls closure
  * @param rowid unique serial ID for the deposit in our DB
- * @param timestamp when did the deposit happen
+ * @param exchange_timestamp when did the exchange get the deposit
+ * @param wallet_timestamp when did the contract signing happen
  * @param merchant_pub public key of the merchant
  * @param denom_pub denomination public key of @a coin_pub
  * @param coin_pub public key of the coin
@@ -1553,7 +1554,8 @@ refresh_session_cb (void *cls,
 static int
 deposit_cb (void *cls,
             uint64_t rowid,
-            struct GNUNET_TIME_Absolute timestamp,
+            struct GNUNET_TIME_Absolute exchange_timestamp,
+            struct GNUNET_TIME_Absolute wallet_timestamp,
             const struct TALER_MerchantPublicKeyP *merchant_pub,
             const struct TALER_DenominationPublicKey *denom_pub,
             const struct TALER_CoinSpendPublicKeyP *coin_pub,
@@ -1611,7 +1613,7 @@ deposit_cb (void *cls,
       .purpose.purpose = htonl (TALER_SIGNATURE_WALLET_COIN_DEPOSIT),
       .purpose.size = htonl (sizeof (dr)),
       .h_contract_terms = *h_contract_terms,
-      .timestamp = GNUNET_TIME_absolute_hton (timestamp),
+      .wallet_timestamp = GNUNET_TIME_absolute_hton (wallet_timestamp),
       .refund_deadline = GNUNET_TIME_absolute_hton (refund_deadline),
       .deposit_fee = issue->fee_deposit,
       .merchant = *merchant_pub,
@@ -1802,7 +1804,6 @@ refund_cb (void *cls,
       .coin_pub = *coin_pub,
       .merchant = *merchant_pub,
       .rtransaction_id = GNUNET_htonll (rtransaction_id),
-      .refund_fee = issue->fee_refund
     };
 
     TALER_amount_hton (&rr.refund_amount,
diff --git a/src/auditor/taler-helper-auditor-deposits.c 
b/src/auditor/taler-helper-auditor-deposits.c
index 29155859..ed23c6a5 100644
--- a/src/auditor/taler-helper-auditor-deposits.c
+++ b/src/auditor/taler-helper-auditor-deposits.c
@@ -114,11 +114,15 @@ test_dc (void *cls,
       .h_wire = dc->h_wire,
       .refund_deadline = dc->refund_deadline
     };
+    struct GNUNET_TIME_Absolute exchange_timestamp;
+    struct TALER_Amount deposit_fee;
 
     qs = TALER_ARL_edb->have_deposit (TALER_ARL_edb->cls,
                                       TALER_ARL_esession,
                                       &dep,
-                                      GNUNET_NO /* do not check refund 
deadline */);
+                                      GNUNET_NO /* do not check refund 
deadline */,
+                                      &deposit_fee,
+                                      &exchange_timestamp);
     if (qs > 0)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -137,7 +141,8 @@ test_dc (void *cls,
   TALER_ARL_report (report_deposit_confirmation_inconsistencies,
                     json_pack ("{s:o, s:o, s:I, s:o}",
                                "timestamp",
-                               TALER_ARL_json_from_time_abs (dc->timestamp),
+                               TALER_ARL_json_from_time_abs (
+                                 dc->exchange_timestamp),
                                "amount",
                                TALER_JSON_from_amount 
(&dc->amount_without_fee),
                                "rowid",
diff --git a/src/auditor/taler-helper-auditor-reserves.c 
b/src/auditor/taler-helper-auditor-reserves.c
index 26adbb58..0b140e74 100644
--- a/src/auditor/taler-helper-auditor-reserves.c
+++ b/src/auditor/taler-helper-auditor-reserves.c
@@ -550,7 +550,6 @@ handle_reserve_out (void *cls,
   }
 
   /* check reserve_sig (first: setup remaining members of wsrd) */
-  wsrd.withdraw_fee = issue->fee_withdraw;
   TALER_amount_hton (&wsrd.amount_with_fee,
                      amount_with_fee);
   if (GNUNET_OK !=
diff --git a/src/auditor/test-auditor.sh b/src/auditor/test-auditor.sh
index 57b017d2..edf5fec5 100755
--- a/src/auditor/test-auditor.sh
+++ b/src/auditor/test-auditor.sh
@@ -1872,6 +1872,12 @@ else
     fi
 fi
 
-check_with_database "auditor-basedb"
+# run tests with pre-build database, if one is available
+if test -x auditor-basedb.mpub
+then
+  check_with_database "auditor-basedb"
+else
+  fail=77
+fi
 
 exit $fail
diff --git a/src/auditor/test-revocation.sh b/src/auditor/test-revocation.sh
index 714fcc8a..1b5070a3 100755
--- a/src/auditor/test-revocation.sh
+++ b/src/auditor/test-revocation.sh
@@ -543,6 +543,12 @@ else
     fi
 fi
 
-check_with_database "revoke-basedb"
+# run tests with pre-build database, if one is available
+if test -x revoke-basedb.mpub
+then
+  check_with_database "revoke-basedb"
+else
+  fail=77
+fi
 
 exit $fail
diff --git a/src/auditordb/auditor-0001.sql b/src/auditordb/auditor-0001.sql
index ff8867be..b511a4d5 100644
--- a/src/auditordb/auditor-0001.sql
+++ b/src/auditordb/auditor-0001.sql
@@ -251,7 +251,7 @@ CREATE TABLE IF NOT EXISTS deposit_confirmations
   ,serial_id BIGSERIAL UNIQUE
   ,h_contract_terms BYTEA CHECK (LENGTH(h_contract_terms)=64)
   ,h_wire BYTEA CHECK (LENGTH(h_wire)=64)
-  ,timestamp INT8 NOT NULL
+  ,exchange_timestamp INT8 NOT NULL
   ,refund_deadline INT8 NOT NULL
   ,amount_without_fee_val INT8 NOT NULL
   ,amount_without_fee_frac INT4 NOT NULL
diff --git a/src/auditordb/drop0001.sql b/src/auditordb/drop0001.sql
index 80f953e3..8e42c809 100644
--- a/src/auditordb/drop0001.sql
+++ b/src/auditordb/drop0001.sql
@@ -43,8 +43,8 @@ DROP TABLE IF EXISTS auditor_denominations CASCADE;
 DROP TABLE IF EXISTS deposit_confirmations CASCADE;
 DROP TABLE IF EXISTS auditor_exchanges CASCADE;
 
--- Drop versioning (0000.sql)
-DROP SCHEMA IF EXISTS _v CASCADE;
+-- Drop versioning (auditor-0001.sql)
+SELECT _v.unregister_patch('auditor-0001');
 
 -- And we're out of here...
 COMMIT;
diff --git a/src/auditordb/plugin_auditordb_postgres.c 
b/src/auditordb/plugin_auditordb_postgres.c
index 467c4c6d..4f9101fd 100644
--- a/src/auditordb/plugin_auditordb_postgres.c
+++ b/src/auditordb/plugin_auditordb_postgres.c
@@ -269,7 +269,7 @@ postgres_get_session (void *cls)
                             "(master_pub"
                             ",h_contract_terms"
                             ",h_wire"
-                            ",timestamp"
+                            ",exchange_timestamp"
                             ",refund_deadline"
                             ",amount_without_fee_val"
                             ",amount_without_fee_frac"
@@ -286,7 +286,7 @@ postgres_get_session (void *cls)
                             " serial_id"
                             ",h_contract_terms"
                             ",h_wire"
-                            ",timestamp"
+                            ",exchange_timestamp"
                             ",refund_deadline"
                             ",amount_without_fee_val"
                             ",amount_without_fee_frac"
@@ -1126,7 +1126,7 @@ postgres_insert_deposit_confirmation (
     GNUNET_PQ_query_param_auto_from_type (&dc->master_public_key),
     GNUNET_PQ_query_param_auto_from_type (&dc->h_contract_terms),
     GNUNET_PQ_query_param_auto_from_type (&dc->h_wire),
-    TALER_PQ_query_param_absolute_time (&dc->timestamp),
+    TALER_PQ_query_param_absolute_time (&dc->exchange_timestamp),
     TALER_PQ_query_param_absolute_time (&dc->refund_deadline),
     TALER_PQ_query_param_amount (&dc->amount_without_fee),
     GNUNET_PQ_query_param_auto_from_type (&dc->coin_pub),
@@ -1207,8 +1207,8 @@ deposit_confirmation_cb (void *cls,
                                             &dc.h_contract_terms),
       GNUNET_PQ_result_spec_auto_from_type ("h_wire",
                                             &dc.h_wire),
-      GNUNET_PQ_result_spec_absolute_time ("timestamp",
-                                           &dc.timestamp),
+      GNUNET_PQ_result_spec_absolute_time ("exchange_timestamp",
+                                           &dc.exchange_timestamp),
       GNUNET_PQ_result_spec_absolute_time ("refund_deadline",
                                            &dc.refund_deadline),
       TALER_PQ_RESULT_SPEC_AMOUNT ("amount_without_fee",
diff --git a/src/exchange-tools/taler-exchange-keyup.c 
b/src/exchange-tools/taler-exchange-keyup.c
index a3e3bce2..0ea661d4 100644
--- a/src/exchange-tools/taler-exchange-keyup.c
+++ b/src/exchange-tools/taler-exchange-keyup.c
@@ -1016,9 +1016,9 @@ create_wire_fee_for_method (void *cls,
                            af->wire_fee.currency)) )
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                  "Invalid or missing amount in `%s' under `%s'\n",
-                  section,
-                  opt);
+                  "Invalid or missing amount for option `%s' in section 
`%s'\n",
+                  opt,
+                  section);
       *ret = GNUNET_SYSERR;
       GNUNET_free (opt);
       break;
@@ -1038,9 +1038,9 @@ create_wire_fee_for_method (void *cls,
                            af->closing_fee.currency)) )
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                  "Invalid or missing amount in `%s' under `%s'\n",
-                  section,
-                  opt);
+                  "Invalid or missing amount for option `%s' in section 
`%s'\n",
+                  opt,
+                  section);
       *ret = GNUNET_SYSERR;
       GNUNET_free (opt);
       break;
diff --git a/src/exchange/taler-exchange-aggregator.c 
b/src/exchange/taler-exchange-aggregator.c
index 21a29e50..69c73746 100644
--- a/src/exchange/taler-exchange-aggregator.c
+++ b/src/exchange/taler-exchange-aggregator.c
@@ -330,6 +330,8 @@ refund_by_coin_cb (void *cls,
  *
  * @param cls a `struct AggregationUnit`
  * @param row_id identifies database entry
+ * @param exchange_timestamp when did the deposit happen
+ * @param wallet_timestamp when did the contract happen
  * @param merchant_pub public key of the merchant
  * @param coin_pub public key of the coin
  * @param amount_with_fee amount that was deposited including fee
@@ -343,6 +345,8 @@ refund_by_coin_cb (void *cls,
 static enum GNUNET_DB_QueryStatus
 deposit_cb (void *cls,
             uint64_t row_id,
+            struct GNUNET_TIME_Absolute exchange_timestamp,
+            struct GNUNET_TIME_Absolute wallet_timestamp,
             const struct TALER_MerchantPublicKeyP *merchant_pub,
             const struct TALER_CoinSpendPublicKeyP *coin_pub,
             const struct TALER_Amount *amount_with_fee,
@@ -358,6 +362,8 @@ deposit_cb (void *cls,
   /* NOTE: potential optimization: use custom SQL API to not
      fetch this one: */
   (void) wire_deadline; /* already checked by SQL query */
+  (void) exchange_timestamp;
+  (void) wallet_timestamp;
   au->merchant_pub = *merchant_pub;
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Aggregator processing payment %s with amount %s\n",
@@ -501,6 +507,8 @@ deposit_cb (void *cls,
  *
  * @param cls a `struct AggregationUnit`
  * @param row_id identifies database entry
+ * @param exchange_timestamp when did the exchange receive the deposit
+ * @param wallet_timestamp when did the wallet sign the contract
  * @param merchant_pub public key of the merchant
  * @param coin_pub public key of the coin
  * @param amount_with_fee amount that was deposited including fee
@@ -514,6 +522,8 @@ deposit_cb (void *cls,
 static enum GNUNET_DB_QueryStatus
 aggregate_cb (void *cls,
               uint64_t row_id,
+              struct GNUNET_TIME_Absolute exchange_timestamp,
+              struct GNUNET_TIME_Absolute wallet_timestamp,
               const struct TALER_MerchantPublicKeyP *merchant_pub,
               const struct TALER_CoinSpendPublicKeyP *coin_pub,
               const struct TALER_Amount *amount_with_fee,
@@ -529,6 +539,8 @@ aggregate_cb (void *cls,
   /* NOTE: potential optimization: use custom SQL API to not
      fetch these: */
   (void) wire_deadline; /* checked by SQL */
+  (void) exchange_timestamp;
+  (void) wallet_timestamp;
   (void) wire; /* must match */
   GNUNET_break (0 == GNUNET_memcmp (&au->merchant_pub,
                                     merchant_pub));
diff --git a/src/exchange/taler-exchange-httpd.c 
b/src/exchange/taler-exchange-httpd.c
index 339303d5..c614b711 100644
--- a/src/exchange/taler-exchange-httpd.c
+++ b/src/exchange/taler-exchange-httpd.c
@@ -420,6 +420,45 @@ proceed_with_handler (const struct TEH_RequestHandler *rh,
 }
 
 
+/**
+ * Handle a "/seed" request.
+ *
+ * @param rh context of the handler
+ * @param connection the MHD connection to handle
+ * @param args array of additional options (must be empty for this function)
+ * @return MHD result code
+ */
+static MHD_RESULT
+handler_seed (const struct TEH_RequestHandler *rh,
+              struct MHD_Connection *connection,
+              const char *const args[])
+{
+#define SEED_SIZE 32
+  char *body;
+  MHD_RESULT ret;
+  struct MHD_Response *resp;
+
+  (void) rh;
+  body = malloc (SEED_SIZE); /* must use malloc(), because MHD will use free() 
*/
+  if (NULL == body)
+    return MHD_NO;
+  GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_NONCE,
+                              body,
+                              SEED_SIZE);
+  resp = MHD_create_response_from_buffer (SEED_SIZE,
+                                          body,
+                                          MHD_RESPMEM_MUST_FREE);
+  TALER_MHD_add_global_headers (resp);
+  ret = MHD_queue_response (connection,
+                            MHD_HTTP_OK,
+                            resp);
+  GNUNET_break (MHD_YES == ret);
+  MHD_destroy_response (resp);
+  return ret;
+#undef SEED_SIZE
+}
+
+
 /**
  * Handle incoming HTTP request.
  *
@@ -472,6 +511,11 @@ handle_mhd_request (void *cls,
       .method = MHD_HTTP_METHOD_GET,
       .handler.get = &TEH_handler_agpl_redirect
     },
+    {
+      .url = "seed",
+      .method = MHD_HTTP_METHOD_GET,
+      .handler.get = &handler_seed
+    },
     /* Terms of service */
     {
       .url = "terms",
@@ -654,9 +698,10 @@ handle_mhd_request (void *cls,
     {
       struct TEH_RequestHandler *rh = &handlers[i];
 
-      if (0 != strncmp (tok,
-                        rh->url,
-                        tok_size))
+      if ( (0 != strncmp (tok,
+                          rh->url,
+                          tok_size)) ||
+           (tok_size != strlen (rh->url) ) )
         continue;
       found = GNUNET_YES;
       /* The URL is a match!  What we now do depends on the method. */
@@ -782,8 +827,8 @@ exchange_serve_process_config (void)
                                                     &TEH_master_public_key.
                                                     eddsa_pub))
     {
-      fprintf (stderr,
-               "Invalid master public key given in exchange configuration.");
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                  "Invalid master public key given in exchange 
configuration.");
       GNUNET_free (master_public_key_str);
       return GNUNET_SYSERR;
     }
@@ -795,14 +840,18 @@ exchange_serve_process_config (void)
 
   if (GNUNET_OK !=
       TEH_WIRE_init (TEH_cfg))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Failed to setup wire subsystem\n");
     return GNUNET_SYSERR;
+  }
 
 
   if (NULL ==
       (TEH_plugin = TALER_EXCHANGEDB_plugin_load (TEH_cfg)))
   {
-    fprintf (stderr,
-             "Failed to initialize DB subsystem\n");
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Failed to initialize DB subsystem\n");
     TEH_WIRE_done ();
     return GNUNET_SYSERR;
   }
@@ -814,6 +863,8 @@ exchange_serve_process_config (void)
                               &serve_unixpath,
                               &unixpath_mode))
   {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Failed to setup HTTPd subsystem\n");
     TEH_WIRE_done ();
     return GNUNET_SYSERR;
   }
diff --git a/src/exchange/taler-exchange-httpd_deposit.c 
b/src/exchange/taler-exchange-httpd_deposit.c
index 3f895857..fe8fdf06 100644
--- a/src/exchange/taler-exchange-httpd_deposit.c
+++ b/src/exchange/taler-exchange-httpd_deposit.c
@@ -47,7 +47,7 @@
  * @param coin_pub public key of the coin
  * @param h_wire hash of wire details
  * @param h_contract_terms hash of contract details
- * @param timestamp client's timestamp
+ * @param exchange_timestamp exchange's timestamp
  * @param refund_deadline until when this deposit be refunded
  * @param merchant merchant public key
  * @param amount_without_fee fraction of coin value to deposit, without the fee
@@ -58,7 +58,7 @@ reply_deposit_success (struct MHD_Connection *connection,
                        const struct TALER_CoinSpendPublicKeyP *coin_pub,
                        const struct GNUNET_HashCode *h_wire,
                        const struct GNUNET_HashCode *h_contract_terms,
-                       struct GNUNET_TIME_Absolute timestamp,
+                       struct GNUNET_TIME_Absolute exchange_timestamp,
                        struct GNUNET_TIME_Absolute refund_deadline,
                        const struct TALER_MerchantPublicKeyP *merchant,
                        const struct TALER_Amount *amount_without_fee)
@@ -70,7 +70,7 @@ reply_deposit_success (struct MHD_Connection *connection,
     .purpose.size = htonl (sizeof (dc)),
     .h_contract_terms = *h_contract_terms,
     .h_wire = *h_wire,
-    .timestamp = GNUNET_TIME_absolute_hton (timestamp),
+    .exchange_timestamp = GNUNET_TIME_absolute_hton (exchange_timestamp),
     .refund_deadline = GNUNET_TIME_absolute_hton (refund_deadline),
     .coin_pub = *coin_pub,
     .merchant = *merchant
@@ -88,12 +88,16 @@ reply_deposit_success (struct MHD_Connection *connection,
                                        TALER_EC_EXCHANGE_BAD_CONFIGURATION,
                                        "no keys");
   }
-  return TALER_MHD_reply_json_pack (connection,
-                                    MHD_HTTP_OK,
-                                    "{s:s, s:o, s:o}",
-                                    "status", "DEPOSIT_OK",
-                                    "sig", GNUNET_JSON_from_data_auto (&sig),
-                                    "pub", GNUNET_JSON_from_data_auto (&pub));
+  return TALER_MHD_reply_json_pack (
+    connection,
+    MHD_HTTP_OK,
+    "{s:o, s:o, s:o}",
+    "exchange_timestamp",
+    GNUNET_JSON_from_time_abs (exchange_timestamp),
+    "exchange_sig",
+    GNUNET_JSON_from_data_auto (&sig),
+    "exchange_pub",
+    GNUNET_JSON_from_data_auto (&pub));
 }
 
 
@@ -107,6 +111,11 @@ struct DepositContext
    */
   const struct TALER_EXCHANGEDB_Deposit *deposit;
 
+  /**
+   * Our timestamp (when we received the request).
+   */
+  struct GNUNET_TIME_Absolute exchange_timestamp;
+
   /**
    * Value of the coin.
    */
@@ -116,12 +125,11 @@ struct DepositContext
 
 
 /**
- * Execute database transaction for /deposit.  Runs the transaction
- * logic; IF it returns a non-error code, the transaction logic MUST
- * NOT queue a MHD response.  IF it returns an hard error, the
- * transaction logic MUST queue a MHD response and set @a mhd_ret.  IF
- * it returns the soft error code, the function MAY be called again to
- * retry and MUST not queue a MHD response.
+ * Check if /deposit is already in the database.  IF it returns a non-error
+ * code, the transaction logic MUST NOT queue a MHD response.  IF it returns
+ * an hard error, the transaction logic MUST queue a MHD response and set @a
+ * mhd_ret.  We do return a "hard" error also if we found the deposit in the
+ * database and generated a regular response.
  *
  * @param cls a `struct DepositContext`
  * @param connection MHD request context
@@ -130,20 +138,22 @@ struct DepositContext
  * @return transaction status
  */
 static enum GNUNET_DB_QueryStatus
-deposit_transaction (void *cls,
-                     struct MHD_Connection *connection,
-                     struct TALER_EXCHANGEDB_Session *session,
-                     MHD_RESULT *mhd_ret)
+deposit_precheck (void *cls,
+                  struct MHD_Connection *connection,
+                  struct TALER_EXCHANGEDB_Session *session,
+                  MHD_RESULT *mhd_ret)
 {
   struct DepositContext *dc = cls;
   const struct TALER_EXCHANGEDB_Deposit *deposit = dc->deposit;
-  struct TALER_Amount spent;
+  struct TALER_Amount deposit_fee;
   enum GNUNET_DB_QueryStatus qs;
 
   qs = TEH_plugin->have_deposit (TEH_plugin->cls,
                                  session,
                                  deposit,
-                                 GNUNET_YES /* check refund deadline */);
+                                 GNUNET_YES /* check refund deadline */,
+                                 &deposit_fee,
+                                 &dc->exchange_timestamp);
   if (qs < 0)
   {
     if (GNUNET_DB_STATUS_HARD_ERROR == qs)
@@ -165,12 +175,12 @@ deposit_transaction (void *cls,
     GNUNET_assert (0 <=
                    TALER_amount_subtract (&amount_without_fee,
                                           &deposit->amount_with_fee,
-                                          &deposit->deposit_fee));
+                                          &deposit_fee));
     *mhd_ret = reply_deposit_success (connection,
                                       &deposit->coin.coin_pub,
                                       &deposit->h_wire,
                                       &deposit->h_contract_terms,
-                                      deposit->timestamp,
+                                      dc->exchange_timestamp,
                                       deposit->refund_deadline,
                                       &deposit->merchant_pub,
                                       &amount_without_fee);
@@ -178,6 +188,44 @@ deposit_transaction (void *cls,
        never try again. */
     return GNUNET_DB_STATUS_HARD_ERROR;
   }
+  return GNUNET_DB_STATUS_SUCCESS_NO_RESULTS;
+}
+
+
+/**
+ * Execute database transaction for /deposit.  Runs the transaction
+ * logic; IF it returns a non-error code, the transaction logic MUST
+ * NOT queue a MHD response.  IF it returns an hard error, the
+ * transaction logic MUST queue a MHD response and set @a mhd_ret.  IF
+ * it returns the soft error code, the function MAY be called again to
+ * retry and MUST not queue a MHD response.
+ *
+ * @param cls a `struct DepositContext`
+ * @param connection MHD request context
+ * @param session database session and transaction to use
+ * @param[out] mhd_ret set to MHD status on error
+ * @return transaction status
+ */
+static enum GNUNET_DB_QueryStatus
+deposit_transaction (void *cls,
+                     struct MHD_Connection *connection,
+                     struct TALER_EXCHANGEDB_Session *session,
+                     MHD_RESULT *mhd_ret)
+{
+  struct DepositContext *dc = cls;
+  const struct TALER_EXCHANGEDB_Deposit *deposit = dc->deposit;
+  struct TALER_Amount spent;
+  enum GNUNET_DB_QueryStatus qs;
+
+  /* Theoretically, someone other threat may have received
+     and committed the deposit in the meantime. Check now
+     that we are in the transaction scope. */
+  qs = deposit_precheck (cls,
+                         connection,
+                         session,
+                         mhd_ret);
+  if (qs < 0)
+    return qs;
 
   /* Start with fee for THIS transaction */
   spent = deposit->amount_with_fee;
@@ -237,6 +285,7 @@ deposit_transaction (void *cls,
   }
   qs = TEH_plugin->insert_deposit (TEH_plugin->cls,
                                    session,
+                                   dc->exchange_timestamp,
                                    deposit);
   if (GNUNET_DB_STATUS_HARD_ERROR == qs)
   {
@@ -250,45 +299,6 @@ deposit_transaction (void *cls,
 }
 
 
-/**
- * Check that @a ts is reasonably close to our own RTC.
- *
- * @param ts timestamp to check
- * @return #GNUNET_OK if @a ts is reasonable
- */
-static int
-check_timestamp_current (struct GNUNET_TIME_Absolute ts)
-{
-  struct GNUNET_TIME_Relative r;
-  struct GNUNET_TIME_Relative tolerance;
-
-  /* Let's be VERY generous (after all, this is basically about
-     which year the deposit counts for in terms of tax purposes) */
-  tolerance = GNUNET_TIME_UNIT_MONTHS;
-  r = GNUNET_TIME_absolute_get_duration (ts);
-  if (r.rel_value_us > tolerance.rel_value_us)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Deposit timestamp too old: %llu vs %llu > %llu\n",
-                (unsigned long long) ts.abs_value_us,
-                (unsigned long long) GNUNET_TIME_absolute_get ().abs_value_us,
-                (unsigned long long) tolerance.rel_value_us);
-    return GNUNET_SYSERR;
-  }
-  r = GNUNET_TIME_absolute_get_remaining (ts);
-  if (r.rel_value_us > tolerance.rel_value_us)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Deposit timestamp too new: %llu vs %llu < - %llu\n",
-                (unsigned long long) ts.abs_value_us,
-                (unsigned long long) GNUNET_TIME_absolute_get ().abs_value_us,
-                (unsigned long long) tolerance.rel_value_us);
-    return GNUNET_SYSERR;
-  }
-  return GNUNET_OK;
-}
-
-
 /**
  * Handle a "/coins/$COIN_PUB/deposit" request.  Parses the JSON, and, if
  * successful, passes the JSON data to #deposit_transaction() to
@@ -312,15 +322,22 @@ TEH_handler_deposit (struct MHD_Connection *connection,
   struct GNUNET_HashCode my_h_wire;
   struct GNUNET_JSON_Specification spec[] = {
     GNUNET_JSON_spec_json ("wire", &wire),
-    TALER_JSON_spec_amount ("contribution", &deposit.amount_with_fee),
+    TALER_JSON_spec_amount ("contribution",
+                            &deposit.amount_with_fee),
     GNUNET_JSON_spec_fixed_auto ("denom_pub_hash",
                                  &deposit.coin.denom_pub_hash),
-    TALER_JSON_spec_denomination_signature ("ub_sig", &deposit.coin.denom_sig),
-    GNUNET_JSON_spec_fixed_auto ("merchant_pub", &deposit.merchant_pub),
-    GNUNET_JSON_spec_fixed_auto ("h_contract_terms", 
&deposit.h_contract_terms),
-    GNUNET_JSON_spec_fixed_auto ("h_wire", &deposit.h_wire),
-    GNUNET_JSON_spec_fixed_auto ("coin_sig",  &deposit.csig),
-    GNUNET_JSON_spec_absolute_time ("timestamp", &deposit.timestamp),
+    TALER_JSON_spec_denomination_signature ("ub_sig",
+                                            &deposit.coin.denom_sig),
+    GNUNET_JSON_spec_fixed_auto ("merchant_pub",
+                                 &deposit.merchant_pub),
+    GNUNET_JSON_spec_fixed_auto ("h_contract_terms",
+                                 &deposit.h_contract_terms),
+    GNUNET_JSON_spec_fixed_auto ("h_wire",
+                                 &deposit.h_wire),
+    GNUNET_JSON_spec_fixed_auto ("coin_sig",
+                                 &deposit.csig),
+    GNUNET_JSON_spec_absolute_time ("timestamp",
+                                    &deposit.timestamp),
     GNUNET_JSON_spec_absolute_time ("refund_deadline",
                                     &deposit.refund_deadline),
     GNUNET_JSON_spec_absolute_time ("wire_transfer_deadline",
@@ -359,17 +376,6 @@ TEH_handler_deposit (struct MHD_Connection *connection,
                                        
TALER_EC_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE,
                                        "refund_deadline");
   }
-
-  if (GNUNET_OK !=
-      check_timestamp_current (deposit.timestamp))
-  {
-    GNUNET_break_op (0);
-    GNUNET_JSON_parse_free (spec);
-    return TALER_MHD_reply_with_error (connection,
-                                       MHD_HTTP_BAD_REQUEST,
-                                       TALER_EC_DEPOSIT_INVALID_TIMESTAMP,
-                                       "timestamp");
-  }
   if (GNUNET_OK !=
       TALER_JSON_merchant_wire_signature_hash (wire,
                                                &my_h_wire))
@@ -393,6 +399,26 @@ TEH_handler_deposit (struct MHD_Connection *connection,
                                        "h_wire");
   }
 
+  /* Check for idempotency: did we get this request before? */
+  dc.deposit = &deposit;
+  {
+    MHD_RESULT mhd_ret;
+
+    if (GNUNET_OK !=
+        TEH_DB_run_transaction (connection,
+                                "precheck deposit",
+                                &mhd_ret,
+                                &deposit_precheck,
+                                &dc))
+    {
+      GNUNET_JSON_parse_free (spec);
+      return mhd_ret;
+    }
+  }
+
+  /* new deposit */
+  dc.exchange_timestamp = GNUNET_TIME_absolute_get ();
+  (void) GNUNET_TIME_round_abs (&dc.exchange_timestamp);
   /* check denomination exists and is valid */
   {
     struct TEH_KS_StateHandle *key_state;
@@ -400,7 +426,7 @@ TEH_handler_deposit (struct MHD_Connection *connection,
     enum TALER_ErrorCode ec;
     unsigned int hc;
 
-    key_state = TEH_KS_acquire (GNUNET_TIME_absolute_get ());
+    key_state = TEH_KS_acquire (dc.exchange_timestamp);
     if (NULL == key_state)
     {
       TALER_LOG_ERROR ("Lacking keys to operate\n");
@@ -494,7 +520,7 @@ TEH_handler_deposit (struct MHD_Connection *connection,
       .purpose.size = htonl (sizeof (dr)),
       .h_contract_terms = deposit.h_contract_terms,
       .h_wire = deposit.h_wire,
-      .timestamp = GNUNET_TIME_absolute_hton (deposit.timestamp),
+      .wallet_timestamp = GNUNET_TIME_absolute_hton (deposit.timestamp),
       .refund_deadline = GNUNET_TIME_absolute_hton (deposit.refund_deadline),
       .merchant = deposit.merchant_pub,
       .coin_pub = deposit.coin.coin_pub
@@ -520,7 +546,6 @@ TEH_handler_deposit (struct MHD_Connection *connection,
   }
 
   /* execute transaction */
-  dc.deposit = &deposit;
   {
     MHD_RESULT mhd_ret;
 
@@ -549,7 +574,7 @@ TEH_handler_deposit (struct MHD_Connection *connection,
                                  &deposit.coin.coin_pub,
                                  &deposit.h_wire,
                                  &deposit.h_contract_terms,
-                                 deposit.timestamp,
+                                 dc.exchange_timestamp,
                                  deposit.refund_deadline,
                                  &deposit.merchant_pub,
                                  &amount_without_fee);
diff --git a/src/exchange/taler-exchange-httpd_keystate.c 
b/src/exchange/taler-exchange-httpd_keystate.c
index 152d2dad..fbb5da35 100644
--- a/src/exchange/taler-exchange-httpd_keystate.c
+++ b/src/exchange/taler-exchange-httpd_keystate.c
@@ -1,6 +1,6 @@
 /*
   This file is part of TALER
-  Copyright (C) 2014--2019 Taler Systems SA
+  Copyright (C) 2014--2020 Taler Systems SA
 
   TALER is free software; you can redistribute it and/or modify it under the
   terms of the GNU Affero General Public License as published by the Free 
Software
@@ -44,7 +44,7 @@
  * #TALER_PROTOCOL_CURRENT and #TALER_PROTOCOL_AGE in
  * exchange_api_handle.c!
  */
-#define EXCHANGE_PROTOCOL_VERSION "7:0:0"
+#define EXCHANGE_PROTOCOL_VERSION "8:0:0"
 
 
 /**
@@ -801,7 +801,7 @@ reload_keys_denom_iter (void *cls,
     handle_signal (SIGTERM);
     return GNUNET_SYSERR;
   }
-
+  GNUNET_assert (NULL != dki->denom_priv.rsa_private_key);
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Adding denomination key `%s' (%s) to active set\n",
               alias,
@@ -1660,6 +1660,9 @@ reload_public_denoms_cb (
                 GNUNET_h2s (&issue->properties.denom_hash));
     return;
   }
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Loaded denomination key %s from DB, no private key (hopefully 
revoked!)\n",
+              GNUNET_h2s (&issue->properties.denom_hash));
   /* we can assert here as we checked for duplicates just above */
   GNUNET_assert (GNUNET_OK == ret);
 }
diff --git a/src/exchange/taler-exchange-httpd_refund.c 
b/src/exchange/taler-exchange-httpd_refund.c
index 7c2b149f..a6a2c3d6 100644
--- a/src/exchange/taler-exchange-httpd_refund.c
+++ b/src/exchange/taler-exchange-httpd_refund.c
@@ -73,12 +73,13 @@ reply_refund_success (struct MHD_Connection *connection,
                                        TALER_EC_EXCHANGE_BAD_CONFIGURATION,
                                        "no online signing key");
   }
-  return TALER_MHD_reply_json_pack (connection,
-                                    MHD_HTTP_OK,
-                                    "{s:s, s:o, s:o}",
-                                    "status", "REFUND_OK",
-                                    "sig", GNUNET_JSON_from_data_auto (&sig),
-                                    "pub", GNUNET_JSON_from_data_auto (&pub));
+  return TALER_MHD_reply_json_pack (
+    connection,
+    MHD_HTTP_OK,
+    "{s:o, s:o, s:o}",
+    "refund_fee", TALER_JSON_from_amount (&refund->refund_fee),
+    "exchange_sig", GNUNET_JSON_from_data_auto (&sig),
+    "exchange_pub", GNUNET_JSON_from_data_auto (&pub));
 }
 
 
@@ -246,18 +247,15 @@ refund_transaction (void *cls,
   }
 
   /* check currency is compatible */
-  if ( (GNUNET_YES !=
-        TALER_amount_cmp_currency (&refund->details.refund_amount,
-                                   &dep->amount_with_fee)) ||
-       (GNUNET_YES !=
-        TALER_amount_cmp_currency (&refund->details.refund_fee,
-                                   &dep->deposit_fee)) )
+  if (GNUNET_YES !=
+      TALER_amount_cmp_currency (&refund->details.refund_amount,
+                                 &dep->amount_with_fee))
   {
     GNUNET_break_op (0); /* currency mismatch */
     TEH_plugin->free_coin_transaction_list (TEH_plugin->cls,
                                             tl);
     *mhd_ret = TALER_MHD_reply_with_error (connection,
-                                           MHD_HTTP_PRECONDITION_FAILED,
+                                           MHD_HTTP_BAD_REQUEST,
                                            TALER_EC_REFUND_CURRENCY_MISMATCH,
                                            "currencies involved do not match");
     return GNUNET_DB_STATUS_HARD_ERROR;
@@ -339,15 +337,14 @@ refund_transaction (void *cls,
  * the fee structure, so this is not done here.
  *
  * @param connection the MHD connection to handle
- * @param refund information about the refund
+ * @param[in,out] refund information about the refund
  * @return MHD result code
  */
 static MHD_RESULT
 verify_and_execute_refund (struct MHD_Connection *connection,
-                           const struct TALER_EXCHANGEDB_Refund *refund)
+                           struct TALER_EXCHANGEDB_Refund *refund)
 {
   struct GNUNET_HashCode denom_hash;
-  struct TALER_Amount expect_fee;
 
   {
     struct TALER_RefundRequestPS rr = {
@@ -361,8 +358,6 @@ verify_and_execute_refund (struct MHD_Connection 
*connection,
 
     TALER_amount_hton (&rr.refund_amount,
                        &refund->details.refund_amount);
-    TALER_amount_hton (&rr.refund_fee,
-                       &refund->details.refund_fee);
     if (GNUNET_OK !=
         GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MERCHANT_REFUND,
                                     &rr,
@@ -429,43 +424,12 @@ verify_and_execute_refund (struct MHD_Connection 
*connection,
                                            ec,
                                            "denomination not found, but coin 
known");
       }
-      TALER_amount_ntoh (&expect_fee,
+      TALER_amount_ntoh (&refund->details.refund_fee,
                          &dki->issue.properties.fee_refund);
     }
     TEH_KS_release (key_state);
   }
 
-  /* Check refund fee matches fee of denomination key! */
-  if (GNUNET_YES !=
-      TALER_amount_cmp_currency (&expect_fee,
-                                 &refund->details.refund_fee) )
-  {
-    GNUNET_break_op (0);
-    return TALER_MHD_reply_with_error (connection,
-                                       MHD_HTTP_BAD_REQUEST,
-                                       TALER_EC_REFUND_FEE_CURRENCY_MISMATCH,
-                                       "refund_fee");
-  }
-  {
-    int fee_cmp;
-
-    fee_cmp = TALER_amount_cmp (&refund->details.refund_fee,
-                                &expect_fee);
-    if (-1 == fee_cmp)
-    {
-      return TALER_MHD_reply_with_error (connection,
-                                         MHD_HTTP_BAD_REQUEST,
-                                         TALER_EC_REFUND_FEE_TOO_LOW,
-                                         "refund_fee");
-    }
-    if (1 == fee_cmp)
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                  "Refund fee proposed by merchant is higher than 
necessary.\n");
-    }
-  }
-
-
   /* Finally run the actual transaction logic */
   {
     MHD_RESULT mhd_ret;
@@ -502,16 +466,20 @@ TEH_handler_refund (struct MHD_Connection *connection,
                     const struct TALER_CoinSpendPublicKeyP *coin_pub,
                     const json_t *root)
 {
-  struct TALER_EXCHANGEDB_Refund refund;
+  struct TALER_EXCHANGEDB_Refund refund = {
+    .details.refund_fee.currency = {0}                                        
/* set to invalid, just to be sure */
+  };
   struct GNUNET_JSON_Specification spec[] = {
-    TALER_JSON_spec_amount ("refund_amount", &refund.details.refund_amount),
-    TALER_JSON_spec_amount ("refund_fee", &refund.details.refund_fee),
+    TALER_JSON_spec_amount ("refund_amount",
+                            &refund.details.refund_amount),
     GNUNET_JSON_spec_fixed_auto ("h_contract_terms",
                                  &refund.details.h_contract_terms),
-    GNUNET_JSON_spec_fixed_auto ("merchant_pub", &refund.details.merchant_pub),
+    GNUNET_JSON_spec_fixed_auto ("merchant_pub",
+                                 &refund.details.merchant_pub),
     GNUNET_JSON_spec_uint64 ("rtransaction_id",
                              &refund.details.rtransaction_id),
-    GNUNET_JSON_spec_fixed_auto ("merchant_sig", &refund.details.merchant_sig),
+    GNUNET_JSON_spec_fixed_auto ("merchant_sig",
+                                 &refund.details.merchant_sig),
     GNUNET_JSON_spec_end ()
   };
 
@@ -527,27 +495,6 @@ TEH_handler_refund (struct MHD_Connection *connection,
     if (GNUNET_NO == res)
       return MHD_YES; /* failure */
   }
-  if (GNUNET_YES !=
-      TALER_amount_cmp_currency (&refund.details.refund_amount,
-                                 &refund.details.refund_fee) )
-  {
-    GNUNET_break_op (0);
-    GNUNET_JSON_parse_free (spec);
-    return TALER_MHD_reply_with_error (connection,
-                                       MHD_HTTP_BAD_REQUEST,
-                                       TALER_EC_REFUND_FEE_CURRENCY_MISMATCH,
-                                       "refund_amount or refund_fee");
-  }
-  if (-1 == TALER_amount_cmp (&refund.details.refund_amount,
-                              &refund.details.refund_fee) )
-  {
-    GNUNET_break_op (0);
-    GNUNET_JSON_parse_free (spec);
-    return TALER_MHD_reply_with_error (connection,
-                                       MHD_HTTP_BAD_REQUEST,
-                                       TALER_EC_REFUND_FEE_ABOVE_AMOUNT,
-                                       "refund_amount");
-  }
   {
     MHD_RESULT res;
 
diff --git a/src/exchange/taler-exchange-httpd_responses.c 
b/src/exchange/taler-exchange-httpd_responses.c
index 06673afc..f6595161 100644
--- a/src/exchange/taler-exchange-httpd_responses.c
+++ b/src/exchange/taler-exchange-httpd_responses.c
@@ -66,7 +66,7 @@ TEH_RESPONSE_compile_transaction_history (
           .purpose.size = htonl (sizeof (dr)),
           .h_contract_terms = deposit->h_contract_terms,
           .h_wire = deposit->h_wire,
-          .timestamp = GNUNET_TIME_absolute_hton (deposit->timestamp),
+          .wallet_timestamp = GNUNET_TIME_absolute_hton (deposit->timestamp),
           .refund_deadline = GNUNET_TIME_absolute_hton (
             deposit->refund_deadline),
           .merchant = deposit->merchant_pub,
@@ -185,8 +185,6 @@ TEH_RESPONSE_compile_transaction_history (
 
         TALER_amount_hton (&rr.refund_amount,
                            &refund->refund_amount);
-        TALER_amount_hton (&rr.refund_fee,
-                           &refund->refund_fee);
 #if ENABLE_SANITY_CHECKS
         /* internal sanity check before we hand out a bogus sig... */
         if (GNUNET_OK !=
diff --git a/src/exchange/taler-exchange-httpd_wire.c 
b/src/exchange/taler-exchange-httpd_wire.c
index 38bbad4a..471fa4fa 100644
--- a/src/exchange/taler-exchange-httpd_wire.c
+++ b/src/exchange/taler-exchange-httpd_wire.c
@@ -341,6 +341,8 @@ TEH_WIRE_init (const struct GNUNET_CONFIGURATION_Handle 
*cfg)
                                     &ret);
     if (GNUNET_OK != ret)
     {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                  "Error setting up bank accounts\n");
       TEH_WIRE_done ();
       return GNUNET_SYSERR;
     }
@@ -349,6 +351,8 @@ TEH_WIRE_init (const struct GNUNET_CONFIGURATION_Handle 
*cfg)
        (0 == json_object_size (wire_fee_object)) )
   {
     TEH_WIRE_done ();
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "No bank accounts configured\n");
     return GNUNET_SYSERR;
   }
   wire_methods = json_pack ("{s:O, s:O, s:o}",
diff --git a/src/exchange/taler-exchange-httpd_withdraw.c 
b/src/exchange/taler-exchange-httpd_withdraw.c
index 4d662e71..c4c72d6a 100644
--- a/src/exchange/taler-exchange-httpd_withdraw.c
+++ b/src/exchange/taler-exchange-httpd_withdraw.c
@@ -306,8 +306,6 @@ withdraw_transaction (void *cls,
 #endif
   wc->collectable.denom_pub_hash = wc->denom_pub_hash;
   wc->collectable.amount_with_fee = wc->amount_required;
-  TALER_amount_ntoh (&wc->collectable.withdraw_fee,
-                     &wc->dki->issue.properties.fee_withdraw);
   wc->collectable.reserve_pub = wc->wsrd.reserve_pub;
   wc->collectable.h_coin_envelope = wc->wsrd.h_coin_envelope;
   wc->collectable.reserve_sig = wc->signature;
@@ -436,8 +434,6 @@ TEH_handler_withdraw (const struct TEH_RequestHandler *rh,
     }
     TALER_amount_hton (&wc.wsrd.amount_with_fee,
                        &wc.amount_required);
-    TALER_amount_hton (&wc.wsrd.withdraw_fee,
-                       &fee_withdraw);
   }
 
   /* verify signature! */
diff --git a/src/exchangedb/drop0001.sql b/src/exchangedb/drop0001.sql
index f0f46a61..4d06fd51 100644
--- a/src/exchangedb/drop0001.sql
+++ b/src/exchangedb/drop0001.sql
@@ -43,8 +43,8 @@ DROP TABLE IF EXISTS reserves CASCADE;
 DROP TABLE IF EXISTS denomination_revocations CASCADE;
 DROP TABLE IF EXISTS denominations CASCADE;
 
--- Drop versioning (0000.sql)
-DROP SCHEMA IF EXISTS _v CASCADE;
+-- Unregister patch (0001.sql)
+SELECT _v.unregister_patch('exchange-0001');
 
 -- And we're out of here...
 COMMIT;
diff --git a/src/exchangedb/exchange-0001.sql b/src/exchangedb/exchange-0001.sql
index bec9af5b..ad05e779 100644
--- a/src/exchangedb/exchange-0001.sql
+++ b/src/exchangedb/exchange-0001.sql
@@ -254,7 +254,8 @@ CREATE TABLE IF NOT EXISTS deposits
   ,coin_pub BYTEA NOT NULL REFERENCES known_coins (coin_pub) ON DELETE CASCADE
   ,amount_with_fee_val INT8 NOT NULL
   ,amount_with_fee_frac INT4 NOT NULL
-  ,timestamp INT8 NOT NULL
+  ,wallet_timestamp INT8 NOT NULL
+  ,exchange_timestamp INT8 NOT NULL
   ,refund_deadline INT8 NOT NULL
   ,wire_deadline INT8 NOT NULL
   ,merchant_pub BYTEA NOT NULL CHECK (LENGTH(merchant_pub)=32)
diff --git a/src/exchangedb/plugin_exchangedb_postgres.c 
b/src/exchangedb/plugin_exchangedb_postgres.c
index 69db09a5..dede901f 100644
--- a/src/exchangedb/plugin_exchangedb_postgres.c
+++ b/src/exchangedb/plugin_exchangedb_postgres.c
@@ -796,7 +796,7 @@ postgres_get_session (void *cls)
                               "(coin_pub"
                               ",amount_with_fee_val"
                               ",amount_with_fee_frac"
-                              ",timestamp"
+                              ",wallet_timestamp"
                               ",refund_deadline"
                               ",wire_deadline"
                               ",merchant_pub"
@@ -804,22 +804,28 @@ postgres_get_session (void *cls)
                               ",h_wire"
                               ",coin_sig"
                               ",wire"
+                              ",exchange_timestamp"
                               ") VALUES "
                               "($1, $2, $3, $4, $5, $6, $7, $8, $9, $10,"
-                              " $11);",
-                              11),
+                              " $11, $12);",
+                              12),
       /* Fetch an existing deposit request, used to ensure idempotency
          during /deposit processing. Used in #postgres_have_deposit(). */
       GNUNET_PQ_make_prepare ("get_deposit",
                               "SELECT"
                               " amount_with_fee_val"
                               ",amount_with_fee_frac"
-                              ",timestamp"
+                              ",denominations.fee_deposit_val"
+                              ",denominations.fee_deposit_frac"
+                              ",wallet_timestamp"
+                              ",exchange_timestamp"
                               ",refund_deadline"
                               ",wire_deadline"
                               ",h_contract_terms"
                               ",h_wire"
                               " FROM deposits"
+                              " JOIN known_coins USING (coin_pub)"
+                              " JOIN denominations USING (denom_pub_hash)"
                               " WHERE ((coin_pub=$1)"
                               "    AND (merchant_pub=$3)"
                               "    AND (h_contract_terms=$2))"
@@ -830,7 +836,8 @@ postgres_get_session (void *cls)
                               "SELECT"
                               " amount_with_fee_val"
                               ",amount_with_fee_frac"
-                              ",timestamp"
+                              ",wallet_timestamp"
+                              ",exchange_timestamp"
                               ",merchant_pub"
                               ",denom.denom_pub"
                               ",coin_pub"
@@ -881,6 +888,8 @@ postgres_get_session (void *cls)
                               ",wire"
                               ",merchant_pub"
                               ",coin_pub"
+                              ",exchange_timestamp"
+                              ",wallet_timestamp"
                               " FROM deposits"
                               "    JOIN known_coins USING (coin_pub)"
                               "    JOIN denominations denom USING 
(denom_pub_hash)"
@@ -900,6 +909,8 @@ postgres_get_session (void *cls)
                               ",denom.fee_deposit_val"
                               ",denom.fee_deposit_frac"
                               ",wire_deadline"
+                              ",exchange_timestamp"
+                              ",wallet_timestamp"
                               ",h_contract_terms"
                               ",coin_pub"
                               " FROM deposits"
@@ -945,7 +956,7 @@ postgres_get_session (void *cls)
                               ",amount_with_fee_frac"
                               ",denom.fee_deposit_val"
                               ",denom.fee_deposit_frac"
-                              ",timestamp"
+                              ",wallet_timestamp"
                               ",refund_deadline"
                               ",wire_deadline"
                               ",merchant_pub"
@@ -1801,8 +1812,12 @@ postgres_iterate_denomination_info (void *cls,
     .cb_cls = cb_cls,
     .pg = pc
   };
+  struct TALER_EXCHANGEDB_Session *session;
 
-  return GNUNET_PQ_eval_prepared_multi_select (postgres_get_session (pc)->conn,
+  session = postgres_get_session (pc);
+  if (NULL == session)
+    return GNUNET_DB_STATUS_HARD_ERROR;
+  return GNUNET_PQ_eval_prepared_multi_select (session->conn,
                                                "denomination_iterate",
                                                params,
                                                &domination_cb_helper,
@@ -2571,6 +2586,8 @@ postgres_get_reserve_history (void *cls,
  * @param session database connection
  * @param deposit deposit to search for
  * @param check_extras whether to check extra fields match or not
+ * @param[out] deposit_fee set to the deposit fee the exchange charged
+ * @param[out] exchange_timestamp set to the time when the exchange received 
the deposit
  * @return 1 if we know this operation,
  *         0 if this exact deposit is unknown to us,
  *         otherwise transaction error status
@@ -2579,7 +2596,9 @@ static enum GNUNET_DB_QueryStatus
 postgres_have_deposit (void *cls,
                        struct TALER_EXCHANGEDB_Session *session,
                        const struct TALER_EXCHANGEDB_Deposit *deposit,
-                       int check_extras)
+                       int check_extras,
+                       struct TALER_Amount *deposit_fee,
+                       struct GNUNET_TIME_Absolute *exchange_timestamp)
 {
   struct PostgresClosure *pg = cls;
   struct GNUNET_PQ_QueryParam params[] = {
@@ -2592,12 +2611,16 @@ postgres_have_deposit (void *cls,
   struct GNUNET_PQ_ResultSpec rs[] = {
     TALER_PQ_RESULT_SPEC_AMOUNT ("amount_with_fee",
                                  &deposit2.amount_with_fee),
-    TALER_PQ_result_spec_absolute_time ("timestamp",
+    TALER_PQ_result_spec_absolute_time ("wallet_timestamp",
                                         &deposit2.timestamp),
+    TALER_PQ_result_spec_absolute_time ("exchange_timestamp",
+                                        exchange_timestamp),
     TALER_PQ_result_spec_absolute_time ("refund_deadline",
                                         &deposit2.refund_deadline),
     TALER_PQ_result_spec_absolute_time ("wire_deadline",
                                         &deposit2.wire_deadline),
+    TALER_PQ_RESULT_SPEC_AMOUNT ("fee_deposit",
+                                 deposit_fee),
     GNUNET_PQ_result_spec_auto_from_type ("h_wire",
                                           &deposit2.h_wire),
     GNUNET_PQ_result_spec_end
@@ -2776,6 +2799,8 @@ postgres_get_ready_deposit (void *cls,
   struct TALER_Amount amount_with_fee;
   struct TALER_Amount deposit_fee;
   struct GNUNET_TIME_Absolute wire_deadline;
+  struct GNUNET_TIME_Absolute wallet_timestamp;
+  struct GNUNET_TIME_Absolute exchange_timestamp;
   struct GNUNET_HashCode h_contract_terms;
   struct TALER_MerchantPublicKeyP merchant_pub;
   struct TALER_CoinSpendPublicKeyP coin_pub;
@@ -2788,6 +2813,10 @@ postgres_get_ready_deposit (void *cls,
                                  &amount_with_fee),
     TALER_PQ_RESULT_SPEC_AMOUNT ("fee_deposit",
                                  &deposit_fee),
+    TALER_PQ_result_spec_absolute_time ("exchange_timestamp",
+                                        &exchange_timestamp),
+    TALER_PQ_result_spec_absolute_time ("wallet_timestamp",
+                                        &wallet_timestamp),
     TALER_PQ_result_spec_absolute_time ("wire_deadline",
                                         &wire_deadline),
     GNUNET_PQ_result_spec_auto_from_type ("h_contract_terms",
@@ -2817,6 +2846,8 @@ postgres_get_ready_deposit (void *cls,
 
   qs = deposit_cb (deposit_cb_cls,
                    serial_id,
+                   exchange_timestamp,
+                   wallet_timestamp,
                    &merchant_pub,
                    &coin_pub,
                    &amount_with_fee,
@@ -2898,6 +2929,8 @@ match_deposit_cb (void *cls,
   {
     struct TALER_Amount amount_with_fee;
     struct TALER_Amount deposit_fee;
+    struct GNUNET_TIME_Absolute exchange_timestamp;
+    struct GNUNET_TIME_Absolute wallet_timestamp;
     struct GNUNET_TIME_Absolute wire_deadline;
     struct GNUNET_HashCode h_contract_terms;
     struct TALER_CoinSpendPublicKeyP coin_pub;
@@ -2912,6 +2945,10 @@ match_deposit_cb (void *cls,
                                    &deposit_fee),
       TALER_PQ_result_spec_absolute_time ("wire_deadline",
                                           &wire_deadline),
+      TALER_PQ_result_spec_absolute_time ("exchange_timestamp",
+                                          &exchange_timestamp),
+      TALER_PQ_result_spec_absolute_time ("wallet_timestamp",
+                                          &wallet_timestamp),
       GNUNET_PQ_result_spec_auto_from_type ("h_contract_terms",
                                             &h_contract_terms),
       GNUNET_PQ_result_spec_auto_from_type ("coin_pub",
@@ -2930,6 +2967,8 @@ match_deposit_cb (void *cls,
     }
     qs = mdc->deposit_cb (mdc->deposit_cb_cls,
                           serial_id,
+                          exchange_timestamp,
+                          wallet_timestamp,
                           mdc->merchant_pub,
                           &coin_pub,
                           &amount_with_fee,
@@ -3033,6 +3072,8 @@ postgres_get_known_coin (void *cls,
   coin_info->coin_pub = *coin_pub;
   if (NULL == session)
     session = postgres_get_session (pc);
+  if (NULL == session)
+    return GNUNET_DB_STATUS_HARD_ERROR;
   return GNUNET_PQ_eval_prepared_singleton_select (session->conn,
                                                    "get_known_coin",
                                                    params,
@@ -3072,6 +3113,8 @@ postgres_get_coin_denomination (
               TALER_B2S (coin_pub));
   if (NULL == session)
     session = postgres_get_session (pc);
+  if (NULL == session)
+    return GNUNET_DB_STATUS_HARD_ERROR;
   return GNUNET_PQ_eval_prepared_singleton_select (session->conn,
                                                    "get_coin_denomination",
                                                    params,
@@ -3210,12 +3253,14 @@ postgres_ensure_coin_known (void *cls,
  *
  * @param cls the `struct PostgresClosure` with the plugin-specific state
  * @param session connection to the database
+ * @param exchange_timestamp time the exchange received the deposit request
  * @param deposit deposit information to store
  * @return query result status
  */
 static enum GNUNET_DB_QueryStatus
 postgres_insert_deposit (void *cls,
                          struct TALER_EXCHANGEDB_Session *session,
+                         struct GNUNET_TIME_Absolute exchange_timestamp,
                          const struct TALER_EXCHANGEDB_Deposit *deposit)
 {
   struct GNUNET_PQ_QueryParam params[] = {
@@ -3229,6 +3274,7 @@ postgres_insert_deposit (void *cls,
     GNUNET_PQ_query_param_auto_from_type (&deposit->h_wire),
     GNUNET_PQ_query_param_auto_from_type (&deposit->csig),
     TALER_PQ_query_param_json (deposit->receiver_wire_account),
+    TALER_PQ_query_param_absolute_time (&exchange_timestamp),
     GNUNET_PQ_query_param_end
   };
 
@@ -3437,6 +3483,8 @@ postgres_get_melt (void *cls,
   melt->session.coin.denom_sig.rsa_signature = NULL;
   if (NULL == session)
     session = postgres_get_session (pg);
+  if (NULL == session)
+    return GNUNET_DB_STATUS_HARD_ERROR;
   qs = GNUNET_PQ_eval_prepared_singleton_select (session->conn,
                                                  "get_melt",
                                                  params,
@@ -4042,7 +4090,7 @@ add_coin_deposit (void *cls,
                                      &deposit->amount_with_fee),
         TALER_PQ_RESULT_SPEC_AMOUNT ("fee_deposit",
                                      &deposit->deposit_fee),
-        TALER_PQ_result_spec_absolute_time ("timestamp",
+        TALER_PQ_result_spec_absolute_time ("wallet_timestamp",
                                             &deposit->timestamp),
         TALER_PQ_result_spec_absolute_time ("refund_deadline",
                                             &deposit->refund_deadline),
@@ -5462,14 +5510,17 @@ deposit_serial_helper_cb (void *cls,
   for (unsigned int i = 0; i<num_results; i++)
   {
     struct TALER_EXCHANGEDB_Deposit deposit;
+    struct GNUNET_TIME_Absolute exchange_timestamp;
     struct TALER_DenominationPublicKey denom_pub;
     uint8_t done = 0;
     uint64_t rowid;
     struct GNUNET_PQ_ResultSpec rs[] = {
       TALER_PQ_RESULT_SPEC_AMOUNT ("amount_with_fee",
                                    &deposit.amount_with_fee),
-      TALER_PQ_result_spec_absolute_time ("timestamp",
+      TALER_PQ_result_spec_absolute_time ("wallet_timestamp",
                                           &deposit.timestamp),
+      TALER_PQ_result_spec_absolute_time ("exchange_timestamp",
+                                          &exchange_timestamp),
       GNUNET_PQ_result_spec_auto_from_type ("merchant_pub",
                                             &deposit.merchant_pub),
       GNUNET_PQ_result_spec_rsa_public_key ("denom_pub",
@@ -5505,6 +5556,7 @@ deposit_serial_helper_cb (void *cls,
     }
     ret = dsc->cb (dsc->cb_cls,
                    rowid,
+                   exchange_timestamp,
                    deposit.timestamp,
                    &deposit.merchant_pub,
                    &denom_pub,
diff --git a/src/exchangedb/test_exchangedb.c b/src/exchangedb/test_exchangedb.c
index 11183c70..043095e7 100644
--- a/src/exchangedb/test_exchangedb.c
+++ b/src/exchangedb/test_exchangedb.c
@@ -833,6 +833,8 @@ static uint64_t deposit_rowid;
  * @param cls closure a `struct TALER_EXCHANGEDB_Deposit *`
  * @param rowid unique ID for the deposit in our DB, used for marking
  *              it as 'tiny' or 'done'
+ * @param exchange_timestamp when did the deposit happen
+ * @param wallet_timestamp when did the wallet sign the contract
  * @param merchant_pub public key of the merchant
  * @param coin_pub public key of the coin
  * @param amount_with_fee amount that was deposited including fee
@@ -846,6 +848,8 @@ static uint64_t deposit_rowid;
 static enum GNUNET_DB_QueryStatus
 deposit_cb (void *cls,
             uint64_t rowid,
+            struct GNUNET_TIME_Absolute exchange_timestamp,
+            struct GNUNET_TIME_Absolute wallet_timestamp,
             const struct TALER_MerchantPublicKeyP *merchant_pub,
             const struct TALER_CoinSpendPublicKeyP *coin_pub,
             const struct TALER_Amount *amount_with_fee,
@@ -890,7 +894,8 @@ deposit_cb (void *cls,
  *
  * @param cls closure
  * @param rowid unique serial ID for the deposit in our DB
- * @param timestamp when did the deposit happen
+ * @param exchange_timestamp when did the deposit happen
+ * @param wallet_timestamp when did the wallet sign the contract
  * @param merchant_pub public key of the merchant
  * @param denom_pub denomination of the @a coin_pub
  * @param coin_pub public key of the coin
@@ -908,7 +913,8 @@ deposit_cb (void *cls,
 static int
 audit_deposit_cb (void *cls,
                   uint64_t rowid,
-                  struct GNUNET_TIME_Absolute timestamp,
+                  struct GNUNET_TIME_Absolute exchange_timestamp,
+                  struct GNUNET_TIME_Absolute wallet_timestamp,
                   const struct TALER_MerchantPublicKeyP *merchant_pub,
                   const struct TALER_DenominationPublicKey *denom_pub,
                   const struct TALER_CoinSpendPublicKeyP *coin_pub,
@@ -1878,15 +1884,27 @@ run (void *cls)
           plugin->ensure_coin_known (plugin->cls,
                                      session,
                                      &deposit.coin));
-  FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
-          plugin->insert_deposit (plugin->cls,
+  {
+    struct GNUNET_TIME_Absolute now;
+    struct GNUNET_TIME_Absolute r;
+    struct TALER_Amount deposit_fee;
+
+    now = GNUNET_TIME_absolute_get ();
+    GNUNET_TIME_round_abs (&now);
+    FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
+            plugin->insert_deposit (plugin->cls,
+                                    session,
+                                    now,
+                                    &deposit));
+    FAILIF (1 !=
+            plugin->have_deposit (plugin->cls,
                                   session,
-                                  &deposit));
-  FAILIF (1 !=
-          plugin->have_deposit (plugin->cls,
-                                session,
-                                &deposit,
-                                GNUNET_YES));
+                                  &deposit,
+                                  GNUNET_YES,
+                                  &deposit_fee,
+                                  &r));
+    FAILIF (now.abs_value_us != r.abs_value_us);
+  }
   {
     struct GNUNET_TIME_Absolute start_range;
     struct GNUNET_TIME_Absolute end_range;
@@ -1983,18 +2001,27 @@ run (void *cls)
                          session,
                          "test-2"));
   RND_BLK (&deposit2.merchant_pub); /* should fail if merchant is different */
-  FAILIF (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS !=
-          plugin->have_deposit (plugin->cls,
-                                session,
-                                &deposit2,
-                                GNUNET_YES));
-  deposit2.merchant_pub = deposit.merchant_pub;
-  RND_BLK (&deposit2.coin.coin_pub); /* should fail if coin is different */
-  FAILIF (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS !=
-          plugin->have_deposit (plugin->cls,
-                                session,
-                                &deposit2,
-                                GNUNET_YES));
+  {
+    struct GNUNET_TIME_Absolute r;
+    struct TALER_Amount deposit_fee;
+
+    FAILIF (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS !=
+            plugin->have_deposit (plugin->cls,
+                                  session,
+                                  &deposit2,
+                                  GNUNET_YES,
+                                  &deposit_fee,
+                                  &r));
+    deposit2.merchant_pub = deposit.merchant_pub;
+    RND_BLK (&deposit2.coin.coin_pub); /* should fail if coin is different */
+    FAILIF (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS !=
+            plugin->have_deposit (plugin->cls,
+                                  session,
+                                  &deposit2,
+                                  GNUNET_YES,
+                                  &deposit_fee,
+                                  &r));
+  }
   FAILIF (GNUNET_OK !=
           test_melting (session));
   FAILIF (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS !=
diff --git a/src/include/taler_auditordb_plugin.h 
b/src/include/taler_auditordb_plugin.h
index 9a7f6ed7..7c58e654 100644
--- a/src/include/taler_auditordb_plugin.h
+++ b/src/include/taler_auditordb_plugin.h
@@ -300,9 +300,9 @@ struct TALER_AUDITORDB_DepositConfirmation
   struct GNUNET_HashCode h_wire;
 
   /**
-   * Time when this confirmation was generated.
+   * Time when this deposit confirmation was generated by the exchange.
    */
-  struct GNUNET_TIME_Absolute timestamp;
+  struct GNUNET_TIME_Absolute exchange_timestamp;
 
   /**
    * How much time does the @e merchant have to issue a refund
diff --git a/src/include/taler_bank_service.h b/src/include/taler_bank_service.h
index 0212e61f..c5d0e5ca 100644
--- a/src/include/taler_bank_service.h
+++ b/src/include/taler_bank_service.h
@@ -384,16 +384,16 @@ struct TALER_BANK_DebitDetails
   const char *exchange_base_url;
 
   /**
-   * payto://-URL of the source account that
+   * payto://-URI of the source account that
    * send the funds.
    */
-  const char *debit_account_url;
+  const char *debit_account_url; // FIXME: rename: url->uri
 
   /**
-   * payto://-URL of the target account that
+   * payto://-URI of the target account that
    * received the funds.
    */
-  const char *credit_account_url;
+  const char *credit_account_url; // FIXME: rename: url->uri
 
 };
 
diff --git a/src/include/taler_error_codes.h b/src/include/taler_error_codes.h
deleted file mode 100644
index f75464c3..00000000
--- a/src/include/taler_error_codes.h
+++ /dev/null
@@ -1,2550 +0,0 @@
-/*
-  This file is part of TALER
-  Copyright (C) 2016, 2017, 2019 Taler Systems SA
-
-  TALER is free software; you can redistribute it and/or modify it under the
-  terms of the GNU General Public License as published by the Free Software
-  Foundation; either version 3, or (at your option) any later version.
-
-  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License along with
-  TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
-*/
-
-/**
- * @file taler_error_codes.h
- * @brief error codes returned by GNU Taler
- *
- * This file defines constants for error codes returned
- * in Taler APIs.  We use codes above 1000 to avoid any
- * confusing with HTTP status codes.  All constants have the
- * shared prefix "TALER_EC_" to indicate that they are error
- * codes.
- *
- * THIS FILE IS AUTO-GENERATED, DO NOT MODIFY!
- * If you want to add an error code, please add it in the
- * taler-util.git repository.  Instructions
- * for this are in the README in taler-util.git.
- */
-#ifndef TALER_ERROR_CODES_H
-#define TALER_ERROR_CODES_H
-
-/**
- * Enumeration with all possible Taler error codes.
- */
-enum TALER_ErrorCode
-{
-
-  /**
-   * Special code to indicate no error (or no "code" present).
-   */
-  TALER_EC_NONE = 0,
-
-  /**
-   * Special code to indicate that a non-integer error code was returned
-   * in the JSON response.
-   */
-  TALER_EC_INVALID = 1,
-
-  /**
-   * The response we got from the server was not even in JSON format.
-   */
-  TALER_EC_INVALID_RESPONSE = 2,
-
-  /**
-   * Generic implementation error: this function was not yet
-   * implemented.
-   */
-  TALER_EC_NOT_IMPLEMENTED = 3,
-
-  /**
-   * Exchange is badly configured and thus cannot operate.
-   */
-  TALER_EC_EXCHANGE_BAD_CONFIGURATION = 4,
-
-  /**
-   * Internal assertion error.
-   */
-  TALER_EC_INTERNAL_INVARIANT_FAILURE = 5,
-
-  /**
-   * Operation timed out.
-   */
-  TALER_EC_TIMEOUT = 6,
-
-  /**
-   * Exchange failed to allocate memory for building JSON reply.
-   */
-  TALER_EC_JSON_ALLOCATION_FAILURE = 7,
-
-  /**
-   * HTTP method invalid for this URL.
-   */
-  TALER_EC_METHOD_INVALID = 8,
-
-  /**
-   * Operation specified invalid for this URL (resulting in a "NOT
-   * FOUND" for the overall response).
-   */
-  TALER_EC_OPERATION_INVALID = 9,
-
-  /**
-   * There is no endpoint defined for the URL provided by the client
-   * (returned together with a #MHD_HTTP_NOT_FOUND status code).
-   */
-  TALER_EC_ENDPOINT_UNKNOWN = 10,
-
-  /**
-   * The URI is longer than the longest URI the HTTP server is willing
-   * to parse. Returned together with an HTTP status code of
-   * #MHD_HTTP_URI_TOO_LONG.
-   */
-  TALER_EC_URI_TOO_LONG = 11,
-
-  /**
-   * The number of segments included in the URI does not match the
-   * number of segments expected by the endpoint. (returned together
-   * with a #MHD_HTTP_NOT_FOUND status code).
-   */
-  TALER_EC_WRONG_NUMBER_OF_SEGMENTS = 12,
-
-  /**
-   * The start and end-times in the wire fee structure leave a hole.
-   * This is not allowed. Generated as an error on the client-side.
-   */
-  TALER_EC_HOLE_IN_WIRE_FEE_STRUCTURE = 13,
-
-  /**
-   * The version string given does not follow the expected
-   * CURRENT:REVISION:AGE Format.  Generated as an error on the client
-   * side.
-   */
-  TALER_EC_VERSION_MALFORMED = 14,
-
-  /**
-   * The client-side experienced an internal failure. Generated as an
-   * error on the client side.
-   */
-  TALER_EC_CLIENT_INTERNAL_FAILURE = 15,
-
-  /**
-   * The exchange failed to even just initialize its connection to the
-   * database.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DB_SETUP_FAILED = 1001,
-
-  /**
-   * The exchange encountered an error event to just start the database
-   * transaction.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DB_START_FAILED = 1002,
-
-  /**
-   * The exchange encountered an error event to commit the database
-   * transaction (hard, unrecoverable error). This response is provided
-   * with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DB_COMMIT_FAILED_HARD = 1003,
-
-  /**
-   * The exchange encountered an error event to commit the database
-   * transaction, even after repeatedly retrying it there was always a
-   * conflicting transaction. (This indicates a repeated serialization
-   * error; should only happen if some client maliciously tries to
-   * create conflicting concurrent transactions.) This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DB_COMMIT_FAILED_ON_RETRY = 1004,
-
-  /**
-   * The exchange had insufficient memory to parse the request. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PARSER_OUT_OF_MEMORY = 1005,
-
-  /**
-   * The JSON in the client's request to the exchange was malformed.
-   * (Generic parse error). This response is provided with HTTP status
-   * code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_JSON_INVALID = 1006,
-
-  /**
-   * The JSON in the client's request to the exchange was malformed.
-   * Details about the location of the parse error are provided. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_JSON_INVALID_WITH_DETAILS = 1007,
-
-  /**
-   * A required parameter in the request to the exchange was missing.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PARAMETER_MISSING = 1008,
-
-  /**
-   * A parameter in the request to the exchange was malformed. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PARAMETER_MALFORMED = 1009,
-
-  /**
-   * The exchange failed to obtain the transaction history of the given
-   * coin from the database while generating an insufficient funds
-   * errors.  This can happen during /deposit or /recoup requests. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_COIN_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS = 1010,
-
-  /**
-   * Internal logic error.  Some server-side function failed that really
-   * should not. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_INTERNAL_LOGIC_ERROR = 1011,
-
-  /**
-   * The method specified in a payto:// URI is not one we expected.
-   */
-  TALER_EC_PAYTO_WRONG_METHOD = 1012,
-
-  /**
-   * The payto:// URI is malformed.
-   */
-  TALER_EC_PAYTO_MALFORMED = 1013,
-
-  /**
-   * We failed to update the database of known coins.
-   */
-  TALER_EC_DB_COIN_HISTORY_STORE_ERROR = 1014,
-
-  /**
-   * The public key of given to a /coins/ handler was malformed.
-   */
-  TALER_EC_COINS_INVALID_COIN_PUB = 1050,
-
-  /**
-   * The reserve key of given to a /reserves/ handler was malformed.
-   */
-  TALER_EC_RESERVES_INVALID_RESERVE_PUB = 1051,
-
-  /**
-   * The public key of given to a /transfers/ handler was malformed.
-   */
-  TALER_EC_TRANSFERS_INVALID_WTID = 1052,
-
-  /**
-   * The wire hash of given to a /deposits/ handler was malformed.
-   */
-  TALER_EC_DEPOSITS_INVALID_H_WIRE = 1053,
-
-  /**
-   * The merchant key of given to a /deposits/ handler was malformed.
-   */
-  TALER_EC_DEPOSITS_INVALID_MERCHANT_PUB = 1054,
-
-  /**
-   * The hash of the contract terms given to a /deposits/ handler was
-   * malformed.
-   */
-  TALER_EC_DEPOSITS_INVALID_H_CONTRACT_TERMS = 1055,
-
-  /**
-   * The coin public key of given to a /deposits/ handler was malformed.
-   */
-  TALER_EC_DEPOSITS_INVALID_COIN_PUB = 1056,
-
-  /**
-   * The body returned by the exchange for a /deposits/ request was
-   * malformed. Error created client-side.
-   */
-  TALER_EC_DEPOSITS_INVALID_BODY_BY_EXCHANGE = 1057,
-
-  /**
-   * The signature returned by the exchange in a /deposits/ request was
-   * malformed. Error created client-side.
-   */
-  TALER_EC_DEPOSITS_INVALID_SIGNATURE_BY_EXCHANGE = 1058,
-
-  /**
-   * The given reserve does not have sufficient funds to admit the
-   * requested withdraw operation at this time.  The response includes
-   * the current "balance" of the reserve as well as the transaction
-   * "history" that lead to this balance.  This response is provided
-   * with HTTP status code #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_WITHDRAW_INSUFFICIENT_FUNDS = 1100,
-
-  /**
-   * The exchange has no information about the "reserve_pub" that was
-   * given. This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_WITHDRAW_RESERVE_UNKNOWN = 1101,
-
-  /**
-   * The amount to withdraw together with the fee exceeds the numeric
-   * range for Taler amounts.  This is not a client failure, as the coin
-   * value and fees come from the exchange's configuration. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_AMOUNT_FEE_OVERFLOW = 1102,
-
-  /**
-   * All of the deposited amounts into this reserve total up to a value
-   * that is too big for the numeric range for Taler amounts. This is
-   * not a client failure, as the transaction history comes from the
-   * exchange's configuration.  This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_AMOUNT_DEPOSITS_OVERFLOW = 1103,
-
-  /**
-   * For one of the historic withdrawals from this reserve, the exchange
-   * could not find the denomination key. This is not a client failure,
-   * as the transaction history comes from the exchange's configuration.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_HISTORIC_DENOMINATION_KEY_NOT_FOUND = 1104,
-
-  /**
-   * All of the withdrawals from reserve total up to a value that is too
-   * big for the numeric range for Taler amounts. This is not a client
-   * failure, as the transaction history comes from the exchange's
-   * configuration.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_AMOUNT_WITHDRAWALS_OVERFLOW = 1105,
-
-  /**
-   * The exchange somehow knows about this reserve, but there seem to
-   * have been no wire transfers made.  This is not a client failure, as
-   * this is a database consistency issue of the exchange.  This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_RESERVE_WITHOUT_WIRE_TRANSFER = 1106,
-
-  /**
-   * The exchange failed to create the signature using the denomination
-   * key.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_SIGNATURE_FAILED = 1107,
-
-  /**
-   * The exchange failed to store the withdraw operation in its
-   * database.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_DB_STORE_ERROR = 1108,
-
-  /**
-   * The exchange failed to check against historic withdraw data from
-   * database (as part of ensuring the idempotency of the operation).
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_DB_FETCH_ERROR = 1109,
-
-  /**
-   * The exchange is not aware of the denomination key the wallet
-   * requested for the withdrawal. This response is provided with HTTP
-   * status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_WITHDRAW_DENOMINATION_KEY_NOT_FOUND = 1110,
-
-  /**
-   * The signature of the reserve is not valid.  This response is
-   * provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_WITHDRAW_RESERVE_SIGNATURE_INVALID = 1111,
-
-  /**
-   * When computing the reserve history, we ended up with a negative
-   * overall balance, which should be impossible. This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS = 1112,
-
-  /**
-   * When computing the reserve history, we ended up with a negative
-   * overall balance, which should be impossible. This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_RESERVE_HISTORY_IMPOSSIBLE = 1113,
-
-  /**
-   * Validity period of the coin to be withdrawn is in the future.
-   * Returned with an HTTP status of #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_WITHDRAW_VALIDITY_IN_FUTURE = 1114,
-
-  /**
-   * Withdraw period of the coin to be withdrawn is in the past.
-   * Returned with an HTTP status of #MHD_HTTP_GONE.
-   */
-  TALER_EC_WITHDRAW_VALIDITY_IN_PAST = 1115,
-
-  /**
-   * Withdraw period of the coin to be withdrawn is in the past.
-   * Returned with an HTTP status of #MHD_HTTP_GONE.
-   */
-  TALER_EC_DENOMINATION_KEY_LOST = 1116,
-
-  /**
-   * The exchange's database entry with the reserve balance summary is
-   * inconsistent with its own history of the reserve. Returned with an
-   * HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_RESERVE_BALANCE_CORRUPT = 1117,
-
-  /**
-   * The exchange responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_WITHDRAW_REPLY_MALFORMED = 1118,
-
-  /**
-   * The client failed to unblind the blind signature. This error is not
-   * used in the protocol but created client-side.
-   */
-  TALER_EC_WITHDRAW_UNBLIND_FAILURE = 1119,
-
-  /**
-   * The exchange failed to obtain the transaction history of the given
-   * reserve from the database. This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_RESERVE_STATUS_DB_ERROR = 1150,
-
-  /**
-   * The reserve status was requested using a unknown key, to be
-   * returned with 404 Not Found.
-   */
-  TALER_EC_RESERVE_STATUS_UNKNOWN = 1151,
-
-  /**
-   * The exchange responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_RESERVE_STATUS_REPLY_MALFORMED = 1152,
-
-  /**
-   * The respective coin did not have sufficient residual value for the
-   * /deposit operation (i.e. due to double spending). The "history" in
-   * the respose provides the transaction history of the coin proving
-   * this fact.  This response is provided with HTTP status code
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_DEPOSIT_INSUFFICIENT_FUNDS = 1200,
-
-  /**
-   * The exchange failed to obtain the transaction history of the given
-   * coin from the database (this does not happen merely because the
-   * coin is seen by the exchange for the first time). This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSIT_HISTORY_DB_ERROR = 1201,
-
-  /**
-   * The exchange failed to store the /depost information in the
-   * database.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSIT_STORE_DB_ERROR = 1202,
-
-  /**
-   * The exchange database is unaware of the denomination key that
-   * signed the coin (however, the exchange process is; this is not
-   * supposed to happen; it can happen if someone decides to purge the
-   * DB behind the back of the exchange process).  Hence the deposit is
-   * being refused.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSIT_DB_DENOMINATION_KEY_UNKNOWN = 1203,
-
-  /**
-   * The exchange was trying to lookup the denomination key for the
-   * purpose of a DEPOSIT operation. However, the denomination key is
-   * unavailable for that purpose. This can be because it is entirely
-   * unknown to the exchange or not in the validity period for the
-   * deposit operation.  Hence the deposit is being refused.  This
-   * response is provided with HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_DEPOSIT_DENOMINATION_KEY_UNKNOWN = 1204,
-
-  /**
-   * The signature made by the coin over the deposit permission is not
-   * valid.  This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_COIN_SIGNATURE_INVALID = 1205,
-
-  /**
-   * The signature of the denomination key over the coin is not valid.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_DENOMINATION_SIGNATURE_INVALID = 1206,
-
-  /**
-   * The stated value of the coin after the deposit fee is subtracted
-   * would be negative.  This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE = 1207,
-
-  /**
-   * The stated refund deadline is after the wire deadline. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE = 1208,
-
-  /**
-   * The exchange does not recognize the validity of or support the
-   * given wire format type. This response is provided with HTTP status
-   * code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_TYPE = 1209,
-
-  /**
-   * The exchange failed to canonicalize and hash the given wire format.
-   * For example, the merchant failed to provide the "salt" or a valid
-   * payto:// URI in the wire details.  Note that while the exchange
-   * will do some basic sanity checking on the wire details, it cannot
-   * warrant that the banking system will ultimately be able to route to
-   * the specified address, even if this check passed. This response is
-   * provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_JSON = 1210,
-
-  /**
-   * The hash of the given wire address does not match the hash
-   * specified in the proposal data.  This response is provided with
-   * HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_CONTRACT_HASH_CONFLICT = 1211,
-
-  /**
-   * The exchange detected that the given account number is invalid for
-   * the selected wire format type.  This response is provided with HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_ACCOUNT_NUMBER = 1213,
-
-  /**
-   * Timestamp included in deposit permission is intolerably far off
-   * with respect to the clock of the exchange.
-   */
-  TALER_EC_DEPOSIT_INVALID_TIMESTAMP = 1218,
-
-  /**
-   * Validity period of the denomination key is in the future.  Returned
-   * with an HTTP status of #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_DEPOSIT_DENOMINATION_VALIDITY_IN_FUTURE = 1219,
-
-  /**
-   * Denomination key of the coin is past the deposit deadline.
-   * Returned with an HTTP status of #MHD_HTTP_GONE.
-   */
-  TALER_EC_DEPOSIT_DENOMINATION_EXPIRED = 1220,
-
-  /**
-   * The signature provided by the exchange is not valid. Error created
-   * client-side.
-   */
-  TALER_EC_DEPOSIT_INVALID_SIGNATURE_BY_EXCHANGE = 1221,
-
-  /**
-   * The currency specified for the deposit is different from the
-   * currency of the coin.  This response is provided with HTTP status
-   * code #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_DEPOSIT_CURRENCY_MISMATCH = 1222,
-
-  /**
-   * The respective coin did not have sufficient residual value for the
-   * /refresh/melt operation.  The "history" in this response provdes
-   * the "residual_value" of the coin, which may be less than its
-   * "original_value".  This response is provided with HTTP status code
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_MELT_INSUFFICIENT_FUNDS = 1300,
-
-  /**
-   * The respective coin did not have sufficient residual value for the
-   * /refresh/melt operation.  The "history" in this response provdes
-   * the "residual_value" of the coin, which may be less than its
-   * "original_value".  This response is provided with HTTP status code
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_MELT_DENOMINATION_KEY_NOT_FOUND = 1301,
-
-  /**
-   * The exchange had an internal error reconstructing the transaction
-   * history of the coin that was being melted. This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_MELT_COIN_HISTORY_COMPUTATION_FAILED = 1302,
-
-  /**
-   * The exchange failed to check against historic melt data from
-   * database (as part of ensuring the idempotency of the operation).
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_MELT_DB_FETCH_ERROR = 1303,
-
-  /**
-   * The exchange failed to store session data in the database. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_MELT_DB_STORE_SESSION_ERROR = 1304,
-
-  /**
-   * The exchange encountered melt fees exceeding the melted coin's
-   * contribution.  This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_MELT_FEES_EXCEED_CONTRIBUTION = 1305,
-
-  /**
-   * The denomination key signature on the melted coin is invalid. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_MELT_DENOMINATION_SIGNATURE_INVALID = 1306,
-
-  /**
-   * The signature made with the coin to be melted is invalid. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_MELT_COIN_SIGNATURE_INVALID = 1307,
-
-  /**
-   * The exchange failed to obtain the transaction history of the given
-   * coin from the database while generating an insufficient funds
-   * errors. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_MELT_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS = 1308,
-
-  /**
-   * The denomination of the given coin has past its expiration date and
-   * it is also not a valid zombie (that is, was not refreshed with the
-   * fresh coin being subjected to recoup).
-   */
-  TALER_EC_MELT_COIN_EXPIRED_NO_ZOMBIE = 1309,
-
-  /**
-   * The signature returned by the exchange in a melt request was
-   * malformed. Error created client-side.
-   */
-  TALER_EC_MELT_INVALID_SIGNATURE_BY_EXCHANGE = 1310,
-
-  /**
-   * The currency specified for the melt amount is different from the
-   * currency of the coin.  This response is provided with HTTP status
-   * code #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_MELT_CURRENCY_MISMATCH = 1311,
-
-  /**
-   * The exchange is unaware of the denomination key that was used to
-   * sign the melted zombie coin.  This response is provided with HTTP
-   * status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_REFRESH_RECOUP_DENOMINATION_KEY_NOT_FOUND = 1351,
-
-  /**
-   * Validity period of the denomination key is in the future.  Returned
-   * with an HTTP status of #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_REFRESH_RECOUP_DENOMINATION_VALIDITY_IN_FUTURE = 1352,
-
-  /**
-   * Denomination key of the coin is past the deposit deadline.
-   * Returned with an HTTP status of #MHD_HTTP_GONE.
-   */
-  TALER_EC_REFRESH_RECOUP_DENOMINATION_EXPIRED = 1353,
-
-  /**
-   * Denomination key of the coin is past the deposit deadline.
-   * Returned with an HTTP status of #MHD_HTTP_GONE.
-   */
-  TALER_EC_REFRESH_ZOMBIE_DENOMINATION_EXPIRED = 1354,
-
-  /**
-   * The provided transfer keys do not match up with the original
-   * commitment.  Information about the original commitment is included
-   * in the response.  This response is provided with HTTP status code
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_REVEAL_COMMITMENT_VIOLATION = 1370,
-
-  /**
-   * Failed to produce the blinded signatures over the coins to be
-   * returned. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REVEAL_SIGNING_ERROR = 1371,
-
-  /**
-   * The exchange is unaware of the refresh session specified in the
-   * request. This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_SESSION_UNKNOWN = 1372,
-
-  /**
-   * The exchange failed to retrieve valid session data from the
-   * database. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REVEAL_DB_FETCH_SESSION_ERROR = 1373,
-
-  /**
-   * The exchange failed to retrieve previously revealed data from the
-   * database.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REVEAL_DB_FETCH_REVEAL_ERROR = 1374,
-
-  /**
-   * The exchange failed to retrieve commitment data from the database.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REVEAL_DB_COMMIT_ERROR = 1375,
-
-  /**
-   * The size of the cut-and-choose dimension of the private transfer
-   * keys request does not match #TALER_CNC_KAPPA - 1. This response is
-   * provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_CNC_TRANSFER_ARRAY_SIZE_INVALID = 1376,
-
-  /**
-   * The number of coins to be created in refresh exceeds the limits of
-   * the exchange. private transfer keys request does not match
-   * #TALER_CNC_KAPPA - 1. This response is provided with HTTP status
-   * code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_NEW_DENOMS_ARRAY_SIZE_EXCESSIVE = 1377,
-
-  /**
-   * The number of envelopes given does not match the number of
-   * denomination keys given. This response is provided with HTTP status
-   * code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_NEW_DENOMS_ARRAY_SIZE_MISMATCH = 1378,
-
-  /**
-   * The exchange encountered a numeric overflow totaling up the cost
-   * for the refresh operation.  This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REVEAL_COST_CALCULATION_OVERFLOW = 1379,
-
-  /**
-   * The exchange's cost calculation shows that the melt amount is below
-   * the costs of the transaction.  This response is provided with HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_AMOUNT_INSUFFICIENT = 1380,
-
-  /**
-   * The exchange is unaware of the denomination key that was requested
-   * for one of the fresh coins.  This response is provided with HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_FRESH_DENOMINATION_KEY_NOT_FOUND = 1381,
-
-  /**
-   * The signature made with the coin over the link data is invalid.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_LINK_SIGNATURE_INVALID = 1382,
-
-  /**
-   * The exchange failed to generate the signature as it could not find
-   * the signing key for the denomination. This response is provided
-   * with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REVEAL_KEYS_MISSING = 1383,
-
-  /**
-   * The refresh session hash given to a /refreshes/ handler was
-   * malformed.
-   */
-  TALER_EC_REVEAL_INVALID_RCH = 1384,
-
-  /**
-   * The exchange responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_REVEAL_REPLY_MALFORMED = 1385,
-
-  /**
-   * The coin specified in the link request is unknown to the exchange.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_LINK_COIN_UNKNOWN = 1400,
-
-  /**
-   * The exchange responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_LINK_REPLY_MALFORMED = 1401,
-
-  /**
-   * The exchange knows literally nothing about the coin we were asked
-   * to refund. But without a transaction history, we cannot issue a
-   * refund.  This is kind-of OK, the owner should just refresh it
-   * directly without executing the refund.  This response is provided
-   * with HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_REFUND_COIN_NOT_FOUND = 1500,
-
-  /**
-   * We could not process the refund request as the coin's transaction
-   * history does not permit the requested refund at this time.  The
-   * "history" in the response proves this.  This response is provided
-   * with HTTP status code #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_REFUND_CONFLICT = 1501,
-
-  /**
-   * The exchange knows about the coin we were asked to refund, but not
-   * about the specific /deposit operation.  Hence, we cannot issue a
-   * refund (as we do not know if this merchant public key is authorized
-   * to do a refund).  This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_REFUND_DEPOSIT_NOT_FOUND = 1503,
-
-  /**
-   * The currency specified for the refund is different from the
-   * currency of the coin.  This response is provided with HTTP status
-   * code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REFUND_CURRENCY_MISMATCH = 1504,
-
-  /**
-   * When we tried to check if we already paid out the coin, the
-   * exchange's database suddenly disagreed with data it previously
-   * provided (internal inconsistency). This response is provided with
-   * HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REFUND_DB_INCONSISTENT = 1505,
-
-  /**
-   * The exchange can no longer refund the customer/coin as the money
-   * was already transferred (paid out) to the merchant. (It should be
-   * past the refund deadline.) This response is provided with HTTP
-   * status code #MHD_HTTP_GONE.
-   */
-  TALER_EC_REFUND_MERCHANT_ALREADY_PAID = 1506,
-
-  /**
-   * The amount the exchange was asked to refund exceeds (with fees) the
-   * total amount of the deposit (including fees). This response is
-   * provided with HTTP status code #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_REFUND_INSUFFICIENT_FUNDS = 1507,
-
-  /**
-   * The exchange failed to recover information about the denomination
-   * key of the refunded coin (even though it recognizes the key).
-   * Hence it could not check the fee strucutre. This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REFUND_DENOMINATION_KEY_NOT_FOUND = 1508,
-
-  /**
-   * The refund fee specified for the request is lower than the refund
-   * fee charged by the exchange for the given denomination key of the
-   * refunded coin. This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REFUND_FEE_TOO_LOW = 1509,
-
-  /**
-   * The exchange failed to store the refund information to its
-   * database. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REFUND_STORE_DB_ERROR = 1510,
-
-  /**
-   * The refund fee is specified in a different currency than the refund
-   * amount. This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REFUND_FEE_CURRENCY_MISMATCH = 1511,
-
-  /**
-   * The refunded amount is smaller than the refund fee, which would
-   * result in a negative refund. This response is provided with HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REFUND_FEE_ABOVE_AMOUNT = 1512,
-
-  /**
-   * The signature of the merchant is invalid. This response is provided
-   * with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REFUND_MERCHANT_SIGNATURE_INVALID = 1513,
-
-  /**
-   * Merchant backend failed to create the refund confirmation
-   * signature. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REFUND_MERCHANT_SIGNING_FAILED = 1514,
-
-  /**
-   * The signature returned by the exchange in a refund request was
-   * malformed. Error created client-side.
-   */
-  TALER_EC_REFUND_INVALID_SIGNATURE_BY_EXCHANGE = 1515,
-
-  /**
-   * The wire format specified in the "sender_account_details" is not
-   * understood or not supported by this exchange. Returned with an HTTP
-   * status code of #MHD_HTTP_NOT_FOUND. (As we did not find an
-   * interpretation of the wire format.)
-   */
-  TALER_EC_ADMIN_ADD_INCOMING_WIREFORMAT_UNSUPPORTED = 1600,
-
-  /**
-   * The currency specified in the "amount" parameter is not supported
-   * by this exhange.  Returned with an HTTP status code of
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_ADMIN_ADD_INCOMING_CURRENCY_UNSUPPORTED = 1601,
-
-  /**
-   * The exchange failed to store information about the incoming
-   * transfer in its database.  This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ADMIN_ADD_INCOMING_DB_STORE = 1602,
-
-  /**
-   * The exchange encountered an error (that is not about not finding
-   * the wire transfer) trying to lookup a wire transfer identifier in
-   * the database.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRANSFERS_GET_DB_FETCH_FAILED = 1700,
-
-  /**
-   * The exchange found internally inconsistent data when resolving a
-   * wire transfer identifier in the database.  This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRANSFERS_GET_DB_INCONSISTENT = 1701,
-
-  /**
-   * The exchange did not find information about the specified wire
-   * transfer identifier in the database.  This response is provided
-   * with HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_TRANSFERS_GET_WTID_NOT_FOUND = 1702,
-
-  /**
-   * The exchange did not find information about the wire transfer fees
-   * it charged. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRANSFERS_GET_WIRE_FEE_NOT_FOUND = 1703,
-
-  /**
-   * The exchange found a wire fee that was above the total transfer
-   * value (and thus could not have been charged). This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRANSFERS_GET_WIRE_FEE_INCONSISTENT = 1704,
-
-  /**
-   * The exchange responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_TRANSFERS_GET_REPLY_MALFORMED = 1705,
-
-  /**
-   * The exchange found internally inconsistent fee data when resolving
-   * a transaction in the database.  This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSITS_GET_DB_FEE_INCONSISTENT = 1800,
-
-  /**
-   * The exchange encountered an error (that is not about not finding
-   * the transaction) trying to lookup a transaction in the database.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSITS_GET_DB_FETCH_FAILED = 1801,
-
-  /**
-   * The exchange did not find information about the specified
-   * transaction in the database.  This response is provided with HTTP
-   * status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_DEPOSITS_GET_NOT_FOUND = 1802,
-
-  /**
-   * The exchange failed to identify the wire transfer of the
-   * transaction (or information about the plan that it was supposed to
-   * still happen in the future).  This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSITS_GET_WTID_RESOLUTION_ERROR = 1803,
-
-  /**
-   * The signature of the merchant is invalid. This response is provided
-   * with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSITS_GET_MERCHANT_SIGNATURE_INVALID = 1804,
-
-  /**
-   * The given denomination key is not in the "recoup" set of the
-   * exchange right now.  This response is provided with an HTTP status
-   * code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_RECOUP_DENOMINATION_KEY_UNKNOWN = 1850,
-
-  /**
-   * The given coin signature is invalid for the request. This response
-   * is provided with an HTTP status code of #MHD_HTTP_FORBIDDEN.
-   */
-  TALER_EC_RECOUP_SIGNATURE_INVALID = 1851,
-
-  /**
-   * The signature of the denomination key over the coin is not valid.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_RECOUP_DENOMINATION_SIGNATURE_INVALID = 1852,
-
-  /**
-   * The exchange failed to access its own database about reserves. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_RECOUP_DB_FETCH_FAILED = 1853,
-
-  /**
-   * The exchange could not find the corresponding withdraw operation.
-   * The request is denied.  This response is provided with an HTTP
-   * status code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_RECOUP_WITHDRAW_NOT_FOUND = 1854,
-
-  /**
-   * The exchange obtained an internally inconsistent transaction
-   * history for the given coin. This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_RECOUP_HISTORY_DB_ERROR = 1855,
-
-  /**
-   * The exchange failed to store information about the recoup to be
-   * performed in the database. This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_RECOUP_DB_PUT_FAILED = 1856,
-
-  /**
-   * The coin's remaining balance is zero.  The request is denied. This
-   * response is provided with an HTTP status code of
-   * #MHD_HTTP_FORBIDDEN.
-   */
-  TALER_EC_RECOUP_COIN_BALANCE_ZERO = 1857,
-
-  /**
-   * The exchange failed to reproduce the coin's blinding. This response
-   * is provided with an HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_RECOUP_BLINDING_FAILED = 1858,
-
-  /**
-   * The coin's remaining balance is zero.  The request is denied. This
-   * response is provided with an HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR
-   */
-  TALER_EC_RECOUP_COIN_BALANCE_NEGATIVE = 1859,
-
-  /**
-   * Validity period of the denomination key is in the future.  Returned
-   * with an HTTP status of #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_RECOUP_DENOMINATION_VALIDITY_IN_FUTURE = 1860,
-
-  /**
-   * The exchange responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_RECOUP_REPLY_MALFORMED = 1861,
-
-  /**
-   * The "have" parameter was not a natural number. This response is
-   * provied with an HTTP status code of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_KEYS_HAVE_NOT_NUMERIC = 1900,
-
-  /**
-   * We currently cannot find any keys. This response is provied with an
-   * HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_KEYS_MISSING = 1901,
-
-  /**
-   * This exchange does not allow clients to request /keys for times
-   * other than the current (exchange) time. This response is provied
-   * with an HTTP status code of #MHD_HTTP_FORBIDDEN.
-   */
-  TALER_EC_KEYS_TIMETRAVEL_FORBIDDEN = 1902,
-
-  /**
-   * The keys response was malformed. This error is generated client-
-   * side.
-   */
-  TALER_EC_KEYS_INVALID = 1903,
-
-  /**
-   * The backend could not find the merchant instance specified in the
-   * request.   This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_INSTANCE_UNKNOWN = 2000,
-
-  /**
-   * The backend lacks a wire transfer method configuration option for
-   * the given instance.
-   */
-  TALER_EC_PROPOSAL_INSTANCE_CONFIGURATION_LACKS_WIRE = 2002,
-
-  /**
-   * The merchant failed to provide a meaningful response to a /pay
-   * request.  This error is created client-side.
-   */
-  TALER_EC_PAY_MERCHANT_INVALID_RESPONSE = 2100,
-
-  /**
-   * The exchange failed to provide a meaningful response to a /deposit
-   * request.  This response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENCY, or #MHD_HTTP_CONFLICT in case the
-   * exchange reports #TALER_EC_DEPOSIT_INSUFFICIENT_FUNDS (aka double
-   * spending).
-   */
-  TALER_EC_PAY_EXCHANGE_FAILED = 2101,
-
-  /**
-   * The merchant failed to commit the exchanges' response to a /deposit
-   * request to its database.  This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_DB_STORE_PAY_ERROR = 2102,
-
-  /**
-   * The specified exchange is not supported/trusted by this merchant.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_PAY_EXCHANGE_REJECTED = 2103,
-
-  /**
-   * The denomination key used for payment is not listed among the
-   * denomination keys of the exchange.  This response is provided with
-   * HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PAY_DENOMINATION_KEY_NOT_FOUND = 2104,
-
-  /**
-   * The denomination key used for payment is not audited by an auditor
-   * approved by the merchant.  This response is provided with HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PAY_DENOMINATION_KEY_AUDITOR_FAILURE = 2105,
-
-  /**
-   * There was an integer overflow totaling up the amounts or deposit
-   * fees in the payment.  This response is provided with HTTP status
-   * code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_AMOUNT_OVERFLOW = 2106,
-
-  /**
-   * The deposit fees exceed the total value of the payment. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PAY_FEES_EXCEED_PAYMENT = 2107,
-
-  /**
-   * After considering deposit and wire fees, the payment is
-   * insufficient to satisfy the required amount for the contract.  The
-   * client should revisit the logic used to calculate fees it must
-   * cover. This response is provided with HTTP status code
-   * #MHD_HTTP_ACCEPTED.
-   */
-  TALER_EC_PAY_PAYMENT_INSUFFICIENT_DUE_TO_FEES = 2108,
-
-  /**
-   * Even if we do not consider deposit and wire fees, the payment is
-   * insufficient to satisfy the required amount for the contract.  This
-   * response is provided with HTTP status code #MHD_HTTP_ACCEPTED.
-   */
-  TALER_EC_PAY_PAYMENT_INSUFFICIENT = 2109,
-
-  /**
-   * The signature over the contract of one of the coins was invalid.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PAY_COIN_SIGNATURE_INVALID = 2110,
-
-  /**
-   * We failed to contact the exchange for the /pay request. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_REQUEST_TIMEOUT.
-   */
-  TALER_EC_PAY_EXCHANGE_TIMEOUT = 2111,
-
-  /**
-   * When we tried to find information about the exchange to issue the
-   * deposit, we failed.  This usually only happens if the merchant
-   * backend is somehow unable to get its own HTTP client logic to work.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_EXCHANGE_LOOKUP_FAILED = 2112,
-
-  /**
-   * The refund deadline in the contract is after the transfer deadline.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR as this should have been caught
-   * when the offer was first setup.
-   */
-  TALER_EC_PAY_REFUND_DEADLINE_PAST_WIRE_TRANSFER_DEADLINE = 2114,
-
-  /**
-   * The request fails to provide coins for the payment. This response
-   * is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PAY_COINS_ARRAY_EMPTY = 2115,
-
-  /**
-   * The merchant failed to fetch the contract terms from the merchant's
-   * database.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_DB_FETCH_PAY_ERROR = 2116,
-
-  /**
-   * The merchant failed to fetch the merchant's previous state with
-   * respect to transactions from its database.  This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_DB_FETCH_TRANSACTION_ERROR = 2117,
-
-  /**
-   * The merchant failed to store the merchant's state with respect to
-   * the transaction in its database.  This response is provided with
-   * HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_DB_STORE_TRANSACTION_ERROR = 2119,
-
-  /**
-   * The exchange failed to provide a valid response to the merchant's
-   * /keys request. This response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENDCY.
-   */
-  TALER_EC_PAY_EXCHANGE_KEYS_FAILURE = 2120,
-
-  /**
-   * The payment is too late, the offer has expired. This response is
-   * provided with HTTP status code #MHD_HTTP_GONE.
-   */
-  TALER_EC_PAY_OFFER_EXPIRED = 2121,
-
-  /**
-   * The "merchant" field is missing in the proposal data. This response
-   * is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PAY_MERCHANT_FIELD_MISSING = 2122,
-
-  /**
-   * Failed computing a hash code (likely server out-of-memory). This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_FAILED_COMPUTE_PROPOSAL_HASH = 2123,
-
-  /**
-   * Failed to locate merchant's account information matching the wire
-   * hash given in the proposal. This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_WIRE_HASH_UNKNOWN = 2124,
-
-  /**
-   * We got different currencies for the wire fee and the maximum wire
-   * fee.  This response is provided with HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_WIRE_FEE_CURRENCY_MISMATCH = 2125,
-
-  /**
-   * A unknown merchant public key was included in the payment.  That
-   * happens typically when the wallet sends the payment to the wrong
-   * merchant instance. This response is provided with an HTTP status
-   * code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_PAY_WRONG_INSTANCE = 2127,
-
-  /**
-   * The exchange failed to give us a response when we asked for /keys.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_PAY_EXCHANGE_HAS_NO_KEYS = 2128,
-
-  /**
-   * The deposit time for the denomination has expired. This response is
-   * provided with HTTP status code #MHD_HTTP_GONE.
-   */
-  TALER_EC_PAY_DENOMINATION_DEPOSIT_EXPIRED = 2129,
-
-  /**
-   * The proposal is not known to the backend. This response is provided
-   * with an HTTP status code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_PAY_PROPOSAL_NOT_FOUND = 2130,
-
-  /**
-   * The exchange of the deposited coin charges a wire fee that could
-   * not be added to the total (total amount too high).  This response
-   * is provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_EXCHANGE_WIRE_FEE_ADDITION_FAILED = 2131,
-
-  /**
-   * The contract was not fully paid because of refunds. Note that
-   * clients MAY treat this as paid if, for example, contracts must be
-   * executed despite of refunds. This response is provided with HTTP
-   * status code #MHD_HTTP_PAYMENT_REQUIRED.
-   */
-  TALER_EC_PAY_REFUNDED = 2132,
-
-  /**
-   * According to our database, we have refunded more than we were paid
-   * (which should not be possible). This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_REFUNDS_EXCEED_PAYMENTS = 2133,
-
-  /**
-   * Legacy stuff. Remove me with protocol v1. This response is provided
-   * with HTTP status code #MHD_HTTP_PREREQUISTE.
-   */
-  TALER_EC_PAY_ABORT_REFUND_REFUSED_PAYMENT_COMPLETE = 2134,
-
-  /**
-   * The merchant failed to contact the exchange. This response is
-   * provided with HTTP status code of #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_ABORT_EXCHANGE_KEYS_FAILURE = 2150,
-
-  /**
-   * The merchant failed to send the exchange the refund request. This
-   * response is provided with HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ABORT_EXCHANGE_REFUND_FAILED = 2151,
-
-  /**
-   * The merchant failed to find the exchange to process the lookup.
-   * This response is provided with HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ABORT_EXCHANGE_LOOKUP_FAILED = 2152,
-
-  /**
-   * The merchant failed to store the abort request in its database.
-   * This response is provided with HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ABORT_DB_STORE_ABORT_ERROR = 2153,
-
-  /**
-   * The merchant failed to repeatedly serialize the transaction. This
-   * response is provided with HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ABORT_DB_STORE_TRANSACTION_ERROR = 2154,
-
-  /**
-   * The merchant failed in the lookup part of the transaction. This
-   * response is provided with HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ABORT_DB_FETCH_TRANSACTION_ERROR = 2155,
-
-  /**
-   * The merchant could not find the contract. This response is provided
-   * with HTTP status code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_ABORT_CONTRACT_NOT_FOUND = 2156,
-
-  /**
-   * The payment was already completed and thus cannot be aborted
-   * anymore. This response is provided with HTTP status code of
-   * #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_ABORT_REFUND_REFUSED_PAYMENT_COMPLETE = 2157,
-
-  /**
-   * The hash provided by the wallet does not match the order. This
-   * response is provided with HTTP status code of #MHD_HTTP_FORBIDDEN.
-   */
-  TALER_EC_ABORT_CONTRACT_HASH_MISSMATCH = 2158,
-
-  /**
-   * The array of coins cannot be empty. This response is provided with
-   * HTTP status code of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_ABORT_COINS_ARRAY_EMPTY = 2159,
-
-  /**
-   * The merchant experienced a timeout processing the request. This
-   * response is provided with HTTP status code of
-   * #MHD_HTTP_REQUEST_TIMEOUT.
-   */
-  TALER_EC_ABORT_EXCHANGE_TIMEOUT = 2160,
-
-  /**
-   * Integer overflow with specified timestamp argument detected. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_HISTORY_TIMESTAMP_OVERFLOW = 2200,
-
-  /**
-   * Failed to retrieve history from merchant database. This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_HISTORY_DB_FETCH_ERROR = 2201,
-
-  /**
-   * The backend could not find the contract specified in the request.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_POLL_PAYMENT_CONTRACT_NOT_FOUND = 2250,
-
-  /**
-   * The response provided by the merchant backend was malformed. This
-   * error is created client-side.
-   */
-  TALER_EC_POLL_PAYMENT_REPLY_MALFORMED = 2251,
-
-  /**
-   * We failed to contact the exchange for the /track/transaction
-   * request.  This response is provided with HTTP status code
-   * #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_TRACK_TRANSACTION_EXCHANGE_TIMEOUT = 2300,
-
-  /**
-   * We failed to get a valid /keys response from the exchange for the
-   * /track/transaction request.  This response is provided with HTTP
-   * status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TRACK_TRANSACTION_EXCHANGE_KEYS_FAILURE = 2301,
-
-  /**
-   * The backend could not find the transaction specified in the
-   * request.   This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_TRACK_TRANSACTION_TRANSACTION_UNKNOWN = 2302,
-
-  /**
-   * The backend had a database access error trying to retrieve
-   * transaction data from its database. The response is provided with
-   * HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRACK_TRANSACTION_DB_FETCH_TRANSACTION_ERROR = 2303,
-
-  /**
-   * The backend had a database access error trying to retrieve payment
-   * data from its database. The response is provided with HTTP status
-   * code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRACK_TRANSACTION_DB_FETCH_PAYMENT_ERROR = 2304,
-
-  /**
-   * The backend found no applicable deposits in the database. This is
-   * odd, as we know about the transaction, but not about deposits we
-   * made for the transaction.  The response is provided with HTTP
-   * status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_TRACK_TRANSACTION_DB_NO_DEPOSITS_ERROR = 2305,
-
-  /**
-   * We failed to obtain a wire transfer identifier for one of the coins
-   * in the transaction.  The response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENCY if the exchange had a hard error, or
-   * #MHD_HTTP_ACCEPTED if the exchange signaled that the transfer was
-   * in progress.
-   */
-  TALER_EC_TRACK_TRANSACTION_COIN_TRACE_ERROR = 2306,
-
-  /**
-   * We failed to obtain the full wire transfer identifier for the
-   * transfer one of the coins was aggregated into. The response is
-   * provided with HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TRACK_TRANSACTION_WIRE_TRANSFER_TRACE_ERROR = 2307,
-
-  /**
-   * We got conflicting reports from the exhange with respect to which
-   * transfers are included in which aggregate. The response is provided
-   * with HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TRACK_TRANSACTION_CONFLICTING_REPORTS = 2308,
-
-  /**
-   * We failed to contact the exchange for the /track/transfer request.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_TRACK_TRANSFER_EXCHANGE_TIMEOUT = 2400,
-
-  /**
-   * We failed to obtain an acceptable /keys response from the exchange
-   * for the /track/transfer request.  This response is provided with
-   * HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TRACK_TRANSFER_EXCHANGE_KEYS_FAILURE = 2401,
-
-  /**
-   * We failed to persist coin wire transfer information in our merchant
-   * database. The response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRACK_TRANSFER_DB_STORE_COIN_ERROR = 2402,
-
-  /**
-   * We internally failed to execute the /track/transfer request. The
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRACK_TRANSFER_REQUEST_ERROR = 2403,
-
-  /**
-   * We failed to persist wire transfer information in our merchant
-   * database. The response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRACK_TRANSFER_DB_STORE_TRANSFER_ERROR = 2404,
-
-  /**
-   * The exchange returned an error from /track/transfer. The response
-   * is provided with HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TRACK_TRANSFER_EXCHANGE_ERROR = 2405,
-
-  /**
-   * We failed to fetch deposit information from our merchant database.
-   * The response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRACK_TRANSFER_DB_FETCH_DEPOSIT_ERROR = 2406,
-
-  /**
-   * We encountered an internal logic error. The response is provided
-   * with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRACK_TRANSFER_DB_INTERNAL_LOGIC_ERROR = 2407,
-
-  /**
-   * The exchange gave conflicting information about a coin which has
-   * been wire transferred. The response is provided with HTTP status
-   * code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TRACK_TRANSFER_CONFLICTING_REPORTS = 2408,
-
-  /**
-   * The merchant backend had problems in creating the JSON response.
-   */
-  TALER_EC_TRACK_TRANSFER_JSON_RESPONSE_ERROR = 2409,
-
-  /**
-   * The exchange charged a different wire fee than what it originally
-   * advertised, and it is higher.  The response is provied with an HTTP
-   * status of #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TRACK_TRANSFER_JSON_BAD_WIRE_FEE = 2410,
-
-  /**
-   * The merchant backend cannot create an instance under the given
-   * identifier as one already exists. Use PATCH to modify the existing
-   * entry.  The response is provied with an HTTP status of
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_POST_INSTANCES_ALREADY_EXISTS = 2450,
-
-  /**
-   * The merchant backend cannot create an instance because the
-   * specified bank accounts are somehow invalid. The response is
-   * provied with an HTTP status of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_POST_INSTANCES_BAD_PAYTO_URIS = 2451,
-
-  /**
-   * The merchant backend cannot create an instance because it failed to
-   * start the database transaction. The response is provied with an
-   * HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_POST_INSTANCES_DB_START_ERROR = 2452,
-
-  /**
-   * The merchant backend cannot create an instance because it failed to
-   * commit the database transaction. The response is provied with an
-   * HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_POST_INSTANCES_DB_COMMIT_ERROR = 2453,
-
-  /**
-   * The merchant backend cannot delete an instance because it failed to
-   * commit the database transaction. The response is provied with an
-   * HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DELETE_INSTANCES_ID_DB_HARD_FAILURE = 2454,
-
-  /**
-   * The merchant backend cannot delete the data because it already does
-   * not exist. The response is provied with an HTTP status of
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_DELETE_INSTANCES_ID_NO_SUCH_INSTANCE = 2455,
-
-  /**
-   * The merchant backend cannot update an instance because the
-   * specified bank accounts are somehow invalid. The response is
-   * provied with an HTTP status of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PATCH_INSTANCES_BAD_PAYTO_URIS = 2456,
-
-  /**
-   * The merchant backend cannot patch an instance because it failed to
-   * start the database transaction. The response is provied with an
-   * HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PATCH_INSTANCES_DB_START_ERROR = 2457,
-
-  /**
-   * The merchant backend cannot patch an instance because it failed to
-   * commit the database transaction. The response is provied with an
-   * HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PATCH_INSTANCES_DB_COMMIT_ERROR = 2458,
-
-  /**
-   * The hash provided in the request of /map/in does not match the
-   * contract sent alongside in the same request.
-   */
-  TALER_EC_MAP_IN_UNMATCHED_HASH = 2500,
-
-  /**
-   * The backend encountered an error while trying to store the
-   * h_contract_terms into the database. The response is provided with
-   * HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PROPOSAL_STORE_DB_ERROR = 2501,
-
-  /**
-   * The backend encountered an error while trying to retrieve the
-   * proposal data from database.  Likely to be an internal error. The
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PROPOSAL_LOOKUP_DB_ERROR = 2502,
-
-  /**
-   * The proposal being looked up is not found on this merchant.
-   * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND
-   */
-  TALER_EC_PROPOSAL_LOOKUP_NOT_FOUND = 2503,
-
-  /**
-   * The proposal had no timestamp and the backend failed to obtain the
-   * local time. Likely to be an internal error. The response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PROPOSAL_NO_LOCALTIME = 2504,
-
-  /**
-   * The order provided to the backend could not be parsed, some
-   * required fields were missing or ill-formed. Returned with an HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PROPOSAL_ORDER_PARSE_ERROR = 2505,
-
-  /**
-   * The backend encountered an error while trying to find the existing
-   * proposal in the database. The response is provided with HTTP status
-   * code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PROPOSAL_STORE_DB_ERROR_HARD = 2506,
-
-  /**
-   * The backend encountered an error while trying to find the existing
-   * proposal in the database. The response is provided with HTTP status
-   * code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PROPOSAL_STORE_DB_ERROR_SOFT = 2507,
-
-  /**
-   * The backend encountered an error: the proposal already exists. The
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PROPOSAL_STORE_DB_ERROR_ALREADY_EXISTS = 2508,
-
-  /**
-   * The order provided to the backend uses an amount in a currency that
-   * does not match the backend's configuration. Returned with HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PROPOSAL_ORDER_BAD_CURRENCY = 2509,
-
-  /**
-   * The response provided by the merchant backend was malformed. This
-   * error is created client-side.
-   */
-  TALER_EC_PROPOSAL_REPLY_MALFORMED = 2510,
-
-  /**
-   * The order provided to the backend could not be deleted, it is not
-   * known. Returned with an HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_ORDERS_DELETE_NO_SUCH_ORDER = 2511,
-
-  /**
-   * The order provided to the backend could not be deleted, our offer
-   * is still valid and awaiting payment. Returned with an HTTP status
-   * code #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_ORDERS_DELETE_AWAITING_PAYMENT = 2512,
-
-  /**
-   * The order provided to the backend could not be deleted, due to a
-   * database error. Returned with an HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ORDERS_DELETE_DB_HARD_FAILURE = 2513,
-
-  /**
-   * The order provided to the backend could not be completed, due to a
-   * database error trying to fetch product inventory data. Returned
-   * with an HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ORDERS_LOOKUP_PRODUCT_DB_HARD_FAILURE = 2514,
-
-  /**
-   * The order provided to the backend could not be completed, due to a
-   * database serialization error (which should be impossible) trying to
-   * fetch product inventory data. Returned with an HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ORDERS_LOOKUP_PRODUCT_DB_SOFT_FAILURE = 2515,
-
-  /**
-   * The order provided to the backend could not be completed, because a
-   * product to be completed via inventory data is not actually in our
-   * inventory. Returned with an HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_ORDERS_LOOKUP_PRODUCT_NOT_FOUND = 2516,
-
-  /**
-   * We could not obtain a list of all orders because of a database
-   * failure. Returned with an HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ORDERS_GET_DB_LOOKUP_ERROR = 2517,
-
-  /**
-   * We could not claim the order because of a database failure.
-   * Returned with an HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ORDERS_CLAIM_HARD_DB_ERROR = 2518,
-
-  /**
-   * We could not claim the order because of a database serialization
-   * failure. Returned with an HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ORDERS_CLAIM_SOFT_DB_ERROR = 2519,
-
-  /**
-   * We could not claim the order because the backend is unaware of it.
-   * Returned with an HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_ORDERS_CLAIM_NOT_FOUND = 2520,
-
-  /**
-   * We could not claim the order because someone else claimed it first.
-   * Returned with an HTTP status code #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_ORDERS_ALREADY_CLAIMED = 2521,
-
-  /**
-   * The merchant backend failed to lookup the products. The response is
-   * provied with an HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_GET_PRODUCTS_DB_LOOKUP_ERROR = 2550,
-
-  /**
-   * The merchant backend failed to start the transaction. The response
-   * is provied with an HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PRODUCTS_POST_DB_START_ERROR = 2551,
-
-  /**
-   * The product ID exists. The response is provied with an HTTP status
-   * of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_PRODUCTS_POST_CONFLICT_PRODUCT_EXISTS = 2552,
-
-  /**
-   * The merchant backend failed to serialize the transaction. The
-   * response is provied with an HTTP status of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PRODUCTS_POST_DB_COMMIT_SOFT_ERROR = 2553,
-
-  /**
-   * The merchant backend failed to commit the transaction. The response
-   * is provied with an HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PRODUCTS_POST_DB_COMMIT_HARD_ERROR = 2554,
-
-  /**
-   * The merchant backend failed to commit the transaction. The response
-   * is provied with an HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PRODUCTS_PATCH_DB_COMMIT_HARD_ERROR = 2555,
-
-  /**
-   * The merchant backend did not find the product to be updated. The
-   * response is provied with an HTTP status of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_PRODUCTS_PATCH_UNKNOWN_PRODUCT = 2556,
-
-  /**
-   * The update would have reduced the total amount of product lost,
-   * which is not allowed. The response is provied with an HTTP status
-   * of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_PRODUCTS_PATCH_TOTAL_LOST_REDUCED = 2557,
-
-  /**
-   * The update would have mean that more stocks were lost than what
-   * remains from total inventory after sales, which is not allowed. The
-   * response is provied with an HTTP status of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_PRODUCTS_PATCH_TOTAL_LOST_EXCEEDS_STOCKS = 2558,
-
-  /**
-   * The update would have reduced the total amount of product in stock,
-   * which is not allowed. The response is provied with an HTTP status
-   * of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_PRODUCTS_PATCH_TOTAL_STOCKED_REDUCED = 2559,
-
-  /**
-   * The lock request is for more products than we have left (unlocked)
-   * in stock. The response is provied with an HTTP status of
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_PRODUCTS_LOCK_INSUFFICIENT_STOCKS = 2560,
-
-  /**
-   * The lock request is for an unknown product. The response is provied
-   * with an HTTP status of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_PRODUCTS_LOCK_UNKNOWN_PRODUCT = 2561,
-
-  /**
-   * The deletion request resulted in a hard database error. The
-   * response is provied with an HTTP status of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PRODUCTS_DELETE_DB_HARD_FAILURE = 2562,
-
-  /**
-   * The deletion request was for a product unknown to the backend. The
-   * response is provied with an HTTP status of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_PRODUCTS_DELETE_NO_SUCH_PRODUCT = 2563,
-
-  /**
-   * The deletion request is for a product that is locked. The response
-   * is provied with an HTTP status of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_PRODUCTS_DELETE_CONFLICTING_LOCK = 2564,
-
-  /**
-   * The merchant returned a malformed response. Error created client-
-   * side.
-   */
-  TALER_EC_REFUND_LOOKUP_INVALID_RESPONSE = 2600,
-
-  /**
-   * The frontend gave an unknown order id to issue the refund to.
-   */
-  TALER_EC_REFUND_ORDER_ID_UNKNOWN = 2601,
-
-  /**
-   * The amount to be refunded is inconsistent: either is lower than the
-   * previous amount being awarded, or it is too big to be paid back. In
-   * this second case, the fault stays on the business dept. side.
-   * Returned with an HTTP status of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_REFUND_INCONSISTENT_AMOUNT = 2602,
-
-  /**
-   * The backend encountered an error while trying to retrieve the
-   * payment data from database.  Likely to be an internal error.
-   */
-  TALER_EC_REFUND_LOOKUP_DB_ERROR = 2603,
-
-  /**
-   * The backend encountered an error while trying to retrieve the
-   * payment data from database.  Likely to be an internal error.
-   */
-  TALER_EC_REFUND_MERCHANT_DB_COMMIT_ERROR = 2604,
-
-  /**
-   * Payments are stored in a single db transaction; this error
-   * indicates that one db operation within that transaction failed.
-   * This might involve storing of coins or other related db operations,
-   * like starting/committing the db transaction or marking a contract
-   * as paid.
-   */
-  TALER_EC_PAY_DB_STORE_PAYMENTS_ERROR = 2605,
-
-  /**
-   * The backend failed to sign the refund request.
-   */
-  TALER_EC_PAY_REFUND_SIGNATURE_FAILED = 2606,
-
-  /**
-   * The merchant backend is not available of any applicable refund(s)
-   * for this order. Returned with an HTTP status of
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_REFUND_LOOKUP_NO_REFUND = 2607,
-
-  /**
-   * The backend knows the instance that was supposed to support the
-   * tip, but it was not configured for tipping (i.e. has no exchange
-   * associated with it).  Likely to be a configuration error. Returned
-   * with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_TIP_AUTHORIZE_INSTANCE_DOES_NOT_TIP = 2701,
-
-  /**
-   * The reserve that was used to fund the tips has expired. Returned
-   * with an HTTP status code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_TIP_AUTHORIZE_RESERVE_EXPIRED = 2702,
-
-  /**
-   * The reserve that was used to fund the tips was not found in the DB.
-   * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_TIP_AUTHORIZE_RESERVE_UNKNOWN = 2703,
-
-  /**
-   * The backend knows the instance that was supposed to support the
-   * tip, and it was configured for tipping. However, the funds
-   * remaining are insufficient to cover the tip, and the merchant
-   * should top up the reserve. Returned with an HTTP status code of
-   * #MHD_HTTP_PRECONDITION FAILED.
-   */
-  TALER_EC_TIP_AUTHORIZE_INSUFFICIENT_FUNDS = 2704,
-
-  /**
-   * The backend had trouble accessing the database to persist
-   * information about the tip authorization. Returned with an HTTP
-   * status code of internal error.
-   */
-  TALER_EC_TIP_AUTHORIZE_DB_HARD_ERROR = 2705,
-
-  /**
-   * The backend had trouble accessing the database to persist
-   * information about the tip authorization. The problem might be
-   * fixable by repeating the transaction.
-   */
-  TALER_EC_TIP_AUTHORIZE_DB_SOFT_ERROR = 2706,
-
-  /**
-   * The backend failed to obtain a reserve status from the exchange.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_STATUS_FAILED_EXCHANGE_DOWN = 2707,
-
-  /**
-   * The backend got an empty (!) reserve history from the exchange.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_FAILED_EMPTY = 2708,
-
-  /**
-   * The backend got an invalid reserve history (fails to start with a
-   * deposit) from the exchange. This response is provided with HTTP
-   * status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_INVALID_NO_DEPOSIT = 2709,
-
-  /**
-   * The backend got an 404 response from the exchange when it inquired
-   * about the reserve history. The response is provided with HTTP
-   * status code #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_UNKNOWN_TO_EXCHANGE = 2710,
-
-  /**
-   * The backend got a reserve with a currency that does not match the
-   * backend's currency. The response is provided with HTTP status code
-   * #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_CURRENCY_MISMATCH = 2711,
-
-  /**
-   * The backend got a reserve history with amounts it cannot process
-   * (addition failure in deposits). The response is provided with HTTP
-   * status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_ARITHMETIC_ISSUE_DEPOSIT = 2712,
-
-  /**
-   * The backend got a reserve history with amounts it cannot process
-   * (addition failure in withdraw amounts). The response is provided
-   * with HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_ARITHMETIC_ISSUE_WITHDRAW = 2713,
-
-  /**
-   * The backend got a reserve history with amounts it cannot process
-   * (addition failure in closing amounts). The response is provided
-   * with HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_ARITHMETIC_ISSUE_CLOSED = 2714,
-
-  /**
-   * The backend got a reserve history with inconsistent amounts.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_ARITHMETIC_ISSUE_INCONSISTENT = 2715,
-
-  /**
-   * The backend encountered a database error querying tipping reserves.
-   */
-  TALER_EC_TIP_QUERY_DB_ERROR = 2716,
-
-  /**
-   * The backend got an unexpected resever history reply from the
-   * exchange. This response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_FAILED = 2717,
-
-  /**
-   * The backend got a reserve history with amounts it cannot process
-   * (addition failure in withdraw amounts). The response is provided
-   * with HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_ARITHMETIC_ISSUE_RECOUP = 2718,
-
-  /**
-   * The backend knows the instance that was supposed to support the
-   * tip, but it was not configured for tipping (i.e. has no exchange
-   * associated with it).  Likely to be a configuration error. Returned
-   * with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_TIP_QUERY_INSTANCE_DOES_NOT_TIP = 2719,
-
-  /**
-   * The tip id is unknown.  This could happen if the tip id is wrong or
-   * the tip authorization expired.
-   */
-  TALER_EC_TIP_QUERY_TIP_ID_UNKNOWN = 2720,
-
-  /**
-   * The backend had trouble accessing the database to persist
-   * information about enabling tips. Returned with an HTTP status code
-   * of internal error.
-   */
-  TALER_EC_TIP_ENABLE_DB_TRANSACTION_ERROR = 2750,
-
-  /**
-   * The tip ID is unknown.  This could happen if the tip has expired.
-   * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_TIP_PICKUP_TIP_ID_UNKNOWN = 2800,
-
-  /**
-   * The amount requested exceeds the remaining tipping balance for this
-   * tip ID. Returned with an HTTP status code of "Conflict" (as it
-   * conflicts with a previous pickup operation).
-   */
-  TALER_EC_TIP_PICKUP_NO_FUNDS = 2801,
-
-  /**
-   * We encountered a DB error, repeating the request may work.
-   */
-  TALER_EC_TIP_PICKUP_DB_ERROR_SOFT = 2802,
-
-  /**
-   * We encountered a DB error, repeating the request will not help.
-   * This is an internal server error.
-   */
-  TALER_EC_TIP_PICKUP_DB_ERROR_HARD = 2803,
-
-  /**
-   * The same pickup ID was already used for picking up a different
-   * amount. This points to a very strange internal error as the pickup
-   * ID is derived from the denomination key which is tied to a
-   * particular amount. Hence this should also be an internal server
-   * error.
-   */
-  TALER_EC_TIP_PICKUP_AMOUNT_CHANGED = 2804,
-
-  /**
-   * We failed to contact the exchange to obtain the denomination keys.
-   * Returned with a response code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_DOWN = 2805,
-
-  /**
-   * We contacted the exchange to obtain any denomination keys, but got
-   * no valid keys. Returned with a response code
-   * #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_LACKED_KEYS = 2806,
-
-  /**
-   * We contacted the exchange to obtain at least one of the
-   * denomination keys specified in the request. Returned with a
-   * response code "not found" (404).
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_LACKED_KEY = 2807,
-
-  /**
-   * We encountered an arithmetic issue totaling up the amount to
-   * withdraw. Returned with a response code of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_AMOUNT_OVERFLOW = 2808,
-
-  /**
-   * The number of planchets specified exceeded the limit. Returned with
-   * a response code of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_TOO_MANY_PLANCHETS = 2809,
-
-  /**
-   * The merchant failed to initialize the withdraw operaiton. Returned
-   * with a response code of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TIP_PICKUP_WITHDRAW_FAILED = 2810,
-
-  /**
-   * The merchant failed to initialize the withdraw operaiton. Returned
-   * with a response code of #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_PICKUP_WITHDRAW_FAILED_AT_EXCHANGE = 2811,
-
-  /**
-   * The client failed to unblind the signature returned by the
-   * merchant. Generated client-side.
-   */
-  TALER_EC_TIP_PICKUP_UNBLIND_FAILURE = 2812,
-
-  /**
-   * We failed to contract terms from our merchant database. The
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_CHECK_PAYMENT_DB_FETCH_CONTRACT_TERMS_ERROR = 2911,
-
-  /**
-   * We failed to contract terms from our merchant database. The
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_CHECK_PAYMENT_DB_FETCH_ORDER_ERROR = 2912,
-
-  /**
-   * The order id we're checking is unknown, likely the frontend did not
-   * create the order first.
-   */
-  TALER_EC_CHECK_PAYMENT_ORDER_ID_UNKNOWN = 2913,
-
-  /**
-   * Failed computing a hash code (likely server out-of-memory). This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_CHECK_PAYMENT_FAILED_COMPUTE_PROPOSAL_HASH = 2914,
-
-  /**
-   * Signature "session_sig" failed to verify. This response is provided
-   * with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_CHECK_PAYMENT_SESSION_SIGNATURE_INVALID = 2915,
-
-  /**
-   * The response we received from the merchant is malformed. This error
-   * is generated client-side.
-   */
-  TALER_EC_CHECK_PAYMENT_RESPONSE_MALFORMED = 2916,
-
-  /**
-   * The signature from the exchange on the deposit confirmation is
-   * invalid.  Returned with a "400 Bad Request" status code.
-   */
-  TALER_EC_DEPOSIT_CONFIRMATION_SIGNATURE_INVALID = 3000,
-
-  /**
-   * The auditor had trouble storing the deposit confirmation in its
-   * database. Returned with an HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSIT_CONFIRMATION_STORE_DB_ERROR = 3001,
-
-  /**
-   * The auditor had trouble retrieving the exchange list from its
-   * database. Returned with an HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_LIST_EXCHANGES_DB_ERROR = 3002,
-
-  /**
-   * The auditor had trouble storing an exchange in its database.
-   * Returned with an HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_AUDITOR_EXCHANGE_STORE_DB_ERROR = 3003,
-
-  /**
-   * The auditor (!) responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_AUDITOR_EXCHANGES_REPLY_MALFORMED = 3004,
-
-  /**
-   * The exchange failed to compute ECDH.  This response is provided
-   * with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TEST_ECDH_ERROR = 4000,
-
-  /**
-   * The EdDSA test signature is invalid.  This response is provided
-   * with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_TEST_EDDSA_INVALID = 4001,
-
-  /**
-   * The exchange failed to compute the EdDSA test signature.  This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TEST_EDDSA_ERROR = 4002,
-
-  /**
-   * The exchange failed to generate an RSA key.  This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TEST_RSA_GEN_ERROR = 4003,
-
-  /**
-   * The exchange failed to compute the public RSA key.  This response
-   * is provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TEST_RSA_PUB_ERROR = 4004,
-
-  /**
-   * The exchange failed to compute the RSA signature.  This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TEST_RSA_SIGN_ERROR = 4005,
-
-  /**
-   * The JSON in the server's response was malformed.  This response is
-   * provided with HTTP status code of 0.
-   */
-  TALER_EC_SERVER_JSON_INVALID = 5000,
-
-  /**
-   * A signature in the server's response was malformed.  This response
-   * is provided with HTTP status code of 0.
-   */
-  TALER_EC_SERVER_SIGNATURE_INVALID = 5001,
-
-  /**
-   * Wire transfer attempted with credit and debit party being the same
-   * bank account.
-   */
-  TALER_EC_BANK_SAME_ACCOUNT = 5102,
-
-  /**
-   * Wire transfer impossible, due to financial limitation of the party
-   * that attempted the payment.
-   */
-  TALER_EC_BANK_UNALLOWED_DEBIT = 5103,
-
-  /**
-   * Arithmetic operation between two amounts of different currency was
-   * attempted.
-   */
-  TALER_EC_BANK_CURRENCY_MISMATCH = 5104,
-
-  /**
-   * At least one GET parameter was either missing or invalid for the
-   * requested operation.
-   */
-  TALER_EC_BANK_PARAMETER_MISSING_OR_INVALID = 5105,
-
-  /**
-   * JSON body sent was invalid for the requested operation.
-   */
-  TALER_EC_BANK_JSON_INVALID = 5106,
-
-  /**
-   * Negative number was used (as value and/or fraction) to initiate a
-   * Amount object.
-   */
-  TALER_EC_BANK_NEGATIVE_NUMBER_AMOUNT = 5107,
-
-  /**
-   * A number too big was used (as value and/or fraction) to initiate a
-   * amount object.
-   */
-  TALER_EC_BANK_NUMBER_TOO_BIG = 5108,
-
-  /**
-   * Could not login for the requested operation.
-   */
-  TALER_EC_BANK_LOGIN_FAILED = 5109,
-
-  /**
-   * The bank account referenced in the requested operation was not
-   * found.  Returned along "400 Not found".
-   */
-  TALER_EC_BANK_UNKNOWN_ACCOUNT = 5110,
-
-  /**
-   * The transaction referenced in the requested operation (typically a
-   * reject operation), was not found.
-   */
-  TALER_EC_BANK_TRANSACTION_NOT_FOUND = 5111,
-
-  /**
-   * Bank received a malformed amount string.
-   */
-  TALER_EC_BANK_BAD_FORMAT_AMOUNT = 5112,
-
-  /**
-   * The client does not own the account credited by the transaction
-   * which is to be rejected, so it has no rights do reject it.  To be
-   * returned along HTTP 403 Forbidden.
-   */
-  TALER_EC_BANK_REJECT_NO_RIGHTS = 5200,
-
-  /**
-   * This error code is returned when no known exception types captured
-   * the exception, and comes along with a 500 Internal Server Error.
-   */
-  TALER_EC_BANK_UNMANAGED_EXCEPTION = 5300,
-
-  /**
-   * This error code is used for all those exceptions that do not really
-   * need a specific error code to return to the client, but need to
-   * signal the middleware that the bank is not responding with 500
-   * Internal Server Error.  Used for example when a client is trying to
-   * register with a unavailable username.
-   */
-  TALER_EC_BANK_SOFT_EXCEPTION = 5400,
-
-  /**
-   * The request UID for a request to transfer funds has already been
-   * used, but with different details for the transfer.
-   */
-  TALER_EC_BANK_TRANSFER_REQUEST_UID_REUSED = 5500,
-
-  /**
-   * The sync service failed to access its database. This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_SYNC_DB_FETCH_ERROR = 6000,
-
-  /**
-   * The sync service failed find the record in its database. This
-   * response is provided with HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_SYNC_BACKUP_UNKNOWN = 6001,
-
-  /**
-   * The sync service failed find the account in its database. This
-   * response is provided with HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_SYNC_ACCOUNT_UNKNOWN = 6002,
-
-  /**
-   * The SHA-512 hash provided in the If-None-Match header is malformed.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_SYNC_BAD_IF_NONE_MATCH = 6003,
-
-  /**
-   * The SHA-512 hash provided in the If-Match header is malformed or
-   * missing. This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_SYNC_BAD_IF_MATCH = 6004,
-
-  /**
-   * The signature provided in the "Sync-Signature" header is malformed
-   * or missing. This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_SYNC_BAD_SYNC_SIGNATURE = 6005,
-
-  /**
-   * The signature provided in the "Sync-Signature" header does not
-   * match the account, old or new Etags. This response is provided with
-   * HTTP status code #MHD_HTTP_FORBIDDEN.
-   */
-  TALER_EC_SYNC_INVALID_SIGNATURE = 6007,
-
-  /**
-   * The "Content-length" field for the upload is either not a number,
-   * or too big, or missing. This response is provided with HTTP status
-   * code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_SYNC_BAD_CONTENT_LENGTH = 6008,
-
-  /**
-   * The "Content-length" field for the upload is too big based on the
-   * server's terms of service. This response is provided with HTTP
-   * status code #MHD_HTTP_PAYLOAD_TOO_LARGE.
-   */
-  TALER_EC_SYNC_EXCESSIVE_CONTENT_LENGTH = 6009,
-
-  /**
-   * The server is out of memory to handle the upload. Trying again
-   * later may succeed. This response is provided with HTTP status code
-   * #MHD_HTTP_PAYLOAD_TOO_LARGE.
-   */
-  TALER_EC_SYNC_OUT_OF_MEMORY_ON_CONTENT_LENGTH = 6010,
-
-  /**
-   * The uploaded data does not match the Etag. This response is
-   * provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_SYNC_INVALID_UPLOAD = 6011,
-
-  /**
-   * We failed to check for existing upload data in the database. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_SYNC_DATABASE_FETCH_ERROR = 6012,
-
-  /**
-   * HTTP server was being shutdown while this operation was pending.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_SYNC_SHUTDOWN = 6013,
-
-  /**
-   * HTTP server experienced a timeout while awaiting promised payment.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_REQUEST_TIMEOUT.
-   */
-  TALER_EC_SYNC_PAYMENT_TIMEOUT = 6014,
-
-  /**
-   * Sync could not store order data in its own database. This response
-   * is provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_SYNC_PAYMENT_CREATE_DB_ERROR = 6015,
-
-  /**
-   * Sync could not store payment confirmation in its own database. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_SYNC_PAYMENT_CONFIRM_DB_ERROR = 6016,
-
-  /**
-   * Sync could not fetch information about possible existing orders
-   * from its own database. This response is provided with HTTP status
-   * code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_SYNC_PAYMENT_CHECK_ORDER_DB_ERROR = 6017,
-
-  /**
-   * Sync could not setup the payment request with its own backend. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_SYNC_PAYMENT_CREATE_BACKEND_ERROR = 6018,
-
-  /**
-   * The sync service failed find the backup to be updated in its
-   * database. This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_SYNC_PREVIOUS_BACKUP_UNKNOWN = 6019,
-
-  /**
-   * End of error code range.
-   */
-  TALER_EC_END = 9999,
-
-};
-
-
-#endif
diff --git a/src/include/taler_exchange_service.h 
b/src/include/taler_exchange_service.h
index f7fa7144..02ab182f 100644
--- a/src/include/taler_exchange_service.h
+++ b/src/include/taler_exchange_service.h
@@ -744,6 +744,32 @@ TALER_EXCHANGE_wire_cancel (struct 
TALER_EXCHANGE_WireHandle *wh);
 /* *********************  /coins/$COIN_PUB/deposit *********************** */
 
 
+/**
+ * Sign a deposit permission.  Function for wallets.
+ *
+ * @param amount the amount to be deposited
+ * @param deposit_fee the deposit fee we expect to pay
+ * @param h_wire hash of the merchant’s account details
+ * @param h_contract_terms hash of the contact of the merchant with the 
customer (further details are never disclosed to the exchange)
+ * @param coin_priv coin’s private key
+ * @param wallet_timestamp timestamp when the contract was finalized, must not 
be too far in the future
+ * @param merchant_pub the public key of the merchant (used to identify the 
merchant for refund requests)
+ * @param refund_deadline date until which the merchant can issue a refund to 
the customer via the exchange (can be zero if refunds are not allowed); must 
not be after the @a wire_deadline
+ * @param[out] coin_sig set to the signature made with purpose 
#TALER_SIGNATURE_WALLET_COIN_DEPOSIT
+ */
+void
+TALER_EXCHANGE_deposit_permission_sign (
+  const struct TALER_Amount *amount,
+  const struct TALER_Amount *deposit_fee,
+  const struct GNUNET_HashCode *h_wire,
+  const struct GNUNET_HashCode *h_contract_terms,
+  const struct TALER_CoinSpendPrivateKeyP *coin_priv,
+  struct GNUNET_TIME_Absolute wallet_timestamp,
+  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  struct GNUNET_TIME_Absolute refund_deadline,
+  struct TALER_CoinSpendSignatureP *coin_sig);
+
+
 /**
  * @brief A Deposit Handle
  */
@@ -756,6 +782,7 @@ struct TALER_EXCHANGE_DepositHandle;
  *
  * @param cls closure
  * @param hr HTTP response data
+ * @param deposit_timestamp time when the exchange generated the deposit 
confirmation
  * @param exchange_sig signature provided by the exchange
  * @param exchange_pub exchange key used to sign @a obj, or NULL
  */
@@ -763,6 +790,7 @@ typedef void
 (*TALER_EXCHANGE_DepositResultCallback) (
   void *cls,
   const struct TALER_EXCHANGE_HttpResponse *hr,
+  struct GNUNET_TIME_Absolute deposit_timestamp,
   const struct TALER_ExchangeSignatureP *exchange_sig,
   const struct TALER_ExchangePublicKeyP *exchange_pub);
 
@@ -851,6 +879,7 @@ struct TALER_EXCHANGE_RefundHandle;
  *
  * @param cls closure
  * @param hr HTTP response data
+ * @param refund_fee the refund fee the exchange charged us
  * @param sign_key exchange key used to sign @a obj, or NULL
  * @param signature the actual signature, or NULL on error
  */
@@ -858,6 +887,7 @@ typedef void
 (*TALER_EXCHANGE_RefundCallback) (
   void *cls,
   const struct TALER_EXCHANGE_HttpResponse *hr,
+  const struct TALER_Amount *refund_fee,
   const struct TALER_ExchangePublicKeyP *sign_key,
   const struct TALER_ExchangeSignatureP *signature);
 
@@ -878,7 +908,6 @@ typedef void
  * @param amount the amount to be refunded; must be larger than the refund fee
  *        (as that fee is still being subtracted), and smaller than the amount
  *        (with deposit fee) of the original deposit contribution of this coin
- * @param refund_fee fee applicable to this coin for the refund
  * @param h_contract_terms hash of the contact of the merchant with the 
customer that is being refunded
  * @param coin_pub coin’s public key of the coin from the original deposit 
operation
  * @param rtransaction_id transaction id for the transaction between merchant 
and customer (of refunding operation);
@@ -894,7 +923,6 @@ typedef void
 struct TALER_EXCHANGE_RefundHandle *
 TALER_EXCHANGE_refund (struct TALER_EXCHANGE_Handle *exchange,
                        const struct TALER_Amount *amount,
-                       const struct TALER_Amount *refund_fee,
                        const struct GNUNET_HashCode *h_contract_terms,
                        const struct TALER_CoinSpendPublicKeyP *coin_pub,
                        uint64_t rtransaction_id,
@@ -922,7 +950,6 @@ TALER_EXCHANGE_refund (struct TALER_EXCHANGE_Handle 
*exchange,
  * @param amount the amount to be refunded; must be larger than the refund fee
  *        (as that fee is still being subtracted), and smaller than the amount
  *        (with deposit fee) of the original deposit contribution of this coin
- * @param refund_fee fee applicable to this coin for the refund
  * @param h_contract_terms hash of the contact of the merchant with the 
customer that is being refunded
  * @param coin_pub coin’s public key of the coin from the original deposit 
operation
  * @param rtransaction_id transaction id for the transaction between merchant 
and customer (of refunding operation);
@@ -939,7 +966,6 @@ TALER_EXCHANGE_refund (struct TALER_EXCHANGE_Handle 
*exchange,
 struct TALER_EXCHANGE_RefundHandle *
 TALER_EXCHANGE_refund2 (struct TALER_EXCHANGE_Handle *exchange,
                         const struct TALER_Amount *amount,
-                        const struct TALER_Amount *refund_fee,
                         const struct GNUNET_HashCode *h_contract_terms,
                         const struct TALER_CoinSpendPublicKeyP *coin_pub,
                         uint64_t rtransaction_id,
@@ -1584,32 +1610,68 @@ TALER_EXCHANGE_link_cancel (struct 
TALER_EXCHANGE_LinkHandle *lh);
 struct TALER_EXCHANGE_TransfersGetHandle;
 
 
+/**
+ * Information the exchange returns per wire transfer.
+ */
+struct TALER_EXCHANGE_TransferData
+{
+
+  /**
+   * exchange key used to sign
+   */
+  struct TALER_ExchangePublicKeyP exchange_pub;
+
+  /**
+   * exchange signature over the transfer data
+   */
+  struct TALER_ExchangeSignatureP exchange_sig;
+
+  /**
+   * hash of the wire transfer address the transfer went to
+   */
+  struct GNUNET_HashCode h_wire;
+
+  /**
+   * time when the exchange claims to have performed the wire transfer
+   */
+  struct GNUNET_TIME_Absolute execution_time;
+
+  /**
+   * Actual amount of the wire transfer, excluding the wire fee.
+   */
+  struct TALER_Amount total_amount;
+
+  /**
+   * wire fee that was charged by the exchange
+   */
+  struct TALER_Amount wire_fee;
+
+  /**
+   * length of the @e details array
+   */
+  unsigned int details_length;
+
+  /**
+   * array with details about the combined transactions
+   */
+  const struct TALER_TrackTransferDetails *details;
+
+};
+
+
 /**
  * Function called with detailed wire transfer data, including all
  * of the coin transactions that were combined into the wire transfer.
  *
  * @param cls closure
  * @param hr HTTP response data
- * @param sign_key exchange key used to sign @a json, or NULL
- * @param h_wire hash of the wire transfer address the transfer went to, or 
NULL on error
- * @param execution_time time when the exchange claims to have performed the 
wire transfer
- * @param total_amount total amount of the wire transfer, or NULL if the 
exchange could
- *             not provide any @a wtid (set only if @a http_status is 
#MHD_HTTP_OK)
- * @param wire_fee wire fee that was charged by the exchange
- * @param details_length length of the @a details array
- * @param details array with details about the combined transactions
+ * @param ta transfer data, (set only if @a http_status is #MHD_HTTP_OK, 
otherwise NULL)
  */
 typedef void
 (*TALER_EXCHANGE_TransfersGetCallback)(
   void *cls,
   const struct TALER_EXCHANGE_HttpResponse *hr,
-  const struct TALER_ExchangePublicKeyP *sign_key,
-  const struct GNUNET_HashCode *h_wire,
-  struct GNUNET_TIME_Absolute execution_time,
-  const struct TALER_Amount *total_amount,
-  const struct TALER_Amount *wire_fee,
-  unsigned int details_length,
-  const struct TALER_TrackTransferDetails *details);
+  const struct TALER_EXCHANGE_TransferData *ta);
 
 
 /**
@@ -1650,25 +1712,57 @@ TALER_EXCHANGE_transfers_get_cancel (
 struct TALER_EXCHANGE_DepositGetHandle;
 
 
+/**
+ * Data returned for a successful GET /deposits/ request.  Note that
+ * most fields are only set if the status is #MHD_HTTP_OK.  Only
+ * the @e execution_time is available if the status is #MHD_HTTP_ACCEPTED.
+ */
+struct TALER_EXCHANGE_DepositData
+{
+
+  /**
+   * exchange key used to sign, all zeros if exchange did not
+   * yet execute the transaction
+   */
+  struct TALER_ExchangePublicKeyP exchange_pub;
+
+  /**
+   * signature from the exchange over the deposit data, all zeros if exchange 
did not
+   * yet execute the transaction
+   */
+  struct TALER_ExchangeSignatureP exchange_sig;
+
+  /**
+   * wire transfer identifier used by the exchange, all zeros if exchange did 
not
+   * yet execute the transaction
+   */
+  struct TALER_WireTransferIdentifierRawP wtid;
+
+  /**
+   * actual or planned execution time for the wire transfer
+   */
+  struct GNUNET_TIME_Absolute execution_time;
+
+  /**
+   * contribution to the total amount by this coin, all zeros if exchange did 
not
+   * yet execute the transaction
+   */
+  struct TALER_Amount coin_contribution;
+};
+
+
 /**
  * Function called with detailed wire transfer data.
  *
  * @param cls closure
  * @param hr HTTP response data
- * @param sign_key exchange key used to sign @a json, or NULL
- * @param wtid wire transfer identifier used by the exchange, NULL if exchange 
did not
- *                  yet execute the transaction
- * @param execution_time actual or planned execution time for the wire transfer
- * @param coin_contribution contribution to the total amount by this coin (can 
be NULL)
+ * @param dd details about the deposit (NULL on errors)
  */
 typedef void
 (*TALER_EXCHANGE_DepositGetCallback)(
   void *cls,
   const struct TALER_EXCHANGE_HttpResponse *hr,
-  const struct TALER_ExchangePublicKeyP *sign_key,
-  const struct TALER_WireTransferIdentifierRawP *wtid,
-  struct GNUNET_TIME_Absolute execution_time,
-  const struct TALER_Amount *coin_contribution);
+  const struct TALER_EXCHANGE_DepositData *dd);
 
 
 /**
diff --git a/src/include/taler_exchangedb_plugin.h 
b/src/include/taler_exchangedb_plugin.h
index 4fd58072..9fb93236 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -975,6 +975,8 @@ struct TALER_EXCHANGEDB_Session;
  * @param cls closure
  * @param rowid unique ID for the deposit in our DB, used for marking
  *              it as 'tiny' or 'done'
+ * @param exchange_timestamp when did the exchange receive the deposit
+ * @param wallet_timestamp when did the wallet sign the contract
  * @param merchant_pub public key of the merchant
  * @param coin_pub public key of the coin
  * @param amount_with_fee amount that was deposited including fee
@@ -990,6 +992,8 @@ typedef enum GNUNET_DB_QueryStatus
 (*TALER_EXCHANGEDB_DepositIterator)(
   void *cls,
   uint64_t rowid,
+  struct GNUNET_TIME_Absolute exchange_timestamp,
+  struct GNUNET_TIME_Absolute wallet_timestamp,
   const struct TALER_MerchantPublicKeyP *merchant_pub,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_Amount *amount_with_fee,
@@ -1022,7 +1026,8 @@ typedef void
  *
  * @param cls closure
  * @param rowid unique serial ID for the deposit in our DB
- * @param timestamp when did the deposit happen
+ * @param exchange_timestamp when did the deposit happen
+ * @param wallet_timestamp when did the contract happen
  * @param merchant_pub public key of the merchant
  * @param denom_pub denomination public key of @a coin_pub
  * @param coin_pub public key of the coin
@@ -1042,7 +1047,8 @@ typedef int
 (*TALER_EXCHANGEDB_DepositCallback)(
   void *cls,
   uint64_t rowid,
-  struct GNUNET_TIME_Absolute timestamp,
+  struct GNUNET_TIME_Absolute exchange_timestamp,
+  struct GNUNET_TIME_Absolute wallet_timestamp,
   const struct TALER_MerchantPublicKeyP *merchant_pub,
   const struct TALER_DenominationPublicKey *denom_pub,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
@@ -1841,6 +1847,8 @@ struct TALER_EXCHANGEDB_Plugin
    * @param session database connection
    * @param deposit deposit to search for
    * @param check_extras whether to check extra fields or not
+   * @param[out] deposit_fee set to the deposit fee the exchange charged
+   * @param[out] exchange_timestamp set to the time when the exchange received 
the deposit
    * @return 1 if we know this operation,
    *         0 if this exact deposit is unknown to us,
    *         otherwise transaction error status
@@ -1849,7 +1857,9 @@ struct TALER_EXCHANGEDB_Plugin
   (*have_deposit)(void *cls,
                   struct TALER_EXCHANGEDB_Session *session,
                   const struct TALER_EXCHANGEDB_Deposit *deposit,
-                  int check_extras);
+                  int check_extras,
+                  struct TALER_Amount *deposit_fee,
+                  struct GNUNET_TIME_Absolute *exchange_timestamp);
 
 
   /**
@@ -1857,12 +1867,14 @@ struct TALER_EXCHANGEDB_Plugin
    *
    * @param cls the @e cls of this struct with the plugin-specific state
    * @param session connection to the database
+   * @param exchange_timestamp time the exchange received the deposit request
    * @param deposit deposit information to store
    * @return query result status
    */
   enum GNUNET_DB_QueryStatus
   (*insert_deposit)(void *cls,
                     struct TALER_EXCHANGEDB_Session *session,
+                    struct GNUNET_TIME_Absolute exchange_timestamp,
                     const struct TALER_EXCHANGEDB_Deposit *deposit);
 
 
diff --git a/src/include/taler_mhd_lib.h b/src/include/taler_mhd_lib.h
index 71006e8b..8cfb8072 100644
--- a/src/include/taler_mhd_lib.h
+++ b/src/include/taler_mhd_lib.h
@@ -264,7 +264,8 @@ TALER_MHD_parse_post_cleanup_callback (void *con_cls);
 
 /**
  * Parse JSON object into components based on the given field
- * specification.
+ * specification.  If parsing fails, we return an HTTP
+ * status code of 400 (#MHD_HTTP_BAD_REQUEST).
  *
  * @param connection the connection to send an error response to
  * @param root the JSON node to start the navigation at.
@@ -282,6 +283,30 @@ TALER_MHD_parse_json_data (struct MHD_Connection 
*connection,
                            struct GNUNET_JSON_Specification *spec);
 
 
+/**
+ * Parse JSON object that we (the server!) generated into components based on
+ * the given field specification.  The difference to
+ * #TALER_MHD_parse_json_data() is that this function will fail
+ * with an HTTP failure of 500 (internal server error) in case
+ * parsing fails, instead of blaming it on the client with a
+ * 400 (#MHD_HTTP_BAD_REQUEST).
+ *
+ * @param connection the connection to send an error response to
+ * @param root the JSON node to start the navigation at.
+ * @param spec field specification for the parser
+ * @return
+ *    #GNUNET_YES if navigation was successful (caller is responsible
+ *                for freeing allocated variable-size data using
+ *                GNUNET_JSON_parse_free() when done)
+ *    #GNUNET_NO if json is malformed, error response was generated
+ *    #GNUNET_SYSERR on internal error
+ */
+enum GNUNET_GenericReturnValue
+TALER_MHD_parse_internal_json_data (struct MHD_Connection *connection,
+                                    const json_t *root,
+                                    struct GNUNET_JSON_Specification *spec);
+
+
 /**
  * Parse JSON array into components based on the given field
  * specification.  Generates error response on parse errors.
diff --git a/src/include/taler_signatures.h b/src/include/taler_signatures.h
index f55f0c2e..7f9e090a 100644
--- a/src/include/taler_signatures.h
+++ b/src/include/taler_signatures.h
@@ -316,19 +316,6 @@ struct TALER_WithdrawRequestPS
    */
   struct TALER_AmountNBO amount_with_fee;
 
-  /**
-   * Withdrawal fee charged by the exchange.  This must match the Exchange's
-   * denomination key's withdrawal fee.  If the client puts in an
-   * invalid withdrawal fee (too high or too low) that does not match
-   * the Exchange's denomination key, the withdraw operation is invalid
-   * and will be rejected by the exchange.  The @e amount_with_fee minus
-   * the @e withdraw_fee is must match the value of the generated
-   * coin.  We include this in what is being signed so that we can
-   * verify a exchange's accounting without needing to access the
-   * respective denomination key information each time.
-   */
-  struct TALER_AmountNBO withdraw_fee;
-
   /**
    * Hash of the denomination public key for the coin that is withdrawn.
    */
@@ -376,7 +363,7 @@ struct TALER_DepositRequestPS
    * deposit request in a timely fashion (so back-dating is not
    * prevented).
    */
-  struct GNUNET_TIME_AbsoluteNBO timestamp;
+  struct GNUNET_TIME_AbsoluteNBO wallet_timestamp;
 
   /**
    * How much time does the merchant have to issue a refund request?
@@ -442,9 +429,10 @@ struct TALER_DepositConfirmationPS
   struct GNUNET_HashCode h_wire GNUNET_PACKED;
 
   /**
-   * Time when this confirmation was generated.
+   * Time when this confirmation was generated / when the exchange received
+   * the deposit request.
    */
-  struct GNUNET_TIME_AbsoluteNBO timestamp;
+  struct GNUNET_TIME_AbsoluteNBO exchange_timestamp;
 
   /**
    * How much time does the @e merchant have to issue a refund
@@ -517,17 +505,6 @@ struct TALER_RefundRequestPS
    */
   struct TALER_AmountNBO refund_amount;
 
-  /**
-   * Refund fee charged by the exchange.  This must match the
-   * Exchange's denomination key's refund fee.  If the client puts in
-   * an invalid refund fee (too high or too low) that does not match
-   * the Exchange's denomination key, the refund operation is invalid
-   * and will be rejected by the exchange.  The @e amount_with_fee
-   * minus the @e refund_fee is the amount that will be credited to
-   * the original coin.
-   */
-  struct TALER_AmountNBO refund_fee;
-
 };
 
 
@@ -1153,10 +1130,8 @@ struct TALER_ProposalDataPS
 struct PaymentResponsePS
 {
   /**
-   * Set to TALER_SIGNATURE_MERCHANT_PAYMENT_OK so far. Note that
-   * unsuccessful payments are usually proven by some exchange's signature,
-   * thus it is unlikely that a merchant needs to set a purpose other than
-   * the above mentioned
+   * Set to #TALER_SIGNATURE_MERCHANT_PAYMENT_OK. Note that
+   * unsuccessful payments are usually proven by some exchange's signature.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
diff --git a/src/include/taler_pq_lib.h b/src/include/taler_sq_lib.h
similarity index 53%
copy from src/include/taler_pq_lib.h
copy to src/include/taler_sq_lib.h
index 4545b6d5..66bd38c8 100644
--- a/src/include/taler_pq_lib.h
+++ b/src/include/taler_sq_lib.h
@@ -1,6 +1,6 @@
 /*
   This file is part of TALER
-  Copyright (C) 2014, 2015, 2016 Taler Systems SA
+  Copyright (C) 2020 Taler Systems SA
 
   TALER is free software; you can redistribute it and/or modify it under the
   terms of the GNU General Public License as published by the Free Software
@@ -14,42 +14,38 @@
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file include/taler_pq_lib.h
- * @brief helper functions for DB interactions
- * @author Sree Harsha Totakura <sreeharsha@totakura.in>
- * @author Florian Dold
- * @author Christian Grothoff
+ * @file include/taler_sq_lib.h
+ * @brief helper functions for DB interactions with SQLite
+ * @author Jonathan Buchanan
  */
-#ifndef TALER_PQ_LIB_H_
-#define TALER_PQ_LIB_H_
+#ifndef TALER_SQ_LIB_H_
+#define TALER_SQ_LIB_H_
 
-#include <libpq-fe.h>
+#include <sqlite3.h>
 #include <jansson.h>
-#include <gnunet/gnunet_pq_lib.h>
+#include <gnunet/gnunet_sq_lib.h>
 #include "taler_util.h"
 
 /**
- * Generate query parameter for a currency, consisting of the three
- * components "value", "fraction" and "currency" in this order. The
- * types must be a 64-bit integer, 32-bit integer and a
- * #TALER_CURRENCY_LEN-sized BLOB/VARCHAR respectively.
+ * Generate query parameter for a currency, consisting of the
+ * components "value", "fraction" in this order. The
+ * types must be a 64-bit integer and a 64-bit integer.
  *
  * @param x pointer to the query parameter to pass
  */
-struct GNUNET_PQ_QueryParam
-TALER_PQ_query_param_amount_nbo (const struct TALER_AmountNBO *x);
+struct GNUNET_SQ_QueryParam
+TALER_SQ_query_param_amount_nbo (const struct TALER_AmountNBO *x);
 
 
 /**
- * Generate query parameter for a currency, consisting of the three
- * components "value", "fraction" and "currency" in this order. The
- * types must be a 64-bit integer, 32-bit integer and a
- * #TALER_CURRENCY_LEN-sized BLOB/VARCHAR respectively.
+ * Generate query parameter for a currency, consisting of the
+ * components "value", "fraction" in this order. The
+ * types must be a 64-bit integer and a 64-bit integer.
  *
  * @param x pointer to the query parameter to pass
  */
-struct GNUNET_PQ_QueryParam
-TALER_PQ_query_param_amount (const struct TALER_Amount *x);
+struct GNUNET_SQ_QueryParam
+TALER_SQ_query_param_amount (const struct TALER_Amount *x);
 
 
 /**
@@ -60,107 +56,97 @@ TALER_PQ_query_param_amount (const struct TALER_Amount *x);
  *
  * @param x pointer to the json object to pass
  */
-struct GNUNET_PQ_QueryParam
-TALER_PQ_query_param_json (const json_t *x);
+struct GNUNET_SQ_QueryParam
+TALER_SQ_query_param_json (const json_t *x);
 
 
 /**
  * Generate query parameter for an absolute time value.
  * In contrast to
- * #GNUNET_PQ_query_param_absolute_time(), this function
+ * #GNUNET_SQ_query_param_absolute_time(), this function
  * will abort (!) if the time given is not rounded!
  * The database must store a 64-bit integer.
  *
  * @param x pointer to the query parameter to pass
  */
-struct GNUNET_PQ_QueryParam
-TALER_PQ_query_param_absolute_time (const struct GNUNET_TIME_Absolute *x);
+struct GNUNET_SQ_QueryParam
+TALER_SQ_query_param_absolute_time (const struct GNUNET_TIME_Absolute *x);
 
 
 /**
  * Generate query parameter for an absolute time value.
  * In contrast to
- * #GNUNET_PQ_query_param_absolute_time(), this function
+ * #GNUNET_SQ_query_param_absolute_time(), this function
  * will abort (!) if the time given is not rounded!
  * The database must store a 64-bit integer.
  *
  * @param x pointer to the query parameter to pass
  */
-struct GNUNET_PQ_QueryParam
-TALER_PQ_query_param_absolute_time_nbo (const struct
+struct GNUNET_SQ_QueryParam
+TALER_SQ_query_param_absolute_time_nbo (const struct
                                         GNUNET_TIME_AbsoluteNBO *x);
 
 
 /**
  * Currency amount expected.
  *
- * @param name name of the field in the table
  * @param currency currency to use for @a amount
  * @param[out] amount where to store the result
  * @return array entry for the result specification to use
  */
-struct GNUNET_PQ_ResultSpec
-TALER_PQ_result_spec_amount_nbo (const char *name,
-                                 const char *currency,
+struct GNUNET_SQ_ResultSpec
+TALER_SQ_result_spec_amount_nbo (const char *currency,
                                  struct TALER_AmountNBO *amount);
 
 
 /**
  * Currency amount expected.
  *
- * @param name name of the field in the table
  * @param currency currency to use for @a amount
  * @param[out] amount where to store the result
  * @return array entry for the result specification to use
  */
-struct GNUNET_PQ_ResultSpec
-TALER_PQ_result_spec_amount (const char *name,
-                             const char *currency,
+struct GNUNET_SQ_ResultSpec
+TALER_SQ_result_spec_amount (const char *currency,
                              struct TALER_Amount *amount);
 
 
 /**
  * json_t expected.
  *
- * @param name name of the field in the table
  * @param[out] jp where to store the result
  * @return array entry for the result specification to use
  */
-struct GNUNET_PQ_ResultSpec
-TALER_PQ_result_spec_json (const char *name,
-                           json_t **jp);
+struct GNUNET_SQ_ResultSpec
+TALER_SQ_result_spec_json (json_t **jp);
 
 
 /**
  * Rounded absolute time expected.
- * In contrast to #GNUNET_PQ_query_param_absolute_time_nbo(),
+ * In contrast to #GNUNET_SQ_query_param_absolute_time_nbo(),
  * this function ensures that the result is rounded and can
  * be converted to JSON.
  *
- * @param name name of the field in the table
  * @param[out] at where to store the result
  * @return array entry for the result specification to use
  */
-struct GNUNET_PQ_ResultSpec
-TALER_PQ_result_spec_absolute_time (const char *name,
-                                    struct GNUNET_TIME_Absolute *at);
+struct GNUNET_SQ_ResultSpec
+TALER_SQ_result_spec_absolute_time (struct GNUNET_TIME_Absolute *at);
 
 
 /**
  * Rounded absolute time expected.
- * In contrast to #GNUNET_PQ_result_spec_absolute_time_nbo(),
+ * In contrast to #GNUNET_SQ_result_spec_absolute_time_nbo(),
  * this function ensures that the result is rounded and can
  * be converted to JSON.
  *
- * @param name name of the field in the table
  * @param[out] at where to store the result
  * @return array entry for the result specification to use
  */
-struct GNUNET_PQ_ResultSpec
-TALER_PQ_result_spec_absolute_time_nbo (const char *name,
-                                        struct GNUNET_TIME_AbsoluteNBO *at);
+struct GNUNET_SQ_ResultSpec
+TALER_SQ_result_spec_absolute_time_nbo (struct GNUNET_TIME_AbsoluteNBO *at);
 
 
-#endif  /* TALER_PQ_LIB_H_ */
+#endif  /* TALER_SQ_LIB_H_ */
 
-/* end of include/taler_pq_lib.h */
+/* end of include/taler_sq_lib.h */
diff --git a/src/include/taler_testing_lib.h b/src/include/taler_testing_lib.h
index 0696573e..d4251364 100644
--- a/src/include/taler_testing_lib.h
+++ b/src/include/taler_testing_lib.h
@@ -388,10 +388,9 @@ struct TALER_TESTING_Interpreter
   void *final_cleanup_cb_cls;
 
   /**
-   * Instruction pointer.  Tells #interpreter_run() which
-   * instruction to run next.  Need (signed) int because
-   * it gets -1 when rewinding the interpreter to the first
-   * CMD.
+   * Instruction pointer.  Tells #interpreter_run() which instruction to run
+   * next.  Need (signed) int because it gets -1 when rewinding the
+   * interpreter to the first CMD.
    */
   int ip;
 
@@ -599,7 +598,22 @@ TALER_TESTING_interpreter_fail (struct 
TALER_TESTING_Interpreter *is);
  * @return a end-command.
  */
 struct TALER_TESTING_Command
-TALER_TESTING_cmd_end ();
+TALER_TESTING_cmd_end (void);
+
+
+/**
+ * Make the instruction pointer point to @a target_label
+ * only if @a counter is greater than zero.
+ *
+ * @param label command label
+ * @param target_label label of the new instruction pointer's destination 
after the jump;
+ *                     must be before the current instruction
+ * @param counter counts how many times the rewinding is to happen.
+ */
+struct TALER_TESTING_Command
+TALER_TESTING_cmd_rewind_ip (const char *label,
+                             const char *target_label,
+                             unsigned int counter);
 
 
 /**
@@ -816,7 +830,6 @@ TALER_TESTING_setup_with_auditor_and_exchange 
(TALER_TESTING_Main main_cb,
  * @param config_filename configuration filename.
  * @param bank_url base URL of the bank, used by `wget' to check
  *        that the bank was started right.
- *
  * @return the process, or NULL if the process could not
  *         be started.
  */
@@ -839,6 +852,7 @@ TALER_TESTING_run_bank (const char *config_filename,
 struct TALER_TESTING_LibeufinServices
 TALER_TESTING_run_libeufin (const struct TALER_TESTING_BankConfiguration *bc);
 
+
 /**
  * Runs the Fakebank by guessing / extracting the portnumber
  * from the base URL.
@@ -1089,7 +1103,7 @@ TALER_TESTING_cmd_admin_add_incoming (
  * @param payto_debit_account which account sends money.
  * @param auth authentication data
  * @param ref reference to a command that can offer a reserve
- *        private key.
+ *        private key or public key.
  * @return the command.
  */
 struct TALER_TESTING_Command
@@ -1345,6 +1359,16 @@ TALER_TESTING_cmd_status (const char *label,
                           const char *expected_balance,
                           unsigned int expected_response_code);
 
+/**
+ * Index of the deposit value trait of a deposit command.
+ */
+#define TALER_TESTING_CMD_DEPOSIT_TRAIT_IDX_DEPOSIT_VALUE 0
+
+/**
+ * Index of the deposit fee trait of a deposit command.
+ */
+#define TALER_TESTING_CMD_DEPOSIT_TRAIT_IDX_DEPOSIT_FEE 1
+
 /**
  * Create a "deposit" command.
  *
@@ -1670,7 +1694,6 @@ TALER_TESTING_cmd_check_bank_empty (const char *label);
  * @param label command label.
  * @param expected_response_code expected HTTP status code.
  * @param refund_amount the amount to ask a refund for.
- * @param refund_fee expected refund fee.
  * @param coin_reference reference to a command that can
  *        provide a coin to be refunded.
  * @param refund_transaction_id transaction id to use
@@ -1682,7 +1705,6 @@ struct TALER_TESTING_Command
 TALER_TESTING_cmd_refund_with_id (const char *label,
                                   unsigned int expected_response_code,
                                   const char *refund_amount,
-                                  const char *refund_fee,
                                   const char *deposit_reference,
                                   uint64_t refund_transaction_id);
 
@@ -1693,7 +1715,6 @@ TALER_TESTING_cmd_refund_with_id (const char *label,
  * @param label command label.
  * @param expected_response_code expected HTTP status code.
  * @param refund_amount the amount to ask a refund for.
- * @param refund_fee expected refund fee.
  * @param coin_reference reference to a command that can
  *        provide a coin to be refunded.
  *
@@ -1703,7 +1724,6 @@ struct TALER_TESTING_Command
 TALER_TESTING_cmd_refund (const char *label,
                           unsigned int expected_response_code,
                           const char *refund_amount,
-                          const char *refund_fee,
                           const char *deposit_reference);
 
 
@@ -1890,6 +1910,18 @@ TALER_TESTING_cmd_batch_next (struct 
TALER_TESTING_Interpreter *is);
 struct TALER_TESTING_Command *
 TALER_TESTING_cmd_batch_get_current (const struct TALER_TESTING_Command *cmd);
 
+
+/**
+ * Set what command the batch should be at.
+ *
+ * @param cmd current batch command
+ * @param new_ip where to move the IP
+ */
+void
+TALER_TESTING_cmd_batch_set_current (const struct TALER_TESTING_Command *cmd,
+                                     unsigned int new_ip);
+
+
 /**
  * Make a serialize-keys CMD.
  *
@@ -1921,6 +1953,7 @@ TALER_TESTING_cmd_connect_with_state (const char *label,
  * @param dbc collects plugin and session handles
  * @param merchant_name Human-readable name of the merchant.
  * @param merchant_account merchant's account name (NOT a payto:// URI)
+ * @param exchange_timestamp when did the exchange receive the deposit
  * @param wire_deadline point in time where the aggregator should have
  *        wired money to the merchant.
  * @param amount_with_fee amount to deposit (inclusive of deposit fee)
@@ -1928,14 +1961,15 @@ TALER_TESTING_cmd_connect_with_state (const char *label,
  * @return the command.
  */
 struct TALER_TESTING_Command
-TALER_TESTING_cmd_insert_deposit (const char *label,
-                                  const struct
-                                  TALER_TESTING_DatabaseConnection *dbc,
-                                  const char *merchant_name,
-                                  const char *merchant_account,
-                                  struct GNUNET_TIME_Relative wire_deadline,
-                                  const char *amount_with_fee,
-                                  const char *deposit_fee);
+TALER_TESTING_cmd_insert_deposit (
+  const char *label,
+  const struct TALER_TESTING_DatabaseConnection *dbc,
+  const char *merchant_name,
+  const char *merchant_account,
+  struct GNUNET_TIME_Absolute exchange_timestamp,
+  struct GNUNET_TIME_Relative wire_deadline,
+  const char *amount_with_fee,
+  const char *deposit_fee);
 
 
 /**
@@ -2339,6 +2373,31 @@ TALER_TESTING_make_trait_denom_sig (
   const struct TALER_DenominationSignature *sig);
 
 
+/**
+ * Offer number trait, 32-bit version.
+ *
+ * @param index the number's index number.
+ * @param n number to offer.
+ */
+struct TALER_TESTING_Trait
+TALER_TESTING_make_trait_uint32 (unsigned int index,
+                                 const uint32_t *n);
+
+
+/**
+ * Obtain a "number" value from @a cmd, 32-bit version.
+ *
+ * @param cmd command to extract the number from.
+ * @param index the number's index number.
+ * @param[out] n set to the number coming from @a cmd.
+ * @return #GNUNET_OK on success.
+ */
+int
+TALER_TESTING_get_trait_uint32 (const struct TALER_TESTING_Command *cmd,
+                                unsigned int index,
+                                const uint32_t **n);
+
+
 /**
  * Offer number trait, 64-bit version.
  *
@@ -2364,6 +2423,31 @@ TALER_TESTING_get_trait_uint64 (const struct 
TALER_TESTING_Command *cmd,
                                 const uint64_t **n);
 
 
+/**
+ * Offer number trait, 64-bit signed version.
+ *
+ * @param index the number's index number.
+ * @param n number to offer.
+ */
+struct TALER_TESTING_Trait
+TALER_TESTING_make_trait_int64 (unsigned int index,
+                                const int64_t *n);
+
+
+/**
+ * Obtain a "number" value from @a cmd, 64-bit signed version.
+ *
+ * @param cmd command to extract the number from.
+ * @param index the number's index number.
+ * @param[out] n set to the number coming from @a cmd.
+ * @return #GNUNET_OK on success.
+ */
+int
+TALER_TESTING_get_trait_int64 (const struct TALER_TESTING_Command *cmd,
+                               unsigned int index,
+                               const int64_t **n);
+
+
 /**
  * Offer a number.
  *
@@ -2513,6 +2597,33 @@ TALER_TESTING_make_trait_exchange_keys (unsigned int 
index,
                                         const json_t *keys);
 
 
+/**
+ * Obtain json from @a cmd.
+ *
+ * @param cmd command to extract the json from.
+ * @param index index number associate with the json on offer.
+ * @param[out] json where to write the json.
+ * @return #GNUNET_OK on success.
+ */
+int
+TALER_TESTING_get_trait_json (const struct TALER_TESTING_Command *cmd,
+                              unsigned int index,
+                              const json_t **json);
+
+
+/**
+ * Offer json in a trait.
+ *
+ * @param index index number associate with the json
+ *        on offer.
+ * @param json json to offer.
+ * @return the trait.
+ */
+struct TALER_TESTING_Trait
+TALER_TESTING_make_trait_json (unsigned int index,
+                               const json_t *json);
+
+
 /**
  * Obtain a private key from a "merchant".  Used e.g. to obtain
  * a merchant's priv to sign a /track request.
@@ -2854,4 +2965,33 @@ TALER_TESTING_make_trait_absolute_time (
   unsigned int index,
   const struct GNUNET_TIME_Absolute *time);
 
+
+/**
+ * Obtain a relative time from @a cmd.
+ *
+ * @param cmd command to extract trait from
+ * @param index which time to pick if
+ *        @a cmd has multiple on offer.
+ * @param[out] time set to the wanted WTID.
+ * @return #GNUNET_OK on success
+ */
+int
+TALER_TESTING_get_trait_relative_time (
+  const struct TALER_TESTING_Command *cmd,
+  unsigned int index,
+  const struct GNUNET_TIME_Relative **time);
+
+
+/**
+ * Offer a relative time.
+ *
+ * @param index associate the object with this index
+ * @param time which object should be returned
+ * @return the trait.
+ */
+struct TALER_TESTING_Trait
+TALER_TESTING_make_trait_relative_time (
+  unsigned int index,
+  const struct GNUNET_TIME_Relative *time);
+
 #endif
diff --git a/src/include/taler_util.h b/src/include/taler_util.h
index c7bf9c02..22d7f7f2 100644
--- a/src/include/taler_util.h
+++ b/src/include/taler_util.h
@@ -298,4 +298,52 @@ char *
 TALER_xtalerbank_account_from_payto (const char *payto);
 
 
+/**
+ * Possible values for a binary filter.
+ */
+enum TALER_EXCHANGE_YesNoAll
+{
+  /**
+   * If condition is yes.
+   */
+  TALER_EXCHANGE_YNA_YES = 1,
+
+  /**
+  * If condition is no.
+  */
+  TALER_EXCHANGE_YNA_NO = 2,
+
+  /**
+   * Condition disabled.
+   */
+  TALER_EXCHANGE_YNA_ALL = 3
+};
+
+
+/**
+ * Convert query argument to @a yna value.
+ *
+ * @param connection connection to take query argument from
+ * @param arg argument to try for
+ * @param default_val value to assign if the argument is not present
+ * @param[out] value to set
+ * @return true on success, false if the parameter was malformed
+ */
+bool
+TALER_arg_to_yna (struct MHD_Connection *connection,
+                  const char *arg,
+                  enum TALER_EXCHANGE_YesNoAll default_val,
+                  enum TALER_EXCHANGE_YesNoAll *yna);
+
+
+/**
+ * Convert YNA value to a string.
+ *
+ * @param yna value to convert
+ * @return string representation ("yes"/"no"/"all").
+ */
+const char *
+TALER_yna_to_string (enum TALER_EXCHANGE_YesNoAll yna);
+
+
 #endif
diff --git a/src/lib/auditor_api_deposit_confirmation.c 
b/src/lib/auditor_api_deposit_confirmation.c
index cddfe8b1..1856a89f 100644
--- a/src/lib/auditor_api_deposit_confirmation.c
+++ b/src/lib/auditor_api_deposit_confirmation.c
@@ -148,7 +148,7 @@ handle_deposit_confirmation_finished (void *cls,
  *
  * @param h_wire hash of merchant wire details
  * @param h_contract_terms hash of the contact of the merchant with the 
customer (further details are never disclosed to the auditor)
- * @param timestamp timestamp when the contract was finalized, must not be too 
far in the future
+ * @param exchange_timestamp timestamp when the deposit was received by the 
wallet
  * @param refund_deadline date until which the merchant can issue a refund to 
the customer via the auditor (can be zero if refunds are not allowed); must not 
be after the @a wire_deadline
  * @param amount_without_fee the amount confirmed to be wired by the exchange 
to the merchant
  * @param coin_pub coin’s public key
@@ -165,7 +165,7 @@ handle_deposit_confirmation_finished (void *cls,
 static int
 verify_signatures (const struct GNUNET_HashCode *h_wire,
                    const struct GNUNET_HashCode *h_contract_terms,
-                   struct GNUNET_TIME_Absolute timestamp,
+                   struct GNUNET_TIME_Absolute exchange_timestamp,
                    struct GNUNET_TIME_Absolute refund_deadline,
                    const struct TALER_Amount *amount_without_fee,
                    const struct TALER_CoinSpendPublicKeyP *coin_pub,
@@ -184,7 +184,7 @@ verify_signatures (const struct GNUNET_HashCode *h_wire,
       .purpose.size = htonl (sizeof (dc)),
       .h_contract_terms = *h_contract_terms,
       .h_wire = *h_wire,
-      .timestamp = GNUNET_TIME_absolute_hton (timestamp),
+      .exchange_timestamp = GNUNET_TIME_absolute_hton (exchange_timestamp),
       .refund_deadline = GNUNET_TIME_absolute_hton (refund_deadline),
       .coin_pub = *coin_pub,
       .merchant = *merchant_pub
@@ -256,7 +256,7 @@ verify_signatures (const struct GNUNET_HashCode *h_wire,
  * @param auditor the auditor handle; the auditor must be ready to operate
  * @param h_wire hash of merchant wire details
  * @param h_contract_terms hash of the contact of the merchant with the 
customer (further details are never disclosed to the auditor)
- * @param timestamp timestamp when the contract was finalized, must not be too 
far in the future
+ * @param exchange_timestamp timestamp when deposit was received by the 
exchange
  * @param refund_deadline date until which the merchant can issue a refund to 
the customer via the auditor (can be zero if refunds are not allowed); must not 
be after the @a wire_deadline
  * @param amount_without_fee the amount confirmed to be wired by the exchange 
to the merchant
  * @param coin_pub coin’s public key
@@ -278,7 +278,7 @@ TALER_AUDITOR_deposit_confirmation (
   struct TALER_AUDITOR_Handle *auditor,
   const struct GNUNET_HashCode *h_wire,
   const struct GNUNET_HashCode *h_contract_terms,
-  struct GNUNET_TIME_Absolute timestamp,
+  struct GNUNET_TIME_Absolute exchange_timestamp,
   struct GNUNET_TIME_Absolute refund_deadline,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
@@ -298,7 +298,7 @@ TALER_AUDITOR_deposit_confirmation (
   json_t *deposit_confirmation_obj;
   CURL *eh;
 
-  (void) GNUNET_TIME_round_abs (&timestamp);
+  (void) GNUNET_TIME_round_abs (&exchange_timestamp);
   (void) GNUNET_TIME_round_abs (&refund_deadline);
   (void) GNUNET_TIME_round_abs (&ep_start);
   (void) GNUNET_TIME_round_abs (&ep_expire);
@@ -308,7 +308,7 @@ TALER_AUDITOR_deposit_confirmation (
   if (GNUNET_OK !=
       verify_signatures (h_wire,
                          h_contract_terms,
-                         timestamp,
+                         exchange_timestamp,
                          refund_deadline,
                          amount_without_fee,
                          coin_pub,
@@ -336,7 +336,8 @@ TALER_AUDITOR_deposit_confirmation (
                  "h_wire", GNUNET_JSON_from_data_auto (h_wire),
                  "h_contract_terms", GNUNET_JSON_from_data_auto (
                    h_contract_terms),
-                 "timestamp", GNUNET_JSON_from_time_abs (timestamp),
+                 "exchange_timestamp", GNUNET_JSON_from_time_abs (
+                   exchange_timestamp),
                  "refund_deadline", GNUNET_JSON_from_time_abs 
(refund_deadline),
                  "amount_without_fee", TALER_JSON_from_amount (
                    amount_without_fee),
diff --git a/src/lib/exchange_api_common.c b/src/lib/exchange_api_common.c
index 2cde8d13..e7e87487 100644
--- a/src/lib/exchange_api_common.c
+++ b/src/lib/exchange_api_common.c
@@ -146,11 +146,12 @@ TALER_EXCHANGE_parse_reserve_history (
     {
       struct TALER_ReserveSignatureP sig;
       struct TALER_WithdrawRequestPS withdraw_purpose;
+      struct TALER_Amount withdraw_fee;
       struct GNUNET_JSON_Specification withdraw_spec[] = {
         GNUNET_JSON_spec_fixed_auto ("reserve_sig",
                                      &sig),
-        TALER_JSON_spec_amount_nbo ("withdraw_fee",
-                                    &withdraw_purpose.withdraw_fee),
+        TALER_JSON_spec_amount ("withdraw_fee",
+                                &withdraw_fee),
         GNUNET_JSON_spec_fixed_auto ("h_denom_pub",
                                      &withdraw_purpose.h_denomination_pub),
         GNUNET_JSON_spec_fixed_auto ("h_coin_envelope",
@@ -189,26 +190,23 @@ TALER_EXCHANGE_parse_reserve_history (
       {
         const struct TALER_EXCHANGE_Keys *key_state;
         const struct TALER_EXCHANGE_DenomPublicKey *dki;
-        struct TALER_Amount fee;
 
         key_state = TALER_EXCHANGE_get_keys (exchange);
         dki = TALER_EXCHANGE_get_denomination_key_by_hash (key_state,
                                                            &withdraw_purpose.
                                                            h_denomination_pub);
-        TALER_amount_ntoh (&fee,
-                           &withdraw_purpose.withdraw_fee);
         if ( (GNUNET_YES !=
-              TALER_amount_cmp_currency (&fee,
+              TALER_amount_cmp_currency (&withdraw_fee,
                                          &dki->fee_withdraw)) ||
              (0 !=
-              TALER_amount_cmp (&fee,
+              TALER_amount_cmp (&withdraw_fee,
                                 &dki->fee_withdraw)) )
         {
           GNUNET_break_op (0);
           GNUNET_JSON_parse_free (withdraw_spec);
           return GNUNET_SYSERR;
         }
-        rh->details.withdraw.fee = fee;
+        rh->details.withdraw.fee = withdraw_fee;
       }
       rh->details.withdraw.out_authorization_sig
         = json_object_get (transaction,
@@ -526,7 +524,7 @@ TALER_EXCHANGE_verify_coin_history (
         GNUNET_JSON_spec_fixed_auto ("h_wire",
                                      &dr.h_wire),
         GNUNET_JSON_spec_absolute_time_nbo ("timestamp",
-                                            &dr.timestamp),
+                                            &dr.wallet_timestamp),
         GNUNET_JSON_spec_absolute_time_nbo ("refund_deadline",
                                             &dr.refund_deadline),
         TALER_JSON_spec_amount_nbo ("deposit_fee",
@@ -634,9 +632,16 @@ TALER_EXCHANGE_verify_coin_history (
     else if (0 == strcasecmp (type,
                               "REFUND"))
     {
-      struct TALER_RefundRequestPS rr;
       struct TALER_MerchantSignatureP sig;
+      struct TALER_Amount refund_fee;
+      struct TALER_RefundRequestPS rr = {
+        .purpose.size = htonl (sizeof (rr)),
+        .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_REFUND),
+        .coin_pub = *coin_pub
+      };
       struct GNUNET_JSON_Specification spec[] = {
+        TALER_JSON_spec_amount ("refund_fee",
+                                &refund_fee),
         GNUNET_JSON_spec_fixed_auto ("merchant_sig",
                                      &sig),
         GNUNET_JSON_spec_fixed_auto ("h_contract_terms",
@@ -645,8 +650,6 @@ TALER_EXCHANGE_verify_coin_history (
                                      &rr.merchant),
         GNUNET_JSON_spec_uint64 ("rtransaction_id",
                                  &rr.rtransaction_id),
-        TALER_JSON_spec_amount_nbo ("refund_fee",
-                                    &rr.refund_fee),
         GNUNET_JSON_spec_end ()
       };
 
@@ -658,9 +661,6 @@ TALER_EXCHANGE_verify_coin_history (
         GNUNET_break_op (0);
         return GNUNET_SYSERR;
       }
-      rr.purpose.size = htonl (sizeof (rr));
-      rr.purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_REFUND);
-      rr.coin_pub = *coin_pub;
       TALER_amount_hton (&rr.refund_amount,
                          &amount);
       if (GNUNET_OK !=
@@ -683,13 +683,11 @@ TALER_EXCHANGE_verify_coin_history (
       /* check that refund fee matches our expectations from /keys! */
       if (NULL != dk)
       {
-        TALER_amount_ntoh (&fee,
-                           &rr.refund_fee);
         if ( (GNUNET_YES !=
-              TALER_amount_cmp_currency (&fee,
+              TALER_amount_cmp_currency (&refund_fee,
                                          &dk->fee_refund)) ||
              (0 !=
-              TALER_amount_cmp (&fee,
+              TALER_amount_cmp (&refund_fee,
                                 &dk->fee_refund)) )
         {
           GNUNET_break_op (0);
diff --git a/src/lib/exchange_api_deposit.c b/src/lib/exchange_api_deposit.c
index 5f374993..351fa7a1 100644
--- a/src/lib/exchange_api_deposit.c
+++ b/src/lib/exchange_api_deposit.c
@@ -160,7 +160,7 @@ auditor_cb (void *cls,
     ah,
     &dh->depconf.h_wire,
     &dh->depconf.h_contract_terms,
-    GNUNET_TIME_absolute_ntoh (dh->depconf.timestamp),
+    GNUNET_TIME_absolute_ntoh (dh->depconf.exchange_timestamp),
     GNUNET_TIME_absolute_ntoh (dh->depconf.refund_deadline),
     &amount_without_fee,
     &dh->depconf.coin_pub,
@@ -196,8 +196,10 @@ verify_deposit_signature_ok (struct 
TALER_EXCHANGE_DepositHandle *dh,
 {
   const struct TALER_EXCHANGE_Keys *key_state;
   struct GNUNET_JSON_Specification spec[] = {
-    GNUNET_JSON_spec_fixed_auto ("sig", exchange_sig),
-    GNUNET_JSON_spec_fixed_auto ("pub", exchange_pub),
+    GNUNET_JSON_spec_fixed_auto ("exchange_sig", exchange_sig),
+    GNUNET_JSON_spec_fixed_auto ("exchange_pub", exchange_pub),
+    GNUNET_JSON_spec_absolute_time_nbo ("exchange_timestamp",
+                                        &dh->depconf.exchange_timestamp),
     GNUNET_JSON_spec_end ()
   };
 
@@ -386,6 +388,7 @@ handle_deposit_finished (void *cls,
   }
   dh->cb (dh->cb_cls,
           &hr,
+          GNUNET_TIME_absolute_ntoh (dh->depconf.exchange_timestamp),
           es,
           ep);
   TALER_EXCHANGE_deposit_cancel (dh);
@@ -429,7 +432,7 @@ verify_signatures (const struct 
TALER_EXCHANGE_DenomPublicKey *dki,
       .purpose.size = htonl (sizeof (dr)),
       .h_contract_terms = *h_contract_terms,
       .h_wire = *h_wire,
-      .timestamp = GNUNET_TIME_absolute_hton (timestamp),
+      .wallet_timestamp = GNUNET_TIME_absolute_hton (timestamp),
       .refund_deadline = GNUNET_TIME_absolute_hton (refund_deadline),
       .merchant = *merchant_pub,
       .coin_pub = *coin_pub
@@ -487,6 +490,59 @@ verify_signatures (const struct 
TALER_EXCHANGE_DenomPublicKey *dki,
 }
 
 
+/**
+ * Sign a deposit permission.  Function for wallets.
+ *
+ * @param amount the amount to be deposited
+ * @param deposit_fee the deposit fee we expect to pay
+ * @param h_wire hash of the merchant’s account details
+ * @param h_contract_terms hash of the contact of the merchant with the 
customer (further details are never disclosed to the exchange)
+ * @param coin_priv coin’s private key
+ * @param wallet_timestamp timestamp when the contract was finalized, must not 
be too far in the future
+ * @param merchant_pub the public key of the merchant (used to identify the 
merchant for refund requests)
+ * @param refund_deadline date until which the merchant can issue a refund to 
the customer via the exchange (can be zero if refunds are not allowed); must 
not be after the @a wire_deadline
+ * @param[out] coin_sig set to the signature made with purpose 
#TALER_SIGNATURE_WALLET_COIN_DEPOSIT
+ */
+void
+TALER_EXCHANGE_deposit_permission_sign (
+  const struct TALER_Amount *amount,
+  const struct TALER_Amount *deposit_fee,
+  const struct GNUNET_HashCode *h_wire,
+  const struct GNUNET_HashCode *h_contract_terms,
+  const struct TALER_CoinSpendPrivateKeyP *coin_priv,
+  struct GNUNET_TIME_Absolute wallet_timestamp,
+  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  struct GNUNET_TIME_Absolute refund_deadline,
+  struct TALER_CoinSpendSignatureP *coin_sig)
+{
+  struct TALER_DepositRequestPS dr = {
+    .purpose.size = htonl
+                      (sizeof (dr)),
+    .purpose.purpose = htonl
+                         (TALER_SIGNATURE_WALLET_COIN_DEPOSIT),
+    .h_contract_terms = *h_contract_terms,
+    .h_wire = *h_wire,
+    .wallet_timestamp = GNUNET_TIME_absolute_hton (wallet_timestamp),
+    .refund_deadline = GNUNET_TIME_absolute_hton (refund_deadline),
+    .merchant = *merchant_pub
+  };
+
+  GNUNET_assert (GNUNET_OK ==
+                 GNUNET_TIME_round_abs (&wallet_timestamp));
+  GNUNET_assert (GNUNET_OK ==
+                 GNUNET_TIME_round_abs (&refund_deadline));
+  GNUNET_CRYPTO_eddsa_key_get_public (&coin_priv->eddsa_priv,
+                                      &dr.coin_pub.eddsa_pub);
+  TALER_amount_hton (&dr.amount_with_fee,
+                     amount);
+  TALER_amount_hton (&dr.deposit_fee,
+                     deposit_fee);
+  GNUNET_CRYPTO_eddsa_sign (&coin_priv->eddsa_priv,
+                            &dr,
+                            &coin_sig->eddsa_signature);
+}
+
+
 /**
  * Submit a deposit permission to the exchange and get the exchange's response.
  * Note that while we return the response verbatim to the caller for
@@ -658,7 +714,7 @@ TALER_EXCHANGE_deposit (struct TALER_EXCHANGE_Handle 
*exchange,
     TALER_SIGNATURE_EXCHANGE_CONFIRM_DEPOSIT);
   dh->depconf.h_contract_terms = *h_contract_terms;
   dh->depconf.h_wire = h_wire;
-  dh->depconf.timestamp = GNUNET_TIME_absolute_hton (timestamp);
+  /* dh->depconf.exchange_timestamp; -- initialized later from exchange reply! 
*/
   dh->depconf.refund_deadline = GNUNET_TIME_absolute_hton (refund_deadline);
   TALER_amount_hton (&dh->depconf.amount_without_fee,
                      &amount_without_fee);
diff --git a/src/lib/exchange_api_deposits_get.c 
b/src/lib/exchange_api_deposits_get.c
index aecd8824..004a24d4 100644
--- a/src/lib/exchange_api_deposits_get.c
+++ b/src/lib/exchange_api_deposits_get.c
@@ -33,7 +33,7 @@
 
 
 /**
- * @brief A Deposit Wtid Handle
+ * @brief A Deposit Get Handle
  */
 struct TALER_EXCHANGE_DepositGetHandle
 {
@@ -84,31 +84,19 @@ struct TALER_EXCHANGE_DepositGetHandle
  *
  * @param dwh deposit wtid handle
  * @param json json reply with the signature
- * @param[out] exchange_pub set to the exchange's public key
+ * @param exchange_pub the exchange's public key
+ * @param exchange_sig the exchange's signature
  * @return #GNUNET_OK if the signature is valid, #GNUNET_SYSERR if not
  */
 static int
 verify_deposit_wtid_signature_ok (
   const struct TALER_EXCHANGE_DepositGetHandle *dwh,
   const json_t *json,
-  struct TALER_ExchangePublicKeyP *exchange_pub)
+  const struct TALER_ExchangePublicKeyP *exchange_pub,
+  const struct TALER_ExchangeSignatureP *exchange_sig)
 {
-  struct TALER_ExchangeSignatureP exchange_sig;
   const struct TALER_EXCHANGE_Keys *key_state;
-  struct GNUNET_JSON_Specification spec[] = {
-    GNUNET_JSON_spec_fixed_auto ("exchange_sig", &exchange_sig),
-    GNUNET_JSON_spec_fixed_auto ("exchange_pub", exchange_pub),
-    GNUNET_JSON_spec_end ()
-  };
 
-  if (GNUNET_OK !=
-      GNUNET_JSON_parse (json,
-                         spec,
-                         NULL, NULL))
-  {
-    GNUNET_break_op (0);
-    return GNUNET_SYSERR;
-  }
   key_state = TALER_EXCHANGE_get_keys (dwh->exchange);
   if (GNUNET_OK !=
       TALER_EXCHANGE_test_signing_key (key_state,
@@ -120,7 +108,7 @@ verify_deposit_wtid_signature_ok (
   if (GNUNET_OK !=
       GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE,
                                   &dwh->depconf,
-                                  &exchange_sig.eddsa_signature,
+                                  &exchange_sig->eddsa_signature,
                                   &exchange_pub->eddsa_pub))
   {
     GNUNET_break_op (0);
@@ -144,12 +132,6 @@ handle_deposit_wtid_finished (void *cls,
                               const void *response)
 {
   struct TALER_EXCHANGE_DepositGetHandle *dwh = cls;
-  const struct TALER_WireTransferIdentifierRawP *wtid = NULL;
-  struct GNUNET_TIME_Absolute execution_time = GNUNET_TIME_UNIT_FOREVER_ABS;
-  const struct TALER_Amount *coin_contribution = NULL;
-  struct TALER_Amount coin_contribution_s;
-  struct TALER_ExchangePublicKeyP exchange_pub;
-  struct TALER_ExchangePublicKeyP *ep = NULL;
   const json_t *j = response;
   struct TALER_EXCHANGE_HttpResponse hr = {
     .reply = j,
@@ -164,10 +146,13 @@ handle_deposit_wtid_finished (void *cls,
     break;
   case MHD_HTTP_OK:
     {
+      struct TALER_EXCHANGE_DepositData dd;
       struct GNUNET_JSON_Specification spec[] = {
         GNUNET_JSON_spec_fixed_auto ("wtid", &dwh->depconf.wtid),
-        GNUNET_JSON_spec_absolute_time ("execution_time", &execution_time),
-        TALER_JSON_spec_amount ("coin_contribution", &coin_contribution_s),
+        GNUNET_JSON_spec_absolute_time ("execution_time", &dd.execution_time),
+        TALER_JSON_spec_amount ("coin_contribution", &dd.coin_contribution),
+        GNUNET_JSON_spec_fixed_auto ("exchange_sig", &dd.exchange_sig),
+        GNUNET_JSON_spec_fixed_auto ("exchange_pub", &dd.exchange_pub),
         GNUNET_JSON_spec_end ()
       };
 
@@ -181,15 +166,15 @@ handle_deposit_wtid_finished (void *cls,
         hr.ec = TALER_EC_DEPOSITS_INVALID_BODY_BY_EXCHANGE;
         break;
       }
-      wtid = &dwh->depconf.wtid;
-      dwh->depconf.execution_time = GNUNET_TIME_absolute_hton (execution_time);
+      dwh->depconf.execution_time = GNUNET_TIME_absolute_hton (
+        dd.execution_time);
       TALER_amount_hton (&dwh->depconf.coin_contribution,
-                         &coin_contribution_s);
-      coin_contribution = &coin_contribution_s;
+                         &dd.coin_contribution);
       if (GNUNET_OK !=
           verify_deposit_wtid_signature_ok (dwh,
                                             j,
-                                            &exchange_pub))
+                                            &dd.exchange_pub,
+                                            &dd.exchange_sig))
       {
         GNUNET_break_op (0);
         hr.http_status = 0;
@@ -197,13 +182,19 @@ handle_deposit_wtid_finished (void *cls,
       }
       else
       {
-        ep = &exchange_pub;
+        dd.wtid = dwh->depconf.wtid;
+        dwh->cb (dwh->cb_cls,
+                 &hr,
+                 &dd);
+        TALER_EXCHANGE_deposits_get_cancel (dwh);
+        return;
       }
     }
     break;
   case MHD_HTTP_ACCEPTED:
     {
       /* Transaction known, but not executed yet */
+      struct GNUNET_TIME_Absolute execution_time;
       struct GNUNET_JSON_Specification spec[] = {
         GNUNET_JSON_spec_absolute_time ("execution_time", &execution_time),
         GNUNET_JSON_spec_end ()
@@ -219,6 +210,18 @@ handle_deposit_wtid_finished (void *cls,
         hr.ec = TALER_EC_DEPOSITS_INVALID_BODY_BY_EXCHANGE;
         break;
       }
+      else
+      {
+        struct TALER_EXCHANGE_DepositData dd = {
+          .execution_time = execution_time
+        };
+
+        dwh->cb (dwh->cb_cls,
+                 &hr,
+                 &dd);
+        TALER_EXCHANGE_deposits_get_cancel (dwh);
+        return;
+      }
     }
     break;
   case MHD_HTTP_BAD_REQUEST:
@@ -259,10 +262,7 @@ handle_deposit_wtid_finished (void *cls,
   }
   dwh->cb (dwh->cb_cls,
            &hr,
-           ep,
-           wtid,
-           execution_time,
-           coin_contribution);
+           NULL);
   TALER_EXCHANGE_deposits_get_cancel (dwh);
 }
 
diff --git a/src/lib/exchange_api_handle.c b/src/lib/exchange_api_handle.c
index 6fa8979d..283f7704 100644
--- a/src/lib/exchange_api_handle.c
+++ b/src/lib/exchange_api_handle.c
@@ -39,7 +39,7 @@
  * Which version of the Taler protocol is implemented
  * by this library?  Used to determine compatibility.
  */
-#define EXCHANGE_PROTOCOL_CURRENT 7
+#define EXCHANGE_PROTOCOL_CURRENT 8
 
 /**
  * How many versions are we backwards compatible with?
diff --git a/src/lib/exchange_api_melt.c b/src/lib/exchange_api_melt.c
index f89036e4..0695f997 100644
--- a/src/lib/exchange_api_melt.c
+++ b/src/lib/exchange_api_melt.c
@@ -445,11 +445,11 @@ TALER_EXCHANGE_melt (struct TALER_EXCHANGE_Handle 
*exchange,
     char pub_str[sizeof (struct TALER_CoinSpendPublicKeyP) * 2];
     char *end;
 
-    end = GNUNET_STRINGS_data_to_string (&melt.coin_pub,
-                                         sizeof (struct
-                                                 TALER_CoinSpendPublicKeyP),
-                                         pub_str,
-                                         sizeof (pub_str));
+    end = GNUNET_STRINGS_data_to_string (
+      &melt.coin_pub,
+      sizeof (struct TALER_CoinSpendPublicKeyP),
+      pub_str,
+      sizeof (pub_str));
     *end = '\0';
     GNUNET_snprintf (arg_str,
                      sizeof (arg_str),
diff --git a/src/lib/exchange_api_refund.c b/src/lib/exchange_api_refund.c
index c64dcc97..1af1f14b 100644
--- a/src/lib/exchange_api_refund.c
+++ b/src/lib/exchange_api_refund.c
@@ -81,23 +81,23 @@ struct TALER_EXCHANGE_RefundHandle
  * Verify that the signature on the "200 OK" response
  * from the exchange is valid.
  *
- * @param rh refund handle
+ * @param[in,out] rh refund handle (refund fee added)
  * @param json json reply with the signature
  * @param[out] exchange_pub set to the exchange's public key
  * @param[out] exchange_sig set to the exchange's signature
  * @return #GNUNET_OK if the signature is valid, #GNUNET_SYSERR if not
  */
 static int
-verify_refund_signature_ok (const struct TALER_EXCHANGE_RefundHandle *rh,
+verify_refund_signature_ok (struct TALER_EXCHANGE_RefundHandle *rh,
                             const json_t *json,
                             struct TALER_ExchangePublicKeyP *exchange_pub,
                             struct TALER_ExchangeSignatureP *exchange_sig)
-
 {
   const struct TALER_EXCHANGE_Keys *key_state;
   struct GNUNET_JSON_Specification spec[] = {
-    GNUNET_JSON_spec_fixed_auto ("sig", exchange_sig),
-    GNUNET_JSON_spec_fixed_auto ("pub", exchange_pub),
+    GNUNET_JSON_spec_fixed_auto ("exchange_sig", exchange_sig),
+    GNUNET_JSON_spec_fixed_auto ("exchange_pub", exchange_pub),
+    TALER_JSON_spec_amount_nbo ("refund_fee", &rh->depconf.refund_fee),
     GNUNET_JSON_spec_end ()
   };
 
@@ -148,12 +148,15 @@ handle_refund_finished (void *cls,
   struct TALER_ExchangeSignatureP exchange_sig;
   struct TALER_ExchangePublicKeyP *ep = NULL;
   struct TALER_ExchangeSignatureP *es = NULL;
+  struct TALER_Amount ra;
+  const struct TALER_Amount *rf = NULL;
   const json_t *j = response;
   struct TALER_EXCHANGE_HttpResponse hr = {
     .reply = j,
     .http_status = (unsigned int) response_code
   };
 
+
   rh->job = NULL;
   switch (response_code)
   {
@@ -175,6 +178,9 @@ handle_refund_finished (void *cls,
     {
       ep = &exchange_pub;
       es = &exchange_sig;
+      TALER_amount_ntoh (&ra,
+                         &rh->depconf.refund_fee);
+      rf = &ra;
     }
     break;
   case MHD_HTTP_BAD_REQUEST:
@@ -233,6 +239,7 @@ handle_refund_finished (void *cls,
   }
   rh->cb (rh->cb_cls,
           &hr,
+          rf,
           ep,
           es);
   TALER_EXCHANGE_refund_cancel (rh);
@@ -256,7 +263,6 @@ handle_refund_finished (void *cls,
  * @param amount the amount to be refunded; must be larger than the refund fee
  *        (as that fee is still being subtracted), and smaller than the amount
  *        (with deposit fee) of the original deposit contribution of this coin
- * @param refund_fee fee applicable to this coin for the refund
  * @param h_contract_terms hash of the contact of the merchant with the 
customer that is being refunded
  * @param coin_pub coin’s public key of the coin from the original deposit 
operation
  * @param rtransaction_id transaction id for the transaction between merchant 
and customer (of refunding operation);
@@ -272,7 +278,6 @@ handle_refund_finished (void *cls,
 struct TALER_EXCHANGE_RefundHandle *
 TALER_EXCHANGE_refund (struct TALER_EXCHANGE_Handle *exchange,
                        const struct TALER_Amount *amount,
-                       const struct TALER_Amount *refund_fee,
                        const struct GNUNET_HashCode *h_contract_terms,
                        const struct TALER_CoinSpendPublicKeyP *coin_pub,
                        uint64_t rtransaction_id,
@@ -294,14 +299,11 @@ TALER_EXCHANGE_refund (struct TALER_EXCHANGE_Handle 
*exchange,
   rr.rtransaction_id = GNUNET_htonll (rtransaction_id);
   TALER_amount_hton (&rr.refund_amount,
                      amount);
-  TALER_amount_hton (&rr.refund_fee,
-                     refund_fee);
   GNUNET_CRYPTO_eddsa_sign (&merchant_priv->eddsa_priv,
                             &rr,
                             &merchant_sig.eddsa_sig);
   return TALER_EXCHANGE_refund2 (exchange,
                                  amount,
-                                 refund_fee,
                                  h_contract_terms,
                                  coin_pub,
                                  rtransaction_id,
@@ -329,7 +331,6 @@ TALER_EXCHANGE_refund (struct TALER_EXCHANGE_Handle 
*exchange,
  * @param amount the amount to be refunded; must be larger than the refund fee
  *        (as that fee is still being subtracted), and smaller than the amount
  *        (with deposit fee) of the original deposit contribution of this coin
- * @param refund_fee fee applicable to this coin for the refund
  * @param h_contract_terms hash of the contact of the merchant with the 
customer that is being refunded
  * @param coin_pub coin’s public key of the coin from the original deposit 
operation
  * @param rtransaction_id transaction id for the transaction between merchant 
and customer (of refunding operation);
@@ -346,7 +347,6 @@ TALER_EXCHANGE_refund (struct TALER_EXCHANGE_Handle 
*exchange,
 struct TALER_EXCHANGE_RefundHandle *
 TALER_EXCHANGE_refund2 (struct TALER_EXCHANGE_Handle *exchange,
                         const struct TALER_Amount *amount,
-                        const struct TALER_Amount *refund_fee,
                         const struct GNUNET_HashCode *h_contract_terms,
                         const struct TALER_CoinSpendPublicKeyP *coin_pub,
                         uint64_t rtransaction_id,
@@ -376,12 +376,11 @@ TALER_EXCHANGE_refund2 (struct TALER_EXCHANGE_Handle 
*exchange,
                      "/coins/%s/refund",
                      pub_str);
   }
-  refund_obj = json_pack ("{s:o, s:o," /* amount/fee */
+  refund_obj = json_pack ("{s:o," /* amount */
                           " s:o," /* h_contract_terms */
                           " s:I," /* rtransaction id */
                           " s:o, s:o}", /* merchant_pub, merchant_sig */
                           "refund_amount", TALER_JSON_from_amount (amount),
-                          "refund_fee", TALER_JSON_from_amount (refund_fee),
                           "h_contract_terms", GNUNET_JSON_from_data_auto (
                             h_contract_terms),
                           "rtransaction_id", (json_int_t) rtransaction_id,
@@ -410,8 +409,6 @@ TALER_EXCHANGE_refund2 (struct TALER_EXCHANGE_Handle 
*exchange,
   rh->depconf.rtransaction_id = GNUNET_htonll (rtransaction_id);
   TALER_amount_hton (&rh->depconf.refund_amount,
                      amount);
-  TALER_amount_hton (&rh->depconf.refund_fee,
-                     refund_fee);
 
   eh = TALER_EXCHANGE_curl_easy_get_ (rh->url);
   if ( (NULL == eh) ||
diff --git a/src/lib/exchange_api_transfers_get.c 
b/src/lib/exchange_api_transfers_get.c
index 55253695..6b5bba8e 100644
--- a/src/lib/exchange_api_transfers_get.c
+++ b/src/lib/exchange_api_transfers_get.c
@@ -85,24 +85,18 @@ check_transfers_get_response_ok (
   const json_t *json)
 {
   json_t *details_j;
-  struct GNUNET_HashCode h_wire;
-  struct GNUNET_TIME_Absolute exec_time;
-  struct TALER_Amount total_amount;
+  struct TALER_EXCHANGE_TransferData td;
   struct TALER_Amount total_expected;
-  struct TALER_Amount wire_fee;
   struct TALER_MerchantPublicKeyP merchant_pub;
-  unsigned int num_details;
-  struct TALER_ExchangePublicKeyP exchange_pub;
-  struct TALER_ExchangeSignatureP exchange_sig;
   struct GNUNET_JSON_Specification spec[] = {
-    TALER_JSON_spec_amount ("total", &total_amount),
-    TALER_JSON_spec_amount ("wire_fee", &wire_fee),
+    TALER_JSON_spec_amount ("total", &td.total_amount),
+    TALER_JSON_spec_amount ("wire_fee", &td.wire_fee),
     GNUNET_JSON_spec_fixed_auto ("merchant_pub", &merchant_pub),
-    GNUNET_JSON_spec_fixed_auto ("h_wire", &h_wire),
-    GNUNET_JSON_spec_absolute_time ("execution_time", &exec_time),
+    GNUNET_JSON_spec_fixed_auto ("h_wire", &td.h_wire),
+    GNUNET_JSON_spec_absolute_time ("execution_time", &td.execution_time),
     GNUNET_JSON_spec_json ("deposits", &details_j),
-    GNUNET_JSON_spec_fixed_auto ("exchange_sig", &exchange_sig),
-    GNUNET_JSON_spec_fixed_auto ("exchange_pub", &exchange_pub),
+    GNUNET_JSON_spec_fixed_auto ("exchange_sig", &td.exchange_sig),
+    GNUNET_JSON_spec_fixed_auto ("exchange_pub", &td.exchange_pub),
     GNUNET_JSON_spec_end ()
   };
   struct TALER_EXCHANGE_HttpResponse hr = {
@@ -119,22 +113,32 @@ check_transfers_get_response_ok (
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
-      TALER_amount_get_zero (total_amount.currency,
+      TALER_amount_get_zero (td.total_amount.currency,
                              &total_expected))
   {
     GNUNET_break_op (0);
+    GNUNET_JSON_parse_free (spec);
     return GNUNET_SYSERR;
   }
-  num_details = json_array_size (details_j);
+  if (GNUNET_OK !=
+      TALER_EXCHANGE_test_signing_key (
+        TALER_EXCHANGE_get_keys (wdh->exchange),
+        &td.exchange_pub))
+  {
+    GNUNET_break_op (0);
+    GNUNET_JSON_parse_free (spec);
+    return GNUNET_SYSERR;
+  }
+  td.details_length = json_array_size (details_j);
   {
-    struct TALER_TrackTransferDetails details[num_details];
-    unsigned int i;
     struct GNUNET_HashContext *hash_context;
-    struct TALER_WireDepositDetailP dd;
-    struct TALER_WireDepositDataPS wdp;
+    struct TALER_TrackTransferDetails *details;
 
+    details = GNUNET_new_array (td.details_length,
+                                struct TALER_TrackTransferDetails);
+    td.details = details;
     hash_context = GNUNET_CRYPTO_hash_context_start ();
-    for (i = 0; i<num_details; i++)
+    for (unsigned int i = 0; i<td.details_length; i++)
     {
       struct TALER_TrackTransferDetails *detail = &details[i];
       struct json_t *detail_j = json_array_get (details_j, i);
@@ -147,25 +151,17 @@ check_transfers_get_response_ok (
         GNUNET_JSON_spec_end ()
       };
 
-      if (GNUNET_OK !=
-          GNUNET_JSON_parse (detail_j,
-                             spec_detail,
-                             NULL, NULL))
-      {
-        GNUNET_break_op (0);
-        GNUNET_CRYPTO_hash_context_abort (hash_context);
-        GNUNET_JSON_parse_free (spec);
-        return GNUNET_SYSERR;
-      }
-      /* build up big hash for signature checking later */
-      dd.h_contract_terms = detail->h_contract_terms;
-      dd.execution_time = GNUNET_TIME_absolute_hton (exec_time);
-      dd.coin_pub = detail->coin_pub;
-      TALER_amount_hton (&dd.deposit_value,
-                         &detail->coin_value);
-      TALER_amount_hton (&dd.deposit_fee,
-                         &detail->coin_fee);
-      if ( (0 >
+      if ( (GNUNET_OK !=
+            GNUNET_JSON_parse (detail_j,
+                               spec_detail,
+                               NULL, NULL)) ||
+           (GNUNET_OK !=
+            TALER_amount_cmp_currency (&total_expected,
+                                       &detail->coin_value)) ||
+           (GNUNET_OK !=
+            TALER_amount_cmp_currency (&total_expected,
+                                       &detail->coin_fee)) ||
+           (0 >
             TALER_amount_add (&total_expected,
                               &total_expected,
                               &detail->coin_value)) ||
@@ -177,71 +173,78 @@ check_transfers_get_response_ok (
         GNUNET_break_op (0);
         GNUNET_CRYPTO_hash_context_abort (hash_context);
         GNUNET_JSON_parse_free (spec);
+        GNUNET_free (details);
         return GNUNET_SYSERR;
       }
-      GNUNET_CRYPTO_hash_context_read (
-        hash_context,
-        &dd,
-        sizeof (struct TALER_WireDepositDetailP));
+      /* build up big hash for signature checking later */
+      {
+        struct TALER_WireDepositDetailP dd;
+
+        dd.h_contract_terms = detail->h_contract_terms;
+        dd.execution_time = GNUNET_TIME_absolute_hton (td.execution_time);
+        dd.coin_pub = detail->coin_pub;
+        TALER_amount_hton (&dd.deposit_value,
+                           &detail->coin_value);
+        TALER_amount_hton (&dd.deposit_fee,
+                           &detail->coin_fee);
+        GNUNET_CRYPTO_hash_context_read (hash_context,
+                                         &dd,
+                                         sizeof (dd));
+      }
     }
     /* Check signature */
-    wdp.purpose.purpose = htonl 
(TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT);
-    wdp.purpose.size = htonl (sizeof (struct TALER_WireDepositDataPS));
-    TALER_amount_hton (&wdp.total,
-                       &total_amount);
-    TALER_amount_hton (&wdp.wire_fee,
-                       &wire_fee);
-    wdp.merchant_pub = merchant_pub;
-    wdp.h_wire = h_wire;
-    GNUNET_CRYPTO_hash_context_finish (hash_context,
-                                       &wdp.h_details);
-    if (GNUNET_OK !=
-        TALER_EXCHANGE_test_signing_key (TALER_EXCHANGE_get_keys (
-                                           wdh->exchange),
-                                         &exchange_pub))
     {
-      GNUNET_break_op (0);
-      GNUNET_JSON_parse_free (spec);
-      return GNUNET_SYSERR;
-    }
-    if (GNUNET_OK !=
-        GNUNET_CRYPTO_eddsa_verify (
-          TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT,
-          &wdp,
-          &exchange_sig.eddsa_signature,
-          &exchange_pub.eddsa_pub))
-    {
-      GNUNET_break_op (0);
-      GNUNET_JSON_parse_free (spec);
-      return GNUNET_SYSERR;
+      struct TALER_WireDepositDataPS wdp = {
+        .purpose.purpose = htonl (
+          TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT),
+        .purpose.size = htonl (sizeof (wdp)),
+        .merchant_pub = merchant_pub,
+        .h_wire = td.h_wire
+      };
+
+      TALER_amount_hton (&wdp.total,
+                         &td.total_amount);
+      TALER_amount_hton (&wdp.wire_fee,
+                         &td.wire_fee);
+      GNUNET_CRYPTO_hash_context_finish (hash_context,
+                                         &wdp.h_details);
+      if (GNUNET_OK !=
+          GNUNET_CRYPTO_eddsa_verify (
+            TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT,
+            &wdp,
+            &td.exchange_sig.eddsa_signature,
+            &td.exchange_pub.eddsa_pub))
+      {
+        GNUNET_break_op (0);
+        GNUNET_JSON_parse_free (spec);
+        GNUNET_free (details);
+        return GNUNET_SYSERR;
+      }
     }
 
     if (0 >
         TALER_amount_subtract (&total_expected,
                                &total_expected,
-                               &wire_fee))
+                               &td.wire_fee))
     {
       GNUNET_break_op (0);
       GNUNET_JSON_parse_free (spec);
+      GNUNET_free (details);
       return GNUNET_SYSERR;
     }
     if (0 !=
         TALER_amount_cmp (&total_expected,
-                          &total_amount))
+                          &td.total_amount))
     {
       GNUNET_break_op (0);
       GNUNET_JSON_parse_free (spec);
+      GNUNET_free (details);
       return GNUNET_SYSERR;
     }
     wdh->cb (wdh->cb_cls,
              &hr,
-             &exchange_pub,
-             &h_wire,
-             exec_time,
-             &total_amount,
-             &wire_fee,
-             num_details,
-             details);
+             &td);
+    GNUNET_free (details);
   }
   GNUNET_JSON_parse_free (spec);
   TALER_EXCHANGE_transfers_get_cancel (wdh);
@@ -322,12 +325,7 @@ handle_transfers_get_finished (void *cls,
   }
   wdh->cb (wdh->cb_cls,
            &hr,
-           NULL,
-           NULL,
-           GNUNET_TIME_UNIT_ZERO_ABS,
-           NULL,
-           NULL,
-           0, NULL);
+           NULL);
   TALER_EXCHANGE_transfers_get_cancel (wdh);
 }
 
diff --git a/src/lib/exchange_api_withdraw2.c b/src/lib/exchange_api_withdraw2.c
index f9468927..25f66914 100644
--- a/src/lib/exchange_api_withdraw2.c
+++ b/src/lib/exchange_api_withdraw2.c
@@ -429,8 +429,6 @@ TALER_EXCHANGE_withdraw2 (
 
     TALER_amount_hton (&req.amount_with_fee,
                        &wh->requested_amount);
-    TALER_amount_hton (&req.withdraw_fee,
-                       &dk->fee_withdraw);
     GNUNET_CRYPTO_hash (pd->coin_ev,
                         pd->coin_ev_size,
                         &req.h_coin_envelope);
diff --git a/src/mhd/mhd_parsing.c b/src/mhd/mhd_parsing.c
index fca54f3f..2a086e11 100644
--- a/src/mhd/mhd_parsing.c
+++ b/src/mhd/mhd_parsing.c
@@ -1,6 +1,6 @@
 /*
   This file is part of TALER
-  Copyright (C) 2014--2019 Taler Systems SA
+  Copyright (C) 2014--2020 Taler Systems SA
 
   TALER is free software; you can redistribute it and/or modify it under the
   terms of the GNU Affero General Public License as published by the Free 
Software
@@ -56,7 +56,7 @@
  *               (we could not even queue an error message,
  *                close HTTP session with MHD_NO)
  */
-int
+enum GNUNET_GenericReturnValue
 TALER_MHD_parse_post_json (struct MHD_Connection *connection,
                            void **con_cls,
                            const char *upload_data,
@@ -186,12 +186,12 @@ TALER_MHD_parse_request_arg_data (struct MHD_Connection 
*connection,
  *    #GNUNET_NO if json is malformed, error response was generated
  *    #GNUNET_SYSERR on internal error
  */
-int
+enum GNUNET_GenericReturnValue
 TALER_MHD_parse_json_data (struct MHD_Connection *connection,
                            const json_t *root,
                            struct GNUNET_JSON_Specification *spec)
 {
-  int ret;
+  enum GNUNET_GenericReturnValue ret;
   const char *error_json_name;
   unsigned int error_line;
 
@@ -220,6 +220,58 @@ TALER_MHD_parse_json_data (struct MHD_Connection 
*connection,
 }
 
 
+/**
+ * Parse JSON object that we (the server!) generated into components based on
+ * the given field specification.  The difference to
+ * #TALER_MHD_parse_json_data() is that this function will fail
+ * with an HTTP failure of 500 (internal server error) in case
+ * parsing fails, instead of blaming it on the client with a
+ * 400 (#MHD_HTTP_BAD_REQUEST).
+ *
+ * @param connection the connection to send an error response to
+ * @param root the JSON node to start the navigation at.
+ * @param spec field specification for the parser
+ * @return
+ *    #GNUNET_YES if navigation was successful (caller is responsible
+ *                for freeing allocated variable-size data using
+ *                GNUNET_JSON_parse_free() when done)
+ *    #GNUNET_NO if json is malformed, error response was generated
+ *    #GNUNET_SYSERR on internal error
+ */
+enum GNUNET_GenericReturnValue
+TALER_MHD_parse_internal_json_data (struct MHD_Connection *connection,
+                                    const json_t *root,
+                                    struct GNUNET_JSON_Specification *spec)
+{
+  enum GNUNET_GenericReturnValue ret;
+  const char *error_json_name;
+  unsigned int error_line;
+
+  ret = GNUNET_JSON_parse (root,
+                           spec,
+                           &error_json_name,
+                           &error_line);
+  if (GNUNET_SYSERR == ret)
+  {
+    if (NULL == error_json_name)
+      error_json_name = "<no field>";
+    ret = (MHD_YES ==
+           TALER_MHD_reply_json_pack (connection,
+                                      MHD_HTTP_INTERNAL_SERVER_ERROR,
+                                      "{s:s, s:I, s:s, s:I}",
+                                      "hint", "JSON parse error",
+                                      "code",
+                                      (json_int_t)
+                                      TALER_EC_INTERNAL_INVARIANT_FAILURE,
+                                      "field", error_json_name,
+                                      "line", (json_int_t) error_line))
+          ? GNUNET_NO : GNUNET_SYSERR;
+    return ret;
+  }
+  return GNUNET_YES;
+}
+
+
 /**
  * Parse JSON array into components based on the given field
  * specification.  Generates error response on parse errors.
@@ -235,13 +287,13 @@ TALER_MHD_parse_json_data (struct MHD_Connection 
*connection,
  *    #GNUNET_NO if json is malformed, error response was generated
  *    #GNUNET_SYSERR on internal error
  */
-int
+enum GNUNET_GenericReturnValue
 TALER_MHD_parse_json_array (struct MHD_Connection *connection,
                             const json_t *root,
                             struct GNUNET_JSON_Specification *spec,
                             ...)
 {
-  int ret;
+  enum GNUNET_GenericReturnValue ret;
   const char *error_json_name;
   unsigned int error_line;
   va_list ap;
diff --git a/src/pq/Makefile.am b/src/sq/Makefile.am
similarity index 57%
copy from src/pq/Makefile.am
copy to src/sq/Makefile.am
index 2ade01e0..ee4c5eba 100644
--- a/src/pq/Makefile.am
+++ b/src/sq/Makefile.am
@@ -1,5 +1,5 @@
 # This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include $(LIBGCRYPT_CFLAGS) 
$(POSTGRESQL_CPPFLAGS)
+AM_CPPFLAGS = -I$(top_srcdir)/src/include $(LIBGCRYPT_CFLAGS) 
$(SQLITE_CPPFLAGS)
 
 if USE_COVERAGE
   AM_CFLAGS = --coverage -O0
@@ -7,34 +7,34 @@ if USE_COVERAGE
 endif
 
 lib_LTLIBRARIES = \
-  libtalerpq.la
+  libtalersq.la
 
-libtalerpq_la_SOURCES = \
-  pq_query_helper.c \
-  pq_result_helper.c
+libtalersq_la_SOURCES = \
+  sq_query_helper.c \
+  sq_result_helper.c
 
-libtalerpq_la_LIBADD = \
+libtalersq_la_LIBADD = \
   $(top_builddir)/src/util/libtalerutil.la  \
   -lgnunetutil -ljansson \
-  -lpq $(XLIB)
+  -lsqlite3 $(XLIB)
 
-libtalerpq_la_LDFLAGS = \
-  $(POSTGRESQL_LDFLAGS) \
+libtalersq_la_LDFLAGS = \
+  $(SQLITE_LDFLAGS) \
   -version-info 0:0:0 \
   -export-dynamic -no-undefined
 
 TESTS = \
- test_pq
+ test_sq
 
 check_PROGRAMS= \
- test_pq
+ test_sq
 
-test_pq_SOURCES = \
-  test_pq.c
-test_pq_LDADD = \
-  libtalerpq.la \
+test_sq_SOURCES = \
+  test_sq.c
+test_sq_LDADD = \
+  libtalersq.la \
   $(top_builddir)/src/util/libtalerutil.la  \
-  -lgnunetpq \
+  -lgnunetsq \
   -lgnunetutil \
   -ljansson \
-  -lpq $(XLIB)
+  -lsqlite3 $(XLIB)
diff --git a/src/sq/sq_query_helper.c b/src/sq/sq_query_helper.c
new file mode 100644
index 00000000..e9070e14
--- /dev/null
+++ b/src/sq/sq_query_helper.c
@@ -0,0 +1,288 @@
+/*
+  This file is part of TALER
+  Copyright (C) 2020 Taler Systems SA
+
+  TALER is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation; either version 3, or (at your option) any later version.
+
+  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License along with
+  TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file sq/sq_query_helper.c
+ * @brief helper functions for Taler-specific SQLite3 interactions
+ * @author Jonathan Buchanan
+ */
+#include "platform.h"
+#include <sqlite3.h>
+#include <gnunet/gnunet_util_lib.h>
+#include <gnunet/gnunet_sq_lib.h>
+#include "taler_sq_lib.h"
+
+
+/**
+ * Function called to convert input argument into SQL parameters.
+ *
+ * @param cls closure
+ * @param data pointer to input argument, here a `struct TALER_Amount`
+ * @param data_len number of bytes in @a data (if applicable)
+ * @param stmt sqlite statement to parameters for
+ * @param off offset of the argument to bind in @a stmt, numbered from 1,
+ *            so immediately suitable for passing to `sqlite3_bind`-functions.
+ * @return #GNUNET_SYSERR on error, #GNUNET_OK on success
+ */
+static int
+qconv_amount (void *cls,
+              const void *data,
+              size_t data_len,
+              sqlite3_stmt *stmt,
+              unsigned int off)
+{
+  const struct TALER_Amount *amount = data;
+
+  (void) cls;
+  GNUNET_assert (sizeof (struct TALER_Amount) == data_len);
+  if (SQLITE_OK != sqlite3_bind_int64 (stmt,
+                                       (int) off,
+                                       (sqlite3_int64) amount->value))
+    return GNUNET_SYSERR;
+  if (SQLITE_OK != sqlite3_bind_int64 (stmt,
+                                       (int) off + 1,
+                                       (sqlite3_int64) amount->fraction))
+    return GNUNET_SYSERR;
+  return GNUNET_OK;
+}
+
+
+/**
+ * Generate query parameter for a currency, consisting of the
+ * components "value", "fraction" in this order. The
+ * types must be a 64-bit integer and a 64-bit integer.
+ *
+ * @param x pointer to the query parameter to pass
+ */
+struct GNUNET_SQ_QueryParam
+TALER_SQ_query_param_amount (const struct TALER_Amount *x)
+{
+  struct GNUNET_SQ_QueryParam res =
+  { &qconv_amount, NULL, x, sizeof (*x), 2 };
+  return res;
+}
+
+
+/**
+ * Function called to convert input argument into SQL parameters.
+ *
+ * @param cls closure
+ * @param data pointer to input argument, here a `struct TALER_AmountNBO`
+ * @param data_len number of bytes in @a data (if applicable)
+ * @param stmt sqlite statement to parameters for
+ * @param off offset of the argument to bind in @a stmt, numbered from 1,
+ *            so immediately suitable for passing to `sqlite3_bind`-functions.
+ * @return #GNUNET_SYSERR on error, #GNUNET_OK on success
+ */
+static int
+qconv_amount_nbo (void *cls,
+                  const void *data,
+                  size_t data_len,
+                  sqlite3_stmt *stmt,
+                  unsigned int off)
+{
+  const struct TALER_AmountNBO *amount = data;
+  struct TALER_Amount amount_hbo;
+
+  (void) cls;
+  TALER_amount_ntoh (&amount_hbo,
+                     amount);
+  return qconv_amount (cls,
+                       &amount_hbo,
+                       sizeof (struct TALER_Amount),
+                       stmt,
+                       off);
+}
+
+
+/**
+ * Generate query parameter for a currency, consisting of the
+ * components "value", "fraction" in this order. The
+ * types must be a 64-bit integer and a 64-bit integer.
+ *
+ * @param x pointer to the query parameter to pass
+ */
+struct GNUNET_SQ_QueryParam
+TALER_SQ_query_param_amount_nbo (const struct TALER_AmountNBO *x)
+{
+  struct GNUNET_SQ_QueryParam res =
+  { &qconv_amount_nbo, NULL, x, sizeof (*x), 2 };
+  return res;
+}
+
+
+/**
+ * Function called to convert input argument into SQL parameters.
+ *
+ * @param cls closure
+ * @param data pointer to input argument, here a `struct TALER_Amount`
+ * @param data_len number of bytes in @a data (if applicable)
+ * @param stmt sqlite statement to parameters for
+ * @param off offset of the argument to bind in @a stmt, numbered from 1,
+ *            so immediately suitable for passing to `sqlite3_bind`-functions.
+ * @return #GNUNET_SYSERR on error, #GNUNET_OK on success
+ */
+static int
+qconv_json (void *cls,
+            const void *data,
+            size_t data_len,
+            sqlite3_stmt *stmt,
+            unsigned int off)
+{
+  const json_t *json = data;
+  char *str;
+
+  (void) cls;
+  (void) data_len;
+  str = json_dumps (json, JSON_COMPACT);
+  if (NULL == str)
+    return GNUNET_SYSERR;
+
+  if (SQLITE_OK != sqlite3_bind_text (stmt,
+                                      (int) off,
+                                      str,
+                                      strlen (str) + 1,
+                                      SQLITE_TRANSIENT))
+    return GNUNET_SYSERR;
+  GNUNET_free (str);
+  return GNUNET_OK;
+}
+
+
+/**
+ * Generate query parameter for a JSON object (stored as a string
+ * in the DB).  Note that @a x must really be a JSON object or array,
+ * passing just a value (string, integer) is not supported and will
+ * result in an abort.
+ *
+ * @param x pointer to the json object to pass
+ */
+struct GNUNET_SQ_QueryParam
+TALER_SQ_query_param_json (const json_t *x)
+{
+  struct GNUNET_SQ_QueryParam res =
+  { &qconv_json, NULL, x, sizeof (*x), 1 };
+  return res;
+}
+
+
+/**
+ * Function called to convert input argument into SQL parameters.
+ *
+ * @param cls closure
+ * @param data pointer to input argument, here a `struct TALER_Amount`
+ * @param data_len number of bytes in @a data (if applicable)
+ * @param stmt sqlite statement to parameters for
+ * @param off offset of the argument to bind in @a stmt, numbered from 1,
+ *            so immediately suitable for passing to `sqlite3_bind`-functions.
+ * @return #GNUNET_SYSERR on error, #GNUNET_OK on success
+ */
+static int
+qconv_round_time (void *cls,
+                  const void *data,
+                  size_t data_len,
+                  sqlite3_stmt *stmt,
+                  unsigned int off)
+{
+  const struct GNUNET_TIME_Absolute *at = data;
+  struct GNUNET_TIME_Absolute tmp;
+
+  (void) cls;
+  GNUNET_assert (sizeof (struct GNUNET_TIME_AbsoluteNBO) == data_len);
+  GNUNET_break (NULL == cls);
+  tmp = *at;
+  GNUNET_assert (GNUNET_OK ==
+                 GNUNET_TIME_round_abs (&tmp));
+  if (SQLITE_OK != sqlite3_bind_int64 (stmt,
+                                       (int) off,
+                                       (sqlite3_int64) at->abs_value_us))
+    return GNUNET_SYSERR;
+  return GNUNET_OK;
+}
+
+
+/**
+ * Generate query parameter for an absolute time value.
+ * In contrast to
+ * #GNUNET_SQ_query_param_absolute_time(), this function
+ * will abort (!) if the time given is not rounded!
+ * The database must store a 64-bit integer.
+ *
+ * @param x pointer to the query parameter to pass
+ */
+struct GNUNET_SQ_QueryParam
+TALER_SQ_query_param_absolute_time (const struct GNUNET_TIME_Absolute *x)
+{
+  struct GNUNET_SQ_QueryParam res =
+  { &qconv_round_time, NULL, x, sizeof (*x), 1 };
+  return res;
+}
+
+
+/**
+ * Function called to convert input argument into SQL parameters.
+ *
+ * @param cls closure
+ * @param data pointer to input argument, here a `struct TALER_Amount`
+ * @param data_len number of bytes in @a data (if applicable)
+ * @param stmt sqlite statement to parameters for
+ * @param off offset of the argument to bind in @a stmt, numbered from 1,
+ *            so immediately suitable for passing to `sqlite3_bind`-functions.
+ * @return #GNUNET_SYSERR on error, #GNUNET_OK on success
+ */
+static int
+qconv_round_time_abs (void *cls,
+                      const void *data,
+                      size_t data_len,
+                      sqlite3_stmt *stmt,
+                      unsigned int off)
+{
+  const struct GNUNET_TIME_AbsoluteNBO *at = data;
+  struct GNUNET_TIME_Absolute tmp;
+
+  (void) cls;
+  GNUNET_assert (sizeof (struct GNUNET_TIME_AbsoluteNBO) == data_len);
+  GNUNET_break (NULL == cls);
+  tmp = GNUNET_TIME_absolute_ntoh (*at);
+  GNUNET_assert (GNUNET_OK ==
+                 GNUNET_TIME_round_abs (&tmp));
+  if (SQLITE_OK != sqlite3_bind_int64 (stmt,
+                                       (int) off,
+                                       (sqlite3_int64) tmp.abs_value_us))
+    return GNUNET_SYSERR;
+  return GNUNET_OK;
+}
+
+
+/**
+ * Generate query parameter for an absolute time value.
+ * In contrast to
+ * #GNUNET_SQ_query_param_absolute_time(), this function
+ * will abort (!) if the time given is not rounded!
+ * The database must store a 64-bit integer.
+ *
+ * @param x pointer to the query parameter to pass
+ */
+struct GNUNET_SQ_QueryParam
+TALER_SQ_query_param_absolute_time_nbo (const struct
+                                        GNUNET_TIME_AbsoluteNBO *x)
+{
+  struct GNUNET_SQ_QueryParam res =
+  { &qconv_round_time_abs, NULL, x, sizeof (*x), 1 };
+  return res;
+}
+
+
+/* end of sq/sq_query_helper.c */
diff --git a/src/sq/sq_result_helper.c b/src/sq/sq_result_helper.c
new file mode 100644
index 00000000..bc52913b
--- /dev/null
+++ b/src/sq/sq_result_helper.c
@@ -0,0 +1,381 @@
+/*
+  This file is part of TALER
+  Copyright (C) 2020 Taler Systems SA
+
+  TALER is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation; either version 3, or (at your option) any later version.
+
+  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License along with
+  TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file sq/sq_result_helper.c
+ * @brief functions to initialize parameter arrays
+ * @author Jonathan Buchanan
+ */
+#include "platform.h"
+#include <sqlite3.h>
+#include <gnunet/gnunet_util_lib.h>
+#include <gnunet/gnunet_sq_lib.h>
+#include "taler_sq_lib.h"
+#include "taler_amount_lib.h"
+
+
+/**
+ * Extract amount data from a SQLite database
+ *
+ * @param cls closure, a `const char *` giving the currency
+ * @param result where to extract data from
+ * @param column column to extract data from
+ * @param[in,out] dst_size where to store size of result, may be NULL
+ * @param[out] dst where to store the result
+ * @return
+ *   #GNUNET_YES if all results could be extracted
+ *   #GNUNET_SYSERR if a result was invalid (non-existing field or NULL)
+ */
+static int
+extract_amount (void *cls,
+                sqlite3_stmt *result,
+                unsigned int column,
+                size_t *dst_size,
+                void *dst)
+{
+  struct TALER_Amount *amount = dst;
+  const char *currency = cls;
+  if ((sizeof (struct TALER_Amount) != *dst_size) ||
+      (SQLITE_INTEGER != sqlite3_column_type (result,
+                                              (int) column)) ||
+      (SQLITE_INTEGER != sqlite3_column_type (result,
+                                              (int) column + 1)))
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  GNUNET_strlcpy (amount->currency,
+                  currency,
+                  TALER_CURRENCY_LEN);
+  amount->value = (uint64_t) sqlite3_column_int64 (result,
+                                                   (int) column);
+  uint64_t frac = (uint64_t) sqlite3_column_int64 (result,
+                                                   (int) column + 1);
+  amount->fraction = (uint32_t) frac;
+  return GNUNET_YES;
+}
+
+
+/**
+ * Currency amount expected.
+ *
+ * @param currency the currency to use for @a amount
+ * @param[out] amount where to store the result
+ * @return array entry for the result specification to use
+ */
+struct GNUNET_SQ_ResultSpec
+TALER_SQ_result_spec_amount (const char *currency,
+                             struct TALER_Amount *amount)
+{
+  struct GNUNET_SQ_ResultSpec res = {
+    .conv = &extract_amount,
+    .cls = (void *) currency,
+    .dst = (void *) amount,
+    .dst_size = sizeof (struct TALER_Amount),
+    .num_params = 2
+  };
+
+  return res;
+}
+
+
+/**
+ * Extract amount data from a SQLite database
+ *
+ * @param cls closure, a `const char *` giving the currency
+ * @param result where to extract data from
+ * @param column column to extract data from
+ * @param[in,out] dst_size where to store size of result, may be NULL
+ * @param[out] dst where to store the result
+ * @return
+ *   #GNUNET_YES if all results could be extracted
+ *   #GNUNET_SYSERR if a result was invalid (non-existing field or NULL)
+ */
+static int
+extract_amount_nbo (void *cls,
+                    sqlite3_stmt *result,
+                    unsigned int column,
+                    size_t *dst_size,
+                    void *dst)
+{
+  struct TALER_AmountNBO *amount = dst;
+  struct TALER_Amount amount_hbo;
+  size_t amount_hbo_size = sizeof (struct TALER_Amount);
+  if (GNUNET_YES != extract_amount (cls,
+                                    result,
+                                    column,
+                                    &amount_hbo_size,
+                                    &amount_hbo))
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  TALER_amount_hton (amount,
+                     &amount_hbo);
+  return GNUNET_YES;
+}
+
+
+/**
+ * Currency amount expected.
+ *
+ * @param currency the currency to use for @a amount
+ * @param[out] amount where to store the result
+ * @return array entry for the result specification to use
+ */
+struct GNUNET_SQ_ResultSpec
+TALER_SQ_result_spec_amount_nbo (const char *currency,
+                                 struct TALER_AmountNBO *amount)
+{
+  struct GNUNET_SQ_ResultSpec res = {
+    .conv = &extract_amount_nbo,
+    .cls = (void *) currency,
+    .dst = (void *) amount,
+    .dst_size = sizeof (struct TALER_AmountNBO),
+    .num_params = 2
+  };
+
+  return res;
+}
+
+
+/**
+ * Extract amount data from a SQLite database
+ *
+ * @param cls closure
+ * @param result where to extract data from
+ * @param column column to extract data from
+ * @param[in,out] dst_size where to store size of result, may be NULL
+ * @param[out] dst where to store the result
+ * @return
+ *   #GNUNET_YES if all results could be extracted
+ *   #GNUNET_SYSERR if a result was invalid (non-existing field or NULL)
+ */
+static int
+extract_json (void *cls,
+              sqlite3_stmt *result,
+              unsigned int column,
+              size_t *dst_size,
+              void *dst)
+{
+  json_t **j_dst = dst;
+  const char *res;
+  json_error_t json_error;
+  size_t slen;
+
+  (void) cls;
+  (void) dst_size;
+  if (SQLITE_TEXT != sqlite3_column_type (result,
+                                          column))
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  res = (const char *) sqlite3_column_text (result,
+                                            column);
+  slen = strlen (res);
+  *j_dst = json_loadb (res,
+                       slen,
+                       JSON_REJECT_DUPLICATES,
+                       &json_error);
+  if (NULL == *j_dst)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Failed to parse JSON result for column %d: %s (%s)\n",
+                column,
+                json_error.text,
+                json_error.source);
+    return GNUNET_SYSERR;
+  }
+  return GNUNET_OK;
+}
+
+
+/**
+ * Function called to clean up memory allocated
+ * by a #GNUNET_SQ_ResultConverter.
+ *
+ * @param cls closure
+ */
+static void
+clean_json (void *cls)
+{
+  json_t **dst = cls;
+
+  (void) cls;
+  if (NULL != *dst)
+  {
+    json_decref (*dst);
+    *dst = NULL;
+  }
+}
+
+
+/**
+ * json_t expected.
+ *
+ * @param[out] jp where to store the result
+ * @return array entry for the result specification to use
+ */
+struct GNUNET_SQ_ResultSpec
+TALER_SQ_result_spec_json (json_t **jp)
+{
+  struct GNUNET_SQ_ResultSpec res = {
+    .conv = &extract_json,
+    .cleaner = &clean_json,
+    .dst = (void *) jp,
+    .cls = (void *) jp,
+    .num_params = 1
+  };
+
+  return res;
+}
+
+
+/**
+ * Extract amount data from a SQLite database
+ *
+ * @param cls closure
+ * @param result where to extract data from
+ * @param column column to extract data from
+ * @param[in,out] dst_size where to store size of result, may be NULL
+ * @param[out] dst where to store the result
+ * @return
+ *   #GNUNET_YES if all results could be extracted
+ *   #GNUNET_SYSERR if a result was invalid (non-existing field or NULL)
+ */
+static int
+extract_round_time (void *cls,
+                    sqlite3_stmt *result,
+                    unsigned int column,
+                    size_t *dst_size,
+                    void *dst)
+{
+  struct GNUNET_TIME_Absolute *udst = dst;
+  struct GNUNET_TIME_Absolute tmp;
+
+  (void) cls;
+  if (SQLITE_INTEGER != sqlite3_column_type (result,
+                                             (int) column))
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  GNUNET_assert (NULL != dst);
+  if (sizeof (struct GNUNET_TIME_Absolute) != *dst_size)
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  tmp.abs_value_us = sqlite3_column_int64 (result,
+                                           (int) column);
+  GNUNET_break (GNUNET_OK ==
+                GNUNET_TIME_round_abs (&tmp));
+  *udst = tmp;
+  return GNUNET_OK;
+}
+
+
+/**
+ * Rounded absolute time expected.
+ * In contrast to #GNUNET_SQ_query_param_absolute_time_nbo(),
+ * this function ensures that the result is rounded and can
+ * be converted to JSON.
+ *
+ * @param[out] at where to store the result
+ * @return array entry for the result specification to use
+ */
+struct GNUNET_SQ_ResultSpec
+TALER_SQ_result_spec_absolute_time (struct GNUNET_TIME_Absolute *at)
+{
+  struct GNUNET_SQ_ResultSpec res = {
+    .conv = &extract_round_time,
+    .dst = (void *) at,
+    .dst_size = sizeof (struct GNUNET_TIME_Absolute),
+    .num_params = 1
+  };
+
+  return res;
+}
+
+
+/**
+ * Extract amount data from a SQLite database
+ *
+ * @param cls closure
+ * @param result where to extract data from
+ * @param column column to extract data from
+ * @param[in,out] dst_size where to store size of result, may be NULL
+ * @param[out] dst where to store the result
+ * @return
+ *   #GNUNET_YES if all results could be extracted
+ *   #GNUNET_SYSERR if a result was invalid (non-existing field or NULL)
+ */
+static int
+extract_round_time_nbo (void *cls,
+                        sqlite3_stmt *result,
+                        unsigned int column,
+                        size_t *dst_size,
+                        void *dst)
+{
+  struct GNUNET_TIME_AbsoluteNBO *udst = dst;
+  struct GNUNET_TIME_Absolute tmp;
+
+  (void) cls;
+  if (SQLITE_INTEGER != sqlite3_column_type (result,
+                                             (int) column))
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  GNUNET_assert (NULL != dst);
+  if (sizeof (struct GNUNET_TIME_AbsoluteNBO) != *dst_size)
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  tmp.abs_value_us = sqlite3_column_int64 (result,
+                                           (int) column);
+  GNUNET_break (GNUNET_OK ==
+                GNUNET_TIME_round_abs (&tmp));
+  *udst = GNUNET_TIME_absolute_hton (tmp);
+  return GNUNET_OK;
+}
+
+
+/**
+ * Rounded absolute time expected.
+ * In contrast to #GNUNET_SQ_result_spec_absolute_time_nbo(),
+ * this function ensures that the result is rounded and can
+ * be converted to JSON.
+ *
+ * @param[out] at where to store the result
+ * @return array entry for the result specification to use
+ */
+struct GNUNET_SQ_ResultSpec
+TALER_SQ_result_spec_absolute_time_nbo (struct GNUNET_TIME_AbsoluteNBO *at)
+{
+  struct GNUNET_SQ_ResultSpec res = {
+    .conv = &extract_round_time_nbo,
+    .dst = (void *) at,
+    .dst_size = sizeof (struct GNUNET_TIME_AbsoluteNBO),
+    .num_params = 1
+  };
+
+  return res;
+}
+
+
+/* end of sq/sq_result_helper.c */
diff --git a/src/sq/test_sq.c b/src/sq/test_sq.c
new file mode 100644
index 00000000..308b65b0
--- /dev/null
+++ b/src/sq/test_sq.c
@@ -0,0 +1,227 @@
+/*
+  This file is part of TALER
+  Copyright (C) 2020 Taler Systems SA
+
+  TALER is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation; either version 3, or (at your option) any later version.
+
+  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License along with
+  TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file sq/test_sq.c
+ * @brief Tests for SQLite3 convenience API
+ * @author Jonathan Buchanan
+ */
+#include "platform.h"
+#include "taler_sq_lib.h"
+
+
+/**
+ * Run actual test queries.
+ *
+ * @return 0 on success
+ */
+static int
+run_queries (sqlite3 *db)
+{
+  struct TALER_Amount hamount;
+  struct TALER_AmountNBO namount;
+  json_t *json;
+  struct GNUNET_TIME_Absolute htime = GNUNET_TIME_absolute_get ();
+  struct GNUNET_TIME_AbsoluteNBO ntime;
+  sqlite3_stmt *test_insert;
+  sqlite3_stmt *test_select;
+  struct GNUNET_SQ_PrepareStatement ps[] = {
+    GNUNET_SQ_make_prepare ("INSERT INTO test_sq ("
+                            " hamount_val"
+                            ",hamount_frac"
+                            ",namount_val"
+                            ",namount_frac"
+                            ",json"
+                            ",htime"
+                            ",ntime"
+                            ") VALUES "
+                            "($1, $2, $3, $4, $5, $6, $7)",
+                            &test_insert),
+    GNUNET_SQ_make_prepare ("SELECT"
+                            " hamount_val"
+                            ",hamount_frac"
+                            ",namount_val"
+                            ",namount_frac"
+                            ",json"
+                            ",htime"
+                            ",ntime"
+                            " FROM test_sq",
+                            &test_select),
+    GNUNET_SQ_PREPARE_END
+  };
+  int ret = 0;
+
+  GNUNET_assert (GNUNET_OK ==
+                 TALER_string_to_amount ("EUR:1.23",
+                                         &hamount));
+  TALER_amount_hton (&namount,
+                     &hamount);
+  json = json_object ();
+  json_object_set_new (json, "foo", json_integer (42));
+  GNUNET_assert (NULL != json);
+  GNUNET_TIME_round_abs (&htime);
+  ntime = GNUNET_TIME_absolute_hton (htime);
+
+  GNUNET_assert (GNUNET_OK == GNUNET_SQ_prepare (db,
+                                                 ps));
+
+  {
+    struct GNUNET_SQ_QueryParam params_insert[] = {
+      TALER_SQ_query_param_amount (&hamount),
+      TALER_SQ_query_param_amount_nbo (&namount),
+      TALER_SQ_query_param_json (json),
+      TALER_SQ_query_param_absolute_time (&htime),
+      TALER_SQ_query_param_absolute_time_nbo (&ntime),
+      GNUNET_SQ_query_param_end
+    };
+    GNUNET_SQ_reset (db,
+                     test_insert);
+    GNUNET_assert (GNUNET_OK == GNUNET_SQ_bind (test_insert,
+                                                params_insert));
+    GNUNET_assert (SQLITE_DONE == sqlite3_step (test_insert));
+    sqlite3_finalize (test_insert);
+  }
+
+  {
+    struct TALER_Amount result_amount;
+    struct TALER_AmountNBO nresult_amount;
+    struct TALER_Amount nresult_amount_converted;
+    json_t *result_json;
+    struct GNUNET_TIME_Absolute hresult_time;
+    struct GNUNET_TIME_AbsoluteNBO nresult_time;
+    struct GNUNET_SQ_QueryParam params_select[] = {
+      GNUNET_SQ_query_param_end
+    };
+    struct GNUNET_SQ_ResultSpec results_select[] = {
+      TALER_SQ_result_spec_amount ("EUR",
+                                   &result_amount),
+      TALER_SQ_result_spec_amount_nbo ("EUR",
+                                       &nresult_amount),
+      TALER_SQ_result_spec_json (&result_json),
+      TALER_SQ_result_spec_absolute_time (&hresult_time),
+      TALER_SQ_result_spec_absolute_time_nbo (&nresult_time),
+      GNUNET_SQ_result_spec_end
+    };
+
+    GNUNET_SQ_reset (db,
+                     test_select);
+    GNUNET_assert (GNUNET_OK == GNUNET_SQ_bind (test_select,
+                                                params_select));
+    GNUNET_assert (SQLITE_ROW == sqlite3_step (test_select));
+
+    GNUNET_assert (GNUNET_OK == GNUNET_SQ_extract_result (test_select,
+                                                          results_select));
+    TALER_amount_ntoh (&nresult_amount_converted,
+                       &nresult_amount);
+    if ((GNUNET_OK != TALER_amount_cmp_currency (&hamount,
+                                                 &result_amount)) ||
+        (0 != TALER_amount_cmp (&hamount,
+                                &result_amount)) ||
+        (GNUNET_OK != TALER_amount_cmp_currency (&hamount,
+                                                 &nresult_amount_converted)) ||
+        (0 != TALER_amount_cmp (&hamount,
+                                &nresult_amount_converted)) ||
+        (1 != json_equal (json,
+                          result_json)) ||
+        (htime.abs_value_us != hresult_time.abs_value_us) ||
+        (ntime.abs_value_us__ != nresult_time.abs_value_us__))
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                  "Result from database doesn't match input\n");
+      ret = 1;
+    }
+    GNUNET_SQ_cleanup_result (results_select);
+    sqlite3_finalize (test_select);
+  }
+  json_decref (json);
+
+  return ret;
+}
+
+
+int
+main (int argc,
+      const char *const argv[])
+{
+  struct GNUNET_SQ_ExecuteStatement es[] = {
+    GNUNET_SQ_make_execute ("CREATE TEMPORARY TABLE IF NOT EXISTS test_sq ("
+                            " hamount_val INT8 NOT NULL"
+                            ",hamount_frac INT8 NOT NULL"
+                            ",namount_val INT8 NOT NULL"
+                            ",namount_frac INT8 NOT NULL"
+                            ",json VARCHAR NOT NULL"
+                            ",htime INT8 NOT NULL"
+                            ",ntime INT8 NOT NULL"
+                            ")"),
+    GNUNET_SQ_EXECUTE_STATEMENT_END
+  };
+  sqlite3 *db;
+  int ret;
+
+  GNUNET_log_setup ("test-pq",
+                    "WARNING",
+                    NULL);
+
+  if (SQLITE_OK != sqlite3_open ("talercheck.db",
+                                 &db))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Failed to open SQLite3 database\n");
+    return 77;
+  }
+
+  if (GNUNET_OK != GNUNET_SQ_exec_statements (db,
+                                              es))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Failed to create new table\n");
+    if ((SQLITE_OK != sqlite3_close (db)) ||
+        (0 != unlink ("talercheck.db")))
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                  "Failed to close db or unlink\n");
+    }
+    return 1;
+  }
+
+  ret = run_queries (db);
+
+  if (SQLITE_OK !=
+      sqlite3_exec (db,
+                    "DROP TABLE test_sq",
+                    NULL, NULL, NULL))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Failed to drop table\n");
+    ret = 1;
+  }
+
+  if (SQLITE_OK != sqlite3_close (db))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Failed to close database\n");
+    ret = 1;
+  }
+  if (0 != unlink ("talercheck.db"))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Failed to unlink test database file\n");
+    ret = 1;
+  }
+  return ret;
+}
+
+
+/* end of sq/test_sq.c */
diff --git a/src/testing/Makefile.am b/src/testing/Makefile.am
index d73e89b3..014faa46 100644
--- a/src/testing/Makefile.am
+++ b/src/testing/Makefile.am
@@ -61,6 +61,7 @@ libtalertesting_la_SOURCES = \
   testing_api_cmd_refund.c \
   testing_api_cmd_refresh.c \
   testing_api_cmd_revoke.c \
+  testing_api_cmd_rewind.c \
   testing_api_cmd_serialize_keys.c \
   testing_api_cmd_signal.c \
   testing_api_cmd_sleep.c \
diff --git a/src/testing/test_auditor_api.c b/src/testing/test_auditor_api.c
index 7b699626..0ff28b29 100644
--- a/src/testing/test_auditor_api.c
+++ b/src/testing/test_auditor_api.c
@@ -353,7 +353,6 @@ run (void *cls,
     TALER_TESTING_cmd_refund ("refund-ok",
                               MHD_HTTP_OK,
                               "EUR:5",
-                              "EUR:0.01",
                               "deposit-refund-1"),
     /**
      * Spend 4.99 EUR of the refunded 4.99 EUR coin (1ct gone
diff --git a/src/testing/test_exchange_api.c b/src/testing/test_exchange_api.c
index 0c3f4837..eb6a2b1b 100644
--- a/src/testing/test_exchange_api.c
+++ b/src/testing/test_exchange_api.c
@@ -346,6 +346,8 @@ run (void *cls,
                                             NULL,
                                             0,
                                             MHD_HTTP_NOT_FOUND),
+    TALER_TESTING_cmd_sleep ("sleep-before-aggregator",
+                             1),
     /* Run transfers. Note that _actual_ aggregation will NOT
      * happen here, as each deposit operation is run with a
      * fresh merchant public key, so the aggregator will treat
@@ -528,18 +530,15 @@ run (void *cls,
     TALER_TESTING_cmd_refund ("refund-ok",
                               MHD_HTTP_OK,
                               "EUR:5",
-                              "EUR:0.01",
                               "deposit-refund-1"),
     TALER_TESTING_cmd_refund ("refund-ok-double",
                               MHD_HTTP_OK,
                               "EUR:5",
-                              "EUR:0.01",
                               "deposit-refund-1"),
     /* Previous /refund(s) had id == 0.  */
     TALER_TESTING_cmd_refund_with_id ("refund-conflicting",
                                       MHD_HTTP_CONFLICT,
                                       "EUR:5",
-                                      "EUR:0.01",
                                       "deposit-refund-1",
                                       1),
     /**
@@ -573,7 +572,6 @@ run (void *cls,
     TALER_TESTING_cmd_refund ("refund-fail",
                               MHD_HTTP_GONE,
                               "EUR:4.99",
-                              "EUR:0.01",
                               "deposit-refund-2"),
     TALER_TESTING_cmd_check_bank_empty ("check-empty-after-refund"),
     /**
@@ -607,7 +605,6 @@ run (void *cls,
     TALER_TESTING_cmd_refund ("refund-ok-fast",
                               MHD_HTTP_OK,
                               "EUR:5",
-                              "EUR:0.01",
                               "deposit-refund-1b"),
     /**
      * Run transfers. This will do the transfer as refund deadline
diff --git a/src/testing/test_exchange_api_twisted.c 
b/src/testing/test_exchange_api_twisted.c
index 9aac3d1e..c99c7410 100644
--- a/src/testing/test_exchange_api_twisted.c
+++ b/src/testing/test_exchange_api_twisted.c
@@ -173,12 +173,6 @@ run (void *cls,
     TALER_TESTING_cmd_refund ("refund-currency-mismatch",
                               MHD_HTTP_BAD_REQUEST,
                               "USD:5",
-                              "USD:0.01",
-                              "deposit-refund-1"),
-    TALER_TESTING_cmd_refund ("refund-fee-above-amount",
-                              MHD_HTTP_BAD_REQUEST,
-                              "EUR:5",
-                              "EUR:10",
                               "deposit-refund-1"),
     TALER_TESTING_cmd_flip_upload ("flip-upload",
                                    CONFIG_FILE,
@@ -186,7 +180,6 @@ run (void *cls,
     TALER_TESTING_cmd_refund ("refund-bad-sig",
                               MHD_HTTP_FORBIDDEN,
                               "EUR:5",
-                              "EUR:0.01",
                               "deposit-refund-1"),
 
     /* This next deposit CMD is only used to provide a
@@ -207,17 +200,10 @@ run (void *cls,
     TALER_TESTING_cmd_refund ("refund-deposit-not-found",
                               MHD_HTTP_NOT_FOUND,
                               "EUR:5",
-                              "EUR:0.01",
                               "deposit-refund-to-fail"),
     TALER_TESTING_cmd_refund ("refund-insufficient-funds",
                               MHD_HTTP_PRECONDITION_FAILED,
                               "EUR:50",
-                              "EUR:0.01",
-                              "deposit-refund-1"),
-    TALER_TESTING_cmd_refund ("refund-fee-too-low",
-                              MHD_HTTP_BAD_REQUEST,
-                              "EUR:5",
-                              "EUR:0.000001",
                               "deposit-refund-1"),
     TALER_TESTING_cmd_end ()
   };
diff --git a/src/testing/test_taler_exchange_aggregator.c 
b/src/testing/test_taler_exchange_aggregator.c
index eaa621cf..d5c392d3 100644
--- a/src/testing/test_taler_exchange_aggregator.c
+++ b/src/testing/test_taler_exchange_aggregator.c
@@ -108,6 +108,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:1",
                                       "EUR:0.1"),
@@ -126,6 +127,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:1",
                                       "EUR:0.1"),
@@ -134,6 +136,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:1",
                                       "EUR:0.1"),
@@ -153,6 +156,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       "4",
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:1",
                                       "EUR:0.1"),
@@ -160,6 +164,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       "5",
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:1",
                                       "EUR:0.1"),
@@ -167,6 +172,7 @@ run (void *cls,
                                       &dbc,
                                       "alice",
                                       "4",
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:1",
                                       "EUR:0.1"),
@@ -195,6 +201,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_relative_multiply
                                         (GNUNET_TIME_UNIT_SECONDS,
                                         5),
@@ -204,6 +211,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_relative_multiply
                                         (GNUNET_TIME_UNIT_SECONDS,
                                         5),
@@ -229,6 +237,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_relative_multiply
                                         (GNUNET_TIME_UNIT_SECONDS,
                                         10),
@@ -239,6 +248,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_relative_multiply
                                         (GNUNET_TIME_UNIT_SECONDS,
                                         5),
@@ -263,6 +273,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:0.102",
                                       "EUR:0.1"),
@@ -274,6 +285,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:0.102",
                                       "EUR:0.1"),
@@ -281,6 +293,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:0.102",
                                       "EUR:0.1"),
@@ -292,6 +305,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:0.102",
                                       "EUR:0.1"),
@@ -303,6 +317,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:0.112",
                                       "EUR:0.1"),
@@ -319,6 +334,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:0.109",
                                       "EUR:0.1"),
@@ -330,6 +346,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:0.119",
                                       "EUR:0.1"),
@@ -346,6 +363,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:0.122",
                                       "EUR:0.1"),
@@ -362,6 +380,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_relative_multiply
                                         (GNUNET_TIME_UNIT_SECONDS,
                                         5),
@@ -375,6 +394,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_relative_multiply
                                         (GNUNET_TIME_UNIT_SECONDS,
                                         5),
@@ -390,6 +410,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:0.122",
                                       "EUR:0.1"),
@@ -406,6 +427,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_relative_multiply
                                         (GNUNET_TIME_UNIT_SECONDS,
                                         5),
@@ -419,6 +441,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_relative_multiply
                                         (GNUNET_TIME_UNIT_SECONDS,
                                         5),
@@ -434,6 +457,7 @@ run (void *cls,
                                       &dbc,
                                       "bob",
                                       USER42_ACCOUNT,
+                                      GNUNET_TIME_absolute_get (),
                                       GNUNET_TIME_UNIT_ZERO,
                                       "EUR:0.112",
                                       "EUR:0.1"),
diff --git a/src/testing/testing_api_cmd_auditor_deposit_confirmation.c 
b/src/testing/testing_api_cmd_auditor_deposit_confirmation.c
index 247399a9..1442380b 100644
--- a/src/testing/testing_api_cmd_auditor_deposit_confirmation.c
+++ b/src/testing/testing_api_cmd_auditor_deposit_confirmation.c
@@ -203,6 +203,7 @@ deposit_confirmation_run (void *cls,
   const struct TALER_TESTING_Command *deposit_cmd;
   struct GNUNET_HashCode h_wire;
   struct GNUNET_HashCode h_contract_terms;
+  const struct GNUNET_TIME_Absolute *exchange_timestamp = NULL;
   struct GNUNET_TIME_Absolute timestamp;
   struct GNUNET_TIME_Absolute refund_deadline;
   struct TALER_Amount amount_without_fee;
@@ -238,6 +239,11 @@ deposit_confirmation_run (void *cls,
                  TALER_TESTING_get_trait_exchange_sig (deposit_cmd,
                                                        dcs->coin_index,
                                                        &exchange_sig));
+  GNUNET_assert (GNUNET_OK ==
+                 TALER_TESTING_get_trait_absolute_time (deposit_cmd,
+                                                        dcs->coin_index,
+                                                        &exchange_timestamp));
+  GNUNET_assert (NULL != exchange_timestamp);
   keys = TALER_EXCHANGE_get_keys (dcs->is->exchange);
   GNUNET_assert (NULL != keys);
   spk = TALER_EXCHANGE_get_signing_key_info (keys,
@@ -309,7 +315,7 @@ deposit_confirmation_run (void *cls,
   dcs->dc = TALER_AUDITOR_deposit_confirmation (dcs->auditor,
                                                 &h_wire,
                                                 &h_contract_terms,
-                                                timestamp,
+                                                *exchange_timestamp,
                                                 refund_deadline,
                                                 &amount_without_fee,
                                                 &coin_pub,
diff --git a/src/testing/testing_api_cmd_bank_admin_add_incoming.c 
b/src/testing/testing_api_cmd_bank_admin_add_incoming.c
index 2399825d..d8b1d7b0 100644
--- a/src/testing/testing_api_cmd_bank_admin_add_incoming.c
+++ b/src/testing/testing_api_cmd_bank_admin_add_incoming.c
@@ -81,6 +81,11 @@ struct AdminAddIncomingState
    */
   struct TALER_ReservePrivateKeyP reserve_priv;
 
+  /**
+   * Whether we know the private key or not.
+   */
+  bool reserve_priv_known;
+
   /**
    * Reserve public key matching @e reserve_priv.
    */
@@ -271,6 +276,7 @@ admin_add_incoming_run (void *cls,
                         struct TALER_TESTING_Interpreter *is)
 {
   struct AdminAddIncomingState *fts = cls;
+  bool have_public = false;
 
   (void) cmd;
   /* Use reserve public key as subject */
@@ -278,6 +284,7 @@ admin_add_incoming_run (void *cls,
   {
     const struct TALER_TESTING_Command *ref;
     const struct TALER_ReservePrivateKeyP *reserve_priv;
+    const struct TALER_ReservePublicKeyP *reserve_pub;
 
     ref = TALER_TESTING_interpreter_lookup_command
             (is, fts->reserve_reference);
@@ -292,11 +299,23 @@ admin_add_incoming_run (void *cls,
                                               0,
                                               &reserve_priv))
     {
-      GNUNET_break (0);
-      TALER_TESTING_interpreter_fail (is);
-      return;
+      if (GNUNET_OK != TALER_TESTING_get_trait_reserve_pub (ref,
+                                                            0,
+                                                            &reserve_pub))
+      {
+        GNUNET_break (0);
+        TALER_TESTING_interpreter_fail (is);
+        return;
+      }
+      have_public = true;
+      fts->reserve_pub.eddsa_pub = reserve_pub->eddsa_pub;
+      fts->reserve_priv_known = false;
+    }
+    else
+    {
+      fts->reserve_priv.eddsa_priv = reserve_priv->eddsa_priv;
+      fts->reserve_priv_known = true;
     }
-    fts->reserve_priv.eddsa_priv = reserve_priv->eddsa_priv;
   }
   else
   {
@@ -349,6 +368,7 @@ admin_add_incoming_run (void *cls,
         TALER_TESTING_interpreter_fail (is);
         return;
       }
+      fts->reserve_priv_known = true;
       GNUNET_free (keys);
       GNUNET_free (section);
       GNUNET_CONFIGURATION_destroy (cfg);
@@ -358,10 +378,12 @@ admin_add_incoming_run (void *cls,
       /* No referenced reserve, no instance to take priv
        * from, no explicit subject given: create new key! */
       GNUNET_CRYPTO_eddsa_key_create (&fts->reserve_priv.eddsa_priv);
+      fts->reserve_priv_known = true;
     }
   }
-  GNUNET_CRYPTO_eddsa_key_get_public (&fts->reserve_priv.eddsa_priv,
-                                      &fts->reserve_pub.eddsa_pub);
+  if (! have_public)
+    GNUNET_CRYPTO_eddsa_key_get_public (&fts->reserve_priv.eddsa_priv,
+                                        &fts->reserve_pub.eddsa_pub);
   fts->reserve_history.type = TALER_EXCHANGE_RTT_CREDIT;
   fts->reserve_history.amount = fts->amount;
   fts->reserve_history.details.in_details.sender_url
@@ -432,30 +454,58 @@ admin_add_incoming_traits (void *cls,
                            unsigned int index)
 {
   struct AdminAddIncomingState *fts = cls;
-  struct TALER_TESTING_Trait traits[] = {
-    TALER_TESTING_make_trait_bank_row (&fts->serial_id),
-    TALER_TESTING_make_trait_payto (TALER_TESTING_PT_DEBIT,
-                                    fts->payto_debit_account),
-    /* Used as a marker, content does not matter */
-    TALER_TESTING_make_trait_payto (TALER_TESTING_PT_CREDIT,
-                                    "payto://void/the-exchange"),
-    TALER_TESTING_make_trait_url (TALER_TESTING_UT_EXCHANGE_BANK_ACCOUNT_URL,
-                                  fts->exchange_credit_url),
-    TALER_TESTING_make_trait_amount_obj (0, &fts->amount),
-    TALER_TESTING_make_trait_absolute_time (0, &fts->timestamp),
-    TALER_TESTING_make_trait_reserve_priv (0,
-                                           &fts->reserve_priv),
-    TALER_TESTING_make_trait_reserve_pub (0,
-                                          &fts->reserve_pub),
-    TALER_TESTING_make_trait_reserve_history (0,
-                                              &fts->reserve_history),
-    TALER_TESTING_trait_end ()
-  };
-
-  return TALER_TESTING_get_trait (traits,
-                                  ret,
-                                  trait,
-                                  index);
+  if (fts->reserve_priv_known)
+  {
+    struct TALER_TESTING_Trait traits[] = {
+      TALER_TESTING_make_trait_bank_row (&fts->serial_id),
+      TALER_TESTING_make_trait_payto (TALER_TESTING_PT_DEBIT,
+                                      fts->payto_debit_account),
+      /* Used as a marker, content does not matter */
+      TALER_TESTING_make_trait_payto (TALER_TESTING_PT_CREDIT,
+                                      "payto://void/the-exchange"),
+      TALER_TESTING_make_trait_url (TALER_TESTING_UT_EXCHANGE_BANK_ACCOUNT_URL,
+                                    fts->exchange_credit_url),
+      TALER_TESTING_make_trait_amount_obj (0, &fts->amount),
+      TALER_TESTING_make_trait_absolute_time (0, &fts->timestamp),
+      TALER_TESTING_make_trait_reserve_priv (0,
+                                             &fts->reserve_priv),
+      TALER_TESTING_make_trait_reserve_pub (0,
+                                            &fts->reserve_pub),
+      TALER_TESTING_make_trait_reserve_history (0,
+                                                &fts->reserve_history),
+      TALER_TESTING_trait_end ()
+    };
+
+    return TALER_TESTING_get_trait (traits,
+                                    ret,
+                                    trait,
+                                    index);
+  }
+  else
+  {
+    struct TALER_TESTING_Trait traits[] = {
+      TALER_TESTING_make_trait_bank_row (&fts->serial_id),
+      TALER_TESTING_make_trait_payto (TALER_TESTING_PT_DEBIT,
+                                      fts->payto_debit_account),
+      /* Used as a marker, content does not matter */
+      TALER_TESTING_make_trait_payto (TALER_TESTING_PT_CREDIT,
+                                      "payto://void/the-exchange"),
+      TALER_TESTING_make_trait_url (TALER_TESTING_UT_EXCHANGE_BANK_ACCOUNT_URL,
+                                    fts->exchange_credit_url),
+      TALER_TESTING_make_trait_amount_obj (0, &fts->amount),
+      TALER_TESTING_make_trait_absolute_time (0, &fts->timestamp),
+      TALER_TESTING_make_trait_reserve_pub (0,
+                                            &fts->reserve_pub),
+      TALER_TESTING_make_trait_reserve_history (0,
+                                                &fts->reserve_history),
+      TALER_TESTING_trait_end ()
+    };
+
+    return TALER_TESTING_get_trait (traits,
+                                    ret,
+                                    trait,
+                                    index);
+  }
 }
 
 
@@ -548,7 +598,7 @@ TALER_TESTING_cmd_admin_add_incoming (const char *label,
  * @param payto_debit_account which account sends money
  * @param auth authentication data
  * @param ref reference to a command that can offer a reserve
- *        private key.
+ *        private key or public key.
  * @return the command.
  */
 struct TALER_TESTING_Command
diff --git a/src/testing/testing_api_cmd_batch.c 
b/src/testing/testing_api_cmd_batch.c
index 2d50f8ef..ca23d7fd 100644
--- a/src/testing/testing_api_cmd_batch.c
+++ b/src/testing/testing_api_cmd_batch.c
@@ -228,5 +228,27 @@ TALER_TESTING_cmd_batch_get_current (const struct 
TALER_TESTING_Command *cmd)
 {
   struct BatchState *bs = cmd->cls;
 
+  GNUNET_assert (cmd->run == &batch_run);
   return &bs->batch[bs->batch_ip];
 }
+
+
+/**
+ * Set what command the batch should be at.
+ *
+ * @param cmd current batch command
+ * @param new_ip where to move the IP
+ */
+void
+TALER_TESTING_cmd_batch_set_current (const struct TALER_TESTING_Command *cmd,
+                                     unsigned int new_ip)
+{
+  struct BatchState *bs = cmd->cls;
+
+  /* sanity checks */
+  GNUNET_assert (cmd->run == &batch_run);
+  for (unsigned int i = 0; i < new_ip; i++)
+    GNUNET_assert (NULL != bs->batch[i].label);
+  /* actual logic */
+  bs->batch_ip = new_ip;
+}
diff --git a/src/testing/testing_api_cmd_deposit.c 
b/src/testing/testing_api_cmd_deposit.c
index 9468e7ac..e7a4c298 100644
--- a/src/testing/testing_api_cmd_deposit.c
+++ b/src/testing/testing_api_cmd_deposit.c
@@ -52,6 +52,11 @@ struct DepositState
    */
   struct TALER_Amount amount;
 
+  /**
+   * Deposit fee.
+   */
+  struct TALER_Amount deposit_fee;
+
   /**
    * Reference to any command that is able to provide a coin.
    */
@@ -91,9 +96,9 @@ struct DepositState
   struct TALER_EXCHANGE_DepositHandle *dh;
 
   /**
-   * Timestamp of the /deposit operation.
+   * Timestamp of the /deposit operation in the wallet (contract signing time).
    */
-  struct GNUNET_TIME_Absolute timestamp;
+  struct GNUNET_TIME_Absolute wallet_timestamp;
 
   /**
    * Interpreter state.
@@ -126,6 +131,11 @@ struct DepositState
    */
   int deposit_succeeded;
 
+  /**
+   * When did the exchange receive the deposit?
+   */
+  struct GNUNET_TIME_Absolute exchange_timestamp;
+
   /**
    * Signing key used by the exchange to sign the
    * deposit confirmation.
@@ -198,6 +208,7 @@ do_retry (void *cls)
  *
  * @param cls closure.
  * @param hr HTTP response details
+ * @param exchange_timestamp when did the exchange receive the deposit 
permission
  * @param exchange_sig signature provided by the exchange
  *        (NULL on errors)
  * @param exchange_pub public key of the exchange,
@@ -206,6 +217,7 @@ do_retry (void *cls)
 static void
 deposit_cb (void *cls,
             const struct TALER_EXCHANGE_HttpResponse *hr,
+            const struct GNUNET_TIME_Absolute exchange_timestamp,
             const struct TALER_ExchangeSignatureP *exchange_sig,
             const struct TALER_ExchangePublicKeyP *exchange_pub)
 {
@@ -254,6 +266,7 @@ deposit_cb (void *cls,
   if (MHD_HTTP_OK == hr->http_status)
   {
     ds->deposit_succeeded = GNUNET_YES;
+    ds->exchange_timestamp = exchange_timestamp;
     ds->exchange_pub = *exchange_pub;
     ds->exchange_sig = *exchange_sig;
   }
@@ -305,7 +318,7 @@ deposit_run (void *cls,
     ds->coin_index = ods->coin_index;
     ds->wire_details = json_incref (ods->wire_details);
     ds->contract_terms = json_incref (ods->contract_terms);
-    ds->timestamp = ods->timestamp;
+    ds->wallet_timestamp = ods->wallet_timestamp;
     ds->refund_deadline = ods->refund_deadline;
     ds->amount = ods->amount;
     ds->merchant_priv = ods->merchant_priv;
@@ -366,6 +379,7 @@ deposit_run (void *cls,
     TALER_TESTING_interpreter_fail (is);
     return;
   }
+  ds->deposit_fee = denom_pub->fee_deposit;
   GNUNET_CRYPTO_eddsa_key_get_public (&coin_priv->eddsa_priv,
                                       &coin_pub.eddsa_pub);
 
@@ -379,39 +393,27 @@ deposit_run (void *cls,
   }
   else
   {
-    ds->refund_deadline = ds->timestamp;
-    wire_deadline = GNUNET_TIME_relative_to_absolute
-                      (GNUNET_TIME_UNIT_ZERO);
+    ds->refund_deadline = ds->wallet_timestamp;
+    wire_deadline = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_ZERO);
   }
   GNUNET_CRYPTO_eddsa_key_get_public (&ds->merchant_priv.eddsa_priv,
                                       &merchant_pub.eddsa_pub);
-
   (void) GNUNET_TIME_round_abs (&wire_deadline);
-
   {
-    struct TALER_DepositRequestPS dr;
-
-    memset (&dr, 0, sizeof (dr));
-    dr.purpose.size = htonl
-                        (sizeof (struct TALER_DepositRequestPS));
-    dr.purpose.purpose = htonl
-                           (TALER_SIGNATURE_WALLET_COIN_DEPOSIT);
-    dr.h_contract_terms = h_contract_terms;
+    struct GNUNET_HashCode h_wire;
+
     GNUNET_assert (GNUNET_OK ==
                    TALER_JSON_merchant_wire_signature_hash (ds->wire_details,
-                                                            &dr.h_wire));
-    dr.timestamp = GNUNET_TIME_absolute_hton (ds->timestamp);
-    dr.refund_deadline = GNUNET_TIME_absolute_hton
-                           (ds->refund_deadline);
-    TALER_amount_hton (&dr.amount_with_fee,
-                       &ds->amount);
-    TALER_amount_hton (&dr.deposit_fee,
-                       &denom_pub->fee_deposit);
-    dr.merchant = merchant_pub;
-    dr.coin_pub = coin_pub;
-    GNUNET_CRYPTO_eddsa_sign (&coin_priv->eddsa_priv,
-                              &dr,
-                              &coin_sig.eddsa_signature);
+                                                            &h_wire));
+    TALER_EXCHANGE_deposit_permission_sign (&ds->amount,
+                                            &denom_pub->fee_deposit,
+                                            &h_wire,
+                                            &h_contract_terms,
+                                            coin_priv,
+                                            ds->wallet_timestamp,
+                                            &merchant_pub,
+                                            ds->refund_deadline,
+                                            &coin_sig);
   }
   ds->dh = TALER_EXCHANGE_deposit (is->exchange,
                                    &ds->amount,
@@ -421,7 +423,7 @@ deposit_run (void *cls,
                                    &coin_pub,
                                    denom_pub_sig,
                                    &denom_pub->key,
-                                   ds->timestamp,
+                                   ds->wallet_timestamp,
                                    &merchant_pub,
                                    ds->refund_deadline,
                                    &coin_sig,
@@ -532,8 +534,14 @@ deposit_traits (void *cls,
                                                ds->contract_terms),
       TALER_TESTING_make_trait_merchant_priv (0,
                                               &ds->merchant_priv),
-      TALER_TESTING_make_trait_amount_obj (0,
-                                           &ds->amount),
+      TALER_TESTING_make_trait_amount_obj (
+        TALER_TESTING_CMD_DEPOSIT_TRAIT_IDX_DEPOSIT_VALUE,
+        &ds->amount),
+      TALER_TESTING_make_trait_amount_obj (
+        TALER_TESTING_CMD_DEPOSIT_TRAIT_IDX_DEPOSIT_FEE,
+        &ds->deposit_fee),
+      TALER_TESTING_make_trait_absolute_time (0,
+                                              &ds->exchange_timestamp),
       TALER_TESTING_trait_end ()
     };
 
@@ -599,12 +607,12 @@ TALER_TESTING_cmd_deposit (const char *label,
                 label);
     GNUNET_assert (0);
   }
-  ds->timestamp = GNUNET_TIME_absolute_get ();
-  (void) GNUNET_TIME_round_abs (&ds->timestamp);
+  ds->wallet_timestamp = GNUNET_TIME_absolute_get ();
+  (void) GNUNET_TIME_round_abs (&ds->wallet_timestamp);
 
   json_object_set_new (ds->contract_terms,
                        "timestamp",
-                       GNUNET_JSON_from_time_abs (ds->timestamp));
+                       GNUNET_JSON_from_time_abs (ds->wallet_timestamp));
   if (0 != refund_deadline.rel_value_us)
   {
     ds->refund_deadline = GNUNET_TIME_relative_to_absolute (refund_deadline);
@@ -687,12 +695,12 @@ TALER_TESTING_cmd_deposit_with_ref (const char *label,
                 label);
     GNUNET_assert (0);
   }
-  ds->timestamp = GNUNET_TIME_absolute_get ();
-  (void) GNUNET_TIME_round_abs (&ds->timestamp);
+  ds->wallet_timestamp = GNUNET_TIME_absolute_get ();
+  (void) GNUNET_TIME_round_abs (&ds->wallet_timestamp);
 
   json_object_set_new (ds->contract_terms,
                        "timestamp",
-                       GNUNET_JSON_from_time_abs (ds->timestamp));
+                       GNUNET_JSON_from_time_abs (ds->wallet_timestamp));
   if (0 != refund_deadline.rel_value_us)
   {
     ds->refund_deadline = GNUNET_TIME_relative_to_absolute (refund_deadline);
diff --git a/src/testing/testing_api_cmd_deposits_get.c 
b/src/testing/testing_api_cmd_deposits_get.c
index fd02e75b..d5617ec2 100644
--- a/src/testing/testing_api_cmd_deposits_get.c
+++ b/src/testing/testing_api_cmd_deposits_get.c
@@ -81,29 +81,17 @@ struct TrackTransactionState
  *
  * @param cls closure.
  * @param hr HTTP response details
- * @param exchange_pub public key of the exchange
- * @param wtid wire transfer identifier, NULL if exchange did not
- *        execute the transaction yet.
- * @param execution_time actual or planned execution time for the
- *        wire transfer.
- * @param coin_contribution contribution to the total amount of
- *        the deposited coin (can be NULL).
+ * @param dd data about the wire transfer associated with the deposit
  */
 static void
 deposit_wtid_cb (void *cls,
                  const struct TALER_EXCHANGE_HttpResponse *hr,
-                 const struct TALER_ExchangePublicKeyP *exchange_pub,
-                 const struct TALER_WireTransferIdentifierRawP *wtid,
-                 struct GNUNET_TIME_Absolute execution_time,
-                 const struct TALER_Amount *coin_contribution)
+                 const struct TALER_EXCHANGE_DepositData *dd)
 {
   struct TrackTransactionState *tts = cls;
   struct TALER_TESTING_Interpreter *is = tts->is;
   struct TALER_TESTING_Command *cmd = &is->commands[is->ip];
 
-  (void) coin_contribution;
-  (void) exchange_pub;
-  (void) execution_time;
   tts->tth = NULL;
   if (tts->expected_response_code != hr->http_status)
   {
@@ -123,7 +111,7 @@ deposit_wtid_cb (void *cls,
   switch (hr->http_status)
   {
   case MHD_HTTP_OK:
-    tts->wtid = *wtid;
+    tts->wtid = dd->wtid;
     if (NULL != tts->bank_transfer_reference)
     {
       const struct TALER_TESTING_Command *bank_transfer_cmd;
@@ -151,7 +139,7 @@ deposit_wtid_cb (void *cls,
       }
 
       /* Compare that expected and gotten subjects match.  */
-      if (0 != GNUNET_memcmp (wtid,
+      if (0 != GNUNET_memcmp (&dd->wtid,
                               wtid_want))
       {
         GNUNET_break (0);
@@ -159,6 +147,8 @@ deposit_wtid_cb (void *cls,
         return;
       }
     }
+
+
     break;
   case MHD_HTTP_ACCEPTED:
     /* allowed, nothing to check here */
diff --git a/src/testing/testing_api_cmd_insert_deposit.c 
b/src/testing/testing_api_cmd_insert_deposit.c
index 35652800..cff2884a 100644
--- a/src/testing/testing_api_cmd_insert_deposit.c
+++ b/src/testing/testing_api_cmd_insert_deposit.c
@@ -57,6 +57,11 @@ struct InsertDepositState
    */
   struct GNUNET_TIME_Relative wire_deadline;
 
+  /**
+   * When did the exchange receive the deposit?
+   */
+  struct GNUNET_TIME_Absolute exchange_timestamp;
+
   /**
    * Amount to deposit, inclusive of deposit fee.
    */
@@ -210,6 +215,7 @@ insert_deposit_run (void *cls,
        (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
         ids->dbc->plugin->insert_deposit (ids->dbc->plugin->cls,
                                           ids->dbc->session,
+                                          ids->exchange_timestamp,
                                           &deposit)) ||
        (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS !=
         ids->dbc->plugin->commit (ids->dbc->plugin->cls,
@@ -275,6 +281,7 @@ insert_deposit_traits (void *cls,
  * @param dbc collects database plugin and session handles.
  * @param merchant_name Human-readable name of the merchant.
  * @param merchant_account merchant's account name (NOT a payto:// URI)
+ * @param exchange_timestamp when did the exchange receive the deposit
  * @param wire_deadline point in time where the aggregator should have
  *        wired money to the merchant.
  * @param amount_with_fee amount to deposit (inclusive of deposit fee)
@@ -282,21 +289,24 @@ insert_deposit_traits (void *cls,
  * @return the command.
  */
 struct TALER_TESTING_Command
-TALER_TESTING_cmd_insert_deposit (const char *label,
-                                  const struct
-                                  TALER_TESTING_DatabaseConnection *dbc,
-                                  const char *merchant_name,
-                                  const char *merchant_account,
-                                  struct GNUNET_TIME_Relative wire_deadline,
-                                  const char *amount_with_fee,
-                                  const char *deposit_fee)
+TALER_TESTING_cmd_insert_deposit (
+  const char *label,
+  const struct TALER_TESTING_DatabaseConnection *dbc,
+  const char *merchant_name,
+  const char *merchant_account,
+  struct GNUNET_TIME_Absolute exchange_timestamp,
+  struct GNUNET_TIME_Relative wire_deadline,
+  const char *amount_with_fee,
+  const char *deposit_fee)
 {
   struct InsertDepositState *ids;
 
+  GNUNET_TIME_round_abs (&exchange_timestamp);
   ids = GNUNET_new (struct InsertDepositState);
   ids->dbc = dbc;
   ids->merchant_name = merchant_name;
   ids->merchant_account = merchant_account;
+  ids->exchange_timestamp = exchange_timestamp;
   ids->wire_deadline = wire_deadline;
   ids->amount_with_fee = amount_with_fee;
   ids->deposit_fee = deposit_fee;
diff --git a/src/testing/testing_api_cmd_refund.c 
b/src/testing/testing_api_cmd_refund.c
index 47f5a060..e662ace2 100644
--- a/src/testing/testing_api_cmd_refund.c
+++ b/src/testing/testing_api_cmd_refund.c
@@ -43,11 +43,6 @@ struct RefundState
    */
   const char *refund_amount;
 
-  /**
-   * Expected refund fee.
-   */
-  const char *refund_fee;
-
   /**
    * Reference to any command that can provide a coin to refund.
    */
@@ -81,6 +76,7 @@ struct RefundState
  *
  * @param cls closure
  * @param hr HTTP response details
+ * @param refund_fee the refund fee the exchange charged
  * @param exchange_pub public key the exchange
  *        used for signing @a obj.
  * @param exchange_sig actual signature confirming the refund
@@ -88,6 +84,7 @@ struct RefundState
 static void
 refund_cb (void *cls,
            const struct TALER_EXCHANGE_HttpResponse *hr,
+           const struct TALER_Amount *refund_fee,
            const struct TALER_ExchangePublicKeyP *exchange_pub,
            const struct TALER_ExchangeSignatureP *exchange_sig)
 {
@@ -95,6 +92,7 @@ refund_cb (void *cls,
   struct RefundState *rs = cls;
   struct TALER_TESTING_Command *refund_cmd;
 
+  (void) refund_fee;
   refund_cmd = &rs->is->commands[rs->is->ip];
   rs->rh = NULL;
   if (rs->expected_response_code != hr->http_status)
@@ -133,7 +131,6 @@ refund_run (void *cls,
   struct TALER_CoinSpendPublicKeyP coin;
   const json_t *contract_terms;
   struct GNUNET_HashCode h_contract_terms;
-  struct TALER_Amount refund_fee;
   struct TALER_Amount refund_amount;
   const struct TALER_MerchantPrivateKeyP *merchant_priv;
   const struct TALER_TESTING_Command *coin_cmd;
@@ -153,19 +150,6 @@ refund_run (void *cls,
     TALER_TESTING_interpreter_fail (is);
     return;
   }
-  if (GNUNET_OK !=
-      TALER_string_to_amount (rs->refund_fee,
-                              &refund_fee))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Failed to parse amount `%s' at %u/%s\n",
-                rs->refund_fee,
-                is->ip,
-                cmd->label);
-    TALER_TESTING_interpreter_fail (is);
-    return;
-  }
-
   coin_cmd = TALER_TESTING_interpreter_lookup_command (is,
                                                        rs->coin_reference);
   if (NULL == coin_cmd)
@@ -211,7 +195,6 @@ refund_run (void *cls,
   }
   rs->rh = TALER_EXCHANGE_refund (rs->exchange,
                                   &refund_amount,
-                                  &refund_fee,
                                   &h_contract_terms,
                                   &coin,
                                   rs->refund_transaction_id,
@@ -254,7 +237,6 @@ refund_cleanup (void *cls,
  * @param label command label.
  * @param expected_response_code expected HTTP status code.
  * @param refund_amount the amount to ask a refund for.
- * @param refund_fee expected refund fee.
  * @param coin_reference reference to a command that can
  *        provide a coin to be refunded.
  *
@@ -264,7 +246,6 @@ struct TALER_TESTING_Command
 TALER_TESTING_cmd_refund (const char *label,
                           unsigned int expected_response_code,
                           const char *refund_amount,
-                          const char *refund_fee,
                           const char *coin_reference)
 {
   struct RefundState *rs;
@@ -273,7 +254,6 @@ TALER_TESTING_cmd_refund (const char *label,
 
   rs->expected_response_code = expected_response_code;
   rs->refund_amount = refund_amount;
-  rs->refund_fee = refund_fee;
   rs->coin_reference = coin_reference;
   {
     struct TALER_TESTING_Command cmd = {
@@ -295,7 +275,6 @@ TALER_TESTING_cmd_refund (const char *label,
  * @param label command label.
  * @param expected_response_code expected HTTP status code.
  * @param refund_amount the amount to ask a refund for.
- * @param refund_fee expected refund fee.
  * @param coin_reference reference to a command that can
  *        provide a coin to be refunded.
  * @param refund_transaction_id transaction id to use
@@ -308,7 +287,6 @@ TALER_TESTING_cmd_refund_with_id
   (const char *label,
   unsigned int expected_response_code,
   const char *refund_amount,
-  const char *refund_fee,
   const char *coin_reference,
   uint64_t refund_transaction_id)
 {
@@ -317,7 +295,6 @@ TALER_TESTING_cmd_refund_with_id
   rs = GNUNET_new (struct RefundState);
   rs->expected_response_code = expected_response_code;
   rs->refund_amount = refund_amount;
-  rs->refund_fee = refund_fee;
   rs->coin_reference = coin_reference;
   rs->refund_transaction_id = refund_transaction_id;
   {
diff --git a/src/testing/testing_api_cmd_rewind.c 
b/src/testing/testing_api_cmd_rewind.c
new file mode 100644
index 00000000..cde966d7
--- /dev/null
+++ b/src/testing/testing_api_cmd_rewind.c
@@ -0,0 +1,222 @@
+/*
+  This file is part of TALER
+  Copyright (C) 2014-2020 Taler Systems SA
+
+  TALER is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as
+  published by the Free Software Foundation; either version 3, or
+  (at your option) any later version.
+
+  TALER is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public
+  License along with TALER; see the file COPYING.  If not, see
+  <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file testing/testing_api_cmd_rewind.c
+ * @brief command to rewind the instruction pointer.
+ * @author Marcello Stanisci
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include <taler/taler_exchange_service.h>
+#include <taler/taler_testing_lib.h>
+#include "taler_testing_lib.h"
+
+
+/**
+ * State for a "rewind" CMD.
+ */
+struct RewindIpState
+{
+  /**
+   * Instruction pointer to set into the interpreter.
+   */
+  const char *target_label;
+
+  /**
+   * How many times this set should take place.  However, this value lives at
+   * the calling process, and this CMD is only in charge of checking and
+   * decremeting it.
+   */
+  unsigned int counter;
+};
+
+
+/**
+ * Only defined to respect the API.
+ */
+static void
+rewind_ip_cleanup (void *cls,
+                   const struct TALER_TESTING_Command *cmd)
+{
+  (void) cls;
+  (void) cmd;
+}
+
+
+/**
+ * Seek for the @a target command in @a batch (and rewind to it
+ * if successful).
+ *
+ * @param is the interpreter state (for failures)
+ * @param cmd batch to search for @a target
+ * @param target command to search for
+ * @return #GNUNET_OK on success, #GNUNET_NO if target was not found,
+ *         #GNUNET_SYSERR if target is in the future and we failed
+ */
+static int
+seek_batch (struct TALER_TESTING_Interpreter *is,
+            const struct TALER_TESTING_Command *cmd,
+            const struct TALER_TESTING_Command *target)
+{
+  unsigned int new_ip;
+#define BATCH_INDEX 1
+  struct TALER_TESTING_Command *batch;
+  struct TALER_TESTING_Command *current;
+  struct TALER_TESTING_Command *icmd;
+  const struct TALER_TESTING_Command *match;
+
+  current = TALER_TESTING_cmd_batch_get_current (cmd);
+  GNUNET_assert (GNUNET_OK ==
+                 TALER_TESTING_get_trait_cmd (cmd,
+                                              BATCH_INDEX,
+                                              &batch));
+  match = NULL;
+  for (new_ip = 0;
+       NULL != (icmd = &batch[new_ip]);
+       new_ip++)
+  {
+    if (current == target)
+      current = NULL;
+    if (icmd == target)
+    {
+      match = icmd;
+      break;
+    }
+    if (TALER_TESTING_cmd_is_batch (icmd))
+    {
+      int ret = seek_batch (is,
+                            icmd,
+                            target);
+      if (GNUNET_SYSERR == ret)
+        return GNUNET_SYSERR; /* failure! */
+      if (GNUNET_OK == ret)
+      {
+        match = icmd;
+        break;
+      }
+    }
+  }
+  if (NULL == current)
+  {
+    /* refuse to jump forward */
+    GNUNET_break (0);
+    TALER_TESTING_interpreter_fail (is);
+    return GNUNET_SYSERR;
+  }
+  if (NULL == match)
+    return GNUNET_NO; /* not found */
+  TALER_TESTING_cmd_batch_set_current (cmd,
+                                       new_ip);
+  return GNUNET_OK;
+}
+
+
+/**
+ * Run the "rewind" CMD.
+ *
+ * @param cls closure.
+ * @param cmd command being executed now.
+ * @param is the interpreter state.
+ */
+static void
+rewind_ip_run (void *cls,
+               const struct TALER_TESTING_Command *cmd,
+               struct TALER_TESTING_Interpreter *is)
+{
+  struct RewindIpState *ris = cls;
+  const struct TALER_TESTING_Command *target;
+  unsigned int new_ip;
+
+  (void) cmd;
+  if (0 == ris->counter)
+  {
+    TALER_TESTING_interpreter_next (is);
+    return;
+  }
+  target
+    = TALER_TESTING_interpreter_lookup_command (is,
+                                                ris->target_label);
+  if (NULL == target)
+  {
+    GNUNET_break (0);
+    TALER_TESTING_interpreter_fail (is);
+    return;
+  }
+  ris->counter--;
+  for (new_ip = 0;
+       NULL != is->commands[new_ip].label;
+       new_ip++)
+  {
+    const struct TALER_TESTING_Command *cmd = &is->commands[new_ip];
+
+    if (cmd == target)
+      break;
+    if (TALER_TESTING_cmd_is_batch (cmd))
+    {
+      int ret = seek_batch (is,
+                            cmd,
+                            target);
+      if (GNUNET_SYSERR == ret)
+        return;   /* failure! */
+      if (GNUNET_OK == ret)
+        break;
+    }
+  }
+  if (new_ip > is->ip)
+  {
+    /* refuse to jump forward */
+    GNUNET_break (0);
+    TALER_TESTING_interpreter_fail (is);
+    return;
+  }
+  is->ip = new_ip - 1; /* -1 because the next function will advance by one */
+  TALER_TESTING_interpreter_next (is);
+}
+
+
+/**
+ * Make the instruction pointer point to @a new_ip
+ * only if @a counter is greater than zero.
+ *
+ * @param label command label
+ * @param target_label label of the new instruction pointer's destination 
after the jump;
+ *                     must be before the current instruction
+ * @param counter counts how many times the rewinding is to happen.
+ */
+struct TALER_TESTING_Command
+TALER_TESTING_cmd_rewind_ip (const char *label,
+                             const char *target_label,
+                             unsigned int counter)
+{
+  struct RewindIpState *ris;
+
+  ris = GNUNET_new (struct RewindIpState);
+  ris->target_label = target_label;
+  ris->counter = counter;
+  {
+    struct TALER_TESTING_Command cmd = {
+      .cls = ris,
+      .label = label,
+      .run = &rewind_ip_run,
+      .cleanup = &rewind_ip_cleanup
+    };
+
+    return cmd;
+  }
+}
diff --git a/src/testing/testing_api_cmd_stat.c 
b/src/testing/testing_api_cmd_stat.c
index cf6d0b48..9461a22c 100644
--- a/src/testing/testing_api_cmd_stat.c
+++ b/src/testing/testing_api_cmd_stat.c
@@ -40,7 +40,6 @@ stat_cleanup (void *cls,
   (void) cls;
   (void) cmd;
   /* nothing to clean.  */
-  return;
 }
 
 
diff --git a/src/testing/testing_api_cmd_transfer_get.c 
b/src/testing/testing_api_cmd_transfer_get.c
index 699313e5..3ca319cb 100644
--- a/src/testing/testing_api_cmd_transfer_get.c
+++ b/src/testing/testing_api_cmd_transfer_get.c
@@ -121,37 +121,18 @@ track_transfer_cleanup (void *cls,
  *
  * @param cls closure.
  * @param hr HTTP response details
- * @param exchange_pub public key the exchange used for signing
- *        the response.
- * @param h_wire hash of the wire transfer address the transfer
- *        went to, or NULL on error.
- * @param execution_time time when the exchange claims to have
- *        performed the wire transfer.
- * @param total_amount total amount of the wire transfer, or NULL
- *        if the exchange could not provide any @a wtid (set only
- *        if @a http_status is "200 OK").
- * @param wire_fee wire fee that was charged by the exchange.
- * @param details_length length of the @a details array.
- * @param details array with details about the combined
- *        transactions.
+ * @param ta transfer data returned by the exchange
  */
 static void
 track_transfer_cb (void *cls,
                    const struct TALER_EXCHANGE_HttpResponse *hr,
-                   const struct TALER_ExchangePublicKeyP *exchange_pub,
-                   const struct GNUNET_HashCode *h_wire,
-                   struct GNUNET_TIME_Absolute execution_time,
-                   const struct TALER_Amount *total_amount,
-                   const struct TALER_Amount *wire_fee,
-                   unsigned int details_length,
-                   const struct TALER_TrackTransferDetails *details)
+                   const struct TALER_EXCHANGE_TransferData *ta)
 {
   struct TrackTransferState *tts = cls;
   struct TALER_TESTING_Interpreter *is = tts->is;
   struct TALER_TESTING_Command *cmd = &is->commands[is->ip];
   struct TALER_Amount expected_amount;
 
-  (void) exchange_pub;
   tts->tth = NULL;
   if (tts->expected_response_code != hr->http_status)
   {
@@ -193,14 +174,14 @@ track_transfer_cb (void *cls,
       TALER_TESTING_interpreter_fail (is);
       return;
     }
-    if (0 != TALER_amount_cmp (total_amount,
+    if (0 != TALER_amount_cmp (&ta->total_amount,
                                &expected_amount))
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Total amount mismatch to command %s - "
                   "%s vs %s\n",
                   cmd->label,
-                  TALER_amount_to_string (total_amount),
+                  TALER_amount_to_string (&ta->total_amount),
                   TALER_amount_to_string (&expected_amount));
       json_dumpf (hr->reply,
                   stderr,
@@ -219,7 +200,7 @@ track_transfer_cb (void *cls,
       return;
     }
 
-    if (0 != TALER_amount_cmp (wire_fee,
+    if (0 != TALER_amount_cmp (&ta->wire_fee,
                                &expected_amount))
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -266,7 +247,7 @@ track_transfer_cb (void *cls,
                      TALER_JSON_merchant_wire_signature_hash (wire_details,
                                                               
&h_wire_details));
       if (0 != GNUNET_memcmp (&h_wire_details,
-                              h_wire))
+                              &ta->h_wire))
       {
         GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                     "Wire hash missmath to command %s\n",
@@ -301,7 +282,7 @@ track_transfer_cb (void *cls,
         TALER_TESTING_interpreter_fail (is);
         return;
       }
-      if (0 != TALER_amount_cmp (total_amount,
+      if (0 != TALER_amount_cmp (&ta->total_amount,
                                  total_amount_from_reference))
       {
         GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
diff --git a/src/testing/testing_api_loop.c b/src/testing/testing_api_loop.c
index 992dcbfd..fceff423 100644
--- a/src/testing/testing_api_loop.c
+++ b/src/testing/testing_api_loop.c
@@ -69,6 +69,7 @@ TALER_TESTING_interpreter_lookup_command (struct 
TALER_TESTING_Interpreter *is,
 #define BATCH_INDEX 1
       struct TALER_TESTING_Command *batch;
       struct TALER_TESTING_Command *current;
+      struct TALER_TESTING_Command *icmd;
       const struct TALER_TESTING_Command *match;
 
       current = TALER_TESTING_cmd_batch_get_current (cmd);
@@ -79,15 +80,15 @@ TALER_TESTING_interpreter_lookup_command (struct 
TALER_TESTING_Interpreter *is,
       /* We must do the loop forward, but we can find the last match */
       match = NULL;
       for (unsigned int j = 0;
-           NULL != (cmd = &batch[j])->label;
+           NULL != (icmd = &batch[j])->label;
            j++)
       {
-        if (current == cmd)
+        if (current == icmd)
           break; /* do not go past current command */
-        if ( (NULL != cmd->label) &&
-             (0 == strcmp (cmd->label,
+        if ( (NULL != icmd->label) &&
+             (0 == strcmp (icmd->label,
                            label)) )
-          match = cmd;
+          match = icmd;
       }
       if (NULL != match)
         return match;
diff --git a/src/testing/testing_api_trait_json.c 
b/src/testing/testing_api_trait_json.c
index cbddad53..e12f1e9a 100644
--- a/src/testing/testing_api_trait_json.c
+++ b/src/testing/testing_api_trait_json.c
@@ -30,6 +30,7 @@
 
 #define TALER_TESTING_TRAIT_WIRE_DETAILS "wire-details"
 #define TALER_TESTING_TRAIT_EXCHANGE_KEYS "exchange-keys"
+#define TALER_TESTING_TRAIT_JSON "json"
 
 /**
  * Obtain serialized exchange keys from @a cmd.
@@ -120,4 +121,45 @@ TALER_TESTING_make_trait_wire_details
 }
 
 
+/**
+ * Obtain json from @a cmd.
+ *
+ * @param cmd command to extract the json from.
+ * @param index index number associate with the json on offer.
+ * @param[out] json where to write the json.
+ * @return #GNUNET_OK on success.
+ */
+int
+TALER_TESTING_get_trait_json (const struct TALER_TESTING_Command *cmd,
+                              unsigned int index,
+                              const json_t **json)
+{
+  return cmd->traits (cmd->cls,
+                      (const void **) json,
+                      TALER_TESTING_TRAIT_JSON,
+                      index);
+}
+
+
+/**
+ * Offer json in a trait.
+ *
+ * @param index index number associate with the json
+ *        on offer.
+ * @param json json to offer.
+ * @return the trait.
+ */
+struct TALER_TESTING_Trait
+TALER_TESTING_make_trait_json (unsigned int index,
+                               const json_t *json)
+{
+  struct TALER_TESTING_Trait ret = {
+    .index = index,
+    .trait_name = TALER_TESTING_TRAIT_JSON,
+    .ptr = (const json_t *) json
+  };
+  return ret;
+}
+
+
 /* end of testing_api_trait_json.c */
diff --git a/src/testing/testing_api_trait_number.c 
b/src/testing/testing_api_trait_number.c
index 50ce6d8c..ed25593e 100644
--- a/src/testing/testing_api_trait_number.c
+++ b/src/testing/testing_api_trait_number.c
@@ -28,7 +28,9 @@
 #include "taler_testing_lib.h"
 
 #define TALER_TESTING_TRAIT_UINT "uint"
+#define TALER_TESTING_TRAIT_UINT32 "uint-32"
 #define TALER_TESTING_TRAIT_UINT64 "uint-64"
+#define TALER_TESTING_TRAIT_INT64 "int-64"
 #define TALER_TESTING_TRAIT_BANK_ROW "bank-transaction-row"
 
 
@@ -72,6 +74,45 @@ TALER_TESTING_make_trait_uint (unsigned int index,
 }
 
 
+/**
+ * Obtain a "number" value from @a cmd, 32-bit version.
+ *
+ * @param cmd command to extract the number from.
+ * @param index the number's index number.
+ * @param[out] n set to the number coming from @a cmd.
+ * @return #GNUNET_OK on success.
+ */
+int
+TALER_TESTING_get_trait_uint32 (const struct TALER_TESTING_Command *cmd,
+                                unsigned int index,
+                                const uint32_t **n)
+{
+  return cmd->traits (cmd->cls,
+                      (const void **) n,
+                      TALER_TESTING_TRAIT_UINT32,
+                      index);
+}
+
+
+/**
+ * Offer number trait, 32-bit version.
+ *
+ * @param index the number's index number.
+ * @param n number to offer.
+ */
+struct TALER_TESTING_Trait
+TALER_TESTING_make_trait_uint32 (unsigned int index,
+                                 const uint32_t *n)
+{
+  struct TALER_TESTING_Trait ret = {
+    .index = index,
+    .trait_name = TALER_TESTING_TRAIT_UINT32,
+    .ptr = (const void *) n
+  };
+  return ret;
+}
+
+
 /**
  * Obtain a "number" value from @a cmd, 64-bit version.
  *
@@ -111,6 +152,45 @@ TALER_TESTING_make_trait_uint64 (unsigned int index,
 }
 
 
+/**
+ * Obtain a "number" value from @a cmd, 64-bit signed version.
+ *
+ * @param cmd command to extract the number from.
+ * @param index the number's index number.
+ * @param[out] n set to the number coming from @a cmd.
+ * @return #GNUNET_OK on success.
+ */
+int
+TALER_TESTING_get_trait_int64 (const struct TALER_TESTING_Command *cmd,
+                               unsigned int index,
+                               const int64_t **n)
+{
+  return cmd->traits (cmd->cls,
+                      (const void **) n,
+                      TALER_TESTING_TRAIT_INT64,
+                      index);
+}
+
+
+/**
+ * Offer number trait, 64-bit signed version.
+ *
+ * @param index the number's index number.
+ * @param n number to offer.
+ */
+struct TALER_TESTING_Trait
+TALER_TESTING_make_trait_int64 (unsigned int index,
+                                const int64_t *n)
+{
+  struct TALER_TESTING_Trait ret = {
+    .index = index,
+    .trait_name = TALER_TESTING_TRAIT_INT64,
+    .ptr = (const void *) n
+  };
+  return ret;
+}
+
+
 /**
  * Obtain a bank transaction row value from @a cmd.
  *
diff --git a/src/testing/testing_api_trait_time.c 
b/src/testing/testing_api_trait_time.c
index c77489bf..207246be 100644
--- a/src/testing/testing_api_trait_time.c
+++ b/src/testing/testing_api_trait_time.c
@@ -29,6 +29,7 @@
 #include "taler_testing_lib.h"
 
 #define TALER_TESTING_TRAIT_TIME_ABS "time-abs"
+#define TALER_TESTING_TRAIT_TIME_REL "time-rel"
 
 /**
  * Obtain a absolute time from @a cmd.
@@ -73,4 +74,47 @@ TALER_TESTING_make_trait_absolute_time
 }
 
 
+/**
+ * Obtain a relative time from @a cmd.
+ *
+ * @param cmd command to extract trait from
+ * @param index which time to pick if
+ *        @a cmd has multiple on offer.
+ * @param[out] time set to the wanted WTID.
+ * @return #GNUNET_OK on success
+ */
+int
+TALER_TESTING_get_trait_relative_time (
+  const struct TALER_TESTING_Command *cmd,
+  unsigned int index,
+  const struct GNUNET_TIME_Relative **time)
+{
+  return cmd->traits (cmd->cls,
+                      (const void **) time,
+                      TALER_TESTING_TRAIT_TIME_REL,
+                      index);
+}
+
+
+/**
+ * Offer a relative time.
+ *
+ * @param index associate the object with this index
+ * @param time which object should be returned
+ * @return the trait.
+ */
+struct TALER_TESTING_Trait
+TALER_TESTING_make_trait_relative_time (
+  unsigned int index,
+  const struct GNUNET_TIME_Relative *time)
+{
+  struct TALER_TESTING_Trait ret = {
+    .index = index,
+    .trait_name = TALER_TESTING_TRAIT_TIME_REL,
+    .ptr = (const void *) time
+  };
+  return ret;
+}
+
+
 /* end of testing_api_trait_time.c */
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index 4e22f0a0..5ff3b898 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -42,6 +42,7 @@ libtalerutil_la_SOURCES = \
   payto.c \
   url.c \
   util.c \
+  yna.c \
   os_installation.c
 
 libtalerutil_la_LIBADD = \
diff --git a/src/util/yna.c b/src/util/yna.c
new file mode 100644
index 00000000..fa7cf934
--- /dev/null
+++ b/src/util/yna.c
@@ -0,0 +1,88 @@
+/*
+  This file is part of TALER
+  Copyright (C) 2020 Taler Systems SA
+
+  TALER is free software; you can redistribute it and/or modify it under the
+  terms of the GNU General Public License as published by the Free Software
+  Foundation; either version 3, or (at your option) any later version.
+
+  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License along with
+  TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file yna.c
+ * @brief Utility functions for yes/no/all filters
+ * @author Jonathan Buchanan
+ */
+#include "platform.h"
+#include "taler_util.h"
+
+
+/**
+ * Convert query argument to @a yna value.
+ *
+ * @param connection connection to take query argument from
+ * @param arg argument to try for
+ * @param default_val value to assign if the argument is not present
+ * @param[out] value to set
+ * @return true on success, false if the parameter was malformed
+ */
+bool
+TALER_arg_to_yna (struct MHD_Connection *connection,
+                  const char *arg,
+                  enum TALER_EXCHANGE_YesNoAll default_val,
+                  enum TALER_EXCHANGE_YesNoAll *yna)
+{
+  const char *str;
+
+  str = MHD_lookup_connection_value (connection,
+                                     MHD_GET_ARGUMENT_KIND,
+                                     arg);
+  if (NULL == str)
+  {
+    *yna = default_val;
+    return true;
+  }
+  if (0 == strcasecmp (str, "yes"))
+  {
+    *yna = TALER_EXCHANGE_YNA_YES;
+    return true;
+  }
+  if (0 == strcasecmp (str, "no"))
+  {
+    *yna = TALER_EXCHANGE_YNA_NO;
+    return true;
+  }
+  if (0 == strcasecmp (str, "all"))
+  {
+    *yna = TALER_EXCHANGE_YNA_ALL;
+    return true;
+  }
+  return false;
+}
+
+
+/**
+ * Convert YNA value to a string.
+ *
+ * @param yna value to convert
+ * @return string representation ("yes"/"no"/"all").
+ */
+const char *
+TALER_yna_to_string (enum TALER_EXCHANGE_YesNoAll yna)
+{
+  switch (yna)
+  {
+  case TALER_EXCHANGE_YNA_YES:
+    return "yes";
+  case TALER_EXCHANGE_YNA_NO:
+    return "no";
+  case TALER_EXCHANGE_YNA_ALL:
+    return "all";
+  }
+  GNUNET_assert (0);
+}

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]