--- a/mozilla-bmo1491289.patch Tue Dec 11 08:48:38 2018 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24896 +0,0 @@
-diff --git a/third_party/prio/LICENSE b/third_party/prio/LICENSE
-deleted file mode 100644
---- a/third_party/prio/LICENSE
-+++ /dev/null
-@@ -1,373 +0,0 @@
--Mozilla Public License Version 2.0
--==================================
--
--1. Definitions
----------------
--
--1.1. "Contributor"
-- means each individual or legal entity that creates, contributes to
-- the creation of, or owns Covered Software.
--
--1.2. "Contributor Version"
-- means the combination of the Contributions of others (if any) used
-- by a Contributor and that particular Contributor's Contribution.
--
--1.3. "Contribution"
-- means Covered Software of a particular Contributor.
--
--1.4. "Covered Software"
-- means Source Code Form to which the initial Contributor has attached
-- the notice in Exhibit A, the Executable Form of such Source Code
-- Form, and Modifications of such Source Code Form, in each case
-- including portions thereof.
--
--1.5. "Incompatible With Secondary Licenses"
-- means
--
-- (a) that the initial Contributor has attached the notice described
-- in Exhibit B to the Covered Software; or
--
-- (b) that the Covered Software was made available under the terms of
-- version 1.1 or earlier of the License, but not also under the
-- terms of a Secondary License.
--
--1.6. "Executable Form"
-- means any form of the work other than Source Code Form.
--
--1.7. "Larger Work"
-- means a work that combines Covered Software with other material, in
-- a separate file or files, that is not Covered Software.
--
--1.8. "License"
-- means this document.
--
--1.9. "Licensable"
-- means having the right to grant, to the maximum extent possible,
-- whether at the time of the initial grant or subsequently, any and
-- all of the rights conveyed by this License.
--
--1.10. "Modifications"
-- means any of the following:
--
-- (a) any file in Source Code Form that results from an addition to,
-- deletion from, or modification of the contents of Covered
-- Software; or
--
-- (b) any new file in Source Code Form that contains any Covered
-- Software.
--
--1.11. "Patent Claims" of a Contributor
-- means any patent claim(s), including without limitation, method,
-- process, and apparatus claims, in any patent Licensable by such
-- Contributor that would be infringed, but for the grant of the
-- License, by the making, using, selling, offering for sale, having
-- made, import, or transfer of either its Contributions or its
-- Contributor Version.
--
--1.12. "Secondary License"
-- means either the GNU General Public License, Version 2.0, the GNU
-- Lesser General Public License, Version 2.1, the GNU Affero General
-- Public License, Version 3.0, or any later versions of those
-- licenses.
--
--1.13. "Source Code Form"
-- means the form of the work preferred for making modifications.
--
--1.14. "You" (or "Your")
-- means an individual or a legal entity exercising rights under this
-- License. For legal entities, "You" includes any entity that
-- controls, is controlled by, or is under common control with You. For
-- purposes of this definition, "control" means (a) the power, direct
-- or indirect, to cause the direction or management of such entity,
-- whether by contract or otherwise, or (b) ownership of more than
-- fifty percent (50%) of the outstanding shares or beneficial
-- ownership of such entity.
--
--2. License Grants and Conditions
----------------------------------
--
--2.1. Grants
--
--Each Contributor hereby grants You a world-wide, royalty-free,
--non-exclusive license:
--
--(a) under intellectual property rights (other than patent or trademark)
-- Licensable by such Contributor to use, reproduce, make available,
-- modify, display, perform, distribute, and otherwise exploit its
-- Contributions, either on an unmodified basis, with Modifications, or
-- as part of a Larger Work; and
--
--(b) under Patent Claims of such Contributor to make, use, sell, offer
-- for sale, have made, import, and otherwise transfer either its
-- Contributions or its Contributor Version.
--
--2.2. Effective Date
--
--The licenses granted in Section 2.1 with respect to any Contribution
--become effective for each Contribution on the date the Contributor first
--distributes such Contribution.
--
--2.3. Limitations on Grant Scope
--
--The licenses granted in this Section 2 are the only rights granted under
--this License. No additional rights or licenses will be implied from the
--distribution or licensing of Covered Software under this License.
--Notwithstanding Section 2.1(b) above, no patent license is granted by a
--Contributor:
--
--(a) for any code that a Contributor has removed from Covered Software;
-- or
--
--(b) for infringements caused by: (i) Your and any other third party's
-- modifications of Covered Software, or (ii) the combination of its
-- Contributions with other software (except as part of its Contributor
-- Version); or
--
--(c) under Patent Claims infringed by Covered Software in the absence of
-- its Contributions.
--
--This License does not grant any rights in the trademarks, service marks,
--or logos of any Contributor (except as may be necessary to comply with
--the notice requirements in Section 3.4).
--
--2.4. Subsequent Licenses
--
--No Contributor makes additional grants as a result of Your choice to
--distribute the Covered Software under a subsequent version of this
--License (see Section 10.2) or under the terms of a Secondary License (if
--permitted under the terms of Section 3.3).
--
--2.5. Representation
--
--Each Contributor represents that the Contributor believes its
--Contributions are its original creation(s) or it has sufficient rights
--to grant the rights to its Contributions conveyed by this License.
--
--2.6. Fair Use
--
--This License is not intended to limit any rights You have under
--applicable copyright doctrines of fair use, fair dealing, or other
--equivalents.
--
--2.7. Conditions
--
--Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
--in Section 2.1.
--
--3. Responsibilities
---------------------
--
--3.1. Distribution of Source Form
--
--All distribution of Covered Software in Source Code Form, including any
--Modifications that You create or to which You contribute, must be under
--the terms of this License. You must inform recipients that the Source
--Code Form of the Covered Software is governed by the terms of this
--License, and how they can obtain a copy of this License. You may not
--attempt to alter or restrict the recipients' rights in the Source Code
--Form.
--
--3.2. Distribution of Executable Form
--
--If You distribute Covered Software in Executable Form then:
--
--(a) such Covered Software must also be made available in Source Code
-- Form, as described in Section 3.1, and You must inform recipients of
-- the Executable Form how they can obtain a copy of such Source Code
-- Form by reasonable means in a timely manner, at a charge no more
-- than the cost of distribution to the recipient; and
--
--(b) You may distribute such Executable Form under the terms of this
-- License, or sublicense it under different terms, provided that the
-- license for the Executable Form does not attempt to limit or alter
-- the recipients' rights in the Source Code Form under this License.
--
--3.3. Distribution of a Larger Work
--
--You may create and distribute a Larger Work under terms of Your choice,
--provided that You also comply with the requirements of this License for
--the Covered Software. If the Larger Work is a combination of Covered
--Software with a work governed by one or more Secondary Licenses, and the
--Covered Software is not Incompatible With Secondary Licenses, this
--License permits You to additionally distribute such Covered Software
--under the terms of such Secondary License(s), so that the recipient of
--the Larger Work may, at their option, further distribute the Covered
--Software under the terms of either this License or such Secondary
--License(s).
--
--3.4. Notices
--
--You may not remove or alter the substance of any license notices
--(including copyright notices, patent notices, disclaimers of warranty,
--or limitations of liability) contained within the Source Code Form of
--the Covered Software, except that You may alter any license notices to
--the extent required to remedy known factual inaccuracies.
--
--3.5. Application of Additional Terms
--
--You may choose to offer, and to charge a fee for, warranty, support,
--indemnity or liability obligations to one or more recipients of Covered
--Software. However, You may do so only on Your own behalf, and not on
--behalf of any Contributor. You must make it absolutely clear that any
--such warranty, support, indemnity, or liability obligation is offered by
--You alone, and You hereby agree to indemnify every Contributor for any
--liability incurred by such Contributor as a result of warranty, support,
--indemnity or liability terms You offer. You may include additional
--disclaimers of warranty and limitations of liability specific to any
--jurisdiction.
--
--4. Inability to Comply Due to Statute or Regulation
-----------------------------------------------------
--
--If it is impossible for You to comply with any of the terms of this
--License with respect to some or all of the Covered Software due to
--statute, judicial order, or regulation then You must: (a) comply with
--the terms of this License to the maximum extent possible; and (b)
--describe the limitations and the code they affect. Such description must
--be placed in a text file included with all distributions of the Covered
--Software under this License. Except to the extent prohibited by statute
--or regulation, such description must be sufficiently detailed for a
--recipient of ordinary skill to be able to understand it.
--
--5. Termination
----------------
--
--5.1. The rights granted under this License will terminate automatically
--if You fail to comply with any of its terms. However, if You become
--compliant, then the rights granted under this License from a particular
--Contributor are reinstated (a) provisionally, unless and until such
--Contributor explicitly and finally terminates Your grants, and (b) on an
--ongoing basis, if such Contributor fails to notify You of the
--non-compliance by some reasonable means prior to 60 days after You have
--come back into compliance. Moreover, Your grants from a particular
--Contributor are reinstated on an ongoing basis if such Contributor
--notifies You of the non-compliance by some reasonable means, this is the
--first time You have received notice of non-compliance with this License
--from such Contributor, and You become compliant prior to 30 days after
--Your receipt of the notice.
--
--5.2. If You initiate litigation against any entity by asserting a patent
--infringement claim (excluding declaratory judgment actions,
--counter-claims, and cross-claims) alleging that a Contributor Version
--directly or indirectly infringes any patent, then the rights granted to
--You by any and all Contributors for the Covered Software under Section
--2.1 of this License shall terminate.
--
--5.3. In the event of termination under Sections 5.1 or 5.2 above, all
--end user license agreements (excluding distributors and resellers) which
--have been validly granted by You or Your distributors under this License
--prior to termination shall survive termination.
--
--************************************************************************
--* *
--* 6. Disclaimer of Warranty *
--* ------------------------- *
--* *
--* Covered Software is provided under this License on an "as is" *
--* basis, without warranty of any kind, either expressed, implied, or *
--* statutory, including, without limitation, warranties that the *
--* Covered Software is free of defects, merchantable, fit for a *
--* particular purpose or non-infringing. The entire risk as to the *
--* quality and performance of the Covered Software is with You. *
--* Should any Covered Software prove defective in any respect, You *
--* (not any Contributor) assume the cost of any necessary servicing, *
--* repair, or correction. This disclaimer of warranty constitutes an *
--* essential part of this License. No use of any Covered Software is *
--* authorized under this License except under this disclaimer. *
--* *
--************************************************************************
--
--************************************************************************
--* *
--* 7. Limitation of Liability *
--* -------------------------- *
--* *
--* Under no circumstances and under no legal theory, whether tort *
--* (including negligence), contract, or otherwise, shall any *
--* Contributor, or anyone who distributes Covered Software as *
--* permitted above, be liable to You for any direct, indirect, *
--* special, incidental, or consequential damages of any character *
--* including, without limitation, damages for lost profits, loss of *
--* goodwill, work stoppage, computer failure or malfunction, or any *
--* and all other commercial damages or losses, even if such party *
--* shall have been informed of the possibility of such damages. This *
--* limitation of liability shall not apply to liability for death or *
--* personal injury resulting from such party's negligence to the *
--* extent applicable law prohibits such limitation. Some *
--* jurisdictions do not allow the exclusion or limitation of *
--* incidental or consequential damages, so this exclusion and *
--* limitation may not apply to You. *
--* *
--************************************************************************
--
--8. Litigation
---------------
--
--Any litigation relating to this License may be brought only in the
--courts of a jurisdiction where the defendant maintains its principal
--place of business and such litigation shall be governed by laws of that
--jurisdiction, without reference to its conflict-of-law provisions.
--Nothing in this Section shall prevent a party's ability to bring
--cross-claims or counter-claims.
--
--9. Miscellaneous
------------------
--
--This License represents the complete agreement concerning the subject
--matter hereof. If any provision of this License is held to be
--unenforceable, such provision shall be reformed only to the extent
--necessary to make it enforceable. Any law or regulation which provides
--that the language of a contract shall be construed against the drafter
--shall not be used to construe this License against a Contributor.
--
--10. Versions of the License
-----------------------------
--
--10.1. New Versions
--
--Mozilla Foundation is the license steward. Except as provided in Section
--10.3, no one other than the license steward has the right to modify or
--publish new versions of this License. Each version will be given a
--distinguishing version number.
--
--10.2. Effect of New Versions
--
--You may distribute the Covered Software under the terms of the version
--of the License under which You originally received the Covered Software,
--or under the terms of any subsequent version published by the license
--steward.
--
--10.3. Modified Versions
--
--If you create software not governed by this License, and you want to
--create a new license for such software, you may create and use a
--modified version of this License if you rename the license and remove
--any references to the name of the license steward (except to note that
--such modified license differs from this License).
--
--10.4. Distributing Source Code Form that is Incompatible With Secondary
--Licenses
--
--If You choose to distribute Source Code Form that is Incompatible With
--Secondary Licenses under the terms of this version of the License, the
--notice described in Exhibit B of this License must be attached.
--
--Exhibit A - Source Code Form License Notice
---------------------------------------------
--
-- This Source Code Form is subject to the terms of the Mozilla Public
-- License, v. 2.0. If a copy of the MPL was not distributed with this
-- file, You can obtain one at http://mozilla.org/MPL/2.0/.
--
--If it is not possible or desirable to put the notice in a particular
--file, then You may include the notice in a location (such as a LICENSE
--file in a relevant directory) where a recipient would be likely to look
--for such a notice.
--
--You may add additional accurate notices of copyright ownership.
--
--Exhibit B - "Incompatible With Secondary Licenses" Notice
-----------------------------------------------------------
--
-- This Source Code Form is "Incompatible With Secondary Licenses", as
-- defined by the Mozilla Public License, v. 2.0.
-diff --git a/third_party/prio/README-mozilla b/third_party/prio/README-mozilla
---- a/third_party/prio/README-mozilla
-+++ b/third_party/prio/README-mozilla
-@@ -1,7 +1,7 @@
- This directory contains the Prio source from the upstream repo:
- https://github.com/mozilla/libprio
-
--Current version: 1.0 [commit bfbcf1f95001047c61f4a29c3e68499b2f0c9f3b]
-+Current version: 1.1 [commit 488da2d729d73f18ed45add59edd18b257e1ceaa]
-
- UPDATING:
-
-@@ -14,4 +14,4 @@
- from within the third_party/libprio directory.
-
- If the collection of source files changes, manual updates to moz.build may be
--needed as we don't use the upstream makefiles.
-\ No newline at end of file
-+needed as we don't use the upstream makefiles.
-diff --git a/third_party/prio/README.md b/third_party/prio/README.md
-deleted file mode 100644
---- a/third_party/prio/README.md
-+++ /dev/null
-@@ -1,136 +0,0 @@
--# libprio - A Prio library in C using NSS
--
--**Warning:**
--We do our best to write bug-free code, but I have no doubt
--that there are scary bugs, side-channel attacks, and memory leaks
--lurking herein.
--
--**Important:**
--We have not yet implemented the items
--described in the "Security-Critical TODOs" section below.
--Without these features, do not use the code in a production environment.
--
--
--## Overview
--
--This is an implementation of the core cryptographic routines
--for the [Prio system](https://crypto.stanford.edu/prio/)
--for the private computation of aggregate statistics:
--> "Prio: Private, Robust, and Scalable Computation of Aggregate Statistics"<br>
--> by Henry Corrigan-Gibbs and Dan Boneh<br>
--> USENIX Symposium on Networked Systems Design and Implementation<br>
--> March 2017
-->
--> Available online at:
--> https://crypto.stanford.edu/prio/
--
--**Usage scenario.**
--The library implements the cryptographic routines necessary
--for the following application scenario:
--Each client holds a vector of boolean values.
--Each client uses the library to encode her private vector into two
--encoded packets—one for server A and one for server B.
--
--After receiving shares from a client, the servers can use the routines
--implemented here to check whether the client-provided packets are
--well formed.
--(Without this check, a single malicious client can corrupt the
--output of the computation.)
--
--After collecting data packets from many clients, the servers
--can combine their state to learn how many clients had the
--*i*th bit of their data vector set to `true` and how many
--clients had the *i*th bit of their data vector set to `false`.
--As long as at least one of the two servers is honest
--(i.e., runs the correct code),
--the servers learn *nothing else* about the clients' data,
--under standard cryptographic assumptions.
--
--For example, the *i*th bit of the data vector could indicate
--whether the client ever visited the *i*th-ranked website
--in the Alexa Top 500.
--The servers would learn how many clients visited each of the
--Top 500 websites *without learning* which clients visited
--which websites.
--
--**Efficiency considerations.**
--The code makes no use of public-key crypto, so it should
--be relatively fast.
--When each a data packet is of length *N*,
--all arithmetic is modulo a prime *p* (we use an 87-bit prime by default),
--and "elements" are integers modulo *p*,
--the dominant costs of the system are:
--* **Client compute:** O(*N* log *N*) multiplications
--* **Client-to-server communication:** 2*N* + O(1) elements<br>
--* **Server compute:** O(*N* log *N*) multiplications to check each packet<br>
-- (NOTE: Using an optimization we haven't yet implemented, we can
-- drop this cost to O(*N*) multiplications per packet.)
--* **Server-to-server communication:** O(1) elements
--* **Server storage:** O(*N*) elements
--
--## Running the code
--
--You must first install
--[NSS/NSPR](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS),
--[scons](http://scons.org/), and
--[msgpack-c](https://github.com/msgpack/msgpack-c) version 2.1.5 (or newer?).
--On Ubuntu, you can instal NSS and scons with:
--
-- $ sudo apt install scons libnspr4-dev libnss3-dev
--
--and you will have to download [msgpack-c 2.1.5 or newer here](https://github.com/msgpack/msgpack-c/releases),
--since the Ubuntu packages for msgpack are far out of date.
--
--For macOS using Homebrew:
-- $ brew install nss nspr scons msgpack
--
-- $ export LDFLAGS="-L/usr/local/opt/nss/lib"
-- $ export CPPFLAGS="-I/usr/local/opt/nss/include -I/usr/local/opt/nspr/include/nspr"
--
--To compile the code, run:
--
-- $ scons
--
--To run the test suite, execute:
--
-- $ build/ptest/ptest -v
--
--To print debug messages while compiling:
--
-- $ scons VERBOSE=1
--
--To compile with debug symbols, run:
--
-- $ scons BUILDTYPE=DEBUG
--
--To clean up the object and binary files, run:
--
-- $ scons -c
--
--The files in this directory are:
--````
--/build - Binaries, object files, etc.
--/include - Exported header files
-- (Note: The public header is <mprio.h> since
-- NSPR already has a file called <prio.h>.)
--/mpi - NSS MPI bignum library
--/pclient - Example code that uses the Prio library
--/prio - Prio library core code
--/ptest - Tests and test runner
--````
--
--## Optimizations and features not yet implemented
--* **Server compute.**
-- By using a fast polynomial interpolation-and-evaluation
-- routine, we can reduce the cost of checking a single client
-- request from O(*N* log *N*) multiplications down to O(*N*)
-- multiplications, for a data packet of *N* items.
--* **Differential privacy.**
-- It would be very straightforward to add some small amount of
-- noise to the final statistics to provide differential privacy.
-- If this would be useful, I can add it.
--* **Misc.**
-- There are TODO notes scattered throughout code indicating
-- places for potential performance optimizations.
--
--
-diff --git a/third_party/prio/SConstruct b/third_party/prio/SConstruct
-deleted file mode 100644
---- a/third_party/prio/SConstruct
-+++ /dev/null
-@@ -1,41 +0,0 @@
--# This Source Code Form is subject to the terms of the Mozilla Public
--# License, v. 2.0. If a copy of the MPL was not distributed with this
--# file, You can obtain one at http://mozilla.org/MPL/2.0/.
--
--import os
--import SCons
--
--opts = Variables()
--opts.AddVariables(
-- BoolVariable("DEBUG", "Make debug build", 1),
-- BoolVariable("VERBOSE", "Show full build information", 0))
--
--env = Environment(options = opts,
-- ENV = os.environ)
--if "CFLAGS" in os.environ:
-- env.Append(CFLAGS = SCons.Util.CLVar(os.getenv("CFLAGS")))
--if "CPPFLAGS" in os.environ:
-- env.Append(CPPFLAGS = SCons.Util.CLVar(os.getenv("CPPFLAGS")))
--if "CXXFLAGS" in os.environ:
-- env.Append(CXXFLAGS = SCons.Util.CLVar(os.getenv("CXXFLAGS")))
--if "LDFLAGS" in os.environ:
-- env.Append(LINKFLAGS = SCons.Util.CLVar(os.getenv("LDFLAGS")))
--
--if env["DEBUG"]:
-- print "DEBUG MODE!"
-- env.Append(CPPFLAGS = [ "-g", "-DDEBUG"])
--
--env.Append(LIBS = ["mprio", "mpi", "nss3", "nspr4"], \
-- LIBPATH = ['#build/prio', "#build/mpi"],
-- CFLAGS = [ "-Wall", "-Werror", "-Wextra", "-O3", "-std=c99",
-- "-I/usr/include/nspr", "-Impi", "-DDO_PR_CLEANUP"])
--
--env.Append(CPPPATH = ["#include", "#."])
--Export('env')
--
--SConscript('browser-test/SConscript', variant_dir='build/browser-test')
--SConscript('mpi/SConscript', variant_dir='build/mpi')
--SConscript('pclient/SConscript', variant_dir='build/pclient')
--SConscript('prio/SConscript', variant_dir='build/prio')
--SConscript('ptest/SConscript', variant_dir='build/ptest')
--
-diff --git a/third_party/prio/browser-test/SConscript b/third_party/prio/browser-test/SConscript
-deleted file mode 100644
---- a/third_party/prio/browser-test/SConscript
-+++ /dev/null
-@@ -1,19 +0,0 @@
--import sys
--
--Import('env')
--
--prio_env = env.Clone()
--
--src = [
-- "main.c",
--]
--
--libs = [
-- "mprio",
-- "msgpackc",
--]
--
--prio_env.Append(LIBS = libs)
--prio_env.Install("encode-once.js")
--prio_env.Program("browser-test", src)
--
-diff --git a/third_party/prio/browser-test/encode-once.js b/third_party/prio/browser-test/encode-once.js
-deleted file mode 100644
---- a/third_party/prio/browser-test/encode-once.js
-+++ /dev/null
-@@ -1,45 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--ChromeUtils.import('resource://gre/modules/Services.jsm');
--
--let [publicKeyA, publicKeyB, batchID, param1, param2, param3] = arguments;
--
--Services.prefs.setStringPref('prio.publicKeyA', publicKeyA);
--Services.prefs.setStringPref('prio.publicKeyB', publicKeyB);
--
--async function test() {
-- let params = {
-- 'startupCrashDetected': Number(param1),
-- 'safeModeUsage': Number(param2),
-- 'browserIsUserDefault': Number(param3)
-- };
--
-- try {
-- let result = await PrioEncoder.encode(batchID, params);
--
-- const toTypedArray = byteString => {
-- let u8Array = new Uint8Array(byteString.length);
-- for (let i in byteString) {
-- u8Array[i] = byteString.charCodeAt(i);
-- }
-- return u8Array;
-- }
--
-- const toHexString = bytes =>
-- bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0') + ',', '');
--
-- console.log(toHexString(result.a) + '$' + toHexString(result.b));
-- console.log('');
-- } catch(e) {
-- console.log('Failure.', e);
-- console.log(v);
-- }
--}
--
--test().then();
-diff --git a/third_party/prio/browser-test/main.c b/third_party/prio/browser-test/main.c
-deleted file mode 100644
---- a/third_party/prio/browser-test/main.c
-+++ /dev/null
-@@ -1,320 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--#define _GNU_SOURCE
--
--#include <mprio.h>
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--#include <time.h>
--
--#include "prio/encrypt.h"
--#include "prio/util.h"
--
--static void
--init_data (bool *data, int datalen)
--{
-- // The client's data submission is an arbitrary boolean vector.
-- for (int i=0; i < datalen; i++) {
-- // Arbitrary data
-- data[i] = rand () % 2;
-- }
--}
--
--static SECStatus
--read_string_from_hex (unsigned char **str_out, unsigned int *strLen,
-- const char *input, const char **new_input)
--{
-- SECStatus rv = SECSuccess;
-- *strLen = 0;
-- int read = 0;
-- int outCount = 0;
-- const char *inp = input;
--
-- while (true) {
-- unsigned char byte = '\0';
-- const int retval = sscanf(inp, "%02hhx,%n", &byte, &read);
-- if (retval < 1 || read != 3) {
-- break;
-- }
--
-- inp += read;
-- (*str_out)[outCount] = byte;
-- outCount++;
-- *strLen = *strLen + 1;
-- }
--
-- if (new_input)
-- *new_input = inp + 1;
--
-- return rv;
--}
--
--static SECStatus
--read_browser_reply (FILE *infile,
-- unsigned char **for_server_a, unsigned int *aLen,
-- unsigned char **for_server_b, unsigned int *bLen)
--{
-- SECStatus rv = SECFailure;
-- char *raw_input = NULL;
-- size_t rawLen = 0;
--
-- puts ("Getting line of input.");
-- P_CHECKCB (getline (&raw_input, &rawLen, infile) > 0);
-- puts ("Got line of input.");
--
-- P_CHECKA (*for_server_a = malloc (rawLen * sizeof (unsigned char)));
-- P_CHECKA (*for_server_b = malloc (rawLen * sizeof (unsigned char)));
--
-- *aLen = 0;
-- *bLen = 0;
--
-- P_CHECKCB (rawLen > 14);
--
-- // Header is 14 chars long
-- const char *new_input;
-- puts ("Reading string A");
-- P_CHECKC (read_string_from_hex (for_server_a, aLen, raw_input + 14, &new_input));
-- puts ("Read string A");
--
-- // Skip over for_server_a string and one-char delimeter
-- puts ("Reading string B");
-- P_CHECKC (read_string_from_hex (for_server_b, bLen, new_input, NULL));
-- puts ("Read string B");
--
--cleanup:
-- if (raw_input) free (raw_input);
-- return rv;
--}
--
--static int
--verify_full (const char *path_to_xpcshell, int pathlen)
--{
-- SECStatus rv = SECSuccess;
--
-- PublicKey pkA = NULL;
-- PublicKey pkB = NULL;
-- PrivateKey skA = NULL;
-- PrivateKey skB = NULL;
--
-- PrioConfig cfg = NULL;
-- PrioServer sA = NULL;
-- PrioServer sB = NULL;
-- PrioVerifier vA = NULL;
-- PrioVerifier vB = NULL;
-- PrioPacketVerify1 p1A = NULL;
-- PrioPacketVerify1 p1B = NULL;
-- PrioPacketVerify2 p2A = NULL;
-- PrioPacketVerify2 p2B = NULL;
-- PrioTotalShare tA = NULL;
-- PrioTotalShare tB = NULL;
--
-- FILE *shell = NULL;
-- int cmdlen = pathlen + 2*CURVE25519_KEY_LEN_HEX + 128;
-- char cmd[cmdlen];
-- memset (cmd, 0, cmdlen);
--
-- unsigned char *for_server_a = NULL;
-- unsigned char *for_server_b = NULL;
--
-- const int seed = time (NULL);
-- srand (seed);
-- printf ("Using srand seed %d\n", seed);
--
-- // Number of different boolean data fields we collect.
-- const int ndata = 3;
--
-- //unsigned char batch_id_str[] = "abcde";
-- unsigned char batch_id_str[32];
-- memset (batch_id_str, 0, sizeof batch_id_str);
-- snprintf ((char *)batch_id_str, sizeof batch_id_str, "%d", rand());
--
-- bool data_items[ndata];
-- unsigned long output[ndata];
-- init_data (data_items, ndata);
--
-- // Initialize NSS random number generator.
-- P_CHECKC (Prio_init ());
--
-- // Generate keypairs for servers
-- P_CHECKC (Keypair_new (&skA, &pkA));
-- P_CHECKC (Keypair_new (&skB, &pkB));
--
-- // Export public keys to hex and print to stdout
-- unsigned char pk_hexA[CURVE25519_KEY_LEN_HEX+1];
-- unsigned char pk_hexB[CURVE25519_KEY_LEN_HEX+1];
-- P_CHECKC (PublicKey_export_hex (pkA, pk_hexA));
-- P_CHECKC (PublicKey_export_hex (pkB, pk_hexB));
--
-- snprintf (cmd, cmdlen, "%s %s %s %s %s %d %d %d",
-- path_to_xpcshell, "encode-once.js",
-- pk_hexA, pk_hexB, batch_id_str,
-- data_items[0], data_items[1], data_items[2]);
--
-- printf ("> %s\n", cmd);
-- P_CHECKA (shell = popen(cmd, "r"));
-- puts("Ran command.");
--
-- // Use the default configuration parameters.
-- P_CHECKA (cfg = PrioConfig_new (ndata, pkA, pkB, batch_id_str,
-- strlen ((char *)batch_id_str)));
--
-- PrioPRGSeed server_secret;
-- P_CHECKC (PrioPRGSeed_randomize (&server_secret));
--
-- // Initialize two server objects. The role of the servers need not
-- // be symmetric. In a deployment, we envision that:
-- // * Server A is the main telemetry server that is always online.
-- // Clients send their encrypted data packets to Server A and
-- // Server A stores them.
-- // * Server B only comes online when the two servers want to compute
-- // the final aggregate statistics.
-- P_CHECKA (sA = PrioServer_new (cfg, PRIO_SERVER_A, skA, server_secret));
-- P_CHECKA (sB = PrioServer_new (cfg, PRIO_SERVER_B, skB, server_secret));
--
-- // Initialize empty verifier objects
-- P_CHECKA (vA = PrioVerifier_new (sA));
-- P_CHECKA (vB = PrioVerifier_new (sB));
--
-- // Initialize shares of final aggregate statistics
-- P_CHECKA (tA = PrioTotalShare_new ());
-- P_CHECKA (tB = PrioTotalShare_new ());
--
-- // Initialize shares of verification packets
-- P_CHECKA (p1A = PrioPacketVerify1_new ());
-- P_CHECKA (p1B = PrioPacketVerify1_new ());
-- P_CHECKA (p2A = PrioPacketVerify2_new ());
-- P_CHECKA (p2B = PrioPacketVerify2_new ());
--
-- // I. CLIENT DATA SUBMISSION.
-- //
-- // Read in the client data packets
-- unsigned int aLen = 0, bLen = 0;
--
-- puts ("Reading...");
-- P_CHECKC (read_browser_reply (shell, &for_server_a, &aLen, &for_server_b, &bLen));
-- printf ("Read reply from browser. LenA: %u, LenB: %u\n", aLen, bLen);
--
-- // II. VALIDATION PROTOCOL. (at servers)
-- //
-- // The servers now run a short 2-step protocol to check each
-- // client's packet:
-- // 1) Servers A and B broadcast one message (PrioPacketVerify1)
-- // to each other.
-- // 2) Servers A and B broadcast another message (PrioPacketVerify2)
-- // to each other.
-- // 3) Servers A and B can both determine whether the client's data
-- // submission is well-formed (in which case they add it to their
-- // running total of aggregate statistics) or ill-formed
-- // (in which case they ignore it).
-- // These messages must be sent over an authenticated channel, so
-- // that each server is assured that every received message came
-- // from its peer.
--
-- // Set up a Prio verifier object.
-- P_CHECKC (PrioVerifier_set_data (vA, for_server_a, aLen));
-- P_CHECKC (PrioVerifier_set_data (vB, for_server_b, bLen));
-- puts("Imported data.");
--
-- // Both servers produce a packet1. Server A sends p1A to Server B
-- // and vice versa.
-- P_CHECKC (PrioPacketVerify1_set_data (p1A, vA));
-- P_CHECKC (PrioPacketVerify1_set_data (p1B, vB));
-- puts("Set data.");
--
-- // Both servers produce a packet2. Server A sends p2A to Server B
-- // and vice versa.
-- P_CHECKC (PrioPacketVerify2_set_data(p2A, vA, p1A, p1B));
-- P_CHECKC (PrioPacketVerify2_set_data(p2B, vB, p1A, p1B));
--
-- // Using p2A and p2B, the servers can determine whether the request
-- // is valid. (In fact, only Server A needs to perform this
-- // check, since Server A can just tell Server B whether the check
-- // succeeded or failed.)
-- puts ("Checking validity.");
-- P_CHECKC (PrioVerifier_isValid (vA, p2A, p2B));
-- P_CHECKC (PrioVerifier_isValid (vB, p2A, p2B));
-- puts ("Are valid.");
--
-- // If we get here, the client packet is valid, so add it to the aggregate
-- // statistic counter for both servers.
-- P_CHECKC (PrioServer_aggregate (sA, vA));
-- P_CHECKC (PrioServer_aggregate (sB, vB));
--
-- // The servers repeat the steps above for each client submission.
--
-- // III. PRODUCTION OF AGGREGATE STATISTICS.
-- //
-- // After collecting aggregates from MANY clients, the servers can compute
-- // their shares of the aggregate statistics.
-- //
-- // Server B can send tB to Server A.
-- P_CHECKC (PrioTotalShare_set_data (tA, sA));
-- P_CHECKC (PrioTotalShare_set_data (tB, sB));
--
-- // Once Server A has tA and tB, it can learn the aggregate statistics
-- // in the clear.
-- P_CHECKC (PrioTotalShare_final (cfg, output, tA, tB));
--
-- for (int i=0; i < ndata; i++) {
-- //printf("output[%d] = %lu\n", i, output[i]);
-- //printf("data[%d] = %d\n", i, (int)data_items[i]);
-- P_CHECKCB (output[i] == data_items[i]);
-- }
--
-- puts ("Success!");
--
--cleanup:
-- if (rv != SECSuccess) {
-- fprintf (stderr, "Warning: unexpected failure.\n");
-- }
--
-- if (for_server_a) free (for_server_a);
-- if (for_server_b) free (for_server_b);
--
-- PrioTotalShare_clear (tA);
-- PrioTotalShare_clear (tB);
--
-- PrioPacketVerify2_clear (p2A);
-- PrioPacketVerify2_clear (p2B);
--
-- PrioPacketVerify1_clear (p1A);
-- PrioPacketVerify1_clear (p1B);
--
-- PrioVerifier_clear (vA);
-- PrioVerifier_clear (vB);
--
-- PrioServer_clear (sA);
-- PrioServer_clear (sB);
-- PrioConfig_clear (cfg);
--
-- PublicKey_clear (pkA);
-- PublicKey_clear (pkB);
--
-- PrivateKey_clear (skA);
-- PrivateKey_clear (skB);
--
-- Prio_clear ();
--
-- return !(rv == SECSuccess);
--}
--
--int
--main (int argc, char **argv)
--{
-- puts("== Prio browser test utility. ==");
-- puts("(Note: Expects to be run in the same directory as encode-once.js.)");
-- if (argc != 2) {
-- fprintf (stderr, "Usage ./%s <path_to_xpcshell>\n", argv[0]);
-- return 1;
-- }
--
-- return verify_full (argv[1], strlen (argv[1]));
--}
--
-diff --git a/third_party/prio/include/mprio.h b/third_party/prio/include/mprio.h
---- a/third_party/prio/include/mprio.h
-+++ b/third_party/prio/include/mprio.h
-@@ -1,6 +1,6 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-@@ -13,10 +13,10 @@
- extern "C" {
- #endif
-
-+#include <blapit.h>
- #include <msgpack.h>
--#include <nss/blapit.h>
--#include <nss/pk11pub.h>
--#include <nss/seccomon.h>
-+#include <pk11pub.h>
-+#include <seccomon.h>
- #include <stdbool.h>
- #include <stddef.h>
-
-@@ -33,47 +33,44 @@
- /*
- * Type for each of the two servers.
- */
--typedef enum {
-- PRIO_SERVER_A,
-- PRIO_SERVER_B
--} PrioServerId;
-+typedef enum { PRIO_SERVER_A, PRIO_SERVER_B } PrioServerId;
-
- /*
- * Opaque types
- */
--typedef struct prio_config *PrioConfig;
--typedef const struct prio_config *const_PrioConfig;
-+typedef struct prio_config* PrioConfig;
-+typedef const struct prio_config* const_PrioConfig;
-
--typedef struct prio_server *PrioServer;
--typedef const struct prio_server *const_PrioServer;
-+typedef struct prio_server* PrioServer;
-+typedef const struct prio_server* const_PrioServer;
-
--typedef struct prio_verifier *PrioVerifier;
--typedef const struct prio_verifier *const_PrioVerifier;
-+typedef struct prio_verifier* PrioVerifier;
-+typedef const struct prio_verifier* const_PrioVerifier;
-
--typedef struct prio_packet_verify1 *PrioPacketVerify1;
--typedef const struct prio_packet_verify1 *const_PrioPacketVerify1;
-+typedef struct prio_packet_verify1* PrioPacketVerify1;
-+typedef const struct prio_packet_verify1* const_PrioPacketVerify1;
-
--typedef struct prio_packet_verify2 *PrioPacketVerify2;
--typedef const struct prio_packet_verify2 *const_PrioPacketVerify2;
-+typedef struct prio_packet_verify2* PrioPacketVerify2;
-+typedef const struct prio_packet_verify2* const_PrioPacketVerify2;
-
--typedef struct prio_total_share *PrioTotalShare;
--typedef const struct prio_total_share *const_PrioTotalShare;
-+typedef struct prio_total_share* PrioTotalShare;
-+typedef const struct prio_total_share* const_PrioTotalShare;
-
--typedef SECKEYPublicKey *PublicKey;
--typedef const SECKEYPublicKey *const_PublicKey;
-+typedef SECKEYPublicKey* PublicKey;
-+typedef const SECKEYPublicKey* const_PublicKey;
-
--typedef SECKEYPrivateKey *PrivateKey;
--typedef const SECKEYPrivateKey *const_PrivateKey;
-+typedef SECKEYPrivateKey* PrivateKey;
-+typedef const SECKEYPrivateKey* const_PrivateKey;
-
--/*
-+/*
- * Initialize and clear random number generator state.
- * You must call Prio_init() before using the library.
- * To avoid memory leaks, call Prio_clear() afterwards.
- */
--SECStatus Prio_init ();
-+SECStatus Prio_init();
- void Prio_clear();
-
--/*
-+/*
- * PrioConfig holds the system parameters. The two relevant things determined
- * by the config object are:
- * (1) the number of data fields we are collecting, and
-@@ -87,35 +84,37 @@
- * Each set of aggregate statistics should use a different `batch_id`.
- *
- * `PrioConfig_new` does not keep a pointer to the `batch_id` string that the
-- * caller passes in, so you may free the `batch_id` string as soon as
-+ * caller passes in, so you may free the `batch_id` string as soon as
- * `PrioConfig_new` returns.
- */
--PrioConfig PrioConfig_new (int n_fields, PublicKey server_a, PublicKey server_b,
-- const unsigned char *batch_id, unsigned int batch_id_len);
--void PrioConfig_clear (PrioConfig cfg);
--int PrioConfig_numDataFields (const_PrioConfig cfg);
-+PrioConfig PrioConfig_new(int n_fields, PublicKey server_a, PublicKey server_b,
-+ const unsigned char* batch_id,
-+ unsigned int batch_id_len);
-+void PrioConfig_clear(PrioConfig cfg);
-+int PrioConfig_numDataFields(const_PrioConfig cfg);
-
- /*
-- * Create a PrioConfig object with no encryption keys. This routine is
-+ * Create a PrioConfig object with no encryption keys. This routine is
- * useful for testing, but PrioClient_encode() will always fail when used with
- * this config.
- */
--PrioConfig PrioConfig_newTest (int n_fields);
-+PrioConfig PrioConfig_newTest(int n_fields);
-
--
--/*
-+/*
- * We use the PublicKey and PrivateKey objects for public-key encryption. Each
- * Prio server has an associated public key, and the clients use these keys to
- * encrypt messages to the servers.
- */
--SECStatus Keypair_new (PrivateKey *pvtkey, PublicKey *pubkey);
-+SECStatus Keypair_new(PrivateKey* pvtkey, PublicKey* pubkey);
-
- /*
-- * Import a new curve25519 public key from the raw bytes given. The key passed in
-+ * Import a new curve25519 public key from the raw bytes given. The key passed
-+ * in
- * as `data` should be of length `CURVE25519_KEY_LEN`. This function allocates
- * a new PublicKey object, which the caller must free using `PublicKey_clear`.
- */
--SECStatus PublicKey_import (PublicKey *pk, const unsigned char *data, unsigned int dataLen);
-+SECStatus PublicKey_import(PublicKey* pk, const unsigned char* data,
-+ unsigned int dataLen);
-
- /*
- * Import a new curve25519 public key from a hex string that contains only the
-@@ -123,138 +122,136 @@
- * length `CURVE25519_KEY_LEN_HEX`. This function allocates a new PublicKey
- * object, which the caller must free using `PublicKey_clear`.
- */
--SECStatus PublicKey_import_hex (PublicKey *pk, const unsigned char *hex_data,
-- unsigned int dataLen);
-+SECStatus PublicKey_import_hex(PublicKey* pk, const unsigned char* hex_data,
-+ unsigned int dataLen);
-
- /*
- * Export a curve25519 public key as a raw byte-array.
- */
--SECStatus PublicKey_export (const_PublicKey pk, unsigned char data[CURVE25519_KEY_LEN]);
-+SECStatus PublicKey_export(const_PublicKey pk,
-+ unsigned char data[CURVE25519_KEY_LEN]);
-
- /*
- * Export a curve25519 public key as a NULL-terminated hex string.
- */
--SECStatus PublicKey_export_hex (const_PublicKey pk,
-- unsigned char data[CURVE25519_KEY_LEN_HEX+1]);
--
-+SECStatus PublicKey_export_hex(const_PublicKey pk,
-+ unsigned char data[CURVE25519_KEY_LEN_HEX + 1]);
-
--void PublicKey_clear (PublicKey pubkey);
--void PrivateKey_clear (PrivateKey pvtkey);
--
-+void PublicKey_clear(PublicKey pubkey);
-+void PrivateKey_clear(PrivateKey pvtkey);
-
- /*
- * PrioPacketClient_encode
- *
-- * Takes as input a pointer to an array (`data_in`) of boolean values
-- * whose length is equal to the number of data fields specified in
-+ * Takes as input a pointer to an array (`data_in`) of boolean values
-+ * whose length is equal to the number of data fields specified in
- * the config. It then encodes the data for servers A and B into a
-- * string.
-+ * string.
- *
- * NOTE: The caller must free() the strings `for_server_a` and
- * `for_server_b` to avoid memory leaks.
- */
--SECStatus
--PrioClient_encode (const_PrioConfig cfg, const bool *data_in,
-- unsigned char **for_server_a, unsigned int *aLen,
-- unsigned char **for_server_b, unsigned int *bLen);
-+SECStatus PrioClient_encode(const_PrioConfig cfg, const bool* data_in,
-+ unsigned char** for_server_a, unsigned int* aLen,
-+ unsigned char** for_server_b, unsigned int* bLen);
-
- /*
- * Generate a new PRG seed using the NSS global randomness source.
- * Use this routine to initialize the secret that the two Prio servers
- * share.
- */
--SECStatus PrioPRGSeed_randomize (PrioPRGSeed *seed);
-+SECStatus PrioPRGSeed_randomize(PrioPRGSeed* seed);
-
- /*
- * The PrioServer object holds the state of the Prio servers.
- * Pass in the _same_ secret PRGSeed when initializing the two servers.
- * The PRGSeed must remain secret to the two servers.
- */
--PrioServer PrioServer_new (const_PrioConfig cfg, PrioServerId server_idx,
-- PrivateKey server_priv, const PrioPRGSeed server_shared_secret);
--void PrioServer_clear (PrioServer s);
-+PrioServer PrioServer_new(const_PrioConfig cfg, PrioServerId server_idx,
-+ PrivateKey server_priv,
-+ const PrioPRGSeed server_shared_secret);
-+void PrioServer_clear(PrioServer s);
-
--
--/*
-+/*
- * After receiving a client packet, each of the servers generate
- * a PrioVerifier object that they use to check whether the client's
- * encoded packet is well formed.
- */
--PrioVerifier PrioVerifier_new (PrioServer s);
--void PrioVerifier_clear (PrioVerifier v);
-+PrioVerifier PrioVerifier_new(PrioServer s);
-+void PrioVerifier_clear(PrioVerifier v);
-
--/*
-+/*
- * Read in encrypted data from the client, decrypt it, and prepare to check the
- * request for validity.
- */
--SECStatus PrioVerifier_set_data (PrioVerifier v,
-- unsigned char *data, unsigned int dataLen);
-+SECStatus PrioVerifier_set_data(PrioVerifier v, unsigned char* data,
-+ unsigned int dataLen);
-
- /*
- * Generate the first packet that servers need to exchange to verify the
- * client's submission. This should be sent over a TLS connection between the
- * servers.
- */
--PrioPacketVerify1 PrioPacketVerify1_new (void);
--void PrioPacketVerify1_clear (PrioPacketVerify1 p1);
-+PrioPacketVerify1 PrioPacketVerify1_new(void);
-+void PrioPacketVerify1_clear(PrioPacketVerify1 p1);
-
--SECStatus PrioPacketVerify1_set_data (PrioPacketVerify1 p1,
-- const_PrioVerifier v);
-+SECStatus PrioPacketVerify1_set_data(PrioPacketVerify1 p1,
-+ const_PrioVerifier v);
-
--SECStatus PrioPacketVerify1_write (const_PrioPacketVerify1 p,
-- msgpack_packer *pk);
--SECStatus PrioPacketVerify1_read (PrioPacketVerify1 p,
-- msgpack_unpacker *upk, const_PrioConfig cfg);
-+SECStatus PrioPacketVerify1_write(const_PrioPacketVerify1 p,
-+ msgpack_packer* pk);
-+SECStatus PrioPacketVerify1_read(PrioPacketVerify1 p, msgpack_unpacker* upk,
-+ const_PrioConfig cfg);
-
--/*
-+/*
- * Generate the second packet that the servers need to exchange to verify the
- * client's submission. The routine takes as input the PrioPacketVerify1
- * packets from both server A and server B.
- *
- * This should be sent over a TLS connection between the servers.
- */
--PrioPacketVerify2 PrioPacketVerify2_new (void);
--void PrioPacketVerify2_clear (PrioPacketVerify2 p);
-+PrioPacketVerify2 PrioPacketVerify2_new(void);
-+void PrioPacketVerify2_clear(PrioPacketVerify2 p);
-
--SECStatus PrioPacketVerify2_set_data (PrioPacketVerify2 p2, const_PrioVerifier v,
-- const_PrioPacketVerify1 p1A, const_PrioPacketVerify1 p1B);
-+SECStatus PrioPacketVerify2_set_data(PrioPacketVerify2 p2, const_PrioVerifier v,
-+ const_PrioPacketVerify1 p1A,
-+ const_PrioPacketVerify1 p1B);
-
--SECStatus PrioPacketVerify2_write (const_PrioPacketVerify2 p,
-- msgpack_packer *pk);
--SECStatus PrioPacketVerify2_read (PrioPacketVerify2 p,
-- msgpack_unpacker *upk, const_PrioConfig cfg);
-+SECStatus PrioPacketVerify2_write(const_PrioPacketVerify2 p,
-+ msgpack_packer* pk);
-+SECStatus PrioPacketVerify2_read(PrioPacketVerify2 p, msgpack_unpacker* upk,
-+ const_PrioConfig cfg);
-
--/*
-+/*
- * Use the PrioPacketVerify2s from both servers to check whether
- * the client's submission is well formed.
- */
--SECStatus PrioVerifier_isValid (const_PrioVerifier v,
-- const_PrioPacketVerify2 pA, const_PrioPacketVerify2 pB);
-+SECStatus PrioVerifier_isValid(const_PrioVerifier v, const_PrioPacketVerify2 pA,
-+ const_PrioPacketVerify2 pB);
-
- /*
- * Each of the two servers calls this routine to aggregate the data
- * submission from a client that is included in the PrioVerifier object.
- *
- * IMPORTANT: This routine does *not* check the validity of the client's
-- * data packet. The servers must execute the verification checks
-+ * data packet. The servers must execute the verification checks
- * above before aggregating any client data.
- */
--SECStatus PrioServer_aggregate (PrioServer s, PrioVerifier v);
-+SECStatus PrioServer_aggregate(PrioServer s, PrioVerifier v);
-
--/*
-+/*
- * After the servers have aggregated data packets from "enough" clients
- * (this determines the anonymity set size), each server runs this routine
-- * to get a share of the aggregate statistics.
-+ * to get a share of the aggregate statistics.
- */
--PrioTotalShare PrioTotalShare_new (void);
--void PrioTotalShare_clear (PrioTotalShare t);
-+PrioTotalShare PrioTotalShare_new(void);
-+void PrioTotalShare_clear(PrioTotalShare t);
-
--SECStatus PrioTotalShare_set_data (PrioTotalShare t, const_PrioServer s);
-+SECStatus PrioTotalShare_set_data(PrioTotalShare t, const_PrioServer s);
-
--SECStatus PrioTotalShare_write (const_PrioTotalShare t,
-- msgpack_packer *pk);
--SECStatus PrioTotalShare_read (PrioTotalShare t,
-- msgpack_unpacker *upk, const_PrioConfig cfg);
-+SECStatus PrioTotalShare_write(const_PrioTotalShare t, msgpack_packer* pk);
-+SECStatus PrioTotalShare_read(PrioTotalShare t, msgpack_unpacker* upk,
-+ const_PrioConfig cfg);
-
- /*
- * Read the output data into an array of unsigned longs. You should
-@@ -262,9 +259,9 @@
- * the pointer `output` points to a buffer large enough to store
- * one long per data field.
- */
--SECStatus PrioTotalShare_final (const_PrioConfig cfg, unsigned long *output,
-- const_PrioTotalShare tA, const_PrioTotalShare tB);
--
-+SECStatus PrioTotalShare_final(const_PrioConfig cfg, unsigned long* output,
-+ const_PrioTotalShare tA,
-+ const_PrioTotalShare tB);
-
- #endif /* __PRIO_H__ */
-
-diff --git a/third_party/prio/pclient/SConscript b/third_party/prio/pclient/SConscript
-deleted file mode 100644
---- a/third_party/prio/pclient/SConscript
-+++ /dev/null
-@@ -1,18 +0,0 @@
--import sys
--
--Import('env')
--
--prio_env = env.Clone()
--
--src = [
-- "main.c",
--]
--
--libs = [
-- "mprio",
-- "msgpackc",
--]
--
--prio_env.Append(LIBS = libs)
--prio_env.Program("pclient", src)
--
-diff --git a/third_party/prio/pclient/main.c b/third_party/prio/pclient/main.c
-deleted file mode 100644
---- a/third_party/prio/pclient/main.c
-+++ /dev/null
-@@ -1,229 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--#include <mprio.h>
--#include <stdio.h>
--#include <stdlib.h>
--
--#include "prio/util.h"
--
--int
--verify_full (void)
--{
-- SECStatus rv = SECSuccess;
--
-- PublicKey pkA = NULL;
-- PublicKey pkB = NULL;
-- PrivateKey skA = NULL;
-- PrivateKey skB = NULL;
--
-- PrioConfig cfg = NULL;
-- PrioServer sA = NULL;
-- PrioServer sB = NULL;
-- PrioVerifier vA = NULL;
-- PrioVerifier vB = NULL;
-- PrioPacketVerify1 p1A = NULL;
-- PrioPacketVerify1 p1B = NULL;
-- PrioPacketVerify2 p2A = NULL;
-- PrioPacketVerify2 p2B = NULL;
-- PrioTotalShare tA = NULL;
-- PrioTotalShare tB = NULL;
--
-- unsigned char *for_server_a = NULL;
-- unsigned char *for_server_b = NULL;
--
-- const unsigned char *batch_id = (unsigned char *)"prio_batch_2018-04-17";
-- const unsigned int batch_id_len = strlen ((char *)batch_id);
--
-- // Initialize NSS random number generator.
-- P_CHECKC (Prio_init ());
--
-- // Number of different boolean data fields we collect.
-- const int ndata = 100;
--
-- // Number of clients to simulate.
-- const int nclients = 10;
--
--
-- // New scope to avoid goto weirdness
-- {
-- bool data_items[ndata];
--
-- // Generate keypairs for servers
-- P_CHECKC (Keypair_new (&skA, &pkA));
-- P_CHECKC (Keypair_new (&skB, &pkB));
--
-- // Use the default configuration parameters.
-- P_CHECKA (cfg = PrioConfig_new (ndata, pkA, pkB, batch_id, batch_id_len));
--
-- PrioPRGSeed server_secret;
-- P_CHECKC (PrioPRGSeed_randomize (&server_secret));
--
-- // Initialize two server objects. The role of the servers need not
-- // be symmetric. In a deployment, we envision that:
-- // * Server A is the main telemetry server that is always online.
-- // Clients send their encrypted data packets to Server A and
-- // Server A stores them.
-- // * Server B only comes online when the two servers want to compute
-- // the final aggregate statistics.
-- P_CHECKA (sA = PrioServer_new (cfg, PRIO_SERVER_A, skA, server_secret));
-- P_CHECKA (sB = PrioServer_new (cfg, PRIO_SERVER_B, skB, server_secret));
--
-- // Initialize empty verifier objects
-- P_CHECKA (vA = PrioVerifier_new (sA));
-- P_CHECKA (vB = PrioVerifier_new (sB));
--
-- // Initialize shares of final aggregate statistics
-- P_CHECKA (tA = PrioTotalShare_new ());
-- P_CHECKA (tB = PrioTotalShare_new ());
--
-- // Initialize shares of verification packets
-- P_CHECKA (p1A = PrioPacketVerify1_new ());
-- P_CHECKA (p1B = PrioPacketVerify1_new ());
-- P_CHECKA (p2A = PrioPacketVerify2_new ());
-- P_CHECKA (p2B = PrioPacketVerify2_new ());
--
-- // Generate client data packets.
-- for (int c=0; c < nclients; c++) {
--
-- // The client's data submission is an arbitrary boolean vector.
-- for (int i=0; i < ndata; i++) {
-- // Arbitrary data
-- data_items[i] = (i % 3 == 1) || (c % 5 == 3);
-- }
--
-- // I. CLIENT DATA SUBMISSION.
-- //
-- // Construct the client data packets.
-- unsigned int aLen, bLen;
-- P_CHECKC (PrioClient_encode (cfg, data_items,
-- &for_server_a, &aLen, &for_server_b, &bLen));
--
-- // The Prio servers A and B can come online later (e.g., at the end of
-- // each day) to download the encrypted telemetry packets from the
-- // telemetry server and run the protocol that computes the aggregate
-- // statistics. In this way, the client only needs to send a
-- // single message (the pair of encrypted ClientPacketData packets)
-- // to a single server (the telemetry-data-collection server).
--
-- // THE CLIENT'S JOB IS DONE. The rest of the processing just takes place
-- // between the two servers A and B.
--
--
-- // II. VALIDATION PROTOCOL. (at servers)
-- //
-- // The servers now run a short 2-step protocol to check each
-- // client's packet:
-- // 1) Servers A and B broadcast one message (PrioPacketVerify1)
-- // to each other.
-- // 2) Servers A and B broadcast another message (PrioPacketVerify2)
-- // to each other.
-- // 3) Servers A and B can both determine whether the client's data
-- // submission is well-formed (in which case they add it to their
-- // running total of aggregate statistics) or ill-formed
-- // (in which case they ignore it).
-- // These messages must be sent over an authenticated channel, so
-- // that each server is assured that every received message came
-- // from its peer.
--
-- // Set up a Prio verifier object.
-- P_CHECKC (PrioVerifier_set_data (vA, for_server_a, aLen));
-- P_CHECKC (PrioVerifier_set_data (vB, for_server_b, bLen));
--
-- // Both servers produce a packet1. Server A sends p1A to Server B
-- // and vice versa.
-- P_CHECKC (PrioPacketVerify1_set_data (p1A, vA));
-- P_CHECKC (PrioPacketVerify1_set_data (p1B, vB));
--
-- // Both servers produce a packet2. Server A sends p2A to Server B
-- // and vice versa.
-- P_CHECKC (PrioPacketVerify2_set_data(p2A, vA, p1A, p1B));
-- P_CHECKC (PrioPacketVerify2_set_data(p2B, vB, p1A, p1B));
--
-- // Using p2A and p2B, the servers can determine whether the request
-- // is valid. (In fact, only Server A needs to perform this
-- // check, since Server A can just tell Server B whether the check
-- // succeeded or failed.)
-- P_CHECKC (PrioVerifier_isValid (vA, p2A, p2B));
-- P_CHECKC (PrioVerifier_isValid (vB, p2A, p2B));
--
-- // If we get here, the client packet is valid, so add it to the aggregate
-- // statistic counter for both servers.
-- P_CHECKC (PrioServer_aggregate (sA, vA));
-- P_CHECKC (PrioServer_aggregate (sB, vB));
--
-- free (for_server_a);
-- free (for_server_b);
-- for_server_a = NULL;
-- for_server_b = NULL;
-- }
--
-- // The servers repeat the steps above for each client submission.
--
-- // III. PRODUCTION OF AGGREGATE STATISTICS.
-- //
-- // After collecting aggregates from MANY clients, the servers can compute
-- // their shares of the aggregate statistics.
-- //
-- // Server B can send tB to Server A.
-- P_CHECKC (PrioTotalShare_set_data (tA, sA));
-- P_CHECKC (PrioTotalShare_set_data (tB, sB));
--
-- // Once Server A has tA and tB, it can learn the aggregate statistics
-- // in the clear.
-- unsigned long output[ndata];
-- P_CHECKC (PrioTotalShare_final (cfg, output, tA, tB));
--
-- // Now the output[i] contains a counter that indicates how many clients
-- // submitted TRUE for data value i. We print out this data.
-- for (int i=0; i < ndata; i++)
-- printf("output[%d] = %lu\n", i, output[i]);
-- }
--
--cleanup:
-- if (rv != SECSuccess) {
-- fprintf (stderr, "Warning: unexpected failure.\n");
-- }
--
-- if (for_server_a) free (for_server_a);
-- if (for_server_b) free (for_server_b);
--
-- PrioTotalShare_clear (tA);
-- PrioTotalShare_clear (tB);
--
-- PrioPacketVerify2_clear (p2A);
-- PrioPacketVerify2_clear (p2B);
--
-- PrioPacketVerify1_clear (p1A);
-- PrioPacketVerify1_clear (p1B);
--
-- PrioVerifier_clear (vA);
-- PrioVerifier_clear (vB);
--
-- PrioServer_clear (sA);
-- PrioServer_clear (sB);
-- PrioConfig_clear (cfg);
--
-- PublicKey_clear (pkA);
-- PublicKey_clear (pkB);
--
-- PrivateKey_clear (skA);
-- PrivateKey_clear (skB);
--
-- Prio_clear ();
--
-- return !(rv == SECSuccess);
--}
--
--int
--main (void)
--{
-- puts ("This utility demonstrates how to invoke the Prio API.");
-- return verify_full ();
--}
--
-diff --git a/third_party/prio/prio/SConscript b/third_party/prio/prio/SConscript
---- a/third_party/prio/prio/SConscript
-+++ b/third_party/prio/prio/SConscript
-@@ -21,9 +21,6 @@
- "msgpackc"
- ]
-
--# Enable mp_print()
--penv.Append(CFLAGS = ['-DMP_IOFUNC'])
--
- penv.Append(LIBS = libs)
- penv.StaticLibrary("mprio", src)
-
-diff --git a/third_party/prio/prio/client.h b/third_party/prio/prio/client.h
---- a/third_party/prio/prio/client.h
-+++ b/third_party/prio/prio/client.h
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #ifndef __CLIENT_H__
-@@ -13,23 +13,24 @@
- #include "prg.h"
- #include "share.h"
-
--
- /*
- * The PrioPacketClient object holds the encoded client data.
- * The client sends one packet to server A and one packet to
- * server B. The `for_server` parameter determines which server
- * the packet is for.
- */
--typedef struct prio_packet_client *PrioPacketClient;
--typedef const struct prio_packet_client *const_PrioPacketClient;
-+typedef struct prio_packet_client* PrioPacketClient;
-+typedef const struct prio_packet_client* const_PrioPacketClient;
-
--struct server_a_data {
-+struct server_a_data
-+{
- // These values are only set for server A.
- MPArray data_shares;
- MPArray h_points;
- };
-
--struct server_b_data {
-+struct server_b_data
-+{
- // This value is only used for server B.
- //
- // We use a pseudo-random generator to compress the secret-shared data
-@@ -39,9 +40,10 @@
- };
-
- /*
-- * The data that a Prio client sends to each server.
-+ * The data that a Prio client sends to each server.
- */
--struct prio_packet_client {
-+struct prio_packet_client
-+{
- // TODO: Can also use a PRG to avoid need for sending Beaver triple shares.
- // Since this optimization only saves ~30 bytes of communication, we haven't
- // bothered implementing it yet.
-@@ -50,25 +52,26 @@
- mp_int f0_share, g0_share, h0_share;
- PrioServerId for_server;
-
-- union {
-+ union
-+ {
- struct server_a_data A;
- struct server_b_data B;
- } shares;
- };
-
--
--PrioPacketClient PrioPacketClient_new (const_PrioConfig cfg, PrioServerId for_server);
--void PrioPacketClient_clear (PrioPacketClient p);
--SECStatus PrioPacketClient_set_data (const_PrioConfig cfg, const bool *data_in,
-- PrioPacketClient for_server_a, PrioPacketClient for_server_b);
-+PrioPacketClient PrioPacketClient_new(const_PrioConfig cfg,
-+ PrioServerId for_server);
-+void PrioPacketClient_clear(PrioPacketClient p);
-+SECStatus PrioPacketClient_set_data(const_PrioConfig cfg, const bool* data_in,
-+ PrioPacketClient for_server_a,
-+ PrioPacketClient for_server_b);
-
--SECStatus PrioPacketClient_decrypt (PrioPacketClient p,
-- const_PrioConfig cfg, PrivateKey server_priv,
-- const unsigned char *data_in, unsigned int data_len);
-+SECStatus PrioPacketClient_decrypt(PrioPacketClient p, const_PrioConfig cfg,
-+ PrivateKey server_priv,
-+ const unsigned char* data_in,
-+ unsigned int data_len);
-
--bool PrioPacketClient_areEqual (const_PrioPacketClient p1,
-- const_PrioPacketClient p2);
--
-+bool PrioPacketClient_areEqual(const_PrioPacketClient p1,
-+ const_PrioPacketClient p2);
-
- #endif /* __CLIENT_H__ */
--
-diff --git a/third_party/prio/prio/client.c b/third_party/prio/prio/client.c
---- a/third_party/prio/prio/client.c
-+++ b/third_party/prio/prio/client.c
-@@ -1,6 +1,6 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-@@ -21,7 +21,7 @@
- #include "util.h"
-
- // Let the points of data_in be [x1, x2, x3, ... ].
--// We construct the polynomial f such that
-+// We construct the polynomial f such that
- // (a) f(0) = random,
- // (b) f(i) = x_i for all i >= 1,
- // (c) degree(f)+1 is a power of two.
-@@ -30,10 +30,10 @@
- // and we return f(0) as `const_term`.
- static SECStatus
- data_polynomial_evals(const_PrioConfig cfg, const_MPArray data_in,
-- MPArray evals_out, mp_int *const_term)
-+ MPArray evals_out, mp_int* const_term)
- {
- SECStatus rv = SECSuccess;
-- const mp_int *mod = &cfg->modulus;
-+ const mp_int* mod = &cfg->modulus;
- MPArray points_f = NULL;
- MPArray poly_f = NULL;
-
-@@ -43,88 +43,87 @@
- // Little n is the number of points on the polynomials.
- // The constant term is randomized, so it's (mul_gates + 1).
- const int n = mul_gates + 1;
--
-+
- // Big N is n rounded up to a power of two.
-- const int N = next_power_of_two (n);
-+ const int N = next_power_of_two(n);
-
-- P_CHECKA (points_f = MPArray_new (N));
-- P_CHECKA (poly_f = MPArray_new (N));
-+ P_CHECKA(points_f = MPArray_new(N));
-+ P_CHECKA(poly_f = MPArray_new(N));
-
- // Set constant term f(0) to random
-- P_CHECKC (rand_int (&points_f->data[0], mod));
-- MP_CHECKC (mp_copy (&points_f->data[0], const_term));
-+ P_CHECKC(rand_int(&points_f->data[0], mod));
-+ MP_CHECKC(mp_copy(&points_f->data[0], const_term));
-
- // Set other values of f(x)
-- for (int i=1; i<n; i++) {
-- MP_CHECKC (mp_copy (&data_in->data[i-1], &points_f->data[i]));
-+ for (int i = 1; i < n; i++) {
-+ MP_CHECKC(mp_copy(&data_in->data[i - 1], &points_f->data[i]));
- }
-
- // Interpolate through the Nth roots of unity
-- P_CHECKC (poly_fft(poly_f, points_f, cfg, true));
-+ P_CHECKC(poly_fft(poly_f, points_f, cfg, true));
-
-- // Evaluate at all 2N-th roots of unity.
-+ // Evaluate at all 2N-th roots of unity.
- // To do so, first resize the eval arrays and fill upper
- // values with zeros.
-- P_CHECKC (MPArray_resize (poly_f, 2*N));
-- P_CHECKC (MPArray_resize (evals_out, 2*N));
--
-+ P_CHECKC(MPArray_resize(poly_f, 2 * N));
-+ P_CHECKC(MPArray_resize(evals_out, 2 * N));
-+
- // Evaluate at the 2N-th roots of unity
-- P_CHECKC (poly_fft(evals_out, poly_f, cfg, false));
-+ P_CHECKC(poly_fft(evals_out, poly_f, cfg, false));
-
- cleanup:
-- MPArray_clear (points_f);
-- MPArray_clear (poly_f);
-+ MPArray_clear(points_f);
-+ MPArray_clear(poly_f);
-
- return rv;
- }
-
--
- static SECStatus
--share_polynomials (const_PrioConfig cfg, const_MPArray data_in,
-- PrioPacketClient pA, PrioPacketClient pB, PRG prgB)
-+share_polynomials(const_PrioConfig cfg, const_MPArray data_in,
-+ PrioPacketClient pA, PrioPacketClient pB, PRG prgB)
- {
- SECStatus rv = SECSuccess;
-- const mp_int *mod = &cfg->modulus;
-+ const mp_int* mod = &cfg->modulus;
- const_MPArray points_f = data_in;
-
- mp_int f0, g0;
-- MP_DIGITS (&f0) = NULL;
-- MP_DIGITS (&g0) = NULL;
-+ MP_DIGITS(&f0) = NULL;
-+ MP_DIGITS(&g0) = NULL;
-
- MPArray points_g = NULL;
- MPArray evals_f_2N = NULL;
- MPArray evals_g_2N = NULL;
-
-- P_CHECKA (points_g = MPArray_dup (points_f));
-- P_CHECKA (evals_f_2N = MPArray_new (0));
-- P_CHECKA (evals_g_2N = MPArray_new (0));
-- MP_CHECKC (mp_init (&f0));
-- MP_CHECKC (mp_init (&g0));
-+ P_CHECKA(points_g = MPArray_dup(points_f));
-+ P_CHECKA(evals_f_2N = MPArray_new(0));
-+ P_CHECKA(evals_g_2N = MPArray_new(0));
-+ MP_CHECKC(mp_init(&f0));
-+ MP_CHECKC(mp_init(&g0));
-
-- for (int i=0; i<points_f->len; i++) {
-+ for (int i = 0; i < points_f->len; i++) {
- // For each input value x_i, we compute x_i * (x_i-1).
- // f(i) = x_i
- // g(i) = x_i - 1
-- MP_CHECKC (mp_sub_d (&points_g->data[i], 1, &points_g->data[i]));
-- MP_CHECKC (mp_mod (&points_g->data[i], mod, &points_g->data[i]));
-+ MP_CHECKC(mp_sub_d(&points_g->data[i], 1, &points_g->data[i]));
-+ MP_CHECKC(mp_mod(&points_g->data[i], mod, &points_g->data[i]));
- }
-
-- P_CHECKC (data_polynomial_evals(cfg, points_f, evals_f_2N, &f0));
-- P_CHECKC (data_polynomial_evals(cfg, points_g, evals_g_2N, &g0));
-+ P_CHECKC(data_polynomial_evals(cfg, points_f, evals_f_2N, &f0));
-+ P_CHECKC(data_polynomial_evals(cfg, points_g, evals_g_2N, &g0));
-
- // The values f(0) and g(0) are set to random values.
- // We must send to each server a share of the points
- // f(0), g(0), and h(0) = f(0)*g(0)
-- P_CHECKC (share_int (cfg, &f0, &pA->f0_share, &pB->f0_share));
-- P_CHECKC (share_int (cfg, &g0, &pA->g0_share, &pB->g0_share));
-+ P_CHECKC(share_int(cfg, &f0, &pA->f0_share, &pB->f0_share));
-+ P_CHECKC(share_int(cfg, &g0, &pA->g0_share, &pB->g0_share));
-
- // Compute h(0) = f(0)*g(0).
-- MP_CHECKC (mp_mulmod (&f0, &g0, mod, &f0));
-+ MP_CHECKC(mp_mulmod(&f0, &g0, mod, &f0));
- // Give one share of h(0) to each server.
-- P_CHECKC (share_int (cfg, &f0, &pA->h0_share, &pB->h0_share));
-+ P_CHECKC(share_int(cfg, &f0, &pA->h0_share, &pB->h0_share));
-
-- //const int lenN = (evals_f_2N->len/2);
-- //P_CHECKC (MPArray_resize (pA->shares.A.h_points, lenN));
-+ // const int lenN = (evals_f_2N->len/2);
-+ // P_CHECKC (MPArray_resize (pA->shares.A.h_points, lenN));
-
- // We need to send to the servers the evaluations of
- // f(r) * g(r)
-@@ -135,34 +134,35 @@
- // send a share of this value to each server.
- int j = 0;
- for (int i = 1; i < evals_f_2N->len; i += 2) {
-- MP_CHECKC (mp_mulmod (&evals_f_2N->data[i], &evals_g_2N->data[i], mod, &f0));
-- P_CHECKC (PRG_share_int (prgB, &pA->shares.A.h_points->data[j], &f0, cfg));
-+ MP_CHECKC(mp_mulmod(&evals_f_2N->data[i], &evals_g_2N->data[i], mod, &f0));
-+ P_CHECKC(PRG_share_int(prgB, &pA->shares.A.h_points->data[j], &f0, cfg));
- j++;
- }
-
- cleanup:
-- MPArray_clear (evals_f_2N);
-- MPArray_clear (evals_g_2N);
-- MPArray_clear (points_g);
-- mp_clear (&f0);
-- mp_clear (&g0);
-+ MPArray_clear(evals_f_2N);
-+ MPArray_clear(evals_g_2N);
-+ MPArray_clear(points_g);
-+ mp_clear(&f0);
-+ mp_clear(&g0);
- return rv;
- }
-
- PrioPacketClient
--PrioPacketClient_new (const_PrioConfig cfg, PrioServerId for_server)
-+PrioPacketClient_new(const_PrioConfig cfg, PrioServerId for_server)
- {
-- SECStatus rv = SECSuccess;
-+ SECStatus rv = SECSuccess;
- const int data_len = cfg->num_data_fields;
- PrioPacketClient p = NULL;
-- p = malloc (sizeof (*p));
-- if (!p) return NULL;
-+ p = malloc(sizeof(*p));
-+ if (!p)
-+ return NULL;
-
- p->for_server = for_server;
- p->triple = NULL;
-- MP_DIGITS (&p->f0_share) = NULL;
-- MP_DIGITS (&p->g0_share) = NULL;
-- MP_DIGITS (&p->h0_share) = NULL;
-+ MP_DIGITS(&p->f0_share) = NULL;
-+ MP_DIGITS(&p->g0_share) = NULL;
-+ MP_DIGITS(&p->h0_share) = NULL;
-
- switch (p->for_server) {
- case PRIO_SERVER_A:
-@@ -170,7 +170,7 @@
- p->shares.A.h_points = NULL;
- break;
- case PRIO_SERVER_B:
-- memset (p->shares.B.seed, 0, PRG_SEED_LENGTH);
-+ memset(p->shares.B.seed, 0, PRG_SEED_LENGTH);
- break;
- default:
- // Should never get here
-@@ -178,20 +178,20 @@
- goto cleanup;
- }
-
-- MP_CHECKC (mp_init (&p->f0_share));
-- MP_CHECKC (mp_init (&p->g0_share));
-- MP_CHECKC (mp_init (&p->h0_share));
-- P_CHECKA (p->triple = BeaverTriple_new ());
-+ MP_CHECKC(mp_init(&p->f0_share));
-+ MP_CHECKC(mp_init(&p->g0_share));
-+ MP_CHECKC(mp_init(&p->h0_share));
-+ P_CHECKA(p->triple = BeaverTriple_new());
-
- if (p->for_server == PRIO_SERVER_A) {
-- const int num_h_points = PrioConfig_hPoints (cfg);
-- P_CHECKA (p->shares.A.data_shares = MPArray_new (data_len));
-- P_CHECKA (p->shares.A.h_points = MPArray_new (num_h_points));
-+ const int num_h_points = PrioConfig_hPoints(cfg);
-+ P_CHECKA(p->shares.A.data_shares = MPArray_new(data_len));
-+ P_CHECKA(p->shares.A.h_points = MPArray_new(num_h_points));
- }
-
- cleanup:
- if (rv != SECSuccess) {
-- PrioPacketClient_clear (p);
-+ PrioPacketClient_clear(p);
- return NULL;
- }
-
-@@ -199,69 +199,74 @@
- }
-
- SECStatus
--PrioPacketClient_set_data (const_PrioConfig cfg, const bool *data_in,
-- PrioPacketClient pA, PrioPacketClient pB)
-+PrioPacketClient_set_data(const_PrioConfig cfg, const bool* data_in,
-+ PrioPacketClient pA, PrioPacketClient pB)
- {
- MPArray client_data = NULL;
- PRG prgB = NULL;
- SECStatus rv = SECSuccess;
- const int data_len = cfg->num_data_fields;
-
-- if (!data_in) return SECFailure;
--
-- P_CHECKC (PrioPRGSeed_randomize (&pB->shares.B.seed));
-- P_CHECKA (prgB = PRG_new (pB->shares.B.seed));
-+ if (!data_in)
-+ return SECFailure;
-
-- P_CHECKC (BeaverTriple_set_rand (cfg, pA->triple, pB->triple));
-- P_CHECKA (client_data = MPArray_new_bool (data_len, data_in));
-- P_CHECKC (PRG_share_array (prgB, pA->shares.A.data_shares,
-- client_data, cfg));
-- P_CHECKC (share_polynomials (cfg, client_data, pA, pB, prgB));
-+ P_CHECKC(PrioPRGSeed_randomize(&pB->shares.B.seed));
-+ P_CHECKA(prgB = PRG_new(pB->shares.B.seed));
-+
-+ P_CHECKC(BeaverTriple_set_rand(cfg, pA->triple, pB->triple));
-+ P_CHECKA(client_data = MPArray_new_bool(data_len, data_in));
-+ P_CHECKC(PRG_share_array(prgB, pA->shares.A.data_shares, client_data, cfg));
-+ P_CHECKC(share_polynomials(cfg, client_data, pA, pB, prgB));
-
- cleanup:
-- MPArray_clear (client_data);
-- PRG_clear (prgB);
-+ MPArray_clear(client_data);
-+ PRG_clear(prgB);
-
- return rv;
- }
-
- void
--PrioPacketClient_clear (PrioPacketClient p)
-+PrioPacketClient_clear(PrioPacketClient p)
- {
-- if (p == NULL) return;
-+ if (p == NULL)
-+ return;
-
- if (p->for_server == PRIO_SERVER_A) {
-- MPArray_clear (p->shares.A.h_points);
-- MPArray_clear (p->shares.A.data_shares);
-+ MPArray_clear(p->shares.A.h_points);
-+ MPArray_clear(p->shares.A.data_shares);
- }
-
-- BeaverTriple_clear (p->triple);
-- mp_clear (&p->f0_share);
-- mp_clear (&p->g0_share);
-- mp_clear (&p->h0_share);
-- free (p);
-+ BeaverTriple_clear(p->triple);
-+ mp_clear(&p->f0_share);
-+ mp_clear(&p->g0_share);
-+ mp_clear(&p->h0_share);
-+ free(p);
- }
-
--bool
--PrioPacketClient_areEqual (const_PrioPacketClient p1,
-- const_PrioPacketClient p2)
-+bool
-+PrioPacketClient_areEqual(const_PrioPacketClient p1, const_PrioPacketClient p2)
- {
-- if (!BeaverTriple_areEqual (p1->triple, p2->triple)) return false;
-- if (mp_cmp (&p1->f0_share, &p2->f0_share)) return false;
-- if (mp_cmp (&p1->g0_share, &p2->g0_share)) return false;
-- if (mp_cmp (&p1->h0_share, &p2->h0_share)) return false;
-- if (p1->for_server != p2->for_server) return false;
-+ if (!BeaverTriple_areEqual(p1->triple, p2->triple))
-+ return false;
-+ if (mp_cmp(&p1->f0_share, &p2->f0_share))
-+ return false;
-+ if (mp_cmp(&p1->g0_share, &p2->g0_share))
-+ return false;
-+ if (mp_cmp(&p1->h0_share, &p2->h0_share))
-+ return false;
-+ if (p1->for_server != p2->for_server)
-+ return false;
-
- switch (p1->for_server) {
- case PRIO_SERVER_A:
-- if (!MPArray_areEqual (p1->shares.A.data_shares,
-- p2->shares.A.data_shares)) return false;
-- if (!MPArray_areEqual (p1->shares.A.h_points,
-- p2->shares.A.h_points)) return false;
-- break;
-+ if (!MPArray_areEqual(p1->shares.A.data_shares, p2->shares.A.data_shares))
-+ return false;
-+ if (!MPArray_areEqual(p1->shares.A.h_points, p2->shares.A.h_points))
-+ return false;
-+ break;
- case PRIO_SERVER_B:
-- if (memcmp (p1->shares.B.seed, p2->shares.B.seed,
-- PRG_SEED_LENGTH)) return false;
-+ if (memcmp(p1->shares.B.seed, p2->shares.B.seed, PRG_SEED_LENGTH))
-+ return false;
- break;
- default:
- // Should never get here.
-@@ -271,83 +276,85 @@
- return true;
- }
-
--SECStatus
--PrioClient_encode (const_PrioConfig cfg, const bool *data_in,
-- unsigned char **for_server_a, unsigned int *aLen,
-- unsigned char **for_server_b, unsigned int *bLen)
-+SECStatus
-+PrioClient_encode(const_PrioConfig cfg, const bool* data_in,
-+ unsigned char** for_server_a, unsigned int* aLen,
-+ unsigned char** for_server_b, unsigned int* bLen)
- {
- SECStatus rv = SECSuccess;
- PrioPacketClient pA = NULL;
- PrioPacketClient pB = NULL;
- *for_server_a = NULL;
- *for_server_b = NULL;
--
-- P_CHECKA (pA = PrioPacketClient_new (cfg, PRIO_SERVER_A));
-- P_CHECKA (pB = PrioPacketClient_new (cfg, PRIO_SERVER_B));
-+
-+ P_CHECKA(pA = PrioPacketClient_new(cfg, PRIO_SERVER_A));
-+ P_CHECKA(pB = PrioPacketClient_new(cfg, PRIO_SERVER_B));
-
- msgpack_sbuffer sbufA, sbufB;
- msgpack_packer packerA, packerB;
-
-- msgpack_sbuffer_init (&sbufA);
-- msgpack_sbuffer_init (&sbufB);
-- msgpack_packer_init (&packerA, &sbufA, msgpack_sbuffer_write);
-- msgpack_packer_init (&packerB, &sbufB, msgpack_sbuffer_write);
-+ msgpack_sbuffer_init(&sbufA);
-+ msgpack_sbuffer_init(&sbufB);
-+ msgpack_packer_init(&packerA, &sbufA, msgpack_sbuffer_write);
-+ msgpack_packer_init(&packerB, &sbufB, msgpack_sbuffer_write);
-
-- P_CHECKC (PrioPacketClient_set_data (cfg, data_in, pA, pB));
-- P_CHECKC (serial_write_packet_client (&packerA, pA, cfg));
-- P_CHECKC (serial_write_packet_client (&packerB, pB, cfg));
-+ P_CHECKC(PrioPacketClient_set_data(cfg, data_in, pA, pB));
-+ P_CHECKC(serial_write_packet_client(&packerA, pA, cfg));
-+ P_CHECKC(serial_write_packet_client(&packerB, pB, cfg));
-
-- P_CHECKC (PublicKey_encryptSize (sbufA.size, aLen));
-- P_CHECKC (PublicKey_encryptSize (sbufB.size, bLen));
-+ P_CHECKC(PublicKey_encryptSize(sbufA.size, aLen));
-+ P_CHECKC(PublicKey_encryptSize(sbufB.size, bLen));
-
-- P_CHECKA (*for_server_a = malloc (*aLen));
-- P_CHECKA (*for_server_b = malloc (*bLen));
-+ P_CHECKA(*for_server_a = malloc(*aLen));
-+ P_CHECKA(*for_server_b = malloc(*bLen));
-
- unsigned int writtenA;
- unsigned int writtenB;
-- P_CHECKC (PublicKey_encrypt (cfg->server_a_pub, *for_server_a, &writtenA, *aLen,
-- (unsigned char *)sbufA.data, sbufA.size));
-- P_CHECKC (PublicKey_encrypt (cfg->server_b_pub, *for_server_b, &writtenB, *bLen,
-- (unsigned char *)sbufB.data, sbufB.size));
-+ P_CHECKC(PublicKey_encrypt(cfg->server_a_pub, *for_server_a, &writtenA, *aLen,
-+ (unsigned char*)sbufA.data, sbufA.size));
-+ P_CHECKC(PublicKey_encrypt(cfg->server_b_pub, *for_server_b, &writtenB, *bLen,
-+ (unsigned char*)sbufB.data, sbufB.size));
-
-- P_CHECKCB (writtenA == *aLen);
-- P_CHECKCB (writtenB == *bLen);
-+ P_CHECKCB(writtenA == *aLen);
-+ P_CHECKCB(writtenB == *bLen);
-
- cleanup:
- if (rv != SECSuccess) {
-- if (*for_server_a) free (*for_server_a);
-- if (*for_server_b) free (*for_server_b);
-+ if (*for_server_a)
-+ free(*for_server_a);
-+ if (*for_server_b)
-+ free(*for_server_b);
- *for_server_a = NULL;
- *for_server_b = NULL;
- }
-
-- PrioPacketClient_clear (pA);
-- PrioPacketClient_clear (pB);
-- msgpack_sbuffer_destroy (&sbufA);
-- msgpack_sbuffer_destroy (&sbufB);
--
-+ PrioPacketClient_clear(pA);
-+ PrioPacketClient_clear(pB);
-+ msgpack_sbuffer_destroy(&sbufA);
-+ msgpack_sbuffer_destroy(&sbufB);
-+
- return rv;
- }
-
--SECStatus
--PrioPacketClient_decrypt (PrioPacketClient p, const_PrioConfig cfg,
-- PrivateKey server_priv, const unsigned char *data_in, unsigned int data_len)
-+SECStatus
-+PrioPacketClient_decrypt(PrioPacketClient p, const_PrioConfig cfg,
-+ PrivateKey server_priv, const unsigned char* data_in,
-+ unsigned int data_len)
- {
- SECStatus rv = SECSuccess;
- msgpack_unpacker upk;
-- P_CHECKCB (msgpack_unpacker_init (&upk, data_len));
-+ P_CHECKCB(msgpack_unpacker_init(&upk, data_len));
-
- // Decrypt the ciphertext into dec_buf
- unsigned int bytes_decrypted;
-- P_CHECKC (PrivateKey_decrypt (server_priv,
-- (unsigned char *)msgpack_unpacker_buffer (&upk), &bytes_decrypted,
-- data_len, data_in, data_len));
-- msgpack_unpacker_buffer_consumed (&upk, bytes_decrypted);
-+ P_CHECKC(PrivateKey_decrypt(server_priv,
-+ (unsigned char*)msgpack_unpacker_buffer(&upk),
-+ &bytes_decrypted, data_len, data_in, data_len));
-+ msgpack_unpacker_buffer_consumed(&upk, bytes_decrypted);
-
-- P_CHECKC (serial_read_packet_client (&upk, p, cfg));
-+ P_CHECKC(serial_read_packet_client(&upk, p, cfg));
-
- cleanup:
-- msgpack_unpacker_destroy (&upk);
-+ msgpack_unpacker_destroy(&upk);
- return rv;
- }
--
-diff --git a/third_party/prio/prio/config.h b/third_party/prio/prio/config.h
---- a/third_party/prio/prio/config.h
-+++ b/third_party/prio/prio/config.h
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #ifndef __CONFIG_H__
-@@ -13,12 +13,12 @@
-
- #include "mparray.h"
-
--struct prio_config {
-+struct prio_config
-+{
- int num_data_fields;
-- unsigned char *batch_id;
-+ unsigned char* batch_id;
- unsigned int batch_id_len;
-
--
- PublicKey server_a_pub;
- PublicKey server_b_pub;
-
-@@ -30,7 +30,6 @@
- MPArray rootsInv;
- };
-
--int PrioConfig_hPoints (const_PrioConfig cfg);
-+int PrioConfig_hPoints(const_PrioConfig cfg);
-
- #endif /* __CONFIG_H__ */
--
-diff --git a/third_party/prio/prio/config.c b/third_party/prio/prio/config.c
---- a/third_party/prio/prio/config.c
-+++ b/third_party/prio/prio/config.c
-@@ -1,47 +1,47 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #include <mprio.h>
- #include <stdlib.h>
-
- #include "config.h"
-+#include "mparray.h"
- #include "params.h"
--#include "mparray.h"
- #include "rand.h"
- #include "util.h"
-
- // The PrioConfig object stores "2^k-th roots of unity" modulo
--// the prime modulus we use for all arithmetic. We use
--// these roots to perform fast FFT-style polynomial
-+// the prime modulus we use for all arithmetic. We use
-+// these roots to perform fast FFT-style polynomial
- // interpolation and evaluation.
- //
--// In particular, we use a prime modulus p such that
-+// In particular, we use a prime modulus p such that
- // p = (2^k)q + 1.
- // The roots are integers such that r^{2^k} = 1 mod p.
- static SECStatus
--initialize_roots (MPArray arr, const char *values[])
-+initialize_roots(MPArray arr, const char* values[])
- {
- // TODO: Read in only the number of roots of unity we need.
- // Right now we read in all 4096 roots whether or not we use
- // them all.
-- for (int i=0; i < arr->len; i++) {
-- MP_CHECK (mp_read_radix (&arr->data[i], values[i], 16));
-+ for (int i = 0; i < arr->len; i++) {
-+ MP_CHECK(mp_read_radix(&arr->data[i], values[i], 16));
- }
--
-+
- return SECSuccess;
- }
-
--PrioConfig
--PrioConfig_new (int n_fields, PublicKey server_a, PublicKey server_b,
-- const unsigned char *batch_id, unsigned int batch_id_len)
-+PrioConfig
-+PrioConfig_new(int n_fields, PublicKey server_a, PublicKey server_b,
-+ const unsigned char* batch_id, unsigned int batch_id_len)
- {
- SECStatus rv = SECSuccess;
-- PrioConfig cfg = malloc (sizeof (*cfg));
-+ PrioConfig cfg = malloc(sizeof(*cfg));
- if (!cfg)
- return NULL;
-
-@@ -61,72 +61,73 @@
- goto cleanup;
- }
-
-- P_CHECKA (cfg->batch_id = malloc (batch_id_len));
-- strncpy ((char *)cfg->batch_id, (char *)batch_id, batch_id_len);
-+ P_CHECKA(cfg->batch_id = malloc(batch_id_len));
-+ strncpy((char*)cfg->batch_id, (char*)batch_id, batch_id_len);
-
-- MP_CHECKC (mp_init (&cfg->modulus));
-- MP_CHECKC (mp_read_radix (&cfg->modulus, Modulus, 16));
-+ MP_CHECKC(mp_init(&cfg->modulus));
-+ MP_CHECKC(mp_read_radix(&cfg->modulus, Modulus, 16));
-
- // Compute 2^{-1} modulo M
-- MP_CHECKC (mp_init (&cfg->inv2));
-- mp_set (&cfg->inv2, 2);
-- MP_CHECKC (mp_invmod (&cfg->inv2, &cfg->modulus, &cfg->inv2));
-+ MP_CHECKC(mp_init(&cfg->inv2));
-+ mp_set(&cfg->inv2, 2);
-+ MP_CHECKC(mp_invmod(&cfg->inv2, &cfg->modulus, &cfg->inv2));
-
-- P_CHECKA (cfg->roots = MPArray_new (cfg->n_roots));
-- P_CHECKA (cfg->rootsInv = MPArray_new (cfg->n_roots));
-- MP_CHECKC (initialize_roots (cfg->roots, Roots));
-- MP_CHECKC (initialize_roots (cfg->rootsInv, RootsInv));
-+ P_CHECKA(cfg->roots = MPArray_new(cfg->n_roots));
-+ P_CHECKA(cfg->rootsInv = MPArray_new(cfg->n_roots));
-+ MP_CHECKC(initialize_roots(cfg->roots, Roots));
-+ MP_CHECKC(initialize_roots(cfg->rootsInv, RootsInv));
-
- cleanup:
- if (rv != SECSuccess) {
-- PrioConfig_clear (cfg);
-+ PrioConfig_clear(cfg);
- return NULL;
- }
-
- return cfg;
- }
-
--PrioConfig
--PrioConfig_newTest (int nFields)
--{
-- return PrioConfig_new (nFields, NULL, NULL,
-- (unsigned char *)"testBatch", 9);
--}
--
--void
--PrioConfig_clear (PrioConfig cfg)
-+PrioConfig
-+PrioConfig_newTest(int nFields)
- {
-- if (!cfg) return;
-- if (cfg->batch_id) free (cfg->batch_id);
-- MPArray_clear (cfg->roots);
-- MPArray_clear (cfg->rootsInv);
-- mp_clear (&cfg->modulus);
-- mp_clear (&cfg->inv2);
-- free (cfg);
--}
--
--int
--PrioConfig_numDataFields (const_PrioConfig cfg)
--{
-- return cfg->num_data_fields;
--
--}
--
--SECStatus
--Prio_init (void)
--{
-- return rand_init ();
-+ return PrioConfig_new(nFields, NULL, NULL, (unsigned char*)"testBatch", 9);
- }
-
- void
--Prio_clear (void)
-+PrioConfig_clear(PrioConfig cfg)
- {
-- rand_clear ();
-+ if (!cfg)
-+ return;
-+ if (cfg->batch_id)
-+ free(cfg->batch_id);
-+ MPArray_clear(cfg->roots);
-+ MPArray_clear(cfg->rootsInv);
-+ mp_clear(&cfg->modulus);
-+ mp_clear(&cfg->inv2);
-+ free(cfg);
-+}
-+
-+int
-+PrioConfig_numDataFields(const_PrioConfig cfg)
-+{
-+ return cfg->num_data_fields;
- }
-
--int PrioConfig_hPoints (const_PrioConfig cfg)
-+SECStatus
-+Prio_init(void)
-+{
-+ return rand_init();
-+}
-+
-+void
-+Prio_clear(void)
-+{
-+ rand_clear();
-+}
-+
-+int
-+PrioConfig_hPoints(const_PrioConfig cfg)
- {
- const int mul_gates = cfg->num_data_fields + 1;
-- const int N = next_power_of_two (mul_gates);
-+ const int N = next_power_of_two(mul_gates);
- return N;
- }
-diff --git a/third_party/prio/prio/debug.h b/third_party/prio/prio/debug.h
---- a/third_party/prio/prio/debug.h
-+++ b/third_party/prio/prio/debug.h
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #ifndef __DEBUG_H__
-@@ -12,10 +12,12 @@
- #include <stdio.h>
-
- #ifdef DEBUG
--#define PRIO_DEBUG(msg) do { fprintf(stderr, "Error: %s\n", msg); } while(false);
-+#define PRIO_DEBUG(msg) \
-+ do { \
-+ fprintf(stderr, "Error: %s\n", msg); \
-+ } while (false);
- #else
- #define PRIO_DEBUG(msg) ;
- #endif
-
- #endif /* __DEBUG_H__ */
--
-diff --git a/third_party/prio/prio/encrypt.h b/third_party/prio/prio/encrypt.h
---- a/third_party/prio/prio/encrypt.h
-+++ b/third_party/prio/prio/encrypt.h
-@@ -1,12 +1,11 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
--
- #ifndef __ENCRYPT_H__
- #define __ENCRYPT_H__
-
-@@ -15,7 +14,7 @@
-
- /*******
- * These functions attempt to implement CCA-secure public-key encryption using
-- * the NSS library. We use hashed-ElGamal encryption with Curve25519 as the
-+ * the NSS library. We use hashed-ElGamal encryption with Curve25519 as the
- * underlying group and AES128-GCM as the bulk encryption mode of operation.
- *
- * I make no guarantees that I am using NSS correctly or that this encryption
-@@ -25,7 +24,7 @@
- * to implement these functions.
- */
-
--/*
-+/*
- * Messages encrypted using this library must be smaller than MAX_ENCRYPT_LEN.
- * Enforcing this length limit helps avoid integer overflow.
- */
-@@ -38,12 +37,12 @@
- * is too large (larger than `MAX_ENCRYPT_LEN`), this function returns
- * an error.
- */
--SECStatus PublicKey_encryptSize (unsigned int inputLen, unsigned int *outputLen);
-+SECStatus PublicKey_encryptSize(unsigned int inputLen, unsigned int* outputLen);
-
- /*
- * Generate a new keypair for public-key encryption.
- */
--SECStatus Keypair_new (PrivateKey *pvtkey, PublicKey *pubkey);
-+SECStatus Keypair_new(PrivateKey* pvtkey, PublicKey* pubkey);
-
- /*
- * Encrypt an arbitrary bitstring to the specified public key. The buffer
-@@ -53,22 +52,17 @@
- *
- * The value `inputLen` must be smaller than `MAX_ENCRYPT_LEN`.
- */
--SECStatus PublicKey_encrypt (PublicKey pubkey,
-- unsigned char *output,
-- unsigned int *outputLen,
-- unsigned int maxOutputLen,
-- const unsigned char *input, unsigned int inputLen);
-+SECStatus PublicKey_encrypt(PublicKey pubkey, unsigned char* output,
-+ unsigned int* outputLen, unsigned int maxOutputLen,
-+ const unsigned char* input, unsigned int inputLen);
-
- /*
- * Decrypt an arbitrary bitstring using the specified private key. The output
- * buffer should be at least 16 bytes larger than the plaintext you expect. If
- * `outputLen` >= `inputLen`, you should be safe.
- */
--SECStatus PrivateKey_decrypt (PrivateKey privkey,
-- unsigned char *output,
-- unsigned int *outputLen,
-- unsigned int maxOutputLen,
-- const unsigned char *input, unsigned int inputLen);
-+SECStatus PrivateKey_decrypt(PrivateKey privkey, unsigned char* output,
-+ unsigned int* outputLen, unsigned int maxOutputLen,
-+ const unsigned char* input, unsigned int inputLen);
-
- #endif /* __ENCRYPT_H__ */
--
-diff --git a/third_party/prio/prio/encrypt.c b/third_party/prio/prio/encrypt.c
---- a/third_party/prio/prio/encrypt.c
-+++ b/third_party/prio/prio/encrypt.c
-@@ -1,14 +1,14 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
--#include <nss/keyhi.h>
--#include <nss/keythi.h>
--#include <nss/pk11pub.h>
-+#include <keyhi.h>
-+#include <keythi.h>
-+#include <pk11pub.h>
- #include <prerror.h>
-
- #include "encrypt.h"
-@@ -24,222 +24,251 @@
- #define GCM_TAG_LEN_BYTES 16
-
- #define PRIO_TAG "PrioPacket"
--#define AAD_LEN (strlen (PRIO_TAG) + CURVE25519_KEY_LEN + GCM_IV_LEN_BYTES)
-+#define AAD_LEN (strlen(PRIO_TAG) + CURVE25519_KEY_LEN + GCM_IV_LEN_BYTES)
-
- // The all-zeros curve25519 public key, as DER-encoded SKPI blob.
- static const uint8_t curve25519_spki_zeros[] = {
-- 0x30, 0x39, 0x30, 0x14, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x09, 0x2b,
-- 0x06, 0x01, 0x04, 0x01, 0xda, 0x47, 0x0f, 0x01, 0x03, 0x21,
-- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-- 0x00,
-+ 0x30, 0x39, 0x30, 0x14, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02,
-+ 0x01, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xda, 0x47, 0x0f, 0x01,
-+ 0x03, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- };
-
-+// Note that we do not use isxdigit because it is locale-dependent
-+// See: https://github.com/mozilla/libprio/issues/20
-+static inline char
-+is_hex_digit(char c)
-+{
-+ return ('0' <= c && c <= '9') || ('a' <= c && c <= 'f') ||
-+ ('A' <= c && c <= 'F');
-+}
-+
-+// Note that we do not use toupper because it is locale-dependent
-+// See: https://github.com/mozilla/libprio/issues/20
-+static inline char
-+to_upper(char c)
-+{
-+ if (c >= 'a' && c <= 'z') {
-+ return c - 0x20;
-+ } else {
-+ return c;
-+ }
-+}
-+
- static inline uint8_t
--hex_to_int (char h)
-+hex_to_int(char h)
- {
-- return (h > '9') ? toupper (h) - 'A' + 10 : (h - '0');
-+ return (h > '9') ? to_upper(h) - 'A' + 10 : (h - '0');
- }
-
--static inline unsigned char
--int_to_hex (uint8_t i)
-+static inline unsigned char
-+int_to_hex(uint8_t i)
- {
- return (i > 0x09) ? ((i - 10) + 'A') : i + '0';
- }
-
--
--static SECStatus
--derive_dh_secret (PK11SymKey **shared_secret, PrivateKey priv, PublicKey pub)
-+static SECStatus
-+derive_dh_secret(PK11SymKey** shared_secret, PrivateKey priv, PublicKey pub)
- {
-- if (priv == NULL) return SECFailure;
-- if (pub == NULL) return SECFailure;
-- if (shared_secret == NULL) return SECFailure;
-+ if (priv == NULL)
-+ return SECFailure;
-+ if (pub == NULL)
-+ return SECFailure;
-+ if (shared_secret == NULL)
-+ return SECFailure;
-
- SECStatus rv = SECSuccess;
- *shared_secret = NULL;
-
-- P_CHECKA (*shared_secret = PK11_PubDeriveWithKDF (priv, pub, PR_FALSE,
-- NULL, NULL, CKM_ECDH1_DERIVE, CKM_AES_GCM,
-- CKA_ENCRYPT | CKA_DECRYPT, 16,
-- CKD_SHA256_KDF, NULL, NULL));
-+ P_CHECKA(*shared_secret = PK11_PubDeriveWithKDF(
-+ priv, pub, PR_FALSE, NULL, NULL, CKM_ECDH1_DERIVE, CKM_AES_GCM,
-+ CKA_ENCRYPT | CKA_DECRYPT, 16, CKD_SHA256_KDF, NULL, NULL));
-
- cleanup:
- return rv;
- }
-
- SECStatus
--PublicKey_import (PublicKey *pk, const unsigned char *data, unsigned int dataLen)
-+PublicKey_import(PublicKey* pk, const unsigned char* data, unsigned int dataLen)
- {
- SECStatus rv = SECSuccess;
-- CERTSubjectPublicKeyInfo *pkinfo = NULL;
-+ CERTSubjectPublicKeyInfo* pkinfo = NULL;
- *pk = NULL;
-
- if (dataLen != CURVE25519_KEY_LEN)
- return SECFailure;
-
- unsigned char key_bytes[dataLen];
-- memcpy (key_bytes, data, dataLen);
-+ memcpy(key_bytes, data, dataLen);
-
-- const int spki_len = sizeof (curve25519_spki_zeros);
-+ const int spki_len = sizeof(curve25519_spki_zeros);
- uint8_t spki_data[spki_len];
-- memcpy (spki_data, curve25519_spki_zeros, spki_len);
-+ memcpy(spki_data, curve25519_spki_zeros, spki_len);
- SECItem spki_item = { siBuffer, spki_data, spki_len };
-
-- // Import the all-zeros curve25519 public key.
-- P_CHECKA (pkinfo = SECKEY_DecodeDERSubjectPublicKeyInfo (&spki_item));
-- P_CHECKA (*pk = SECKEY_ExtractPublicKey (pkinfo));
-+ // Import the all-zeros curve25519 public key.
-+ P_CHECKA(pkinfo = SECKEY_DecodeDERSubjectPublicKeyInfo(&spki_item));
-+ P_CHECKA(*pk = SECKEY_ExtractPublicKey(pkinfo));
-
- // Overwrite the all-zeros public key with the 32-byte curve25519 public key
- // given as input.
-- memcpy ((*pk)->u.ec.publicValue.data, data, CURVE25519_KEY_LEN);
-+ memcpy((*pk)->u.ec.publicValue.data, data, CURVE25519_KEY_LEN);
-
- cleanup:
-- if (pkinfo)
-- SECKEY_DestroySubjectPublicKeyInfo (pkinfo);
-+ if (pkinfo)
-+ SECKEY_DestroySubjectPublicKeyInfo(pkinfo);
-
- if (rv != SECSuccess)
-- PublicKey_clear (*pk);
-+ PublicKey_clear(*pk);
- return rv;
- }
-
- SECStatus
--PublicKey_import_hex (PublicKey *pk, const unsigned char *hex_data, unsigned int dataLen)
-+PublicKey_import_hex(PublicKey* pk, const unsigned char* hex_data,
-+ unsigned int dataLen)
- {
- unsigned char raw_bytes[CURVE25519_KEY_LEN];
-
- if (dataLen != CURVE25519_KEY_LEN_HEX)
- return SECFailure;
-
-- for (unsigned int i=0; i<dataLen; i++) {
-- if (!isxdigit (hex_data[i]))
-+ for (unsigned int i = 0; i < dataLen; i++) {
-+ if (!is_hex_digit(hex_data[i]))
- return SECFailure;
- }
-
-- const unsigned char *p = hex_data;
-- for (unsigned int i=0; i<CURVE25519_KEY_LEN; i++) {
-- uint8_t d0 = hex_to_int (p[0]);
-- uint8_t d1 = hex_to_int (p[1]);
-+ const unsigned char* p = hex_data;
-+ for (unsigned int i = 0; i < CURVE25519_KEY_LEN; i++) {
-+ uint8_t d0 = hex_to_int(p[0]);
-+ uint8_t d1 = hex_to_int(p[1]);
- raw_bytes[i] = (d0 << 4) | d1;
- p += 2;
- }
-
-- return PublicKey_import (pk, raw_bytes, CURVE25519_KEY_LEN);
-+ return PublicKey_import(pk, raw_bytes, CURVE25519_KEY_LEN);
- }
-
--SECStatus
--PublicKey_export (const_PublicKey pk, unsigned char data[CURVE25519_KEY_LEN])
-+SECStatus
-+PublicKey_export(const_PublicKey pk, unsigned char data[CURVE25519_KEY_LEN])
- {
-- if (pk == NULL) return SECFailure;
-+ if (pk == NULL)
-+ return SECFailure;
-
-- memcpy (data, pk->u.ec.publicValue.data, CURVE25519_KEY_LEN);
-+ memcpy(data, pk->u.ec.publicValue.data, CURVE25519_KEY_LEN);
-
- return SECSuccess;
- }
-
--SECStatus
--PublicKey_export_hex (const_PublicKey pk, unsigned char data[(2*CURVE25519_KEY_LEN)+1])
-+SECStatus
-+PublicKey_export_hex(const_PublicKey pk,
-+ unsigned char data[(2 * CURVE25519_KEY_LEN) + 1])
- {
- unsigned char raw_data[CURVE25519_KEY_LEN];
-- if (PublicKey_export (pk, raw_data) != SECSuccess)
-+ if (PublicKey_export(pk, raw_data) != SECSuccess)
- return SECFailure;
-
-- const unsigned char *p = raw_data;
-- for (unsigned int i=0; i<CURVE25519_KEY_LEN; i++) {
-+ const unsigned char* p = raw_data;
-+ for (unsigned int i = 0; i < CURVE25519_KEY_LEN; i++) {
- unsigned char bytel = p[0] & 0x0f;
- unsigned char byteu = (p[0] & 0xf0) >> 4;
-- data[2*i] = int_to_hex (byteu);
-- data[2*i + 1] = int_to_hex (bytel);
-+ data[2 * i] = int_to_hex(byteu);
-+ data[2 * i + 1] = int_to_hex(bytel);
- p++;
- }
-
-- data[2*CURVE25519_KEY_LEN] = '\0';
-+ data[2 * CURVE25519_KEY_LEN] = '\0';
- return SECSuccess;
- }
-
--SECStatus
--Keypair_new (PrivateKey *pvtkey, PublicKey *pubkey)
-+SECStatus
-+Keypair_new(PrivateKey* pvtkey, PublicKey* pubkey)
- {
-- if (pvtkey == NULL) return SECFailure;
-- if (pubkey == NULL) return SECFailure;
-+ if (pvtkey == NULL)
-+ return SECFailure;
-+ if (pubkey == NULL)
-+ return SECFailure;
-
- SECStatus rv = SECSuccess;
-- SECOidData *oid_data = NULL;
-+ SECOidData* oid_data = NULL;
- *pubkey = NULL;
- *pvtkey = NULL;
-
- SECKEYECParams ecp;
- ecp.data = NULL;
-- PK11SlotInfo *slot = NULL;
-+ PK11SlotInfo* slot = NULL;
-
-- P_CHECKA (oid_data = SECOID_FindOIDByTag (CURVE_OID_TAG));
-+ P_CHECKA(oid_data = SECOID_FindOIDByTag(CURVE_OID_TAG));
- const int oid_struct_len = 2 + oid_data->oid.len;
-
-- P_CHECKA (ecp.data = malloc (oid_struct_len));
-+ P_CHECKA(ecp.data = malloc(oid_struct_len));
- ecp.len = oid_struct_len;
--
-+
- ecp.type = siDEROID;
-
- ecp.data[0] = SEC_ASN1_OBJECT_ID;
- ecp.data[1] = oid_data->oid.len;
-- memcpy (&ecp.data[2], oid_data->oid.data, oid_data->oid.len);
-+ memcpy(&ecp.data[2], oid_data->oid.data, oid_data->oid.len);
-
-- P_CHECKA (slot = PK11_GetInternalSlot ());
-- P_CHECKA (*pvtkey = PK11_GenerateKeyPair(slot, CKM_EC_KEY_PAIR_GEN, &ecp,
-- (SECKEYPublicKey **)pubkey, PR_FALSE, PR_FALSE, NULL));
-- PK11_FreeSlot (slot);
-+ P_CHECKA(slot = PK11_GetInternalSlot());
-+ P_CHECKA(*pvtkey = PK11_GenerateKeyPair(slot, CKM_EC_KEY_PAIR_GEN, &ecp,
-+ (SECKEYPublicKey**)pubkey, PR_FALSE,
-+ PR_FALSE, NULL));
-+ PK11_FreeSlot(slot);
-
- cleanup:
- if (ecp.data)
-- free (ecp.data);
-+ free(ecp.data);
- if (rv != SECSuccess) {
-- PublicKey_clear (*pubkey);
-- PrivateKey_clear (*pvtkey);
-+ PublicKey_clear(*pubkey);
-+ PrivateKey_clear(*pvtkey);
- }
- return rv;
- }
-
--void
--PublicKey_clear (PublicKey pubkey)
-+void
-+PublicKey_clear(PublicKey pubkey)
- {
-- if (pubkey)
-+ if (pubkey)
- SECKEY_DestroyPublicKey(pubkey);
- }
-
--void
--PrivateKey_clear (PrivateKey pvtkey)
-+void
-+PrivateKey_clear(PrivateKey pvtkey)
- {
-- if (pvtkey)
-- SECKEY_DestroyPrivateKey(pvtkey);
-+ if (pvtkey)
-+ SECKEY_DestroyPrivateKey(pvtkey);
- }
-
--const SECItem *
--PublicKey_toBytes (const_PublicKey pubkey)
-+const SECItem*
-+PublicKey_toBytes(const_PublicKey pubkey)
- {
- return &pubkey->u.ec.publicValue;
- }
-
- SECStatus
--PublicKey_encryptSize (unsigned int inputLen, unsigned int *outputLen)
-+PublicKey_encryptSize(unsigned int inputLen, unsigned int* outputLen)
- {
- if (outputLen == NULL || inputLen >= MAX_ENCRYPT_LEN)
- return SECFailure;
-
- // public key, IV, tag, and input
-- *outputLen = CURVE25519_KEY_LEN + GCM_IV_LEN_BYTES + GCM_TAG_LEN_BYTES + inputLen;
-+ *outputLen =
-+ CURVE25519_KEY_LEN + GCM_IV_LEN_BYTES + GCM_TAG_LEN_BYTES + inputLen;
- return SECSuccess;
- }
-
--static void
--set_gcm_params (SECItem *paramItem, CK_GCM_PARAMS *param, unsigned char *nonce,
-- const_PublicKey pubkey, unsigned char *aadBuf)
-+static void
-+set_gcm_params(SECItem* paramItem, CK_GCM_PARAMS* param, unsigned char* nonce,
-+ const_PublicKey pubkey, unsigned char* aadBuf)
- {
- int offset = 0;
-- memcpy (aadBuf, PRIO_TAG, strlen (PRIO_TAG));
-- offset += strlen (PRIO_TAG);
-- memcpy (aadBuf + offset, PublicKey_toBytes (pubkey)->data, CURVE25519_KEY_LEN);
-+ memcpy(aadBuf, PRIO_TAG, strlen(PRIO_TAG));
-+ offset += strlen(PRIO_TAG);
-+ memcpy(aadBuf + offset, PublicKey_toBytes(pubkey)->data, CURVE25519_KEY_LEN);
- offset += CURVE25519_KEY_LEN;
-- memcpy (aadBuf + offset, nonce, GCM_IV_LEN_BYTES);
--
-+ memcpy(aadBuf + offset, nonce, GCM_IV_LEN_BYTES);
-+
- param->pIv = nonce;
- param->ulIvLen = GCM_IV_LEN_BYTES;
- param->pAAD = aadBuf;
-@@ -247,17 +276,14 @@
- param->ulTagBits = GCM_TAG_LEN_BYTES * 8;
-
- paramItem->type = siBuffer;
-- paramItem->data = (void *)param;
-- paramItem->len = sizeof (*param);
--
-+ paramItem->data = (void*)param;
-+ paramItem->len = sizeof(*param);
- }
-
--SECStatus
--PublicKey_encrypt (PublicKey pubkey,
-- unsigned char *output,
-- unsigned int *outputLen,
-- unsigned int maxOutputLen,
-- const unsigned char *input, unsigned int inputLen)
-+SECStatus
-+PublicKey_encrypt(PublicKey pubkey, unsigned char* output,
-+ unsigned int* outputLen, unsigned int maxOutputLen,
-+ const unsigned char* input, unsigned int inputLen)
- {
- if (pubkey == NULL)
- return SECFailure;
-@@ -266,55 +292,53 @@
- return SECFailure;
-
- unsigned int needLen;
-- if (PublicKey_encryptSize (inputLen, &needLen) != SECSuccess)
-+ if (PublicKey_encryptSize(inputLen, &needLen) != SECSuccess)
- return SECFailure;
-
-- if (maxOutputLen < needLen)
-+ if (maxOutputLen < needLen)
- return SECFailure;
-
- SECStatus rv = SECSuccess;
-- PublicKey eph_pub = NULL;
-- PrivateKey eph_priv = NULL;
-- PK11SymKey *aes_key = NULL;
-+ PublicKey eph_pub = NULL;
-+ PrivateKey eph_priv = NULL;
-+ PK11SymKey* aes_key = NULL;
-
- unsigned char nonce[GCM_IV_LEN_BYTES];
- unsigned char aadBuf[AAD_LEN];
-- P_CHECKC (rand_bytes (nonce, GCM_IV_LEN_BYTES));
-+ P_CHECKC(rand_bytes(nonce, GCM_IV_LEN_BYTES));
-
-- P_CHECKC (Keypair_new (&eph_priv, &eph_pub));
-- P_CHECKC (derive_dh_secret (&aes_key, eph_priv, pubkey));
-+ P_CHECKC(Keypair_new(&eph_priv, &eph_pub));
-+ P_CHECKC(derive_dh_secret(&aes_key, eph_priv, pubkey));
-
- CK_GCM_PARAMS param;
- SECItem paramItem;
-- set_gcm_params (¶mItem, ¶m, nonce, eph_pub, aadBuf);
-+ set_gcm_params(¶mItem, ¶m, nonce, eph_pub, aadBuf);
-
-- const SECItem *pk = PublicKey_toBytes (eph_pub);
-- P_CHECKCB (pk->len == CURVE25519_KEY_LEN);
-- memcpy (output, pk->data, pk->len);
-- memcpy (output + CURVE25519_KEY_LEN, param.pIv, param.ulIvLen);
-+ const SECItem* pk = PublicKey_toBytes(eph_pub);
-+ P_CHECKCB(pk->len == CURVE25519_KEY_LEN);
-+ memcpy(output, pk->data, pk->len);
-+ memcpy(output + CURVE25519_KEY_LEN, param.pIv, param.ulIvLen);
-
- const int offset = CURVE25519_KEY_LEN + param.ulIvLen;
-- P_CHECKC (PK11_Encrypt (aes_key, CKM_AES_GCM, ¶mItem, output + offset,
-- outputLen, maxOutputLen - offset, input, inputLen));
-+ P_CHECKC(PK11_Encrypt(aes_key, CKM_AES_GCM, ¶mItem, output + offset,
-+ outputLen, maxOutputLen - offset, input, inputLen));
- *outputLen = *outputLen + CURVE25519_KEY_LEN + GCM_IV_LEN_BYTES;
-
- cleanup:
-- PublicKey_clear (eph_pub);
-- PrivateKey_clear (eph_priv);
-- if (aes_key)
-- PK11_FreeSymKey (aes_key);
-+ PublicKey_clear(eph_pub);
-+ PrivateKey_clear(eph_priv);
-+ if (aes_key)
-+ PK11_FreeSymKey(aes_key);
-
- return rv;
- }
-
--SECStatus
--PrivateKey_decrypt (PrivateKey privkey,
-- unsigned char *output,
-- unsigned int *outputLen,
-- unsigned int maxOutputLen,
-- const unsigned char *input, unsigned int inputLen)
-+SECStatus
-+PrivateKey_decrypt(PrivateKey privkey, unsigned char* output,
-+ unsigned int* outputLen, unsigned int maxOutputLen,
-+ const unsigned char* input, unsigned int inputLen)
- {
-- PK11SymKey *aes_key = NULL;
-+ PK11SymKey* aes_key = NULL;
- PublicKey eph_pub = NULL;
- unsigned char aad_buf[AAD_LEN];
-
-@@ -323,34 +347,33 @@
-
- SECStatus rv = SECSuccess;
- unsigned int headerLen;
-- if (PublicKey_encryptSize (0, &headerLen) != SECSuccess)
-+ if (PublicKey_encryptSize(0, &headerLen) != SECSuccess)
- return SECFailure;
-
-- if (inputLen < headerLen)
-+ if (inputLen < headerLen)
- return SECFailure;
-
- const unsigned int msglen = inputLen - headerLen;
- if (maxOutputLen < msglen || msglen >= MAX_ENCRYPT_LEN)
- return SECFailure;
-
-- P_CHECKC (PublicKey_import (&eph_pub, input, CURVE25519_KEY_LEN));
-+ P_CHECKC(PublicKey_import(&eph_pub, input, CURVE25519_KEY_LEN));
- unsigned char nonce[GCM_IV_LEN_BYTES];
-- memcpy (nonce, input + CURVE25519_KEY_LEN, GCM_IV_LEN_BYTES);
-+ memcpy(nonce, input + CURVE25519_KEY_LEN, GCM_IV_LEN_BYTES);
-
- SECItem paramItem;
- CK_GCM_PARAMS param;
-- set_gcm_params (¶mItem, ¶m, nonce, eph_pub, aad_buf);
--
-- P_CHECKC (derive_dh_secret (&aes_key, privkey, eph_pub));
-+ set_gcm_params(¶mItem, ¶m, nonce, eph_pub, aad_buf);
-+
-+ P_CHECKC(derive_dh_secret(&aes_key, privkey, eph_pub));
-
- const int offset = CURVE25519_KEY_LEN + GCM_IV_LEN_BYTES;
-- P_CHECKC (PK11_Decrypt (aes_key, CKM_AES_GCM, ¶mItem, output,
-- outputLen, maxOutputLen, input + offset, inputLen - offset));
-+ P_CHECKC(PK11_Decrypt(aes_key, CKM_AES_GCM, ¶mItem, output, outputLen,
-+ maxOutputLen, input + offset, inputLen - offset));
-
- cleanup:
-- PublicKey_clear (eph_pub);
-- if (aes_key)
-- PK11_FreeSymKey (aes_key);
-+ PublicKey_clear(eph_pub);
-+ if (aes_key)
-+ PK11_FreeSymKey(aes_key);
- return rv;
- }
--
-diff --git a/third_party/prio/prio/mparray.h b/third_party/prio/prio/mparray.h
---- a/third_party/prio/prio/mparray.h
-+++ b/third_party/prio/prio/mparray.h
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #ifndef __MPARRAY_H__
-@@ -12,60 +12,59 @@
- #include <mpi.h>
- #include <mprio.h>
-
--struct mparray {
-+struct mparray
-+{
- int len;
-- mp_int *data;
-+ mp_int* data;
- };
-
--typedef struct mparray *MPArray;
--typedef const struct mparray *const_MPArray;
-+typedef struct mparray* MPArray;
-+typedef const struct mparray* const_MPArray;
-
- /*
- * Initialize an array of `mp_int`s of the given length.
- */
--MPArray MPArray_new (int len);
--void MPArray_clear (MPArray arr);
-+MPArray MPArray_new(int len);
-+void MPArray_clear(MPArray arr);
-
--/*
-+/*
- * Copies secret sharing of data from src into arrays
- * arrA and arrB. The lengths of the three input arrays
- * must be identical.
- */
--SECStatus MPArray_set_share (MPArray arrA, MPArray arrB,
-- const_MPArray src, const_PrioConfig cfg);
-+SECStatus MPArray_set_share(MPArray arrA, MPArray arrB, const_MPArray src,
-+ const_PrioConfig cfg);
-
--/*
-+/*
- * Initializes array with 0/1 values specified in boolean array `data_in`
- */
--MPArray MPArray_new_bool (int len, const bool *data_in);
-+MPArray MPArray_new_bool(int len, const bool* data_in);
-
--/*
-+/*
- * Expands or shrinks the MPArray to the desired size. If shrinking,
- * will clear the values on the end of array.
- */
--SECStatus MPArray_resize (MPArray arr, int newlen);
-+SECStatus MPArray_resize(MPArray arr, int newlen);
-
- /*
-- * Initializes dst and creates a duplicate of the array in src.
-+ * Initializes dst and creates a duplicate of the array in src.
- */
--MPArray MPArray_dup (const_MPArray src);
-+MPArray MPArray_dup(const_MPArray src);
-
- /*
- * Copies array from src to dst. Arrays must have the same length.
- */
--SECStatus MPArray_copy (MPArray dst, const_MPArray src);
-+SECStatus MPArray_copy(MPArray dst, const_MPArray src);
-
- /* For each index i into the array, set:
- * dst[i] = dst[i] + to_add[i] (modulo mod)
- */
--SECStatus MPArray_addmod (MPArray dst, const_MPArray to_add,
-- const mp_int *mod);
-+SECStatus MPArray_addmod(MPArray dst, const_MPArray to_add, const mp_int* mod);
-
- /*
- * Return true iff the two arrays are equal in length
- * and contents. This comparison is NOT constant time.
- */
--bool MPArray_areEqual (const_MPArray arr1, const_MPArray arr2);
-+bool MPArray_areEqual(const_MPArray arr1, const_MPArray arr2);
-
- #endif /* __MPARRAY_H__ */
--
-diff --git a/third_party/prio/prio/mparray.c b/third_party/prio/prio/mparray.c
---- a/third_party/prio/prio/mparray.c
-+++ b/third_party/prio/prio/mparray.c
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #include <mprio.h>
-@@ -15,31 +15,31 @@
- #include "util.h"
-
- MPArray
--MPArray_new (int len)
-+MPArray_new(int len)
- {
- SECStatus rv = SECSuccess;
-- MPArray arr = malloc (sizeof *arr);
-- if (!arr)
-+ MPArray arr = malloc(sizeof *arr);
-+ if (!arr)
- return NULL;
-
- arr->data = NULL;
- arr->len = len;
-
-- P_CHECKA(arr->data = calloc (len, sizeof (mp_int)));
-+ P_CHECKA(arr->data = calloc(len, sizeof(mp_int)));
-
- // Initialize these to NULL so that we can figure
- // out which allocations failed (if any)
-- for (int i=0; i<len; i++) {
-- MP_DIGITS (&arr->data[i]) = NULL;
-+ for (int i = 0; i < len; i++) {
-+ MP_DIGITS(&arr->data[i]) = NULL;
- }
-
-- for (int i=0; i<len; i++) {
-- MP_CHECKC (mp_init(&arr->data[i]));
-+ for (int i = 0; i < len; i++) {
-+ MP_CHECKC(mp_init(&arr->data[i]));
- }
-
- cleanup:
- if (rv != SECSuccess) {
-- MPArray_clear (arr);
-+ MPArray_clear(arr);
- return NULL;
- }
-
-@@ -47,87 +47,89 @@
- }
-
- MPArray
--MPArray_new_bool (int len, const bool *data_in)
-+MPArray_new_bool(int len, const bool* data_in)
- {
-- MPArray arr = MPArray_new (len);
-- if (arr == NULL) return NULL;
-+ MPArray arr = MPArray_new(len);
-+ if (arr == NULL)
-+ return NULL;
-
-- for (int i=0; i<len; i++) {
-- mp_set (&arr->data[i], data_in[i]);
-+ for (int i = 0; i < len; i++) {
-+ mp_set(&arr->data[i], data_in[i]);
- }
--
-+
- return arr;
- }
-
- SECStatus
--MPArray_resize (MPArray arr, int newlen)
-+MPArray_resize(MPArray arr, int newlen)
- {
- SECStatus rv = SECSuccess;
- const int oldlen = arr->len;
-
- if (oldlen == newlen)
-- return rv;
-+ return rv;
-
- // TODO: Use realloc for this?
-- mp_int *newdata = calloc (newlen, sizeof (mp_int));
-+ mp_int* newdata = calloc(newlen, sizeof(mp_int));
- if (newdata == NULL)
- return SECFailure;
-
- for (int i = 0; i < newlen; i++) {
-- MP_DIGITS (&newdata[i]) = NULL;
-+ MP_DIGITS(&newdata[i]) = NULL;
- }
-
- // Initialize new array
- for (int i = 0; i < newlen; i++) {
-- MP_CHECKC (mp_init (&newdata[i]));
-+ MP_CHECKC(mp_init(&newdata[i]));
- }
-
- // Copy old data into new array
- for (int i = 0; i < newlen && i < oldlen; i++) {
-- MP_CHECKC (mp_copy (&arr->data[i], &newdata[i]));
-+ MP_CHECKC(mp_copy(&arr->data[i], &newdata[i]));
- }
-
- // Free old data
- for (int i = 0; i < oldlen; i++) {
-- mp_clear (&arr->data[i]);
-+ mp_clear(&arr->data[i]);
- }
-- free (arr->data);
-+ free(arr->data);
- arr->data = newdata;
- arr->len = newlen;
-
- cleanup:
- if (rv != SECSuccess) {
-- for (int i=0; i < newlen; i++) {
-- mp_clear (&newdata[i]);
-+ for (int i = 0; i < newlen; i++) {
-+ mp_clear(&newdata[i]);
- }
-- free (newdata);
-+ free(newdata);
- }
-
- return rv;
- }
-
- MPArray
--MPArray_dup (const_MPArray src)
-+MPArray_dup(const_MPArray src)
- {
-- MPArray dst = MPArray_new (src->len);
-- if (!dst) return NULL;
-+ MPArray dst = MPArray_new(src->len);
-+ if (!dst)
-+ return NULL;
-
-- SECStatus rv = MPArray_copy (dst, src);
-+ SECStatus rv = MPArray_copy(dst, src);
- if (rv == SECSuccess) {
- return dst;
- } else {
-- MPArray_clear (dst);
-+ MPArray_clear(dst);
- return NULL;
- }
- }
-
- SECStatus
--MPArray_copy (MPArray dst, const_MPArray src)
-+MPArray_copy(MPArray dst, const_MPArray src)
- {
- if (dst->len != src->len)
- return SECFailure;
-
-- for (int i=0; i<src->len; i++) {
-+ for (int i = 0; i < src->len; i++) {
- if (mp_copy(&src->data[i], &dst->data[i]) != MP_OKAY) {
- return SECFailure;
- }
-@@ -136,10 +138,9 @@
- return SECSuccess;
- }
-
--
- SECStatus
--MPArray_set_share (MPArray arrA, MPArray arrB,
-- const_MPArray src, const_PrioConfig cfg)
-+MPArray_set_share(MPArray arrA, MPArray arrB, const_MPArray src,
-+ const_PrioConfig cfg)
- {
- SECStatus rv = SECSuccess;
- if (arrA->len != src->len || arrB->len != src->len)
-@@ -147,48 +148,49 @@
-
- const int len = src->len;
-
-- for (int i=0; i < len; i++) {
-- P_CHECK(share_int (cfg, &src->data[i], &arrA->data[i], &arrB->data[i]));
-+ for (int i = 0; i < len; i++) {
-+ P_CHECK(share_int(cfg, &src->data[i], &arrA->data[i], &arrB->data[i]));
- }
-
- return rv;
- }
-
--
--void
--MPArray_clear (MPArray arr)
-+void
-+MPArray_clear(MPArray arr)
- {
-- if (arr == NULL) return;
-+ if (arr == NULL)
-+ return;
-
- if (arr->data != NULL) {
-- for (int i=0; i<arr->len; i++) {
-+ for (int i = 0; i < arr->len; i++) {
- mp_clear(&arr->data[i]);
- }
-- free (arr->data);
-+ free(arr->data);
- }
-- free (arr);
-+ free(arr);
- }
-
- SECStatus
--MPArray_addmod (MPArray dst, const_MPArray to_add, const mp_int *mod)
-+MPArray_addmod(MPArray dst, const_MPArray to_add, const mp_int* mod)
- {
- if (dst->len != to_add->len)
- return SECFailure;
-
-- for (int i=0; i<dst->len; i++) {
-- MP_CHECK (mp_addmod (&dst->data[i], &to_add->data[i], mod, &dst->data[i]));
-+ for (int i = 0; i < dst->len; i++) {
-+ MP_CHECK(mp_addmod(&dst->data[i], &to_add->data[i], mod, &dst->data[i]));
- }
-
- return SECSuccess;
- }
-
--bool
--MPArray_areEqual (const_MPArray arr1, const_MPArray arr2)
-+bool
-+MPArray_areEqual(const_MPArray arr1, const_MPArray arr2)
- {
-- if (arr1->len != arr2->len) return false;
-+ if (arr1->len != arr2->len)
-+ return false;
-
-- for (int i=0; i<arr1->len; i++) {
-- if (mp_cmp (&arr1->data[i], &arr2->data[i]))
-+ for (int i = 0; i < arr1->len; i++) {
-+ if (mp_cmp(&arr1->data[i], &arr2->data[i]))
- return false;
- }
-
-diff --git a/third_party/prio/prio/params.h b/third_party/prio/prio/params.h
---- a/third_party/prio/prio/params.h
-+++ b/third_party/prio/prio/params.h
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- /****
-@@ -15,7 +15,7 @@
- #define __PARAMS_H__
-
- // A prime modulus p.
--static const char *Modulus = "8000000000000000080001";
-+static const char* Modulus = "8000000000000000080001";
-
- // A generator g of a subgroup of Z*_p.
- // static const char *Generator = "5569560418e73ff9db709";
-@@ -24,8203 +24,8198 @@
- // order 2^Generator2Order in Z*_p.
- static const int Generator2Order = 12;
-
--static const char *Roots[] = {
-- "1",
-- "5569560418e73ff9db709",
-- "5bf795c6d548a19b6ac340",
-- "760df490123f6613b0a970",
-- "7cec29d14a0eefb222bde7",
-- "3c70a3f0e9c5b206031a33",
-- "1cec8c96472b84936bbc22",
-- "3315173915ca23d8c1b814",
-- "39a0c4e1da321f1bc126f4",
-- "760f3656c1130b21d369d9",
-- "452231c3bcde7b7b5b0af8",
-- "6fe27c77d57e2feb8cbcbf",
-- "3a7a488015e75feec809f8",
-- "c16d15fea9d61c8df5121",
-- "5a8a9b5c659b71e837ea18",
-- "506d84c9f4d4bc400fdd25",
-- "4d7566cd294f75be6620f3",
-- "5f80095f2580ec4cf13b51",
-- "34eea7a66e8ff3dcc8988e",
-- "899b1ac6f72ffff8aedfc",
-- "3cb5a124ce563c3967dbc3",
-- "16d5205447831696c5d6a0",
-- "414e761d40341e7f97c304",
-- "498104aa12355244a9b0d6",
-- "3a8c5a9525f5d62cea294d",
-- "1c90fea5f39d8ac4dfc2a3",
-- "6a716dae106b9aeff2133e",
-- "735cfad9acf49090fb7037",
-- "5f4e7c70ff55ff2f888f05",
-- "2f39a2788d5c2a24e16acc",
-- "38d9d05f9463a537f470b2",
-- "72b5d8f8e65cb7509a93d8",
-- "75066462fdbbc7301e209b",
-- "55afbc51e7c2cc748942ac",
-- "47a1f466100bf70dd5689",
-- "57d88b5e0b434eb1a0dc08",
-- "27ec8c6636679988dd1267",
-- "4818e9ef0ea7625cfc3d0",
-- "68fa3ecc3845db5d523ad9",
-- "4c95bed884bd87ec1d5e70",
-- "7136b3dd116ed121aab68",
-- "60617400353c1eb8e8832b",
-- "19772e34181f57b670bf9",
-- "2f58f2df794a35875efc99",
-- "690aa96130f8c533d77ce4",
-- "df261ad3b5157a525bb81",
-- "6a437e22c95fc6c6a4449d",
-- "1cc2526113f2bae9b540c1",
-- "7fc2bcc524b4326eb8303d",
-- "751e9eb348bc8239d6e118",
-- "2fb170a11f1aecdf586d25",
-- "32aafc640e8c99bda8faa7",
-- "552aca5af025ea1e84aadb",
-- "30a3461d63ca9807464dd6",
-- "3f68fa1a9ab7772758d0ba",
-- "6ba1300374acd487b23577",
-- "35865b2ca16d3453781f41",
-- "3d1155c4a53835d991a0f",
-- "74bb588b5553c2b2d4ac78",
-- "3778fd3a46ffde4755b6ce",
-- "1d2b9ca2f44294070d4e86",
-- "38596ed050f14596adc07f",
-- "2015aa6fc7e48fa3bc5ab5",
-- "2ad2546b270547fc24541b",
-- "1dd1b432dc809fe4c879b3",
-- "149e6a0b6c6543ae895e07",
-- "7851b3168b92e5daed021f",
-- "2bee268df09cc40864a917",
-- "76c2f0ba37187112ee4d4d",
-- "53016aa1427381b9f28ea5",
-- "397f144a181805e1a097c9",
-- "634478b621f7f0a455c48c",
-- "7cc0116bd0bc164835ee72",
-- "310e395e429c4494a5f850",
-- "63e0dbdfb13b4fbb46f00c",
-- "4a9e2e5d8ad0e2e82aa7de",
-- "7d0578a8908ba294259bd",
-- "17276a59aa9630c1141c17",
-- "393fe0be8f011593a7e1ef",
-- "475e84f70334cc0bc8292",
-- "1ccd174e9aa4e58e7414bc",
-- "19b666810d736e639b51f2",
-- "2a48d89ce122dfa7deba2f",
-- "6520599b30ba3568ad0f09",
-- "4b35e35e82bffb49d0d830",
-- "3943e926fbe3d426004ea9",
-- "4e501beb4617be0f02deb4",
-- "343dad4f059acb87d3b0e2",
-- "7bb4f9d707b4ee3a20e779",
-- "7de4927696bdd6d3b718",
-- "6da3828f2d4926651f7a27",
-- "3601174a7dc823bf4dc3a6",
-- "223160cdd1bfa322ca3e6c",
-- "31a504d1dcc251075e4436",
-- "1b1ca5d6c688c4cf99448d",
-- "4309c1c59a581af63d922d",
-- "6077a88144957827c07205",
-- "22e321253c3e0fb875c4df",
-- "6b4728ee168cd23e2fe47c",
-- "1c35e13f8ffb7c470fa61c",
-- "4bacbc68650c41520d312c",
-- "455c9131bfa1c33274be37",
-- "23c82ae839bf5380a55acf",
-- "171e59c89024b148534f1b",
-- "165ff53589519199fc1846",
-- "69bb33c18017fddf18d091",
-- "2797689917c95a9d4073ae",
-- "527c4b155e3708972293d1",
-- "6e007172a16a9c673e635d",
-- "1921f3262afb2f3766f357",
-- "70a2d453b688803716fdbf",
-- "4fbc987e428ed0ce9cb76c",
-- "58320debe89492ceee77e",
-- "1b0c27c7452322264822f3",
-- "66ffe80af410522139e92f",
-- "5e56a7d976f1a3334f57c3",
-- "536a736ad3a37793dd9f54",
-- "407333b3b6a3bed3ef8920",
-- "76fed7d89907843db9af52",
-- "18019c176b4c9453028db8",
-- "4a54d9b3589d5340a01e23",
-- "1a4e5bc143bf00e8928403",
-- "61f4a55b140e767495cd59",
-- "25cab751e23d8e69bb5048",
-- "591bac661062f64b8e3f2c",
-- "7006ef130d31e12bc44c5a",
-- "6a23876a8c802d81d83d29",
-- "7cf9338ca9bcab73862b81",
-- "e941ecc714605cea72177",
-- "4839c6454f97ececa9969f",
-- "672d7083ec424e5d883cec",
-- "3722a55f27f2c02b34eddc",
-- "4f72850630f6f8c1a68862",
-- "1a63315aa52cb254b65ce0",
-- "5a0c2602dcbbbf468b67e0",
-- "23f219093e9b0bb3b5217d",
-- "4f6d8c8b0b9b376d42c4b1",
-- "7abf68b2e4cc9e3a3b2c5f",
-- "75f4eb6de0d35eeaa16cf8",
-- "6a81a8d913b71671629ad5",
-- "3afeb7cc8f8e5bb8770da",
-- "2b0fed7a534d25697e5c7b",
-- "2964973c288dced7dae8fc",
-- "a6c54d0ec55adb4911efd",
-- "7e958697030784ae5ddf86",
-- "7fd4ee663460087b793a80",
-- "5cafa83a10f929b5076c60",
-- "452d3dfff11e24bf680356",
-- "39242760b51f2f93fd4721",
-- "18ec20d19a478746123b",
-- "30f4f5617cc73435ce74c2",
-- "1851e925707895d37a37f2",
-- "6400e87749e3bcbd750d89",
-- "6c8879d694e1a0b99f8e42",
-- "3ecf9d05cd62341c4f7784",
-- "7895b432001edf846b7b3e",
-- "7c6b359299af5c59043711",
-- "13f13f9f2c877cb73ba5c",
-- "2193bc73ac4b40415c95b5",
-- "6351b2a5f477112f552683",
-- "48eaf0293f956717b8f048",
-- "21a363ab0e08a4336f2e44",
-- "d8c34dffd92c1a20d6a9a",
-- "7dc98aa964908b313939a9",
-- "327b2b8d0b75e0d83a5b04",
-- "2d1b2f087facf1fbfc7e69",
-- "6e97dd298eaee757a3cec1",
-- "504d29ae2e5a021d2bb278",
-- "5344962f90f45cfaeb1bce",
-- "767dc9d34c09b03db4a0e9",
-- "731a7b89f357bfb855a5b2",
-- "42cd59499a0ef57d6b0009",
-- "5d711409f3faa9ea87abfc",
-- "352389083277fbbbe66ac3",
-- "30a77107da1d91a699e9f5",
-- "39bf9c3f1f0a1a15264530",
-- "5ce5e0595ad07c8855357b",
-- "4499c1c16fec3546d5903c",
-- "5b8e9d8b290e89e5d9afc3",
-- "214f18ae0c9aa7a1b8c02e",
-- "639c2fcec8b9dfcc987387",
-- "1536906705870049755028",
-- "e0800809dbab6d41345b4",
-- "39489c7fdb445490d498cd",
-- "52c4d1c2ad153a3f70bc0a",
-- "540f5a33d5aeafadcad19d",
-- "6081e77fedf3898fd66607",
-- "584b7d6f0b43ddd0b397e4",
-- "7d8b341c82b019a8d56c92",
-- "2478db790ed59756cef964",
-- "93cbb2483673e4e0dda30",
-- "18ba9d869c489f11ce52e7",
-- "52cfcbd15dfc6c476cfc76",
-- "7ae1d007cf030664c6b815",
-- "9bea90a26f9e93743a998",
-- "7e62c15038abb8244531b4",
-- "3cb748f77d638122329dca",
-- "1fa330f6dd5f3ca09176ce",
-- "779559a53e6b62275896e9",
-- "51a9b0945a0908b1d40d24",
-- "2b13e041339df4d5a521ce",
-- "7256923d608836710a659c",
-- "48a999a2dc1a23a934a6fc",
-- "ef75fc5d77fc146e975f7",
-- "a058b3353ac6290d9f864",
-- "290ac68bec8aa8955b7e97",
-- "754ffe6bc2e7525e892fe",
-- "5d7c2a1d1267b7a252da1",
-- "35714b90920ce6fe1f850",
-- "456138a50c3717947be48e",
-- "1e2093f76475f58a2dfd79",
-- "4d8859f357a36792b7211f",
-- "3505fcb3eb2690f88b3be3",
-- "2735b2e6f5f08a9e9418bb",
-- "4c1f6b587fd26654ea69e1",
-- "351c5a0b997e45ec21b614",
-- "1c960c994194a1366a2222",
-- "352a4a136ebd7ef294f370",
-- "2df28a1b78b46f16aaf53b",
-- "29bbe5fdf14e69065cb80c",
-- "30eff32d49c10f325b8e9c",
-- "628d18e095a8dbcb9f43bf",
-- "1efd2b46d4a8724e929fd9",
-- "13221a23af3045ec5cea35",
-- "15d4218f4bbf0c95cd9649",
-- "3f5027ce278d444a4dd243",
-- "2d5e8f78718c2d4660cc69",
-- "49cb6ac7a2bfdc54300006",
-- "a134915353ce113eb72dd",
-- "479e7025ae3fdc2bbcbe22",
-- "64ed03e382c11a32e34cf4",
-- "3d73fd3c3744e9ec5d2d04",
-- "116da33e19c8b80384fe28",
-- "68ee183b2208228da8bab7",
-- "1abc0d15793c655cee4a9c",
-- "307727bd97c5db086074b3",
-- "1d6812727d8421d0e03a6f",
-- "5b39ddb704fa58142076d",
-- "2f78c0f7e7a90558573941",
-- "35a3ab4773c5054a30c44d",
-- "76c132264ad2a774a55164",
-- "620084c5da2910137e2b10",
-- "31541f24753a28cc5b51d8",
-- "52f5adde99e4501e4d1c61",
-- "779eb73caa637aa28db87c",
-- "3a89578d6ca992f91249be",
-- "536be2b3e3829710aec51b",
-- "53c95b2787b88db0682132",
-- "4a0fb16cc4d1bdfbb239c",
-- "8b462e0f7448b549fd688",
-- "783e0229f219bc18b705e4",
-- "17dd6e40297f1d32786291",
-- "4f2cc1f6f7aba8c20a670c",
-- "479fc9912c9c81152eb474",
-- "117480f169f81bb3e8609c",
-- "df7ae04689867c9ad97d8",
-- "70a1107bc42bfb598164ea",
-- "557361125249092a7bf932",
-- "5cd319aa7906a96d2f6c7e",
-- "72a7ca4a8dc56f9c652281",
-- "dce90e419e8d3f96eb5b4",
-- "15bb5d9b44eebb27a1e60e",
-- "2baeaedf76503008b9e428",
-- "7aa81a94a5a230cf59a0b9",
-- "55d7bf2f5724b5dd0a04ae",
-- "e1ef803b3674bf39884ae",
-- "1738ee1c8e104064e07249",
-- "7ce4bd3337a7333159cb2c",
-- "38110b962a169200cc9f0a",
-- "1ddeaa1e583e9146210f69",
-- "cfc86f804a481df48868e",
-- "55a41153a33cb4649703a5",
-- "5eb4d93a33b2d2e2c2adad",
-- "4cd904fd9401eac5ad7f1c",
-- "502c6a2df8916b18106088",
-- "6259df76b87ab2eff6659f",
-- "2f85e68dfb9aea66d7f07c",
-- "1f1eea8231315133cde938",
-- "6863984d7793407587e8e2",
-- "7b5272bdeb1b01fe56bc29",
-- "26b7df388a02a8279b0652",
-- "7fe76cd2c5affa913c2b41",
-- "733b81816da25936e81af1",
-- "235baa54adcc67af92d06d",
-- "4e6cb8ec1b00e2f28b3a7e",
-- "88b8371baafc87a9713f4",
-- "3b0283be973d59ebf4242f",
-- "587cce1cbd0dee8b98f262",
-- "6cfdd09fe2bd66b85c2e00",
-- "12a3196afc09a79694eb31",
-- "4feae15528510f186aa1fa",
-- "449ccc3923e92a0bd2e3ba",
-- "4f74e7ee01738298062093",
-- "6ce98c831091728c0e73bb",
-- "4bfd93fb985a44ed0569f4",
-- "3c8b04f81e14e10396b582",
-- "6cf76079225189eb2608ce",
-- "76e87d4d2740e137511b26",
-- "c62790b24bc842a717e31",
-- "516640d56302eb15061b25",
-- "60c8d2e958387c0d0627a8",
-- "402c7149b20bce787c7e83",
-- "64c275af1abda385c2af0b",
-- "5088a2317aa34dd5bb1b4d",
-- "67a9131aabd5255bdce732",
-- "d452f805a2c35e686e107",
-- "5ef5512b3384aa1243daa6",
-- "6c1076c01e9e44fb047889",
-- "46bdbd32d31b2a36e04e0a",
-- "527456447c2748239033cf",
-- "356211f56936e183312837",
-- "449d4feccb40da2e122aa1",
-- "43ee4b35cb3cdc84d1d5db",
-- "7651ee2e0f4d348cbe95bd",
-- "2ef2be0f7e33ace73bab4",
-- "4b8968b5c5a93dbb4b2b55",
-- "7d2db742721c9ba686ff30",
-- "48e4926c40cd6ab5e92ffc",
-- "506e6a05e8de5c9198ae69",
-- "74a156e77589342bbef3d5",
-- "798019b397419c8d54fda1",
-- "5a7d2dd2aa2028d4da8f42",
-- "5ebb44d93cb77417b61c4f",
-- "1630a212afc84f038374d9",
-- "3ae30b1b5931eb630bbf6c",
-- "37ba1e609c7b12a8e32733",
-- "238de3e1606bc0e1c33adb",
-- "149d706db4fce00c71da76",
-- "524b77666e02692a642407",
-- "ac6c9987de6c73f2259d9",
-- "51c819b9ec191b60920096",
-- "a961f7b95836d3a578170",
-- "2bb1db818cfd733dcce0b0",
-- "51eb043d3564fa91215f1b",
-- "23693b4063cf0fa20dad42",
-- "4fbaae68fdb253d715d528",
-- "69a784edece7c38bcf7297",
-- "1d595362f3a1b4c77729e7",
-- "22f18c95264f1fb742c348",
-- "5637e5d4438a119a23f043",
-- "75a7fc26a6faacf109b345",
-- "3a051daeeae9770973713e",
-- "4b21ef5da2b744139c3cf1",
-- "471eec9edf3f5af18be6bf",
-- "341851bd5e48e20f0a412f",
-- "f125d56d3c0c2aaf7ad05",
-- "c91beeecaf54c95dc1b37",
-- "38e1e6200860f4072a8a1d",
-- "3b3a5f854ba249c04d075",
-- "4170c011864f5582d6a738",
-- "17fc45b2690c315a5249e8",
-- "1bab6e088abbb7a786ff3d",
-- "1b388caec4f8538425d93c",
-- "6df80f50564e811e245eb5",
-- "65a5c9fe061a38a8c6c2e0",
-- "18e5cae7f3bd61293a8c2b",
-- "408e6268fcd75479c3bece",
-- "514d622fcdfc26212b5d14",
-- "435abcd28c0cfc9f321db0",
-- "710608c33a517ea5d5359e",
-- "96cf28ae783cd1e477aa5",
-- "5685392e26e4e637394c54",
-- "32f953543bd07093a29e5f",
-- "6806f2889f5316f4c57e07",
-- "668c0767178119bd41ac3",
-- "6e885e79f7b5fe77214da5",
-- "3915c8d33da94da27c1249",
-- "762f2aec62b91b262cc99f",
-- "7ce0b194ba3e31249ab36d",
-- "5dd52a5a11350a9b7572fc",
-- "404ae85658f9b08174632",
-- "7772e0b990ccdc614c11c3",
-- "573747456cbe53c844796c",
-- "3cf5810d8c38a097a7561f",
-- "269c017af27ad44e6b201e",
-- "2835e7f4b39073c5a451bb",
-- "ba07dcfdd701f16f45aca",
-- "1b6a00fcabec41d4b43ba2",
-- "67da5d093fc207176dbdb2",
-- "311601fec45703953f2b91",
-- "483ca240f22946b37af3c",
-- "758f193f192584a42ebc31",
-- "16fb077509115b4c0ee442",
-- "2334ccde40867fa1d0bc15",
-- "3f0177714af6ab07d870c0",
-- "697c3f9accda8d3543f182",
-- "59a5901c521b74864c8fb2",
-- "17961b8be9d0332a213177",
-- "69defadcac1e44c7a1c0bd",
-- "2df92a33b308b4efdcaee3",
-- "3a603b28f5e57fbfd764b9",
-- "65c75439faa2303912b32e",
-- "121daf29269045f5bdd20b",
-- "7adedaa3d8ff64ef5910ed",
-- "7b59158d38abcc0653e41",
-- "63bd657552fcd47a1fea3b",
-- "3951fc47c9cf417968c09a",
-- "7b97dd845f9509d060f296",
-- "67cd089f73cfc8807dd840",
-- "b17adb15bd895ea825438",
-- "3860f5646a470f19d720f1",
-- "1365575dcf06e2b1987b3f",
-- "5fdf7c6cf80f5f4d619b9c",
-- "1e86f8d9f30e1c9ee2f741",
-- "2f4da63191088795366c81",
-- "1f527bd93add787e619f2f",
-- "1bf7de225f0abb4eae1da2",
-- "7eede9c7d2fd05759ff0d5",
-- "7c4ebd51c09994a5c2702b",
-- "2f27f9f5b37e53f26a3367",
-- "1a91f5500bd170effa0820",
-- "14e76412c1e117fa60f762",
-- "27869ae6bfa80052e928d4",
-- "36e5208ae458480078d5d",
-- "193c88995f60dbabf1ee79",
-- "55509fd3a52bd88fe29e11",
-- "60188d16e528a5d2e06d3d",
-- "3cd40ccabd157073f9e356",
-- "6f7417b6bfc27461fd2524",
-- "60f671cf9f662680d04313",
-- "6a1b97013fc782623a1d18",
-- "4a5a912df871eba16ca2bf",
-- "4bafb874450e24655961f3",
-- "7fa7e63240bd502dd4b06b",
-- "3ac9b63dfc3067c1c4627d",
-- "11978ed9a01677cec42ee0",
-- "6b488f646fce9835d43f44",
-- "2449f6a2ba5fdac5a9c1d4",
-- "1fb4d17ac6ee317ce5a547",
-- "230119c3b2a6b1bafca00",
-- "5ba00e958e1473bae28031",
-- "2e0a934adfe422dd136191",
-- "64af53c3c0ad963e3055c1",
-- "173ee21e60a88ae566e166",
-- "c25f982adccb58e81ce02",
-- "1c0d48f6283945e321fdac",
-- "15b86ea9fb5f9d46bb9d95",
-- "12ea1cc2026e4f5211a159",
-- "4948e72d6c06974bcf7212",
-- "474d5e705efa51e5e97d39",
-- "3a928b86dc180342e1f053",
-- "68570d0c5fc94ab3c18486",
-- "33294a38a5c8a431b3624c",
-- "7f5271355a686a4df7e516",
-- "2176005ea62a7fae1a0ec5",
-- "7b7ba8150a404335a3e978",
-- "7ee167869f16d0f3096184",
-- "37b012fbed4994b5319766",
-- "5a9897a2da0299756dfdb3",
-- "22c922d5b0fc736e5f1adc",
-- "7c793c0d415e26d57ec92",
-- "11326e189db8b15b0744ff",
-- "39f2517276288f74c45e3a",
-- "47b94fbc156b869e9d16b9",
-- "4a27b941aa4c6ad1e07548",
-- "796842dd6bfad2f98912a6",
-- "561331256e1d21664a1287",
-- "4d3db82b9d6efaedc42576",
-- "26293d249066a3014c3338",
-- "29d711357943b0afaa5b59",
-- "3baf4fa4e9f273acdf732c",
-- "22f4901fc0a8b24cf62fe4",
-- "fa65751eb4d84785986bf",
-- "1c89d8520ef104ebd20ee",
-- "3251a62ebf3abdb7c9ed58",
-- "59db917020bf7253782d5c",
-- "52c455dad0b267d43552f0",
-- "599102d1f2500d61d762c9",
-- "77024358b3e776b2c5e1af",
-- "3248d851d401112b750bc",
-- "36f20d7e24da8778ce35f5",
-- "4dbcbf0e0833361017aadd",
-- "7a6a150f8921047e15edcb",
-- "5d53571a7cc3688e6944b0",
-- "3de0a5abf20a4845d76439",
-- "330bf157841f4554c8f5de",
-- "7faf5fb28aa48ff83cc07",
-- "ff765fa35889a47189d5c",
-- "1bb928a5ce5b6a93e4a6be",
-- "443f4b4ed3b1f2c8fe8ce8",
-- "159314ac561f7431a71dd2",
-- "2ad8da8cd83b1521d7659a",
-- "2e6c1f41a9866f4d867e01",
-- "2bf095a2fbcdb3391aec69",
-- "7286bedeaa0c2687819d8a",
-- "1a1cfff05adf1a427c023e",
-- "7677202d8f05f9287a6047",
-- "144036e909f39a00a79653",
-- "5d5d0b6bedf48b96c5eb79",
-- "2aeb5606838c910769daa9",
-- "36b57535eb2f884ec435f1",
-- "26639427b4cd468207f354",
-- "567c07ffdf5609acdc57cd",
-- "46c6a4606b83331dd733e4",
-- "214ab6242649bf5f0673b5",
-- "456b75b7118ddbd9c05113",
-- "23f47a79fc10179e2f1aad",
-- "6750d083991451ddf24ddc",
-- "9a91d432ec896438ac971",
-- "62cba5cd6ece1fcc005653",
-- "146e2b3f7404eaa2825f64",
-- "73a1489a18b0815a03faf8",
-- "4b81add44caab6287f5254",
-- "43da9e4b9fc98c3225df02",
-- "73c9485e5e5379f878695",
-- "4b0e392a6b94b0716bcb0f",
-- "627d01094a2553e7bdde46",
-- "6e1c49a1adf3346b270d76",
-- "2c11fd859f539479044b3d",
-- "5ad56a9a03d1277384501c",
-- "538b76dc0991647c99d6ab",
-- "2fe38c447768175651bb27",
-- "2d8207ca3331c2f27a3943",
-- "ac1c0028dc3aa005da816",
-- "5830e5e1c9294904118c10",
-- "4fc1aa30a26bf05e1cf79e",
-- "37ca6d3b30cb2687e44f7a",
-- "3fbae766d352bf62d71ec9",
-- "5b8558cbc60eeb5d4d1e0c",
-- "3c0ef922648f93834d2bac",
-- "1f216750a4d1686b3b2227",
-- "54449f7dccf77fd8f14fff",
-- "25b4f424465c145a893505",
-- "1533a8f5ee81c2d4352c6",
-- "747f5812283a8ba1a43af4",
-- "42d3b2e606813eb48865e1",
-- "771e23d6155cbd6574be92",
-- "6937a623eafb54374944c3",
-- "7ebd8ffb86035ffa249a5c",
-- "65a59676f2a0f7f5358513",
-- "4cc1b8f60c7b3b604dd7f3",
-- "8c1b60a22d754654b3b0e",
-- "3542a00727cde7902f64",
-- "46dbb8e8c99f2d8cf603ab",
-- "449f89bc8e75ebc93c06c2",
-- "42fe3f1413aec51428fb64",
-- "6ea50d7820cf1c46cfdea8",
-- "5e81e2ee54fa1c8e9216bf",
-- "3cdbf096f176a11d399e68",
-- "1b8c58018b9ec962054ab0",
-- "292e4d75da1a76fa4eb730",
-- "23f737b6f1527cfce0303e",
-- "1f2e34fd7020d08b01b7f2",
-- "1103bc87eb4e4e572c882c",
-- "4796fc52e00fbc5d65fc02",
-- "6ecdfc4db1fa1b0104403a",
-- "5d780dd5bc1f62ed520130",
-- "403ccf27d3ff3c3686d654",
-- "7a42533b0f16560c421482",
-- "3c52f4c6c583d5b2a18105",
-- "32e84128c0dfcdebdcfc5e",
-- "db6d45038525122246c3a",
-- "7e9e8be590540d41cb48b7",
-- "4dac5ec68e30db33d790b3",
-- "4a9951c3005ac4b7d775a5",
-- "8d7ac16a6c7fb5dcaf362",
-- "7a7267a5eeee00421b1bd7",
-- "14b9cf8ea7c2a2aef663e9",
-- "7a75465db2452d11dbf6bf",
-- "49da4e6814895f7566132",
-- "6ac2b95852f2b3848657c4",
-- "29f43cc681e11325bf172b",
-- "41d82e9988854950bdb48c",
-- "6f5834f39b940405114e26",
-- "754181ae9689816d4fae85",
-- "394398fcb25e82a48b8d32",
-- "693e564c43456862d84db1",
-- "5fa8c4e879ae9ef5c6f178",
-- "3937d6181e67f43d9bec08",
-- "4bd73bb75df0b9c8f31e93",
-- "417a5a771b0fe4694065d",
-- "47ddc74fced651c57b4d1f",
-- "7746c161815ab2091d9e21",
-- "72216a00ebfc9de1e963c8",
-- "74c5b771dcd8c4719355d3",
-- "450dcdc45566039112cb21",
-- "1ffc37c5751a51bd676a97",
-- "553adfba4c4a6d20491557",
-- "d65fa4e9fad0f9180af7",
-- "6151a60a864edd0e7c7b30",
-- "57a6c26c5e5dea61f133ee",
-- "39f0a0674e65b2cad4a706",
-- "29105da153f2a098ad094b",
-- "c16242d78c3d8fbfddea4",
-- "235bf7672a2cda1ab01fb3",
-- "3faddb5ddd2bdc683de72f",
-- "75964f1abb3f7cc93e9f96",
-- "62019722b2962f2ad1787f",
-- "67427f6921fbdb98c3e375",
-- "2a0c42a5cba7fe55a006e5",
-- "2bcf3f6e0be988750bc0c3",
-- "31cc33f2d92bb3dc73372f",
-- "553e86c66c2fba13b95f56",
-- "75f53c77a2d34dd51c6882",
-- "6f8c0ef46d2275dfe7e84f",
-- "5c1c9591ed7cecac5be504",
-- "e0fd267f226bcb77b4105",
-- "1aa73126a375b6cf5e8b5",
-- "5e4eaaa44cce4760757194",
-- "a15cce75efaba6c1b571b",
-- "7f779a7314dbb8bea5c652",
-- "2359b0102f9a1f774278d",
-- "20bd84ec27cae248ea38a3",
-- "38a3fd25a6d9f4f7c85efc",
-- "2117da386a0ba848e04619",
-- "6db55a7581d577d97e45ef",
-- "68437c168764f9b52e36f",
-- "5574ce6446f5f9b2cb3ade",
-- "2a8fc7a338bd0e95e61238",
-- "6dd1e30b456df046e42f20",
-- "360136af955e5fa1edc1",
-- "403c97fd7a8e612b101803",
-- "e8a31983f38b3bc04d83f",
-- "2fc4119b8d9484cd86a0bd",
-- "23b23c226ec7148e9ecfd4",
-- "40f14f4642441c80c723a2",
-- "255da48e767df6db73178f",
-- "5f4ee2c7a7d447e781b997",
-- "4945531dd0d285dff322e3",
-- "58de9434dcaeb21007cf50",
-- "4eb92d6051c08bfec28d32",
-- "46777bd089a8dc8c44ba66",
-- "155305c9e80b8231f3fea7",
-- "27e0d5b6d5b01b974468e6",
-- "3337445fe49877ddd94c8c",
-- "23ff36317f41cdc69b5f8c",
-- "5798f45a6d32a5d9e220c4",
-- "6b1b87bf69d8ba16154459",
-- "d959366c9d2eed9c988e",
-- "7914f6f164e20860badddb",
-- "fca586b3bb595a8d4101",
-- "68bf1a165a85b17f192a39",
-- "7b94e69ecfb1ba4bdf42b9",
-- "363177aa4ad204478f4d2e",
-- "4ec109ed0d029a0c6bd1c3",
-- "ccd4be560162041ae08e2",
-- "3e7a71b985de5c6c7a9f57",
-- "1dcb001f06c75da3270a59",
-- "7feefa2c38e3a6212b4cc2",
-- "58a47971604afebfc2dfe",
-- "175182c7cd2ce431b0150e",
-- "1ff2197a0e5b3d0b65c928",
-- "497b40c11c5d479cab5f20",
-- "5448bba652328fd63e3ca2",
-- "748cb85b7df9ca5a82d4a0",
-- "5b60aca7fe85259aa048ba",
-- "68bba5659f4f20356a0cad",
-- "16a2f9f4e53133020d693f",
-- "75df623177a9cc914a680f",
-- "dfa61531c98e389318ffc",
-- "12502410f917e813c566e4",
-- "385c720d2080ae9544a074",
-- "15c5021e3387b5104eda39",
-- "6ed402123cbfe00df8030b",
-- "4e9e415c8033fbf3989b6d",
-- "1ead4bf29c5aa1e11118b1",
-- "3eed8387e5a22f84995caa",
-- "6207f87b59fc321d1fa8c5",
-- "5527388c03206dff6a464b",
-- "232706fb395f1e37b2683d",
-- "5eacde9e13242553f24977",
-- "257f0dc17de9e402db5577",
-- "26c8838f41263334d39302",
-- "5ed2c798bc4d3df9693b4a",
-- "59048c7bc400c1b2f055f1",
-- "60ea199093a4e9f80613b6",
-- "3fdb397b831af56c0902f1",
-- "47be6483decbcd32c50b44",
-- "715687651f6925a41a3bf1",
-- "5c585a64ca68d89750e9da",
-- "1f5e885344b51456b2195b",
-- "5d2602e9c7bafe79929bee",
-- "25b65fbcf4deba1535165c",
-- "4bba04cb6f7dfe33e4bd",
-- "4e1dab19fafdbf4d11123",
-- "3b79806e60c6443e5b75ae",
-- "28390f3626b1fdadbcbfd8",
-- "2ac5b705311ca0e8e6bcda",
-- "21cbfd5db5cf856bb6980a",
-- "31340daa6bee66dc702e47",
-- "4520d49550bf0a2328020f",
-- "6a91ca9f24a59bd3f77cce",
-- "590c069f4d458da38448fb",
-- "4eca5fbd35a4778cd18f80",
-- "288723d0eb9a25150c0772",
-- "6bd55e81cea4df6934b8f5",
-- "684e96f56360b04576ab1f",
-- "10c2f27dd2e5d8f77a071d",
-- "78b61404bffa36b135773d",
-- "9b13c11e290284a86caf",
-- "415d623b63f929b3ef879f",
-- "4dd2e16c6f9989907671be",
-- "72e3a111047449df428c07",
-- "27c4576460764aabe86ca",
-- "509ca3fe7eae200044712a",
-- "1488492f946cb788d721d6",
-- "5fd2fb0300581c5f59fa7c",
-- "cae1cd222ac38b9a89a19",
-- "62a4fc7a9af2d27e92b08f",
-- "2dd86ec9cb242b4e68016c",
-- "615326e14c6c74c717def2",
-- "454b67d8b7470679eeda79",
-- "359b739ee10f4c4f24e721",
-- "6714be0beb22d71708c5e6",
-- "571cc10547604b09ba9b69",
-- "64981a92737099a91d3794",
-- "58b898760417610a09ff41",
-- "5e1c654c63269bdc77fee1",
-- "37e704706a7967491e3628",
-- "76a279212b584d95ed2cd0",
-- "64d1d7c43b00bfc99b8bb2",
-- "524919eb6636c6c6c14a82",
-- "4176799b704bfacae7d897",
-- "2113e1a93f5d2f1cba0377",
-- "47626057be8af9d92cef74",
-- "31fcd9e9b87aae6bf32f83",
-- "2cf0b3c6e55d4f6c794d8f",
-- "2f36ea2bf51461b1407878",
-- "2840ecdbeaf847ed4e56fd",
-- "4dba440f7f398ce0198b25",
-- "6ef7e0b470470f565c088f",
-- "58a41d74e16c1b1fb6cbf",
-- "68b020f430372f0b20817e",
-- "396792f2585d3e823623df",
-- "171772c43b172c6f59b4ee",
-- "35da7f1fc27e6edf7e2774",
-- "5fe19870cf156902f09ea2",
-- "4a99080981fd90fd8f202c",
-- "4fb7ac8e103e64af4c501b",
-- "32124e45d595b542218cca",
-- "4cbbf282cb8d5b492509da",
-- "26e8b6fae1b81184be307f",
-- "4019e2ed5f4f686e75a334",
-- "aebf119c49f1f5d4fa77",
-- "214de8b9e305b92a9ebc6a",
-- "155503fef8a8a42650f8de",
-- "4cfa062853643ca21aa8e4",
-- "210804240b673797c1da0b",
-- "4499b6e3311b7fe5b9c98e",
-- "904098cdbfd4389279e30",
-- "575c81fbd5408f583cec84",
-- "2cb3e5c4dae6b173319195",
-- "411254ef95bca10cdc61b9",
-- "14266a10ce4302dd32d262",
-- "14a25dabe8f8f9bd2745b5",
-- "7c2bf4a989b0889ab6c2ee",
-- "7bb42f21df6b474c926cab",
-- "4edae7063e31e196fbffc4",
-- "706df4fd50e1c42994aed3",
-- "312ecee1519b0617d31186",
-- "32f8a36cc1b46c25cdcc28",
-- "6cc9f90d012be002904668",
-- "69498de156a0aa10a4e2dc",
-- "6bf558bed09b770ac7b7db",
-- "45166035762ea541feeea1",
-- "2bcddd9fb0f98505c98aa9",
-- "56b71258283af76e7bcfab",
-- "3349dac2077bfdf6a12d86",
-- "39450177cdd3980c4efafa",
-- "4ebe9580f66ecfa62bdae4",
-- "2d2c322dac49b5fc4277a6",
-- "63a2efcfe030b5eb3fd526",
-- "2327087d544749f348c909",
-- "3d49c943bed92220933501",
-- "2501ea3eadb12569e01e7e",
-- "7c2fed1746d715eb95529",
-- "3adbdefe2bc4d894d3eea5",
-- "574f9294e066c8fdb761b7",
-- "69527863032c1ba7d7e238",
-- "78778c448d7d69eeff19c7",
-- "63a482d47b34384d6c0abf",
-- "37120883f03d674fbee3d7",
-- "46789b05c1e88afd58b2c6",
-- "62e55ea318373ea102e458",
-- "7bfe5c12baaa86c60d8117",
-- "6c065cf636d6bc65762095",
-- "45109475272b0ee96581b7",
-- "1b4e22a54398ec5712c2f5",
-- "c0bc8c55f3b95e521ebf8",
-- "614224558d52e5d4eb23b8",
-- "532cc2e0afe1d979c42a70",
-- "6e48887c0bee3ba8386f63",
-- "726d30610282ed39d8f203",
-- "53a902325a9087232d64a1",
-- "6e72d626e97997cb842159",
-- "1fa48382ab305e0404adc",
-- "3d3a2d2ef7d22dc8adb10e",
-- "59aab11c164124e5cdf604",
-- "7529b300b4b89c580a5f62",
-- "206a9c38358f291b01e407",
-- "47267802b4baf11a616d7b",
-- "1d50b663f8750fc777a8a9",
-- "4113025c4b26d50d501a53",
-- "21e6a33067365b1e718020",
-- "1e3f1f00ee5c87d8bcc6a5",
-- "37902c15fea70cc2588984",
-- "330554538efb3452d928d9",
-- "eb12a34ffd8e97426aebf",
-- "7f53a40fb6d59c55fc0a6a",
-- "2ccc62a5fe0c2d164b78ac",
-- "3a82f64175d5b3caec9c53",
-- "676d8d92a92b0706da21e1",
-- "5c91f707bee21c71c33c34",
-- "2ab6145578df975521753c",
-- "6e20ab59697e8bf608ee9d",
-- "96afde4db924db62eec7",
-- "2d980e097ecb2ab91b9b92",
-- "352a1b67a355f38121c462",
-- "7c3ad9d6ed54817d082b65",
-- "65e071aa89e8e9caa17f",
-- "4e4d1094ae9ce9f42b1d71",
-- "6d82429df8c04f3e8cbdea",
-- "201a5f031183f9e3136174",
-- "4b31d20ed3a1f68f117d30",
-- "309eb70bbb47b20185134f",
-- "bf1c05f166718be1c6836",
-- "29dc0e371f2a3ea6cf4d60",
-- "610a799f5f9443dd8f333",
-- "7ca0b74cff2de67657aaa1",
-- "31018337a926110b0a5b91",
-- "3c066553be4fa2a741db4d",
-- "194fc13ec819c9e2289cea",
-- "3c7d066200b6ae5892048a",
-- "768b4e15703c2b99a95ee7",
-- "66673b06f4474ab9ac84e3",
-- "75b60c74c3f4835e0ba3f1",
-- "282bde17894173789173e7",
-- "6b386c8a9795cf0b45e160",
-- "1984882a708094eb26643e",
-- "7e84a589b79843d0f09d89",
-- "7f30d40bb0193bcc3bff38",
-- "1e9e640158c2d5ef405818",
-- "46f7147d837df6469c39be",
-- "717a62d953937ab8d63ef4",
-- "29d27ddd5f46b0a514ec85",
-- "7f5d5abee4ea627ca346c",
-- "1ba30d22d8ca0e3412c0e7",
-- "1b892a6bc6d106036dc210",
-- "78208a8be2c33504df2573",
-- "2d92e146c92e5c2141114e",
-- "65ccc844f43d7740c3bb83",
-- "6cbec7ee27571943d99309",
-- "7ab8d7968452d732fc3362",
-- "51e871e33b066886db1e57",
-- "70cc62d0a35cccb85972ee",
-- "7db23dcfd5b48847b2da44",
-- "38863908f348e0ff24d2ea",
-- "5f7998cdc984bda089a530",
-- "593ba411e3481cff090a6e",
-- "30c01b8abdb9d98a7941dd",
-- "46861d4c2ab5de181f3e32",
-- "2f44e6e7eed452c1b02ade",
-- "31e4383d0d65d0adfc3084",
-- "44b51755bfc5410d6cfad6",
-- "2b89a454954d4c6b2e2120",
-- "7a1817cf8f21c4f863437a",
-- "1ece2489d9c16fd0d7c093",
-- "7fd049d0f5d16bca84fbf0",
-- "284cbec8937114a1728cdb",
-- "2a6ced30aaeaaa3957eaf",
-- "41ec16a5c725c7d32d3a8d",
-- "2c1cf6d476ed98aad97b90",
-- "715fb02624875de3ce495c",
-- "3d325eede75d0a573042e2",
-- "4550a8c9126d63e137546e",
-- "116c396589d81e0684d5a0",
-- "48ad93093caf03d61b0aa8",
-- "29bfa87365d098b3fe8377",
-- "3e14120ed24ebae50e64ef",
-- "1924697a3681efc60e8e70",
-- "1e1de465daadd9547d63fe",
-- "32c9397c9adff65d943965",
-- "41ff1be99bebe99b10f273",
-- "cb351e8f1a28278af3af8",
-- "5939fc19fad9c14c8917a9",
-- "634af4f8ff5eecb70f9b3b",
-- "14b126e3c0b0f4dae2ddfb",
-- "39bc9fe63b4ca1891dbe7f",
-- "3b77afb6ec85d92608bbc9",
-- "6308b8f5574126f70ec3cf",
-- "2928531ef291fb90d243e3",
-- "7d43897c9a717ea4ffaf53",
-- "542f3c6130072ffd145c0a",
-- "57b79cb347145bcbe43bcf",
-- "68855602ae559673b8a2dc",
-- "77f657453333dfbed3c7e5",
-- "1fb7c568bdffd12b767330",
-- "abbcfb2e4c3da6b090978",
-- "36224c16a9190272a21e14",
-- "47df2e03e1548a16e223be",
-- "f6c4daf384fb3d39aa985",
-- "6978fb86dcb4ccc82a3738",
-- "670c6449f82194e5367c1d",
-- "75a29d53450973ae07e5b6",
-- "1a0cc5d78d1da3759fd0fb",
-- "319945f43efa75c6d6fbd6",
-- "4a8154e2948099e7b7c4c5",
-- "2353c3f920ce7af530f96d",
-- "781973046ae51aa956a060",
-- "21789b3595bc366315af2",
-- "4d63e68650d056d4e2cca2",
-- "6eceb600a9b81fd3aa7175",
-- "2021e0329a909a39851fe3",
-- "45d43d697cb8503c85839a",
-- "7489fd5407cd56abfcfc49",
-- "57bcb68e1f52791794bf4b",
-- "71db6b9125d5ab5b3e7493",
-- "4e72dcffc8f26eb136b7c7",
-- "890072ab6d3eb608d30ea",
-- "2f1b9eb8c8ceec3aba8c3f",
-- "269ad3cfbd18bd255786fd",
-- "7e18b1dc04cb3af247aa31",
-- "43cebcc2f248fc1fcbd6b4",
-- "1b9995439565d095eb8a8c",
-- "66e2564796168c2d0a015a",
-- "13c9d1e81de8cbb64a1797",
-- "657128352843035ba5fee1",
-- "58c411222783451febdf82",
-- "2970c6e86dd017c5341ddc",
-- "7bb1913bf745fa526f18a8",
-- "4d0a046c7ec4f54117f367",
-- "36f24af02e5318171bea53",
-- "9cf05f6855d4068390948",
-- "1107ffccdffb2932659325",
-- "2ae1383e51812f870ebf41",
-- "3aa6d80b7b4477df65330a",
-- "6cc6a998d40d1bad211cd",
-- "7d58cee39bf1830f1b3ec0",
-- "dbd1bb9693e65c5eeef4a",
-- "4385d494a7bdb154810c4d",
-- "4a64cce2fc4633dbb63e09",
-- "3e9654e3940c0f541b93cd",
-- "1207aa2a4ea7c882b5e76f",
-- "43bc8bffd5b4fa12491d7c",
-- "7df66ef2eea696dbe6ad95",
-- "4e203019ba4b94cd691d60",
-- "61978b574cf8f6d53118d6",
-- "14816e04a6b799d1ce9e1e",
-- "5c699bfc1a98ced38d7c88",
-- "509dfa92ab81408672391b",
-- "2025bd13134bf0ca69b0f6",
-- "675948e6670907b03227ed",
-- "90bd6d6fef2e358a664bf",
-- "2f1dd3930a2948f2187f86",
-- "6336954989b8a716380f64",
-- "2655fc5da8cafdc10e8c6c",
-- "be26e79f27c2fffd5718b",
-- "7568ac37df7da28c47bab9",
-- "3128342c1cd21185c739db",
-- "1318f3d7743d8ee4ecfdb2",
-- "26102582959271955d45bb",
-- "1118a89d656497538996f2",
-- "4d74065738715d35d47743",
-- "2644cda468b716b53c99d1",
-- "2aec8efef6c41604b67a83",
-- "76393b1564fa2cd841480e",
-- "87eada956963224c06418",
-- "44f34a642236b1e7e4c8fe",
-- "5edc4541d1854504d071a",
-- "4a292844d7aa26520c09b1",
-- "1526a67a2f54717285cebc",
-- "7decc101d84d7378c8efe2",
-- "1f8889a7c0321f5279b37a",
-- "71d26320321cdb1dc925e0",
-- "b8385ec48f904d72393ba",
-- "4a2cef4e3606d1b9422334",
-- "db7255fca12f37c452ffa",
-- "4374a87512bdcb27925ebe",
-- "99539a5120bf06fd3edb8",
-- "4f7806a65676c896ee7db9",
-- "365cb247c96e7933341e76",
-- "7964fb4049b23d750b6f0e",
-- "48cd6ee15c4874d342b21f",
-- "221728332d3142e3346be",
-- "198d839621f761dde4f853",
-- "259839d29faddb791e3548",
-- "15324434e27844cc4fba51",
-- "60e351e7834b181d30a00c",
-- "6337453f9c180b8ddb37c4",
-- "608a29bc043b54adde90b0",
-- "4cb0c7462e90f28fa251d",
-- "b5f14620587f1e8ed5a45",
-- "3c994e655edabd5cfbe8b8",
-- "35ebfb3fd5a71979daee0c",
-- "2a1abd32897155b55014be",
-- "67d12b5d61741b8623f378",
-- "21469f9c49fb4d2fb54baa",
-- "728aa131a37012e184c2b6",
-- "6f085a8f46a66e79fe4f92",
-- "1a95aa2ba56c053acf7e56",
-- "1f1c7eef9d0f99e1e209db",
-- "5b57bc12988f27dd0ed418",
-- "5e9464fbce6027257d92c6",
-- "41be4715ccf6dde8b12086",
-- "25ff556cf1afefe2cd2ba9",
-- "59f67a0c66d5e9744004c6",
-- "23c20aae79c2ffaa75a36c",
-- "574f95a475dce62a3071ca",
-- "4a98326f880a44e2d6ea5e",
-- "39f7a72e1daced6411b1a6",
-- "37a4477749686070e7e049",
-- "51524048af5a6750b1955",
-- "43012f86bfa02bf0033ee9",
-- "4253e27061630b9343ddfd",
-- "520db901eb8309582e12a2",
-- "656f70349417ef562616d7",
-- "13cc5c5fa7afb2b7468106",
-- "1916345f1ad90cf48c6472",
-- "a80defe299bf7c4d81738",
-- "673a9bc1330de8c0b0abe1",
-- "226f7d490aa9d47314570",
-- "4762e175d924ca1dff7d06",
-- "79ae8d3a65221805ed59d3",
-- "65838019d10030d2edd34c",
-- "46d2651ce40dd1fdd11e69",
-- "4277911fa0e430960db091",
-- "5370ef9f2399e3c803b5a6",
-- "69110081782c350722756f",
-- "be2266f15dfa6e02e4a02",
-- "7c64411c354fca180b974e",
-- "3669075c083d3a0547d7ee",
-- "49212e86ec70f1b328e11a",
-- "70628248b6cda7311de5ca",
-- "5593dc730a3a85d6ce77d2",
-- "4a2416a8cf412f996e9654",
-- "56f01f51a5be66f649b1d6",
-- "1c7c6456335bb722881302",
-- "4f571e68d11ba0c201ec2c",
-- "2f615de4e96f8f9837947f",
-- "9cc0a7524feb44aafa989",
-- "13705ad9594243161047cf",
-- "358734094106c4c77371f8",
-- "48384f03b178aecb456dbb",
-- "336699d6c6f15f6ab914e2",
-- "5dd2532249188dbe3d2539",
-- "520d412f22645bfa3f3a33",
-- "45838fc0d9bd4e814df398",
-- "5d172643cb569d9b2ab357",
-- "34470b1eee2f871c42ba71",
-- "16103ea0d454ef686ebf4d",
-- "31e4aec6d42e52c762e301",
-- "217d231f2ea4bf28c97e44",
-- "15bef1b795296c7e8862d0",
-- "225461e731f47cbf2cbf5f",
-- "520f0b6932233966b7bdb1",
-- "6db3eec1da4e57eacd7cf4",
-- "5728f13fbf1367c5292a3a",
-- "7856c391e8828b90a94afe",
-- "6b36296c1bd668243e920e",
-- "2f8aa359ac5538f4834ed7",
-- "208dfefbc938eb8f166f28",
-- "6506edb4005521bcb61671",
-- "202377a9328fcb8f661a5d",
-- "6f4a829757301eb1143585",
-- "5baffc06fe51f5caa49a4c",
-- "1c24006c67392d350aebe9",
-- "a3d31a1daca53878fe695",
-- "6a3f78db4e25085a772f7a",
-- "423813f9eb92bfadf14d9a",
-- "60548a10984139e59f5d8a",
-- "ee2c219af9300476a7d41",
-- "6a4862d59f8198b4ea0fd5",
-- "76d72d56a09f253d257f0e",
-- "52492b4a4856d777ca0682",
-- "2dd44a6d1765874cf1dbb4",
-- "73040349f8459e94069012",
-- "6c290f053f3f46327ee8ec",
-- "6d575f1601945a3ca29eb8",
-- "3aac1aff3b6e14d31a91e7",
-- "4972dfe88d7e4fb02ffe72",
-- "5a86321f172c81fbf185ef",
-- "50b37142bd10ca63ad3866",
-- "50148cebf8644fa7375aa",
-- "322164812a5696cb2322b0",
-- "4303859a49916073987344",
-- "bac1f8bfa0e63045ec3ea",
-- "67b770c97867478cc69b37",
-- "2cd2d00d4262f35754bb13",
-- "678fb8bf7f6342c5764339",
-- "656e5b10b9da085176e0e4",
-- "59dbf0c177e94a664cfe3b",
-- "1f8b63c5fea99ffd6a5348",
-- "4debfa77d5d5f3fa106f86",
-- "147a0d7fc26817e7251ada",
-- "3f26224827d27901ba392a",
-- "24364b397921eedc03333e",
-- "361de61b4e6057d1cb2274",
-- "14b5583a83133add54d368",
-- "6ead11e0936e4bb4e855e1",
-- "30e484fb4ce5927a937373",
-- "571513666bf5e4e0b1c7c0",
-- "4be11f1cd60954626093b7",
-- "775bde6bde2d0aa4187fe7",
-- "5a1b57c203d09cc8a22696",
-- "5d5e844e1fd78c36c3341e",
-- "33b05c78a18798e4462d45",
-- "624f69e6f91d2b9574cb8",
-- "172e3a20b269ac416b7186",
-- "1f08599df3ce28d2e2a99",
-- "3d50a612150493864e2df9",
-- "42e82d8613957e0acb2b09",
-- "50e45902fe1a308ec88670",
-- "23db937264552bf6dc2858",
-- "6395a035a6a5e009dcf586",
-- "23931a4d64503bc81a5a33",
-- "f6074b1e17e08713a2a46",
-- "1e604eea4a6fb7804d131c",
-- "246e8276fd64f7af18402a",
-- "7fdefc35775213402acc91",
-- "31f0df7953457ce90524a8",
-- "731437b69ca76a93992caf",
-- "3559d5470cc8be88bbee52",
-- "2a6da3e3f6425cc4caf185",
-- "384ac895940651e4b3df31",
-- "20cfa0c6bfbdce5e399a70",
-- "72f290cf9ea470dcec1318",
-- "77ae05c9ad4bb1a82ee6f6",
-- "33f6606f82062475e2caf5",
-- "373211f704832f37df113f",
-- "c663e7994203d116af45d",
-- "25b286320c27c0f91c388",
-- "2219a8eabaec2cc4da44cf",
-- "3fa82c77c11ef3ce373a08",
-- "6c65a41601a28b4854db0b",
-- "398768a52710b109c92dcd",
-- "45e67b0777cb6facf28d74",
-- "21ac3ebe991cfe1bade37d",
-- "6db9060a2078f4de4b4e1b",
-- "1f6a141f6eb54cb95d54af",
-- "68c1092ddd7cea180b7a8a",
-- "e5d22d0ba9e3194e2337d",
-- "68075aa010a2a7afcb2078",
-- "577a2773ebc9e2412cb050",
-- "1634b76faeb97237505ef4",
-- "1aadb770481974ec7ba970",
-- "42a1f9791054781a203d9b",
-- "7a520385f587099a8da6a1",
-- "1a88cb781abea4a70cdfa7",
-- "655b44d3a92231714b14c8",
-- "651be8b59b15d629ab774a",
-- "550e4c9178e5dead2f815e",
-- "ee736adb9b9c1860d483b",
-- "ceff6274c7b15ae86dcc",
-- "214d49f3e2681b232cf62e",
-- "2330589e6c22439bef95d1",
-- "7e1ce3bec1e98dd35947ed",
-- "72118d192add3aa4c1e0b6",
-- "67daf6ba4dc4d74236df77",
-- "d16f53a28b7042d305524",
-- "6f52ff1c7f6dba719401b2",
-- "6ebb0dee9291bd90cd2215",
-- "78dfe864170ab14a408743",
-- "601b382825c1515525a19c",
-- "2e5ffe59b5dd3843fa4c17",
-- "2bf32012cc6354c709ad2",
-- "669f3588d7a4ca7ee3dd1f",
-- "3de21ce46f7c8be3bab3b9",
-- "432c0a15a9dc31696b79c7",
-- "349470b19ee7a8cf922b33",
-- "3c53d6131f8c41d5d7317b",
-- "5e83dc6dedd0679793feca",
-- "54c245a123767ef7f22e33",
-- "563e208513fb23ff9ca7d",
-- "b512df0270e6ffe2d4a9f",
-- "b0715d55fe0c1edd9613b",
-- "c0ecef4f88f5957d4b1b",
-- "c8806bb60205886d4ff9d",
-- "32c2902887e1700cd5dddb",
-- "49d6a78a88159326775c2e",
-- "56359d56dcb06ea3ab68ec",
-- "2d794034e6ae324ba7041c",
-- "64f201a4086e40b2a3a19d",
-- "7eaf34148ada80711a86fe",
-- "2142584bb5cff6c1e5011e",
-- "15060a6e69612092d45768",
-- "4de3353d33028c5f557394",
-- "70594464b46de9acc11f02",
-- "1fc064c4398ccf6bf7b1de",
-- "51cf9e84f5414c7907e79a",
-- "71be60f1312db2fcc7f045",
-- "5fa826fd6352f83c34bb5e",
-- "62baea1b89700a3953e872",
-- "4a266217d4534cc588119",
-- "7bc0acaa724475da5a8a83",
-- "3d9a1023138b0e9cbe7d70",
-- "388d8c3c958b6abcbf6aba",
-- "98079c36403a029b3f0bd",
-- "72716051b13a2c1876c8ef",
-- "515a0593d1e619118d226b",
-- "2a035934ba5fafe2ebaf47",
-- "316bc661e89aeb9e7e20a6",
-- "25330fc3e5df50eee77cd4",
-- "6c8071fad8933706efff6c",
-- "3669984e1ddcb753afb878",
-- "4781781ebc739ed9d4e35",
-- "3915c71f3b447b64ce4513",
-- "726dd56f61c4c5016201f9",
-- "7b8ff43621b7fb13c3edd2",
-- "2bfe7376e8ab62fafbff59",
-- "207cf80fa76e8708f88dc9",
-- "3a4a4ac73bb38c0c48aea2",
-- "52e6bde0fed2ecd82f7bf",
-- "523ee7b96bbc2b0977b4f",
-- "551b691726c66f9ec1f9e8",
-- "361fe28e640ec02ae49613",
-- "71e1aa5a9aacb38b66f605",
-- "d427f0f9d14ecf4c54fbd",
-- "629e9c894bbbebf06d3299",
-- "37f7d323d5bf332eed1bcd",
-- "7fcd5bd9328b9f06223a1a",
-- "744db8f7e25f69bc47f2cb",
-- "4b0d1ff6297b378945b906",
-- "7c1d3420db42a6ffd37cef",
-- "2f8592e02ef759cdd34c72",
-- "4dac1ce4b87e60431b8a4d",
-- "451e904c04882b739d233e",
-- "5bb2eece8c95a515d2e2ea",
-- "797d4c38129f52836fa5c7",
-- "5d29345f097e1dc041bc7f",
-- "6b25878a1ec102b9e883f1",
-- "610d07557d991d9db3dea7",
-- "5d3293ca54de6a3aa06b08",
-- "62e4e44df51bf11734aafc",
-- "1945686d70d9df98093dd1",
-- "2c16632a312edfedcc7f72",
-- "19675db116558d90bb4f6",
-- "620c14b60053b660420c4b",
-- "39a26bf8336439ba9968b4",
-- "376c7a8d0fa0abf4c0bb7c",
-- "7f2209419e3163fbb4cd8a",
-- "6aece787aae5251b57b3ae",
-- "6b380bf5d71fe523ad1e4d",
-- "2306ed04565a9cf9fa84c2",
-- "7e37a126be9507ba4c717f",
-- "67ae2ace35fde529154a8f",
-- "352d204330140b3786230b",
-- "6927c4b12865ac8f053dcb",
-- "7e61e3317d07a1009894dd",
-- "2768a7a783d9baa4e5cce3",
-- "260213253056e29f0ac6e3",
-- "61539cf7b388689e7a260a",
-- "3d9131aa5802e27a83eb61",
-- "5f87453deb48ed6c9a1afa",
-- "418b73330a3b4d1a80474f",
-- "5cd3a1cc8bf78e4c7e3747",
-- "784bdef1566f244d4ff44d",
-- "2c4bac0a0cf06ff50ff71e",
-- "3608208e4497b40a62b3a0",
-- "6e8b2732511303a48ef731",
-- "1ef9edb1f958cdf81fb9d8",
-- "4bdbd2765933e2b1d70563",
-- "b2687172956319218655e",
-- "4f787847feba11bfcbc764",
-- "49ede33966bc3f0dc8757c",
-- "12a2fa8c4d06a694b748c6",
-- "2146fc84389596cf6fa8ca",
-- "536bfe32ac8da07b253be0",
-- "773a63e6b7c9e3bec91272",
-- "6bc6acd592c0200b749e07",
-- "3d28e1c12f9c60e500dce7",
-- "5687a42dcd55b43227f657",
-- "36b36922114363ceb85a26",
-- "51e267e9a5a7684ebfd343",
-- "5b4aec35da23a27808974",
-- "2e684b7951a2526d838fd7",
-- "62b2e70d411eb11bf0a695",
-- "6473dbfbe4a3f63d08e3f2",
-- "661787ba011711628186b7",
-- "7234cde8ecc6673caf864a",
-- "1e39f05dac576881e6c295",
-- "420c1c0074adbe0616df4b",
-- "177f43e8d62e87c66b9da",
-- "10fafca3d5f71faff8f1a",
-- "43dcb4450a256b9a0eb673",
-- "460372cf36a22fb6b9641e",
-- "a4d6bd96f61637d730c9c",
-- "1754f51aa79c3b0803bf00",
-- "65fe3a22c7d35ad3f875e7",
-- "150c29ddf5483fb74be06",
-- "716991a2a17f536244885f",
-- "475131d01f3e6dc3b169fe",
-- "569bfe59efe21364bf57e7",
-- "75ac7a48082d5afa148e7a",
-- "63f5fe049f46d509d141d8",
-- "2b90f954efc9f58a07a363",
-- "39c167fbee27f65e96cc7e",
-- "1db83df0a168bac450e4f8",
-- "127118c35aaf80dac2a57",
-- "20601a054af9d51633fab1",
-- "728cea43531fbac95263a5",
-- "ff53eda132c9a3cfecc65",
-- "786d54b4d5ce74ddde20a8",
-- "1175d70c2c07855db37245",
-- "2cfcb08879a9aecacf316e",
-- "ecef39a1ef4b4d1e8c6dd",
-- "70357dabf2c34c8309c723",
-- "4db4f1a602cec485019670",
-- "735a03f218370f8bd85ee7",
-- "3c9ecb18a83b901f901704",
-- "4c7d0db8193430b75f41f5",
-- "28eb082844c0ed277d2520",
-- "a3cfbf8b779e15bf28c99",
-- "624d49c04a48d42d76c466",
-- "221bb5afe07669d916e136",
-- "358d745e0bc4be1c3f4586",
-- "1ce2a05bccecd36df96b64",
-- "362261ed7c97591714ea9c",
-- "20f6e36fbf07174b587397",
-- "12413ef53ba7fc6fb5cd35",
-- "3dd366ce71f1fed428c326",
-- "b66201b62ddf6d13c5534",
-- "3164747c95104338a78b5e",
-- "5ca6e41b81529e38a59f6d",
-- "3834a1b7acb0f05d9e53ca",
-- "3a2f442f3b3a9a2af00b28",
-- "270dae1c5ccafaa07ae8ff",
-- "71e916ff79204bdad49695",
-- "4d43f85ff03e3cd18ef302",
-- "2a2b13112979d27489208e",
-- "442eb4a36ab0287728c1d2",
-- "4dd985f2fef5c539fa6a96",
-- "522619b83283553c71de74",
-- "794294f26a938e1caf3c0",
-- "25d1c185377c3cd8e704a2",
-- "3e7db1002a9116a5e20032",
-- "720aa7a7bdeaa025a23a54",
-- "70f2550983dbddb8957b2d",
-- "57aede4ca861e5051b15ea",
-- "52f87910ef7e6dde1f16dc",
-- "79c75783449d733d93b4a7",
-- "5186a4a6ce8351b40466bb",
-- "1208a98ea1dd68a01d3ec8",
-- "3d66483aa6674adb6569c3",
-- "728caa6061cb6ff29e6b21",
-- "3ca90695aca0fd32b28871",
-- "18eecc5a940548e7c51e57",
-- "cb8a50376e8204b8b5ea9",
-- "7731327e4c6ae66c8e47a1",
-- "16f732c5fac8192629ddb6",
-- "13b16e69e645c1703bf7c2",
-- "789addf402241ff646d77d",
-- "169566a480e42dcc8863ac",
-- "5ca4bcb81d4d03018b177",
-- "8ea7f70a71ad46c0c260d",
-- "4a67b54dcc404423e6b631",
-- "7b609aae44a59cf088c570",
-- "59fdfd7775c9750e48d811",
-- "5738f30e5cb40b4ed83e60",
-- "78b5c76a3ee8c2ef071fa1",
-- "2ff21a8761b9bce5f34f74",
-- "71af54a2496a076b559a6a",
-- "11f2c34fc87060adca2837",
-- "4476f33d15e77d3ea6c712",
-- "1dc0a99973375f6c4a4583",
-- "5cee3684d600afc7804db0",
-- "20fe6d6e332154329f831c",
-- "1b9850e5f0f8fec4d967b8",
-- "6b5617e9152db554d999bc",
-- "144303d93b170584849f6c",
-- "8a006b686db9c86eb0756",
-- "1d9a776cbeec9f5dec9407",
-- "503f8d64438b7a99b8de08",
-- "7b084b907f4fc0301dbd5",
-- "dea3527d089eceb4c22e3",
-- "38a39ada5dac01b5c2adf0",
-- "4cfeaacecd47507ead712a",
-- "3ff99310762f37d685ca95",
-- "492683ece46681328f9912",
-- "27c1b7b41af947101d694d",
-- "39a95d47cf87d7d7d6bc8e",
-- "48b438b41e1bc7e58e6ef2",
-- "7b0ba619013363524f168a",
-- "557bc3fd4a1a6866c5d19c",
-- "46ef25878ebd3ab0b864d2",
-- "70044b2b283269e2d14166",
-- "47226da695602ab6e77894",
-- "142fa830b7ba88d08608e3",
-- "3019d2c9a4a70055fade00",
-- "6bd645b33c041537bb5186",
-- "3fc3e580d2ad754a34bc48",
-- "5e8a5f959be2a17534c9bb",
-- "5a2cdb29cc6790b45d1f04",
-- "1c28b93f693054a06fb391",
-- "242cca5b643a5f97a01a20",
-- "48a0fd415822566b2ecfbd",
-- "308ab3a2c4d7f4df4b6a31",
-- "4566810f52dbdc6e52d908",
-- "53cf166384d9f967e4ee4a",
-- "32a9d4d4f421cf83f9237a",
-- "7f4b55a70795b9d26512fa",
-- "7222af7c6bff611029c53a",
-- "718c4a4aea9ee0da236930",
-- "71b31c9be0276caacd1146",
-- "4d89a145aa9c4acc9cbc8c",
-- "26b549a59dc35ee5ea7b82",
-- "59308e5db85655d5ae0c4",
-- "2f63eb0fae8122aa717440",
-- "4346fce81f02878bbc28d6",
-- "3a0c64739838b20476e0bd",
-- "389f7a523536bc08e2c52e",
-- "1a756f67d7e3e663369a04",
-- "732b807455afe5538cf678",
-- "421e7c19466e0847ffaea1",
-- "75aa7d0184dbe8ff376045",
-- "178e61138a7396d55d224e",
-- "2a07033e306623cf4e37d",
-- "25d293607604db30df2e4e",
-- "1e6b9387cb8fb6494ace9",
-- "524a00dd634d2f57ac7c6e",
-- "106fdb273227296116f40a",
-- "47efddee37fa0ef6a72a47",
-- "2a17c7297a08a3839ca0e1",
-- "4c60164f9602341914167c",
-- "656c647508629462e9a821",
-- "54e5b2458bb84fd7d4433c",
-- "15a3be22e80e0f6f498608",
-- "152b3e507f8b7898991275",
-- "10cc6c74c4f9fcc9428f7f",
-- "7e185faaca849a7f135848",
-- "62ae26dfe2273af99c4830",
-- "7255e6805e164cf9788cce",
-- "49b4801e9a2a64a27691d2",
-- "3fd90efbd4f0a4e173f589",
-- "4afedaa595cb8c309d3fbf",
-- "c57749387141da5f8fd27",
-- "1ba28761d3577e14d38b38",
-- "10a61010d82426d21109af",
-- "4d23f5ec809ab5057c2705",
-- "31e9d0607a42f7e54a8c81",
-- "37107b083cae132372e4d4",
-- "16eaf321bf41ee635d6d46",
-- "44bf623ac807d4c96747f7",
-- "b720b9f07a6b1f41654e1",
-- "68705a826f80224f09c337",
-- "798b816a4dea5ab964c64a",
-- "2adb843a58d472c17edcb6",
-- "17c5a39deb46d102235506",
-- "70c9c69419338ba44d6b8e",
-- "858c45884b129dd66817a",
-- "7ffd3daf76b1e818134f24",
-- "5b509a0106f1d06627c353",
-- "4d6d3f3602597781bd2ea0",
-- "4fb33de912dd8d2f8b8081",
-- "2b7758dc0945a30687fabe",
-- "38271b1467ee062bfe15c1",
-- "1d41ed28d87d24620da24",
-- "5b80c6e1a5c4dcb3166335",
-- "560e1e8aafcab315236068",
-- "31204f9f1e25342bbe28db",
-- "35d63c19d36b85b5e96648",
-- "38aafca45b266dbeef6fc5",
-- "426b930b670412d271a091",
-- "59f2c50a64b0c2a3e77442",
-- "7cb4b7b324b314195807c8",
-- "4a1381ccb93c34dc44cab",
-- "14da57f8c43c94d5133d50",
-- "499a1abb2a1381278175e6",
-- "6334fc3ff70d17dd837781",
-- "6717c0177a36454aef446a",
-- "7bd177160999a650655c6e",
-- "2acc282877d9cac38e38c3",
-- "18b021fe09fa8bdc44e567",
-- "45638582a87d07b0339df2",
-- "664ad54353749f2ad36105",
-- "5c53790457f0f66baaae2f",
-- "1edb6eab35de11d4922150",
-- "38c3b4008c9d0442e7b602",
-- "76dcede51c5087d374b20d",
-- "1901320882ec0093fcda5d",
-- "68f5ab17da1cc5dda22c36",
-- "4e4199871aec7ec1f99895",
-- "68d4b88b77dfae0da7a5d",
-- "a4f6b861d9a460f5b65a6",
-- "f7cdb22a187815c33c5e0",
-- "7b398d970ad745817bcb61",
-- "2e061928a5c3ad9bd6d9be",
-- "5be7c40d96f7c97153eaba",
-- "21887a11425a371d17db86",
-- "2cc7417260782c0d2394d3",
-- "6b421c0667b336723fc0a1",
-- "1d78f3d7e887debfa04bf3",
-- "1d165ccd9ac1e4efca4a32",
-- "163690a8fd51b113410cc0",
-- "419d9a35dec3e5f421baef",
-- "215c7e9a1d796b37a56336",
-- "541a69af40655a83e366ca",
-- "3f98705d2cf6346bf00972",
-- "4ba668ebddeaa069043875",
-- "2aad9e8261535baeb20b71",
-- "6766e290c73bba54bcc710",
-- "65118f1b7c366a8bbffcb8",
-- "7d88a8aadc667bc60fcb2e",
-- "16d8ad198832545831c93f",
-- "567508a3d2a7b4fe3b395b",
-- "3282cc1545c9e77ce08abd",
-- "57d0cd94e03404b9cc57cb",
-- "14f23f2aade2de50fb350d",
-- "280bf57e6ab95037683d33",
-- "15db077682cfbf170ce259",
-- "2e1709b850c77f2d508334",
-- "34ddcae84938327a3cbc30",
-- "ba357a389bca1484d7e54",
-- "bc149e667cbe5a17ed77d",
-- "25032025485a4979b90394",
-- "467db4fe225847525ef33f",
-- "54112eabbed42ad31637c5",
-- "14b68001dbf2f798322812",
-- "7146b897c3d924725bd0cb",
-- "6a76e3eb445dada83ceb12",
-- "30abf45ef025352e681192",
-- "2f687a83227d2d20f3b227",
-- "186605e063004c7e4a9375",
-- "21ba4c5acd17d59fca0ed6",
-- "2cad73640590abfa319b6a",
-- "5db729c46c687ddd7690e6",
-- "73673685484b4f3492976d",
-- "282a80b8de04941c547168",
-- "4b53718060040e8179d82",
-- "5d50e00035655b4d4ddcb7",
-- "546ec9785ee72a2a72d886",
-- "4328d17f00529ea0fead97",
-- "71faf2ef0654e97e0c23fb",
-- "49374e550d8b335cb151d2",
-- "42772160e3ea402851c9c6",
-- "c1fd8fe80d24243e7b5eb",
-- "111d6b945ff69be530cfca",
-- "2dd21df4dbce295378bd06",
-- "3d8509040aa8739f034dac",
-- "68d439e82561e55cbf1eed",
-- "65a1f7025bafea5088145c",
-- "5f70485b00138272e9a41b",
-- "48ede8d4a9a88f7613388e",
-- "1de402b5c6118ec8861aad",
-- "50f371336a648ade74999b",
-- "17da7c01f870089371d6df",
-- "2f64ac4f819f8343111866",
-- "648ea8b083a9828f8af17f",
-- "28d6cf3e20845dc7283634",
-- "7dfd6cbe22024260a179ef",
-- "65ab167d8e02a8df26439e",
-- "79d07c6a6298d34020dfe7",
-- "55407685456c2cb8311d26",
-- "413278937e6487a988805d",
-- "168ebadbade1cbc44496d4",
-- "7d6f33ec4a123fa281cabb",
-- "59bc93698864451646a053",
-- "4d1a8b95ded29dc79fd401",
-- "21b466e3230d809af7aa6b",
-- "35fa1fca985387fb7fcd19",
-- "1a789636807476ba5bd789",
-- "7b115c7c405c6e4356bac1",
-- "378ef780c4d32c3f15b3c3",
-- "23dfbd70bcc040f36d4c8d",
-- "6a545ca829ed278f6ee7f4",
-- "c06cc01bfe2a9b427102e",
-- "126dab6c2bfc9b83475847",
-- "15bf0eb485af1135b0e453",
-- "3b929cf6fdabeb45375120",
-- "11c773ac555182d789142c",
-- "444a50dba1a2bf390bea1e",
-- "1976a9fa25af6d21cad47a",
-- "2f88b1c87d7d02f6c2614d",
-- "7fa540fb3906a29b513bed",
-- "2b23443976252ed21088d1",
-- "5d9383670de64bf15eb49b",
-- "1540f88099c93111d6c8cd",
-- "2c33c53227ef5693d69f36",
-- "2648a635c5981b8daca07d",
-- "7b71ed8d456ee35292c960",
-- "62c36a3627b9d2b3c18de1",
-- "3e985c35adacaa90f5715b",
-- "7401d0da6ddc33225bec4e",
-- "740f62900b9523de37b6b0",
-- "3aaa2c73e60edc333c904d",
-- "35accc5a1e3fb474285daa",
-- "1d85b86a2f3f20e2832ec7",
-- "6dddda58fac4e8afe0c9e7",
-- "2fd82a7276af1cf8b372ed",
-- "9377e0e5c8d0de1856f6c",
-- "75266a81bf7f77865e6f",
-- "1de1227159008ec9b59ac1",
-- "1b5200adee3adf189b056e",
-- "4d8b0cd0d3401fd04e351",
-- "438e5a19094bce43b5b5ae",
-- "6f339aa4d977875b1f1f80",
-- "297ac1b2d19eb1e6e32d87",
-- "638d0229863032ef249643",
-- "65c9be7a29bf45e5992a7e",
-- "7dcf3e6b7d3d02033c946d",
-- "6565aab9eaab16f7430411",
-- "374a0e75bc76f0adac7af5",
-- "8649a3995ad114bb4d72f",
-- "45f5960a9db06a62821bf0",
-- "36735381ceff20a76e32eb",
-- "1416e580fa8bcb421dc6ae",
-- "64f00973a0eb117b548182",
-- "7507998b275e3c9bd4e10e",
-- "305213c4b30a9e8be153ce",
-- "233860a2ed2d566e131431",
-- "235809998758cf7e4acb1c",
-- "2102dede4011c5cfefb7eb",
-- "79486109c44990eca52723",
-- "43b23b71c3202b31d91018",
-- "63606d420b8e8397875647",
-- "697396e6df9539532709dc",
-- "581eb843dc9919f85a6644",
-- "3b98704f287b0ee4e659aa",
-- "3886dff828cc76dd830466",
-- "1c9f86b8742e14b6caf79b",
-- "bafe681e7e52073b86d32",
-- "1a5853834033d093c63d55",
-- "736d05572fd4ef85eca2b1",
-- "61170002cc409ddc34946c",
-- "5fc3c4b7f7ad5deab829bf",
-- "4597c1546c899a3656689",
-- "6667dbaf666f92bd61da79",
-- "a2e07f9d73c5e3effd370",
-- "63942ffcaaae948e9056c4",
-- "6a7db7fb47d3a18b620d6",
-- "58b95d74eb4e654735bebc",
-- "78a4c0445f77f31209ed17",
-- "7203cc213679d179eabc35",
-- "22884c181cdc222cad8e5c",
-- "7f8bc7233e2784039454db",
-- "aa2cbd696160321682a6c",
-- "4356ada1ada2921353892",
-- "72f7dab0b2d2a35e62478a",
-- "32e5682bfa3fd95762512b",
-- "77da1b5a2124b6c9e11847",
-- "593c091517fff61973996a",
-- "264e4b26d39119bcdc0985",
-- "fa33fcce55fe6a32e0915",
-- "127c199cd032273073f003",
-- "169665894aa2b356779b61",
-- "9dfe57d1a9a3265476d14",
-- "364f70dfdbb439b78e5236",
-- "54fb5f18b6d001ef7be401",
-- "321e3fdbb0b890caadc570",
-- "64532524c99ecb3c365a41",
-- "aa480c5cc76379e0cd2de",
-- "6ac2b70efaf88fd42c4044",
-- "6810dd5945e01cd2c90841",
-- "10aab6ed7d1b631aa4b45b",
-- "19537a8ee281cd28d6388e",
-- "5ba2a8023e5bb50b06e03",
-- "646ce329dbe03b0b8312de",
-- "4f0024b5b5580d91de0338",
-- "2b4b238bbabe3c70748eff",
-- "3bec30574a99903f587887",
-- "24e71c2d01e956269446cd",
-- "68c4a816c641b5b1090781",
-- "6fd170c2ab312a1f05d814",
-- "64d8389dc8d1b8910fc0a",
-- "4807e0d9a38d358d8e14c5",
-- "14ee39af97cd5a57b0e17c",
-- "24974593a8d59a89588659",
-- "59a7f220e101601c1d1b21",
-- "43fea0cf26a3e256438525",
-- "2b3c80a17ef583b6205fd4",
-- "44741cea6d95eb07e7f01d",
-- "2ccb45ece6ec9abb9396c7",
-- "5ba0eb3a703d0e42cf4094",
-- "400f76e25d392f347d4911",
-- "419e79b02e607a42e6e091",
-- "36c0bf9a937fe6ca772d0d",
-- "2244b09bebeaafafb0c481",
-- "1501743c447af65014399b",
-- "2791e42c7f90ab8d4e7fbc",
-- "150365cfcc4a012a673c13",
-- "7869636f37e63a4ffff7cd",
-- "211dcdb529a6bab73ad8a6",
-- "239309f551f303d0037140",
-- "3f1e6a84c6b836f245c178",
-- "27b94ffb61590cd0bcd89f",
-- "61ade8e7a0bcc40ee4c2a8",
-- "750f475708a1369e3fcc26",
-- "30bed73f7a94de9252a38c",
-- "3e26ac2b23b8b913845e11",
-- "42aa10dc273607be680d72",
-- "65a0cb312051f321a95f5d",
-- "1ae82d51e4845bef8c5d14",
-- "37c6007c4a0d223bec9e13",
-- "4f140e806dac75cc67fa3c",
-- "78acf4423afa2cfe1a6fc1",
-- "3915d17a2935e69936525d",
-- "7fdd8bd273e4a717226cc",
-- "15da282cec1859a9591ab9",
-- "75d3c5c33e5a2023adfd4a",
-- "51890cd139740ee3c35339",
-- "2b514798a553e5bdcd8ec1",
-- "722f9dc13384479d1c4455",
-- "1e2bd3f41ae5c299bb720f",
-- "5ab5c85d4bf835440ff962",
-- "178cb915d7350e37948956",
-- "184e317201ff0ac25eb6e6",
-- "37755ea728b820f0ab2bdf",
-- "5e147628ce9e9a9493f495",
-- "79790e81fd0d2b63f9d1b9",
-- "7252d249ce8cd4fb010950",
-- "d165a455f92b5083e0627",
-- "6354a865e088a0488f2701",
-- "43c2ec8afca87567ee9294",
-- "55744f373c8b8520d62370",
-- "63069f756c8115e5fc4c52",
-- "3f5c0a52d2b564cc250982",
-- "6b828169b3ba13bbcddb05",
-- "46a78cc83c010019e8b2b",
-- "27c6ad85e824da21b1cf9d",
-- "6e9f47f009d809f84a56da",
-- "255358696f5e9ddbfa467c",
-- "738abcc274fbdc4ab5efd7",
-- "70b9ea82f6a6c02939510c",
-- "5f24e71937dd097c0e8678",
-- "41e1bc8a63d042ba714c97",
-- "6da26efc24e2d57c26c090",
-- "575d4696bb0e4edef99446",
-- "4c028ddef259fa2c7d4868",
-- "33525d5afa91fda7d5fea5",
-- "49a3641c16382337f3c777",
-- "760b4f231686ca10ea6ea9",
-- "547264d2566596f18bbb5a",
-- "703a6cf857e651748dc09a",
-- "298200a0909b55e97005f2",
-- "5ccbc128a5721a5dd853eb",
-- "33d5a814c00e980600811f",
-- "5d66f0d9dde7339dbcd24",
-- "5ef30e941639d08bff19c4",
-- "363a65fc59f4a8184d3d78",
-- "366546b3844bf45b7527a5",
-- "18bc8168956ccd63ac68a1",
-- "83bfa3efcf5b970ad41cd",
-- "4bc9c371d07d4a025a739b",
-- "4636e2935765905adcc41b",
-- "4d08f00a99d95d0043cc4",
-- "3e94b32e50da81bb5afc03",
-- "48a13c03c03191471f1164",
-- "3018be3223f82c7f0c9ebe",
-- "185254fa056de9af1a6bd2",
-- "1fe069b8c57a9fbe5f6009",
-- "6c03f094dfe48c9743be89",
-- "1086eae159340e441fa0a4",
-- "222ea07afe042cf765ce5f",
-- "7754a6a5fe6be54c00f4c8",
-- "152dc9fc63d3c1eb6c335f",
-- "3f3aeb0a1df198d9c95768",
-- "7ef4c5361ca08ac1cb6216",
-- "527e969f4f6eefe6289ece",
-- "6b105359a1a68d94862411",
-- "2674d42d16e97493518d2",
-- "369c62fe5aafda2a550912",
-- "51eb860c87e1e5b70bb623",
-- "29f3402339c3128a1e2c1",
-- "413f256a64feb56e242e90",
-- "11ea8c21342ce42ebbf9ec",
-- "5517c01ca3bd4da9aef0ad",
-- "5d2972b12e50e727a2721d",
-- "4eac7fa0d6b168c3bec4e3",
-- "5cd8f5f9eb6806f67db613",
-- "412ae12837a29724832877",
-- "770b83b55e13465063e5a",
-- "76201f5e0110544f41d9be",
-- "c8918a059fa77676f0587",
-- "287593985c21589f72c821",
-- "6b923e02dfb1da62f37204",
-- "2600c04d980b2307982b22",
-- "25f7e1ac0d4153b6365c1c",
-- "484281d930b8ee32f366f0",
-- "3827eb26c007235c46c676",
-- "6cd2d14ecc5fc7c2c1b52f",
-- "4f0841f63a0c64aad5232e",
-- "77c4b593ec648025df03f6",
-- "81dc886feeee4945edceb",
-- "522afb743f67b3ca56b20",
-- "5505b22d0ddba48ae2020b",
-- "2f3b362f4b742eb82f8a34",
-- "1c7831e5dec267ccb26741",
-- "2ddac7db8be22e88618b58",
-- "4e6a2eb425fbd18fb02cb2",
-- "147b65e0e829ca30fd88c2",
-- "36304be3f0777300703af",
-- "215dcfa076749277897e0",
-- "3c2f54ef99be42fe30d32d",
-- "62a01fb38e5c88098fbcc9",
-- "5f84ae1685459ae7e24bf2",
-- "3ecd8205beb790946eaa8f",
-- "5ba344fee845769c2c86d8",
-- "36a92b305c21171dd5a616",
-- "3650c22d9c1072238cfcfe",
-- "9225712405a5bd9ade58d",
-- "594ae94ad86b9a719f54a7",
-- "59f0f5465ff1e16be9bfb2",
-- "4c6a0f6de7e50ac450c0c3",
-- "685afb7cdd699d5a8f020e",
-- "4f1c406e243fb2af67cd42",
-- "2dac9d433ff98cf24eae81",
-- "1167717f2d3d6238b3d21d",
-- "381012de4c9a82f9ef1d72",
-- "7047a4510b8c2107737ece",
-- "185033e62f44aa85a7799b",
-- "41e135572f9ce788481248",
-- "4759751a101953dd340d89",
-- "34d59de432c0dbb24ae55b",
-- "5bcd4418d37c976110b37c",
-- "6545cb112ea4be72bc80f7",
-- "52d104741cfa5fa49fa55e",
-- "7322c20a545b3845b54b34",
-- "783c78a9025283e7188a8b",
-- "3c81a9658bae42644c317a",
-- "1eb56fdccfc12b22db2048",
-- "3c3f770d148b4692e25b59",
-- "4f75e255d88657b2ba4755",
-- "260d6ba9444df4b85dfb92",
-- "34f0f61d6d8d062b6b9d9b",
-- "74fc1bfd19b3cbc9867bff",
-- "3f0d18b1efb7248950daeb",
-- "65b7b50446c767e6fa72fe",
-- "1124cfa0e070cf6fe3c638",
-- "2d127e6ce6bd0f1872b1",
-- "3fdb99cce8884ed923271f",
-- "2d2a15867cf9361defac4f",
-- "9a39acfeb3a1b4c2bc79c",
-- "7adeede80a05e40854e6e",
-- "4431184365a358de692057",
-- "1e4fdc54209c2229d7ffcb",
-- "50cfa48cfb994ab2b77aa3",
-- "1f4b918e0e0d47c89aa2d8",
-- "78ba33e419cbc7f177437f",
-- "5f7482c17a568566c785c9",
-- "6fff35974d5f0b86faa46a",
-- "5106bba99e6268d7bef3e4",
-- "67cb80a136db30b9d60d6f",
-- "594a3b6273b1ed2b542eaa",
-- "6a1d554c48496d8d543eac",
-- "9d8d18a72607c311d6f76",
-- "7047889925ed18a885358a",
-- "283508a2ed137e839b2207",
-- "65fb4589487aa5a16bd767",
-- "1a14d5b10cbcbb9ad3216",
-- "4a469bacdcaf5434109262",
-- "40ebb7bac65bd815945e49",
-- "7b2ef1bbf74c4989ed5ddc",
-- "5ca51c82df4def8b1588cf",
-- "3b22ed42f28069f29c280b",
-- "669e7a28f7a7c30460a80a",
-- "2071c913edfd4fd6daa6bc",
-- "3828df7e9ab6753fb83dc1",
-- "4cd15a66ba5a2f18c8823c",
-- "1ac96b01993da8677b2fd7",
-- "4f9634be1ae125361bd4c2",
-- "681fcdfe60f23e3be083f6",
-- "2d5bb2b553d4ed5bc0795d",
-- "4c4424602626193266d943",
-- "2df30214a49a31c21380ef",
-- "48b920d23514d06befaf52",
-- "4b4c7f0a822537ff62cdcd",
-- "ee9d6b69f13ec8f385e6f",
-- "793fd256b009d961487499",
-- "2d70f946f2915679b314e6",
-- "1bc4e87c1100a2d26aeff3",
-- "6b1cbac9279eaab9b503c4",
-- "5725842b7246179896a39d",
-- "4dcc6ee20983f0020ad69",
-- "57dbda5c8b230a87030357",
-- "78c437adc3b6ce946cdd",
-- "20ea7b335b7621642b29a6",
-- "179d4134709978c75bf6d2",
-- "36a3336f56c91232544e8c",
-- "e243f28e043030ee3a43f",
-- "2d678e77df571d7ac4859d",
-- "5566a844e8b1c572f69612",
-- "27244290f774a00786ca95",
-- "1812bd60b720f8920fe80d",
-- "7f45c48d28fd31ceeb3fd7",
-- "1bea5758655f1400515db4",
-- "249b7a4d080be0f548cabd",
-- "71215d6fd5e662d930a424",
-- "7684536a92d49a5af59f1a",
-- "74d39a89d87bdaa449438c",
-- "3e4e77e268fb6e7602e96c",
-- "46c6313b3914ecd376b959",
-- "31b9dd76b9ed5f88dd4609",
-- "46734211b970f8a6448a60",
-- "7a6d5b1013830761b58026",
-- "6157a651f2640a73f1f90",
-- "38793daa7aa086d5e70798",
-- "58d7de0f8254a81b5d0f5a",
-- "5a1fe9fffdaa20f4ab7eae",
-- "7e8fbf173741aea1b95c93",
-- "4bee7e482b290b1d3869be",
-- "c075fe6224a62c1010fb8",
-- "7340d7daed67bcc5cd4391",
-- "2e12097225e5783b545083",
-- "518711fe03b241cfb95160",
-- "4956721f6a2ced1fc736fe",
-- "636b15a893c301ff23f5f5",
-- "5696a96208101739ec4ba0",
-- "54fc920cc0125e53a92499",
-- "7c2e242ec2b95580a9b3bf",
-- "4d0e82bdf34ff4cb3a603e",
-- "786571b85b2768309c8ed2",
-- "1418facce22bf24a5e6a51",
-- "681a88fafe4e6f0620910",
-- "5e263af53ea065e044720d",
-- "1c614cf9a9d87d69154c21",
-- "346f2a2b086e1b35095d7e",
-- "4b6ed31d0715952774511",
-- "67a3f20bb5e980364816b9",
-- "339dd42a42d94342bf8399",
-- "3b55da90ad9a162be1756",
-- "1c07c875b3a9cdedf7611d",
-- "33567e972c90754c86a5ff",
-- "3ee5a2cc90e335867f0ce8",
-- "4b3a8d22fdb2c83abba9b9",
-- "5b6b96beb19fb0dbada937",
-- "5169af1cd74986160450d0",
-- "724f8bcd40bfc9f1ca0c68",
-- "51603bcc8667777e664f9d",
-- "78aded63d2f85ac948c449",
-- "73862de61086c1fd5e0678",
-- "5efbbe073364ace07f02c7",
-- "144a6c20d0a8d5dce2b12b",
-- "2aead0dac004faa8ab67e4",
-- "3f8cb5eb229acba822b48d",
-- "34c50fc58872b7325366",
-- "3c1fd5d9a6223b2ce7b02a",
-- "554f5cfd133bac2188241d",
-- "559752d946b02da4c2f657",
-- "3950591be73642bfa23264",
-- "2e8edc0b6dfcfb2392ce87",
-- "4c3c570182916f32a6f96c",
-- "65cf5014ab215afd17cef7",
-- "54ad7fa69dfd0b4c19f7ed",
-- "f4af5a6143d8f44e48afc",
-- "1a08e273719d3411178252",
-- "668b9e16f3948f582a5b94",
-- "3fac097802d8f5fb376d58",
-- "3c2dca32abbdc029f4a212",
-- "753f0795048443573283b2",
-- "622b540293b1275c5a9446",
-- "5a2c8ca58cb488822e9f49",
-- "295932427e10aface718fb",
-- "43e36b6d5a937387b49f6c",
-- "4e1162d634d0d5811a2441",
-- "19915afea85d27cf8df109",
-- "7eb8dfe838ec5ef9d3ee21",
-- "2c18c59d95a21961c42f21",
-- "7233f4136f3ace41bedb12",
-- "142c59f31fc82fb58a7dd5",
-- "452816c1b54aa2bfddcc17",
-- "6f24ffc802a08273be511b",
-- "32d68fc9b8a9c17b315382",
-- "5aaabbd40fa78dd417edf5",
-- "51d8b3e6fa0afa106abc40",
-- "394faf6069c716fcf8a76c",
-- "3f7d2ee6cb32c6bbeee194",
-- "4354f51efc9392bcd6e51d",
-- "5e73615c65ae9e74eb1ef3",
-- "761e42e1c908c2f09e096a",
-- "25df9f831698604e15991c",
-- "351db0dca5d74808f36d33",
-- "aef2488954588af921ab8",
-- "296a247b4b36d5c2a1884f",
-- "b1fe15d9ac88348f41a87",
-- "97342eefdbc78b9689120",
-- "1e47a4330f0bce93db13fd",
-- "7511506751237c1959933c",
-- "31e8a39712fb3a7a11f909",
-- "6116bef6a79fb2fc15f0e2",
-- "6d849a39e47370e473a913",
-- "42a81f5e10b5435180e643",
-- "17715e6c96cbe096c4f9c2",
-- "606e14eaa7d60eb7ea925a",
-- "30cb89652c8629b5e0dcc3",
-- "2625096534f2cf10d83a26",
-- "61036fcac29b84e5ca02ad",
-- "4669a41d4e444c1284d024",
-- "2b81c6e67e55aeb6e93a",
-- "23564d97f447b0091e74ce",
-- "494807a247f7ffab73a644",
-- "692eeb4ff69b42372517d7",
-- "3eda92314bf1d09cb5b08",
-- "24b22771f303ef742b8ce1",
-- "5c616b0d1a7bc591e70e46",
-- "4aad58987821ba8f33d96e",
-- "10d0aa100248920b9cab77",
-- "1ead89a48b89a75ebaa7d8",
-- "7fe887d8c5fb53af79cbd6",
-- "ab8e1dd4d27b02d09fe48",
-- "2294095a6b77aaa416cbd7",
-- "69fecb55ba6da700789d7c",
-- "681750fd18618072db2068",
-- "30a18088f5b2af396bbfd9",
-- "2e03d3c0794703b9605de0",
-- "f26a2dc235ace7b34f4b6",
-- "356497a9675898bccf4e79",
-- "3286bf159405584d85567c",
-- "464550e0adf269403f3e22",
-- "3f603c7b410b4c2db2c8e2",
-- "445381f98a1f5669880827",
-- "23eabb9cc5f4086c74bc31",
-- "4628eb872cffa1868b96ee",
-- "6ac77b7cb23565518aa2d4",
-- "1cfd8f0d12bcce21589c11",
-- "39cdc5e6675ab081ffe60b",
-- "1e378fb7157cdaa6fc3a50",
-- "669f4c5ec3934953500b78",
-- "46a91d898168488fd5ac51",
-- "64add9cabf8efdd5f7b57b",
-- "45813314ca1d165bcf242c",
-- "6f37e3a85128974cdfaa69",
-- "7f42b66317d26c3f938805",
-- "181ee17c34ab8aea52c900",
-- "68e8a818d524954278bbf6",
-- "7a6ffa939b86786a779a44",
-- "31d809b078cdefaaf45266",
-- "7f216769148f0e997c7805",
-- "3a82369bb1a4da519bbd70",
-- "25920b5c96127e9d8ab05e",
-- "29702fc1f57fddc3369967",
-- "616dbeafd6aa623c1a7d7e",
-- "634d2540fd670a82f219a5",
-- "3d9abe3ec82d9602d9dd6b",
-- "665bc65420c0b0a151c97e",
-- "37d50d7838efaf03049cd7",
-- "385f7f48a7be6b46d108ef",
-- "5f2bc99aad2f27cdee05f4",
-- "3b6b43619a3730d5995ae4",
-- "5eb76c6301d8a849a1903f",
-- "38910d873da8dfd237e8f0",
-- "41558cae58d4f9a9001b87",
-- "58fc1b58696f8c22cfe344",
-- "64520e4823f48c1f48749a",
-- "3827b84269040363e5e02d",
-- "6c9c81ea487986867245b8",
-- "217bd444ac8e9808b3ae5a",
-- "44dd70b9323f17568e4ba3",
-- "50226b4aa22a0465ceea0c",
-- "6335fb7682400180e10d15",
-- "1857324131e535b1b2458f",
-- "3845bd22f959dda9197376",
-- "4d7797e0b2f77a7ffee785",
-- "16bed27a9c005817ccf111",
-- "5bf1d1c71be0c49ad75d9a",
-- "6d16d10feb1728044f2dc3",
-- "3abbf8af06f889daf59c4d",
-- "45769a307f5593bbf72056",
-- "2a640efe463008db4ed634",
-- "57f0f7ecb2d7dad43748ee",
-- "8000000000000000080000",
-- "7aa96a9fbe718c006a48f8",
-- "24086a392ab75e649d3cc1",
-- "9f20b6fedc099ec575691",
-- "313d62eb5f1104de5421a",
-- "438f5c0f163a4dfa04e5ce",
-- "63137369b8d47b6c9c43df",
-- "4ceae8c6ea35dc274647ed",
-- "465f3b1e25cde0e446d90d",
-- "9f0c9a93eecf4de349628",
-- "3addce3c43218484acf509",
-- "101d83882a81d0147b4342",
-- "4585b77fea18a0113ff609",
-- "73e92ea015629e3728aee0",
-- "257564a39a648e17d015e9",
-- "2f927b360b2b43bff822dc",
-- "328a9932d6b08a41a1df0e",
-- "207ff6a0da7f13b316c4b0",
-- "4b11585991700c233f6773",
-- "77664e53908d00007d1205",
-- "434a5edb31a9c3c6a0243e",
-- "692adfabb87ce969422961",
-- "3eb189e2bfcbe180703cfd",
-- "367efb55edcaadbb5e4f2b",
-- "4573a56ada0a29d31dd6b4",
-- "636f015a0c62753b283d5e",
-- "158e9251ef94651015ecc3",
-- "ca30526530b6f6f0c8fca",
-- "20b1838f00aa00d07f70fc",
-- "50c65d8772a3d5db269535",
-- "47262fa06b9c5ac8138f4f",
-- "d4a270719a348af6d6c29",
-- "af99b9d024438cfe9df66",
-- "2a5043ae183d338b7ebd55",
-- "7b85e0b99eff408f2aa978",
-- "282774a1f4bcb14e6723f9",
-- "58137399c99866772aed9a",
-- "7b7e71610f1589da383c31",
-- "1705c133c7ba24a2b5c528",
-- "336a41277b427813eaa191",
-- "78ec94c22ee912eded5499",
-- "1f9e8bffcac3e1471f7cd6",
-- "7e688d1cbe7e0a84a0f408",
-- "50a70d2086b5ca78a90368",
-- "16f5569ecf073acc30831d",
-- "720d9e52c4aea85ae24480",
-- "15bc81dd36a0393963bb64",
-- "633dad9eec0d451652bf40",
-- "3d433adb4bcd914fcfc4",
-- "ae1614cb7437dc6311ee9",
-- "504e8f5ee0e51320af92dc",
-- "4d55039bf17366425f055a",
-- "2ad535a50fda15e1835526",
-- "4f5cb9e29c3567f8c1b22b",
-- "409705e5654888d8af2f47",
-- "145ecffc8b532b7855ca8a",
-- "4a79a4d35e92cbac8fe0c0",
-- "7c2eeaa3b5ac7ca26ee5f2",
-- "b44a774aaac3d4d335389",
-- "488702c5b90021b8b24933",
-- "62d4635d0bbd6bf8fab17b",
-- "47a6912faf0eba695a3f82",
-- "5fea5590381b705c4ba54c",
-- "552dab94d8fab803e3abe6",
-- "622e4bcd237f601b3f864e",
-- "6b6195f4939abc517ea1fa",
-- "7ae4ce9746d1a251afde2",
-- "5411d9720f633bf7a356ea",
-- "93d0f45c8e78eed19b2b4",
-- "2cfe955ebd8c7e4615715c",
-- "4680ebb5e7e7fa1e676838",
-- "1cbb8749de080f5bb23b75",
-- "33fee942f43e9b7d2118f",
-- "4ef1c6a1bd63bb6b6207b1",
-- "1c1f24204ec4b044c10ff5",
-- "3561d1a2752f1d17dd5823",
-- "782fa87576f745d6c5a644",
-- "68d895a65569cf3ef3e3ea",
-- "46c01f4170feea6c601e12",
-- "7b8a17b08fccb33f4b7d6f",
-- "6332e8b1655b1a7193eb45",
-- "6649997ef28c919c6cae0f",
-- "55b727631edd20582945d2",
-- "1adfa664cf45ca975af0f8",
-- "34ca1ca17d4004b63727d1",
-- "46bc16d9041c2bda07b158",
-- "31afe414b9e841f105214d",
-- "4bc252b0fa653478344f1f",
-- "44b0628f84b11c5e71888",
-- "7f821b6d896942293448e9",
-- "125c7d70d2b6d99ae885da",
-- "49fee8b58237dc40ba3c5b",
-- "5dce9f322e405cdd3dc195",
-- "4e5afb2e233daef8a9bbcb",
-- "64e35a2939773b306ebb74",
-- "3cf63e3a65a7e509ca6dd4",
-- "1f88577ebb6a87d8478dfc",
-- "5d1cdedac3c1f047923b22",
-- "14b8d711e9732dc1d81b85",
-- "63ca1ec0700483b8f859e5",
-- "345343979af3beadfaced5",
-- "3aa36ece405e3ccd9341ca",
-- "5c37d517c640ac7f62a532",
-- "68e1a6376fdb4eb7b4b0e6",
-- "69a00aca76ae6e660be7bb",
-- "1644cc3e7fe80220ef2f70",
-- "58689766e836a562c78c53",
-- "2d83b4eaa1c8f768e56c30",
-- "11ff8e8d5e956398c99ca4",
-- "66de0cd9d504d0c8a10caa",
-- "f5d2bac49777fc8f10242",
-- "30436781bd712f316b4895",
-- "7a7cdf214176b6d3191883",
-- "64f3d838badcddd9bfdd0e",
-- "190017f50befaddece16d2",
-- "21a95826890e5cccb8a83e",
-- "2c958c952c5c886c2a60ad",
-- "3f8ccc4c495c412c1876e1",
-- "901282766f87bc24e50af",
-- "67fe63e894b36bad057249",
-- "35ab264ca762acbf67e1de",
-- "65b1a43ebc40ff17757bfe",
-- "1e0b5aa4ebf1898b7232a8",
-- "5a3548ae1dc271964cafb9",
-- "26e45399ef9d09b479c0d5",
-- "ff910ecf2ce1ed443b3a7",
-- "15dc7895737fd27e2fc2d8",
-- "306cc735643548c81d480",
-- "716be1338eb9fa3160de8a",
-- "37c639bab06813135e6962",
-- "18d28f7c13bdb1a27fc315",
-- "48dd5aa0d80d3fd4d31225",
-- "308d7af9cf09073e61779f",
-- "659ccea55ad34dab51a321",
-- "25f3d9fd234440b97c9821",
-- "5c0de6f6c164f44c52de84",
-- "30927374f464c892c53b50",
-- "540974d1b3361c5ccd3a2",
-- "a0b14921f2ca115669309",
-- "157e5726ec48e98ea5652c",
-- "7c50148337071a44808f27",
-- "54f01285acb2da9689a386",
-- "569b68c3d77231282d1705",
-- "7593ab2f13aa524b76e104",
-- "16a7968fcf87b51aa207b",
-- "2b1199cb9ff7848ec581",
-- "235057c5ef06d64b0093a1",
-- "3ad2c2000ee1db409ffcab",
-- "46dbd89f4ae0d06c0ab8e0",
-- "7fe713df2e65b878c1edc6",
-- "4f0b0a9e8338cbca398b3f",
-- "67ae16da8f876a2c8dc80f",
-- "1bff1788b61c434292f278",
-- "137786296b1e5f466871bf",
-- "413062fa329dcbe3b8887d",
-- "76a4bcdffe1207b9c84c3",
-- "394ca6d6650a3a703c8f0",
-- "7ec0ec060d3788349445a5",
-- "5e6c438c53b4bfbeab6a4c",
-- "1cae4d5a0b88eed0b2d97e",
-- "37150fd6c06a98e84f0fb9",
-- "5e5c9c54f1f75bcc98d1bd",
-- "7273cb20026d3e5dfa9567",
-- "23675569b6f74cecec658",
-- "4d84d472f48a1f27cda4fd",
-- "52e4d0f780530e040b8198",
-- "116822d6715118a8643140",
-- "2fb2d651d1a5fde2dc4d89",
-- "2cbb69d06f0ba3051ce433",
-- "982362cb3f64fc2535f18",
-- "ce584760ca84047b25a4f",
-- "3d32a6b665f10a829cfff8",
-- "228eebf60c055615805405",
-- "4adc76f7cd88044421953e",
-- "4f588ef825e26e596e160c",
-- "464063c0e0f5e5eae1bad1",
-- "231a1fa6a52f8377b2ca86",
-- "3b663e3e9013cab9326fc5",
-- "24716274d6f1761a2e503e",
-- "5eb0e751f365585e4f3fd3",
-- "1c63d031374620336f8c7a",
-- "6ac96f98fa78ffb692afd9",
-- "71f7ff7f6245492bf4ba4d",
-- "46b7638024bbab6f336734",
-- "2d3b2e3d52eac5c09743f7",
-- "2bf0a5cc2a5150523d2e64",
-- "1f7e1880120c76703199fa",
-- "27b48290f4bc222f54681d",
-- "274cbe37d4fe65732936f",
-- "5b872486f12a68a939069d",
-- "76c344db7c98c1b1fa25d1",
-- "6745627963b760ee39ad1a",
-- "2d30342ea20393b89b038b",
-- "51e2ff830fcf99b4147ec",
-- "764156f5d90616c8c45669",
-- "19d3eafc75447dbc2ce4d",
-- "4348b708829c7eddd56237",
-- "605ccf0922a0c35f768933",
-- "86aa65ac1949dd8af6918",
-- "2e564f6ba5f6f74e33f2dd",
-- "54ec1fbecc620b2a62de33",
-- "da96dc29f77c98efd9a65",
-- "3756665d23e5dc56d35905",
-- "7108a03a28803eb91e8a0a",
-- "75fa74ccac539d6f2e079d",
-- "56f539741375576aac816a",
-- "78ab001943d18ada1f6d03",
-- "7a283d5e2ed98485e2d260",
-- "7ca8eb46f6df31902607b1",
-- "3a9ec75af3c8e86b8c1b73",
-- "61df6c089b8a0a75da0288",
-- "3277a60ca85c986d50dee2",
-- "4afa034c14d96f077cc41e",
-- "58ca4d190a0f756173e746",
-- "33e094a7802d99ab1d9620",
-- "4ae3a5f46681ba13e649ed",
-- "6369f366be6b5ec99ddddf",
-- "4ad5b5ec9142810d730c91",
-- "520d75e4874b90e95d0ac6",
-- "56441a020eb196f9ab47f5",
-- "4f100cd2b63ef0cdac7165",
-- "1d72e71f6a57243468bc42",
-- "6102d4b92b578db1756028",
-- "6cdde5dc50cfba13ab15cc",
-- "6a2bde70b440f36a3a69b8",
-- "40afd831d872bbb5ba2dbe",
-- "52a170878e73d2b9a73398",
-- "363495385d4023abd7fffb",
-- "75ecb6eacac31eec1c8d24",
-- "38618fda51c023d44b41df",
-- "1b12fc1c7d3ee5cd24b30d",
-- "428c02c3c8bb1613aad2fd",
-- "6e925cc1e63747fc8301d9",
-- "1711e7c4ddf7dd725f454a",
-- "6543f2ea86c39aa319b565",
-- "4f88d842683a24f7a78b4e",
-- "6297ed8d827bde2f27c592",
-- "7a4c62248fb05a7ec5f894",
-- "50873f081856faa7b0c6c0",
-- "4a5c54b88c3afab5d73bb4",
-- "93ecdd9b52d588b62ae9d",
-- "1dff7b3a25d6efec89d4f1",
-- "4eabe0db8ac5d733acae29",
-- "2d0a5221661bafe1bae3a0",
-- "86148c3559c855d7a4785",
-- "4576a87293566d06f5b643",
-- "2c941d4c1c7d68ef593ae6",
-- "2c36a4d87847724f9fdecf",
-- "7b5f04e933b2e4204cdc65",
-- "774b9d1f08bb74ab682979",
-- "7c1fdd60de643e750fa1d",
-- "682291bfd680e2cd8f9d70",
-- "30d33e090854573dfd98f5",
-- "3860366ed3637eead94b8d",
-- "6e8b7f0e9607e44c1f9f65",
-- "720851fb976798365a6829",
-- "f5eef843bd404a6869b17",
-- "2a8c9eedadb6f6d58c06cf",
-- "232ce65586f95692d89383",
-- "d5835b5723a9063a2dd80",
-- "72316f1be6172c06994a4d",
-- "6a44a264bb1144d86619f3",
-- "5451512089afcff74e1bd9",
-- "557e56b5a5dcf30ae5f48",
-- "2a2840d0a8db4a22fdfb53",
-- "71e107fc4c98b40c6f7b53",
-- "68c711e371efbf9b278db8",
-- "31b42ccc858ccceae34d5",
-- "47eef469d5e96dff3b60f7",
-- "622155e1a7c16eb9e6f098",
-- "73037907fb5b7e20bf7973",
-- "2a5beeac5cc34b9b70fc5c",
-- "214b26c5cc4d2d1d455254",
-- "3326fb026bfe153a5a80e5",
-- "2fd395d2076e94e7f79f79",
-- "1da6208947854d10119a62",
-- "507a197204651599300f85",
-- "60e1157dceceaecc3a16c9",
-- "179c67b2886cbf8a80171f",
-- "4ad8d4214e4fe01b143d8",
-- "594820c775fd57d86cf9af",
-- "18932d3a50056ecbd4c0",
-- "cc47e7e925da6c91fe510",
-- "5ca455ab52339850752f94",
-- "31934713e4ff1d0d7cc583",
-- "77747c8e4550378570ec0d",
-- "44fd7c4168c2a61413dbd2",
-- "278331e342f211746f0d9f",
-- "13022f601d429947abd201",
-- "6d5ce69503f658697314d0",
-- "30151eaad7aef0e79d5e07",
-- "3b6333c6dc16d5f4351c47",
-- "308b1811fe8c7d6801df6e",
-- "1316737cef6e8d73f98c46",
-- "34026c0467a5bb1302960d",
-- "4374fb07e1eb1efc714a7f",
-- "13089f86ddae7614e1f733",
-- "91782b2d8bf1ec8b6e4db",
-- "739d86f4db437bd59681d0",
-- "2e99bf2a9cfd14eb01e4dc",
-- "1f372d16a7c783f301d859",
-- "3fd38eb64df431878b817e",
-- "1b3d8a50e5425c7a4550f6",
-- "2f775dce855cb22a4ce4b4",
-- "1856ece5542adaa42b18cf",
-- "72bad07fa5d3ca19811efa",
-- "210aaed4cc7b55edc4255b",
-- "13ef893fe161bb05038778",
-- "394242cd2ce4d5c927b1f7",
-- "2d8ba9bb83d8b7dc77cc32",
-- "4a9dee0a96c91e7cd6d7ca",
-- "3b62b01334bf25d1f5d560",
-- "3c11b4ca34c3237b362a26",
-- "9ae11d1f0b2cb73496a44",
-- "7d10d41f081cc53194454d",
-- "3476974a3a56c244bcd4ac",
-- "2d248bd8de364598100d1",
-- "371b6d93bf32954a1ed005",
-- "2f9195fa1721a36e6f5198",
-- "b5ea9188a76cbd4490c2c",
-- "67fe64c68be6372b30260",
-- "2582d22d55dfd72b2d70bf",
-- "2144bb26c3488be851e3b2",
-- "69cf5ded5037b0fc848b28",
-- "451cf4e4a6ce149cfc4095",
-- "4845e19f6384ed5724d8ce",
-- "5c721c1e9f943f1e44c526",
-- "6b628f924b031ff396258b",
-- "2db4889991fd96d5a3dbfa",
-- "75393667821938c0e5a628",
-- "2e37e64613e6e49f75ff6b",
-- "7569e0846a7c92c5b07e91",
-- "544e247e73028cc23b1f51",
-- "2e14fbc2ca9b056ee6a0e6",
-- "5c96c4bf9c30f05dfa52bf",
-- "30455197024dac28f22ad9",
-- "16587b1213183c74388d6a",
-- "62a6ac9d0c5e4b3890d61a",
-- "5d0e736ad9b0e048c53cb9",
-- "29c81a2bbc75ee65e40fbe",
-- "a5803d95905530efe4cbc",
-- "45fae251151688f6948ec3",
-- "34de10a25d48bbec6bc310",
-- "38e1136120c0a50e7c1942",
-- "4be7ae42a1b71df0fdbed2",
-- "70eda2a92c3f3d551052fc",
-- "736e4111350ab36a2be4ca",
-- "471e19dff79f0bf8dd75e4",
-- "7c4c5a07ab45db64032f8c",
-- "3e8f3fee79b0aa7d3158c9",
-- "6803ba4d96f3cea5b5b619",
-- "645491f7754448588100c4",
-- "64c773513b07ac7be226c5",
-- "1207f0afa9b17ee1e3a14c",
-- "1a5a3601f9e5c757413d21",
-- "671a35180c429ed6cd73d6",
-- "3f719d970328ab86444133",
-- "2eb29dd03203d9dedca2ed",
-- "3ca5432d73f30360d5e251",
-- "ef9f73cc5ae815a32ca63",
-- "76930d75187c32e1c0855c",
-- "297ac6d1d91b19c8ceb3ad",
-- "4d06acabc42f8f6c6561a2",
-- "17f90d7760ace90b4281fa",
-- "79973f898e87ee6433e53e",
-- "1177a186084a0188e6b25c",
-- "46ea372cc256b25d8bedb8",
-- "9d0d5139d46e4d9db3662",
-- "31f4e6b45c1cedb6d4c94",
-- "222ad5a5eecaf564928d05",
-- "7bfb517a9a7064f7f0b9cf",
-- "88d1f466f33239ebbee3e",
-- "28c8b8ba9341ac37c38695",
-- "430a7ef273c75f6860a9e2",
-- "5963fe850d852bb19cdfe3",
-- "57ca180b4c6f8c3a63ae46",
-- "745f8230228fe0e913a537",
-- "6495ff035413be2b53c45f",
-- "1825a2f6c03df8e89a424f",
-- "4ee9fe013ba8fc6ac8d470",
-- "7b7c35dbf0dd6b94d050c5",
-- "a70e6c0e6da7b5bd943d0",
-- "6904f88af6eea4b3f91bbf",
-- "5ccb3321bf79805e3743ec",
-- "40fe888eb50954f82f8f41",
-- "1683c065332572cac40e7f",
-- "265a6fe3ade48b79bb704f",
-- "6869e474162fccd5e6ce8a",
-- "1621052353e1bb38663f44",
-- "5206d5cc4cf74b102b511e",
-- "459fc4d70a1a8040309b48",
-- "1a38abc6055dcfc6f54cd3",
-- "6de250d6d96fba0a4a2df6",
-- "521255c27009b10aeef14",
-- "784a6ea72c75433fa2c1c0",
-- "1c429a8aad032b85e815c6",
-- "46ae03b83630be869f3f67",
-- "468227ba06af62fa70d6b",
-- "1832f7608c30377f8a27c1",
-- "74e8524ea4276a1585abc9",
-- "479f0a9b95b8f0e630df10",
-- "6c9aa8a230f91d4e6f84c2",
-- "2020839307f0a0b2a66465",
-- "617907260cf1e3612508c0",
-- "50b259ce6ef7786ad19380",
-- "60ad8426c5228781a660d2",
-- "640821dda0f544b159e25f",
-- "11216382d02fa8a680f2c",
-- "3b142ae3f666b5a458fd6",
-- "50d8060a4c81ac0d9dcc9a",
-- "656e0aaff42e8f100df7e1",
-- "6b189bed3e1ee805a7089f",
-- "587965194057ffad1ed72d",
-- "7c91adf751ba7b800072a4",
-- "66c37766a09f2454161188",
-- "2aaf602c5ad427702561f0",
-- "1fe772e91ad75a2d2792c4",
-- "432bf33542ea8f8c0e1cab",
-- "108be849403d8b9e0adadd",
-- "1f098e306099d97f37bcee",
-- "15e468fec0387d9dcde2e9",
-- "35a56ed2078e145e9b5d42",
-- "3450478bbaf1db9aae9e0e",
-- "5819cdbf42afd2334f96",
-- "453649c203cf983e439d84",
-- "6e6871265fe9883143d121",
-- "14b7709b903167ca33c0bd",
-- "5bb6095d45a0253a5e3e2d",
-- "604b2e853911ce83225aba",
-- "7dcfee63c4d594e4583601",
-- "245ff16a71eb8c45257fd0",
-- "51f56cb5201bdd22f49e70",
-- "1b50ac3c3f5269c1d7aa40",
-- "68c11de19f57751aa11e9b",
-- "73da067d52334a718631ff",
-- "63f2b709d7c6ba1ce60255",
-- "6a47915604a062b94c626c",
-- "6d15e33dfd91b0adf65ea8",
-- "36b718d293f968b4388def",
-- "38b2a18fa105ae1a1e82c8",
-- "456d747923e7fcbd260fae",
-- "17a8f2f3a036b54c467b7b",
-- "4cd6b5c75a375bce549db5",
-- "ad8ecaa59795b2101aeb",
-- "5e89ffa159d58051edf13c",
-- "48457eaf5bfbcca641689",
-- "11e987960e92f0cfe9e7d",
-- "484fed0412b66b4ad6689b",
-- "2567685d25fd668a9a024e",
-- "5d36dd2a4f038c91a8e525",
-- "78386c3f2bea1d92b0136f",
-- "6ecd91e762474ea500bb02",
-- "460dae8d89d7708b43a1c7",
-- "3846b043ea9479616ae948",
-- "35d846be55b3952e278ab9",
-- "697bd2294052d067eed5b",
-- "29ecceda91e2de99bded7a",
-- "32c247d46291051243da8b",
-- "59d6c2db6f995cfebbccc9",
-- "5628eeca86bc4f505da4a8",
-- "4450b05b160d8c53288cd5",
-- "5d0b6fe03f574db311d01d",
-- "7059a8ae14b27b87ae7942",
-- "7e37627adf10efb14adf13",
-- "4dae59d140c542483e12a9",
-- "26246e8fdf408dac8fd2a5",
-- "2d3baa252f4d982bd2ad11",
-- "266efd2e0daff29e309d38",
-- "8fdbca74c18894d421e52",
-- "7cdb727ae2bfeeed50af45",
-- "490df281db25788739ca0c",
-- "324340f1f7ccc9eff05524",
-- "595eaf076defb81f21236",
-- "22aca8e5833c97719ebb51",
-- "421f5a540df5b7ba309bc8",
-- "4cf40ea87be0baab3f0a23",
-- "78050a04d755b7008433fa",
-- "70089a05ca7765b8ef62a5",
-- "6446d75a31a4956c235943",
-- "3bc0b4b12c4e0d37097319",
-- "6a6ceb53a9e08bce60e22f",
-- "5527257327c4eade309a67",
-- "5193e0be567990b2818200",
-- "540f6a5d04324cc6ed1398",
-- "d79412155f3d978866277",
-- "65e3000fa520e5bd8bfdc3",
-- "988dfd270fa06d78d9fba",
-- "6bbfc916f60c65ff6069ae",
-- "22a2f494120b7469421488",
-- "5514a9f97c736ef89e2558",
-- "494a8aca14d077b143ca10",
-- "599c6bd84b32b97e000cad",
-- "2983f80020a9f6532ba834",
-- "39395b9f947ccce230cc1d",
-- "5eb549dbd9b640a1018c4c",
-- "3a948a48ee72242647aeee",
-- "5c0b858603efe861d8e554",
-- "18af2f7c66ebae2215b225",
-- "7656e2bcd13769bc7d3690",
-- "1d345a329131e03407a9ae",
-- "6b91d4c08bfb155d85a09d",
-- "c5eb765e74f7ea6040509",
-- "347e522bb35549d788adad",
-- "3c2561b4603673cde220ff",
-- "78c36b7a1a1ac86080796c",
-- "34f1c6d5946b4f8e9c34f2",
-- "1d82fef6b5daac184a21bb",
-- "11e3b65e520ccb94e0f28b",
-- "53ee027a60ac6b8703b4c4",
-- "252a9565fc2ed88c83afe5",
-- "2c748923f66e9b836e2956",
-- "501c73bb8897e8a9b644da",
-- "527df835ccce3d0d8dc6be",
-- "753e3ffd723c55ffaa57eb",
-- "27cf1a1e36d6b6fbf673f1",
-- "303e55cf5d940fa1eb0863",
-- "483592c4cf34d97823b087",
-- "404518992cad409d30e138",
-- "247aa73439f114a2bae1f5",
-- "43f106dd9b706c7cbad455",
-- "60de98af5b2e9794ccddda",
-- "2bbb60823308802716b002",
-- "5a4b0bdbb9a3eba57ecafc",
-- "7eacc570a117e3d2c4ad3b",
-- "b80a7edd7c5745e63c50d",
-- "3d2c4d19f97ec14b7f9a20",
-- "8e1dc29eaa3429a93416f",
-- "16c859dc1504abc8bebb3e",
-- "142700479fca005e365a5",
-- "1a5a69890d5f080ad27aee",
-- "333e4709f384c49fba280e",
-- "773e49f5dd28ab9abcc4f3",
-- "7fcabd5ff8d8321877d09d",
-- "392447173660d27311fc56",
-- "3b607643718a1436cbf93f",
-- "3d01c0ebec513aebdf049d",
-- "115af287df30e3b9382159",
-- "217e1d11ab05e37175e942",
-- "43240f690e895ee2ce6199",
-- "6473a7fe7461369e02b551",
-- "56d1b28a25e58905b948d1",
-- "5c08c8490ead830327cfc3",
-- "60d1cb028fdf2f7506480f",
-- "6efc437814b1b1a8db77d5",
-- "386903ad1ff043a2a203ff",
-- "113203b24e05e4ff03bfc7",
-- "2287f22a43e09d12b5fed1",
-- "3fc330d82c00c3c98129ad",
-- "5bdacc4f0e9a9f3c5eb7f",
-- "43ad0b393a7c2a4d667efc",
-- "4d17bed73f2032142b03a3",
-- "72492bafc7adaedde393c7",
-- "161741a6fabf2be3cb74a",
-- "3253a13971cf24cc306f4e",
-- "3566ae3cffa53b48308a5c",
-- "772853e9593804a23d0c9f",
-- "58d985a1111ffbdece42a",
-- "6b463071583d5d51119c18",
-- "58ab9a24dbad2ee2c0942",
-- "7b625b197eb76a08b19ecf",
-- "153d46a7ad0d4c7b81a83d",
-- "560bc3397e1eecda48e8d6",
-- "3e27d166777ab6af4a4b75",
-- "10a7cb0c646bfbfaf6b1db",
-- "abe7e5169767e92b8517c",
-- "46bc67034da17d5b7c72cf",
-- "16c1a9b3bcba979d2fb250",
-- "20573b178651610a410e89",
-- "46c829e7e1980bc26c13f9",
-- "3428c448a20f463714e16e",
-- "7be85a588e4f01b973f9a4",
-- "382238b03129ae3a8cb2e2",
-- "8b93e9e7ea54df6ea61e0",
-- "dde95ff1403621e1e9c39",
-- "b3a488e23273b8e74aa2e",
-- "3af2323baa99fc6ef534e0",
-- "6003c83a8ae5ae42a0956a",
-- "2ac52045b3b592dfbeeaaa",
-- "7f29a05b16052f06eff50a",
-- "1eae59f579b122f18b84d1",
-- "28593d93a1a2159e16cc13",
-- "460f5f98b19a4d353358fb",
-- "56efa25eac0d5f675af6b6",
-- "73e9dbd2873c27040a215d",
-- "5ca40898d5d325e557e04e",
-- "405224a222d42397ca18d2",
-- "a69b0e544c08336c9606b",
-- "1dfe68dd4d69d0d5368782",
-- "18bd8096de042467441c8c",
-- "55f3bd5a345801aa67f91c",
-- "5430c091f416778afc3f3e",
-- "4e33cc0d26d44c2394c8d2",
-- "2ac1793993d045ec4ea0ab",
-- "a0ac3885d2cb22aeb977f",
-- "1073f10b92dd8a202017b2",
-- "23e36a6e12831353ac1afd",
-- "71f02d980dd943488cbefc",
-- "7e558ced95c8a49312174c",
-- "21b1555bb331b89f928e6d",
-- "75ea3318a1054593eca8e6",
-- "88658ceb2447416239af",
-- "7dca64fefd065e0893d874",
-- "5f427b13d8351db71dc75e",
-- "475c02da59260b083fa105",
-- "5ee825c795f457b727b9e8",
-- "124aa58a7e2a882689ba12",
-- "797bc83e9789b064b51c92",
-- "2a8b319bb90a064d3cc523",
-- "5570385cc742f16a21edc9",
-- "122e1cf4ba920fb923d0e1",
-- "7fc9fec9506aa1a0661240",
-- "3fc3680285719ed4f7e7fe",
-- "7175ce67c0c74c440327c2",
-- "503bee64726b7b32815f44",
-- "5c4dc3dd9138eb7169302d",
-- "3f0eb0b9bdbbe37f40dc5f",
-- "5aa25b718982092494e872",
-- "20b11d38582bb81886466a",
-- "36baace22f2d7a2014dd1e",
-- "27216bcb23514df00030b1",
-- "3146d29fae3f74014572cf",
-- "3988842f76572373c3459b",
-- "6aacfa3617f47dce14015a",
-- "581f2a492a4fe468c3971b",
-- "4cc8bba01b6788222eb375",
-- "5c00c9ce80be32396ca075",
-- "28670ba592cd5a2625df3d",
-- "14e47840962745e9f2bba8",
-- "7f26a6c99362d1126b6773",
-- "6eb090e9b1df79f4d2226",
-- "7f035a794c44a6a57abf00",
-- "1740e5e9a57a4e80eed5c8",
-- "46b1961304e45b428bd48",
-- "49ce8855b52dfbb878b2d3",
-- "313ef612f2fd65f39c2e3e",
-- "7332b41a9fe9dfbe59f71f",
-- "41858e467a21a3938d60aa",
-- "6234ffe0f938a25ce0f5a8",
-- "1105d3c71c59dedcb33f",
-- "7a75b868e9fb50140bd203",
-- "68ae7d3832d31bce57eaf3",
-- "600de685f1a4c2f4a236d9",
-- "3684bf3ee3a2b8635ca0e1",
-- "2bb74459adcd7029c9c35f",
-- "b7347a4820635a5852b61",
-- "249f5358017ada6567b747",
-- "17445a9a60b0dfca9df354",
-- "695d060b1aceccfdfa96c2",
-- "a209dce8856336ebd97f2",
-- "72059eace3671c76d67005",
-- "6dafdbef06e817ec42991d",
-- "47a38df2df7f516ac35f8d",
-- "6a3afde1cc784aefb925c8",
-- "112bfdedc3401ff20ffcf6",
-- "3161bea37fcc040c6f6494",
-- "6152b40d63a55e1ef6e750",
-- "41127c781a5dd07b6ea357",
-- "1df80784a603cde2e8573c",
-- "2ad8c773fcdf92009db9b6",
-- "5cd8f904c6a0e1c85597c4",
-- "21532161ecdbdaac15b68a",
-- "5a80f23e82161bfd2caa8a",
-- "59377c70bed9cccb346cff",
-- "212d386743b2c2069ec4b7",
-- "26fb73843bff3e4d17aa10",
-- "1f15e66f6c5b160801ec4b",
-- "4024c6847ce50a93fefd10",
-- "38419b7c213432cd42f4bd",
-- "ea9789ae096da5bedc410",
-- "23a7a59b35972768b71627",
-- "60a177acbb4aeba955e6a6",
-- "22d9fd1638450186756413",
-- "5a49a0430b2145ead2e9a5",
-- "7fb445fb34908201d41b44",
-- "7b1e254e6050240b36eede",
-- "44867f919f39bbc1ac8a53",
-- "57c6f0c9d94e02524b4029",
-- "553a48facee35f17214327",
-- "5e3402a24a307a945167f7",
-- "4ecbf2559411992397d1ba",
-- "3adf2b6aaf40f5dcdffdf2",
-- "156e3560db5a642c108333",
-- "26f3f960b2ba725c83b706",
-- "3135a042ca5b8873367081",
-- "5778dc2f1465daeafbf88f",
-- "142aa17e315b2096d3470c",
-- "17b1690a9c9f4fba9154e2",
-- "6f3d0d822d1a27088df8e4",
-- "749ebfb4005c94ed288c4",
-- "7f64ec3ee1d6fd7b5f9352",
-- "3ea29dc49c06d64c187862",
-- "322d1e939066766f918e43",
-- "d1c5eeefb8bb620c573fa",
-- "7d83ba89b9f89b55497937",
-- "2f635c018151dfffc38ed7",
-- "6b77b6d06b93487730de2b",
-- "202d04fcffa7e3a0ae0585",
-- "7351e32ddd53c7465f65e8",
-- "1d5b0385650d2d81754f72",
-- "5227913634dbd4b19ffe95",
-- "1eacd91eb3938b38f0210f",
-- "3ab4982748b8f986192588",
-- "4a648c611ef0b3b0e318e0",
-- "18eb41f414dd28e8ff3a1b",
-- "28e33efab89fb4f64d6498",
-- "1b67e56d8c8f6656eac86d",
-- "27476789fbe89ef5fe00c0",
-- "21e39ab39cd96423900120",
-- "4818fb8f958698b6e9c9d9",
-- "95d86ded4a7b26a1ad331",
-- "1b2e283bc4ff40366c744f",
-- "2db6e61499c9393946b57f",
-- "3e8986648fb4053520276a",
-- "5eec1e56c0a2d0e34dfc8a",
-- "389d9fa841750626db108d",
-- "4e0326164785519414d07e",
-- "530f4c391aa2b0938eb272",
-- "50c915d40aeb9e4ec78789",
-- "57bf13241507b812b9a904",
-- "3245bbf080c6731fee74dc",
-- "11081f4b8fb8f0a9abf772",
-- "7a75be28b1e93e4e0c9342",
-- "174fdf0bcfc8d0f4e77e83",
-- "46986d0da7a2c17dd1dc22",
-- "68e88d3bc4e8d390ae4b13",
-- "4a2580e03d81912089d88d",
-- "201e678f30ea96fd17615f",
-- "3566f7f67e026f0278dfd5",
-- "30485371efc19b50bbafe6",
-- "4dedb1ba2a6a4abde67337",
-- "33440d7d3472a4b6e2f627",
-- "591749051e47ee7b49cf82",
-- "3fe61d12a0b09791925ccd",
-- "7f5140ee63b60e0a33058a",
-- "5eb217461cfa46d5694397",
-- "6aaafc0107575bd9b70723",
-- "3305f9d7ac9bc35ded571d",
-- "5ef7fbdbf498c8684625f6",
-- "3b66491ccee4801a4e3673",
-- "76fbf6732402bc76e061d1",
-- "28a37e042abf70a7cb137d",
-- "534c1a3b25194e8cd66e6c",
-- "3eedab106a435ef32b9e48",
-- "6bd995ef31bcfd22d52d9f",
-- "6b5da25417070642e0ba4c",
-- "3d40b56764f7765513d13",
-- "44bd0de2094b8b3759356",
-- "312518f9c1ce1e690c003d",
-- "f920b02af1e3bd673512e",
-- "4ed1311eae64f9e834ee7b",
-- "4d075c933e4b93da3a33d9",
-- "133606f2fed41ffd77b999",
-- "16b6721ea95f55ef631d25",
-- "140aa7412f6488f5404826",
-- "3ae99fca89d15abe091160",
-- "543222604f067afa3e7558",
-- "2948eda7d7c508918c3056",
-- "4cb6253df884020966d27b",
-- "46bafe88322c67f3b90507",
-- "31416a7f09913059dc251d",
-- "52d3cdd253b64a03c5885b",
-- "1c5d10301fcf4a14c82adb",
-- "5cd8f782abb8b60cbf36f8",
-- "42b636bc4126dddf74cb00",
-- "5afe15c1524eda9627e183",
-- "783d012e8b928ea14eaad8",
-- "45242101d43b276b34115c",
-- "28b06d6b1f993702509e4a",
-- "16ad879cfcd3e458301dc9",
-- "78873bb7282961108e63a",
-- "1c5b7d2b84cbc7b29bf542",
-- "48edf77c0fc298b0491c2a",
-- "398764fa3e177502af4d3b",
-- "1d1aa15ce7c8c15f051ba9",
-- "401a3ed45557939fa7eea",
-- "13f9a309c929439a91df6c",
-- "3aef6b8ad8d4f116a27e4a",
-- "64b1dd5abc6713a8f53d0c",
-- "73f4373aa0c46a1ae61409",
-- "1ebddbaa72ad1a2b1cdc49",
-- "2cd33d1f501e268643d591",
-- "11b77783f411c457cf909e",
-- "d92cf9efd7d12c62f0dfe",
-- "2c56fdcda56f78dcda9b60",
-- "118d29d91686683483dea8",
-- "7e05b7c7d54cfa1fc7b525",
-- "42c5d2d1082dd2375a4ef3",
-- "26554ee3e9bedb1a3a09fd",
-- "ad64cff4b4763a7fda09f",
-- "5f9563c7ca70d6e5061bfa",
-- "38d987fd4b450ee5a69286",
-- "62af499c078af038905758",
-- "3eecfda3b4d92af2b7e5ae",
-- "5e195ccf98c9a4e1967fe1",
-- "61c0e0ff11a378274b395c",
-- "486fd3ea0158f33daf767d",
-- "4cfaabac7104cbad2ed728",
-- "714ed5cb0027168be15142",
-- "ac5bf0492a63aa0bf597",
-- "53339d5a01f3d2e9bc8755",
-- "457d09be8a2a4c351b63ae",
-- "1892726d56d4f8f92dde20",
-- "236e08f8411de38e44c3cd",
-- "5549ebaa872068aae68ac5",
-- "11df54a696817409ff1164",
-- "7f695021b246db24a5113a",
-- "5267f1f68134d546ec646f",
-- "4ad5e4985caa0c7ee63b9f",
-- "3c5262912ab7e82ffd49c",
-- "7f9a1f8e557617163d5e82",
-- "31b2ef6b5163160bdce290",
-- "127dbd62073fb0c17b4217",
-- "5fe5a0fcee7c061cf49e8d",
-- "34ce2df12c5e0970f682d1",
-- "4f6148f444b84dfe82ecb2",
-- "740e3fa0e998e741eb97cb",
-- "5623f1c8e0d5c15938b2a1",
-- "79ef58660a06bbc22f0cce",
-- "35f48b300d21989b05560",
-- "4efe7cc856d9eef4fda470",
-- "43f99aac41b05d58c624b4",
-- "66b03ec137e6361ddf6317",
-- "4382f99dff4951a775fb77",
-- "974b1ea8fc3d4665ea11a",
-- "1998c4f90bb8b5465b7b1e",
-- "a49f38b3c0b7ca1fc5c10",
-- "57d421e876be8c87768c1a",
-- "14c79375686a30f4c21ea1",
-- "667b77d58f7f6b14e19bc3",
-- "17b5a764867bc2f176278",
-- "cf2bf44fe6c433cc00c9",
-- "61619bfea73d2a10c7a7e9",
-- "3908eb827c8209b96bc643",
-- "e859d26ac6c854731c10d",
-- "562d8222a0b94f5af3137c",
-- "780a2a5411b159d83dcb95",
-- "645cf2dd2735f1cbf53f1a",
-- "6476d594392ef9fc9a3df1",
-- "7df75741d3ccafb28da8e",
-- "526d1eb936d1a3dec6eeb3",
-- "1a3337bb0bc288bf44447e",
-- "13413811d8a8e6bc2e6cf8",
-- "54728697bad28cd0bcc9f",
-- "2e178e1cc4f997792ce1aa",
-- "f339d2f5ca33347ae8d13",
-- "24dc2302a4b77b85525bd",
-- "4779c6f70cb71f00e32d17",
-- "20866732367b425f7e5ad1",
-- "26c45bee1cb7e300fef593",
-- "4f3fe475424626758ebe24",
-- "3979e2b3d54a21e7e8c1cf",
-- "50bb1918112bad3e57d523",
-- "4e1bc7c2f29a2f520bcf7d",
-- "3b4ae8aa403abef29b052b",
-- "54765bab6ab2b394d9dee1",
-- "5e7e83070de3b07a4bc87",
-- "6131db76263e902f303f6e",
-- "2fb62f0a2e9435830411",
-- "57b341376c8eeb5e957326",
-- "7d59312cf551555c728152",
-- "3e13e95a38da382cdac574",
-- "53e3092b891267552e8471",
-- "ea04fd9db78a21c39b6a5",
-- "42cda11218a2f5a8d7bd1f",
-- "3aaf5736ed929c1ed0ab93",
-- "6e93c69a7627e1f9832a61",
-- "37526cf6c350fc29ecf559",
-- "5640578c9a2f674c097c8a",
-- "41ebedf12db1451af99b12",
-- "66db9685c97e1039f97191",
-- "61e21b9a255226ab8a9c03",
-- "4d36c683652009a273c69c",
-- "3e00e41664141664f70d8e",
-- "734cae170e5d7d8758c509",
-- "26c603e605263eb37ee858",
-- "1cb50b0700a11348f864c6",
-- "6b4ed91c3f4f0b25252206",
-- "46436019c4b35e76ea4182",
-- "44885049137a26d9ff4438",
-- "1cf7470aa8bed908f93c32",
-- "56d7ace10d6e046f35bc1e",
-- "2bc7683658e815b0850ae",
-- "2bd0c39ecff8d002f3a3f7",
-- "2848634cb8eba43423c432",
-- "177aa9fd51aa698c4f5d25",
-- "809a8bacccc204134381c",
-- "60483a9742002ed4918cd1",
-- "7544304d1b3c2594fef689",
-- "49ddb3e956e6fd8d65e1ed",
-- "3820d1fc1eab75e925dc43",
-- "7093b250c7b04c2c6d567c",
-- "16870479234b3337ddc8c9",
-- "18f39bb607de6b1ad183e4",
-- "a5d62acbaf68c52001a4b",
-- "65f33a2872e25c8a682f06",
-- "4e66ba0bc1058a3931042b",
-- "357eab1d6b7f6618503b3c",
-- "5cac3c06df31850ad70694",
-- "7e68cfb951ae556b15fa1",
-- "7de8764ca6a43c99d6a50f",
-- "329c1979af2fa92b25335f",
-- "113149ff5647e02c5d8e8c",
-- "5fde1fcd656f65c682e01e",
-- "3a2bc2968347afc3827c67",
-- "b7602abf832a9540b03b8",
-- "28434971e0ad86e87340b6",
-- "e24946eda2a54a4c98b6e",
-- "318d2300370d914ed1483a",
-- "776ff8d5492c149f7acf17",
-- "50e46147373113c54d73c2",
-- "59652c3042e742dab07904",
-- "1e74e23fb34c50dc055d0",
-- "3c31433d0db703e03c294d",
-- "64666abc6a9a2f6a1c7575",
-- "191da9b869e973d2fdfea7",
-- "6c362e17e2173449bde86a",
-- "1a8ed7cad7bcfca4620120",
-- "273beeddd87cbae01c207f",
-- "568f3917922fe83ad3e225",
-- "44e6ec408ba05ad98e759",
-- "32f5fb93813b0abef00c9a",
-- "490db50fd1ace7e8ec15ae",
-- "7630fa097aa2bf97cef6b9",
-- "6ef800332004d6cda26cdc",
-- "551ec7c1ae7ed078f940c0",
-- "455927f484bb8820a2ccf7",
-- "7933956672bf2e4535ee34",
-- "2a7311c640e7cf0ecc141",
-- "7242e44696c19a3a1910b7",
-- "3c7a2b6b58424eab86f3b4",
-- "359b331d03b9cc2451c1f8",
-- "4169ab1c6bf3f0abec6c34",
-- "6df855d5b158377d521892",
-- "3c4374002a4b05edbee285",
-- "209910d1159692421526c",
-- "31dfcfe645b46b329ee2a1",
-- "1e6874a8b307092ad6e72b",
-- "6b7e91fb5948662e3961e3",
-- "23966403e567312c7a8379",
-- "2f62056d547ebf7995c6e6",
-- "5fda42ececb40f359e4f0b",
-- "18a6b71998f6f84fd5d814",
-- "76f42929010d1ca7619b42",
-- "50e22c6cf5d6b70def807b",
-- "1cc96ab6764758e9cff09d",
-- "59aa03a25735023ef97395",
-- "741d91860d83d000328e76",
-- "a9753c820825d73c04548",
-- "4ed7cbd3e32dee7a40c626",
-- "6ce70c288bc2711b1b024f",
-- "59efda7d6a6d8e6aaaba46",
-- "6ee757629a9b68ac7e690f",
-- "328bf9a8c78ea2ca3388be",
-- "59bb325b9748e94acb6630",
-- "55137101093be9fb51857e",
-- "9c6c4ea9b05d327c6b7f3",
-- "77815256a969cddb479be9",
-- "3b0cb59bddc94e18233703",
-- "7a123babe2e7abafbaf8e7",
-- "35d6d7bb2855d9adfbf650",
-- "6ad95985d0ab8e8d823145",
-- "2133efe27b28c873f101f",
-- "607776583fcde0ad8e4c87",
-- "e2d9cdfcde324e23eda21",
-- "747c7a13b706fb28e46c47",
-- "35d310b1c9f92e46c5dccd",
-- "7248daa035ed0c83c2d007",
-- "3c8b578aed4234d875a143",
-- "766ac65aedf40f90341249",
-- "3087f959a9893769198248",
-- "49a34db8369186ccd3e18b",
-- "69b04bfb64dc28afc90f3",
-- "3732911ea3b78b2cc54de2",
-- "7dde8d7ccd2cebd1d4b943",
-- "66727c69de089e222307ae",
-- "5a67c62d60522486e9cab9",
-- "6acdbbcb1d87bb33b845b0",
-- "1f1cae187cb4e7e2d75ff5",
-- "1cc8bac063e7f4722cc83d",
-- "1f75d643fbc4ab52296f51",
-- "7b34f38b9d16f0d70ddae4",
-- "74a0eb9dfa780e171aa5bc",
-- "4366b19aa12542a30c1749",
-- "4a1404c02a58e6862d11f5",
-- "55e542cd768eaa4ab7eb43",
-- "182ed4a29e8be479e40c89",
-- "5eb96063b604b2d052b457",
-- "d755ece5c8fed1e833d4b",
-- "10f7a570b959918609b06f",
-- "656a55d45a93fac53881ab",
-- "60e3811062f0661e25f626",
-- "24a843ed6770d822f92be9",
-- "216b9b04319fd8da8a6d3b",
-- "3e41b8ea3309221756df7b",
-- "5a00aa930e50101d3ad458",
-- "260985f3992a168bc7fb3b",
-- "5c3df551863d0055925c95",
-- "28b06a5b8a2319d5d78e37",
-- "3567cd9077f5bb1d3115a3",
-- "460858d1e253129bf64e5b",
-- "485bb888b6979f8f201fb8",
-- "7aeadbfb750a598afce6ac",
-- "3cfed079405fd41004c118",
-- "3dac1d8f9e9cf46cc42204",
-- "2df246fe147cf6a7d9ed5f",
-- "1a908fcb6be810a9e1e92a",
-- "6c33a3a058504d48c17efb",
-- "66e9cba0e526f30b7b9b8f",
-- "757f2101d664083b2fe8c9",
-- "18c5643eccf2173f575420",
-- "7dd9082b6f5562b8d6ba91",
-- "389d1e8a26db35e20882fb",
-- "65172c59adde7fa1aa62e",
-- "1a7c7fe62effcf2d1a2cb5",
-- "392d9ae31bf22e0236e198",
-- "3d886ee05f1bcf69fa4f70",
-- "2c8f1060dc661c38044a5b",
-- "16eeff7e87d3caf8e58a92",
-- "741dd990ea20591fd9b5ff",
-- "39bbee3cab035e7fc68b3",
-- "4996f8a3f7c2c5fac02813",
-- "36ded179138f0e4cdf1ee7",
-- "f9d7db7493258ceea1a37",
-- "2a6c238cf5c57a2939882f",
-- "35dbe95730bed0669969ad",
-- "290fe0ae5a419909be4e2b",
-- "63839ba9cca448dd7fecff",
-- "30a8e1972ee45f3e0613d5",
-- "509ea21b16907067d06b82",
-- "7633f58adb014bb5585678",
-- "6c8fa526a6bdbce9f7b832",
-- "4a78cbf6bef93b38948e09",
-- "37c7b0fc4e875134c29246",
-- "4c996629390ea0954eeb1f",
-- "222dacddb6e77241cadac8",
-- "2df2bed0dd9ba405c8c5ce",
-- "3a7c703f2642b17eba0c69",
-- "22e8d9bc34a96264dd4caa",
-- "4bb8f4e111d078e3c54590",
-- "69efc15f2bab10979940b4",
-- "4e1b51392bd1ad38a51d00",
-- "5e82dce0d15b40d73e81bd",
-- "6a410e486ad693817f9d31",
-- "5dab9e18ce0b8340db40a2",
-- "2df0f496cddcc699504250",
-- "124c113e25b1a8153a830d",
-- "28d70ec040ec983aded5c7",
-- "7a93c6e177d746f5eb503",
-- "14c9d693e42997dbc96df3",
-- "50755ca653aac70b84b12a",
-- "5f72010436c71470f190d9",
-- "1af9124bffaade4351e990",
-- "5fdc8856cd703470a1e5a4",
-- "10b57d68a8cfe14ef3ca7c",
-- "245003f901ae0a356365b5",
-- "63dbff9398c6d2cafd1418",
-- "75c2ce5e2535ac7878196c",
-- "15c08724b1daf7a590d087",
-- "3dc7ec06146d405216b267",
-- "1fab75ef67bec61a68a277",
-- "711d3de6506cffb89d82c0",
-- "15b79d2a607e674b1df02c",
-- "928d2a95f60dac2e280f3",
-- "2db6d4b5b7a928883df97f",
-- "522bb592e89a78b316244d",
-- "cfbfcb607ba616c016fef",
-- "13d6f0fac0c0b9cd891715",
-- "12a8a0e9fe6ba5c3656149",
-- "4553e500c491eb2ced6e1a",
-- "368d20177281b04fd8018f",
-- "2579cde0e8d37e04167a12",
-- "2f4c8ebd42ef359c5ac79b",
-- "7afeb7314079bb05948a57",
-- "4dde9b7ed5a96934e4dd51",
-- "3cfc7a65b66e9f8c6f8cbd",
-- "7453e07405f19cfba93c17",
-- "18488f368798b8734164ca",
-- "532d2ff2bd9d0ca8b344ee",
-- "18704740809cbd3a91bcc8",
-- "1a91a4ef4625f7ae911f1d",
-- "26240f3e8816b599bb01c6",
-- "60749c3a015660029dacb9",
-- "321405882a2a0c05f7907b",
-- "6b85f2803d97e818e2e527",
-- "40d9ddb7d82d86fe4dc6d7",
-- "5bc9b4c686de112404ccc3",
-- "49e219e4b19fa82e3cdd8d",
-- "6b4aa7c57cecc522b32c99",
-- "1152ee1f6c91b44b1faa20",
-- "4f1b7b04b31a6d85748c8e",
-- "28eaec99940a1b1f563841",
-- "341ee0e329f6ab9da76c4a",
-- "8a4219421d2f55bef801a",
-- "25e4a83dfc2f633765d96b",
-- "22a17bb1e02873c944cbe3",
-- "4c4fa3875e78671bc1d2bc",
-- "79db0961906e2d46b0b349",
-- "68d1c5df4d9653be9c8e7b",
-- "7e0f7a6620c31d72d9d568",
-- "42af59edeafb6c79b9d208",
-- "3d17d279ec6a81f53cd4f8",
-- "2f1ba6fd01e5cf713f7991",
-- "5c246c8d9baad4092bd7a9",
-- "1c6a5fca595a1ff62b0a7b",
-- "5c6ce5b29bafc437eda5ce",
-- "709f8b4e1e81f78ecdd5bb",
-- "619fb115b590487fbaece5",
-- "5b917d89029b0850efbfd7",
-- "2103ca88adecbfdd3370",
-- "4e0f2086acba831702db59",
-- "cebc8496358956c6ed352",
-- "4aa62ab8f33741774c11af",
-- "55925c1c09bda33b3d0e7c",
-- "47b5376a6bf9ae1b5420d0",
-- "5f305f39404231a1ce6591",
-- "d0d6f30615b8f231bece9",
-- "851fa3652b44e57d9190b",
-- "4c099f907df9db8a25350c",
-- "48cdee08fb7cd0c828eec2",
-- "7399c1866bdfc2ee9d0ba4",
-- "7da4d79cdf3d83f0763c79",
-- "5de657154513d33b2dbb32",
-- "4057d3883ee10c31d0c5f9",
-- "139a5be9fe5d74b7b324f6",
-- "4678975ad8ef4ef63ed234",
-- "3a1984f88834905315728d",
-- "5e53c14166e301e45a1c84",
-- "1246f9f5df870b21bcb1e6",
-- "6095ebe0914ab346aaab52",
-- "173ef6d2228315e7fc8577",
-- "71a2dd2f4561ce6b25cc84",
-- "17f8a55fef5d58503cdf89",
-- "2885d88c14361dbedb4fb1",
-- "69cb489051468dc8b7a10d",
-- "6552488fb7e68b138c5691",
-- "3d5e0686efab87e5e7c266",
-- "5adfc7a0a78f6657a5960",
-- "65773487e5415b58fb205a",
-- "1aa4bb2c56ddce8ebceb39",
-- "1ae4174a64ea29d65c88b7",
-- "2af1b36e871a2152d87ea3",
-- "7118c95246463e79fab7c6",
-- "7f31009d8b384ea51f9235",
-- "5eb2b60c1d97e4dcdb09d3",
-- "5ccfa76193ddbc64186a30",
-- "1e31c413e16722caeb814",
-- "dee72e6d522c55b461f4b",
-- "18250945b23b28bdd1208a",
-- "72e90ac5d748fbd2d7aadd",
-- "10ad00e38092458e73fe4f",
-- "1144f2116d6e426f3addec",
-- "720179be8f54eb5c778be",
-- "1fe4c7d7da3eaeaae25e65",
-- "51a001a64a22c7bc0db3ea",
-- "7d40cdfed339cab397652f",
-- "1960ca77285b35812422e2",
-- "421de31b9083741c4d4c48",
-- "3cd3f5ea5623ce969c863a",
-- "4b6b8f4e6118573075d4ce",
-- "43ac29ece073be2a30ce86",
-- "217c2392122f9868740137",
-- "2b3dba5edc89810815d1ce",
-- "7a9c1df7aec04dc00e3584",
-- "74aed20fd8f19001dab562",
-- "74f8ea2aa01f3e122e9ec6",
-- "7f3f1310b0770a6a8ab4e6",
-- "7377f9449fdfa779330064",
-- "4d3d6fd7781e8ff3322226",
-- "3629587577ea6cd990a3d3",
-- "29ca62a9234f915c5c9715",
-- "5286bfcb1951cdb460fbe5",
-- "1b0dfe5bf791bf4d645e64",
-- "150cbeb75257f8eed7903",
-- "5ebda7b44a30093e22fee3",
-- "6af9f591969edf6d33a899",
-- "321ccac2ccfd73a0b28c6d",
-- "fa6bb9b4b92165346e0ff",
-- "603f9b3bc6733094104e23",
-- "2e30617b0abeb387001867",
-- "e419f0eced24d03400fbc",
-- "2057d9029cad07c3d344a3",
-- "1d4515e4768ff5c6b4178f",
-- "7b5d99de82bacb33af7ee8",
-- "43f53558dbb8a25ad757e",
-- "4265efdcec74f163498291",
-- "477273c36a749543489547",
-- "767f863c9bfc5fd6540f44",
-- "d8e9fae4ec5d3e7913712",
-- "2ea5fa6c2e19e6ee7add96",
-- "55fca6cb45a0501d1c50ba",
-- "4e94399e1765146189df5b",
-- "5accf03c1a20af1120832d",
-- "137f8e05276cc8f9180095",
-- "499667b1e22348ac584789",
-- "7b87e87e1438c6126ab1cc",
-- "46ea38e0c4bb849b39baee",
-- "d922a909e3b3afea5fe08",
-- "4700bc9de4804ec44122f",
-- "54018c8917549d050c00a8",
-- "5f8307f0589178f70f7238",
-- "45b5b538c44c73f3bf515f",
-- "7ad19421f012d132850842",
-- "7adc118469443d4f7084b2",
-- "2ae496e8d9399061460619",
-- "49e01d719bf13fd52369ee",
-- "e1e55a565534c74a109fc",
-- "72bd80f062eb130b42b044",
-- "1d616376b444140f9acd68",
-- "48082cdc2a40ccd11ae434",
-- "32a426cd7460f9e5c5e7",
-- "bb247081da09643c00d36",
-- "34f2e009d684c876c246fb",
-- "3e2cbdf24bd5900348312",
-- "507a6d1fd108a63234b38f",
-- "3253e31b47819fbcec75b4",
-- "3ae16fb3fb77d48c6adcc3",
-- "244d1131736a5aea351d17",
-- "682b3c7ed60ad7c985a3a",
-- "22d6cba0f681e23fc64382",
-- "14da7875e13efd461f7c10",
-- "1ef2f8aa8266e26254215a",
-- "22cd6c35ab2195c56794f9",
-- "1d1b1bb20ae40ee8d35505",
-- "66ba97928f262067fec230",
-- "53e99cd5ced120123b808f",
-- "7e698a24ee9aa726fc4b0b",
-- "1df3eb49ffac499fc5f3b6",
-- "465d9407cc9bc6456e974d",
-- "48938572f05f540b474485",
-- "ddf6be61ce9c04533277",
-- "15131878551adae4b04c53",
-- "14c7f40a28e01adc5ae1b4",
-- "5cf912fba9a563060d7b3f",
-- "1c85ed9416af845bb8e82",
-- "1851d531ca021ad6f2b572",
-- "4ad2dfbccfebf4c881dcf6",
-- "16d83b4ed79a537102c236",
-- "19e1cce82f85eff6f6b24",
-- "589758587c26455b22331e",
-- "59fdecdacfa91d60fd391e",
-- "1eac63084c7797618dd9f7",
-- "426ece55a7fd1d858414a0",
-- "2078bac214b712936de507",
-- "3e748cccf5c4b2e587b8b2",
-- "232c5e33740871b389c8ba",
-- "7b4210ea990dbb2b80bb4",
-- "53b453f5f30f900af808e3",
-- "49f7df71bb684bf5a54c61",
-- "1174d8cdaeecfc5b7908d0",
-- "6106124e06a73207e84629",
-- "34242d89a6cc1d4e30fa9e",
-- "74d978e8d6a9ce6def9aa3",
-- "308787b80145ee403c389d",
-- "36121cc69943c0f23f8a85",
-- "6d5d0573b2f9596b50b73b",
-- "5eb9037bc76a6930985737",
-- "2c9401cd53725f84e2c421",
-- "8c59c1948361c413eed8f",
-- "1439532a6d3fdff49361fa",
-- "42d71e3ed0639f1b07231a",
-- "29785bd232aa4bcde009aa",
-- "494c96ddeebc9c314fa5db",
-- "2e1d98165a5897b1482cbe",
-- "7a4b513ca25dc5d887768d",
-- "5197b486ae5dad9284702a",
-- "1d4d18f2bee14ee417596c",
-- "1b8c24041b5c09c2ff1c0f",
-- "19e87845fee8ee9d86794a",
-- "dcb3217133998c35879b7",
-- "61c60fa253a8977e213d6c",
-- "3df3e3ff8b5241f9f120b6",
-- "7e880bc1729d1783a14627",
-- "7ef05035c2a08e050870e7",
-- "3c234bbaf5da9465f9498e",
-- "39fc8d30c95dd0494e9be3",
-- "75b29426909e9c8294f365",
-- "68ab0ae55863c4f8044101",
-- "1a01c5dd382ca52c0f8a1a",
-- "7eaf3d6220ab7c049341fb",
-- "e966e5d5e80ac9dc377a2",
-- "38aece2fe0c1923c569603",
-- "296401a6101dec9b48a81a",
-- "a5385b7f7d2a505f37187",
-- "1c0a01fb60b92af636be29",
-- "546f06ab10360a76005c9e",
-- "463e980411d809a1713383",
-- "6247c20f5e97453bb71b09",
-- "7ed8ee73ca5507f25bd5aa",
-- "5f9fe5fab5062ae9d40550",
-- "d7315bcace04536b59c5c",
-- "700ac125ecd365c309339c",
-- "792ab4b2a318b2229df59",
-- "6e8a28f3d3f87aa2548dbc",
-- "53034f778656513538ce93",
-- "71310c65e10b4b2e1f3924",
-- "fca82540d3cb37cfe38de",
-- "324b0e59fd313b7b066991",
-- "ca5fc0de7c8f0742fa11a",
-- "436134e757c46fe077e8fd",
-- "3382f247e6cbcf48a8be0c",
-- "5714f7d7bb3f12d88adae1",
-- "75c3040748861ea4157368",
-- "1db2b63fb5b72bd2913b9b",
-- "5de44a501f899626f11ecb",
-- "4a728ba1f43b41e3c8ba7b",
-- "631d5fa433132c920e949d",
-- "49dd9e128368a6e8f31565",
-- "5f091c9040f8e8b4af8c6a",
-- "6dbec10ac45803905232cc",
-- "422c99318e0e012bdf3cdb",
-- "7499dfe49d22092ecbaacd",
-- "4e9b8b836aefbcc76074a3",
-- "23591be47ead61c7626094",
-- "47cb5e48534f0fa269ac37",
-- "45d0bbd0c4c565d517f4d9",
-- "58f251e3a335055f8d1702",
-- "e16e90086dfb42533696c",
-- "32bc07a00fc1c32e790cff",
-- "55d4eceed6862d8b7edf73",
-- "3bd14b5c954fd788df3e2f",
-- "32267a0d010a3ac60d956b",
-- "2dd9e647cd7caac396218d",
-- "786bd6b0d956c71e3d0c41",
-- "5a2e3e7ac883c32720fb5f",
-- "41824effd56ee95a25ffcf",
-- "df5585842155fda65c5ad",
-- "f0daaf67c2422477284d4",
-- "285121b3579e1afaecea17",
-- "2d0786ef10819221e8e925",
-- "638a87cbb628cc2744b5a",
-- "2e795b59317cae4c039946",
-- "6df756715e22975feac139",
-- "4299b7c55998b524a2963e",
-- "d73559f9e34900d6994e0",
-- "4356f96a535f02cd557790",
-- "671133a56bfab71842e1aa",
-- "73475afc8917dfb47ca158",
-- "8cecd81b395199379b860",
-- "6908cd3a0537e6d9de224b",
-- "6c4e919619ba3e8fcc083f",
-- "765220bfddbe009c12884",
-- "696a995b7f1bd2337f9c55",
-- "7a35b4347e2b2fcfef4e8a",
-- "7715808f58e52b93fbd9f4",
-- "35984ab233bfbbdc2149d0",
-- "49f6551bb5a630f7f3a91",
-- "260202888a368af1bf27f0",
-- "28c70cf1a34bf4b12fc1a1",
-- "74a3895c1173d1100e060",
-- "500de5789e46431a14b08d",
-- "e50ab5db695f894b26597",
-- "6e0d3cb0378f9f523dd7ca",
-- "3b890cc2ea1882c16138ef",
-- "623f56668cc8a093bdba7e",
-- "2311c97b29ff503887b251",
-- "5f019291ccdeabcd687ce5",
-- "6467af1a0f07013b2e9849",
-- "14a9e816ead24aab2e6645",
-- "6bbcfc26c4e8fa7b836095",
-- "775ff949792463791cf8ab",
-- "62658893411360a21b6bfa",
-- "2fc0729bbc7485664f21f9",
-- "784f7b46f80b03fd06242c",
-- "7215cad82f761314bbdd1e",
-- "475c6525a253fe4a455211",
-- "3301553132b8af815a8ed7",
-- "40066cef89d0c82982356c",
-- "36d97c131b997ecd7866ef",
-- "583e484be506b8efea96b4",
-- "4656a2b830782828314373",
-- "374bc74be1e4381a79910f",
-- "4f459e6fecc9cadb8e977",
-- "2a843c02b5e59799422e65",
-- "3910da787142c54f4f9b2f",
-- "ffbb4d4d7cd961d36be9b",
-- "38dd92596a9fd54920876d",
-- "6bd057cf4845772f81f71e",
-- "4fe62d365b58ffaa0d2201",
-- "1429ba4cc3fbeac84cae7b",
-- "403c1a7f2d528ab5d343b9",
-- "2175a06a641d5e8ad33646",
-- "25d324d633986f4baae0fd",
-- "63d746c096cfab5f984c70",
-- "5bd335a49bc5a06867e5e1",
-- "375f02bea7dda994d93044",
-- "4f754c5d3b280b20bc95d0",
-- "3a997ef0ad242391b526f9",
-- "2c30e99c7b2606982311b7",
-- "4d562b2b0bde307c0edc87",
-- "b4aa58f86a462da2ed07",
-- "ddd508394009eefde3ac7",
-- "e73b5b515611f25e496d1",
-- "e4ce3641fd893553aeebb",
-- "32765eba5563b5336b4375",
-- "594ab65a623ca11a1d847f",
-- "7a6cf71a247a9aa2ad1f3d",
-- "509c14f0517edd55968bc1",
-- "3cb90317e0fd78744bd72b",
-- "45f39b8c67c74dfb911f44",
-- "476085adcac943f7253ad3",
-- "658a9098281c199cd165fd",
-- "cd47f8baa501aac7b0989",
-- "3de183e6b991f7b8085160",
-- "a5582fe7b241700d09fbc",
-- "68719eec758c692aaaddb3",
-- "7d5f8fcc1cf99dc3131c84",
-- "5a2d6c9f89fb24cf28d1b3",
-- "7e1946c78347049b735318",
-- "2db5ff229cb2d0a85b8393",
-- "6f9024d8cdd8d69ef10bf7",
-- "38102211c805f10960d5ba",
-- "55e838d685f75c7c6b5f20",
-- "339fe9b069fdcbe6f3e985",
-- "1a939b8af79d6b9d1e57e0",
-- "2b1a4dba7447b02833bcc5",
-- "6a5c41dd17f1f090be79f9",
-- "6ad4c1af807487676eed8c",
-- "6f33938b3b060336c57082",
-- "1e7a055357b6580f4a7b9",
-- "1d51d9201dd8c5066bb7d1",
-- "daa197fa1e9b3068f7333",
-- "364b7fe165d59b5d916e2f",
-- "4026f1042b0f5b1e940a78",
-- "3501255a6a3473cf6ac042",
-- "73a88b6c78ebe25a0f02da",
-- "645d789e2ca881eb3474c9",
-- "6f59efef27dbd92df6f652",
-- "32dc0a137f654afa8bd8fc",
-- "4e162f9f85bd081abd7380",
-- "48ef84f7c351ecdc951b2d",
-- "69150cde40be119caa92bb",
-- "3b409dc537f82b36a0b80a",
-- "748df460f8594e0bf1ab20",
-- "178fa57d907fddb0fe3cca",
-- "6747e95b215a546a339b7",
-- "55247bc5a72b8d3e89234b",
-- "683a5c6214b92efde4aafb",
-- "f36396be6cc745bba9473",
-- "77a73ba77b4ed622a17e87",
-- "2c250894e17e7f4b0dd",
-- "24af65fef90e2f99e03cae",
-- "3292c0c9fda6887e4ad161",
-- "304cc216ed2272d07c7f80",
-- "5488a723f6ba5cf9800543",
-- "47d8e4eb9811f9d409ea40",
-- "7e2be12d72782db9e725dd",
-- "247f391e5a3b234cf19ccc",
-- "29f1e17550354ceae49f99",
-- "4edfb060e1dacbd449d726",
-- "4a29c3e62c947a4a1e99b9",
-- "4755035ba4d9924118903c",
-- "3d946cf498fbed2d965f70",
-- "260d3af59b4f3d5c208bbf",
-- "34b484cdb4cebe6aff839",
-- "7b5ec7e3346c3cb243b356",
-- "6b25a8073bc36b2af4c2b1",
-- "3665e544d5ec7ed8868a1b",
-- "1ccb03c008f2e822848880",
-- "18e83fe885c9bab518bb97",
-- "42e88e9f66659afa2a393",
-- "5533d7d78826353c79c73e",
-- "674fde01f6057423c31a9a",
-- "3a9c7a7d5782f84fd4620f",
-- "19b52abcac8b60d5349efc",
-- "23ac86fba80f09945d51d2",
-- "61249154ca21ee2b75deb1",
-- "473c4bff7362fbbd2049ff",
-- "923121ae3af782c934df4",
-- "66fecdf77d13ff6c0b25a4",
-- "170a54e825e33a2265d3cb",
-- "31be6678e513813e0e676c",
-- "7972b4774882051f2d85a4",
-- "75b09479e265b9f0ac9a5b",
-- "708324dd5e787ea3d43a21",
-- "4c67268f528ba7e8c34a0",
-- "51f9e6d75a3c5264312643",
-- "24183bf26908368eb41547",
-- "5e7785eebda5c8e2f0247b",
-- "5338be8d9f87d3f2e46b2e",
-- "14bde3f9984cc98dc83f60",
-- "62870c281778214067b40e",
-- "62e9a332653e1b103db5cf",
-- "69c96f5702ae4eecc6f341",
-- "3e6265ca213c1a0be64512",
-- "5ea38165e28694c8629ccb",
-- "2be59650bf9aa57c249937",
-- "40678fa2d309cb9417f68f",
-- "3459971422155f9703c78c",
-- "5552617d9eaca45155f490",
-- "18991d6f38c445ab4b38f1",
-- "1aee70e483c99574480349",
-- "277575523998439f834d3",
-- "692752e677cdaba7d636c2",
-- "298af75c2d584b01ccc6a6",
-- "4d7d33eaba361883277544",
-- "282f326b1fcbfb463ba836",
-- "6b0dc0d5521d21af0ccaf4",
-- "57f40a819546afc89fc2ce",
-- "6a24f8897d3040e8fb1da8",
-- "51e8f647af3880d2b77ccd",
-- "4b223517b6c7cd85cb43d1",
-- "745ca85c76435eb7ba81ad",
-- "743eb61998341a5e892884",
-- "5afcdfdab7a5b6864efc6d",
-- "39824b01dda7b8ada90cc2",
-- "2beed154412bd52cf1c83c",
-- "6b497ffe240d0867d5d7ef",
-- "eb947683c26db8dac2f36",
-- "15891c14bba25257cb14ef",
-- "4f540ba10fdacad19fee6f",
-- "5097857cdd82d2df144dda",
-- "6799fa1f9cffb381bd6c8c",
-- "5e45b3a532e82a603df12b",
-- "53528c9bfa6f5405d66497",
-- "2248d63b93978222916f1b",
-- "c98c97ab7b4b0cb756894",
-- "57d57f4721fb6be3b38e99",
-- "7b4ac8e7f9ffbf17f0627f",
-- "22af1fffca9aa4b2ba234a",
-- "2b913687a118d5d595277b",
-- "3cd72e80ffad615f09526a",
-- "e050d10f9ab1681fbdc06",
-- "36c8b1aaf274cca356ae2f",
-- "3d88de9f1c15bfd7b6363b",
-- "73e027017f2dbdbc204a16",
-- "6ee2946ba009641ad73037",
-- "522de20b2431d6ac8f42fb",
-- "427af6fbf5578c6104b255",
-- "172bc617da9e1aa348e114",
-- "1a5e08fda45015af7feba5",
-- "208fb7a4ffec7d8d1e5be6",
-- "3712172b56577089f4c773",
-- "621bfd4a39ee713781e554",
-- "2f0c8ecc959b7521936666",
-- "682583fe078ff76c962922",
-- "509b53b07e607cbcf6e79b",
-- "1b71574f7c567d707d0e82",
-- "572930c1df7ba238dfc9cd",
-- "2029341ddfdbd9f668612",
-- "1a54e98271fd5720e1bc63",
-- "62f83959d672cbfe7201a",
-- "2abf897aba93d347d6e2db",
-- "3ecd876c819b78567f7fa4",
-- "69714524521e343bc3692d",
-- "290cc13b5edc05d863546",
-- "26436c96779bbae9c15fae",
-- "32e5746a212d6238682c00",
-- "5e4b991cdcf27f65105596",
-- "4a05e03567ac78048832e8",
-- "658769c97f8b8945ac2878",
-- "4eea383bfa391bcb14540",
-- "4871087f3b2cd3c0f24c3e",
-- "5c20428f433fbf0c9ab374",
-- "15aba357d612d87099180d",
-- "73f933fe401d564be0efd3",
-- "6d925493d403647cc0a7ba",
-- "6a40f14b7a50eeca571bae",
-- "446d6309025414bad0aee1",
-- "6e388c53aaae7d287eebd5",
-- "3bb5af245e5d40c6fc15e3",
-- "66895605da5092de3d2b87",
-- "50774e378282fd09459eb4",
-- "5abf04c6f95d64b6c414",
-- "54dcbbc689dad12df77730",
-- "226c7c98f219b40ea94b66",
-- "6abf077f6636ceee313734",
-- "53cc3acdd810a96c3160cb",
-- "59b759ca3a67e4725b5f84",
-- "48e1272ba911cad7536a1",
-- "1d3c95c9d8462d4c467220",
-- "4167a3ca5253556f128ea6",
-- "bfe2f259223ccddac13b3",
-- "bf09d6ff46adc21d04951",
-- "4555d38c19f123cccb6fb4",
-- "4a5333a5e1c04b8bdfa257",
-- "627a4795d0c0df1d84d13a",
-- "122225a7053b175027361a",
-- "5027d58d8950e307548d14",
-- "76c881f1a372f21e829095",
-- "7f8ad9957e40808881a192",
-- "621edd8ea6ff7136526540",
-- "64adff5211c520e76cfa93",
-- "7b274f32f2cbfe03031cb0",
-- "3c71a5e6f6b431bc524a53",
-- "10cc655b268878a4e8e081",
-- "56853e4d2e614e1924d27a",
-- "1c72fdd679cfcd10e369be",
-- "1a364185d640ba1a6ed583",
-- "230c19482c2fdfccb6b94",
-- "1a9a55461554e908c4fbf0",
-- "48b5f18a43890f525b850c",
-- "779b65c66a52eeb45328d2",
-- "3a0a69f5624f959d85e411",
-- "498cac7e3100df5899cd16",
-- "6be91a7f057434bdea3953",
-- "1b0ff68c5f14ee84b37e7f",
-- "af86674d8a1c364331ef3",
-- "4fadec3b4cf5617426ac33",
-- "5cc79f5d12d2a991f4ebd0",
-- "5ca7f66678a73081bd34e5",
-- "5efd2121bfee3a30184816",
-- "6b79ef63bb66f1362d8de",
-- "3c4dc48e3cdfd4ce2eefe9",
-- "1c9f92bdf4717c6880a9ba",
-- "168c6919206ac6ace0f625",
-- "27e147bc2366e607ad99bd",
-- "44678fb0d784f11b21a657",
-- "47792007d733892284fb9b",
-- "636079478bd1eb493d0866",
-- "7450197e181adf8c4f92cf",
-- "65a7ac7cbfcc2f6c41c2ac",
-- "c92faa8d02b107a1b5d50",
-- "1ee8fffd33bf6223d36b95",
-- "203c3b480852a2154fd642",
-- "7ba683eab937665ca29978",
-- "1998245099906d42a62588",
-- "75d1f80628c3a1c1082c91",
-- "1c6bd00355516b7177a93d",
-- "795824804b82c5e751df2b",
-- "2746a28b14b19ab8d24145",
-- "75b3fbba0880cedfe12ea",
-- "dfc33dec9862e861d43cc",
-- "5d77b3e7e323ddd35a71a5",
-- "7438dcc1d87bfc73ab26",
-- "755d342969e9fcde9fd595",
-- "7bca9525e525d6ded2c76f",
-- "d08254f4d2d5ca1a5b877",
-- "4d1a97d405c026a8a5aed6",
-- "825e4a5dedb493626e7ba",
-- "26c3f6eae80009e6946697",
-- "59b1b4d92c6ee6432bf67c",
-- "705cc0331aa0195cd9f6ec",
-- "6d83e6632fcdd8cf940ffe",
-- "69699a76b55d4ca99064a0",
-- "76201a82e565cd9ac092ed",
-- "49b08f20244bc64879adcb",
-- "2b04a0e7492ffe108c1c00",
-- "4de1c0244f476f355a3a91",
-- "1bacdadb366134c3d1a5c0",
-- "755b7f3a3389c861fb2d23",
-- "153d48f10507702bdbbfbd",
-- "17ef22a6ba1fe32d3ef7c0",
-- "6f55491282e49ce5634ba6",
-- "66ac85711d7e32d731c773",
-- "7a45d57fdc1a44af5791fe",
-- "1b931cd6241fc4f484ed23",
-- "30ffdb4a4aa7f26e29fcc9",
-- "54b4dc744541c38f937102",
-- "4413cfa8b5666fc0af877a",
-- "5b18e3d2fe16a9d973b934",
-- "173b57e939be4a4efef880",
-- "102e8f3d54ced5e10227ed",
-- "79b27c762372e476f703f7",
-- "37f81f265c72ca7279eb3c",
-- "6b11c6506832a5a8571e85",
-- "5b68ba6c572a6576af79a8",
-- "26580ddf1efe9fe3eae4e0",
-- "3c015f30d95c1da9c47adc",
-- "54c37f5e810a7c49e7a02d",
-- "3b8be315926a14f8200fe4",
-- "5334ba131913654474693a",
-- "245f14c58fc2f1bd38bf6d",
-- "3ff0891da2c6d0cb8ab6f0",
-- "3e61864fd19f85bd211f70",
-- "493f40656c80193590d2f4",
-- "5dbb4f6414155050573b80",
-- "6afe8bc3bb8509aff3c666",
-- "586e1bd3806f5472b98045",
-- "6afc9a3033b5fed5a0c3ee",
-- "7969c90c819c5b0080834",
-- "5ee2324ad6594548cd275b",
-- "5c6cf60aae0cfc30048ec1",
-- "40e1957b3947c90dc23e89",
-- "5846b0049ea6f32f4b2762",
-- "1e5217185f433bf1233d59",
-- "af0b8a8f75ec961c833db",
-- "4f4128c0856b216db55c75",
-- "41d953d4dc4746ec83a1f0",
-- "3d55ef23d8c9f8419ff28f",
-- "1a5f34cedfae0cde5ea0a4",
-- "6517d2ae1b7ba4107ba2ed",
-- "4839ff83b5f2ddc41b61ee",
-- "30ebf17f92538a33a005c5",
-- "7530bbdc505d301ed9040",
-- "46ea2e85d6ca1966d1ada4",
-- "78022742d8c1b58e95d935",
-- "6a25d7d313e7a656aee548",
-- "a2c3a3cc1a5dfdc5a02b7",
-- "2e76f32ec68bf11c44acc8",
-- "54aeb8675aac1a423a7140",
-- "dd0623ecc7bb862ebbbac",
-- "61d42c0be51a3d664c8df2",
-- "254a37a2b407cabbf8069f",
-- "687346ea28caf1c87376ab",
-- "67b1ce8dfe00f53da9491b",
-- "488aa158d747df0f5cd422",
-- "21eb89d73161656b740b6c",
-- "686f17e02f2d49c0e2e48",
-- "dad2db631732b0506f6b1",
-- "72e9a5baa06d4af7c9f9da",
-- "1cab579a1f775fb778d900",
-- "3c3d137503578a98196d6d",
-- "2a8bb0c8c3747adf31dc91",
-- "1cf9608a937eea1a0bb3af",
-- "40a3f5ad2d4a9b33e2f67f",
-- "147d7e964c45ec443a24fc",
-- "7b9587337c3feffe6974d6",
-- "5839527a17db25de563064",
-- "1160b80ff627f607bda927",
-- "5aaca79690a162240db985",
-- "c75433d8b0423b552102a",
-- "f46157d09593fd6ceaef5",
-- "20db18e6c822f683f97989",
-- "3e1e43759c2fbd4596b36a",
-- "125d9103db1d2a83e13f71",
-- "28a2b96944f1b1210e6bbb",
-- "33fd72210da605d38ab799",
-- "4cada2a5056e025832015c",
-- "365c9be3e9c7dcc814388a",
-- "9f4b0dce97935ef1d9158",
-- "2b8d9b2da99a690e7c44a7",
-- "fc59307a819ae8b7a3f67",
-- "567dff5f6f64aa1697fa0f",
-- "23343ed75a8de5a22fac16",
-- "4c2a57eb3ff167fa077ee2",
-- "7a2990f262218cc62c32dd",
-- "210cf16be9c62f7408e63d",
-- "49c59a03a60b57e7bac289",
-- "499ab94c7bb40ba492d85c",
-- "67437e976a93329c5b9760",
-- "77c405c1030a468f5abe34",
-- "34363c8e2f82b5fdad8c66",
-- "39c91d6ca89a6fa52b3be6",
-- "7b2f70ff56626a3003c33d",
-- "416b4cd1af257e44ad03fe",
-- "375ec3fc3fce6eb8e8ee9d",
-- "4fe741cddc07d380fb6143",
-- "67adab05fa921650ed942f",
-- "601f96473a856041a89ff8",
-- "13fc0f6b201b7368c44178",
-- "6f79151ea6cbf1bbe85f5d",
-- "5dd15f8501fbd308a231a2",
-- "8ab595a01941ab4070b39",
-- "6ad236039c2c3e149bcca2",
-- "40c514f5e20e67263ea899",
-- "10b3ac9e35f753e3c9deb",
-- "2d816960b0911019df6133",
-- "14efaca65e59726b81dbf0",
-- "7d98b2bd2e9168b6d2e72f",
-- "49639d01a55025d5b2f6ef",
-- "2e1479f3781e1a48fc49de",
-- "7d60cbfdcc63ced7661d40",
-- "3ec0da959b014a91e3d171",
-- "6e1573decbd31bd14c0615",
-- "2ae83fe35c42b256590f54",
-- "22d68d4ed1af18d8658de4",
-- "3153805f294e973c493b1e",
-- "23270a061497f9098a49ee",
-- "3ed51ed7c85d68db84d78a",
-- "788f47c4aa1ecb9b01c1a7",
-- "9dfe0a1feefabb0c62643",
-- "7376e75fa605889898fa7a",
-- "578a6c67a3dea7609537e0",
-- "146dc1fd204e259d148dfd",
-- "59ff3fb267f4dcf86fd4df",
-- "5a081e53f2beac49d1a3e5",
-- "37bd7e26cf4711cd149911",
-- "47d814d93ff8dca3c1398b",
-- "132d2eb133a0383d464ad2",
-- "30f7be09c5f39b5532dcd3",
-- "83b4a6c139b7fda28fc0b",
-- "77e2377901111b6ba92316",
-- "7add5048bc0984c36294e1",
-- "2afa4dd2f2245b7525fdf6",
-- "50c4c9d0b48bd147d875cd",
-- "6387ce1a213d98335598c0",
-- "52253824741dd177a674a9",
-- "3195d14bda042e7057d34f",
-- "6b849a1f17d635cf0a773f",
-- "7c9cfb41c0f888d000fc52",
-- "7dea2305f898b6d88f6821",
-- "43d0ab106641bd01d72cd4",
-- "1d5fe04c71a377f6784338",
-- "207b51e97aba651825b40f",
-- "41327dfa41486f6b995572",
-- "245cbb0117ba8963db7929",
-- "4956d4cfa3dee8e23259eb",
-- "49af3dd263ef8ddc7b0303",
-- "76dda8edbfa5a4265a1a74",
-- "26b516b52794658e68ab5a",
-- "260f0ab9a00e1e941e404f",
-- "3395f092181af53bb73f3e",
-- "17a50483229662a578fdf3",
-- "30e3bf91dbc04d50a032bf",
-- "525362bcc006730db95180",
-- "6e988e80d2c29dc7542de4",
-- "47efed21b3657d0618e28f",
-- "fb85baef473def8948133",
-- "67afcc19d0bb557a608666",
-- "3e1ecaa8d0631877bfedb9",
-- "38a68ae5efe6ac22d3f278",
-- "4b2a621bcd3f244dbd1aa6",
-- "2432bbe72c83689ef74c85",
-- "1aba34eed15b418d4b7f0a",
-- "2d2efb8be305a05b685aa3",
-- "cdd3df5aba4c7ba52b4cd",
-- "7c38756fdad7c18ef7576",
-- "437e569a7451bd9bbbce87",
-- "614a9023303ed4dd2cdfb9",
-- "43c088f2eb74b96d25a4a8",
-- "308a1daa2779a84d4db8ac",
-- "59f29456bbb20b47aa046f",
-- "4b0f09e29272f9d49c6266",
-- "b03e402e64c3436818402",
-- "40f2e74e1048db76b72516",
-- "1a484afbb93898190d8d03",
-- "6edb305f1f8f30902439c9",
-- "7fd2ed81931942f0ef8d50",
-- "402466331777b126e4d8e2",
-- "52d5ea798306c9e21853b2",
-- "765c653014c5e4b3dc3865",
-- "785211217f5fa1bf82b193",
-- "3bcee7bc9a5ca7219edfaa",
-- "61b023abdf63ddd6300036",
-- "2f305b730466b54d50855e",
-- "60b46e71f1f2b8376d5d29",
-- "745cc1be634380e90bc82",
-- "208b7d3e85a97a99407a38",
-- "1000ca68b2a0f4790d5b97",
-- "2ef94456619d9728490c1d",
-- "18347f5ec924cf4631f292",
-- "26b5c49d8c4e12d4b3d157",
-- "15e2aab3b7b69272b3c155",
-- "76272e758d9f83ceea908b",
-- "fb87766da12e75782ca77",
-- "57caf75d12ec817c6cddfa",
-- "1a04ba76b7855a5e9c289a",
-- "7e5eb2a4ef3434465acdeb",
-- "35b964532350abcbf76d9f",
-- "3f14484539a427ea73a1b8",
-- "4d10e4408b3b6761aa225",
-- "235ae37d20b21074f27732",
-- "44dd12bd0d7f960d6bd7f6",
-- "196185d708583cfba757f7",
-- "5f8e36ec1202b0292d5945",
-- "47d7208165498ac04fc240",
-- "332ea59945a5d0e73f7dc5",
-- "653694fe66c257988cd02a",
-- "3069cb41e51edac9ec2b3f",
-- "17e032019f0dc1c4277c0b",
-- "52a44d4aac2b12a44786a4",
-- "33bbdb9fd9d9e6cda126be",
-- "520cfdeb5b65ce3df47f12",
-- "3746df2dcaeb2f941850af",
-- "34b380f57ddac800a53234",
-- "7116294960ec1370cfa192",
-- "6c02da94ff6269ebf8b68",
-- "528f06b90d6ea98654eb1b",
-- "643b1783eeff5d2d9d100e",
-- "14e34536d861554652fc3d",
-- "28da7bd48db9e867715c64",
-- "7b233911df67c0ffe75298",
-- "282425a374dcf57904fcaa",
-- "7f873bc8523c4931739324",
-- "5f1584cca489de9bdcd65b",
-- "6862becb8f668738ac092f",
-- "495ccc90a936edcdb3b175",
-- "71dbc0d71fbcfcf1245bc2",
-- "5298718820a8e285437a64",
-- "2a9957bb174e3a8d1169ef",
-- "58dbbd6f088b5ff881356c",
-- "67ed429f48df076df817f4",
-- "ba3b72d702ce311cc02a",
-- "6415a8a79aa0ebffb6a24d",
-- "5b6485b2f7f41f0abf3544",
-- "edea2902a199d26d75bdd",
-- "97bac956d2b65a51260e7",
-- "b2c65762784255bbebc75",
-- "41b1881d9704918a051695",
-- "3939cec4c6eb132c9146a8",
-- "4e4622894612a0772ab9f8",
-- "398cbdee468f0759c375a1",
-- "592a4efec7cf89e527fdb",
-- "79ea859ae0d9bf58c8e071",
-- "4786c255855f792a20f869",
-- "272821f07dab57e4aaf0a7",
-- "25e016000255df0b5c8153",
-- "17040e8c8be515e4ea36e",
-- "341181b7d4d6f4e2cf9643",
-- "73f8a019ddb59d3f06f049",
-- "cbf28251298433a3abc70",
-- "51edf68dda1a87c4b3af7e",
-- "2e78ee01fc4dbe304eaea1",
-- "36a98de095d312e040c903",
-- "1c94ea576c3cfe00e40a0c",
-- "2969569df7efe8c61bb461",
-- "2b036df33feda1ac5edb68",
-- "3d1dbd13d46aa7f5e4c42",
-- "32f17d420cb00b34cd9fc3",
-- "79a8e47a4d897cf6b712f",
-- "6be705331dd40db5a995b0",
-- "797e5770501b190fa5f6f1",
-- "21d9c50ac15f9a1fc38df4",
-- "639eb30656278296f2b3e0",
-- "4b90d5d4f791e4cafea283",
-- "7b4912ce2f8ea6ad90baf0",
-- "185c0df44a167fc9bfe948",
-- "4c622bd5bd26bcbd487c68",
-- "7c4aa256f5265e9d49e8ab",
-- "63f8378a4c563212109ee4",
-- "4ca98168d36f8ab3815a02",
-- "411a5d336f1cca7988f319",
-- "34c572dd024d37c54c5648",
-- "249469414e604f245a56ca",
-- "2e9650e328b679ea03af31",
-- "db07432bf40360e3df399",
-- "2e9fc43379988881a1b064",
-- "752129c2d07a536bf3bb8",
-- "c79d219ef793e02a9f989",
-- "210441f8cc9b531f88fd3a",
-- "6bb593df2f572a23254ed6",
-- "55152f253ffb05575c981d",
-- "40734a14dd653457e54b74",
-- "7fcb3af03a778d48d5ac9b",
-- "43e02a2659ddc4d3204fd7",
-- "2ab0a302ecc453de7fdbe4",
-- "2a68ad26b94fd25b4509aa",
-- "46afa6e418c9bd4065cd9d",
-- "517123f4920304dc75317a",
-- "33c3a8fe7d6e90cd610695",
-- "1a30afeb54dea502f0310a",
-- "2b5280596202f4b3ee0814",
-- "70b50a59ebc270bb237505",
-- "65f71d8c8e62cbeef07daf",
-- "197461e90c6b70a7dda46d",
-- "4053f687fd270a04d092a9",
-- "43d235cd54423fd6135def",
-- "ac0f86afb7bbca8d57c4f",
-- "1dd4abfd6c4ed8a3ad6bbb",
-- "25d3735a734b777dd960b8",
-- "56a6cdbd81ef505320e706",
-- "3c1c9492a56c8c78536095",
-- "31ee9d29cb2f2a7eeddbc0",
-- "666ea50157a2d8307a0ef8",
-- "1472017c713a1063411e0",
-- "53e73a626a5de69e43d0e0",
-- "dcc0bec90c531be4924ef",
-- "6bd3a60ce037d04a7d822c",
-- "3ad7e93e4ab55d402a33ea",
-- "10db0037fd5f7d8c49aee6",
-- "4d29703647563e84d6ac7f",
-- "2555442bf058722bf0120c",
-- "2e274c1905f505ef9d43c1",
-- "46b0509f9638e9030f5895",
-- "4082d11934cd3944191e6d",
-- "3cab0ae1036c6d43311ae4",
-- "218c9ea39a51618b1ce10e",
-- "9e1bd1e36f73d0f69f697",
-- "5a20607ce9679fb1f266e5",
-- "4ae24f235a28b7f71492ce",
-- "7510db776aba775075e549",
-- "5695db84b4c92a3d6677b2",
-- "74e01ea265377cb713e57a",
-- "768cbd11024387469f6ee1",
-- "61b85bccf0f4316c2cec04",
-- "aeeaf98aedc83e6ae6cc5",
-- "4e175c68ed04c585f606f8",
-- "1ee9410958604d03f20f1f",
-- "127b65c61b8c8f1b9456ee",
-- "3d57e0a1ef4abcae8719be",
-- "688ea19369341f6943063f",
-- "1f91eb155829f1481d6da7",
-- "4f34769ad379d64a27233e",
-- "59daf69acb0d30ef2fc5db",
-- "1efc90353d647b1a3dfd54",
-- "39965be2b1bbb3ed832fdd",
-- "7fd47e391981aa515116c7",
-- "5ca9b2680bb84ff6e98b33",
-- "36b7f85db80800549459bd",
-- "16d114b00964bdc8e2e82a",
-- "7c1256dceb40e2f63ca4f9",
-- "5b4dd88e0cfc108bdc7320",
-- "239e94f2e5843a6e20f1bb",
-- "3552a76787de4570d42693",
-- "6f2f55effdb76df46b548a",
-- "6152765b747658a14d5829",
-- "1778273a04ac508e342b",
-- "75471e22b2d84fd2fe01b9",
-- "5d6bf6a59488555bf1342a",
-- "160134aa459258ff8f6285",
-- "17e8af02e79e7f8d2cdf99",
-- "4f5e7f770a4d50c69c4028",
-- "51fc2c3f86b8fc46a7a221",
-- "70d95d23dca53184d30b4b",
-- "4a9b685698a7674338b188",
-- "4d7940ea6bfaa7b282a985",
-- "39baaf1f520d96bfc8c1df",
-- "409fc384bef4b3d255371f",
-- "3bac7e0675e0a9967ff7da",
-- "5c1544633a0bf7939343d0",
-- "39d71478d3005e797c6913",
-- "153884834dca9aae7d5d2d",
-- "630270f2ed4331deaf63f0",
-- "46323a1998a54f7e0819f6",
-- "61c87048ea8325590bc5b1",
-- "1960b3a13c6cb6acb7f489",
-- "3956e2767e97b7703253b0",
-- "1b5226354071022a104a86",
-- "3a7ecceb35e2e9a438dbd5",
-- "10c81c57aed768b3285598",
-- "bd499ce82d93c07477fc",
-- "67e11e83cb547515b53701",
-- "171757e72adb6abd8f440b",
-- "590056c647987959065bd",
-- "4e27f64f8732105513ad9b",
-- "de9896eb70f1668b87fc",
-- "457dc9644e5b25ae6c4291",
-- "5a6df4a369ed81627d4fa3",
-- "568fd03e0a80223cd1669a",
-- "1e92415029559dc3ed8283",
-- "1cb2dabf0298f57d15e65c",
-- "426541c137d269fd2e2296",
-- "19a439abdf3f4f5eb63683",
-- "482af287c71050fd03632a",
-- "47a080b7584194b936f712",
-- "20d4366552d0d83219fa0d",
-- "4494bc9e65c8cf2a6ea51d",
-- "2148939cfe2757b6666fc2",
-- "476ef278c257202dd01711",
-- "3eaa7351a72b065707e47a",
-- "2703e4a7969073dd381cbd",
-- "1badf1b7dc0b73e0bf8b67",
-- "47d847bd96fbfc9c221fd4",
-- "13637e15b786797995ba49",
-- "5e842bbb537167f75451a7",
-- "3b228f46cdc0e8a979b45e",
-- "2fdd94b55dd5fb9a3915f5",
-- "1cca04897dbffe7f26f2ec",
-- "67a8cdbece1aca4e55ba72",
-- "47ba42dd06a62256ee8c8b",
-- "3288681f4d08858009187c",
-- "69412d8563ffa7e83b0ef0",
-- "240e2e38e41f3b6530a267",
-- "12e92ef014e8d7fbb8d23e",
-- "45440750f90776251263b4",
-- "3a8965cf80aa6c4410dfab",
-- "559bf101b9cff724b929cd",
-- "280f08134d28252bd0b713"
--};
-+static const char* Roots[] = { "1",
-+ "5569560418e73ff9db709",
-+ "5bf795c6d548a19b6ac340",
-+ "760df490123f6613b0a970",
-+ "7cec29d14a0eefb222bde7",
-+ "3c70a3f0e9c5b206031a33",
-+ "1cec8c96472b84936bbc22",
-+ "3315173915ca23d8c1b814",
-+ "39a0c4e1da321f1bc126f4",
-+ "760f3656c1130b21d369d9",
-+ "452231c3bcde7b7b5b0af8",
-+ "6fe27c77d57e2feb8cbcbf",
-+ "3a7a488015e75feec809f8",
-+ "c16d15fea9d61c8df5121",
-+ "5a8a9b5c659b71e837ea18",
-+ "506d84c9f4d4bc400fdd25",
-+ "4d7566cd294f75be6620f3",
-+ "5f80095f2580ec4cf13b51",
-+ "34eea7a66e8ff3dcc8988e",
-+ "899b1ac6f72ffff8aedfc",
-+ "3cb5a124ce563c3967dbc3",
-+ "16d5205447831696c5d6a0",
-+ "414e761d40341e7f97c304",
-+ "498104aa12355244a9b0d6",
-+ "3a8c5a9525f5d62cea294d",
-+ "1c90fea5f39d8ac4dfc2a3",
-+ "6a716dae106b9aeff2133e",
-+ "735cfad9acf49090fb7037",
-+ "5f4e7c70ff55ff2f888f05",
-+ "2f39a2788d5c2a24e16acc",
-+ "38d9d05f9463a537f470b2",
-+ "72b5d8f8e65cb7509a93d8",
-+ "75066462fdbbc7301e209b",
-+ "55afbc51e7c2cc748942ac",
-+ "47a1f466100bf70dd5689",
-+ "57d88b5e0b434eb1a0dc08",
-+ "27ec8c6636679988dd1267",
-+ "4818e9ef0ea7625cfc3d0",
-+ "68fa3ecc3845db5d523ad9",
-+ "4c95bed884bd87ec1d5e70",
-+ "7136b3dd116ed121aab68",
-+ "60617400353c1eb8e8832b",
-+ "19772e34181f57b670bf9",
-+ "2f58f2df794a35875efc99",
-+ "690aa96130f8c533d77ce4",
-+ "df261ad3b5157a525bb81",
-+ "6a437e22c95fc6c6a4449d",
-+ "1cc2526113f2bae9b540c1",
-+ "7fc2bcc524b4326eb8303d",
-+ "751e9eb348bc8239d6e118",
-+ "2fb170a11f1aecdf586d25",
-+ "32aafc640e8c99bda8faa7",
-+ "552aca5af025ea1e84aadb",
-+ "30a3461d63ca9807464dd6",
-+ "3f68fa1a9ab7772758d0ba",
-+ "6ba1300374acd487b23577",
-+ "35865b2ca16d3453781f41",
-+ "3d1155c4a53835d991a0f",
-+ "74bb588b5553c2b2d4ac78",
-+ "3778fd3a46ffde4755b6ce",
-+ "1d2b9ca2f44294070d4e86",
-+ "38596ed050f14596adc07f",
-+ "2015aa6fc7e48fa3bc5ab5",
-+ "2ad2546b270547fc24541b",
-+ "1dd1b432dc809fe4c879b3",
-+ "149e6a0b6c6543ae895e07",
-+ "7851b3168b92e5daed021f",
-+ "2bee268df09cc40864a917",
-+ "76c2f0ba37187112ee4d4d",
-+ "53016aa1427381b9f28ea5",
-+ "397f144a181805e1a097c9",
-+ "634478b621f7f0a455c48c",
-+ "7cc0116bd0bc164835ee72",
-+ "310e395e429c4494a5f850",
-+ "63e0dbdfb13b4fbb46f00c",
-+ "4a9e2e5d8ad0e2e82aa7de",
-+ "7d0578a8908ba294259bd",
-+ "17276a59aa9630c1141c17",
-+ "393fe0be8f011593a7e1ef",
-+ "475e84f70334cc0bc8292",
-+ "1ccd174e9aa4e58e7414bc",
-+ "19b666810d736e639b51f2",
-+ "2a48d89ce122dfa7deba2f",
-+ "6520599b30ba3568ad0f09",
-+ "4b35e35e82bffb49d0d830",
-+ "3943e926fbe3d426004ea9",
-+ "4e501beb4617be0f02deb4",
-+ "343dad4f059acb87d3b0e2",
-+ "7bb4f9d707b4ee3a20e779",
-+ "7de4927696bdd6d3b718",
-+ "6da3828f2d4926651f7a27",
-+ "3601174a7dc823bf4dc3a6",
-+ "223160cdd1bfa322ca3e6c",
-+ "31a504d1dcc251075e4436",
-+ "1b1ca5d6c688c4cf99448d",
-+ "4309c1c59a581af63d922d",
-+ "6077a88144957827c07205",
-+ "22e321253c3e0fb875c4df",
-+ "6b4728ee168cd23e2fe47c",
-+ "1c35e13f8ffb7c470fa61c",
-+ "4bacbc68650c41520d312c",
-+ "455c9131bfa1c33274be37",
-+ "23c82ae839bf5380a55acf",
-+ "171e59c89024b148534f1b",
-+ "165ff53589519199fc1846",
-+ "69bb33c18017fddf18d091",
-+ "2797689917c95a9d4073ae",
-+ "527c4b155e3708972293d1",
-+ "6e007172a16a9c673e635d",
-+ "1921f3262afb2f3766f357",
-+ "70a2d453b688803716fdbf",
-+ "4fbc987e428ed0ce9cb76c",
-+ "58320debe89492ceee77e",
-+ "1b0c27c7452322264822f3",
-+ "66ffe80af410522139e92f",
-+ "5e56a7d976f1a3334f57c3",
-+ "536a736ad3a37793dd9f54",
-+ "407333b3b6a3bed3ef8920",
-+ "76fed7d89907843db9af52",
-+ "18019c176b4c9453028db8",
-+ "4a54d9b3589d5340a01e23",
-+ "1a4e5bc143bf00e8928403",
-+ "61f4a55b140e767495cd59",
-+ "25cab751e23d8e69bb5048",
-+ "591bac661062f64b8e3f2c",
-+ "7006ef130d31e12bc44c5a",
-+ "6a23876a8c802d81d83d29",
-+ "7cf9338ca9bcab73862b81",
-+ "e941ecc714605cea72177",
-+ "4839c6454f97ececa9969f",
-+ "672d7083ec424e5d883cec",
-+ "3722a55f27f2c02b34eddc",
-+ "4f72850630f6f8c1a68862",
-+ "1a63315aa52cb254b65ce0",
-+ "5a0c2602dcbbbf468b67e0",
-+ "23f219093e9b0bb3b5217d",
-+ "4f6d8c8b0b9b376d42c4b1",
-+ "7abf68b2e4cc9e3a3b2c5f",
-+ "75f4eb6de0d35eeaa16cf8",
-+ "6a81a8d913b71671629ad5",
-+ "3afeb7cc8f8e5bb8770da",
-+ "2b0fed7a534d25697e5c7b",
-+ "2964973c288dced7dae8fc",
-+ "a6c54d0ec55adb4911efd",
-+ "7e958697030784ae5ddf86",
-+ "7fd4ee663460087b793a80",
-+ "5cafa83a10f929b5076c60",
-+ "452d3dfff11e24bf680356",
-+ "39242760b51f2f93fd4721",
-+ "18ec20d19a478746123b",
-+ "30f4f5617cc73435ce74c2",
-+ "1851e925707895d37a37f2",
-+ "6400e87749e3bcbd750d89",
-+ "6c8879d694e1a0b99f8e42",
-+ "3ecf9d05cd62341c4f7784",
-+ "7895b432001edf846b7b3e",
-+ "7c6b359299af5c59043711",
-+ "13f13f9f2c877cb73ba5c",
-+ "2193bc73ac4b40415c95b5",
-+ "6351b2a5f477112f552683",
-+ "48eaf0293f956717b8f048",
-+ "21a363ab0e08a4336f2e44",
-+ "d8c34dffd92c1a20d6a9a",
-+ "7dc98aa964908b313939a9",
-+ "327b2b8d0b75e0d83a5b04",
-+ "2d1b2f087facf1fbfc7e69",
-+ "6e97dd298eaee757a3cec1",
-+ "504d29ae2e5a021d2bb278",
-+ "5344962f90f45cfaeb1bce",
-+ "767dc9d34c09b03db4a0e9",
-+ "731a7b89f357bfb855a5b2",
-+ "42cd59499a0ef57d6b0009",
-+ "5d711409f3faa9ea87abfc",
-+ "352389083277fbbbe66ac3",
-+ "30a77107da1d91a699e9f5",
-+ "39bf9c3f1f0a1a15264530",
-+ "5ce5e0595ad07c8855357b",
-+ "4499c1c16fec3546d5903c",
-+ "5b8e9d8b290e89e5d9afc3",
-+ "214f18ae0c9aa7a1b8c02e",
-+ "639c2fcec8b9dfcc987387",
-+ "1536906705870049755028",
-+ "e0800809dbab6d41345b4",
-+ "39489c7fdb445490d498cd",
-+ "52c4d1c2ad153a3f70bc0a",
-+ "540f5a33d5aeafadcad19d",
-+ "6081e77fedf3898fd66607",
-+ "584b7d6f0b43ddd0b397e4",
-+ "7d8b341c82b019a8d56c92",
-+ "2478db790ed59756cef964",
-+ "93cbb2483673e4e0dda30",
-+ "18ba9d869c489f11ce52e7",
-+ "52cfcbd15dfc6c476cfc76",
-+ "7ae1d007cf030664c6b815",
-+ "9bea90a26f9e93743a998",
-+ "7e62c15038abb8244531b4",
-+ "3cb748f77d638122329dca",
-+ "1fa330f6dd5f3ca09176ce",
-+ "779559a53e6b62275896e9",
-+ "51a9b0945a0908b1d40d24",
-+ "2b13e041339df4d5a521ce",
-+ "7256923d608836710a659c",
-+ "48a999a2dc1a23a934a6fc",
-+ "ef75fc5d77fc146e975f7",
-+ "a058b3353ac6290d9f864",
-+ "290ac68bec8aa8955b7e97",
-+ "754ffe6bc2e7525e892fe",
-+ "5d7c2a1d1267b7a252da1",
-+ "35714b90920ce6fe1f850",
-+ "456138a50c3717947be48e",
-+ "1e2093f76475f58a2dfd79",
-+ "4d8859f357a36792b7211f",
-+ "3505fcb3eb2690f88b3be3",
-+ "2735b2e6f5f08a9e9418bb",
-+ "4c1f6b587fd26654ea69e1",
-+ "351c5a0b997e45ec21b614",
-+ "1c960c994194a1366a2222",
-+ "352a4a136ebd7ef294f370",
-+ "2df28a1b78b46f16aaf53b",
-+ "29bbe5fdf14e69065cb80c",
-+ "30eff32d49c10f325b8e9c",
-+ "628d18e095a8dbcb9f43bf",
-+ "1efd2b46d4a8724e929fd9",
-+ "13221a23af3045ec5cea35",
-+ "15d4218f4bbf0c95cd9649",
-+ "3f5027ce278d444a4dd243",
-+ "2d5e8f78718c2d4660cc69",
-+ "49cb6ac7a2bfdc54300006",
-+ "a134915353ce113eb72dd",
-+ "479e7025ae3fdc2bbcbe22",
-+ "64ed03e382c11a32e34cf4",
-+ "3d73fd3c3744e9ec5d2d04",
-+ "116da33e19c8b80384fe28",
-+ "68ee183b2208228da8bab7",
-+ "1abc0d15793c655cee4a9c",
-+ "307727bd97c5db086074b3",
-+ "1d6812727d8421d0e03a6f",
-+ "5b39ddb704fa58142076d",
-+ "2f78c0f7e7a90558573941",
-+ "35a3ab4773c5054a30c44d",
-+ "76c132264ad2a774a55164",
-+ "620084c5da2910137e2b10",
-+ "31541f24753a28cc5b51d8",
-+ "52f5adde99e4501e4d1c61",
-+ "779eb73caa637aa28db87c",
-+ "3a89578d6ca992f91249be",
-+ "536be2b3e3829710aec51b",
-+ "53c95b2787b88db0682132",
-+ "4a0fb16cc4d1bdfbb239c",
-+ "8b462e0f7448b549fd688",
-+ "783e0229f219bc18b705e4",
-+ "17dd6e40297f1d32786291",
-+ "4f2cc1f6f7aba8c20a670c",
-+ "479fc9912c9c81152eb474",
-+ "117480f169f81bb3e8609c",
-+ "df7ae04689867c9ad97d8",
-+ "70a1107bc42bfb598164ea",
-+ "557361125249092a7bf932",
-+ "5cd319aa7906a96d2f6c7e",
-+ "72a7ca4a8dc56f9c652281",
-+ "dce90e419e8d3f96eb5b4",
-+ "15bb5d9b44eebb27a1e60e",
-+ "2baeaedf76503008b9e428",
-+ "7aa81a94a5a230cf59a0b9",
-+ "55d7bf2f5724b5dd0a04ae",
-+ "e1ef803b3674bf39884ae",
-+ "1738ee1c8e104064e07249",
-+ "7ce4bd3337a7333159cb2c",
-+ "38110b962a169200cc9f0a",
-+ "1ddeaa1e583e9146210f69",
-+ "cfc86f804a481df48868e",
-+ "55a41153a33cb4649703a5",
-+ "5eb4d93a33b2d2e2c2adad",
-+ "4cd904fd9401eac5ad7f1c",
-+ "502c6a2df8916b18106088",
-+ "6259df76b87ab2eff6659f",
-+ "2f85e68dfb9aea66d7f07c",
-+ "1f1eea8231315133cde938",
-+ "6863984d7793407587e8e2",
-+ "7b5272bdeb1b01fe56bc29",
-+ "26b7df388a02a8279b0652",
-+ "7fe76cd2c5affa913c2b41",
-+ "733b81816da25936e81af1",
-+ "235baa54adcc67af92d06d",
-+ "4e6cb8ec1b00e2f28b3a7e",
-+ "88b8371baafc87a9713f4",
-+ "3b0283be973d59ebf4242f",
-+ "587cce1cbd0dee8b98f262",
-+ "6cfdd09fe2bd66b85c2e00",
-+ "12a3196afc09a79694eb31",
-+ "4feae15528510f186aa1fa",
-+ "449ccc3923e92a0bd2e3ba",
-+ "4f74e7ee01738298062093",
-+ "6ce98c831091728c0e73bb",
-+ "4bfd93fb985a44ed0569f4",
-+ "3c8b04f81e14e10396b582",
-+ "6cf76079225189eb2608ce",
-+ "76e87d4d2740e137511b26",
-+ "c62790b24bc842a717e31",
-+ "516640d56302eb15061b25",
-+ "60c8d2e958387c0d0627a8",
-+ "402c7149b20bce787c7e83",
-+ "64c275af1abda385c2af0b",
-+ "5088a2317aa34dd5bb1b4d",
-+ "67a9131aabd5255bdce732",
-+ "d452f805a2c35e686e107",
-+ "5ef5512b3384aa1243daa6",
-+ "6c1076c01e9e44fb047889",
-+ "46bdbd32d31b2a36e04e0a",
-+ "527456447c2748239033cf",
-+ "356211f56936e183312837",
-+ "449d4feccb40da2e122aa1",
-+ "43ee4b35cb3cdc84d1d5db",
-+ "7651ee2e0f4d348cbe95bd",
-+ "2ef2be0f7e33ace73bab4",
-+ "4b8968b5c5a93dbb4b2b55",
-+ "7d2db742721c9ba686ff30",
-+ "48e4926c40cd6ab5e92ffc",
-+ "506e6a05e8de5c9198ae69",
-+ "74a156e77589342bbef3d5",
-+ "798019b397419c8d54fda1",
-+ "5a7d2dd2aa2028d4da8f42",
-+ "5ebb44d93cb77417b61c4f",
-+ "1630a212afc84f038374d9",
-+ "3ae30b1b5931eb630bbf6c",
-+ "37ba1e609c7b12a8e32733",
-+ "238de3e1606bc0e1c33adb",
-+ "149d706db4fce00c71da76",
-+ "524b77666e02692a642407",
-+ "ac6c9987de6c73f2259d9",
-+ "51c819b9ec191b60920096",
-+ "a961f7b95836d3a578170",
-+ "2bb1db818cfd733dcce0b0",
-+ "51eb043d3564fa91215f1b",
-+ "23693b4063cf0fa20dad42",
-+ "4fbaae68fdb253d715d528",
-+ "69a784edece7c38bcf7297",
-+ "1d595362f3a1b4c77729e7",
-+ "22f18c95264f1fb742c348",
-+ "5637e5d4438a119a23f043",
-+ "75a7fc26a6faacf109b345",
-+ "3a051daeeae9770973713e",
-+ "4b21ef5da2b744139c3cf1",
-+ "471eec9edf3f5af18be6bf",
-+ "341851bd5e48e20f0a412f",
-+ "f125d56d3c0c2aaf7ad05",
-+ "c91beeecaf54c95dc1b37",
-+ "38e1e6200860f4072a8a1d",
-+ "3b3a5f854ba249c04d075",
-+ "4170c011864f5582d6a738",
-+ "17fc45b2690c315a5249e8",
-+ "1bab6e088abbb7a786ff3d",
-+ "1b388caec4f8538425d93c",
-+ "6df80f50564e811e245eb5",
-+ "65a5c9fe061a38a8c6c2e0",
-+ "18e5cae7f3bd61293a8c2b",
-+ "408e6268fcd75479c3bece",
-+ "514d622fcdfc26212b5d14",
-+ "435abcd28c0cfc9f321db0",
-+ "710608c33a517ea5d5359e",
-+ "96cf28ae783cd1e477aa5",
-+ "5685392e26e4e637394c54",
-+ "32f953543bd07093a29e5f",
-+ "6806f2889f5316f4c57e07",
-+ "668c0767178119bd41ac3",
-+ "6e885e79f7b5fe77214da5",
-+ "3915c8d33da94da27c1249",
-+ "762f2aec62b91b262cc99f",
-+ "7ce0b194ba3e31249ab36d",
-+ "5dd52a5a11350a9b7572fc",
-+ "404ae85658f9b08174632",
-+ "7772e0b990ccdc614c11c3",
-+ "573747456cbe53c844796c",
-+ "3cf5810d8c38a097a7561f",
-+ "269c017af27ad44e6b201e",
-+ "2835e7f4b39073c5a451bb",
-+ "ba07dcfdd701f16f45aca",
-+ "1b6a00fcabec41d4b43ba2",
-+ "67da5d093fc207176dbdb2",
-+ "311601fec45703953f2b91",
-+ "483ca240f22946b37af3c",
-+ "758f193f192584a42ebc31",
-+ "16fb077509115b4c0ee442",
-+ "2334ccde40867fa1d0bc15",
-+ "3f0177714af6ab07d870c0",
-+ "697c3f9accda8d3543f182",
-+ "59a5901c521b74864c8fb2",
-+ "17961b8be9d0332a213177",
-+ "69defadcac1e44c7a1c0bd",
-+ "2df92a33b308b4efdcaee3",
-+ "3a603b28f5e57fbfd764b9",
-+ "65c75439faa2303912b32e",
-+ "121daf29269045f5bdd20b",
-+ "7adedaa3d8ff64ef5910ed",
-+ "7b59158d38abcc0653e41",
-+ "63bd657552fcd47a1fea3b",
-+ "3951fc47c9cf417968c09a",
-+ "7b97dd845f9509d060f296",
-+ "67cd089f73cfc8807dd840",
-+ "b17adb15bd895ea825438",
-+ "3860f5646a470f19d720f1",
-+ "1365575dcf06e2b1987b3f",
-+ "5fdf7c6cf80f5f4d619b9c",
-+ "1e86f8d9f30e1c9ee2f741",
-+ "2f4da63191088795366c81",
-+ "1f527bd93add787e619f2f",
-+ "1bf7de225f0abb4eae1da2",
-+ "7eede9c7d2fd05759ff0d5",
-+ "7c4ebd51c09994a5c2702b",
-+ "2f27f9f5b37e53f26a3367",
-+ "1a91f5500bd170effa0820",
-+ "14e76412c1e117fa60f762",
-+ "27869ae6bfa80052e928d4",
-+ "36e5208ae458480078d5d",
-+ "193c88995f60dbabf1ee79",
-+ "55509fd3a52bd88fe29e11",
-+ "60188d16e528a5d2e06d3d",
-+ "3cd40ccabd157073f9e356",
-+ "6f7417b6bfc27461fd2524",
-+ "60f671cf9f662680d04313",
-+ "6a1b97013fc782623a1d18",
-+ "4a5a912df871eba16ca2bf",
-+ "4bafb874450e24655961f3",
-+ "7fa7e63240bd502dd4b06b",
-+ "3ac9b63dfc3067c1c4627d",
-+ "11978ed9a01677cec42ee0",
-+ "6b488f646fce9835d43f44",
-+ "2449f6a2ba5fdac5a9c1d4",
-+ "1fb4d17ac6ee317ce5a547",
-+ "230119c3b2a6b1bafca00",
-+ "5ba00e958e1473bae28031",
-+ "2e0a934adfe422dd136191",
-+ "64af53c3c0ad963e3055c1",
-+ "173ee21e60a88ae566e166",
-+ "c25f982adccb58e81ce02",
-+ "1c0d48f6283945e321fdac",
-+ "15b86ea9fb5f9d46bb9d95",
-+ "12ea1cc2026e4f5211a159",
-+ "4948e72d6c06974bcf7212",
-+ "474d5e705efa51e5e97d39",
-+ "3a928b86dc180342e1f053",
-+ "68570d0c5fc94ab3c18486",
-+ "33294a38a5c8a431b3624c",
-+ "7f5271355a686a4df7e516",
-+ "2176005ea62a7fae1a0ec5",
-+ "7b7ba8150a404335a3e978",
-+ "7ee167869f16d0f3096184",
-+ "37b012fbed4994b5319766",
-+ "5a9897a2da0299756dfdb3",
-+ "22c922d5b0fc736e5f1adc",
-+ "7c793c0d415e26d57ec92",
-+ "11326e189db8b15b0744ff",
-+ "39f2517276288f74c45e3a",
-+ "47b94fbc156b869e9d16b9",
-+ "4a27b941aa4c6ad1e07548",
-+ "796842dd6bfad2f98912a6",
-+ "561331256e1d21664a1287",
-+ "4d3db82b9d6efaedc42576",
-+ "26293d249066a3014c3338",
-+ "29d711357943b0afaa5b59",
-+ "3baf4fa4e9f273acdf732c",
-+ "22f4901fc0a8b24cf62fe4",
-+ "fa65751eb4d84785986bf",
-+ "1c89d8520ef104ebd20ee",
-+ "3251a62ebf3abdb7c9ed58",
-+ "59db917020bf7253782d5c",
-+ "52c455dad0b267d43552f0",
-+ "599102d1f2500d61d762c9",
-+ "77024358b3e776b2c5e1af",
-+ "3248d851d401112b750bc",
-+ "36f20d7e24da8778ce35f5",
-+ "4dbcbf0e0833361017aadd",
-+ "7a6a150f8921047e15edcb",
-+ "5d53571a7cc3688e6944b0",
-+ "3de0a5abf20a4845d76439",
-+ "330bf157841f4554c8f5de",
-+ "7faf5fb28aa48ff83cc07",
-+ "ff765fa35889a47189d5c",
-+ "1bb928a5ce5b6a93e4a6be",
-+ "443f4b4ed3b1f2c8fe8ce8",
-+ "159314ac561f7431a71dd2",
-+ "2ad8da8cd83b1521d7659a",
-+ "2e6c1f41a9866f4d867e01",
-+ "2bf095a2fbcdb3391aec69",
-+ "7286bedeaa0c2687819d8a",
-+ "1a1cfff05adf1a427c023e",
-+ "7677202d8f05f9287a6047",
-+ "144036e909f39a00a79653",
-+ "5d5d0b6bedf48b96c5eb79",
-+ "2aeb5606838c910769daa9",
-+ "36b57535eb2f884ec435f1",
-+ "26639427b4cd468207f354",
-+ "567c07ffdf5609acdc57cd",
-+ "46c6a4606b83331dd733e4",
-+ "214ab6242649bf5f0673b5",
-+ "456b75b7118ddbd9c05113",
-+ "23f47a79fc10179e2f1aad",
-+ "6750d083991451ddf24ddc",
-+ "9a91d432ec896438ac971",
-+ "62cba5cd6ece1fcc005653",
-+ "146e2b3f7404eaa2825f64",
-+ "73a1489a18b0815a03faf8",
-+ "4b81add44caab6287f5254",
-+ "43da9e4b9fc98c3225df02",
-+ "73c9485e5e5379f878695",
-+ "4b0e392a6b94b0716bcb0f",
-+ "627d01094a2553e7bdde46",
-+ "6e1c49a1adf3346b270d76",
-+ "2c11fd859f539479044b3d",
-+ "5ad56a9a03d1277384501c",
-+ "538b76dc0991647c99d6ab",
-+ "2fe38c447768175651bb27",
-+ "2d8207ca3331c2f27a3943",
-+ "ac1c0028dc3aa005da816",
-+ "5830e5e1c9294904118c10",
-+ "4fc1aa30a26bf05e1cf79e",
-+ "37ca6d3b30cb2687e44f7a",
-+ "3fbae766d352bf62d71ec9",
-+ "5b8558cbc60eeb5d4d1e0c",
-+ "3c0ef922648f93834d2bac",
-+ "1f216750a4d1686b3b2227",
-+ "54449f7dccf77fd8f14fff",
-+ "25b4f424465c145a893505",
-+ "1533a8f5ee81c2d4352c6",
-+ "747f5812283a8ba1a43af4",
-+ "42d3b2e606813eb48865e1",
-+ "771e23d6155cbd6574be92",
-+ "6937a623eafb54374944c3",
-+ "7ebd8ffb86035ffa249a5c",
-+ "65a59676f2a0f7f5358513",
-+ "4cc1b8f60c7b3b604dd7f3",
-+ "8c1b60a22d754654b3b0e",
-+ "3542a00727cde7902f64",
-+ "46dbb8e8c99f2d8cf603ab",
-+ "449f89bc8e75ebc93c06c2",
-+ "42fe3f1413aec51428fb64",
-+ "6ea50d7820cf1c46cfdea8",
-+ "5e81e2ee54fa1c8e9216bf",
-+ "3cdbf096f176a11d399e68",
-+ "1b8c58018b9ec962054ab0",
-+ "292e4d75da1a76fa4eb730",
-+ "23f737b6f1527cfce0303e",
-+ "1f2e34fd7020d08b01b7f2",
-+ "1103bc87eb4e4e572c882c",
-+ "4796fc52e00fbc5d65fc02",
-+ "6ecdfc4db1fa1b0104403a",
-+ "5d780dd5bc1f62ed520130",
-+ "403ccf27d3ff3c3686d654",
-+ "7a42533b0f16560c421482",
-+ "3c52f4c6c583d5b2a18105",
-+ "32e84128c0dfcdebdcfc5e",
-+ "db6d45038525122246c3a",
-+ "7e9e8be590540d41cb48b7",
-+ "4dac5ec68e30db33d790b3",
-+ "4a9951c3005ac4b7d775a5",
-+ "8d7ac16a6c7fb5dcaf362",
-+ "7a7267a5eeee00421b1bd7",
-+ "14b9cf8ea7c2a2aef663e9",
-+ "7a75465db2452d11dbf6bf",
-+ "49da4e6814895f7566132",
-+ "6ac2b95852f2b3848657c4",
-+ "29f43cc681e11325bf172b",
-+ "41d82e9988854950bdb48c",
-+ "6f5834f39b940405114e26",
-+ "754181ae9689816d4fae85",
-+ "394398fcb25e82a48b8d32",
-+ "693e564c43456862d84db1",
-+ "5fa8c4e879ae9ef5c6f178",
-+ "3937d6181e67f43d9bec08",
-+ "4bd73bb75df0b9c8f31e93",
-+ "417a5a771b0fe4694065d",
-+ "47ddc74fced651c57b4d1f",
-+ "7746c161815ab2091d9e21",
-+ "72216a00ebfc9de1e963c8",
-+ "74c5b771dcd8c4719355d3",
-+ "450dcdc45566039112cb21",
-+ "1ffc37c5751a51bd676a97",
-+ "553adfba4c4a6d20491557",
-+ "d65fa4e9fad0f9180af7",
-+ "6151a60a864edd0e7c7b30",
-+ "57a6c26c5e5dea61f133ee",
-+ "39f0a0674e65b2cad4a706",
-+ "29105da153f2a098ad094b",
-+ "c16242d78c3d8fbfddea4",
-+ "235bf7672a2cda1ab01fb3",
-+ "3faddb5ddd2bdc683de72f",
-+ "75964f1abb3f7cc93e9f96",
-+ "62019722b2962f2ad1787f",
-+ "67427f6921fbdb98c3e375",
-+ "2a0c42a5cba7fe55a006e5",
-+ "2bcf3f6e0be988750bc0c3",
-+ "31cc33f2d92bb3dc73372f",
-+ "553e86c66c2fba13b95f56",
-+ "75f53c77a2d34dd51c6882",
-+ "6f8c0ef46d2275dfe7e84f",
-+ "5c1c9591ed7cecac5be504",
-+ "e0fd267f226bcb77b4105",
-+ "1aa73126a375b6cf5e8b5",
-+ "5e4eaaa44cce4760757194",
-+ "a15cce75efaba6c1b571b",
-+ "7f779a7314dbb8bea5c652",
-+ "2359b0102f9a1f774278d",
-+ "20bd84ec27cae248ea38a3",
-+ "38a3fd25a6d9f4f7c85efc",
-+ "2117da386a0ba848e04619",
-+ "6db55a7581d577d97e45ef",
-+ "68437c168764f9b52e36f",
-+ "5574ce6446f5f9b2cb3ade",
-+ "2a8fc7a338bd0e95e61238",
-+ "6dd1e30b456df046e42f20",
-+ "360136af955e5fa1edc1",
-+ "403c97fd7a8e612b101803",
-+ "e8a31983f38b3bc04d83f",
-+ "2fc4119b8d9484cd86a0bd",
-+ "23b23c226ec7148e9ecfd4",
-+ "40f14f4642441c80c723a2",
-+ "255da48e767df6db73178f",
-+ "5f4ee2c7a7d447e781b997",
-+ "4945531dd0d285dff322e3",
-+ "58de9434dcaeb21007cf50",
-+ "4eb92d6051c08bfec28d32",
-+ "46777bd089a8dc8c44ba66",
-+ "155305c9e80b8231f3fea7",
-+ "27e0d5b6d5b01b974468e6",
-+ "3337445fe49877ddd94c8c",
-+ "23ff36317f41cdc69b5f8c",
-+ "5798f45a6d32a5d9e220c4",
-+ "6b1b87bf69d8ba16154459",
-+ "d959366c9d2eed9c988e",
-+ "7914f6f164e20860badddb",
-+ "fca586b3bb595a8d4101",
-+ "68bf1a165a85b17f192a39",
-+ "7b94e69ecfb1ba4bdf42b9",
-+ "363177aa4ad204478f4d2e",
-+ "4ec109ed0d029a0c6bd1c3",
-+ "ccd4be560162041ae08e2",
-+ "3e7a71b985de5c6c7a9f57",
-+ "1dcb001f06c75da3270a59",
-+ "7feefa2c38e3a6212b4cc2",
-+ "58a47971604afebfc2dfe",
-+ "175182c7cd2ce431b0150e",
-+ "1ff2197a0e5b3d0b65c928",
-+ "497b40c11c5d479cab5f20",
-+ "5448bba652328fd63e3ca2",
-+ "748cb85b7df9ca5a82d4a0",
-+ "5b60aca7fe85259aa048ba",
-+ "68bba5659f4f20356a0cad",
-+ "16a2f9f4e53133020d693f",
-+ "75df623177a9cc914a680f",
-+ "dfa61531c98e389318ffc",
-+ "12502410f917e813c566e4",
-+ "385c720d2080ae9544a074",
-+ "15c5021e3387b5104eda39",
-+ "6ed402123cbfe00df8030b",
-+ "4e9e415c8033fbf3989b6d",
-+ "1ead4bf29c5aa1e11118b1",
-+ "3eed8387e5a22f84995caa",
-+ "6207f87b59fc321d1fa8c5",
-+ "5527388c03206dff6a464b",
-+ "232706fb395f1e37b2683d",
-+ "5eacde9e13242553f24977",
-+ "257f0dc17de9e402db5577",
-+ "26c8838f41263334d39302",
-+ "5ed2c798bc4d3df9693b4a",
-+ "59048c7bc400c1b2f055f1",
-+ "60ea199093a4e9f80613b6",
-+ "3fdb397b831af56c0902f1",
-+ "47be6483decbcd32c50b44",
-+ "715687651f6925a41a3bf1",
-+ "5c585a64ca68d89750e9da",
-+ "1f5e885344b51456b2195b",
-+ "5d2602e9c7bafe79929bee",
-+ "25b65fbcf4deba1535165c",
-+ "4bba04cb6f7dfe33e4bd",
-+ "4e1dab19fafdbf4d11123",
-+ "3b79806e60c6443e5b75ae",
-+ "28390f3626b1fdadbcbfd8",
-+ "2ac5b705311ca0e8e6bcda",
-+ "21cbfd5db5cf856bb6980a",
-+ "31340daa6bee66dc702e47",
-+ "4520d49550bf0a2328020f",
-+ "6a91ca9f24a59bd3f77cce",
-+ "590c069f4d458da38448fb",
-+ "4eca5fbd35a4778cd18f80",
-+ "288723d0eb9a25150c0772",
-+ "6bd55e81cea4df6934b8f5",
-+ "684e96f56360b04576ab1f",
-+ "10c2f27dd2e5d8f77a071d",
-+ "78b61404bffa36b135773d",
-+ "9b13c11e290284a86caf",
-+ "415d623b63f929b3ef879f",
-+ "4dd2e16c6f9989907671be",
-+ "72e3a111047449df428c07",
-+ "27c4576460764aabe86ca",
-+ "509ca3fe7eae200044712a",
-+ "1488492f946cb788d721d6",
-+ "5fd2fb0300581c5f59fa7c",
-+ "cae1cd222ac38b9a89a19",
-+ "62a4fc7a9af2d27e92b08f",
-+ "2dd86ec9cb242b4e68016c",
-+ "615326e14c6c74c717def2",
-+ "454b67d8b7470679eeda79",
-+ "359b739ee10f4c4f24e721",
-+ "6714be0beb22d71708c5e6",
-+ "571cc10547604b09ba9b69",
-+ "64981a92737099a91d3794",
-+ "58b898760417610a09ff41",
-+ "5e1c654c63269bdc77fee1",
-+ "37e704706a7967491e3628",
-+ "76a279212b584d95ed2cd0",
-+ "64d1d7c43b00bfc99b8bb2",
-+ "524919eb6636c6c6c14a82",
-+ "4176799b704bfacae7d897",
-+ "2113e1a93f5d2f1cba0377",
-+ "47626057be8af9d92cef74",
-+ "31fcd9e9b87aae6bf32f83",
-+ "2cf0b3c6e55d4f6c794d8f",
-+ "2f36ea2bf51461b1407878",
-+ "2840ecdbeaf847ed4e56fd",
-+ "4dba440f7f398ce0198b25",
-+ "6ef7e0b470470f565c088f",
-+ "58a41d74e16c1b1fb6cbf",
-+ "68b020f430372f0b20817e",
-+ "396792f2585d3e823623df",
-+ "171772c43b172c6f59b4ee",
-+ "35da7f1fc27e6edf7e2774",
-+ "5fe19870cf156902f09ea2",
-+ "4a99080981fd90fd8f202c",
-+ "4fb7ac8e103e64af4c501b",
-+ "32124e45d595b542218cca",
-+ "4cbbf282cb8d5b492509da",
-+ "26e8b6fae1b81184be307f",
-+ "4019e2ed5f4f686e75a334",
-+ "aebf119c49f1f5d4fa77",
-+ "214de8b9e305b92a9ebc6a",
-+ "155503fef8a8a42650f8de",
-+ "4cfa062853643ca21aa8e4",
-+ "210804240b673797c1da0b",
-+ "4499b6e3311b7fe5b9c98e",
-+ "904098cdbfd4389279e30",
-+ "575c81fbd5408f583cec84",
-+ "2cb3e5c4dae6b173319195",
-+ "411254ef95bca10cdc61b9",
-+ "14266a10ce4302dd32d262",
-+ "14a25dabe8f8f9bd2745b5",
-+ "7c2bf4a989b0889ab6c2ee",
-+ "7bb42f21df6b474c926cab",
-+ "4edae7063e31e196fbffc4",
-+ "706df4fd50e1c42994aed3",
-+ "312ecee1519b0617d31186",
-+ "32f8a36cc1b46c25cdcc28",
-+ "6cc9f90d012be002904668",
-+ "69498de156a0aa10a4e2dc",
-+ "6bf558bed09b770ac7b7db",
-+ "45166035762ea541feeea1",
-+ "2bcddd9fb0f98505c98aa9",
-+ "56b71258283af76e7bcfab",
-+ "3349dac2077bfdf6a12d86",
-+ "39450177cdd3980c4efafa",
-+ "4ebe9580f66ecfa62bdae4",
-+ "2d2c322dac49b5fc4277a6",
-+ "63a2efcfe030b5eb3fd526",
-+ "2327087d544749f348c909",
-+ "3d49c943bed92220933501",
-+ "2501ea3eadb12569e01e7e",
-+ "7c2fed1746d715eb95529",
-+ "3adbdefe2bc4d894d3eea5",
-+ "574f9294e066c8fdb761b7",
-+ "69527863032c1ba7d7e238",
-+ "78778c448d7d69eeff19c7",
-+ "63a482d47b34384d6c0abf",
-+ "37120883f03d674fbee3d7",
-+ "46789b05c1e88afd58b2c6",
-+ "62e55ea318373ea102e458",
-+ "7bfe5c12baaa86c60d8117",
-+ "6c065cf636d6bc65762095",
-+ "45109475272b0ee96581b7",
-+ "1b4e22a54398ec5712c2f5",
-+ "c0bc8c55f3b95e521ebf8",
-+ "614224558d52e5d4eb23b8",
-+ "532cc2e0afe1d979c42a70",
-+ "6e48887c0bee3ba8386f63",
-+ "726d30610282ed39d8f203",
-+ "53a902325a9087232d64a1",
-+ "6e72d626e97997cb842159",
-+ "1fa48382ab305e0404adc",
-+ "3d3a2d2ef7d22dc8adb10e",
-+ "59aab11c164124e5cdf604",
-+ "7529b300b4b89c580a5f62",
-+ "206a9c38358f291b01e407",
-+ "47267802b4baf11a616d7b",
-+ "1d50b663f8750fc777a8a9",
-+ "4113025c4b26d50d501a53",
-+ "21e6a33067365b1e718020",
-+ "1e3f1f00ee5c87d8bcc6a5",
-+ "37902c15fea70cc2588984",
-+ "330554538efb3452d928d9",
-+ "eb12a34ffd8e97426aebf",
-+ "7f53a40fb6d59c55fc0a6a",
-+ "2ccc62a5fe0c2d164b78ac",
-+ "3a82f64175d5b3caec9c53",
-+ "676d8d92a92b0706da21e1",
-+ "5c91f707bee21c71c33c34",
-+ "2ab6145578df975521753c",
-+ "6e20ab59697e8bf608ee9d",
-+ "96afde4db924db62eec7",
-+ "2d980e097ecb2ab91b9b92",
-+ "352a1b67a355f38121c462",
-+ "7c3ad9d6ed54817d082b65",
-+ "65e071aa89e8e9caa17f",
-+ "4e4d1094ae9ce9f42b1d71",
-+ "6d82429df8c04f3e8cbdea",
-+ "201a5f031183f9e3136174",
-+ "4b31d20ed3a1f68f117d30",
-+ "309eb70bbb47b20185134f",
-+ "bf1c05f166718be1c6836",
-+ "29dc0e371f2a3ea6cf4d60",
-+ "610a799f5f9443dd8f333",
-+ "7ca0b74cff2de67657aaa1",
-+ "31018337a926110b0a5b91",
-+ "3c066553be4fa2a741db4d",
-+ "194fc13ec819c9e2289cea",
-+ "3c7d066200b6ae5892048a",
-+ "768b4e15703c2b99a95ee7",
-+ "66673b06f4474ab9ac84e3",
-+ "75b60c74c3f4835e0ba3f1",
-+ "282bde17894173789173e7",
-+ "6b386c8a9795cf0b45e160",
-+ "1984882a708094eb26643e",
-+ "7e84a589b79843d0f09d89",
-+ "7f30d40bb0193bcc3bff38",
-+ "1e9e640158c2d5ef405818",
-+ "46f7147d837df6469c39be",
-+ "717a62d953937ab8d63ef4",
-+ "29d27ddd5f46b0a514ec85",
-+ "7f5d5abee4ea627ca346c",
-+ "1ba30d22d8ca0e3412c0e7",
-+ "1b892a6bc6d106036dc210",
-+ "78208a8be2c33504df2573",
-+ "2d92e146c92e5c2141114e",
-+ "65ccc844f43d7740c3bb83",
-+ "6cbec7ee27571943d99309",
-+ "7ab8d7968452d732fc3362",
-+ "51e871e33b066886db1e57",
-+ "70cc62d0a35cccb85972ee",
-+ "7db23dcfd5b48847b2da44",
-+ "38863908f348e0ff24d2ea",
-+ "5f7998cdc984bda089a530",
-+ "593ba411e3481cff090a6e",
-+ "30c01b8abdb9d98a7941dd",
-+ "46861d4c2ab5de181f3e32",
-+ "2f44e6e7eed452c1b02ade",
-+ "31e4383d0d65d0adfc3084",
-+ "44b51755bfc5410d6cfad6",
-+ "2b89a454954d4c6b2e2120",
-+ "7a1817cf8f21c4f863437a",
-+ "1ece2489d9c16fd0d7c093",
-+ "7fd049d0f5d16bca84fbf0",
-+ "284cbec8937114a1728cdb",
-+ "2a6ced30aaeaaa3957eaf",
-+ "41ec16a5c725c7d32d3a8d",
-+ "2c1cf6d476ed98aad97b90",
-+ "715fb02624875de3ce495c",
-+ "3d325eede75d0a573042e2",
-+ "4550a8c9126d63e137546e",
-+ "116c396589d81e0684d5a0",
-+ "48ad93093caf03d61b0aa8",
-+ "29bfa87365d098b3fe8377",
-+ "3e14120ed24ebae50e64ef",
-+ "1924697a3681efc60e8e70",
-+ "1e1de465daadd9547d63fe",
-+ "32c9397c9adff65d943965",
-+ "41ff1be99bebe99b10f273",
-+ "cb351e8f1a28278af3af8",
-+ "5939fc19fad9c14c8917a9",
-+ "634af4f8ff5eecb70f9b3b",
-+ "14b126e3c0b0f4dae2ddfb",
-+ "39bc9fe63b4ca1891dbe7f",
-+ "3b77afb6ec85d92608bbc9",
-+ "6308b8f5574126f70ec3cf",
-+ "2928531ef291fb90d243e3",
-+ "7d43897c9a717ea4ffaf53",
-+ "542f3c6130072ffd145c0a",
-+ "57b79cb347145bcbe43bcf",
-+ "68855602ae559673b8a2dc",
-+ "77f657453333dfbed3c7e5",
-+ "1fb7c568bdffd12b767330",
-+ "abbcfb2e4c3da6b090978",
-+ "36224c16a9190272a21e14",
-+ "47df2e03e1548a16e223be",
-+ "f6c4daf384fb3d39aa985",
-+ "6978fb86dcb4ccc82a3738",
-+ "670c6449f82194e5367c1d",
-+ "75a29d53450973ae07e5b6",
-+ "1a0cc5d78d1da3759fd0fb",
-+ "319945f43efa75c6d6fbd6",
-+ "4a8154e2948099e7b7c4c5",
-+ "2353c3f920ce7af530f96d",
-+ "781973046ae51aa956a060",
-+ "21789b3595bc366315af2",
-+ "4d63e68650d056d4e2cca2",
-+ "6eceb600a9b81fd3aa7175",
-+ "2021e0329a909a39851fe3",
-+ "45d43d697cb8503c85839a",
-+ "7489fd5407cd56abfcfc49",
-+ "57bcb68e1f52791794bf4b",
-+ "71db6b9125d5ab5b3e7493",
-+ "4e72dcffc8f26eb136b7c7",
-+ "890072ab6d3eb608d30ea",
-+ "2f1b9eb8c8ceec3aba8c3f",
-+ "269ad3cfbd18bd255786fd",
-+ "7e18b1dc04cb3af247aa31",
-+ "43cebcc2f248fc1fcbd6b4",
-+ "1b9995439565d095eb8a8c",
-+ "66e2564796168c2d0a015a",
-+ "13c9d1e81de8cbb64a1797",
-+ "657128352843035ba5fee1",
-+ "58c411222783451febdf82",
-+ "2970c6e86dd017c5341ddc",
-+ "7bb1913bf745fa526f18a8",
-+ "4d0a046c7ec4f54117f367",
-+ "36f24af02e5318171bea53",
-+ "9cf05f6855d4068390948",
-+ "1107ffccdffb2932659325",
-+ "2ae1383e51812f870ebf41",
-+ "3aa6d80b7b4477df65330a",
-+ "6cc6a998d40d1bad211cd",
-+ "7d58cee39bf1830f1b3ec0",
-+ "dbd1bb9693e65c5eeef4a",
-+ "4385d494a7bdb154810c4d",
-+ "4a64cce2fc4633dbb63e09",
-+ "3e9654e3940c0f541b93cd",
-+ "1207aa2a4ea7c882b5e76f",
-+ "43bc8bffd5b4fa12491d7c",
-+ "7df66ef2eea696dbe6ad95",
-+ "4e203019ba4b94cd691d60",
-+ "61978b574cf8f6d53118d6",
-+ "14816e04a6b799d1ce9e1e",
-+ "5c699bfc1a98ced38d7c88",
-+ "509dfa92ab81408672391b",
-+ "2025bd13134bf0ca69b0f6",
-+ "675948e6670907b03227ed",
-+ "90bd6d6fef2e358a664bf",
-+ "2f1dd3930a2948f2187f86",
-+ "6336954989b8a716380f64",
-+ "2655fc5da8cafdc10e8c6c",
-+ "be26e79f27c2fffd5718b",
-+ "7568ac37df7da28c47bab9",
-+ "3128342c1cd21185c739db",
-+ "1318f3d7743d8ee4ecfdb2",
-+ "26102582959271955d45bb",
-+ "1118a89d656497538996f2",
-+ "4d74065738715d35d47743",
-+ "2644cda468b716b53c99d1",
-+ "2aec8efef6c41604b67a83",
-+ "76393b1564fa2cd841480e",
-+ "87eada956963224c06418",
-+ "44f34a642236b1e7e4c8fe",
-+ "5edc4541d1854504d071a",
-+ "4a292844d7aa26520c09b1",
-+ "1526a67a2f54717285cebc",
-+ "7decc101d84d7378c8efe2",
-+ "1f8889a7c0321f5279b37a",
-+ "71d26320321cdb1dc925e0",
-+ "b8385ec48f904d72393ba",
-+ "4a2cef4e3606d1b9422334",
-+ "db7255fca12f37c452ffa",
-+ "4374a87512bdcb27925ebe",
-+ "99539a5120bf06fd3edb8",
-+ "4f7806a65676c896ee7db9",
-+ "365cb247c96e7933341e76",
-+ "7964fb4049b23d750b6f0e",
-+ "48cd6ee15c4874d342b21f",
-+ "221728332d3142e3346be",
-+ "198d839621f761dde4f853",
-+ "259839d29faddb791e3548",
-+ "15324434e27844cc4fba51",
-+ "60e351e7834b181d30a00c",
-+ "6337453f9c180b8ddb37c4",
-+ "608a29bc043b54adde90b0",
-+ "4cb0c7462e90f28fa251d",
-+ "b5f14620587f1e8ed5a45",
-+ "3c994e655edabd5cfbe8b8",
-+ "35ebfb3fd5a71979daee0c",
-+ "2a1abd32897155b55014be",
-+ "67d12b5d61741b8623f378",
-+ "21469f9c49fb4d2fb54baa",
-+ "728aa131a37012e184c2b6",
-+ "6f085a8f46a66e79fe4f92",
-+ "1a95aa2ba56c053acf7e56",
-+ "1f1c7eef9d0f99e1e209db",
-+ "5b57bc12988f27dd0ed418",
-+ "5e9464fbce6027257d92c6",
-+ "41be4715ccf6dde8b12086",
-+ "25ff556cf1afefe2cd2ba9",
-+ "59f67a0c66d5e9744004c6",
-+ "23c20aae79c2ffaa75a36c",
-+ "574f95a475dce62a3071ca",
-+ "4a98326f880a44e2d6ea5e",
-+ "39f7a72e1daced6411b1a6",
-+ "37a4477749686070e7e049",
-+ "51524048af5a6750b1955",
-+ "43012f86bfa02bf0033ee9",
-+ "4253e27061630b9343ddfd",
-+ "520db901eb8309582e12a2",
-+ "656f70349417ef562616d7",
-+ "13cc5c5fa7afb2b7468106",
-+ "1916345f1ad90cf48c6472",
-+ "a80defe299bf7c4d81738",
-+ "673a9bc1330de8c0b0abe1",
-+ "226f7d490aa9d47314570",
-+ "4762e175d924ca1dff7d06",
-+ "79ae8d3a65221805ed59d3",
-+ "65838019d10030d2edd34c",
-+ "46d2651ce40dd1fdd11e69",
-+ "4277911fa0e430960db091",
-+ "5370ef9f2399e3c803b5a6",
-+ "69110081782c350722756f",
-+ "be2266f15dfa6e02e4a02",
-+ "7c64411c354fca180b974e",
-+ "3669075c083d3a0547d7ee",
-+ "49212e86ec70f1b328e11a",
-+ "70628248b6cda7311de5ca",
-+ "5593dc730a3a85d6ce77d2",
-+ "4a2416a8cf412f996e9654",
-+ "56f01f51a5be66f649b1d6",
-+ "1c7c6456335bb722881302",
-+ "4f571e68d11ba0c201ec2c",
-+ "2f615de4e96f8f9837947f",
-+ "9cc0a7524feb44aafa989",
-+ "13705ad9594243161047cf",
-+ "358734094106c4c77371f8",
-+ "48384f03b178aecb456dbb",
-+ "336699d6c6f15f6ab914e2",
-+ "5dd2532249188dbe3d2539",
-+ "520d412f22645bfa3f3a33",
-+ "45838fc0d9bd4e814df398",
-+ "5d172643cb569d9b2ab357",
-+ "34470b1eee2f871c42ba71",
-+ "16103ea0d454ef686ebf4d",
-+ "31e4aec6d42e52c762e301",
-+ "217d231f2ea4bf28c97e44",
-+ "15bef1b795296c7e8862d0",
-+ "225461e731f47cbf2cbf5f",
-+ "520f0b6932233966b7bdb1",
-+ "6db3eec1da4e57eacd7cf4",
-+ "5728f13fbf1367c5292a3a",
-+ "7856c391e8828b90a94afe",
-+ "6b36296c1bd668243e920e",
-+ "2f8aa359ac5538f4834ed7",
-+ "208dfefbc938eb8f166f28",
-+ "6506edb4005521bcb61671",
-+ "202377a9328fcb8f661a5d",
-+ "6f4a829757301eb1143585",
-+ "5baffc06fe51f5caa49a4c",
-+ "1c24006c67392d350aebe9",
-+ "a3d31a1daca53878fe695",
-+ "6a3f78db4e25085a772f7a",
-+ "423813f9eb92bfadf14d9a",
-+ "60548a10984139e59f5d8a",
-+ "ee2c219af9300476a7d41",
-+ "6a4862d59f8198b4ea0fd5",
-+ "76d72d56a09f253d257f0e",
-+ "52492b4a4856d777ca0682",
-+ "2dd44a6d1765874cf1dbb4",
-+ "73040349f8459e94069012",
-+ "6c290f053f3f46327ee8ec",
-+ "6d575f1601945a3ca29eb8",
-+ "3aac1aff3b6e14d31a91e7",
-+ "4972dfe88d7e4fb02ffe72",
-+ "5a86321f172c81fbf185ef",
-+ "50b37142bd10ca63ad3866",
-+ "50148cebf8644fa7375aa",
-+ "322164812a5696cb2322b0",
-+ "4303859a49916073987344",
-+ "bac1f8bfa0e63045ec3ea",
-+ "67b770c97867478cc69b37",
-+ "2cd2d00d4262f35754bb13",
-+ "678fb8bf7f6342c5764339",
-+ "656e5b10b9da085176e0e4",
-+ "59dbf0c177e94a664cfe3b",
-+ "1f8b63c5fea99ffd6a5348",
-+ "4debfa77d5d5f3fa106f86",
-+ "147a0d7fc26817e7251ada",
-+ "3f26224827d27901ba392a",
-+ "24364b397921eedc03333e",
-+ "361de61b4e6057d1cb2274",
-+ "14b5583a83133add54d368",
-+ "6ead11e0936e4bb4e855e1",
-+ "30e484fb4ce5927a937373",
-+ "571513666bf5e4e0b1c7c0",
-+ "4be11f1cd60954626093b7",
-+ "775bde6bde2d0aa4187fe7",
-+ "5a1b57c203d09cc8a22696",
-+ "5d5e844e1fd78c36c3341e",
-+ "33b05c78a18798e4462d45",
-+ "624f69e6f91d2b9574cb8",
-+ "172e3a20b269ac416b7186",
-+ "1f08599df3ce28d2e2a99",
-+ "3d50a612150493864e2df9",
-+ "42e82d8613957e0acb2b09",
-+ "50e45902fe1a308ec88670",
-+ "23db937264552bf6dc2858",
-+ "6395a035a6a5e009dcf586",
-+ "23931a4d64503bc81a5a33",
-+ "f6074b1e17e08713a2a46",
-+ "1e604eea4a6fb7804d131c",
-+ "246e8276fd64f7af18402a",
-+ "7fdefc35775213402acc91",
-+ "31f0df7953457ce90524a8",
-+ "731437b69ca76a93992caf",
-+ "3559d5470cc8be88bbee52",
-+ "2a6da3e3f6425cc4caf185",
-+ "384ac895940651e4b3df31",
-+ "20cfa0c6bfbdce5e399a70",
-+ "72f290cf9ea470dcec1318",
-+ "77ae05c9ad4bb1a82ee6f6",
-+ "33f6606f82062475e2caf5",
-+ "373211f704832f37df113f",
-+ "c663e7994203d116af45d",
-+ "25b286320c27c0f91c388",
-+ "2219a8eabaec2cc4da44cf",
-+ "3fa82c77c11ef3ce373a08",
-+ "6c65a41601a28b4854db0b",
-+ "398768a52710b109c92dcd",
-+ "45e67b0777cb6facf28d74",
-+ "21ac3ebe991cfe1bade37d",
-+ "6db9060a2078f4de4b4e1b",
-+ "1f6a141f6eb54cb95d54af",
-+ "68c1092ddd7cea180b7a8a",
-+ "e5d22d0ba9e3194e2337d",
-+ "68075aa010a2a7afcb2078",
-+ "577a2773ebc9e2412cb050",
-+ "1634b76faeb97237505ef4",
-+ "1aadb770481974ec7ba970",
-+ "42a1f9791054781a203d9b",
-+ "7a520385f587099a8da6a1",
-+ "1a88cb781abea4a70cdfa7",
-+ "655b44d3a92231714b14c8",
-+ "651be8b59b15d629ab774a",
-+ "550e4c9178e5dead2f815e",
-+ "ee736adb9b9c1860d483b",
-+ "ceff6274c7b15ae86dcc",
-+ "214d49f3e2681b232cf62e",
-+ "2330589e6c22439bef95d1",
-+ "7e1ce3bec1e98dd35947ed",
-+ "72118d192add3aa4c1e0b6",
-+ "67daf6ba4dc4d74236df77",
-+ "d16f53a28b7042d305524",
-+ "6f52ff1c7f6dba719401b2",
-+ "6ebb0dee9291bd90cd2215",
-+ "78dfe864170ab14a408743",
-+ "601b382825c1515525a19c",
-+ "2e5ffe59b5dd3843fa4c17",
-+ "2bf32012cc6354c709ad2",
-+ "669f3588d7a4ca7ee3dd1f",
-+ "3de21ce46f7c8be3bab3b9",
-+ "432c0a15a9dc31696b79c7",
-+ "349470b19ee7a8cf922b33",
-+ "3c53d6131f8c41d5d7317b",
-+ "5e83dc6dedd0679793feca",
-+ "54c245a123767ef7f22e33",
-+ "563e208513fb23ff9ca7d",
-+ "b512df0270e6ffe2d4a9f",
-+ "b0715d55fe0c1edd9613b",
-+ "c0ecef4f88f5957d4b1b",
-+ "c8806bb60205886d4ff9d",
-+ "32c2902887e1700cd5dddb",
-+ "49d6a78a88159326775c2e",
-+ "56359d56dcb06ea3ab68ec",
-+ "2d794034e6ae324ba7041c",
-+ "64f201a4086e40b2a3a19d",
-+ "7eaf34148ada80711a86fe",
-+ "2142584bb5cff6c1e5011e",
-+ "15060a6e69612092d45768",
-+ "4de3353d33028c5f557394",
-+ "70594464b46de9acc11f02",
-+ "1fc064c4398ccf6bf7b1de",
-+ "51cf9e84f5414c7907e79a",
-+ "71be60f1312db2fcc7f045",
-+ "5fa826fd6352f83c34bb5e",
-+ "62baea1b89700a3953e872",
-+ "4a266217d4534cc588119",
-+ "7bc0acaa724475da5a8a83",
-+ "3d9a1023138b0e9cbe7d70",
-+ "388d8c3c958b6abcbf6aba",
-+ "98079c36403a029b3f0bd",
-+ "72716051b13a2c1876c8ef",
-+ "515a0593d1e619118d226b",
-+ "2a035934ba5fafe2ebaf47",
-+ "316bc661e89aeb9e7e20a6",
-+ "25330fc3e5df50eee77cd4",
-+ "6c8071fad8933706efff6c",
-+ "3669984e1ddcb753afb878",
-+ "4781781ebc739ed9d4e35",
-+ "3915c71f3b447b64ce4513",
-+ "726dd56f61c4c5016201f9",
-+ "7b8ff43621b7fb13c3edd2",
-+ "2bfe7376e8ab62fafbff59",
-+ "207cf80fa76e8708f88dc9",
-+ "3a4a4ac73bb38c0c48aea2",
-+ "52e6bde0fed2ecd82f7bf",
-+ "523ee7b96bbc2b0977b4f",
-+ "551b691726c66f9ec1f9e8",
-+ "361fe28e640ec02ae49613",
-+ "71e1aa5a9aacb38b66f605",
-+ "d427f0f9d14ecf4c54fbd",
-+ "629e9c894bbbebf06d3299",
-+ "37f7d323d5bf332eed1bcd",
-+ "7fcd5bd9328b9f06223a1a",
-+ "744db8f7e25f69bc47f2cb",
-+ "4b0d1ff6297b378945b906",
-+ "7c1d3420db42a6ffd37cef",
-+ "2f8592e02ef759cdd34c72",
-+ "4dac1ce4b87e60431b8a4d",
-+ "451e904c04882b739d233e",
-+ "5bb2eece8c95a515d2e2ea",
-+ "797d4c38129f52836fa5c7",
-+ "5d29345f097e1dc041bc7f",
-+ "6b25878a1ec102b9e883f1",
-+ "610d07557d991d9db3dea7",
-+ "5d3293ca54de6a3aa06b08",
-+ "62e4e44df51bf11734aafc",
-+ "1945686d70d9df98093dd1",
-+ "2c16632a312edfedcc7f72",
-+ "19675db116558d90bb4f6",
-+ "620c14b60053b660420c4b",
-+ "39a26bf8336439ba9968b4",
-+ "376c7a8d0fa0abf4c0bb7c",
-+ "7f2209419e3163fbb4cd8a",
-+ "6aece787aae5251b57b3ae",
-+ "6b380bf5d71fe523ad1e4d",
-+ "2306ed04565a9cf9fa84c2",
-+ "7e37a126be9507ba4c717f",
-+ "67ae2ace35fde529154a8f",
-+ "352d204330140b3786230b",
-+ "6927c4b12865ac8f053dcb",
-+ "7e61e3317d07a1009894dd",
-+ "2768a7a783d9baa4e5cce3",
-+ "260213253056e29f0ac6e3",
-+ "61539cf7b388689e7a260a",
-+ "3d9131aa5802e27a83eb61",
-+ "5f87453deb48ed6c9a1afa",
-+ "418b73330a3b4d1a80474f",
-+ "5cd3a1cc8bf78e4c7e3747",
-+ "784bdef1566f244d4ff44d",
-+ "2c4bac0a0cf06ff50ff71e",
-+ "3608208e4497b40a62b3a0",
-+ "6e8b2732511303a48ef731",
-+ "1ef9edb1f958cdf81fb9d8",
-+ "4bdbd2765933e2b1d70563",
-+ "b2687172956319218655e",
-+ "4f787847feba11bfcbc764",
-+ "49ede33966bc3f0dc8757c",
-+ "12a2fa8c4d06a694b748c6",
-+ "2146fc84389596cf6fa8ca",
-+ "536bfe32ac8da07b253be0",
-+ "773a63e6b7c9e3bec91272",
-+ "6bc6acd592c0200b749e07",
-+ "3d28e1c12f9c60e500dce7",
-+ "5687a42dcd55b43227f657",
-+ "36b36922114363ceb85a26",
-+ "51e267e9a5a7684ebfd343",
-+ "5b4aec35da23a27808974",
-+ "2e684b7951a2526d838fd7",
-+ "62b2e70d411eb11bf0a695",
-+ "6473dbfbe4a3f63d08e3f2",
-+ "661787ba011711628186b7",
-+ "7234cde8ecc6673caf864a",
-+ "1e39f05dac576881e6c295",
-+ "420c1c0074adbe0616df4b",
-+ "177f43e8d62e87c66b9da",
-+ "10fafca3d5f71faff8f1a",
-+ "43dcb4450a256b9a0eb673",
-+ "460372cf36a22fb6b9641e",
-+ "a4d6bd96f61637d730c9c",
-+ "1754f51aa79c3b0803bf00",
-+ "65fe3a22c7d35ad3f875e7",
-+ "150c29ddf5483fb74be06",
-+ "716991a2a17f536244885f",
-+ "475131d01f3e6dc3b169fe",
-+ "569bfe59efe21364bf57e7",
-+ "75ac7a48082d5afa148e7a",
-+ "63f5fe049f46d509d141d8",
-+ "2b90f954efc9f58a07a363",
-+ "39c167fbee27f65e96cc7e",
-+ "1db83df0a168bac450e4f8",
-+ "127118c35aaf80dac2a57",
-+ "20601a054af9d51633fab1",
-+ "728cea43531fbac95263a5",
-+ "ff53eda132c9a3cfecc65",
-+ "786d54b4d5ce74ddde20a8",
-+ "1175d70c2c07855db37245",
-+ "2cfcb08879a9aecacf316e",
-+ "ecef39a1ef4b4d1e8c6dd",
-+ "70357dabf2c34c8309c723",
-+ "4db4f1a602cec485019670",
-+ "735a03f218370f8bd85ee7",
-+ "3c9ecb18a83b901f901704",
-+ "4c7d0db8193430b75f41f5",
-+ "28eb082844c0ed277d2520",
-+ "a3cfbf8b779e15bf28c99",
-+ "624d49c04a48d42d76c466",
-+ "221bb5afe07669d916e136",
-+ "358d745e0bc4be1c3f4586",
-+ "1ce2a05bccecd36df96b64",
-+ "362261ed7c97591714ea9c",
-+ "20f6e36fbf07174b587397",
-+ "12413ef53ba7fc6fb5cd35",
-+ "3dd366ce71f1fed428c326",
-+ "b66201b62ddf6d13c5534",
-+ "3164747c95104338a78b5e",
-+ "5ca6e41b81529e38a59f6d",
-+ "3834a1b7acb0f05d9e53ca",
-+ "3a2f442f3b3a9a2af00b28",
-+ "270dae1c5ccafaa07ae8ff",
-+ "71e916ff79204bdad49695",
-+ "4d43f85ff03e3cd18ef302",
-+ "2a2b13112979d27489208e",
-+ "442eb4a36ab0287728c1d2",
-+ "4dd985f2fef5c539fa6a96",
-+ "522619b83283553c71de74",
-+ "794294f26a938e1caf3c0",
-+ "25d1c185377c3cd8e704a2",
-+ "3e7db1002a9116a5e20032",
-+ "720aa7a7bdeaa025a23a54",
-+ "70f2550983dbddb8957b2d",
-+ "57aede4ca861e5051b15ea",
-+ "52f87910ef7e6dde1f16dc",
-+ "79c75783449d733d93b4a7",
-+ "5186a4a6ce8351b40466bb",
-+ "1208a98ea1dd68a01d3ec8",
-+ "3d66483aa6674adb6569c3",
-+ "728caa6061cb6ff29e6b21",
-+ "3ca90695aca0fd32b28871",
-+ "18eecc5a940548e7c51e57",
-+ "cb8a50376e8204b8b5ea9",
-+ "7731327e4c6ae66c8e47a1",
-+ "16f732c5fac8192629ddb6",
-+ "13b16e69e645c1703bf7c2",
-+ "789addf402241ff646d77d",
-+ "169566a480e42dcc8863ac",
-+ "5ca4bcb81d4d03018b177",
-+ "8ea7f70a71ad46c0c260d",
-+ "4a67b54dcc404423e6b631",
-+ "7b609aae44a59cf088c570",
-+ "59fdfd7775c9750e48d811",
-+ "5738f30e5cb40b4ed83e60",
-+ "78b5c76a3ee8c2ef071fa1",
-+ "2ff21a8761b9bce5f34f74",
-+ "71af54a2496a076b559a6a",
-+ "11f2c34fc87060adca2837",
-+ "4476f33d15e77d3ea6c712",
-+ "1dc0a99973375f6c4a4583",
-+ "5cee3684d600afc7804db0",
-+ "20fe6d6e332154329f831c",
-+ "1b9850e5f0f8fec4d967b8",
-+ "6b5617e9152db554d999bc",
-+ "144303d93b170584849f6c",
-+ "8a006b686db9c86eb0756",
-+ "1d9a776cbeec9f5dec9407",
-+ "503f8d64438b7a99b8de08",
-+ "7b084b907f4fc0301dbd5",
-+ "dea3527d089eceb4c22e3",
-+ "38a39ada5dac01b5c2adf0",
-+ "4cfeaacecd47507ead712a",
-+ "3ff99310762f37d685ca95",
-+ "492683ece46681328f9912",
-+ "27c1b7b41af947101d694d",
-+ "39a95d47cf87d7d7d6bc8e",
-+ "48b438b41e1bc7e58e6ef2",
-+ "7b0ba619013363524f168a",
-+ "557bc3fd4a1a6866c5d19c",
-+ "46ef25878ebd3ab0b864d2",
-+ "70044b2b283269e2d14166",
-+ "47226da695602ab6e77894",
-+ "142fa830b7ba88d08608e3",
-+ "3019d2c9a4a70055fade00",
-+ "6bd645b33c041537bb5186",
-+ "3fc3e580d2ad754a34bc48",
-+ "5e8a5f959be2a17534c9bb",
-+ "5a2cdb29cc6790b45d1f04",
-+ "1c28b93f693054a06fb391",
-+ "242cca5b643a5f97a01a20",
-+ "48a0fd415822566b2ecfbd",
-+ "308ab3a2c4d7f4df4b6a31",
-+ "4566810f52dbdc6e52d908",
-+ "53cf166384d9f967e4ee4a",
-+ "32a9d4d4f421cf83f9237a",
-+ "7f4b55a70795b9d26512fa",
-+ "7222af7c6bff611029c53a",
-+ "718c4a4aea9ee0da236930",
-+ "71b31c9be0276caacd1146",
-+ "4d89a145aa9c4acc9cbc8c",
-+ "26b549a59dc35ee5ea7b82",
-+ "59308e5db85655d5ae0c4",
-+ "2f63eb0fae8122aa717440",
-+ "4346fce81f02878bbc28d6",
-+ "3a0c64739838b20476e0bd",
-+ "389f7a523536bc08e2c52e",
-+ "1a756f67d7e3e663369a04",
-+ "732b807455afe5538cf678",
-+ "421e7c19466e0847ffaea1",
-+ "75aa7d0184dbe8ff376045",
-+ "178e61138a7396d55d224e",
-+ "2a07033e306623cf4e37d",
-+ "25d293607604db30df2e4e",
-+ "1e6b9387cb8fb6494ace9",
-+ "524a00dd634d2f57ac7c6e",
-+ "106fdb273227296116f40a",
-+ "47efddee37fa0ef6a72a47",
-+ "2a17c7297a08a3839ca0e1",
-+ "4c60164f9602341914167c",
-+ "656c647508629462e9a821",
-+ "54e5b2458bb84fd7d4433c",
-+ "15a3be22e80e0f6f498608",
-+ "152b3e507f8b7898991275",
-+ "10cc6c74c4f9fcc9428f7f",
-+ "7e185faaca849a7f135848",
-+ "62ae26dfe2273af99c4830",
-+ "7255e6805e164cf9788cce",
-+ "49b4801e9a2a64a27691d2",
-+ "3fd90efbd4f0a4e173f589",
-+ "4afedaa595cb8c309d3fbf",
-+ "c57749387141da5f8fd27",
-+ "1ba28761d3577e14d38b38",
-+ "10a61010d82426d21109af",
-+ "4d23f5ec809ab5057c2705",
-+ "31e9d0607a42f7e54a8c81",
-+ "37107b083cae132372e4d4",
-+ "16eaf321bf41ee635d6d46",
-+ "44bf623ac807d4c96747f7",
-+ "b720b9f07a6b1f41654e1",
-+ "68705a826f80224f09c337",
-+ "798b816a4dea5ab964c64a",
-+ "2adb843a58d472c17edcb6",
-+ "17c5a39deb46d102235506",
-+ "70c9c69419338ba44d6b8e",
-+ "858c45884b129dd66817a",
-+ "7ffd3daf76b1e818134f24",
-+ "5b509a0106f1d06627c353",
-+ "4d6d3f3602597781bd2ea0",
-+ "4fb33de912dd8d2f8b8081",
-+ "2b7758dc0945a30687fabe",
-+ "38271b1467ee062bfe15c1",
-+ "1d41ed28d87d24620da24",
-+ "5b80c6e1a5c4dcb3166335",
-+ "560e1e8aafcab315236068",
-+ "31204f9f1e25342bbe28db",
-+ "35d63c19d36b85b5e96648",
-+ "38aafca45b266dbeef6fc5",
-+ "426b930b670412d271a091",
-+ "59f2c50a64b0c2a3e77442",
-+ "7cb4b7b324b314195807c8",
-+ "4a1381ccb93c34dc44cab",
-+ "14da57f8c43c94d5133d50",
-+ "499a1abb2a1381278175e6",
-+ "6334fc3ff70d17dd837781",
-+ "6717c0177a36454aef446a",
-+ "7bd177160999a650655c6e",
-+ "2acc282877d9cac38e38c3",
-+ "18b021fe09fa8bdc44e567",
-+ "45638582a87d07b0339df2",
-+ "664ad54353749f2ad36105",
-+ "5c53790457f0f66baaae2f",
-+ "1edb6eab35de11d4922150",
-+ "38c3b4008c9d0442e7b602",
-+ "76dcede51c5087d374b20d",
-+ "1901320882ec0093fcda5d",
-+ "68f5ab17da1cc5dda22c36",
-+ "4e4199871aec7ec1f99895",
-+ "68d4b88b77dfae0da7a5d",
-+ "a4f6b861d9a460f5b65a6",
-+ "f7cdb22a187815c33c5e0",
-+ "7b398d970ad745817bcb61",
-+ "2e061928a5c3ad9bd6d9be",
-+ "5be7c40d96f7c97153eaba",
-+ "21887a11425a371d17db86",
-+ "2cc7417260782c0d2394d3",
-+ "6b421c0667b336723fc0a1",
-+ "1d78f3d7e887debfa04bf3",
-+ "1d165ccd9ac1e4efca4a32",
-+ "163690a8fd51b113410cc0",
-+ "419d9a35dec3e5f421baef",
-+ "215c7e9a1d796b37a56336",
-+ "541a69af40655a83e366ca",
-+ "3f98705d2cf6346bf00972",
-+ "4ba668ebddeaa069043875",
-+ "2aad9e8261535baeb20b71",
-+ "6766e290c73bba54bcc710",
-+ "65118f1b7c366a8bbffcb8",
-+ "7d88a8aadc667bc60fcb2e",
-+ "16d8ad198832545831c93f",
-+ "567508a3d2a7b4fe3b395b",
-+ "3282cc1545c9e77ce08abd",
-+ "57d0cd94e03404b9cc57cb",
-+ "14f23f2aade2de50fb350d",
-+ "280bf57e6ab95037683d33",
-+ "15db077682cfbf170ce259",
-+ "2e1709b850c77f2d508334",
-+ "34ddcae84938327a3cbc30",
-+ "ba357a389bca1484d7e54",
-+ "bc149e667cbe5a17ed77d",
-+ "25032025485a4979b90394",
-+ "467db4fe225847525ef33f",
-+ "54112eabbed42ad31637c5",
-+ "14b68001dbf2f798322812",
-+ "7146b897c3d924725bd0cb",
-+ "6a76e3eb445dada83ceb12",
-+ "30abf45ef025352e681192",
-+ "2f687a83227d2d20f3b227",
-+ "186605e063004c7e4a9375",
-+ "21ba4c5acd17d59fca0ed6",
-+ "2cad73640590abfa319b6a",
-+ "5db729c46c687ddd7690e6",
-+ "73673685484b4f3492976d",
-+ "282a80b8de04941c547168",
-+ "4b53718060040e8179d82",
-+ "5d50e00035655b4d4ddcb7",
-+ "546ec9785ee72a2a72d886",
-+ "4328d17f00529ea0fead97",
-+ "71faf2ef0654e97e0c23fb",
-+ "49374e550d8b335cb151d2",
-+ "42772160e3ea402851c9c6",
-+ "c1fd8fe80d24243e7b5eb",
-+ "111d6b945ff69be530cfca",
-+ "2dd21df4dbce295378bd06",
-+ "3d8509040aa8739f034dac",
-+ "68d439e82561e55cbf1eed",
-+ "65a1f7025bafea5088145c",
-+ "5f70485b00138272e9a41b",
-+ "48ede8d4a9a88f7613388e",
-+ "1de402b5c6118ec8861aad",
-+ "50f371336a648ade74999b",
-+ "17da7c01f870089371d6df",
-+ "2f64ac4f819f8343111866",
-+ "648ea8b083a9828f8af17f",
-+ "28d6cf3e20845dc7283634",
-+ "7dfd6cbe22024260a179ef",
-+ "65ab167d8e02a8df26439e",
-+ "79d07c6a6298d34020dfe7",
-+ "55407685456c2cb8311d26",
-+ "413278937e6487a988805d",
-+ "168ebadbade1cbc44496d4",
-+ "7d6f33ec4a123fa281cabb",
-+ "59bc93698864451646a053",
-+ "4d1a8b95ded29dc79fd401",
-+ "21b466e3230d809af7aa6b",
-+ "35fa1fca985387fb7fcd19",
-+ "1a789636807476ba5bd789",
-+ "7b115c7c405c6e4356bac1",
-+ "378ef780c4d32c3f15b3c3",
-+ "23dfbd70bcc040f36d4c8d",
-+ "6a545ca829ed278f6ee7f4",
-+ "c06cc01bfe2a9b427102e",
-+ "126dab6c2bfc9b83475847",
-+ "15bf0eb485af1135b0e453",
-+ "3b929cf6fdabeb45375120",
-+ "11c773ac555182d789142c",
-+ "444a50dba1a2bf390bea1e",
-+ "1976a9fa25af6d21cad47a",
-+ "2f88b1c87d7d02f6c2614d",
-+ "7fa540fb3906a29b513bed",
-+ "2b23443976252ed21088d1",
-+ "5d9383670de64bf15eb49b",
-+ "1540f88099c93111d6c8cd",
-+ "2c33c53227ef5693d69f36",
-+ "2648a635c5981b8daca07d",
-+ "7b71ed8d456ee35292c960",
-+ "62c36a3627b9d2b3c18de1",
-+ "3e985c35adacaa90f5715b",
-+ "7401d0da6ddc33225bec4e",
-+ "740f62900b9523de37b6b0",
-+ "3aaa2c73e60edc333c904d",
-+ "35accc5a1e3fb474285daa",
-+ "1d85b86a2f3f20e2832ec7",
-+ "6dddda58fac4e8afe0c9e7",
-+ "2fd82a7276af1cf8b372ed",
-+ "9377e0e5c8d0de1856f6c",
-+ "75266a81bf7f77865e6f",
-+ "1de1227159008ec9b59ac1",
-+ "1b5200adee3adf189b056e",
-+ "4d8b0cd0d3401fd04e351",
-+ "438e5a19094bce43b5b5ae",
-+ "6f339aa4d977875b1f1f80",
-+ "297ac1b2d19eb1e6e32d87",
-+ "638d0229863032ef249643",
-+ "65c9be7a29bf45e5992a7e",
-+ "7dcf3e6b7d3d02033c946d",
-+ "6565aab9eaab16f7430411",
-+ "374a0e75bc76f0adac7af5",
-+ "8649a3995ad114bb4d72f",
-+ "45f5960a9db06a62821bf0",
-+ "36735381ceff20a76e32eb",
-+ "1416e580fa8bcb421dc6ae",
-+ "64f00973a0eb117b548182",
-+ "7507998b275e3c9bd4e10e",
-+ "305213c4b30a9e8be153ce",
-+ "233860a2ed2d566e131431",
-+ "235809998758cf7e4acb1c",
-+ "2102dede4011c5cfefb7eb",
-+ "79486109c44990eca52723",
-+ "43b23b71c3202b31d91018",
-+ "63606d420b8e8397875647",
-+ "697396e6df9539532709dc",
-+ "581eb843dc9919f85a6644",
-+ "3b98704f287b0ee4e659aa",
-+ "3886dff828cc76dd830466",
-+ "1c9f86b8742e14b6caf79b",
-+ "bafe681e7e52073b86d32",
-+ "1a5853834033d093c63d55",
-+ "736d05572fd4ef85eca2b1",
-+ "61170002cc409ddc34946c",
-+ "5fc3c4b7f7ad5deab829bf",
-+ "4597c1546c899a3656689",
-+ "6667dbaf666f92bd61da79",
-+ "a2e07f9d73c5e3effd370",
-+ "63942ffcaaae948e9056c4",
-+ "6a7db7fb47d3a18b620d6",
-+ "58b95d74eb4e654735bebc",
-+ "78a4c0445f77f31209ed17",
-+ "7203cc213679d179eabc35",
-+ "22884c181cdc222cad8e5c",
-+ "7f8bc7233e2784039454db",
-+ "aa2cbd696160321682a6c",
-+ "4356ada1ada2921353892",
-+ "72f7dab0b2d2a35e62478a",
-+ "32e5682bfa3fd95762512b",
-+ "77da1b5a2124b6c9e11847",
-+ "593c091517fff61973996a",
-+ "264e4b26d39119bcdc0985",
-+ "fa33fcce55fe6a32e0915",
-+ "127c199cd032273073f003",
-+ "169665894aa2b356779b61",
-+ "9dfe57d1a9a3265476d14",
-+ "364f70dfdbb439b78e5236",
-+ "54fb5f18b6d001ef7be401",
-+ "321e3fdbb0b890caadc570",
-+ "64532524c99ecb3c365a41",
-+ "aa480c5cc76379e0cd2de",
-+ "6ac2b70efaf88fd42c4044",
-+ "6810dd5945e01cd2c90841",
-+ "10aab6ed7d1b631aa4b45b",
-+ "19537a8ee281cd28d6388e",
-+ "5ba2a8023e5bb50b06e03",
-+ "646ce329dbe03b0b8312de",
-+ "4f0024b5b5580d91de0338",
-+ "2b4b238bbabe3c70748eff",
-+ "3bec30574a99903f587887",
-+ "24e71c2d01e956269446cd",
-+ "68c4a816c641b5b1090781",
-+ "6fd170c2ab312a1f05d814",
-+ "64d8389dc8d1b8910fc0a",
-+ "4807e0d9a38d358d8e14c5",
-+ "14ee39af97cd5a57b0e17c",
-+ "24974593a8d59a89588659",
-+ "59a7f220e101601c1d1b21",
-+ "43fea0cf26a3e256438525",
-+ "2b3c80a17ef583b6205fd4",
-+ "44741cea6d95eb07e7f01d",
-+ "2ccb45ece6ec9abb9396c7",
-+ "5ba0eb3a703d0e42cf4094",
-+ "400f76e25d392f347d4911",
-+ "419e79b02e607a42e6e091",
-+ "36c0bf9a937fe6ca772d0d",
-+ "2244b09bebeaafafb0c481",
-+ "1501743c447af65014399b",
-+ "2791e42c7f90ab8d4e7fbc",
-+ "150365cfcc4a012a673c13",
-+ "7869636f37e63a4ffff7cd",
-+ "211dcdb529a6bab73ad8a6",
-+ "239309f551f303d0037140",
-+ "3f1e6a84c6b836f245c178",
-+ "27b94ffb61590cd0bcd89f",
-+ "61ade8e7a0bcc40ee4c2a8",
-+ "750f475708a1369e3fcc26",
-+ "30bed73f7a94de9252a38c",
-+ "3e26ac2b23b8b913845e11",
-+ "42aa10dc273607be680d72",
-+ "65a0cb312051f321a95f5d",
-+ "1ae82d51e4845bef8c5d14",
-+ "37c6007c4a0d223bec9e13",
-+ "4f140e806dac75cc67fa3c",
-+ "78acf4423afa2cfe1a6fc1",
-+ "3915d17a2935e69936525d",
-+ "7fdd8bd273e4a717226cc",
-+ "15da282cec1859a9591ab9",
-+ "75d3c5c33e5a2023adfd4a",
-+ "51890cd139740ee3c35339",
-+ "2b514798a553e5bdcd8ec1",
-+ "722f9dc13384479d1c4455",
-+ "1e2bd3f41ae5c299bb720f",
-+ "5ab5c85d4bf835440ff962",
-+ "178cb915d7350e37948956",
-+ "184e317201ff0ac25eb6e6",
-+ "37755ea728b820f0ab2bdf",
-+ "5e147628ce9e9a9493f495",
-+ "79790e81fd0d2b63f9d1b9",
-+ "7252d249ce8cd4fb010950",
-+ "d165a455f92b5083e0627",
-+ "6354a865e088a0488f2701",
-+ "43c2ec8afca87567ee9294",
-+ "55744f373c8b8520d62370",
-+ "63069f756c8115e5fc4c52",
-+ "3f5c0a52d2b564cc250982",
-+ "6b828169b3ba13bbcddb05",
-+ "46a78cc83c010019e8b2b",
-+ "27c6ad85e824da21b1cf9d",
-+ "6e9f47f009d809f84a56da",
-+ "255358696f5e9ddbfa467c",
-+ "738abcc274fbdc4ab5efd7",
-+ "70b9ea82f6a6c02939510c",
-+ "5f24e71937dd097c0e8678",
-+ "41e1bc8a63d042ba714c97",
-+ "6da26efc24e2d57c26c090",
-+ "575d4696bb0e4edef99446",
-+ "4c028ddef259fa2c7d4868",
-+ "33525d5afa91fda7d5fea5",
-+ "49a3641c16382337f3c777",
-+ "760b4f231686ca10ea6ea9",
-+ "547264d2566596f18bbb5a",
-+ "703a6cf857e651748dc09a",
-+ "298200a0909b55e97005f2",
-+ "5ccbc128a5721a5dd853eb",
-+ "33d5a814c00e980600811f",
-+ "5d66f0d9dde7339dbcd24",
-+ "5ef30e941639d08bff19c4",
-+ "363a65fc59f4a8184d3d78",
-+ "366546b3844bf45b7527a5",
-+ "18bc8168956ccd63ac68a1",
-+ "83bfa3efcf5b970ad41cd",
-+ "4bc9c371d07d4a025a739b",
-+ "4636e2935765905adcc41b",
-+ "4d08f00a99d95d0043cc4",
-+ "3e94b32e50da81bb5afc03",
-+ "48a13c03c03191471f1164",
-+ "3018be3223f82c7f0c9ebe",
-+ "185254fa056de9af1a6bd2",
-+ "1fe069b8c57a9fbe5f6009",
-+ "6c03f094dfe48c9743be89",
-+ "1086eae159340e441fa0a4",
-+ "222ea07afe042cf765ce5f",
-+ "7754a6a5fe6be54c00f4c8",
-+ "152dc9fc63d3c1eb6c335f",
-+ "3f3aeb0a1df198d9c95768",
-+ "7ef4c5361ca08ac1cb6216",
-+ "527e969f4f6eefe6289ece",
-+ "6b105359a1a68d94862411",
-+ "2674d42d16e97493518d2",
-+ "369c62fe5aafda2a550912",
-+ "51eb860c87e1e5b70bb623",
-+ "29f3402339c3128a1e2c1",
-+ "413f256a64feb56e242e90",
-+ "11ea8c21342ce42ebbf9ec",
-+ "5517c01ca3bd4da9aef0ad",
-+ "5d2972b12e50e727a2721d",
-+ "4eac7fa0d6b168c3bec4e3",
-+ "5cd8f5f9eb6806f67db613",
-+ "412ae12837a29724832877",
-+ "770b83b55e13465063e5a",
-+ "76201f5e0110544f41d9be",
-+ "c8918a059fa77676f0587",
-+ "287593985c21589f72c821",
-+ "6b923e02dfb1da62f37204",
-+ "2600c04d980b2307982b22",
-+ "25f7e1ac0d4153b6365c1c",
-+ "484281d930b8ee32f366f0",
-+ "3827eb26c007235c46c676",
-+ "6cd2d14ecc5fc7c2c1b52f",
-+ "4f0841f63a0c64aad5232e",
-+ "77c4b593ec648025df03f6",
-+ "81dc886feeee4945edceb",
-+ "522afb743f67b3ca56b20",
-+ "5505b22d0ddba48ae2020b",
-+ "2f3b362f4b742eb82f8a34",
-+ "1c7831e5dec267ccb26741",
-+ "2ddac7db8be22e88618b58",
-+ "4e6a2eb425fbd18fb02cb2",
-+ "147b65e0e829ca30fd88c2",
-+ "36304be3f0777300703af",
-+ "215dcfa076749277897e0",
-+ "3c2f54ef99be42fe30d32d",
-+ "62a01fb38e5c88098fbcc9",
-+ "5f84ae1685459ae7e24bf2",
-+ "3ecd8205beb790946eaa8f",
-+ "5ba344fee845769c2c86d8",
-+ "36a92b305c21171dd5a616",
-+ "3650c22d9c1072238cfcfe",
-+ "9225712405a5bd9ade58d",
-+ "594ae94ad86b9a719f54a7",
-+ "59f0f5465ff1e16be9bfb2",
-+ "4c6a0f6de7e50ac450c0c3",
-+ "685afb7cdd699d5a8f020e",
-+ "4f1c406e243fb2af67cd42",
-+ "2dac9d433ff98cf24eae81",
-+ "1167717f2d3d6238b3d21d",
-+ "381012de4c9a82f9ef1d72",
-+ "7047a4510b8c2107737ece",
-+ "185033e62f44aa85a7799b",
-+ "41e135572f9ce788481248",
-+ "4759751a101953dd340d89",
-+ "34d59de432c0dbb24ae55b",
-+ "5bcd4418d37c976110b37c",
-+ "6545cb112ea4be72bc80f7",
-+ "52d104741cfa5fa49fa55e",
-+ "7322c20a545b3845b54b34",
-+ "783c78a9025283e7188a8b",
-+ "3c81a9658bae42644c317a",
-+ "1eb56fdccfc12b22db2048",
-+ "3c3f770d148b4692e25b59",
-+ "4f75e255d88657b2ba4755",
-+ "260d6ba9444df4b85dfb92",
-+ "34f0f61d6d8d062b6b9d9b",
-+ "74fc1bfd19b3cbc9867bff",
-+ "3f0d18b1efb7248950daeb",
-+ "65b7b50446c767e6fa72fe",
-+ "1124cfa0e070cf6fe3c638",
-+ "2d127e6ce6bd0f1872b1",
-+ "3fdb99cce8884ed923271f",
-+ "2d2a15867cf9361defac4f",
-+ "9a39acfeb3a1b4c2bc79c",
-+ "7adeede80a05e40854e6e",
-+ "4431184365a358de692057",
-+ "1e4fdc54209c2229d7ffcb",
-+ "50cfa48cfb994ab2b77aa3",
-+ "1f4b918e0e0d47c89aa2d8",
-+ "78ba33e419cbc7f177437f",
-+ "5f7482c17a568566c785c9",
-+ "6fff35974d5f0b86faa46a",
-+ "5106bba99e6268d7bef3e4",
-+ "67cb80a136db30b9d60d6f",
-+ "594a3b6273b1ed2b542eaa",
-+ "6a1d554c48496d8d543eac",
-+ "9d8d18a72607c311d6f76",
-+ "7047889925ed18a885358a",
-+ "283508a2ed137e839b2207",
-+ "65fb4589487aa5a16bd767",
-+ "1a14d5b10cbcbb9ad3216",
-+ "4a469bacdcaf5434109262",
-+ "40ebb7bac65bd815945e49",
-+ "7b2ef1bbf74c4989ed5ddc",
-+ "5ca51c82df4def8b1588cf",
-+ "3b22ed42f28069f29c280b",
-+ "669e7a28f7a7c30460a80a",
-+ "2071c913edfd4fd6daa6bc",
-+ "3828df7e9ab6753fb83dc1",
-+ "4cd15a66ba5a2f18c8823c",
-+ "1ac96b01993da8677b2fd7",
-+ "4f9634be1ae125361bd4c2",
-+ "681fcdfe60f23e3be083f6",
-+ "2d5bb2b553d4ed5bc0795d",
-+ "4c4424602626193266d943",
-+ "2df30214a49a31c21380ef",
-+ "48b920d23514d06befaf52",
-+ "4b4c7f0a822537ff62cdcd",
-+ "ee9d6b69f13ec8f385e6f",
-+ "793fd256b009d961487499",
-+ "2d70f946f2915679b314e6",
-+ "1bc4e87c1100a2d26aeff3",
-+ "6b1cbac9279eaab9b503c4",
-+ "5725842b7246179896a39d",
-+ "4dcc6ee20983f0020ad69",
-+ "57dbda5c8b230a87030357",
-+ "78c437adc3b6ce946cdd",
-+ "20ea7b335b7621642b29a6",
-+ "179d4134709978c75bf6d2",
-+ "36a3336f56c91232544e8c",
-+ "e243f28e043030ee3a43f",
-+ "2d678e77df571d7ac4859d",
-+ "5566a844e8b1c572f69612",
-+ "27244290f774a00786ca95",
-+ "1812bd60b720f8920fe80d",
-+ "7f45c48d28fd31ceeb3fd7",
-+ "1bea5758655f1400515db4",
-+ "249b7a4d080be0f548cabd",
-+ "71215d6fd5e662d930a424",
-+ "7684536a92d49a5af59f1a",
-+ "74d39a89d87bdaa449438c",
-+ "3e4e77e268fb6e7602e96c",
-+ "46c6313b3914ecd376b959",
-+ "31b9dd76b9ed5f88dd4609",
-+ "46734211b970f8a6448a60",
-+ "7a6d5b1013830761b58026",
-+ "6157a651f2640a73f1f90",
-+ "38793daa7aa086d5e70798",
-+ "58d7de0f8254a81b5d0f5a",
-+ "5a1fe9fffdaa20f4ab7eae",
-+ "7e8fbf173741aea1b95c93",
-+ "4bee7e482b290b1d3869be",
-+ "c075fe6224a62c1010fb8",
-+ "7340d7daed67bcc5cd4391",
-+ "2e12097225e5783b545083",
-+ "518711fe03b241cfb95160",
-+ "4956721f6a2ced1fc736fe",
-+ "636b15a893c301ff23f5f5",
-+ "5696a96208101739ec4ba0",
-+ "54fc920cc0125e53a92499",
-+ "7c2e242ec2b95580a9b3bf",
-+ "4d0e82bdf34ff4cb3a603e",
-+ "786571b85b2768309c8ed2",
-+ "1418facce22bf24a5e6a51",
-+ "681a88fafe4e6f0620910",
-+ "5e263af53ea065e044720d",
-+ "1c614cf9a9d87d69154c21",
-+ "346f2a2b086e1b35095d7e",
-+ "4b6ed31d0715952774511",
-+ "67a3f20bb5e980364816b9",
-+ "339dd42a42d94342bf8399",
-+ "3b55da90ad9a162be1756",
-+ "1c07c875b3a9cdedf7611d",
-+ "33567e972c90754c86a5ff",
-+ "3ee5a2cc90e335867f0ce8",
-+ "4b3a8d22fdb2c83abba9b9",
-+ "5b6b96beb19fb0dbada937",
-+ "5169af1cd74986160450d0",
-+ "724f8bcd40bfc9f1ca0c68",
-+ "51603bcc8667777e664f9d",
-+ "78aded63d2f85ac948c449",
-+ "73862de61086c1fd5e0678",
-+ "5efbbe073364ace07f02c7",
-+ "144a6c20d0a8d5dce2b12b",
-+ "2aead0dac004faa8ab67e4",
-+ "3f8cb5eb229acba822b48d",
-+ "34c50fc58872b7325366",
-+ "3c1fd5d9a6223b2ce7b02a",
-+ "554f5cfd133bac2188241d",
-+ "559752d946b02da4c2f657",
-+ "3950591be73642bfa23264",
-+ "2e8edc0b6dfcfb2392ce87",
-+ "4c3c570182916f32a6f96c",
-+ "65cf5014ab215afd17cef7",
-+ "54ad7fa69dfd0b4c19f7ed",
-+ "f4af5a6143d8f44e48afc",
-+ "1a08e273719d3411178252",
-+ "668b9e16f3948f582a5b94",
-+ "3fac097802d8f5fb376d58",
-+ "3c2dca32abbdc029f4a212",
-+ "753f0795048443573283b2",
-+ "622b540293b1275c5a9446",
-+ "5a2c8ca58cb488822e9f49",
-+ "295932427e10aface718fb",
-+ "43e36b6d5a937387b49f6c",
-+ "4e1162d634d0d5811a2441",
-+ "19915afea85d27cf8df109",
-+ "7eb8dfe838ec5ef9d3ee21",
-+ "2c18c59d95a21961c42f21",
-+ "7233f4136f3ace41bedb12",
-+ "142c59f31fc82fb58a7dd5",
-+ "452816c1b54aa2bfddcc17",
-+ "6f24ffc802a08273be511b",
-+ "32d68fc9b8a9c17b315382",
-+ "5aaabbd40fa78dd417edf5",
-+ "51d8b3e6fa0afa106abc40",
-+ "394faf6069c716fcf8a76c",
-+ "3f7d2ee6cb32c6bbeee194",
-+ "4354f51efc9392bcd6e51d",
-+ "5e73615c65ae9e74eb1ef3",
-+ "761e42e1c908c2f09e096a",
-+ "25df9f831698604e15991c",
-+ "351db0dca5d74808f36d33",
-+ "aef2488954588af921ab8",
-+ "296a247b4b36d5c2a1884f",
-+ "b1fe15d9ac88348f41a87",
-+ "97342eefdbc78b9689120",
-+ "1e47a4330f0bce93db13fd",
-+ "7511506751237c1959933c",
-+ "31e8a39712fb3a7a11f909",
-+ "6116bef6a79fb2fc15f0e2",
-+ "6d849a39e47370e473a913",
-+ "42a81f5e10b5435180e643",
-+ "17715e6c96cbe096c4f9c2",
-+ "606e14eaa7d60eb7ea925a",
-+ "30cb89652c8629b5e0dcc3",
-+ "2625096534f2cf10d83a26",
-+ "61036fcac29b84e5ca02ad",
-+ "4669a41d4e444c1284d024",
-+ "2b81c6e67e55aeb6e93a",
-+ "23564d97f447b0091e74ce",
-+ "494807a247f7ffab73a644",
-+ "692eeb4ff69b42372517d7",
-+ "3eda92314bf1d09cb5b08",
-+ "24b22771f303ef742b8ce1",
-+ "5c616b0d1a7bc591e70e46",
-+ "4aad58987821ba8f33d96e",
-+ "10d0aa100248920b9cab77",
-+ "1ead89a48b89a75ebaa7d8",
-+ "7fe887d8c5fb53af79cbd6",
-+ "ab8e1dd4d27b02d09fe48",
-+ "2294095a6b77aaa416cbd7",
-+ "69fecb55ba6da700789d7c",
-+ "681750fd18618072db2068",
-+ "30a18088f5b2af396bbfd9",
-+ "2e03d3c0794703b9605de0",
-+ "f26a2dc235ace7b34f4b6",
-+ "356497a9675898bccf4e79",
-+ "3286bf159405584d85567c",
-+ "464550e0adf269403f3e22",
-+ "3f603c7b410b4c2db2c8e2",
-+ "445381f98a1f5669880827",
-+ "23eabb9cc5f4086c74bc31",
-+ "4628eb872cffa1868b96ee",
-+ "6ac77b7cb23565518aa2d4",
-+ "1cfd8f0d12bcce21589c11",
-+ "39cdc5e6675ab081ffe60b",
-+ "1e378fb7157cdaa6fc3a50",
-+ "669f4c5ec3934953500b78",
-+ "46a91d898168488fd5ac51",
-+ "64add9cabf8efdd5f7b57b",
-+ "45813314ca1d165bcf242c",
-+ "6f37e3a85128974cdfaa69",
-+ "7f42b66317d26c3f938805",
-+ "181ee17c34ab8aea52c900",
-+ "68e8a818d524954278bbf6",
-+ "7a6ffa939b86786a779a44",
-+ "31d809b078cdefaaf45266",
-+ "7f216769148f0e997c7805",
-+ "3a82369bb1a4da519bbd70",
-+ "25920b5c96127e9d8ab05e",
-+ "29702fc1f57fddc3369967",
-+ "616dbeafd6aa623c1a7d7e",
-+ "634d2540fd670a82f219a5",
-+ "3d9abe3ec82d9602d9dd6b",
-+ "665bc65420c0b0a151c97e",
-+ "37d50d7838efaf03049cd7",
-+ "385f7f48a7be6b46d108ef",
-+ "5f2bc99aad2f27cdee05f4",
-+ "3b6b43619a3730d5995ae4",
-+ "5eb76c6301d8a849a1903f",
-+ "38910d873da8dfd237e8f0",
-+ "41558cae58d4f9a9001b87",
-+ "58fc1b58696f8c22cfe344",
-+ "64520e4823f48c1f48749a",
-+ "3827b84269040363e5e02d",
-+ "6c9c81ea487986867245b8",
-+ "217bd444ac8e9808b3ae5a",
-+ "44dd70b9323f17568e4ba3",
-+ "50226b4aa22a0465ceea0c",
-+ "6335fb7682400180e10d15",
-+ "1857324131e535b1b2458f",
-+ "3845bd22f959dda9197376",
-+ "4d7797e0b2f77a7ffee785",
-+ "16bed27a9c005817ccf111",
-+ "5bf1d1c71be0c49ad75d9a",
-+ "6d16d10feb1728044f2dc3",
-+ "3abbf8af06f889daf59c4d",
-+ "45769a307f5593bbf72056",
-+ "2a640efe463008db4ed634",
-+ "57f0f7ecb2d7dad43748ee",
-+ "8000000000000000080000",
-+ "7aa96a9fbe718c006a48f8",
-+ "24086a392ab75e649d3cc1",
-+ "9f20b6fedc099ec575691",
-+ "313d62eb5f1104de5421a",
-+ "438f5c0f163a4dfa04e5ce",
-+ "63137369b8d47b6c9c43df",
-+ "4ceae8c6ea35dc274647ed",
-+ "465f3b1e25cde0e446d90d",
-+ "9f0c9a93eecf4de349628",
-+ "3addce3c43218484acf509",
-+ "101d83882a81d0147b4342",
-+ "4585b77fea18a0113ff609",
-+ "73e92ea015629e3728aee0",
-+ "257564a39a648e17d015e9",
-+ "2f927b360b2b43bff822dc",
-+ "328a9932d6b08a41a1df0e",
-+ "207ff6a0da7f13b316c4b0",
-+ "4b11585991700c233f6773",
-+ "77664e53908d00007d1205",
-+ "434a5edb31a9c3c6a0243e",
-+ "692adfabb87ce969422961",
-+ "3eb189e2bfcbe180703cfd",
-+ "367efb55edcaadbb5e4f2b",
-+ "4573a56ada0a29d31dd6b4",
-+ "636f015a0c62753b283d5e",
-+ "158e9251ef94651015ecc3",
-+ "ca30526530b6f6f0c8fca",
-+ "20b1838f00aa00d07f70fc",
-+ "50c65d8772a3d5db269535",
-+ "47262fa06b9c5ac8138f4f",
-+ "d4a270719a348af6d6c29",
-+ "af99b9d024438cfe9df66",
-+ "2a5043ae183d338b7ebd55",
-+ "7b85e0b99eff408f2aa978",
-+ "282774a1f4bcb14e6723f9",
-+ "58137399c99866772aed9a",
-+ "7b7e71610f1589da383c31",
-+ "1705c133c7ba24a2b5c528",
-+ "336a41277b427813eaa191",
-+ "78ec94c22ee912eded5499",
-+ "1f9e8bffcac3e1471f7cd6",
-+ "7e688d1cbe7e0a84a0f408",
-+ "50a70d2086b5ca78a90368",
-+ "16f5569ecf073acc30831d",
-+ "720d9e52c4aea85ae24480",
-+ "15bc81dd36a0393963bb64",
-+ "633dad9eec0d451652bf40",
-+ "3d433adb4bcd914fcfc4",
-+ "ae1614cb7437dc6311ee9",
-+ "504e8f5ee0e51320af92dc",
-+ "4d55039bf17366425f055a",
-+ "2ad535a50fda15e1835526",
-+ "4f5cb9e29c3567f8c1b22b",
-+ "409705e5654888d8af2f47",
-+ "145ecffc8b532b7855ca8a",
-+ "4a79a4d35e92cbac8fe0c0",
-+ "7c2eeaa3b5ac7ca26ee5f2",
-+ "b44a774aaac3d4d335389",
-+ "488702c5b90021b8b24933",
-+ "62d4635d0bbd6bf8fab17b",
-+ "47a6912faf0eba695a3f82",
-+ "5fea5590381b705c4ba54c",
-+ "552dab94d8fab803e3abe6",
-+ "622e4bcd237f601b3f864e",
-+ "6b6195f4939abc517ea1fa",
-+ "7ae4ce9746d1a251afde2",
-+ "5411d9720f633bf7a356ea",
-+ "93d0f45c8e78eed19b2b4",
-+ "2cfe955ebd8c7e4615715c",
-+ "4680ebb5e7e7fa1e676838",
-+ "1cbb8749de080f5bb23b75",
-+ "33fee942f43e9b7d2118f",
-+ "4ef1c6a1bd63bb6b6207b1",
-+ "1c1f24204ec4b044c10ff5",
-+ "3561d1a2752f1d17dd5823",
-+ "782fa87576f745d6c5a644",
-+ "68d895a65569cf3ef3e3ea",
-+ "46c01f4170feea6c601e12",
-+ "7b8a17b08fccb33f4b7d6f",
-+ "6332e8b1655b1a7193eb45",
-+ "6649997ef28c919c6cae0f",
-+ "55b727631edd20582945d2",
-+ "1adfa664cf45ca975af0f8",
-+ "34ca1ca17d4004b63727d1",
-+ "46bc16d9041c2bda07b158",
-+ "31afe414b9e841f105214d",
-+ "4bc252b0fa653478344f1f",
-+ "44b0628f84b11c5e71888",
-+ "7f821b6d896942293448e9",
-+ "125c7d70d2b6d99ae885da",
-+ "49fee8b58237dc40ba3c5b",
-+ "5dce9f322e405cdd3dc195",
-+ "4e5afb2e233daef8a9bbcb",
-+ "64e35a2939773b306ebb74",
-+ "3cf63e3a65a7e509ca6dd4",
-+ "1f88577ebb6a87d8478dfc",
-+ "5d1cdedac3c1f047923b22",
-+ "14b8d711e9732dc1d81b85",
-+ "63ca1ec0700483b8f859e5",
-+ "345343979af3beadfaced5",
-+ "3aa36ece405e3ccd9341ca",
-+ "5c37d517c640ac7f62a532",
-+ "68e1a6376fdb4eb7b4b0e6",
-+ "69a00aca76ae6e660be7bb",
-+ "1644cc3e7fe80220ef2f70",
-+ "58689766e836a562c78c53",
-+ "2d83b4eaa1c8f768e56c30",
-+ "11ff8e8d5e956398c99ca4",
-+ "66de0cd9d504d0c8a10caa",
-+ "f5d2bac49777fc8f10242",
-+ "30436781bd712f316b4895",
-+ "7a7cdf214176b6d3191883",
-+ "64f3d838badcddd9bfdd0e",
-+ "190017f50befaddece16d2",
-+ "21a95826890e5cccb8a83e",
-+ "2c958c952c5c886c2a60ad",
-+ "3f8ccc4c495c412c1876e1",
-+ "901282766f87bc24e50af",
-+ "67fe63e894b36bad057249",
-+ "35ab264ca762acbf67e1de",
-+ "65b1a43ebc40ff17757bfe",
-+ "1e0b5aa4ebf1898b7232a8",
-+ "5a3548ae1dc271964cafb9",
-+ "26e45399ef9d09b479c0d5",
-+ "ff910ecf2ce1ed443b3a7",
-+ "15dc7895737fd27e2fc2d8",
-+ "306cc735643548c81d480",
-+ "716be1338eb9fa3160de8a",
-+ "37c639bab06813135e6962",
-+ "18d28f7c13bdb1a27fc315",
-+ "48dd5aa0d80d3fd4d31225",
-+ "308d7af9cf09073e61779f",
-+ "659ccea55ad34dab51a321",
-+ "25f3d9fd234440b97c9821",
-+ "5c0de6f6c164f44c52de84",
-+ "30927374f464c892c53b50",
-+ "540974d1b3361c5ccd3a2",
-+ "a0b14921f2ca115669309",
-+ "157e5726ec48e98ea5652c",
-+ "7c50148337071a44808f27",
-+ "54f01285acb2da9689a386",
-+ "569b68c3d77231282d1705",
-+ "7593ab2f13aa524b76e104",
-+ "16a7968fcf87b51aa207b",
-+ "2b1199cb9ff7848ec581",
-+ "235057c5ef06d64b0093a1",
-+ "3ad2c2000ee1db409ffcab",
-+ "46dbd89f4ae0d06c0ab8e0",
-+ "7fe713df2e65b878c1edc6",
-+ "4f0b0a9e8338cbca398b3f",
-+ "67ae16da8f876a2c8dc80f",
-+ "1bff1788b61c434292f278",
-+ "137786296b1e5f466871bf",
-+ "413062fa329dcbe3b8887d",
-+ "76a4bcdffe1207b9c84c3",
-+ "394ca6d6650a3a703c8f0",
-+ "7ec0ec060d3788349445a5",
-+ "5e6c438c53b4bfbeab6a4c",
-+ "1cae4d5a0b88eed0b2d97e",
-+ "37150fd6c06a98e84f0fb9",
-+ "5e5c9c54f1f75bcc98d1bd",
-+ "7273cb20026d3e5dfa9567",
-+ "23675569b6f74cecec658",
-+ "4d84d472f48a1f27cda4fd",
-+ "52e4d0f780530e040b8198",
-+ "116822d6715118a8643140",
-+ "2fb2d651d1a5fde2dc4d89",
-+ "2cbb69d06f0ba3051ce433",
-+ "982362cb3f64fc2535f18",
-+ "ce584760ca84047b25a4f",
-+ "3d32a6b665f10a829cfff8",
-+ "228eebf60c055615805405",
-+ "4adc76f7cd88044421953e",
-+ "4f588ef825e26e596e160c",
-+ "464063c0e0f5e5eae1bad1",
-+ "231a1fa6a52f8377b2ca86",
-+ "3b663e3e9013cab9326fc5",
-+ "24716274d6f1761a2e503e",
-+ "5eb0e751f365585e4f3fd3",
-+ "1c63d031374620336f8c7a",
-+ "6ac96f98fa78ffb692afd9",
-+ "71f7ff7f6245492bf4ba4d",
-+ "46b7638024bbab6f336734",
-+ "2d3b2e3d52eac5c09743f7",
-+ "2bf0a5cc2a5150523d2e64",
-+ "1f7e1880120c76703199fa",
-+ "27b48290f4bc222f54681d",
-+ "274cbe37d4fe65732936f",
-+ "5b872486f12a68a939069d",
-+ "76c344db7c98c1b1fa25d1",
-+ "6745627963b760ee39ad1a",
-+ "2d30342ea20393b89b038b",
-+ "51e2ff830fcf99b4147ec",
-+ "764156f5d90616c8c45669",
-+ "19d3eafc75447dbc2ce4d",
-+ "4348b708829c7eddd56237",
-+ "605ccf0922a0c35f768933",
-+ "86aa65ac1949dd8af6918",
-+ "2e564f6ba5f6f74e33f2dd",
-+ "54ec1fbecc620b2a62de33",
-+ "da96dc29f77c98efd9a65",
-+ "3756665d23e5dc56d35905",
-+ "7108a03a28803eb91e8a0a",
-+ "75fa74ccac539d6f2e079d",
-+ "56f539741375576aac816a",
-+ "78ab001943d18ada1f6d03",
-+ "7a283d5e2ed98485e2d260",
-+ "7ca8eb46f6df31902607b1",
-+ "3a9ec75af3c8e86b8c1b73",
-+ "61df6c089b8a0a75da0288",
-+ "3277a60ca85c986d50dee2",
-+ "4afa034c14d96f077cc41e",
-+ "58ca4d190a0f756173e746",
-+ "33e094a7802d99ab1d9620",
-+ "4ae3a5f46681ba13e649ed",
-+ "6369f366be6b5ec99ddddf",
-+ "4ad5b5ec9142810d730c91",
-+ "520d75e4874b90e95d0ac6",
-+ "56441a020eb196f9ab47f5",
-+ "4f100cd2b63ef0cdac7165",
-+ "1d72e71f6a57243468bc42",
-+ "6102d4b92b578db1756028",
-+ "6cdde5dc50cfba13ab15cc",
-+ "6a2bde70b440f36a3a69b8",
-+ "40afd831d872bbb5ba2dbe",
-+ "52a170878e73d2b9a73398",
-+ "363495385d4023abd7fffb",
-+ "75ecb6eacac31eec1c8d24",
-+ "38618fda51c023d44b41df",
-+ "1b12fc1c7d3ee5cd24b30d",
-+ "428c02c3c8bb1613aad2fd",
-+ "6e925cc1e63747fc8301d9",
-+ "1711e7c4ddf7dd725f454a",
-+ "6543f2ea86c39aa319b565",
-+ "4f88d842683a24f7a78b4e",
-+ "6297ed8d827bde2f27c592",
-+ "7a4c62248fb05a7ec5f894",
-+ "50873f081856faa7b0c6c0",
-+ "4a5c54b88c3afab5d73bb4",
-+ "93ecdd9b52d588b62ae9d",
-+ "1dff7b3a25d6efec89d4f1",
-+ "4eabe0db8ac5d733acae29",
-+ "2d0a5221661bafe1bae3a0",
-+ "86148c3559c855d7a4785",
-+ "4576a87293566d06f5b643",
-+ "2c941d4c1c7d68ef593ae6",
-+ "2c36a4d87847724f9fdecf",
-+ "7b5f04e933b2e4204cdc65",
-+ "774b9d1f08bb74ab682979",
-+ "7c1fdd60de643e750fa1d",
-+ "682291bfd680e2cd8f9d70",
-+ "30d33e090854573dfd98f5",
-+ "3860366ed3637eead94b8d",
-+ "6e8b7f0e9607e44c1f9f65",
-+ "720851fb976798365a6829",
-+ "f5eef843bd404a6869b17",
-+ "2a8c9eedadb6f6d58c06cf",
-+ "232ce65586f95692d89383",
-+ "d5835b5723a9063a2dd80",
-+ "72316f1be6172c06994a4d",
-+ "6a44a264bb1144d86619f3",
-+ "5451512089afcff74e1bd9",
-+ "557e56b5a5dcf30ae5f48",
-+ "2a2840d0a8db4a22fdfb53",
-+ "71e107fc4c98b40c6f7b53",
-+ "68c711e371efbf9b278db8",
-+ "31b42ccc858ccceae34d5",
-+ "47eef469d5e96dff3b60f7",
-+ "622155e1a7c16eb9e6f098",
-+ "73037907fb5b7e20bf7973",
-+ "2a5beeac5cc34b9b70fc5c",
-+ "214b26c5cc4d2d1d455254",
-+ "3326fb026bfe153a5a80e5",
-+ "2fd395d2076e94e7f79f79",
-+ "1da6208947854d10119a62",
-+ "507a197204651599300f85",
-+ "60e1157dceceaecc3a16c9",
-+ "179c67b2886cbf8a80171f",
-+ "4ad8d4214e4fe01b143d8",
-+ "594820c775fd57d86cf9af",
-+ "18932d3a50056ecbd4c0",
-+ "cc47e7e925da6c91fe510",
-+ "5ca455ab52339850752f94",
-+ "31934713e4ff1d0d7cc583",
-+ "77747c8e4550378570ec0d",
-+ "44fd7c4168c2a61413dbd2",
-+ "278331e342f211746f0d9f",
-+ "13022f601d429947abd201",
-+ "6d5ce69503f658697314d0",
-+ "30151eaad7aef0e79d5e07",
-+ "3b6333c6dc16d5f4351c47",
-+ "308b1811fe8c7d6801df6e",
-+ "1316737cef6e8d73f98c46",
-+ "34026c0467a5bb1302960d",
-+ "4374fb07e1eb1efc714a7f",
-+ "13089f86ddae7614e1f733",
-+ "91782b2d8bf1ec8b6e4db",
-+ "739d86f4db437bd59681d0",
-+ "2e99bf2a9cfd14eb01e4dc",
-+ "1f372d16a7c783f301d859",
-+ "3fd38eb64df431878b817e",
-+ "1b3d8a50e5425c7a4550f6",
-+ "2f775dce855cb22a4ce4b4",
-+ "1856ece5542adaa42b18cf",
-+ "72bad07fa5d3ca19811efa",
-+ "210aaed4cc7b55edc4255b",
-+ "13ef893fe161bb05038778",
-+ "394242cd2ce4d5c927b1f7",
-+ "2d8ba9bb83d8b7dc77cc32",
-+ "4a9dee0a96c91e7cd6d7ca",
-+ "3b62b01334bf25d1f5d560",
-+ "3c11b4ca34c3237b362a26",
-+ "9ae11d1f0b2cb73496a44",
-+ "7d10d41f081cc53194454d",
-+ "3476974a3a56c244bcd4ac",
-+ "2d248bd8de364598100d1",
-+ "371b6d93bf32954a1ed005",
-+ "2f9195fa1721a36e6f5198",
-+ "b5ea9188a76cbd4490c2c",
-+ "67fe64c68be6372b30260",
-+ "2582d22d55dfd72b2d70bf",
-+ "2144bb26c3488be851e3b2",
-+ "69cf5ded5037b0fc848b28",
-+ "451cf4e4a6ce149cfc4095",
-+ "4845e19f6384ed5724d8ce",
-+ "5c721c1e9f943f1e44c526",
-+ "6b628f924b031ff396258b",
-+ "2db4889991fd96d5a3dbfa",
-+ "75393667821938c0e5a628",
-+ "2e37e64613e6e49f75ff6b",
-+ "7569e0846a7c92c5b07e91",
-+ "544e247e73028cc23b1f51",
-+ "2e14fbc2ca9b056ee6a0e6",
-+ "5c96c4bf9c30f05dfa52bf",
-+ "30455197024dac28f22ad9",
-+ "16587b1213183c74388d6a",
-+ "62a6ac9d0c5e4b3890d61a",
-+ "5d0e736ad9b0e048c53cb9",
-+ "29c81a2bbc75ee65e40fbe",
-+ "a5803d95905530efe4cbc",
-+ "45fae251151688f6948ec3",
-+ "34de10a25d48bbec6bc310",
-+ "38e1136120c0a50e7c1942",
-+ "4be7ae42a1b71df0fdbed2",
-+ "70eda2a92c3f3d551052fc",
-+ "736e4111350ab36a2be4ca",
-+ "471e19dff79f0bf8dd75e4",
-+ "7c4c5a07ab45db64032f8c",
-+ "3e8f3fee79b0aa7d3158c9",
-+ "6803ba4d96f3cea5b5b619",
-+ "645491f7754448588100c4",
-+ "64c773513b07ac7be226c5",
-+ "1207f0afa9b17ee1e3a14c",
-+ "1a5a3601f9e5c757413d21",
-+ "671a35180c429ed6cd73d6",
-+ "3f719d970328ab86444133",
-+ "2eb29dd03203d9dedca2ed",
-+ "3ca5432d73f30360d5e251",
-+ "ef9f73cc5ae815a32ca63",
-+ "76930d75187c32e1c0855c",
-+ "297ac6d1d91b19c8ceb3ad",
-+ "4d06acabc42f8f6c6561a2",
-+ "17f90d7760ace90b4281fa",
-+ "79973f898e87ee6433e53e",
-+ "1177a186084a0188e6b25c",
-+ "46ea372cc256b25d8bedb8",
-+ "9d0d5139d46e4d9db3662",
-+ "31f4e6b45c1cedb6d4c94",
-+ "222ad5a5eecaf564928d05",
-+ "7bfb517a9a7064f7f0b9cf",
-+ "88d1f466f33239ebbee3e",
-+ "28c8b8ba9341ac37c38695",
-+ "430a7ef273c75f6860a9e2",
-+ "5963fe850d852bb19cdfe3",
-+ "57ca180b4c6f8c3a63ae46",
-+ "745f8230228fe0e913a537",
-+ "6495ff035413be2b53c45f",
-+ "1825a2f6c03df8e89a424f",
-+ "4ee9fe013ba8fc6ac8d470",
-+ "7b7c35dbf0dd6b94d050c5",
-+ "a70e6c0e6da7b5bd943d0",
-+ "6904f88af6eea4b3f91bbf",
-+ "5ccb3321bf79805e3743ec",
-+ "40fe888eb50954f82f8f41",
-+ "1683c065332572cac40e7f",
-+ "265a6fe3ade48b79bb704f",
-+ "6869e474162fccd5e6ce8a",
-+ "1621052353e1bb38663f44",
-+ "5206d5cc4cf74b102b511e",
-+ "459fc4d70a1a8040309b48",
-+ "1a38abc6055dcfc6f54cd3",
-+ "6de250d6d96fba0a4a2df6",
-+ "521255c27009b10aeef14",
-+ "784a6ea72c75433fa2c1c0",
-+ "1c429a8aad032b85e815c6",
-+ "46ae03b83630be869f3f67",
-+ "468227ba06af62fa70d6b",
-+ "1832f7608c30377f8a27c1",
-+ "74e8524ea4276a1585abc9",
-+ "479f0a9b95b8f0e630df10",
-+ "6c9aa8a230f91d4e6f84c2",
-+ "2020839307f0a0b2a66465",
-+ "617907260cf1e3612508c0",
-+ "50b259ce6ef7786ad19380",
-+ "60ad8426c5228781a660d2",
-+ "640821dda0f544b159e25f",
-+ "11216382d02fa8a680f2c",
-+ "3b142ae3f666b5a458fd6",
-+ "50d8060a4c81ac0d9dcc9a",
-+ "656e0aaff42e8f100df7e1",
-+ "6b189bed3e1ee805a7089f",
-+ "587965194057ffad1ed72d",
-+ "7c91adf751ba7b800072a4",
-+ "66c37766a09f2454161188",
-+ "2aaf602c5ad427702561f0",
-+ "1fe772e91ad75a2d2792c4",
-+ "432bf33542ea8f8c0e1cab",
-+ "108be849403d8b9e0adadd",
-+ "1f098e306099d97f37bcee",
-+ "15e468fec0387d9dcde2e9",
-+ "35a56ed2078e145e9b5d42",
-+ "3450478bbaf1db9aae9e0e",
-+ "5819cdbf42afd2334f96",
-+ "453649c203cf983e439d84",
-+ "6e6871265fe9883143d121",
-+ "14b7709b903167ca33c0bd",
-+ "5bb6095d45a0253a5e3e2d",
-+ "604b2e853911ce83225aba",
-+ "7dcfee63c4d594e4583601",
-+ "245ff16a71eb8c45257fd0",
-+ "51f56cb5201bdd22f49e70",
-+ "1b50ac3c3f5269c1d7aa40",
-+ "68c11de19f57751aa11e9b",
-+ "73da067d52334a718631ff",
-+ "63f2b709d7c6ba1ce60255",
-+ "6a47915604a062b94c626c",
-+ "6d15e33dfd91b0adf65ea8",
-+ "36b718d293f968b4388def",
-+ "38b2a18fa105ae1a1e82c8",
-+ "456d747923e7fcbd260fae",
-+ "17a8f2f3a036b54c467b7b",
-+ "4cd6b5c75a375bce549db5",
-+ "ad8ecaa59795b2101aeb",
-+ "5e89ffa159d58051edf13c",
-+ "48457eaf5bfbcca641689",
-+ "11e987960e92f0cfe9e7d",
-+ "484fed0412b66b4ad6689b",
-+ "2567685d25fd668a9a024e",
-+ "5d36dd2a4f038c91a8e525",
-+ "78386c3f2bea1d92b0136f",
-+ "6ecd91e762474ea500bb02",
-+ "460dae8d89d7708b43a1c7",
-+ "3846b043ea9479616ae948",
-+ "35d846be55b3952e278ab9",
-+ "697bd2294052d067eed5b",
-+ "29ecceda91e2de99bded7a",
-+ "32c247d46291051243da8b",
-+ "59d6c2db6f995cfebbccc9",
-+ "5628eeca86bc4f505da4a8",
-+ "4450b05b160d8c53288cd5",
-+ "5d0b6fe03f574db311d01d",
-+ "7059a8ae14b27b87ae7942",
-+ "7e37627adf10efb14adf13",
-+ "4dae59d140c542483e12a9",
-+ "26246e8fdf408dac8fd2a5",
-+ "2d3baa252f4d982bd2ad11",
-+ "266efd2e0daff29e309d38",
-+ "8fdbca74c18894d421e52",
-+ "7cdb727ae2bfeeed50af45",
-+ "490df281db25788739ca0c",
-+ "324340f1f7ccc9eff05524",
-+ "595eaf076defb81f21236",
-+ "22aca8e5833c97719ebb51",
-+ "421f5a540df5b7ba309bc8",
-+ "4cf40ea87be0baab3f0a23",
-+ "78050a04d755b7008433fa",
-+ "70089a05ca7765b8ef62a5",
-+ "6446d75a31a4956c235943",
-+ "3bc0b4b12c4e0d37097319",
-+ "6a6ceb53a9e08bce60e22f",
-+ "5527257327c4eade309a67",
-+ "5193e0be567990b2818200",
-+ "540f6a5d04324cc6ed1398",
-+ "d79412155f3d978866277",
-+ "65e3000fa520e5bd8bfdc3",
-+ "988dfd270fa06d78d9fba",
-+ "6bbfc916f60c65ff6069ae",
-+ "22a2f494120b7469421488",
-+ "5514a9f97c736ef89e2558",
-+ "494a8aca14d077b143ca10",
-+ "599c6bd84b32b97e000cad",
-+ "2983f80020a9f6532ba834",
-+ "39395b9f947ccce230cc1d",
-+ "5eb549dbd9b640a1018c4c",
-+ "3a948a48ee72242647aeee",
-+ "5c0b858603efe861d8e554",
-+ "18af2f7c66ebae2215b225",
-+ "7656e2bcd13769bc7d3690",
-+ "1d345a329131e03407a9ae",
-+ "6b91d4c08bfb155d85a09d",
-+ "c5eb765e74f7ea6040509",
-+ "347e522bb35549d788adad",
-+ "3c2561b4603673cde220ff",
-+ "78c36b7a1a1ac86080796c",
-+ "34f1c6d5946b4f8e9c34f2",
-+ "1d82fef6b5daac184a21bb",
-+ "11e3b65e520ccb94e0f28b",
-+ "53ee027a60ac6b8703b4c4",
-+ "252a9565fc2ed88c83afe5",
-+ "2c748923f66e9b836e2956",
-+ "501c73bb8897e8a9b644da",
-+ "527df835ccce3d0d8dc6be",
-+ "753e3ffd723c55ffaa57eb",
-+ "27cf1a1e36d6b6fbf673f1",
-+ "303e55cf5d940fa1eb0863",
-+ "483592c4cf34d97823b087",
-+ "404518992cad409d30e138",
-+ "247aa73439f114a2bae1f5",
-+ "43f106dd9b706c7cbad455",
-+ "60de98af5b2e9794ccddda",
-+ "2bbb60823308802716b002",
-+ "5a4b0bdbb9a3eba57ecafc",
-+ "7eacc570a117e3d2c4ad3b",
-+ "b80a7edd7c5745e63c50d",
-+ "3d2c4d19f97ec14b7f9a20",
-+ "8e1dc29eaa3429a93416f",
-+ "16c859dc1504abc8bebb3e",
-+ "142700479fca005e365a5",
-+ "1a5a69890d5f080ad27aee",
-+ "333e4709f384c49fba280e",
-+ "773e49f5dd28ab9abcc4f3",
-+ "7fcabd5ff8d8321877d09d",
-+ "392447173660d27311fc56",
-+ "3b607643718a1436cbf93f",
-+ "3d01c0ebec513aebdf049d",
-+ "115af287df30e3b9382159",
-+ "217e1d11ab05e37175e942",
-+ "43240f690e895ee2ce6199",
-+ "6473a7fe7461369e02b551",
-+ "56d1b28a25e58905b948d1",
-+ "5c08c8490ead830327cfc3",
-+ "60d1cb028fdf2f7506480f",
-+ "6efc437814b1b1a8db77d5",
-+ "386903ad1ff043a2a203ff",
-+ "113203b24e05e4ff03bfc7",
-+ "2287f22a43e09d12b5fed1",
-+ "3fc330d82c00c3c98129ad",
-+ "5bdacc4f0e9a9f3c5eb7f",
-+ "43ad0b393a7c2a4d667efc",
-+ "4d17bed73f2032142b03a3",
-+ "72492bafc7adaedde393c7",
-+ "161741a6fabf2be3cb74a",
-+ "3253a13971cf24cc306f4e",
-+ "3566ae3cffa53b48308a5c",
-+ "772853e9593804a23d0c9f",
-+ "58d985a1111ffbdece42a",
-+ "6b463071583d5d51119c18",
-+ "58ab9a24dbad2ee2c0942",
-+ "7b625b197eb76a08b19ecf",
-+ "153d46a7ad0d4c7b81a83d",
-+ "560bc3397e1eecda48e8d6",
-+ "3e27d166777ab6af4a4b75",
-+ "10a7cb0c646bfbfaf6b1db",
-+ "abe7e5169767e92b8517c",
-+ "46bc67034da17d5b7c72cf",
-+ "16c1a9b3bcba979d2fb250",
-+ "20573b178651610a410e89",
-+ "46c829e7e1980bc26c13f9",
-+ "3428c448a20f463714e16e",
-+ "7be85a588e4f01b973f9a4",
-+ "382238b03129ae3a8cb2e2",
-+ "8b93e9e7ea54df6ea61e0",
-+ "dde95ff1403621e1e9c39",
-+ "b3a488e23273b8e74aa2e",
-+ "3af2323baa99fc6ef534e0",
-+ "6003c83a8ae5ae42a0956a",
-+ "2ac52045b3b592dfbeeaaa",
-+ "7f29a05b16052f06eff50a",
-+ "1eae59f579b122f18b84d1",
-+ "28593d93a1a2159e16cc13",
-+ "460f5f98b19a4d353358fb",
-+ "56efa25eac0d5f675af6b6",
-+ "73e9dbd2873c27040a215d",
-+ "5ca40898d5d325e557e04e",
-+ "405224a222d42397ca18d2",
-+ "a69b0e544c08336c9606b",
-+ "1dfe68dd4d69d0d5368782",
-+ "18bd8096de042467441c8c",
-+ "55f3bd5a345801aa67f91c",
-+ "5430c091f416778afc3f3e",
-+ "4e33cc0d26d44c2394c8d2",
-+ "2ac1793993d045ec4ea0ab",
-+ "a0ac3885d2cb22aeb977f",
-+ "1073f10b92dd8a202017b2",
-+ "23e36a6e12831353ac1afd",
-+ "71f02d980dd943488cbefc",
-+ "7e558ced95c8a49312174c",
-+ "21b1555bb331b89f928e6d",
-+ "75ea3318a1054593eca8e6",
-+ "88658ceb2447416239af",
-+ "7dca64fefd065e0893d874",
-+ "5f427b13d8351db71dc75e",
-+ "475c02da59260b083fa105",
-+ "5ee825c795f457b727b9e8",
-+ "124aa58a7e2a882689ba12",
-+ "797bc83e9789b064b51c92",
-+ "2a8b319bb90a064d3cc523",
-+ "5570385cc742f16a21edc9",
-+ "122e1cf4ba920fb923d0e1",
-+ "7fc9fec9506aa1a0661240",
-+ "3fc3680285719ed4f7e7fe",
-+ "7175ce67c0c74c440327c2",
-+ "503bee64726b7b32815f44",
-+ "5c4dc3dd9138eb7169302d",
-+ "3f0eb0b9bdbbe37f40dc5f",
-+ "5aa25b718982092494e872",
-+ "20b11d38582bb81886466a",
-+ "36baace22f2d7a2014dd1e",
-+ "27216bcb23514df00030b1",
-+ "3146d29fae3f74014572cf",
-+ "3988842f76572373c3459b",
-+ "6aacfa3617f47dce14015a",
-+ "581f2a492a4fe468c3971b",
-+ "4cc8bba01b6788222eb375",
-+ "5c00c9ce80be32396ca075",
-+ "28670ba592cd5a2625df3d",
-+ "14e47840962745e9f2bba8",
-+ "7f26a6c99362d1126b6773",
-+ "6eb090e9b1df79f4d2226",
-+ "7f035a794c44a6a57abf00",
-+ "1740e5e9a57a4e80eed5c8",
-+ "46b1961304e45b428bd48",
-+ "49ce8855b52dfbb878b2d3",
-+ "313ef612f2fd65f39c2e3e",
-+ "7332b41a9fe9dfbe59f71f",
-+ "41858e467a21a3938d60aa",
-+ "6234ffe0f938a25ce0f5a8",
-+ "1105d3c71c59dedcb33f",
-+ "7a75b868e9fb50140bd203",
-+ "68ae7d3832d31bce57eaf3",
-+ "600de685f1a4c2f4a236d9",
-+ "3684bf3ee3a2b8635ca0e1",
-+ "2bb74459adcd7029c9c35f",
-+ "b7347a4820635a5852b61",
-+ "249f5358017ada6567b747",
-+ "17445a9a60b0dfca9df354",
-+ "695d060b1aceccfdfa96c2",
-+ "a209dce8856336ebd97f2",
-+ "72059eace3671c76d67005",
-+ "6dafdbef06e817ec42991d",
-+ "47a38df2df7f516ac35f8d",
-+ "6a3afde1cc784aefb925c8",
-+ "112bfdedc3401ff20ffcf6",
-+ "3161bea37fcc040c6f6494",
-+ "6152b40d63a55e1ef6e750",
-+ "41127c781a5dd07b6ea357",
-+ "1df80784a603cde2e8573c",
-+ "2ad8c773fcdf92009db9b6",
-+ "5cd8f904c6a0e1c85597c4",
-+ "21532161ecdbdaac15b68a",
-+ "5a80f23e82161bfd2caa8a",
-+ "59377c70bed9cccb346cff",
-+ "212d386743b2c2069ec4b7",
-+ "26fb73843bff3e4d17aa10",
-+ "1f15e66f6c5b160801ec4b",
-+ "4024c6847ce50a93fefd10",
-+ "38419b7c213432cd42f4bd",
-+ "ea9789ae096da5bedc410",
-+ "23a7a59b35972768b71627",
-+ "60a177acbb4aeba955e6a6",
-+ "22d9fd1638450186756413",
-+ "5a49a0430b2145ead2e9a5",
-+ "7fb445fb34908201d41b44",
-+ "7b1e254e6050240b36eede",
-+ "44867f919f39bbc1ac8a53",
-+ "57c6f0c9d94e02524b4029",
-+ "553a48facee35f17214327",
-+ "5e3402a24a307a945167f7",
-+ "4ecbf2559411992397d1ba",
-+ "3adf2b6aaf40f5dcdffdf2",
-+ "156e3560db5a642c108333",
-+ "26f3f960b2ba725c83b706",
-+ "3135a042ca5b8873367081",
-+ "5778dc2f1465daeafbf88f",
-+ "142aa17e315b2096d3470c",
-+ "17b1690a9c9f4fba9154e2",
-+ "6f3d0d822d1a27088df8e4",
-+ "749ebfb4005c94ed288c4",
-+ "7f64ec3ee1d6fd7b5f9352",
-+ "3ea29dc49c06d64c187862",
-+ "322d1e939066766f918e43",
-+ "d1c5eeefb8bb620c573fa",
-+ "7d83ba89b9f89b55497937",
-+ "2f635c018151dfffc38ed7",
-+ "6b77b6d06b93487730de2b",
-+ "202d04fcffa7e3a0ae0585",
-+ "7351e32ddd53c7465f65e8",
-+ "1d5b0385650d2d81754f72",
-+ "5227913634dbd4b19ffe95",
-+ "1eacd91eb3938b38f0210f",
-+ "3ab4982748b8f986192588",
-+ "4a648c611ef0b3b0e318e0",
-+ "18eb41f414dd28e8ff3a1b",
-+ "28e33efab89fb4f64d6498",
-+ "1b67e56d8c8f6656eac86d",
-+ "27476789fbe89ef5fe00c0",
-+ "21e39ab39cd96423900120",
-+ "4818fb8f958698b6e9c9d9",
-+ "95d86ded4a7b26a1ad331",
-+ "1b2e283bc4ff40366c744f",
-+ "2db6e61499c9393946b57f",
-+ "3e8986648fb4053520276a",
-+ "5eec1e56c0a2d0e34dfc8a",
-+ "389d9fa841750626db108d",
-+ "4e0326164785519414d07e",
-+ "530f4c391aa2b0938eb272",
-+ "50c915d40aeb9e4ec78789",
-+ "57bf13241507b812b9a904",
-+ "3245bbf080c6731fee74dc",
-+ "11081f4b8fb8f0a9abf772",
-+ "7a75be28b1e93e4e0c9342",
-+ "174fdf0bcfc8d0f4e77e83",
-+ "46986d0da7a2c17dd1dc22",
-+ "68e88d3bc4e8d390ae4b13",
-+ "4a2580e03d81912089d88d",
-+ "201e678f30ea96fd17615f",
-+ "3566f7f67e026f0278dfd5",
-+ "30485371efc19b50bbafe6",
-+ "4dedb1ba2a6a4abde67337",
-+ "33440d7d3472a4b6e2f627",
-+ "591749051e47ee7b49cf82",
-+ "3fe61d12a0b09791925ccd",
-+ "7f5140ee63b60e0a33058a",
-+ "5eb217461cfa46d5694397",
-+ "6aaafc0107575bd9b70723",
-+ "3305f9d7ac9bc35ded571d",
-+ "5ef7fbdbf498c8684625f6",
-+ "3b66491ccee4801a4e3673",
-+ "76fbf6732402bc76e061d1",
-+ "28a37e042abf70a7cb137d",
-+ "534c1a3b25194e8cd66e6c",
-+ "3eedab106a435ef32b9e48",
-+ "6bd995ef31bcfd22d52d9f",
-+ "6b5da25417070642e0ba4c",
-+ "3d40b56764f7765513d13",
-+ "44bd0de2094b8b3759356",
-+ "312518f9c1ce1e690c003d",
-+ "f920b02af1e3bd673512e",
-+ "4ed1311eae64f9e834ee7b",
-+ "4d075c933e4b93da3a33d9",
-+ "133606f2fed41ffd77b999",
-+ "16b6721ea95f55ef631d25",
-+ "140aa7412f6488f5404826",
-+ "3ae99fca89d15abe091160",
-+ "543222604f067afa3e7558",
-+ "2948eda7d7c508918c3056",
-+ "4cb6253df884020966d27b",
-+ "46bafe88322c67f3b90507",
-+ "31416a7f09913059dc251d",
-+ "52d3cdd253b64a03c5885b",
-+ "1c5d10301fcf4a14c82adb",
-+ "5cd8f782abb8b60cbf36f8",
-+ "42b636bc4126dddf74cb00",
-+ "5afe15c1524eda9627e183",
-+ "783d012e8b928ea14eaad8",
-+ "45242101d43b276b34115c",
-+ "28b06d6b1f993702509e4a",
-+ "16ad879cfcd3e458301dc9",
-+ "78873bb7282961108e63a",
-+ "1c5b7d2b84cbc7b29bf542",
-+ "48edf77c0fc298b0491c2a",
-+ "398764fa3e177502af4d3b",
-+ "1d1aa15ce7c8c15f051ba9",
-+ "401a3ed45557939fa7eea",
-+ "13f9a309c929439a91df6c",
-+ "3aef6b8ad8d4f116a27e4a",
-+ "64b1dd5abc6713a8f53d0c",
-+ "73f4373aa0c46a1ae61409",
-+ "1ebddbaa72ad1a2b1cdc49",
-+ "2cd33d1f501e268643d591",
-+ "11b77783f411c457cf909e",
-+ "d92cf9efd7d12c62f0dfe",
-+ "2c56fdcda56f78dcda9b60",
-+ "118d29d91686683483dea8",
-+ "7e05b7c7d54cfa1fc7b525",
-+ "42c5d2d1082dd2375a4ef3",
-+ "26554ee3e9bedb1a3a09fd",
-+ "ad64cff4b4763a7fda09f",
-+ "5f9563c7ca70d6e5061bfa",
-+ "38d987fd4b450ee5a69286",
-+ "62af499c078af038905758",
-+ "3eecfda3b4d92af2b7e5ae",
-+ "5e195ccf98c9a4e1967fe1",
-+ "61c0e0ff11a378274b395c",
-+ "486fd3ea0158f33daf767d",
-+ "4cfaabac7104cbad2ed728",
-+ "714ed5cb0027168be15142",
-+ "ac5bf0492a63aa0bf597",
-+ "53339d5a01f3d2e9bc8755",
-+ "457d09be8a2a4c351b63ae",
-+ "1892726d56d4f8f92dde20",
-+ "236e08f8411de38e44c3cd",
-+ "5549ebaa872068aae68ac5",
-+ "11df54a696817409ff1164",
-+ "7f695021b246db24a5113a",
-+ "5267f1f68134d546ec646f",
-+ "4ad5e4985caa0c7ee63b9f",
-+ "3c5262912ab7e82ffd49c",
-+ "7f9a1f8e557617163d5e82",
-+ "31b2ef6b5163160bdce290",
-+ "127dbd62073fb0c17b4217",
-+ "5fe5a0fcee7c061cf49e8d",
-+ "34ce2df12c5e0970f682d1",
-+ "4f6148f444b84dfe82ecb2",
-+ "740e3fa0e998e741eb97cb",
-+ "5623f1c8e0d5c15938b2a1",
-+ "79ef58660a06bbc22f0cce",
-+ "35f48b300d21989b05560",
-+ "4efe7cc856d9eef4fda470",
-+ "43f99aac41b05d58c624b4",
-+ "66b03ec137e6361ddf6317",
-+ "4382f99dff4951a775fb77",
-+ "974b1ea8fc3d4665ea11a",
-+ "1998c4f90bb8b5465b7b1e",
-+ "a49f38b3c0b7ca1fc5c10",
-+ "57d421e876be8c87768c1a",
-+ "14c79375686a30f4c21ea1",
-+ "667b77d58f7f6b14e19bc3",
-+ "17b5a764867bc2f176278",
-+ "cf2bf44fe6c433cc00c9",
-+ "61619bfea73d2a10c7a7e9",
-+ "3908eb827c8209b96bc643",
-+ "e859d26ac6c854731c10d",
-+ "562d8222a0b94f5af3137c",
-+ "780a2a5411b159d83dcb95",
-+ "645cf2dd2735f1cbf53f1a",
-+ "6476d594392ef9fc9a3df1",
-+ "7df75741d3ccafb28da8e",
-+ "526d1eb936d1a3dec6eeb3",
-+ "1a3337bb0bc288bf44447e",
-+ "13413811d8a8e6bc2e6cf8",
-+ "54728697bad28cd0bcc9f",
-+ "2e178e1cc4f997792ce1aa",
-+ "f339d2f5ca33347ae8d13",
-+ "24dc2302a4b77b85525bd",
-+ "4779c6f70cb71f00e32d17",
-+ "20866732367b425f7e5ad1",
-+ "26c45bee1cb7e300fef593",
-+ "4f3fe475424626758ebe24",
-+ "3979e2b3d54a21e7e8c1cf",
-+ "50bb1918112bad3e57d523",
-+ "4e1bc7c2f29a2f520bcf7d",
-+ "3b4ae8aa403abef29b052b",
-+ "54765bab6ab2b394d9dee1",
-+ "5e7e83070de3b07a4bc87",
-+ "6131db76263e902f303f6e",
-+ "2fb62f0a2e9435830411",
-+ "57b341376c8eeb5e957326",
-+ "7d59312cf551555c728152",
-+ "3e13e95a38da382cdac574",
-+ "53e3092b891267552e8471",
-+ "ea04fd9db78a21c39b6a5",
-+ "42cda11218a2f5a8d7bd1f",
-+ "3aaf5736ed929c1ed0ab93",
-+ "6e93c69a7627e1f9832a61",
-+ "37526cf6c350fc29ecf559",
-+ "5640578c9a2f674c097c8a",
-+ "41ebedf12db1451af99b12",
-+ "66db9685c97e1039f97191",
-+ "61e21b9a255226ab8a9c03",
-+ "4d36c683652009a273c69c",
-+ "3e00e41664141664f70d8e",
-+ "734cae170e5d7d8758c509",
-+ "26c603e605263eb37ee858",
-+ "1cb50b0700a11348f864c6",
-+ "6b4ed91c3f4f0b25252206",
-+ "46436019c4b35e76ea4182",
-+ "44885049137a26d9ff4438",
-+ "1cf7470aa8bed908f93c32",
-+ "56d7ace10d6e046f35bc1e",
-+ "2bc7683658e815b0850ae",
-+ "2bd0c39ecff8d002f3a3f7",
-+ "2848634cb8eba43423c432",
-+ "177aa9fd51aa698c4f5d25",
-+ "809a8bacccc204134381c",
-+ "60483a9742002ed4918cd1",
-+ "7544304d1b3c2594fef689",
-+ "49ddb3e956e6fd8d65e1ed",
-+ "3820d1fc1eab75e925dc43",
-+ "7093b250c7b04c2c6d567c",
-+ "16870479234b3337ddc8c9",
-+ "18f39bb607de6b1ad183e4",
-+ "a5d62acbaf68c52001a4b",
-+ "65f33a2872e25c8a682f06",
-+ "4e66ba0bc1058a3931042b",
-+ "357eab1d6b7f6618503b3c",
-+ "5cac3c06df31850ad70694",
-+ "7e68cfb951ae556b15fa1",
-+ "7de8764ca6a43c99d6a50f",
-+ "329c1979af2fa92b25335f",
-+ "113149ff5647e02c5d8e8c",
-+ "5fde1fcd656f65c682e01e",
-+ "3a2bc2968347afc3827c67",
-+ "b7602abf832a9540b03b8",
-+ "28434971e0ad86e87340b6",
-+ "e24946eda2a54a4c98b6e",
-+ "318d2300370d914ed1483a",
-+ "776ff8d5492c149f7acf17",
-+ "50e46147373113c54d73c2",
-+ "59652c3042e742dab07904",
-+ "1e74e23fb34c50dc055d0",
-+ "3c31433d0db703e03c294d",
-+ "64666abc6a9a2f6a1c7575",
-+ "191da9b869e973d2fdfea7",
-+ "6c362e17e2173449bde86a",
-+ "1a8ed7cad7bcfca4620120",
-+ "273beeddd87cbae01c207f",
-+ "568f3917922fe83ad3e225",
-+ "44e6ec408ba05ad98e759",
-+ "32f5fb93813b0abef00c9a",
-+ "490db50fd1ace7e8ec15ae",
-+ "7630fa097aa2bf97cef6b9",
-+ "6ef800332004d6cda26cdc",
-+ "551ec7c1ae7ed078f940c0",
-+ "455927f484bb8820a2ccf7",
-+ "7933956672bf2e4535ee34",
-+ "2a7311c640e7cf0ecc141",
-+ "7242e44696c19a3a1910b7",
-+ "3c7a2b6b58424eab86f3b4",
-+ "359b331d03b9cc2451c1f8",
-+ "4169ab1c6bf3f0abec6c34",
-+ "6df855d5b158377d521892",
-+ "3c4374002a4b05edbee285",
-+ "209910d1159692421526c",
-+ "31dfcfe645b46b329ee2a1",
-+ "1e6874a8b307092ad6e72b",
-+ "6b7e91fb5948662e3961e3",
-+ "23966403e567312c7a8379",
-+ "2f62056d547ebf7995c6e6",
-+ "5fda42ececb40f359e4f0b",
-+ "18a6b71998f6f84fd5d814",
-+ "76f42929010d1ca7619b42",
-+ "50e22c6cf5d6b70def807b",
-+ "1cc96ab6764758e9cff09d",
-+ "59aa03a25735023ef97395",
-+ "741d91860d83d000328e76",
-+ "a9753c820825d73c04548",
-+ "4ed7cbd3e32dee7a40c626",
-+ "6ce70c288bc2711b1b024f",
-+ "59efda7d6a6d8e6aaaba46",
-+ "6ee757629a9b68ac7e690f",
-+ "328bf9a8c78ea2ca3388be",
-+ "59bb325b9748e94acb6630",
-+ "55137101093be9fb51857e",
-+ "9c6c4ea9b05d327c6b7f3",
-+ "77815256a969cddb479be9",
-+ "3b0cb59bddc94e18233703",
-+ "7a123babe2e7abafbaf8e7",
-+ "35d6d7bb2855d9adfbf650",
-+ "6ad95985d0ab8e8d823145",
-+ "2133efe27b28c873f101f",
-+ "607776583fcde0ad8e4c87",
-+ "e2d9cdfcde324e23eda21",
-+ "747c7a13b706fb28e46c47",
-+ "35d310b1c9f92e46c5dccd",
-+ "7248daa035ed0c83c2d007",
-+ "3c8b578aed4234d875a143",
-+ "766ac65aedf40f90341249",
-+ "3087f959a9893769198248",
-+ "49a34db8369186ccd3e18b",
-+ "69b04bfb64dc28afc90f3",
-+ "3732911ea3b78b2cc54de2",
-+ "7dde8d7ccd2cebd1d4b943",
-+ "66727c69de089e222307ae",
-+ "5a67c62d60522486e9cab9",
-+ "6acdbbcb1d87bb33b845b0",
-+ "1f1cae187cb4e7e2d75ff5",
-+ "1cc8bac063e7f4722cc83d",
-+ "1f75d643fbc4ab52296f51",
-+ "7b34f38b9d16f0d70ddae4",
-+ "74a0eb9dfa780e171aa5bc",
-+ "4366b19aa12542a30c1749",
-+ "4a1404c02a58e6862d11f5",
-+ "55e542cd768eaa4ab7eb43",
-+ "182ed4a29e8be479e40c89",
-+ "5eb96063b604b2d052b457",
-+ "d755ece5c8fed1e833d4b",
-+ "10f7a570b959918609b06f",
-+ "656a55d45a93fac53881ab",
-+ "60e3811062f0661e25f626",
-+ "24a843ed6770d822f92be9",
-+ "216b9b04319fd8da8a6d3b",
-+ "3e41b8ea3309221756df7b",
-+ "5a00aa930e50101d3ad458",
-+ "260985f3992a168bc7fb3b",
-+ "5c3df551863d0055925c95",
-+ "28b06a5b8a2319d5d78e37",
-+ "3567cd9077f5bb1d3115a3",
-+ "460858d1e253129bf64e5b",
-+ "485bb888b6979f8f201fb8",
-+ "7aeadbfb750a598afce6ac",
-+ "3cfed079405fd41004c118",
-+ "3dac1d8f9e9cf46cc42204",
-+ "2df246fe147cf6a7d9ed5f",
-+ "1a908fcb6be810a9e1e92a",
-+ "6c33a3a058504d48c17efb",
-+ "66e9cba0e526f30b7b9b8f",
-+ "757f2101d664083b2fe8c9",
-+ "18c5643eccf2173f575420",
-+ "7dd9082b6f5562b8d6ba91",
-+ "389d1e8a26db35e20882fb",
-+ "65172c59adde7fa1aa62e",
-+ "1a7c7fe62effcf2d1a2cb5",
-+ "392d9ae31bf22e0236e198",
-+ "3d886ee05f1bcf69fa4f70",
-+ "2c8f1060dc661c38044a5b",
-+ "16eeff7e87d3caf8e58a92",
-+ "741dd990ea20591fd9b5ff",
-+ "39bbee3cab035e7fc68b3",
-+ "4996f8a3f7c2c5fac02813",
-+ "36ded179138f0e4cdf1ee7",
-+ "f9d7db7493258ceea1a37",
-+ "2a6c238cf5c57a2939882f",
-+ "35dbe95730bed0669969ad",
-+ "290fe0ae5a419909be4e2b",
-+ "63839ba9cca448dd7fecff",
-+ "30a8e1972ee45f3e0613d5",
-+ "509ea21b16907067d06b82",
-+ "7633f58adb014bb5585678",
-+ "6c8fa526a6bdbce9f7b832",
-+ "4a78cbf6bef93b38948e09",
-+ "37c7b0fc4e875134c29246",
-+ "4c996629390ea0954eeb1f",
-+ "222dacddb6e77241cadac8",
-+ "2df2bed0dd9ba405c8c5ce",
-+ "3a7c703f2642b17eba0c69",
-+ "22e8d9bc34a96264dd4caa",
-+ "4bb8f4e111d078e3c54590",
-+ "69efc15f2bab10979940b4",
-+ "4e1b51392bd1ad38a51d00",
-+ "5e82dce0d15b40d73e81bd",
-+ "6a410e486ad693817f9d31",
-+ "5dab9e18ce0b8340db40a2",
-+ "2df0f496cddcc699504250",
-+ "124c113e25b1a8153a830d",
-+ "28d70ec040ec983aded5c7",
-+ "7a93c6e177d746f5eb503",
-+ "14c9d693e42997dbc96df3",
-+ "50755ca653aac70b84b12a",
-+ "5f72010436c71470f190d9",
-+ "1af9124bffaade4351e990",
-+ "5fdc8856cd703470a1e5a4",
-+ "10b57d68a8cfe14ef3ca7c",
-+ "245003f901ae0a356365b5",
-+ "63dbff9398c6d2cafd1418",
-+ "75c2ce5e2535ac7878196c",
-+ "15c08724b1daf7a590d087",
-+ "3dc7ec06146d405216b267",
-+ "1fab75ef67bec61a68a277",
-+ "711d3de6506cffb89d82c0",
-+ "15b79d2a607e674b1df02c",
-+ "928d2a95f60dac2e280f3",
-+ "2db6d4b5b7a928883df97f",
-+ "522bb592e89a78b316244d",
-+ "cfbfcb607ba616c016fef",
-+ "13d6f0fac0c0b9cd891715",
-+ "12a8a0e9fe6ba5c3656149",
-+ "4553e500c491eb2ced6e1a",
-+ "368d20177281b04fd8018f",
-+ "2579cde0e8d37e04167a12",
-+ "2f4c8ebd42ef359c5ac79b",
-+ "7afeb7314079bb05948a57",
-+ "4dde9b7ed5a96934e4dd51",
-+ "3cfc7a65b66e9f8c6f8cbd",
-+ "7453e07405f19cfba93c17",
-+ "18488f368798b8734164ca",
-+ "532d2ff2bd9d0ca8b344ee",
-+ "18704740809cbd3a91bcc8",
-+ "1a91a4ef4625f7ae911f1d",
-+ "26240f3e8816b599bb01c6",
-+ "60749c3a015660029dacb9",
-+ "321405882a2a0c05f7907b",
-+ "6b85f2803d97e818e2e527",
-+ "40d9ddb7d82d86fe4dc6d7",
-+ "5bc9b4c686de112404ccc3",
-+ "49e219e4b19fa82e3cdd8d",
-+ "6b4aa7c57cecc522b32c99",
-+ "1152ee1f6c91b44b1faa20",
-+ "4f1b7b04b31a6d85748c8e",
-+ "28eaec99940a1b1f563841",
-+ "341ee0e329f6ab9da76c4a",
-+ "8a4219421d2f55bef801a",
-+ "25e4a83dfc2f633765d96b",
-+ "22a17bb1e02873c944cbe3",
-+ "4c4fa3875e78671bc1d2bc",
-+ "79db0961906e2d46b0b349",
-+ "68d1c5df4d9653be9c8e7b",
-+ "7e0f7a6620c31d72d9d568",
-+ "42af59edeafb6c79b9d208",
-+ "3d17d279ec6a81f53cd4f8",
-+ "2f1ba6fd01e5cf713f7991",
-+ "5c246c8d9baad4092bd7a9",
-+ "1c6a5fca595a1ff62b0a7b",
-+ "5c6ce5b29bafc437eda5ce",
-+ "709f8b4e1e81f78ecdd5bb",
-+ "619fb115b590487fbaece5",
-+ "5b917d89029b0850efbfd7",
-+ "2103ca88adecbfdd3370",
-+ "4e0f2086acba831702db59",
-+ "cebc8496358956c6ed352",
-+ "4aa62ab8f33741774c11af",
-+ "55925c1c09bda33b3d0e7c",
-+ "47b5376a6bf9ae1b5420d0",
-+ "5f305f39404231a1ce6591",
-+ "d0d6f30615b8f231bece9",
-+ "851fa3652b44e57d9190b",
-+ "4c099f907df9db8a25350c",
-+ "48cdee08fb7cd0c828eec2",
-+ "7399c1866bdfc2ee9d0ba4",
-+ "7da4d79cdf3d83f0763c79",
-+ "5de657154513d33b2dbb32",
-+ "4057d3883ee10c31d0c5f9",
-+ "139a5be9fe5d74b7b324f6",
-+ "4678975ad8ef4ef63ed234",
-+ "3a1984f88834905315728d",
-+ "5e53c14166e301e45a1c84",
-+ "1246f9f5df870b21bcb1e6",
-+ "6095ebe0914ab346aaab52",
-+ "173ef6d2228315e7fc8577",
-+ "71a2dd2f4561ce6b25cc84",
-+ "17f8a55fef5d58503cdf89",
-+ "2885d88c14361dbedb4fb1",
-+ "69cb489051468dc8b7a10d",
-+ "6552488fb7e68b138c5691",
-+ "3d5e0686efab87e5e7c266",
-+ "5adfc7a0a78f6657a5960",
-+ "65773487e5415b58fb205a",
-+ "1aa4bb2c56ddce8ebceb39",
-+ "1ae4174a64ea29d65c88b7",
-+ "2af1b36e871a2152d87ea3",
-+ "7118c95246463e79fab7c6",
-+ "7f31009d8b384ea51f9235",
-+ "5eb2b60c1d97e4dcdb09d3",
-+ "5ccfa76193ddbc64186a30",
-+ "1e31c413e16722caeb814",
-+ "dee72e6d522c55b461f4b",
-+ "18250945b23b28bdd1208a",
-+ "72e90ac5d748fbd2d7aadd",
-+ "10ad00e38092458e73fe4f",
-+ "1144f2116d6e426f3addec",
-+ "720179be8f54eb5c778be",
-+ "1fe4c7d7da3eaeaae25e65",
-+ "51a001a64a22c7bc0db3ea",
-+ "7d40cdfed339cab397652f",
-+ "1960ca77285b35812422e2",
-+ "421de31b9083741c4d4c48",
-+ "3cd3f5ea5623ce969c863a",
-+ "4b6b8f4e6118573075d4ce",
-+ "43ac29ece073be2a30ce86",
-+ "217c2392122f9868740137",
-+ "2b3dba5edc89810815d1ce",
-+ "7a9c1df7aec04dc00e3584",
-+ "74aed20fd8f19001dab562",
-+ "74f8ea2aa01f3e122e9ec6",
-+ "7f3f1310b0770a6a8ab4e6",
-+ "7377f9449fdfa779330064",
-+ "4d3d6fd7781e8ff3322226",
-+ "3629587577ea6cd990a3d3",
-+ "29ca62a9234f915c5c9715",
-+ "5286bfcb1951cdb460fbe5",
-+ "1b0dfe5bf791bf4d645e64",
-+ "150cbeb75257f8eed7903",
-+ "5ebda7b44a30093e22fee3",
-+ "6af9f591969edf6d33a899",
-+ "321ccac2ccfd73a0b28c6d",
-+ "fa6bb9b4b92165346e0ff",
-+ "603f9b3bc6733094104e23",
-+ "2e30617b0abeb387001867",
-+ "e419f0eced24d03400fbc",
-+ "2057d9029cad07c3d344a3",
-+ "1d4515e4768ff5c6b4178f",
-+ "7b5d99de82bacb33af7ee8",
-+ "43f53558dbb8a25ad757e",
-+ "4265efdcec74f163498291",
-+ "477273c36a749543489547",
-+ "767f863c9bfc5fd6540f44",
-+ "d8e9fae4ec5d3e7913712",
-+ "2ea5fa6c2e19e6ee7add96",
-+ "55fca6cb45a0501d1c50ba",
-+ "4e94399e1765146189df5b",
-+ "5accf03c1a20af1120832d",
-+ "137f8e05276cc8f9180095",
-+ "499667b1e22348ac584789",
-+ "7b87e87e1438c6126ab1cc",
-+ "46ea38e0c4bb849b39baee",
-+ "d922a909e3b3afea5fe08",
-+ "4700bc9de4804ec44122f",
-+ "54018c8917549d050c00a8",
-+ "5f8307f0589178f70f7238",
-+ "45b5b538c44c73f3bf515f",
-+ "7ad19421f012d132850842",
-+ "7adc118469443d4f7084b2",
-+ "2ae496e8d9399061460619",
-+ "49e01d719bf13fd52369ee",
-+ "e1e55a565534c74a109fc",
-+ "72bd80f062eb130b42b044",
-+ "1d616376b444140f9acd68",
-+ "48082cdc2a40ccd11ae434",
-+ "32a426cd7460f9e5c5e7",
-+ "bb247081da09643c00d36",
-+ "34f2e009d684c876c246fb",
-+ "3e2cbdf24bd5900348312",
-+ "507a6d1fd108a63234b38f",
-+ "3253e31b47819fbcec75b4",
-+ "3ae16fb3fb77d48c6adcc3",
-+ "244d1131736a5aea351d17",
-+ "682b3c7ed60ad7c985a3a",
-+ "22d6cba0f681e23fc64382",
-+ "14da7875e13efd461f7c10",
-+ "1ef2f8aa8266e26254215a",
-+ "22cd6c35ab2195c56794f9",
-+ "1d1b1bb20ae40ee8d35505",
-+ "66ba97928f262067fec230",
-+ "53e99cd5ced120123b808f",
-+ "7e698a24ee9aa726fc4b0b",
-+ "1df3eb49ffac499fc5f3b6",
-+ "465d9407cc9bc6456e974d",
-+ "48938572f05f540b474485",
-+ "ddf6be61ce9c04533277",
-+ "15131878551adae4b04c53",
-+ "14c7f40a28e01adc5ae1b4",
-+ "5cf912fba9a563060d7b3f",
-+ "1c85ed9416af845bb8e82",
-+ "1851d531ca021ad6f2b572",
-+ "4ad2dfbccfebf4c881dcf6",
-+ "16d83b4ed79a537102c236",
-+ "19e1cce82f85eff6f6b24",
-+ "589758587c26455b22331e",
-+ "59fdecdacfa91d60fd391e",
-+ "1eac63084c7797618dd9f7",
-+ "426ece55a7fd1d858414a0",
-+ "2078bac214b712936de507",
-+ "3e748cccf5c4b2e587b8b2",
-+ "232c5e33740871b389c8ba",
-+ "7b4210ea990dbb2b80bb4",
-+ "53b453f5f30f900af808e3",
-+ "49f7df71bb684bf5a54c61",
-+ "1174d8cdaeecfc5b7908d0",
-+ "6106124e06a73207e84629",
-+ "34242d89a6cc1d4e30fa9e",
-+ "74d978e8d6a9ce6def9aa3",
-+ "308787b80145ee403c389d",
-+ "36121cc69943c0f23f8a85",
-+ "6d5d0573b2f9596b50b73b",
-+ "5eb9037bc76a6930985737",
-+ "2c9401cd53725f84e2c421",
-+ "8c59c1948361c413eed8f",
-+ "1439532a6d3fdff49361fa",
-+ "42d71e3ed0639f1b07231a",
-+ "29785bd232aa4bcde009aa",
-+ "494c96ddeebc9c314fa5db",
-+ "2e1d98165a5897b1482cbe",
-+ "7a4b513ca25dc5d887768d",
-+ "5197b486ae5dad9284702a",
-+ "1d4d18f2bee14ee417596c",
-+ "1b8c24041b5c09c2ff1c0f",
-+ "19e87845fee8ee9d86794a",
-+ "dcb3217133998c35879b7",
-+ "61c60fa253a8977e213d6c",
-+ "3df3e3ff8b5241f9f120b6",
-+ "7e880bc1729d1783a14627",
-+ "7ef05035c2a08e050870e7",
-+ "3c234bbaf5da9465f9498e",
-+ "39fc8d30c95dd0494e9be3",
-+ "75b29426909e9c8294f365",
-+ "68ab0ae55863c4f8044101",
-+ "1a01c5dd382ca52c0f8a1a",
-+ "7eaf3d6220ab7c049341fb",
-+ "e966e5d5e80ac9dc377a2",
-+ "38aece2fe0c1923c569603",
-+ "296401a6101dec9b48a81a",
-+ "a5385b7f7d2a505f37187",
-+ "1c0a01fb60b92af636be29",
-+ "546f06ab10360a76005c9e",
-+ "463e980411d809a1713383",
-+ "6247c20f5e97453bb71b09",
-+ "7ed8ee73ca5507f25bd5aa",
-+ "5f9fe5fab5062ae9d40550",
-+ "d7315bcace04536b59c5c",
-+ "700ac125ecd365c309339c",
-+ "792ab4b2a318b2229df59",
-+ "6e8a28f3d3f87aa2548dbc",
-+ "53034f778656513538ce93",
-+ "71310c65e10b4b2e1f3924",
-+ "fca82540d3cb37cfe38de",
-+ "324b0e59fd313b7b066991",
-+ "ca5fc0de7c8f0742fa11a",
-+ "436134e757c46fe077e8fd",
-+ "3382f247e6cbcf48a8be0c",
-+ "5714f7d7bb3f12d88adae1",
-+ "75c3040748861ea4157368",
-+ "1db2b63fb5b72bd2913b9b",
-+ "5de44a501f899626f11ecb",
-+ "4a728ba1f43b41e3c8ba7b",
-+ "631d5fa433132c920e949d",
-+ "49dd9e128368a6e8f31565",
-+ "5f091c9040f8e8b4af8c6a",
-+ "6dbec10ac45803905232cc",
-+ "422c99318e0e012bdf3cdb",
-+ "7499dfe49d22092ecbaacd",
-+ "4e9b8b836aefbcc76074a3",
-+ "23591be47ead61c7626094",
-+ "47cb5e48534f0fa269ac37",
-+ "45d0bbd0c4c565d517f4d9",
-+ "58f251e3a335055f8d1702",
-+ "e16e90086dfb42533696c",
-+ "32bc07a00fc1c32e790cff",
-+ "55d4eceed6862d8b7edf73",
-+ "3bd14b5c954fd788df3e2f",
-+ "32267a0d010a3ac60d956b",
-+ "2dd9e647cd7caac396218d",
-+ "786bd6b0d956c71e3d0c41",
-+ "5a2e3e7ac883c32720fb5f",
-+ "41824effd56ee95a25ffcf",
-+ "df5585842155fda65c5ad",
-+ "f0daaf67c2422477284d4",
-+ "285121b3579e1afaecea17",
-+ "2d0786ef10819221e8e925",
-+ "638a87cbb628cc2744b5a",
-+ "2e795b59317cae4c039946",
-+ "6df756715e22975feac139",
-+ "4299b7c55998b524a2963e",
-+ "d73559f9e34900d6994e0",
-+ "4356f96a535f02cd557790",
-+ "671133a56bfab71842e1aa",
-+ "73475afc8917dfb47ca158",
-+ "8cecd81b395199379b860",
-+ "6908cd3a0537e6d9de224b",
-+ "6c4e919619ba3e8fcc083f",
-+ "765220bfddbe009c12884",
-+ "696a995b7f1bd2337f9c55",
-+ "7a35b4347e2b2fcfef4e8a",
-+ "7715808f58e52b93fbd9f4",
-+ "35984ab233bfbbdc2149d0",
-+ "49f6551bb5a630f7f3a91",
-+ "260202888a368af1bf27f0",
-+ "28c70cf1a34bf4b12fc1a1",
-+ "74a3895c1173d1100e060",
-+ "500de5789e46431a14b08d",
-+ "e50ab5db695f894b26597",
-+ "6e0d3cb0378f9f523dd7ca",
-+ "3b890cc2ea1882c16138ef",
-+ "623f56668cc8a093bdba7e",
-+ "2311c97b29ff503887b251",
-+ "5f019291ccdeabcd687ce5",
-+ "6467af1a0f07013b2e9849",
-+ "14a9e816ead24aab2e6645",
-+ "6bbcfc26c4e8fa7b836095",
-+ "775ff949792463791cf8ab",
-+ "62658893411360a21b6bfa",
-+ "2fc0729bbc7485664f21f9",
-+ "784f7b46f80b03fd06242c",
-+ "7215cad82f761314bbdd1e",
-+ "475c6525a253fe4a455211",
-+ "3301553132b8af815a8ed7",
-+ "40066cef89d0c82982356c",
-+ "36d97c131b997ecd7866ef",
-+ "583e484be506b8efea96b4",
-+ "4656a2b830782828314373",
-+ "374bc74be1e4381a79910f",
-+ "4f459e6fecc9cadb8e977",
-+ "2a843c02b5e59799422e65",
-+ "3910da787142c54f4f9b2f",
-+ "ffbb4d4d7cd961d36be9b",
-+ "38dd92596a9fd54920876d",
-+ "6bd057cf4845772f81f71e",
-+ "4fe62d365b58ffaa0d2201",
-+ "1429ba4cc3fbeac84cae7b",
-+ "403c1a7f2d528ab5d343b9",
-+ "2175a06a641d5e8ad33646",
-+ "25d324d633986f4baae0fd",
-+ "63d746c096cfab5f984c70",
-+ "5bd335a49bc5a06867e5e1",
-+ "375f02bea7dda994d93044",
-+ "4f754c5d3b280b20bc95d0",
-+ "3a997ef0ad242391b526f9",
-+ "2c30e99c7b2606982311b7",
-+ "4d562b2b0bde307c0edc87",
-+ "b4aa58f86a462da2ed07",
-+ "ddd508394009eefde3ac7",
-+ "e73b5b515611f25e496d1",
-+ "e4ce3641fd893553aeebb",
-+ "32765eba5563b5336b4375",
-+ "594ab65a623ca11a1d847f",
-+ "7a6cf71a247a9aa2ad1f3d",
-+ "509c14f0517edd55968bc1",
-+ "3cb90317e0fd78744bd72b",
-+ "45f39b8c67c74dfb911f44",
-+ "476085adcac943f7253ad3",
-+ "658a9098281c199cd165fd",
-+ "cd47f8baa501aac7b0989",
-+ "3de183e6b991f7b8085160",
-+ "a5582fe7b241700d09fbc",
-+ "68719eec758c692aaaddb3",
-+ "7d5f8fcc1cf99dc3131c84",
-+ "5a2d6c9f89fb24cf28d1b3",
-+ "7e1946c78347049b735318",
-+ "2db5ff229cb2d0a85b8393",
-+ "6f9024d8cdd8d69ef10bf7",
-+ "38102211c805f10960d5ba",
-+ "55e838d685f75c7c6b5f20",
-+ "339fe9b069fdcbe6f3e985",
-+ "1a939b8af79d6b9d1e57e0",
-+ "2b1a4dba7447b02833bcc5",
-+ "6a5c41dd17f1f090be79f9",
-+ "6ad4c1af807487676eed8c",
-+ "6f33938b3b060336c57082",
-+ "1e7a055357b6580f4a7b9",
-+ "1d51d9201dd8c5066bb7d1",
-+ "daa197fa1e9b3068f7333",
-+ "364b7fe165d59b5d916e2f",
-+ "4026f1042b0f5b1e940a78",
-+ "3501255a6a3473cf6ac042",
-+ "73a88b6c78ebe25a0f02da",
-+ "645d789e2ca881eb3474c9",
-+ "6f59efef27dbd92df6f652",
-+ "32dc0a137f654afa8bd8fc",
-+ "4e162f9f85bd081abd7380",
-+ "48ef84f7c351ecdc951b2d",
-+ "69150cde40be119caa92bb",
-+ "3b409dc537f82b36a0b80a",
-+ "748df460f8594e0bf1ab20",
-+ "178fa57d907fddb0fe3cca",
-+ "6747e95b215a546a339b7",
-+ "55247bc5a72b8d3e89234b",
-+ "683a5c6214b92efde4aafb",
-+ "f36396be6cc745bba9473",
-+ "77a73ba77b4ed622a17e87",
-+ "2c250894e17e7f4b0dd",
-+ "24af65fef90e2f99e03cae",
-+ "3292c0c9fda6887e4ad161",
-+ "304cc216ed2272d07c7f80",
-+ "5488a723f6ba5cf9800543",
-+ "47d8e4eb9811f9d409ea40",
-+ "7e2be12d72782db9e725dd",
-+ "247f391e5a3b234cf19ccc",
-+ "29f1e17550354ceae49f99",
-+ "4edfb060e1dacbd449d726",
-+ "4a29c3e62c947a4a1e99b9",
-+ "4755035ba4d9924118903c",
-+ "3d946cf498fbed2d965f70",
-+ "260d3af59b4f3d5c208bbf",
-+ "34b484cdb4cebe6aff839",
-+ "7b5ec7e3346c3cb243b356",
-+ "6b25a8073bc36b2af4c2b1",
-+ "3665e544d5ec7ed8868a1b",
-+ "1ccb03c008f2e822848880",
-+ "18e83fe885c9bab518bb97",
-+ "42e88e9f66659afa2a393",
-+ "5533d7d78826353c79c73e",
-+ "674fde01f6057423c31a9a",
-+ "3a9c7a7d5782f84fd4620f",
-+ "19b52abcac8b60d5349efc",
-+ "23ac86fba80f09945d51d2",
-+ "61249154ca21ee2b75deb1",
-+ "473c4bff7362fbbd2049ff",
-+ "923121ae3af782c934df4",
-+ "66fecdf77d13ff6c0b25a4",
-+ "170a54e825e33a2265d3cb",
-+ "31be6678e513813e0e676c",
-+ "7972b4774882051f2d85a4",
-+ "75b09479e265b9f0ac9a5b",
-+ "708324dd5e787ea3d43a21",
-+ "4c67268f528ba7e8c34a0",
-+ "51f9e6d75a3c5264312643",
-+ "24183bf26908368eb41547",
-+ "5e7785eebda5c8e2f0247b",
-+ "5338be8d9f87d3f2e46b2e",
-+ "14bde3f9984cc98dc83f60",
-+ "62870c281778214067b40e",
-+ "62e9a332653e1b103db5cf",
-+ "69c96f5702ae4eecc6f341",
-+ "3e6265ca213c1a0be64512",
-+ "5ea38165e28694c8629ccb",
-+ "2be59650bf9aa57c249937",
-+ "40678fa2d309cb9417f68f",
-+ "3459971422155f9703c78c",
-+ "5552617d9eaca45155f490",
-+ "18991d6f38c445ab4b38f1",
-+ "1aee70e483c99574480349",
-+ "277575523998439f834d3",
-+ "692752e677cdaba7d636c2",
-+ "298af75c2d584b01ccc6a6",
-+ "4d7d33eaba361883277544",
-+ "282f326b1fcbfb463ba836",
-+ "6b0dc0d5521d21af0ccaf4",
-+ "57f40a819546afc89fc2ce",
-+ "6a24f8897d3040e8fb1da8",
-+ "51e8f647af3880d2b77ccd",
-+ "4b223517b6c7cd85cb43d1",
-+ "745ca85c76435eb7ba81ad",
-+ "743eb61998341a5e892884",
-+ "5afcdfdab7a5b6864efc6d",
-+ "39824b01dda7b8ada90cc2",
-+ "2beed154412bd52cf1c83c",
-+ "6b497ffe240d0867d5d7ef",
-+ "eb947683c26db8dac2f36",
-+ "15891c14bba25257cb14ef",
-+ "4f540ba10fdacad19fee6f",
-+ "5097857cdd82d2df144dda",
-+ "6799fa1f9cffb381bd6c8c",
-+ "5e45b3a532e82a603df12b",
-+ "53528c9bfa6f5405d66497",
-+ "2248d63b93978222916f1b",
-+ "c98c97ab7b4b0cb756894",
-+ "57d57f4721fb6be3b38e99",
-+ "7b4ac8e7f9ffbf17f0627f",
-+ "22af1fffca9aa4b2ba234a",
-+ "2b913687a118d5d595277b",
-+ "3cd72e80ffad615f09526a",
-+ "e050d10f9ab1681fbdc06",
-+ "36c8b1aaf274cca356ae2f",
-+ "3d88de9f1c15bfd7b6363b",
-+ "73e027017f2dbdbc204a16",
-+ "6ee2946ba009641ad73037",
-+ "522de20b2431d6ac8f42fb",
-+ "427af6fbf5578c6104b255",
-+ "172bc617da9e1aa348e114",
-+ "1a5e08fda45015af7feba5",
-+ "208fb7a4ffec7d8d1e5be6",
-+ "3712172b56577089f4c773",
-+ "621bfd4a39ee713781e554",
-+ "2f0c8ecc959b7521936666",
-+ "682583fe078ff76c962922",
-+ "509b53b07e607cbcf6e79b",
-+ "1b71574f7c567d707d0e82",
-+ "572930c1df7ba238dfc9cd",
-+ "2029341ddfdbd9f668612",
-+ "1a54e98271fd5720e1bc63",
-+ "62f83959d672cbfe7201a",
-+ "2abf897aba93d347d6e2db",
-+ "3ecd876c819b78567f7fa4",
-+ "69714524521e343bc3692d",
-+ "290cc13b5edc05d863546",
-+ "26436c96779bbae9c15fae",
-+ "32e5746a212d6238682c00",
-+ "5e4b991cdcf27f65105596",
-+ "4a05e03567ac78048832e8",
-+ "658769c97f8b8945ac2878",
-+ "4eea383bfa391bcb14540",
-+ "4871087f3b2cd3c0f24c3e",
-+ "5c20428f433fbf0c9ab374",
-+ "15aba357d612d87099180d",
-+ "73f933fe401d564be0efd3",
-+ "6d925493d403647cc0a7ba",
-+ "6a40f14b7a50eeca571bae",
-+ "446d6309025414bad0aee1",
-+ "6e388c53aaae7d287eebd5",
-+ "3bb5af245e5d40c6fc15e3",
-+ "66895605da5092de3d2b87",
-+ "50774e378282fd09459eb4",
-+ "5abf04c6f95d64b6c414",
-+ "54dcbbc689dad12df77730",
-+ "226c7c98f219b40ea94b66",
-+ "6abf077f6636ceee313734",
-+ "53cc3acdd810a96c3160cb",
-+ "59b759ca3a67e4725b5f84",
-+ "48e1272ba911cad7536a1",
-+ "1d3c95c9d8462d4c467220",
-+ "4167a3ca5253556f128ea6",
-+ "bfe2f259223ccddac13b3",
-+ "bf09d6ff46adc21d04951",
-+ "4555d38c19f123cccb6fb4",
-+ "4a5333a5e1c04b8bdfa257",
-+ "627a4795d0c0df1d84d13a",
-+ "122225a7053b175027361a",
-+ "5027d58d8950e307548d14",
-+ "76c881f1a372f21e829095",
-+ "7f8ad9957e40808881a192",
-+ "621edd8ea6ff7136526540",
-+ "64adff5211c520e76cfa93",
-+ "7b274f32f2cbfe03031cb0",
-+ "3c71a5e6f6b431bc524a53",
-+ "10cc655b268878a4e8e081",
-+ "56853e4d2e614e1924d27a",
-+ "1c72fdd679cfcd10e369be",
-+ "1a364185d640ba1a6ed583",
-+ "230c19482c2fdfccb6b94",
-+ "1a9a55461554e908c4fbf0",
-+ "48b5f18a43890f525b850c",
-+ "779b65c66a52eeb45328d2",
-+ "3a0a69f5624f959d85e411",
-+ "498cac7e3100df5899cd16",
-+ "6be91a7f057434bdea3953",
-+ "1b0ff68c5f14ee84b37e7f",
-+ "af86674d8a1c364331ef3",
-+ "4fadec3b4cf5617426ac33",
-+ "5cc79f5d12d2a991f4ebd0",
-+ "5ca7f66678a73081bd34e5",
-+ "5efd2121bfee3a30184816",
-+ "6b79ef63bb66f1362d8de",
-+ "3c4dc48e3cdfd4ce2eefe9",
-+ "1c9f92bdf4717c6880a9ba",
-+ "168c6919206ac6ace0f625",
-+ "27e147bc2366e607ad99bd",
-+ "44678fb0d784f11b21a657",
-+ "47792007d733892284fb9b",
-+ "636079478bd1eb493d0866",
-+ "7450197e181adf8c4f92cf",
-+ "65a7ac7cbfcc2f6c41c2ac",
-+ "c92faa8d02b107a1b5d50",
-+ "1ee8fffd33bf6223d36b95",
-+ "203c3b480852a2154fd642",
-+ "7ba683eab937665ca29978",
-+ "1998245099906d42a62588",
-+ "75d1f80628c3a1c1082c91",
-+ "1c6bd00355516b7177a93d",
-+ "795824804b82c5e751df2b",
-+ "2746a28b14b19ab8d24145",
-+ "75b3fbba0880cedfe12ea",
-+ "dfc33dec9862e861d43cc",
-+ "5d77b3e7e323ddd35a71a5",
-+ "7438dcc1d87bfc73ab26",
-+ "755d342969e9fcde9fd595",
-+ "7bca9525e525d6ded2c76f",
-+ "d08254f4d2d5ca1a5b877",
-+ "4d1a97d405c026a8a5aed6",
-+ "825e4a5dedb493626e7ba",
-+ "26c3f6eae80009e6946697",
-+ "59b1b4d92c6ee6432bf67c",
-+ "705cc0331aa0195cd9f6ec",
-+ "6d83e6632fcdd8cf940ffe",
-+ "69699a76b55d4ca99064a0",
-+ "76201a82e565cd9ac092ed",
-+ "49b08f20244bc64879adcb",
-+ "2b04a0e7492ffe108c1c00",
-+ "4de1c0244f476f355a3a91",
-+ "1bacdadb366134c3d1a5c0",
-+ "755b7f3a3389c861fb2d23",
-+ "153d48f10507702bdbbfbd",
-+ "17ef22a6ba1fe32d3ef7c0",
-+ "6f55491282e49ce5634ba6",
-+ "66ac85711d7e32d731c773",
-+ "7a45d57fdc1a44af5791fe",
-+ "1b931cd6241fc4f484ed23",
-+ "30ffdb4a4aa7f26e29fcc9",
-+ "54b4dc744541c38f937102",
-+ "4413cfa8b5666fc0af877a",
-+ "5b18e3d2fe16a9d973b934",
-+ "173b57e939be4a4efef880",
-+ "102e8f3d54ced5e10227ed",
-+ "79b27c762372e476f703f7",
-+ "37f81f265c72ca7279eb3c",
-+ "6b11c6506832a5a8571e85",
-+ "5b68ba6c572a6576af79a8",
-+ "26580ddf1efe9fe3eae4e0",
-+ "3c015f30d95c1da9c47adc",
-+ "54c37f5e810a7c49e7a02d",
-+ "3b8be315926a14f8200fe4",
-+ "5334ba131913654474693a",
-+ "245f14c58fc2f1bd38bf6d",
-+ "3ff0891da2c6d0cb8ab6f0",
-+ "3e61864fd19f85bd211f70",
-+ "493f40656c80193590d2f4",
-+ "5dbb4f6414155050573b80",
-+ "6afe8bc3bb8509aff3c666",
-+ "586e1bd3806f5472b98045",
-+ "6afc9a3033b5fed5a0c3ee",
-+ "7969c90c819c5b0080834",
-+ "5ee2324ad6594548cd275b",
-+ "5c6cf60aae0cfc30048ec1",
-+ "40e1957b3947c90dc23e89",
-+ "5846b0049ea6f32f4b2762",
-+ "1e5217185f433bf1233d59",
-+ "af0b8a8f75ec961c833db",
-+ "4f4128c0856b216db55c75",
-+ "41d953d4dc4746ec83a1f0",
-+ "3d55ef23d8c9f8419ff28f",
-+ "1a5f34cedfae0cde5ea0a4",
-+ "6517d2ae1b7ba4107ba2ed",
-+ "4839ff83b5f2ddc41b61ee",
-+ "30ebf17f92538a33a005c5",
-+ "7530bbdc505d301ed9040",
-+ "46ea2e85d6ca1966d1ada4",
-+ "78022742d8c1b58e95d935",
-+ "6a25d7d313e7a656aee548",
-+ "a2c3a3cc1a5dfdc5a02b7",
-+ "2e76f32ec68bf11c44acc8",
-+ "54aeb8675aac1a423a7140",
-+ "dd0623ecc7bb862ebbbac",
-+ "61d42c0be51a3d664c8df2",
-+ "254a37a2b407cabbf8069f",
-+ "687346ea28caf1c87376ab",
-+ "67b1ce8dfe00f53da9491b",
-+ "488aa158d747df0f5cd422",
-+ "21eb89d73161656b740b6c",
-+ "686f17e02f2d49c0e2e48",
-+ "dad2db631732b0506f6b1",
-+ "72e9a5baa06d4af7c9f9da",
-+ "1cab579a1f775fb778d900",
-+ "3c3d137503578a98196d6d",
-+ "2a8bb0c8c3747adf31dc91",
-+ "1cf9608a937eea1a0bb3af",
-+ "40a3f5ad2d4a9b33e2f67f",
-+ "147d7e964c45ec443a24fc",
-+ "7b9587337c3feffe6974d6",
-+ "5839527a17db25de563064",
-+ "1160b80ff627f607bda927",
-+ "5aaca79690a162240db985",
-+ "c75433d8b0423b552102a",
-+ "f46157d09593fd6ceaef5",
-+ "20db18e6c822f683f97989",
-+ "3e1e43759c2fbd4596b36a",
-+ "125d9103db1d2a83e13f71",
-+ "28a2b96944f1b1210e6bbb",
-+ "33fd72210da605d38ab799",
-+ "4cada2a5056e025832015c",
-+ "365c9be3e9c7dcc814388a",
-+ "9f4b0dce97935ef1d9158",
-+ "2b8d9b2da99a690e7c44a7",
-+ "fc59307a819ae8b7a3f67",
-+ "567dff5f6f64aa1697fa0f",
-+ "23343ed75a8de5a22fac16",
-+ "4c2a57eb3ff167fa077ee2",
-+ "7a2990f262218cc62c32dd",
-+ "210cf16be9c62f7408e63d",
-+ "49c59a03a60b57e7bac289",
-+ "499ab94c7bb40ba492d85c",
-+ "67437e976a93329c5b9760",
-+ "77c405c1030a468f5abe34",
-+ "34363c8e2f82b5fdad8c66",
-+ "39c91d6ca89a6fa52b3be6",
-+ "7b2f70ff56626a3003c33d",
-+ "416b4cd1af257e44ad03fe",
-+ "375ec3fc3fce6eb8e8ee9d",
-+ "4fe741cddc07d380fb6143",
-+ "67adab05fa921650ed942f",
-+ "601f96473a856041a89ff8",
-+ "13fc0f6b201b7368c44178",
-+ "6f79151ea6cbf1bbe85f5d",
-+ "5dd15f8501fbd308a231a2",
-+ "8ab595a01941ab4070b39",
-+ "6ad236039c2c3e149bcca2",
-+ "40c514f5e20e67263ea899",
-+ "10b3ac9e35f753e3c9deb",
-+ "2d816960b0911019df6133",
-+ "14efaca65e59726b81dbf0",
-+ "7d98b2bd2e9168b6d2e72f",
-+ "49639d01a55025d5b2f6ef",
-+ "2e1479f3781e1a48fc49de",
-+ "7d60cbfdcc63ced7661d40",
-+ "3ec0da959b014a91e3d171",
-+ "6e1573decbd31bd14c0615",
-+ "2ae83fe35c42b256590f54",
-+ "22d68d4ed1af18d8658de4",
-+ "3153805f294e973c493b1e",
-+ "23270a061497f9098a49ee",
-+ "3ed51ed7c85d68db84d78a",
-+ "788f47c4aa1ecb9b01c1a7",
-+ "9dfe0a1feefabb0c62643",
-+ "7376e75fa605889898fa7a",
-+ "578a6c67a3dea7609537e0",
-+ "146dc1fd204e259d148dfd",
-+ "59ff3fb267f4dcf86fd4df",
-+ "5a081e53f2beac49d1a3e5",
-+ "37bd7e26cf4711cd149911",
-+ "47d814d93ff8dca3c1398b",
-+ "132d2eb133a0383d464ad2",
-+ "30f7be09c5f39b5532dcd3",
-+ "83b4a6c139b7fda28fc0b",
-+ "77e2377901111b6ba92316",
-+ "7add5048bc0984c36294e1",
-+ "2afa4dd2f2245b7525fdf6",
-+ "50c4c9d0b48bd147d875cd",
-+ "6387ce1a213d98335598c0",
-+ "52253824741dd177a674a9",
-+ "3195d14bda042e7057d34f",
-+ "6b849a1f17d635cf0a773f",
-+ "7c9cfb41c0f888d000fc52",
-+ "7dea2305f898b6d88f6821",
-+ "43d0ab106641bd01d72cd4",
-+ "1d5fe04c71a377f6784338",
-+ "207b51e97aba651825b40f",
-+ "41327dfa41486f6b995572",
-+ "245cbb0117ba8963db7929",
-+ "4956d4cfa3dee8e23259eb",
-+ "49af3dd263ef8ddc7b0303",
-+ "76dda8edbfa5a4265a1a74",
-+ "26b516b52794658e68ab5a",
-+ "260f0ab9a00e1e941e404f",
-+ "3395f092181af53bb73f3e",
-+ "17a50483229662a578fdf3",
-+ "30e3bf91dbc04d50a032bf",
-+ "525362bcc006730db95180",
-+ "6e988e80d2c29dc7542de4",
-+ "47efed21b3657d0618e28f",
-+ "fb85baef473def8948133",
-+ "67afcc19d0bb557a608666",
-+ "3e1ecaa8d0631877bfedb9",
-+ "38a68ae5efe6ac22d3f278",
-+ "4b2a621bcd3f244dbd1aa6",
-+ "2432bbe72c83689ef74c85",
-+ "1aba34eed15b418d4b7f0a",
-+ "2d2efb8be305a05b685aa3",
-+ "cdd3df5aba4c7ba52b4cd",
-+ "7c38756fdad7c18ef7576",
-+ "437e569a7451bd9bbbce87",
-+ "614a9023303ed4dd2cdfb9",
-+ "43c088f2eb74b96d25a4a8",
-+ "308a1daa2779a84d4db8ac",
-+ "59f29456bbb20b47aa046f",
-+ "4b0f09e29272f9d49c6266",
-+ "b03e402e64c3436818402",
-+ "40f2e74e1048db76b72516",
-+ "1a484afbb93898190d8d03",
-+ "6edb305f1f8f30902439c9",
-+ "7fd2ed81931942f0ef8d50",
-+ "402466331777b126e4d8e2",
-+ "52d5ea798306c9e21853b2",
-+ "765c653014c5e4b3dc3865",
-+ "785211217f5fa1bf82b193",
-+ "3bcee7bc9a5ca7219edfaa",
-+ "61b023abdf63ddd6300036",
-+ "2f305b730466b54d50855e",
-+ "60b46e71f1f2b8376d5d29",
-+ "745cc1be634380e90bc82",
-+ "208b7d3e85a97a99407a38",
-+ "1000ca68b2a0f4790d5b97",
-+ "2ef94456619d9728490c1d",
-+ "18347f5ec924cf4631f292",
-+ "26b5c49d8c4e12d4b3d157",
-+ "15e2aab3b7b69272b3c155",
-+ "76272e758d9f83ceea908b",
-+ "fb87766da12e75782ca77",
-+ "57caf75d12ec817c6cddfa",
-+ "1a04ba76b7855a5e9c289a",
-+ "7e5eb2a4ef3434465acdeb",
-+ "35b964532350abcbf76d9f",
-+ "3f14484539a427ea73a1b8",
-+ "4d10e4408b3b6761aa225",
-+ "235ae37d20b21074f27732",
-+ "44dd12bd0d7f960d6bd7f6",
-+ "196185d708583cfba757f7",
-+ "5f8e36ec1202b0292d5945",
-+ "47d7208165498ac04fc240",
-+ "332ea59945a5d0e73f7dc5",
-+ "653694fe66c257988cd02a",
-+ "3069cb41e51edac9ec2b3f",
-+ "17e032019f0dc1c4277c0b",
-+ "52a44d4aac2b12a44786a4",
-+ "33bbdb9fd9d9e6cda126be",
-+ "520cfdeb5b65ce3df47f12",
-+ "3746df2dcaeb2f941850af",
-+ "34b380f57ddac800a53234",
-+ "7116294960ec1370cfa192",
-+ "6c02da94ff6269ebf8b68",
-+ "528f06b90d6ea98654eb1b",
-+ "643b1783eeff5d2d9d100e",
-+ "14e34536d861554652fc3d",
-+ "28da7bd48db9e867715c64",
-+ "7b233911df67c0ffe75298",
-+ "282425a374dcf57904fcaa",
-+ "7f873bc8523c4931739324",
-+ "5f1584cca489de9bdcd65b",
-+ "6862becb8f668738ac092f",
-+ "495ccc90a936edcdb3b175",
-+ "71dbc0d71fbcfcf1245bc2",
-+ "5298718820a8e285437a64",
-+ "2a9957bb174e3a8d1169ef",
-+ "58dbbd6f088b5ff881356c",
-+ "67ed429f48df076df817f4",
-+ "ba3b72d702ce311cc02a",
-+ "6415a8a79aa0ebffb6a24d",
-+ "5b6485b2f7f41f0abf3544",
-+ "edea2902a199d26d75bdd",
-+ "97bac956d2b65a51260e7",
-+ "b2c65762784255bbebc75",
-+ "41b1881d9704918a051695",
-+ "3939cec4c6eb132c9146a8",
-+ "4e4622894612a0772ab9f8",
-+ "398cbdee468f0759c375a1",
-+ "592a4efec7cf89e527fdb",
-+ "79ea859ae0d9bf58c8e071",
-+ "4786c255855f792a20f869",
-+ "272821f07dab57e4aaf0a7",
-+ "25e016000255df0b5c8153",
-+ "17040e8c8be515e4ea36e",
-+ "341181b7d4d6f4e2cf9643",
-+ "73f8a019ddb59d3f06f049",
-+ "cbf28251298433a3abc70",
-+ "51edf68dda1a87c4b3af7e",
-+ "2e78ee01fc4dbe304eaea1",
-+ "36a98de095d312e040c903",
-+ "1c94ea576c3cfe00e40a0c",
-+ "2969569df7efe8c61bb461",
-+ "2b036df33feda1ac5edb68",
-+ "3d1dbd13d46aa7f5e4c42",
-+ "32f17d420cb00b34cd9fc3",
-+ "79a8e47a4d897cf6b712f",
-+ "6be705331dd40db5a995b0",
-+ "797e5770501b190fa5f6f1",
-+ "21d9c50ac15f9a1fc38df4",
-+ "639eb30656278296f2b3e0",
-+ "4b90d5d4f791e4cafea283",
-+ "7b4912ce2f8ea6ad90baf0",
-+ "185c0df44a167fc9bfe948",
-+ "4c622bd5bd26bcbd487c68",
-+ "7c4aa256f5265e9d49e8ab",
-+ "63f8378a4c563212109ee4",
-+ "4ca98168d36f8ab3815a02",
-+ "411a5d336f1cca7988f319",
-+ "34c572dd024d37c54c5648",
-+ "249469414e604f245a56ca",
-+ "2e9650e328b679ea03af31",
-+ "db07432bf40360e3df399",
-+ "2e9fc43379988881a1b064",
-+ "752129c2d07a536bf3bb8",
-+ "c79d219ef793e02a9f989",
-+ "210441f8cc9b531f88fd3a",
-+ "6bb593df2f572a23254ed6",
-+ "55152f253ffb05575c981d",
-+ "40734a14dd653457e54b74",
-+ "7fcb3af03a778d48d5ac9b",
-+ "43e02a2659ddc4d3204fd7",
-+ "2ab0a302ecc453de7fdbe4",
-+ "2a68ad26b94fd25b4509aa",
-+ "46afa6e418c9bd4065cd9d",
-+ "517123f4920304dc75317a",
-+ "33c3a8fe7d6e90cd610695",
-+ "1a30afeb54dea502f0310a",
-+ "2b5280596202f4b3ee0814",
-+ "70b50a59ebc270bb237505",
-+ "65f71d8c8e62cbeef07daf",
-+ "197461e90c6b70a7dda46d",
-+ "4053f687fd270a04d092a9",
-+ "43d235cd54423fd6135def",
-+ "ac0f86afb7bbca8d57c4f",
-+ "1dd4abfd6c4ed8a3ad6bbb",
-+ "25d3735a734b777dd960b8",
-+ "56a6cdbd81ef505320e706",
-+ "3c1c9492a56c8c78536095",
-+ "31ee9d29cb2f2a7eeddbc0",
-+ "666ea50157a2d8307a0ef8",
-+ "1472017c713a1063411e0",
-+ "53e73a626a5de69e43d0e0",
-+ "dcc0bec90c531be4924ef",
-+ "6bd3a60ce037d04a7d822c",
-+ "3ad7e93e4ab55d402a33ea",
-+ "10db0037fd5f7d8c49aee6",
-+ "4d29703647563e84d6ac7f",
-+ "2555442bf058722bf0120c",
-+ "2e274c1905f505ef9d43c1",
-+ "46b0509f9638e9030f5895",
-+ "4082d11934cd3944191e6d",
-+ "3cab0ae1036c6d43311ae4",
-+ "218c9ea39a51618b1ce10e",
-+ "9e1bd1e36f73d0f69f697",
-+ "5a20607ce9679fb1f266e5",
-+ "4ae24f235a28b7f71492ce",
-+ "7510db776aba775075e549",
-+ "5695db84b4c92a3d6677b2",
-+ "74e01ea265377cb713e57a",
-+ "768cbd11024387469f6ee1",
-+ "61b85bccf0f4316c2cec04",
-+ "aeeaf98aedc83e6ae6cc5",
-+ "4e175c68ed04c585f606f8",
-+ "1ee9410958604d03f20f1f",
-+ "127b65c61b8c8f1b9456ee",
-+ "3d57e0a1ef4abcae8719be",
-+ "688ea19369341f6943063f",
-+ "1f91eb155829f1481d6da7",
-+ "4f34769ad379d64a27233e",
-+ "59daf69acb0d30ef2fc5db",
-+ "1efc90353d647b1a3dfd54",
-+ "39965be2b1bbb3ed832fdd",
-+ "7fd47e391981aa515116c7",
-+ "5ca9b2680bb84ff6e98b33",
-+ "36b7f85db80800549459bd",
-+ "16d114b00964bdc8e2e82a",
-+ "7c1256dceb40e2f63ca4f9",
-+ "5b4dd88e0cfc108bdc7320",
-+ "239e94f2e5843a6e20f1bb",
-+ "3552a76787de4570d42693",
-+ "6f2f55effdb76df46b548a",
-+ "6152765b747658a14d5829",
-+ "1778273a04ac508e342b",
-+ "75471e22b2d84fd2fe01b9",
-+ "5d6bf6a59488555bf1342a",
-+ "160134aa459258ff8f6285",
-+ "17e8af02e79e7f8d2cdf99",
-+ "4f5e7f770a4d50c69c4028",
-+ "51fc2c3f86b8fc46a7a221",
-+ "70d95d23dca53184d30b4b",
-+ "4a9b685698a7674338b188",
-+ "4d7940ea6bfaa7b282a985",
-+ "39baaf1f520d96bfc8c1df",
-+ "409fc384bef4b3d255371f",
-+ "3bac7e0675e0a9967ff7da",
-+ "5c1544633a0bf7939343d0",
-+ "39d71478d3005e797c6913",
-+ "153884834dca9aae7d5d2d",
-+ "630270f2ed4331deaf63f0",
-+ "46323a1998a54f7e0819f6",
-+ "61c87048ea8325590bc5b1",
-+ "1960b3a13c6cb6acb7f489",
-+ "3956e2767e97b7703253b0",
-+ "1b5226354071022a104a86",
-+ "3a7ecceb35e2e9a438dbd5",
-+ "10c81c57aed768b3285598",
-+ "bd499ce82d93c07477fc",
-+ "67e11e83cb547515b53701",
-+ "171757e72adb6abd8f440b",
-+ "590056c647987959065bd",
-+ "4e27f64f8732105513ad9b",
-+ "de9896eb70f1668b87fc",
-+ "457dc9644e5b25ae6c4291",
-+ "5a6df4a369ed81627d4fa3",
-+ "568fd03e0a80223cd1669a",
-+ "1e92415029559dc3ed8283",
-+ "1cb2dabf0298f57d15e65c",
-+ "426541c137d269fd2e2296",
-+ "19a439abdf3f4f5eb63683",
-+ "482af287c71050fd03632a",
-+ "47a080b7584194b936f712",
-+ "20d4366552d0d83219fa0d",
-+ "4494bc9e65c8cf2a6ea51d",
-+ "2148939cfe2757b6666fc2",
-+ "476ef278c257202dd01711",
-+ "3eaa7351a72b065707e47a",
-+ "2703e4a7969073dd381cbd",
-+ "1badf1b7dc0b73e0bf8b67",
-+ "47d847bd96fbfc9c221fd4",
-+ "13637e15b786797995ba49",
-+ "5e842bbb537167f75451a7",
-+ "3b228f46cdc0e8a979b45e",
-+ "2fdd94b55dd5fb9a3915f5",
-+ "1cca04897dbffe7f26f2ec",
-+ "67a8cdbece1aca4e55ba72",
-+ "47ba42dd06a62256ee8c8b",
-+ "3288681f4d08858009187c",
-+ "69412d8563ffa7e83b0ef0",
-+ "240e2e38e41f3b6530a267",
-+ "12e92ef014e8d7fbb8d23e",
-+ "45440750f90776251263b4",
-+ "3a8965cf80aa6c4410dfab",
-+ "559bf101b9cff724b929cd",
-+ "280f08134d28252bd0b713" };
-
--static const char *RootsInv[] = {
-- "1",
-- "280f08134d28252bd0b713",
-- "559bf101b9cff724b929cd",
-- "3a8965cf80aa6c4410dfab",
-- "45440750f90776251263b4",
-- "12e92ef014e8d7fbb8d23e",
-- "240e2e38e41f3b6530a267",
-- "69412d8563ffa7e83b0ef0",
-- "3288681f4d08858009187c",
-- "47ba42dd06a62256ee8c8b",
-- "67a8cdbece1aca4e55ba72",
-- "1cca04897dbffe7f26f2ec",
-- "2fdd94b55dd5fb9a3915f5",
-- "3b228f46cdc0e8a979b45e",
-- "5e842bbb537167f75451a7",
-- "13637e15b786797995ba49",
-- "47d847bd96fbfc9c221fd4",
-- "1badf1b7dc0b73e0bf8b67",
-- "2703e4a7969073dd381cbd",
-- "3eaa7351a72b065707e47a",
-- "476ef278c257202dd01711",
-- "2148939cfe2757b6666fc2",
-- "4494bc9e65c8cf2a6ea51d",
-- "20d4366552d0d83219fa0d",
-- "47a080b7584194b936f712",
-- "482af287c71050fd03632a",
-- "19a439abdf3f4f5eb63683",
-- "426541c137d269fd2e2296",
-- "1cb2dabf0298f57d15e65c",
-- "1e92415029559dc3ed8283",
-- "568fd03e0a80223cd1669a",
-- "5a6df4a369ed81627d4fa3",
-- "457dc9644e5b25ae6c4291",
-- "de9896eb70f1668b87fc",
-- "4e27f64f8732105513ad9b",
-- "590056c647987959065bd",
-- "171757e72adb6abd8f440b",
-- "67e11e83cb547515b53701",
-- "bd499ce82d93c07477fc",
-- "10c81c57aed768b3285598",
-- "3a7ecceb35e2e9a438dbd5",
-- "1b5226354071022a104a86",
-- "3956e2767e97b7703253b0",
-- "1960b3a13c6cb6acb7f489",
-- "61c87048ea8325590bc5b1",
-- "46323a1998a54f7e0819f6",
-- "630270f2ed4331deaf63f0",
-- "153884834dca9aae7d5d2d",
-- "39d71478d3005e797c6913",
-- "5c1544633a0bf7939343d0",
-- "3bac7e0675e0a9967ff7da",
-- "409fc384bef4b3d255371f",
-- "39baaf1f520d96bfc8c1df",
-- "4d7940ea6bfaa7b282a985",
-- "4a9b685698a7674338b188",
-- "70d95d23dca53184d30b4b",
-- "51fc2c3f86b8fc46a7a221",
-- "4f5e7f770a4d50c69c4028",
-- "17e8af02e79e7f8d2cdf99",
-- "160134aa459258ff8f6285",
-- "5d6bf6a59488555bf1342a",
-- "75471e22b2d84fd2fe01b9",
-- "1778273a04ac508e342b",
-- "6152765b747658a14d5829",
-- "6f2f55effdb76df46b548a",
-- "3552a76787de4570d42693",
-- "239e94f2e5843a6e20f1bb",
-- "5b4dd88e0cfc108bdc7320",
-- "7c1256dceb40e2f63ca4f9",
-- "16d114b00964bdc8e2e82a",
-- "36b7f85db80800549459bd",
-- "5ca9b2680bb84ff6e98b33",
-- "7fd47e391981aa515116c7",
-- "39965be2b1bbb3ed832fdd",
-- "1efc90353d647b1a3dfd54",
-- "59daf69acb0d30ef2fc5db",
-- "4f34769ad379d64a27233e",
-- "1f91eb155829f1481d6da7",
-- "688ea19369341f6943063f",
-- "3d57e0a1ef4abcae8719be",
-- "127b65c61b8c8f1b9456ee",
-- "1ee9410958604d03f20f1f",
-- "4e175c68ed04c585f606f8",
-- "aeeaf98aedc83e6ae6cc5",
-- "61b85bccf0f4316c2cec04",
-- "768cbd11024387469f6ee1",
-- "74e01ea265377cb713e57a",
-- "5695db84b4c92a3d6677b2",
-- "7510db776aba775075e549",
-- "4ae24f235a28b7f71492ce",
-- "5a20607ce9679fb1f266e5",
-- "9e1bd1e36f73d0f69f697",
-- "218c9ea39a51618b1ce10e",
-- "3cab0ae1036c6d43311ae4",
-- "4082d11934cd3944191e6d",
-- "46b0509f9638e9030f5895",
-- "2e274c1905f505ef9d43c1",
-- "2555442bf058722bf0120c",
-- "4d29703647563e84d6ac7f",
-- "10db0037fd5f7d8c49aee6",
-- "3ad7e93e4ab55d402a33ea",
-- "6bd3a60ce037d04a7d822c",
-- "dcc0bec90c531be4924ef",
-- "53e73a626a5de69e43d0e0",
-- "1472017c713a1063411e0",
-- "666ea50157a2d8307a0ef8",
-- "31ee9d29cb2f2a7eeddbc0",
-- "3c1c9492a56c8c78536095",
-- "56a6cdbd81ef505320e706",
-- "25d3735a734b777dd960b8",
-- "1dd4abfd6c4ed8a3ad6bbb",
-- "ac0f86afb7bbca8d57c4f",
-- "43d235cd54423fd6135def",
-- "4053f687fd270a04d092a9",
-- "197461e90c6b70a7dda46d",
-- "65f71d8c8e62cbeef07daf",
-- "70b50a59ebc270bb237505",
-- "2b5280596202f4b3ee0814",
-- "1a30afeb54dea502f0310a",
-- "33c3a8fe7d6e90cd610695",
-- "517123f4920304dc75317a",
-- "46afa6e418c9bd4065cd9d",
-- "2a68ad26b94fd25b4509aa",
-- "2ab0a302ecc453de7fdbe4",
-- "43e02a2659ddc4d3204fd7",
-- "7fcb3af03a778d48d5ac9b",
-- "40734a14dd653457e54b74",
-- "55152f253ffb05575c981d",
-- "6bb593df2f572a23254ed6",
-- "210441f8cc9b531f88fd3a",
-- "c79d219ef793e02a9f989",
-- "752129c2d07a536bf3bb8",
-- "2e9fc43379988881a1b064",
-- "db07432bf40360e3df399",
-- "2e9650e328b679ea03af31",
-- "249469414e604f245a56ca",
-- "34c572dd024d37c54c5648",
-- "411a5d336f1cca7988f319",
-- "4ca98168d36f8ab3815a02",
-- "63f8378a4c563212109ee4",
-- "7c4aa256f5265e9d49e8ab",
-- "4c622bd5bd26bcbd487c68",
-- "185c0df44a167fc9bfe948",
-- "7b4912ce2f8ea6ad90baf0",
-- "4b90d5d4f791e4cafea283",
-- "639eb30656278296f2b3e0",
-- "21d9c50ac15f9a1fc38df4",
-- "797e5770501b190fa5f6f1",
-- "6be705331dd40db5a995b0",
-- "79a8e47a4d897cf6b712f",
-- "32f17d420cb00b34cd9fc3",
-- "3d1dbd13d46aa7f5e4c42",
-- "2b036df33feda1ac5edb68",
-- "2969569df7efe8c61bb461",
-- "1c94ea576c3cfe00e40a0c",
-- "36a98de095d312e040c903",
-- "2e78ee01fc4dbe304eaea1",
-- "51edf68dda1a87c4b3af7e",
-- "cbf28251298433a3abc70",
-- "73f8a019ddb59d3f06f049",
-- "341181b7d4d6f4e2cf9643",
-- "17040e8c8be515e4ea36e",
-- "25e016000255df0b5c8153",
-- "272821f07dab57e4aaf0a7",
-- "4786c255855f792a20f869",
-- "79ea859ae0d9bf58c8e071",
-- "592a4efec7cf89e527fdb",
-- "398cbdee468f0759c375a1",
-- "4e4622894612a0772ab9f8",
-- "3939cec4c6eb132c9146a8",
-- "41b1881d9704918a051695",
-- "b2c65762784255bbebc75",
-- "97bac956d2b65a51260e7",
-- "edea2902a199d26d75bdd",
-- "5b6485b2f7f41f0abf3544",
-- "6415a8a79aa0ebffb6a24d",
-- "ba3b72d702ce311cc02a",
-- "67ed429f48df076df817f4",
-- "58dbbd6f088b5ff881356c",
-- "2a9957bb174e3a8d1169ef",
-- "5298718820a8e285437a64",
-- "71dbc0d71fbcfcf1245bc2",
-- "495ccc90a936edcdb3b175",
-- "6862becb8f668738ac092f",
-- "5f1584cca489de9bdcd65b",
-- "7f873bc8523c4931739324",
-- "282425a374dcf57904fcaa",
-- "7b233911df67c0ffe75298",
-- "28da7bd48db9e867715c64",
-- "14e34536d861554652fc3d",
-- "643b1783eeff5d2d9d100e",
-- "528f06b90d6ea98654eb1b",
-- "6c02da94ff6269ebf8b68",
-- "7116294960ec1370cfa192",
-- "34b380f57ddac800a53234",
-- "3746df2dcaeb2f941850af",
-- "520cfdeb5b65ce3df47f12",
-- "33bbdb9fd9d9e6cda126be",
-- "52a44d4aac2b12a44786a4",
-- "17e032019f0dc1c4277c0b",
-- "3069cb41e51edac9ec2b3f",
-- "653694fe66c257988cd02a",
-- "332ea59945a5d0e73f7dc5",
-- "47d7208165498ac04fc240",
-- "5f8e36ec1202b0292d5945",
-- "196185d708583cfba757f7",
-- "44dd12bd0d7f960d6bd7f6",
-- "235ae37d20b21074f27732",
-- "4d10e4408b3b6761aa225",
-- "3f14484539a427ea73a1b8",
-- "35b964532350abcbf76d9f",
-- "7e5eb2a4ef3434465acdeb",
-- "1a04ba76b7855a5e9c289a",
-- "57caf75d12ec817c6cddfa",
-- "fb87766da12e75782ca77",
-- "76272e758d9f83ceea908b",
-- "15e2aab3b7b69272b3c155",
-- "26b5c49d8c4e12d4b3d157",
-- "18347f5ec924cf4631f292",
-- "2ef94456619d9728490c1d",
-- "1000ca68b2a0f4790d5b97",
-- "208b7d3e85a97a99407a38",
-- "745cc1be634380e90bc82",
-- "60b46e71f1f2b8376d5d29",
-- "2f305b730466b54d50855e",
-- "61b023abdf63ddd6300036",
-- "3bcee7bc9a5ca7219edfaa",
-- "785211217f5fa1bf82b193",
-- "765c653014c5e4b3dc3865",
-- "52d5ea798306c9e21853b2",
-- "402466331777b126e4d8e2",
-- "7fd2ed81931942f0ef8d50",
-- "6edb305f1f8f30902439c9",
-- "1a484afbb93898190d8d03",
-- "40f2e74e1048db76b72516",
-- "b03e402e64c3436818402",
-- "4b0f09e29272f9d49c6266",
-- "59f29456bbb20b47aa046f",
-- "308a1daa2779a84d4db8ac",
-- "43c088f2eb74b96d25a4a8",
-- "614a9023303ed4dd2cdfb9",
-- "437e569a7451bd9bbbce87",
-- "7c38756fdad7c18ef7576",
-- "cdd3df5aba4c7ba52b4cd",
-- "2d2efb8be305a05b685aa3",
-- "1aba34eed15b418d4b7f0a",
-- "2432bbe72c83689ef74c85",
-- "4b2a621bcd3f244dbd1aa6",
-- "38a68ae5efe6ac22d3f278",
-- "3e1ecaa8d0631877bfedb9",
-- "67afcc19d0bb557a608666",
-- "fb85baef473def8948133",
-- "47efed21b3657d0618e28f",
-- "6e988e80d2c29dc7542de4",
-- "525362bcc006730db95180",
-- "30e3bf91dbc04d50a032bf",
-- "17a50483229662a578fdf3",
-- "3395f092181af53bb73f3e",
-- "260f0ab9a00e1e941e404f",
-- "26b516b52794658e68ab5a",
-- "76dda8edbfa5a4265a1a74",
-- "49af3dd263ef8ddc7b0303",
-- "4956d4cfa3dee8e23259eb",
-- "245cbb0117ba8963db7929",
-- "41327dfa41486f6b995572",
-- "207b51e97aba651825b40f",
-- "1d5fe04c71a377f6784338",
-- "43d0ab106641bd01d72cd4",
-- "7dea2305f898b6d88f6821",
-- "7c9cfb41c0f888d000fc52",
-- "6b849a1f17d635cf0a773f",
-- "3195d14bda042e7057d34f",
-- "52253824741dd177a674a9",
-- "6387ce1a213d98335598c0",
-- "50c4c9d0b48bd147d875cd",
-- "2afa4dd2f2245b7525fdf6",
-- "7add5048bc0984c36294e1",
-- "77e2377901111b6ba92316",
-- "83b4a6c139b7fda28fc0b",
-- "30f7be09c5f39b5532dcd3",
-- "132d2eb133a0383d464ad2",
-- "47d814d93ff8dca3c1398b",
-- "37bd7e26cf4711cd149911",
-- "5a081e53f2beac49d1a3e5",
-- "59ff3fb267f4dcf86fd4df",
-- "146dc1fd204e259d148dfd",
-- "578a6c67a3dea7609537e0",
-- "7376e75fa605889898fa7a",
-- "9dfe0a1feefabb0c62643",
-- "788f47c4aa1ecb9b01c1a7",
-- "3ed51ed7c85d68db84d78a",
-- "23270a061497f9098a49ee",
-- "3153805f294e973c493b1e",
-- "22d68d4ed1af18d8658de4",
-- "2ae83fe35c42b256590f54",
-- "6e1573decbd31bd14c0615",
-- "3ec0da959b014a91e3d171",
-- "7d60cbfdcc63ced7661d40",
-- "2e1479f3781e1a48fc49de",
-- "49639d01a55025d5b2f6ef",
-- "7d98b2bd2e9168b6d2e72f",
-- "14efaca65e59726b81dbf0",
-- "2d816960b0911019df6133",
-- "10b3ac9e35f753e3c9deb",
-- "40c514f5e20e67263ea899",
-- "6ad236039c2c3e149bcca2",
-- "8ab595a01941ab4070b39",
-- "5dd15f8501fbd308a231a2",
-- "6f79151ea6cbf1bbe85f5d",
-- "13fc0f6b201b7368c44178",
-- "601f96473a856041a89ff8",
-- "67adab05fa921650ed942f",
-- "4fe741cddc07d380fb6143",
-- "375ec3fc3fce6eb8e8ee9d",
-- "416b4cd1af257e44ad03fe",
-- "7b2f70ff56626a3003c33d",
-- "39c91d6ca89a6fa52b3be6",
-- "34363c8e2f82b5fdad8c66",
-- "77c405c1030a468f5abe34",
-- "67437e976a93329c5b9760",
-- "499ab94c7bb40ba492d85c",
-- "49c59a03a60b57e7bac289",
-- "210cf16be9c62f7408e63d",
-- "7a2990f262218cc62c32dd",
-- "4c2a57eb3ff167fa077ee2",
-- "23343ed75a8de5a22fac16",
-- "567dff5f6f64aa1697fa0f",
-- "fc59307a819ae8b7a3f67",
-- "2b8d9b2da99a690e7c44a7",
-- "9f4b0dce97935ef1d9158",
-- "365c9be3e9c7dcc814388a",
-- "4cada2a5056e025832015c",
-- "33fd72210da605d38ab799",
-- "28a2b96944f1b1210e6bbb",
-- "125d9103db1d2a83e13f71",
-- "3e1e43759c2fbd4596b36a",
-- "20db18e6c822f683f97989",
-- "f46157d09593fd6ceaef5",
-- "c75433d8b0423b552102a",
-- "5aaca79690a162240db985",
-- "1160b80ff627f607bda927",
-- "5839527a17db25de563064",
-- "7b9587337c3feffe6974d6",
-- "147d7e964c45ec443a24fc",
-- "40a3f5ad2d4a9b33e2f67f",
-- "1cf9608a937eea1a0bb3af",
-- "2a8bb0c8c3747adf31dc91",
-- "3c3d137503578a98196d6d",
-- "1cab579a1f775fb778d900",
-- "72e9a5baa06d4af7c9f9da",
-- "dad2db631732b0506f6b1",
-- "686f17e02f2d49c0e2e48",
-- "21eb89d73161656b740b6c",
-- "488aa158d747df0f5cd422",
-- "67b1ce8dfe00f53da9491b",
-- "687346ea28caf1c87376ab",
-- "254a37a2b407cabbf8069f",
-- "61d42c0be51a3d664c8df2",
-- "dd0623ecc7bb862ebbbac",
-- "54aeb8675aac1a423a7140",
-- "2e76f32ec68bf11c44acc8",
-- "a2c3a3cc1a5dfdc5a02b7",
-- "6a25d7d313e7a656aee548",
-- "78022742d8c1b58e95d935",
-- "46ea2e85d6ca1966d1ada4",
-- "7530bbdc505d301ed9040",
-- "30ebf17f92538a33a005c5",
-- "4839ff83b5f2ddc41b61ee",
-- "6517d2ae1b7ba4107ba2ed",
-- "1a5f34cedfae0cde5ea0a4",
-- "3d55ef23d8c9f8419ff28f",
-- "41d953d4dc4746ec83a1f0",
-- "4f4128c0856b216db55c75",
-- "af0b8a8f75ec961c833db",
-- "1e5217185f433bf1233d59",
-- "5846b0049ea6f32f4b2762",
-- "40e1957b3947c90dc23e89",
-- "5c6cf60aae0cfc30048ec1",
-- "5ee2324ad6594548cd275b",
-- "7969c90c819c5b0080834",
-- "6afc9a3033b5fed5a0c3ee",
-- "586e1bd3806f5472b98045",
-- "6afe8bc3bb8509aff3c666",
-- "5dbb4f6414155050573b80",
-- "493f40656c80193590d2f4",
-- "3e61864fd19f85bd211f70",
-- "3ff0891da2c6d0cb8ab6f0",
-- "245f14c58fc2f1bd38bf6d",
-- "5334ba131913654474693a",
-- "3b8be315926a14f8200fe4",
-- "54c37f5e810a7c49e7a02d",
-- "3c015f30d95c1da9c47adc",
-- "26580ddf1efe9fe3eae4e0",
-- "5b68ba6c572a6576af79a8",
-- "6b11c6506832a5a8571e85",
-- "37f81f265c72ca7279eb3c",
-- "79b27c762372e476f703f7",
-- "102e8f3d54ced5e10227ed",
-- "173b57e939be4a4efef880",
-- "5b18e3d2fe16a9d973b934",
-- "4413cfa8b5666fc0af877a",
-- "54b4dc744541c38f937102",
-- "30ffdb4a4aa7f26e29fcc9",
-- "1b931cd6241fc4f484ed23",
-- "7a45d57fdc1a44af5791fe",
-- "66ac85711d7e32d731c773",
-- "6f55491282e49ce5634ba6",
-- "17ef22a6ba1fe32d3ef7c0",
-- "153d48f10507702bdbbfbd",
-- "755b7f3a3389c861fb2d23",
-- "1bacdadb366134c3d1a5c0",
-- "4de1c0244f476f355a3a91",
-- "2b04a0e7492ffe108c1c00",
-- "49b08f20244bc64879adcb",
-- "76201a82e565cd9ac092ed",
-- "69699a76b55d4ca99064a0",
-- "6d83e6632fcdd8cf940ffe",
-- "705cc0331aa0195cd9f6ec",
-- "59b1b4d92c6ee6432bf67c",
-- "26c3f6eae80009e6946697",
-- "825e4a5dedb493626e7ba",
-- "4d1a97d405c026a8a5aed6",
-- "d08254f4d2d5ca1a5b877",
-- "7bca9525e525d6ded2c76f",
-- "755d342969e9fcde9fd595",
-- "7438dcc1d87bfc73ab26",
-- "5d77b3e7e323ddd35a71a5",
-- "dfc33dec9862e861d43cc",
-- "75b3fbba0880cedfe12ea",
-- "2746a28b14b19ab8d24145",
-- "795824804b82c5e751df2b",
-- "1c6bd00355516b7177a93d",
-- "75d1f80628c3a1c1082c91",
-- "1998245099906d42a62588",
-- "7ba683eab937665ca29978",
-- "203c3b480852a2154fd642",
-- "1ee8fffd33bf6223d36b95",
-- "c92faa8d02b107a1b5d50",
-- "65a7ac7cbfcc2f6c41c2ac",
-- "7450197e181adf8c4f92cf",
-- "636079478bd1eb493d0866",
-- "47792007d733892284fb9b",
-- "44678fb0d784f11b21a657",
-- "27e147bc2366e607ad99bd",
-- "168c6919206ac6ace0f625",
-- "1c9f92bdf4717c6880a9ba",
-- "3c4dc48e3cdfd4ce2eefe9",
-- "6b79ef63bb66f1362d8de",
-- "5efd2121bfee3a30184816",
-- "5ca7f66678a73081bd34e5",
-- "5cc79f5d12d2a991f4ebd0",
-- "4fadec3b4cf5617426ac33",
-- "af86674d8a1c364331ef3",
-- "1b0ff68c5f14ee84b37e7f",
-- "6be91a7f057434bdea3953",
-- "498cac7e3100df5899cd16",
-- "3a0a69f5624f959d85e411",
-- "779b65c66a52eeb45328d2",
-- "48b5f18a43890f525b850c",
-- "1a9a55461554e908c4fbf0",
-- "230c19482c2fdfccb6b94",
-- "1a364185d640ba1a6ed583",
-- "1c72fdd679cfcd10e369be",
-- "56853e4d2e614e1924d27a",
-- "10cc655b268878a4e8e081",
-- "3c71a5e6f6b431bc524a53",
-- "7b274f32f2cbfe03031cb0",
-- "64adff5211c520e76cfa93",
-- "621edd8ea6ff7136526540",
-- "7f8ad9957e40808881a192",
-- "76c881f1a372f21e829095",
-- "5027d58d8950e307548d14",
-- "122225a7053b175027361a",
-- "627a4795d0c0df1d84d13a",
-- "4a5333a5e1c04b8bdfa257",
-- "4555d38c19f123cccb6fb4",
-- "bf09d6ff46adc21d04951",
-- "bfe2f259223ccddac13b3",
-- "4167a3ca5253556f128ea6",
-- "1d3c95c9d8462d4c467220",
-- "48e1272ba911cad7536a1",
-- "59b759ca3a67e4725b5f84",
-- "53cc3acdd810a96c3160cb",
-- "6abf077f6636ceee313734",
-- "226c7c98f219b40ea94b66",
-- "54dcbbc689dad12df77730",
-- "5abf04c6f95d64b6c414",
-- "50774e378282fd09459eb4",
-- "66895605da5092de3d2b87",
-- "3bb5af245e5d40c6fc15e3",
-- "6e388c53aaae7d287eebd5",
-- "446d6309025414bad0aee1",
-- "6a40f14b7a50eeca571bae",
-- "6d925493d403647cc0a7ba",
-- "73f933fe401d564be0efd3",
-- "15aba357d612d87099180d",
-- "5c20428f433fbf0c9ab374",
-- "4871087f3b2cd3c0f24c3e",
-- "4eea383bfa391bcb14540",
-- "658769c97f8b8945ac2878",
-- "4a05e03567ac78048832e8",
-- "5e4b991cdcf27f65105596",
-- "32e5746a212d6238682c00",
-- "26436c96779bbae9c15fae",
-- "290cc13b5edc05d863546",
-- "69714524521e343bc3692d",
-- "3ecd876c819b78567f7fa4",
-- "2abf897aba93d347d6e2db",
-- "62f83959d672cbfe7201a",
-- "1a54e98271fd5720e1bc63",
-- "2029341ddfdbd9f668612",
-- "572930c1df7ba238dfc9cd",
-- "1b71574f7c567d707d0e82",
-- "509b53b07e607cbcf6e79b",
-- "682583fe078ff76c962922",
-- "2f0c8ecc959b7521936666",
-- "621bfd4a39ee713781e554",
-- "3712172b56577089f4c773",
-- "208fb7a4ffec7d8d1e5be6",
-- "1a5e08fda45015af7feba5",
-- "172bc617da9e1aa348e114",
-- "427af6fbf5578c6104b255",
-- "522de20b2431d6ac8f42fb",
-- "6ee2946ba009641ad73037",
-- "73e027017f2dbdbc204a16",
-- "3d88de9f1c15bfd7b6363b",
-- "36c8b1aaf274cca356ae2f",
-- "e050d10f9ab1681fbdc06",
-- "3cd72e80ffad615f09526a",
-- "2b913687a118d5d595277b",
-- "22af1fffca9aa4b2ba234a",
-- "7b4ac8e7f9ffbf17f0627f",
-- "57d57f4721fb6be3b38e99",
-- "c98c97ab7b4b0cb756894",
-- "2248d63b93978222916f1b",
-- "53528c9bfa6f5405d66497",
-- "5e45b3a532e82a603df12b",
-- "6799fa1f9cffb381bd6c8c",
-- "5097857cdd82d2df144dda",
-- "4f540ba10fdacad19fee6f",
-- "15891c14bba25257cb14ef",
-- "eb947683c26db8dac2f36",
-- "6b497ffe240d0867d5d7ef",
-- "2beed154412bd52cf1c83c",
-- "39824b01dda7b8ada90cc2",
-- "5afcdfdab7a5b6864efc6d",
-- "743eb61998341a5e892884",
-- "745ca85c76435eb7ba81ad",
-- "4b223517b6c7cd85cb43d1",
-- "51e8f647af3880d2b77ccd",
-- "6a24f8897d3040e8fb1da8",
-- "57f40a819546afc89fc2ce",
-- "6b0dc0d5521d21af0ccaf4",
-- "282f326b1fcbfb463ba836",
-- "4d7d33eaba361883277544",
-- "298af75c2d584b01ccc6a6",
-- "692752e677cdaba7d636c2",
-- "277575523998439f834d3",
-- "1aee70e483c99574480349",
-- "18991d6f38c445ab4b38f1",
-- "5552617d9eaca45155f490",
-- "3459971422155f9703c78c",
-- "40678fa2d309cb9417f68f",
-- "2be59650bf9aa57c249937",
-- "5ea38165e28694c8629ccb",
-- "3e6265ca213c1a0be64512",
-- "69c96f5702ae4eecc6f341",
-- "62e9a332653e1b103db5cf",
-- "62870c281778214067b40e",
-- "14bde3f9984cc98dc83f60",
-- "5338be8d9f87d3f2e46b2e",
-- "5e7785eebda5c8e2f0247b",
-- "24183bf26908368eb41547",
-- "51f9e6d75a3c5264312643",
-- "4c67268f528ba7e8c34a0",
-- "708324dd5e787ea3d43a21",
-- "75b09479e265b9f0ac9a5b",
-- "7972b4774882051f2d85a4",
-- "31be6678e513813e0e676c",
-- "170a54e825e33a2265d3cb",
-- "66fecdf77d13ff6c0b25a4",
-- "923121ae3af782c934df4",
-- "473c4bff7362fbbd2049ff",
-- "61249154ca21ee2b75deb1",
-- "23ac86fba80f09945d51d2",
-- "19b52abcac8b60d5349efc",
-- "3a9c7a7d5782f84fd4620f",
-- "674fde01f6057423c31a9a",
-- "5533d7d78826353c79c73e",
-- "42e88e9f66659afa2a393",
-- "18e83fe885c9bab518bb97",
-- "1ccb03c008f2e822848880",
-- "3665e544d5ec7ed8868a1b",
-- "6b25a8073bc36b2af4c2b1",
-- "7b5ec7e3346c3cb243b356",
-- "34b484cdb4cebe6aff839",
-- "260d3af59b4f3d5c208bbf",
-- "3d946cf498fbed2d965f70",
-- "4755035ba4d9924118903c",
-- "4a29c3e62c947a4a1e99b9",
-- "4edfb060e1dacbd449d726",
-- "29f1e17550354ceae49f99",
-- "247f391e5a3b234cf19ccc",
-- "7e2be12d72782db9e725dd",
-- "47d8e4eb9811f9d409ea40",
-- "5488a723f6ba5cf9800543",
-- "304cc216ed2272d07c7f80",
-- "3292c0c9fda6887e4ad161",
-- "24af65fef90e2f99e03cae",
-- "2c250894e17e7f4b0dd",
-- "77a73ba77b4ed622a17e87",
-- "f36396be6cc745bba9473",
-- "683a5c6214b92efde4aafb",
-- "55247bc5a72b8d3e89234b",
-- "6747e95b215a546a339b7",
-- "178fa57d907fddb0fe3cca",
-- "748df460f8594e0bf1ab20",
-- "3b409dc537f82b36a0b80a",
-- "69150cde40be119caa92bb",
-- "48ef84f7c351ecdc951b2d",
-- "4e162f9f85bd081abd7380",
-- "32dc0a137f654afa8bd8fc",
-- "6f59efef27dbd92df6f652",
-- "645d789e2ca881eb3474c9",
-- "73a88b6c78ebe25a0f02da",
-- "3501255a6a3473cf6ac042",
-- "4026f1042b0f5b1e940a78",
-- "364b7fe165d59b5d916e2f",
-- "daa197fa1e9b3068f7333",
-- "1d51d9201dd8c5066bb7d1",
-- "1e7a055357b6580f4a7b9",
-- "6f33938b3b060336c57082",
-- "6ad4c1af807487676eed8c",
-- "6a5c41dd17f1f090be79f9",
-- "2b1a4dba7447b02833bcc5",
-- "1a939b8af79d6b9d1e57e0",
-- "339fe9b069fdcbe6f3e985",
-- "55e838d685f75c7c6b5f20",
-- "38102211c805f10960d5ba",
-- "6f9024d8cdd8d69ef10bf7",
-- "2db5ff229cb2d0a85b8393",
-- "7e1946c78347049b735318",
-- "5a2d6c9f89fb24cf28d1b3",
-- "7d5f8fcc1cf99dc3131c84",
-- "68719eec758c692aaaddb3",
-- "a5582fe7b241700d09fbc",
-- "3de183e6b991f7b8085160",
-- "cd47f8baa501aac7b0989",
-- "658a9098281c199cd165fd",
-- "476085adcac943f7253ad3",
-- "45f39b8c67c74dfb911f44",
-- "3cb90317e0fd78744bd72b",
-- "509c14f0517edd55968bc1",
-- "7a6cf71a247a9aa2ad1f3d",
-- "594ab65a623ca11a1d847f",
-- "32765eba5563b5336b4375",
-- "e4ce3641fd893553aeebb",
-- "e73b5b515611f25e496d1",
-- "ddd508394009eefde3ac7",
-- "b4aa58f86a462da2ed07",
-- "4d562b2b0bde307c0edc87",
-- "2c30e99c7b2606982311b7",
-- "3a997ef0ad242391b526f9",
-- "4f754c5d3b280b20bc95d0",
-- "375f02bea7dda994d93044",
-- "5bd335a49bc5a06867e5e1",
-- "63d746c096cfab5f984c70",
-- "25d324d633986f4baae0fd",
-- "2175a06a641d5e8ad33646",
-- "403c1a7f2d528ab5d343b9",
-- "1429ba4cc3fbeac84cae7b",
-- "4fe62d365b58ffaa0d2201",
-- "6bd057cf4845772f81f71e",
-- "38dd92596a9fd54920876d",
-- "ffbb4d4d7cd961d36be9b",
-- "3910da787142c54f4f9b2f",
-- "2a843c02b5e59799422e65",
-- "4f459e6fecc9cadb8e977",
-- "374bc74be1e4381a79910f",
-- "4656a2b830782828314373",
-- "583e484be506b8efea96b4",
-- "36d97c131b997ecd7866ef",
-- "40066cef89d0c82982356c",
-- "3301553132b8af815a8ed7",
-- "475c6525a253fe4a455211",
-- "7215cad82f761314bbdd1e",
-- "784f7b46f80b03fd06242c",
-- "2fc0729bbc7485664f21f9",
-- "62658893411360a21b6bfa",
-- "775ff949792463791cf8ab",
-- "6bbcfc26c4e8fa7b836095",
-- "14a9e816ead24aab2e6645",
-- "6467af1a0f07013b2e9849",
-- "5f019291ccdeabcd687ce5",
-- "2311c97b29ff503887b251",
-- "623f56668cc8a093bdba7e",
-- "3b890cc2ea1882c16138ef",
-- "6e0d3cb0378f9f523dd7ca",
-- "e50ab5db695f894b26597",
-- "500de5789e46431a14b08d",
-- "74a3895c1173d1100e060",
-- "28c70cf1a34bf4b12fc1a1",
-- "260202888a368af1bf27f0",
-- "49f6551bb5a630f7f3a91",
-- "35984ab233bfbbdc2149d0",
-- "7715808f58e52b93fbd9f4",
-- "7a35b4347e2b2fcfef4e8a",
-- "696a995b7f1bd2337f9c55",
-- "765220bfddbe009c12884",
-- "6c4e919619ba3e8fcc083f",
-- "6908cd3a0537e6d9de224b",
-- "8cecd81b395199379b860",
-- "73475afc8917dfb47ca158",
-- "671133a56bfab71842e1aa",
-- "4356f96a535f02cd557790",
-- "d73559f9e34900d6994e0",
-- "4299b7c55998b524a2963e",
-- "6df756715e22975feac139",
-- "2e795b59317cae4c039946",
-- "638a87cbb628cc2744b5a",
-- "2d0786ef10819221e8e925",
-- "285121b3579e1afaecea17",
-- "f0daaf67c2422477284d4",
-- "df5585842155fda65c5ad",
-- "41824effd56ee95a25ffcf",
-- "5a2e3e7ac883c32720fb5f",
-- "786bd6b0d956c71e3d0c41",
-- "2dd9e647cd7caac396218d",
-- "32267a0d010a3ac60d956b",
-- "3bd14b5c954fd788df3e2f",
-- "55d4eceed6862d8b7edf73",
-- "32bc07a00fc1c32e790cff",
-- "e16e90086dfb42533696c",
-- "58f251e3a335055f8d1702",
-- "45d0bbd0c4c565d517f4d9",
-- "47cb5e48534f0fa269ac37",
-- "23591be47ead61c7626094",
-- "4e9b8b836aefbcc76074a3",
-- "7499dfe49d22092ecbaacd",
-- "422c99318e0e012bdf3cdb",
-- "6dbec10ac45803905232cc",
-- "5f091c9040f8e8b4af8c6a",
-- "49dd9e128368a6e8f31565",
-- "631d5fa433132c920e949d",
-- "4a728ba1f43b41e3c8ba7b",
-- "5de44a501f899626f11ecb",
-- "1db2b63fb5b72bd2913b9b",
-- "75c3040748861ea4157368",
-- "5714f7d7bb3f12d88adae1",
-- "3382f247e6cbcf48a8be0c",
-- "436134e757c46fe077e8fd",
-- "ca5fc0de7c8f0742fa11a",
-- "324b0e59fd313b7b066991",
-- "fca82540d3cb37cfe38de",
-- "71310c65e10b4b2e1f3924",
-- "53034f778656513538ce93",
-- "6e8a28f3d3f87aa2548dbc",
-- "792ab4b2a318b2229df59",
-- "700ac125ecd365c309339c",
-- "d7315bcace04536b59c5c",
-- "5f9fe5fab5062ae9d40550",
-- "7ed8ee73ca5507f25bd5aa",
-- "6247c20f5e97453bb71b09",
-- "463e980411d809a1713383",
-- "546f06ab10360a76005c9e",
-- "1c0a01fb60b92af636be29",
-- "a5385b7f7d2a505f37187",
-- "296401a6101dec9b48a81a",
-- "38aece2fe0c1923c569603",
-- "e966e5d5e80ac9dc377a2",
-- "7eaf3d6220ab7c049341fb",
-- "1a01c5dd382ca52c0f8a1a",
-- "68ab0ae55863c4f8044101",
-- "75b29426909e9c8294f365",
-- "39fc8d30c95dd0494e9be3",
-- "3c234bbaf5da9465f9498e",
-- "7ef05035c2a08e050870e7",
-- "7e880bc1729d1783a14627",
-- "3df3e3ff8b5241f9f120b6",
-- "61c60fa253a8977e213d6c",
-- "dcb3217133998c35879b7",
-- "19e87845fee8ee9d86794a",
-- "1b8c24041b5c09c2ff1c0f",
-- "1d4d18f2bee14ee417596c",
-- "5197b486ae5dad9284702a",
-- "7a4b513ca25dc5d887768d",
-- "2e1d98165a5897b1482cbe",
-- "494c96ddeebc9c314fa5db",
-- "29785bd232aa4bcde009aa",
-- "42d71e3ed0639f1b07231a",
-- "1439532a6d3fdff49361fa",
-- "8c59c1948361c413eed8f",
-- "2c9401cd53725f84e2c421",
-- "5eb9037bc76a6930985737",
-- "6d5d0573b2f9596b50b73b",
-- "36121cc69943c0f23f8a85",
-- "308787b80145ee403c389d",
-- "74d978e8d6a9ce6def9aa3",
-- "34242d89a6cc1d4e30fa9e",
-- "6106124e06a73207e84629",
-- "1174d8cdaeecfc5b7908d0",
-- "49f7df71bb684bf5a54c61",
-- "53b453f5f30f900af808e3",
-- "7b4210ea990dbb2b80bb4",
-- "232c5e33740871b389c8ba",
-- "3e748cccf5c4b2e587b8b2",
-- "2078bac214b712936de507",
-- "426ece55a7fd1d858414a0",
-- "1eac63084c7797618dd9f7",
-- "59fdecdacfa91d60fd391e",
-- "589758587c26455b22331e",
-- "19e1cce82f85eff6f6b24",
-- "16d83b4ed79a537102c236",
-- "4ad2dfbccfebf4c881dcf6",
-- "1851d531ca021ad6f2b572",
-- "1c85ed9416af845bb8e82",
-- "5cf912fba9a563060d7b3f",
-- "14c7f40a28e01adc5ae1b4",
-- "15131878551adae4b04c53",
-- "ddf6be61ce9c04533277",
-- "48938572f05f540b474485",
-- "465d9407cc9bc6456e974d",
-- "1df3eb49ffac499fc5f3b6",
-- "7e698a24ee9aa726fc4b0b",
-- "53e99cd5ced120123b808f",
-- "66ba97928f262067fec230",
-- "1d1b1bb20ae40ee8d35505",
-- "22cd6c35ab2195c56794f9",
-- "1ef2f8aa8266e26254215a",
-- "14da7875e13efd461f7c10",
-- "22d6cba0f681e23fc64382",
-- "682b3c7ed60ad7c985a3a",
-- "244d1131736a5aea351d17",
-- "3ae16fb3fb77d48c6adcc3",
-- "3253e31b47819fbcec75b4",
-- "507a6d1fd108a63234b38f",
-- "3e2cbdf24bd5900348312",
-- "34f2e009d684c876c246fb",
-- "bb247081da09643c00d36",
-- "32a426cd7460f9e5c5e7",
-- "48082cdc2a40ccd11ae434",
-- "1d616376b444140f9acd68",
-- "72bd80f062eb130b42b044",
-- "e1e55a565534c74a109fc",
-- "49e01d719bf13fd52369ee",
-- "2ae496e8d9399061460619",
-- "7adc118469443d4f7084b2",
-- "7ad19421f012d132850842",
-- "45b5b538c44c73f3bf515f",
-- "5f8307f0589178f70f7238",
-- "54018c8917549d050c00a8",
-- "4700bc9de4804ec44122f",
-- "d922a909e3b3afea5fe08",
-- "46ea38e0c4bb849b39baee",
-- "7b87e87e1438c6126ab1cc",
-- "499667b1e22348ac584789",
-- "137f8e05276cc8f9180095",
-- "5accf03c1a20af1120832d",
-- "4e94399e1765146189df5b",
-- "55fca6cb45a0501d1c50ba",
-- "2ea5fa6c2e19e6ee7add96",
-- "d8e9fae4ec5d3e7913712",
-- "767f863c9bfc5fd6540f44",
-- "477273c36a749543489547",
-- "4265efdcec74f163498291",
-- "43f53558dbb8a25ad757e",
-- "7b5d99de82bacb33af7ee8",
-- "1d4515e4768ff5c6b4178f",
-- "2057d9029cad07c3d344a3",
-- "e419f0eced24d03400fbc",
-- "2e30617b0abeb387001867",
-- "603f9b3bc6733094104e23",
-- "fa6bb9b4b92165346e0ff",
-- "321ccac2ccfd73a0b28c6d",
-- "6af9f591969edf6d33a899",
-- "5ebda7b44a30093e22fee3",
-- "150cbeb75257f8eed7903",
-- "1b0dfe5bf791bf4d645e64",
-- "5286bfcb1951cdb460fbe5",
-- "29ca62a9234f915c5c9715",
-- "3629587577ea6cd990a3d3",
-- "4d3d6fd7781e8ff3322226",
-- "7377f9449fdfa779330064",
-- "7f3f1310b0770a6a8ab4e6",
-- "74f8ea2aa01f3e122e9ec6",
-- "74aed20fd8f19001dab562",
-- "7a9c1df7aec04dc00e3584",
-- "2b3dba5edc89810815d1ce",
-- "217c2392122f9868740137",
-- "43ac29ece073be2a30ce86",
-- "4b6b8f4e6118573075d4ce",
-- "3cd3f5ea5623ce969c863a",
-- "421de31b9083741c4d4c48",
-- "1960ca77285b35812422e2",
-- "7d40cdfed339cab397652f",
-- "51a001a64a22c7bc0db3ea",
-- "1fe4c7d7da3eaeaae25e65",
-- "720179be8f54eb5c778be",
-- "1144f2116d6e426f3addec",
-- "10ad00e38092458e73fe4f",
-- "72e90ac5d748fbd2d7aadd",
-- "18250945b23b28bdd1208a",
-- "dee72e6d522c55b461f4b",
-- "1e31c413e16722caeb814",
-- "5ccfa76193ddbc64186a30",
-- "5eb2b60c1d97e4dcdb09d3",
-- "7f31009d8b384ea51f9235",
-- "7118c95246463e79fab7c6",
-- "2af1b36e871a2152d87ea3",
-- "1ae4174a64ea29d65c88b7",
-- "1aa4bb2c56ddce8ebceb39",
-- "65773487e5415b58fb205a",
-- "5adfc7a0a78f6657a5960",
-- "3d5e0686efab87e5e7c266",
-- "6552488fb7e68b138c5691",
-- "69cb489051468dc8b7a10d",
-- "2885d88c14361dbedb4fb1",
-- "17f8a55fef5d58503cdf89",
-- "71a2dd2f4561ce6b25cc84",
-- "173ef6d2228315e7fc8577",
-- "6095ebe0914ab346aaab52",
-- "1246f9f5df870b21bcb1e6",
-- "5e53c14166e301e45a1c84",
-- "3a1984f88834905315728d",
-- "4678975ad8ef4ef63ed234",
-- "139a5be9fe5d74b7b324f6",
-- "4057d3883ee10c31d0c5f9",
-- "5de657154513d33b2dbb32",
-- "7da4d79cdf3d83f0763c79",
-- "7399c1866bdfc2ee9d0ba4",
-- "48cdee08fb7cd0c828eec2",
-- "4c099f907df9db8a25350c",
-- "851fa3652b44e57d9190b",
-- "d0d6f30615b8f231bece9",
-- "5f305f39404231a1ce6591",
-- "47b5376a6bf9ae1b5420d0",
-- "55925c1c09bda33b3d0e7c",
-- "4aa62ab8f33741774c11af",
-- "cebc8496358956c6ed352",
-- "4e0f2086acba831702db59",
-- "2103ca88adecbfdd3370",
-- "5b917d89029b0850efbfd7",
-- "619fb115b590487fbaece5",
-- "709f8b4e1e81f78ecdd5bb",
-- "5c6ce5b29bafc437eda5ce",
-- "1c6a5fca595a1ff62b0a7b",
-- "5c246c8d9baad4092bd7a9",
-- "2f1ba6fd01e5cf713f7991",
-- "3d17d279ec6a81f53cd4f8",
-- "42af59edeafb6c79b9d208",
-- "7e0f7a6620c31d72d9d568",
-- "68d1c5df4d9653be9c8e7b",
-- "79db0961906e2d46b0b349",
-- "4c4fa3875e78671bc1d2bc",
-- "22a17bb1e02873c944cbe3",
-- "25e4a83dfc2f633765d96b",
-- "8a4219421d2f55bef801a",
-- "341ee0e329f6ab9da76c4a",
-- "28eaec99940a1b1f563841",
-- "4f1b7b04b31a6d85748c8e",
-- "1152ee1f6c91b44b1faa20",
-- "6b4aa7c57cecc522b32c99",
-- "49e219e4b19fa82e3cdd8d",
-- "5bc9b4c686de112404ccc3",
-- "40d9ddb7d82d86fe4dc6d7",
-- "6b85f2803d97e818e2e527",
-- "321405882a2a0c05f7907b",
-- "60749c3a015660029dacb9",
-- "26240f3e8816b599bb01c6",
-- "1a91a4ef4625f7ae911f1d",
-- "18704740809cbd3a91bcc8",
-- "532d2ff2bd9d0ca8b344ee",
-- "18488f368798b8734164ca",
-- "7453e07405f19cfba93c17",
-- "3cfc7a65b66e9f8c6f8cbd",
-- "4dde9b7ed5a96934e4dd51",
-- "7afeb7314079bb05948a57",
-- "2f4c8ebd42ef359c5ac79b",
-- "2579cde0e8d37e04167a12",
-- "368d20177281b04fd8018f",
-- "4553e500c491eb2ced6e1a",
-- "12a8a0e9fe6ba5c3656149",
-- "13d6f0fac0c0b9cd891715",
-- "cfbfcb607ba616c016fef",
-- "522bb592e89a78b316244d",
-- "2db6d4b5b7a928883df97f",
-- "928d2a95f60dac2e280f3",
-- "15b79d2a607e674b1df02c",
-- "711d3de6506cffb89d82c0",
-- "1fab75ef67bec61a68a277",
-- "3dc7ec06146d405216b267",
-- "15c08724b1daf7a590d087",
-- "75c2ce5e2535ac7878196c",
-- "63dbff9398c6d2cafd1418",
-- "245003f901ae0a356365b5",
-- "10b57d68a8cfe14ef3ca7c",
-- "5fdc8856cd703470a1e5a4",
-- "1af9124bffaade4351e990",
-- "5f72010436c71470f190d9",
-- "50755ca653aac70b84b12a",
-- "14c9d693e42997dbc96df3",
-- "7a93c6e177d746f5eb503",
-- "28d70ec040ec983aded5c7",
-- "124c113e25b1a8153a830d",
-- "2df0f496cddcc699504250",
-- "5dab9e18ce0b8340db40a2",
-- "6a410e486ad693817f9d31",
-- "5e82dce0d15b40d73e81bd",
-- "4e1b51392bd1ad38a51d00",
-- "69efc15f2bab10979940b4",
-- "4bb8f4e111d078e3c54590",
-- "22e8d9bc34a96264dd4caa",
-- "3a7c703f2642b17eba0c69",
-- "2df2bed0dd9ba405c8c5ce",
-- "222dacddb6e77241cadac8",
-- "4c996629390ea0954eeb1f",
-- "37c7b0fc4e875134c29246",
-- "4a78cbf6bef93b38948e09",
-- "6c8fa526a6bdbce9f7b832",
-- "7633f58adb014bb5585678",
-- "509ea21b16907067d06b82",
-- "30a8e1972ee45f3e0613d5",
-- "63839ba9cca448dd7fecff",
-- "290fe0ae5a419909be4e2b",
-- "35dbe95730bed0669969ad",
-- "2a6c238cf5c57a2939882f",
-- "f9d7db7493258ceea1a37",
-- "36ded179138f0e4cdf1ee7",
-- "4996f8a3f7c2c5fac02813",
-- "39bbee3cab035e7fc68b3",
-- "741dd990ea20591fd9b5ff",
-- "16eeff7e87d3caf8e58a92",
-- "2c8f1060dc661c38044a5b",
-- "3d886ee05f1bcf69fa4f70",
-- "392d9ae31bf22e0236e198",
-- "1a7c7fe62effcf2d1a2cb5",
-- "65172c59adde7fa1aa62e",
-- "389d1e8a26db35e20882fb",
-- "7dd9082b6f5562b8d6ba91",
-- "18c5643eccf2173f575420",
-- "757f2101d664083b2fe8c9",
-- "66e9cba0e526f30b7b9b8f",
-- "6c33a3a058504d48c17efb",
-- "1a908fcb6be810a9e1e92a",
-- "2df246fe147cf6a7d9ed5f",
-- "3dac1d8f9e9cf46cc42204",
-- "3cfed079405fd41004c118",
-- "7aeadbfb750a598afce6ac",
-- "485bb888b6979f8f201fb8",
-- "460858d1e253129bf64e5b",
-- "3567cd9077f5bb1d3115a3",
-- "28b06a5b8a2319d5d78e37",
-- "5c3df551863d0055925c95",
-- "260985f3992a168bc7fb3b",
-- "5a00aa930e50101d3ad458",
-- "3e41b8ea3309221756df7b",
-- "216b9b04319fd8da8a6d3b",
-- "24a843ed6770d822f92be9",
-- "60e3811062f0661e25f626",
-- "656a55d45a93fac53881ab",
-- "10f7a570b959918609b06f",
-- "d755ece5c8fed1e833d4b",
-- "5eb96063b604b2d052b457",
-- "182ed4a29e8be479e40c89",
-- "55e542cd768eaa4ab7eb43",
-- "4a1404c02a58e6862d11f5",
-- "4366b19aa12542a30c1749",
-- "74a0eb9dfa780e171aa5bc",
-- "7b34f38b9d16f0d70ddae4",
-- "1f75d643fbc4ab52296f51",
-- "1cc8bac063e7f4722cc83d",
-- "1f1cae187cb4e7e2d75ff5",
-- "6acdbbcb1d87bb33b845b0",
-- "5a67c62d60522486e9cab9",
-- "66727c69de089e222307ae",
-- "7dde8d7ccd2cebd1d4b943",
-- "3732911ea3b78b2cc54de2",
-- "69b04bfb64dc28afc90f3",
-- "49a34db8369186ccd3e18b",
-- "3087f959a9893769198248",
-- "766ac65aedf40f90341249",
-- "3c8b578aed4234d875a143",
-- "7248daa035ed0c83c2d007",
-- "35d310b1c9f92e46c5dccd",
-- "747c7a13b706fb28e46c47",
-- "e2d9cdfcde324e23eda21",
-- "607776583fcde0ad8e4c87",
-- "2133efe27b28c873f101f",
-- "6ad95985d0ab8e8d823145",
-- "35d6d7bb2855d9adfbf650",
-- "7a123babe2e7abafbaf8e7",
-- "3b0cb59bddc94e18233703",
-- "77815256a969cddb479be9",
-- "9c6c4ea9b05d327c6b7f3",
-- "55137101093be9fb51857e",
-- "59bb325b9748e94acb6630",
-- "328bf9a8c78ea2ca3388be",
-- "6ee757629a9b68ac7e690f",
-- "59efda7d6a6d8e6aaaba46",
-- "6ce70c288bc2711b1b024f",
-- "4ed7cbd3e32dee7a40c626",
-- "a9753c820825d73c04548",
-- "741d91860d83d000328e76",
-- "59aa03a25735023ef97395",
-- "1cc96ab6764758e9cff09d",
-- "50e22c6cf5d6b70def807b",
-- "76f42929010d1ca7619b42",
-- "18a6b71998f6f84fd5d814",
-- "5fda42ececb40f359e4f0b",
-- "2f62056d547ebf7995c6e6",
-- "23966403e567312c7a8379",
-- "6b7e91fb5948662e3961e3",
-- "1e6874a8b307092ad6e72b",
-- "31dfcfe645b46b329ee2a1",
-- "209910d1159692421526c",
-- "3c4374002a4b05edbee285",
-- "6df855d5b158377d521892",
-- "4169ab1c6bf3f0abec6c34",
-- "359b331d03b9cc2451c1f8",
-- "3c7a2b6b58424eab86f3b4",
-- "7242e44696c19a3a1910b7",
-- "2a7311c640e7cf0ecc141",
-- "7933956672bf2e4535ee34",
-- "455927f484bb8820a2ccf7",
-- "551ec7c1ae7ed078f940c0",
-- "6ef800332004d6cda26cdc",
-- "7630fa097aa2bf97cef6b9",
-- "490db50fd1ace7e8ec15ae",
-- "32f5fb93813b0abef00c9a",
-- "44e6ec408ba05ad98e759",
-- "568f3917922fe83ad3e225",
-- "273beeddd87cbae01c207f",
-- "1a8ed7cad7bcfca4620120",
-- "6c362e17e2173449bde86a",
-- "191da9b869e973d2fdfea7",
-- "64666abc6a9a2f6a1c7575",
-- "3c31433d0db703e03c294d",
-- "1e74e23fb34c50dc055d0",
-- "59652c3042e742dab07904",
-- "50e46147373113c54d73c2",
-- "776ff8d5492c149f7acf17",
-- "318d2300370d914ed1483a",
-- "e24946eda2a54a4c98b6e",
-- "28434971e0ad86e87340b6",
-- "b7602abf832a9540b03b8",
-- "3a2bc2968347afc3827c67",
-- "5fde1fcd656f65c682e01e",
-- "113149ff5647e02c5d8e8c",
-- "329c1979af2fa92b25335f",
-- "7de8764ca6a43c99d6a50f",
-- "7e68cfb951ae556b15fa1",
-- "5cac3c06df31850ad70694",
-- "357eab1d6b7f6618503b3c",
-- "4e66ba0bc1058a3931042b",
-- "65f33a2872e25c8a682f06",
-- "a5d62acbaf68c52001a4b",
-- "18f39bb607de6b1ad183e4",
-- "16870479234b3337ddc8c9",
-- "7093b250c7b04c2c6d567c",
-- "3820d1fc1eab75e925dc43",
-- "49ddb3e956e6fd8d65e1ed",
-- "7544304d1b3c2594fef689",
-- "60483a9742002ed4918cd1",
-- "809a8bacccc204134381c",
-- "177aa9fd51aa698c4f5d25",
-- "2848634cb8eba43423c432",
-- "2bd0c39ecff8d002f3a3f7",
-- "2bc7683658e815b0850ae",
-- "56d7ace10d6e046f35bc1e",
-- "1cf7470aa8bed908f93c32",
-- "44885049137a26d9ff4438",
-- "46436019c4b35e76ea4182",
-- "6b4ed91c3f4f0b25252206",
-- "1cb50b0700a11348f864c6",
-- "26c603e605263eb37ee858",
-- "734cae170e5d7d8758c509",
-- "3e00e41664141664f70d8e",
-- "4d36c683652009a273c69c",
-- "61e21b9a255226ab8a9c03",
-- "66db9685c97e1039f97191",
-- "41ebedf12db1451af99b12",
-- "5640578c9a2f674c097c8a",
-- "37526cf6c350fc29ecf559",
-- "6e93c69a7627e1f9832a61",
-- "3aaf5736ed929c1ed0ab93",
-- "42cda11218a2f5a8d7bd1f",
-- "ea04fd9db78a21c39b6a5",
-- "53e3092b891267552e8471",
-- "3e13e95a38da382cdac574",
-- "7d59312cf551555c728152",
-- "57b341376c8eeb5e957326",
-- "2fb62f0a2e9435830411",
-- "6131db76263e902f303f6e",
-- "5e7e83070de3b07a4bc87",
-- "54765bab6ab2b394d9dee1",
-- "3b4ae8aa403abef29b052b",
-- "4e1bc7c2f29a2f520bcf7d",
-- "50bb1918112bad3e57d523",
-- "3979e2b3d54a21e7e8c1cf",
-- "4f3fe475424626758ebe24",
-- "26c45bee1cb7e300fef593",
-- "20866732367b425f7e5ad1",
-- "4779c6f70cb71f00e32d17",
-- "24dc2302a4b77b85525bd",
-- "f339d2f5ca33347ae8d13",
-- "2e178e1cc4f997792ce1aa",
-- "54728697bad28cd0bcc9f",
-- "13413811d8a8e6bc2e6cf8",
-- "1a3337bb0bc288bf44447e",
-- "526d1eb936d1a3dec6eeb3",
-- "7df75741d3ccafb28da8e",
-- "6476d594392ef9fc9a3df1",
-- "645cf2dd2735f1cbf53f1a",
-- "780a2a5411b159d83dcb95",
-- "562d8222a0b94f5af3137c",
-- "e859d26ac6c854731c10d",
-- "3908eb827c8209b96bc643",
-- "61619bfea73d2a10c7a7e9",
-- "cf2bf44fe6c433cc00c9",
-- "17b5a764867bc2f176278",
-- "667b77d58f7f6b14e19bc3",
-- "14c79375686a30f4c21ea1",
-- "57d421e876be8c87768c1a",
-- "a49f38b3c0b7ca1fc5c10",
-- "1998c4f90bb8b5465b7b1e",
-- "974b1ea8fc3d4665ea11a",
-- "4382f99dff4951a775fb77",
-- "66b03ec137e6361ddf6317",
-- "43f99aac41b05d58c624b4",
-- "4efe7cc856d9eef4fda470",
-- "35f48b300d21989b05560",
-- "79ef58660a06bbc22f0cce",
-- "5623f1c8e0d5c15938b2a1",
-- "740e3fa0e998e741eb97cb",
-- "4f6148f444b84dfe82ecb2",
-- "34ce2df12c5e0970f682d1",
-- "5fe5a0fcee7c061cf49e8d",
-- "127dbd62073fb0c17b4217",
-- "31b2ef6b5163160bdce290",
-- "7f9a1f8e557617163d5e82",
-- "3c5262912ab7e82ffd49c",
-- "4ad5e4985caa0c7ee63b9f",
-- "5267f1f68134d546ec646f",
-- "7f695021b246db24a5113a",
-- "11df54a696817409ff1164",
-- "5549ebaa872068aae68ac5",
-- "236e08f8411de38e44c3cd",
-- "1892726d56d4f8f92dde20",
-- "457d09be8a2a4c351b63ae",
-- "53339d5a01f3d2e9bc8755",
-- "ac5bf0492a63aa0bf597",
-- "714ed5cb0027168be15142",
-- "4cfaabac7104cbad2ed728",
-- "486fd3ea0158f33daf767d",
-- "61c0e0ff11a378274b395c",
-- "5e195ccf98c9a4e1967fe1",
-- "3eecfda3b4d92af2b7e5ae",
-- "62af499c078af038905758",
-- "38d987fd4b450ee5a69286",
-- "5f9563c7ca70d6e5061bfa",
-- "ad64cff4b4763a7fda09f",
-- "26554ee3e9bedb1a3a09fd",
-- "42c5d2d1082dd2375a4ef3",
-- "7e05b7c7d54cfa1fc7b525",
-- "118d29d91686683483dea8",
-- "2c56fdcda56f78dcda9b60",
-- "d92cf9efd7d12c62f0dfe",
-- "11b77783f411c457cf909e",
-- "2cd33d1f501e268643d591",
-- "1ebddbaa72ad1a2b1cdc49",
-- "73f4373aa0c46a1ae61409",
-- "64b1dd5abc6713a8f53d0c",
-- "3aef6b8ad8d4f116a27e4a",
-- "13f9a309c929439a91df6c",
-- "401a3ed45557939fa7eea",
-- "1d1aa15ce7c8c15f051ba9",
-- "398764fa3e177502af4d3b",
-- "48edf77c0fc298b0491c2a",
-- "1c5b7d2b84cbc7b29bf542",
-- "78873bb7282961108e63a",
-- "16ad879cfcd3e458301dc9",
-- "28b06d6b1f993702509e4a",
-- "45242101d43b276b34115c",
-- "783d012e8b928ea14eaad8",
-- "5afe15c1524eda9627e183",
-- "42b636bc4126dddf74cb00",
-- "5cd8f782abb8b60cbf36f8",
-- "1c5d10301fcf4a14c82adb",
-- "52d3cdd253b64a03c5885b",
-- "31416a7f09913059dc251d",
-- "46bafe88322c67f3b90507",
-- "4cb6253df884020966d27b",
-- "2948eda7d7c508918c3056",
-- "543222604f067afa3e7558",
-- "3ae99fca89d15abe091160",
-- "140aa7412f6488f5404826",
-- "16b6721ea95f55ef631d25",
-- "133606f2fed41ffd77b999",
-- "4d075c933e4b93da3a33d9",
-- "4ed1311eae64f9e834ee7b",
-- "f920b02af1e3bd673512e",
-- "312518f9c1ce1e690c003d",
-- "44bd0de2094b8b3759356",
-- "3d40b56764f7765513d13",
-- "6b5da25417070642e0ba4c",
-- "6bd995ef31bcfd22d52d9f",
-- "3eedab106a435ef32b9e48",
-- "534c1a3b25194e8cd66e6c",
-- "28a37e042abf70a7cb137d",
-- "76fbf6732402bc76e061d1",
-- "3b66491ccee4801a4e3673",
-- "5ef7fbdbf498c8684625f6",
-- "3305f9d7ac9bc35ded571d",
-- "6aaafc0107575bd9b70723",
-- "5eb217461cfa46d5694397",
-- "7f5140ee63b60e0a33058a",
-- "3fe61d12a0b09791925ccd",
-- "591749051e47ee7b49cf82",
-- "33440d7d3472a4b6e2f627",
-- "4dedb1ba2a6a4abde67337",
-- "30485371efc19b50bbafe6",
-- "3566f7f67e026f0278dfd5",
-- "201e678f30ea96fd17615f",
-- "4a2580e03d81912089d88d",
-- "68e88d3bc4e8d390ae4b13",
-- "46986d0da7a2c17dd1dc22",
-- "174fdf0bcfc8d0f4e77e83",
-- "7a75be28b1e93e4e0c9342",
-- "11081f4b8fb8f0a9abf772",
-- "3245bbf080c6731fee74dc",
-- "57bf13241507b812b9a904",
-- "50c915d40aeb9e4ec78789",
-- "530f4c391aa2b0938eb272",
-- "4e0326164785519414d07e",
-- "389d9fa841750626db108d",
-- "5eec1e56c0a2d0e34dfc8a",
-- "3e8986648fb4053520276a",
-- "2db6e61499c9393946b57f",
-- "1b2e283bc4ff40366c744f",
-- "95d86ded4a7b26a1ad331",
-- "4818fb8f958698b6e9c9d9",
-- "21e39ab39cd96423900120",
-- "27476789fbe89ef5fe00c0",
-- "1b67e56d8c8f6656eac86d",
-- "28e33efab89fb4f64d6498",
-- "18eb41f414dd28e8ff3a1b",
-- "4a648c611ef0b3b0e318e0",
-- "3ab4982748b8f986192588",
-- "1eacd91eb3938b38f0210f",
-- "5227913634dbd4b19ffe95",
-- "1d5b0385650d2d81754f72",
-- "7351e32ddd53c7465f65e8",
-- "202d04fcffa7e3a0ae0585",
-- "6b77b6d06b93487730de2b",
-- "2f635c018151dfffc38ed7",
-- "7d83ba89b9f89b55497937",
-- "d1c5eeefb8bb620c573fa",
-- "322d1e939066766f918e43",
-- "3ea29dc49c06d64c187862",
-- "7f64ec3ee1d6fd7b5f9352",
-- "749ebfb4005c94ed288c4",
-- "6f3d0d822d1a27088df8e4",
-- "17b1690a9c9f4fba9154e2",
-- "142aa17e315b2096d3470c",
-- "5778dc2f1465daeafbf88f",
-- "3135a042ca5b8873367081",
-- "26f3f960b2ba725c83b706",
-- "156e3560db5a642c108333",
-- "3adf2b6aaf40f5dcdffdf2",
-- "4ecbf2559411992397d1ba",
-- "5e3402a24a307a945167f7",
-- "553a48facee35f17214327",
-- "57c6f0c9d94e02524b4029",
-- "44867f919f39bbc1ac8a53",
-- "7b1e254e6050240b36eede",
-- "7fb445fb34908201d41b44",
-- "5a49a0430b2145ead2e9a5",
-- "22d9fd1638450186756413",
-- "60a177acbb4aeba955e6a6",
-- "23a7a59b35972768b71627",
-- "ea9789ae096da5bedc410",
-- "38419b7c213432cd42f4bd",
-- "4024c6847ce50a93fefd10",
-- "1f15e66f6c5b160801ec4b",
-- "26fb73843bff3e4d17aa10",
-- "212d386743b2c2069ec4b7",
-- "59377c70bed9cccb346cff",
-- "5a80f23e82161bfd2caa8a",
-- "21532161ecdbdaac15b68a",
-- "5cd8f904c6a0e1c85597c4",
-- "2ad8c773fcdf92009db9b6",
-- "1df80784a603cde2e8573c",
-- "41127c781a5dd07b6ea357",
-- "6152b40d63a55e1ef6e750",
-- "3161bea37fcc040c6f6494",
-- "112bfdedc3401ff20ffcf6",
-- "6a3afde1cc784aefb925c8",
-- "47a38df2df7f516ac35f8d",
-- "6dafdbef06e817ec42991d",
-- "72059eace3671c76d67005",
-- "a209dce8856336ebd97f2",
-- "695d060b1aceccfdfa96c2",
-- "17445a9a60b0dfca9df354",
-- "249f5358017ada6567b747",
-- "b7347a4820635a5852b61",
-- "2bb74459adcd7029c9c35f",
-- "3684bf3ee3a2b8635ca0e1",
-- "600de685f1a4c2f4a236d9",
-- "68ae7d3832d31bce57eaf3",
-- "7a75b868e9fb50140bd203",
-- "1105d3c71c59dedcb33f",
-- "6234ffe0f938a25ce0f5a8",
-- "41858e467a21a3938d60aa",
-- "7332b41a9fe9dfbe59f71f",
-- "313ef612f2fd65f39c2e3e",
-- "49ce8855b52dfbb878b2d3",
-- "46b1961304e45b428bd48",
-- "1740e5e9a57a4e80eed5c8",
-- "7f035a794c44a6a57abf00",
-- "6eb090e9b1df79f4d2226",
-- "7f26a6c99362d1126b6773",
-- "14e47840962745e9f2bba8",
-- "28670ba592cd5a2625df3d",
-- "5c00c9ce80be32396ca075",
-- "4cc8bba01b6788222eb375",
-- "581f2a492a4fe468c3971b",
-- "6aacfa3617f47dce14015a",
-- "3988842f76572373c3459b",
-- "3146d29fae3f74014572cf",
-- "27216bcb23514df00030b1",
-- "36baace22f2d7a2014dd1e",
-- "20b11d38582bb81886466a",
-- "5aa25b718982092494e872",
-- "3f0eb0b9bdbbe37f40dc5f",
-- "5c4dc3dd9138eb7169302d",
-- "503bee64726b7b32815f44",
-- "7175ce67c0c74c440327c2",
-- "3fc3680285719ed4f7e7fe",
-- "7fc9fec9506aa1a0661240",
-- "122e1cf4ba920fb923d0e1",
-- "5570385cc742f16a21edc9",
-- "2a8b319bb90a064d3cc523",
-- "797bc83e9789b064b51c92",
-- "124aa58a7e2a882689ba12",
-- "5ee825c795f457b727b9e8",
-- "475c02da59260b083fa105",
-- "5f427b13d8351db71dc75e",
-- "7dca64fefd065e0893d874",
-- "88658ceb2447416239af",
-- "75ea3318a1054593eca8e6",
-- "21b1555bb331b89f928e6d",
-- "7e558ced95c8a49312174c",
-- "71f02d980dd943488cbefc",
-- "23e36a6e12831353ac1afd",
-- "1073f10b92dd8a202017b2",
-- "a0ac3885d2cb22aeb977f",
-- "2ac1793993d045ec4ea0ab",
-- "4e33cc0d26d44c2394c8d2",
-- "5430c091f416778afc3f3e",
-- "55f3bd5a345801aa67f91c",
-- "18bd8096de042467441c8c",
-- "1dfe68dd4d69d0d5368782",
-- "a69b0e544c08336c9606b",
-- "405224a222d42397ca18d2",
-- "5ca40898d5d325e557e04e",
-- "73e9dbd2873c27040a215d",
-- "56efa25eac0d5f675af6b6",
-- "460f5f98b19a4d353358fb",
-- "28593d93a1a2159e16cc13",
-- "1eae59f579b122f18b84d1",
-- "7f29a05b16052f06eff50a",
-- "2ac52045b3b592dfbeeaaa",
-- "6003c83a8ae5ae42a0956a",
-- "3af2323baa99fc6ef534e0",
-- "b3a488e23273b8e74aa2e",
-- "dde95ff1403621e1e9c39",
-- "8b93e9e7ea54df6ea61e0",
-- "382238b03129ae3a8cb2e2",
-- "7be85a588e4f01b973f9a4",
-- "3428c448a20f463714e16e",
-- "46c829e7e1980bc26c13f9",
-- "20573b178651610a410e89",
-- "16c1a9b3bcba979d2fb250",
-- "46bc67034da17d5b7c72cf",
-- "abe7e5169767e92b8517c",
-- "10a7cb0c646bfbfaf6b1db",
-- "3e27d166777ab6af4a4b75",
-- "560bc3397e1eecda48e8d6",
-- "153d46a7ad0d4c7b81a83d",
-- "7b625b197eb76a08b19ecf",
-- "58ab9a24dbad2ee2c0942",
-- "6b463071583d5d51119c18",
-- "58d985a1111ffbdece42a",
-- "772853e9593804a23d0c9f",
-- "3566ae3cffa53b48308a5c",
-- "3253a13971cf24cc306f4e",
-- "161741a6fabf2be3cb74a",
-- "72492bafc7adaedde393c7",
-- "4d17bed73f2032142b03a3",
-- "43ad0b393a7c2a4d667efc",
-- "5bdacc4f0e9a9f3c5eb7f",
-- "3fc330d82c00c3c98129ad",
-- "2287f22a43e09d12b5fed1",
-- "113203b24e05e4ff03bfc7",
-- "386903ad1ff043a2a203ff",
-- "6efc437814b1b1a8db77d5",
-- "60d1cb028fdf2f7506480f",
-- "5c08c8490ead830327cfc3",
-- "56d1b28a25e58905b948d1",
-- "6473a7fe7461369e02b551",
-- "43240f690e895ee2ce6199",
-- "217e1d11ab05e37175e942",
-- "115af287df30e3b9382159",
-- "3d01c0ebec513aebdf049d",
-- "3b607643718a1436cbf93f",
-- "392447173660d27311fc56",
-- "7fcabd5ff8d8321877d09d",
-- "773e49f5dd28ab9abcc4f3",
-- "333e4709f384c49fba280e",
-- "1a5a69890d5f080ad27aee",
-- "142700479fca005e365a5",
-- "16c859dc1504abc8bebb3e",
-- "8e1dc29eaa3429a93416f",
-- "3d2c4d19f97ec14b7f9a20",
-- "b80a7edd7c5745e63c50d",
-- "7eacc570a117e3d2c4ad3b",
-- "5a4b0bdbb9a3eba57ecafc",
-- "2bbb60823308802716b002",
-- "60de98af5b2e9794ccddda",
-- "43f106dd9b706c7cbad455",
-- "247aa73439f114a2bae1f5",
-- "404518992cad409d30e138",
-- "483592c4cf34d97823b087",
-- "303e55cf5d940fa1eb0863",
-- "27cf1a1e36d6b6fbf673f1",
-- "753e3ffd723c55ffaa57eb",
-- "527df835ccce3d0d8dc6be",
-- "501c73bb8897e8a9b644da",
-- "2c748923f66e9b836e2956",
-- "252a9565fc2ed88c83afe5",
-- "53ee027a60ac6b8703b4c4",
-- "11e3b65e520ccb94e0f28b",
-- "1d82fef6b5daac184a21bb",
-- "34f1c6d5946b4f8e9c34f2",
-- "78c36b7a1a1ac86080796c",
-- "3c2561b4603673cde220ff",
-- "347e522bb35549d788adad",
-- "c5eb765e74f7ea6040509",
-- "6b91d4c08bfb155d85a09d",
-- "1d345a329131e03407a9ae",
-- "7656e2bcd13769bc7d3690",
-- "18af2f7c66ebae2215b225",
-- "5c0b858603efe861d8e554",
-- "3a948a48ee72242647aeee",
-- "5eb549dbd9b640a1018c4c",
-- "39395b9f947ccce230cc1d",
-- "2983f80020a9f6532ba834",
-- "599c6bd84b32b97e000cad",
-- "494a8aca14d077b143ca10",
-- "5514a9f97c736ef89e2558",
-- "22a2f494120b7469421488",
-- "6bbfc916f60c65ff6069ae",
-- "988dfd270fa06d78d9fba",
-- "65e3000fa520e5bd8bfdc3",
-- "d79412155f3d978866277",
-- "540f6a5d04324cc6ed1398",
-- "5193e0be567990b2818200",
-- "5527257327c4eade309a67",
-- "6a6ceb53a9e08bce60e22f",
-- "3bc0b4b12c4e0d37097319",
-- "6446d75a31a4956c235943",
-- "70089a05ca7765b8ef62a5",
-- "78050a04d755b7008433fa",
-- "4cf40ea87be0baab3f0a23",
-- "421f5a540df5b7ba309bc8",
-- "22aca8e5833c97719ebb51",
-- "595eaf076defb81f21236",
-- "324340f1f7ccc9eff05524",
-- "490df281db25788739ca0c",
-- "7cdb727ae2bfeeed50af45",
-- "8fdbca74c18894d421e52",
-- "266efd2e0daff29e309d38",
-- "2d3baa252f4d982bd2ad11",
-- "26246e8fdf408dac8fd2a5",
-- "4dae59d140c542483e12a9",
-- "7e37627adf10efb14adf13",
-- "7059a8ae14b27b87ae7942",
-- "5d0b6fe03f574db311d01d",
-- "4450b05b160d8c53288cd5",
-- "5628eeca86bc4f505da4a8",
-- "59d6c2db6f995cfebbccc9",
-- "32c247d46291051243da8b",
-- "29ecceda91e2de99bded7a",
-- "697bd2294052d067eed5b",
-- "35d846be55b3952e278ab9",
-- "3846b043ea9479616ae948",
-- "460dae8d89d7708b43a1c7",
-- "6ecd91e762474ea500bb02",
-- "78386c3f2bea1d92b0136f",
-- "5d36dd2a4f038c91a8e525",
-- "2567685d25fd668a9a024e",
-- "484fed0412b66b4ad6689b",
-- "11e987960e92f0cfe9e7d",
-- "48457eaf5bfbcca641689",
-- "5e89ffa159d58051edf13c",
-- "ad8ecaa59795b2101aeb",
-- "4cd6b5c75a375bce549db5",
-- "17a8f2f3a036b54c467b7b",
-- "456d747923e7fcbd260fae",
-- "38b2a18fa105ae1a1e82c8",
-- "36b718d293f968b4388def",
-- "6d15e33dfd91b0adf65ea8",
-- "6a47915604a062b94c626c",
-- "63f2b709d7c6ba1ce60255",
-- "73da067d52334a718631ff",
-- "68c11de19f57751aa11e9b",
-- "1b50ac3c3f5269c1d7aa40",
-- "51f56cb5201bdd22f49e70",
-- "245ff16a71eb8c45257fd0",
-- "7dcfee63c4d594e4583601",
-- "604b2e853911ce83225aba",
-- "5bb6095d45a0253a5e3e2d",
-- "14b7709b903167ca33c0bd",
-- "6e6871265fe9883143d121",
-- "453649c203cf983e439d84",
-- "5819cdbf42afd2334f96",
-- "3450478bbaf1db9aae9e0e",
-- "35a56ed2078e145e9b5d42",
-- "15e468fec0387d9dcde2e9",
-- "1f098e306099d97f37bcee",
-- "108be849403d8b9e0adadd",
-- "432bf33542ea8f8c0e1cab",
-- "1fe772e91ad75a2d2792c4",
-- "2aaf602c5ad427702561f0",
-- "66c37766a09f2454161188",
-- "7c91adf751ba7b800072a4",
-- "587965194057ffad1ed72d",
-- "6b189bed3e1ee805a7089f",
-- "656e0aaff42e8f100df7e1",
-- "50d8060a4c81ac0d9dcc9a",
-- "3b142ae3f666b5a458fd6",
-- "11216382d02fa8a680f2c",
-- "640821dda0f544b159e25f",
-- "60ad8426c5228781a660d2",
-- "50b259ce6ef7786ad19380",
-- "617907260cf1e3612508c0",
-- "2020839307f0a0b2a66465",
-- "6c9aa8a230f91d4e6f84c2",
-- "479f0a9b95b8f0e630df10",
-- "74e8524ea4276a1585abc9",
-- "1832f7608c30377f8a27c1",
-- "468227ba06af62fa70d6b",
-- "46ae03b83630be869f3f67",
-- "1c429a8aad032b85e815c6",
-- "784a6ea72c75433fa2c1c0",
-- "521255c27009b10aeef14",
-- "6de250d6d96fba0a4a2df6",
-- "1a38abc6055dcfc6f54cd3",
-- "459fc4d70a1a8040309b48",
-- "5206d5cc4cf74b102b511e",
-- "1621052353e1bb38663f44",
-- "6869e474162fccd5e6ce8a",
-- "265a6fe3ade48b79bb704f",
-- "1683c065332572cac40e7f",
-- "40fe888eb50954f82f8f41",
-- "5ccb3321bf79805e3743ec",
-- "6904f88af6eea4b3f91bbf",
-- "a70e6c0e6da7b5bd943d0",
-- "7b7c35dbf0dd6b94d050c5",
-- "4ee9fe013ba8fc6ac8d470",
-- "1825a2f6c03df8e89a424f",
-- "6495ff035413be2b53c45f",
-- "745f8230228fe0e913a537",
-- "57ca180b4c6f8c3a63ae46",
-- "5963fe850d852bb19cdfe3",
-- "430a7ef273c75f6860a9e2",
-- "28c8b8ba9341ac37c38695",
-- "88d1f466f33239ebbee3e",
-- "7bfb517a9a7064f7f0b9cf",
-- "222ad5a5eecaf564928d05",
-- "31f4e6b45c1cedb6d4c94",
-- "9d0d5139d46e4d9db3662",
-- "46ea372cc256b25d8bedb8",
-- "1177a186084a0188e6b25c",
-- "79973f898e87ee6433e53e",
-- "17f90d7760ace90b4281fa",
-- "4d06acabc42f8f6c6561a2",
-- "297ac6d1d91b19c8ceb3ad",
-- "76930d75187c32e1c0855c",
-- "ef9f73cc5ae815a32ca63",
-- "3ca5432d73f30360d5e251",
-- "2eb29dd03203d9dedca2ed",
-- "3f719d970328ab86444133",
-- "671a35180c429ed6cd73d6",
-- "1a5a3601f9e5c757413d21",
-- "1207f0afa9b17ee1e3a14c",
-- "64c773513b07ac7be226c5",
-- "645491f7754448588100c4",
-- "6803ba4d96f3cea5b5b619",
-- "3e8f3fee79b0aa7d3158c9",
-- "7c4c5a07ab45db64032f8c",
-- "471e19dff79f0bf8dd75e4",
-- "736e4111350ab36a2be4ca",
-- "70eda2a92c3f3d551052fc",
-- "4be7ae42a1b71df0fdbed2",
-- "38e1136120c0a50e7c1942",
-- "34de10a25d48bbec6bc310",
-- "45fae251151688f6948ec3",
-- "a5803d95905530efe4cbc",
-- "29c81a2bbc75ee65e40fbe",
-- "5d0e736ad9b0e048c53cb9",
-- "62a6ac9d0c5e4b3890d61a",
-- "16587b1213183c74388d6a",
-- "30455197024dac28f22ad9",
-- "5c96c4bf9c30f05dfa52bf",
-- "2e14fbc2ca9b056ee6a0e6",
-- "544e247e73028cc23b1f51",
-- "7569e0846a7c92c5b07e91",
-- "2e37e64613e6e49f75ff6b",
-- "75393667821938c0e5a628",
-- "2db4889991fd96d5a3dbfa",
-- "6b628f924b031ff396258b",
-- "5c721c1e9f943f1e44c526",
-- "4845e19f6384ed5724d8ce",
-- "451cf4e4a6ce149cfc4095",
-- "69cf5ded5037b0fc848b28",
-- "2144bb26c3488be851e3b2",
-- "2582d22d55dfd72b2d70bf",
-- "67fe64c68be6372b30260",
-- "b5ea9188a76cbd4490c2c",
-- "2f9195fa1721a36e6f5198",
-- "371b6d93bf32954a1ed005",
-- "2d248bd8de364598100d1",
-- "3476974a3a56c244bcd4ac",
-- "7d10d41f081cc53194454d",
-- "9ae11d1f0b2cb73496a44",
-- "3c11b4ca34c3237b362a26",
-- "3b62b01334bf25d1f5d560",
-- "4a9dee0a96c91e7cd6d7ca",
-- "2d8ba9bb83d8b7dc77cc32",
-- "394242cd2ce4d5c927b1f7",
-- "13ef893fe161bb05038778",
-- "210aaed4cc7b55edc4255b",
-- "72bad07fa5d3ca19811efa",
-- "1856ece5542adaa42b18cf",
-- "2f775dce855cb22a4ce4b4",
-- "1b3d8a50e5425c7a4550f6",
-- "3fd38eb64df431878b817e",
-- "1f372d16a7c783f301d859",
-- "2e99bf2a9cfd14eb01e4dc",
-- "739d86f4db437bd59681d0",
-- "91782b2d8bf1ec8b6e4db",
-- "13089f86ddae7614e1f733",
-- "4374fb07e1eb1efc714a7f",
-- "34026c0467a5bb1302960d",
-- "1316737cef6e8d73f98c46",
-- "308b1811fe8c7d6801df6e",
-- "3b6333c6dc16d5f4351c47",
-- "30151eaad7aef0e79d5e07",
-- "6d5ce69503f658697314d0",
-- "13022f601d429947abd201",
-- "278331e342f211746f0d9f",
-- "44fd7c4168c2a61413dbd2",
-- "77747c8e4550378570ec0d",
-- "31934713e4ff1d0d7cc583",
-- "5ca455ab52339850752f94",
-- "cc47e7e925da6c91fe510",
-- "18932d3a50056ecbd4c0",
-- "594820c775fd57d86cf9af",
-- "4ad8d4214e4fe01b143d8",
-- "179c67b2886cbf8a80171f",
-- "60e1157dceceaecc3a16c9",
-- "507a197204651599300f85",
-- "1da6208947854d10119a62",
-- "2fd395d2076e94e7f79f79",
-- "3326fb026bfe153a5a80e5",
-- "214b26c5cc4d2d1d455254",
-- "2a5beeac5cc34b9b70fc5c",
-- "73037907fb5b7e20bf7973",
-- "622155e1a7c16eb9e6f098",
-- "47eef469d5e96dff3b60f7",
-- "31b42ccc858ccceae34d5",
-- "68c711e371efbf9b278db8",
-- "71e107fc4c98b40c6f7b53",
-- "2a2840d0a8db4a22fdfb53",
-- "557e56b5a5dcf30ae5f48",
-- "5451512089afcff74e1bd9",
-- "6a44a264bb1144d86619f3",
-- "72316f1be6172c06994a4d",
-- "d5835b5723a9063a2dd80",
-- "232ce65586f95692d89383",
-- "2a8c9eedadb6f6d58c06cf",
-- "f5eef843bd404a6869b17",
-- "720851fb976798365a6829",
-- "6e8b7f0e9607e44c1f9f65",
-- "3860366ed3637eead94b8d",
-- "30d33e090854573dfd98f5",
-- "682291bfd680e2cd8f9d70",
-- "7c1fdd60de643e750fa1d",
-- "774b9d1f08bb74ab682979",
-- "7b5f04e933b2e4204cdc65",
-- "2c36a4d87847724f9fdecf",
-- "2c941d4c1c7d68ef593ae6",
-- "4576a87293566d06f5b643",
-- "86148c3559c855d7a4785",
-- "2d0a5221661bafe1bae3a0",
-- "4eabe0db8ac5d733acae29",
-- "1dff7b3a25d6efec89d4f1",
-- "93ecdd9b52d588b62ae9d",
-- "4a5c54b88c3afab5d73bb4",
-- "50873f081856faa7b0c6c0",
-- "7a4c62248fb05a7ec5f894",
-- "6297ed8d827bde2f27c592",
-- "4f88d842683a24f7a78b4e",
-- "6543f2ea86c39aa319b565",
-- "1711e7c4ddf7dd725f454a",
-- "6e925cc1e63747fc8301d9",
-- "428c02c3c8bb1613aad2fd",
-- "1b12fc1c7d3ee5cd24b30d",
-- "38618fda51c023d44b41df",
-- "75ecb6eacac31eec1c8d24",
-- "363495385d4023abd7fffb",
-- "52a170878e73d2b9a73398",
-- "40afd831d872bbb5ba2dbe",
-- "6a2bde70b440f36a3a69b8",
-- "6cdde5dc50cfba13ab15cc",
-- "6102d4b92b578db1756028",
-- "1d72e71f6a57243468bc42",
-- "4f100cd2b63ef0cdac7165",
-- "56441a020eb196f9ab47f5",
-- "520d75e4874b90e95d0ac6",
-- "4ad5b5ec9142810d730c91",
-- "6369f366be6b5ec99ddddf",
-- "4ae3a5f46681ba13e649ed",
-- "33e094a7802d99ab1d9620",
-- "58ca4d190a0f756173e746",
-- "4afa034c14d96f077cc41e",
-- "3277a60ca85c986d50dee2",
-- "61df6c089b8a0a75da0288",
-- "3a9ec75af3c8e86b8c1b73",
-- "7ca8eb46f6df31902607b1",
-- "7a283d5e2ed98485e2d260",
-- "78ab001943d18ada1f6d03",
-- "56f539741375576aac816a",
-- "75fa74ccac539d6f2e079d",
-- "7108a03a28803eb91e8a0a",
-- "3756665d23e5dc56d35905",
-- "da96dc29f77c98efd9a65",
-- "54ec1fbecc620b2a62de33",
-- "2e564f6ba5f6f74e33f2dd",
-- "86aa65ac1949dd8af6918",
-- "605ccf0922a0c35f768933",
-- "4348b708829c7eddd56237",
-- "19d3eafc75447dbc2ce4d",
-- "764156f5d90616c8c45669",
-- "51e2ff830fcf99b4147ec",
-- "2d30342ea20393b89b038b",
-- "6745627963b760ee39ad1a",
-- "76c344db7c98c1b1fa25d1",
-- "5b872486f12a68a939069d",
-- "274cbe37d4fe65732936f",
-- "27b48290f4bc222f54681d",
-- "1f7e1880120c76703199fa",
-- "2bf0a5cc2a5150523d2e64",
-- "2d3b2e3d52eac5c09743f7",
-- "46b7638024bbab6f336734",
-- "71f7ff7f6245492bf4ba4d",
-- "6ac96f98fa78ffb692afd9",
-- "1c63d031374620336f8c7a",
-- "5eb0e751f365585e4f3fd3",
-- "24716274d6f1761a2e503e",
-- "3b663e3e9013cab9326fc5",
-- "231a1fa6a52f8377b2ca86",
-- "464063c0e0f5e5eae1bad1",
-- "4f588ef825e26e596e160c",
-- "4adc76f7cd88044421953e",
-- "228eebf60c055615805405",
-- "3d32a6b665f10a829cfff8",
-- "ce584760ca84047b25a4f",
-- "982362cb3f64fc2535f18",
-- "2cbb69d06f0ba3051ce433",
-- "2fb2d651d1a5fde2dc4d89",
-- "116822d6715118a8643140",
-- "52e4d0f780530e040b8198",
-- "4d84d472f48a1f27cda4fd",
-- "23675569b6f74cecec658",
-- "7273cb20026d3e5dfa9567",
-- "5e5c9c54f1f75bcc98d1bd",
-- "37150fd6c06a98e84f0fb9",
-- "1cae4d5a0b88eed0b2d97e",
-- "5e6c438c53b4bfbeab6a4c",
-- "7ec0ec060d3788349445a5",
-- "394ca6d6650a3a703c8f0",
-- "76a4bcdffe1207b9c84c3",
-- "413062fa329dcbe3b8887d",
-- "137786296b1e5f466871bf",
-- "1bff1788b61c434292f278",
-- "67ae16da8f876a2c8dc80f",
-- "4f0b0a9e8338cbca398b3f",
-- "7fe713df2e65b878c1edc6",
-- "46dbd89f4ae0d06c0ab8e0",
-- "3ad2c2000ee1db409ffcab",
-- "235057c5ef06d64b0093a1",
-- "2b1199cb9ff7848ec581",
-- "16a7968fcf87b51aa207b",
-- "7593ab2f13aa524b76e104",
-- "569b68c3d77231282d1705",
-- "54f01285acb2da9689a386",
-- "7c50148337071a44808f27",
-- "157e5726ec48e98ea5652c",
-- "a0b14921f2ca115669309",
-- "540974d1b3361c5ccd3a2",
-- "30927374f464c892c53b50",
-- "5c0de6f6c164f44c52de84",
-- "25f3d9fd234440b97c9821",
-- "659ccea55ad34dab51a321",
-- "308d7af9cf09073e61779f",
-- "48dd5aa0d80d3fd4d31225",
-- "18d28f7c13bdb1a27fc315",
-- "37c639bab06813135e6962",
-- "716be1338eb9fa3160de8a",
-- "306cc735643548c81d480",
-- "15dc7895737fd27e2fc2d8",
-- "ff910ecf2ce1ed443b3a7",
-- "26e45399ef9d09b479c0d5",
-- "5a3548ae1dc271964cafb9",
-- "1e0b5aa4ebf1898b7232a8",
-- "65b1a43ebc40ff17757bfe",
-- "35ab264ca762acbf67e1de",
-- "67fe63e894b36bad057249",
-- "901282766f87bc24e50af",
-- "3f8ccc4c495c412c1876e1",
-- "2c958c952c5c886c2a60ad",
-- "21a95826890e5cccb8a83e",
-- "190017f50befaddece16d2",
-- "64f3d838badcddd9bfdd0e",
-- "7a7cdf214176b6d3191883",
-- "30436781bd712f316b4895",
-- "f5d2bac49777fc8f10242",
-- "66de0cd9d504d0c8a10caa",
-- "11ff8e8d5e956398c99ca4",
-- "2d83b4eaa1c8f768e56c30",
-- "58689766e836a562c78c53",
-- "1644cc3e7fe80220ef2f70",
-- "69a00aca76ae6e660be7bb",
-- "68e1a6376fdb4eb7b4b0e6",
-- "5c37d517c640ac7f62a532",
-- "3aa36ece405e3ccd9341ca",
-- "345343979af3beadfaced5",
-- "63ca1ec0700483b8f859e5",
-- "14b8d711e9732dc1d81b85",
-- "5d1cdedac3c1f047923b22",
-- "1f88577ebb6a87d8478dfc",
-- "3cf63e3a65a7e509ca6dd4",
-- "64e35a2939773b306ebb74",
-- "4e5afb2e233daef8a9bbcb",
-- "5dce9f322e405cdd3dc195",
-- "49fee8b58237dc40ba3c5b",
-- "125c7d70d2b6d99ae885da",
-- "7f821b6d896942293448e9",
-- "44b0628f84b11c5e71888",
-- "4bc252b0fa653478344f1f",
-- "31afe414b9e841f105214d",
-- "46bc16d9041c2bda07b158",
-- "34ca1ca17d4004b63727d1",
-- "1adfa664cf45ca975af0f8",
-- "55b727631edd20582945d2",
-- "6649997ef28c919c6cae0f",
-- "6332e8b1655b1a7193eb45",
-- "7b8a17b08fccb33f4b7d6f",
-- "46c01f4170feea6c601e12",
-- "68d895a65569cf3ef3e3ea",
-- "782fa87576f745d6c5a644",
-- "3561d1a2752f1d17dd5823",
-- "1c1f24204ec4b044c10ff5",
-- "4ef1c6a1bd63bb6b6207b1",
-- "33fee942f43e9b7d2118f",
-- "1cbb8749de080f5bb23b75",
-- "4680ebb5e7e7fa1e676838",
-- "2cfe955ebd8c7e4615715c",
-- "93d0f45c8e78eed19b2b4",
-- "5411d9720f633bf7a356ea",
-- "7ae4ce9746d1a251afde2",
-- "6b6195f4939abc517ea1fa",
-- "622e4bcd237f601b3f864e",
-- "552dab94d8fab803e3abe6",
-- "5fea5590381b705c4ba54c",
-- "47a6912faf0eba695a3f82",
-- "62d4635d0bbd6bf8fab17b",
-- "488702c5b90021b8b24933",
-- "b44a774aaac3d4d335389",
-- "7c2eeaa3b5ac7ca26ee5f2",
-- "4a79a4d35e92cbac8fe0c0",
-- "145ecffc8b532b7855ca8a",
-- "409705e5654888d8af2f47",
-- "4f5cb9e29c3567f8c1b22b",
-- "2ad535a50fda15e1835526",
-- "4d55039bf17366425f055a",
-- "504e8f5ee0e51320af92dc",
-- "ae1614cb7437dc6311ee9",
-- "3d433adb4bcd914fcfc4",
-- "633dad9eec0d451652bf40",
-- "15bc81dd36a0393963bb64",
-- "720d9e52c4aea85ae24480",
-- "16f5569ecf073acc30831d",
-- "50a70d2086b5ca78a90368",
-- "7e688d1cbe7e0a84a0f408",
-- "1f9e8bffcac3e1471f7cd6",
-- "78ec94c22ee912eded5499",
-- "336a41277b427813eaa191",
-- "1705c133c7ba24a2b5c528",
-- "7b7e71610f1589da383c31",
-- "58137399c99866772aed9a",
-- "282774a1f4bcb14e6723f9",
-- "7b85e0b99eff408f2aa978",
-- "2a5043ae183d338b7ebd55",
-- "af99b9d024438cfe9df66",
-- "d4a270719a348af6d6c29",
-- "47262fa06b9c5ac8138f4f",
-- "50c65d8772a3d5db269535",
-- "20b1838f00aa00d07f70fc",
-- "ca30526530b6f6f0c8fca",
-- "158e9251ef94651015ecc3",
-- "636f015a0c62753b283d5e",
-- "4573a56ada0a29d31dd6b4",
-- "367efb55edcaadbb5e4f2b",
-- "3eb189e2bfcbe180703cfd",
-- "692adfabb87ce969422961",
-- "434a5edb31a9c3c6a0243e",
-- "77664e53908d00007d1205",
-- "4b11585991700c233f6773",
-- "207ff6a0da7f13b316c4b0",
-- "328a9932d6b08a41a1df0e",
-- "2f927b360b2b43bff822dc",
-- "257564a39a648e17d015e9",
-- "73e92ea015629e3728aee0",
-- "4585b77fea18a0113ff609",
-- "101d83882a81d0147b4342",
-- "3addce3c43218484acf509",
-- "9f0c9a93eecf4de349628",
-- "465f3b1e25cde0e446d90d",
-- "4ceae8c6ea35dc274647ed",
-- "63137369b8d47b6c9c43df",
-- "438f5c0f163a4dfa04e5ce",
-- "313d62eb5f1104de5421a",
-- "9f20b6fedc099ec575691",
-- "24086a392ab75e649d3cc1",
-- "7aa96a9fbe718c006a48f8",
-- "8000000000000000080000",
-- "57f0f7ecb2d7dad43748ee",
-- "2a640efe463008db4ed634",
-- "45769a307f5593bbf72056",
-- "3abbf8af06f889daf59c4d",
-- "6d16d10feb1728044f2dc3",
-- "5bf1d1c71be0c49ad75d9a",
-- "16bed27a9c005817ccf111",
-- "4d7797e0b2f77a7ffee785",
-- "3845bd22f959dda9197376",
-- "1857324131e535b1b2458f",
-- "6335fb7682400180e10d15",
-- "50226b4aa22a0465ceea0c",
-- "44dd70b9323f17568e4ba3",
-- "217bd444ac8e9808b3ae5a",
-- "6c9c81ea487986867245b8",
-- "3827b84269040363e5e02d",
-- "64520e4823f48c1f48749a",
-- "58fc1b58696f8c22cfe344",
-- "41558cae58d4f9a9001b87",
-- "38910d873da8dfd237e8f0",
-- "5eb76c6301d8a849a1903f",
-- "3b6b43619a3730d5995ae4",
-- "5f2bc99aad2f27cdee05f4",
-- "385f7f48a7be6b46d108ef",
-- "37d50d7838efaf03049cd7",
-- "665bc65420c0b0a151c97e",
-- "3d9abe3ec82d9602d9dd6b",
-- "634d2540fd670a82f219a5",
-- "616dbeafd6aa623c1a7d7e",
-- "29702fc1f57fddc3369967",
-- "25920b5c96127e9d8ab05e",
-- "3a82369bb1a4da519bbd70",
-- "7f216769148f0e997c7805",
-- "31d809b078cdefaaf45266",
-- "7a6ffa939b86786a779a44",
-- "68e8a818d524954278bbf6",
-- "181ee17c34ab8aea52c900",
-- "7f42b66317d26c3f938805",
-- "6f37e3a85128974cdfaa69",
-- "45813314ca1d165bcf242c",
-- "64add9cabf8efdd5f7b57b",
-- "46a91d898168488fd5ac51",
-- "669f4c5ec3934953500b78",
-- "1e378fb7157cdaa6fc3a50",
-- "39cdc5e6675ab081ffe60b",
-- "1cfd8f0d12bcce21589c11",
-- "6ac77b7cb23565518aa2d4",
-- "4628eb872cffa1868b96ee",
-- "23eabb9cc5f4086c74bc31",
-- "445381f98a1f5669880827",
-- "3f603c7b410b4c2db2c8e2",
-- "464550e0adf269403f3e22",
-- "3286bf159405584d85567c",
-- "356497a9675898bccf4e79",
-- "f26a2dc235ace7b34f4b6",
-- "2e03d3c0794703b9605de0",
-- "30a18088f5b2af396bbfd9",
-- "681750fd18618072db2068",
-- "69fecb55ba6da700789d7c",
-- "2294095a6b77aaa416cbd7",
-- "ab8e1dd4d27b02d09fe48",
-- "7fe887d8c5fb53af79cbd6",
-- "1ead89a48b89a75ebaa7d8",
-- "10d0aa100248920b9cab77",
-- "4aad58987821ba8f33d96e",
-- "5c616b0d1a7bc591e70e46",
-- "24b22771f303ef742b8ce1",
-- "3eda92314bf1d09cb5b08",
-- "692eeb4ff69b42372517d7",
-- "494807a247f7ffab73a644",
-- "23564d97f447b0091e74ce",
-- "2b81c6e67e55aeb6e93a",
-- "4669a41d4e444c1284d024",
-- "61036fcac29b84e5ca02ad",
-- "2625096534f2cf10d83a26",
-- "30cb89652c8629b5e0dcc3",
-- "606e14eaa7d60eb7ea925a",
-- "17715e6c96cbe096c4f9c2",
-- "42a81f5e10b5435180e643",
-- "6d849a39e47370e473a913",
-- "6116bef6a79fb2fc15f0e2",
-- "31e8a39712fb3a7a11f909",
-- "7511506751237c1959933c",
-- "1e47a4330f0bce93db13fd",
-- "97342eefdbc78b9689120",
-- "b1fe15d9ac88348f41a87",
-- "296a247b4b36d5c2a1884f",
-- "aef2488954588af921ab8",
-- "351db0dca5d74808f36d33",
-- "25df9f831698604e15991c",
-- "761e42e1c908c2f09e096a",
-- "5e73615c65ae9e74eb1ef3",
-- "4354f51efc9392bcd6e51d",
-- "3f7d2ee6cb32c6bbeee194",
-- "394faf6069c716fcf8a76c",
-- "51d8b3e6fa0afa106abc40",
-- "5aaabbd40fa78dd417edf5",
-- "32d68fc9b8a9c17b315382",
-- "6f24ffc802a08273be511b",
-- "452816c1b54aa2bfddcc17",
-- "142c59f31fc82fb58a7dd5",
-- "7233f4136f3ace41bedb12",
-- "2c18c59d95a21961c42f21",
-- "7eb8dfe838ec5ef9d3ee21",
-- "19915afea85d27cf8df109",
-- "4e1162d634d0d5811a2441",
-- "43e36b6d5a937387b49f6c",
-- "295932427e10aface718fb",
-- "5a2c8ca58cb488822e9f49",
-- "622b540293b1275c5a9446",
-- "753f0795048443573283b2",
-- "3c2dca32abbdc029f4a212",
-- "3fac097802d8f5fb376d58",
-- "668b9e16f3948f582a5b94",
-- "1a08e273719d3411178252",
-- "f4af5a6143d8f44e48afc",
-- "54ad7fa69dfd0b4c19f7ed",
-- "65cf5014ab215afd17cef7",
-- "4c3c570182916f32a6f96c",
-- "2e8edc0b6dfcfb2392ce87",
-- "3950591be73642bfa23264",
-- "559752d946b02da4c2f657",
-- "554f5cfd133bac2188241d",
-- "3c1fd5d9a6223b2ce7b02a",
-- "34c50fc58872b7325366",
-- "3f8cb5eb229acba822b48d",
-- "2aead0dac004faa8ab67e4",
-- "144a6c20d0a8d5dce2b12b",
-- "5efbbe073364ace07f02c7",
-- "73862de61086c1fd5e0678",
-- "78aded63d2f85ac948c449",
-- "51603bcc8667777e664f9d",
-- "724f8bcd40bfc9f1ca0c68",
-- "5169af1cd74986160450d0",
-- "5b6b96beb19fb0dbada937",
-- "4b3a8d22fdb2c83abba9b9",
-- "3ee5a2cc90e335867f0ce8",
-- "33567e972c90754c86a5ff",
-- "1c07c875b3a9cdedf7611d",
-- "3b55da90ad9a162be1756",
-- "339dd42a42d94342bf8399",
-- "67a3f20bb5e980364816b9",
-- "4b6ed31d0715952774511",
-- "346f2a2b086e1b35095d7e",
-- "1c614cf9a9d87d69154c21",
-- "5e263af53ea065e044720d",
-- "681a88fafe4e6f0620910",
-- "1418facce22bf24a5e6a51",
-- "786571b85b2768309c8ed2",
-- "4d0e82bdf34ff4cb3a603e",
-- "7c2e242ec2b95580a9b3bf",
-- "54fc920cc0125e53a92499",
-- "5696a96208101739ec4ba0",
-- "636b15a893c301ff23f5f5",
-- "4956721f6a2ced1fc736fe",
-- "518711fe03b241cfb95160",
-- "2e12097225e5783b545083",
-- "7340d7daed67bcc5cd4391",
-- "c075fe6224a62c1010fb8",
-- "4bee7e482b290b1d3869be",
-- "7e8fbf173741aea1b95c93",
-- "5a1fe9fffdaa20f4ab7eae",
-- "58d7de0f8254a81b5d0f5a",
-- "38793daa7aa086d5e70798",
-- "6157a651f2640a73f1f90",
-- "7a6d5b1013830761b58026",
-- "46734211b970f8a6448a60",
-- "31b9dd76b9ed5f88dd4609",
-- "46c6313b3914ecd376b959",
-- "3e4e77e268fb6e7602e96c",
-- "74d39a89d87bdaa449438c",
-- "7684536a92d49a5af59f1a",
-- "71215d6fd5e662d930a424",
-- "249b7a4d080be0f548cabd",
-- "1bea5758655f1400515db4",
-- "7f45c48d28fd31ceeb3fd7",
-- "1812bd60b720f8920fe80d",
-- "27244290f774a00786ca95",
-- "5566a844e8b1c572f69612",
-- "2d678e77df571d7ac4859d",
-- "e243f28e043030ee3a43f",
-- "36a3336f56c91232544e8c",
-- "179d4134709978c75bf6d2",
-- "20ea7b335b7621642b29a6",
-- "78c437adc3b6ce946cdd",
-- "57dbda5c8b230a87030357",
-- "4dcc6ee20983f0020ad69",
-- "5725842b7246179896a39d",
-- "6b1cbac9279eaab9b503c4",
-- "1bc4e87c1100a2d26aeff3",
-- "2d70f946f2915679b314e6",
-- "793fd256b009d961487499",
-- "ee9d6b69f13ec8f385e6f",
-- "4b4c7f0a822537ff62cdcd",
-- "48b920d23514d06befaf52",
-- "2df30214a49a31c21380ef",
-- "4c4424602626193266d943",
-- "2d5bb2b553d4ed5bc0795d",
-- "681fcdfe60f23e3be083f6",
-- "4f9634be1ae125361bd4c2",
-- "1ac96b01993da8677b2fd7",
-- "4cd15a66ba5a2f18c8823c",
-- "3828df7e9ab6753fb83dc1",
-- "2071c913edfd4fd6daa6bc",
-- "669e7a28f7a7c30460a80a",
-- "3b22ed42f28069f29c280b",
-- "5ca51c82df4def8b1588cf",
-- "7b2ef1bbf74c4989ed5ddc",
-- "40ebb7bac65bd815945e49",
-- "4a469bacdcaf5434109262",
-- "1a14d5b10cbcbb9ad3216",
-- "65fb4589487aa5a16bd767",
-- "283508a2ed137e839b2207",
-- "7047889925ed18a885358a",
-- "9d8d18a72607c311d6f76",
-- "6a1d554c48496d8d543eac",
-- "594a3b6273b1ed2b542eaa",
-- "67cb80a136db30b9d60d6f",
-- "5106bba99e6268d7bef3e4",
-- "6fff35974d5f0b86faa46a",
-- "5f7482c17a568566c785c9",
-- "78ba33e419cbc7f177437f",
-- "1f4b918e0e0d47c89aa2d8",
-- "50cfa48cfb994ab2b77aa3",
-- "1e4fdc54209c2229d7ffcb",
-- "4431184365a358de692057",
-- "7adeede80a05e40854e6e",
-- "9a39acfeb3a1b4c2bc79c",
-- "2d2a15867cf9361defac4f",
-- "3fdb99cce8884ed923271f",
-- "2d127e6ce6bd0f1872b1",
-- "1124cfa0e070cf6fe3c638",
-- "65b7b50446c767e6fa72fe",
-- "3f0d18b1efb7248950daeb",
-- "74fc1bfd19b3cbc9867bff",
-- "34f0f61d6d8d062b6b9d9b",
-- "260d6ba9444df4b85dfb92",
-- "4f75e255d88657b2ba4755",
-- "3c3f770d148b4692e25b59",
-- "1eb56fdccfc12b22db2048",
-- "3c81a9658bae42644c317a",
-- "783c78a9025283e7188a8b",
-- "7322c20a545b3845b54b34",
-- "52d104741cfa5fa49fa55e",
-- "6545cb112ea4be72bc80f7",
-- "5bcd4418d37c976110b37c",
-- "34d59de432c0dbb24ae55b",
-- "4759751a101953dd340d89",
-- "41e135572f9ce788481248",
-- "185033e62f44aa85a7799b",
-- "7047a4510b8c2107737ece",
-- "381012de4c9a82f9ef1d72",
-- "1167717f2d3d6238b3d21d",
-- "2dac9d433ff98cf24eae81",
-- "4f1c406e243fb2af67cd42",
-- "685afb7cdd699d5a8f020e",
-- "4c6a0f6de7e50ac450c0c3",
-- "59f0f5465ff1e16be9bfb2",
-- "594ae94ad86b9a719f54a7",
-- "9225712405a5bd9ade58d",
-- "3650c22d9c1072238cfcfe",
-- "36a92b305c21171dd5a616",
-- "5ba344fee845769c2c86d8",
-- "3ecd8205beb790946eaa8f",
-- "5f84ae1685459ae7e24bf2",
-- "62a01fb38e5c88098fbcc9",
-- "3c2f54ef99be42fe30d32d",
-- "215dcfa076749277897e0",
-- "36304be3f0777300703af",
-- "147b65e0e829ca30fd88c2",
-- "4e6a2eb425fbd18fb02cb2",
-- "2ddac7db8be22e88618b58",
-- "1c7831e5dec267ccb26741",
-- "2f3b362f4b742eb82f8a34",
-- "5505b22d0ddba48ae2020b",
-- "522afb743f67b3ca56b20",
-- "81dc886feeee4945edceb",
-- "77c4b593ec648025df03f6",
-- "4f0841f63a0c64aad5232e",
-- "6cd2d14ecc5fc7c2c1b52f",
-- "3827eb26c007235c46c676",
-- "484281d930b8ee32f366f0",
-- "25f7e1ac0d4153b6365c1c",
-- "2600c04d980b2307982b22",
-- "6b923e02dfb1da62f37204",
-- "287593985c21589f72c821",
-- "c8918a059fa77676f0587",
-- "76201f5e0110544f41d9be",
-- "770b83b55e13465063e5a",
-- "412ae12837a29724832877",
-- "5cd8f5f9eb6806f67db613",
-- "4eac7fa0d6b168c3bec4e3",
-- "5d2972b12e50e727a2721d",
-- "5517c01ca3bd4da9aef0ad",
-- "11ea8c21342ce42ebbf9ec",
-- "413f256a64feb56e242e90",
-- "29f3402339c3128a1e2c1",
-- "51eb860c87e1e5b70bb623",
-- "369c62fe5aafda2a550912",
-- "2674d42d16e97493518d2",
-- "6b105359a1a68d94862411",
-- "527e969f4f6eefe6289ece",
-- "7ef4c5361ca08ac1cb6216",
-- "3f3aeb0a1df198d9c95768",
-- "152dc9fc63d3c1eb6c335f",
-- "7754a6a5fe6be54c00f4c8",
-- "222ea07afe042cf765ce5f",
-- "1086eae159340e441fa0a4",
-- "6c03f094dfe48c9743be89",
-- "1fe069b8c57a9fbe5f6009",
-- "185254fa056de9af1a6bd2",
-- "3018be3223f82c7f0c9ebe",
-- "48a13c03c03191471f1164",
-- "3e94b32e50da81bb5afc03",
-- "4d08f00a99d95d0043cc4",
-- "4636e2935765905adcc41b",
-- "4bc9c371d07d4a025a739b",
-- "83bfa3efcf5b970ad41cd",
-- "18bc8168956ccd63ac68a1",
-- "366546b3844bf45b7527a5",
-- "363a65fc59f4a8184d3d78",
-- "5ef30e941639d08bff19c4",
-- "5d66f0d9dde7339dbcd24",
-- "33d5a814c00e980600811f",
-- "5ccbc128a5721a5dd853eb",
-- "298200a0909b55e97005f2",
-- "703a6cf857e651748dc09a",
-- "547264d2566596f18bbb5a",
-- "760b4f231686ca10ea6ea9",
-- "49a3641c16382337f3c777",
-- "33525d5afa91fda7d5fea5",
-- "4c028ddef259fa2c7d4868",
-- "575d4696bb0e4edef99446",
-- "6da26efc24e2d57c26c090",
-- "41e1bc8a63d042ba714c97",
-- "5f24e71937dd097c0e8678",
-- "70b9ea82f6a6c02939510c",
-- "738abcc274fbdc4ab5efd7",
-- "255358696f5e9ddbfa467c",
-- "6e9f47f009d809f84a56da",
-- "27c6ad85e824da21b1cf9d",
-- "46a78cc83c010019e8b2b",
-- "6b828169b3ba13bbcddb05",
-- "3f5c0a52d2b564cc250982",
-- "63069f756c8115e5fc4c52",
-- "55744f373c8b8520d62370",
-- "43c2ec8afca87567ee9294",
-- "6354a865e088a0488f2701",
-- "d165a455f92b5083e0627",
-- "7252d249ce8cd4fb010950",
-- "79790e81fd0d2b63f9d1b9",
-- "5e147628ce9e9a9493f495",
-- "37755ea728b820f0ab2bdf",
-- "184e317201ff0ac25eb6e6",
-- "178cb915d7350e37948956",
-- "5ab5c85d4bf835440ff962",
-- "1e2bd3f41ae5c299bb720f",
-- "722f9dc13384479d1c4455",
-- "2b514798a553e5bdcd8ec1",
-- "51890cd139740ee3c35339",
-- "75d3c5c33e5a2023adfd4a",
-- "15da282cec1859a9591ab9",
-- "7fdd8bd273e4a717226cc",
-- "3915d17a2935e69936525d",
-- "78acf4423afa2cfe1a6fc1",
-- "4f140e806dac75cc67fa3c",
-- "37c6007c4a0d223bec9e13",
-- "1ae82d51e4845bef8c5d14",
-- "65a0cb312051f321a95f5d",
-- "42aa10dc273607be680d72",
-- "3e26ac2b23b8b913845e11",
-- "30bed73f7a94de9252a38c",
-- "750f475708a1369e3fcc26",
-- "61ade8e7a0bcc40ee4c2a8",
-- "27b94ffb61590cd0bcd89f",
-- "3f1e6a84c6b836f245c178",
-- "239309f551f303d0037140",
-- "211dcdb529a6bab73ad8a6",
-- "7869636f37e63a4ffff7cd",
-- "150365cfcc4a012a673c13",
-- "2791e42c7f90ab8d4e7fbc",
-- "1501743c447af65014399b",
-- "2244b09bebeaafafb0c481",
-- "36c0bf9a937fe6ca772d0d",
-- "419e79b02e607a42e6e091",
-- "400f76e25d392f347d4911",
-- "5ba0eb3a703d0e42cf4094",
-- "2ccb45ece6ec9abb9396c7",
-- "44741cea6d95eb07e7f01d",
-- "2b3c80a17ef583b6205fd4",
-- "43fea0cf26a3e256438525",
-- "59a7f220e101601c1d1b21",
-- "24974593a8d59a89588659",
-- "14ee39af97cd5a57b0e17c",
-- "4807e0d9a38d358d8e14c5",
-- "64d8389dc8d1b8910fc0a",
-- "6fd170c2ab312a1f05d814",
-- "68c4a816c641b5b1090781",
-- "24e71c2d01e956269446cd",
-- "3bec30574a99903f587887",
-- "2b4b238bbabe3c70748eff",
-- "4f0024b5b5580d91de0338",
-- "646ce329dbe03b0b8312de",
-- "5ba2a8023e5bb50b06e03",
-- "19537a8ee281cd28d6388e",
-- "10aab6ed7d1b631aa4b45b",
-- "6810dd5945e01cd2c90841",
-- "6ac2b70efaf88fd42c4044",
-- "aa480c5cc76379e0cd2de",
-- "64532524c99ecb3c365a41",
-- "321e3fdbb0b890caadc570",
-- "54fb5f18b6d001ef7be401",
-- "364f70dfdbb439b78e5236",
-- "9dfe57d1a9a3265476d14",
-- "169665894aa2b356779b61",
-- "127c199cd032273073f003",
-- "fa33fcce55fe6a32e0915",
-- "264e4b26d39119bcdc0985",
-- "593c091517fff61973996a",
-- "77da1b5a2124b6c9e11847",
-- "32e5682bfa3fd95762512b",
-- "72f7dab0b2d2a35e62478a",
-- "4356ada1ada2921353892",
-- "aa2cbd696160321682a6c",
-- "7f8bc7233e2784039454db",
-- "22884c181cdc222cad8e5c",
-- "7203cc213679d179eabc35",
-- "78a4c0445f77f31209ed17",
-- "58b95d74eb4e654735bebc",
-- "6a7db7fb47d3a18b620d6",
-- "63942ffcaaae948e9056c4",
-- "a2e07f9d73c5e3effd370",
-- "6667dbaf666f92bd61da79",
-- "4597c1546c899a3656689",
-- "5fc3c4b7f7ad5deab829bf",
-- "61170002cc409ddc34946c",
-- "736d05572fd4ef85eca2b1",
-- "1a5853834033d093c63d55",
-- "bafe681e7e52073b86d32",
-- "1c9f86b8742e14b6caf79b",
-- "3886dff828cc76dd830466",
-- "3b98704f287b0ee4e659aa",
-- "581eb843dc9919f85a6644",
-- "697396e6df9539532709dc",
-- "63606d420b8e8397875647",
-- "43b23b71c3202b31d91018",
-- "79486109c44990eca52723",
-- "2102dede4011c5cfefb7eb",
-- "235809998758cf7e4acb1c",
-- "233860a2ed2d566e131431",
-- "305213c4b30a9e8be153ce",
-- "7507998b275e3c9bd4e10e",
-- "64f00973a0eb117b548182",
-- "1416e580fa8bcb421dc6ae",
-- "36735381ceff20a76e32eb",
-- "45f5960a9db06a62821bf0",
-- "8649a3995ad114bb4d72f",
-- "374a0e75bc76f0adac7af5",
-- "6565aab9eaab16f7430411",
-- "7dcf3e6b7d3d02033c946d",
-- "65c9be7a29bf45e5992a7e",
-- "638d0229863032ef249643",
-- "297ac1b2d19eb1e6e32d87",
-- "6f339aa4d977875b1f1f80",
-- "438e5a19094bce43b5b5ae",
-- "4d8b0cd0d3401fd04e351",
-- "1b5200adee3adf189b056e",
-- "1de1227159008ec9b59ac1",
-- "75266a81bf7f77865e6f",
-- "9377e0e5c8d0de1856f6c",
-- "2fd82a7276af1cf8b372ed",
-- "6dddda58fac4e8afe0c9e7",
-- "1d85b86a2f3f20e2832ec7",
-- "35accc5a1e3fb474285daa",
-- "3aaa2c73e60edc333c904d",
-- "740f62900b9523de37b6b0",
-- "7401d0da6ddc33225bec4e",
-- "3e985c35adacaa90f5715b",
-- "62c36a3627b9d2b3c18de1",
-- "7b71ed8d456ee35292c960",
-- "2648a635c5981b8daca07d",
-- "2c33c53227ef5693d69f36",
-- "1540f88099c93111d6c8cd",
-- "5d9383670de64bf15eb49b",
-- "2b23443976252ed21088d1",
-- "7fa540fb3906a29b513bed",
-- "2f88b1c87d7d02f6c2614d",
-- "1976a9fa25af6d21cad47a",
-- "444a50dba1a2bf390bea1e",
-- "11c773ac555182d789142c",
-- "3b929cf6fdabeb45375120",
-- "15bf0eb485af1135b0e453",
-- "126dab6c2bfc9b83475847",
-- "c06cc01bfe2a9b427102e",
-- "6a545ca829ed278f6ee7f4",
-- "23dfbd70bcc040f36d4c8d",
-- "378ef780c4d32c3f15b3c3",
-- "7b115c7c405c6e4356bac1",
-- "1a789636807476ba5bd789",
-- "35fa1fca985387fb7fcd19",
-- "21b466e3230d809af7aa6b",
-- "4d1a8b95ded29dc79fd401",
-- "59bc93698864451646a053",
-- "7d6f33ec4a123fa281cabb",
-- "168ebadbade1cbc44496d4",
-- "413278937e6487a988805d",
-- "55407685456c2cb8311d26",
-- "79d07c6a6298d34020dfe7",
-- "65ab167d8e02a8df26439e",
-- "7dfd6cbe22024260a179ef",
-- "28d6cf3e20845dc7283634",
-- "648ea8b083a9828f8af17f",
-- "2f64ac4f819f8343111866",
-- "17da7c01f870089371d6df",
-- "50f371336a648ade74999b",
-- "1de402b5c6118ec8861aad",
-- "48ede8d4a9a88f7613388e",
-- "5f70485b00138272e9a41b",
-- "65a1f7025bafea5088145c",
-- "68d439e82561e55cbf1eed",
-- "3d8509040aa8739f034dac",
-- "2dd21df4dbce295378bd06",
-- "111d6b945ff69be530cfca",
-- "c1fd8fe80d24243e7b5eb",
-- "42772160e3ea402851c9c6",
-- "49374e550d8b335cb151d2",
-- "71faf2ef0654e97e0c23fb",
-- "4328d17f00529ea0fead97",
-- "546ec9785ee72a2a72d886",
-- "5d50e00035655b4d4ddcb7",
-- "4b53718060040e8179d82",
-- "282a80b8de04941c547168",
-- "73673685484b4f3492976d",
-- "5db729c46c687ddd7690e6",
-- "2cad73640590abfa319b6a",
-- "21ba4c5acd17d59fca0ed6",
-- "186605e063004c7e4a9375",
-- "2f687a83227d2d20f3b227",
-- "30abf45ef025352e681192",
-- "6a76e3eb445dada83ceb12",
-- "7146b897c3d924725bd0cb",
-- "14b68001dbf2f798322812",
-- "54112eabbed42ad31637c5",
-- "467db4fe225847525ef33f",
-- "25032025485a4979b90394",
-- "bc149e667cbe5a17ed77d",
-- "ba357a389bca1484d7e54",
-- "34ddcae84938327a3cbc30",
-- "2e1709b850c77f2d508334",
-- "15db077682cfbf170ce259",
-- "280bf57e6ab95037683d33",
-- "14f23f2aade2de50fb350d",
-- "57d0cd94e03404b9cc57cb",
-- "3282cc1545c9e77ce08abd",
-- "567508a3d2a7b4fe3b395b",
-- "16d8ad198832545831c93f",
-- "7d88a8aadc667bc60fcb2e",
-- "65118f1b7c366a8bbffcb8",
-- "6766e290c73bba54bcc710",
-- "2aad9e8261535baeb20b71",
-- "4ba668ebddeaa069043875",
-- "3f98705d2cf6346bf00972",
-- "541a69af40655a83e366ca",
-- "215c7e9a1d796b37a56336",
-- "419d9a35dec3e5f421baef",
-- "163690a8fd51b113410cc0",
-- "1d165ccd9ac1e4efca4a32",
-- "1d78f3d7e887debfa04bf3",
-- "6b421c0667b336723fc0a1",
-- "2cc7417260782c0d2394d3",
-- "21887a11425a371d17db86",
-- "5be7c40d96f7c97153eaba",
-- "2e061928a5c3ad9bd6d9be",
-- "7b398d970ad745817bcb61",
-- "f7cdb22a187815c33c5e0",
-- "a4f6b861d9a460f5b65a6",
-- "68d4b88b77dfae0da7a5d",
-- "4e4199871aec7ec1f99895",
-- "68f5ab17da1cc5dda22c36",
-- "1901320882ec0093fcda5d",
-- "76dcede51c5087d374b20d",
-- "38c3b4008c9d0442e7b602",
-- "1edb6eab35de11d4922150",
-- "5c53790457f0f66baaae2f",
-- "664ad54353749f2ad36105",
-- "45638582a87d07b0339df2",
-- "18b021fe09fa8bdc44e567",
-- "2acc282877d9cac38e38c3",
-- "7bd177160999a650655c6e",
-- "6717c0177a36454aef446a",
-- "6334fc3ff70d17dd837781",
-- "499a1abb2a1381278175e6",
-- "14da57f8c43c94d5133d50",
-- "4a1381ccb93c34dc44cab",
-- "7cb4b7b324b314195807c8",
-- "59f2c50a64b0c2a3e77442",
-- "426b930b670412d271a091",
-- "38aafca45b266dbeef6fc5",
-- "35d63c19d36b85b5e96648",
-- "31204f9f1e25342bbe28db",
-- "560e1e8aafcab315236068",
-- "5b80c6e1a5c4dcb3166335",
-- "1d41ed28d87d24620da24",
-- "38271b1467ee062bfe15c1",
-- "2b7758dc0945a30687fabe",
-- "4fb33de912dd8d2f8b8081",
-- "4d6d3f3602597781bd2ea0",
-- "5b509a0106f1d06627c353",
-- "7ffd3daf76b1e818134f24",
-- "858c45884b129dd66817a",
-- "70c9c69419338ba44d6b8e",
-- "17c5a39deb46d102235506",
-- "2adb843a58d472c17edcb6",
-- "798b816a4dea5ab964c64a",
-- "68705a826f80224f09c337",
-- "b720b9f07a6b1f41654e1",
-- "44bf623ac807d4c96747f7",
-- "16eaf321bf41ee635d6d46",
-- "37107b083cae132372e4d4",
-- "31e9d0607a42f7e54a8c81",
-- "4d23f5ec809ab5057c2705",
-- "10a61010d82426d21109af",
-- "1ba28761d3577e14d38b38",
-- "c57749387141da5f8fd27",
-- "4afedaa595cb8c309d3fbf",
-- "3fd90efbd4f0a4e173f589",
-- "49b4801e9a2a64a27691d2",
-- "7255e6805e164cf9788cce",
-- "62ae26dfe2273af99c4830",
-- "7e185faaca849a7f135848",
-- "10cc6c74c4f9fcc9428f7f",
-- "152b3e507f8b7898991275",
-- "15a3be22e80e0f6f498608",
-- "54e5b2458bb84fd7d4433c",
-- "656c647508629462e9a821",
-- "4c60164f9602341914167c",
-- "2a17c7297a08a3839ca0e1",
-- "47efddee37fa0ef6a72a47",
-- "106fdb273227296116f40a",
-- "524a00dd634d2f57ac7c6e",
-- "1e6b9387cb8fb6494ace9",
-- "25d293607604db30df2e4e",
-- "2a07033e306623cf4e37d",
-- "178e61138a7396d55d224e",
-- "75aa7d0184dbe8ff376045",
-- "421e7c19466e0847ffaea1",
-- "732b807455afe5538cf678",
-- "1a756f67d7e3e663369a04",
-- "389f7a523536bc08e2c52e",
-- "3a0c64739838b20476e0bd",
-- "4346fce81f02878bbc28d6",
-- "2f63eb0fae8122aa717440",
-- "59308e5db85655d5ae0c4",
-- "26b549a59dc35ee5ea7b82",
-- "4d89a145aa9c4acc9cbc8c",
-- "71b31c9be0276caacd1146",
-- "718c4a4aea9ee0da236930",
-- "7222af7c6bff611029c53a",
-- "7f4b55a70795b9d26512fa",
-- "32a9d4d4f421cf83f9237a",
-- "53cf166384d9f967e4ee4a",
-- "4566810f52dbdc6e52d908",
-- "308ab3a2c4d7f4df4b6a31",
-- "48a0fd415822566b2ecfbd",
-- "242cca5b643a5f97a01a20",
-- "1c28b93f693054a06fb391",
-- "5a2cdb29cc6790b45d1f04",
-- "5e8a5f959be2a17534c9bb",
-- "3fc3e580d2ad754a34bc48",
-- "6bd645b33c041537bb5186",
-- "3019d2c9a4a70055fade00",
-- "142fa830b7ba88d08608e3",
-- "47226da695602ab6e77894",
-- "70044b2b283269e2d14166",
-- "46ef25878ebd3ab0b864d2",
-- "557bc3fd4a1a6866c5d19c",
-- "7b0ba619013363524f168a",
-- "48b438b41e1bc7e58e6ef2",
-- "39a95d47cf87d7d7d6bc8e",
-- "27c1b7b41af947101d694d",
-- "492683ece46681328f9912",
-- "3ff99310762f37d685ca95",
-- "4cfeaacecd47507ead712a",
-- "38a39ada5dac01b5c2adf0",
-- "dea3527d089eceb4c22e3",
-- "7b084b907f4fc0301dbd5",
-- "503f8d64438b7a99b8de08",
-- "1d9a776cbeec9f5dec9407",
-- "8a006b686db9c86eb0756",
-- "144303d93b170584849f6c",
-- "6b5617e9152db554d999bc",
-- "1b9850e5f0f8fec4d967b8",
-- "20fe6d6e332154329f831c",
-- "5cee3684d600afc7804db0",
-- "1dc0a99973375f6c4a4583",
-- "4476f33d15e77d3ea6c712",
-- "11f2c34fc87060adca2837",
-- "71af54a2496a076b559a6a",
-- "2ff21a8761b9bce5f34f74",
-- "78b5c76a3ee8c2ef071fa1",
-- "5738f30e5cb40b4ed83e60",
-- "59fdfd7775c9750e48d811",
-- "7b609aae44a59cf088c570",
-- "4a67b54dcc404423e6b631",
-- "8ea7f70a71ad46c0c260d",
-- "5ca4bcb81d4d03018b177",
-- "169566a480e42dcc8863ac",
-- "789addf402241ff646d77d",
-- "13b16e69e645c1703bf7c2",
-- "16f732c5fac8192629ddb6",
-- "7731327e4c6ae66c8e47a1",
-- "cb8a50376e8204b8b5ea9",
-- "18eecc5a940548e7c51e57",
-- "3ca90695aca0fd32b28871",
-- "728caa6061cb6ff29e6b21",
-- "3d66483aa6674adb6569c3",
-- "1208a98ea1dd68a01d3ec8",
-- "5186a4a6ce8351b40466bb",
-- "79c75783449d733d93b4a7",
-- "52f87910ef7e6dde1f16dc",
-- "57aede4ca861e5051b15ea",
-- "70f2550983dbddb8957b2d",
-- "720aa7a7bdeaa025a23a54",
-- "3e7db1002a9116a5e20032",
-- "25d1c185377c3cd8e704a2",
-- "794294f26a938e1caf3c0",
-- "522619b83283553c71de74",
-- "4dd985f2fef5c539fa6a96",
-- "442eb4a36ab0287728c1d2",
-- "2a2b13112979d27489208e",
-- "4d43f85ff03e3cd18ef302",
-- "71e916ff79204bdad49695",
-- "270dae1c5ccafaa07ae8ff",
-- "3a2f442f3b3a9a2af00b28",
-- "3834a1b7acb0f05d9e53ca",
-- "5ca6e41b81529e38a59f6d",
-- "3164747c95104338a78b5e",
-- "b66201b62ddf6d13c5534",
-- "3dd366ce71f1fed428c326",
-- "12413ef53ba7fc6fb5cd35",
-- "20f6e36fbf07174b587397",
-- "362261ed7c97591714ea9c",
-- "1ce2a05bccecd36df96b64",
-- "358d745e0bc4be1c3f4586",
-- "221bb5afe07669d916e136",
-- "624d49c04a48d42d76c466",
-- "a3cfbf8b779e15bf28c99",
-- "28eb082844c0ed277d2520",
-- "4c7d0db8193430b75f41f5",
-- "3c9ecb18a83b901f901704",
-- "735a03f218370f8bd85ee7",
-- "4db4f1a602cec485019670",
-- "70357dabf2c34c8309c723",
-- "ecef39a1ef4b4d1e8c6dd",
-- "2cfcb08879a9aecacf316e",
-- "1175d70c2c07855db37245",
-- "786d54b4d5ce74ddde20a8",
-- "ff53eda132c9a3cfecc65",
-- "728cea43531fbac95263a5",
-- "20601a054af9d51633fab1",
-- "127118c35aaf80dac2a57",
-- "1db83df0a168bac450e4f8",
-- "39c167fbee27f65e96cc7e",
-- "2b90f954efc9f58a07a363",
-- "63f5fe049f46d509d141d8",
-- "75ac7a48082d5afa148e7a",
-- "569bfe59efe21364bf57e7",
-- "475131d01f3e6dc3b169fe",
-- "716991a2a17f536244885f",
-- "150c29ddf5483fb74be06",
-- "65fe3a22c7d35ad3f875e7",
-- "1754f51aa79c3b0803bf00",
-- "a4d6bd96f61637d730c9c",
-- "460372cf36a22fb6b9641e",
-- "43dcb4450a256b9a0eb673",
-- "10fafca3d5f71faff8f1a",
-- "177f43e8d62e87c66b9da",
-- "420c1c0074adbe0616df4b",
-- "1e39f05dac576881e6c295",
-- "7234cde8ecc6673caf864a",
-- "661787ba011711628186b7",
-- "6473dbfbe4a3f63d08e3f2",
-- "62b2e70d411eb11bf0a695",
-- "2e684b7951a2526d838fd7",
-- "5b4aec35da23a27808974",
-- "51e267e9a5a7684ebfd343",
-- "36b36922114363ceb85a26",
-- "5687a42dcd55b43227f657",
-- "3d28e1c12f9c60e500dce7",
-- "6bc6acd592c0200b749e07",
-- "773a63e6b7c9e3bec91272",
-- "536bfe32ac8da07b253be0",
-- "2146fc84389596cf6fa8ca",
-- "12a2fa8c4d06a694b748c6",
-- "49ede33966bc3f0dc8757c",
-- "4f787847feba11bfcbc764",
-- "b2687172956319218655e",
-- "4bdbd2765933e2b1d70563",
-- "1ef9edb1f958cdf81fb9d8",
-- "6e8b2732511303a48ef731",
-- "3608208e4497b40a62b3a0",
-- "2c4bac0a0cf06ff50ff71e",
-- "784bdef1566f244d4ff44d",
-- "5cd3a1cc8bf78e4c7e3747",
-- "418b73330a3b4d1a80474f",
-- "5f87453deb48ed6c9a1afa",
-- "3d9131aa5802e27a83eb61",
-- "61539cf7b388689e7a260a",
-- "260213253056e29f0ac6e3",
-- "2768a7a783d9baa4e5cce3",
-- "7e61e3317d07a1009894dd",
-- "6927c4b12865ac8f053dcb",
-- "352d204330140b3786230b",
-- "67ae2ace35fde529154a8f",
-- "7e37a126be9507ba4c717f",
-- "2306ed04565a9cf9fa84c2",
-- "6b380bf5d71fe523ad1e4d",
-- "6aece787aae5251b57b3ae",
-- "7f2209419e3163fbb4cd8a",
-- "376c7a8d0fa0abf4c0bb7c",
-- "39a26bf8336439ba9968b4",
-- "620c14b60053b660420c4b",
-- "19675db116558d90bb4f6",
-- "2c16632a312edfedcc7f72",
-- "1945686d70d9df98093dd1",
-- "62e4e44df51bf11734aafc",
-- "5d3293ca54de6a3aa06b08",
-- "610d07557d991d9db3dea7",
-- "6b25878a1ec102b9e883f1",
-- "5d29345f097e1dc041bc7f",
-- "797d4c38129f52836fa5c7",
-- "5bb2eece8c95a515d2e2ea",
-- "451e904c04882b739d233e",
-- "4dac1ce4b87e60431b8a4d",
-- "2f8592e02ef759cdd34c72",
-- "7c1d3420db42a6ffd37cef",
-- "4b0d1ff6297b378945b906",
-- "744db8f7e25f69bc47f2cb",
-- "7fcd5bd9328b9f06223a1a",
-- "37f7d323d5bf332eed1bcd",
-- "629e9c894bbbebf06d3299",
-- "d427f0f9d14ecf4c54fbd",
-- "71e1aa5a9aacb38b66f605",
-- "361fe28e640ec02ae49613",
-- "551b691726c66f9ec1f9e8",
-- "523ee7b96bbc2b0977b4f",
-- "52e6bde0fed2ecd82f7bf",
-- "3a4a4ac73bb38c0c48aea2",
-- "207cf80fa76e8708f88dc9",
-- "2bfe7376e8ab62fafbff59",
-- "7b8ff43621b7fb13c3edd2",
-- "726dd56f61c4c5016201f9",
-- "3915c71f3b447b64ce4513",
-- "4781781ebc739ed9d4e35",
-- "3669984e1ddcb753afb878",
-- "6c8071fad8933706efff6c",
-- "25330fc3e5df50eee77cd4",
-- "316bc661e89aeb9e7e20a6",
-- "2a035934ba5fafe2ebaf47",
-- "515a0593d1e619118d226b",
-- "72716051b13a2c1876c8ef",
-- "98079c36403a029b3f0bd",
-- "388d8c3c958b6abcbf6aba",
-- "3d9a1023138b0e9cbe7d70",
-- "7bc0acaa724475da5a8a83",
-- "4a266217d4534cc588119",
-- "62baea1b89700a3953e872",
-- "5fa826fd6352f83c34bb5e",
-- "71be60f1312db2fcc7f045",
-- "51cf9e84f5414c7907e79a",
-- "1fc064c4398ccf6bf7b1de",
-- "70594464b46de9acc11f02",
-- "4de3353d33028c5f557394",
-- "15060a6e69612092d45768",
-- "2142584bb5cff6c1e5011e",
-- "7eaf34148ada80711a86fe",
-- "64f201a4086e40b2a3a19d",
-- "2d794034e6ae324ba7041c",
-- "56359d56dcb06ea3ab68ec",
-- "49d6a78a88159326775c2e",
-- "32c2902887e1700cd5dddb",
-- "c8806bb60205886d4ff9d",
-- "c0ecef4f88f5957d4b1b",
-- "b0715d55fe0c1edd9613b",
-- "b512df0270e6ffe2d4a9f",
-- "563e208513fb23ff9ca7d",
-- "54c245a123767ef7f22e33",
-- "5e83dc6dedd0679793feca",
-- "3c53d6131f8c41d5d7317b",
-- "349470b19ee7a8cf922b33",
-- "432c0a15a9dc31696b79c7",
-- "3de21ce46f7c8be3bab3b9",
-- "669f3588d7a4ca7ee3dd1f",
-- "2bf32012cc6354c709ad2",
-- "2e5ffe59b5dd3843fa4c17",
-- "601b382825c1515525a19c",
-- "78dfe864170ab14a408743",
-- "6ebb0dee9291bd90cd2215",
-- "6f52ff1c7f6dba719401b2",
-- "d16f53a28b7042d305524",
-- "67daf6ba4dc4d74236df77",
-- "72118d192add3aa4c1e0b6",
-- "7e1ce3bec1e98dd35947ed",
-- "2330589e6c22439bef95d1",
-- "214d49f3e2681b232cf62e",
-- "ceff6274c7b15ae86dcc",
-- "ee736adb9b9c1860d483b",
-- "550e4c9178e5dead2f815e",
-- "651be8b59b15d629ab774a",
-- "655b44d3a92231714b14c8",
-- "1a88cb781abea4a70cdfa7",
-- "7a520385f587099a8da6a1",
-- "42a1f9791054781a203d9b",
-- "1aadb770481974ec7ba970",
-- "1634b76faeb97237505ef4",
-- "577a2773ebc9e2412cb050",
-- "68075aa010a2a7afcb2078",
-- "e5d22d0ba9e3194e2337d",
-- "68c1092ddd7cea180b7a8a",
-- "1f6a141f6eb54cb95d54af",
-- "6db9060a2078f4de4b4e1b",
-- "21ac3ebe991cfe1bade37d",
-- "45e67b0777cb6facf28d74",
-- "398768a52710b109c92dcd",
-- "6c65a41601a28b4854db0b",
-- "3fa82c77c11ef3ce373a08",
-- "2219a8eabaec2cc4da44cf",
-- "25b286320c27c0f91c388",
-- "c663e7994203d116af45d",
-- "373211f704832f37df113f",
-- "33f6606f82062475e2caf5",
-- "77ae05c9ad4bb1a82ee6f6",
-- "72f290cf9ea470dcec1318",
-- "20cfa0c6bfbdce5e399a70",
-- "384ac895940651e4b3df31",
-- "2a6da3e3f6425cc4caf185",
-- "3559d5470cc8be88bbee52",
-- "731437b69ca76a93992caf",
-- "31f0df7953457ce90524a8",
-- "7fdefc35775213402acc91",
-- "246e8276fd64f7af18402a",
-- "1e604eea4a6fb7804d131c",
-- "f6074b1e17e08713a2a46",
-- "23931a4d64503bc81a5a33",
-- "6395a035a6a5e009dcf586",
-- "23db937264552bf6dc2858",
-- "50e45902fe1a308ec88670",
-- "42e82d8613957e0acb2b09",
-- "3d50a612150493864e2df9",
-- "1f08599df3ce28d2e2a99",
-- "172e3a20b269ac416b7186",
-- "624f69e6f91d2b9574cb8",
-- "33b05c78a18798e4462d45",
-- "5d5e844e1fd78c36c3341e",
-- "5a1b57c203d09cc8a22696",
-- "775bde6bde2d0aa4187fe7",
-- "4be11f1cd60954626093b7",
-- "571513666bf5e4e0b1c7c0",
-- "30e484fb4ce5927a937373",
-- "6ead11e0936e4bb4e855e1",
-- "14b5583a83133add54d368",
-- "361de61b4e6057d1cb2274",
-- "24364b397921eedc03333e",
-- "3f26224827d27901ba392a",
-- "147a0d7fc26817e7251ada",
-- "4debfa77d5d5f3fa106f86",
-- "1f8b63c5fea99ffd6a5348",
-- "59dbf0c177e94a664cfe3b",
-- "656e5b10b9da085176e0e4",
-- "678fb8bf7f6342c5764339",
-- "2cd2d00d4262f35754bb13",
-- "67b770c97867478cc69b37",
-- "bac1f8bfa0e63045ec3ea",
-- "4303859a49916073987344",
-- "322164812a5696cb2322b0",
-- "50148cebf8644fa7375aa",
-- "50b37142bd10ca63ad3866",
-- "5a86321f172c81fbf185ef",
-- "4972dfe88d7e4fb02ffe72",
-- "3aac1aff3b6e14d31a91e7",
-- "6d575f1601945a3ca29eb8",
-- "6c290f053f3f46327ee8ec",
-- "73040349f8459e94069012",
-- "2dd44a6d1765874cf1dbb4",
-- "52492b4a4856d777ca0682",
-- "76d72d56a09f253d257f0e",
-- "6a4862d59f8198b4ea0fd5",
-- "ee2c219af9300476a7d41",
-- "60548a10984139e59f5d8a",
-- "423813f9eb92bfadf14d9a",
-- "6a3f78db4e25085a772f7a",
-- "a3d31a1daca53878fe695",
-- "1c24006c67392d350aebe9",
-- "5baffc06fe51f5caa49a4c",
-- "6f4a829757301eb1143585",
-- "202377a9328fcb8f661a5d",
-- "6506edb4005521bcb61671",
-- "208dfefbc938eb8f166f28",
-- "2f8aa359ac5538f4834ed7",
-- "6b36296c1bd668243e920e",
-- "7856c391e8828b90a94afe",
-- "5728f13fbf1367c5292a3a",
-- "6db3eec1da4e57eacd7cf4",
-- "520f0b6932233966b7bdb1",
-- "225461e731f47cbf2cbf5f",
-- "15bef1b795296c7e8862d0",
-- "217d231f2ea4bf28c97e44",
-- "31e4aec6d42e52c762e301",
-- "16103ea0d454ef686ebf4d",
-- "34470b1eee2f871c42ba71",
-- "5d172643cb569d9b2ab357",
-- "45838fc0d9bd4e814df398",
-- "520d412f22645bfa3f3a33",
-- "5dd2532249188dbe3d2539",
-- "336699d6c6f15f6ab914e2",
-- "48384f03b178aecb456dbb",
-- "358734094106c4c77371f8",
-- "13705ad9594243161047cf",
-- "9cc0a7524feb44aafa989",
-- "2f615de4e96f8f9837947f",
-- "4f571e68d11ba0c201ec2c",
-- "1c7c6456335bb722881302",
-- "56f01f51a5be66f649b1d6",
-- "4a2416a8cf412f996e9654",
-- "5593dc730a3a85d6ce77d2",
-- "70628248b6cda7311de5ca",
-- "49212e86ec70f1b328e11a",
-- "3669075c083d3a0547d7ee",
-- "7c64411c354fca180b974e",
-- "be2266f15dfa6e02e4a02",
-- "69110081782c350722756f",
-- "5370ef9f2399e3c803b5a6",
-- "4277911fa0e430960db091",
-- "46d2651ce40dd1fdd11e69",
-- "65838019d10030d2edd34c",
-- "79ae8d3a65221805ed59d3",
-- "4762e175d924ca1dff7d06",
-- "226f7d490aa9d47314570",
-- "673a9bc1330de8c0b0abe1",
-- "a80defe299bf7c4d81738",
-- "1916345f1ad90cf48c6472",
-- "13cc5c5fa7afb2b7468106",
-- "656f70349417ef562616d7",
-- "520db901eb8309582e12a2",
-- "4253e27061630b9343ddfd",
-- "43012f86bfa02bf0033ee9",
-- "51524048af5a6750b1955",
-- "37a4477749686070e7e049",
-- "39f7a72e1daced6411b1a6",
-- "4a98326f880a44e2d6ea5e",
-- "574f95a475dce62a3071ca",
-- "23c20aae79c2ffaa75a36c",
-- "59f67a0c66d5e9744004c6",
-- "25ff556cf1afefe2cd2ba9",
-- "41be4715ccf6dde8b12086",
-- "5e9464fbce6027257d92c6",
-- "5b57bc12988f27dd0ed418",
-- "1f1c7eef9d0f99e1e209db",
-- "1a95aa2ba56c053acf7e56",
-- "6f085a8f46a66e79fe4f92",
-- "728aa131a37012e184c2b6",
-- "21469f9c49fb4d2fb54baa",
-- "67d12b5d61741b8623f378",
-- "2a1abd32897155b55014be",
-- "35ebfb3fd5a71979daee0c",
-- "3c994e655edabd5cfbe8b8",
-- "b5f14620587f1e8ed5a45",
-- "4cb0c7462e90f28fa251d",
-- "608a29bc043b54adde90b0",
-- "6337453f9c180b8ddb37c4",
-- "60e351e7834b181d30a00c",
-- "15324434e27844cc4fba51",
-- "259839d29faddb791e3548",
-- "198d839621f761dde4f853",
-- "221728332d3142e3346be",
-- "48cd6ee15c4874d342b21f",
-- "7964fb4049b23d750b6f0e",
-- "365cb247c96e7933341e76",
-- "4f7806a65676c896ee7db9",
-- "99539a5120bf06fd3edb8",
-- "4374a87512bdcb27925ebe",
-- "db7255fca12f37c452ffa",
-- "4a2cef4e3606d1b9422334",
-- "b8385ec48f904d72393ba",
-- "71d26320321cdb1dc925e0",
-- "1f8889a7c0321f5279b37a",
-- "7decc101d84d7378c8efe2",
-- "1526a67a2f54717285cebc",
-- "4a292844d7aa26520c09b1",
-- "5edc4541d1854504d071a",
-- "44f34a642236b1e7e4c8fe",
-- "87eada956963224c06418",
-- "76393b1564fa2cd841480e",
-- "2aec8efef6c41604b67a83",
-- "2644cda468b716b53c99d1",
-- "4d74065738715d35d47743",
-- "1118a89d656497538996f2",
-- "26102582959271955d45bb",
-- "1318f3d7743d8ee4ecfdb2",
-- "3128342c1cd21185c739db",
-- "7568ac37df7da28c47bab9",
-- "be26e79f27c2fffd5718b",
-- "2655fc5da8cafdc10e8c6c",
-- "6336954989b8a716380f64",
-- "2f1dd3930a2948f2187f86",
-- "90bd6d6fef2e358a664bf",
-- "675948e6670907b03227ed",
-- "2025bd13134bf0ca69b0f6",
-- "509dfa92ab81408672391b",
-- "5c699bfc1a98ced38d7c88",
-- "14816e04a6b799d1ce9e1e",
-- "61978b574cf8f6d53118d6",
-- "4e203019ba4b94cd691d60",
-- "7df66ef2eea696dbe6ad95",
-- "43bc8bffd5b4fa12491d7c",
-- "1207aa2a4ea7c882b5e76f",
-- "3e9654e3940c0f541b93cd",
-- "4a64cce2fc4633dbb63e09",
-- "4385d494a7bdb154810c4d",
-- "dbd1bb9693e65c5eeef4a",
-- "7d58cee39bf1830f1b3ec0",
-- "6cc6a998d40d1bad211cd",
-- "3aa6d80b7b4477df65330a",
-- "2ae1383e51812f870ebf41",
-- "1107ffccdffb2932659325",
-- "9cf05f6855d4068390948",
-- "36f24af02e5318171bea53",
-- "4d0a046c7ec4f54117f367",
-- "7bb1913bf745fa526f18a8",
-- "2970c6e86dd017c5341ddc",
-- "58c411222783451febdf82",
-- "657128352843035ba5fee1",
-- "13c9d1e81de8cbb64a1797",
-- "66e2564796168c2d0a015a",
-- "1b9995439565d095eb8a8c",
-- "43cebcc2f248fc1fcbd6b4",
-- "7e18b1dc04cb3af247aa31",
-- "269ad3cfbd18bd255786fd",
-- "2f1b9eb8c8ceec3aba8c3f",
-- "890072ab6d3eb608d30ea",
-- "4e72dcffc8f26eb136b7c7",
-- "71db6b9125d5ab5b3e7493",
-- "57bcb68e1f52791794bf4b",
-- "7489fd5407cd56abfcfc49",
-- "45d43d697cb8503c85839a",
-- "2021e0329a909a39851fe3",
-- "6eceb600a9b81fd3aa7175",
-- "4d63e68650d056d4e2cca2",
-- "21789b3595bc366315af2",
-- "781973046ae51aa956a060",
-- "2353c3f920ce7af530f96d",
-- "4a8154e2948099e7b7c4c5",
-- "319945f43efa75c6d6fbd6",
-- "1a0cc5d78d1da3759fd0fb",
-- "75a29d53450973ae07e5b6",
-- "670c6449f82194e5367c1d",
-- "6978fb86dcb4ccc82a3738",
-- "f6c4daf384fb3d39aa985",
-- "47df2e03e1548a16e223be",
-- "36224c16a9190272a21e14",
-- "abbcfb2e4c3da6b090978",
-- "1fb7c568bdffd12b767330",
-- "77f657453333dfbed3c7e5",
-- "68855602ae559673b8a2dc",
-- "57b79cb347145bcbe43bcf",
-- "542f3c6130072ffd145c0a",
-- "7d43897c9a717ea4ffaf53",
-- "2928531ef291fb90d243e3",
-- "6308b8f5574126f70ec3cf",
-- "3b77afb6ec85d92608bbc9",
-- "39bc9fe63b4ca1891dbe7f",
-- "14b126e3c0b0f4dae2ddfb",
-- "634af4f8ff5eecb70f9b3b",
-- "5939fc19fad9c14c8917a9",
-- "cb351e8f1a28278af3af8",
-- "41ff1be99bebe99b10f273",
-- "32c9397c9adff65d943965",
-- "1e1de465daadd9547d63fe",
-- "1924697a3681efc60e8e70",
-- "3e14120ed24ebae50e64ef",
-- "29bfa87365d098b3fe8377",
-- "48ad93093caf03d61b0aa8",
-- "116c396589d81e0684d5a0",
-- "4550a8c9126d63e137546e",
-- "3d325eede75d0a573042e2",
-- "715fb02624875de3ce495c",
-- "2c1cf6d476ed98aad97b90",
-- "41ec16a5c725c7d32d3a8d",
-- "2a6ced30aaeaaa3957eaf",
-- "284cbec8937114a1728cdb",
-- "7fd049d0f5d16bca84fbf0",
-- "1ece2489d9c16fd0d7c093",
-- "7a1817cf8f21c4f863437a",
-- "2b89a454954d4c6b2e2120",
-- "44b51755bfc5410d6cfad6",
-- "31e4383d0d65d0adfc3084",
-- "2f44e6e7eed452c1b02ade",
-- "46861d4c2ab5de181f3e32",
-- "30c01b8abdb9d98a7941dd",
-- "593ba411e3481cff090a6e",
-- "5f7998cdc984bda089a530",
-- "38863908f348e0ff24d2ea",
-- "7db23dcfd5b48847b2da44",
-- "70cc62d0a35cccb85972ee",
-- "51e871e33b066886db1e57",
-- "7ab8d7968452d732fc3362",
-- "6cbec7ee27571943d99309",
-- "65ccc844f43d7740c3bb83",
-- "2d92e146c92e5c2141114e",
-- "78208a8be2c33504df2573",
-- "1b892a6bc6d106036dc210",
-- "1ba30d22d8ca0e3412c0e7",
-- "7f5d5abee4ea627ca346c",
-- "29d27ddd5f46b0a514ec85",
-- "717a62d953937ab8d63ef4",
-- "46f7147d837df6469c39be",
-- "1e9e640158c2d5ef405818",
-- "7f30d40bb0193bcc3bff38",
-- "7e84a589b79843d0f09d89",
-- "1984882a708094eb26643e",
-- "6b386c8a9795cf0b45e160",
-- "282bde17894173789173e7",
-- "75b60c74c3f4835e0ba3f1",
-- "66673b06f4474ab9ac84e3",
-- "768b4e15703c2b99a95ee7",
-- "3c7d066200b6ae5892048a",
-- "194fc13ec819c9e2289cea",
-- "3c066553be4fa2a741db4d",
-- "31018337a926110b0a5b91",
-- "7ca0b74cff2de67657aaa1",
-- "610a799f5f9443dd8f333",
-- "29dc0e371f2a3ea6cf4d60",
-- "bf1c05f166718be1c6836",
-- "309eb70bbb47b20185134f",
-- "4b31d20ed3a1f68f117d30",
-- "201a5f031183f9e3136174",
-- "6d82429df8c04f3e8cbdea",
-- "4e4d1094ae9ce9f42b1d71",
-- "65e071aa89e8e9caa17f",
-- "7c3ad9d6ed54817d082b65",
-- "352a1b67a355f38121c462",
-- "2d980e097ecb2ab91b9b92",
-- "96afde4db924db62eec7",
-- "6e20ab59697e8bf608ee9d",
-- "2ab6145578df975521753c",
-- "5c91f707bee21c71c33c34",
-- "676d8d92a92b0706da21e1",
-- "3a82f64175d5b3caec9c53",
-- "2ccc62a5fe0c2d164b78ac",
-- "7f53a40fb6d59c55fc0a6a",
-- "eb12a34ffd8e97426aebf",
-- "330554538efb3452d928d9",
-- "37902c15fea70cc2588984",
-- "1e3f1f00ee5c87d8bcc6a5",
-- "21e6a33067365b1e718020",
-- "4113025c4b26d50d501a53",
-- "1d50b663f8750fc777a8a9",
-- "47267802b4baf11a616d7b",
-- "206a9c38358f291b01e407",
-- "7529b300b4b89c580a5f62",
-- "59aab11c164124e5cdf604",
-- "3d3a2d2ef7d22dc8adb10e",
-- "1fa48382ab305e0404adc",
-- "6e72d626e97997cb842159",
-- "53a902325a9087232d64a1",
-- "726d30610282ed39d8f203",
-- "6e48887c0bee3ba8386f63",
-- "532cc2e0afe1d979c42a70",
-- "614224558d52e5d4eb23b8",
-- "c0bc8c55f3b95e521ebf8",
-- "1b4e22a54398ec5712c2f5",
-- "45109475272b0ee96581b7",
-- "6c065cf636d6bc65762095",
-- "7bfe5c12baaa86c60d8117",
-- "62e55ea318373ea102e458",
-- "46789b05c1e88afd58b2c6",
-- "37120883f03d674fbee3d7",
-- "63a482d47b34384d6c0abf",
-- "78778c448d7d69eeff19c7",
-- "69527863032c1ba7d7e238",
-- "574f9294e066c8fdb761b7",
-- "3adbdefe2bc4d894d3eea5",
-- "7c2fed1746d715eb95529",
-- "2501ea3eadb12569e01e7e",
-- "3d49c943bed92220933501",
-- "2327087d544749f348c909",
-- "63a2efcfe030b5eb3fd526",
-- "2d2c322dac49b5fc4277a6",
-- "4ebe9580f66ecfa62bdae4",
-- "39450177cdd3980c4efafa",
-- "3349dac2077bfdf6a12d86",
-- "56b71258283af76e7bcfab",
-- "2bcddd9fb0f98505c98aa9",
-- "45166035762ea541feeea1",
-- "6bf558bed09b770ac7b7db",
-- "69498de156a0aa10a4e2dc",
-- "6cc9f90d012be002904668",
-- "32f8a36cc1b46c25cdcc28",
-- "312ecee1519b0617d31186",
-- "706df4fd50e1c42994aed3",
-- "4edae7063e31e196fbffc4",
-- "7bb42f21df6b474c926cab",
-- "7c2bf4a989b0889ab6c2ee",
-- "14a25dabe8f8f9bd2745b5",
-- "14266a10ce4302dd32d262",
-- "411254ef95bca10cdc61b9",
-- "2cb3e5c4dae6b173319195",
-- "575c81fbd5408f583cec84",
-- "904098cdbfd4389279e30",
-- "4499b6e3311b7fe5b9c98e",
-- "210804240b673797c1da0b",
-- "4cfa062853643ca21aa8e4",
-- "155503fef8a8a42650f8de",
-- "214de8b9e305b92a9ebc6a",
-- "aebf119c49f1f5d4fa77",
-- "4019e2ed5f4f686e75a334",
-- "26e8b6fae1b81184be307f",
-- "4cbbf282cb8d5b492509da",
-- "32124e45d595b542218cca",
-- "4fb7ac8e103e64af4c501b",
-- "4a99080981fd90fd8f202c",
-- "5fe19870cf156902f09ea2",
-- "35da7f1fc27e6edf7e2774",
-- "171772c43b172c6f59b4ee",
-- "396792f2585d3e823623df",
-- "68b020f430372f0b20817e",
-- "58a41d74e16c1b1fb6cbf",
-- "6ef7e0b470470f565c088f",
-- "4dba440f7f398ce0198b25",
-- "2840ecdbeaf847ed4e56fd",
-- "2f36ea2bf51461b1407878",
-- "2cf0b3c6e55d4f6c794d8f",
-- "31fcd9e9b87aae6bf32f83",
-- "47626057be8af9d92cef74",
-- "2113e1a93f5d2f1cba0377",
-- "4176799b704bfacae7d897",
-- "524919eb6636c6c6c14a82",
-- "64d1d7c43b00bfc99b8bb2",
-- "76a279212b584d95ed2cd0",
-- "37e704706a7967491e3628",
-- "5e1c654c63269bdc77fee1",
-- "58b898760417610a09ff41",
-- "64981a92737099a91d3794",
-- "571cc10547604b09ba9b69",
-- "6714be0beb22d71708c5e6",
-- "359b739ee10f4c4f24e721",
-- "454b67d8b7470679eeda79",
-- "615326e14c6c74c717def2",
-- "2dd86ec9cb242b4e68016c",
-- "62a4fc7a9af2d27e92b08f",
-- "cae1cd222ac38b9a89a19",
-- "5fd2fb0300581c5f59fa7c",
-- "1488492f946cb788d721d6",
-- "509ca3fe7eae200044712a",
-- "27c4576460764aabe86ca",
-- "72e3a111047449df428c07",
-- "4dd2e16c6f9989907671be",
-- "415d623b63f929b3ef879f",
-- "9b13c11e290284a86caf",
-- "78b61404bffa36b135773d",
-- "10c2f27dd2e5d8f77a071d",
-- "684e96f56360b04576ab1f",
-- "6bd55e81cea4df6934b8f5",
-- "288723d0eb9a25150c0772",
-- "4eca5fbd35a4778cd18f80",
-- "590c069f4d458da38448fb",
-- "6a91ca9f24a59bd3f77cce",
-- "4520d49550bf0a2328020f",
-- "31340daa6bee66dc702e47",
-- "21cbfd5db5cf856bb6980a",
-- "2ac5b705311ca0e8e6bcda",
-- "28390f3626b1fdadbcbfd8",
-- "3b79806e60c6443e5b75ae",
-- "4e1dab19fafdbf4d11123",
-- "4bba04cb6f7dfe33e4bd",
-- "25b65fbcf4deba1535165c",
-- "5d2602e9c7bafe79929bee",
-- "1f5e885344b51456b2195b",
-- "5c585a64ca68d89750e9da",
-- "715687651f6925a41a3bf1",
-- "47be6483decbcd32c50b44",
-- "3fdb397b831af56c0902f1",
-- "60ea199093a4e9f80613b6",
-- "59048c7bc400c1b2f055f1",
-- "5ed2c798bc4d3df9693b4a",
-- "26c8838f41263334d39302",
-- "257f0dc17de9e402db5577",
-- "5eacde9e13242553f24977",
-- "232706fb395f1e37b2683d",
-- "5527388c03206dff6a464b",
-- "6207f87b59fc321d1fa8c5",
-- "3eed8387e5a22f84995caa",
-- "1ead4bf29c5aa1e11118b1",
-- "4e9e415c8033fbf3989b6d",
-- "6ed402123cbfe00df8030b",
-- "15c5021e3387b5104eda39",
-- "385c720d2080ae9544a074",
-- "12502410f917e813c566e4",
-- "dfa61531c98e389318ffc",
-- "75df623177a9cc914a680f",
-- "16a2f9f4e53133020d693f",
-- "68bba5659f4f20356a0cad",
-- "5b60aca7fe85259aa048ba",
-- "748cb85b7df9ca5a82d4a0",
-- "5448bba652328fd63e3ca2",
-- "497b40c11c5d479cab5f20",
-- "1ff2197a0e5b3d0b65c928",
-- "175182c7cd2ce431b0150e",
-- "58a47971604afebfc2dfe",
-- "7feefa2c38e3a6212b4cc2",
-- "1dcb001f06c75da3270a59",
-- "3e7a71b985de5c6c7a9f57",
-- "ccd4be560162041ae08e2",
-- "4ec109ed0d029a0c6bd1c3",
-- "363177aa4ad204478f4d2e",
-- "7b94e69ecfb1ba4bdf42b9",
-- "68bf1a165a85b17f192a39",
-- "fca586b3bb595a8d4101",
-- "7914f6f164e20860badddb",
-- "d959366c9d2eed9c988e",
-- "6b1b87bf69d8ba16154459",
-- "5798f45a6d32a5d9e220c4",
-- "23ff36317f41cdc69b5f8c",
-- "3337445fe49877ddd94c8c",
-- "27e0d5b6d5b01b974468e6",
-- "155305c9e80b8231f3fea7",
-- "46777bd089a8dc8c44ba66",
-- "4eb92d6051c08bfec28d32",
-- "58de9434dcaeb21007cf50",
-- "4945531dd0d285dff322e3",
-- "5f4ee2c7a7d447e781b997",
-- "255da48e767df6db73178f",
-- "40f14f4642441c80c723a2",
-- "23b23c226ec7148e9ecfd4",
-- "2fc4119b8d9484cd86a0bd",
-- "e8a31983f38b3bc04d83f",
-- "403c97fd7a8e612b101803",
-- "360136af955e5fa1edc1",
-- "6dd1e30b456df046e42f20",
-- "2a8fc7a338bd0e95e61238",
-- "5574ce6446f5f9b2cb3ade",
-- "68437c168764f9b52e36f",
-- "6db55a7581d577d97e45ef",
-- "2117da386a0ba848e04619",
-- "38a3fd25a6d9f4f7c85efc",
-- "20bd84ec27cae248ea38a3",
-- "2359b0102f9a1f774278d",
-- "7f779a7314dbb8bea5c652",
-- "a15cce75efaba6c1b571b",
-- "5e4eaaa44cce4760757194",
-- "1aa73126a375b6cf5e8b5",
-- "e0fd267f226bcb77b4105",
-- "5c1c9591ed7cecac5be504",
-- "6f8c0ef46d2275dfe7e84f",
-- "75f53c77a2d34dd51c6882",
-- "553e86c66c2fba13b95f56",
-- "31cc33f2d92bb3dc73372f",
-- "2bcf3f6e0be988750bc0c3",
-- "2a0c42a5cba7fe55a006e5",
-- "67427f6921fbdb98c3e375",
-- "62019722b2962f2ad1787f",
-- "75964f1abb3f7cc93e9f96",
-- "3faddb5ddd2bdc683de72f",
-- "235bf7672a2cda1ab01fb3",
-- "c16242d78c3d8fbfddea4",
-- "29105da153f2a098ad094b",
-- "39f0a0674e65b2cad4a706",
-- "57a6c26c5e5dea61f133ee",
-- "6151a60a864edd0e7c7b30",
-- "d65fa4e9fad0f9180af7",
-- "553adfba4c4a6d20491557",
-- "1ffc37c5751a51bd676a97",
-- "450dcdc45566039112cb21",
-- "74c5b771dcd8c4719355d3",
-- "72216a00ebfc9de1e963c8",
-- "7746c161815ab2091d9e21",
-- "47ddc74fced651c57b4d1f",
-- "417a5a771b0fe4694065d",
-- "4bd73bb75df0b9c8f31e93",
-- "3937d6181e67f43d9bec08",
-- "5fa8c4e879ae9ef5c6f178",
-- "693e564c43456862d84db1",
-- "394398fcb25e82a48b8d32",
-- "754181ae9689816d4fae85",
-- "6f5834f39b940405114e26",
-- "41d82e9988854950bdb48c",
-- "29f43cc681e11325bf172b",
-- "6ac2b95852f2b3848657c4",
-- "49da4e6814895f7566132",
-- "7a75465db2452d11dbf6bf",
-- "14b9cf8ea7c2a2aef663e9",
-- "7a7267a5eeee00421b1bd7",
-- "8d7ac16a6c7fb5dcaf362",
-- "4a9951c3005ac4b7d775a5",
-- "4dac5ec68e30db33d790b3",
-- "7e9e8be590540d41cb48b7",
-- "db6d45038525122246c3a",
-- "32e84128c0dfcdebdcfc5e",
-- "3c52f4c6c583d5b2a18105",
-- "7a42533b0f16560c421482",
-- "403ccf27d3ff3c3686d654",
-- "5d780dd5bc1f62ed520130",
-- "6ecdfc4db1fa1b0104403a",
-- "4796fc52e00fbc5d65fc02",
-- "1103bc87eb4e4e572c882c",
-- "1f2e34fd7020d08b01b7f2",
-- "23f737b6f1527cfce0303e",
-- "292e4d75da1a76fa4eb730",
-- "1b8c58018b9ec962054ab0",
-- "3cdbf096f176a11d399e68",
-- "5e81e2ee54fa1c8e9216bf",
-- "6ea50d7820cf1c46cfdea8",
-- "42fe3f1413aec51428fb64",
-- "449f89bc8e75ebc93c06c2",
-- "46dbb8e8c99f2d8cf603ab",
-- "3542a00727cde7902f64",
-- "8c1b60a22d754654b3b0e",
-- "4cc1b8f60c7b3b604dd7f3",
-- "65a59676f2a0f7f5358513",
-- "7ebd8ffb86035ffa249a5c",
-- "6937a623eafb54374944c3",
-- "771e23d6155cbd6574be92",
-- "42d3b2e606813eb48865e1",
-- "747f5812283a8ba1a43af4",
-- "1533a8f5ee81c2d4352c6",
-- "25b4f424465c145a893505",
-- "54449f7dccf77fd8f14fff",
-- "1f216750a4d1686b3b2227",
-- "3c0ef922648f93834d2bac",
-- "5b8558cbc60eeb5d4d1e0c",
-- "3fbae766d352bf62d71ec9",
-- "37ca6d3b30cb2687e44f7a",
-- "4fc1aa30a26bf05e1cf79e",
-- "5830e5e1c9294904118c10",
-- "ac1c0028dc3aa005da816",
-- "2d8207ca3331c2f27a3943",
-- "2fe38c447768175651bb27",
-- "538b76dc0991647c99d6ab",
-- "5ad56a9a03d1277384501c",
-- "2c11fd859f539479044b3d",
-- "6e1c49a1adf3346b270d76",
-- "627d01094a2553e7bdde46",
-- "4b0e392a6b94b0716bcb0f",
-- "73c9485e5e5379f878695",
-- "43da9e4b9fc98c3225df02",
-- "4b81add44caab6287f5254",
-- "73a1489a18b0815a03faf8",
-- "146e2b3f7404eaa2825f64",
-- "62cba5cd6ece1fcc005653",
-- "9a91d432ec896438ac971",
-- "6750d083991451ddf24ddc",
-- "23f47a79fc10179e2f1aad",
-- "456b75b7118ddbd9c05113",
-- "214ab6242649bf5f0673b5",
-- "46c6a4606b83331dd733e4",
-- "567c07ffdf5609acdc57cd",
-- "26639427b4cd468207f354",
-- "36b57535eb2f884ec435f1",
-- "2aeb5606838c910769daa9",
-- "5d5d0b6bedf48b96c5eb79",
-- "144036e909f39a00a79653",
-- "7677202d8f05f9287a6047",
-- "1a1cfff05adf1a427c023e",
-- "7286bedeaa0c2687819d8a",
-- "2bf095a2fbcdb3391aec69",
-- "2e6c1f41a9866f4d867e01",
-- "2ad8da8cd83b1521d7659a",
-- "159314ac561f7431a71dd2",
-- "443f4b4ed3b1f2c8fe8ce8",
-- "1bb928a5ce5b6a93e4a6be",
-- "ff765fa35889a47189d5c",
-- "7faf5fb28aa48ff83cc07",
-- "330bf157841f4554c8f5de",
-- "3de0a5abf20a4845d76439",
-- "5d53571a7cc3688e6944b0",
-- "7a6a150f8921047e15edcb",
-- "4dbcbf0e0833361017aadd",
-- "36f20d7e24da8778ce35f5",
-- "3248d851d401112b750bc",
-- "77024358b3e776b2c5e1af",
-- "599102d1f2500d61d762c9",
-- "52c455dad0b267d43552f0",
-- "59db917020bf7253782d5c",
-- "3251a62ebf3abdb7c9ed58",
-- "1c89d8520ef104ebd20ee",
-- "fa65751eb4d84785986bf",
-- "22f4901fc0a8b24cf62fe4",
-- "3baf4fa4e9f273acdf732c",
-- "29d711357943b0afaa5b59",
-- "26293d249066a3014c3338",
-- "4d3db82b9d6efaedc42576",
-- "561331256e1d21664a1287",
-- "796842dd6bfad2f98912a6",
-- "4a27b941aa4c6ad1e07548",
-- "47b94fbc156b869e9d16b9",
-- "39f2517276288f74c45e3a",
-- "11326e189db8b15b0744ff",
-- "7c793c0d415e26d57ec92",
-- "22c922d5b0fc736e5f1adc",
-- "5a9897a2da0299756dfdb3",
-- "37b012fbed4994b5319766",
-- "7ee167869f16d0f3096184",
-- "7b7ba8150a404335a3e978",
-- "2176005ea62a7fae1a0ec5",
-- "7f5271355a686a4df7e516",
-- "33294a38a5c8a431b3624c",
-- "68570d0c5fc94ab3c18486",
-- "3a928b86dc180342e1f053",
-- "474d5e705efa51e5e97d39",
-- "4948e72d6c06974bcf7212",
-- "12ea1cc2026e4f5211a159",
-- "15b86ea9fb5f9d46bb9d95",
-- "1c0d48f6283945e321fdac",
-- "c25f982adccb58e81ce02",
-- "173ee21e60a88ae566e166",
-- "64af53c3c0ad963e3055c1",
-- "2e0a934adfe422dd136191",
-- "5ba00e958e1473bae28031",
-- "230119c3b2a6b1bafca00",
-- "1fb4d17ac6ee317ce5a547",
-- "2449f6a2ba5fdac5a9c1d4",
-- "6b488f646fce9835d43f44",
-- "11978ed9a01677cec42ee0",
-- "3ac9b63dfc3067c1c4627d",
-- "7fa7e63240bd502dd4b06b",
-- "4bafb874450e24655961f3",
-- "4a5a912df871eba16ca2bf",
-- "6a1b97013fc782623a1d18",
-- "60f671cf9f662680d04313",
-- "6f7417b6bfc27461fd2524",
-- "3cd40ccabd157073f9e356",
-- "60188d16e528a5d2e06d3d",
-- "55509fd3a52bd88fe29e11",
-- "193c88995f60dbabf1ee79",
-- "36e5208ae458480078d5d",
-- "27869ae6bfa80052e928d4",
-- "14e76412c1e117fa60f762",
-- "1a91f5500bd170effa0820",
-- "2f27f9f5b37e53f26a3367",
-- "7c4ebd51c09994a5c2702b",
-- "7eede9c7d2fd05759ff0d5",
-- "1bf7de225f0abb4eae1da2",
-- "1f527bd93add787e619f2f",
-- "2f4da63191088795366c81",
-- "1e86f8d9f30e1c9ee2f741",
-- "5fdf7c6cf80f5f4d619b9c",
-- "1365575dcf06e2b1987b3f",
-- "3860f5646a470f19d720f1",
-- "b17adb15bd895ea825438",
-- "67cd089f73cfc8807dd840",
-- "7b97dd845f9509d060f296",
-- "3951fc47c9cf417968c09a",
-- "63bd657552fcd47a1fea3b",
-- "7b59158d38abcc0653e41",
-- "7adedaa3d8ff64ef5910ed",
-- "121daf29269045f5bdd20b",
-- "65c75439faa2303912b32e",
-- "3a603b28f5e57fbfd764b9",
-- "2df92a33b308b4efdcaee3",
-- "69defadcac1e44c7a1c0bd",
-- "17961b8be9d0332a213177",
-- "59a5901c521b74864c8fb2",
-- "697c3f9accda8d3543f182",
-- "3f0177714af6ab07d870c0",
-- "2334ccde40867fa1d0bc15",
-- "16fb077509115b4c0ee442",
-- "758f193f192584a42ebc31",
-- "483ca240f22946b37af3c",
-- "311601fec45703953f2b91",
-- "67da5d093fc207176dbdb2",
-- "1b6a00fcabec41d4b43ba2",
-- "ba07dcfdd701f16f45aca",
-- "2835e7f4b39073c5a451bb",
-- "269c017af27ad44e6b201e",
-- "3cf5810d8c38a097a7561f",
-- "573747456cbe53c844796c",
-- "7772e0b990ccdc614c11c3",
-- "404ae85658f9b08174632",
-- "5dd52a5a11350a9b7572fc",
-- "7ce0b194ba3e31249ab36d",
-- "762f2aec62b91b262cc99f",
-- "3915c8d33da94da27c1249",
-- "6e885e79f7b5fe77214da5",
-- "668c0767178119bd41ac3",
-- "6806f2889f5316f4c57e07",
-- "32f953543bd07093a29e5f",
-- "5685392e26e4e637394c54",
-- "96cf28ae783cd1e477aa5",
-- "710608c33a517ea5d5359e",
-- "435abcd28c0cfc9f321db0",
-- "514d622fcdfc26212b5d14",
-- "408e6268fcd75479c3bece",
-- "18e5cae7f3bd61293a8c2b",
-- "65a5c9fe061a38a8c6c2e0",
-- "6df80f50564e811e245eb5",
-- "1b388caec4f8538425d93c",
-- "1bab6e088abbb7a786ff3d",
-- "17fc45b2690c315a5249e8",
-- "4170c011864f5582d6a738",
-- "3b3a5f854ba249c04d075",
-- "38e1e6200860f4072a8a1d",
-- "c91beeecaf54c95dc1b37",
-- "f125d56d3c0c2aaf7ad05",
-- "341851bd5e48e20f0a412f",
-- "471eec9edf3f5af18be6bf",
-- "4b21ef5da2b744139c3cf1",
-- "3a051daeeae9770973713e",
-- "75a7fc26a6faacf109b345",
-- "5637e5d4438a119a23f043",
-- "22f18c95264f1fb742c348",
-- "1d595362f3a1b4c77729e7",
-- "69a784edece7c38bcf7297",
-- "4fbaae68fdb253d715d528",
-- "23693b4063cf0fa20dad42",
-- "51eb043d3564fa91215f1b",
-- "2bb1db818cfd733dcce0b0",
-- "a961f7b95836d3a578170",
-- "51c819b9ec191b60920096",
-- "ac6c9987de6c73f2259d9",
-- "524b77666e02692a642407",
-- "149d706db4fce00c71da76",
-- "238de3e1606bc0e1c33adb",
-- "37ba1e609c7b12a8e32733",
-- "3ae30b1b5931eb630bbf6c",
-- "1630a212afc84f038374d9",
-- "5ebb44d93cb77417b61c4f",
-- "5a7d2dd2aa2028d4da8f42",
-- "798019b397419c8d54fda1",
-- "74a156e77589342bbef3d5",
-- "506e6a05e8de5c9198ae69",
-- "48e4926c40cd6ab5e92ffc",
-- "7d2db742721c9ba686ff30",
-- "4b8968b5c5a93dbb4b2b55",
-- "2ef2be0f7e33ace73bab4",
-- "7651ee2e0f4d348cbe95bd",
-- "43ee4b35cb3cdc84d1d5db",
-- "449d4feccb40da2e122aa1",
-- "356211f56936e183312837",
-- "527456447c2748239033cf",
-- "46bdbd32d31b2a36e04e0a",
-- "6c1076c01e9e44fb047889",
-- "5ef5512b3384aa1243daa6",
-- "d452f805a2c35e686e107",
-- "67a9131aabd5255bdce732",
-- "5088a2317aa34dd5bb1b4d",
-- "64c275af1abda385c2af0b",
-- "402c7149b20bce787c7e83",
-- "60c8d2e958387c0d0627a8",
-- "516640d56302eb15061b25",
-- "c62790b24bc842a717e31",
-- "76e87d4d2740e137511b26",
-- "6cf76079225189eb2608ce",
-- "3c8b04f81e14e10396b582",
-- "4bfd93fb985a44ed0569f4",
-- "6ce98c831091728c0e73bb",
-- "4f74e7ee01738298062093",
-- "449ccc3923e92a0bd2e3ba",
-- "4feae15528510f186aa1fa",
-- "12a3196afc09a79694eb31",
-- "6cfdd09fe2bd66b85c2e00",
-- "587cce1cbd0dee8b98f262",
-- "3b0283be973d59ebf4242f",
-- "88b8371baafc87a9713f4",
-- "4e6cb8ec1b00e2f28b3a7e",
-- "235baa54adcc67af92d06d",
-- "733b81816da25936e81af1",
-- "7fe76cd2c5affa913c2b41",
-- "26b7df388a02a8279b0652",
-- "7b5272bdeb1b01fe56bc29",
-- "6863984d7793407587e8e2",
-- "1f1eea8231315133cde938",
-- "2f85e68dfb9aea66d7f07c",
-- "6259df76b87ab2eff6659f",
-- "502c6a2df8916b18106088",
-- "4cd904fd9401eac5ad7f1c",
-- "5eb4d93a33b2d2e2c2adad",
-- "55a41153a33cb4649703a5",
-- "cfc86f804a481df48868e",
-- "1ddeaa1e583e9146210f69",
-- "38110b962a169200cc9f0a",
-- "7ce4bd3337a7333159cb2c",
-- "1738ee1c8e104064e07249",
-- "e1ef803b3674bf39884ae",
-- "55d7bf2f5724b5dd0a04ae",
-- "7aa81a94a5a230cf59a0b9",
-- "2baeaedf76503008b9e428",
-- "15bb5d9b44eebb27a1e60e",
-- "dce90e419e8d3f96eb5b4",
-- "72a7ca4a8dc56f9c652281",
-- "5cd319aa7906a96d2f6c7e",
-- "557361125249092a7bf932",
-- "70a1107bc42bfb598164ea",
-- "df7ae04689867c9ad97d8",
-- "117480f169f81bb3e8609c",
-- "479fc9912c9c81152eb474",
-- "4f2cc1f6f7aba8c20a670c",
-- "17dd6e40297f1d32786291",
-- "783e0229f219bc18b705e4",
-- "8b462e0f7448b549fd688",
-- "4a0fb16cc4d1bdfbb239c",
-- "53c95b2787b88db0682132",
-- "536be2b3e3829710aec51b",
-- "3a89578d6ca992f91249be",
-- "779eb73caa637aa28db87c",
-- "52f5adde99e4501e4d1c61",
-- "31541f24753a28cc5b51d8",
-- "620084c5da2910137e2b10",
-- "76c132264ad2a774a55164",
-- "35a3ab4773c5054a30c44d",
-- "2f78c0f7e7a90558573941",
-- "5b39ddb704fa58142076d",
-- "1d6812727d8421d0e03a6f",
-- "307727bd97c5db086074b3",
-- "1abc0d15793c655cee4a9c",
-- "68ee183b2208228da8bab7",
-- "116da33e19c8b80384fe28",
-- "3d73fd3c3744e9ec5d2d04",
-- "64ed03e382c11a32e34cf4",
-- "479e7025ae3fdc2bbcbe22",
-- "a134915353ce113eb72dd",
-- "49cb6ac7a2bfdc54300006",
-- "2d5e8f78718c2d4660cc69",
-- "3f5027ce278d444a4dd243",
-- "15d4218f4bbf0c95cd9649",
-- "13221a23af3045ec5cea35",
-- "1efd2b46d4a8724e929fd9",
-- "628d18e095a8dbcb9f43bf",
-- "30eff32d49c10f325b8e9c",
-- "29bbe5fdf14e69065cb80c",
-- "2df28a1b78b46f16aaf53b",
-- "352a4a136ebd7ef294f370",
-- "1c960c994194a1366a2222",
-- "351c5a0b997e45ec21b614",
-- "4c1f6b587fd26654ea69e1",
-- "2735b2e6f5f08a9e9418bb",
-- "3505fcb3eb2690f88b3be3",
-- "4d8859f357a36792b7211f",
-- "1e2093f76475f58a2dfd79",
-- "456138a50c3717947be48e",
-- "35714b90920ce6fe1f850",
-- "5d7c2a1d1267b7a252da1",
-- "754ffe6bc2e7525e892fe",
-- "290ac68bec8aa8955b7e97",
-- "a058b3353ac6290d9f864",
-- "ef75fc5d77fc146e975f7",
-- "48a999a2dc1a23a934a6fc",
-- "7256923d608836710a659c",
-- "2b13e041339df4d5a521ce",
-- "51a9b0945a0908b1d40d24",
-- "779559a53e6b62275896e9",
-- "1fa330f6dd5f3ca09176ce",
-- "3cb748f77d638122329dca",
-- "7e62c15038abb8244531b4",
-- "9bea90a26f9e93743a998",
-- "7ae1d007cf030664c6b815",
-- "52cfcbd15dfc6c476cfc76",
-- "18ba9d869c489f11ce52e7",
-- "93cbb2483673e4e0dda30",
-- "2478db790ed59756cef964",
-- "7d8b341c82b019a8d56c92",
-- "584b7d6f0b43ddd0b397e4",
-- "6081e77fedf3898fd66607",
-- "540f5a33d5aeafadcad19d",
-- "52c4d1c2ad153a3f70bc0a",
-- "39489c7fdb445490d498cd",
-- "e0800809dbab6d41345b4",
-- "1536906705870049755028",
-- "639c2fcec8b9dfcc987387",
-- "214f18ae0c9aa7a1b8c02e",
-- "5b8e9d8b290e89e5d9afc3",
-- "4499c1c16fec3546d5903c",
-- "5ce5e0595ad07c8855357b",
-- "39bf9c3f1f0a1a15264530",
-- "30a77107da1d91a699e9f5",
-- "352389083277fbbbe66ac3",
-- "5d711409f3faa9ea87abfc",
-- "42cd59499a0ef57d6b0009",
-- "731a7b89f357bfb855a5b2",
-- "767dc9d34c09b03db4a0e9",
-- "5344962f90f45cfaeb1bce",
-- "504d29ae2e5a021d2bb278",
-- "6e97dd298eaee757a3cec1",
-- "2d1b2f087facf1fbfc7e69",
-- "327b2b8d0b75e0d83a5b04",
-- "7dc98aa964908b313939a9",
-- "d8c34dffd92c1a20d6a9a",
-- "21a363ab0e08a4336f2e44",
-- "48eaf0293f956717b8f048",
-- "6351b2a5f477112f552683",
-- "2193bc73ac4b40415c95b5",
-- "13f13f9f2c877cb73ba5c",
-- "7c6b359299af5c59043711",
-- "7895b432001edf846b7b3e",
-- "3ecf9d05cd62341c4f7784",
-- "6c8879d694e1a0b99f8e42",
-- "6400e87749e3bcbd750d89",
-- "1851e925707895d37a37f2",
-- "30f4f5617cc73435ce74c2",
-- "18ec20d19a478746123b",
-- "39242760b51f2f93fd4721",
-- "452d3dfff11e24bf680356",
-- "5cafa83a10f929b5076c60",
-- "7fd4ee663460087b793a80",
-- "7e958697030784ae5ddf86",
-- "a6c54d0ec55adb4911efd",
-- "2964973c288dced7dae8fc",
-- "2b0fed7a534d25697e5c7b",
-- "3afeb7cc8f8e5bb8770da",
-- "6a81a8d913b71671629ad5",
-- "75f4eb6de0d35eeaa16cf8",
-- "7abf68b2e4cc9e3a3b2c5f",
-- "4f6d8c8b0b9b376d42c4b1",
-- "23f219093e9b0bb3b5217d",
-- "5a0c2602dcbbbf468b67e0",
-- "1a63315aa52cb254b65ce0",
-- "4f72850630f6f8c1a68862",
-- "3722a55f27f2c02b34eddc",
-- "672d7083ec424e5d883cec",
-- "4839c6454f97ececa9969f",
-- "e941ecc714605cea72177",
-- "7cf9338ca9bcab73862b81",
-- "6a23876a8c802d81d83d29",
-- "7006ef130d31e12bc44c5a",
-- "591bac661062f64b8e3f2c",
-- "25cab751e23d8e69bb5048",
-- "61f4a55b140e767495cd59",
-- "1a4e5bc143bf00e8928403",
-- "4a54d9b3589d5340a01e23",
-- "18019c176b4c9453028db8",
-- "76fed7d89907843db9af52",
-- "407333b3b6a3bed3ef8920",
-- "536a736ad3a37793dd9f54",
-- "5e56a7d976f1a3334f57c3",
-- "66ffe80af410522139e92f",
-- "1b0c27c7452322264822f3",
-- "58320debe89492ceee77e",
-- "4fbc987e428ed0ce9cb76c",
-- "70a2d453b688803716fdbf",
-- "1921f3262afb2f3766f357",
-- "6e007172a16a9c673e635d",
-- "527c4b155e3708972293d1",
-- "2797689917c95a9d4073ae",
-- "69bb33c18017fddf18d091",
-- "165ff53589519199fc1846",
-- "171e59c89024b148534f1b",
-- "23c82ae839bf5380a55acf",
-- "455c9131bfa1c33274be37",
-- "4bacbc68650c41520d312c",
-- "1c35e13f8ffb7c470fa61c",
-- "6b4728ee168cd23e2fe47c",
-- "22e321253c3e0fb875c4df",
-- "6077a88144957827c07205",
-- "4309c1c59a581af63d922d",
-- "1b1ca5d6c688c4cf99448d",
-- "31a504d1dcc251075e4436",
-- "223160cdd1bfa322ca3e6c",
-- "3601174a7dc823bf4dc3a6",
-- "6da3828f2d4926651f7a27",
-- "7de4927696bdd6d3b718",
-- "7bb4f9d707b4ee3a20e779",
-- "343dad4f059acb87d3b0e2",
-- "4e501beb4617be0f02deb4",
-- "3943e926fbe3d426004ea9",
-- "4b35e35e82bffb49d0d830",
-- "6520599b30ba3568ad0f09",
-- "2a48d89ce122dfa7deba2f",
-- "19b666810d736e639b51f2",
-- "1ccd174e9aa4e58e7414bc",
-- "475e84f70334cc0bc8292",
-- "393fe0be8f011593a7e1ef",
-- "17276a59aa9630c1141c17",
-- "7d0578a8908ba294259bd",
-- "4a9e2e5d8ad0e2e82aa7de",
-- "63e0dbdfb13b4fbb46f00c",
-- "310e395e429c4494a5f850",
-- "7cc0116bd0bc164835ee72",
-- "634478b621f7f0a455c48c",
-- "397f144a181805e1a097c9",
-- "53016aa1427381b9f28ea5",
-- "76c2f0ba37187112ee4d4d",
-- "2bee268df09cc40864a917",
-- "7851b3168b92e5daed021f",
-- "149e6a0b6c6543ae895e07",
-- "1dd1b432dc809fe4c879b3",
-- "2ad2546b270547fc24541b",
-- "2015aa6fc7e48fa3bc5ab5",
-- "38596ed050f14596adc07f",
-- "1d2b9ca2f44294070d4e86",
-- "3778fd3a46ffde4755b6ce",
-- "74bb588b5553c2b2d4ac78",
-- "3d1155c4a53835d991a0f",
-- "35865b2ca16d3453781f41",
-- "6ba1300374acd487b23577",
-- "3f68fa1a9ab7772758d0ba",
-- "30a3461d63ca9807464dd6",
-- "552aca5af025ea1e84aadb",
-- "32aafc640e8c99bda8faa7",
-- "2fb170a11f1aecdf586d25",
-- "751e9eb348bc8239d6e118",
-- "7fc2bcc524b4326eb8303d",
-- "1cc2526113f2bae9b540c1",
-- "6a437e22c95fc6c6a4449d",
-- "df261ad3b5157a525bb81",
-- "690aa96130f8c533d77ce4",
-- "2f58f2df794a35875efc99",
-- "19772e34181f57b670bf9",
-- "60617400353c1eb8e8832b",
-- "7136b3dd116ed121aab68",
-- "4c95bed884bd87ec1d5e70",
-- "68fa3ecc3845db5d523ad9",
-- "4818e9ef0ea7625cfc3d0",
-- "27ec8c6636679988dd1267",
-- "57d88b5e0b434eb1a0dc08",
-- "47a1f466100bf70dd5689",
-- "55afbc51e7c2cc748942ac",
-- "75066462fdbbc7301e209b",
-- "72b5d8f8e65cb7509a93d8",
-- "38d9d05f9463a537f470b2",
-- "2f39a2788d5c2a24e16acc",
-- "5f4e7c70ff55ff2f888f05",
-- "735cfad9acf49090fb7037",
-- "6a716dae106b9aeff2133e",
-- "1c90fea5f39d8ac4dfc2a3",
-- "3a8c5a9525f5d62cea294d",
-- "498104aa12355244a9b0d6",
-- "414e761d40341e7f97c304",
-- "16d5205447831696c5d6a0",
-- "3cb5a124ce563c3967dbc3",
-- "899b1ac6f72ffff8aedfc",
-- "34eea7a66e8ff3dcc8988e",
-- "5f80095f2580ec4cf13b51",
-- "4d7566cd294f75be6620f3",
-- "506d84c9f4d4bc400fdd25",
-- "5a8a9b5c659b71e837ea18",
-- "c16d15fea9d61c8df5121",
-- "3a7a488015e75feec809f8",
-- "6fe27c77d57e2feb8cbcbf",
-- "452231c3bcde7b7b5b0af8",
-- "760f3656c1130b21d369d9",
-- "39a0c4e1da321f1bc126f4",
-- "3315173915ca23d8c1b814",
-- "1cec8c96472b84936bbc22",
-- "3c70a3f0e9c5b206031a33",
-- "7cec29d14a0eefb222bde7",
-- "760df490123f6613b0a970",
-- "5bf795c6d548a19b6ac340",
-- "5569560418e73ff9db709"
--};
-+static const char* RootsInv[] = { "1",
-+ "280f08134d28252bd0b713",
-+ "559bf101b9cff724b929cd",
-+ "3a8965cf80aa6c4410dfab",
-+ "45440750f90776251263b4",
-+ "12e92ef014e8d7fbb8d23e",
-+ "240e2e38e41f3b6530a267",
-+ "69412d8563ffa7e83b0ef0",
-+ "3288681f4d08858009187c",
-+ "47ba42dd06a62256ee8c8b",
-+ "67a8cdbece1aca4e55ba72",
-+ "1cca04897dbffe7f26f2ec",
-+ "2fdd94b55dd5fb9a3915f5",
-+ "3b228f46cdc0e8a979b45e",
-+ "5e842bbb537167f75451a7",
-+ "13637e15b786797995ba49",
-+ "47d847bd96fbfc9c221fd4",
-+ "1badf1b7dc0b73e0bf8b67",
-+ "2703e4a7969073dd381cbd",
-+ "3eaa7351a72b065707e47a",
-+ "476ef278c257202dd01711",
-+ "2148939cfe2757b6666fc2",
-+ "4494bc9e65c8cf2a6ea51d",
-+ "20d4366552d0d83219fa0d",
-+ "47a080b7584194b936f712",
-+ "482af287c71050fd03632a",
-+ "19a439abdf3f4f5eb63683",
-+ "426541c137d269fd2e2296",
-+ "1cb2dabf0298f57d15e65c",
-+ "1e92415029559dc3ed8283",
-+ "568fd03e0a80223cd1669a",
-+ "5a6df4a369ed81627d4fa3",
-+ "457dc9644e5b25ae6c4291",
-+ "de9896eb70f1668b87fc",
-+ "4e27f64f8732105513ad9b",
-+ "590056c647987959065bd",
-+ "171757e72adb6abd8f440b",
-+ "67e11e83cb547515b53701",
-+ "bd499ce82d93c07477fc",
-+ "10c81c57aed768b3285598",
-+ "3a7ecceb35e2e9a438dbd5",
-+ "1b5226354071022a104a86",
-+ "3956e2767e97b7703253b0",
-+ "1960b3a13c6cb6acb7f489",
-+ "61c87048ea8325590bc5b1",
-+ "46323a1998a54f7e0819f6",
-+ "630270f2ed4331deaf63f0",
-+ "153884834dca9aae7d5d2d",
-+ "39d71478d3005e797c6913",
-+ "5c1544633a0bf7939343d0",
-+ "3bac7e0675e0a9967ff7da",
-+ "409fc384bef4b3d255371f",
-+ "39baaf1f520d96bfc8c1df",
-+ "4d7940ea6bfaa7b282a985",
-+ "4a9b685698a7674338b188",
-+ "70d95d23dca53184d30b4b",
-+ "51fc2c3f86b8fc46a7a221",
-+ "4f5e7f770a4d50c69c4028",
-+ "17e8af02e79e7f8d2cdf99",
-+ "160134aa459258ff8f6285",
-+ "5d6bf6a59488555bf1342a",
-+ "75471e22b2d84fd2fe01b9",
-+ "1778273a04ac508e342b",
-+ "6152765b747658a14d5829",
-+ "6f2f55effdb76df46b548a",
-+ "3552a76787de4570d42693",
-+ "239e94f2e5843a6e20f1bb",
-+ "5b4dd88e0cfc108bdc7320",
-+ "7c1256dceb40e2f63ca4f9",
-+ "16d114b00964bdc8e2e82a",
-+ "36b7f85db80800549459bd",
-+ "5ca9b2680bb84ff6e98b33",
-+ "7fd47e391981aa515116c7",
-+ "39965be2b1bbb3ed832fdd",
-+ "1efc90353d647b1a3dfd54",
-+ "59daf69acb0d30ef2fc5db",
-+ "4f34769ad379d64a27233e",
-+ "1f91eb155829f1481d6da7",
-+ "688ea19369341f6943063f",
-+ "3d57e0a1ef4abcae8719be",
-+ "127b65c61b8c8f1b9456ee",
-+ "1ee9410958604d03f20f1f",
-+ "4e175c68ed04c585f606f8",
-+ "aeeaf98aedc83e6ae6cc5",
-+ "61b85bccf0f4316c2cec04",
-+ "768cbd11024387469f6ee1",
-+ "74e01ea265377cb713e57a",
-+ "5695db84b4c92a3d6677b2",
-+ "7510db776aba775075e549",
-+ "4ae24f235a28b7f71492ce",
-+ "5a20607ce9679fb1f266e5",
-+ "9e1bd1e36f73d0f69f697",
-+ "218c9ea39a51618b1ce10e",
-+ "3cab0ae1036c6d43311ae4",
-+ "4082d11934cd3944191e6d",
-+ "46b0509f9638e9030f5895",
-+ "2e274c1905f505ef9d43c1",
-+ "2555442bf058722bf0120c",
-+ "4d29703647563e84d6ac7f",
-+ "10db0037fd5f7d8c49aee6",
-+ "3ad7e93e4ab55d402a33ea",
-+ "6bd3a60ce037d04a7d822c",
-+ "dcc0bec90c531be4924ef",
-+ "53e73a626a5de69e43d0e0",
-+ "1472017c713a1063411e0",
-+ "666ea50157a2d8307a0ef8",
-+ "31ee9d29cb2f2a7eeddbc0",
-+ "3c1c9492a56c8c78536095",
-+ "56a6cdbd81ef505320e706",
-+ "25d3735a734b777dd960b8",
-+ "1dd4abfd6c4ed8a3ad6bbb",
-+ "ac0f86afb7bbca8d57c4f",
-+ "43d235cd54423fd6135def",
-+ "4053f687fd270a04d092a9",
-+ "197461e90c6b70a7dda46d",
-+ "65f71d8c8e62cbeef07daf",
-+ "70b50a59ebc270bb237505",
-+ "2b5280596202f4b3ee0814",
-+ "1a30afeb54dea502f0310a",
-+ "33c3a8fe7d6e90cd610695",
-+ "517123f4920304dc75317a",
-+ "46afa6e418c9bd4065cd9d",
-+ "2a68ad26b94fd25b4509aa",
-+ "2ab0a302ecc453de7fdbe4",
-+ "43e02a2659ddc4d3204fd7",
-+ "7fcb3af03a778d48d5ac9b",
-+ "40734a14dd653457e54b74",
-+ "55152f253ffb05575c981d",
-+ "6bb593df2f572a23254ed6",
-+ "210441f8cc9b531f88fd3a",
-+ "c79d219ef793e02a9f989",
-+ "752129c2d07a536bf3bb8",
-+ "2e9fc43379988881a1b064",
-+ "db07432bf40360e3df399",
-+ "2e9650e328b679ea03af31",
-+ "249469414e604f245a56ca",
-+ "34c572dd024d37c54c5648",
-+ "411a5d336f1cca7988f319",
-+ "4ca98168d36f8ab3815a02",
-+ "63f8378a4c563212109ee4",
-+ "7c4aa256f5265e9d49e8ab",
-+ "4c622bd5bd26bcbd487c68",
-+ "185c0df44a167fc9bfe948",
-+ "7b4912ce2f8ea6ad90baf0",
-+ "4b90d5d4f791e4cafea283",
-+ "639eb30656278296f2b3e0",
-+ "21d9c50ac15f9a1fc38df4",
-+ "797e5770501b190fa5f6f1",
-+ "6be705331dd40db5a995b0",
-+ "79a8e47a4d897cf6b712f",
-+ "32f17d420cb00b34cd9fc3",
-+ "3d1dbd13d46aa7f5e4c42",
-+ "2b036df33feda1ac5edb68",
-+ "2969569df7efe8c61bb461",
-+ "1c94ea576c3cfe00e40a0c",
-+ "36a98de095d312e040c903",
-+ "2e78ee01fc4dbe304eaea1",
-+ "51edf68dda1a87c4b3af7e",
-+ "cbf28251298433a3abc70",
-+ "73f8a019ddb59d3f06f049",
-+ "341181b7d4d6f4e2cf9643",
-+ "17040e8c8be515e4ea36e",
-+ "25e016000255df0b5c8153",
-+ "272821f07dab57e4aaf0a7",
-+ "4786c255855f792a20f869",
-+ "79ea859ae0d9bf58c8e071",
-+ "592a4efec7cf89e527fdb",
-+ "398cbdee468f0759c375a1",
-+ "4e4622894612a0772ab9f8",
-+ "3939cec4c6eb132c9146a8",
-+ "41b1881d9704918a051695",
-+ "b2c65762784255bbebc75",
-+ "97bac956d2b65a51260e7",
-+ "edea2902a199d26d75bdd",
-+ "5b6485b2f7f41f0abf3544",
-+ "6415a8a79aa0ebffb6a24d",
-+ "ba3b72d702ce311cc02a",
-+ "67ed429f48df076df817f4",
-+ "58dbbd6f088b5ff881356c",
-+ "2a9957bb174e3a8d1169ef",
-+ "5298718820a8e285437a64",
-+ "71dbc0d71fbcfcf1245bc2",
-+ "495ccc90a936edcdb3b175",
-+ "6862becb8f668738ac092f",
-+ "5f1584cca489de9bdcd65b",
-+ "7f873bc8523c4931739324",
-+ "282425a374dcf57904fcaa",
-+ "7b233911df67c0ffe75298",
-+ "28da7bd48db9e867715c64",
-+ "14e34536d861554652fc3d",
-+ "643b1783eeff5d2d9d100e",
-+ "528f06b90d6ea98654eb1b",
-+ "6c02da94ff6269ebf8b68",
-+ "7116294960ec1370cfa192",
-+ "34b380f57ddac800a53234",
-+ "3746df2dcaeb2f941850af",
-+ "520cfdeb5b65ce3df47f12",
-+ "33bbdb9fd9d9e6cda126be",
-+ "52a44d4aac2b12a44786a4",
-+ "17e032019f0dc1c4277c0b",
-+ "3069cb41e51edac9ec2b3f",
-+ "653694fe66c257988cd02a",
-+ "332ea59945a5d0e73f7dc5",
-+ "47d7208165498ac04fc240",
-+ "5f8e36ec1202b0292d5945",
-+ "196185d708583cfba757f7",
-+ "44dd12bd0d7f960d6bd7f6",
-+ "235ae37d20b21074f27732",
-+ "4d10e4408b3b6761aa225",
-+ "3f14484539a427ea73a1b8",
-+ "35b964532350abcbf76d9f",
-+ "7e5eb2a4ef3434465acdeb",
-+ "1a04ba76b7855a5e9c289a",
-+ "57caf75d12ec817c6cddfa",
-+ "fb87766da12e75782ca77",
-+ "76272e758d9f83ceea908b",
-+ "15e2aab3b7b69272b3c155",
-+ "26b5c49d8c4e12d4b3d157",
-+ "18347f5ec924cf4631f292",
-+ "2ef94456619d9728490c1d",
-+ "1000ca68b2a0f4790d5b97",
-+ "208b7d3e85a97a99407a38",
-+ "745cc1be634380e90bc82",
-+ "60b46e71f1f2b8376d5d29",
-+ "2f305b730466b54d50855e",
-+ "61b023abdf63ddd6300036",
-+ "3bcee7bc9a5ca7219edfaa",
-+ "785211217f5fa1bf82b193",
-+ "765c653014c5e4b3dc3865",
-+ "52d5ea798306c9e21853b2",
-+ "402466331777b126e4d8e2",
-+ "7fd2ed81931942f0ef8d50",
-+ "6edb305f1f8f30902439c9",
-+ "1a484afbb93898190d8d03",
-+ "40f2e74e1048db76b72516",
-+ "b03e402e64c3436818402",
-+ "4b0f09e29272f9d49c6266",
-+ "59f29456bbb20b47aa046f",
-+ "308a1daa2779a84d4db8ac",
-+ "43c088f2eb74b96d25a4a8",
-+ "614a9023303ed4dd2cdfb9",
-+ "437e569a7451bd9bbbce87",
-+ "7c38756fdad7c18ef7576",
-+ "cdd3df5aba4c7ba52b4cd",
-+ "2d2efb8be305a05b685aa3",
-+ "1aba34eed15b418d4b7f0a",
-+ "2432bbe72c83689ef74c85",
-+ "4b2a621bcd3f244dbd1aa6",
-+ "38a68ae5efe6ac22d3f278",
-+ "3e1ecaa8d0631877bfedb9",
-+ "67afcc19d0bb557a608666",
-+ "fb85baef473def8948133",
-+ "47efed21b3657d0618e28f",
-+ "6e988e80d2c29dc7542de4",
-+ "525362bcc006730db95180",
-+ "30e3bf91dbc04d50a032bf",
-+ "17a50483229662a578fdf3",
-+ "3395f092181af53bb73f3e",
-+ "260f0ab9a00e1e941e404f",
-+ "26b516b52794658e68ab5a",
-+ "76dda8edbfa5a4265a1a74",
-+ "49af3dd263ef8ddc7b0303",
-+ "4956d4cfa3dee8e23259eb",
-+ "245cbb0117ba8963db7929",
-+ "41327dfa41486f6b995572",
-+ "207b51e97aba651825b40f",
-+ "1d5fe04c71a377f6784338",
-+ "43d0ab106641bd01d72cd4",
-+ "7dea2305f898b6d88f6821",
-+ "7c9cfb41c0f888d000fc52",
-+ "6b849a1f17d635cf0a773f",
-+ "3195d14bda042e7057d34f",
-+ "52253824741dd177a674a9",
-+ "6387ce1a213d98335598c0",
-+ "50c4c9d0b48bd147d875cd",
-+ "2afa4dd2f2245b7525fdf6",
-+ "7add5048bc0984c36294e1",
-+ "77e2377901111b6ba92316",
-+ "83b4a6c139b7fda28fc0b",
-+ "30f7be09c5f39b5532dcd3",
-+ "132d2eb133a0383d464ad2",
-+ "47d814d93ff8dca3c1398b",
-+ "37bd7e26cf4711cd149911",
-+ "5a081e53f2beac49d1a3e5",
-+ "59ff3fb267f4dcf86fd4df",
-+ "146dc1fd204e259d148dfd",
-+ "578a6c67a3dea7609537e0",
-+ "7376e75fa605889898fa7a",
-+ "9dfe0a1feefabb0c62643",
-+ "788f47c4aa1ecb9b01c1a7",
-+ "3ed51ed7c85d68db84d78a",
-+ "23270a061497f9098a49ee",
-+ "3153805f294e973c493b1e",
-+ "22d68d4ed1af18d8658de4",
-+ "2ae83fe35c42b256590f54",
-+ "6e1573decbd31bd14c0615",
-+ "3ec0da959b014a91e3d171",
-+ "7d60cbfdcc63ced7661d40",
-+ "2e1479f3781e1a48fc49de",
-+ "49639d01a55025d5b2f6ef",
-+ "7d98b2bd2e9168b6d2e72f",
-+ "14efaca65e59726b81dbf0",
-+ "2d816960b0911019df6133",
-+ "10b3ac9e35f753e3c9deb",
-+ "40c514f5e20e67263ea899",
-+ "6ad236039c2c3e149bcca2",
-+ "8ab595a01941ab4070b39",
-+ "5dd15f8501fbd308a231a2",
-+ "6f79151ea6cbf1bbe85f5d",
-+ "13fc0f6b201b7368c44178",
-+ "601f96473a856041a89ff8",
-+ "67adab05fa921650ed942f",
-+ "4fe741cddc07d380fb6143",
-+ "375ec3fc3fce6eb8e8ee9d",
-+ "416b4cd1af257e44ad03fe",
-+ "7b2f70ff56626a3003c33d",
-+ "39c91d6ca89a6fa52b3be6",
-+ "34363c8e2f82b5fdad8c66",
-+ "77c405c1030a468f5abe34",
-+ "67437e976a93329c5b9760",
-+ "499ab94c7bb40ba492d85c",
-+ "49c59a03a60b57e7bac289",
-+ "210cf16be9c62f7408e63d",
-+ "7a2990f262218cc62c32dd",
-+ "4c2a57eb3ff167fa077ee2",
-+ "23343ed75a8de5a22fac16",
-+ "567dff5f6f64aa1697fa0f",
-+ "fc59307a819ae8b7a3f67",
-+ "2b8d9b2da99a690e7c44a7",
-+ "9f4b0dce97935ef1d9158",
-+ "365c9be3e9c7dcc814388a",
-+ "4cada2a5056e025832015c",
-+ "33fd72210da605d38ab799",
-+ "28a2b96944f1b1210e6bbb",
-+ "125d9103db1d2a83e13f71",
-+ "3e1e43759c2fbd4596b36a",
-+ "20db18e6c822f683f97989",
-+ "f46157d09593fd6ceaef5",
-+ "c75433d8b0423b552102a",
-+ "5aaca79690a162240db985",
-+ "1160b80ff627f607bda927",
-+ "5839527a17db25de563064",
-+ "7b9587337c3feffe6974d6",
-+ "147d7e964c45ec443a24fc",
-+ "40a3f5ad2d4a9b33e2f67f",
-+ "1cf9608a937eea1a0bb3af",
-+ "2a8bb0c8c3747adf31dc91",
-+ "3c3d137503578a98196d6d",
-+ "1cab579a1f775fb778d900",
-+ "72e9a5baa06d4af7c9f9da",
-+ "dad2db631732b0506f6b1",
-+ "686f17e02f2d49c0e2e48",
-+ "21eb89d73161656b740b6c",
-+ "488aa158d747df0f5cd422",
-+ "67b1ce8dfe00f53da9491b",
-+ "687346ea28caf1c87376ab",
-+ "254a37a2b407cabbf8069f",
-+ "61d42c0be51a3d664c8df2",
-+ "dd0623ecc7bb862ebbbac",
-+ "54aeb8675aac1a423a7140",
-+ "2e76f32ec68bf11c44acc8",
-+ "a2c3a3cc1a5dfdc5a02b7",
-+ "6a25d7d313e7a656aee548",
-+ "78022742d8c1b58e95d935",
-+ "46ea2e85d6ca1966d1ada4",
-+ "7530bbdc505d301ed9040",
-+ "30ebf17f92538a33a005c5",
-+ "4839ff83b5f2ddc41b61ee",
-+ "6517d2ae1b7ba4107ba2ed",
-+ "1a5f34cedfae0cde5ea0a4",
-+ "3d55ef23d8c9f8419ff28f",
-+ "41d953d4dc4746ec83a1f0",
-+ "4f4128c0856b216db55c75",
-+ "af0b8a8f75ec961c833db",
-+ "1e5217185f433bf1233d59",
-+ "5846b0049ea6f32f4b2762",
-+ "40e1957b3947c90dc23e89",
-+ "5c6cf60aae0cfc30048ec1",
-+ "5ee2324ad6594548cd275b",
-+ "7969c90c819c5b0080834",
-+ "6afc9a3033b5fed5a0c3ee",
-+ "586e1bd3806f5472b98045",
-+ "6afe8bc3bb8509aff3c666",
-+ "5dbb4f6414155050573b80",
-+ "493f40656c80193590d2f4",
-+ "3e61864fd19f85bd211f70",
-+ "3ff0891da2c6d0cb8ab6f0",
-+ "245f14c58fc2f1bd38bf6d",
-+ "5334ba131913654474693a",
-+ "3b8be315926a14f8200fe4",
-+ "54c37f5e810a7c49e7a02d",
-+ "3c015f30d95c1da9c47adc",
-+ "26580ddf1efe9fe3eae4e0",
-+ "5b68ba6c572a6576af79a8",
-+ "6b11c6506832a5a8571e85",
-+ "37f81f265c72ca7279eb3c",
-+ "79b27c762372e476f703f7",
-+ "102e8f3d54ced5e10227ed",
-+ "173b57e939be4a4efef880",
-+ "5b18e3d2fe16a9d973b934",
-+ "4413cfa8b5666fc0af877a",
-+ "54b4dc744541c38f937102",
-+ "30ffdb4a4aa7f26e29fcc9",
-+ "1b931cd6241fc4f484ed23",
-+ "7a45d57fdc1a44af5791fe",
-+ "66ac85711d7e32d731c773",
-+ "6f55491282e49ce5634ba6",
-+ "17ef22a6ba1fe32d3ef7c0",
-+ "153d48f10507702bdbbfbd",
-+ "755b7f3a3389c861fb2d23",
-+ "1bacdadb366134c3d1a5c0",
-+ "4de1c0244f476f355a3a91",
-+ "2b04a0e7492ffe108c1c00",
-+ "49b08f20244bc64879adcb",
-+ "76201a82e565cd9ac092ed",
-+ "69699a76b55d4ca99064a0",
-+ "6d83e6632fcdd8cf940ffe",
-+ "705cc0331aa0195cd9f6ec",
-+ "59b1b4d92c6ee6432bf67c",
-+ "26c3f6eae80009e6946697",
-+ "825e4a5dedb493626e7ba",
-+ "4d1a97d405c026a8a5aed6",
-+ "d08254f4d2d5ca1a5b877",
-+ "7bca9525e525d6ded2c76f",
-+ "755d342969e9fcde9fd595",
-+ "7438dcc1d87bfc73ab26",
-+ "5d77b3e7e323ddd35a71a5",
-+ "dfc33dec9862e861d43cc",
-+ "75b3fbba0880cedfe12ea",
-+ "2746a28b14b19ab8d24145",
-+ "795824804b82c5e751df2b",
-+ "1c6bd00355516b7177a93d",
-+ "75d1f80628c3a1c1082c91",
-+ "1998245099906d42a62588",
-+ "7ba683eab937665ca29978",
-+ "203c3b480852a2154fd642",
-+ "1ee8fffd33bf6223d36b95",
-+ "c92faa8d02b107a1b5d50",
-+ "65a7ac7cbfcc2f6c41c2ac",
-+ "7450197e181adf8c4f92cf",
-+ "636079478bd1eb493d0866",
-+ "47792007d733892284fb9b",
-+ "44678fb0d784f11b21a657",
-+ "27e147bc2366e607ad99bd",
-+ "168c6919206ac6ace0f625",
-+ "1c9f92bdf4717c6880a9ba",
-+ "3c4dc48e3cdfd4ce2eefe9",
-+ "6b79ef63bb66f1362d8de",
-+ "5efd2121bfee3a30184816",
-+ "5ca7f66678a73081bd34e5",
-+ "5cc79f5d12d2a991f4ebd0",
-+ "4fadec3b4cf5617426ac33",
-+ "af86674d8a1c364331ef3",
-+ "1b0ff68c5f14ee84b37e7f",
-+ "6be91a7f057434bdea3953",
-+ "498cac7e3100df5899cd16",
-+ "3a0a69f5624f959d85e411",
-+ "779b65c66a52eeb45328d2",
-+ "48b5f18a43890f525b850c",
-+ "1a9a55461554e908c4fbf0",
-+ "230c19482c2fdfccb6b94",
-+ "1a364185d640ba1a6ed583",
-+ "1c72fdd679cfcd10e369be",
-+ "56853e4d2e614e1924d27a",
-+ "10cc655b268878a4e8e081",
-+ "3c71a5e6f6b431bc524a53",
-+ "7b274f32f2cbfe03031cb0",
-+ "64adff5211c520e76cfa93",
-+ "621edd8ea6ff7136526540",
-+ "7f8ad9957e40808881a192",
-+ "76c881f1a372f21e829095",
-+ "5027d58d8950e307548d14",
-+ "122225a7053b175027361a",
-+ "627a4795d0c0df1d84d13a",
-+ "4a5333a5e1c04b8bdfa257",
-+ "4555d38c19f123cccb6fb4",
-+ "bf09d6ff46adc21d04951",
-+ "bfe2f259223ccddac13b3",
-+ "4167a3ca5253556f128ea6",
-+ "1d3c95c9d8462d4c467220",
-+ "48e1272ba911cad7536a1",
-+ "59b759ca3a67e4725b5f84",
-+ "53cc3acdd810a96c3160cb",
-+ "6abf077f6636ceee313734",
-+ "226c7c98f219b40ea94b66",
-+ "54dcbbc689dad12df77730",
-+ "5abf04c6f95d64b6c414",
-+ "50774e378282fd09459eb4",
-+ "66895605da5092de3d2b87",
-+ "3bb5af245e5d40c6fc15e3",
-+ "6e388c53aaae7d287eebd5",
-+ "446d6309025414bad0aee1",
-+ "6a40f14b7a50eeca571bae",
-+ "6d925493d403647cc0a7ba",
-+ "73f933fe401d564be0efd3",
-+ "15aba357d612d87099180d",
-+ "5c20428f433fbf0c9ab374",
-+ "4871087f3b2cd3c0f24c3e",
-+ "4eea383bfa391bcb14540",
-+ "658769c97f8b8945ac2878",
-+ "4a05e03567ac78048832e8",
-+ "5e4b991cdcf27f65105596",
-+ "32e5746a212d6238682c00",
-+ "26436c96779bbae9c15fae",
-+ "290cc13b5edc05d863546",
-+ "69714524521e343bc3692d",
-+ "3ecd876c819b78567f7fa4",
-+ "2abf897aba93d347d6e2db",
-+ "62f83959d672cbfe7201a",
-+ "1a54e98271fd5720e1bc63",
-+ "2029341ddfdbd9f668612",
-+ "572930c1df7ba238dfc9cd",
-+ "1b71574f7c567d707d0e82",
-+ "509b53b07e607cbcf6e79b",
-+ "682583fe078ff76c962922",
-+ "2f0c8ecc959b7521936666",
-+ "621bfd4a39ee713781e554",
-+ "3712172b56577089f4c773",
-+ "208fb7a4ffec7d8d1e5be6",
-+ "1a5e08fda45015af7feba5",
-+ "172bc617da9e1aa348e114",
-+ "427af6fbf5578c6104b255",
-+ "522de20b2431d6ac8f42fb",
-+ "6ee2946ba009641ad73037",
-+ "73e027017f2dbdbc204a16",
-+ "3d88de9f1c15bfd7b6363b",
-+ "36c8b1aaf274cca356ae2f",
-+ "e050d10f9ab1681fbdc06",
-+ "3cd72e80ffad615f09526a",
-+ "2b913687a118d5d595277b",
-+ "22af1fffca9aa4b2ba234a",
-+ "7b4ac8e7f9ffbf17f0627f",
-+ "57d57f4721fb6be3b38e99",
-+ "c98c97ab7b4b0cb756894",
-+ "2248d63b93978222916f1b",
-+ "53528c9bfa6f5405d66497",
-+ "5e45b3a532e82a603df12b",
-+ "6799fa1f9cffb381bd6c8c",
-+ "5097857cdd82d2df144dda",
-+ "4f540ba10fdacad19fee6f",
-+ "15891c14bba25257cb14ef",
-+ "eb947683c26db8dac2f36",
-+ "6b497ffe240d0867d5d7ef",
-+ "2beed154412bd52cf1c83c",
-+ "39824b01dda7b8ada90cc2",
-+ "5afcdfdab7a5b6864efc6d",
-+ "743eb61998341a5e892884",
-+ "745ca85c76435eb7ba81ad",
-+ "4b223517b6c7cd85cb43d1",
-+ "51e8f647af3880d2b77ccd",
-+ "6a24f8897d3040e8fb1da8",
-+ "57f40a819546afc89fc2ce",
-+ "6b0dc0d5521d21af0ccaf4",
-+ "282f326b1fcbfb463ba836",
-+ "4d7d33eaba361883277544",
-+ "298af75c2d584b01ccc6a6",
-+ "692752e677cdaba7d636c2",
-+ "277575523998439f834d3",
-+ "1aee70e483c99574480349",
-+ "18991d6f38c445ab4b38f1",
-+ "5552617d9eaca45155f490",
-+ "3459971422155f9703c78c",
-+ "40678fa2d309cb9417f68f",
-+ "2be59650bf9aa57c249937",
-+ "5ea38165e28694c8629ccb",
-+ "3e6265ca213c1a0be64512",
-+ "69c96f5702ae4eecc6f341",
-+ "62e9a332653e1b103db5cf",
-+ "62870c281778214067b40e",
-+ "14bde3f9984cc98dc83f60",
-+ "5338be8d9f87d3f2e46b2e",
-+ "5e7785eebda5c8e2f0247b",
-+ "24183bf26908368eb41547",
-+ "51f9e6d75a3c5264312643",
-+ "4c67268f528ba7e8c34a0",
-+ "708324dd5e787ea3d43a21",
-+ "75b09479e265b9f0ac9a5b",
-+ "7972b4774882051f2d85a4",
-+ "31be6678e513813e0e676c",
-+ "170a54e825e33a2265d3cb",
-+ "66fecdf77d13ff6c0b25a4",
-+ "923121ae3af782c934df4",
-+ "473c4bff7362fbbd2049ff",
-+ "61249154ca21ee2b75deb1",
-+ "23ac86fba80f09945d51d2",
-+ "19b52abcac8b60d5349efc",
-+ "3a9c7a7d5782f84fd4620f",
-+ "674fde01f6057423c31a9a",
-+ "5533d7d78826353c79c73e",
-+ "42e88e9f66659afa2a393",
-+ "18e83fe885c9bab518bb97",
-+ "1ccb03c008f2e822848880",
-+ "3665e544d5ec7ed8868a1b",
-+ "6b25a8073bc36b2af4c2b1",
-+ "7b5ec7e3346c3cb243b356",
-+ "34b484cdb4cebe6aff839",
-+ "260d3af59b4f3d5c208bbf",
-+ "3d946cf498fbed2d965f70",
-+ "4755035ba4d9924118903c",
-+ "4a29c3e62c947a4a1e99b9",
-+ "4edfb060e1dacbd449d726",
-+ "29f1e17550354ceae49f99",
-+ "247f391e5a3b234cf19ccc",
-+ "7e2be12d72782db9e725dd",
-+ "47d8e4eb9811f9d409ea40",
-+ "5488a723f6ba5cf9800543",
-+ "304cc216ed2272d07c7f80",
-+ "3292c0c9fda6887e4ad161",
-+ "24af65fef90e2f99e03cae",
-+ "2c250894e17e7f4b0dd",
-+ "77a73ba77b4ed622a17e87",
-+ "f36396be6cc745bba9473",
-+ "683a5c6214b92efde4aafb",
-+ "55247bc5a72b8d3e89234b",
-+ "6747e95b215a546a339b7",
-+ "178fa57d907fddb0fe3cca",
-+ "748df460f8594e0bf1ab20",
-+ "3b409dc537f82b36a0b80a",
-+ "69150cde40be119caa92bb",
-+ "48ef84f7c351ecdc951b2d",
-+ "4e162f9f85bd081abd7380",
-+ "32dc0a137f654afa8bd8fc",
-+ "6f59efef27dbd92df6f652",
-+ "645d789e2ca881eb3474c9",
-+ "73a88b6c78ebe25a0f02da",
-+ "3501255a6a3473cf6ac042",
-+ "4026f1042b0f5b1e940a78",
-+ "364b7fe165d59b5d916e2f",
-+ "daa197fa1e9b3068f7333",
-+ "1d51d9201dd8c5066bb7d1",
-+ "1e7a055357b6580f4a7b9",
-+ "6f33938b3b060336c57082",
-+ "6ad4c1af807487676eed8c",
-+ "6a5c41dd17f1f090be79f9",
-+ "2b1a4dba7447b02833bcc5",
-+ "1a939b8af79d6b9d1e57e0",
-+ "339fe9b069fdcbe6f3e985",
-+ "55e838d685f75c7c6b5f20",
-+ "38102211c805f10960d5ba",
-+ "6f9024d8cdd8d69ef10bf7",
-+ "2db5ff229cb2d0a85b8393",
-+ "7e1946c78347049b735318",
-+ "5a2d6c9f89fb24cf28d1b3",
-+ "7d5f8fcc1cf99dc3131c84",
-+ "68719eec758c692aaaddb3",
-+ "a5582fe7b241700d09fbc",
-+ "3de183e6b991f7b8085160",
-+ "cd47f8baa501aac7b0989",
-+ "658a9098281c199cd165fd",
-+ "476085adcac943f7253ad3",
-+ "45f39b8c67c74dfb911f44",
-+ "3cb90317e0fd78744bd72b",
-+ "509c14f0517edd55968bc1",
-+ "7a6cf71a247a9aa2ad1f3d",
-+ "594ab65a623ca11a1d847f",
-+ "32765eba5563b5336b4375",
-+ "e4ce3641fd893553aeebb",
-+ "e73b5b515611f25e496d1",
-+ "ddd508394009eefde3ac7",
-+ "b4aa58f86a462da2ed07",
-+ "4d562b2b0bde307c0edc87",
-+ "2c30e99c7b2606982311b7",
-+ "3a997ef0ad242391b526f9",
-+ "4f754c5d3b280b20bc95d0",
-+ "375f02bea7dda994d93044",
-+ "5bd335a49bc5a06867e5e1",
-+ "63d746c096cfab5f984c70",
-+ "25d324d633986f4baae0fd",
-+ "2175a06a641d5e8ad33646",
-+ "403c1a7f2d528ab5d343b9",
-+ "1429ba4cc3fbeac84cae7b",
-+ "4fe62d365b58ffaa0d2201",
-+ "6bd057cf4845772f81f71e",
-+ "38dd92596a9fd54920876d",
-+ "ffbb4d4d7cd961d36be9b",
-+ "3910da787142c54f4f9b2f",
-+ "2a843c02b5e59799422e65",
-+ "4f459e6fecc9cadb8e977",
-+ "374bc74be1e4381a79910f",
-+ "4656a2b830782828314373",
-+ "583e484be506b8efea96b4",
-+ "36d97c131b997ecd7866ef",
-+ "40066cef89d0c82982356c",
-+ "3301553132b8af815a8ed7",
-+ "475c6525a253fe4a455211",
-+ "7215cad82f761314bbdd1e",
-+ "784f7b46f80b03fd06242c",
-+ "2fc0729bbc7485664f21f9",
-+ "62658893411360a21b6bfa",
-+ "775ff949792463791cf8ab",
-+ "6bbcfc26c4e8fa7b836095",
-+ "14a9e816ead24aab2e6645",
-+ "6467af1a0f07013b2e9849",
-+ "5f019291ccdeabcd687ce5",
-+ "2311c97b29ff503887b251",
-+ "623f56668cc8a093bdba7e",
-+ "3b890cc2ea1882c16138ef",
-+ "6e0d3cb0378f9f523dd7ca",
-+ "e50ab5db695f894b26597",
-+ "500de5789e46431a14b08d",
-+ "74a3895c1173d1100e060",
-+ "28c70cf1a34bf4b12fc1a1",
-+ "260202888a368af1bf27f0",
-+ "49f6551bb5a630f7f3a91",
-+ "35984ab233bfbbdc2149d0",
-+ "7715808f58e52b93fbd9f4",
-+ "7a35b4347e2b2fcfef4e8a",
-+ "696a995b7f1bd2337f9c55",
-+ "765220bfddbe009c12884",
-+ "6c4e919619ba3e8fcc083f",
-+ "6908cd3a0537e6d9de224b",
-+ "8cecd81b395199379b860",
-+ "73475afc8917dfb47ca158",
-+ "671133a56bfab71842e1aa",
-+ "4356f96a535f02cd557790",
-+ "d73559f9e34900d6994e0",
-+ "4299b7c55998b524a2963e",
-+ "6df756715e22975feac139",
-+ "2e795b59317cae4c039946",
-+ "638a87cbb628cc2744b5a",
-+ "2d0786ef10819221e8e925",
-+ "285121b3579e1afaecea17",
-+ "f0daaf67c2422477284d4",
-+ "df5585842155fda65c5ad",
-+ "41824effd56ee95a25ffcf",
-+ "5a2e3e7ac883c32720fb5f",
-+ "786bd6b0d956c71e3d0c41",
-+ "2dd9e647cd7caac396218d",
-+ "32267a0d010a3ac60d956b",
-+ "3bd14b5c954fd788df3e2f",
-+ "55d4eceed6862d8b7edf73",
-+ "32bc07a00fc1c32e790cff",
-+ "e16e90086dfb42533696c",
-+ "58f251e3a335055f8d1702",
-+ "45d0bbd0c4c565d517f4d9",
-+ "47cb5e48534f0fa269ac37",
-+ "23591be47ead61c7626094",
-+ "4e9b8b836aefbcc76074a3",
-+ "7499dfe49d22092ecbaacd",
-+ "422c99318e0e012bdf3cdb",
-+ "6dbec10ac45803905232cc",
-+ "5f091c9040f8e8b4af8c6a",
-+ "49dd9e128368a6e8f31565",
-+ "631d5fa433132c920e949d",
-+ "4a728ba1f43b41e3c8ba7b",
-+ "5de44a501f899626f11ecb",
-+ "1db2b63fb5b72bd2913b9b",
-+ "75c3040748861ea4157368",
-+ "5714f7d7bb3f12d88adae1",
-+ "3382f247e6cbcf48a8be0c",
-+ "436134e757c46fe077e8fd",
-+ "ca5fc0de7c8f0742fa11a",
-+ "324b0e59fd313b7b066991",
-+ "fca82540d3cb37cfe38de",
-+ "71310c65e10b4b2e1f3924",
-+ "53034f778656513538ce93",
-+ "6e8a28f3d3f87aa2548dbc",
-+ "792ab4b2a318b2229df59",
-+ "700ac125ecd365c309339c",
-+ "d7315bcace04536b59c5c",
-+ "5f9fe5fab5062ae9d40550",
-+ "7ed8ee73ca5507f25bd5aa",
-+ "6247c20f5e97453bb71b09",
-+ "463e980411d809a1713383",
-+ "546f06ab10360a76005c9e",
-+ "1c0a01fb60b92af636be29",
-+ "a5385b7f7d2a505f37187",
-+ "296401a6101dec9b48a81a",
-+ "38aece2fe0c1923c569603",
-+ "e966e5d5e80ac9dc377a2",
-+ "7eaf3d6220ab7c049341fb",
-+ "1a01c5dd382ca52c0f8a1a",
-+ "68ab0ae55863c4f8044101",
-+ "75b29426909e9c8294f365",
-+ "39fc8d30c95dd0494e9be3",
-+ "3c234bbaf5da9465f9498e",
-+ "7ef05035c2a08e050870e7",
-+ "7e880bc1729d1783a14627",
-+ "3df3e3ff8b5241f9f120b6",
-+ "61c60fa253a8977e213d6c",
-+ "dcb3217133998c35879b7",
-+ "19e87845fee8ee9d86794a",
-+ "1b8c24041b5c09c2ff1c0f",
-+ "1d4d18f2bee14ee417596c",
-+ "5197b486ae5dad9284702a",
-+ "7a4b513ca25dc5d887768d",
-+ "2e1d98165a5897b1482cbe",
-+ "494c96ddeebc9c314fa5db",
-+ "29785bd232aa4bcde009aa",
-+ "42d71e3ed0639f1b07231a",
-+ "1439532a6d3fdff49361fa",
-+ "8c59c1948361c413eed8f",
-+ "2c9401cd53725f84e2c421",
-+ "5eb9037bc76a6930985737",
-+ "6d5d0573b2f9596b50b73b",
-+ "36121cc69943c0f23f8a85",
-+ "308787b80145ee403c389d",
-+ "74d978e8d6a9ce6def9aa3",
-+ "34242d89a6cc1d4e30fa9e",
-+ "6106124e06a73207e84629",
-+ "1174d8cdaeecfc5b7908d0",
-+ "49f7df71bb684bf5a54c61",
-+ "53b453f5f30f900af808e3",
-+ "7b4210ea990dbb2b80bb4",
-+ "232c5e33740871b389c8ba",
-+ "3e748cccf5c4b2e587b8b2",
-+ "2078bac214b712936de507",
-+ "426ece55a7fd1d858414a0",
-+ "1eac63084c7797618dd9f7",
-+ "59fdecdacfa91d60fd391e",
-+ "589758587c26455b22331e",
-+ "19e1cce82f85eff6f6b24",
-+ "16d83b4ed79a537102c236",
-+ "4ad2dfbccfebf4c881dcf6",
-+ "1851d531ca021ad6f2b572",
-+ "1c85ed9416af845bb8e82",
-+ "5cf912fba9a563060d7b3f",
-+ "14c7f40a28e01adc5ae1b4",
-+ "15131878551adae4b04c53",
-+ "ddf6be61ce9c04533277",
-+ "48938572f05f540b474485",
-+ "465d9407cc9bc6456e974d",
-+ "1df3eb49ffac499fc5f3b6",
-+ "7e698a24ee9aa726fc4b0b",
-+ "53e99cd5ced120123b808f",
-+ "66ba97928f262067fec230",
-+ "1d1b1bb20ae40ee8d35505",
-+ "22cd6c35ab2195c56794f9",
-+ "1ef2f8aa8266e26254215a",
-+ "14da7875e13efd461f7c10",
-+ "22d6cba0f681e23fc64382",
-+ "682b3c7ed60ad7c985a3a",
-+ "244d1131736a5aea351d17",
-+ "3ae16fb3fb77d48c6adcc3",
-+ "3253e31b47819fbcec75b4",
-+ "507a6d1fd108a63234b38f",
-+ "3e2cbdf24bd5900348312",
-+ "34f2e009d684c876c246fb",
-+ "bb247081da09643c00d36",
-+ "32a426cd7460f9e5c5e7",
-+ "48082cdc2a40ccd11ae434",
-+ "1d616376b444140f9acd68",
-+ "72bd80f062eb130b42b044",
-+ "e1e55a565534c74a109fc",
-+ "49e01d719bf13fd52369ee",
-+ "2ae496e8d9399061460619",
-+ "7adc118469443d4f7084b2",
-+ "7ad19421f012d132850842",
-+ "45b5b538c44c73f3bf515f",
-+ "5f8307f0589178f70f7238",
-+ "54018c8917549d050c00a8",
-+ "4700bc9de4804ec44122f",
-+ "d922a909e3b3afea5fe08",
-+ "46ea38e0c4bb849b39baee",
-+ "7b87e87e1438c6126ab1cc",
-+ "499667b1e22348ac584789",
-+ "137f8e05276cc8f9180095",
-+ "5accf03c1a20af1120832d",
-+ "4e94399e1765146189df5b",
-+ "55fca6cb45a0501d1c50ba",
-+ "2ea5fa6c2e19e6ee7add96",
-+ "d8e9fae4ec5d3e7913712",
-+ "767f863c9bfc5fd6540f44",
-+ "477273c36a749543489547",
-+ "4265efdcec74f163498291",
-+ "43f53558dbb8a25ad757e",
-+ "7b5d99de82bacb33af7ee8",
-+ "1d4515e4768ff5c6b4178f",
-+ "2057d9029cad07c3d344a3",
-+ "e419f0eced24d03400fbc",
-+ "2e30617b0abeb387001867",
-+ "603f9b3bc6733094104e23",
-+ "fa6bb9b4b92165346e0ff",
-+ "321ccac2ccfd73a0b28c6d",
-+ "6af9f591969edf6d33a899",
-+ "5ebda7b44a30093e22fee3",
-+ "150cbeb75257f8eed7903",
-+ "1b0dfe5bf791bf4d645e64",
-+ "5286bfcb1951cdb460fbe5",
-+ "29ca62a9234f915c5c9715",
-+ "3629587577ea6cd990a3d3",
-+ "4d3d6fd7781e8ff3322226",
-+ "7377f9449fdfa779330064",
-+ "7f3f1310b0770a6a8ab4e6",
-+ "74f8ea2aa01f3e122e9ec6",
-+ "74aed20fd8f19001dab562",
-+ "7a9c1df7aec04dc00e3584",
-+ "2b3dba5edc89810815d1ce",
-+ "217c2392122f9868740137",
-+ "43ac29ece073be2a30ce86",
-+ "4b6b8f4e6118573075d4ce",
-+ "3cd3f5ea5623ce969c863a",
-+ "421de31b9083741c4d4c48",
-+ "1960ca77285b35812422e2",
-+ "7d40cdfed339cab397652f",
-+ "51a001a64a22c7bc0db3ea",
-+ "1fe4c7d7da3eaeaae25e65",
-+ "720179be8f54eb5c778be",
-+ "1144f2116d6e426f3addec",
-+ "10ad00e38092458e73fe4f",
-+ "72e90ac5d748fbd2d7aadd",
-+ "18250945b23b28bdd1208a",
-+ "dee72e6d522c55b461f4b",
-+ "1e31c413e16722caeb814",
-+ "5ccfa76193ddbc64186a30",
-+ "5eb2b60c1d97e4dcdb09d3",
-+ "7f31009d8b384ea51f9235",
-+ "7118c95246463e79fab7c6",
-+ "2af1b36e871a2152d87ea3",
-+ "1ae4174a64ea29d65c88b7",
-+ "1aa4bb2c56ddce8ebceb39",
-+ "65773487e5415b58fb205a",
-+ "5adfc7a0a78f6657a5960",
-+ "3d5e0686efab87e5e7c266",
-+ "6552488fb7e68b138c5691",
-+ "69cb489051468dc8b7a10d",
-+ "2885d88c14361dbedb4fb1",
-+ "17f8a55fef5d58503cdf89",
-+ "71a2dd2f4561ce6b25cc84",
-+ "173ef6d2228315e7fc8577",
-+ "6095ebe0914ab346aaab52",
-+ "1246f9f5df870b21bcb1e6",
-+ "5e53c14166e301e45a1c84",
-+ "3a1984f88834905315728d",
-+ "4678975ad8ef4ef63ed234",
-+ "139a5be9fe5d74b7b324f6",
-+ "4057d3883ee10c31d0c5f9",
-+ "5de657154513d33b2dbb32",
-+ "7da4d79cdf3d83f0763c79",
-+ "7399c1866bdfc2ee9d0ba4",
-+ "48cdee08fb7cd0c828eec2",
-+ "4c099f907df9db8a25350c",
-+ "851fa3652b44e57d9190b",
-+ "d0d6f30615b8f231bece9",
-+ "5f305f39404231a1ce6591",
-+ "47b5376a6bf9ae1b5420d0",
-+ "55925c1c09bda33b3d0e7c",
-+ "4aa62ab8f33741774c11af",
-+ "cebc8496358956c6ed352",
-+ "4e0f2086acba831702db59",
-+ "2103ca88adecbfdd3370",
-+ "5b917d89029b0850efbfd7",
-+ "619fb115b590487fbaece5",
-+ "709f8b4e1e81f78ecdd5bb",
-+ "5c6ce5b29bafc437eda5ce",
-+ "1c6a5fca595a1ff62b0a7b",
-+ "5c246c8d9baad4092bd7a9",
-+ "2f1ba6fd01e5cf713f7991",
-+ "3d17d279ec6a81f53cd4f8",
-+ "42af59edeafb6c79b9d208",
-+ "7e0f7a6620c31d72d9d568",
-+ "68d1c5df4d9653be9c8e7b",
-+ "79db0961906e2d46b0b349",
-+ "4c4fa3875e78671bc1d2bc",
-+ "22a17bb1e02873c944cbe3",
-+ "25e4a83dfc2f633765d96b",
-+ "8a4219421d2f55bef801a",
-+ "341ee0e329f6ab9da76c4a",
-+ "28eaec99940a1b1f563841",
-+ "4f1b7b04b31a6d85748c8e",
-+ "1152ee1f6c91b44b1faa20",
-+ "6b4aa7c57cecc522b32c99",
-+ "49e219e4b19fa82e3cdd8d",
-+ "5bc9b4c686de112404ccc3",
-+ "40d9ddb7d82d86fe4dc6d7",
-+ "6b85f2803d97e818e2e527",
-+ "321405882a2a0c05f7907b",
-+ "60749c3a015660029dacb9",
-+ "26240f3e8816b599bb01c6",
-+ "1a91a4ef4625f7ae911f1d",
-+ "18704740809cbd3a91bcc8",
-+ "532d2ff2bd9d0ca8b344ee",
-+ "18488f368798b8734164ca",
-+ "7453e07405f19cfba93c17",
-+ "3cfc7a65b66e9f8c6f8cbd",
-+ "4dde9b7ed5a96934e4dd51",
-+ "7afeb7314079bb05948a57",
-+ "2f4c8ebd42ef359c5ac79b",
-+ "2579cde0e8d37e04167a12",
-+ "368d20177281b04fd8018f",
-+ "4553e500c491eb2ced6e1a",
-+ "12a8a0e9fe6ba5c3656149",
-+ "13d6f0fac0c0b9cd891715",
-+ "cfbfcb607ba616c016fef",
-+ "522bb592e89a78b316244d",
-+ "2db6d4b5b7a928883df97f",
-+ "928d2a95f60dac2e280f3",
-+ "15b79d2a607e674b1df02c",
-+ "711d3de6506cffb89d82c0",
-+ "1fab75ef67bec61a68a277",
-+ "3dc7ec06146d405216b267",
-+ "15c08724b1daf7a590d087",
-+ "75c2ce5e2535ac7878196c",
-+ "63dbff9398c6d2cafd1418",
-+ "245003f901ae0a356365b5",
-+ "10b57d68a8cfe14ef3ca7c",
-+ "5fdc8856cd703470a1e5a4",
-+ "1af9124bffaade4351e990",
-+ "5f72010436c71470f190d9",
-+ "50755ca653aac70b84b12a",
-+ "14c9d693e42997dbc96df3",
-+ "7a93c6e177d746f5eb503",
-+ "28d70ec040ec983aded5c7",
-+ "124c113e25b1a8153a830d",
-+ "2df0f496cddcc699504250",
-+ "5dab9e18ce0b8340db40a2",
-+ "6a410e486ad693817f9d31",
-+ "5e82dce0d15b40d73e81bd",
-+ "4e1b51392bd1ad38a51d00",
-+ "69efc15f2bab10979940b4",
-+ "4bb8f4e111d078e3c54590",
-+ "22e8d9bc34a96264dd4caa",
-+ "3a7c703f2642b17eba0c69",
-+ "2df2bed0dd9ba405c8c5ce",
-+ "222dacddb6e77241cadac8",
-+ "4c996629390ea0954eeb1f",
-+ "37c7b0fc4e875134c29246",
-+ "4a78cbf6bef93b38948e09",
-+ "6c8fa526a6bdbce9f7b832",
-+ "7633f58adb014bb5585678",
-+ "509ea21b16907067d06b82",
-+ "30a8e1972ee45f3e0613d5",
-+ "63839ba9cca448dd7fecff",
-+ "290fe0ae5a419909be4e2b",
-+ "35dbe95730bed0669969ad",
-+ "2a6c238cf5c57a2939882f",
-+ "f9d7db7493258ceea1a37",
-+ "36ded179138f0e4cdf1ee7",
-+ "4996f8a3f7c2c5fac02813",
-+ "39bbee3cab035e7fc68b3",
-+ "741dd990ea20591fd9b5ff",
-+ "16eeff7e87d3caf8e58a92",
-+ "2c8f1060dc661c38044a5b",
-+ "3d886ee05f1bcf69fa4f70",
-+ "392d9ae31bf22e0236e198",
-+ "1a7c7fe62effcf2d1a2cb5",
-+ "65172c59adde7fa1aa62e",
-+ "389d1e8a26db35e20882fb",
-+ "7dd9082b6f5562b8d6ba91",
-+ "18c5643eccf2173f575420",
-+ "757f2101d664083b2fe8c9",
-+ "66e9cba0e526f30b7b9b8f",
-+ "6c33a3a058504d48c17efb",
-+ "1a908fcb6be810a9e1e92a",
-+ "2df246fe147cf6a7d9ed5f",
-+ "3dac1d8f9e9cf46cc42204",
-+ "3cfed079405fd41004c118",
-+ "7aeadbfb750a598afce6ac",
-+ "485bb888b6979f8f201fb8",
-+ "460858d1e253129bf64e5b",
-+ "3567cd9077f5bb1d3115a3",
-+ "28b06a5b8a2319d5d78e37",
-+ "5c3df551863d0055925c95",
-+ "260985f3992a168bc7fb3b",
-+ "5a00aa930e50101d3ad458",
-+ "3e41b8ea3309221756df7b",
-+ "216b9b04319fd8da8a6d3b",
-+ "24a843ed6770d822f92be9",
-+ "60e3811062f0661e25f626",
-+ "656a55d45a93fac53881ab",
-+ "10f7a570b959918609b06f",
-+ "d755ece5c8fed1e833d4b",
-+ "5eb96063b604b2d052b457",
-+ "182ed4a29e8be479e40c89",
-+ "55e542cd768eaa4ab7eb43",
-+ "4a1404c02a58e6862d11f5",
-+ "4366b19aa12542a30c1749",
-+ "74a0eb9dfa780e171aa5bc",
-+ "7b34f38b9d16f0d70ddae4",
-+ "1f75d643fbc4ab52296f51",
-+ "1cc8bac063e7f4722cc83d",
-+ "1f1cae187cb4e7e2d75ff5",
-+ "6acdbbcb1d87bb33b845b0",
-+ "5a67c62d60522486e9cab9",
-+ "66727c69de089e222307ae",
-+ "7dde8d7ccd2cebd1d4b943",
-+ "3732911ea3b78b2cc54de2",
-+ "69b04bfb64dc28afc90f3",
-+ "49a34db8369186ccd3e18b",
-+ "3087f959a9893769198248",
-+ "766ac65aedf40f90341249",
-+ "3c8b578aed4234d875a143",
-+ "7248daa035ed0c83c2d007",
-+ "35d310b1c9f92e46c5dccd",
-+ "747c7a13b706fb28e46c47",
-+ "e2d9cdfcde324e23eda21",
-+ "607776583fcde0ad8e4c87",
-+ "2133efe27b28c873f101f",
-+ "6ad95985d0ab8e8d823145",
-+ "35d6d7bb2855d9adfbf650",
-+ "7a123babe2e7abafbaf8e7",
-+ "3b0cb59bddc94e18233703",
-+ "77815256a969cddb479be9",
-+ "9c6c4ea9b05d327c6b7f3",
-+ "55137101093be9fb51857e",
-+ "59bb325b9748e94acb6630",
-+ "328bf9a8c78ea2ca3388be",
-+ "6ee757629a9b68ac7e690f",
-+ "59efda7d6a6d8e6aaaba46",
-+ "6ce70c288bc2711b1b024f",
-+ "4ed7cbd3e32dee7a40c626",
-+ "a9753c820825d73c04548",
-+ "741d91860d83d000328e76",
-+ "59aa03a25735023ef97395",
-+ "1cc96ab6764758e9cff09d",
-+ "50e22c6cf5d6b70def807b",
-+ "76f42929010d1ca7619b42",
-+ "18a6b71998f6f84fd5d814",
-+ "5fda42ececb40f359e4f0b",
-+ "2f62056d547ebf7995c6e6",
-+ "23966403e567312c7a8379",
-+ "6b7e91fb5948662e3961e3",
-+ "1e6874a8b307092ad6e72b",
-+ "31dfcfe645b46b329ee2a1",
-+ "209910d1159692421526c",
-+ "3c4374002a4b05edbee285",
-+ "6df855d5b158377d521892",
-+ "4169ab1c6bf3f0abec6c34",
-+ "359b331d03b9cc2451c1f8",
-+ "3c7a2b6b58424eab86f3b4",
-+ "7242e44696c19a3a1910b7",
-+ "2a7311c640e7cf0ecc141",
-+ "7933956672bf2e4535ee34",
-+ "455927f484bb8820a2ccf7",
-+ "551ec7c1ae7ed078f940c0",
-+ "6ef800332004d6cda26cdc",
-+ "7630fa097aa2bf97cef6b9",
-+ "490db50fd1ace7e8ec15ae",
-+ "32f5fb93813b0abef00c9a",
-+ "44e6ec408ba05ad98e759",
-+ "568f3917922fe83ad3e225",
-+ "273beeddd87cbae01c207f",
-+ "1a8ed7cad7bcfca4620120",
-+ "6c362e17e2173449bde86a",
-+ "191da9b869e973d2fdfea7",
-+ "64666abc6a9a2f6a1c7575",
-+ "3c31433d0db703e03c294d",
-+ "1e74e23fb34c50dc055d0",
-+ "59652c3042e742dab07904",
-+ "50e46147373113c54d73c2",
-+ "776ff8d5492c149f7acf17",
-+ "318d2300370d914ed1483a",
-+ "e24946eda2a54a4c98b6e",
-+ "28434971e0ad86e87340b6",
-+ "b7602abf832a9540b03b8",
-+ "3a2bc2968347afc3827c67",
-+ "5fde1fcd656f65c682e01e",
-+ "113149ff5647e02c5d8e8c",
-+ "329c1979af2fa92b25335f",
-+ "7de8764ca6a43c99d6a50f",
-+ "7e68cfb951ae556b15fa1",
-+ "5cac3c06df31850ad70694",
-+ "357eab1d6b7f6618503b3c",
-+ "4e66ba0bc1058a3931042b",
-+ "65f33a2872e25c8a682f06",
-+ "a5d62acbaf68c52001a4b",
-+ "18f39bb607de6b1ad183e4",
-+ "16870479234b3337ddc8c9",
-+ "7093b250c7b04c2c6d567c",
-+ "3820d1fc1eab75e925dc43",
-+ "49ddb3e956e6fd8d65e1ed",
-+ "7544304d1b3c2594fef689",
-+ "60483a9742002ed4918cd1",
-+ "809a8bacccc204134381c",
-+ "177aa9fd51aa698c4f5d25",
-+ "2848634cb8eba43423c432",
-+ "2bd0c39ecff8d002f3a3f7",
-+ "2bc7683658e815b0850ae",
-+ "56d7ace10d6e046f35bc1e",
-+ "1cf7470aa8bed908f93c32",
-+ "44885049137a26d9ff4438",
-+ "46436019c4b35e76ea4182",
-+ "6b4ed91c3f4f0b25252206",
-+ "1cb50b0700a11348f864c6",
-+ "26c603e605263eb37ee858",
-+ "734cae170e5d7d8758c509",
-+ "3e00e41664141664f70d8e",
-+ "4d36c683652009a273c69c",
-+ "61e21b9a255226ab8a9c03",
-+ "66db9685c97e1039f97191",
-+ "41ebedf12db1451af99b12",
-+ "5640578c9a2f674c097c8a",
-+ "37526cf6c350fc29ecf559",
-+ "6e93c69a7627e1f9832a61",
-+ "3aaf5736ed929c1ed0ab93",
-+ "42cda11218a2f5a8d7bd1f",
-+ "ea04fd9db78a21c39b6a5",
-+ "53e3092b891267552e8471",
-+ "3e13e95a38da382cdac574",
-+ "7d59312cf551555c728152",
-+ "57b341376c8eeb5e957326",
-+ "2fb62f0a2e9435830411",
-+ "6131db76263e902f303f6e",
-+ "5e7e83070de3b07a4bc87",
-+ "54765bab6ab2b394d9dee1",
-+ "3b4ae8aa403abef29b052b",
-+ "4e1bc7c2f29a2f520bcf7d",
-+ "50bb1918112bad3e57d523",
-+ "3979e2b3d54a21e7e8c1cf",
-+ "4f3fe475424626758ebe24",
-+ "26c45bee1cb7e300fef593",
-+ "20866732367b425f7e5ad1",
-+ "4779c6f70cb71f00e32d17",
-+ "24dc2302a4b77b85525bd",
-+ "f339d2f5ca33347ae8d13",
-+ "2e178e1cc4f997792ce1aa",
-+ "54728697bad28cd0bcc9f",
-+ "13413811d8a8e6bc2e6cf8",
-+ "1a3337bb0bc288bf44447e",
-+ "526d1eb936d1a3dec6eeb3",
-+ "7df75741d3ccafb28da8e",
-+ "6476d594392ef9fc9a3df1",
-+ "645cf2dd2735f1cbf53f1a",
-+ "780a2a5411b159d83dcb95",
-+ "562d8222a0b94f5af3137c",
-+ "e859d26ac6c854731c10d",
-+ "3908eb827c8209b96bc643",
-+ "61619bfea73d2a10c7a7e9",
-+ "cf2bf44fe6c433cc00c9",
-+ "17b5a764867bc2f176278",
-+ "667b77d58f7f6b14e19bc3",
-+ "14c79375686a30f4c21ea1",
-+ "57d421e876be8c87768c1a",
-+ "a49f38b3c0b7ca1fc5c10",
-+ "1998c4f90bb8b5465b7b1e",
-+ "974b1ea8fc3d4665ea11a",
-+ "4382f99dff4951a775fb77",
-+ "66b03ec137e6361ddf6317",
-+ "43f99aac41b05d58c624b4",
-+ "4efe7cc856d9eef4fda470",
-+ "35f48b300d21989b05560",
-+ "79ef58660a06bbc22f0cce",
-+ "5623f1c8e0d5c15938b2a1",
-+ "740e3fa0e998e741eb97cb",
-+ "4f6148f444b84dfe82ecb2",
-+ "34ce2df12c5e0970f682d1",
-+ "5fe5a0fcee7c061cf49e8d",
-+ "127dbd62073fb0c17b4217",
-+ "31b2ef6b5163160bdce290",
-+ "7f9a1f8e557617163d5e82",
-+ "3c5262912ab7e82ffd49c",
-+ "4ad5e4985caa0c7ee63b9f",
-+ "5267f1f68134d546ec646f",
-+ "7f695021b246db24a5113a",
-+ "11df54a696817409ff1164",
-+ "5549ebaa872068aae68ac5",
-+ "236e08f8411de38e44c3cd",
-+ "1892726d56d4f8f92dde20",
-+ "457d09be8a2a4c351b63ae",
-+ "53339d5a01f3d2e9bc8755",
-+ "ac5bf0492a63aa0bf597",
-+ "714ed5cb0027168be15142",
-+ "4cfaabac7104cbad2ed728",
-+ "486fd3ea0158f33daf767d",
-+ "61c0e0ff11a378274b395c",
-+ "5e195ccf98c9a4e1967fe1",
-+ "3eecfda3b4d92af2b7e5ae",
-+ "62af499c078af038905758",
-+ "38d987fd4b450ee5a69286",
-+ "5f9563c7ca70d6e5061bfa",
-+ "ad64cff4b4763a7fda09f",
-+ "26554ee3e9bedb1a3a09fd",
-+ "42c5d2d1082dd2375a4ef3",
-+ "7e05b7c7d54cfa1fc7b525",
-+ "118d29d91686683483dea8",
-+ "2c56fdcda56f78dcda9b60",
-+ "d92cf9efd7d12c62f0dfe",
-+ "11b77783f411c457cf909e",
-+ "2cd33d1f501e268643d591",
-+ "1ebddbaa72ad1a2b1cdc49",
-+ "73f4373aa0c46a1ae61409",
-+ "64b1dd5abc6713a8f53d0c",
-+ "3aef6b8ad8d4f116a27e4a",
-+ "13f9a309c929439a91df6c",
-+ "401a3ed45557939fa7eea",
-+ "1d1aa15ce7c8c15f051ba9",
-+ "398764fa3e177502af4d3b",
-+ "48edf77c0fc298b0491c2a",
-+ "1c5b7d2b84cbc7b29bf542",
-+ "78873bb7282961108e63a",
-+ "16ad879cfcd3e458301dc9",
-+ "28b06d6b1f993702509e4a",
-+ "45242101d43b276b34115c",
-+ "783d012e8b928ea14eaad8",
-+ "5afe15c1524eda9627e183",
-+ "42b636bc4126dddf74cb00",
-+ "5cd8f782abb8b60cbf36f8",
-+ "1c5d10301fcf4a14c82adb",
-+ "52d3cdd253b64a03c5885b",
-+ "31416a7f09913059dc251d",
-+ "46bafe88322c67f3b90507",
-+ "4cb6253df884020966d27b",
-+ "2948eda7d7c508918c3056",
-+ "543222604f067afa3e7558",
-+ "3ae99fca89d15abe091160",
-+ "140aa7412f6488f5404826",
-+ "16b6721ea95f55ef631d25",
-+ "133606f2fed41ffd77b999",
-+ "4d075c933e4b93da3a33d9",
-+ "4ed1311eae64f9e834ee7b",
-+ "f920b02af1e3bd673512e",
-+ "312518f9c1ce1e690c003d",
-+ "44bd0de2094b8b3759356",
-+ "3d40b56764f7765513d13",
-+ "6b5da25417070642e0ba4c",
-+ "6bd995ef31bcfd22d52d9f",
-+ "3eedab106a435ef32b9e48",
-+ "534c1a3b25194e8cd66e6c",
-+ "28a37e042abf70a7cb137d",
-+ "76fbf6732402bc76e061d1",
-+ "3b66491ccee4801a4e3673",
-+ "5ef7fbdbf498c8684625f6",
-+ "3305f9d7ac9bc35ded571d",
-+ "6aaafc0107575bd9b70723",
-+ "5eb217461cfa46d5694397",
-+ "7f5140ee63b60e0a33058a",
-+ "3fe61d12a0b09791925ccd",
-+ "591749051e47ee7b49cf82",
-+ "33440d7d3472a4b6e2f627",
-+ "4dedb1ba2a6a4abde67337",
-+ "30485371efc19b50bbafe6",
-+ "3566f7f67e026f0278dfd5",
-+ "201e678f30ea96fd17615f",
-+ "4a2580e03d81912089d88d",
-+ "68e88d3bc4e8d390ae4b13",
-+ "46986d0da7a2c17dd1dc22",
-+ "174fdf0bcfc8d0f4e77e83",
-+ "7a75be28b1e93e4e0c9342",
-+ "11081f4b8fb8f0a9abf772",
-+ "3245bbf080c6731fee74dc",
-+ "57bf13241507b812b9a904",
-+ "50c915d40aeb9e4ec78789",
-+ "530f4c391aa2b0938eb272",
-+ "4e0326164785519414d07e",
-+ "389d9fa841750626db108d",
-+ "5eec1e56c0a2d0e34dfc8a",
-+ "3e8986648fb4053520276a",
-+ "2db6e61499c9393946b57f",
-+ "1b2e283bc4ff40366c744f",
-+ "95d86ded4a7b26a1ad331",
-+ "4818fb8f958698b6e9c9d9",
-+ "21e39ab39cd96423900120",
-+ "27476789fbe89ef5fe00c0",
-+ "1b67e56d8c8f6656eac86d",
-+ "28e33efab89fb4f64d6498",
-+ "18eb41f414dd28e8ff3a1b",
-+ "4a648c611ef0b3b0e318e0",
-+ "3ab4982748b8f986192588",
-+ "1eacd91eb3938b38f0210f",
-+ "5227913634dbd4b19ffe95",
-+ "1d5b0385650d2d81754f72",
-+ "7351e32ddd53c7465f65e8",
-+ "202d04fcffa7e3a0ae0585",
-+ "6b77b6d06b93487730de2b",
-+ "2f635c018151dfffc38ed7",
-+ "7d83ba89b9f89b55497937",
-+ "d1c5eeefb8bb620c573fa",
-+ "322d1e939066766f918e43",
-+ "3ea29dc49c06d64c187862",
-+ "7f64ec3ee1d6fd7b5f9352",
-+ "749ebfb4005c94ed288c4",
-+ "6f3d0d822d1a27088df8e4",
-+ "17b1690a9c9f4fba9154e2",
-+ "142aa17e315b2096d3470c",
-+ "5778dc2f1465daeafbf88f",
-+ "3135a042ca5b8873367081",
-+ "26f3f960b2ba725c83b706",
-+ "156e3560db5a642c108333",
-+ "3adf2b6aaf40f5dcdffdf2",
-+ "4ecbf2559411992397d1ba",
-+ "5e3402a24a307a945167f7",
-+ "553a48facee35f17214327",
-+ "57c6f0c9d94e02524b4029",
-+ "44867f919f39bbc1ac8a53",
-+ "7b1e254e6050240b36eede",
-+ "7fb445fb34908201d41b44",
-+ "5a49a0430b2145ead2e9a5",
-+ "22d9fd1638450186756413",
-+ "60a177acbb4aeba955e6a6",
-+ "23a7a59b35972768b71627",
-+ "ea9789ae096da5bedc410",
-+ "38419b7c213432cd42f4bd",
-+ "4024c6847ce50a93fefd10",
-+ "1f15e66f6c5b160801ec4b",
-+ "26fb73843bff3e4d17aa10",
-+ "212d386743b2c2069ec4b7",
-+ "59377c70bed9cccb346cff",
-+ "5a80f23e82161bfd2caa8a",
-+ "21532161ecdbdaac15b68a",
-+ "5cd8f904c6a0e1c85597c4",
-+ "2ad8c773fcdf92009db9b6",
-+ "1df80784a603cde2e8573c",
-+ "41127c781a5dd07b6ea357",
-+ "6152b40d63a55e1ef6e750",
-+ "3161bea37fcc040c6f6494",
-+ "112bfdedc3401ff20ffcf6",
-+ "6a3afde1cc784aefb925c8",
-+ "47a38df2df7f516ac35f8d",
-+ "6dafdbef06e817ec42991d",
-+ "72059eace3671c76d67005",
-+ "a209dce8856336ebd97f2",
-+ "695d060b1aceccfdfa96c2",
-+ "17445a9a60b0dfca9df354",
-+ "249f5358017ada6567b747",
-+ "b7347a4820635a5852b61",
-+ "2bb74459adcd7029c9c35f",
-+ "3684bf3ee3a2b8635ca0e1",
-+ "600de685f1a4c2f4a236d9",
-+ "68ae7d3832d31bce57eaf3",
-+ "7a75b868e9fb50140bd203",
-+ "1105d3c71c59dedcb33f",
-+ "6234ffe0f938a25ce0f5a8",
-+ "41858e467a21a3938d60aa",
-+ "7332b41a9fe9dfbe59f71f",
-+ "313ef612f2fd65f39c2e3e",
-+ "49ce8855b52dfbb878b2d3",
-+ "46b1961304e45b428bd48",
-+ "1740e5e9a57a4e80eed5c8",
-+ "7f035a794c44a6a57abf00",
-+ "6eb090e9b1df79f4d2226",
-+ "7f26a6c99362d1126b6773",
-+ "14e47840962745e9f2bba8",
-+ "28670ba592cd5a2625df3d",
-+ "5c00c9ce80be32396ca075",
-+ "4cc8bba01b6788222eb375",
-+ "581f2a492a4fe468c3971b",
-+ "6aacfa3617f47dce14015a",
-+ "3988842f76572373c3459b",
-+ "3146d29fae3f74014572cf",
-+ "27216bcb23514df00030b1",
-+ "36baace22f2d7a2014dd1e",
-+ "20b11d38582bb81886466a",
-+ "5aa25b718982092494e872",
-+ "3f0eb0b9bdbbe37f40dc5f",
-+ "5c4dc3dd9138eb7169302d",
-+ "503bee64726b7b32815f44",
-+ "7175ce67c0c74c440327c2",
-+ "3fc3680285719ed4f7e7fe",
-+ "7fc9fec9506aa1a0661240",
-+ "122e1cf4ba920fb923d0e1",
-+ "5570385cc742f16a21edc9",
-+ "2a8b319bb90a064d3cc523",
-+ "797bc83e9789b064b51c92",
-+ "124aa58a7e2a882689ba12",
-+ "5ee825c795f457b727b9e8",
-+ "475c02da59260b083fa105",
-+ "5f427b13d8351db71dc75e",
-+ "7dca64fefd065e0893d874",
-+ "88658ceb2447416239af",
-+ "75ea3318a1054593eca8e6",
-+ "21b1555bb331b89f928e6d",
-+ "7e558ced95c8a49312174c",
-+ "71f02d980dd943488cbefc",
-+ "23e36a6e12831353ac1afd",
-+ "1073f10b92dd8a202017b2",
-+ "a0ac3885d2cb22aeb977f",
-+ "2ac1793993d045ec4ea0ab",
-+ "4e33cc0d26d44c2394c8d2",
-+ "5430c091f416778afc3f3e",
-+ "55f3bd5a345801aa67f91c",
-+ "18bd8096de042467441c8c",
-+ "1dfe68dd4d69d0d5368782",
-+ "a69b0e544c08336c9606b",
-+ "405224a222d42397ca18d2",
-+ "5ca40898d5d325e557e04e",
-+ "73e9dbd2873c27040a215d",
-+ "56efa25eac0d5f675af6b6",
-+ "460f5f98b19a4d353358fb",
-+ "28593d93a1a2159e16cc13",
-+ "1eae59f579b122f18b84d1",
-+ "7f29a05b16052f06eff50a",
-+ "2ac52045b3b592dfbeeaaa",
-+ "6003c83a8ae5ae42a0956a",
-+ "3af2323baa99fc6ef534e0",
-+ "b3a488e23273b8e74aa2e",
-+ "dde95ff1403621e1e9c39",
-+ "8b93e9e7ea54df6ea61e0",
-+ "382238b03129ae3a8cb2e2",
-+ "7be85a588e4f01b973f9a4",
-+ "3428c448a20f463714e16e",
-+ "46c829e7e1980bc26c13f9",
-+ "20573b178651610a410e89",
-+ "16c1a9b3bcba979d2fb250",
-+ "46bc67034da17d5b7c72cf",
-+ "abe7e5169767e92b8517c",
-+ "10a7cb0c646bfbfaf6b1db",
-+ "3e27d166777ab6af4a4b75",
-+ "560bc3397e1eecda48e8d6",
-+ "153d46a7ad0d4c7b81a83d",
-+ "7b625b197eb76a08b19ecf",
-+ "58ab9a24dbad2ee2c0942",
-+ "6b463071583d5d51119c18",
-+ "58d985a1111ffbdece42a",
-+ "772853e9593804a23d0c9f",
-+ "3566ae3cffa53b48308a5c",
-+ "3253a13971cf24cc306f4e",
-+ "161741a6fabf2be3cb74a",
-+ "72492bafc7adaedde393c7",
-+ "4d17bed73f2032142b03a3",
-+ "43ad0b393a7c2a4d667efc",
-+ "5bdacc4f0e9a9f3c5eb7f",
-+ "3fc330d82c00c3c98129ad",
-+ "2287f22a43e09d12b5fed1",
-+ "113203b24e05e4ff03bfc7",
-+ "386903ad1ff043a2a203ff",
-+ "6efc437814b1b1a8db77d5",
-+ "60d1cb028fdf2f7506480f",
-+ "5c08c8490ead830327cfc3",
-+ "56d1b28a25e58905b948d1",
-+ "6473a7fe7461369e02b551",
-+ "43240f690e895ee2ce6199",
-+ "217e1d11ab05e37175e942",
-+ "115af287df30e3b9382159",
-+ "3d01c0ebec513aebdf049d",
-+ "3b607643718a1436cbf93f",
-+ "392447173660d27311fc56",
-+ "7fcabd5ff8d8321877d09d",
-+ "773e49f5dd28ab9abcc4f3",
-+ "333e4709f384c49fba280e",
-+ "1a5a69890d5f080ad27aee",
-+ "142700479fca005e365a5",
-+ "16c859dc1504abc8bebb3e",
-+ "8e1dc29eaa3429a93416f",
-+ "3d2c4d19f97ec14b7f9a20",
-+ "b80a7edd7c5745e63c50d",
-+ "7eacc570a117e3d2c4ad3b",
-+ "5a4b0bdbb9a3eba57ecafc",
-+ "2bbb60823308802716b002",
-+ "60de98af5b2e9794ccddda",
-+ "43f106dd9b706c7cbad455",
-+ "247aa73439f114a2bae1f5",
-+ "404518992cad409d30e138",
-+ "483592c4cf34d97823b087",
-+ "303e55cf5d940fa1eb0863",
-+ "27cf1a1e36d6b6fbf673f1",
-+ "753e3ffd723c55ffaa57eb",
-+ "527df835ccce3d0d8dc6be",
-+ "501c73bb8897e8a9b644da",
-+ "2c748923f66e9b836e2956",
-+ "252a9565fc2ed88c83afe5",
-+ "53ee027a60ac6b8703b4c4",
-+ "11e3b65e520ccb94e0f28b",
-+ "1d82fef6b5daac184a21bb",
-+ "34f1c6d5946b4f8e9c34f2",
-+ "78c36b7a1a1ac86080796c",
-+ "3c2561b4603673cde220ff",
-+ "347e522bb35549d788adad",
-+ "c5eb765e74f7ea6040509",
-+ "6b91d4c08bfb155d85a09d",
-+ "1d345a329131e03407a9ae",
-+ "7656e2bcd13769bc7d3690",
-+ "18af2f7c66ebae2215b225",
-+ "5c0b858603efe861d8e554",
-+ "3a948a48ee72242647aeee",
-+ "5eb549dbd9b640a1018c4c",
-+ "39395b9f947ccce230cc1d",
-+ "2983f80020a9f6532ba834",
-+ "599c6bd84b32b97e000cad",
-+ "494a8aca14d077b143ca10",
-+ "5514a9f97c736ef89e2558",
-+ "22a2f494120b7469421488",
-+ "6bbfc916f60c65ff6069ae",
-+ "988dfd270fa06d78d9fba",
-+ "65e3000fa520e5bd8bfdc3",
-+ "d79412155f3d978866277",
-+ "540f6a5d04324cc6ed1398",
-+ "5193e0be567990b2818200",
-+ "5527257327c4eade309a67",
-+ "6a6ceb53a9e08bce60e22f",
-+ "3bc0b4b12c4e0d37097319",
-+ "6446d75a31a4956c235943",
-+ "70089a05ca7765b8ef62a5",
-+ "78050a04d755b7008433fa",
-+ "4cf40ea87be0baab3f0a23",
-+ "421f5a540df5b7ba309bc8",
-+ "22aca8e5833c97719ebb51",
-+ "595eaf076defb81f21236",
-+ "324340f1f7ccc9eff05524",
-+ "490df281db25788739ca0c",
-+ "7cdb727ae2bfeeed50af45",
-+ "8fdbca74c18894d421e52",
-+ "266efd2e0daff29e309d38",
-+ "2d3baa252f4d982bd2ad11",
-+ "26246e8fdf408dac8fd2a5",
-+ "4dae59d140c542483e12a9",
-+ "7e37627adf10efb14adf13",
-+ "7059a8ae14b27b87ae7942",
-+ "5d0b6fe03f574db311d01d",
-+ "4450b05b160d8c53288cd5",
-+ "5628eeca86bc4f505da4a8",
-+ "59d6c2db6f995cfebbccc9",
-+ "32c247d46291051243da8b",
-+ "29ecceda91e2de99bded7a",
-+ "697bd2294052d067eed5b",
-+ "35d846be55b3952e278ab9",
-+ "3846b043ea9479616ae948",
-+ "460dae8d89d7708b43a1c7",
-+ "6ecd91e762474ea500bb02",
-+ "78386c3f2bea1d92b0136f",
-+ "5d36dd2a4f038c91a8e525",
-+ "2567685d25fd668a9a024e",
-+ "484fed0412b66b4ad6689b",
-+ "11e987960e92f0cfe9e7d",
-+ "48457eaf5bfbcca641689",
-+ "5e89ffa159d58051edf13c",
-+ "ad8ecaa59795b2101aeb",
-+ "4cd6b5c75a375bce549db5",
-+ "17a8f2f3a036b54c467b7b",
-+ "456d747923e7fcbd260fae",
-+ "38b2a18fa105ae1a1e82c8",
-+ "36b718d293f968b4388def",
-+ "6d15e33dfd91b0adf65ea8",
-+ "6a47915604a062b94c626c",
-+ "63f2b709d7c6ba1ce60255",
-+ "73da067d52334a718631ff",
-+ "68c11de19f57751aa11e9b",
-+ "1b50ac3c3f5269c1d7aa40",
-+ "51f56cb5201bdd22f49e70",
-+ "245ff16a71eb8c45257fd0",
-+ "7dcfee63c4d594e4583601",
-+ "604b2e853911ce83225aba",
-+ "5bb6095d45a0253a5e3e2d",
-+ "14b7709b903167ca33c0bd",
-+ "6e6871265fe9883143d121",
-+ "453649c203cf983e439d84",
-+ "5819cdbf42afd2334f96",
-+ "3450478bbaf1db9aae9e0e",
-+ "35a56ed2078e145e9b5d42",
-+ "15e468fec0387d9dcde2e9",
-+ "1f098e306099d97f37bcee",
-+ "108be849403d8b9e0adadd",
-+ "432bf33542ea8f8c0e1cab",
-+ "1fe772e91ad75a2d2792c4",
-+ "2aaf602c5ad427702561f0",
-+ "66c37766a09f2454161188",
-+ "7c91adf751ba7b800072a4",
-+ "587965194057ffad1ed72d",
-+ "6b189bed3e1ee805a7089f",
-+ "656e0aaff42e8f100df7e1",
-+ "50d8060a4c81ac0d9dcc9a",
-+ "3b142ae3f666b5a458fd6",
-+ "11216382d02fa8a680f2c",
-+ "640821dda0f544b159e25f",
-+ "60ad8426c5228781a660d2",
-+ "50b259ce6ef7786ad19380",
-+ "617907260cf1e3612508c0",
-+ "2020839307f0a0b2a66465",
-+ "6c9aa8a230f91d4e6f84c2",
-+ "479f0a9b95b8f0e630df10",
-+ "74e8524ea4276a1585abc9",
-+ "1832f7608c30377f8a27c1",
-+ "468227ba06af62fa70d6b",
-+ "46ae03b83630be869f3f67",
-+ "1c429a8aad032b85e815c6",
-+ "784a6ea72c75433fa2c1c0",
-+ "521255c27009b10aeef14",
-+ "6de250d6d96fba0a4a2df6",
-+ "1a38abc6055dcfc6f54cd3",
-+ "459fc4d70a1a8040309b48",
-+ "5206d5cc4cf74b102b511e",
-+ "1621052353e1bb38663f44",
-+ "6869e474162fccd5e6ce8a",
-+ "265a6fe3ade48b79bb704f",
-+ "1683c065332572cac40e7f",
-+ "40fe888eb50954f82f8f41",
-+ "5ccb3321bf79805e3743ec",
-+ "6904f88af6eea4b3f91bbf",
-+ "a70e6c0e6da7b5bd943d0",
-+ "7b7c35dbf0dd6b94d050c5",
-+ "4ee9fe013ba8fc6ac8d470",
-+ "1825a2f6c03df8e89a424f",
-+ "6495ff035413be2b53c45f",
-+ "745f8230228fe0e913a537",
-+ "57ca180b4c6f8c3a63ae46",
-+ "5963fe850d852bb19cdfe3",
-+ "430a7ef273c75f6860a9e2",
-+ "28c8b8ba9341ac37c38695",
-+ "88d1f466f33239ebbee3e",
-+ "7bfb517a9a7064f7f0b9cf",
-+ "222ad5a5eecaf564928d05",
-+ "31f4e6b45c1cedb6d4c94",
-+ "9d0d5139d46e4d9db3662",
-+ "46ea372cc256b25d8bedb8",
-+ "1177a186084a0188e6b25c",
-+ "79973f898e87ee6433e53e",
-+ "17f90d7760ace90b4281fa",
-+ "4d06acabc42f8f6c6561a2",
-+ "297ac6d1d91b19c8ceb3ad",
-+ "76930d75187c32e1c0855c",
-+ "ef9f73cc5ae815a32ca63",
-+ "3ca5432d73f30360d5e251",
-+ "2eb29dd03203d9dedca2ed",
-+ "3f719d970328ab86444133",
-+ "671a35180c429ed6cd73d6",
-+ "1a5a3601f9e5c757413d21",
-+ "1207f0afa9b17ee1e3a14c",
-+ "64c773513b07ac7be226c5",
-+ "645491f7754448588100c4",
-+ "6803ba4d96f3cea5b5b619",
-+ "3e8f3fee79b0aa7d3158c9",
-+ "7c4c5a07ab45db64032f8c",
-+ "471e19dff79f0bf8dd75e4",
-+ "736e4111350ab36a2be4ca",
-+ "70eda2a92c3f3d551052fc",
-+ "4be7ae42a1b71df0fdbed2",
-+ "38e1136120c0a50e7c1942",
-+ "34de10a25d48bbec6bc310",
-+ "45fae251151688f6948ec3",
-+ "a5803d95905530efe4cbc",
-+ "29c81a2bbc75ee65e40fbe",
-+ "5d0e736ad9b0e048c53cb9",
-+ "62a6ac9d0c5e4b3890d61a",
-+ "16587b1213183c74388d6a",
-+ "30455197024dac28f22ad9",
-+ "5c96c4bf9c30f05dfa52bf",
-+ "2e14fbc2ca9b056ee6a0e6",
-+ "544e247e73028cc23b1f51",
-+ "7569e0846a7c92c5b07e91",
-+ "2e37e64613e6e49f75ff6b",
-+ "75393667821938c0e5a628",
-+ "2db4889991fd96d5a3dbfa",
-+ "6b628f924b031ff396258b",
-+ "5c721c1e9f943f1e44c526",
-+ "4845e19f6384ed5724d8ce",
-+ "451cf4e4a6ce149cfc4095",
-+ "69cf5ded5037b0fc848b28",
-+ "2144bb26c3488be851e3b2",
-+ "2582d22d55dfd72b2d70bf",
-+ "67fe64c68be6372b30260",
-+ "b5ea9188a76cbd4490c2c",
-+ "2f9195fa1721a36e6f5198",
-+ "371b6d93bf32954a1ed005",
-+ "2d248bd8de364598100d1",
-+ "3476974a3a56c244bcd4ac",
-+ "7d10d41f081cc53194454d",
-+ "9ae11d1f0b2cb73496a44",
-+ "3c11b4ca34c3237b362a26",
-+ "3b62b01334bf25d1f5d560",
-+ "4a9dee0a96c91e7cd6d7ca",
-+ "2d8ba9bb83d8b7dc77cc32",
-+ "394242cd2ce4d5c927b1f7",
-+ "13ef893fe161bb05038778",
-+ "210aaed4cc7b55edc4255b",
-+ "72bad07fa5d3ca19811efa",
-+ "1856ece5542adaa42b18cf",
-+ "2f775dce855cb22a4ce4b4",
-+ "1b3d8a50e5425c7a4550f6",
-+ "3fd38eb64df431878b817e",
-+ "1f372d16a7c783f301d859",
-+ "2e99bf2a9cfd14eb01e4dc",
-+ "739d86f4db437bd59681d0",
-+ "91782b2d8bf1ec8b6e4db",
-+ "13089f86ddae7614e1f733",
-+ "4374fb07e1eb1efc714a7f",
-+ "34026c0467a5bb1302960d",
-+ "1316737cef6e8d73f98c46",
-+ "308b1811fe8c7d6801df6e",
-+ "3b6333c6dc16d5f4351c47",
-+ "30151eaad7aef0e79d5e07",
-+ "6d5ce69503f658697314d0",
-+ "13022f601d429947abd201",
-+ "278331e342f211746f0d9f",
-+ "44fd7c4168c2a61413dbd2",
-+ "77747c8e4550378570ec0d",
-+ "31934713e4ff1d0d7cc583",
-+ "5ca455ab52339850752f94",
-+ "cc47e7e925da6c91fe510",
-+ "18932d3a50056ecbd4c0",
-+ "594820c775fd57d86cf9af",
-+ "4ad8d4214e4fe01b143d8",
-+ "179c67b2886cbf8a80171f",
-+ "60e1157dceceaecc3a16c9",
-+ "507a197204651599300f85",
-+ "1da6208947854d10119a62",
-+ "2fd395d2076e94e7f79f79",
-+ "3326fb026bfe153a5a80e5",
-+ "214b26c5cc4d2d1d455254",
-+ "2a5beeac5cc34b9b70fc5c",
-+ "73037907fb5b7e20bf7973",
-+ "622155e1a7c16eb9e6f098",
-+ "47eef469d5e96dff3b60f7",
-+ "31b42ccc858ccceae34d5",
-+ "68c711e371efbf9b278db8",
-+ "71e107fc4c98b40c6f7b53",
-+ "2a2840d0a8db4a22fdfb53",
-+ "557e56b5a5dcf30ae5f48",
-+ "5451512089afcff74e1bd9",
-+ "6a44a264bb1144d86619f3",
-+ "72316f1be6172c06994a4d",
-+ "d5835b5723a9063a2dd80",
-+ "232ce65586f95692d89383",
-+ "2a8c9eedadb6f6d58c06cf",
-+ "f5eef843bd404a6869b17",
-+ "720851fb976798365a6829",
-+ "6e8b7f0e9607e44c1f9f65",
-+ "3860366ed3637eead94b8d",
-+ "30d33e090854573dfd98f5",
-+ "682291bfd680e2cd8f9d70",
-+ "7c1fdd60de643e750fa1d",
-+ "774b9d1f08bb74ab682979",
-+ "7b5f04e933b2e4204cdc65",
-+ "2c36a4d87847724f9fdecf",
-+ "2c941d4c1c7d68ef593ae6",
-+ "4576a87293566d06f5b643",
-+ "86148c3559c855d7a4785",
-+ "2d0a5221661bafe1bae3a0",
-+ "4eabe0db8ac5d733acae29",
-+ "1dff7b3a25d6efec89d4f1",
-+ "93ecdd9b52d588b62ae9d",
-+ "4a5c54b88c3afab5d73bb4",
-+ "50873f081856faa7b0c6c0",
-+ "7a4c62248fb05a7ec5f894",
-+ "6297ed8d827bde2f27c592",
-+ "4f88d842683a24f7a78b4e",
-+ "6543f2ea86c39aa319b565",
-+ "1711e7c4ddf7dd725f454a",
-+ "6e925cc1e63747fc8301d9",
-+ "428c02c3c8bb1613aad2fd",
-+ "1b12fc1c7d3ee5cd24b30d",
-+ "38618fda51c023d44b41df",
-+ "75ecb6eacac31eec1c8d24",
-+ "363495385d4023abd7fffb",
-+ "52a170878e73d2b9a73398",
-+ "40afd831d872bbb5ba2dbe",
-+ "6a2bde70b440f36a3a69b8",
-+ "6cdde5dc50cfba13ab15cc",
-+ "6102d4b92b578db1756028",
-+ "1d72e71f6a57243468bc42",
-+ "4f100cd2b63ef0cdac7165",
-+ "56441a020eb196f9ab47f5",
-+ "520d75e4874b90e95d0ac6",
-+ "4ad5b5ec9142810d730c91",
-+ "6369f366be6b5ec99ddddf",
-+ "4ae3a5f46681ba13e649ed",
-+ "33e094a7802d99ab1d9620",
-+ "58ca4d190a0f756173e746",
-+ "4afa034c14d96f077cc41e",
-+ "3277a60ca85c986d50dee2",
-+ "61df6c089b8a0a75da0288",
-+ "3a9ec75af3c8e86b8c1b73",
-+ "7ca8eb46f6df31902607b1",
-+ "7a283d5e2ed98485e2d260",
-+ "78ab001943d18ada1f6d03",
-+ "56f539741375576aac816a",
-+ "75fa74ccac539d6f2e079d",
-+ "7108a03a28803eb91e8a0a",
-+ "3756665d23e5dc56d35905",
-+ "da96dc29f77c98efd9a65",
-+ "54ec1fbecc620b2a62de33",
-+ "2e564f6ba5f6f74e33f2dd",
-+ "86aa65ac1949dd8af6918",
-+ "605ccf0922a0c35f768933",
-+ "4348b708829c7eddd56237",
-+ "19d3eafc75447dbc2ce4d",
-+ "764156f5d90616c8c45669",
-+ "51e2ff830fcf99b4147ec",
-+ "2d30342ea20393b89b038b",
-+ "6745627963b760ee39ad1a",
-+ "76c344db7c98c1b1fa25d1",
-+ "5b872486f12a68a939069d",
-+ "274cbe37d4fe65732936f",
-+ "27b48290f4bc222f54681d",
-+ "1f7e1880120c76703199fa",
-+ "2bf0a5cc2a5150523d2e64",
-+ "2d3b2e3d52eac5c09743f7",
-+ "46b7638024bbab6f336734",
-+ "71f7ff7f6245492bf4ba4d",
-+ "6ac96f98fa78ffb692afd9",
-+ "1c63d031374620336f8c7a",
-+ "5eb0e751f365585e4f3fd3",
-+ "24716274d6f1761a2e503e",
-+ "3b663e3e9013cab9326fc5",
-+ "231a1fa6a52f8377b2ca86",
-+ "464063c0e0f5e5eae1bad1",
-+ "4f588ef825e26e596e160c",
-+ "4adc76f7cd88044421953e",
-+ "228eebf60c055615805405",
-+ "3d32a6b665f10a829cfff8",
-+ "ce584760ca84047b25a4f",
-+ "982362cb3f64fc2535f18",
-+ "2cbb69d06f0ba3051ce433",
-+ "2fb2d651d1a5fde2dc4d89",
-+ "116822d6715118a8643140",
-+ "52e4d0f780530e040b8198",
-+ "4d84d472f48a1f27cda4fd",
-+ "23675569b6f74cecec658",
-+ "7273cb20026d3e5dfa9567",
-+ "5e5c9c54f1f75bcc98d1bd",
-+ "37150fd6c06a98e84f0fb9",
-+ "1cae4d5a0b88eed0b2d97e",
-+ "5e6c438c53b4bfbeab6a4c",
-+ "7ec0ec060d3788349445a5",
-+ "394ca6d6650a3a703c8f0",
-+ "76a4bcdffe1207b9c84c3",
-+ "413062fa329dcbe3b8887d",
-+ "137786296b1e5f466871bf",
-+ "1bff1788b61c434292f278",
-+ "67ae16da8f876a2c8dc80f",
-+ "4f0b0a9e8338cbca398b3f",
-+ "7fe713df2e65b878c1edc6",
-+ "46dbd89f4ae0d06c0ab8e0",
-+ "3ad2c2000ee1db409ffcab",
-+ "235057c5ef06d64b0093a1",
-+ "2b1199cb9ff7848ec581",
-+ "16a7968fcf87b51aa207b",
-+ "7593ab2f13aa524b76e104",
-+ "569b68c3d77231282d1705",
-+ "54f01285acb2da9689a386",
-+ "7c50148337071a44808f27",
-+ "157e5726ec48e98ea5652c",
-+ "a0b14921f2ca115669309",
-+ "540974d1b3361c5ccd3a2",
-+ "30927374f464c892c53b50",
-+ "5c0de6f6c164f44c52de84",
-+ "25f3d9fd234440b97c9821",
-+ "659ccea55ad34dab51a321",
-+ "308d7af9cf09073e61779f",
-+ "48dd5aa0d80d3fd4d31225",
-+ "18d28f7c13bdb1a27fc315",
-+ "37c639bab06813135e6962",
-+ "716be1338eb9fa3160de8a",
-+ "306cc735643548c81d480",
-+ "15dc7895737fd27e2fc2d8",
-+ "ff910ecf2ce1ed443b3a7",
-+ "26e45399ef9d09b479c0d5",
-+ "5a3548ae1dc271964cafb9",
-+ "1e0b5aa4ebf1898b7232a8",
-+ "65b1a43ebc40ff17757bfe",
-+ "35ab264ca762acbf67e1de",
-+ "67fe63e894b36bad057249",
-+ "901282766f87bc24e50af",
-+ "3f8ccc4c495c412c1876e1",
-+ "2c958c952c5c886c2a60ad",
-+ "21a95826890e5cccb8a83e",
-+ "190017f50befaddece16d2",
-+ "64f3d838badcddd9bfdd0e",
-+ "7a7cdf214176b6d3191883",
-+ "30436781bd712f316b4895",
-+ "f5d2bac49777fc8f10242",
-+ "66de0cd9d504d0c8a10caa",
-+ "11ff8e8d5e956398c99ca4",
-+ "2d83b4eaa1c8f768e56c30",
-+ "58689766e836a562c78c53",
-+ "1644cc3e7fe80220ef2f70",
-+ "69a00aca76ae6e660be7bb",
-+ "68e1a6376fdb4eb7b4b0e6",
-+ "5c37d517c640ac7f62a532",
-+ "3aa36ece405e3ccd9341ca",
-+ "345343979af3beadfaced5",
-+ "63ca1ec0700483b8f859e5",
-+ "14b8d711e9732dc1d81b85",
-+ "5d1cdedac3c1f047923b22",
-+ "1f88577ebb6a87d8478dfc",
-+ "3cf63e3a65a7e509ca6dd4",
-+ "64e35a2939773b306ebb74",
-+ "4e5afb2e233daef8a9bbcb",
-+ "5dce9f322e405cdd3dc195",
-+ "49fee8b58237dc40ba3c5b",
-+ "125c7d70d2b6d99ae885da",
-+ "7f821b6d896942293448e9",
-+ "44b0628f84b11c5e71888",
-+ "4bc252b0fa653478344f1f",
-+ "31afe414b9e841f105214d",
-+ "46bc16d9041c2bda07b158",
-+ "34ca1ca17d4004b63727d1",
-+ "1adfa664cf45ca975af0f8",
-+ "55b727631edd20582945d2",
-+ "6649997ef28c919c6cae0f",
-+ "6332e8b1655b1a7193eb45",
-+ "7b8a17b08fccb33f4b7d6f",
-+ "46c01f4170feea6c601e12",
-+ "68d895a65569cf3ef3e3ea",
-+ "782fa87576f745d6c5a644",
-+ "3561d1a2752f1d17dd5823",
-+ "1c1f24204ec4b044c10ff5",
-+ "4ef1c6a1bd63bb6b6207b1",
-+ "33fee942f43e9b7d2118f",
-+ "1cbb8749de080f5bb23b75",
-+ "4680ebb5e7e7fa1e676838",
-+ "2cfe955ebd8c7e4615715c",
-+ "93d0f45c8e78eed19b2b4",
-+ "5411d9720f633bf7a356ea",
-+ "7ae4ce9746d1a251afde2",
-+ "6b6195f4939abc517ea1fa",
-+ "622e4bcd237f601b3f864e",
-+ "552dab94d8fab803e3abe6",
-+ "5fea5590381b705c4ba54c",
-+ "47a6912faf0eba695a3f82",
-+ "62d4635d0bbd6bf8fab17b",
-+ "488702c5b90021b8b24933",
-+ "b44a774aaac3d4d335389",
-+ "7c2eeaa3b5ac7ca26ee5f2",
-+ "4a79a4d35e92cbac8fe0c0",
-+ "145ecffc8b532b7855ca8a",
-+ "409705e5654888d8af2f47",
-+ "4f5cb9e29c3567f8c1b22b",
-+ "2ad535a50fda15e1835526",
-+ "4d55039bf17366425f055a",
-+ "504e8f5ee0e51320af92dc",
-+ "ae1614cb7437dc6311ee9",
-+ "3d433adb4bcd914fcfc4",
-+ "633dad9eec0d451652bf40",
-+ "15bc81dd36a0393963bb64",
-+ "720d9e52c4aea85ae24480",
-+ "16f5569ecf073acc30831d",
-+ "50a70d2086b5ca78a90368",
-+ "7e688d1cbe7e0a84a0f408",
-+ "1f9e8bffcac3e1471f7cd6",
-+ "78ec94c22ee912eded5499",
-+ "336a41277b427813eaa191",
-+ "1705c133c7ba24a2b5c528",
-+ "7b7e71610f1589da383c31",
-+ "58137399c99866772aed9a",
-+ "282774a1f4bcb14e6723f9",
-+ "7b85e0b99eff408f2aa978",
-+ "2a5043ae183d338b7ebd55",
-+ "af99b9d024438cfe9df66",
-+ "d4a270719a348af6d6c29",
-+ "47262fa06b9c5ac8138f4f",
-+ "50c65d8772a3d5db269535",
-+ "20b1838f00aa00d07f70fc",
-+ "ca30526530b6f6f0c8fca",
-+ "158e9251ef94651015ecc3",
-+ "636f015a0c62753b283d5e",
-+ "4573a56ada0a29d31dd6b4",
-+ "367efb55edcaadbb5e4f2b",
-+ "3eb189e2bfcbe180703cfd",
-+ "692adfabb87ce969422961",
-+ "434a5edb31a9c3c6a0243e",
-+ "77664e53908d00007d1205",
-+ "4b11585991700c233f6773",
-+ "207ff6a0da7f13b316c4b0",
-+ "328a9932d6b08a41a1df0e",
-+ "2f927b360b2b43bff822dc",
-+ "257564a39a648e17d015e9",
-+ "73e92ea015629e3728aee0",
-+ "4585b77fea18a0113ff609",
-+ "101d83882a81d0147b4342",
-+ "3addce3c43218484acf509",
-+ "9f0c9a93eecf4de349628",
-+ "465f3b1e25cde0e446d90d",
-+ "4ceae8c6ea35dc274647ed",
-+ "63137369b8d47b6c9c43df",
-+ "438f5c0f163a4dfa04e5ce",
-+ "313d62eb5f1104de5421a",
-+ "9f20b6fedc099ec575691",
-+ "24086a392ab75e649d3cc1",
-+ "7aa96a9fbe718c006a48f8",
-+ "8000000000000000080000",
-+ "57f0f7ecb2d7dad43748ee",
-+ "2a640efe463008db4ed634",
-+ "45769a307f5593bbf72056",
-+ "3abbf8af06f889daf59c4d",
-+ "6d16d10feb1728044f2dc3",
-+ "5bf1d1c71be0c49ad75d9a",
-+ "16bed27a9c005817ccf111",
-+ "4d7797e0b2f77a7ffee785",
-+ "3845bd22f959dda9197376",
-+ "1857324131e535b1b2458f",
-+ "6335fb7682400180e10d15",
-+ "50226b4aa22a0465ceea0c",
-+ "44dd70b9323f17568e4ba3",
-+ "217bd444ac8e9808b3ae5a",
-+ "6c9c81ea487986867245b8",
-+ "3827b84269040363e5e02d",
-+ "64520e4823f48c1f48749a",
-+ "58fc1b58696f8c22cfe344",
-+ "41558cae58d4f9a9001b87",
-+ "38910d873da8dfd237e8f0",
-+ "5eb76c6301d8a849a1903f",
-+ "3b6b43619a3730d5995ae4",
-+ "5f2bc99aad2f27cdee05f4",
-+ "385f7f48a7be6b46d108ef",
-+ "37d50d7838efaf03049cd7",
-+ "665bc65420c0b0a151c97e",
-+ "3d9abe3ec82d9602d9dd6b",
-+ "634d2540fd670a82f219a5",
-+ "616dbeafd6aa623c1a7d7e",
-+ "29702fc1f57fddc3369967",
-+ "25920b5c96127e9d8ab05e",
-+ "3a82369bb1a4da519bbd70",
-+ "7f216769148f0e997c7805",
-+ "31d809b078cdefaaf45266",
-+ "7a6ffa939b86786a779a44",
-+ "68e8a818d524954278bbf6",
-+ "181ee17c34ab8aea52c900",
-+ "7f42b66317d26c3f938805",
-+ "6f37e3a85128974cdfaa69",
-+ "45813314ca1d165bcf242c",
-+ "64add9cabf8efdd5f7b57b",
-+ "46a91d898168488fd5ac51",
-+ "669f4c5ec3934953500b78",
-+ "1e378fb7157cdaa6fc3a50",
-+ "39cdc5e6675ab081ffe60b",
-+ "1cfd8f0d12bcce21589c11",
-+ "6ac77b7cb23565518aa2d4",
-+ "4628eb872cffa1868b96ee",
-+ "23eabb9cc5f4086c74bc31",
-+ "445381f98a1f5669880827",
-+ "3f603c7b410b4c2db2c8e2",
-+ "464550e0adf269403f3e22",
-+ "3286bf159405584d85567c",
-+ "356497a9675898bccf4e79",
-+ "f26a2dc235ace7b34f4b6",
-+ "2e03d3c0794703b9605de0",
-+ "30a18088f5b2af396bbfd9",
-+ "681750fd18618072db2068",
-+ "69fecb55ba6da700789d7c",
-+ "2294095a6b77aaa416cbd7",
-+ "ab8e1dd4d27b02d09fe48",
-+ "7fe887d8c5fb53af79cbd6",
-+ "1ead89a48b89a75ebaa7d8",
-+ "10d0aa100248920b9cab77",
-+ "4aad58987821ba8f33d96e",
-+ "5c616b0d1a7bc591e70e46",
-+ "24b22771f303ef742b8ce1",
-+ "3eda92314bf1d09cb5b08",
-+ "692eeb4ff69b42372517d7",
-+ "494807a247f7ffab73a644",
-+ "23564d97f447b0091e74ce",
-+ "2b81c6e67e55aeb6e93a",
-+ "4669a41d4e444c1284d024",
-+ "61036fcac29b84e5ca02ad",
-+ "2625096534f2cf10d83a26",
-+ "30cb89652c8629b5e0dcc3",
-+ "606e14eaa7d60eb7ea925a",
-+ "17715e6c96cbe096c4f9c2",
-+ "42a81f5e10b5435180e643",
-+ "6d849a39e47370e473a913",
-+ "6116bef6a79fb2fc15f0e2",
-+ "31e8a39712fb3a7a11f909",
-+ "7511506751237c1959933c",
-+ "1e47a4330f0bce93db13fd",
-+ "97342eefdbc78b9689120",
-+ "b1fe15d9ac88348f41a87",
-+ "296a247b4b36d5c2a1884f",
-+ "aef2488954588af921ab8",
-+ "351db0dca5d74808f36d33",
-+ "25df9f831698604e15991c",
-+ "761e42e1c908c2f09e096a",
-+ "5e73615c65ae9e74eb1ef3",
-+ "4354f51efc9392bcd6e51d",
-+ "3f7d2ee6cb32c6bbeee194",
-+ "394faf6069c716fcf8a76c",
-+ "51d8b3e6fa0afa106abc40",
-+ "5aaabbd40fa78dd417edf5",
-+ "32d68fc9b8a9c17b315382",
-+ "6f24ffc802a08273be511b",
-+ "452816c1b54aa2bfddcc17",
-+ "142c59f31fc82fb58a7dd5",
-+ "7233f4136f3ace41bedb12",
-+ "2c18c59d95a21961c42f21",
-+ "7eb8dfe838ec5ef9d3ee21",
-+ "19915afea85d27cf8df109",
-+ "4e1162d634d0d5811a2441",
-+ "43e36b6d5a937387b49f6c",
-+ "295932427e10aface718fb",
-+ "5a2c8ca58cb488822e9f49",
-+ "622b540293b1275c5a9446",
-+ "753f0795048443573283b2",
-+ "3c2dca32abbdc029f4a212",
-+ "3fac097802d8f5fb376d58",
-+ "668b9e16f3948f582a5b94",
-+ "1a08e273719d3411178252",
-+ "f4af5a6143d8f44e48afc",
-+ "54ad7fa69dfd0b4c19f7ed",
-+ "65cf5014ab215afd17cef7",
-+ "4c3c570182916f32a6f96c",
-+ "2e8edc0b6dfcfb2392ce87",
-+ "3950591be73642bfa23264",
-+ "559752d946b02da4c2f657",
-+ "554f5cfd133bac2188241d",
-+ "3c1fd5d9a6223b2ce7b02a",
-+ "34c50fc58872b7325366",
-+ "3f8cb5eb229acba822b48d",
-+ "2aead0dac004faa8ab67e4",
-+ "144a6c20d0a8d5dce2b12b",
-+ "5efbbe073364ace07f02c7",
-+ "73862de61086c1fd5e0678",
-+ "78aded63d2f85ac948c449",
-+ "51603bcc8667777e664f9d",
-+ "724f8bcd40bfc9f1ca0c68",
-+ "5169af1cd74986160450d0",
-+ "5b6b96beb19fb0dbada937",
-+ "4b3a8d22fdb2c83abba9b9",
-+ "3ee5a2cc90e335867f0ce8",
-+ "33567e972c90754c86a5ff",
-+ "1c07c875b3a9cdedf7611d",
-+ "3b55da90ad9a162be1756",
-+ "339dd42a42d94342bf8399",
-+ "67a3f20bb5e980364816b9",
-+ "4b6ed31d0715952774511",
-+ "346f2a2b086e1b35095d7e",
-+ "1c614cf9a9d87d69154c21",
-+ "5e263af53ea065e044720d",
-+ "681a88fafe4e6f0620910",
-+ "1418facce22bf24a5e6a51",
-+ "786571b85b2768309c8ed2",
-+ "4d0e82bdf34ff4cb3a603e",
-+ "7c2e242ec2b95580a9b3bf",
-+ "54fc920cc0125e53a92499",
-+ "5696a96208101739ec4ba0",
-+ "636b15a893c301ff23f5f5",
-+ "4956721f6a2ced1fc736fe",
-+ "518711fe03b241cfb95160",
-+ "2e12097225e5783b545083",
-+ "7340d7daed67bcc5cd4391",
-+ "c075fe6224a62c1010fb8",
-+ "4bee7e482b290b1d3869be",
-+ "7e8fbf173741aea1b95c93",
-+ "5a1fe9fffdaa20f4ab7eae",
-+ "58d7de0f8254a81b5d0f5a",
-+ "38793daa7aa086d5e70798",
-+ "6157a651f2640a73f1f90",
-+ "7a6d5b1013830761b58026",
-+ "46734211b970f8a6448a60",
-+ "31b9dd76b9ed5f88dd4609",
-+ "46c6313b3914ecd376b959",
-+ "3e4e77e268fb6e7602e96c",
-+ "74d39a89d87bdaa449438c",
-+ "7684536a92d49a5af59f1a",
-+ "71215d6fd5e662d930a424",
-+ "249b7a4d080be0f548cabd",
-+ "1bea5758655f1400515db4",
-+ "7f45c48d28fd31ceeb3fd7",
-+ "1812bd60b720f8920fe80d",
-+ "27244290f774a00786ca95",
-+ "5566a844e8b1c572f69612",
-+ "2d678e77df571d7ac4859d",
-+ "e243f28e043030ee3a43f",
-+ "36a3336f56c91232544e8c",
-+ "179d4134709978c75bf6d2",
-+ "20ea7b335b7621642b29a6",
-+ "78c437adc3b6ce946cdd",
-+ "57dbda5c8b230a87030357",
-+ "4dcc6ee20983f0020ad69",
-+ "5725842b7246179896a39d",
-+ "6b1cbac9279eaab9b503c4",
-+ "1bc4e87c1100a2d26aeff3",
-+ "2d70f946f2915679b314e6",
-+ "793fd256b009d961487499",
-+ "ee9d6b69f13ec8f385e6f",
-+ "4b4c7f0a822537ff62cdcd",
-+ "48b920d23514d06befaf52",
-+ "2df30214a49a31c21380ef",
-+ "4c4424602626193266d943",
-+ "2d5bb2b553d4ed5bc0795d",
-+ "681fcdfe60f23e3be083f6",
-+ "4f9634be1ae125361bd4c2",
-+ "1ac96b01993da8677b2fd7",
-+ "4cd15a66ba5a2f18c8823c",
-+ "3828df7e9ab6753fb83dc1",
-+ "2071c913edfd4fd6daa6bc",
-+ "669e7a28f7a7c30460a80a",
-+ "3b22ed42f28069f29c280b",
-+ "5ca51c82df4def8b1588cf",
-+ "7b2ef1bbf74c4989ed5ddc",
-+ "40ebb7bac65bd815945e49",
-+ "4a469bacdcaf5434109262",
-+ "1a14d5b10cbcbb9ad3216",
-+ "65fb4589487aa5a16bd767",
-+ "283508a2ed137e839b2207",
-+ "7047889925ed18a885358a",
-+ "9d8d18a72607c311d6f76",
-+ "6a1d554c48496d8d543eac",
-+ "594a3b6273b1ed2b542eaa",
-+ "67cb80a136db30b9d60d6f",
-+ "5106bba99e6268d7bef3e4",
-+ "6fff35974d5f0b86faa46a",
-+ "5f7482c17a568566c785c9",
-+ "78ba33e419cbc7f177437f",
-+ "1f4b918e0e0d47c89aa2d8",
-+ "50cfa48cfb994ab2b77aa3",
-+ "1e4fdc54209c2229d7ffcb",
-+ "4431184365a358de692057",
-+ "7adeede80a05e40854e6e",
-+ "9a39acfeb3a1b4c2bc79c",
-+ "2d2a15867cf9361defac4f",
-+ "3fdb99cce8884ed923271f",
-+ "2d127e6ce6bd0f1872b1",
-+ "1124cfa0e070cf6fe3c638",
-+ "65b7b50446c767e6fa72fe",
-+ "3f0d18b1efb7248950daeb",
-+ "74fc1bfd19b3cbc9867bff",
-+ "34f0f61d6d8d062b6b9d9b",
-+ "260d6ba9444df4b85dfb92",
-+ "4f75e255d88657b2ba4755",
-+ "3c3f770d148b4692e25b59",
-+ "1eb56fdccfc12b22db2048",
-+ "3c81a9658bae42644c317a",
-+ "783c78a9025283e7188a8b",
-+ "7322c20a545b3845b54b34",
-+ "52d104741cfa5fa49fa55e",
-+ "6545cb112ea4be72bc80f7",
-+ "5bcd4418d37c976110b37c",
-+ "34d59de432c0dbb24ae55b",
-+ "4759751a101953dd340d89",
-+ "41e135572f9ce788481248",
-+ "185033e62f44aa85a7799b",
-+ "7047a4510b8c2107737ece",
-+ "381012de4c9a82f9ef1d72",
-+ "1167717f2d3d6238b3d21d",
-+ "2dac9d433ff98cf24eae81",
-+ "4f1c406e243fb2af67cd42",
-+ "685afb7cdd699d5a8f020e",
-+ "4c6a0f6de7e50ac450c0c3",
-+ "59f0f5465ff1e16be9bfb2",
-+ "594ae94ad86b9a719f54a7",
-+ "9225712405a5bd9ade58d",
-+ "3650c22d9c1072238cfcfe",
-+ "36a92b305c21171dd5a616",
-+ "5ba344fee845769c2c86d8",
-+ "3ecd8205beb790946eaa8f",
-+ "5f84ae1685459ae7e24bf2",
-+ "62a01fb38e5c88098fbcc9",
-+ "3c2f54ef99be42fe30d32d",
-+ "215dcfa076749277897e0",
-+ "36304be3f0777300703af",
-+ "147b65e0e829ca30fd88c2",
-+ "4e6a2eb425fbd18fb02cb2",
-+ "2ddac7db8be22e88618b58",
-+ "1c7831e5dec267ccb26741",
-+ "2f3b362f4b742eb82f8a34",
-+ "5505b22d0ddba48ae2020b",
-+ "522afb743f67b3ca56b20",
-+ "81dc886feeee4945edceb",
-+ "77c4b593ec648025df03f6",
-+ "4f0841f63a0c64aad5232e",
-+ "6cd2d14ecc5fc7c2c1b52f",
-+ "3827eb26c007235c46c676",
-+ "484281d930b8ee32f366f0",
-+ "25f7e1ac0d4153b6365c1c",
-+ "2600c04d980b2307982b22",
-+ "6b923e02dfb1da62f37204",
-+ "287593985c21589f72c821",
-+ "c8918a059fa77676f0587",
-+ "76201f5e0110544f41d9be",
-+ "770b83b55e13465063e5a",
-+ "412ae12837a29724832877",
-+ "5cd8f5f9eb6806f67db613",
-+ "4eac7fa0d6b168c3bec4e3",
-+ "5d2972b12e50e727a2721d",
-+ "5517c01ca3bd4da9aef0ad",
-+ "11ea8c21342ce42ebbf9ec",
-+ "413f256a64feb56e242e90",
-+ "29f3402339c3128a1e2c1",
-+ "51eb860c87e1e5b70bb623",
-+ "369c62fe5aafda2a550912",
-+ "2674d42d16e97493518d2",
-+ "6b105359a1a68d94862411",
-+ "527e969f4f6eefe6289ece",
-+ "7ef4c5361ca08ac1cb6216",
-+ "3f3aeb0a1df198d9c95768",
-+ "152dc9fc63d3c1eb6c335f",
-+ "7754a6a5fe6be54c00f4c8",
-+ "222ea07afe042cf765ce5f",
-+ "1086eae159340e441fa0a4",
-+ "6c03f094dfe48c9743be89",
-+ "1fe069b8c57a9fbe5f6009",
-+ "185254fa056de9af1a6bd2",
-+ "3018be3223f82c7f0c9ebe",
-+ "48a13c03c03191471f1164",
-+ "3e94b32e50da81bb5afc03",
-+ "4d08f00a99d95d0043cc4",
-+ "4636e2935765905adcc41b",
-+ "4bc9c371d07d4a025a739b",
-+ "83bfa3efcf5b970ad41cd",
-+ "18bc8168956ccd63ac68a1",
-+ "366546b3844bf45b7527a5",
-+ "363a65fc59f4a8184d3d78",
-+ "5ef30e941639d08bff19c4",
-+ "5d66f0d9dde7339dbcd24",
-+ "33d5a814c00e980600811f",
-+ "5ccbc128a5721a5dd853eb",
-+ "298200a0909b55e97005f2",
-+ "703a6cf857e651748dc09a",
-+ "547264d2566596f18bbb5a",
-+ "760b4f231686ca10ea6ea9",
-+ "49a3641c16382337f3c777",
-+ "33525d5afa91fda7d5fea5",
-+ "4c028ddef259fa2c7d4868",
-+ "575d4696bb0e4edef99446",
-+ "6da26efc24e2d57c26c090",
-+ "41e1bc8a63d042ba714c97",
-+ "5f24e71937dd097c0e8678",
-+ "70b9ea82f6a6c02939510c",
-+ "738abcc274fbdc4ab5efd7",
-+ "255358696f5e9ddbfa467c",
-+ "6e9f47f009d809f84a56da",
-+ "27c6ad85e824da21b1cf9d",
-+ "46a78cc83c010019e8b2b",
-+ "6b828169b3ba13bbcddb05",
-+ "3f5c0a52d2b564cc250982",
-+ "63069f756c8115e5fc4c52",
-+ "55744f373c8b8520d62370",
-+ "43c2ec8afca87567ee9294",
-+ "6354a865e088a0488f2701",
-+ "d165a455f92b5083e0627",
-+ "7252d249ce8cd4fb010950",
-+ "79790e81fd0d2b63f9d1b9",
-+ "5e147628ce9e9a9493f495",
-+ "37755ea728b820f0ab2bdf",
-+ "184e317201ff0ac25eb6e6",
-+ "178cb915d7350e37948956",
-+ "5ab5c85d4bf835440ff962",
-+ "1e2bd3f41ae5c299bb720f",
-+ "722f9dc13384479d1c4455",
-+ "2b514798a553e5bdcd8ec1",
-+ "51890cd139740ee3c35339",
-+ "75d3c5c33e5a2023adfd4a",
-+ "15da282cec1859a9591ab9",
-+ "7fdd8bd273e4a717226cc",
-+ "3915d17a2935e69936525d",
-+ "78acf4423afa2cfe1a6fc1",
-+ "4f140e806dac75cc67fa3c",
-+ "37c6007c4a0d223bec9e13",
-+ "1ae82d51e4845bef8c5d14",
-+ "65a0cb312051f321a95f5d",
-+ "42aa10dc273607be680d72",
-+ "3e26ac2b23b8b913845e11",
-+ "30bed73f7a94de9252a38c",
-+ "750f475708a1369e3fcc26",
-+ "61ade8e7a0bcc40ee4c2a8",
-+ "27b94ffb61590cd0bcd89f",
-+ "3f1e6a84c6b836f245c178",
-+ "239309f551f303d0037140",
-+ "211dcdb529a6bab73ad8a6",
-+ "7869636f37e63a4ffff7cd",
-+ "150365cfcc4a012a673c13",
-+ "2791e42c7f90ab8d4e7fbc",
-+ "1501743c447af65014399b",
-+ "2244b09bebeaafafb0c481",
-+ "36c0bf9a937fe6ca772d0d",
-+ "419e79b02e607a42e6e091",
-+ "400f76e25d392f347d4911",
-+ "5ba0eb3a703d0e42cf4094",
-+ "2ccb45ece6ec9abb9396c7",
-+ "44741cea6d95eb07e7f01d",
-+ "2b3c80a17ef583b6205fd4",
-+ "43fea0cf26a3e256438525",
-+ "59a7f220e101601c1d1b21",
-+ "24974593a8d59a89588659",
-+ "14ee39af97cd5a57b0e17c",
-+ "4807e0d9a38d358d8e14c5",
-+ "64d8389dc8d1b8910fc0a",
-+ "6fd170c2ab312a1f05d814",
-+ "68c4a816c641b5b1090781",
-+ "24e71c2d01e956269446cd",
-+ "3bec30574a99903f587887",
-+ "2b4b238bbabe3c70748eff",
-+ "4f0024b5b5580d91de0338",
-+ "646ce329dbe03b0b8312de",
-+ "5ba2a8023e5bb50b06e03",
-+ "19537a8ee281cd28d6388e",
-+ "10aab6ed7d1b631aa4b45b",
-+ "6810dd5945e01cd2c90841",
-+ "6ac2b70efaf88fd42c4044",
-+ "aa480c5cc76379e0cd2de",
-+ "64532524c99ecb3c365a41",
-+ "321e3fdbb0b890caadc570",
-+ "54fb5f18b6d001ef7be401",
-+ "364f70dfdbb439b78e5236",
-+ "9dfe57d1a9a3265476d14",
-+ "169665894aa2b356779b61",
-+ "127c199cd032273073f003",
-+ "fa33fcce55fe6a32e0915",
-+ "264e4b26d39119bcdc0985",
-+ "593c091517fff61973996a",
-+ "77da1b5a2124b6c9e11847",
-+ "32e5682bfa3fd95762512b",
-+ "72f7dab0b2d2a35e62478a",
-+ "4356ada1ada2921353892",
-+ "aa2cbd696160321682a6c",
-+ "7f8bc7233e2784039454db",
-+ "22884c181cdc222cad8e5c",
-+ "7203cc213679d179eabc35",
-+ "78a4c0445f77f31209ed17",
-+ "58b95d74eb4e654735bebc",
-+ "6a7db7fb47d3a18b620d6",
-+ "63942ffcaaae948e9056c4",
-+ "a2e07f9d73c5e3effd370",
-+ "6667dbaf666f92bd61da79",
-+ "4597c1546c899a3656689",
-+ "5fc3c4b7f7ad5deab829bf",
-+ "61170002cc409ddc34946c",
-+ "736d05572fd4ef85eca2b1",
-+ "1a5853834033d093c63d55",
-+ "bafe681e7e52073b86d32",
-+ "1c9f86b8742e14b6caf79b",
-+ "3886dff828cc76dd830466",
-+ "3b98704f287b0ee4e659aa",
-+ "581eb843dc9919f85a6644",
-+ "697396e6df9539532709dc",
-+ "63606d420b8e8397875647",
-+ "43b23b71c3202b31d91018",
-+ "79486109c44990eca52723",
-+ "2102dede4011c5cfefb7eb",
-+ "235809998758cf7e4acb1c",
-+ "233860a2ed2d566e131431",
-+ "305213c4b30a9e8be153ce",
-+ "7507998b275e3c9bd4e10e",
-+ "64f00973a0eb117b548182",
-+ "1416e580fa8bcb421dc6ae",
-+ "36735381ceff20a76e32eb",
-+ "45f5960a9db06a62821bf0",
-+ "8649a3995ad114bb4d72f",
-+ "374a0e75bc76f0adac7af5",
-+ "6565aab9eaab16f7430411",
-+ "7dcf3e6b7d3d02033c946d",
-+ "65c9be7a29bf45e5992a7e",
-+ "638d0229863032ef249643",
-+ "297ac1b2d19eb1e6e32d87",
-+ "6f339aa4d977875b1f1f80",
-+ "438e5a19094bce43b5b5ae",
-+ "4d8b0cd0d3401fd04e351",
-+ "1b5200adee3adf189b056e",
-+ "1de1227159008ec9b59ac1",
-+ "75266a81bf7f77865e6f",
-+ "9377e0e5c8d0de1856f6c",
-+ "2fd82a7276af1cf8b372ed",
-+ "6dddda58fac4e8afe0c9e7",
-+ "1d85b86a2f3f20e2832ec7",
-+ "35accc5a1e3fb474285daa",
-+ "3aaa2c73e60edc333c904d",
-+ "740f62900b9523de37b6b0",
-+ "7401d0da6ddc33225bec4e",
-+ "3e985c35adacaa90f5715b",
-+ "62c36a3627b9d2b3c18de1",
-+ "7b71ed8d456ee35292c960",
-+ "2648a635c5981b8daca07d",
-+ "2c33c53227ef5693d69f36",
-+ "1540f88099c93111d6c8cd",
-+ "5d9383670de64bf15eb49b",
-+ "2b23443976252ed21088d1",
-+ "7fa540fb3906a29b513bed",
-+ "2f88b1c87d7d02f6c2614d",
-+ "1976a9fa25af6d21cad47a",
-+ "444a50dba1a2bf390bea1e",
-+ "11c773ac555182d789142c",
-+ "3b929cf6fdabeb45375120",
-+ "15bf0eb485af1135b0e453",
-+ "126dab6c2bfc9b83475847",
-+ "c06cc01bfe2a9b427102e",
-+ "6a545ca829ed278f6ee7f4",
-+ "23dfbd70bcc040f36d4c8d",
-+ "378ef780c4d32c3f15b3c3",
-+ "7b115c7c405c6e4356bac1",
-+ "1a789636807476ba5bd789",
-+ "35fa1fca985387fb7fcd19",
-+ "21b466e3230d809af7aa6b",
-+ "4d1a8b95ded29dc79fd401",
-+ "59bc93698864451646a053",
-+ "7d6f33ec4a123fa281cabb",
-+ "168ebadbade1cbc44496d4",
-+ "413278937e6487a988805d",
-+ "55407685456c2cb8311d26",
-+ "79d07c6a6298d34020dfe7",
-+ "65ab167d8e02a8df26439e",
-+ "7dfd6cbe22024260a179ef",
-+ "28d6cf3e20845dc7283634",
-+ "648ea8b083a9828f8af17f",
-+ "2f64ac4f819f8343111866",
-+ "17da7c01f870089371d6df",
-+ "50f371336a648ade74999b",
-+ "1de402b5c6118ec8861aad",
-+ "48ede8d4a9a88f7613388e",
-+ "5f70485b00138272e9a41b",
-+ "65a1f7025bafea5088145c",
-+ "68d439e82561e55cbf1eed",
-+ "3d8509040aa8739f034dac",
-+ "2dd21df4dbce295378bd06",
-+ "111d6b945ff69be530cfca",
-+ "c1fd8fe80d24243e7b5eb",
-+ "42772160e3ea402851c9c6",
-+ "49374e550d8b335cb151d2",
-+ "71faf2ef0654e97e0c23fb",
-+ "4328d17f00529ea0fead97",
-+ "546ec9785ee72a2a72d886",
-+ "5d50e00035655b4d4ddcb7",
-+ "4b53718060040e8179d82",
-+ "282a80b8de04941c547168",
-+ "73673685484b4f3492976d",
-+ "5db729c46c687ddd7690e6",
-+ "2cad73640590abfa319b6a",
-+ "21ba4c5acd17d59fca0ed6",
-+ "186605e063004c7e4a9375",
-+ "2f687a83227d2d20f3b227",
-+ "30abf45ef025352e681192",
-+ "6a76e3eb445dada83ceb12",
-+ "7146b897c3d924725bd0cb",
-+ "14b68001dbf2f798322812",
-+ "54112eabbed42ad31637c5",
-+ "467db4fe225847525ef33f",
-+ "25032025485a4979b90394",
-+ "bc149e667cbe5a17ed77d",
-+ "ba357a389bca1484d7e54",
-+ "34ddcae84938327a3cbc30",
-+ "2e1709b850c77f2d508334",
-+ "15db077682cfbf170ce259",
-+ "280bf57e6ab95037683d33",
-+ "14f23f2aade2de50fb350d",
-+ "57d0cd94e03404b9cc57cb",
-+ "3282cc1545c9e77ce08abd",
-+ "567508a3d2a7b4fe3b395b",
-+ "16d8ad198832545831c93f",
-+ "7d88a8aadc667bc60fcb2e",
-+ "65118f1b7c366a8bbffcb8",
-+ "6766e290c73bba54bcc710",
-+ "2aad9e8261535baeb20b71",
-+ "4ba668ebddeaa069043875",
-+ "3f98705d2cf6346bf00972",
-+ "541a69af40655a83e366ca",
-+ "215c7e9a1d796b37a56336",
-+ "419d9a35dec3e5f421baef",
-+ "163690a8fd51b113410cc0",
-+ "1d165ccd9ac1e4efca4a32",
-+ "1d78f3d7e887debfa04bf3",
-+ "6b421c0667b336723fc0a1",
-+ "2cc7417260782c0d2394d3",
-+ "21887a11425a371d17db86",
-+ "5be7c40d96f7c97153eaba",
-+ "2e061928a5c3ad9bd6d9be",
-+ "7b398d970ad745817bcb61",
-+ "f7cdb22a187815c33c5e0",
-+ "a4f6b861d9a460f5b65a6",
-+ "68d4b88b77dfae0da7a5d",
-+ "4e4199871aec7ec1f99895",
-+ "68f5ab17da1cc5dda22c36",
-+ "1901320882ec0093fcda5d",
-+ "76dcede51c5087d374b20d",
-+ "38c3b4008c9d0442e7b602",
-+ "1edb6eab35de11d4922150",
-+ "5c53790457f0f66baaae2f",
-+ "664ad54353749f2ad36105",
-+ "45638582a87d07b0339df2",
-+ "18b021fe09fa8bdc44e567",
-+ "2acc282877d9cac38e38c3",
-+ "7bd177160999a650655c6e",
-+ "6717c0177a36454aef446a",
-+ "6334fc3ff70d17dd837781",
-+ "499a1abb2a1381278175e6",
-+ "14da57f8c43c94d5133d50",
-+ "4a1381ccb93c34dc44cab",
-+ "7cb4b7b324b314195807c8",
-+ "59f2c50a64b0c2a3e77442",
-+ "426b930b670412d271a091",
-+ "38aafca45b266dbeef6fc5",
-+ "35d63c19d36b85b5e96648",
-+ "31204f9f1e25342bbe28db",
-+ "560e1e8aafcab315236068",
-+ "5b80c6e1a5c4dcb3166335",
-+ "1d41ed28d87d24620da24",
-+ "38271b1467ee062bfe15c1",
-+ "2b7758dc0945a30687fabe",
-+ "4fb33de912dd8d2f8b8081",
-+ "4d6d3f3602597781bd2ea0",
-+ "5b509a0106f1d06627c353",
-+ "7ffd3daf76b1e818134f24",
-+ "858c45884b129dd66817a",
-+ "70c9c69419338ba44d6b8e",
-+ "17c5a39deb46d102235506",
-+ "2adb843a58d472c17edcb6",
-+ "798b816a4dea5ab964c64a",
-+ "68705a826f80224f09c337",
-+ "b720b9f07a6b1f41654e1",
-+ "44bf623ac807d4c96747f7",
-+ "16eaf321bf41ee635d6d46",
-+ "37107b083cae132372e4d4",
-+ "31e9d0607a42f7e54a8c81",
-+ "4d23f5ec809ab5057c2705",
-+ "10a61010d82426d21109af",
-+ "1ba28761d3577e14d38b38",
-+ "c57749387141da5f8fd27",
-+ "4afedaa595cb8c309d3fbf",
-+ "3fd90efbd4f0a4e173f589",
-+ "49b4801e9a2a64a27691d2",
-+ "7255e6805e164cf9788cce",
-+ "62ae26dfe2273af99c4830",
-+ "7e185faaca849a7f135848",
-+ "10cc6c74c4f9fcc9428f7f",
-+ "152b3e507f8b7898991275",
-+ "15a3be22e80e0f6f498608",
-+ "54e5b2458bb84fd7d4433c",
-+ "656c647508629462e9a821",
-+ "4c60164f9602341914167c",
-+ "2a17c7297a08a3839ca0e1",
-+ "47efddee37fa0ef6a72a47",
-+ "106fdb273227296116f40a",
-+ "524a00dd634d2f57ac7c6e",
-+ "1e6b9387cb8fb6494ace9",
-+ "25d293607604db30df2e4e",
-+ "2a07033e306623cf4e37d",
-+ "178e61138a7396d55d224e",
-+ "75aa7d0184dbe8ff376045",
-+ "421e7c19466e0847ffaea1",
-+ "732b807455afe5538cf678",
-+ "1a756f67d7e3e663369a04",
-+ "389f7a523536bc08e2c52e",
-+ "3a0c64739838b20476e0bd",
-+ "4346fce81f02878bbc28d6",
-+ "2f63eb0fae8122aa717440",
-+ "59308e5db85655d5ae0c4",
-+ "26b549a59dc35ee5ea7b82",
-+ "4d89a145aa9c4acc9cbc8c",
-+ "71b31c9be0276caacd1146",
-+ "718c4a4aea9ee0da236930",
-+ "7222af7c6bff611029c53a",
-+ "7f4b55a70795b9d26512fa",
-+ "32a9d4d4f421cf83f9237a",
-+ "53cf166384d9f967e4ee4a",
-+ "4566810f52dbdc6e52d908",
-+ "308ab3a2c4d7f4df4b6a31",
-+ "48a0fd415822566b2ecfbd",
-+ "242cca5b643a5f97a01a20",
-+ "1c28b93f693054a06fb391",
-+ "5a2cdb29cc6790b45d1f04",
-+ "5e8a5f959be2a17534c9bb",
-+ "3fc3e580d2ad754a34bc48",
-+ "6bd645b33c041537bb5186",
-+ "3019d2c9a4a70055fade00",
-+ "142fa830b7ba88d08608e3",
-+ "47226da695602ab6e77894",
-+ "70044b2b283269e2d14166",
-+ "46ef25878ebd3ab0b864d2",
-+ "557bc3fd4a1a6866c5d19c",
-+ "7b0ba619013363524f168a",
-+ "48b438b41e1bc7e58e6ef2",
-+ "39a95d47cf87d7d7d6bc8e",
-+ "27c1b7b41af947101d694d",
-+ "492683ece46681328f9912",
-+ "3ff99310762f37d685ca95",
-+ "4cfeaacecd47507ead712a",
-+ "38a39ada5dac01b5c2adf0",
-+ "dea3527d089eceb4c22e3",
-+ "7b084b907f4fc0301dbd5",
-+ "503f8d64438b7a99b8de08",
-+ "1d9a776cbeec9f5dec9407",
-+ "8a006b686db9c86eb0756",
-+ "144303d93b170584849f6c",
-+ "6b5617e9152db554d999bc",
-+ "1b9850e5f0f8fec4d967b8",
-+ "20fe6d6e332154329f831c",
-+ "5cee3684d600afc7804db0",
-+ "1dc0a99973375f6c4a4583",
-+ "4476f33d15e77d3ea6c712",
-+ "11f2c34fc87060adca2837",
-+ "71af54a2496a076b559a6a",
-+ "2ff21a8761b9bce5f34f74",
-+ "78b5c76a3ee8c2ef071fa1",
-+ "5738f30e5cb40b4ed83e60",
-+ "59fdfd7775c9750e48d811",
-+ "7b609aae44a59cf088c570",
-+ "4a67b54dcc404423e6b631",
-+ "8ea7f70a71ad46c0c260d",
-+ "5ca4bcb81d4d03018b177",
-+ "169566a480e42dcc8863ac",
-+ "789addf402241ff646d77d",
-+ "13b16e69e645c1703bf7c2",
-+ "16f732c5fac8192629ddb6",
-+ "7731327e4c6ae66c8e47a1",
-+ "cb8a50376e8204b8b5ea9",
-+ "18eecc5a940548e7c51e57",
-+ "3ca90695aca0fd32b28871",
-+ "728caa6061cb6ff29e6b21",
-+ "3d66483aa6674adb6569c3",
-+ "1208a98ea1dd68a01d3ec8",
-+ "5186a4a6ce8351b40466bb",
-+ "79c75783449d733d93b4a7",
-+ "52f87910ef7e6dde1f16dc",
-+ "57aede4ca861e5051b15ea",
-+ "70f2550983dbddb8957b2d",
-+ "720aa7a7bdeaa025a23a54",
-+ "3e7db1002a9116a5e20032",
-+ "25d1c185377c3cd8e704a2",
-+ "794294f26a938e1caf3c0",
-+ "522619b83283553c71de74",
-+ "4dd985f2fef5c539fa6a96",
-+ "442eb4a36ab0287728c1d2",
-+ "2a2b13112979d27489208e",
-+ "4d43f85ff03e3cd18ef302",
-+ "71e916ff79204bdad49695",
-+ "270dae1c5ccafaa07ae8ff",
-+ "3a2f442f3b3a9a2af00b28",
-+ "3834a1b7acb0f05d9e53ca",
-+ "5ca6e41b81529e38a59f6d",
-+ "3164747c95104338a78b5e",
-+ "b66201b62ddf6d13c5534",
-+ "3dd366ce71f1fed428c326",
-+ "12413ef53ba7fc6fb5cd35",
-+ "20f6e36fbf07174b587397",
-+ "362261ed7c97591714ea9c",
-+ "1ce2a05bccecd36df96b64",
-+ "358d745e0bc4be1c3f4586",
-+ "221bb5afe07669d916e136",
-+ "624d49c04a48d42d76c466",
-+ "a3cfbf8b779e15bf28c99",
-+ "28eb082844c0ed277d2520",
-+ "4c7d0db8193430b75f41f5",
-+ "3c9ecb18a83b901f901704",
-+ "735a03f218370f8bd85ee7",
-+ "4db4f1a602cec485019670",
-+ "70357dabf2c34c8309c723",
-+ "ecef39a1ef4b4d1e8c6dd",
-+ "2cfcb08879a9aecacf316e",
-+ "1175d70c2c07855db37245",
-+ "786d54b4d5ce74ddde20a8",
-+ "ff53eda132c9a3cfecc65",
-+ "728cea43531fbac95263a5",
-+ "20601a054af9d51633fab1",
-+ "127118c35aaf80dac2a57",
-+ "1db83df0a168bac450e4f8",
-+ "39c167fbee27f65e96cc7e",
-+ "2b90f954efc9f58a07a363",
-+ "63f5fe049f46d509d141d8",
-+ "75ac7a48082d5afa148e7a",
-+ "569bfe59efe21364bf57e7",
-+ "475131d01f3e6dc3b169fe",
-+ "716991a2a17f536244885f",
-+ "150c29ddf5483fb74be06",
-+ "65fe3a22c7d35ad3f875e7",
-+ "1754f51aa79c3b0803bf00",
-+ "a4d6bd96f61637d730c9c",
-+ "460372cf36a22fb6b9641e",
-+ "43dcb4450a256b9a0eb673",
-+ "10fafca3d5f71faff8f1a",
-+ "177f43e8d62e87c66b9da",
-+ "420c1c0074adbe0616df4b",
-+ "1e39f05dac576881e6c295",
-+ "7234cde8ecc6673caf864a",
-+ "661787ba011711628186b7",
-+ "6473dbfbe4a3f63d08e3f2",
-+ "62b2e70d411eb11bf0a695",
-+ "2e684b7951a2526d838fd7",
-+ "5b4aec35da23a27808974",
-+ "51e267e9a5a7684ebfd343",
-+ "36b36922114363ceb85a26",
-+ "5687a42dcd55b43227f657",
-+ "3d28e1c12f9c60e500dce7",
-+ "6bc6acd592c0200b749e07",
-+ "773a63e6b7c9e3bec91272",
-+ "536bfe32ac8da07b253be0",
-+ "2146fc84389596cf6fa8ca",
-+ "12a2fa8c4d06a694b748c6",
-+ "49ede33966bc3f0dc8757c",
-+ "4f787847feba11bfcbc764",
-+ "b2687172956319218655e",
-+ "4bdbd2765933e2b1d70563",
-+ "1ef9edb1f958cdf81fb9d8",
-+ "6e8b2732511303a48ef731",
-+ "3608208e4497b40a62b3a0",
-+ "2c4bac0a0cf06ff50ff71e",
-+ "784bdef1566f244d4ff44d",
-+ "5cd3a1cc8bf78e4c7e3747",
-+ "418b73330a3b4d1a80474f",
-+ "5f87453deb48ed6c9a1afa",
-+ "3d9131aa5802e27a83eb61",
-+ "61539cf7b388689e7a260a",
-+ "260213253056e29f0ac6e3",
-+ "2768a7a783d9baa4e5cce3",
-+ "7e61e3317d07a1009894dd",
-+ "6927c4b12865ac8f053dcb",
-+ "352d204330140b3786230b",
-+ "67ae2ace35fde529154a8f",
-+ "7e37a126be9507ba4c717f",
-+ "2306ed04565a9cf9fa84c2",
-+ "6b380bf5d71fe523ad1e4d",
-+ "6aece787aae5251b57b3ae",
-+ "7f2209419e3163fbb4cd8a",
-+ "376c7a8d0fa0abf4c0bb7c",
-+ "39a26bf8336439ba9968b4",
-+ "620c14b60053b660420c4b",
-+ "19675db116558d90bb4f6",
-+ "2c16632a312edfedcc7f72",
-+ "1945686d70d9df98093dd1",
-+ "62e4e44df51bf11734aafc",
-+ "5d3293ca54de6a3aa06b08",
-+ "610d07557d991d9db3dea7",
-+ "6b25878a1ec102b9e883f1",
-+ "5d29345f097e1dc041bc7f",
-+ "797d4c38129f52836fa5c7",
-+ "5bb2eece8c95a515d2e2ea",
-+ "451e904c04882b739d233e",
-+ "4dac1ce4b87e60431b8a4d",
-+ "2f8592e02ef759cdd34c72",
-+ "7c1d3420db42a6ffd37cef",
-+ "4b0d1ff6297b378945b906",
-+ "744db8f7e25f69bc47f2cb",
-+ "7fcd5bd9328b9f06223a1a",
-+ "37f7d323d5bf332eed1bcd",
-+ "629e9c894bbbebf06d3299",
-+ "d427f0f9d14ecf4c54fbd",
-+ "71e1aa5a9aacb38b66f605",
-+ "361fe28e640ec02ae49613",
-+ "551b691726c66f9ec1f9e8",
-+ "523ee7b96bbc2b0977b4f",
-+ "52e6bde0fed2ecd82f7bf",
-+ "3a4a4ac73bb38c0c48aea2",
-+ "207cf80fa76e8708f88dc9",
-+ "2bfe7376e8ab62fafbff59",
-+ "7b8ff43621b7fb13c3edd2",
-+ "726dd56f61c4c5016201f9",
-+ "3915c71f3b447b64ce4513",
-+ "4781781ebc739ed9d4e35",
-+ "3669984e1ddcb753afb878",
-+ "6c8071fad8933706efff6c",
-+ "25330fc3e5df50eee77cd4",
-+ "316bc661e89aeb9e7e20a6",
-+ "2a035934ba5fafe2ebaf47",
-+ "515a0593d1e619118d226b",
-+ "72716051b13a2c1876c8ef",
-+ "98079c36403a029b3f0bd",
-+ "388d8c3c958b6abcbf6aba",
-+ "3d9a1023138b0e9cbe7d70",
-+ "7bc0acaa724475da5a8a83",
-+ "4a266217d4534cc588119",
-+ "62baea1b89700a3953e872",
-+ "5fa826fd6352f83c34bb5e",
-+ "71be60f1312db2fcc7f045",
-+ "51cf9e84f5414c7907e79a",
-+ "1fc064c4398ccf6bf7b1de",
-+ "70594464b46de9acc11f02",
-+ "4de3353d33028c5f557394",
-+ "15060a6e69612092d45768",
-+ "2142584bb5cff6c1e5011e",
-+ "7eaf34148ada80711a86fe",
-+ "64f201a4086e40b2a3a19d",
-+ "2d794034e6ae324ba7041c",
-+ "56359d56dcb06ea3ab68ec",
-+ "49d6a78a88159326775c2e",
-+ "32c2902887e1700cd5dddb",
-+ "c8806bb60205886d4ff9d",
-+ "c0ecef4f88f5957d4b1b",
-+ "b0715d55fe0c1edd9613b",
-+ "b512df0270e6ffe2d4a9f",
-+ "563e208513fb23ff9ca7d",
-+ "54c245a123767ef7f22e33",
-+ "5e83dc6dedd0679793feca",
-+ "3c53d6131f8c41d5d7317b",
-+ "349470b19ee7a8cf922b33",
-+ "432c0a15a9dc31696b79c7",
-+ "3de21ce46f7c8be3bab3b9",
-+ "669f3588d7a4ca7ee3dd1f",
-+ "2bf32012cc6354c709ad2",
-+ "2e5ffe59b5dd3843fa4c17",
-+ "601b382825c1515525a19c",
-+ "78dfe864170ab14a408743",
-+ "6ebb0dee9291bd90cd2215",
-+ "6f52ff1c7f6dba719401b2",
-+ "d16f53a28b7042d305524",
-+ "67daf6ba4dc4d74236df77",
-+ "72118d192add3aa4c1e0b6",
-+ "7e1ce3bec1e98dd35947ed",
-+ "2330589e6c22439bef95d1",
-+ "214d49f3e2681b232cf62e",
-+ "ceff6274c7b15ae86dcc",
-+ "ee736adb9b9c1860d483b",
-+ "550e4c9178e5dead2f815e",
-+ "651be8b59b15d629ab774a",
-+ "655b44d3a92231714b14c8",
-+ "1a88cb781abea4a70cdfa7",
-+ "7a520385f587099a8da6a1",
-+ "42a1f9791054781a203d9b",
-+ "1aadb770481974ec7ba970",
-+ "1634b76faeb97237505ef4",
-+ "577a2773ebc9e2412cb050",
-+ "68075aa010a2a7afcb2078",
-+ "e5d22d0ba9e3194e2337d",
-+ "68c1092ddd7cea180b7a8a",
-+ "1f6a141f6eb54cb95d54af",
-+ "6db9060a2078f4de4b4e1b",
-+ "21ac3ebe991cfe1bade37d",
-+ "45e67b0777cb6facf28d74",
-+ "398768a52710b109c92dcd",
-+ "6c65a41601a28b4854db0b",
-+ "3fa82c77c11ef3ce373a08",
-+ "2219a8eabaec2cc4da44cf",
-+ "25b286320c27c0f91c388",
-+ "c663e7994203d116af45d",
-+ "373211f704832f37df113f",
-+ "33f6606f82062475e2caf5",
-+ "77ae05c9ad4bb1a82ee6f6",
-+ "72f290cf9ea470dcec1318",
-+ "20cfa0c6bfbdce5e399a70",
-+ "384ac895940651e4b3df31",
-+ "2a6da3e3f6425cc4caf185",
-+ "3559d5470cc8be88bbee52",
-+ "731437b69ca76a93992caf",
-+ "31f0df7953457ce90524a8",
-+ "7fdefc35775213402acc91",
-+ "246e8276fd64f7af18402a",
-+ "1e604eea4a6fb7804d131c",
-+ "f6074b1e17e08713a2a46",
-+ "23931a4d64503bc81a5a33",
-+ "6395a035a6a5e009dcf586",
-+ "23db937264552bf6dc2858",
-+ "50e45902fe1a308ec88670",
-+ "42e82d8613957e0acb2b09",
-+ "3d50a612150493864e2df9",
-+ "1f08599df3ce28d2e2a99",
-+ "172e3a20b269ac416b7186",
-+ "624f69e6f91d2b9574cb8",
-+ "33b05c78a18798e4462d45",
-+ "5d5e844e1fd78c36c3341e",
-+ "5a1b57c203d09cc8a22696",
-+ "775bde6bde2d0aa4187fe7",
-+ "4be11f1cd60954626093b7",
-+ "571513666bf5e4e0b1c7c0",
-+ "30e484fb4ce5927a937373",
-+ "6ead11e0936e4bb4e855e1",
-+ "14b5583a83133add54d368",
-+ "361de61b4e6057d1cb2274",
-+ "24364b397921eedc03333e",
-+ "3f26224827d27901ba392a",
-+ "147a0d7fc26817e7251ada",
-+ "4debfa77d5d5f3fa106f86",
-+ "1f8b63c5fea99ffd6a5348",
-+ "59dbf0c177e94a664cfe3b",
-+ "656e5b10b9da085176e0e4",
-+ "678fb8bf7f6342c5764339",
-+ "2cd2d00d4262f35754bb13",
-+ "67b770c97867478cc69b37",
-+ "bac1f8bfa0e63045ec3ea",
-+ "4303859a49916073987344",
-+ "322164812a5696cb2322b0",
-+ "50148cebf8644fa7375aa",
-+ "50b37142bd10ca63ad3866",
-+ "5a86321f172c81fbf185ef",
-+ "4972dfe88d7e4fb02ffe72",
-+ "3aac1aff3b6e14d31a91e7",
-+ "6d575f1601945a3ca29eb8",
-+ "6c290f053f3f46327ee8ec",
-+ "73040349f8459e94069012",
-+ "2dd44a6d1765874cf1dbb4",
-+ "52492b4a4856d777ca0682",
-+ "76d72d56a09f253d257f0e",
-+ "6a4862d59f8198b4ea0fd5",
-+ "ee2c219af9300476a7d41",
-+ "60548a10984139e59f5d8a",
-+ "423813f9eb92bfadf14d9a",
-+ "6a3f78db4e25085a772f7a",
-+ "a3d31a1daca53878fe695",
-+ "1c24006c67392d350aebe9",
-+ "5baffc06fe51f5caa49a4c",
-+ "6f4a829757301eb1143585",
-+ "202377a9328fcb8f661a5d",
-+ "6506edb4005521bcb61671",
-+ "208dfefbc938eb8f166f28",
-+ "2f8aa359ac5538f4834ed7",
-+ "6b36296c1bd668243e920e",
-+ "7856c391e8828b90a94afe",
-+ "5728f13fbf1367c5292a3a",
-+ "6db3eec1da4e57eacd7cf4",
-+ "520f0b6932233966b7bdb1",
-+ "225461e731f47cbf2cbf5f",
-+ "15bef1b795296c7e8862d0",
-+ "217d231f2ea4bf28c97e44",
-+ "31e4aec6d42e52c762e301",
-+ "16103ea0d454ef686ebf4d",
-+ "34470b1eee2f871c42ba71",
-+ "5d172643cb569d9b2ab357",
-+ "45838fc0d9bd4e814df398",
-+ "520d412f22645bfa3f3a33",
-+ "5dd2532249188dbe3d2539",
-+ "336699d6c6f15f6ab914e2",
-+ "48384f03b178aecb456dbb",
-+ "358734094106c4c77371f8",
-+ "13705ad9594243161047cf",
-+ "9cc0a7524feb44aafa989",
-+ "2f615de4e96f8f9837947f",
-+ "4f571e68d11ba0c201ec2c",
-+ "1c7c6456335bb722881302",
-+ "56f01f51a5be66f649b1d6",
-+ "4a2416a8cf412f996e9654",
-+ "5593dc730a3a85d6ce77d2",
-+ "70628248b6cda7311de5ca",
-+ "49212e86ec70f1b328e11a",
-+ "3669075c083d3a0547d7ee",
-+ "7c64411c354fca180b974e",
-+ "be2266f15dfa6e02e4a02",
-+ "69110081782c350722756f",
-+ "5370ef9f2399e3c803b5a6",
-+ "4277911fa0e430960db091",
-+ "46d2651ce40dd1fdd11e69",
-+ "65838019d10030d2edd34c",
-+ "79ae8d3a65221805ed59d3",
-+ "4762e175d924ca1dff7d06",
-+ "226f7d490aa9d47314570",
-+ "673a9bc1330de8c0b0abe1",
-+ "a80defe299bf7c4d81738",
-+ "1916345f1ad90cf48c6472",
-+ "13cc5c5fa7afb2b7468106",
-+ "656f70349417ef562616d7",
-+ "520db901eb8309582e12a2",
-+ "4253e27061630b9343ddfd",
-+ "43012f86bfa02bf0033ee9",
-+ "51524048af5a6750b1955",
-+ "37a4477749686070e7e049",
-+ "39f7a72e1daced6411b1a6",
-+ "4a98326f880a44e2d6ea5e",
-+ "574f95a475dce62a3071ca",
-+ "23c20aae79c2ffaa75a36c",
-+ "59f67a0c66d5e9744004c6",
-+ "25ff556cf1afefe2cd2ba9",
-+ "41be4715ccf6dde8b12086",
-+ "5e9464fbce6027257d92c6",
-+ "5b57bc12988f27dd0ed418",
-+ "1f1c7eef9d0f99e1e209db",
-+ "1a95aa2ba56c053acf7e56",
-+ "6f085a8f46a66e79fe4f92",
-+ "728aa131a37012e184c2b6",
-+ "21469f9c49fb4d2fb54baa",
-+ "67d12b5d61741b8623f378",
-+ "2a1abd32897155b55014be",
-+ "35ebfb3fd5a71979daee0c",
-+ "3c994e655edabd5cfbe8b8",
-+ "b5f14620587f1e8ed5a45",
-+ "4cb0c7462e90f28fa251d",
-+ "608a29bc043b54adde90b0",
-+ "6337453f9c180b8ddb37c4",
-+ "60e351e7834b181d30a00c",
-+ "15324434e27844cc4fba51",
-+ "259839d29faddb791e3548",
-+ "198d839621f761dde4f853",
-+ "221728332d3142e3346be",
-+ "48cd6ee15c4874d342b21f",
-+ "7964fb4049b23d750b6f0e",
-+ "365cb247c96e7933341e76",
-+ "4f7806a65676c896ee7db9",
-+ "99539a5120bf06fd3edb8",
-+ "4374a87512bdcb27925ebe",
-+ "db7255fca12f37c452ffa",
-+ "4a2cef4e3606d1b9422334",
-+ "b8385ec48f904d72393ba",
-+ "71d26320321cdb1dc925e0",
-+ "1f8889a7c0321f5279b37a",
-+ "7decc101d84d7378c8efe2",
-+ "1526a67a2f54717285cebc",
-+ "4a292844d7aa26520c09b1",
-+ "5edc4541d1854504d071a",
-+ "44f34a642236b1e7e4c8fe",
-+ "87eada956963224c06418",
-+ "76393b1564fa2cd841480e",
-+ "2aec8efef6c41604b67a83",
-+ "2644cda468b716b53c99d1",
-+ "4d74065738715d35d47743",
-+ "1118a89d656497538996f2",
-+ "26102582959271955d45bb",
-+ "1318f3d7743d8ee4ecfdb2",
-+ "3128342c1cd21185c739db",
-+ "7568ac37df7da28c47bab9",
-+ "be26e79f27c2fffd5718b",
-+ "2655fc5da8cafdc10e8c6c",
-+ "6336954989b8a716380f64",
-+ "2f1dd3930a2948f2187f86",
-+ "90bd6d6fef2e358a664bf",
-+ "675948e6670907b03227ed",
-+ "2025bd13134bf0ca69b0f6",
-+ "509dfa92ab81408672391b",
-+ "5c699bfc1a98ced38d7c88",
-+ "14816e04a6b799d1ce9e1e",
-+ "61978b574cf8f6d53118d6",
-+ "4e203019ba4b94cd691d60",
-+ "7df66ef2eea696dbe6ad95",
-+ "43bc8bffd5b4fa12491d7c",
-+ "1207aa2a4ea7c882b5e76f",
-+ "3e9654e3940c0f541b93cd",
-+ "4a64cce2fc4633dbb63e09",
-+ "4385d494a7bdb154810c4d",
-+ "dbd1bb9693e65c5eeef4a",
-+ "7d58cee39bf1830f1b3ec0",
-+ "6cc6a998d40d1bad211cd",
-+ "3aa6d80b7b4477df65330a",
-+ "2ae1383e51812f870ebf41",
-+ "1107ffccdffb2932659325",
-+ "9cf05f6855d4068390948",
-+ "36f24af02e5318171bea53",
-+ "4d0a046c7ec4f54117f367",
-+ "7bb1913bf745fa526f18a8",
-+ "2970c6e86dd017c5341ddc",
-+ "58c411222783451febdf82",
-+ "657128352843035ba5fee1",
-+ "13c9d1e81de8cbb64a1797",
-+ "66e2564796168c2d0a015a",
-+ "1b9995439565d095eb8a8c",
-+ "43cebcc2f248fc1fcbd6b4",
-+ "7e18b1dc04cb3af247aa31",
-+ "269ad3cfbd18bd255786fd",
-+ "2f1b9eb8c8ceec3aba8c3f",
-+ "890072ab6d3eb608d30ea",
-+ "4e72dcffc8f26eb136b7c7",
-+ "71db6b9125d5ab5b3e7493",
-+ "57bcb68e1f52791794bf4b",
-+ "7489fd5407cd56abfcfc49",
-+ "45d43d697cb8503c85839a",
-+ "2021e0329a909a39851fe3",
-+ "6eceb600a9b81fd3aa7175",
-+ "4d63e68650d056d4e2cca2",
-+ "21789b3595bc366315af2",
-+ "781973046ae51aa956a060",
-+ "2353c3f920ce7af530f96d",
-+ "4a8154e2948099e7b7c4c5",
-+ "319945f43efa75c6d6fbd6",
-+ "1a0cc5d78d1da3759fd0fb",
-+ "75a29d53450973ae07e5b6",
-+ "670c6449f82194e5367c1d",
-+ "6978fb86dcb4ccc82a3738",
-+ "f6c4daf384fb3d39aa985",
-+ "47df2e03e1548a16e223be",
-+ "36224c16a9190272a21e14",
-+ "abbcfb2e4c3da6b090978",
-+ "1fb7c568bdffd12b767330",
-+ "77f657453333dfbed3c7e5",
-+ "68855602ae559673b8a2dc",
-+ "57b79cb347145bcbe43bcf",
-+ "542f3c6130072ffd145c0a",
-+ "7d43897c9a717ea4ffaf53",
-+ "2928531ef291fb90d243e3",
-+ "6308b8f5574126f70ec3cf",
-+ "3b77afb6ec85d92608bbc9",
-+ "39bc9fe63b4ca1891dbe7f",
-+ "14b126e3c0b0f4dae2ddfb",
-+ "634af4f8ff5eecb70f9b3b",
-+ "5939fc19fad9c14c8917a9",
-+ "cb351e8f1a28278af3af8",
-+ "41ff1be99bebe99b10f273",
-+ "32c9397c9adff65d943965",
-+ "1e1de465daadd9547d63fe",
-+ "1924697a3681efc60e8e70",
-+ "3e14120ed24ebae50e64ef",
-+ "29bfa87365d098b3fe8377",
-+ "48ad93093caf03d61b0aa8",
-+ "116c396589d81e0684d5a0",
-+ "4550a8c9126d63e137546e",
-+ "3d325eede75d0a573042e2",
-+ "715fb02624875de3ce495c",
-+ "2c1cf6d476ed98aad97b90",
-+ "41ec16a5c725c7d32d3a8d",
-+ "2a6ced30aaeaaa3957eaf",
-+ "284cbec8937114a1728cdb",
-+ "7fd049d0f5d16bca84fbf0",
-+ "1ece2489d9c16fd0d7c093",
-+ "7a1817cf8f21c4f863437a",
-+ "2b89a454954d4c6b2e2120",
-+ "44b51755bfc5410d6cfad6",
-+ "31e4383d0d65d0adfc3084",
-+ "2f44e6e7eed452c1b02ade",
-+ "46861d4c2ab5de181f3e32",
-+ "30c01b8abdb9d98a7941dd",
-+ "593ba411e3481cff090a6e",
-+ "5f7998cdc984bda089a530",
-+ "38863908f348e0ff24d2ea",
-+ "7db23dcfd5b48847b2da44",
-+ "70cc62d0a35cccb85972ee",
-+ "51e871e33b066886db1e57",
-+ "7ab8d7968452d732fc3362",
-+ "6cbec7ee27571943d99309",
-+ "65ccc844f43d7740c3bb83",
-+ "2d92e146c92e5c2141114e",
-+ "78208a8be2c33504df2573",
-+ "1b892a6bc6d106036dc210",
-+ "1ba30d22d8ca0e3412c0e7",
-+ "7f5d5abee4ea627ca346c",
-+ "29d27ddd5f46b0a514ec85",
-+ "717a62d953937ab8d63ef4",
-+ "46f7147d837df6469c39be",
-+ "1e9e640158c2d5ef405818",
-+ "7f30d40bb0193bcc3bff38",
-+ "7e84a589b79843d0f09d89",
-+ "1984882a708094eb26643e",
-+ "6b386c8a9795cf0b45e160",
-+ "282bde17894173789173e7",
-+ "75b60c74c3f4835e0ba3f1",
-+ "66673b06f4474ab9ac84e3",
-+ "768b4e15703c2b99a95ee7",
-+ "3c7d066200b6ae5892048a",
-+ "194fc13ec819c9e2289cea",
-+ "3c066553be4fa2a741db4d",
-+ "31018337a926110b0a5b91",
-+ "7ca0b74cff2de67657aaa1",
-+ "610a799f5f9443dd8f333",
-+ "29dc0e371f2a3ea6cf4d60",
-+ "bf1c05f166718be1c6836",
-+ "309eb70bbb47b20185134f",
-+ "4b31d20ed3a1f68f117d30",
-+ "201a5f031183f9e3136174",
-+ "6d82429df8c04f3e8cbdea",
-+ "4e4d1094ae9ce9f42b1d71",
-+ "65e071aa89e8e9caa17f",
-+ "7c3ad9d6ed54817d082b65",
-+ "352a1b67a355f38121c462",
-+ "2d980e097ecb2ab91b9b92",
-+ "96afde4db924db62eec7",
-+ "6e20ab59697e8bf608ee9d",
-+ "2ab6145578df975521753c",
-+ "5c91f707bee21c71c33c34",
-+ "676d8d92a92b0706da21e1",
-+ "3a82f64175d5b3caec9c53",
-+ "2ccc62a5fe0c2d164b78ac",
-+ "7f53a40fb6d59c55fc0a6a",
-+ "eb12a34ffd8e97426aebf",
-+ "330554538efb3452d928d9",
-+ "37902c15fea70cc2588984",
-+ "1e3f1f00ee5c87d8bcc6a5",
-+ "21e6a33067365b1e718020",
-+ "4113025c4b26d50d501a53",
-+ "1d50b663f8750fc777a8a9",
-+ "47267802b4baf11a616d7b",
-+ "206a9c38358f291b01e407",
-+ "7529b300b4b89c580a5f62",
-+ "59aab11c164124e5cdf604",
-+ "3d3a2d2ef7d22dc8adb10e",
-+ "1fa48382ab305e0404adc",
-+ "6e72d626e97997cb842159",
-+ "53a902325a9087232d64a1",
-+ "726d30610282ed39d8f203",
-+ "6e48887c0bee3ba8386f63",
-+ "532cc2e0afe1d979c42a70",
-+ "614224558d52e5d4eb23b8",
-+ "c0bc8c55f3b95e521ebf8",
-+ "1b4e22a54398ec5712c2f5",
-+ "45109475272b0ee96581b7",
-+ "6c065cf636d6bc65762095",
-+ "7bfe5c12baaa86c60d8117",
-+ "62e55ea318373ea102e458",
-+ "46789b05c1e88afd58b2c6",
-+ "37120883f03d674fbee3d7",
-+ "63a482d47b34384d6c0abf",
-+ "78778c448d7d69eeff19c7",
-+ "69527863032c1ba7d7e238",
-+ "574f9294e066c8fdb761b7",
-+ "3adbdefe2bc4d894d3eea5",
-+ "7c2fed1746d715eb95529",
-+ "2501ea3eadb12569e01e7e",
-+ "3d49c943bed92220933501",
-+ "2327087d544749f348c909",
-+ "63a2efcfe030b5eb3fd526",
-+ "2d2c322dac49b5fc4277a6",
-+ "4ebe9580f66ecfa62bdae4",
-+ "39450177cdd3980c4efafa",
-+ "3349dac2077bfdf6a12d86",
-+ "56b71258283af76e7bcfab",
-+ "2bcddd9fb0f98505c98aa9",
-+ "45166035762ea541feeea1",
-+ "6bf558bed09b770ac7b7db",
-+ "69498de156a0aa10a4e2dc",
-+ "6cc9f90d012be002904668",
-+ "32f8a36cc1b46c25cdcc28",
-+ "312ecee1519b0617d31186",
-+ "706df4fd50e1c42994aed3",
-+ "4edae7063e31e196fbffc4",
-+ "7bb42f21df6b474c926cab",
-+ "7c2bf4a989b0889ab6c2ee",
-+ "14a25dabe8f8f9bd2745b5",
-+ "14266a10ce4302dd32d262",
-+ "411254ef95bca10cdc61b9",
-+ "2cb3e5c4dae6b173319195",
-+ "575c81fbd5408f583cec84",
-+ "904098cdbfd4389279e30",
-+ "4499b6e3311b7fe5b9c98e",
-+ "210804240b673797c1da0b",
-+ "4cfa062853643ca21aa8e4",
-+ "155503fef8a8a42650f8de",
-+ "214de8b9e305b92a9ebc6a",
-+ "aebf119c49f1f5d4fa77",
-+ "4019e2ed5f4f686e75a334",
-+ "26e8b6fae1b81184be307f",
-+ "4cbbf282cb8d5b492509da",
-+ "32124e45d595b542218cca",
-+ "4fb7ac8e103e64af4c501b",
-+ "4a99080981fd90fd8f202c",
-+ "5fe19870cf156902f09ea2",
-+ "35da7f1fc27e6edf7e2774",
-+ "171772c43b172c6f59b4ee",
-+ "396792f2585d3e823623df",
-+ "68b020f430372f0b20817e",
-+ "58a41d74e16c1b1fb6cbf",
-+ "6ef7e0b470470f565c088f",
-+ "4dba440f7f398ce0198b25",
-+ "2840ecdbeaf847ed4e56fd",
-+ "2f36ea2bf51461b1407878",
-+ "2cf0b3c6e55d4f6c794d8f",
-+ "31fcd9e9b87aae6bf32f83",
-+ "47626057be8af9d92cef74",
-+ "2113e1a93f5d2f1cba0377",
-+ "4176799b704bfacae7d897",
-+ "524919eb6636c6c6c14a82",
-+ "64d1d7c43b00bfc99b8bb2",
-+ "76a279212b584d95ed2cd0",
-+ "37e704706a7967491e3628",
-+ "5e1c654c63269bdc77fee1",
-+ "58b898760417610a09ff41",
-+ "64981a92737099a91d3794",
-+ "571cc10547604b09ba9b69",
-+ "6714be0beb22d71708c5e6",
-+ "359b739ee10f4c4f24e721",
-+ "454b67d8b7470679eeda79",
-+ "615326e14c6c74c717def2",
-+ "2dd86ec9cb242b4e68016c",
-+ "62a4fc7a9af2d27e92b08f",
-+ "cae1cd222ac38b9a89a19",
-+ "5fd2fb0300581c5f59fa7c",
-+ "1488492f946cb788d721d6",
-+ "509ca3fe7eae200044712a",
-+ "27c4576460764aabe86ca",
-+ "72e3a111047449df428c07",
-+ "4dd2e16c6f9989907671be",
-+ "415d623b63f929b3ef879f",
-+ "9b13c11e290284a86caf",
-+ "78b61404bffa36b135773d",
-+ "10c2f27dd2e5d8f77a071d",
-+ "684e96f56360b04576ab1f",
-+ "6bd55e81cea4df6934b8f5",
-+ "288723d0eb9a25150c0772",
-+ "4eca5fbd35a4778cd18f80",
-+ "590c069f4d458da38448fb",
-+ "6a91ca9f24a59bd3f77cce",
-+ "4520d49550bf0a2328020f",
-+ "31340daa6bee66dc702e47",
-+ "21cbfd5db5cf856bb6980a",
-+ "2ac5b705311ca0e8e6bcda",
-+ "28390f3626b1fdadbcbfd8",
-+ "3b79806e60c6443e5b75ae",
-+ "4e1dab19fafdbf4d11123",
-+ "4bba04cb6f7dfe33e4bd",
-+ "25b65fbcf4deba1535165c",
-+ "5d2602e9c7bafe79929bee",
-+ "1f5e885344b51456b2195b",
-+ "5c585a64ca68d89750e9da",
-+ "715687651f6925a41a3bf1",
-+ "47be6483decbcd32c50b44",
-+ "3fdb397b831af56c0902f1",
-+ "60ea199093a4e9f80613b6",
-+ "59048c7bc400c1b2f055f1",
-+ "5ed2c798bc4d3df9693b4a",
-+ "26c8838f41263334d39302",
-+ "257f0dc17de9e402db5577",
-+ "5eacde9e13242553f24977",
-+ "232706fb395f1e37b2683d",
-+ "5527388c03206dff6a464b",
-+ "6207f87b59fc321d1fa8c5",
-+ "3eed8387e5a22f84995caa",
-+ "1ead4bf29c5aa1e11118b1",
-+ "4e9e415c8033fbf3989b6d",
-+ "6ed402123cbfe00df8030b",
-+ "15c5021e3387b5104eda39",
-+ "385c720d2080ae9544a074",
-+ "12502410f917e813c566e4",
-+ "dfa61531c98e389318ffc",
-+ "75df623177a9cc914a680f",
-+ "16a2f9f4e53133020d693f",
-+ "68bba5659f4f20356a0cad",
-+ "5b60aca7fe85259aa048ba",
-+ "748cb85b7df9ca5a82d4a0",
-+ "5448bba652328fd63e3ca2",
-+ "497b40c11c5d479cab5f20",
-+ "1ff2197a0e5b3d0b65c928",
-+ "175182c7cd2ce431b0150e",
-+ "58a47971604afebfc2dfe",
-+ "7feefa2c38e3a6212b4cc2",
-+ "1dcb001f06c75da3270a59",
-+ "3e7a71b985de5c6c7a9f57",
-+ "ccd4be560162041ae08e2",
-+ "4ec109ed0d029a0c6bd1c3",
-+ "363177aa4ad204478f4d2e",
-+ "7b94e69ecfb1ba4bdf42b9",
-+ "68bf1a165a85b17f192a39",
-+ "fca586b3bb595a8d4101",
-+ "7914f6f164e20860badddb",
-+ "d959366c9d2eed9c988e",
-+ "6b1b87bf69d8ba16154459",
-+ "5798f45a6d32a5d9e220c4",
-+ "23ff36317f41cdc69b5f8c",
-+ "3337445fe49877ddd94c8c",
-+ "27e0d5b6d5b01b974468e6",
-+ "155305c9e80b8231f3fea7",
-+ "46777bd089a8dc8c44ba66",
-+ "4eb92d6051c08bfec28d32",
-+ "58de9434dcaeb21007cf50",
-+ "4945531dd0d285dff322e3",
-+ "5f4ee2c7a7d447e781b997",
-+ "255da48e767df6db73178f",
-+ "40f14f4642441c80c723a2",
-+ "23b23c226ec7148e9ecfd4",
-+ "2fc4119b8d9484cd86a0bd",
-+ "e8a31983f38b3bc04d83f",
-+ "403c97fd7a8e612b101803",
-+ "360136af955e5fa1edc1",
-+ "6dd1e30b456df046e42f20",
-+ "2a8fc7a338bd0e95e61238",
-+ "5574ce6446f5f9b2cb3ade",
-+ "68437c168764f9b52e36f",
-+ "6db55a7581d577d97e45ef",
-+ "2117da386a0ba848e04619",
-+ "38a3fd25a6d9f4f7c85efc",
-+ "20bd84ec27cae248ea38a3",
-+ "2359b0102f9a1f774278d",
-+ "7f779a7314dbb8bea5c652",
-+ "a15cce75efaba6c1b571b",
-+ "5e4eaaa44cce4760757194",
-+ "1aa73126a375b6cf5e8b5",
-+ "e0fd267f226bcb77b4105",
-+ "5c1c9591ed7cecac5be504",
-+ "6f8c0ef46d2275dfe7e84f",
-+ "75f53c77a2d34dd51c6882",
-+ "553e86c66c2fba13b95f56",
-+ "31cc33f2d92bb3dc73372f",
-+ "2bcf3f6e0be988750bc0c3",
-+ "2a0c42a5cba7fe55a006e5",
-+ "67427f6921fbdb98c3e375",
-+ "62019722b2962f2ad1787f",
-+ "75964f1abb3f7cc93e9f96",
-+ "3faddb5ddd2bdc683de72f",
-+ "235bf7672a2cda1ab01fb3",
-+ "c16242d78c3d8fbfddea4",
-+ "29105da153f2a098ad094b",
-+ "39f0a0674e65b2cad4a706",
-+ "57a6c26c5e5dea61f133ee",
-+ "6151a60a864edd0e7c7b30",
-+ "d65fa4e9fad0f9180af7",
-+ "553adfba4c4a6d20491557",
-+ "1ffc37c5751a51bd676a97",
-+ "450dcdc45566039112cb21",
-+ "74c5b771dcd8c4719355d3",
-+ "72216a00ebfc9de1e963c8",
-+ "7746c161815ab2091d9e21",
-+ "47ddc74fced651c57b4d1f",
-+ "417a5a771b0fe4694065d",
-+ "4bd73bb75df0b9c8f31e93",
-+ "3937d6181e67f43d9bec08",
-+ "5fa8c4e879ae9ef5c6f178",
-+ "693e564c43456862d84db1",
-+ "394398fcb25e82a48b8d32",
-+ "754181ae9689816d4fae85",
-+ "6f5834f39b940405114e26",
-+ "41d82e9988854950bdb48c",
-+ "29f43cc681e11325bf172b",
-+ "6ac2b95852f2b3848657c4",
-+ "49da4e6814895f7566132",
-+ "7a75465db2452d11dbf6bf",
-+ "14b9cf8ea7c2a2aef663e9",
-+ "7a7267a5eeee00421b1bd7",
-+ "8d7ac16a6c7fb5dcaf362",
-+ "4a9951c3005ac4b7d775a5",
-+ "4dac5ec68e30db33d790b3",
-+ "7e9e8be590540d41cb48b7",
-+ "db6d45038525122246c3a",
-+ "32e84128c0dfcdebdcfc5e",
-+ "3c52f4c6c583d5b2a18105",
-+ "7a42533b0f16560c421482",
-+ "403ccf27d3ff3c3686d654",
-+ "5d780dd5bc1f62ed520130",
-+ "6ecdfc4db1fa1b0104403a",
-+ "4796fc52e00fbc5d65fc02",
-+ "1103bc87eb4e4e572c882c",
-+ "1f2e34fd7020d08b01b7f2",
-+ "23f737b6f1527cfce0303e",
-+ "292e4d75da1a76fa4eb730",
-+ "1b8c58018b9ec962054ab0",
-+ "3cdbf096f176a11d399e68",
-+ "5e81e2ee54fa1c8e9216bf",
-+ "6ea50d7820cf1c46cfdea8",
-+ "42fe3f1413aec51428fb64",
-+ "449f89bc8e75ebc93c06c2",
-+ "46dbb8e8c99f2d8cf603ab",
-+ "3542a00727cde7902f64",
-+ "8c1b60a22d754654b3b0e",
-+ "4cc1b8f60c7b3b604dd7f3",
-+ "65a59676f2a0f7f5358513",
-+ "7ebd8ffb86035ffa249a5c",
-+ "6937a623eafb54374944c3",
-+ "771e23d6155cbd6574be92",
-+ "42d3b2e606813eb48865e1",
-+ "747f5812283a8ba1a43af4",
-+ "1533a8f5ee81c2d4352c6",
-+ "25b4f424465c145a893505",
-+ "54449f7dccf77fd8f14fff",
-+ "1f216750a4d1686b3b2227",
-+ "3c0ef922648f93834d2bac",
-+ "5b8558cbc60eeb5d4d1e0c",
-+ "3fbae766d352bf62d71ec9",
-+ "37ca6d3b30cb2687e44f7a",
-+ "4fc1aa30a26bf05e1cf79e",
-+ "5830e5e1c9294904118c10",
-+ "ac1c0028dc3aa005da816",
-+ "2d8207ca3331c2f27a3943",
-+ "2fe38c447768175651bb27",
-+ "538b76dc0991647c99d6ab",
-+ "5ad56a9a03d1277384501c",
-+ "2c11fd859f539479044b3d",
-+ "6e1c49a1adf3346b270d76",
-+ "627d01094a2553e7bdde46",
-+ "4b0e392a6b94b0716bcb0f",
-+ "73c9485e5e5379f878695",
-+ "43da9e4b9fc98c3225df02",
-+ "4b81add44caab6287f5254",
-+ "73a1489a18b0815a03faf8",
-+ "146e2b3f7404eaa2825f64",
-+ "62cba5cd6ece1fcc005653",
-+ "9a91d432ec896438ac971",
-+ "6750d083991451ddf24ddc",
-+ "23f47a79fc10179e2f1aad",
-+ "456b75b7118ddbd9c05113",
-+ "214ab6242649bf5f0673b5",
-+ "46c6a4606b83331dd733e4",
-+ "567c07ffdf5609acdc57cd",
-+ "26639427b4cd468207f354",
-+ "36b57535eb2f884ec435f1",
-+ "2aeb5606838c910769daa9",
-+ "5d5d0b6bedf48b96c5eb79",
-+ "144036e909f39a00a79653",
-+ "7677202d8f05f9287a6047",
-+ "1a1cfff05adf1a427c023e",
-+ "7286bedeaa0c2687819d8a",
-+ "2bf095a2fbcdb3391aec69",
-+ "2e6c1f41a9866f4d867e01",
-+ "2ad8da8cd83b1521d7659a",
-+ "159314ac561f7431a71dd2",
-+ "443f4b4ed3b1f2c8fe8ce8",
-+ "1bb928a5ce5b6a93e4a6be",
-+ "ff765fa35889a47189d5c",
-+ "7faf5fb28aa48ff83cc07",
-+ "330bf157841f4554c8f5de",
-+ "3de0a5abf20a4845d76439",
-+ "5d53571a7cc3688e6944b0",
-+ "7a6a150f8921047e15edcb",
-+ "4dbcbf0e0833361017aadd",
-+ "36f20d7e24da8778ce35f5",
-+ "3248d851d401112b750bc",
-+ "77024358b3e776b2c5e1af",
-+ "599102d1f2500d61d762c9",
-+ "52c455dad0b267d43552f0",
-+ "59db917020bf7253782d5c",
-+ "3251a62ebf3abdb7c9ed58",
-+ "1c89d8520ef104ebd20ee",
-+ "fa65751eb4d84785986bf",
-+ "22f4901fc0a8b24cf62fe4",
-+ "3baf4fa4e9f273acdf732c",
-+ "29d711357943b0afaa5b59",
-+ "26293d249066a3014c3338",
-+ "4d3db82b9d6efaedc42576",
-+ "561331256e1d21664a1287",
-+ "796842dd6bfad2f98912a6",
-+ "4a27b941aa4c6ad1e07548",
-+ "47b94fbc156b869e9d16b9",
-+ "39f2517276288f74c45e3a",
-+ "11326e189db8b15b0744ff",
-+ "7c793c0d415e26d57ec92",
-+ "22c922d5b0fc736e5f1adc",
-+ "5a9897a2da0299756dfdb3",
-+ "37b012fbed4994b5319766",
-+ "7ee167869f16d0f3096184",
-+ "7b7ba8150a404335a3e978",
-+ "2176005ea62a7fae1a0ec5",
-+ "7f5271355a686a4df7e516",
-+ "33294a38a5c8a431b3624c",
-+ "68570d0c5fc94ab3c18486",
-+ "3a928b86dc180342e1f053",
-+ "474d5e705efa51e5e97d39",
-+ "4948e72d6c06974bcf7212",
-+ "12ea1cc2026e4f5211a159",
-+ "15b86ea9fb5f9d46bb9d95",
-+ "1c0d48f6283945e321fdac",
-+ "c25f982adccb58e81ce02",
-+ "173ee21e60a88ae566e166",
-+ "64af53c3c0ad963e3055c1",
-+ "2e0a934adfe422dd136191",
-+ "5ba00e958e1473bae28031",
-+ "230119c3b2a6b1bafca00",
-+ "1fb4d17ac6ee317ce5a547",
-+ "2449f6a2ba5fdac5a9c1d4",
-+ "6b488f646fce9835d43f44",
-+ "11978ed9a01677cec42ee0",
-+ "3ac9b63dfc3067c1c4627d",
-+ "7fa7e63240bd502dd4b06b",
-+ "4bafb874450e24655961f3",
-+ "4a5a912df871eba16ca2bf",
-+ "6a1b97013fc782623a1d18",
-+ "60f671cf9f662680d04313",
-+ "6f7417b6bfc27461fd2524",
-+ "3cd40ccabd157073f9e356",
-+ "60188d16e528a5d2e06d3d",
-+ "55509fd3a52bd88fe29e11",
-+ "193c88995f60dbabf1ee79",
-+ "36e5208ae458480078d5d",
-+ "27869ae6bfa80052e928d4",
-+ "14e76412c1e117fa60f762",
-+ "1a91f5500bd170effa0820",
-+ "2f27f9f5b37e53f26a3367",
-+ "7c4ebd51c09994a5c2702b",
-+ "7eede9c7d2fd05759ff0d5",
-+ "1bf7de225f0abb4eae1da2",
-+ "1f527bd93add787e619f2f",
-+ "2f4da63191088795366c81",
-+ "1e86f8d9f30e1c9ee2f741",
-+ "5fdf7c6cf80f5f4d619b9c",
-+ "1365575dcf06e2b1987b3f",
-+ "3860f5646a470f19d720f1",
-+ "b17adb15bd895ea825438",
-+ "67cd089f73cfc8807dd840",
-+ "7b97dd845f9509d060f296",
-+ "3951fc47c9cf417968c09a",
-+ "63bd657552fcd47a1fea3b",
-+ "7b59158d38abcc0653e41",
-+ "7adedaa3d8ff64ef5910ed",
-+ "121daf29269045f5bdd20b",
-+ "65c75439faa2303912b32e",
-+ "3a603b28f5e57fbfd764b9",
-+ "2df92a33b308b4efdcaee3",
-+ "69defadcac1e44c7a1c0bd",
-+ "17961b8be9d0332a213177",
-+ "59a5901c521b74864c8fb2",
-+ "697c3f9accda8d3543f182",
-+ "3f0177714af6ab07d870c0",
-+ "2334ccde40867fa1d0bc15",
-+ "16fb077509115b4c0ee442",
-+ "758f193f192584a42ebc31",
-+ "483ca240f22946b37af3c",
-+ "311601fec45703953f2b91",
-+ "67da5d093fc207176dbdb2",
-+ "1b6a00fcabec41d4b43ba2",
-+ "ba07dcfdd701f16f45aca",
-+ "2835e7f4b39073c5a451bb",
-+ "269c017af27ad44e6b201e",
-+ "3cf5810d8c38a097a7561f",
-+ "573747456cbe53c844796c",
-+ "7772e0b990ccdc614c11c3",
-+ "404ae85658f9b08174632",
-+ "5dd52a5a11350a9b7572fc",
-+ "7ce0b194ba3e31249ab36d",
-+ "762f2aec62b91b262cc99f",
-+ "3915c8d33da94da27c1249",
-+ "6e885e79f7b5fe77214da5",
-+ "668c0767178119bd41ac3",
-+ "6806f2889f5316f4c57e07",
-+ "32f953543bd07093a29e5f",
-+ "5685392e26e4e637394c54",
-+ "96cf28ae783cd1e477aa5",
-+ "710608c33a517ea5d5359e",
-+ "435abcd28c0cfc9f321db0",
-+ "514d622fcdfc26212b5d14",
-+ "408e6268fcd75479c3bece",
-+ "18e5cae7f3bd61293a8c2b",
-+ "65a5c9fe061a38a8c6c2e0",
-+ "6df80f50564e811e245eb5",
-+ "1b388caec4f8538425d93c",
-+ "1bab6e088abbb7a786ff3d",
-+ "17fc45b2690c315a5249e8",
-+ "4170c011864f5582d6a738",
-+ "3b3a5f854ba249c04d075",
-+ "38e1e6200860f4072a8a1d",
-+ "c91beeecaf54c95dc1b37",
-+ "f125d56d3c0c2aaf7ad05",
-+ "341851bd5e48e20f0a412f",
-+ "471eec9edf3f5af18be6bf",
-+ "4b21ef5da2b744139c3cf1",
-+ "3a051daeeae9770973713e",
-+ "75a7fc26a6faacf109b345",
-+ "5637e5d4438a119a23f043",
-+ "22f18c95264f1fb742c348",
-+ "1d595362f3a1b4c77729e7",
-+ "69a784edece7c38bcf7297",
-+ "4fbaae68fdb253d715d528",
-+ "23693b4063cf0fa20dad42",
-+ "51eb043d3564fa91215f1b",
-+ "2bb1db818cfd733dcce0b0",
-+ "a961f7b95836d3a578170",
-+ "51c819b9ec191b60920096",
-+ "ac6c9987de6c73f2259d9",
-+ "524b77666e02692a642407",
-+ "149d706db4fce00c71da76",
-+ "238de3e1606bc0e1c33adb",
-+ "37ba1e609c7b12a8e32733",
-+ "3ae30b1b5931eb630bbf6c",
-+ "1630a212afc84f038374d9",
-+ "5ebb44d93cb77417b61c4f",
-+ "5a7d2dd2aa2028d4da8f42",
-+ "798019b397419c8d54fda1",
-+ "74a156e77589342bbef3d5",
-+ "506e6a05e8de5c9198ae69",
-+ "48e4926c40cd6ab5e92ffc",
-+ "7d2db742721c9ba686ff30",
-+ "4b8968b5c5a93dbb4b2b55",
-+ "2ef2be0f7e33ace73bab4",
-+ "7651ee2e0f4d348cbe95bd",
-+ "43ee4b35cb3cdc84d1d5db",
-+ "449d4feccb40da2e122aa1",
-+ "356211f56936e183312837",
-+ "527456447c2748239033cf",
-+ "46bdbd32d31b2a36e04e0a",
-+ "6c1076c01e9e44fb047889",
-+ "5ef5512b3384aa1243daa6",
-+ "d452f805a2c35e686e107",
-+ "67a9131aabd5255bdce732",
-+ "5088a2317aa34dd5bb1b4d",
-+ "64c275af1abda385c2af0b",
-+ "402c7149b20bce787c7e83",
-+ "60c8d2e958387c0d0627a8",
-+ "516640d56302eb15061b25",
-+ "c62790b24bc842a717e31",
-+ "76e87d4d2740e137511b26",
-+ "6cf76079225189eb2608ce",
-+ "3c8b04f81e14e10396b582",
-+ "4bfd93fb985a44ed0569f4",
-+ "6ce98c831091728c0e73bb",
-+ "4f74e7ee01738298062093",
-+ "449ccc3923e92a0bd2e3ba",
-+ "4feae15528510f186aa1fa",
-+ "12a3196afc09a79694eb31",
-+ "6cfdd09fe2bd66b85c2e00",
-+ "587cce1cbd0dee8b98f262",
-+ "3b0283be973d59ebf4242f",
-+ "88b8371baafc87a9713f4",
-+ "4e6cb8ec1b00e2f28b3a7e",
-+ "235baa54adcc67af92d06d",
-+ "733b81816da25936e81af1",
-+ "7fe76cd2c5affa913c2b41",
-+ "26b7df388a02a8279b0652",
-+ "7b5272bdeb1b01fe56bc29",
-+ "6863984d7793407587e8e2",
-+ "1f1eea8231315133cde938",
-+ "2f85e68dfb9aea66d7f07c",
-+ "6259df76b87ab2eff6659f",
-+ "502c6a2df8916b18106088",
-+ "4cd904fd9401eac5ad7f1c",
-+ "5eb4d93a33b2d2e2c2adad",
-+ "55a41153a33cb4649703a5",
-+ "cfc86f804a481df48868e",
-+ "1ddeaa1e583e9146210f69",
-+ "38110b962a169200cc9f0a",
-+ "7ce4bd3337a7333159cb2c",
-+ "1738ee1c8e104064e07249",
-+ "e1ef803b3674bf39884ae",
-+ "55d7bf2f5724b5dd0a04ae",
-+ "7aa81a94a5a230cf59a0b9",
-+ "2baeaedf76503008b9e428",
-+ "15bb5d9b44eebb27a1e60e",
-+ "dce90e419e8d3f96eb5b4",
-+ "72a7ca4a8dc56f9c652281",
-+ "5cd319aa7906a96d2f6c7e",
-+ "557361125249092a7bf932",
-+ "70a1107bc42bfb598164ea",
-+ "df7ae04689867c9ad97d8",
-+ "117480f169f81bb3e8609c",
-+ "479fc9912c9c81152eb474",
-+ "4f2cc1f6f7aba8c20a670c",
-+ "17dd6e40297f1d32786291",
-+ "783e0229f219bc18b705e4",
-+ "8b462e0f7448b549fd688",
-+ "4a0fb16cc4d1bdfbb239c",
-+ "53c95b2787b88db0682132",
-+ "536be2b3e3829710aec51b",
-+ "3a89578d6ca992f91249be",
-+ "779eb73caa637aa28db87c",
-+ "52f5adde99e4501e4d1c61",
-+ "31541f24753a28cc5b51d8",
-+ "620084c5da2910137e2b10",
-+ "76c132264ad2a774a55164",
-+ "35a3ab4773c5054a30c44d",
-+ "2f78c0f7e7a90558573941",
-+ "5b39ddb704fa58142076d",
-+ "1d6812727d8421d0e03a6f",
-+ "307727bd97c5db086074b3",
-+ "1abc0d15793c655cee4a9c",
-+ "68ee183b2208228da8bab7",
-+ "116da33e19c8b80384fe28",
-+ "3d73fd3c3744e9ec5d2d04",
-+ "64ed03e382c11a32e34cf4",
-+ "479e7025ae3fdc2bbcbe22",
-+ "a134915353ce113eb72dd",
-+ "49cb6ac7a2bfdc54300006",
-+ "2d5e8f78718c2d4660cc69",
-+ "3f5027ce278d444a4dd243",
-+ "15d4218f4bbf0c95cd9649",
-+ "13221a23af3045ec5cea35",
-+ "1efd2b46d4a8724e929fd9",
-+ "628d18e095a8dbcb9f43bf",
-+ "30eff32d49c10f325b8e9c",
-+ "29bbe5fdf14e69065cb80c",
-+ "2df28a1b78b46f16aaf53b",
-+ "352a4a136ebd7ef294f370",
-+ "1c960c994194a1366a2222",
-+ "351c5a0b997e45ec21b614",
-+ "4c1f6b587fd26654ea69e1",
-+ "2735b2e6f5f08a9e9418bb",
-+ "3505fcb3eb2690f88b3be3",
-+ "4d8859f357a36792b7211f",
-+ "1e2093f76475f58a2dfd79",
-+ "456138a50c3717947be48e",
-+ "35714b90920ce6fe1f850",
-+ "5d7c2a1d1267b7a252da1",
-+ "754ffe6bc2e7525e892fe",
-+ "290ac68bec8aa8955b7e97",
-+ "a058b3353ac6290d9f864",
-+ "ef75fc5d77fc146e975f7",
-+ "48a999a2dc1a23a934a6fc",
-+ "7256923d608836710a659c",
-+ "2b13e041339df4d5a521ce",
-+ "51a9b0945a0908b1d40d24",
-+ "779559a53e6b62275896e9",
-+ "1fa330f6dd5f3ca09176ce",
-+ "3cb748f77d638122329dca",
-+ "7e62c15038abb8244531b4",
-+ "9bea90a26f9e93743a998",
-+ "7ae1d007cf030664c6b815",
-+ "52cfcbd15dfc6c476cfc76",
-+ "18ba9d869c489f11ce52e7",
-+ "93cbb2483673e4e0dda30",
-+ "2478db790ed59756cef964",
-+ "7d8b341c82b019a8d56c92",
-+ "584b7d6f0b43ddd0b397e4",
-+ "6081e77fedf3898fd66607",
-+ "540f5a33d5aeafadcad19d",
-+ "52c4d1c2ad153a3f70bc0a",
-+ "39489c7fdb445490d498cd",
-+ "e0800809dbab6d41345b4",
-+ "1536906705870049755028",
-+ "639c2fcec8b9dfcc987387",
-+ "214f18ae0c9aa7a1b8c02e",
-+ "5b8e9d8b290e89e5d9afc3",
-+ "4499c1c16fec3546d5903c",
-+ "5ce5e0595ad07c8855357b",
-+ "39bf9c3f1f0a1a15264530",
-+ "30a77107da1d91a699e9f5",
-+ "352389083277fbbbe66ac3",
-+ "5d711409f3faa9ea87abfc",
-+ "42cd59499a0ef57d6b0009",
-+ "731a7b89f357bfb855a5b2",
-+ "767dc9d34c09b03db4a0e9",
-+ "5344962f90f45cfaeb1bce",
-+ "504d29ae2e5a021d2bb278",
-+ "6e97dd298eaee757a3cec1",
-+ "2d1b2f087facf1fbfc7e69",
-+ "327b2b8d0b75e0d83a5b04",
-+ "7dc98aa964908b313939a9",
-+ "d8c34dffd92c1a20d6a9a",
-+ "21a363ab0e08a4336f2e44",
-+ "48eaf0293f956717b8f048",
-+ "6351b2a5f477112f552683",
-+ "2193bc73ac4b40415c95b5",
-+ "13f13f9f2c877cb73ba5c",
-+ "7c6b359299af5c59043711",
-+ "7895b432001edf846b7b3e",
-+ "3ecf9d05cd62341c4f7784",
-+ "6c8879d694e1a0b99f8e42",
-+ "6400e87749e3bcbd750d89",
-+ "1851e925707895d37a37f2",
-+ "30f4f5617cc73435ce74c2",
-+ "18ec20d19a478746123b",
-+ "39242760b51f2f93fd4721",
-+ "452d3dfff11e24bf680356",
-+ "5cafa83a10f929b5076c60",
-+ "7fd4ee663460087b793a80",
-+ "7e958697030784ae5ddf86",
-+ "a6c54d0ec55adb4911efd",
-+ "2964973c288dced7dae8fc",
-+ "2b0fed7a534d25697e5c7b",
-+ "3afeb7cc8f8e5bb8770da",
-+ "6a81a8d913b71671629ad5",
-+ "75f4eb6de0d35eeaa16cf8",
-+ "7abf68b2e4cc9e3a3b2c5f",
-+ "4f6d8c8b0b9b376d42c4b1",
-+ "23f219093e9b0bb3b5217d",
-+ "5a0c2602dcbbbf468b67e0",
-+ "1a63315aa52cb254b65ce0",
-+ "4f72850630f6f8c1a68862",
-+ "3722a55f27f2c02b34eddc",
-+ "672d7083ec424e5d883cec",
-+ "4839c6454f97ececa9969f",
-+ "e941ecc714605cea72177",
-+ "7cf9338ca9bcab73862b81",
-+ "6a23876a8c802d81d83d29",
-+ "7006ef130d31e12bc44c5a",
-+ "591bac661062f64b8e3f2c",
-+ "25cab751e23d8e69bb5048",
-+ "61f4a55b140e767495cd59",
-+ "1a4e5bc143bf00e8928403",
-+ "4a54d9b3589d5340a01e23",
-+ "18019c176b4c9453028db8",
-+ "76fed7d89907843db9af52",
-+ "407333b3b6a3bed3ef8920",
-+ "536a736ad3a37793dd9f54",
-+ "5e56a7d976f1a3334f57c3",
-+ "66ffe80af410522139e92f",
-+ "1b0c27c7452322264822f3",
-+ "58320debe89492ceee77e",
-+ "4fbc987e428ed0ce9cb76c",
-+ "70a2d453b688803716fdbf",
-+ "1921f3262afb2f3766f357",
-+ "6e007172a16a9c673e635d",
-+ "527c4b155e3708972293d1",
-+ "2797689917c95a9d4073ae",
-+ "69bb33c18017fddf18d091",
-+ "165ff53589519199fc1846",
-+ "171e59c89024b148534f1b",
-+ "23c82ae839bf5380a55acf",
-+ "455c9131bfa1c33274be37",
-+ "4bacbc68650c41520d312c",
-+ "1c35e13f8ffb7c470fa61c",
-+ "6b4728ee168cd23e2fe47c",
-+ "22e321253c3e0fb875c4df",
-+ "6077a88144957827c07205",
-+ "4309c1c59a581af63d922d",
-+ "1b1ca5d6c688c4cf99448d",
-+ "31a504d1dcc251075e4436",
-+ "223160cdd1bfa322ca3e6c",
-+ "3601174a7dc823bf4dc3a6",
-+ "6da3828f2d4926651f7a27",
-+ "7de4927696bdd6d3b718",
-+ "7bb4f9d707b4ee3a20e779",
-+ "343dad4f059acb87d3b0e2",
-+ "4e501beb4617be0f02deb4",
-+ "3943e926fbe3d426004ea9",
-+ "4b35e35e82bffb49d0d830",
-+ "6520599b30ba3568ad0f09",
-+ "2a48d89ce122dfa7deba2f",
-+ "19b666810d736e639b51f2",
-+ "1ccd174e9aa4e58e7414bc",
-+ "475e84f70334cc0bc8292",
-+ "393fe0be8f011593a7e1ef",
-+ "17276a59aa9630c1141c17",
-+ "7d0578a8908ba294259bd",
-+ "4a9e2e5d8ad0e2e82aa7de",
-+ "63e0dbdfb13b4fbb46f00c",
-+ "310e395e429c4494a5f850",
-+ "7cc0116bd0bc164835ee72",
-+ "634478b621f7f0a455c48c",
-+ "397f144a181805e1a097c9",
-+ "53016aa1427381b9f28ea5",
-+ "76c2f0ba37187112ee4d4d",
-+ "2bee268df09cc40864a917",
-+ "7851b3168b92e5daed021f",
-+ "149e6a0b6c6543ae895e07",
-+ "1dd1b432dc809fe4c879b3",
-+ "2ad2546b270547fc24541b",
-+ "2015aa6fc7e48fa3bc5ab5",
-+ "38596ed050f14596adc07f",
-+ "1d2b9ca2f44294070d4e86",
-+ "3778fd3a46ffde4755b6ce",
-+ "74bb588b5553c2b2d4ac78",
-+ "3d1155c4a53835d991a0f",
-+ "35865b2ca16d3453781f41",
-+ "6ba1300374acd487b23577",
-+ "3f68fa1a9ab7772758d0ba",
-+ "30a3461d63ca9807464dd6",
-+ "552aca5af025ea1e84aadb",
-+ "32aafc640e8c99bda8faa7",
-+ "2fb170a11f1aecdf586d25",
-+ "751e9eb348bc8239d6e118",
-+ "7fc2bcc524b4326eb8303d",
-+ "1cc2526113f2bae9b540c1",
-+ "6a437e22c95fc6c6a4449d",
-+ "df261ad3b5157a525bb81",
-+ "690aa96130f8c533d77ce4",
-+ "2f58f2df794a35875efc99",
-+ "19772e34181f57b670bf9",
-+ "60617400353c1eb8e8832b",
-+ "7136b3dd116ed121aab68",
-+ "4c95bed884bd87ec1d5e70",
-+ "68fa3ecc3845db5d523ad9",
-+ "4818e9ef0ea7625cfc3d0",
-+ "27ec8c6636679988dd1267",
-+ "57d88b5e0b434eb1a0dc08",
-+ "47a1f466100bf70dd5689",
-+ "55afbc51e7c2cc748942ac",
-+ "75066462fdbbc7301e209b",
-+ "72b5d8f8e65cb7509a93d8",
-+ "38d9d05f9463a537f470b2",
-+ "2f39a2788d5c2a24e16acc",
-+ "5f4e7c70ff55ff2f888f05",
-+ "735cfad9acf49090fb7037",
-+ "6a716dae106b9aeff2133e",
-+ "1c90fea5f39d8ac4dfc2a3",
-+ "3a8c5a9525f5d62cea294d",
-+ "498104aa12355244a9b0d6",
-+ "414e761d40341e7f97c304",
-+ "16d5205447831696c5d6a0",
-+ "3cb5a124ce563c3967dbc3",
-+ "899b1ac6f72ffff8aedfc",
-+ "34eea7a66e8ff3dcc8988e",
-+ "5f80095f2580ec4cf13b51",
-+ "4d7566cd294f75be6620f3",
-+ "506d84c9f4d4bc400fdd25",
-+ "5a8a9b5c659b71e837ea18",
-+ "c16d15fea9d61c8df5121",
-+ "3a7a488015e75feec809f8",
-+ "6fe27c77d57e2feb8cbcbf",
-+ "452231c3bcde7b7b5b0af8",
-+ "760f3656c1130b21d369d9",
-+ "39a0c4e1da321f1bc126f4",
-+ "3315173915ca23d8c1b814",
-+ "1cec8c96472b84936bbc22",
-+ "3c70a3f0e9c5b206031a33",
-+ "7cec29d14a0eefb222bde7",
-+ "760df490123f6613b0a970",
-+ "5bf795c6d548a19b6ac340",
-+ "5569560418e73ff9db709" };
-
- #endif /* __PARAMS_H__ */
--
-diff --git a/third_party/prio/prio/poly.h b/third_party/prio/prio/poly.h
---- a/third_party/prio/prio/poly.h
-+++ b/third_party/prio/prio/poly.h
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #ifndef _FFT__H
-@@ -21,39 +21,36 @@
- * of two and must be no longer than the number of precomputed
- * roots in the PrioConfig object passed in.
- */
--SECStatus poly_fft(MPArray points_out, const_MPArray points_in,
-- const_PrioConfig cfg, bool invert);
-+SECStatus poly_fft(MPArray points_out, const_MPArray points_in,
-+ const_PrioConfig cfg, bool invert);
-
--/*
-+/*
- * Get an array
-- * (r^0, r^1, r^2, ... )
-+ * (r^0, r^1, r^2, ... )
- * where r is an n-th root of unity, for n a power of two
- * less than cfg->n_roots.
- *
-- * Do NOT mp_clear() the mp_ints stored in roots_out.
-+ * Do NOT mp_clear() the mp_ints stored in roots_out.
- * These are owned by the PrioConfig object.
- */
--SECStatus poly_fft_get_roots (mp_int *roots_out, int n_points,
-- const_PrioConfig cfg, bool invert);
--
--
-+SECStatus poly_fft_get_roots(mp_int* roots_out, int n_points,
-+ const_PrioConfig cfg, bool invert);
-
- /*
- * Evaluate the polynomial specified by the coefficients
- * at the point `eval_at` and return the result as `value`.
- */
--SECStatus poly_eval (mp_int *value, const_MPArray coeffs,
-- const mp_int *eval_at, const_PrioConfig cfg);
--
-+SECStatus poly_eval(mp_int* value, const_MPArray coeffs, const mp_int* eval_at,
-+ const_PrioConfig cfg);
-
- /*
-- * Interpolate the polynomial through the points
-+ * Interpolate the polynomial through the points
- * (x_1, y_1), ..., (x_N, y_N),
- * where x_i is an N-th root of unity and the y_i values are
-- * specified by `poly_points`. Evaluate the resulting polynomial
-+ * specified by `poly_points`. Evaluate the resulting polynomial
- * at the point `eval_at`. Return the result as `value`.
- */
--SECStatus poly_interp_evaluate (mp_int *value, const_MPArray poly_points,
-- const mp_int *eval_at, const_PrioConfig cfg);
-+SECStatus poly_interp_evaluate(mp_int* value, const_MPArray poly_points,
-+ const mp_int* eval_at, const_PrioConfig cfg);
-
- #endif
-diff --git a/third_party/prio/prio/poly.c b/third_party/prio/prio/poly.c
---- a/third_party/prio/prio/poly.c
-+++ b/third_party/prio/prio/poly.c
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #include <mprio.h>
-@@ -16,109 +16,110 @@
- * A nice exposition of the recursive FFT/DFT algorithm we implement
- * is in the book:
- *
-- * "Modern Computer Algebra"
-- * by Von zur Gathen and Gerhard.
-+ * "Modern Computer Algebra"
-+ * by Von zur Gathen and Gerhard.
- * Cambridge University Press, 2013.
- *
- * They present this algorithm as Algorithm 8.14.
- */
- static SECStatus
--fft_recurse (mp_int *out, const mp_int *mod, int n,
-- const mp_int *roots, const mp_int *ys,
-- mp_int *tmp, mp_int *ySub, mp_int *rootsSub)
-+fft_recurse(mp_int* out, const mp_int* mod, int n, const mp_int* roots,
-+ const mp_int* ys, mp_int* tmp, mp_int* ySub, mp_int* rootsSub)
- {
- if (n == 1) {
-- MP_CHECK (mp_copy (&ys[0], &out[0]));
-+ MP_CHECK(mp_copy(&ys[0], &out[0]));
- return SECSuccess;
- }
-
-- // Recurse on the first half
-- for (int i=0; i<n/2; i++) {
-- MP_CHECK (mp_addmod (&ys[i], &ys[i+(n/2)], mod, &ySub[i]));
-- MP_CHECK (mp_copy (&roots[2*i], &rootsSub[i]));
-+ // Recurse on the first half
-+ for (int i = 0; i < n / 2; i++) {
-+ MP_CHECK(mp_addmod(&ys[i], &ys[i + (n / 2)], mod, &ySub[i]));
-+ MP_CHECK(mp_copy(&roots[2 * i], &rootsSub[i]));
- }
-
-- MP_CHECK (fft_recurse (tmp, mod, n/2, rootsSub, ySub, &tmp[n/2], &ySub[n/2], &rootsSub[n/2]));
-- for (int i=0; i<n/2; i++) {
-- MP_CHECK (mp_copy (&tmp[i], &out[2*i]));
-+ MP_CHECK(fft_recurse(tmp, mod, n / 2, rootsSub, ySub, &tmp[n / 2],
-+ &ySub[n / 2], &rootsSub[n / 2]));
-+ for (int i = 0; i < n / 2; i++) {
-+ MP_CHECK(mp_copy(&tmp[i], &out[2 * i]));
- }
-
-- // Recurse on the second half
-- for (int i=0; i<n/2; i++) {
-- MP_CHECK (mp_submod (&ys[i], &ys[i+(n/2)], mod, &ySub[i]));
-- MP_CHECK (mp_mulmod (&ySub[i], &roots[i], mod, &ySub[i]));
-+ // Recurse on the second half
-+ for (int i = 0; i < n / 2; i++) {
-+ MP_CHECK(mp_submod(&ys[i], &ys[i + (n / 2)], mod, &ySub[i]));
-+ MP_CHECK(mp_mulmod(&ySub[i], &roots[i], mod, &ySub[i]));
- }
-
-- MP_CHECK (fft_recurse (tmp, mod, n/2, rootsSub, ySub, &tmp[n/2], &ySub[n/2], &rootsSub[n/2]));
-- for (int i=0; i<n/2; i++) {
-- MP_CHECK (mp_copy (&tmp[i], &out[2*i + 1]));
-+ MP_CHECK(fft_recurse(tmp, mod, n / 2, rootsSub, ySub, &tmp[n / 2],
-+ &ySub[n / 2], &rootsSub[n / 2]));
-+ for (int i = 0; i < n / 2; i++) {
-+ MP_CHECK(mp_copy(&tmp[i], &out[2 * i + 1]));
- }
-
- return SECSuccess;
- }
-
- static SECStatus
--fft_interpolate_raw (mp_int *out,
-- const mp_int *ys, int nPoints, const mp_int *roots,
-- const mp_int *mod, bool invert)
-+fft_interpolate_raw(mp_int* out, const mp_int* ys, int nPoints,
-+ const mp_int* roots, const mp_int* mod, bool invert)
- {
- SECStatus rv = SECSuccess;
- mp_int tmp[nPoints];
- mp_int ySub[nPoints];
- mp_int rootsSub[nPoints];
-- for (int i=0; i<nPoints;i++) {
-- MP_DIGITS (&tmp[i]) = NULL;
-- MP_DIGITS (&ySub[i]) = NULL;
-- MP_DIGITS (&rootsSub[i]) = NULL;
-+ for (int i = 0; i < nPoints; i++) {
-+ MP_DIGITS(&tmp[i]) = NULL;
-+ MP_DIGITS(&ySub[i]) = NULL;
-+ MP_DIGITS(&rootsSub[i]) = NULL;
- }
-
- mp_int n_inverse;
-- MP_DIGITS (&n_inverse) = NULL;
-+ MP_DIGITS(&n_inverse) = NULL;
-
-- for (int i=0; i<nPoints;i++) {
-- MP_CHECKC (mp_init (&tmp[i]));
-- MP_CHECKC (mp_init (&ySub[i]));
-- MP_CHECKC (mp_init (&rootsSub[i]));
-+ for (int i = 0; i < nPoints; i++) {
-+ MP_CHECKC(mp_init(&tmp[i]));
-+ MP_CHECKC(mp_init(&ySub[i]));
-+ MP_CHECKC(mp_init(&rootsSub[i]));
- }
-
-- MP_CHECK (fft_recurse(out, mod, nPoints, roots, ys, tmp, ySub, rootsSub));
-+ MP_CHECK(fft_recurse(out, mod, nPoints, roots, ys, tmp, ySub, rootsSub));
-
- if (invert) {
-- MP_CHECKC (mp_init (&n_inverse));
-+ MP_CHECKC(mp_init(&n_inverse));
-
-- mp_set (&n_inverse, nPoints);
-- MP_CHECKC (mp_invmod (&n_inverse, mod, &n_inverse));
-- for (int i=0; i<nPoints;i++) {
-- MP_CHECKC (mp_mulmod(&out[i], &n_inverse, mod, &out[i]));
-+ mp_set(&n_inverse, nPoints);
-+ MP_CHECKC(mp_invmod(&n_inverse, mod, &n_inverse));
-+ for (int i = 0; i < nPoints; i++) {
-+ MP_CHECKC(mp_mulmod(&out[i], &n_inverse, mod, &out[i]));
- }
- }
-
- cleanup:
-- mp_clear (&n_inverse);
-- for (int i=0; i<nPoints;i++) {
-+ mp_clear(&n_inverse);
-+ for (int i = 0; i < nPoints; i++) {
- mp_clear(&tmp[i]);
- mp_clear(&ySub[i]);
- mp_clear(&rootsSub[i]);
- }
-
- return rv;
--}
-+}
-
- /*
- * The PrioConfig object has a list of N-th roots of unity for large N.
-- * This routine returns the n-th roots of unity for n < N, where n is
-+ * This routine returns the n-th roots of unity for n < N, where n is
- * a power of two. If the `invert` flag is set, it returns the inverses
- * of the n-th roots of unity.
- */
- SECStatus
--poly_fft_get_roots (mp_int *roots_out, int n_points, const_PrioConfig cfg, bool invert)
-+poly_fft_get_roots(mp_int* roots_out, int n_points, const_PrioConfig cfg,
-+ bool invert)
- {
-- if (n_points > cfg->n_roots)
-+ if (n_points > cfg->n_roots)
- return SECFailure;
-- const mp_int *roots_in = invert ? cfg->rootsInv->data : cfg->roots->data;
-+ const mp_int* roots_in = invert ? cfg->rootsInv->data : cfg->roots->data;
- const int step_size = cfg->n_roots / n_points;
-
-- for (int i=0; i < n_points; i++) {
-+ for (int i = 0; i < n_points; i++) {
- roots_out[i] = roots_in[i * step_size];
- }
-
-@@ -126,63 +127,62 @@
- }
-
- SECStatus
--poly_fft (MPArray points_out, const_MPArray points_in,
-- const_PrioConfig cfg, bool invert)
-+poly_fft(MPArray points_out, const_MPArray points_in, const_PrioConfig cfg,
-+ bool invert)
- {
- SECStatus rv = SECSuccess;
- const int n_points = points_in->len;
- if (points_out->len != points_in->len)
- return SECFailure;
-- if (n_points > cfg->n_roots)
-+ if (n_points > cfg->n_roots)
- return SECFailure;
-- if (cfg->n_roots % n_points != 0)
-+ if (cfg->n_roots % n_points != 0)
- return SECFailure;
-
- mp_int scaled_roots[n_points];
-- P_CHECK (poly_fft_get_roots (scaled_roots, n_points, cfg, invert));
-+ P_CHECK(poly_fft_get_roots(scaled_roots, n_points, cfg, invert));
-
-- MP_CHECK (fft_interpolate_raw (points_out->data, points_in->data, n_points,
-- scaled_roots, &cfg->modulus, invert));
-+ MP_CHECK(fft_interpolate_raw(points_out->data, points_in->data, n_points,
-+ scaled_roots, &cfg->modulus, invert));
-
- return SECSuccess;
- }
-
--
--SECStatus
--poly_eval (mp_int *value, const_MPArray coeffs, const mp_int *eval_at,
-- const_PrioConfig cfg)
--{
-+SECStatus
-+poly_eval(mp_int* value, const_MPArray coeffs, const mp_int* eval_at,
-+ const_PrioConfig cfg)
-+{
- SECStatus rv = SECSuccess;
- const int n = coeffs->len;
-
- // Use Horner's method to evaluate the polynomial at the point
- // `eval_at`
-- mp_copy (&coeffs->data[n-1], value);
-- for (int i=n-2; i >= 0; i--) {
-- MP_CHECK (mp_mulmod (value, eval_at, &cfg->modulus, value));
-- MP_CHECK (mp_addmod (value, &coeffs->data[i], &cfg->modulus, value));
-+ mp_copy(&coeffs->data[n - 1], value);
-+ for (int i = n - 2; i >= 0; i--) {
-+ MP_CHECK(mp_mulmod(value, eval_at, &cfg->modulus, value));
-+ MP_CHECK(mp_addmod(value, &coeffs->data[i], &cfg->modulus, value));
- }
-
- return rv;
- }
-
- SECStatus
--poly_interp_evaluate (mp_int *value, const_MPArray poly_points,
-- const mp_int *eval_at, const_PrioConfig cfg)
-+poly_interp_evaluate(mp_int* value, const_MPArray poly_points,
-+ const mp_int* eval_at, const_PrioConfig cfg)
- {
- SECStatus rv;
- MPArray coeffs = NULL;
- const int N = poly_points->len;
- mp_int roots[N];
--
-- P_CHECKA (coeffs = MPArray_new (N));
-- P_CHECKC (poly_fft_get_roots (roots, N, cfg, false));
-+
-+ P_CHECKA(coeffs = MPArray_new(N));
-+ P_CHECKC(poly_fft_get_roots(roots, N, cfg, false));
-
- // Interpolate polynomial through roots of unity
-- P_CHECKC (poly_fft (coeffs, poly_points, cfg, true))
-- P_CHECKC (poly_eval (value, coeffs, eval_at, cfg));
-+ P_CHECKC(poly_fft(coeffs, poly_points, cfg, true))
-+ P_CHECKC(poly_eval(value, coeffs, eval_at, cfg));
-
- cleanup:
-- MPArray_clear (coeffs);
-+ MPArray_clear(coeffs);
- return rv;
- }
-diff --git a/third_party/prio/prio/prg.h b/third_party/prio/prio/prg.h
---- a/third_party/prio/prio/prg.h
-+++ b/third_party/prio/prio/prg.h
-@@ -1,62 +1,60 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #ifndef __PRG_H__
- #define __PRG_H__
-
-+#include <blapit.h>
- #include <mpi.h>
--#include <nss/blapit.h>
- #include <stdlib.h>
-
- #include "config.h"
-
--typedef struct prg *PRG;
--typedef const struct prg *const_PRG;
-+typedef struct prg* PRG;
-+typedef const struct prg* const_PRG;
-
--/*
-+/*
- * Initialize or destroy a pseudo-random generator.
- */
--PRG PRG_new (const PrioPRGSeed key);
--void PRG_clear (PRG prg);
-+PRG PRG_new(const PrioPRGSeed key);
-+void PRG_clear(PRG prg);
-
--/*
-+/*
- * Produce the next bytes of output from the PRG.
- */
--SECStatus PRG_get_bytes (PRG prg, unsigned char *bytes, size_t len);
-+SECStatus PRG_get_bytes(PRG prg, unsigned char* bytes, size_t len);
-
- /*
- * Use the PRG output to sample a big integer x in the range
- * 0 <= x < max.
- */
--SECStatus PRG_get_int (PRG prg, mp_int *out, const mp_int *max);
-+SECStatus PRG_get_int(PRG prg, mp_int* out, const mp_int* max);
-
- /*
- * Use secret sharing to split the int src into two shares.
- * Use PRG to generate the value `shareB`.
- * The mp_ints must be initialized.
- */
--SECStatus PRG_share_int (PRG prg, mp_int *shareA, const mp_int *src,
-- const_PrioConfig cfg);
-+SECStatus PRG_share_int(PRG prg, mp_int* shareA, const mp_int* src,
-+ const_PrioConfig cfg);
-
--/*
-+/*
- * Set each item in the array to a pseudorandom value in the range
- * [0, mod), where the values are generated using the PRG.
- */
--SECStatus PRG_get_array (PRG prg, MPArray arr, const mp_int *mod);
-+SECStatus PRG_get_array(PRG prg, MPArray arr, const mp_int* mod);
-
--/*
-+/*
- * Secret shares the array in `src` into `arrA` using randomness
- * provided by `prgB`. The arrays `src` and `arrA` must be the same
- * length.
- */
--SECStatus PRG_share_array (PRG prgB, MPArray arrA,
-- const_MPArray src, const_PrioConfig cfg);
--
-+SECStatus PRG_share_array(PRG prgB, MPArray arrA, const_MPArray src,
-+ const_PrioConfig cfg);
-
- #endif /* __PRG_H__ */
--
-diff --git a/third_party/prio/prio/prg.c b/third_party/prio/prio/prg.c
---- a/third_party/prio/prio/prg.c
-+++ b/third_party/prio/prio/prg.c
-@@ -1,14 +1,14 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-+#include <blapit.h>
- #include <mprio.h>
--#include <nss/blapit.h>
--#include <nss/pk11pub.h>
-+#include <pk11pub.h>
- #include <string.h>
-
- #include "prg.h"
-@@ -16,23 +16,25 @@
- #include "share.h"
- #include "util.h"
-
--struct prg {
-- PK11SlotInfo *slot;
-- PK11SymKey *key;
-- PK11Context *ctx;
-+struct prg
-+{
-+ PK11SlotInfo* slot;
-+ PK11SymKey* key;
-+ PK11Context* ctx;
- };
-
--SECStatus
--PrioPRGSeed_randomize (PrioPRGSeed *key)
-+SECStatus
-+PrioPRGSeed_randomize(PrioPRGSeed* key)
- {
-- return rand_bytes ((unsigned char *)key, PRG_SEED_LENGTH);
-+ return rand_bytes((unsigned char*)key, PRG_SEED_LENGTH);
- }
-
--PRG
--PRG_new (const PrioPRGSeed key_in)
-+PRG
-+PRG_new(const PrioPRGSeed key_in)
- {
-- PRG prg = malloc (sizeof (struct prg));
-- if (!prg) return NULL;
-+ PRG prg = malloc(sizeof(struct prg));
-+ if (!prg)
-+ return NULL;
- prg->slot = NULL;
- prg->key = NULL;
- prg->ctx = NULL;
-@@ -40,106 +42,104 @@
- SECStatus rv = SECSuccess;
- const CK_MECHANISM_TYPE cipher = CKM_AES_CTR;
-
-- P_CHECKA (prg->slot = PK11_GetInternalSlot ());
-+ P_CHECKA(prg->slot = PK11_GetInternalSlot());
-
- // Create a mutable copy of the key.
- PrioPRGSeed key_mut;
-- memcpy (key_mut, key_in, PRG_SEED_LENGTH);
-+ memcpy(key_mut, key_in, PRG_SEED_LENGTH);
-
-- SECItem keyItem = {siBuffer, key_mut, PRG_SEED_LENGTH};
-+ SECItem keyItem = { siBuffer, key_mut, PRG_SEED_LENGTH };
-
- // The IV can be all zeros since we only encrypt once with
- // each AES key.
-- CK_AES_CTR_PARAMS param = {128, {}};
-- SECItem paramItem = {siBuffer, (void *)¶m, sizeof(CK_AES_CTR_PARAMS)};
-+ CK_AES_CTR_PARAMS param = { 128, {} };
-+ SECItem paramItem = { siBuffer, (void*)¶m, sizeof(CK_AES_CTR_PARAMS) };
-
-- P_CHECKA (prg->key = PK11_ImportSymKey (prg->slot, cipher, PK11_OriginUnwrap,
-- CKA_ENCRYPT, &keyItem, NULL));
-+ P_CHECKA(prg->key = PK11_ImportSymKey(prg->slot, cipher, PK11_OriginUnwrap,
-+ CKA_ENCRYPT, &keyItem, NULL));
-
-- P_CHECKA (prg->ctx = PK11_CreateContextBySymKey(cipher, CKA_ENCRYPT,
-- prg->key, ¶mItem));
-+ P_CHECKA(prg->ctx = PK11_CreateContextBySymKey(cipher, CKA_ENCRYPT, prg->key,
-+ ¶mItem));
-
- cleanup:
- if (rv != SECSuccess) {
-- PRG_clear (prg);
-+ PRG_clear(prg);
- prg = NULL;
- }
-
- return prg;
- }
-
--
--void
--PRG_clear (PRG prg)
-+void
-+PRG_clear(PRG prg)
- {
-- if (!prg) return;
-+ if (!prg)
-+ return;
-
- if (prg->key)
-- PK11_FreeSymKey (prg->key);
-+ PK11_FreeSymKey(prg->key);
- if (prg->slot)
-- PK11_FreeSlot (prg->slot);
-+ PK11_FreeSlot(prg->slot);
- if (prg->ctx)
-- PK11_DestroyContext (prg->ctx, PR_TRUE);
-+ PK11_DestroyContext(prg->ctx, PR_TRUE);
-
-- free (prg);
-+ free(prg);
- }
-
--static SECStatus
--PRG_get_bytes_internal (void *prg_vp, unsigned char *bytes, size_t len)
-+static SECStatus
-+PRG_get_bytes_internal(void* prg_vp, unsigned char* bytes, size_t len)
- {
- PRG prg = (PRG)prg_vp;
-
- unsigned char in[len];
-- memset (in, 0, len);
-+ memset(in, 0, len);
-
- int outlen;
-- SECStatus rv = PK11_CipherOp (prg->ctx, bytes, &outlen, len, in, len);
-- return (rv != SECSuccess || (size_t)outlen != len) ? SECFailure: SECSuccess;
--}
--
--SECStatus
--PRG_get_bytes (PRG prg, unsigned char *bytes, size_t len)
--{
-- return PRG_get_bytes_internal ((void *)prg, bytes, len);
--}
--
--SECStatus
--PRG_get_int (PRG prg, mp_int *out, const mp_int *max)
--{
-- return rand_int_rng (out, max, &PRG_get_bytes_internal, (void *)prg);
-+ SECStatus rv = PK11_CipherOp(prg->ctx, bytes, &outlen, len, in, len);
-+ return (rv != SECSuccess || (size_t)outlen != len) ? SECFailure : SECSuccess;
- }
-
- SECStatus
--PRG_get_array (PRG prg, MPArray dst, const mp_int *mod)
-+PRG_get_bytes(PRG prg, unsigned char* bytes, size_t len)
-+{
-+ return PRG_get_bytes_internal((void*)prg, bytes, len);
-+}
-+
-+SECStatus
-+PRG_get_int(PRG prg, mp_int* out, const mp_int* max)
-+{
-+ return rand_int_rng(out, max, &PRG_get_bytes_internal, (void*)prg);
-+}
-+
-+SECStatus
-+PRG_get_array(PRG prg, MPArray dst, const mp_int* mod)
- {
- SECStatus rv;
-- for (int i=0; i<dst->len; i++) {
-- P_CHECK (PRG_get_int (prg, &dst->data[i], mod));
-+ for (int i = 0; i < dst->len; i++) {
-+ P_CHECK(PRG_get_int(prg, &dst->data[i], mod));
- }
-
- return SECSuccess;
- }
-
- SECStatus
--PRG_share_int (PRG prgB, mp_int *shareA, const mp_int *src, const_PrioConfig cfg)
-+PRG_share_int(PRG prgB, mp_int* shareA, const mp_int* src, const_PrioConfig cfg)
- {
- SECStatus rv = SECSuccess;
- mp_int tmp;
-- MP_DIGITS (&tmp) = NULL;
-+ MP_DIGITS(&tmp) = NULL;
-
-- MP_CHECKC (mp_init (&tmp));
-- P_CHECKC (PRG_get_int (prgB, &tmp, &cfg->modulus));
-- MP_CHECKC (mp_submod (src, &tmp, &cfg->modulus, shareA));
-+ MP_CHECKC(mp_init(&tmp));
-+ P_CHECKC(PRG_get_int(prgB, &tmp, &cfg->modulus));
-+ MP_CHECKC(mp_submod(src, &tmp, &cfg->modulus, shareA));
-
- cleanup:
-- mp_clear (&tmp);
-+ mp_clear(&tmp);
- return rv;
- }
-
--
--SECStatus
--PRG_share_array (PRG prgB, MPArray arrA,
-- const_MPArray src, const_PrioConfig cfg)
-+SECStatus
-+PRG_share_array(PRG prgB, MPArray arrA, const_MPArray src, const_PrioConfig cfg)
- {
- SECStatus rv = SECSuccess;
- if (arrA->len != src->len)
-@@ -147,10 +147,9 @@
-
- const int len = src->len;
-
-- for (int i=0; i < len; i++) {
-- P_CHECK(PRG_share_int (prgB, &arrA->data[i], &src->data[i], cfg));
-+ for (int i = 0; i < len; i++) {
-+ P_CHECK(PRG_share_int(prgB, &arrA->data[i], &src->data[i], cfg));
- }
-
- return rv;
--
- }
-diff --git a/third_party/prio/prio/rand.h b/third_party/prio/prio/rand.h
---- a/third_party/prio/prio/rand.h
-+++ b/third_party/prio/prio/rand.h
-@@ -1,43 +1,44 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #ifndef __RAND_H__
- #define __RAND_H__
-
- #include <mpi.h>
--#include <nss/seccomon.h>
-+#include <seccomon.h>
- #include <stdlib.h>
-
- /*
- * Typedef for function pointer. A function pointer of type RandBytesFunc
- * points to a function that fills the buffer `out` of with `len` random bytes.
- */
--typedef SECStatus (*RandBytesFunc) (void *user_data, unsigned char *out, size_t len);
-+typedef SECStatus (*RandBytesFunc)(void* user_data, unsigned char* out,
-+ size_t len);
-
--/*
-+/*
- * Initialize or cleanup the global random number generator
- * state that NSS uses.
- */
--SECStatus rand_init (void);
--void rand_clear (void);
-+SECStatus rand_init(void);
-+void rand_clear(void);
-
--/*
-+/*
- * Generate the specified number of random bytes using the
- * NSS random number generator.
-- */
--SECStatus rand_bytes (unsigned char *out, size_t n_bytes);
-+ */
-+SECStatus rand_bytes(unsigned char* out, size_t n_bytes);
-
- /*
- * Generate a random number x such that
- * 0 <= x < max
- * using the NSS random number generator.
- */
--SECStatus rand_int (mp_int *out, const mp_int *max);
-+SECStatus rand_int(mp_int* out, const mp_int* max);
-
- /*
- * Generate a random number x such that
-@@ -47,8 +48,7 @@
- * The pointer user_data is passed to RandBytesFung `rng` as a first
- * argument.
- */
--SECStatus rand_int_rng (mp_int *out, const mp_int *max,
-- RandBytesFunc rng, void *user_data);
-+SECStatus rand_int_rng(mp_int* out, const mp_int* max, RandBytesFunc rng,
-+ void* user_data);
-
- #endif /* __RAND_H__ */
--
-diff --git a/third_party/prio/prio/rand.c b/third_party/prio/prio/rand.c
---- a/third_party/prio/prio/rand.c
-+++ b/third_party/prio/prio/rand.c
-@@ -1,16 +1,16 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #include <limits.h>
- #include <mprio.h>
--#include <nss/nss.h>
--#include <nss/pk11pub.h>
--#include <nspr/prinit.h>
-+#include <nss.h>
-+#include <pk11pub.h>
-+#include <prinit.h>
-
- #include "debug.h"
- #include "rand.h"
-@@ -18,44 +18,41 @@
-
- #define CHUNK_SIZE 8192
-
--static NSSInitContext *prioGlobalContext = NULL;
-+static NSSInitContext* prioGlobalContext = NULL;
-
- SECStatus
--rand_init (void)
-+rand_init(void)
- {
-- if (prioGlobalContext)
-+ if (prioGlobalContext)
- return SECSuccess;
-
-- prioGlobalContext = NSS_InitContext ("", "", "", "", NULL,
-- NSS_INIT_READONLY |
-- NSS_INIT_NOCERTDB |
-- NSS_INIT_NOMODDB |
-- NSS_INIT_FORCEOPEN |
-- NSS_INIT_NOROOTINIT);
-+ prioGlobalContext =
-+ NSS_InitContext("", "", "", "", NULL,
-+ NSS_INIT_READONLY | NSS_INIT_NOCERTDB | NSS_INIT_NOMODDB |
-+ NSS_INIT_FORCEOPEN | NSS_INIT_NOROOTINIT);
-
- return (prioGlobalContext != NULL) ? SECSuccess : SECFailure;
- }
-
--static SECStatus
--rand_bytes_internal (void *user_data, unsigned char *out, size_t n_bytes)
-+static SECStatus
-+rand_bytes_internal(void* user_data, unsigned char* out, size_t n_bytes)
- {
- // No pointer should ever be passed in.
- if (user_data != NULL)
- return SECFailure;
-- if (!NSS_IsInitialized ()) {
-- PRIO_DEBUG ("NSS not initialized. Call rand_init() first.");
-+ if (!NSS_IsInitialized()) {
-+ PRIO_DEBUG("NSS not initialized. Call rand_init() first.");
- return SECFailure;
- }
-
- SECStatus rv = SECFailure;
-
- int to_go = n_bytes;
-- unsigned char *cp = out;
-+ unsigned char* cp = out;
- while (to_go) {
-- int to_gen = MIN (CHUNK_SIZE, to_go);
-- if ((rv = PK11_GenerateRandom (cp, to_gen)) != SECSuccess)
-- {
-- PRIO_DEBUG ("Error calling PK11_GenerateRandom");
-+ int to_gen = MIN(CHUNK_SIZE, to_go);
-+ if ((rv = PK11_GenerateRandom(cp, to_gen)) != SECSuccess) {
-+ PRIO_DEBUG("Error calling PK11_GenerateRandom");
- return SECFailure;
- }
-
-@@ -66,67 +63,67 @@
- return rv;
- }
-
--SECStatus
--rand_bytes (unsigned char *out, size_t n_bytes)
-+SECStatus
-+rand_bytes(unsigned char* out, size_t n_bytes)
- {
-- return rand_bytes_internal (NULL, out, n_bytes);
-+ return rand_bytes_internal(NULL, out, n_bytes);
- }
-
- SECStatus
--rand_int (mp_int *out, const mp_int *max)
-+rand_int(mp_int* out, const mp_int* max)
- {
-- return rand_int_rng (out, max, &rand_bytes_internal, NULL);
-+ return rand_int_rng(out, max, &rand_bytes_internal, NULL);
- }
-
- SECStatus
--rand_int_rng (mp_int *out, const mp_int *max,
-- RandBytesFunc rng_func, void *user_data)
-+rand_int_rng(mp_int* out, const mp_int* max, RandBytesFunc rng_func,
-+ void* user_data)
- {
- SECStatus rv = SECSuccess;
-
- // Ensure max value is > 0
-- if (mp_cmp_z (max) == 0)
-+ if (mp_cmp_z(max) == 0)
- return SECFailure;
-
- // Compute max-1, which tells us the largest
- // value we will ever need to generate.
-- MP_CHECK (mp_sub_d (max, 1, out));
-+ MP_CHECK(mp_sub_d(max, 1, out));
-
-- const int nbytes = mp_unsigned_octet_size (out);
-+ const int nbytes = mp_unsigned_octet_size(out);
-
-- // Figure out how many MSBs we need to get in the
-- // most-significant byte.
-+ // Figure out how many MSBs we need to get in the
-+ // most-significant byte.
- unsigned char max_bytes[nbytes];
-- MP_CHECK (mp_to_fixlen_octets (out, max_bytes, nbytes));
-- const unsigned char mask = msb_mask (max_bytes[0]);
-+ MP_CHECK(mp_to_fixlen_octets(out, max_bytes, nbytes));
-+ const unsigned char mask = msb_mask(max_bytes[0]);
-
- // Buffer to store the pseudo-random bytes
- unsigned char buf[nbytes];
-
- do {
- // Use rejection sampling to find a value strictly less than max.
-- P_CHECK (rng_func (user_data, buf, nbytes));
-+ P_CHECK(rng_func(user_data, buf, nbytes));
-
- // Mask off high-order bits that we will never need.
-- P_CHECK (rng_func (user_data, &buf[0], 1));
-- if (mask) buf[0] &= mask;
-+ P_CHECK(rng_func(user_data, &buf[0], 1));
-+ if (mask)
-+ buf[0] &= mask;
-
-- MP_CHECK (mp_read_unsigned_octets (out, buf, nbytes));
-- } while (mp_cmp (out, max) != -1);
-+ MP_CHECK(mp_read_unsigned_octets(out, buf, nbytes));
-+ } while (mp_cmp(out, max) != -1);
-
- return 0;
- }
-
- void
--rand_clear (void)
-+rand_clear(void)
- {
- if (prioGlobalContext) {
-- NSS_ShutdownContext (prioGlobalContext);
-+ NSS_ShutdownContext(prioGlobalContext);
- #ifdef DO_PR_CLEANUP
-- PR_Cleanup ();
--#endif
-+ PR_Cleanup();
-+#endif
- }
-
- prioGlobalContext = NULL;
- }
--
-diff --git a/third_party/prio/prio/serial.h b/third_party/prio/prio/serial.h
---- a/third_party/prio/prio/serial.h
-+++ b/third_party/prio/prio/serial.h
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #ifndef __SERIAL_H__
-@@ -11,11 +11,11 @@
-
- #include <mprio.h>
-
--SECStatus serial_write_packet_client (msgpack_packer *pk, const_PrioPacketClient p,
-- const_PrioConfig cfg);
-+SECStatus serial_write_packet_client(msgpack_packer* pk,
-+ const_PrioPacketClient p,
-+ const_PrioConfig cfg);
-
--SECStatus serial_read_packet_client (msgpack_unpacker *upk, PrioPacketClient p,
-- const_PrioConfig cfg);
-+SECStatus serial_read_packet_client(msgpack_unpacker* upk, PrioPacketClient p,
-+ const_PrioConfig cfg);
-
- #endif /* __SERIAL_H__ */
--
-diff --git a/third_party/prio/prio/serial.c b/third_party/prio/prio/serial.c
---- a/third_party/prio/prio/serial.c
-+++ b/third_party/prio/prio/serial.c
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #include <mprio.h>
-@@ -17,277 +17,277 @@
-
- #define MSGPACK_OK 0
-
--static SECStatus
--serial_write_mp_int (msgpack_packer *pk, const mp_int *n)
-+static SECStatus
-+serial_write_mp_int(msgpack_packer* pk, const mp_int* n)
- {
- SECStatus rv = SECSuccess;
-- unsigned int n_size = mp_unsigned_octet_size (n);
-+ unsigned int n_size = mp_unsigned_octet_size(n);
-
- unsigned char data[n_size];
-- MP_CHECK (mp_to_fixlen_octets (n, data, n_size));
-+ MP_CHECK(mp_to_fixlen_octets(n, data, n_size));
-
-- P_CHECK (msgpack_pack_str (pk, n_size));
-- P_CHECK (msgpack_pack_str_body (pk, data, n_size));
-+ P_CHECK(msgpack_pack_str(pk, n_size));
-+ P_CHECK(msgpack_pack_str_body(pk, data, n_size));
- return rv;
- }
-
- static SECStatus
--object_to_mp_int (msgpack_object *obj, mp_int *n, const mp_int *max)
-+object_to_mp_int(msgpack_object* obj, mp_int* n, const mp_int* max)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (obj != NULL);
-- P_CHECKCB (obj->type == MSGPACK_OBJECT_STR);
-- P_CHECKCB (n != NULL);
-+ P_CHECKCB(obj != NULL);
-+ P_CHECKCB(obj->type == MSGPACK_OBJECT_STR);
-+ P_CHECKCB(n != NULL);
-
- msgpack_object_str s = obj->via.str;
-- P_CHECKCB (s.ptr != NULL);
-- MP_CHECKC (mp_read_unsigned_octets (n, (unsigned char *)s.ptr, s.size));
-+ P_CHECKCB(s.ptr != NULL);
-+ MP_CHECKC(mp_read_unsigned_octets(n, (unsigned char*)s.ptr, s.size));
-
-- P_CHECKCB (mp_cmp_z (n) >= 0);
-- P_CHECKCB (mp_cmp (n, max) < 0);
-+ P_CHECKCB(mp_cmp_z(n) >= 0);
-+ P_CHECKCB(mp_cmp(n, max) < 0);
-
- cleanup:
- return rv;
- }
-
--static SECStatus
--serial_read_mp_int (msgpack_unpacker *upk, mp_int *n, const mp_int *max)
-+static SECStatus
-+serial_read_mp_int(msgpack_unpacker* upk, mp_int* n, const mp_int* max)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (upk != NULL);
-- P_CHECKCB (n != NULL);
-- P_CHECKCB (max != NULL);
-+ P_CHECKCB(upk != NULL);
-+ P_CHECKCB(n != NULL);
-+ P_CHECKCB(max != NULL);
-
- msgpack_unpacked res;
-- msgpack_unpacked_init (&res);
-- UP_CHECK (msgpack_unpacker_next (upk, &res))
-+ msgpack_unpacked_init(&res);
-+ UP_CHECK(msgpack_unpacker_next(upk, &res))
-
- msgpack_object obj = res.data;
-- P_CHECKC (object_to_mp_int (&obj, n, max));
-+ P_CHECKC(object_to_mp_int(&obj, n, max));
-
- cleanup:
-- msgpack_unpacked_destroy (&res);
-+ msgpack_unpacked_destroy(&res);
-
- return rv;
- }
-
--static SECStatus
--serial_read_int (msgpack_unpacker *upk, int *n)
-+static SECStatus
-+serial_read_int(msgpack_unpacker* upk, int* n)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (upk != NULL);
-- P_CHECKCB (n != NULL);
-+ P_CHECKCB(upk != NULL);
-+ P_CHECKCB(n != NULL);
-
- msgpack_unpacked res;
-- msgpack_unpacked_init (&res);
-- UP_CHECK (msgpack_unpacker_next (upk, &res))
-+ msgpack_unpacked_init(&res);
-+ UP_CHECK(msgpack_unpacker_next(upk, &res))
-
- msgpack_object obj = res.data;
-- P_CHECKCB (obj.type == MSGPACK_OBJECT_POSITIVE_INTEGER);
-+ P_CHECKCB(obj.type == MSGPACK_OBJECT_POSITIVE_INTEGER);
-
- *n = obj.via.i64;
-
- cleanup:
-- msgpack_unpacked_destroy (&res);
-+ msgpack_unpacked_destroy(&res);
-
- return rv;
- }
-
--static SECStatus
--serial_write_mp_array (msgpack_packer *pk, const_MPArray arr)
-+static SECStatus
-+serial_write_mp_array(msgpack_packer* pk, const_MPArray arr)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (pk != NULL);
-- P_CHECKCB (arr != NULL);
-+ P_CHECKCB(pk != NULL);
-+ P_CHECKCB(arr != NULL);
-
-- P_CHECK (msgpack_pack_array (pk, arr->len));
-+ P_CHECK(msgpack_pack_array(pk, arr->len));
- for (int i = 0; i < arr->len; i++) {
-- P_CHECK (serial_write_mp_int (pk, &arr->data[i]));
-+ P_CHECK(serial_write_mp_int(pk, &arr->data[i]));
- }
-
- cleanup:
- return rv;
- }
-
--static SECStatus
--serial_read_mp_array (msgpack_unpacker *upk, MPArray arr, size_t len, const mp_int
-- *max)
-+static SECStatus
-+serial_read_mp_array(msgpack_unpacker* upk, MPArray arr, size_t len,
-+ const mp_int* max)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (upk != NULL);
-- P_CHECKCB (arr != NULL);
-- P_CHECKCB (max != NULL);
-+ P_CHECKCB(upk != NULL);
-+ P_CHECKCB(arr != NULL);
-+ P_CHECKCB(max != NULL);
-
- msgpack_unpacked res;
-- msgpack_unpacked_init (&res);
-- UP_CHECK (msgpack_unpacker_next (upk, &res))
-+ msgpack_unpacked_init(&res);
-+ UP_CHECK(msgpack_unpacker_next(upk, &res))
-
- msgpack_object obj = res.data;
-- P_CHECKCB (obj.type == MSGPACK_OBJECT_ARRAY);
-+ P_CHECKCB(obj.type == MSGPACK_OBJECT_ARRAY);
-
- msgpack_object_array objarr = obj.via.array;
-- P_CHECKCB (objarr.size == len);
-+ P_CHECKCB(objarr.size == len);
-
-- P_CHECKC (MPArray_resize (arr, len));
-- for (unsigned int i=0; i<len; i++) {
-- P_CHECKC (object_to_mp_int (&objarr.ptr[i], &arr->data[i], max));
-+ P_CHECKC(MPArray_resize(arr, len));
-+ for (unsigned int i = 0; i < len; i++) {
-+ P_CHECKC(object_to_mp_int(&objarr.ptr[i], &arr->data[i], max));
- }
-
- cleanup:
-- msgpack_unpacked_destroy (&res);
-+ msgpack_unpacked_destroy(&res);
-
- return rv;
- }
-
--
--static SECStatus
--serial_write_beaver_triple (msgpack_packer *pk, const_BeaverTriple t)
-+static SECStatus
-+serial_write_beaver_triple(msgpack_packer* pk, const_BeaverTriple t)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (pk != NULL);
-- P_CHECKCB (t != NULL);
-+ P_CHECKCB(pk != NULL);
-+ P_CHECKCB(t != NULL);
-
-- P_CHECK (serial_write_mp_int (pk, &t->a));
-- P_CHECK (serial_write_mp_int (pk, &t->b));
-- P_CHECK (serial_write_mp_int (pk, &t->c));
-+ P_CHECK(serial_write_mp_int(pk, &t->a));
-+ P_CHECK(serial_write_mp_int(pk, &t->b));
-+ P_CHECK(serial_write_mp_int(pk, &t->c));
-
- cleanup:
- return rv;
- }
-
--static SECStatus
--serial_read_beaver_triple (msgpack_unpacker *pk, BeaverTriple t, const mp_int *max)
-+static SECStatus
-+serial_read_beaver_triple(msgpack_unpacker* pk, BeaverTriple t,
-+ const mp_int* max)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (pk != NULL);
-- P_CHECKCB (t != NULL);
-- P_CHECKCB (max != NULL);
-+ P_CHECKCB(pk != NULL);
-+ P_CHECKCB(t != NULL);
-+ P_CHECKCB(max != NULL);
-
-- P_CHECK (serial_read_mp_int (pk, &t->a, max));
-- P_CHECK (serial_read_mp_int (pk, &t->b, max));
-- P_CHECK (serial_read_mp_int (pk, &t->c, max));
-+ P_CHECK(serial_read_mp_int(pk, &t->a, max));
-+ P_CHECK(serial_read_mp_int(pk, &t->b, max));
-+ P_CHECK(serial_read_mp_int(pk, &t->c, max));
-
- cleanup:
- return rv;
- }
-
--static SECStatus
--serial_write_server_a_data (msgpack_packer *pk, const struct server_a_data *A)
-+static SECStatus
-+serial_write_server_a_data(msgpack_packer* pk, const struct server_a_data* A)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (pk != NULL);
-- P_CHECKCB (A != NULL);
-+ P_CHECKCB(pk != NULL);
-+ P_CHECKCB(A != NULL);
-
-- P_CHECK (serial_write_mp_array (pk, A->data_shares));
-- P_CHECK (serial_write_mp_array (pk, A->h_points));
-+ P_CHECK(serial_write_mp_array(pk, A->data_shares));
-+ P_CHECK(serial_write_mp_array(pk, A->h_points));
- cleanup:
- return rv;
- }
-
--static SECStatus
--serial_read_server_a_data (msgpack_unpacker *upk, struct server_a_data *A,
-- const_PrioConfig cfg)
-+static SECStatus
-+serial_read_server_a_data(msgpack_unpacker* upk, struct server_a_data* A,
-+ const_PrioConfig cfg)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (upk != NULL);
-- P_CHECKCB (A != NULL);
-+ P_CHECKCB(upk != NULL);
-+ P_CHECKCB(A != NULL);
-
-- P_CHECK (serial_read_mp_array (upk, A->data_shares, cfg->num_data_fields,
-- &cfg->modulus));
-- P_CHECK (serial_read_mp_array (upk, A->h_points, PrioConfig_hPoints (cfg),
-- &cfg->modulus));
-+ P_CHECK(serial_read_mp_array(upk, A->data_shares, cfg->num_data_fields,
-+ &cfg->modulus));
-+ P_CHECK(serial_read_mp_array(upk, A->h_points, PrioConfig_hPoints(cfg),
-+ &cfg->modulus));
-
- cleanup:
- return rv;
- }
-
--static SECStatus
--serial_write_prg_seed (msgpack_packer *pk, const PrioPRGSeed *seed)
-+static SECStatus
-+serial_write_prg_seed(msgpack_packer* pk, const PrioPRGSeed* seed)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (pk != NULL);
-- P_CHECKCB (seed != NULL);
-+ P_CHECKCB(pk != NULL);
-+ P_CHECKCB(seed != NULL);
-
-- P_CHECK (msgpack_pack_str (pk, PRG_SEED_LENGTH));
-- P_CHECK (msgpack_pack_str_body (pk, seed, PRG_SEED_LENGTH));
-+ P_CHECK(msgpack_pack_str(pk, PRG_SEED_LENGTH));
-+ P_CHECK(msgpack_pack_str_body(pk, seed, PRG_SEED_LENGTH));
-
- cleanup:
- return rv;
- }
-
--static SECStatus
--serial_read_prg_seed (msgpack_unpacker *upk, PrioPRGSeed *seed)
-+static SECStatus
-+serial_read_prg_seed(msgpack_unpacker* upk, PrioPRGSeed* seed)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (upk != NULL);
-- P_CHECKCB (seed != NULL);
-+ P_CHECKCB(upk != NULL);
-+ P_CHECKCB(seed != NULL);
-
- msgpack_unpacked res;
-- msgpack_unpacked_init (&res);
-- UP_CHECK (msgpack_unpacker_next (upk, &res))
-+ msgpack_unpacked_init(&res);
-+ UP_CHECK(msgpack_unpacker_next(upk, &res))
-
- msgpack_object obj = res.data;
-- P_CHECKCB (obj.type == MSGPACK_OBJECT_STR);
-+ P_CHECKCB(obj.type == MSGPACK_OBJECT_STR);
-
- msgpack_object_str s = obj.via.str;
-- P_CHECKCB (s.size == PRG_SEED_LENGTH);
-- memcpy (seed, s.ptr, PRG_SEED_LENGTH);
-+ P_CHECKCB(s.size == PRG_SEED_LENGTH);
-+ memcpy(seed, s.ptr, PRG_SEED_LENGTH);
-
- cleanup:
-- msgpack_unpacked_destroy (&res);
-+ msgpack_unpacked_destroy(&res);
-
- return rv;
- }
-
--static SECStatus
--serial_write_server_b_data (msgpack_packer *pk, const struct server_b_data *B)
-+static SECStatus
-+serial_write_server_b_data(msgpack_packer* pk, const struct server_b_data* B)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (pk != NULL);
-- P_CHECKCB (B != NULL);
-+ P_CHECKCB(pk != NULL);
-+ P_CHECKCB(B != NULL);
-
-- rv = serial_write_prg_seed (pk, &B->seed);
-+ rv = serial_write_prg_seed(pk, &B->seed);
- cleanup:
- return rv;
- }
-
--static SECStatus
--serial_read_server_b_data (msgpack_unpacker *upk, struct server_b_data *B)
-+static SECStatus
-+serial_read_server_b_data(msgpack_unpacker* upk, struct server_b_data* B)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (upk != NULL);
-- P_CHECKCB (B != NULL);
--
-- rv =serial_read_prg_seed (upk, &B->seed);
-+ P_CHECKCB(upk != NULL);
-+ P_CHECKCB(B != NULL);
-+
-+ rv = serial_read_prg_seed(upk, &B->seed);
- cleanup:
- return rv;
- }
-
--SECStatus
--serial_write_packet_client (msgpack_packer *pk, const_PrioPacketClient p,
-- const_PrioConfig cfg)
-+SECStatus
-+serial_write_packet_client(msgpack_packer* pk, const_PrioPacketClient p,
-+ const_PrioConfig cfg)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (pk != NULL);
-- P_CHECKCB (p != NULL);
-+ P_CHECKCB(pk != NULL);
-+ P_CHECKCB(p != NULL);
-
-- P_CHECK (msgpack_pack_str (pk, cfg->batch_id_len));
-- P_CHECK (msgpack_pack_str_body (pk, cfg->batch_id, cfg->batch_id_len));
-+ P_CHECK(msgpack_pack_str(pk, cfg->batch_id_len));
-+ P_CHECK(msgpack_pack_str_body(pk, cfg->batch_id, cfg->batch_id_len));
-
-- P_CHECK (serial_write_beaver_triple (pk, p->triple));
-+ P_CHECK(serial_write_beaver_triple(pk, p->triple));
-
-- P_CHECK (serial_write_mp_int (pk, &p->f0_share));
-- P_CHECK (serial_write_mp_int (pk, &p->g0_share));
-- P_CHECK (serial_write_mp_int (pk, &p->h0_share));
-+ P_CHECK(serial_write_mp_int(pk, &p->f0_share));
-+ P_CHECK(serial_write_mp_int(pk, &p->g0_share));
-+ P_CHECK(serial_write_mp_int(pk, &p->h0_share));
-
-- P_CHECK (msgpack_pack_int (pk, p->for_server));
-+ P_CHECK(msgpack_pack_int(pk, p->for_server));
-
- switch (p->for_server) {
- case PRIO_SERVER_A:
-- P_CHECK (serial_write_server_a_data (pk, &p->shares.A));
-+ P_CHECK(serial_write_server_a_data(pk, &p->shares.A));
- break;
- case PRIO_SERVER_B:
-- P_CHECK (serial_write_server_b_data (pk, &p->shares.B));
-+ P_CHECK(serial_write_server_b_data(pk, &p->shares.B));
- break;
- default:
- return SECFailure;
-@@ -297,146 +297,144 @@
- return rv;
- }
-
--SECStatus
--serial_read_server_id (msgpack_unpacker *upk, PrioServerId *s)
-+SECStatus
-+serial_read_server_id(msgpack_unpacker* upk, PrioServerId* s)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (upk != NULL);
-- P_CHECKCB (s != NULL);
-+ P_CHECKCB(upk != NULL);
-+ P_CHECKCB(s != NULL);
-
- int serv;
-- P_CHECK (serial_read_int (upk, &serv));
-- P_CHECKCB (serv == PRIO_SERVER_A || serv == PRIO_SERVER_B);
-+ P_CHECK(serial_read_int(upk, &serv));
-+ P_CHECKCB(serv == PRIO_SERVER_A || serv == PRIO_SERVER_B);
- *s = serv;
-
- cleanup:
- return rv;
- }
-
--SECStatus
--serial_read_packet_client (msgpack_unpacker *upk, PrioPacketClient p,
-- const_PrioConfig cfg)
-+SECStatus
-+serial_read_packet_client(msgpack_unpacker* upk, PrioPacketClient p,
-+ const_PrioConfig cfg)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (upk != NULL);
-- P_CHECKCB (p != NULL);
-+ P_CHECKCB(upk != NULL);
-+ P_CHECKCB(p != NULL);
- msgpack_unpacked res;
-- msgpack_unpacked_init (&res);
-- UP_CHECK (msgpack_unpacker_next (upk, &res))
-+ msgpack_unpacked_init(&res);
-+ UP_CHECK(msgpack_unpacker_next(upk, &res))
-
- msgpack_object obj = res.data;
-- P_CHECKCB (obj.type == MSGPACK_OBJECT_STR);
-+ P_CHECKCB(obj.type == MSGPACK_OBJECT_STR);
-
- msgpack_object_str s = obj.via.str;
-- P_CHECKCB (s.size == cfg->batch_id_len);
-- P_CHECKCB (!memcmp (s.ptr, (char *)cfg->batch_id, cfg->batch_id_len));
-+ P_CHECKCB(s.size == cfg->batch_id_len);
-+ P_CHECKCB(!memcmp(s.ptr, (char*)cfg->batch_id, cfg->batch_id_len));
-
-- P_CHECK (serial_read_beaver_triple (upk, p->triple, &cfg->modulus));
-+ P_CHECK(serial_read_beaver_triple(upk, p->triple, &cfg->modulus));
-
-- P_CHECK (serial_read_mp_int (upk, &p->f0_share, &cfg->modulus));
-- P_CHECK (serial_read_mp_int (upk, &p->g0_share, &cfg->modulus));
-- P_CHECK (serial_read_mp_int (upk, &p->h0_share, &cfg->modulus));
-+ P_CHECK(serial_read_mp_int(upk, &p->f0_share, &cfg->modulus));
-+ P_CHECK(serial_read_mp_int(upk, &p->g0_share, &cfg->modulus));
-+ P_CHECK(serial_read_mp_int(upk, &p->h0_share, &cfg->modulus));
-
-- P_CHECK (serial_read_server_id (upk, &p->for_server));
-+ P_CHECK(serial_read_server_id(upk, &p->for_server));
-
- switch (p->for_server) {
- case PRIO_SERVER_A:
-- P_CHECK (serial_read_server_a_data (upk, &p->shares.A, cfg));
-+ P_CHECK(serial_read_server_a_data(upk, &p->shares.A, cfg));
- break;
- case PRIO_SERVER_B:
-- P_CHECK (serial_read_server_b_data (upk, &p->shares.B));
-+ P_CHECK(serial_read_server_b_data(upk, &p->shares.B));
- break;
- default:
- return SECFailure;
- }
-
- cleanup:
-- msgpack_unpacked_destroy (&res);
-+ msgpack_unpacked_destroy(&res);
- return rv;
- }
-
--
--SECStatus
--PrioPacketVerify1_write (const_PrioPacketVerify1 p, msgpack_packer *pk)
-+SECStatus
-+PrioPacketVerify1_write(const_PrioPacketVerify1 p, msgpack_packer* pk)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (pk != NULL);
-- P_CHECKCB (p != NULL);
-+ P_CHECKCB(pk != NULL);
-+ P_CHECKCB(p != NULL);
-
-- P_CHECK (serial_write_mp_int (pk, &p->share_d));
-- P_CHECK (serial_write_mp_int (pk, &p->share_e));
-+ P_CHECK(serial_write_mp_int(pk, &p->share_d));
-+ P_CHECK(serial_write_mp_int(pk, &p->share_e));
-
- cleanup:
- return rv;
- }
-
--SECStatus
--PrioPacketVerify1_read (PrioPacketVerify1 p, msgpack_unpacker *upk,
-- const_PrioConfig cfg)
-+SECStatus
-+PrioPacketVerify1_read(PrioPacketVerify1 p, msgpack_unpacker* upk,
-+ const_PrioConfig cfg)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (upk != NULL);
-- P_CHECKCB (p != NULL);
-+ P_CHECKCB(upk != NULL);
-+ P_CHECKCB(p != NULL);
-
-- P_CHECK (serial_read_mp_int (upk, &p->share_d, &cfg->modulus));
-- P_CHECK (serial_read_mp_int (upk, &p->share_e, &cfg->modulus));
-+ P_CHECK(serial_read_mp_int(upk, &p->share_d, &cfg->modulus));
-+ P_CHECK(serial_read_mp_int(upk, &p->share_e, &cfg->modulus));
-
- cleanup:
- return rv;
- }
-
--SECStatus
--PrioPacketVerify2_write (const_PrioPacketVerify2 p, msgpack_packer *pk)
-+SECStatus
-+PrioPacketVerify2_write(const_PrioPacketVerify2 p, msgpack_packer* pk)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (pk != NULL);
-- P_CHECKCB (p != NULL);
-+ P_CHECKCB(pk != NULL);
-+ P_CHECKCB(p != NULL);
-
-- P_CHECK (serial_write_mp_int (pk, &p->share_out));
-+ P_CHECK(serial_write_mp_int(pk, &p->share_out));
-
- cleanup:
- return rv;
- }
-
--SECStatus
--PrioPacketVerify2_read (PrioPacketVerify2 p, msgpack_unpacker *upk,
-- const_PrioConfig cfg)
-+SECStatus
-+PrioPacketVerify2_read(PrioPacketVerify2 p, msgpack_unpacker* upk,
-+ const_PrioConfig cfg)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (upk != NULL);
-- P_CHECKCB (p != NULL);
-+ P_CHECKCB(upk != NULL);
-+ P_CHECKCB(p != NULL);
-
-- P_CHECK (serial_read_mp_int (upk, &p->share_out, &cfg->modulus));
-+ P_CHECK(serial_read_mp_int(upk, &p->share_out, &cfg->modulus));
-
- cleanup:
- return rv;
- }
-
--SECStatus
--PrioTotalShare_write (const_PrioTotalShare t, msgpack_packer *pk)
-+SECStatus
-+PrioTotalShare_write(const_PrioTotalShare t, msgpack_packer* pk)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (t != NULL);
-- P_CHECKCB (pk != NULL);
-- P_CHECK (msgpack_pack_int (pk, t->idx));
-- P_CHECK (serial_write_mp_array (pk, t->data_shares));
-+ P_CHECKCB(t != NULL);
-+ P_CHECKCB(pk != NULL);
-+ P_CHECK(msgpack_pack_int(pk, t->idx));
-+ P_CHECK(serial_write_mp_array(pk, t->data_shares));
-
- cleanup:
- return rv;
- }
-
--SECStatus
--PrioTotalShare_read (PrioTotalShare t, msgpack_unpacker *upk,
-- const_PrioConfig cfg)
-+SECStatus
-+PrioTotalShare_read(PrioTotalShare t, msgpack_unpacker* upk,
-+ const_PrioConfig cfg)
- {
- SECStatus rv = SECSuccess;
-- P_CHECKCB (t != NULL);
-- P_CHECKCB (upk != NULL);
-- P_CHECK (serial_read_server_id (upk, &t->idx));
-- P_CHECK (serial_read_mp_array (upk, t->data_shares, cfg->num_data_fields,
-- &cfg->modulus));
-+ P_CHECKCB(t != NULL);
-+ P_CHECKCB(upk != NULL);
-+ P_CHECK(serial_read_server_id(upk, &t->idx));
-+ P_CHECK(serial_read_mp_array(upk, t->data_shares, cfg->num_data_fields,
-+ &cfg->modulus));
-
- cleanup:
- return rv;
- }
--
-diff --git a/third_party/prio/prio/server.h b/third_party/prio/prio/server.h
---- a/third_party/prio/prio/server.h
-+++ b/third_party/prio/prio/server.h
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #ifndef __SERVER_H__
-@@ -13,12 +13,14 @@
- #include "prg.h"
- #include "share.h"
-
--struct prio_total_share {
-+struct prio_total_share
-+{
- PrioServerId idx;
- MPArray data_shares;
- };
-
--struct prio_server {
-+struct prio_server
-+{
- const_PrioConfig cfg;
- PrioServerId idx;
-
-@@ -34,7 +36,8 @@
- PRG prg;
- };
-
--struct prio_verifier {
-+struct prio_verifier
-+{
- PrioServer s;
-
- PrioPacketClient clientp;
-@@ -47,14 +50,15 @@
- mp_int share_out;
- };
-
--struct prio_packet_verify1 {
-+struct prio_packet_verify1
-+{
- mp_int share_d;
- mp_int share_e;
- };
-
--struct prio_packet_verify2 {
-+struct prio_packet_verify2
-+{
- mp_int share_out;
- };
-
- #endif /* __SERVER_H__ */
--
-diff --git a/third_party/prio/prio/server.c b/third_party/prio/prio/server.c
---- a/third_party/prio/prio/server.c
-+++ b/third_party/prio/prio/server.c
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #include <mpi.h>
-@@ -12,49 +12,51 @@
- #include <stdlib.h>
-
- #include "client.h"
--#include "prg.h"
-+#include "mparray.h"
- #include "poly.h"
--#include "mparray.h"
-+#include "prg.h"
- #include "server.h"
- #include "util.h"
-
--PrioServer
--PrioServer_new (const_PrioConfig cfg, PrioServerId server_idx,
-- PrivateKey server_priv, const PrioPRGSeed seed)
-+PrioServer
-+PrioServer_new(const_PrioConfig cfg, PrioServerId server_idx,
-+ PrivateKey server_priv, const PrioPRGSeed seed)
- {
- SECStatus rv = SECSuccess;
-- PrioServer s = malloc (sizeof (*s));
-- if (!s) return NULL;
-+ PrioServer s = malloc(sizeof(*s));
-+ if (!s)
-+ return NULL;
- s->cfg = cfg;
- s->idx = server_idx;
- s->priv_key = server_priv;
- s->data_shares = NULL;
- s->prg = NULL;
--
-- P_CHECKA (s->data_shares = MPArray_new (s->cfg->num_data_fields));
-- P_CHECKA (s->prg = PRG_new (seed));
-+
-+ P_CHECKA(s->data_shares = MPArray_new(s->cfg->num_data_fields));
-+ P_CHECKA(s->prg = PRG_new(seed));
-
- cleanup:
- if (rv != SECSuccess) {
-- PrioServer_clear (s);
-+ PrioServer_clear(s);
- return NULL;
- }
-
- return s;
- }
-
--void
--PrioServer_clear (PrioServer s)
-+void
-+PrioServer_clear(PrioServer s)
- {
-- if (!s) return;
-+ if (!s)
-+ return;
-
-- PRG_clear (s->prg);
-- MPArray_clear (s->data_shares);
-+ PRG_clear(s->prg);
-+ MPArray_clear(s->data_shares);
- free(s);
- }
-
- SECStatus
--PrioServer_aggregate (PrioServer s, PrioVerifier v)
-+PrioServer_aggregate(PrioServer s, PrioVerifier v)
- {
- MPArray arr = NULL;
- switch (s->idx) {
-@@ -69,48 +71,49 @@
- return SECFailure;
- }
-
-- return MPArray_addmod (s->data_shares, arr, &s->cfg->modulus);
-+ return MPArray_addmod(s->data_shares, arr, &s->cfg->modulus);
- }
-
--PrioTotalShare
--PrioTotalShare_new (void)
-+PrioTotalShare
-+PrioTotalShare_new(void)
- {
-- PrioTotalShare t = malloc (sizeof (*t));
-- if (!t) return NULL;
-+ PrioTotalShare t = malloc(sizeof(*t));
-+ if (!t)
-+ return NULL;
-
-- t->data_shares = MPArray_new (0);
-+ t->data_shares = MPArray_new(0);
- if (!t->data_shares) {
-- free (t);
-+ free(t);
- return NULL;
- }
-
- return t;
- }
-
--void
--PrioTotalShare_clear (PrioTotalShare t)
-+void
-+PrioTotalShare_clear(PrioTotalShare t)
- {
-- if (!t) return;
-- MPArray_clear (t->data_shares);
-- free (t);
-+ if (!t)
-+ return;
-+ MPArray_clear(t->data_shares);
-+ free(t);
- }
-
- SECStatus
--PrioTotalShare_set_data (PrioTotalShare t, const_PrioServer s)
-+PrioTotalShare_set_data(PrioTotalShare t, const_PrioServer s)
- {
- t->idx = s->idx;
- SECStatus rv = SECSuccess;
--
-- P_CHECK (MPArray_resize (t->data_shares, s->data_shares->len));
-- P_CHECK (MPArray_copy (t->data_shares, s->data_shares));
-+
-+ P_CHECK(MPArray_resize(t->data_shares, s->data_shares->len));
-+ P_CHECK(MPArray_copy(t->data_shares, s->data_shares));
-
- return rv;
- }
-
- SECStatus
--PrioTotalShare_final (const_PrioConfig cfg,
-- unsigned long *output,
-- const_PrioTotalShare tA, const_PrioTotalShare tB)
-+PrioTotalShare_final(const_PrioConfig cfg, unsigned long* output,
-+ const_PrioTotalShare tA, const_PrioTotalShare tB)
- {
- if (tA->data_shares->len != cfg->num_data_fields)
- return SECFailure;
-@@ -122,24 +125,24 @@
- SECStatus rv = SECSuccess;
-
- mp_int tmp;
-- MP_DIGITS (&tmp) = NULL;
-- MP_CHECKC (mp_init (&tmp));
-+ MP_DIGITS(&tmp) = NULL;
-+ MP_CHECKC(mp_init(&tmp));
-
-- for (int i=0; i<cfg->num_data_fields; i++) {
-- MP_CHECKC (mp_addmod(&tA->data_shares->data[i], &tB->data_shares->data[i],
-- &cfg->modulus, &tmp));
-+ for (int i = 0; i < cfg->num_data_fields; i++) {
-+ MP_CHECKC(mp_addmod(&tA->data_shares->data[i], &tB->data_shares->data[i],
-+ &cfg->modulus, &tmp));
-
- output[i] = tmp.dp[0];
- }
-
- cleanup:
-- mp_clear (&tmp);
-+ mp_clear(&tmp);
- return rv;
- }
-
--
--inline static mp_int *
--get_data_share (const_PrioVerifier v, int i) {
-+inline static mp_int*
-+get_data_share(const_PrioVerifier v, int i)
-+{
- switch (v->s->idx) {
- case PRIO_SERVER_A:
- return &v->clientp->shares.A.data_shares->data[i];
-@@ -150,8 +153,9 @@
- return NULL;
- }
-
--inline static mp_int *
--get_h_share (const_PrioVerifier v, int i) {
-+inline static mp_int*
-+get_h_share(const_PrioVerifier v, int i)
-+{
- switch (v->s->idx) {
- case PRIO_SERVER_A:
- return &v->clientp->shares.A.h_points->data[i];
-@@ -168,118 +172,122 @@
- * by the shared secret. Store the evaluations in the verifier object.
- */
- static SECStatus
--compute_shares (PrioVerifier v, const_PrioPacketClient p)
-+compute_shares(PrioVerifier v, const_PrioPacketClient p)
- {
- SECStatus rv;
- const int n = v->s->cfg->num_data_fields + 1;
-- const int N = next_power_of_two (n);
-+ const int N = next_power_of_two(n);
- mp_int eval_at;
-- MP_DIGITS (&eval_at) = NULL;
-+ MP_DIGITS(&eval_at) = NULL;
-
- MPArray points_f = NULL;
- MPArray points_g = NULL;
- MPArray points_h = NULL;
-
-- MP_CHECKC (mp_init (&eval_at));
-- P_CHECKA (points_f = MPArray_new (N));
-- P_CHECKA (points_g = MPArray_new (N));
-- P_CHECKA (points_h = MPArray_new (2*N));
-+ MP_CHECKC(mp_init(&eval_at));
-+ P_CHECKA(points_f = MPArray_new(N));
-+ P_CHECKA(points_g = MPArray_new(N));
-+ P_CHECKA(points_h = MPArray_new(2 * N));
-
- // Use PRG to generate random point
-- MP_CHECKC (PRG_get_int (v->s->prg, &eval_at, &v->s->cfg->modulus));
--
-- // Reduce value into the field we're using. This
-+ MP_CHECKC(PRG_get_int(v->s->prg, &eval_at, &v->s->cfg->modulus));
-+
-+ // Reduce value into the field we're using. This
- // doesn't yield exactly a uniformly random point,
- // but for values this large, it will be close
- // enough.
-- MP_CHECKC (mp_mod (&eval_at, &v->s->cfg->modulus, &eval_at));
-+ MP_CHECKC(mp_mod(&eval_at, &v->s->cfg->modulus, &eval_at));
-
- // Client sends us the values of f(0) and g(0)
-- MP_CHECKC (mp_copy(&p->f0_share, &points_f->data[0]));
-- MP_CHECKC (mp_copy(&p->g0_share, &points_g->data[0]));
-- MP_CHECKC (mp_copy(&p->h0_share, &points_h->data[0]));
-+ MP_CHECKC(mp_copy(&p->f0_share, &points_f->data[0]));
-+ MP_CHECKC(mp_copy(&p->g0_share, &points_g->data[0]));
-+ MP_CHECKC(mp_copy(&p->h0_share, &points_h->data[0]));
-
-- for (int i=1; i<n; i++) {
-+ for (int i = 1; i < n; i++) {
- // [f](i) = i-th data share
-- const mp_int *data_i_minus_1 = get_data_share(v, i-1);
-- MP_CHECKC (mp_copy(data_i_minus_1, &points_f->data[i]));
-+ const mp_int* data_i_minus_1 = get_data_share(v, i - 1);
-+ MP_CHECKC(mp_copy(data_i_minus_1, &points_f->data[i]));
-
- // [g](i) = i-th data share minus 1
- // Only need to shift the share for 0-th server
-- MP_CHECKC (mp_copy(&points_f->data[i], &points_g->data[i]));
-+ MP_CHECKC(mp_copy(&points_f->data[i], &points_g->data[i]));
- if (!v->s->idx) {
-- MP_CHECKC (mp_sub_d(&points_g->data[i], 1, &points_g->data[i]));
-- MP_CHECKC (mp_mod(&points_g->data[i], &v->s->cfg->modulus, &points_g->data[i]));
-+ MP_CHECKC(mp_sub_d(&points_g->data[i], 1, &points_g->data[i]));
-+ MP_CHECKC(
-+ mp_mod(&points_g->data[i], &v->s->cfg->modulus, &points_g->data[i]));
- }
- }
-
- int j = 0;
-- for (int i=1; i<2*N; i+=2) {
-- const mp_int *h_point_j = get_h_share (v, j++);
-- MP_CHECKC (mp_copy(h_point_j, &points_h->data[i]));
-+ for (int i = 1; i < 2 * N; i += 2) {
-+ const mp_int* h_point_j = get_h_share(v, j++);
-+ MP_CHECKC(mp_copy(h_point_j, &points_h->data[i]));
- }
-
-- P_CHECKC (poly_interp_evaluate (&v->share_fR, points_f, &eval_at, v->s->cfg));
-- P_CHECKC (poly_interp_evaluate (&v->share_gR, points_g, &eval_at, v->s->cfg));
-- P_CHECKC (poly_interp_evaluate (&v->share_hR, points_h, &eval_at, v->s->cfg));
-+ P_CHECKC(poly_interp_evaluate(&v->share_fR, points_f, &eval_at, v->s->cfg));
-+ P_CHECKC(poly_interp_evaluate(&v->share_gR, points_g, &eval_at, v->s->cfg));
-+ P_CHECKC(poly_interp_evaluate(&v->share_hR, points_h, &eval_at, v->s->cfg));
-
- cleanup:
-- MPArray_clear (points_f);
-- MPArray_clear (points_g);
-- MPArray_clear (points_h);
-- mp_clear (&eval_at);
-+ MPArray_clear(points_f);
-+ MPArray_clear(points_g);
-+ MPArray_clear(points_h);
-+ mp_clear(&eval_at);
- return rv;
- }
-
--PrioVerifier PrioVerifier_new (PrioServer s)
-+PrioVerifier
-+PrioVerifier_new(PrioServer s)
- {
- SECStatus rv = SECSuccess;
-- PrioVerifier v = malloc (sizeof *v);
-- if (!v) return NULL;
-+ PrioVerifier v = malloc(sizeof *v);
-+ if (!v)
-+ return NULL;
-
- v->s = s;
- v->clientp = NULL;
- v->data_sharesB = NULL;
- v->h_pointsB = NULL;
-
-- MP_DIGITS (&v->share_fR) = NULL;
-- MP_DIGITS (&v->share_gR) = NULL;
-- MP_DIGITS (&v->share_hR) = NULL;
-+ MP_DIGITS(&v->share_fR) = NULL;
-+ MP_DIGITS(&v->share_gR) = NULL;
-+ MP_DIGITS(&v->share_hR) = NULL;
-
-- MP_CHECKC (mp_init (&v->share_fR));
-- MP_CHECKC (mp_init (&v->share_gR));
-- MP_CHECKC (mp_init (&v->share_hR));
-+ MP_CHECKC(mp_init(&v->share_fR));
-+ MP_CHECKC(mp_init(&v->share_gR));
-+ MP_CHECKC(mp_init(&v->share_hR));
-
-- P_CHECKA (v->clientp = PrioPacketClient_new (s->cfg, s->idx));
-+ P_CHECKA(v->clientp = PrioPacketClient_new(s->cfg, s->idx));
-
-- const int N = next_power_of_two (s->cfg->num_data_fields + 1);
-+ const int N = next_power_of_two(s->cfg->num_data_fields + 1);
- if (v->s->idx == PRIO_SERVER_B) {
-- P_CHECKA (v->data_sharesB = MPArray_new (v->s->cfg->num_data_fields));
-- P_CHECKA (v->h_pointsB = MPArray_new (N));
-+ P_CHECKA(v->data_sharesB = MPArray_new(v->s->cfg->num_data_fields));
-+ P_CHECKA(v->h_pointsB = MPArray_new(N));
- }
-
- cleanup:
- if (rv != SECSuccess) {
-- PrioVerifier_clear (v);
-+ PrioVerifier_clear(v);
- return NULL;
- }
-
- return v;
- }
-
--SECStatus
--PrioVerifier_set_data (PrioVerifier v, unsigned char *data, unsigned int data_len)
-+SECStatus
-+PrioVerifier_set_data(PrioVerifier v, unsigned char* data,
-+ unsigned int data_len)
- {
- SECStatus rv = SECSuccess;
- PRG prgB = NULL;
-- P_CHECKC (PrioPacketClient_decrypt (v->clientp, v->s->cfg,
-- v->s->priv_key, data, data_len));
-+ P_CHECKC(PrioPacketClient_decrypt(v->clientp, v->s->cfg, v->s->priv_key, data,
-+ data_len));
-
- PrioPacketClient p = v->clientp;
- if (p->for_server != v->s->idx)
- return SECFailure;
-
-- const int N = next_power_of_two (v->s->cfg->num_data_fields + 1);
-+ const int N = next_power_of_two(v->s->cfg->num_data_fields + 1);
- if (v->s->idx == PRIO_SERVER_A) {
- // Check that packet has the correct number of data fields
- if (p->shares.A.data_shares->len != v->s->cfg->num_data_fields)
-@@ -289,70 +297,73 @@
- }
-
- if (v->s->idx == PRIO_SERVER_B) {
-- P_CHECKA (prgB = PRG_new (v->clientp->shares.B.seed));
-- P_CHECKC (PRG_get_array (prgB, v->data_sharesB, &v->s->cfg->modulus));
-- P_CHECKC (PRG_get_array (prgB, v->h_pointsB, &v->s->cfg->modulus));
-+ P_CHECKA(prgB = PRG_new(v->clientp->shares.B.seed));
-+ P_CHECKC(PRG_get_array(prgB, v->data_sharesB, &v->s->cfg->modulus));
-+ P_CHECKC(PRG_get_array(prgB, v->h_pointsB, &v->s->cfg->modulus));
- }
-
- // TODO: This can be done much faster by using the combined
-- // interpolate-and-evaluate optimization described in the
-+ // interpolate-and-evaluate optimization described in the
- // Prio paper.
- //
- // Compute share of f(r), g(r), h(r)
-- P_CHECKC (compute_shares (v, p));
-+ P_CHECKC(compute_shares(v, p));
-
- cleanup:
-
-- PRG_clear (prgB);
-+ PRG_clear(prgB);
- return rv;
- }
-
--
--void PrioVerifier_clear (PrioVerifier v)
-+void
-+PrioVerifier_clear(PrioVerifier v)
- {
-- if (v == NULL) return;
-- PrioPacketClient_clear (v->clientp);
-- MPArray_clear (v->data_sharesB);
-- MPArray_clear (v->h_pointsB);
-- mp_clear (&v->share_fR);
-- mp_clear (&v->share_gR);
-- mp_clear (&v->share_hR);
-- free (v);
-+ if (v == NULL)
-+ return;
-+ PrioPacketClient_clear(v->clientp);
-+ MPArray_clear(v->data_sharesB);
-+ MPArray_clear(v->h_pointsB);
-+ mp_clear(&v->share_fR);
-+ mp_clear(&v->share_gR);
-+ mp_clear(&v->share_hR);
-+ free(v);
- }
-
--PrioPacketVerify1
--PrioPacketVerify1_new (void)
-+PrioPacketVerify1
-+PrioPacketVerify1_new(void)
- {
- SECStatus rv = SECSuccess;
-- PrioPacketVerify1 p = malloc (sizeof *p);
-- if (!p) return NULL;
-+ PrioPacketVerify1 p = malloc(sizeof *p);
-+ if (!p)
-+ return NULL;
-
-- MP_DIGITS (&p->share_d) = NULL;
-- MP_DIGITS (&p->share_e) = NULL;
-+ MP_DIGITS(&p->share_d) = NULL;
-+ MP_DIGITS(&p->share_e) = NULL;
-
-- MP_CHECKC (mp_init (&p->share_d));
-- MP_CHECKC (mp_init (&p->share_e));
-+ MP_CHECKC(mp_init(&p->share_d));
-+ MP_CHECKC(mp_init(&p->share_e));
-
- cleanup:
- if (rv != SECSuccess) {
-- PrioPacketVerify1_clear (p);
-+ PrioPacketVerify1_clear(p);
- return NULL;
- }
-
- return p;
- }
-
--void
--PrioPacketVerify1_clear (PrioPacketVerify1 p)
-+void
-+PrioPacketVerify1_clear(PrioPacketVerify1 p)
- {
-- if (!p) return;
-- mp_clear (&p->share_d);
-- mp_clear (&p->share_e);
-- free (p);
-+ if (!p)
-+ return;
-+ mp_clear(&p->share_d);
-+ mp_clear(&p->share_e);
-+ free(p);
- }
-
- SECStatus
--PrioPacketVerify1_set_data (PrioPacketVerify1 p1, const_PrioVerifier v)
-+PrioPacketVerify1_set_data(PrioPacketVerify1 p1, const_PrioVerifier v)
- {
- // See the Prio paper for details on how this works.
- // Appendix C descrives the MPC protocol used here.
-@@ -361,121 +372,121 @@
-
- // Compute corrections.
- // [d] = [f(r)] - [a]
-- MP_CHECK (mp_sub (&v->share_fR, &v->clientp->triple->a, &p1->share_d));
-- MP_CHECK (mp_mod (&p1->share_d, &v->s->cfg->modulus, &p1->share_d));
-+ MP_CHECK(mp_sub(&v->share_fR, &v->clientp->triple->a, &p1->share_d));
-+ MP_CHECK(mp_mod(&p1->share_d, &v->s->cfg->modulus, &p1->share_d));
-
- // [e] = [g(r)] - [b]
-- MP_CHECK (mp_sub (&v->share_gR, &v->clientp->triple->b, &p1->share_e));
-- MP_CHECK (mp_mod (&p1->share_e, &v->s->cfg->modulus, &p1->share_e));
-+ MP_CHECK(mp_sub(&v->share_gR, &v->clientp->triple->b, &p1->share_e));
-+ MP_CHECK(mp_mod(&p1->share_e, &v->s->cfg->modulus, &p1->share_e));
-
- return rv;
- }
-
--PrioPacketVerify2
--PrioPacketVerify2_new (void)
-+PrioPacketVerify2
-+PrioPacketVerify2_new(void)
- {
- SECStatus rv = SECSuccess;
-- PrioPacketVerify2 p = malloc (sizeof *p);
-- if (!p) return NULL;
-+ PrioPacketVerify2 p = malloc(sizeof *p);
-+ if (!p)
-+ return NULL;
-
-- MP_DIGITS (&p->share_out) = NULL;
-- MP_CHECKC (mp_init (&p->share_out));
-+ MP_DIGITS(&p->share_out) = NULL;
-+ MP_CHECKC(mp_init(&p->share_out));
-
- cleanup:
- if (rv != SECSuccess) {
-- PrioPacketVerify2_clear (p);
-+ PrioPacketVerify2_clear(p);
- return NULL;
- }
- return p;
- }
-
--void
--PrioPacketVerify2_clear (PrioPacketVerify2 p)
-+void
-+PrioPacketVerify2_clear(PrioPacketVerify2 p)
- {
-- if (!p) return;
-- mp_clear (&p->share_out);
-- free (p);
-+ if (!p)
-+ return;
-+ mp_clear(&p->share_out);
-+ free(p);
- }
-
- SECStatus
--PrioPacketVerify2_set_data (PrioPacketVerify2 p2, const_PrioVerifier v,
-- const_PrioPacketVerify1 p1A, const_PrioPacketVerify1 p1B)
-+PrioPacketVerify2_set_data(PrioPacketVerify2 p2, const_PrioVerifier v,
-+ const_PrioPacketVerify1 p1A,
-+ const_PrioPacketVerify1 p1B)
- {
- SECStatus rv = SECSuccess;
-
- mp_int d, e, tmp;
-- MP_DIGITS (&d) = NULL;
-- MP_DIGITS (&e) = NULL;
-- MP_DIGITS (&tmp) = NULL;
-+ MP_DIGITS(&d) = NULL;
-+ MP_DIGITS(&e) = NULL;
-+ MP_DIGITS(&tmp) = NULL;
-
-- MP_CHECKC (mp_init (&d));
-- MP_CHECKC (mp_init (&e));
-- MP_CHECKC (mp_init (&tmp));
-+ MP_CHECKC(mp_init(&d));
-+ MP_CHECKC(mp_init(&e));
-+ MP_CHECKC(mp_init(&tmp));
-
-- const mp_int *mod = &v->s->cfg->modulus;
-+ const mp_int* mod = &v->s->cfg->modulus;
-
- // Compute share of f(r)*g(r)
- // [f(r)*g(r)] = [d*e/2] + d[b] + e[a] + [c]
--
-- // Compute d
-- MP_CHECKC (mp_addmod (&p1A->share_d, &p1B->share_d, mod, &d));
-+
-+ // Compute d
-+ MP_CHECKC(mp_addmod(&p1A->share_d, &p1B->share_d, mod, &d));
- // Compute e
-- MP_CHECKC (mp_addmod (&p1A->share_e, &p1B->share_e, mod, &e));
-+ MP_CHECKC(mp_addmod(&p1A->share_e, &p1B->share_e, mod, &e));
-
- // Compute d*e
-- MP_CHECKC (mp_mulmod (&d, &e, mod, &p2->share_out));
-+ MP_CHECKC(mp_mulmod(&d, &e, mod, &p2->share_out));
- // out = d*e/2
-- MP_CHECKC (mp_mulmod (&p2->share_out, &v->s->cfg->inv2,
-- mod, &p2->share_out));
-+ MP_CHECKC(mp_mulmod(&p2->share_out, &v->s->cfg->inv2, mod, &p2->share_out));
-
-- // Compute d[b]
-- MP_CHECKC (mp_mulmod (&d, &v->clientp->triple->b, mod, &tmp));
-- // out = d*e/2 + d[b]
-- MP_CHECKC (mp_addmod (&p2->share_out, &tmp, mod, &p2->share_out));
-+ // Compute d[b]
-+ MP_CHECKC(mp_mulmod(&d, &v->clientp->triple->b, mod, &tmp));
-+ // out = d*e/2 + d[b]
-+ MP_CHECKC(mp_addmod(&p2->share_out, &tmp, mod, &p2->share_out));
-
-- // Compute e[a]
-- MP_CHECKC (mp_mulmod (&e, &v->clientp->triple->a, mod, &tmp));
-+ // Compute e[a]
-+ MP_CHECKC(mp_mulmod(&e, &v->clientp->triple->a, mod, &tmp));
- // out = d*e/2 + d[b] + e[a]
-- MP_CHECKC (mp_addmod (&p2->share_out, &tmp, mod, &p2->share_out));
-+ MP_CHECKC(mp_addmod(&p2->share_out, &tmp, mod, &p2->share_out));
-
- // out = d*e/2 + d[b] + e[a] + [c]
-- MP_CHECKC (mp_addmod (&p2->share_out, &v->clientp->triple->c, mod, &p2->share_out));
-+ MP_CHECKC(
-+ mp_addmod(&p2->share_out, &v->clientp->triple->c, mod, &p2->share_out));
-
- // We want to compute f(r)*g(r) - h(r),
- // so subtract off [h(r)]:
- // out = d*e/2 + d[b] + e[a] + [c] - [h(r)]
-- MP_CHECKC (mp_sub (&p2->share_out, &v->share_hR, &p2->share_out));
-- MP_CHECKC (mp_mod (&p2->share_out, mod, &p2->share_out));
-+ MP_CHECKC(mp_sub(&p2->share_out, &v->share_hR, &p2->share_out));
-+ MP_CHECKC(mp_mod(&p2->share_out, mod, &p2->share_out));
-
- cleanup:
-- mp_clear (&d);
-- mp_clear (&e);
-- mp_clear (&tmp);
-+ mp_clear(&d);
-+ mp_clear(&e);
-+ mp_clear(&tmp);
- return rv;
- }
-
--int
--PrioVerifier_isValid (const_PrioVerifier v,
-- const_PrioPacketVerify2 pA, const_PrioPacketVerify2 pB)
-+int
-+PrioVerifier_isValid(const_PrioVerifier v, const_PrioPacketVerify2 pA,
-+ const_PrioPacketVerify2 pB)
- {
- SECStatus rv = SECSuccess;
- mp_int res;
-- MP_DIGITS (&res) = NULL;
-- MP_CHECKC (mp_init (&res));
-+ MP_DIGITS(&res) = NULL;
-+ MP_CHECKC(mp_init(&res));
-
-- // Add up the shares of the output wire value and
-+ // Add up the shares of the output wire value and
- // ensure that the sum is equal to zero, which indicates
- // that
- // f(r) * g(r) == h(r).
-- MP_CHECKC (mp_addmod (&pA->share_out, &pB->share_out,
-- &v->s->cfg->modulus, &res));
-+ MP_CHECKC(
-+ mp_addmod(&pA->share_out, &pB->share_out, &v->s->cfg->modulus, &res));
-
-- rv = (mp_cmp_d (&res, 0) == 0) ? SECSuccess : SECFailure;
-+ rv = (mp_cmp_d(&res, 0) == 0) ? SECSuccess : SECFailure;
-
- cleanup:
-- mp_clear (&res);
-+ mp_clear(&res);
- return rv;
- }
--
--
--
-diff --git a/third_party/prio/prio/share.h b/third_party/prio/prio/share.h
---- a/third_party/prio/prio/share.h
-+++ b/third_party/prio/prio/share.h
-@@ -1,12 +1,11 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
--
- #ifndef __SHARE_H__
- #define __SHARE_H__
-
-@@ -14,23 +13,22 @@
-
- #include "config.h"
-
--struct beaver_triple {
-+struct beaver_triple
-+{
- mp_int a;
- mp_int b;
- mp_int c;
- };
-
--typedef struct beaver_triple *BeaverTriple;
--typedef const struct beaver_triple *const_BeaverTriple;
--
-+typedef struct beaver_triple* BeaverTriple;
-+typedef const struct beaver_triple* const_BeaverTriple;
-
- /*
- * Use secret sharing to split the int src into two shares.
- * The mp_ints must be initialized.
- */
--SECStatus share_int (const_PrioConfig cfg, const mp_int *src,
-- mp_int *shareA, mp_int *shareB);
--
-+SECStatus share_int(const_PrioConfig cfg, const mp_int* src, mp_int* shareA,
-+ mp_int* shareB);
-
- /*
- * Prio uses Beaver triples to implement one step of the
-@@ -38,14 +36,12 @@
- * a sharing of random values a, b, c such that
- * a * b = c
- */
--BeaverTriple BeaverTriple_new (void);
--void BeaverTriple_clear (BeaverTriple t);
-+BeaverTriple BeaverTriple_new(void);
-+void BeaverTriple_clear(BeaverTriple t);
-
--SECStatus BeaverTriple_set_rand (const_PrioConfig cfg,
-- BeaverTriple triple_a,
-- BeaverTriple triple_b);
-+SECStatus BeaverTriple_set_rand(const_PrioConfig cfg, BeaverTriple triple_a,
-+ BeaverTriple triple_b);
-
--bool BeaverTriple_areEqual (const_BeaverTriple t1, const_BeaverTriple t2);
-+bool BeaverTriple_areEqual(const_BeaverTriple t1, const_BeaverTriple t2);
-
- #endif /* __SHARE_H__ */
--
-diff --git a/third_party/prio/prio/share.c b/third_party/prio/prio/share.c
---- a/third_party/prio/prio/share.c
-+++ b/third_party/prio/prio/share.c
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #include <mprio.h>
-@@ -12,86 +12,85 @@
- #include "share.h"
- #include "util.h"
-
--
- SECStatus
--share_int (const struct prio_config *cfg, const mp_int *src,
-- mp_int *shareA, mp_int *shareB)
-+share_int(const struct prio_config* cfg, const mp_int* src, mp_int* shareA,
-+ mp_int* shareB)
- {
- SECStatus rv;
-- P_CHECK (rand_int (shareA, &cfg->modulus));
-- MP_CHECK (mp_submod (src, shareA, &cfg->modulus, shareB));
-+ P_CHECK(rand_int(shareA, &cfg->modulus));
-+ MP_CHECK(mp_submod(src, shareA, &cfg->modulus, shareB));
-
- return rv;
- }
-
- BeaverTriple
--BeaverTriple_new (void)
-+BeaverTriple_new(void)
- {
-- BeaverTriple triple = malloc (sizeof *triple);
-+ BeaverTriple triple = malloc(sizeof *triple);
- if (!triple)
- return NULL;
-
-- MP_DIGITS (&triple->a) = NULL;
-- MP_DIGITS (&triple->b) = NULL;
-- MP_DIGITS (&triple->c) = NULL;
-+ MP_DIGITS(&triple->a) = NULL;
-+ MP_DIGITS(&triple->b) = NULL;
-+ MP_DIGITS(&triple->c) = NULL;
-
- SECStatus rv = SECSuccess;
-- MP_CHECKC (mp_init (&triple->a));
-- MP_CHECKC (mp_init (&triple->b));
-- MP_CHECKC (mp_init (&triple->c));
-+ MP_CHECKC(mp_init(&triple->a));
-+ MP_CHECKC(mp_init(&triple->b));
-+ MP_CHECKC(mp_init(&triple->c));
-
- cleanup:
- if (rv != SECSuccess) {
-- BeaverTriple_clear (triple);
-+ BeaverTriple_clear(triple);
- return NULL;
- }
- return triple;
- }
-
--
- void
--BeaverTriple_clear (BeaverTriple triple)
-+BeaverTriple_clear(BeaverTriple triple)
- {
-- if (!triple) return;
-- mp_clear (&triple->a);
-- mp_clear (&triple->b);
-- mp_clear (&triple->c);
-- free (triple);
-+ if (!triple)
-+ return;
-+ mp_clear(&triple->a);
-+ mp_clear(&triple->b);
-+ mp_clear(&triple->c);
-+ free(triple);
- }
-
- SECStatus
--BeaverTriple_set_rand (const struct prio_config *cfg,
-- struct beaver_triple *triple_1,
-- struct beaver_triple *triple_2)
-+BeaverTriple_set_rand(const struct prio_config* cfg,
-+ struct beaver_triple* triple_1,
-+ struct beaver_triple* triple_2)
- {
- SECStatus rv = SECSuccess;
-
- // TODO: Can shorten this code using share_int()
-
- // We need that
-- // (a1 + a2)(b1 + b2) = c1 + c2 (mod p)
-- P_CHECK (rand_int (&triple_1->a, &cfg->modulus));
-- P_CHECK (rand_int (&triple_1->b, &cfg->modulus));
-- P_CHECK (rand_int (&triple_2->a, &cfg->modulus));
-- P_CHECK (rand_int (&triple_2->b, &cfg->modulus));
-+ // (a1 + a2)(b1 + b2) = c1 + c2 (mod p)
-+ P_CHECK(rand_int(&triple_1->a, &cfg->modulus));
-+ P_CHECK(rand_int(&triple_1->b, &cfg->modulus));
-+ P_CHECK(rand_int(&triple_2->a, &cfg->modulus));
-+ P_CHECK(rand_int(&triple_2->b, &cfg->modulus));
-
- // We are trying to be a little clever here to avoid the use of temp
- // variables.
-
- // c1 = a1 + a2
-- MP_CHECK (mp_addmod (&triple_1->a, &triple_2->a, &cfg->modulus, &triple_1->c));
-+ MP_CHECK(mp_addmod(&triple_1->a, &triple_2->a, &cfg->modulus, &triple_1->c));
-
- // c2 = b1 + b2
-- MP_CHECK (mp_addmod (&triple_1->b, &triple_2->b, &cfg->modulus, &triple_2->c));
-+ MP_CHECK(mp_addmod(&triple_1->b, &triple_2->b, &cfg->modulus, &triple_2->c));
-
- // c1 = c1 * c2 = (a1 + a2) (b1 + b2)
-- MP_CHECK (mp_mulmod (&triple_1->c, &triple_2->c, &cfg->modulus, &triple_1->c));
-+ MP_CHECK(mp_mulmod(&triple_1->c, &triple_2->c, &cfg->modulus, &triple_1->c));
-
- // Set c2 to random blinding value
-- MP_CHECK (rand_int (&triple_2->c, &cfg->modulus));
-+ MP_CHECK(rand_int(&triple_2->c, &cfg->modulus));
-
- // c1 = c1 - c2
-- MP_CHECK (mp_submod (&triple_1->c, &triple_2->c, &cfg->modulus, &triple_1->c));
-+ MP_CHECK(mp_submod(&triple_1->c, &triple_2->c, &cfg->modulus, &triple_1->c));
-
- // Now we should have random tuples satisfying:
- // (a1 + a2) (b1 + b2) = c1 + c2
-@@ -99,10 +98,9 @@
- return rv;
- }
-
--bool
--BeaverTriple_areEqual (const_BeaverTriple t1, const_BeaverTriple t2)
-+bool
-+BeaverTriple_areEqual(const_BeaverTriple t1, const_BeaverTriple t2)
- {
-- return (mp_cmp (&t1->a, &t2->a) == 0 &&
-- mp_cmp (&t1->b, &t2->b) == 0 &&
-- mp_cmp (&t1->c, &t2->c) == 0);
-+ return (mp_cmp(&t1->a, &t2->a) == 0 && mp_cmp(&t1->b, &t2->b) == 0 &&
-+ mp_cmp(&t1->c, &t2->c) == 0);
- }
-diff --git a/third_party/prio/prio/util.h b/third_party/prio/prio/util.h
---- a/third_party/prio/prio/util.h
-+++ b/third_party/prio/prio/util.h
-@@ -1,9 +1,9 @@
- /*
- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-+ *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
- #ifndef __UTIL_H__
-@@ -16,80 +16,88 @@
- #define MIN(a, b) ((a) < (b) ? (a) : (b))
-
- // Check a Prio error code and return failure if the call fails.
--#define P_CHECK(s) \
-- do { \
-- if((rv = (s)) != SECSuccess) \
-- return rv; \
-- } while(0);
-+#define P_CHECK(s) \
-+ do { \
-+ if ((rv = (s)) != SECSuccess) \
-+ return rv; \
-+ } while (0);
-
- // Check an allocation that should not return NULL. If the allocation returns
--// NULL, set the return value and jump to the cleanup label to free memory.
--#define P_CHECKA(s) \
-- do { \
-- if((s) == NULL) {\
-- rv = SECFailure;\
-- goto cleanup;\
-- }\
-- } while(0);
-+// NULL, set the return value and jump to the cleanup label to free memory.
-+#define P_CHECKA(s) \
-+ do { \
-+ if ((s) == NULL) { \
-+ rv = SECFailure; \
-+ goto cleanup; \
-+ } \
-+ } while (0);
-
- // Check a Prio library call that should return SECSuccess. If it doesn't,
- // jump to the cleanup label.
--#define P_CHECKC(s) \
-- do { \
-- if((rv = (s)) != SECSuccess) { \
-- goto cleanup; \
-- }\
-- } while(0);
-+#define P_CHECKC(s) \
-+ do { \
-+ if ((rv = (s)) != SECSuccess) { \
-+ goto cleanup; \
-+ } \
-+ } while (0);
-
- // Check a boolean that should be true. If it not,
- // jump to the cleanup label.
--#define P_CHECKCB(s) \
-- do { \
-- if(!(s)) { \
-- rv = SECFailure; \
-- goto cleanup; \
-- }\
-- } while(0);
-+#define P_CHECKCB(s) \
-+ do { \
-+ if (!(s)) { \
-+ rv = SECFailure; \
-+ goto cleanup; \
-+ } \
-+ } while (0);
-
- // Check an MPI library call and return failure if it fails.
--#define MP_CHECK(s) do { if((s) != MP_OKAY) return SECFailure; } while(0);
-+#define MP_CHECK(s) \
-+ do { \
-+ if ((s) != MP_OKAY) \
-+ return SECFailure; \
-+ } while (0);
-
- // Check a msgpack object unpacked correctly
--#define UP_CHECK(s) do { int r = (s); if(r != MSGPACK_UNPACK_SUCCESS &&\
-- r != MSGPACK_UNPACK_EXTRA_BYTES) \
-- return SECFailure; } while(0);
-+#define UP_CHECK(s) \
-+ do { \
-+ int r = (s); \
-+ if (r != MSGPACK_UNPACK_SUCCESS && r != MSGPACK_UNPACK_EXTRA_BYTES) \
-+ return SECFailure; \
-+ } while (0);
-
- // Check an MPI library call. If it fails, set the return code and jump
- // to the cleanup label.
--#define MP_CHECKC(s) \
-- do { \
-- if((s) != MP_OKAY) { \
-- rv = SECFailure; \
-- goto cleanup; \
-- }\
-- } while(0);
-+#define MP_CHECKC(s) \
-+ do { \
-+ if ((s) != MP_OKAY) { \
-+ rv = SECFailure; \
-+ goto cleanup; \
-+ } \
-+ } while (0);
-
- static inline int
--next_power_of_two (int val)
-+next_power_of_two(int val)
- {
- int i = val;
- int out = 0;
-- for ( ; i > 0; i >>= 1) {
-+ for (; i > 0; i >>= 1) {
- out++;
- }
-
- int pow = 1 << out;
-- return (pow > 1 && pow/2 == val) ? val : pow;
--}
-+ return (pow > 1 && pow / 2 == val) ? val : pow;
-+}
-
--/*
-+/*
- * Return a mask that masks out all of the zero bits
- */
- static inline unsigned char
--msb_mask (unsigned char val)
-+msb_mask(unsigned char val)
- {
- unsigned char mask;
-- for (mask = 0x00; (val & mask) != val; mask = (mask << 1) + 1);
-+ for (mask = 0x00; (val & mask) != val; mask = (mask << 1) + 1)
-+ ;
- return mask;
- }
-
-@@ -99,4 +107,3 @@
- #define UNUSED(x) (void)(x)
-
- #endif /* __UTIL_H__ */
--
-diff --git a/third_party/prio/ptest/MUTEST_LICENSE b/third_party/prio/ptest/MUTEST_LICENSE
-deleted file mode 100644
---- a/third_party/prio/ptest/MUTEST_LICENSE
-+++ /dev/null
-@@ -1,30 +0,0 @@
--I don't like licenses, because I don't like having to worry about all this
--legal stuff just for a simple piece of software I don't really mind anyone
--using. But I also believe that it's important that people share and give back;
--so I'm placing this work under the following license.
--
--
--BOLA - Buena Onda License Agreement (v1.0)
--------------------------------------------
--
--This work is provided 'as-is', without any express or implied warranty. In no
--event will the authors be held liable for any damages arising from the use of
--this work.
--
--To all effects and purposes, this work is to be considered Public Domain.
--
--
--However, if you want to be "Buena onda", you should:
--
--1. Not take credit for it, and give proper recognition to the authors.
--2. Share your modifications, so everybody benefits from them.
--4. Do something nice for the authors.
--5. Help someone who needs it: sign up for some volunteer work or help your
-- neighbour paint the house.
--6. Don't waste. Anything, but specially energy that comes from natural
-- non-renewable resources. Extra points if you discover or invent something
-- to replace them.
--7. Be tolerant. Everything that's good in nature comes from cooperation.
--
--The order is important, and the further you go the more "Buena onda" you are.
--Make the world a better place: be "Buena onda".
-diff --git a/third_party/prio/ptest/SConscript b/third_party/prio/ptest/SConscript
-deleted file mode 100644
---- a/third_party/prio/ptest/SConscript
-+++ /dev/null
-@@ -1,44 +0,0 @@
--import sys
--
--Import('env')
--
--prio_env = env.Clone()
--
--test_srcs = [
-- "mutest.c",
-- "client_test.c",
-- "example_test.c",
-- "encrypt_test.c",
-- "fft_test.c",
-- "mpi_test.c",
-- "prg_test.c",
-- "rand_test.c",
-- "serial_test.c",
-- "server_test.c",
-- "share_test.c",
--]
--
--libs = [
-- "nss3",
-- "mpi",
-- "mprio",
-- "msgpackc"
--]
--
--# Run the mutest script to generate the test harness code
--bld = Builder(action = 'ptest/mkmutest ptest/mutest.h $SOURCES | $CC -c -xc -o $TARGET -')
--prio_env.Append(BUILDERS = {'MkMutest' : bld})
--
--prio_env.Append(LIBS = libs)
--
--# Enable mpi print
--prio_env.Append(CFLAGS = ['-DMP_IOFUNC'])
--
--# Copy the mutest scripts to the build dir
--prio_env.Install("mkmutest")
--prio_env.Install("mutest.h")
--
--test_objs = prio_env.Object(test_srcs)
--test_main = prio_env.MkMutest(test_objs)
--prio_env.Program("ptest", [test_main] + test_objs)
--
-diff --git a/third_party/prio/ptest/client_test.c b/third_party/prio/ptest/client_test.c
-deleted file mode 100644
---- a/third_party/prio/ptest/client_test.c
-+++ /dev/null
-@@ -1,160 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--#include <mprio.h>
--
--#include "prio/client.h"
--#include "prio/server.h"
--#include "prio/util.h"
--#include "mutest.h"
--
--void
--mu_test_client__new (void)
--{
-- SECStatus rv = SECSuccess;
-- PrioConfig cfg = NULL;
-- PrioPacketClient pA = NULL;
-- PrioPacketClient pB = NULL;
--
-- P_CHECKA (cfg = PrioConfig_newTest(23));
-- P_CHECKA (pA = PrioPacketClient_new (cfg, PRIO_SERVER_A));
-- P_CHECKA (pB = PrioPacketClient_new (cfg, PRIO_SERVER_B));
--
-- {
-- const int ndata = PrioConfig_numDataFields (cfg);
-- bool data_items[ndata];
--
-- for (int i=0; i < ndata; i++) {
-- // Arbitrary data
-- data_items[i] = (i % 3 == 1) || (i % 5 == 3);
-- }
--
-- P_CHECKC (PrioPacketClient_set_data (cfg, data_items, pA, pB));
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
--
-- PrioPacketClient_clear (pA);
-- PrioPacketClient_clear (pB);
-- PrioConfig_clear (cfg);
--}
--
--void
--test_client_agg (int nclients)
--{
-- SECStatus rv = SECSuccess;
-- PublicKey pkA = NULL;
-- PublicKey pkB = NULL;
-- PrivateKey skA = NULL;
-- PrivateKey skB = NULL;
-- PrioConfig cfg = NULL;
-- PrioServer sA = NULL;
-- PrioServer sB = NULL;
-- PrioTotalShare tA = NULL;
-- PrioTotalShare tB = NULL;
-- PrioVerifier vA = NULL;
-- PrioVerifier vB = NULL;
-- unsigned char *for_a = NULL;
-- unsigned char *for_b = NULL;
-- const unsigned char *batch_id = (unsigned char *)"test_batch";
-- unsigned int batch_id_len = strlen ((char *)batch_id);
--
-- PrioPRGSeed seed;
-- P_CHECKC (PrioPRGSeed_randomize (&seed));
--
-- P_CHECKC (Keypair_new (&skA, &pkA));
-- P_CHECKC (Keypair_new (&skB, &pkB));
-- P_CHECKA (cfg = PrioConfig_new (133, pkA, pkB, batch_id, batch_id_len));
-- P_CHECKA (sA = PrioServer_new (cfg, 0, skA, seed));
-- P_CHECKA (sB = PrioServer_new (cfg, 1, skB, seed));
-- P_CHECKA (tA = PrioTotalShare_new ());
-- P_CHECKA (tB = PrioTotalShare_new ());
-- P_CHECKA (vA = PrioVerifier_new (sA));
-- P_CHECKA (vB = PrioVerifier_new (sB));
--
-- const int ndata = PrioConfig_numDataFields (cfg);
--
-- {
-- bool data_items[ndata];
-- for (int i=0; i < ndata; i++) {
-- // Arbitrary data
-- data_items[i] = (i % 3 == 1) || (i % 5 == 3);
-- }
--
-- for (int i=0; i < nclients; i++) {
-- unsigned int aLen, bLen;
-- P_CHECKC (PrioClient_encode (cfg, data_items, &for_a, &aLen,
-- &for_b, &bLen));
--
-- P_CHECKC (PrioVerifier_set_data (vA, for_a, aLen));
-- P_CHECKC (PrioVerifier_set_data (vB, for_b, bLen));
--
-- mu_check (PrioServer_aggregate (sA, vA) == SECSuccess);
-- mu_check (PrioServer_aggregate (sB, vB) == SECSuccess);
--
-- free (for_a);
-- free (for_b);
--
-- for_a = NULL;
-- for_b = NULL;
-- }
--
-- mu_check (PrioTotalShare_set_data (tA, sA) == SECSuccess);
-- mu_check (PrioTotalShare_set_data (tB, sB) == SECSuccess);
--
-- unsigned long output[ndata];
-- mu_check (PrioTotalShare_final (cfg, output, tA, tB) == SECSuccess);
-- for (int i=0; i < ndata; i++) {
-- unsigned long v = ((i % 3 == 1) || (i % 5 == 3));
-- mu_check (output[i] == v*nclients);
-- }
-- }
--
-- //rv = SECFailure;
-- //goto cleanup;
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- if (for_a) free (for_a);
-- if (for_b) free (for_b);
--
-- PublicKey_clear (pkA);
-- PublicKey_clear (pkB);
-- PrivateKey_clear (skA);
-- PrivateKey_clear (skB);
--
-- PrioVerifier_clear (vA);
-- PrioVerifier_clear (vB);
--
-- PrioTotalShare_clear (tA);
-- PrioTotalShare_clear (tB);
--
-- PrioServer_clear (sA);
-- PrioServer_clear (sB);
-- PrioConfig_clear (cfg);
--}
--
--void
--mu_test_client__agg_1 (void)
--{
-- test_client_agg (1);
--}
--
--void
--mu_test_client__agg_2 (void)
--{
-- test_client_agg (2);
--}
--
--void
--mu_test_client__agg_10 (void)
--{
-- test_client_agg (10);
--}
--
-diff --git a/third_party/prio/ptest/encrypt_test.c b/third_party/prio/ptest/encrypt_test.c
-deleted file mode 100644
---- a/third_party/prio/ptest/encrypt_test.c
-+++ /dev/null
-@@ -1,228 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--#include <nspr.h>
--#include <nss/nss.h>
--#include <nss/secoidt.h>
--#include <nss/keyhi.h>
--#include <nss/pk11pub.h>
--#include <nss/cert.h>
--
--#include "mutest.h"
--#include "prio/encrypt.h"
--#include "prio/rand.h"
--#include "prio/util.h"
--
--
--void
--mu_test_keygen (void)
--{
-- SECStatus rv = SECSuccess;
-- PublicKey pubkey = NULL;
-- PrivateKey pvtkey = NULL;
--
-- P_CHECKC (Keypair_new (&pvtkey, &pubkey));
-- mu_check (SECKEY_PublicKeyStrength (pubkey) == 32);
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- PublicKey_clear (pubkey);
-- PrivateKey_clear (pvtkey);
-- return;
--}
--
--void
--test_encrypt_once (int bad, unsigned int inlen)
--{
-- SECStatus rv = SECSuccess;
-- PublicKey pubkey = NULL;
-- PrivateKey pvtkey = NULL;
-- PublicKey pubkey2 = NULL;
-- PrivateKey pvtkey2 = NULL;
--
-- unsigned char *bytes_in = NULL;
-- unsigned char *bytes_enc = NULL;
-- unsigned char *bytes_dec = NULL;
--
-- unsigned int enclen;
-- P_CHECKC (PublicKey_encryptSize (inlen, &enclen));
-- unsigned int declen = enclen;
--
-- P_CHECKA (bytes_in = malloc (inlen));
-- P_CHECKA (bytes_enc = malloc (enclen));
-- P_CHECKA (bytes_dec= malloc (enclen));
-- P_CHECKC (rand_bytes (bytes_in, inlen));
--
-- memset (bytes_dec, 0, declen);
--
-- unsigned int encryptedBytes;
-- P_CHECKC (Keypair_new (&pvtkey, &pubkey));
-- P_CHECKC (Keypair_new (&pvtkey2, &pubkey2));
-- P_CHECKC (PublicKey_encrypt (pubkey, bytes_enc,
-- &encryptedBytes, enclen,
-- bytes_in, inlen));
-- mu_check (encryptedBytes == enclen);
--
-- if (bad == 1)
-- enclen = 30;
--
-- if (bad == 2) {
-- bytes_enc[4] = 6;
-- bytes_enc[5] = 0;
-- }
--
-- if (bad == 3) {
-- bytes_enc[40] = 6;
-- bytes_enc[41] = 0;
-- }
--
-- unsigned int decryptedBytes;
-- PrivateKey key_to_use = (bad == 4) ? pvtkey2 : pvtkey;
-- P_CHECKC (PrivateKey_decrypt (key_to_use, bytes_dec, &decryptedBytes, declen,
-- bytes_enc, enclen));
-- mu_check (decryptedBytes == inlen);
-- mu_check (!strncmp ((char *)bytes_in, (char *)bytes_dec, inlen));
--
--cleanup:
-- mu_check (bad ? (rv == SECFailure) : (rv == SECSuccess));
-- if (bytes_in) free (bytes_in);
-- if (bytes_enc) free (bytes_enc);
-- if (bytes_dec) free (bytes_dec);
--
-- PublicKey_clear (pubkey);
-- PrivateKey_clear (pvtkey);
-- PublicKey_clear (pubkey2);
-- PrivateKey_clear (pvtkey2);
-- return;
--}
--
--void
--mu_test_encrypt_good (void)
--{
-- test_encrypt_once (0, 100);
--}
--
--void
--mu_test_encrypt_good_long (void)
--{
-- test_encrypt_once (0, 1000000);
--}
--
--void
--mu_test_encrypt_too_short (void)
--{
-- test_encrypt_once (1, 87);
--}
--
--void
--mu_test_encrypt_garbage (void)
--{
-- test_encrypt_once (2, 10023);
--}
--
--void
--mu_test_encrypt_garbage2 (void)
--{
-- test_encrypt_once (3, 8123);
--}
--
--void
--mu_test_decrypt_wrong_key (void)
--{
-- test_encrypt_once (4, 81230);
--}
--
--void
--mu_test_export (void)
--{
-- SECStatus rv = SECSuccess;
-- PublicKey pubkey = NULL;
--
-- unsigned char raw_bytes[CURVE25519_KEY_LEN];
-- unsigned char raw_bytes2[CURVE25519_KEY_LEN];
-- for (int i=0; i< CURVE25519_KEY_LEN; i++) {
-- raw_bytes[i] = (3*i+7) % 0xFF;
-- }
--
-- P_CHECKC (PublicKey_import (&pubkey, raw_bytes, CURVE25519_KEY_LEN));
-- P_CHECKC (PublicKey_export (pubkey, raw_bytes2));
--
-- for (int i=0; i< CURVE25519_KEY_LEN; i++) {
-- mu_check (raw_bytes[i] == raw_bytes2[i]);
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- PublicKey_clear (pubkey);
-- return;
--}
--
--void
--mu_test_export_hex (void)
--{
-- SECStatus rv = SECSuccess;
-- PublicKey pubkey = NULL;
--
-- const unsigned char hex_bytes[2*CURVE25519_KEY_LEN] = \
-- "102030405060708090A0B0C0D0E0F00000FFEEDDCCBBAA998877665544332211";
-- const unsigned char hex_bytesl[2*CURVE25519_KEY_LEN] = \
-- "102030405060708090a0B0C0D0E0F00000FfeEddcCbBaa998877665544332211";
--
-- const unsigned char raw_bytes_should[CURVE25519_KEY_LEN] = {
-- 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80,
-- 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0, 0x00,
-- 0x00, 0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99,
-- 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11 };
-- unsigned char raw_bytes[CURVE25519_KEY_LEN];
-- unsigned char hex_bytes2[2*CURVE25519_KEY_LEN+1];
--
-- // Make sure that invalid lengths are rejected.
-- mu_check (PublicKey_import_hex (&pubkey, hex_bytes,
-- 2*CURVE25519_KEY_LEN-1) == SECFailure);
-- mu_check (PublicKey_import_hex (&pubkey, hex_bytes,
-- 2*CURVE25519_KEY_LEN+1) == SECFailure);
--
-- // Import a key in upper-case hex
-- P_CHECKC (PublicKey_import_hex (&pubkey, hex_bytes, 2*CURVE25519_KEY_LEN));
-- P_CHECKC (PublicKey_export (pubkey, raw_bytes));
-- PublicKey_clear (pubkey);
-- pubkey = NULL;
--
-- for (int i=0; i<CURVE25519_KEY_LEN; i++) {
-- mu_check (raw_bytes[i] == raw_bytes_should[i]);
-- }
--
-- // Import a key in mixed-case hex
-- P_CHECKC (PublicKey_import_hex (&pubkey, hex_bytesl, 2*CURVE25519_KEY_LEN));
-- P_CHECKC (PublicKey_export (pubkey, raw_bytes));
-- PublicKey_clear (pubkey);
-- pubkey = NULL;
--
-- for (int i=0; i<CURVE25519_KEY_LEN; i++) {
-- mu_check (raw_bytes[i] == raw_bytes_should[i]);
-- }
--
-- mu_check (PublicKey_import (&pubkey, raw_bytes_should,
-- CURVE25519_KEY_LEN-1) == SECFailure);
-- mu_check (PublicKey_import (&pubkey, raw_bytes_should,
-- CURVE25519_KEY_LEN+1) == SECFailure);
--
-- // Import a raw key and export as hex
-- P_CHECKC (PublicKey_import (&pubkey, raw_bytes_should, CURVE25519_KEY_LEN));
-- P_CHECKC (PublicKey_export_hex (pubkey, hex_bytes2));
--
-- for (int i=0; i<2*CURVE25519_KEY_LEN; i++) {
-- mu_check (hex_bytes[i] == hex_bytes2[i]);
-- }
-- mu_ensure (hex_bytes2[2*CURVE25519_KEY_LEN] == '\0');
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- PublicKey_clear (pubkey);
-- return;
--}
-diff --git a/third_party/prio/ptest/example_test.c b/third_party/prio/ptest/example_test.c
-deleted file mode 100644
---- a/third_party/prio/ptest/example_test.c
-+++ /dev/null
-@@ -1,21 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--//#include <stdio.h>
--#include "mutest.h"
--
--
--
--void
--mu_test_example (void)
--{
-- mu_check (1);
--}
--
--
--
-diff --git a/third_party/prio/ptest/fft_test.c b/third_party/prio/ptest/fft_test.c
-deleted file mode 100644
---- a/third_party/prio/ptest/fft_test.c
-+++ /dev/null
-@@ -1,170 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--#include <mpi.h>
--#include <mprio.h>
--#include <stdio.h>
--
--#include "mutest.h"
--#include "prio/config.h"
--#include "prio/mparray.h"
--#include "prio/poly.h"
--#include "prio/util.h"
--
--void
--mu_test__fft_one (void)
--{
-- SECStatus rv = SECSuccess;
-- PrioConfig cfg = NULL;
-- MPArray points_in = NULL;
-- MPArray points_out = NULL;
--
-- P_CHECKA (cfg = PrioConfig_newTest (123));
-- P_CHECKA (points_in = MPArray_new (1));
-- P_CHECKA (points_out = MPArray_new (1));
--
-- mp_set (&points_in->data[0], 3);
-- mu_check (poly_fft (points_out, points_in, cfg, false) == SECSuccess);
--
-- mu_check (mp_cmp_d(&points_in->data[0], 3) == 0);
-- mu_check (mp_cmp_d(&points_out->data[0], 3) == 0);
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- MPArray_clear (points_in);
-- MPArray_clear (points_out);
--
-- PrioConfig_clear (cfg);
--}
--
--void
--mu_test__fft_roots (void)
--{
-- SECStatus rv = SECSuccess;
-- PrioConfig cfg = NULL;
-- mp_int tmp;
-- MP_DIGITS (&tmp) = NULL;
--
-- P_CHECKA (cfg = PrioConfig_newTest (90));
-- MP_CHECKC (mp_init (&tmp));
--
-- mp_int roots[4];
-- poly_fft_get_roots (roots, 4, cfg, false);
--
-- for (int i=0; i<4; i++) {
-- mp_exptmod_d(&roots[i], 4, &cfg->modulus, &tmp);
-- mu_check (mp_cmp_d( &tmp, 1) == 0);
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- mp_clear (&tmp);
-- PrioConfig_clear (cfg);
--}
--
--void
--mu_test__fft_simple (void)
--{
-- SECStatus rv = SECSuccess;
-- const int nPoints = 4;
--
-- PrioConfig cfg = NULL;
-- MPArray points_in = NULL;
-- MPArray points_out = NULL;
--
-- mp_int should_be, tmp;
-- mp_int roots[nPoints];
-- MP_DIGITS (&should_be) = NULL;
-- MP_DIGITS (&tmp) = NULL;
-- for (int i=0; i<nPoints; i++) {
-- MP_DIGITS (&roots[i]) = NULL;
-- }
--
-- P_CHECKA (cfg = PrioConfig_newTest (140));
-- P_CHECKA (points_in = MPArray_new (nPoints));
-- P_CHECKA (points_out = MPArray_new (nPoints));
-- MP_CHECKC (mp_init (&should_be));
-- MP_CHECKC (mp_init (&tmp));
--
-- poly_fft_get_roots (roots, nPoints, cfg, false);
--
-- mp_set (&points_in->data[0], 3);
-- mp_set (&points_in->data[1], 8);
-- mp_set (&points_in->data[2], 7);
-- mp_set (&points_in->data[3], 9);
-- mu_check (poly_fft (points_out, points_in, cfg, false) == SECSuccess);
--
-- for (int i=0; i<nPoints; i++) {
-- mp_set (&should_be, 0);
-- for (int j=0; j<nPoints; j++) {
-- mu_check (mp_exptmod_d(&roots[i], j, &cfg->modulus, &tmp) == MP_OKAY);
-- mu_check (mp_mulmod(&tmp, &points_in->data[j], &cfg->modulus, &tmp) == MP_OKAY);
-- mu_check (mp_addmod(&should_be, &tmp, &cfg->modulus, &should_be) == MP_OKAY);
-- }
--
-- /*
-- puts("Should be:");
-- mp_print(&should_be, stdout);
-- puts("");
-- mp_print(&points_out[i], stdout);
-- puts("");
-- */
-- mu_check (mp_cmp (&should_be, &points_out->data[i]) == 0);
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- mp_clear (&tmp);
-- mp_clear (&should_be);
-- MPArray_clear (points_in);
-- MPArray_clear (points_out);
-- PrioConfig_clear (cfg);
--}
--
--void
--mu_test__fft_invert (void)
--{
-- SECStatus rv = SECSuccess;
-- const int nPoints = 8;
--
-- PrioConfig cfg = NULL;
-- MPArray points_in = NULL;
-- MPArray points_out = NULL;
-- MPArray points_out2 = NULL;
-- mp_int roots[nPoints];
--
-- P_CHECKA (cfg = PrioConfig_newTest (91));
-- P_CHECKA (points_in = MPArray_new (nPoints));
-- P_CHECKA (points_out = MPArray_new (nPoints));
-- P_CHECKA (points_out2 = MPArray_new (nPoints));
--
-- poly_fft_get_roots (roots, nPoints, cfg, false);
--
-- mp_set (&points_in->data[0], 3);
-- mp_set (&points_in->data[1], 8);
-- mp_set (&points_in->data[2], 7);
-- mp_set (&points_in->data[3], 9);
-- mp_set (&points_in->data[4], 123);
-- mp_set (&points_in->data[5], 123123987);
-- mp_set (&points_in->data[6], 2);
-- mp_set (&points_in->data[7], 0);
-- mu_check (poly_fft(points_out, points_in, cfg, false) == SECSuccess);
-- mu_check (poly_fft(points_out2, points_out, cfg, true) == SECSuccess);
--
-- for (int i=0; i<nPoints; i++) {
-- mu_check (mp_cmp (&points_out2->data[i], &points_in->data[i]) == 0);
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
--
-- MPArray_clear (points_in);
-- MPArray_clear (points_out);
-- MPArray_clear (points_out2);
-- PrioConfig_clear (cfg);
--}
-diff --git a/third_party/prio/ptest/mkmutest b/third_party/prio/ptest/mkmutest
-deleted file mode 100755
---- a/third_party/prio/ptest/mkmutest
-+++ /dev/null
-@@ -1,65 +0,0 @@
--#!/usr/bin/env bash
--#
--# This file is part of mutest, a simple micro unit testing framework for C.
--#
--# mutest was written by Leandro Lucarella <llucax@gmail.com> and is released
--# under the BOLA license, please see the LICENSE file or visit:
--# http://blitiri.com.ar/p/bola/
--#
--# This is a simple script to generate a C file that runs all the test suites
--# present in .o files passed as arguments.
--#
--# Please, read the README file for more details.
--#
--
--
--# the trick here is getting all the test cases present in an object file using
--# nm. All the tests must take and return void, start with "mutest_" and, of
--# course, should not be static, which leads to a small limitation: all test
--# cases must have unique names, even across test suites.
--
--# the first argument should be mutest.h
--if [ -z "$1" ]
--then
-- echo "Too few arguments" >&2
-- echo "Usage: $0 mutest_h_location [object files...]" >&2
-- exit 1
--fi
--mutest_h="$1"
--shift
--echo "#include \"$mutest_h\""
--echo "void mu_run_suites() {"
--echo
--for file in "$@"
--do
-- pr_file=`echo "$file" | sed 's/\"/\\\\\"/g'`
-- suite=`basename "$file" .o | sed 's/\"/\\\\\"/g'`
--#symbols=`nm "$file" | egrep '^[[:xdigit:]]{8} T mu_\w+$' | cut -c12-`
-- symbols=`nm "$file" | egrep ' T _mu_\w+$' | cut -c21-`
-- symbols+=`nm "$file" | egrep ' T mu_\w+$' | cut -c20-`
-- tests=`echo "$symbols" | egrep '^mu_test'`
-- inits=`echo "$symbols" | egrep '^mu_init'`
-- terms=`echo "$symbols" | egrep '^mu_term'`
-- echo -e '\tdo {'
-- echo -e '\t\tmutest_suite_name = "'"$suite"'";'
-- echo -e '\t\tmu_print(MU_SUITE, "\\nRunning suite '"'$suite'"'\\n");'
-- for init in $inits
-- do
-- echo -e "\\t\\tmu_run_init($init);"
-- done
-- for testcase in $tests
-- do
-- echo -e "\t\tmu_run_case($testcase);"
-- done
-- for term in $terms
-- do
-- echo -e "\t\tmu_run_term($term);"
-- done
-- echo -e "\t\tif (mutest_suite_failed) ++mutest_failed_suites;"
-- echo -e "\t\telse ++mutest_passed_suites;"
-- echo -e "\t\tmutest_suite_failed = 0;"
-- echo -e '\t} while (0);'
-- echo
--done
--echo "}"
--
-diff --git a/third_party/prio/ptest/mpi_test.c b/third_party/prio/ptest/mpi_test.c
-deleted file mode 100644
---- a/third_party/prio/ptest/mpi_test.c
-+++ /dev/null
-@@ -1,38 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--#include <mpi.h>
--
--#include "mutest.h"
--
--
--void
--mu_test_mpi__add (void)
--{
-- mp_int a;
-- mp_int b;
-- mp_int c;
--
-- mu_check (mp_init (&a) == MP_OKAY);
-- mu_check (mp_init (&b) == MP_OKAY);
-- mu_check (mp_init (&c) == MP_OKAY);
--
-- mp_set (&a, 10);
-- mp_set (&b, 7);
-- mp_add (&a, &b, &c);
--
-- mp_set (&a, 17);
-- mu_check (mp_cmp (&a, &c) == 0);
--
-- mp_clear (&a);
-- mp_clear (&b);
-- mp_clear (&c);
--}
--
--
--
-diff --git a/third_party/prio/ptest/mutest.h b/third_party/prio/ptest/mutest.h
-deleted file mode 100644
---- a/third_party/prio/ptest/mutest.h
-+++ /dev/null
-@@ -1,248 +0,0 @@
--/*
-- * This file is part of mutest, a simple micro unit testing framework for C.
-- *
-- * mutest was written by Leandro Lucarella <llucax@gmail.com> and is released
-- * under the BOLA license, please see the LICENSE file or visit:
-- * http://blitiri.com.ar/p/bola/
-- *
-- * This header file should be included in the source files that will make up
-- * a test suite. It's used for both C and Python implementation, but when
-- * using the Python implementation you should define the MUTEST_PY macro.
-- * If you implement your mu_run_suites() function yourself, you probably will
-- * need to include this header too (see mkmutest).
-- *
-- * Please, read the README file for more details.
-- */
--
--#include <stdio.h> /* fprintf() */
--
--#ifdef __cplusplus
--extern "C" {
--#endif
--
--/* verbosity level (each level shows all the previous levels too) */
--enum {
-- MU_QUIET = 0, /* be completely quiet */
-- MU_ERROR, /* shows errors only */
-- MU_SUMMARY, /* shows a summary */
-- MU_SUITE, /* shows test suites progress */
-- MU_CASE, /* shows test cases progress */
-- MU_CHECK /* shows the current running check */
--};
--
--/* print a message according to the verbosity level */
--#define mu_print(level, ...) \
-- do { \
-- if (mutest_verbose_level >= level) { \
-- if (mutest_verbose_level == MU_ERROR) \
-- fprintf(stderr, __VA_ARGS__); \
-- else \
-- fprintf(stdout, __VA_ARGS__); \
-- } \
-- } while (0)
--
--/* print an error message */
--#define mu_printerr(name, action) \
-- mu_print(MU_ERROR, __FILE__ ":%d: " name " failed, "\
-- action " test case\n", __LINE__);
--
--/* modify the internal state so a failure gets counted */
--#define mutest_count_err ++mutest_failed_checks; mutest_case_failed = 1;
--
--/* modify the internal state so a success gets counted */
--#define mutest_count_suc ++mutest_passed_checks;
--
--#ifdef __cplusplus
--
--#include <exception>
--
--/* print an error message triggered by a C++ exception */
--#define mu_printex(name, action, ex) \
-- mu_print(MU_ERROR, __FILE__ ":%d: " name " failed, " \
-- "exception thrown (%s), " action \
-- " test case\n", __LINE__, ex);
--
--#define mutest_try try {
--#define mutest_catch(name, action, final) \
-- } catch (const std::exception& e) { \
-- mutest_count_err \
-- mu_printex(name, action, e.what()); \
-- final; \
-- } catch (...) { \
-- mutest_count_err \
-- mu_printex(name, action, "[unknown]"); \
-- final; \
-- }
--
--#else /* !__cplusplus */
--
--#define mutest_try
--#define mutest_catch(name, action, exp)
--
--#endif /* __cplusplus */
--
--/* check that an expression evaluates to true, continue if the check fails */
--#define mu_check_base(exp, name, action, final) \
-- do { \
-- mu_print(MU_CHECK, "\t\t* Checking " name "(" #exp ")...\n"); \
-- mutest_try \
-- if (exp) mutest_count_suc \
-- else { \
-- mutest_count_err \
-- mu_printerr(name "(" #exp ")", action); \
-- final; \
-- } \
-- mutest_catch(name, action, final) \
-- } while (0)
--
--/* check that an expression evaluates to true, continue if the check fails */
--#define mu_check(exp) mu_check_base(exp, "mu_check", "resuming", continue)
--
--/*
-- * ensure that an expression evaluates to true, abort the current test
-- * case if the check fails
-- */
--#define mu_ensure(exp) mu_check_base(exp, "mu_ensure", "aborting", return)
--
--#ifdef __cplusplus
--
--#define mu_echeck_base(ex, exp, name, action, final) \
-- do { \
-- mu_print(MU_CHECK, "\t\t* Checking " name "(" #ex ", " #exp \
-- ")...\n"); \
-- try { \
-- exp; \
-- mutest_count_err \
-- mu_printerr(name "(" #ex ", " #exp ")", \
-- "no exception thrown, " action); \
-- final; \
-- } catch (const ex& e) { \
-- mutest_count_suc \
-- } catch (const std::exception& e) { \
-- mutest_count_err \
-- mu_printex(name "(" #ex ", " #exp ")", action, \
-- e.what()); \
-- final; \
-- } catch (...) { \
-- mutest_count_err \
-- mu_printex(name "(" #ex ", " #exp ")", action, \
-- "[unknown]"); \
-- final; \
-- } \
-- } while (0)
--
--/*
-- * check that an expression throws a particular exception, continue if the
-- * check fails
-- */
--#define mu_echeck(ex, exp) \
-- mu_echeck_base(ex, exp, "mu_echeck", "resuming", continue)
--
--/*
-- * ensure that an expression throws a particular exception, abort the current
-- * test case if the check fails
-- */
--#define mu_eensure(ex, exp) \
-- mu_echeck_base(ex, exp, "mu_eensure", "aborting", return)
--
--#endif /* __cplusplus */
--
--#ifndef MUTEST_PY /* we are using the C implementation */
--
--/*
-- * this function implements the test suites execution, you should generate
-- * a module with this function using mkmutest, or take a look to that script
-- * if you want to implement your own customized version */
--void mu_run_suites();
--
--/* macro for running a single initialization function */
--#ifndef mu_run_init
--#define mu_run_init(name) \
-- { \
-- int name(); \
-- int r; \
-- mu_print(MU_CASE, "\t+ Executing initialization function " \
-- "'" #name "'...\n"); \
-- if ((r = name())) { \
-- mu_print(MU_ERROR, "%s:" #name ": initialization " \
-- "function failed (returned %d), " \
-- "skipping test suite...\n", \
-- mutest_suite_name, r); \
-- ++mutest_skipped_suites; \
-- break; \
-- } \
-- } do { } while (0)
--#endif /* mu_run_init */
--
--/* macro for running a single test case */
--#ifndef mu_run_case
--#define mu_run_case(name) \
-- do { \
-- mu_print(MU_CASE, "\t* Executing test case '" #name "'...\n");\
-- mutest_case_name = #name; \
-- void name(); \
-- name(); \
-- if (mutest_case_failed) { \
-- ++mutest_failed_cases; \
-- mutest_suite_failed = 1; \
-- } else ++mutest_passed_cases; \
-- mutest_case_failed = 0; \
-- } while (0)
--#endif /* mu_run_case */
--
--/* macro for running a single termination function */
--#ifndef mu_run_term
--#define mu_run_term(name) \
-- do { \
-- mu_print(MU_CASE, "\t- Executing termination function '" \
-- #name "'...\n"); \
-- void name(); \
-- name(); \
-- } while (0)
--#endif /* mu_run_term */
--
--/*
-- * mutest exported variables for internal use, do not use directly unless you
-- * know what you're doing.
-- */
--extern const char* mutest_suite_name;
--extern int mutest_failed_suites;
--extern int mutest_passed_suites;
--extern int mutest_skipped_suites;
--extern int mutest_suite_failed;
--/* test cases */
--extern const char* mutest_case_name;
--extern int mutest_failed_cases;
--extern int mutest_passed_cases;
--extern int mutest_case_failed;
--/* checks */
--extern int mutest_failed_checks;
--extern int mutest_passed_checks;
--/* verbosity */
--extern int mutest_verbose_level;
--
--#else /* MUTEST_PY is defined, using the Python implementation */
--
--/* this increments when the "API" changes, it's just for sanity check */
--int mutest_api_version = 1;
--
--int mutest_case_failed; /* unused, for C implementation compatibility */
--
--int mutest_passed_checks;
--int mutest_failed_checks;
--void mutest_reset_counters() {
-- mutest_passed_checks = 0;
-- mutest_failed_checks = 0;
--}
--
--int mutest_verbose_level = MU_ERROR;
--void mutest_set_verbose_level(int val) {
-- mutest_verbose_level = val;
--}
--
--#endif /* MUTEST_PY */
--
--#ifdef __cplusplus
--}
--#endif
--
-diff --git a/third_party/prio/ptest/mutest.c b/third_party/prio/ptest/mutest.c
-deleted file mode 100644
---- a/third_party/prio/ptest/mutest.c
-+++ /dev/null
-@@ -1,94 +0,0 @@
--/*
-- * This file is part of mutest, a simple micro unit testing framework for C.
-- *
-- * mutest was written by Leandro Lucarella <llucax@gmail.com> and is released
-- * under the BOLA license, please see the LICENSE file or visit:
-- * http://blitiri.com.ar/p/bola/
-- *
-- * This is the main program, it runs all the test suites and shows the
-- * results. The main work (of running the test suite) is done by the (usually)
-- * synthesized mu_run_suites() function, which can be generated using the
-- * mkmutest script (or written manually).
-- *
-- * Please, read the README file for more details.
-- */
--
--#include <mprio.h>
--#include <stdio.h> /* printf(), fprintf() */
--#include <string.h> /* strncmp() */
--
--#include "mutest.h" /* MU_* constants, mu_print() */
--
--/*
-- * note that all global variables are public because they need to be accessed
-- * from other modules, like the test suites or the module implementing
-- * mu_run_suites()
-- */
--
--/* globals for managing test suites */
--const char* mutest_suite_name;
--int mutest_failed_suites;
--int mutest_passed_suites;
--int mutest_skipped_suites;
--int mutest_suite_failed;
--
--
--/* globals for managing test cases */
--const char* mutest_case_name;
--int mutest_failed_cases;
--int mutest_passed_cases;
--int mutest_case_failed;
--
--
--/* globals for managing checks */
--int mutest_failed_checks;
--int mutest_passed_checks;
--
--
--/* verbosity level, see mutest.h */
--int mutest_verbose_level = 1; /* exported for use in test suites */
--
--
--
--/*
-- * only -v is supported right now, both "-v -v" and "-vv" are accepted for
-- * increasing the verbosity by 2.
-- */
--void parse_args(__attribute__((unused)) int argc, char* argv[]) {
-- while (*++argv) {
-- if (strncmp(*argv, "-v", 2) == 0) {
-- ++mutest_verbose_level;
-- char* c = (*argv) + 1;
-- while (*++c) {
-- if (*c != 'v')
-- break;
-- ++mutest_verbose_level;
-- }
-- }
-- }
--}
--
--
--int main(int argc, char* argv[]) {
--
-- Prio_init ();
-- parse_args(argc, argv);
--
-- mu_run_suites();
--
-- Prio_clear ();
--
-- mu_print(MU_SUMMARY, "\n"
-- "Tests done:\n"
-- "\t%d test suite(s) passed, %d failed, %d skipped.\n"
-- "\t%d test case(s) passed, %d failed.\n"
-- "\t%d check(s) passed, %d failed.\n"
-- "\n",
-- mutest_passed_suites, mutest_failed_suites,
-- mutest_skipped_suites,
-- mutest_passed_cases, mutest_failed_cases,
-- mutest_passed_checks, mutest_failed_checks);
--
-- return (mutest_failed_suites + mutest_skipped_suites) ? 1 : 0;
--}
--
-diff --git a/third_party/prio/ptest/prg_test.c b/third_party/prio/ptest/prg_test.c
-deleted file mode 100644
---- a/third_party/prio/ptest/prg_test.c
-+++ /dev/null
-@@ -1,345 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--#include <mpi.h>
--
--#include "mutest.h"
--#include "prio/prg.h"
--#include "prio/util.h"
--
--void
--mu_test__prg_simple (void)
--{
-- SECStatus rv = SECSuccess;
-- PrioPRGSeed key;
-- PRG prg = NULL;
--
-- P_CHECKC (PrioPRGSeed_randomize (&key));
-- P_CHECKA (prg = PRG_new (key));
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- PRG_clear (prg);
--}
--
--void
--mu_test__prg_repeat (void)
--{
-- SECStatus rv = SECSuccess;
-- const int buflen = 10000;
-- unsigned char buf1[buflen];
-- unsigned char buf2[buflen];
--
-- PrioPRGSeed key;
-- PRG prg1 = NULL;
-- PRG prg2 = NULL;
--
-- buf1[3] = 'a';
-- buf2[3] = 'b';
--
-- P_CHECKC (PrioPRGSeed_randomize (&key));
-- P_CHECKA (prg1 = PRG_new (key));
-- P_CHECKA (prg2 = PRG_new (key));
--
-- P_CHECKC (PRG_get_bytes (prg1, buf1, buflen));
-- P_CHECKC (PRG_get_bytes (prg2, buf2, buflen));
--
-- bool all_zero = true;
-- for (int i=0; i<buflen; i++) {
-- mu_check (buf1[i] == buf2[i]);
-- if (buf1[i]) all_zero = false;
-- }
-- mu_check (!all_zero);
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- PRG_clear (prg1);
-- PRG_clear (prg2);
--}
--
--
--void
--mu_test__prg_repeat_int (void)
--{
-- SECStatus rv = SECSuccess;
-- const int tries = 10000;
-- mp_int max;
-- mp_int out1;
-- mp_int out2;
-- MP_DIGITS (&max) = NULL;
-- MP_DIGITS (&out1) = NULL;
-- MP_DIGITS (&out2) = NULL;
--
-- PrioPRGSeed key;
-- PRG prg1 = NULL;
-- PRG prg2 = NULL;
--
-- P_CHECKC (PrioPRGSeed_randomize (&key));
-- P_CHECKA (prg1 = PRG_new (key));
-- P_CHECKA (prg2 = PRG_new (key));
--
-- MP_CHECKC (mp_init (&max));
-- MP_CHECKC (mp_init (&out1));
-- MP_CHECKC (mp_init (&out2));
--
-- for (int i=0; i<tries; i++) {
-- mp_set (&max, i+1);
-- P_CHECKC (PRG_get_int (prg1, &out1, &max));
-- P_CHECKC (PRG_get_int (prg2, &out2, &max));
-- mu_check (mp_cmp (&out1, &out2) == 0);
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- PRG_clear (prg1);
-- PRG_clear (prg2);
-- mp_clear (&max);
-- mp_clear (&out1);
-- mp_clear (&out2);
--}
--
--void
--test_prg_once (int limit)
--{
-- SECStatus rv = SECSuccess;
-- PrioPRGSeed key;
-- mp_int max;
-- mp_int out;
-- PRG prg = NULL;
--
-- MP_DIGITS (&max) = NULL;
-- MP_DIGITS (&out) = NULL;
--
-- P_CHECKC (PrioPRGSeed_randomize (&key));
-- P_CHECKA (prg = PRG_new (key));
--
-- MP_CHECKC (mp_init (&max));
-- MP_CHECKC (mp_init (&out));
--
-- mp_set (&max, limit);
--
-- P_CHECKC (PRG_get_int (prg, &out, &max));
-- mu_check (mp_cmp_d (&out, limit) == -1);
-- mu_check (mp_cmp_z (&out) > -1);
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- mp_clear (&max);
-- mp_clear (&out);
-- PRG_clear (prg);
--}
--
--void
--mu_test_prg__multiple_of_8 (void)
--{
-- test_prg_once (256);
-- test_prg_once (256*256);
--}
--
--
--void
--mu_test_prg__near_multiple_of_8 (void)
--{
-- test_prg_once (256+1);
-- test_prg_once (256*256+1);
--}
--
--void
--mu_test_prg__odd (void)
--{
-- test_prg_once (39);
-- test_prg_once (123);
-- test_prg_once (993123);
--}
--
--void
--mu_test_prg__large (void)
--{
-- test_prg_once (1231239933);
--}
--
--void
--mu_test_prg__bit(void)
--{
-- test_prg_once (1);
-- for (int i = 0; i < 100; i++)
-- test_prg_once (2);
--}
--
--void
--test_prg_distribution (int limit)
--{
-- int bins[limit];
-- SECStatus rv = SECSuccess;
-- PrioPRGSeed key;
-- mp_int max;
-- mp_int out;
-- PRG prg = NULL;
--
-- MP_DIGITS (&max) = NULL;
-- MP_DIGITS (&out) = NULL;
--
-- P_CHECKC (PrioPRGSeed_randomize (&key));
-- P_CHECKA (prg = PRG_new (key));
--
-- MP_CHECKC (mp_init (&max));
-- MP_CHECKC (mp_init (&out));
--
-- mp_set (&max, limit);
--
-- for (int i = 0; i < limit; i++) {
-- bins[i] = 0;
-- }
--
-- for (int i = 0; i < limit*limit; i++) {
-- P_CHECKC (PRG_get_int (prg, &out, &max));
-- mu_check (mp_cmp_d (&out, limit) == -1);
-- mu_check (mp_cmp_z (&out) > -1);
--
-- unsigned char ival[2] = {0x00, 0x00};
-- MP_CHECKC (mp_to_fixlen_octets (&out, ival, 2));
-- if (ival[1] + 256*ival[0] < limit) {
-- bins[ival[1] + 256*ival[0]] += 1;
-- } else {
-- mu_check (false);
-- }
-- }
--
-- for (int i = 0; i < limit; i++) {
-- mu_check (bins[i] > limit/2);
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- mp_clear (&max);
-- mp_clear (&out);
-- PRG_clear (prg);
--}
--
--
--void
--mu_test__prg_distribution123 (void)
--{
-- test_prg_distribution(123);
--}
--
--void
--mu_test__prg_distribution257 (void)
--{
-- test_prg_distribution(257);
--}
--
--void
--mu_test__prg_distribution259 (void)
--{
-- test_prg_distribution(259);
--}
--
--void
--test_prg_distribution_large (mp_int *max)
--{
-- const int limit = 16;
-- int bins[limit];
-- SECStatus rv = SECSuccess;
-- PrioPRGSeed key;
-- mp_int out;
-- PRG prg = NULL;
--
-- MP_DIGITS (&out) = NULL;
--
-- P_CHECKC (PrioPRGSeed_randomize (&key));
-- P_CHECKA (prg = PRG_new (key));
--
-- MP_CHECKC (mp_init (&out));
--
-- for (int i = 0; i < limit; i++) {
-- bins[i] = 0;
-- }
--
-- for (int i = 0; i < 100*limit*limit; i++) {
-- MP_CHECKC (PRG_get_int (prg, &out, max));
-- mu_check (mp_cmp (&out, max) == -1);
-- mu_check (mp_cmp_z (&out) > -1);
--
-- unsigned long res;
-- MP_CHECKC (mp_mod_d (&out, limit, &res));
-- bins[res] += 1;
-- }
--
-- for (int i = 0; i < limit; i++) {
-- mu_check (bins[i] > limit/2);
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- mp_clear (&out);
-- PRG_clear (prg);
--}
--
--void
--mu_test__prg_distribution_large (void)
--{
-- SECStatus rv = SECSuccess;
-- mp_int max;
-- MP_DIGITS (&max) = NULL;
-- MP_CHECKC (mp_init (&max));
--
-- char bytes[] = "FF1230985198451798EDC8123";
-- MP_CHECKC (mp_read_radix (&max, bytes, 16));
-- test_prg_distribution_large (&max);
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- mp_clear (&max);
--}
--
--
--void
--mu_test__prg_share_arr (void)
--{
-- SECStatus rv = SECSuccess;
-- PrioConfig cfg = NULL;
-- MPArray arr = NULL;
-- MPArray arr_share = NULL;
-- PRG prg = NULL;
-- PrioPRGSeed seed;
--
-- P_CHECKA (cfg = PrioConfig_newTest (72));
-- P_CHECKC (PrioPRGSeed_randomize (&seed));
-- P_CHECKA (arr = MPArray_new (10));
-- P_CHECKA (arr_share = MPArray_new (10));
-- P_CHECKA (prg = PRG_new (seed));
--
-- for (int i=0; i<10; i++) {
-- mp_set (&arr->data[i], i);
-- }
--
-- P_CHECKC (PRG_share_array (prg, arr_share, arr, cfg));
--
-- // Reset PRG
-- PRG_clear (prg);
-- P_CHECKA (prg = PRG_new (seed));
--
-- // Read pseudorandom values into arr
-- P_CHECKC (PRG_get_array (prg, arr, &cfg->modulus));
--
--
-- for (int i=0; i<10; i++) {
-- MP_CHECKC (mp_addmod (&arr->data[i], &arr_share->data[i],
-- &cfg->modulus, &arr->data[i]));
-- mu_check (mp_cmp_d (&arr->data[i], i) == 0);
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
--
-- PRG_clear (prg);
-- MPArray_clear (arr);
-- MPArray_clear (arr_share);
-- PrioConfig_clear (cfg);
--}
-diff --git a/third_party/prio/ptest/rand_test.c b/third_party/prio/ptest/rand_test.c
-deleted file mode 100644
---- a/third_party/prio/ptest/rand_test.c
-+++ /dev/null
-@@ -1,194 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--#include <mpi.h>
--
--#include "mutest.h"
--#include "prio/rand.h"
--#include "prio/util.h"
--
--void
--mu_test__util_msb_mast (void)
--{
-- mu_check (msb_mask (0x01) == 0x01);
-- mu_check (msb_mask (0x02) == 0x03);
-- mu_check (msb_mask (0x0C) == 0x0F);
-- mu_check (msb_mask (0x1C) == 0x1F);
-- mu_check (msb_mask (0xFF) == 0xFF);
--}
--
--void
--test_rand_once (int limit)
--{
-- mp_int max;
-- mp_int out;
--
-- mu_check (mp_init (&max) == MP_OKAY);
-- mu_check (mp_init (&out) == MP_OKAY);
--
-- mp_set (&max, limit);
--
-- mu_check (rand_int (&out, &max) == MP_OKAY);
-- mu_check (mp_cmp_d (&out, limit) == -1);
-- mu_check (mp_cmp_z (&out) > -1);
--
-- mp_clear (&max);
-- mp_clear (&out);
--}
--
--void
--mu_test_rand__multiple_of_8 (void)
--{
-- test_rand_once (256);
-- test_rand_once (256*256);
--}
--
--
--void
--mu_test_rand__near_multiple_of_8 (void)
--{
-- test_rand_once (256+1);
-- test_rand_once (256*256+1);
--}
--
--void
--mu_test_rand__odd (void)
--{
-- test_rand_once (39);
-- test_rand_once (123);
-- test_rand_once (993123);
--}
--
--void
--mu_test_rand__large (void)
--{
-- test_rand_once (1231239933);
--}
--
--void
--mu_test_rand__bit(void)
--{
-- test_rand_once (1);
-- for (int i = 0; i < 100; i++)
-- test_rand_once (2);
--}
--
--void
--test_rand_distribution (int limit)
--{
-- SECStatus rv = SECSuccess;
-- int bins[limit];
--
-- mp_int max;
-- mp_int out;
--
-- MP_DIGITS (&max) = NULL;
-- MP_DIGITS (&out) = NULL;
--
-- MP_CHECKC (mp_init (&max));
-- MP_CHECKC (mp_init (&out));
--
-- mp_set (&max, limit);
--
-- for (int i = 0; i < limit; i++) {
-- bins[i] = 0;
-- }
--
-- for (int i = 0; i < limit*limit; i++) {
-- mu_check (rand_int (&out, &max) == MP_OKAY);
-- mu_check (mp_cmp_d (&out, limit) == -1);
-- mu_check (mp_cmp_z (&out) > -1);
--
-- unsigned char ival[2] = {0x00, 0x00};
-- MP_CHECKC (mp_to_fixlen_octets (&out, ival, 2));
-- if (ival[1] + 256*ival[0] < limit) {
-- bins[ival[1] + 256*ival[0]] += 1;
-- } else {
-- mu_check (false);
-- }
-- }
--
-- for (int i = 0; i < limit; i++) {
-- mu_check (bins[i] > limit/2);
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- mp_clear (&max);
-- mp_clear (&out);
--}
--
--
--void
--mu_test__rand_distribution123 (void)
--{
-- test_rand_distribution(123);
--}
--
--void
--mu_test__rand_distribution257 (void)
--{
-- test_rand_distribution(257);
--}
--
--void
--mu_test__rand_distribution259 (void)
--{
-- test_rand_distribution(259);
--}
--
--void
--test_rand_distribution_large (mp_int *max)
--{
-- SECStatus rv = SECSuccess;
-- int limit = 16;
-- int bins[limit];
--
-- mp_int out;
-- MP_DIGITS (&out) = NULL;
-- MP_CHECKC (mp_init (&out));
--
-- for (int i = 0; i < limit; i++) {
-- bins[i] = 0;
-- }
--
-- for (int i = 0; i < 100*limit*limit; i++) {
-- MP_CHECKC (rand_int (&out, max));
-- mu_check (mp_cmp (&out, max) == -1);
-- mu_check (mp_cmp_z (&out) > -1);
--
-- unsigned long res;
-- MP_CHECKC (mp_mod_d (&out, limit, &res));
-- bins[res] += 1;
-- }
--
-- for (int i = 0; i < limit; i++) {
-- mu_check (bins[i] > limit/2);
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- mp_clear (&out);
--}
--
--void
--mu_test__rand_distribution_large (void)
--{
-- SECStatus rv = SECSuccess;
-- mp_int max;
-- MP_DIGITS (&max) = NULL;
-- MP_CHECKC (mp_init (&max));
--
-- char bytes[] = "FF1230985198451798EDC8123";
-- MP_CHECKC (mp_read_radix (&max, bytes, 16));
-- test_rand_distribution_large (&max);
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- mp_clear (&max);
--}
-diff --git a/third_party/prio/ptest/serial_test.c b/third_party/prio/ptest/serial_test.c
-deleted file mode 100644
---- a/third_party/prio/ptest/serial_test.c
-+++ /dev/null
-@@ -1,319 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--#include <mprio.h>
--#include <msgpack.h>
--#include <string.h>
--
--#include "mutest.h"
--#include "prio/client.h"
--#include "prio/config.h"
--#include "prio/serial.h"
--#include "prio/server.h"
--#include "prio/util.h"
--
--SECStatus
--gen_client_packets (const_PrioConfig cfg, PrioPacketClient pA, PrioPacketClient pB)
--{
-- SECStatus rv = SECSuccess;
--
-- const int ndata = cfg->num_data_fields;
-- bool data_items[ndata];
--
-- for (int i=0; i < ndata; i++) {
-- data_items[i] = (i % 3 == 1) || (i % 5 == 3);
-- }
--
-- P_CHECKC (PrioPacketClient_set_data (cfg, data_items, pA, pB));
--
--cleanup:
-- return rv;
--}
--
--
--void serial_client (int bad)
--{
-- SECStatus rv = SECSuccess;
-- PrioConfig cfg = NULL;
-- PrioConfig cfg2 = NULL;
-- PrioPacketClient pA = NULL;
-- PrioPacketClient pB = NULL;
-- PrioPacketClient qA = NULL;
-- PrioPacketClient qB = NULL;
--
-- const unsigned char *batch_id1 = (unsigned char *)"my_test_prio_batch1";
-- const unsigned char *batch_id2 = (unsigned char *)"my_test_prio_batch2";
-- const unsigned int batch_id_len = strlen ((char *)batch_id1);
--
-- msgpack_sbuffer sbufA, sbufB;
-- msgpack_packer pkA, pkB;
-- msgpack_unpacker upkA, upkB;
--
-- msgpack_sbuffer_init (&sbufA);
-- msgpack_packer_init (&pkA, &sbufA, msgpack_sbuffer_write);
--
-- msgpack_sbuffer_init (&sbufB);
-- msgpack_packer_init (&pkB, &sbufB, msgpack_sbuffer_write);
--
-- P_CHECKA (cfg = PrioConfig_new (100, NULL, NULL, batch_id1, batch_id_len));
-- P_CHECKA (cfg2 = PrioConfig_new (100, NULL, NULL, batch_id2, batch_id_len));
-- P_CHECKA (pA = PrioPacketClient_new (cfg, PRIO_SERVER_A));
-- P_CHECKA (pB = PrioPacketClient_new (cfg, PRIO_SERVER_B));
-- P_CHECKA (qA = PrioPacketClient_new (cfg, PRIO_SERVER_A));
-- P_CHECKA (qB = PrioPacketClient_new (cfg, PRIO_SERVER_B));
--
-- P_CHECKC (gen_client_packets (cfg, pA, pB));
--
-- P_CHECKC (serial_write_packet_client (&pkA, pA, cfg));
-- P_CHECKC (serial_write_packet_client (&pkB, pB, cfg));
--
-- if (bad == 1) {
-- sbufA.size = 1;
-- }
--
-- if (bad == 2) {
-- memset (sbufA.data, 0, sbufA.size);
-- }
--
-- const int size_a = sbufA.size;
-- const int size_b = sbufB.size;
--
-- P_CHECKCB (msgpack_unpacker_init (&upkA, 0));
-- P_CHECKCB (msgpack_unpacker_init (&upkB, 0));
--
-- P_CHECKCB (msgpack_unpacker_reserve_buffer (&upkA, size_a));
-- P_CHECKCB (msgpack_unpacker_reserve_buffer (&upkB, size_b));
--
-- memcpy (msgpack_unpacker_buffer (&upkA), sbufA.data, size_a);
-- memcpy (msgpack_unpacker_buffer (&upkB), sbufB.data, size_b);
--
-- msgpack_unpacker_buffer_consumed (&upkA, size_a);
-- msgpack_unpacker_buffer_consumed (&upkB, size_b);
--
-- P_CHECKC (serial_read_packet_client (&upkA, qA, cfg));
-- P_CHECKC (serial_read_packet_client (&upkB, qB, (bad == 3) ? cfg2 : cfg));
--
-- if (!bad) {
-- mu_check (PrioPacketClient_areEqual (pA, qA));
-- mu_check (PrioPacketClient_areEqual (pB, qB));
-- mu_check (!PrioPacketClient_areEqual (pB, qA));
-- mu_check (!PrioPacketClient_areEqual (pA, qB));
-- }
--
--cleanup:
-- PrioPacketClient_clear (pA);
-- PrioPacketClient_clear (pB);
-- PrioPacketClient_clear (qA);
-- PrioPacketClient_clear (qB);
-- PrioConfig_clear (cfg);
-- PrioConfig_clear (cfg2);
-- msgpack_sbuffer_destroy (&sbufA);
-- msgpack_sbuffer_destroy (&sbufB);
-- msgpack_unpacker_destroy (&upkA);
-- msgpack_unpacker_destroy (&upkB);
-- mu_check (bad ? rv == SECFailure : rv == SECSuccess);
--}
--
--
--void mu_test__serial_client (void)
--{
-- serial_client (0);
--}
--
--void mu_test__serial_client_bad1 (void)
--{
-- serial_client (1);
--}
--
--void mu_test__serial_client_bad2 (void)
--{
-- serial_client (2);
--}
--
--void mu_test__serial_client_bad3 (void)
--{
-- serial_client (3);
--}
--
--void test_verify1 (int bad)
--{
-- SECStatus rv = SECSuccess;
-- PrioPacketVerify1 v1 = NULL;
-- PrioPacketVerify1 v2 = NULL;
-- PrioConfig cfg = NULL;
--
-- P_CHECKA (cfg = PrioConfig_newTest (1));
-- P_CHECKA (v1 = PrioPacketVerify1_new());
-- P_CHECKA (v2 = PrioPacketVerify1_new());
-- mp_set (&v1->share_d, 4);
-- mp_set (&v1->share_e, 10);
--
-- msgpack_sbuffer sbuf;
-- msgpack_packer pk;
-- msgpack_unpacker upk;
--
-- msgpack_sbuffer_init (&sbuf);
-- msgpack_packer_init (&pk, &sbuf, msgpack_sbuffer_write);
--
-- P_CHECKC (PrioPacketVerify1_write (v1, &pk));
--
-- if (bad == 1) {
-- mp_set (&cfg->modulus, 6);
-- }
--
-- P_CHECKCB (msgpack_unpacker_init (&upk, 0));
-- P_CHECKCB (msgpack_unpacker_reserve_buffer (&upk, sbuf.size));
-- memcpy (msgpack_unpacker_buffer (&upk), sbuf.data, sbuf.size);
-- msgpack_unpacker_buffer_consumed (&upk, sbuf.size);
--
-- P_CHECKC (PrioPacketVerify1_read (v2, &upk, cfg));
--
-- mu_check (!mp_cmp (&v1->share_d, &v2->share_d));
-- mu_check (!mp_cmp (&v1->share_e, &v2->share_e));
-- mu_check (!mp_cmp_d (&v2->share_d, 4));
-- mu_check (!mp_cmp_d (&v2->share_e, 10));
--
--cleanup:
-- mu_check (bad ? rv == SECFailure : rv == SECSuccess);
-- PrioConfig_clear (cfg);
-- PrioPacketVerify1_clear (v1);
-- PrioPacketVerify1_clear (v2);
-- msgpack_unpacker_destroy (&upk);
-- msgpack_sbuffer_destroy (&sbuf);
--}
--
--void mu_test_verify1_good (void)
--{
-- test_verify1 (0);
--}
--
--void mu_test_verify1_bad (void)
--{
-- test_verify1 (1);
--}
--
--void test_verify2 (int bad)
--{
-- SECStatus rv = SECSuccess;
-- PrioPacketVerify2 v1 = NULL;
-- PrioPacketVerify2 v2 = NULL;
-- PrioConfig cfg = NULL;
--
-- P_CHECKA (cfg = PrioConfig_newTest (1));
-- P_CHECKA (v1 = PrioPacketVerify2_new());
-- P_CHECKA (v2 = PrioPacketVerify2_new());
-- mp_set (&v1->share_out, 4);
--
-- msgpack_sbuffer sbuf;
-- msgpack_packer pk;
-- msgpack_unpacker upk;
--
-- msgpack_sbuffer_init (&sbuf);
-- msgpack_packer_init (&pk, &sbuf, msgpack_sbuffer_write);
--
-- P_CHECKC (PrioPacketVerify2_write (v1, &pk));
--
-- if (bad == 1) {
-- mp_set (&cfg->modulus, 4);
-- }
--
-- P_CHECKCB (msgpack_unpacker_init (&upk, 0));
-- P_CHECKCB (msgpack_unpacker_reserve_buffer (&upk, sbuf.size));
-- memcpy (msgpack_unpacker_buffer (&upk), sbuf.data, sbuf.size);
-- msgpack_unpacker_buffer_consumed (&upk, sbuf.size);
--
-- P_CHECKC (PrioPacketVerify2_read (v2, &upk, cfg));
--
-- mu_check (!mp_cmp (&v1->share_out, &v2->share_out));
-- mu_check (!mp_cmp_d (&v2->share_out, 4));
--
--cleanup:
-- mu_check (bad ? rv == SECFailure : rv == SECSuccess);
-- PrioConfig_clear (cfg);
-- PrioPacketVerify2_clear (v1);
-- PrioPacketVerify2_clear (v2);
-- msgpack_unpacker_destroy (&upk);
-- msgpack_sbuffer_destroy (&sbuf);
--}
--
--void mu_test_verify2_good (void)
--{
-- test_verify2 (0);
--}
--
--void mu_test_verify2_bad (void)
--{
-- test_verify2 (1);
--}
--
--
--void test_total_share (int bad)
--{
-- SECStatus rv = SECSuccess;
-- PrioTotalShare t1 = NULL;
-- PrioTotalShare t2 = NULL;
-- PrioConfig cfg = NULL;
--
-- P_CHECKA (cfg = PrioConfig_newTest ((bad == 2 ? 4 : 3)));
-- P_CHECKA (t1 = PrioTotalShare_new ());
-- P_CHECKA (t2 = PrioTotalShare_new ());
--
-- t1->idx = PRIO_SERVER_A;
-- P_CHECKC (MPArray_resize (t1->data_shares, 3));
--
-- mp_set (&t1->data_shares->data[0], 10);
-- mp_set (&t1->data_shares->data[1], 20);
-- mp_set (&t1->data_shares->data[2], 30);
--
-- msgpack_sbuffer sbuf;
-- msgpack_packer pk;
-- msgpack_unpacker upk;
--
-- msgpack_sbuffer_init (&sbuf);
-- msgpack_packer_init (&pk, &sbuf, msgpack_sbuffer_write);
--
-- P_CHECKC (PrioTotalShare_write (t1, &pk));
--
-- if (bad == 1) {
-- mp_set (&cfg->modulus, 4);
-- }
--
-- P_CHECKCB (msgpack_unpacker_init (&upk, 0));
-- P_CHECKCB (msgpack_unpacker_reserve_buffer (&upk, sbuf.size));
-- memcpy (msgpack_unpacker_buffer (&upk), sbuf.data, sbuf.size);
-- msgpack_unpacker_buffer_consumed (&upk, sbuf.size);
--
-- P_CHECKC (PrioTotalShare_read (t2, &upk, cfg));
--
-- mu_check (t1->idx == t2->idx);
-- mu_check (MPArray_areEqual (t1->data_shares, t2->data_shares));
--
--cleanup:
-- mu_check (bad ? rv == SECFailure : rv == SECSuccess);
-- PrioConfig_clear (cfg);
-- PrioTotalShare_clear (t1);
-- PrioTotalShare_clear (t2);
-- msgpack_unpacker_destroy (&upk);
-- msgpack_sbuffer_destroy (&sbuf);
--}
--
--void mu_test_total_good (void)
--{
-- test_total_share (0);
--}
--
--void mu_test_total_bad1 (void)
--{
-- test_total_share (1);
--}
--
--void mu_test_total_bad2 (void)
--{
-- test_total_share (2);
--}
--
-diff --git a/third_party/prio/ptest/server_test.c b/third_party/prio/ptest/server_test.c
-deleted file mode 100644
---- a/third_party/prio/ptest/server_test.c
-+++ /dev/null
-@@ -1,298 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--#include <mpi.h>
--#include <mprio.h>
--
--#include "mutest.h"
--#include "prio/client.h"
--#include "prio/server.h"
--#include "prio/server.c"
--
--void mu_test__eval_poly (void)
--{
-- SECStatus rv = SECSuccess;
-- PrioConfig cfg = NULL;
-- MPArray coeffs = NULL;
-- mp_int eval_at, out;
--
-- MP_DIGITS (&eval_at) = NULL;
-- MP_DIGITS (&out) = NULL;
--
-- P_CHECKA (cfg = PrioConfig_newTest (54));
-- P_CHECKA (coeffs = MPArray_new (3));
--
-- mp_set (&coeffs->data[0], 2);
-- mp_set (&coeffs->data[1], 8);
-- mp_set (&coeffs->data[2], 3);
--
-- MP_CHECKC (mp_init (&eval_at));
-- MP_CHECKC (mp_init (&out));
-- mp_set (&eval_at, 7);
--
-- const int val = 3*7*7 + 8*7 + 2;
-- mu_check (poly_eval (&out, coeffs, &eval_at, cfg) == SECSuccess);
-- mu_check (mp_cmp_d (&out, val) == 0);
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- mp_clear (&out);
-- mp_clear (&eval_at);
-- MPArray_clear (coeffs);
-- PrioConfig_clear (cfg);
--}
--
--void
--mu_test__verify_new (void)
--{
-- SECStatus rv = SECSuccess;
-- PublicKey pkA = NULL;
-- PublicKey pkB = NULL;
-- PrivateKey skA = NULL;
-- PrivateKey skB = NULL;
-- PrioConfig cfg = NULL;
-- PrioServer sA = NULL;
-- PrioServer sB = NULL;
-- PrioVerifier vA = NULL;
-- PrioVerifier vB = NULL;
-- unsigned char *for_a = NULL;
-- unsigned char *for_b = NULL;
--
-- mp_int fR, gR, hR;
-- MP_DIGITS (&fR) = NULL;
-- MP_DIGITS (&gR) = NULL;
-- MP_DIGITS (&hR) = NULL;
--
-- PrioPRGSeed seed;
-- P_CHECKC (PrioPRGSeed_randomize (&seed));
--
-- P_CHECKC (Keypair_new (&skA, &pkA));
-- P_CHECKC (Keypair_new (&skB, &pkB));
-- P_CHECKA (cfg = PrioConfig_new (214, pkA, pkB,
-- (unsigned char *)"testbatch", 9));
--
-- const int ndata = PrioConfig_numDataFields (cfg);
-- {
-- bool data_items[ndata];
-- for (int i=0; i < ndata; i++) {
-- // Arbitrary data
-- data_items[i] = (i % 3 == 1) || (i % 5 == 3);
-- }
--
-- P_CHECKA (sA = PrioServer_new (cfg, 0, skA, seed));
-- P_CHECKA (sB = PrioServer_new (cfg, 1, skB, seed));
--
-- unsigned int aLen, bLen;
-- P_CHECKC (PrioClient_encode (cfg, data_items, &for_a, &aLen, &for_b, &bLen));
--
-- MP_CHECKC (mp_init (&fR));
-- MP_CHECKC (mp_init (&gR));
-- MP_CHECKC (mp_init (&hR));
--
-- P_CHECKA (vA = PrioVerifier_new (sA));
-- P_CHECKA (vB = PrioVerifier_new (sB));
-- P_CHECKC (PrioVerifier_set_data (vA, for_a, aLen));
-- P_CHECKC (PrioVerifier_set_data (vB, for_b, bLen));
--
-- PrioPacketClient pA = vA->clientp;
-- PrioPacketClient pB = vB->clientp;
-- MP_CHECKC (mp_addmod (&pA->f0_share, &pB->f0_share, &cfg->modulus, &fR));
-- MP_CHECKC (mp_addmod (&pA->g0_share, &pB->g0_share, &cfg->modulus, &gR));
-- MP_CHECKC (mp_addmod (&pA->h0_share, &pB->h0_share, &cfg->modulus, &hR));
--
-- MP_CHECKC (mp_mulmod (&fR, &gR, &cfg->modulus, &fR));
-- mu_check (mp_cmp (&fR, &hR) == 0);
--
--
-- MP_CHECKC (mp_addmod (&vA->share_fR, &vB->share_fR, &cfg->modulus, &fR));
-- MP_CHECKC (mp_addmod (&vA->share_gR, &vB->share_gR, &cfg->modulus, &gR));
-- MP_CHECKC (mp_addmod (&vA->share_hR, &vB->share_hR, &cfg->modulus, &hR));
--
-- MP_CHECKC (mp_mulmod (&fR, &gR, &cfg->modulus, &fR));
--
-- //puts ("fR");
-- //mp_print (&fR, stdout);
-- //puts ("hR");
-- //mp_print (&hR, stdout);
-- mu_check (mp_cmp (&fR, &hR) == 0);
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
--
-- if (for_a) free (for_a);
-- if (for_b) free (for_b);
--
-- mp_clear (&fR);
-- mp_clear (&gR);
-- mp_clear (&hR);
--
-- PrioVerifier_clear (vA);
-- PrioVerifier_clear (vB);
--
-- PrioServer_clear (sA);
-- PrioServer_clear (sB);
-- PrioConfig_clear (cfg);
--
-- PublicKey_clear (pkA);
-- PublicKey_clear (pkB);
-- PrivateKey_clear (skA);
-- PrivateKey_clear (skB);
--
--}
--
--void
--verify_full (int tweak)
--{
-- SECStatus rv = SECSuccess;
-- PublicKey pkA = NULL;
-- PublicKey pkB = NULL;
-- PrivateKey skA = NULL;
-- PrivateKey skB = NULL;
-- PrioConfig cfg = NULL;
-- PrioServer sA = NULL;
-- PrioServer sB = NULL;
-- PrioVerifier vA = NULL;
-- PrioVerifier vB = NULL;
-- PrioPacketVerify1 p1A = NULL;
-- PrioPacketVerify1 p1B = NULL;
-- PrioPacketVerify2 p2A = NULL;
-- PrioPacketVerify2 p2B = NULL;
-- unsigned char *for_a = NULL;
-- unsigned char *for_b = NULL;
--
-- mp_int fR, gR, hR;
-- MP_DIGITS (&fR) = NULL;
-- MP_DIGITS (&gR) = NULL;
-- MP_DIGITS (&hR) = NULL;
--
-- PrioPRGSeed seed;
-- P_CHECKC (PrioPRGSeed_randomize (&seed));
--
-- P_CHECKC (Keypair_new (&skA, &pkA));
-- P_CHECKC (Keypair_new (&skB, &pkB));
-- P_CHECKA (cfg = PrioConfig_new (47, pkA, pkB, (unsigned char *)"test4", 5));
--
-- const int ndata = PrioConfig_numDataFields (cfg);
-- {
-- bool data_items[ndata];
-- for (int i=0; i < ndata; i++) {
-- // Arbitrary data
-- data_items[i] = (i % 3 == 1) || (i % 5 == 3);
-- }
--
-- P_CHECKA (sA = PrioServer_new (cfg, 0, skA, seed));
-- P_CHECKA (sB = PrioServer_new (cfg, 1, skB, seed));
--
-- unsigned int aLen, bLen;
-- P_CHECKC (PrioClient_encode (cfg, data_items, &for_a, &aLen, &for_b, &bLen));
--
-- if (tweak == 5) {
-- for_a[3] = 3;
-- for_a[4] = 4;
-- }
--
-- P_CHECKA (vA = PrioVerifier_new (sA));
-- P_CHECKA (vB = PrioVerifier_new (sB));
-- P_CHECKC (PrioVerifier_set_data (vA, for_a, aLen));
-- P_CHECKC (PrioVerifier_set_data (vB, for_b, bLen));
--
-- if (tweak == 3) {
-- mp_add_d (&vA->share_fR, 1, &vA->share_fR);
-- }
--
-- if (tweak == 4) {
-- mp_add_d (&vB->share_gR, 1, &vB->share_gR);
-- }
--
-- P_CHECKA (p1A = PrioPacketVerify1_new ());
-- P_CHECKA (p1B = PrioPacketVerify1_new ());
--
-- P_CHECKC (PrioPacketVerify1_set_data (p1A, vA));
-- P_CHECKC (PrioPacketVerify1_set_data (p1B, vB));
--
-- if (tweak == 1) {
-- mp_add_d (&p1B->share_d, 1, &p1B->share_d);
-- }
--
-- P_CHECKA (p2A = PrioPacketVerify2_new ());
-- P_CHECKA (p2B = PrioPacketVerify2_new ());
-- P_CHECKC (PrioPacketVerify2_set_data (p2A, vA, p1A, p1B));
-- P_CHECKC (PrioPacketVerify2_set_data (p2B, vB, p1A, p1B));
--
-- if (tweak == 2) {
-- mp_add_d (&p2A->share_out, 1, &p2B->share_out);
-- }
--
-- int shouldBe = tweak ? SECFailure : SECSuccess;
-- mu_check (PrioVerifier_isValid (vA, p2A, p2B) == shouldBe);
-- mu_check (PrioVerifier_isValid (vB, p2A, p2B) == shouldBe);
-- }
--
--cleanup:
-- if (!tweak) {
-- mu_check (rv == SECSuccess);
-- }
--
-- if (for_a) free (for_a);
-- if (for_b) free (for_b);
--
-- PrioPacketVerify2_clear (p2A);
-- PrioPacketVerify2_clear (p2B);
--
-- PrioPacketVerify1_clear (p1A);
-- PrioPacketVerify1_clear (p1B);
--
-- PrioVerifier_clear (vA);
-- PrioVerifier_clear (vB);
--
-- PrioServer_clear (sA);
-- PrioServer_clear (sB);
-- PrioConfig_clear (cfg);
--
-- PublicKey_clear (pkA);
-- PublicKey_clear (pkB);
-- PrivateKey_clear (skA);
-- PrivateKey_clear (skB);
--}
--
--void
--mu_test__verify_full_good (void)
--{
-- verify_full (0);
--}
--
--void
--mu_test__verify_full_bad1 (void)
--{
-- verify_full (1);
--}
--
--void
--mu_test__verify_full_bad2 (void)
--{
-- verify_full (2);
--}
--
--void
--mu_test__verify_full_bad3 (void)
--{
-- verify_full (3);
--}
--
--void
--mu_test__verify_full_bad4 (void)
--{
-- verify_full (4);
--}
--
--void
--mu_test__verify_full_bad5 (void)
--{
-- verify_full (5);
--}
-diff --git a/third_party/prio/ptest/share_test.c b/third_party/prio/ptest/share_test.c
-deleted file mode 100644
---- a/third_party/prio/ptest/share_test.c
-+++ /dev/null
-@@ -1,91 +0,0 @@
--/*
-- * Copyright (c) 2018, Henry Corrigan-Gibbs
-- *
-- * This Source Code Form is subject to the terms of the Mozilla Public
-- * License, v. 2.0. If a copy of the MPL was not distributed with this
-- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
-- */
--
--#include <mpi.h>
--#include <mprio.h>
--
--#include "prio/client.h"
--#include "prio/config.h"
--#include "prio/mparray.h"
--#include "prio/share.h"
--#include "prio/util.h"
--#include "mutest.h"
--
--void
--mu_test_share (void)
--{
-- SECStatus rv = SECSuccess;
-- PrioConfig cfg = NULL;
-- mp_int a, b, c;
-- BeaverTriple t1 = NULL, t2 = NULL;
--
-- MP_DIGITS (&a) = NULL;
-- MP_DIGITS (&b) = NULL;
-- MP_DIGITS (&c) = NULL;
--
-- P_CHECKA (cfg = PrioConfig_newTest (93));
-- P_CHECKA (t1 = BeaverTriple_new ());
-- P_CHECKA (t2 = BeaverTriple_new ());
--
-- mu_check (BeaverTriple_set_rand (cfg, t1, t2) == SECSuccess);
--
-- MP_CHECKC (mp_init (&a));
-- MP_CHECKC (mp_init (&b));
-- MP_CHECKC (mp_init (&c));
--
-- mu_check (mp_addmod (&t1->a, &t2->a, &cfg->modulus, &a) == MP_OKAY);
-- mu_check (mp_addmod (&t1->b, &t2->b, &cfg->modulus, &b) == MP_OKAY);
-- mu_check (mp_addmod (&t1->c, &t2->c, &cfg->modulus, &c) == MP_OKAY);
-- mu_check (mp_mulmod (&a, &b, &cfg->modulus, &a) == MP_OKAY);
-- mu_check (mp_cmp (&a, &c) == 0);
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- mp_clear (&a);
-- mp_clear (&b);
-- mp_clear (&c);
--
-- PrioConfig_clear (cfg);
-- BeaverTriple_clear (t1);
-- BeaverTriple_clear (t2);
--}
--
--void
--mu_test_arr (void)
--{
-- SECStatus rv = SECSuccess;
-- MPArray arr = NULL;
-- MPArray arr2 = NULL;
-- P_CHECKA (arr = MPArray_new (10));
-- P_CHECKA (arr2 = MPArray_new (7));
--
-- for (int i=0; i<10; i++) {
-- mp_set (&arr->data[i], i);
-- }
--
-- P_CHECKC (MPArray_resize (arr, 15));
-- for (int i=10; i<15; i++) {
-- mu_check (mp_cmp_d (&arr->data[i], 0) == 0);
-- mp_set (&arr->data[i], i);
-- }
--
-- P_CHECKC (MPArray_resize (arr, 7));
-- for (int i=10; i<7; i++) {
-- mu_check (mp_cmp_d (&arr->data[i], i) == 0);
-- }
--
-- P_CHECKC (MPArray_copy (arr2, arr));
-- for (int i=10; i<7; i++) {
-- mu_check (mp_cmp (&arr->data[i], &arr2->data[i]) == 0);
-- }
--
--cleanup:
-- mu_check (rv == SECSuccess);
-- MPArray_clear (arr);
-- MPArray_clear (arr2);
--}
-diff --git a/third_party/prio/update.sh b/third_party/prio/update.sh
---- a/third_party/prio/update.sh
-+++ b/third_party/prio/update.sh
-@@ -1,20 +1,18 @@
- #!/bin/sh
-
--# Script to update the mozilla in-tree copy of the Prio library.
--# Run this within the /third_party/prio directory of the source tree.
-+# Script to update the mozilla in-tree copy of the libprio library.
-+# Run this within the /third_party/libprio directory of the source tree.
-
- MY_TEMP_DIR=`mktemp -d -t libprio_update.XXXXXX` || exit 1
-
--VERSION=1.0
--
--git clone https://github.com/mozilla/libprio ${MY_TEMP_DIR}/libprio
--git -C ${MY_TEMP_DIR}/libprio checkout ${VERSION}
-+COMMIT="488da2d729d73f18ed45add59edd18b257e1ceaa"
-
--COMMIT=$(git -C ${MY_TEMP_DIR}/libprio rev-parse HEAD)
--perl -p -i -e "s/(\d+\.)(\d+\.)(\d+)/${VERSION}/" README-mozilla;
--perl -p -i -e "s/\[commit [0-9a-f]{40}\]/[commit ${COMMIT}]/" README-mozilla;
-+git clone -n https://github.com/mozilla/libprio ${MY_TEMP_DIR}/libprio
-+git -C ${MY_TEMP_DIR}/libprio checkout ${COMMIT}
-
--FILES="LICENSE README.md SConstruct browser-test include pclient prio ptest"
-+FILES="include prio"
-+VERSION=$(git -C ${MY_TEMP_DIR}/libprio describe --tags)
-+perl -p -i -e "s/Current version: \S+ \[commit [0-9a-f]{40}\]/Current version: ${VERSION} [commit ${COMMIT}]/" README-mozilla
-
- for f in $FILES; do
- rm -rf $f
-@@ -24,9 +22,9 @@
- rm -rf ${MY_TEMP_DIR}
-
- hg revert -r . moz.build
--hg addremove
-+hg addremove .
-
- echo "###"
--echo "### Updated Prio to $COMMIT."
-+echo "### Updated libprio to $COMMIT."
- echo "### Remember to verify and commit the changes to source control!"
- echo "###"
-