summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rw-r--r--README.mediawiki357
-rw-r--r--bip-0002.mediawiki4
-rw-r--r--bip-0008.mediawiki78
-rw-r--r--bip-0008/states.pngbin27151 -> 28132 bytes
-rw-r--r--bip-0008/states.svg14
-rw-r--r--bip-0009.mediawiki2
-rw-r--r--bip-0009/assignments.mediawiki2
-rw-r--r--bip-0011.mediawiki4
-rw-r--r--bip-0013.mediawiki6
-rw-r--r--bip-0016.mediawiki4
-rw-r--r--bip-0016/qa.mediawiki2
-rw-r--r--bip-0019.mediawiki4
-rw-r--r--bip-0030.mediawiki2
-rw-r--r--bip-0032.mediawiki12
-rw-r--r--bip-0033.mediawiki2
-rw-r--r--bip-0036.mediawiki2
-rw-r--r--bip-0039.mediawiki25
-rw-r--r--bip-0039/bip-0039-wordlists.md17
-rw-r--r--bip-0039/czech.txt2048
-rw-r--r--bip-0039/french.txt4
-rw-r--r--bip-0039/korean.txt2048
-rw-r--r--bip-0042.mediawiki2
-rw-r--r--bip-0043.mediawiki2
-rw-r--r--bip-0044.mediawiki12
-rw-r--r--bip-0045.mediawiki42
-rw-r--r--bip-0047.mediawiki2
-rw-r--r--bip-0049.mediawiki29
-rw-r--r--bip-0061.mediawiki2
-rw-r--r--bip-0064.mediawiki2
-rw-r--r--bip-0065.mediawiki16
-rw-r--r--bip-0066.mediawiki3
-rw-r--r--bip-0067.mediawiki2
-rw-r--r--bip-0069.mediawiki4
-rw-r--r--bip-0074.mediawiki2
-rw-r--r--bip-0075.mediawiki4
-rw-r--r--bip-0079.mediawiki124
-rw-r--r--bip-0080.mediawiki2
-rw-r--r--bip-0081.mediawiki2
-rw-r--r--bip-0084.mediawiki100
-rw-r--r--bip-0085.mediawiki259
-rw-r--r--bip-0090.mediawiki1
-rw-r--r--bip-0091.mediawiki4
-rw-r--r--bip-0098.mediawiki308
-rwxr-xr-xbip-0098/build.sh6
-rw-r--r--bip-0098/node-variants.dot85
-rw-r--r--bip-0098/node-variants.pngbin0 -> 105569 bytes
-rw-r--r--bip-0098/skip-skip.dot7
-rw-r--r--bip-0098/skip-skip.pngbin0 -> 9434 bytes
-rw-r--r--bip-0098/traversal-example.dot32
-rw-r--r--bip-0098/traversal-example.pngbin0 -> 60703 bytes
-rw-r--r--bip-0098/unbalanced-hash-tree.dot11
-rw-r--r--bip-0098/unbalanced-hash-tree.pngbin0 -> 22836 bytes
-rw-r--r--bip-0099.mediawiki4
-rw-r--r--bip-0100.mediawiki77
-rw-r--r--bip-0102.mediawiki2
-rw-r--r--bip-0103.mediawiki4
-rw-r--r--bip-0104.mediawiki2
-rw-r--r--bip-0105.mediawiki2
-rw-r--r--bip-0106.mediawiki4
-rw-r--r--bip-0107.mediawiki2
-rw-r--r--bip-0112.mediawiki2
-rw-r--r--bip-0115.mediawiki2
-rw-r--r--bip-0116.mediawiki145
-rw-r--r--bip-0117.mediawiki196
-rw-r--r--bip-0118.mediawiki144
-rw-r--r--bip-0119.mediawiki562
-rw-r--r--bip-0119/fifty.pngbin0 -> 399046 bytes
-rw-r--r--bip-0119/five.pngbin0 -> 334730 bytes
-rw-r--r--bip-0119/nic.svg1
-rw-r--r--bip-0119/pooledcoshv.pngbin0 -> 255491 bytes
-rwxr-xr-xbip-0119/simulation.py135
-rw-r--r--bip-0119/states.svg1
-rw-r--r--bip-0119/vaults.svg1
-rw-r--r--bip-0120.mediawiki2
-rw-r--r--bip-0121.mediawiki2
-rw-r--r--bip-0125.mediawiki8
-rw-r--r--bip-0127.mediawiki226
-rw-r--r--bip-0134.mediawiki2
-rw-r--r--bip-0136.mediawiki328
-rw-r--r--bip-0137.mediawiki135
-rw-r--r--bip-0140.mediawiki2
-rw-r--r--bip-0141.mediawiki5
-rw-r--r--bip-0142.mediawiki2
-rw-r--r--bip-0143.mediawiki14
-rw-r--r--bip-0144.mediawiki6
-rw-r--r--bip-0145.mediawiki2
-rw-r--r--bip-0147.mediawiki2
-rw-r--r--bip-0148.mediawiki2
-rw-r--r--bip-0149.mediawiki2
-rw-r--r--bip-0150.mediawiki2
-rw-r--r--bip-0151.mediawiki26
-rw-r--r--bip-0152.mediawiki4
-rw-r--r--bip-0154.mediawiki2
-rw-r--r--bip-0155.mediawiki189
-rw-r--r--bip-0156.mediawiki321
-rw-r--r--bip-0156/1-dandelion.pngbin0 -> 136499 bytes
-rw-r--r--bip-0156/2-attack.pngbin0 -> 96620 bytes
-rw-r--r--bip-0156/3-attack-plot.pngbin0 -> 71995 bytes
-rw-r--r--bip-0156/4-dandelion-plot.pngbin0 -> 55017 bytes
-rw-r--r--bip-0156/bitcoin.conf16
-rw-r--r--bip-0156/dandelion-debug-logs-example.pdfbin0 -> 41016 bytes
-rw-r--r--bip-0156/dandelion-reference-documentation.pdfbin0 -> 89864 bytes
-rw-r--r--bip-0157.mediawiki471
-rw-r--r--bip-0158.mediawiki443
-rw-r--r--bip-0158/gentestvectors.go301
-rw-r--r--bip-0158/go.mod7
-rw-r--r--bip-0158/go.sum54
-rw-r--r--bip-0158/testnet-19.json13
-rw-r--r--bip-0159.mediawiki64
-rw-r--r--bip-0173.mediawiki73
-rw-r--r--bip-0174.mediawiki840
-rw-r--r--bip-0174/coinjoin-workflow.svg655
-rw-r--r--bip-0174/coinjoin-workflow.tex59
-rw-r--r--bip-0174/multisig-workflow.svg894
-rw-r--r--bip-0174/multisig-workflow.tex102
-rw-r--r--bip-0175.mediawiki259
-rw-r--r--bip-0176.mediawiki57
-rw-r--r--bip-0178.mediawiki75
-rw-r--r--bip-0179.mediawiki58
-rw-r--r--bip-0197.mediawiki155
-rw-r--r--bip-0199.mediawiki3
-rw-r--r--bip-0300.mediawiki308
-rw-r--r--bip-0300/appendix-1.txt45
-rw-r--r--bip-0300/images.txt1
-rw-r--r--bip-0300/two-groups.pngbin0 -> 39695 bytes
-rw-r--r--bip-0301.mediawiki226
-rw-r--r--bip-0301/bmm-dots-examples.pngbin0 -> 41116 bytes
-rw-r--r--bip-0301/images.txt1
-rw-r--r--bip-0301/witness-vs-critical.pngbin0 -> 268309 bytes
-rw-r--r--bip-0310.mediawiki285
-rw-r--r--bip-0320.mediawiki68
-rw-r--r--bip-0322.mediawiki246
-rw-r--r--bip-0325.mediawiki105
-rw-r--r--bip-0330.mediawiki299
-rw-r--r--bip-0330/bisection.pngbin0 -> 60787 bytes
-rwxr-xr-xbip-0330/minisketch.py157
-rw-r--r--bip-0330/recon_scheme_merged.pngbin0 -> 113169 bytes
-rw-r--r--bip-0340.mediawiki272
-rw-r--r--bip-0340/reference.py239
-rw-r--r--bip-0340/speedup-batch.pngbin0 -> 11914 bytes
-rw-r--r--bip-0340/test-vectors.csv16
-rw-r--r--bip-0340/test-vectors.py262
-rw-r--r--bip-0341.mediawiki311
-rw-r--r--bip-0341/tree.pngbin0 -> 78937 bytes
-rw-r--r--bip-0342.mediawiki140
-rwxr-xr-xscripts/buildtable.pl7
-rwxr-xr-xscripts/link-format-chk.sh23
148 files changed, 15628 insertions, 256 deletions
diff --git a/.travis.yml b/.travis.yml
index ed99de0..70d339a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,7 @@
os: linux
language: generic
-sudo: false
script:
+ - scripts/link-format-chk.sh
- scripts/buildtable.pl >/tmp/table.mediawiki || exit 1
- diff README.mediawiki /tmp/table.mediawiki | grep '^[<>] |' >/tmp/after.diff || true
- if git checkout HEAD^ && scripts/buildtable.pl >/tmp/table.mediawiki 2>/dev/null; then diff README.mediawiki /tmp/table.mediawiki | grep '^[<>] |' >/tmp/before.diff || true; newdiff=$(diff -s /tmp/before.diff /tmp/after.diff -u | grep '^+'); if [ -n "$newdiff" ]; then echo "$newdiff"; exit 1; fi; else echo 'Cannot build previous commit table for comparison'; fi
diff --git a/README.mediawiki b/README.mediawiki
index 3b80b33..38e217a 100644
--- a/README.mediawiki
+++ b/README.mediawiki
@@ -1,4 +1,4 @@
-People wishing to submit BIPs, first should propose their idea or document to the mailing list. After discussion they should email Luke Dashjr &lt;luke_bipeditor@dashjr.org&gt;. After copy-editing and acceptance, it will be published here.
+People wishing to submit BIPs, first should propose their idea or document to the [https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev bitcoin-dev@lists.linuxfoundation.org] mailing list. After discussion, please open a PR. After copy-editing and acceptance, it will be published here.
We are fairly liberal with approving BIPs, and try not to be too involved in decision making on behalf of the community. The exception is in very rare cases of dispute resolution when a decision is contentious and cannot be agreed upon. In those cases, the conservative option will always be preferred.
@@ -27,13 +27,13 @@ Those proposing changes should consider that ultimately consent may rest with th
| Luke Dashjr
| Process
| Active
-|-
+|- style="background-color: #ffcfcf"
| [[bip-0008.mediawiki|8]]
|
-| Version bits 2017
+| Version bits with lock-in by height
| Shaolin Fry, Luke Dashjr
| Informational
-| Draft
+| Rejected
|- style="background-color: #cfffcf"
| [[bip-0009.mediawiki|9]]
|
@@ -104,13 +104,13 @@ Those proposing changes should consider that ultimately consent may rest with th
| Luke Dashjr
| Standard
| Proposed
-|-
+|- style="background-color: #ffcfcf"
| [[bip-0019.mediawiki|19]]
| Applications
| M-of-N Standard Transactions (Low SigOp)
| Luke Dashjr
| Standard
-| Draft
+| Rejected
|- style="background-color: #ffcfcf"
| [[bip-0020.mediawiki|20]]
| Applications
@@ -160,13 +160,13 @@ Those proposing changes should consider that ultimately consent may rest with th
| Pieter Wuille
| Informational
| Final
-|-
+|- style="background-color: #ffcfcf"
| [[bip-0033.mediawiki|33]]
| Peer Services
| Stratized Nodes
| Amir Taaki
| Standard
-| Draft
+| Rejected
|- style="background-color: #cfffcf"
| [[bip-0034.mediawiki|34]]
| Consensus (soft fork)
@@ -181,13 +181,13 @@ Those proposing changes should consider that ultimately consent may rest with th
| Jeff Garzik
| Standard
| Final
-|-
+|- style="background-color: #ffcfcf"
| [[bip-0036.mediawiki|36]]
| Peer Services
| Custom Services
| Stefan Thomas
| Standard
-| Draft
+| Rejected
|- style="background-color: #cfffcf"
| [[bip-0037.mediawiki|37]]
| Peer Services
@@ -223,20 +223,20 @@ Those proposing changes should consider that ultimately consent may rest with th
| Marek Palatinus
| Standard
| BIP number allocated
-|-
+|- style="background-color: #cfffcf"
| [[bip-0042.mediawiki|42]]
| Consensus (soft fork)
| A finite monetary supply for Bitcoin
| Pieter Wuille
| Standard
-| Draft
-|-
+| Final
+|- style="background-color: #cfffcf"
| [[bip-0043.mediawiki|43]]
| Applications
| Purpose Field for Deterministic Wallets
| Marek Palatinus, Pavol Rusnak
| Informational
-| Draft
+| Final
|- style="background-color: #ffffcf"
| [[bip-0044.mediawiki|44]]
| Applications
@@ -258,13 +258,13 @@ Those proposing changes should consider that ultimately consent may rest with th
| Justus Ranvier
| Informational
| Draft
-|-
+|- style="background-color: #cfffcf"
| [[bip-0049.mediawiki|49]]
| Applications
| Derivation scheme for P2WPKH-nested-in-P2SH based accounts
| Daniel Weigl
| Informational
-| Draft
+| Final
|- style="background-color: #cfffcf"
| [[bip-0050.mediawiki|50]]
|
@@ -301,13 +301,13 @@ Those proposing changes should consider that ultimately consent may rest with th
| Peter Todd
| Standard
| BIP number allocated
-|-
+|- style="background-color: #ffcfcf"
| [[bip-0064.mediawiki|64]]
| Peer Services
| getutxo message
| Mike Hearn
| Standard
-| Draft
+| Obsolete
|- style="background-color: #cfffcf"
| [[bip-0065.mediawiki|65]]
| Consensus (soft fork)
@@ -371,20 +371,27 @@ Those proposing changes should consider that ultimately consent may rest with th
| Stephen Pair
| Standard
| Final
-|-
+|- style="background-color: #ffcfcf"
| [[bip-0074.mediawiki|74]]
| Applications
| Allow zero value OP_RETURN in Payment Protocol
| Toby Padilla
| Standard
-| Draft
-|-
+| Rejected
+|- style="background-color: #cfffcf"
| [[bip-0075.mediawiki|75]]
| Applications
| Out of Band Address Exchange using Payment Protocol Encryption
| Justin Newton, Matt David, Aaron Voisine, James MacWhyte
| Standard
-| Draft
+| Final
+|- style="background-color: #ffffcf"
+| [[bip-0079.mediawiki|79]]
+| Applications
+| Bustapay :: a practical coinjoin protocol
+| Ryan Havar
+| Informational
+| Proposed
|-
| [[bip-0080.mediawiki|80]]
|
@@ -407,26 +414,54 @@ Those proposing changes should consider that ultimately consent may rest with th
| Standard
| Draft
|-
+| [[bip-0084.mediawiki|84]]
+| Applications
+| Derivation scheme for P2WPKH based accounts
+| Pavol Rusnak
+| Informational
+| Draft
+|-
+| [[bip-0085.mediawiki|85]]
+| Applications
+| Deterministic Entropy From BIP32 Keychains
+| Ethan Kosakovsky
+| Informational
+| Draft
+|-
| [[bip-0090.mediawiki|90]]
-| Consensus (hard fork)
+|
| Buried Deployments
| Suhas Daftuar
| Informational
| Draft
-|-
+|- style="background-color: #cfffcf"
| [[bip-0091.mediawiki|91]]
| Consensus (soft fork)
| Reduced threshold Segwit MASF
| James Hilliard
| Standard
-| Draft
+| Final
|-
+| [[bip-0098.mediawiki|98]]
+| Consensus (soft fork)
+| Fast Merkle Trees
+| Mark Friedenbach, Kalle Alm, BtcDrak
+| Standard
+| Draft
+|- style="background-color: #ffcfcf"
| [[bip-0099.mediawiki|99]]
|
| Motivation and deployment of consensus rule changes ([soft/hard]forks)
| Jorge Timón
| Informational
-| Draft
+| Rejected
+|- style="background-color: #ffcfcf"
+| [[bip-0100.mediawiki|100]]
+| Consensus (hard fork)
+| Dynamic maximum block size by miner vote
+| Jeff Garzik, Tom Harding, Dagur Valberg Johannsson
+| Standard
+| Rejected
|- style="background-color: #ffcfcf"
| [[bip-0101.mediawiki|101]]
| Consensus (hard fork)
@@ -434,48 +469,48 @@ Those proposing changes should consider that ultimately consent may rest with th
| Gavin Andresen
| Standard
| Withdrawn
-|-
+|- style="background-color: #ffcfcf"
| [[bip-0102.mediawiki|102]]
| Consensus (hard fork)
| Block size increase to 2MB
| Jeff Garzik
| Standard
-| Draft
-|-
+| Rejected
+|- style="background-color: #ffcfcf"
| [[bip-0103.mediawiki|103]]
| Consensus (hard fork)
| Block size following technological growth
| Pieter Wuille
| Standard
-| Draft
-|-
+| Withdrawn
+|- style="background-color: #ffcfcf"
| [[bip-0104.mediawiki|104]]
| Consensus (hard fork)
| 'Block75' - Max block size like difficulty
| t.khan
| Standard
-| Draft
-|-
+| Rejected
+|- style="background-color: #ffcfcf"
| [[bip-0105.mediawiki|105]]
| Consensus (hard fork)
| Consensus based block size retargeting algorithm
| BtcDrak
| Standard
-| Draft
-|-
+| Rejected
+|- style="background-color: #ffcfcf"
| [[bip-0106.mediawiki|106]]
| Consensus (hard fork)
| Dynamically Controlled Bitcoin Block Size Max Cap
| Upal Chakraborty
| Standard
-| Draft
-|-
+| Rejected
+|- style="background-color: #ffcfcf"
| [[bip-0107.mediawiki|107]]
| Consensus (hard fork)
| Dynamic limit on the block size
| Washington Y. Sanchez
| Standard
-| Draft
+| Rejected
|- style="background-color: #ffcfcf"
| [[bip-0109.mediawiki|109]]
| Consensus (hard fork)
@@ -519,19 +554,47 @@ Those proposing changes should consider that ultimately consent may rest with th
| Standard
| Draft
|-
+| [[bip-0116.mediawiki|116]]
+| Consensus (soft fork)
+| MERKLEBRANCHVERIFY
+| Mark Friedenbach, Kalle Alm, BtcDrak
+| Standard
+| Draft
+|-
+| [[bip-0117.mediawiki|117]]
+| Consensus (soft fork)
+| Tail Call Execution Semantics
+| Mark Friedenbach, Kalle Alm, BtcDrak
+| Standard
+| Draft
+|-
+| [[bip-0118.mediawiki|118]]
+| Consensus (soft fork)
+| SIGHASH_NOINPUT
+| Christian Decker
+| Standard
+| Draft
+|-
+| [[bip-0119.mediawiki|119]]
+| Consensus (soft fork)
+| CHECKTEMPLATEVERIFY
+| Jeremy Rubin
+| Standard
+| Draft
+|- style="background-color: #ffcfcf"
| [[bip-0120.mediawiki|120]]
| Applications
| Proof of Payment
| Kalle Rosenbaum
| Standard
-| Draft
-|-
+| Withdrawn
+|- style="background-color: #ffcfcf"
| [[bip-0121.mediawiki|121]]
| Applications
| Proof of Payment URI scheme
| Kalle Rosenbaum
| Standard
-| Draft
+| Withdrawn
|-
| [[bip-0122.mediawiki|122]]
| Applications
@@ -567,6 +630,13 @@ Those proposing changes should consider that ultimately consent may rest with th
| Kristov Atlas
| Informational
| Draft
+|-
+| [[bip-0127.mediawiki|127]]
+| Applications
+| Simple Proof-of-Reserves Transactions
+| Steven Roose
+| Standard
+| Draft
|- style="background-color: #ffffcf"
| [[bip-0130.mediawiki|130]]
| Peer Services
@@ -610,47 +680,61 @@ Those proposing changes should consider that ultimately consent may rest with th
| Informational
| Draft
|-
+| [[bip-0136.mediawiki|136]]
+| Applications
+| Bech32 Encoded Tx Position References
+| Велеслав, Jonas Schnelli, Daniel Pape
+| Informational
+| Draft
+|- style="background-color: #cfffcf"
+| [[bip-0137.mediawiki|137]]
+| Applications
+| Signatures of Messages using Private Keys
+| Christopher Gilliard
+| Standard
+| Final
+|-
| [[bip-0140.mediawiki|140]]
| Consensus (soft fork)
| Normalized TXID
| Christian Decker
| Standard
| Draft
-|-
+|- style="background-color: #cfffcf"
| [[bip-0141.mediawiki|141]]
| Consensus (soft fork)
| Segregated Witness (Consensus layer)
| Eric Lombrozo, Johnson Lau, Pieter Wuille
| Standard
-| Draft
-|-
+| Final
+|- style="background-color: #ffcfcf"
| [[bip-0142.mediawiki|142]]
| Applications
| Address Format for Segregated Witness
| Johnson Lau
| Standard
-| Deferred
-|-
+| Withdrawn
+|- style="background-color: #cfffcf"
| [[bip-0143.mediawiki|143]]
| Consensus (soft fork)
| Transaction Signature Verification for Version 0 Witness Program
| Johnson Lau, Pieter Wuille
| Standard
-| Draft
-|-
+| Final
+|- style="background-color: #cfffcf"
| [[bip-0144.mediawiki|144]]
| Peer Services
| Segregated Witness (Peer Services)
| Eric Lombrozo, Pieter Wuille
| Standard
-| Draft
-|-
+| Final
+|- style="background-color: #cfffcf"
| [[bip-0145.mediawiki|145]]
| API/RPC
| getblocktemplate Updates for Segregated Witness
| Luke Dashjr
| Standard
-| Draft
+| Final
|-
| [[bip-0146.mediawiki|146]]
| Consensus (soft fork)
@@ -658,27 +742,27 @@ Those proposing changes should consider that ultimately consent may rest with th
| Johnson Lau, Pieter Wuille
| Standard
| Draft
-|-
+|- style="background-color: #cfffcf"
| [[bip-0147.mediawiki|147]]
| Consensus (soft fork)
| Dealing with dummy stack element malleability
| Johnson Lau
| Standard
-| Draft
-|-
+| Final
+|- style="background-color: #cfffcf"
| [[bip-0148.mediawiki|148]]
| Consensus (soft fork)
| Mandatory activation of segwit deployment
| Shaolin Fry
| Standard
-| Draft
-|-
+| Final
+|- style="background-color: #ffcfcf"
| [[bip-0149.mediawiki|149]]
| Consensus (soft fork)
| Segregated Witness (second deployment)
| Shaolin Fry
| Standard
-| Draft
+| Withdrawn
|-
| [[bip-0150.mediawiki|150]]
| Peer Services
@@ -686,26 +770,61 @@ Those proposing changes should consider that ultimately consent may rest with th
| Jonas Schnelli
| Standard
| Draft
-|-
+|- style="background-color: #ffcfcf"
| [[bip-0151.mediawiki|151]]
| Peer Services
| Peer-to-Peer Communication Encryption
| Jonas Schnelli
| Standard
-| Draft
-|-
+| Withdrawn
+|- style="background-color: #cfffcf"
| [[bip-0152.mediawiki|152]]
| Peer Services
| Compact Block Relay
| Matt Corallo
| Standard
-| Draft
-|-
+| Final
+|- style="background-color: #ffcfcf"
| [[bip-0154.mediawiki|154]]
| Peer Services
| Rate Limiting via peer specified challenges
| Karl-Johan Alm
| Standard
+| Withdrawn
+|-
+| [[bip-0155.mediawiki|155]]
+| Peer Services
+| addrv2 message
+| Wladimir J. van der Laan
+| Standard
+| Draft
+|-
+| [[bip-0156.mediawiki|156]]
+| Peer Services
+| Dandelion - Privacy Enhancing Routing
+| Brad Denby, Andrew Miller, Giulia Fanti, Surya Bakshi, Shaileshh Bojja Venkatakrishnan, Pramod Viswanath
+| Standard
+| Draft
+|-
+| [[bip-0157.mediawiki|157]]
+| Peer Services
+| Client Side Block Filtering
+| Olaoluwa Osuntokun, Alex Akselrod, Jim Posen
+| Standard
+| Draft
+|-
+| [[bip-0158.mediawiki|158]]
+| Peer Services
+| Compact Block Filters for Light Clients
+| Olaoluwa Osuntokun, Alex Akselrod
+| Standard
+| Draft
+|-
+| [[bip-0159.mediawiki|159]]
+| Peer Services
+| NODE_NETWORK_LIMITED service bit
+| Jonas Schnelli
+| Standard
| Draft
|-
| [[bip-0171.mediawiki|171]]
@@ -714,12 +833,47 @@ Those proposing changes should consider that ultimately consent may rest with th
| Luke Dashjr
| Standard
| Draft
-|-
+|- style="background-color: #cfffcf"
| [[bip-0173.mediawiki|173]]
| Applications
| Base32 address format for native v0-16 witness outputs
| Pieter Wuille, Greg Maxwell
| Informational
+| Final
+|- style="background-color: #ffffcf"
+| [[bip-0174.mediawiki|174]]
+| Applications
+| Partially Signed Bitcoin Transaction Format
+| Andrew Chow
+| Standard
+| Proposed
+|-
+| [[bip-0175.mediawiki|175]]
+| Applications
+| Pay to Contract Protocol
+| Omar Shibli, Nicholas Gregory
+| Informational
+| Draft
+|-
+| [[bip-0176.mediawiki|176]]
+|
+| Bits Denomination
+| Jimmy Song
+| Informational
+| Draft
+|-
+| [[bip-0178.mediawiki|178]]
+| Applications
+| Version Extended WIF
+| Karl-Johan Alm
+| Standard
+| Draft
+|-
+| [[bip-0179.mediawiki|179]]
+|
+| Name for payment recipient identifiers
+| Emil Engler, MarcoFalke, Luke Dashjr
+| Informational
| Draft
|-
| [[bip-0180.mediawiki|180]]
@@ -729,12 +883,89 @@ Those proposing changes should consider that ultimately consent may rest with th
| Standard
| Draft
|-
+| [[bip-0197.mediawiki|197]]
+| Applications
+| Hashed Time-Locked Collateral Contract
+| Matthew Black, Tony Cai
+| Standard
+| Draft
+|-
| [[bip-0199.mediawiki|199]]
| Applications
| Hashed Time-Locked Contract transactions
| Sean Bowe, Daira Hopwood
| Standard
| Draft
+|-
+| [[bip-0300.mediawiki|300]]
+| Consensus (soft fork)
+| Hashrate Escrows (Consensus layer)
+| Paul Sztorc, CryptAxe
+| Standard
+| Draft
+|-
+| [[bip-0301.mediawiki|301]]
+| Consensus (soft fork)
+| Blind Merged Mining (Consensus layer)
+| Paul Sztorc, CryptAxe
+| Standard
+| Draft
+|-
+| [[bip-0310.mediawiki|310]]
+| Applications
+| Stratum protocol extensions
+| Pavel Moravec, Jan Čapek
+| Informational
+| Draft
+|-
+| [[bip-0320.mediawiki|320]]
+|
+| nVersion bits for general purpose use
+| BtcDrak
+| Standard
+| Draft
+|-
+| [[bip-0322.mediawiki|322]]
+| Applications
+| Generic Signed Message Format
+| Karl-Johan Alm
+| Standard
+| Draft
+|-
+| [[bip-0325.mediawiki|325]]
+| Applications
+| Signet
+| Karl-Johan Alm
+| Standard
+| Draft
+|-
+| [[bip-0330.mediawiki|330]]
+| Peer Services
+| Transaction announcements reconciliation
+| Gleb Naumenko, Pieter Wuille
+| Standard
+| Draft
+|-
+| [[bip-0340.mediawiki|340]]
+|
+| Schnorr Signatures for secp256k1
+| Pieter Wuille, Jonas Nick, Tim Ruffing
+| Standard
+| Draft
+|-
+| [[bip-0341.mediawiki|341]]
+| Consensus (soft fork)
+| Taproot: SegWit version 1 spending rules
+| Pieter Wuille, Jonas Nick, Anthony Towns
+| Standard
+| Draft
+|-
+| [[bip-0342.mediawiki|342]]
+| Consensus (soft fork)
+| Validation of Taproot Scripts
+| Pieter Wuille, Jonas Nick, Anthony Towns
+| Standard
+| Draft
|}
<!-- IMPORTANT! See the instructions at the top of this page, do NOT JUST add BIPs here! -->
diff --git a/bip-0002.mediawiki b/bip-0002.mediawiki
index ea60d1d..3bf5aec 100644
--- a/bip-0002.mediawiki
+++ b/bip-0002.mediawiki
@@ -208,7 +208,7 @@ Peer services BIPs should be observed to be adopted by at least 1% of public lis
API/RPC and application layer BIPs must be implemented by at least two independent and compatible software applications.
-Software authors are encouraged to publish summaries of what BIPs their software supports to aid in verification of status changes. Good examples of this at the time of writing this BIP, can be observed in [https://github.com/bitcoin/bitcoin/blob/master/doc/bips.md Bitcoin Core's doc/bips.md file] as well as [https://github.com/schildbach/bitcoin-wallet/blob/master/wallet/README.specs Bitcoin Wallet for Android's wallet/README.specs file].
+Software authors are encouraged to publish summaries of what BIPs their software supports to aid in verification of status changes. Good examples of this at the time of writing this BIP, can be observed in [https://github.com/bitcoin/bitcoin/blob/master/doc/bips.md Bitcoin Core's doc/bips.md file] as well as [https://github.com/bitcoin-wallet/bitcoin-wallet/blob/master/wallet/README.specs.md Bitcoin Wallet for Android's wallet/README.specs.md file].
These criteria are considered objective ways to observe the de facto adoption of the BIP, and are not to be used as reasons to oppose or reject a BIP. Should a BIP become actually and unambiguously adopted despite not meeting the criteria outlined here, it should still be updated to Final status.
@@ -240,7 +240,7 @@ What if a single merchant wishes to block a hard-fork?
How about a small number of merchants (maybe only two) who sell products to each other?
-* In this scenario, it would seem the previous Bitcoin is alive any working, and that the hard-fork has failed. How to resolve such a split is outside the scope of this BIP.
+* In this scenario, it would seem the previous Bitcoin is alive and working, and that the hard-fork has failed. How to resolve such a split is outside the scope of this BIP.
How can economic agreement veto a soft-fork?
diff --git a/bip-0008.mediawiki b/bip-0008.mediawiki
index 26e8572..a9299f7 100644
--- a/bip-0008.mediawiki
+++ b/bip-0008.mediawiki
@@ -1,11 +1,11 @@
<pre>
BIP: 8
- Title: Version bits 2017
+ Title: Version bits with lock-in by height
Author: Shaolin Fry <shaolinfry@protonmail.ch>
Luke Dashjr <luke+bip@dashjr.org>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0008
- Status: Draft
+ Status: Rejected
Type: Informational
Created: 2017-02-01
License: BSD-3-Clause
@@ -18,23 +18,27 @@ This document specifies an alternative to [[bip-0009.mediawiki|BIP9]] that corre
Block heights are used for start and timeout rather than POSIX timestamps.
It additionally introduces an additional activation parameter to guarantee activation of backward-compatible changes (further called "soft forks").
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
+
==Motivation==
-BIP9 introduced a mechanism for doing parallel soft forking deployments based on repurposing the block nVersion field. Activation is dependent on near unanimous hashrate signalling which may be impractical and is also subject to veto by a small minority of non-signalling hashrate.
+BIP9 introduced a mechanism for doing parallel soft forking deployments based on repurposing the block nVersion field. Activation is dependent on near unanimous hashrate signalling which may be impractical and result in veto by a small minority of non-signalling hashrate. Super majority hashrate based activation triggers allow for accelerated activation where the majority hash power enforces the new rules in lieu of full nodes upgrading. Since all consensus rules are ultimately enforced by full nodes, eventually any new soft fork will be enforced by the economy. This proposal combines these two aspects to provide eventual flag day activation after a reasonable time (recommended a year), as well as for accelerated activation by majority of hash rate before the flag date.
Due to using timestamps rather than block heights, it was found to be a risk that a sudden loss of siginificant hashrate could interfere with a late activation.
-This specification provides a way to optionally guarantee lock-in at the end of the [[bip-0009.mediawiki|BIP9]] timeout, and therefore activation, while still allowing a hashrate super majority to trigger activation earlier.
+Block time is somewhat unreliable and may be intentionally or unintentionally inaccurate, so thresholds based on block time are not ideal. Secondly, BIP9 specified triggers based on the first retarget after a given time, which is non-intuitive. Since each new block must increase the height by one, thresholds based on block height are much more reliable and intuitive and can be calculated exactly for difficulty retarget.
==Specification==
+===Parameters===
+
Each soft fork deployment is specified by the following per-chain parameters (further elaborated below):
# The '''name''' specifies a very brief description of the soft fork, reasonable for use as an identifier. For deployments described in a single BIP, it is recommended to use the name "bipN" where N is the appropriate BIP number.
# The '''bit''' determines which bit in the nVersion field of the block is to be used to signal the soft fork lock-in and activation. It is chosen from the set {0,1,2,...,28}.
-# The '''start''' specifies the height of the first block at which the bit gains its meaning.
-# The '''timeout''' specifies a block height at which the miner signalling ends. Once this height has been reached, if the soft fork has not yet locked in (excluding this block's bit state), the deployment is either considered failed on all descendants of the block (but see the exception during '''FAILING''' state), or, if '''lockinontimeout'' is true, transitions to the '''LOCKED_IN''' state.
-# The '''lockinontimeout''' boolean if set to true, will transition state to '''LOCKED_IN''' at timeout if not already '''LOCKED_IN''' or '''ACTIVE'''.
+# The '''startheight''' specifies the height of the first block at which the bit gains its meaning.
+# The '''timeoutheight''' specifies a block height at which the miner signalling ends. Once this height has been reached, if the soft fork has not yet locked in (excluding this block's bit state), the deployment is either considered failed on all descendants of the block (but see the exception during '''FAILING''' state), or, if '''lockinontimeout'' is true, transitions to the '''LOCKED_IN''' state.
+# The '''lockinontimeout''' boolean if set to true, will transition state to '''LOCKED_IN''' at timeoutheight if not already '''LOCKED_IN''' or '''ACTIVE'''.
===Selection guidelines===
@@ -42,19 +46,19 @@ The following guidelines are suggested for selecting these parameters for a soft
# '''name''' should be selected such that no two softforks, concurrent or otherwise, ever use the same name.
# '''bit''' should be selected such that no two concurrent softforks use the same bit.
-# '''start''' should be set to some block height in the future, approximately one month after a software release date including the soft fork. This allows for some release delays, while preventing triggers as a result of parties running pre-release software, and ensures a reasonable number of full nodes have upgraded prior to activation. It should be rounded up to the next height which begins a retarget period.
-# '''timeout''' should be approximately 1 year after start, and on a block which begins a retarget period. Therefore, '''start''' plus 52416.
+# '''startheight''' should be set to some block height in the future, approximately 30 days (or 4320 blocks) after a software release date including the soft fork. This allows for some release delays, while preventing triggers as a result of parties running pre-release software, and ensures a reasonable number of full nodes have upgraded prior to activation. It should be rounded up to the next height which begins a retarget period for simplicity.
+# '''timeoutheight''' should be 1 year, or 52416 blocks (26 retarget intervals) after '''startheight'''.
# '''lockinontimeout''' should be set to true for any softfork that is expected or found to have political opposition from a non-negligable percent of miners. (It can be set after the initial deployment, but cannot be cleared once set.)
-A later deployment using the same bit is possible as long as the start is after the previous one's
-timeout or activation, but it is discouraged until necessary, and even then recommended to have a pause in between to detect buggy software.
+A later deployment using the same bit is possible as long as the startheight is after the previous one's
+timeoutheight or activation, but it is discouraged until necessary, and even then recommended to have a pause in between to detect buggy software.
===States===
With each block and soft fork, we associate a deployment state. The possible states are:
# '''DEFINED''' is the first state that each soft fork starts out as. The genesis block is by definition in this state for each deployment.
-# '''STARTED''' for blocks at or beyond the start height.
+# '''STARTED''' for blocks at or beyond the startheight.
# '''LOCKED_IN''' for one retarget period after the first retarget period with STARTED blocks of which at least threshold have the associated bit set in nVersion, or for one retarget period after the timeout when '''lockinontimeout''' is true.
# '''ACTIVE''' for all blocks after the LOCKED_IN retarget period.
# '''FAILING''' for one retarget period after the timeout, if LOCKED_IN was not reached and '''lockinontimeout''' is false.
@@ -85,6 +89,8 @@ The new consensus rules for each soft fork are enforced for each block that has
<img src="bip-0008/states.png" align="middle"></img>
+During the STARTED state if the '''lockinontimeout''' is set to true, the state will transition to LOCKED_IN when '''timeoutheight''' is reached.
+
The genesis block has state DEFINED for each deployment, by definition.
State GetStateForBlock(block) {
@@ -104,13 +110,13 @@ Otherwise, the next state depends on the previous state:
switch (GetStateForBlock(GetAncestorAtHeight(block, block.height - 2016))) {
-We remain in the initial state until either we pass the start height or the timeout.
+We remain in the initial state until either we pass the start block height or the timeout height.
case DEFINED:
- if (block.height >= timeout) {
+ if (block.height >= timeoutheight) {
return (lockinontimeout == true) ? LOCKED_IN : FAILING;
}
- if (block.height >= start) {
+ if (block.height >= startheight) {
return STARTED;
}
return DEFINED;
@@ -125,9 +131,9 @@ other one simultaneously transitions to STARTED, which would mean both would dem
Note that a block's state never depends on its own nVersion; only on that of its ancestors.
case STARTED:
- if (block.height >= timeout) {
+ if (block.height >= timeoutheight) {
return (lockinontimeout == true) ? LOCKED_IN : FAILING;
- }
+
int count = 0;
walk = block;
for (i = 0; i < 2016; i++) {
@@ -184,11 +190,43 @@ To support upgrade warnings, an extra "unknown upgrade" is tracked, using the "i
===getblocktemplate changes===
-BIP 8 is compatible with and reuses the GBT changes from BIP 9.
+The template request Object is extended to include a new item:
+
+{| class="wikitable"
+!colspan=4| template request
+|-
+! Key !! Required !! Type !! Description
+|-
+| rules || No || Array of Strings || list of supported softfork deployments, by name
+|}
+
+The template Object is also extended:
+
+{| class="wikitable"
+!colspan=4| template
+|-
+! Key !! Required !! Type !! Description
+|-
+| rules || Yes || Array of Strings || list of softfork deployments, by name, that are active state
+|-
+| vbavailable || Yes || Object || set of pending, supported softfork deployments; each uses the softfork name as the key, and the softfork bit as its value
+|-
+| vbrequired || No || Number || bit mask of softfork deployment version bits the server requires enabled in submissions
+|}
+
+The "version" key of the template is retained, and used to indicate the server's preference of deployments.
+If versionbits is being used, "version" MUST be within the versionbits range of [0x20000000...0x3FFFFFFF].
+Miners MAY clear or set bits in the block version WITHOUT any special "mutable" key, provided they are listed among the template's "vbavailable" and (when clearing is desired) NOT included as a bit in "vbrequired".
+
+Softfork deployment names listed in "rules" or as keys in "vbavailable" may be prefixed by a '!' character.
+Without this prefix, GBT clients may assume the rule will not impact usage of the template as-is; typical examples of this would be when previously valid transactions cease to be valid, such as BIPs 16, 65, 66, 68, 112, and 113.
+If a client does not understand a rule without the prefix, it may use it unmodified for mining.
+On the other hand, when this prefix is used, it indicates a more subtle change to the block structure or generation transaction; examples of this would be BIP 34 (because it modifies coinbase construction) and 141 (since it modifies the txid hashing and adds a commitment to the generation transaction).
+A client that does not understand a rule prefixed by '!' must not attempt to process the template, and must not attempt to use it for mining even unmodified.
=== Reference implementation ===
-https://github.com/bitcoin/bitcoin/compare/master...shaolinfry:bip-uaversionbits
+https://github.com/bitcoin/bitcoin/compare/master...shaolinfry:bip8-height
==Contrasted with BIP 9==
@@ -198,7 +236,7 @@ https://github.com/bitcoin/bitcoin/compare/master...shaolinfry:bip-uaversionbits
==Backwards compatibility==
-BIP8 and BIP9 deployments should not share concurrent active deployment bits. Nodes that only implement BIP9 will not activate a BIP8 soft fork if hashpower threshold is not reached by '''timeout''', however, those nodes will still accept the blocks generated by activated nodes.
+BIP8 and BIP9 deployments should not share concurrent active deployment bits. Nodes that only implement BIP9 will not activate a BIP8 soft fork if hashpower threshold is not reached by '''timeoutheight''', however, those nodes will still accept the blocks generated by activated nodes.
==Deployments==
diff --git a/bip-0008/states.png b/bip-0008/states.png
index f4acde1..0e2ff02 100644
--- a/bip-0008/states.png
+++ b/bip-0008/states.png
Binary files differ
diff --git a/bip-0008/states.svg b/bip-0008/states.svg
index 07a0ab8..1824064 100644
--- a/bip-0008/states.svg
+++ b/bip-0008/states.svg
@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 848 464" width="848" height="464">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 848 464" width="905" height="495">
<defs>
<style type="text/css"><![CDATA[
rect {
@@ -25,18 +25,18 @@
<text x="176" y="72" font-size="20" text-anchor="middle">DEFINED</text>
<path d="M 128 80 a 24 32 0 1 1 0 -32"/><!-- loop -->
<path d="M 176 80 l 0 96"/>
- <text x="160" y="128" font-size="12" text-anchor="end">start &lt;= height &lt; timeout</text>
+ <text x="182" y="128" font-size="12" text-anchor="start">startheight &lt;= height &lt; timeoutheight</text>
<rect x="112" y="176" width="128" height="32"/>
<text x="176" y="200" font-size="20" text-anchor="middle">STARTED</text>
<path d="M 128 208 a 24 32 0 1 1 0 -32"/><!-- loop -->
<path d="M 176 208 l 0 96"/>
- <text x="192" y="232" font-size="12" text-anchor="start">(lockinontimeout == false) AND (height &lt; timeout) AND (threshold reached)</text>
+ <text x="182" y="232" font-size="12" text-anchor="start">(lockinontimeout == false) AND (height &lt; timeoutheight) AND (threshold reached)</text>
<text x="304" y="256" font-size="12" text-anchor="start">OR</text>
- <text x="192" y="280" font-size="12" text-anchor="start">(lockinontimeout == true) AND ((height &gt;= timeout) OR (threshold reached))</text>
+ <text x="182" y="280" font-size="12" text-anchor="start">(lockinontimeout == true) AND ((height &gt;= timeoutheight) OR (threshold reached))</text>
<rect x="112" y="304" width="128" height="32"/>
<text x="176" y="328" font-size="20" text-anchor="middle">LOCKED_IN</text>
<path d="M 176 336 l 0 48"/>
- <text x="192" y="360" font-size="12" text-anchor="start">Always</text>
+ <text x="182" y="360" font-size="12" text-anchor="start">Always</text>
<rect x="112" y="384" width="128" height="32"/>
<text x="176" y="408" font-size="20" text-anchor="middle">ACTIVE</text>
<path d="M 128 416 a 24 32 0 1 1 0 -32"/><!-- loop -->
@@ -44,9 +44,9 @@
<rect x="640" y="176" width="128" height="32"/>
<text x="704" y="200" font-size="20" text-anchor="middle">FAILING</text>
<path d="M 240 64 l 400 112"/>
- <text x="440" y="108" font-size="12" text-anchor="start">timeout &lt;= height</text>
+ <text x="440" y="108" font-size="12" text-anchor="start">timeoutheight &lt;= height</text>
<path d="M 240 192 l 400 0"/>
- <text x="408" y="184" font-size="12" text-anchor="middle">(lockinontimeout == false) AND (timeout &lt;= height)</text>
+ <text x="408" y="184" font-size="12" text-anchor="middle">(lockinontimeout == false) AND (timeoutheight &lt;= height)</text>
<path d="M 704 208 l 0 176"/>
<text x="720" y="296" font-size="12" text-anchor="start">NOT all blocks signal</text>
<path d="M 656 208 c 0 196 -416 176 -416 176"/>
diff --git a/bip-0009.mediawiki b/bip-0009.mediawiki
index 11e3505..a68bb80 100644
--- a/bip-0009.mediawiki
+++ b/bip-0009.mediawiki
@@ -113,7 +113,7 @@ referred to as MTP in the diagram above, and is treated as a monotonic clock def
After a period in the STARTED state, if we're past the timeout, we switch to FAILED. If not, we tally the bits set,
and transition to LOCKED_IN if a sufficient number of blocks in the past period set the deployment bit in their
version numbers. The threshold is ≥1916 blocks (95% of 2016), or ≥1512 for testnet (75% of 2016).
-The transition to FAILED takes precendence, as otherwise an ambiguity can arise.
+The transition to FAILED takes precedence, as otherwise an ambiguity can arise.
There could be two non-overlapping deployments on the same bit, where the first one transitions to LOCKED_IN while the
other one simultaneously transitions to STARTED, which would mean both would demand setting the bit.
diff --git a/bip-0009/assignments.mediawiki b/bip-0009/assignments.mediawiki
index 6a12e79..c6a8f00 100644
--- a/bip-0009/assignments.mediawiki
+++ b/bip-0009/assignments.mediawiki
@@ -29,7 +29,7 @@ State can be defined, active, failed. Dates are in UTC.
| 1
| 2016-11-15 00:00:00
| 2017-11-15 00:00:00
-| -
+| active since #481824
| 2016-05-01 00:00:00
| 2017-05-01 00:00:00
| active since #834624
diff --git a/bip-0011.mediawiki b/bip-0011.mediawiki
index bb0a308..8375f55 100644
--- a/bip-0011.mediawiki
+++ b/bip-0011.mediawiki
@@ -23,7 +23,7 @@ A couple of motivating use cases:
* A wallet secured by a "wallet protection service" (WPS). 2-of-2 signatures required transactions will be used, with one signature coming from the (possibly compromised) computer with the wallet and the second signature coming from the WPS. When sending protected bitcoins, the user's bitcoin client will contact the WPS with the proposed transaction and it can then contact the user for confirmation that they initiated the transaction and that the transaction details are correct. Details for how clients and WPS's communicate are outside the scope of this BIP. Side note: customers should insist that their wallet protection service provide them with copies of the private key(s) used to secure their wallets that they can safely store off-line, so that their coins can be spent even if the WPS goes out of business.
-* Three-party escrow (buyer, seller and trusted dispute agent). 2-of-3 signatures required transactions will be used. The buyer and seller and agent will each provide a public key, and the buyer will then send coins into a 2-of-3 CHECKMULTISIG transaction and send the seller and the agent the transaction id. The seller will fulfill their obligation and then ask the buyer to co-sign a transaction ( already signed by seller ) that sends the tied-up coins to him (seller).<br />If the buyer and seller cannot agree, then the agent can, with the cooperation of either buyer or seller, decide what happens to the tied-up coins. Details of how buyer, seller, and agent communicate to gather signatures or public keys are outside the scope of this BIP.
+* Three-party escrow (buyer, seller, and trusted dispute agent). 2-of-3 signatures required transactions will be used. The buyer and seller and agent will each provide a public key, and the buyer will then send coins into a 2-of-3 CHECKMULTISIG transaction and send the seller and the agent the transaction id. The seller will fulfill their obligation and then ask the buyer to co-sign a transaction ( already signed by seller ) that sends the tied-up coins to him (seller).<br />If the buyer and seller cannot agree, then the agent can, with the cooperation of either buyer or seller, decide what happens to the tied-up coins. Details of how buyer, seller, and agent communicate to gather signatures or public keys are outside the scope of this BIP.
==Specification==
@@ -38,7 +38,7 @@ OP_CHECKMULTISIG transactions are redeemed using a standard scriptSig:
(OP_0 is required because of a bug in OP_CHECKMULTISIG; it pops one too many items off the execution stack, so a dummy value must be placed on the stack).
-The current Satoshi bitcoin client does not relay or mine transactions with scriptSigs larger than 200 bytes; to accomodate 3-signature transactions, this will be increased to 500 bytes.
+The current Satoshi bitcoin client does not relay or mine transactions with scriptSigs larger than 200 bytes; to accommodate 3-signature transactions, this will be increased to 500 bytes.
==Rationale==
diff --git a/bip-0013.mediawiki b/bip-0013.mediawiki
index 9805ed0..70be90d 100644
--- a/bip-0013.mediawiki
+++ b/bip-0013.mediawiki
@@ -14,7 +14,7 @@
This BIP describes a new type of Bitcoin address to support arbitrarily complex transactions. Complexity in this context is defined as what information is needed by the recipient to respend the received coins, in contrast to needing a single ECDSA private key as in current implementations of Bitcoin.
-In essence, an address encoded under this proposal represents the encoded hash of a [[script]], rather than the encoded hash of an ECDSA public key.
+In essence, an address encoded under this proposal represents the encoded hash of a [https://en.bitcoin.it/wiki/Script script], rather than the encoded hash of an ECDSA public key.
==Motivation==
@@ -22,7 +22,7 @@ Enable "end-to-end" secure wallets and payments to fund escrow transactions or o
==Specification==
-The new bitcoin address type is constructed in the same manner as existing bitcoin addresses (see [[Base58Check encoding]]):
+The new bitcoin address type is constructed in the same manner as existing bitcoin addresses (see [https://en.bitcoin.it/Base58Check_encoding Base58Check encoding]):
base58-encode: [one-byte version][20-byte hash][4-byte checksum]
@@ -50,7 +50,7 @@ This proposal is not backwards compatible, but it fails gracefully-- if an older
==Reference Implementation==
-See base58.cpp1/base58.h at https://github.com/bitcoin/bitcoin/src
+See base58.cpp/base58.h at https://github.com/bitcoin/bitcoin/tree/master/src
==See Also==
diff --git a/bip-0016.mediawiki b/bip-0016.mediawiki
index d5d39ef..0f4fb81 100644
--- a/bip-0016.mediawiki
+++ b/bip-0016.mediawiki
@@ -40,7 +40,7 @@ The rules for validating these outpoints when relaying transactions or consideri
# Normal validation is done: an initial stack is created from the signatures and {serialized script}, and the hash of the script is computed and validation fails immediately if it does not match the hash in the outpoint.
# {serialized script} is popped off the initial stack, and the transaction is validated again using the popped stack and the deserialized script as the scriptPubKey.
-These new rules should only be applied when validating transactions in blocks with timestamps >= 1333238400 (Apr 1 2012) <ref>[https://github.com/bitcoin/bitcoin/commit/8f188ece3c82c4cf5d52a3363e7643c23169c0ff Remove -bip16 and -paytoscripthashtime command-line arguments]</ref>. There are transaction earlier than 1333238400 in the block chain that fail these new validation rules. <ref>[http://blockexplorer.com/tx/6a26d2ecb67f27d1fa5524763b49029d7106e91e3cc05743073461a719776192 Transaction 6a26d2ecb67f27d1fa5524763b49029d7106e91e3cc05743073461a719776192]</ref>. Older transactions must be validated under the old rules. (see the Backwards Compatibility section for details).
+These new rules should only be applied when validating transactions in blocks with timestamps >= 1333238400 (Apr 1 2012) <ref>[https://github.com/bitcoin/bitcoin/commit/8f188ece3c82c4cf5d52a3363e7643c23169c0ff Remove -bip16 and -paytoscripthashtime command-line arguments]</ref>. There are transactions earlier than 1333238400 in the block chain that fail these new validation rules. <ref>[http://blockexplorer.com/tx/6a26d2ecb67f27d1fa5524763b49029d7106e91e3cc05743073461a719776192 Transaction 6a26d2ecb67f27d1fa5524763b49029d7106e91e3cc05743073461a719776192]</ref>. Older transactions must be validated under the old rules. (see the Backwards Compatibility section for details).
For example, the scriptPubKey and corresponding scriptSig for a one-signature-required transaction is:
@@ -101,7 +101,7 @@ If a majority of hashing power does not support the new validation rules, then r
===520-byte limitation on serialized script size===
-As a consequence of the requirement for backwards compatiblity the serialized script is itself subject to the same rules as any other PUSHDATA operation, including the rule that no data greater than 520 bytes may be pushed to the stack. Thus it is not possible to spend a P2SH output if the redemption script it refers to is >520 bytes in length. For instance while the OP_CHECKMULTISIG opcode can itself accept up to 20 pubkeys, with 33-byte compressed pubkeys it is only possible to spend a P2SH output requiring a maximum of 15 pubkeys to redeem: 3 bytes + 15 pubkeys * 34 bytes/pubkey = 513 bytes.
+As a consequence of the requirement for backwards compatibility the serialized script is itself subject to the same rules as any other PUSHDATA operation, including the rule that no data greater than 520 bytes may be pushed to the stack. Thus it is not possible to spend a P2SH output if the redemption script it refers to is >520 bytes in length. For instance while the OP_CHECKMULTISIG opcode can itself accept up to 20 pubkeys, with 33-byte compressed pubkeys it is only possible to spend a P2SH output requiring a maximum of 15 pubkeys to redeem: 3 bytes + 15 pubkeys * 34 bytes/pubkey = 513 bytes.
==Reference Implementation==
diff --git a/bip-0016/qa.mediawiki b/bip-0016/qa.mediawiki
index 6a8a08d..1edf28e 100644
--- a/bip-0016/qa.mediawiki
+++ b/bip-0016/qa.mediawiki
@@ -1,4 +1,4 @@
-This page is a Quality Assurance test plan for [[BIP 16]]. If you see a test missing, please add it.
+This page is a Quality Assurance test plan for [[../bip-0016.mediawiki|BIP 16]]. If you see a test missing, please add it.
If you can help test, please edit this page to sign-off on it.
{| class="wikitable"
diff --git a/bip-0019.mediawiki b/bip-0019.mediawiki
index 99462b7..32179ea 100644
--- a/bip-0019.mediawiki
+++ b/bip-0019.mediawiki
@@ -5,7 +5,7 @@
Author: Luke Dashjr <luke+bip17@dashjr.org>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0019
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2012-01-30
License: BSD-2-Clause
@@ -46,7 +46,7 @@ But only for n less than or equal to 3.
These transactions are redeemed using a standard scriptSig:
...signatures...
-The current Satoshi bitcoin client does not relay or mine transactions with scriptSigs larger than 200 bytes; to accomodate 3-signature transactions, this will be increased to 500 bytes.
+The current Satoshi bitcoin client does not relay or mine transactions with scriptSigs larger than 200 bytes; to accommodate 3-signature transactions, this will be increased to 500 bytes.
===Templates===
scriptPubKey:
diff --git a/bip-0030.mediawiki b/bip-0030.mediawiki
index a63b737..b653ba6 100644
--- a/bip-0030.mediawiki
+++ b/bip-0030.mediawiki
@@ -12,7 +12,7 @@
</pre>
==Abstract==
-This document gives a specification for dealing with duplicate transactions in the block chain, in an attempt to solve certain problems the reference implementations has with them.
+This document gives a specification for dealing with duplicate transactions in the block chain, in an attempt to solve certain problems the reference implementation has with them.
==Copyright==
diff --git a/bip-0032.mediawiki b/bip-0032.mediawiki
index 9ca80ef..9339307 100644
--- a/bip-0032.mediawiki
+++ b/bip-0032.mediawiki
@@ -1,9 +1,9 @@
RECENT CHANGES:
-* (24 Feb 2017) Added test vectors for hardened derivation with leading zeros
* (16 Apr 2013) Added private derivation for i ≥ 0x80000000 (less risk of parent private key leakage)
* (30 Apr 2013) Switched from multiplication by I<sub>L</sub> to addition of I<sub>L</sub> (faster, easier implementation)
* (25 May 2013) Added test vectors
* (15 Jan 2014) Rename keys with index ≥ 0x80000000 to hardened keys, and add explicit conversion functions.
+* (24 Feb 2017) Added test vectors for hardened derivation with leading zeros
<pre>
BIP: 32
@@ -122,7 +122,7 @@ Each leaf node in the tree corresponds to an actual key, while the internal node
===Key identifiers===
-Extended keys can be identified by the Hash160 (RIPEMD160 after SHA256) of the serialized ECSDA public key K, ignoring the chain code. This corresponds exactly to the data used in traditional Bitcoin addresses. It is not advised to represent this data in base58 format though, as it may be interpreted as an address that way (and wallet software is not required to accept payment to the chain key itself).
+Extended keys can be identified by the Hash160 (RIPEMD160 after SHA256) of the serialized ECDSA public key K, ignoring the chain code. This corresponds exactly to the data used in traditional Bitcoin addresses. It is not advised to represent this data in base58 format though, as it may be interpreted as an address that way (and wallet software is not required to accept payment to the chain key itself).
The first 32 bits of the identifier are called the key fingerprint.
@@ -156,7 +156,7 @@ In case I<sub>L</sub> is 0 or ≥n, the master key is invalid.
==Specification: Wallet structure==
-The previous sections specified key trees and their nodes. The next step is imposing a wallet structure on this tree. The layout defined in this section is a default only, though clients are encouraged to mimick it for compatibility, even if not all features are supported.
+The previous sections specified key trees and their nodes. The next step is imposing a wallet structure on this tree. The layout defined in this section is a default only, though clients are encouraged to mimic it for compatibility, even if not all features are supported.
===The default wallet layout===
@@ -276,7 +276,7 @@ Seed (hex): 4b381541583be4423346c643850da4b320e46a87ae3d2a4e6da11eba819cd4acba45
Two Python implementations exist:
-PyCoin (https://github.com/richardkiss/pycoin) is a suite of utilities for dealing with Bitcoin that includes BIP0032 wallet features. BIP32Utils (https://github.com/jmcorgan/bip32utils) is a library and command line interface specifically focused on BIP0032 wallets and scripting.
+PyCoin (https://github.com/richardkiss/pycoin) is a suite of utilities for dealing with Bitcoin that includes BIP0032 wallet features. BIP32Utils (https://pypi.org/project/bip32utils/) is a library and command line interface specifically focused on BIP0032 wallets and scripting.
2 Java implementations exist: https://github.com/bitsofproof/supernode/blob/1.1/api/src/main/java/com/bitsofproof/supernode/api/ExtendedKey.java and https://github.com/bushidowallet/bushido-java-core/tree/master/src/main/java/com/bushidowallet/core/bitcoin/bip32
@@ -292,9 +292,9 @@ hdkeychain (https://github.com/conformal/btcutil/tree/master/hdkeychain) provide
Two JavaScript implementations exist: available at https://github.com/sarchar/brainwallet.github.com/tree/bip32 and https://github.com/bitpay/bitcore
-A PHP implemetation is available at https://github.com/Bit-Wasp/bitcoin-lib-php
+A PHP implementation is available at https://github.com/Bit-Wasp/bitcoin-lib-php
-A C# implementation is available at https://github.com/NicolasDorier/NBitcoin (ExtKey, ExtPubKey)
+A C# implementation is available at https://github.com/MetacoSA/NBitcoin (ExtKey, ExtPubKey)
A Haskell implementation is available at https://github.com/haskoin/haskoin together with a CLI interface at https://github.com/np/hx
diff --git a/bip-0033.mediawiki b/bip-0033.mediawiki
index d95357d..2c1a86f 100644
--- a/bip-0033.mediawiki
+++ b/bip-0033.mediawiki
@@ -5,7 +5,7 @@
Author: Amir Taaki <genjix@riseup.net>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0033
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2012-05-15
</pre>
diff --git a/bip-0036.mediawiki b/bip-0036.mediawiki
index d3e36f4..b3393b0 100644
--- a/bip-0036.mediawiki
+++ b/bip-0036.mediawiki
@@ -5,7 +5,7 @@
Author: Stefan Thomas <justmoon@members.fsf.org>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0036
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2012-08-03
License: PD
diff --git a/bip-0039.mediawiki b/bip-0039.mediawiki
index 6ba8af0..2b95c51 100644
--- a/bip-0039.mediawiki
+++ b/bip-0039.mediawiki
@@ -25,7 +25,7 @@ BIP-0032 or similar methods.
==Motivation==
A mnemonic code or sentence is superior for human interaction compared to the
-handling of raw binary or hexidecimal representations of a wallet seed. The
+handling of raw binary or hexadecimal representations of a wallet seed. The
sentence could be written on paper or spoken over the telephone.
This guide is meant to be a way to transport computer-generated randomness with
@@ -134,6 +134,12 @@ http://github.com/trezor/python-mnemonic
==Other Implementations==
+Go:
+* https://github.com/tyler-smith/go-bip39
+
+Elixir:
+* https://github.com/aerosol/mnemo
+
Objective-C:
* https://github.com/nybex/NYMnemonic
@@ -150,5 +156,22 @@ JavaScript:
* https://github.com/bitpay/bitcore-mnemonic
* https://github.com/bitcoinjs/bip39 (used by [[https://github.com/blockchain/My-Wallet-V3/blob/v3.8.0/src/hd-wallet.js#L121-L146|blockchain.info]])
+Java:
+* https://github.com/bitcoinj/bitcoinj/blob/master/core/src/main/java/org/bitcoinj/crypto/MnemonicCode.java
+
Ruby:
* https://github.com/sreekanthgs/bip_mnemonic
+
+Rust:
+* https://github.com/maciejhirsz/tiny-bip39/
+
+Swift:
+* https://github.com/CikeQiu/CKMnemonic
+* https://github.com/yuzushioh/WalletKit
+* https://github.com/matter-labs/web3swift/blob/develop/Sources/web3swift/KeystoreManager/BIP39.swift
+
+C++:
+* https://github.com/libbitcoin/libbitcoin-system/blob/master/include/bitcoin/system/wallet/mnemonic.hpp
+
+C (with Python/Java/Javascript bindings):
+* https://github.com/ElementsProject/libwally-core
diff --git a/bip-0039/bip-0039-wordlists.md b/bip-0039/bip-0039-wordlists.md
index 045ad36..0940f35 100644
--- a/bip-0039/bip-0039-wordlists.md
+++ b/bip-0039/bip-0039-wordlists.md
@@ -2,11 +2,13 @@
* [English](english.txt)
* [Japanese](japanese.txt)
+* [Korean](korean.txt)
* [Spanish](spanish.txt)
* [Chinese (Simplified)](chinese_simplified.txt)
* [Chinese (Traditional)](chinese_traditional.txt)
* [French](french.txt)
* [Italian](italian.txt)
+* [Czech](czech.txt)
## Wordlists (Special Considerations)
@@ -81,3 +83,18 @@ Words chosen using the following rules:
Rules 11 and 12 prevent the selection words that are not different enough. This makes each word more recognizable among others and less error prone. For example: the wordlist contains "atono", then "atomo" is rejected, but "atomico" is good.
All the words have been manually selected and automatically checked against the rules.
+
+### Czech
+
+Credits: @zizelevak (Jan Lansky zizelevak@gmail.com)
+
+Words chosen using the following rules:
+
+1. Words are 4-8 letters long.
+2. Words can be uniquely determined typing the first 4 letters.
+3. Only words containing all letters without diacritical marks. (It was the hardest task, because in one third of all Czech letters has diacritical marks.)
+4. Only nouns, werbs and adverbs, no other word types. All words are in basic form.
+5. No personal names or geografical names.
+6. No very similar words with 1 letter of difference.
+7. Words are sorting according English alphabet (Czech sorting has difference in "ch").
+8. No words already used in other language mnemonic sets (english, italian, french, spanish). Letters with diacritical marks from these sets are counted as analogous letters without diacritical marks.
diff --git a/bip-0039/czech.txt b/bip-0039/czech.txt
new file mode 100644
index 0000000..fdab4a2
--- /dev/null
+++ b/bip-0039/czech.txt
@@ -0,0 +1,2048 @@
+abdikace
+abeceda
+adresa
+agrese
+akce
+aktovka
+alej
+alkohol
+amputace
+ananas
+andulka
+anekdota
+anketa
+antika
+anulovat
+archa
+arogance
+asfalt
+asistent
+aspirace
+astma
+astronom
+atlas
+atletika
+atol
+autobus
+azyl
+babka
+bachor
+bacil
+baculka
+badatel
+bageta
+bagr
+bahno
+bakterie
+balada
+baletka
+balkon
+balonek
+balvan
+balza
+bambus
+bankomat
+barbar
+baret
+barman
+baroko
+barva
+baterka
+batoh
+bavlna
+bazalka
+bazilika
+bazuka
+bedna
+beran
+beseda
+bestie
+beton
+bezinka
+bezmoc
+beztak
+bicykl
+bidlo
+biftek
+bikiny
+bilance
+biograf
+biolog
+bitva
+bizon
+blahobyt
+blatouch
+blecha
+bledule
+blesk
+blikat
+blizna
+blokovat
+bloudit
+blud
+bobek
+bobr
+bodlina
+bodnout
+bohatost
+bojkot
+bojovat
+bokorys
+bolest
+borec
+borovice
+bota
+boubel
+bouchat
+bouda
+boule
+bourat
+boxer
+bradavka
+brambora
+branka
+bratr
+brepta
+briketa
+brko
+brloh
+bronz
+broskev
+brunetka
+brusinka
+brzda
+brzy
+bublina
+bubnovat
+buchta
+buditel
+budka
+budova
+bufet
+bujarost
+bukvice
+buldok
+bulva
+bunda
+bunkr
+burza
+butik
+buvol
+buzola
+bydlet
+bylina
+bytovka
+bzukot
+capart
+carevna
+cedr
+cedule
+cejch
+cejn
+cela
+celer
+celkem
+celnice
+cenina
+cennost
+cenovka
+centrum
+cenzor
+cestopis
+cetka
+chalupa
+chapadlo
+charita
+chata
+chechtat
+chemie
+chichot
+chirurg
+chlad
+chleba
+chlubit
+chmel
+chmura
+chobot
+chochol
+chodba
+cholera
+chomout
+chopit
+choroba
+chov
+chrapot
+chrlit
+chrt
+chrup
+chtivost
+chudina
+chutnat
+chvat
+chvilka
+chvost
+chyba
+chystat
+chytit
+cibule
+cigareta
+cihelna
+cihla
+cinkot
+cirkus
+cisterna
+citace
+citrus
+cizinec
+cizost
+clona
+cokoliv
+couvat
+ctitel
+ctnost
+cudnost
+cuketa
+cukr
+cupot
+cvaknout
+cval
+cvik
+cvrkot
+cyklista
+daleko
+dareba
+datel
+datum
+dcera
+debata
+dechovka
+decibel
+deficit
+deflace
+dekl
+dekret
+demokrat
+deprese
+derby
+deska
+detektiv
+dikobraz
+diktovat
+dioda
+diplom
+disk
+displej
+divadlo
+divoch
+dlaha
+dlouho
+dluhopis
+dnes
+dobro
+dobytek
+docent
+dochutit
+dodnes
+dohled
+dohoda
+dohra
+dojem
+dojnice
+doklad
+dokola
+doktor
+dokument
+dolar
+doleva
+dolina
+doma
+dominant
+domluvit
+domov
+donutit
+dopad
+dopis
+doplnit
+doposud
+doprovod
+dopustit
+dorazit
+dorost
+dort
+dosah
+doslov
+dostatek
+dosud
+dosyta
+dotaz
+dotek
+dotknout
+doufat
+doutnat
+dovozce
+dozadu
+doznat
+dozorce
+drahota
+drak
+dramatik
+dravec
+draze
+drdol
+drobnost
+drogerie
+drozd
+drsnost
+drtit
+drzost
+duben
+duchovno
+dudek
+duha
+duhovka
+dusit
+dusno
+dutost
+dvojice
+dvorec
+dynamit
+ekolog
+ekonomie
+elektron
+elipsa
+email
+emise
+emoce
+empatie
+epizoda
+epocha
+epopej
+epos
+esej
+esence
+eskorta
+eskymo
+etiketa
+euforie
+evoluce
+exekuce
+exkurze
+expedice
+exploze
+export
+extrakt
+facka
+fajfka
+fakulta
+fanatik
+fantazie
+farmacie
+favorit
+fazole
+federace
+fejeton
+fenka
+fialka
+figurant
+filozof
+filtr
+finance
+finta
+fixace
+fjord
+flanel
+flirt
+flotila
+fond
+fosfor
+fotbal
+fotka
+foton
+frakce
+freska
+fronta
+fukar
+funkce
+fyzika
+galeje
+garant
+genetika
+geolog
+gilotina
+glazura
+glejt
+golem
+golfista
+gotika
+graf
+gramofon
+granule
+grep
+gril
+grog
+groteska
+guma
+hadice
+hadr
+hala
+halenka
+hanba
+hanopis
+harfa
+harpuna
+havran
+hebkost
+hejkal
+hejno
+hejtman
+hektar
+helma
+hematom
+herec
+herna
+heslo
+hezky
+historik
+hladovka
+hlasivky
+hlava
+hledat
+hlen
+hlodavec
+hloh
+hloupost
+hltat
+hlubina
+hluchota
+hmat
+hmota
+hmyz
+hnis
+hnojivo
+hnout
+hoblina
+hoboj
+hoch
+hodiny
+hodlat
+hodnota
+hodovat
+hojnost
+hokej
+holinka
+holka
+holub
+homole
+honitba
+honorace
+horal
+horda
+horizont
+horko
+horlivec
+hormon
+hornina
+horoskop
+horstvo
+hospoda
+hostina
+hotovost
+houba
+houf
+houpat
+houska
+hovor
+hradba
+hranice
+hravost
+hrazda
+hrbolek
+hrdina
+hrdlo
+hrdost
+hrnek
+hrobka
+hromada
+hrot
+hrouda
+hrozen
+hrstka
+hrubost
+hryzat
+hubenost
+hubnout
+hudba
+hukot
+humr
+husita
+hustota
+hvozd
+hybnost
+hydrant
+hygiena
+hymna
+hysterik
+idylka
+ihned
+ikona
+iluze
+imunita
+infekce
+inflace
+inkaso
+inovace
+inspekce
+internet
+invalida
+investor
+inzerce
+ironie
+jablko
+jachta
+jahoda
+jakmile
+jakost
+jalovec
+jantar
+jarmark
+jaro
+jasan
+jasno
+jatka
+javor
+jazyk
+jedinec
+jedle
+jednatel
+jehlan
+jekot
+jelen
+jelito
+jemnost
+jenom
+jepice
+jeseter
+jevit
+jezdec
+jezero
+jinak
+jindy
+jinoch
+jiskra
+jistota
+jitrnice
+jizva
+jmenovat
+jogurt
+jurta
+kabaret
+kabel
+kabinet
+kachna
+kadet
+kadidlo
+kahan
+kajak
+kajuta
+kakao
+kaktus
+kalamita
+kalhoty
+kalibr
+kalnost
+kamera
+kamkoliv
+kamna
+kanibal
+kanoe
+kantor
+kapalina
+kapela
+kapitola
+kapka
+kaple
+kapota
+kapr
+kapusta
+kapybara
+karamel
+karotka
+karton
+kasa
+katalog
+katedra
+kauce
+kauza
+kavalec
+kazajka
+kazeta
+kazivost
+kdekoliv
+kdesi
+kedluben
+kemp
+keramika
+kino
+klacek
+kladivo
+klam
+klapot
+klasika
+klaun
+klec
+klenba
+klepat
+klesnout
+klid
+klima
+klisna
+klobouk
+klokan
+klopa
+kloub
+klubovna
+klusat
+kluzkost
+kmen
+kmitat
+kmotr
+kniha
+knot
+koalice
+koberec
+kobka
+kobliha
+kobyla
+kocour
+kohout
+kojenec
+kokos
+koktejl
+kolaps
+koleda
+kolize
+kolo
+komando
+kometa
+komik
+komnata
+komora
+kompas
+komunita
+konat
+koncept
+kondice
+konec
+konfese
+kongres
+konina
+konkurs
+kontakt
+konzerva
+kopanec
+kopie
+kopnout
+koprovka
+korbel
+korektor
+kormidlo
+koroptev
+korpus
+koruna
+koryto
+korzet
+kosatec
+kostka
+kotel
+kotleta
+kotoul
+koukat
+koupelna
+kousek
+kouzlo
+kovboj
+koza
+kozoroh
+krabice
+krach
+krajina
+kralovat
+krasopis
+kravata
+kredit
+krejcar
+kresba
+kreveta
+kriket
+kritik
+krize
+krkavec
+krmelec
+krmivo
+krocan
+krok
+kronika
+kropit
+kroupa
+krovka
+krtek
+kruhadlo
+krupice
+krutost
+krvinka
+krychle
+krypta
+krystal
+kryt
+kudlanka
+kufr
+kujnost
+kukla
+kulajda
+kulich
+kulka
+kulomet
+kultura
+kuna
+kupodivu
+kurt
+kurzor
+kutil
+kvalita
+kvasinka
+kvestor
+kynolog
+kyselina
+kytara
+kytice
+kytka
+kytovec
+kyvadlo
+labrador
+lachtan
+ladnost
+laik
+lakomec
+lamela
+lampa
+lanovka
+lasice
+laso
+lastura
+latinka
+lavina
+lebka
+leckdy
+leden
+lednice
+ledovka
+ledvina
+legenda
+legie
+legrace
+lehce
+lehkost
+lehnout
+lektvar
+lenochod
+lentilka
+lepenka
+lepidlo
+letadlo
+letec
+letmo
+letokruh
+levhart
+levitace
+levobok
+libra
+lichotka
+lidojed
+lidskost
+lihovina
+lijavec
+lilek
+limetka
+linie
+linka
+linoleum
+listopad
+litina
+litovat
+lobista
+lodivod
+logika
+logoped
+lokalita
+loket
+lomcovat
+lopata
+lopuch
+lord
+losos
+lotr
+loudal
+louh
+louka
+louskat
+lovec
+lstivost
+lucerna
+lucifer
+lump
+lusk
+lustrace
+lvice
+lyra
+lyrika
+lysina
+madam
+madlo
+magistr
+mahagon
+majetek
+majitel
+majorita
+makak
+makovice
+makrela
+malba
+malina
+malovat
+malvice
+maminka
+mandle
+manko
+marnost
+masakr
+maskot
+masopust
+matice
+matrika
+maturita
+mazanec
+mazivo
+mazlit
+mazurka
+mdloba
+mechanik
+meditace
+medovina
+melasa
+meloun
+mentolka
+metla
+metoda
+metr
+mezera
+migrace
+mihnout
+mihule
+mikina
+mikrofon
+milenec
+milimetr
+milost
+mimika
+mincovna
+minibar
+minomet
+minulost
+miska
+mistr
+mixovat
+mladost
+mlha
+mlhovina
+mlok
+mlsat
+mluvit
+mnich
+mnohem
+mobil
+mocnost
+modelka
+modlitba
+mohyla
+mokro
+molekula
+momentka
+monarcha
+monokl
+monstrum
+montovat
+monzun
+mosaz
+moskyt
+most
+motivace
+motorka
+motyka
+moucha
+moudrost
+mozaika
+mozek
+mozol
+mramor
+mravenec
+mrkev
+mrtvola
+mrzet
+mrzutost
+mstitel
+mudrc
+muflon
+mulat
+mumie
+munice
+muset
+mutace
+muzeum
+muzikant
+myslivec
+mzda
+nabourat
+nachytat
+nadace
+nadbytek
+nadhoz
+nadobro
+nadpis
+nahlas
+nahnat
+nahodile
+nahradit
+naivita
+najednou
+najisto
+najmout
+naklonit
+nakonec
+nakrmit
+nalevo
+namazat
+namluvit
+nanometr
+naoko
+naopak
+naostro
+napadat
+napevno
+naplnit
+napnout
+naposled
+naprosto
+narodit
+naruby
+narychlo
+nasadit
+nasekat
+naslepo
+nastat
+natolik
+navenek
+navrch
+navzdory
+nazvat
+nebe
+nechat
+necky
+nedaleko
+nedbat
+neduh
+negace
+nehet
+nehoda
+nejen
+nejprve
+neklid
+nelibost
+nemilost
+nemoc
+neochota
+neonka
+nepokoj
+nerost
+nerv
+nesmysl
+nesoulad
+netvor
+neuron
+nevina
+nezvykle
+nicota
+nijak
+nikam
+nikdy
+nikl
+nikterak
+nitro
+nocleh
+nohavice
+nominace
+nora
+norek
+nositel
+nosnost
+nouze
+noviny
+novota
+nozdra
+nuda
+nudle
+nuget
+nutit
+nutnost
+nutrie
+nymfa
+obal
+obarvit
+obava
+obdiv
+obec
+obehnat
+obejmout
+obezita
+obhajoba
+obilnice
+objasnit
+objekt
+obklopit
+oblast
+oblek
+obliba
+obloha
+obluda
+obnos
+obohatit
+obojek
+obout
+obrazec
+obrna
+obruba
+obrys
+obsah
+obsluha
+obstarat
+obuv
+obvaz
+obvinit
+obvod
+obvykle
+obyvatel
+obzor
+ocas
+ocel
+ocenit
+ochladit
+ochota
+ochrana
+ocitnout
+odboj
+odbyt
+odchod
+odcizit
+odebrat
+odeslat
+odevzdat
+odezva
+odhadce
+odhodit
+odjet
+odjinud
+odkaz
+odkoupit
+odliv
+odluka
+odmlka
+odolnost
+odpad
+odpis
+odplout
+odpor
+odpustit
+odpykat
+odrazka
+odsoudit
+odstup
+odsun
+odtok
+odtud
+odvaha
+odveta
+odvolat
+odvracet
+odznak
+ofina
+ofsajd
+ohlas
+ohnisko
+ohrada
+ohrozit
+ohryzek
+okap
+okenice
+oklika
+okno
+okouzlit
+okovy
+okrasa
+okres
+okrsek
+okruh
+okupant
+okurka
+okusit
+olejnina
+olizovat
+omak
+omeleta
+omezit
+omladina
+omlouvat
+omluva
+omyl
+onehdy
+opakovat
+opasek
+operace
+opice
+opilost
+opisovat
+opora
+opozice
+opravdu
+oproti
+orbital
+orchestr
+orgie
+orlice
+orloj
+ortel
+osada
+oschnout
+osika
+osivo
+oslava
+oslepit
+oslnit
+oslovit
+osnova
+osoba
+osolit
+ospalec
+osten
+ostraha
+ostuda
+ostych
+osvojit
+oteplit
+otisk
+otop
+otrhat
+otrlost
+otrok
+otruby
+otvor
+ovanout
+ovar
+oves
+ovlivnit
+ovoce
+oxid
+ozdoba
+pachatel
+pacient
+padouch
+pahorek
+pakt
+palanda
+palec
+palivo
+paluba
+pamflet
+pamlsek
+panenka
+panika
+panna
+panovat
+panstvo
+pantofle
+paprika
+parketa
+parodie
+parta
+paruka
+paryba
+paseka
+pasivita
+pastelka
+patent
+patrona
+pavouk
+pazneht
+pazourek
+pecka
+pedagog
+pejsek
+peklo
+peloton
+penalta
+pendrek
+penze
+periskop
+pero
+pestrost
+petarda
+petice
+petrolej
+pevnina
+pexeso
+pianista
+piha
+pijavice
+pikle
+piknik
+pilina
+pilnost
+pilulka
+pinzeta
+pipeta
+pisatel
+pistole
+pitevna
+pivnice
+pivovar
+placenta
+plakat
+plamen
+planeta
+plastika
+platit
+plavidlo
+plaz
+plech
+plemeno
+plenta
+ples
+pletivo
+plevel
+plivat
+plnit
+plno
+plocha
+plodina
+plomba
+plout
+pluk
+plyn
+pobavit
+pobyt
+pochod
+pocit
+poctivec
+podat
+podcenit
+podepsat
+podhled
+podivit
+podklad
+podmanit
+podnik
+podoba
+podpora
+podraz
+podstata
+podvod
+podzim
+poezie
+pohanka
+pohnutka
+pohovor
+pohroma
+pohyb
+pointa
+pojistka
+pojmout
+pokazit
+pokles
+pokoj
+pokrok
+pokuta
+pokyn
+poledne
+polibek
+polknout
+poloha
+polynom
+pomalu
+pominout
+pomlka
+pomoc
+pomsta
+pomyslet
+ponechat
+ponorka
+ponurost
+popadat
+popel
+popisek
+poplach
+poprosit
+popsat
+popud
+poradce
+porce
+porod
+porucha
+poryv
+posadit
+posed
+posila
+poskok
+poslanec
+posoudit
+pospolu
+postava
+posudek
+posyp
+potah
+potkan
+potlesk
+potomek
+potrava
+potupa
+potvora
+poukaz
+pouto
+pouzdro
+povaha
+povidla
+povlak
+povoz
+povrch
+povstat
+povyk
+povzdech
+pozdrav
+pozemek
+poznatek
+pozor
+pozvat
+pracovat
+prahory
+praktika
+prales
+praotec
+praporek
+prase
+pravda
+princip
+prkno
+probudit
+procento
+prodej
+profese
+prohra
+projekt
+prolomit
+promile
+pronikat
+propad
+prorok
+prosba
+proton
+proutek
+provaz
+prskavka
+prsten
+prudkost
+prut
+prvek
+prvohory
+psanec
+psovod
+pstruh
+ptactvo
+puberta
+puch
+pudl
+pukavec
+puklina
+pukrle
+pult
+pumpa
+punc
+pupen
+pusa
+pusinka
+pustina
+putovat
+putyka
+pyramida
+pysk
+pytel
+racek
+rachot
+radiace
+radnice
+radon
+raft
+ragby
+raketa
+rakovina
+rameno
+rampouch
+rande
+rarach
+rarita
+rasovna
+rastr
+ratolest
+razance
+razidlo
+reagovat
+reakce
+recept
+redaktor
+referent
+reflex
+rejnok
+reklama
+rekord
+rekrut
+rektor
+reputace
+revize
+revma
+revolver
+rezerva
+riskovat
+riziko
+robotika
+rodokmen
+rohovka
+rokle
+rokoko
+romaneto
+ropovod
+ropucha
+rorejs
+rosol
+rostlina
+rotmistr
+rotoped
+rotunda
+roubenka
+roucho
+roup
+roura
+rovina
+rovnice
+rozbor
+rozchod
+rozdat
+rozeznat
+rozhodce
+rozinka
+rozjezd
+rozkaz
+rozloha
+rozmar
+rozpad
+rozruch
+rozsah
+roztok
+rozum
+rozvod
+rubrika
+ruchadlo
+rukavice
+rukopis
+ryba
+rybolov
+rychlost
+rydlo
+rypadlo
+rytina
+ryzost
+sadista
+sahat
+sako
+samec
+samizdat
+samota
+sanitka
+sardinka
+sasanka
+satelit
+sazba
+sazenice
+sbor
+schovat
+sebranka
+secese
+sedadlo
+sediment
+sedlo
+sehnat
+sejmout
+sekera
+sekta
+sekunda
+sekvoje
+semeno
+seno
+servis
+sesadit
+seshora
+seskok
+seslat
+sestra
+sesuv
+sesypat
+setba
+setina
+setkat
+setnout
+setrvat
+sever
+seznam
+shoda
+shrnout
+sifon
+silnice
+sirka
+sirotek
+sirup
+situace
+skafandr
+skalisko
+skanzen
+skaut
+skeptik
+skica
+skladba
+sklenice
+sklo
+skluz
+skoba
+skokan
+skoro
+skripta
+skrz
+skupina
+skvost
+skvrna
+slabika
+sladidlo
+slanina
+slast
+slavnost
+sledovat
+slepec
+sleva
+slezina
+slib
+slina
+sliznice
+slon
+sloupek
+slovo
+sluch
+sluha
+slunce
+slupka
+slza
+smaragd
+smetana
+smilstvo
+smlouva
+smog
+smrad
+smrk
+smrtka
+smutek
+smysl
+snad
+snaha
+snob
+sobota
+socha
+sodovka
+sokol
+sopka
+sotva
+souboj
+soucit
+soudce
+souhlas
+soulad
+soumrak
+souprava
+soused
+soutok
+souviset
+spalovna
+spasitel
+spis
+splav
+spodek
+spojenec
+spolu
+sponzor
+spornost
+spousta
+sprcha
+spustit
+sranda
+sraz
+srdce
+srna
+srnec
+srovnat
+srpen
+srst
+srub
+stanice
+starosta
+statika
+stavba
+stehno
+stezka
+stodola
+stolek
+stopa
+storno
+stoupat
+strach
+stres
+strhnout
+strom
+struna
+studna
+stupnice
+stvol
+styk
+subjekt
+subtropy
+suchar
+sudost
+sukno
+sundat
+sunout
+surikata
+surovina
+svah
+svalstvo
+svetr
+svatba
+svazek
+svisle
+svitek
+svoboda
+svodidlo
+svorka
+svrab
+sykavka
+sykot
+synek
+synovec
+sypat
+sypkost
+syrovost
+sysel
+sytost
+tabletka
+tabule
+tahoun
+tajemno
+tajfun
+tajga
+tajit
+tajnost
+taktika
+tamhle
+tampon
+tancovat
+tanec
+tanker
+tapeta
+tavenina
+tazatel
+technika
+tehdy
+tekutina
+telefon
+temnota
+tendence
+tenista
+tenor
+teplota
+tepna
+teprve
+terapie
+termoska
+textil
+ticho
+tiskopis
+titulek
+tkadlec
+tkanina
+tlapka
+tleskat
+tlukot
+tlupa
+tmel
+toaleta
+topinka
+topol
+torzo
+touha
+toulec
+tradice
+traktor
+tramp
+trasa
+traverza
+trefit
+trest
+trezor
+trhavina
+trhlina
+trochu
+trojice
+troska
+trouba
+trpce
+trpitel
+trpkost
+trubec
+truchlit
+truhlice
+trus
+trvat
+tudy
+tuhnout
+tuhost
+tundra
+turista
+turnaj
+tuzemsko
+tvaroh
+tvorba
+tvrdost
+tvrz
+tygr
+tykev
+ubohost
+uboze
+ubrat
+ubrousek
+ubrus
+ubytovna
+ucho
+uctivost
+udivit
+uhradit
+ujednat
+ujistit
+ujmout
+ukazatel
+uklidnit
+uklonit
+ukotvit
+ukrojit
+ulice
+ulita
+ulovit
+umyvadlo
+unavit
+uniforma
+uniknout
+upadnout
+uplatnit
+uplynout
+upoutat
+upravit
+uran
+urazit
+usednout
+usilovat
+usmrtit
+usnadnit
+usnout
+usoudit
+ustlat
+ustrnout
+utahovat
+utkat
+utlumit
+utonout
+utopenec
+utrousit
+uvalit
+uvolnit
+uvozovka
+uzdravit
+uzel
+uzenina
+uzlina
+uznat
+vagon
+valcha
+valoun
+vana
+vandal
+vanilka
+varan
+varhany
+varovat
+vcelku
+vchod
+vdova
+vedro
+vegetace
+vejce
+velbloud
+veletrh
+velitel
+velmoc
+velryba
+venkov
+veranda
+verze
+veselka
+veskrze
+vesnice
+vespodu
+vesta
+veterina
+veverka
+vibrace
+vichr
+videohra
+vidina
+vidle
+vila
+vinice
+viset
+vitalita
+vize
+vizitka
+vjezd
+vklad
+vkus
+vlajka
+vlak
+vlasec
+vlevo
+vlhkost
+vliv
+vlnovka
+vloupat
+vnucovat
+vnuk
+voda
+vodivost
+vodoznak
+vodstvo
+vojensky
+vojna
+vojsko
+volant
+volba
+volit
+volno
+voskovka
+vozidlo
+vozovna
+vpravo
+vrabec
+vracet
+vrah
+vrata
+vrba
+vrcholek
+vrhat
+vrstva
+vrtule
+vsadit
+vstoupit
+vstup
+vtip
+vybavit
+vybrat
+vychovat
+vydat
+vydra
+vyfotit
+vyhledat
+vyhnout
+vyhodit
+vyhradit
+vyhubit
+vyjasnit
+vyjet
+vyjmout
+vyklopit
+vykonat
+vylekat
+vymazat
+vymezit
+vymizet
+vymyslet
+vynechat
+vynikat
+vynutit
+vypadat
+vyplatit
+vypravit
+vypustit
+vyrazit
+vyrovnat
+vyrvat
+vyslovit
+vysoko
+vystavit
+vysunout
+vysypat
+vytasit
+vytesat
+vytratit
+vyvinout
+vyvolat
+vyvrhel
+vyzdobit
+vyznat
+vzadu
+vzbudit
+vzchopit
+vzdor
+vzduch
+vzdychat
+vzestup
+vzhledem
+vzkaz
+vzlykat
+vznik
+vzorek
+vzpoura
+vztah
+vztek
+xylofon
+zabrat
+zabydlet
+zachovat
+zadarmo
+zadusit
+zafoukat
+zahltit
+zahodit
+zahrada
+zahynout
+zajatec
+zajet
+zajistit
+zaklepat
+zakoupit
+zalepit
+zamezit
+zamotat
+zamyslet
+zanechat
+zanikat
+zaplatit
+zapojit
+zapsat
+zarazit
+zastavit
+zasunout
+zatajit
+zatemnit
+zatknout
+zaujmout
+zavalit
+zavelet
+zavinit
+zavolat
+zavrtat
+zazvonit
+zbavit
+zbrusu
+zbudovat
+zbytek
+zdaleka
+zdarma
+zdatnost
+zdivo
+zdobit
+zdroj
+zdvih
+zdymadlo
+zelenina
+zeman
+zemina
+zeptat
+zezadu
+zezdola
+zhatit
+zhltnout
+zhluboka
+zhotovit
+zhruba
+zima
+zimnice
+zjemnit
+zklamat
+zkoumat
+zkratka
+zkumavka
+zlato
+zlehka
+zloba
+zlom
+zlost
+zlozvyk
+zmapovat
+zmar
+zmatek
+zmije
+zmizet
+zmocnit
+zmodrat
+zmrzlina
+zmutovat
+znak
+znalost
+znamenat
+znovu
+zobrazit
+zotavit
+zoubek
+zoufale
+zplodit
+zpomalit
+zprava
+zprostit
+zprudka
+zprvu
+zrada
+zranit
+zrcadlo
+zrnitost
+zrno
+zrovna
+zrychlit
+zrzavost
+zticha
+ztratit
+zubovina
+zubr
+zvednout
+zvenku
+zvesela
+zvon
+zvrat
+zvukovod
+zvyk
diff --git a/bip-0039/french.txt b/bip-0039/french.txt
index 8600949..1d74990 100644
--- a/bip-0039/french.txt
+++ b/bip-0039/french.txt
@@ -1,4 +1,4 @@
-abaisser
+abaisser
abandon
abdiquer
abeille
@@ -2045,4 +2045,4 @@ yacht
zèbre
zénith
zeste
-zoologie \ No newline at end of file
+zoologie
diff --git a/bip-0039/korean.txt b/bip-0039/korean.txt
new file mode 100644
index 0000000..1acebf7
--- /dev/null
+++ b/bip-0039/korean.txt
@@ -0,0 +1,2048 @@
+가격
+가끔
+가난
+가능
+가득
+가르침
+가뭄
+가방
+가상
+가슴
+가운데
+가을
+가이드
+가입
+가장
+가정
+가족
+가죽
+각오
+각자
+간격
+간부
+간섭
+간장
+간접
+간판
+갈등
+갈비
+갈색
+갈증
+감각
+감기
+감소
+감수성
+감자
+감정
+갑자기
+강남
+강당
+강도
+강력히
+강변
+강북
+강사
+강수량
+강아지
+강원도
+강의
+강제
+강조
+같이
+개구리
+개나리
+개방
+개별
+개선
+개성
+개인
+객관적
+거실
+거액
+거울
+거짓
+거품
+걱정
+건강
+건물
+건설
+건조
+건축
+걸음
+검사
+검토
+게시판
+게임
+겨울
+견해
+결과
+결국
+결론
+결석
+결승
+결심
+결정
+결혼
+경계
+경고
+경기
+경력
+경복궁
+경비
+경상도
+경영
+경우
+경쟁
+경제
+경주
+경찰
+경치
+경향
+경험
+계곡
+계단
+계란
+계산
+계속
+계약
+계절
+계층
+계획
+고객
+고구려
+고궁
+고급
+고등학생
+고무신
+고민
+고양이
+고장
+고전
+고집
+고춧가루
+고통
+고향
+곡식
+골목
+골짜기
+골프
+공간
+공개
+공격
+공군
+공급
+공기
+공동
+공무원
+공부
+공사
+공식
+공업
+공연
+공원
+공장
+공짜
+공책
+공통
+공포
+공항
+공휴일
+과목
+과일
+과장
+과정
+과학
+관객
+관계
+관광
+관념
+관람
+관련
+관리
+관습
+관심
+관점
+관찰
+광경
+광고
+광장
+광주
+괴로움
+굉장히
+교과서
+교문
+교복
+교실
+교양
+교육
+교장
+교직
+교통
+교환
+교훈
+구경
+구름
+구멍
+구별
+구분
+구석
+구성
+구속
+구역
+구입
+구청
+구체적
+국가
+국기
+국내
+국립
+국물
+국민
+국수
+국어
+국왕
+국적
+국제
+국회
+군대
+군사
+군인
+궁극적
+권리
+권위
+권투
+귀국
+귀신
+규정
+규칙
+균형
+그날
+그냥
+그늘
+그러나
+그룹
+그릇
+그림
+그제서야
+그토록
+극복
+극히
+근거
+근교
+근래
+근로
+근무
+근본
+근원
+근육
+근처
+글씨
+글자
+금강산
+금고
+금년
+금메달
+금액
+금연
+금요일
+금지
+긍정적
+기간
+기관
+기념
+기능
+기독교
+기둥
+기록
+기름
+기법
+기본
+기분
+기쁨
+기숙사
+기술
+기억
+기업
+기온
+기운
+기원
+기적
+기준
+기침
+기혼
+기획
+긴급
+긴장
+길이
+김밥
+김치
+김포공항
+깍두기
+깜빡
+깨달음
+깨소금
+껍질
+꼭대기
+꽃잎
+나들이
+나란히
+나머지
+나물
+나침반
+나흘
+낙엽
+난방
+날개
+날씨
+날짜
+남녀
+남대문
+남매
+남산
+남자
+남편
+남학생
+낭비
+낱말
+내년
+내용
+내일
+냄비
+냄새
+냇물
+냉동
+냉면
+냉방
+냉장고
+넥타이
+넷째
+노동
+노란색
+노력
+노인
+녹음
+녹차
+녹화
+논리
+논문
+논쟁
+놀이
+농구
+농담
+농민
+농부
+농업
+농장
+농촌
+높이
+눈동자
+눈물
+눈썹
+뉴욕
+느낌
+늑대
+능동적
+능력
+다방
+다양성
+다음
+다이어트
+다행
+단계
+단골
+단독
+단맛
+단순
+단어
+단위
+단점
+단체
+단추
+단편
+단풍
+달걀
+달러
+달력
+달리
+닭고기
+담당
+담배
+담요
+담임
+답변
+답장
+당근
+당분간
+당연히
+당장
+대규모
+대낮
+대단히
+대답
+대도시
+대략
+대량
+대륙
+대문
+대부분
+대신
+대응
+대장
+대전
+대접
+대중
+대책
+대출
+대충
+대통령
+대학
+대한민국
+대합실
+대형
+덩어리
+데이트
+도대체
+도덕
+도둑
+도망
+도서관
+도심
+도움
+도입
+도자기
+도저히
+도전
+도중
+도착
+독감
+독립
+독서
+독일
+독창적
+동화책
+뒷모습
+뒷산
+딸아이
+마누라
+마늘
+마당
+마라톤
+마련
+마무리
+마사지
+마약
+마요네즈
+마을
+마음
+마이크
+마중
+마지막
+마찬가지
+마찰
+마흔
+막걸리
+막내
+막상
+만남
+만두
+만세
+만약
+만일
+만점
+만족
+만화
+많이
+말기
+말씀
+말투
+맘대로
+망원경
+매년
+매달
+매력
+매번
+매스컴
+매일
+매장
+맥주
+먹이
+먼저
+먼지
+멀리
+메일
+며느리
+며칠
+면담
+멸치
+명단
+명령
+명예
+명의
+명절
+명칭
+명함
+모금
+모니터
+모델
+모든
+모범
+모습
+모양
+모임
+모조리
+모집
+모퉁이
+목걸이
+목록
+목사
+목소리
+목숨
+목적
+목표
+몰래
+몸매
+몸무게
+몸살
+몸속
+몸짓
+몸통
+몹시
+무관심
+무궁화
+무더위
+무덤
+무릎
+무슨
+무엇
+무역
+무용
+무조건
+무지개
+무척
+문구
+문득
+문법
+문서
+문제
+문학
+문화
+물가
+물건
+물결
+물고기
+물론
+물리학
+물음
+물질
+물체
+미국
+미디어
+미사일
+미술
+미역
+미용실
+미움
+미인
+미팅
+미혼
+민간
+민족
+민주
+믿음
+밀가루
+밀리미터
+밑바닥
+바가지
+바구니
+바나나
+바늘
+바닥
+바닷가
+바람
+바이러스
+바탕
+박물관
+박사
+박수
+반대
+반드시
+반말
+반발
+반성
+반응
+반장
+반죽
+반지
+반찬
+받침
+발가락
+발걸음
+발견
+발달
+발레
+발목
+발바닥
+발생
+발음
+발자국
+발전
+발톱
+발표
+밤하늘
+밥그릇
+밥맛
+밥상
+밥솥
+방금
+방면
+방문
+방바닥
+방법
+방송
+방식
+방안
+방울
+방지
+방학
+방해
+방향
+배경
+배꼽
+배달
+배드민턴
+백두산
+백색
+백성
+백인
+백제
+백화점
+버릇
+버섯
+버튼
+번개
+번역
+번지
+번호
+벌금
+벌레
+벌써
+범위
+범인
+범죄
+법률
+법원
+법적
+법칙
+베이징
+벨트
+변경
+변동
+변명
+변신
+변호사
+변화
+별도
+별명
+별일
+병실
+병아리
+병원
+보관
+보너스
+보라색
+보람
+보름
+보상
+보안
+보자기
+보장
+보전
+보존
+보통
+보편적
+보험
+복도
+복사
+복숭아
+복습
+볶음
+본격적
+본래
+본부
+본사
+본성
+본인
+본질
+볼펜
+봉사
+봉지
+봉투
+부근
+부끄러움
+부담
+부동산
+부문
+부분
+부산
+부상
+부엌
+부인
+부작용
+부장
+부정
+부족
+부지런히
+부친
+부탁
+부품
+부회장
+북부
+북한
+분노
+분량
+분리
+분명
+분석
+분야
+분위기
+분필
+분홍색
+불고기
+불과
+불교
+불꽃
+불만
+불법
+불빛
+불안
+불이익
+불행
+브랜드
+비극
+비난
+비닐
+비둘기
+비디오
+비로소
+비만
+비명
+비밀
+비바람
+비빔밥
+비상
+비용
+비율
+비중
+비타민
+비판
+빌딩
+빗물
+빗방울
+빗줄기
+빛깔
+빨간색
+빨래
+빨리
+사건
+사계절
+사나이
+사냥
+사람
+사랑
+사립
+사모님
+사물
+사방
+사상
+사생활
+사설
+사슴
+사실
+사업
+사용
+사월
+사장
+사전
+사진
+사촌
+사춘기
+사탕
+사투리
+사흘
+산길
+산부인과
+산업
+산책
+살림
+살인
+살짝
+삼계탕
+삼국
+삼십
+삼월
+삼촌
+상관
+상금
+상대
+상류
+상반기
+상상
+상식
+상업
+상인
+상자
+상점
+상처
+상추
+상태
+상표
+상품
+상황
+새벽
+색깔
+색연필
+생각
+생명
+생물
+생방송
+생산
+생선
+생신
+생일
+생활
+서랍
+서른
+서명
+서민
+서비스
+서양
+서울
+서적
+서점
+서쪽
+서클
+석사
+석유
+선거
+선물
+선배
+선생
+선수
+선원
+선장
+선전
+선택
+선풍기
+설거지
+설날
+설렁탕
+설명
+설문
+설사
+설악산
+설치
+설탕
+섭씨
+성공
+성당
+성명
+성별
+성인
+성장
+성적
+성질
+성함
+세금
+세미나
+세상
+세월
+세종대왕
+세탁
+센터
+센티미터
+셋째
+소규모
+소극적
+소금
+소나기
+소년
+소득
+소망
+소문
+소설
+소속
+소아과
+소용
+소원
+소음
+소중히
+소지품
+소질
+소풍
+소형
+속담
+속도
+속옷
+손가락
+손길
+손녀
+손님
+손등
+손목
+손뼉
+손실
+손질
+손톱
+손해
+솔직히
+솜씨
+송아지
+송이
+송편
+쇠고기
+쇼핑
+수건
+수년
+수단
+수돗물
+수동적
+수면
+수명
+수박
+수상
+수석
+수술
+수시로
+수업
+수염
+수영
+수입
+수준
+수집
+수출
+수컷
+수필
+수학
+수험생
+수화기
+숙녀
+숙소
+숙제
+순간
+순서
+순수
+순식간
+순위
+숟가락
+술병
+술집
+숫자
+스님
+스물
+스스로
+스승
+스웨터
+스위치
+스케이트
+스튜디오
+스트레스
+스포츠
+슬쩍
+슬픔
+습관
+습기
+승객
+승리
+승부
+승용차
+승진
+시각
+시간
+시골
+시금치
+시나리오
+시댁
+시리즈
+시멘트
+시민
+시부모
+시선
+시설
+시스템
+시아버지
+시어머니
+시월
+시인
+시일
+시작
+시장
+시절
+시점
+시중
+시즌
+시집
+시청
+시합
+시험
+식구
+식기
+식당
+식량
+식료품
+식물
+식빵
+식사
+식생활
+식초
+식탁
+식품
+신고
+신규
+신념
+신문
+신발
+신비
+신사
+신세
+신용
+신제품
+신청
+신체
+신화
+실감
+실내
+실력
+실례
+실망
+실수
+실습
+실시
+실장
+실정
+실질적
+실천
+실체
+실컷
+실태
+실패
+실험
+실현
+심리
+심부름
+심사
+심장
+심정
+심판
+쌍둥이
+씨름
+씨앗
+아가씨
+아나운서
+아드님
+아들
+아쉬움
+아스팔트
+아시아
+아울러
+아저씨
+아줌마
+아직
+아침
+아파트
+아프리카
+아픔
+아홉
+아흔
+악기
+악몽
+악수
+안개
+안경
+안과
+안내
+안녕
+안동
+안방
+안부
+안주
+알루미늄
+알코올
+암시
+암컷
+압력
+앞날
+앞문
+애인
+애정
+액수
+앨범
+야간
+야단
+야옹
+약간
+약국
+약속
+약수
+약점
+약품
+약혼녀
+양념
+양력
+양말
+양배추
+양주
+양파
+어둠
+어려움
+어른
+어젯밤
+어쨌든
+어쩌다가
+어쩐지
+언니
+언덕
+언론
+언어
+얼굴
+얼른
+얼음
+얼핏
+엄마
+업무
+업종
+업체
+엉덩이
+엉망
+엉터리
+엊그제
+에너지
+에어컨
+엔진
+여건
+여고생
+여관
+여군
+여권
+여대생
+여덟
+여동생
+여든
+여론
+여름
+여섯
+여성
+여왕
+여인
+여전히
+여직원
+여학생
+여행
+역사
+역시
+역할
+연결
+연구
+연극
+연기
+연락
+연설
+연세
+연속
+연습
+연애
+연예인
+연인
+연장
+연주
+연출
+연필
+연합
+연휴
+열기
+열매
+열쇠
+열심히
+열정
+열차
+열흘
+염려
+엽서
+영국
+영남
+영상
+영양
+영역
+영웅
+영원히
+영하
+영향
+영혼
+영화
+옆구리
+옆방
+옆집
+예감
+예금
+예방
+예산
+예상
+예선
+예술
+예습
+예식장
+예약
+예전
+예절
+예정
+예컨대
+옛날
+오늘
+오락
+오랫동안
+오렌지
+오로지
+오른발
+오븐
+오십
+오염
+오월
+오전
+오직
+오징어
+오페라
+오피스텔
+오히려
+옥상
+옥수수
+온갖
+온라인
+온몸
+온종일
+온통
+올가을
+올림픽
+올해
+옷차림
+와이셔츠
+와인
+완성
+완전
+왕비
+왕자
+왜냐하면
+왠지
+외갓집
+외국
+외로움
+외삼촌
+외출
+외침
+외할머니
+왼발
+왼손
+왼쪽
+요금
+요일
+요즘
+요청
+용기
+용서
+용어
+우산
+우선
+우승
+우연히
+우정
+우체국
+우편
+운동
+운명
+운반
+운전
+운행
+울산
+울음
+움직임
+웃어른
+웃음
+워낙
+원고
+원래
+원서
+원숭이
+원인
+원장
+원피스
+월급
+월드컵
+월세
+월요일
+웨이터
+위반
+위법
+위성
+위원
+위험
+위협
+윗사람
+유난히
+유럽
+유명
+유물
+유산
+유적
+유치원
+유학
+유행
+유형
+육군
+육상
+육십
+육체
+은행
+음력
+음료
+음반
+음성
+음식
+음악
+음주
+의견
+의논
+의문
+의복
+의식
+의심
+의외로
+의욕
+의원
+의학
+이것
+이곳
+이념
+이놈
+이달
+이대로
+이동
+이렇게
+이력서
+이론적
+이름
+이민
+이발소
+이별
+이불
+이빨
+이상
+이성
+이슬
+이야기
+이용
+이웃
+이월
+이윽고
+이익
+이전
+이중
+이튿날
+이틀
+이혼
+인간
+인격
+인공
+인구
+인근
+인기
+인도
+인류
+인물
+인생
+인쇄
+인연
+인원
+인재
+인종
+인천
+인체
+인터넷
+인하
+인형
+일곱
+일기
+일단
+일대
+일등
+일반
+일본
+일부
+일상
+일생
+일손
+일요일
+일월
+일정
+일종
+일주일
+일찍
+일체
+일치
+일행
+일회용
+임금
+임무
+입대
+입력
+입맛
+입사
+입술
+입시
+입원
+입장
+입학
+자가용
+자격
+자극
+자동
+자랑
+자부심
+자식
+자신
+자연
+자원
+자율
+자전거
+자정
+자존심
+자판
+작가
+작년
+작성
+작업
+작용
+작은딸
+작품
+잔디
+잔뜩
+잔치
+잘못
+잠깐
+잠수함
+잠시
+잠옷
+잠자리
+잡지
+장관
+장군
+장기간
+장래
+장례
+장르
+장마
+장면
+장모
+장미
+장비
+장사
+장소
+장식
+장애인
+장인
+장점
+장차
+장학금
+재능
+재빨리
+재산
+재생
+재작년
+재정
+재채기
+재판
+재학
+재활용
+저것
+저고리
+저곳
+저녁
+저런
+저렇게
+저번
+저울
+저절로
+저축
+적극
+적당히
+적성
+적용
+적응
+전개
+전공
+전기
+전달
+전라도
+전망
+전문
+전반
+전부
+전세
+전시
+전용
+전자
+전쟁
+전주
+전철
+전체
+전통
+전혀
+전후
+절대
+절망
+절반
+절약
+절차
+점검
+점수
+점심
+점원
+점점
+점차
+접근
+접시
+접촉
+젓가락
+정거장
+정도
+정류장
+정리
+정말
+정면
+정문
+정반대
+정보
+정부
+정비
+정상
+정성
+정오
+정원
+정장
+정지
+정치
+정확히
+제공
+제과점
+제대로
+제목
+제발
+제법
+제삿날
+제안
+제일
+제작
+제주도
+제출
+제품
+제한
+조각
+조건
+조금
+조깅
+조명
+조미료
+조상
+조선
+조용히
+조절
+조정
+조직
+존댓말
+존재
+졸업
+졸음
+종교
+종로
+종류
+종소리
+종업원
+종종
+종합
+좌석
+죄인
+주관적
+주름
+주말
+주머니
+주먹
+주문
+주민
+주방
+주변
+주식
+주인
+주일
+주장
+주전자
+주택
+준비
+줄거리
+줄기
+줄무늬
+중간
+중계방송
+중국
+중년
+중단
+중독
+중반
+중부
+중세
+중소기업
+중순
+중앙
+중요
+중학교
+즉석
+즉시
+즐거움
+증가
+증거
+증권
+증상
+증세
+지각
+지갑
+지경
+지극히
+지금
+지급
+지능
+지름길
+지리산
+지방
+지붕
+지식
+지역
+지우개
+지원
+지적
+지점
+지진
+지출
+직선
+직업
+직원
+직장
+진급
+진동
+진로
+진료
+진리
+진짜
+진찰
+진출
+진통
+진행
+질문
+질병
+질서
+짐작
+집단
+집안
+집중
+짜증
+찌꺼기
+차남
+차라리
+차량
+차림
+차별
+차선
+차츰
+착각
+찬물
+찬성
+참가
+참기름
+참새
+참석
+참여
+참외
+참조
+찻잔
+창가
+창고
+창구
+창문
+창밖
+창작
+창조
+채널
+채점
+책가방
+책방
+책상
+책임
+챔피언
+처벌
+처음
+천국
+천둥
+천장
+천재
+천천히
+철도
+철저히
+철학
+첫날
+첫째
+청년
+청바지
+청소
+청춘
+체계
+체력
+체온
+체육
+체중
+체험
+초등학생
+초반
+초밥
+초상화
+초순
+초여름
+초원
+초저녁
+초점
+초청
+초콜릿
+촛불
+총각
+총리
+총장
+촬영
+최근
+최상
+최선
+최신
+최악
+최종
+추석
+추억
+추진
+추천
+추측
+축구
+축소
+축제
+축하
+출근
+출발
+출산
+출신
+출연
+출입
+출장
+출판
+충격
+충고
+충돌
+충분히
+충청도
+취업
+취직
+취향
+치약
+친구
+친척
+칠십
+칠월
+칠판
+침대
+침묵
+침실
+칫솔
+칭찬
+카메라
+카운터
+칼국수
+캐릭터
+캠퍼스
+캠페인
+커튼
+컨디션
+컬러
+컴퓨터
+코끼리
+코미디
+콘서트
+콜라
+콤플렉스
+콩나물
+쾌감
+쿠데타
+크림
+큰길
+큰딸
+큰소리
+큰아들
+큰어머니
+큰일
+큰절
+클래식
+클럽
+킬로
+타입
+타자기
+탁구
+탁자
+탄생
+태권도
+태양
+태풍
+택시
+탤런트
+터널
+터미널
+테니스
+테스트
+테이블
+텔레비전
+토론
+토마토
+토요일
+통계
+통과
+통로
+통신
+통역
+통일
+통장
+통제
+통증
+통합
+통화
+퇴근
+퇴원
+퇴직금
+튀김
+트럭
+특급
+특별
+특성
+특수
+특징
+특히
+튼튼히
+티셔츠
+파란색
+파일
+파출소
+판결
+판단
+판매
+판사
+팔십
+팔월
+팝송
+패션
+팩스
+팩시밀리
+팬티
+퍼센트
+페인트
+편견
+편의
+편지
+편히
+평가
+평균
+평생
+평소
+평양
+평일
+평화
+포스터
+포인트
+포장
+포함
+표면
+표정
+표준
+표현
+품목
+품질
+풍경
+풍속
+풍습
+프랑스
+프린터
+플라스틱
+피곤
+피망
+피아노
+필름
+필수
+필요
+필자
+필통
+핑계
+하느님
+하늘
+하드웨어
+하룻밤
+하반기
+하숙집
+하순
+하여튼
+하지만
+하천
+하품
+하필
+학과
+학교
+학급
+학기
+학년
+학력
+학번
+학부모
+학비
+학생
+학술
+학습
+학용품
+학원
+학위
+학자
+학점
+한계
+한글
+한꺼번에
+한낮
+한눈
+한동안
+한때
+한라산
+한마디
+한문
+한번
+한복
+한식
+한여름
+한쪽
+할머니
+할아버지
+할인
+함께
+함부로
+합격
+합리적
+항공
+항구
+항상
+항의
+해결
+해군
+해답
+해당
+해물
+해석
+해설
+해수욕장
+해안
+핵심
+핸드백
+햄버거
+햇볕
+햇살
+행동
+행복
+행사
+행운
+행위
+향기
+향상
+향수
+허락
+허용
+헬기
+현관
+현금
+현대
+현상
+현실
+현장
+현재
+현지
+혈액
+협력
+형부
+형사
+형수
+형식
+형제
+형태
+형편
+혜택
+호기심
+호남
+호랑이
+호박
+호텔
+호흡
+혹시
+홀로
+홈페이지
+홍보
+홍수
+홍차
+화면
+화분
+화살
+화요일
+화장
+화학
+확보
+확인
+확장
+확정
+환갑
+환경
+환영
+환율
+환자
+활기
+활동
+활발히
+활용
+활짝
+회견
+회관
+회복
+회색
+회원
+회장
+회전
+횟수
+횡단보도
+효율적
+후반
+후춧가루
+훈련
+훨씬
+휴식
+휴일
+흉내
+흐름
+흑백
+흑인
+흔적
+흔히
+흥미
+흥분
+희곡
+희망
+희생
+흰색
+힘껏
diff --git a/bip-0042.mediawiki b/bip-0042.mediawiki
index 00ac10c..223076f 100644
--- a/bip-0042.mediawiki
+++ b/bip-0042.mediawiki
@@ -5,7 +5,7 @@
Author: Pieter Wuille <pieter.wuille@gmail.com>
Comments-Summary: Unanimously Recommended for implementation
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0042
- Status: Draft
+ Status: Final
Type: Standards Track
Created: 2014-04-01
License: PD
diff --git a/bip-0043.mediawiki b/bip-0043.mediawiki
index 85578d8..67b799d 100644
--- a/bip-0043.mediawiki
+++ b/bip-0043.mediawiki
@@ -6,7 +6,7 @@
Pavol Rusnak <stick@satoshilabs.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0043
- Status: Draft
+ Status: Final
Type: Informational
Created: 2014-04-24
</pre>
diff --git a/bip-0044.mediawiki b/bip-0044.mediawiki
index 5ee2209..4ddd56b 100644
--- a/bip-0044.mediawiki
+++ b/bip-0044.mediawiki
@@ -263,18 +263,6 @@ is required and a pull request to the above file should be created.
|m / 44' / 1' / 1' / 1 / 1
|}
-==Compatible wallets==
-
-* [[https://play.google.com/store/apps/details?id=com.mycelium.wallet|Mycelium Bitcoin Wallet (Android)]] ([[https://github.com/mycelium-com/wallet|source]])
-* [[https://copay.io/|Copay]] ([[https://github.com/bitpay/copay|source]])
-* [[https://www.coinvault.io/|CoinVault]] ([[https://github.com/CoinVault/dotblock|source]])
-* [[https://samouraiwallet.com/|Samourai Wallet]] ([[https://github.com/Samourai-Wallet/samourai-wallet-android|source]])
-
-* [[https://trezor.io/|TREZOR]] ([[https://github.com/trezor/|source]])
-* [[https://www.keepkey.com/|KeepKey]] ([[https://github.com/keepkey/|source]])
-* [[https://www.ledgerwallet.com/|Ledger Wallet]] ([[https://github.com/LedgerHQ|source]])
-* [[https://21.co/learn/21-lib-wallet/|21 Machine Wallet]] ([[https://github.com/21dotco|source]])
-
==Reference==
* [[bip-0032.mediawiki|BIP32 - Hierarchical Deterministic Wallets]]
diff --git a/bip-0045.mediawiki b/bip-0045.mediawiki
index d364784..d721582 100644
--- a/bip-0045.mediawiki
+++ b/bip-0045.mediawiki
@@ -16,7 +16,7 @@
This BIP defines a structure for hierarchical deterministic P2SH multi-party
multi-signature wallets (HDPM wallets from now on) based on the algorithm
-described in BIP-0032 (BIP32 from now on) and purpose scheme described in
+described in BIP-0032 (BIP32 from now on) and purpose scheme described in
BIP-0043 (BIP43 from now on).
This BIP is a particular application of BIP43.
@@ -62,8 +62,8 @@ Hardened derivation is used at this level.
The index of the party creating a P2SH multisig address. The indices can
be determined independently by lexicographically sorting the purpose public
-keys of each cosigner. Each cosigner creates addresses on it's own branch,
-even though they have independent extended master public key, as explained
+keys of each cosigner. Each cosigner creates addresses on its own branch,
+even though they have independent extended master public key, as explained
in the "Address generation" section.
Note that the master public key is not shared amongst the cosigners. Only the
@@ -79,12 +79,12 @@ purpose public keys:
03f76588e06c0d688617ef365d1e58a7f1aa84daa3801380b1e7f12acc9a69cd13
</pre>
-it should use `m / 45 ' / 0 / *` for
-`039863fb5f07b667d9b1ca68773c6e6cdbcac0088ffba9af46f6f6acd153d44463`,
-`m / 45 ' / 1 / *` for
-`03a473275a750a20b7b71ebeadfec83130c014da4b53f1c4743fcf342af6589a38`,
-and `m / 45 ' / 2 / *` for
-`03f76588e06c0d688617ef365d1e58a7f1aa84daa3801380b1e7f12acc9a69cd13`,
+it should use <code>m / 45 ' / 0 / *</code> for
+<code>039863fb5f07b667d9b1ca68773c6e6cdbcac0088ffba9af46f6f6acd153d44463</code>,
+<code>m / 45 ' / 1 / *</code> for
+<code>03a473275a750a20b7b71ebeadfec83130c014da4b53f1c4743fcf342af6589a38</code>,
+and <code>m / 45 ' / 2 / *</code> for
+<code>03f76588e06c0d688617ef365d1e58a7f1aa84daa3801380b1e7f12acc9a69cd13</code>,
as dictated by their lexicographical order.
@@ -102,7 +102,7 @@ chain is used for addresses which are not meant to be visible outside of the
wallet and is used for return transaction change.
For example, if cosigner 2 wants to generate a change address, he would use
-`m / 45 ' / 2 / 1 / *`, and `m / 45 ' / 2 / 0 / *` for a receive
+<code>m / 45 ' / 2 / 1 / *</code>, and <code>m / 45 ' / 2 / 0 / *</code> for a receive
address.
Non-hardened derivation is used at this level.
@@ -118,7 +118,7 @@ Non-hardened derivation is used at this level.
Each party generates their own extended master keypair and shares the
extended purpose' public key with the others, which is stored encrypted.
Each party can generate any of the other's derived public keys, but only
-his own private keys.
+his own private keys.
===Address Generation Procedure===
When generating an address, each party can independently generate the N needed
@@ -137,18 +137,18 @@ others using the next index, and calculate the needed script for the address.
Example: Cosigner #2 wants to receive a payment to the shared wallet. His last
used index on his own branch is 4. Then, the path for the next receive
-address is `m/45'/2/0/5`. He uses this same path in all of the cosigners
+address is <code>m/45'/2/0/5</code>. He uses this same path in all of the cosigners
trees to generate a public key for each one, and from that he gets the new
p2sh address.
====Change address case====
Again, each cosigner generates addresses only on his own branch. One of the
n cosigners wants to create an outgoing payment, for which he'll need a change
address. He generates a new address using the same procedure as above, but
-using a separate index to track the used change addresses.
+using a separate index to track the used change addresses.
Example: Cosigner #5 wants to send a payment from the shared wallet, for which
he'll need a change address. His last used change index on his own branch is
-11. Then, the path for the next change address is `m/45'/5/1/12`. He uses
+11. Then, the path for the next change address is <code>m/45'/5/1/12</code>. He uses
this same path in all of the cosigners trees to generate a public key for each
one, and from that he gets the new p2sh address.
@@ -163,7 +163,7 @@ that specific address (using the same path that generated the public key in
that address, but deriving the private key instead), and sign it. Once the
proposal reaches m signatures, any cosigner can broadcast it to the network,
becoming final. The specifics of how this proposal is structured, and the
-protocol to accept or reject it, belong to another BIP, in my opinion.
+protocol to accept or reject it, belong to another BIP, in my opinion.
===Address discovery===
@@ -171,8 +171,8 @@ When the master seed is imported from an external source the software should
start to discover the addresses in the following manner:
# for each cosigner:
-# derive the cosigner's node (`m / 45' / cosigner_index`)
-# for both the external and internal chains on this node (`m / 45' / cosigner_index / 0` and `m / 45' / cosigner_index / 1`):
+# derive the cosigner's node (<code>m / 45' / cosigner_index</code>)
+# for both the external and internal chains on this node (<code>m / 45' / cosigner_index / 0</code> and <code>m / 45' / cosigner_index / 1</code>):
# scan addresses of the chain; respect the gap limit described below
Please note that the algorithm uses the transaction history, not address
@@ -182,7 +182,7 @@ even if the earlier ones don't have transactions
===Address gap limit===
-Address gap limit is currently set to 20. If the software hits 20 unused
+Address gap limit is currently set to 20. If the software hits 20 unused
addresses (no transactions associated with that address) in a row, it expects
there are no used addresses beyond this point and stops searching the address chain.
@@ -192,13 +192,13 @@ an external chain by generating a new address.
===Rationale===
-This stucture provides a general way of doing HDPM wallets between m-of-n
+This structure provides a general way of doing HDPM wallets between m-of-n
parties. Here are some explanations about the design decisions made.
The reason for using separate branches for each cosigner is we don't want
two of them generating the same address and receiving simultaneous payments
to it. The ideal case is that each address receives at most one payment,
-requested by the corresponding cosigner.
+requested by the corresponding cosigner.
==Examples==
@@ -244,7 +244,7 @@ requested by the corresponding cosigner.
| m / 45' / 2 / 1 / 9
|}
-==Compatible walets==
+==Compatible wallets==
* [[https://copay.io|Copay wallet]] ([[https://github.com/bitpay/copay|source]])
diff --git a/bip-0047.mediawiki b/bip-0047.mediawiki
index ace365c..af801f9 100644
--- a/bip-0047.mediawiki
+++ b/bip-0047.mediawiki
@@ -312,7 +312,7 @@ A recipient specifies their preference for alternate notification by setting the
===Bitmessage Notification===
-A recipient prefers to receive notifications via Bitmessage indiates this preference by:
+A recipient which prefers to receive notifications via Bitmessage indicates this preference by:
* Setting bit 0 of the features byte to 1
* Setting byte 67 of the serialized payment code to the desired Bitmessage address version
diff --git a/bip-0049.mediawiki b/bip-0049.mediawiki
index 109fde8..0029003 100644
--- a/bip-0049.mediawiki
+++ b/bip-0049.mediawiki
@@ -2,10 +2,10 @@
BIP: 49
Layer: Applications
Title: Derivation scheme for P2WPKH-nested-in-P2SH based accounts
- Author: Daniel Weigl <Daniel.Weigl@mycelium.com>
+ Author: Daniel Weigl <DanielWeigl@gmx.at>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0049
- Status: Draft
+ Status: Final
Type: Informational
Created: 2016-05-19
License: PD
@@ -20,19 +20,19 @@ This BIP defines the derivation scheme for HD wallets using the P2WPKH-nested-in
With the usage of P2WPKH-nested-in-P2SH ([[bip-0141.mediawiki#p2wpkh-nested-in-bip16-p2sh|BIP 141]]) transactions it is necessary to have a common derivation scheme.
It allows the user to use different HD wallets with the same masterseed and/or a single account seamlessly.
-Thus the user needs to create a dedicated segregate witness accounts, which ensures that only wallets compatible with this BIP
-will detect the account and handle them appropriately.
+Thus the user needs to create dedicated segregated witness accounts, which ensures that only wallets compatible with this BIP
+will detect the accounts and handle them appropriately.
===Considerations===
Two generally different approaches are possible for current BIP44 capable wallets:
-1) Allow the user to use the same account(s) that they already uses, but add segregated witness encoded addresses to it
+1) Allow the user to use the same account(s) that they already uses, but add segregated witness encoded addresses to it.
1.1) Use the same public keys as defined in BIP44, but in addition to the normal P2PKH address also derive the P2SH address from it.
1.2) Use the same account root, but branch off and derive different external and internal chain roots to derive dedicated public keys for the segregated witness addresses.
-2) Create dedicated accounts only used for segregated witness addresses.
+2) Create dedicated accounts used only for segregated witness addresses.
The solutions from point 1 have a common disadvantage: if a user imports/recovers a BIP49-compatible wallet masterseed into/in a non-BIP49-compatible wallet, the account might show up but also it might miss some UTXOs.
@@ -53,7 +53,7 @@ serialization method.
m / purpose' / coin_type' / account' / change / address_index
</pre>
-For the `purpose`-path level it uses `49'`. The rest of the levels are used as defined in BIP44
+For the `purpose`-path level it uses `49'`. The rest of the levels are used as defined in BIP44.
===Address derivation===
@@ -66,19 +66,28 @@ To derive the P2SH address from the above calculated public key, we use the enca
scriptPubKey: HASH160 <20-byte-script-hash> EQUAL
(0xA914{20-byte-script-hash}87)
+
+===Extended Key Version===
+
+When serializing extended keys, this scheme uses alternate version bytes. Extended public keys use <code>0x049d7cb2</code> to produce a "ypub" prefix, and private keys use <code>0x049d7878</code> to produce a "yprv" prefix. Testnet uses <code>0x044a5262</code> "upub" and <code>0x044a4e28</code> "uprv."
+
+Additional registered version bytes are listed in [[https://github.com/satoshilabs/slips/blob/master/slip-0132.md|SLIP-0132]].
+
+
==Backwards Compatibility==
-This BIP is not backwards compatible by design as described under [#considerations]. A not compatible wallet will not discover accounts at all and the user will notice that something is wrong.
+This BIP is not backwards compatible by design as described under [[#considerations|considerations]]. An incompatible wallet will not discover accounts at all and the user will notice that something is wrong.
==Test vectors==
<pre>
masterseedWords = abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about
- masterseed = tprv8ZgxMBicQKsPe5YMU9gHen4Ez3ApihUfykaqUorj9t6FDqy3nP6eoXiAo2ssvpAjoLroQxHqr3R5nE3a5dU3DHTjTgJDd7zrbniJr6nrCzd (testnet)
+ masterseed = uprv8tXDerPXZ1QsVNjUJWTurs9kA1KGfKUAts74GCkcXtU8GwnH33GDRbNJpEqTvipfCyycARtQJhmdfWf8oKt41X9LL1zeD2pLsWmxEk3VAwd (testnet)
// Account 0, root = m/49'/1'/0'
- account0Xpriv = tprv8gRrNu65W2Msef2BdBSUgFdRTGzC8EwVXnV7UGS3faeXtuMVtGfEdidVeGbThs4ELEoayCAzZQ4uUji9DUiAs7erdVskqju7hrBcDvDsdbY (testnet)
+ account0Xpriv = uprv91G7gZkzehuMVxDJTYE6tLivdF8e4rvzSu1LFfKw3b2Qx1Aj8vpoFnHdfUZ3hmi9jsvPifmZ24RTN2KhwB8BfMLTVqaBReibyaFFcTP1s9n (testnet)
+ account0Xpub = upub5EFU65HtV5TeiSHmZZm7FUffBGy8UKeqp7vw43jYbvZPpoVsgU93oac7Wk3u6moKegAEWtGNF8DehrnHtv21XXEMYRUocHqguyjknFHYfgY (testnet)
// Account 0, first receiving private key = m/49'/1'/0'/0/0
account0recvPrivateKey = cULrpoZGXiuC19Uhvykx7NugygA3k86b3hmdCeyvHYQZSxojGyXJ
diff --git a/bip-0061.mediawiki b/bip-0061.mediawiki
index 1e3d41f..b08739d 100644
--- a/bip-0061.mediawiki
+++ b/bip-0061.mediawiki
@@ -83,7 +83,7 @@ the reject message, "client" is the peer that will receive the message.
==== reject version codes ====
-Codes generated during the intial connection process in response to a "version" message:
+Codes generated during the initial connection process in response to a "version" message:
{|
| Code || Description
diff --git a/bip-0064.mediawiki b/bip-0064.mediawiki
index 22e56ba..82a6cfd 100644
--- a/bip-0064.mediawiki
+++ b/bip-0064.mediawiki
@@ -5,7 +5,7 @@
Author: Mike Hearn <hearn@vinumeris.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0064
- Status: Draft
+ Status: Obsolete
Type: Standards Track
Created: 2014-06-10
</pre>
diff --git a/bip-0065.mediawiki b/bip-0065.mediawiki
index 904dc16..1365884 100644
--- a/bip-0065.mediawiki
+++ b/bip-0065.mediawiki
@@ -94,7 +94,7 @@ There exist a number of protocols where a transaction output is created that
requires the co-operation of both parties to spend the output. To ensure the
failure of one party does not result in the funds becoming lost, refund
transactions are setup in advance using nLockTime. These refund transactions
-need to be created interactively, and additionaly, are currently vulnerable to
+need to be created interactively, and additionally, are currently vulnerable to
transaction malleability. CHECKLOCKTIMEVERIFY can be used in these protocols,
replacing the interactive setup with a non-interactive setup, and additionally,
making transaction malleability a non-issue.
@@ -136,7 +136,7 @@ transaction is created, tx3, to ensure that should the payee vanish the payor
can get their deposit back. The process by which the refund transaction is
created is currently vulnerable to transaction malleability attacks, and
additionally, requires the payor to store the refund. Using the same
-scriptPubKey from as in the Two-factor wallets example solves both these issues.
+scriptPubKey form as in the Two-factor wallets example solves both these issues.
===Trustless Payments for Publishing Data===
@@ -312,20 +312,24 @@ time.
==References==
-PayPub - https://github.com/unsystem/paypub
+PayPub
-Jeremy Spilman Payment Channels - https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2013-April/002433.html
+* https://github.com/unsystem/paypub
+
+Jeremy Spilman Payment Channels
+
+* https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2013-April/002433.html
==Implementations==
Python / python-bitcoinlib
-- https://github.com/petertodd/checklocktimeverify-demos
+* https://github.com/petertodd/checklocktimeverify-demos
JavaScript / Node.js / bitcore
-- https://github.com/mruddy/bip65-demos
+* https://github.com/mruddy/bip65-demos
==Copyright==
diff --git a/bip-0066.mediawiki b/bip-0066.mediawiki
index 7cc3cf2..936d507 100644
--- a/bip-0066.mediawiki
+++ b/bip-0066.mediawiki
@@ -142,3 +142,6 @@ An implementation for the reference client is available at https://github.com/bi
This document is extracted from the previous BIP62 proposal, which had input from various people, in particular Greg Maxwell and Peter Todd, who gave feedback about this document as well.
+==Disclosures==
+
+* Subsequent to the network-wide adoption and enforcement of this BIP, the author [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-July/009697.html disclosed] that strict DER signatures provided an indirect solution to a consensus bug he had previously discovered.
diff --git a/bip-0067.mediawiki b/bip-0067.mediawiki
index 9baf6c0..b164289 100644
--- a/bip-0067.mediawiki
+++ b/bip-0067.mediawiki
@@ -46,7 +46,7 @@ Sort them lexicographically according to their binary representation:
..before using the resulting list of keys in a standard multisig redeem script:
- OP_2 021f2f6e1e50cb6a953935c3601284925decd3fd21bc445712576873fb8c6ebc18 022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da 03e3818b65bcc73a7d64064106a859cc1a5a728c4345ff0b641209fba0d90de6e9 OP_3 OP_CHECKSIG
+ OP_2 021f2f6e1e50cb6a953935c3601284925decd3fd21bc445712576873fb8c6ebc18 022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da 03e3818b65bcc73a7d64064106a859cc1a5a728c4345ff0b641209fba0d90de6e9 OP_3 OP_CHECKMULTISIG
Hash the redeem script according to BIP-0016 to get the P2SH address.
diff --git a/bip-0069.mediawiki b/bip-0069.mediawiki
index e9f9245..3aa9463 100644
--- a/bip-0069.mediawiki
+++ b/bip-0069.mediawiki
@@ -78,7 +78,7 @@ N.B. All comparisons do not need to operate in constant time since they are not
===Transaction Inputs===
-Transaction inputs are defined by the hash of a previous transaction, the output index of of a UTXO from that previous transaction, the size of an unlocking script, the unlocking script, and a sequence number. [3]
+Transaction inputs are defined by the hash of a previous transaction, the output index of a UTXO from that previous transaction, the size of an unlocking script, the unlocking script, and a sequence number. [3]
For sorting inputs, the hash of the previous transaction and the output index within that transaction are sufficient for sorting purposes; each transaction hash has an extremely high probability of being unique in the blockchain — this is enforced for coinbase transactions by BIP30 — and output indices within a transaction are unique.
For the sake of efficiency, transaction hashes should be compared first before output indices, since output indices from different transactions are often equivalent, while all bytes of the transaction hash are effectively random variables.
@@ -87,7 +87,7 @@ In the event of two matching transaction hashes, the respective previous output
If the previous output indices match, the inputs are considered equal.
Transaction malleability will not negatively impact the correctness of this process.
-Even if a wallet client follows this process using unconfirmed UTXOs as inputs and an attacker changes modifies the blockchain’s record of the hash of the previous transaction, the wallet client will include the invalidated previous transaction hash in its input data, and will still correctly sort with respect to that invalidated hash.
+Even if a wallet client follows this process using unconfirmed UTXOs as inputs and an attacker modifies the blockchain’s record of the hash of the previous transaction, the wallet client will include the invalidated previous transaction hash in its input data, and will still correctly sort with respect to that invalidated hash.
===Transaction Outputs===
diff --git a/bip-0074.mediawiki b/bip-0074.mediawiki
index 01fcf2c..b6e9b39 100644
--- a/bip-0074.mediawiki
+++ b/bip-0074.mediawiki
@@ -5,7 +5,7 @@
Author: Toby Padilla <tobypadilla@gmail.com>
Comments-Summary: Unanimously Discourage for implementation
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0074
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2016-01-29
License: PD
diff --git a/bip-0075.mediawiki b/bip-0075.mediawiki
index 1a8474f..8c49645 100644
--- a/bip-0075.mediawiki
+++ b/bip-0075.mediawiki
@@ -8,7 +8,7 @@
James MacWhyte <macwhyte@gmail.com>
Comments-Summary: Recommended for implementation (one person)
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0075
- Status: Draft
+ Status: Final
Type: Standards Track
Created: 2015-11-20
License: CC-BY-4.0
@@ -174,7 +174,7 @@ message ProtocolMessage {
===Versioning===
This BIP introduces version 1 of this protocol. All messages sent using these base requirements MUST use a value of 1 for the version number. Any future BIPs that modify this protocol (encryption schemes, etc) MUST each increment the version number by 1.
-When initiating communication, the version field of the first message SHOULD be set to the highest verison number the sender understands. All clients MUST be able to understand all version numbers less than the highest number they support. If a client receives a message with a version number higher than they understand, they MUST send the message back to the sender with a status code of 101 ("version too high") and the version field set to the highest version number the recipient understands. The sender must then resend the original message using the same version number returned by the recipient or abort.
+When initiating communication, the version field of the first message SHOULD be set to the highest version number the sender understands. All clients MUST be able to understand all version numbers less than the highest number they support. If a client receives a message with a version number higher than they understand, they MUST send the message back to the sender with a status code of 101 ("version too high") and the version field set to the highest version number the recipient understands. The sender must then resend the original message using the same version number returned by the recipient or abort.
===EncryptedProtocolMessage===
The '''EncryptedProtocolMessage''' message is an encapsualting wrapper for any Payment Protocol message. It allows two-way, authenticated and encrypted communication of Payment Protocol messages in order to keep their contents secret. The message also includes a status code and status message that is used for error communication such that the protocol does not rely on transport-layer error handling.
diff --git a/bip-0079.mediawiki b/bip-0079.mediawiki
new file mode 100644
index 0000000..99430d9
--- /dev/null
+++ b/bip-0079.mediawiki
@@ -0,0 +1,124 @@
+<pre>
+ BIP: 79
+ Layer: Applications
+ Title: Bustapay :: a practical coinjoin protocol
+ Author: Ryan Havar <rhavar@protonmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0079
+ Status: Proposed
+ Type: Informational
+ Created: 2018-10-05
+ License: CC0-1.0
+</pre>
+
+
+==Abstract==
+
+The way bitcoin transactions are normally created leaks more information than desirable, and as a result has been exploited by unreasonably effective blockchain analysis techniques to jeopardize important properties that are expected of a useful currency.
+
+Bustapay is a simple and practical protocol for the sender and receiver of a payment to collaboratively sign a bitcoin transaction in such a way that busts some analysis assumptions to the immediate benefit of the sender and receiver. Furthermore it does so in such a way that gives a significant amount of control to the receiver to help manage their utxo set size, a constant problem for bitcoin merchants.
+
+==Copyright==
+
+This document is licensed under the Creative Commons CC0 1.0 Universal license.
+
+==Motivation==
+
+One of the most powerful blockchain analysis heuristics has been to assume all inputs of a transaction are controlled by a single party unless otherwise known (such as by the distinctive structure of a traditional coinjoin, or multisig spends that are validated onchain). Combined with other techniques (notably change-output guessing) this has lead to unexpectedly accurate tracking that has exposed bitcoin participants to unacceptable personal, business and financial risks -- undermining bitcoin's utility and fungibility -- and ultimately jeopardizing its ability to function as useful money.
+
+We however can bust these assumptions with a sender-receiver coinjoin. To prevent costless spy/DoS attacks, we require the sending party to provide a fully-valid ready-to-propagate transaction to initiate the process, that the receiver can broadcast if the sender never completes the coinjoin thus tying the cost to that of spending a utxo. Most promisingly, bustapay transactions do not have an identifiable structure so any network analysis will be not able to tell if a given transaction is a bustapay transaction or not which erodes the confidence of their entire models, providing positive externalities for the entire bitcoin ecosystem.
+
+Bustapay transactions also do not grow the receiver's count of unspent transaction outputs, and in fact gives the receiver an opportunity to better manage their utxo set, something normally only done when sending payments. Large utxo sets are often problematic and expensive, and frequently requiring privacy-destroying consolidation. Besides busting clustering assumptions, bustapay also provides a layer of obfuscation of send amounts.
+
+It is worth noting that this specification has eschewed complexity and potentially useful extensions on the assumption that simplicity is of the most important to encourage adoption.
+
+
+==Overview==
+
+A bustapay payment is made from a sender to a receiver.
+
+====Step 1. Sender creates a bitcoin transaction paying the receiver====
+
+This transaction must use segwit for all inputs, and be fully valid and signed. The transaction must be eligible for propagation on the network (but not done so at this stage)
+
+====Step 2. Sender gives the "template transaction" to the receiver====
+
+This is done via an HTTP POST request, sent to a "bustapay url"
+
+====Step 3. Receiver processes the transaction and returns a partially signed coinjoin====
+
+The receiver validates the transaction, and pays himself. The receiver then adds one or more of his own inputs (known as the ''contributed inputs'') and (optionally) increases the output that pays himself (generally by the sum of the ''contributed inputs''). Doing so creates a ''partial transaction'', which the receiver returns to the sender. It is called such as it requires the sender to re-sign his own inputs.
+
+====Step 4. Sender validates, re-signs, and propagates on the bitcoin network====
+
+The sender MUST validate the ''partial transaction'' was changed correctly and non-maliciously (to allow using potentially untrusted communication channels), re-sign its original inputs and propagate the final transaction over the bitcoin network.
+
+====Step 5. Receiver observes the finalized transaction on the bitcoin network====
+
+Once the receiver has seen the finalized transactions on the network (and has enough confirmations) it can process it like a normal payment for the sent amount (as opposed to the amount that it looks like on the network). If the receiver does not see the finalized transaction after a timeout, they will propagate the original "template transaction", which ensures the payment happens and functions a strong anti-DoS mechanism.
+
+== Specification ==
+
+The standard way of letting a sender know where to send a bustapay transaction is done via a bip21 encoded address. The key value "bpu" (short for "BustaPayUrl") should be used. An example of such address would be bitcoin:2NABbUr9yeRCp1oUCtVmgJF8HGRCo3ifpTT?bpu=https://bp.bustabit.com/submit It is highly encouraged that urls are kept short.
+
+When the sender is creating a "template transaction" it is done almost identically to creating a normal send, with the exception that *only* segwit inputs may be used. The sender is also encouraged to use a slightly more aggressive feerate than usual as well as BIP125 (Opt-in Full Replace-by-Fee Signaling), but neither is strictly required.
+
+The template transaction should be sent to the receiver via an HTTP POST to the bustapay url, with a binary encoded body.
+
+The receiver is then responsible for validating the template transaction. If there is a problem with the transaction, or the receiver is generally unhappy with the transaction (e.g. fees are too small) the HTTP response code of 422 should be used and a human-readable string containing information on why which can be directly given to the user.
+
+Should the receiver reject a transaction, it should not attempt to propagate it on the network. However it is important for the sender to be aware that the receiver *could* at any time (regardless of which error was given) send this transaction. The client should therefor assume the receiver will, and act accordingly (either retry with adjustments or just propagate the transaction). It is imperative that the sender never finds themselves in a situation where two payments to the sender could be valid.
+
+=== Contributed Input Choice ===
+
+The receiver must add at least one input to the transaction (the "contributed inputs"). If the receiver has no inputs, it should use a 500 internal server error, so the client can send the transaction as per normal (or try again later). Its generally advised to only add a single contributed input, however they are circumstances where adding more than a single input can be useful.
+
+To prevent an attack where a receiver is continually sent variations of the same transaction to enumerate the receivers utxo set, it is essential that the receiver always returns the same contributed inputs when it's seen the same inputs.
+
+It is strongly preferable that the receiver makes an effort to pick a contributed input of the same type as the other transaction inputs if possible.
+
+=== Output Adjustment ===
+
+After adding inputs to the transaction, the receiver generally will want to adjust the output that pays himself by increasing it by the sum of the contributed input amounts (minus any fees he wants to contribute). However the only strict requirement is that the receiver *must never* remove inputs, and *must not* ever decrease any output amount.
+
+=== Returning the partial transaction ===
+
+The receiver must sign all contributed inputs in the partial transaction. The partial transaction should also remove all witnesses from the the original template transaction as they are no longer valid, and need to be recalculated by the sender. The receiver returns the partial transaction as a binary-encoded HTTP response with a status code of 200. To ensure compatibility with web-wallets and browser-based-tools, all responses (including errors) must contain the HTTP header "Access-Control-Allow-Origin: *"
+
+
+=== Sender Validation ===
+
+The sender *must* do important validation on the partial transaction. They *must* verify:
+
+* All template transaction inputs are in the partial transaction (but perhaps different order) and have the same sequence numbers.
+* The partial transaction contains at least one new (and signed) segwit input (owned by the receiver)
+* All outputs from the template transaction exist in the partial transaction, except they are allowed to be reordered and have their amounts increased (but *never* decreased)
+
+=== Creating Final Transaction ===
+
+After validating the partial transaction, the sender signs all its inputs to create what is now the final transaction. It is important that the sender is careful to not be tricked by the receiver into signing other inputs it owns. The sender must only sign inputs that existed in the template transaction. If the sender is not careful the receiver may "contribute" inputs that are actually owned with by the sender, with the hope the sender blindly signs everything.
+
+
+=== Transaction Publishing ===
+
+Once the final transaction is created, the sender should publish it directly onto the bitcoin network. If the sender does not do this after a reasonable time (e.g. 1 minute), the receiver should publish the template transaction as an important anti-spy/anti-DoS tactic . The sender may also choose to publish the template transaction instead of the final transaction if they believe the receiver to have unreasonably lowered the feerate of the transaction (i.e. increased the size of the transaction, but not the feerate enough). And both parties can consider publishing the template transaction even after the finalized transaction is on the network (taking advantage of replace-by-fee) if the final transaction is not confirming and the template transaction has more fees.
+
+
+=== Implementation Notes ===
+For anyone wanting to implement bustapay payments, here are some notes for receivers:
+
+* A transaction can easily be checked if it's suitable for the mempool with testmempoolaccept in bitcoin core 0.17+
+* Tracking transactions by txid is precarious. To keep your sanity make sure all inputs are segwit. But remember segwit does not prevent txid malleability unless you validate the transaction. So really make sure you're using testmempoolaccept at the very least
+* Bustapay could be abused by a malicious party to query if you own a deposit address or not. So never accept a bustapay transaction that pays an already used deposit address
+* You will need to keep a mapping of which utxos people have showed you and which you revealed. So if you see them again, you can reveal the same one of your own
+* Check if the transaction was already sorted according to BIP69, if so ensure the result stays that way. Otherwise probably just shuffle the inputs/outputs
+* A reference implementation is maintained at https://github.com/rhavar/bustapay which functions as a wrapper around some RPC calls to bitcoin core's wallet.
+* The sender must be careful of an attack where the receiver tries to add additional inputs that are controlled by the sender, with the hope that the sender blindly signs it.
+
+== Backwards Compatibility ==
+
+Bustapay is an optional payment protocol and therefor has no backwards compatibility concerns. It in fact can only be supported in addition to normal transaction processing, as falling back to a normal bitcoin transaction is a required behavior.
+
+
+== Credits ==
+The idea is obviously based upon Dr. Maxwell's seminal CoinJoin proposal, and reduced scope inspired by a simplification of the "pay 2 endpoint" blog post by blockstream.
diff --git a/bip-0080.mediawiki b/bip-0080.mediawiki
index 2c4d8a7..0cade19 100644
--- a/bip-0080.mediawiki
+++ b/bip-0080.mediawiki
@@ -59,7 +59,7 @@ Hardened derivation is used at this level.
Public/private keypairs are numbered from index 0 in sequentially increasing manner. This number is used as child index in BIP32 derivation.
-Public keys obtained at this level of the heirarchy are used to construct multisig deposit scripts, using a schema that is shared between the members as an out-of-band contract.
+Public keys obtained at this level of the hierarchy are used to construct multisig deposit scripts, using a schema that is shared between the members as an out-of-band contract.
Public derivation is used at this level.
diff --git a/bip-0081.mediawiki b/bip-0081.mediawiki
index e88ee14..96ac8d1 100644
--- a/bip-0081.mediawiki
+++ b/bip-0081.mediawiki
@@ -55,7 +55,7 @@ Public derivation is used at these levels, even when the index exceeds 2^31.
Public/private keypairs are numbered from index 0 in sequentially increasing manner. This number is used as child index in BIP32 derivation.
-Public keys obtained at this level of the heirarchy are used to construct multisig deposit scripts, using a schema that is shared between the members as an out-of-band contract.
+Public keys obtained at this level of the hierarchy are used to construct multisig deposit scripts, using a schema that is shared between the members as an out-of-band contract.
Public derivation is used at this level.
diff --git a/bip-0084.mediawiki b/bip-0084.mediawiki
new file mode 100644
index 0000000..dc5a05d
--- /dev/null
+++ b/bip-0084.mediawiki
@@ -0,0 +1,100 @@
+<pre>
+ BIP: 84
+ Layer: Applications
+ Title: Derivation scheme for P2WPKH based accounts
+ Author: Pavol Rusnak <stick@satoshilabs.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0084
+ Status: Draft
+ Type: Informational
+ Created: 2017-12-28
+ License: CC0-1.0
+</pre>
+
+==Abstract==
+
+This BIP defines the derivation scheme for HD wallets using the P2WPKH ([[bip-0173.mediawiki|BIP 173]]) serialization format for segregated witness transactions.
+
+==Motivation==
+
+With the usage of P2WPKH transactions it is necessary to have a common derivation scheme.
+It allows the user to use different HD wallets with the same masterseed and/or a single account seamlessly.
+
+Thus the user needs to create dedicated segregated witness accounts, which ensures that only wallets compatible with this BIP will detect the accounts and handle them appropriately.
+
+===Considerations===
+
+We use the same rationale as described in Considerations section of [[bip-0049.mediawiki|BIP 49]].
+
+==Specifications==
+
+This BIP defines the two needed steps to derive multiple deterministic addresses based on a [[bip-0032.mediawiki|BIP 32]] root account.
+
+===Public key derivation===
+
+To derive a public key from the root account, this BIP uses the same account-structure as defined in [[bip-0044.mediawiki|BIP 44]] and [[bip-0049.mediawiki|BIP 49]], but only uses a different purpose value to indicate the different transaction serialization method.
+
+<pre>
+m / purpose' / coin_type' / account' / change / address_index
+</pre>
+
+For the <code>purpose</code>-path level it uses <code>84'</code>. The rest of the levels are used as defined in BIP44 or BIP49.
+
+
+===Address derivation===
+
+To derive the P2WPKH address from the above calculated public key, we use the encapsulation defined in [[bip-0141.mediawiki#p2wpkh|BIP 141]]:
+
+
+ witness: <signature> <pubkey>
+ scriptSig: (empty)
+ scriptPubKey: 0 <20-byte-key-hash>
+ (0x0014{20-byte-key-hash})
+
+
+===Extended Key Version===
+
+When serializing extended keys, this scheme uses alternate version bytes. Extended public keys use <code>0x04b24746</code> to produce a "zpub" prefix, and private keys use <code>0x04b2430c</code> to produce a "zprv" prefix. Testnet uses <code>0x045f1cf6</code> "vpub" and <code>0x045f18bc</code> "vprv."
+
+Additional registered version bytes are listed in [[https://github.com/satoshilabs/slips/blob/master/slip-0132.md|SLIP-0132]].
+
+
+==Backwards Compatibility==
+
+This BIP is not backwards compatible by design as described under [#considerations]. An incompatible wallet will not discover accounts at all and the user will notice that something is wrong.
+
+==Test vectors==
+
+<pre>
+ mnemonic = abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about
+ rootpriv = zprvAWgYBBk7JR8Gjrh4UJQ2uJdG1r3WNRRfURiABBE3RvMXYSrRJL62XuezvGdPvG6GFBZduosCc1YP5wixPox7zhZLfiUm8aunE96BBa4Kei5
+ rootpub = zpub6jftahH18ngZxLmXaKw3GSZzZsszmt9WqedkyZdezFtWRFBZqsQH5hyUmb4pCEeZGmVfQuP5bedXTB8is6fTv19U1GQRyQUKQGUTzyHACMF
+
+ // Account 0, root = m/84'/0'/0'
+ xpriv = zprvAdG4iTXWBoARxkkzNpNh8r6Qag3irQB8PzEMkAFeTRXxHpbF9z4QgEvBRmfvqWvGp42t42nvgGpNgYSJA9iefm1yYNZKEm7z6qUWCroSQnE
+ xpub = zpub6rFR7y4Q2AijBEqTUquhVz398htDFrtymD9xYYfG1m4wAcvPhXNfE3EfH1r1ADqtfSdVCToUG868RvUUkgDKf31mGDtKsAYz2oz2AGutZYs
+
+ // Account 0, first receiving address = m/84'/0'/0'/0/0
+ privkey = KyZpNDKnfs94vbrwhJneDi77V6jF64PWPF8x5cdJb8ifgg2DUc9d
+ pubkey = 0330d54fd0dd420a6e5f8d3624f5f3482cae350f79d5f0753bf5beef9c2d91af3c
+ address = bc1qcr8te4kr609gcawutmrza0j4xv80jy8z306fyu
+
+ // Account 0, second receiving address = m/84'/0'/0'/0/1
+ privkey = Kxpf5b8p3qX56DKEe5NqWbNUP9MnqoRFzZwHRtsFqhzuvUJsYZCy
+ pubkey = 03e775fd51f0dfb8cd865d9ff1cca2a158cf651fe997fdc9fee9c1d3b5e995ea77
+ address = bc1qnjg0jd8228aq7egyzacy8cys3knf9xvrerkf9g
+
+ // Account 0, first change address = m/84'/0'/0'/1/0
+ privkey = KxuoxufJL5csa1Wieb2kp29VNdn92Us8CoaUG3aGtPtcF3AzeXvF
+ pubkey = 03025324888e429ab8e3dbaf1f7802648b9cd01e9b418485c5fa4c1b9b5700e1a6
+ address = bc1q8c6fshw2dlwun7ekn9qwf37cu2rn755upcp6el
+</pre>
+
+==Reference==
+
+* [[bip-0032.mediawiki|BIP32 - Hierarchical Deterministic Wallets]]
+* [[bip-0043.mediawiki|BIP43 - Purpose Field for Deterministic Wallets]]
+* [[bip-0044.mediawiki|BIP44 - Multi-Account Hierarchy for Deterministic Wallets]]
+* [[bip-0049.mediawiki|BIP49 - Derivation scheme for P2WPKH-nested-in-P2SH based accounts]]
+* [[bip-0141.mediawiki|BIP141 - Segregated Witness (Consensus layer)]]
+* [[bip-0173.mediawiki|BIP173 - Base32 address format for native v0-16 witness outputs]]
diff --git a/bip-0085.mediawiki b/bip-0085.mediawiki
new file mode 100644
index 0000000..029de1a
--- /dev/null
+++ b/bip-0085.mediawiki
@@ -0,0 +1,259 @@
+<pre>
+ BIP: 85
+ Layer: Applications
+ Title: Deterministic Entropy From BIP32 Keychains
+ Author: Ethan Kosakovsky <ethankosakovsky@protonmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0085
+ Status: Draft
+ Type: Informational
+ Created: 2020-03-20
+ License: BSD-2-Clause
+ OPL
+</pre>
+
+==Abstract==
+
+''"One Seed to rule them all,''
+''One Key to find them,''
+''One Path to bring them all,''
+''And in cryptography bind them."''
+
+It is not possible to maintain one single (mnemonic) seed backup for all keychains used across various wallets because there are a variety of incompatible standards. Sharing of seeds across multiple wallets is not desirable for security reasons. Physical storage of multiple seeds is difficult depending on the security and redundancy required.
+
+As HD keychains are essentially derived from initial entropy, this proposal provides a way to derive entropy from the keychain which can be fed into whatever method a wallet uses to derive the initial mnemonic seed or root key.
+
+==Definitions==
+
+The terminology related to keychains used in the wild varies widely, for example `seed` has various different meanings. In this document we define the terms
+
+# '''BIP32 root key''' is the root extended private key that is represented as the top root of the keychain in BIP32.
+# '''BIP39 mnemonic''' is the mnemonic phrase that is calculated from the entropy used before hashing of the mnemonic in BIP39.
+# '''BIP39 seed''' is the result of hashing the BIP39 mnemonic seed.
+
+==Motivation==
+
+Most wallets implement BIP32 which defines how a BIP32 root key can be used to derive keychains. As a consequence, a backup of just the BIP32 root key is sufficient to include all keys derived from it. BIP32 does not have a human friendly serialization of the BIP32 root key (or BIP32 extended keys in general) which makes paper backups or manually restoring the key more error-prone. BIP39 was designed solve this problem but rather than serialize the BIP32 root key, it takes some entropy, encoded to a "seed mnemonic", which is then hashed to derive the BIP39 seed which can be turned into the BIP32 root key. Saving the BIP39 mnemonic is enough to reconstruct the entire BIP32 keychain, but a BIP32 root key cannot be reversed back to the BIP39 mnemonic.
+
+Most wallets implement BIP39, so on initialization or restoration, the user must interact with a BIP39 mnemonic. Most wallets do not support of BIP32 extended private keys so each wallet must either share the same BIP39 mnemonic, or have a separate BIP39 mnemonic entirely. Neither scenarios are particularly satisfactory for security reasons. For example, some wallets may be inherently less secure like hot wallets on smartphones, Join Market servers, Lightning Network nodes. Having multiple seeds is far from desirable especially for those who rely on split key or redundancy backups in different geological locations. Adding is necessarily difficult and may result in users being more lazy with subsequent keys, such that compromises security or leads to key loss.
+
+There is added complication with wallets that implement other standards, or no standards at all. Bitcoin Core wallet uses a WIF as the ''hdseed'', and yet other wallets use different mnemonic schemes like Electrum to derive the BIP32 root key. Other cryptocurrencies like Monero also use a different mnemonic scheme entirely.
+
+Ultimately, all of the mnemonic/seed schemes start with some "initial entropy" to derive a mnemonic/seed, and then process the mnemonic into a BIP32 key, or private key. We can use BIP32 itself to derive the "initial entropy" to then recreate the same mnemonic or seed according the specific application standard of the target wallet. We can use a BIP44 like categorization to ensure unitform derivation according to the target application type.
+
+==Specification==
+
+We assume a single BIP32 master root key. This specification is not concerned with how this was derived (e.g. directly or via a mnemonic scheme such as BIP39).
+
+For each application that requires its own wallet, a unique private key is derived from the BIP32 master root key using fully hardened derivation path. The resulting private key (k) is then processed with HMAC-SHA512, where the key is "bip-entropy-from-k", and the message payload is the private key k: <code>HMAC-SHA512(key="bip-entropy-from-k", msg=k)</code>. The result produces 512 bits of entropy. Each application SHOULD use up to the required number of bits necessary for their operation truncating the rest
+
+The HMAC-SHA512 function is specified in [http://tools.ietf.org/html/rfc4231 RFC 4231].
+
+===Test vectors===
+
+====Test case 1====
+INPUT:
+* MASTER BIP32 ROOT KEY: xprv9s21ZrQH143K2LBWUUQRFXhucrQqBpKdRRxNVq2zBqsx8HVqFk2uYo8kmbaLLHRdqtQpUm98uKfu3vca1LqdGhUtyoFnCNkfmXRyPXLjbKb
+* PATH: m/83696968'/0'/0'
+
+OUTPUT:
+* DERIVED KEY=cca20ccb0e9a90feb0912870c3323b24874b0ca3d8018c4b96d0b97c0e82ded0
+* DERIVED ENTROPY=6bea85e51a05e6dbaf2ccee05097758213807997ba936589cef01c8f19c0079f395a0cd045efa3438677f3ef9ad34c9a68506626c5a17e51ed5e177852ee7fdc
+
+====Test case 2====
+INPUT:
+* MASTER BIP32 ROOT KEY: xprv9s21ZrQH143K2LBWUUQRFXhucrQqBpKdRRxNVq2zBqsx8HVqFk2uYo8kmbaLLHRdqtQpUm98uKfu3vca1LqdGhUtyoFnCNkfmXRyPXLjbKb
+*PATH: m/83696968'/0'/1'
+
+OUTPUT
+* DERIVED KEY=503776919131758bb7de7beb6c0ae24894f4ec042c26032890c29359216e21ba
+* DERIVED ENTROPY=6da87ce3a71869b7a644c9d574f67df168fee8c6b24bc0832ef3cc43e23ca5055dd0458431caa5b5b33113b1d7bbd706c20a5ea3b408808402f553ddf1a3d6d4
+
+==Reference Implementation==
+
+Python library implementation: [https://github.com/ethankosakovsky/bipentropy python-bipentropy]
+
+===Other Implementations===
+
+Coldcard Firmware: [https://github.com/Coldcard/firmware/pull/39]
+
+==Applications==
+
+Application number define how entropy will be used post processing. Some basic examples follow:
+
+Derivation path uses the format <code>m/83696968/' + /app_no' + /index'</code> where ''app_no'' path for the application, and `index` in the index.
+
+===BIP39===
+Application number: 39'
+
+Truncate trailing (least significant) bytes of the entropy to the number of bits required to map to the relevant word length 128 bits for 12 words, 256 bits for 24 words.
+
+The derivation path format is: <code>m/83696968'/39'/{language}'/{words}'/{index}'</code>
+
+Example a BIP39 mnemonic with 12 English words (first index) would have the path <code>m/83696968'/39'/0'/12'/0'</code> the next key would be <code>m/83696968'/39'/0'/12'/1'</code> etc.
+
+Language Table
+
+{|
+!Wordlist
+!Code
+|-
+| English
+| 0'
+|-
+| Japanese
+| 1'
+|-
+| Korean
+| 2'
+|-
+| Spanish
+| 3'
+|-
+| Chinese (Simplified)
+| 4'
+|-
+| Chinese (Traditional)
+| 5'
+|-
+| French
+| 6'
+|-
+| Italian
+| 7'
+|-
+| Czech
+| 8'
+|}
+
+Words Table
+
+{|
+!Words
+!Entropy
+!Code
+|-
+| 12 words
+| 128 bits
+| 12'
+|-
+| 18 words
+| 192 bits
+| 18'
+|-
+| 24 words
+| 256 bits
+| 24'
+|}
+
+====12 English words====
+BIP39 English 12 word mnemonic seed
+
+128 bits of entropy as input to BIP39 to derive 12 word mnemonic
+
+INPUT:
+* MASTER BIP32 ROOT KEY: xprv9s21ZrQH143K2LBWUUQRFXhucrQqBpKdRRxNVq2zBqsx8HVqFk2uYo8kmbaLLHRdqtQpUm98uKfu3vca1LqdGhUtyoFnCNkfmXRyPXLjbKb
+* PATH: m/83696968'/39'/0'/12'/0'
+
+OUTPUT:
+* DERIVED ENTROPY=6250b68daf746d12a24d58b4787a714b
+* DERIVED BIP39 MNEMONIC=girl mad pet galaxy egg matter matrix prison refuse sense ordinary nose
+
+====18 English words====
+BIP39 English 18 word mnemonic seed
+
+196 bits of entropy as input to BIP39 to derive 18 word mnemonic
+
+INPUT:
+* MASTER BIP32 ROOT KEY: xprv9s21ZrQH143K2LBWUUQRFXhucrQqBpKdRRxNVq2zBqsx8HVqFk2uYo8kmbaLLHRdqtQpUm98uKfu3vca1LqdGhUtyoFnCNkfmXRyPXLjbKb
+* PATH: m/83696968'/39'/0'/18'/0'
+
+OUTPUT:
+* DERIVED ENTROPY=938033ed8b12698449d4bbca3c853c66b293ea1b1ce9d9dc
+* DERIVED BIP39 MNEMONIC=near account window bike charge season chef number sketch tomorrow excuse sniff circle vital hockey outdoor supply token
+
+====24 English words====
+Derives 24 word BIP39 mnemonic seed
+
+256 bits of entropy as input to BIP39 to derive 24 word mnemonic
+
+INPUT:
+* MASTER BIP32 ROOT KEY: xprv9s21ZrQH143K2LBWUUQRFXhucrQqBpKdRRxNVq2zBqsx8HVqFk2uYo8kmbaLLHRdqtQpUm98uKfu3vca1LqdGhUtyoFnCNkfmXRyPXLjbKb
+* PATH: m/83696968'/39'/0'/24'/0'
+
+OUTPUT:
+* DERIVED ENTROPY=ae131e2312cdc61331542efe0d1077bac5ea803adf24b313a4f0e48e9c51f37f
+* DERIVED BIP39 MNEMONIC=puppy ocean match cereal symbol another shed magic wrap hammer bulb intact gadget divorce twin tonight reason outdoor destroy simple truth cigar social volcano
+
+===HD-Seed WIF===
+Application number: 2'
+
+Uses 256 bits of entropy as the secret exponent to derive a private key and encode as a compressed WIF which will be used as the hdseed for Bitcoin Core wallets.
+
+There is a very small chance that you'll make an invalid key that is zero or bigger than the order of the curve. If this occurs, software should hard fail (forcing users should iterate to the next index).
+
+From BIP32:
+> In case parse<sub>256</sub>(I<sub>L</sub>) ≥ n or k<sub>i</sub> = 0, the resulting key is invalid, and one should proceed with the next value for i. (Note: this has probability lower than 1 in 2<sup>127</sup>.)
+
+Path format is <code>m/83696968'/2'/{index}'</code>
+
+INPUT:
+* MASTER BIP32 ROOT KEY: xprv9s21ZrQH143K2LBWUUQRFXhucrQqBpKdRRxNVq2zBqsx8HVqFk2uYo8kmbaLLHRdqtQpUm98uKfu3vca1LqdGhUtyoFnCNkfmXRyPXLjbKb
+* PATH: m/83696968'/2'/0'
+
+OUTPUT
+* DERIVED ENTROPY=7040bb53104f27367f317558e78a994ada7296c6fde36a364e5baf206e502bb1
+* DERIVED WIF=Kzyv4uF39d4Jrw2W7UryTHwZr1zQVNk4dAFyqE6BuMrMh1Za7uhp
+
+===XPRV===
+Application number: 32'
+
+Taking 64 bytes of the HMAC digest, the first 32 bytes are the chain code, and second 32 bytes are the private key for BIP32 XPRV value. Child number, depth, and parent fingerprint are forced to zero.
+
+Path format is <code>m/83696968'/32'/{index}'</code>
+
+INPUT:
+* MASTER BIP32 ROOT KEY: xprv9s21ZrQH143K2LBWUUQRFXhucrQqBpKdRRxNVq2zBqsx8HVqFk2uYo8kmbaLLHRdqtQpUm98uKfu3vca1LqdGhUtyoFnCNkfmXRyPXLjbKb
+* PATH: m/83696968'/39'/0'
+
+OUTPUT
+* DERIVED ENTROPY=7040bb53104f27367f317558e78a994ada7296c6fde36a364e5baf206e502bb1
+* DERIVED WIF=xprv9s21ZrQH143K2srSbCSg4m4kLvPMzcWydgmKEnMmoZUurYuBuYG46c6P71UGXMzmriLzCCBvKQWBUv3vPB3m1SATMhp3uEjXHJ42jFg7myX
+
+===HEX===
+Application number: 128169'
+
+The derivation path format is: <code>m/83696968'/128169'/{num_bytes}'/{index}'</code>
+
+`16 <= num_bytes <= 64`
+
+Truncate trailing (least significant) bytes of the entropy after `num_bytes`.
+
+INPUT:
+* MASTER BIP32 ROOT KEY: xprv9s21ZrQH143K2LBWUUQRFXhucrQqBpKdRRxNVq2zBqsx8HVqFk2uYo8kmbaLLHRdqtQpUm98uKfu3vca1LqdGhUtyoFnCNkfmXRyPXLjbKb
+* PATH: m/83696968'/128169'/64'/0'
+
+OUTPUT
+* DERIVED ENTROPY=492db4698cf3b73a5a24998aa3e9d7fa96275d85724a91e71aa2d645442f878555d078fd1f1f67e368976f04137b1f7a0d19232136ca50c44614af72b5582a5c
+
+==Backwards Compatibility==
+
+This specification is not backwards compatible with any other existing specification.
+
+This specification relies on BIP32 but is agnostic to how the BIP32 root key is derived, as such this standard is allows it to derive wallets with initialization schemes like BIP39 or Electrum wallet style mnemonics.
+
+==Discussion==
+
+The reason for running the derived key through HMAC-SHA512 and truncating the result as necessary is to prevent leakage of the parent tree should the derived key (k) be compromized. While the specification requires the use of hardended key derivation which would prevent this, we cannot enforce hardened derivation, so this method ensures the derived entropy is hardened. Also from a semantic point of view, since the purpose is to derive entropy and not a private key, we are required to transform the child key. This acts in an abundance of caution to ward off unwanted side effects should k be used for a dual purpose, including as a nonce hash(k), where undesirable and unforeseen interactions could occur.
+
+==Acknowledgements==
+
+Many thanks to Peter Gray and Christopher Allen for their input, and to Peter for suggesting extra application use cases.
+
+==References==
+
+BIP32, BIP39
+
+==Copyright==
+
+This BIP is dual-licensed under the Open Publication License and BSD 2-clause license.
diff --git a/bip-0090.mediawiki b/bip-0090.mediawiki
index a2d3456..8cf3d6d 100644
--- a/bip-0090.mediawiki
+++ b/bip-0090.mediawiki
@@ -1,6 +1,5 @@
<pre>
BIP: 90
- Layer: Consensus (hard fork)
Title: Buried Deployments
Author: Suhas Daftuar <sdaftuar@chaincode.com>
Comments-Summary: Mostly Recommended for implementation, with some Discouragement
diff --git a/bip-0091.mediawiki b/bip-0091.mediawiki
index 93161e0..fa3d199 100644
--- a/bip-0091.mediawiki
+++ b/bip-0091.mediawiki
@@ -5,7 +5,7 @@
Author: James Hilliard <james.hilliard1@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0091
- Status: Draft
+ Status: Final
Type: Standards Track
Created: 2017-05-22
License: BSD-3-Clause
@@ -86,7 +86,7 @@ if (VersionBitsState(pindex->pprev, chainparams.GetConsensus(), Consensus::DEPLO
}
</pre>
-https://github.com/bitcoin/bitcoin/compare/0.14...jameshilliard:segsignal-v0.14.1
+https://github.com/segsignal/bitcoin
==Backwards Compatibility==
diff --git a/bip-0098.mediawiki b/bip-0098.mediawiki
new file mode 100644
index 0000000..8540d1a
--- /dev/null
+++ b/bip-0098.mediawiki
@@ -0,0 +1,308 @@
+<pre>
+ BIP: 98
+ Layer: Consensus (soft fork)
+ Title: Fast Merkle Trees
+ Author: Mark Friedenbach <mark@friedenbach.org>
+ Kalle Alm <kalle.alm@gmail.com>
+ BtcDrak <btcdrak@gmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0098
+ Status: Draft
+ Type: Standards Track
+ Created: 2017-08-24
+ License: CC-BY-SA-4.0
+ License-Code: MIT
+</pre>
+
+==Abstract==
+
+In many applications it is useful to prove membership of a data element in a set without having to reveal the entire contents of that set.
+The Merkle hash-tree, where inner/non-leaf nodes are labeled with the hash of the labels or values of its children, is a cryptographic tool that achieves this goal.
+Bitcoin uses a Merkle hash-tree construct for committing the transactions of a block into the block header.
+This particular design, created by Satoshi, suffers from a serious flaw related to duplicate entries documented in the National Vulnerability Database as CVE-2012-2459[1], and also suffers from less than optimal performance due to unnecessary double-hashing.
+
+This Bitcoin Improvement Proposal describes a more efficient Merkle hash-tree construct that is not vulnerable to CVE-2012-2459
+and achieves an approximate 55% decrease in hash-tree construction and validation times as compared with fully optimized implementations of the Satoshi Merkle hash-tree construct.
+
+==Copyright==
+
+This BIP is licensed under a Creative Commons Attribution-ShareAlike license. All provided source code is licensed under the MIT license.
+
+==Motivation==
+
+A Merkle hash-tree is a directed acyclic graph data structure where all non-terminal nodes are labeled with the hash of combined labels or values of the node(s) it is connected to.
+Bitcoin uses a unique Merkle hash-tree construct invented by Satoshi for calculating the block header commitment to the list of transactions in a block.
+While it would be convenient for new applications to make use of this same data structure so as to share implementation and maintenance costs, there are three principle drawbacks to reuse.
+
+First, Satoshi's Merkle hash-tree has a serious vulnerability[1] related to duplicate tree entries that can cause bugs in protocols that use it.
+While it is possible to secure protocols and implementations against exploit of this flaw, it requires foresight and it is a bit more tricky to design secure protocols that work around this vulnerability.
+Designers of new protocols ought avoid using the Satoshi Merkle hash-tree construct where at all possible in order to responsibly decrease the likelihood of downstream bugs in naïve implementations.
+
+Second, Satoshi's Merkle hash-tree performs an unnecessary number of cryptographic hash function compression rounds, resulting in construction and validation times that are approximately three (3) times more computation than is strictly necessary in a naïve implementation, or 2.32x more computation in an implementation specialized for this purpose only[2].
+New implementations that do not require backwards compatibility ought to consider hash-tree implementations that do not carry this unnecessary performance hit.
+
+Third, Satoshi's algorithm presumes construction of a tree index from an ordered list, and therefore is designed to support balanced trees with a uniform path length from root to leaf for all elements in the tree.
+Many applications, on the other hand, benefit from having unbalanced trees, particularly if the shorter path is more likely to be used.
+While it is possible to make a few elements of a Satoshi hash-tree have shorter paths than the others, the tricks for doing so are dependent on the size of the tree and not very flexible.
+
+Together these three reasons provide justification for specifying a standard Merkle hash-tree structure for use in new protocols that fixes these issues.
+This BIP describes such a structure, and provides an example implementation.
+
+==Specification==
+
+A Merkle hash-tree as defined by this BIP is an arbitrarily-balanced binary tree whose terminal/leaf nodes are labelled with the double-SHA256 hashes of data, whose format is outside the scope of this BIP, and inner nodes with labels constructed from the fast-SHA256 hash of its children's labels.
+The following image depicts an example unbalanced hash-tree:
+
+:: [[File:bip-0098/unbalanced-hash-tree.png]]
+
+'''A''', '''B''', and '''C''' are leaf labels, 32-byte double-SHA256 hashes of the data associated with the leaf.
+'''Node''' and '''Root''' are inner nodes, whose labels are fast-SHA256 (defined below) hashes of their respective children's labels.
+'''Node''' is labelled with the fast-SHA256 hash of the concatenation of '''B''' and '''C'''.
+'''Root''' is labelled with the fast-SHA256 hash of the concatenation of '''A''' and '''Node''', and is the ''Merkle root'' of the tree.
+Nodes with single children are not allowed.
+
+The ''double-SHA256'' cryptographic hash function takes an arbitrary-length data as input and produces a 32-byte hash by running the data through the SHA-256 hash function as specified in FIPS 180-4[3], and then running the same hash function again on the 32-byte result, as a protection against length-extension attacks.
+
+The ''fast-SHA256'' cryptographic hash function takes two 32-byte hash values, concatenates these to produce a 64-byte buffer, and applies a single run of the SHA-256 hash function with a custom 'initialization vector' (IV) and without message paddding.
+The result is a 32-byte 'midstate' which is the combined hash value and the label of the inner node.
+The changed IV protects against path-length extension attacks (grinding to interpret a hash as both an inner node and a leaf).
+fast-SHA256 is only defined for two 32-byte inputs.
+The custom IV is the intermediate hash value generated after performing a standard SHA-256 of the following hex-encoded bytes and extracting the midstate:
+
+ cbbb9d5dc1059ed8 e7730eaff25e24a3 f367f2fc266a0373 fe7a4d34486d08ae
+ d41670a136851f32 663914b66b4b3c23 1b9e3d7740a60887 63c11d86d446cb1c
+
+This data is the first 512 fractional bits of the square root of 23, the 9th prime number.
+The resulting midstate is used as IV for the fast-SHA256 cryptographic hash function:
+
+ static unsigned char _MidstateIV[32] =
+ { 0x89, 0xcc, 0x59, 0xc6, 0xf7, 0xce, 0x43, 0xfc,
+ 0xf6, 0x12, 0x67, 0x0e, 0x78, 0xe9, 0x36, 0x2e,
+ 0x76, 0x8f, 0xd2, 0xc9, 0x18, 0xbd, 0x42, 0xed,
+ 0x0e, 0x0b, 0x9f, 0x79, 0xee, 0xf6, 0x8a, 0x24 };
+
+As fast-SHA256 is only defined for two (2) 32-byte hash inputs, there are necessarily two special cases:
+an empty Merkle tree is not allowed, nor is any root hash defined for such a "tree";
+and a Merkle tree with a single value has a root hash label equal to that self-same value of the leaf branch, the only node in the tree (a passthrough operation with no hashing).
+
+===Rationale===
+
+The fast-SHA256 hash function can be calculated 2.32x faster than a specialized double-SHA256 implementation[2], or three (3) times faster than an implementation applying a generic SHA-256 primitive twice,
+as hashing 64 bytes of data with SHA-256 as specified by FIPS 180-4[3] takes two compression runs (because of message padding) and then a third compression run for the double-SHA256 construction.
+Validating a fast-SHA256 Merkle root is therefore more than twice as fast as the double-SHA256 construction used by Satoshi in bitcoin.
+Furthermore the fastest fast-SHA256 implementation ''is'' the generic SHA-256 implementation, enabling generic circuitry and code reuse without a cost to performance.
+
+The application of fast-SHA256 to inner node label updates is safe in this limited domain because the inputs are hash values and fixed in number and in length,
+so the sorts of attacks prevented by message padding and double-hashing do not apply.
+
+The 'initialization vector' for fast-SHA256 is changed in order to prevent a category of attacks on higher level protocols where a partial collision can serve as both a leaf hash and as an inner node commitment to another leaf hash.
+The IV is computed using standard SHA-256 plus midstate extraction so as to preserve compatibility with cryptographic library interfaces that do not support custom IVs, at the cost of a 2x performance hit if neither custom IVs nor resuming from midstate are supported.
+The data hashed is a nothing-up-my-sleeve number that is unlikely to have a known hash preimage.
+The prime 23 was chosen as the leading fractional bits of the first eight (8) primes, two (2) through nineteen (19), are constants used in the setup of SHA-256 itself.
+Using the next prime in sequence reduces the likelihood of introducing weakness due to reuse of a constant factor.
+
+The Merkle root hash of a single element tree is a simple pass-through of the leaf hash without modification so as to allow for chained validation of split proofs.
+This is particularly useful when the validation environment constrains proof sizes, such as push limits in Bitcoin script.
+Chained validation allows a verifier to split one proof into two or more, where the leaf is shown to be under an inner node, and that inner node is shown to be under the root.
+Without pass-through hashing in a single-element tree, use of chained validation would unnecessarily introduce a minimum path length requirement equal to the number of chain links.
+Pass-through hashing of single elements allows instead for one or more of the chained validations to use a "NOP" proof consisting of a zero-length path,
+thereby allowing, for example, a fixed series of four (4) chained validations to verify a length three (3) or shorter path.
+
+==Inclusion Proofs==
+
+An important use of Merkle hash-trees is the ability to compactly prove membership with log-sized proofs.
+This section specifies a standard encoding for a multi-element inclusion proof.
+
+To prove that a set of hashes is contained within a Merkle tree with a given root requires four pieces of information:
+
+# The root hash of the Merkle tree;
+# The hash values to be verified, a set usually consisting of the double-SHA256 hash of data elements, but potentially the labels of inner nodes instead, or both;
+# The paths from the root to the nodes containing the values under consideration, expressed as a serialized binary tree structure; and
+# The hash values of branches not taken along those paths.
+
+Typically the last two elements, the paths and the elided branch hashes, are lumped together and referred to as the ''proof''.
+
+Serialization begins with a variable-length integer (VarInt) used to encode N, the number of internal nodes in the proof.
+Next the structure of the tree is traversed using depth-first, left-to-right, pre-order algorithm to visit each internal nodes, which are serialized using a packed 3-bit representation for the configuration of each node, consuming <code>(3*N + 7) / 8</code> bytes.
+Then the number skipped hashes (those included in the proof, not verified by the proof) is serialized as a variable-length integer (VarInt),
+followed by the hashes themselves in the order previously traversed.
+
+There are eight possible configurations of internal nodes, as given in the following diagram:
+
+:: [[File:bip-0098/node-variants.png]]
+
+In this diagram, DESCEND means the branch links to another internal node, as indicated by its child graph elements labeled "...";
+SKIP means the branch contains a hash of an elided subtree or element, and the fast-SHA256 root hash of this subtree or double-SHA256 hash of the element is included in the proof structure; and
+VERIFY means the branch contains an externally provided hash that is needed as witness for the verification of the proof.
+In tabular form, these code values are:
+
+{| class="wikitable"
+|-
+| scope="col"| Code
+| scope="col"| Left
+| scope="col"| Right
+|-
+| scope="row"| 000
+| VERIFY
+| SKIP
+|-
+| scope="row"| 001
+| VERIFY
+| VERIFY
+|-
+| scope="row"| 010
+| VERIFY
+| DESCEND
+|-
+| scope="row"| 011
+| DESCEND
+| SKIP
+|-
+| scope="row"| 100
+| DESCEND
+| VERIFY
+|-
+| scope="row"| 101
+| DESCEND
+| DESCEND
+|-
+| scope="row"| 110
+| SKIP
+| VERIFY
+|-
+| scope="row"| 111
+| SKIP
+| DESCEND
+|}
+
+These 3-bit codes are packed into a byte array such that eight (8) codes would fit in every three (3) bytes.
+The order of filling a byte begins with the most significant bit <code>0x80</code> and ends with the least significant bit <code>0x01</code>.
+Unless the number of inner nodes is a multiple of eight (8), there will be excess low-order bits in the final byte of serialization.
+These excess bits must be zero.
+
+Note that the tree serialization is self-segmenting.
+By tracking tree structure a proof reader will know when the parser has reached the last internal node.
+The number of inner nodes serialized in the proof MUST equal the number of nodes inferred from the tree structure itself.
+Similarly, the number of SKIP hashes can also be inferred from the tree structure as serialized, and MUST equal the number of hashes provided within the proof.
+
+The single-hash proof has N=0 (the number of inner nodes),
+the tree structure is not serialized (as there are no inner nodes),
+and the number of SKIP hashes can be either 0 or 1.
+
+===Example===
+
+Consider the following Merkle tree structure:
+
+:: [[File:bip-0098/traversal-example.png]]
+
+There are six (6) internal nodes.
+The depth-first, left-to-right, pre-order traversal of the tree visits these nodes in the following order: A, B, D, F, C, then E.
+There are three (3) skipped hashes, visited in the following order: 0x00..., 0x66..., and 0x22...
+The remaining four (4) hashes are provided at runtime to be verified by the proof.
+
+{|
+| scope="col"|
+| scope="col"| Byte 1
+| scope="col"| Byte 2
+| scope="col"| Byte 3
+|-
+| scope="row"| Bits
+| 76543210
+| 76543210
+| 76543210
+|-
+| scope="row"| Nodes
+| AAABBBDD
+| DFFFCCCE
+| EE------
+|-
+| scope="row"| Code
+| 10111101
+| 10000100
+| 01000000
+|}
+
+The serialization begins with the VarInt encoded number of inner nodes, <code>0x06</code>, followed by the tree serialization itself, <code>0xbd8440</code>.
+Next the number of SKIP hashes is VarInt encoded, <code>0x03</code>, followed by the three (3) hashes in sequence.
+The resulting 101 byte proof, encoded in base64:.
+
+ Br2EQAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZmZmZmZmZmZmZmZmZmZmZmZm
+ ZmZmZmZmZmZmZmZmREREREREREREREREREREREREREREREREREREREREREQ=
+
+===Rationale===
+
+The 3-bit encoding for inner nodes allows encoding all relevant configurations of the nodes where the left and right branches can each be one of {DESCEND, SKIP, VERIFY}.
+The excluded 9th possibility would have both branches as SKIP:
+
+:: [[File:bip-0098/skip-skip.png]]
+
+This possibility is not allowed as for verification purposes it is entirely equivalent to the shorter proof where the branch to that node was SKIP'ed.
+Disallowing a node with two SKIP branches eliminates what would otherwise be a source of proof malleability.
+
+The number of hashing operations required to verify a proof is one less than the number of hashes (SKIP and VERIFY combined),
+and is exactly equal to the number of inner nodes serialized as the beginning of the proof as N.
+The variable-length integer encoding has the property that serialized integers, sorted lexigraphically, will also be sorted numerically.
+Since the first serialized item is the number of inner nodes, sorting proofs lexigraphically has the effect of sorting the proofs by the amount of work required to verify.
+
+The number of hashes required as input for verification of a proof is N+1 minus the number of SKIP hashes,
+and can be quickly calculated without parsing the tree structure.
+
+The coding and packing rules for the serialized tree structure were also chosen to make lexigraphical comparison useful (or at least not meaningless).
+If we consider a fully-expanded tree (no SKIP hashes, all VERIFY) to be encoding a list of elements in the order traversed depth-first from left-to-right,
+then we can extract proofs for subsets of the list by SKIP'ing the hashes of missing values and recursively pruning any resulting SKIP,SKIP nodes.
+Lexigraphically comparing the resulting serialized tree structures is the same as lexigraphically comparing lists of indices from the original list verified by the derived proof.
+
+Because the number of inner nodes and the number of SKIP hashes is extractible from the tree structure,
+both variable-length integers in the proof are redundant and could have been omitted.
+However that would require either construction and storage of the explicit tree in memory at deserialization time,
+or duplication of the relatively complicated tree parsing code in both the serialization and verification methods.
+For that reason (as well as to handle the single-hash edge case) the redundant inner node and SKIP hash counts are made explicit in the serialization,
+and the two values must match what is inferred from the tree structure for a proof to be valid.
+This makes deserialization trivial and defers tree construction until verification time,
+which has the additional benefit of enabling log-space verification algorithms.
+
+==Fast Merkle Lists==
+
+Many applications use a Merkle tree to provide indexing of, or compact membership proofs about the elements in a list.
+This addendum specifies an algorithm that constructs a canonical balanced tree structure for lists of various lengths.
+It differs in a subtle but important way from the algorithm used by Satoshi so as to structurally prevent the vulnerability described in [1].
+
+# Begin with a list of arbitrary data strings.
+# Pre-process the list by replacing each element with its double-SHA256 hash.
+# If the list is empty, return the zero hash.
+# While the list has 2 or more elements,
+#* Pass through the list combining adjacent entries with the fast-SHA256 hash. If the list has an odd number of elements, leave the last element as-is (this fixes [1]). This step reduces a list of N elements to ceil(N/2) entries.
+# The last remaining item in the list is the Merkle root.
+
+This algorithm differs from Merkle lists used in bitcoin in two ways.
+First, fast-SHA256 is used instead of double-SHA256 for inner node labels.
+Second, final entries on an odd-length list are not duplicated and hashed, which is the mistake that led to CVE-2012-2459[1].
+
+==Implementation==
+
+An implementation of this BIP for extraction of Merkle branches and fast, log-space Merkle branch validation is available at the following Github repository:
+
+[https://github.com/maaku/bitcoin/tree/fast-merkle-tree]
+
+Also included in this repo is a 'merklebranch' RPC for calculating root values and extracting inclusion proofs for both arbitrary trees and trees constructed from lists of values using the algorithm in this BIP,
+and a 'mergemerklebranch' RPC for unifying two or more fast Merkle tree inclusion proofs--replacing SKIP hashes in one proof with a subtree extracted from another.
+
+==Deployment==
+
+This BIP is used by BIP116 (MERKLEBRANCHVERIFY)[4] to add Merkle inclusion proof verification to script by means of a soft-fork NOP expansion opcode.
+Deployment of MERKLEBRANCHVERIFY would make the contents of this BIP consensus critical.
+The deployment plan for BIP116 is covered in the text of that BIP.
+
+==Compatibility==
+
+This BIP on its own does not cause any backwards incompatibility.
+
+==References==
+
+[1] [https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2459 National Vulnerability Database: CVE-2012-2459]
+
+[2] [https://github.com/sipa/bitcoin/tree/201709_dsha256_64 github.com:sipa/bitcoin 201709_dsha256_64] Pieter Wuille, September 2017, personal communication. By making use of knowledge that the inputs at each stage are fixed length, Mr. Wuille was able to achieve a 22.7% reduction in the time it takes to compute the double-SHA256 hash of 64 bytes of data, the hash aggregation function of the Satoshi Merkle tree construction.
+
+[3] [http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf Secure Hash Standard]
+
+[4] [https://github.com/bitcoin/bips/blob/master/bip-0116.mediawiki BIP 116 MERKLEBRANCHVERIFY]
diff --git a/bip-0098/build.sh b/bip-0098/build.sh
new file mode 100755
index 0000000..a8a3155
--- /dev/null
+++ b/bip-0098/build.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+dot -Tpng -o node-variants.png node-variants.dot
+dot -Tpng -o skip-skip.png skip-skip.dot
+dot -Tpng -o traversal-example.png traversal-example.dot
+dot -Tpng -o unbalanced-hash-tree.png unbalanced-hash-tree.dot
diff --git a/bip-0098/node-variants.dot b/bip-0098/node-variants.dot
new file mode 100644
index 0000000..7171346
--- /dev/null
+++ b/bip-0098/node-variants.dot
@@ -0,0 +1,85 @@
+digraph G {
+ row1 [shape=none, label=""]
+
+ A [label="000"]
+ A -> Al [label="L"]
+ Al [label="VERIFY"]
+ A -> Ar [label="R"]
+ Ar [label="SKIP"]
+
+ B [label="001"]
+ B -> Bl [label="L"]
+ Bl [label="VERIFY"]
+ B -> Br [label="R"]
+ Br [label="VERIFY"]
+
+ { rank = same; row1; A; B; }
+
+ C [label="010"]
+ C -> Cl [label="L"]
+ Cl [label="VERIFY"]
+ C -> Cr [label="R"]
+ Cr [label="DESCEND"]
+ Cr -> Crl
+ Crl [label="..."]
+ Cr -> Crr
+ Crr [label="..."]
+
+ D [label="011"]
+ D -> Dl [label="L"]
+ Dl [label="DESCEND"]
+ Dl -> Dll
+ Dll [label="..."]
+ Dl -> Dlr
+ Dlr [label="..."]
+ D -> Dr [label="R"]
+ Dr [label="SKIP"]
+
+ E [label="100"]
+ E -> El [label="L"]
+ El [label="DESCEND"]
+ El -> Ell
+ Ell [label="..."]
+ El -> Elr
+ Elr [label="..."]
+ E -> Er [label="R"]
+ Er [label="VERIFY"]
+
+ row1 -> invis [style=invis]
+ invis [shape=none, label=""]
+ invis -> C [style=invis]
+ { rank = same; C; D; E; }
+
+ F [label="101"]
+ F -> Fl [label="L"]
+ Fl [label="DESCEND"]
+ Fl -> Fll
+ Fll [label="..."]
+ Fl -> Flr
+ Flr [label="..."]
+ F -> Fr [label="R"]
+ Fr [label="DESCEND"]
+ Fr -> Frl
+ Frl [label="..."]
+ Fr -> Frr
+ Frr [label="..."]
+
+ G [label="110"]
+ G -> Gl [label="L"]
+ Gl [label="SKIP"]
+ G -> Gr [label="R"]
+ Gr [label="VERIFY"]
+
+ H [label="111"]
+ H -> Hl [label="L"]
+ Hl [label="SKIP"]
+ H -> Hr [label="R"]
+ Hr [label="DESCEND"]
+ Hr -> Hrl
+ Hrl [label="..."]
+ Hr -> Hrr
+ Hrr [label="..."]
+
+ Crl -> F [style=invis]
+ { rank = same; F; G; H; }
+}
diff --git a/bip-0098/node-variants.png b/bip-0098/node-variants.png
new file mode 100644
index 0000000..991d7bc
--- /dev/null
+++ b/bip-0098/node-variants.png
Binary files differ
diff --git a/bip-0098/skip-skip.dot b/bip-0098/skip-skip.dot
new file mode 100644
index 0000000..5e633d6
--- /dev/null
+++ b/bip-0098/skip-skip.dot
@@ -0,0 +1,7 @@
+digraph G {
+ A [label="???"]
+ A -> Al [label="L"]
+ Al [label="SKIP"]
+ A -> Ar [label="R"]
+ Ar [label="SKIP"]
+} \ No newline at end of file
diff --git a/bip-0098/skip-skip.png b/bip-0098/skip-skip.png
new file mode 100644
index 0000000..d3e7c45
--- /dev/null
+++ b/bip-0098/skip-skip.png
Binary files differ
diff --git a/bip-0098/traversal-example.dot b/bip-0098/traversal-example.dot
new file mode 100644
index 0000000..2993642
--- /dev/null
+++ b/bip-0098/traversal-example.dot
@@ -0,0 +1,32 @@
+digraph G {
+ a [label="A\n101"]
+ a -> b
+ a -> c
+
+ b [label="B\n111"]
+ b -> s0
+ s0 [label="SKIP\n0x00..."]
+ b -> d
+
+ d [label="D\n011"]
+ d -> f
+ d -> s1
+ s1 [label="SKIP\n0x22..."]
+
+ f [label="F\n000"]
+ f -> v1
+ v1 [label="VERIFY\n0x55..."]
+ f -> s2
+ s2 [label="SKIP\n0x66..."]
+
+ c [label="C\n010"]
+ c -> v2
+ v2 [label="VERIFY\n0x11..."]
+ c -> e
+
+ e [label="E\n001"]
+ e -> v3
+ v3 [label="VERIFY\n0x33..."]
+ e -> v4
+ v4 [label="VERIFY\n0x44..."]
+}
diff --git a/bip-0098/traversal-example.png b/bip-0098/traversal-example.png
new file mode 100644
index 0000000..a6a7954
--- /dev/null
+++ b/bip-0098/traversal-example.png
Binary files differ
diff --git a/bip-0098/unbalanced-hash-tree.dot b/bip-0098/unbalanced-hash-tree.dot
new file mode 100644
index 0000000..c637652
--- /dev/null
+++ b/bip-0098/unbalanced-hash-tree.dot
@@ -0,0 +1,11 @@
+digraph G {
+ 0 [label="Root\nH(A || H(B || C))"]
+ 0 -> A
+ A [label="A\nskip"]
+ 0 -> 1
+ 1 [label="Node\nH(B || C)"]
+ 1 -> B
+ B [label="B\nskip"]
+ 1 -> C
+ C [label="C\nverify"]
+}
diff --git a/bip-0098/unbalanced-hash-tree.png b/bip-0098/unbalanced-hash-tree.png
new file mode 100644
index 0000000..339bb22
--- /dev/null
+++ b/bip-0098/unbalanced-hash-tree.png
Binary files differ
diff --git a/bip-0099.mediawiki b/bip-0099.mediawiki
index cbde553..8882e00 100644
--- a/bip-0099.mediawiki
+++ b/bip-0099.mediawiki
@@ -4,7 +4,7 @@
Author: Jorge Timón <jtimon@jtimon.cc>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0099
- Status: Draft
+ Status: Rejected
Type: Informational
Created: 2015-06-20
License: PD
@@ -144,7 +144,7 @@ unnecessary.
Fundamental disagreements and controversies are part of social
systems, like the one defined as the human participants in the Bitcoin
network. Without judging the motivation of the rule discrepancies or
-what rules were in place first, we're definining schism[1] hardforks as
+what rules were in place first, we're defining schism[1] hardforks as
those in which - for whatever reason - users are consiously going to validate 2
different sets of consensus rules. Since they will validate different
rulesets, they will end up following 2 different chains for at least
diff --git a/bip-0100.mediawiki b/bip-0100.mediawiki
new file mode 100644
index 0000000..aaf6beb
--- /dev/null
+++ b/bip-0100.mediawiki
@@ -0,0 +1,77 @@
+<pre>
+ BIP: 100
+ Layer: Consensus (hard fork)
+ Title: Dynamic maximum block size by miner vote
+ Author: Jeff Garzik <jgarzik@gmail.com>
+ Tom Harding <tomh@thinlink.com>
+ Dagur Valberg Johannsson <dagurval@pvv.ntnu.no>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0100
+ Status: Rejected
+ Type: Standards Track
+ Created: 2015-06-11
+ License: BSD-2-Clause
+</pre>
+
+==Abstract==
+
+Replace the static 1M block size hard limit with a hard limit set by coinbase vote, conducted on the same schedule as difficulty retargeting.
+
+==Motivation==
+
+Miners directly feel the effects, both positive and negative, of any maximum block size change imposed by their peers. Larger blocks allow more growth in the on-chain ecosystem, while smaller blocks reduce resource requirements network-wide. Miners also act as an efficient proxy for the rest of the ecosystem, since they are paid in the tokens collected for the blocks they create.
+
+A simple deterministic system is specified, whereby a 75% mining supermajority may activate a change to the maximum block size each 2016 blocks. Each change is limited to a 5% increase from the previous block size hard limit, or a decrease of similar magnitude. Among adopting nodes, there will be no disagreement on the evolution of the maximum block size.
+
+The system is compatible with emergent consensus, but whereas under that system a miner may choose to accept any size block, a miner following BIP100 observes the 75% supermajority rule, and the 5% change limit rule. Excessive-block values signaled by emergent consensus blocks are considered in the calculation of the BIP100 block size hard limit, and the BIP100 calculated maximum block size is signaled as an excessive-block value for the benefit of all observers.
+
+==Specification==
+
+===Dynamic Maximum Block Size===
+# Initial value of <code>hardLimit</code> is 1000000 bytes, preserving current system.
+# Changing <code>hardLimit</code> is accomplished by encoding a proposed value, a vote, within a block's coinbase scriptSig, and by processing the votes contained in the previous retargeting period.<br /><br />
+## Vote encoding
+### A vote is represented as a megabyte value using the BIP100 pattern<br /><br /><code>/BIP100/B[0-9]+/</code><br /><br />Example: <code>/BIP100/B8/</code> is a vote for a 8000000-byte <code>hardLimit</code>.<br /><br />
+### If the block height is encoded at the start of the coinbase scriptSig, as per BIP34, it is ignored.
+### Only the first BIP100 pattern match is processed in "Maximum block size recalculation" below.
+### A megabyte value is represented by consecutive base-ten digits.
+### If no BIP100 pattern is matched, the first matching emergent consensus pattern <code>/EB[0-9]+/</code>, if any, is accepted as the megabyte vote.<br /><br />
+## Maximum block size recalculation
+### A <code>new hardLimit</code> is calculated after each difficulty adjustment period of 2016 blocks, and applies to the next 2016 blocks.
+### Absent/zero-valued votes are counted as votes for the <code>current hardLimit</code>.
+### The votes of the previous 2016 blocks are sorted by megabyte vote.
+### Raising <code>hardLimit</code><br /><br />
+#### The <code>raise value</code> is defined as the vote of the 1512th highest block, converted to bytes.
+#### If the resultant <code>raise value</code> is greater than (<code>current hardLimit</code> * 1.05) rounded down, it is set to that value.
+#### If the resultant <code>raise value</code> is greater than <code>current hardLimit</code>, the <code>raise value</code> becomes the <code>new hardLimit</code> and the recalculation is complete.<br /><br />
+### Lowering <code>hardLimit</code><br /><br />
+#### The <code>lower value</code> is defined as the vote of the 1512th lowest block, converted to bytes.
+#### If the resultant <code>lower value</code> is less than (<code>current hardLimit</code> / 1.05) rounded down, it is set to that value.
+#### If the resultant <code>lower value</code> is less than <code>current hardLimit</code>, the <code>lower value</code> becomes the <code>new hardLimit</code> and the recalculation is complete.<br /><br />
+### Otherwise, <code>new hardLimit</code> remains the same as <code>current hardLimit</code>.
+
+===Signature Hashing Operations Limits===
+# The per-block signature hashing operations limit is scaled to (actual block size, fractional megabyte rounded to next higher megabyte) / 50.
+# A maximum serialized transaction size of 1000000 bytes is imposed.
+
+==Recommendations==
+
+===Publication of <code>hardLimit</code>===
+# For the benefit of all observers, it is recommended that <code>hardLimit</code> be published. Example: a complete coinbase string might read <br /><br /><code>/BIP100/B8/EB2.123456/</code><br /><br /> which indicates a vote for 8M maximum block size, and an enforced <code>hardLimit</code> of 2.123456 megabytes for the block containing the coinbase string.
+
+==Deployment==
+
+This BIP is presumed deployed and activated as of block height 449568 by implementing nodes on the bitcoin mainnet. It has no effect until a raise value different from 1M is observed, which requires at least 1512 of 2016 blocks to vote differently from 1M.
+
+==Backward compatibility==
+
+The first block larger than 1M will create a network partition, as nodes with a fixed 1M hard limit reject that block.
+
+==Implementations==
+https://github.com/bitcoinxt/bitcoinxt/pull/188</br>
+https://github.com/bitcoinxt/bitcoin/pull/1</br>
+https://github.com/BitcoinUnlimited/BitcoinUnlimited/pull/398</br>
+
+==Copyright==
+This document is licensed under the BSD 2-clause license.
+
diff --git a/bip-0102.mediawiki b/bip-0102.mediawiki
index ed6b4e3..5a2c91a 100644
--- a/bip-0102.mediawiki
+++ b/bip-0102.mediawiki
@@ -5,7 +5,7 @@
Author: Jeff Garzik <jgarzik@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0102
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2015-06-23
</pre>
diff --git a/bip-0103.mediawiki b/bip-0103.mediawiki
index 36bb87f..3a8bab5 100644
--- a/bip-0103.mediawiki
+++ b/bip-0103.mediawiki
@@ -5,7 +5,7 @@
Author: Pieter Wuille <pieter.wuille@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0103
- Status: Draft
+ Status: Withdrawn
Type: Standards Track
Created: 2015-07-21
License: BSD-2-Clause
@@ -73,7 +73,7 @@ Using a time-based check is very simple to implement, needs little context, is e
==Compatibility==
-This is a hard forking change, thus breaks compatbility with old fully-validating node. It should not be deployed without widespread consensus.
+This is a hard forking change, thus breaks compatibility with old fully-validating node. It should not be deployed without widespread consensus.
==Acknowledgements==
diff --git a/bip-0104.mediawiki b/bip-0104.mediawiki
index 00db9a3..1244b3e 100644
--- a/bip-0104.mediawiki
+++ b/bip-0104.mediawiki
@@ -5,7 +5,7 @@
Author: t.khan <teekhan42@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0104
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2017-01-13
License: BSD-2-Clause
diff --git a/bip-0105.mediawiki b/bip-0105.mediawiki
index 125d852..3643562 100644
--- a/bip-0105.mediawiki
+++ b/bip-0105.mediawiki
@@ -5,7 +5,7 @@
Author: BtcDrak <btcdrak@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0105
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2015-08-21
License: PD
diff --git a/bip-0106.mediawiki b/bip-0106.mediawiki
index 399c725..193d4cd 100644
--- a/bip-0106.mediawiki
+++ b/bip-0106.mediawiki
@@ -5,7 +5,7 @@
Author: Upal Chakraborty <bitcoin@upalc.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0106
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2015-08-24
</pre>
@@ -52,7 +52,7 @@ https://blockchain.info/charts/avg-block-size?timespan=all&showDataPoints=false&
==Rationale==
-These two proposals have been derived after discussion on [https://bitcointalk.org/index.php?topic=1154536.0 BitcoinTalk] and [http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-August/010285.html bitcoin-dev mailing list]. The original idea and its evolution in the light of various arguements can be found [http://upalc.com/maxblocksize.php here].
+These two proposals have been derived after discussion on [https://bitcointalk.org/index.php?topic=1154536.0 BitcoinTalk] and [http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-August/010285.html bitcoin-dev mailing list]. The original idea and its evolution in the light of various arguments can be found [http://upalc.com/maxblocksize.php here].
===Proposal 1 : Depending only on previous block size calculation===
diff --git a/bip-0107.mediawiki b/bip-0107.mediawiki
index 84cd6a6..b82db61 100644
--- a/bip-0107.mediawiki
+++ b/bip-0107.mediawiki
@@ -5,7 +5,7 @@
Author: Washington Y. Sanchez <washington.sanchez@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0107
- Status: Draft
+ Status: Rejected
Type: Standards Track
Created: 2015-09-11
License: PD
diff --git a/bip-0112.mediawiki b/bip-0112.mediawiki
index 65171a4..f3d370a 100644
--- a/bip-0112.mediawiki
+++ b/bip-0112.mediawiki
@@ -32,7 +32,7 @@ When executed, if any of the following conditions are true, the script interpret
** the transaction version is less than 2; or
** the transaction input sequence number disable flag (1 << 31) is set; or
** the relative lock-time type is not the same; or
-** the top stack item is greater than the transaction sequence (when masked according to the BIP68);
+** the top stack item is greater than the transaction input sequence (when masked according to the BIP68);
Otherwise, script execution will continue as if a NOP had been executed.
diff --git a/bip-0115.mediawiki b/bip-0115.mediawiki
index 52366ab..9432f5c 100644
--- a/bip-0115.mediawiki
+++ b/bip-0115.mediawiki
@@ -83,7 +83,7 @@ Why are block heights required to be absolute, rather than relative?
Why are blocks older than 52596 deep in the chain not verified?
* This is to avoid creating an infinite storage requirement from all full nodes which would be necessary to maintain all the block headers indefinitely. 52596 block headers requires a fixed size of approximately 4 MB.
-* In any case where you might want to specify a deeper block, you can also just as well specify a more recent one that decends from it.
+* In any case where you might want to specify a deeper block, you can also just as well specify a more recent one that descends from it.
* It is assumed that 1 year is sufficient time to double-spend any common UTXOs on all blockchains of interest.
* If a deeper check is needed, it can be softforked in. Making the check more shallow, on the other hand, is a hardfork.
diff --git a/bip-0116.mediawiki b/bip-0116.mediawiki
new file mode 100644
index 0000000..86b0f9a
--- /dev/null
+++ b/bip-0116.mediawiki
@@ -0,0 +1,145 @@
+<pre>
+ BIP: 116
+ Layer: Consensus (soft fork)
+ Title: MERKLEBRANCHVERIFY
+ Author: Mark Friedenbach <mark@friedenbach.org>
+ Kalle Alm <kalle.alm@gmail.com>
+ BtcDrak <btcdrak@gmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0116
+ Status: Draft
+ Type: Standards Track
+ Created: 2017-08-25
+ License: CC-BY-SA-4.0
+ License-Code: MIT
+</pre>
+
+==Abstract==
+
+A general approach to bitcoin contracts is to fully enumerate the possible spending conditions and then program verification of these conditions into a single script.
+At redemption, the spending condition used is explicitly selected, e.g. by pushing a value on the witness stack which cascades through a series if if/else constructs.
+
+This approach has significant downsides, such as requiring all program pathways to be visible in the scriptPubKey or redeem script, even those which are not used at validation.
+This wastes space on the block chain, restricts the size of possible scripts due to push limits, and impacts both privacy and fungibility as details of the contract can often be specific to the user.
+
+This BIP proposes a new soft-fork upgradeable opcode, MERKLEBRANCHVERIFY, which allows script writers to commit to a set of data elements and have one or more of these elements be provided at redemption without having to reveal the entire set.
+As these data elements can be used to encode policy, such as public keys or validation subscripts, the MERKLEBRANCHVERIFY opcode can be used to overcome these limitations of existing bitcoin script.
+
+==Copyright==
+
+This BIP is licensed under a Creative Commons Attribution-ShareAlike license. All provided source code is licensed under the MIT license.
+
+==Specification==
+
+MERKLEBRANCHVERIFY redefines the existing NOP4 opcode.
+When executed, if any of the following conditions are true, the script interpreter will terminate with an error:
+
+# the stack contains less than three (3) items;
+# the first item on the stack is more than 2 bytes;
+# the first item on the stack, interpreted as an integer, N, is negative or not minimally encoded;
+# the second item on the stack is not exactly 32 bytes;
+# the third item on the stack is not a serialized Merkle tree inclusion proof as specified by BIP98[1] and requiring exactly <code>floor(N/2)</code> VERIFY hashes; or
+# the remainder of the stack contains less than <code>floor(N/2)</code> additional items, together referred to as the input stack elements.
+
+If the low-order bit of N is clear, <code>N&1 == 0</code>, each input stack element is hashed using double-SHA256.
+Otherwise, each element must be exactly 32 bytes in length and are interpreted as serialized hashes.
+These are the VERIFY hashes.
+
+If the fast Merkle root computed from the Merkle tree inclusion proof, the third item on the stack,
+with the VERIFY hashes in the order as presented on the stack, from top to bottom,
+does not exactly match the second item on the stack,
+the script interpreter will terminate with an error.
+
+Otherwise, script execution will continue as if a NOP had been executed.
+
+==Motivation==
+
+Although BIP16 (Pay to Script Hash)[2] and BIP141 (Segregated Witness)[3] both allow the redeem script to be kept out of the scriptPubKey and therefore out of the UTXO set, the entire spending conditions for a coin must nevertheless be revealed when that coin is spent.
+This includes execution pathways or policy conditions which end up not being needed by the redemption.
+Not only is it inefficient to require this unnecessary information to be present on the blockchain, albeit in the witness, it also impacts privacy and fungibility as some unused script policies may be identifying.
+Using a Merkle hash tree to commit to the policy options, and then only forcing revelation of the policy used at redemption minimizes this information leakage.
+
+Using Merkle hash trees to commit to policy allows for considerably more complex contracts than would would otherwise be possible, due to various built-in script size and runtime limitations.
+With Merkle commitments to policy these size and runtime limitations constrain the complexity of any one policy that can be used rather than the sum of all possible policies.
+
+==Rationale==
+
+The MERKLEBRANCHVERIFY opcode uses fast Merkle hash trees as specified by BIP98[1] rather than the construct used by Satoshi for committing transactions to the block header as the later has a known vulnerability relating to duplicate entries that introduces a source of malleability to downstream protocols[4].
+A source of malleability in Merkle proofs could potentially lead to spend vulnerabilities in protocols that use MERKLEBRANCHVERIFY.
+For example, a compact 2-of-N policy could be written by using MERKLEBRANCHVERIFY to prove that two keys are extracted from the same tree, one at a time, then checking the proofs for bitwise equality to make sure the same entry wasn't used twice.
+With the vulnerable Merkle tree implementation there are privledged positions in unbalanced Merkle trees that allow multiple proofs to be constructed for the same, single entry.
+
+BIP141 (Segregated Witness)[3] provides support for a powerful form of script upgrades called script versioning, which is able to achieve the sort of upgrades which would previously have been hard-forks.
+If script versioning were used for deployment then MERKLEBRANCHVERIFY could be written to consume its inputs, which would provide a small 2-byte savings for many anticipated use cases.
+However the more familiar NOP-expansion soft-fork mechanism used by BIP65 (CHECKLOCKTIMEVERIFY)[5] and BIP112 (CHECKSEQUENCEVERIFY)[6] was chosen over script versioning for the following two reasons:
+
+# '''Infrastructure compatibility.''' Using soft-fork NOP extensions allows MERKLEBRANCHVERIFY to be used by any existing software able to consume custom scripts, and results in standard P2SH or P2WSH-nested-in-P2SH addresses without the need for BIP143[7] signing code. This allows MERKLEBRANCHVERIFY to be used immediately by services that need it rather than wait on support for script versioning and/or BIP-143[7] signatures in tools and libraries.
+# '''Delayed decision on script upgrade protocol.''' There are unresolved issues with respect to how script versioning should be used for future script upgrades. There are only 16 available script versions reserved for future use, and so they should be treated as a scarce resource. Additionally, script feature versioning should arguably be specified in the witness and the BIP141 script versioning only be used to specify the structure of the witness, however no such protocol exists as of yet. Using the NOP-expansion space prevents MERKLEBRANCHVERIFY from being stalled due to waiting on script upgrade procedure to be worked out, while making use of expansion space that is already available.
+
+The MERKLEBRANCHVERIFY opcode allows for VERIFY hashes to be presented directly, or calculated from the leaf values using double-SHA256.
+In most cases the latter approach is expected to be used so that the leaf value(s) can be used for both branch validation and other purposes without any explicit preprocessing.
+However allowing already-calculated hash values as inputs enables using chained MERKLEBRANCHVERIFY opcodes to verify branches of trees with proofs large enough that they would not fit in the 520 byte script push limitation.
+As specified, a 30-branch path can be verified by proving the path from the leaf to the 15th interior node as the 'root', then proving that node's hash to be a child of the actual Merkle tree root hash.
+Validation of a 256-branch path (e.g. a binary prefix tree with a hash value as key) would require 18 chained validations, which would fit within current script limitations.
+
+==Applications==
+
+===1-of-N for large N===
+
+Here is a redeem script that allows a coin to be spent by any key from a large set, without linear scaling in script size:
+
+ redeemScript: <root> 2 MERKLEBRANCHVERIFY 2DROP DROP CHECKSIG
+ witness: <sig> <pubkey> <proof>
+
+The redeem script looks very similar to the standard pay-to-pubkey-hash, except instead of showing that the pubkey's hash is the same as the commitment given, we demonstrate that the pubkey is one of potentially many pubkeys included in the Merkle tree committed to in the redeem script.
+The low-order bit of the first parameter, 2, is clear, meaning that there is one input (<code>(2>>1) == 1</code>), the serialized pubkey, and its VERIFY hash needs to be calculated by MERKLEBRANCHVERIFY using double-SHA256.
+
+===Honeypots===
+
+As described by Pieter Wuille[8] the 1-of-N scheme is particularly useful for constructing honeypots.
+The desire is to put a large bounty on a server, larger than the value of the server itself so that if the server is compromised it is highly likely that the hacker will claim the bitcoin, thereby revealing the intrusion.
+However if there are many servers, e.g. 1,000, it becomes excessively expensive to lock up separate bounties for each server.
+It would be desirable if the same bounty was shared across multiple servers in such a way that the spend would reveal which server was compromised.
+
+This is accomplished by generating 1,000 different keys, building a hash tree of these public keys, and placing each key and associated Merkle path on separate servers.
+When the honeypot is claimed, the (previous) owner of the coins can tell which server was compromised from the key and path used to claim the funds.
+
+==Implementation==
+
+An implementation of this BIP, including both consensus code updates and tests is available at the following Github repository:
+
+[https://github.com/maaku/bitcoin/tree/merkle-branch-verify]
+
+==Deployment==
+
+This BIP will be deployed by BIP8 (Version bits with lock-in by height)[9] with the name "merklebranchverify" and using bit 2.
+
+For Bitcoin mainnet, the BIP8 startheight will be at height M to be determined and BIP8 timeout activation will occur on height M + 50,400 blocks.
+
+For Bitcoin testnet, the BIP8 startheight will be at height T to be determined and BIP8 timeout activation will occur on height T + 50,400 blocks.
+
+We note that DISCOURAGE_UPGRADABLE_NOPS means that transactions which use this feature are already considered non-standard by the rules of the network, making deployment easier than was the case with, for example, with BIP68 (Relative lock-time using consensus-enforced sequence numbers)[9].
+
+==Compatibility==
+
+Old clients will consider the OP_MERKLEBRANCHVERIFY as a NOP and ignore it. Proof will not be verified, but the transaction will be accepted.
+
+==References==
+
+[1] [https://github.com/bitcoin/bips/blob/master/bip-0098.mediawiki BIP98: Fast Merkle Trees (Consensus layer)]
+
+[2] [https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki BIP16: Pay to Script Hash]
+
+[3] [https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki BIP141: Segregated Witness (Consensus layer)]
+
+[4] [https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2459 National Vulnerability Database: CVE-2012-2459]
+
+[5] [https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki BIP65: OP_CHECKLOCKTIMEVERIFY]
+
+[6] [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP112: CHECKSEQUENCEVERIFY]
+
+[7] [https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki BIP143: Transaction Signature Verification for Version 0 Witness Program]
+
+[8] [https://blockstream.com/2015/08/24/treesignatures.html Multisig on steroids using tree signatures]
+
+[9] [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP68: Relative lock-time using consensus-enforced sequence numbers]
diff --git a/bip-0117.mediawiki b/bip-0117.mediawiki
new file mode 100644
index 0000000..4b5706e
--- /dev/null
+++ b/bip-0117.mediawiki
@@ -0,0 +1,196 @@
+<pre>
+ BIP: 117
+ Layer: Consensus (soft fork)
+ Title: Tail Call Execution Semantics
+ Author: Mark Friedenbach <mark@friedenbach.org>
+ Kalle Alm <kalle.alm@gmail.com>
+ BtcDrak <btcdrak@gmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0117
+ Status: Draft
+ Type: Standards Track
+ Created: 2017-08-25
+ License: CC-BY-SA-4.0
+ License-Code: MIT
+</pre>
+
+==Abstract==
+
+BIP16 (Pay to Script Hash)[1] and BIP141 (Segregated Witness)[2] provide mechanisms by which script policy can be revealed at spend time as part of the execution witness.
+In both cases only a single script can be committed to by the construct.
+While useful for achieving the goals of these proposals, they still require that all policies be specified within the confine of a single script, regardless of whether the policies are needed at the time of spend.
+
+This BIP, in conjunction with BIP116 (MERKLEBRANCHVERIFY)[3] allows for a script to commit to a practically unbounded number of code pathways, and then reveal the actual code pathway used at spend time.
+This achieves a form of generalized MAST[4] enabling decomposition of complex branching scripts into a set of non-branching flat execution pathways, committing to the entire set of possible pathways, and then revealing only the path used at spend time.
+
+==Copyright==
+
+This BIP is licensed under a Creative Commons Attribution-ShareAlike license. All provided source code is licensed under the MIT license.
+
+==Specification==
+
+If, at the end of script execution:
+
+* the execution state is non-clean, meaning
+*# the main stack has more than one item on it, or
+*# the main stack has exactly one item and the alt-stack is not empty;
+* the top-most element of the main stack evaluates as true when interpreted as a bool; and
+* the top-most element is not a single byte or is outside the inclusive range of <code>0x51</code> to <code>0x60</code>,
+
+then that top-most element of the main stack is popped and interpreted as a serialized script and executed,
+while the remaining elements of both stacks remain in place as inputs.
+
+If the above conditions hold except for the last one, such that:
+
+* the top-most element ''is'' a single byte within the inclusive range of <code>0x51</code> (<code>OP_1</code>, meaning N=2) to <code>0x60</code> (<code>OP_16</code>, meaning N=17); and
+* other than this top-most element there are at least N additional elements on the main stack and alt stack combined,
+
+then the top-most element of the main stack is dropped,
+and the N=2 (<code>0x51</code>) to 17 (<code>0x60</code>) further elements are popped from the main stack,
+continuing from the alt stack if the main stack is exhausted,
+and concatenated together in reverse order to form a serialized script,
+which is then executed with the remaining elements of both stacks remaining in place as inputs.
+
+The presence of CHECKSIG or CHECKMULTISIG within the subscript do not count towards the global MAX_BLOCK_SIGOPS_COST limit,
+and the number of non-push opcodes executed in the subscript is not limited by MAX_OPS_PER_SCRIPT.
+Execution state, other than the above exceptions, carries over into the subscript,
+and termination of the subscript terminates execution of the script as a whole.
+This is known as execution with tail-call semantics.
+
+Only one such tail-call of a subscript is allowed per script execution context, and only from within a segwit redeem script.
+Alternatively stated, neither evaluation of witness stack nor execution of the scriptPubKey or scriptSig or P2SH redeem script results in tail-call semantics.
+
+==Motivation==
+
+BIP16 (Pay to Script Hash)[1] and BIP141 (Segregated Witness)[2] allow delayed revelation of a script's policy until the time of spend.
+However these approaches are limited in that only a single policy can be committed to in a given transaction output.
+It is not possible to commit to multiple policies and then choose, at spend time, which to reveal.
+
+BIP116 (MERKLEBRANCHVERIFY)[3] allows multiple data elements to be committed to while only revealing those necessary at the time of spend.
+The MERKLEBRANCHVERIFY opcode is only able to provide commitments to a preselected set of data values, and does not by itself allow for executing code.
+
+This BIP generalizes the approach of these prior methods by allowing the redeem script to perform any type of computation necessary to place the policy script on the stack.
+The policy script is then executed from the top of the data stack in a way similar to how BIP16 and BIP141 enable redeem scripts to be executed from the top of the witness stack.
+In particular, using MERKLEBRANCHVERIFY[3] in the scriptPubKey or redeem script allows selection of the policy script that contains only the necessary conditions for validation of the spend.
+This is a form of generalized MAST[4] where a stage of precomputation splits a syntax tree into possible execution pathways, which are then enumerated and hashed into a Merkle tree of policy scripts.
+At spend time membership in this tree of the provided policy script is proven before execution recurses into the policy script.
+
+==Rationale==
+
+This proposal is a soft-fork change to bitcoin's consensus rules because leaving a script that data-wise evaluates as true from its serialized form on the stack as execution terminates would result in the script validation returning true anyway.
+Giving the subscript a chance to terminate execution is only further constraining the validation rules.
+The only scripts which would evaluate as false are the empty script, or a script that does nothing more than push empty/zero values to the stack.
+None of these scripts have any real-world utility, so excluding them to achieve soft-fork compatibility doesn't come with any downsides.
+
+By restricting ourselves to tail-call evaluation instead of a more general EVAL opcode we greatly simplify the implementation.
+Tail-call semantics means that execution never returns to the calling script's context, and therefore no state needs to be saved or later restored.
+The implementation is truly as simple as pulling the subscript off the stack, resetting a few state variables, and performing a jump back to the beginning of the script interpreter.
+
+The restriction to allow only one layer of tail-call recursion is admittedly limiting, however the technical challenges to supporting multi-layer tail-call recursion are significant.
+A new metric would have to be developed to track script resource usage, for which transaction data witness size are only two factors.
+This new weight would have to be relayed with transactions, used as the basis for fee calculation, validated in-line with transaction execution, and policy decided upon for DoS-banning peers that propagate violating transactions.
+
+However should these problems be overcome, dropping the single recursion constraint is itself a soft-fork for the same reason, applied inductively.
+Allowing only one layer of tail-call recursion allows us to receive the primary benefit of multi-policy commitments / generalized MAST,
+while leaving the door open to future generalized tail-call recursion if and when the necessary changes are made to resource accounting and p2p transaction distribution.
+
+The global SIGOP limit and per-script opcode limits do not apply to the policy script
+because dynamic selection of the policy script makes it not possible for static analysis tools to verify these limits in general,
+and because performance improvements to libsecp256k1 and Bitcoin Core have made these limits no longer necessary as they once were.
+The validation costs are still limited by the number of signature operations it is possible to encode within block size limits,
+and the maximum script size per input is limited to 10,000 + 17*520 = 18,840 bytes.
+
+To allow for this drop of global and per-script limits,
+tail-call evaluation cannot be allowed for direct execution of the scriptPubKey,
+as such scripts are fetched from the UTXO and do not count towards block size limits of the block being validated.
+Likewise tail-call from P2SH redeem scripts is not supported due to quadratic blow-up vulnerabilities that are fixed in segwit.
+
+==Generalized MAST==
+
+When combined with BIP116 (MERKLEBRANCHVERIFY)[3], tail-call semantics allows for generalized MAST capabilities[4].
+The script author starts with a full description of the entire contract they want to validate at the time of spend.
+The possible execution pathways through the script are then enumerated, with conditional branches replaced by a validation of the condition and the branch taken.
+The list of possible execution pathways is then put into a Merkle tree, with the flattened policy scripts as the leaves of this tree.
+The final redeem script which funds are sent to is as follows:
+
+ redeemScript: <nowiki><root> 2 MERKLEBRANCHVERIFY 2DROP DROP</nowiki>
+ witness: <nowiki><argN> ... <arg1> <policyScript> <proof></nowiki>
+
+Where <code>policyScript</code> is the flattened execution pathway, <code>proof</code> is the serialized Merkle branch and path that proves the policyScript is drawn from the set used to construct the Merkle tree <code>root</code>, and <code>arg1</code> through <code>argN</code> are the arguments required by <code>policyScript</code>.
+The <code>2</code> indicates that a single leaf (<code>1 << 1</code>) follows, and the leaf value is not pre-hashed.
+The <code>2DROP DROP</code> is necessary to remove the arguments to MERKLEBRANCHVERIFY from the stack.
+
+The above example was designed for clarity, but actually violates the CLEANSTACK rule of segwit v0 script execution.
+Unless the CLEANSTACK rule is dropped or modified in a new segwit output version, this would script would have to be modified to use the alt-stack, as follows:
+
+ redeemScript: <nowiki>[TOALTSTACK]*N <root> 2 MERKLEBRANCHVERIFY 2DROP DROP</nowiki>
+ witness: <nowiki><policyScript> <proof> <arg1> ... <argN></nowiki>
+
+Where <code>[TOALTSTACK]*N</code> is the TOALTSTACK opcode repeated N times.
+This moves <code>arg1</code> through <code>argN</code> to the alt-stack in reverse order, such that <code>arg1</code> is on the top of the alt-stack when execution of <code>policyScript</code> begins.
+The <code>policyScript</code> would also have to be modified to fetch its arguments from the alt-stack, of course.
+
+If the total set of policy scripts includes scripts that take a varying number of parameters, that too can be supported, within reasonable limits.
+The following redeem script allows between 1 and 3 witness arguments in addition to the policy script and Merkle proof:
+
+ witness: <nowiki><policyScript> <proof> <arg1> ... <argN></nowiki> // N is between 1 and 3
+ redeemScript: DEPTH TOALTSTACK // Save number of witness elements to alt-stack
+ TOALTSTACK // Save 1st element (required) to alt-stack
+ DEPTH 2 SUB // Calculate number of optional elements, ignoring policyScript and proof
+ DUP IF SWAP TOALTSTACK 1SUB ENDIF // Save 2nd element (optional) to alt-stack, if it is present
+ IF TOALTSTACK ENDIF // Save 3rd element (optional) to alt-stack, if it is present; consume counter
+ <nowiki><root></nowiki> 2 MERKLEBRANCHVERIFY 2DROP DROP
+ alt-stack: <nowiki><N+2> <argN> ... <arg1></nowiki>
+
+Because the number of witness elements is pushed onto the alt-stack, this enables policy scripts to verify the number of arguments passed, even though the size of the alt-stack is not usually accessible to script.
+The following policy script for use with the above redeem script will only accept 2 witness elements on the alt-stack, preventing witness malleability:
+
+ policyScript: <nowiki>FROMALTSTACK ...check arg1... FROMALTSTACK ...check&consume arg2/arg1&2... FROMALTSTACK 4 EQUAL
+
+The number 4 is expected as that includes the <code>policyScript</code> and <code>proof</code>.
+
+The verbosity of this example can be prevented by using a uniform number of witness elements as parameters for all policy subscripts, eliminating the conditionals and stack size counts.
+Future script version upgrades should also consider relaxing CLEANSTACK rules to allow direct pass-through of arguments from the witness/redeem script to the policy script on the main stack.
+
+===Comparison with BIP114===
+
+BIP114 (Merkelized Abstract Syntax Tree)[5] specifies an explicit MAST scheme activated by BIP141 script versioning[2].
+Unlike BIP114, the scheme proposed by this BIP in conjunction with BIP116 (MERKLEBRANCHVERIFY)[3] implicitly enables MAST constructs using script itself to validate membership of the policy script in the MAST.
+This has the advantage of requiring vastly fewer consensus code changes, as well as potentially enabling future script-based innovation without requiring any further consensus code changes at all, as the MAST scheme itself is programmable.
+
+Furthermore, by adding MERKLEBRANCHVERIFY and tail-call semantics to all script using the NOP-expansion space, BIP141 style script versioning is not required.
+This removes a potentially significant hurdle to deployment by making this feature not dependent on resolving outstanding issues over address formats, how script version upgrades should be deployed, and consensus over what other features might go into a v1 upgrade.
+
+==Implementation==
+
+An implementation of this BIP, including both consensus code changes and tests are available at the following Github repository:
+
+[https://github.com/maaku/bitcoin/tree/tail-call-semantics]
+
+==Deployment==
+
+This BIP will be deployed by BIP8 (Version bits with lock-in by height)[9] with the name "tailcall" and using bit 3.
+
+For Bitcoin mainnet, the BIP8 startheight will be at height M to be determined and BIP8 timeout activation will occur on height M + 50,400 blocks.
+
+For Bitcoin testnet, the BIP8 startheight will be at height T to be determined and BIP8 timeout activation will occur on height T + 50,400 blocks.
+
+We note that CLEANSTACK means that transactions which use this feature are already considered non-standard by the rules of the network, making deployment easier than was the case with, for example, with BIP68 (Relative lock-time using consensus-enforced sequence numbers)[6].
+
+==Compatibility==
+
+The v0 segwit rules prohibit leaving anything on the stack, so for v0 parameters have to be passed on the alt stack for compatibility reasons.
+
+==References==
+
+[1] [https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki BIP16: Pay to Script Hash]
+
+[2] [https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki BIP141: Segregated Witness (Consensus Layer)]
+
+[3] [https://github.com/bitcoin/bips/blob/master/bip-0116.mediawiki BIP116: MERKLEBRANCHVERIFY]
+
+[4] "[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-September/015028.html An explanation and justification of the tail-call and MBV approach to MAST]", Mark Friedenbach, Bitcoin Development Mailing List, 20 September 2017.
+
+[5] [https://github.com/bitcoin/bips/blob/master/bip-0114.mediawiki BIP114: Merkelized Abstract Syntax Tree]
+
+[6] [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP68: Relative lock-time using consensus-enforced sequence numbers]
diff --git a/bip-0118.mediawiki b/bip-0118.mediawiki
new file mode 100644
index 0000000..1b2f27c
--- /dev/null
+++ b/bip-0118.mediawiki
@@ -0,0 +1,144 @@
+<pre>
+ BIP: 118
+ Layer: Consensus (soft fork)
+ Title: SIGHASH_NOINPUT
+ Author: Christian Decker <decker.christian@gmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0118
+ Status: Draft
+ Type: Standards Track
+ Created: 2017-02-28
+ License: BSD-3-Clause
+</pre>
+
+== Abstract ==
+This BIP describes a new signature hash flag (<tt>sighash</tt>-flag) for
+segwit transactions. It removes any commitment to the output being
+spent from the signature verification mechanism. This enables dynamic
+binding of transactions to outputs, predicated solely on the
+compatibility of output scripts to input scripts.
+
+== Motivation ==
+Off-chain protocols make use of transactions that are not yet
+broadcast to the Bitcoin network in order to renegotiate the final
+state that should be settled on-chain.
+In a number of cases it is desirable to react to a given transaction
+being seen on-chain with a predetermined reaction in the form of
+another transaction.
+Often the reaction is identical, no matter which transaction is seen
+on-chain, but the application still needs to create many identical
+transactions.
+This is because signatures in the input of a transaction uniquely
+commit to the hash of the transaction that created the output being
+spent.
+
+This proposal introduces a new sighash flag that modifies the behavior
+of the transaction digest algorithm used in the signature creation and
+verification, to exclude the previous output commitment.
+By removing the commitment we enable dynamic rebinding of a signed
+transaction to outputs whose <tt>witnessProgram</tt> and value match the ones
+in the <tt>witness</tt> of the spending transaction.
+
+The dynamic binding is opt-in and can further be restricted by using
+unique <tt>witnessProgram</tt> scripts that are specific to the application
+instance, e.g., using public keys that are specific to the off-chain
+protocol instance.
+
+== Specification ==
+<tt>SIGHASH_NOINPUT</tt> is a flag with value <tt>0x40</tt> appended to a signature
+so that the signature does not commit to any of the inputs, and
+therefore to the outputs being spent. The flag applies solely to the
+verification of that single signature.
+
+The <tt>SIGHASH_NOINPUT</tt> flag is only active for segwit scripts with
+version 1 or higher. Should the flag be used in a non-segwit script or
+a segwit script of version 0, the current behavior is maintained and
+the script execution MUST abort with a failure.
+
+The transaction digest algorithm from BIP 143 is used when verifying a
+<tt>SIGHASH_NOINPUT</tt> signature, with the following modifications:
+
+ 2. hashPrevouts (32-byte hash) is 32 0x00 bytes
+ 3. hashSequence (32-byte hash) is 32 0x00 bytes
+ 4. outpoint (32-byte hash + 4-byte little endian) is
+ set to 36 0x00 bytes
+ 5. scriptCode of the input is set to an empty script
+ 0x00
+
+The <tt>value</tt> of the previous output remains part of the transaction
+digest and is therefore also committed to in the signature.
+
+The <tt>NOINPUT</tt> flag MAY be combined with the <tt>SINGLE</tt> flag in which
+case the <tt>hashOutputs</tt> is modified as per BIP
+143<ref>https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki</ref>: it
+only commits to the output with the matching index, if such output exists, and
+is a <tt>uint256</tt> <tt>0x0000......0000</tt> otherwise.
+
+Being a change in the digest algorithm, the <tt>NOINPUT</tt> flag applies to
+all segwit signature verification opcodes, specifically it applies to:
+
+* <tt>OP_CHECKSIG</tt>
+
+* <tt>OP_CHECKSIGVERIFY</tt>
+
+* <tt>OP_CHECKMULTISIG</tt>
+
+* <tt>OP_CHECKMULTISIGVERIFY</tt>
+
+== Binding through scripts ==
+Using <tt>NOINPUT</tt> the input containing the signature no longer
+references a specific output.
+Any participant can take a transaction and rewrite it by changing the
+hash reference to the previous output, without invalidating the
+signatures.
+This allows transactions to be bound to any output that matches the
+value committed to in the <tt>witness</tt> and whose <tt>witnessProgram</tt>,
+combined with the spending transaction's <tt>witness</tt> returns <tt>true</tt>.
+
+Previously, all information in the transaction was committed in the
+signature itself, while now the relationship between the spending
+transaction and the output being spent is solely based on the
+compatibility of the <tt>witnessProgram</tt> and the <tt>witness</tt>.
+
+This also means that particular care has to be taken in order to avoid
+unintentionally enabling this rebinding mechanism. <tt>NOINPUT</tt> MUST NOT
+be used, unless it is explicitly needed for the application, e.g., it
+MUST NOT be a default signing flag in a wallet
+implementation. Rebinding is only possible when the outputs the
+transaction may bind to all use the same public keys. Any public key
+that is used in a <tt>NOINPUT</tt> signature MUST only be used for outputs
+that the input may bind to, and they MUST NOT be used for transactions
+that the input may not bind to. For example an application SHOULD
+generate a new key-pair for the application instance using <tt>NOINPUT</tt>
+signatures and MUST NOT reuse them afterwards.
+
+== Deployment ==
+The <tt>NOINPUT</tt> sighash flag is to be deployed during a regular segwit
+script update.
+
+== Backward compatibility ==
+As a soft fork, older software will continue to operate without
+modification. Non-upgraded nodes, however, will not verify the
+validity of the new sighash flag and will consider the transaction
+valid by default. Being only applicable to segwit transactions,
+non-segwit nodes will see an anyone-can-spend script and will consider
+it valid.
+
+== Acknowledgments ==
+
+The <tt>NOINPUT</tt> sighash flag was first proposed by Joseph Poon in
+February 2016<ref>https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012460.html</ref>, after being mentioned in the original
+Lightning paper<ref>http://lightning.network/lightning-network.pdf</ref>. A formal proposal was however
+deferred until after the activation of segwit. This proposal is a
+continuation of this discussion and attempts to formalize it in such a
+way that it can be included in the Bitcoin protocol. As such we'd like
+acknowledge Joseph Poon and Thaddeus Dryja as the original inventors
+of the <tt>NOINPUT</tt> sighash flag, and its uses in off-chain protocols.
+
+== References ==
+
+<references/>
+
+== Copyright ==
+
+This document is licensed under the BSD 3 Clause license.
diff --git a/bip-0119.mediawiki b/bip-0119.mediawiki
new file mode 100644
index 0000000..7a87b24
--- /dev/null
+++ b/bip-0119.mediawiki
@@ -0,0 +1,562 @@
+<pre>
+ BIP: 119
+ Layer: Consensus (soft fork)
+ Title: CHECKTEMPLATEVERIFY
+ Author: Jeremy Rubin <j@rubin.io>
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0119
+ Status: Draft
+ Type: Standards Track
+ Created: 2020-01-06
+ License: BSD-3-Clause
+</pre>
+
+==Abstract==
+
+This BIP proposes a new opcode, OP_CHECKTEMPLATEVERIFY, to be activated
+as a change to the semantics of OP_NOP4.
+
+The new opcode has applications for transaction congestion control and payment
+channel instantiation, among others, which are described in the Motivation
+section of this BIP.
+
+==Summary==
+
+OP_CHECKTEMPLATEVERIFY uses opcode OP_NOP4 (0xb3) as a soft fork upgrade.
+
+OP_CHECKTEMPLATEVERIFY does the following:
+
+* There is at least one element on the stack, fail otherwise
+* The element on the stack is 32 bytes long, NOP otherwise
+* The StandardTemplateHash of the transaction at the current input index is equal to the element on the stack, fail otherwise
+
+The StandardTemplateHash commits to the serialized version, locktime, scriptSigs hash (if any
+non-null scriptSigs), number of inputs, sequences hash, number of outputs, outputs hash, and
+currently executing input index.
+
+The recommended standardness rules additionally:
+
+* Reject non-32 byte as SCRIPT_ERR_DISCOURAGE_UPGRADABLE_NOPS.
+
+==Motivation==
+
+Covenants are restrictions on how a coin may be spent beyond key ownership. Covenants can be useful
+to construct smart contracts. As covenants are complex to implement and risk of introducing
+fungibility discriminants they have not been seriously considered for inclusion in Bitcoin.
+
+This BIP introduces a simple covenant called a *template* which enables a limited set of highly
+valuable use cases without significant risk.
+
+A few examples are described below, which should be the subject of future non-consensus
+standardization efforts.
+
+===Congestion Controlled Transactions===
+
+When there is a high demand for blockspace it becomes very expensive to make transactions. A large
+volume payment processor may aggregate all their payments into a single O(1) transaction commitment
+for purposes of confirmation using CHECKTEMPLATEVERIFY. Then, some time later, the payments can
+be expanded out of that UTXO when the demand for blockspace is decreased. These payments can be
+structured in a tree-like fashion to reduce individual costs of redemption.
+
+
+The below chart showcases the structure of these transactions in comparison to
+normal transactions and batched transactions.
+
+<img src="bip-0119/states.svg" align="middle"></img>
+
+A simulation is shown below of what impact this could have on mempool backlog
+given 5% network adoption, and 50% network adoption. The code for the simulation
+is provided in this BIP's subdirectory.
+
+<img src="bip-0119/five.png" align="middle"></img>
+<img src="bip-0119/fifty.png" align="middle"></img>
+
+===Payment Channels===
+There are numerous payment channel related uses.
+
+====Channel Factories====
+
+Using CHECKTEMPLATEVERIFY for Channel Factories is similar to the use for Congestion Control,
+except the leaf node transactions are channels instead of plain payments. The channel can be between
+the sender and recipient or a target of recipient's choice. Using an CHECKTEMPLATEVERIFY, the
+recipient may give the sender an address which makes a tree of channels unbeknownst to them.
+These channels are time insensitive for setup, as all punishments are relative timelocked to the
+penultimate transaction node.
+Thus, coins sent using a congestion controlled transaction can still enjoy instant liquidity.
+
+====Non-Interactive Channels====
+When opening a traditional payment channel, both parties to the channel must participate. This is
+because the channel uses pre-signed multi-sig transactions to ensure that a channel can always be
+exited by either party, before entering.
+With CHECKTEMPLATEVERIFY, it’s possible for a single party to construct a channel which either
+party can exit from without requiring signatures from both parties.
+These payment channels can operate in one direction, paying to the channel "listener" without need
+for their private key to be online.
+<img src="bip-0119/nic.svg" align="middle"></img>
+
+====Increased Channel Routes====
+In the Lightning Network protocol, Hashed Time Locked Contracts (HTLCS) are used in the construction
+of channels. A new HTLC is required per route that the channel is serving in.
+In BOLT #2, this maximum number of HTLCs in a channel is hard limited to 483 as the maximum safe
+size to prevent the transaction from being too large to be valid. In common software implementations
+such as LND, this limit is set much lower to 12 HTLCS. This is because accepting a larger number of
+HTLCS makes it more difficult for transactions to confirm during congested periods as they must pay
+higher fees.
+Therefore, similarly to how congestion control is handled for normal transaction, lightning channel
+updates can be done across an CHECKTEMPLATEVERIFY tree, allowing nodes to safely use many more
+HTLCS.
+Because each HTLC can have its own relative time lock in the tree, this also improves the latency
+sensitivity of the lightning protocol on contested channel close.
+
+
+===Wallet Vaults===
+
+When greater security is required for cold storage solutions, there can be
+default script paths that move funds from one target to another target.
+For example, a cold wallet can be set up where one customer support desk can,
+without further authorization, move a portion of the funds (using multiple
+pre-set amounts) into a lukewarm wallet operated by an isolated support desk.
+The support desk can then issue some funds to a hot wallet, and send the
+remainder back to cold storage with a similar withdrawal mechanism in place.
+This is all possible without CHECKTEMPLATEVERIFY, but CHECKTEMPLATEVERIFY
+eliminates the need for coordination and online signers, as well as reducing the
+ability for a support desk to improperly move funds.
+Furthermore, all such designs can be combined with relative time locks to give
+time for compliance and risk desks to intervene.
+
+<img src="bip-0119/vaults.svg" align="middle"></img>
+
+===CoinJoin===
+
+CHECKTEMPLATEVERIFY makes it much easier to set up trustless CoinJoins than previously because
+participants agree on a single output which pays all participants, which will be lower fee than
+before. Further Each participant doesn't need to know the totality of the outputs committed to by
+that output, they only have to verify their own sub-tree will pay them.
+
+==Detailed Specification==
+The below code is the main logic for verifying CHECKTEMPLATEVERIFY, and is the canonical
+specification for the semantics of OP_CHECKTEMPLATEVERIFY.
+
+ case OP_CHECKTEMPLATEVERIFY:
+ {
+ // if flags not enabled; treat as a NOP4
+ if (!(flags & SCRIPT_VERIFY_STANDARD_TEMPLATE)) break;
+ if (stack.size() < 1)
+ return set_error(serror, SCRIPT_ERR_INVALID_STACK_OPERATION);
+ // If the argument was not 32 bytes, treat as OP_NOP4:
+ switch (stack.back().size()) {
+ case 32:
+ if (!checker.CheckStandardTemplateHash(stack.back())) {
+ return set_error(serror, SCRIPT_ERR_TEMPLATE_MISMATCH);
+ }
+ break;
+ default:
+ // future upgrade can add semantics for this opcode with different length args
+ // so discourage use when applicable
+ if (flags & SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS) {
+ return set_error(serror, SCRIPT_ERR_DISCOURAGE_UPGRADABLE_NOPS);
+ }
+ }
+ }
+ break;
+
+The hash is computed as follows:
+
+ uint256 GetStandardTemplateHash(const CTransaction& tx, uint32_t input_index) {
+ return GetStandardTemplateHash(tx, GetOutputsSHA256(tx), GetSequenceSHA256(tx), input_index);
+ }
+ uint256 GetStandardTemplateHash(const CTransaction& tx, const uint256& outputs_hash, const uint256& sequences_hash,
+ const uint32_t input_index) {
+ bool skip_scriptSigs = std::find_if(tx.vin.begin(), tx.vin.end(),
+ [](const CTxIn& c) { return c.scriptSig != CScript(); }) == tx.vin.end();
+ return skip_scriptSigs ? GetStandardTemplateHashEmptyScript(tx, outputs_hash, sequences_hash, input_index) :
+ GetStandardTemplateHashWithScript(tx, outputs_hash, sequences_hash, GetScriptSigsSHA256(tx), input_index);
+ }
+ uint256 GetStandardTemplateHashWithScript(const CTransaction& tx, const uint256& outputs_hash, const uint256& sequences_hash,
+ const uint256& scriptSig_hash, const uint32_t input_index) {
+ auto h = CHashWriter(SER_GETHASH, 0)
+ << tx.nVersion
+ << tx.nLockTime
+ << scriptSig_hash
+ << uint32_t(tx.vin.size())
+ << sequences_hash
+ << uint32_t(tx.vout.size())
+ << outputs_hash
+ << input_index;
+ return h.GetSHA256();
+ }
+ uint256 GetStandardTemplateHashEmptyScript(const CTransaction& tx, const uint256& outputs_hash, const uint256& sequences_hash,
+ const uint32_t input_index) {
+ auto h = CHashWriter(SER_GETHASH, 0)
+ << tx.nVersion
+ << tx.nLockTime
+ << uint32_t(tx.vin.size())
+ << sequences_hash
+ << uint32_t(tx.vout.size())
+ << outputs_hash
+ << input_index;
+ return h.GetSHA256();
+ }
+
+
+A PayToBasicStandardTemplate output matches the following template:
+
+ bool CScript::IsPayToBasicStandardTemplate() const
+ {
+ // Extra-fast test for pay-to-basic-standard-template CScripts:
+ return (this->size() == 34 &&
+ (*this)[0] == 0x20 &&
+ (*this)[33] == OP_CHECKTEMPLATEVERIFY);
+ }
+
+==Deployment==
+
+Deployment should be done via BIP 9 VersionBits.
+
+The start time and bit in the implementation are currently set to bit 5 and
+March 1st, 2020, but this is subject to change while the BIP is a draft.
+
+For the avoidance of unclarity, the parameters are:
+
+ consensus.vDeployments[Consensus::DEPLOYMENT_CHECKTEMPLATEVERIFY].bit = 5;
+ consensus.vDeployments[Consensus::DEPLOYMENT_CHECKTEMPLATEVERIFY].nStartTime = 1583020800; // March 1, 2020
+ consensus.vDeployments[Consensus::DEPLOYMENT_CHECKTEMPLATEVERIFY].nTimeout = 1614556800; // March 1, 2021
+
+In order to facilitate using CHECKTEMPLATEVERIFY, the common case of a PayToBasicStandardTemplate
+with no scriptSig data shall be made standard to permit relaying. Future template types may be
+standardized later as policy changes.
+
+==Reference Implementation==
+
+A reference implementation and tests are available here:
+https://github.com/JeremyRubin/bitcoin/tree/checktemplateverify.
+
+
+==Rationale==
+
+The goal of CHECKTEMPLATEVERIFY is to be minimal impact on the existing codebase -- in the
+future, as we become aware of more complex but shown to be safe use cases new template types can be added.
+
+
+Below we'll discuss the rules one-by-one:
+
+
+
+====The StandardTemplateHash of the transaction at the current input index matches the top of the stack====
+
+The set of data committed to is a superset of data which can impact the TXID of the transaction,
+other than the inputs. This ensures that for a given known input, the TXIDs can also be known ahead
+of time. Otherwise, CHECKTEMPLATEVERIFY would not be usable for Channel Factory type constructions
+as the redemption TXID could be malleated and pre-signed transactions invalidated.
+
+
+
+=====Committing to the version and locktime=====
+
+Were these values not committed, it would be possible to delay the spending of
+an output arbitrarily as well as possible to change the TXID.
+
+Committing these values, rather than restricting them to specific values, is
+more flexible as it permits users of CHECKTEMPLATEVERIFY the set the version and
+locktime as they please.
+
+=====Committing to the ScriptSigs Hash=====
+
+The scriptsig in a segwit transaction must be exactly empty, unless it is a P2SH
+segwit transaction in which case it must be only the exact redeemscript. P2SH is incompatible
+(unless the P2SH hash is broken) with CHECKTEMPLATEVERIFY because the template hash must commit
+to the ScriptSig, which must contain the redeemscript, which is a hash cycle.
+
+To prevent succeptibility to malleability when not using a segwit input, we also commit to the
+scriptsig. This makes it possible to use a 2 input CHECKTEMPLATEVERIFY with a legacy pre-signed
+spend, as long as the exact scriptsig for the legacy output is committed. This is more robust than
+simply disallowing any scriptSig to be set with CHECKTEMPLATEVERIFY.
+
+If no scriptSigs are set in the transaction, there is no purpose in hashing the data or including it
+in the StandardTemplateHash, so we elide it. It is expected to be common that no scriptSigs will be
+set as segwit mandates that the scriptSig must be empty (to avoid malleability).
+
+We commit to the hash rather than the values themselves as this is already
+precomputed for each transaction to optimize SIGHASH_ALL signatures.
+
+Committing to the hash additionally makes it simpler to construct StandardTemplateHashes safely and unambiguously from
+script.
+
+
+=====Committing to the number of inputs=====
+
+If we allow more than one input to be spent in the transaction then it would be
+possible for two outputs to request payment to the same set of outputs,
+resulting in half the intended payments being discarded, the "half-spend" problem.
+
+Furthermore, the restriction on which inputs can be co-spent is critical for
+payments-channel constructs where a stable TXID is a requirement (updates would
+need to be signed on all combinations of inputs).
+
+However, there are legitimate use cases for allowing multiple inputs. For
+example:
+
+Script paths:
+
+ Path A: <+24 hours> OP_CHECKSEQUENCEVERIFY OP_CHECKTEMPLATEVERIFY <Pay Alice 1 Bitcoin (1 input) nLockTime for +24 hours>
+ Path B: OP_CHECKTEMPLATEVERIFY <Pay Bob 2 Bitcoin (2 inputs)>
+
+In this case, there are 24 hours for the output to, with the addition of a
+second output, pay Bob 2 BTC. If 24 hours lapses, then Alice may redeem her 1
+BTC from the contract. Both input UTXOs may have the exact same Path B, or only one.
+
+The issue with these constructs is that there are N! orders that the inputs can
+be ordered in and it's not generally possible to restrict the ordering.
+
+CHECKTEMPLATEVERIFY allows for users to guarantee the exact number of inputs being
+spent. In general, using CHECKTEMPLATEVERIFY with more than one input is difficult
+and exposes subtle issues, so multiple inputs should not be used except in
+specific applications.
+
+In principal, committing to the Sequences Hash (below) implicitly commits to the number of inputs,
+making this field strictly redundant. However, separately committing to this number makes it easier
+to construct StandardTemplateHashes from script.
+
+We treat the number of inputs as a `uint32_t` because signature checking code expects nIn to be an
+`unsigned int`, even though in principal a transaction can encode more than a `uint32_t`'s worth of
+inputs.
+
+=====Committing to the Sequences Hash=====
+
+If we don't commit to the sequences, then the TXID can be malleated. This also allows us to enforce
+a relative sequence lock without an OP_CSV. It is insufficient to just pair CHECKTEMPLATEVERIFY
+with OP_CSV because OP_CSV enforces a minimum nSequence value, not a literal value.
+
+We commit to the hash rather than the values themselves as this is already
+precomputed for each transaction to optimize SIGHASH_ALL signatures.
+
+Committing to the hash additionally makes it simpler to construct StandardTemplateHashes safely and unambiguously from
+script.
+
+=====Committing to the Number of Outputs=====
+
+In principal, committing to the Outputs Hash (below) implicitly commits to the number of outputs,
+making this field strictly redundant. However, separately committing to this number makes it easier
+to construct StandardTemplateHashes from script.
+
+We treat the number of outputs as a `uint32_t` because a `COutpoint` index is a `uint32_t`, even
+though in principal a transaction could encode more outputs.
+
+=====Committing to the outputs hash=====
+
+This ensures that spending the UTXO is guaranteed to create the exact outputs
+requested.
+
+We commit to the hash rather than the values themselves as this is already
+precomputed for each transaction to optimize SIGHASH_ALL signatures.
+
+Committing to the hash additionally makes it simpler to construct StandardTemplateHashes safely and unambiguously from
+script.
+
+=====Committing to the current input's index=====
+
+Committing to the currently executing input's index is not strictly needed for anti-malleability,
+however it does restrict the input orderings eliminating a source of malleability for protocol
+designers.
+
+However, committing to the index eliminates key-reuse vulnerability to the half-spend problem.
+As CHECKTEMPLATEVERIFY scripts commit to being spent at particular index, reused instances of these
+scripts cannot be spent at the same index, which implies that they cannot be spent in the same transaction.
+This makes it safer to design wallet vault contracts without half-spend vulnerabilities.
+
+Committing to the current index doesn't prevent one from expressing a CHECKTEMPLATEVERIFY which can
+be spent at multiple indicies. In current script, the CHECKTEMPLATEVERIFY operation can be wrapped
+in an OP_IF for each index (or Tapscript branches in the future). If OP_CAT or OP_SHA256STREAM are
+added to Bitcoin, the index may simply be passed in by the witness before hashing.
+
+=====Committing to Values by Hash=====
+
+Committing to values by hash makes it easier and more efficient to construct a StandardTemplateHash
+from script. Fields which are not intended to be set may be committed to by hash without incurring
+O(n) overhead to re-hash.
+
+Furthermore, if OP_SHA256STREAM is added in the future, it may be possible to write a script which
+allows adding a single output to a list of outputs without incurring O(n) overhead by committing to
+a hash midstate in the script.
+
+
+=====The Ordering of Fields=====
+
+Strictly speaking, the ordering of fields is insignificant. However, with a carefully selected
+order, the efficiency of future scripts (e.g., those using a OP_CAT or OP_SHA256STREAM) may be
+improved.
+
+In particular, the order is selected in order of least likely to change to most.
+
+#nVersion
+#nLockTime
+#scriptSig hash (maybe!)
+#input count
+#sequences hash
+#output count
+#outputs hash
+#input index
+
+Several fields are infrequently modified. nVersion should change infrequently. nLockTime should
+generally be fixed to 0 (in the case of a payment tree, only the *first* lock time is needed to
+prevent fee-sniping the root). scriptSig hash should generally not be set at all.
+
+Since there are many possible sequences hash for a given input count, the input count comes before
+the sequences hash.
+
+Since there are many possible outputs hashes for a given out count, the output count comes before
+the outputs hash.
+
+Since we're generally using a single input to many output design, we're more likely to modify the
+outputs hash than the inputs hash.
+
+We usually have just a single input on a CHECKTEMPLATEVERIFY script, which would suggest that it
+does not make sense for input index to be the last field. However, given the desirability of being
+able to express a "don't care" index easily (e.g., for decentralized kickstarter-type transactions),
+this value is placed last.
+
+As an example, the following code checks an input index argument and concatenates it to the template and
+checks the template matches the transaction.
+
+ OP_SIZE 4 OP_EQUALVERIF
+ <nVersion || nLockTime || input count || sequences hash || output count || outputs hash>
+ OP_SWAP OP_CAT OP_SHA256 OP_CHECKTEMPLATEVERIFY
+
+===Design Tradeoffs and Risks===
+Covenants have historically been controversial given their potential for fungibility risks -- coins
+could be minted which have a permanent restriction on how they may or may not be spent or required
+to propagate metadata.
+
+In the CHECKTEMPLATEVERIFY approach, the covenants are severely restricted to simple templates. The
+structure of CHECKTEMPLATEVERIFY template is such that the outputs must be known exactly at the
+time of construction. Based on a destructuring argument, it is only possible to create templates
+which expand in a finite number of steps. Thus templated transactions are in theory as safe as
+transactions which create all the inputs directly in this regard.
+
+Furthermore, templates are restricted to be spendable as a known number of inputs only, preventing
+unintentional introduction of the 'half spend' problem.
+
+
+Templates, as restricted as they are, bear some risks.
+
+====Permanently Unspendable Outputs====
+The preimage argument passed to CHECKTEMPLATEVERIFY may be unknown or otherwise unsatisfiable.
+However, requiring knowledge that an address is spendable from is incompatible with sender's ability
+to spend to any address (especially, OP_RETURN). If a sender needs to know the template can be spent
+from before sending, they may request a signature of an provably non-transaction challenge string
+from the leafs of the CHECKTEMPLATEVERIFY tree.
+
+====Forwarding Addresses====
+Key-reuse with CHECKTEMPLATEVERIFY may be used as a form of "forwarding address contract".
+A forwarding address is an address which can automatically execute in a predefined way.
+For example, a exchange's hot wallet might use an address which can automatically be moved to a cold
+storage address after a relative timeout.
+
+The issue is that reusing addresses in this way can lead to loss of funds.
+Suppose one creates an template address which forwards 1 BTC to cold storage.
+Creating an output to this address with less than 1 BTC will be frozen permanently.
+Paying more than 1 BTC will lead to the funds in excess of 1BTC to be paid as a large miner fee.
+CHECKTEMPLATEVERIFY could commit to the exact amount of bitcoin provided by the inputs/amount of fee
+paid, but as this is a user error and not a malleability issue this is not done.
+Future soft-forks could introduce opcodes which allow conditionalizing which template or script
+branches may be used based on inspecting the amount of funds available in a transaction
+
+As a general best practice, it is incumbent on Bitcoin users to not reuse any address unless you are
+certain that the address is acceptable for the payment attempted. This limitation and risk is not
+unique to CHECKTEMPLATEVERIFY. For example, atomic swap scripts are single use once the hash is
+revealed. Future Taproot scripts may contain many logical branches that would be unsafe for being
+spent to multiple times (e.g., a Hash Time Lock branch should be instantiated with unique hashes
+each time it is used). Keys which have signed a SIGHASH_ANYPREVOUT transaction can similarly become
+reuse-unsafe.
+
+Because CHECKTEMPLATEVERIFY commits to the input index currently being spent, reused-keys are
+guaranteed to execute in separate transactions which reduces the risk of "half-spend" type issues.
+
+
+====NOP-Default and Standardness Rules====
+
+If the argument length is not exactly 32, CHECKTEMPLATEVERIFY treats it as a NOP.
+Many OP_NOP upgrades prefer to fail in such circumstances. In particular, for
+CHECKTEMPLATEVERIFY, making an invalid argument a NOP permits future soft-forks to upgrade the
+semantics or loosed restrictions around the value being previously pushed only.
+
+The standardness rules may lead an unscrupulous script developer to accidentally rely on the
+stricter standardness rules to be enforced during consensus. Should that developer submit a
+transaction directly to the network relying on standardness rejection, an standardness-invalid but
+consensus-valid transaction may be caused, leading to a potential loss of funds.
+
+
+====Feature Redundancy====
+CHECKTEMPLATEVERIFY templates are substantially less risky than other covenant systems. If
+implemented, other covenant systems could make the CHECKTEMPLATEVERIFY's functionality redundant.
+However, given CHECKTEMPLATEVERIFY's simple semantics and low on chain cost it's likely that it
+would continue to be favored even if redundant with other capabilities.
+
+More powerful covenants like those proposed by MES16, would also bring some benefits in terms of
+improving the ability to adjust for things like fees rather than relying on child-pays-for-parent or
+other mechanisms. However, these features come at substantially increased complexity and room for
+unintended behavior.
+
+Alternatively, SIGHASH_ANYPREVOUTANYSCRIPT based covenant designs can implement
+something similar to templates, via a scriptPubKey like:
+
+
+ <sig of desired TX with PK and fixed nonce R || SIGHASH_ANYPREVOUTANYSCRIPT <PK with public SK> OP_CHECKSIG
+
+SIGHASH_ANYPREVOUTANYSCRIPT bears additional technical and implementation risks that may preclude
+its viability for inclusion in Bitcoin, but the capabilities above are similar to what
+CHECKTEMPLATEVERIFY offers. However, CHECKTEMPLATEVERIFY has benefits in terms of verification
+speed, as it requires only hash computation rather than signature operations. This can be
+significant when constructing large payment trees or programmatic compilations. CHECKTEMPLATEVERIFY
+also has a feature-wise benefit in that it provides a robust pathway for future template upgrades.
+
+CHECKSIGFROMSTACK along with OP_CAT may also be used to emulate CHECKTEMPLATEVERIFY. However such
+constructions are more complicated to use than CHECKTEMPLATEVERIFY, and encumbers additional
+verification overhead absent from CHECKTEMPLATEVERIFY. These types of covenants also bear similar
+potential recursion issues to OP_COV which make it unlikely for inclusion in Bitcoin.
+
+
+Given the simplicity of this approach to implement and analyze, and the benefits realizable by user
+applications, CHECKTEMPLATEVERIFY's template based approach is proposed in lieu of more complete
+covenants system.
+
+== Backwards Compatibility ==
+
+OP_CHECKTEMPLATEVERIFY replaces a OP_NOP4 with stricter verification semantics. Therefore, scripts
+which previously were valid will cease to be valid with this change. Stricter verification semantics
+for an OP_NOP are a soft fork, so existing software will be fully functional without upgrade except
+for mining and block validation. Similar soft forks for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY
+(see BIP-0065 and BIP-0112) have similarly changed OP_NOP semantics without introducing compatibility issues.
+
+Older wallet software will be able to accept spends from OP_CHECKTEMPLATEVERIFY outputs, but will
+require an upgrade in order to treat PayToBasicStandardTemplate chains with a confirmed ancestor as
+being "trusted" (i.e., eligible for spending before the transaction is confirmed).
+
+Backports of OP_CHECKTEMPLATEVERIFY can be trivially prepared (see the reference implementation)
+for older node versions that can be patched but not upgraded to a newer major release.
+
+
+== References ==
+*[https://utxos.org utxos.org informational site]
+*[https://www.youtube.com/watch?v=YxsjdIl0034&t=2451 Scaling Bitcoin Presentation]
+*[https://bitcoinops.org/en/newsletters/2019/05/29/ Optech Newsletter Covering OP_CHECKOUTPUTSHASHVERIFY]
+*[https://cyber.stanford.edu/sites/g/files/sbiybj9936/f/jeremyrubin.pdf Structuring Multi Transaction Contracts in Bitcoin]
+*[https://github.com/jeremyrubin/lazuli Lazuli Notes (ECDSA based N-of-N Signatures for Certified Post-Dated UTXOs)]
+*[https://fc16.ifca.ai/bitcoin/papers/MES16.pdf Bitcoin Covenants]
+*[https://bitcointalk.org/index.php?topic=278122.0 CoinCovenants using SCIP signatures, an amusingly bad idea.]
+*[https://fc17.ifca.ai/bitcoin/papers/bitcoin17-final28.pdf Enhancing Bitcoin Transactions with Covenants]
+
+
+===Note on Similar Alternatives===
+An earlier version of CHECKTEMPLATEVERIFY, CHECKOUTPUTSHASHVERIFY, is withdrawn
+in favor of CHECKTEMPLATEVERIFY. CHECKOUTPUTSHASHVERIFY did not commit to the
+version or lock time and was thus insecure.
+
+CHECKTEMPLATEVERIFY could also be implemented as an extension to Taproot, and was
+proposed this way earlier. However, given that CHECKTEMPLATEVERIFY has no dependency
+on Taproot, it is preferable to deploy it independently.
+
+CHECKTEMPLATEVERIFY has also been previously referred to as OP_SECURETHEBAG, which is mentioned here
+to aid in searching and referencing discussion on this BIP.
+
+==Copyright==
+This document is licensed under the 3-clause BSD license.
diff --git a/bip-0119/fifty.png b/bip-0119/fifty.png
new file mode 100644
index 0000000..1f90c01
--- /dev/null
+++ b/bip-0119/fifty.png
Binary files differ
diff --git a/bip-0119/five.png b/bip-0119/five.png
new file mode 100644
index 0000000..7baa568
--- /dev/null
+++ b/bip-0119/five.png
Binary files differ
diff --git a/bip-0119/nic.svg b/bip-0119/nic.svg
new file mode 100644
index 0000000..ae6fb3c
--- /dev/null
+++ b/bip-0119/nic.svg
@@ -0,0 +1 @@
+<svg version="1.1" viewBox="0.0 0.0 960.0 540.0" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="g613f4dff88_0_30.0"><path d="m0 0l960.0 0l0 540.0l-960.0 0l0 -540.0z" clip-rule="nonzero"/></clipPath><g clip-path="url(#g613f4dff88_0_30.0)"><path fill="#ffffff" d="m0 0l960.0 0l0 540.0l-960.0 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m32.72441 22.721785l894.55115 0l0 60.125984l-894.55115 0z" fill-rule="evenodd"/><path fill="#000000" d="m273.27396 67.56178l0 -26.71875l3.625 0l14.03125 20.984375l0 -20.984375l3.390625 0l0 26.71875l-3.625 0l-14.03125 -21.0l0 21.0l-3.390625 0zm25.347809 -9.671875q0 -5.390625 3.0 -7.96875q2.484375 -2.15625 6.078125 -2.15625q4.0 0 6.53125 2.625q2.53125 2.609375 2.53125 7.21875q0 3.734375 -1.125 5.875q-1.109375 2.140625 -3.265625 3.328125q-2.140625 1.1875 -4.671875 1.1875q-4.0625 0 -6.578125 -2.609375q-2.5 -2.609375 -2.5 -7.5zm3.375 0q0 3.71875 1.625 5.5625q1.625 1.84375 4.078125 1.84375q2.453125 0 4.0625 -1.859375q1.625 -1.859375 1.625 -5.65625q0 -3.59375 -1.640625 -5.4375q-1.625 -1.859375 -4.046875 -1.859375q-2.453125 0 -4.078125 1.84375q-1.625 1.84375 -1.625 5.5625zm18.603882 9.671875l0 -19.359375l2.953125 0l0 2.75q2.140625 -3.1875 6.171875 -3.1875q1.75 0 3.21875 0.640625q1.46875 0.625 2.1875 1.640625q0.734375 1.015625 1.03125 2.421875q0.171875 0.90625 0.171875 3.1875l0 11.90625l-3.28125 0l0 -11.78125q0 -2.0 -0.390625 -2.984375q-0.375 -1.0 -1.359375 -1.59375q-0.96875 -0.59375 -2.28125 -0.59375q-2.09375 0 -3.625 1.328125q-1.515625 1.328125 -1.515625 5.046875l0 10.578125l-3.28125 0zm32.162323 0l0 -26.71875l3.53125 0l0 26.71875l-3.53125 0zm9.339722 0l0 -19.359375l2.953125 0l0 2.75q2.140625 -3.1875 6.171875 -3.1875q1.75 0 3.21875 0.640625q1.46875 0.625 2.1875 1.640625q0.734375 1.015625 1.03125 2.421875q0.171875 0.90625 0.171875 3.1875l0 11.90625l-3.28125 0l0 -11.78125q0 -2.0 -0.390625 -2.984375q-0.375 -1.0 -1.359375 -1.59375q-0.96875 -0.59375 -2.28125 -0.59375q-2.09375 0 -3.625 1.328125q-1.515625 1.328125 -1.515625 5.046875l0 10.578125l-3.28125 0zm27.932007 -2.9375l0.46875 2.90625q-1.375 0.28125 -2.46875 0.28125q-1.796875 0 -2.78125 -0.5625q-0.984375 -0.5625 -1.390625 -1.484375q-0.390625 -0.921875 -0.390625 -3.875l0 -11.140625l-2.40625 0l0 -2.546875l2.40625 0l0 -4.796875l3.265625 -1.96875l0 6.765625l3.296875 0l0 2.546875l-3.296875 0l0 11.328125q0 1.40625 0.171875 1.8125q0.171875 0.390625 0.5625 0.625q0.390625 0.234375 1.125 0.234375q0.546875 0 1.4375 -0.125zm16.464722 -3.296875l3.375 0.421875q-0.796875 2.96875 -2.96875 4.609375q-2.15625 1.640625 -5.53125 1.640625q-4.25 0 -6.75 -2.609375q-2.484375 -2.625 -2.484375 -7.34375q0 -4.890625 2.515625 -7.578125q2.515625 -2.703125 6.53125 -2.703125q3.890625 0 6.34375 2.640625q2.453125 2.640625 2.453125 7.4375q0 0.296875 -0.015625 0.875l-14.4375 0q0.1875 3.1875 1.8125 4.890625q1.625 1.6875 4.046875 1.6875q1.796875 0 3.078125 -0.9375q1.28125 -0.953125 2.03125 -3.03125zm-10.78125 -5.296875l10.8125 0q-0.21875 -2.453125 -1.234375 -3.671875q-1.578125 -1.890625 -4.078125 -1.890625q-2.25 0 -3.796875 1.515625q-1.53125 1.5 -1.703125 4.046875zm18.244507 11.53125l0 -19.359375l2.953125 0l0 2.9375q1.125 -2.0625 2.078125 -2.71875q0.96875 -0.65625 2.109375 -0.65625q1.671875 0 3.375 1.0625l-1.125 3.046875q-1.203125 -0.71875 -2.40625 -0.71875q-1.078125 0 -1.9375 0.65625q-0.859375 0.640625 -1.21875 1.78125q-0.546875 1.75 -0.546875 3.828125l0 10.140625l-3.28125 0zm25.102417 -2.390625q-1.828125 1.546875 -3.515625 2.1875q-1.6875 0.640625 -3.609375 0.640625q-3.1875 0 -4.90625 -1.546875q-1.71875 -1.5625 -1.71875 -4.0q0 -1.421875 0.640625 -2.59375q0.65625 -1.171875 1.703125 -1.875q1.046875 -0.71875 2.359375 -1.078125q0.96875 -0.265625 2.921875 -0.5q3.96875 -0.46875 5.84375 -1.125q0.03125 -0.671875 0.03125 -0.859375q0 -2.0 -0.9375 -2.828125q-1.25 -1.109375 -3.734375 -1.109375q-2.3125 0 -3.421875 0.8125q-1.09375 0.8125 -1.625 2.875l-3.21875 -0.4375q0.4375 -2.0625 1.4375 -3.328125q1.015625 -1.265625 2.90625 -1.953125q1.890625 -0.6875 4.390625 -0.6875q2.484375 0 4.03125 0.59375q1.546875 0.578125 2.28125 1.46875q0.734375 0.875 1.015625 2.21875q0.171875 0.84375 0.171875 3.03125l0 4.375q0 4.578125 0.203125 5.796875q0.21875 1.203125 0.828125 2.3125l-3.421875 0q-0.515625 -1.015625 -0.65625 -2.390625zm-0.28125 -7.328125q-1.78125 0.734375 -5.359375 1.25q-2.015625 0.28125 -2.859375 0.65625q-0.828125 0.359375 -1.296875 1.0625q-0.453125 0.703125 -0.453125 1.5625q0 1.3125 0.984375 2.1875q1.0 0.875 2.921875 0.875q1.890625 0 3.359375 -0.828125q1.484375 -0.84375 2.1875 -2.28125q0.515625 -1.109375 0.515625 -3.28125l0 -1.203125zm21.041382 2.625l3.21875 0.421875q-0.515625 3.34375 -2.703125 5.234375q-2.171875 1.875 -5.34375 1.875q-3.984375 0 -6.40625 -2.59375q-2.40625 -2.59375 -2.40625 -7.453125q0 -3.125 1.03125 -5.46875q1.046875 -2.359375 3.171875 -3.53125q2.125 -1.1875 4.625 -1.1875q3.15625 0 5.15625 1.59375q2.0 1.59375 2.578125 4.53125l-3.203125 0.5q-0.453125 -1.953125 -1.609375 -2.9375q-1.15625 -0.984375 -2.796875 -0.984375q-2.484375 0 -4.03125 1.78125q-1.546875 1.765625 -1.546875 5.609375q0 3.90625 1.484375 5.671875q1.5 1.765625 3.90625 1.765625q1.9375 0 3.234375 -1.171875q1.296875 -1.1875 1.640625 -3.65625zm13.1953125 4.15625l0.46875 2.90625q-1.375 0.28125 -2.46875 0.28125q-1.796875 0 -2.78125 -0.5625q-0.984375 -0.5625 -1.390625 -1.484375q-0.390625 -0.921875 -0.390625 -3.875l0 -11.140625l-2.40625 0l0 -2.546875l2.40625 0l0 -4.796875l3.265625 -1.96875l0 6.765625l3.296875 0l0 2.546875l-3.296875 0l0 11.328125q0 1.40625 0.171875 1.8125q0.171875 0.390625 0.5625 0.625q0.390625 0.234375 1.125 0.234375q0.546875 0 1.4375 -0.125zm3.2303467 -20.015625l0 -3.765625l3.28125 0l0 3.765625l-3.28125 0zm0 22.953125l0 -19.359375l3.28125 0l0 19.359375l-3.28125 0zm13.652466 0l-7.375 -19.359375l3.46875 0l4.15625 11.59375q0.671875 1.875 1.234375 3.90625q0.4375 -1.53125 1.21875 -3.6875l4.3125 -11.8125l3.375 0l-7.328125 19.359375l-3.0625 0zm26.539093 -6.234375l3.375 0.421875q-0.796875 2.96875 -2.96875 4.609375q-2.15625 1.640625 -5.5312805 1.640625q-4.25 0 -6.75 -2.609375q-2.484375 -2.625 -2.484375 -7.34375q0 -4.890625 2.515625 -7.578125q2.515625 -2.703125 6.53125 -2.703125q3.8906555 0 6.3437805 2.640625q2.453125 2.640625 2.453125 7.4375q0 0.296875 -0.015625 0.875l-14.4375305 0q0.1875 3.1875 1.8125 4.890625q1.625 1.6875 4.046875 1.6875q1.7969055 0 3.0781555 -0.9375q1.28125 -0.953125 2.03125 -3.03125zm-10.7812805 -5.296875l10.8125305 0q-0.21875 -2.453125 -1.234375 -3.671875q-1.578125 -1.890625 -4.0781555 -1.890625q-2.25 0 -3.796875 1.515625q-1.53125 1.5 -1.703125 4.046875zm48.131134 2.15625l3.546875 0.90625q-1.109375 4.34375 -4.0 6.640625q-2.890625 2.28125 -7.0625 2.28125q-4.328125 0 -7.03125 -1.75q-2.703125 -1.765625 -4.125 -5.09375q-1.40625 -3.34375 -1.40625 -7.171875q0 -4.171875 1.59375 -7.28125q1.59375 -3.109375 4.53125 -4.71875q2.953125 -1.609375 6.484375 -1.609375q4.015625 0 6.75 2.046875q2.734375 2.03125 3.8125 5.734375l-3.484375 0.8125q-0.9375 -2.90625 -2.703125 -4.234375q-1.765625 -1.34375 -4.4375 -1.34375q-3.09375 0 -5.15625 1.484375q-2.0625 1.46875 -2.90625 3.96875q-0.84375 2.484375 -0.84375 5.125q0 3.40625 0.984375 5.953125q1.0 2.546875 3.09375 3.8125q2.109375 1.25 4.546875 1.25q2.96875 0 5.03125 -1.71875q2.0625 -1.71875 2.78125 -5.09375zm7.4727783 9.375l0 -26.71875l3.28125 0l0 9.578125q2.296875 -2.65625 5.796875 -2.65625q2.15625 0 3.734375 0.859375q1.59375 0.84375 2.28125 2.34375q0.6875 1.484375 0.6875 4.328125l0 12.265625l-3.28125 0l0 -12.265625q0 -2.46875 -1.078125 -3.578125q-1.0625 -1.125 -3.015625 -1.125q-1.453125 0 -2.75 0.765625q-1.28125 0.75 -1.828125 2.046875q-0.546875 1.28125 -0.546875 3.5625l0 10.59375l-3.28125 0zm33.400757 -2.390625q-1.828125 1.546875 -3.515625 2.1875q-1.6875 0.640625 -3.609375 0.640625q-3.1875 0 -4.90625 -1.546875q-1.71875 -1.5625 -1.71875 -4.0q0 -1.421875 0.640625 -2.59375q0.65625 -1.171875 1.703125 -1.875q1.046875 -0.71875 2.359375 -1.078125q0.96875 -0.265625 2.921875 -0.5q3.96875 -0.46875 5.84375 -1.125q0.03125 -0.671875 0.03125 -0.859375q0 -2.0 -0.9375 -2.828125q-1.25 -1.109375 -3.734375 -1.109375q-2.3125 0 -3.421875 0.8125q-1.09375 0.8125 -1.625 2.875l-3.21875 -0.4375q0.4375 -2.0625 1.4375 -3.328125q1.015625 -1.265625 2.90625 -1.953125q1.890625 -0.6875 4.390625 -0.6875q2.484375 0 4.03125 0.59375q1.546875 0.578125 2.28125 1.46875q0.734375 0.875 1.015625 2.21875q0.171875 0.84375 0.171875 3.03125l0 4.375q0 4.578125 0.203125 5.796875q0.21875 1.203125 0.828125 2.3125l-3.421875 0q-0.515625 -1.015625 -0.65625 -2.390625zm-0.28125 -7.328125q-1.78125 0.734375 -5.359375 1.25q-2.015625 0.28125 -2.859375 0.65625q-0.828125 0.359375 -1.296875 1.0625q-0.453125 0.703125 -0.453125 1.5625q0 1.3125 0.984375 2.1875q1.0 0.875 2.921875 0.875q1.890625 0 3.359375 -0.828125q1.484375 -0.84375 2.1875 -2.28125q0.515625 -1.109375 0.515625 -3.28125l0 -1.203125zm8.400757 9.71875l0 -19.359375l2.953125 0l0 2.75q2.140625 -3.1875 6.171875 -3.1875q1.75 0 3.21875 0.640625q1.46875 0.625 2.1875 1.640625q0.734375 1.015625 1.03125 2.421875q0.171875 0.90625 0.171875 3.1875l0 11.90625l-3.28125 0l0 -11.78125q0 -2.0 -0.390625 -2.984375q-0.375 -1.0 -1.359375 -1.59375q-0.96875 -0.59375 -2.28125 -0.59375q-2.09375 0 -3.625 1.328125q-1.515625 1.328125 -1.515625 5.046875l0 10.578125l-3.28125 0zm20.760132 0l0 -19.359375l2.953125 0l0 2.75q2.140625 -3.1875 6.171875 -3.1875q1.75 0 3.21875 0.640625q1.46875 0.625 2.1875 1.640625q0.734375 1.015625 1.03125 2.421875q0.171875 0.90625 0.171875 3.1875l0 11.90625l-3.28125 0l0 -11.78125q0 -2.0 -0.390625 -2.984375q-0.375 -1.0 -1.359375 -1.59375q-0.96875 -0.59375 -2.28125 -0.59375q-2.09375 0 -3.625 1.328125q-1.515625 1.328125 -1.515625 5.046875l0 10.578125l-3.28125 0zm34.025757 -6.234375l3.375 0.421875q-0.796875 2.96875 -2.96875 4.609375q-2.15625 1.640625 -5.53125 1.640625q-4.25 0 -6.75 -2.609375q-2.484375 -2.625 -2.484375 -7.34375q0 -4.890625 2.515625 -7.578125q2.515625 -2.703125 6.53125 -2.703125q3.890625 0 6.34375 2.640625q2.453125 2.640625 2.453125 7.4375q0 0.296875 -0.015625 0.875l-14.4375 0q0.1875 3.1875 1.8125 4.890625q1.625 1.6875 4.046875 1.6875q1.796875 0 3.078125 -0.9375q1.28125 -0.953125 2.03125 -3.03125zm-10.78125 -5.296875l10.8125 0q-0.21875 -2.453125 -1.234375 -3.671875q-1.578125 -1.890625 -4.078125 -1.890625q-2.25 0 -3.796875 1.515625q-1.53125 1.5 -1.703125 4.046875zm18.213257 11.53125l0 -26.71875l3.28125 0l0 26.71875l-3.28125 0zm7.043152 -5.78125l3.25 -0.5q0.28125 1.9375 1.515625 2.984375q1.25 1.03125 3.5 1.03125q2.265625 0 3.359375 -0.90625q1.09375 -0.921875 1.09375 -2.171875q0 -1.109375 -0.96875 -1.75q-0.671875 -0.4375 -3.359375 -1.109375q-3.609375 -0.90625 -5.0 -1.5625q-1.390625 -0.671875 -2.125 -1.84375q-0.71875 -1.1875 -0.71875 -2.609375q0 -1.296875 0.59375 -2.390625q0.59375 -1.109375 1.625 -1.84375q0.765625 -0.5625 2.078125 -0.953125q1.328125 -0.390625 2.84375 -0.390625q2.265625 0 3.984375 0.65625q1.734375 0.65625 2.546875 1.78125q0.828125 1.125 1.140625 3.0l-3.21875 0.4375q-0.21875 -1.5 -1.265625 -2.328125q-1.046875 -0.84375 -2.953125 -0.84375q-2.265625 0 -3.234375 0.75q-0.96875 0.734375 -0.96875 1.75q0 0.625 0.40625 1.140625q0.40625 0.53125 1.265625 0.875q0.484375 0.1875 2.890625 0.84375q3.484375 0.921875 4.859375 1.515625q1.375 0.59375 2.15625 1.734375q0.78125 1.125 0.78125 2.796875q0 1.640625 -0.953125 3.09375q-0.953125 1.453125 -2.765625 2.25q-1.796875 0.78125 -4.078125 0.78125q-3.765625 0 -5.75 -1.5625q-1.984375 -1.578125 -2.53125 -4.65625z" fill-rule="nonzero"/><path fill="#ffab40" d="m389.54614 108.24278l95.32263 0c2.1362305E-4 0 4.5776367E-4 9.1552734E-5 6.1035156E-4 2.593994E-4c1.8310547E-4 1.6021729E-4 2.746582E-4 3.8909912E-4 2.746582E-4 6.1798096E-4l-8.8500977E-4 52.046165c0 5.7490845 -4.6605835 10.409653 -10.409668 10.409653l-95.32263 0l0 0c-4.8828125E-4 0 -8.8500977E-4 -3.9672852E-4 -8.8500977E-4 -8.8500977E-4l8.8500977E-4 -52.04615l0 0c0 -5.7490997 4.6605835 -10.40966 10.409668 -10.40966z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m389.54614 108.24278l95.32263 0c2.1362305E-4 0 4.5776367E-4 9.1552734E-5 6.1035156E-4 2.593994E-4c1.8310547E-4 1.6021729E-4 2.746582E-4 3.8909912E-4 2.746582E-4 6.1798096E-4l-8.8500977E-4 52.046165c0 5.7490845 -4.6605835 10.409653 -10.409668 10.409653l-95.32263 0l0 0c-4.8828125E-4 0 -8.8500977E-4 -3.9672852E-4 -8.8500977E-4 -8.8500977E-4l8.8500977E-4 -52.04615l0 0c0 -5.7490997 4.6605835 -10.40966 10.409668 -10.40966z" fill-rule="evenodd"/><path fill="#000000" d="m414.3476 128.27113l0 -8.421883l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421883l-1.265625 0zm4.7507324 0l3.6875 -4.9687576l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.0468826l-1.5625 0l-2.40625 -3.4062576q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.3281326l-1.515625 0zm9.842865 0l0 -9.546883l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546883l-1.296875 0l-5.015625 -7.5000076l0 7.5000076l-1.203125 0zm11.561218 0l3.65625 -9.546883l1.359375 0l3.90625 9.546883l-1.4375 0l-1.109375 -2.8906326l-3.984375 0l-1.046875 2.8906326l-1.34375 0zm2.75 -3.9218826l3.234375 0l-1.0 -2.640625q-0.453125 -1.203125 -0.671875 -1.96875q-0.1875 0.90625 -0.515625 1.8125l-1.046875 2.796875zm7.3585205 -1.65625l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.5781326l0 -1.3281326l1.328125 0l0 1.3281326l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m399.46564 140.92738l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.1883545 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.874878 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.631073 -5.421875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.4678955 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125z" fill-rule="nonzero"/><path fill="#000000" d="m433.26514 160.27113l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#eeeeee" d="m302.1286 353.3071l259.74805 0l0 51.905487l-259.74805 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m302.1286 353.3071l259.74805 0l0 51.905487l-259.74805 0z" fill-rule="evenodd"/><path fill="#000000" d="m330.01657 366.51297l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm3.2189026 9.546875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -2.53125l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.2093506 0q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 6.109375l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm11.084351 1.203125l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm8.9696045 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1561279 -7.140625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm4.86734 0l-2.625 -6.90625l1.234375 0l1.484375 4.140625q0.234375 0.65625 0.4375 1.390625q0.15625 -0.546875 0.4375 -1.3125l1.53125 -4.21875l1.21875 0l-2.625 6.90625l-1.09375 0zm9.4765625 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm17.177948 0.78125l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm2.539215 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.1781006 1.390625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.8671875 -0.15625l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm10.5998535 4.125l0 -9.546875l1.25 0l0 9.546875l-1.25 0zm3.3279724 0l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm7.4281006 -8.1875l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.507965 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1561279 -7.140625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm7.46109 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748474 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.006226 4.125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm16.740479 -6.09375l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.796997 9.546875l0 -8.421875l-3.1405945 0l0 -1.125l7.5624695 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.4678955 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm9.617065 -0.953125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m336.8607 390.93484l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0zm4.8498535 -2.328125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.9281006 3.453125l0 -6.0l-1.03125 0l0 -0.90625l1.03125 0l0 -0.734375q0 -0.703125 0.125 -1.046875q0.171875 -0.453125 0.59375 -0.734375q0.421875 -0.28125 1.203125 -0.28125q0.484375 0 1.09375 0.109375l-0.1875 1.03125q-0.359375 -0.0625 -0.6875 -0.0625q-0.53125 0 -0.75 0.234375q-0.21875 0.21875 -0.21875 0.84375l0 0.640625l1.34375 0l0 0.90625l-1.34375 0l0 6.0l-1.171875 0zm12.95285 -1.125l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0zm12.240448 -2.21875l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.2345276 -0.109375q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.2093506 0q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 6.109375l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm11.084351 1.203125l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm8.969635 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1560974 -7.140625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm4.86734 0l-2.625 -6.90625l1.234375 0l1.484375 4.140625q0.234375 0.65625 0.4375 1.390625q0.15625 -0.546875 0.4375 -1.3125l1.53125 -4.21875l1.21875 0l-2.625 6.90625l-1.09375 0zm9.4765625 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.787323 0.671875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm15.110107 -3.34375l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm5.2501526 3.34375l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm8.438232 0l-3.6875 -9.546875l1.359375 0l2.484375 6.9375q0.296875 0.828125 0.5 1.5625q0.21875 -0.78125 0.515625 -1.5625l2.578125 -6.9375l1.28125 0l-3.734375 9.546875l-1.296875 0zm8.2647705 2.8125q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm4.7664795 -2.8125l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.8428955 0l0 -9.546875l1.296875 0l5.0156555 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.0156555 -7.5l0 7.5l-1.203125 0zm20.140656 -3.34375l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm3.437622 6.15625l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#ffab40" d="m390.6013 267.60367l94.26749 0c2.1362305E-4 0 4.5776367E-4 9.1552734E-5 6.1035156E-4 2.746582E-4c1.8310547E-4 1.5258789E-4 2.746582E-4 3.6621094E-4 2.746582E-4 6.1035156E-4l-8.8500977E-4 57.321716c0 6.331848 -5.132965 11.464813 -11.464813 11.464813l-94.26749 0l0 0c-4.8828125E-4 0 -8.8500977E-4 -3.9672852E-4 -8.8500977E-4 -8.8500977E-4l8.8500977E-4 -57.321716l0 0c0 -6.331848 5.132965 -11.464813 11.464813 -11.464813z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m390.6013 267.60367l94.26749 0c2.1362305E-4 0 4.5776367E-4 9.1552734E-5 6.1035156E-4 2.746582E-4c1.8310547E-4 1.5258789E-4 2.746582E-4 3.6621094E-4 2.746582E-4 6.1035156E-4l-8.8500977E-4 57.321716c0 6.331848 -5.132965 11.464813 -11.464813 11.464813l-94.26749 0l0 0c-4.8828125E-4 0 -8.8500977E-4 -3.9672852E-4 -8.8500977E-4 -8.8500977E-4l8.8500977E-4 -57.321716l0 0c0 -6.331848 5.132965 -11.464813 11.464813 -11.464813z" fill-rule="evenodd"/><path fill="#000000" d="m413.97974 290.79736l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.8428955 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm13.28125 0l0 -9.546875l3.59375 0q1.09375 0 1.75 0.296875q0.65625 0.28125 1.03125 0.890625q0.375 0.609375 0.375 1.265625q0 0.609375 -0.34375 1.15625q-0.328125 0.53125 -0.984375 0.859375q0.859375 0.25 1.328125 0.875q0.46875 0.609375 0.46875 1.4375q0 0.671875 -0.296875 1.25q-0.28125 0.578125 -0.703125 0.890625q-0.40625 0.3125 -1.03125 0.46875q-0.625 0.15625 -1.546875 0.15625l-3.640625 0zm1.265625 -5.53125l2.0625 0q0.84375 0 1.203125 -0.109375q0.484375 -0.140625 0.71875 -0.46875q0.25 -0.34375 0.25 -0.84375q0 -0.46875 -0.234375 -0.828125q-0.21875 -0.359375 -0.640625 -0.5q-0.421875 -0.140625 -1.453125 -0.140625l-1.90625 0l0 2.890625zm0 4.40625l2.375 0q0.609375 0 0.859375 -0.046875q0.4375 -0.078125 0.734375 -0.25q0.296875 -0.1875 0.484375 -0.53125q0.1875 -0.359375 0.1875 -0.8125q0 -0.53125 -0.28125 -0.921875q-0.265625 -0.40625 -0.75 -0.5625q-0.484375 -0.15625 -1.40625 -0.15625l-2.203125 0l0 3.28125zm7.8585205 -4.453125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m399.46564 303.4536l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.1883545 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.874878 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.631073 -5.421875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.4678955 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125z" fill-rule="nonzero"/><path fill="#000000" d="m434.9995 321.67236l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0z" fill-rule="nonzero"/><path fill="#ffab40" d="m616.1341 449.54068l92.73468 0c2.4414062E-4 0 4.272461E-4 9.1552734E-5 6.1035156E-4 2.746582E-4c1.8310547E-4 1.5258789E-4 2.4414062E-4 3.6621094E-4 2.4414062E-4 6.1035156E-4l-8.544922E-4 64.98572c0 7.178406 -5.819275 12.997681 -12.99762 12.997681l-92.73468 0l0 0c-4.8828125E-4 0 -8.544922E-4 -4.272461E-4 -8.544922E-4 -9.1552734E-4l8.544922E-4 -64.98572l0 0c0 -7.178406 5.819275 -12.99765 12.99762 -12.99765z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m616.1341 449.54068l92.73468 0c2.4414062E-4 0 4.272461E-4 9.1552734E-5 6.1035156E-4 2.746582E-4c1.8310547E-4 1.5258789E-4 2.4414062E-4 3.6621094E-4 2.4414062E-4 6.1035156E-4l-8.544922E-4 64.98572c0 7.178406 -5.819275 12.997681 -12.99762 12.997681l-92.73468 0l0 0c-4.8828125E-4 0 -8.544922E-4 -4.272461E-4 -8.544922E-4 -9.1552734E-4l8.544922E-4 -64.98572l0 0c0 -7.178406 5.819275 -12.99765 12.99762 -12.99765z" fill-rule="evenodd"/><path fill="#000000" d="m637.61206 469.3328l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.8428955 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm20.140625 -3.34375l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm3.000122 -2.234375l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m629.651 483.78592l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm11.142761 0.421875l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0zm7.0998535 1.125l-2.53125 -9.546875l1.296875 0l1.453125 6.265625q0.234375 0.984375 0.40625 1.953125q0.359375 -1.53125 0.421875 -1.765625l1.828125 -6.453125l1.515625 0l1.375 4.828125q0.515625 1.796875 0.734375 3.390625q0.1875 -0.90625 0.484375 -2.078125l1.484375 -6.140625l1.28125 0l-2.625 9.546875l-1.21875 0l-2.0 -7.265625q-0.265625 -0.921875 -0.3125 -1.125q-0.140625 0.65625 -0.28125 1.125l-2.015625 7.265625l-1.296875 0zm15.260681 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.256226 1.90625l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5374756 4.125l0 -9.546875l1.171875 0l0 5.453125l2.765625 -2.8125l1.515625 0l-2.640625 2.5625l2.90625 4.34375l-1.4375 0l-2.28125 -3.53125l-0.828125 0.796875l0 2.734375l-1.171875 0zm6.1796875 -2.0625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625z" fill-rule="nonzero"/><path fill="#000000" d="m643.8288 497.98904l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.656372 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.188416 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.874817 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375z" fill-rule="nonzero"/><path fill="#000000" d="m639.2145 507.78592l1.265625 0l0 5.5156555q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.5156555l1.265625 0l0 5.5156555q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.5156555zm5.797058 9.5469055l0 -8.4219055l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.4219055l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.5781555l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5000305l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.467834 -4.640625q0 -2.3750305 1.28125 -3.7187805q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625305q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.1562805 -0.40625 -2.0312805q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.0781555zm12.679443 2.109375l1.171875 -0.15625q0.203125 1.0 0.6875 1.4375q0.484375 0.4375 1.171875 0.4375q0.828125 0 1.390625 -0.578125q0.578125 -0.578125 0.578125 -1.421875q0 -0.796875 -0.53125 -1.3125q-0.515625 -0.53125 -1.328125 -0.53125q-0.34375 0 -0.828125 0.125l0.125 -1.0312805q0.125 0.015625 0.1875 0.015625q0.75 0 1.34375 -0.390625q0.609375 -0.390625 0.609375 -1.203125q0 -0.640625 -0.4375 -1.0625q-0.4375 -0.421875 -1.125 -0.421875q-0.6875 0 -1.140625 0.4375q-0.453125 0.421875 -0.59375 1.28125l-1.171875 -0.21875q0.21875 -1.171875 0.984375 -1.8125q0.765625 -0.65625 1.890625 -0.65625q0.78125 0 1.4375 0.34375q0.65625 0.328125 1.0 0.90625q0.359375 0.578125 0.359375 1.234375q0 0.609375 -0.34375 1.125q-0.328125 0.5 -0.96875 0.7969055q0.84375 0.203125 1.3125 0.828125q0.46875 0.609375 0.46875 1.53125q0 1.25 -0.921875 2.125q-0.90625 0.859375 -2.296875 0.859375q-1.25 0 -2.09375 -0.75q-0.828125 -0.75 -0.9375 -1.9375z" fill-rule="nonzero"/><path fill="#eeeeee" d="m302.1181 190.78215l259.74805 0l0 51.905518l-259.74805 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m302.1181 190.78215l259.74805 0l0 51.905518l-259.74805 0z" fill-rule="evenodd"/><path fill="#000000" d="m369.6418 213.53491l0 -9.546875l1.90625 0l2.25 6.765625q0.3125 0.9375 0.46875 1.40625q0.15625 -0.515625 0.5 -1.53125l2.28125 -6.640625l1.703125 0l0 9.546875l-1.21875 0l0 -7.984375l-2.765625 7.984375l-1.140625 0l-2.765625 -8.125l0 8.125l-1.21875 0zm15.508667 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm3.0062256 -4.71875l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm2.945465 0l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm18.068604 -3.34375l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6720276 3.34375l0 -9.546875l1.171875 0l0 3.421875q0.828125 -0.9375 2.078125 -0.9375q0.765625 0 1.328125 0.296875q0.5625 0.296875 0.8125 0.84375q0.25 0.53125 0.25 1.546875l0 4.375l-1.171875 0l0 -4.375q0 -0.890625 -0.390625 -1.28125q-0.375 -0.40625 -1.078125 -0.40625q-0.515625 0 -0.984375 0.28125q-0.453125 0.265625 -0.65625 0.734375q-0.1875 0.453125 -0.1875 1.265625l0 3.78125l-1.171875 0zm11.928101 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9906006 3.46875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm7.4124756 0l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm13.0859375 -9.546875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.4678955 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm9.617035 -0.953125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m337.2179 228.40991l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0zm4.849823 -2.328125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.9281006 3.453125l0 -6.0l-1.03125 0l0 -0.90625l1.03125 0l0 -0.734375q0 -0.703125 0.125 -1.046875q0.171875 -0.453125 0.59375 -0.734375q0.421875 -0.28125 1.203125 -0.28125q0.484375 0 1.09375 0.109375l-0.1875 1.03125q-0.359375 -0.0625 -0.6875 -0.0625q-0.53125 0 -0.75 0.234375q-0.21875 0.21875 -0.21875 0.84375l0 0.640625l1.34375 0l0 0.90625l-1.34375 0l0 6.0l-1.171875 0zm12.95285 -1.125l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0zm12.2404785 -2.21875l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.2345276 -0.109375q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.2093506 0q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 6.109375l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm11.084351 1.203125l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm8.9696045 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1561279 -7.140625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm4.86734 0l-2.625 -6.90625l1.234375 0l1.484375 4.140625q0.234375 0.65625 0.4375 1.390625q0.15625 -0.546875 0.4375 -1.3125l1.53125 -4.21875l1.21875 0l-2.625 6.90625l-1.09375 0zm9.4765625 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.787323 0.671875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm15.110107 -3.34375l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm5.2501526 3.34375l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm8.438232 0l-3.6875 -9.546875l1.359375 0l2.484375 6.9375q0.296875 0.828125 0.5 1.5625q0.21875 -0.78125 0.515625 -1.5625l2.578125 -6.9375l1.28125 0l-3.734375 9.546875l-1.296875 0zm8.2647705 2.8125q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm4.7664795 -2.8125l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.8428955 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm13.28125 0l0 -9.546875l3.59375 0q1.09375 0 1.75 0.296875q0.65625 0.28125 1.03125 0.890625q0.375 0.609375 0.375 1.265625q0 0.609375 -0.34375 1.15625q-0.328125 0.53125 -0.984375 0.859375q0.859375 0.25 1.328125 0.875q0.46875 0.609375 0.46875 1.4375q0 0.671875 -0.296875 1.25q-0.28125 0.578125 -0.703125 0.890625q-0.40625 0.3125 -1.03125 0.46875q-0.625 0.15625 -1.546875 0.15625l-3.640625 0zm1.265625 -5.53125l2.0625 0q0.84375 0 1.203125 -0.109375q0.484375 -0.140625 0.71875 -0.46875q0.25 -0.34375 0.25 -0.84375q0 -0.46875 -0.234375 -0.828125q-0.21875 -0.359375 -0.640625 -0.5q-0.421875 -0.140625 -1.453125 -0.140625l-1.90625 0l0 2.890625zm0 4.40625l2.375 0q0.609375 0 0.859375 -0.046875q0.4375 -0.078125 0.734375 -0.25q0.296875 -0.1875 0.484375 -0.53125q0.1875 -0.359375 0.1875 -0.8125q0 -0.53125 -0.28125 -0.921875q-0.265625 -0.40625 -0.75 -0.5625q-0.484375 -0.15625 -1.40625 -0.15625l-2.203125 0l0 3.28125zm8.2960205 3.9375l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m432.00262 170.69948l0 20.094482" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.00262 170.69948l0 14.094482" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m430.3509 184.79396l1.6517334 4.538101l1.6517334 -4.538101z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.99213 242.68767l0 24.913376" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.99213 242.68767l0 18.913376" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m430.3404 261.60104l1.6517334 4.5381165l1.6517334 -4.5381165z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m432.00262 336.39108l0 16.913391" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.00262 336.39108l0 10.913391" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m430.3509 347.30447l1.6517334 4.538086l1.6517334 -4.538086z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m432.00262 405.2126l171.1496 83.3071" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.00262 405.2126l165.75476 80.68115" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m597.0345 487.37888l4.8032837 0.5010071l-3.357483 -3.471283z" fill-rule="evenodd"/><path fill="#eeeeee" d="m181.45145 113.519684l154.14172 0l0 51.905518l-154.14172 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m181.45145 113.519684l154.14172 0l0 51.905518l-154.14172 0z" fill-rule="evenodd"/><path fill="#000000" d="m212.96455 144.27245l3.65625 -9.546875l1.359375 0l3.90625 9.546875l-1.4375 0l-1.109375 -2.890625l-3.984375 0l-1.046875 2.890625l-1.34375 0zm2.75 -3.921875l3.234375 0l-1.0 -2.640625q-0.453125 -1.203125 -0.671875 -1.96875q-0.1875 0.90625 -0.515625 1.8125l-1.046875 2.796875zm7.0147552 3.921875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm5.5321198 0l-1.078125 0l0 -9.546875l1.171875 0l0 3.40625q0.734375 -0.921875 1.890625 -0.921875q0.640625 0 1.203125 0.265625q0.578125 0.25 0.9375 0.71875q0.375 0.453125 0.578125 1.109375q0.203125 0.65625 0.203125 1.40625q0 1.78125 -0.875 2.75q-0.875 0.96875 -2.109375 0.96875q-1.21875 0 -1.921875 -1.015625l0 0.859375zm0 -3.5q0 1.234375 0.328125 1.78125q0.5625 0.90625 1.5 0.90625q0.765625 0 1.328125 -0.65625q0.5625 -0.671875 0.5625 -2.0q0 -1.34375 -0.546875 -1.984375q-0.53125 -0.65625 -1.296875 -0.65625q-0.765625 0 -1.328125 0.671875q-0.546875 0.671875 -0.546875 1.9375zm6.3499756 -4.6875l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.507965 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1248627 1.046875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm8.96962 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59376526 0 1.2031403 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.85939026 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm4.4071198 2.65625l-0.125 -1.09375q0.375 0.109375 0.65625 0.109375q0.390625 0 0.625 -0.140625q0.234375 -0.125 0.390625 -0.359375q0.109375 -0.171875 0.359375 -0.875q0.03125 -0.09375 0.109375 -0.28125l-2.625 -6.921875l1.265625 0l1.4375 4.0q0.28125 0.765625 0.5 1.59375q0.203125 -0.796875 0.46875 -1.578125l1.484375 -4.015625l1.171875 0l-2.625 7.015625q-0.421875 1.140625 -0.65625 1.578125q-0.3125 0.578125 -0.71875 0.84375q-0.40625 0.28125 -0.96875 0.28125q-0.328125 0 -0.75 -0.15625zm16.82019 -12.203125l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.467865 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m335.59317 139.47244l43.55905 0" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m335.59317 139.47244l37.55905 0" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m373.15222 141.12418l4.5381165 -1.6517334l-4.5381165 -1.6517334z" fill-rule="evenodd"/><path fill="#eeeeee" d="m809.4199 462.58005l105.7323 0l0 51.905487l-105.7323 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m809.4199 462.58005l105.7323 0l0 51.905487l-105.7323 0z" fill-rule="evenodd"/><path fill="#000000" d="m843.6465 475.78592l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.796997 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.4678955 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm12.679382 2.109375l1.171875 -0.15625q0.203125 1.0 0.6875 1.4375q0.484375 0.4375 1.171875 0.4375q0.828125 0 1.390625 -0.578125q0.578125 -0.578125 0.578125 -1.421875q0 -0.796875 -0.53125 -1.3125q-0.515625 -0.53125 -1.328125 -0.53125q-0.34375 0 -0.828125 0.125l0.125 -1.03125q0.125 0.015625 0.1875 0.015625q0.75 0 1.34375 -0.390625q0.609375 -0.390625 0.609375 -1.203125q0 -0.640625 -0.4375 -1.0625q-0.4375 -0.421875 -1.125 -0.421875q-0.6875 0 -1.140625 0.4375q-0.453125 0.421875 -0.59375 1.28125l-1.171875 -0.21875q0.21875 -1.171875 0.984375 -1.8125q0.765625 -0.65625 1.890625 -0.65625q0.78125 0 1.4375 0.34375q0.65625 0.328125 1.0 0.90625q0.359375 0.578125 0.359375 1.234375q0 0.609375 -0.34375 1.125q-0.328125 0.5 -0.96875 0.796875q0.84375 0.203125 1.3125 0.828125q0.46875 0.609375 0.46875 1.53125q0 1.25 -0.921875 2.125q-0.90625 0.859375 -2.296875 0.859375q-1.25 0 -2.09375 -0.75q-0.828125 -0.75 -0.9375 -1.9375zm8.053101 -3.0625l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m830.107 497.98904l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.656433 3.34375l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm2.5391846 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.1781006 1.390625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.8671875 -0.15625l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.9436035 1.0625l1.203125 -0.109375q0.078125 0.71875 0.390625 1.1875q0.3125 0.453125 0.953125 0.734375q0.65625 0.28125 1.46875 0.28125q0.71875 0 1.265625 -0.21875q0.5625 -0.21875 0.828125 -0.578125q0.265625 -0.375 0.265625 -0.828125q0 -0.453125 -0.265625 -0.78125q-0.25 -0.328125 -0.84375 -0.5625q-0.390625 -0.15625 -1.703125 -0.46875q-1.3125 -0.3125 -1.84375 -0.59375q-0.671875 -0.359375 -1.015625 -0.890625q-0.328125 -0.53125 -0.328125 -1.1875q0 -0.71875 0.40625 -1.34375q0.40625 -0.625 1.1875 -0.953125q0.796875 -0.328125 1.765625 -0.328125q1.046875 0 1.859375 0.34375q0.8125 0.34375 1.25 1.015625q0.4375 0.65625 0.46875 1.484375l-1.203125 0.09375q-0.109375 -0.90625 -0.671875 -1.359375q-0.5625 -0.46875 -1.65625 -0.46875q-1.140625 0 -1.671875 0.421875q-0.515625 0.421875 -0.515625 1.015625q0 0.515625 0.359375 0.84375q0.375 0.328125 1.90625 0.6875q1.546875 0.34375 2.109375 0.59375q0.84375 0.390625 1.234375 0.984375q0.390625 0.578125 0.390625 1.359375q0 0.75 -0.4375 1.4375q-0.421875 0.671875 -1.25 1.046875q-0.8125 0.359375 -1.828125 0.359375q-1.296875 0 -2.171875 -0.375q-0.875 -0.375 -1.375 -1.125q-0.5 -0.765625 -0.53125 -1.71875zm11.7335205 2.015625l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.656128 0.1875q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.874817 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.8967285 -0.578125q0 -1.6875 0.34375 -2.71875q0.359375 -1.03125 1.046875 -1.59375q0.6875 -0.5625 1.71875 -0.5625q0.78125 0 1.359375 0.3125q0.578125 0.296875 0.953125 0.890625q0.375 0.578125 0.59375 1.421875q0.21875 0.828125 0.21875 2.25q0 1.671875 -0.359375 2.703125q-0.34375 1.03125 -1.03125 1.59375q-0.671875 0.5625 -1.734375 0.5625q-1.375 0 -2.15625 -0.984375q-0.953125 -1.1875 -0.953125 -3.875zm1.203125 0q0 2.34375 0.546875 3.125q0.5625 0.78125 1.359375 0.78125q0.8125 0 1.359375 -0.78125q0.5625 -0.78125 0.5625 -3.125q0 -2.359375 -0.5625 -3.125q-0.546875 -0.78125 -1.359375 -0.78125q-0.8125 0 -1.296875 0.6875q-0.609375 0.875 -0.609375 3.21875z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m708.8688 488.5328l100.566895 0" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m708.8688 488.5328l94.566895 0" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m803.43567 490.18454l4.538147 -1.6517334l-4.538147 -1.6517334z" fill-rule="evenodd"/><path fill="#00ff00" d="m31.861101 423.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.045532c0 5.7490845 -4.660568 10.409637 -10.409653 10.409637l-169.84232 0l0 0c-8.277893E-4 0 -0.0015010834 -6.713867E-4 -0.0015010834 -0.0014953613l0.0015010834 -52.045532l0 0c0 -5.7490845 4.6605625 -10.409668 10.409658 -10.409668z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m31.861101 423.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.045532c0 5.7490845 -4.660568 10.409637 -10.409653 10.409637l-169.84232 0l0 0c-8.277893E-4 0 -0.0015010834 -6.713867E-4 -0.0015010834 -0.0014953613l0.0015010834 -52.045532l0 0c0 -5.7490845 4.6605625 -10.409668 10.409658 -10.409668z" fill-rule="evenodd"/><path fill="#000000" d="m62.248398 443.66876l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.84288 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm19.593765 -9.546875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm3.2189026 9.546875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -2.53125l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.2093506 0q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 6.109375l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3812256 6.078125l0 -12.203125l2.578125 0l0 0.96875l-1.40625 0l0 10.25l1.40625 0l0 0.984375l-2.578125 0zm3.6873627 -10.84375l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.4084015 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.1093597 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.7187347 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm5.2874756 2.65625l-2.59375 0l0 -0.984375l1.421875 0l0 -10.25l-1.421875 0l0 -0.96875l2.59375 0l0 12.203125zm2.062378 -8.234375l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m68.11045 456.325l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.18837 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748627 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.631088 -5.421875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.9218674 -2.53125l1.375 0l-3.3593674 4.5l3.6249924 5.046875l-1.5625 0l-2.4062424 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.467873 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.007538 -3.5625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#000000" d="m75.81134 478.48126q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm2.3758698 -2.8125l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm13.953278 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm3.257965 0l0 -6.0l-1.03125 0l0 -0.90625l1.03125 0l0 -0.734375q0 -0.703125 0.125 -1.046875q0.171875 -0.453125 0.59375 -0.734375q0.421875 -0.28125 1.203125 -0.28125q0.484375 0 1.09375 0.109375l-0.1875 1.03125q-0.359375 -0.0625 -0.6875 -0.0625q-0.53125 0 -0.75 0.234375q-0.21875 0.21875 -0.21875 0.84375l0 0.640625l1.34375 0l0 0.90625l-1.34375 0l0 6.0l-1.171875 0zm6.8434753 -3.0625l1.203125 -0.109375q0.078125 0.71875 0.390625 1.1875q0.3125 0.453125 0.953125 0.734375q0.65625 0.28125 1.46875 0.28125q0.71875 0 1.265625 -0.21875q0.5625 -0.21875 0.828125 -0.578125q0.265625 -0.375 0.265625 -0.828125q0 -0.453125 -0.265625 -0.78125q-0.25 -0.328125 -0.84375 -0.5625q-0.390625 -0.15625 -1.703125 -0.46875q-1.3125 -0.3125 -1.84375 -0.59375q-0.671875 -0.359375 -1.015625 -0.890625q-0.328125 -0.53125 -0.328125 -1.1875q0 -0.71875 0.40625 -1.34375q0.40625 -0.625 1.1875 -0.953125q0.796875 -0.328125 1.765625 -0.328125q1.046875 0 1.859375 0.34375q0.8125 0.34375 1.25 1.015625q0.4375 0.65625 0.46875 1.484375l-1.203125 0.09375q-0.109375 -0.90625 -0.671875 -1.359375q-0.5625 -0.46875 -1.65625 -0.46875q-1.140625 0 -1.671875 0.421875q-0.515625 0.421875 -0.515625 1.015625q0 0.515625 0.359375 0.84375q0.375 0.328125 1.90625 0.6875q1.546875 0.34375 2.109375 0.59375q0.84375 0.390625 1.234375 0.984375q0.390625 0.578125 0.390625 1.359375q0 0.75 -0.4375 1.4375q-0.421875 0.671875 -1.25 1.046875q-0.8125 0.359375 -1.828125 0.359375q-1.296875 0 -2.171875 -0.375q-0.875 -0.375 -1.375 -1.125q-0.5 -0.765625 -0.53125 -1.71875zm9.18663 -5.125l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm2.726715 0.578125l1.140625 0.15625q0.078125 0.53125 0.40625 0.78125q0.4375 0.3125 1.1875 0.3125q0.8125 0 1.25 -0.328125q0.453125 -0.3125 0.609375 -0.90625q0.09375 -0.359375 0.078125 -1.5q-0.765625 0.90625 -1.90625 0.90625q-1.4375 0 -2.21875 -1.03125q-0.78125 -1.03125 -0.78125 -2.46875q0 -0.984375 0.359375 -1.8125q0.359375 -0.84375 1.03125 -1.296875q0.6875 -0.453125 1.609375 -0.453125q1.21875 0 2.015625 0.984375l0 -0.828125l1.078125 0l0 5.96875q0 1.609375 -0.328125 2.28125q-0.328125 0.6875 -1.046875 1.078125q-0.703125 0.390625 -1.75 0.390625q-1.234375 0 -2.0 -0.5625q-0.75 -0.5625 -0.734375 -1.671875zm0.984375 -4.15625q0 1.359375 0.53125 1.984375q0.546875 0.625 1.359375 0.625q0.796875 0 1.34375 -0.625q0.546875 -0.625 0.546875 -1.953125q0 -1.265625 -0.5625 -1.90625q-0.5625 -0.640625 -1.359375 -0.640625q-0.765625 0 -1.3125 0.640625q-0.546875 0.625 -0.546875 1.875zm6.6468506 3.578125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.006226 4.125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm7.3968506 6.265625l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m432.00262 405.2126l-320.40945 18.425201" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.00262 405.2126l-314.41934 18.08075" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m117.48846 421.64432l-4.435791 1.9095459l4.6254425 1.3884888z" fill-rule="evenodd"/><path fill="#eeeeee" d="m341.87534 468.91602l180.25198 0l0 51.905518l-180.25198 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m341.87534 468.91602l180.25198 0l0 51.905518l-180.25198 0z" fill-rule="evenodd"/><path fill="#000000" d="m407.98944 482.1219l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.467865 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.007538 -3.5625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm3.6468506 -5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m394.44998 504.325l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm2.539215 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.1781006 1.390625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.8671875 -0.15625l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.9436035 1.0625l1.203125 -0.109375q0.078125 0.71875 0.390625 1.1875q0.3125 0.453125 0.953125 0.734375q0.65625 0.28125 1.46875 0.28125q0.71875 0 1.265625 -0.21875q0.5625 -0.21875 0.828125 -0.578125q0.265625 -0.375 0.265625 -0.828125q0 -0.453125 -0.265625 -0.78125q-0.25 -0.328125 -0.84375 -0.5625q-0.390625 -0.15625 -1.703125 -0.46875q-1.3125 -0.3125 -1.84375 -0.59375q-0.671875 -0.359375 -1.015625 -0.890625q-0.328125 -0.53125 -0.328125 -1.1875q0 -0.71875 0.40625 -1.34375q0.40625 -0.625 1.1875 -0.953125q0.796875 -0.328125 1.765625 -0.328125q1.046875 0 1.859375 0.34375q0.8125 0.34375 1.25 1.015625q0.4375 0.65625 0.46875 1.484375l-1.203125 0.09375q-0.109375 -0.90625 -0.671875 -1.359375q-0.5625 -0.46875 -1.65625 -0.46875q-1.140625 0 -1.671875 0.421875q-0.515625 0.421875 -0.515625 1.015625q0 0.515625 0.359375 0.84375q0.375 0.328125 1.90625 0.6875q1.546875 0.34375 2.109375 0.59375q0.84375 0.390625 1.234375 0.984375q0.390625 0.578125 0.390625 1.359375q0 0.75 -0.4375 1.4375q-0.421875 0.671875 -1.25 1.046875q-0.8125 0.359375 -1.828125 0.359375q-1.296875 0 -2.171875 -0.375q-0.875 -0.375 -1.375 -1.125q-0.5 -0.765625 -0.53125 -1.71875zm11.73349 2.015625l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.656128 0.1875q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748474 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm10.2404785 -4.0625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m249.70341 502.86877c23.043045 0 34.56642 -2.0 46.086105 -4.0c11.519684 -2.0 23.035675 -4.0 46.07138 -4.0" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m249.70341 502.86877c23.043045 0 34.56642 -2.0 46.086105 -4.0c5.759857 -1.0 11.518768 -2.0 18.717194 -2.75c3.5992126 -0.375 7.5582886 -0.6875 12.057312 -0.90625c2.2495117 -0.109375 4.6340027 -0.1953125 7.1759644 -0.25390625c0.63549805 -0.0146484375 1.2808228 -0.02758789 1.9363403 -0.038757324l0.18475342 -0.0026245117" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m335.87445 496.56894l4.524597 -1.6883545l-4.5513 -1.6150208z" fill-rule="evenodd"/><path fill="#00ff00" d="m120.25481 270.44357l137.43285 0c3.3569336E-4 0 6.4086914E-4 1.2207031E-4 8.8500977E-4 3.6621094E-4c2.4414062E-4 2.1362305E-4 3.6621094E-4 5.493164E-4 3.6621094E-4 8.544922E-4l-0.0012512207 54.09305c0 5.9752197 -4.843872 10.819122 -10.819107 10.819122l-137.43286 0l0 0c-6.790161E-4 0 -0.0012283325 -5.493164E-4 -0.0012283325 -0.0012512207l0.0012283325 -54.093018l0 0c0 -5.9752502 4.8438873 -10.819122 10.819115 -10.819122z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m120.25481 270.44357l137.43285 0c3.3569336E-4 0 6.4086914E-4 1.2207031E-4 8.8500977E-4 3.6621094E-4c2.4414062E-4 2.1362305E-4 3.6621094E-4 5.493164E-4 3.6621094E-4 8.544922E-4l-0.0012512207 54.09305c0 5.9752197 -4.843872 10.819122 -10.819107 10.819122l-137.43286 0l0 0c-6.790161E-4 0 -0.0012283325 -5.493164E-4 -0.0012283325 -0.0012512207l0.0012283325 -54.093018l0 0c0 -5.9752502 4.8438873 -10.819122 10.819115 -10.819122z" fill-rule="evenodd"/><path fill="#000000" d="m141.27092 291.70026l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.84288 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm20.14064 -3.34375l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.2345276 -0.109375q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.2093506 0q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 6.109375l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3812256 6.078125l0 -12.203125l2.578125 0l0 0.96875l-1.40625 0l0 10.25l1.40625 0l0 0.984375l-2.578125 0zm3.6873627 -10.84375l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm5.2874756 2.65625l-2.59375 0l0 -0.984375l1.421875 0l0 -10.25l-1.421875 0l0 -0.96875l2.59375 0l0 12.203125zm2.0623627 -8.234375l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m140.0947 304.3565l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.18837 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748627 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.631088 -5.421875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.46788 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.007538 -3.5625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#000000" d="m147.7956 326.51276q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm2.3758698 -2.8125l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm13.953278 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm3.257965 0l0 -6.0l-1.03125 0l0 -0.90625l1.03125 0l0 -0.734375q0 -0.703125 0.125 -1.046875q0.171875 -0.453125 0.59375 -0.734375q0.421875 -0.28125 1.203125 -0.28125q0.484375 0 1.09375 0.109375l-0.1875 1.03125q-0.359375 -0.0625 -0.6875 -0.0625q-0.53125 0 -0.75 0.234375q-0.21875 0.21875 -0.21875 0.84375l0 0.640625l1.34375 0l0 0.90625l-1.34375 0l0 6.0l-1.171875 0zm6.8434753 -3.0625l1.203125 -0.109375q0.078125 0.71875 0.390625 1.1875q0.3125 0.453125 0.953125 0.734375q0.65625 0.28125 1.46875 0.28125q0.71875 0 1.265625 -0.21875q0.5625 -0.21875 0.828125 -0.578125q0.265625 -0.375 0.265625 -0.828125q0 -0.453125 -0.265625 -0.78125q-0.25 -0.328125 -0.84375 -0.5625q-0.390625 -0.15625 -1.703125 -0.46875q-1.3125 -0.3125 -1.84375 -0.59375q-0.671875 -0.359375 -1.015625 -0.890625q-0.328125 -0.53125 -0.328125 -1.1875q0 -0.71875 0.40625 -1.34375q0.40625 -0.625 1.1875 -0.953125q0.796875 -0.328125 1.765625 -0.328125q1.046875 0 1.859375 0.34375q0.8125 0.34375 1.25 1.015625q0.4375 0.65625 0.46875 1.484375l-1.203125 0.09375q-0.109375 -0.90625 -0.671875 -1.359375q-0.5625 -0.46875 -1.65625 -0.46875q-1.140625 0 -1.671875 0.421875q-0.515625 0.421875 -0.515625 1.015625q0 0.515625 0.359375 0.84375q0.375 0.328125 1.90625 0.6875q1.546875 0.34375 2.109375 0.59375q0.84375 0.390625 1.234375 0.984375q0.390625 0.578125 0.390625 1.359375q0 0.75 -0.4375 1.4375q-0.421875 0.671875 -1.25 1.046875q-0.8125 0.359375 -1.828125 0.359375q-1.296875 0 -2.171875 -0.375q-0.875 -0.375 -1.375 -1.125q-0.5 -0.765625 -0.53125 -1.71875zm9.18663 -5.125l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm2.726715 0.578125l1.140625 0.15625q0.078125 0.53125 0.40625 0.78125q0.4375 0.3125 1.1875 0.3125q0.8125 0 1.25 -0.328125q0.453125 -0.3125 0.609375 -0.90625q0.09375 -0.359375 0.078125 -1.5q-0.765625 0.90625 -1.90625 0.90625q-1.4375 0 -2.21875 -1.03125q-0.78125 -1.03125 -0.78125 -2.46875q0 -0.984375 0.359375 -1.8125q0.359375 -0.84375 1.03125 -1.296875q0.6875 -0.453125 1.609375 -0.453125q1.21875 0 2.015625 0.984375l0 -0.828125l1.078125 0l0 5.96875q0 1.609375 -0.328125 2.28125q-0.328125 0.6875 -1.046875 1.078125q-0.703125 0.390625 -1.75 0.390625q-1.234375 0 -2.0 -0.5625q-0.75 -0.5625 -0.734375 -1.671875zm0.984375 -4.15625q0 1.359375 0.53125 1.984375q0.546875 0.625 1.359375 0.625q0.796875 0 1.34375 -0.625q0.546875 -0.625 0.546875 -1.953125q0 -1.265625 -0.5625 -1.90625q-0.5625 -0.640625 -1.359375 -0.640625q-0.765625 0 -1.3125 0.640625q-0.546875 0.625 -0.546875 1.875zm6.6468506 3.578125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.006226 4.125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm7.3968506 6.265625l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m431.99213 242.68767l-248.44095 27.748032" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.99213 242.68767l-242.47801 27.082047" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m189.33076 268.12817l-4.326721 2.1452637l4.693405 1.1377869z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m183.56168 335.35696c0 6.305176 -18.826767 9.456848 -37.653534 12.610382c-18.826775 3.153534 -37.65355 6.3089905 -37.65355 12.61795" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m183.56168 335.35696c0 6.3052063 -18.826767 9.456848 -37.653534 12.610382c-9.413391 1.5767822 -18.826775 3.1540527 -25.886818 5.125702c-1.765007 0.49291992 -3.3829346 1.0104675 -4.817009 1.5588684c-0.71702576 0.27416992 -1.3881073 0.5560913 -2.0086136 0.84643555c-0.31025696 0.14517212 -0.6078644 0.29248047 -0.89227295 0.44198608l-0.15216064 0.08251953" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m110.89529 354.95013l-1.6912689 4.523529l4.203247 -2.3780823z" fill-rule="evenodd"/><path fill="#eeeeee" d="m18.143045 360.57755l180.25197 0l0 51.905487l-180.25197 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m18.143045 360.57755l180.25197 0l0 51.905487l-180.25197 0z" fill-rule="evenodd"/><path fill="#000000" d="m84.25714 373.78342l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.46788 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.007538 -3.5625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm3.6468506 -5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m70.717705 395.98654l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm2.539215 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.1781006 1.390625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.8671875 -0.15625l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.943588 1.0625l1.203125 -0.109375q0.078125 0.71875 0.390625 1.1875q0.3125 0.453125 0.953125 0.734375q0.65625 0.28125 1.46875 0.28125q0.71875 0 1.265625 -0.21875q0.5625 -0.21875 0.828125 -0.578125q0.265625 -0.375 0.265625 -0.828125q0 -0.453125 -0.265625 -0.78125q-0.25 -0.328125 -0.84375 -0.5625q-0.390625 -0.15625 -1.703125 -0.46875q-1.3125 -0.3125 -1.84375 -0.59375q-0.671875 -0.359375 -1.015625 -0.890625q-0.328125 -0.53125 -0.328125 -1.1875q0 -0.71875 0.40625 -1.34375q0.40625 -0.625 1.1875 -0.953125q0.796875 -0.328125 1.765625 -0.328125q1.046875 0 1.859375 0.34375q0.8125 0.34375 1.25 1.015625q0.4375 0.65625 0.46875 1.484375l-1.203125 0.09375q-0.109375 -0.90625 -0.671875 -1.359375q-0.5625 -0.46875 -1.65625 -0.46875q-1.140625 0 -1.671875 0.421875q-0.515625 0.421875 -0.515625 1.015625q0 0.515625 0.359375 0.84375q0.375 0.328125 1.90625 0.6875q1.546875 0.34375 2.109375 0.59375q0.84375 0.390625 1.234375 0.984375q0.390625 0.578125 0.390625 1.359375q0 0.75 -0.4375 1.4375q-0.421875 0.671875 -1.25 1.046875q-0.8125 0.359375 -1.828125 0.359375q-1.296875 0 -2.171875 -0.375q-0.875 -0.375 -1.375 -1.125q-0.5 -0.765625 -0.53125 -1.71875zm11.733505 2.015625l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.6561127 0.1875q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748703 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.5156326 0 -2.4062576 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.3437576 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.1562576 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375076 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.8437576 -1.90625l3.8593826 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125076 0 -1.3593826 0.546875q-0.546875 0.53125 -0.609375 1.4375zm10.240471 -4.0625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#00ff00" d="m39.8611 431.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.045532c0 5.7490845 -4.660568 10.409637 -10.409653 10.409637l-169.84232 0l0 0c-8.277893E-4 0 -0.0015010834 -6.713867E-4 -0.0015010834 -0.0014953613l0.0015010834 -52.045532l0 0c0 -5.7490845 4.6605644 -10.409668 10.409657 -10.409668z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m39.8611 431.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.045532c0 5.7490845 -4.660568 10.409637 -10.409653 10.409637l-169.84232 0l0 0c-8.277893E-4 0 -0.0015010834 -6.713867E-4 -0.0015010834 -0.0014953613l0.0015010834 -52.045532l0 0c0 -5.7490845 4.6605644 -10.409668 10.409657 -10.409668z" fill-rule="evenodd"/><path fill="#000000" d="m70.2484 451.66876l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.84288 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm19.593765 -9.546875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm3.2189026 9.546875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -2.53125l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.2093506 0q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 6.109375l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3812256 6.078125l0 -12.203125l2.578125 0l0 0.96875l-1.40625 0l0 10.25l1.40625 0l0 0.984375l-2.578125 0zm3.6873627 -10.84375l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.4084015 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.1093597 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.7187347 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm5.2874756 2.65625l-2.59375 0l0 -0.984375l1.421875 0l0 -10.25l-1.421875 0l0 -0.96875l2.59375 0l0 12.203125zm2.062378 -8.234375l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m76.11045 464.325l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.18837 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748627 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.631088 -5.421875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5624924 0l0 1.125l-3.1562424 0l0 8.421875l-1.265625 0zm4.750725 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.46788 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.007538 -3.5625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#000000" d="m83.81134 486.48126q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm2.3758698 -2.8125l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm13.953278 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm3.257965 0l0 -6.0l-1.03125 0l0 -0.90625l1.03125 0l0 -0.734375q0 -0.703125 0.125 -1.046875q0.171875 -0.453125 0.59375 -0.734375q0.421875 -0.28125 1.203125 -0.28125q0.484375 0 1.09375 0.109375l-0.1875 1.03125q-0.359375 -0.0625 -0.6875 -0.0625q-0.53125 0 -0.75 0.234375q-0.21875 0.21875 -0.21875 0.84375l0 0.640625l1.34375 0l0 0.90625l-1.34375 0l0 6.0l-1.171875 0zm6.8434753 -3.0625l1.203125 -0.109375q0.078125 0.71875 0.390625 1.1875q0.3125 0.453125 0.953125 0.734375q0.65625 0.28125 1.46875 0.28125q0.71875 0 1.265625 -0.21875q0.5625 -0.21875 0.828125 -0.578125q0.265625 -0.375 0.265625 -0.828125q0 -0.453125 -0.265625 -0.78125q-0.25 -0.328125 -0.84375 -0.5625q-0.390625 -0.15625 -1.703125 -0.46875q-1.3125 -0.3125 -1.84375 -0.59375q-0.671875 -0.359375 -1.015625 -0.890625q-0.328125 -0.53125 -0.328125 -1.1875q0 -0.71875 0.40625 -1.34375q0.40625 -0.625 1.1875 -0.953125q0.796875 -0.328125 1.765625 -0.328125q1.046875 0 1.859375 0.34375q0.8125 0.34375 1.25 1.015625q0.4375 0.65625 0.46875 1.484375l-1.203125 0.09375q-0.109375 -0.90625 -0.671875 -1.359375q-0.5625 -0.46875 -1.65625 -0.46875q-1.140625 0 -1.671875 0.421875q-0.515625 0.421875 -0.515625 1.015625q0 0.515625 0.359375 0.84375q0.375 0.328125 1.90625 0.6875q1.546875 0.34375 2.109375 0.59375q0.84375 0.390625 1.234375 0.984375q0.390625 0.578125 0.390625 1.359375q0 0.75 -0.4375 1.4375q-0.421875 0.671875 -1.25 1.046875q-0.8125 0.359375 -1.828125 0.359375q-1.296875 0 -2.171875 -0.375q-0.875 -0.375 -1.375 -1.125q-0.5 -0.765625 -0.53125 -1.71875zm9.18663 -5.125l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm2.726715 0.578125l1.140625 0.15625q0.078125 0.53125 0.40625 0.78125q0.4375 0.3125 1.1875 0.3125q0.8125 0 1.25 -0.328125q0.453125 -0.3125 0.609375 -0.90625q0.09375 -0.359375 0.078125 -1.5q-0.765625 0.90625 -1.90625 0.90625q-1.4375 0 -2.21875 -1.03125q-0.78125 -1.03125 -0.78125 -2.46875q0 -0.984375 0.359375 -1.8125q0.359375 -0.84375 1.03125 -1.296875q0.6875 -0.453125 1.609375 -0.453125q1.21875 0 2.015625 0.984375l0 -0.828125l1.078125 0l0 5.96875q0 1.609375 -0.328125 2.28125q-0.328125 0.6875 -1.046875 1.078125q-0.703125 0.390625 -1.75 0.390625q-1.234375 0 -2.0 -0.5625q-0.75 -0.5625 -0.734375 -1.671875zm0.984375 -4.15625q0 1.359375 0.53125 1.984375q0.546875 0.625 1.359375 0.625q0.796875 0 1.34375 -0.625q0.546875 -0.625 0.546875 -1.953125q0 -1.265625 -0.5625 -1.90625q-0.5625 -0.640625 -1.359375 -0.640625q-0.765625 0 -1.3125 0.640625q-0.546875 0.625 -0.546875 1.875zm6.6468506 3.578125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.006226 4.125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm7.3968506 6.265625l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#00ff00" d="m47.8611 439.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.045532c0 5.7490845 -4.660568 10.409637 -10.409653 10.409637l-169.84232 0l0 0c-8.277893E-4 0 -0.0015029907 -6.713867E-4 -0.0015029907 -0.0014953613l0.0015029907 -52.045532l0 0c0 -5.7490845 4.6605644 -10.409668 10.409657 -10.409668z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m47.8611 439.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.045532c0 5.7490845 -4.660568 10.409637 -10.409653 10.409637l-169.84232 0l0 0c-8.277893E-4 0 -0.0015029907 -6.713867E-4 -0.0015029907 -0.0014953613l0.0015029907 -52.045532l0 0c0 -5.7490845 4.6605644 -10.409668 10.409657 -10.409668z" fill-rule="evenodd"/><path fill="#000000" d="m78.2484 459.66876l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.84288 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm19.593765 -9.546875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm3.2189026 9.546875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -2.53125l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.2093506 0q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 6.109375l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3812256 6.078125l0 -12.203125l2.578125 0l0 0.96875l-1.40625 0l0 10.25l1.40625 0l0 0.984375l-2.578125 0zm3.6873627 -10.84375l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.4084015 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.1093597 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.7187347 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm5.2874756 2.65625l-2.59375 0l0 -0.984375l1.421875 0l0 -10.25l-1.421875 0l0 -0.96875l2.59375 0l0 12.203125zm2.062378 -8.234375l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m84.11045 472.325l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.18837 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748627 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.631088 -5.421875l1.2656174 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.31249237 0.84375 -1.1718674 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.79702 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.46788 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.007538 -3.5625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#000000" d="m91.81134 494.48126q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm2.3758698 -2.8125l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm13.953278 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm3.257965 0l0 -6.0l-1.03125 0l0 -0.90625l1.03125 0l0 -0.734375q0 -0.703125 0.125 -1.046875q0.171875 -0.453125 0.59375 -0.734375q0.421875 -0.28125 1.203125 -0.28125q0.484375 0 1.09375 0.109375l-0.1875 1.03125q-0.359375 -0.0625 -0.6875 -0.0625q-0.53125 0 -0.75 0.234375q-0.21875 0.21875 -0.21875 0.84375l0 0.640625l1.34375 0l0 0.90625l-1.34375 0l0 6.0l-1.171875 0zm6.8434753 -3.0625l1.203125 -0.109375q0.078125 0.71875 0.390625 1.1875q0.3125 0.453125 0.953125 0.734375q0.65625 0.28125 1.46875 0.28125q0.71875 0 1.265625 -0.21875q0.5625 -0.21875 0.828125 -0.578125q0.265625 -0.375 0.265625 -0.828125q0 -0.453125 -0.265625 -0.78125q-0.25 -0.328125 -0.84375 -0.5625q-0.390625 -0.15625 -1.703125 -0.46875q-1.3125 -0.3125 -1.84375 -0.59375q-0.671875 -0.359375 -1.015625 -0.890625q-0.328125 -0.53125 -0.328125 -1.1875q0 -0.71875 0.40625 -1.34375q0.40625 -0.625 1.1875 -0.953125q0.796875 -0.328125 1.765625 -0.328125q1.046875 0 1.859375 0.34375q0.8125 0.34375 1.25 1.015625q0.4375 0.65625 0.46875 1.484375l-1.203125 0.09375q-0.109375 -0.90625 -0.671875 -1.359375q-0.5625 -0.46875 -1.65625 -0.46875q-1.140625 0 -1.671875 0.421875q-0.515625 0.421875 -0.515625 1.015625q0 0.515625 0.359375 0.84375q0.375 0.328125 1.90625 0.6875q1.546875 0.34375 2.109375 0.59375q0.84375 0.390625 1.234375 0.984375q0.390625 0.578125 0.390625 1.359375q0 0.75 -0.4375 1.4375q-0.421875 0.671875 -1.25 1.046875q-0.8125 0.359375 -1.828125 0.359375q-1.296875 0 -2.171875 -0.375q-0.875 -0.375 -1.375 -1.125q-0.5 -0.765625 -0.53125 -1.71875zm9.18663 -5.125l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm2.726715 0.578125l1.140625 0.15625q0.078125 0.53125 0.40625 0.78125q0.4375 0.3125 1.1875 0.3125q0.8125 0 1.25 -0.328125q0.453125 -0.3125 0.609375 -0.90625q0.09375 -0.359375 0.078125 -1.5q-0.765625 0.90625 -1.90625 0.90625q-1.4375 0 -2.21875 -1.03125q-0.78125 -1.03125 -0.78125 -2.46875q0 -0.984375 0.359375 -1.8125q0.359375 -0.84375 1.03125 -1.296875q0.6875 -0.453125 1.609375 -0.453125q1.21875 0 2.015625 0.984375l0 -0.828125l1.078125 0l0 5.96875q0 1.609375 -0.328125 2.28125q-0.328125 0.6875 -1.046875 1.078125q-0.703125 0.390625 -1.75 0.390625q-1.234375 0 -2.0 -0.5625q-0.75 -0.5625 -0.734375 -1.671875zm0.984375 -4.15625q0 1.359375 0.53125 1.984375q0.546875 0.625 1.359375 0.625q0.796875 0 1.34375 -0.625q0.546875 -0.625 0.546875 -1.953125q0 -1.265625 -0.5625 -1.90625q-0.5625 -0.640625 -1.359375 -0.640625q-0.765625 0 -1.3125 0.640625q-0.546875 0.625 -0.546875 1.875zm6.6468506 3.578125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.006226 4.125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm7.3968506 6.265625l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#00ff00" d="m55.8611 447.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.045532c0 5.7490845 -4.660568 10.409637 -10.409653 10.409637l-169.84232 0l0 0c-8.277893E-4 0 -0.0015029907 -6.713867E-4 -0.0015029907 -0.0014953613l0.0015029907 -52.045532l0 0c0 -5.7490845 4.6605644 -10.409668 10.409657 -10.409668z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m55.8611 447.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.045532c0 5.7490845 -4.660568 10.409637 -10.409653 10.409637l-169.84232 0l0 0c-8.277893E-4 0 -0.0015029907 -6.713867E-4 -0.0015029907 -0.0014953613l0.0015029907 -52.045532l0 0c0 -5.7490845 4.6605644 -10.409668 10.409657 -10.409668z" fill-rule="evenodd"/><path fill="#000000" d="m86.2484 467.66876l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.84288 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm19.593765 -9.546875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm3.2189026 9.546875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -2.53125l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.2093506 0q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 6.109375l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3812256 6.078125l0 -12.203125l2.578125 0l0 0.96875l-1.40625 0l0 10.25l1.40625 0l0 0.984375l-2.578125 0zm3.6873627 -10.84375l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.4084015 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.1093597 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.7187347 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm5.2874756 2.65625l-2.59375 0l0 -0.984375l1.421875 0l0 -10.25l-1.421875 0l0 -0.96875l2.59375 0l0 12.203125zm2.062378 -8.234375l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m92.11045 480.325l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.18837 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748627 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.63108 -5.421875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.46788 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.007538 -3.5625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#000000" d="m99.81134 502.48126q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm2.3758698 -2.8125l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm13.953278 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm3.257965 0l0 -6.0l-1.03125 0l0 -0.90625l1.03125 0l0 -0.734375q0 -0.703125 0.125 -1.046875q0.171875 -0.453125 0.59375 -0.734375q0.421875 -0.28125 1.203125 -0.28125q0.484375 0 1.09375 0.109375l-0.1875 1.03125q-0.359375 -0.0625 -0.6875 -0.0625q-0.53125 0 -0.75 0.234375q-0.21875 0.21875 -0.21875 0.84375l0 0.640625l1.34375 0l0 0.90625l-1.34375 0l0 6.0l-1.171875 0zm6.8434753 -3.0625l1.203125 -0.109375q0.078125 0.71875 0.390625 1.1875q0.3125 0.453125 0.953125 0.734375q0.65625 0.28125 1.46875 0.28125q0.71875 0 1.265625 -0.21875q0.5625 -0.21875 0.828125 -0.578125q0.265625 -0.375 0.265625 -0.828125q0 -0.453125 -0.265625 -0.78125q-0.25 -0.328125 -0.84375 -0.5625q-0.390625 -0.15625 -1.703125 -0.46875q-1.3125 -0.3125 -1.84375 -0.59375q-0.671875 -0.359375 -1.015625 -0.890625q-0.328125 -0.53125 -0.328125 -1.1875q0 -0.71875 0.40625 -1.34375q0.40625 -0.625 1.1875 -0.953125q0.796875 -0.328125 1.765625 -0.328125q1.046875 0 1.859375 0.34375q0.8125 0.34375 1.25 1.015625q0.4375 0.65625 0.46875 1.484375l-1.203125 0.09375q-0.109375 -0.90625 -0.671875 -1.359375q-0.5625 -0.46875 -1.65625 -0.46875q-1.140625 0 -1.671875 0.421875q-0.515625 0.421875 -0.515625 1.015625q0 0.515625 0.359375 0.84375q0.375 0.328125 1.90625 0.6875q1.546875 0.34375 2.109375 0.59375q0.84375 0.390625 1.234375 0.984375q0.390625 0.578125 0.390625 1.359375q0 0.75 -0.4375 1.4375q-0.421875 0.671875 -1.25 1.046875q-0.8125 0.359375 -1.828125 0.359375q-1.296875 0 -2.171875 -0.375q-0.875 -0.375 -1.375 -1.125q-0.5 -0.765625 -0.53125 -1.71875zm9.18663 -5.125l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm2.726715 0.578125l1.140625 0.15625q0.078125 0.53125 0.40625 0.78125q0.4375 0.3125 1.1875 0.3125q0.8125 0 1.25 -0.328125q0.453125 -0.3125 0.609375 -0.90625q0.09375 -0.359375 0.078125 -1.5q-0.765625 0.90625 -1.90625 0.90625q-1.4375 0 -2.21875 -1.03125q-0.78125 -1.03125 -0.78125 -2.46875q0 -0.984375 0.359375 -1.8125q0.359375 -0.84375 1.03125 -1.296875q0.6875 -0.453125 1.609375 -0.453125q1.21875 0 2.015625 0.984375l0 -0.828125l1.078125 0l0 5.96875q0 1.609375 -0.328125 2.28125q-0.328125 0.6875 -1.046875 1.078125q-0.703125 0.390625 -1.75 0.390625q-1.234375 0 -2.0 -0.5625q-0.75 -0.5625 -0.734375 -1.671875zm0.984375 -4.15625q0 1.359375 0.53125 1.984375q0.546875 0.625 1.359375 0.625q0.796875 0 1.34375 -0.625q0.546875 -0.625 0.546875 -1.953125q0 -1.265625 -0.5625 -1.90625q-0.5625 -0.640625 -1.359375 -0.640625q-0.765625 0 -1.3125 0.640625q-0.546875 0.625 -0.546875 1.875zm6.6468506 3.578125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.006226 4.125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm7.3968506 6.265625l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#00ff00" d="m63.8611 455.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.045532c0 5.749054 -4.660568 10.409637 -10.409653 10.409637l-169.84232 0l0 0c-8.277893E-4 0 -0.0015029907 -6.713867E-4 -0.0015029907 -0.0015258789l0.0015029907 -52.0455l0 0c0 -5.7490845 4.6605644 -10.409668 10.409657 -10.409668z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m63.8611 455.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.045532c0 5.749054 -4.660568 10.409637 -10.409653 10.409637l-169.84232 0l0 0c-8.277893E-4 0 -0.0015029907 -6.713867E-4 -0.0015029907 -0.0015258789l0.0015029907 -52.0455l0 0c0 -5.7490845 4.6605644 -10.409668 10.409657 -10.409668z" fill-rule="evenodd"/><path fill="#000000" d="m94.2484 475.66876l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.84288 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm19.593765 -9.546875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm3.2189026 9.546875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -2.53125l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.2093506 0q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 6.109375l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3812256 6.078125l0 -12.203125l2.578125 0l0 0.96875l-1.40625 0l0 10.25l1.40625 0l0 0.984375l-2.578125 0zm3.6873627 -10.84375l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.4084015 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.1093597 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.7187347 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm5.2874756 2.65625l-2.59375 0l0 -0.984375l1.421875 0l0 -10.25l-1.421875 0l0 -0.96875l2.59375 0l0 12.203125zm2.062378 -8.234375l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m100.11045 488.325l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.18837 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.874855 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.5156174 0 -2.4062424 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.3437424 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.1562424 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4374924 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.8437424 -1.90625l3.8593674 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8124924 0 -1.3593674 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.63108 -5.421875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.46788 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.007538 -3.5625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#000000" d="m107.81134 510.48126q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm2.3758698 -2.8125l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm13.953278 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm3.257965 0l0 -6.0l-1.03125 0l0 -0.90625l1.03125 0l0 -0.734375q0 -0.703125 0.125 -1.046875q0.171875 -0.453125 0.59375 -0.734375q0.421875 -0.28125 1.203125 -0.28125q0.484375 0 1.09375 0.109375l-0.1875 1.03125q-0.359375 -0.0625 -0.6875 -0.0625q-0.53125 0 -0.75 0.234375q-0.21875 0.21875 -0.21875 0.84375l0 0.640625l1.34375 0l0 0.90625l-1.34375 0l0 6.0l-1.171875 0zm6.8434753 -3.0625l1.203125 -0.109375q0.078125 0.71875 0.390625 1.1875q0.3125 0.453125 0.953125 0.734375q0.65625 0.28125 1.46875 0.28125q0.71875 0 1.265625 -0.21875q0.5625 -0.21875 0.828125 -0.578125q0.265625 -0.375 0.265625 -0.828125q0 -0.453125 -0.265625 -0.78125q-0.25 -0.328125 -0.84375 -0.5625q-0.390625 -0.15625 -1.703125 -0.46875q-1.3125 -0.3125 -1.84375 -0.59375q-0.671875 -0.359375 -1.015625 -0.890625q-0.328125 -0.53125 -0.328125 -1.1875q0 -0.71875 0.40625 -1.34375q0.40625 -0.625 1.1875 -0.953125q0.796875 -0.328125 1.765625 -0.328125q1.046875 0 1.859375 0.34375q0.8125 0.34375 1.25 1.015625q0.4375 0.65625 0.46875 1.484375l-1.203125 0.09375q-0.109375 -0.90625 -0.671875 -1.359375q-0.5625 -0.46875 -1.65625 -0.46875q-1.140625 0 -1.671875 0.421875q-0.515625 0.421875 -0.515625 1.015625q0 0.515625 0.359375 0.84375q0.375 0.328125 1.90625 0.6875q1.546875 0.34375 2.109375 0.59375q0.84375 0.390625 1.234375 0.984375q0.390625 0.578125 0.390625 1.359375q0 0.75 -0.4375 1.4375q-0.421875 0.671875 -1.25 1.046875q-0.8125 0.359375 -1.828125 0.359375q-1.296875 0 -2.171875 -0.375q-0.875 -0.375 -1.375 -1.125q-0.5 -0.765625 -0.53125 -1.71875zm9.18663 -5.125l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm2.726715 0.578125l1.140625 0.15625q0.078125 0.53125 0.40625 0.78125q0.4375 0.3125 1.1875 0.3125q0.8125 0 1.25 -0.328125q0.453125 -0.3125 0.609375 -0.90625q0.09375 -0.359375 0.078125 -1.5q-0.765625 0.90625 -1.90625 0.90625q-1.4375 0 -2.21875 -1.03125q-0.78125 -1.03125 -0.78125 -2.46875q0 -0.984375 0.359375 -1.8125q0.359375 -0.84375 1.03125 -1.296875q0.6875 -0.453125 1.609375 -0.453125q1.21875 0 2.015625 0.984375l0 -0.828125l1.078125 0l0 5.96875q0 1.609375 -0.328125 2.28125q-0.328125 0.6875 -1.046875 1.078125q-0.703125 0.390625 -1.75 0.390625q-1.234375 0 -2.0 -0.5625q-0.75 -0.5625 -0.734375 -1.671875zm0.984375 -4.15625q0 1.359375 0.53125 1.984375q0.546875 0.625 1.359375 0.625q0.796875 0 1.34375 -0.625q0.546875 -0.625 0.546875 -1.953125q0 -1.265625 -0.5625 -1.90625q-0.5625 -0.640625 -1.359375 -0.640625q-0.765625 0 -1.3125 0.640625q-0.546875 0.625 -0.546875 1.875zm6.6468506 3.578125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.006226 4.125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm7.3968506 6.265625l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#00ff00" d="m71.8611 463.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.0455c0 5.7490845 -4.660568 10.409668 -10.409653 10.409668l-169.84232 0l0 0c-8.277893E-4 0 -0.0015029907 -6.713867E-4 -0.0015029907 -0.0015258789l0.0015029907 -52.0455l0 0c0 -5.7490845 4.6605644 -10.409668 10.409657 -10.409668z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m71.8611 463.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.0455c0 5.7490845 -4.660568 10.409668 -10.409653 10.409668l-169.84232 0l0 0c-8.277893E-4 0 -0.0015029907 -6.713867E-4 -0.0015029907 -0.0015258789l0.0015029907 -52.0455l0 0c0 -5.7490845 4.6605644 -10.409668 10.409657 -10.409668z" fill-rule="evenodd"/><path fill="#000000" d="m102.2484 483.66876l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.84288 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm19.593765 -9.546875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm3.2189026 9.546875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -2.53125l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.2093506 0q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 6.109375l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3812256 6.078125l0 -12.203125l2.578125 0l0 0.96875l-1.40625 0l0 10.25l1.40625 0l0 0.984375l-2.578125 0zm3.6873627 -10.84375l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.4084015 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.1093597 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.7187347 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm5.2874756 2.65625l-2.59375 0l0 -0.984375l1.421875 0l0 -10.25l-1.421875 0l0 -0.96875l2.59375 0l0 12.203125zm2.062378 -8.234375l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m108.11045 496.325l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.18837 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.26561737 0.3125 0.37499237 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.2187424 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.553093 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748627 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.631088 -5.421875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.46788 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.007538 -3.5625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#000000" d="m115.81134 518.48126q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm2.3758698 -2.8125l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm13.953278 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm3.257965 0l0 -6.0l-1.03125 0l0 -0.90625l1.03125 0l0 -0.734375q0 -0.703125 0.125 -1.046875q0.171875 -0.453125 0.59375 -0.734375q0.421875 -0.28125 1.203125 -0.28125q0.484375 0 1.09375 0.109375l-0.1875 1.03125q-0.359375 -0.0625 -0.6875 -0.0625q-0.53125 0 -0.75 0.234375q-0.21875 0.21875 -0.21875 0.84375l0 0.640625l1.34375 0l0 0.90625l-1.34375 0l0 6.0l-1.171875 0zm6.8434753 -3.0625l1.203125 -0.109375q0.078125 0.71875 0.390625 1.1875q0.3125 0.453125 0.953125 0.734375q0.65625 0.28125 1.46875 0.28125q0.71875 0 1.265625 -0.21875q0.5625 -0.21875 0.828125 -0.578125q0.265625 -0.375 0.265625 -0.828125q0 -0.453125 -0.265625 -0.78125q-0.25 -0.328125 -0.84375 -0.5625q-0.390625 -0.15625 -1.703125 -0.46875q-1.3125 -0.3125 -1.84375 -0.59375q-0.671875 -0.359375 -1.015625 -0.890625q-0.328125 -0.53125 -0.328125 -1.1875q0 -0.71875 0.40625 -1.34375q0.40625 -0.625 1.1875 -0.953125q0.796875 -0.328125 1.765625 -0.328125q1.046875 0 1.859375 0.34375q0.8125 0.34375 1.25 1.015625q0.4375 0.65625 0.46875 1.484375l-1.203125 0.09375q-0.109375 -0.90625 -0.671875 -1.359375q-0.5625 -0.46875 -1.65625 -0.46875q-1.140625 0 -1.671875 0.421875q-0.515625 0.421875 -0.515625 1.015625q0 0.515625 0.359375 0.84375q0.375 0.328125 1.90625 0.6875q1.546875 0.34375 2.109375 0.59375q0.84375 0.390625 1.234375 0.984375q0.390625 0.578125 0.390625 1.359375q0 0.75 -0.4375 1.4375q-0.421875 0.671875 -1.25 1.046875q-0.8125 0.359375 -1.828125 0.359375q-1.296875 0 -2.171875 -0.375q-0.875 -0.375 -1.375 -1.125q-0.5 -0.765625 -0.53125 -1.71875zm9.18663 -5.125l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm2.726715 0.578125l1.140625 0.15625q0.078125 0.53125 0.40625 0.78125q0.4375 0.3125 1.1875 0.3125q0.8125 0 1.25 -0.328125q0.453125 -0.3125 0.609375 -0.90625q0.09375 -0.359375 0.078125 -1.5q-0.765625 0.90625 -1.90625 0.90625q-1.4375 0 -2.21875 -1.03125q-0.78125 -1.03125 -0.78125 -2.46875q0 -0.984375 0.359375 -1.8125q0.359375 -0.84375 1.03125 -1.296875q0.6875 -0.453125 1.609375 -0.453125q1.21875 0 2.015625 0.984375l0 -0.828125l1.078125 0l0 5.96875q0 1.609375 -0.328125 2.28125q-0.328125 0.6875 -1.046875 1.078125q-0.703125 0.390625 -1.75 0.390625q-1.234375 0 -2.0 -0.5625q-0.75 -0.5625 -0.734375 -1.671875zm0.984375 -4.15625q0 1.359375 0.53125 1.984375q0.546875 0.625 1.359375 0.625q0.796875 0 1.34375 -0.625q0.546875 -0.625 0.546875 -1.953125q0 -1.265625 -0.5625 -1.90625q-0.5625 -0.640625 -1.359375 -0.640625q-0.765625 0 -1.3125 0.640625q-0.546875 0.625 -0.546875 1.875zm6.6468506 3.578125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.006226 4.125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm7.3968506 6.265625l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#00ff00" d="m79.8611 471.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.0455c0 5.7490845 -4.660568 10.409668 -10.409653 10.409668l-169.84232 0l0 0c-8.31604E-4 0 -0.0015029907 -6.713867E-4 -0.0015029907 -0.0015258789l0.0015029907 -52.0455l0 0c0 -5.7490845 4.6605606 -10.409668 10.409653 -10.409668z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m79.8611 471.6404l169.84232 0c3.9672852E-4 0 7.7819824E-4 1.5258789E-4 0.0010528564 4.5776367E-4c2.89917E-4 2.746582E-4 4.4250488E-4 6.4086914E-4 4.4250488E-4 0.0010681152l-0.0014953613 52.0455c0 5.7490845 -4.660568 10.409668 -10.409653 10.409668l-169.84232 0l0 0c-8.31604E-4 0 -0.0015029907 -6.713867E-4 -0.0015029907 -0.0015258789l0.0015029907 -52.0455l0 0c0 -5.7490845 4.6605606 -10.409668 10.409653 -10.409668z" fill-rule="evenodd"/><path fill="#000000" d="m110.2484 491.66876l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.84288 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm19.593765 -9.546875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm3.2189026 9.546875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -2.53125l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.2093506 0q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 6.109375l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3812256 6.078125l0 -12.203125l2.578125 0l0 0.96875l-1.40625 0l0 10.25l1.40625 0l0 0.984375l-2.578125 0zm3.6873627 -10.84375l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.4084015 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.1093597 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.7187347 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm5.2874756 2.65625l-2.59375 0l0 -0.984375l1.421875 0l0 -10.25l-1.421875 0l0 -0.96875l2.59375 0l0 12.203125zm2.062378 -8.234375l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m116.11045 504.325l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.18837 -2.21875l1.2031174 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.7656174 0.578125 -1.9687424 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.2656174 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.1562424 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037468 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748627 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.631088 -5.421875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.46788 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.007538 -3.5625l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.414215 -1.546875l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#000000" d="m123.81134 526.48126q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm2.3758698 -2.8125l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm13.953278 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm3.257965 0l0 -6.0l-1.03125 0l0 -0.90625l1.03125 0l0 -0.734375q0 -0.703125 0.125 -1.046875q0.171875 -0.453125 0.59375 -0.734375q0.421875 -0.28125 1.203125 -0.28125q0.484375 0 1.09375 0.109375l-0.1875 1.03125q-0.359375 -0.0625 -0.6875 -0.0625q-0.53125 0 -0.75 0.234375q-0.21875 0.21875 -0.21875 0.84375l0 0.640625l1.34375 0l0 0.90625l-1.34375 0l0 6.0l-1.171875 0zm6.8434753 -3.0625l1.203125 -0.109375q0.078125 0.71875 0.390625 1.1875q0.3125 0.453125 0.953125 0.734375q0.65625 0.28125 1.46875 0.28125q0.71875 0 1.265625 -0.21875q0.5625 -0.21875 0.828125 -0.578125q0.265625 -0.375 0.265625 -0.828125q0 -0.453125 -0.265625 -0.78125q-0.25 -0.328125 -0.84375 -0.5625q-0.390625 -0.15625 -1.703125 -0.46875q-1.3125 -0.3125 -1.84375 -0.59375q-0.671875 -0.359375 -1.015625 -0.890625q-0.328125 -0.53125 -0.328125 -1.1875q0 -0.71875 0.40625 -1.34375q0.40625 -0.625 1.1875 -0.953125q0.796875 -0.328125 1.765625 -0.328125q1.046875 0 1.859375 0.34375q0.8125 0.34375 1.25 1.015625q0.4375 0.65625 0.46875 1.484375l-1.203125 0.09375q-0.109375 -0.90625 -0.671875 -1.359375q-0.5625 -0.46875 -1.65625 -0.46875q-1.140625 0 -1.671875 0.421875q-0.515625 0.421875 -0.515625 1.015625q0 0.515625 0.359375 0.84375q0.375 0.328125 1.90625 0.6875q1.546875 0.34375 2.109375 0.59375q0.84375 0.390625 1.234375 0.984375q0.390625 0.578125 0.390625 1.359375q0 0.75 -0.4375 1.4375q-0.421875 0.671875 -1.25 1.046875q-0.8125 0.359375 -1.828125 0.359375q-1.296875 0 -2.171875 -0.375q-0.875 -0.375 -1.375 -1.125q-0.5 -0.765625 -0.53125 -1.71875zm9.18663 -5.125l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm2.726715 0.578125l1.140625 0.15625q0.078125 0.53125 0.40625 0.78125q0.4375 0.3125 1.1875 0.3125q0.8125 0 1.25 -0.328125q0.453125 -0.3125 0.609375 -0.90625q0.09375 -0.359375 0.078125 -1.5q-0.765625 0.90625 -1.90625 0.90625q-1.4375 0 -2.21875 -1.03125q-0.78125 -1.03125 -0.78125 -2.46875q0 -0.984375 0.359375 -1.8125q0.359375 -0.84375 1.03125 -1.296875q0.6875 -0.453125 1.609375 -0.453125q1.21875 0 2.015625 0.984375l0 -0.828125l1.078125 0l0 5.96875q0 1.609375 -0.328125 2.28125q-0.328125 0.6875 -1.046875 1.078125q-0.703125 0.390625 -1.75 0.390625q-1.234375 0 -2.0 -0.5625q-0.75 -0.5625 -0.734375 -1.671875zm0.984375 -4.15625q0 1.359375 0.53125 1.984375q0.546875 0.625 1.359375 0.625q0.796875 0 1.34375 -0.625q0.546875 -0.625 0.546875 -1.953125q0 -1.265625 -0.5625 -1.90625q-0.5625 -0.640625 -1.359375 -0.640625q-0.765625 0 -1.3125 0.640625q-0.546875 0.625 -0.546875 1.875zm6.6468506 3.578125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.006226 4.125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm7.3968506 6.265625l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m432.00262 405.2126l-312.40945 26.425201" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.00262 405.2126l-306.4308 25.919495" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m125.43261 429.48624l-4.382736 2.0283508l4.661171 1.2633667z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m432.00262 405.2126l-304.40945 34.4252" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.00262 405.2126l-298.44745 33.751007" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m133.36957 437.3223l-4.3237457 2.1512146l4.6949615 1.1313171z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m432.00262 405.2126l-288.40945 50.4252" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.00262 405.2126l-282.4991 49.391876" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m149.21906 452.9774l-4.1858215 2.4086304l4.7547607 0.845459z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m432.00262 405.2126l-280.40945 58.4252" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.00262 405.2126l-274.53558 57.201324" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m157.13011 460.79694l-4.105774 2.5426636l4.779602 0.6913452z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m432.00262 405.2126l-272.40945 66.4252" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.00262 405.2126l-266.58026 65.003784" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m165.03108 468.61166l-4.017624 2.6798096l4.8002167 0.52963257z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m432.00262 405.2126l-296.40945 42.4252" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.00262 405.2126l-290.46997 41.575104" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m141.29861 445.15262l-4.2582855 2.2780457l4.726349 0.99209595z" fill-rule="evenodd"/></g></svg> \ No newline at end of file
diff --git a/bip-0119/pooledcoshv.png b/bip-0119/pooledcoshv.png
new file mode 100644
index 0000000..c9ea9d1
--- /dev/null
+++ b/bip-0119/pooledcoshv.png
Binary files differ
diff --git a/bip-0119/simulation.py b/bip-0119/simulation.py
new file mode 100755
index 0000000..e40d61e
--- /dev/null
+++ b/bip-0119/simulation.py
@@ -0,0 +1,135 @@
+#!/usr/bin/python3
+import numpy as np
+import matplotlib.pyplot as plt
+PHASES = 15
+PHASE_LENGTH = 144
+SAMPLES = PHASE_LENGTH * PHASES
+AVG_TX = 235
+COMPRESSED_NODE_SIZE = 4 + 1 + 1 + 4 + 32 + 4 + 4 + 8 + 8 + 34 + 34 + 33 + 32 + 34
+print(COMPRESSED_NODE_SIZE)
+MAX_BLOCK_SIZE = 1e6
+AVG_INTERVAL = 10*60
+TXNS_PER_SEC = 0.5*MAX_BLOCK_SIZE/AVG_TX/AVG_INTERVAL
+MAX_MEMPOOL = MAX_BLOCK_SIZE * 100
+COMPRESSABLE = 0.05
+
+
+
+
+
+def get_rate(phase):
+ if phase > PHASES/3:
+ return 1.25**(2*PHASES/3 - phase) *TXNS_PER_SEC
+ else:
+ return 1.25**(phase)*TXNS_PER_SEC
+
+def normal():
+ np.random.seed(0)
+ print("Max Txns Per Sec %f"%TXNS_PER_SEC)
+ backlog = 0
+ results_unconfirmed = [0]*SAMPLES
+ total_time = [0]*SAMPLES
+ for phase in range(PHASES):
+ for i in range(PHASE_LENGTH*phase, PHASE_LENGTH*(1+phase)):
+ block_time = np.random.exponential(AVG_INTERVAL)
+ total_time[i] = block_time
+ # Equivalent to the sum of one poisson per block time
+ # I.E., \sum_1_n Pois(a) = Pois(a*n)
+ txns = np.random.poisson(get_rate(phase)* block_time)
+ weight = txns*AVG_TX + backlog
+ if weight > MAX_BLOCK_SIZE:
+ backlog = weight - MAX_BLOCK_SIZE
+ else:
+ backlog = 0
+ results_unconfirmed[i] = backlog/AVG_TX
+ return results_unconfirmed, np.cumsum(total_time)/(60*60*24.0)
+def compressed(rate_multiplier = 1):
+ np.random.seed(0)
+ print("Max Txns Per Sec %f"%TXNS_PER_SEC)
+ backlog = 0
+ secondary_backlog = 0
+ results = [0]*SAMPLES
+ results_lo_priority = [0]*SAMPLES
+ results_confirmed = [0]*SAMPLES
+ results_unconfirmed = [0]*SAMPLES
+ results_yet_to_spend = [0]*SAMPLES
+ total_time = [0]*(SAMPLES)
+ for phase in range(PHASES):
+ for i in range(PHASE_LENGTH*phase, PHASE_LENGTH*(1+phase)):
+ block_time = np.random.exponential(AVG_INTERVAL)
+ total_time[i] = block_time
+ txns = np.random.poisson(rate_multiplier*get_rate(phase)*block_time)
+ postponed = txns * COMPRESSABLE
+ weight = (txns-postponed)*AVG_TX + backlog
+ secondary_backlog += postponed*133 + postponed*34 # Total extra work
+ if weight > MAX_BLOCK_SIZE:
+ results_confirmed[i] += MAX_BLOCK_SIZE - AVG_TX
+ backlog = weight - MAX_BLOCK_SIZE
+ else:
+ space = MAX_BLOCK_SIZE - weight
+ secondary_backlog = max(secondary_backlog-space, 0)
+ backlog = 0
+ results_unconfirmed[i] = float(backlog)/AVG_TX
+ results_yet_to_spend[i] = secondary_backlog/2/AVG_TX
+
+ return results_unconfirmed, results_yet_to_spend, np.cumsum(total_time)/(60*60*24.0)
+
+DAYS = np.array(range(SAMPLES))/144
+
+def make_patch_spines_invisible(ax):
+ ax.set_frame_on(True)
+ ax.patch.set_visible(False)
+ for sp in ax.spines.values():
+ sp.set_visible(False)
+
+if __name__ == "__main__":
+ normal_txs, blocktimes_n = normal()
+ compressed_txs, unspendable, blocktimes_c1 = compressed()
+ compressed_txs2, unspendable2, blocktimes_c2 = compressed(2)
+
+ fig, host = plt.subplots()
+ host.set_title("Transaction Compression Performance with %d%% Adoption During Spike"%(100*COMPRESSABLE))
+ fig.subplots_adjust(right=0.75)
+ par1 = host.twinx()
+ par2 = host.twinx()
+ par3 = host.twinx()
+
+ par2.spines["right"].set_position(("axes", 1.2))
+ make_patch_spines_invisible(par2)
+ par2.spines["right"].set_visible(True)
+
+ par3.spines["right"].set_position(("axes", 1.4))
+ make_patch_spines_invisible(par3)
+ par3.spines["right"].set_visible(True)
+
+ host.set_xlabel("Block Days")
+
+ host.set_ylabel("Transactions per Second")
+ p5, = host.plot(range(PHASES), [get_rate(p) for p in range(PHASES)], "k-", label="Transactions Per Second (1x Rate)")
+ p6, = host.plot(range(PHASES), [2*get_rate(p) for p in range(PHASES)], "k:", label="Transactions Per Second (2x Rate)")
+
+ host.yaxis.label.set_color(p5.get_color())
+
+
+ par2.set_ylabel("Unconfirmed Transactions")
+ #p1, = par2.plot(DAYS, (-np.array(compressed_txs) + np.array(normal_txs)), "b-.", label = "Mempool Delta")
+ p1, = par2.plot(blocktimes_n, normal_txs, "g", label="Mempool without Congestion Control")
+ p2, = par2.plot(blocktimes_c1, compressed_txs,"y", label="Mempool with Congestion Control (1x Rate)")
+ p3, = par2.plot(blocktimes_c2, compressed_txs2,"m", label="Mempool with Congestion Control (2x Rate)")
+ p_full_block, = par2.plot([DAYS[0], DAYS[-1]], [MAX_BLOCK_SIZE/AVG_TX]*2, "b.-", label="Maximum Average Transactions Per Block")
+
+ par2.yaxis.label.set_color(p2.get_color())
+
+
+ par1.set_ylabel("Confirmed but Pending Transactions")
+ p4, = par1.plot(blocktimes_c1, unspendable2, "c", label="Congestion Control Pending (2x Rate)")
+ p4, = par1.plot(blocktimes_c2, unspendable, "r", label="Congestion Control Pending (1x Rate)")
+ par1.yaxis.label.set_color(p4.get_color())
+
+
+
+
+ lines = [p1, p2, p3, p4, p5, p6, p_full_block]
+ host.legend(lines, [l.get_label() for l in lines])
+
+ plt.show()
diff --git a/bip-0119/states.svg b/bip-0119/states.svg
new file mode 100644
index 0000000..1c0fe92
--- /dev/null
+++ b/bip-0119/states.svg
@@ -0,0 +1 @@
+<svg version="1.1" viewBox="0.0 0.0 960.0 540.0" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="g6b8c337711_0_670.0"><path d="m0 0l960.0 0l0 540.0l-960.0 0l0 -540.0z" clip-rule="nonzero"/></clipPath><g clip-path="url(#g6b8c337711_0_670.0)"><path fill="#ffffff" d="m0 0l960.0 0l0 540.0l-960.0 0z" fill-rule="evenodd"/><path fill="#b7b7b7" d="m10.412073 50.3832l295.3386 0l0 304.0315l-295.3386 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m10.412073 50.3832l295.3386 0l0 304.0315l-295.3386 0z" fill-rule="evenodd"/><path fill="#ff9900" d="m20.283464 102.656166l30.299212 0l0 30.299217l-30.299212 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m20.283464 102.656166l30.299212 0l0 30.299217l-30.299212 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m31.593176 86.46982c0 4.0465927 0.9606304 6.0695724 1.9212589 8.093193c0.9606323 2.0236206 1.9212608 4.0478897 1.9212608 8.095779" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m31.593176 86.46982c0 4.0465927 0.9606304 6.0695724 1.9212589 8.093193c0.24015808 0.50590515 0.48031616 1.0118561 0.7054634 1.5494461c0.05628586 0.13440704 0.111637115 0.27077484 0.16580963 0.40962982l0.08062363 0.2155304" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m32.8363 97.00447l2.3632088 4.211624l0.8968582 -4.745331z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m51.766403 86.46982c0 4.0465927 7.9133873 6.0695724 15.826775 8.093193c7.9133835 2.0236206 15.826767 4.0478897 15.826767 8.095779" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m51.766403 86.46982c0 4.0465927 7.9133873 6.0695724 15.826775 8.093193c3.956688 1.0118103 7.9133835 2.0237885 10.880905 3.2887878c0.18547058 0.079071045 0.36707306 0.15911865 0.54457855 0.24021912c0.08874512 0.040550232 0.1764679 0.08136749 0.26313782 0.12244415l0.07019043 0.033920288" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m78.137856 99.36824l4.2909317 2.21595l-1.8626556 -4.455673z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m92.47769 86.62205c0 4.0085144 9.740158 6.013092 19.480316 8.017029c9.740158 2.0039368 19.480316 4.0072327 19.480316 8.014465" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m92.47769 86.62205c0 4.008522 9.740158 6.013092 19.480316 8.017029c4.870079 1.0019684 9.740158 2.0037842 13.392715 3.2559967c0.45656586 0.15653229 0.89411163 0.31697083 1.3102646 0.48181152c0.104034424 0.04120636 0.2067337 0.08270264 0.30805206 0.12446594l0.0986557 0.041519165" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m125.93607 99.74605l4.43734 1.9059296l-2.1740875 -4.312294z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m113.01575 86.46982c0 4.0702133 16.606293 6.1049957 33.2126 8.140427c16.606293 2.035431 33.2126 4.071518 33.2126 8.143036" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m113.01575 86.46982c0 4.0702057 16.606293 6.1049957 33.2126 8.140427c8.303146 1.0177155 16.606293 2.0355988 22.833664 3.3079834c1.556839 0.31809235 2.9839478 0.65210724 4.248871 1.0059814c0.31622314 0.08848572 0.6223297 0.17819214 0.91778564 0.26921844l0.31141663 0.09841156" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m173.58719 100.64098l4.659668 1.2689133l-2.7538757 -3.9672089z" fill-rule="evenodd"/><path fill="#00ff00" d="m45.057743 79.761154l0 0c0 -3.7050934 3.0035706 -6.708664 6.70866 -6.708664l0 0c1.7792473 0 3.4856224 0.70681 4.74374 1.9649277c1.2581177 1.2581177 1.9649239 2.9644928 1.9649239 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.708664 6.708664l0 0c-3.7050896 0 -6.70866 -3.0035706 -6.70866 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m45.057743 79.761154l0 0c0 -3.7050934 3.0035706 -6.708664 6.70866 -6.708664l0 0c1.7792473 0 3.4856224 0.70681 4.74374 1.9649277c1.2581177 1.2581177 1.9649239 2.9644928 1.9649239 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.708664 6.708664l0 0c-3.7050896 0 -6.70866 -3.0035706 -6.70866 -6.708664z" fill-rule="evenodd"/><path fill="#00ff00" d="m24.884514 79.761154l0 0c0 -3.7050934 3.0035706 -6.708664 6.708662 -6.708664l0 0c1.7792492 0 3.4856205 0.70681 4.743738 1.9649277c1.2581215 1.2581177 1.9649239 2.9644928 1.9649239 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.708662 6.708664l0 0c-3.7050915 0 -6.708662 -3.0035706 -6.708662 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m24.884514 79.761154l0 0c0 -3.7050934 3.0035706 -6.708664 6.708662 -6.708664l0 0c1.7792492 0 3.4856205 0.70681 4.743738 1.9649277c1.2581215 1.2581177 1.9649239 2.9644928 1.9649239 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.708662 6.708664l0 0c-3.7050915 0 -6.708662 -3.0035706 -6.708662 -6.708664z" fill-rule="evenodd"/><path fill="#00ff00" d="m65.22966 79.91338l0 0c0 -3.7050858 3.0035706 -6.7086563 6.708664 -6.7086563l0 0c1.7792435 0 3.4856186 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.7086563 6.708664l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m65.22966 79.91338l0 0c0 -3.7050858 3.0035706 -6.7086563 6.708664 -6.7086563l0 0c1.7792435 0 3.4856186 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.7086563 6.708664l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.708664z" fill-rule="evenodd"/><path fill="#00ff00" d="m85.76903 79.91338l0 0c0 -3.7050858 3.0035706 -6.7086563 6.708664 -6.7086563l0 0c1.7792435 0 3.4856186 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.7437363l0 0c0 3.7050934 -3.003563 6.708664 -6.7086563 6.708664l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m85.76903 79.91338l0 0c0 -3.7050858 3.0035706 -6.7086563 6.708664 -6.7086563l0 0c1.7792435 0 3.4856186 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.7437363l0 0c0 3.7050934 -3.003563 6.708664 -6.7086563 6.708664l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.708664z" fill-rule="evenodd"/><path fill="#00ff00" d="m106.30708 79.761154l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.4856262 0.70681 4.743744 1.9649277c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.708664 6.708664l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m106.30708 79.761154l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.4856262 0.70681 4.743744 1.9649277c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.708664 6.708664l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.708664z" fill-rule="evenodd"/><path fill="#00ffff" d="m37.234024 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.70866 -6.708664l0 0c1.7792473 0 3.4856224 0.70680237 4.74374 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.0035667 6.7086487 -6.70866 6.7086487l0 0c-3.7050896 0 -6.70866 -3.0035553 -6.70866 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m37.234024 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.70866 -6.708664l0 0c1.7792473 0 3.4856224 0.70680237 4.74374 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.0035667 6.7086487 -6.70866 6.7086487l0 0c-3.7050896 0 -6.70866 -3.0035553 -6.70866 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m-14.162729 -9.800525l326.96063 0l0 39.90551l-326.96063 0z" fill-rule="evenodd"/><path fill="#000000" d="m65.20157 17.119473l0 -13.359374l1.8125 0l7.015625 10.484375l0 -10.484375l1.6875 0l0 13.359374l-1.8125 0l-7.015625 -10.499999l0 10.499999l-1.6875 0zm12.676071 -4.843749q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.062499 -1.640625 1.656249q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.312499 -1.25 -3.765624zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.281967 4.843749l0 -9.671874l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.062499l-1.625 0zm6.228302 0l0 -9.671874l1.46875 0l0 1.359375q0.453125 -0.71875 1.203125 -1.140625q0.765625 -0.4375 1.71875 -0.4375q1.078125 0 1.765625 0.453125q0.6875 0.4375 0.96875 1.234375q1.15625 -1.6875 2.984375 -1.6875q1.453125 0 2.21875 0.796875q0.78125 0.796875 0.78125 2.453125l0 6.640624l-1.640625 0l0 -6.093749q0 -0.984375 -0.15625 -1.40625q-0.15625 -0.4375 -0.578125 -0.703125q-0.421875 -0.265625 -0.984375 -0.265625q-1.015625 0 -1.6875 0.6875q-0.671875 0.671875 -0.671875 2.15625l0 5.624999l-1.640625 0l0 -6.281249q0 -1.09375 -0.40625 -1.640625q-0.40625 -0.546875 -1.3125 -0.546875q-0.6875 0 -1.28125 0.359375q-0.59375 0.359375 -0.859375 1.0625q-0.25 0.703125 -0.25 2.03125l0 5.015624l-1.640625 0zm21.853294 -1.187499q-0.921875 0.76562405 -1.765625 1.093749q-0.828125 0.3125 -1.7968674 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78124905 -0.859375 -1.984374q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.4531174 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.1562424 0 -1.7031174 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1874924 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59374905 0.40625 1.156249l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.187499zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.0156174 0.140625 -1.4374924 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.43749905 1.453125 0.43749905q0.9374924 0 1.6718674 -0.40624905q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm4.1569824 4.859374l0 -13.359374l1.640625 0l0 13.359374l-1.640625 0zm12.647118 0l0 -11.781249l-4.40625 0l0 -1.5781252l10.578125 0l0 1.5781252l-4.40625 0l0 11.781249l-1.765625 0zm7.0782776 0l0 -9.671874l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.062499l-1.625 0zm12.540802 -1.187499q-0.921875 0.76562405 -1.765625 1.093749q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78124905 -0.859375 -1.984374q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59374905 0.40625 1.156249l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.187499zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.43749905 1.453125 0.43749905q0.9375 0 1.671875 -0.40624905q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm4.2038574 4.859374l0 -9.671874l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953124l-1.640625 0l0 -5.890624q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281249l-1.640625 0zm9.719452 -2.890624l1.625 -0.25q0.125 0.96875 0.75 1.5q0.625 0.515625 1.75 0.515625q1.125 0 1.671875 -0.453125q0.546875 -0.46875 0.546875 -1.09375q0 -0.546875 -0.484375 -0.875q-0.328125 -0.21875 -1.671875 -0.546875q-1.8125 -0.46875 -2.515625 -0.796875q-0.6875 -0.328125 -1.046875 -0.90625q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.640625 0.296875 -1.1875q0.296875 -0.5625 0.8125 -0.921875q0.375 -0.28125 1.03125 -0.46875q0.671875 -0.203125 1.421875 -0.203125q1.140625 0 2.0 0.328125q0.859375 0.328125 1.265625 0.890625q0.421875 0.5625 0.578125 1.5l-1.609375 0.21875q-0.109375 -0.75 -0.640625 -1.171875q-0.515625 -0.421875 -1.46875 -0.421875q-1.140625 0 -1.625 0.375q-0.46875 0.375 -0.46875 0.875q0 0.3125 0.1875 0.578125q0.203125 0.265625 0.640625 0.4375q0.234375 0.09375 1.4375 0.421875q1.75 0.453125 2.4375 0.75q0.6875 0.296875 1.078125 0.859375q0.390625 0.5625 0.390625 1.40625q0 0.828125 -0.484375 1.546875q-0.46875 0.71874905 -1.375 1.124999q-0.90625 0.390625 -2.046875 0.390625q-1.875 0 -2.875 -0.78125q-0.984375 -0.78124905 -1.25 -2.328124zm16.296875 1.703125q-0.921875 0.76562405 -1.765625 1.093749q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78124905 -0.859375 -1.984374q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59374905 0.40625 1.156249l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.187499zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.43749905 1.453125 0.43749905q0.9375 0 1.671875 -0.40624905q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm10.516357 1.3125l1.609375 0.21875q-0.265625 1.65625 -1.359375 2.609374q-1.078125 0.9375 -2.671875 0.9375q-1.984375 0 -3.1875 -1.296875q-1.203125 -1.296874 -1.203125 -3.718749q0 -1.578125 0.515625 -2.75q0.515625 -1.171875 1.578125 -1.75q1.0625 -0.59375 2.3125 -0.59375q1.578125 0 2.578125 0.796875q1.0 0.796875 1.28125 2.265625l-1.59375 0.234375q-0.234375 -0.96875 -0.8125 -1.453125q-0.578125 -0.5 -1.390625 -0.5q-1.234375 0 -2.015625 0.890625q-0.78125 0.890625 -0.78125 2.8125q0 1.953125 0.75 2.84375q0.75 0.875 1.953125 0.875q0.96875 0 1.609375 -0.59375q0.65625 -0.59375 0.828125 -1.828125zm6.59375 2.078125l0.234375 1.453124q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46874905 -0.203125 -1.937499l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm1.6051636 -10.0l0 -1.8906252l1.640625 0l0 1.8906252l-1.640625 0zm0 11.468749l0 -9.671874l1.640625 0l0 9.671874l-1.640625 0zm3.5354614 -4.843749q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.062499 -1.640625 1.656249q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.312499 -1.25 -3.765624zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.297577 4.843749l0 -9.671874l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953124l-1.640625 0l0 -5.890624q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281249l-1.640625 0zm9.719482 -2.890624l1.625 -0.25q0.125 0.96875 0.75 1.5q0.625 0.515625 1.75 0.515625q1.125 0 1.671875 -0.453125q0.546875 -0.46875 0.546875 -1.09375q0 -0.546875 -0.484375 -0.875q-0.328125 -0.21875 -1.671875 -0.546875q-1.8125 -0.46875 -2.515625 -0.796875q-0.6875 -0.328125 -1.046875 -0.90625q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.640625 0.296875 -1.1875q0.296875 -0.5625 0.8125 -0.921875q0.375 -0.28125 1.03125 -0.46875q0.671875 -0.203125 1.421875 -0.203125q1.140625 0 2.0 0.328125q0.859375 0.328125 1.265625 0.890625q0.421875 0.5625 0.578125 1.5l-1.609375 0.21875q-0.109375 -0.75 -0.640625 -1.171875q-0.515625 -0.421875 -1.46875 -0.421875q-1.140625 0 -1.625 0.375q-0.46875 0.375 -0.46875 0.875q0 0.3125 0.1875 0.578125q0.203125 0.265625 0.640625 0.4375q0.234375 0.09375 1.4375 0.421875q1.75 0.453125 2.4375 0.75q0.6875 0.296875 1.078125 0.859375q0.390625 0.5625 0.390625 1.40625q0 0.828125 -0.484375 1.546875q-0.46875 0.71874905 -1.375 1.124999q-0.90625 0.390625 -2.046875 0.390625q-1.875 0 -2.875 -0.78125q-0.984375 -0.78124905 -1.25 -2.328124z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m40.72652 460.6509l185.32283 0l0 25.448822l-185.32283 0z" fill-rule="evenodd"/><path fill="#000000" d="m54.429646 475.3153l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm1.3398438 -0.0625q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.62109 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7617188 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm2.6796875 0l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.6054688 2.46875l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.421875 2.078125l0 -5.734375l0.75 0l0 5.734375l-0.75 0zm2.0039062 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm5.9804688 -0.625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm3.5351562 -0.71875l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9023438 2.46875l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm2.6796875 0l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.6054688 2.46875l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm3.9804688 -2.84375l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm4.4804688 -0.515625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm3.3398438 1.453125l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm3.5351562 -0.71875l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.25 2.46875l0 -5.734375l4.140625 0l0 0.6875l-3.390625 0l0 1.75l3.171875 0l0 0.671875l-3.171875 0l0 1.953125l3.515625 0l0 0.671875l-4.265625 0zm4.7578125 0l1.515625 -2.15625l-1.40625 -2.0l0.875 0l0.640625 0.984375q0.1875 0.265625 0.296875 0.453125q0.171875 -0.25 0.3125 -0.453125l0.703125 -0.984375l0.828125 0l-1.421875 1.953125l1.53125 2.203125l-0.859375 0l-0.84375 -1.296875l-0.234375 -0.34375l-1.09375 1.640625l-0.84375 0zm4.46875 1.59375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm6.5117188 1.53125q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm1.8085938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.1679688 -1.234375l0.6875 -0.109375q0.0625 0.40625 0.328125 0.640625q0.265625 0.21875 0.75 0.21875q0.484375 0 0.71875 -0.1875q0.234375 -0.203125 0.234375 -0.46875q0 -0.25 -0.203125 -0.375q-0.140625 -0.09375 -0.71875 -0.25q-0.78125 -0.1875 -1.078125 -0.328125q-0.296875 -0.140625 -0.453125 -0.390625q-0.15625 -0.265625 -0.15625 -0.5625q0 -0.28125 0.125 -0.515625q0.140625 -0.234375 0.359375 -0.390625q0.15625 -0.125 0.4375 -0.203125q0.28125 -0.09375 0.609375 -0.09375q0.484375 0 0.859375 0.140625q0.375 0.140625 0.546875 0.390625q0.171875 0.234375 0.234375 0.640625l-0.6875 0.09375q-0.046875 -0.328125 -0.265625 -0.5q-0.21875 -0.1875 -0.640625 -0.1875q-0.484375 0 -0.6875 0.171875q-0.203125 0.15625 -0.203125 0.375q0 0.125 0.078125 0.234375q0.09375 0.125 0.28125 0.1875q0.09375 0.046875 0.609375 0.1875q0.75 0.203125 1.046875 0.328125q0.296875 0.125 0.453125 0.375q0.171875 0.234375 0.171875 0.59375q0 0.34375 -0.203125 0.65625q-0.203125 0.3125 -0.59375 0.484375q-0.375 0.171875 -0.875 0.171875q-0.796875 0 -1.234375 -0.328125q-0.421875 -0.34375 -0.53125 -1.0zm4.28125 -3.6875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.5117188 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm10.515625 -5.734375l0.765625 0l0 3.3125q0 0.859375 -0.203125 1.375q-0.1875 0.5 -0.703125 0.828125q-0.515625 0.3125 -1.34375 0.3125q-0.796875 0 -1.3125 -0.265625q-0.515625 -0.28125 -0.734375 -0.8125q-0.21875 -0.53125 -0.21875 -1.4375l0 -3.3125l0.765625 0l0 3.3125q0 0.75 0.140625 1.109375q0.140625 0.34375 0.46875 0.53125q0.34375 0.1875 0.828125 0.1875q0.84375 0 1.1875 -0.375q0.359375 -0.375 0.359375 -1.453125l0 -3.3125zm3.4804688 5.734375l0 -5.046875l-1.890625 0l0 -0.6875l4.546875 0l0 0.6875l-1.90625 0l0 5.046875l-0.75 0zm2.8398438 0l2.21875 -2.984375l-1.953125 -2.75l0.90625 0l1.03125 1.46875q0.328125 0.46875 0.46875 0.703125q0.1875 -0.3125 0.453125 -0.640625l1.15625 -1.53125l0.8125 0l-2.0 2.703125l2.15625 3.03125l-0.9375 0l-1.4375 -2.046875q-0.125 -0.171875 -0.25 -0.375q-0.1875 0.3125 -0.265625 0.421875l-1.4375 2.0l-0.921875 0zm5.6953125 -2.796875q0 -1.421875 0.765625 -2.21875q0.765625 -0.8125 1.96875 -0.8125q0.796875 0 1.4375 0.375q0.640625 0.375 0.96875 1.0625q0.328125 0.671875 0.328125 1.53125q0 0.875 -0.359375 1.5625q-0.34375 0.6875 -0.984375 1.046875q-0.640625 0.34375 -1.390625 0.34375q-0.8125 0 -1.453125 -0.390625q-0.625 -0.390625 -0.953125 -1.0625q-0.328125 -0.671875 -0.328125 -1.4375zm0.78125 0.015625q0 1.03125 0.546875 1.640625q0.5625 0.59375 1.40625 0.59375q0.859375 0 1.40625 -0.59375q0.546875 -0.609375 0.546875 -1.71875q0 -0.703125 -0.234375 -1.21875q-0.234375 -0.53125 -0.6875 -0.8125q-0.453125 -0.28125 -1.015625 -0.28125q-0.8125 0 -1.390625 0.546875q-0.578125 0.546875 -0.578125 1.84375z" fill-rule="nonzero"/><path fill="#ff00ff" d="m13.464567 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708662 -6.708664l0 0c1.7792473 0 3.4856205 0.70680237 4.743738 1.96492c1.2581196 1.2581177 1.964922 2.9644928 1.964922 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.70866 6.7086487l0 0c-3.7050915 0 -6.708662 -3.0035553 -6.708662 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m13.464567 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708662 -6.708664l0 0c1.7792473 0 3.4856205 0.70680237 4.743738 1.96492c1.2581196 1.2581177 1.964922 2.9644928 1.964922 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.70866 6.7086487l0 0c-3.7050915 0 -6.708662 -3.0035553 -6.708662 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m35.43307 132.95538l-15.244095 12.251968" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m35.43307 132.95538l-10.567377 8.493195" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m23.830946 140.16113l-2.5024853 4.1303864l4.5719776 -1.555481z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m35.43307 132.95538l8.503937 12.251968" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m35.43307 132.95538l5.0827484 7.3229218" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m39.15891 141.22012l3.9445267 2.786255l-1.2307053 -4.6698914z" fill-rule="evenodd"/><path fill="#00ff00" d="m31.027044 402.3071l0 0c0 -3.7051086 3.0035686 -6.708679 6.708662 -6.708679l0 0c1.7792473 0 3.4856224 0.7068176 4.74374 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.70866 6.7086487l0 0c-3.7050934 0 -6.708662 -3.0035706 -6.708662 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m31.027044 402.3071l0 0c0 -3.7051086 3.0035686 -6.708679 6.708662 -6.708679l0 0c1.7792473 0 3.4856224 0.7068176 4.74374 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.70866 6.7086487l0 0c-3.7050934 0 -6.708662 -3.0035706 -6.708662 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m31.008673 426.80316l0 0c0 -3.7051086 3.0035686 -6.708679 6.708662 -6.708679l0 0c1.7792473 0 3.4856224 0.7068176 4.74374 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.70866 6.7086487l0 0c-3.7050934 0 -6.708662 -3.0035706 -6.708662 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m31.008673 426.80316l0 0c0 -3.7051086 3.0035686 -6.708679 6.708662 -6.708679l0 0c1.7792473 0 3.4856224 0.7068176 4.74374 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.70866 6.7086487l0 0c-3.7050934 0 -6.708662 -3.0035706 -6.708662 -6.7086487z" fill-rule="evenodd"/><path fill="#00ffff" d="m31.323633 451.32022l0 0c0 -3.7051086 3.0035686 -6.708679 6.708662 -6.708679l0 0c1.7792473 0 3.4856224 0.7068176 4.74374 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.70866 6.7086487l0 0c-3.7050934 0 -6.708662 -3.0035706 -6.708662 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m31.323633 451.32022l0 0c0 -3.7051086 3.0035686 -6.708679 6.708662 -6.708679l0 0c1.7792473 0 3.4856224 0.7068176 4.74374 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.70866 6.7086487l0 0c-3.7050934 0 -6.708662 -3.0035706 -6.708662 -6.7086487z" fill-rule="evenodd"/><path fill="#ffffff" d="m31.750141 475.44357l0 0c0 -3.7051086 3.0035706 -6.708679 6.70866 -6.708679l0 0c1.7792511 0 3.4856224 0.7068176 4.74374 1.9649353c1.2581215 1.2581177 1.9649239 2.964508 1.9649239 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050896 0 -6.70866 -3.0035706 -6.70866 -6.7086487z" fill-rule="evenodd"/><path stroke="#ff00ff" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m31.750141 475.44357l0 0c0 -3.7051086 3.0035706 -6.708679 6.70866 -6.708679l0 0c1.7792511 0 3.4856224 0.7068176 4.74374 1.9649353c1.2581215 1.2581177 1.9649239 2.964508 1.9649239 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050896 0 -6.70866 -3.0035706 -6.70866 -6.7086487z" fill-rule="evenodd"/><path fill="#ead1dc" d="m239.48242 427.90814l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792511 0 3.4856262 0.7068176 4.743744 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m239.48242 427.90814l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792511 0 3.4856262 0.7068176 4.743744 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#d0e0e3" d="m239.37088 452.20734l0 0c0 -3.7050781 3.0035706 -6.7086487 6.708664 -6.7086487l0 0c1.7792358 0 3.485611 0.7068176 4.7437286 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.7437134l0 0c0 3.7051086 -3.0035706 6.708679 -6.7086487 6.708679l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.708679z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m239.37088 452.20734l0 0c0 -3.7050781 3.0035706 -6.7086487 6.708664 -6.7086487l0 0c1.7792358 0 3.485611 0.7068176 4.7437286 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.7437134l0 0c0 3.7051086 -3.0035706 6.708679 -6.7086487 6.708679l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.708679z" fill-rule="evenodd"/><path fill="#ff9900" d="m33.134914 494.3622l9.448818 0l0 9.637787l-9.448818 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m33.134914 494.3622l9.448818 0l0 9.637787l-9.448818 0z" fill-rule="evenodd"/><path fill="#fce5cd" d="m178.58372 504.09073l-9.889755 0l0 -9.8897705l9.889755 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m178.58372 504.09073l-9.889755 0l0 -9.8897705l9.889755 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m248.72652 412.6509l207.96852 0l0 25.448822l-207.96852 0z" fill-rule="evenodd"/><path fill="#000000" d="m262.42966 427.3153l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm4.4492188 0.671875l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9023438 2.46875l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm4.2109375 -0.625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm0.69140625 -4.296875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.9492188 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm4.4804688 -0.515625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm8.457031 2.46875l0 -5.734375l2.15625 0q0.5625 0 0.875 0.0625q0.421875 0.0625 0.703125 0.265625q0.28125 0.203125 0.453125 0.5625q0.171875 0.34375 0.171875 0.765625q0 0.734375 -0.46875 1.25q-0.453125 0.5 -1.671875 0.5l-1.46875 0l0 2.328125l-0.75 0zm0.75 -3.0l1.484375 0q0.734375 0 1.03125 -0.265625q0.3125 -0.28125 0.3125 -0.78125q0 -0.359375 -0.1875 -0.609375q-0.171875 -0.265625 -0.46875 -0.34375q-0.1875 -0.046875 -0.703125 -0.046875l-1.46875 0l0 2.046875zm7.3359375 1.65625l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1367188 0l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm3.9804688 -2.84375l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7773438 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.3242188 0.34375l0.671875 0.109375q0.046875 0.3125 0.25 0.453125q0.25 0.203125 0.703125 0.203125q0.5 0 0.765625 -0.203125q0.265625 -0.1875 0.359375 -0.546875q0.046875 -0.21875 0.046875 -0.90625q-0.46875 0.546875 -1.15625 0.546875q-0.84375 0 -1.3125 -0.609375q-0.46875 -0.625 -0.46875 -1.484375q0 -0.59375 0.203125 -1.09375q0.21875 -0.515625 0.625 -0.78125q0.40625 -0.28125 0.96875 -0.28125q0.734375 0 1.203125 0.59375l0 -0.5l0.65625 0l0 3.59375q0 0.96875 -0.203125 1.375q-0.203125 0.40625 -0.625 0.640625q-0.421875 0.234375 -1.046875 0.234375q-0.75 0 -1.203125 -0.34375q-0.453125 -0.328125 -0.4375 -1.0zm0.578125 -2.5q0 0.828125 0.3125 1.203125q0.328125 0.375 0.828125 0.375q0.484375 0 0.8125 -0.375q0.328125 -0.375 0.328125 -1.171875q0 -0.765625 -0.34375 -1.140625q-0.34375 -0.390625 -0.8125 -0.390625q-0.46875 0 -0.796875 0.375q-0.328125 0.375 -0.328125 1.125zm6.046875 0.3125l0.71875 -0.0625q0.046875 0.4375 0.234375 0.71875q0.1875 0.265625 0.578125 0.4375q0.390625 0.171875 0.875 0.171875q0.4375 0 0.765625 -0.125q0.328125 -0.140625 0.484375 -0.359375q0.171875 -0.234375 0.171875 -0.5q0 -0.265625 -0.15625 -0.46875q-0.15625 -0.203125 -0.515625 -0.328125q-0.234375 -0.09375 -1.03125 -0.28125q-0.78125 -0.1875 -1.09375 -0.359375q-0.40625 -0.21875 -0.609375 -0.53125q-0.203125 -0.328125 -0.203125 -0.71875q0 -0.4375 0.25 -0.8125q0.25 -0.375 0.71875 -0.5625q0.46875 -0.203125 1.046875 -0.203125q0.640625 0 1.125 0.203125q0.484375 0.203125 0.75 0.609375q0.265625 0.390625 0.28125 0.90625l-0.734375 0.046875q-0.046875 -0.546875 -0.390625 -0.8125q-0.34375 -0.28125 -1.0 -0.28125q-0.6875 0 -1.0 0.25q-0.3125 0.25 -0.3125 0.609375q0 0.3125 0.21875 0.5q0.21875 0.203125 1.140625 0.421875q0.921875 0.203125 1.265625 0.359375q0.5 0.234375 0.734375 0.59375q0.25 0.34375 0.25 0.796875q0 0.46875 -0.265625 0.875q-0.265625 0.390625 -0.75 0.625q-0.484375 0.21875 -1.109375 0.21875q-0.765625 0 -1.296875 -0.21875q-0.53125 -0.234375 -0.828125 -0.6875q-0.296875 -0.453125 -0.3125 -1.03125zm5.5078125 3.4375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm6.6523438 0.703125l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1367188 0l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.6835938 1.5625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.234375 2.46875l0 -5.734375l2.15625 0q0.5625 0 0.875 0.0625q0.421875 0.0625 0.703125 0.265625q0.28125 0.203125 0.453125 0.5625q0.171875 0.34375 0.171875 0.765625q0 0.734375 -0.46875 1.25q-0.453125 0.5 -1.671875 0.5l-1.46875 0l0 2.328125l-0.75 0zm0.75 -3.0l1.484375 0q0.734375 0 1.03125 -0.265625q0.3125 -0.28125 0.3125 -0.78125q0 -0.359375 -0.1875 -0.609375q-0.171875 -0.265625 -0.46875 -0.34375q-0.1875 -0.046875 -0.703125 -0.046875l-1.46875 0l0 2.046875zm7.1953125 2.484375q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm1.7773438 3.671875l-0.078125 -0.65625q0.234375 0.0625 0.40625 0.0625q0.234375 0 0.375 -0.078125q0.140625 -0.078125 0.21875 -0.21875q0.078125 -0.109375 0.21875 -0.515625q0.015625 -0.0625 0.0625 -0.171875l-1.578125 -4.171875l0.765625 0l0.859375 2.40625q0.171875 0.453125 0.296875 0.96875q0.125 -0.484375 0.296875 -0.953125l0.890625 -2.421875l0.703125 0l-1.578125 4.234375q-0.265625 0.671875 -0.40625 0.9375q-0.1875 0.34375 -0.4375 0.5q-0.234375 0.171875 -0.5625 0.171875q-0.203125 0 -0.453125 -0.09375zm4.03125 -1.59375l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm5.9804688 -0.625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm6.7578125 -5.109375l0.765625 0l0 3.3125q0 0.859375 -0.203125 1.375q-0.1875 0.5 -0.703125 0.828125q-0.515625 0.3125 -1.34375 0.3125q-0.796875 0 -1.3125 -0.265625q-0.515625 -0.28125 -0.734375 -0.8125q-0.21875 -0.53125 -0.21875 -1.4375l0 -3.3125l0.765625 0l0 3.3125q0 0.75 0.140625 1.109375q0.140625 0.34375 0.46875 0.53125q0.34375 0.1875 0.828125 0.1875q0.84375 0 1.1875 -0.375q0.359375 -0.375 0.359375 -1.453125l0 -3.3125zm3.4804688 5.734375l0 -5.046875l-1.890625 0l0 -0.6875l4.546875 0l0 0.6875l-1.90625 0l0 5.046875l-0.75 0zm2.8398438 0l2.21875 -2.984375l-1.953125 -2.75l0.90625 0l1.03125 1.46875q0.328125 0.46875 0.46875 0.703125q0.1875 -0.3125 0.453125 -0.640625l1.15625 -1.53125l0.8125 0l-2.0 2.703125l2.15625 3.03125l-0.9375 0l-1.4375 -2.046875q-0.125 -0.171875 -0.25 -0.375q-0.1875 0.3125 -0.265625 0.421875l-1.4375 2.0l-0.921875 0zm5.6953125 -2.796875q0 -1.421875 0.765625 -2.21875q0.765625 -0.8125 1.96875 -0.8125q0.796875 0 1.4375 0.375q0.640625 0.375 0.96875 1.0625q0.328125 0.671875 0.328125 1.53125q0 0.875 -0.359375 1.5625q-0.34375 0.6875 -0.984375 1.046875q-0.640625 0.34375 -1.390625 0.34375q-0.8125 0 -1.453125 -0.390625q-0.625 -0.390625 -0.953125 -1.0625q-0.328125 -0.671875 -0.328125 -1.4375zm0.78125 0.015625q0 1.03125 0.546875 1.640625q0.5625 0.59375 1.40625 0.59375q0.859375 0 1.40625 -0.59375q0.546875 -0.609375 0.546875 -1.71875q0 -0.703125 -0.234375 -1.21875q-0.234375 -0.53125 -0.6875 -0.8125q-0.453125 -0.28125 -1.015625 -0.28125q-0.8125 0 -1.390625 0.546875q-0.578125 0.546875 -0.578125 1.84375z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m248.72652 436.6509l268.53546 0l0 25.448822l-268.53546 0z" fill-rule="evenodd"/><path fill="#000000" d="m262.42966 451.3153l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm4.4492188 0.671875l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9023438 2.46875l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm4.2109375 -0.625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm0.69140625 -4.296875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.9492188 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm4.4804688 -0.515625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.234375 2.46875l0 -5.734375l2.15625 0q0.5625 0 0.875 0.0625q0.421875 0.0625 0.703125 0.265625q0.28125 0.203125 0.453125 0.5625q0.171875 0.34375 0.171875 0.765625q0 0.734375 -0.46875 1.25q-0.453125 0.5 -1.671875 0.5l-1.46875 0l0 2.328125l-0.75 0zm0.75 -3.0l1.484375 0q0.734375 0 1.03125 -0.265625q0.3125 -0.28125 0.3125 -0.78125q0 -0.359375 -0.1875 -0.609375q-0.171875 -0.265625 -0.46875 -0.34375q-0.1875 -0.046875 -0.703125 -0.046875l-1.46875 0l0 2.046875zm7.3359375 1.65625l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1367188 0l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm3.9804688 -2.84375l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7773438 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.3242188 0.34375l0.671875 0.109375q0.046875 0.3125 0.25 0.453125q0.25 0.203125 0.703125 0.203125q0.5 0 0.765625 -0.203125q0.265625 -0.1875 0.359375 -0.546875q0.046875 -0.21875 0.046875 -0.90625q-0.46875 0.546875 -1.15625 0.546875q-0.84375 0 -1.3125 -0.609375q-0.46875 -0.625 -0.46875 -1.484375q0 -0.59375 0.203125 -1.09375q0.21875 -0.515625 0.625 -0.78125q0.40625 -0.28125 0.96875 -0.28125q0.734375 0 1.203125 0.59375l0 -0.5l0.65625 0l0 3.59375q0 0.96875 -0.203125 1.375q-0.203125 0.40625 -0.625 0.640625q-0.421875 0.234375 -1.046875 0.234375q-0.75 0 -1.203125 -0.34375q-0.453125 -0.328125 -0.4375 -1.0zm0.578125 -2.5q0 0.828125 0.3125 1.203125q0.328125 0.375 0.828125 0.375q0.484375 0 0.8125 -0.375q0.328125 -0.375 0.328125 -1.171875q0 -0.765625 -0.34375 -1.140625q-0.34375 -0.390625 -0.8125 -0.390625q-0.46875 0 -0.796875 0.375q-0.328125 0.375 -0.328125 1.125zm6.046875 0.3125l0.71875 -0.0625q0.046875 0.4375 0.234375 0.71875q0.1875 0.265625 0.578125 0.4375q0.390625 0.171875 0.875 0.171875q0.4375 0 0.765625 -0.125q0.328125 -0.140625 0.484375 -0.359375q0.171875 -0.234375 0.171875 -0.5q0 -0.265625 -0.15625 -0.46875q-0.15625 -0.203125 -0.515625 -0.328125q-0.234375 -0.09375 -1.03125 -0.28125q-0.78125 -0.1875 -1.09375 -0.359375q-0.40625 -0.21875 -0.609375 -0.53125q-0.203125 -0.328125 -0.203125 -0.71875q0 -0.4375 0.25 -0.8125q0.25 -0.375 0.71875 -0.5625q0.46875 -0.203125 1.046875 -0.203125q0.640625 0 1.125 0.203125q0.484375 0.203125 0.75 0.609375q0.265625 0.390625 0.28125 0.90625l-0.734375 0.046875q-0.046875 -0.546875 -0.390625 -0.8125q-0.34375 -0.28125 -1.0 -0.28125q-0.6875 0 -1.0 0.25q-0.3125 0.25 -0.3125 0.609375q0 0.3125 0.21875 0.5q0.21875 0.203125 1.140625 0.421875q0.921875 0.203125 1.265625 0.359375q0.5 0.234375 0.734375 0.59375q0.25 0.34375 0.25 0.796875q0 0.46875 -0.265625 0.875q-0.265625 0.390625 -0.75 0.625q-0.484375 0.21875 -1.109375 0.21875q-0.765625 0 -1.296875 -0.21875q-0.53125 -0.234375 -0.828125 -0.6875q-0.296875 -0.453125 -0.3125 -1.03125zm5.5078125 3.4375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm6.6523438 0.703125l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1367188 0l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.6835938 1.5625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm10.3125 0.453125l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm1.6054688 2.015625l0 -5.734375l0.703125 0l0 2.0625q0.484375 -0.578125 1.234375 -0.578125q0.46875 0 0.796875 0.1875q0.34375 0.1875 0.484375 0.515625q0.15625 0.3125 0.15625 0.921875l0 2.625l-0.703125 0l0 -2.625q0 -0.53125 -0.234375 -0.765625q-0.21875 -0.25 -0.640625 -0.25q-0.3125 0 -0.59375 0.171875q-0.265625 0.15625 -0.390625 0.4375q-0.109375 0.265625 -0.109375 0.765625l0 2.265625l-0.703125 0zm7.1523438 -0.515625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm1.8085938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.3242188 0.34375l0.671875 0.109375q0.046875 0.3125 0.25 0.453125q0.25 0.203125 0.703125 0.203125q0.5 0 0.765625 -0.203125q0.265625 -0.1875 0.359375 -0.546875q0.046875 -0.21875 0.046875 -0.90625q-0.46875 0.546875 -1.15625 0.546875q-0.84375 0 -1.3125 -0.609375q-0.46875 -0.625 -0.46875 -1.484375q0 -0.59375 0.203125 -1.09375q0.21875 -0.515625 0.625 -0.78125q0.40625 -0.28125 0.96875 -0.28125q0.734375 0 1.203125 0.59375l0 -0.5l0.65625 0l0 3.59375q0 0.96875 -0.203125 1.375q-0.203125 0.40625 -0.625 0.640625q-0.421875 0.234375 -1.046875 0.234375q-0.75 0 -1.203125 -0.34375q-0.453125 -0.328125 -0.4375 -1.0zm0.578125 -2.5q0 0.828125 0.3125 1.203125q0.328125 0.375 0.828125 0.375q0.484375 0 0.8125 -0.375q0.328125 -0.375 0.328125 -1.171875q0 -0.765625 -0.34375 -1.140625q-0.34375 -0.390625 -0.8125 -0.390625q-0.46875 0 -0.796875 0.375q-0.328125 0.375 -0.328125 1.125zm6.8398438 0.8125l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm9.984375 -3.265625l0.765625 0l0 3.3125q0 0.859375 -0.203125 1.375q-0.1875 0.5 -0.703125 0.828125q-0.515625 0.3125 -1.34375 0.3125q-0.796875 0 -1.3125 -0.265625q-0.515625 -0.28125 -0.734375 -0.8125q-0.21875 -0.53125 -0.21875 -1.4375l0 -3.3125l0.765625 0l0 3.3125q0 0.75 0.140625 1.109375q0.140625 0.34375 0.46875 0.53125q0.34375 0.1875 0.828125 0.1875q0.84375 0 1.1875 -0.375q0.359375 -0.375 0.359375 -1.453125l0 -3.3125zm3.4804688 5.734375l0 -5.046875l-1.890625 0l0 -0.6875l4.546875 0l0 0.6875l-1.90625 0l0 5.046875l-0.75 0zm2.8398438 0l2.21875 -2.984375l-1.953125 -2.75l0.90625 0l1.03125 1.46875q0.328125 0.46875 0.46875 0.703125q0.1875 -0.3125 0.453125 -0.640625l1.15625 -1.53125l0.8125 0l-2.0 2.703125l2.15625 3.03125l-0.9375 0l-1.4375 -2.046875q-0.125 -0.171875 -0.25 -0.375q-0.1875 0.3125 -0.265625 0.421875l-1.4375 2.0l-0.921875 0zm5.6953125 -2.796875q0 -1.421875 0.765625 -2.21875q0.765625 -0.8125 1.96875 -0.8125q0.796875 0 1.4375 0.375q0.640625 0.375 0.96875 1.0625q0.328125 0.671875 0.328125 1.53125q0 0.875 -0.359375 1.5625q-0.34375 0.6875 -0.984375 1.046875q-0.640625 0.34375 -1.390625 0.34375q-0.8125 0 -1.453125 -0.390625q-0.625 -0.390625 -0.953125 -1.0625q-0.328125 -0.671875 -0.328125 -1.4375zm0.78125 0.015625q0 1.03125 0.546875 1.640625q0.5625 0.59375 1.40625 0.59375q0.859375 0 1.40625 -0.59375q0.546875 -0.609375 0.546875 -1.71875q0 -0.703125 -0.234375 -1.21875q-0.234375 -0.53125 -0.6875 -0.8125q-0.453125 -0.28125 -1.015625 -0.28125q-0.8125 0 -1.390625 0.546875q-0.578125 0.546875 -0.578125 1.84375z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m40.72652 484.65073l140.44095 0l0 25.448822l-140.44095 0z" fill-rule="evenodd"/><path fill="#000000" d="m54.429646 499.3151l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm1.3398438 -0.0625q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.62109 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7617188 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm2.6796875 0l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.6054688 2.46875l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.265625 2.078125l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm3.71875 -1.71875l0 -0.703125l2.171875 0l0 0.703125l-2.171875 0zm3.0234375 1.71875l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0zm9.324219 0l0 -5.046875l-1.890625 0l0 -0.6875l4.546875 0l0 0.6875l-1.90625 0l0 5.046875l-0.75 0zm3.0273438 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm5.3828125 -0.515625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm1.8085938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.1679688 -1.234375l0.6875 -0.109375q0.0625 0.40625 0.328125 0.640625q0.265625 0.21875 0.75 0.21875q0.484375 0 0.71875 -0.1875q0.234375 -0.203125 0.234375 -0.46875q0 -0.25 -0.203125 -0.375q-0.140625 -0.09375 -0.71875 -0.25q-0.78125 -0.1875 -1.078125 -0.328125q-0.296875 -0.140625 -0.453125 -0.390625q-0.15625 -0.265625 -0.15625 -0.5625q0 -0.28125 0.125 -0.515625q0.140625 -0.234375 0.359375 -0.390625q0.15625 -0.125 0.4375 -0.203125q0.28125 -0.09375 0.609375 -0.09375q0.484375 0 0.859375 0.140625q0.375 0.140625 0.546875 0.390625q0.171875 0.234375 0.234375 0.640625l-0.6875 0.09375q-0.046875 -0.328125 -0.265625 -0.5q-0.21875 -0.1875 -0.640625 -0.1875q-0.484375 0 -0.6875 0.171875q-0.203125 0.15625 -0.203125 0.375q0 0.125 0.078125 0.234375q0.09375 0.125 0.28125 0.1875q0.09375 0.046875 0.609375 0.1875q0.75 0.203125 1.046875 0.328125q0.296875 0.125 0.453125 0.375q0.171875 0.234375 0.171875 0.59375q0 0.34375 -0.203125 0.65625q-0.203125 0.3125 -0.59375 0.484375q-0.375 0.171875 -0.875 0.171875q-0.796875 0 -1.234375 -0.328125q-0.421875 -0.34375 -0.53125 -1.0zm6.984375 0.71875q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm4.5117188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm2.828125 0.890625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm0.69140625 -4.296875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.5117188 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m175.69302 484.40192l140.44095 0l0 25.448822l-140.44095 0z" fill-rule="evenodd"/><path fill="#000000" d="m189.39615 499.06628l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm4.4492188 0.671875l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9023438 2.46875l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm4.2109375 -0.625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm0.69140625 -4.296875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.9492188 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm4.4804688 -0.515625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.265625 2.46875l0 -5.734375l3.859375 0l0 0.6875l-3.09375 0l0 1.765625l2.6875 0l0 0.671875l-2.6875 0l0 2.609375l-0.765625 0zm7.4804688 0l0 -0.609375q-0.484375 0.703125 -1.3125 0.703125q-0.375 0 -0.703125 -0.140625q-0.3125 -0.140625 -0.46875 -0.34375q-0.140625 -0.21875 -0.203125 -0.53125q-0.046875 -0.203125 -0.046875 -0.65625l0 -2.578125l0.703125 0l0 2.3125q0 0.546875 0.046875 0.734375q0.0625 0.28125 0.265625 0.4375q0.21875 0.15625 0.546875 0.15625q0.3125 0 0.578125 -0.15625q0.28125 -0.171875 0.390625 -0.4375q0.125 -0.28125 0.125 -0.8125l0 -2.234375l0.703125 0l0 4.15625l-0.625 0zm3.2617188 -0.625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm3.4101562 0.625l0 -0.609375q-0.484375 0.703125 -1.3125 0.703125q-0.375 0 -0.703125 -0.140625q-0.3125 -0.140625 -0.46875 -0.34375q-0.140625 -0.21875 -0.203125 -0.53125q-0.046875 -0.203125 -0.046875 -0.65625l0 -2.578125l0.703125 0l0 2.3125q0 0.546875 0.046875 0.734375q0.0625 0.28125 0.265625 0.4375q0.21875 0.15625 0.546875 0.15625q0.3125 0 0.578125 -0.15625q0.28125 -0.171875 0.390625 -0.4375q0.125 -0.28125 0.125 -0.8125l0 -2.234375l0.703125 0l0 4.15625l-0.625 0zm1.7148438 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm5.5234375 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm7.5429688 2.46875l0 -5.046875l-1.890625 0l0 -0.6875l4.546875 0l0 0.6875l-1.90625 0l0 5.046875l-0.75 0zm3.0273438 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm5.3828125 -0.515625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm1.8085938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.1679688 -1.234375l0.6875 -0.109375q0.0625 0.40625 0.328125 0.640625q0.265625 0.21875 0.75 0.21875q0.484375 0 0.71875 -0.1875q0.234375 -0.203125 0.234375 -0.46875q0 -0.25 -0.203125 -0.375q-0.140625 -0.09375 -0.71875 -0.25q-0.78125 -0.1875 -1.078125 -0.328125q-0.296875 -0.140625 -0.453125 -0.390625q-0.15625 -0.265625 -0.15625 -0.5625q0 -0.28125 0.125 -0.515625q0.140625 -0.234375 0.359375 -0.390625q0.15625 -0.125 0.4375 -0.203125q0.28125 -0.09375 0.609375 -0.09375q0.484375 0 0.859375 0.140625q0.375 0.140625 0.546875 0.390625q0.171875 0.234375 0.234375 0.640625l-0.6875 0.09375q-0.046875 -0.328125 -0.265625 -0.5q-0.21875 -0.1875 -0.640625 -0.1875q-0.484375 0 -0.6875 0.171875q-0.203125 0.15625 -0.203125 0.375q0 0.125 0.078125 0.234375q0.09375 0.125 0.28125 0.1875q0.09375 0.046875 0.609375 0.1875q0.75 0.203125 1.046875 0.328125q0.296875 0.125 0.453125 0.375q0.171875 0.234375 0.171875 0.59375q0 0.34375 -0.203125 0.65625q-0.203125 0.3125 -0.59375 0.484375q-0.375 0.171875 -0.875 0.171875q-0.796875 0 -1.234375 -0.328125q-0.421875 -0.34375 -0.53125 -1.0zm6.984375 0.71875q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm4.5117188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm2.828125 0.890625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm0.69140625 -4.296875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.5117188 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m40.72652 436.91864l207.9685 0l0 25.448822l-207.9685 0z" fill-rule="evenodd"/><path fill="#000000" d="m54.429646 451.583l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm1.3398438 -0.0625q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.62109 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7617188 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm2.6796875 0l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.6054688 2.46875l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.265625 2.078125l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm3.71875 -1.71875l0 -0.703125l2.171875 0l0 0.703125l-2.171875 0zm3.0234375 1.71875l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0zm7.75 -1.84375l0.71875 -0.0625q0.046875 0.4375 0.234375 0.71875q0.1875 0.265625 0.578125 0.4375q0.390625 0.171875 0.875 0.171875q0.4375 0 0.765625 -0.125q0.328125 -0.140625 0.484375 -0.359375q0.171875 -0.234375 0.171875 -0.5q0 -0.265625 -0.15625 -0.46875q-0.15625 -0.203125 -0.515625 -0.328125q-0.234375 -0.09375 -1.03125 -0.28125q-0.78125 -0.1875 -1.09375 -0.359375q-0.40625 -0.21875 -0.609375 -0.53125q-0.203125 -0.328125 -0.203125 -0.71875q0 -0.4375 0.25 -0.8125q0.25 -0.375 0.71875 -0.5625q0.46875 -0.203125 1.046875 -0.203125q0.640625 0 1.125 0.203125q0.484375 0.203125 0.75 0.609375q0.265625 0.390625 0.28125 0.90625l-0.734375 0.046875q-0.046875 -0.546875 -0.390625 -0.8125q-0.34375 -0.28125 -1.0 -0.28125q-0.6875 0 -1.0 0.25q-0.3125 0.25 -0.3125 0.609375q0 0.3125 0.21875 0.5q0.21875 0.203125 1.140625 0.421875q0.921875 0.203125 1.265625 0.359375q0.5 0.234375 0.734375 0.59375q0.25 0.34375 0.25 0.796875q0 0.46875 -0.265625 0.875q-0.265625 0.390625 -0.75 0.625q-0.484375 0.21875 -1.109375 0.21875q-0.765625 0 -1.296875 -0.21875q-0.53125 -0.234375 -0.828125 -0.6875q-0.296875 -0.453125 -0.3125 -1.03125zm5.5078125 3.4375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm6.6523438 0.703125l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1367188 0l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.6835938 1.5625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm10.3125 0.453125l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm1.6054688 2.015625l0 -5.734375l0.703125 0l0 2.0625q0.484375 -0.578125 1.234375 -0.578125q0.46875 0 0.796875 0.1875q0.34375 0.1875 0.484375 0.515625q0.15625 0.3125 0.15625 0.921875l0 2.625l-0.703125 0l0 -2.625q0 -0.53125 -0.234375 -0.765625q-0.21875 -0.25 -0.640625 -0.25q-0.3125 0 -0.59375 0.171875q-0.265625 0.15625 -0.390625 0.4375q-0.109375 0.265625 -0.109375 0.765625l0 2.265625l-0.703125 0zm7.1523438 -0.515625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm1.8085938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.3242188 0.34375l0.671875 0.109375q0.046875 0.3125 0.25 0.453125q0.25 0.203125 0.703125 0.203125q0.5 0 0.765625 -0.203125q0.265625 -0.1875 0.359375 -0.546875q0.046875 -0.21875 0.046875 -0.90625q-0.46875 0.546875 -1.15625 0.546875q-0.84375 0 -1.3125 -0.609375q-0.46875 -0.625 -0.46875 -1.484375q0 -0.59375 0.203125 -1.09375q0.21875 -0.515625 0.625 -0.78125q0.40625 -0.28125 0.96875 -0.28125q0.734375 0 1.203125 0.59375l0 -0.5l0.65625 0l0 3.59375q0 0.96875 -0.203125 1.375q-0.203125 0.40625 -0.625 0.640625q-0.421875 0.234375 -1.046875 0.234375q-0.75 0 -1.203125 -0.34375q-0.453125 -0.328125 -0.4375 -1.0zm0.578125 -2.5q0 0.828125 0.3125 1.203125q0.328125 0.375 0.828125 0.375q0.484375 0 0.8125 -0.375q0.328125 -0.375 0.328125 -1.171875q0 -0.765625 -0.34375 -1.140625q-0.34375 -0.390625 -0.8125 -0.390625q-0.46875 0 -0.796875 0.375q-0.328125 0.375 -0.328125 1.125zm6.8398438 0.8125l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm9.984375 -3.265625l0.765625 0l0 3.3125q0 0.859375 -0.203125 1.375q-0.1875 0.5 -0.703125 0.828125q-0.515625 0.3125 -1.34375 0.3125q-0.796875 0 -1.3125 -0.265625q-0.515625 -0.28125 -0.734375 -0.8125q-0.21875 -0.53125 -0.21875 -1.4375l0 -3.3125l0.765625 0l0 3.3125q0 0.75 0.140625 1.109375q0.140625 0.34375 0.46875 0.53125q0.34375 0.1875 0.828125 0.1875q0.84375 0 1.1875 -0.375q0.359375 -0.375 0.359375 -1.453125l0 -3.3125zm3.4804688 5.734375l0 -5.046875l-1.890625 0l0 -0.6875l4.546875 0l0 0.6875l-1.90625 0l0 5.046875l-0.75 0zm2.8398438 0l2.21875 -2.984375l-1.953125 -2.75l0.90625 0l1.03125 1.46875q0.328125 0.46875 0.46875 0.703125q0.1875 -0.3125 0.453125 -0.640625l1.15625 -1.53125l0.8125 0l-2.0 2.703125l2.15625 3.03125l-0.9375 0l-1.4375 -2.046875q-0.125 -0.171875 -0.25 -0.375q-0.1875 0.3125 -0.265625 0.421875l-1.4375 2.0l-0.921875 0zm5.6953125 -2.796875q0 -1.421875 0.765625 -2.21875q0.765625 -0.8125 1.96875 -0.8125q0.796875 0 1.4375 0.375q0.640625 0.375 0.96875 1.0625q0.328125 0.671875 0.328125 1.53125q0 0.875 -0.359375 1.5625q-0.34375 0.6875 -0.984375 1.046875q-0.640625 0.34375 -1.390625 0.34375q-0.8125 0 -1.453125 -0.390625q-0.625 -0.390625 -0.953125 -1.0625q-0.328125 -0.671875 -0.328125 -1.4375zm0.78125 0.015625q0 1.03125 0.546875 1.640625q0.5625 0.59375 1.40625 0.59375q0.859375 0 1.40625 -0.59375q0.546875 -0.609375 0.546875 -1.71875q0 -0.703125 -0.234375 -1.21875q-0.234375 -0.53125 -0.6875 -0.8125q-0.453125 -0.28125 -1.015625 -0.28125q-0.8125 0 -1.390625 0.546875q-0.578125 0.546875 -0.578125 1.84375z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m40.72652 412.91864l207.9685 0l0 25.448822l-207.9685 0z" fill-rule="evenodd"/><path fill="#000000" d="m54.429646 427.583l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm1.3398438 -0.0625q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.62109 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7617188 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm2.6796875 0l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.6054688 2.46875l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.265625 2.078125l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm3.71875 -1.71875l0 -0.703125l2.171875 0l0 0.703125l-2.171875 0zm3.0234375 1.71875l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0zm7.75 -1.84375l0.71875 -0.0625q0.046875 0.4375 0.234375 0.71875q0.1875 0.265625 0.578125 0.4375q0.390625 0.171875 0.875 0.171875q0.4375 0 0.765625 -0.125q0.328125 -0.140625 0.484375 -0.359375q0.171875 -0.234375 0.171875 -0.5q0 -0.265625 -0.15625 -0.46875q-0.15625 -0.203125 -0.515625 -0.328125q-0.234375 -0.09375 -1.03125 -0.28125q-0.78125 -0.1875 -1.09375 -0.359375q-0.40625 -0.21875 -0.609375 -0.53125q-0.203125 -0.328125 -0.203125 -0.71875q0 -0.4375 0.25 -0.8125q0.25 -0.375 0.71875 -0.5625q0.46875 -0.203125 1.046875 -0.203125q0.640625 0 1.125 0.203125q0.484375 0.203125 0.75 0.609375q0.265625 0.390625 0.28125 0.90625l-0.734375 0.046875q-0.046875 -0.546875 -0.390625 -0.8125q-0.34375 -0.28125 -1.0 -0.28125q-0.6875 0 -1.0 0.25q-0.3125 0.25 -0.3125 0.609375q0 0.3125 0.21875 0.5q0.21875 0.203125 1.140625 0.421875q0.921875 0.203125 1.265625 0.359375q0.5 0.234375 0.734375 0.59375q0.25 0.34375 0.25 0.796875q0 0.46875 -0.265625 0.875q-0.265625 0.390625 -0.75 0.625q-0.484375 0.21875 -1.109375 0.21875q-0.765625 0 -1.296875 -0.21875q-0.53125 -0.234375 -0.828125 -0.6875q-0.296875 -0.453125 -0.3125 -1.03125zm5.5078125 3.4375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm6.6523438 0.703125l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1367188 0l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.6835938 1.5625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.234375 2.46875l0 -5.734375l2.15625 0q0.5625 0 0.875 0.0625q0.421875 0.0625 0.703125 0.265625q0.28125 0.203125 0.453125 0.5625q0.171875 0.34375 0.171875 0.765625q0 0.734375 -0.46875 1.25q-0.453125 0.5 -1.671875 0.5l-1.46875 0l0 2.328125l-0.75 0zm0.75 -3.0l1.484375 0q0.734375 0 1.03125 -0.265625q0.3125 -0.28125 0.3125 -0.78125q0 -0.359375 -0.1875 -0.609375q-0.171875 -0.265625 -0.46875 -0.34375q-0.1875 -0.046875 -0.703125 -0.046875l-1.46875 0l0 2.046875zm7.1953125 2.484375q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm1.7773438 3.671875l-0.078125 -0.65625q0.234375 0.0625 0.40625 0.0625q0.234375 0 0.375 -0.078125q0.140625 -0.078125 0.21875 -0.21875q0.078125 -0.109375 0.21875 -0.515625q0.015625 -0.0625 0.0625 -0.171875l-1.578125 -4.171875l0.765625 0l0.859375 2.40625q0.171875 0.453125 0.296875 0.96875q0.125 -0.484375 0.296875 -0.953125l0.890625 -2.421875l0.703125 0l-1.578125 4.234375q-0.265625 0.671875 -0.40625 0.9375q-0.1875 0.34375 -0.4375 0.5q-0.234375 0.171875 -0.5625 0.171875q-0.203125 0 -0.453125 -0.09375zm4.03125 -1.59375l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm5.9804688 -0.625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm6.7578125 -5.109375l0.765625 0l0 3.3125q0 0.859375 -0.203125 1.375q-0.1875 0.5 -0.703125 0.828125q-0.515625 0.3125 -1.34375 0.3125q-0.796875 0 -1.3125 -0.265625q-0.515625 -0.28125 -0.734375 -0.8125q-0.21875 -0.53125 -0.21875 -1.4375l0 -3.3125l0.765625 0l0 3.3125q0 0.75 0.140625 1.109375q0.140625 0.34375 0.46875 0.53125q0.34375 0.1875 0.828125 0.1875q0.84375 0 1.1875 -0.375q0.359375 -0.375 0.359375 -1.453125l0 -3.3125zm3.4804688 5.734375l0 -5.046875l-1.890625 0l0 -0.6875l4.546875 0l0 0.6875l-1.90625 0l0 5.046875l-0.75 0zm2.8398438 0l2.21875 -2.984375l-1.953125 -2.75l0.90625 0l1.03125 1.46875q0.328125 0.46875 0.46875 0.703125q0.1875 -0.3125 0.453125 -0.640625l1.15625 -1.53125l0.8125 0l-2.0 2.703125l2.15625 3.03125l-0.9375 0l-1.4375 -2.046875q-0.125 -0.171875 -0.25 -0.375q-0.1875 0.3125 -0.265625 0.421875l-1.4375 2.0l-0.921875 0zm5.6953125 -2.796875q0 -1.421875 0.765625 -2.21875q0.765625 -0.8125 1.96875 -0.8125q0.796875 0 1.4375 0.375q0.640625 0.375 0.96875 1.0625q0.328125 0.671875 0.328125 1.53125q0 0.875 -0.359375 1.5625q-0.34375 0.6875 -0.984375 1.046875q-0.640625 0.34375 -1.390625 0.34375q-0.8125 0 -1.453125 -0.390625q-0.625 -0.390625 -0.953125 -1.0625q-0.328125 -0.671875 -0.328125 -1.4375zm0.78125 0.015625q0 1.03125 0.546875 1.640625q0.5625 0.59375 1.40625 0.59375q0.859375 0 1.40625 -0.59375q0.546875 -0.609375 0.546875 -1.71875q0 -0.703125 -0.234375 -1.21875q-0.234375 -0.53125 -0.6875 -0.8125q-0.453125 -0.28125 -1.015625 -0.28125q-0.8125 0 -1.390625 0.546875q-0.578125 0.546875 -0.578125 1.84375z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m40.72652 387.88516l140.44095 0l0 25.448822l-140.44095 0z" fill-rule="evenodd"/><path fill="#000000" d="m50.117146 401.76828q0 -1.421875 0.765625 -2.21875q0.765625 -0.8125 1.96875 -0.8125q0.796875 0 1.4375 0.375q0.640625 0.375 0.96875 1.0625q0.328125 0.671875 0.328125 1.53125q0 0.875 -0.359375 1.5625q-0.34375 0.6875 -0.984375 1.046875q-0.640625 0.34375 -1.390625 0.34375q-0.8125 0 -1.453125 -0.390625q-0.625 -0.390625 -0.953125 -1.0625q-0.328125 -0.671875 -0.328125 -1.4375zm0.78125 0.015625q0 1.03125 0.546875 1.640625q0.5625 0.59375 1.40625 0.59375q0.859375 0 1.40625 -0.59375q0.546875 -0.609375 0.546875 -1.71875q0 -0.703125 -0.234375 -1.21875q-0.234375 -0.53125 -0.6875 -0.8125q-0.453125 -0.28125 -1.015625 -0.28125q-0.8125 0 -1.390625 0.546875q-0.578125 0.546875 -0.578125 1.84375zm5.5664062 2.78125l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm2.6796875 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.6523438 0.34375l0.671875 0.109375q0.046875 0.3125 0.25 0.453125q0.25 0.203125 0.703125 0.203125q0.5 0 0.765625 -0.203125q0.265625 -0.1875 0.359375 -0.546875q0.046875 -0.21875 0.046875 -0.90625q-0.46875 0.546875 -1.15625 0.546875q-0.84375 0 -1.3125 -0.609375q-0.46875 -0.625 -0.46875 -1.484375q0 -0.59375 0.203125 -1.09375q0.21875 -0.515625 0.625 -0.78125q0.40625 -0.28125 0.96875 -0.28125q0.734375 0 1.203125 0.59375l0 -0.5l0.6562462 0l0 3.59375q0 0.96875 -0.203125 1.375q-0.20312119 0.40625 -0.6249962 0.640625q-0.421875 0.234375 -1.046875 0.234375q-0.75 0 -1.203125 -0.34375q-0.453125 -0.328125 -0.4375 -1.0zm0.578125 -2.5q0 0.828125 0.3125 1.203125q0.328125 0.375 0.828125 0.375q0.484375 0 0.8125 -0.375q0.328125 -0.375 0.328125 -1.171875q0 -0.765625 -0.34375 -1.140625q-0.34375 -0.390625 -0.8125 -0.390625q-0.46875 0 -0.796875 0.375q-0.328125 0.375 -0.328125 1.125zm3.99609 -2.765625l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7773438 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1523438 -0.515625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm1.7929688 2.078125l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.234375 0l0 -5.734375l0.75 0l0 5.734375l-0.75 0zm2.0039062 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.4492188 1.59375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm6.5273438 2.046875l0 -0.609375q-0.484375 0.703125 -1.3125 0.703125q-0.375 0 -0.703125 -0.140625q-0.3125 -0.140625 -0.46875 -0.34375q-0.140625 -0.21875 -0.203125 -0.53125q-0.046875 -0.203125 -0.046875 -0.65625l0 -2.578125l0.703125 0l0 2.3125q0 0.546875 0.046875 0.734375q0.0625 0.28125 0.265625 0.4375q0.21875 0.15625 0.546875 0.15625q0.3125 0 0.578125 -0.15625q0.28125 -0.171875 0.390625 -0.4375q0.125 -0.28125 0.125 -0.8125l0 -2.234375l0.703125 0l0 4.15625l-0.625 0zm3.2617188 -0.625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm6.7578125 -5.109375l0.765625 0l0 3.3125q0 0.859375 -0.203125 1.375q-0.1875 0.5 -0.703125 0.828125q-0.515625 0.3125 -1.34375 0.3125q-0.796875 0 -1.3125 -0.265625q-0.515625 -0.28125 -0.734375 -0.8125q-0.21875 -0.53125 -0.21875 -1.4375l0 -3.3125l0.765625 0l0 3.3125q0 0.75 0.140625 1.109375q0.140625 0.34375 0.46875 0.53125q0.34375 0.1875 0.828125 0.1875q0.84375 0 1.1875 -0.375q0.359375 -0.375 0.359375 -1.453125l0 -3.3125zm3.4804688 5.734375l0 -5.046875l-1.890625 0l0 -0.6875l4.546875 0l0 0.6875l-1.90625 0l0 5.046875l-0.75 0zm2.8398438 0l2.21875 -2.984375l-1.953125 -2.75l0.90625 0l1.03125 1.46875q0.328125 0.46875 0.46875 0.703125q0.1875 -0.3125 0.453125 -0.640625l1.15625 -1.53125l0.8125 0l-2.0 2.703125l2.15625 3.03125l-0.9375 0l-1.4375 -2.046875q-0.125 -0.171875 -0.25 -0.375q-0.1875 0.3125 -0.265625 0.421875l-1.4375 2.0l-0.921875 0zm5.6953125 -2.796875q0 -1.421875 0.765625 -2.21875q0.765625 -0.8125 1.96875 -0.8125q0.796875 0 1.4375 0.375q0.640625 0.375 0.96875 1.0625q0.328125 0.671875 0.328125 1.53125q0 0.875 -0.359375 1.5625q-0.34375 0.6875 -0.984375 1.046875q-0.640625 0.34375 -1.390625 0.34375q-0.8125 0 -1.453125 -0.390625q-0.625 -0.390625 -0.953125 -1.0625q-0.328125 -0.671875 -0.328125 -1.4375zm0.78125 0.015625q0 1.03125 0.546875 1.640625q0.5625 0.59375 1.40625 0.59375q0.859375 0 1.40625 -0.59375q0.546875 -0.609375 0.546875 -1.71875q0 -0.703125 -0.234375 -1.21875q-0.234375 -0.53125 -0.6875 -0.8125q-0.453125 -0.28125 -1.015625 -0.28125q-0.8125 0 -1.390625 0.546875q-0.578125 0.546875 -0.578125 1.84375z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m248.72763 460.6509l207.9685 0l0 25.448822l-207.9685 0z" fill-rule="evenodd"/><path fill="#000000" d="m262.43076 475.3153l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm4.4492188 0.671875l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9023438 2.46875l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm4.2109375 -0.625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm0.69140625 -4.296875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.9492188 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm4.4804688 -0.515625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.234375 2.46875l0 -5.734375l2.15625 0q0.5625 0 0.875 0.0625q0.421875 0.0625 0.703125 0.265625q0.28125 0.203125 0.453125 0.5625q0.171875 0.34375 0.171875 0.765625q0 0.734375 -0.46875 1.25q-0.453125 0.5 -1.671875 0.5l-1.46875 0l0 2.328125l-0.75 0zm0.75 -3.0l1.484375 0q0.734375 0 1.03125 -0.265625q0.3125 -0.28125 0.3125 -0.78125q0 -0.359375 -0.1875 -0.609375q-0.171875 -0.265625 -0.46875 -0.34375q-0.1875 -0.046875 -0.703125 -0.046875l-1.46875 0l0 2.046875zm7.3359375 1.65625l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1367188 0l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm3.9804688 -2.84375l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7773438 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.3242188 0.34375l0.671875 0.109375q0.046875 0.3125 0.25 0.453125q0.25 0.203125 0.703125 0.203125q0.5 0 0.765625 -0.203125q0.265625 -0.1875 0.359375 -0.546875q0.046875 -0.21875 0.046875 -0.90625q-0.46875 0.546875 -1.15625 0.546875q-0.84375 0 -1.3125 -0.609375q-0.46875 -0.625 -0.46875 -1.484375q0 -0.59375 0.203125 -1.09375q0.21875 -0.515625 0.625 -0.78125q0.40625 -0.28125 0.96875 -0.28125q0.734375 0 1.203125 0.59375l0 -0.5l0.65625 0l0 3.59375q0 0.96875 -0.203125 1.375q-0.203125 0.40625 -0.625 0.640625q-0.421875 0.234375 -1.046875 0.234375q-0.75 0 -1.203125 -0.34375q-0.453125 -0.328125 -0.4375 -1.0zm0.578125 -2.5q0 0.828125 0.3125 1.203125q0.328125 0.375 0.828125 0.375q0.484375 0 0.8125 -0.375q0.328125 -0.375 0.328125 -1.171875q0 -0.765625 -0.34375 -1.140625q-0.34375 -0.390625 -0.8125 -0.390625q-0.46875 0 -0.796875 0.375q-0.328125 0.375 -0.328125 1.125zm6.4375 2.15625l0 -5.734375l0.75 0l0 5.734375l-0.75 0zm2.0039062 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm5.9804688 -0.625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm3.5351562 -0.71875l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9023438 2.46875l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm2.6796875 0l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.6054688 2.46875l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm3.9804688 -2.84375l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm4.4804688 -0.515625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm3.3398438 1.453125l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm3.5351562 -0.71875l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.25 2.46875l0 -5.734375l4.140625 0l0 0.6875l-3.390625 0l0 1.75l3.171875 0l0 0.671875l-3.171875 0l0 1.953125l3.515625 0l0 0.671875l-4.265625 0zm4.7578125 0l1.515625 -2.15625l-1.40625 -2.0l0.875 0l0.640625 0.984375q0.1875 0.265625 0.296875 0.453125q0.171875 -0.25 0.3125 -0.453125l0.703125 -0.984375l0.828125 0l-1.421875 1.953125l1.53125 2.203125l-0.859375 0l-0.84375 -1.296875l-0.234375 -0.34375l-1.09375 1.640625l-0.84375 0zm4.46875 1.59375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm6.5117188 1.53125q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm1.8085938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.1679688 -1.234375l0.6875 -0.109375q0.0625 0.40625 0.328125 0.640625q0.265625 0.21875 0.75 0.21875q0.484375 0 0.71875 -0.1875q0.234375 -0.203125 0.234375 -0.46875q0 -0.25 -0.203125 -0.375q-0.140625 -0.09375 -0.71875 -0.25q-0.78125 -0.1875 -1.078125 -0.328125q-0.296875 -0.140625 -0.453125 -0.390625q-0.15625 -0.265625 -0.15625 -0.5625q0 -0.28125 0.125 -0.515625q0.140625 -0.234375 0.359375 -0.390625q0.15625 -0.125 0.4375 -0.203125q0.28125 -0.09375 0.609375 -0.09375q0.484375 0 0.859375 0.140625q0.375 0.140625 0.546875 0.390625q0.171875 0.234375 0.234375 0.640625l-0.6875 0.09375q-0.046875 -0.328125 -0.265625 -0.5q-0.21875 -0.1875 -0.640625 -0.1875q-0.484375 0 -0.6875 0.171875q-0.203125 0.15625 -0.203125 0.375q0 0.125 0.078125 0.234375q0.09375 0.125 0.28125 0.1875q0.09375 0.046875 0.609375 0.1875q0.75 0.203125 1.046875 0.328125q0.296875 0.125 0.453125 0.375q0.171875 0.234375 0.171875 0.59375q0 0.34375 -0.203125 0.65625q-0.203125 0.3125 -0.59375 0.484375q-0.375 0.171875 -0.875 0.171875q-0.796875 0 -1.234375 -0.328125q-0.421875 -0.34375 -0.53125 -1.0zm4.28125 -3.6875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.5117188 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm10.515625 -5.734375l0.765625 0l0 3.3125q0 0.859375 -0.203125 1.375q-0.1875 0.5 -0.703125 0.828125q-0.515625 0.3125 -1.34375 0.3125q-0.796875 0 -1.3125 -0.265625q-0.515625 -0.28125 -0.734375 -0.8125q-0.21875 -0.53125 -0.21875 -1.4375l0 -3.3125l0.765625 0l0 3.3125q0 0.75 0.140625 1.109375q0.140625 0.34375 0.46875 0.53125q0.34375 0.1875 0.828125 0.1875q0.84375 0 1.1875 -0.375q0.359375 -0.375 0.359375 -1.453125l0 -3.3125zm3.4804688 5.734375l0 -5.046875l-1.890625 0l0 -0.6875l4.546875 0l0 0.6875l-1.90625 0l0 5.046875l-0.75 0zm2.8398438 0l2.21875 -2.984375l-1.953125 -2.75l0.90625 0l1.03125 1.46875q0.328125 0.46875 0.46875 0.703125q0.1875 -0.3125 0.453125 -0.640625l1.15625 -1.53125l0.8125 0l-2.0 2.703125l2.15625 3.03125l-0.9375 0l-1.4375 -2.046875q-0.125 -0.171875 -0.25 -0.375q-0.1875 0.3125 -0.265625 0.421875l-1.4375 2.0l-0.921875 0zm5.6953125 -2.796875q0 -1.421875 0.765625 -2.21875q0.765625 -0.8125 1.96875 -0.8125q0.796875 0 1.4375 0.375q0.640625 0.375 0.96875 1.0625q0.328125 0.671875 0.328125 1.53125q0 0.875 -0.359375 1.5625q-0.34375 0.6875 -0.984375 1.046875q-0.640625 0.34375 -1.390625 0.34375q-0.8125 0 -1.453125 -0.390625q-0.625 -0.390625 -0.953125 -1.0625q-0.328125 -0.671875 -0.328125 -1.4375zm0.78125 0.015625q0 1.03125 0.546875 1.640625q0.5625 0.59375 1.40625 0.59375q0.859375 0 1.40625 -0.59375q0.546875 -0.609375 0.546875 -1.71875q0 -0.703125 -0.234375 -1.21875q-0.234375 -0.53125 -0.6875 -0.8125q-0.453125 -0.28125 -1.015625 -0.28125q-0.8125 0 -1.390625 0.546875q-0.578125 0.546875 -0.578125 1.84375z" fill-rule="nonzero"/><path fill="#ffffff" d="m239.75014 475.44357l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792511 0 3.4856262 0.7068176 4.743744 1.9649353c1.2581177 1.2581177 1.96492 2.964508 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m239.75014 475.44357l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792511 0 3.4856262 0.7068176 4.743744 1.9649353c1.2581177 1.2581177 1.96492 2.964508 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m20.936869 357.7034l91.52756 0l0 41.57483l-91.52756 0z" fill-rule="evenodd"/><path fill="#000000" d="m31.296244 384.6234l0 -13.359375l1.7812481 0l0 11.78125l6.5625 0l0 1.578125l-8.343748 0zm16.875715 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm8.828842 6.5625l1.59375 0.234375q0.109375 0.75 0.5625 1.078125q0.609375 0.453125 1.671875 0.453125q1.140625 0 1.75 -0.453125q0.625 -0.453125 0.84375 -1.265625q0.125 -0.5 0.109375 -2.109375q-1.0625 1.265625 -2.671875 1.265625q-2.0 0 -3.09375 -1.4375q-1.09375 -1.4375 -1.09375 -3.453125q0 -1.390625 0.5 -2.5625q0.515625 -1.171875 1.453125 -1.796875q0.953125 -0.640625 2.25 -0.640625q1.703125 0 2.8125 1.375l0 -1.15625l1.515625 0l0 8.359375q0 2.265625 -0.46875 3.203125q-0.453125 0.9375 -1.453125 1.484375q-0.984375 0.546875 -2.453125 0.546875q-1.71875 0 -2.796875 -0.78125q-1.0625 -0.765625 -1.03125 -2.34375zm1.359375 -5.8125q0 1.90625 0.75 2.78125q0.765625 0.875 1.90625 0.875q1.125 0 1.890625 -0.859375q0.765625 -0.875 0.765625 -2.734375q0 -1.78125 -0.796875 -2.671875q-0.78125 -0.90625 -1.890625 -0.90625q-1.09375 0 -1.859375 0.890625q-0.765625 0.875 -0.765625 2.625zm15.953842 1.90625l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.141342 5.765625l0 -9.671875l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953125l-1.640625 0l0 -5.890625q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.28125l-1.640625 0zm16.641342 0l0 -1.21875q-0.90625 1.4375 -2.703125 1.4375q-1.15625 0 -2.125 -0.640625q-0.96875 -0.640625 -1.5 -1.78125q-0.53125 -1.140625 -0.53125 -2.625q0 -1.453125 0.484375 -2.625q0.484375 -1.1875 1.4375 -1.8125q0.96875 -0.625 2.171875 -0.625q0.875 0 1.546875 0.375q0.6875 0.359375 1.109375 0.953125l0 -4.796875l1.640625 0l0 13.359375l-1.53125 0zm-5.171875 -4.828125q0 1.859375 0.78125 2.78125q0.78125 0.921875 1.84375 0.921875q1.078125 0 1.828125 -0.875q0.75 -0.890625 0.75 -2.6875q0 -1.984375 -0.765625 -2.90625q-0.765625 -0.9375 -1.890625 -0.9375q-1.078125 0 -1.8125 0.890625q-0.734375 0.890625 -0.734375 2.8125z" fill-rule="nonzero"/><path fill="#ff9900" d="m68.28346 102.656166l30.299217 0l0 30.299217l-30.299217 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m68.28346 102.656166l30.299217 0l0 30.299217l-30.299217 0z" fill-rule="evenodd"/><path fill="#ff00ff" d="m76.577866 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792435 0 3.4856186 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.9649277 2.9644928 1.9649277 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m76.577866 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792435 0 3.4856186 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.9649277 2.9644928 1.9649277 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m83.43307 132.95538l-0.15747833 12.251968" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m83.43307 132.95538l-0.08036041 6.2524567" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m81.70111 139.18661l1.5932693 4.55896l1.7099228 -4.5164948z" fill-rule="evenodd"/><path fill="#ff9900" d="m116.28346 102.656166l30.29921 0l0 30.299217l-30.29921 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m116.28346 102.656166l30.29921 0l0 30.299217l-30.29921 0z" fill-rule="evenodd"/><path fill="#00ffff" d="m141.23402 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.485611 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m141.23402 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.485611 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m117.46457 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.7086563 -6.708664l0 0c1.7792511 0 3.4856262 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050934 -3.0035782 6.7086487 -6.7086716 6.7086487l0 0c-3.7050858 0 -6.7086563 -3.0035553 -6.7086563 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m117.46457 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.7086563 -6.708664l0 0c1.7792511 0 3.4856262 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050934 -3.0035782 6.7086487 -6.7086716 6.7086487l0 0c-3.7050858 0 -6.7086563 -3.0035553 -6.7086563 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m131.43307 132.95538l-7.244095 12.251968" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m131.43307 132.95538l-4.190384 7.0871887" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m125.82089 139.20193l-0.8878784 4.7470245l3.7314758 -3.0657196z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m131.43307 132.95538l16.503937 12.251968" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m131.43307 132.95538l11.68634 8.675537" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m142.13487 142.95715l4.6283264 1.3787994l-2.6592407 -4.03125z" fill-rule="evenodd"/><path fill="#ff9900" d="m164.37796 102.750656l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m164.37796 102.750656l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path fill="#00ffff" d="m189.23402 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.485611 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m189.23402 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.485611 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m165.46457 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792358 0 3.485611 0.70680237 4.7437286 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m165.46457 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792358 0 3.485611 0.70680237 4.7437286 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m179.43307 132.86089l-7.244095 12.346466" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m179.43307 132.86089l-4.2077484 7.1714783" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m173.8007 139.19649l-0.8719177 4.7499695l3.721161 -3.0782318z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m179.43307 132.86089l16.503937 12.346466" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m179.43307 132.86089l11.699539 8.752335" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m190.14319 142.93582l4.62323 1.395813l-2.6443787 -4.0410156z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m71.938324 86.62205c0 4.0085144 2.8740082 6.013092 5.748024 8.017029c2.8740158 2.0039368 5.7480316 4.0072327 5.7480316 8.014465" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m71.938324 86.62205c0 4.008522 2.8740082 6.013092 5.748024 8.017029c0.71850586 0.5009842 1.4370117 1.0019302 2.110611 1.5341492c0.33679962 0.2661209 0.6623688 0.5400467 0.97109985 0.82572174l0.19661713 0.1864624" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m79.45936 97.86529l3.3732758 3.4559402l-0.362648 -4.8157043z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m10.806641 50.997375l281.22833 0l0 22.456696l-281.22833 0z" fill-rule="evenodd"/><path fill="#000000" d="m134.62198 56.943l2.28125 0q0.6875 0 1.015625 0.0625q0.328125 0.0625 0.59375 0.25q0.265625 0.171875 0.4375 0.46875q0.1875 0.296875 0.1875 0.671875q0 0.390625 -0.21875 0.734375q-0.21875 0.328125 -0.59375 0.5q0.53125 0.15625 0.8125 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.1875 0.765625q-0.1875 0.359375 -0.5 0.578125q-0.3125 0.21875 -0.765625 0.265625q-0.296875 0.03125 -1.40625 0.046875l-1.9375 0l0 -5.734375zm1.15625 0.953125l0 1.328125l0.75 0q0.671875 0 0.84375 -0.015625q0.296875 -0.03125 0.46875 -0.203125q0.171875 -0.171875 0.171875 -0.453125q0 -0.265625 -0.15625 -0.421875q-0.140625 -0.171875 -0.4375 -0.203125q-0.171875 -0.03125 -0.984375 -0.03125l-0.65625 0zm0 2.28125l0 1.53125l1.0625 0q0.625 0 0.796875 -0.03125q0.25 -0.046875 0.40625 -0.21875q0.171875 -0.1875 0.171875 -0.5q0 -0.25 -0.125 -0.421875q-0.125 -0.1875 -0.359375 -0.265625q-0.234375 -0.09375 -1.03125 -0.09375l-0.921875 0zm4.6054688 2.5l0 -5.734375l1.09375 0l0 5.734375l-1.09375 0zm1.9726562 -2.140625q0 -0.546875 0.265625 -1.046875q0.265625 -0.515625 0.75 -0.78125q0.5 -0.28125 1.109375 -0.28125q0.953125 0 1.546875 0.625q0.609375 0.609375 0.609375 1.53125q0 0.953125 -0.609375 1.578125q-0.609375 0.609375 -1.53125 0.609375q-0.578125 0 -1.09375 -0.25q-0.515625 -0.265625 -0.78125 -0.765625q-0.265625 -0.5 -0.265625 -1.21875zm1.125 0.0625q0 0.625 0.28125 0.953125q0.296875 0.328125 0.734375 0.328125q0.421875 0 0.703125 -0.328125q0.296875 -0.328125 0.296875 -0.953125q0 -0.609375 -0.296875 -0.9375q-0.28125 -0.328125 -0.703125 -0.328125q-0.4375 0 -0.734375 0.328125q-0.28125 0.328125 -0.28125 0.9375zm7.6210938 -0.84375l-1.078125 0.1875q-0.046875 -0.3125 -0.25 -0.46875q-0.1875 -0.171875 -0.5 -0.171875q-0.40625 0 -0.65625 0.28125q-0.234375 0.28125 -0.234375 0.9375q0 0.75 0.234375 1.0625q0.25 0.296875 0.671875 0.296875q0.3125 0 0.515625 -0.171875q0.203125 -0.1875 0.28125 -0.625l1.078125 0.1875q-0.171875 0.734375 -0.65625 1.125q-0.46875 0.375 -1.265625 0.375q-0.90625 0 -1.453125 -0.578125q-0.546875 -0.578125 -0.546875 -1.59375q0 -1.015625 0.546875 -1.59375q0.546875 -0.578125 1.46875 -0.578125q0.765625 0 1.203125 0.328125q0.453125 0.328125 0.640625 1.0zm0.79296875 2.921875l0 -5.734375l1.109375 0l0 3.046875l1.28125 -1.46875l1.34375 0l-1.40625 1.515625l1.515625 2.640625l-1.1875 0l-1.046875 -1.859375l-0.5 0.53125l0 1.328125l-1.109375 0zm6.734375 0l0 -5.734375l1.125 0l2.34375 3.828125l0 -3.828125l1.078125 0l0 5.734375l-1.15625 0l-2.3125 -3.734375l0 3.734375l-1.078125 0z" fill-rule="nonzero"/><path fill="#999999" d="m33.134914 516.81195l9.448818 0l0 9.637817l-9.448818 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m33.134914 516.81195l9.448818 0l0 9.637817l-9.448818 0z" fill-rule="evenodd"/><path fill="#efefef" d="m115.10048 527.306l-9.889763 0l0 -9.8897705l9.889763 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m115.10048 527.306l-9.889763 0l0 -9.8897705l9.889763 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m40.72652 507.10046l140.44095 0l0 25.448853l-140.44095 0z" fill-rule="evenodd"/><path fill="#000000" d="m50.32027 523.78046l0 -5.734375l1.140625 0l1.359375 4.0625q0.1875 0.5625 0.265625 0.84375q0.109375 -0.3125 0.3125 -0.921875l1.375 -3.984375l1.015625 0l0 5.734375l-0.734375 0l0 -4.796875l-1.65625 4.796875l-0.6875 0l-1.65625 -4.875l0 4.875l-0.734375 0zm6.6015625 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7773438 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.292965 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.9062462 0 -1.4374962 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.4062462 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.0937462 0q0.046875 0.671875 0.3906212 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3124962 -1.125l2.3124962 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.3281212 0.328125 -0.3593712 0.875zm6.605465 2.46875l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.265625 2.078125l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m112.20977 507.61722l140.44095 0l0 25.448822l-140.44095 0z" fill-rule="evenodd"/><path fill="#000000" d="m121.86602 524.29724l0 -5.734375l3.859375 0l0 0.6875l-3.09375 0l0 1.765625l2.6875 0l0 0.671875l-2.6875 0l0 2.609375l-0.765625 0zm7.4804764 0l0 -0.609375q-0.484375 0.703125 -1.3125 0.703125q-0.37500763 0 -0.7031326 -0.140625q-0.3125 -0.140625 -0.46875 -0.34375q-0.140625 -0.21875 -0.203125 -0.53125q-0.046875 -0.203125 -0.046875 -0.65625l0 -2.578125l0.703125 0l0 2.3125q0 0.546875 0.046875 0.734375q0.0625 0.28125 0.265625 0.4375q0.21875 0.15625 0.5468826 0.15625q0.3125 0 0.578125 -0.15625q0.28125 -0.171875 0.390625 -0.4375q0.125 -0.28125 0.125 -0.8125l0 -2.234375l0.703125 0l0 4.15625l-0.625 0zm3.2617188 -0.625l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm3.4101562 0.625l0 -0.609375q-0.484375 0.703125 -1.3125 0.703125q-0.375 0 -0.703125 -0.140625q-0.3125 -0.140625 -0.46875 -0.34375q-0.140625 -0.21875 -0.203125 -0.53125q-0.046875 -0.203125 -0.046875 -0.65625l0 -2.578125l0.703125 0l0 2.3125q0 0.546875 0.046875 0.734375q0.0625 0.28125 0.265625 0.4375q0.21875 0.15625 0.546875 0.15625q0.3125 0 0.578125 -0.15625q0.28125 -0.171875 0.390625 -0.4375q0.125 -0.28125 0.125 -0.8125l0 -2.234375l0.703125 0l0 4.15625l-0.625 0zm1.7148438 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm5.5234375 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.203125 2.46875l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m4.5354333 361.45407l543.748 0" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m4.5354333 361.45407l543.748 0" fill-rule="evenodd"/><path fill="#ff9900" d="m20.283464 206.65617l30.299212 0l0 30.29921l-30.299212 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m20.283464 206.65617l30.299212 0l0 30.29921l-30.299212 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m31.593176 182.46982c0 6.046631 0.9606304 9.069656 1.9212589 12.093277c0.9606323 3.0236206 1.9212608 6.0478516 1.9212608 12.095703" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m31.593176 182.46982c0 6.046646 0.9606304 9.069656 1.9212589 12.093277c0.48031616 1.5118103 0.9606323 3.023758 1.3208656 4.9137726c0.0450325 0.23623657 0.08818436 0.47839355 0.12922668 0.72720337c0.020523071 0.12440491 0.0405159 0.2504425 0.059951782 0.37828064l0.013057709 0.089660645" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m33.389442 200.78163l1.9492416 4.4184875l1.3469429 -4.6377106z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m51.766403 182.46982c0 6.046631 7.9133873 9.069656 15.826775 12.093277c7.9133835 3.0236206 15.826767 6.0478516 15.826767 12.095703" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m51.766403 182.46982c0 6.046646 7.9133873 9.069656 15.826775 12.093277c3.956688 1.5118103 7.9133835 3.023758 10.880905 4.9137726c0.7418747 0.4724884 1.421936 0.9686127 2.0247116 1.494278c0.0753479 0.065704346 0.14949036 0.13186646 0.22238922 0.19851685l0.091171265 0.08538818" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m79.32476 201.9729l3.4598465 3.3692627l-0.48466492 -4.804962z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m92.47769 182.62204c0 6.008484 9.740158 9.013016 19.480316 12.0169525c9.740158 3.0039368 19.480316 6.0072784 19.480316 12.014557" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m92.47769 182.62204c0 6.0084686 9.740158 9.013031 19.480316 12.016968c4.870079 1.5019684 9.740158 3.0037842 13.392715 4.881012c0.91313934 0.46931458 1.7501831 0.9620819 2.4921036 1.4841766c0.18549347 0.13053894 0.36502838 0.26287842 0.5383072 0.39717102l0.06489563 0.051574707" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m127.01436 202.27669l3.6948853 3.109726l-0.8315582 -4.757202z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m113.01575 182.46982c0 6.0702515 16.606293 9.105087 33.2126 12.140518c16.606293 3.035431 33.2126 6.071472 33.2126 12.142944" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m113.01575 182.46982c0 6.0702515 16.606293 9.105087 33.2126 12.140518c8.303146 1.5177155 16.606293 3.0355835 22.833664 4.932953c1.556839 0.47434998 2.9839478 0.97239685 4.248871 1.5001221c0.63246155 0.26383972 1.2243805 0.53512573 1.7717133 0.8145294c0.13682556 0.06985474 0.27087402 0.14021301 0.4020691 0.21110535l0.12297058 0.06842041" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m174.33694 203.19273l4.1700134 2.4358978l-1.6286469 -4.5464325z" fill-rule="evenodd"/><path fill="#00ff00" d="m45.057743 175.76115l0 0c0 -3.7050934 3.0035706 -6.708664 6.70866 -6.708664l0 0c1.7792473 0 3.4856224 0.70680237 4.74374 1.96492c1.2581177 1.2581177 1.9649239 2.9644928 1.9649239 4.743744l0 0c0 3.7050934 -3.0035706 6.708664 -6.708664 6.708664l0 0c-3.7050896 0 -6.70866 -3.0035706 -6.70866 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m45.057743 175.76115l0 0c0 -3.7050934 3.0035706 -6.708664 6.70866 -6.708664l0 0c1.7792473 0 3.4856224 0.70680237 4.74374 1.96492c1.2581177 1.2581177 1.9649239 2.9644928 1.9649239 4.743744l0 0c0 3.7050934 -3.0035706 6.708664 -6.708664 6.708664l0 0c-3.7050896 0 -6.70866 -3.0035706 -6.70866 -6.708664z" fill-rule="evenodd"/><path fill="#00ff00" d="m24.884514 175.76115l0 0c0 -3.7050934 3.0035706 -6.708664 6.708662 -6.708664l0 0c1.7792492 0 3.4856205 0.70680237 4.743738 1.96492c1.2581215 1.2581177 1.9649239 2.9644928 1.9649239 4.743744l0 0c0 3.7050934 -3.0035706 6.708664 -6.708662 6.708664l0 0c-3.7050915 0 -6.708662 -3.0035706 -6.708662 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m24.884514 175.76115l0 0c0 -3.7050934 3.0035706 -6.708664 6.708662 -6.708664l0 0c1.7792492 0 3.4856205 0.70680237 4.743738 1.96492c1.2581215 1.2581177 1.9649239 2.9644928 1.9649239 4.743744l0 0c0 3.7050934 -3.0035706 6.708664 -6.708662 6.708664l0 0c-3.7050915 0 -6.708662 -3.0035706 -6.708662 -6.708664z" fill-rule="evenodd"/><path fill="#00ff00" d="m65.22966 175.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792435 0 3.4856186 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.7086563 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m65.22966 175.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792435 0 3.4856186 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.7086563 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#00ff00" d="m85.76903 175.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792435 0 3.4856186 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.003563 6.7086487 -6.7086563 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m85.76903 175.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792435 0 3.4856186 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.003563 6.7086487 -6.7086563 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#00ff00" d="m106.30708 175.76115l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.0035706 6.708664 -6.708664 6.708664l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m106.30708 175.76115l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.0035706 6.708664 -6.708664 6.708664l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.708664z" fill-rule="evenodd"/><path fill="#00ffff" d="m37.234024 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.70866 -6.708664l0 0c1.7792473 0 3.4856224 0.70680237 4.74374 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050781 -3.0035667 6.7086487 -6.70866 6.7086487l0 0c-3.7050896 0 -6.70866 -3.0035706 -6.70866 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m37.234024 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.70866 -6.708664l0 0c1.7792473 0 3.4856224 0.70680237 4.74374 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050781 -3.0035667 6.7086487 -6.70866 6.7086487l0 0c-3.7050896 0 -6.70866 -3.0035706 -6.70866 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m13.464567 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708662 -6.708664l0 0c1.7792473 0 3.4856205 0.70680237 4.743738 1.96492c1.2581196 1.2581177 1.964922 2.9644928 1.964922 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.70866 6.7086487l0 0c-3.7050915 0 -6.708662 -3.0035706 -6.708662 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m13.464567 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708662 -6.708664l0 0c1.7792473 0 3.4856205 0.70680237 4.743738 1.96492c1.2581196 1.2581177 1.964922 2.9644928 1.964922 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.70866 6.7086487l0 0c-3.7050915 0 -6.708662 -3.0035706 -6.708662 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m35.43307 236.95538l-15.244095 12.251968" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m35.43307 236.95538l-10.567377 8.49321" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m23.830946 244.16113l-2.5024853 4.1303864l4.5719776 -1.555481z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m35.43307 236.95538l8.503937 12.251968" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m35.43307 236.95538l5.0827484 7.3229065" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m39.15891 245.22012l3.9445267 2.786255l-1.2307053 -4.6698914z" fill-rule="evenodd"/><path fill="#ff9900" d="m68.28346 206.65617l30.299217 0l0 30.29921l-30.299217 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m68.28346 206.65617l30.299217 0l0 30.29921l-30.299217 0z" fill-rule="evenodd"/><path fill="#00ffff" d="m93.234024 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792435 0 3.4856186 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.7086563 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m93.234024 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792435 0 3.4856186 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.7086563 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m69.46457 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.7086563 -6.708664l0 0c1.7792511 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050858 0 -6.7086563 -3.0035706 -6.7086563 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m69.46457 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.7086563 -6.708664l0 0c1.7792511 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050858 0 -6.7086563 -3.0035706 -6.7086563 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m83.43307 236.95538l-7.244087 12.251968" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m83.43307 236.95538l-4.1903687 7.087204" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m77.82089 243.20193l-0.8878784 4.7470245l3.7314835 -3.0657196z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m83.43307 236.95538l16.503937 12.251968" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m83.43307 236.95538l11.686348 8.675537" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m94.134865 246.95715l4.628334 1.3787994l-2.6592407 -4.03125z" fill-rule="evenodd"/><path fill="#ff9900" d="m116.28346 206.65617l30.29921 0l0 30.29921l-30.29921 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m116.28346 206.65617l30.29921 0l0 30.29921l-30.29921 0z" fill-rule="evenodd"/><path fill="#00ffff" d="m141.23402 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.485611 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m141.23402 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.485611 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m117.46457 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.7086563 -6.708664l0 0c1.7792511 0 3.4856262 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050781 -3.0035782 6.7086487 -6.7086716 6.7086487l0 0c-3.7050858 0 -6.7086563 -3.0035706 -6.7086563 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m117.46457 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.7086563 -6.708664l0 0c1.7792511 0 3.4856262 0.70680237 4.7437363 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050781 -3.0035782 6.7086487 -6.7086716 6.7086487l0 0c-3.7050858 0 -6.7086563 -3.0035706 -6.7086563 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m131.43307 236.95538l-7.244095 12.251968" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m131.43307 236.95538l-4.190384 7.087204" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m125.82089 243.20193l-0.8878784 4.7470245l3.7314758 -3.0657196z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m131.43307 236.95538l16.503937 12.251968" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m131.43307 236.95538l11.68634 8.675537" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m142.13487 246.95715l4.6283264 1.3787994l-2.6592407 -4.03125z" fill-rule="evenodd"/><path fill="#ff9900" d="m164.37796 206.75066l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m164.37796 206.75066l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path fill="#00ffff" d="m189.23402 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.485611 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m189.23402 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.485611 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m165.46457 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792358 0 3.485611 0.70680237 4.7437286 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m165.46457 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792358 0 3.485611 0.70680237 4.7437286 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m179.43307 236.86089l-7.244095 12.346466" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m179.43307 236.86089l-4.2077484 7.1714783" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m173.8007 243.19649l-0.8719177 4.7499695l3.721161 -3.0782318z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m179.43307 236.86089l16.503937 12.346466" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m179.43307 236.86089l11.699539 8.75235" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m190.14319 246.93582l4.62323 1.395813l-2.6443787 -4.0410156z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m71.938324 182.62204c0 6.0157623 5.307083 9.023636 10.614166 12.031509c5.3070908 3.0078735 10.614174 6.015747 10.614174 12.031494" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m71.938324 182.62204c0 6.0157623 5.307083 9.023636 10.614166 12.031509c2.6535492 1.5039368 5.3070908 3.0078735 7.297249 4.887787c0.24877167 0.23498535 0.487175 0.47584534 0.7139206 0.72332764c0.11336517 0.12374878 0.22382355 0.24913025 0.33119965 0.37626648c0.05369568 0.063568115 0.10662079 0.12756348 0.15874481 0.1920166l0.14544678 0.18388367" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m89.638664 201.5585l3.0485916 3.7454834l0.07218933 -4.8288116z" fill-rule="evenodd"/><path fill="#ff9900" d="m20.283464 286.65616l30.299212 0l0 30.299225l-30.299212 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m20.283464 286.65616l30.299212 0l0 30.299225l-30.299212 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m43.942684 262.62204c0 6.008484 -2.1259842 9.013031 -4.2519684 12.016968c-2.1259842 3.0039368 -4.2519684 6.007263 -4.2519684 12.014526" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m43.942684 262.62204c0 6.008484 -2.1259842 9.013031 -4.2519684 12.016968c-1.0629921 1.5019531 -2.1259842 3.0037842 -2.9232292 4.881012c-0.09965515 0.23464966 -0.1951561 0.4751892 -0.28598785 0.72229004c-0.045417786 0.123565674 -0.08966446 0.2487793 -0.1326828 0.37573242l-0.03245163 0.10003662" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m34.682396 280.47647l0.9701843 4.730896l2.2977524 -4.2476807z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m104.686424 260.65714c0 6.9909363 -5.3149567 10.733826 -10.629921 13.981842c-5.3149643 3.2480469 -10.629921 6.0012207 -10.629921 12.002411" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m104.686424 260.65714c0 6.9909363 -5.3149643 10.733826 -10.629921 13.981842c-2.6574783 1.6240234 -5.3149643 3.1243286 -7.308075 4.9687805c-0.24913788 0.23052979 -0.48789215 0.46646118 -0.71497345 0.7087097c-0.11354065 0.12112427 -0.22415924 0.24380493 -0.33169556 0.36816406c-0.053771973 0.062194824 -0.10676575 0.12478638 -0.15898132 0.1878357l-0.09643555 0.11907959" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m83.89101 280.43555l0.027687073 4.829254l3.082985 -3.7172241z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m147.94269 262.62204c0 6.008484 -4.125992 9.013031 -8.251968 12.016968c-4.125992 3.0039368 -8.251968 6.007263 -8.251968 12.014526" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m147.94269 262.62204c0 6.008484 -4.125992 9.013031 -8.251968 12.016968c-2.0629883 1.5019531 -4.125992 3.0037842 -5.673233 4.881012c-0.19340515 0.23464966 -0.37875366 0.4751892 -0.55503845 0.72229004c-0.088134766 0.123565674 -0.17399597 0.2487793 -0.25749207 0.37573242c-0.041732788 0.06347656 -0.08287048 0.12738037 -0.123413086 0.19174194l-0.038345337 0.06225586" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m131.45163 280.43036l0.37805176 4.814514l2.8050995 -3.9311523z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m195.94269 262.62204c0 6.0321045 -4.125992 9.048462 -8.251968 12.064209c-4.125992 3.015747 -8.251968 6.030884 -8.251968 12.061768" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m195.94269 262.62204c0 6.0321045 -4.125992 9.048462 -8.251968 12.064209c-2.0629883 1.5078735 -4.125992 3.0155945 -5.673233 4.9002075c-0.19340515 0.23556519 -0.37875366 0.47705078 -0.55503845 0.7251282c-0.08811951 0.124053955 -0.17399597 0.24975586 -0.2574768 0.37719727c-0.041748047 0.06375122 -0.082901 0.12789917 -0.123428345 0.19250488l-0.050247192 0.0819397" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m179.4388 280.52484l0.38796997 4.8137207l2.796997 -3.9369202z" fill-rule="evenodd"/><path fill="#00ffff" d="m37.234024 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.70866 -6.708679l0 0c1.7792473 0 3.4856224 0.7068176 4.74374 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035667 6.7086487 -6.70866 6.7086487l0 0c-3.7050896 0 -6.70866 -3.0035706 -6.70866 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m37.234024 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.70866 -6.708679l0 0c1.7792473 0 3.4856224 0.7068176 4.74374 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035667 6.7086487 -6.70866 6.7086487l0 0c-3.7050896 0 -6.70866 -3.0035706 -6.70866 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m13.464567 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.708662 -6.708679l0 0c1.7792473 0 3.4856205 0.7068176 4.743738 1.9649353c1.2581196 1.2581177 1.964922 2.9644775 1.964922 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.70866 6.7086487l0 0c-3.7050915 0 -6.708662 -3.0035706 -6.708662 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m13.464567 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.708662 -6.708679l0 0c1.7792473 0 3.4856205 0.7068176 4.743738 1.9649353c1.2581196 1.2581177 1.964922 2.9644775 1.964922 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.70866 6.7086487l0 0c-3.7050915 0 -6.708662 -3.0035706 -6.708662 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m35.43307 316.95538l-15.244095 12.251953" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m35.43307 316.95538l-10.567377 8.493225" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m23.830946 324.16113l-2.5024853 4.1304016l4.5719776 -1.5555115z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m35.43307 316.95538l8.503937 12.251953" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m35.43307 316.95538l5.0827484 7.3229065" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m39.15891 325.22012l3.9445267 2.786255l-1.2307053 -4.6698914z" fill-rule="evenodd"/><path fill="#ff9900" d="m68.28346 286.65616l30.299217 0l0 30.299225l-30.299217 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m68.28346 286.65616l30.299217 0l0 30.299225l-30.299217 0z" fill-rule="evenodd"/><path fill="#ff00ff" d="m77.02122 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792435 0 3.4856186 0.7068176 4.7437363 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.7086563 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m77.02122 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792435 0 3.4856186 0.7068176 4.7437363 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.7086563 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m83.43307 316.95538l0.28347015 12.251953" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m83.43307 316.95538l0.14469147 6.2535706" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m81.92647 323.24716l1.7562561 4.4986877l1.546318 -4.5751038z" fill-rule="evenodd"/><path fill="#ff9900" d="m116.28346 286.65616l30.29921 0l0 30.299225l-30.29921 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m116.28346 286.65616l30.29921 0l0 30.299225l-30.29921 0z" fill-rule="evenodd"/><path fill="#00ffff" d="m141.23402 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792511 0 3.485611 0.7068176 4.743744 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m141.23402 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792511 0 3.485611 0.7068176 4.743744 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m117.46457 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.7086563 -6.708679l0 0c1.7792511 0 3.4856262 0.7068176 4.7437363 1.9649353c1.2581177 1.2581177 1.9649353 2.9644775 1.9649353 4.743744l0 0c0 3.7050781 -3.0035782 6.7086487 -6.7086716 6.7086487l0 0c-3.7050858 0 -6.7086563 -3.0035706 -6.7086563 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m117.46457 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.7086563 -6.708679l0 0c1.7792511 0 3.4856262 0.7068176 4.7437363 1.9649353c1.2581177 1.2581177 1.9649353 2.9644775 1.9649353 4.743744l0 0c0 3.7050781 -3.0035782 6.7086487 -6.7086716 6.7086487l0 0c-3.7050858 0 -6.7086563 -3.0035706 -6.7086563 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m131.43307 316.95538l-7.244095 12.251953" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m131.43307 316.95538l-4.190384 7.087219" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m125.82089 323.20193l-0.8878784 4.7470093l3.7314758 -3.0657043z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m131.43307 316.95538l16.503937 12.251953" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m131.43307 316.95538l11.68634 8.675537" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m142.13487 326.95715l4.6283264 1.3788147l-2.6592407 -4.0312805z" fill-rule="evenodd"/><path fill="#ff9900" d="m164.37796 286.75067l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m164.37796 286.75067l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path fill="#ff00ff" d="m173.02121 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792511 0 3.4856262 0.7068176 4.743744 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m173.02121 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792511 0 3.4856262 0.7068176 4.743744 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m179.43307 316.8609l0.28346252 12.346436" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m179.43307 316.8609l0.14575195 6.3480225" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m177.92752 323.24686l1.7554626 4.4989624l1.5471344 -4.5747986z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m316.83728 0.79790026l0 360.7244" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m316.83728 0.79790026l0 360.7244" fill-rule="evenodd"/><path fill="#ff9900" d="m212.37796 102.750656l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m212.37796 102.750656l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path fill="#00ffff" d="m237.23402 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.485611 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m237.23402 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.485611 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m213.46457 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792358 0 3.485611 0.70680237 4.7437286 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m213.46457 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792358 0 3.485611 0.70680237 4.7437286 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035553 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m227.43307 132.86089l-7.244095 12.346466" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m227.43307 132.86089l-4.2077484 7.1714783" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m221.8007 139.19649l-0.8719177 4.7499695l3.721161 -3.0782318z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m227.43307 132.86089l16.503937 12.346466" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m227.43307 132.86089l11.699539 8.752335" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m238.14319 142.93582l4.62323 1.395813l-2.6443787 -4.0410156z" fill-rule="evenodd"/><path fill="#ff9900" d="m212.37796 206.75066l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m212.37796 206.75066l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path fill="#00ffff" d="m237.23402 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.485611 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m237.23402 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792511 0 3.485611 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m213.46457 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792358 0 3.485611 0.70680237 4.7437286 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m213.46457 255.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792358 0 3.485611 0.70680237 4.7437286 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m227.43307 236.86089l-7.244095 12.346466" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m227.43307 236.86089l-4.2077484 7.1714783" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m221.8007 243.19649l-0.8719177 4.7499695l3.721161 -3.0782318z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m227.43307 236.86089l16.503937 12.346466" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m227.43307 236.86089l11.699539 8.75235" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m238.14319 246.93582l4.62323 1.395813l-2.6443787 -4.0410156z" fill-rule="evenodd"/><path fill="#ff9900" d="m212.37796 286.75067l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m212.37796 286.75067l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path fill="#00ffff" d="m237.23402 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792511 0 3.485611 0.7068176 4.743744 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m237.23402 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792511 0 3.485611 0.7068176 4.743744 1.9649353c1.2581177 1.2581177 1.96492 2.9644775 1.96492 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m213.46457 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792358 0 3.485611 0.7068176 4.7437286 1.9649353c1.2581177 1.2581177 1.9649353 2.9644775 1.9649353 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m213.46457 335.9134l0 0c0 -3.7051086 3.0035706 -6.708679 6.708664 -6.708679l0 0c1.7792358 0 3.485611 0.7068176 4.7437286 1.9649353c1.2581177 1.2581177 1.9649353 2.9644775 1.9649353 4.743744l0 0c0 3.7050781 -3.0035706 6.7086487 -6.708664 6.7086487l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m227.43307 316.8609l-7.244095 12.346436" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m227.43307 316.8609l-4.2077484 7.1714478" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m221.8007 323.19647l-0.8719177 4.75l3.721161 -3.078247z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m227.43307 316.8609l16.503937 12.346436" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m227.43307 316.8609l11.699539 8.752319" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m238.14319 326.93582l4.62323 1.395813l-2.6443787 -4.0410156z" fill-rule="evenodd"/><path fill="#00ff00" d="m128.97571 79.74831l0 0c0 -3.6963959 2.996521 -6.692917 6.692917 -6.692917l0 0c1.7750702 0 3.4774475 0.7051468 4.732605 1.9603119c1.2551575 1.2551651 1.9603119 2.9575348 1.9603119 4.732605l0 0c0 3.6963959 -2.996521 6.692917 -6.692917 6.692917l0 0c-3.6963959 0 -6.692917 -2.996521 -6.692917 -6.692917z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m128.97571 79.74831l0 0c0 -3.6963959 2.996521 -6.692917 6.692917 -6.692917l0 0c1.7750702 0 3.4774475 0.7051468 4.732605 1.9603119c1.2551575 1.2551651 1.9603119 2.9575348 1.9603119 4.732605l0 0c0 3.6963959 -2.996521 6.692917 -6.692917 6.692917l0 0c-3.6963959 0 -6.692917 -2.996521 -6.692917 -6.692917z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m140.40123 84.48091c0 5.0575104 21.755905 7.8315506 43.51181 10.115013c21.755905 2.2834702 43.51181 4.076355 43.51181 8.152702" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m140.40123 84.48091c0 5.0575027 21.755905 7.8315506 43.51181 10.115013c10.877945 1.1417313 21.755905 2.16082 29.914368 3.4040146c2.0396118 0.31080627 3.9092712 0.6356125 5.566452 0.97984314c0.828598 0.17211151 1.604065 0.34908295 2.3211212 0.5315857c0.17927551 0.045639038 0.35487366 0.09159851 0.52674866 0.13793182l0.0390625 0.010848999" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m221.43057 101.07625l4.740921 0.91986847l-3.0404816 -3.7520676z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m243.94269 158.62204c0 12.032227 -4.125992 18.04869 -8.251968 24.064438c-4.125992 6.015747 -8.251968 12.030777 -8.251968 24.061554" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m243.94269 158.62204c0 12.032227 -4.125992 18.04869 -8.251968 24.064438c-2.0629883 3.0078735 -4.125992 6.015564 -5.673233 9.775131c-0.7736206 1.8798065 -1.4183044 3.9475555 -1.8695831 6.297287c-0.11282349 0.58743286 -0.21356201 1.1924896 -0.30117798 1.8166504l-0.024795532 0.1847229" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m226.17358 200.65479l1.3585358 4.634323l1.9381866 -4.42334z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m200.68643 156.65712c0 13.014725 6.685028 19.769592 13.370071 26.029434c6.6850433 6.259842 13.370071 12.024658 13.370071 24.049316" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m200.68643 156.65712c0 13.014709 6.6850433 19.769592 13.370087 26.029434c3.342514 3.1299286 6.685028 6.136078 9.191925 9.862839c1.2534485 1.8634033 2.2979736 3.9069366 3.0291595 6.2361603c0.18278503 0.5823059 0.3460083 1.1824646 0.4880066 1.802124l0.039474487 0.1804657" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m225.16223 200.93924l2.1129303 4.3425903l1.17276 -4.684784z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m243.94269 262.62204c0 6.0321045 -4.125992 9.048462 -8.251968 12.064209c-4.125992 3.015747 -8.251968 6.030884 -8.251968 12.061768" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m243.94269 262.62204c0 6.0321045 -4.125992 9.048462 -8.251968 12.064209c-2.0629883 1.5078735 -4.125992 3.0155945 -5.673233 4.9002075c-0.19340515 0.23556519 -0.37875366 0.47705078 -0.55503845 0.7251282c-0.08811951 0.124053955 -0.17399597 0.24975586 -0.2574768 0.37719727c-0.041748047 0.06375122 -0.082901 0.12789917 -0.123428345 0.19250488l-0.050247192 0.0819397" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m227.4388 280.52484l0.38796997 4.8137207l2.796997 -3.9369202z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m152.68643 156.65712c0 13.014725 6.685028 19.769592 13.370071 26.029434c6.6850433 6.259842 13.370071 12.024658 13.370071 24.049316" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m152.68642 156.65712c0 13.014709 6.6850433 19.769592 13.370087 26.029434c3.3425293 3.1299286 6.6850433 6.136078 9.19194 9.862839c1.2534485 1.8634033 2.2979736 3.9069366 3.0291595 6.2361603c0.18278503 0.5823059 0.3460083 1.1824646 0.4880066 1.802124l0.039474487 0.1804657" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m177.16223 200.93924l2.1129303 4.3425903l1.17276 -4.684784z" fill-rule="evenodd"/><path fill="#ff9900" d="m260.37796 102.750656l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m260.37796 102.750656l30.11023 0l0 30.11023l-30.11023 0z" fill-rule="evenodd"/><path fill="#00ffff" d="m285.234 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708679 -6.708664l0 0c1.7792358 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.9649048 2.9644928 1.9649048 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.7086487 6.7086487l0 0c-3.7051086 0 -6.708679 -3.0035553 -6.708679 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m285.234 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.708679 -6.708664l0 0c1.7792358 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.9649048 2.9644928 1.9649048 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.7086487 6.7086487l0 0c-3.7051086 0 -6.708679 -3.0035553 -6.708679 -6.7086487z" fill-rule="evenodd"/><path fill="#ff00ff" d="m261.46457 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.7086487 -6.708664l0 0c1.7792664 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708679 6.7086487l0 0c-3.7050781 0 -6.7086487 -3.0035553 -6.7086487 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m261.46457 151.91339l0 0c0 -3.7050934 3.0035706 -6.708664 6.7086487 -6.708664l0 0c1.7792664 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.743744l0 0c0 3.7050934 -3.0035706 6.7086487 -6.708679 6.7086487l0 0c-3.7050781 0 -6.7086487 -3.0035553 -6.7086487 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m275.43307 132.86089l-7.24411 12.346466" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m275.43307 132.86089l-4.207733 7.1714783" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m269.80072 139.19649l-0.87194824 4.7499695l3.721161 -3.0782318z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m275.43307 132.86089l16.503937 12.346466" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m275.43307 132.86089l11.699524 8.752335" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m286.1432 142.93582l4.62323 1.395813l-2.6443787 -4.0410156z" fill-rule="evenodd"/><path fill="#00ff00" d="m152.53369 79.761154l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792358 0 3.485611 0.70681 4.7437286 1.9649277c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.7086487 6.708664l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m152.53369 79.761154l0 0c0 -3.7050934 3.0035706 -6.708664 6.708664 -6.708664l0 0c1.7792358 0 3.485611 0.70681 4.7437286 1.9649277c1.2581177 1.2581177 1.96492 2.9644928 1.96492 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.7086487 6.708664l0 0c-3.7050934 0 -6.708664 -3.0035706 -6.708664 -6.708664z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m165.951 79.761154c54.740158 0 109.48033 11.496063 109.48033 22.992126" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m165.95102 79.761154c27.370071 0 54.740158 2.8740158 75.267715 7.1850433c10.263779 2.15551 18.81691 4.670273 24.804123 7.364662c1.4967957 0.67359924 2.8332214 1.3584213 3.9959106 2.0516663c0.58135986 0.34661865 1.1192627 0.69535065 1.6120911 1.0458221c0.12319946 0.087623596 0.24359131 0.175354 0.3611145 0.26319122l0.114105225 0.08748627" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m270.7312 98.67442l3.889923 2.8620071l-1.1401978 -4.6928177z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m291.9427 158.62204c0 71.59056 -24.724426 143.18112 -49.448822 143.18112" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m291.9427 158.62204c0 35.795288 -6.1810913 71.59056 -15.452759 98.43701c-4.6358337 13.423218 -10.044281 24.609253 -15.839081 32.439484c-2.8973694 3.9151 -5.8913574 6.9912415 -8.933609 9.088623c-0.76057434 0.524353 -1.5241547 0.9875183 -2.2900085 1.3873291c-0.19146729 0.099975586 -0.38305664 0.19595337 -0.5747833 0.28796387c-0.09587097 0.04598999 -0.19177246 0.09100342 -0.28771973 0.13497925l-0.21542358 0.0965271" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m247.98889 298.88205l-4.068344 2.6021118l4.789154 0.6217346z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m547.8373 1.0341207l0 538.45667" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m547.8373 1.0341207l0 538.45667" fill-rule="evenodd"/><path fill="#efefef" d="m564.4803 267.4462l123.52759 0l0 224.44095l-123.52759 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m564.4803 267.4462l123.52759 0l0 224.44095l-123.52759 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m561.87585 267.07318l74.42517 0l0 22.456696l-74.42517 0z" fill-rule="evenodd"/><path fill="#000000" d="m566.4696 273.01883l2.28125 0q0.6875 0 1.015625 0.0625q0.328125 0.0625 0.59375 0.25q0.265625 0.171875 0.4375 0.46875q0.1875 0.296875 0.1875 0.671875q0 0.390625 -0.21875 0.734375q-0.21875 0.328125 -0.59375 0.5q0.53125 0.15625 0.8125 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.1875 0.765625q-0.1875 0.359375 -0.5 0.578125q-0.3125 0.21875 -0.765625 0.265625q-0.296875 0.03125 -1.40625 0.046875l-1.9375 0l0 -5.734375zm1.15625 0.953125l0 1.328125l0.75 0q0.671875 0 0.84375 -0.015625q0.296875 -0.03125 0.46875 -0.203125q0.171875 -0.171875 0.171875 -0.453125q0 -0.265625 -0.15625 -0.421875q-0.140625 -0.171875 -0.4375 -0.203125q-0.171875 -0.03125 -0.984375 -0.03125l-0.65625 0zm0 2.28125l0 1.53125l1.0625 0q0.625 0 0.796875 -0.03125q0.25 -0.046875 0.40625 -0.21875q0.171875 -0.1875 0.171875 -0.5q0 -0.25 -0.125 -0.421875q-0.125 -0.1875 -0.359375 -0.265625q-0.234375 -0.09375 -1.03125 -0.09375l-0.921875 0zm4.6054688 2.5l0 -5.734375l1.09375 0l0 5.734375l-1.09375 0zm1.9726562 -2.140625q0 -0.546875 0.265625 -1.046875q0.265625 -0.515625 0.75 -0.78125q0.5 -0.28125 1.109375 -0.28125q0.953125 0 1.546875 0.625q0.609375 0.609375 0.609375 1.53125q0 0.953125 -0.609375 1.578125q-0.609375 0.609375 -1.53125 0.609375q-0.578125 0 -1.09375 -0.25q-0.515625 -0.265625 -0.78125 -0.765625q-0.265625 -0.5 -0.265625 -1.21875zm1.125 0.0625q0 0.625 0.28125 0.953125q0.296875 0.328125 0.734375 0.328125q0.421875 0 0.703125 -0.328125q0.296875 -0.328125 0.296875 -0.953125q0 -0.609375 -0.296875 -0.9375q-0.28125 -0.328125 -0.703125 -0.328125q-0.4375 0 -0.734375 0.328125q-0.28125 0.328125 -0.28125 0.9375zm7.6210938 -0.84375l-1.078125 0.1875q-0.046875 -0.3125 -0.25 -0.46875q-0.1875 -0.171875 -0.5 -0.171875q-0.40625 0 -0.65625 0.28125q-0.234375 0.28125 -0.234375 0.9375q0 0.75 0.234375 1.0625q0.25 0.296875 0.671875 0.296875q0.3125 0 0.515625 -0.171875q0.203125 -0.1875 0.28125 -0.625l1.078125 0.1875q-0.171875 0.734375 -0.65625 1.125q-0.46875 0.375 -1.265625 0.375q-0.90625 0 -1.453125 -0.578125q-0.546875 -0.578125 -0.546875 -1.59375q0 -1.015625 0.546875 -1.59375q0.546875 -0.578125 1.46875 -0.578125q0.765625 0 1.203125 0.328125q0.453125 0.328125 0.640625 1.0zm0.79296875 2.921875l0 -5.734375l1.109375 0l0 3.046875l1.28125 -1.46875l1.34375 0l-1.40625 1.515625l1.515625 2.640625l-1.1875 0l-1.046875 -1.859375l-0.5 0.53125l0 1.328125l-1.109375 0zm6.734375 0l0 -5.734375l1.125 0l2.34375 3.828125l0 -3.828125l1.078125 0l0 5.734375l-1.15625 0l-2.3125 -3.734375l0 3.734375l-1.078125 0zm7.0117188 -0.828125l0 -1.484375l-1.5 0l0 -1.03125l1.5 0l0 -1.484375l1.0 0l0 1.484375l1.515625 0l0 1.03125l-1.515625 0l0 1.484375l-1.0 0zm6.0 0.828125l-1.109375 0l0 -4.140625q-0.59375 0.5625 -1.40625 0.828125l0 -0.984375q0.421875 -0.140625 0.921875 -0.53125q0.515625 -0.40625 0.703125 -0.921875l0.890625 0l0 5.75zm4.109375 -5.734375l2.28125 0q0.6875 0 1.015625 0.0625q0.328125 0.0625 0.59375 0.25q0.265625 0.171875 0.4375 0.46875q0.1875 0.296875 0.1875 0.671875q0 0.390625 -0.21875 0.734375q-0.21875 0.328125 -0.59375 0.5q0.53125 0.15625 0.8125 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.1875 0.765625q-0.1875 0.359375 -0.5 0.578125q-0.3125 0.21875 -0.765625 0.265625q-0.296875 0.03125 -1.40625 0.046875l-1.9375 0l0 -5.734375zm1.15625 0.953125l0 1.328125l0.75 0q0.671875 0 0.84375 -0.015625q0.296875 -0.03125 0.46875 -0.203125q0.171875 -0.171875 0.171875 -0.453125q0 -0.265625 -0.15625 -0.421875q-0.140625 -0.171875 -0.4375 -0.203125q-0.171875 -0.03125 -0.984375 -0.03125l-0.65625 0zm0 2.28125l0 1.53125l1.0625 0q0.625 0 0.796875 -0.03125q0.25 -0.046875 0.40625 -0.21875q0.171875 -0.1875 0.171875 -0.5q0 -0.25 -0.125 -0.421875q-0.125 -0.1875 -0.359375 -0.265625q-0.234375 -0.09375 -1.03125 -0.09375l-0.921875 0z" fill-rule="nonzero"/><path fill="#efefef" d="m714.937 402.47702l110.70868 0l0 107.49606l-110.70868 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m714.937 402.47702l110.70868 0l0 107.49606l-110.70868 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m715.86865 401.40613l67.1181 0l0 15.874023l-67.1181 0z" fill-rule="evenodd"/><path fill="#000000" d="m720.4624 407.35178l2.28125 0q0.6875 0 1.015625 0.0625q0.328125 0.0625 0.59375 0.25q0.265625 0.171875 0.4375 0.46875q0.1875 0.296875 0.1875 0.671875q0 0.390625 -0.21875 0.734375q-0.21875 0.328125 -0.59375 0.5q0.53125 0.15625 0.8125 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.1875 0.765625q-0.1875 0.359375 -0.5 0.578125q-0.3125 0.21875 -0.765625 0.265625q-0.296875 0.03125 -1.40625 0.046875l-1.9375 0l0 -5.734375zm1.15625 0.953125l0 1.328125l0.75 0q0.671875 0 0.84375 -0.015625q0.296875 -0.03125 0.46875 -0.203125q0.171875 -0.171875 0.171875 -0.453125q0 -0.265625 -0.15625 -0.421875q-0.140625 -0.171875 -0.4375 -0.203125q-0.171875 -0.03125 -0.984375 -0.03125l-0.65625 0zm0 2.28125l0 1.53125l1.0625 0q0.625 0 0.796875 -0.03125q0.25 -0.046875 0.40625 -0.21875q0.171875 -0.1875 0.171875 -0.5q0 -0.25 -0.125 -0.421875q-0.125 -0.1875 -0.359375 -0.265625q-0.234375 -0.09375 -1.03125 -0.09375l-0.921875 0zm4.6054688 2.5l0 -5.734375l1.09375 0l0 5.734375l-1.09375 0zm1.9726562 -2.140625q0 -0.546875 0.265625 -1.046875q0.265625 -0.515625 0.75 -0.78125q0.5 -0.28125 1.109375 -0.28125q0.953125 0 1.546875 0.625q0.609375 0.609375 0.609375 1.53125q0 0.953125 -0.609375 1.578125q-0.609375 0.609375 -1.53125 0.609375q-0.578125 0 -1.09375 -0.25q-0.515625 -0.265625 -0.78125 -0.765625q-0.265625 -0.5 -0.265625 -1.21875zm1.125 0.0625q0 0.625 0.28125 0.953125q0.296875 0.328125 0.734375 0.328125q0.421875 0 0.703125 -0.328125q0.296875 -0.328125 0.296875 -0.953125q0 -0.609375 -0.296875 -0.9375q-0.28125 -0.328125 -0.703125 -0.328125q-0.4375 0 -0.734375 0.328125q-0.28125 0.328125 -0.28125 0.9375zm7.6210938 -0.84375l-1.078125 0.1875q-0.046875 -0.3125 -0.25 -0.46875q-0.1875 -0.171875 -0.5 -0.171875q-0.40625 0 -0.65625 0.28125q-0.234375 0.28125 -0.234375 0.9375q0 0.75 0.234375 1.0625q0.25 0.296875 0.671875 0.296875q0.3125 0 0.515625 -0.171875q0.203125 -0.1875 0.28125 -0.625l1.078125 0.1875q-0.171875 0.734375 -0.65625 1.125q-0.46875 0.375 -1.265625 0.375q-0.90625 0 -1.453125 -0.578125q-0.546875 -0.578125 -0.546875 -1.59375q0 -1.015625 0.546875 -1.59375q0.546875 -0.578125 1.46875 -0.578125q0.765625 0 1.203125 0.328125q0.453125 0.328125 0.640625 1.0zm0.79296875 2.921875l0 -5.734375l1.109375 0l0 3.046875l1.28125 -1.46875l1.34375 0l-1.40625 1.515625l1.515625 2.640625l-1.1875 0l-1.046875 -1.859375l-0.5 0.53125l0 1.328125l-1.109375 0zm6.734375 0l0 -5.734375l1.125 0l2.34375 3.828125l0 -3.828125l1.078125 0l0 5.734375l-1.15625 0l-2.3125 -3.734375l0 3.734375l-1.078125 0zm7.0117188 -0.828125l0 -1.484375l-1.5 0l0 -1.03125l1.5 0l0 -1.484375l1.0 0l0 1.484375l1.515625 0l0 1.03125l-1.515625 0l0 1.484375l-1.0 0zm6.890625 -0.1875l0 1.015625l-3.84375 0q0.0625 -0.578125 0.375 -1.09375q0.3125 -0.515625 1.234375 -1.375q0.734375 -0.6875 0.90625 -0.9375q0.234375 -0.34375 0.234375 -0.671875q0 -0.375 -0.203125 -0.5625q-0.203125 -0.203125 -0.546875 -0.203125q-0.34375 0 -0.546875 0.21875q-0.203125 0.203125 -0.234375 0.671875l-1.09375 -0.109375q0.09375 -0.90625 0.609375 -1.296875q0.515625 -0.390625 1.296875 -0.390625q0.84375 0 1.328125 0.453125q0.484375 0.453125 0.484375 1.140625q0 0.390625 -0.140625 0.734375q-0.140625 0.34375 -0.4375 0.734375q-0.203125 0.25 -0.71875 0.734375q-0.515625 0.46875 -0.65625 0.625q-0.140625 0.15625 -0.21875 0.3125l2.171875 0zm2.6054688 -4.734375q0.828125 0 1.296875 0.59375q0.5625 0.703125 0.5625 2.328125q0 1.625 -0.5625 2.34375q-0.46875 0.578125 -1.296875 0.578125q-0.84375 0 -1.359375 -0.640625q-0.5 -0.640625 -0.5 -2.296875q0 -1.609375 0.5625 -2.328125q0.453125 -0.578125 1.296875 -0.578125zm0 0.90625q-0.203125 0 -0.359375 0.125q-0.15625 0.125 -0.25 0.453125q-0.109375 0.4375 -0.109375 1.4375q0 1.015625 0.09375 1.390625q0.109375 0.375 0.265625 0.5q0.15625 0.125 0.359375 0.125q0.1875 0 0.34375 -0.125q0.15625 -0.125 0.25 -0.453125q0.109375 -0.421875 0.109375 -1.4375q0 -1.0 -0.109375 -1.375q-0.09375 -0.390625 -0.25 -0.515625q-0.15625 -0.125 -0.34375 -0.125zm4.4492188 -0.90625q0.828125 0 1.296875 0.59375q0.5625 0.703125 0.5625 2.328125q0 1.625 -0.5625 2.34375q-0.46875 0.578125 -1.296875 0.578125q-0.84375 0 -1.359375 -0.640625q-0.5 -0.640625 -0.5 -2.296875q0 -1.609375 0.5625 -2.328125q0.453125 -0.578125 1.296875 -0.578125zm0 0.90625q-0.203125 0 -0.359375 0.125q-0.15625 0.125 -0.25 0.453125q-0.109375 0.4375 -0.109375 1.4375q0 1.015625 0.09375 1.390625q0.109375 0.375 0.265625 0.5q0.15625 0.125 0.359375 0.125q0.1875 0 0.34375 -0.125q0.15625 -0.125 0.25 -0.453125q0.109375 -0.421875 0.109375 -1.4375q0 -1.0 -0.109375 -1.375q-0.09375 -0.390625 -0.25 -0.515625q-0.15625 -0.125 -0.34375 -0.125zm4.4492188 -0.90625q0.828125 0 1.296875 0.59375q0.5625 0.703125 0.5625 2.328125q0 1.625 -0.5625 2.34375q-0.46875 0.578125 -1.296875 0.578125q-0.84375 0 -1.359375 -0.640625q-0.5 -0.640625 -0.5 -2.296875q0 -1.609375 0.5625 -2.328125q0.453125 -0.578125 1.296875 -0.578125zm0 0.90625q-0.203125 0 -0.359375 0.125q-0.15625 0.125 -0.25 0.453125q-0.109375 0.4375 -0.109375 1.4375q0 1.015625 0.09375 1.390625q0.109375 0.375 0.265625 0.5q0.15625 0.125 0.359375 0.125q0.1875 0 0.34375 -0.125q0.15625 -0.125 0.25 -0.453125q0.109375 -0.421875 0.109375 -1.4375q0 -1.0 -0.109375 -1.375q-0.09375 -0.390625 -0.25 -0.515625q-0.15625 -0.125 -0.34375 -0.125z" fill-rule="nonzero"/><path fill="#efefef" d="m842.937 402.47702l110.70868 0l0 107.49606l-110.70868 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m842.937 402.47702l110.70868 0l0 107.49606l-110.70868 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m647.8548 375.3724c0 36.0 114.44092 72.0 228.8819 72.0" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m647.8548 375.37238c0 18.0 28.61023 36.0 71.525635 49.5c21.457642 6.75 46.49164 12.375 73.31372 16.3125c13.411011 1.96875 27.269104 3.515625 41.350708 4.570282c7.0408325 0.52737427 14.137451 0.93167114 21.262146 1.2041321c3.5622559 0.13623047 7.131531 0.23950195 10.704407 0.30871582c0.89312744 0.017303467 1.78656 0.032470703 2.6801147 0.045532227l2.045288 0.024871826" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m870.7275 448.9901l4.5473633 -1.6260071l-4.5286865 -1.6773987z" fill-rule="evenodd"/><path fill="#efefef" d="m740.90027 35.446194l197.22833 0l0 192.31496l-197.22833 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m740.90027 35.446194l197.22833 0l0 192.31496l-197.22833 0z" fill-rule="evenodd"/><path fill="#d0e0e3" d="m925.64514 128.61269l0 0c-3.574646 -0.95671844 -5.6968384 -4.6300964 -4.7401733 -8.204727l0 0c0.45947266 -1.7165985 1.5819702 -3.1803818 3.1206665 -4.069336c1.5386963 -0.88895416 3.3674927 -1.1302567 5.0841064 -0.67082214l0 0c3.574585 0.9567108 5.6968384 4.6300964 4.7401123 8.20472l0 0c-0.95666504 3.5746307 -4.630066 5.6968765 -8.204712 4.7401657z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m925.64514 128.61269l0 0c-3.574646 -0.95671844 -5.6968384 -4.6300964 -4.7401733 -8.204727l0 0c0.45947266 -1.7165985 1.5819702 -3.1803818 3.1206665 -4.069336c1.5386963 -0.88895416 3.3674927 -1.1302567 5.0841064 -0.67082214l0 0c3.574585 0.9567108 5.6968384 4.6300964 4.7401123 8.20472l0 0c-0.95666504 3.5746307 -4.630066 5.6968765 -8.204712 4.7401657z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l52.15747 37.291344" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l47.276672 33.80169" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m885.26575 148.04033l4.6522217 1.2957611l-2.730896 -3.9830322z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l30.299194 59.149605" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l27.56372 53.809456" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m865.0434 167.45752l3.5390625 3.285965l-0.598938 -4.792053z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l41.259827 48.220467" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l37.35901 43.661568" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m875.0537 157.63043l4.2054443 2.3742828l-1.6953735 -4.521988z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l-81.57483 9.322838" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l-75.61359 8.641556" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m763.14856 119.895515l-4.321167 2.1563416l4.696289 1.1257629z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l19.338562 70.11024" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l17.743225 64.32624" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m855.10065 177.66045l2.7989502 3.9355316l0.38555908 -4.8139343z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l-61.700806 26.456688" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l-56.18634 24.092155" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m782.1124 135.46912l-3.5198975 3.3064728l4.8217773 -0.27035522z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l-50.771667 37.354332" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l-45.93872 33.798622" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m792.0321 145.36319l-2.6765137 4.019806l4.6342163 -1.3589325z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l-72.59845 15.527565" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l-66.73114 14.272652" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m771.8731 125.55246l-4.092224 2.5643463l4.783203 0.66604614z" fill-rule="evenodd"/><path fill="#efefef" d="m714.937 266.47702l110.70868 0l0 107.49606l-110.70868 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m714.937 266.47702l110.70868 0l0 107.49606l-110.70868 0z" fill-rule="evenodd"/><path fill="#b7b7b7" d="m558.4195 36.828526l121.88971 0l0 138.67717l-121.88971 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m558.4195 36.828526l121.88971 0l0 138.67717l-121.88971 0z" fill-rule="evenodd"/><path fill="#ffffff" d="m620.8272 163.26947l0 0c0 -3.7050934 3.003601 -6.708664 6.708679 -6.708664l0 0c1.7792358 0 3.4856567 0.70680237 4.7437744 1.96492c1.2581177 1.2581177 1.9649048 2.9644928 1.9649048 4.743744l0 0c0 3.7050934 -3.003601 6.708664 -6.708679 6.708664l0 0c-3.7050781 0 -6.708679 -3.0035706 -6.708679 -6.708664z" fill-rule="evenodd"/><path stroke="#ff00ff" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m620.8272 163.26947l0 0c0 -3.7050934 3.003601 -6.708664 6.708679 -6.708664l0 0c1.7792358 0 3.4856567 0.70680237 4.7437744 1.96492c1.2581177 1.2581177 1.9649048 2.9644928 1.9649048 4.743744l0 0c0 3.7050934 -3.003601 6.708664 -6.708679 6.708664l0 0c-3.7050781 0 -6.708679 -3.0035706 -6.708679 -6.708664z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m627.5359 142.10674l0 14.456696" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m627.5359 142.10674l0 8.456696" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m625.88416 150.56343l1.6517334 4.538101l1.6517334 -4.538101z" fill-rule="evenodd"/><path fill="#fce5cd" d="m596.81067 287.0761l57.88977 0l0 57.88977l-57.88977 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m596.81067 287.0761l57.88977 0l0 57.88977l-57.88977 0z" fill-rule="evenodd"/><path fill="#000000" d="m606.2013 315.9041q0 -1.421875 0.765625 -2.21875q0.765625 -0.8125 1.96875 -0.8125q0.796875 0 1.4375 0.375q0.640625 0.375 0.96875 1.0625q0.328125 0.671875 0.328125 1.53125q0 0.875 -0.359375 1.5625q-0.34375 0.6875 -0.984375 1.046875q-0.640625 0.34375 -1.390625 0.34375q-0.8125 0 -1.453125 -0.390625q-0.625 -0.390625 -0.953125 -1.0625q-0.328125 -0.671875 -0.328125 -1.4375zm0.78125 0.015625q0 1.03125 0.546875 1.640625q0.5625 0.59375 1.40625 0.59375q0.859375 0 1.40625 -0.59375q0.546875 -0.609375 0.546875 -1.71875q0 -0.703125 -0.234375 -1.21875q-0.234375 -0.53125 -0.6875 -0.8125q-0.453125 -0.28125 -1.015625 -0.28125q-0.8125 0 -1.390625 0.546875q-0.578125 0.546875 -0.578125 1.84375zm5.5820312 4.375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm5.3398438 1.421875l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm0.69140625 -4.296875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.5117188 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm6.734375 0l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875z" fill-rule="nonzero"/><path fill="#fce5cd" d="m578.13635 392.51016l57.88977 0l0 57.88977l-57.88977 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m578.13635 392.51016l57.88977 0l0 57.88977l-57.88977 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m625.75555 344.96588l-18.362244 17.196838" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m625.75555 344.96588l-13.982849 13.095459" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m610.6436 356.85574l-2.1832886 4.307678l4.4414062 -1.8965149z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m607.3802 375.58792c0 4.2305603 -0.07086182 6.346924 -0.14172363 8.46109c-0.07086182 2.1141663 -0.14172363 4.226166 -0.14172363 8.452301" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m607.3802 375.58792c0 4.2305603 -0.07086182 6.346924 -0.14172363 8.46109c-0.017700195 0.52853394 -0.03540039 1.0569458 -0.052001953 1.6182556l-0.022949219 0.8344116" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m605.51184 386.4833l1.6011963 4.556183l1.7020874 -4.5194397z" fill-rule="evenodd"/><path fill="#ead1dc" d="m740.953 359.16324l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571411 1.96344 2.9622498 1.96344 4.740143c0 1.7778931 -0.7062988 3.4830017 -1.96344 4.7401733l0 0c-2.61792 2.6178894 -6.8624268 2.6178894 -9.480347 0l0 0c-2.617859 -2.61792 -2.617859 -6.8624268 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m740.953 359.16324l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571411 1.96344 2.9622498 1.96344 4.740143c0 1.7778931 -0.7062988 3.4830017 -1.96344 4.7401733l0 0c-2.61792 2.6178894 -6.8624268 2.6178894 -9.480347 0l0 0c-2.617859 -2.61792 -2.617859 -6.8624268 0 -9.480316z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m777.696 340.30304l-27.275574 18.86615" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m777.69604 340.30304l-22.341003 15.452942" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m754.4154 354.39755l-2.7926636 3.9400024l4.671875 -1.2231445z" fill-rule="evenodd"/><path fill="#ead1dc" d="m721.4117 359.16968l0 0c2.61792 -2.61792 6.8623657 -2.61792 9.480286 0l0 0c1.2572021 1.2571411 1.96344 2.9622498 1.96344 4.740143c0 1.7778931 -0.7062378 3.4830017 -1.96344 4.7401733l0 0c-2.61792 2.6178894 -6.8623657 2.6178894 -9.480286 0l0 0c-2.61792 -2.61792 -2.61792 -6.8624268 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m721.4117 359.16968l0 0c2.61792 -2.61792 6.8623657 -2.61792 9.480286 0l0 0c1.2572021 1.2571411 1.96344 2.9622498 1.96344 4.740143c0 1.7778931 -0.7062378 3.4830017 -1.96344 4.7401733l0 0c-2.61792 2.6178894 -6.8623657 2.6178894 -9.480286 0l0 0c-2.61792 -2.61792 -2.61792 -6.8624268 0 -9.480316z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m777.696 340.30304l-46.80316 18.86615" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m777.69604 340.30304l-41.23828 16.622925" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m735.8403 355.39404l-3.5914917 3.2285767l4.826538 -0.16467285z" fill-rule="evenodd"/><path fill="#ead1dc" d="m567.6929 475.50656l0 0c0 -3.7050781 3.00354 -6.7086487 6.708618 -6.7086487l0 0c1.7792969 0 3.4856567 0.7067871 4.7437744 1.9649048c1.2581177 1.2581177 1.9649048 2.964508 1.9649048 4.743744l0 0c0 3.7050781 -3.00354 6.7086487 -6.708679 6.7086487l0 0c-3.7050781 0 -6.708618 -3.0035706 -6.708618 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m567.6929 475.50656l0 0c0 -3.7050781 3.00354 -6.7086487 6.708618 -6.7086487l0 0c1.7792969 0 3.4856567 0.7067871 4.7437744 1.9649048c1.2581177 1.2581177 1.9649048 2.964508 1.9649048 4.743744l0 0c0 3.7050781 -3.00354 6.7086487 -6.708679 6.7086487l0 0c-3.7050781 0 -6.708618 -3.0035706 -6.708618 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m607.08124 450.39993l-27.937012 20.37796" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m607.0812 450.39993l-23.089539 16.842102" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m583.01825 465.9076l-2.6929932 4.008789l4.6397705 -1.3399048z" fill-rule="evenodd"/><path fill="#ead1dc" d="m587.7518 475.50656l0 0c0 -3.7050781 3.003601 -6.7086487 6.708679 -6.7086487l0 0c1.7792358 0 3.4855957 0.7067871 4.7437134 1.9649048c1.2581177 1.2581177 1.9649658 2.964508 1.9649658 4.743744l0 0c0 3.7050781 -3.003601 6.7086487 -6.708679 6.7086487l0 0c-3.7050781 0 -6.708679 -3.0035706 -6.708679 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m587.7518 475.50656l0 0c0 -3.7050781 3.003601 -6.7086487 6.708679 -6.7086487l0 0c1.7792358 0 3.4855957 0.7067871 4.7437134 1.9649048c1.2581177 1.2581177 1.9649658 2.964508 1.9649658 4.743744l0 0c0 3.7050781 -3.003601 6.7086487 -6.708679 6.7086487l0 0c-3.7050781 0 -6.708679 -3.0035706 -6.708679 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m607.08124 450.39993l-12.629944 18.393707" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m607.0812 450.39993l-9.233643 13.447479" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m596.48596 462.91245l-1.2071533 4.6760254l3.93042 -2.8060913z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m627.5359 169.97813c0 29.274414 -0.4487915 43.91104 -0.89764404 58.548843c-0.4487915 14.637787 -0.89764404 29.276764 -0.89764404 58.553528" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m627.5359 169.97813c0 29.27443 -0.44885254 43.91104 -0.89764404 58.54883c-0.22442627 7.3188934 -0.4487915 14.638107 -0.61712646 23.787155c-0.08416748 4.574524 -0.15429688 9.606537 -0.20336914 15.324707c-0.024536133 2.8590698 -0.043823242 5.8897095 -0.0569458 9.120453l-0.013000488 4.321228" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m624.09607 281.07852l1.6463013 4.5400696l1.6571655 -4.5361023z" fill-rule="evenodd"/><path fill="#ff9900" d="m598.591 84.21698l57.88977 0l0 57.889755l-57.88977 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m598.591 84.21698l57.88977 0l0 57.889755l-57.88977 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m587.60846 57.978134c0 6.598427 4.9055176 9.897636 9.811035 13.196854c4.9054565 3.2992096 9.810974 6.598419 9.810974 13.196846" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m587.60846 57.97813c0 6.598423 4.9054565 9.89764 9.810974 13.19685c2.4527588 1.6496048 4.9055176 3.2992172 6.745117 5.3612213c0.4598999 0.5155029 0.8814697 1.056778 1.255127 1.6302719c0.046691895 0.07169342 0.09265137 0.14387512 0.13781738 0.21658325l0.117614746 0.19387817" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m604.07983 79.00511l2.7716675 3.9547882l0.41888428 -4.811142z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m627.9129 57.978134c0 6.598427 1.4172974 9.897636 2.8346558 13.196854c1.4172974 3.2992096 2.8346558 6.598419 2.8346558 13.196846" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m627.9129 57.97813c0 6.598423 1.4172974 9.89764 2.8346558 13.19685c0.70861816 1.6496048 1.4172974 3.2992172 1.9487915 5.3612213c0.13287354 0.5155029 0.2546997 1.056778 0.36260986 1.6302719l0.040405273 0.22481537" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m631.453 78.52421l2.0115356 4.390465l1.281189 -4.656296z" fill-rule="evenodd"/><path fill="#00ff00" d="m580.9007 59.269474l0 0c0 -3.7050934 3.003601 -6.708664 6.708679 -6.708664l0 0c1.7792358 0 3.4856567 0.70680237 4.7437744 1.9649239c1.2581177 1.2581177 1.9649048 2.964489 1.9649048 4.74374l0 0c0 3.7050896 -3.003601 6.70866 -6.708679 6.70866l0 0c-3.7050781 0 -6.708679 -3.0035706 -6.708679 -6.70866z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m580.9007 59.269474l0 0c0 -3.7050934 3.003601 -6.708664 6.708679 -6.708664l0 0c1.7792358 0 3.4856567 0.70680237 4.7437744 1.9649239c1.2581177 1.2581177 1.9649048 2.964489 1.9649048 4.74374l0 0c0 3.7050896 -3.003601 6.70866 -6.708679 6.70866l0 0c-3.7050781 0 -6.708679 -3.0035706 -6.708679 -6.70866z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m606.92566 65.978134c0 4.5596924 5.149597 6.839859 10.299194 9.119385c5.149597 2.2795258 10.299255 4.5584183 10.299255 9.116837" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m606.92566 65.978134c0 4.5596924 5.149597 6.839859 10.299194 9.119385c2.574829 1.1397629 5.149597 2.2793655 7.0806885 3.7038345l0.25604248 0.1953888" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m623.1252 79.81229l3.677063 3.1307907l-0.8043213 -4.7618866z" fill-rule="evenodd"/><path fill="#00ff00" d="m600.217 59.269474l0 0c0 -3.7050934 3.003601 -6.708664 6.708679 -6.708664l0 0c1.7792358 0 3.4855957 0.70680237 4.7437134 1.9649239c1.2581177 1.2581177 1.9649658 2.964489 1.9649658 4.74374l0 0c0 3.7050896 -3.003601 6.70866 -6.708679 6.70866l0 0c-3.7050781 0 -6.708679 -3.0035706 -6.708679 -6.70866z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m600.217 59.269474l0 0c0 -3.7050934 3.003601 -6.708664 6.708679 -6.708664l0 0c1.7792358 0 3.4855957 0.70680237 4.7437134 1.9649239c1.2581177 1.2581177 1.9649658 2.964489 1.9649658 4.74374l0 0c0 3.7050896 -3.003601 6.70866 -6.708679 6.70866l0 0c-3.7050781 0 -6.708679 -3.0035706 -6.708679 -6.70866z" fill-rule="evenodd"/><path fill="#00ff00" d="m621.2052 59.269474l0 0c0 -3.7050934 3.00354 -6.708664 6.708618 -6.708664l0 0c1.7792969 0 3.4856567 0.70680237 4.7437744 1.9649239c1.2581177 1.2581177 1.9649048 2.964489 1.9649048 4.74374l0 0c0 3.7050896 -3.00354 6.70866 -6.708679 6.70866l0 0c-3.7050781 0 -6.708618 -3.0035706 -6.708618 -6.70866z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m621.2052 59.269474l0 0c0 -3.7050934 3.00354 -6.708664 6.708618 -6.708664l0 0c1.7792969 0 3.4856567 0.70680237 4.7437744 1.9649239c1.2581177 1.2581177 1.9649048 2.964489 1.9649048 4.74374l0 0c0 3.7050896 -3.00354 6.70866 -6.708679 6.70866l0 0c-3.7050781 0 -6.708618 -3.0035706 -6.708618 -6.70866z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m528.3069 -9.800525l441.54327 0l0 39.90551l-441.54327 0z" fill-rule="evenodd"/><path fill="#000000" d="m612.2687 12.431973l1.765625 0.453125q-0.5625 2.171875 -2.0 3.328124q-1.4375 1.140625 -3.53125 1.140625q-2.15625 0 -3.515625 -0.875q-1.34375 -0.89062405 -2.0625 -2.546874q-0.703125 -1.671875 -0.703125 -3.59375q0 -2.078125 0.796875 -3.625q0.796875 -1.5625 2.265625 -2.359375q1.484375 -0.81250024 3.25 -0.81250024q2.0 0 3.359375 1.0156252q1.375 1.015625 1.90625 2.875l-1.734375 0.40625q-0.46875 -1.453125 -1.359375 -2.109375q-0.875 -0.671875 -2.203125 -0.671875q-1.546875 0 -2.578125 0.734375q-1.03125 0.734375 -1.453125 1.984375q-0.421875 1.234375 -0.421875 2.5625q0 1.703125 0.5 2.96875q0.5 1.265625 1.546875 1.90625q1.046875 0.625 2.265625 0.625q1.484375 0 2.515625 -0.859375q1.03125 -0.859375 1.390625 -2.546875zm3.1292114 -0.15625q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.062499 -1.640625 1.656249q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.312499 -1.25 -3.765624zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.297607 4.843749l0 -9.671874l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953124l-1.640625 0l0 -5.890624q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281249l-1.640625 0zm10.063232 0.796875l1.59375 0.234375q0.109375 0.75 0.5625 1.078125q0.609375 0.453125 1.671875 0.453125q1.140625 0 1.75 -0.453125q0.625 -0.453125 0.84375 -1.265625q0.125 -0.5 0.109375 -2.109374q-1.0625 1.265624 -2.671875 1.265624q-2.0 0 -3.09375 -1.437499q-1.09375 -1.4375 -1.09375 -3.453125q0 -1.390625 0.5 -2.5625q0.515625 -1.171875 1.453125 -1.796875q0.953125 -0.640625 2.25 -0.640625q1.703125 0 2.8125 1.375l0 -1.15625l1.515625 0l0 8.359375q0 2.265624 -0.46875 3.203124q-0.453125 0.9375 -1.453125 1.484375q-0.984375 0.546875 -2.453125 0.546875q-1.71875 0 -2.796875 -0.78125q-1.0625 -0.765625 -1.03125 -2.34375zm1.359375 -5.812499q0 1.90625 0.75 2.78125q0.765625 0.875 1.90625 0.875q1.125 0 1.890625 -0.859375q0.765625 -0.875 0.765625 -2.734375q0 -1.78125 -0.796875 -2.671875q-0.78125 -0.90625 -1.890625 -0.90625q-1.09375 0 -1.859375 0.890625q-0.765625 0.875 -0.765625 2.625zm15.953796 1.90625l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.312499q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.312499 -1.234375 -3.671874q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm8.485107 2.875l1.625 -0.25q0.125 0.96875 0.75 1.5q0.625 0.515625 1.75 0.515625q1.125 0 1.671875 -0.453125q0.546875 -0.46875 0.546875 -1.09375q0 -0.546875 -0.484375 -0.875q-0.328125 -0.21875 -1.671875 -0.546875q-1.8125 -0.46875 -2.515625 -0.796875q-0.6875 -0.328125 -1.046875 -0.90625q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.640625 0.296875 -1.1875q0.296875 -0.5625 0.8125 -0.921875q0.375 -0.28125 1.03125 -0.46875q0.671875 -0.203125 1.421875 -0.203125q1.140625 0 2.0 0.328125q0.859375 0.328125 1.265625 0.890625q0.421875 0.5625 0.578125 1.5l-1.609375 0.21875q-0.109375 -0.75 -0.640625 -1.171875q-0.515625 -0.421875 -1.46875 -0.421875q-1.140625 0 -1.625 0.375q-0.46875 0.375 -0.46875 0.875q0 0.3125 0.1875 0.578125q0.203125 0.265625 0.640625 0.4375q0.234375 0.09375 1.4375 0.421875q1.75 0.453125 2.4375 0.75q0.6875 0.296875 1.078125 0.859375q0.390625 0.5625 0.390625 1.40625q0 0.828125 -0.484375 1.546875q-0.46875 0.71874905 -1.375 1.124999q-0.90625 0.390625 -2.046875 0.390625q-1.875 0 -2.875 -0.78125q-0.984375 -0.78124905 -1.25 -2.328124zm13.5625 1.421875l0.234375 1.453124q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46874905 -0.203125 -1.937499l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm1.6051636 -10.0l0 -1.8906252l1.640625 0l0 1.8906252l-1.640625 0zm0 11.468749l0 -9.671874l1.640625 0l0 9.671874l-1.640625 0zm3.5354614 -4.843749q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.062499 -1.640625 1.656249q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.312499 -1.25 -3.765624zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.297607 4.843749l0 -9.671874l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953124l-1.640625 0l0 -5.890624q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281249l-1.640625 0zm25.293396 -4.687499l1.765625 0.453125q-0.5625 2.171875 -2.0 3.328124q-1.4375 1.140625 -3.53125 1.140625q-2.15625 0 -3.515625 -0.875q-1.34375 -0.89062405 -2.0625 -2.546874q-0.703125 -1.671875 -0.703125 -3.59375q0 -2.078125 0.796875 -3.625q0.796875 -1.5625 2.265625 -2.359375q1.484375 -0.81250024 3.25 -0.81250024q2.0 0 3.359375 1.0156252q1.375 1.015625 1.90625 2.875l-1.734375 0.40625q-0.46875 -1.453125 -1.359375 -2.109375q-0.875 -0.671875 -2.203125 -0.671875q-1.546875 0 -2.578125 0.734375q-1.03125 0.734375 -1.453125 1.984375q-0.421875 1.234375 -0.421875 2.5625q0 1.703125 0.5 2.96875q0.5 1.265625 1.546875 1.90625q1.046875 0.625 2.265625 0.625q1.484375 0 2.515625 -0.859375q1.03125 -0.859375 1.390625 -2.546875zm3.1292114 -0.15625q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.062499 -1.640625 1.656249q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.312499 -1.25 -3.765624zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.297546 4.843749l0 -9.671874l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953124l-1.640625 0l0 -5.890624q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281249l-1.640625 0zm13.953857 -1.468749l0.234375 1.453124q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46874905 -0.203125 -1.937499l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm1.5895386 1.468749l0 -9.671874l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.062499l-1.625 0zm5.6189575 -4.843749q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.062499 -1.640625 1.656249q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.312499 -1.25 -3.765624zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.250732 4.843749l0 -13.359374l1.640625 0l0 13.359374l-1.640625 0zm4.1447754 0l0 -13.359374l1.640625 0l0 13.359374l-1.640625 0zm10.816711 -3.109374l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.312499q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.312499 -1.234375 -3.671874q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm15.406982 5.765624l0 -1.218749q-0.90625 1.437499 -2.703125 1.437499q-1.15625 0 -2.125 -0.640625q-0.96875 -0.640625 -1.5 -1.781249q-0.53125 -1.140625 -0.53125 -2.625q0 -1.453125 0.484375 -2.625q0.484375 -1.1875 1.4375 -1.8125q0.96875 -0.625 2.171875 -0.625q0.875 0 1.546875 0.375q0.6875 0.359375 1.109375 0.953125l0 -4.796875l1.640625 0l0 13.359374l-1.53125 0zm-5.171875 -4.828124q0 1.859375 0.78125 2.78125q0.78125 0.921875 1.84375 0.921875q1.078125 0 1.828125 -0.875q0.75 -0.890625 0.75 -2.6875q0 -1.984375 -0.765625 -2.90625q-0.765625 -0.9375 -1.890625 -0.9375q-1.078125 0 -1.8125 0.890625q-0.734375 0.890625 -0.734375 2.8125zm17.737427 4.828124l0 -11.781249l-4.40625 0l0 -1.5781252l10.578125 0l0 1.5781252l-4.40625 0l0 11.781249l-1.765625 0zm7.078247 0l0 -9.671874l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.062499l-1.625 0zm12.5408325 -1.187499q-0.921875 0.76562405 -1.765625 1.093749q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78124905 -0.859375 -1.984374q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59374905 0.40625 1.156249l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.187499zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.43749905 1.453125 0.43749905q0.9375 0 1.671875 -0.40624905q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm4.2038574 4.859374l0 -9.671874l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953124l-1.640625 0l0 -5.890624q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281249l-1.640625 0zm9.719421 -2.890624l1.625 -0.25q0.125 0.96875 0.75 1.5q0.625 0.515625 1.75 0.515625q1.125 0 1.671875 -0.453125q0.546875 -0.46875 0.546875 -1.09375q0 -0.546875 -0.484375 -0.875q-0.328125 -0.21875 -1.671875 -0.546875q-1.8125 -0.46875 -2.515625 -0.796875q-0.6875 -0.328125 -1.046875 -0.90625q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.640625 0.296875 -1.1875q0.296875 -0.5625 0.8125 -0.921875q0.375 -0.28125 1.03125 -0.46875q0.671875 -0.203125 1.421875 -0.203125q1.140625 0 2.0 0.328125q0.859375 0.328125 1.265625 0.890625q0.421875 0.5625 0.578125 1.5l-1.609375 0.21875q-0.109375 -0.75 -0.640625 -1.171875q-0.515625 -0.421875 -1.46875 -0.421875q-1.140625 0 -1.625 0.375q-0.46875 0.375 -0.46875 0.875q0 0.3125 0.1875 0.578125q0.203125 0.265625 0.640625 0.4375q0.234375 0.09375 1.4375 0.421875q1.75 0.453125 2.4375 0.75q0.6875 0.296875 1.078125 0.859375q0.390625 0.5625 0.390625 1.40625q0 0.828125 -0.484375 1.546875q-0.46875 0.71874905 -1.375 1.124999q-0.90625 0.390625 -2.046875 0.390625q-1.875 0 -2.875 -0.78125q-0.984375 -0.78124905 -1.25 -2.328124zm16.296875 1.703125q-0.921875 0.76562405 -1.765625 1.093749q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78124905 -0.859375 -1.984374q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59374905 0.40625 1.156249l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.187499zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.43749905 1.453125 0.43749905q0.9375 0 1.671875 -0.40624905q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm10.516357 1.3125l1.609375 0.21875q-0.265625 1.65625 -1.359375 2.609374q-1.078125 0.9375 -2.671875 0.9375q-1.984375 0 -3.1875 -1.296875q-1.203125 -1.296874 -1.203125 -3.718749q0 -1.578125 0.515625 -2.75q0.515625 -1.171875 1.578125 -1.75q1.0625 -0.59375 2.3125 -0.59375q1.578125 0 2.578125 0.796875q1.0 0.796875 1.28125 2.265625l-1.59375 0.234375q-0.234375 -0.96875 -0.8125 -1.453125q-0.578125 -0.5 -1.390625 -0.5q-1.234375 0 -2.015625 0.890625q-0.78125 0.890625 -0.78125 2.8125q0 1.953125 0.75 2.84375q0.75 0.875 1.953125 0.875q0.96875 0 1.609375 -0.59375q0.65625 -0.59375 0.828125 -1.828125zm6.59375 2.078125l0.234375 1.453124q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46874905 -0.203125 -1.937499l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm1.6052246 -10.0l0 -1.8906252l1.640625 0l0 1.8906252l-1.640625 0zm0 11.468749l0 -9.671874l1.640625 0l0 9.671874l-1.640625 0zm3.5354614 -4.843749q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.062499 -1.640625 1.656249q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.312499 -1.25 -3.765624zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.297607 4.843749l0 -9.671874l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953124l-1.640625 0l0 -5.890624q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281249l-1.640625 0zm9.719482 -2.890624l1.625 -0.25q0.125 0.96875 0.75 1.5q0.625 0.515625 1.75 0.515625q1.125 0 1.671875 -0.453125q0.546875 -0.46875 0.546875 -1.09375q0 -0.546875 -0.484375 -0.875q-0.328125 -0.21875 -1.671875 -0.546875q-1.8125 -0.46875 -2.515625 -0.796875q-0.6875 -0.328125 -1.046875 -0.90625q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.640625 0.296875 -1.1875q0.296875 -0.5625 0.8125 -0.921875q0.375 -0.28125 1.03125 -0.46875q0.671875 -0.203125 1.421875 -0.203125q1.140625 0 2.0 0.328125q0.859375 0.328125 1.265625 0.890625q0.421875 0.5625 0.578125 1.5l-1.609375 0.21875q-0.109375 -0.75 -0.640625 -1.171875q-0.515625 -0.421875 -1.46875 -0.421875q-1.140625 0 -1.625 0.375q-0.46875 0.375 -0.46875 0.875q0 0.3125 0.1875 0.578125q0.203125 0.265625 0.640625 0.4375q0.234375 0.09375 1.4375 0.421875q1.75 0.453125 2.4375 0.75q0.6875 0.296875 1.078125 0.859375q0.390625 0.5625 0.390625 1.40625q0 0.828125 -0.484375 1.546875q-0.46875 0.71874905 -1.375 1.124999q-0.90625 0.390625 -2.046875 0.390625q-1.875 0 -2.875 -0.78125q-0.984375 -0.78124905 -1.25 -2.328124z" fill-rule="nonzero"/><path fill="#ffffff" d="m600.6716 368.87927l0 0c0 -3.7051086 3.00354 -6.708679 6.708618 -6.708679l0 0c1.7792969 0 3.4856567 0.7068176 4.7437744 1.9649353c1.2581177 1.2581177 1.9649048 2.9644775 1.9649048 4.743744l0 0c0 3.7050781 -3.00354 6.7086487 -6.708679 6.7086487l0 0c-3.7050781 0 -6.708618 -3.0035706 -6.708618 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m600.6716 368.87927l0 0c0 -3.7051086 3.00354 -6.708679 6.708618 -6.708679l0 0c1.7792969 0 3.4856567 0.7068176 4.7437744 1.9649353c1.2581177 1.2581177 1.9649048 2.9644775 1.9649048 4.743744l0 0c0 3.7050781 -3.00354 6.7086487 -6.708679 6.7086487l0 0c-3.7050781 0 -6.708618 -3.0035706 -6.708618 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m678.7544 368.88562c17.499207 0 26.250427 -14.37793 34.998474 -28.75589c8.747986 -14.37796 17.492859 -28.75592 34.98578 -28.75592" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m678.75446 368.88562c17.499146 0 26.250366 -14.37796 34.998413 -28.75589c4.3740234 -7.188965 8.747192 -14.37796 14.213562 -19.769684c2.7332153 -2.6958618 5.739624 -4.9424133 9.156128 -6.5150146c1.7081299 -0.7862854 3.518921 -1.4040833 5.4492188 -1.8253174l0.1973877 -0.041656494" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m742.93555 313.6214l4.348694 -2.1003418l-4.6813965 -1.1863403z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m625.75555 344.96588l46.299194 17.196838" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m625.75555 344.96588l40.67462 15.107727" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m665.8551 361.62198l4.8292236 0.03173828l-3.679016 -3.128479z" fill-rule="evenodd"/><path fill="#ffffff" d="m665.3371 368.88562l0 0c0 -3.7050781 3.00354 -6.7086487 6.708679 -6.7086487l0 0c1.7792358 0 3.4855957 0.7068176 4.7437134 1.9649353c1.2581177 1.2581177 1.9649048 2.9644775 1.9649048 4.7437134l0 0c0 3.7051086 -3.00354 6.708679 -6.708618 6.708679l0 0c-3.7051392 0 -6.708679 -3.0035706 -6.708679 -6.708679z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m665.3371 368.88562l0 0c0 -3.7050781 3.00354 -6.7086487 6.708679 -6.7086487l0 0c1.7792358 0 3.4855957 0.7068176 4.7437134 1.9649353c1.2581177 1.2581177 1.9649048 2.9644775 1.9649048 4.7437134l0 0c0 3.7051086 -3.00354 6.708679 -6.708618 6.708679l0 0c-3.7051392 0 -6.708679 -3.0035706 -6.708679 -6.708679z" fill-rule="evenodd"/><path fill="#fce5cd" d="m748.7511 282.41327l57.88977 0l0 57.88977l-57.88977 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m748.7511 282.41327l57.88977 0l0 57.88977l-57.88977 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m715.86865 265.40613l67.1181 0l0 15.874023l-67.1181 0z" fill-rule="evenodd"/><path fill="#000000" d="m720.4624 271.35178l2.28125 0q0.6875 0 1.015625 0.0625q0.328125 0.0625 0.59375 0.25q0.265625 0.171875 0.4375 0.46875q0.1875 0.296875 0.1875 0.671875q0 0.390625 -0.21875 0.734375q-0.21875 0.328125 -0.59375 0.5q0.53125 0.15625 0.8125 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.1875 0.765625q-0.1875 0.359375 -0.5 0.578125q-0.3125 0.21875 -0.765625 0.265625q-0.296875 0.03125 -1.40625 0.046875l-1.9375 0l0 -5.734375zm1.15625 0.953125l0 1.328125l0.75 0q0.671875 0 0.84375 -0.015625q0.296875 -0.03125 0.46875 -0.203125q0.171875 -0.171875 0.171875 -0.453125q0 -0.265625 -0.15625 -0.421875q-0.140625 -0.171875 -0.4375 -0.203125q-0.171875 -0.03125 -0.984375 -0.03125l-0.65625 0zm0 2.28125l0 1.53125l1.0625 0q0.625 0 0.796875 -0.03125q0.25 -0.046875 0.40625 -0.21875q0.171875 -0.1875 0.171875 -0.5q0 -0.25 -0.125 -0.421875q-0.125 -0.1875 -0.359375 -0.265625q-0.234375 -0.09375 -1.03125 -0.09375l-0.921875 0zm4.6054688 2.5l0 -5.734375l1.09375 0l0 5.734375l-1.09375 0zm1.9726562 -2.140625q0 -0.546875 0.265625 -1.046875q0.265625 -0.515625 0.75 -0.78125q0.5 -0.28125 1.109375 -0.28125q0.953125 0 1.546875 0.625q0.609375 0.609375 0.609375 1.53125q0 0.953125 -0.609375 1.578125q-0.609375 0.609375 -1.53125 0.609375q-0.578125 0 -1.09375 -0.25q-0.515625 -0.265625 -0.78125 -0.765625q-0.265625 -0.5 -0.265625 -1.21875zm1.125 0.0625q0 0.625 0.28125 0.953125q0.296875 0.328125 0.734375 0.328125q0.421875 0 0.703125 -0.328125q0.296875 -0.328125 0.296875 -0.953125q0 -0.609375 -0.296875 -0.9375q-0.28125 -0.328125 -0.703125 -0.328125q-0.4375 0 -0.734375 0.328125q-0.28125 0.328125 -0.28125 0.9375zm7.6210938 -0.84375l-1.078125 0.1875q-0.046875 -0.3125 -0.25 -0.46875q-0.1875 -0.171875 -0.5 -0.171875q-0.40625 0 -0.65625 0.28125q-0.234375 0.28125 -0.234375 0.9375q0 0.75 0.234375 1.0625q0.25 0.296875 0.671875 0.296875q0.3125 0 0.515625 -0.171875q0.203125 -0.1875 0.28125 -0.625l1.078125 0.1875q-0.171875 0.734375 -0.65625 1.125q-0.46875 0.375 -1.265625 0.375q-0.90625 0 -1.453125 -0.578125q-0.546875 -0.578125 -0.546875 -1.59375q0 -1.015625 0.546875 -1.59375q0.546875 -0.578125 1.46875 -0.578125q0.765625 0 1.203125 0.328125q0.453125 0.328125 0.640625 1.0zm0.79296875 2.921875l0 -5.734375l1.109375 0l0 3.046875l1.28125 -1.46875l1.34375 0l-1.40625 1.515625l1.515625 2.640625l-1.1875 0l-1.046875 -1.859375l-0.5 0.53125l0 1.328125l-1.109375 0zm6.734375 0l0 -5.734375l1.125 0l2.34375 3.828125l0 -3.828125l1.078125 0l0 5.734375l-1.15625 0l-2.3125 -3.734375l0 3.734375l-1.078125 0zm7.0117188 -0.828125l0 -1.484375l-1.5 0l0 -1.03125l1.5 0l0 -1.484375l1.0 0l0 1.484375l1.515625 0l0 1.03125l-1.515625 0l0 1.484375l-1.0 0zm6.0 0.828125l-1.109375 0l0 -4.140625q-0.59375 0.5625 -1.40625 0.828125l0 -0.984375q0.421875 -0.140625 0.921875 -0.53125q0.515625 -0.40625 0.703125 -0.921875l0.890625 0l0 5.75zm3.4960938 -5.75q0.828125 0 1.296875 0.59375q0.5625 0.703125 0.5625 2.328125q0 1.625 -0.5625 2.34375q-0.46875 0.578125 -1.296875 0.578125q-0.84375 0 -1.359375 -0.640625q-0.5 -0.640625 -0.5 -2.296875q0 -1.609375 0.5625 -2.328125q0.453125 -0.578125 1.296875 -0.578125zm0 0.90625q-0.203125 0 -0.359375 0.125q-0.15625 0.125 -0.25 0.453125q-0.109375 0.4375 -0.109375 1.4375q0 1.015625 0.09375 1.390625q0.109375 0.375 0.265625 0.5q0.15625 0.125 0.359375 0.125q0.1875 0 0.34375 -0.125q0.15625 -0.125 0.25 -0.453125q0.109375 -0.421875 0.109375 -1.4375q0 -1.0 -0.109375 -1.375q-0.09375 -0.390625 -0.25 -0.515625q-0.15625 -0.125 -0.34375 -0.125zm4.4492188 -0.90625q0.828125 0 1.296875 0.59375q0.5625 0.703125 0.5625 2.328125q0 1.625 -0.5625 2.34375q-0.46875 0.578125 -1.296875 0.578125q-0.84375 0 -1.359375 -0.640625q-0.5 -0.640625 -0.5 -2.296875q0 -1.609375 0.5625 -2.328125q0.453125 -0.578125 1.296875 -0.578125zm0 0.90625q-0.203125 0 -0.359375 0.125q-0.15625 0.125 -0.25 0.453125q-0.109375 0.4375 -0.109375 1.4375q0 1.015625 0.09375 1.390625q0.109375 0.375 0.265625 0.5q0.15625 0.125 0.359375 0.125q0.1875 0 0.34375 -0.125q0.15625 -0.125 0.25 -0.453125q0.109375 -0.421875 0.109375 -1.4375q0 -1.0 -0.109375 -1.375q-0.09375 -0.390625 -0.25 -0.515625q-0.15625 -0.125 -0.34375 -0.125z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m551.48035 482.01706l102.48816 0l0 25.448822l-102.48816 0z" fill-rule="evenodd"/><path fill="#000000" d="m565.1835 496.68143l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm1.3398438 -0.0625q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.6210938 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7617188 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm2.6796875 0l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.6054688 2.46875l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.203125 -2.84375l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7773438 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm6.734375 0l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm6.3007812 0l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0z" fill-rule="nonzero"/><path fill="#000000" d="m560.8397 506.8533l0.71875 -0.0625q0.046875 0.4375 0.234375 0.71875q0.1875 0.265625 0.578125 0.4375q0.390625 0.171875 0.875 0.171875q0.4375 0 0.765625 -0.125q0.328125 -0.140625 0.484375 -0.359375q0.171875 -0.234375 0.171875 -0.5q0 -0.265625 -0.15625 -0.46875q-0.15625 -0.203125 -0.515625 -0.328125q-0.234375 -0.09375 -1.03125 -0.28125q-0.78125 -0.1875 -1.09375 -0.359375q-0.40625 -0.21875 -0.609375 -0.53125q-0.203125 -0.328125 -0.203125 -0.71875q0 -0.4375 0.25 -0.8125q0.25 -0.375 0.71875 -0.5625q0.46875 -0.203125 1.046875 -0.203125q0.640625 0 1.125 0.203125q0.484375 0.203125 0.75 0.609375q0.265625 0.390625 0.28125 0.90625l-0.734375 0.046875q-0.046875 -0.546875 -0.390625 -0.8125q-0.34375 -0.28125 -1.0 -0.28125q-0.6875 0 -1.0 0.25q-0.3125 0.25 -0.3125 0.609375q0 0.3125 0.21875 0.5q0.21875 0.203125 1.140625 0.421875q0.921875 0.203125 1.265625 0.359375q0.5 0.234375 0.734375 0.59375q0.25 0.34375 0.25 0.796875q0 0.46875 -0.265625 0.875q-0.265625 0.390625 -0.75 0.625q-0.484375 0.21875 -1.109375 0.21875q-0.765625 0 -1.296875 -0.21875q-0.53125 -0.234375 -0.828125 -0.6875q-0.296875 -0.453125 -0.3125 -1.03125zm5.5078125 3.4375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm6.6523438 0.703125l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1367188 0l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.6835938 1.5625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.203125 2.46875l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm6.3007812 0l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0zm7.1679688 -0.921875l0 -1.578125l-1.546875 0l0 -0.65625l1.546875 0l0 -1.5625l0.671875 0l0 1.5625l1.5625 0l0 0.65625l-1.5625 0l0 1.578125l-0.671875 0zm5.65625 0.921875l-0.703125 0l0 -4.484375q-0.25 0.25 -0.671875 0.5q-0.40625 0.234375 -0.734375 0.34375l0 -0.671875q0.59375 -0.28125 1.03125 -0.671875q0.4375 -0.390625 0.625 -0.765625l0.453125 0l0 5.75z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m704.3932 365.81656l140.44092 0l0 25.448822l-140.44092 0z" fill-rule="evenodd"/><path fill="#000000" d="m718.0963 380.48093l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm1.3398438 -0.0625q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.6210938 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7617188 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm2.6796875 0l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.6054688 2.46875l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.203125 -2.84375l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7773438 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm6.734375 0l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm6.3007812 0l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0z" fill-rule="nonzero"/><path fill="#000000" d="m713.75256 390.6528l0.71875 -0.0625q0.046875 0.4375 0.234375 0.71875q0.1875 0.265625 0.578125 0.4375q0.390625 0.171875 0.875 0.171875q0.4375 0 0.765625 -0.125q0.328125 -0.140625 0.484375 -0.359375q0.171875 -0.234375 0.171875 -0.5q0 -0.265625 -0.15625 -0.46875q-0.15625 -0.203125 -0.515625 -0.328125q-0.234375 -0.09375 -1.03125 -0.28125q-0.78125 -0.1875 -1.09375 -0.359375q-0.40625 -0.21875 -0.609375 -0.53125q-0.203125 -0.328125 -0.203125 -0.71875q0 -0.4375 0.25 -0.8125q0.25 -0.375 0.71875 -0.5625q0.46875 -0.203125 1.046875 -0.203125q0.640625 0 1.125 0.203125q0.484375 0.203125 0.75 0.609375q0.265625 0.390625 0.28125 0.90625l-0.734375 0.046875q-0.046875 -0.546875 -0.390625 -0.8125q-0.34375 -0.28125 -1.0 -0.28125q-0.6875 0 -1.0 0.25q-0.3125 0.25 -0.3125 0.609375q0 0.3125 0.21875 0.5q0.21875 0.203125 1.140625 0.421875q0.921875 0.203125 1.265625 0.359375q0.5 0.234375 0.734375 0.59375q0.25 0.34375 0.25 0.796875q0 0.46875 -0.265625 0.875q-0.265625 0.390625 -0.75 0.625q-0.484375 0.21875 -1.109375 0.21875q-0.765625 0 -1.296875 -0.21875q-0.53125 -0.234375 -0.828125 -0.6875q-0.296875 -0.453125 -0.3125 -1.03125zm5.5078125 3.4375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm6.6523438 0.703125l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1367188 0l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.6835938 1.5625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.203125 2.46875l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm6.3007812 0l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0zm7.1679688 -0.921875l0 -1.578125l-1.546875 0l0 -0.65625l1.546875 0l0 -1.5625l0.671875 0l0 1.5625l1.5625 0l0 0.65625l-1.5625 0l0 1.578125l-0.671875 0zm5.65625 0.921875l-0.703125 0l0 -4.484375q-0.25 0.25 -0.671875 0.5q-0.40625 0.234375 -0.734375 0.34375l0 -0.671875q0.59375 -0.28125 1.03125 -0.671875q0.4375 -0.390625 0.625 -0.765625l0.453125 0l0 5.75zm1.7929688 -2.828125q0 -1.015625 0.203125 -1.625q0.21875 -0.625 0.625 -0.953125q0.421875 -0.34375 1.046875 -0.34375q0.453125 0 0.796875 0.1875q0.359375 0.1875 0.578125 0.53125q0.234375 0.34375 0.359375 0.859375q0.125 0.5 0.125 1.34375q0 1.015625 -0.203125 1.640625q-0.203125 0.609375 -0.625 0.953125q-0.40625 0.328125 -1.03125 0.328125q-0.828125 0 -1.296875 -0.59375q-0.578125 -0.71875 -0.578125 -2.328125zm0.734375 0q0 1.40625 0.328125 1.875q0.328125 0.46875 0.8125 0.46875q0.484375 0 0.8125 -0.46875q0.328125 -0.46875 0.328125 -1.875q0 -1.40625 -0.328125 -1.875q-0.328125 -0.46875 -0.828125 -0.46875q-0.484375 0 -0.765625 0.40625q-0.359375 0.53125 -0.359375 1.9375zm3.7148438 0q0 -1.015625 0.203125 -1.625q0.21875 -0.625 0.625 -0.953125q0.421875 -0.34375 1.046875 -0.34375q0.453125 0 0.796875 0.1875q0.359375 0.1875 0.578125 0.53125q0.234375 0.34375 0.359375 0.859375q0.125 0.5 0.125 1.34375q0 1.015625 -0.203125 1.640625q-0.203125 0.609375 -0.625 0.953125q-0.40625 0.328125 -1.03125 0.328125q-0.828125 0 -1.296875 -0.59375q-0.578125 -0.71875 -0.578125 -2.328125zm0.734375 0q0 1.40625 0.328125 1.875q0.328125 0.46875 0.8125 0.46875q0.484375 0 0.8125 -0.46875q0.328125 -0.46875 0.328125 -1.875q0 -1.40625 -0.328125 -1.875q-0.328125 -0.46875 -0.828125 -0.46875q-0.484375 0 -0.765625 0.40625q-0.359375 0.53125 -0.359375 1.9375z" fill-rule="nonzero"/><path fill="#fce5cd" d="m810.0049 55.00525l57.88977 0l0 57.889763l-57.88977 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m810.0049 55.00525l57.88977 0l0 57.889763l-57.88977 0z" fill-rule="evenodd"/><path fill="#000000" d="m819.3955 83.83326q0 -1.421875 0.765625 -2.21875q0.765625 -0.8125 1.96875 -0.8125q0.796875 0 1.4375 0.375q0.640625 0.375 0.96875 1.0625q0.328125 0.671875 0.328125 1.53125q0 0.875 -0.359375 1.5625q-0.34375 0.6875 -0.984375 1.046875q-0.640625 0.34375 -1.390625 0.34375q-0.8125 0 -1.453125 -0.390625q-0.625 -0.390625 -0.953125 -1.0625q-0.328125 -0.671875 -0.328125 -1.4375zm0.78125 0.015625q0 1.03125 0.546875 1.640625q0.5625 0.59375 1.40625 0.59375q0.859375 0 1.40625 -0.59375q0.546875 -0.609375 0.546875 -1.71875q0 -0.703125 -0.234375 -1.21875q-0.234375 -0.53125 -0.6875 -0.8125q-0.453125 -0.28125 -1.015625 -0.28125q-0.8125 0 -1.390625 0.546875q-0.578125 0.546875 -0.578125 1.84375zm5.5820312 4.375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm5.3398438 1.421875l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm0.69140625 -4.296875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.5117188 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm5.6835938 0l2.203125 -5.734375l0.8125 0l2.34375 5.734375l-0.859375 0l-0.671875 -1.734375l-2.390625 0l-0.625 1.734375l-0.8125 0zm1.65625 -2.359375l1.9375 0l-0.59375 -1.578125q-0.265625 -0.71875 -0.40625 -1.1875q-0.109375 0.546875 -0.3125 1.09375l-0.625 1.671875z" fill-rule="nonzero"/><path fill="#ead1dc" d="m789.64417 161.21965l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571564 1.96344 2.9622498 1.96344 4.740158c0 1.7778931 -0.7062988 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.6179047 -6.8624268 2.6179047 -9.480347 0l0 0c-2.617859 -2.61792 -2.617859 -6.8624115 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m789.64417 161.21965l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571564 1.96344 2.9622498 1.96344 4.740158c0 1.7778931 -0.7062988 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.6179047 -6.8624268 2.6179047 -9.480347 0l0 0c-2.617859 -2.61792 -2.617859 -6.8624115 0 -9.480316z" fill-rule="evenodd"/><path fill="#ead1dc" d="m834.40393 206.40732l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571564 1.9633789 2.9622498 1.9633789 4.740158c0 1.7778931 -0.7062378 3.4829865 -1.9633789 4.740158l0 0c-2.61792 2.6179047 -6.8624268 2.6179047 -9.480347 0l0 0c-2.61792 -2.61792 -2.61792 -6.8624115 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m834.40393 206.40732l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571564 1.9633789 2.9622498 1.9633789 4.740158c0 1.7778931 -0.7062378 3.4829865 -1.9633789 4.740158l0 0c-2.61792 2.6179047 -6.8624268 2.6179047 -9.480347 0l0 0c-2.61792 -2.61792 -2.61792 -6.8624115 0 -9.480316z" fill-rule="evenodd"/><path fill="#ead1dc" d="m912.95416 137.82463l0 0c-2.61792 -2.6179047 -2.61792 -6.8623962 0 -9.480316l0 0c1.2572021 -1.257164 2.9622803 -1.9634323 4.7401733 -1.9634323c1.7778931 0 3.4829712 0.7062683 4.7401733 1.9634323l0 0c2.61792 2.61792 2.61792 6.8624115 0 9.480316l0 0c-2.61792 2.61792 -6.8624268 2.61792 -9.480347 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m912.95416 137.82463l0 0c-2.61792 -2.6179047 -2.61792 -6.8623962 0 -9.480316l0 0c1.2572021 -1.257164 2.9622803 -1.9634323 4.7401733 -1.9634323c1.7778931 0 3.4829712 0.7062683 4.7401733 1.9634323l0 0c2.61792 2.61792 2.61792 6.8624115 0 9.480316l0 0c-2.61792 2.61792 -6.8624268 2.61792 -9.480347 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l0.18896484 91.55906" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l0.17663574 85.559074" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m837.4746 198.45749l1.6610718 4.534683l1.642334 -4.541504z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l-39.811035 48.314964" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l-35.995483 43.684425" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m801.6795 155.52907l-1.611145 4.5526733l4.1605835 -2.4519348z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l72.031494 20.188972" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l66.25409 18.569695" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m904.75806 133.05516l4.8154907 -0.3657074l-3.9239502 -2.8151855z" fill-rule="evenodd"/><path fill="#ead1dc" d="m902.0439 148.75722l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571411 -1.2571716 2.9622192 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.7062683 4.7401123 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.6179047 -6.8623657 2.6179047 -9.480286 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m902.0439 148.75722l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571411 -1.2571716 2.9622192 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.7062683 4.7401123 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.6179047 -6.8623657 2.6179047 -9.480286 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l63.08661 26.3937" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l57.551514 24.077965" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m895.8637 138.49673l4.8239746 0.22775269l-3.5489502 -3.2752533z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l81.95276 7.5275574" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l75.97797 6.97876" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m914.77655 121.51858l4.670166 -1.2297211l-4.367981 -2.0598984z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m634.24457 163.26947c43.939636 0 65.91077 -19.826767 87.87927 -39.65354c21.968506 -19.826775 43.934387 -39.65354 87.868774 -39.65354" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m634.24457 163.26947c43.939636 0 65.91077 -19.826767 87.87927 -39.65354c10.984253 -9.913391 21.967834 -19.826775 35.697205 -27.26181c6.864624 -3.7175217 14.4157715 -6.8154526 22.996521 -8.984009c4.2904663 -1.0842743 8.838379 -1.9362106 13.686523 -2.517067c2.4240723 -0.2904358 4.923218 -0.5130997 7.5028687 -0.6631546c0.6449585 -0.037513733 1.2948608 -0.070487976 1.9498901 -0.098854065l0.037109375 -0.0014648438" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m804.029 85.74093l4.502075 -1.7475586l-4.5720825 -1.5551682z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m733.1828 220.35829l140.44092 0l0 25.448822l-140.44092 0z" fill-rule="evenodd"/><path fill="#000000" d="m746.8859 235.02267l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm1.3398438 -0.0625q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.6210938 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7617188 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm2.6796875 0l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.6054688 2.46875l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.203125 -2.84375l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7773438 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm6.734375 0l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm6.3007812 0l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0z" fill-rule="nonzero"/><path fill="#000000" d="m742.5422 245.19455l0.71875 -0.0625q0.046875 0.4375 0.234375 0.71875q0.1875 0.265625 0.578125 0.4375q0.390625 0.171875 0.875 0.171875q0.4375 0 0.765625 -0.125q0.328125 -0.140625 0.484375 -0.359375q0.171875 -0.234375 0.171875 -0.5q0 -0.265625 -0.15625 -0.46875q-0.15625 -0.203125 -0.515625 -0.328125q-0.234375 -0.09375 -1.03125 -0.28125q-0.78125 -0.1875 -1.09375 -0.359375q-0.40625 -0.21875 -0.609375 -0.53125q-0.203125 -0.328125 -0.203125 -0.71875q0 -0.4375 0.25 -0.8125q0.25 -0.375 0.71875 -0.5625q0.46875 -0.203125 1.046875 -0.203125q0.640625 0 1.125 0.203125q0.484375 0.203125 0.75 0.609375q0.265625 0.390625 0.28125 0.90625l-0.734375 0.046875q-0.046875 -0.546875 -0.390625 -0.8125q-0.34375 -0.28125 -1.0 -0.28125q-0.6875 0 -1.0 0.25q-0.3125 0.25 -0.3125 0.609375q0 0.3125 0.21875 0.5q0.21875 0.203125 1.140625 0.421875q0.921875 0.203125 1.265625 0.359375q0.5 0.234375 0.734375 0.59375q0.25 0.34375 0.25 0.796875q0 0.46875 -0.265625 0.875q-0.265625 0.390625 -0.75 0.625q-0.484375 0.21875 -1.109375 0.21875q-0.765625 0 -1.296875 -0.21875q-0.53125 -0.234375 -0.828125 -0.6875q-0.296875 -0.453125 -0.3125 -1.03125zm5.5078125 3.4375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm6.6523438 0.703125l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1367188 0l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.6835938 1.5625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.203125 2.46875l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm6.3007812 0l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0zm7.1679688 -0.921875l0 -1.578125l-1.546875 0l0 -0.65625l1.546875 0l0 -1.5625l0.671875 0l0 1.5625l1.5625 0l0 0.65625l-1.5625 0l0 1.578125l-0.671875 0zm5.65625 0.921875l-0.703125 0l0 -4.484375q-0.25 0.25 -0.671875 0.5q-0.40625 0.234375 -0.734375 0.34375l0 -0.671875q0.59375 -0.28125 1.03125 -0.671875q0.4375 -0.390625 0.625 -0.765625l0.453125 0l0 5.75z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m740.81366 34.997375l74.42523 0l0 22.456692l-74.42523 0z" fill-rule="evenodd"/><path fill="#000000" d="m745.4074 40.943l2.28125 0q0.6875 0 1.015625 0.0625q0.328125 0.0625 0.59375 0.25q0.265625 0.171875 0.4375 0.46875q0.1875 0.296875 0.1875 0.671875q0 0.390625 -0.21875 0.734375q-0.21875 0.328125 -0.59375 0.5q0.53125 0.15625 0.8125 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.1875 0.765625q-0.1875 0.359375 -0.5 0.578125q-0.3125 0.21875 -0.765625 0.265625q-0.296875 0.03125 -1.40625 0.046875l-1.9375 0l0 -5.734375zm1.15625 0.953125l0 1.328125l0.75 0q0.671875 0 0.84375 -0.015625q0.296875 -0.03125 0.46875 -0.203125q0.171875 -0.171875 0.171875 -0.453125q0 -0.265625 -0.15625 -0.421875q-0.140625 -0.171875 -0.4375 -0.203125q-0.171875 -0.03125 -0.984375 -0.03125l-0.65625 0zm0 2.28125l0 1.53125l1.0625 0q0.625 0 0.796875 -0.03125q0.25 -0.046875 0.40625 -0.21875q0.171875 -0.1875 0.171875 -0.5q0 -0.25 -0.125 -0.421875q-0.125 -0.1875 -0.359375 -0.265625q-0.234375 -0.09375 -1.03125 -0.09375l-0.921875 0zm4.6054688 2.5l0 -5.734375l1.09375 0l0 5.734375l-1.09375 0zm1.9726562 -2.140625q0 -0.546875 0.265625 -1.046875q0.265625 -0.515625 0.75 -0.78125q0.5 -0.28125 1.109375 -0.28125q0.953125 0 1.546875 0.625q0.609375 0.609375 0.609375 1.53125q0 0.953125 -0.609375 1.578125q-0.609375 0.609375 -1.53125 0.609375q-0.578125 0 -1.09375 -0.25q-0.515625 -0.265625 -0.78125 -0.765625q-0.265625 -0.5 -0.265625 -1.21875zm1.125 0.0625q0 0.625 0.28125 0.953125q0.296875 0.328125 0.734375 0.328125q0.421875 0 0.703125 -0.328125q0.296875 -0.328125 0.296875 -0.953125q0 -0.609375 -0.296875 -0.9375q-0.28125 -0.328125 -0.703125 -0.328125q-0.4375 0 -0.734375 0.328125q-0.28125 0.328125 -0.28125 0.9375zm7.6210938 -0.84375l-1.078125 0.1875q-0.046875 -0.3125 -0.25 -0.46875q-0.1875 -0.171875 -0.5 -0.171875q-0.40625 0 -0.65625 0.28125q-0.234375 0.28125 -0.234375 0.9375q0 0.75 0.234375 1.0625q0.25 0.296875 0.671875 0.296875q0.3125 0 0.515625 -0.171875q0.203125 -0.1875 0.28125 -0.625l1.078125 0.1875q-0.171875 0.734375 -0.65625 1.125q-0.46875 0.375 -1.265625 0.375q-0.90625 0 -1.453125 -0.578125q-0.546875 -0.578125 -0.546875 -1.59375q0 -1.015625 0.546875 -1.59375q0.546875 -0.578125 1.46875 -0.578125q0.765625 0 1.203125 0.328125q0.453125 0.328125 0.640625 1.0zm0.79296875 2.921875l0 -5.734375l1.109375 0l0 3.046875l1.28125 -1.46875l1.34375 0l-1.40625 1.515625l1.515625 2.640625l-1.1875 0l-1.046875 -1.859375l-0.5 0.53125l0 1.328125l-1.109375 0zm6.734375 0l0 -5.734375l1.125 0l2.34375 3.828125l0 -3.828125l1.078125 0l0 5.734375l-1.15625 0l-2.3125 -3.734375l0 3.734375l-1.078125 0zm7.0117188 -0.828125l0 -1.484375l-1.5 0l0 -1.03125l1.5 0l0 -1.484375l1.0 0l0 1.484375l1.515625 0l0 1.03125l-1.515625 0l0 1.484375l-1.0 0zm6.0 0.828125l-1.109375 0l0 -4.140625q-0.59375 0.5625 -1.40625 0.828125l0 -0.984375q0.421875 -0.140625 0.921875 -0.53125q0.515625 -0.40625 0.703125 -0.921875l0.890625 0l0 5.75zm8.96875 0l-1.265625 0l-0.5 -1.296875l-2.28125 0l-0.46875 1.296875l-1.234375 0l2.234375 -5.734375l1.21875 0l2.296875 5.734375zm-2.125 -2.265625l-0.796875 -2.125l-0.765625 2.125l1.5625 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m680.3092 106.16711c15.015747 0 22.52362 -0.04724121 30.031494 -0.09448242c7.5078735 -0.04724884 15.015747 -0.09449005 30.031494 -0.09449005" fill-rule="evenodd"/><path stroke="#ff0000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="1.0,3.0" d="m680.3092 106.16711c15.015747 0 22.52362 -0.04724121 30.031494 -0.09449005c3.7539673 -0.023620605 7.5078735 -0.04724121 12.200317 -0.064956665c2.3461914 -0.008857727 4.927002 -0.016242981 7.8598022 -0.021408081l3.9713745 -0.0050964355" fill-rule="evenodd"/><path fill="#ff0000" stroke="#ff0000" stroke-width="1.0" stroke-linecap="butt" d="m734.37305 107.63289l4.5372925 -1.6540222l-4.5389404 -1.649437z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m599.02545 175.0417c0 23.007874 0.01574707 34.51181 0.03149414 46.015747c0.01574707 11.503937 0.03149414 23.007874 0.03149414 46.01573" fill-rule="evenodd"/><path stroke="#ff0000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="1.0,3.0" d="m599.02545 175.0417c0 23.007874 0.01574707 34.51181 0.03149414 46.015747c0.007873535 5.7519684 0.01574707 11.503937 0.021606445 18.693909c0.0029907227 3.5949707 0.005432129 7.5494537 0.0071411133 12.043182l0.0016479492 9.278671" fill-rule="evenodd"/><path fill="#ff0000" stroke="#ff0000" stroke-width="1.0" stroke-linecap="butt" d="m597.4356 261.0735l1.6525269 4.5378113l1.65094 -4.538391z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m687.7874 320.28802c6.7874146 0 10.181091 -0.01574707 13.574768 -0.03149414c3.3937378 -0.01574707 6.7874146 -0.03149414 13.574829 -0.03149414" fill-rule="evenodd"/><path stroke="#ff0000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="1.0,3.0" d="m687.7874 320.28802c6.7874146 0 10.181091 -0.01574707 13.574768 -0.03149414c1.6968994 -0.007873535 3.3937378 -0.01574707 5.5147705 -0.021636963l2.0600586 -0.0041503906" fill-rule="evenodd"/><path fill="#ff0000" stroke="#ff0000" stroke-width="1.0" stroke-linecap="butt" d="m708.9386 321.88248l4.536499 -1.6560364l-4.539673 -1.6474304z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m558.8132 35.995525l48.692932 0l0 22.456696l-48.692932 0z" fill-rule="evenodd"/><path fill="#000000" d="m566.36084 41.94115l2.28125 0q0.6875 0 1.015625 0.0625q0.328125 0.0625 0.59375 0.25q0.265625 0.171875 0.4375 0.46875q0.1875 0.296875 0.1875 0.671875q0 0.390625 -0.21875 0.734375q-0.21875 0.328125 -0.59375 0.5q0.53125 0.15625 0.8125 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.1875 0.765625q-0.1875 0.359375 -0.5 0.578125q-0.3125 0.21875 -0.765625 0.265625q-0.296875 0.03125 -1.40625 0.046875l-1.9375 0l0 -5.734375zm1.15625 0.953125l0 1.328125l0.75 0q0.671875 0 0.84375 -0.015625q0.296875 -0.03125 0.46875 -0.203125q0.171875 -0.171875 0.171875 -0.453125q0 -0.265625 -0.15625 -0.421875q-0.140625 -0.171875 -0.4375 -0.203125q-0.171875 -0.03125 -0.984375 -0.03125l-0.65625 0zm0 2.28125l0 1.53125l1.0625 0q0.625 0 0.796875 -0.03125q0.25 -0.046875 0.40625 -0.21875q0.171875 -0.1875 0.171875 -0.5q0 -0.25 -0.125 -0.421875q-0.125 -0.1875 -0.359375 -0.265625q-0.234375 -0.09375 -1.03125 -0.09375l-0.921875 0zm4.6054688 2.5l0 -5.734375l1.09375 0l0 5.734375l-1.09375 0zm1.9726562 -2.140625q0 -0.546875 0.265625 -1.046875q0.265625 -0.515625 0.75 -0.78125q0.5 -0.28125 1.109375 -0.28125q0.953125 0 1.546875 0.625q0.609375 0.609375 0.609375 1.53125q0 0.953125 -0.609375 1.578125q-0.609375 0.609375 -1.53125 0.609375q-0.578125 0 -1.09375 -0.25q-0.515625 -0.265625 -0.78125 -0.765625q-0.265625 -0.5 -0.265625 -1.21875zm1.125 0.0625q0 0.625 0.28125 0.953125q0.296875 0.328125 0.734375 0.328125q0.421875 0 0.703125 -0.328125q0.296875 -0.328125 0.296875 -0.953125q0 -0.609375 -0.296875 -0.9375q-0.28125 -0.328125 -0.703125 -0.328125q-0.4375 0 -0.734375 0.328125q-0.28125 0.328125 -0.28125 0.9375zm7.6210938 -0.84375l-1.078125 0.1875q-0.046875 -0.3125 -0.25 -0.46875q-0.1875 -0.171875 -0.5 -0.171875q-0.40625 0 -0.65625 0.28125q-0.234375 0.28125 -0.234375 0.9375q0 0.75 0.234375 1.0625q0.25 0.296875 0.671875 0.296875q0.3125 0 0.515625 -0.171875q0.203125 -0.1875 0.28125 -0.625l1.078125 0.1875q-0.171875 0.734375 -0.65625 1.125q-0.46875 0.375 -1.265625 0.375q-0.90625 0 -1.453125 -0.578125q-0.546875 -0.578125 -0.546875 -1.59375q0 -1.015625 0.546875 -1.59375q0.546875 -0.578125 1.46875 -0.578125q0.765625 0 1.203125 0.328125q0.453125 0.328125 0.640625 1.0zm0.79296875 2.921875l0 -5.734375l1.109375 0l0 3.046875l1.28125 -1.46875l1.34375 0l-1.40625 1.515625l1.515625 2.640625l-1.1875 0l-1.046875 -1.859375l-0.5 0.53125l0 1.328125l-1.109375 0zm6.734375 0l0 -5.734375l1.125 0l2.34375 3.828125l0 -3.828125l1.078125 0l0 5.734375l-1.15625 0l-2.3125 -3.734375l0 3.734375l-1.078125 0z" fill-rule="nonzero"/><path fill="#ffffff" d="m625.57135 372.23212l0 0c-1.8525391 -3.2093506 -0.7526245 -7.312805 2.456726 -9.165375l0 0c1.5411377 -0.8896179 3.3726196 -1.1305847 5.0914307 -0.66986084c1.7188721 0.46072388 3.1842651 1.5853882 4.0739136 3.1265564l0 0c1.8525391 3.2093506 0.7526245 7.312805 -2.456726 9.165375l0 0c-3.2092896 1.8525391 -7.312805 0.7526245 -9.165344 -2.4566956z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m625.57135 372.23212l0 0c-1.8525391 -3.2093506 -0.7526245 -7.312805 2.456726 -9.165375l0 0c1.5411377 -0.8896179 3.3726196 -1.1305847 5.0914307 -0.66986084c1.7188721 0.46072388 3.1842651 1.5853882 4.0739136 3.1265564l0 0c1.8525391 3.2093506 0.7526245 7.312805 -2.456726 9.165375l0 0c-3.2092896 1.8525391 -7.312805 0.7526245 -9.165344 -2.4566956z" fill-rule="evenodd"/><path fill="#ffffff" d="m643.0989 367.15192l0 0c0.9567261 -3.583313 4.637146 -5.712616 8.220459 -4.75589l0 0c1.7208252 0.45941162 3.1885986 1.5836182 4.0805054 3.1252441c0.89190674 1.541626 1.1348267 3.3744507 0.67541504 5.095215l0 0c-0.9567261 3.5833435 -4.637146 5.712616 -8.220459 4.7559204l0 0c-3.583313 -0.9567261 -5.7126465 -4.637146 -4.7559204 -8.2204895z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m643.0989 367.15192l0 0c0.9567261 -3.583313 4.637146 -5.712616 8.220459 -4.75589l0 0c1.7208252 0.45941162 3.1885986 1.5836182 4.0805054 3.1252441c0.89190674 1.541626 1.1348267 3.3744507 0.67541504 5.095215l0 0c-0.9567261 3.5833435 -4.637146 5.712616 -8.220459 4.7559204l0 0c-3.583313 -0.9567261 -5.7126465 -4.637146 -4.7559204 -8.2204895z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m625.75555 344.96588l20.472412 18.11023" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m625.75555 344.96588l15.978455 14.134796" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m640.6396 360.3378l4.493408 1.7696838l-2.3046265 -4.2439575z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m625.75555 344.96588l2.2677002 18.11023" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m625.75555 344.96588l1.5222168 12.156738" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m625.63885 357.32782l2.2027588 4.2977295l1.0750732 -4.7081604z" fill-rule="evenodd"/><path fill="#ead1dc" d="m760.7084 362.16632l0 0c0.95666504 -3.574646 4.630066 -5.696869 8.204712 -4.740143l0 0c1.7165527 0.45941162 3.180359 1.5819397 4.069336 3.120636c0.888916 1.5386658 1.130249 3.3674622 0.67077637 5.084076l0 0c-0.95666504 3.5746155 -4.630066 5.696869 -8.204712 4.740143l0 0c-3.574585 -0.95669556 -5.6968384 -4.6300964 -4.7401123 -8.204712z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m760.7084 362.16632l0 0c0.95666504 -3.574646 4.630066 -5.696869 8.204712 -4.740143l0 0c1.7165527 0.45941162 3.180359 1.5819397 4.069336 3.120636c0.888916 1.5386658 1.130249 3.3674622 0.67077637 5.084076l0 0c-0.95666504 3.5746155 -4.630066 5.696869 -8.204712 4.740143l0 0c-3.574585 -0.95669556 -5.6968384 -4.6300964 -4.7401123 -8.204712z" fill-rule="evenodd"/><path fill="#ead1dc" d="m782.8418 360.55496l0 0c1.8525391 -3.2093506 5.9559937 -4.3092346 9.165344 -2.4566956l0 0c1.5411987 0.8896179 2.6658325 2.3550415 3.1265259 4.073883c0.4607544 1.7188416 0.2197876 3.550293 -0.66986084 5.091461l0 0c-1.8525391 3.2093506 -5.9559937 4.3092346 -9.165344 2.4566956l0 0c-3.2093506 -1.8525391 -4.309204 -5.956024 -2.456665 -9.165344z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m782.8418 360.55496l0 0c1.8525391 -3.2093506 5.9559937 -4.3092346 9.165344 -2.4566956l0 0c1.5411987 0.8896179 2.6658325 2.3550415 3.1265259 4.073883c0.4607544 1.7188416 0.2197876 3.550293 -0.66986084 5.091461l0 0c-1.8525391 3.2093506 -5.9559937 4.3092346 -9.165344 2.4566956l0 0c-3.2093506 -1.8525391 -4.309204 -5.956024 -2.456665 -9.165344z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m777.696 340.30304l9.2283325 17.13385" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m777.69604 340.30304l6.3831787 11.851318" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m782.625 352.93762l3.6061401 3.2121887l-0.6977539 -4.7786865z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m777.696 340.30304l-8.787415 17.13385" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m777.69604 340.30304l-6.0493164 11.795044" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m770.177 351.34433l-0.6012573 4.791748l3.5407104 -3.2842407z" fill-rule="evenodd"/><path fill="#ead1dc" d="m627.8696 475.50656l0 0c0 -3.7050781 3.003601 -6.7086487 6.708679 -6.7086487l0 0c1.7792358 0 3.4856567 0.7067871 4.7437744 1.9649048c1.2581177 1.2581177 1.9649048 2.964508 1.9649048 4.743744l0 0c0 3.7050781 -3.003601 6.7086487 -6.708679 6.7086487l0 0c-3.7050781 0 -6.708679 -3.0035706 -6.708679 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m627.8696 475.50656l0 0c0 -3.7050781 3.003601 -6.7086487 6.708679 -6.7086487l0 0c1.7792358 0 3.4856567 0.7067871 4.7437744 1.9649048c1.2581177 1.2581177 1.9649048 2.964508 1.9649048 4.743744l0 0c0 3.7050781 -3.003601 6.7086487 -6.708679 6.7086487l0 0c-3.7050781 0 -6.708679 -3.0035706 -6.708679 -6.7086487z" fill-rule="evenodd"/><path fill="#ead1dc" d="m607.8107 475.50253l0 0c0 -3.7051086 3.00354 -6.708679 6.708679 -6.708679l0 0c1.7792358 0 3.4855957 0.7068176 4.7437134 1.9649353c1.2581177 1.2581177 1.9649048 2.9644775 1.9649048 4.743744l0 0c0 3.7050781 -3.00354 6.7086487 -6.708618 6.7086487l0 0c-3.7051392 0 -6.708679 -3.0035706 -6.708679 -6.7086487z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m607.8107 475.50253l0 0c0 -3.7051086 3.00354 -6.708679 6.708679 -6.708679l0 0c1.7792358 0 3.4855957 0.7068176 4.7437134 1.9649353c1.2581177 1.2581177 1.9649048 2.9644775 1.9649048 4.743744l0 0c0 3.7050781 -3.00354 6.7086487 -6.708618 6.7086487l0 0c-3.7051392 0 -6.708679 -3.0035706 -6.708679 -6.7086487z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m607.08124 450.39993l7.4330444 18.393707" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m607.0812 450.39993l5.1850586 12.8307495" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m610.7348 463.84955l3.2317505 3.588684l-0.16888428 -4.8263855z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m607.08124 450.39993l22.740112 20.37796" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m607.0812 450.39993l18.27179 16.373718" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m624.2507 468.00378l4.4819946 1.7984619l-2.2773438 -4.258667z" fill-rule="evenodd"/><path fill="#ead1dc" d="m869.24615 181.53267l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571411 -1.2571716 2.9622192 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.7062683 4.7401123 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8623657 2.61792 -9.480286 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m869.24615 181.53267l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571411 -1.2571716 2.9622192 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.7062683 4.7401123 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8623657 2.61792 -9.480286 0z" fill-rule="evenodd"/><path fill="#ead1dc" d="m891.12244 159.67865l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571411 -1.2571564 2.9622803 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.70628357 4.7401733 1.96344l0 0c2.617859 2.61792 2.617859 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8624268 2.61792 -9.480347 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m891.12244 159.67865l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571411 -1.2571564 2.9622803 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.70628357 4.7401733 1.96344l0 0c2.617859 2.61792 2.617859 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8624268 2.61792 -9.480347 0z" fill-rule="evenodd"/><path fill="#ead1dc" d="m880.201 170.6001l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2572021 -1.2571716 2.9622803 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.7062683 4.7401733 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8624268 2.61792 -9.480347 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m880.201 170.6001l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2572021 -1.2571716 2.9622803 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.7062683 4.7401733 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8624268 2.61792 -9.480347 0z" fill-rule="evenodd"/><path fill="#ead1dc" d="m858.3024 192.47638l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2572021 -1.2571716 2.9622803 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.7062683 4.7401733 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8624268 2.61792 -9.480347 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m858.3024 192.47638l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2572021 -1.2571716 2.9622803 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.7062683 4.7401733 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8624268 2.61792 -9.480347 0z" fill-rule="evenodd"/><path fill="#ead1dc" d="m811.48706 183.06253l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571564 1.96344 2.9622498 1.96344 4.740158c0 1.7778931 -0.7062988 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.6179047 -6.8624268 2.6179047 -9.480347 0l0 0c-2.61792 -2.61792 -2.61792 -6.8624115 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m811.48706 183.06253l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571564 1.96344 2.9622498 1.96344 4.740158c0 1.7778931 -0.7062988 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.6179047 -6.8624268 2.6179047 -9.480347 0l0 0c-2.61792 -2.61792 -2.61792 -6.8624115 0 -9.480316z" fill-rule="evenodd"/><path fill="#ead1dc" d="m822.4197 193.97282l0 0c2.61792 -2.6179047 6.8623657 -2.6179047 9.480286 0l0 0c1.2571411 1.2571716 1.96344 2.962265 1.96344 4.740158c0 1.7779083 -0.7062988 3.4830017 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623657 2.61792 -9.480286 0l0 0c-2.61792 -2.6179047 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m822.4197 193.97282l0 0c2.61792 -2.6179047 6.8623657 -2.6179047 9.480286 0l0 0c1.2571411 1.2571716 1.96344 2.962265 1.96344 4.740158c0 1.7779083 -0.7062988 3.4830017 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623657 2.61792 -9.480286 0l0 0c-2.61792 -2.6179047 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#ead1dc" d="m845.39526 198.685l0 0c0 -3.7050934 3.003601 -6.708664 6.708679 -6.708664l0 0c1.7792358 0 3.4856567 0.70680237 4.7437744 1.9649353c1.2581177 1.2581177 1.9649048 2.9644775 1.9649048 4.7437286l0 0c0 3.7050934 -3.003601 6.708664 -6.708679 6.708664l0 0c-3.7050781 0 -6.708679 -3.0035706 -6.708679 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m845.39526 198.685l0 0c0 -3.7050934 3.003601 -6.708664 6.708679 -6.708664l0 0c1.7792358 0 3.4856567 0.70680237 4.7437744 1.9649353c1.2581177 1.2581177 1.9649048 2.9644775 1.9649048 4.7437286l0 0c0 3.7050934 -3.003601 6.708664 -6.708679 6.708664l0 0c-3.7050781 0 -6.708679 -3.0035706 -6.708679 -6.708664z" fill-rule="evenodd"/><path fill="#ead1dc" d="m800.5656 172.14108l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571716 1.96344 2.9622498 1.96344 4.740158c0 1.7779083 -0.7062988 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8624268 2.61792 -9.480347 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m800.5656 172.14108l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571716 1.96344 2.9622498 1.96344 4.740158c0 1.7779083 -0.7062988 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8624268 2.61792 -9.480347 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#ead1dc" d="m778.7116 150.2648l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571716 1.96344 2.9622498 1.96344 4.740158c0 1.7778931 -0.7062988 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.6179047 -6.8624268 2.6179047 -9.480347 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m778.7116 150.2648l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571716 1.96344 2.9622498 1.96344 4.740158c0 1.7778931 -0.7062988 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.6179047 -6.8624268 2.6179047 -9.480347 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#ead1dc" d="m767.77905 139.35449l0 0c2.61792 -2.61792 6.8623657 -2.61792 9.480286 0l0 0c1.2572021 1.2571716 1.96344 2.9622498 1.96344 4.740158c0 1.7779083 -0.7062378 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623657 2.61792 -9.480286 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m767.77905 139.35449l0 0c2.61792 -2.61792 6.8623657 -2.61792 9.480286 0l0 0c1.2572021 1.2571716 1.96344 2.9622498 1.96344 4.740158c0 1.7779083 -0.7062378 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623657 2.61792 -9.480286 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#ead1dc" d="m756.8576 128.43304l0 0c2.61792 -2.6179123 6.8623657 -2.6179123 9.480286 0l0 0c1.2572021 1.2571716 1.96344 2.962265 1.96344 4.740158c0 1.7779083 -0.7062378 3.4830017 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623657 2.61792 -9.480286 0l0 0c-2.61792 -2.6179047 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m756.8576 128.43304l0 0c2.61792 -2.6179123 6.8623657 -2.6179123 9.480286 0l0 0c1.2572021 1.2571716 1.96344 2.962265 1.96344 4.740158c0 1.7779083 -0.7062378 3.4830017 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623657 2.61792 -9.480286 0l0 0c-2.61792 -2.6179047 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#ead1dc" d="m745.92505 117.4782l0 0c2.61792 -2.6179123 6.8623657 -2.6179123 9.480286 0l0 0c1.2572021 1.2571716 1.96344 2.9622574 1.96344 4.740158c0 1.7779083 -0.7062378 3.482994 -1.96344 4.740158l0 0c-2.61792 2.6179123 -6.8623657 2.6179123 -9.480286 0l0 0c-2.61792 -2.6179123 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m745.92505 117.4782l0 0c2.61792 -2.6179123 6.8623657 -2.6179123 9.480286 0l0 0c1.2572021 1.2571716 1.96344 2.9622574 1.96344 4.740158c0 1.7779083 -0.7062378 3.482994 -1.96344 4.740158l0 0c-2.61792 2.6179123 -6.8623657 2.6179123 -9.480286 0l0 0c-2.61792 -2.6179123 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l-11.779541 79.11811" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l-10.895874 73.183525" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m826.42004 185.8353l0.9654541 4.7318573l2.302002 -4.2453766z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l-22.70868 68.18897" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l-20.812866 62.496346" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m816.56976 174.86948l0.13317871 4.8274994l3.0010376 -3.783722z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l8.409424 81.039375" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l7.790222 75.07142" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m845.097 188.13692l2.111267 4.3433685l1.1745605 -4.6843414z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m838.94977 112.89501l-33.637817 57.291344" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m838.9497 112.89501l-30.599915 52.117256" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m806.9255 164.17596l-0.87335205 4.7497253l3.722046 -3.0771332z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m777.696 340.30304l25.322876 17.88977" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m777.69604 340.30304l20.422363 14.427734" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m797.16534 356.07983l4.659546 1.2694397l-2.753418 -3.9675293z" fill-rule="evenodd"/><path fill="#d0e0e3" d="m803.0048 367.68027l0 0c-2.617859 -2.61792 -2.617859 -6.8623962 0 -9.480316l0 0c1.2572021 -1.2571716 2.9622803 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4830322 0.7062683 4.7401733 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8624268 2.61792 -9.480347 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m803.0048 367.68027l0 0c-2.617859 -2.61792 -2.617859 -6.8623962 0 -9.480316l0 0c1.2572021 -1.2571716 2.9622803 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4830322 0.7062683 4.7401733 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8624268 2.61792 -9.480347 0z" fill-rule="evenodd"/><path fill="#ead1dc" d="m763.0608 493.4265l0 0c3.583374 -0.95669556 7.263794 1.1725769 8.22052 4.7559204l0 0c0.45941162 1.7207642 0.21643066 3.5535889 -0.6754761 5.095215c-0.89190674 1.541626 -2.3596802 2.6658325 -4.0804443 3.1252441l0 0c-3.583313 0.9567261 -7.263794 -1.1725769 -8.220459 -4.75589l0 0c-0.9567261 -3.5833435 1.1725464 -7.2637634 4.7558594 -8.2204895z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m763.0608 493.4265l0 0c3.583374 -0.95669556 7.263794 1.1725769 8.22052 4.7559204l0 0c0.45941162 1.7207642 0.21643066 3.5535889 -0.6754761 5.095215c-0.89190674 1.541626 -2.3596802 2.6658325 -4.0804443 3.1252441l0 0c-3.583313 0.9567261 -7.263794 -1.1725769 -8.220459 -4.75589l0 0c-0.9567261 -3.5833435 1.1725464 -7.2637634 4.7558594 -8.2204895z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m777.696 476.30304l-9.543274 17.795288" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m777.69604 476.30304l-6.7077026 12.50766" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m769.5328 488.03006l-0.68914795 4.779907l3.6004028 -3.2186584z" fill-rule="evenodd"/><path fill="#ead1dc" d="m740.5253 495.16968l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571411 1.96344 2.9622498 1.96344 4.740143c0 1.7778931 -0.7062988 3.4830017 -1.96344 4.7401733l0 0c-2.61792 2.6178894 -6.8624268 2.6178894 -9.480347 0l0 0c-2.61792 -2.61792 -2.61792 -6.8624268 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m740.5253 495.16968l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571411 1.96344 2.9622498 1.96344 4.740143c0 1.7778931 -0.7062988 3.4830017 -1.96344 4.7401733l0 0c-2.61792 2.6178894 -6.8624268 2.6178894 -9.480347 0l0 0c-2.61792 -2.61792 -2.61792 -6.8624268 0 -9.480316z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m777.696 476.30304l-27.684998 18.86615" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m777.69604 476.30304l-22.726868 15.487305" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m754.03906 490.42545l-2.8200073 3.9204712l4.680298 -1.1906128z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m634.7367 374.6888c0 36.33069 57.007874 72.66141 114.01575 72.66141" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m634.7367 374.6888c0 18.165344 14.252014 36.33072 35.629944 49.954712c10.688965 6.8120117 23.159424 12.4887085 36.52069 16.462372c6.680603 1.9868164 13.583862 3.547882 20.598572 4.612274c3.5072632 0.53219604 7.0424194 0.94021606 10.591553 1.2151794c0.88720703 0.0687561 1.7753296 0.12915039 2.6641846 0.18115234c0.44439697 0.025970459 0.888916 0.049835205 1.3335571 0.07159424l0.678772 0.029907227" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m742.71704 448.8673l4.5739136 -1.5497742l-4.500061 -1.7528687z" fill-rule="evenodd"/><path fill="#fce5cd" d="m748.7511 418.41327l57.88977 0l0 57.88977l-57.88977 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m748.7511 418.41327l57.88977 0l0 57.88977l-57.88977 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m704.3932 501.81656l140.44092 0l0 25.448822l-140.44092 0z" fill-rule="evenodd"/><path fill="#000000" d="m718.0963 516.48096l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm1.3398438 -0.0625q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.6210938 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7617188 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm2.6796875 0l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.6054688 2.46875l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.203125 -2.84375l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7773438 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm6.734375 0l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm6.3007812 0l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0z" fill-rule="nonzero"/><path fill="#000000" d="m713.75256 526.65283l0.71875 -0.0625q0.046875 0.4375 0.234375 0.71875q0.1875 0.265625 0.578125 0.4375q0.390625 0.171875 0.875 0.171875q0.4375 0 0.765625 -0.125q0.328125 -0.140625 0.484375 -0.359375q0.171875 -0.234375 0.171875 -0.5q0 -0.265625 -0.15625 -0.46875q-0.15625 -0.203125 -0.515625 -0.328125q-0.234375 -0.09375 -1.03125 -0.28125q-0.78125 -0.1875 -1.09375 -0.359375q-0.40625 -0.21875 -0.609375 -0.53125q-0.203125 -0.328125 -0.203125 -0.71875q0 -0.4375 0.25 -0.8125q0.25 -0.375 0.71875 -0.5625q0.46875 -0.203125 1.046875 -0.203125q0.640625 0 1.125 0.203125q0.484375 0.203125 0.75 0.609375q0.265625 0.390625 0.28125 0.90625l-0.734375 0.046875q-0.046875 -0.546875 -0.390625 -0.8125q-0.34375 -0.28125 -1.0 -0.28125q-0.6875 0 -1.0 0.25q-0.3125 0.25 -0.3125 0.609375q0 0.3125 0.21875 0.5q0.21875 0.203125 1.140625 0.421875q0.921875 0.203125 1.265625 0.359375q0.5 0.234375 0.734375 0.59375q0.25 0.34375 0.25 0.796875q0 0.46875 -0.265625 0.875q-0.265625 0.390625 -0.75 0.625q-0.484375 0.21875 -1.109375 0.21875q-0.765625 0 -1.296875 -0.21875q-0.53125 -0.234375 -0.828125 -0.6875q-0.296875 -0.453125 -0.3125 -1.03125zm5.5078125 3.4375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm6.6523438 0.703125l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1367188 0l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.6835938 1.5625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.203125 2.46875l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm6.3007812 0l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0zm7.1679688 -0.921875l0 -1.578125l-1.546875 0l0 -0.65625l1.546875 0l0 -1.5625l0.671875 0l0 1.5625l1.5625 0l0 0.65625l-1.5625 0l0 1.578125l-0.671875 0zm6.703125 0.25l0 0.671875l-3.78125 0q-0.015625 -0.25 0.078125 -0.484375q0.140625 -0.390625 0.453125 -0.765625q0.328125 -0.375 0.921875 -0.875q0.9375 -0.765625 1.265625 -1.203125q0.328125 -0.453125 0.328125 -0.84375q0 -0.421875 -0.296875 -0.703125q-0.296875 -0.296875 -0.78125 -0.296875q-0.5 0 -0.8125 0.3125q-0.296875 0.296875 -0.3125 0.84375l-0.71875 -0.078125q0.078125 -0.8125 0.5625 -1.234375q0.484375 -0.421875 1.296875 -0.421875q0.828125 0 1.296875 0.453125q0.484375 0.453125 0.484375 1.140625q0 0.34375 -0.140625 0.671875q-0.140625 0.328125 -0.46875 0.703125q-0.3125 0.359375 -1.078125 1.0q-0.625 0.53125 -0.8125 0.71875q-0.171875 0.1875 -0.296875 0.390625l2.8125 0zm0.74609375 -2.15625q0 -1.015625 0.203125 -1.625q0.21875 -0.625 0.625 -0.953125q0.421875 -0.34375 1.046875 -0.34375q0.453125 0 0.796875 0.1875q0.359375 0.1875 0.578125 0.53125q0.234375 0.34375 0.359375 0.859375q0.125 0.5 0.125 1.34375q0 1.015625 -0.203125 1.640625q-0.203125 0.609375 -0.625 0.953125q-0.40625 0.328125 -1.03125 0.328125q-0.828125 0 -1.296875 -0.59375q-0.578125 -0.71875 -0.578125 -2.328125zm0.734375 0q0 1.40625 0.328125 1.875q0.328125 0.46875 0.8125 0.46875q0.484375 0 0.8125 -0.46875q0.328125 -0.46875 0.328125 -1.875q0 -1.40625 -0.328125 -1.875q-0.328125 -0.46875 -0.828125 -0.46875q-0.484375 0 -0.765625 0.40625q-0.359375 0.53125 -0.359375 1.9375zm3.7148438 0q0 -1.015625 0.203125 -1.625q0.21875 -0.625 0.625 -0.953125q0.421875 -0.34375 1.046875 -0.34375q0.453125 0 0.796875 0.1875q0.359375 0.1875 0.578125 0.53125q0.234375 0.34375 0.359375 0.859375q0.125 0.5 0.125 1.34375q0 1.015625 -0.203125 1.640625q-0.203125 0.609375 -0.625 0.953125q-0.40625 0.328125 -1.03125 0.328125q-0.828125 0 -1.296875 -0.59375q-0.578125 -0.71875 -0.578125 -2.328125zm0.734375 0q0 1.40625 0.328125 1.875q0.328125 0.46875 0.8125 0.46875q0.484375 0 0.8125 -0.46875q0.328125 -0.46875 0.328125 -1.875q0 -1.40625 -0.328125 -1.875q-0.328125 -0.46875 -0.828125 -0.46875q-0.484375 0 -0.765625 0.40625q-0.359375 0.53125 -0.359375 1.9375zm3.7148438 0q0 -1.015625 0.203125 -1.625q0.21875 -0.625 0.625 -0.953125q0.421875 -0.34375 1.046875 -0.34375q0.453125 0 0.796875 0.1875q0.359375 0.1875 0.578125 0.53125q0.234375 0.34375 0.359375 0.859375q0.125 0.5 0.125 1.34375q0 1.015625 -0.203125 1.640625q-0.203125 0.609375 -0.625 0.953125q-0.40625 0.328125 -1.03125 0.328125q-0.828125 0 -1.296875 -0.59375q-0.578125 -0.71875 -0.578125 -2.328125zm0.734375 0q0 1.40625 0.328125 1.875q0.328125 0.46875 0.8125 0.46875q0.484375 0 0.8125 -0.46875q0.328125 -0.46875 0.328125 -1.875q0 -1.40625 -0.328125 -1.875q-0.328125 -0.46875 -0.828125 -0.46875q-0.484375 0 -0.765625 0.40625q-0.359375 0.53125 -0.359375 1.9375z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m818.1417 374.19946c0 6.7401733 0.01574707 10.11026 0.03149414 13.480316c0.01574707 3.3700867 0.03149414 6.7401733 0.03149414 13.480316" fill-rule="evenodd"/><path stroke="#ff0000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="1.0,3.0" d="m818.1417 374.19946c0 6.7401733 0.01574707 10.11026 0.03149414 13.480316c0.007873535 1.6850586 0.01574707 3.3700867 0.02166748 5.4763794l0.0040283203 2.0039368" fill-rule="evenodd"/><path fill="#ff0000" stroke="#ff0000" stroke-width="1.0" stroke-linecap="butt" d="m816.5472 395.1617l1.6561279 4.536499l1.6473389 -4.5397034z" fill-rule="evenodd"/><path fill="#ead1dc" d="m779.822 498.16632l0 0c0.9567261 -3.574646 4.630066 -5.696869 8.204712 -4.740143l0 0c1.7166138 0.45941162 3.18042 1.5819397 4.069336 3.120636c0.88897705 1.5386658 1.130249 3.3674622 0.6708374 5.084076l0 0c-0.9567261 3.5746155 -4.630127 5.696869 -8.204712 4.740143l0 0c-3.574646 -0.95669556 -5.6968994 -4.6300964 -4.7401733 -8.204712z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m779.822 498.16632l0 0c0.9567261 -3.574646 4.630066 -5.696869 8.204712 -4.740143l0 0c1.7166138 0.45941162 3.18042 1.5819397 4.069336 3.120636c0.88897705 1.5386658 1.130249 3.3674622 0.6708374 5.084076l0 0c-0.9567261 3.5746155 -4.630127 5.696869 -8.204712 4.740143l0 0c-3.574646 -0.95669556 -5.6968994 -4.6300964 -4.7401733 -8.204712z" fill-rule="evenodd"/><path fill="#ead1dc" d="m801.95544 496.55496l0 0c1.8525391 -3.2093506 5.9560547 -4.3092346 9.165344 -2.4566956l0 0c1.5411987 0.8896179 2.6658325 2.3550415 3.126587 4.073883c0.46069336 1.7188416 0.21972656 3.550293 -0.66986084 5.091461l0 0c-1.8525391 3.2093506 -5.9560547 4.3092346 -9.165344 2.4566956l0 0c-3.2093506 -1.8525391 -4.309265 -5.956024 -2.456726 -9.165344z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m801.95544 496.55496l0 0c1.8525391 -3.2093506 5.9560547 -4.3092346 9.165344 -2.4566956l0 0c1.5411987 0.8896179 2.6658325 2.3550415 3.126587 4.073883c0.46069336 1.7188416 0.21972656 3.550293 -0.66986084 5.091461l0 0c-1.8525391 3.2093506 -5.9560547 4.3092346 -9.165344 2.4566956l0 0c-3.2093506 -1.8525391 -4.309265 -5.956024 -2.456726 -9.165344z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m777.696 476.30304l28.346497 17.13385" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m777.69604 476.30304l23.211609 14.03009" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m800.0532 491.7467l4.738159 0.93395996l-3.029358 -3.761078z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m777.696 476.30304l10.3307495 17.13385" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m777.69604 476.30304l7.232605 11.995544" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m783.51416 489.15146l3.7577515 3.0334778l-0.928772 -4.739197z" fill-rule="evenodd"/><path fill="#ead1dc" d="m892.8401 493.4265l0 0c3.583313 -0.95669556 7.263733 1.1725769 8.220459 4.7559204l0 0c0.45941162 1.7207642 0.21643066 3.5535889 -0.6754761 5.095215c-0.89190674 1.541626 -2.3596802 2.6658325 -4.0804443 3.1252441l0 0c-3.583313 0.9567261 -7.263733 -1.1725769 -8.220459 -4.75589l0 0c-0.9567261 -3.5833435 1.1725464 -7.2637634 4.7559204 -8.2204895z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m892.8401 493.4265l0 0c3.583313 -0.95669556 7.263733 1.1725769 8.220459 4.7559204l0 0c0.45941162 1.7207642 0.21643066 3.5535889 -0.6754761 5.095215c-0.89190674 1.541626 -2.3596802 2.6658325 -4.0804443 3.1252441l0 0c-3.583313 0.9567261 -7.263733 -1.1725769 -8.220459 -4.75589l0 0c-0.9567261 -3.5833435 1.1725464 -7.2637634 4.7559204 -8.2204895z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m905.696 476.30304l-7.748047 17.795288" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m905.69604 476.30304l-5.352844 12.294067" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m898.8288 487.93774l-0.29718018 4.8201904l3.3259888 -3.5014343z" fill-rule="evenodd"/><path fill="#ead1dc" d="m870.30457 495.16968l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571411 1.96344 2.9622498 1.96344 4.740143c0 1.7778931 -0.7062988 3.4830017 -1.96344 4.7401733l0 0c-2.61792 2.6178894 -6.8624268 2.6178894 -9.480347 0l0 0c-2.61792 -2.61792 -2.61792 -6.8624268 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m870.30457 495.16968l0 0c2.61792 -2.61792 6.8624268 -2.61792 9.480347 0l0 0c1.2571411 1.2571411 1.96344 2.9622498 1.96344 4.740143c0 1.7778931 -0.7062988 3.4830017 -1.96344 4.7401733l0 0c-2.61792 2.6178894 -6.8624268 2.6178894 -9.480347 0l0 0c-2.61792 -2.61792 -2.61792 -6.8624268 0 -9.480316z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m905.696 476.30304l-25.921265 18.86615" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m905.69604 476.30304l-21.07013 15.335327" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m883.65393 490.30292l-2.6972046 4.0059814l4.6411743 -1.3350525z" fill-rule="evenodd"/><path fill="#fce5cd" d="m876.7511 418.41327l57.88977 0l0 57.88977l-57.88977 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m876.7511 418.41327l57.88977 0l0 57.88977l-57.88977 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m843.86884 401.40683l87.55902 0l0 15.874023l-87.55902 0z" fill-rule="evenodd"/><path fill="#000000" d="m848.4626 407.35245l2.28125 0q0.6875 0 1.015625 0.0625q0.328125 0.0625 0.59375 0.25q0.265625 0.171875 0.4375 0.46875q0.1875 0.296875 0.1875 0.671875q0 0.390625 -0.21875 0.734375q-0.21875 0.328125 -0.59375 0.5q0.53125 0.15625 0.8125 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.1875 0.765625q-0.1875 0.359375 -0.5 0.578125q-0.3125 0.21875 -0.765625 0.265625q-0.296875 0.03125 -1.40625 0.046875l-1.9375 0l0 -5.734375zm1.15625 0.953125l0 1.328125l0.75 0q0.671875 0 0.84375 -0.015625q0.296875 -0.03125 0.46875 -0.203125q0.171875 -0.171875 0.171875 -0.453125q0 -0.265625 -0.15625 -0.421875q-0.140625 -0.171875 -0.4375 -0.203125q-0.171875 -0.03125 -0.984375 -0.03125l-0.65625 0zm0 2.28125l0 1.53125l1.0625 0q0.625 0 0.796875 -0.03125q0.25 -0.046875 0.40625 -0.21875q0.171875 -0.1875 0.171875 -0.5q0 -0.25 -0.125 -0.421875q-0.125 -0.1875 -0.359375 -0.265625q-0.234375 -0.09375 -1.03125 -0.09375l-0.921875 0zm4.6054688 2.5l0 -5.734375l1.09375 0l0 5.734375l-1.09375 0zm1.9726562 -2.140625q0 -0.546875 0.265625 -1.046875q0.265625 -0.515625 0.75 -0.78125q0.5 -0.28125 1.109375 -0.28125q0.953125 0 1.546875 0.625q0.609375 0.609375 0.609375 1.53125q0 0.953125 -0.609375 1.578125q-0.609375 0.609375 -1.53125 0.609375q-0.578125 0 -1.09375 -0.25q-0.515625 -0.265625 -0.78125 -0.765625q-0.265625 -0.5 -0.265625 -1.21875zm1.125 0.0625q0 0.625 0.28125 0.953125q0.296875 0.328125 0.734375 0.328125q0.421875 0 0.703125 -0.328125q0.296875 -0.328125 0.296875 -0.953125q0 -0.609375 -0.296875 -0.9375q-0.28125 -0.328125 -0.703125 -0.328125q-0.4375 0 -0.734375 0.328125q-0.28125 0.328125 -0.28125 0.9375zm7.6210938 -0.84375l-1.078125 0.1875q-0.046875 -0.3125 -0.25 -0.46875q-0.1875 -0.171875 -0.5 -0.171875q-0.40625 0 -0.65625 0.28125q-0.234375 0.28125 -0.234375 0.9375q0 0.75 0.234375 1.0625q0.25 0.296875 0.671875 0.296875q0.3125 0 0.515625 -0.171875q0.203125 -0.1875 0.28125 -0.625l1.078125 0.1875q-0.171875 0.734375 -0.65625 1.125q-0.46875 0.375 -1.265625 0.375q-0.90625 0 -1.453125 -0.578125q-0.546875 -0.578125 -0.546875 -1.59375q0 -1.015625 0.546875 -1.59375q0.546875 -0.578125 1.46875 -0.578125q0.765625 0 1.203125 0.328125q0.453125 0.328125 0.640625 1.0zm0.79296875 2.921875l0 -5.734375l1.109375 0l0 3.046875l1.28125 -1.46875l1.34375 0l-1.40625 1.515625l1.515625 2.640625l-1.1875 0l-1.046875 -1.859375l-0.5 0.53125l0 1.328125l-1.109375 0zm6.734375 0l0 -5.734375l1.125 0l2.34375 3.828125l0 -3.828125l1.078125 0l0 5.734375l-1.15625 0l-2.3125 -3.734375l0 3.734375l-1.078125 0zm7.0117188 -0.828125l0 -1.484375l-1.5 0l0 -1.03125l1.5 0l0 -1.484375l1.0 0l0 1.484375l1.515625 0l0 1.03125l-1.515625 0l0 1.484375l-1.0 0zm3.140625 -0.6875l1.0625 -0.140625q0.0625 0.40625 0.28125 0.625q0.21875 0.21875 0.53125 0.21875q0.34375 0 0.578125 -0.25q0.234375 -0.265625 0.234375 -0.703125q0 -0.421875 -0.234375 -0.65625q-0.21875 -0.25 -0.53125 -0.25q-0.21875 0 -0.5 0.09375l0.109375 -0.90625q0.453125 0.015625 0.6875 -0.1875q0.234375 -0.203125 0.234375 -0.546875q0 -0.28125 -0.171875 -0.453125q-0.171875 -0.171875 -0.453125 -0.171875q-0.28125 0 -0.484375 0.203125q-0.203125 0.1875 -0.25 0.5625l-1.0 -0.171875q0.09375 -0.53125 0.3125 -0.828125q0.21875 -0.3125 0.59375 -0.484375q0.375 -0.1875 0.859375 -0.1875q0.796875 0 1.296875 0.515625q0.390625 0.421875 0.390625 0.953125q0 0.75 -0.8125 1.203125q0.484375 0.109375 0.78125 0.484375q0.296875 0.359375 0.296875 0.875q0 0.75 -0.5625 1.28125q-0.546875 0.53125 -1.359375 0.53125q-0.78125 0 -1.296875 -0.4375q-0.5 -0.453125 -0.59375 -1.171875zm6.3554688 -4.234375q0.828125 0 1.296875 0.59375q0.5625 0.703125 0.5625 2.328125q0 1.625 -0.5625 2.34375q-0.46875 0.578125 -1.296875 0.578125q-0.84375 0 -1.359375 -0.640625q-0.5 -0.640625 -0.5 -2.296875q0 -1.609375 0.5625 -2.328125q0.453125 -0.578125 1.296875 -0.578125zm0 0.90625q-0.203125 0 -0.359375 0.125q-0.15625 0.125 -0.25 0.453125q-0.109375 0.4375 -0.109375 1.4375q0 1.015625 0.09375 1.390625q0.109375 0.375 0.265625 0.5q0.15625 0.125 0.359375 0.125q0.1875 0 0.34375 -0.125q0.15625 -0.125 0.25 -0.453125q0.109375 -0.421875 0.109375 -1.4375q0 -1.0 -0.109375 -1.375q-0.09375 -0.390625 -0.25 -0.515625q-0.15625 -0.125 -0.34375 -0.125zm4.4492188 -0.90625q0.828125 0 1.296875 0.59375q0.5625 0.703125 0.5625 2.328125q0 1.625 -0.5625 2.34375q-0.46875 0.578125 -1.296875 0.578125q-0.84375 0 -1.359375 -0.640625q-0.5 -0.640625 -0.5 -2.296875q0 -1.609375 0.5625 -2.328125q0.453125 -0.578125 1.296875 -0.578125zm0 0.90625q-0.203125 0 -0.359375 0.125q-0.15625 0.125 -0.25 0.453125q-0.109375 0.4375 -0.109375 1.4375q0 1.015625 0.09375 1.390625q0.109375 0.375 0.265625 0.5q0.15625 0.125 0.359375 0.125q0.1875 0 0.34375 -0.125q0.15625 -0.125 0.25 -0.453125q0.109375 -0.421875 0.109375 -1.4375q0 -1.0 -0.109375 -1.375q-0.09375 -0.390625 -0.25 -0.515625q-0.15625 -0.125 -0.34375 -0.125zm4.4492188 -0.90625q0.828125 0 1.296875 0.59375q0.5625 0.703125 0.5625 2.328125q0 1.625 -0.5625 2.34375q-0.46875 0.578125 -1.296875 0.578125q-0.84375 0 -1.359375 -0.640625q-0.5 -0.640625 -0.5 -2.296875q0 -1.609375 0.5625 -2.328125q0.453125 -0.578125 1.296875 -0.578125zm0 0.90625q-0.203125 0 -0.359375 0.125q-0.15625 0.125 -0.25 0.453125q-0.109375 0.4375 -0.109375 1.4375q0 1.015625 0.09375 1.390625q0.109375 0.375 0.265625 0.5q0.15625 0.125 0.359375 0.125q0.1875 0 0.34375 -0.125q0.15625 -0.125 0.25 -0.453125q0.109375 -0.421875 0.109375 -1.4375q0 -1.0 -0.109375 -1.375q-0.09375 -0.390625 -0.25 -0.515625q-0.15625 -0.125 -0.34375 -0.125zm4.4492188 -0.90625q0.828125 0 1.296875 0.59375q0.5625 0.703125 0.5625 2.328125q0 1.625 -0.5625 2.34375q-0.46875 0.578125 -1.296875 0.578125q-0.84375 0 -1.359375 -0.640625q-0.5 -0.640625 -0.5 -2.296875q0 -1.609375 0.5625 -2.328125q0.453125 -0.578125 1.296875 -0.578125zm0 0.90625q-0.203125 0 -0.359375 0.125q-0.15625 0.125 -0.25 0.453125q-0.109375 0.4375 -0.109375 1.4375q0 1.015625 0.09375 1.390625q0.109375 0.375 0.265625 0.5q0.15625 0.125 0.359375 0.125q0.1875 0 0.34375 -0.125q0.15625 -0.125 0.25 -0.453125q0.109375 -0.421875 0.109375 -1.4375q0 -1.0 -0.109375 -1.375q-0.09375 -0.390625 -0.25 -0.515625q-0.15625 -0.125 -0.34375 -0.125z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m832.3932 501.81656l140.44092 0l0 25.448822l-140.44092 0z" fill-rule="evenodd"/><path fill="#000000" d="m846.0963 516.48096l0.765625 0.203125q-0.25 0.921875 -0.875 1.421875q-0.609375 0.484375 -1.5 0.484375q-0.921875 0 -1.515625 -0.375q-0.578125 -0.375 -0.875 -1.09375q-0.296875 -0.71875 -0.296875 -1.53125q0 -0.890625 0.328125 -1.5625q0.34375 -0.671875 0.96875 -1.015625q0.640625 -0.34375 1.40625 -0.34375q0.859375 0 1.4375 0.4375q0.59375 0.4375 0.8125 1.234375l-0.734375 0.171875q-0.203125 -0.625 -0.59375 -0.90625q-0.375 -0.28125 -0.9375 -0.28125q-0.671875 0 -1.109375 0.3125q-0.4375 0.3125 -0.625 0.84375q-0.171875 0.53125 -0.171875 1.109375q0 0.71875 0.203125 1.265625q0.21875 0.546875 0.65625 0.828125q0.453125 0.265625 0.984375 0.265625q0.640625 0 1.078125 -0.359375q0.4375 -0.375 0.59375 -1.109375zm1.3398438 -0.0625q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm4.6210938 0l0 -3.609375l-0.625 0l0 -0.546875l0.625 0l0 -0.4375q0 -0.421875 0.0625 -0.625q0.109375 -0.265625 0.359375 -0.4375q0.265625 -0.171875 0.71875 -0.171875q0.296875 0 0.65625 0.078125l-0.109375 0.609375q-0.21875 -0.046875 -0.40625 -0.046875q-0.328125 0 -0.46875 0.140625q-0.125 0.140625 -0.125 0.515625l0 0.375l0.8125 0l0 0.546875l-0.8125 0l0 3.609375l-0.6875 0zm2.0507812 -4.921875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7617188 0l0 -4.15625l0.640625 0l0 0.640625q0.234375 -0.453125 0.4375 -0.59375q0.21875 -0.140625 0.453125 -0.140625q0.359375 0 0.734375 0.234375l-0.25 0.65625q-0.25 -0.15625 -0.515625 -0.15625q-0.234375 0 -0.421875 0.140625q-0.171875 0.140625 -0.25 0.375q-0.125 0.375 -0.125 0.828125l0 2.171875l-0.703125 0zm2.6796875 0l0 -4.15625l0.625 0l0 0.59375q0.203125 -0.3125 0.515625 -0.5q0.328125 -0.1875 0.75 -0.1875q0.453125 0 0.75 0.203125q0.296875 0.1875 0.421875 0.53125q0.484375 -0.734375 1.28125 -0.734375q0.609375 0 0.9375 0.34375q0.34375 0.34375 0.34375 1.0625l0 2.84375l-0.703125 0l0 -2.609375q0 -0.421875 -0.078125 -0.609375q-0.0625 -0.1875 -0.25 -0.296875q-0.171875 -0.125 -0.40625 -0.125q-0.4375 0 -0.734375 0.296875q-0.28125 0.296875 -0.28125 0.9375l0 2.40625l-0.703125 0l0 -2.703125q0 -0.46875 -0.171875 -0.703125q-0.171875 -0.234375 -0.5625 -0.234375q-0.296875 0 -0.5625 0.15625q-0.25 0.15625 -0.359375 0.46875q-0.109375 0.296875 -0.109375 0.859375l0 2.15625l-0.703125 0zm9.5078125 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.6054688 2.46875l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.203125 -2.84375l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.7773438 0l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm6.734375 0l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm6.3007812 0l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0z" fill-rule="nonzero"/><path fill="#000000" d="m841.75256 526.65283l0.71875 -0.0625q0.046875 0.4375 0.234375 0.71875q0.1875 0.265625 0.578125 0.4375q0.390625 0.171875 0.875 0.171875q0.4375 0 0.765625 -0.125q0.328125 -0.140625 0.484375 -0.359375q0.171875 -0.234375 0.171875 -0.5q0 -0.265625 -0.15625 -0.46875q-0.15625 -0.203125 -0.515625 -0.328125q-0.234375 -0.09375 -1.03125 -0.28125q-0.78125 -0.1875 -1.09375 -0.359375q-0.40625 -0.21875 -0.609375 -0.53125q-0.203125 -0.328125 -0.203125 -0.71875q0 -0.4375 0.25 -0.8125q0.25 -0.375 0.71875 -0.5625q0.46875 -0.203125 1.046875 -0.203125q0.640625 0 1.125 0.203125q0.484375 0.203125 0.75 0.609375q0.265625 0.390625 0.28125 0.90625l-0.734375 0.046875q-0.046875 -0.546875 -0.390625 -0.8125q-0.34375 -0.28125 -1.0 -0.28125q-0.6875 0 -1.0 0.25q-0.3125 0.25 -0.3125 0.609375q0 0.3125 0.21875 0.5q0.21875 0.203125 1.140625 0.421875q0.921875 0.203125 1.265625 0.359375q0.5 0.234375 0.734375 0.59375q0.25 0.34375 0.25 0.796875q0 0.46875 -0.265625 0.875q-0.265625 0.390625 -0.75 0.625q-0.484375 0.21875 -1.109375 0.21875q-0.765625 0 -1.296875 -0.21875q-0.53125 -0.234375 -0.828125 -0.6875q-0.296875 -0.453125 -0.3125 -1.03125zm5.5078125 3.4375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm6.6523438 0.703125l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm3.9179688 2.46875l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm7.1367188 0l0 -0.53125q-0.390625 0.625 -1.15625 0.625q-0.5 0 -0.921875 -0.265625q-0.40625 -0.28125 -0.640625 -0.765625q-0.21875 -0.5 -0.21875 -1.140625q0 -0.609375 0.203125 -1.109375q0.203125 -0.515625 0.609375 -0.78125q0.421875 -0.28125 0.9375 -0.28125q0.375 0 0.65625 0.171875q0.296875 0.15625 0.484375 0.40625l0 -2.0625l0.703125 0l0 5.734375l-0.65625 0zm-2.21875 -2.078125q0 0.796875 0.328125 1.203125q0.34375 0.390625 0.796875 0.390625q0.46875 0 0.78125 -0.375q0.328125 -0.375 0.328125 -1.15625q0 -0.84375 -0.328125 -1.234375q-0.328125 -0.40625 -0.8125 -0.40625q-0.46875 0 -0.78125 0.390625q-0.3125 0.375 -0.3125 1.1875zm6.6835938 1.5625q-0.390625 0.328125 -0.75 0.46875q-0.359375 0.140625 -0.78125 0.140625q-0.671875 0 -1.046875 -0.328125q-0.359375 -0.34375 -0.359375 -0.859375q0 -0.3125 0.125 -0.5625q0.140625 -0.25 0.359375 -0.390625q0.234375 -0.15625 0.515625 -0.234375q0.203125 -0.0625 0.625 -0.109375q0.859375 -0.109375 1.25 -0.25q0.015625 -0.140625 0.015625 -0.171875q0 -0.4375 -0.203125 -0.609375q-0.265625 -0.234375 -0.796875 -0.234375q-0.5 0 -0.734375 0.171875q-0.234375 0.171875 -0.359375 0.609375l-0.6875 -0.09375q0.09375 -0.4375 0.3125 -0.703125q0.21875 -0.28125 0.625 -0.421875q0.40625 -0.15625 0.9375 -0.15625q0.53125 0 0.859375 0.125q0.34375 0.125 0.5 0.328125q0.15625 0.1875 0.21875 0.46875q0.03125 0.1875 0.03125 0.65625l0 0.9375q0 0.96875 0.046875 1.234375q0.046875 0.265625 0.171875 0.5l-0.734375 0q-0.109375 -0.21875 -0.140625 -0.515625zm-0.0625 -1.5625q-0.375 0.15625 -1.140625 0.265625q-0.4375 0.0625 -0.625 0.140625q-0.171875 0.078125 -0.265625 0.234375q-0.09375 0.140625 -0.09375 0.328125q0 0.28125 0.203125 0.46875q0.21875 0.1875 0.625 0.1875q0.40625 0 0.71875 -0.171875q0.328125 -0.1875 0.46875 -0.5q0.109375 -0.234375 0.109375 -0.703125l0 -0.25zm2.4492188 2.078125l-0.640625 0l0 -5.734375l0.703125 0l0 2.046875q0.4375 -0.5625 1.125 -0.5625q0.390625 0 0.734375 0.15625q0.34375 0.15625 0.5625 0.4375q0.21875 0.28125 0.34375 0.671875q0.125 0.390625 0.125 0.84375q0 1.0625 -0.53125 1.65625q-0.53125 0.578125 -1.265625 0.578125q-0.734375 0 -1.15625 -0.609375l0 0.515625zm0 -2.109375q0 0.75 0.203125 1.078125q0.328125 0.546875 0.890625 0.546875q0.46875 0 0.796875 -0.390625q0.34375 -0.40625 0.34375 -1.203125q0 -0.8125 -0.328125 -1.203125q-0.3125 -0.390625 -0.78125 -0.390625q-0.453125 0 -0.796875 0.40625q-0.328125 0.40625 -0.328125 1.15625zm3.7929688 2.109375l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm4.6367188 -1.34375l0.71875 0.09375q-0.171875 0.640625 -0.640625 1.0q-0.453125 0.34375 -1.1875 0.34375q-0.90625 0 -1.4375 -0.5625q-0.53125 -0.5625 -0.53125 -1.578125q0 -1.046875 0.53125 -1.625q0.546875 -0.578125 1.40625 -0.578125q0.828125 0 1.359375 0.578125q0.53125 0.5625 0.53125 1.59375q0 0.0625 -0.015625 0.1875l-3.09375 0q0.046875 0.671875 0.390625 1.046875q0.34375 0.359375 0.875 0.359375q0.375 0 0.640625 -0.203125q0.28125 -0.203125 0.453125 -0.65625zm-2.3125 -1.125l2.3125 0q-0.046875 -0.53125 -0.265625 -0.796875q-0.328125 -0.40625 -0.875 -0.40625q-0.484375 0 -0.8125 0.328125q-0.328125 0.328125 -0.359375 0.875zm6.203125 2.46875l0 -5.734375l2.140625 0q0.65625 0 1.046875 0.1875q0.40625 0.171875 0.625 0.53125q0.234375 0.359375 0.234375 0.75q0 0.375 -0.203125 0.703125q-0.203125 0.3125 -0.609375 0.515625q0.53125 0.15625 0.796875 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.171875 0.75q-0.15625 0.34375 -0.40625 0.53125q-0.25 0.1875 -0.640625 0.28125q-0.375 0.09375 -0.921875 0.09375l-2.171875 0zm0.75 -3.328125l1.234375 0q0.515625 0 0.734375 -0.0625q0.28125 -0.078125 0.421875 -0.28125q0.15625 -0.203125 0.15625 -0.5q0 -0.28125 -0.140625 -0.5q-0.140625 -0.21875 -0.390625 -0.296875q-0.25 -0.078125 -0.875 -0.078125l-1.140625 0l0 1.71875zm0 2.65625l1.421875 0q0.375 0 0.515625 -0.03125q0.265625 -0.046875 0.4375 -0.15625q0.1875 -0.109375 0.296875 -0.3125q0.109375 -0.21875 0.109375 -0.484375q0 -0.328125 -0.171875 -0.5625q-0.15625 -0.234375 -0.453125 -0.328125q-0.28125 -0.09375 -0.828125 -0.09375l-1.328125 0l0 1.96875zm4.5078125 0.671875l0 -5.734375l0.703125 0l0 5.734375l-0.703125 0zm1.5273438 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm6.6992188 0.5625l0.6875 0.078125q-0.109375 0.71875 -0.578125 1.125q-0.46875 0.40625 -1.140625 0.40625q-0.859375 0 -1.375 -0.546875q-0.515625 -0.5625 -0.515625 -1.609375q0 -0.671875 0.21875 -1.171875q0.234375 -0.5 0.6875 -0.75q0.453125 -0.265625 0.984375 -0.265625q0.671875 0 1.09375 0.34375q0.4375 0.34375 0.5625 0.96875l-0.6875 0.109375q-0.09375 -0.421875 -0.34375 -0.625q-0.25 -0.21875 -0.59375 -0.21875q-0.53125 0 -0.875 0.390625q-0.328125 0.375 -0.328125 1.203125q0 0.828125 0.3125 1.21875q0.328125 0.375 0.84375 0.375q0.421875 0 0.6875 -0.25q0.28125 -0.265625 0.359375 -0.78125zm1.296875 1.515625l0 -5.734375l0.703125 0l0 3.265625l1.671875 -1.6875l0.90625 0l-1.59375 1.546875l1.75 2.609375l-0.859375 0l-1.375 -2.125l-0.5 0.484375l0 1.640625l-0.703125 0zm6.3007812 0l0 -5.734375l0.78125 0l3.0 4.5l0 -4.5l0.734375 0l0 5.734375l-0.78125 0l-3.0 -4.5l0 4.5l-0.734375 0zm7.1679688 -0.921875l0 -1.578125l-1.546875 0l0 -0.65625l1.546875 0l0 -1.5625l0.671875 0l0 1.5625l1.5625 0l0 0.65625l-1.5625 0l0 1.578125l-0.671875 0zm3.015625 -0.59375l0.703125 -0.09375q0.109375 0.59375 0.40625 0.859375q0.296875 0.265625 0.703125 0.265625q0.5 0 0.84375 -0.34375q0.34375 -0.34375 0.34375 -0.84375q0 -0.484375 -0.328125 -0.796875q-0.3125 -0.328125 -0.796875 -0.328125q-0.203125 0 -0.5 0.078125l0.078125 -0.609375q0.078125 0 0.125 0q0.4375 0 0.796875 -0.234375q0.359375 -0.234375 0.359375 -0.71875q0 -0.390625 -0.265625 -0.640625q-0.25 -0.25 -0.671875 -0.25q-0.40625 0 -0.6875 0.265625q-0.265625 0.25 -0.34375 0.765625l-0.703125 -0.125q0.125 -0.703125 0.578125 -1.09375q0.46875 -0.390625 1.140625 -0.390625q0.46875 0 0.859375 0.203125q0.40625 0.203125 0.609375 0.546875q0.21875 0.34375 0.21875 0.734375q0 0.375 -0.203125 0.6875q-0.203125 0.296875 -0.59375 0.46875q0.515625 0.125 0.796875 0.5q0.28125 0.359375 0.28125 0.921875q0 0.75 -0.546875 1.28125q-0.546875 0.515625 -1.390625 0.515625q-0.75 0 -1.25 -0.453125q-0.5 -0.453125 -0.5625 -1.171875zm4.4335938 -1.3125q0 -1.015625 0.203125 -1.625q0.21875 -0.625 0.625 -0.953125q0.421875 -0.34375 1.046875 -0.34375q0.453125 0 0.796875 0.1875q0.359375 0.1875 0.578125 0.53125q0.234375 0.34375 0.359375 0.859375q0.125 0.5 0.125 1.34375q0 1.015625 -0.203125 1.640625q-0.203125 0.609375 -0.625 0.953125q-0.40625 0.328125 -1.03125 0.328125q-0.828125 0 -1.296875 -0.59375q-0.578125 -0.71875 -0.578125 -2.328125zm0.734375 0q0 1.40625 0.328125 1.875q0.328125 0.46875 0.8125 0.46875q0.484375 0 0.8125 -0.46875q0.328125 -0.46875 0.328125 -1.875q0 -1.40625 -0.328125 -1.875q-0.328125 -0.46875 -0.828125 -0.46875q-0.484375 0 -0.765625 0.40625q-0.359375 0.53125 -0.359375 1.9375zm3.7148438 0q0 -1.015625 0.203125 -1.625q0.21875 -0.625 0.625 -0.953125q0.421875 -0.34375 1.046875 -0.34375q0.453125 0 0.796875 0.1875q0.359375 0.1875 0.578125 0.53125q0.234375 0.34375 0.359375 0.859375q0.125 0.5 0.125 1.34375q0 1.015625 -0.203125 1.640625q-0.203125 0.609375 -0.625 0.953125q-0.40625 0.328125 -1.03125 0.328125q-0.828125 0 -1.296875 -0.59375q-0.578125 -0.71875 -0.578125 -2.328125zm0.734375 0q0 1.40625 0.328125 1.875q0.328125 0.46875 0.8125 0.46875q0.484375 0 0.8125 -0.46875q0.328125 -0.46875 0.328125 -1.875q0 -1.40625 -0.328125 -1.875q-0.328125 -0.46875 -0.828125 -0.46875q-0.484375 0 -0.765625 0.40625q-0.359375 0.53125 -0.359375 1.9375zm3.7148438 0q0 -1.015625 0.203125 -1.625q0.21875 -0.625 0.625 -0.953125q0.421875 -0.34375 1.046875 -0.34375q0.453125 0 0.796875 0.1875q0.359375 0.1875 0.578125 0.53125q0.234375 0.34375 0.359375 0.859375q0.125 0.5 0.125 1.34375q0 1.015625 -0.203125 1.640625q-0.203125 0.609375 -0.625 0.953125q-0.40625 0.328125 -1.03125 0.328125q-0.828125 0 -1.296875 -0.59375q-0.578125 -0.71875 -0.578125 -2.328125zm0.734375 0q0 1.40625 0.328125 1.875q0.328125 0.46875 0.8125 0.46875q0.484375 0 0.8125 -0.46875q0.328125 -0.46875 0.328125 -1.875q0 -1.40625 -0.328125 -1.875q-0.328125 -0.46875 -0.828125 -0.46875q-0.484375 0 -0.765625 0.40625q-0.359375 0.53125 -0.359375 1.9375zm3.7148438 0q0 -1.015625 0.203125 -1.625q0.21875 -0.625 0.625 -0.953125q0.421875 -0.34375 1.046875 -0.34375q0.453125 0 0.796875 0.1875q0.359375 0.1875 0.578125 0.53125q0.234375 0.34375 0.359375 0.859375q0.125 0.5 0.125 1.34375q0 1.015625 -0.203125 1.640625q-0.203125 0.609375 -0.625 0.953125q-0.40625 0.328125 -1.03125 0.328125q-0.828125 0 -1.296875 -0.59375q-0.578125 -0.71875 -0.578125 -2.328125zm0.734375 0q0 1.40625 0.328125 1.875q0.328125 0.46875 0.8125 0.46875q0.484375 0 0.8125 -0.46875q0.328125 -0.46875 0.328125 -1.875q0 -1.40625 -0.328125 -1.875q-0.328125 -0.46875 -0.828125 -0.46875q-0.484375 0 -0.765625 0.40625q-0.359375 0.53125 -0.359375 1.9375z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m825.6457 456.22504c4.322815 0 6.484253 0.01574707 8.64563 0.03149414c2.161438 0.01574707 4.322876 0.03149414 8.645691 0.03149414" fill-rule="evenodd"/><path stroke="#ff0000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="1.0,3.0" d="m825.6457 456.22504c4.322815 0 6.484253 0.01574707 8.64563 0.03149414l2.645691 0.016326904" fill-rule="evenodd"/><path fill="#ff0000" stroke="#ff0000" stroke-width="1.0" stroke-linecap="butt" d="m836.93286 457.92456l4.5422363 -1.6402588l-4.5338745 -1.663208z" fill-rule="evenodd"/><path fill="#ead1dc" d="m909.60126 498.16632l0 0c0.9567261 -3.574646 4.630127 -5.696869 8.204712 -4.740143l0 0c1.7166138 0.45941162 3.18042 1.5819397 4.069336 3.120636c0.88897705 1.5386658 1.130249 3.3674622 0.6708374 5.084076l0 0c-0.9567261 3.5746155 -4.630066 5.696869 -8.204712 4.740143l0 0c-3.574646 -0.95669556 -5.6968994 -4.6300964 -4.7401733 -8.204712z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m909.60126 498.16632l0 0c0.9567261 -3.574646 4.630127 -5.696869 8.204712 -4.740143l0 0c1.7166138 0.45941162 3.18042 1.5819397 4.069336 3.120636c0.88897705 1.5386658 1.130249 3.3674622 0.6708374 5.084076l0 0c-0.9567261 3.5746155 -4.630066 5.696869 -8.204712 4.740143l0 0c-3.574646 -0.95669556 -5.6968994 -4.6300964 -4.7401733 -8.204712z" fill-rule="evenodd"/><path fill="#ead1dc" d="m931.7347 496.55496l0 0c1.8525391 -3.2093506 5.9560547 -4.3092346 9.165344 -2.4566956l0 0c1.5411987 0.8896179 2.6658325 2.3550415 3.126587 4.073883c0.46069336 1.7188416 0.21972656 3.550293 -0.66986084 5.091461l0 0c-1.8525391 3.2093506 -5.9559937 4.3092346 -9.165344 2.4566956l0 0c-3.2093506 -1.8525391 -4.309265 -5.956024 -2.456726 -9.165344z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m931.7347 496.55496l0 0c1.8525391 -3.2093506 5.9560547 -4.3092346 9.165344 -2.4566956l0 0c1.5411987 0.8896179 2.6658325 2.3550415 3.126587 4.073883c0.46069336 1.7188416 0.21972656 3.550293 -0.66986084 5.091461l0 0c-1.8525391 3.2093506 -5.9559937 4.3092346 -9.165344 2.4566956l0 0c-3.2093506 -1.8525391 -4.309265 -5.956024 -2.456726 -9.165344z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m905.696 476.30304l30.11023 17.13385" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m905.69604 476.30304l24.895386 14.166412" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m929.77454 491.90503l4.7611084 0.8088379l-3.1273193 -3.6799927z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m905.696 476.30304l12.094482 17.13385" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m905.69604 476.30304l8.634338 12.232025" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m912.981 489.4876l3.9664307 2.7549438l-1.2676392 -4.6600037z" fill-rule="evenodd"/><path fill="#b7b7b7" d="m329.8504 50.3832l204.75592 0l0 230.89764l-204.75592 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m329.8504 50.3832l204.75592 0l0 230.89764l-204.75592 0z" fill-rule="evenodd"/><path fill="#00ffff" d="m517.83514 186.57622l0 0c-3.574646 -0.9567108 -5.6968384 -4.6300964 -4.7401733 -8.204727l0 0c0.45947266 -1.7165985 1.5819702 -3.1803741 3.1206665 -4.0693207c1.5386963 -0.8889618 3.3674927 -1.1302643 5.0841064 -0.6708374l0 0c3.574585 0.9567261 5.6968384 4.6300964 4.7401123 8.204727l0 0c-0.95666504 3.5746307 -4.630066 5.696869 -8.204712 4.740158z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m517.83514 186.57622l0 0c-3.574646 -0.9567108 -5.6968384 -4.6300964 -4.7401733 -8.204727l0 0c0.45947266 -1.7165985 1.5819702 -3.1803741 3.1206665 -4.0693207c1.5386963 -0.8889618 3.3674927 -1.1302643 5.0841064 -0.6708374l0 0c3.574585 0.9567261 5.6968384 4.6300964 4.7401123 8.204727l0 0c-0.95666504 3.5746307 -4.630066 5.696869 -8.204712 4.740158z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l52.15747 37.291336" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l47.27664 33.80168" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m477.45578 206.00386l4.652252 1.2957764l-2.7309265 -3.9830322z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l30.299194 59.149612" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l27.56372 53.809464" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m457.23343 225.42107l3.5390625 3.285965l-0.5989075 -4.7920685z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l41.259827 48.220474" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l37.35901 43.66159" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m467.24377 215.59398l4.2053833 2.3742676l-1.6953735 -4.5219727z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l-81.5748 9.32283" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l-75.61362 8.641556" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m355.33862 177.85905l-4.321228 2.1563416l4.6963196 1.1257629z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l19.338562 70.110245" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l17.743195 64.32625" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m447.29068 235.624l2.7989502 3.9355164l0.3855896 -4.813919z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l-61.700806 26.456696" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l-56.18637 24.092148" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m374.3025 193.43265l-3.519928 3.3064728l4.8217773 -0.27033997z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l-50.771667 37.35434" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l-45.93878 33.798615" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m384.22217 203.32672l-2.6765137 4.019806l4.634186 -1.3589172z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l-72.59842 15.527557" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l-66.73114 14.272644" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m364.06317 183.51599l-4.0922546 2.5643616l4.7831726 0.66604614z" fill-rule="evenodd"/><path fill="#ff9900" d="m402.1949 112.96879l57.88977 0l0 57.889763l-57.88977 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m402.1949 112.96879l57.88977 0l0 57.889763l-57.88977 0z" fill-rule="evenodd"/><path fill="#000000" d="m411.5855 141.7968q0 -1.421875 0.765625 -2.21875q0.765625 -0.8125 1.96875 -0.8125q0.796875 0 1.4375 0.375q0.640625 0.375 0.96875 1.0625q0.328125 0.671875 0.328125 1.53125q0 0.875 -0.359375 1.5625q-0.34375 0.6875 -0.984375 1.046875q-0.640625 0.34375 -1.390625 0.34375q-0.8125 0 -1.453125 -0.390625q-0.625 -0.390625 -0.953125 -1.0625q-0.328125 -0.671875 -0.328125 -1.4375zm0.78125 0.015625q0 1.03125 0.546875 1.640625q0.5625 0.59375 1.40625 0.59375q0.859375 0 1.40625 -0.59375q0.546875 -0.609375 0.546875 -1.71875q0 -0.703125 -0.234375 -1.21875q-0.234375 -0.53125 -0.6875 -0.8125q-0.453125 -0.28125 -1.015625 -0.28125q-0.8125 0 -1.390625 0.546875q-0.578125 0.546875 -0.578125 1.84375zm5.5820312 4.375l0 -5.75l0.640625 0l0 0.546875q0.21875 -0.3125 0.5 -0.46875q0.296875 -0.171875 0.703125 -0.171875q0.53125 0 0.9375 0.28125q0.40625 0.265625 0.609375 0.765625q0.203125 0.5 0.203125 1.09375q0 0.640625 -0.234375 1.15625q-0.21875 0.5 -0.65625 0.78125q-0.4375 0.265625 -0.90625 0.265625q-0.359375 0 -0.640625 -0.140625q-0.28125 -0.15625 -0.453125 -0.390625l0 2.03125l-0.703125 0zm0.640625 -3.640625q0 0.796875 0.3125 1.1875q0.328125 0.375 0.796875 0.375q0.46875 0 0.796875 -0.390625q0.328125 -0.40625 0.328125 -1.234375q0 -0.796875 -0.328125 -1.1875q-0.3125 -0.390625 -0.765625 -0.390625q-0.453125 0 -0.796875 0.421875q-0.34375 0.40625 -0.34375 1.21875zm5.3398438 1.421875l0.109375 0.609375q-0.296875 0.078125 -0.53125 0.078125q-0.390625 0 -0.609375 -0.125q-0.203125 -0.125 -0.296875 -0.3125q-0.078125 -0.203125 -0.078125 -0.84375l0 -2.390625l-0.515625 0l0 -0.546875l0.515625 0l0 -1.015625l0.703125 -0.421875l0 1.4375l0.703125 0l0 0.546875l-0.703125 0l0 2.4375q0 0.296875 0.03125 0.390625q0.046875 0.078125 0.125 0.125q0.078125 0.046875 0.234375 0.046875q0.125 0 0.3125 -0.015625zm0.69140625 -4.296875l0 -0.8125l0.703125 0l0 0.8125l-0.703125 0zm0 4.921875l0 -4.15625l0.703125 0l0 4.15625l-0.703125 0zm1.5117188 -2.078125q0 -1.15625 0.640625 -1.703125q0.53125 -0.46875 1.3125 -0.46875q0.84375 0 1.390625 0.5625q0.546875 0.5625 0.546875 1.546875q0 0.8125 -0.25 1.265625q-0.234375 0.453125 -0.703125 0.71875q-0.453125 0.25 -0.984375 0.25q-0.875 0 -1.421875 -0.5625q-0.53125 -0.5625 -0.53125 -1.609375zm0.71875 0q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.890625 0.390625q0.515625 0 0.859375 -0.390625q0.359375 -0.40625 0.359375 -1.21875q0 -0.78125 -0.359375 -1.171875q-0.34375 -0.390625 -0.859375 -0.390625q-0.53125 0 -0.890625 0.390625q-0.34375 0.390625 -0.34375 1.1875zm3.9960938 2.078125l0 -4.15625l0.625 0l0 0.59375q0.46875 -0.6875 1.328125 -0.6875q0.375 0 0.6875 0.140625q0.3125 0.140625 0.46875 0.359375q0.15625 0.21875 0.21875 0.515625q0.046875 0.1875 0.046875 0.6875l0 2.546875l-0.703125 0l0 -2.53125q0 -0.421875 -0.09375 -0.625q-0.078125 -0.21875 -0.296875 -0.34375q-0.203125 -0.140625 -0.484375 -0.140625q-0.4375 0 -0.765625 0.296875q-0.328125 0.28125 -0.328125 1.078125l0 2.265625l-0.703125 0zm5.6835938 0l2.203125 -5.734375l0.8125 0l2.34375 5.734375l-0.859375 0l-0.671875 -1.734375l-2.390625 0l-0.625 1.734375l-0.8125 0zm1.65625 -2.359375l1.9375 0l-0.59375 -1.578125q-0.265625 -0.71875 -0.40625 -1.1875q-0.109375 0.546875 -0.3125 1.09375l-0.625 1.671875z" fill-rule="nonzero"/><path fill="#ff00ff" d="m381.8342 219.18318l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571716 1.96344 2.9622498 1.96344 4.740158c0 1.7779083 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m381.8342 219.18318l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571716 1.96344 2.9622498 1.96344 4.740158c0 1.7779083 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#ff00ff" d="m426.59393 264.37085l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571716 1.96344 2.9622498 1.96344 4.7401733c0 1.7778931 -0.7062683 3.4829712 -1.96344 4.740143l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m426.59393 264.37085l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571716 1.96344 2.9622498 1.96344 4.7401733c0 1.7778931 -0.7062683 3.4829712 -1.96344 4.740143l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#ff00ff" d="m505.1442 195.78818l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571716 -1.2571716 2.9622498 -1.96344 4.740143 -1.96344c1.7779236 0 3.4829712 0.7062683 4.7401733 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m505.1442 195.78818l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571716 -1.2571716 2.9622498 -1.96344 4.740143 -1.96344c1.7779236 0 3.4829712 0.7062683 4.7401733 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l0.18896484 91.55905" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l0.1765747 85.55908" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m429.66464 256.42102l1.6610718 4.5346985l1.6423645 -4.541504z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l-39.811035 48.314957" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l-35.995544 43.684433" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m393.8695 213.49261l-1.6111145 4.5526733l4.1605835 -2.4519348z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l72.031494 20.18898" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l66.25415 18.569702" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m496.94812 191.01869l4.8154907 -0.36569214l-3.9239502 -2.8151855z" fill-rule="evenodd"/><path fill="#ff00ff" d="m494.2339 206.72075l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571716 -1.2571564 2.9622498 -1.96344 4.740143 -1.96344c1.7779236 0 3.4830017 0.70628357 4.7401733 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m494.2339 206.72075l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571716 -1.2571564 2.9622498 -1.96344 4.740143 -1.96344c1.7779236 0 3.4830017 0.70628357 4.7401733 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l63.08661 26.393707" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l57.551514 24.077957" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m488.05377 196.46027l4.8239746 0.22775269l-3.5489807 -3.2752533z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l81.95276 7.5275574" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l75.977875 6.97876" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m506.96658 179.48212l4.670166 -1.2297211l-4.3680115 -2.0598907z" fill-rule="evenodd"/><path fill="#ff00ff" d="m461.43616 239.49622l0 0c-2.61792 -2.61792 -2.61792 -6.8624115 0 -9.480316l0 0c1.2571716 -1.2571716 2.9622498 -1.96344 4.740143 -1.96344c1.7779236 0 3.4830017 0.7062683 4.7401733 1.96344l0 0c2.61792 2.6179047 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.6179047 -6.8623962 2.6179047 -9.480316 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m461.43616 239.49622l0 0c-2.61792 -2.61792 -2.61792 -6.8624115 0 -9.480316l0 0c1.2571716 -1.2571716 2.9622498 -1.96344 4.740143 -1.96344c1.7779236 0 3.4830017 0.7062683 4.7401733 1.96344l0 0c2.61792 2.6179047 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.6179047 -6.8623962 2.6179047 -9.480316 0z" fill-rule="evenodd"/><path fill="#ff00ff" d="m483.31244 217.6422l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571716 -1.2571716 2.9622498 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.7062683 4.740143 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m483.31244 217.6422l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571716 -1.2571716 2.9622498 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.7062683 4.740143 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0z" fill-rule="evenodd"/><path fill="#ff00ff" d="m472.391 228.56363l0 0c-2.61792 -2.6179047 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571716 -1.2571564 2.9622498 -1.9634247 4.7401733 -1.9634247c1.7778931 0 3.4829712 0.7062683 4.740143 1.9634247l0 0c2.61792 2.61792 2.61792 6.8624115 0 9.480316l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m472.391 228.56363l0 0c-2.61792 -2.6179047 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571716 -1.2571564 2.9622498 -1.9634247 4.7401733 -1.9634247c1.7778931 0 3.4829712 0.7062683 4.740143 1.9634247l0 0c2.61792 2.61792 2.61792 6.8624115 0 9.480316l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0z" fill-rule="evenodd"/><path fill="#ff00ff" d="m450.49243 250.43993l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571716 -1.2571716 2.9622498 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.7062683 4.740143 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.6179047 -6.8623962 2.6179047 -9.480316 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m450.49243 250.43993l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316l0 0c1.2571716 -1.2571716 2.9622498 -1.96344 4.7401733 -1.96344c1.7778931 0 3.4829712 0.7062683 4.740143 1.96344l0 0c2.61792 2.61792 2.61792 6.8623962 0 9.480316l0 0c-2.61792 2.6179047 -6.8623962 2.6179047 -9.480316 0z" fill-rule="evenodd"/><path fill="#ff00ff" d="m403.6771 241.02606l0 0c2.6178894 -2.61792 6.8623962 -2.61792 9.480286 0l0 0c1.2571716 1.2571716 1.96344 2.962265 1.96344 4.740158c0 1.7779083 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.6178894 2.61792 -6.8623962 2.61792 -9.480286 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m403.6771 241.02606l0 0c2.6178894 -2.61792 6.8623962 -2.61792 9.480286 0l0 0c1.2571716 1.2571716 1.96344 2.962265 1.96344 4.740158c0 1.7779083 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.6178894 2.61792 -6.8623962 2.61792 -9.480286 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#ff00ff" d="m414.60965 251.93637l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571716 1.96344 2.9622498 1.96344 4.740143c0 1.7779236 -0.7062683 3.4830017 -1.96344 4.7401733l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m414.60965 251.93637l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571716 1.96344 2.9622498 1.96344 4.740143c0 1.7779236 -0.7062683 3.4830017 -1.96344 4.7401733l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#ff00ff" d="m437.5853 256.64853l0 0c0 -3.7050781 3.0035706 -6.7086487 6.7086487 -6.7086487l0 0c1.7792664 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.7437286l0 0c0 3.7051086 -3.0035706 6.708679 -6.708679 6.708679l0 0c-3.7050781 0 -6.7086487 -3.0035706 -6.7086487 -6.708679z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m437.5853 256.64853l0 0c0 -3.7050781 3.0035706 -6.7086487 6.7086487 -6.7086487l0 0c1.7792664 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.7437286l0 0c0 3.7051086 -3.0035706 6.708679 -6.708679 6.708679l0 0c-3.7050781 0 -6.7086487 -3.0035706 -6.7086487 -6.708679z" fill-rule="evenodd"/><path fill="#ff00ff" d="m392.75565 230.10463l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571564 1.96344 2.9622498 1.96344 4.740158c0 1.7778931 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.6179047 -6.8623962 2.6179047 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m392.75565 230.10463l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571564 1.96344 2.9622498 1.96344 4.740158c0 1.7778931 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.6179047 -6.8623962 2.6179047 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#ff00ff" d="m370.9016 208.22833l0 0c2.61792 -2.6179047 6.8623962 -2.6179047 9.480316 0l0 0c1.2571716 1.2571716 1.96344 2.962265 1.96344 4.740158c0 1.7779083 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m370.9016 208.22833l0 0c2.61792 -2.6179047 6.8623962 -2.6179047 9.480316 0l0 0c1.2571716 1.2571716 1.96344 2.962265 1.96344 4.740158c0 1.7779083 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#ff00ff" d="m359.96906 197.31804l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571564 1.96344 2.9622498 1.96344 4.740158c0 1.7778931 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.6179047 -6.8623962 2.6179047 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8624115 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m359.96906 197.31804l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571564 1.96344 2.9622498 1.96344 4.740158c0 1.7778931 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.6179047 -6.8623962 2.6179047 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8624115 0 -9.480316z" fill-rule="evenodd"/><path fill="#ff00ff" d="m349.0476 186.39659l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571716 1.96344 2.9622498 1.96344 4.740158c0 1.7779083 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m349.0476 186.39659l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571716 1.96344 2.9622498 1.96344 4.740158c0 1.7779083 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#ff00ff" d="m338.11502 175.44174l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571716 1.96344 2.9622498 1.96344 4.740158c0 1.7779083 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m338.11502 175.44174l0 0c2.61792 -2.61792 6.8623962 -2.61792 9.480316 0l0 0c1.2571716 1.2571716 1.96344 2.9622498 1.96344 4.740158c0 1.7779083 -0.7062683 3.4829865 -1.96344 4.740158l0 0c-2.61792 2.61792 -6.8623962 2.61792 -9.480316 0l0 0c-2.61792 -2.61792 -2.61792 -6.8623962 0 -9.480316z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l-11.779541 79.11812" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l-10.895966 73.18353" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m418.61008 243.79884l0.9654541 4.7318573l2.302002 -4.2453766z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l-22.70868 68.18898" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l-20.812866 62.496353" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m408.75977 232.83302l0.13323975 4.8274994l3.001007 -3.783722z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l8.409454 81.03937" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l7.7901306 75.07143" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m437.28702 246.10045l2.1112976 4.343384l1.1744995 -4.6843414z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m431.13977 170.85855l-33.637787 57.291336" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m431.13977 170.85855l-30.599915 52.11725" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m399.11548 222.13951l-0.87332153 4.74971l3.7220764 -3.077118z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m398.96576 86.62205c0 6.598427 4.9055176 9.897636 9.811035 13.196854c4.9055176 3.2992096 9.811005 6.598419 9.811005 13.196846" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m398.96576 86.62205c0 6.598427 4.9055176 9.897636 9.811035 13.196854c2.4527283 1.6496048 4.905487 3.2992096 6.745056 5.3612137c0.4598999 0.5155029 0.8814392 1.0567856 1.255127 1.6302719c0.046722412 0.07170105 0.09265137 0.14389038 0.1378479 0.21659088l0.117614746 0.19387054" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m415.43716 107.649025l2.7716675 3.9547958l0.41888428 -4.811142z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m439.27023 86.62205c0 6.598427 1.4173279 9.897636 2.8346252 13.196854c1.4173279 3.2992096 2.8346558 6.598419 2.8346558 13.196846" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m439.27023 86.62205c0 6.598427 1.4172974 9.897636 2.8346252 13.196854c0.7086792 1.6496048 1.4173279 3.2992096 1.948822 5.3612137c0.13287354 0.5155029 0.2546692 1.0567856 0.3626709 1.6302719l0.04034424 0.224823" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m442.8103 107.16812l2.0115662 4.390465l1.281189 -4.656296z" fill-rule="evenodd"/><path fill="#00ff00" d="m392.2571 79.91338l0 0c0 -3.7050858 3.0035706 -6.7086563 6.7086487 -6.7086563l0 0c1.7792664 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.708679 6.708664l0 0c-3.7050781 0 -6.7086487 -3.0035706 -6.7086487 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m392.2571 79.91338l0 0c0 -3.7050858 3.0035706 -6.7086563 6.7086487 -6.7086563l0 0c1.7792664 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.9649353 2.9644928 1.9649353 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.708679 6.708664l0 0c-3.7050781 0 -6.7086487 -3.0035706 -6.7086487 -6.708664z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m418.28204 86.62205c0 6.5590515 3.1495972 9.838585 6.2991943 13.118111c3.1496277 3.2795258 6.299225 6.5590515 6.299225 13.118111" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m418.28204 86.62205c0 6.5590515 3.1495972 9.838585 6.2991943 13.118111c1.5747986 1.6397629 3.1495972 3.2795258 4.330719 5.3292313c0.29525757 0.5124283 0.5659485 1.0504761 0.80584717 1.6205521l0.105285645 0.26222992" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m428.19717 107.24326l2.4256592 4.1759796l0.82611084 -4.758156z" fill-rule="evenodd"/><path fill="#00ff00" d="m411.57336 79.91338l0 0c0 -3.7050858 3.0035706 -6.7086563 6.708679 -6.7086563l0 0c1.7792358 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.9649048 2.9644928 1.9649048 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.7086487 6.708664l0 0c-3.7051086 0 -6.708679 -3.0035706 -6.708679 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m411.57336 79.91338l0 0c0 -3.7050858 3.0035706 -6.7086563 6.708679 -6.7086563l0 0c1.7792358 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.9649048 2.9644928 1.9649048 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.7086487 6.708664l0 0c-3.7051086 0 -6.708679 -3.0035706 -6.708679 -6.708664z" fill-rule="evenodd"/><path fill="#00ff00" d="m432.56155 79.91338l0 0c0 -3.7050858 3.0035706 -6.7086563 6.708679 -6.7086563l0 0c1.7792358 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.9649048 2.9644928 1.9649048 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.7086487 6.708664l0 0c-3.7051086 0 -6.708679 -3.0035706 -6.708679 -6.708664z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.56155 79.91338l0 0c0 -3.7050858 3.0035706 -6.7086563 6.708679 -6.7086563l0 0c1.7792358 0 3.4856262 0.70680237 4.743744 1.96492c1.2581177 1.2581177 1.9649048 2.9644928 1.9649048 4.7437363l0 0c0 3.7050934 -3.0035706 6.708664 -6.7086487 6.708664l0 0c-3.7051086 0 -6.708679 -3.0035706 -6.708679 -6.708664z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m321.85828 -9.800525l223.9685 0l0 39.90551l-223.9685 0z" fill-rule="evenodd"/><path fill="#000000" d="m345.4964 17.119473l0 -13.359374l5.015625 0q1.53125 0 2.453125 0.40625024q0.921875 0.40625 1.4375 1.25q0.53125 0.84375 0.53125 1.765625q0 0.859375 -0.46875 1.625q-0.453125 0.75 -1.390625 1.203125q1.203125 0.359375 1.859375 1.21875q0.65625 0.859375 0.65625 2.015625q0 0.9375 -0.40625 1.75q-0.390625 0.796875 -0.984375 1.234374q-0.578125 0.4375 -1.453125 0.671875q-0.875 0.21875 -2.15625 0.21875l-5.09375 0zm1.78125 -7.749999l2.875 0q1.1875 0 1.6875 -0.140625q0.671875 -0.203125 1.015625 -0.671875q0.34375 -0.46875 0.34375 -1.171875q0 -0.65625 -0.328125 -1.15625q-0.3125 -0.515625 -0.90625 -0.703125q-0.59375 -0.1875 -2.03125 -0.1875l-2.65625 0l0 4.03125zm0 6.171875l3.3125 0q0.859375 0 1.203125 -0.0625q0.609375 -0.109375 1.015625 -0.359375q0.421875 -0.265625 0.6875 -0.75q0.265625 -0.484375 0.265625 -1.125q0 -0.75 -0.390625 -1.296875q-0.375 -0.546875 -1.0625 -0.765625q-0.671875 -0.234375 -1.953125 -0.234375l-3.078125 0l0 4.59375zm16.849823 0.390625q-0.921875 0.76562405 -1.765625 1.093749q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78124905 -0.859375 -1.984374q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59374905 0.40625 1.156249l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.187499zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.43749905 1.453125 0.43749905q0.9375 0 1.671875 -0.40624905q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm7.7819824 3.390625l0.234375 1.453124q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46874905 -0.203125 -1.937499l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm7.9176636 -2.078125l1.609375 0.21875q-0.265625 1.65625 -1.359375 2.609374q-1.078125 0.9375 -2.671875 0.9375q-1.984375 0 -3.1875 -1.296875q-1.203125 -1.296874 -1.203125 -3.718749q0 -1.578125 0.515625 -2.75q0.515625 -1.171875 1.578125 -1.75q1.0625 -0.59375 2.3125 -0.59375q1.578125 0 2.578125 0.796875q1.0 0.796875 1.28125 2.265625l-1.59375 0.234375q-0.234375 -0.96875 -0.8125 -1.453125q-0.578125 -0.5 -1.390625 -0.5q-1.234375 0 -2.015625 0.890625q-0.78125 0.890625 -0.78125 2.8125q0 1.953125 0.75 2.84375q0.75 0.875 1.953125 0.875q0.96875 0 1.609375 -0.59375q0.65625 -0.59375 0.828125 -1.828125zm3.015625 3.546874l0 -13.359374l1.640625 0l0 4.796875q1.140625 -1.328125 2.890625 -1.328125q1.078125 0 1.859375 0.421875q0.796875 0.421875 1.140625 1.171875q0.34375 0.75 0.34375 2.171875l0 6.124999l-1.640625 0l0 -6.124999q0 -1.234375 -0.53125 -1.796875q-0.53125 -0.5625 -1.515625 -0.5625q-0.71875 0 -1.359375 0.390625q-0.640625 0.375 -0.921875 1.015625q-0.265625 0.640625 -0.265625 1.78125l0 5.296874l-1.640625 0zm17.000732 -3.109374l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.312499q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.312499 -1.234375 -3.671874q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm15.406952 5.765624l0 -1.218749q-0.90625 1.437499 -2.703125 1.437499q-1.15625 0 -2.125 -0.640625q-0.96875 -0.640625 -1.5 -1.781249q-0.53125 -1.140625 -0.53125 -2.625q0 -1.453125 0.484375 -2.625q0.484375 -1.1875 1.4375 -1.8125q0.96875 -0.625 2.171875 -0.625q0.875 0 1.546875 0.375q0.6875 0.359375 1.109375 0.953125l0 -4.796875l1.640625 0l0 13.359374l-1.53125 0zm-5.171875 -4.828124q0 1.859375 0.78125 2.78125q0.78125 0.921875 1.84375 0.921875q1.078125 0 1.828125 -0.875q0.75 -0.890625 0.75 -2.6875q0 -1.984375 -0.765625 -2.90625q-0.765625 -0.9375 -1.890625 -0.9375q-1.078125 0 -1.8125 0.890625q-0.734375 0.890625 -0.734375 2.8125zm17.737427 4.828124l0 -11.781249l-4.40625 0l0 -1.5781252l10.578125 0l0 1.5781252l-4.40625 0l0 11.781249l-1.765625 0zm7.0782776 0l0 -9.671874l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.062499l-1.625 0zm12.540802 -1.187499q-0.921875 0.76562405 -1.765625 1.093749q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78124905 -0.859375 -1.984374q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59374905 0.40625 1.156249l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.187499zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.43749905 1.453125 0.43749905q0.9375 0 1.671875 -0.40624905q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm4.203827 4.859374l0 -9.671874l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953124l-1.640625 0l0 -5.890624q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281249l-1.640625 0zm9.719482 -2.890624l1.625 -0.25q0.125 0.96875 0.75 1.5q0.625 0.515625 1.75 0.515625q1.125 0 1.671875 -0.453125q0.546875 -0.46875 0.546875 -1.09375q0 -0.546875 -0.484375 -0.875q-0.328125 -0.21875 -1.671875 -0.546875q-1.8125 -0.46875 -2.515625 -0.796875q-0.6875 -0.328125 -1.046875 -0.90625q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.640625 0.296875 -1.1875q0.296875 -0.5625 0.8125 -0.921875q0.375 -0.28125 1.03125 -0.46875q0.671875 -0.203125 1.421875 -0.203125q1.140625 0 2.0 0.328125q0.859375 0.328125 1.265625 0.890625q0.421875 0.5625 0.578125 1.5l-1.609375 0.21875q-0.109375 -0.75 -0.640625 -1.171875q-0.515625 -0.421875 -1.46875 -0.421875q-1.140625 0 -1.625 0.375q-0.46875 0.375 -0.46875 0.875q0 0.3125 0.1875 0.578125q0.203125 0.265625 0.640625 0.4375q0.234375 0.09375 1.4375 0.421875q1.75 0.453125 2.4375 0.75q0.6875 0.296875 1.078125 0.859375q0.390625 0.5625 0.390625 1.40625q0 0.828125 -0.484375 1.546875q-0.46875 0.71874905 -1.375 1.124999q-0.90625 0.390625 -2.046875 0.390625q-1.875 0 -2.875 -0.78125q-0.984375 -0.78124905 -1.25 -2.328124zm16.296875 1.703125q-0.921875 0.76562405 -1.765625 1.093749q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78124905 -0.859375 -1.984374q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59374905 0.40625 1.156249l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.187499zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.43749905 1.453125 0.43749905q0.9375 0 1.671875 -0.40624905q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm10.516327 1.3125l1.609375 0.21875q-0.265625 1.65625 -1.359375 2.609374q-1.078125 0.9375 -2.671875 0.9375q-1.984375 0 -3.1875 -1.296875q-1.203125 -1.296874 -1.203125 -3.718749q0 -1.578125 0.515625 -2.75q0.515625 -1.171875 1.578125 -1.75q1.0625 -0.59375 2.3125 -0.59375q1.578125 0 2.578125 0.796875q1.0 0.796875 1.28125 2.265625l-1.59375 0.234375q-0.234375 -0.96875 -0.8125 -1.453125q-0.578125 -0.5 -1.390625 -0.5q-1.234375 0 -2.015625 0.890625q-0.78125 0.890625 -0.78125 2.8125q0 1.953125 0.75 2.84375q0.75 0.875 1.953125 0.875q0.96875 0 1.609375 -0.59375q0.65625 -0.59375 0.828125 -1.828125zm6.59375 2.078125l0.234375 1.453124q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46874905 -0.203125 -1.937499l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm1.6051941 -10.0l0 -1.8906252l1.640625 0l0 1.8906252l-1.640625 0zm0 11.468749l0 -9.671874l1.640625 0l0 9.671874l-1.640625 0zm3.535431 -4.843749q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.062499 -1.640625 1.656249q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.312499 -1.25 -3.765624zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.297607 4.843749l0 -9.671874l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953124l-1.640625 0l0 -5.890624q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281249l-1.640625 0zm9.719482 -2.890624l1.625 -0.25q0.125 0.96875 0.75 1.5q0.625 0.515625 1.75 0.515625q1.125 0 1.671875 -0.453125q0.546875 -0.46875 0.546875 -1.09375q0 -0.546875 -0.484375 -0.875q-0.328125 -0.21875 -1.671875 -0.546875q-1.8125 -0.46875 -2.515625 -0.796875q-0.6875 -0.328125 -1.046875 -0.90625q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.640625 0.296875 -1.1875q0.296875 -0.5625 0.8125 -0.921875q0.375 -0.28125 1.03125 -0.46875q0.671875 -0.203125 1.421875 -0.203125q1.140625 0 2.0 0.328125q0.859375 0.328125 1.265625 0.890625q0.421875 0.5625 0.578125 1.5l-1.609375 0.21875q-0.109375 -0.75 -0.640625 -1.171875q-0.515625 -0.421875 -1.46875 -0.421875q-1.140625 0 -1.625 0.375q-0.46875 0.375 -0.46875 0.875q0 0.3125 0.1875 0.578125q0.203125 0.265625 0.640625 0.4375q0.234375 0.09375 1.4375 0.421875q1.75 0.453125 2.4375 0.75q0.6875 0.296875 1.078125 0.859375q0.390625 0.5625 0.390625 1.40625q0 0.828125 -0.484375 1.546875q-0.46875 0.71874905 -1.375 1.124999q-0.90625 0.390625 -2.046875 0.390625q-1.875 0 -2.875 -0.78125q-0.984375 -0.78124905 -1.25 -2.328124z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m374.672 50.997375l121.480316 0l0 22.456696l-121.480316 0z" fill-rule="evenodd"/><path fill="#000000" d="m418.6133 56.943l2.28125 0q0.6875 0 1.015625 0.0625q0.328125 0.0625 0.59375 0.25q0.265625 0.171875 0.4375 0.46875q0.1875 0.296875 0.1875 0.671875q0 0.390625 -0.21875 0.734375q-0.21875 0.328125 -0.59375 0.5q0.53125 0.15625 0.8125 0.53125q0.28125 0.359375 0.28125 0.859375q0 0.390625 -0.1875 0.765625q-0.1875 0.359375 -0.5 0.578125q-0.3125 0.21875 -0.765625 0.265625q-0.296875 0.03125 -1.40625 0.046875l-1.9375 0l0 -5.734375zm1.15625 0.953125l0 1.328125l0.75 0q0.671875 0 0.84375 -0.015625q0.296875 -0.03125 0.46875 -0.203125q0.171875 -0.171875 0.171875 -0.453125q0 -0.265625 -0.15625 -0.421875q-0.140625 -0.171875 -0.4375 -0.203125q-0.171875 -0.03125 -0.984375 -0.03125l-0.65625 0zm0 2.28125l0 1.53125l1.0625 0q0.625 0 0.796875 -0.03125q0.25 -0.046875 0.40625 -0.21875q0.171875 -0.1875 0.171875 -0.5q0 -0.25 -0.125 -0.421875q-0.125 -0.1875 -0.359375 -0.265625q-0.234375 -0.09375 -1.03125 -0.09375l-0.921875 0zm4.6054688 2.5l0 -5.734375l1.09375 0l0 5.734375l-1.09375 0zm1.9726562 -2.140625q0 -0.546875 0.265625 -1.046875q0.265625 -0.515625 0.75 -0.78125q0.5 -0.28125 1.109375 -0.28125q0.953125 0 1.546875 0.625q0.609375 0.609375 0.609375 1.53125q0 0.953125 -0.609375 1.578125q-0.609375 0.609375 -1.53125 0.609375q-0.578125 0 -1.09375 -0.25q-0.515625 -0.265625 -0.78125 -0.765625q-0.265625 -0.5 -0.265625 -1.21875zm1.125 0.0625q0 0.625 0.28125 0.953125q0.296875 0.328125 0.734375 0.328125q0.421875 0 0.703125 -0.328125q0.296875 -0.328125 0.296875 -0.953125q0 -0.609375 -0.296875 -0.9375q-0.28125 -0.328125 -0.703125 -0.328125q-0.4375 0 -0.734375 0.328125q-0.28125 0.328125 -0.28125 0.9375zm7.6210938 -0.84375l-1.078125 0.1875q-0.046875 -0.3125 -0.25 -0.46875q-0.1875 -0.171875 -0.5 -0.171875q-0.40625 0 -0.65625 0.28125q-0.234375 0.28125 -0.234375 0.9375q0 0.75 0.234375 1.0625q0.25 0.296875 0.671875 0.296875q0.3125 0 0.515625 -0.171875q0.203125 -0.1875 0.28125 -0.625l1.078125 0.1875q-0.171875 0.734375 -0.65625 1.125q-0.46875 0.375 -1.265625 0.375q-0.90625 0 -1.453125 -0.578125q-0.546875 -0.578125 -0.546875 -1.59375q0 -1.015625 0.546875 -1.59375q0.546875 -0.578125 1.46875 -0.578125q0.765625 0 1.203125 0.328125q0.453125 0.328125 0.640625 1.0zm0.79296875 2.921875l0 -5.734375l1.109375 0l0 3.046875l1.28125 -1.46875l1.34375 0l-1.40625 1.515625l1.515625 2.640625l-1.1875 0l-1.046875 -1.859375l-0.5 0.53125l0 1.328125l-1.109375 0zm6.734375 0l0 -5.734375l1.125 0l2.34375 3.828125l0 -3.828125l1.078125 0l0 5.734375l-1.15625 0l-2.3125 -3.734375l0 3.734375l-1.078125 0z" fill-rule="nonzero"/></g></svg> \ No newline at end of file
diff --git a/bip-0119/vaults.svg b/bip-0119/vaults.svg
new file mode 100644
index 0000000..9c69087
--- /dev/null
+++ b/bip-0119/vaults.svg
@@ -0,0 +1 @@
+<svg version="1.1" viewBox="0.0 0.0 960.0 540.0" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="g613f4dff88_0_50.0"><path d="m0 0l960.0 0l0 540.0l-960.0 0l0 -540.0z" clip-rule="nonzero"/></clipPath><g clip-path="url(#g613f4dff88_0_50.0)"><path fill="#ffffff" d="m0 0l960.0 0l0 540.0l-960.0 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m32.72441 22.721785l894.55115 0l0 60.125984l-894.55115 0z" fill-rule="evenodd"/><path fill="#000000" d="m43.396286 58.983658l3.34375 -0.296875q0.234375 2.0 1.09375 3.296875q0.875 1.28125 2.6875 2.078125q1.828125 0.78125 4.109375 0.78125q2.015625 0 3.5625 -0.59375q1.5625 -0.609375 2.3125 -1.65625q0.75 -1.046875 0.75 -2.28125q0 -1.265625 -0.734375 -2.203125q-0.71875 -0.9375 -2.390625 -1.578125q-1.078125 -0.421875 -4.765625 -1.296875q-3.671875 -0.890625 -5.15625 -1.671875q-1.90625 -1.0 -2.84375 -2.484375q-0.9375 -1.484375 -0.9375 -3.328125q0 -2.015625 1.140625 -3.78125q1.15625 -1.765625 3.359375 -2.671875q2.203125 -0.90625 4.90625 -0.90625q2.96875 0 5.234375 0.953125q2.265625 0.953125 3.484375 2.8125q1.21875 1.859375 1.3125 4.21875l-3.390625 0.25q-0.265625 -2.53125 -1.84375 -3.828125q-1.578125 -1.296875 -4.65625 -1.296875q-3.203125 0 -4.671875 1.1875q-1.46875 1.171875 -1.46875 2.828125q0 1.4375 1.03125 2.359375q1.03125 0.9375 5.328125 1.921875q4.3125 0.96875 5.921875 1.6875q2.328125 1.078125 3.4375 2.734375q1.125 1.640625 1.125 3.796875q0 2.140625 -1.234375 4.03125q-1.21875 1.875 -3.5 2.921875q-2.28125 1.046875 -5.15625 1.046875q-3.625 0 -6.078125 -1.046875q-2.453125 -1.0625 -3.84375 -3.1875q-1.390625 -2.125 -1.46875 -4.796875zm25.678818 8.578125l0 -19.359375l2.9375 0l0 2.71875q0.921875 -1.421875 2.421875 -2.28125q1.515625 -0.875 3.453125 -0.875q2.15625 0 3.53125 0.890625q1.375 0.890625 1.9375 2.5q2.296875 -3.390625 5.96875 -3.390625q2.890625 0 4.4375 1.59375q1.546875 1.59375 1.546875 4.921875l0 13.28125l-3.265625 0l0 -12.1875q0 -1.96875 -0.328125 -2.828125q-0.3125 -0.875 -1.15625 -1.40625q-0.828125 -0.53125 -1.953125 -0.53125q-2.046875 0 -3.390625 1.359375q-1.34375 1.359375 -1.34375 4.34375l0 11.25l-3.28125 0l0 -12.578125q0 -2.1875 -0.8125 -3.28125q-0.796875 -1.09375 -2.625 -1.09375q-1.375 0 -2.5625 0.734375q-1.171875 0.71875 -1.703125 2.125q-0.53125 1.40625 -0.53125 4.046875l0 10.046875l-3.28125 0zm43.735245 -2.390625q-1.828125 1.546875 -3.515625 2.1875q-1.6875 0.640625 -3.609375 0.640625q-3.1875 0 -4.90625 -1.546875q-1.71875 -1.5625 -1.71875 -4.0q0 -1.421875 0.640625 -2.59375q0.65625 -1.171875 1.703125 -1.875q1.046875 -0.71875 2.359375 -1.078125q0.96875 -0.265625 2.921875 -0.5q3.96875 -0.46875 5.84375 -1.125q0.03125 -0.671875 0.03125 -0.859375q0 -2.0 -0.9375 -2.828125q-1.25 -1.109375 -3.734375 -1.109375q-2.3125 0 -3.421875 0.8125q-1.09375 0.8125 -1.625 2.875l-3.21875 -0.4375q0.4375 -2.0625 1.4375 -3.328125q1.015625 -1.265625 2.90625 -1.953125q1.890625 -0.6875 4.390625 -0.6875q2.484375 0 4.03125 0.59375q1.546875 0.578125 2.28125 1.46875q0.734375 0.875 1.015625 2.21875q0.171875 0.84375 0.171875 3.03125l0 4.375q0 4.578125 0.203125 5.796875q0.21875 1.203125 0.828125 2.3125l-3.421875 0q-0.515625 -1.015625 -0.65625 -2.390625zm-0.28125 -7.328125q-1.78125 0.734375 -5.359375 1.25q-2.015625 0.28125 -2.859375 0.65625q-0.828125 0.359375 -1.296875 1.0625q-0.453125 0.703125 -0.453125 1.5625q0 1.3125 0.984375 2.1875q1.0 0.875 2.921875 0.875q1.890625 0 3.359375 -0.828125q1.484375 -0.84375 2.1875 -2.28125q0.515625 -1.109375 0.515625 -3.28125l0 -1.203125zm8.369507 9.71875l0 -19.359375l2.953125 0l0 2.9375q1.125 -2.0625 2.078125 -2.71875q0.96875 -0.65625 2.109375 -0.65625q1.671875 0 3.375 1.0625l-1.125 3.046875q-1.203125 -0.71875 -2.40625 -0.71875q-1.078125 0 -1.9375 0.65625q-0.859375 0.640625 -1.21875 1.78125q-0.546875 1.75 -0.546875 3.828125l0 10.140625l-3.28125 0zm19.633682 -2.9375l0.46875 2.90625q-1.375 0.28125 -2.46875 0.28125q-1.796875 0 -2.78125 -0.5625q-0.984375 -0.5625 -1.390625 -1.484375q-0.390625 -0.921875 -0.390625 -3.875l0 -11.140625l-2.40625 0l0 -2.546875l2.40625 0l0 -4.796875l3.265625 -1.96875l0 6.765625l3.296875 0l0 2.546875l-3.296875 0l0 11.328125q0 1.40625 0.171875 1.8125q0.171875 0.390625 0.5625 0.625q0.390625 0.234375 1.125 0.234375q0.546875 0 1.4375 -0.125zm21.632538 2.9375l-10.359375 -26.71875l3.828125 0l6.953125 19.40625q0.84375 2.34375 1.40625 4.375q0.609375 -2.1875 1.4375 -4.375l7.21875 -19.40625l3.609375 0l-10.46875 26.71875l-3.625 0zm26.704865 -2.390625q-1.828125 1.546875 -3.515625 2.1875q-1.6875 0.640625 -3.609375 0.640625q-3.1875 0 -4.90625 -1.546875q-1.71875 -1.5625 -1.71875 -4.0q0 -1.421875 0.640625 -2.59375q0.65625 -1.171875 1.703125 -1.875q1.046875 -0.71875 2.359375 -1.078125q0.96875 -0.265625 2.921875 -0.5q3.96875 -0.46875 5.84375 -1.125q0.03125 -0.671875 0.03125 -0.859375q0 -2.0 -0.9375 -2.828125q-1.25 -1.109375 -3.734375 -1.109375q-2.3125 0 -3.421875 0.8125q-1.09375 0.8125 -1.625 2.875l-3.21875 -0.4375q0.4375 -2.0625 1.4375 -3.328125q1.015625 -1.265625 2.90625 -1.953125q1.890625 -0.6875 4.390625 -0.6875q2.484375 0 4.03125 0.59375q1.546875 0.578125 2.28125 1.46875q0.734375 0.875 1.015625 2.21875q0.171875 0.84375 0.171875 3.03125l0 4.375q0 4.578125 0.203125 5.796875q0.21875 1.203125 0.828125 2.3125l-3.421875 0q-0.515625 -1.015625 -0.65625 -2.390625zm-0.28125 -7.328125q-1.78125 0.734375 -5.359375 1.25q-2.015625 0.28125 -2.859375 0.65625q-0.828125 0.359375 -1.296875 1.0625q-0.453125 0.703125 -0.453125 1.5625q0 1.3125 0.984375 2.1875q1.0 0.875 2.921875 0.875q1.890625 0 3.359375 -0.828125q1.484375 -0.84375 2.1875 -2.28125q0.515625 -1.109375 0.515625 -3.28125l0 -1.203125zm21.088257 9.71875l0 -2.84375q-2.25 3.28125 -6.140625 3.28125q-1.703125 0 -3.203125 -0.65625q-1.484375 -0.65625 -2.203125 -1.640625q-0.71875 -1.0 -1.0 -2.4375q-0.203125 -0.96875 -0.203125 -3.0625l0 -12.0l3.28125 0l0 10.734375q0 2.578125 0.203125 3.46875q0.296875 1.296875 1.296875 2.03125q1.015625 0.734375 2.484375 0.734375q1.484375 0 2.765625 -0.75q1.296875 -0.765625 1.828125 -2.0625q0.546875 -1.296875 0.546875 -3.78125l0 -10.375l3.28125 0l0 19.359375l-2.9375 0zm8.010132 0l0 -26.71875l3.28125 0l0 26.71875l-3.28125 0zm15.527496 -2.9375l0.46875 2.90625q-1.375 0.28125 -2.46875 0.28125q-1.796875 0 -2.78125 -0.5625q-0.984375 -0.5625 -1.390625 -1.484375q-0.390625 -0.921875 -0.390625 -3.875l0 -11.140625l-2.40625 0l0 -2.546875l2.40625 0l0 -4.796875l3.265625 -1.96875l0 6.765625l3.296875 0l0 2.546875l-3.296875 0l0 11.328125q0 1.40625 0.171875 1.8125q0.171875 0.390625 0.5625 0.625q0.390625 0.234375 1.125 0.234375q0.546875 0 1.4375 -0.125zm1.8865814 -2.84375l3.25 -0.5q0.28125 1.9375 1.515625 2.984375q1.25 1.03125 3.5 1.03125q2.265625 0 3.359375 -0.90625q1.09375 -0.921875 1.09375 -2.171875q0 -1.109375 -0.96875 -1.75q-0.671875 -0.4375 -3.359375 -1.109375q-3.609375 -0.90625 -5.0 -1.5625q-1.390625 -0.671875 -2.125 -1.84375q-0.71875 -1.1875 -0.71875 -2.609375q0 -1.296875 0.59375 -2.390625q0.59375 -1.109375 1.625 -1.84375q0.765625 -0.5625 2.078125 -0.953125q1.328125 -0.390625 2.84375 -0.390625q2.265625 0 3.984375 0.65625q1.734375 0.65625 2.546875 1.78125q0.828125 1.125 1.140625 3.0l-3.21875 0.4375q-0.21875 -1.5 -1.265625 -2.328125q-1.046875 -0.84375 -2.953125 -0.84375q-2.265625 0 -3.234375 0.75q-0.96875 0.734375 -0.96875 1.75q0 0.625 0.40625 1.140625q0.40625 0.53125 1.265625 0.875q0.484375 0.1875 2.890625 0.84375q3.484375 0.921875 4.859375 1.515625q1.375 0.59375 2.15625 1.734375q0.78125 1.125 0.78125 2.796875q0 1.640625 -0.953125 3.09375q-0.953125 1.453125 -2.765625 2.25q-1.796875 0.78125 -4.078125 0.78125q-3.765625 0 -5.75 -1.5625q-1.984375 -1.578125 -2.53125 -4.65625zm20.898438 -9.84375l0 -3.734375l3.7343597 0l0 3.734375l-3.7343597 0zm0 15.625l0 -3.734375l3.7343597 0l0 3.734375l-3.7343597 0zm37.773148 -26.71875l3.546875 0l0 15.4375q0 4.03125 -0.921875 6.40625q-0.90625 2.359375 -3.28125 3.84375q-2.375 1.484375 -6.25 1.484375q-3.75 0 -6.140625 -1.28125q-2.390625 -1.296875 -3.40625 -3.75q-1.015625 -2.453125 -1.015625 -6.703125l0 -15.4375l3.53125 0l0 15.421875q0 3.484375 0.640625 5.140625q0.65625 1.640625 2.234375 2.53125q1.578125 0.890625 3.859375 0.890625q3.890625 0 5.546875 -1.765625q1.65625 -1.765625 1.65625 -6.796875l0 -15.421875zm7.691559 20.9375l3.25 -0.5q0.28125 1.9375 1.515625 2.984375q1.25 1.03125 3.5 1.03125q2.265625 0 3.359375 -0.90625q1.09375 -0.921875 1.09375 -2.171875q0 -1.109375 -0.96875 -1.75q-0.671875 -0.4375 -3.359375 -1.109375q-3.609375 -0.90625 -5.0 -1.5625q-1.390625 -0.671875 -2.125 -1.84375q-0.71875 -1.1875 -0.71875 -2.609375q0 -1.296875 0.59375 -2.390625q0.59375 -1.109375 1.625 -1.84375q0.765625 -0.5625 2.078125 -0.953125q1.328125 -0.390625 2.84375 -0.390625q2.265625 0 3.984375 0.65625q1.734375 0.65625 2.546875 1.78125q0.828125 1.125 1.140625 3.0l-3.21875 0.4375q-0.21875 -1.5 -1.265625 -2.328125q-1.046875 -0.84375 -2.953125 -0.84375q-2.265625 0 -3.234375 0.75q-0.96875 0.734375 -0.96875 1.75q0 0.625 0.40625 1.140625q0.40625 0.53125 1.265625 0.875q0.484375 0.1875 2.890625 0.84375q3.484375 0.921875 4.859375 1.515625q1.375 0.59375 2.15625 1.734375q0.78125 1.125 0.78125 2.796875q0 1.640625 -0.953125 3.09375q-0.953125 1.453125 -2.765625 2.25q-1.796875 0.78125 -4.078125 0.78125q-3.765625 0 -5.75 -1.5625q-1.984375 -1.578125 -2.53125 -4.65625zm20.007812 -17.171875l0 -3.765625l3.28125 0l0 3.765625l-3.28125 0zm0 22.953125l0 -19.359375l3.28125 0l0 19.359375l-3.28125 0zm8.261871 0l0 -19.359375l2.953125 0l0 2.75q2.140625 -3.1875 6.171875 -3.1875q1.75 0 3.21875 0.640625q1.46875 0.625 2.1875 1.640625q0.734375 1.015625 1.03125 2.421875q0.171875 0.90625 0.171875 3.1875l0 11.90625l-3.28125 0l0 -11.78125q0 -2.0 -0.390625 -2.984375q-0.375 -1.0 -1.359375 -1.59375q-0.96875 -0.59375 -2.28125 -0.59375q-2.09375 0 -3.625 1.328125q-1.515625 1.328125 -1.515625 5.046875l0 10.578125l-3.28125 0zm20.166382 1.609375l3.1875 0.46875q0.203125 1.46875 1.109375 2.15625q1.21875 0.90625 3.34375 0.90625q2.28125 0 3.515625 -0.921875q1.234375 -0.90625 1.671875 -2.546875q0.265625 -1.0 0.234375 -4.203125q-2.140625 2.53125 -5.359375 2.53125q-3.984375 0 -6.171875 -2.875q-2.1875 -2.890625 -2.1875 -6.90625q0 -2.78125 1.0 -5.125q1.0 -2.34375 2.90625 -3.609375q1.90625 -1.28125 4.484375 -1.28125q3.421875 0 5.640625 2.765625l0 -2.328125l3.03125 0l0 16.734375q0 4.515625 -0.921875 6.40625q-0.921875 1.890625 -2.921875 2.984375q-1.984375 1.09375 -4.90625 1.09375q-3.46875 0 -5.609375 -1.5625q-2.125 -1.5625 -2.046875 -4.6875zm2.71875 -11.640625q0 3.8125 1.5 5.5625q1.515625 1.75 3.796875 1.75q2.265625 0 3.796875 -1.734375q1.53125 -1.75 1.53125 -5.46875q0 -3.546875 -1.578125 -5.34375q-1.578125 -1.8125 -3.796875 -1.8125q-2.1875 0 -3.71875 1.78125q-1.53125 1.765625 -1.53125 5.265625zm48.49048 0.65625l3.546875 0.90625q-1.109375 4.34375 -4.0 6.640625q-2.890625 2.28125 -7.0625 2.28125q-4.328125 0 -7.03125 -1.75q-2.703125 -1.765625 -4.125 -5.09375q-1.40625 -3.34375 -1.40625 -7.171875q0 -4.171875 1.59375 -7.28125q1.59375 -3.109375 4.53125 -4.71875q2.953125 -1.609375 6.484375 -1.609375q4.015625 0 6.75 2.046875q2.734375 2.03125 3.8125 5.734375l-3.484375 0.8125q-0.9375 -2.90625 -2.703125 -4.234375q-1.765625 -1.34375 -4.4375 -1.34375q-3.09375 0 -5.15625 1.484375q-2.0625 1.46875 -2.90625 3.96875q-0.84375 2.484375 -0.84375 5.125q0 3.40625 0.984375 5.953125q1.0 2.546875 3.09375 3.8125q2.109375 1.25 4.546875 1.25q2.96875 0 5.03125 -1.71875q2.0625 -1.71875 2.78125 -5.09375zm6.254059 -0.296875q0 -5.390625 3.0 -7.96875q2.484375 -2.15625 6.078125 -2.15625q4.0 0 6.53125 2.625q2.53125 2.609375 2.53125 7.21875q0 3.734375 -1.125 5.875q-1.109375 2.140625 -3.265625 3.328125q-2.140625 1.1875 -4.671875 1.1875q-4.0625 0 -6.578125 -2.609375q-2.5 -2.609375 -2.5 -7.5zm3.375 0q0 3.71875 1.625 5.5625q1.625 1.84375 4.078125 1.84375q2.453125 0 4.0625 -1.859375q1.625 -1.859375 1.625 -5.65625q0 -3.59375 -1.640625 -5.4375q-1.625 -1.859375 -4.046875 -1.859375q-2.453125 0 -4.078125 1.84375q-1.625 1.84375 -1.625 5.5625zm18.603882 9.671875l0 -19.359375l2.953125 0l0 2.75q2.140625 -3.1875 6.171875 -3.1875q1.75 0 3.21875 0.640625q1.46875 0.625 2.1875 1.640625q0.734375 1.015625 1.03125 2.421875q0.171875 0.90625 0.171875 3.1875l0 11.90625l-3.28125 0l0 -11.78125q0 -2.0 -0.390625 -2.984375q-0.375 -1.0 -1.359375 -1.59375q-0.96875 -0.59375 -2.28125 -0.59375q-2.09375 0 -3.625 1.328125q-1.515625 1.328125 -1.515625 5.046875l0 10.578125l-3.28125 0zm27.932007 -2.9375l0.46875 2.90625q-1.375 0.28125 -2.46875 0.28125q-1.796875 0 -2.78125 -0.5625q-0.984375 -0.5625 -1.390625 -1.484375q-0.390625 -0.921875 -0.390625 -3.875l0 -11.140625l-2.40625 0l0 -2.546875l2.40625 0l0 -4.796875l3.265625 -1.96875l0 6.765625l3.296875 0l0 2.546875l-3.296875 0l0 11.328125q0 1.40625 0.171875 1.8125q0.171875 0.390625 0.5625 0.625q0.390625 0.234375 1.125 0.234375q0.546875 0 1.4375 -0.125zm3.1678162 2.9375l0 -19.359375l2.953125 0l0 2.9375q1.125 -2.0625 2.078125 -2.71875q0.96875 -0.65625 2.109375 -0.65625q1.671875 0 3.375 1.0625l-1.125 3.046875q-1.203125 -0.71875 -2.40625 -0.71875q-1.078125 0 -1.9375 0.65625q-0.859375 0.640625 -1.21875 1.78125q-0.546875 1.75 -0.546875 3.828125l0 10.140625l-3.28125 0zm11.243042 -9.671875q0 -5.390625 3.0 -7.96875q2.484375 -2.15625 6.078125 -2.15625q4.0 0 6.53125 2.625q2.53125 2.609375 2.53125 7.21875q0 3.734375 -1.125 5.875q-1.109375 2.140625 -3.265625 3.328125q-2.140625 1.1875 -4.671875 1.1875q-4.0625 0 -6.578125 -2.609375q-2.5 -2.609375 -2.5 -7.5zm3.375 0q0 3.71875 1.625 5.5625q1.625 1.84375 4.078125 1.84375q2.453125 0 4.0625 -1.859375q1.625 -1.859375 1.625 -5.65625q0 -3.59375 -1.640625 -5.4375q-1.625 -1.859375 -4.046875 -1.859375q-2.453125 0 -4.078125 1.84375q-1.625 1.84375 -1.625 5.5625zm18.541382 9.671875l0 -26.71875l3.28125 0l0 26.71875l-3.28125 0zm19.148468 0l0 -26.71875l10.078125 0q2.671875 0 4.078125 0.25q1.953125 0.328125 3.28125 1.25q1.34375 0.921875 2.15625 2.578125q0.8125 1.65625 0.8125 3.65625q0 3.40625 -2.171875 5.765625q-2.171875 2.359375 -7.84375 2.359375l-6.84375 0l0 10.859375l-3.546875 0zm3.546875 -14.015625l6.90625 0q3.421875 0 4.859375 -1.265625q1.4375 -1.28125 1.4375 -3.59375q0 -1.6875 -0.84375 -2.875q-0.84375 -1.203125 -2.234375 -1.578125q-0.890625 -0.234375 -3.296875 -0.234375l-6.828125 0l0 9.546875zm20.897583 14.015625l0 -19.359375l2.953125 0l0 2.9375q1.125 -2.0625 2.078125 -2.71875q0.96875 -0.65625 2.109375 -0.65625q1.671875 0 3.375 1.0625l-1.125 3.046875q-1.203125 -0.71875 -2.40625 -0.71875q-1.078125 0 -1.9375 0.65625q-0.859375 0.640625 -1.21875 1.78125q-0.546875 1.75 -0.546875 3.828125l0 10.140625l-3.28125 0zm11.243042 -9.671875q0 -5.390625 3.0 -7.96875q2.484375 -2.15625 6.078125 -2.15625q4.0 0 6.53125 2.625q2.53125 2.609375 2.53125 7.21875q0 3.734375 -1.125 5.875q-1.109375 2.140625 -3.265625 3.328125q-2.140625 1.1875 -4.671875 1.1875q-4.0625 0 -6.578125 -2.609375q-2.5 -2.609375 -2.5 -7.5zm3.375 0q0 3.71875 1.625 5.5625q1.625 1.84375 4.078125 1.84375q2.453125 0 4.0625 -1.859375q1.625 -1.859375 1.625 -5.65625q0 -3.59375 -1.640625 -5.4375q-1.625 -1.859375 -4.046875 -1.859375q-2.453125 0 -4.078125 1.84375q-1.625 1.84375 -1.625 5.5625zm18.010132 11.28125l3.1875 0.46875q0.203125 1.46875 1.109375 2.15625q1.21875 0.90625 3.34375 0.90625q2.28125 0 3.515625 -0.921875q1.234375 -0.90625 1.671875 -2.546875q0.265625 -1.0 0.234375 -4.203125q-2.140625 2.53125 -5.359375 2.53125q-3.984375 0 -6.171875 -2.875q-2.1875 -2.890625 -2.1875 -6.90625q0 -2.78125 1.0 -5.125q1.0 -2.34375 2.90625 -3.609375q1.90625 -1.28125 4.484375 -1.28125q3.421875 0 5.640625 2.765625l0 -2.328125l3.03125 0l0 16.734375q0 4.515625 -0.921875 6.40625q-0.921875 1.890625 -2.921875 2.984375q-1.984375 1.09375 -4.90625 1.09375q-3.46875 0 -5.609375 -1.5625q-2.125 -1.5625 -2.046875 -4.6875zm2.71875 -11.640625q0 3.8125 1.5 5.5625q1.515625 1.75 3.796875 1.75q2.265625 0 3.796875 -1.734375q1.53125 -1.75 1.53125 -5.46875q0 -3.546875 -1.578125 -5.34375q-1.578125 -1.8125 -3.796875 -1.8125q-2.1875 0 -3.71875 1.78125q-1.53125 1.765625 -1.53125 5.265625zm18.603882 10.03125l0 -19.359375l2.953125 0l0 2.9375q1.125 -2.0625 2.078125 -2.71875q0.96875 -0.65625 2.109375 -0.65625q1.671875 0 3.375 1.0625l-1.125 3.046875q-1.203125 -0.71875 -2.40625 -0.71875q-1.078125 0 -1.9375 0.65625q-0.859375 0.640625 -1.21875 1.78125q-0.546875 1.75 -0.546875 3.828125l0 10.140625l-3.28125 0zm25.102417 -2.390625q-1.828125 1.546875 -3.515625 2.1875q-1.6875 0.640625 -3.609375 0.640625q-3.1875 0 -4.90625 -1.546875q-1.71875 -1.5625 -1.71875 -4.0q0 -1.421875 0.640625 -2.59375q0.65625 -1.171875 1.703125 -1.875q1.046875 -0.71875 2.359375 -1.078125q0.96875 -0.265625 2.921875 -0.5q3.96875 -0.46875 5.84375 -1.125q0.03125 -0.671875 0.03125 -0.859375q0 -2.0 -0.9375 -2.828125q-1.25 -1.109375 -3.734375 -1.109375q-2.3125 0 -3.421875 0.8125q-1.09375 0.8125 -1.625 2.875l-3.21875 -0.4375q0.4375 -2.0625 1.4375 -3.328125q1.015625 -1.265625 2.90625 -1.953125q1.890625 -0.6875 4.390625 -0.6875q2.484375 0 4.03125 0.59375q1.546875 0.578125 2.28125 1.46875q0.734375 0.875 1.015625 2.21875q0.171875 0.84375 0.171875 3.03125l0 4.375q0 4.578125 0.203125 5.796875q0.21875 1.203125 0.828125 2.3125l-3.421875 0q-0.515625 -1.015625 -0.65625 -2.390625zm-0.28125 -7.328125q-1.78125 0.734375 -5.359375 1.25q-2.015625 0.28125 -2.859375 0.65625q-0.828125 0.359375 -1.296875 1.0625q-0.453125 0.703125 -0.453125 1.5625q0 1.3125 0.984375 2.1875q1.0 0.875 2.921875 0.875q1.890625 0 3.359375 -0.828125q1.484375 -0.84375 2.1875 -2.28125q0.515625 -1.109375 0.515625 -3.28125l0 -1.203125zm8.400757 9.71875l0 -19.359375l2.9375 0l0 2.71875q0.921875 -1.421875 2.421875 -2.28125q1.515625 -0.875 3.453125 -0.875q2.15625 0 3.53125 0.890625q1.375 0.890625 1.9375 2.5q2.296875 -3.390625 5.96875 -3.390625q2.890625 0 4.4375 1.59375q1.546875 1.59375 1.546875 4.921875l0 13.28125l-3.265625 0l0 -12.1875q0 -1.96875 -0.328125 -2.828125q-0.3125 -0.875 -1.15625 -1.40625q-0.828125 -0.53125 -1.953125 -0.53125q-2.046875 0 -3.390625 1.359375q-1.34375 1.359375 -1.34375 4.34375l0 11.25l-3.28125 0l0 -12.578125q0 -2.1875 -0.8125 -3.28125q-0.796875 -1.09375 -2.625 -1.09375q-1.375 0 -2.5625 0.734375q-1.171875 0.71875 -1.703125 2.125q-0.53125 1.40625 -0.53125 4.046875l0 10.046875l-3.28125 0zm29.782104 -5.78125l3.25 -0.5q0.28125 1.9375 1.515625 2.984375q1.25 1.03125 3.5 1.03125q2.265625 0 3.359375 -0.90625q1.09375 -0.921875 1.09375 -2.171875q0 -1.109375 -0.96875 -1.75q-0.671875 -0.4375 -3.359375 -1.109375q-3.609375 -0.90625 -5.0 -1.5625q-1.390625 -0.671875 -2.125 -1.84375q-0.71875 -1.1875 -0.71875 -2.609375q0 -1.296875 0.59375 -2.390625q0.59375 -1.109375 1.625 -1.84375q0.765625 -0.5625 2.078125 -0.953125q1.328125 -0.390625 2.84375 -0.390625q2.265625 0 3.984375 0.65625q1.734375 0.65625 2.546875 1.78125q0.828125 1.125 1.140625 3.0l-3.21875 0.4375q-0.21875 -1.5 -1.265625 -2.328125q-1.046875 -0.84375 -2.953125 -0.84375q-2.265625 0 -3.234375 0.75q-0.96875 0.734375 -0.96875 1.75q0 0.625 0.40625 1.140625q0.40625 0.53125 1.265625 0.875q0.484375 0.1875 2.890625 0.84375q3.484375 0.921875 4.859375 1.515625q1.375 0.59375 2.15625 1.734375q0.78125 1.125 0.78125 2.796875q0 1.640625 -0.953125 3.09375q-0.953125 1.453125 -2.765625 2.25q-1.796875 0.78125 -4.078125 0.78125q-3.765625 0 -5.75 -1.5625q-1.984375 -1.578125 -2.53125 -4.65625z" fill-rule="nonzero"/><path fill="#00ffff" d="m15.858268 273.5853l195.77954 0l0 139.05511l-195.77954 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m15.858268 273.5853l195.77954 0l0 139.05511l-195.77954 0z" fill-rule="evenodd"/><path fill="#ffab40" d="m386.9635 165.34645l150.78717 0c3.6621094E-4 0 6.713867E-4 1.5258789E-4 9.765625E-4 4.119873E-4c2.4414062E-4 2.4414062E-4 3.6621094E-4 5.950928E-4 3.6621094E-4 9.613037E-4l-0.0013427734 63.541687c0 7.018936 -5.6900024 12.708908 -12.708923 12.708908l-150.78714 0l0 0c-7.6293945E-4 0 -0.001373291 -6.1035156E-4 -0.001373291 -0.0013580322l0.001373291 -63.541687l0 0c0 -7.018936 5.689972 -12.708923 12.708893 -12.708923z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m386.9635 165.34645l150.78717 0c3.6621094E-4 0 6.713867E-4 1.5258789E-4 9.765625E-4 4.119873E-4c2.4414062E-4 2.4414062E-4 3.6621094E-4 5.950928E-4 3.6621094E-4 9.613037E-4l-0.0013427734 63.541687c0 7.018936 -5.6900024 12.708908 -12.708923 12.708908l-150.78714 0l0 0c-7.6293945E-4 0 -0.001373291 -6.1035156E-4 -0.001373291 -0.0013580322l0.001373291 -63.541687l0 0c0 -7.018936 5.689972 -12.708923 12.708893 -12.708923z" fill-rule="evenodd"/><path fill="#000000" d="m390.43002 184.27245l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.8428955 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm11.561218 0l3.65625 -9.546875l1.359375 0l3.90625 9.546875l-1.4375 0l-1.109375 -2.890625l-3.984375 0l-1.046875 2.890625l-1.34375 0zm2.75 -3.921875l3.234375 0l-1.0 -2.640625q-0.453125 -1.203125 -0.671875 -1.96875q-0.1875 0.90625 -0.515625 1.8125l-1.046875 2.796875zm7.35849 -1.65625l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m390.32065 198.72557l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm7.2092285 0l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm9.000153 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm11.178101 3.453125l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm2.8656006 0l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#000000" d="m393.68002 215.14745l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0zm5.6623535 1.125l0 -9.546875l1.25 0l0 9.546875l-1.25 0zm3.3279724 0l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm7.4124756 2.65625l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm10.881226 3.421875l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm5.4437256 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm0.6717529 -1.015625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625z" fill-rule="nonzero"/><path fill="#000000" d="m394.80502 228.9287l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.188385 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748474 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.631104 -5.421875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.467865 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm17.085663 4.625l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#ffab40" d="m386.9635 303.8714l150.78717 0c3.6621094E-4 0 6.713867E-4 1.2207031E-4 9.765625E-4 3.9672852E-4c2.4414062E-4 2.4414062E-4 3.6621094E-4 6.1035156E-4 3.6621094E-4 9.460449E-4l-0.0013427734 63.541718c0 7.018921 -5.6900024 12.708893 -12.708923 12.708893l-150.78714 0l0 0c-7.6293945E-4 0 -0.001373291 -6.1035156E-4 -0.001373291 -0.0013427734l0.001373291 -63.541718l0 0c0 -7.018921 5.689972 -12.708893 12.708893 -12.708893z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m386.9635 303.8714l150.78717 0c3.6621094E-4 0 6.713867E-4 1.2207031E-4 9.765625E-4 3.9672852E-4c2.4414062E-4 2.4414062E-4 3.6621094E-4 6.1035156E-4 3.6621094E-4 9.460449E-4l-0.0013427734 63.541718c0 7.018921 -5.6900024 12.708893 -12.708923 12.708893l-150.78714 0l0 0c-7.6293945E-4 0 -0.001373291 -6.1035156E-4 -0.001373291 -0.0013427734l0.001373291 -63.541718l0 0c0 -7.018921 5.689972 -12.708893 12.708893 -12.708893z" fill-rule="evenodd"/><path fill="#000000" d="m390.43002 322.79736l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.8428955 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm13.28125 0l0 -9.546875l3.59375 0q1.09375 0 1.75 0.296875q0.65625 0.28125 1.03125 0.890625q0.375 0.609375 0.375 1.265625q0 0.609375 -0.34375 1.15625q-0.328125 0.53125 -0.984375 0.859375q0.859375 0.25 1.328125 0.875q0.46875 0.609375 0.46875 1.4375q0 0.671875 -0.296875 1.25q-0.28125 0.578125 -0.703125 0.890625q-0.40625 0.3125 -1.03125 0.46875q-0.625 0.15625 -1.546875 0.15625l-3.640625 0zm1.265625 -5.53125l2.0625 0q0.84375 0 1.203125 -0.109375q0.484375 -0.140625 0.71875 -0.46875q0.25 -0.34375 0.25 -0.84375q0 -0.46875 -0.234375 -0.828125q-0.21875 -0.359375 -0.640625 -0.5q-0.421875 -0.140625 -1.453125 -0.140625l-1.90625 0l0 2.890625zm0 4.40625l2.375 0q0.609375 0 0.859375 -0.046875q0.4375 -0.078125 0.734375 -0.25q0.296875 -0.1875 0.484375 -0.53125q0.1875 -0.359375 0.1875 -0.8125q0 -0.53125 -0.28125 -0.921875q-0.265625 -0.40625 -0.75 -0.5625q-0.484375 -0.15625 -1.40625 -0.15625l-2.203125 0l0 3.28125zm7.8585205 -4.453125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m390.32065 337.2505l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm13.11142 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm7.209198 0l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm9.000153 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm11.178101 3.453125l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm2.8656006 0l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#000000" d="m393.68002 353.67236l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0zm5.6623535 1.125l0 -9.546875l1.25 0l0 9.546875l-1.25 0zm3.3279724 0l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm7.4124756 2.65625l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm10.881226 3.421875l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm5.4437256 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm0.6717529 -1.015625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625z" fill-rule="nonzero"/><path fill="#000000" d="m394.80502 367.4536l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.188385 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748474 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.631104 -5.421875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.467865 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm18.820038 3.5l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0z" fill-rule="nonzero"/><path fill="#ffab40" d="m395.57242 451.1496l133.5588 0c3.0517578E-4 0 6.713867E-4 1.5258789E-4 8.544922E-4 3.6621094E-4c2.4414062E-4 2.1362305E-4 3.6621094E-4 5.493164E-4 3.6621094E-4 8.544922E-4l-0.0012207031 63.54187c0 7.018921 -5.6899414 12.708862 -12.708923 12.708862l-133.55878 0l0 0c-6.713867E-4 0 -0.0012207031 -5.493164E-4 -0.0012207031 -0.0012207031l0.0012207031 -63.54181l0 0c0 -7.0189514 5.689972 -12.708923 12.708893 -12.708923z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m395.57242 451.1496l133.5588 0c3.0517578E-4 0 6.713867E-4 1.5258789E-4 8.544922E-4 3.6621094E-4c2.4414062E-4 2.1362305E-4 3.6621094E-4 5.493164E-4 3.6621094E-4 8.544922E-4l-0.0012207031 63.54187c0 7.018921 -5.6899414 12.708862 -12.708923 12.708862l-133.55878 0l0 0c-6.713867E-4 0 -0.0012207031 -5.493164E-4 -0.0012207031 -0.0012207031l0.0012207031 -63.54181l0 0c0 -7.0189514 5.689972 -12.708923 12.708893 -12.708923z" fill-rule="evenodd"/><path fill="#000000" d="m399.03897 470.0756l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.842865 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm20.140656 -3.34375l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm3.0001526 -2.234375l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m398.9296 484.52872l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408417 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm7.209198 0l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm9.000153 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm11.178101 3.453125l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm2.8656006 0l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#000000" d="m402.28897 500.9506l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0zm5.662323 1.125l0 -9.546875l1.25 0l0 9.546875l-1.25 0zm3.328003 0l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm7.4124756 2.65625l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm10.881226 3.421875l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm5.4437256 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm0.6717224 -1.015625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625z" fill-rule="nonzero"/><path fill="#000000" d="m403.41397 514.7318l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.4843445 0.5625 -2.5937195q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.8749695 -0.296875 1.8280945q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.6564026 3.34375l0 -6.9062195l1.0625 0l0 1.0468445q0.40625 -0.7343445 0.734375 -0.9687195q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.0780945q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.1883545 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.7030945q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9374695 0.875 2.6562195q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6874695 -1.453125 -0.6874695q-0.8125 0 -1.359375 0.5468445q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.39059448 -1.34375 -0.39059448q-0.8125 0 -1.21875 0.29684448q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1874695q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.31246948 0.375 0.7968445q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.9062195l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.9062195l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.874878 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.7030945q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9374695 0.875 2.6562195q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6874695 -1.453125 -0.6874695q-0.8125 0 -1.359375 0.5468445q-0.546875 0.53125 -0.609375 1.4375zm16.631073 -5.4218445l1.265625 0l0 5.5155945q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.5155945l1.265625 0l0 5.5155945q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.5155945zm5.7970276 9.5468445l0 -8.4218445l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.4218445l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.5780945l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.1718445q0.3125 -0.5155945 0.75 -1.0937195l1.921875 -2.53125l1.375 0l-3.359375 4.4999695l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.4678955 -4.640625q0 -2.3749695 1.28125 -3.7187195q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5624695q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.0312195q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.0780945zm12.679413 2.109375l1.171875 -0.15625q0.203125 1.0 0.6875 1.4375q0.484375 0.4375 1.171875 0.4375q0.828125 0 1.390625 -0.578125q0.578125 -0.578125 0.578125 -1.421875q0 -0.796875 -0.53125 -1.3125q-0.515625 -0.53125 -1.328125 -0.53125q-0.34375 0 -0.828125 0.125l0.125 -1.03125q0.125 0.015625 0.1875 0.015625q0.75 0 1.34375 -0.390625q0.609375 -0.39059448 0.609375 -1.2030945q0 -0.640625 -0.4375 -1.0625q-0.4375 -0.421875 -1.125 -0.421875q-0.6875 0 -1.140625 0.4375q-0.453125 0.421875 -0.59375 1.28125l-1.171875 -0.21875q0.21875 -1.171875 0.984375 -1.8125q0.765625 -0.65625 1.890625 -0.65625q0.78125 0 1.4375 0.34375q0.65625 0.328125 1.0 0.90625q0.359375 0.578125 0.359375 1.234375q0 0.609375 -0.34375 1.1249695q-0.328125 0.5 -0.96875 0.796875q0.84375 0.203125 1.3125 0.828125q0.46875 0.609375 0.46875 1.53125q0 1.25 -0.921875 2.125q-0.90625 0.859375 -2.296875 0.859375q-1.25 0 -2.09375 -0.75q-0.828125 -0.75 -0.9375 -1.9375z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m456.00262 241.59842l0 19.527557" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m456.00262 241.59842l0 13.527573" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m454.3509 255.12599l1.6517334 4.538101l1.6517334 -4.538101z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m456.0 284.34122l0 19.527557" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m456.0 284.34122l0 13.527557" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m454.34827 297.86877l1.6517334 4.538086l1.6517334 -4.538086z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m456.00262 380.12335l0 15.905518" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m456.00262 380.12335l0 9.905518" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m454.3509 390.02887l1.6517334 4.538086l1.6517334 -4.538086z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m456.0 426.4882l0 24.661407" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m456.0 426.4882l0 18.661407" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m454.34827 445.1496l1.6517334 4.5381165l1.6517334 -4.5381165z" fill-rule="evenodd"/><path fill="#eeeeee" d="m356.92914 110.98163l198.14172 0l0 30.456696l-198.14172 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m356.92914 110.98163l198.14172 0l0 30.456696l-198.14172 0z" fill-rule="evenodd"/><path fill="#000000" d="m375.69858 127.66622l1.265625 0.3125q-0.390625 1.5625076 -1.421875 2.3750076q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875076 -0.5 -2.5625076q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.1250076q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125076zm2.2345276 -0.109375q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.3281326 -0.40625 2.0937576q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875076zm1.203125 0q0 1.3281326 0.578125 1.9843826q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.0312576q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 3.4531326l0 -6.9062576l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.2500076l-1.171875 0l0 -4.2031326q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.7812576l-1.171875 0zm9.974976 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.9687576l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.0468826q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1248474 1.046875l0 -6.9062576l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.6250076l-1.171875 0zm4.01651 -3.4531326q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.3281326 -0.40625 2.0937576q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875076zm1.203125 0q0 1.3281326 0.578125 1.9843826q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.0312576q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.4531326l0 -9.546883l1.171875 0l0 9.546883l-1.171875 0zm13.0859375 -9.546883l1.265625 0l0 5.515625q0 1.4375076 -0.328125 2.2968826q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.3906326l0 -5.515625l1.265625 0l0 5.515625q0 1.2343826 0.21875 1.8281326q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375076l0 -5.515625zm5.7970276 9.546883l0 -8.421883l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421883l-1.265625 0zm4.7507324 0l3.6875 -4.9687576l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.0468826l-1.5625 0l-2.40625 -3.4062576q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.3281326l-1.515625 0zm9.4678955 -4.6406326q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.5937576q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.1250076 -0.546875 -2.3750076zm1.3125 0.015625q0 1.7187576 0.921875 2.7187576q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.8437576q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm12.663788 -0.078125q0 -1.6875 0.34375 -2.71875q0.359375 -1.03125 1.046875 -1.59375q0.6875 -0.5625 1.71875 -0.5625q0.78125 0 1.359375 0.3125q0.578125 0.296875 0.953125 0.890625q0.375 0.578125 0.59375 1.421875q0.21875 0.828125 0.21875 2.25q0 1.671875 -0.359375 2.7031326q-0.34375 1.03125 -1.03125 1.59375q-0.671875 0.5625 -1.734375 0.5625q-1.375 0 -2.15625 -0.984375q-0.953125 -1.1875 -0.953125 -3.8750076zm1.203125 0q0 2.3437576 0.546875 3.1250076q0.5625 0.78125 1.359375 0.78125q0.8125 0 1.359375 -0.78125q0.5625 -0.78125 0.5625 -3.1250076q0 -2.359375 -0.5625 -3.125q-0.546875 -0.78125 -1.359375 -0.78125q-0.8125 0 -1.296875 0.6875q-0.609375 0.875 -0.609375 3.21875zm6.8656006 -0.875l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.5781326l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm14.030975 -3.3437576l1.265625 0.3125q-0.390625 1.5625076 -1.421875 2.3750076q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875076 -0.5 -2.5625076q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.1250076q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125076zm5.2501526 3.3437576l0 -8.421883l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421883l-1.265625 0zm8.438232 0l-3.6875 -9.546883l1.359375 0l2.484375 6.9375076q0.296875 0.828125 0.5 1.5625q0.21875 -0.78125 0.515625 -1.5625l2.578125 -6.9375076l1.28125 0l-3.734375 9.546883l-1.296875 0zm8.26474 2.8125q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.3906326q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.1406326 1.9375 6.2656326l-0.828125 0zm4.76651 -2.8125l0 -8.421883l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421883l-1.265625 0zm4.7507324 0l3.6875 -4.9687576l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.0468826l-1.5625 0l-2.40625 -3.4062576q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.3281326l-1.515625 0zm9.8428955 0l0 -9.546883l1.296875 0l5.015625 7.5000076l0 -7.5000076l1.203125 0l0 9.546883l-1.296875 0l-5.015625 -7.5000076l0 7.5000076l-1.203125 0zm11.561218 0l3.65625 -9.546883l1.359375 0l3.90625 9.546883l-1.4375 0l-1.109375 -2.890625l-3.984375 0l-1.046875 2.890625l-1.34375 0zm2.75 -3.9218826l3.234375 0l-1.0 -2.640625q-0.453125 -1.203125 -0.671875 -1.96875q-0.1875 0.90625 -0.515625 1.8125l-1.046875 2.796875zm7.7959595 6.7343826l-0.828125 0q1.9375 -3.125 1.9375 -6.2656326q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.7500076 -0.671875 3.3906326q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m456.0 141.43832l0 23.905502" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m456.0 141.43832l0 17.905502" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m454.34827 159.34383l1.6517334 4.538101l1.6517334 -4.538101z" fill-rule="evenodd"/><path fill="#eeeeee" d="m32.0 285.3491l163.49606 0l0 19.527557l-163.49606 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m32.0 285.3491l163.49606 0l0 19.527557l-163.49606 0z" fill-rule="evenodd"/><path fill="#000000" d="m77.1371 296.56912l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.2345276 -0.109375q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.46109 0l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm16.740463 -6.09375l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.46788 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm19.945038 1.28125l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.3439026 -1.359375q0 -1.6875 0.34375 -2.71875q0.359375 -1.03125 1.046875 -1.59375q0.6875 -0.5625 1.71875 -0.5625q0.78125 0 1.359375 0.3125q0.578125 0.296875 0.953125 0.890625q0.375 0.578125 0.59375 1.421875q0.21875 0.828125 0.21875 2.25q0 1.671875 -0.359375 2.703125q-0.34375 1.03125 -1.03125 1.59375q-0.671875 0.5625 -1.734375 0.5625q-1.375 0 -2.15625 -0.984375q-0.953125 -1.1875 -0.953125 -3.875zm1.203125 0q0 2.34375 0.546875 3.125q0.5625 0.78125 1.359375 0.78125q0.8125 0 1.359375 -0.78125q0.5625 -0.78125 0.5625 -3.125q0 -2.359375 -0.5625 -3.125q-0.546875 -0.78125 -1.359375 -0.78125q-0.8125 0 -1.296875 0.6875q-0.609375 0.875 -0.609375 3.21875z" fill-rule="nonzero"/><path fill="#eeeeee" d="m32.0 332.0525l163.49606 0l0 15.905518l-163.49606 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m32.0 332.0525l163.49606 0l0 15.905518l-163.49606 0z" fill-rule="evenodd"/><path fill="#000000" d="m77.1371 341.4615l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.2345276 -0.109375q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.46109 0l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm16.740463 -6.09375l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.46788 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm19.945038 1.28125l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm6.7657776 3.34375l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#eeeeee" d="m32.0 373.0105l163.49606 0l0 19.527557l-163.49606 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m32.0 373.0105l163.49606 0l0 19.527557l-163.49606 0z" fill-rule="evenodd"/><path fill="#000000" d="m77.1371 384.23053l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.2345276 -0.109375q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.46109 0l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm16.740463 -6.09375l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.46788 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm19.945038 1.28125l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm8.500153 2.21875l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m195.49606 295.11285l178.77167 -91.653534" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m195.49606 295.11285l173.43246 -88.916214" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m369.68207 207.66646l3.2847595 -3.5401917l-4.79187 0.6005554z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m195.49606 340.00525l178.77167 -136.53543" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m195.49606 340.00525l174.00327 -132.89365" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m370.5019 208.42429l2.604004 -4.0671387l-4.6091003 1.4417877z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m195.49606 382.7743l178.77167 -179.3071" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m195.49606 382.7743l174.53534 -175.05812" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m371.2011 208.88237l2.0344238 -4.3799133l-4.37381 2.0475159z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m195.49606 295.11285l178.77167 46.897644" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m195.49606 295.11285l172.96802 45.375183" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m368.04498 342.0857l4.8086853 -0.44613647l-3.970459 -2.7492065z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m195.49606 340.00525l178.77167 1.9842529" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m195.49606 340.00525l172.77203 1.9176636" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m368.24976 343.57455l4.5561523 -1.6012878l-4.5195007 -1.7019958z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m195.49606 382.7743l178.77167 -40.787415" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m195.49606 382.7743l172.92197 -39.45279" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m368.78543 344.93185l4.057007 -2.6197815l-4.791809 -0.60092163z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m195.49606 295.11285l187.37009 194.17325" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m195.49606 295.11285l183.20374 189.85565" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m377.51123 486.11542l4.3397827 2.1186829l-1.962616 -4.412567z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m195.49606 340.00525l187.37009 149.25986" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m195.49606 340.00525l182.6771 145.5214" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m377.144 486.81857l4.5786743 1.5356445l-2.5203552 -4.119507z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m195.49606 382.7743l187.37009 106.48819" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m195.49606 382.7743l182.15366 103.52353" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m376.83362 487.73386l4.7615356 0.8062744l-3.1292725 -3.6783142z" fill-rule="evenodd"/><path fill="#eeeeee" d="m356.92914 261.1286l198.14172 0l0 23.212616l-198.14172 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m356.92914 261.1286l198.14172 0l0 23.212616l-198.14172 0z" fill-rule="evenodd"/><path fill="#000000" d="m375.33075 274.19116l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.2345276 -0.109375q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 3.453125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm9.974976 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1248474 1.046875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm4.01651 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm13.0859375 -9.546875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.4678955 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm17.085663 4.625l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm3.6468506 -5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm14.030975 -3.34375l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm5.2501526 3.34375l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm8.438232 0l-3.6875 -9.546875l1.359375 0l2.484375 6.9375q0.296875 0.828125 0.5 1.5625q0.21875 -0.78125 0.515625 -1.5625l2.578125 -6.9375l1.28125 0l-3.734375 9.546875l-1.296875 0zm8.26474 2.8125q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm4.76651 -2.8125l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6874695 -4.96875l-3.2499695 -4.578125l1.5 0l1.7343445 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.3905945 3.328125l-1.515625 0zm9.842865 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm13.28125 0l0 -9.546875l3.59375 0q1.09375 0 1.75 0.296875q0.65625 0.28125 1.03125 0.890625q0.375 0.609375 0.375 1.265625q0 0.609375 -0.34375 1.15625q-0.328125 0.53125 -0.984375 0.859375q0.859375 0.25 1.328125 0.875q0.46875 0.609375 0.46875 1.4375q0 0.671875 -0.296875 1.25q-0.28125 0.578125 -0.703125 0.890625q-0.40625 0.3125 -1.03125 0.46875q-0.625 0.15625 -1.546875 0.15625l-3.640625 0zm1.265625 -5.53125l2.0625 0q0.84375 0 1.203125 -0.109375q0.484375 -0.140625 0.71875 -0.46875q0.25 -0.34375 0.25 -0.84375q0 -0.46875 -0.234375 -0.828125q-0.21875 -0.359375 -0.640625 -0.5q-0.421875 -0.140625 -1.453125 -0.140625l-1.90625 0l0 2.890625zm0 4.40625l2.375 0q0.609375 0 0.859375 -0.046875q0.4375 -0.078125 0.734375 -0.25q0.296875 -0.1875 0.484375 -0.53125q0.1875 -0.359375 0.1875 -0.8125q0 -0.53125 -0.28125 -0.921875q-0.265625 -0.40625 -0.75 -0.5625q-0.484375 -0.15625 -1.40625 -0.15625l-2.203125 0l0 3.28125zm8.2960205 3.9375l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#f92b0c" d="m650.52496 313.41205l195.77948 0l0 166.2677l-195.77948 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m650.52496 313.41205l195.77948 0l0 166.2677l-195.77948 0z" fill-rule="evenodd"/><path fill="#eeeeee" d="m666.52496 332.57755l163.49603 0l0 51.905487l-163.49603 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m666.52496 332.57755l163.49603 0l0 51.905487l-163.49603 0z" fill-rule="evenodd"/><path fill="#000000" d="m706.3802 347.3303l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm9.000183 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm9.209351 2.40625l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm14.952698 -8.5l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.797058 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.467834 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.179443 4.625l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm9.109497 -4.703125q0 -1.6875 0.34375 -2.71875q0.359375 -1.03125 1.046875 -1.59375q0.6875 -0.5625 1.71875 -0.5625q0.78125 0 1.359375 0.3125q0.578125 0.296875 0.953125 0.890625q0.375 0.578125 0.59375 1.421875q0.21875 0.828125 0.21875 2.25q0 1.671875 -0.359375 2.703125q-0.34375 1.03125 -1.03125 1.59375q-0.671875 0.5625 -1.734375 0.5625q-1.375 0 -2.15625 -0.984375q-0.953125 -1.1875 -0.953125 -3.875zm1.203125 0q0 2.34375 0.546875 3.125q0.5625 0.78125 1.359375 0.78125q0.8125 0 1.359375 -0.78125q0.5625 -0.78125 0.5625 -3.125q0 -2.359375 -0.5625 -3.125q-0.546875 -0.78125 -1.359375 -0.78125q-0.8125 0 -1.296875 0.6875q-0.609375 0.875 -0.609375 3.21875z" fill-rule="nonzero"/><path fill="#000000" d="m689.2128 361.78342l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408386 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm7.2092285 0l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm9.000122 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm11.178101 3.453125l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm2.8656006 0l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm6.5307007 0l3.65625 -9.546875l1.359375 0l3.90625 9.546875l-1.4375 0l-1.109375 -2.890625l-3.984375 0l-1.046875 2.890625l-1.34375 0zm2.75 -3.921875l3.234375 0l-1.0 -2.640625q-0.453125 -1.203125 -0.671875 -1.96875q-0.1875 0.90625 -0.515625 1.8125l-1.046875 2.796875zm7.0147705 3.921875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm5.5321045 0l-1.078125 0l0 -9.546875l1.171875 0l0 3.40625q0.734375 -0.921875 1.890625 -0.921875q0.640625 0 1.203125 0.265625q0.578125 0.25 0.9375 0.71875q0.375 0.453125 0.578125 1.109375q0.203125 0.65625 0.203125 1.40625q0 1.78125 -0.875 2.75q-0.875 0.96875 -2.109375 0.96875q-1.21875 0 -1.921875 -1.015625l0 0.859375zm0 -3.5q0 1.234375 0.328125 1.78125q0.5625 0.90625 1.5 0.90625q0.765625 0 1.328125 -0.65625q0.5625 -0.671875 0.5625 -2.0q0 -1.34375 -0.546875 -1.984375q-0.53125 -0.65625 -1.296875 -0.65625q-0.765625 0 -1.328125 0.671875q-0.546875 0.671875 -0.546875 1.9375zm6.3499756 -4.6875l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.5079956 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1248169 1.046875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm8.969666 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm4.4071045 2.65625l-0.125 -1.09375q0.375 0.109375 0.65625 0.109375q0.390625 0 0.625 -0.140625q0.234375 -0.125 0.390625 -0.359375q0.109375 -0.171875 0.359375 -0.875q0.03125 -0.09375 0.109375 -0.28125l-2.625 -6.921875l1.265625 0l1.4375 4.0q0.28125 0.765625 0.5 1.59375q0.203125 -0.796875 0.46875 -1.578125l1.484375 -4.015625l1.171875 0l-2.625 7.015625q-0.421875 1.140625 -0.65625 1.578125q-0.3125 0.578125 -0.71875 0.84375q-0.40625 0.28125 -0.96875 0.28125q-0.328125 0 -0.75 -0.15625zm10.179565 -7.296875q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm9.460815 4.625l0 -9.546875l4.234375 0q1.265625 0 1.921875 0.265625q0.671875 0.25 1.0625 0.90625q0.40625 0.65625 0.40625 1.4375q0 1.015625 -0.65625 1.71875q-0.65625 0.6875 -2.03125 0.875q0.5 0.25 0.765625 0.484375q0.546875 0.5 1.046875 1.265625l1.65625 2.59375l-1.578125 0l-1.265625 -1.984375q-0.5625 -0.859375 -0.921875 -1.3125q-0.34375 -0.453125 -0.640625 -0.640625q-0.28125 -0.1875 -0.5625 -0.25q-0.21875 -0.046875 -0.703125 -0.046875l-1.46875 0l0 4.234375l-1.265625 0zm1.265625 -5.328125l2.71875 0q0.859375 0 1.34375 -0.171875q0.484375 -0.1875 0.734375 -0.578125q0.265625 -0.390625 0.265625 -0.859375q0 -0.671875 -0.5 -1.109375q-0.484375 -0.4375 -1.546875 -0.4375l-3.015625 0l0 3.15625z" fill-rule="nonzero"/><path fill="#000000" d="m734.2639 375.98654l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm5.250122 3.34375l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm8.438232 0l-3.6875 -9.546875l1.359375 0l2.484375 6.9375q0.296875 0.828125 0.5 1.5625q0.21875 -0.78125 0.515625 -1.5625l2.578125 -6.9375l1.28125 0l-3.734375 9.546875l-1.296875 0zm8.2647705 2.8125q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm2.4071045 -2.8125l0 -9.546875l6.4375 0l0 1.125l-5.171875 0l0 2.96875l4.46875 0l0 1.125l-4.46875 0l0 4.328125l-1.265625 0zm8.688232 2.8125l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#eeeeee" d="m666.52496 395.2692l163.49603 0l0 19.527557l-163.49603 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m666.52496 395.2692l163.49603 0l0 19.527557l-163.49603 0z" fill-rule="evenodd"/><path fill="#000000" d="m708.2317 409.83298l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm9.000183 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm9.209351 2.40625l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm11.249695 -8.5l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.797058 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.467834 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.179443 4.625l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm13.531372 0l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#eeeeee" d="m666.52496 425.42667l163.49603 0l0 23.212585l-163.49603 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m666.52496 425.42667l163.49603 0l0 23.212585l-163.49603 0z" fill-rule="evenodd"/><path fill="#000000" d="m708.2317 441.83295l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm9.000183 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm9.209351 2.40625l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm11.249695 -8.5l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.797058 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.467834 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.179443 4.625l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm15.265747 -1.125l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0z" fill-rule="nonzero"/><path fill="#eeeeee" d="m356.92914 396.0315l198.14172 0l0 30.456696l-198.14172 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m356.92914 396.0315l198.14172 0l0 30.456696l-198.14172 0z" fill-rule="evenodd"/><path fill="#000000" d="m374.96304 412.7161l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.2345276 -0.109375q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 3.453125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm9.974976 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1248474 1.046875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm4.01651 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm13.0859375 -9.546875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.7970276 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.4678955 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm18.820038 3.5l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0zm1.9124756 -4.453125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm14.030975 -3.34375l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm5.2501526 3.34375l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm8.438232 0l-3.6875 -9.546875l1.359375 0l2.484375 6.9375q0.296875 0.828125 0.5 1.5625q0.21875 -0.78125 0.515625 -1.5625l2.578125 -6.9375l1.28125 0l-3.734375 9.546875l-1.296875 0zm8.26474 2.8125q-0.984375 -1.234375 -1.65625 -2.875q-0.65625 -1.640625 -0.65625 -3.390625q0 -1.546875 0.5 -2.96875q0.578125 -1.640625 1.8125 -3.28125l0.828125 0q-0.78125 1.359375 -1.03125 1.9375q-0.40625 0.890625 -0.625 1.875q-0.28125 1.21875 -0.28125 2.4375q0 3.140625 1.9375 6.265625l-0.828125 0zm4.76651 -2.8125l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.8428955 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm20.140625 -3.34375l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm3.437622 6.15625l-0.828125 0q1.9375 -3.125 1.9375 -6.265625q0 -1.21875 -0.28125 -2.421875q-0.21875 -0.984375 -0.609375 -1.875q-0.265625 -0.59375 -1.046875 -1.953125l0.828125 0q1.234375 1.640625 1.8125 3.28125q0.5 1.421875 0.5 2.96875q0 1.75 -0.671875 3.390625q-0.671875 1.640625 -1.640625 2.875z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m537.7507 203.47244l128.78741 155.05511" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m537.7507 203.47244l124.9538 150.43958" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m661.43384 354.96738l4.170166 2.435608l-1.6289673 -4.5463257z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m205.4179 252.89662l135.46455 -68.62991l23.46457 46.267715l-135.46455 68.62991z" fill-rule="evenodd"/><path fill="#000000" d="m224.83069 269.99884l1.3365173 -0.95736694q0.54966736 0.8074951 1.3474884 0.99884033q0.7907562 0.17739868 1.7943115 -0.33102417q1.0035553 -0.50842285 1.286438 -1.1596985q0.27583313 -0.66522217 -0.006866455 -1.2226257q-0.24734497 -0.48776245 -0.82785034 -0.5614929q-0.39164734 -0.046783447 -1.7387543 0.26785278q-1.8288574 0.401062 -2.6044922 0.4262085q-0.7617035 0.018066406 -1.3437653 -0.33514404q-0.58914185 -0.36712646 -0.91423035 -1.0081482q-0.2897644 -0.5713501 -0.2722931 -1.1932678q0.010406494 -0.63583374 0.30781555 -1.1893616q0.20732117 -0.4203186 0.70791626 -0.88412476q0.5074768 -0.48480225 1.1765137 -0.823761q1.0174866 -0.5155029 1.9325104 -0.6112366q0.91500854 -0.09573364 1.5318298 0.22232056q0.63075256 0.31103516 1.1941833 1.0765381l-1.3367004 0.9224243q-0.4367981 -0.6194763 -1.1015167 -0.75561523q-0.65078735 -0.14324951 -1.5010223 0.2875061q-1.0174866 0.5155029 -1.2799683 1.0688477q-0.24853516 0.54629517 -0.022369385 0.992218q0.14134216 0.27871704 0.42874146 0.4308777q0.30134583 0.14511108 0.76934814 0.10067749q0.2514801 -0.02230835 1.4731445 -0.27340698q1.766037 -0.3867798 2.5135956 -0.43270874q0.74757385 -0.045928955 1.3504486 0.27920532q0.60287476 0.32513428 0.9845123 1.0776367q0.37457275 0.7385864 0.26757812 1.5985107q-0.093063354 0.85287476 -0.71772766 1.6247559q-0.6317444 0.7579651 -1.649231 1.2734375q-1.6725922 0.8473816 -2.9180145 0.6025696q-1.2314758 -0.2518921 -2.1680908 -1.5114441zm5.0266266 -12.162811l-0.85513306 -1.6861877l1.4635162 -0.7414551l0.8551483 1.6861877l-1.4635315 0.7414551zm5.187393 10.228546l-4.374649 -8.625977l1.4635162 -0.7414856l4.374649 8.626007l-1.4635162 0.7414551zm3.7790527 -1.0212708l1.52771 -0.51123047q0.4367981 0.6194458 0.98942566 0.7073059q0.7485504 0.12872314 1.6963501 -0.35144043q1.0174866 -0.5155029 1.3561401 -1.1950073q0.35256958 -0.6865845 0.1802063 -1.5101013q-0.11463928 -0.5024109 -0.85650635 -1.9306946q-0.37535095 1.6089478 -1.8110046 2.3362732q-1.7841034 0.9038696 -3.4099731 0.116119385q-1.6258698 -0.78775024 -2.5375366 -2.5853882q-0.6289978 -1.2402649 -0.7130127 -2.511383q-0.07008362 -1.2781677 0.4835205 -2.2592773q0.5604706 -1.0021057 1.7173462 -1.588211q1.5192871 -0.7696991 3.1308136 -0.04475403l-0.52297974 -1.0312195l1.3520203 -0.68496704l3.7809906 7.455414q1.024765 2.02063 1.0306549 3.0686035q0.019821167 1.0408936 -0.6248779 1.9805603q-0.63075256 0.9326172 -1.9409485 1.596405q-1.5332184 0.7767639 -2.8483124 0.5672302q-1.2941132 -0.20263672 -1.9800262 -1.6242371zm-1.4163971 -5.7983093q0.86221313 1.7001343 1.9270172 2.1415405q1.0787354 0.4343872 2.0962372 -0.08111572q1.0035553 -0.50842285 1.2978363 -1.6208801q0.28720093 -1.1264038 -0.5538025 -2.7846985q-0.8056793 -1.588623 -1.9193573 -2.0228271q-1.1068268 -0.45516968 -2.0964355 0.046203613q-0.9756775 0.4942932 -1.2558289 1.6346436q-0.28720093 1.1263733 0.5043335 2.6871338zm10.590393 0.25723267l-6.0425262 -11.914749l1.4635162 -0.7414551l2.1696625 4.2781525q0.41677856 -1.699997 1.9778595 -2.4908752q0.9617462 -0.48724365 1.849472 -0.46406555q0.90167236 0.016113281 1.5475464 0.5296631q0.645874 0.51353455 1.2889862 1.781662l2.7703857 5.4626465l-1.4635315 0.7414551l-2.7703705 -5.4626465q-0.5583191 -1.1008911 -1.2866364 -1.3624725q-0.7283325 -0.26158142 -1.6064453 0.18328857q-0.64115906 0.3248291 -1.0359497 0.96273804q-0.40185547 0.6239624 -0.36297607 1.3224182q0.05281067 0.69140625 0.5687103 1.7086945l2.395813 4.72406l-1.4635162 0.7414856zm14.349625 -8.601105q-0.47607422 1.0994568 -1.0803223 1.7734222q-0.5973816 0.65296936 -1.4615479 1.0907745q-1.4217224 0.7202759 -2.541687 0.41189575q-1.1199646 -0.3083954 -1.664154 -1.3814087q-0.3250885 -0.641037 -0.29388428 -1.3049316q0.024154663 -0.6778412 0.32862854 -1.2174377q0.3113556 -0.5606079 0.81196594 -1.0244141q0.36160278 -0.32333374 1.1831665 -0.87968445q1.664154 -1.1058502 2.3520508 -1.8221741q-0.14154053 -0.3136444 -0.17687988 -0.38331604q-0.45230103 -0.89186096 -1.0612793 -1.0562744q-0.8048706 -0.20527649 -1.9199524 0.3596344q-1.0314178 0.5225525 -1.3355103 1.1320343q-0.3040924 0.60946655 -0.08166504 1.635315l-1.5345917 0.5322418q-0.26423645 -1.0046692 -0.10090637 -1.7880402q0.15626526 -0.7973175 0.85102844 -1.5346527q0.6947479 -0.7373352 1.7958832 -1.2951965q1.1150513 -0.5649109 1.932312 -0.6461487q0.8241272 -0.102249146 1.3496704 0.13946533q0.53237915 0.22071838 0.96173096 0.7563782q0.26049805 0.34095764 0.7552185 1.3164215l0.9894104 1.9509583q1.0318298 2.0345612 1.4050293 2.5286102q0.36611938 0.48010254 0.885376 0.8476105l-1.5192871 0.7696991q-0.4701538 -0.33981323 -0.82980347 -0.91078186zm-1.7862549 -3.211258q-0.6248779 0.73695374 -2.100769 1.7649231q-0.8423767 0.5844269 -1.1339111 0.9423065q-0.29153442 0.35787964 -0.3451233 0.77038574q-0.039642334 0.40544128 0.15823364 0.7956238q0.29681396 0.5852814 0.94073486 0.7495117q0.6439209 0.16421509 1.4941406 -0.26652527q0.8363037 -0.4236908 1.3076477 -1.1179047q0.47824097 -0.71520996 0.45977783 -1.5115814q-0.017486572 -0.62171936 -0.50512695 -1.5832672l-0.27560425 -0.5434723zm4.055084 0.15257263l1.3365173 -0.95736694q0.5496826 0.8074951 1.3475037 0.99884033q0.79074097 0.17741394 1.7943115 -0.33102417q1.00354 -0.50842285 1.286438 -1.1596985q0.27581787 -0.66522217 -0.006866455 -1.2226257q-0.24737549 -0.4877472 -0.82785034 -0.56147766q-0.3916626 -0.046798706 -1.7387695 0.26783752q-1.8288574 0.40107727 -2.6044922 0.4262085q-0.76168823 0.018051147 -1.34375 -0.33514404q-0.58914185 -0.36712646 -0.9142456 -1.0081482q-0.2897644 -0.5713501 -0.27227783 -1.1932526q0.010406494 -0.635849 0.3078003 -1.1893921q0.20730591 -0.42030334 0.70791626 -0.8841095q0.5074768 -0.48480225 1.1765137 -0.823761q1.0174866 -0.5154877 1.9325256 -0.6112366q0.91500854 -0.09573364 1.5318298 0.22233582q0.6307373 0.3110199 1.1941833 1.0765228l-1.3367004 0.9224243q-0.4367981 -0.61946106 -1.101532 -0.7556305q-0.65078735 -0.143219 -1.5010071 0.28753662q-1.0174866 0.5154877 -1.2799683 1.0688477q-0.24853516 0.5462799 -0.022399902 0.992218q0.14135742 0.27870178 0.42877197 0.43086243q0.30133057 0.14511108 0.76934814 0.10067749q0.25146484 -0.02230835 1.4731445 -0.27340698q1.7660217 -0.38676453 2.5135803 -0.43269348q0.7475891 -0.045944214 1.3504639 0.27920532q0.60287476 0.32513428 0.9844971 1.0776367q0.37457275 0.73857117 0.26757812 1.5985107q-0.093048096 0.85287476 -0.7177124 1.6247559q-0.6317444 0.7579498 -1.649231 1.2734375q-1.6726074 0.8473816 -2.9180298 0.6025543q-1.2314758 -0.2518921 -2.1680908 -1.5114441zm10.21402 -1.9342651l-6.042511 -11.914734l1.463501 -0.7414551l2.1696777 4.2781525q0.41674805 -1.699997 1.9778442 -2.4908752q0.9617615 -0.48724365 1.8494873 -0.46406555q0.90167236 0.016113281 1.5475464 0.5296631q0.6458435 0.51353455 1.288971 1.781662l2.7703857 5.4626465l-1.4635315 0.74147034l-2.7703552 -5.4626617q-0.5583191 -1.1008911 -1.2866516 -1.3624725q-0.7283325 -0.26158142 -1.6064453 0.18328857q-0.6411438 0.3248291 -1.0359497 0.96273804q-0.40185547 0.6239624 -0.36297607 1.3224182q0.052825928 0.69140625 0.5687256 1.7086792l2.395813 4.7240906l-1.4635315 0.7414551zm13.879425 -7.0316925l-4.374634 -8.625977l1.3101807 -0.66378784l0.6219177 1.2263184q0.22695923 -1.9015961 2.024994 -2.8125305q0.7805481 -0.39543152 1.5769958 -0.44862366q0.79644775 -0.05317688 1.3502502 0.2442627q0.56066895 0.27645874 1.0041199 0.83999634q0.28860474 0.36175537 0.8045044 1.3790436l2.692627 5.309372l-1.463501 0.7414551l-2.6643677 -5.2536316q-0.45230103 -0.89186096 -0.8526001 -1.2320557q-0.3934021 -0.3611908 -0.95977783 -0.40705872q-0.56637573 -0.04586792 -1.1517639 0.25071716q-0.9338684 0.473114 -1.3129578 1.4183502q-0.3722229 0.9242401 0.46881104 2.58255l2.388733 4.710144l-1.4635315 0.7414551zm6.5212097 -8.733719q-1.2155762 -2.396881 -0.47094727 -4.2104187q0.6274109 -1.5264587 2.2303162 -2.3385315q1.7841187 -0.9038696 3.506775 -0.3052826q1.7155762 0.5846405 2.7615356 2.6470795q0.8410034 1.6583099 0.8268738 2.874054q-0.021209717 1.201828 -0.714386 2.2186127q-0.67926025 1.0097198 -1.808258 1.5817108q-1.8119812 0.91799927 -3.5136108 0.3262787q-1.7087402 -0.60565186 -2.8182983 -2.7935028zm1.5053406 -0.7626343q0.8410034 1.6582947 1.9758911 2.1342926q1.1417542 0.45498657 2.2428894 -0.102874756q1.0871887 -0.5507965 1.3950195 -1.7401886q0.30075073 -1.2033081 -0.5614624 -2.9034271q-0.81274414 -1.6025696 -1.9544983 -2.0575562q-1.1417542 -0.45498657 -2.2289429 0.09580994q-1.1011353 0.5578613 -1.4089355 1.7472382q-0.30096436 1.168396 0.54003906 2.826706zm10.484772 0.11804199l-4.374634 -8.625992l1.3101807 -0.66378784l0.62194824 1.2263184q0.22692871 -1.9015961 2.0249634 -2.8125305q0.7805481 -0.39543152 1.5769958 -0.44862366q0.79644775 -0.05317688 1.3502502 0.24427795q0.56066895 0.27644348 1.0041199 0.8399811q0.28860474 0.36175537 0.8045044 1.3790436l2.692627 5.309372l-1.463501 0.7414551l-2.6643677 -5.2536316q-0.45230103 -0.89186096 -0.8526001 -1.2320557q-0.3934021 -0.3611908 -0.95977783 -0.40705872q-0.56637573 -0.04586792 -1.1517639 0.25071716q-0.9338684 0.473114 -1.3129578 1.4183502q-0.37219238 0.9242401 0.46881104 2.58255l2.388733 4.710144l-1.4635315 0.74147034zm13.759125 -10.456375l1.5971985 -0.58148193q0.30899048 1.5074463 -0.27816772 2.733261q-0.5942688 1.2118835 -2.0995789 1.9745331q-1.8956299 0.96035767 -3.5972595 0.36865234q-1.6947937 -0.6127167 -2.7619324 -2.7169495q-1.1095581 -2.187851 -0.6022949 -3.9512177q0.5212097 -1.7704163 2.3053284 -2.674286q1.7283325 -0.87564087 3.4162292 -0.2419281q1.6947937 0.6127167 2.7760925 2.7448273q0.07064819 0.13934326 0.19787598 0.3901825l-6.4394836 3.2624207q0.8044739 1.3790283 1.9179688 1.7782745q1.1064453 0.38531494 2.1796875 -0.15841675q0.80841064 -0.40956116 1.1678772 -1.117157q0.35235596 -0.72151184 0.22045898 -1.8107147zm-6.0101624 0.06719971l4.8226624 -2.443283q-0.6488342 -1.0375214 -1.3843994 -1.3479767q-1.1280212 -0.49697876 -2.243103 0.06794739q-1.00354 0.50842285 -1.3541565 1.5443268q-0.34375 1.0149231 0.15899658 2.1789856z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m537.7507 341.99738l128.78741 63.02362" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m537.7507 341.99738l123.39807 60.386322" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m660.4227 403.86728l4.802246 0.5111389l-3.3502197 -3.478363z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m529.1312 489.2756l137.38586 -52.251984" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m529.1312 489.2756l131.77771 -50.11908" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m661.49615 440.70038l3.65448 -3.157074l-4.8288574 0.06939697z" fill-rule="evenodd"/><path fill="#ffab40" d="m676.0159 231.29134l153.47485 0c3.6621094E-4 0 7.324219E-4 1.5258789E-4 9.765625E-4 3.9672852E-4c2.4414062E-4 2.593994E-4 4.272461E-4 6.1035156E-4 4.272461E-4 9.613037E-4l-0.0014038086 50.103424c0 5.5345764 -4.4866333 10.02121 -10.021179 10.02121l-153.47485 0l0 0c-7.324219E-4 0 -0.0013427734 -6.1035156E-4 -0.0013427734 -0.001373291l0.0013427734 -50.103424l0 0c0 -5.534546 4.4866333 -10.021194 10.021179 -10.021194z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m676.0159 231.29134l153.47485 0c3.6621094E-4 0 7.324219E-4 1.5258789E-4 9.765625E-4 3.9672852E-4c2.4414062E-4 2.593994E-4 4.272461E-4 6.1035156E-4 4.272461E-4 9.613037E-4l-0.0014038086 50.103424c0 5.5345764 -4.4866333 10.02121 -10.021179 10.02121l-153.47485 0l0 0c-7.324219E-4 0 -0.0013427734 -6.1035156E-4 -0.0013427734 -0.001373291l0.0013427734 -50.103424l0 0c0 -5.534546 4.4866333 -10.021194 10.021179 -10.021194z" fill-rule="evenodd"/><path fill="#000000" d="m681.383 250.15433l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.8428955 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm15.0 0l-2.53125 -9.546875l1.296875 0l1.453125 6.265625q0.234375 0.984375 0.40625 1.953125q0.359375 -1.53125 0.421875 -1.765625l1.828125 -6.453125l1.515625 0l1.375 4.828125q0.515625 1.796875 0.734375 3.390625q0.1875 -0.90625 0.484375 -2.078125l1.484375 -6.140625l1.28125 0l-2.625 9.546875l-1.21875 0l-2.0 -7.265625q-0.265625 -0.921875 -0.3125 -1.125q-0.140625 0.65625 -0.28125 1.125l-2.015625 7.265625l-1.296875 0zm10.854431 -5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m681.2736 264.60745l0 -2.609375l-2.609375 0l0 -1.09375l2.609375 0l0 -2.59375l1.09375 0l0 2.59375l2.609375 0l0 1.09375l-2.609375 0l0 2.609375l-1.09375 0zm9.408386 1.546875l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125zm7.2092285 0l0 -9.546875l1.265625 0l0 3.921875l4.953125 0l0 -3.921875l1.265625 0l0 9.546875l-1.265625 0l0 -4.5l-4.953125 0l0 4.5l-1.265625 0zm9.000183 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm11.178101 3.453125l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm2.8656006 0l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#000000" d="m678.5236 279.09183l1.203125 -0.109375q0.078125 0.71875 0.390625 1.1875q0.3125 0.453125 0.953125 0.734375q0.65625 0.28125 1.46875 0.28125q0.71875 0 1.265625 -0.21875q0.5625 -0.21875 0.828125 -0.578125q0.265625 -0.375 0.265625 -0.828125q0 -0.453125 -0.265625 -0.78125q-0.25 -0.328125 -0.84375 -0.5625q-0.390625 -0.15625 -1.703125 -0.46875q-1.3125 -0.3125 -1.84375 -0.59375q-0.671875 -0.359375 -1.015625 -0.890625q-0.328125 -0.53125 -0.328125 -1.1875q0 -0.71875 0.40625 -1.34375q0.40625 -0.625 1.1875 -0.953125q0.796875 -0.328125 1.765625 -0.328125q1.046875 0 1.859375 0.34375q0.8125 0.34375 1.25 1.015625q0.4375 0.65625 0.46875 1.484375l-1.203125 0.09375q-0.109375 -0.90625 -0.671875 -1.359375q-0.5625 -0.46875 -1.65625 -0.46875q-1.140625 0 -1.671875 0.421875q-0.515625 0.421875 -0.515625 1.015625q0 0.515625 0.359375 0.84375q0.375 0.328125 1.90625 0.6875q1.546875 0.34375 2.109375 0.59375q0.84375 0.390625 1.234375 0.984375q0.390625 0.578125 0.390625 1.359375q0 0.75 -0.4375 1.4375q-0.421875 0.671875 -1.25 1.046875q-0.8125 0.359375 -1.828125 0.359375q-1.296875 0 -2.171875 -0.375q-0.875 -0.375 -1.375 -1.125q-0.5 -0.765625 -0.53125 -1.71875zm9.1710205 5.71875l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm11.084351 1.203125l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5218506 4.125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.896851 0l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm8.707886 3.453125l3.65625 -9.546875l1.359375 0l3.90625 9.546875l-1.4375 0l-1.109375 -2.890625l-3.984375 0l-1.046875 2.890625l-1.34375 0zm2.75 -3.921875l3.234375 0l-1.0 -2.640625q-0.453125 -1.203125 -0.671875 -1.96875q-0.1875 0.90625 -0.515625 1.8125l-1.046875 2.796875zm7.0147705 3.921875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm5.5321045 0l-1.078125 0l0 -9.546875l1.171875 0l0 3.40625q0.734375 -0.921875 1.890625 -0.921875q0.640625 0 1.203125 0.265625q0.578125 0.25 0.9375 0.71875q0.375 0.453125 0.578125 1.109375q0.203125 0.65625 0.203125 1.40625q0 1.78125 -0.875 2.75q-0.875 0.96875 -2.109375 0.96875q-1.21875 0 -1.921875 -1.015625l0 0.859375zm0 -3.5q0 1.234375 0.328125 1.78125q0.5625 0.90625 1.5 0.90625q0.765625 0 1.328125 -0.65625q0.5625 -0.671875 0.5625 -2.0q0 -1.34375 -0.546875 -1.984375q-0.53125 -0.65625 -1.296875 -0.65625q-0.765625 0 -1.328125 0.671875q-0.546875 0.671875 -0.546875 1.9375zm6.3499756 -4.6875l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm5.5079956 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1248169 1.046875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm8.969666 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm4.4071045 2.65625l-0.125 -1.09375q0.375 0.109375 0.65625 0.109375q0.390625 0 0.625 -0.140625q0.234375 -0.125 0.390625 -0.359375q0.109375 -0.171875 0.359375 -0.875q0.03125 -0.09375 0.109375 -0.28125l-2.625 -6.921875l1.265625 0l1.4375 4.0q0.28125 0.765625 0.5 1.59375q0.203125 -0.796875 0.46875 -1.578125l1.484375 -4.015625l1.171875 0l-2.625 7.015625q-0.421875 1.140625 -0.65625 1.578125q-0.3125 0.578125 -0.71875 0.84375q-0.40625 0.28125 -0.96875 0.28125q-0.328125 0 -0.75 -0.15625z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m748.27295 332.57755l-0.5354004 -41.165375" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m748.27295 332.57755l-0.45739746 -35.165894" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m749.46716 297.3902l-1.7106323 -4.5162354l-1.5925293 4.5591736z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m830.021 358.53027l25.000366 0l0 -148.64862l-107.26807 0l0 -28.83168" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m830.021 358.5303l25.000305 0l0 -148.64867l-107.268005 0l0 -22.831665" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m749.405 187.04997l-1.6517334 -4.538101l-1.6517334 4.538101z" fill-rule="evenodd"/><path fill="#ffab40" d="m673.89514 133.6483l155.59564 0c3.6621094E-4 0 7.324219E-4 1.373291E-4 9.765625E-4 3.9672852E-4c2.4414062E-4 2.4414062E-4 4.272461E-4 5.950928E-4 4.272461E-4 9.613037E-4l-0.0014038086 39.499786c0 4.3632812 -3.5371094 7.900421 -7.9003906 7.900421l-155.59564 0l0 0c-7.324219E-4 0 -0.0013427734 -6.1035156E-4 -0.0013427734 -0.0013580322l0.0013427734 -39.499786l0 0c0 -4.3632812 3.5371094 -7.900421 7.9003906 -7.900421z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m673.89514 133.6483l155.59564 0c3.6621094E-4 0 7.324219E-4 1.373291E-4 9.765625E-4 3.9672852E-4c2.4414062E-4 2.4414062E-4 4.272461E-4 5.950928E-4 4.272461E-4 9.613037E-4l-0.0014038086 39.499786c0 4.3632812 -3.5371094 7.900421 -7.9003906 7.900421l-155.59564 0l0 0c-7.324219E-4 0 -0.0013427734 -6.1035156E-4 -0.0013427734 -0.0013580322l0.0013427734 -39.499786l0 0c0 -4.3632812 3.5371094 -7.900421 7.9003906 -7.900421z" fill-rule="evenodd"/><path fill="#000000" d="m680.76184 154.14908l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.8428955 0l0 -9.546875l1.296875 0l5.015625 7.5l0 -7.5l1.203125 0l0 9.546875l-1.296875 0l-5.015625 -7.5l0 7.5l-1.203125 0zm13.40625 0l0 -9.546875l6.4375 0l0 1.125l-5.171875 0l0 2.96875l4.46875 0l0 1.125l-4.46875 0l0 4.328125l-1.265625 0zm8.250732 -5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0zm0 5.578125l0 -1.328125l1.328125 0l0 1.328125l-1.328125 0z" fill-rule="nonzero"/><path fill="#000000" d="m685.13684 166.80533l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.656372 3.34375l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.188416 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.037476 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm5.5531006 2.421875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.874817 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm16.631104 -5.421875l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.797058 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.467834 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.148193 4.625l0 -9.546875l3.28125 0q1.109375 0 1.703125 0.140625q0.8125 0.1875 1.390625 0.6875q0.765625 0.640625 1.140625 1.640625q0.375 0.984375 0.375 2.25q0 1.09375 -0.265625 1.9375q-0.25 0.828125 -0.65625 1.390625q-0.390625 0.546875 -0.859375 0.859375q-0.46875 0.3125 -1.140625 0.484375q-0.65625 0.15625 -1.53125 0.15625l-3.4375 0zm1.265625 -1.125l2.03125 0q0.9375 0 1.46875 -0.171875q0.546875 -0.1875 0.875 -0.5q0.4375 -0.453125 0.6875 -1.203125q0.25 -0.765625 0.25 -1.84375q0 -1.5 -0.5 -2.296875q-0.484375 -0.8125 -1.1875 -1.078125q-0.5 -0.203125 -1.625 -0.203125l-2.0 0l0 7.296875zm7.875122 -3.578125q0 -1.6875 0.34375 -2.71875q0.359375 -1.03125 1.046875 -1.59375q0.6875 -0.5625 1.71875 -0.5625q0.78125 0 1.359375 0.3125q0.578125 0.296875 0.953125 0.890625q0.375 0.578125 0.59375 1.421875q0.21875 0.828125 0.21875 2.25q0 1.671875 -0.359375 2.703125q-0.34375 1.03125 -1.03125 1.59375q-0.671875 0.5625 -1.734375 0.5625q-1.375 0 -2.15625 -0.984375q-0.953125 -1.1875 -0.953125 -3.875zm1.203125 0q0 2.34375 0.546875 3.125q0.5625 0.78125 1.359375 0.78125q0.8125 0 1.359375 -0.78125q0.5625 -0.78125 0.5625 -3.125q0 -2.359375 -0.5625 -3.125q-0.546875 -0.78125 -1.359375 -0.78125q-0.8125 0 -1.296875 0.6875q-0.609375 0.875 -0.609375 3.21875z" fill-rule="nonzero"/><path fill="#0000ff" d="m15.858268 120.99475l195.77954 0l0 129.70079l-195.77954 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m15.858268 120.99475l195.77954 0l0 129.70079l-195.77954 0z" fill-rule="evenodd"/><path fill="#eeeeee" d="m32.0 145.96985l163.49606 0l0 23.905502l-163.49606 0z" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m32.0 145.96985l163.49606 0l0 23.905502l-163.49606 0z" fill-rule="evenodd"/><path fill="#000000" d="m52.55744 162.7226l0 -9.546875l3.28125 0q1.109375 0 1.703125 0.140625q0.8125 0.1875 1.390625 0.6875q0.765625 0.640625 1.140625 1.640625q0.375 0.984375 0.375 2.25q0 1.09375 -0.265625 1.9375q-0.25 0.828125 -0.65625 1.390625q-0.390625 0.546875 -0.859375 0.859375q-0.46875 0.3125 -1.140625 0.484375q-0.65625 0.15625 -1.53125 0.15625l-3.4375 0zm1.265625 -1.125l2.03125 0q0.9375 0 1.46875 -0.171875q0.546875 -0.1875 0.875 -0.5q0.4375 -0.453125 0.6875 -1.203125q0.25 -0.765625 0.25 -1.84375q0 -1.5 -0.5 -2.296875q-0.484375 -0.8125 -1.1875 -1.078125q-0.5 -0.203125 -1.625 -0.203125l-2.0 0l0 7.296875zm12.937653 -1.09375l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.256226 1.90625l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5218506 6.78125l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm17.006088 0.078125l1.265625 0.3125q-0.390625 1.5625 -1.421875 2.375q-1.03125 0.8125 -2.53125 0.8125q-1.53125 0 -2.5 -0.625q-0.96875 -0.625 -1.484375 -1.8125q-0.5 -1.1875 -0.5 -2.5625q0 -1.484375 0.5625 -2.59375q0.578125 -1.109375 1.625 -1.6875q1.0625 -0.578125 2.328125 -0.578125q1.421875 0 2.390625 0.734375q0.984375 0.71875 1.375 2.046875l-1.25 0.296875q-0.328125 -1.046875 -0.96875 -1.515625q-0.625 -0.484375 -1.578125 -0.484375q-1.09375 0 -1.84375 0.53125q-0.734375 0.53125 -1.03125 1.421875q-0.296875 0.875 -0.296875 1.828125q0 1.21875 0.34375 2.125q0.359375 0.90625 1.109375 1.359375q0.75 0.4375 1.625 0.4375q1.0625 0 1.796875 -0.609375q0.734375 -0.609375 0.984375 -1.8125zm2.2345276 -0.109375q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.46109 0l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm16.740463 -6.09375l1.265625 0l0 5.515625q0 1.4375 -0.328125 2.296875q-0.3125 0.84375 -1.171875 1.375q-0.84375 0.515625 -2.21875 0.515625q-1.34375 0 -2.203125 -0.453125q-0.84375 -0.46875 -1.21875 -1.34375q-0.359375 -0.875 -0.359375 -2.390625l0 -5.515625l1.265625 0l0 5.515625q0 1.234375 0.21875 1.828125q0.234375 0.59375 0.796875 0.921875q0.5625 0.3125 1.390625 0.3125q1.390625 0 1.96875 -0.625q0.59375 -0.640625 0.59375 -2.4375l0 -5.515625zm5.79702 9.546875l0 -8.421875l-3.140625 0l0 -1.125l7.5625 0l0 1.125l-3.15625 0l0 8.421875l-1.265625 0zm4.7507324 0l3.6875 -4.96875l-3.25 -4.578125l1.5 0l1.734375 2.453125q0.53125 0.765625 0.765625 1.171875q0.3125 -0.515625 0.75 -1.09375l1.921875 -2.53125l1.375 0l-3.359375 4.5l3.625 5.046875l-1.5625 0l-2.40625 -3.40625q-0.203125 -0.296875 -0.421875 -0.640625q-0.3125 0.53125 -0.453125 0.71875l-2.390625 3.328125l-1.515625 0zm9.4678955 -4.640625q0 -2.375 1.28125 -3.71875q1.28125 -1.34375 3.296875 -1.34375q1.3125 0 2.375 0.625q1.0625 0.625 1.609375 1.765625q0.5625 1.125 0.5625 2.5625q0 1.4375 -0.59375 2.59375q-0.578125 1.140625 -1.65625 1.734375q-1.0625 0.578125 -2.3125 0.578125q-1.34375 0 -2.40625 -0.640625q-1.0625 -0.65625 -1.609375 -1.78125q-0.546875 -1.125 -0.546875 -2.375zm1.3125 0.015625q0 1.71875 0.921875 2.71875q0.921875 0.984375 2.328125 0.984375q1.421875 0 2.34375 -1.0q0.921875 -1.0 0.921875 -2.84375q0 -1.15625 -0.40625 -2.03125q-0.390625 -0.875 -1.15625 -1.34375q-0.75 -0.484375 -1.6875 -0.484375q-1.34375 0 -2.3125 0.921875q-0.953125 0.921875 -0.953125 3.078125zm13.148163 4.625l0 -9.546875l3.28125 0q1.109375 0 1.703125 0.140625q0.8125 0.1875 1.390625 0.6875q0.765625 0.640625 1.140625 1.640625q0.375 0.984375 0.375 2.25q0 1.09375 -0.265625 1.9375q-0.25 0.828125 -0.65625 1.390625q-0.390625 0.546875 -0.859375 0.859375q-0.46875 0.3125 -1.140625 0.484375q-0.65625 0.15625 -1.53125 0.15625l-3.4375 0zm1.265625 -1.125l2.03125 0q0.9375 0 1.46875 -0.171875q0.546875 -0.1875 0.875 -0.5q0.4375 -0.453125 0.6875 -1.203125q0.25 -0.765625 0.25 -1.84375q0 -1.5 -0.5 -2.296875q-0.484375 -0.8125 -1.1875 -1.078125q-0.5 -0.203125 -1.625 -0.203125l-2.0 0l0 7.296875zm7.8751526 -3.578125q0 -1.6875 0.34375 -2.71875q0.359375 -1.03125 1.046875 -1.59375q0.6875 -0.5625 1.71875 -0.5625q0.78125 0 1.359375 0.3125q0.578125 0.296875 0.953125 0.890625q0.375 0.578125 0.59375 1.421875q0.21875 0.828125 0.21875 2.25q0 1.671875 -0.359375 2.703125q-0.34375 1.03125 -1.03125 1.59375q-0.671875 0.5625 -1.734375 0.5625q-1.375 0 -2.15625 -0.984375q-0.953125 -1.1875 -0.953125 -3.875zm1.203125 0q0 2.34375 0.546875 3.125q0.5625 0.78125 1.359375 0.78125q0.8125 0 1.359375 -0.78125q0.5625 -0.78125 0.5625 -3.125q0 -2.359375 -0.5625 -3.125q-0.546875 -0.78125 -1.359375 -0.78125q-0.8125 0 -1.296875 0.6875q-0.609375 0.875 -0.609375 3.21875z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m665.99475 157.34908l-470.4882 0.5669403" fill-rule="evenodd"/><path stroke="#595959" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m665.99475 157.34908l-464.4882 0.55970764" fill-rule="evenodd"/><path fill="#595959" stroke="#595959" stroke-width="1.0" stroke-linecap="butt" d="m201.50456 156.25705l-4.5361023 1.657196l4.540085 1.6462708z" fill-rule="evenodd"/></g></svg> \ No newline at end of file
diff --git a/bip-0120.mediawiki b/bip-0120.mediawiki
index d48cdfa..b951e93 100644
--- a/bip-0120.mediawiki
+++ b/bip-0120.mediawiki
@@ -5,7 +5,7 @@
Author: Kalle Rosenbaum <kalle@rosenbaum.se>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0120
- Status: Draft
+ Status: Withdrawn
Type: Standards Track
Created: 2015-07-28
</pre>
diff --git a/bip-0121.mediawiki b/bip-0121.mediawiki
index 34820f5..1b01a0b 100644
--- a/bip-0121.mediawiki
+++ b/bip-0121.mediawiki
@@ -5,7 +5,7 @@
Author: Kalle Rosenbaum <kalle@rosenbaum.se>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0121
- Status: Draft
+ Status: Withdrawn
Type: Standards Track
Created: 2015-07-27
</pre>
diff --git a/bip-0125.mediawiki b/bip-0125.mediawiki
index a4b0279..7dfdcbe 100644
--- a/bip-0125.mediawiki
+++ b/bip-0125.mediawiki
@@ -51,11 +51,11 @@ transaction) that spends one or more of the same inputs if,
# The original transactions signal replaceability explicitly or through inheritance as described in the above Summary section.
-# The replacement transaction pays an absolute higher fee than the sum paid by the original transactions.
+# The replacement transaction may only include an unconfirmed input if that input was included in one of the original transactions. (An unconfirmed input spends an output from a currently-unconfirmed transaction.)
-# The replacement transaction does not contain any new unconfirmed inputs that did not previously appear in the mempool. (Unconfirmed inputs are inputs spending outputs from currently unconfirmed transactions.)
+# The replacement transaction pays an absolute fee of at least the sum paid by the original transactions.
-# The replacement transaction must pay for its own bandwidth in addition to the amount paid by the original transactions at or above the rate set by the node's minimum relay fee setting. For example, if the minimum relay fee is 1 satoshi/byte and the replacement transaction is 500 bytes total, then the replacement must pay a fee at least 500 satoshis higher than the sum of the originals.
+# The replacement transaction must also pay for its own bandwidth at or above the rate set by the node's minimum relay fee setting. For example, if the minimum relay fee is 1 satoshi/byte and the replacement transaction is 500 bytes total, then the replacement must pay a fee at least 500 satoshis higher than the sum of the originals.
# The number of original transactions to be replaced and their descendant transactions which will be evicted from the mempool must not exceed a total of 100 transactions.
@@ -85,7 +85,7 @@ unconfirmed.
Wallets that don't want to signal replaceability should use either a max
sequence number (0xffffffff) or a sequence number of (0xffffffff-1) when
-then also want to use locktime; all known wallets currently do this.
+they also want to use locktime; all known wallets currently do this.
They should also take care not to spend any unconfirmed transaction that
signals replaceability explicitly or through inherited signaling; most wallets also
currently do this by not spending any unconfirmed transactions except
diff --git a/bip-0127.mediawiki b/bip-0127.mediawiki
new file mode 100644
index 0000000..15c7755
--- /dev/null
+++ b/bip-0127.mediawiki
@@ -0,0 +1,226 @@
+
+<pre>
+ BIP: 127
+ Layer: Applications
+ Title: Simple Proof-of-Reserves Transactions
+ Author: Steven Roose <steven@stevenroose.org>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0127
+ Status: Draft
+ Type: Standards Track
+ Created: 2019-01-28
+ License: CC0-1.0
+</pre>
+
+
+==Abstract==
+
+This BIP describes a simple way to construct proof-of-reserves transactions.
+This proposal formalizes a standard format for constructing such proofs, easing
+their construction with existing wallet infrastructure and enabling general
+proof-verification software. It relies on existing standards such as regular
+Bitcoin transaction serialization/validation and the BIP 174 PSBT format.
+The proposal also includes the description of a PSBT extension for a better
+user experience.
+
+==Copyright==
+
+This BIP is licensed under the Creative Commons CC0 1.0 Universal license.
+
+==Motivation==
+
+From the very early days in the history of Bitcoin, there have been companies
+managing bitcoins for their users. These users give up control over their coins
+in return for a certain service. Inevitably, there have been many cases of
+companies losing their users' bitcoins without timely disclosing such events to
+the public. Proofs of Reserves are a way for companies managing large amounts
+of bitcoins to prove ownership over a given amount of funds. The regular proof
+of control helps to ensure that no significant loss has occurred.
+
+While the term proof-of-reserves is not new by any means, the procedure is not
+very common among high-value custodian companies. One of the reasons for this
+is that every company that wants to perform a proof-of-reserves has to construct
+its own way to do so. Accordingly, their users have to understand the
+construction of the proof in order to be able to verify it. This raises the bar
+of entry both for custodians and for users.
+
+
+===What this BIP is not doing===
+
+The proof-of-reserve construction described in this document has some known
+shortcomings, mostly with regards to its privacy properties. While there exists
+research about improved proof-of-reserves mechanisms that have much better
+privacy properties<ref>Dagher, Gaby G., Benedikt Bünz, Joseph Bonneau, Jeremy
+Clark, and Dan Boneh. "Provisions: Privacy-preserving proofs of solvency for
+Bitcoin exchanges." (2015).</ref>, this BIP intentionally only formalizes
+the de-facto existing method.
+
+
+==Specification==
+
+Our specification consists of two parts:
+# the format for the actual proofs
+# a file format used to package a set of proofs and relevant metadata
+
+The final construction should have the following properties:
+* flexible proof construction to support complex wallet infrastructures
+* easy integration with existing wallet solutions (both hardware and software wallets)
+* support for verification via a standard procedure, regardless of publisher of the proof
+* proof prevents reuse of proofs by other parties by committing to a message
+* allow validating that the issuer had the funds under his control at a certain block, regardless of what happened after that block
+
+===Proof Format===
+
+To allow for maximal compatibility with existing systems, proofs are formatted as regular Bitcoin
+transactions. However, one small adaptation to the transaction is made that has two functions:
+# make the transaction unspendable to avoid putting funds at risk
+# link the proof to the issuer of the proof to prevent copying proofs from other custodians
+
+The resulting construction is a Bitcoin transaction with the following
+characteristics:
+
+* The first input (the "commitment input")
+** MUST have the txid part of the previous outpoint set to the SHA-256 hash of the commitment message prefixed with "Proof-of-Reserves: "<ref>If the message is "Some Message", the txid part should be <tt>SHA-256("Proof-of-Reserves: Some Message")</tt> with the string encoded as UTF-8.</ref> and index 0.
+* The remaining inputs
+** MUST have signatures that commit to the commitment input (e.g. using <tt>SIGHASH_ALL</tt>).
+* The transaction MUST have a single output that is the exact sum of all the inputs, assuming the commitment input to have 0 value; this means the transaction has no miner fee.
+
+The existence of the first input (which is just a commitment hash) ensures
+that this transaction is invalid and can never be confirmed.
+
+
+===Proof File Format===
+
+In theory, the first part of the specification would be sufficient as a minimum
+viable standard. However, there are a number of motivations to extend the
+standard with an extra layer of metadata:
+
+# constructing and combining multiple proofs
+#:Having thousands of UTXOs spread across different offline and online wallets could make it difficult to construct a single proof transaction with all UTXOs. Allowing multiple proof transactions with the same commitment message and block number gives extra flexibility to custodians with complex wallet infrastructure without making the combined proof less secure.
+# metadata for verification
+#:Not all systems that will be used for verification have access to a full index of all transactions. However, proofs should be easily verifiable even after some of the UTXOs used in the proof are no longer unspent. Metadata present in the proof allows for relatively efficient verification of proofs even if no transaction index is available.
+# potential future improvements
+#:The extensible metadata format allows for amending the standard in the future. One potential improvement would be having UTXO set commitments. These would allow the proofs-of-reserves to come with accompanying proofs-of-inclusion of all used UTXOs in the UTXO set at the block of proof construction (making validation even more efficient).
+
+The proposed proof-file format provides a standard way of combining multiple
+proofs and associated metadata. The specification of the format is in the
+Protocol Buffers<ref>https://github.com/protocolbuffers/protobuf/</ref> format.
+
+<pre>
+syntax = "proto3";
+import "google/protobuf/any.proto";
+
+message OutputMeta {
+ // Identify the outpoint.
+ bytes txid = 1;
+ uint32 vout = 2;
+
+ // The block hash of the block where this output was created.
+ bytes block_hash = 3;
+}
+
+message FinalProof {
+ // The proof transaction. Should be able to be parsed like a regular
+ // Bitcoin transaction.
+ bytes proof_tx = 1;
+
+ // The metadata of the ouputs used in the proof transaction.
+ repeated OutputMeta output_metadata = 2;
+}
+
+message ProofOfReserves {
+ // A version number for this format to enable extending it with
+ // additional fields.
+ uint32 version = 1;
+
+ // The network magic for the network in which the proofs are valid.
+ // 0xD9B4BEF9 for mainnet, 0x0709110B for testnet
+ //TODO consider BIP44 coin type ids instead:
+ // https://github.com/satoshilabs/slips/blob/master/slip-0044.md
+ uint32 network_magic = 2;
+
+ // The commitment message for this proof-of-reserves.
+ // This message is global for all the proofs.
+ string message = 3;
+
+ // The block at which this proof is supposed to be validated.
+ // Verification should take into account unspentness of outputs at this
+ // block height.
+ bytes block_hash = 4;
+
+ // The set of final proof transactions with their output metadata.
+ repeated FinalProof final_proofs = 5;
+
+ // Reserved field that can potentially be used by proof-construction tools.
+ // It can be ignored for verification.
+ repeated google.protobuf.Any pending_proofs = 6;
+}
+</pre>
+
+The last field, <tt>pending_proofs</tt>, leaves open some space in the same
+file that can be used by proof-construction tools. This allows them to
+construct different proofs incrementally without having to switch between file
+formats.
+
+
+===PSBT (BIP 174) extension===
+
+The "commitment input" detailed in the proof format section does not spend an
+existing UTXO and thus shouldn't be signed (empty <tt>scriptSig</tt> and
+witness). This can cause some problems when signing this type of transactions.
+For example, hardware wallets often require the signer to provide information
+about all inputs of transactions they are signing, such as the previous output
+or previous transaction; this data obviously doesn't exist for the commitment
+inputs.
+
+For most existing devices, it's possible to circumvent these requirements by
+providing dummy data or by instructing the device to ignore this specific
+input. However, there is still a UX problem. Because the hardware wallet
+device doesn't recognize the transaction as a proof-of-reserves transaction it
+will think it is signing a regular transaction that is spending all the money
+in the UTXOs. Most devices will ask for confirmation with a message along the
+lines of "Are you sure you want to send XXX BTC to address [...]?". This is
+not the best user experience.
+
+An addition to the BIP 174 PSBT format could help signing devices to recognize proof-of-reserve transactions.
+The following field is added to the BIP 174 <tt>INPUT</tt> map:
+
+* Type: Proof-of-reserves commitment <tt>PSBT_IN_POR_COMMITMENT = 0x09</tt>
+** Key: None. The key must only contain the 1 byte type.
+*** <tt>{0x09}</tt>
+** Value: The UTF-8 encoded commitment message string for the proof-of-reserves.
+*** <tt>{porCommitment}</tt>
+
+Wallets processing an input that has this field set
+* MUST make sure the txid of the previous outpoint is set to the SHA-256 hash of the prefixed commitment message string, as detailed above;
+* MUST assume the input value to be 0 (without requiring the previous output or transaction to be provided);
+* SHOULD display the commitment message to ask the user for confirmation before signing any inputs;
+* SHOULD only provide signatures with a signature hash that commits to this input;
+* SHOULD accept an empty <tt>scriptSig</tt> for this input (as if the <tt>scriptPubKey</tt> was <tt>OP_TRUE</tt>).
+
+
+==Compatibility==
+
+The proof transaction specification is based on the Bitcoin transaction
+serialization protocol and will thus always be compatible with serializers
+that can interpret Bitcoin transactions. The protobuf file format is custom
+to this BIP and has a version byte to enable updates while attempting to remain
+backwards compatible.
+
+
+==Implementations==
+
+A proof-of-concept implementation of the PSBT extension in the
+[https://github.com/rust-bitcoin/rust-bitcoin rust-bitcoin] project can be
+found in the <tt>psbt-por</tt> branch here:
+https://github.com/stevenroose/rust-bitcoin/tree/psbt-por
+
+A work-in-progress implementation of a tool that produces and verifies proofs
+in the described format can be found here:
+https://github.com/stevenroose/reserves
+
+
+== Footnotes ==
+
+<references />
+
diff --git a/bip-0134.mediawiki b/bip-0134.mediawiki
index 9adc8b5..74f6302 100644
--- a/bip-0134.mediawiki
+++ b/bip-0134.mediawiki
@@ -195,7 +195,7 @@ calculation of the merkle tree. This means that changes in signatures
would not be detectable and open an attack vector.
For this reason the merkle tree is extended to include (append) the hash of
-the v4 transactions. The markle tree will continue to have all the
+the v4 transactions. The merkle tree will continue to have all the
transactions' tx-ids but appended to that are the v4 hashes that include the
signatures as well. Specifically the hash is taken over a data-blob that
is built up from:
diff --git a/bip-0136.mediawiki b/bip-0136.mediawiki
new file mode 100644
index 0000000..f94171d
--- /dev/null
+++ b/bip-0136.mediawiki
@@ -0,0 +1,328 @@
+<pre>
+ BIP: 136
+ Layer: Applications
+ Title: Bech32 Encoded Tx Position References
+ Author: Велеслав <veleslav.bips@protonmail.com>
+ Jonas Schnelli <dev@jonasschnelli.ch>
+ Daniel Pape <dpape@dpape.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0136
+ Status: Draft
+ Type: Informational
+ Created: 2017-07-09
+ License: BSD-2-Clause
+</pre>
+
+== Introduction ==
+
+=== Abstract ===
+This document proposes a convenient human useable format, '''"TxRef"''', as a standard way to refer to a transaction position within the Bitcoin Blockchain, and optionally a particular outpoint index within the referred transaction. The primary purpose of this format is to allow users to refer to a confirmed transaction (and optionally an outpoint index within) in a standard, reliable, and concise way.
+
+''Please note: Unlike TxID where there is strong cryptographic link between the ID and the actual transaction, TxRef only provides a weak link to a particular transaction. TxRef locates an offset within a blockchain for a transaction, that may - or may not - point to an actual transaction, which in fact may change with reorganisations. We recommend that TxRef's should be not used for positions within the blockchain having a maturity less than 100 blocks.''
+
+=== Copyright ===
+
+This BIP is licensed under the 2-clause BSD license.
+
+=== Motivation ===
+Since the first version of Bitcoin, TxID's (Transaction Identifiers) have been a core part of the consensus protocol and have been routinely used to identify individual transactions between users.
+
+However, for many use-cases they have practical limitations:
+* TxIDs are expensive for full nodes to lookup (requiring either a linear scan of the blockchain, or an expensive TxID index).
+* TxIDs require third-party services for SPV wallets to lookup.
+* TxIDs are very long HEX encoded values (64 characters long).
+
+For transactions that have been embedded in the blockchain, it is possible to reference them not by their TxID, but by their location within the blockchain itself. The encoding can be made friendly for occasional human transcription. In this document, we propose a standard for doing this.
+
+=== Examples ===
+These examples are for Bitcoin Transactions.
+* Genesis Coinbase Transaction (Transaction #0 of Block #0): <tt>tx1:rqqq-qqqq-qmhu-qhp</tt>
+* Transaction #2205 of Block #466793: <tt>tx1:rjk0-uqay-zsrw-hqe</tt>
+
+== Specification ==
+
+A '''confirmed transaction position reference''', or '''TxRef''', is a reference to a particular location within the blockchain, specified by the block height and a transaction index within the block, and optionally a outpoint index within the transaction.
+
+''Please Note: All values in this specification are encoded in little-endian format.''
+
+=== Transaction Position Reference Considerations ===
+A TxRef may reference a location that doesn't exist because:
+
+* The specified block hasn't yet been mined. Or,
+* The transaction index is greater than the total number of transactions included within the specified block.
+* The optional outpoint index is greater than the total outpoints contained within the transaction.
+
+Therefore, implementers must be careful not to display TxRef's to users prematurely:
+
+* Applications MUST NOT display TxRef's for transactions with less than 6 confirmations.
+* Application MUST show a warning for TxRef's for transactions with less than 100 confirmations.
+** This warning SHOULD state that in the case of a large reorganisation, the TxRefs Displayed may point to a different transaction, or to no transaction at all.
+
+=== Encoding ===
+
+TxRef uses standard Bech32<ref name=":0">'''Why use Bech32 Encoding for Confirmed Transaction References?''' The error detection and correction properties of this encoding format make it very attractive. We expect that it will be reasonable for software to correct a maximum of two characters; however, we haven’t specified this yet.</ref> encoding as defined in [https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki BIP-173] and therefore consists of:
+
+* Human-readable Part, or "HRP", that provides namespacing. We have chosen to distinguish between Main and Test Networks:
+** For Any Mainnet Network: '''"tx"'''.
+** For Any Testnet Network: '''"txtest"'''.
+** Please see [https://github.com/satoshilabs/slips/blob/master/slip-0173.md SLIP-0173 : Registered human-readable parts for BIP-0173] for a full list of HRP's including these two and others relating to other projects.
+* Separator: '''"1"'''.
+* Data Part.
+
+Please note: other specifications, such as [https://w3c-ccg.github.io/did-spec/ the Decentralized Identifiers spec], have implicitly encoded the information contained within the HRP elsewhere. In this case they may choose to not include the HRP as specified here.
+
+To increase portability and readability additional separators SHOULD be added:
+
+* A Colon<ref>'''Why add a colon here?''' This allows it to conform better with W3C URN/URL standards.</ref> '''":"''' added after '1'.
+* Hyphens<ref>'''Why hyphens within the TxRef?''' As TxRef's are short, we expect that they will be quoted via voice or written by hand. The inclusion of hyphens every 4 characters breaks up the string and means people don't lose their place so easily.</ref> '''"-"''' added after every 4 characters beyond the colon.
+
+All non-bech32-alphabet characters after the bech32 code separator MUST be ignored/removed when parsing (except for terminating characters).<ref>'''Why strip all non-bech32-alphabet characters?''' We do not wish to expect the users to keep their TxRef's in good unicode form (hyphens, colons, invisible spaces, random unicode characters, etc). We expect them to copy, paste, write by-hand, write in a mix of character sets, etc. Parsers should automatically correct for all sorts of these common errors.
+</ref>
+{| class="wikitable"
+|+Text Encoding of the TxRef
+!
+!Bit
+!Character
+!Characters
+!Value
+|-
+|Human Readable Part
+|
+|1 – 2
+|2
+|Bitcoin Mainnet: "'''tx'''", Bitcoin Testnet: "'''txtest'''"
+|-
+|Separator
+|
+|3
+|1
+|"'''1'''"
+|-
+|Colon
+|
+|4
+|1
+|"''':'''"
+|-
+|Data
+|0 – 19
+|5 – 8
+|4
+|
+|-
+|Hyphen
+|
+|9
+|1
+|"'''-'''"
+|}
+The Data - Hyphen pattern is repeated for the entire length of data, ( a hyphen is inserted after every encoded 20 bits or 4 data characters).
+=== Data ===
+
+Depending on if an optional transaction outpoint is included, there can be 75 or 90 bits of data encoded in the string above. These bits are defined in this manner:
+
+{| class="wikitable"
+|+TxRef Binary Format for Bitcoin Mainnet and Bitcoin Testnet:
+!
+!'''Bit'''
+!'''Bit(s)'''
+!'''Type'''
+!'''Values'''
+!'''Notes'''
+|-
+|Magic Code
+|0 – 4
+|5
+|Chain Namespacing Code
+|'''0x3''' for Bitcoin Mainnet.
+'''0x4''' for Bitcoin Mainnet with Outpoint.
+'''0x6''' for Bitcoin Testnet.
+'''0x7''' for Bitcoin Testnet with Outpoint.
+|
+|-
+|Version
+|5
+|1
+|For Future Use
+|Must be '''0x0'''
+|
+|-
+|Block Height
+|6 – 29
+|24
+|The Block Height of the Tx
+|Block 0 (genesis) to block 16777215
+|Until Year ~2328
+|-
+|Transaction Index
+|30 – 44
+|15
+|The index of the Tx inside the block
+|Tx 0 (coinbase) to Tx position 32767
+|Max Tx's in block is 16665
+|}
+If the magic code is '''0x4''' or '''0x7''', an optional outpoint is included in the encoding:
+
+{| class="wikitable"
+|+Optional Outpoint Index Encoding:
+!
+!'''Bit'''
+!'''Bit(s)'''
+!'''Type'''
+!'''Values'''
+!'''Notes'''
+|-
+|Outpoint Index
+|45 – 59
+|15
+|The index of the Outpoint inside the Tx
+|Outpoint 0 to Outpoint Position 32767
+|
+|}
+
+We include the 30-bit checksum last:
+{| class="wikitable"
+|+Bech32 Checksum Encoding:
+!
+!'''Bit'''
+!'''Bit(s)'''
+!'''Type'''
+!'''Values'''
+!'''Notes'''
+|-
+|Checksum
+|45 – 74 or 60 – 89
+|30
+|Bech32 Checksum
+|
+|
+|}
+
+==== Magic Notes: ====
+The magic code provides namespacing between chains. 5-bit magic codes are used for the Bitcoin Mainnet and the Bitcoin Testnet. (it may be significantly longer for other projects/chains):
+
+* For Bitcoin Mainnet the magic code is: '''0x3''', leading to an '''"r"''' character when encoded.
+* For Bitcoin Mainnet with Outpoint Encoded the magic code is: '''0x4''', leading to an '''"y"''' character when encoded.
+* For Bitcoin Testnet the magic code is: '''0x6''', leading to an '''"x"''' character when encoded.
+* For Bitcoin Testnet with Outpoint Encoded the magic code is: '''0x7''', leading to an '''"8"''' character when encoded.
+
+Codes '''0x0''', '''0x1''', '''0x2''', '''0x5''', are also reserved for future use within the Bitcoin project.
+
+''Any other chain MUST NOT start their magic code with any value between 0x0 and 0x7 inclusive.''
+
+Other magic codes will be specified in SLIP-XXXX "TxRef for Non-Bitcoin Chains and Networks".
+
+=== Compatibility ===
+There are no known compatibility issues.
+
+== Rationale ==
+
+<references />
+
+== Reference implementations ==
+C Reference Implementation (supports magic codes 0x3 and 0x6): https://github.com/jonasschnelli/bitcoin_txref_code
+
+Go Reference Implementation (supports magic codes 0x3 and 0x6): https://github.com/kulpreet/txref
+
+C++ Reference Implementation (support magic codes 0x3, 0x4, 0x6, 0x7): https://github.com/dcdpr/btcr-DID-method/
+
+== Appendices ==
+
+=== Test Vectors ===
+There are two sets of Test Vectors included here:
+
+* Bech32 Encoding Test Vectors. These are to test if a implementation accepts the encoding, with the correct human readable part, and separator.
+* Bitcoin TxRef Test Vectors. These test the full specification, in particular, correct values for block height and the transaction index.
+
+==== Bech32 Encoding (for TxRef). ====
+''Please Note: All test vectors are shown to help test if a string is compliant or not. All real-life applications (such as for Bitcoin) should comply with the Bitcoin Test Vectors listed Below.''
+
+The following strings have a valid Human Readable Part and Bech32 Checksum.
+* <tt>TX1A12UEL5L</tt>
+* <tt>tx1an83characterlonghumanreadablepartthatcontainsthenumber1andtheexcludedcharactersbio1tt5tgs</tt>
+* <tt>tx1abcdef1qpzry9x8gf2tvdw0s3jn54khce6mua7lmqqqxw</tt>
+* <tt>tx11qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqc8247j</tt>
+
+The following list gives invalid TxRef's and the reason for their invalidity.
+* <tt>bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kg3g4ty</tt>: Invalid human-readable part
+* <tt>tx1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t5</tt>: Invalid checksum
+
+==== Bitcoin TxRef (mainnet and testnet) ====
+The following list gives properly encoded Bitcoin mainnet TxRef's and the values in hex. (block height, transaction index)
+
+* <tt>tx1:rqqq-qqqq-qmhu-qhp</tt>: <tt>(0x0, 0x0)</tt>
+* <tt>tx1:rqqq-qqll-l8xh-jkg</tt>: <tt>(0x0, 0x7FFF)</tt>
+* <tt>tx1:r7ll-llqq-qghq-qr8</tt>: <tt>(0xFFFFFF, 0x0)</tt>
+* <tt>tx1:r7ll-llll-l5xt-jzw</tt>: <tt>(0xFFFFFF, 0x7FFF)</tt>
+
+The following list gives properly encoded Bitcoin testnet TxRef's and the values in hex. (block height, transaction index)
+
+* <tt>txtest1:xqqq-qqqq-qkla-64l</tt>: <tt>(0x0, 0x0)</tt>
+* <tt>txtest1:xqqq-qqll-l2wk-g5k</tt>: <tt>(0x0, 0x7FFF)</tt>
+* <tt>txtest1:x7ll-llqq-q9lp-6pe</tt>: <tt>(0xFFFFFF, 0x0)</tt>
+* <tt>txtest1:x7ll-llll-lew2-gqs</tt>: <tt>(0xFFFFFF, 0x7FFF)</tt>
+
+The following list gives valid (though strangely formatted) Bitcoin TxRef's and the values in hex. (block height, transaction index)
+* <tt>tx1:rjk0-uqay-zsrw-hqe</tt>: <tt>(0x71F69, 0x89D)</tt>
+* <tt>TX1RJK0UQAYZSRWHQE</tt>: <tt>(0x71F69, 0x89D)</tt>
+* <tt>TX1RJK0--UQaYZSRw----HQE</tt>: <tt>(0x71F69, 0x89D)</tt>
+* <tt>tx1 rjk0 uqay zsrw hqe</tt>: <tt>(0x71F69, 0x89D)</tt>
+* <tt>tx1!rjk0\uqay*zsrw^^hqe</tt>: <tt>(0x71F69, 0x89D)</tt>
+
+The following list gives invalid Bitcoin TxRef's and the reason for their invalidity.
+* <tt>tx1:t7ll-llll-ldup-3hh</tt>: Magic 0xB instead of 0x3. <tt>(0xFFFFFF, 0x7FFF)</tt>
+* <tt>tx1:rlll-llll-lfet-r2y</tt>: Version 1 instead of 0. <tt>(0xFFFFFF, 0x7FFF)</tt>
+* <tt>tx1:rjk0-u5ng-gghq-fkg7</tt>: Valid Bech32, but 10x5bit packages instead of 8.
+* <tt>tx1:rjk0-u5qd-s43z</tt>: Valid Bech32, but 6x5bit packages instead of 8.
+
+==== Bitcoin TxRef with Outpoints (mainnet and testnet) ====
+The following list gives properly encoded Bitcoin mainnet TxRef's with Outpoints and the values in hex. (block height, transaction index, TXO index)
+
+* <tt>tx1:yqqq-qqqq-qqqq-ksvh-26</tt>: <tt>(0x0, 0x0, 0x0)</tt>
+* <tt>tx1:yqqq-qqll-lqqq-v0h2-2k</tt>: <tt>(0x0, 0x7FFF, 0x0)</tt>
+* <tt>tx1:y7ll-llqq-qqqq-a5zy-tc</tt>: <tt>(0xFFFFFF, 0x0, 0x0)</tt>
+* <tt>tx1:y7ll-llll-lqqq-8tee-t5</tt>: <tt>(0xFFFFFF, 0x7FFF, 0x0)</tt>
+
+* <tt>tx1:yqqq-qqqq-qpqq-5j9q-nz</tt>: <tt>(0x0, 0x0, 0x1)</tt>
+* <tt>tx1:yqqq-qqll-lpqq-wd7a-nw</tt>: <tt>(0x0, 0x7FFF, 0x1)</tt>
+* <tt>tx1:y7ll-llqq-qpqq-lktn-jq</tt>: <tt>(0xFFFFFF, 0x0, 0x1)</tt>
+* <tt>tx1:y7ll-llll-lpqq-9fsw-jv</tt>: <tt>(0xFFFFFF, 0x7FFF, 0x1)</tt>
+
+* <tt>tx1:yjk0-uqay-zrfq-g2cg-t8</tt>: <tt>(0x71F69, 0x89D, 0x123)</tt>
+* <tt>tx1:yjk0-uqay-zu4x-nk6u-pc</tt>: <tt>(0x71F69, 0x89D, 0x1ABC)</tt>
+
+The following list gives properly encoded Bitcoin testnet TxRef's with Outpoints and the values in hex. (block height, transaction index, TXO index)
+
+* <tt>txtest1:8qqq-qqqq-qqqq-cgru-fa</tt>: <tt>(0x0, 0x0, 0x0)</tt>
+* <tt>txtest1:8qqq-qqll-lqqq-zhcp-f3</tt>: <tt>(0x0, 0x7FFF, 0x0)</tt>
+* <tt>txtest1:87ll-llqq-qqqq-nvd0-gl</tt>: <tt>(0xFFFFFF, 0x0, 0x0)</tt>
+* <tt>txtest1:87ll-llll-lqqq-fnkj-gn</tt>: <tt>(0xFFFFFF, 0x7FFF, 0x0)</tt>
+
+* <tt>txtest1:8qqq-qqqq-qpqq-622t-s9</tt>: <tt>(0x0, 0x0, 0x1)</tt>
+* <tt>txtest1:8qqq-qqll-lpqq-q43k-sf</tt>: <tt>(0x0, 0x7FFF, 0x1)</tt>
+* <tt>txtest1:87ll-llqq-qpqq-3wyc-38</tt>: <tt>(0xFFFFFF, 0x0, 0x1)</tt>
+* <tt>txtest1:87ll-llll-lpqq-t3l9-3t</tt>: <tt>(0xFFFFFF, 0x7FFF, 0x1)</tt>
+
+* <tt>txtest1:8jk0-uqay-zrfq-xjhr-gq</tt>: <tt>(0x71F69, 0x89D, 0x123)</tt>
+* <tt>txtest1:8jk0-uqay-zu4x-aw4h-zl</tt>: <tt>(0x71F69, 0x89D, 0x1ABC)</tt>
+
+
+=== Bitcoin TxRef Payload Value Choice: ===
+Some calculations showing why we chose these particular bit-length of the block height and transaction index.
+
+==== Block Height Value: ====
+24-bit: between 0, and 0xFFFFFF (16,777,216 blocks).
+
+*There are ~52,500 blocks every year, leading to ~319 years of blocks addressable.
+*Therefore before year 2328 this specification should be extended. (We think that we have plenty of time).
+
+==== Tx Position Value: ====
+15-bit: between 0x0, and 0x7FFF. (32,768 transactions).
+
+*The ''realistic'' smallest Tx is 83 Bytes: Max 12047 tx in a block.
+**4B version + 1B tx_in count + 36B previous_output + 1B script length + 0B signature script + 4B sequence + 1B tx_out count + 8B amount + 1B script length + 23B pubkey script + 4B lock_time = 83B
+*The ''extreme'' smallest Tx is 60 Byte's: Max 16665 tx in a block.
+**4B version + 1B tx_in count + 36B previous_output + 1B script length + 0B signature script + 4B sequence + 1B tx_out count + 8B amount + 1B script length + 0B pubkey script + 4B lock_time = 60B
+
+== Acknowledgements ==
+Special Thanks to Pieter Wuille and Greg Maxwell for Bech32, a wonderful user-facing data encoding.
diff --git a/bip-0137.mediawiki b/bip-0137.mediawiki
new file mode 100644
index 0000000..19dd536
--- /dev/null
+++ b/bip-0137.mediawiki
@@ -0,0 +1,135 @@
+<pre>
+ BIP: 137
+ Layer: Applications
+ Title: Signatures of Messages using Private Keys
+ Author: Christopher Gilliard <christopher.gilliard@gmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0137
+ Status: Final
+ Type: Standards Track
+ Created: 2019-02-16
+ License: BSD-2-Clause
+</pre>
+
+==Abstract==
+
+This document describes a signature format for signing messages with Bitcoin private keys.
+
+The specification is intended to describe the standard for signatures of messages that can be signed and verfied between different clients that exist in the field today. Note: that a new signature format has been defined which has a number of advantages over this BIP, but to be backwards compatible with existing implementations this BIP will be useful. See BIP 322 [1] for full details on the new signature scheme.
+
+One of the key problems in this area is that there are several different types of Bitcoin addresses and without introducing specific standards it is unclear which type of address format is being used. See [2]. This BIP will attempt to address these issues and define a clear and concise format for Bitcoin signatures.
+
+==Copyright==
+
+This BIP is licensed under the 2-clause BSD license.
+
+==Motivation==
+
+Since Bitcoin private keys can not only be used to sign Bitcoin transactions, but also any other message, it has become customary to use them to sign various messages for differing purposes. Some applications of signing messages with a Bitcoin private key are as follows: proof of funds for collateral, credit worthiness, enterence to events, airdrops, audits as well as other applications. While there was no BIP written for how to digitally sign messages with Bitcoin private keys with P2PKH addresses it is a fairly well understood process, however with the introduction of Segwit (both in the form of P2SH and bech32) addresses, it is unclear how to distinguish a P2PKH, P2SH, or bech32 address from one another. This BIP proposes a standard signature format that will allow clients to distinguish between the different address formats.
+
+==Specification==
+
+===Background on ECDSA Signatures===
+
+(For readers who already understand how ECDSA signatures work, you can skip this section as this is only intended as background information.)
+Elliptic Curve Digital Signature Algorithm or ECDSA is a cryptographic algorithm used by Bitcoin to ensure that funds can only be spent by their rightful owners.
+
+A few concepts related to ECDSA:
+
+<b>private key</b>: A secret number, known only to the person that generated it. A private key is essentially a randomly generated number. In Bitcoin, someone with the private key that corresponds to funds on the block chain can spend the funds. In Bitcoin, a private key is a single unsigned 256 bit integer (32 bytes).
+
+<b>public key</b>: A number that corresponds to a private key, but does not need to be kept secret. A public key can be calculated from a private key, but not vice versa. A public key can be used to determine if a signature is genuine (in other words, produced with the proper key) without requiring the private key to be divulged. In Bitcoin, public keys are either compressed or uncompressed. Compressed public keys are 33 bytes, consisting of a prefix either 0x02 or 0x03, and a 256-bit integer called x. The older uncompressed keys are 65 bytes, consisting of constant prefix (0x04), followed by two 256-bit integers called x and y (2 * 32 bytes). The prefix of a compressed key allows for the y value to be derived from the x value.
+
+<b>signature</b>: A number that proves that a signing operation took place. A signature is mathematically generated from a hash of something to be signed, plus a private key. The signature itself is two numbers known as r and s. With the public key, a mathematical algorithm can be used on the signature to determine that it was originally produced from the hash and the private key, without needing to know the private key. Signatures are either 73, 72, or 71 bytes long, with probabilities approximately 25%, 50% and 25% respectively, although sizes even smaller than that are possible with exponentially decreasing probability. Source [3].
+
+===Conventions with signatures used in Bitcoin===
+
+Bitcoin signatures have the r and s values mentioned above, and a header. The header is a single byte and the r and s are each 32 bytes so a signature's size is 65 bytes. The header is used to specify information about the signature. It can be thought of as a bitmask with each bit in this byte having a meaning. The serialization format of a Bitcoin signature is as follows:
+
+[1 byte of header data][32 bytes for r value][32 bytes for s value]
+
+The header byte has a few components to it. First, it stores something known as the recId. This value is stored in the least significant 2 bits of the header. If the header is between a value of 31 and 34, this indicates that it is a compressed address. If the header value is between 35 and 38 inclusive, it is a p2sh segwit address. If the header value is between 39 and 42, it is a bech32 address.
+
+===Procedure for signing/verifying a signature===
+
+As noted above the signature is composed of three components, the header, r and s values. r/s can be computed with standard ECDSA library functions. Part of the header includes something called a recId. This is part of every ECDSA signature and should be generated by the ECDSA library. The recId is a number between 0 and 3 inclusive. The header is the recId plus a constant which indicates what type of Bitcoin address this is. For P2PKH address using an uncompressed public key this value is 27. For P2PKH address using compressed public key this value is 31. For P2SH-P2WPKH this value is 35 and for P2WPKH (version 0 witness) address this value is 39. So, you have the following ranges:
+* 27-30: P2PKH uncompressed
+* 31-34: P2PKH compressed
+* 35-38: Segwit P2SH
+* 39-42: Segwit Bech32
+
+To verify a signature, the recId is obtained by subtracting this constant from the header value.
+
+===Sample Code for processing a signature===
+
+Note: this code is a modification of the BitcoinJ code which is written in java.
+
+ public static ECKey signedMessageToKey(String message, String signatureBase64) throws SignatureException {
+ byte[] signatureEncoded;
+ try {
+ signatureEncoded = Base64.decode(signatureBase64);
+ } catch (RuntimeException e) {
+ // This is what you get back from Bouncy Castle if base64 doesn't decode :(
+ throw new SignatureException("Could not decode base64", e);
+ }
+ // Parse the signature bytes into r/s and the selector value.
+ if (signatureEncoded.length < 65)
+ throw new SignatureException("Signature truncated, expected 65 bytes and got " + signatureEncoded.length);
+ int header = signatureEncoded[0] & 0xFF;
+ // The header byte: 0x1B = first key with even y, 0x1C = first key with odd y,
+ // 0x1D = second key with even y, 0x1E = second key with odd y
+ if (header < 27 || header > 42)
+ throw new SignatureException("Header byte out of range: " + header);
+ BigInteger r = new BigInteger(1, Arrays.copyOfRange(signatureEncoded, 1, 33));
+ BigInteger s = new BigInteger(1, Arrays.copyOfRange(signatureEncoded, 33, 65));
+ ECDSASignature sig = new ECDSASignature(r, s);
+ byte[] messageBytes = formatMessageForSigning(message);
+ // Note that the C++ code doesn't actually seem to specify any character encoding. Presumably it's whatever
+ // JSON-SPIRIT hands back. Assume UTF-8 for now.
+ Sha256Hash messageHash = Sha256Hash.twiceOf(messageBytes);
+ boolean compressed = false;
+ // this section is added to support new signature types
+ if(header>= 39) // this is a bech32 signature
+ {
+ header -= 12;
+ compressed = true;
+ } // this is a segwit p2sh signature
+ else if(header >= 35)
+ {
+ header -= 8;
+ compressed = true;
+ } // this is a compressed key signature
+ else if (header >= 31) {
+ compressed = true;
+ header -= 4;
+ }
+ int recId = header - 27;
+ ECKey key = ECKey.recoverFromSignature(recId, sig, messageHash, compressed);
+ if (key == null)
+ throw new SignatureException("Could not recover public key from signature");
+ return key;
+ }
+
+==Backwards Compatibility==
+
+Since this format includes P2PKH keys, it is backwards compatible, but keep in mind some software has checks for ranges of headers and will report the newer segwit header types as errors.
+
+==Implications==
+
+Message signing is an important use case and potentially underused due to the fact that, up until now, there has not been a formal specification for how wallets can sign messages using Bitcoin private keys. Bitcoin wallets should be interoperable and use the same conventions for determing a signature's validity. This BIP can also be updated as new signature formats emerge.
+
+==Acknowledgements==
+
+* Konstantin Bay - review
+* Holly Casaletto - review
+* James Bryrer - review
+
+Note that the background on ECDSA signatures was taken from en.bitcoin.it and code sample modified from BitcoinJ.
+
+==References==
+
+[1] - https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki
+
+[2] - https://github.com/bitcoin/bitcoin/issues/10542
+
+[3] - https://en.bitcoin.it/wiki/Elliptic_Curve_Digital_Signature_Algorithm
diff --git a/bip-0140.mediawiki b/bip-0140.mediawiki
index ea5061f..9fb52b4 100644
--- a/bip-0140.mediawiki
+++ b/bip-0140.mediawiki
@@ -83,7 +83,7 @@ There are a number of advantages to using normalized transaction IDs:
Scalable Off-Chain Instant Payments]]</ref> in which several parties sign a transaction. Without normalized transaction IDs it is trivial for one party to re-sign a transaction, hence changing the transaction hash and invalidating any transaction built on top of its outputs. Normalized transaction IDs force the ID not to change, even if a party replaces its signature.
* Many higher level protocols build structures of transactions on top of multisig outputs that are not completely signed. This is currently not possible without one party holding a fully signed transaction and then calculating the ID. It is desirable to be able to build successive transactions without one party collecting all signatures, and thus possibly lock in funds unilaterally. Normalized transaction IDs allow the use of transaction templates, i.e., completely unsigned transactions upon which further transactions can be built, and only once every party is assured the structure matches its expectations it signs the template, thus validating the template.
-The only occurence in which transactions can still be modified unilaterally is in the case <code>SIGHASH_NONE</code>, <code>SIGHASH_SINGLE</code> or <code>SIGHASH_ANYONECANPAY</code> is used. This however is not problematic since in these cases the creator of the transaction explicitly allows modification.
+The only occurrence in which transactions can still be modified unilaterally is in the case <code>SIGHASH_NONE</code>, <code>SIGHASH_SINGLE</code> or <code>SIGHASH_ANYONECANPAY</code> is used. This however is not problematic since in these cases the creator of the transaction explicitly allows modification.
In case of a transaction becoming invalid due to one of the inputs being malleated it is necessary to modify the spending transaction to reference the modified transaction ID. However, the signatures, which only use the normalized IDs, remain valid as long as the semantics of the funding transaction remain unchanged. An observer in the network may fix the transaction and reinject a corrected version.
diff --git a/bip-0141.mediawiki b/bip-0141.mediawiki
index 7cc587a..82f6abd 100644
--- a/bip-0141.mediawiki
+++ b/bip-0141.mediawiki
@@ -7,7 +7,7 @@
Pieter Wuille <pieter.wuille@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0141
- Status: Draft
+ Status: Final
Type: Standards Track
Created: 2015-12-21
License: PD
@@ -249,7 +249,7 @@ Segregated witness fixes the problem of transaction malleability fundamentally,
Two parties, Alice and Bob, may agree to send certain amount of Bitcoin to a 2-of-2 multisig output (the "funding transaction"). Without signing the funding transaction, they may create another transaction, time-locked in the future, spending the 2-of-2 multisig output to third account(s) (the "spending transaction"). Alice and Bob will sign the spending transaction and exchange the signatures. After examining the signatures, they will sign and commit the funding transaction to the blockchain. Without further action, the spending transaction will be confirmed after the lock-time and release the funding according to the original contract. It also retains the flexibility of revoking the original contract before the lock-time, by another spending transaction with shorter lock-time, but only with mutual-agreement of both parties.
-Such setups is not possible with BIP62 as the malleability fix, since the spending transaction could not be created without both parties first signing the funding transaction. If Alice reveals the funding transaction signature before Bob does, Bob is able to lock up the funding indefinitely without ever signing the spending transaction.
+Such setups are not possible with BIP62 as the malleability fix, since the spending transaction could not be created without both parties first signing the funding transaction. If Alice reveals the funding transaction signature before Bob does, Bob is able to lock up the funding indefinitely without ever signing the spending transaction.
Unconfirmed transaction dependency chain is a fundamental building block of more sophisticated payment networks, such as duplex micropayment channel and the Lightning Network, which have the potential to greatly improve the scalability and efficiency of the Bitcoin system.
@@ -324,6 +324,7 @@ https://github.com/bitcoin/bitcoin/pull/8149
*[[bip-0016.mediawiki|BIP16 Pay to Script Hash]]
*[[bip-0143.mediawiki|BIP143 Transaction Signature Verification for Version 0 Witness Program]]
*[[bip-0144.mediawiki|BIP144 Segregated Witness (Peer Services)]]
+*[[bip-0173.mediawiki|BIP173 Base32 address format for native v0-16 witness outputs]]
== Copyright ==
diff --git a/bip-0142.mediawiki b/bip-0142.mediawiki
index 80a413f..b11095b 100644
--- a/bip-0142.mediawiki
+++ b/bip-0142.mediawiki
@@ -5,7 +5,7 @@
Author: Johnson Lau <jl2012@xbt.hk>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0142
- Status: Deferred
+ Status: Withdrawn
Type: Standards Track
Created: 2015-12-24
License: PD
diff --git a/bip-0143.mediawiki b/bip-0143.mediawiki
index 476b84d..81763a0 100644
--- a/bip-0143.mediawiki
+++ b/bip-0143.mediawiki
@@ -6,7 +6,7 @@
Pieter Wuille <pieter.wuille@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0143
- Status: Draft
+ Status: Final
Type: Standards Track
Created: 2016-01-03
License: PD
@@ -67,7 +67,7 @@ The item 6 is a 8-byte value of the amount of bitcoin spent in this input.
<code>hashOutputs</code>:
*If the sighash type is neither <code>SINGLE</code> nor <code>NONE</code>, <code>hashOutputs</code> is the double SHA256 of the serialization of all output amount (8-byte little endian) with <code>scriptPubKey</code> (serialized as scripts inside CTxOuts);
*If sighash type is <code>SINGLE</code> and the input index is smaller than the number of outputs, <code>hashOutputs</code> is the double SHA256 of the output amount with <code>scriptPubKey</code> of the same index as the input;
-*Otherwise, <code>hashOutputs</code> is a <code>uint256</code> of <code>0x0000......0000</code>.<ref>In the original algorithm, a <code>uint256</code> of <code>0x0000......0001</code> is commited if the input index for a <code>SINGLE</code> signature is greater than or equal to the number of outputs. In this BIP a <code>0x0000......0000</code> is commited, without changing the semantics.</ref>
+*Otherwise, <code>hashOutputs</code> is a <code>uint256</code> of <code>0x0000......0000</code>.<ref>In the original algorithm, a <code>uint256</code> of <code>0x0000......0001</code> is committed if the input index for a <code>SINGLE</code> signature is greater than or equal to the number of outputs. In this BIP a <code>0x0000......0000</code> is committed, without changing the semantics.</ref>
The <code>hashPrevouts</code>, <code>hashSequence</code>, and <code>hashOutputs</code> calculated in an earlier verification may be reused in other inputs of the same transaction, so that the time complexity of the whole hashing process reduces from O(n<sup>2</sup>) to O(n).
@@ -282,7 +282,7 @@ This example shows how <code>OP_CODESEPARATOR</code> and out-of-range <code>SIGH
The second input comes from a native P2WSH witness program:
scriptPubKey : 00205d1b56b63d714eebe542309525f484b7e9d6f686b3781b6f61ef925d66d6f6a0, value: 49
witnessScript: 21026dccc749adc2a9d0d89497ac511f760f45c47dc5ed9cf352a58ac706453880aeadab210255a9626aebf5e29c0e6538428ba0d1dcf6ca98ffdf086aa8ced5e0d0215ea465ac
- <026dccc749adc2a9d0d89497ac511f760f45c47dc5ed9cf352a58ac706453880ae> CHECKSIGVERIFY CODESEPERATOR <0255a9626aebf5e29c0e6538428ba0d1dcf6ca98ffdf086aa8ced5e0d0215ea465> CHECKSIG
+ <026dccc749adc2a9d0d89497ac511f760f45c47dc5ed9cf352a58ac706453880ae> CHECKSIGVERIFY CODESEPARATOR <0255a9626aebf5e29c0e6538428ba0d1dcf6ca98ffdf086aa8ced5e0d0215ea465> CHECKSIG
To sign it with a nHashType of 3 (SIGHASH_SINGLE):
@@ -303,7 +303,7 @@ This example shows how <code>OP_CODESEPARATOR</code> and out-of-range <code>SIGH
scriptCode: 4721026dccc749adc2a9d0d89497ac511f760f45c47dc5ed9cf352a58ac706453880aeadab210255a9626aebf5e29c0e6538428ba0d1dcf6ca98ffdf086aa8ced5e0d0215ea465ac
^^
- (please note that the not-yet-exectued OP_CODESEPARATOR is not removed from the scriptCode)
+ (please note that the not-yet-executed OP_CODESEPARATOR is not removed from the scriptCode)
preimage: 01000000ef546acf4a020de3898d1b8956176bb507e6211b5ed3619cd08b6ea7e2a09d4100000000000000000000000000000000000000000000000000000000000000000815cf020f013ed6cf91d29f4202e8a58726b1ac6c79da47c23d1bee0a6925f8000000004721026dccc749adc2a9d0d89497ac511f760f45c47dc5ed9cf352a58ac706453880aeadab210255a9626aebf5e29c0e6538428ba0d1dcf6ca98ffdf086aa8ced5e0d0215ea465ac0011102401000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000003000000
sigHash: 82dde6e4f1e94d02c2b7ad03d2115d691f48d064e9d52f58194a6637e4194391
public key: 026dccc749adc2a9d0d89497ac511f760f45c47dc5ed9cf352a58ac706453880ae
@@ -338,12 +338,12 @@ This example shows how unexecuted <code>OP_CODESEPARATOR</code> is processed, an
The first input comes from a native P2WSH witness program:
scriptPubKey: 0020ba468eea561b26301e4cf69fa34bde4ad60c81e70f059f045ca9a79931004a4d value: 0.16777215
witnessScript:0063ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac
- 0 IF CODESEPERATOR ENDIF <0392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98> CHECKSIG
+ 0 IF CODESEPARATOR ENDIF <0392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98> CHECKSIG
The second input comes from a native P2WSH witness program:
scriptPubKey: 0020d9bbfbe56af7c4b7f960a70d7ea107156913d9e5a26b0a71429df5e097ca6537 value: 0.16777215
witnessScript:5163ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac
- 1 IF CODESEPERATOR ENDIF <0392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98> CHECKSIG
+ 1 IF CODESEPARATOR ENDIF <0392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98> CHECKSIG
To sign it with a nHashType of 0x83 (SINGLE|ANYONECANPAY):
@@ -391,7 +391,7 @@ This example shows how unexecuted <code>OP_CODESEPARATOR</code> is processed, an
02 4730440220032521802a76ad7bf74d0e2c218b72cf0cbc867066e2e53db905ba37f130397e02207709e2188ed7f08f4c952d9d13986da504502b8c3be59617e043552f506c46ff83 275163ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac
nLockTime: 00000000
- Since SINGLE|ANYONECANPAY does not commit to the input index, the signatures are still valid when the the input-output pairs are swapped:
+ Since SINGLE|ANYONECANPAY does not commit to the input index, the signatures are still valid when the input-output pairs are swapped:
0100000000010280e68831516392fcd100d186b3c2c7b95c80b53c77e77c35ba03a66b429a2a1b0000000000ffffffffe9b542c5176808107ff1df906f46bb1f2583b16112b95ee5380665ba7fcfc0010000000000ffffffff0280969800000000001976a9146648a8cd4531e1ec47f35916de8e259237294d1e88ac80969800000000001976a914de4b231626ef508c9a74a8517e6783c0546d6b2888ac024730440220032521802a76ad7bf74d0e2c218b72cf0cbc867066e2e53db905ba37f130397e02207709e2188ed7f08f4c952d9d13986da504502b8c3be59617e043552f506c46ff83275163ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac02483045022100f6a10b8604e6dc910194b79ccfc93e1bc0ec7c03453caaa8987f7d6c3413566002206216229ede9b4d6ec2d325be245c5b508ff0339bf1794078e20bfe0babc7ffe683270063ab68210392972e2eb617b2388771abe27235fd5ac44af8e61693261550447a4c3e39da98ac00000000
nVersion: 01000000
marker: 00
diff --git a/bip-0144.mediawiki b/bip-0144.mediawiki
index 8e65554..8ec2191 100644
--- a/bip-0144.mediawiki
+++ b/bip-0144.mediawiki
@@ -6,7 +6,7 @@
Pieter Wuille <pieter.wuille@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0144
- Status: Draft
+ Status: Final
Type: Standards Track
Created: 2016-01-08
License: PD
@@ -79,11 +79,11 @@ The serialization has the following structure:
Parsers supporting this BIP will be able to distinguish between the old serialization format (without the witness) and this one. The marker byte is set to zero so that this structure will never parse as a valid transaction in a parser that does not support this BIP. If parsing were to succeed, such a transaction would contain no inputs and a single output.
-If the witness is empty, the old serialization format should be used.
+If the witness is empty, the old serialization format must be used.
Currently, the only witness objects type supported are script witnesses which consist of a stack of byte arrays. It is encoded as a var_int item count followed by each item encoded as a var_int length followed by a string of bytes. Each txin has its own script witness. The number of script witnesses is not explicitly encoded as it is implied by txin_count. Empty script witnesses are encoded as a zero byte. The order of the script witnesses follows the same order as the associated txins.
-* '''Rationale for not having an independent message type with its own serialization''': this would require separate "tx" and "block" messages, and all RPC calls operating on raw transactions would need to be duplicated, or need inefficinent or nondeterministic guesswork to know which type is to be used.
+* '''Rationale for not having an independent message type with its own serialization''': this would require separate "tx" and "block" messages, and all RPC calls operating on raw transactions would need to be duplicated, or need inefficient or nondeterministic guesswork to know which type is to be used.
* '''Rationale for not using just a single 0x00 byte as marker''': that would lead to empty transactions (no inputs, no outputs, which are used in some tests) to be interpreted as new serialized data.
diff --git a/bip-0145.mediawiki b/bip-0145.mediawiki
index a7ace98..f139c6a 100644
--- a/bip-0145.mediawiki
+++ b/bip-0145.mediawiki
@@ -5,7 +5,7 @@
Author: Luke Dashjr <luke+bip22@dashjr.org>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0145
- Status: Draft
+ Status: Final
Type: Standards Track
Created: 2016-01-30
License: BSD-2-Clause
diff --git a/bip-0147.mediawiki b/bip-0147.mediawiki
index 8a5c67a..2d007c6 100644
--- a/bip-0147.mediawiki
+++ b/bip-0147.mediawiki
@@ -5,7 +5,7 @@
Author: Johnson Lau <jl2012@xbt.hk>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0147
- Status: Draft
+ Status: Final
Type: Standards Track
Created: 2016-09-02
License: PD
diff --git a/bip-0148.mediawiki b/bip-0148.mediawiki
index 4dca9d7..6a7a062 100644
--- a/bip-0148.mediawiki
+++ b/bip-0148.mediawiki
@@ -5,7 +5,7 @@
Author: Shaolin Fry <shaolinfry@protonmail.ch>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0148
- Status: Draft
+ Status: Final
Type: Standards Track
Created: 2017-03-12
License: BSD-3-Clause
diff --git a/bip-0149.mediawiki b/bip-0149.mediawiki
index c2a1853..d4dc732 100644
--- a/bip-0149.mediawiki
+++ b/bip-0149.mediawiki
@@ -5,7 +5,7 @@
Author: Shaolin Fry <shaolinfry@protonmail.ch>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0149
- Status: Draft
+ Status: Withdrawn
Type: Standards Track
Created: 2017-04-14
License: BSD-3-Clause
diff --git a/bip-0150.mediawiki b/bip-0150.mediawiki
index 1fe4582..277341d 100644
--- a/bip-0150.mediawiki
+++ b/bip-0150.mediawiki
@@ -17,7 +17,7 @@ This BIP describes a way for peers to authenticate to other peers to guarantee n
== Motivation ==
-We assume peer operators want to limit the access of different node services or increase datastream priorities to a selective subset of peers. Also we assume that peers want to connect to specific peers to broadcast or filter transactions (or similar actions that reveal sensitive informations) and therefore operators want to authenticate the remote peer and ensure that they have not connected to a MITM (man-in-the-middle) attacker.
+We assume peer operators want to limit the access of different node services or increase datastream priorities to a selective subset of peers. Also we assume that peers want to connect to specific peers to broadcast or filter transactions (or similar actions that reveal sensitive information) and therefore operators want to authenticate the remote peer and ensure that they have not connected to a MITM (man-in-the-middle) attacker.
Benefits of peer authentication:
* Peers can detect MITM attacks when connecting to known peers
diff --git a/bip-0151.mediawiki b/bip-0151.mediawiki
index a01a8bb..005c552 100644
--- a/bip-0151.mediawiki
+++ b/bip-0151.mediawiki
@@ -5,7 +5,7 @@
Author: Jonas Schnelli <dev@jonasschnelli.ch>
Comments-Summary: Controversial; some recommendation, and some discouragement
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0151
- Status: Draft
+ Status: Withdrawn
Type: Standards Track
Created: 2016-03-23
License: PD
@@ -18,7 +18,7 @@ This BIP describes an alternative way that a peer can encrypt their communicatio
== Motivation ==
-The Bitcoin network does not encrypt communication between peers today. This opens up security issues (eg: traffic manipulation by others) and allows for mass surveillance / analysis of bitcoin users. Mostly this is negligible because of the nature of Bitcoins trust model, however for SPV nodes this can have significant privacy impacts [1] and could reduce the censorship-resistance of a peer.
+The Bitcoin network does not encrypt communication between peers today. This opens up security issues (eg: traffic manipulation by others) and allows for mass surveillance / analysis of bitcoin users. Mostly this is negligible because of the nature of Bitcoin's trust model, however, for SPV nodes this can have significant privacy impacts [1] and could reduce the censorship-resistance of a peer.
Encrypting peer traffic will make analysis and specific user targeting much more difficult than it currently is. Today it's trivial for a network provider or any other men-in-the-middle to identify a Bitcoin user and its controlled addresses/keys (and link with his Google profile, etc.). Just created and broadcasted transactions will reveal the amount and the payee to the network provider.
@@ -26,13 +26,13 @@ This BIP also describes a way that data manipulation (blocking commands by a int
Analyzing the type of p2p communication would still be possible because of the characteristics (size, sending-interval, etc.) of the encrypted messages.
-Encrypting traffic between peers is already possible with VPN, tor, stunnel, curveCP or any other encryption mechanism on a deeper OSI level, however, most mechanism are not practical for SPV or other DHCP/NAT environment and will require significant knowhow in how to setup such a secure channel.
+Encrypting traffic between peers is already possible with VPN, tor, stunnel, curveCP or any other encryption mechanism on a deeper OSI level, however, most mechanisms are not practical for SPV or other DHCP/NAT environment and will require significant knowhow in how to setup such a secure channel.
== Specification ==
A peer that supports encryption must accept encryption requests from all peers.
-A independent ECDH negotiation for both communication directions is required and therefore a bidirectional communication will use two symmetric cipher keys (one per direction).
+An independent ECDH negotiation for both communication directions is required and therefore a bidirectional communication will use two symmetric cipher keys (one per direction).
Both peers must only send encrypted messages after a successful ECDH negotiation in ''both directions''.
@@ -40,7 +40,7 @@ Encryption initialization must happen before sending any other messages to the r
=== Symmetric Encryption Cipher Keys ===
-The symmetric encryption cipher keys will be calculated with ECDH/HKDF by sharing the pubkeys of a ephemeral key. Once the ECDH secret is calculated on each side, the symmetric encryption cipher keys must be derived with HKDF [2] after the following specification:
+The symmetric encryption cipher keys will be calculated with ECDH/HKDF by sharing the pubkeys of an ephemeral key. Once the ECDH secret is calculated on each side, the symmetric encryption cipher keys must be derived with HKDF [2] after the following specification:
1. HKDF extraction
<code>PRK = HKDF_EXTRACT(hash=SHA256, salt="bitcoinecdh", ikm=ecdh_secret|cipher-type)</code>.
@@ -59,7 +59,7 @@ Both sides must also calculate the 256bit session-id using <code>SID = HKDF_EXPA
=== The <code>encinit</code> message type ===
-To request encrypted communication, the requesting peer generates an EC ephemeral-session-keypair and sends an <code>encinit</code> message to the responding peer and waits for a <code>encack</code> message. The responding node must do the same <code>encinit</code>/<code>encack</code> interaction for the opposite communication direction.
+To request encrypted communication, the requesting peer generates an EC ephemeral-session-keypair and sends an <code>encinit</code> message to the responding peer and waits for an <code>encack</code> message. The responding node must do the same <code>encinit</code>/<code>encack</code> interaction for the opposite communication direction.
{|class="wikitable"
! Field Size !! Description !! Data type !! Comments
@@ -90,11 +90,11 @@ The chacha20-poly1305@openssh.com specified and defined by openssh [5] combines
<code>K_2</code> must be used in conjunction with poly1305 to build an AEAD.
-Optimized implementations of ChaCha20-Poly1305 are very fast in general, therefore it is very likely that encrypted messages require less CPU cycles per bytes then the current unencrypted p2p message format. A quick analysis by Pieter Wuille of the current ''standard implementations'' has shown that SHA256 requires more CPU cycles per byte then ChaCha20 & Poly1304.
+Optimized implementations of ChaCha20-Poly1305 are very fast in general, therefore it is very likely that encrypted messages require less CPU cycles per byte then the current unencrypted p2p message format. A quick analysis by Pieter Wuille of the current ''standard implementations'' has shown that SHA256 requires more CPU cycles per byte then ChaCha20 & Poly1304.
=== The <code>encack</code> message type ===
-The responding peer accepts the encryption request by sending a <code>encack</code> message.
+The responding peer accepts the encryption request by sending an <code>encack</code> message.
{|class="wikitable"
! Field Size !! Description !! Data type !! Comments
@@ -150,7 +150,7 @@ If more data is present, another message must be deserialized. There is no expli
=== Re-Keying ===
-A responding peer can inform the requesting peer over a re-keying with a <code>encack</code> message containing 33byte of zeros to indicate that all encrypted message following after this <code>encack</code> message will be encrypted with ''the next symmetric cipher key''.
+A responding peer can inform the requesting peer over a re-keying with an <code>encack</code> message containing 33byte of zeros to indicate that all encrypted message following after this <code>encack</code> message will be encrypted with ''the next symmetric cipher key''.
The new symmetric cipher key will be calculated by <code>SHA256(SHA256(session_id || old_symmetric_cipher_key))</code>.
@@ -172,12 +172,12 @@ This proposal is backward compatible. Non-supporting peers will ignore the <code
== References ==
-* [1] http://e-collection.library.ethz.ch/eserv/eth:48205/eth-48205-01.pdf
+* [1] https://e-collection.library.ethz.ch/eserv/eth:48205/eth-48205-01.pdf
* [2] HKDF (RFC 5869) https://tools.ietf.org/html/rfc5869
-* [3] ChaCha20 http://cr.yp.to/chacha/chacha-20080128.pdf
-* [4] Poly1305 http://cr.yp.to/mac/poly1305-20050329.pdf
+* [3] ChaCha20 https://cr.yp.to/chacha/chacha-20080128.pdf
+* [4] Poly1305 https://cr.yp.to/mac/poly1305-20050329.pdf
* [5] https://github.com/openssh/openssh-portable/blob/05855bf2ce7d5cd0a6db18bc0b4214ed5ef7516d/PROTOCOL.chacha20poly1305
-* [6] "ChaCha20 and Poly1305 based Cipher Suites for TLS", Adam Langley http://tools.ietf.org/html/draft-agl-tls-chacha20poly1305-03
+* [6] "ChaCha20 and Poly1305 based Cipher Suites for TLS", Adam Langley https://tools.ietf.org/html/draft-agl-tls-chacha20poly1305-03
== Acknowledgements ==
* Pieter Wuille and Gregory Maxwell for most of the ideas in this BIP.
diff --git a/bip-0152.mediawiki b/bip-0152.mediawiki
index 8ea3701..8200714 100644
--- a/bip-0152.mediawiki
+++ b/bip-0152.mediawiki
@@ -5,7 +5,7 @@
Author: Matt Corallo <bip152@bluematt.me>
Comments-Summary: Unanimously Recommended for implementation
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0152
- Status: Draft
+ Status: Final
Type: Standards Track
Created: 2016-04-27
License: PD
@@ -128,7 +128,7 @@ A new inv type (MSG_CMPCT_BLOCK == 4) and several new protocol messages are adde
# Upon receipt of a cmpctblock message after sending a sendcmpct message, nodes SHOULD calculate the short transaction ID for each unconfirmed transaction they have available (ie in their mempool) and compare each to each short transaction ID in the cmpctblock message.
# After finding already-available transactions, nodes which do not have all transactions available to reconstruct the full block SHOULD request the missing transactions using a getblocktxn message.
# A node MUST NOT send a cmpctblock message unless they are able to respond to a getblocktxn message which requests every transaction in the block.
-# A node MUST NOT send a cmpctblock message without having validated that the header properly commits to each transaction in the block, and properly builds on top of the existing chain with a valid proof-of-work. A node MAY send a cmpctblock before validating that each transaction in the block validly spends existing UTXO set entries.
+# A node MUST NOT send a cmpctblock message without having validated that the header properly commits to each transaction in the block, and properly builds on top of the existing, fully-validated chain with a valid proof-of-work either as a part of the current most-work valid chain, or building directly on top of it. A node MAY send a cmpctblock before validating that each transaction in the block validly spends existing UTXO set entries.
====getblocktxn====
# The getblocktxn message is defined as a message containing a serialized BlockTransactionsRequest message and pchCommand == "getblocktxn".
diff --git a/bip-0154.mediawiki b/bip-0154.mediawiki
index a0bf387..c1e4cdb 100644
--- a/bip-0154.mediawiki
+++ b/bip-0154.mediawiki
@@ -5,7 +5,7 @@
Author: Karl-Johan Alm <karljohan-alm@garage.co.jp>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0154
- Status: Draft
+ Status: Withdrawn
Type: Standards Track
Created: 2017-04-12
License: BSD-2-Clause
diff --git a/bip-0155.mediawiki b/bip-0155.mediawiki
new file mode 100644
index 0000000..5914241
--- /dev/null
+++ b/bip-0155.mediawiki
@@ -0,0 +1,189 @@
+<pre>
+ BIP: 155
+ Layer: Peer Services
+ Title: addrv2 message
+ Author: Wladimir J. van der Laan <laanwj@gmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0155
+ Status: Draft
+ Type: Standards Track
+ Created: 2019-02-27
+ License: BSD-2-Clause
+</pre>
+
+==Introduction==
+
+===Abstract===
+
+This document proposes a new P2P message to gossip longer node addresses over the P2P network.
+This is required to support new-generation Onion addresses, I2P, and potentially other networks
+that have longer endpoint addresses than fit in the 128 bits of the current <code>addr</code> message.
+
+===Copyright===
+
+This BIP is licensed under the 2-clause BSD license.
+
+===Motivation===
+
+Tor v3 hidden services are part of the stable release of Tor since version 0.3.2.9. They have
+various advantages compared to the old hidden services, among which better encryption and privacy
+<ref>[https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt Tor Rendezvous Specification - Version 3]</ref>.
+These services have 256 bit addresses and thus do not fit in the existing <code>addr</code> message, which encapsulates onion addresses in OnionCat IPv6 addresses.
+
+Other transport-layer protocols such as I2P have always used longer
+addresses. This change would make it possible to gossip such addresses over the
+P2P network, so that other peers can connect to them.
+
+==Specification==
+
+<blockquote>
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
+"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
+interpreted as described in RFC 2119<ref>[https://tools.ietf.org/html/rfc2119 RFC 2119]</ref>.
+</blockquote>
+
+The <code>addrv2</code> message is defined as a message where <code>pchCommand == "addrv2"</code>.
+It is serialized in the standard encoding for P2P messages.
+Its format is similar to the current <code>addr</code> message format
+<ref>[https://bitcoin.org/en/developer-reference#addr Bitcoin Developer Reference: addr message]</ref>, with the difference that the
+fixed 16-byte IP address is replaced by a network ID and a variable-length address, and the time and services format has been changed to VARINT.
+
+This means that the message contains a serialized <code>std::vector</code> of the following structure:
+
+{| class="wikitable" style="width: auto; text-align: center; font-size: smaller; table-layout: fixed;"
+!Type
+!Name
+!Description
+|-
+| <code>VARINT</code> (unsigned)
+| <code>time</code>
+| Time that this node was last seen as connected to the network. A time in Unix epoch time format, up to 64 bits wide.
+|-
+| <code>VARINT</code> (unsigned)
+| <code>services</code>
+| Service bits. A 64-wide bit field.
+|-
+| <code>uint8_t</code>
+| <code>networkID</code>
+| Network identifier. An 8-bit value that specifies which network is addressed.
+|-
+| <code>std::vector<uint8_t></code>
+| <code>addr</code>
+| Network address. The interpretation depends on networkID.
+|-
+| <code>uint16_t</code>
+| <code>port</code>
+| Network port. If not relevant for the network this MUST be 0.
+|}
+
+One message can contain up to 1,000 addresses. Clients SHOULD reject messages with more addresses.
+
+Field <code>addr</code> has a variable length, with a maximum of 32 bytes (256 bits). Clients SHOULD reject
+longer addresses.
+
+The list of reserved network IDs is as follows:
+
+{| class="wikitable" style="width: auto; text-align: center; font-size: smaller; table-layout: fixed;"
+!Network ID
+!Enumeration
+!Address length (bytes)
+!Description
+|-
+| <code>0x01</code>
+| <code>IPV4</code>
+| 4
+| IPv4 address (globally routed internet)
+|-
+| <code>0x02</code>
+| <code>IPV6</code>
+| 16
+| IPv6 address (globally routed internet)
+|-
+| <code>0x03</code>
+| <code>TORV2</code>
+| 10
+| Tor v2 hidden service address
+|-
+| <code>0x04</code>
+| <code>TORV3</code>
+| 32
+| Tor v3 hidden service address
+|-
+| <code>0x05</code>
+| <code>I2P</code>
+| 32
+| I2P overlay network address
+|-
+| <code>0x06</code>
+| <code>CJDNS</code>
+| 16
+| Cjdns overlay network address
+|}
+
+To allow for future extensibility, clients MUST ignore address types that they do not know about.
+Client MAY store and gossip address formats that they do not know about. Further network ID numbers MUST be reserved in a new BIP document.
+
+Clients SHOULD reject addresses that have a different length than specified in this table for a specific address ID, as these are meaningless.
+
+See the appendices for the address encodings to be used for the various networks.
+
+==Compatibility==
+
+Send <code>addrv2</code> messages only, and exclusively, when the peer has a certain protocol version (or higher):
+<source lang="c++">
+//! gossiping using `addrv2` messages starts with this version
+static const int GOSSIP_ADDRV2_VERSION = 70016;
+</source>
+For older peers keep sending the legacy <code>addr</code> message, ignoring addresses with the newly introduced address types.
+
+==Reference implementation==
+
+The reference implementation is available at (to be done)
+
+==Acknowledgements==
+
+- Jonas Schnelli: change <code>services</code> field to VARINT, to make the message more compact in the likely case instead of always using 8 bytes.
+
+- Luke-Jr: change <code>time</code> field to VARINT, for post-2038 compatibility.
+
+- Gregory Maxwell: various suggestions regarding extensibility
+
+==Appendix A: Tor v2 address encoding==
+
+The new message introduces a separate network ID for <code>TORV2</code>.
+
+Clients MUST send Tor hidden service addresses with this network ID, with the 80-bit hidden service ID in the address field. This is the same as the representation in the legacy <code>addr</code> message, minus the 6 byte prefix of the OnionCat wrapping.
+
+Clients SHOULD ignore OnionCat (<code>fd87:d87e:eb43::/48</code>) addresses on receive if they come with the <code>IPV6</code> network ID.
+
+==Appendix B: Tor v3 address encoding==
+
+According to the spec <ref>[https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt Tor Rendezvous Specification - Version 3: Encoding onion addresses]</ref>, next-gen <code>.onion</code> addresses are encoded as follows:
+<pre>
+onion_address = base32(PUBKEY | CHECKSUM | VERSION) + ".onion"
+ CHECKSUM = H(".onion checksum" | PUBKEY | VERSION)[:2]
+
+ where:
+ - PUBKEY is the 32 bytes ed25519 master pubkey of the hidden service.
+ - VERSION is an one byte version field (default value '\x03')
+ - ".onion checksum" is a constant string
+ - CHECKSUM is truncated to two bytes before inserting it in onion_address
+</pre>
+
+Tor v3 addresses MUST be sent with the <code>TORV3</code> network ID, with the 32-byte PUBKEY part in the address field. As VERSION will always be '\x03' in the case of v3 addresses, this is enough to reconstruct the onion address.
+
+==Appendix C: I2P address encoding==
+
+Like Tor, I2P naming uses a base32-encoded address format<ref>[https://geti2p.net/en/docs/naming#base32 I2P: Naming and address book]</ref>.
+
+I2P uses 52 characters (256 bits) to represent the full SHA-256 hash, followed by <code>.b32.i2p</code>.
+
+I2P addresses MUST be sent with the <code>I2P</code> network ID, with the decoded SHA-256 hash as address field.
+
+==Appendix D: Cjdns address encoding==
+
+Cjdns addresses are simply IPv6 addresses in the <code>fc00::/8</code> range<ref>[https://github.com/cjdelisle/cjdns/blob/6e46fa41f5647d6b414612d9d63626b0b952746b/doc/Whitepaper.md#pulling-it-all-together Cjdns whitepaper: Pulling It All Together]</ref>. They MUST be sent with the <code>CJDNS</code> network ID.
+
+==References==
+
+<references/>
diff --git a/bip-0156.mediawiki b/bip-0156.mediawiki
new file mode 100644
index 0000000..dde928a
--- /dev/null
+++ b/bip-0156.mediawiki
@@ -0,0 +1,321 @@
+<pre>
+ BIP: 156
+ Layer: Peer Services
+ Title: Dandelion - Privacy Enhancing Routing
+ Author: Brad Denby <bdenby@cmu.edu>
+ Andrew Miller <soc1024@illinois.edu>
+ Giulia Fanti <gfanti@andrew.cmu.edu>
+ Surya Bakshi <sbakshi3@illinois.edu>
+ Shaileshh Bojja Venkatakrishnan <shaileshh.bv@gmail.com>
+ Pramod Viswanath <pramodv@illinois.edu>
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0156
+ Status: Draft
+ Type: Standards Track
+ Created: 2017-06-09
+ License: CC0-1.0
+</pre>
+
+==Abstract==
+
+Bitcoin's transaction spreading protocol is vulnerable to deanonymization
+attacks. Dandelion is a transaction routing mechanism that provides formal
+anonymity guarantees against these attacks. When a node generates a transaction
+without Dandelion, it transmits that transaction to its peers with independent,
+exponential delays. This approach, known as diffusion in academia, allows
+network adversaries to link transactions to IP addresses.
+
+Dandelion mitigates this class of attacks by sending transactions over a
+randomly selected path before diffusion. Transactions travel along this path
+during the "stem phase" and are then diffused during the "fluff phase" (hence
+Dandelion). We have shown that this routing protocol provides near-optimal
+anonymity guarantees among schemes that do not introduce additional encryption
+mechanisms.
+
+==Motivation==
+
+Transaction diffusion in Bitcoin is vulnerable to deanonymization attacks.
+Because transactions are sent to peers with independent, exponential delays,
+messages spread through the network in a statistically symmetric manner. This
+pattern allows colluding spy nodes to infer the transaction source. Breaking
+this symmetry prevents the attack. However, we have shown that an adversary with
+knowledge of the network topology can launch a much more effective "fingerprint"
+attack if the symmetry breaking is not done properly.
+
+Consider a botnet-style adversary with access to the P2P graph. Botnets of size
+comparable to the Bitcoin P2P network are common and cheap, and these
+adversaries can learn the network structure with probe messages. We have shown
+that such an adversary can achieve total deanonymization of the entire network
+after observing less than ten transactions per node.
+
+Dandelion is a practical, lightweight privacy solution that provides the Bitcoin
+network formal anonymity guarantees. While other privacy solutions aim to
+protect individual users, Dandelion protects anonymity by limiting the
+capability of adversaries to deanonymize the entire network.
+
+==How Dandelion Works==
+
+Dandelion enhances user privacy by sending transactions through an anonymity
+phase before diffusing them throughout the network. At a high level, Dandelion
+enhances privacy by (i) breaking the symmetry of diffusion and (ii) mixing
+transactions by forwarding messages from different sources along the same path.
+
+Dandelion routing can be conceptualized in three phases. First, a privacy graph
+is constructed. In practice, this privacy graph is constructed in a fully
+decentralized manner and is a subgraph of the existing Bitcoin P2P network.
+Next, transactions are forwarded along this privacy graph during the "stem
+phase." Finally, messages are broadcast to the network during the "fluff phase"
+using the typical method of diffusion.
+
+[[File:bip-0156/1-dandelion.png|framed|center|alt=An illustration of Dandelion routing|Figure 1]]
+Figure 1
+
+In order to select the privacy graph in a decentralized manner, each node
+selects a subset of its outbound peers to be Dandelion destinations. Dandelion
+transactions (transactions in their stem phase) that arrive at this node via
+inbound connections are forwarded to these Dandelion destinations.
+
+In an ideal setting, we have found that a Hamiltonian circuit provides
+near-optimal privacy guarantees. However, constructing a Hamiltonian circuit
+through the Bitcoin P2P network in a decentralized, trustless manner is not
+feasible. Thus, we recommend that each node select two Dandelion destinations
+uniformly at random without replacement from its list of outbound peers. Our
+tests have shown that this method provides comparable privacy with increased
+robustness.
+
+During stem phase routing, there is a question of how to route messages in order
+to protect privacy. For example, if two Dandelion transactions arrive at a node
+from different inbound peers, to which Dandelion destination(s) should these
+transactions be sent? We have found that some choices are much better than
+others.
+
+Consider the case in which each Dandelion transaction is forwarded to a
+Dandelion destination selected uniformly at random. This approach results in a
+fingerprint attack allowing network-level botnet adversaries to achieve total
+deanonymization of the P2P network after observing less than ten transactions
+per node.
+
+[[File:bip-0156/2-attack.png|framed|center|alt=An illustration of a fingerprint attack|Figure 2]]
+Figure 2
+
+During a fingerprint attack, a botnet-style adversary with knowledge of the
+graph structure first simulates transaction propagation. This offline step lets
+the adversary generate fingerprints for each network node. During the online
+attack, the adversary collects transactions at its spy nodes and matches these
+observations to the simulated fingerprints. Our simulations have shown that this
+attack results in devastating, network-wide deanonymization.
+
+[[File:bip-0156/3-attack-plot.png|framed|center|alt=A plot illustrating total deanonymization|Figure 3]]
+Figure 3
+
+To avoid this issue, we suggest "per-inbound-edge" routing. Each inbound peer is
+assigned a particular Dandelion destination. Each Dandelion transaction that
+arrives via this peer is forwarded to the same Dandelion destination.
+Per-inbound-edge routing breaks the described attack by blocking an adversary's
+ability to construct useful fingerprints. Fingerprints arise when routing
+decisions are made independently per transaction at each node. In this case, two
+transactions from the same node generally take different paths through the
+network. Crucially, this results in multiple, unique data points that are
+aggregated to match with a fingerprint.
+
+Dandelion ensures that two transactions from the same node take the same network
+path, limiting adversaries to the far-left of the graph in Figure 3. In other
+words, adversary knowledge is limited to the case of one observed message rather
+than a rich profile of multiple transaction paths. Dandelion also breaks the
+symmetry of diffusion, making the source of the transaction difficult to infer.
+
+[[File:bip-0156/4-dandelion-plot.png|framed|center|alt=A plot illustrating limited deanonymization|Figure 4]]
+Figure 4
+
+After a transaction has traveled along a Dandelion stem for a random number of
+hops, it transitions into the fluff phase of routing. The transaction is shared
+with the network through the existing process of diffusion. In practice, this
+fluff mechanism is enforced by a weighted coin flip at each node. If the random
+value is below some threshold, the Dandelion transaction is transformed into a
+typical transaction. In our testing, we have chosen a probability of ten percent
+that a given Dandelion transaction enters fluff phase when leaving a given node.
+This value strikes a good balance between stem path length and transaction
+spreading latency.
+
+Note that Dandelion's expected precision guarantees are a population-level
+metric, whereas the expected recall guarantees can be interpreted as an
+individual-level metric. Expected recall is equivalent to the probability that
+an adversary associates a single transaction with a given source. These
+guarantees are probabilistic. They do not address scenarios in which a node has
+been eclipsed by other nodes, or when a node is specifically targeted by an
+ISP-like adversary. Individuals who are concerned about targeted deanonymization
+should still use Tor.
+
+At a high level, Dandelion is like an "anonymity inoculation" for the public at
+large - including users who are not aware of Bitcoin's privacy issues. Higher
+adoption leads to greater benefits, even for users who do not use Tor. Early
+adopters of Dandelion still receive privacy benefits. In the worst case when no
+neighbors support Dandelion, transactions make at least one hop before
+diffusing. Note that any solution based only on routing cannot be perfectly
+anonymous due to the fundamental lower bounds on precision and recall shown in
+the original Dandelion paper. Dandelion provides near-optimal anonymity
+guarantees among such solutions.
+
+==Specification==
+
+Dandelion can be specified with a handful of features: Dandelion transaction
+support, Dandelion routing data and logic, periodic Dandelion route shuffling,
+memory pool logic, the fluff mechanism, transaction embargoes, and Dandelion
+transaction logic. Specification details are summarized below.
+
+===Dandelion transaction support===
+
+During the stem phase, transactions are "Dandelion transactions." When a
+Dandelion transaction enters fluff phase, it becomes a typical Bitcoin
+transaction. Dandelion transactions and typical transactions differ only in
+their <code>NetMsgType</code>.
+
+Dandelion (stem phase) transactions MUST be differentiable from typical Bitcoin
+transactions.
+
+===Dandelion routing data and logic===
+
+Dandelion routing during the stem phase requires notions of inbound peers,
+outbound peers, Dandelion destinations, and Dandelion routes. Inbound peers
+consist of all currently connected peers that initiated the peer connection.
+Outbound peers consist of all currently connected peers that were connected to
+by this node. Dandelion destinations are a subset of outbound peers. The number
+of Dandelion destinations is limited by the
+<code>DANDELION_MAX_DESTINATIONS</code> parameter. In the reference
+implementation, this parameter is set to two. Our tests have shown that this
+value provides both privacy and robustness (see the reference paper for more
+details on the parameter tradeoffs). Dandelion routes are a map of inbound peers
+to Dandelion destinations. Every inbound peer is mapped to a Dandelion
+destination.
+
+Note that a Dandelion node may choose a different
+<code>DANDELION_MAX_DESTINATIONS</code> parameter without splitting from the
+privacy graph. When mapping inbound connections to outbound connections for
+Dandelion routes, we implement the following routing logic. First, select a set
+of Dandelion destinations from the set of outbound peers. This set of Dandelion
+destinations is of size less than or equal to
+<code>DANDELION_MAX_DESTINATIONS</code>. For each inbound connection, first
+identify the subset of Dandelion destinations with the least number of routes.
+For example, some subset of Dandelion destinations may be affiliated with zero
+routes while all other Dandelion destinations are affiliated with one or more
+routes. From this subset, select one Dandelion destination uniformly at random.
+Establish a Dandelion route from the inbound connection to this Dandelion
+destination.
+
+For a given Dandelion routing epoch, two distinct Dandelion destinations SHOULD
+be selected uniformly at random from the set of outbound connections. All
+Dandelion transactions that arrive via a given inbound connection MUST be
+transmitted to the same Dandelion destination. When choosing a Dandelion
+destination for a given inbound connection, the destination MUST be selected
+uniformly at random from the set of Dandelion destinations with the least number
+of inbound connections mapped to them.
+
+===Periodic Dandelion route shuffling===
+
+The map of Dandelion routes is cleared and reconstructed every ten minutes on
+average. We have chosen the value of ten minutes heuristically in order to make
+privacy graph learning difficult for adversaries. Note that a Dandelion node may
+choose a different average shuffle time without splitting from the privacy
+graph.
+
+Dandelion routes MUST be cleared and reconstructed at random intervals.
+Dandelion routes SHOULD be cleared and reconstructed every ten minutes on
+average.
+
+===Memory pool logic===
+
+Dandelion transactions are segregated from typical transactions. The
+<code>mempool</code> remains unchanged. Another instance of the
+<code>CTxMemPool</code> class, called the <code>stempool</code>, is used for
+Dandelion transactions. Information flows from <code>mempool</code> to
+<code>stempool</code> in order to ensure proper transaction propagation.
+Information does not flow from <code>stempool</code> to <code>mempool</code>,
+except when a Dandelion transaction fluffs into a typical transaction.
+
+When a Dandelion transaction arrives, the transaction MUST be added to the
+stempool and MUST NOT be added to the mempool. When a typical Bitcoin
+transaction arrives, the transaction MUST be added to the mempool and MUST be
+added to the stempool. When a Dandelion transaction fluffs, the transaction MUST
+be added to the mempool.
+
+===The fluff mechanism===
+
+When relaying a Dandelion transaction along a Dandelion route, there is a 10%
+chance that the Dandelion transaction becomes a typical Bitcoin transaction and
+is therefore relayed via diffusion. In our testing, this value strikes a good
+balance between stem path length and transaction spreading latency. Note that a
+Dandelion node may choose a different chance of fluffing without splitting from
+the privacy graph.
+
+When a node prepares to transmit a Dandelion transaction, the node MUST flip a
+biased coin. If the outcome is "Dandelion transaction," then the node MUST
+transmit the transaction to the appropriate Dandelion destination. Otherwise,
+the node MUST convert the Dandelion transaction into a typical Bitcoin
+transaction. A Dandelion transaction SHOULD fluff into a typical Bitcoin
+transaction with a 10% probability.
+
+===Transaction embargoes===
+
+During the stem phase, transactions are relayed along a single path. If any node
+in this path were to receive the Dandelion transaction and go offline, then the
+transaction would cease to propagate. To increase robustness, every node that
+forwards a Dandelion transaction initializes a timer at the time of reception.
+If the Dandelion transaction does not appear in the memory pool by the time the
+timer expires, then the transaction enters fluff phase and is forwarded via
+diffusion.
+
+When a Dandelion transaction arrives, the node MUST set an embargo timer for a
+random time in the future. If the Dandelion transaction arrives as a typical
+Bitcoin transaction, the node MUST cancel the timer. If the timer expires before
+the Dandelion transaction is observed as a typical Bitcoin transaction, then the
+node MUST fluff the Dandelion transaction.
+
+===Dandelion transaction logic===
+
+The following cases define a node's behavior when receiving network packets
+referencing Dandelion transactions.
+* Receive INV for Dandelion TX: If the peer is inbound and the Dandelion transaction has not been received from this peer, then reply with GETDATA.
+* Receive GETDATA for Dandelion TX: If the peer is not inbound and the Dandelion transaction has been advertised to this peer, then reply with the Dandelion transaction.
+* Receive Dandelion TX: If the peer is inbound, then relay the Dandelion TX to the appropriate Dandelion destination.
+
+==Implementation==
+
+A reference implementation is available at the following URL:
+https://github.com/dandelion-org/bitcoin/tree/dandelion-feature-commits
+
+All features have been compressed into a single commit at the following URL:
+https://github.com/dandelion-org/bitcoin/tree/dandelion
+
+==Compatibility==
+
+Dandelion does not conflict with existing versions of Bitcoin. A Bitcoin node
+that supports Dandelion appears no differently to Bitcoin nodes running older
+software versions. Bitcoin nodes that support Dandelion can identify feature
+support through a probe message. Obviously, older nodes are not capable of
+Dandelion routing. If a Bitcoin node supporting Dandelion has no peers that also
+support Dandelion, then its behavior naturally decays to that of a Bitcoin node
+without Dandelion support due to the Dandelion transaction embargoes.
+
+==Acknowledgements==
+
+We would like to thank the Bitcoin Core developers and Gregory Maxwell in
+particular for their insightful comments, which helped to inform this
+implementation and some of the follow-up work we conducted. We would also like
+to thank the Mimblewimble development community for coining the term "stempool,"
+which we happily adopted for this implementation.
+
+==References==
+
+# An Analysis of Anonymity in Bitcoin Using P2P Network Traffic http://fc14.ifca.ai/papers/fc14_submission_71.pdf
+# Deanonymisation of clients in Bitcoin P2P network https://arxiv.org/abs/1405.7418
+# Discovering Bitcoin’s Public Topology and Influential Nodes https://cs.umd.edu/projects/coinscope/coinscope.pdf
+# (Sigmetrics 2017) Dandelion: Redesigning the Bitcoin Network for Anonymity https://arxiv.org/abs/1701.04439
+# (Sigmetrics 2018) Dandelion++: Lightweight Cryptocurrency Networking with Formal Anonymity Guarantees https://arxiv.org/pdf/1805.11060.pdf
+
+==Copyright==
+
+To the extent possible under law, the author(s) have dedicated all copyright and
+related and neighboring rights to this work to the public domain worldwide. This
+work is distributed without any warranty.
+
+You should have received a copy of the CC0 Public Domain Dedication with this
+work. If not, see https://creativecommons.org/publicdomain/zero/1.0/ .
diff --git a/bip-0156/1-dandelion.png b/bip-0156/1-dandelion.png
new file mode 100644
index 0000000..d17e5ce
--- /dev/null
+++ b/bip-0156/1-dandelion.png
Binary files differ
diff --git a/bip-0156/2-attack.png b/bip-0156/2-attack.png
new file mode 100644
index 0000000..c6165d1
--- /dev/null
+++ b/bip-0156/2-attack.png
Binary files differ
diff --git a/bip-0156/3-attack-plot.png b/bip-0156/3-attack-plot.png
new file mode 100644
index 0000000..8a35a86
--- /dev/null
+++ b/bip-0156/3-attack-plot.png
Binary files differ
diff --git a/bip-0156/4-dandelion-plot.png b/bip-0156/4-dandelion-plot.png
new file mode 100644
index 0000000..5fe2150
--- /dev/null
+++ b/bip-0156/4-dandelion-plot.png
Binary files differ
diff --git a/bip-0156/bitcoin.conf b/bip-0156/bitcoin.conf
new file mode 100644
index 0000000..e9e6581
--- /dev/null
+++ b/bip-0156/bitcoin.conf
@@ -0,0 +1,16 @@
+regtest=1 # Run this node on its own independent test network
+debug=net # Enable network debug logs
+debug=mempool # Enable mempool debug logs
+debug=mempoolrej # Enable mempool rejection debug logs
+debug=dandelion # Enable dandelion debug logs
+logips=1 # Log IP addresses in debug output
+logtimemicros=1 # Log timestamps with microsecond precision
+printtoconsole=1 # Print debug logs to console instead of debug.log
+server=1 # Accept command line JSON-RPC commands
+rpcuser=xxx # Username for JSON-RPC connections
+rpcpassword=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+rpcauth=xxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+dns=0 # Do not allow DNS lookups for -addnode, -seednode, and -connect
+dnsseed=0 # Do not query for peer addresses via DNS lookup
+persistmempool=0 # Do not save mempool on shutdown to load on restart
+dandelion=1 # Enable Dandelion transactions
diff --git a/bip-0156/dandelion-debug-logs-example.pdf b/bip-0156/dandelion-debug-logs-example.pdf
new file mode 100644
index 0000000..4f4180e
--- /dev/null
+++ b/bip-0156/dandelion-debug-logs-example.pdf
Binary files differ
diff --git a/bip-0156/dandelion-reference-documentation.pdf b/bip-0156/dandelion-reference-documentation.pdf
new file mode 100644
index 0000000..aee33f1
--- /dev/null
+++ b/bip-0156/dandelion-reference-documentation.pdf
Binary files differ
diff --git a/bip-0157.mediawiki b/bip-0157.mediawiki
new file mode 100644
index 0000000..bb864aa
--- /dev/null
+++ b/bip-0157.mediawiki
@@ -0,0 +1,471 @@
+<pre>
+ BIP: 157
+ Layer: Peer Services
+ Title: Client Side Block Filtering
+ Author: Olaoluwa Osuntokun <laolu32@gmail.com>
+ Alex Akselrod <alex@akselrod.org>
+ Jim Posen <jimpo@coinbase.com>
+ Comments-Summary: None yet
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0157
+ Status: Draft
+ Type: Standards Track
+ Created: 2017-05-24
+ License: CC0-1.0
+</pre>
+
+
+== Abstract ==
+
+This BIP describes a new light client protocol in Bitcoin that improves upon
+currently available options. The standard light client protocol in use today,
+defined in BIP
+37<ref>https://github.com/bitcoin/bips/blob/master/bip-0037.mediawiki</ref>, has
+known flaws that weaken the security and privacy of clients and allow
+denial-of-service attack vectors on full
+nodes<ref>https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-May/012636.html</ref>.
+The new protocol overcomes these issues by allowing light clients to obtain
+compact probabilistic filters of block content from full nodes and download full
+blocks if the filter matches relevant data.
+
+New P2P messages empower light clients to securely sync the blockchain without
+relying on a trusted source. This BIP also defines a filter header, which serves
+as a commitment to all filters for previous blocks and provides the ability to
+efficiently detect malicious or faulty peers serving invalid filters. The
+resulting protocol guarantees that light clients with at least one honest peer
+are able to identify the correct block filters.
+
+== Motivation ==
+
+Bitcoin light clients allow applications to read relevant transactions from the
+blockchain without incurring the full cost of downloading and validating all
+data. Such applications seek to simultaneously minimize the trust in peers and
+the amount of bandwidth, storage space, and computation required. They achieve
+this by downloading all block headers, verifying the proofs of work, and
+following the longest proof-of-work chain. Since block headers are a fixed
+80-bytes and are generated every 10 minutes on average, the bandwidth required
+to sync the block headers is minimal. Light clients then download only the
+blockchain data relevant to them directly from peers and validate inclusion in
+the header chain. Though clients do not check the validity of all blocks in the
+longest proof-of-work chain, they rely on miner incentives for security.
+
+BIP 37 is currently the most widely used light client execution mode for
+Bitcoin. With BIP 37, a client sends a Bloom filter it wants to watch to a full
+node peer, then receives notifications for each new transaction or block that
+matches the filter. The client then requests relevant transactions from the peer
+along with Merkle proofs of inclusion in the blocks containing them, which are
+verified against the block headers. The Bloom filters match data such as client
+addresses and unspent outputs, and the filter size must be carefully tuned to
+balance the false positive rate with the amount of information leaked to peer. It
+has been shown, however, that most implementations available offer virtually
+''zero privacy'' to wallets and other
+applications<ref>https://eprint.iacr.org/2014/763.pdf</ref><ref>https://jonasnick.github.io/blog/2015/02/12/privacy-in-bitcoinj/</ref>.
+Additionally, malicious full nodes serving light clients can omit critical data
+with little risk of detection, which is unacceptable for some applications
+(such as Lightning Network clients) that must respond to certain on-chain
+events. Finally, honest nodes servicing BIP 37 light clients may incur
+significant I/O and CPU resource usage due to maliciously crafted Bloom filters,
+creating a denial-of-service (DoS) vector and disincentizing node operators from
+supporting the
+protocol<ref>https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki</ref>.
+
+The alternative detailed in this document can be seen as the opposite of BIP 37:
+instead of the client sending a filter to a full node peer, full nodes generate
+deterministic filters on block data that are served to the client. A light
+client can then download an entire block if the filter matches the data it is
+watching for. Since filters are deterministic, they only need to be constructed
+once and stored on disk, whenever a new block is connected to the chain. This
+keeps the computation required to serve filters minimal, and eliminates the I/O
+asymmetry that makes BIP 37 enabled nodes vulnerable. Clients also get better
+assurance of seeing all relevant transactions because they can check the
+validity of filters received from peers more easily than they can check
+completeness of filtered blocks. Finally, client privacy is improved because
+blocks can be downloaded from ''any source'', so that no one peer gets complete
+information on the data required by a client. Extremely privacy conscious light
+clients may opt to anonymously fetch blocks using advanced techniques such a
+Private Information
+Retrieval<ref>https://en.wikipedia.org/wiki/Private_information_retrieval</ref>.
+
+== Definitions ==
+
+<code>[]byte</code> represents a vector of bytes.
+
+<code>[N]byte</code> represents a fixed-size byte array with length N.
+
+''CompactSize'' is a compact encoding of unsigned integers used in the Bitcoin
+P2P protocol.
+
+''double-SHA256'' is a hash algorithm defined by two invocations of SHA-256:
+<code>double-SHA256(x) = SHA256(SHA256(x))</code>.
+
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
+"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
+interpreted as described in RFC 2119.
+
+== Specification ==
+
+=== Filter Types ===
+
+For the sake of future extensibility and reducing filter sizes, there are
+multiple ''filter types'' that determine which data is included in a block
+filter as well as the method of filter construction/querying. In this model,
+full nodes generate one filter per block per filter type supported.
+
+Each type is identified by a one byte code, and specifies the contents and
+serialization format of the filter. A full node MAY signal support for
+particular filter types using service bits. The initial filter types are defined
+separately in [[bip-0158.mediawiki|BIP 158]], and one service bit is allocated
+to signal support for them.
+
+=== Filter Headers ===
+
+This proposal draws inspiration from the headers-first mechanism that Bitcoin
+nodes use to sync the block
+chain<ref>https://bitcoin.org/en/developer-guide#headers-first</ref>. Similar to
+how block headers have a Merkle commitment to all transaction data in the block,
+we define filter headers that have commitments to the block filters. Also like
+block headers, filter headers each have a commitment to the preceding one.
+Before downloading the block filters themselves, a light client can download all
+filter headers for the current block chain and use them to verify the
+authenticity of the filters. If the filter header chains differ between multiple
+peers, the client can identify the point where they diverge, then download the
+full block and compute the correct filter, thus identifying which peer is
+faulty.
+
+The canonical hash of a block filter is the double-SHA256 of the serialized
+filter. Filter headers are 32-byte hashes derived for each block filter. They
+are computed as the double-SHA256 of the concatenation of the filter hash with
+the previous filter header. The previous filter header used to calculate that of
+the genesis block is defined to be the 32-byte array of 0's.
+
+=== New Messages ===
+
+==== getcfilters ====
+<code>getcfilters</code> is used to request the compact filters of a particular
+type for a particular range of blocks. The message contains the following
+fields:
+
+{| class="wikitable"
+! Field Name
+! Data Type
+! Byte Size
+! Description
+|-
+| FilterType
+| byte
+| 1
+| Filter type for which headers are requested
+|-
+| StartHeight
+| uint32
+| 4
+| The height of the first block in the requested range
+|-
+| StopHash
+| [32]byte
+| 32
+| The hash of the last block in the requested range
+|}
+
+# Nodes SHOULD NOT send <code>getcfilters</code> unless the peer has signaled support for this filter type. Nodes receiving <code>getcfilters</code> with an unsupported filter type SHOULD NOT respond.
+# StopHash MUST be known to belong to a block accepted by the receiving peer. This is the case if the peer had previously sent a <code>headers</code> or <code>inv</code> message with that block or any descendents. A node that receives <code>getcfilters</code> with an unknown StopHash SHOULD NOT respond.
+# The height of the block with hash StopHash MUST be greater than or equal to StartHeight, and the difference MUST be strictly less than 1000.
+# The receiving node MUST respond to valid requests by sending one <code>cfilter</code> message for each block in the requested range, sequentially in order by block height.
+
+==== cfilter ====
+<code>cfilter</code> is sent in response to <code>getcfilters</code>, one for
+each block in the requested range. The message contains the following fields:
+
+{| class="wikitable"
+! Field Name
+! Data Type
+! Byte Size
+! Description
+|-
+| FilterType
+| byte
+| 1
+| Byte identifying the type of filter being returned
+|-
+| BlockHash
+| [32]byte
+| 32
+| Block hash of the Bitcoin block for which the filter is being returned
+|-
+| NumFilterBytes
+| CompactSize
+| 1-5
+| A variable length integer representing the size of the filter in the following field
+|-
+| FilterBytes
+| []byte
+| NumFilterBytes
+| The serialized compact filter for this block
+|}
+
+# The FilterType SHOULD match the field in the <code>getcfilters</code> request, and BlockHash must correspond to a block that is an ancestor of StopHash with height greater than or equal to StartHeight.
+
+==== getcfheaders ====
+<code>getcfheaders</code> is used to request verifiable filter headers for a
+range of blocks. The message contains the following fields:
+
+{| class="wikitable"
+! Field Name
+! Data Type
+! Byte Size
+! Description
+|-
+| FilterType
+| byte
+| 1
+| Filter type for which headers are requested
+|-
+| StartHeight
+| uint32
+| 4
+| The height of the first block in the requested range
+|-
+| StopHash
+| [32]byte
+| 32
+| The hash of the last block in the requested range
+|}
+
+# Nodes SHOULD NOT send <code>getcfheaders</code> unless the peer has signaled support for this filter type. Nodes receiving <code>getcfheaders</code> with an unsupported filter type SHOULD NOT respond.
+# StopHash MUST be known to belong to a block accepted by the receiving peer. This is the case if the peer had previously sent a <code>headers</code> or <code>inv</code> message with that block or any descendents. A node that receives <code>getcfheaders</code> with an unknown StopHash SHOULD NOT respond.
+# The height of the block with hash StopHash MUST be greater than or equal to StartHeight, and the difference MUST be strictly less than 2,000.
+
+==== cfheaders ====
+<code>cfheaders</code> is sent in response to <code>getcfheaders</code>. Instead
+of including the filter headers themselves, the response includes one filter
+header and a sequence of filter hashes, from which the headers can be derived.
+This has the benefit that the client can verify the binding links between the
+headers. The message contains the following fields:
+
+{| class="wikitable"
+! Field Name
+! Data Type
+! Byte Size
+! Description
+|-
+| FilterType
+| byte
+| 1
+| Filter type for which hashes are requested
+|-
+| StopHash
+| [32]byte
+| 32
+| The hash of the last block in the requested range
+|-
+| PreviousFilterHeader
+| [32]byte
+| 32
+| The filter header preceding the first block in the requested range
+|-
+| FilterHashesLength
+| CompactSize
+| 1-3
+| The length of the following vector of filter hashes
+|-
+| FilterHashes
+| [][32]byte
+| FilterHashesLength * 32
+| The filter hashes for each block in the requested range
+|}
+
+# The FilterType and StopHash SHOULD match the fields in the <code>getcfheaders</code> request.
+# FilterHashesLength MUST NOT be greater than 2,000.
+# FilterHashes MUST have one entry for each block on the chain terminating with tip StopHash, starting with the block at height StartHeight. The entries MUST be the filter hashes of the given type for each block in that range, in ascending order by height.
+# PreviousFilterHeader MUST be set to the previous filter header of first block in the requested range.
+
+==== getcfcheckpt ====
+<code>getcfcheckpt</code> is used to request filter headers at evenly spaced
+intervals over a range of blocks. Clients may use filter hashes from
+<code>getcfheaders</code> to connect these checkpoints, as is described in the
+[[#client-operation|Client Operation]] section below. The
+<code>getcfcheckpt</code> message contains the following fields:
+
+{| class="wikitable"
+! Field Name
+! Data Type
+! Byte Size
+! Description
+|-
+| FilterType
+| byte
+| 1
+| Filter type for which headers are requested
+|-
+| StopHash
+| [32]byte
+| 32
+| The hash of the last block in the chain that headers are requested for
+|}
+
+# Nodes SHOULD NOT send <code>getcfcheckpt</code> unless the peer has signaled support for this filter type. Nodes receiving <code>getcfcheckpt</code> with an unsupported filter type SHOULD NOT respond.
+# StopHash MUST be known to belong to a block accepted by the receiving peer. This is the case if the peer had previously sent a <code>headers</code> or <code>inv</code> message with any descendent blocks. A node that receives <code>getcfcheckpt</code> with an unknown StopHash SHOULD NOT respond.
+
+==== cfcheckpt ====
+<code>cfcheckpt</code> is sent in response to <code>getcfcheckpt</code>. The
+filter headers included are the set of all filter headers on the requested chain
+where the height is a positive multiple of 1,000. The message contains the
+following fields:
+
+{| class="wikitable"
+! Field Name
+! Data Type
+! Byte Size
+! Description
+|-
+| FilterType
+| byte
+| 1
+| Filter type for which headers are requested
+|-
+| StopHash
+| [32]byte
+| 32
+| The hash of the last block in the chain that headers are requested for
+|-
+| FilterHeadersLength
+| CompactSize
+| 1-3
+| The length of the following vector of filter headers
+|-
+| FilterHeaders
+| [][32]byte
+| FilterHeadersLength * 32
+| The filter headers at intervals of 1,000
+|}
+
+# The FilterType and StopHash SHOULD match the fields in the <code>getcfcheckpt</code> request.
+# FilterHeaders MUST have exactly one entry for each block on the chain terminating in StopHash, where the block height is a multiple of 1,000 greater than 0. The entries MUST be the filter headers of the given type for each such block, in ascending order by height.
+
+=== Node Operation ===
+
+Full nodes MAY opt to support this BIP and generate filters for any of the
+specified filter types. Such nodes SHOULD treat the filters as an additional
+index of the blockchain. For each new block that is connected to the main chain,
+nodes SHOULD generate filters for all supported types and persist them. Nodes
+that are missing filters and are already synced with the blockchain SHOULD
+reindex the chain upon start-up, constructing filters for each block from
+genesis to the current tip. They also SHOULD keep every checkpoint header in
+memory, so that <code>getcfcheckpt</code> requests do not result in many
+random-access disk reads.
+
+Nodes SHOULD NOT generate filters dynamically on request, as malicious peers may
+be able to perform DoS attacks by requesting small filters derived from large
+blocks. This would require an asymmetical amount of I/O on the node to compute
+and serve, similar to attacks against BIP 37 enabled nodes noted in BIP 111.
+
+Nodes MAY prune block data after generating and storing all filters for a block.
+
+=== Client Operation ===
+
+This section provides recommendations for light clients to download filters with
+maximal security.
+
+Clients SHOULD first sync the entire block header chain from peers using the
+standard headers-first syncing mechanism before downloading any block filters or
+filter headers. Clients configured with trusted checkpoints MAY only sync
+headers started from the last checkpoint. Clients SHOULD disconnect any outbound
+peers whose best chain has significantly less work than the known longest
+proof-of-work chain.
+
+Once a client's block headers are in sync, it SHOULD download and verify filter
+headers for all blocks and filter types that it might later download. The client
+SHOULD send <code>getcfheaders</code> messages to peers and derive and store the
+filter headers for each block. The client MAY first fetch headers at evenly
+spaced intervals of 1,000 by sending <code>getcfcheckpt</code>. The header
+checkpoints allow the client to download filter headers for different intervals
+from multiple peers in parallel, verifying each range of 1,000 headers against
+the checkpoints.
+
+Unless securely connected to a trusted peer that is serving filter headers, the
+client SHOULD connect to multiple outbound peers that support each filter type
+to mitigate the risk of downloading incorrect headers. If the client receives
+conflicting filter headers from different peers for any block and filter type,
+it SHOULD interrogate them to determine which is faulty. The client SHOULD use
+<code>getcfheaders</code> and/or <code>getcfcheckpt</code> to first identify
+the first filter headers that the peers disagree on. The client then SHOULD
+download the full block from any peer and derive the correct filter and filter
+header. The client SHOULD ban any peers that sent a filter header that does not
+match the computed one.
+
+Once the client has downloaded and verified all filter headers needed, ''and''
+no outbound peers have sent conflicting headers, the client can download the
+actual block filters it needs. The client MAY backfill filter headers before the
+first verified one at this point if it only downloaded them starting at a later
+point. Clients SHOULD persist the verified filter headers for last 100 blocks in
+the chain (or whatever finality depth is desired), to compare against headers
+received from new peers after restart. They MAY store more filter headers to
+avoid redownloading them if a rescan is later necessary.
+
+Starting from the first block in the desired range, the client now MAY download
+the filters. The client SHOULD test that each filter links to its corresponding
+filter header and ban peers that send incorrect filters. The client MAY download
+multiple filters at once to increase throughput, though it SHOULD test the
+filters sequentially. The client MAY check if a filter is empty before
+requesting it by checking if the filter header commits to the hash of the empty
+filter, saving a round trip if that is the case.
+
+Each time a new valid block header is received, the client SHOULD request the
+corresponding filter headers from all eligible peers. If two peers send
+conflicting filter headers, the client should interrogate them as described
+above and ban any peers that send an invalid header.
+
+If a client is fetching full blocks from the P2P network, they SHOULD be downloaded
+from outbound peers at random to mitigate privacy loss due to transaction
+intersection analysis. Note that blocks may be downloaded from peers that do not
+support this BIP.
+
+== Rationale ==
+
+The filter headers and checkpoints messages are defined to help clients identify
+the correct filter for a block when connected to peers sending conflicting
+information. An alternative solution is to require Bitcoin blocks to include
+commitments to derived block filters, so light clients can verify authenticity
+given block headers and some additional witness data. This would require a
+network-wide change to the Bitcoin consensus rules, however, whereas this
+document proposes a solution purely at the P2P layer.
+
+The constant interval of 1,000 blocks between checkpoints was chosen so that,
+given the current chain height and rate of growth, the size of a
+<code>cfcheckpt</code> message is not drastically from a
+<code>cfheaders</code> between two checkpoints. Also, 1,000 is a nice round
+number, at least to those of us who think in decimal.
+
+== Compatibility ==
+
+This light client mode is not compatible with current node deployments and
+requires support for the new P2P messages. The node implementation of this
+proposal is not incompatible with the current P2P network rules (ie. doesn't
+affect network topology of full nodes). Light clients may adopt protocols based
+on this as an alternative to the existing BIP 37. Adoption of this BIP may
+result in reduced network support for BIP 37.
+
+== Acknowledgments ==
+
+We would like to thank bfd (from the bitcoin-dev mailing list) for bringing the
+basis of this BIP to our attention, Joseph Poon for suggesting the filter header
+chain scheme, and Pedro Martelletto for writing the initial indexing code for
+<code>btcd</code>.
+
+We would also like to thank Dave Collins, JJ Jeffrey, Eric Lombrozo, and Matt
+Corallo for useful discussions.
+
+== Reference Implementation ==
+
+Light client: [https://github.com/lightninglabs/neutrino]
+
+Full-node indexing: https://github.com/Roasbeef/btcd/tree/segwit-cbf
+
+Golomb-Rice Coded sets: https://github.com/Roasbeef/btcutil/tree/gcs/gcs
+
+== References ==
+
+<references/>
+
+== Copyright ==
+
+This document is licensed under the Creative Commons CC0 1.0 Universal license.
diff --git a/bip-0158.mediawiki b/bip-0158.mediawiki
new file mode 100644
index 0000000..ce4a4af
--- /dev/null
+++ b/bip-0158.mediawiki
@@ -0,0 +1,443 @@
+<pre>
+ BIP: 158
+ Layer: Peer Services
+ Title: Compact Block Filters for Light Clients
+ Author: Olaoluwa Osuntokun <laolu32@gmail.com>
+ Alex Akselrod <alex@akselrod.org>
+ Comments-Summary: None yet
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0158
+ Status: Draft
+ Type: Standards Track
+ Created: 2017-05-24
+ License: CC0-1.0
+</pre>
+
+
+== Abstract ==
+
+This BIP describes a structure for compact filters on block data, for use in the
+BIP 157 light client protocol<ref>bip-0157.mediawiki</ref>. The filter
+construction proposed is an alternative to Bloom filters, as used in BIP 37,
+that minimizes filter size by using Golomb-Rice coding for compression. This
+document specifies one initial filter type based on this construction that
+enables basic wallets and applications with more advanced smart contracts.
+
+== Motivation ==
+
+[[bip-0157.mediawiki|BIP 157]] defines a light client protocol based on
+deterministic filters of block content. The filters are designed to
+minimize the expected bandwidth consumed by light clients, downloading filters
+and full blocks. This document defines the initial filter type ''basic''
+that is designed to reduce the filter size for regular wallets.
+
+== Definitions ==
+
+<code>[]byte</code> represents a vector of bytes.
+
+<code>[N]byte</code> represents a fixed-size byte array with length N.
+
+''CompactSize'' is a compact encoding of unsigned integers used in the Bitcoin
+P2P protocol.
+
+''Data pushes'' are byte vectors pushed to the stack according to the rules of
+Bitcoin script.
+
+''Bit streams'' are readable and writable streams of individual bits. The
+following functions are used in the pseudocode in this document:
+* <code>new_bit_stream</code> instantiates a new writable bit stream
+* <code>new_bit_stream(vector)</code> instantiates a new bit stream reading data from <code>vector</code>
+* <code>write_bit(stream, b)</code> appends the bit <code>b</code> to the end of the stream
+* <code>read_bit(stream)</code> reads the next available bit from the stream
+* <code>write_bits_big_endian(stream, n, k)</code> appends the <code>k</code> least significant bits of integer <code>n</code> to the end of the stream in big-endian bit order
+* <code>read_bits_big_endian(stream, k)</code> reads the next available <code>k</code> bits from the stream and interprets them as the least significant bits of a big-endian integer
+
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
+"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
+interpreted as described in RFC 2119.
+
+== Specification ==
+
+=== Golomb-Coded Sets ===
+
+For each block, compact filters are derived containing sets of items associated
+with the block (eg. addresses sent to, outpoints spent, etc.). A set of such
+data objects is compressed into a probabilistic structure called a
+''Golomb-coded set'' (GCS), which matches all items in the set with probability
+1, and matches other items with probability <code>1/M</code> for some
+integer parameter <code>M</code>. The encoding is also parameterized by
+<code>P</code>, the bit length of the remainder code. Each filter defined
+specifies values for <code>P</code> and <code>M</code>.
+
+At a high level, a GCS is constructed from a set of <code>N</code> items by:
+# hashing all items to 64-bit integers in the range <code>[0, N * M)</code>
+# sorting the hashed values in ascending order
+# computing the differences between each value and the previous one
+# writing the differences sequentially, compressed with Golomb-Rice coding
+
+The following sections describe each step in greater detail.
+
+==== Hashing Data Objects ====
+
+The first step in the filter construction is hashing the variable-sized raw
+items in the set to the range <code>[0, F)</code>, where <code>F = N *
+M</code>. Customarily, <code>M</code> is set to <code>2^P</code>. However, if
+one is able to select both Parameters independently, then more optimal values
+can be
+selected<ref>https://gist.github.com/sipa/576d5f09c3b86c3b1b75598d799fc845</ref>.
+Set membership queries against the hash outputs will have a false positive rate
+of <code>M</code>. To avoid integer overflow, the number of items <code>N</code>
+MUST be <2^32 and <code>M</code> MUST be <2^32.
+
+The items are first passed through the pseudorandom function ''SipHash'', which
+takes a 128-bit key <code>k</code> and a variable-sized byte vector and produces
+a uniformly random 64-bit output. Implementations of this BIP MUST use the
+SipHash parameters <code>c = 2</code> and <code>d = 4</code>.
+
+The 64-bit SipHash outputs are then mapped uniformly over the desired range by
+multiplying with F and taking the top 64 bits of the 128-bit result. This
+algorithm is a faster alternative to modulo reduction, as it avoids the
+expensive division
+operation<ref>https://lemire.me/blog/2016/06/27/a-fast-alternative-to-the-modulo-reduction/</ref>.
+Note that care must be taken when implementing this reduction to ensure the
+upper 64 bits of the integer multiplication are not truncated; certain
+architectures and high level languages may require code that decomposes the
+64-bit multiplication into four 32-bit multiplications and recombines into the
+result.
+
+<pre>
+hash_to_range(item: []byte, F: uint64, k: [16]byte) -> uint64:
+ return (siphash(k, item) * F) >> 64
+
+hashed_set_construct(raw_items: [][]byte, k: [16]byte, M: uint) -> []uint64:
+ let N = len(raw_items)
+ let F = N * M
+
+ let set_items = []
+
+ for item in raw_items:
+ let set_value = hash_to_range(item, F, k)
+ set_items.append(set_value)
+
+ return set_items
+</pre>
+
+==== Golomb-Rice Coding ====
+
+Instead of writing the items in the hashed set directly to the filter, greater
+compression is achieved by only writing the differences between successive
+items in sorted order. Since the items are distributed uniformly, it can be
+shown that the differences resemble a geometric
+distribution<ref>https://en.wikipedia.org/wiki/Geometric_distribution</ref>.
+''Golomb-Rice''
+''coding''<ref>https://en.wikipedia.org/wiki/Golomb_coding#Rice_coding</ref>
+is a technique that optimally compresses geometrically distributed values.
+
+With Golomb-Rice, a value is split into a quotient and remainder modulo
+<code>2^P</code>, which are encoded separately. The quotient <code>q</code> is
+encoded as ''unary'', with a string of <code>q</code> 1's followed by one 0. The
+remainder <code>r</code> is represented in big-endian by P bits. For example,
+this is a table of Golomb-Rice coded values using <code>P=2</code>:
+
+{| class="wikitable"
+! n !! (q, r) !! c
+|-
+| 0 || (0, 0) || <code>0 00</code>
+|-
+| 1 || (0, 1) || <code>0 01</code>
+|-
+| 2 || (0, 2) || <code>0 10</code>
+|-
+| 3 || (0, 3) || <code>0 11</code>
+|-
+| 4 || (1, 0) || <code>10 00</code>
+|-
+| 5 || (1, 1) || <code>10 01</code>
+|-
+| 6 || (1, 2) || <code>10 10</code>
+|-
+| 7 || (1, 3) || <code>10 11</code>
+|-
+| 8 || (2, 0) || <code>110 00</code>
+|-
+| 9 || (2, 1) || <code>110 01</code>
+|}
+
+<pre>
+golomb_encode(stream, x: uint64, P: uint):
+ let q = x >> P
+
+ while q > 0:
+ write_bit(stream, 1)
+ q--
+ write_bit(stream, 0)
+
+ write_bits_big_endian(stream, x, P)
+
+golomb_decode(stream, P: uint) -> uint64:
+ let q = 0
+ while read_bit(stream) == 1:
+ q++
+
+ let r = read_bits_big_endian(stream, P)
+
+ let x = (q << P) + r
+ return x
+</pre>
+
+==== Set Construction ====
+
+A GCS is constructed from four parameters:
+* <code>L</code>, a vector of <code>N</code> raw items
+* <code>P</code>, the bit parameter of the Golomb-Rice coding
+* <code>M</code>, the target false positive rate
+* <code>k</code>, the 128-bit key used to randomize the SipHash outputs
+
+The result is a byte vector with a minimum size of <code>N * (P + 1)</code>
+bits.
+
+The raw items in <code>L</code> are first hashed to 64-bit unsigned integers as
+specified above and sorted. The differences between consecutive values,
+hereafter referred to as ''deltas'', are encoded sequentially to a bit stream
+with Golomb-Rice coding. Finally, the bit stream is padded with 0's to the
+nearest byte boundary and serialized to the output byte vector.
+
+<pre>
+construct_gcs(L: [][]byte, P: uint, k: [16]byte, M: uint) -> []byte:
+ let set_items = hashed_set_construct(L, k, M)
+
+ set_items.sort()
+
+ let output_stream = new_bit_stream()
+
+ let last_value = 0
+ for item in set_items:
+ let delta = item - last_value
+ golomb_encode(output_stream, delta, P)
+ last_value = item
+
+ return output_stream.bytes()
+</pre>
+
+==== Set Querying/Decompression ====
+
+To check membership of an item in a compressed GCS, one must reconstruct the
+hashed set members from the encoded deltas. The procedure to do so is the
+reverse of the compression: deltas are decoded one by one and added to a
+cumulative sum. Each intermediate sum represents a hashed value in the original
+set. The queried item is hashed in the same way as the set members and compared
+against the reconstructed values. Note that querying does not require the entire
+decompressed set be held in memory at once.
+
+<pre>
+gcs_match(key: [16]byte, compressed_set: []byte, target: []byte, P: uint, N: uint, M: uint) -> bool:
+ let F = N * M
+ let target_hash = hash_to_range(target, F, k)
+
+ stream = new_bit_stream(compressed_set)
+
+ let last_value = 0
+
+ loop N times:
+ let delta = golomb_decode(stream, P)
+ let set_item = last_value + delta
+
+ if set_item == target_hash:
+ return true
+
+ // Since the values in the set are sorted, terminate the search once
+ // the decoded value exceeds the target.
+ if set_item > target_hash:
+ break
+
+ last_value = set_item
+
+ return false
+</pre>
+
+Some applications may need to check for set intersection instead of membership
+of a single item. This can be performed far more efficiently than checking each
+item individually by leveraging the sorted structure of the compressed GCS.
+First the query elements are all hashed and sorted, then compared in order
+against the decompressed GCS contents. See
+[[#golomb-coded-set-multi-match|Appendix B]] for pseudocode.
+
+=== Block Filters ===
+
+This BIP defines one initial filter type:
+* Basic (<code>0x00</code>)
+** <code>M = 784931</code>
+** <code>P = 19</code>
+
+==== Contents ====
+
+The basic filter is designed to contain everything that a light client needs to
+sync a regular Bitcoin wallet. A basic filter MUST contain exactly the
+following items for each transaction in a block:
+* The previous output script (the script being spent) for each input, except
+ for the coinbase transaction.
+* The scriptPubKey of each output, aside from all <code>OP_RETURN</code> output
+ scripts.
+
+Any "nil" items MUST NOT be included into the final set of filter elements.
+
+We exclude all outputs that start with <code>OP_RETURN</code> in order to allow
+filters to easily be committed to in the future via a soft-fork. A likely area
+for future commitments is an additional <code>OP_RETURN</code> output in the
+coinbase transaction similar to the current witness commitment
+<ref>https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki</ref>. By
+excluding all <code>OP_RETURN</code> outputs we avoid a circular dependency
+between the commitment, and the item being committed to.
+
+==== Construction ====
+
+The basic type is constructed as Golomb-coded sets with the following
+parameters.
+
+The parameter <code>P</code> MUST be set to <code>19</code>, and the parameter
+<code>M</code> MUST be set to <code>784931</code>. Analysis has shown that if
+one is able to select <code>P</code> and <code>M</code> independently, then
+setting <code>M=1.497137 * 2^P</code> is close to optimal
+<ref>https://gist.github.com/sipa/576d5f09c3b86c3b1b75598d799fc845</ref>.
+
+Empirical analysis also shows that was chosen as these parameters minimize the
+bandwidth utilized, considering both the expected number of blocks downloaded
+due to false positives and the size of the filters themselves.
+
+The parameter <code>k</code> MUST be set to the first 16 bytes of the hash
+(in standard little-endian representation) of the block for which the filter is
+constructed. This ensures the key is deterministic while still varying from
+block to block.
+
+Since the value <code>N</code> is required to decode a GCS, a serialized GCS
+includes it as a prefix, written as a <code>CompactSize</code>. Thus, the
+complete serialization of a filter is:
+* <code>N</code>, encoded as a <code>CompactSize</code>
+* The bytes of the compressed filter itself
+
+==== Signaling ====
+
+This BIP allocates a new service bit:
+
+{| class="wikitable"
+|-
+| NODE_COMPACT_FILTERS
+| style="white-space: nowrap;" | <code>1 << 6</code>
+| If enabled, the node MUST respond to all BIP 157 messages for filter type <code>0x00</code>
+|}
+
+== Compatibility ==
+
+This block filter construction is not incompatible with existing software,
+though it requires implementation of the new filters.
+
+== Acknowledgments ==
+
+We would like to thank bfd (from the bitcoin-dev mailing list) for bringing the
+basis of this BIP to our attention, Greg Maxwell for pointing us in the
+direction of Golomb-Rice coding and fast range optimization, Pieter Wullie for
+his analysis of optimal GCS parameters, and Pedro
+Martelletto for writing the initial indexing code for <code>btcd</code>.
+
+We would also like to thank Dave Collins, JJ Jeffrey, and Eric Lombrozo for
+useful discussions.
+
+== Reference Implementation ==
+
+Light client: [https://github.com/lightninglabs/neutrino]
+
+Full-node indexing: https://github.com/Roasbeef/btcd/tree/segwit-cbf
+
+Golomb-Rice Coded sets: https://github.com/btcsuite/btcutil/blob/master/gcs
+
+== Appendix A: Alternatives ==
+
+A number of alternative set encodings were considered before Golomb-coded
+sets were settled upon. In this appendix section, we'll list a few of the
+alternatives along with our rationale for not pursuing them.
+
+==== Bloom Filters ====
+
+Bloom Filters are perhaps the best known probabilistic data structure for
+testing set membership, and were introduced into the Bitcoin protocol with BIP
+37. The size of a Bloom filter is larger than the expected size of a GCS with
+the same false positive rate, which is the main reason the option was rejected.
+
+==== Cryptographic Accumulators ====
+
+Cryptographic
+accumulators<ref>https://en.wikipedia.org/wiki/Accumulator_(cryptography)</ref>
+are a cryptographic data structures that enable (amongst other operations) a one
+way membership test. One advantage of accumulators are that they are constant
+size, independent of the number of elements inserted into the accumulator.
+However, current constructions of cryptographic accumulators require an initial
+trusted set up. Additionally, accumulators based on the Strong-RSA Assumption
+require mapping set items to prime representatives in the associated group which
+can be preemptively expensive.
+
+==== Matrix Based Probabilistic Set Data Structures ====
+
+There exist data structures based on matrix solving which are even more space
+efficient compared to Bloom
+filters<ref>https://arxiv.org/pdf/0804.1845.pdf</ref>. We instead opted for our
+GCS-based filters as they have a much lower implementation complexity and are
+easier to understand.
+
+== Appendix B: Pseudocode ==
+
+=== Golomb-Coded Set Multi-Match ===
+
+<pre>
+gcs_match_any(key: [16]byte, compressed_set: []byte, targets: [][]byte, P: uint, N: uint, M: uint) -> bool:
+ let F = N * M
+
+ // Map targets to the same range as the set hashes.
+ let target_hashes = []
+ for target in targets:
+ let target_hash = hash_to_range(target, F, k)
+ target_hashes.append(target_hash)
+
+ // Sort targets so matching can be checked in linear time.
+ target_hashes.sort()
+
+ stream = new_bit_stream(compressed_set)
+
+ let value = 0
+ let target_idx = 0
+ let target_val = target_hashes[target_idx]
+
+ loop N times:
+ let delta = golomb_decode(stream, P)
+ value += delta
+
+ inner loop:
+ if target_val == value:
+ return true
+
+ // Move on to the next set value.
+ else if target_val > value:
+ break inner loop
+
+ // Move on to the next target value.
+ else if target_val < value:
+ target_idx++
+
+ // If there are no targets left, then there are no matches.
+ if target_idx == len(targets):
+ break outer loop
+
+ target_val = target_hashes[target_idx]
+
+ return false
+</pre>
+
+== Appendix C: Test Vectors ==
+
+Test vectors for basic block filters on five testnet blocks, including the filters and filter headers, can be found [[bip-0158/testnet-19.json|here]]. The code to generate them can be found [[bip-0158/gentestvectors.go|here]].
+
+== References ==
+
+<references/>
+
+== Copyright ==
+
+This document is licensed under the Creative Commons CC0 1.0 Universal license.
diff --git a/bip-0158/gentestvectors.go b/bip-0158/gentestvectors.go
new file mode 100644
index 0000000..3435eb3
--- /dev/null
+++ b/bip-0158/gentestvectors.go
@@ -0,0 +1,301 @@
+// This program connects to your local btcd and generates test vectors for
+// 5 blocks and collision space sizes of 1-32 bits. Change the RPC cert path
+// and credentials to run on your system. The program assumes you're running
+// a btcd with cfilter support, which mainline btcd doesn't have; in order to
+// circumvent this assumption, comment out the if block that checks for
+// filter size of DefaultP.
+
+package main
+
+import (
+ "bytes"
+ "encoding/hex"
+ "encoding/json"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+
+ "github.com/btcsuite/btcd/blockchain"
+ "github.com/btcsuite/btcd/chaincfg/chainhash"
+ "github.com/btcsuite/btcd/rpcclient"
+ "github.com/btcsuite/btcd/wire"
+ "github.com/btcsuite/btcutil"
+ "github.com/btcsuite/btcutil/gcs/builder"
+ "github.com/davecgh/go-spew/spew"
+)
+
+var (
+ // testBlockHeights are the heights of the blocks to include in the test
+ // vectors. Any new entries must be added in sorted order.
+ testBlockHeights = []testBlockCase{
+ {0, "Genesis block"},
+ {2, ""},
+ {3, ""},
+ {15007, "Tx has non-standard OP_RETURN output followed by opcodes"},
+ {49291, "Tx pays to empty output script"},
+ {180480, "Tx spends from empty output script"},
+ {926485, "Duplicate pushdata 913bcc2be49cb534c20474c4dee1e9c4c317e7eb"},
+ {987876, "Coinbase tx has unparseable output script"},
+ {1263442, "Includes witness data"},
+ {1414221, "Empty data"},
+ }
+
+ defaultBtcdDir = btcutil.AppDataDir("btcd", false)
+ defaultBtcdRPCCertFile = filepath.Join(defaultBtcdDir, "rpc.cert")
+)
+
+const (
+ fp = 19
+)
+
+type testBlockCase struct {
+ height uint32
+ comment string
+}
+
+type JSONTestWriter struct {
+ writer io.Writer
+ firstRowWritten bool
+}
+
+func NewJSONTestWriter(writer io.Writer) *JSONTestWriter {
+ return &JSONTestWriter{writer: writer}
+}
+
+func (w *JSONTestWriter) WriteComment(comment string) error {
+ return w.WriteTestCase([]interface{}{comment})
+}
+
+func (w *JSONTestWriter) WriteTestCase(row []interface{}) error {
+ var err error
+ if w.firstRowWritten {
+ _, err = io.WriteString(w.writer, ",\n")
+ } else {
+ _, err = io.WriteString(w.writer, "[\n")
+ w.firstRowWritten = true
+ }
+ if err != nil {
+ return err
+ }
+
+ rowBytes, err := json.Marshal(row)
+ if err != nil {
+ return err
+ }
+
+ _, err = w.writer.Write(rowBytes)
+ return err
+}
+
+func (w *JSONTestWriter) Close() error {
+ if !w.firstRowWritten {
+ return nil
+ }
+
+ _, err := io.WriteString(w.writer, "\n]\n")
+ return err
+}
+
+func fetchPrevOutputScripts(client *rpcclient.Client, block *wire.MsgBlock) ([][]byte, error) {
+ var prevScripts [][]byte
+
+ txCache := make(map[chainhash.Hash]*wire.MsgTx)
+ for _, tx := range block.Transactions {
+ if blockchain.IsCoinBaseTx(tx) {
+ continue
+ }
+
+ for _, txIn := range tx.TxIn {
+ prevOp := txIn.PreviousOutPoint
+
+ tx, ok := txCache[prevOp.Hash]
+ if !ok {
+ originTx, err := client.GetRawTransaction(
+ &prevOp.Hash,
+ )
+ if err != nil {
+ return nil, fmt.Errorf("unable to get "+
+ "txid=%v: %v", prevOp.Hash, err)
+ }
+
+ txCache[prevOp.Hash] = originTx.MsgTx()
+
+ tx = originTx.MsgTx()
+ }
+
+ index := prevOp.Index
+
+ prevScripts = append(
+ prevScripts, tx.TxOut[index].PkScript,
+ )
+ }
+ }
+
+ return prevScripts, nil
+}
+
+func main() {
+ var (
+ writerFile *JSONTestWriter
+ prevBasicHeader chainhash.Hash
+ )
+ fName := fmt.Sprintf("testnet-%02d.json", fp)
+ file, err := os.Create(fName)
+ if err != nil {
+ fmt.Println("Error creating output file: ", err.Error())
+ return
+ }
+ defer file.Close()
+
+ writer := &JSONTestWriter{
+ writer: file,
+ }
+ defer writer.Close()
+
+ err = writer.WriteComment("Block Height,Block Hash,Block," +
+ "[Prev Output Scripts for Block],Previous Basic Header," +
+ "Basic Filter,Basic Header,Notes")
+ if err != nil {
+ fmt.Println("Error writing to output file: ", err.Error())
+ return
+ }
+
+ writerFile = writer
+
+ cert, err := ioutil.ReadFile(defaultBtcdRPCCertFile)
+ if err != nil {
+ fmt.Println("Couldn't read RPC cert: ", err.Error())
+ return
+ }
+
+ conf := rpcclient.ConnConfig{
+ Host: "127.0.0.1:18334",
+ Endpoint: "ws",
+ User: "kek",
+ Pass: "kek",
+ Certificates: cert,
+ }
+ client, err := rpcclient.New(&conf, nil)
+ if err != nil {
+ fmt.Println("Couldn't create a new client: ", err.Error())
+ return
+ }
+
+ var testBlockIndex int
+ for height := 0; testBlockIndex < len(testBlockHeights); height++ {
+ blockHash, err := client.GetBlockHash(int64(height))
+ if err != nil {
+ fmt.Println("Couldn't get block hash: ", err.Error())
+ return
+ }
+
+ block, err := client.GetBlock(blockHash)
+ if err != nil {
+ fmt.Println("Couldn't get block hash: ", err.Error())
+ return
+ }
+
+ var blockBuf bytes.Buffer
+ err = block.Serialize(&blockBuf)
+ if err != nil {
+ fmt.Println("Error serializing block to buffer: ", err.Error())
+ return
+ }
+ blockBytes := blockBuf.Bytes()
+
+ prevOutputScripts, err := fetchPrevOutputScripts(client, block)
+ if err != nil {
+ fmt.Println("Couldn't fetch prev output scipts: ", err)
+ return
+ }
+
+ basicFilter, err := builder.BuildBasicFilter(block, prevOutputScripts)
+ if err != nil {
+ fmt.Println("Error generating basic filter: ", err.Error())
+ return
+ }
+ basicHeader, err := builder.MakeHeaderForFilter(basicFilter, prevBasicHeader)
+ if err != nil {
+ fmt.Println("Error generating header for filter: ", err.Error())
+ return
+ }
+
+ // We'll now ensure that we've constructed the same filter as
+ // the chain server we're fetching blocks form.
+ filter, err := client.GetCFilter(
+ blockHash, wire.GCSFilterRegular,
+ )
+ if err != nil {
+ fmt.Println("Error getting basic filter: ",
+ err.Error())
+ return
+ }
+
+ nBytes, err := basicFilter.NBytes()
+ if err != nil {
+ fmt.Println("Couldn't get NBytes(): ", err)
+ return
+ }
+ if !bytes.Equal(filter.Data, nBytes) {
+ // Don't error on empty filters
+ fmt.Printf("basic filter doesn't match: generated "+
+ "%x, rpc returns %x, block %v", nBytes,
+ filter.Data, spew.Sdump(block))
+ return
+ }
+
+ header, err := client.GetCFilterHeader(
+ blockHash, wire.GCSFilterRegular,
+ )
+ if err != nil {
+ fmt.Println("Error getting basic header: ", err.Error())
+ return
+ }
+ if !bytes.Equal(header.PrevFilterHeader[:], basicHeader[:]) {
+ fmt.Println("Basic header doesn't match!")
+ return
+ }
+
+ if height%1000 == 0 {
+ fmt.Printf("Verified height %v against server\n", height)
+ }
+
+ if uint32(height) == testBlockHeights[testBlockIndex].height {
+ var bfBytes []byte
+ bfBytes, err = basicFilter.NBytes()
+ if err != nil {
+ fmt.Println("Couldn't get NBytes(): ", err)
+ return
+ }
+
+ prevScriptStrings := make([]string, len(prevOutputScripts))
+ for i, prevScript := range prevOutputScripts {
+ prevScriptStrings[i] = hex.EncodeToString(prevScript)
+ }
+
+ row := []interface{}{
+ height,
+ blockHash.String(),
+ hex.EncodeToString(blockBytes),
+ prevScriptStrings,
+ prevBasicHeader.String(),
+ hex.EncodeToString(bfBytes),
+ basicHeader.String(),
+ testBlockHeights[testBlockIndex].comment,
+ }
+ err = writerFile.WriteTestCase(row)
+ if err != nil {
+ fmt.Println("Error writing test case to output: ", err.Error())
+ return
+ }
+ }
+
+ prevBasicHeader = basicHeader
+
+ if uint32(height) == testBlockHeights[testBlockIndex].height {
+ testBlockIndex++
+ }
+ }
+}
diff --git a/bip-0158/go.mod b/bip-0158/go.mod
new file mode 100644
index 0000000..0e9bd6e
--- /dev/null
+++ b/bip-0158/go.mod
@@ -0,0 +1,7 @@
+module github.com/bitcoin/bips/bip-0158
+
+require (
+ github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d
+ github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803
+ github.com/davecgh/go-spew v1.1.1
+)
diff --git a/bip-0158/go.sum b/bip-0158/go.sum
new file mode 100644
index 0000000..013eb4b
--- /dev/null
+++ b/bip-0158/go.sum
@@ -0,0 +1,54 @@
+github.com/aead/siphash v1.0.1 h1:FwHfE/T45KPKYuuSAKyyvE+oPWcaQ+CUmFW0bPlM+kg=
+github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=
+github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d h1:xG8Pj6Y6J760xwETNmMzmlt38QSwz0BLp1cZ09g27uw=
+github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d/go.mod h1:d3C0AkH6BRcvO8T0UEPu53cnw4IbV63x1bEjildYhO0=
+github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo=
+github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
+github.com/btcsuite/btcutil v0.0.0-20180706230648-ab6388e0c60a/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
+github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803 h1:j3AgPKKZtZStM2nyhrDSLSYgT7YHrZKdSkq1OYeLjvM=
+github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
+github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd h1:R/opQEbFEy9JGkIguV40SvRY1uliPX8ifOvi6ICsFCw=
+github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg=
+github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd h1:qdGvebPBDuYDPGi1WCPjy1tGyMpmDK8IEapSsszn7HE=
+github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY=
+github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723 h1:ZA/jbKoGcVAnER6pCHPEkGdZOV7U1oLUedErBHCUMs0=
+github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
+github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 h1:R8vQdOQdZ9Y3SkEwmHoWBmX1DNXhXZqlTpq6s4tyJGc=
+github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=
+github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=
+github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
+github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
+github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ=
+github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23 h1:FOOIBWrEkLgmlgGfMuZT83xIwfPDxEI2OHu6xUmJMFE=
+github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
+github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs=
+github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU=
+github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44 h1:9lP3x0pW80sDI6t1UMSLA4to18W7R7imwAI/sWS9S8Q=
+golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/net v0.0.0-20180906233101-161cd47e91fd h1:nTDtHvHSdCn1m6ITfMRqtOd/9+7a3s8RBNOZ3eYZzJA=
+golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e h1:o3PsSEY8E4eXWkXrIP9YJALUkVZqzHJT5DOasTyn8Vs=
+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
+gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
+gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/bip-0158/testnet-19.json b/bip-0158/testnet-19.json
new file mode 100644
index 0000000..8945296
--- /dev/null
+++ b/bip-0158/testnet-19.json
@@ -0,0 +1,13 @@
+[
+["Block Height,Block Hash,Block,[Prev Output Scripts for Block],Previous Basic Header,Basic Filter,Basic Header,Notes"],
+[0,"000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943","0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4adae5494dffff001d1aa4ae180101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000",[],"0000000000000000000000000000000000000000000000000000000000000000","019dfca8","21584579b7eb08997773e5aeff3a7f932700042d0ed2a6129012b7d7ae81b750","Genesis block"],
+[2,"000000006c02c8ea6e4ff69651f7fcde348fb9d557a06e6957b65552002a7820","0100000006128e87be8b1b4dea47a7247d5528d2702c96826c7a648497e773b800000000e241352e3bec0a95a6217e10c3abb54adfa05abb12c126695595580fb92e222032e7494dffff001d00d235340101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0e0432e7494d010e062f503253482fffffffff0100f2052a010000002321038a7f6ef1c8ca0c588aa53fa860128077c9e6c11e6830f4d7ee4e763a56b7718fac00000000",[],"d7bdac13a59d745b1add0d2ce852f1a0442e8945fc1bf3848d3cbffd88c24fe1","0174a170","186afd11ef2b5e7e3504f2e8cbf8df28a1fd251fe53d60dff8b1467d1b386cf0",""],
+[3,"000000008b896e272758da5297bcd98fdc6d97c9b765ecec401e286dc1fdbe10","0100000020782a005255b657696ea057d5b98f34defcf75196f64f6eeac8026c0000000041ba5afc532aae03151b8aa87b65e1594f97504a768e010c98c0add79216247186e7494dffff001d058dc2b60101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0e0486e7494d0151062f503253482fffffffff0100f2052a01000000232103f6d9ff4c12959445ca5549c811683bf9c88e637b222dd2e0311154c4c85cf423ac00000000",[],"186afd11ef2b5e7e3504f2e8cbf8df28a1fd251fe53d60dff8b1467d1b386cf0","016cf7a0","8d63aadf5ab7257cb6d2316a57b16f517bff1c6388f124ec4c04af1212729d2a",""],
+[15007,"0000000038c44c703bae0f98cdd6bf30922326340a5996cc692aaae8bacf47ad","0100000002394092aa378fe35d7e9ac79c869b975c4de4374cd75eb5484b0e1e00000000eb9b8670abd44ad6c55cee18e3020fb0c6519e7004b01a16e9164867531b67afc33bc94fffff001d123f10050101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0e04c33bc94f0115062f503253482fffffffff0100f2052a01000000232103f268e9ae07e0f8cb2f6e901d87c510d650b97230c0365b021df8f467363cafb1ac00000000",[],"18b5c2b0146d2d09d24fb00ff5b52bd0742f36c9e65527abdb9de30c027a4748","013c3710","07384b01311867949e0c046607c66b7a766d338474bb67f66c8ae9dbd454b20e","Tx has non-standard OP_RETURN output followed by opcodes"],
+[49291,"0000000018b07dca1b28b4b5a119f6d6e71698ce1ed96f143f54179ce177a19c","02000000abfaf47274223ca2fea22797e44498240e482cb4c2f2baea088962f800000000604b5b52c32305b15d7542071d8b04e750a547500005d4010727694b6e72a776e55d0d51ffff001d211806480201000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0d038bc0000102062f503253482fffffffff01a078072a01000000232102971dd6034ed0cf52450b608d196c07d6345184fcb14deb277a6b82d526a6163dac0000000001000000081cefd96060ecb1c4fbe675ad8a4f8bdc61d634c52b3a1c4116dee23749fe80ff000000009300493046022100866859c21f306538152e83f115bcfbf59ab4bb34887a88c03483a5dff9895f96022100a6dfd83caa609bf0516debc2bf65c3df91813a4842650a1858b3f61cfa8af249014730440220296d4b818bb037d0f83f9f7111665f49532dfdcbec1e6b784526e9ac4046eaa602204acf3a5cb2695e8404d80bf49ab04828bcbe6fc31d25a2844ced7a8d24afbdff01ffffffff1cefd96060ecb1c4fbe675ad8a4f8bdc61d634c52b3a1c4116dee23749fe80ff020000009400483045022100e87899175991aa008176cb553c6f2badbb5b741f328c9845fcab89f8b18cae2302200acce689896dc82933015e7230e5230d5cff8a1ffe82d334d60162ac2c5b0c9601493046022100994ad29d1e7b03e41731a4316e5f4992f0d9b6e2efc40a1ccd2c949b461175c502210099b69fdc2db00fbba214f16e286f6a49e2d8a0d5ffc6409d87796add475478d601ffffffff1e4a6d2d280ea06680d6cf8788ac90344a9c67cca9b06005bbd6d3f6945c8272010000009500493046022100a27400ba52fd842ce07398a1de102f710a10c5599545e6c95798934352c2e4df022100f6383b0b14c9f64b6718139f55b6b9494374755b86bae7d63f5d3e583b57255a01493046022100fdf543292f34e1eeb1703b264965339ec4a450ec47585009c606b3edbc5b617b022100a5fbb1c8de8aaaa582988cdb23622838e38de90bebcaab3928d949aa502a65d401ffffffff1e4a6d2d280ea06680d6cf8788ac90344a9c67cca9b06005bbd6d3f6945c8272020000009400493046022100ac626ac3051f875145b4fe4cfe089ea895aac73f65ab837b1ac30f5d875874fa022100bc03e79fa4b7eb707fb735b95ff6613ca33adeaf3a0607cdcead4cfd3b51729801483045022100b720b04a5c5e2f61b7df0fcf334ab6fea167b7aaede5695d3f7c6973496adbf1022043328c4cc1cdc3e5db7bb895ccc37133e960b2fd3ece98350f774596badb387201ffffffff23a8733e349c97d6cd90f520fdd084ba15ce0a395aad03cd51370602bb9e5db3010000004a00483045022100e8556b72c5e9c0da7371913a45861a61c5df434dfd962de7b23848e1a28c86ca02205d41ceda00136267281be0974be132ac4cda1459fe2090ce455619d8b91045e901ffffffff6856d609b881e875a5ee141c235e2a82f6b039f2b9babe82333677a5570285a6000000006a473044022040a1c631554b8b210fbdf2a73f191b2851afb51d5171fb53502a3a040a38d2c0022040d11cf6e7b41fe1b66c3d08f6ada1aee07a047cb77f242b8ecc63812c832c9a012102bcfad931b502761e452962a5976c79158a0f6d307ad31b739611dac6a297c256ffffffff6856d609b881e875a5ee141c235e2a82f6b039f2b9babe82333677a5570285a601000000930048304502205b109df098f7e932fbf71a45869c3f80323974a826ee2770789eae178a21bfc8022100c0e75615e53ee4b6e32b9bb5faa36ac539e9c05fa2ae6b6de5d09c08455c8b9601483045022009fb7d27375c47bea23b24818634df6a54ecf72d52e0c1268fb2a2c84f1885de022100e0ed4f15d62e7f537da0d0f1863498f9c7c0c0a4e00e4679588c8d1a9eb20bb801ffffffffa563c3722b7b39481836d5edfc1461f97335d5d1e9a23ade13680d0e2c1c371f030000006c493046022100ecc38ae2b1565643dc3c0dad5e961a5f0ea09cab28d024f92fa05c922924157e022100ebc166edf6fbe4004c72bfe8cf40130263f98ddff728c8e67b113dbd621906a601210211a4ed241174708c07206601b44a4c1c29e5ad8b1f731c50ca7e1d4b2a06dc1fffffffff02d0223a00000000001976a91445db0b779c0b9fa207f12a8218c94fc77aff504588ac80f0fa02000000000000000000",["5221033423007d8f263819a2e42becaaf5b06f34cb09919e06304349d950668209eaed21021d69e2b68c3960903b702af7829fadcd80bd89b158150c85c4a75b2c8cb9c39452ae","52210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821021d69e2b68c3960903b702af7829fadcd80bd89b158150c85c4a75b2c8cb9c39452ae","522102a7ae1e0971fc1689bd66d2a7296da3a1662fd21a53c9e38979e0f090a375c12d21022adb62335f41eb4e27056ac37d462cda5ad783fa8e0e526ed79c752475db285d52ae","52210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821022adb62335f41eb4e27056ac37d462cda5ad783fa8e0e526ed79c752475db285d52ae","512103b9d1d0e2b4355ec3cdef7c11a5c0beff9e8b8d8372ab4b4e0aaf30e80173001951ae","76a9149144761ebaccd5b4bbdc2a35453585b5637b2f8588ac","522103f1848b40621c5d48471d9784c8174ca060555891ace6d2b03c58eece946b1a9121020ee5d32b54d429c152fdc7b1db84f2074b0564d35400d89d11870f9273ec140c52ae","76a914f4fa1cc7de742d135ea82c17adf0bb9cf5f4fb8388ac"],"ed47705334f4643892ca46396eb3f4196a5e30880589e4009ef38eae895d4a13","0afbc2920af1b027f31f87b592276eb4c32094bb4d3697021b4c6380","b6d98692cec5145f67585f3434ec3c2b3030182e1cb3ec58b855c5c164dfaaa3","Tx pays to empty output script"],
+[180480,"00000000fd3ceb2404ff07a785c7fdcc76619edc8ed61bd25134eaa22084366a","020000006058aa080a655aa991a444bd7d1f2defd9a3bbe68aabb69030cf3b4e00000000d2e826bfd7ef0beaa891a7eedbc92cd6a544a6cb61c7bdaa436762eb2123ef9790f5f552ffff001d0002c90f0501000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0e0300c102024608062f503253482fffffffff01c0c6072a01000000232102e769e60137a4df6b0df8ebd387cca44c4c57ae74cc0114a8e8317c8f3bfd85e9ac00000000010000000381a0802911a01ffb025c4dea0bc77963e8c1bb46313b71164c53f72f37fe5248010000000151ffffffffc904b267833d215e2128bd9575242232ac2bc311550c7fc1f0ef6f264b40d14c010000000151ffffffffdf0915666649dba81886519c531649b7b02180b4af67d6885e871299e9d5f775000000000151ffffffff0180817dcb00000000232103bb52138972c48a132fc1f637858c5189607dd0f7fe40c4f20f6ad65f2d389ba4ac0000000001000000018da38b434fba82d66052af74fc5e4e94301b114d9bc03f819dc876398404c8b4010000006c493046022100fe738b7580dc5fb5168e51fc61b5aed211125eb71068031009a22d9bbad752c5022100be5086baa384d40bcab0fa586e4f728397388d86e18b66cc417dc4f7fa4f9878012103f233299455134caa2687bdf15cb0becdfb03bd0ff2ff38e65ec6b7834295c34fffffffff022ebc1400000000001976a9147779b7fba1c1e06b717069b80ca170e8b04458a488ac9879c40f000000001976a9142a0307cd925dbb66b534c4db33003dd18c57015788ac0000000001000000026139a62e3422a602de36c873a225c1d3ca5aeee598539ceecb9f0dc8d1ad0f83010000006b483045022100ad9f32b4a0a2ddc19b5a74eba78123e57616f1b3cfd72ce68c03ea35a3dda1f002200dbd22aa6da17213df5e70dfc3b2611d40f70c98ed9626aa5e2cde9d97461f0a012103ddb295d2f1e8319187738fb4b230fdd9aa29d0e01647f69f6d770b9ab24eea90ffffffff983c82c87cf020040d671956525014d5c2b28c6d948c85e1a522362c0059eeae010000006b4830450221009ca544274c786d30a5d5d25e17759201ea16d3aedddf0b9e9721246f7ef6b32e02202cfa5564b6e87dfd9fd98957820e4d4e6238baeb0f65fe305d91506bb13f5f4f012103c99113deac0d5d044e3ac0346abc02501542af8c8d3759f1382c72ff84e704f7ffffffff02c0c62d00000000001976a914ae19d27efe12f5a886dc79af37ad6805db6f922d88ac70ce2000000000001976a9143b8d051d37a07ea1042067e93efe63dbf73920b988ac000000000100000002be566e8cd9933f0c75c4a82c027f7d0c544d5c101d0607ef6ae5d07b98e7f1dc000000006b483045022036a8cdfd5ea7ebc06c2bfb6e4f942bbf9a1caeded41680d11a3a9f5d8284abad022100cacb92a5be3f39e8bc14db1710910ef7b395fa1e18f45d41c28d914fcdde33be012102bf59abf110b5131fae0a3ce1ec379329b4c896a6ae5d443edb68529cc2bc7816ffffffff96cf67645b76ceb23fe922874847456a15feee1655082ff32d25a6bf2c0dfc90000000006a47304402203471ca2001784a5ac0abab583581f2613523da47ec5f53df833c117b5abd81500220618a2847723d57324f2984678db556dbca1a72230fc7e39df04c2239942ba942012102925c9794fd7bb9f8b29e207d5fc491b1150135a21f505041858889fa4edf436fffffffff026c840f00000000001976a914797fb8777d7991d8284d88bfd421ce520f0f843188ac00ca9a3b000000001976a9146d10f3f592699265d10b106eda37c3ce793f7a8588ac00000000",["","","","76a9142903b138c24be9e070b3e73ec495d77a204615e788ac","76a91433a1941fd9a37b9821d376f5a51bd4b52fa50e2888ac","76a914e4374e8155d0865742ca12b8d4d14d41b57d682f88ac","76a914001fa7459a6cfc64bdc178ba7e7a21603bb2568f88ac","76a914f6039952bc2b307aeec5371bfb96b66078ec17f688ac"],"d34ef98386f413769502808d4bac5f20f8dfd5bffc9eedafaa71de0eb1f01489","0db414c859a07e8205876354a210a75042d0463404913d61a8e068e58a3ae2aa080026","c582d51c0ca365e3fcf36c51cb646d7f83a67e867cb4743fd2128e3e022b700c","Tx spends from empty output script"],
+[926485,"000000000000015d6077a411a8f5cc95caf775ccf11c54e27df75ce58d187313","0000002060bbab0edbf3ef8a49608ee326f8fd75c473b7e3982095e2d100000000000000c30134f8c9b6d2470488d7a67a888f6fa12f8692e0c3411fbfb92f0f68f67eedae03ca57ef13021acc22dc4105010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff2f0315230e0004ae03ca57043e3d1e1d0c8796bf579aef0c0000000000122f4e696e6a61506f6f6c2f5345475749542fffffffff038427a112000000001976a914876fbb82ec05caa6af7a3b5e5a983aae6c6cc6d688ac0000000000000000266a24aa21a9ed5c748e121c0fe146d973a4ac26fa4a68b0549d46ee22d25f50a5e46fe1b377ee00000000000000002952534b424c4f434b3acd16772ad61a3c5f00287480b720f6035d5e54c9efc71be94bb5e3727f10909001200000000000000000000000000000000000000000000000000000000000000000000000000100000000010145310e878941a1b2bc2d33797ee4d89d95eaaf2e13488063a2aa9a74490f510a0100000023220020b6744de4f6ec63cc92f7c220cdefeeb1b1bed2b66c8e5706d80ec247d37e65a1ffffffff01002d3101000000001976a9143ebc40e411ed3c76f86711507ab952300890397288ac0400473044022001dd489a5d4e2fbd8a3ade27177f6b49296ba7695c40dbbe650ea83f106415fd02200b23a0602d8ff1bdf79dee118205fc7e9b40672bf31563e5741feb53fb86388501483045022100f88f040e90cc5dc6c6189d04718376ac19ed996bf9e4a3c29c3718d90ffd27180220761711f16c9e3a44f71aab55cbc0634907a1fa8bb635d971a9a01d368727bea10169522103b3623117e988b76aaabe3d63f56a4fc88b228a71e64c4cc551d1204822fe85cb2103dd823066e096f72ed617a41d3ca56717db335b1ea47a1b4c5c9dbdd0963acba621033d7c89bd9da29fa8d44db7906a9778b53121f72191184a9fee785c39180e4be153ae00000000010000000120925534261de4dcebb1ed5ab1b62bfe7a3ef968fb111dc2c910adfebc6e3bdf010000006b483045022100f50198f5ae66211a4f485190abe4dc7accdabe3bc214ebc9ea7069b97097d46e0220316a70a03014887086e335fc1b48358d46cd6bdc9af3b57c109c94af76fc915101210316cff587a01a2736d5e12e53551b18d73780b83c3bfb4fcf209c869b11b6415effffffff0220a10700000000001976a91450333046115eaa0ac9e0216565f945070e44573988ac2e7cd01a000000001976a914c01a7ca16b47be50cbdbc60724f701d52d75156688ac00000000010000000203a25f58630d7a1ea52550365fd2156683f56daf6ca73a4b4bbd097e66516322010000006a47304402204efc3d70e4ca3049c2a425025edf22d5ca355f9ec899dbfbbeeb2268533a0f2b02204780d3739653035af4814ea52e1396d021953f948c29754edd0ee537364603dc012103f7a897e4dbecab2264b21917f90664ea8256189ea725d28740cf7ba5d85b5763ffffffff03a25f58630d7a1ea52550365fd2156683f56daf6ca73a4b4bbd097e66516322000000006a47304402202d96defdc5b4af71d6ba28c9a6042c2d5ee7bc6de565d4db84ef517445626e03022022da80320e9e489c8f41b74833dfb6a54a4eb5087cdb46eb663eef0b25caa526012103f7a897e4dbecab2264b21917f90664ea8256189ea725d28740cf7ba5d85b5763ffffffff0200e1f5050000000017a914b7e6f7ff8658b2d1fb107e3d7be7af4742e6b1b3876f88fc00000000001976a914913bcc2be49cb534c20474c4dee1e9c4c317e7eb88ac0000000001000000043ffd60d3818431c495b89be84afac205d5d1ed663009291c560758bbd0a66df5010000006b483045022100f344607de9df42049688dcae8ff1db34c0c7cd25ec05516e30d2bc8f12ac9b2f022060b648f6a21745ea6d9782e17bcc4277b5808326488a1f40d41e125879723d3a012103f7a897e4dbecab2264b21917f90664ea8256189ea725d28740cf7ba5d85b5763ffffffffa5379401cce30f84731ef1ba65ce27edf2cc7ce57704507ebe8714aa16a96b92010000006a473044022020c37a63bf4d7f564c2192528709b6a38ab8271bd96898c6c2e335e5208661580220435c6f1ad4d9305d2c0a818b2feb5e45d443f2f162c0f61953a14d097fd07064012103f7a897e4dbecab2264b21917f90664ea8256189ea725d28740cf7ba5d85b5763ffffffff70e731e193235ff12c3184510895731a099112ffca4b00246c60003c40f843ce000000006a473044022053760f74c29a879e30a17b5f03a5bb057a5751a39f86fa6ecdedc36a1b7db04c022041d41c9b95f00d2d10a0373322a9025dba66c942196bc9d8adeb0e12d3024728012103f7a897e4dbecab2264b21917f90664ea8256189ea725d28740cf7ba5d85b5763ffffffff66b7a71b3e50379c8e85fc18fe3f1a408fc985f257036c34702ba205cef09f6f000000006a4730440220499bf9e2db3db6e930228d0661395f65431acae466634d098612fd80b08459ee022040e069fc9e3c60009f521cef54c38aadbd1251aee37940e6018aadb10f194d6a012103f7a897e4dbecab2264b21917f90664ea8256189ea725d28740cf7ba5d85b5763ffffffff0200e1f5050000000017a9148fc37ad460fdfbd2b44fe446f6e3071a4f64faa6878f447f0b000000001976a914913bcc2be49cb534c20474c4dee1e9c4c317e7eb88ac00000000",["a914feb8a29635c56d9cd913122f90678756bf23887687","76a914c01a7ca16b47be50cbdbc60724f701d52d75156688ac","76a914913bcc2be49cb534c20474c4dee1e9c4c317e7eb88ac","76a914913bcc2be49cb534c20474c4dee1e9c4c317e7eb88ac","76a914913bcc2be49cb534c20474c4dee1e9c4c317e7eb88ac","76a914913bcc2be49cb534c20474c4dee1e9c4c317e7eb88ac","76a914913bcc2be49cb534c20474c4dee1e9c4c317e7eb88ac","76a914913bcc2be49cb534c20474c4dee1e9c4c317e7eb88ac"],"8f13b9a9c85611635b47906c3053ac53cfcec7211455d4cb0d63dc9acc13d472","09027acea61b6cc3fb33f5d52f7d088a6b2f75d234e89ca800","546c574a0472144bcaf9b6aeabf26372ad87c7af7d1ee0dbfae5e099abeae49c","Duplicate pushdata 913bcc2be49cb534c20474c4dee1e9c4c317e7eb"],
+[987876,"0000000000000c00901f2049055e2a437c819d79a3d54fd63e6af796cd7b8a79","000000202694f74969fdb542090e95a56bc8aa2d646e27033850e32f1c5f000000000000f7e53676b3f12d5beb524ed617f2d25f5a93b5f4f52c1ba2678260d72712f8dd0a6dfe5740257e1a4b1768960101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff1603e4120ff9c30a1c216900002f424d4920546573742fffffff0001205fa012000000001e76a914c486de584a735ec2f22da7cd9681614681f92173d83d0aa68688ac00000000",[],"fe4d230dbb0f4fec9bed23a5283e08baf996e3f32b93f52c7de1f641ddfd04ad","010c0b40","0965a544743bbfa36f254446e75630c09404b3d164a261892372977538928ed5","Coinbase tx has unparseable output script"],
+[1263442,"000000006f27ddfe1dd680044a34548f41bed47eba9e6f0b310da21423bc5f33","000000201c8d1a529c39a396db2db234d5ec152fa651a2872966daccbde028b400000000083f14492679151dbfaa1a825ef4c18518e780c1f91044180280a7d33f4a98ff5f45765aaddc001d38333b9a02010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff230352471300fe5f45765afe94690a000963676d696e6572343208000000000000000000ffffffff024423a804000000001976a914f2c25ac3d59f3d674b1d1d0a25c27339aaac0ba688ac0000000000000000266a24aa21a9edcb26cb3052426b9ebb4d19c819ef87c19677bbf3a7c46ef0855bd1b2abe83491012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101d20978463906ba4ff5e7192494b88dd5eb0de85d900ab253af909106faa22cc5010000000004000000014777ff000000000016001446c29eabe8208a33aa1023c741fa79aa92e881ff0347304402207d7ca96134f2bcfdd6b536536fdd39ad17793632016936f777ebb32c22943fda02206014d2fb8a6aa58279797f861042ba604ebd2f8f61e5bddbd9d3be5a245047b201004b632103eeaeba7ce5dc2470221e9517fb498e8d6bd4e73b85b8be655196972eb9ccd5566754b2752103a40b74d43df244799d041f32ce1ad515a6cd99501701540e38750d883ae21d3a68ac00000000",["002027a5000c7917f785d8fc6e5a55adfca8717ecb973ebb7743849ff956d896a7ed"],"31d66d516a9eda7de865df29f6ef6cb8e4bf9309e5dac899968a9a62a5df61e3","0385acb4f0fe889ef0","4e6d564c2a2452065c205dd7eb2791124e0c4e0dbb064c410c24968572589dec","Includes witness data"],
+[1414221,"0000000000000027b2b3b3381f114f674f481544ff2be37ae3788d7e078383b1","000000204ea88307a7959d8207968f152bedca5a93aefab253f1fb2cfb032a400000000070cebb14ec6dbc27a9dfd066d9849a4d3bac5f674665f73a5fe1de01a022a0c851fda85bf05f4c19a779d1450102000000010000000000000000000000000000000000000000000000000000000000000000ffffffff18034d94154d696e6572476174653030310d000000f238f401ffffffff01c817a804000000000000000000",[],"5e5e12d90693c8e936f01847859404c67482439681928353ca1296982042864e","00","021e8882ef5a0ed932edeebbecfeda1d7ce528ec7b3daa27641acf1189d7b5dc","Empty data"]
+]
diff --git a/bip-0159.mediawiki b/bip-0159.mediawiki
new file mode 100644
index 0000000..0226692
--- /dev/null
+++ b/bip-0159.mediawiki
@@ -0,0 +1,64 @@
+<pre>
+ BIP: 159
+ Layer: Peer Services
+ Title: NODE_NETWORK_LIMITED service bit
+ Author: Jonas Schnelli <dev@jonasschnelli.ch>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0159
+ Status: Draft
+ Type: Standards Track
+ Created: 2017-05-11
+ License: BSD-2-Clause
+</pre>
+
+== Abstract ==
+
+Define a service bit that allow pruned peers to signal their limited services
+
+==Motivation==
+
+Pruned peers can offer the same services as traditional peer except of serving all historical blocks.
+Bitcoin right now only offers the NODE_NETWORK service bit which indicates that a peer can serve
+all historical blocks.
+# Pruned peers can relay blocks, headers, transactions, addresses and can serve a limited number of historical blocks, thus they should have a way how to announce their service(s)
+# Peers no longer in initial block download should consider connecting some of its outbound connections to pruned peers to allow other peers to bootstrap from non-pruned peers
+
+== Specification ==
+
+=== New service bit ===
+
+This BIP proposes a new service bit
+
+{|class="wikitable"
+|-
+| NODE_NETWORK_LIMITED || bit 10 (0x400) || If signaled, the peer <I>MUST</I> be capable of serving at least the last 288 blocks (~2 days).
+|}
+
+A safety buffer of 144 blocks to handle chain reorganizations <I>SHOULD</I> be taken into account when connecting to a peer signaling the <code>NODE_NETWORK_LIMITED</code> service bit.
+
+=== Address relay ===
+
+Full nodes following this BIP <I>SHOULD</I> relay address/services (<code>addr</code> message) from peers they would connect to (including peers signaling <code>NODE_NETWORK_LIMITED</code>).
+
+=== Counter-measures for peer fingerprinting ===
+
+Peers may have different prune depths (depending on the peers configuration, disk space, etc.) which can result in a fingerprinting weakness (finding the prune depth through getdata requests). NODE_NETWORK_LIMITED supporting peers <I>SHOULD</I> avoid leaking the prune depth and therefore not serve blocks deeper than the signaled <code>NODE_NETWORK_LIMITED</code> threshold (288 blocks).
+
+=== Risks ===
+
+Pruned peers following this BIP may consume more outbound bandwidth.
+
+Light clients (and such) who are not checking the <code>nServiceFlags</code> (service bits) from a relayed <code>addr</code>-message may unwillingly connect to a pruned peer and ask for (filtered) blocks at a depth below their pruned depth. Light clients should therefore check the service bits (and eventually connect to peers signaling <code>NODE_NETWORK_LIMITED</code> if they require [filtered] blocks around the tip). Light clients obtaining peer IPs though DNS seed should use the DNS filtering option.
+
+== Compatibility ==
+
+This proposal is backward compatible.
+
+== Reference implementation ==
+
+* https://github.com/bitcoin/bitcoin/pull/11740 (signaling)
+* https://github.com/bitcoin/bitcoin/pull/10387 (connection and relay)
+
+== Copyright ==
+
+This BIP is licensed under the 2-clause BSD license.
diff --git a/bip-0173.mediawiki b/bip-0173.mediawiki
index af2516d..c3ee060 100644
--- a/bip-0173.mediawiki
+++ b/bip-0173.mediawiki
@@ -6,9 +6,9 @@
Greg Maxwell <greg@xiph.org>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0173
- Status: Draft
+ Status: Final
Type: Informational
- Created: 2016-03-20
+ Created: 2017-03-20
License: BSD-2-Clause
Replaces: 142
</pre>
@@ -76,7 +76,7 @@ increase, but that does not matter when copy-pasting addresses.</ref> format cal
A Bech32<ref>'''Why call it Bech32?''' "Bech" contains the characters BCH (the error
detection algorithm used) and sounds a bit like "base".</ref> string is at most 90 characters long and consists of:
-* The '''human-readable part''', which is intended to convey the type of data or anything else that is relevant for the reader. Its validity (including the used set of characters) is application specific, but restricted to ASCII characters with values in the range 33-126.
+* The '''human-readable part''', which is intended to convey the type of data, or anything else that is relevant to the reader. This part MUST contain 1 to 83 US-ASCII characters, with each character having a value in the range [33-126]. HRP validity may be further restricted by specific applications.
* The '''separator''', which is always "1". In case "1" is allowed inside the human-readable part, the last one in the string is the separator<ref>'''Why include a separator in addresses?''' That way the human-readable
part is unambiguously separated from the data part, avoiding potential
collisions with other human-readable parts that share a prefix. It also
@@ -153,7 +153,7 @@ guarantees detection of '''any error affecting at most 4 characters'''
and has less than a 1 in 10<sup>9</sup> chance of failing to detect more
errors. More details about the properties can be found in the
Checksum Design appendix. The human-readable part is processed by first
-feeding the higher bits of each character's ASCII value into the
+feeding the higher bits of each character's US-ASCII value into the
checksum calculation followed by a zero and then the lower bits of each<ref>'''Why are the high bits of the human-readable part processed first?'''
This results in the actually checksummed data being ''[high hrp] 0 [low hrp] [data]''. This means that under the assumption that errors to the
human readable part only change the low 5 bits (like changing an alphabetical character into another), errors are restricted to the ''[low hrp] [data]''
@@ -182,11 +182,15 @@ to make.
'''Uppercase/lowercase'''
-Decoders MUST accept both uppercase and lowercase strings, but
-not mixed case. The lowercase form is used when determining a character's
-value for checksum purposes. For presentation, lowercase is usually
-preferable, but inside QR codes uppercase SHOULD be used, as those permit
-the use of
+The lowercase form is used when determining a character's value for checksum purposes.
+
+Encoders MUST always output an all lowercase Bech32 string.
+If an uppercase version of the encoding result is desired, (e.g.- for presentation purposes, or QR code use),
+then an uppercasing procedure can be performed external to the encoding process.
+
+Decoders MUST NOT accept strings where some characters are uppercase and some are lowercase (such strings are referred to as mixed case strings).
+
+For presentation, lowercase is usually preferable, but inside QR codes uppercase SHOULD be used, as those permit the use of
''[http://www.thonky.com/qr-code-tutorial/alphanumeric-mode-encoding alphanumeric mode]'', which is 45% more compact than the normal
''[http://www.thonky.com/qr-code-tutorial/byte-mode-encoding byte mode]''.
@@ -204,8 +208,8 @@ be of the same length as the mainnet counterpart (to simplify
implementations' assumptions about lengths), but still be visually
distinct.</ref> for testnet.
* The data-part values:
-** 1 value: the witness version
-** A conversion of the the 2-to-40-byte witness program (as defined by [https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki BIP141]) to base32:
+** 1 byte: the witness version
+** A conversion of the 2-to-40-byte witness program (as defined by [https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki BIP141]) to base32:
*** Start with the bits of the witness program, most significant bit per byte first.
*** Re-arrange those bits into groups of 5, and pad with zeroes at the end if needed.
*** Translate those bits to characters using the table above.
@@ -227,6 +231,12 @@ program is neither 20 nor 32 bytes, the script must fail.''
As a result of the previous rules, addresses are always between 14 and 74 characters long, and their length modulo 8 cannot be 0, 3, or 5.
Version 0 witness addresses are always 42 or 62 characters, but implementations MUST allow the use of any version.
+Implementations should take special care when converting the address to a
+scriptPubkey, where witness version ''n'' is stored as ''OP_n''. OP_0 is
+encoded as 0x00, but OP_1 through OP_16 are encoded as 0x51 though 0x60
+(81 to 96 in decimal). If a bech32 address is converted to an incorrect
+scriptPubKey the result will likely be either unspendable or insecure.
+
===Compatibility===
Only new software will be able to use these addresses, and only for
@@ -241,32 +251,62 @@ P2PKH addresses can be used.
* Reference encoder and decoder:
** [https://github.com/sipa/bech32/tree/master/ref/c For C]
+** [https://github.com/sipa/bech32/tree/master/ref/c++ For C++]
** [https://github.com/sipa/bech32/tree/master/ref/javascript For JavaScript]
+** [https://github.com/sipa/bech32/tree/master/ref/go For Go]
** [https://github.com/sipa/bech32/tree/master/ref/python For Python]
** [https://github.com/sipa/bech32/tree/master/ref/haskell For Haskell]
+** [https://github.com/sipa/bech32/tree/master/ref/ruby For Ruby]
** [https://github.com/sipa/bech32/tree/master/ref/rust For Rust]
* Fancy decoder that localizes errors:
** [https://github.com/sipa/bech32/tree/master/ecc/javascript For JavaScript] ([http://bitcoin.sipa.be/bech32/demo/demo.html demo website])
+==Registered Human-readable Prefixes==
+
+SatoshiLabs maintains a full list of registered human-readable parts for other cryptocurrencies:
+
+[https://github.com/satoshilabs/slips/blob/master/slip-0173.md SLIP-0173 : Registered human-readable parts for BIP-0173]
+
==Appendices==
===Test vectors===
-The following strings have a valid Bech32 checksum.
+The following strings are valid Bech32:
* <tt>A12UEL5L</tt>
+* <tt>a12uel5l</tt>
* <tt>an83characterlonghumanreadablepartthatcontainsthenumber1andtheexcludedcharactersbio1tt5tgs</tt>
* <tt>abcdef1qpzry9x8gf2tvdw0s3jn54khce6mua7lmqqqxw</tt>
* <tt>11qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqc8247j</tt>
* <tt>split1checkupstagehandshakeupstreamerranterredcaperred2y9e3w</tt>
+* <tt>?1ezyfcl</tt> WARNING: During conversion to US-ASCII some encoders may set unmappable characters to a valid US-ASCII character, such as '?'. For example:
+
+<pre>
+>>> bech32_encode('\x80'.encode('ascii', 'replace').decode('ascii'), [])
+'?1ezyfcl'
+</pre>
+
+The following string are not valid Bech32 (with reason for invalidity):
+* 0x20 + <tt>1nwldj5</tt>: HRP character out of range
+* 0x7F + <tt>1axkwrx</tt>: HRP character out of range
+* 0x80 + <tt>1eym55h</tt>: HRP character out of range
+* <tt>an84characterslonghumanreadablepartthatcontainsthenumber1andtheexcludedcharactersbio1569pvx</tt>: overall max length exceeded
+* <tt>pzry9x0s0muk</tt>: No separator character
+* <tt>1pzry9x0s0muk</tt>: Empty HRP
+* <tt>x1b4n0q5v</tt>: Invalid data character
+* <tt>li1dgmt3</tt>: Too short checksum
+* <tt>de1lg7wt</tt> + 0xFF: Invalid character in checksum
+* <tt>A1G7SGD8</tt>: checksum calculated with uppercase form of HRP
+* <tt>10a06t8</tt>: empty HRP
+* <tt>1qzzfhee</tt>: empty HRP
The following list gives valid segwit addresses and the scriptPubKey that they
translate to in hex.
* <tt>BC1QW508D6QEJXTDG4Y5R3ZARVARY0C5XW7KV8F3T4</tt>: <tt>0014751e76e8199196d454941c45d1b3a323f1433bd6</tt>
* <tt>tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sl5k7</tt>: <tt>00201863143c14c5166804bd19203356da136c985678cd4d27a1b8c6329604903262</tt>
-* <tt>bc1pw508d6qejxtdg4y5r3zarvary0c5xw7kw508d6qejxtdg4y5r3zarvary0c5xw7k7grplx</tt>: <tt>8128751e76e8199196d454941c45d1b3a323f1433bd6751e76e8199196d454941c45d1b3a323f1433bd6</tt>
-* <tt>BC1SW50QA3JX3S</tt>: <tt>9002751e</tt>
-* <tt>bc1zw508d6qejxtdg4y5r3zarvaryvg6kdaj</tt>: <tt>8210751e76e8199196d454941c45d1b3a323</tt>
+* <tt>bc1pw508d6qejxtdg4y5r3zarvary0c5xw7kw508d6qejxtdg4y5r3zarvary0c5xw7k7grplx</tt>: <tt>5128751e76e8199196d454941c45d1b3a323f1433bd6751e76e8199196d454941c45d1b3a323f1433bd6</tt>
+* <tt>BC1SW50QA3JX3S</tt>: <tt>6002751e</tt>
+* <tt>bc1zw508d6qejxtdg4y5r3zarvaryvg6kdaj</tt>: <tt>5210751e76e8199196d454941c45d1b3a323</tt>
* <tt>tb1qqqqqp399et2xygdj5xreqhjjvcmzhxw4aywxecjdzew6hylgvsesrxh6hy</tt>: <tt>0020000000c4a5cad46221b2a187905e5266362b99d5e91c6ce24d165dab93e86433</tt>
The following list gives invalid segwit addresses and the reason for
@@ -278,8 +318,9 @@ their invalidity.
* <tt>bc10w508d6qejxtdg4y5r3zarvary0c5xw7kw508d6qejxtdg4y5r3zarvary0c5xw7kw5rljs90</tt>: Invalid program length
* <tt>BC1QR508D6QEJXTDG4Y5R3ZARVARYV98GJ9P</tt>: Invalid program length for witness version 0 (per BIP141)
* <tt>tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sL5k7</tt>: Mixed case
-* <tt>tb1pw508d6qejxtdg4y5r3zarqfsj6c3</tt>: zero padding of more than 4 bits
+* <tt>bc1zw508d6qejxtdg4y5r3zarvaryvqyzf3du</tt>: zero padding of more than 4 bits
* <tt>tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3pjxtptv</tt>: Non-zero padding in 8-to-5 conversion
+* <tt>bc1gmk9yu</tt>: Empty data section
===Checksum design===
diff --git a/bip-0174.mediawiki b/bip-0174.mediawiki
new file mode 100644
index 0000000..a6e2534
--- /dev/null
+++ b/bip-0174.mediawiki
@@ -0,0 +1,840 @@
+<pre>
+ BIP: 174
+ Layer: Applications
+ Title: Partially Signed Bitcoin Transaction Format
+ Author: Andrew Chow <achow101@gmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0174
+ Status: Proposed
+ Type: Standards Track
+ Created: 2017-07-12
+ License: BSD-2-Clause
+</pre>
+
+==Introduction==
+
+===Abstract===
+
+This document proposes a binary transaction format which contains the information
+necessary for a signer to produce signatures for the transaction and holds the
+signatures for an input while the input does not have a complete set of signatures.
+The signer can be offline as all necessary information will be provided in the
+transaction.
+
+===Copyright===
+
+This BIP is licensed under the 2-clause BSD license.
+
+===Motivation===
+
+Creating unsigned or partially signed transactions to be passed around to multiple
+signers is currently implementation dependent, making it hard for people who use
+different wallet software from being able to easily do so. One of the goals of this
+document is to create a standard and extensible format that can be used between clients to allow
+people to pass around the same transaction to sign and combine their signatures. The
+format is also designed to be easily extended for future use which is harder to do
+with existing transaction formats.
+
+Signing transactions also requires users to have access to the UTXOs being spent. This transaction
+format will allow offline signers such as air-gapped wallets and hardware wallets
+to be able to sign transactions without needing direct access to the UTXO set and without
+risk of being defrauded.
+
+==Specification==
+
+The Partially Signed Bitcoin Transaction (PSBT) format consists of key-value maps.
+Each map consists of a sequence of key-value records, terminated by a <tt>0x00</tt> byte <ref>'''Why
+is the separator here <tt>0x00</tt> instead of <tt>0xff</tt>?'''
+The separator here is used to distinguish between each chunk of data. A separator of 0x00 would mean that
+the unserializer can read it as a key length of 0, which would never occur with actual keys. It can thus
+be used as a separator and allow for easier unserializer implementation.</ref>.
+Each key-value pair must have a unique key within its scope; duplicates are not allowed. The format
+of a record is as follows:
+
+Note: <tt><..></tt> indicates that the data is prefixed by a compact size unsigned integer representing
+the length of that data. <tt>{..}</tt> indicates the raw data itself.
+
+<pre>
+<key>|<value>
+</pre>
+
+{| class="wikitable" style="width: auto; text-align: center; font-size: smaller; table-layout: fixed;"
+!Name
+!Type
+!Description
+|-
+| Key Length
+| Compact Size Unsigned Integer
+| Specify how long the key is
+|-
+| Key
+| byte[]
+| The Key itself
+|-
+| Value Length
+| Compact Size Unsigned Integer
+| Specify how long the value is
+|-
+| Value
+| byte[]
+| The Value itself
+|}
+
+The format of each key-value map is as follows:
+
+<pre>
+{key-value pair}|{key-value pair}|...|{0x00}
+</pre>
+
+{| class="wikitable" style="width: auto; text-align: center; font-size: smaller; table-layout: fixed;"
+!Field Size
+!Name
+!Type
+!Value
+!Description
+|-
+| 1+
+| Key-value pairs
+| Array of key-value pairs
+| varies
+| The key-value pairs.
+|-
+| 1
+| separator
+| char
+| <tt>0x00</tt>
+| Must be <tt>0x00</tt> at the end of the map.
+|}
+
+At the beginning of each key is a compact size unsigned integer representing the type.
+This compact size unsigned integer must be minimally encoded, i.e. if the value can be represented using one byte, it must be represented as one byte.
+For convenience, this BIP will specify types using their full serialization, so a multi-byte type will have it's full prefix and zero padding as necessary.
+There are global types, per-input types, and per-output types.
+
+The currently defined global types are as follows:
+
+* Type: Unsigned Transaction <tt>PSBT_GLOBAL_UNSIGNED_TX = 0x00</tt>
+** Key: None. The key must only contain the 1 byte type.
+*** <tt>{0x00}</tt>
+** Value: The transaction in network serialization. The scriptSigs and witnesses for each input must be empty. The transaction must be in the old serialization format (without witnesses). A PSBT must have a transaction, otherwise it is invalid.
+*** <tt>{transaction}</tt>
+** Note: Every PSBT must have a field with this type.
+
+* Type: Extended Public Key <tt>PSBT_GLOBAL_XPUB = 0x01</tt>
+** Key: The type followed by the 78 byte serialized extended public key as defined by BIP 32. Extended public keys are those that can be used to derive public keys used in the inputs and outputs of this transaction. It should be the public key at the highest hardened derivation index so that the unhardened child keys used in the transaction can be derived.
+*** <tt>{0x01}|{xpub}</tt>
+** Value: The master key fingerprint as defined by BIP 32 concatenated with the derivation path of the public key. The derivation path is represented as 32-bit little endian unsigned integer indexes concatenated with each other. The number of 32 bit unsigned integer indexes must match the depth provided in the extended public key.
+*** <tt>{master key fingerprint}|{32-bit uint}|...|{32-bit uint}</tt>
+
+* Type: Version Number <tt>PSBT_GLOBAL_VERSION = 0xFB</tt>
+** Key: None. The key must only contain the 1 byte type.
+*** <tt>{0xFB}</tt>
+** Value: The 32-bit little endian unsigned integer representing the version number of this PSBT. If ommitted, the version number is 0.
+*** <tt>{32-bit uint}</tt>
+
+* Type: Proprietary Use Type <tt>PSBT_GLOBAL_PROPRIETARY = 0xFC</tt>
+** Key: Variable length identifier prefix, followed by a subtype, followed by the key data itself.
+*** <tt>{0xFC}|<prefix>|{subtype}|{key data}</tt>
+** Value: Any value data as defined by the proprietary type user.
+*** <tt><data></tt>
+
+The currently defined per-input types are defined as follows:
+
+* Type: Non-Witness UTXO <tt>PSBT_IN_NON_WITNESS_UTXO = 0x00</tt>
+** Key: None. The key must only contain the 1 byte type.
+***<tt>{0x00}</tt>
+** Value: The transaction in network serialization format the current input spends from. This should only be present for inputs which spend non-segwit outputs. However, if it is unknown whether an input spends a segwit output, this type should be used.
+*** <tt>{transaction}</tt>
+
+* Type: Witness UTXO <tt>PSBT_IN_WITNESS_UTXO = 0x01</tt>
+** Key: None. The key must only contain the 1 byte type.
+*** <tt>{0x01}</tt>
+** Value: The entire transaction output in network serialization which the current input spends from. This should only be present for inputs which spend segwit outputs, including P2SH embedded ones.
+*** <tt>{serialized transaction output({output value}|<scriptPubKey>)}</tt>
+
+* Type: Partial Signature <tt>PSBT_IN_PARTIAL_SIG = 0x02</tt>
+** Key: The public key which corresponds to this signature.
+*** <tt>{0x02}|{public key}</tt>
+** Value: The signature as would be pushed to the stack from a scriptSig or witness.
+*** <tt>{signature}</tt>
+
+* Type: Sighash Type <tt>PSBT_IN_SIGHASH_TYPE = 0x03</tt>
+** Key: None. The key must only contain the 1 byte type.
+*** <tt>{0x03}</tt>
+** Value: The 32-bit unsigned integer specifying the sighash type to be used for this input. Signatures for this input must use the sighash type, finalizers must fail to finalize inputs which have signatures that do not match the specified sighash type. Signers who cannot produce signatures with the sighash type must not provide a signature.
+*** <tt>{sighash type}</tt>
+
+* Type: Redeem Script <tt>PSBT_IN_REDEEM_SCRIPT = 0x04</tt>
+** Key: None. The key must only contain the 1 byte type.
+*** <tt>{0x04}</tt>
+** Value: The redeemScript for this input if it has one.
+*** <tt>{redeemScript}</tt>
+
+* Type: Witness Script <tt>PSBT_IN_WITNESS_SCRIPT = 0x05</tt>
+** Key: None. The key must only contain the 1 byte type.
+*** <tt>{0x05}</tt>
+** Value: The witnessScript for this input if it has one.
+*** <tt>{witnessScript}</tt>
+
+* Type: BIP 32 Derivation Path <tt>PSBT_IN_BIP32_DERIVATION = 0x06</tt>
+** Key: The public key
+*** <tt>{0x06}|{public key}</tt>
+** Value: The master key fingerprint as defined by BIP 32 concatenated with the derivation path of the public key. The derivation path is represented as 32 bit unsigned integer indexes concatenated with each other. Public keys are those that will be needed to sign this input.
+*** <tt>{master key fingerprint}|{32-bit uint}|...|{32-bit uint}</tt>
+
+* Type: Finalized scriptSig <tt>PSBT_IN_FINAL_SCRIPTSIG = 0x07</tt>
+** Key: None. The key must only contain the 1 byte type.
+*** <tt>{0x07}</tt>
+** Value: The Finalized scriptSig contains a fully constructed scriptSig with signatures and any other scripts necessary for the input to pass validation.
+*** <tt>{scriptSig}</tt>
+
+* Type: Finalized scriptWitness <tt>PSBT_IN_FINAL_SCRIPTWITNESS = 0x08</tt>
+** Key: None. The key must only contain the 1 byte type.
+*** <tt>{0x08}</tt>
+** Value: The Finalized scriptWitness contains a fully constructed scriptWitness with signatures and any other scripts necessary for the input to pass validation.
+*** <tt>{scriptWitness}</tt>
+
+* Type: Proof-of-reserves commitment <tt>PSBT_IN_POR_COMMITMENT = 0x09</tt>
+** Key: None. The key must only contain the 1 byte type.
+*** <tt>{0x09}</tt>
+** Value: The UTF-8 encoded commitment message string for the proof-of-reserves. See [[bip-0127.mediawiki|BIP 127]] for more information.
+*** <tt>{porCommitment}</tt>
+
+* Type: Proprietary Use Type <tt>PSBT_IN_PROPRIETARY = 0xFC</tt>
+** Key: Variable length identifier prefix, followed by a subtype, followed by the key data itself.
+*** <tt>{0xFC}|<prefix>|{subtype}|{key data}</tt>
+** Value: Any value data as defined by the proprietary type user.
+*** <tt><data></tt>
+
+The currently defined per-output <ref>'''Why do we need per-output data?''' Per-output data allows signers
+to verify that the outputs are going to the intended recipient. The output data can also be use by signers to
+determine which outputs are change outputs and verify that the change is returning to the correct place.</ref> types are defined as follows:
+
+* Type: Redeem Script <tt>PSBT_OUT_REDEEM_SCRIPT = 0x00</tt>
+** Key: None. The key must only contain the 1 byte type.
+*** <tt>{0x00}</tt>
+** Value: The redeemScript for this output if it has one.
+*** <tt>{redeemScript}</tt>
+
+* Type: Witness Script <tt>PSBT_OUT_WITNESS_SCRIPT = 0x01</tt>
+** Key: None. The key must only contain the 1 byte type.
+*** <tt>{0x01}</tt>
+** Value: The witnessScript for this output if it has one.
+*** <tt>{witnessScript}</tt>
+
+* Type: BIP 32 Derivation Path <tt>PSBT_OUT_BIP32_DERIVATION = 0x02</tt>
+** Key: The public key
+*** <tt>{0x02}|{public key}</tt>
+** Value: The master key fingerprint concatenated with the derivation path of the public key. The derivation path is represented as 32-bit little endian unsigned integer indexes concatenated with each other. Public keys are those needed to spend this output.
+*** <tt>{master key fingerprint}|{32-bit uint}|...|{32-bit uint}</tt>
+
+* Type: Proprietary Use Type <tt>PSBT_OUT_PROPRIETARY = 0xFC</tt>
+** Key: Variable length identifier prefix, followed by a subtype, followed by the key data itself.
+*** <tt>{0xFC}|<prefix>|{subtype}|{key data}</tt>
+** Value: Any value data as defined by the proprietary type user.
+*** <tt><data></tt>
+
+The transaction format is specified as follows:
+
+
+<pre>
+ {0x70736274}|{0xff}|{global key-value map}|{input key-value map}|...|{input key-value map}|{output key-value map}|...|{output key-value map}|
+</pre>
+
+{| class="wikitable" style="width: auto; text-align: center; font-size: smaller; table-layout: fixed;"
+!Field Size
+!Name
+!Type
+!Value
+!Description
+|-
+| 4
+| Magic Bytes
+| int32_t
+| <tt>0x70736274</tt>
+| Magic bytes which are ASCII for psbt. <ref>'''Why use 4 bytes for psbt?''' The
+transaction format needed to start with a 5 byte header which uniquely identifies
+it. The first bytes were chosen to be the ASCII for psbt because that stands for
+Partially Signed Bitcoin Transaction. </ref> This integer should be serialized
+in most significant byte order.
+|-
+| 1
+| separator
+| char
+| <tt>0xff</tt>
+| Must be <tt>0xff</tt> <ref>'''Why Use a separator after the magic bytes?''' The separator
+is part of the 5 byte header for PSBT. This byte is a separator of <tt>0xff</tt> because
+this will cause any non-PSBT unserializer to fail to properly unserialize the PSBT
+as a normal transaction. Likewise, since the 5 byte header is fixed, no transaction
+in the non-PSBT format will be able to be unserialized by a PSBT unserializer.</ref>
+|-
+| 1+
+| Global data
+| Key-value Map
+| varies
+| The key-value pairs for all global data.
+|-
+| 1+
+| Inputs
+| Array of key-value maps
+| varies
+| The key-value pairs for each input as described above. Every input in the unsigned transaction must have a corresponding input map.
+|-
+| 1+
+| Outputs
+| Array of key-value maps
+| varies
+| The key-value pairs for each output as described above. Every output in the unsigned transaction must have a corresponding output map.
+|}
+
+Each block of data between separators can be viewed as a scope, and all separators
+are required<ref>'''Why are all separators required?''' The separators are required
+so that the unserializer knows which input it is unserializing data for.</ref>.
+Types can be skipped when they are unnecessary. For example, if an input is a witness
+input, then it should not have a Non-Witness UTXO key-value pair.
+
+If the signer encounters key-value pairs that it does not understand, it must
+pass those key-value pairs through when re-serializing the transaction.
+
+All keys must have the data that they specify. If any key or value does not match the
+specified format for that type, the PSBT must be considered invalid. For example, any
+key that has no data except for the type specifier must only have the type specifier in
+the key.
+
+===Handling Duplicated Keys===
+
+Keys within each scope should never be duplicated; all keys in the format are unique. PSBTs containing duplicate keys are invalid. However implementors
+will still need to handle events where keys are duplicated when combining transactions with duplicated fields. In this event, the software may choose
+whichever value it wishes.<ref>'''Why can the values be arbitrarily chosen?''' When there are duplicated keys, the values that can be chosen will either be
+valid or invalid. If the values are invalid, a signer would simply produce an invalid signature and the final transaction itself would be invalid. If the
+values are valid, then it does not matter which is chosen as either way the transaction is still valid.</ref>
+
+===Proprietary Use Type===
+
+For all global, per-input, and per-output maps, the types <tt>0xFC</tt> is reserved for proprietary use.
+The proprietary use type requires keys that follow the type with a variable length string identifer, then a subtype.
+
+The identifier can be any variable length string that software can use to identify whether the particular data in the proprietary type can be used by it.
+It can also be the empty string and just be a single <tt>0x00</tt> byte although this is not recommended.
+
+The subtype is defined by the proprietary type user and can mean whatever they want it to mean.
+The subtype must also be a compact size unsigned integer in the same form as the normal types.
+The key data and value data are defined by the proprietary type user.
+
+The proprietary use types is for private use by individuals and organizations who wish to use PSBT in their processes.
+It is useful when there are additional data that they need attached to a PSBT but such data are not useful or available for the general public.
+The proprietary use type is not to be used by any public specification and there is no expectation that any publicly available software be able to understand any specific meanings of it and the subtypes.
+This type must be used for internal processes only.
+
+==Responsibilities==
+
+Using the transaction format involves many different responsibilities. Multiple responsibilities can be handled by a single entity, but each responsibility is specialized in what it should be capable of doing.
+
+===Creator===
+
+The Creator creates a new PSBT. It must create an unsigned transaction and place it in the PSBT.
+The Creator must create empty input fields.
+
+===Updater===
+
+The Updater must only accept a PSBT.
+The Updater adds information to the PSBT that it has access to. If it has the UTXO for an input, it should add it to the PSBT.
+The Updater should also add redeemScripts, witnessScripts, and BIP 32 derivation paths to the input and output data if it knows them.
+
+A single entity is likely to be both a Creator and Updater.
+
+===Signer===
+
+The Signer must only accept a PSBT.
+The Signer must only use the UTXOs provided in the PSBT to produce signatures for inputs.
+Before signing a non-witness input, the Signer must verify that the TXID of the non-witness UTXO matches the TXID specified in the unsigned transaction.
+Before signing a witness input, the Signer must verify that the witnessScript (if provided) matches the hash specified in the UTXO or the redeemScript, and the redeemScript (if provided) matches the hash in the UTXO.
+The Signer should not need any additional data sources, as all necessary information is provided in the PSBT format.
+The Signer must only add data to a PSBT.
+Any signatures created by the Signer must be added as a "Partial Signature" key-value pair for the respective input it relates to.
+If a Signer cannot sign a transaction, it must not add a Partial Signature.
+
+The Signer can additionally compute the addresses and values being sent, and the transaction fee, optionally showing this data to the user as a confirmation of intent and the consequences of signing the PSBT.
+
+Signers do not need to sign for all possible input types. For example, a signer may choose to only sign Segwit inputs.
+
+A single entity is likely to be both a Signer and an Updater as it can update a PSBT with necessary information prior to signing it.
+
+====Data Signers Check For====
+
+For a Signer to only produce valid signatures for what it expects to sign, it must check that the following conditions are true:
+
+* If a non-witness UTXO is provided, its hash must match the hash specified in the prevout
+* If a witness UTXO is provided, no non-witness signature may be created
+* If a redeemScript is provided, the scriptPubKey must be for that redeemScript
+* If a witnessScript is provided, the scriptPubKey or the redeemScript must be for that witnessScript
+* If a sighash type is provided, the signer must check that the sighash is acceptable. If unacceptable, they must fail.
+* If a sighash type is not provided, the signer should sign using SIGHASH_ALL, but may use any sighash type they wish.
+
+=====Simple Signer Algorithm=====
+
+A simple signer can use the following algorithm to determine what and how to sign
+
+<pre>
+sign_witness(script_code, i):
+ for key, sighash_type in psbt.inputs[i].items:
+ if sighash_type == None:
+ sighash_type = SIGHASH_ALL
+ if IsMine(key) and IsAcceptable(sighash_type):
+ sign(witness_sighash(script_code, i, input))
+
+sign_non_witness(script_code, i):
+ for key, sighash_type in psbt.inputs[i].items:
+ if sighash_type == None:
+ sighash_type = SIGHASH_ALL
+ if IsMine(key) and IsAcceptable(sighash_type):
+ sign(non_witness_sighash(script_code, i, input))
+
+for input,i in enumerate(psbt.inputs):
+ if non_witness_utxo.exists:
+ assert(sha256d(non_witness_utxo) == psbt.tx.input[i].prevout.hash)
+ if redeemScript.exists:
+ assert(non_witness_utxo.vout[psbt.tx.input[i].prevout.n].scriptPubKey == P2SH(redeemScript))
+ sign_non_witness(redeemScript)
+ else:
+ sign_non_witness(non_witness_utxo.vout[psbt.tx.input[i].prevout.n].scriptPubKey)
+ else if witness_utxo.exists:
+ if redeemScript.exists:
+ assert(witness_utxo.scriptPubKey == P2SH(redeemScript))
+ script = redeemScript
+ else:
+ script = witness_utxo.scriptPubKey
+ if IsP2WPKH(script):
+ sign_witness(P2PKH(script[2:22]))
+ else if IsP2WSH(script):
+ assert(script == P2WSH(witnessScript))
+ sign_witness(witnessScript)
+ else:
+ assert False
+</pre>
+
+====Change Detection====
+
+Signers may wish to display the inputs and outputs to users for extra verification.
+In such displays, signers may wish to identify which outputs are change outputs in order to omit them to avoid additional user confusion.
+In order to detect change, a signer can use the BIP 32 derivation paths provided in inputs and outputs as well as the extended public keys provided globally.
+
+For a single key output, a signer can observe whether the master fingerprint for the public key for that output belongs to itself.
+If it does, it can then derive the public key at the specified derivation path and check whether that key is the one present in that output.
+
+For outputs involving multiple keys, a signer can first examine the inputs that it is signing.
+It should determine the general pattern of the script and internally produce a representation of the policy that the script represents.
+Such a policy can include things like how many keys are present, what order they are in, how many signers are necessary, which signers are required, etc.
+The signer can then use the BIP 32 derivation paths for each of the pubkeys to find which global extended public key is the one that can derive that particular public key.
+To do so, the signer would extract the derivation path to the highest hardened index and use that to lookup the public key with that index and master fingerprint.
+The signer would construct this script policy with extended public keys for all of the inputs and outputs.
+Change outputs would then be identified as being the outputs which have the same script policy as the inputs that are being signed.
+
+===Combiner===
+
+The Combiner can accept 1 or many PSBTs.
+The Combiner must merge them into one PSBT (if possible), or fail.
+The resulting PSBT must contain all of the key-value pairs from each of the PSBTs.
+The Combiner must remove any duplicate key-value pairs, in accordance with the specification. It can pick arbitrarily when conflicts occur.
+A Combiner must not combine two different PSBTs. PSBTs can be uniquely identified by <tt>0x00</tt> global transaction typed key-value pair.
+For every type that a Combiner understands, it may refuse to combine PSBTs if it detects that there will be inconsistencies or conflicts for that type in the combined PSBT.
+
+The Combiner does not need to know how to interpret scripts in order to combine PSBTs. It can do so without understanding scripts or the network serialization format.
+
+In general, the result of a Combiner combining two PSBTs from independent participants A and B should be functionally equivalent to a result obtained from processing the original PSBT by A and then B in a sequence.
+Or, for participants performing fA(psbt) and fB(psbt): Combine(fA(psbt), fB(psbt)) == fA(fB(psbt)) == fB(fA(psbt))
+
+===Input Finalizer===
+
+The Input Finalizer must only accept a PSBT.
+For each input, the Input Finalizer determines if the input has enough data to pass validation. If it does, it must construct the <tt>0x07</tt> Finalized scriptSig and <tt>0x08</tt> Finalized scriptWitness and place them into the input key-value map.
+All other data except the UTXO and unknown fields in the input key-value map should be cleared from the PSBT. The UTXO should be kept to allow Transaction Extractors to verify the final network serialized transaction.
+
+===Transaction Extractor===
+
+The Transaction Extractor must only accept a PSBT.
+It checks whether all inputs have complete scriptSigs and scriptWitnesses by checking for the presence of <tt>0x07</tt> Finalized scriptSig and <tt>0x08</tt> Finalized scriptWitness typed records. If they do, the Transaction Extractor should construct complete scriptSigs and scriptWitnesses and encode them into network serialized transactions. Otherwise the Extractor must not modify the PSBT.
+The Extractor should produce a fully valid, network serialized transaction if all inputs are complete.
+
+The Transaction Extractor does not need to know how to interpret scripts in order to extract the network serialized transaction. However it may be able to in order to validate the network serialized transaction at the same time.
+
+A single entity is likely to be both a Transaction Extractor and an Input Finalizer.
+
+==Encoding==
+
+A PSBT can be represented in two ways: in binary (as a file) or as a Base64 string using the encoding described in [https://tools.ietf.org/html/rfc4648#section-4 RFC4648].
+
+Binary PSBT files should use the <tt>.psbt</tt> file extension.
+A MIME type name will be added to this document once one has been registered.
+
+==Extensibility==
+
+The Partially Signed Transaction format can be extended in the future by adding
+new types for key-value pairs. Backwards compatibilty will still be maintained as those new
+types will be ignored and passed-through by signers which do not know about them.
+
+===Version Numbers===
+
+The Version number field exists only as a safeguard in the event that a backwards incompatible change is introduced to PSBT.
+If a parser encounters a version number it does not recognize, it should exit immediately as this indicates that the PSBT will contain types that it does not know about and cannot be ignored.
+Current PSBTs are Version 0. Any PSBT that does not have the version field is version 0.
+It is not expected that any backwards incompatible change will be introduced to PSBT, so it is not expected that the version field will ever actually be seen.
+
+Updaters and combiners that need to add a version number to a PSBT should use the highest version number required.
+For example, if a combiner sees two PSBTs for the same transaction, one with version 0, and the other with version 1, then it should combine them and produce a PSBT with version 1.
+If an updater is updating a PSBT and needs to add a field that is only available in version 1, then it should set the PSBT version number to 1 unless a version higher than that is already specified.
+
+==Compatibility==
+
+This transaction format is designed so that it is unable to be properly unserialized
+by normal transaction unserializers. Likewise, a normal transaction will not be
+able to be unserialized by an unserializer for the PSBT format.
+
+==Examples==
+
+===Manual CoinJoin Workflow===
+
+<img src="bip-0174/coinjoin-workflow.svg" align="middle"></img>
+
+===2-of-3 Multisig Workflow===
+
+<img src="bip-0174/multisig-workflow.svg" align="middle"></img>
+
+==Test Vectors==
+
+The following are invalid PSBTs:
+
+* Case: Network transaction, not PSBT format
+** Bytes in Hex: <pre>0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e1300</pre>
+** Base64 String: <pre>AgAAAAEmgXE3Ht/yhek3re6ks3t4AAwFZsuzrWRkFxPKQhcb9gAAAABqRzBEAiBwsiRRI+a/R01gxbUMBD1MaRpdJDXwmjSnZiqdwlF5CgIgATKcqdrPKAvfMHQOwDkEIkIsgctFg5RXrrdvwS7dlbMBIQJlfRGNM1e44PTCzUbbezn22cONmnCry5st5dyNv+TOMf7///8C09/1BQAAAAAZdqkU0MWZA8W6woaHYOkP1SGkZlqnZSCIrADh9QUAAAAAF6kUNUXm4zuDLEcFDyTT7rk8nAOUi8eHsy4TAA==</pre>
+
+* Case: PSBT missing outputs
+** Bytes in Hex: <pre>70736274ff0100750200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf60000000000feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e1300000100fda5010100000000010289a3c71eab4d20e0371bbba4cc698fa295c9463afa2e397f8533ccb62f9567e50100000017160014be18d152a9b012039daf3da7de4f53349eecb985ffffffff86f8aa43a71dff1448893a530a7237ef6b4608bbb2dd2d0171e63aec6a4890b40100000017160014fe3e9ef1a745e974d902c4355943abcb34bd5353ffffffff0200c2eb0b000000001976a91485cff1097fd9e008bb34af709c62197b38978a4888ac72fef84e2c00000017a914339725ba21efd62ac753a9bcd067d6c7a6a39d05870247304402202712be22e0270f394f568311dc7ca9a68970b8025fdd3b240229f07f8a5f3a240220018b38d7dcd314e734c9276bd6fb40f673325bc4baa144c800d2f2f02db2765c012103d2e15674941bad4a996372cb87e1856d3652606d98562fe39c5e9e7e413f210502483045022100d12b852d85dcd961d2f5f4ab660654df6eedcc794c0c33ce5cc309ffb5fce58d022067338a8e0e1725c197fb1a88af59f51e44e4255b20167c8684031c05d1f2592a01210223b72beef0965d10be0778efecd61fcac6f79a4ea169393380734464f84f2ab30000000000</pre>
+** Base64 String: <pre>cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAA==</pre>
+
+* Case: PSBT where one input has a filled scriptSig in the unsigned tx
+** Bytes in Hex: <pre>70736274ff0100fd0a010200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be4000000006a47304402204759661797c01b036b25928948686218347d89864b719e1f7fcf57d1e511658702205309eabf56aa4d8891ffd111fdf1336f3a29da866d7f8486d75546ceedaf93190121035cdc61fc7ba971c0b501a646a2a83b102cb43881217ca682dc86e2d73fa88292feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb82308000000</pre>
+** Base64 String: <pre>cHNidP8BAP0KAQIAAAACqwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QAAAAAakcwRAIgR1lmF5fAGwNrJZKJSGhiGDR9iYZLcZ4ff89X0eURZYcCIFMJ6r9Wqk2Ikf/REf3xM286KdqGbX+EhtdVRs7tr5MZASEDXNxh/HupccC1AaZGoqg7ECy0OIEhfKaC3Ibi1z+ogpL+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAABASAA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHhwEEFgAUhdE1N/LiZUBaNNuvqePdoB+4IwgAAAA=</pre>
+
+* Case: PSBT where inputs and outputs are provided but without an unsigned tx
+** Bytes in Hex: <pre>70736274ff000100fda5010100000000010289a3c71eab4d20e0371bbba4cc698fa295c9463afa2e397f8533ccb62f9567e50100000017160014be18d152a9b012039daf3da7de4f53349eecb985ffffffff86f8aa43a71dff1448893a530a7237ef6b4608bbb2dd2d0171e63aec6a4890b40100000017160014fe3e9ef1a745e974d902c4355943abcb34bd5353ffffffff0200c2eb0b000000001976a91485cff1097fd9e008bb34af709c62197b38978a4888ac72fef84e2c00000017a914339725ba21efd62ac753a9bcd067d6c7a6a39d05870247304402202712be22e0270f394f568311dc7ca9a68970b8025fdd3b240229f07f8a5f3a240220018b38d7dcd314e734c9276bd6fb40f673325bc4baa144c800d2f2f02db2765c012103d2e15674941bad4a996372cb87e1856d3652606d98562fe39c5e9e7e413f210502483045022100d12b852d85dcd961d2f5f4ab660654df6eedcc794c0c33ce5cc309ffb5fce58d022067338a8e0e1725c197fb1a88af59f51e44e4255b20167c8684031c05d1f2592a01210223b72beef0965d10be0778efecd61fcac6f79a4ea169393380734464f84f2ab30000000000</pre>
+** Base64 String: <pre>cHNidP8AAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAA==</pre>
+
+* Case: PSBT with duplicate keys in an input
+** Bytes in Hex: <pre>70736274ff0100750200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf60000000000feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e1300000100fda5010100000000010289a3c71eab4d20e0371bbba4cc698fa295c9463afa2e397f8533ccb62f9567e50100000017160014be18d152a9b012039daf3da7de4f53349eecb985ffffffff86f8aa43a71dff1448893a530a7237ef6b4608bbb2dd2d0171e63aec6a4890b40100000017160014fe3e9ef1a745e974d902c4355943abcb34bd5353ffffffff0200c2eb0b000000001976a91485cff1097fd9e008bb34af709c62197b38978a4888ac72fef84e2c00000017a914339725ba21efd62ac753a9bcd067d6c7a6a39d05870247304402202712be22e0270f394f568311dc7ca9a68970b8025fdd3b240229f07f8a5f3a240220018b38d7dcd314e734c9276bd6fb40f673325bc4baa144c800d2f2f02db2765c012103d2e15674941bad4a996372cb87e1856d3652606d98562fe39c5e9e7e413f210502483045022100d12b852d85dcd961d2f5f4ab660654df6eedcc794c0c33ce5cc309ffb5fce58d022067338a8e0e1725c197fb1a88af59f51e44e4255b20167c8684031c05d1f2592a01210223b72beef0965d10be0778efecd61fcac6f79a4ea169393380734464f84f2ab30000000001003f0200000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffff010000000000000000036a010000000000000000</pre>
+** Base64 String: <pre>cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAQA/AgAAAAH//////////////////////////////////////////wAAAAAA/////wEAAAAAAAAAAANqAQAAAAAAAAAA</pre>
+
+* Case: PSBT With invalid global transaction typed key
+** Bytes in Hex: <pre>70736274ff020001550200000001279a2323a5dfb51fc45f220fa58b0fc13e1e3342792a85d7e36cd6333b5cbc390000000000ffffffff01a05aea0b000000001976a914ffe9c0061097cc3b636f2cb0460fa4fc427d2b4588ac0000000000010120955eea0b0000000017a9146345200f68d189e1adc0df1c4d16ea8f14c0dbeb87220203b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd4646304302200424b58effaaa694e1559ea5c93bbfd4a89064224055cdf070b6771469442d07021f5c8eb0fea6516d60b8acb33ad64ede60e8785bfb3aa94b99bdf86151db9a9a010104220020771fd18ad459666dd49f3d564e3dbc42f4c84774e360ada16816a8ed488d5681010547522103b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd462103de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd52ae220603b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd4610b4a6ba67000000800000008004000080220603de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd10b4a6ba670000008000000080050000800000</pre>
+** Base64 String: <pre>cHNidP8CAAFVAgAAAAEnmiMjpd+1H8RfIg+liw/BPh4zQnkqhdfjbNYzO1y8OQAAAAAA/////wGgWuoLAAAAABl2qRT/6cAGEJfMO2NvLLBGD6T8Qn0rRYisAAAAAAABASCVXuoLAAAAABepFGNFIA9o0YnhrcDfHE0W6o8UwNvrhyICA7E0HMunaDtq9PEjjNbpfnFn1Wn6xH8eSNR1QYRDVb1GRjBDAiAEJLWO/6qmlOFVnqXJO7/UqJBkIkBVzfBwtncUaUQtBwIfXI6w/qZRbWC4rLM61k7eYOh4W/s6qUuZvfhhUduamgEBBCIAIHcf0YrUWWZt1J89Vk49vEL0yEd042CtoWgWqO1IjVaBAQVHUiEDsTQcy6doO2r08SOM1ul+cWfVafrEfx5I1HVBhENVvUYhA95V0eHayAXj+KWMH7+blMAvPbqv4Sf+/KSZXyb4IIO9Uq4iBgOxNBzLp2g7avTxI4zW6X5xZ9Vp+sR/HkjUdUGEQ1W9RhC0prpnAAAAgAAAAIAEAACAIgYD3lXR4drIBeP4pYwfv5uUwC89uq/hJ/78pJlfJvggg70QtKa6ZwAAAIAAAACABQAAgAAA</pre>
+
+* Case: PSBT With invalid input witness utxo typed key
+** Bytes in Hex: <pre>70736274ff0100550200000001279a2323a5dfb51fc45f220fa58b0fc13e1e3342792a85d7e36cd6333b5cbc390000000000ffffffff01a05aea0b000000001976a914ffe9c0061097cc3b636f2cb0460fa4fc427d2b4588ac000000000002010020955eea0b0000000017a9146345200f68d189e1adc0df1c4d16ea8f14c0dbeb87220203b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd4646304302200424b58effaaa694e1559ea5c93bbfd4a89064224055cdf070b6771469442d07021f5c8eb0fea6516d60b8acb33ad64ede60e8785bfb3aa94b99bdf86151db9a9a010104220020771fd18ad459666dd49f3d564e3dbc42f4c84774e360ada16816a8ed488d5681010547522103b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd462103de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd52ae220603b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd4610b4a6ba67000000800000008004000080220603de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd10b4a6ba670000008000000080050000800000</pre>
+** Base64 String: <pre>cHNidP8BAFUCAAAAASeaIyOl37UfxF8iD6WLD8E+HjNCeSqF1+Ns1jM7XLw5AAAAAAD/////AaBa6gsAAAAAGXapFP/pwAYQl8w7Y28ssEYPpPxCfStFiKwAAAAAAAIBACCVXuoLAAAAABepFGNFIA9o0YnhrcDfHE0W6o8UwNvrhyICA7E0HMunaDtq9PEjjNbpfnFn1Wn6xH8eSNR1QYRDVb1GRjBDAiAEJLWO/6qmlOFVnqXJO7/UqJBkIkBVzfBwtncUaUQtBwIfXI6w/qZRbWC4rLM61k7eYOh4W/s6qUuZvfhhUduamgEBBCIAIHcf0YrUWWZt1J89Vk49vEL0yEd042CtoWgWqO1IjVaBAQVHUiEDsTQcy6doO2r08SOM1ul+cWfVafrEfx5I1HVBhENVvUYhA95V0eHayAXj+KWMH7+blMAvPbqv4Sf+/KSZXyb4IIO9Uq4iBgOxNBzLp2g7avTxI4zW6X5xZ9Vp+sR/HkjUdUGEQ1W9RhC0prpnAAAAgAAAAIAEAACAIgYD3lXR4drIBeP4pYwfv5uUwC89uq/hJ/78pJlfJvggg70QtKa6ZwAAAIAAAACABQAAgAAA</pre>
+
+* Case: PSBT With invalid pubkey length for input partial signature typed key
+** Bytes in Hex: <pre>70736274ff0100550200000001279a2323a5dfb51fc45f220fa58b0fc13e1e3342792a85d7e36cd6333b5cbc390000000000ffffffff01a05aea0b000000001976a914ffe9c0061097cc3b636f2cb0460fa4fc427d2b4588ac0000000000010120955eea0b0000000017a9146345200f68d189e1adc0df1c4d16ea8f14c0dbeb87210203b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd46304302200424b58effaaa694e1559ea5c93bbfd4a89064224055cdf070b6771469442d07021f5c8eb0fea6516d60b8acb33ad64ede60e8785bfb3aa94b99bdf86151db9a9a010104220020771fd18ad459666dd49f3d564e3dbc42f4c84774e360ada16816a8ed488d5681010547522103b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd462103de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd52ae220603b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd4610b4a6ba67000000800000008004000080220603de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd10b4a6ba670000008000000080050000800000</pre>
+** Base64 String: <pre>cHNidP8BAFUCAAAAASeaIyOl37UfxF8iD6WLD8E+HjNCeSqF1+Ns1jM7XLw5AAAAAAD/////AaBa6gsAAAAAGXapFP/pwAYQl8w7Y28ssEYPpPxCfStFiKwAAAAAAAEBIJVe6gsAAAAAF6kUY0UgD2jRieGtwN8cTRbqjxTA2+uHIQIDsTQcy6doO2r08SOM1ul+cWfVafrEfx5I1HVBhENVvUYwQwIgBCS1jv+qppThVZ6lyTu/1KiQZCJAVc3wcLZ3FGlELQcCH1yOsP6mUW1guKyzOtZO3mDoeFv7OqlLmb34YVHbmpoBAQQiACB3H9GK1FlmbdSfPVZOPbxC9MhHdONgraFoFqjtSI1WgQEFR1IhA7E0HMunaDtq9PEjjNbpfnFn1Wn6xH8eSNR1QYRDVb1GIQPeVdHh2sgF4/iljB+/m5TALz26r+En/vykmV8m+CCDvVKuIgYDsTQcy6doO2r08SOM1ul+cWfVafrEfx5I1HVBhENVvUYQtKa6ZwAAAIAAAACABAAAgCIGA95V0eHayAXj+KWMH7+blMAvPbqv4Sf+/KSZXyb4IIO9ELSmumcAAACAAAAAgAUAAIAAAA==</pre>
+
+* Case: PSBT With invalid redeemscript typed key
+** Bytes in Hex: <pre>70736274ff0100550200000001279a2323a5dfb51fc45f220fa58b0fc13e1e3342792a85d7e36cd6333b5cbc390000000000ffffffff01a05aea0b000000001976a914ffe9c0061097cc3b636f2cb0460fa4fc427d2b4588ac0000000000010120955eea0b0000000017a9146345200f68d189e1adc0df1c4d16ea8f14c0dbeb87220203b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd4646304302200424b58effaaa694e1559ea5c93bbfd4a89064224055cdf070b6771469442d07021f5c8eb0fea6516d60b8acb33ad64ede60e8785bfb3aa94b99bdf86151db9a9a01020400220020771fd18ad459666dd49f3d564e3dbc42f4c84774e360ada16816a8ed488d5681010547522103b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd462103de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd52ae220603b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd4610b4a6ba67000000800000008004000080220603de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd10b4a6ba670000008000000080050000800000</pre>
+** Base64 String: <pre>cHNidP8BAFUCAAAAASeaIyOl37UfxF8iD6WLD8E+HjNCeSqF1+Ns1jM7XLw5AAAAAAD/////AaBa6gsAAAAAGXapFP/pwAYQl8w7Y28ssEYPpPxCfStFiKwAAAAAAAEBIJVe6gsAAAAAF6kUY0UgD2jRieGtwN8cTRbqjxTA2+uHIgIDsTQcy6doO2r08SOM1ul+cWfVafrEfx5I1HVBhENVvUZGMEMCIAQktY7/qqaU4VWepck7v9SokGQiQFXN8HC2dxRpRC0HAh9cjrD+plFtYLisszrWTt5g6Hhb+zqpS5m9+GFR25qaAQIEACIAIHcf0YrUWWZt1J89Vk49vEL0yEd042CtoWgWqO1IjVaBAQVHUiEDsTQcy6doO2r08SOM1ul+cWfVafrEfx5I1HVBhENVvUYhA95V0eHayAXj+KWMH7+blMAvPbqv4Sf+/KSZXyb4IIO9Uq4iBgOxNBzLp2g7avTxI4zW6X5xZ9Vp+sR/HkjUdUGEQ1W9RhC0prpnAAAAgAAAAIAEAACAIgYD3lXR4drIBeP4pYwfv5uUwC89uq/hJ/78pJlfJvggg70QtKa6ZwAAAIAAAACABQAAgAAA</pre>
+
+* Case: PSBT With invalid witnessscript typed key
+** Bytes in Hex: <pre>70736274ff0100550200000001279a2323a5dfb51fc45f220fa58b0fc13e1e3342792a85d7e36cd6333b5cbc390000000000ffffffff01a05aea0b000000001976a914ffe9c0061097cc3b636f2cb0460fa4fc427d2b4588ac0000000000010120955eea0b0000000017a9146345200f68d189e1adc0df1c4d16ea8f14c0dbeb87220203b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd4646304302200424b58effaaa694e1559ea5c93bbfd4a89064224055cdf070b6771469442d07021f5c8eb0fea6516d60b8acb33ad64ede60e8785bfb3aa94b99bdf86151db9a9a010104220020771fd18ad459666dd49f3d564e3dbc42f4c84774e360ada16816a8ed488d568102050047522103b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd462103de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd52ae220603b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd4610b4a6ba67000000800000008004000080220603de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd10b4a6ba670000008000000080050000800000</pre>
+** Base64 String: <pre>cHNidP8BAFUCAAAAASeaIyOl37UfxF8iD6WLD8E+HjNCeSqF1+Ns1jM7XLw5AAAAAAD/////AaBa6gsAAAAAGXapFP/pwAYQl8w7Y28ssEYPpPxCfStFiKwAAAAAAAEBIJVe6gsAAAAAF6kUY0UgD2jRieGtwN8cTRbqjxTA2+uHIgIDsTQcy6doO2r08SOM1ul+cWfVafrEfx5I1HVBhENVvUZGMEMCIAQktY7/qqaU4VWepck7v9SokGQiQFXN8HC2dxRpRC0HAh9cjrD+plFtYLisszrWTt5g6Hhb+zqpS5m9+GFR25qaAQEEIgAgdx/RitRZZm3Unz1WTj28QvTIR3TjYK2haBao7UiNVoECBQBHUiEDsTQcy6doO2r08SOM1ul+cWfVafrEfx5I1HVBhENVvUYhA95V0eHayAXj+KWMH7+blMAvPbqv4Sf+/KSZXyb4IIO9Uq4iBgOxNBzLp2g7avTxI4zW6X5xZ9Vp+sR/HkjUdUGEQ1W9RhC0prpnAAAAgAAAAIAEAACAIgYD3lXR4drIBeP4pYwfv5uUwC89uq/hJ/78pJlfJvggg70QtKa6ZwAAAIAAAACABQAAgAAA</pre>
+
+* Case: PSBT With invalid bip32 typed key
+** Bytes in Hex: <pre>70736274ff0100550200000001279a2323a5dfb51fc45f220fa58b0fc13e1e3342792a85d7e36cd6333b5cbc390000000000ffffffff01a05aea0b000000001976a914ffe9c0061097cc3b636f2cb0460fa4fc427d2b4588ac0000000000010120955eea0b0000000017a9146345200f68d189e1adc0df1c4d16ea8f14c0dbeb87220203b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd4646304302200424b58effaaa694e1559ea5c93bbfd4a89064224055cdf070b6771469442d07021f5c8eb0fea6516d60b8acb33ad64ede60e8785bfb3aa94b99bdf86151db9a9a010104220020771fd18ad459666dd49f3d564e3dbc42f4c84774e360ada16816a8ed488d5681010547522103b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd462103de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd52ae210603b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd10b4a6ba67000000800000008004000080220603de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd10b4a6ba670000008000000080050000800000</pre>
+** Base64 String: <pre>cHNidP8BAFUCAAAAASeaIyOl37UfxF8iD6WLD8E+HjNCeSqF1+Ns1jM7XLw5AAAAAAD/////AaBa6gsAAAAAGXapFP/pwAYQl8w7Y28ssEYPpPxCfStFiKwAAAAAAAEBIJVe6gsAAAAAF6kUY0UgD2jRieGtwN8cTRbqjxTA2+uHIgIDsTQcy6doO2r08SOM1ul+cWfVafrEfx5I1HVBhENVvUZGMEMCIAQktY7/qqaU4VWepck7v9SokGQiQFXN8HC2dxRpRC0HAh9cjrD+plFtYLisszrWTt5g6Hhb+zqpS5m9+GFR25qaAQEEIgAgdx/RitRZZm3Unz1WTj28QvTIR3TjYK2haBao7UiNVoEBBUdSIQOxNBzLp2g7avTxI4zW6X5xZ9Vp+sR/HkjUdUGEQ1W9RiED3lXR4drIBeP4pYwfv5uUwC89uq/hJ/78pJlfJvggg71SriEGA7E0HMunaDtq9PEjjNbpfnFn1Wn6xH8eSNR1QYRDVb0QtKa6ZwAAAIAAAACABAAAgCIGA95V0eHayAXj+KWMH7+blMAvPbqv4Sf+/KSZXyb4IIO9ELSmumcAAACAAAAAgAUAAIAAAA==</pre>
+
+* Case: PSBT With invalid non-witness utxo typed key
+** Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f0000000000020000bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f6187650000000107da00473044022074018ad4180097b873323c0015720b3684cc8123891048e7dbcd9b55ad679c99022073d369b740e3eb53dcefa33823c8070514ca55a7dd9544f157c167913261118c01483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae0001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e8870107232200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b20289030108da0400473044022062eb7a556107a7c73f45ac4ab5a1dddf6f7075fb1275969a7f383efff784bcb202200c05dbb7470dbf2f08557dd356c7325c1ed30913e996cd3840945db12228da5f01473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d20147522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae00220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+** Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAIAALsCAAAAAarXOTEBi9JfhK5AC2iEi+CdtwbqwqwYKYur7nGrZW+LAAAAAEhHMEQCIFj2/HxqM+GzFUjUgcgmwBW9MBNarULNZ3kNq2bSrSQ7AiBKHO0mBMZzW2OT5bQWkd14sA8MWUL7n3UYVvqpOBV9ugH+////AoDw+gIAAAAAF6kUD7lGNCFpa4LIM68kHHjBfdveSTSH0PIKJwEAAAAXqRQpynT4oI+BmZQoGFyXtdhS5AY/YYdlAAAAAQfaAEcwRAIgdAGK1BgAl7hzMjwAFXILNoTMgSOJEEjn282bVa1nnJkCIHPTabdA4+tT3O+jOCPIBwUUylWn3ZVE8VfBZ5EyYRGMAUgwRQIhAPYQOLMI3B2oZaNIUnRvAVdyk0IIxtJEVDk82ZvfIhd3AiAFbmdaZ1ptCgK4WxTl4pB02KJam1dgvqKBb2YZEKAG6gFHUiEClYO/Oa4KYJdHrRma3dY0+mEIVZ1sXNObTCGD8auW4H8hAtq2H/SaFNtqfQKwzR+7ePxLGDErW05U2uTbovv+9TbXUq4AAQEgAMLrCwAAAAAXqRS39fr0Dj1ApaRZsds1NfK3L6kh6IcBByMiACCMI1MXN0O1ld+0oHtyuo5C43l9p06H/n2ddJfjsgKJAwEI2gQARzBEAiBi63pVYQenxz9FrEq1od3fb3B1+xJ1lpp/OD7/94S8sgIgDAXbt0cNvy8IVX3TVscyXB7TCRPpls04QJRdsSIo2l8BRzBEAiBl9FulmYtZon/+GnvtAWrx8fkNVLOqj3RQql9WolEDvQIgf3JHA60e25ZoCyhLVtT/y4j3+3Weq74IqjDym4UTg9IBR1IhAwidwQx6xttU+RMpr2FzM9s4jOrQwjH3IzedG5kDCwLcIQI63ZBPPW3PWd25BrDe4jUpt/+57VDl6GFRkmhgIh8Oc1KuACICA6mkw39ZltOqJdusa1cK8GUDlEkpQkYLNUdT7Z7spYdxENkMak8AAACAAAAAgAQAAIAAIgICf2OZdX0u/1WhNq0CxoSxg4tlVuXxtrNCgqlLa1AFEJYQ2QxqTwAAAIAAAACABQAAgAA=</pre>
+
+* Case: PSBT With invalid final scriptsig typed key
+** Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f618765000000020700da00473044022074018ad4180097b873323c0015720b3684cc8123891048e7dbcd9b55ad679c99022073d369b740e3eb53dcefa33823c8070514ca55a7dd9544f157c167913261118c01483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae0001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e8870107232200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b20289030108da0400473044022062eb7a556107a7c73f45ac4ab5a1dddf6f7075fb1275969a7f383efff784bcb202200c05dbb7470dbf2f08557dd356c7325c1ed30913e996cd3840945db12228da5f01473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d20147522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae00220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+** Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAACBwDaAEcwRAIgdAGK1BgAl7hzMjwAFXILNoTMgSOJEEjn282bVa1nnJkCIHPTabdA4+tT3O+jOCPIBwUUylWn3ZVE8VfBZ5EyYRGMAUgwRQIhAPYQOLMI3B2oZaNIUnRvAVdyk0IIxtJEVDk82ZvfIhd3AiAFbmdaZ1ptCgK4WxTl4pB02KJam1dgvqKBb2YZEKAG6gFHUiEClYO/Oa4KYJdHrRma3dY0+mEIVZ1sXNObTCGD8auW4H8hAtq2H/SaFNtqfQKwzR+7ePxLGDErW05U2uTbovv+9TbXUq4AAQEgAMLrCwAAAAAXqRS39fr0Dj1ApaRZsds1NfK3L6kh6IcBByMiACCMI1MXN0O1ld+0oHtyuo5C43l9p06H/n2ddJfjsgKJAwEI2gQARzBEAiBi63pVYQenxz9FrEq1od3fb3B1+xJ1lpp/OD7/94S8sgIgDAXbt0cNvy8IVX3TVscyXB7TCRPpls04QJRdsSIo2l8BRzBEAiBl9FulmYtZon/+GnvtAWrx8fkNVLOqj3RQql9WolEDvQIgf3JHA60e25ZoCyhLVtT/y4j3+3Weq74IqjDym4UTg9IBR1IhAwidwQx6xttU+RMpr2FzM9s4jOrQwjH3IzedG5kDCwLcIQI63ZBPPW3PWd25BrDe4jUpt/+57VDl6GFRkmhgIh8Oc1KuACICA6mkw39ZltOqJdusa1cK8GUDlEkpQkYLNUdT7Z7spYdxENkMak8AAACAAAAAgAQAAIAAIgICf2OZdX0u/1WhNq0CxoSxg4tlVuXxtrNCgqlLa1AFEJYQ2QxqTwAAAIAAAACABQAAgAA=</pre>
+
+* Case: PSBT With invalid final script witness typed key
+** Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f6187650000000107da00473044022074018ad4180097b873323c0015720b3684cc8123891048e7dbcd9b55ad679c99022073d369b740e3eb53dcefa33823c8070514ca55a7dd9544f157c167913261118c01483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae0001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e8870107232200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903020800da0400473044022062eb7a556107a7c73f45ac4ab5a1dddf6f7075fb1275969a7f383efff784bcb202200c05dbb7470dbf2f08557dd356c7325c1ed30913e996cd3840945db12228da5f01473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d20147522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae00220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+** Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAABB9oARzBEAiB0AYrUGACXuHMyPAAVcgs2hMyBI4kQSOfbzZtVrWecmQIgc9Npt0Dj61Pc76M4I8gHBRTKVafdlUTxV8FnkTJhEYwBSDBFAiEA9hA4swjcHahlo0hSdG8BV3KTQgjG0kRUOTzZm98iF3cCIAVuZ1pnWm0KArhbFOXikHTYolqbV2C+ooFvZhkQoAbqAUdSIQKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgfyEC2rYf9JoU22p9ArDNH7t4/EsYMStbTlTa5Nui+/71NtdSrgABASAAwusLAAAAABepFLf1+vQOPUClpFmx2zU18rcvqSHohwEHIyIAIIwjUxc3Q7WV37Sge3K6jkLjeX2nTof+fZ10l+OyAokDAggA2gQARzBEAiBi63pVYQenxz9FrEq1od3fb3B1+xJ1lpp/OD7/94S8sgIgDAXbt0cNvy8IVX3TVscyXB7TCRPpls04QJRdsSIo2l8BRzBEAiBl9FulmYtZon/+GnvtAWrx8fkNVLOqj3RQql9WolEDvQIgf3JHA60e25ZoCyhLVtT/y4j3+3Weq74IqjDym4UTg9IBR1IhAwidwQx6xttU+RMpr2FzM9s4jOrQwjH3IzedG5kDCwLcIQI63ZBPPW3PWd25BrDe4jUpt/+57VDl6GFRkmhgIh8Oc1KuACICA6mkw39ZltOqJdusa1cK8GUDlEkpQkYLNUdT7Z7spYdxENkMak8AAACAAAAAgAQAAIAAIgICf2OZdX0u/1WhNq0CxoSxg4tlVuXxtrNCgqlLa1AFEJYQ2QxqTwAAAIAAAACABQAAgAA=</pre>
+
+* Case: PSBT With invalid pubkey in output BIP 32 derivation paths typed key
+** Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f6187650000000107da00473044022074018ad4180097b873323c0015720b3684cc8123891048e7dbcd9b55ad679c99022073d369b740e3eb53dcefa33823c8070514ca55a7dd9544f157c167913261118c01483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae0001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e8870107232200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b20289030108da0400473044022062eb7a556107a7c73f45ac4ab5a1dddf6f7075fb1275969a7f383efff784bcb202200c05dbb7470dbf2f08557dd356c7325c1ed30913e996cd3840945db12228da5f01473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d20147522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae00210203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca58710d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+** Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAABB9oARzBEAiB0AYrUGACXuHMyPAAVcgs2hMyBI4kQSOfbzZtVrWecmQIgc9Npt0Dj61Pc76M4I8gHBRTKVafdlUTxV8FnkTJhEYwBSDBFAiEA9hA4swjcHahlo0hSdG8BV3KTQgjG0kRUOTzZm98iF3cCIAVuZ1pnWm0KArhbFOXikHTYolqbV2C+ooFvZhkQoAbqAUdSIQKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgfyEC2rYf9JoU22p9ArDNH7t4/EsYMStbTlTa5Nui+/71NtdSrgABASAAwusLAAAAABepFLf1+vQOPUClpFmx2zU18rcvqSHohwEHIyIAIIwjUxc3Q7WV37Sge3K6jkLjeX2nTof+fZ10l+OyAokDAQjaBABHMEQCIGLrelVhB6fHP0WsSrWh3d9vcHX7EnWWmn84Pv/3hLyyAiAMBdu3Rw2/LwhVfdNWxzJcHtMJE+mWzThAlF2xIijaXwFHMEQCIGX0W6WZi1mif/4ae+0BavHx+Q1Us6qPdFCqX1aiUQO9AiB/ckcDrR7blmgLKEtW1P/LiPf7dZ6rvgiqMPKbhROD0gFHUiEDCJ3BDHrG21T5EymvYXMz2ziM6tDCMfcjN50bmQMLAtwhAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zUq4AIQIDqaTDf1mW06ol26xrVwrwZQOUSSlCRgs1R1PtnuylhxDZDGpPAAAAgAAAAIAEAACAACICAn9jmXV9Lv9VoTatAsaEsYOLZVbl8bazQoKpS2tQBRCWENkMak8AAACAAAAAgAUAAIAA</pre>
+
+* Case: PSBT With invalid input sighash type typed key
+** Bytes in Hex: <pre>70736274ff0100730200000001301ae986e516a1ec8ac5b4bc6573d32f83b465e23ad76167d68b38e730b4dbdb0000000000ffffffff02747b01000000000017a91403aa17ae882b5d0d54b25d63104e4ffece7b9ea2876043993b0000000017a914b921b1ba6f722e4bfa83b6557a3139986a42ec8387000000000001011f00ca9a3b00000000160014d2d94b64ae08587eefc8eeb187c601e939f9037c0203000100000000010016001462e9e982fff34dd8239610316b090cd2a3b747cb000100220020876bad832f1d168015ed41232a9ea65a1815d9ef13c0ef8759f64b5b2b278a65010125512103b7ce23a01c5b4bf00a642537cdfabb315b668332867478ef51309d2bd57f8a8751ae00</pre>
+** Base64 String: <pre>cHNidP8BAHMCAAAAATAa6YblFqHsisW0vGVz0y+DtGXiOtdhZ9aLOOcwtNvbAAAAAAD/////AnR7AQAAAAAAF6kUA6oXrogrXQ1Usl1jEE5P/s57nqKHYEOZOwAAAAAXqRS5IbG6b3IuS/qDtlV6MTmYakLsg4cAAAAAAAEBHwDKmjsAAAAAFgAU0tlLZK4IWH7vyO6xh8YB6Tn5A3wCAwABAAAAAAEAFgAUYunpgv/zTdgjlhAxawkM0qO3R8sAAQAiACCHa62DLx0WgBXtQSMqnqZaGBXZ7xPA74dZ9ktbKyeKZQEBJVEhA7fOI6AcW0vwCmQlN836uzFbZoMyhnR471EwnSvVf4qHUa4A</pre>
+
+* Case: PSBT With invalid output redeemScript typed key
+** Bytes in Hex: <pre>70736274ff0100730200000001301ae986e516a1ec8ac5b4bc6573d32f83b465e23ad76167d68b38e730b4dbdb0000000000ffffffff02747b01000000000017a91403aa17ae882b5d0d54b25d63104e4ffece7b9ea2876043993b0000000017a914b921b1ba6f722e4bfa83b6557a3139986a42ec8387000000000001011f00ca9a3b00000000160014d2d94b64ae08587eefc8eeb187c601e939f9037c0002000016001462e9e982fff34dd8239610316b090cd2a3b747cb000100220020876bad832f1d168015ed41232a9ea65a1815d9ef13c0ef8759f64b5b2b278a65010125512103b7ce23a01c5b4bf00a642537cdfabb315b668332867478ef51309d2bd57f8a8751ae00</pre>
+** Base64 String: <pre>cHNidP8BAHMCAAAAATAa6YblFqHsisW0vGVz0y+DtGXiOtdhZ9aLOOcwtNvbAAAAAAD/////AnR7AQAAAAAAF6kUA6oXrogrXQ1Usl1jEE5P/s57nqKHYEOZOwAAAAAXqRS5IbG6b3IuS/qDtlV6MTmYakLsg4cAAAAAAAEBHwDKmjsAAAAAFgAU0tlLZK4IWH7vyO6xh8YB6Tn5A3wAAgAAFgAUYunpgv/zTdgjlhAxawkM0qO3R8sAAQAiACCHa62DLx0WgBXtQSMqnqZaGBXZ7xPA74dZ9ktbKyeKZQEBJVEhA7fOI6AcW0vwCmQlN836uzFbZoMyhnR471EwnSvVf4qHUa4A</pre>
+
+* Case: PSBT With invalid output witnessScript typed key
+** Bytes in Hex: <pre>70736274ff0100730200000001301ae986e516a1ec8ac5b4bc6573d32f83b465e23ad76167d68b38e730b4dbdb0000000000ffffffff02747b01000000000017a91403aa17ae882b5d0d54b25d63104e4ffece7b9ea2876043993b0000000017a914b921b1ba6f722e4bfa83b6557a3139986a42ec8387000000000001011f00ca9a3b00000000160014d2d94b64ae08587eefc8eeb187c601e939f9037c00010016001462e9e982fff34dd8239610316b090cd2a3b747cb000100220020876bad832f1d168015ed41232a9ea65a1815d9ef13c0ef8759f64b5b2b278a6521010025512103b7ce23a01c5b4bf00a642537cdfabb315b668332867478ef51309d06d57f8a8751ae00</pre>
+** Base64 String: <pre>cHNidP8BAHMCAAAAATAa6YblFqHsisW0vGVz0y+DtGXiOtdhZ9aLOOcwtNvbAAAAAAD/////AnR7AQAAAAAAF6kUA6oXrogrXQ1Usl1jEE5P/s57nqKHYEOZOwAAAAAXqRS5IbG6b3IuS/qDtlV6MTmYakLsg4cAAAAAAAEBHwDKmjsAAAAAFgAU0tlLZK4IWH7vyO6xh8YB6Tn5A3wAAQAWABRi6emC//NN2COWEDFrCQzSo7dHywABACIAIIdrrYMvHRaAFe1BIyqeploYFdnvE8Dvh1n2S1srJ4plIQEAJVEhA7fOI6AcW0vwCmQlN836uzFbZoMyhnR471EwnQbVf4qHUa4A</pre>
+
+The following are valid PSBTs:
+
+* Case: PSBT with one P2PKH input. Outputs are empty
+** Bytes in Hex: <pre>70736274ff0100750200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf60000000000feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e1300000100fda5010100000000010289a3c71eab4d20e0371bbba4cc698fa295c9463afa2e397f8533ccb62f9567e50100000017160014be18d152a9b012039daf3da7de4f53349eecb985ffffffff86f8aa43a71dff1448893a530a7237ef6b4608bbb2dd2d0171e63aec6a4890b40100000017160014fe3e9ef1a745e974d902c4355943abcb34bd5353ffffffff0200c2eb0b000000001976a91485cff1097fd9e008bb34af709c62197b38978a4888ac72fef84e2c00000017a914339725ba21efd62ac753a9bcd067d6c7a6a39d05870247304402202712be22e0270f394f568311dc7ca9a68970b8025fdd3b240229f07f8a5f3a240220018b38d7dcd314e734c9276bd6fb40f673325bc4baa144c800d2f2f02db2765c012103d2e15674941bad4a996372cb87e1856d3652606d98562fe39c5e9e7e413f210502483045022100d12b852d85dcd961d2f5f4ab660654df6eedcc794c0c33ce5cc309ffb5fce58d022067338a8e0e1725c197fb1a88af59f51e44e4255b20167c8684031c05d1f2592a01210223b72beef0965d10be0778efecd61fcac6f79a4ea169393380734464f84f2ab300000000000000</pre>
+** Base64 String: <pre>cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAAAA</pre>
+
+* Case: PSBT with one P2PKH input and one P2SH-P2WPKH input. First input is signed and finalized. Outputs are empty
+** Bytes in Hex: <pre>70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac000000000001076a47304402204759661797c01b036b25928948686218347d89864b719e1f7fcf57d1e511658702205309eabf56aa4d8891ffd111fdf1336f3a29da866d7f8486d75546ceedaf93190121035cdc61fc7ba971c0b501a646a2a83b102cb43881217ca682dc86e2d73fa882920001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb82308000000</pre>
+** Base64 String: <pre>cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEHakcwRAIgR1lmF5fAGwNrJZKJSGhiGDR9iYZLcZ4ff89X0eURZYcCIFMJ6r9Wqk2Ikf/REf3xM286KdqGbX+EhtdVRs7tr5MZASEDXNxh/HupccC1AaZGoqg7ECy0OIEhfKaC3Ibi1z+ogpIAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIAAAA</pre>
+
+* Case: PSBT with one P2PKH input which has a non-final scriptSig and has a sighash type specified. Outputs are empty
+** Bytes in Hex: <pre>70736274ff0100750200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf60000000000feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e1300000100fda5010100000000010289a3c71eab4d20e0371bbba4cc698fa295c9463afa2e397f8533ccb62f9567e50100000017160014be18d152a9b012039daf3da7de4f53349eecb985ffffffff86f8aa43a71dff1448893a530a7237ef6b4608bbb2dd2d0171e63aec6a4890b40100000017160014fe3e9ef1a745e974d902c4355943abcb34bd5353ffffffff0200c2eb0b000000001976a91485cff1097fd9e008bb34af709c62197b38978a4888ac72fef84e2c00000017a914339725ba21efd62ac753a9bcd067d6c7a6a39d05870247304402202712be22e0270f394f568311dc7ca9a68970b8025fdd3b240229f07f8a5f3a240220018b38d7dcd314e734c9276bd6fb40f673325bc4baa144c800d2f2f02db2765c012103d2e15674941bad4a996372cb87e1856d3652606d98562fe39c5e9e7e413f210502483045022100d12b852d85dcd961d2f5f4ab660654df6eedcc794c0c33ce5cc309ffb5fce58d022067338a8e0e1725c197fb1a88af59f51e44e4255b20167c8684031c05d1f2592a01210223b72beef0965d10be0778efecd61fcac6f79a4ea169393380734464f84f2ab30000000001030401000000000000</pre>
+** Base64 String: <pre>cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAQMEAQAAAAAAAA==</pre>
+
+* Case: PSBT with one P2PKH input and one P2SH-P2WPKH input both with non-final scriptSigs. P2SH-P2WPKH input's redeemScript is available. Outputs filled.
+** Bytes in Hex: <pre>70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000</pre>
+** Base64 String: <pre>cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=</pre>
+
+* Case: PSBT with one P2SH-P2WSH input of a 2-of-2 multisig, redeemScript, witnessScript, and keypaths are available. Contains one signature.
+** Bytes in Hex: <pre>70736274ff0100550200000001279a2323a5dfb51fc45f220fa58b0fc13e1e3342792a85d7e36cd6333b5cbc390000000000ffffffff01a05aea0b000000001976a914ffe9c0061097cc3b636f2cb0460fa4fc427d2b4588ac0000000000010120955eea0b0000000017a9146345200f68d189e1adc0df1c4d16ea8f14c0dbeb87220203b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd4646304302200424b58effaaa694e1559ea5c93bbfd4a89064224055cdf070b6771469442d07021f5c8eb0fea6516d60b8acb33ad64ede60e8785bfb3aa94b99bdf86151db9a9a010104220020771fd18ad459666dd49f3d564e3dbc42f4c84774e360ada16816a8ed488d5681010547522103b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd462103de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd52ae220603b1341ccba7683b6af4f1238cd6e97e7167d569fac47f1e48d47541844355bd4610b4a6ba67000000800000008004000080220603de55d1e1dac805e3f8a58c1fbf9b94c02f3dbaafe127fefca4995f26f82083bd10b4a6ba670000008000000080050000800000</pre>
+** Base64 String: <pre>cHNidP8BAFUCAAAAASeaIyOl37UfxF8iD6WLD8E+HjNCeSqF1+Ns1jM7XLw5AAAAAAD/////AaBa6gsAAAAAGXapFP/pwAYQl8w7Y28ssEYPpPxCfStFiKwAAAAAAAEBIJVe6gsAAAAAF6kUY0UgD2jRieGtwN8cTRbqjxTA2+uHIgIDsTQcy6doO2r08SOM1ul+cWfVafrEfx5I1HVBhENVvUZGMEMCIAQktY7/qqaU4VWepck7v9SokGQiQFXN8HC2dxRpRC0HAh9cjrD+plFtYLisszrWTt5g6Hhb+zqpS5m9+GFR25qaAQEEIgAgdx/RitRZZm3Unz1WTj28QvTIR3TjYK2haBao7UiNVoEBBUdSIQOxNBzLp2g7avTxI4zW6X5xZ9Vp+sR/HkjUdUGEQ1W9RiED3lXR4drIBeP4pYwfv5uUwC89uq/hJ/78pJlfJvggg71SriIGA7E0HMunaDtq9PEjjNbpfnFn1Wn6xH8eSNR1QYRDVb1GELSmumcAAACAAAAAgAQAAIAiBgPeVdHh2sgF4/iljB+/m5TALz26r+En/vykmV8m+CCDvRC0prpnAAAAgAAAAIAFAACAAAA=</pre>
+
+* Case: PSBT with one P2WSH input of a 2-of-2 multisig. witnessScript, keypaths, and global xpubs are available. Contains no signatures. Outputs filled.
+** Bytes in Hex: <pre>70736274ff01005202000000019dfc6628c26c5899fe1bd3dc338665bfd55d7ada10f6220973df2d386dec12760100000000ffffffff01f03dcd1d000000001600147b3a00bfdc14d27795c2b74901d09da6ef133579000000004f01043587cf02da3fd0088000000097048b1ad0445b1ec8275517727c87b4e4ebc18a203ffa0f94c01566bd38e9000351b743887ee1d40dc32a6043724f2d6459b3b5a4d73daec8fbae0472f3bc43e20cd90c6a4fae000080000000804f01043587cf02da3fd00880000001b90452427139cd78c2cff2444be353cd58605e3e513285e528b407fae3f6173503d30a5e97c8adbc557dac2ad9a7e39c1722ebac69e668b6f2667cc1d671c83cab0cd90c6a4fae000080010000800001012b0065cd1d000000002200202c5486126c4978079a814e13715d65f36459e4d6ccaded266d0508645bafa6320105475221029da12cdb5b235692b91536afefe5c91c3ab9473d8e43b533836ab456299c88712103372b34234ed7cf9c1fea5d05d441557927be9542b162eb02e1ab2ce80224c00b52ae2206029da12cdb5b235692b91536afefe5c91c3ab9473d8e43b533836ab456299c887110d90c6a4fae0000800000008000000000220603372b34234ed7cf9c1fea5d05d441557927be9542b162eb02e1ab2ce80224c00b10d90c6a4fae0000800100008000000000002202039eff1f547a1d5f92dfa2ba7af6ac971a4bd03ba4a734b03156a256b8ad3a1ef910ede45cc500000080000000800100008000</pre>
+** Base64 String: <pre>cHNidP8BAFICAAAAAZ38ZijCbFiZ/hvT3DOGZb/VXXraEPYiCXPfLTht7BJ2AQAAAAD/////AfA9zR0AAAAAFgAUezoAv9wU0neVwrdJAdCdpu8TNXkAAAAATwEENYfPAto/0AiAAAAAlwSLGtBEWx7IJ1UXcnyHtOTrwYogP/oPlMAVZr046QADUbdDiH7h1A3DKmBDck8tZFmztaTXPa7I+64EcvO8Q+IM2QxqT64AAIAAAACATwEENYfPAto/0AiAAAABuQRSQnE5zXjCz/JES+NTzVhgXj5RMoXlKLQH+uP2FzUD0wpel8itvFV9rCrZp+OcFyLrrGnmaLbyZnzB1nHIPKsM2QxqT64AAIABAACAAAEBKwBlzR0AAAAAIgAgLFSGEmxJeAeagU4TcV1l82RZ5NbMre0mbQUIZFuvpjIBBUdSIQKdoSzbWyNWkrkVNq/v5ckcOrlHPY5DtTODarRWKZyIcSEDNys0I07Xz5wf6l0F1EFVeSe+lUKxYusC4ass6AIkwAtSriIGAp2hLNtbI1aSuRU2r+/lyRw6uUc9jkO1M4NqtFYpnIhxENkMak+uAACAAAAAgAAAAAAiBgM3KzQjTtfPnB/qXQXUQVV5J76VQrFi6wLhqyzoAiTACxDZDGpPrgAAgAEAAIAAAAAAACICA57/H1R6HV+S36K6evaslxpL0DukpzSwMVaiVritOh75EO3kXMUAAACAAAAAgAEAAIAA</pre>
+
+* Case: PSBT with unknown types in the inputs.
+** Bytes in Hex: <pre>70736274ff01003f0200000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffff010000000000000000036a010000000000000a0f0102030405060708090f0102030405060708090a0b0c0d0e0f0000</pre>
+** Base64 String: <pre>cHNidP8BAD8CAAAAAf//////////////////////////////////////////AAAAAAD/////AQAAAAAAAAAAA2oBAAAAAAAACg8BAgMEBQYHCAkPAQIDBAUGBwgJCgsMDQ4PAAA=</pre>
+
+* Case: PSBT with `PSBT_GLOBAL_XPUB`.
+** Bytes in Hex: <pre>70736274ff01009d0100000002710ea76ab45c5cb6438e607e59cc037626981805ae9e0dfd9089012abb0be5350100000000ffffffff190994d6a8b3c8c82ccbcfb2fba4106aa06639b872a8d447465c0d42588d6d670000000000ffffffff0200e1f505000000001976a914b6bc2c0ee5655a843d79afedd0ccc3f7dd64340988ac605af405000000001600141188ef8e4ce0449eaac8fb141cbf5a1176e6a088000000004f010488b21e039e530cac800000003dbc8a5c9769f031b17e77fea1518603221a18fd18f2b9a54c6c8c1ac75cbc3502f230584b155d1c7f1cd45120a653c48d650b431b67c5b2c13f27d7142037c1691027569c503100008000000080000000800001011f00e1f5050000000016001433b982f91b28f160c920b4ab95e58ce50dda3a4a220203309680f33c7de38ea6a47cd4ecd66f1f5a49747c6ffb8808ed09039243e3ad5c47304402202d704ced830c56a909344bd742b6852dccd103e963bae92d38e75254d2bb424502202d86c437195df46c0ceda084f2a291c3da2d64070f76bf9b90b195e7ef28f77201220603309680f33c7de38ea6a47cd4ecd66f1f5a49747c6ffb8808ed09039243e3ad5c1827569c5031000080000000800000008000000000010000000001011f00e1f50500000000160014388fb944307eb77ef45197d0b0b245e079f011de220202c777161f73d0b7c72b9ee7bde650293d13f095bc7656ad1f525da5fd2e10b11047304402204cb1fb5f869c942e0e26100576125439179ae88dca8a9dc3ba08f7953988faa60220521f49ca791c27d70e273c9b14616985909361e25be274ea200d7e08827e514d01220602c777161f73d0b7c72b9ee7bde650293d13f095bc7656ad1f525da5fd2e10b1101827569c5031000080000000800000008000000000000000000000220202d20ca502ee289686d21815bd43a80637b0698e1fbcdbe4caed445f6c1a0a90ef1827569c50310000800000008000000080000000000400000000</pre>
+** Base64 String: <pre>cHNidP8BAJ0BAAAAAnEOp2q0XFy2Q45gflnMA3YmmBgFrp4N/ZCJASq7C+U1AQAAAAD/////GQmU1qizyMgsy8+y+6QQaqBmObhyqNRHRlwNQliNbWcAAAAAAP////8CAOH1BQAAAAAZdqkUtrwsDuVlWoQ9ea/t0MzD991kNAmIrGBa9AUAAAAAFgAUEYjvjkzgRJ6qyPsUHL9aEXbmoIgAAAAATwEEiLIeA55TDKyAAAAAPbyKXJdp8DGxfnf+oVGGAyIaGP0Y8rmlTGyMGsdcvDUC8jBYSxVdHH8c1FEgplPEjWULQxtnxbLBPyfXFCA3wWkQJ1acUDEAAIAAAACAAAAAgAABAR8A4fUFAAAAABYAFDO5gvkbKPFgySC0q5XljOUN2jpKIgIDMJaA8zx9446mpHzU7NZvH1pJdHxv+4gI7QkDkkPjrVxHMEQCIC1wTO2DDFapCTRL10K2hS3M0QPpY7rpLTjnUlTSu0JFAiAthsQ3GV30bAztoITyopHD2i1kBw92v5uQsZXn7yj3cgEiBgMwloDzPH3jjqakfNTs1m8fWkl0fG/7iAjtCQOSQ+OtXBgnVpxQMQAAgAAAAIAAAACAAAAAAAEAAAAAAQEfAOH1BQAAAAAWABQ4j7lEMH63fvRRl9CwskXgefAR3iICAsd3Fh9z0LfHK57nveZQKT0T8JW8dlatH1Jdpf0uELEQRzBEAiBMsftfhpyULg4mEAV2ElQ5F5rojcqKncO6CPeVOYj6pgIgUh9JynkcJ9cOJzybFGFphZCTYeJb4nTqIA1+CIJ+UU0BIgYCx3cWH3PQt8crnue95lApPRPwlbx2Vq0fUl2l/S4QsRAYJ1acUDEAAIAAAACAAAAAgAAAAAAAAAAAAAAiAgLSDKUC7iiWhtIYFb1DqAY3sGmOH7zb5MrtRF9sGgqQ7xgnVpxQMQAAgAAAAIAAAACAAAAAAAQAAAAA</pre>
+
+Fails Signer checks
+
+* Case: A Witness UTXO is provided for a non-witness input
+** Bytes in Hex: <pre>70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac0000000000010122d3dff505000000001976a914d48ed3110b94014cb114bd32d6f4d066dc74256b88ac0001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000</pre>
+** Base64 String: <pre>cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEBItPf9QUAAAAAGXapFNSO0xELlAFMsRS9Mtb00GbcdCVriKwAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=</pre>
+
+* Case: redeemScript with non-witness UTXO does not match the scriptPubKey
+** Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f618765000000220202dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d7483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01010304010000000104475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752af2206029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f10d90c6a4f000000800000008000000080220602dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d710d90c6a4f0000008000000080010000800001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e8872202023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e73473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d2010103040100000001042200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903010547522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae2206023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7310d90c6a4f000000800000008003000080220603089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc10d90c6a4f00000080000000800200008000220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+** Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAAiAgLath/0mhTban0CsM0fu3j8SxgxK1tOVNrk26L7/vU210gwRQIhAPYQOLMI3B2oZaNIUnRvAVdyk0IIxtJEVDk82ZvfIhd3AiAFbmdaZ1ptCgK4WxTl4pB02KJam1dgvqKBb2YZEKAG6gEBAwQBAAAAAQRHUiEClYO/Oa4KYJdHrRma3dY0+mEIVZ1sXNObTCGD8auW4H8hAtq2H/SaFNtqfQKwzR+7ePxLGDErW05U2uTbovv+9TbXUq8iBgKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgfxDZDGpPAAAAgAAAAIAAAACAIgYC2rYf9JoU22p9ArDNH7t4/EsYMStbTlTa5Nui+/71NtcQ2QxqTwAAAIAAAACAAQAAgAABASAAwusLAAAAABepFLf1+vQOPUClpFmx2zU18rcvqSHohyICAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zRzBEAiBl9FulmYtZon/+GnvtAWrx8fkNVLOqj3RQql9WolEDvQIgf3JHA60e25ZoCyhLVtT/y4j3+3Weq74IqjDym4UTg9IBAQMEAQAAAAEEIgAgjCNTFzdDtZXftKB7crqOQuN5fadOh/59nXSX47ICiQMBBUdSIQMIncEMesbbVPkTKa9hczPbOIzq0MIx9yM3nRuZAwsC3CECOt2QTz1tz1nduQaw3uI1Kbf/ue1Q5ehhUZJoYCIfDnNSriIGAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zENkMak8AAACAAAAAgAMAAIAiBgMIncEMesbbVPkTKa9hczPbOIzq0MIx9yM3nRuZAwsC3BDZDGpPAAAAgAAAAIACAACAACICA6mkw39ZltOqJdusa1cK8GUDlEkpQkYLNUdT7Z7spYdxENkMak8AAACAAAAAgAQAAIAAIgICf2OZdX0u/1WhNq0CxoSxg4tlVuXxtrNCgqlLa1AFEJYQ2QxqTwAAAIAAAACABQAAgAA=</pre>
+
+* Case: redeemScript with witness UTXO does not match the scriptPubKey
+** Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f618765000000220202dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d7483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01010304010000000104475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae2206029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f10d90c6a4f000000800000008000000080220602dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d710d90c6a4f0000008000000080010000800001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e8872202023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e73473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d2010103040100000001042200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028900010547522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae2206023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7310d90c6a4f000000800000008003000080220603089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc10d90c6a4f00000080000000800200008000220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+** Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAAiAgLath/0mhTban0CsM0fu3j8SxgxK1tOVNrk26L7/vU210gwRQIhAPYQOLMI3B2oZaNIUnRvAVdyk0IIxtJEVDk82ZvfIhd3AiAFbmdaZ1ptCgK4WxTl4pB02KJam1dgvqKBb2YZEKAG6gEBAwQBAAAAAQRHUiEClYO/Oa4KYJdHrRma3dY0+mEIVZ1sXNObTCGD8auW4H8hAtq2H/SaFNtqfQKwzR+7ePxLGDErW05U2uTbovv+9TbXUq4iBgKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgfxDZDGpPAAAAgAAAAIAAAACAIgYC2rYf9JoU22p9ArDNH7t4/EsYMStbTlTa5Nui+/71NtcQ2QxqTwAAAIAAAACAAQAAgAABASAAwusLAAAAABepFLf1+vQOPUClpFmx2zU18rcvqSHohyICAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zRzBEAiBl9FulmYtZon/+GnvtAWrx8fkNVLOqj3RQql9WolEDvQIgf3JHA60e25ZoCyhLVtT/y4j3+3Weq74IqjDym4UTg9IBAQMEAQAAAAEEIgAgjCNTFzdDtZXftKB7crqOQuN5fadOh/59nXSX47ICiQABBUdSIQMIncEMesbbVPkTKa9hczPbOIzq0MIx9yM3nRuZAwsC3CECOt2QTz1tz1nduQaw3uI1Kbf/ue1Q5ehhUZJoYCIfDnNSriIGAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zENkMak8AAACAAAAAgAMAAIAiBgMIncEMesbbVPkTKa9hczPbOIzq0MIx9yM3nRuZAwsC3BDZDGpPAAAAgAAAAIACAACAACICA6mkw39ZltOqJdusa1cK8GUDlEkpQkYLNUdT7Z7spYdxENkMak8AAACAAAAAgAQAAIAAIgICf2OZdX0u/1WhNq0CxoSxg4tlVuXxtrNCgqlLa1AFEJYQ2QxqTwAAAIAAAACABQAAgAA=</pre>
+
+* Case: witnessScript with witness UTXO does not match the redeemScript
+** Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f618765000000220202dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d7483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01010304010000000104475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae2206029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f10d90c6a4f000000800000008000000080220602dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d710d90c6a4f0000008000000080010000800001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e8872202023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e73473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d2010103040100000001042200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903010547522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ad2206023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7310d90c6a4f000000800000008003000080220603089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc10d90c6a4f00000080000000800200008000220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+** Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAAiAgLath/0mhTban0CsM0fu3j8SxgxK1tOVNrk26L7/vU210gwRQIhAPYQOLMI3B2oZaNIUnRvAVdyk0IIxtJEVDk82ZvfIhd3AiAFbmdaZ1ptCgK4WxTl4pB02KJam1dgvqKBb2YZEKAG6gEBAwQBAAAAAQRHUiEClYO/Oa4KYJdHrRma3dY0+mEIVZ1sXNObTCGD8auW4H8hAtq2H/SaFNtqfQKwzR+7ePxLGDErW05U2uTbovv+9TbXUq4iBgKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgfxDZDGpPAAAAgAAAAIAAAACAIgYC2rYf9JoU22p9ArDNH7t4/EsYMStbTlTa5Nui+/71NtcQ2QxqTwAAAIAAAACAAQAAgAABASAAwusLAAAAABepFLf1+vQOPUClpFmx2zU18rcvqSHohyICAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zRzBEAiBl9FulmYtZon/+GnvtAWrx8fkNVLOqj3RQql9WolEDvQIgf3JHA60e25ZoCyhLVtT/y4j3+3Weq74IqjDym4UTg9IBAQMEAQAAAAEEIgAgjCNTFzdDtZXftKB7crqOQuN5fadOh/59nXSX47ICiQMBBUdSIQMIncEMesbbVPkTKa9hczPbOIzq0MIx9yM3nRuZAwsC3CECOt2QTz1tz1nduQaw3uI1Kbf/ue1Q5ehhUZJoYCIfDnNSrSIGAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zENkMak8AAACAAAAAgAMAAIAiBgMIncEMesbbVPkTKa9hczPbOIzq0MIx9yM3nRuZAwsC3BDZDGpPAAAAgAAAAIACAACAACICA6mkw39ZltOqJdusa1cK8GUDlEkpQkYLNUdT7Z7spYdxENkMak8AAACAAAAAgAQAAIAAIgICf2OZdX0u/1WhNq0CxoSxg4tlVuXxtrNCgqlLa1AFEJYQ2QxqTwAAAIAAAACABQAAgAA=</pre>
+
+The private keys in the tests below are derived from the following master private key:
+
+* Extended Private Key: <pre>tprv8ZgxMBicQKsPd9TeAdPADNnSyH9SSUUbTVeFszDE23Ki6TBB5nCefAdHkK8Fm3qMQR6sHwA56zqRmKmxnHk37JkiFzvncDqoKmPWubu7hDF</pre>
+** Seed: <pre>cUkG8i1RFfWGWy5ziR11zJ5V4U4W3viSFCfyJmZnvQaUsd1xuF3T</pre>
+
+A creator creating a PSBT for a transaction which creates the following outputs:
+
+* scriptPubKey: <tt>0014d85c2b71d0060b09c9886aeb815e50991dda124d</tt>, Amount: <tt>1.49990000</tt>
+* scriptPubKey: <tt>001400aea9a2e5f0f876a588df5546e8742d1d87008f</tt>, Amount: <tt>1.00000000</tt>
+
+and spends the following inputs:
+
+* TXID: <tt>75ddabb27b8845f5247975c8a5ba7c6f336c4570708ebe230caf6db5217ae858</tt>, Index: <tt>0</tt>
+* TXID: <tt>1dea7cd05979072a3578cab271c02244ea8a090bbb46aa680a65ecd027048d83</tt>, Index: <tt>1</tt>
+
+must create this PSBT:
+* Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f000000000000000000</pre>
+* Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAAAAAA=</pre>
+
+Given the above PSBT, an updater with only the following:
+
+* Redeem Scripts:
+** <tt>5221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae</tt>
+** <tt>00208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903</tt>
+* Witness Scripts:
+** <tt>522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae</tt>
+* Previous Transactions:
+** <pre>0200000000010158e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd7501000000171600145f275f436b09a8cc9a2eb2a2f528485c68a56323feffffff02d8231f1b0100000017a914aed962d6654f9a2b36608eb9d64d2b260db4f1118700c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e88702483045022100a22edcc6e5bc511af4cc4ae0de0fcd75c7e04d8c1c3a8aa9d820ed4b967384ec02200642963597b9b1bc22c75e9f3e117284a962188bf5e8a74c895089046a20ad770121035509a48eb623e10aace8bfd0212fdb8a8e5af3c94b0b133b95e114cab89e4f7965000000</pre>
+** <pre>0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f618765000000</pre>
+* Public Keys
+** Key: <tt>029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f</tt>, Derivation Path: <tt>m/0'/0'/0'</tt>
+** Key: <tt>02dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d7</tt>, Derivation Path: <tt>m/0'/0'/1'</tt>
+** Key: <tt>03089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc</tt>, Derivation Path: <tt>m/0'/0'/2'</tt>
+** Key: <tt>023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e73</tt>, Derivation Path: <tt>m/0'/0'/3'</tt>
+** Key: <tt>03a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca58771</tt>, Derivation Path: <tt>m/0'/0'/4'</tt>
+** Key: <tt>027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b50051096</tt>, Derivation Path: <tt>m/0'/0'/5'</tt>
+
+Must create this PSBT:
+
+* Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f6187650000000104475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae2206029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f10d90c6a4f000000800000008000000080220602dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d710d90c6a4f0000008000000080010000800001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e88701042200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903010547522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae2206023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7310d90c6a4f000000800000008003000080220603089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc10d90c6a4f00000080000000800200008000220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+* Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAABBEdSIQKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgfyEC2rYf9JoU22p9ArDNH7t4/EsYMStbTlTa5Nui+/71NtdSriIGApWDvzmuCmCXR60Zmt3WNPphCFWdbFzTm0whg/GrluB/ENkMak8AAACAAAAAgAAAAIAiBgLath/0mhTban0CsM0fu3j8SxgxK1tOVNrk26L7/vU21xDZDGpPAAAAgAAAAIABAACAAAEBIADC6wsAAAAAF6kUt/X69A49QKWkWbHbNTXyty+pIeiHAQQiACCMI1MXN0O1ld+0oHtyuo5C43l9p06H/n2ddJfjsgKJAwEFR1IhAwidwQx6xttU+RMpr2FzM9s4jOrQwjH3IzedG5kDCwLcIQI63ZBPPW3PWd25BrDe4jUpt/+57VDl6GFRkmhgIh8Oc1KuIgYCOt2QTz1tz1nduQaw3uI1Kbf/ue1Q5ehhUZJoYCIfDnMQ2QxqTwAAAIAAAACAAwAAgCIGAwidwQx6xttU+RMpr2FzM9s4jOrQwjH3IzedG5kDCwLcENkMak8AAACAAAAAgAIAAIAAIgIDqaTDf1mW06ol26xrVwrwZQOUSSlCRgs1R1Ptnuylh3EQ2QxqTwAAAIAAAACABAAAgAAiAgJ/Y5l1fS7/VaE2rQLGhLGDi2VW5fG2s0KCqUtrUAUQlhDZDGpPAAAAgAAAAIAFAACAAA==</pre>
+
+An updater which adds SIGHASH_ALL to the above PSBT must create this PSBT:
+
+* Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f618765000000010304010000000104475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae2206029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f10d90c6a4f000000800000008000000080220602dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d710d90c6a4f0000008000000080010000800001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e8870103040100000001042200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903010547522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae2206023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7310d90c6a4f000000800000008003000080220603089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc10d90c6a4f00000080000000800200008000220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+* Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAABAwQBAAAAAQRHUiEClYO/Oa4KYJdHrRma3dY0+mEIVZ1sXNObTCGD8auW4H8hAtq2H/SaFNtqfQKwzR+7ePxLGDErW05U2uTbovv+9TbXUq4iBgKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgfxDZDGpPAAAAgAAAAIAAAACAIgYC2rYf9JoU22p9ArDNH7t4/EsYMStbTlTa5Nui+/71NtcQ2QxqTwAAAIAAAACAAQAAgAABASAAwusLAAAAABepFLf1+vQOPUClpFmx2zU18rcvqSHohwEDBAEAAAABBCIAIIwjUxc3Q7WV37Sge3K6jkLjeX2nTof+fZ10l+OyAokDAQVHUiEDCJ3BDHrG21T5EymvYXMz2ziM6tDCMfcjN50bmQMLAtwhAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zUq4iBgI63ZBPPW3PWd25BrDe4jUpt/+57VDl6GFRkmhgIh8OcxDZDGpPAAAAgAAAAIADAACAIgYDCJ3BDHrG21T5EymvYXMz2ziM6tDCMfcjN50bmQMLAtwQ2QxqTwAAAIAAAACAAgAAgAAiAgOppMN/WZbTqiXbrGtXCvBlA5RJKUJGCzVHU+2e7KWHcRDZDGpPAAAAgAAAAIAEAACAACICAn9jmXV9Lv9VoTatAsaEsYOLZVbl8bazQoKpS2tQBRCWENkMak8AAACAAAAAgAUAAIAA</pre>
+
+Given the above updated PSBT, a signer that supports SIGHASH_ALL for P2PKH and P2WPKH spends and uses RFC6979 for nonce generation and has the following keys:
+* <tt>cP53pDbR5WtAD8dYAW9hhTjuvvTVaEiQBdrz9XPrgLBeRFiyCbQr</tt> (<tt>m/0'/0'/0'</tt>)
+* <tt>cR6SXDoyfQrcp4piaiHE97Rsgta9mNhGTen9XeonVgwsh4iSgw6d</tt> (<tt>m/0'/0'/2'</tt>)
+must create this PSBT:
+
+* Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f6187650000002202029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f473044022074018ad4180097b873323c0015720b3684cc8123891048e7dbcd9b55ad679c99022073d369b740e3eb53dcefa33823c8070514ca55a7dd9544f157c167913261118c01010304010000000104475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae2206029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f10d90c6a4f000000800000008000000080220602dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d710d90c6a4f0000008000000080010000800001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e887220203089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc473044022062eb7a556107a7c73f45ac4ab5a1dddf6f7075fb1275969a7f383efff784bcb202200c05dbb7470dbf2f08557dd356c7325c1ed30913e996cd3840945db12228da5f010103040100000001042200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903010547522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae2206023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7310d90c6a4f000000800000008003000080220603089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc10d90c6a4f00000080000000800200008000220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+* Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAAiAgKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgf0cwRAIgdAGK1BgAl7hzMjwAFXILNoTMgSOJEEjn282bVa1nnJkCIHPTabdA4+tT3O+jOCPIBwUUylWn3ZVE8VfBZ5EyYRGMAQEDBAEAAAABBEdSIQKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgfyEC2rYf9JoU22p9ArDNH7t4/EsYMStbTlTa5Nui+/71NtdSriIGApWDvzmuCmCXR60Zmt3WNPphCFWdbFzTm0whg/GrluB/ENkMak8AAACAAAAAgAAAAIAiBgLath/0mhTban0CsM0fu3j8SxgxK1tOVNrk26L7/vU21xDZDGpPAAAAgAAAAIABAACAAAEBIADC6wsAAAAAF6kUt/X69A49QKWkWbHbNTXyty+pIeiHIgIDCJ3BDHrG21T5EymvYXMz2ziM6tDCMfcjN50bmQMLAtxHMEQCIGLrelVhB6fHP0WsSrWh3d9vcHX7EnWWmn84Pv/3hLyyAiAMBdu3Rw2/LwhVfdNWxzJcHtMJE+mWzThAlF2xIijaXwEBAwQBAAAAAQQiACCMI1MXN0O1ld+0oHtyuo5C43l9p06H/n2ddJfjsgKJAwEFR1IhAwidwQx6xttU+RMpr2FzM9s4jOrQwjH3IzedG5kDCwLcIQI63ZBPPW3PWd25BrDe4jUpt/+57VDl6GFRkmhgIh8Oc1KuIgYCOt2QTz1tz1nduQaw3uI1Kbf/ue1Q5ehhUZJoYCIfDnMQ2QxqTwAAAIAAAACAAwAAgCIGAwidwQx6xttU+RMpr2FzM9s4jOrQwjH3IzedG5kDCwLcENkMak8AAACAAAAAgAIAAIAAIgIDqaTDf1mW06ol26xrVwrwZQOUSSlCRgs1R1Ptnuylh3EQ2QxqTwAAAIAAAACABAAAgAAiAgJ/Y5l1fS7/VaE2rQLGhLGDi2VW5fG2s0KCqUtrUAUQlhDZDGpPAAAAgAAAAIAFAACAAA==</pre>
+
+Given the above updated PSBT, a signer with the following keys:
+* <tt>cT7J9YpCwY3AVRFSjN6ukeEeWY6mhpbJPxRaDaP5QTdygQRxP9Au</tt> (<tt>m/0'/0'/1'</tt>)
+* <tt>cNBc3SWUip9PPm1GjRoLEJT6T41iNzCYtD7qro84FMnM5zEqeJsE</tt> (<tt>m/0'/0'/3'</tt>)
+must create this PSBT:
+
+* Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f618765000000220202dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d7483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01010304010000000104475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae2206029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f10d90c6a4f000000800000008000000080220602dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d710d90c6a4f0000008000000080010000800001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e8872202023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e73473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d2010103040100000001042200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903010547522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae2206023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7310d90c6a4f000000800000008003000080220603089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc10d90c6a4f00000080000000800200008000220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+* Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAAiAgLath/0mhTban0CsM0fu3j8SxgxK1tOVNrk26L7/vU210gwRQIhAPYQOLMI3B2oZaNIUnRvAVdyk0IIxtJEVDk82ZvfIhd3AiAFbmdaZ1ptCgK4WxTl4pB02KJam1dgvqKBb2YZEKAG6gEBAwQBAAAAAQRHUiEClYO/Oa4KYJdHrRma3dY0+mEIVZ1sXNObTCGD8auW4H8hAtq2H/SaFNtqfQKwzR+7ePxLGDErW05U2uTbovv+9TbXUq4iBgKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgfxDZDGpPAAAAgAAAAIAAAACAIgYC2rYf9JoU22p9ArDNH7t4/EsYMStbTlTa5Nui+/71NtcQ2QxqTwAAAIAAAACAAQAAgAABASAAwusLAAAAABepFLf1+vQOPUClpFmx2zU18rcvqSHohyICAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zRzBEAiBl9FulmYtZon/+GnvtAWrx8fkNVLOqj3RQql9WolEDvQIgf3JHA60e25ZoCyhLVtT/y4j3+3Weq74IqjDym4UTg9IBAQMEAQAAAAEEIgAgjCNTFzdDtZXftKB7crqOQuN5fadOh/59nXSX47ICiQMBBUdSIQMIncEMesbbVPkTKa9hczPbOIzq0MIx9yM3nRuZAwsC3CECOt2QTz1tz1nduQaw3uI1Kbf/ue1Q5ehhUZJoYCIfDnNSriIGAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zENkMak8AAACAAAAAgAMAAIAiBgMIncEMesbbVPkTKa9hczPbOIzq0MIx9yM3nRuZAwsC3BDZDGpPAAAAgAAAAIACAACAACICA6mkw39ZltOqJdusa1cK8GUDlEkpQkYLNUdT7Z7spYdxENkMak8AAACAAAAAgAQAAIAAIgICf2OZdX0u/1WhNq0CxoSxg4tlVuXxtrNCgqlLa1AFEJYQ2QxqTwAAAIAAAACABQAAgAA=</pre>
+
+Given both of the above PSBTs, a combiner must create this PSBT:
+
+* Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f6187650000002202029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f473044022074018ad4180097b873323c0015720b3684cc8123891048e7dbcd9b55ad679c99022073d369b740e3eb53dcefa33823c8070514ca55a7dd9544f157c167913261118c01220202dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d7483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01010304010000000104475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae2206029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f10d90c6a4f000000800000008000000080220602dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d710d90c6a4f0000008000000080010000800001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e887220203089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc473044022062eb7a556107a7c73f45ac4ab5a1dddf6f7075fb1275969a7f383efff784bcb202200c05dbb7470dbf2f08557dd356c7325c1ed30913e996cd3840945db12228da5f012202023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e73473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d2010103040100000001042200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903010547522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae2206023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7310d90c6a4f000000800000008003000080220603089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc10d90c6a4f00000080000000800200008000220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+* Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAAiAgKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgf0cwRAIgdAGK1BgAl7hzMjwAFXILNoTMgSOJEEjn282bVa1nnJkCIHPTabdA4+tT3O+jOCPIBwUUylWn3ZVE8VfBZ5EyYRGMASICAtq2H/SaFNtqfQKwzR+7ePxLGDErW05U2uTbovv+9TbXSDBFAiEA9hA4swjcHahlo0hSdG8BV3KTQgjG0kRUOTzZm98iF3cCIAVuZ1pnWm0KArhbFOXikHTYolqbV2C+ooFvZhkQoAbqAQEDBAEAAAABBEdSIQKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgfyEC2rYf9JoU22p9ArDNH7t4/EsYMStbTlTa5Nui+/71NtdSriIGApWDvzmuCmCXR60Zmt3WNPphCFWdbFzTm0whg/GrluB/ENkMak8AAACAAAAAgAAAAIAiBgLath/0mhTban0CsM0fu3j8SxgxK1tOVNrk26L7/vU21xDZDGpPAAAAgAAAAIABAACAAAEBIADC6wsAAAAAF6kUt/X69A49QKWkWbHbNTXyty+pIeiHIgIDCJ3BDHrG21T5EymvYXMz2ziM6tDCMfcjN50bmQMLAtxHMEQCIGLrelVhB6fHP0WsSrWh3d9vcHX7EnWWmn84Pv/3hLyyAiAMBdu3Rw2/LwhVfdNWxzJcHtMJE+mWzThAlF2xIijaXwEiAgI63ZBPPW3PWd25BrDe4jUpt/+57VDl6GFRkmhgIh8Oc0cwRAIgZfRbpZmLWaJ//hp77QFq8fH5DVSzqo90UKpfVqJRA70CIH9yRwOtHtuWaAsoS1bU/8uI9/t1nqu+CKow8puFE4PSAQEDBAEAAAABBCIAIIwjUxc3Q7WV37Sge3K6jkLjeX2nTof+fZ10l+OyAokDAQVHUiEDCJ3BDHrG21T5EymvYXMz2ziM6tDCMfcjN50bmQMLAtwhAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zUq4iBgI63ZBPPW3PWd25BrDe4jUpt/+57VDl6GFRkmhgIh8OcxDZDGpPAAAAgAAAAIADAACAIgYDCJ3BDHrG21T5EymvYXMz2ziM6tDCMfcjN50bmQMLAtwQ2QxqTwAAAIAAAACAAgAAgAAiAgOppMN/WZbTqiXbrGtXCvBlA5RJKUJGCzVHU+2e7KWHcRDZDGpPAAAAgAAAAIAEAACAACICAn9jmXV9Lv9VoTatAsaEsYOLZVbl8bazQoKpS2tQBRCWENkMak8AAACAAAAAgAUAAIAA</pre>
+
+Given the above PSBT, an input finalizer must create this PSBT:
+
+* Bytes in Hex: <pre>70736274ff01009a020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000000100bb0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f6187650000000107da00473044022074018ad4180097b873323c0015720b3684cc8123891048e7dbcd9b55ad679c99022073d369b740e3eb53dcefa33823c8070514ca55a7dd9544f157c167913261118c01483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae0001012000c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e8870107232200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b20289030108da0400473044022062eb7a556107a7c73f45ac4ab5a1dddf6f7075fb1275969a7f383efff784bcb202200c05dbb7470dbf2f08557dd356c7325c1ed30913e996cd3840945db12228da5f01473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d20147522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae00220203a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca5877110d90c6a4f000000800000008004000080002202027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b5005109610d90c6a4f00000080000000800500008000</pre>
+* Base64 String: <pre>cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWABTYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFgAUAK6pouXw+HaliN9VRuh0LR2HAI8AAAAAAAEAuwIAAAABqtc5MQGL0l+ErkALaISL4J23BurCrBgpi6vucatlb4sAAAAASEcwRAIgWPb8fGoz4bMVSNSByCbAFb0wE1qtQs1neQ2rZtKtJDsCIEoc7SYExnNbY5PltBaR3XiwDwxZQvufdRhW+qk4FX26Af7///8CgPD6AgAAAAAXqRQPuUY0IWlrgsgzryQceMF9295JNIfQ8gonAQAAABepFCnKdPigj4GZlCgYXJe12FLkBj9hh2UAAAABB9oARzBEAiB0AYrUGACXuHMyPAAVcgs2hMyBI4kQSOfbzZtVrWecmQIgc9Npt0Dj61Pc76M4I8gHBRTKVafdlUTxV8FnkTJhEYwBSDBFAiEA9hA4swjcHahlo0hSdG8BV3KTQgjG0kRUOTzZm98iF3cCIAVuZ1pnWm0KArhbFOXikHTYolqbV2C+ooFvZhkQoAbqAUdSIQKVg785rgpgl0etGZrd1jT6YQhVnWxc05tMIYPxq5bgfyEC2rYf9JoU22p9ArDNH7t4/EsYMStbTlTa5Nui+/71NtdSrgABASAAwusLAAAAABepFLf1+vQOPUClpFmx2zU18rcvqSHohwEHIyIAIIwjUxc3Q7WV37Sge3K6jkLjeX2nTof+fZ10l+OyAokDAQjaBABHMEQCIGLrelVhB6fHP0WsSrWh3d9vcHX7EnWWmn84Pv/3hLyyAiAMBdu3Rw2/LwhVfdNWxzJcHtMJE+mWzThAlF2xIijaXwFHMEQCIGX0W6WZi1mif/4ae+0BavHx+Q1Us6qPdFCqX1aiUQO9AiB/ckcDrR7blmgLKEtW1P/LiPf7dZ6rvgiqMPKbhROD0gFHUiEDCJ3BDHrG21T5EymvYXMz2ziM6tDCMfcjN50bmQMLAtwhAjrdkE89bc9Z3bkGsN7iNSm3/7ntUOXoYVGSaGAiHw5zUq4AIgIDqaTDf1mW06ol26xrVwrwZQOUSSlCRgs1R1Ptnuylh3EQ2QxqTwAAAIAAAACABAAAgAAiAgJ/Y5l1fS7/VaE2rQLGhLGDi2VW5fG2s0KCqUtrUAUQlhDZDGpPAAAAgAAAAIAFAACAAA==</pre>
+
+Given the above PSBT, a transaction extractor must create this Bitcoin transaction:
+
+* Bytes in Hex: <pre>0200000000010258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd7500000000da00473044022074018ad4180097b873323c0015720b3684cc8123891048e7dbcd9b55ad679c99022073d369b740e3eb53dcefa33823c8070514ca55a7dd9544f157c167913261118c01483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752aeffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d01000000232200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f000400473044022062eb7a556107a7c73f45ac4ab5a1dddf6f7075fb1275969a7f383efff784bcb202200c05dbb7470dbf2f08557dd356c7325c1ed30913e996cd3840945db12228da5f01473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d20147522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae00000000</pre>
+
+Given these two PSBTs with unknown key-value pairs:
+* Bytes in Hex: <pre>70736274ff01003f0200000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffff010000000000000000036a0100000000000a0f0102030405060708090f0102030405060708090a0b0c0d0e0f000a0f0102030405060708090f0102030405060708090a0b0c0d0e0f000a0f0102030405060708090f0102030405060708090a0b0c0d0e0f00</pre>
+** Base64 String: <pre>cHNidP8BAD8CAAAAAf//////////////////////////////////////////AAAAAAD/////AQAAAAAAAAAAA2oBAAAAAAAKDwECAwQFBgcICQ8BAgMEBQYHCAkKCwwNDg8ACg8BAgMEBQYHCAkPAQIDBAUGBwgJCgsMDQ4PAAoPAQIDBAUGBwgJDwECAwQFBgcICQoLDA0ODwA=</pre>
+
+* Bytes in Hex: <pre>70736274ff01003f0200000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffff010000000000000000036a0100000000000a0f0102030405060708100f0102030405060708090a0b0c0d0e0f000a0f0102030405060708100f0102030405060708090a0b0c0d0e0f000a0f0102030405060708100f0102030405060708090a0b0c0d0e0f00</pre>
+** Base64 String: <pre>cHNidP8BAD8CAAAAAf//////////////////////////////////////////AAAAAAD/////AQAAAAAAAAAAA2oBAAAAAAAKDwECAwQFBgcIEA8BAgMEBQYHCAkKCwwNDg8ACg8BAgMEBQYHCBAPAQIDBAUGBwgJCgsMDQ4PAAoPAQIDBAUGBwgQDwECAwQFBgcICQoLDA0ODwA=</pre>
+
+A combiner which orders keys lexicographically must produce the following PSBT:
+
+* Bytes in Hex: <pre>70736274ff01003f0200000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffff010000000000000000036a0100000000000a0f0102030405060708090f0102030405060708090a0b0c0d0e0f0a0f0102030405060708100f0102030405060708090a0b0c0d0e0f000a0f0102030405060708090f0102030405060708090a0b0c0d0e0f0a0f0102030405060708100f0102030405060708090a0b0c0d0e0f000a0f0102030405060708090f0102030405060708090a0b0c0d0e0f0a0f0102030405060708100f0102030405060708090a0b0c0d0e0f00</pre>
+* Base64 String: <pre>cHNidP8BAD8CAAAAAf//////////////////////////////////////////AAAAAAD/////AQAAAAAAAAAAA2oBAAAAAAAKDwECAwQFBgcICQ8BAgMEBQYHCAkKCwwNDg8KDwECAwQFBgcIEA8BAgMEBQYHCAkKCwwNDg8ACg8BAgMEBQYHCAkPAQIDBAUGBwgJCgsMDQ4PCg8BAgMEBQYHCBAPAQIDBAUGBwgJCgsMDQ4PAAoPAQIDBAUGBwgJDwECAwQFBgcICQoLDA0ODwoPAQIDBAUGBwgQDwECAwQFBgcICQoLDA0ODwA=</pre>
+
+==Rationale==
+
+<references/>
+
+==Reference implementation==
+
+The reference implementation of the PSBT format is available at https://github.com/achow101/bitcoin/tree/psbt.
+
+==Acknowledgements==
+
+Special thanks to Pieter Wuille for suggesting that such a transaction format should be made
+and for coming up with the name and abbreviation of PSBT.
+
+Thanks to Pieter Wuille, Gregory Maxwell, Jonathan Underwood, Daniel Cousens and those who commented on the bitcoin-dev mailing list for additional comments
+and suggestions for improving this proposal.
+
+==Appendix A: Data types and their specifications==
+
+Any data types, their associated scope and BIP number must be defined here
+
+{| class="wikitable" style="width: auto; text-align: center; font-size: smaller; table-layout: fixed;"
+!Scope
+!Type values
+!Name
+!BIP Number
+|-
+| Global
+| 0
+| PSBT_GLOBAL_UNSIGNED_TX
+| BIP 174
+|-
+| Global
+| 1
+| PSBT_GLOBAL_XPUB
+| BIP 174
+|-
+| Global
+| 251
+| PSBT_GLOBAL_VERSION
+| BIP 174
+|-
+| Global
+| 252
+| PSBT_GLOBAL_PROPRIETARY
+| BIP 174
+|-
+| Input
+| 0
+| PSBT_IN_NON_WITNESS_UTXO
+| BIP 174
+|-
+| Input
+| 1
+| PSBT_IN_WITNESS_UTXO
+| BIP 174
+|-
+| Input
+| 2
+| PSBT_IN_PARTIAL_SIG
+| BIP 174
+|-
+| Input
+| 3
+| PSBT_IN_SIGHASH_TYPE
+| BIP 174
+|-
+| Input
+| 4
+| PSBT_IN_REDEEM_SCRIPT
+| BIP 174
+|-
+| Input
+| 5
+| PSBT_IN_WITNESS_SCRIPT
+| BIP 174
+|-
+| Input
+| 6
+| PSBT_IN_BIP32_DERIVATION
+| BIP 174
+|-
+| Input
+| 7
+| PSBT_IN_FINAL_SCRIPTSIG
+| BIP 174
+|-
+| Input
+| 8
+| PSBT_IN_FINAL_SCRIPTWITNESS
+| BIP 174
+|-
+| Input
+| 9
+| PSBT_IN_POR_COMMITMENT
+| [[bip-0127.mediawiki|BIP 127]]
+|-
+| Input
+| 252
+| PSBT_IN_PROPRIETARY
+| BIP 174
+|-
+| Output
+| 0
+| PSBT_OUT_REDEEM_SCRIPT
+| BIP 174
+|-
+| Output
+| 1
+| PSBT_OUT_WITNESS_SCRIPT
+| BIP 174
+|-
+| Output
+| 2
+| PSBT_OUT_BIP32_DERIVATION
+| BIP 174
+|-
+| Output
+| 252
+| PSBT_OUT_PROPRIETARY
+| BIP 174
+|}
diff --git a/bip-0174/coinjoin-workflow.svg b/bip-0174/coinjoin-workflow.svg
new file mode 100644
index 0000000..67a0aad
--- /dev/null
+++ b/bip-0174/coinjoin-workflow.svg
@@ -0,0 +1,655 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="420.819pt" height="118.266pt" viewBox="0 0 420.819 118.266" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 6.359375 0 L 3.765625 -6.921875 L 2.875 -6.921875 L 0.28125 0 L 1.015625 0 L 1.78125 -2.03125 L 4.6875 -2.03125 L 5.4375 0 Z M 4.46875 -2.59375 L 2 -2.59375 C 2.5 -4.015625 2.140625 -2.96875 2.640625 -4.390625 C 2.84375 -4.984375 3.15625 -5.828125 3.234375 -6.203125 C 3.265625 -6.0625 3.328125 -5.8125 3.5625 -5.15625 Z M 4.46875 -2.59375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 1.5625 0 L 1.5625 -6.921875 L 0.8125 -6.921875 L 0.8125 0 Z M 1.5625 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 1.5625 0 L 1.5625 -4.421875 L 0.8125 -4.421875 L 0.8125 0 Z M 1.640625 -5.640625 L 1.640625 -6.53125 L 0.75 -6.53125 L 0.75 -5.640625 Z M 1.640625 -5.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 4.140625 -0.40625 L 4.078125 -1.0625 C 3.5625 -0.671875 3.03125 -0.53125 2.515625 -0.53125 C 1.6875 -0.53125 1.140625 -1.25 1.140625 -2.21875 C 1.140625 -3 1.5 -3.953125 2.5625 -3.953125 C 3.078125 -3.953125 3.421875 -3.875 3.96875 -3.515625 L 4.09375 -4.171875 C 3.5 -4.5 3.15625 -4.59375 2.546875 -4.59375 C 1.171875 -4.59375 0.359375 -3.390625 0.359375 -2.21875 C 0.359375 -0.984375 1.265625 0.109375 2.515625 0.109375 C 3.046875 0.109375 3.59375 -0.03125 4.140625 -0.40625 Z M 4.140625 -0.40625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 4.125 -2.1875 C 4.125 -2.515625 4.109375 -3.265625 3.734375 -3.875 C 3.3125 -4.484375 2.71875 -4.59375 2.359375 -4.59375 C 1.25 -4.59375 0.34375 -3.53125 0.34375 -2.25 C 0.34375 -0.9375 1.3125 0.109375 2.5 0.109375 C 3.125 0.109375 3.703125 -0.125 4.09375 -0.40625 L 4.03125 -1.0625 C 3.40625 -0.53125 2.734375 -0.5 2.515625 -0.5 C 1.71875 -0.5 1.078125 -1.203125 1.046875 -2.1875 Z M 3.5625 -2.734375 L 1.09375 -2.734375 C 1.25 -3.484375 1.78125 -3.984375 2.359375 -3.984375 C 2.875 -3.984375 3.421875 -3.65625 3.5625 -2.734375 Z M 3.5625 -2.734375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 3.265625 -3.875 L 3.265625 -4.53125 C 2.375 -4.53125 1.828125 -4.03125 1.515625 -3.578125 L 1.515625 -4.484375 L 0.8125 -4.484375 L 0.8125 0 L 1.5625 0 L 1.5625 -2.140625 C 1.5625 -3.125 2.28125 -3.84375 3.265625 -3.875 Z M 3.265625 -3.875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 4.078125 0 L 4.078125 -2.875 C 4.078125 -3.890625 3.34375 -4.59375 2.4375 -4.59375 C 1.78125 -4.59375 1.328125 -4.4375 0.875 -4.171875 L 0.921875 -3.515625 C 1.453125 -3.875 1.9375 -4 2.4375 -4 C 2.90625 -4 3.296875 -3.609375 3.296875 -2.875 L 3.296875 -2.4375 C 1.796875 -2.421875 0.53125 -2 0.53125 -1.125 C 0.53125 -0.703125 0.8125 0.109375 1.671875 0.109375 C 1.8125 0.109375 2.75 0.09375 3.328125 -0.359375 L 3.328125 0 Z M 3.296875 -1.3125 C 3.296875 -1.125 3.296875 -0.875 2.953125 -0.6875 C 2.671875 -0.515625 2.296875 -0.5 2.1875 -0.5 C 1.703125 -0.5 1.25 -0.734375 1.25 -1.140625 C 1.25 -1.84375 2.875 -1.90625 3.296875 -1.9375 Z M 3.296875 -1.3125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 3.3125 -0.265625 L 3.15625 -0.859375 C 2.890625 -0.640625 2.578125 -0.53125 2.25 -0.53125 C 1.890625 -0.53125 1.75 -0.828125 1.75 -1.359375 L 1.75 -3.84375 L 3.15625 -3.84375 L 3.15625 -4.421875 L 1.75 -4.421875 L 1.75 -5.6875 L 1.0625 -5.6875 L 1.0625 -4.421875 L 0.1875 -4.421875 L 0.1875 -3.84375 L 1.03125 -3.84375 L 1.03125 -1.1875 C 1.03125 -0.59375 1.171875 0.109375 1.859375 0.109375 C 2.546875 0.109375 3.0625 -0.140625 3.3125 -0.265625 Z M 3.3125 -0.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 3.59375 -1.28125 C 3.59375 -1.828125 3.21875 -2.15625 3.203125 -2.1875 C 2.8125 -2.546875 2.546875 -2.609375 2.046875 -2.6875 C 1.5 -2.796875 1.03125 -2.90625 1.03125 -3.390625 C 1.03125 -4 1.75 -4 1.890625 -4 C 2.203125 -4 2.734375 -3.96875 3.296875 -3.625 L 3.421875 -4.28125 C 2.90625 -4.515625 2.5 -4.59375 1.984375 -4.59375 C 1.734375 -4.59375 0.328125 -4.59375 0.328125 -3.296875 C 0.328125 -2.796875 0.625 -2.484375 0.875 -2.296875 C 1.171875 -2.078125 1.390625 -2.03125 1.9375 -1.921875 C 2.296875 -1.859375 2.875 -1.734375 2.875 -1.203125 C 2.875 -0.515625 2.09375 -0.515625 1.9375 -0.515625 C 1.140625 -0.515625 0.578125 -0.890625 0.40625 -1 L 0.28125 -0.328125 C 0.59375 -0.171875 1.140625 0.109375 1.953125 0.109375 C 2.140625 0.109375 2.6875 0.109375 3.109375 -0.203125 C 3.421875 -0.453125 3.59375 -0.84375 3.59375 -1.28125 Z M 3.59375 -1.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 5.796875 -4.90625 C 5.796875 -5.96875 4.8125 -6.921875 3.4375 -6.921875 L 0.953125 -6.921875 L 0.953125 0 L 1.84375 0 L 1.84375 -2.875 L 3.515625 -2.875 C 4.75 -2.875 5.796875 -3.78125 5.796875 -4.90625 Z M 5 -4.90625 C 5 -4.109375 4.359375 -3.453125 3.21875 -3.453125 L 1.8125 -3.453125 L 1.8125 -6.359375 L 3.21875 -6.359375 C 4.3125 -6.359375 5 -5.75 5 -4.90625 Z M 5 -4.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 4.96875 -1.890625 C 4.96875 -2.53125 4.671875 -3.015625 4.453125 -3.25 C 3.984375 -3.75 3.65625 -3.84375 2.734375 -4.0625 C 2.15625 -4.203125 2 -4.25 1.6875 -4.5 C 1.625 -4.5625 1.34375 -4.859375 1.34375 -5.296875 C 1.34375 -5.875 1.890625 -6.484375 2.796875 -6.484375 C 3.640625 -6.484375 4.109375 -6.15625 4.484375 -5.84375 L 4.640625 -6.640625 C 4.09375 -6.96875 3.53125 -7.140625 2.8125 -7.140625 C 1.421875 -7.140625 0.5625 -6.15625 0.5625 -5.171875 C 0.5625 -4.75 0.703125 -4.328125 1.09375 -3.90625 C 1.515625 -3.453125 1.953125 -3.34375 2.546875 -3.203125 C 3.390625 -2.984375 3.484375 -2.953125 3.765625 -2.71875 C 3.96875 -2.546875 4.1875 -2.21875 4.1875 -1.78125 C 4.1875 -1.125 3.640625 -0.46875 2.734375 -0.46875 C 2.328125 -0.46875 1.421875 -0.5625 0.59375 -1.28125 L 0.4375 -0.46875 C 1.3125 0.078125 2.109375 0.21875 2.734375 0.21875 C 4.0625 0.21875 4.96875 -0.78125 4.96875 -1.890625 Z M 4.96875 -1.890625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 6.078125 -1.875 C 6.078125 -2.734375 5.21875 -3.453125 4.15625 -3.625 C 5.0625 -3.84375 5.8125 -4.421875 5.8125 -5.1875 C 5.8125 -6.09375 4.75 -6.921875 3.328125 -6.921875 L 0.96875 -6.921875 L 0.96875 0 L 3.59375 0 C 5.03125 0 6.078125 -0.890625 6.078125 -1.875 Z M 5.03125 -5.171875 C 5.03125 -4.578125 4.328125 -3.890625 2.953125 -3.890625 L 1.796875 -3.890625 L 1.796875 -6.359375 L 3.046875 -6.359375 C 4.15625 -6.359375 5.03125 -5.828125 5.03125 -5.171875 Z M 5.28125 -1.890625 C 5.28125 -1.140625 4.390625 -0.5625 3.3125 -0.5625 L 1.796875 -0.5625 L 1.796875 -3.296875 L 3.234375 -3.296875 C 4.296875 -3.296875 5.28125 -2.6875 5.28125 -1.890625 Z M 5.28125 -1.890625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d="M 6.421875 -6.203125 L 6.421875 -6.859375 L 0.359375 -6.859375 L 0.359375 -6.203125 L 1.6875 -6.203125 C 1.8125 -6.203125 1.9375 -6.21875 2.046875 -6.21875 L 2.953125 -6.21875 L 2.953125 0 L 3.84375 0 L 3.84375 -6.21875 L 4.71875 -6.21875 C 4.84375 -6.21875 4.96875 -6.203125 5.078125 -6.203125 Z M 6.421875 -6.203125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 6.65625 -4.421875 L 5.9375 -4.421875 L 5.296875 -2.3125 C 5.1875 -1.953125 4.890625 -0.96875 4.828125 -0.53125 C 4.78125 -0.84375 4.53125 -1.734375 4.359375 -2.296875 L 3.71875 -4.421875 L 3.015625 -4.421875 L 2.453125 -2.546875 C 2.34375 -2.203125 2 -1.0625 1.96875 -0.546875 L 1.953125 -0.546875 C 1.90625 -1.03125 1.578125 -2.15625 1.421875 -2.703125 L 0.890625 -4.421875 L 0.140625 -4.421875 L 1.5 0 L 2.296875 0 L 2.90625 -2.046875 C 3.046875 -2.515625 3.328125 -3.5 3.359375 -3.875 L 3.375 -3.875 C 3.390625 -3.59375 3.5625 -2.90625 3.6875 -2.46875 L 4.421875 0 L 5.296875 0 Z M 6.65625 -4.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 4.34375 0 L 4.34375 -2.96875 C 4.34375 -3.625 4.1875 -4.53125 2.96875 -4.53125 C 2.359375 -4.53125 1.875 -4.234375 1.5625 -3.8125 L 1.5625 -6.921875 L 0.8125 -6.921875 L 0.8125 0 L 1.578125 0 L 1.578125 -2.4375 C 1.578125 -3.09375 1.828125 -3.921875 2.59375 -3.921875 C 3.546875 -3.921875 3.5625 -3.21875 3.5625 -2.90625 L 3.5625 0 Z M 4.34375 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 4.671875 -2.1875 C 4.671875 -3.53125 3.671875 -4.59375 2.5 -4.59375 C 1.265625 -4.59375 0.296875 -3.5 0.296875 -2.1875 C 0.296875 -0.875 1.3125 0.109375 2.484375 0.109375 C 3.671875 0.109375 4.671875 -0.890625 4.671875 -2.1875 Z M 3.890625 -2.296875 C 3.890625 -1.109375 3.21875 -0.53125 2.484375 -0.53125 C 1.796875 -0.53125 1.078125 -1.09375 1.078125 -2.296875 C 1.078125 -3.5 1.828125 -3.984375 2.484375 -3.984375 C 3.1875 -3.984375 3.890625 -3.46875 3.890625 -2.296875 Z M 3.890625 -2.296875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 4.34375 0 L 4.34375 -2.96875 C 4.34375 -3.625 4.1875 -4.53125 2.96875 -4.53125 C 2.078125 -4.53125 1.578125 -3.859375 1.53125 -3.78125 L 1.53125 -4.484375 L 0.8125 -4.484375 L 0.8125 0 L 1.578125 0 L 1.578125 -2.4375 C 1.578125 -3.09375 1.828125 -3.921875 2.59375 -3.921875 C 3.546875 -3.921875 3.5625 -3.21875 3.5625 -2.90625 L 3.5625 0 Z M 4.34375 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 4.453125 -4.421875 L 3.703125 -4.421875 C 2.40625 -1.25 2.375 -0.796875 2.375 -0.5625 L 2.359375 -0.5625 C 2.296875 -1.234375 1.5 -3.09375 1.46875 -3.1875 L 0.921875 -4.421875 L 0.140625 -4.421875 L 2.078125 0 L 1.71875 0.890625 C 1.453125 1.46875 1.28125 1.46875 1.140625 1.46875 C 0.984375 1.46875 0.671875 1.4375 0.375 1.3125 L 0.421875 1.96875 C 0.640625 2.015625 0.921875 2.046875 1.140625 2.046875 C 1.5 2.046875 1.859375 1.921875 2.265625 0.90625 Z M 4.453125 -4.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 4.78125 -2.21875 C 4.78125 -3.421875 4.15625 -4.53125 3.203125 -4.53125 C 2.609375 -4.53125 2.03125 -4.328125 1.5625 -3.9375 L 1.5625 -4.421875 L 0.8125 -4.421875 L 0.8125 1.9375 L 1.59375 1.9375 L 1.59375 -0.453125 C 1.90625 -0.171875 2.34375 0.109375 2.9375 0.109375 C 3.90625 0.109375 4.78125 -0.875 4.78125 -2.21875 Z M 4 -2.21875 C 4 -1.203125 3.296875 -0.5 2.546875 -0.5 C 2.15625 -0.5 1.890625 -0.703125 1.6875 -0.96875 C 1.59375 -1.109375 1.59375 -1.140625 1.59375 -1.3125 L 1.59375 -3.3125 C 1.828125 -3.671875 2.21875 -3.890625 2.65625 -3.890625 C 3.40625 -3.890625 4 -3.140625 4 -2.21875 Z M 4 -2.21875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 4.34375 0 L 4.34375 -4.421875 L 3.5625 -4.421875 L 3.5625 -1.53125 C 3.5625 -0.78125 3 -0.4375 2.359375 -0.4375 C 1.65625 -0.4375 1.578125 -0.703125 1.578125 -1.125 L 1.578125 -4.421875 L 0.8125 -4.421875 L 0.8125 -1.09375 C 0.8125 -0.375 1.03125 0.109375 1.859375 0.109375 C 2.390625 0.109375 3.09375 -0.046875 3.59375 -0.484375 L 3.59375 0 Z M 4.34375 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 5.90625 -2.328125 L 5.90625 -6.921875 L 5.140625 -6.921875 L 5.140625 -2.3125 C 5.140625 -1 4.296875 -0.34375 3.453125 -0.34375 C 2.640625 -0.34375 1.828125 -0.96875 1.828125 -2.3125 L 1.828125 -6.921875 L 0.9375 -6.921875 L 0.9375 -2.328125 C 0.9375 -0.875 2.109375 0.21875 3.453125 0.21875 C 4.78125 0.21875 5.90625 -0.875 5.90625 -2.328125 Z M 5.90625 -2.328125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-22">
+<path style="stroke:none;" d="M 6.5 0 L 3.671875 -3.65625 L 6.078125 -6.921875 L 5.125 -6.921875 L 3.25 -4.3125 L 1.3125 -6.921875 L 0.28125 -6.921875 L 2.828125 -3.65625 L 0.140625 0 L 1.09375 0 L 3.25 -3.046875 L 5.46875 0 Z M 6.5 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-23">
+<path style="stroke:none;" d="M 6.765625 -3.4375 C 6.765625 -5.53125 5.328125 -7.140625 3.671875 -7.140625 C 1.96875 -7.140625 0.5625 -5.515625 0.5625 -3.4375 C 0.5625 -1.328125 2.03125 0.21875 3.65625 0.21875 C 5.328125 0.21875 6.765625 -1.34375 6.765625 -3.4375 Z M 5.875 -3.59375 C 5.875 -1.640625 4.8125 -0.421875 3.671875 -0.421875 C 2.5 -0.421875 1.453125 -1.671875 1.453125 -3.59375 C 1.453125 -5.40625 2.546875 -6.5 3.65625 -6.5 C 4.8125 -6.5 5.875 -5.375 5.875 -3.59375 Z M 5.875 -3.59375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-24">
+<path style="stroke:none;" d="M 4.5625 -6.09375 L 4.5625 -6.921875 L 3.734375 -6.921875 L 3.734375 -6.09375 Z M 4.515625 0 L 4.515625 -4.421875 L 3.765625 -4.421875 L 3.765625 0 Z M 2.9375 -3.84375 L 2.9375 -4.421875 L 1.71875 -4.421875 L 1.71875 -5.625 C 1.71875 -6.265625 2.078125 -6.421875 2.328125 -6.421875 C 2.546875 -6.421875 2.765625 -6.34375 2.9375 -6.234375 L 2.9375 -6.921875 C 2.875 -6.9375 2.625 -7.03125 2.328125 -7.03125 C 1.59375 -7.03125 1 -6.328125 1 -5.328125 L 1 -4.421875 L 0.265625 -4.421875 L 0.265625 -3.84375 L 1 -3.84375 L 1 0 L 1.75 0 L 1.75 -3.84375 Z M 2.9375 -3.84375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-25">
+<path style="stroke:none;" d="M 4.328125 0 L 4.328125 -6.921875 L 3.578125 -6.921875 L 3.578125 -3.984375 C 3.046875 -4.421875 2.5 -4.53125 2.125 -4.53125 C 1.140625 -4.53125 0.359375 -3.5 0.359375 -2.21875 C 0.359375 -0.90625 1.125 0.109375 2.078125 0.109375 C 2.40625 0.109375 2.984375 0.015625 3.546875 -0.515625 L 3.546875 0 Z M 3.546875 -1.390625 C 3.546875 -1.25 3.53125 -1.0625 3.21875 -0.78125 C 2.984375 -0.578125 2.734375 -0.5 2.484375 -0.5 C 1.859375 -0.5 1.140625 -0.96875 1.140625 -2.203125 C 1.140625 -3.515625 2 -3.921875 2.578125 -3.921875 C 3.03125 -3.921875 3.328125 -3.703125 3.546875 -3.375 Z M 3.546875 -1.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-26">
+<path style="stroke:none;" d="M 1.796875 0 L 1.796875 -0.828125 L 0.96875 -0.828125 L 0.96875 0 Z M 1.796875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-27">
+<path style="stroke:none;" d="M 4.78125 -2.21875 C 4.78125 -3.453125 4.109375 -4.53125 3.171875 -4.53125 C 2.78125 -4.53125 2.15625 -4.4375 1.5625 -3.953125 L 1.5625 -6.921875 L 0.8125 -6.921875 L 0.8125 0 L 1.59375 0 L 1.59375 -0.453125 C 1.828125 -0.234375 2.265625 0.109375 2.9375 0.109375 C 3.921875 0.109375 4.78125 -0.890625 4.78125 -2.21875 Z M 4 -2.21875 C 4 -0.921875 3.171875 -0.5 2.5625 -0.5 C 2.171875 -0.5 1.84375 -0.671875 1.59375 -1.140625 L 1.59375 -3.34375 C 1.75 -3.578125 2.109375 -3.921875 2.65625 -3.921875 C 3.25 -3.921875 4 -3.5 4 -2.21875 Z M 4 -2.21875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-28">
+<path style="stroke:none;" d="M 5.859375 -0.453125 L 5.796875 -1.140625 C 5.5 -0.9375 5.21875 -0.75 4.875 -0.640625 C 4.5625 -0.53125 4.203125 -0.53125 3.875 -0.53125 C 3.21875 -0.53125 2.625 -0.875 2.21875 -1.390625 C 1.765625 -1.96875 1.546875 -2.71875 1.546875 -3.453125 C 1.546875 -4.203125 1.765625 -4.953125 2.21875 -5.546875 C 2.625 -6.046875 3.21875 -6.40625 3.875 -6.40625 C 4.171875 -6.40625 4.46875 -6.375 4.765625 -6.28125 C 5.0625 -6.1875 5.34375 -6.046875 5.609375 -5.859375 L 5.734375 -6.671875 C 5.4375 -6.796875 5.140625 -6.890625 4.8125 -6.953125 C 4.5 -7.015625 4.1875 -7.03125 3.875 -7.03125 C 2.984375 -7.03125 2.1875 -6.640625 1.59375 -5.984375 C 0.984375 -5.296875 0.65625 -4.390625 0.65625 -3.453125 C 0.65625 -2.53125 0.984375 -1.625 1.59375 -0.9375 C 2.1875 -0.296875 2.984375 0.109375 3.875 0.109375 C 4.21875 0.109375 4.5625 0.09375 4.90625 0 C 5.25 -0.09375 5.546875 -0.265625 5.859375 -0.453125 Z M 5.859375 -0.453125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-29">
+<path style="stroke:none;" d="M 1.796875 -0.015625 L 1.796875 -0.828125 L 0.96875 -0.828125 L 0.96875 0 L 1.21875 0 L 0.96875 1.25 L 1.375 1.25 Z M 1.796875 -0.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-30">
+<path style="stroke:none;" d="M 4.828125 -3.90625 L 4.71875 -4.53125 C 4.03125 -4.53125 3.453125 -4.34375 3.15625 -4.21875 C 2.9375 -4.390625 2.609375 -4.53125 2.203125 -4.53125 C 1.34375 -4.53125 0.625 -3.8125 0.625 -2.90625 C 0.625 -2.546875 0.75 -2.1875 0.953125 -1.921875 C 0.65625 -1.515625 0.65625 -1.125 0.65625 -1.078125 C 0.65625 -0.8125 0.75 -0.53125 0.921875 -0.3125 C 0.40625 -0.015625 0.28125 0.453125 0.28125 0.703125 C 0.28125 1.453125 1.265625 2.046875 2.484375 2.046875 C 3.703125 2.046875 4.6875 1.46875 4.6875 0.703125 C 4.6875 -0.6875 3.03125 -0.6875 2.640625 -0.6875 L 1.765625 -0.6875 C 1.640625 -0.6875 1.1875 -0.6875 1.1875 -1.21875 C 1.1875 -1.328125 1.21875 -1.484375 1.296875 -1.578125 C 1.5 -1.421875 1.828125 -1.28125 2.203125 -1.28125 C 3.09375 -1.28125 3.796875 -2.03125 3.796875 -2.90625 C 3.796875 -3.390625 3.578125 -3.765625 3.46875 -3.90625 L 3.515625 -3.890625 C 3.734375 -3.890625 4 -3.9375 4.25 -3.9375 C 4.421875 -3.9375 4.828125 -3.90625 4.828125 -3.90625 Z M 3.09375 -2.90625 C 3.09375 -2.140625 2.625 -1.859375 2.203125 -1.859375 C 1.828125 -1.859375 1.3125 -2.078125 1.3125 -2.90625 C 1.3125 -3.734375 1.828125 -3.96875 2.203125 -3.96875 C 2.625 -3.96875 3.09375 -3.6875 3.09375 -2.90625 Z M 4 0.71875 C 4 1.15625 3.3125 1.484375 2.5 1.484375 C 1.6875 1.484375 0.984375 1.171875 0.984375 0.703125 C 0.984375 0.671875 0.984375 0.03125 1.75 0.03125 L 2.65625 0.03125 C 2.875 0.03125 4 0.03125 4 0.71875 Z M 4 0.71875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-31">
+<path style="stroke:none;" d="M 4 0 L 4 -0.625 L 2.546875 -0.625 C 2.421875 -0.625 2.296875 -0.609375 2.1875 -0.609375 L 1.328125 -0.609375 L 3.984375 -4.03125 L 3.984375 -4.421875 L 0.421875 -4.421875 L 0.421875 -3.84375 L 1.796875 -3.84375 C 1.921875 -3.84375 2.046875 -3.84375 2.15625 -3.84375 L 2.9375 -3.84375 L 0.28125 -0.40625 L 0.28125 0 Z M 4 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-32">
+<path style="stroke:none;" d="M 4.578125 0 L 2.59375 -2.28125 L 4.421875 -4.421875 L 3.59375 -4.421875 L 2.265625 -2.78125 L 0.890625 -4.421875 L 0.0625 -4.421875 L 1.9375 -2.28125 L 0 0 L 0.8125 0 L 2.265625 -1.875 L 3.765625 0 Z M 4.578125 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-33">
+<path style="stroke:none;" d="M 4.6875 0 L 2.796875 -2.71875 L 4.46875 -4.421875 L 3.578125 -4.421875 L 1.5625 -2.359375 L 1.5625 -6.921875 L 0.84375 -6.921875 L 0.84375 0 L 1.53125 0 L 1.53125 -1.40625 L 2.328125 -2.234375 L 3.875 0 Z M 4.6875 0 "/>
+</symbol>
+</g>
+<clipPath id="clip1">
+ <path d="M 19 53 L 128 53 L 128 118.265625 L 19 118.265625 Z M 19 53 "/>
+</clipPath>
+</defs>
+<g id="surface1">
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -63.097625 -24.908594 L 63.097687 -24.908594 L 63.097687 24.907812 L -63.097625 24.907812 Z M -63.097625 -24.908594 " transform="matrix(1,0,0,-1,73.457,29.4)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="28.847" y="14.926"/>
+ <use xlink:href="#glyph0-2" x="35.489065" y="14.926"/>
+ <use xlink:href="#glyph0-3" x="37.869131" y="14.926"/>
+ <use xlink:href="#glyph0-4" x="40.249196" y="14.926"/>
+ <use xlink:href="#glyph0-5" x="44.677571" y="14.926"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-4" x="52.423493" y="14.926"/>
+ <use xlink:href="#glyph0-6" x="56.851869" y="14.926"/>
+ <use xlink:href="#glyph0-5" x="60.256089" y="14.926"/>
+ <use xlink:href="#glyph0-7" x="64.684465" y="14.926"/>
+ <use xlink:href="#glyph0-8" x="69.47249" y="14.926"/>
+ <use xlink:href="#glyph0-5" x="73.069985" y="14.926"/>
+ <use xlink:href="#glyph0-9" x="77.498361" y="14.926"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="84.634571" y="14.926"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-10" x="92.750105" y="14.926"/>
+ <use xlink:href="#glyph0-11" x="99.11521" y="14.926"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-12" x="104.640468" y="14.926"/>
+ <use xlink:href="#glyph0-13" x="111.282534" y="14.926"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="31.85" y="26.882"/>
+ <use xlink:href="#glyph0-3" x="38.657445" y="26.882"/>
+ <use xlink:href="#glyph0-8" x="41.03751" y="26.882"/>
+ <use xlink:href="#glyph0-15" x="44.635005" y="26.882"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="53.100226" y="26.882"/>
+ <use xlink:href="#glyph0-17" x="58.081526" y="26.882"/>
+ <use xlink:href="#glyph0-2" x="63.229201" y="26.882"/>
+ <use xlink:href="#glyph0-18" x="65.609266" y="26.882"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="73.53053" y="26.882"/>
+ <use xlink:href="#glyph0-5" x="78.678205" y="26.882"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-6" x="83.096618" y="26.882"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="89.828347" y="26.882"/>
+ <use xlink:href="#glyph0-17" x="92.208412" y="26.882"/>
+ <use xlink:href="#glyph0-19" x="97.356088" y="26.882"/>
+ <use xlink:href="#glyph0-20" x="102.503763" y="26.882"/>
+ <use xlink:href="#glyph0-8" x="107.651438" y="26.882"/>
+ <use xlink:href="#glyph0-9" x="111.248933" y="26.882"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="28.951" y="38.837"/>
+ <use xlink:href="#glyph0-3" x="35.758445" y="38.837"/>
+ <use xlink:href="#glyph0-8" x="38.13851" y="38.837"/>
+ <use xlink:href="#glyph0-15" x="41.736005" y="38.837"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-21" x="50.201226" y="38.837"/>
+ <use xlink:href="#glyph0-13" x="57.050513" y="38.837"/>
+ <use xlink:href="#glyph0-22" x="63.831059" y="38.837"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-23" x="70.194171" y="38.837"/>
+ <use xlink:href="#glyph0-9" x="77.527641" y="38.837"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-24" x="84.673814" y="38.837"/>
+ <use xlink:href="#glyph0-2" x="90.014764" y="38.837"/>
+ <use xlink:href="#glyph0-2" x="92.394829" y="38.837"/>
+ <use xlink:href="#glyph0-5" x="94.774894" y="38.837"/>
+ <use xlink:href="#glyph0-25" x="99.20327" y="38.837"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="107.668491" y="38.837"/>
+ <use xlink:href="#glyph0-17" x="110.048557" y="38.837"/>
+ <use xlink:href="#glyph0-26" x="115.196232" y="38.837"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-11" x="39.391" y="50.792"/>
+ <use xlink:href="#glyph0-5" x="44.926221" y="50.792"/>
+ <use xlink:href="#glyph0-17" x="49.354596" y="50.792"/>
+ <use xlink:href="#glyph0-25" x="54.502272" y="50.792"/>
+ <use xlink:href="#glyph0-9" x="59.649947" y="50.792"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="66.786157" y="50.792"/>
+ <use xlink:href="#glyph0-8" x="69.166223" y="50.792"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-8" x="76.081263" y="50.792"/>
+ <use xlink:href="#glyph0-16" x="79.678758" y="50.792"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-12" x="87.987567" y="50.792"/>
+ <use xlink:href="#glyph0-16" x="94.629632" y="50.792"/>
+ <use xlink:href="#glyph0-27" x="99.610932" y="50.792"/>
+ <use xlink:href="#glyph0-26" x="104.758607" y="50.792"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -63.098187 -24.908594 L 63.097125 -24.908594 L 63.097125 24.907812 L -63.098187 24.907812 Z M -63.098187 -24.908594 " transform="matrix(1,0,0,-1,213.731,29.4)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-12" x="172.621" y="26.882"/>
+ <use xlink:href="#glyph0-16" x="179.263065" y="26.882"/>
+ <use xlink:href="#glyph0-27" x="184.244365" y="26.882"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="192.709587" y="26.882"/>
+ <use xlink:href="#glyph0-25" x="197.497612" y="26.882"/>
+ <use xlink:href="#glyph0-25" x="202.645288" y="26.882"/>
+ <use xlink:href="#glyph0-9" x="207.792963" y="26.882"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="214.939136" y="26.882"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="220.076849" y="26.882"/>
+ <use xlink:href="#glyph0-9" x="222.456914" y="26.882"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="229.603087" y="26.882"/>
+ <use xlink:href="#glyph0-17" x="231.983152" y="26.882"/>
+ <use xlink:href="#glyph0-19" x="237.130828" y="26.882"/>
+ <use xlink:href="#glyph0-20" x="242.278503" y="26.882"/>
+ <use xlink:href="#glyph0-8" x="247.426178" y="26.882"/>
+ <use xlink:href="#glyph0-9" x="251.023673" y="26.882"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="166.194" y="38.837"/>
+ <use xlink:href="#glyph0-17" x="170.982026" y="38.837"/>
+ <use xlink:href="#glyph0-25" x="176.129701" y="38.837"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-24" x="184.594922" y="38.837"/>
+ <use xlink:href="#glyph0-2" x="189.935872" y="38.837"/>
+ <use xlink:href="#glyph0-2" x="192.315937" y="38.837"/>
+ <use xlink:href="#glyph0-9" x="194.696002" y="38.837"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="201.842175" y="38.837"/>
+ <use xlink:href="#glyph0-17" x="204.22224" y="38.837"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="212.687462" y="38.837"/>
+ <use xlink:href="#glyph0-3" x="217.835137" y="38.837"/>
+ <use xlink:href="#glyph0-9" x="220.215202" y="38.837"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-21" x="227.351413" y="38.837"/>
+ <use xlink:href="#glyph0-13" x="234.2007" y="38.837"/>
+ <use xlink:href="#glyph0-22" x="240.981246" y="38.837"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-23" x="247.344358" y="38.837"/>
+ <use xlink:href="#glyph0-9" x="254.677828" y="38.837"/>
+ <use xlink:href="#glyph0-26" x="258.496493" y="38.837"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -63.09775 -25.682031 L 63.097563 -25.682031 L 63.097563 25.68125 L -63.09775 25.68125 Z M -63.09775 -25.682031 " transform="matrix(1,0,0,-1,354.004,29.4)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-28" x="308.259" y="13.958"/>
+ <use xlink:href="#glyph0-7" x="314.624105" y="13.958"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-6" x="319.133178" y="13.958"/>
+ <use xlink:href="#glyph0-16" x="322.537398" y="13.958"/>
+ <use xlink:href="#glyph0-2" x="327.518698" y="13.958"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="333.216309" y="13.958"/>
+ <use xlink:href="#glyph0-25" x="338.004335" y="13.958"/>
+ <use xlink:href="#glyph0-25" x="343.15201" y="13.958"/>
+ <use xlink:href="#glyph0-9" x="348.299686" y="13.958"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="355.445859" y="13.958"/>
+ <use xlink:href="#glyph0-5" x="360.593534" y="13.958"/>
+ <use xlink:href="#glyph0-6" x="365.02191" y="13.958"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="371.743676" y="13.958"/>
+ <use xlink:href="#glyph0-17" x="374.123741" y="13.958"/>
+ <use xlink:href="#glyph0-19" x="379.271417" y="13.958"/>
+ <use xlink:href="#glyph0-20" x="384.419092" y="13.958"/>
+ <use xlink:href="#glyph0-8" x="389.566767" y="13.958"/>
+ <use xlink:href="#glyph0-9" x="393.164262" y="13.958"/>
+ <use xlink:href="#glyph0-29" x="396.982927" y="13.958"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-24" x="314.853" y="25.913"/>
+ <use xlink:href="#glyph0-2" x="320.19395" y="25.913"/>
+ <use xlink:href="#glyph0-2" x="322.574015" y="25.913"/>
+ <use xlink:href="#glyph0-9" x="324.95408" y="25.913"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="332.090291" y="25.913"/>
+ <use xlink:href="#glyph0-17" x="334.470356" y="25.913"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="342.945539" y="25.913"/>
+ <use xlink:href="#glyph0-5" x="348.093215" y="25.913"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-6" x="352.511628" y="25.913"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-21" x="359.243357" y="25.913"/>
+ <use xlink:href="#glyph0-13" x="366.092644" y="25.913"/>
+ <use xlink:href="#glyph0-22" x="372.87319" y="25.913"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-23" x="379.236302" y="25.913"/>
+ <use xlink:href="#glyph0-9" x="386.569772" y="25.913"/>
+ <use xlink:href="#glyph0-29" x="390.388437" y="25.913"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="311.552" y="37.868"/>
+ <use xlink:href="#glyph0-25" x="316.340026" y="37.868"/>
+ <use xlink:href="#glyph0-25" x="321.487701" y="37.868"/>
+ <use xlink:href="#glyph0-9" x="326.635376" y="37.868"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-9" x="333.771587" y="37.868"/>
+ <use xlink:href="#glyph0-3" x="337.590251" y="37.868"/>
+ <use xlink:href="#glyph0-30" x="339.970316" y="37.868"/>
+ <use xlink:href="#glyph0-17" x="344.951616" y="37.868"/>
+ <use xlink:href="#glyph0-7" x="350.099292" y="37.868"/>
+ <use xlink:href="#glyph0-8" x="354.887317" y="37.868"/>
+ <use xlink:href="#glyph0-20" x="358.484812" y="37.868"/>
+ <use xlink:href="#glyph0-6" x="363.632488" y="37.868"/>
+ <use xlink:href="#glyph0-5" x="367.036708" y="37.868"/>
+ <use xlink:href="#glyph0-9" x="371.465084" y="37.868"/>
+ <use xlink:href="#glyph0-29" x="375.283748" y="37.868"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="381.368905" y="37.868"/>
+ <use xlink:href="#glyph0-17" x="386.15693" y="37.868"/>
+ <use xlink:href="#glyph0-25" x="391.304606" y="37.868"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-24" x="313.884" y="49.823"/>
+ <use xlink:href="#glyph0-17" x="319.22495" y="49.823"/>
+ <use xlink:href="#glyph0-7" x="324.372625" y="49.823"/>
+ <use xlink:href="#glyph0-2" x="329.160651" y="49.823"/>
+ <use xlink:href="#glyph0-3" x="331.540716" y="49.823"/>
+ <use xlink:href="#glyph0-31" x="333.920781" y="49.823"/>
+ <use xlink:href="#glyph0-5" x="338.251523" y="49.823"/>
+ <use xlink:href="#glyph0-9" x="342.679899" y="49.823"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="349.816109" y="49.823"/>
+ <use xlink:href="#glyph0-5" x="354.963785" y="49.823"/>
+ <use xlink:href="#glyph0-6" x="359.392161" y="49.823"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="366.113927" y="49.823"/>
+ <use xlink:href="#glyph0-17" x="368.493992" y="49.823"/>
+ <use xlink:href="#glyph0-19" x="373.641667" y="49.823"/>
+ <use xlink:href="#glyph0-20" x="378.789343" y="49.823"/>
+ <use xlink:href="#glyph0-8" x="383.937018" y="49.823"/>
+ <use xlink:href="#glyph0-9" x="387.534513" y="49.823"/>
+ <use xlink:href="#glyph0-26" x="391.353178" y="49.823"/>
+</g>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 112.644531 64.734375 L 34.269531 64.734375 C 32.070312 64.734375 30.285156 66.515625 30.285156 68.71875 L 30.285156 110.5625 C 30.285156 112.761719 32.070312 114.546875 34.269531 114.546875 L 112.644531 114.546875 C 114.84375 114.546875 116.628906 112.761719 116.628906 110.5625 L 116.628906 68.71875 C 116.628906 66.515625 114.84375 64.734375 112.644531 64.734375 Z M 112.644531 64.734375 "/>
+<g clip-path="url(#clip1)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 39.187531 24.905625 L -39.187469 24.905625 C -41.386687 24.905625 -43.171844 23.124375 -43.171844 20.92125 L -43.171844 -20.9225 C -43.171844 -23.121719 -41.386687 -24.906875 -39.187469 -24.906875 L 39.187531 -24.906875 C 41.38675 -24.906875 43.171906 -23.121719 43.171906 -20.9225 L 43.171906 20.92125 C 43.171906 23.124375 41.38675 24.905625 39.187531 24.905625 Z M 39.187531 24.905625 " transform="matrix(1,0,0,-1,73.457,89.64)"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="37.094" y="75.167"/>
+ <use xlink:href="#glyph0-2" x="43.736065" y="75.167"/>
+ <use xlink:href="#glyph0-3" x="46.116131" y="75.167"/>
+ <use xlink:href="#glyph0-4" x="48.496196" y="75.167"/>
+ <use xlink:href="#glyph0-5" x="52.924571" y="75.167"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-5" x="60.670493" y="75.167"/>
+ <use xlink:href="#glyph0-32" x="65.098869" y="75.167"/>
+ <use xlink:href="#glyph0-8" x="69.692623" y="75.167"/>
+ <use xlink:href="#glyph0-6" x="73.290118" y="75.167"/>
+ <use xlink:href="#glyph0-7" x="76.694339" y="75.167"/>
+ <use xlink:href="#glyph0-4" x="81.482364" y="75.167"/>
+ <use xlink:href="#glyph0-8" x="85.91074" y="75.167"/>
+ <use xlink:href="#glyph0-9" x="89.508235" y="75.167"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-8" x="96.644445" y="75.167"/>
+ <use xlink:href="#glyph0-15" x="100.24194" y="75.167"/>
+ <use xlink:href="#glyph0-5" x="105.389616" y="75.167"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-17" x="36.852" y="87.122"/>
+ <use xlink:href="#glyph0-5" x="41.999675" y="87.122"/>
+ <use xlink:href="#glyph0-8" x="46.428051" y="87.122"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="49.746593" y="87.122"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="56.275085" y="87.122"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-6" x="60.987395" y="87.122"/>
+ <use xlink:href="#glyph0-33" x="64.391615" y="87.122"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-9" x="72.579876" y="87.122"/>
+ <use xlink:href="#glyph0-5" x="76.398541" y="87.122"/>
+ <use xlink:href="#glyph0-6" x="80.826916" y="87.122"/>
+ <use xlink:href="#glyph0-3" x="84.231137" y="87.122"/>
+ <use xlink:href="#glyph0-7" x="86.611202" y="87.122"/>
+ <use xlink:href="#glyph0-2" x="91.399228" y="87.122"/>
+ <use xlink:href="#glyph0-3" x="93.779293" y="87.122"/>
+ <use xlink:href="#glyph0-31" x="96.159358" y="87.122"/>
+ <use xlink:href="#glyph0-5" x="100.4901" y="87.122"/>
+ <use xlink:href="#glyph0-25" x="104.918476" y="87.122"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-8" x="41.217" y="99.077"/>
+ <use xlink:href="#glyph0-6" x="44.814495" y="99.077"/>
+ <use xlink:href="#glyph0-7" x="48.218715" y="99.077"/>
+ <use xlink:href="#glyph0-17" x="53.006741" y="99.077"/>
+ <use xlink:href="#glyph0-9" x="58.154416" y="99.077"/>
+ <use xlink:href="#glyph0-7" x="61.973081" y="99.077"/>
+ <use xlink:href="#glyph0-4" x="66.761106" y="99.077"/>
+ <use xlink:href="#glyph0-8" x="71.189482" y="99.077"/>
+ <use xlink:href="#glyph0-3" x="74.786977" y="99.077"/>
+ <use xlink:href="#glyph0-16" x="77.167042" y="99.077"/>
+ <use xlink:href="#glyph0-17" x="82.148342" y="99.077"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="90.613563" y="99.077"/>
+ <use xlink:href="#glyph0-17" x="95.401589" y="99.077"/>
+ <use xlink:href="#glyph0-25" x="100.549264" y="99.077"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-27" x="45.604" y="111.032"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-6" x="50.472723" y="111.032"/>
+ <use xlink:href="#glyph0-16" x="53.876943" y="111.032"/>
+ <use xlink:href="#glyph0-7" x="58.858243" y="111.032"/>
+ <use xlink:href="#glyph0-25" x="63.646269" y="111.032"/>
+ <use xlink:href="#glyph0-4" x="68.793944" y="111.032"/>
+ <use xlink:href="#glyph0-7" x="73.22232" y="111.032"/>
+ <use xlink:href="#glyph0-9" x="78.010345" y="111.032"/>
+ <use xlink:href="#glyph0-8" x="81.82901" y="111.032"/>
+ <use xlink:href="#glyph0-9" x="85.426505" y="111.032"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="92.562715" y="111.032"/>
+ <use xlink:href="#glyph0-8" x="94.94278" y="111.032"/>
+ <use xlink:href="#glyph0-26" x="98.540275" y="111.032"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -63.098187 -24.906875 L 63.097125 -24.906875 L 63.097125 24.905625 L -63.098187 24.905625 Z M -63.098187 -24.906875 " transform="matrix(1,0,0,-1,213.731,89.64)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="157.539" y="80.176"/>
+ <use xlink:href="#glyph0-2" x="164.181065" y="80.176"/>
+ <use xlink:href="#glyph0-3" x="166.561131" y="80.176"/>
+ <use xlink:href="#glyph0-4" x="168.941196" y="80.176"/>
+ <use xlink:href="#glyph0-5" x="173.369571" y="80.176"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-9" x="181.115493" y="80.176"/>
+ <use xlink:href="#glyph0-3" x="184.934157" y="80.176"/>
+ <use xlink:href="#glyph0-30" x="187.314223" y="80.176"/>
+ <use xlink:href="#glyph0-17" x="192.295523" y="80.176"/>
+ <use xlink:href="#glyph0-9" x="197.443198" y="80.176"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-8" x="204.589371" y="80.176"/>
+ <use xlink:href="#glyph0-15" x="208.186866" y="80.176"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-5" x="213.324579" y="80.176"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-8" x="221.080463" y="80.176"/>
+ <use xlink:href="#glyph0-6" x="224.677958" y="80.176"/>
+ <use xlink:href="#glyph0-7" x="228.082178" y="80.176"/>
+ <use xlink:href="#glyph0-17" x="232.870204" y="80.176"/>
+ <use xlink:href="#glyph0-9" x="238.017879" y="80.176"/>
+ <use xlink:href="#glyph0-7" x="241.836544" y="80.176"/>
+ <use xlink:href="#glyph0-4" x="246.624569" y="80.176"/>
+ <use xlink:href="#glyph0-8" x="251.052945" y="80.176"/>
+ <use xlink:href="#glyph0-3" x="254.65044" y="80.176"/>
+ <use xlink:href="#glyph0-16" x="257.030505" y="80.176"/>
+ <use xlink:href="#glyph0-17" x="262.011805" y="80.176"/>
+ <use xlink:href="#glyph0-29" x="267.15948" y="80.176"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="172.331" y="92.131"/>
+ <use xlink:href="#glyph0-25" x="177.119026" y="92.131"/>
+ <use xlink:href="#glyph0-25" x="182.266701" y="92.131"/>
+ <use xlink:href="#glyph0-9" x="187.414376" y="92.131"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="194.550587" y="92.131"/>
+ <use xlink:href="#glyph0-5" x="199.698262" y="92.131"/>
+ <use xlink:href="#glyph0-6" x="204.126638" y="92.131"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-9" x="210.848404" y="92.131"/>
+ <use xlink:href="#glyph0-3" x="214.667069" y="92.131"/>
+ <use xlink:href="#glyph0-30" x="217.047134" y="92.131"/>
+ <use xlink:href="#glyph0-17" x="222.028434" y="92.131"/>
+ <use xlink:href="#glyph0-7" x="227.176109" y="92.131"/>
+ <use xlink:href="#glyph0-8" x="231.964135" y="92.131"/>
+ <use xlink:href="#glyph0-20" x="235.56163" y="92.131"/>
+ <use xlink:href="#glyph0-6" x="240.709305" y="92.131"/>
+ <use xlink:href="#glyph0-5" x="244.113526" y="92.131"/>
+ <use xlink:href="#glyph0-9" x="248.541901" y="92.131"/>
+ <use xlink:href="#glyph0-29" x="252.360566" y="92.131"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="164.409" y="104.086"/>
+ <use xlink:href="#glyph0-17" x="169.197026" y="104.086"/>
+ <use xlink:href="#glyph0-25" x="174.344701" y="104.086"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-24" x="182.809922" y="104.086"/>
+ <use xlink:href="#glyph0-17" x="188.150872" y="104.086"/>
+ <use xlink:href="#glyph0-7" x="193.298547" y="104.086"/>
+ <use xlink:href="#glyph0-2" x="198.086573" y="104.086"/>
+ <use xlink:href="#glyph0-3" x="200.466638" y="104.086"/>
+ <use xlink:href="#glyph0-31" x="202.846703" y="104.086"/>
+ <use xlink:href="#glyph0-5" x="207.177446" y="104.086"/>
+ <use xlink:href="#glyph0-9" x="211.605821" y="104.086"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="218.742032" y="104.086"/>
+ <use xlink:href="#glyph0-5" x="223.889707" y="104.086"/>
+ <use xlink:href="#glyph0-6" x="228.318083" y="104.086"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="235.049812" y="104.086"/>
+ <use xlink:href="#glyph0-17" x="237.429877" y="104.086"/>
+ <use xlink:href="#glyph0-19" x="242.577552" y="104.086"/>
+ <use xlink:href="#glyph0-20" x="247.725228" y="104.086"/>
+ <use xlink:href="#glyph0-8" x="252.872903" y="104.086"/>
+ <use xlink:href="#glyph0-9" x="256.470398" y="104.086"/>
+ <use xlink:href="#glyph0-26" x="260.289062" y="104.086"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -63.09775 -24.906875 L 63.097563 -24.906875 L 63.097563 24.905625 L -63.09775 24.905625 Z M -63.09775 -24.906875 " transform="matrix(1,0,0,-1,354.004,89.64)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-12" x="299.556" y="80.176"/>
+ <use xlink:href="#glyph0-16" x="306.198065" y="80.176"/>
+ <use xlink:href="#glyph0-27" x="311.179365" y="80.176"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-9" x="319.644587" y="80.176"/>
+ <use xlink:href="#glyph0-3" x="323.463251" y="80.176"/>
+ <use xlink:href="#glyph0-30" x="325.843316" y="80.176"/>
+ <use xlink:href="#glyph0-17" x="330.824616" y="80.176"/>
+ <use xlink:href="#glyph0-9" x="335.972292" y="80.176"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-8" x="343.118465" y="80.176"/>
+ <use xlink:href="#glyph0-15" x="346.71596" y="80.176"/>
+ <use xlink:href="#glyph0-5" x="351.863635" y="80.176"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-8" x="359.609557" y="80.176"/>
+ <use xlink:href="#glyph0-6" x="363.207051" y="80.176"/>
+ <use xlink:href="#glyph0-7" x="366.611272" y="80.176"/>
+ <use xlink:href="#glyph0-17" x="371.399297" y="80.176"/>
+ <use xlink:href="#glyph0-9" x="376.546973" y="80.176"/>
+ <use xlink:href="#glyph0-7" x="380.365637" y="80.176"/>
+ <use xlink:href="#glyph0-4" x="385.153663" y="80.176"/>
+ <use xlink:href="#glyph0-8" x="389.582039" y="80.176"/>
+ <use xlink:href="#glyph0-3" x="393.179533" y="80.176"/>
+ <use xlink:href="#glyph0-16" x="395.559599" y="80.176"/>
+ <use xlink:href="#glyph0-17" x="400.540899" y="80.176"/>
+ <use xlink:href="#glyph0-29" x="405.688574" y="80.176"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="313.42" y="92.131"/>
+ <use xlink:href="#glyph0-25" x="318.208026" y="92.131"/>
+ <use xlink:href="#glyph0-25" x="323.355701" y="92.131"/>
+ <use xlink:href="#glyph0-9" x="328.503376" y="92.131"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="335.639587" y="92.131"/>
+ <use xlink:href="#glyph0-3" x="340.787262" y="92.131"/>
+ <use xlink:href="#glyph0-9" x="343.167327" y="92.131"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-9" x="350.3135" y="92.131"/>
+ <use xlink:href="#glyph0-3" x="354.132165" y="92.131"/>
+ <use xlink:href="#glyph0-30" x="356.51223" y="92.131"/>
+ <use xlink:href="#glyph0-17" x="361.49353" y="92.131"/>
+ <use xlink:href="#glyph0-7" x="366.641205" y="92.131"/>
+ <use xlink:href="#glyph0-8" x="371.429231" y="92.131"/>
+ <use xlink:href="#glyph0-20" x="375.026726" y="92.131"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-6" x="380.164439" y="92.131"/>
+ <use xlink:href="#glyph0-5" x="383.568659" y="92.131"/>
+ <use xlink:href="#glyph0-9" x="387.997035" y="92.131"/>
+ <use xlink:href="#glyph0-29" x="391.815699" y="92.131"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="305.499" y="104.086"/>
+ <use xlink:href="#glyph0-17" x="310.287026" y="104.086"/>
+ <use xlink:href="#glyph0-25" x="315.434701" y="104.086"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-24" x="323.899922" y="104.086"/>
+ <use xlink:href="#glyph0-17" x="329.240872" y="104.086"/>
+ <use xlink:href="#glyph0-7" x="334.388547" y="104.086"/>
+ <use xlink:href="#glyph0-2" x="339.176573" y="104.086"/>
+ <use xlink:href="#glyph0-3" x="341.556638" y="104.086"/>
+ <use xlink:href="#glyph0-31" x="343.936703" y="104.086"/>
+ <use xlink:href="#glyph0-5" x="348.267446" y="104.086"/>
+ <use xlink:href="#glyph0-9" x="352.695821" y="104.086"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="359.832032" y="104.086"/>
+ <use xlink:href="#glyph0-3" x="364.979707" y="104.086"/>
+ <use xlink:href="#glyph0-9" x="367.359772" y="104.086"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="374.505945" y="104.086"/>
+ <use xlink:href="#glyph0-17" x="376.88601" y="104.086"/>
+ <use xlink:href="#glyph0-19" x="382.033686" y="104.086"/>
+ <use xlink:href="#glyph0-20" x="387.181361" y="104.086"/>
+ <use xlink:href="#glyph0-8" x="392.329037" y="104.086"/>
+ <use xlink:href="#glyph0-9" x="395.926531" y="104.086"/>
+ <use xlink:href="#glyph0-26" x="399.745196" y="104.086"/>
+</g>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -76.777875 29.734563 L -68.695844 29.734563 " transform="matrix(1,0,0,-1,213.731,59.133)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 150.234375 29.398438 C 148.695312 29.109375 146.191406 28.242188 144.457031 27.234375 L 144.457031 31.566406 C 146.191406 30.554688 148.695312 29.6875 150.234375 29.398438 "/>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 63.495563 29.734563 L 71.577594 29.734563 " transform="matrix(1,0,0,-1,213.731,59.133)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 290.511719 29.398438 C 288.96875 29.109375 286.464844 28.242188 284.730469 27.234375 L 284.730469 31.566406 C 286.464844 30.554688 288.96875 29.6875 290.511719 29.398438 "/>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 140.276813 3.652531 L 140.276813 -0.00371875 " transform="matrix(1,0,0,-1,213.731,59.133)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 354.007812 64.335938 C 354.296875 62.792969 355.160156 60.289062 356.171875 58.558594 L 351.839844 58.558594 C 352.851562 60.289062 353.71875 62.792969 354.007812 64.335938 "/>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 76.780719 -30.507625 L 68.694781 -30.507625 " transform="matrix(1,0,0,-1,213.731,59.133)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 277.226562 89.640625 C 278.769531 89.929688 281.273438 90.796875 283.003906 91.808594 L 283.003906 87.472656 C 281.273438 88.484375 278.769531 89.351562 277.226562 89.640625 "/>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -63.496625 -30.507625 L -91.504437 -30.507625 " transform="matrix(1,0,0,-1,213.731,59.133)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 117.027344 89.640625 C 118.566406 89.929688 121.070312 90.796875 122.804688 91.808594 L 122.804688 87.472656 C 121.070312 88.484375 118.566406 89.351562 117.027344 89.640625 "/>
+</g>
+</svg>
diff --git a/bip-0174/coinjoin-workflow.tex b/bip-0174/coinjoin-workflow.tex
new file mode 100644
index 0000000..e0516ff
--- /dev/null
+++ b/bip-0174/coinjoin-workflow.tex
@@ -0,0 +1,59 @@
+% using the PGF/TikZ package with pdflatex
+\documentclass{standalone}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+%~ \usepackage[english]{babel}
+\usepackage[none]{hyphenat}% prevent hyphenation
+\usepackage{lmodern}
+\renewcommand*\familydefault{\sfdefault}
+\usepackage{tikz}
+\usetikzlibrary{shapes,arrows}
+\tikzset{>=latex}
+\begin{document}
+% \sffamily{}
+ \tikzstyle{block_center} =
+ [rectangle, draw=black, thick, fill=white,
+ text width=12em, text centered,
+ minimum height=5em]
+ \tikzstyle{block_rounded} = [rectangle,
+ draw=black, thick, fill=white,
+ text width=8em, text centered,
+ minimum height=5em,
+ rounded corners]
+ \begin{tikzpicture}[auto]
+ % outlining the flowchart on a grid
+ \matrix[column sep=3ex,row sep=2ex]{
+ \node [block_center] (0alice1)
+ {Alice creates a PSBT with only her inputs
+ with UTXOs filled in.\\Sends it to Bob.};
+ &
+ \node [block_center] (1bob1)
+ {Bob adds his inputs and fills in his
+ UTXOs.};
+ &
+ \node [block_center] (2carol1)
+ {Carol adds her inputs, fills in her
+ UTXOs, adds signatures, and finalizes her inputs.};
+ \\
+ \node [block_rounded] (5alice2)
+ {Alice extracts the network serialized
+ transaction and broadcasts it.};
+ &
+ \node [block_center] (4alice1)
+ {Alice signs the transaction, adds her
+ signatures, and finalizes her inputs.};
+ &
+ \node [block_center] (3bob2)
+ {Bob signs the transaction, adds his
+ signatures, and finalizes his inputs.};
+ \\
+ };% end matrix
+ % connecting nodes with paths
+ \draw[line width = 1pt, ->]
+ (0alice1) edge (1bob1)
+ (1bob1) edge (2carol1)
+ (2carol1) edge (3bob2)
+ (3bob2) edge (4alice1)
+ (4alice1) edge (5alice2);
+ \end{tikzpicture}
+\end{document}
diff --git a/bip-0174/multisig-workflow.svg b/bip-0174/multisig-workflow.svg
new file mode 100644
index 0000000..951b49e
--- /dev/null
+++ b/bip-0174/multisig-workflow.svg
@@ -0,0 +1,894 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="375.988pt" height="411.906pt" viewBox="0 0 375.988 411.906" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 6.359375 0 L 3.765625 -6.921875 L 2.875 -6.921875 L 0.28125 0 L 1.015625 0 L 1.78125 -2.03125 L 4.6875 -2.03125 L 5.4375 0 Z M 4.46875 -2.59375 L 2 -2.59375 C 2.5 -4.015625 2.140625 -2.96875 2.640625 -4.390625 C 2.84375 -4.984375 3.15625 -5.828125 3.234375 -6.203125 C 3.265625 -6.0625 3.328125 -5.8125 3.5625 -5.15625 Z M 4.46875 -2.59375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 1.5625 0 L 1.5625 -6.921875 L 0.8125 -6.921875 L 0.8125 0 Z M 1.5625 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 1.5625 0 L 1.5625 -4.421875 L 0.8125 -4.421875 L 0.8125 0 Z M 1.640625 -5.640625 L 1.640625 -6.53125 L 0.75 -6.53125 L 0.75 -5.640625 Z M 1.640625 -5.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 4.140625 -0.40625 L 4.078125 -1.0625 C 3.5625 -0.671875 3.03125 -0.53125 2.515625 -0.53125 C 1.6875 -0.53125 1.140625 -1.25 1.140625 -2.21875 C 1.140625 -3 1.5 -3.953125 2.5625 -3.953125 C 3.078125 -3.953125 3.421875 -3.875 3.96875 -3.515625 L 4.09375 -4.171875 C 3.5 -4.5 3.15625 -4.59375 2.546875 -4.59375 C 1.171875 -4.59375 0.359375 -3.390625 0.359375 -2.21875 C 0.359375 -0.984375 1.265625 0.109375 2.515625 0.109375 C 3.046875 0.109375 3.59375 -0.03125 4.140625 -0.40625 Z M 4.140625 -0.40625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 4.125 -2.1875 C 4.125 -2.515625 4.109375 -3.265625 3.734375 -3.875 C 3.3125 -4.484375 2.71875 -4.59375 2.359375 -4.59375 C 1.25 -4.59375 0.34375 -3.53125 0.34375 -2.25 C 0.34375 -0.9375 1.3125 0.109375 2.5 0.109375 C 3.125 0.109375 3.703125 -0.125 4.09375 -0.40625 L 4.03125 -1.0625 C 3.40625 -0.53125 2.734375 -0.5 2.515625 -0.5 C 1.71875 -0.5 1.078125 -1.203125 1.046875 -2.1875 Z M 3.5625 -2.734375 L 1.09375 -2.734375 C 1.25 -3.484375 1.78125 -3.984375 2.359375 -3.984375 C 2.875 -3.984375 3.421875 -3.65625 3.5625 -2.734375 Z M 3.5625 -2.734375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 1.796875 -0.015625 L 1.796875 -0.828125 L 0.96875 -0.828125 L 0.96875 0 L 1.21875 0 L 0.96875 1.25 L 1.375 1.25 Z M 1.796875 -0.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 6.078125 -1.875 C 6.078125 -2.734375 5.21875 -3.453125 4.15625 -3.625 C 5.0625 -3.84375 5.8125 -4.421875 5.8125 -5.1875 C 5.8125 -6.09375 4.75 -6.921875 3.328125 -6.921875 L 0.96875 -6.921875 L 0.96875 0 L 3.59375 0 C 5.03125 0 6.078125 -0.890625 6.078125 -1.875 Z M 5.03125 -5.171875 C 5.03125 -4.578125 4.328125 -3.890625 2.953125 -3.890625 L 1.796875 -3.890625 L 1.796875 -6.359375 L 3.046875 -6.359375 C 4.15625 -6.359375 5.03125 -5.828125 5.03125 -5.171875 Z M 5.28125 -1.890625 C 5.28125 -1.140625 4.390625 -0.5625 3.3125 -0.5625 L 1.796875 -0.5625 L 1.796875 -3.296875 L 3.234375 -3.296875 C 4.296875 -3.296875 5.28125 -2.6875 5.28125 -1.890625 Z M 5.28125 -1.890625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 4.671875 -2.1875 C 4.671875 -3.53125 3.671875 -4.59375 2.5 -4.59375 C 1.265625 -4.59375 0.296875 -3.5 0.296875 -2.1875 C 0.296875 -0.875 1.3125 0.109375 2.484375 0.109375 C 3.671875 0.109375 4.671875 -0.890625 4.671875 -2.1875 Z M 3.890625 -2.296875 C 3.890625 -1.109375 3.21875 -0.53125 2.484375 -0.53125 C 1.796875 -0.53125 1.078125 -1.09375 1.078125 -2.296875 C 1.078125 -3.5 1.828125 -3.984375 2.484375 -3.984375 C 3.1875 -3.984375 3.890625 -3.46875 3.890625 -2.296875 Z M 3.890625 -2.296875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 4.78125 -2.21875 C 4.78125 -3.453125 4.109375 -4.53125 3.171875 -4.53125 C 2.78125 -4.53125 2.15625 -4.4375 1.5625 -3.953125 L 1.5625 -6.921875 L 0.8125 -6.921875 L 0.8125 0 L 1.59375 0 L 1.59375 -0.453125 C 1.828125 -0.234375 2.265625 0.109375 2.9375 0.109375 C 3.921875 0.109375 4.78125 -0.890625 4.78125 -2.21875 Z M 4 -2.21875 C 4 -0.921875 3.171875 -0.5 2.5625 -0.5 C 2.171875 -0.5 1.84375 -0.671875 1.59375 -1.140625 L 1.59375 -3.34375 C 1.75 -3.578125 2.109375 -3.921875 2.65625 -3.921875 C 3.25 -3.921875 4 -3.5 4 -2.21875 Z M 4 -2.21875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 4.078125 0 L 4.078125 -2.875 C 4.078125 -3.890625 3.34375 -4.59375 2.4375 -4.59375 C 1.78125 -4.59375 1.328125 -4.4375 0.875 -4.171875 L 0.921875 -3.515625 C 1.453125 -3.875 1.9375 -4 2.4375 -4 C 2.90625 -4 3.296875 -3.609375 3.296875 -2.875 L 3.296875 -2.4375 C 1.796875 -2.421875 0.53125 -2 0.53125 -1.125 C 0.53125 -0.703125 0.8125 0.109375 1.671875 0.109375 C 1.8125 0.109375 2.75 0.09375 3.328125 -0.359375 L 3.328125 0 Z M 3.296875 -1.3125 C 3.296875 -1.125 3.296875 -0.875 2.953125 -0.6875 C 2.671875 -0.515625 2.296875 -0.5 2.1875 -0.5 C 1.703125 -0.5 1.25 -0.734375 1.25 -1.140625 C 1.25 -1.84375 2.875 -1.90625 3.296875 -1.9375 Z M 3.296875 -1.3125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 4.34375 0 L 4.34375 -2.96875 C 4.34375 -3.625 4.1875 -4.53125 2.96875 -4.53125 C 2.078125 -4.53125 1.578125 -3.859375 1.53125 -3.78125 L 1.53125 -4.484375 L 0.8125 -4.484375 L 0.8125 0 L 1.578125 0 L 1.578125 -2.4375 C 1.578125 -3.09375 1.828125 -3.921875 2.59375 -3.921875 C 3.546875 -3.921875 3.5625 -3.21875 3.5625 -2.90625 L 3.5625 0 Z M 4.34375 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 4.328125 0 L 4.328125 -6.921875 L 3.578125 -6.921875 L 3.578125 -3.984375 C 3.046875 -4.421875 2.5 -4.53125 2.125 -4.53125 C 1.140625 -4.53125 0.359375 -3.5 0.359375 -2.21875 C 0.359375 -0.90625 1.125 0.109375 2.078125 0.109375 C 2.40625 0.109375 2.984375 0.015625 3.546875 -0.515625 L 3.546875 0 Z M 3.546875 -1.390625 C 3.546875 -1.25 3.53125 -1.0625 3.21875 -0.78125 C 2.984375 -0.578125 2.734375 -0.5 2.484375 -0.5 C 1.859375 -0.5 1.140625 -0.96875 1.140625 -2.203125 C 1.140625 -3.515625 2 -3.921875 2.578125 -3.921875 C 3.03125 -3.921875 3.328125 -3.703125 3.546875 -3.375 Z M 3.546875 -1.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d="M 5.859375 -0.453125 L 5.796875 -1.140625 C 5.5 -0.9375 5.21875 -0.75 4.875 -0.640625 C 4.5625 -0.53125 4.203125 -0.53125 3.875 -0.53125 C 3.21875 -0.53125 2.625 -0.875 2.21875 -1.390625 C 1.765625 -1.96875 1.546875 -2.71875 1.546875 -3.453125 C 1.546875 -4.203125 1.765625 -4.953125 2.21875 -5.546875 C 2.625 -6.046875 3.21875 -6.40625 3.875 -6.40625 C 4.171875 -6.40625 4.46875 -6.375 4.765625 -6.28125 C 5.0625 -6.1875 5.34375 -6.046875 5.609375 -5.859375 L 5.734375 -6.671875 C 5.4375 -6.796875 5.140625 -6.890625 4.8125 -6.953125 C 4.5 -7.015625 4.1875 -7.03125 3.875 -7.03125 C 2.984375 -7.03125 2.1875 -6.640625 1.59375 -5.984375 C 0.984375 -5.296875 0.65625 -4.390625 0.65625 -3.453125 C 0.65625 -2.53125 0.984375 -1.625 1.59375 -0.9375 C 2.1875 -0.296875 2.984375 0.109375 3.875 0.109375 C 4.21875 0.109375 4.5625 0.09375 4.90625 0 C 5.25 -0.09375 5.546875 -0.265625 5.859375 -0.453125 Z M 5.859375 -0.453125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 3.265625 -3.875 L 3.265625 -4.53125 C 2.375 -4.53125 1.828125 -4.03125 1.515625 -3.578125 L 1.515625 -4.484375 L 0.8125 -4.484375 L 0.8125 0 L 1.5625 0 L 1.5625 -2.140625 C 1.5625 -3.125 2.28125 -3.84375 3.265625 -3.875 Z M 3.265625 -3.875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 6.65625 -4.421875 L 5.9375 -4.421875 L 5.296875 -2.3125 C 5.1875 -1.953125 4.890625 -0.96875 4.828125 -0.53125 C 4.78125 -0.84375 4.53125 -1.734375 4.359375 -2.296875 L 3.71875 -4.421875 L 3.015625 -4.421875 L 2.453125 -2.546875 C 2.34375 -2.203125 2 -1.0625 1.96875 -0.546875 L 1.953125 -0.546875 C 1.90625 -1.03125 1.578125 -2.15625 1.421875 -2.703125 L 0.890625 -4.421875 L 0.140625 -4.421875 L 1.5 0 L 2.296875 0 L 2.90625 -2.046875 C 3.046875 -2.515625 3.328125 -3.5 3.359375 -3.875 L 3.375 -3.875 C 3.390625 -3.59375 3.5625 -2.90625 3.6875 -2.46875 L 4.421875 0 L 5.296875 0 Z M 6.65625 -4.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 3.59375 -1.28125 C 3.59375 -1.828125 3.21875 -2.15625 3.203125 -2.1875 C 2.8125 -2.546875 2.546875 -2.609375 2.046875 -2.6875 C 1.5 -2.796875 1.03125 -2.90625 1.03125 -3.390625 C 1.03125 -4 1.75 -4 1.890625 -4 C 2.203125 -4 2.734375 -3.96875 3.296875 -3.625 L 3.421875 -4.28125 C 2.90625 -4.515625 2.5 -4.59375 1.984375 -4.59375 C 1.734375 -4.59375 0.328125 -4.59375 0.328125 -3.296875 C 0.328125 -2.796875 0.625 -2.484375 0.875 -2.296875 C 1.171875 -2.078125 1.390625 -2.03125 1.9375 -1.921875 C 2.296875 -1.859375 2.875 -1.734375 2.875 -1.203125 C 2.875 -0.515625 2.09375 -0.515625 1.9375 -0.515625 C 1.140625 -0.515625 0.578125 -0.890625 0.40625 -1 L 0.28125 -0.328125 C 0.59375 -0.171875 1.140625 0.109375 1.953125 0.109375 C 2.140625 0.109375 2.6875 0.109375 3.109375 -0.203125 C 3.421875 -0.453125 3.59375 -0.84375 3.59375 -1.28125 Z M 3.59375 -1.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 4.34375 0 L 4.34375 -2.96875 C 4.34375 -3.625 4.1875 -4.53125 2.96875 -4.53125 C 2.359375 -4.53125 1.875 -4.234375 1.5625 -3.8125 L 1.5625 -6.921875 L 0.8125 -6.921875 L 0.8125 0 L 1.578125 0 L 1.578125 -2.4375 C 1.578125 -3.09375 1.828125 -3.921875 2.59375 -3.921875 C 3.546875 -3.921875 3.5625 -3.21875 3.5625 -2.90625 L 3.5625 0 Z M 4.34375 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 3.3125 -0.265625 L 3.15625 -0.859375 C 2.890625 -0.640625 2.578125 -0.53125 2.25 -0.53125 C 1.890625 -0.53125 1.75 -0.828125 1.75 -1.359375 L 1.75 -3.84375 L 3.15625 -3.84375 L 3.15625 -4.421875 L 1.75 -4.421875 L 1.75 -5.6875 L 1.0625 -5.6875 L 1.0625 -4.421875 L 0.1875 -4.421875 L 0.1875 -3.84375 L 1.03125 -3.84375 L 1.03125 -1.1875 C 1.03125 -0.59375 1.171875 0.109375 1.859375 0.109375 C 2.546875 0.109375 3.0625 -0.140625 3.3125 -0.265625 Z M 3.3125 -0.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 4.78125 -2.21875 C 4.78125 -3.421875 4.15625 -4.53125 3.203125 -4.53125 C 2.609375 -4.53125 2.03125 -4.328125 1.5625 -3.9375 L 1.5625 -4.421875 L 0.8125 -4.421875 L 0.8125 1.9375 L 1.59375 1.9375 L 1.59375 -0.453125 C 1.90625 -0.171875 2.34375 0.109375 2.9375 0.109375 C 3.90625 0.109375 4.78125 -0.875 4.78125 -2.21875 Z M 4 -2.21875 C 4 -1.203125 3.296875 -0.5 2.546875 -0.5 C 2.15625 -0.5 1.890625 -0.703125 1.6875 -0.96875 C 1.59375 -1.109375 1.59375 -1.140625 1.59375 -1.3125 L 1.59375 -3.3125 C 1.828125 -3.671875 2.21875 -3.890625 2.65625 -3.890625 C 3.40625 -3.890625 4 -3.140625 4 -2.21875 Z M 4 -2.21875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 3.453125 -6.25 L 3.453125 -6.921875 C 3.34375 -6.953125 3.03125 -7.03125 2.65625 -7.03125 C 1.71875 -7.03125 1 -6.3125 1 -5.328125 L 1 -4.421875 L 0.265625 -4.421875 L 0.265625 -3.84375 L 1 -3.84375 L 1 0 L 1.75 0 L 1.75 -3.84375 L 2.84375 -3.84375 L 2.84375 -4.421875 L 1.71875 -4.421875 L 1.71875 -5.609375 C 1.71875 -6.34375 2.390625 -6.421875 2.65625 -6.421875 C 2.84375 -6.421875 3.125 -6.40625 3.453125 -6.25 Z M 3.453125 -6.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 7.109375 0 L 7.109375 -2.96875 C 7.109375 -3.640625 6.953125 -4.53125 5.734375 -4.53125 C 5.140625 -4.53125 4.625 -4.25 4.25 -3.71875 C 4 -4.46875 3.296875 -4.53125 2.984375 -4.53125 C 2.265625 -4.53125 1.796875 -4.125 1.53125 -3.765625 L 1.53125 -4.484375 L 0.8125 -4.484375 L 0.8125 0 L 1.578125 0 L 1.578125 -2.4375 C 1.578125 -3.125 1.859375 -3.921875 2.59375 -3.921875 C 3.515625 -3.921875 3.5625 -3.28125 3.5625 -2.90625 L 3.5625 0 L 4.34375 0 L 4.34375 -2.4375 C 4.34375 -3.125 4.609375 -3.921875 5.359375 -3.921875 C 6.28125 -3.921875 6.328125 -3.28125 6.328125 -2.90625 L 6.328125 0 Z M 7.109375 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-22">
+<path style="stroke:none;" d="M 4.46875 0 L 4.46875 -0.703125 L 2.65625 -0.703125 C 2.546875 -0.703125 2.421875 -0.703125 2.296875 -0.703125 L 1.21875 -0.703125 C 1.53125 -0.984375 2.296875 -1.71875 2.609375 -2.015625 C 2.796875 -2.1875 3.296875 -2.609375 3.484375 -2.796875 C 3.9375 -3.234375 4.46875 -3.765625 4.46875 -4.609375 C 4.46875 -5.765625 3.671875 -6.765625 2.359375 -6.765625 C 1.21875 -6.765625 0.65625 -5.984375 0.421875 -5.125 C 0.53125 -4.953125 0.59375 -4.890625 0.609375 -4.859375 C 0.625 -4.84375 0.734375 -4.71875 0.828125 -4.578125 C 1.03125 -5.34375 1.3125 -6.125 2.21875 -6.125 C 3.15625 -6.125 3.65625 -5.375 3.65625 -4.59375 C 3.65625 -3.75 3.09375 -3.1875 2.5 -2.578125 L 1.734375 -1.875 L 0.5 -0.640625 L 0.5 0 Z M 4.46875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-23">
+<path style="stroke:none;" d="M 2.75 -1.921875 L 2.75 -2.5 L 0.109375 -2.5 L 0.109375 -1.921875 Z M 2.75 -1.921875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-24">
+<path style="stroke:none;" d="M 4.5625 -1.796875 C 4.5625 -2.703125 3.859375 -3.3125 3.1875 -3.53125 C 3.9375 -3.9375 4.28125 -4.609375 4.28125 -5.25 C 4.28125 -6.09375 3.453125 -6.765625 2.46875 -6.765625 C 1.703125 -6.765625 0.984375 -6.359375 0.5625 -5.65625 L 0.921875 -5.125 C 1.203125 -5.828125 1.859375 -6.1875 2.46875 -6.1875 C 2.984375 -6.1875 3.46875 -5.875 3.46875 -5.25 C 3.46875 -4.640625 3.0625 -4.046875 2.453125 -3.90625 C 2.390625 -3.890625 2.375 -3.890625 1.671875 -3.84375 L 1.671875 -3.234375 L 2.375 -3.234375 C 3.453125 -3.234375 3.671875 -2.296875 3.671875 -1.796875 C 3.671875 -1.03125 3.203125 -0.390625 2.4375 -0.390625 C 1.75 -0.390625 0.96875 -0.734375 0.53125 -1.421875 L 0.421875 -0.8125 C 1.140625 0.125 2.0625 0.21875 2.46875 0.21875 C 3.671875 0.21875 4.5625 -0.75 4.5625 -1.796875 Z M 4.5625 -1.796875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-25">
+<path style="stroke:none;" d="M 7.71875 0 L 7.71875 -6.921875 L 6.578125 -6.921875 L 5.28125 -3.53125 C 4.9375 -2.625 4.46875 -1.390625 4.359375 -0.921875 L 4.34375 -0.921875 C 4.296875 -1.140625 4.171875 -1.5 4.03125 -1.921875 L 2.46875 -6.046875 L 2.125 -6.921875 L 1 -6.921875 L 1 0 L 1.78125 0 L 1.78125 -6.1875 C 1.84375 -5.859375 2.25 -4.78125 2.5 -4.09375 L 3.984375 -0.21875 L 4.703125 -0.21875 L 6.03125 -3.6875 L 6.515625 -4.953125 C 6.609375 -5.25 6.875 -5.96875 6.921875 -6.1875 L 6.9375 -6.1875 L 6.9375 0 Z M 7.71875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-26">
+<path style="stroke:none;" d="M 4.34375 0 L 4.34375 -4.421875 L 3.5625 -4.421875 L 3.5625 -1.53125 C 3.5625 -0.78125 3 -0.4375 2.359375 -0.4375 C 1.65625 -0.4375 1.578125 -0.703125 1.578125 -1.125 L 1.578125 -4.421875 L 0.8125 -4.421875 L 0.8125 -1.09375 C 0.8125 -0.375 1.03125 0.109375 1.859375 0.109375 C 2.390625 0.109375 3.09375 -0.046875 3.59375 -0.484375 L 3.59375 0 Z M 4.34375 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-27">
+<path style="stroke:none;" d="M 4.828125 -3.90625 L 4.71875 -4.53125 C 4.03125 -4.53125 3.453125 -4.34375 3.15625 -4.21875 C 2.9375 -4.390625 2.609375 -4.53125 2.203125 -4.53125 C 1.34375 -4.53125 0.625 -3.8125 0.625 -2.90625 C 0.625 -2.546875 0.75 -2.1875 0.953125 -1.921875 C 0.65625 -1.515625 0.65625 -1.125 0.65625 -1.078125 C 0.65625 -0.8125 0.75 -0.53125 0.921875 -0.3125 C 0.40625 -0.015625 0.28125 0.453125 0.28125 0.703125 C 0.28125 1.453125 1.265625 2.046875 2.484375 2.046875 C 3.703125 2.046875 4.6875 1.46875 4.6875 0.703125 C 4.6875 -0.6875 3.03125 -0.6875 2.640625 -0.6875 L 1.765625 -0.6875 C 1.640625 -0.6875 1.1875 -0.6875 1.1875 -1.21875 C 1.1875 -1.328125 1.21875 -1.484375 1.296875 -1.578125 C 1.5 -1.421875 1.828125 -1.28125 2.203125 -1.28125 C 3.09375 -1.28125 3.796875 -2.03125 3.796875 -2.90625 C 3.796875 -3.390625 3.578125 -3.765625 3.46875 -3.90625 L 3.515625 -3.890625 C 3.734375 -3.890625 4 -3.9375 4.25 -3.9375 C 4.421875 -3.9375 4.828125 -3.90625 4.828125 -3.90625 Z M 3.09375 -2.90625 C 3.09375 -2.140625 2.625 -1.859375 2.203125 -1.859375 C 1.828125 -1.859375 1.3125 -2.078125 1.3125 -2.90625 C 1.3125 -3.734375 1.828125 -3.96875 2.203125 -3.96875 C 2.625 -3.96875 3.09375 -3.6875 3.09375 -2.90625 Z M 4 0.71875 C 4 1.15625 3.3125 1.484375 2.5 1.484375 C 1.6875 1.484375 0.984375 1.171875 0.984375 0.703125 C 0.984375 0.671875 0.984375 0.03125 1.75 0.03125 L 2.65625 0.03125 C 2.875 0.03125 4 0.03125 4 0.71875 Z M 4 0.71875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-28">
+<path style="stroke:none;" d="M 1.796875 0 L 1.796875 -0.828125 L 0.96875 -0.828125 L 0.96875 0 Z M 1.796875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-29">
+<path style="stroke:none;" d="M 5.796875 -4.90625 C 5.796875 -5.96875 4.8125 -6.921875 3.4375 -6.921875 L 0.953125 -6.921875 L 0.953125 0 L 1.84375 0 L 1.84375 -2.875 L 3.515625 -2.875 C 4.75 -2.875 5.796875 -3.78125 5.796875 -4.90625 Z M 5 -4.90625 C 5 -4.109375 4.359375 -3.453125 3.21875 -3.453125 L 1.8125 -3.453125 L 1.8125 -6.359375 L 3.21875 -6.359375 C 4.3125 -6.359375 5 -5.75 5 -4.90625 Z M 5 -4.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-30">
+<path style="stroke:none;" d="M 4.96875 -1.890625 C 4.96875 -2.53125 4.671875 -3.015625 4.453125 -3.25 C 3.984375 -3.75 3.65625 -3.84375 2.734375 -4.0625 C 2.15625 -4.203125 2 -4.25 1.6875 -4.5 C 1.625 -4.5625 1.34375 -4.859375 1.34375 -5.296875 C 1.34375 -5.875 1.890625 -6.484375 2.796875 -6.484375 C 3.640625 -6.484375 4.109375 -6.15625 4.484375 -5.84375 L 4.640625 -6.640625 C 4.09375 -6.96875 3.53125 -7.140625 2.8125 -7.140625 C 1.421875 -7.140625 0.5625 -6.15625 0.5625 -5.171875 C 0.5625 -4.75 0.703125 -4.328125 1.09375 -3.90625 C 1.515625 -3.453125 1.953125 -3.34375 2.546875 -3.203125 C 3.390625 -2.984375 3.484375 -2.953125 3.765625 -2.71875 C 3.96875 -2.546875 4.1875 -2.21875 4.1875 -1.78125 C 4.1875 -1.125 3.640625 -0.46875 2.734375 -0.46875 C 2.328125 -0.46875 1.421875 -0.5625 0.59375 -1.28125 L 0.4375 -0.46875 C 1.3125 0.078125 2.109375 0.21875 2.734375 0.21875 C 4.0625 0.21875 4.96875 -0.78125 4.96875 -1.890625 Z M 4.96875 -1.890625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-31">
+<path style="stroke:none;" d="M 6.421875 -6.203125 L 6.421875 -6.859375 L 0.359375 -6.859375 L 0.359375 -6.203125 L 1.6875 -6.203125 C 1.8125 -6.203125 1.9375 -6.21875 2.046875 -6.21875 L 2.953125 -6.21875 L 2.953125 0 L 3.84375 0 L 3.84375 -6.21875 L 4.71875 -6.21875 C 4.84375 -6.21875 4.96875 -6.203125 5.078125 -6.203125 Z M 6.421875 -6.203125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-32">
+<path style="stroke:none;" d="M 5.90625 -2.328125 L 5.90625 -6.921875 L 5.140625 -6.921875 L 5.140625 -2.3125 C 5.140625 -1 4.296875 -0.34375 3.453125 -0.34375 C 2.640625 -0.34375 1.828125 -0.96875 1.828125 -2.3125 L 1.828125 -6.921875 L 0.9375 -6.921875 L 0.9375 -2.328125 C 0.9375 -0.875 2.109375 0.21875 3.453125 0.21875 C 4.78125 0.21875 5.90625 -0.875 5.90625 -2.328125 Z M 5.90625 -2.328125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-33">
+<path style="stroke:none;" d="M 6.5 0 L 3.671875 -3.65625 L 6.078125 -6.921875 L 5.125 -6.921875 L 3.25 -4.3125 L 1.3125 -6.921875 L 0.28125 -6.921875 L 2.828125 -3.65625 L 0.140625 0 L 1.09375 0 L 3.25 -3.046875 L 5.46875 0 Z M 6.5 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-34">
+<path style="stroke:none;" d="M 6.765625 -3.4375 C 6.765625 -5.53125 5.328125 -7.140625 3.671875 -7.140625 C 1.96875 -7.140625 0.5625 -5.515625 0.5625 -3.4375 C 0.5625 -1.328125 2.03125 0.21875 3.65625 0.21875 C 5.328125 0.21875 6.765625 -1.34375 6.765625 -3.4375 Z M 5.875 -3.59375 C 5.875 -1.640625 4.8125 -0.421875 3.671875 -0.421875 C 2.5 -0.421875 1.453125 -1.671875 1.453125 -3.59375 C 1.453125 -5.40625 2.546875 -6.5 3.65625 -6.5 C 4.8125 -6.5 5.875 -5.375 5.875 -3.59375 Z M 5.875 -3.59375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-35">
+<path style="stroke:none;" d="M 4.5625 -6.09375 L 4.5625 -6.921875 L 3.734375 -6.921875 L 3.734375 -6.09375 Z M 4.515625 0 L 4.515625 -4.421875 L 3.765625 -4.421875 L 3.765625 0 Z M 2.9375 -3.84375 L 2.9375 -4.421875 L 1.71875 -4.421875 L 1.71875 -5.625 C 1.71875 -6.265625 2.078125 -6.421875 2.328125 -6.421875 C 2.546875 -6.421875 2.765625 -6.34375 2.9375 -6.234375 L 2.9375 -6.921875 C 2.875 -6.9375 2.625 -7.03125 2.328125 -7.03125 C 1.59375 -7.03125 1 -6.328125 1 -5.328125 L 1 -4.421875 L 0.265625 -4.421875 L 0.265625 -3.84375 L 1 -3.84375 L 1 0 L 1.75 0 L 1.75 -3.84375 Z M 2.9375 -3.84375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-36">
+<path style="stroke:none;" d="M 6.5 -6.921875 L 5.71875 -6.921875 L 4.390625 -3.515625 C 4.234375 -3.09375 3.484375 -1.171875 3.40625 -0.71875 L 3.390625 -0.71875 C 3.3125 -1.109375 2.875 -2.21875 2.796875 -2.453125 L 1.0625 -6.921875 L 0.140625 -6.921875 L 2.859375 0 L 3.78125 0 Z M 6.5 -6.921875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-37">
+<path style="stroke:none;" d="M 4.453125 -4.421875 L 3.703125 -4.421875 C 2.40625 -1.25 2.375 -0.796875 2.375 -0.5625 L 2.359375 -0.5625 C 2.296875 -1.234375 1.5 -3.09375 1.46875 -3.1875 L 0.921875 -4.421875 L 0.140625 -4.421875 L 2.078125 0 L 1.71875 0.890625 C 1.453125 1.46875 1.28125 1.46875 1.140625 1.46875 C 0.984375 1.46875 0.671875 1.4375 0.375 1.3125 L 0.421875 1.96875 C 0.640625 2.015625 0.921875 2.046875 1.140625 2.046875 C 1.5 2.046875 1.859375 1.921875 2.265625 0.90625 Z M 4.453125 -4.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-38">
+<path style="stroke:none;" d="M 3.1875 -6.25 L 3.1875 -6.921875 C 2.96875 -6.984375 2.71875 -7.03125 2.5 -7.03125 C 1.65625 -7.03125 1 -6.328125 1 -5.328125 L 1 -4.421875 L 0.265625 -4.421875 L 0.265625 -3.84375 L 1 -3.84375 L 1 0 L 1.75 0 L 1.75 -3.84375 L 2.9375 -3.84375 L 2.9375 -4.421875 L 1.71875 -4.421875 L 1.71875 -5.625 C 1.71875 -6.3125 2.234375 -6.421875 2.484375 -6.421875 C 2.640625 -6.421875 2.890625 -6.40625 3.1875 -6.25 Z M 7.28125 0 L 7.28125 -6.921875 L 6.546875 -6.921875 L 6.546875 0 Z M 5.703125 -3.84375 L 5.703125 -4.421875 L 4.5 -4.421875 L 4.5 -5.625 C 4.5 -6.265625 4.859375 -6.421875 5.109375 -6.421875 C 5.296875 -6.421875 5.515625 -6.359375 5.703125 -6.25 L 5.703125 -6.921875 C 5.640625 -6.9375 5.390625 -7.03125 5.109375 -7.03125 C 4.359375 -7.03125 3.78125 -6.328125 3.78125 -5.328125 L 3.78125 0 L 4.53125 0 L 4.53125 -3.84375 Z M 5.703125 -3.84375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-39">
+<path style="stroke:none;" d="M 4.453125 -4.421875 L 3.703125 -4.421875 L 2.90625 -2.359375 C 2.703125 -1.796875 2.390625 -1 2.3125 -0.53125 L 2.296875 -0.53125 C 2.25 -0.890625 1.984375 -1.578125 1.890625 -1.84375 L 0.921875 -4.421875 L 0.140625 -4.421875 L 1.859375 0 L 2.734375 0 Z M 4.453125 -4.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-40">
+<path style="stroke:none;" d="M 4 0 L 4 -0.625 L 2.546875 -0.625 C 2.421875 -0.625 2.296875 -0.609375 2.1875 -0.609375 L 1.328125 -0.609375 L 3.984375 -4.03125 L 3.984375 -4.421875 L 0.421875 -4.421875 L 0.421875 -3.84375 L 1.796875 -3.84375 C 1.921875 -3.84375 2.046875 -3.84375 2.15625 -3.84375 L 2.9375 -3.84375 L 0.28125 -0.40625 L 0.28125 0 Z M 4 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-41">
+<path style="stroke:none;" d="M 1.796875 -6.09375 L 1.796875 -6.921875 L 0.96875 -6.921875 L 0.96875 -6.09375 L 1.21875 -6.09375 L 0.96875 -4.84375 L 1.375 -4.84375 Z M 1.796875 -6.09375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-42">
+<path style="stroke:none;" d="M 4.578125 0 L 2.59375 -2.28125 L 4.421875 -4.421875 L 3.59375 -4.421875 L 2.265625 -2.78125 L 0.890625 -4.421875 L 0.0625 -4.421875 L 1.9375 -2.28125 L 0 0 L 0.8125 0 L 2.265625 -1.875 L 3.765625 0 Z M 4.578125 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-43">
+<path style="stroke:none;" d="M 4.6875 0 L 2.796875 -2.71875 L 4.46875 -4.421875 L 3.578125 -4.421875 L 1.5625 -2.359375 L 1.5625 -6.921875 L 0.84375 -6.921875 L 0.84375 0 L 1.53125 0 L 1.53125 -1.40625 L 2.328125 -2.234375 L 3.875 0 Z M 4.6875 0 "/>
+</symbol>
+</g>
+<clipPath id="clip1">
+ <path d="M 136 335 L 246 335 L 246 411.90625 L 136 411.90625 Z M 136 335 "/>
+</clipPath>
+</defs>
+<g id="surface1">
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -55.623594 -19.702 L 55.626406 -19.702 L 55.626406 19.70425 L -55.623594 19.70425 Z M -55.623594 -19.702 " transform="matrix(1,0,0,-1,191.315,23.423)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="148.074" y="13.958"/>
+ <use xlink:href="#glyph0-2" x="154.716065" y="13.958"/>
+ <use xlink:href="#glyph0-3" x="157.096131" y="13.958"/>
+ <use xlink:href="#glyph0-4" x="159.476196" y="13.958"/>
+ <use xlink:href="#glyph0-5" x="163.904571" y="13.958"/>
+ <use xlink:href="#glyph0-6" x="168.332947" y="13.958"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="174.418103" y="13.958"/>
+ <use xlink:href="#glyph0-8" x="181.060169" y="13.958"/>
+ <use xlink:href="#glyph0-9" x="186.041469" y="13.958"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-10" x="194.50669" y="13.958"/>
+ <use xlink:href="#glyph0-11" x="199.294715" y="13.958"/>
+ <use xlink:href="#glyph0-12" x="204.442391" y="13.958"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-13" x="212.917575" y="13.958"/>
+ <use xlink:href="#glyph0-10" x="219.28268" y="13.958"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="223.791753" y="13.958"/>
+ <use xlink:href="#glyph0-8" x="227.195973" y="13.958"/>
+ <use xlink:href="#glyph0-2" x="232.177273" y="13.958"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="151.313" y="25.914"/>
+ <use xlink:href="#glyph0-3" x="158.120445" y="25.914"/>
+ <use xlink:href="#glyph0-16" x="160.50051" y="25.914"/>
+ <use xlink:href="#glyph0-17" x="164.319174" y="25.914"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="172.784396" y="25.914"/>
+ <use xlink:href="#glyph0-8" x="176.38189" y="25.914"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="184.690699" y="25.914"/>
+ <use xlink:href="#glyph0-19" x="188.509363" y="25.914"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-5" x="193.926029" y="25.914"/>
+ <use xlink:href="#glyph0-11" x="198.354405" y="25.914"/>
+ <use xlink:href="#glyph0-12" x="203.50208" y="25.914"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-20" x="211.977264" y="25.914"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="215.011872" y="25.914"/>
+ <use xlink:href="#glyph0-8" x="218.416092" y="25.914"/>
+ <use xlink:href="#glyph0-21" x="223.397392" y="25.914"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-10" x="155.2" y="37.869"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-22" x="163.305571" y="37.869"/>
+ <use xlink:href="#glyph0-23" x="168.286871" y="37.869"/>
+ <use xlink:href="#glyph0-8" x="171.607406" y="37.869"/>
+ <use xlink:href="#glyph0-20" x="176.588706" y="37.869"/>
+ <use xlink:href="#glyph0-23" x="179.633277" y="37.869"/>
+ <use xlink:href="#glyph0-24" x="182.953811" y="37.869"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-25" x="191.262619" y="37.869"/>
+ <use xlink:href="#glyph0-26" x="199.979894" y="37.869"/>
+ <use xlink:href="#glyph0-2" x="205.12757" y="37.869"/>
+ <use xlink:href="#glyph0-18" x="207.507635" y="37.869"/>
+ <use xlink:href="#glyph0-3" x="211.10513" y="37.869"/>
+ <use xlink:href="#glyph0-16" x="213.485195" y="37.869"/>
+ <use xlink:href="#glyph0-3" x="217.30386" y="37.869"/>
+ <use xlink:href="#glyph0-27" x="219.683925" y="37.869"/>
+ <use xlink:href="#glyph0-28" x="224.665225" y="37.869"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -55.623594 -19.705344 L 55.626406 -19.705344 L 55.626406 19.704812 L -55.623594 19.704812 Z M -55.623594 -19.705344 " transform="matrix(1,0,0,-1,191.315,74.697)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="141.128" y="65.232"/>
+ <use xlink:href="#glyph0-2" x="147.770065" y="65.232"/>
+ <use xlink:href="#glyph0-3" x="150.150131" y="65.232"/>
+ <use xlink:href="#glyph0-4" x="152.530196" y="65.232"/>
+ <use xlink:href="#glyph0-5" x="156.958571" y="65.232"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-26" x="164.704493" y="65.232"/>
+ <use xlink:href="#glyph0-16" x="169.852168" y="65.232"/>
+ <use xlink:href="#glyph0-5" x="173.670833" y="65.232"/>
+ <use xlink:href="#glyph0-16" x="178.099209" y="65.232"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-10" x="185.245382" y="65.232"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-20" x="193.350953" y="65.232"/>
+ <use xlink:href="#glyph0-26" x="196.395523" y="65.232"/>
+ <use xlink:href="#glyph0-2" x="201.543199" y="65.232"/>
+ <use xlink:href="#glyph0-2" x="203.923264" y="65.232"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-11" x="209.620875" y="65.232"/>
+ <use xlink:href="#glyph0-8" x="214.76855" y="65.232"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-12" x="220.028803" y="65.232"/>
+ <use xlink:href="#glyph0-5" x="225.176479" y="65.232"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="232.9224" y="65.232"/>
+ <use xlink:href="#glyph0-8" x="236.519895" y="65.232"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-4" x="143.342" y="77.187"/>
+ <use xlink:href="#glyph0-14" x="147.770376" y="77.187"/>
+ <use xlink:href="#glyph0-5" x="151.174596" y="77.187"/>
+ <use xlink:href="#glyph0-10" x="155.602972" y="77.187"/>
+ <use xlink:href="#glyph0-18" x="160.390997" y="77.187"/>
+ <use xlink:href="#glyph0-5" x="163.988492" y="77.187"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-10" x="171.734414" y="77.187"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-29" x="179.839985" y="77.187"/>
+ <use xlink:href="#glyph0-30" x="186.20509" y="77.187"/>
+ <use xlink:href="#glyph0-7" x="191.740311" y="77.187"/>
+ <use xlink:href="#glyph0-31" x="198.382376" y="77.187"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="208.49043" y="77.187"/>
+ <use xlink:href="#glyph0-3" x="215.297875" y="77.187"/>
+ <use xlink:href="#glyph0-18" x="217.67794" y="77.187"/>
+ <use xlink:href="#glyph0-17" x="221.275435" y="77.187"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-10" x="229.740656" y="77.187"/>
+ <use xlink:href="#glyph0-2" x="234.528682" y="77.187"/>
+ <use xlink:href="#glyph0-2" x="236.908747" y="77.187"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="145.065" y="89.143"/>
+ <use xlink:href="#glyph0-11" x="147.445065" y="89.143"/>
+ <use xlink:href="#glyph0-19" x="152.592741" y="89.143"/>
+ <use xlink:href="#glyph0-26" x="157.740416" y="89.143"/>
+ <use xlink:href="#glyph0-18" x="162.888091" y="89.143"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-32" x="169.803132" y="89.143"/>
+ <use xlink:href="#glyph0-31" x="176.65242" y="89.143"/>
+ <use xlink:href="#glyph0-33" x="183.432965" y="89.143"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-34" x="189.796078" y="89.143"/>
+ <use xlink:href="#glyph0-16" x="197.129548" y="89.143"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-35" x="204.275721" y="89.143"/>
+ <use xlink:href="#glyph0-2" x="209.61667" y="89.143"/>
+ <use xlink:href="#glyph0-2" x="211.996736" y="89.143"/>
+ <use xlink:href="#glyph0-5" x="214.376801" y="89.143"/>
+ <use xlink:href="#glyph0-12" x="218.805176" y="89.143"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="227.270398" y="89.143"/>
+ <use xlink:href="#glyph0-11" x="229.650463" y="89.143"/>
+ <use xlink:href="#glyph0-28" x="234.798138" y="89.143"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -55.623594 -6.781125 L 55.626406 -6.781125 L 55.626406 6.781375 L -55.623594 6.781375 Z M -55.623594 -6.781125 " transform="matrix(1,0,0,-1,191.315,113.047)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-29" x="153.512" y="116.506"/>
+ <use xlink:href="#glyph0-30" x="159.877105" y="116.506"/>
+ <use xlink:href="#glyph0-7" x="165.412326" y="116.506"/>
+ <use xlink:href="#glyph0-31" x="172.054391" y="116.506"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-12" x="182.152482" y="116.506"/>
+ <use xlink:href="#glyph0-3" x="187.300158" y="116.506"/>
+ <use xlink:href="#glyph0-16" x="189.680223" y="116.506"/>
+ <use xlink:href="#glyph0-18" x="193.498888" y="116.506"/>
+ <use xlink:href="#glyph0-14" x="197.096382" y="116.506"/>
+ <use xlink:href="#glyph0-3" x="200.500603" y="116.506"/>
+ <use xlink:href="#glyph0-9" x="202.880668" y="116.506"/>
+ <use xlink:href="#glyph0-26" x="208.028343" y="116.506"/>
+ <use xlink:href="#glyph0-18" x="213.176019" y="116.506"/>
+ <use xlink:href="#glyph0-5" x="216.773514" y="116.506"/>
+ <use xlink:href="#glyph0-12" x="221.201889" y="116.506"/>
+ <use xlink:href="#glyph0-28" x="226.349565" y="116.506"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -55.625625 -12.75925 L 55.624375 -12.75925 L 55.624375 12.756375 L -55.625625 12.756375 Z M -55.625625 -12.75925 " transform="matrix(1,0,0,-1,65.985,151.397)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="21.555" y="148.879"/>
+ <use xlink:href="#glyph0-2" x="28.197065" y="148.879"/>
+ <use xlink:href="#glyph0-3" x="30.577131" y="148.879"/>
+ <use xlink:href="#glyph0-4" x="32.957196" y="148.879"/>
+ <use xlink:href="#glyph0-5" x="37.385571" y="148.879"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="45.131493" y="148.879"/>
+ <use xlink:href="#glyph0-3" x="48.950157" y="148.879"/>
+ <use xlink:href="#glyph0-27" x="51.330223" y="148.879"/>
+ <use xlink:href="#glyph0-11" x="56.311523" y="148.879"/>
+ <use xlink:href="#glyph0-16" x="61.459198" y="148.879"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="68.595408" y="148.879"/>
+ <use xlink:href="#glyph0-17" x="72.192903" y="148.879"/>
+ <use xlink:href="#glyph0-5" x="77.340579" y="148.879"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-29" x="85.096463" y="148.879"/>
+ <use xlink:href="#glyph0-30" x="91.461568" y="148.879"/>
+ <use xlink:href="#glyph0-7" x="96.996789" y="148.879"/>
+ <use xlink:href="#glyph0-31" x="103.638854" y="148.879"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="33.773" y="160.834"/>
+ <use xlink:href="#glyph0-3" x="40.580445" y="160.834"/>
+ <use xlink:href="#glyph0-18" x="42.96051" y="160.834"/>
+ <use xlink:href="#glyph0-17" x="46.558005" y="160.834"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-17" x="55.023226" y="160.834"/>
+ <use xlink:href="#glyph0-5" x="60.170901" y="160.834"/>
+ <use xlink:href="#glyph0-14" x="64.599277" y="160.834"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="71.321043" y="160.834"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-10" x="77.859498" y="160.834"/>
+ <use xlink:href="#glyph0-2" x="82.647523" y="160.834"/>
+ <use xlink:href="#glyph0-2" x="85.027588" y="160.834"/>
+ <use xlink:href="#glyph0-5" x="87.407653" y="160.834"/>
+ <use xlink:href="#glyph0-18" x="91.836029" y="160.834"/>
+ <use xlink:href="#glyph0-28" x="95.433524" y="160.834"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -55.623594 -12.75925 L 55.626406 -12.75925 L 55.626406 12.756375 L -55.623594 12.756375 Z M -55.623594 -12.75925 " transform="matrix(1,0,0,-1,191.315,151.397)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-7" x="148.628" y="148.879"/>
+ <use xlink:href="#glyph0-8" x="155.270065" y="148.879"/>
+ <use xlink:href="#glyph0-9" x="160.251365" y="148.879"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="168.716587" y="148.879"/>
+ <use xlink:href="#glyph0-3" x="172.535251" y="148.879"/>
+ <use xlink:href="#glyph0-27" x="174.915316" y="148.879"/>
+ <use xlink:href="#glyph0-11" x="179.896616" y="148.879"/>
+ <use xlink:href="#glyph0-16" x="185.044292" y="148.879"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="192.190465" y="148.879"/>
+ <use xlink:href="#glyph0-17" x="195.78796" y="148.879"/>
+ <use xlink:href="#glyph0-5" x="200.935635" y="148.879"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-29" x="208.681557" y="148.879"/>
+ <use xlink:href="#glyph0-30" x="215.046662" y="148.879"/>
+ <use xlink:href="#glyph0-7" x="220.581882" y="148.879"/>
+ <use xlink:href="#glyph0-31" x="227.223948" y="148.879"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="148.988" y="160.834"/>
+ <use xlink:href="#glyph0-3" x="155.795445" y="160.834"/>
+ <use xlink:href="#glyph0-18" x="158.17551" y="160.834"/>
+ <use xlink:href="#glyph0-17" x="161.773005" y="160.834"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-17" x="170.238226" y="160.834"/>
+ <use xlink:href="#glyph0-3" x="175.385901" y="160.834"/>
+ <use xlink:href="#glyph0-16" x="177.765966" y="160.834"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-30" x="184.912139" y="160.834"/>
+ <use xlink:href="#glyph0-29" x="190.44736" y="160.834"/>
+ <use xlink:href="#glyph0-36" x="196.812465" y="160.834"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="206.772076" y="160.834"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-10" x="213.300568" y="160.834"/>
+ <use xlink:href="#glyph0-2" x="218.088594" y="160.834"/>
+ <use xlink:href="#glyph0-2" x="220.468659" y="160.834"/>
+ <use xlink:href="#glyph0-5" x="222.848724" y="160.834"/>
+ <use xlink:href="#glyph0-18" x="227.2771" y="160.834"/>
+ <use xlink:href="#glyph0-28" x="230.874594" y="160.834"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -55.624469 -19.704563 L 55.625531 -19.704563 L 55.625531 19.705594 L -55.624469 19.705594 Z M -55.624469 -19.704563 " transform="matrix(1,0,0,-1,316.644,151.397)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-13" x="271.522" y="141.932"/>
+ <use xlink:href="#glyph0-10" x="277.887105" y="141.932"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="282.396178" y="141.932"/>
+ <use xlink:href="#glyph0-8" x="285.800398" y="141.932"/>
+ <use xlink:href="#glyph0-2" x="290.781698" y="141.932"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="296.479309" y="141.932"/>
+ <use xlink:href="#glyph0-3" x="300.297974" y="141.932"/>
+ <use xlink:href="#glyph0-27" x="302.678039" y="141.932"/>
+ <use xlink:href="#glyph0-11" x="307.659339" y="141.932"/>
+ <use xlink:href="#glyph0-16" x="312.807014" y="141.932"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="319.953187" y="141.932"/>
+ <use xlink:href="#glyph0-17" x="323.550682" y="141.932"/>
+ <use xlink:href="#glyph0-5" x="328.698358" y="141.932"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-29" x="336.444279" y="141.932"/>
+ <use xlink:href="#glyph0-30" x="342.809384" y="141.932"/>
+ <use xlink:href="#glyph0-7" x="348.344605" y="141.932"/>
+ <use xlink:href="#glyph0-31" x="354.98667" y="141.932"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="279.824" y="153.888"/>
+ <use xlink:href="#glyph0-3" x="286.631445" y="153.888"/>
+ <use xlink:href="#glyph0-18" x="289.01151" y="153.888"/>
+ <use xlink:href="#glyph0-17" x="292.609005" y="153.888"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-10" x="301.074226" y="153.888"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-4" x="309.18976" y="153.888"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-8" x="313.608173" y="153.888"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-21" x="318.599435" y="153.888"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-19" x="326.504759" y="153.888"/>
+ <use xlink:href="#glyph0-2" x="331.652434" y="153.888"/>
+ <use xlink:href="#glyph0-5" x="334.032499" y="153.888"/>
+ <use xlink:href="#glyph0-18" x="338.460875" y="153.888"/>
+ <use xlink:href="#glyph0-5" x="342.05837" y="153.888"/>
+ <use xlink:href="#glyph0-2" x="346.486745" y="153.888"/>
+ <use xlink:href="#glyph0-37" x="348.866811" y="153.888"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-8" x="267.882" y="165.843"/>
+ <use xlink:href="#glyph0-38" x="272.8633" y="165.843"/>
+ <use xlink:href="#glyph0-3" x="280.97186" y="165.843"/>
+ <use xlink:href="#glyph0-11" x="283.351925" y="165.843"/>
+ <use xlink:href="#glyph0-5" x="288.499601" y="165.843"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="296.245522" y="165.843"/>
+ <use xlink:href="#glyph0-3" x="300.064187" y="165.843"/>
+ <use xlink:href="#glyph0-27" x="302.444252" y="165.843"/>
+ <use xlink:href="#glyph0-11" x="307.425552" y="165.843"/>
+ <use xlink:href="#glyph0-3" x="312.573227" y="165.843"/>
+ <use xlink:href="#glyph0-11" x="314.953292" y="165.843"/>
+ <use xlink:href="#glyph0-27" x="320.100968" y="165.843"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-21" x="328.409776" y="165.843"/>
+ <use xlink:href="#glyph0-10" x="336.325062" y="165.843"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-4" x="341.103125" y="165.843"/>
+ <use xlink:href="#glyph0-17" x="345.531501" y="165.843"/>
+ <use xlink:href="#glyph0-3" x="350.679176" y="165.843"/>
+ <use xlink:href="#glyph0-11" x="353.059241" y="165.843"/>
+ <use xlink:href="#glyph0-5" x="358.206917" y="165.843"/>
+ <use xlink:href="#glyph0-28" x="362.635292" y="165.843"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -55.623594 -12.759375 L 55.626406 -12.759375 L 55.626406 12.75625 L -55.623594 12.75625 Z M -55.623594 -12.759375 " transform="matrix(1,0,0,-1,191.315,195.725)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-29" x="169.328" y="193.206"/>
+ <use xlink:href="#glyph0-30" x="175.693105" y="193.206"/>
+ <use xlink:href="#glyph0-7" x="181.228326" y="193.206"/>
+ <use xlink:href="#glyph0-31" x="187.870391" y="193.206"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="193.824041" y="193.206"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-10" x="200.960251" y="193.206"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="205.469324" y="193.206"/>
+ <use xlink:href="#glyph0-5" x="208.873544" y="193.206"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="154.84" y="205.161"/>
+ <use xlink:href="#glyph0-5" x="158.24422" y="205.161"/>
+ <use xlink:href="#glyph0-18" x="162.672596" y="205.161"/>
+ <use xlink:href="#glyph0-26" x="166.270091" y="205.161"/>
+ <use xlink:href="#glyph0-14" x="171.417766" y="205.161"/>
+ <use xlink:href="#glyph0-11" x="174.821987" y="205.161"/>
+ <use xlink:href="#glyph0-5" x="179.969662" y="205.161"/>
+ <use xlink:href="#glyph0-12" x="184.398038" y="205.161"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="192.863259" y="205.161"/>
+ <use xlink:href="#glyph0-8" x="196.460754" y="205.161"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="204.7596" y="205.161"/>
+ <use xlink:href="#glyph0-2" x="211.401665" y="205.161"/>
+ <use xlink:href="#glyph0-3" x="213.78173" y="205.161"/>
+ <use xlink:href="#glyph0-4" x="216.161796" y="205.161"/>
+ <use xlink:href="#glyph0-5" x="220.590171" y="205.161"/>
+ <use xlink:href="#glyph0-28" x="225.018547" y="205.161"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -55.623594 -19.701906 L 55.626406 -19.701906 L 55.626406 19.704344 L -55.623594 19.704344 Z M -55.623594 -19.701906 " transform="matrix(1,0,0,-1,191.315,240.052)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="150.246" y="230.588"/>
+ <use xlink:href="#glyph0-2" x="156.888065" y="230.588"/>
+ <use xlink:href="#glyph0-3" x="159.268131" y="230.588"/>
+ <use xlink:href="#glyph0-4" x="161.648196" y="230.588"/>
+ <use xlink:href="#glyph0-5" x="166.076571" y="230.588"/>
+ <use xlink:href="#glyph0-16" x="170.504947" y="230.588"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-4" x="177.641157" y="230.588"/>
+ <use xlink:href="#glyph0-8" x="182.069533" y="230.588"/>
+ <use xlink:href="#glyph0-21" x="187.050833" y="230.588"/>
+ <use xlink:href="#glyph0-9" x="194.966119" y="230.588"/>
+ <use xlink:href="#glyph0-3" x="200.113794" y="230.588"/>
+ <use xlink:href="#glyph0-11" x="202.493859" y="230.588"/>
+ <use xlink:href="#glyph0-5" x="207.641535" y="230.588"/>
+ <use xlink:href="#glyph0-16" x="212.069911" y="230.588"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="219.206121" y="230.588"/>
+ <use xlink:href="#glyph0-17" x="222.803616" y="230.588"/>
+ <use xlink:href="#glyph0-5" x="227.951291" y="230.588"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-29" x="153.304" y="242.543"/>
+ <use xlink:href="#glyph0-30" x="159.669105" y="242.543"/>
+ <use xlink:href="#glyph0-7" x="165.204326" y="242.543"/>
+ <use xlink:href="#glyph0-31" x="171.846391" y="242.543"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="177.800041" y="242.543"/>
+ <use xlink:href="#glyph0-28" x="181.618705" y="242.543"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="189.367616" y="242.543"/>
+ <use xlink:href="#glyph0-2" x="196.009681" y="242.543"/>
+ <use xlink:href="#glyph0-2" x="198.389746" y="242.543"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="204.087357" y="242.543"/>
+ <use xlink:href="#glyph0-11" x="206.467422" y="242.543"/>
+ <use xlink:href="#glyph0-19" x="211.615098" y="242.543"/>
+ <use xlink:href="#glyph0-26" x="216.762773" y="242.543"/>
+ <use xlink:href="#glyph0-18" x="221.910449" y="242.543"/>
+ <use xlink:href="#glyph0-16" x="225.507944" y="242.543"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-11" x="143.896" y="254.498"/>
+ <use xlink:href="#glyph0-8" x="149.043675" y="254.498"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="153.746023" y="254.498"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-17" x="163.871013" y="254.498"/>
+ <use xlink:href="#glyph0-10" x="169.018688" y="254.498"/>
+ <use xlink:href="#glyph0-39" x="173.806714" y="254.498"/>
+ <use xlink:href="#glyph0-5" x="178.400469" y="254.498"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-24" x="186.156353" y="254.498"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="194.455199" y="254.498"/>
+ <use xlink:href="#glyph0-3" x="198.273863" y="254.498"/>
+ <use xlink:href="#glyph0-27" x="200.653928" y="254.498"/>
+ <use xlink:href="#glyph0-11" x="205.635228" y="254.498"/>
+ <use xlink:href="#glyph0-10" x="210.782904" y="254.498"/>
+ <use xlink:href="#glyph0-18" x="215.570929" y="254.498"/>
+ <use xlink:href="#glyph0-26" x="219.168424" y="254.498"/>
+ <use xlink:href="#glyph0-14" x="224.3161" y="254.498"/>
+ <use xlink:href="#glyph0-5" x="227.72032" y="254.498"/>
+ <use xlink:href="#glyph0-16" x="232.148696" y="254.498"/>
+ <use xlink:href="#glyph0-28" x="235.96736" y="254.498"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -55.623594 -31.660406 L 55.626406 -31.660406 L 55.626406 31.659906 L -55.623594 31.659906 Z M -55.623594 -31.660406 " transform="matrix(1,0,0,-1,191.315,303.281)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="154.972" y="281.862"/>
+ <use xlink:href="#glyph0-2" x="161.614065" y="281.862"/>
+ <use xlink:href="#glyph0-3" x="163.994131" y="281.862"/>
+ <use xlink:href="#glyph0-4" x="166.374196" y="281.862"/>
+ <use xlink:href="#glyph0-5" x="170.802571" y="281.862"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-35" x="178.548493" y="281.862"/>
+ <use xlink:href="#glyph0-11" x="183.889443" y="281.862"/>
+ <use xlink:href="#glyph0-10" x="189.037118" y="281.862"/>
+ <use xlink:href="#glyph0-2" x="193.825144" y="281.862"/>
+ <use xlink:href="#glyph0-3" x="196.205209" y="281.862"/>
+ <use xlink:href="#glyph0-40" x="198.585274" y="281.862"/>
+ <use xlink:href="#glyph0-5" x="202.916016" y="281.862"/>
+ <use xlink:href="#glyph0-16" x="207.344392" y="281.862"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="214.480602" y="281.862"/>
+ <use xlink:href="#glyph0-17" x="218.078097" y="281.862"/>
+ <use xlink:href="#glyph0-5" x="223.225773" y="281.862"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-29" x="142.969" y="293.817"/>
+ <use xlink:href="#glyph0-30" x="149.334105" y="293.817"/>
+ <use xlink:href="#glyph0-7" x="154.869326" y="293.817"/>
+ <use xlink:href="#glyph0-31" x="161.511391" y="293.817"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-9" x="171.609482" y="293.817"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-37" x="176.478205" y="293.817"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-4" x="184.399468" y="293.817"/>
+ <use xlink:href="#glyph0-14" x="188.827844" y="293.817"/>
+ <use xlink:href="#glyph0-5" x="192.232064" y="293.817"/>
+ <use xlink:href="#glyph0-10" x="196.66044" y="293.817"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="201.438503" y="293.817"/>
+ <use xlink:href="#glyph0-3" x="205.035998" y="293.817"/>
+ <use xlink:href="#glyph0-11" x="207.416063" y="293.817"/>
+ <use xlink:href="#glyph0-27" x="212.563739" y="293.817"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-5" x="220.872547" y="293.817"/>
+ <use xlink:href="#glyph0-10" x="225.300923" y="293.817"/>
+ <use xlink:href="#glyph0-4" x="230.088948" y="293.817"/>
+ <use xlink:href="#glyph0-17" x="234.517324" y="293.817"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="145.944" y="305.772"/>
+ <use xlink:href="#glyph0-11" x="148.324065" y="305.772"/>
+ <use xlink:href="#glyph0-19" x="153.471741" y="305.772"/>
+ <use xlink:href="#glyph0-26" x="158.619416" y="305.772"/>
+ <use xlink:href="#glyph0-18" x="163.767091" y="305.772"/>
+ <use xlink:href="#glyph0-41" x="167.364586" y="305.772"/>
+ <use xlink:href="#glyph0-16" x="170.132197" y="305.772"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-35" x="177.268407" y="305.772"/>
+ <use xlink:href="#glyph0-11" x="182.609357" y="305.772"/>
+ <use xlink:href="#glyph0-10" x="187.757032" y="305.772"/>
+ <use xlink:href="#glyph0-2" x="192.545058" y="305.772"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="198.242669" y="305.772"/>
+ <use xlink:href="#glyph0-4" x="202.061333" y="305.772"/>
+ <use xlink:href="#glyph0-14" x="206.489709" y="305.772"/>
+ <use xlink:href="#glyph0-3" x="209.893929" y="305.772"/>
+ <use xlink:href="#glyph0-19" x="212.273995" y="305.772"/>
+ <use xlink:href="#glyph0-18" x="217.42167" y="305.772"/>
+ <use xlink:href="#glyph0-30" x="221.019165" y="305.772"/>
+ <use xlink:href="#glyph0-3" x="226.554385" y="305.772"/>
+ <use xlink:href="#glyph0-27" x="228.934451" y="305.772"/>
+ <use xlink:href="#glyph0-28" x="233.915751" y="305.772"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-34" x="155.118" y="317.727"/>
+ <use xlink:href="#glyph0-11" x="162.45147" y="317.727"/>
+ <use xlink:href="#glyph0-5" x="167.599145" y="317.727"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="175.345067" y="317.727"/>
+ <use xlink:href="#glyph0-3" x="179.163731" y="317.727"/>
+ <use xlink:href="#glyph0-27" x="181.543797" y="317.727"/>
+ <use xlink:href="#glyph0-11" x="186.525097" y="317.727"/>
+ <use xlink:href="#glyph0-10" x="191.672772" y="317.727"/>
+ <use xlink:href="#glyph0-18" x="196.460797" y="317.727"/>
+ <use xlink:href="#glyph0-26" x="200.058292" y="317.727"/>
+ <use xlink:href="#glyph0-14" x="205.205968" y="317.727"/>
+ <use xlink:href="#glyph0-5" x="208.610188" y="317.727"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-20" x="216.35611" y="317.727"/>
+ <use xlink:href="#glyph0-8" x="219.40068" y="317.727"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="224.103027" y="317.727"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-5" x="144.906" y="329.682"/>
+ <use xlink:href="#glyph0-10" x="149.334376" y="329.682"/>
+ <use xlink:href="#glyph0-4" x="154.122401" y="329.682"/>
+ <use xlink:href="#glyph0-17" x="158.550777" y="329.682"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="167.015998" y="329.682"/>
+ <use xlink:href="#glyph0-11" x="169.396063" y="329.682"/>
+ <use xlink:href="#glyph0-19" x="174.543739" y="329.682"/>
+ <use xlink:href="#glyph0-26" x="179.691414" y="329.682"/>
+ <use xlink:href="#glyph0-18" x="184.83909" y="329.682"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="191.75413" y="329.682"/>
+ <use xlink:href="#glyph0-16" x="194.134195" y="329.682"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-12" x="201.280368" y="329.682"/>
+ <use xlink:href="#glyph0-14" x="206.428044" y="329.682"/>
+ <use xlink:href="#glyph0-8" x="209.832264" y="329.682"/>
+ <use xlink:href="#glyph0-19" x="214.813564" y="329.682"/>
+ <use xlink:href="#glyph0-19" x="219.96124" y="329.682"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-5" x="225.377905" y="329.682"/>
+ <use xlink:href="#glyph0-12" x="229.806281" y="329.682"/>
+ <use xlink:href="#glyph0-28" x="234.953956" y="329.682"/>
+</g>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 230.5 346.804688 L 152.128906 346.804688 C 149.925781 346.804688 148.144531 348.589844 148.144531 350.792969 L 148.144531 404.203125 C 148.144531 406.402344 149.925781 408.1875 152.128906 408.1875 L 230.5 408.1875 C 232.703125 408.1875 234.488281 406.402344 234.488281 404.203125 L 234.488281 350.792969 C 234.488281 348.589844 232.703125 346.804688 230.5 346.804688 Z M 230.5 346.804688 "/>
+<g clip-path="url(#clip1)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 39.185 30.692312 L -39.186094 30.692312 C -41.389219 30.692312 -43.170469 28.907156 -43.170469 26.704031 L -43.170469 -26.706125 C -43.170469 -28.905344 -41.389219 -30.6905 -39.186094 -30.6905 L 39.185 -30.6905 C 41.388125 -30.6905 43.173281 -28.905344 43.173281 -26.706125 L 43.173281 26.704031 C 43.173281 28.907156 41.388125 30.692312 39.185 30.692312 Z M 39.185 30.692312 " transform="matrix(1,0,0,-1,191.315,377.497)"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="154.951" y="357.046"/>
+ <use xlink:href="#glyph0-2" x="161.593065" y="357.046"/>
+ <use xlink:href="#glyph0-3" x="163.973131" y="357.046"/>
+ <use xlink:href="#glyph0-4" x="166.353196" y="357.046"/>
+ <use xlink:href="#glyph0-5" x="170.781571" y="357.046"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-5" x="178.527493" y="357.046"/>
+ <use xlink:href="#glyph0-42" x="182.955869" y="357.046"/>
+ <use xlink:href="#glyph0-18" x="187.549623" y="357.046"/>
+ <use xlink:href="#glyph0-14" x="191.147118" y="357.046"/>
+ <use xlink:href="#glyph0-10" x="194.551339" y="357.046"/>
+ <use xlink:href="#glyph0-4" x="199.339364" y="357.046"/>
+ <use xlink:href="#glyph0-18" x="203.76774" y="357.046"/>
+ <use xlink:href="#glyph0-16" x="207.365235" y="357.046"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="214.501445" y="357.046"/>
+ <use xlink:href="#glyph0-17" x="218.09894" y="357.046"/>
+ <use xlink:href="#glyph0-5" x="223.246616" y="357.046"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-11" x="154.709" y="369.001"/>
+ <use xlink:href="#glyph0-5" x="159.856675" y="369.001"/>
+ <use xlink:href="#glyph0-18" x="164.285051" y="369.001"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="167.603593" y="369.001"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-8" x="174.132085" y="369.001"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="178.844395" y="369.001"/>
+ <use xlink:href="#glyph0-43" x="182.248615" y="369.001"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="190.436876" y="369.001"/>
+ <use xlink:href="#glyph0-5" x="194.255541" y="369.001"/>
+ <use xlink:href="#glyph0-14" x="198.683916" y="369.001"/>
+ <use xlink:href="#glyph0-3" x="202.088137" y="369.001"/>
+ <use xlink:href="#glyph0-10" x="204.468202" y="369.001"/>
+ <use xlink:href="#glyph0-2" x="209.256228" y="369.001"/>
+ <use xlink:href="#glyph0-3" x="211.636293" y="369.001"/>
+ <use xlink:href="#glyph0-40" x="214.016358" y="369.001"/>
+ <use xlink:href="#glyph0-5" x="218.3471" y="369.001"/>
+ <use xlink:href="#glyph0-12" x="222.775476" y="369.001"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="159.075" y="380.956"/>
+ <use xlink:href="#glyph0-14" x="162.672495" y="380.956"/>
+ <use xlink:href="#glyph0-10" x="166.076715" y="380.956"/>
+ <use xlink:href="#glyph0-11" x="170.864741" y="380.956"/>
+ <use xlink:href="#glyph0-16" x="176.012416" y="380.956"/>
+ <use xlink:href="#glyph0-10" x="179.831081" y="380.956"/>
+ <use xlink:href="#glyph0-4" x="184.619106" y="380.956"/>
+ <use xlink:href="#glyph0-18" x="189.047482" y="380.956"/>
+ <use xlink:href="#glyph0-3" x="192.644977" y="380.956"/>
+ <use xlink:href="#glyph0-8" x="195.025042" y="380.956"/>
+ <use xlink:href="#glyph0-11" x="200.006342" y="380.956"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-10" x="208.471563" y="380.956"/>
+ <use xlink:href="#glyph0-11" x="213.259589" y="380.956"/>
+ <use xlink:href="#glyph0-12" x="218.407264" y="380.956"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-9" x="164.845" y="392.911"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="169.713723" y="392.911"/>
+ <use xlink:href="#glyph0-8" x="173.117943" y="392.911"/>
+ <use xlink:href="#glyph0-10" x="178.099243" y="392.911"/>
+ <use xlink:href="#glyph0-12" x="182.887269" y="392.911"/>
+ <use xlink:href="#glyph0-4" x="188.034944" y="392.911"/>
+ <use xlink:href="#glyph0-10" x="192.46332" y="392.911"/>
+ <use xlink:href="#glyph0-16" x="197.251345" y="392.911"/>
+ <use xlink:href="#glyph0-18" x="201.07001" y="392.911"/>
+ <use xlink:href="#glyph0-16" x="204.667505" y="392.911"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="211.803715" y="392.911"/>
+ <use xlink:href="#glyph0-18" x="214.18378" y="392.911"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="159.532" y="404.866"/>
+ <use xlink:href="#glyph0-8" x="163.129495" y="404.866"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-18" x="171.428341" y="404.866"/>
+ <use xlink:href="#glyph0-17" x="175.025836" y="404.866"/>
+ <use xlink:href="#glyph0-5" x="180.173511" y="404.866"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-11" x="187.919432" y="404.866"/>
+ <use xlink:href="#glyph0-5" x="193.067108" y="404.866"/>
+ <use xlink:href="#glyph0-18" x="197.495484" y="404.866"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-15" x="200.823988" y="404.866"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-8" x="207.35248" y="404.866"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="212.054827" y="404.866"/>
+ <use xlink:href="#glyph0-43" x="215.459048" y="404.866"/>
+ <use xlink:href="#glyph0-28" x="220.329763" y="404.866"/>
+</g>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -56.022031 92.906125 L -125.330625 92.906125 L -125.330625 72.913937 " transform="matrix(1,0,0,-1,191.315,205.953)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 65.984375 138.238281 C 66.273438 136.699219 67.140625 134.195312 68.152344 132.460938 L 63.816406 132.460938 C 64.828125 134.195312 65.695312 136.699219 65.984375 138.238281 "/>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00140625 162.429562 L 0.00140625 156.562375 " transform="matrix(1,0,0,-1,191.315,205.953)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 191.316406 54.59375 C 191.605469 53.050781 192.46875 50.546875 193.480469 48.8125 L 189.148438 48.8125 C 190.160156 50.546875 191.027344 53.050781 191.316406 54.59375 "/>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00140625 111.156125 L 0.00140625 105.285031 " transform="matrix(1,0,0,-1,191.315,205.953)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 191.316406 105.867188 C 191.605469 104.324219 192.46875 101.820312 193.480469 100.089844 L 189.148438 100.089844 C 190.160156 101.820312 191.027344 104.324219 191.316406 105.867188 "/>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00140625 85.730344 L 0.00140625 72.913937 " transform="matrix(1,0,0,-1,191.315,205.953)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 191.316406 138.238281 C 191.605469 136.699219 192.46875 134.195312 193.480469 132.460938 L 189.148438 132.460938 C 190.160156 134.195312 191.027344 136.699219 191.316406 138.238281 "/>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00140625 -2.925906 L 0.00140625 -8.797 " transform="matrix(1,0,0,-1,191.315,205.953)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 191.316406 219.949219 C 191.605469 218.410156 192.46875 215.90625 193.480469 214.171875 L 189.148438 214.171875 C 190.160156 215.90625 191.027344 218.410156 191.316406 219.949219 "/>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00140625 -54.20325 L 0.00140625 -60.070438 " transform="matrix(1,0,0,-1,191.315,205.953)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 191.316406 271.226562 C 191.605469 269.683594 192.46875 267.179688 193.480469 265.445312 L 189.148438 265.445312 C 190.160156 267.179688 191.027344 269.683594 191.316406 271.226562 "/>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00140625 -129.386844 L 0.00140625 -135.257938 " transform="matrix(1,0,0,-1,191.315,205.953)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 191.316406 346.410156 C 191.605469 344.867188 192.46875 342.363281 193.480469 340.632812 L 189.148438 340.632812 C 190.160156 342.363281 191.027344 344.867188 191.316406 346.410156 "/>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -125.330625 41.402219 L -125.330625 32.6405 L 0.00140625 32.6405 L 0.00140625 23.386594 M 125.329531 34.453 L 125.329531 32.6405 L 0.00140625 32.6405 L 0.00140625 23.386594 M 56.024844 92.906125 L 125.329531 92.906125 L 125.329531 79.85925 " transform="matrix(1,0,0,-1,191.315,205.953)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 316.644531 131.292969 C 316.933594 129.753906 317.800781 127.25 318.8125 125.515625 L 314.480469 125.515625 C 315.492188 127.25 316.355469 129.753906 316.644531 131.292969 "/>
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00140625 41.402219 L 0.00140625 28.585812 " transform="matrix(1,0,0,-1,191.315,205.953)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 191.316406 182.566406 C 191.605469 181.027344 192.46875 178.523438 193.480469 176.789062 L 189.148438 176.789062 C 190.160156 178.523438 191.027344 181.027344 191.316406 182.566406 "/>
+</g>
+</svg>
diff --git a/bip-0174/multisig-workflow.tex b/bip-0174/multisig-workflow.tex
new file mode 100644
index 0000000..2b8744d
--- /dev/null
+++ b/bip-0174/multisig-workflow.tex
@@ -0,0 +1,102 @@
+% using the PGF/TikZ package with pdflatex
+\documentclass{standalone}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+%~ \usepackage[english]{babel}
+\usepackage[none]{hyphenat}% prevent hyphenation
+\usepackage{lmodern}
+\renewcommand*\familydefault{\sfdefault}
+\usepackage{tikz}
+\usetikzlibrary{shapes,arrows}
+\tikzset{>=latex}
+%\pgfdeclarelayer{bg} % declare background layer
+%\pgfsetlayers{bg,main} % set order of layers
+\newcommand{\h}{\hspace{1em}}
+\begin{document}
+% \sffamily{}
+ \tikzstyle{block_center} =
+ [rectangle, draw=black, thick, fill=white,
+ text width=10.5em, text centered,
+ minimum height=1em]
+ \tikzstyle{block_rounded} = [rectangle,
+ draw=black, thick, fill=white,
+ text width=8em, text centered,
+ minimum height=5em,
+ rounded corners]
+ \begin{tikzpicture}[auto]
+ % outlining the flowchart on a grid
+ \matrix[column sep=3ex,row sep=2.5ex]{
+ \h &
+ \node [block_center] (R1)
+ {Alice, Bob and Carol
+ wish to spend from a
+ 2-of-3 Multisig.};
+ & \h \\
+ \h &
+ \node [block_center] (R2)
+ {Alice uses a full node
+ to create a PSBT with
+ all input UTXOs filled in.};
+ & \h \\
+ \h &
+ \node [block_center] (R3)
+ {PSBT distributed.};
+ & \h \\
+ \node [block_center] (R4C1)
+ {Alice signs the
+ PSBT with her wallet.};
+ &
+ \node [block_center] (R4C2)
+ {Bob signs the PSBT
+ with his SPV wallet.};
+ &
+ \node [block_center] (R4C3)
+ {Carol signs the PSBT
+ with a completely
+ offline signing machine.};
+ \\
+ %~ \h & \node (blind) & \h \\
+ \h &
+ \node [block_center] (R5)
+ {PSBTs are returned
+ to Alice.};
+ & \h \\
+ \h &
+ \node [block_center] (R6)
+ {Alices combines the
+ PSBTs. All inputs now
+ have 3 signatures.};
+ & \h \\
+ \h &
+ \node [block_center] (R7)
+ {Alice finalizes the PSBT
+ by creating each input's
+ final scriptSig. One signature
+ for each input is dropped.};
+ & \h \\
+ \h &
+ \node [block_rounded] (stop)
+ {Alice extracts the network
+ serialized transaction and
+ broadcasts it to the network.};
+ & \h \\
+ };% end matrix
+ % connecting nodes with paths
+% \begin{pgfonlayer}{bg}
+ \draw[line width = 1pt, ->]
+ (R1) edge (R2)
+ (R2) edge (R3)
+ (R3) -| (R4C1)
+ (R3) edge (R4C2)
+ (R5) edge (R6)
+ (R6) edge (R7)
+ (R7) edge (stop);
+ % circumvent missing arrow
+ \draw[line width = 1pt, ->]
+ (R4C1) |-+(0,-2.2em)-| (R5)
+ (R4C2) edge (R5)
+ (R4C3) |-+(0,-2.2em)-| (R5)
+ (R3) -| (R4C3);
+% \end{pgfonlayer}
+ \end{tikzpicture}
+\end{document}
diff --git a/bip-0175.mediawiki b/bip-0175.mediawiki
new file mode 100644
index 0000000..a3ffd1c
--- /dev/null
+++ b/bip-0175.mediawiki
@@ -0,0 +1,259 @@
+<pre>
+ BIP: 175
+ Layer: Applications
+ Title: Pay to Contract Protocol
+ Author: Omar Shibli <omar@commerceblock.com>
+ Nicholas Gregory <nicholas@commerceblock.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0175
+ Status: Draft
+ Type: Informational
+ Created: 2017-07-17
+ License: BSD-2-Clause
+</pre>
+
+==Abstract==
+
+Utilizing hierarchical deterministic wallets as described in BIP-0032 and the "Purpose Field" in BIP-0043, this document specifies the multiparty pay-to-contract key derivation scheme outlined by Ilja Gerhardt and Timo Hanke.[0]
+
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
+
+==Motivation==
+
+A Bitcoin transaction represents a "real world" contract between two parties transferring value. Counterparties in a business interaction traditionally keep track of a payment with bills (invoices) and receipts. Delivery of a good is made by the payee once the payer has signed the receipt, agreeing to pay for the items on the invoice. Gerhardt and Hanke [0] formulate this interaction within the confines of the Bitcoin protocol using homomorphic payment addresses and the multiparty pay-to-contract protocol.
+
+The protocol is constructed in such a way that all parties have cryptographic proof of both who is being paid and for what. Using the technique described in this BIP, an address can be provably derived from the terms of a contract and the payee's public key. This derivation scheme does not bloat the UTXO and is completely hidden to network participants; the derived address looks like any other P2(W)PKH or P2(W)SH address. Redemption of the funds requires knowledge of the contract and the payee's private key.
+
+This scheme utilizes the foundations of BIP-0032, providing a consistent way for preexisting wallet developers to implement the specification.
+
+==Specification==
+
+This key derivation scheme requires two parties: a payer (customer) and a payee (merchant).
+The customer submits to the merchant a purchase request, specifying what goods/services they would like to buy. From the purchase request the merchant constructs an invoice (contract), specifying the billable items and total amount to be paid.
+The merchant must give this contract alongside a “payment base” extended public key to the customer. Given this information, the customer will be able to fulfill the contract by generating the public key of the payment address associated with the contract and the payment base, then sending the funds there.
+
+We define the following levels in BIP32 path:
+
+<code>
+m / purpose' / coin_type' / contract_hash
+</code>
+
+<code>contract_hash</code> consists of multiple levels.
+
+Apostrophe in the path indicates that BIP32 hardened derivation is used.
+
+We define the following extended public keys:
+
+Payment base denoted as <code>payment_base</code>:
+
+ m / purpose' / coin_type'
+
+Payment address denoted as <code>payment_address</code>:
+
+ m / purpose' / coin_type' / contract_hash
+ or
+ m / payment_base / contract_hash
+
+Each level has special meaning described in the chapters below.
+
+===Purpose===
+
+Purpose is a constant set to <code>175'</code> (or <code>0x800000AF</code>) following the BIP-0043 recommendation. It indicates that the subtree of this node is used according to this specification.
+
+<code>
+m / 175' / *
+</code>
+
+Hardened derivation is used at this level.
+
+===Coin type===
+
+The coin type field is identical to the same field in BIP-0044.
+
+Hardened derivation is used at this level.
+
+===Payment address generation===
+
+For a given contract documents denoted by c<sub>1</sub>,...,c<sub>n</sub>, payment base extended public key denoted by <code>payment_base</code>, and cryptographic hash function denoted by <code>h</code>.
+
+1. Compute cryptographic hashes for all contract documents, by applying the hash function.
+
+ h(c1),...,h(cn)
+
+2. Sort all hashes lexicographically.
+
+ hash_1,...,hash_n
+
+3. Prepend payment_base and concatenate the sorted hashes and apply the hash function.
+
+ h(payment_base+hash_1+...+hash_n)
+
+4. Compute a partial BIP32 derivation path from the combined hash as defined in Hash to Partial Derivation Path Mapping procedure below.
+
+ contract_hash
+
+5. Prepend <code>payment_base</code> to contract_hash derivation path.
+
+ payment_base / contract_hash
+
+6. Compute public extended key from the derivation path in step 5.
+
+7. Compute address of the public extended key (P2PKH) from step 6.
+
+===Payment address verification===
+
+For a given Bitcoin address, <code>payment_base</code> extended public key, contract documents denoted by c<sub>1</sub>,...,c<sub>n</sub>, and cryptographic hash function denoted by <code>h</code>, we can verify the integrity of the address by the following steps:
+
+1. Compute contract address from the given inputs as described in Contract Address Generation section.
+
+2. Compare the computed address from step 1 with the given Bitcoin address as an input.
+
+===Redemption===
+
+The merchant is able to construct the private key offline using the method described in the Payment Address Generation section.
+The merchant should actively monitor the blockchain for the payment to the payment address.
+Because the address is generated from the payment base and the contract, the merchant must implicitly agree to those terms in order to spend the funds.
+The act of making the payment to that address thus serves as a receipt for the customer.
+
+===Hash to partial derivation path mapping===
+
+At this section, we define hash to partial BIP32 derivation path mapping procedure that maps between an arbitrary hex number to a partial BIP32 derivation path.
+
+For a given hex number, do the following:
+
+1. Partition hex number into parts, each part length is 4 chars.
+
+2. Convert each part to integer in decimal format.
+
+3. Concatenate all numbers with slash <code>/</code>.
+
+==Examples==
+
+For the following given inputs:
+
+ master private extended key:
+ xprv9s21ZrQH143K2JF8RafpqtKiTbsbaxEeUaMnNHsm5o6wCW3z8ySyH4UxFVSfZ8n7ESu7fgir8imbZKLYVBxFPND1pniTZ81vKfd45EHKX73
+ coin type:
+ 0
+
+we can compute payment base as follows:
+
+ payment base derivation path:
+ m/175'/0'
+ contract base public extended key:
+ xpub6B3JSEWjqm5GgfzcjPwBixxLPzi15pFM3jq4E4yCzXXUFS5MFdXiSdw7b5dbdPGHuc7c1V4zXbbFRtc9G1njMUt9ZvMdGVGYQSQsurD6HAW
+
+In the below examples, we are going to use SHA256 as a cryptographic hash function, and the above contract base public key.
+
+====Payment address generation====
+
+As an input, we have a contract that consists of two documents, below are contents:
+
+document 1:
+
+ bar
+
+document 2:
+
+ foo
+
+1. Apply the hash function:
+
+ document 1:
+ fcde2b2edba56bf408601fb721fe9b5c338d10ee429ea04fae5511b68fbf8fb9
+ document 2:
+ 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+
+2. Sort all hashes lexicographically:
+
+ 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+ fcde2b2edba56bf408601fb721fe9b5c338d10ee429ea04fae5511b68fbf8fb9
+
+3. Concatenate hashes and apply the hash function.
+
+ concatenated hash: payment_base
+ xpub6B3JSEWjqm5GgfzcjPwBixxLPzi15pFM3jq4E4yCzXXUFS5MFdXiSdw7b5dbdPGHuc7c1V4zXbbFRtc9G1njMUt9ZvMdGVGYQSQsurD6HAW2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7aefcde2b2edba56bf408601fb721fe9b5c338d10ee429ea04fae5511b68fbf8fb9
+ combined hash:
+ 310057788c6073640dc222466d003411cd5c1cc0bf2803fc6ebbfae03ceb4451
+
+4. Compute the partial BIP32 derivation path of the combined hash.
+
+ 12544/22392/35936/29540/3522/8774/27904/13329/52572/7360/48936/1020/28347/64224/15595/17489
+
+5. Prepend <code>payment_base</code> to <code>contract_hash</code> derivation path.
+
+ contract_base_pub/12544/22392/35936/29540/3522/8774/27904/13329/52572/7360/48936/1020/28347/64224/15595/17489
+ or
+ m/175'/0'/12544/22392/35936/29540/3522/8774/27904/13329/52572/7360/48936/1020/28347/64224/15595/17489
+
+6. Compute public extended key.
+
+ xpub6hefaATTG5LbcwyPDvmNfnkyzefoM2TJDoo5astH7Gvs1g8vZURviBWvAvBnWc2CNb8ybJ6mDpnQYVsvNSZ3oUmbssX3rUVG97TFYa6AXVk
+
+7. Compute address of the public extended key (P2PKH).
+
+ 1C7f322izqMqLzZzfzkPAjxBzprxDi47Yf
+
+
+====Verification example (negative test)====
+
+Similar to the input above, except this time we have a contract that consists of one document, below is the content:
+
+document 1:
+
+ baz
+
+1. Apply the hash function.
+
+ baa5a0964d3320fbc0c6a922140453c8513ea24ab8fd0577034804a967248096
+
+2. Prepend payment_base
+
+ xpub6B3JSEWjqm5GgfzcjPwBixxLPzi15pFM3jq4E4yCzXXUFS5MFdXiSdw7b5dbdPGHuc7c1V4zXbbFRtc9G1njMUt9ZvMdGVGYQSQsurD6HAWbaa5a0964d3320fbc0c6a922140453c8513ea24ab8fd0577034804a967248096
+
+2. Apply hash function
+
+ 3a08605829413ce0bf551b08d21e4a28dbda6e407f90eff1c448e839050c73a1
+
+3. Compute the partial derivation path.
+
+ 5338/54412/19213/962/30664/62597/11873/59874/56779/24089/54550/19585/28087/36422/18666/17562
+
+4. Prepend contract_base<sub>pub</sub> to contract_hash derivation path.
+
+ contract_base_pub/5338/54412/19213/962/30664/62597/11873/59874/56779/24089/54550/19585/28087/36422/18666/17562
+ or
+ m/175'/0'/5338/54412/19213/962/30664/62597/11873/59874/56779/24089/54550/19585/28087/36422/18666/17562
+
+5. Compute public extended key.
+
+ xpub6h9k2KqsMpwghxt7naj1puhGV1ZDC88sxvpYN1HibCf8yQZdPsuhYmmvdK32Kf2Lb3rS1sV8UcZ1f84DJEiXuVfLCAj4bC85aEUCxh38m8i
+
+7. Compute address of the public extended key (P2PKH).
+
+ 1QGe5LaDMAmHeibJbZBmZqhQDZSp7QCqSs
+
+8. As expected the address doesn't match the Bitcoin address from the last example <code>1C7f322izqMqLzZzfzkPAjxBzprxDi47Yf</code>.
+
+Verification operation will succeed only if we use identical documents to ones that have been used in the contract address generation.
+
+==Compatibility==
+
+This specification is not backward compatible with BIP32 specification, the proposed derivation scheme in this BIP is a BIP32 compliant.
+Communication between payer and payee as well as hashing the contract and generating the path requires significant modification to the wallet.
+
+==Reference implementations==
+
+* Reference wallet implementation, based on Copay project : https://github.com/commerceblock/copay ([[https://github.com/commerceblock/copay/pull/1|pull_request]])
+* Reference implementation to Hash to Partial Derivation Path Mapping in javascript ([[https://github.com/commerceblock/pay-to-contract-lib/blob/master/lib/contract.js|https://github.com/commerceblock/pay-to-contract-lib]])
+
+==Reference==
+
+* [[bip-0032.mediawiki|BIP32 - Hierarchical Deterministic Wallets]]
+* [[bip-0043.mediawiki|BIP43 - Purpose Field for Deterministic Wallets]]
+* [[bip-0044.mediawiki|BIP44 - Multi-Account Hierarchy for Deterministic Wallets]]
+* [[https://arxiv.org/abs/1212.3257|Homomorphic Payment Addresses and the Pay-to-Contract Protocol]]
+
+==Copyright==
+
+This BIP is licensed under the 2-clause BSD license.
diff --git a/bip-0176.mediawiki b/bip-0176.mediawiki
new file mode 100644
index 0000000..8a49bfa
--- /dev/null
+++ b/bip-0176.mediawiki
@@ -0,0 +1,57 @@
+<pre>
+ BIP: 176
+ Title: Bits Denomination
+ Author: Jimmy Song <jaejoon@gmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0176
+ Status: Draft
+ Type: Informational
+ Created: 2017-12-12
+ License: BSD-2-Clause
+</pre>
+
+== Abstract ==
+Bits is presented here as the standard term for 100 (one hundred) satoshis or 1/1,000,000 (one one-millionth) of a bitcoin.
+
+== Motivation ==
+The bitcoin price has grown over the years and once the price is past $10,000 USD or so, bitcoin amounts under $10 USD start having enough decimal places that it's difficult to tell whether the user is off by a factor of 10 or not. Switching the denomination to "bits" makes comprehension easier. For example, when BTC is $15,000 USD, $10.05 is a somewhat confusing 0.00067 BTC, versus 670 bits, which is a lot clearer.
+
+Additonally, reverse comparisons are easier as 59 bits being $1 is easier to comprehend for most people than 0.000059 BTC being $1. Similar comparisons can be made to other currencies: 1 yen being 0.8 bits, 1 won being 0.07 bits and so on.
+
+Potential benefits of utilizing "bits" include:
+
+# Reduce user error on small bitcoin amounts.
+# Reduce unit bias for users that want a "whole" bitcoin.
+# Allow easier comparisons of prices for most users.
+# Allow easier bi-directional comparisons to fiat currencies.
+# Allows all UTXO amounts to need at most 2 decimal places, which can be easier to handle.
+
+== Specification ==
+Definition: 1 bit = 100 satoshis.
+Plural of "bit" is "bits". The terms "bit" and "bits" are not proper nouns and thus should not be capitalized unless used at the start of a sentence, etc.
+
+All bitcoin-denominated items are encouraged to also show the denomination in bits, either as the default or as an option.
+
+== Rationale ==
+As bitcoin grows in price versus fiat currencies, it's important to give users the ability to quickly and accurately calculate prices for transactions, savings and other economic activities. "Bits" have been used as a denomination within the Bitcoin ecosystem for some time. The idea of this BIP is to formalize this name. Additionally, "bits" is likely the only other denomination that will be needed for Bitcoin as 0.01 bit = 1 satoshi, meaning that two decimal places will be sufficient to describe any current utxo.
+
+Existing terms used in bitcoin such as satoshi, milli-bitcoin (mBTC) and bitcoin (BTC) do not conflict as they operate at different orders of magnitude.
+
+The term micro-bitcoin (µBTC) can continue to exist in tandem with the term "bits".
+
+== Backwards Compatibility ==
+Software such as the Bitcoin Core GUI currently use the µBTC denomination and can continue to do so. There is no obligation to switch to "bits".
+
+The term "bit" has many different definitions, but the ones of particular note are these:
+
+* 1 bit = 1/8 dollar (e.g. That candy cost me 2 bits)
+* bit meaning some amount of data (e.g. The first bit of the version field is 0)
+* bit meaning strength of a cryptographic algorithm (e.g. 256-bit ECDSA is used in Bitcoin)
+
+The first is a bit dated and isn't likely to confuse people dealing with Bitcoin. The second and third are computer science terms and context should be sufficient to figure out what the user of the word means.
+
+== Copyright ==
+This BIP is licensed under the BSD 2-clause license.
+
+== Credit ==
+It's hard to ascertain exactly who invented the term "bits", but the term has been around for a while and the author of this BIP does not take any credit for inventing the term. \ No newline at end of file
diff --git a/bip-0178.mediawiki b/bip-0178.mediawiki
new file mode 100644
index 0000000..5522664
--- /dev/null
+++ b/bip-0178.mediawiki
@@ -0,0 +1,75 @@
+<pre>
+ BIP: 178
+ Layer: Applications
+ Title: Version Extended WIF
+ Author: Karl-Johan Alm <karljohan-alm@garage.co.jp>
+ Comments-Summary: Discouraged for implementation (one person)
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0178
+ Status: Draft
+ Type: Standards Track
+ Created: 2018-04-04
+ License: CC0-1.0
+</pre>
+
+== Abstract ==
+
+An extension to the Wallet Import Format (WIF) to specify what kind of bitcoin address the private key corresponds to.
+
+== Motivation ==
+
+There are several types of bitcoin addresses which can all be associated with a given private key: P2PKH (legacy <code>1...</code> format), P2SH-P2WPKH (SegWit public key inside P2SH), P2WPKH (bech32), etc.
+
+While private keys have a 1-byte suffix indicating whether the corresponding public key is compressed (<code>0x01</code>) or not (through suffix absence), there is no way of knowing what kind of bitcoin address were associated with the private key. As a result, when importing a private key, the wallet has to assume all kinds, and keep track of each possible alternative.
+
+By extending the suffix, we can specify what kind of bitcoin address was associated with a given private key.
+
+== Specification ==
+
+Currently, private keys are stored as a uint256 (private key data) followed by an optional uint8 (compressed flag). The latter is extended to specify the address types:
+
+{|class="wikitable" style="text-align: center;"
+|-
+!Value
+!Type
+!Compr
+!Clarification
+|-
+|No suffix||P2PKH_UNCOMPRESSED||No||Uncompressed legacy public key. Unknown public key format
+|-
+|<code>0x01</code>||P2PKH_COMPRESSED||Yes||Compressed legacy public key. Unknown public key format
+|-
+|<code>0x10</code>||P2PKH||Yes||Compressed legacy public key. Legacy public key format (<code>1...</code>)
+|-
+|<code>0x11</code>||P2WPKH||Yes||Bech32 format (native Segwit)
+|-
+|<code>0x12</code>||P2WPKH_P2SH||Yes||Segwit nested in BIP16 P2SH (<code>3...</code>)
+|}
+
+When a wallet imports a private key, it will have two outcomes:
+
+* the key is using one of the legacy types, in which case all types must be accounted for
+* the key is using one of the extended types, in which case the wallet need only track the specific corresponding address
+
+Note: the difference between `0x01` and `0x10` is that the former can correspond to any of the types above, whereas the latter *only* corresponds to a P2PKH (legacy non-segwit).
+
+== Compatibility ==
+
+This proposal is not backwards compatible, in that software that does not recognize the new types will not understand the compressed flag. It would be trivial to change this, by keeping the 'uncompressed' state as it is (no suffix) and changing 'compressed' to be 'anything not 0', as opposed to 'the value 1'.
+
+The proposal ''is'' backwards compatible in that new wallet software will always understand the old WIF format, however. It will, as it does today, assume that any kind of bitcoin address is possible, and will have to track all of them, as it has to today.
+
+== Acknowledgements ==
+
+This BIP is based on the initial proposal by Thomas Voegtlin (thomasv at electrum dot org) on the Bitcoin Dev mailing list<ref>https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-September/015007.html</ref> and the Electrum 3.0 implementation<ref>https://github.com/spesmilo/electrum/blob/82e88cb89df35288b80dfdbe071da74247351251/RELEASE-NOTES#L95-L108</ref>
+
+== Reference implementation ==
+
+There is a partial implementation which adds, but does not use, the types described in this BIP here: https://github.com/bitcoin/bitcoin/pull/12869
+
+== References ==
+
+<references/>
+
+== Copyright ==
+
+This document is licensed under the Creative Commons CC0 1.0 Universal license.
diff --git a/bip-0179.mediawiki b/bip-0179.mediawiki
new file mode 100644
index 0000000..7894f2d
--- /dev/null
+++ b/bip-0179.mediawiki
@@ -0,0 +1,58 @@
+<pre>
+ BIP: 179
+ Title: Name for payment recipient identifiers
+ Author: Emil Engler <me@emilengler.com>
+ MarcoFalke <falke.marco@gmail.com>
+ Luke Dashjr <luke+bip@dashjr.org>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0179
+ Status: Draft
+ Type: Informational
+ Created: 2019-10-17
+ License: CC0-1.0
+</pre>
+
+==Abstract==
+This BIP proposes a new term for 'address'
+
+==Specification==
+The new term is:
+''Bitcoin'' '''Invoice''' ''Address''
+
+The ''Bitcoin'' and ''Address'' parts are optional.
+The address suffix should only be used as a transitional step.
+
+A ''Bitcoin'' Invoice ''Address'' is a string of characters that can be used to indicate the intended recipient and purpose of a transaction.
+
+==Motivation==
+Bitcoin addresses are intended to be only used '''once''' and you should generate a new one for every new incoming payment.
+The term 'address' however indicates consistency because nearly everything on the internet or the offline world with the term 'address'
+is something that rarely or even never changes (postal address, email address, IP addresses (depends heavily on the provider), etc.)
+The motivation for this BIP is to change the term address to something that indicates that the address is connected to a single transaction.
+
+==Rationale==
+The reason why we use ''Bitcoin Invoice Address'' or just ''Invoice'' is to emphasize that it is single-use.
+The terms ''Bitcoin'' and ''Address'' are optional for the following reasons:
+For ''Bitcoin'':
+* Useful for multicoin wallets to indicate that it belongs to Bitcoin
+* Indicates a difference between a lightning and an on-chain invoice
+For ''Address'':
+* To not confuse users with a completely new term
+* To show that it is where you send something to
+* To not break backwards compatibility
+
+This gives us the four following possibilities:
+* Bitcoin Invoice Address
+* Bitcoin Invoice
+* Invoice Address
+* Invoice
+
+==Backwards Compatibility==
+To avoid issues, the 'Address' suffix is permitted, but not recommended.
+The suffix 'Address' remains so users should be immediately able to recognize it until the new term is widely known.
+
+==Acknowledgements==
+Thanks to Chris Belcher for the suggestion of the term 'Bitcoin Invoice Address'
+
+==Copyright==
+This BIP is released under CC0-1.0 and therefore Public Domain.
diff --git a/bip-0197.mediawiki b/bip-0197.mediawiki
new file mode 100644
index 0000000..427ff22
--- /dev/null
+++ b/bip-0197.mediawiki
@@ -0,0 +1,155 @@
+<pre>
+ BIP: 197
+ Layer: Applications
+ Title: Hashed Time-Locked Collateral Contract
+ Author: Matthew Black <matthew@atomicloans.io>
+ Tony Cai <tony@atomicloans.io>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0197
+ Status: Draft
+ Type: Standards Track
+ Created: 2019-03-19
+ License: BSD-3-Clause
+ CC0-1.0
+</pre>
+
+==Abstract==
+
+This BIP describes a script for generalized debt agreement contract based on Hashed Time-Lock Contract (BIP 199) transactions according to the Atomic Loans specification (https://arxiv.org/pdf/1901.05117.pdf). For more details visit https://atomicloans.io.
+
+==Summary==
+
+A Hashed Time-Locked Collateral Contract (HTLCC) consists of two scripts that permit a designated party (the "borrower") to lock funds on the Bitcoin chain for a specified amount of time as collateral in a debt agreement where the loan principal is denominated in a currency on another blockchain. We denote the blockchain on which the loan principal is issued the principal blockchain.
+
+The purpose of each script is to enable the creation of a debt agreement between two parties (the "borrower" and the "lender"), where the collateral is locked in a P2SH, and can only be spent once the borrower repays the principal and interest in the debt agreement on the principal blockchain. In the case that the borrower does not repay, the borrower or lender can opt for liquidation of the collateral, which will involve the atomic swapping of collateral for the loan currency. In the case that at least one of the two parties don't opt for liquidation, then each party will be entitled to a percentage of the collateral, decided when the funds are initially locked in the P2SH.
+
+These funds are locked into two scripts. Refundable Collateral and Seizable Collateral scripts. The funds sent to these scripts represent the percentage of collateral that each party is entitled to in the case that repayment fails, and the parties don't opt for liquidation.
+
+The Refundable Collateral script takes the following form:
+
+ OP_IF
+ OP_SIZE <secret b2 length> OP_EQUALVERIFY [HASHOP] <secret hash b2> OP_EQUALVERIFY OP_DUP OP_HASH160 <borrower pubkey hash> OP_EQUALVERIFY OP_CHECKSIG
+ OP_ELSE
+ OP_IF
+ <loan expiration num> [TIMEOUTOP] OP_DROP OP_SIZE OP_PUSHDATA(1) <secret a2 length> OP_EQUALVERIFY [HASHOP] <secret hash a2> OP_EQUALVERIFY OP_SIZE <secret b3 length> OP_EQUALVERIFY [HASHOP] <secret hash b3> OP_EQUALVERIFY OP_2 <borrower pubkey> <lender pubkey> OP_2 OP_CHECKMULTISIG
+ OP_ELSE
+ <liquidation expiration num> [TIMEOUTOP] OP_DROP OP_DUP OP_HASH160 <borrower pubkey hash> OP_EQUALVERIFY OP_CHECKSIG
+ OP_ENDIF
+ OP_ENDIF
+
+The Seizable Collateral script takes the following form:
+
+ OP_IF
+ OP_SIZE <secret b2 length> OP_EQUALVERIFY [HASHOP] <secret hash b2> OP_EQUALVERIFY OP_DUP OP_HASH160 <borrower pubkey hash> OP_EQUALVERIFY OP_CHECKSIG
+ OP_ELSE
+ OP_IF
+ <loan expiration num> [TIMEOUTOP] OP_DROP OP_SIZE <secret a2 length> OP_EQUALVERIFY [HASHOP] <secret hash a2> OP_EQUALVERIFY OP_SIZE <secret b3 length> OP_EQUALVERIFY [HASHOP] <secret hash b3> OP_EQUALVERIFY OP_2 <borrower pubkey> <lender pubkey> OP_2 OP_CHECKMULTISIG
+ OP_ELSE
+ OP_IF
+ <bidding expiration num> [TIMEOUTOP] OP_DROP OP_SIZE <secret a1 length> OP_EQUALVERIFY [HASHOP] <secret hash a1> OP_EQUALVERIFY OP_DUP OP_HASH160 <lender pubkey hash> OP_EQUALVERIFY OP_CHECKSIG
+ OP_ELSE
+ <seizure expiration num> [TIMEOUTOP] OP_DROP OP_DUP OP_HASH160 <borrower pubkey hash> OP_EQUALVERIFY OP_CHECKSIG
+ OP_ENDIF
+ OP_ENDIF
+ OP_ENDIF
+
+[HASHOP] is either OP_SHA256 or OP_HASH160.
+
+[TIMEOUTOP] is either OP_CHECKSEQUENCEVERIFY or OP_CHECKLOCKTIMEVERIFY.
+
+===Interaction===
+
+* Alice (the "borrower") and Bob (the "lender") exchange public keys as well as two secret hashes A1, A2 created by Alice and three hashes B1, B2, B3 created by Bob. They then mutually agree upon a timeout threshold for the Loan Period, Liquidation Period, and Seizure Period. Alice constructs the script and P2SH address for the Refundable Collateral Contract and Seizable Collateral Contract. Bob constructs the script for the blockchain on which the loan principal will be issued - the principal blockchain.
+
+* Bob sends loan principal funds to the loan script on the principal blockchain
+
+* Alice sends funds to the Refundable Collateral P2SH address and the Seizable Collateral P2SH address. The amount of funds she sends to the two addresses will be determined beforehand off-chain between Alice and Bob.
+
+* Either
+** Bob accepts locking of collateral by Alice and reveals B1, allowing Alice to withdraw the loan amount on the principal blockchain.
+** Bob doesn't accept locking of collateral by Alice, and recovers the funds after the approve expiration while revealing B2, which allows Alice to refund the Refundable and Seizable collateral.
+
+** If Bob accepts the locking of collateral by Alice
+
+*** Either
+**** Alice repays the loan by the end of the Loan Period and Bob reveals the secret to Alice by revealing it in the loan repayment acceptance transaction; OR
+**** Alice defaults on the loan and Alice and Bob both opt for collateral liquidation, where any third-party is able to bid on the collateral. The winning bidder, Charlie, will subsequently receive the liquidated collateral by way of an Atomic Swap between the collateral funds (ie. BTC locked in both the Refundable Collateral P2SH and the Seizable Collateral P2SH) and the bid funds (ie. funds denominated in the loan currency, put forth by Charlie as part of his bid). This is done by both Alice and Bob signing a multisig and revealing A2 and B2; OR
+**** Alice defaults on the loan and at least one of Alice or Bob opts out of collateral liquidation, then Alice recovers the Refundable Collateral funds and Bob spends the Seizable Collateral funds.
+**** Alice defaults on the loan and at least one of Alice or Bob opts out of collateral liquidation. But Bob doesn't spend the Seizable Collateral funds, so Alice recovers both the Refundable Collateral funds and the Seizable Collateral funds.
+
+==Compatibility==
+
+BIP 197 is compatible with [ERC 1850](https://github.com/ethereum/EIPs/pull/1850) for [atomic loans](https://arxiv.org/pdf/1901.05117.pdf) with Ethereum. Can be extended in the future to be compatible with other HTLC and smart contract compatible chains.
+
+==Motivation==
+
+In many different protocols, the revealing of secrets is used as a settlement mechanism. HTLCC transactions are a safe way of exchanging secrets to advance the state of a debt agreement, due to the ability to recover a percentage of collateral funds from an uncooperative counterparty, and ensure principal + interest + liquidation fee is paid with a cooperative party.
+
+==Definitions==
+
+borrower: entity that locks collateral on the Bitcoin chain and receives loan amount on principal blockchain from lender following the approval of the borrower’s borrow request
+
+lender: entity that contributes funds to the Hashed Time-Locked Principal Contract (HTLPC) on the principal blockchain, to be borrowed by the borrower upon the locking of collateral on the Bitcoin chain and the lender’s approval
+
+repay: when the borrower pays back the principal + interest before loanExpiration
+
+default: when the borrower fails to pay back the principal + interest before the loanExpiration
+
+secret: random number chosen by the borrower or lender, revealed to allow the parties to change the state of the debt agreement
+
+secretHash: hash of the secret, used in the construction of HTLCC
+
+SecretA1: secret generated by the borrower, used to prove that the borrower has withdrawn the loan
+
+SecretA2: secret generated by the borrower, used to allow the bidder to withdraw the liquidated collateral funds
+
+SecretB1: secret generated by the lender, used to accept the locking of collateral by borrower, enabling borrower to withdraw the loan amount
+
+SecretB2: secret generated by the lender, used to refund themselves in the event they aren't satisfied with borrower’slocking of collateral. Also used to accept borrower’s repayment of principal plus interest
+
+SecretB3: secret generated by the lender, used to allow the bidder to withdraw the liquidated collateral funds
+
+SecretC: secret generated by the bidder, used to accept the signatures of the borrower and lender for authorizing the liquidation of collateral
+
+loan expiration num: timestamp before which the borrower must repay the loan; or otherwise risk the liquidation or seizure of their collateral
+
+bidding expiration num: timestamp that determines the amount of time allocated to bidding before seizure period occurs
+
+seizure expiration num: timestamp that determines the amount of time during which the lender can seize funds within the Seizable Collateral P2SH, after which the borrower can refund their corresponding amount of the collateral they are entitled to (ie. either just the funds within the Refundable Collateral P2SH, or both the Refundable Collateral and Seizable Collateral in the event where the lender failed to seize).
+
+===Approve Period===
+During this time, the lender deploys the HTLPC on the principal blockchain. Following this, the borrower locks their collateral on the Bitcoin blockchain in a HTLCC. The lender then either reveals secretB1 to signify that they are satisfied with the collateral, and the borrower can withdraw the loan by revealing secretA1. If the lender is not satisfied with the collateral locked by the borrower, the lender can refunds their loan amount by revealing secretB2, which will subsequently allow the borrower to refund the collateral amount they deposited.
+
+===Loan Period===
+Once the borrower has withdrawn the loan amount, the Loan Period begins. Once the Loan Period is finished, the borrower is expected to repay the loan. If they do, the lender can then accept the repayment by revealing secretB2, enabling the borrower to refund their collateral amount. In the case that the borrower defaults or does not repay the full principal plus interest amount, the lender can choose to not accept the loan repayment, and the parties can opt for liquidation of the collateral in the Bidding Period.
+
+===Bidding Period===
+In the case of a default or the lender not accepting the borrower repayment, the lender and borrower can opt for liquidation of the collateral through the process of third party bidders bidding on the collateral. The Bidding Period can be initiated by either the lender or the borrower. Once the bidding timeout occurs, the lender and borrower must each provide a signature, followed by secretC revealed by the winning bidder once they have checked that the signature is proper. Finally, the lender and borrower must each reveal secretA2 and secretB3 to allow the collateral to be withdrawn by the winning bidder.
+
+===Seizure Period===
+In the case that either the lender or borrower don’t accept the bid, the lender can seize a percentage of the collateral. The amount is dependent on the amount of collateral locked in the Seizable Collateral and Refundable Collateral script as described in this BIP. During this period, the borrower can also refund the funds locked in the Refundable Collateral script.
+
+===Refund Period===
+In the case that the lender does not seize the collateral locked in the Seizable Collateral script, then the borrower can refund the funds locked in the Seizable Collateral script.
+
+==Rationale==
+
+The rational for the following script checking the length of secrets pushed to the stack that are used with OP_SHA256 in the following script
+
+ OP_SIZE <secret b2 length> OP_EQUALVERIFY
+
+is to ensure that the secret size is exactly a certain number of bytes long.
+
+This is especially important when this script is used alongside the HTLPC on other chains like Ethereum where the sha256 opcode only takes up 32 bytes and disregards the rest, there is a need to ensure that the length on the Bitcoin side is 32 bytes.
+
+==Backwards Compatibility==
+
+As this is a new standard for collateralized debt, there is no need for backward compatibility. Once this is accepted as a standard there are certain aspects of the contract that can be modified while still retaining backwards compatibility, such as removing the need to verify the size of the hash if being used with two blockchains with the same maximum block size, which would be backward compatible with the current script.
+
+==Implementation==
+
+https://github.com/AtomicLoans/chainabstractionlayer/blob/bitcoin-collateral-provider/src/providers/bitcoin/BitcoinCollateralProvider.js
+
+==Copyright==
+
+This document is dual licensed as BSD 3-clause, and Creative Commons CC0 1.0 Universal.
diff --git a/bip-0199.mediawiki b/bip-0199.mediawiki
index 887804a..e463c7f 100644
--- a/bip-0199.mediawiki
+++ b/bip-0199.mediawiki
@@ -38,8 +38,7 @@ The script takes the following form:
===Interaction===
-* Victor (the "buyer") and Peggy (the "seller") exchange public keys and mutually agree upon a timeout threshold. Peggy provides a hash digest. Both parties can now
-construct the script and P2SH address for the HTLC.
+* Victor (the "buyer") and Peggy (the "seller") exchange public keys and mutually agree upon a timeout threshold. Peggy provides a hash digest. Both parties can now construct the script and P2SH address for the HTLC.
* Victor sends funds to the P2SH address.
* Either:
** Peggy spends the funds, and in doing so, reveals the preimage to Victor in the transaction; OR
diff --git a/bip-0300.mediawiki b/bip-0300.mediawiki
new file mode 100644
index 0000000..08f8994
--- /dev/null
+++ b/bip-0300.mediawiki
@@ -0,0 +1,308 @@
+<pre>
+ BIP: 300
+ Layer: Consensus (soft fork)
+ Title: Hashrate Escrows (Consensus layer)
+ Author: Paul Sztorc <truthcoin@gmail.com>
+ CryptAxe <cryptaxe@gmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0300
+ Status: Draft
+ Type: Standards Track
+ Created: 2017-08-14
+ License: BSD-2-Clause
+ Post-History: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-May/014364.html
+</pre>
+
+==Abstract==
+
+A "Hashrate Escrow" is a clearer term for the concept of "locked to an SPV Proof", which is itself a restatement of the phrase "within a sidechain" as described in [https://blockstream.com/sidechains.pdf the 2014 Blockstream whitepaper].
+
+A Hashrate Escrow resembles a 2-of-3 multisig escrow, where the 3rd party (who will arbitrate any disputes) is a decentralized group of people: the dynamic-membership set of Bitcoin Miners. However, the 3rd party does not sign escrow-withdrawal transactions with a private key. Instead, these are "signed" by the accumulation of hashpower over time.
+
+This project has [http://www.drivechain.info/ a website] which includes [http://www.drivechain.info/faq/index.html an FAQ].
+
+
+==Motivation==
+
+In practice these escrows are likely to be "asymmetric sidechains" of Bitcoin (such as [http://www.rsk.co/ Rootstock]) or "virtual chains" within Bitcoin (such as [https://github.com/blockstack/virtualchain proposed by Blockstack] in mid-2016).
+
+Sidechains have many potential benefits, including:
+
+# Protect Bitcoin from competition from altcoins and spinoffs.
+# Protect Bitcoin from hard fork campaigns. (Such campaigns represent an existential threat to Bitcoin, as well as an avenue for developer corruption.)
+# Help with review, by making it much easier for reviewers to ignore bad ideas.
+# Provide an avenue for good-but-confusing ideas to prove their value safely.
+
+
+
+==Specification==
+
+==== Components ====
+
+Hashrate Escrows are built of two types of component: [1] new databases, and [2] new message-interpretations.
+
+===== 1. New Databases =====
+
+* D1. "Escrow_DB" -- a database of "accounts" and their attributes.
+* D2. "Withdrawal_DB" -- a database of pending withdrawals from these accounts, and their statuses.
+
+Please note that these structures (D1 and D2) will not literally exist anywhere in the blockchain. Instead they are constructed from messages...these messages, in contrast, *will* exist in the blockchain (with the exception of M4).
+
+===== 2. New Messages =====
+
+* M1. "Propose New Escrow"
+* M2. "ACK Escrow Proposal"
+* M3. "Propose Withdrawal"
+* M4. (implied) "ACK Withdrawal"
+* M5. "Execute Deposit" -- a transfer of BTC from-main-to-side
+* M6. "Execute Withdrawal" -- a transfer of BTC from-side-to-main
+
+
+
+
+=== Adding Sidechains (D1, M1, M2) ===
+
+==== D1 -- "Escrow_DB" ====
+
+The table below enumerates the new database fields, their size in bytes, and their purpose. In general, an escrow designer (for example, a sidechain-designer), is free to choose any value for these.
+
+
+
+{| class="wikitable"
+! Field No.
+! Label
+! Type
+! Description / Purpose
+|-
+| 1
+| Escrow Number
+| uint8_t
+| A number assigned to the entire escrow. Used to make it easy to refer to each escrow.
+|-
+| 2
+| Sidechain Deposit Script Hex
+| string
+| The script that will be deposited to, and update the CTIP of the sidechain.
+|-
+| 3
+| Sidechain Private Key
+| string
+| The private key of the sidechain deposit script.
+|-
+| 4
+| Escrow Name
+| string
+| A human-readable name of the sidechain.
+|-
+| 5
+| Escrow Description
+| string
+| A human-readable name description of the sidechain. More than enough space to hold a 32 byte hash.
+|-
+| 6
+| Hash ID 1
+| uint256
+| A field of 32 bytes, which could be any bytes such as a sha256 hash.
+|-
+| 7
+| Hash ID 2
+| uint256
+| A field of 32 bytes, which could be any bytes such as a sha256 hash.
+|-
+| 8
+| "CTIP" -- Part 1 "TxID"
+| uint256
+| The CTIP, or "Critical (TxID, Index) Pair" is a variable for keeping track of where the escrow's money is (ie, which member of the UTXO set).
+|-
+| 9
+| "CTIP" -- Part 2 "Index"
+| int32_t
+| Of the CTIP, this is second element of the pair: the Index. See #9 above.
+|-
+|}
+
+D1 is updated via M1 and M2.
+
+( The following messages were modeled on SegWit -- see [https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#commitment-structure here] and [https://github.com/DriveNetTESTDRIVE/DriveNet/blob/564516653c1d876429382971a011f5f6119f7eb4/src/validation.cpp#L3348-L3375 here]. )
+
+
+==== M1 -- "Propose New Sidechain" ====
+
+ 1-byte - OP_RETURN (0x6a)
+ 4-byte - Commitment header (0xD5E0C4AF)
+ N-byte - The serialization of the sidechain.
+
+
+==== M2 -- "ACK Sidechain Proposal" ====
+
+ 1-byte - OP_RETURN (0x6a)
+ 4-byte - Commitment header (0xD6E1C5BF)
+ 32-byte - Commitment hash: sha256D hash of sidechain's serialization
+
+==== New Block Validation Rules ====
+
+
+# Escrows are added in a procedure that resembles BIP 9 soft fork activation: the network must see a properly-formatted M1, followed by "acknowledgment" of the sidechain in 95% of the following 2016 blocks.
+# It is possible to "overwrite" an escrow. This requires 6 months (26298 blocks) of M2s, instead of 2 weeks (XXXX). This possibility does not change the security assumptions (because we already assume that users perform extra-protocolic validation at a rate of 1 bit per 26298 blocks).
+
+
+
+=== Withdrawing from Escrows (D2, M3, M4) ===
+
+==== D2 -- "Withdrawal_DB" ====
+
+D2 changes deterministically with respect to M3, M4, M5, and M6.
+
+{| class="wikitable"
+! Field No.
+! Label
+! Type
+! Description / Purpose
+|-
+| 1
+| Escrow Number
+| uint8_t
+| Links the withdrawal-request to a specific escrow.
+|-
+| 2
+| WT^ Hash
+| uint256
+| This is a "blinded transaction id" (ie, the double-Sha256 of a txn that has had two fields zeroed out, see M6) of a withdrawal-attempt.
+|-
+| 3
+| ACKs (Work Score)
+| uint16_t
+| The current total number of ACKs (PoW)
+|-
+| 4
+| Blocks Remaining (Age)
+| uint16_t
+| The number of blocks which this WT^ has remaining to accumulate ACKs
+|}
+
+
+==== New Block Validation Rules for D2 ====
+
+# A hash commitment to D2 exists in each block (even if D2 is blank).
+# Withdrawals in D2 are sorted first by field #1 (Escrow Number) and second by field #4 (Age). This imposes a unique sort.
+# From one block to the next, "Age" fields must increase by exactly 1.
+# Withdrawals are stored in D2 until they fail ("Age" = "MaxAge"), or they succeed (the blockchain contains a txn whose blinded txID matches "WT^").
+
+In addition, there are special rules for the "ACKs" field (see M4 below).
+
+==== M3 -- "Propose Withdrawal" ====
+
+ 1-byte - OP_RETURN (0x6a)
+ 1-byte - Push the following 36 bytes (0x24)
+ 4-byte - Commitment header (0xD45AA943)
+ 32-byte - The WT^ hash to populate a new D2 entry
+
+
+==== New Block Validation Rules for M3 ====
+
+# If the network detects a properly-formatted M3, it must add an entry to D2 in the very next block. The starting values of fields #3 and #4 are zero, and #5 is pulled over by extracting the relevant value from D1.
+# Each block can only contain one M3 per sidechain.
+
+
+==== M4 -- "ACK Withdrawal" ====
+
+M4 is a way of describing changes to the "ACKs" column of D2.
+
+From one block to the next, "ACKs" can only change as follows:
+
+* The ACK-counter of any withdrawal can only change by (-1,0,+1).
+* Within a sidechain-group, upvoting one withdrawal ("+1") requires you to downvote all other withdrawals in that group. However, the minimum ACK-value is zero (and, therefore, downvotes cannot reduce it below zero).
+* While only one withdrawal can be upvoted at once, they can all be unchanged at once ("abstain") and they can all be downvoted at once ("alarm").
+
+One option for explicit transmission of M4 is:
+
+ 4-byte - Message identifier (0x????????)
+ 1-byte - Version of this message
+ 1-byte - Length (in bytes) of this message; total number of withdrawal attempts; y = ceiling( sum_i(m_i +2)/8 ). Nodes should already know what length to expect, because they know the sequence of M3s and therefore the vector of WT^s.
+ N-byte - stream of bits (not bytes), with a 1 indicating the position of the chosen action [downvote all, abstain, upvote1, upvote2, ...]
+
+But sometimes M4 does not need to be transmitted at all! If there are n Escrows and m Withdrawals-per-escrow, then there are (m+2)^n total candidates for the next D2. So, when m and n are low, all of the possible D2s can be trivially computed in advance.
+
+Miners can impose a "soft limit" on m, blocking new withdrawal-attempts until previous ones expire. For a worst-case scenario of n=200 and m=1,000, honest nodes can communicate M4 with ~25 KB per block [4+1+1+(200\*(1000+1+1)/8)].
+
+
+=== Depositing and Withdrawing (M5, M6) ===
+
+Both M5 and M6 are regular Bitcoin txns. They are identified by meeting an important criteria: they select a one of the Critical TxID-index Pairs (a "CTIP") as one of their inputs.
+
+Just as these txns must select a CTIP input, they must create a new CTIP output. D1 is then updated to match only the latest CTIP output. The purpose of this is to have all of the escrow's money (ie all of the sidechain's money) in one TxID, so that depositors immediately undo any UTXO bloat they may cause.
+
+Deposits ("M5") are distinguished from withdrawals ("M6") by simply checking to see if money is "going in", or "out".
+
+https://github.com/DriveNetTESTDRIVE/DriveNet/blob/564516653c1d876429382971a011f5f6119f7eb4/src/validation.cpp#L647-L742
+
+
+==== M5. "Make a Deposit" -- a transfer of BTC from-main-to-side ====
+
+As far as mainchain consensus is concerned, deposits to the escrow are always valid.
+
+However, in practice there will be additional requirements. The escrow account (ie the "sidechain") needs to know how to credit depositors. One well-known method, is for mainchain depositors to append a zero-value OP Return to a Deposit txn, so that the sidechain knows how to credit funds. Mainchain users must upgrade their wallet software, of course, (on an individual basis) in order to become aware of and take advantage of new deposit-methods.
+
+
+
+==== M6. "Execute Withdrawal" -- a transfer of BTC from-side-to-main ====
+
+We come, finally, to the critical matter: where users can take their money *out* of the escrow account, and return it to the "regular" UTXO set. As previously mentioned, this txn is one which (a) spends from a CTIP and (b) reduces the quantity of BTC in an account's CTIP. Most of the work has already been done by D1, M3, M4, and D2. Furthermore, existing Bitcoin tx-rules prevent the sidechain from ever withdrawing more money than has been placed into it.
+
+In each block, a withdrawal in D2 is considered "approved" if its "ACKs" value meets the threshold (13,150).
+
+Approved withdrawals give the green light to their respective "WT^". A "WT^" is 32-bytes which aspire to represent the withdrawing transaction (the txn that actually withdraws funds from the escrow). The two cannot match exactly, because "WT^" is defined at onset, and the withdrawing TxID depends on the its CTIP input (which is constantly changing).
+
+To solve this, we define a "blinded TxID" as a way of hashing a txn, in which some bytes are first overwritten with zeros. Specifically, these bytes are the first input and the first output.
+
+So, withdrawals must meet the following three criteria:
+
+# "Be ACKed" -- The "blinded TxID" of this txn must be member of the "approved candidate" set in the D2 of this block.
+# "Return Change to Account" -- TxOut0 must pay to the "critical account" (see D1) that corresponds to the CTIP that was selected as a TxIn.
+# "Return *all* Change to Account" -- Sum of inputs must equal the sum of outputs. No traditional tx fee is possible.
+
+
+
+
+
+==Backward compatibility==
+
+
+As a soft fork, older software will continue to operate without modification. Non-upgraded nodes will see a number of phenomena that they don't understand -- coinbase txns with non-txn data, value accumulating in anyone-can-spend UTXOs for months at a time, and then random amounts leaving the UTXO in single, infrequent bursts. However, these phenomena don't affect them, or the validity of the money that they receive.
+
+( As a nice bonus, note that the sidechains themselves inherit a resistance to hard forks. The only way to guarantee that the WT^s reported by different clients will continue to match identically, is to upgrade sidechains via soft forks of themselves. )
+
+
+==Deployment==
+
+
+This BIP will be deployed by "version bits" BIP9 with the name "hrescrow" and using bit 4.
+
+<pre>
+// Deployment of Drivechains (BIPX, BIPY)
+consensus.vDeployments[Consensus::DEPLOYMENT_DRIVECHAINS].bit = 4;
+consensus.vDeployments[Consensus::DEPLOYMENT_DRIVECHAINS].nStartTime = 1579072881; // January 15th, 2020.
+consensus.vDeployments[Consensus::DEPLOYMENT_DRIVECHAINS].nTimeout = 1610695281; // January 15th, 2021.
+</pre>
+
+==Reference Implementation==
+
+
+See: https://github.com/DriveNetTESTDRIVE/DriveNet
+
+Also, for interest, see an example sidechain here: https://github.com/drivechain-project/bitcoin/tree/sidechainBMM
+
+
+==References==
+
+See http://www.drivechain.info/literature/index.html
+
+
+==Credits==
+
+Thanks to everyone who contributed to the discussion, especially: ZmnSCPxj, Adam Back, Peter Todd, Dan Anderson, Sergio Demian Lerner, Chris Stewart, Matt Corallo, Sjors Provoost, Tier Nolan, Erik Aronesty, Jason Dreyzehner, Joe Miyamoto, Ben Goldhaber.
+
+
+==Copyright==
+
+This BIP is licensed under the BSD 2-clause license.
diff --git a/bip-0300/appendix-1.txt b/bip-0300/appendix-1.txt
new file mode 100644
index 0000000..736a6c4
--- /dev/null
+++ b/bip-0300/appendix-1.txt
@@ -0,0 +1,45 @@
+
+==== Two Withdrawals at Once ====
+
+Currently, the documentation and code describe a situation where only one withdrawal can proceed at a time. As a result, one "train" (carrying everyone's withdrawals) leaves the station every 3 months, and takes 3-6 months to reach its destination.
+
+Thus, if a withdrawing-user is very unlucky, and "just misses" the train, this user must wait double-long. First, (s)he must wait for the missed-train to reach its destination. Second, (s)he must board the new train, and wait for *it* to reach its destination. Each of these steps takes 3-6 months.
+
+So, even when withdrawals always go as quickly as possible (3 months each), the total time varies, from 3 months (0 months waiting + 3 months travel) to 6 months (3 months waiting + 3 months travel). The average is 4.5 months.
+
+To improve this, we allow for slightly different behavior if the highest-ACK-withdrawal [1st] has an ACK score >= 6575; and [2nd] is not tied with any other withdrawal.
+
+Basically: a second train can leave, if the furthest train is 50+% of the way to its destination.
+
+So, previously, for m trains, M4 could be any of the following:
+
+ abstain
+ alarm (move all trains backwards)
+ move train #1 forward (and others backwards)
+ move train #2 forward (and others backwards)
+ ...
+ move train #3 forward (and others backwards)
+
+If our new special conditions apply, we now double the (m-1) elements, to accommodate a second train:
+
+ |abstain
+ |alarm (move all trains backwards)
+
+ |advance furthest train + advance train #1 (regress all others)
+ |advance furthest train + advance train #2 (regress all others)
+ |...
+ |advance furthest train + advance train #(m-1) (regress all others)
+
+ |regress furthest train + advance train #1 (regress all others)
+ |regress furthest train + advance train #2 (regress all others)
+ |...
+ |regress furthest train + advance train #(m-1) (regress all others)
+
+
+It is theoretically possible (but in practice probably impossible) to troll this rule, by getting two (or even three) withdrawals to have >6575 ACK scores, and then getting these to *tie* for first place. Then they'd both be furthest. Hence the second condition prohibiting this new behavior, if the furthest trains have any ACK-score ties.
+
+This simple change, which has almost zero impact on the security assumptions, improves the monthly total wait times drastically:
+
+ Worst-case: 6 --> 4.5
+ Average: 4.5 --> 3.75
+ Std Dev: ~.91 --> ~.45
diff --git a/bip-0300/images.txt b/bip-0300/images.txt
new file mode 100644
index 0000000..2fbbf63
--- /dev/null
+++ b/bip-0300/images.txt
@@ -0,0 +1 @@
+Images used as reference in the documentation.
diff --git a/bip-0300/two-groups.png b/bip-0300/two-groups.png
new file mode 100644
index 0000000..c8a3ffa
--- /dev/null
+++ b/bip-0300/two-groups.png
Binary files differ
diff --git a/bip-0301.mediawiki b/bip-0301.mediawiki
new file mode 100644
index 0000000..d6056f2
--- /dev/null
+++ b/bip-0301.mediawiki
@@ -0,0 +1,226 @@
+<pre>
+ BIP: 301
+ Layer: Consensus (soft fork)
+ Title: Blind Merged Mining (Consensus layer)
+ Author: Paul Sztorc <truthcoin@gmail.com>
+ CryptAxe <cryptaxe@gmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0301
+ Status: Draft
+ Type: Standards Track
+ Created: 2019-07-23
+ License: BSD-2-Clause
+</pre>
+
+==Abstract==
+
+
+Blind Merged Mining (BMM) is a way of mining optional extension blocks (ie, "asymmetric sidechains"). BMM produces weak guarantees that the block is valid, for *any* arbitrary set of rules; and yet it does so without requiring miners to actually do any validation on the block whatsoever.
+
+BMM actually is a process that spans two or more chains. Here we focus on the modifications to mainchain Bitcoin. For an explanation of the "whole picture", please see [http://www.truthcoin.info/blog/blind-merged-mining/ this post].
+
+Our goal here, is to allow mainchain miners to trustlessly "sell" the act of finding a sidechain block.
+
+
+==Motivation==
+
+Regular "Merged-Mining" (MM) allows miners to reuse their hashing work to secure other chains (for example, as in Namecoin). However, traditional MM has two drawbacks:
+
+# Miners must run a full node of the other chain. (This is because [while miners can effortlessly create the block] miners will not create a valid payment to themselves, unless the block that they MM is a valid one. Therefore, miners must assemble a *valid* block first, then MM it.)
+# Miners are paid on the other chain, not on the regular BTC mainchain. For example, miners who MM Namecoin will earn NMC (and they will need to sell the NMC for BTC, before selling the BTC in order to pay for electricity).
+
+BMM addresses both shortcomings.
+
+
+==Specification==
+
+Note: This document uses the notation side:\* and main:\* in front of otherwise-ambiguous words (such as "block", "node", or "chain"), to distinguish the mainchain version from its sidechain counterpart. We also use "Simon" to refer to a Sidechain Full Node, and "Mary" to refer to a mainchain miner.
+
+
+=== BMM Request ===
+
+To buy the right to find a sidechain block, users broadcast BMM Requests.
+
+Here, these can take two forms. The first does not require the Lightning Network, but it does have new requirements for Immediate Expiration (see below). The second inherits Immediate Expiration from the Lightning Network itself, but requires extra preparation and a different/larger message.
+
+Both forms require that certain Critical Data will be committed to within the coinbase of the block that the transaction is included in (see BMM Accept). For the OnChain (non-Lightning) version, we have created a new extended serialization transaction type (very similar to how SegWit handles witness data (the witness stack)).
+
+==== Immediate Expiration ("Fill-or-Kill") ====
+
+We would like to make special guarantees to the counterparties of this transaction. Specifically, instead of Simon making a "payment" to Mary, we prefer that Simon give Mary an "offer" (which she can either accept or decline).
+
+Crucially, we want Simon to safely make many offers to several different Mary's, in realtime (ie, quickly and off-chain). However, we ultimately want only one offer to be accepted, at most. In other words, we want Simon's offers to *immediately expire*. If only one offer can become a bona fide transaction, then Simon will feel comfortable making multiple offers all day long. Because all of the Simons are making many offers, the Marys collectively gain access to a large set of offers to choose from.
+
+==== OnChain BMM Request ====
+
+OnChain BMMRs do not require the Lightning network, but they do have new requirements for validation.
+
+===== Structure =====
+
+The following data is required:
+
+<pre>
+ 32-bytes - h* sideHeaderHash
+ ?~?-bytes - critical data extended serialization
+ 3-bytes - 0x00bf00 identifying bytes
+ 1-byte - nSidechain
+ 2-bytes - prevSideBlockRef
+ 4-bytes - prevMainHeaderBytes
+</pre>
+
+sideHeaderHash comes from side:chain (side:nodes build side:blocks/headers). The identifying bytes are given here. nSidechain identifies which sidechain we are BMMing. By the time Blind Merged Mining can take place, it is known globally.
+
+prevBlockRef, is a little more complicated (next section).
+
+To qualify for inclusion in a block, BMM requests are subject to the following requirements:
+
+# Requests must match a corresponding "BMM Accept" (see last section of BIP).
+# At most, only one Request is allowed in a main:block, per sidechain. In other words, if 700 users broadcast BMM Requests for sidechain #4, then the main:miner must choose one single Request to include.
+# The 4-bytes of prevMainHeaderBytes must match the last four bytes of the previous main:blockheader. Thus, Simon's txns are only be valid for the current block, in the block history that he knows about (and therefore, the current sidechain history that he knows about).
+
+===== prevBlockRef =====
+
+prevBlockRef is an integer that counts the number of "skips" one must take in the side:chain in order to find the current side:block's parent block. This value is zero unless the sidechain is reorganizing (or skipping over invalid sidechain blocks). If a side:node wants to orphan the most-recent N blocks, the value of the current block will be equal to N; in the block after that it will be back to zero.
+
+<img src="bip-0301/bmm-dots-examples.png?raw=true" align="middle"></img>
+
+Above: Three blockchains, with different max length (small number), reorganization histories, and prevBlockRef numbers (larger numbers beneath blocks). The ordering given via each side:block's "prevSideBlockRef" will be isomorphic to an ordering given by each side:block's "prevSideHeaderHash" ("prevSideHeaderHash is the sidechain's equivalent of the mainchain's "prevBlockHash"). One can freely convert from one to the other.
+
+===== Extended Serialization =====
+
+To impose new requirements at the transaction level, we borrow the dummy vin & "flag" trick from SegWit style transactions. Unless all of the requirements for sidechain critical data transactions are met by the block it is included in, the transaction is invalid. With SegWit, this extra data is the SegWit signature stack, and the extra requirements are the signatures' locations and validity. In the sidechain BMM critical data transactions, the extra data is the (nSidechain, h\*) pair, which must meet the first two requirements (above) as well as the main:blocknumber, which must meet the third requirement (above).
+
+<img src="bip-0301/witness-vs-critical.png?raw=true" align="middle"></img>
+
+Above: A chart showing normal txns, SegWit txns, and CriticalData txns. The specific SegWit txn can be seen [http://srv1.yogh.io/#tx:id:D4A99AE93DF6EE3D4E42CE69338DFC1D06CCD9B198666E98FF0588057378D3D9 here].
+
+These types of transactions have slightly different mempool behavior, and should probably be kept in a second mempool. These txns are received, checked immediately, and if valid they are evaluated for inclusion in a block. If they are not able to be included in the specific requested block (if the block height requested has been surpassed by the chain tip), they are discarded. In fact, after any main:block is found, everything in this "second mempool" can be discarded as new payments will be created immediately for the next block height. (This includes cases where the blockchain reorganizes.) There is no re-evaluation of the txns in this mempool ever -- they are evaluated once and then either included or discarded. They never need to be rescanned.
+
+Interestingly, these payments will *always* be directed to main:miners from non-main:miners. Therefore, non-mining full nodes do not need to keep them in any mempool at all. Non-miner nodes can just wait for a block to be found, and check the txn then. These transactions more resemble a stock market's pit trade-offers (in contrast, regular Bitcoin txns are more like paper checks).
+
+==== Lightning BMM Request ====
+
+Lightning BMMRs require Simons to have a LN-channel pathways open with Marys. This may not always be practical (or even possible), especially today.
+
+LN txns cannot make use of prevSideBlockRef, as no one knows for sure when (or if) they will be broadcast on-chain. Instead, they must use prevSideBlockHash. But they otherwise require the same data:
+
+<pre>
+ 4-bytes - Message header (0xD0520C6E)
+ 1-byte - sidechain number
+ 32-bytes - h* side:block hash
+ 32-bytes - prevSideBlockHash
+</pre>
+
+Notice that, in OnChain BMMRs, Simon could reuse the same h\* all he wanted, because only one OnChain BMMR could be included per main:block per sidechain. However, on the LN no such rule can be enforced, as the goal is to push everything off-chain and include *zero* txns. So, we will never know what the Requests were, or how many had an effect on anything.
+
+Therefore, Simon will need to ensure that he '''gives each Mary a different h\*'''. Simon can easily do this, as he controls the side:block's contents and can simply increment a side:nonce -- this changes the side:block, and changes its hash (ie, changes h\*).
+
+With a unique h\* per Mary (or, more precisely, per channel), and at most 1 h\* making it into a block (per sidechain), Simon can ensure that he is charged, at most, one time.
+
+That's probably confusing, so here is an example, in which: Simon starts with 13 BTC, Mary starts with 40 BTC, the side:block's tx-fees currently total 7.1 BTC, and Simon is keeping 0.1 BTC for himself and paying 7 BTC to Mary.
+
+We start with (I):
+
+<pre>
+ Simon 13 in, Mary 40 in ; 53 in total
+ Simon's version [signed by Mary]
+ 13 ; to Simon if TimeLock=over; OR to Mary if SimonSig
+ 40 ; to Mary
+ Mary's version [signed by Simon]
+ 40 ; to me if TimeLock=over; OR to Simon if MarySig
+ 13 ; to Simon
+</pre>
+
+
+And both parties move, from there to (II):
+
+<pre>
+ Simon 13 in, Mary 40 in ; 53 in total
+ Simon's version [signed by Mary]
+ 6 ; to Simon if TimeLock=over; OR to Mary if SimonSig
+ 40 ; to Mary
+ 7 ; to Mary if critical data requirements met; OR to Simon if LongTimeLock=over
+ Mary's version [signed by Simon]
+ 40 ; to Mary if TimeLock=over; OR to Simon if MarySig
+ 6 ; to Simon
+ 7 ; to Mary if critical data requirements met; OR to Simon if LongTimeLock=over
+</pre>
+
+
+From here, if the h\* side:block in question is BMMed, they can proceed to (III):
+
+<pre>
+ Simon 13 in, Mary 40 in ; 53 in total
+ Simon's version [signed by Mary]
+ 6 ; to Simon if TimeLock=over; OR to Mary if SimonSig
+ 47 ; to Mary
+ Mary's version [signed by Simon]
+ 47 ; to me if TimeLock=over; OR to Simon if MarySig
+ 6 ; to Simon
+</pre>
+
+If Simon proceeds immediately, he removes Mary's incentive to care about blocks being built on this side:block. If Simon's side:block is orphaned, he loses his 7 BTC. Simon can either play it safe, and wait for (for example) 100 side:blocks before moving on (ie, before moving on to the third LN txn, above); or else Simon can take the risk if he feels comfortable with it.
+
+If the h\* side:block is not found, then (II) and (III) are basically equivalent to each other. Simon and Mary could jointly reconstruct (I) and go back there, or they could proceed to a new version of II (with a different h\*, trying again with new side:block in the next main:block).
+
+Now that we have described Requests, we can describe how they are accepted.
+
+=== BMM Accept ===
+
+For each BMM Request that a main:miner "accepts", main:miners must place an OP Return output into their main:coinbase txn. (We've changed the tx-standardness policy to allow multiple OP_RETURNs.)
+
+The following data is required in the "accept" OP_RETURN output:
+ 1-byte - OP_RETURN (0x6a)
+ 1-byte - Push the following 36 bytes (0x24)
+ 4-bytes - Message header (0xD3407053)
+ 32-bytes - h*
+ ~5-bytes - BMM identifier bytes
+
+
+[https://github.com/DriveNetTESTDRIVE/DriveNet/blob/564516653c1d876429382971a011f5f6119f7eb4/src/validation.cpp#L3377-L3470 Link to code].
+
+If these OP_RETURN outputs are not present, then no BMM Requests have been accepted. (And, if they are not accepted, then they cannot be included in a main:block.)
+
+
+==Backward compatibility==
+
+As a soft fork, older software will continue to operate without modification. As stated above, BMM asks nodes to track a set of ordered hashes, and to allow miners to "sell" the act of finding a sidechain block. Non-upgraded nodes will notice that this activity (specifically: data in coinbases, and new txns that have OP Returns and interesting message headers) is now taking place, but they will not understand any of it. Much like P2SH or a new OP Code, these old users will not be directly affected by the fork, as they will have no expectations of receiving payments of this kind.
+
+(As a matter of fact, the only people receiving money here all happen to be miners. So there is less reason than ever to expect compatibility problems.)
+
+
+==Deployment==
+
+This BIP will be deployed by "version bits" BIP9 with the name "blindmm" and using bit 4.
+
+<pre>
+// Deployment of Drivechains (BIPX, BIPY)
+consensus.vDeployments[Consensus::DEPLOYMENT_DRIVECHAINS].bit = 4;
+consensus.vDeployments[Consensus::DEPLOYMENT_DRIVECHAINS].nStartTime = 1579072881; // January 15th, 2020.
+consensus.vDeployments[Consensus::DEPLOYMENT_DRIVECHAINS].nTimeout = 1610695281; // January 15th, 2021.
+</pre>
+
+
+==Reference Implementation==
+
+See: https://github.com/DriveNetTESTDRIVE/DriveNet
+
+Also, for interest, see an example sidechain here: https://github.com/drivechain-project/bitcoin/tree/sidechainBMM
+
+
+==References==
+
+* http://www.drivechain.info/literature/index.html
+* http://www.truthcoin.info/blog/blind-merged-mining/
+* https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-July/014789.html
+* http://www.truthcoin.info/images/bmm-outline.txt
+
+
+==Thanks==
+
+Thanks to everyone who contributed to the discussion, especially: ZmnSCPxj, Adam Back, Peter Todd, Dan Anderson, Sergio Demian Lerner, Matt Corallo, Sjors Provoost, Tier Nolan, Erik Aronesty, Jason Dreyzehner, Joe Miyamoto, Chris Stewart, Ben Goldhaber.
+
+
+==Copyright==
+
+This BIP is licensed under the BSD 2-clause license.
diff --git a/bip-0301/bmm-dots-examples.png b/bip-0301/bmm-dots-examples.png
new file mode 100644
index 0000000..70f11f6
--- /dev/null
+++ b/bip-0301/bmm-dots-examples.png
Binary files differ
diff --git a/bip-0301/images.txt b/bip-0301/images.txt
new file mode 100644
index 0000000..2fbbf63
--- /dev/null
+++ b/bip-0301/images.txt
@@ -0,0 +1 @@
+Images used as reference in the documentation.
diff --git a/bip-0301/witness-vs-critical.png b/bip-0301/witness-vs-critical.png
new file mode 100644
index 0000000..79c84b1
--- /dev/null
+++ b/bip-0301/witness-vs-critical.png
Binary files differ
diff --git a/bip-0310.mediawiki b/bip-0310.mediawiki
new file mode 100644
index 0000000..257e92a
--- /dev/null
+++ b/bip-0310.mediawiki
@@ -0,0 +1,285 @@
+<pre>
+ BIP: 310
+ Layer: Applications
+ Title: Stratum protocol extensions
+ Author: Pavel Moravec <pavel.moravec@braiins.cz>
+ Jan Čapek <jan.capek@braiins.cz>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0310
+ Status: Draft
+ Type: Informational
+ Created: 2018-03-10
+ License: BSD-3-Clause
+ CC0-1.0
+</pre>
+
+==Abstract==
+
+This BIP provides a generic mechanism for specifying stratum protocol
+extensions. At the same time, one of the important extensions that is
+specified by this BIP is configuration of bits for "version rolling"
+in nVersion field of bitcoin block header.
+
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+document are to be interpreted as described in RFC 2119.
+
+==Motivation==
+
+The initial motivation for specifying some general support for stratum
+protocol extensions was a need to allow miners to do so called
+"version rolling", changing value in the first field of the Bitcoin
+block header.
+
+Version rolling is backwards incompatible change to the stratum protocol
+because the miner couldn't communicate different block version value to
+the server in the original version of the stratum protocol. Similarly,
+a server couldn't communicate safe bits for rolling to a miner. So
+both miners and pools need to implement some protocol extension to
+support version rolling.
+
+Typically, if a miner sends an unknown message to a server, the server
+closes the connection (not all implementations do that but some
+do). So it is not very safe to try to send unknown messages to
+servers.
+
+We can use this opportunity to make one backwards incompatible
+change to the protocol to support multiple extensions in the
+future. In a way that a miner can advertise its capabilities and at
+the same time it can request some needed features from the server.
+
+It is preferable that the same mechanism for feature negotiation can
+be used for not yet known features. It SHOULD be easy to implement in
+the mining software too.
+
+We introduce one new message to the stratum protocol ('''"mining.configure"''') which handles the initial configuration/negotiation of features in a generic way. So that adding features in the future can be done without a necessity to add new messages to stratum protocol.
+
+Each extension has its unique string name, so called '''extension code'''.
+
+
+==Specification==
+Currently, the following extensions are defined:
+
+* '''"version-rolling"'''
+* '''"minimum-difficulty"'''
+* '''"subscribe-extranonce"'''
+
+
+===Additional data types===
+
+The following names are used as type aliases, making the message
+description easier.
+
+* '''TMask''' - case independent hexadecimal string of length 8, encoding an unsigned 32-bit integer (~<code>[0-9a-fA-F]{8}</code>)
+
+* '''TExtensionCode''' - non-empty string with a value equal to the name of some protocol extension.
+
+* '''TExtensionResult''' - <code>true</code> / <code>false</code> / ''String''.
+** <code>true</code> = The requested feature is supported and its configuration understood and applied.
+** <code>false</code> = The feature is not supported or unknown.
+** ''String'' = Error message containing information about what went wrong.
+
+
+===Request "mining.configure"===
+
+This message (JSON RPC Request) SHOULD be the '''first message''' sent
+by the miner after the connection with the server is established. The client
+uses the message to advertise its features and to request/allow some
+protocol extensions.
+
+The reason for it being the first is that we want the implementation and
+possible interactions to be as easy and simple as possible. An extension
+can define explicitly what does a repeated configuration of that
+extension mean.
+
+Each extension code provides a namespace for its extension parameters
+and extension return values. By convention, the names are formed from
+extension codes by adding "." and a parameter name. The same applies
+for the return values, which are transferred in a result map
+too. E.g. "version-rolling.mask" is the name of the parameter "mask" of
+extension "version-rolling".
+
+'''Parameters''':
+
+* '''extensions''' (REQUIRED, List of ''TExtensionCode'')
+::- Each string in the list MUST be a valid extension code. The meaning of each code is described independently as part of the extension definition. A miner SHOULD advertise all its available features.
+
+* '''extension-parameters''' (REQUIRED, ''Map of (String -> Any)'')
+::- Parameters of the requested/allowed extensions from the first parameter.
+
+
+'''Return value''':
+
+* ''Map of (String -> Any)''
+::- Each code from the '''extensions''' list MUST have a defined return value (''TExtensionCode'' -> ''TExtensionResult''). This way the miner knows if the extension is activated or not. E.g. <code>{"version-rolling":false}</code> for unsupported version rolling.
+::- Some extensions need additional information to be delivered to the miner. The return value map is used for this purpose.
+
+
+Example request (new-lines added):
+
+<pre>
+ {"method": "mining.configure",
+ "id": 1,
+ "params": [["minimum-difficulty", "version-rolling"],
+ {"minimum-difficulty.value": 2048,
+ "version-rolling.mask": "1fffe000", "version-rolling.min-bit-count": 2}]}
+</pre>
+
+(The miner requests extensions <code>"version-rolling"</code> and
+<code>"minimum-difficulty"</code>. It sets the parameters according to the extensions'
+definitions.)
+
+Example result (new-lines added):
+
+<pre>
+ {"error": null,
+ "id": 1,
+ "result": {"version-rolling": true,
+ "version-rolling.mask": "18000000",
+ "minimum-difficulty": true}}
+</pre>
+
+=Defined extensions=
+
+==Extension "version-rolling"==
+
+This extension allows the miner to change the value of some bits in the
+version field in the block header. Currently there are no standard bits
+used for version rolling so they need to be negotiated between a
+miner and a server.
+
+A miner sends the server a mask describing bits which the miner is
+capable of changing. 1 = changeable bit, 0 = not changeable (<code>miner_mask</code>)
+and a minimum number of bits that it needs for efficient version rolling.
+
+A server typically allows you to change only some of the version bits
+(<code>server_mask</code>) and the rest of the version bits are
+fixed. E.g. because the block needs to be valid or some signaling is
+in place.
+
+The server responds to the configuration message by sending a mask
+with common bits intersection of the miner's mask and its a mask
+(<code>response = server_mask & miner_mask</code>)
+
+Example request (a miner capable of changing any 2 bits from a 16-bit mask):
+
+ {"method": "mining.configure", "id": 1, "params": [["version-rolling"], {"version-rolling.mask": "1fffe000", "version-rolling.min-bit-count": 2}]}
+
+
+Example result (success):
+
+ {"error": null, "id": 1, "result": {"version-rolling": true, "version-rolling.mask": "18000000"}}
+
+
+Example result (unknown extension):
+
+ {"error": null, "id": 1, "result": {"version-rolling": false}}
+
+
+'''Extension parameters''':
+
+* '''"version-rolling.mask"''' (OPTIONAL, ''TMask'', default value <code>"ffffffff"</code>)
+::- Bits set to 1 can be changed by the miner. This value is expected
+to be stable for the whole mining session. A miner doesn't have to
+send the mask, in this case a default full mask is used.
+
+'''Extension return values''':
+
+* '''"version-rolling"''' (REQUIRED, ''TExtensionResult'')
+::- When responded with <code>true</code>, the server will accept new parameter of '''"mining.submit"''', see later.
+
+* '''"version-rolling.mask"''' (REQUIRED, ''TMask'')
+::- Bits set to 1 are allowed to be changed by the miner. If a miner changes bits with mask value 0, the server will reject the submit.
+::- The server SHOULD return the largest mask possible (as many bits set to 1 as possible). This can be useful in a mining proxy setup when a proxy needs to negotiate the best mask for its future clients. There is a [Draft BIP](https://github.com/bitcoin/bips/pull/661/files) describing available nVersion bits. The server SHOULD pick a mask that preferably covers all bits specified in the BIP.
+
+* '''"version-rolling.min-bit-count"''' (REQUIRED, ''TMask'')
+::- The miner also provides a minimum number of bits that it needs for efficient version rolling in hardware. Note that this parameter provides important diagnostic information to the pool server. If the requested bit count exceeds the limit of the pool server, the miner always has the chance to operate in a degraded mode without using full hashing power. The pool server SHOULD NOT terminate miner connection if this rare mismatch case occurs.
+
+===Notification '''"mining.set_version_mask"'''===
+
+Server notifies the miner about a new mask valid for the
+connection. This message can be sent at any time after the successful
+setup of the version rolling extension by the "mining.configure"
+message. The new mask is valid '''immediately''', so that the server
+doesn't wait for the next job.
+
+
+'''Parameters''':
+
+* ''mask'' (REQUIRED, ''TMask''): The meaning is the same as the '''"version-rolling.mask"''' return parameter.
+
+Example:
+
+ {"params":["00003000"], "id":null, "method": "mining.set_version_mask"}
+
+
+===Changes in request '''"mining.submit"'''===
+
+Immediately after successful activation of the version-rolling extension
+(result to '''"mining.configure"''' sent by server), the server MUST accept
+an additional parameter of the message '''"mining.submit"'''. The client MUST
+send one additional parameter, '''version_bits''' (6th parameter, after
+''worker_name'', ''job_id'', ''extranonce2'', ''ntime'' and ''nonce'').
+
+
+'''Additional parameters''':
+
+* ''version_bits'' (REQUIRED, ''TMask'') - Version bits set by miner.
+::- Miner can set only bits corresponding to the set bits in the last received mask from the server either as response to "mining.configure" or "mining.set_version_mask" notification (<code>last_mask</code>). This must hold:
+ version_bits & ~last_mask == 0
+::- The server computes ''nVersion'' for the submit as follows:
+ nVersion = (job_version & ~last_mask) | (version_bits & last_mask)
+where <code>job_version</code> is the block version sent to miner as part of job with id <code>job_id</code>.
+
+==Extension "minimum-difficulty"==
+
+This extension allows miner to request a minimum difficulty for the
+connected machine. It solves a problem in the original stratum
+protocol where there is no way how to communicate hard limit of the
+connected device.
+
+'''Extension parameters''':
+* '''"minimum-difficulty.value"''' (REQUIRED, ''Integer/Float'', >= 0)
+::- The minimum difficulty value acceptable for the miner/connection. The value can be 0 for essentially disabling the feature.
+
+'''Extension return values''':
+* '''"minimum-difficulty"''' (REQUIRED, ''TExtensionResult'')
+::- Whether the minimum difficulty was accepted or not.
+::- This extension can be configured multiple times by calling "mining.configure" with "minimum-difficulty" code again.
+
+
+==Extension "subscribe-extranonce"==
+
+Parameter-less extension. Miner advertises its capability of receiving
+message '''"mining.set_extranonce"''' message (useful for hash rate
+routing scenarios).
+
+==Extension "info"==
+
+Miner provides additional text-based information.
+
+'''Extension parameters''':
+* '''"info.connection-url"''' (OPTIONAL, ''String'')
+::- Exact URL used by the mining software to connect to the stratum server.
+
+* '''"info.hw-version"''' (OPTIONAL, ''String'')
+::- Manufacturer specific hardware revision string.
+
+* '''"info.sw-version"''' (OPTIONAL, ''String'')
+::- Manufacturer specific software version
+
+* '''"info.hw-id"''' (OPTIONAL, ''String'')
+::- Unique identifier of the mining device
+
+==Compatibility==
+
+Currently, there is a similar protocol feature '''mining.capabilities''' that
+was intended for various protocol extensions. However, '''mining.configure'''
+is incompatible with this feature as it requires a server response confirming
+all accepted/negotatied extensions. The reason why we made it incompatible is
+that '''mining.capabilities''' request has no associated response.
+
+
+==Copyright==
+
+This document is dual licensed as BSD 3-clause, and Creative Commons CC0 1.0 Universal.
diff --git a/bip-0320.mediawiki b/bip-0320.mediawiki
new file mode 100644
index 0000000..9a32df6
--- /dev/null
+++ b/bip-0320.mediawiki
@@ -0,0 +1,68 @@
+<pre>
+ BIP: 320
+ Title: nVersion bits for general purpose use
+ Author: BtcDrak <btcdrak@gmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0320
+ Status: Draft
+ Type: Standards Track
+ Created: 2018-03-01
+ License: BSD-3-Clause
+ CC0-1.0
+</pre>
+
+==Abstract==
+
+This BIP reserves 16 bits of the block header nVersion field for general purpose use and removes their meaning for the purpose of version bits soft-fork signalling.
+
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
+
+==Motivation==
+
+There are a variety of things that miners may desire to use some of the nVersion field bits for. However, due to their use to coordinate miner activated soft-forks, full node software will generate false warnings about unknown soft forks if those bits are used for non soft fork signalling purposes. By reserving bits from the nVersion field for general use, node software can be updated to ignore those bits and therefore will not emit false warnings. Reserving 16 bits for general use leaves enough for 13 parallel soft-forks using version bits.
+
+===Example Uses===
+
+The following are example cases that would benefit from using some of the bits from the nVersion field. This list is not exhaustive.
+
+Bitcoin mining hardware currently can exhaust the 32 bit nonce field in less than 200ms requiring the controller to distribute new jobs very frequently to each mining chip consuming a lot of bandwidth and CPU time. This can be greatly reduced by rolling more bits. Rolling too many bits from nTime is not ideal because it may distort the timestamps over a longer period.
+
+Version-rolling AsicBoost requires two bits from the nVersion field to calculate 4-way collisions. Any two bits can be used and mining equipment can negotiate which bits are to be used with mining pools via the Stratum "version-rolling" extension.
+
+==Specification==
+
+Sixteen bits from the block header nVersion field, starting from 13 and ending at 28 inclusive (0x1fffe000), are reserved for general use and removed from BIP8 and BIP9 specifications. A mask of 0xe0001fff should be applied to nVersion bits so bits 13-28 inclusive will be ignored for soft-fork signalling and unknown soft-fork warnings.
+
+This specification does not reserve specific bits for specific purposes.
+
+==Reference Implementation==
+
+https://github.com/btcdrak/bitcoin/commit/d12516e136d4a8952904a13eedc9f4225f35dc3b
+
+==Backwards Compatibility==
+
+Non-upgraded nodes will interpret the reserved bits of this proposal as signals for soft forks, and may additionally activate the warning system for unknown soft forks.
+
+This proposal does not require a soft fork to implement.
+
+At the time of writing no known soft forks are pending using any of 16 bits reserved in this BIP, and given that a non-trivial percentage of the hashrate is already making uses of those bits, future soft forks SHOULD NOT utilise those bits for activation signalling.
+
+==Acknowledgements==
+
+Timo Hanke and Sergio Lerner for originally proposing 15-bit extra nNonce2.
+
+==References==
+
+[[bip-0008.mediawiki|BIP8]]
+
+[[bip-0009.mediawiki|BIP9]]
+
+[https://arxiv.org/pdf/1604.00575.pdf AsicBoost white paper]
+
+[https://github.com/BlockheaderNonce2/bitcoin/wiki Blockheader Extra nNonce2 proposal]
+
+[https://github.com/slushpool/stratumprotocol/blob/master/stratum-extensions.mediawiki Stratum protocol extension BIP for version-rolling]
+
+==Copyright==
+
+This document is dual licensed as BSD 3-clause, and Creative Commons CC0 1.0 Universal.
diff --git a/bip-0322.mediawiki b/bip-0322.mediawiki
new file mode 100644
index 0000000..95991e6
--- /dev/null
+++ b/bip-0322.mediawiki
@@ -0,0 +1,246 @@
+<pre>
+ BIP: 322
+ Layer: Applications
+ Title: Generic Signed Message Format
+ Author: Karl-Johan Alm <karljohan-alm@garage.co.jp>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0322
+ Status: Draft
+ Type: Standards Track
+ Created: 2018-09-10
+ License: CC0-1.0
+</pre>
+
+== Abstract ==
+
+A standard for interoperable generic signed messages based on the Bitcoin Script format.
+
+== Background ==
+
+* Assume two actors, a prover <code>P</code> and a verifier <code>V</code>.
+* <code>P</code> wants to prove that they own the private key <code>k</code> associated with a given address <code>A</code> (which in turn is derived from the pubkey <code>kG</code>).
+* Let <code>V</code> generate a message <code>M</code> and hand this to <code>P</code>.
+* <code>P</code> generates a signature <code>S</code> by signing the message <code>M</code> using <code>k</code>. Given <code>S</code>, <code>V</code> can prove that <code>P</code> has the private key associated with <code>A</code>.
+
+The astute reader will notice that the above is missing a critical part, namely the pubkey <code>kG</code>, without which the verifier cannot actually verify the message. The current message signing standard solves this via a cryptographic trick, wherein the signature <code>S</code> above is a special "recoverable signature" type. Given the message <code>M</code> and the signature <code>S</code>, it is then possible to recover the pubkey <code>kG</code>. The system thus derives the address for the pubkey <code>kG</code>, and if it does not match <code>A</code>, the proof is deemed invalid.
+
+While this is a neat trick, it unnecessarily restricts and complicates the message signing mechanism; for instance, it is currently not possible to sign a message for a P2SH address, because there is no pubkey to recover from the resulting signature.
+
+== Motivation ==
+
+The current message signing standard only works for P2PKH (1...) addresses. By extending it to use a Bitcoin Script based approach, it could be made more generic without causing a too big burden on implementers, who most likely have access to Bitcoin Script interpreters already.
+
+== Specification ==
+
+A new structure <code>SignatureProof</code> is added, which is a simple serializable scriptSig & witness container.
+
+=== SignatureProof container ===
+
+{|class="wikitable" style="text-align: center;"
+|-
+!Type
+!Length
+!Name
+!Comment
+|-
+|VarInt||1-8||scriptsiglen||Number of bytes in scriptSig data
+|-
+|Uint8*||[scriptsiglen]||scriptsig||ScriptSig data
+|-
+|VarInt||1-8||witlen||Number of entries in witness stack
+|-
+|Uint8[]*||[witlen]||wit||Witness stack, as [witlen] uint8* vectors, each one prepended with a varint of its size
+|}
+
+In some cases, the scriptsig or wit may be empty. If both are empty, the proof is incomplete.
+
+=== Result Codes ===
+
+A verification call will return a result code according to the table below.
+
+{|class="wikitable" style="text-align: center;"
+|-
+!Code
+!Description
+|-
+|INCOMPLETE||Empty proof.
+|-
+|INCONCLUSIVE||The given proof was consensus-valid but policy-invalid.
+|-
+|VALID||The proof was valid.
+|-
+|INVALID||The proof was invalid
+|-
+|ERROR||An error was encountered
+|}
+
+== Signing and Verifying ==
+
+If the challenge consists of an address is in the P2PKH (legacy) format, sign using the legacy format (further information below). Otherwise continue as stated below.
+
+For both cases, generate a sighash based on the given scriptPubKey and message as follows:
+
+# Define the message pre-image as the sequence "Bitcoin Signed Message:\n" concatenated with the message, encoded in UTF-8 using Normalization Form Compatibility Decomposition (NFKD)
+# Let sighash = sha256(sha256(scriptPubKey || pre-image))
+
+A private key may be used directly to sign a message. In this case, its P2WPKH bech32 address shall be derived, and used as the input.
+
+=== Signing ===
+
+The signature is generated as follows:
+
+# Derive the private key privkey for the scriptPubKey; FAIL if not VALID
+# Generate and return a signature sig with privkey=privkey, sighash=sighash
+
+=== Verifying ===
+
+Verify a proof, given a standard flags value, a script sig, an optional witness, and a derived sighash as described above.
+
+While omitted below, ERROR is returned if an unforeseen error occurs at any point in the process. A concrete example of this is if a legacy proof is given as input to a non-legacy address; the deserialization of the proof will fail in this case, and this should result in an ERROR result.
+
+# Verify Script with flags=consensus flags (currently P2SH, DERSIG, NULLDUMMY, CLTV, CSV, WITNESS), scriptSig=script sig, scriptPubKey=scriptPubKey, witness=witness, and sighash=sighash
+# Return INVALID if verification fails
+# Verify Script with flags=standard flags (above plus STRICTENC, MINIMALDATA, etc.), scriptSig=script sig, scriptPubKey=scriptPubKey, witness=witness, and sighash=sighash
+# Return VALID if verification succeeds, otherwise return INCONCLUSIVE
+
+== Legacy format ==
+
+The legacy format is restricted to the legacy P2PKH address format.
+
+Any other input (i.e. non-P2PKH address format) must be signed using the new format described above.
+
+=== Signing ===
+
+Given the P2PKH address <code>a</code> and the message <code>m</code>, and the pubkey-hash function <code>pkh(P) = ripemd160(sha256(P))</code>:
+
+# let <code>p</code> be the pubkey-hash <code>pkh(P)</code> for the pubkey <code>P</code>, contained in <code>a</code>
+# let <code>x</code> be the private key associated with <code>P</code> so that <code>pkh(xG) = p</code>
+# let <code>digest</code> be <code>SHA56d("Bitcoin Signed Message:\n"||m)</code>
+# create a compact signature <code>sig</code> (aka "recoverable ECDSA signature") using <code>x</code> on <code>digest</code>
+
+The resulting proof is <code>sig</code>, serialized using the base64 encoding.
+
+=== Verifying ===
+
+Given the P2PKH address <code>a</code>, the message <code>m</code>, the compact signature <code>sig</code>, and the pubkey-hash function <code>pkh(P) = ripemd160(sha256(P))</code>:
+
+# let <code>p</code> be the pubkey-hash <code>pkh(P)</code> for the pubkey <code>P</code>, contained in <code>a</code>
+# let <code>digest</code> be <code>SHA56d("Bitcoin Signed Message:\n"||m)</code>
+# attempt pubkey recovery for <code>digest</code> using the signature <code>sig</code> and store the resulting pubkey into <code>Q</code>
+## fail verification if pubkey recovery above fails
+# let <code>q</code> be the pubkey-hash <code>pkh(Q)</code> for the pubkey <code>Q</code>
+# if <code>p == q</code>, the proof is valid, otherwise it is invalid
+
+== Compatibility ==
+
+This specification is backwards compatible with the legacy signmessage/verifymessage specification through the special case as described above.
+
+== Reference implementation ==
+
+# Pull request to Bitcoin Core: https://github.com/bitcoin/bitcoin/pull/16440
+
+== Acknowledgements ==
+
+Thanks to David Harding, Jim Posen, Kalle Rosenbaum, Pieter Wuille, and many others for their feedback on the specification.
+
+== References ==
+
+# Original mailing list thread: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-March/015818.html
+
+== Copyright ==
+
+This document is licensed under the Creative Commons CC0 1.0 Universal license.
+
+== Consensus and standard flags ==
+
+Each flag is associated with some type of enforced rule (most often a soft fork). There are two sets of flags: consensus flags (which result in a block being rejected, if violated), and policy flags (which result in a transaction being accepted only if it is contained within an actual block, and rejected otherwise, if violated). The policy flags are a super-set of the consensus flags.
+
+BIP322 specifies that a proof that validates for both rulesets is valid, a proof that validates for consensus rules, but not for policy rules, is "inconclusive", and a proof that does not validate for consensus rules is "invalid" (regardless of policy rule validation).
+
+The ruleset sometimes changes. This BIP does not intend to be complete, nor does it indicate enforcement of rules, it simply lists the rules as they stand at the point of writing.
+
+=== Consensus rules ===
+
+* P2SH: evaluate P2SH ([https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki BIP16]) subscripts
+* DERSIG: enforce strict DER ([https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki BIP66]) compliance
+* NULLDUMMY: enforce NULLDUMMY ([https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki BIP147])
+* CHECKLOCKTIMEVERIFY: enable CHECKLOCKTIMEVERIFY ([https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki BIP65])
+* CHECKSEQUENCEVERIFY: enable CHECKSEQUENCEVERIFY ([https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP112])
+* WITNESS: enable WITNESS ([https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki BIP141])
+
+=== Policy rules ===
+
+All of the above, plus (subject to change):
+
+* STRICTENC: non-strict DER signature or undefined hashtype
+* MINIMALDATA: require minimal encodings for all push operations
+* DISCOURAGE_UPGRADABLE_NOPS: discourage use of NOPs reserved for upgrades
+* CLEANSTACK: require that only a single stack element remains after evaluation
+* MINIMALIF: Segwit script only: require the argument of OP_IF/NOTIF to be exactly 0x01 or empty vector
+* NULLFAIL: signature(s) must be empty vector if a CHECK(MULTI)SIG operation failed
+* LOW_S: signature with S > order/2 in a checksig operation
+* DISCOURAGE_UPGRADABLE_WITNESS_PROGRAM: v1-16 witness programs are non-standard (i.e. forbidden)
+* WITNESS_PUBKEYTYPE: public keys in segregated witness scripts must be compressed
+* CONST_SCRIPTCODE: OP_CODESEPARATOR and FindAndDelete fail any non-segwit scripts
+
+== Test vectors ==
+
+(TODO: update test vectors, which are based on previous iteration where signature proofs contained additional data)
+
+== Native segwit test vector ==
+
+<pre>
+address = bcrt1qe7nte4zk4ayly5tc53dtdjupgkz0lr8azx3rzz
+scriptpubkey = 0014cfa6bcd456af49f25178a45ab6cb814584ff8cfd
+message = hello
+preimage = 0014cfa6bcd456af49f25178a45ab6cb814584ff8cfd426974636f696e205369
+ 676e6564204d6573736167653a0a68656c6c6f
+ (scriptpubkey || "Bitcoin Signed Message:\nhello")
+sighash = 790eef86c204f0bff969ff822121317aa34eff0215dbd30ccf031e7b2f3f0cc1
+ (sha256d(preimage), displayed in big-endian)
+</pre>
+
+The proof becomes:
+
+<pre>
+HEX: 01000000010002473044022075b4fb40421d55c55462879cb352a85eeb3af2138d3f0290
+ 2c9143f12870f5f70220119c2995c1661138142f3899c1fd6d1af7e790e0e081be72db9c
+ e7bf5b5b932901210290beccd02b73eca57467b2b6f1e47161a9b76a5e67586e7c1dee9e
+ a6e2dcd869
+
+Base64: AQAAAAEAAkcwRAIgdbT7QEIdVcVUYoecs1KoXus68hONPwKQLJFD8Shw9fcCIBGcKZXBZhE4
+ FC84mcH9bRr355Dg4IG+ctuc579bW5MpASECkL7M0Ctz7KV0Z7K28eRxYam3al5nWG58He6e
+ puLc2Gk=
+</pre>
+
+Split into components:
+
+{|class="wikitable" style="text-align: center;"
+|-
+!Type
+!Length
+!Name
+!Value
+!Comment
+|-
+|Uint32||4||flags||<code>01000000</code>||proof format version
+|-
+|Uint8||1||entries||<code>01</code>||1 entry
+|-
+|VarInt||1-8||scriptsiglen||<code>00</code>||0 byte scriptsig
+|-
+|VarInt||1-8||wit entries||<code>02</code>||2 witness stack entries
+|-
+|VarInt||1-8||entry1len||<code>47</code>||71 byte entry
+|-
+|Uint8[71]||71||entry1||<code>3044022075b4fb40421d55c55462879cb352a85eeb3af213
+8d3f02902c9143f12870f5f70220119c2995c1661138142f
+3899c1fd6d1af7e790e0e081be72db9ce7bf5b5b932901</code>||Witness stack item 1
+|-
+|VarInt||1-8||entry2len||<code>21</code>||33 byte entry
+|-
+|Uint8[33]||33||entry2||<code>0290beccd02b73eca57467b2b6f1e47161a9b76a5e67586e
+7c1dee9ea6e2dcd869</code>||Witness stack item 2
+|}
+
+The above test vector is for a bech32 P2WPKH (native segwit) address. (Once BIP solidifies, will add test vector for other types.)
diff --git a/bip-0325.mediawiki b/bip-0325.mediawiki
new file mode 100644
index 0000000..f273e14
--- /dev/null
+++ b/bip-0325.mediawiki
@@ -0,0 +1,105 @@
+<pre>
+ BIP: 325
+ Layer: Applications
+ Title: Signet
+ Author: Karl-Johan Alm <karljohan-alm@garage.co.jp>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0325
+ Status: Draft
+ Type: Standards Track
+ Created: 2019-03-20
+ License: CC0-1.0
+</pre>
+
+== Abstract ==
+
+A new type of test network where signatures are used in addition to proof of work for block progress, enabling much better coordination and robustness (be reliably unreliable), for persistent, longer-term testing scenarios involving multiple independent parties.
+
+== Motivation ==
+
+Testnet is a great place to try out new things without risking real money, but it is notoriously unreliable. Huge block reorgs, long gaps in between blocks being mined or sudden bursts of blocks in rapid succession mean that realistic testing of software, especially involving multiple independent parties running software over an extended period of time, becomes infeasible in practice.
+
+A new type of test network would be more suitable for integration testing by organizations such as exchanges, or testing of next generation Layer-2 protocols like Eltoo or sidechain pegs. The goal is not to be perfectly reliable but rather to have a predictable amount of unreliability. You want a test network to behave like mainnet (i.e. no thousands of block reorgs) while also making it easier to trigger expected but rare events like a 6-block reorg. Regtest is not suitable for longer-term scenarios involving multiple independent parties because creating blocks costs nothing, so any party can completely control the test network.
+
+
+== Specification ==
+
+A new type of network ("signet"), which takes an additional consensus parameter called the challenge (scriptPubKey). The challenge can be a simple pubkey (P2PKH style), or a k-of-n multisig, or any other script you would want.
+
+The witness commitment of the coinbase transaction is extended to include a secondary commitment (the signature/solution):
+
+ 1-4 bytes - Push the following (x + 4) bytes
+ 4 bytes - Signet header (0xecc7daa2)
+ x bytes - Solution (sigScript)
+
+Any push operations that do not start with the 4 byte signet header are ignored. Multiple push operations with the 4 byte signet header are ignored except for the first entry.
+
+Any signature operations contained within the challenge use SHA256d(modifiedBlockHash), i.e. the double-SHA256 digest of the following data as the sighash:
+
+{|class="wikitable" style="text-align: center;"
+|-
+!Type
+!Size
+!Name
+|-
+|Int32||4||nVersion
+|-
+|Uint256||32||hashPrevBlock
+|-
+|Uint256||32||modifiedMerkleRoot
+|-
+|Uint32||4||nTime
+|-
+|Uint32||4||nBits
+|}
+
+The <code>modifiedMerkleRoot</code> hash is obtained by generating the merkle root of the block transactions, with the coinbase witness commitment as is, without the signet extension. This means the merkle root of the block is different from the merkle root in the signet commitment. This is needed, because the signature can never be included in the very message (in this case, a block) that is being signed. Apart from the signature, to facilitate block generation (mining), the block nonce value is the only other component of the block that the signet signature does not commit to. When grinding proof of work, the extended nonce cannot be used as it would invalidate the signature. Instead, simply resigning the same (or an updated) block will give a new search space.
+
+A block is considered fully validated if the above commitment is found, and its solution is valid. It is recommended that this verification is done directly before or after the witness commitment verification, as the data required to do both is approximately the same.
+
+== Genesis Block and Message Start ==
+
+The genesis block is the same for all signet networks, whereas the message start is defined as the first four bytes of the sha256d of the challenge script as a single data push (see below).
+
+=== Genesis Block ===
+
+* Time stamp: 1534313275
+* Nonce: 100123
+* Difficulty: 1e2adc28
+
+The resulting genesis block hash is 0000032d7f67af9ec7b7152aea0fe7c95b9804ff973265e252f245e0ae61799d, and the block hex is 0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a3bc3735b28dc2a1e1b8701000101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000.
+
+=== Message Start ===
+
+The message start is defined as the first four bytes of the sha256d of the challenge script, as a single push (i.e. prefixed with the challenge script length). Example:
+
+* Challenge script = 512103ad5e0edad18cb1f0fc0d28a3d4f1f3e445640337489abb10404f2d1e086be43051ae
+* Sha256d(len || challenge script) = sha256d(25512103ad...51ae) = 7ec653a59b1912f9db10da2c461ed827d48f9404d5ef0346a6c94aadd4203646
+* First four bytes = the message start = 7ec653a5
+
+== Compatibility ==
+
+This specification is backwards compatible in the sense that existing software can use Signet out of the box.
+
+Simply by adding the network parameters for signet (magic number, etc), a client can connect to and use any signet network without further modifications. The block headers have valid proof of work, so clients can trivially check that blocks are "probably" valid.
+
+However, anyone can mine blocks that are accepted by the client for any given signet network. These blocks do not contain the required signatures, however, so any fully validating node will promptly reject them. As such, clients need to either validate the block signature inside the coinbase transaction, or connect to trusted peers.
+
+Other software need not add block signature validation code that they will not use in production. This is adequate for non-production test purposes where the goal is to have a network behave as much like mainnet as possible.
+
+== Reference implementation ==
+
+Pull request at https://github.com/bitcoin/bitcoin/pull/18267
+
+== Acknowledgements ==
+
+TODO
+
+== References ==
+
+# Original mailing list thread: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-March/016734.html
+# Bitcoin Wiki entry: https://en.bitcoin.it/wiki/Signet
+
+== Copyright ==
+
+This document is licensed under the Creative Commons CC0 1.0 Universal license.
diff --git a/bip-0330.mediawiki b/bip-0330.mediawiki
new file mode 100644
index 0000000..581b6ae
--- /dev/null
+++ b/bip-0330.mediawiki
@@ -0,0 +1,299 @@
+<pre>
+ BIP: 330
+ Layer: Peer Services
+ Title: Transaction announcements reconciliation
+ Author: Gleb Naumenko <naumenko.gs@gmail.com>
+ Pieter Wuille <pieter.wuille@gmail.com>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0330
+ Status: Draft
+ Type: Standards Track
+ Created: 2019-09-25
+ License: CC0-1.0
+ License-Code: MIT
+</pre>
+
+==Abstract==
+
+This document specifies a P2P protocol extension for reconciliation of transaction announcements <b>between 2 nodes</b>, which is a building block for efficient transaction relay protocols (e.g., [https://arxiv.org/pdf/1905.10518.pdf Erlay]). This is a step towards increasing the connectivity of the network for almost no bandwidth cost.
+
+==Motivation==
+
+Currently in the Bitcoin network, every 32-byte transaction ID is announced in at least one direction between every pair of connected peers, via INV messages. This results in high cost of announcing transactions: ''O(nodes * connections_per_node)''.
+
+A <b>reconciliation-based protocol</b> which uses the technique suggested in this document can have better scaling properties than INV-based flooding.
+
+Increasing the connectivity of the network makes the network more robust to partitioning attacks; thus, improving the bandwidth scaling of transaction relay to ''O(nodes)'' (and without a high constant overhead) would allow us to improve the security of the network by increasing connectivity. It would also reduce the bandwidth required to run a Bitcoin node and potentially enable more users to run full nodes.
+
+===Erlay===
+
+[https://arxiv.org/pdf/1905.10518.pdf Erlay] is an example of a high-level transaction relay protocol which employs set reconciliation for bandwidth efficiency.
+
+Erlay uses both flooding (announcing using INV messages to all peers) and reconciliation to announce transactions.
+Flooding is expensive, so Erlay seeks to use it sparingly and in strategic locations - only well-connected publicly reachable nodes flood transactions to other publicly reachable nodes via outbound connections.
+Since every unreachable node is directly connected to several reachable nodes, this policy ensures that a transaction is quickly propagated to be within one hop from most of the nodes in the network.
+
+All transactions not propagated through flooding are propagated through efficient set reconciliation.
+To do this, every node keeps a reconciliation set for each peer, in which transactions are placed which would have been announced using INV messages absent this protocol. Every 2 seconds every node chooses a peer from its outbound connections in a predetermined order to reconcile with, resulting in both sides learning the transactions known to the other side. After every reconciliation round, the corresponding reconciliation set is cleared.
+A more detailed description of a set reconciliation round and other implementation details can be found in the paper.
+
+Erlay allows us to:
+* save 40% of the bandwidth consumed by a node, given typical network connectivity as of July 2019.
+* achieve similar latency
+* increase network connectivity for almost no bandwidth or latency cost
+* improves privacy as a side-effect
+
+This document proposes a P2P-layer extension which is required to enable efficient reconciliation-based protocols (like Erlay) for transaction relay.
+
+==Specification==
+
+===New data structures===
+
+Several new data structures are introduced to the P2P protocol first, to aid with efficient transaction relay.
+
+====32-bit short transaction IDs====
+
+During reconciliation, significantly abbreviated transaction IDs are used of just 32 bits in size. To prevent attackers from constructing sets of transactions that cause network-wide collisions, the short ID computation is salted on a per-link basis using 64 bits of entropy contributed by both communication partners.
+
+Short IDs are computed as follows:
+* Let ''salt<sub>1</sub>'' and ''salt<sub>2</sub>'' be the entropy contributed by both sides; see the "sendrecon" message further for details how they are exchanged.
+* Sort the two salts such that ''salt<sub>1</sub> &le; salt<sub>2</sub>'' (which side sent what doesn't matter).
+* Compute ''h = SHA256("Tx Relay Salting" || salt<sub>1</sub> || salt<sub>2</sub>)'', where the two salts are encoded in 64-bit little-endian byte order.
+* Let ''k<sub>0</sub>'' be the 64-bit integer obtained by interpreting the first 8 bytes of ''h'' in little-endian byte order.
+* Let ''k<sub>1</sub>'' be the 64-bit integer obtained by interpreting the second 8 bytes of ''h'' in little-endian byte order.
+* Let ''s = SipHash-2-4((k<sub>0</sub>,k<sub>1</sub>),wtxid)'', where ''wtxid'' is the transaction hash including witness data as defined by BIP141.
+* The short ID is equal to ''1 + (s mod 0xFFFFFFFF)''.
+
+This results in approximately uniformly distributed IDs in the range ''[1..0xFFFFFFFF]'', which is a requirement for using them as elements in 32-bit sketches. See the next paragraph for details.
+
+====Short transaction ID sketches====
+
+Reconciliation-based relay uses [https://www.cs.bu.edu/~reyzin/code/fuzzy.html PinSketch] BCH-based secure sketches as introduced by the [https://www.cs.bu.edu/~reyzin/fuzzy.html Fuzzy Extractors paper]. They are a form of set checksums with the following properties:
+* Sketches have a predetermined capacity, and when the number of elements in the set does not exceed the capacity, it is always possible to recover the entire set from the sketch by decoding the sketch. A sketch of nonzero b-bit elements with capacity c can be stored in bc bits.
+* A sketch of the [https://en.wikipedia.org/wiki/Symmetric_difference symmetric difference] between the two sets (i.e., all elements that occur in one but not both input sets), can be obtained by combining the sketches of those sets.
+
+The sketches used here consists of elements of the [https://en.wikipedia.org/wiki/Finite_field finite field] ''GF(2<sup>32</sup>)''. Specifically, we represent finite field elements as polynomials in ''x'' over ''GF(2)'' modulo ''x<sup>32</sup + x<sup>7</sup> + x<sup>3</sup> + x<sup>2</sup> + 1''. To map integers to finite field elements, simply treat each bit ''i'' (with value ''2<sup>i</sup>'') in the integer as the coefficient of ''x<sup>i</sup>'' in the polynomial representation. For example the integer ''101 = 2<sup>6</sup> + 2<sup>5</sup> + 2<sup>2</sup> + 1'' is mapped to field element ''x<sup>6</sup> + x<sup>5</sup> + x<sup>2</sup> + 1''. These field elements can be added and multiplied together, but the specifics of that are out of scope for this document.
+
+A short ID sketch with capacity ''c'' consists of a sequence of ''c'' field elements. The first is the sum of all short IDs in the set, the second is the sum of the 3rd powers of all short IDs, the third is the sum of the 5th powers etc., up to the last element with is the sum of the ''(2c-1)''th powers. These elements are then encoded as 32-bit integers in little endian byte order, resulting in a ''4c''-byte serialization.
+
+The following Python 3.2+ code implements the creation of sketches: <pre>
+FIELD_BITS = 32
+FIELD_MODULUS = (1 << FIELD_BITS) + 0b10001101
+
+def mul2(x):
+ """Compute 2*x in GF(2^FIELD_BITS)"""
+ return (x << 1) ^ (FIELD_MODULUS if x.bit_length() >= FIELD_BITS else 0)
+
+def mul(x, y):
+ """Compute x*y in GF(2^FIELD_BITS)"""
+ ret = 0
+ for bit in [(x >> i) & 1 for i in range(x.bit_length())]:
+ ret, y = ret ^ bit * y, mul2(y)
+ return ret
+
+def create_sketch(shortids, capacity):
+ """Compute the bytes of a sketch for given shortids and given capacity."""
+ odd_sums = [0 for _ in range(capacity)]
+ for shortid in shortids:
+ squared = mul(shortid, shortid)
+ for i in range(capacity):
+ odd_sums[i] ^= shortid
+ shortid = mul(shortid, squared)
+ return b''.join(elem.to_bytes(4, 'little') for elem in odd_sums)
+</pre>
+
+The [https://github.com/sipa/minisketch/ minisketch] library implements the construction, merging, and decoding of these sketches efficiently.
+
+====Truncated transaction IDs====
+
+For announcing and relaying transaction outside of reconciliation, we need an unambiguous, unsalted way to refer to transactions to deduplicate transaction requests. As we're introducing a new scheme anyway, this is a good opportunity to switch to wtxid-based requests rather than txid-based ones. While using full 256-bit wtxids is possible, this is overkill as they contribute significantly to the total bandwidth as well. Instead, we truncate the wtxid to just their first 128 bits. These are referred to as truncated IDs.
+
+===Intended Protocol Flow===
+
+Set reconciliation primarily consists of the transmission and decoding of a reconciliation set sketch upon request.
+
+[[File:bip-0330/recon_scheme_merged.png|framed|center|Set reconciliation protocol flow]]
+
+====Bisection====
+
+If a node is unable to reconstruct the set difference from the received sketch, the node then makes an additional reconciliation request, similar to the initial one, but this request is applied to only a fraction of possible transactions (e.g., in the range 0x0–0x8). Because of the linearity of sketches, a sketch of a subset of transactions would allow the node to compute a sketch for the remainder, which saves bandwidth.
+
+[[File:bip-0330/bisection.png|framed|300px|center|Bisection]]
+
+===New messages===
+Several new protocol messages are added: sendrecon, reqreconcil, sketch, reqbisec, reconcildiff, invtx, gettx. This section describes their serialization, contents, and semantics.
+
+In what follows, all integers are serialized in little-endian byte order. Boolean values are encoded as a single byte that must be 0 or 1 exactly. Arrays are serialized with the CompactSize prefix that encodes their length, as is common in other P2P messages.
+
+====sendrecon====
+The sendrecon message announces support for the reconciliation protocol. It is expected to be only sent once, and ignored by nodes that don't support it.
+
+Its payload consists of:
+{|class="wikitable"
+! Data type !! Name !! Description
+|-
+| bool || sender || Indicates whether the sender will send "reqreconcil" message
+|-
+| bool || responder || Indicates whether the sender will respond to "reqreconcil" messages.
+|-
+| uint32 || version || Sender must set this to 1 currently, otherwise receiver should ignore the message.
+|-
+| uint64 || salt || The salt used in the short transaction ID computation.
+|}
+
+"reqreconcil" messages can only be sent if the sender has sent a "sendrecon" message with sender=true, and the receiver has sent a "sendrecon" message with responder=true.
+
+====reqreconcil====
+The reqreconcil message initiates a reconciliation round.
+
+{|class="wikitable"
+! Data type !! Name !! Description
+|-
+| uint16 || set_size || Size of the sender's reconciliation set, used to estimate set difference.
+|-
+| uint8 || q || Coefficient used to estimate set difference. Multiplied by PRECISION=2^6 and rounded up by the sender and divided by PRECISION by the receiver.
+|}
+
+Upon receipt of a "reqreconcil" message, the receiver:
+* Constructs and sends a "sketch" message (see below), with a sketch of capacity computed as ''|set_size - local_set_size| + q * (set_size + local_set_size) + c'', where ''local_set_size'' represents size of the receiver's reconciliation set.
+* Makes a snapshot of their current reconciliation set, and clears the set itself. The snapshot is kept until a "reconcildiff" message is received by the node.
+
+It is suggested to use ''c=1'' to avoid sending empty sketches and reduce the overhead caused by under-estimations.
+
+Intuitively, ''q'' represents the discrepancy in sets: the closer the sets are, the lower optimal ''q'' is.
+As suggested by Erlay, ''q'' should be derived as an optimal ''q'' value for the previous reconciliation with a given peer, once the actual set sizes and set difference are known. Alternatively, ''q=0.1'' should be used as a default value.
+For example, if in previous round ''set_size=30'' and ''local_set_size=20'', and the *actual* difference was ''4'', then a node should compute ''q'' as following:
+''q=(|30-20| - 1) / (30+20)=0.18''
+The derivation of ''q'' can be changed according to the version of the protocol.
+
+No new "reqreconcil" message can be sent until a "reconcildiff" message is sent.
+
+====sketch====
+The sketch message is used to communicate a sketch required to perform set reconciliation.
+
+{|class="wikitable"
+! Data type !! Name !! Description
+|-
+| byte[] || skdata || The sketch of the sender's reconciliation snapshot
+|}
+
+Upon receipt of a "sketch" message, a node computes the set difference by combining the receiver sketch with a sketch computed locally for a corresponding reconciliation set. If this is the 2nd time for this round a "sketch" message was received, the bisection approach is used, and by combining the new sketch with the previous one, two difference sketches are obtained, one for the first half and one for the second half of the short id range. The receiving node then tries to decode this sketch (or sketches), and based on the result:
+* If decoding fails, a "reconcildiff" message is sent with the failure flag set (success=false). If this was the first "sketch" in the round, a "reqbisec" message may be sent instead.
+* If decoding succeeds, a "reconcildiff" message is sent with the truncated IDs of all locally known transactions that appear in the decode result, and the short IDs of the unrecognized ones.
+
+The receiver also makes snapshot of their current reconciliation set, and clears the set itself. The snapshot is kept until a "reconcildiff" message is sent by the node.
+
+====reqbisec====
+The reqbisec message is used to signal that set reconciliation has failed and an extra sketch is needed to find set difference.
+
+It has an empty payload.
+
+Upon receipt of a "reqbisec" message, a node responds to it with a "sketch" message, which contains a sketch of a subset of corresponding reconciliation set <b>snapshot</b> (stored when "reqreconcil" message for the current round was processed) (values in range ''[0..(2^31)]'').
+
+====reconcildiff====
+The reconcildiff message is used to announce transactions which are found to be missing during set reconciliation on the sender's side.
+
+{|class="wikitable"
+! Data type !! Name !! Description
+|-
+| uint8 || success || Indicates whether sender of the message succeeded at set difference decoding.
+|-
+| uint32[] || ask_shortids || The short IDs that the sender did not have.
+|}
+
+Upon receipt a "reconcildiff" message with ''success=1'', a node sends a "invtx" message for the transactions requested by 32-bit IDs (first vector) containing their 128-bit truncated IDs (with parent transactions occuring before their dependencies), and can request announced transactions (second vector) it does not have via a "gettx" message.
+Otherwise if ''success=0'', receiver should request bisection via ''reqbisec'' (if failure happened for the first time).
+If failure happened for the second time, receiver should announce the transactions from the reconciliation set via an "invtx" message, excluding the transactions announced from the sender.
+
+The <b>snapshot</b> of the corresponding reconciliation set is cleared by the sender and the receiver of the message.
+
+The sender should also send their own "invtx" message along with the reconcildiff message to announce transactions which are missing on the receiver's side.
+
+====invtx====
+The invtx message is used to announce transactions (both along with reconcildiff message and as a response to the reconcildiff message). It is the truncated ID analogue of "inv" (which cannot be used because it has 256-bit elements).
+
+{|class="wikitable"
+! Data type !! Name !! Description
+|-
+| uint128[] || inv_truncids || The truncated IDs of transactions the sender believes the receiver does not have.
+|}
+
+Upon receipt a "invtx" message, a node requests announced transactions it does not have.
+The <b>snapshot</b> of the corresponding reconciliation set is cleared by the sender of the message.
+
+====gettx====
+The gettx message is used to request transactions by 128-bit truncated IDs. It is the truncated ID analogue of "getdata".
+
+{|class="wikitable"
+! Data type !! Name !! Description
+|-
+| uint128[] || ask_truncids || The truncated IDs of transactions the sender wants the full transaction data for.
+|}
+
+Upon receipt a "gettx" message, a node sends "tx" messages for the requested transactions.
+
+==Local state==
+
+This BIP suggests a stateful protocol and it requires storing several variables at every node to operate properly.
+
+====Reconciliation sets====
+Every node stores a set of 128-bit truncated IDs for every peer which supports transaction reconciliation, representing the transactions which would have been sent according to the regular flooding protocol.
+Incoming transactions are added to sets when those transactions are received (if they satisfy the policies such as minimum fee set by a peer).
+A reconciliation set is moved to the corresponding set snapshot after the transmission of the initial sketch.
+
+====Reconciliation set snapshot====
+After the transmitting of the initial sketch (either sending or receiving of reconcildiff message), every node should store the snapshot of the current reconciliation set, and clear the set.
+This is important to make bisection more stable during the reconciliation round (bisection should be applied to the snapshot).
+The snapshot is also used to efficiently lookup the transactions requested by short ID.
+The snapshot is cleared after the end of the reconciliation round (sending or receiving of the reconcildiff message).
+
+====q-coefficient====
+The q value should be stored to make efficient difference estimation. It is shared across peers and changed after every reconciliation.
+q-coefficient represents the discrepancy in sets: the closer the sets are, the lower optimal ''q'' is.
+In future implementations, q could vary across different peers or become static.
+
+
+==Backward compatibility==
+
+Older clients remain fully compatible and interoperable after this change.
+
+Clients which do not implement this protocol remain fully compatible after this change using existing protocols, because transaction announcement reconciliation is used only for peers that negotiate support for it.
+
+==Rationale==
+
+====Why using PinSketch for set reconciliation?====
+
+PinSketch is more bandwidth efficient than IBLT, especially for the small differences in sets we expect to operate over.
+PinSketch is as bandwidth efficient as CPISync, but PinSketch has quadratic decoding complexity, while CPISync have cubic decoding complexity. This makes PinSketch significantly faster.
+
+====Why using 32-bit short transaction IDs?====
+
+To use Minisketch in practice, transaction IDs should be shortened (ideally, not more than 64 bits per element).
+Small number of bits per transaction also allows to save extra bandwidth and make operations over sketches faster.
+According to our estimates, 32 bits provides low collision rate in a non-adversarial model (which is enabled by using independent salts per-link).
+
+====Why using 128-bit short IDs?====
+
+To avoid problems caused by the delays in the network, our protocol requires extra round of announcing unsalted transaction IDs. [https://arxiv.org/pdf/1905.10518.pdf Erlay] protocol on top of this work also requires announcing unsalted transaction IDs for flooding.
+Both of these measures allow to deduplicate transaction announcements across the peers.
+However, using full 256-bit IDs to uniquely identify transactions seems to be an overkill.
+128 is the highest power of 2 which provides good enough collision-resistance in an adversarial model, and trivially saves a significant portion of the bandwidth related to these announcements.
+
+====Why using bisection instead of extending the sketch?====
+
+Unlike extended sketches, bisection does not require operating over sketches of higher order.
+This allows to avoid the high computational cost caused by quadratic decoding complexity.
+
+==Implementation==
+
+TODO
+
+==Acknowledgments==
+
+A large fraction of this proposal was done during designing Erlay with Gregory Maxwell, Sasha Fedorova and Ivan Beschastnikh.
+We would like to thank Suhas Daftuar for contributions to the design and BIP structure.
+We would like to thank Ben Woosley for contributions to the high-level description of the idea.
+
+==Copyright==
+
+This document is licensed under the Creative Commons CC0 1.0 Universal license.
diff --git a/bip-0330/bisection.png b/bip-0330/bisection.png
new file mode 100644
index 0000000..70f37e8
--- /dev/null
+++ b/bip-0330/bisection.png
Binary files differ
diff --git a/bip-0330/minisketch.py b/bip-0330/minisketch.py
new file mode 100755
index 0000000..f64286f
--- /dev/null
+++ b/bip-0330/minisketch.py
@@ -0,0 +1,157 @@
+#!/usr/bin/env python3
+
+######## ENCODING and DECODING ########
+
+FIELD_BITS = 32
+FIELD_MODULUS = (1 << FIELD_BITS) + 0b10001101
+
+def mul2(x):
+ """Compute 2*x in GF(2^FIELD_BITS)"""
+ return (x << 1) ^ (FIELD_MODULUS if x.bit_length() >= FIELD_BITS else 0)
+
+def mul(x, y):
+ """Compute x*y in GF(2^FIELD_BITS)"""
+ ret = 0
+ for bit in [(x >> i) & 1 for i in range(x.bit_length())]:
+ ret ^= bit * y
+ y = mul2(y)
+ return ret
+
+######## ENCODING only ########
+
+def sketch(shortids, capacity):
+ """Compute the bytes of a sketch for given shortids and given capacity."""
+ odd_sums = [0 for _ in range(capacity)]
+ for shortid in shortids:
+ squared = mul(shortid, shortid)
+ for i in range(capacity):
+ odd_sums[i] ^= shortid
+ shortid = mul(shortid, squared)
+ return b''.join(elem.to_bytes(4, 'little') for elem in odd_sums)
+
+######## DECODING only ########
+
+import random
+
+def inv(x):
+ """Compute 1/x in GF(2^FIELD_BITS)"""
+ t = x
+ for i in range(FIELD_BITS - 2):
+ t = mul(mul(t, t), x)
+ return mul(t, t)
+
+
+def berlekamp_massey(s):
+ """Given a sequence of LFSR outputs, find the coefficients of the LFSR."""
+ C, B, L, m, b = [1], [1], 0, 1, 1
+ for n in range(len(s)):
+ d = s[n]
+ for i in range(1, L + 1):
+ d ^= mul(C[i], s[n - i])
+ if d == 0:
+ m += 1
+ else:
+ T = list(C)
+ while len(C) <= len(B) + m:
+ C += [0]
+ t = mul(d, inv(b))
+ for i in range(len(B)):
+ C[i + m] ^= mul(t, B[i])
+ if 2 * L <= n:
+ L, B, b, m = n + 1 - L, T, d, 1
+ else:
+ m += 1
+ return C[0:L + 1]
+
+def poly_monic(p):
+ """Return the monic multiple of p, or 0 if the input is 0."""
+ if len(p) == 0:
+ return []
+ i = inv(p[-1])
+ return [mul(v, i) for v in p]
+
+def poly_divmod(m, p):
+ """Compute the polynomial quotient p/m, and replace p with p mod m."""
+ assert(len(m) > 0 and m[-1] == 1)
+ div = [0 for _ in range(len(p) - len(m) + 1)]
+ while len(p) >= len(m):
+ div[len(p) - len(m)] = p[-1]
+ for i in range(len(m)):
+ p[len(p) - len(m) + i] ^= mul(p[-1], m[i])
+ assert(p[-1] == 0)
+ p.pop()
+ while (len(p) > 0 and p[-1] == 0):
+ p.pop()
+ return div
+
+def poly_gcd(a, b):
+ """Compute the GCD of a and b (destroys the inputs)."""
+ if len(a) < len(b):
+ a, b = b, a
+ while len(b):
+ if len(b) == 1:
+ return [1]
+ b = poly_monic(b)
+ poly_divmod(b, a)
+ a, b = b, a
+ return a
+
+def poly_sqr(p):
+ """Compute the coefficients of the square of polynomial with coefficients p."""
+ return [0 if i & 1 else mul(p[i // 2], p[i // 2]) for i in range(2 * len(p))]
+
+def poly_trace(m, a):
+ """Compute the coefficients of the trace polynomial of (a*x) mod m."""
+ out = [0, a]
+ for i in range(FIELD_BITS - 1):
+ out = poly_sqr(out)
+ while len(out) < 2:
+ out += [0]
+ out[1] = a
+ poly_divmod(m, out)
+ return out
+
+def find_roots_inner(p, a):
+ """Recursive helper function for find_roots (destroys p). a is randomizer."""
+ # p must be monic
+ assert(len(p) > 0 and p[-1] == 1)
+ # Deal with degree 0 and degree 1 inputs
+ if len(p) == 1:
+ return []
+ elif len(p) == 2:
+ return [p[0]]
+ # Otherwise, split p in left*right using paramater a_vals[0].
+ t = poly_monic(poly_trace(p, a))
+ left = poly_gcd(list(p), t)
+ right = poly_divmod(list(left), p)
+ # Invoke recursion with the remaining a_vals.
+ ret_right = find_roots_inner(right, mul2(a))
+ ret_left = find_roots_inner(left, mul2(a))
+ # Concatenate roots
+ return ret_left + ret_right
+
+def find_roots(p):
+ """Find the roots of polynomial with coefficients p."""
+ # Compute x^(2^FIELD_BITS)+x mod p in a roundabout way.
+ t = poly_trace(p, 1)
+ t2 = poly_sqr(t)
+ for i in range(len(t)):
+ t2[i] ^= t[i]
+ poly_divmod(p, t2)
+ # If distinct from 0, p is not fully factorizable into non-repeating roots.
+ if len(t2):
+ return None
+ # Invoke the recursive splitting algorithm
+ return find_roots_inner(list(p), random.randrange(1, 2**32-1))
+
+def decode(sketch):
+ """Recover the shortids from a sketch."""
+ odd_sums = [int.from_bytes(sketch[i*4:(i+1)*4], 'little') for i in range(len(sketch) // 4)]
+ sums = []
+ for i in range(len(odd_sums) * 2):
+ if i & 1:
+ sums.append(mul(sums[(i-1)//2], sums[(i-1)//2]))
+ else:
+ sums.append(odd_sums[(i+1)//2])
+ return find_roots(list(reversed(berlekamp_massey(sums))))
+
diff --git a/bip-0330/recon_scheme_merged.png b/bip-0330/recon_scheme_merged.png
new file mode 100644
index 0000000..11d1559
--- /dev/null
+++ b/bip-0330/recon_scheme_merged.png
Binary files differ
diff --git a/bip-0340.mediawiki b/bip-0340.mediawiki
new file mode 100644
index 0000000..b4e5f60
--- /dev/null
+++ b/bip-0340.mediawiki
@@ -0,0 +1,272 @@
+<pre>
+ BIP: 340
+ Title: Schnorr Signatures for secp256k1
+ Author: Pieter Wuille <pieter.wuille@gmail.com>
+ Jonas Nick <jonasd.nick@gmail.com>
+ Tim Ruffing <crypto@timruffing.de>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0340
+ Status: Draft
+ Type: Standards Track
+ License: BSD-2-Clause
+ Created: 2020-01-19
+ Post-History: 2018-07-06: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-July/016203.html [bitcoin-dev] Schnorr signatures BIP
+</pre>
+
+== Introduction ==
+
+=== Abstract ===
+
+This document proposes a standard for 64-byte Schnorr signatures over the elliptic curve ''secp256k1''.
+
+=== Copyright ===
+
+This document is licensed under the 2-clause BSD license.
+
+=== Motivation ===
+
+Bitcoin has traditionally used
+[https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm ECDSA] signatures over the [https://www.secg.org/sec2-v2.pdf secp256k1 curve] with [https://en.wikipedia.org/wiki/SHA-2 SHA256] hashes for authenticating
+transactions. These are [https://www.secg.org/sec1-v2.pdf standardized], but have a number of downsides
+compared to [http://publikationen.ub.uni-frankfurt.de/opus4/files/4280/schnorr.pdf Schnorr signatures] over the same curve:
+
+* '''Provable security''': Schnorr signatures are provably secure. In more detail, they are ''strongly unforgeable under chosen message attack (SUF-CMA)''<ref>Informally, this means that without knowledge of the secret key but given valid signatures of arbitrary messages, it is not possible to come up with further valid signatures.</ref> [https://www.di.ens.fr/~pointche/Documents/Papers/2000_joc.pdf in the random oracle model assuming the hardness of the elliptic curve discrete logarithm problem (ECDLP)] and [http://www.neven.org/papers/schnorr.pdf in the generic group model assuming variants of preimage and second preimage resistance of the used hash function]<ref>A detailed security proof in the random oracle model, which essentially restates [https://www.di.ens.fr/~pointche/Documents/Papers/2000_joc.pdf the original security proof by Pointcheval and Stern] more explicitly, can be found in [https://eprint.iacr.org/2016/191 a paper by Kiltz, Masny and Pan]. All these security proofs assume a variant of Schnorr signatures that use ''(e,s)'' instead of ''(R,s)'' (see Design above). Since we use a unique encoding of ''R'', there is an efficiently computable bijection that maps ''(R,s)'' to ''(e,s)'', which allows to convert a successful SUF-CMA attacker for the ''(e,s)'' variant to a successful SUF-CMA attacker for the ''(R,s)'' variant (and vice-versa). Furthermore, the proofs consider a variant of Schnorr signatures without key prefixing (see Design above), but it can be verified that the proofs are also correct for the variant with key prefixing. As a result, all the aforementioned security proofs apply to the variant of Schnorr signatures proposed in this document.</ref>. In contrast, the [https://nbn-resolving.de/urn:nbn:de:hbz:294-60803 best known results for the provable security of ECDSA] rely on stronger assumptions.
+* '''Non-malleability''': The SUF-CMA security of Schnorr signatures implies that they are non-malleable. On the other hand, ECDSA signatures are inherently malleable<ref>If ''(r,s)'' is a valid ECDSA signature for a given message and key, then ''(r,n-s)'' is also valid for the same message and key. If ECDSA is restricted to only permit one of the two variants (as Bitcoin does through a policy rule on the network), it can be [https://nbn-resolving.de/urn:nbn:de:hbz:294-60803 proven] non-malleable under stronger than usual assumptions.</ref>; a third party without access to the secret key can alter an existing valid signature for a given public key and message into another signature that is valid for the same key and message. This issue is discussed in [[bip-0062.mediawiki|BIP62]] and [[bip-0146.mediawiki|BIP146]].
+* '''Linearity''': Schnorr signatures provide a simple and efficient method that enables multiple collaborating parties to produce a signature that is valid for the sum of their public keys. This is the building block for various higher-level constructions that improve efficiency and privacy, such as multisignatures and others (see Applications below).
+
+For all these advantages, there are virtually no disadvantages, apart
+from not being standardized. This document seeks to change that. As we
+propose a new standard, a number of improvements not specific to Schnorr signatures can be
+made:
+
+* '''Signature encoding''': Instead of using [https://en.wikipedia.org/wiki/X.690#DER_encoding DER]-encoding for signatures (which are variable size, and up to 72 bytes), we can use a simple fixed 64-byte format.
+* '''Public key encoding''': Instead of using [https://www.secg.org/sec1-v2.pdf ''compressed''] 33-byte encodings of elliptic curve points which are common in Bitcoin today, public keys in this proposal are encoded as 32 bytes.
+* '''Batch verification''': The specific formulation of ECDSA signatures that is standardized cannot be verified more efficiently in batch compared to individually, unless additional witness data is added. Changing the signature scheme offers an opportunity to address this.
+* '''Completely specified''': To be safe for usage in consensus systems, the verification algorithm must be completely specified at the byte level. This guarantees that nobody can construct a signature that is valid to some verifiers but not all. This is traditionally not a requirement for digital signature schemes, and the lack of exact specification for the DER parsing of ECDSA signatures has caused problems for Bitcoin [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-July/009697.html in the past], needing [[bip-0066.mediawiki|BIP66]] to address it. In this document we aim to meet this property by design. For batch verification, which is inherently non-deterministic as the verifier can choose their batches, this property implies that the outcome of verification may only differ from individual verifications with negligible probability, even to an attacker who intentionally tries to make batch- and non-batch verification differ.
+
+By reusing the same curve and hash function as Bitcoin uses for ECDSA, we are able to retain existing mechanisms for choosing secret and public keys, and we avoid introducing new assumptions about the security of elliptic curves and hash functions.
+
+== Description ==
+
+We first build up the algebraic formulation of the signature scheme by
+going through the design choices. Afterwards, we specify the exact
+encodings and operations.
+
+=== Design ===
+
+'''Schnorr signature variant''' Elliptic Curve Schnorr signatures for message ''m'' and public key ''P'' generally involve a point ''R'', integers ''e'' and ''s'' picked by the signer, and the base point ''G'' which satisfy ''e = hash(R || m)'' and ''s⋅G = R + e⋅P''. Two formulations exist, depending on whether the signer reveals ''e'' or ''R'':
+# Signatures are pairs ''(e, s)'' that satisfy ''e = hash(s⋅G - e⋅P || m)''. This variant avoids minor complexity introduced by the encoding of the point ''R'' in the signature (see paragraphs "Encoding R and public key point P" and "Implicit Y coordinates" further below in this subsection). Moreover, revealing ''e'' instead of ''R'' allows for potentially shorter signatures: Whereas an encoding of ''R'' inherently needs about 32 bytes, the hash ''e'' can be tuned to be shorter than 32 bytes, and [http://www.neven.org/papers/schnorr.pdf a short hash of only 16 bytes suffices to provide SUF-CMA security at the target security level of 128 bits]. However, a major drawback of this optimization is that finding collisions in a short hash function is easy. This complicates the implementation of secure signing protocols in scenarios in which a group of mutually distrusting signers work together to produce a single joint signature (see Applications below). In these scenarios, which are not captured by the SUF-CMA model due its assumption of a single honest signer, a promising attack strategy for malicious co-signers is to find a collision in the hash function in order to obtain a valid signature on a message that an honest co-signer did not intend to sign.
+# Signatures are pairs ''(R, s)'' that satisfy ''s⋅G = R + hash(R || m)⋅P''. This supports batch verification, as there are no elliptic curve operations inside the hashes. Batch verification enables significant speedups.
+
+[[File:bip-0340/speedup-batch.png|center|frame|This graph shows the ratio between the time it takes to verify ''n'' signatures individually and to verify a batch of ''n'' signatures. This ratio goes up logarithmically with the number of signatures, or in other words: the total time to verify ''n'' signatures grows with ''O(n / log n)''.]]
+
+Since we would like to avoid the fragility that comes with short hashes, the ''e'' variant does not provide significant advantages. We choose the ''R''-option, which supports batch verification.
+
+'''Key prefixing''' Using the verification rule above directly makes Schnorr signatures vulnerable to "related-key attacks" in which a third party can convert a signature ''(R, s)'' for public key ''P'' into a signature ''(R, s + a⋅hash(R || m))'' for public key ''P + a⋅G'' and the same message ''m'', for any given additive tweak ''a'' to the signing key. This would render signatures insecure when keys are generated using [[bip-0032.mediawiki#public-parent-key--public-child-key|BIP32's unhardened derivation]] and other methods that rely on additive tweaks to existing keys such as Taproot.
+
+To protect against these attacks, we choose ''key prefixed''<ref>A limitation of committing to the public key (rather than to a short hash of it, or not at all) is that it removes the ability for public key recovery or verifying signatures against a short public key hash. These constructions are generally incompatible with batch verification.</ref> Schnorr signatures; changing the equation to ''s⋅G = R + hash(R || P || m)⋅P''. [https://eprint.iacr.org/2015/1135.pdf It can be shown] that key prefixing protects against related-key attacks with additive tweaks. In general, key prefixing increases robustness in multi-user settings, e.g., it seems to be a requirement for proving the MuSig multisignature scheme secure (see Applications below).
+
+We note that key prefixing is not strictly necessary for transaction signatures as used in Bitcoin currently, because signed transactions indirectly commit to the public keys already, i.e., ''m'' contains a commitment to ''pk''. However, this indirect commitment should not be relied upon because it may change with proposals such as SIGHASH_NOINPUT ([[bip-0118.mediawiki|BIP118]]), and would render the signature scheme unsuitable for other purposes than signing transactions, e.g., [https://bitcoin.org/en/developer-reference#signmessage signing ordinary messages].
+
+'''Encoding R and public key point P''' There exist several possibilities for encoding elliptic curve points:
+# Encoding the full X and Y coordinates of ''P'' and ''R'', resulting in a 64-byte public key and a 96-byte signature.
+# Encoding the full X coordinate and one bit of the Y coordinate to determine one of the two possible Y coordinates. This would result in 33-byte public keys and 65-byte signatures.
+# Encoding only the X coordinate, resulting in 32-byte public keys and 64-byte signatures.
+
+Using the first option would be slightly more efficient for verification (around 10%), but we prioritize compactness, and therefore choose option 3.
+
+'''Implicit Y coordinates''' In order to support efficient verification and batch verification, the Y coordinate of ''P'' and of ''R'' cannot be ambiguous (every valid X coordinate has two possible Y coordinates). We have a choice between several options for symmetry breaking:
+# Implicitly choosing the Y coordinate that is in the lower half.
+# Implicitly choosing the Y coordinate that is even<ref>Since ''p'' is odd, negation modulo ''p'' will map even numbers to odd numbers and the other way around. This means that for a valid X coordinate, one of the corresponding Y coordinates will be even, and the other will be odd.</ref>.
+# Implicitly choosing the Y coordinate that is a quadratic residue (has a square root modulo the field size, or "is a square" for short)<ref>A product of two numbers is a square when either both or none of the factors are squares. As ''-1'' is not a square modulo secp256k1's field size ''p'', and the two Y coordinates corresponding to a given X coordinate are each other's negation, this means exactly one of the two must be a square.</ref>.
+
+In the case of ''R'' the third option is slower at signing time but a bit faster to verify, as it is possible to directly compute whether the Y coordinate is a square when the points are represented in
+[https://en.wikibooks.org/wiki/Cryptography/Prime_Curve/Jacobian_Coordinates Jacobian coordinates] (a common optimization to avoid modular inverses
+for elliptic curve operations). The two other options require a possibly
+expensive conversion to affine coordinates first. This would even be the case if the sign or oddness were explicitly coded (option 2 in the list above). We therefore choose option 3.
+
+For ''P'', using the third option comes at the cost of computing a Jacobi symbol (test for squaredness) at key generation or signing time, without avoiding a conversion to affine coordinates (as public keys will use affine coordinates anyway). We choose the second option, making public keys implicitly have an even Y coordinate, to maximize compatibility with existing key generation algorithms and infrastructure.
+
+Implicit Y coordinates are not a reduction in security when expressed as the number of elliptic curve operations an attacker is expected to perform to compute the secret key. An attacker can normalize any given public key to a point whose Y coordinate is even by negating the point if necessary. This is just a subtraction of field elements and not an elliptic curve operation<ref>This can be formalized by a simple reduction that reduces an attack on Schnorr signatures with implicit Y coordinates to an attack to Schnorr signatures with explicit Y coordinates. The reduction works by reencoding public keys and negating the result of the hash function, which is modeled as random oracle, whenever the challenge public key has an explicit Y coordinate that is odd. A proof sketch can be found [https://medium.com/blockstream/reducing-bitcoin-transaction-sizes-with-x-only-pubkeys-f86476af05d7 here].</ref>.
+
+'''Tagged Hashes''' Cryptographic hash functions are used for multiple purposes in the specification below and in Bitcoin in general. To make sure hashes used in one context can't be reinterpreted in another one, hash functions can be tweaked with a context-dependent tag name, in such a way that collisions across contexts can be assumed to be infeasible. Such collisions obviously can not be ruled out completely, but only for schemes using tagging with a unique name. As for other schemes collisions are at least less likely with tagging than without.
+
+For example, without tagged hashing a BIP340 signature could also be valid for a signature scheme where the only difference is that the arguments to the hash function are reordered. Worse, if the BIP340 nonce derivation function was copied or independently created, then the nonce could be accidentally reused in the other scheme leaking the secret key.
+
+This proposal suggests to include the tag by prefixing the hashed data with ''SHA256(tag) || SHA256(tag)''. Because this is a 64-byte long context-specific constant and the ''SHA256'' block size is also 64 bytes, optimized implementations are possible (identical to SHA256 itself, but with a modified initial state). Using SHA256 of the tag name itself is reasonably simple and efficient for implementations that don't choose to use the optimization.
+
+'''Final scheme''' As a result, our final scheme ends up using public key ''pk'' which is the X coordinate of a point ''P'' on the curve whose Y coordinate is even and signatures ''(r,s)'' where ''r'' is the X coordinate of a point ''R'' whose Y coordinate is a square. The signature satisfies ''s⋅G = R + tagged_hash(r || pk || m)⋅P''.
+
+=== Specification ===
+
+The following conventions are used, with constants as defined for [https://www.secg.org/sec2-v2.pdf secp256k1]:
+* Lowercase variables represent integers or byte arrays.
+** The constant ''p'' refers to the field size, ''0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F''.
+** The constant ''n'' refers to the curve order, ''0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141''.
+* Uppercase variables refer to points on the curve with equation ''y<sup>2</sup> = x<sup>3</sup> + 7'' over the integers modulo ''p''.
+** ''is_infinite(P)'' returns whether or not ''P'' is the point at infinity.
+** ''x(P)'' and ''y(P)'' are integers in the range ''0..p-1'' and refer to the X and Y coordinates of a point ''P'' (assuming it is not infinity).
+** The constant ''G'' refers to the base point, for which ''x(G) = 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798'' and ''y(G) = 0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8''.
+** Addition of points refers to the usual [https://en.wikipedia.org/wiki/Elliptic_curve#The_group_law elliptic curve group operation].
+** [https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication Multiplication (⋅) of an integer and a point] refers to the repeated application of the group operation.
+* Functions and operations:
+** ''||'' refers to byte array concatenation.
+** The function ''x[i:j]'', where ''x'' is a byte array, returns a ''(j - i)''-byte array with a copy of the ''i''-th byte (inclusive) to the ''j''-th byte (exclusive) of ''x''.
+** The function ''bytes(x)'', where ''x'' is an integer, returns the 32-byte encoding of ''x'', most significant byte first.
+** The function ''bytes(P)'', where ''P'' is a point, returns ''bytes(x(P))''.
+** The function ''int(x)'', where ''x'' is a 32-byte array, returns the 256-bit unsigned integer whose most significant byte first encoding is ''x''.
+** The function ''is_square(x)'', where ''x'' is an integer, returns whether or not ''x'' is a quadratic residue modulo ''p''. Since ''p'' is prime, it is equivalent to the [https://en.wikipedia.org/wiki/Legendre_symbol Legendre symbol] ''(x / p) = x<sup>(p-1)/2</sup> mod p'' being equal to ''1''<ref>For points ''P'' on the secp256k1 curve it holds that ''y(P)<sup>(p-1)/2</sup> &ne; 0 mod p''.</ref>.
+** The function ''has_square_y(P)'', where ''P'' is a point, is defined as ''not is_infinite(P) and is_square(y(P))''<ref>For points ''P'' on the secp256k1 curve it holds that ''has_square_y(P) = not has_square_y(-P)''.</ref>.
+** The function ''has_even_y(x)'', where ''P'' is a point, returns ''y(P) mod 2 = 0''.
+** The function ''lift_x_square_y(x)'', where ''x'' is an integer in range ''0..p-1'', returns the point ''P'' for which ''x(P) = x''<ref>
+ Given a candidate X coordinate ''x'' in the range ''0..p-1'', there exist either exactly two or exactly zero valid Y coordinates. If no valid Y coordinate exists, then ''x'' is not a valid X coordinate either, i.e., no point ''P'' exists for which ''x(P) = x''. The valid Y coordinates for a given candidate ''x'' are the square roots of ''c = x<sup>3</sup> + 7 mod p'' and they can be computed as ''y = &plusmn;c<sup>(p+1)/4</sup> mod p'' (see [https://en.wikipedia.org/wiki/Quadratic_residue#Prime_or_prime_power_modulus Quadratic residue]) if they exist, which can be checked by squaring and comparing with ''c''.
+</ref> and ''has_square_y(P)''<ref>
+ If ''P := lift_x_square_y(x)'' does not fail, then ''y := y(P) = c<sup>(p+1)/4</sup> mod p'' is square. Proof: If ''lift_x_square_y'' does not fail, ''y'' is a square root of ''c'' and therefore the [https://en.wikipedia.org/wiki/Legendre_symbol Legendre symbol] ''(c / p)'' is ''c<sup>(p-1)/2</sup> = 1 mod p''. Because the Legendre symbol ''(y / p)'' is ''y<sup>(p-1)/2</sup> mod p = c<sup>((p+1)/4)((p-1)/2)</sup> mod p = 1<sup>((p+1)/4)</sup> mod p = 1 mod p'', ''y'' is square.
+</ref>, or fails if no such point exists. The function ''lift_x_square_y(x)'' is equivalent to the following pseudocode:
+*** Let ''c = x<sup>3</sup> + 7 mod p''.
+*** Let ''y = c<sup>(p+1)/4</sup> mod p''.
+*** Fail if ''c &ne; y<sup>2</sup> mod p''.
+*** Return the unique point ''P'' such that ''x(P) = x'' and ''y(P) = y'', or fail if no such point exists.
+** The function ''lift_x_even_y(x)'', where ''x'' is an integer in range ''0..p-1'', returns the point ''P'' for which ''x(P) = x'' and ''has_even_y(P)'', or fails if no such point exists. If such a point does exist, it is always equal to either ''lift_x_square_y(x)'' or ''-lift_x_square_y(x)'', which suggests implementing it in terms of ''lift_x_square_y'', and optionally negating the result.
+** The function ''hash<sub>tag</sub>(x)'' where ''tag'' is a UTF-8 encoded tag name and ''x'' is a byte array returns the 32-byte hash ''SHA256(SHA256(tag) || SHA256(tag) || x)''.
+
+==== Public Key Generation ====
+
+Input:
+* The secret key ''sk'': a 32-byte array, freshly generated uniformly at random
+
+The algorithm ''PubKey(sk)'' is defined as:
+* Let ''d' = int(sk)''.
+* Fail if ''d' = 0'' or ''d' &ge; n''.
+* Return ''bytes(d'⋅G)''.
+
+Note that we use a very different public key format (32 bytes) than the ones used by existing systems (which typically use elliptic curve points as public keys, or 33-byte or 65-byte encodings of them). A side effect is that ''PubKey(sk) = PubKey(bytes(n - int(sk))'', so every public key has two corresponding secret keys.
+
+==== Public Key Conversion ====
+
+As an alternative to generating keys randomly, it is also possible and safe to repurpose existing key generation algorithms for ECDSA in a compatible way. The secret keys constructed by such an algorithm can be used as ''sk'' directly. The public keys constructed by such an algorithm (assuming they use the 33-byte compressed encoding) need to be converted by dropping the first byte. Specifically, [[bip-0032.mediawiki|BIP32]] and schemes built on top of it remain usable.
+
+==== Default Signing ====
+
+Input:
+* The secret key ''sk'': a 32-byte array
+* The message ''m'': a 32-byte array
+* Auxiliary random data ''a'': a 32-byte array
+
+The algorithm ''Sign(sk, m)'' is defined as:
+* Let ''d' = int(sk)''
+* Fail if ''d' = 0'' or ''d' &ge; n''
+* Let ''P = d'⋅G''
+* Let ''d = d' '' if ''has_even_y(P)'', otherwise let ''d = n - d' ''.
+* Let ''t'' be the byte-wise xor of ''bytes(d)'' and ''H<sub>BIP340/aux</sub>(a)''<ref>The auxiliary random data is hashed (with a unique tag) as a precaution against situations where the randomness may be correlated with the private key itself. It is xored with the private key (rather than combined with it in a hash) to reduce the number of operations exposed to the actual secret key.</ref>.
+* Let ''rand = hash<sub>BIP340/nonce</sub>(t || bytes(P) || m)''<ref>Including the [https://moderncrypto.org/mail-archive/curves/2020/001012.html public key as input to the nonce hash] helps ensure the robustness of the signing algorithm by preventing leakage of the secret key if the calculation of the public key ''P'' is performed incorrectly or maliciously, for example if it is left to the caller for performance reasons.</ref>.
+* Let ''k' = int(rand) mod n''<ref>Note that in general, taking a uniformly random 256-bit integer modulo the curve order will produce an unacceptably biased result. However, for the secp256k1 curve, the order is sufficiently close to ''2<sup>256</sup>'' that this bias is not observable (''1 - n / 2<sup>256</sup>'' is around ''1.27 * 2<sup>-128</sup>'').</ref>.
+* Fail if ''k' = 0''.
+* Let ''R = k'⋅G''.
+* Let ''k = k' '' if ''has_square_y(R)'', otherwise let ''k = n - k' ''.
+* Let ''e = int(hash<sub>BIP340/challenge</sub>(bytes(R) || bytes(P) || m)) mod n''.
+* Let ''sig = bytes(R) || bytes((k + ed) mod n)''.
+* If ''Verify(bytes(P), m, sig)'' (see below) returns failure, abort<ref>Verifying the signature before leaving the signer prevents random or attacker provoked computation errors. This prevents publishing invalid signatures which may leak information about the secret key. It is recommended, but can be omitted if the computation cost is prohibitive.</ref>.
+* Return the signature ''sig''.
+
+The auxiliary random data should be set to fresh randomness generated at signing time, resulting in what is called a ''synthetic nonce''. Using 32 bytes of randomness is optimal. If obtaining randomness is expensive, 16 random bytes can be padded with 16 null bytes to obtain a 32-byte array. If randomness is not available at all at signing time, a simple counter wide enough to not repeat in practice (e.g., 64 bits or wider) and padded with null bytes to a 32 byte-array can be used, or even the constant array with 32 null bytes. Using any non-repeating value increases protection against [https://moderncrypto.org/mail-archive/curves/2017/000925.html fault injection attacks]. Using unpredictable randomness additionally increases protection against other side-channel attacks, and is '''recommended whenever available'''. Note that while this means the resulting nonce is not deterministic, the randomness is only supplemental to security. The normal security properties (excluding side-channel attacks) do not depend on the quality of the signing-time RNG.
+
+==== Alternative Signing ====
+
+It should be noted that various alternative signing algorithms can be used to produce equally valid signatures. The 32-byte ''rand'' value may be generated in other ways, producing a different but still valid signature (in other words, this is not a ''unique'' signature scheme). '''No matter which method is used to generate the ''rand'' value, the value must be a fresh uniformly random 32-byte string which is not even partially predictable for the attacker.''' For nonces without randomness this implies that the same inputs must not be presented in another context. This can be most reliably accomplished by not reusing the same private key across different signing schemes. For example, if the ''rand'' value was computed as per RFC6979 and the same secret key is used in deterministic ECDSA with RFC6979, the signatures can leak the secret key through nonce reuse.
+
+'''Nonce exfiltration protection''' It is possible to strengthen the nonce generation algorithm using a second device. In this case, the second device contributes randomness which the actual signer provably incorporates into its nonce. This prevents certain attacks where the signer device is compromised and intentionally tries to leak the secret key through its nonce selection.
+
+'''Multisignatures''' This signature scheme is compatible with various types of multisignature and threshold schemes such as [https://eprint.iacr.org/2018/068 MuSig], where a single public key requires holders of multiple secret keys to participate in signing (see Applications below).
+'''It is important to note that multisignature signing schemes in general are insecure with the ''rand'' generation from the default signing algorithm above (or any other deterministic method).'''
+
+'''Precomputed public key data''' For many uses the compressed 33-byte encoding of the public key corresponding to the secret key may already be known, making it easy to evaluate ''has_even_y(P)'' and ''bytes(P)''. As such, having signers supply this directly may be more efficient than recalculating the public key from the secret key. However, if this optimization is used and additionally the signature verification at the end of the signing algorithm is dropped for increased efficiency, signers must ensure the public key is correctly calculated and not taken from untrusted sources.
+
+==== Verification ====
+
+Input:
+* The public key ''pk'': a 32-byte array
+* The message ''m'': a 32-byte array
+* A signature ''sig'': a 64-byte array
+
+The algorithm ''Verify(pk, m, sig)'' is defined as:
+* Let ''P = lift_x_even_y(int(pk))''; fail if that fails.
+* Let ''r = int(sig[0:32])''; fail if ''r &ge; p''.
+* Let ''s = int(sig[32:64])''; fail if ''s &ge; n''.
+* Let ''e = int(hash<sub>BIP340/challenge</sub>(bytes(r) || bytes(P) || m)) mod n''.
+* Let ''R = s⋅G - e⋅P''.
+* Fail if ''not has_square_y(R)'' or ''x(R) &ne; r''.
+* Return success iff no failure occurred before reaching this point.
+
+For every valid secret key ''sk'' and message ''m'', ''Verify(PubKey(sk),m,Sign(sk,m))'' will succeed.
+
+Note that the correctness of verification relies on the fact that ''lift_x_even_y'' always returns a point with an even Y coordinate. A hypothetical verification algorithm that treats points as public keys, and takes the point ''P'' directly as input would fail any time a point with odd Y is used. While it is possible to correct for this by negating points with odd Y coordinate before further processing, this would result in a scheme where every (message, signature) pair is valid for two public keys (a type of malleability that exists for ECDSA as well, but we don't wish to retain). We avoid these problems by treating just the X coordinate as public key.
+
+==== Batch Verification ====
+
+Input:
+* The number ''u'' of signatures
+* The public keys ''pk<sub>1..u</sub>'': ''u'' 32-byte arrays
+* The messages ''m<sub>1..u</sub>'': ''u'' 32-byte arrays
+* The signatures ''sig<sub>1..u</sub>'': ''u'' 64-byte arrays
+
+The algorithm ''BatchVerify(pk<sub>1..u</sub>, m<sub>1..u</sub>, sig<sub>1..u</sub>)'' is defined as:
+* Generate ''u-1'' random integers ''a<sub>2...u</sub>'' in the range ''1...n-1''. They are generated deterministically using a [https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator CSPRNG] seeded by a cryptographic hash of all inputs of the algorithm, i.e. ''seed = seed_hash(pk<sub>1</sub>..pk<sub>u</sub> || m<sub>1</sub>..m<sub>u</sub> || sig<sub>1</sub>..sig<sub>u</sub> )''. A safe choice is to instantiate ''seed_hash'' with SHA256 and use [https://tools.ietf.org/html/rfc8439 ChaCha20] with key ''seed'' as a CSPRNG to generate 256-bit integers, skipping integers not in the range ''1...n-1''.
+* For ''i = 1 .. u'':
+** Let ''P<sub>i</sub> = lift_x_even_y(int(pk<sub>i</sub>))''; fail if it fails.
+** Let ''r<sub>i</sub> = int(sig<sub>i</sub>[0:32])''; fail if ''r<sub>i</sub> &ge; p''.
+** Let ''s<sub>i</sub> = int(sig<sub>i</sub>[32:64])''; fail if ''s<sub>i</sub> &ge; n''.
+** Let ''e<sub>i</sub> = int(hash<sub>BIP340/challenge</sub>(bytes(r<sub>i</sub>) || bytes(P<sub>i</sub>) || m<sub>i</sub>)) mod n''.
+** Let ''R<sub>i</sub> = lift_x_square_y(r<sub>i</sub>)''; fail if ''lift_x_square_y(r<sub>i</sub>)'' fails.
+* Fail if ''(s<sub>1</sub> + a<sub>2</sub>s<sub>2</sub> + ... + a<sub>u</sub>s<sub>u</sub>)⋅G &ne; R<sub>1</sub> + a<sub>2</sub>⋅R<sub>2</sub> + ... + a<sub>u</sub>⋅R<sub>u</sub> + e<sub>1</sub>⋅P<sub>1</sub> + (a<sub>2</sub>e<sub>2</sub>)⋅P<sub>2</sub> + ... + (a<sub>u</sub>e<sub>u</sub>)⋅P<sub>u</sub>''.
+* Return success iff no failure occurred before reaching this point.
+
+If all individual signatures are valid (i.e., ''Verify'' would return success for them), ''BatchVerify'' will always return success. If at least one signature is invalid, ''BatchVerify'' will return success with at most a negligible probability.
+
+=== Optimizations ===
+
+Many techniques are known for optimizing elliptic curve implementations. Several of them apply here, but are out of scope for this document. Two are listed below however, as they are relevant to the design decisions:
+
+'''Squareness testing''' The function ''is_square(x)'' is defined as above, but can be computed more efficiently using an [https://en.wikipedia.org/wiki/Jacobi_symbol#Calculating_the_Jacobi_symbol extended GCD algorithm].
+
+'''Jacobian coordinates''' Elliptic Curve operations can be implemented more efficiently by using [https://en.wikibooks.org/wiki/Cryptography/Prime_Curve/Jacobian_Coordinates Jacobian coordinates]. Elliptic Curve operations implemented this way avoid many intermediate modular inverses (which are computationally expensive), and the scheme proposed in this document is in fact designed to not need any inversions at all for verification. When operating on a point ''P'' with Jacobian coordinates ''(x,y,z)'' which is not the point at infinity and for which ''x(P)'' is defined as ''x / z<sup>2</sup>'' and ''y(P)'' is defined as ''y / z<sup>3</sup>'':
+* ''has_square_y(P)'' can be implemented as ''is_square(yz mod p)''.
+* ''x(P) &ne; r'' can be implemented as ''(0 &le; r < p) and (x &ne; z<sup>2</sup>r mod p)''.
+
+== Applications ==
+
+There are several interesting applications beyond simple signatures.
+While recent academic papers claim that they are also possible with ECDSA, consensus support for Schnorr signature verification would significantly simplify the constructions.
+
+=== Multisignatures and Threshold Signatures ===
+
+By means of an interactive scheme such as [https://eprint.iacr.org/2018/068 MuSig], participants can aggregate their public keys into a single public key which they can jointly sign for. This allows ''n''-of-''n'' multisignatures which, from a verifier's perspective, are no different from ordinary signatures, giving improved privacy and efficiency versus ''CHECKMULTISIG'' or other means.
+
+Moreover, Schnorr signatures are compatible with [https://web.archive.org/web/20031003232851/http://www.research.ibm.com/security/dkg.ps distributed key generation], which enables interactive threshold signatures schemes, e.g., the schemes described by [http://cacr.uwaterloo.ca/techreports/2001/corr2001-13.ps Stinson and Strobl (2001)] or [https://web.archive.org/web/20060911151529/http://theory.lcs.mit.edu/~stasio/Papers/gjkr03.pdf Genaro, Jarecki and Krawczyk (2003)]. These protocols make it possible to realize ''k''-of-''n'' threshold signatures, which ensure that any subset of size ''k'' of the set of ''n'' signers can sign but no subset of size less than ''k'' can produce a valid Schnorr signature. However, the practicality of the existing schemes is limited: most schemes in the literature have been proven secure only for the case ''k-1 < n/2'', are not secure when used concurrently in multiple sessions, or require a reliable broadcast mechanism to be secure. Further research is necessary to improve this situation.
+
+=== Adaptor Signatures ===
+
+[https://download.wpsoftware.net/bitcoin/wizardry/mw-slides/2018-05-18-l2/slides.pdf Adaptor signatures] can be produced by a signer by offsetting his public nonce with a known point ''T = t⋅G'', but not offsetting his secret nonce.
+A correct signature (or partial signature, as individual signers' contributions to a multisignature are called) on the same message with same nonce will then be equal to the adaptor signature offset by ''t'', meaning that learning ''t'' is equivalent to learning a correct signature.
+This can be used to enable atomic swaps or even [https://eprint.iacr.org/2018/472 general payment channels] in which the atomicity of disjoint transactions is ensured using the signatures themselves, rather than Bitcoin script support. The resulting transactions will appear to verifiers to be no different from ordinary single-signer transactions, except perhaps for the inclusion of locktime refund logic.
+
+Adaptor signatures, beyond the efficiency and privacy benefits of encoding script semantics into constant-sized signatures, have additional benefits over traditional hash-based payment channels. Specifically, the secret values ''t'' may be reblinded between hops, allowing long chains of transactions to be made atomic while even the participants cannot identify which transactions are part of the chain. Also, because the secret values are chosen at signing time, rather than key generation time, existing outputs may be repurposed for different applications without recourse to the blockchain, even multiple times.
+
+=== Blind Signatures ===
+
+A blind signature protocol is an interactive protocol that enables a signer to sign a message at the behest of another party without learning any information about the signed message or the signature. Schnorr signatures admit a very [https://www.math.uni-frankfurt.de/~dmst/research/papers/schnorr.blind_sigs_attack.2001.pdf simple blind signature scheme] which is however insecure because it's vulnerable to [https://www.iacr.org/archive/crypto2002/24420288/24420288.pdf Wagner's attack]. A known mitigation is to let the signer abort a signing session with a certain probability, and the resulting scheme can be [https://eprint.iacr.org/2019/877 proven secure under non-standard cryptographic assumptions].
+
+Blind Schnorr signatures could for example be used in [https://github.com/ElementsProject/scriptless-scripts/blob/master/md/partially-blind-swap.md Partially Blind Atomic Swaps], a construction to enable transferring of coins, mediated by an untrusted escrow agent, without connecting the transactors in the public blockchain transaction graph.
+
+== Test Vectors and Reference Code ==
+
+For development and testing purposes, we provide a [[bip-0340/test-vectors.csv|collection of test vectors in CSV format]] and a naive, highly inefficient, and non-constant time [[bip-0340/reference.py|pure Python 3.7 reference implementation of the signing and verification algorithm]].
+The reference implementation is for demonstration purposes only and not to be used in production environments.
+
+== Footnotes ==
+
+<references />
+
+== Acknowledgements ==
+
+This document is the result of many discussions around Schnorr based signatures over the years, and had input from Johnson Lau, Greg Maxwell, Andrew Poelstra, Rusty Russell, and Anthony Towns. The authors further wish to thank all those who provided valuable feedback and reviews, including the participants of the [https://github.com/ajtowns/taproot-review structured reviews].
diff --git a/bip-0340/reference.py b/bip-0340/reference.py
new file mode 100644
index 0000000..f24963c
--- /dev/null
+++ b/bip-0340/reference.py
@@ -0,0 +1,239 @@
+from typing import Tuple, Optional, Any
+import hashlib
+import binascii
+
+# Set DEBUG to True to get a detailed debug output including
+# intermediate values during key generation, signing, and
+# verification. This is implemented via calls to the
+# debug_print_vars() function.
+#
+# If you want to print values on an individual basis, use
+# the pretty() function, e.g., print(pretty(foo)).
+DEBUG = False
+
+p = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F
+n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
+
+# Points are tuples of X and Y coordinates and the point at infinity is
+# represented by the None keyword.
+G = (0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798, 0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8)
+
+Point = Tuple[int, int]
+
+# This implementation can be sped up by storing the midstate after hashing
+# tag_hash instead of rehashing it all the time.
+def tagged_hash(tag: str, msg: bytes) -> bytes:
+ tag_hash = hashlib.sha256(tag.encode()).digest()
+ return hashlib.sha256(tag_hash + tag_hash + msg).digest()
+
+def is_infinity(P: Optional[Point]) -> bool:
+ return P is None
+
+def x(P: Point) -> int:
+ return P[0]
+
+def y(P: Point) -> int:
+ return P[1]
+
+def point_add(P1: Optional[Point], P2: Optional[Point]) -> Optional[Point]:
+ if P1 is None:
+ return P2
+ if P2 is None:
+ return P1
+ if (x(P1) == x(P2)) and (y(P1) != y(P2)):
+ return None
+ if P1 == P2:
+ lam = (3 * x(P1) * x(P1) * pow(2 * y(P1), p - 2, p)) % p
+ else:
+ lam = ((y(P2) - y(P1)) * pow(x(P2) - x(P1), p - 2, p)) % p
+ x3 = (lam * lam - x(P1) - x(P2)) % p
+ return (x3, (lam * (x(P1) - x3) - y(P1)) % p)
+
+def point_mul(P: Optional[Point], n: int) -> Optional[Point]:
+ R = None
+ for i in range(256):
+ if (n >> i) & 1:
+ R = point_add(R, P)
+ P = point_add(P, P)
+ return R
+
+def bytes_from_int(x: int) -> bytes:
+ return x.to_bytes(32, byteorder="big")
+
+def bytes_from_point(P: Point) -> bytes:
+ return bytes_from_int(x(P))
+
+def xor_bytes(b0: bytes, b1: bytes) -> bytes:
+ return bytes(x ^ y for (x, y) in zip(b0, b1))
+
+def lift_x_square_y(b: bytes) -> Optional[Point]:
+ x = int_from_bytes(b)
+ if x >= p:
+ return None
+ y_sq = (pow(x, 3, p) + 7) % p
+ y = pow(y_sq, (p + 1) // 4, p)
+ if pow(y, 2, p) != y_sq:
+ return None
+ return (x, y)
+
+def lift_x_even_y(b: bytes) -> Optional[Point]:
+ P = lift_x_square_y(b)
+ if P is None:
+ return None
+ else:
+ return (x(P), y(P) if y(P) % 2 == 0 else p - y(P))
+
+def int_from_bytes(b: bytes) -> int:
+ return int.from_bytes(b, byteorder="big")
+
+def hash_sha256(b: bytes) -> bytes:
+ return hashlib.sha256(b).digest()
+
+def is_square(x: int) -> bool:
+ return int(pow(x, (p - 1) // 2, p)) == 1
+
+def has_square_y(P: Optional[Point]) -> bool:
+ infinity = is_infinity(P)
+ if infinity: return False
+ assert P is not None
+ return is_square(y(P))
+
+def has_even_y(P: Point) -> bool:
+ return y(P) % 2 == 0
+
+def pubkey_gen(seckey: bytes) -> bytes:
+ d0 = int_from_bytes(seckey)
+ if not (1 <= d0 <= n - 1):
+ raise ValueError('The secret key must be an integer in the range 1..n-1.')
+ P = point_mul(G, d0)
+ assert P is not None
+ return bytes_from_point(P)
+
+def schnorr_sign(msg: bytes, seckey: bytes, aux_rand: bytes) -> bytes:
+ if len(msg) != 32:
+ raise ValueError('The message must be a 32-byte array.')
+ d0 = int_from_bytes(seckey)
+ if not (1 <= d0 <= n - 1):
+ raise ValueError('The secret key must be an integer in the range 1..n-1.')
+ if len(aux_rand) != 32:
+ raise ValueError('aux_rand must be 32 bytes instead of %i.' % len(aux_rand))
+ P = point_mul(G, d0)
+ assert P is not None
+ d = d0 if has_even_y(P) else n - d0
+ t = xor_bytes(bytes_from_int(d), tagged_hash("BIP340/aux", aux_rand))
+ k0 = int_from_bytes(tagged_hash("BIP340/nonce", t + bytes_from_point(P) + msg)) % n
+ if k0 == 0:
+ raise RuntimeError('Failure. This happens only with negligible probability.')
+ R = point_mul(G, k0)
+ assert R is not None
+ k = n - k0 if not has_square_y(R) else k0
+ e = int_from_bytes(tagged_hash("BIP340/challenge", bytes_from_point(R) + bytes_from_point(P) + msg)) % n
+ sig = bytes_from_point(R) + bytes_from_int((k + e * d) % n)
+ debug_print_vars()
+ if not schnorr_verify(msg, bytes_from_point(P), sig):
+ raise RuntimeError('The created signature does not pass verification.')
+ return sig
+
+def schnorr_verify(msg: bytes, pubkey: bytes, sig: bytes) -> bool:
+ if len(msg) != 32:
+ raise ValueError('The message must be a 32-byte array.')
+ if len(pubkey) != 32:
+ raise ValueError('The public key must be a 32-byte array.')
+ if len(sig) != 64:
+ raise ValueError('The signature must be a 64-byte array.')
+ P = lift_x_even_y(pubkey)
+ r = int_from_bytes(sig[0:32])
+ s = int_from_bytes(sig[32:64])
+ if (P is None) or (r >= p) or (s >= n):
+ debug_print_vars()
+ return False
+ e = int_from_bytes(tagged_hash("BIP340/challenge", sig[0:32] + pubkey + msg)) % n
+ R = point_add(point_mul(G, s), point_mul(P, n - e))
+ if (R is None) or (not has_square_y(R)) or (x(R) != r):
+ debug_print_vars()
+ return False
+ debug_print_vars()
+ return True
+
+#
+# The following code is only used to verify the test vectors.
+#
+import csv
+import os
+import sys
+
+def test_vectors() -> bool:
+ all_passed = True
+ with open(os.path.join(sys.path[0], 'test-vectors.csv'), newline='') as csvfile:
+ reader = csv.reader(csvfile)
+ reader.__next__()
+ for row in reader:
+ (index, seckey_hex, pubkey_hex, aux_rand_hex, msg_hex, sig_hex, result_str, comment) = row
+ pubkey = bytes.fromhex(pubkey_hex)
+ msg = bytes.fromhex(msg_hex)
+ sig = bytes.fromhex(sig_hex)
+ result = result_str == 'TRUE'
+ print('\nTest vector', ('#' + index).rjust(3, ' ') + ':')
+ if seckey_hex != '':
+ seckey = bytes.fromhex(seckey_hex)
+ pubkey_actual = pubkey_gen(seckey)
+ if pubkey != pubkey_actual:
+ print(' * Failed key generation.')
+ print(' Expected key:', pubkey.hex().upper())
+ print(' Actual key:', pubkey_actual.hex().upper())
+ aux_rand = bytes.fromhex(aux_rand_hex)
+ try:
+ sig_actual = schnorr_sign(msg, seckey, aux_rand)
+ if sig == sig_actual:
+ print(' * Passed signing test.')
+ else:
+ print(' * Failed signing test.')
+ print(' Expected signature:', sig.hex().upper())
+ print(' Actual signature:', sig_actual.hex().upper())
+ all_passed = False
+ except RuntimeError as e:
+ print(' * Signing test raised exception:', e)
+ all_passed = False
+ result_actual = schnorr_verify(msg, pubkey, sig)
+ if result == result_actual:
+ print(' * Passed verification test.')
+ else:
+ print(' * Failed verification test.')
+ print(' Expected verification result:', result)
+ print(' Actual verification result:', result_actual)
+ if comment:
+ print(' Comment:', comment)
+ all_passed = False
+ print()
+ if all_passed:
+ print('All test vectors passed.')
+ else:
+ print('Some test vectors failed.')
+ return all_passed
+
+#
+# The following code is only used for debugging
+#
+import inspect
+
+def pretty(v: Any) -> Any:
+ if isinstance(v, bytes):
+ return '0x' + v.hex()
+ if isinstance(v, int):
+ return pretty(bytes_from_int(v))
+ if isinstance(v, tuple):
+ return tuple(map(pretty, v))
+ return v
+
+def debug_print_vars() -> None:
+ if DEBUG:
+ current_frame = inspect.currentframe()
+ assert current_frame is not None
+ frame = current_frame.f_back
+ assert frame is not None
+ print(' Variables in function ', frame.f_code.co_name, ' at line ', frame.f_lineno, ':', sep='')
+ for var_name, var_val in frame.f_locals.items():
+ print(' ' + var_name.rjust(11, ' '), '==', pretty(var_val))
+
+if __name__ == '__main__':
+ test_vectors()
diff --git a/bip-0340/speedup-batch.png b/bip-0340/speedup-batch.png
new file mode 100644
index 0000000..fe672d4
--- /dev/null
+++ b/bip-0340/speedup-batch.png
Binary files differ
diff --git a/bip-0340/test-vectors.csv b/bip-0340/test-vectors.csv
new file mode 100644
index 0000000..beaef5a
--- /dev/null
+++ b/bip-0340/test-vectors.csv
@@ -0,0 +1,16 @@
+index,secret key,public key,aux_rand,message,signature,verification result,comment
+0,0000000000000000000000000000000000000000000000000000000000000003,F9308A019258C31049344F85F89D5229B531C845836F99B08601F113BCE036F9,0000000000000000000000000000000000000000000000000000000000000000,0000000000000000000000000000000000000000000000000000000000000000,067E337AD551B2276EC705E43F0920926A9CE08AC68159F9D258C9BBA412781C9F059FCDF4824F13B3D7C1305316F956704BB3FEA2C26142E18ACD90A90C947E,TRUE,
+1,B7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF,DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659,0000000000000000000000000000000000000000000000000000000000000001,243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89,0E12B8C520948A776753A96F21ABD7FDC2D7D0C0DDC90851BE17B04E75EF86A47EF0DA46C4DC4D0D1BCB8668C2CE16C54C7C23A6716EDE303AF86774917CF928,TRUE,
+2,C90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B14E5C9,DD308AFEC5777E13121FA72B9CC1B7CC0139715309B086C960E18FD969774EB8,C87AA53824B4D7AE2EB035A2B5BBBCCC080E76CDC6D1692C4B0B62D798E6D906,7E2D58D8B3BCDF1ABADEC7829054F90DDA9805AAB56C77333024B9D0A508B75C,FC012F9FB8FE00A358F51EF93DCE0DC0C895F6E9A87C6C4905BC820B0C3677616B8737D14E703AF8E16E22E5B8F26227D41E5128F82D86F747244CC289C74D1D,TRUE,
+3,0B432B2677937381AEF05BB02A66ECD012773062CF3FA2549E44F58ED2401710,25D1DFF95105F5253C4022F628A996AD3A0D95FBF21D468A1B33F8C160D8F517,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,FC132D4E426DFF535AEC0FA7083AC5118BC1D5FFFD848ABD8290C23F271CA0DD11AEDCEA3F55DA9BD677FE29C9DDA0CF878BCE43FDE0E313D69D1AF7A5AE8369,TRUE,test fails if msg is reduced modulo p or n
+4,,D69C3509BB99E412E68B0FE8544E72837DFA30746D8BE2AA65975F29D22DC7B9,,4DF3C3F68FCC83B27E9D42C90431A72499F17875C81A599B566C9889B9696703,00000000000000000000003B78CE563F89A0ED9414F5AA28AD0D96D6795F9C630EC50E5363E227ACAC6F542CE1C0B186657E0E0D1A6FFE283A33438DE4738419,TRUE,
+5,,EEFDEA4CDB677750A420FEE807EACF21EB9898AE79B9768766E4FAA04A2D4A34,,243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89,7036D6BFE1837AE919631039A2CF652A295DFAC9A8BBB0806014B2F48DD7C807941607B563ABBA414287F374A332BA3636DE009EE1EF551A17796B72B68B8A24,FALSE,public key not on the curve
+6,,DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659,,243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89,F9308A019258C31049344F85F89D5229B531C845836F99B08601F113BCE036F995A579DA959FA739FCE39E8BD16FECB5CDCF97060B2C73CDE60E87ABCA1AA5D9,FALSE,has_square_y(R) is false
+7,,DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659,,243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89,F8704654F4687B7365ED32E796DE92761390A3BCC495179BFE073817B7ED32824E76B987F7C1F9A751EF5C343F7645D3CFFC7D570B9A7192EBF1898E1344E3BF,FALSE,negated message
+8,,DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659,,243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89,7036D6BFE1837AE919631039A2CF652A295DFAC9A8BBB0806014B2F48DD7C8076BE9F84A9C5445BEBD780C8B5CCD45C883D0DC47CD594B21A858F31A19AAB71D,FALSE,negated s value
+9,,DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659,,243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89,00000000000000000000000000000000000000000000000000000000000000009915EE59F07F9DBBAEDC31BFCC9B34AD49DE669CD24773BCED77DDA36D073EC8,FALSE,sG - eP is infinite. Test fails in single verification if has_square_y(inf) is defined as true and x(inf) as 0
+10,,DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659,,243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89,0000000000000000000000000000000000000000000000000000000000000001C7EC918B2B9CF34071BB54BED7EB4BB6BAB148E9A7E36E6B228F95DFA08B43EC,FALSE,sG - eP is infinite. Test fails in single verification if has_square_y(inf) is defined as true and x(inf) as 1
+11,,DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659,,243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89,4A298DACAE57395A15D0795DDBFD1DCB564DA82B0F269BC70A74F8220429BA1D941607B563ABBA414287F374A332BA3636DE009EE1EF551A17796B72B68B8A24,FALSE,sig[0:32] is not an X coordinate on the curve
+12,,DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659,,243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F941607B563ABBA414287F374A332BA3636DE009EE1EF551A17796B72B68B8A24,FALSE,sig[0:32] is equal to field size
+13,,DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659,,243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89,7036D6BFE1837AE919631039A2CF652A295DFAC9A8BBB0806014B2F48DD7C807FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141,FALSE,sig[32:64] is equal to curve order
+14,,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC30,,243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89,7036D6BFE1837AE919631039A2CF652A295DFAC9A8BBB0806014B2F48DD7C807941607B563ABBA414287F374A332BA3636DE009EE1EF551A17796B72B68B8A24,FALSE,public key is not a valid X coordinate because it exceeds the field size
diff --git a/bip-0340/test-vectors.py b/bip-0340/test-vectors.py
new file mode 100644
index 0000000..9c029ec
--- /dev/null
+++ b/bip-0340/test-vectors.py
@@ -0,0 +1,262 @@
+import sys
+from reference import *
+
+def vector0():
+ seckey = bytes_from_int(3)
+ msg = bytes_from_int(0)
+ aux_rand = bytes_from_int(0)
+ sig = schnorr_sign(msg, seckey, aux_rand)
+ pubkey = pubkey_gen(seckey)
+
+ # We should have at least one test vector where the seckey needs to be
+ # negated and one where it doesn't. In this one the seckey doesn't need to
+ # be negated.
+ x = int_from_bytes(seckey)
+ P = point_mul(G, x)
+ assert(y(P) % 2 == 0)
+
+ # For historical reasons (pubkey tiebreaker was squareness and not evenness)
+ # we should have at least one test vector where the the point reconstructed
+ # from the public key has a square and one where it has a non-square Y
+ # coordinate. In this one Y is non-square.
+ pubkey_point = lift_x_even_y(pubkey)
+ assert(not has_square_y(pubkey_point))
+
+ return (seckey, pubkey, aux_rand, msg, sig, "TRUE", None)
+
+def vector1():
+ seckey = bytes_from_int(0xB7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF)
+ msg = bytes_from_int(0x243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89)
+ aux_rand = bytes_from_int(1)
+
+ sig = schnorr_sign(msg, seckey, aux_rand)
+ return (seckey, pubkey_gen(seckey), aux_rand, msg, sig, "TRUE", None)
+
+def vector2():
+ seckey = bytes_from_int(0xC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B14E5C9)
+ msg = bytes_from_int(0x7E2D58D8B3BCDF1ABADEC7829054F90DDA9805AAB56C77333024B9D0A508B75C)
+ aux_rand = bytes_from_int(0xC87AA53824B4D7AE2EB035A2B5BBBCCC080E76CDC6D1692C4B0B62D798E6D906)
+ sig = schnorr_sign(msg, seckey, aux_rand)
+
+ # The point reconstructed from the public key has a square Y coordinate.
+ pubkey = pubkey_gen(seckey)
+ pubkey_point = lift_x_even_y(pubkey)
+ assert(has_square_y(pubkey_point))
+
+ # This signature vector would not verify if the implementer checked the
+ # squareness of the X coordinate of R instead of the Y coordinate.
+ R = lift_x_square_y(sig[0:32])
+ assert(not is_square(R[0]))
+
+ return (seckey, pubkey, aux_rand, msg, sig, "TRUE", None)
+
+def vector3():
+ seckey = bytes_from_int(0x0B432B2677937381AEF05BB02A66ECD012773062CF3FA2549E44F58ED2401710)
+
+ # Need to negate this seckey before signing
+ x = int_from_bytes(seckey)
+ P = point_mul(G, x)
+ assert(y(P) % 2 != 0)
+
+ msg = bytes_from_int(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
+ aux_rand = bytes_from_int(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
+
+ sig = schnorr_sign(msg, seckey, aux_rand)
+ return (seckey, pubkey_gen(seckey), aux_rand, msg, sig, "TRUE", "test fails if msg is reduced modulo p or n")
+
+# Signs with a given nonce. This can be INSECURE and is only INTENDED FOR
+# GENERATING TEST VECTORS. Results in an invalid signature if y(kG) is not
+# square.
+def insecure_schnorr_sign_fixed_nonce(msg, seckey0, k):
+ if len(msg) != 32:
+ raise ValueError('The message must be a 32-byte array.')
+ seckey0 = int_from_bytes(seckey0)
+ if not (1 <= seckey0 <= n - 1):
+ raise ValueError('The secret key must be an integer in the range 1..n-1.')
+ P = point_mul(G, seckey0)
+ seckey = seckey0 if has_even_y(P) else n - seckey0
+ R = point_mul(G, k)
+ e = int_from_bytes(tagged_hash("BIP340/challenge", bytes_from_point(R) + bytes_from_point(P) + msg)) % n
+ return bytes_from_point(R) + bytes_from_int((k + e * seckey) % n)
+
+# Creates a singature with a small x(R) by using k = 1/2
+def vector4():
+ one_half = 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
+ seckey = bytes_from_int(0x763758E5CBEEDEE4F7D3FC86F531C36578933228998226672F13C4F0EBE855EB)
+ msg = bytes_from_int(0x4DF3C3F68FCC83B27E9D42C90431A72499F17875C81A599B566C9889B9696703)
+ sig = insecure_schnorr_sign_fixed_nonce(msg, seckey, one_half)
+ return (None, pubkey_gen(seckey), None, msg, sig, "TRUE", None)
+
+default_seckey = bytes_from_int(0xB7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF)
+default_msg = bytes_from_int(0x243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89)
+default_aux_rand = bytes_from_int(0xC87AA53824B4D7AE2EB035A2B5BBBCCC080E76CDC6D1692C4B0B62D798E6D906)
+
+# Public key is not on the curve
+def vector5():
+ # This creates a dummy signature that doesn't have anything to do with the
+ # public key.
+ seckey = default_seckey
+ msg = default_msg
+ sig = schnorr_sign(msg, seckey, default_aux_rand)
+
+ pubkey = bytes_from_int(0xEEFDEA4CDB677750A420FEE807EACF21EB9898AE79B9768766E4FAA04A2D4A34)
+ assert(lift_x_even_y(pubkey) is None)
+
+ return (None, pubkey, None, msg, sig, "FALSE", "public key not on the curve")
+
+def vector6():
+ seckey = default_seckey
+ msg = default_msg
+ k = 3
+ sig = insecure_schnorr_sign_fixed_nonce(msg, seckey, k)
+
+ # Y coordinate of R is not a square
+ R = point_mul(G, k)
+ assert(not has_square_y(R))
+
+ return (None, pubkey_gen(seckey), None, msg, sig, "FALSE", "has_square_y(R) is false")
+
+def vector7():
+ seckey = default_seckey
+ msg = int_from_bytes(default_msg)
+ neg_msg = bytes_from_int(n - msg)
+ sig = schnorr_sign(neg_msg, seckey, default_aux_rand)
+ return (None, pubkey_gen(seckey), None, bytes_from_int(msg), sig, "FALSE", "negated message")
+
+def vector8():
+ seckey = default_seckey
+ msg = default_msg
+ sig = schnorr_sign(msg, seckey, default_aux_rand)
+ sig = sig[0:32] + bytes_from_int(n - int_from_bytes(sig[32:64]))
+ return (None, pubkey_gen(seckey), None, msg, sig, "FALSE", "negated s value")
+
+def bytes_from_point_inf0(P):
+ if P == None:
+ return bytes_from_int(0)
+ return bytes_from_int(P[0])
+
+def vector9():
+ seckey = default_seckey
+ msg = default_msg
+
+ # Override bytes_from_point in schnorr_sign to allow creating a signature
+ # with k = 0.
+ k = 0
+ bytes_from_point_tmp = bytes_from_point.__code__
+ bytes_from_point.__code__ = bytes_from_point_inf0.__code__
+ sig = insecure_schnorr_sign_fixed_nonce(msg, seckey, k)
+ bytes_from_point.__code__ = bytes_from_point_tmp
+
+ return (None, pubkey_gen(seckey), None, msg, sig, "FALSE", "sG - eP is infinite. Test fails in single verification if has_square_y(inf) is defined as true and x(inf) as 0")
+
+def bytes_from_point_inf1(P):
+ if P == None:
+ return bytes_from_int(1)
+ return bytes_from_int(P[0])
+
+def vector10():
+ seckey = default_seckey
+ msg = default_msg
+
+ # Override bytes_from_point in schnorr_sign to allow creating a signature
+ # with k = 0.
+ k = 0
+ bytes_from_point_tmp = bytes_from_point.__code__
+ bytes_from_point.__code__ = bytes_from_point_inf1.__code__
+ sig = insecure_schnorr_sign_fixed_nonce(msg, seckey, k)
+ bytes_from_point.__code__ = bytes_from_point_tmp
+
+ return (None, pubkey_gen(seckey), None, msg, sig, "FALSE", "sG - eP is infinite. Test fails in single verification if has_square_y(inf) is defined as true and x(inf) as 1")
+
+# It's cryptographically impossible to create a test vector that fails if run
+# in an implementation which merely misses the check that sig[0:32] is an X
+# coordinate on the curve. This test vector just increases test coverage.
+def vector11():
+ seckey = default_seckey
+ msg = default_msg
+ sig = schnorr_sign(msg, seckey, default_aux_rand)
+
+ # Replace R's X coordinate with an X coordinate that's not on the curve
+ x_not_on_curve = bytes_from_int(0x4A298DACAE57395A15D0795DDBFD1DCB564DA82B0F269BC70A74F8220429BA1D)
+ assert(lift_x_square_y(x_not_on_curve) is None)
+ sig = x_not_on_curve + sig[32:64]
+
+ return (None, pubkey_gen(seckey), None, msg, sig, "FALSE", "sig[0:32] is not an X coordinate on the curve")
+
+# It's cryptographically impossible to create a test vector that fails if run
+# in an implementation which merely misses the check that sig[0:32] is smaller
+# than the field size. This test vector just increases test coverage.
+def vector12():
+ seckey = default_seckey
+ msg = default_msg
+ sig = schnorr_sign(msg, seckey, default_aux_rand)
+
+ # Replace R's X coordinate with an X coordinate that's equal to field size
+ sig = bytes_from_int(p) + sig[32:64]
+
+ return (None, pubkey_gen(seckey), None, msg, sig, "FALSE", "sig[0:32] is equal to field size")
+
+# It's cryptographically impossible to create a test vector that fails if run
+# in an implementation which merely misses the check that sig[32:64] is smaller
+# than the curve order. This test vector just increases test coverage.
+def vector13():
+ seckey = default_seckey
+ msg = default_msg
+ sig = schnorr_sign(msg, seckey, default_aux_rand)
+
+ # Replace s with a number that's equal to the curve order
+ sig = sig[0:32] + bytes_from_int(n)
+
+ return (None, pubkey_gen(seckey), None, msg, sig, "FALSE", "sig[32:64] is equal to curve order")
+
+# Test out of range pubkey
+# It's cryptographically impossible to create a test vector that fails if run
+# in an implementation which accepts out of range pubkeys because we can't find
+# a secret key for such a public key and therefore can not create a signature.
+# This test vector just increases test coverage.
+def vector14():
+ # This creates a dummy signature that doesn't have anything to do with the
+ # public key.
+ seckey = default_seckey
+ msg = default_msg
+ sig = schnorr_sign(msg, seckey, default_aux_rand)
+ pubkey_int = p + 1
+ pubkey = bytes_from_int(pubkey_int)
+ assert(lift_x_even_y(pubkey) is None)
+ # If an implementation would reduce a given public key modulo p then the
+ # pubkey would be valid
+ assert(lift_x_even_y(bytes_from_int(pubkey_int % p)) is not None)
+
+ return (None, pubkey, None, msg, sig, "FALSE", "public key is not a valid X coordinate because it exceeds the field size")
+
+vectors = [
+ vector0(),
+ vector1(),
+ vector2(),
+ vector3(),
+ vector4(),
+ vector5(),
+ vector6(),
+ vector7(),
+ vector8(),
+ vector9(),
+ vector10(),
+ vector11(),
+ vector12(),
+ vector13(),
+ vector14()
+ ]
+
+# Converts the byte strings of a test vector into hex strings
+def bytes_to_hex(seckey, pubkey, aux_rand, msg, sig, result, comment):
+ return (seckey.hex().upper() if seckey is not None else None, pubkey.hex().upper(), aux_rand.hex().upper() if aux_rand is not None else None, msg.hex().upper(), sig.hex().upper(), result, comment)
+
+vectors = list(map(lambda vector: bytes_to_hex(vector[0], vector[1], vector[2], vector[3], vector[4], vector[5], vector[6]), vectors))
+
+def print_csv(vectors):
+ writer = csv.writer(sys.stdout)
+ writer.writerow(("index", "secret key", "public key", "aux_rand", "message", "signature", "verification result", "comment"))
+ for (i,v) in enumerate(vectors):
+ writer.writerow((i,)+v)
+
+print_csv(vectors)
diff --git a/bip-0341.mediawiki b/bip-0341.mediawiki
new file mode 100644
index 0000000..6c71b8d
--- /dev/null
+++ b/bip-0341.mediawiki
@@ -0,0 +1,311 @@
+<pre>
+ BIP: 341
+ Layer: Consensus (soft fork)
+ Title: Taproot: SegWit version 1 spending rules
+ Author: Pieter Wuille <pieter.wuille@gmail.com>
+ Jonas Nick <jonasd.nick@gmail.com>
+ Anthony Towns <aj@erisian.com.au>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0341
+ Status: Draft
+ Type: Standards Track
+ Created: 2020-01-19
+ License: BSD-3-Clause
+ Requires: 340
+ Post-History: 2019-05-06: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016914.html [bitcoin-dev] Taproot proposal
+ 2019-10-09: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-October/017378.html [bitcoin-dev] Taproot updates
+</pre>
+
+==Introduction==
+
+===Abstract===
+
+This document proposes a new SegWit version 1 output type, with spending rules based on Taproot, Schnorr signatures, and Merkle branches.
+
+===Copyright===
+
+This document is licensed under the 3-clause BSD license.
+
+===Motivation===
+
+This proposal aims to improve privacy, efficiency, and flexibility of Bitcoin's scripting capabilities without adding new security assumptions<ref>'''What does not adding security assumptions mean?''' Unforgeability of signatures is a necessary requirement to prevent theft. At least when treating script execution as a digital signature scheme itself, unforgeability can be [https://github.com/apoelstra/taproot proven] in the Random Oracle Model assuming the Discrete Logarithm problem is hard. A [https://nbn-resolving.de/urn:nbn:de:hbz:294-60803 proof] for unforgeability of ECDSA in the current script system needs non-standard assumptions on top of that. Note that it is hard in general to model exactly what security for script means, as it depends on the policies and protocols used by wallet software.</ref>. Specifically, it seeks to minimize how much information about the spendability conditions of a transaction output is revealed on chain at creation or spending time and to add a number of upgrade mechanisms, while fixing a few minor but long-standing issues.
+
+==Design==
+
+A number of related ideas for improving Bitcoin's scripting capabilities have been previously proposed: Schnorr signatures ([[bip-0340.mediawiki|BIP340]]), Merkle branches ("MAST", [[bip-0114.mediawiki|BIP114]], [[bip-0117.mediawiki|BIP117]]), new sighash modes ([[bip-0118.mediawiki|BIP118]]), new opcodes like CHECKSIGFROMSTACK, [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015614.html Taproot], [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015700.html Graftroot], [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-July/016249.html G'root], and [https://bitcointalk.org/index.php?topic=1377298.0 cross-input aggregation].
+
+Combining all these ideas in a single proposal would be an extensive change, be hard to review, and likely miss new discoveries that otherwise could have been made along the way. Not all are equally mature as well. For example, cross-input aggregation [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-March/015838.html interacts] in complex ways with upgrade mechanisms, and solutions to that are still [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-October/016461.html in flux]. On the other hand, separating them all into independent upgrades would reduce the efficiency and privacy gains to be had, and wallet and service providers may not be inclined to go through many incremental updates. Therefore, we're faced with a tradeoff between functionality and scope creep. In this design we strike a balance by focusing on the structural script improvements offered by Taproot and Merkle branches, as well as changes necessary to make them usable and efficient. For things like sighashes and opcodes we include fixes for known problems, but exclude new features that can be added independently with no downsides.
+
+As a result we choose this combination of technologies:
+* '''Merkle branches''' let us only reveal the actually executed part of the script to the blockchain, as opposed to all possible ways a script can be executed. Among the various known mechanisms for implementing this, one where the Merkle tree becomes part of the script's structure directly maximizes the space savings, so that approach is chosen.
+* '''Taproot''' on top of that lets us merge the traditionally separate pay-to-pubkey and pay-to-scripthash policies, making all outputs spendable by either a key or (optionally) a script, and indistinguishable from each other. As long as the key-based spending path is used for spending, it is not revealed whether a script path was permitted as well, resulting in space savings and an increase in scripting privacy at spending time.
+* Taproot's advantages become apparent under the assumption that most applications involve outputs that could be spent by all parties agreeing. That's where '''Schnorr''' signatures come in, as they permit [https://eprint.iacr.org/2018/068 key aggregation]: a public key can be constructed from multiple participant public keys, and which requires cooperation between all participants to sign for. Such multi-party public keys and signatures are indistinguishable from their single-party equivalents. This means that with taproot most applications can use the key-based spending path, which is both efficient and private. This can be generalized to arbitrary M-of-N policies, as Schnorr signatures support threshold signing, at the cost of more complex setup protocols.
+* As Schnorr signatures also permit '''batch validation''', allowing multiple signatures to be validated together more efficiently than validating each one independently, we make sure all parts of the design are compatible with this.
+* Where unused bits appear as a result of the above changes, they are reserved for mechanisms for '''future extensions'''. As a result, every script in the Merkle tree has an associated version such that new script versions can be introduced with a soft fork while remaining compatible with BIP 341. Additionally, future soft forks can make use of the currently unused <code>annex</code> in the witness (see [[bip-0341.mediawiki#Rationale|BIP341]]).
+* While the core semantics of the '''signature hashing algorithm''' are not changed, a number of improvements are included in this proposal. The new signature hashing algorithm fixes the verification capabilities of offline signing devices by including amount and scriptPubKey in the signature message, avoids unnecessary hashing, uses '''tagged hashes''' and defines a default sighash byte.
+* The '''public key is directly included in the output''' in contrast to typical earlier constructions which store a hash of the public key or script in the output. This has the same cost for senders and is more space efficient overall if the key-based spending path is taken. <ref>'''Why is the public key directly included in the output?''' While typical earlier constructions store a hash of a script or a public key in the output, this is rather wasteful when a public key is always involved. To guarantee batch verifiability, the public key must be known to every verifier, and thus only revealing its hash as an output would imply adding an additional 32 bytes to the witness. Furthermore, to maintain [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-January/012198.html 128-bit collision security] for outputs, a 256-bit hash would be required anyway, which is comparable in size (and thus in cost for senders) to revealing the public key directly. While the usage of public key hashes is often said to protect against ECDLP breaks or quantum computers, this protection is very weak at best: transactions are not protected while being confirmed, and a very [https://twitter.com/pwuille/status/1108097835365339136 large portion] of the currency's supply is not under such protection regardless. Actual resistance to such systems can be introduced by relying on different cryptographic assumptions, but this proposal focuses on improvements that do not change the security model.</ref>
+
+Informally, the resulting design is as follows: a new witness version is added (version 1), whose programs consist of 32-byte encodings of points ''Q''. ''Q'' is computed as ''P + hash(P||m)G'' for a public key ''P'', and the root ''m'' of a Merkle tree whose leaves consist of a version number and a script. These outputs can be spent directly by providing a signature for ''Q'', or indirectly by revealing ''P'', the script and leaf version, inputs that satisfy the script, and a Merkle path that proves ''Q'' committed to that leaf. All hashes in this construction (the hash for computing ''Q'' from ''P'', the hashes inside the Merkle tree's inner nodes, and the signature hashes used) are tagged to guarantee domain separation.
+
+== Specification ==
+
+This section specifies the Taproot consensus rules. Validity is defined by exclusion: a block or transaction is valid if no condition exists that marks it failed.
+
+The notation below follows that of [[bip-0340.mediawiki#design|BIP340]]. This includes the ''hash<sub>tag</sub>(x)'' notation to refer to ''SHA256(SHA256(tag) || SHA256(tag) || x)''. To the best of the authors' knowledge, no existing use of SHA256 in Bitcoin feeds it a message that starts with two single SHA256 outputs, making collisions between ''hash<sub>tag</sub>'' with other hashes extremely unlikely.
+
+=== Script validation rules ===
+
+A Taproot output is a native SegWit output (see [[bip-0141.mediawiki|BIP141]]) with version number 1, and a 32-byte witness program.
+The following rules only apply when such an output is being spent. Any other outputs, including version 1 outputs with lengths other than 32 bytes, or P2SH-wrapped version 1 outputs<ref>'''Why is P2SH-wrapping not supported?''' Using P2SH-wrapped outputs only provides 80-bit collision security due to the use of a 160-bit hash. This is considered low, and becomes a security risk whenever the output includes data from more than a single party (public keys, hashes, ...).</ref>, remain unencumbered.
+
+* Let ''q'' be the 32-byte array containing the witness program (the second push in the scriptPubKey) which represents a public key according to [[bip-0340.mediawiki#design|BIP340]].
+* Fail if the witness stack has 0 elements.
+* If there are at least two witness elements, and the first byte of the last element is 0x50<ref>'''Why is the first byte of the annex <code>0x50</code>?''' The <code>0x50</code> is chosen as it could not be confused with a valid P2WPKH or P2WSH spending. As the control block's initial byte's lowest bit is used to indicate the parity of the public key's Y coordinate, each leaf version needs an even byte value and the immediately following odd byte value that are both not yet used in P2WPKH or P2WSH spending. To indicate the annex, only an "unpaired" available byte is necessary like <code>0x50</code>. This choice maximizes the available options for future script versions.</ref>, this last element is called ''annex'' ''a''<ref>'''What is the purpose of the annex?''' The annex is a reserved space for future extensions, such as indicating the validation costs of computationally expensive new opcodes in a way that is recognizable without knowing the scriptPubKey of the output being spent. Until the meaning of this field is defined by another softfork, users SHOULD NOT include <code>annex</code> in transactions, or it may lead to PERMANENT FUND LOSS.</ref> and is removed from the witness stack. The annex (or the lack of thereof) is always covered by the signature and contributes to transaction weight, but is otherwise ignored during taproot validation.
+* If there is exactly one element left in the witness stack, key path spending is used:
+** The single witness stack element is interpreted as the signature and must be valid (see the next section) for the public key ''q'' (see the next subsection).
+* If there are at least two witness elements left, script path spending is used:
+** Call the second-to-last stack element ''s'', the script.
+** The last stack element is called the control block ''c'', and must have length ''33 + 32m'', for a value of ''m'' that is an integer between 0 and 128<ref>'''Why is the Merkle path length limited to 128?''' The optimally space-efficient Merkle tree can be constructed based on the probabilities of the scripts in the leaves, using the Huffman algorithm. This algorithm will construct branches with lengths approximately equal to ''log<sub>2</sub>(1/probability)'', but to have branches longer than 128 you would need to have scripts with an execution chance below 1 in ''2<sup>128</sup>''. As that is our security bound, scripts that truly have such a low chance can probably be removed entirely.</ref>, inclusive. Fail if it does not have such a length.
+** Let ''p = c[1:33]'' and let ''P = lift_x_even_y(int(p))'' where ''lift_x_even_y'' and ''[:]'' are defined as in [[bip-0340.mediawiki#design|BIP340]]. Fail if this point is not on the curve.
+** Let ''v = c[0] & 0xfe'' and call it the ''leaf version''<ref>'''What constraints are there on the leaf version?''' First, the leaf version cannot be odd as ''c[0] & 0xfe'' will always be even, and cannot be ''0x50'' as that would result in ambiguity with the annex. In addition, in order to support some forms of static analysis that rely on being able to identify script spends without access to the output being spent, it is recommended to avoid using any leaf versions that would conflict with a valid first byte of either a valid P2WPKH pubkey or a valid P2WSH script (that is, both ''v'' and ''v | 1'' should be an undefined, invalid or disabled opcode or an opcode that is not valid as the first opcode). The values that comply to this rule are the 32 even values between ''0xc0'' and ''0xfe'' and also ''0x66'', ''0x7e'', ''0x80'', ''0x84'', ''0x96'', ''0x98'', ''0xba'', ''0xbc'', ''0xbe''. Note also that this constraint implies that leaf versions should be shared amongst different witness versions, as knowing the witness version requires access to the output being spent.</ref>.
+** Let ''k<sub>0</sub> = hash<sub>TapLeaf</sub>(v || compact_size(size of s) || s)''; also call it the ''tapleaf hash''.
+** For ''j'' in ''[0,1,...,m-1]'':
+*** Let ''e<sub>j</sub> = c[33+32j:65+32j]''.
+*** Let ''k<sub>j+1</sub> depend on whether ''k<sub>j</sub> < e<sub>j</sub>'' (lexicographically)<ref>'''Why are child elements sorted before hashing in the Merkle tree?''' By doing so, it is not necessary to reveal the left/right directions along with the hashes in revealed Merkle branches. This is possible because we do not actually care about the position of specific scripts in the tree; only that they are actually committed to.</ref>:
+**** If ''k<sub>j</sub> < e<sub>j</sub>'': ''k<sub>j+1</sub> = hash<sub>TapBranch</sub>(k<sub>j</sub> || e<sub>j</sub>)''<ref>'''Why not use a more efficient hash construction for inner Merkle nodes?''' The chosen construction does require two invocations of the SHA256 compression functions, one of which can be avoided in theory (see [[bip-0098.mediawiki|BIP98]]). However, it seems preferable to stick to constructions that can be implemented using standard cryptographic primitives, both for implementation simplicity and analyzability. If necessary, a significant part of the second compression function can be optimized out by [https://github.com/bitcoin/bitcoin/pull/13191 specialization] for 64-byte inputs.</ref>.
+**** If ''k<sub>j</sub> &ge; e<sub>j</sub>'': ''k<sub>j+1</sub> = hash<sub>TapBranch</sub>(e<sub>j</sub> || k<sub>j</sub>)''.
+** Let ''t = hash<sub>TapTweak</sub>(p || k<sub>m</sub>)''.
+** If ''t &ge; 0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141'' (order of secp256k1), fail.
+** Let ''Q = P + int(t)G''.
+** If ''q &ne; x(Q)'' or ''c[0] & 1 &ne; y(Q) mod 2'', fail<ref>'''Why is it necessary to reveal a bit in a script path spend and check that it matches the parity of the Y coordinate of ''Q''?''' The parity of the Y coordinate is necessary to lift the X coordinate ''q'' to a unique point. While this is not strictly necessary for verifying the taproot commitment as described above, it is necessary to allow batch verification. Alternatively, ''Q'' could be forced to have an even Y coordinate, but that would require retrying with different internal public keys (or different messages) until ''Q'' has that property. There is no downside to adding the parity bit because otherwise the control block bit would be unused.</ref>.
+** Execute the script, according to the applicable script rules<ref>'''What are the applicable script rules in script path spends?''' [[bip-0342.mediawiki|BIP342]] specifies validity rules that apply for leaf version 0xc0, but future proposals can introduce rules for other leaf versions.</ref>, using the witness stack elements excluding the script ''s'', the control block ''c'', and the annex ''a'' if present, as initial stack.
+
+''q'' is referred to as ''taproot output key'' and ''p'' as ''taproot internal key''.
+
+=== Signature validation rules ===
+
+We first define a reusable common signature message calculation function, followed by the actual signature validation as it's used in key path spending.
+
+==== Common signature message ====
+
+The function ''SigMsg(hash_type, ext_flag)'' computes the message being signed as a byte array. It is implicitly also a function of the spending transaction and the outputs it spends, but these are not listed to keep notation simple.
+
+The parameter ''hash_type'' is an 8-bit unsigned value. The <code>SIGHASH</code> encodings from the legacy script system are reused, including <code>SIGHASH_ALL</code>, <code>SIGHASH_NONE</code>, <code>SIGHASH_SINGLE</code>, and <code>SIGHASH_ANYONECANPAY</code>, plus the default ''hash_type'' value ''0x00'' which results in signing over the whole transaction just as for <code>SIGHASH_ALL</code>. The following restrictions apply, which cause validation failure if violated:
+* Using any undefined ''hash_type'' (not ''0x00'', ''0x01'', ''0x02'', ''0x03'', ''0x81'', ''0x82'', or ''0x83''<ref>'''Why reject unknown ''hash_type'' values?''' By doing so, it is easier to reason about the worst case amount of signature hashing an implementation with adequate caching must perform.</ref>).
+* Using <code>SIGHASH_SINGLE</code> without a "corresponding output" (an output with the same index as the input being verified).
+
+The parameter ''ext_flag'' is an integer in range 0-127, and is used for indicating (in the message) that extensions are added at the end of the message<ref>'''What extensions use the ''ext_flag'' mechanism?''' [[bip-0342.mediawiki|BIP342]] reuses the same common signature message algorithm, but adds BIP342-specific data at the end, which is indicated using ''ext_flag = 1''.</ref>.
+
+If the parameters take acceptable values, the message is the concatenation of the following data, in order (with byte size of each item listed in parentheses). Numerical values in 2, 4, or 8-byte are encoded in little-endian.
+
+* Control:
+** ''hash_type'' (1).
+* Transaction data:
+** ''nVersion'' (4): the ''nVersion'' of the transaction.
+** ''nLockTime'' (4): the ''nLockTime'' of the transaction.
+** If the ''hash_type & 0x80'' does not equal <code>SIGHASH_ANYONECANPAY</code>:
+*** ''sha_prevouts'' (32): the SHA256 of the serialization of all input outpoints.
+*** ''sha_amounts'' (32): the SHA256 of the serialization of all spent output amounts.
+*** ''sha_scriptpubkeys'' (32): the SHA256 of the serialization of all spent output ''scriptPubKey''s.
+*** ''sha_sequences'' (32): the SHA256 of the serialization of all input ''nSequence''.
+** If ''hash_type & 3'' does not equal <code>SIGHASH_NONE</code> or <code>SIGHASH_SINGLE</code>:
+*** ''sha_outputs'' (32): the SHA256 of the serialization of all outputs in <code>CTxOut</code> format.
+* Data about this input:
+** ''spend_type'' (1): equal to ''(ext_flag * 2) + annex_present'', where ''annex_present'' is 0 if no annex is present, or 1 otherwise (the original witness stack has two or more witness elements, and the first byte of the last element is ''0x50'')
+** If ''hash_type & 0x80'' equals <code>SIGHASH_ANYONECANPAY</code>:
+*** ''outpoint'' (36): the <code>COutPoint</code> of this input (32-byte hash + 4-byte little-endian).
+*** ''amount'' (8): value of the previous output spent by this input.
+*** ''scriptPubKey'' (35): ''scriptPubKey'' of the previous output spent by this input, serialized as script inside <code>CTxOut</code>. Its size is always 35 bytes.
+*** ''nSequence'' (4): ''nSequence'' of this input.
+** If ''hash_type & 0x80'' does not equal <code>SIGHASH_ANYONECANPAY</code>:
+*** ''input_index'' (4): index of this input in the transaction input vector. Index of the first input is 0.
+** If an annex is present (the lowest bit of ''spend_type'' is set):
+*** ''sha_annex'' (32): the SHA256 of ''(compact_size(size of annex) || annex)'', where ''annex'' includes the mandatory ''0x50'' prefix.
+* Data about this output:
+** If ''hash_type & 3'' equals <code>SIGHASH_SINGLE</code>:
+*** ''sha_single_output'' (32): the SHA256 of the corresponding output in <code>CTxOut</code> format.
+
+The total length of ''SigMsg()'' is at most ''206'' bytes<ref>'''What is the output length of ''SigMsg()''?''' The total length of ''SigMsg()'' can be computed using the following formula: ''174 - is_anyonecanpay * 49 - is_none * 32 + has_annex * 32''.</ref>. Note that this does not include the size of sub-hashes such as ''sha_prevouts'', which may be cached across signatures of the same transaction.
+
+In summary, the semantics of the [[bip-0143.mediawiki|BIP143]] sighash types remain unchanged, except the following:
+# The way and order of serialization is changed.<ref>'''Why is the serialization in the signature message changed?''' Hashes that go into the signature message and the message itself are now computed with a single SHA256 invocation instead of double SHA256. There is no expected security improvement by doubling SHA256 because this only protects against length-extension attacks against SHA256 which are not a concern for signature messages because there is no secret data. Therefore doubling SHA256 is a waste of resources. The message computation now follows a logical order with transaction level data first, then input data and output data. This allows to efficiently cache the transaction part of the message across different inputs using the SHA256 midstate. Additionally, sub-hashes can be skipped when calculating the message (for example `sha_prevouts` if <code>SIGHASH_ANYONECANPAY</code> is set) instead of setting them to zero and then hashing them as in BIP143. Despite that, collisions are made impossible by committing to the length of the data (implicit in ''hash_type'' and ''spend_type'') before the variable length data.</ref>
+# The signature message commits to the ''scriptPubKey'' of the spent output and if the <code>SIGHASH_ANYONECANPAY</code> flag is not set, the message commits to the ''scriptPubKey''s of ''all'' outputs spent by the transaction. <ref>'''Why does the signature message commit to the ''scriptPubKey''?''' This prevents lying to offline signing devices about output being spent, even when the actually executed script (''scriptCode'' in BIP143) is correct. This means it's possible to compactly prove to a hardware wallet what (unused) execution paths existed. Moreover, committing to all spent ''scriptPubKey''s helps offline signing devices to determine the subset that belong to its own wallet. This is useful in [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017801.html automated coinjoins].</ref>.
+# If the <code>SIGHASH_ANYONECANPAY</code> flag is not set, the message commits to the amounts of ''all'' transaction inputs.<ref>'''Why does the signature message commit to the amounts of all transaction inputs?''' This eliminates the possibility to lie to offline signing devices about the fee of a transaction.</ref>
+# The signature message commits to all input ''nSequence'' if <code>SIGHASH_NONE</code> or <code>SIGHASH_SINGLE</code> are set (unless <code>SIGHASH_ANYONECANPAY</code> is set as well).<ref>'''Why does the signature message commit to all input ''nSequence'' if <code>SIGHASH_SINGLE</code> or <code>SIGHASH_NONE</code> are set?''' Because setting them already makes the message commit to the <code>prevouts</code> part of all transaction inputs, it is not useful to treat the ''nSequence'' any different. Moreover, this change makes ''nSequence'' consistent with the view that <code>SIGHASH_SINGLE</code> and <code>SIGHASH_NONE</code> only modify the signature message with respect to transaction outputs and not inputs.</ref>
+# The signature message includes commitments to the taproot-specific data ''spend_type'' and ''annex'' (if present).
+
+==== Taproot key path spending signature validation ====
+
+To validate a signature ''sig'' with public key ''q'':
+* If the ''sig'' is 64 bytes long, return ''Verify(q, hash<sub>TapSigHash</sub>(0x00 || SigMsg(0x00, 0)), sig)''<ref>'''Why is the input to ''hash<sub>TapSigHash</sub>'' prefixed with 0x00?''' This prefix is called the sighash epoch, and allows reusing the ''hash<sub>TapSigHash</sub>'' tagged hash in future signature algorithms that make invasive changes to how hashing is performed (as opposed to the ''ext_flag'' mechanism that is used for incremental extensions). An alternative is having them use a different tag, but supporting a growing number of tags may become undesirable.</ref>, where ''Verify'' is defined in [[bip-0340.mediawiki#design|BIP340]].
+* If the ''sig'' is 65 bytes long, return ''sig[64] &ne; 0x00<ref>'''Why can the <code>hash_type</code> not be <code>0x00</code> in 65-byte signatures?''' Permitting that would enable malleating (by third parties, including miners) 64-byte signatures into 65-byte ones, resulting in a different `wtxid` and a different fee rate than the creator intended</ref> and Verify(q, hash<sub>TapSighash</sub>(0x00 || SigMsg(sig[64], 0)), sig[0:64])''.
+* Otherwise, fail<ref>'''Why permit two signature lengths?''' By making the most common type of <code>hash_type</code> implicit, a byte can often be saved.</ref>.
+
+== Constructing and spending Taproot outputs ==
+
+This section discusses how to construct and spend Taproot outputs. It only affects wallet software that chooses to implement receiving and spending,
+and is not consensus critical in any way.
+
+Conceptually, every Taproot output corresponds to a combination of a single public key condition (the internal key), and zero or more general conditions encoded in scripts organized in a tree.
+Satisfying any of these conditions is sufficient to spend the output.
+
+'''Initial steps''' The first step is determining what the internal key and the organization of the rest of the scripts should be. The specifics are likely application dependent, but here are some general guidelines:
+* When deciding between scripts with conditionals (<code>OP_IF</code> etc.) and splitting them up into multiple scripts (each corresponding to one execution path through the original script), it is generally preferable to pick the latter.
+* When a single condition requires signatures with multiple keys, key aggregation techniques like MuSig can be used to combine them into a single key. The details are out of scope for this document, but note that this may complicate the signing procedure.
+* If one or more of the spending conditions consist of just a single key (after aggregation), the most likely one should be made the internal key. If no such condition exists, it may be worthwhile adding one that consists of an aggregation of all keys participating in all scripts combined; effectively adding an "everyone agrees" branch. If that is inacceptable, pick as internal key a point with unknown discrete logarithm. One example of such a point is ''H = lift_x_even_y(0x0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0)'' which is [https://github.com/ElementsProject/secp256k1-zkp/blob/11af7015de624b010424273be3d91f117f172c82/src/modules/rangeproof/main_impl.h#L16 constructed] by taking the hash of the standard uncompressed encoding of the [https://www.secg.org/sec2-v2.pdf secp256k1] base point ''G'' as X coordinate. In order to avoid leaking the information that key path spending is not possible it is recommended to pick a fresh integer ''r'' in the range ''0...n-1'' uniformly at random and use ''H + rG'' as internal key. It is possible to prove that this internal key does not have a known discrete logarithm with respect to ''G'' by revealing ''r'' to a verifier who can then reconstruct how the internal key was created.
+* If the spending conditions do not require a script path, the output key should commit to an unspendable script path instead of having no script path. This can be achieved by computing the output key point as ''Q = P + int(hash<sub>TapTweak</sub>(bytes(P)))G''. <ref>'''Why should the output key always have a taproot commitment, even if there is no script path?'''
+If the taproot output key is an aggregate of keys, there is the possibility for a malicious party to add a script path without being noticed by the other parties.
+This allows to bypass the multiparty policy and to steal the coin.
+MuSig key aggregation does not have this issue because it already causes the internal key to be randomized.
+
+The attack works as follows: Assume Alice and Mallory want to aggregate their keys into a taproot output key without a script path.
+In order to prevent key cancellation and related attacks they use [https://eprint.iacr.org/2018/483.pdf MSDL-pop] instead of MuSig.
+The MSDL-pop protocol requires all parties to provide a proof of possession of their corresponding secret key and the aggregated key is just the sum of the individual keys.
+After Mallory receives Alice's key ''A'', Mallory creates ''M = M<sub>0</sub> + int(t)G'' where ''M<sub>0</sub>'' is Mallory's original key and ''t'' allows a script path spend with internal key ''P = A + M<sub>0</sub>'' and a script that only contains Mallory's key.
+Mallory sends a proof of possession of ''M'' to Alice and both parties compute output key ''Q = A + M = P + int(t)G''.
+Alice will not be able to notice the script path, but Mallory can unilaterally spend any coin with output key ''Q''.
+</ref>
+* The remaining scripts should be organized into the leaves of a binary tree. This can be a balanced tree if each of the conditions these scripts correspond to are equally likely. If probabilities for each condition are known, consider constructing the tree as a Huffman tree.
+
+'''Computing the output script''' Once the spending conditions are split into an internal key <code>internal_pubkey</code> and a binary tree whose leaves are (leaf_version, script) tuples, the output script can be computed using the Python3 algorithms below. These algorithms take advantage of helper functions from the [bip-0340/referency.py BIP340 reference code] for integer conversion, point multiplication, and tagged hashes.
+
+First, we define <code>taproot_tweak_pubkey</code> for 32-byte [[bip-0340.mediawiki|BIP340]] public key arrays.
+The function returns a bit indicating the tweaked public key's Y coordinate as well as the public key byte array.
+The parity bit will be required for spending the output with a script path.
+In order to allow spending with the key path, we define <code>taproot_tweak_seckey</code> to compute the secret key for a tweaked public key.
+For any byte string <code>h</code> it holds that <code>taproot_tweak_pubkey(pubkey_gen(seckey), h)[0] == pubkey_gen(taproot_tweak_seckey(seckey, h))</code>.
+
+<source lang="python">
+def taproot_tweak_pubkey(pubkey, h):
+ t = int_from_bytes(tagged_hash("TapTweak", pubkey + h))
+ if t >= SECP256K1_ORDER:
+ raise ValueError
+ Q = point_add(lift_x_even_y(int_from_bytes(pubkey)), point_mul(G, t))
+ return 0 if has_even_y(Q) else 1, bytes_from_int(x(Q))
+
+def taproot_tweak_seckey(seckey0, h):
+ P = point_mul(G, int_from_bytes(seckey0))
+ seckey = seckey0 if has_even_y(P) else SECP256K1_ORDER - seckey0
+ t = int_from_bytes(tagged_hash("TapTweak", bytes_from_int(x(P)) + h))
+ if t >= SECP256K1_ORDER:
+ raise ValueError
+ return (seckey + t) % SECP256K1_ORDER
+</source>
+
+The following function, <code>taproot_output_script</code>, returns a byte array with the scriptPubKey (see [[bip-0141.mediawiki|BIP141]]).
+<code>ser_script</code> refers to a function that prefixes its input with a CCompactSize-encoded length.
+
+<source lang="python">
+def taproot_tree_helper(script_tree):
+ if isinstance(script_tree, tuple):
+ leaf_version, script = script_tree
+ h = tagged_hash("TapLeaf", bytes([leaf_version]) + ser_script(script))
+ return ([((leaf_version, script), bytes())], h)
+ left, left_h = taproot_tree_helper(script_tree[0])
+ right, right_h = taproot_tree_helper(script_tree[1])
+ ret = [(l, c + right_h) for l, c in left] + [(l, c + left_h) for l, c in right]
+ if right_h < left_h:
+ left_h, right_h = right_h, left_h
+ return (ret, tagged_hash("TapBranch", left_h + right_h))
+
+def taproot_output_script(internal_pubkey, script_tree):
+ """Given a internal public key and a tree of scripts, compute the output script.
+ script_tree is either:
+ - a (leaf_version, script) tuple (leaf_version is 0xc0 for [[bip-0342.mediawiki|BIP342]] scripts)
+ - a list of two elements, each with the same structure as script_tree itself
+ - None
+ """
+ if script_tree is None:
+ h = bytes()
+ else:
+ _, h = taproot_tree_helper(script_tree)
+ output_pubkey, _ = taproot_tweak_pubkey(internal_pubkey, h)
+ return bytes([0x51, 0x20]) + output_pubkey
+</source>
+
+[[File:bip-0341/tree.png|frame|This diagram shows the hashing structure to obtain the tweak from an internal key ''P'' and a Merkle tree consisting of 5 script leaves. ''A'', ''B'', ''C'' and ''E'' are ''TapLeaf'' hashes similar to ''D'' and ''AB'' is a ''TapBranch'' hash. Note that when ''CDE'' is computed ''E'' is hashed first because ''E'' is less than ''CD''.]]
+
+To spend this output using script ''D'', the control block would contain the following data in this order:
+
+ <control byte with leaf version and parity bit> <internal key p> <C> <E> <AB>
+
+The TapTweak would then be computed as described [[bip-0341.mediawiki#script-validation-rules|above]] like so:
+
+<source>
+D = tagged_hash("TapLeaf", bytes([leaf_version]) + ser_script(script))
+CD = tagged_hash("TapBranch", C + D)
+CDE = tagged_hash("TapBranch", E + CD)
+ABCDE = tagged_hash("TapBranch", AB + CDE)
+TapTweak = tagged_hash("TapTweak", p + ABCDE)
+</source>
+
+'''Spending using the key path''' A Taproot output can be spent with the secret key corresponding to the <code>internal_pubkey</code>. To do so, a witness stack consists of a single element: a [[bip-0340.mediawiki|BIP340]] signature on the signature hash as defined above, with the secret key tweaked by the same <code>h</code> as in the above snippet. See the code below:
+
+<source lang="python">
+def taproot_sign_key(script_tree, internal_seckey, hash_type):
+ _, h = taproot_tree_helper(script_tree)
+ output_seckey = taproot_tweak_seckey(internal_seckey, h)
+ sig = schnorr_sign(sighash(hash_type), output_seckey)
+ if hash_type != 0:
+ sig += bytes([hash_type])
+ return [sig]
+</source>
+
+This function returns the witness stack necessary and a <code>sighash</code> function to compute the signature hash as defined above (for simplicity, the snippet above ignores passing information like the transaction, the input position, ... to the sighashing code).
+
+'''Spending using one of the scripts''' A Taproot output can be spent by satisfying any of the scripts used in its construction. To do so, a witness stack consisting of the script's inputs, plus the script itself and the control block are necessary. See the code below:
+
+<source lang="python">
+def taproot_sign_script(internal_pubkey, script_tree, script_num, inputs):
+ info, h = taproot_tree_helper(script_tree)
+ (leaf_version, script), path = info[script_num]
+ output_pubkey_y_parity, _ = taproot_tweak_pubkey(internal_pubkey, h)
+ pubkey_data = bytes([output_pubkey_y_parity + leaf_version]) + internal_pubkey
+ return inputs + [script, pubkey_data + path]
+</source>
+
+== Security ==
+
+Taproot improves the privacy of Bitcoin because instead of revealing all possible conditions for spending an output, only the satisfied spending condition has to be published.
+Ideally, outputs are spent using the key path which prevents observers from learning the spending conditions of a coin.
+A key path spend could be a "normal" payment from a single- or multi-signature wallet or the cooperative settlement of hidden multiparty contract.
+
+A script path spend leaks that there is a script path and that the key path was not applicable - for example because the involved parties failed to reach agreement.
+Moreover, the depth of a script in the Merkle root leaks information including the minimum depth of the tree, which suggests specific wallet software that created the output and helps clustering.
+Therefore, the privacy of script spends can be improved by deviating from the optimal tree determined by the probability distribution over the leaves.
+
+Just like other existing output types, taproot outputs should never reuse keys, for privacy reasons.
+This does not only apply to the particular leaf that was used to spend an output but to all leaves committed to in the output.
+If leaves were reused, it could happen that spending a different output would reuse the same Merkle branches in the Merkle proof.
+Using fresh keys implies that taproot output construction does not need to take special measures to randomizing leaf positions because they are already randomized due to the branch-sorting Merkle tree construction used in taproot.
+This does not avoid leaking information through the leaf depth and therefore only applies to balanced (sub-) trees.
+In addition, every leaf should have a set of keys distinct from every other leaf.
+The reason for this is to increase leaf entropy and prevent an observer from learning an undisclosed script using brute-force search.
+
+== Test vectors ==
+
+Examples with creation transaction and spending transaction pairs, valid and invalid.
+
+Examples of preimage for sighashing for each of the sighash modes.
+
+== Rationale ==
+
+<references />
+
+== Deployment ==
+
+TODO
+
+== Backwards compatibility ==
+As a soft fork, older software will continue to operate without modification.
+Non-upgraded nodes, however, will consider all SegWit version 1 witness programs as anyone-can-spend scripts.
+They are strongly encouraged to upgrade in order to fully validate the new programs.
+
+Non-upgraded wallets can receive and send bitcoin from non-upgraded and upgraded wallets using SegWit version 0 programs, traditional pay-to-pubkey-hash, etc.
+Depending on the implementation non-upgraded wallets may be able to send to Segwit version 1 programs if they support sending to [[bip-0173.mediawiki|BIP173]] Bech32 addresses.
+
+== Acknowledgements ==
+
+This document is the result of discussions around script and signature improvements with many people, and had direct contributions from Greg Maxwell and others. It further builds on top of earlier published proposals such as Taproot by Greg Maxwell, and Merkle branch constructions by Russell O'Connor, Johnson Lau, and Mark Friedenbach.
+
+The authors wish the thank Arik Sosman for suggesting to sort Merkle node children before hashes, removing the need to transfer the position in the tree, as well as all those who provided valuable feedback and reviews, including the participants of the [https://github.com/ajtowns/taproot-review structured reviews].
diff --git a/bip-0341/tree.png b/bip-0341/tree.png
new file mode 100644
index 0000000..af56eda
--- /dev/null
+++ b/bip-0341/tree.png
Binary files differ
diff --git a/bip-0342.mediawiki b/bip-0342.mediawiki
new file mode 100644
index 0000000..c4af38a
--- /dev/null
+++ b/bip-0342.mediawiki
@@ -0,0 +1,140 @@
+<pre>
+ BIP: 342
+ Layer: Consensus (soft fork)
+ Title: Validation of Taproot Scripts
+ Author: Pieter Wuille <pieter.wuille@gmail.com>
+ Jonas Nick <jonasd.nick@gmail.com>
+ Anthony Towns <aj@erisian.com.au>
+ Comments-Summary: No comments yet.
+ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0342
+ Status: Draft
+ Type: Standards Track
+ Created: 2020-01-19
+ License: BSD-3-Clause
+ Requires: 340, 341
+ Post-History: 2019-05-06: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016914.html [bitcoin-dev] Taproot proposal
+</pre>
+
+==Introduction==
+
+===Abstract===
+
+This document specifies the semantics of the initial scripting system under [[bip-0341.mediawiki|BIP341]].
+
+===Copyright===
+
+This document is licensed under the 3-clause BSD license.
+
+===Motivation===
+
+[[bip-0341.mediawiki|BIP341]] proposes improvements to just the script structure, but some of its goals are incompatible with the semantics of certain opcodes within the scripting language itself.
+While it is possible to deal with these in separate optional improvements, their impact is not guaranteed unless they are addressed simultaneously with [[bip-0341.mediawiki|BIP341]] itself.
+
+Specifically, the goal is making '''Schnorr signatures''', '''batch validation''', and '''signature hash''' improvements available to spends that use the script system as well.
+
+==Design==
+
+In order to achieve these goals, signature opcodes <code>OP_CHECKSIG</code> and <code>OP_CHECKSIGVERIFY</code> are modified to verify Schnorr signatures as specified in [[bip-0340.mediawiki|BIP340]] and to use a signature message algorithm based on the common message calculation in [[bip-0341.mediawiki|BIP341]].
+The tapscript signature message also simplifies <code>OP_CODESEPARATOR</code> handling and makes it more efficient.
+
+The inefficient <code>OP_CHECKMULTISIG</code> and <code>OP_CHECKMULTISIGVERIFY</code> opcodes are disabled.
+Instead, a new opcode <code>OP_CHECKSIGADD</code> is introduced to allow creating the same multisignature policies in a batch-verifiable way.
+Tapscript uses a new, simpler signature opcode limit fixing complicated interactions with transaction weight.
+Furthermore, a potential malleability vector is eliminated by requiring MINIMALIF.
+
+Tapscript can be upgraded through soft forks by defining unknown key types, for example to add new <code>hash_types</code> or signature algorithms.
+Additionally, the new tapscript <code>OP_SUCCESS</code> opcodes allow introducing new opcodes more cleanly than through <code>OP_NOP</code>.
+
+==Specification==
+
+The rules below only apply when validating a transaction input for which all of the conditions below are true:
+* The transaction input is a '''segregated witness spend''' (i.e., the scriptPubKey contains a witness program as defined in [[bip-0141.mediawiki|BIP141]]).
+* It is a '''taproot spend''' as defined in [[bip-0341.mediawiki#design|BIP341]] (i.e., the witness version is 1, the witness program is 32 bytes, and it is not P2SH wrapped).
+* It is a '''script path spend''' as defined in [[bip-0341.mediawiki#design|BIP341]] (i.e., after removing the optional annex from the witness stack, two or more stack elements remain).
+* The leaf version is ''0xc0'' (i.e. the first byte of the last witness element after removing the optional annex is ''0xc0'' or ''0xc1''), marking it as a '''tapscript spend'''.
+
+Validation of such inputs must be equivalent to performing the following steps in the specified order.
+# If the input is invalid due to BIP141 or BIP341, fail.
+# The script as defined in BIP341 (i.e., the penultimate witness stack element after removing the optional annex) is called the '''tapscript''' and is decoded into opcodes, one by one:
+## If any opcode numbered ''80, 98, 126-129, 131-134, 137-138, 141-142, 149-153, 187-254'' is encountered, validation succeeds (none of the rules below apply). This is true even if later bytes in the tapscript would fail to decode otherwise. These opcodes are renamed to <code>OP_SUCCESS80</code>, ..., <code>OP_SUCCESS254</code>, and collectively known as <code>OP_SUCCESSx</code><ref>'''<code>OP_SUCCESSx</code>''' <code>OP_SUCCESSx</code> is a mechanism to upgrade the Script system. Using an <code>OP_SUCCESSx</code> before its meaning is defined by a softfork is insecure and leads to fund loss. The inclusion of <code>OP_SUCCESSx</code> in a script will pass it unconditionally. It precedes any script execution rules to avoid the difficulties in specifying various edge cases, for example: <code>OP_SUCCESSx</code> in a script with an input stack larger than 1000 elements, <code>OP_SUCCESSx</code> after too many signature opcodes, or even scripts with conditionals lacking <code>OP_ENDIF</code>. The mere existence of an <code>OP_SUCCESSx</code> anywhere in the script will guarantee a pass for all such cases. <code>OP_SUCCESSx</code> are similar to the <code>OP_RETURN</code> in very early bitcoin versions (v0.1 up to and including v0.3.5). The original <code>OP_RETURN</code> terminates script execution immediately, and return pass or fail based on the top stack element at the moment of termination. This was one of a major design flaws in the original bitcoin protocol as it permitted unconditional third party theft by placing an <code>OP_RETURN</code> in <code>scriptSig</code>. This is not a concern in the present proposal since it is not possible for a third party to inject an <code>OP_SUCCESSx</code> to the validation process, as the <code>OP_SUCCESSx</code> is part of the script (and thus committed to by the taproot output), implying the consent of the coin owner. <code>OP_SUCCESSx</code> can be used for a variety of upgrade possibilities:
+* An <code>OP_SUCCESSx</code> could be turned into a functional opcode through a softfork. Unlike <code>OP_NOPx</code>-derived opcodes which only have read-only access to the stack, <code>OP_SUCCESSx</code> may also write to the stack. Any rule changes to an <code>OP_SUCCESSx</code>-containing script may only turn a valid script into an invalid one, and this is always achievable with softforks.
+* Since <code>OP_SUCCESSx</code> precedes size check of initial stack and push opcodes, an <code>OP_SUCCESSx</code>-derived opcode requiring stack elements bigger than 520 bytes may uplift the limit in a softfork.
+* <code>OP_SUCCESSx</code> may also redefine the behavior of existing opcodes so they could work together with the new opcode. For example, if an <code>OP_SUCCESSx</code>-derived opcode works with 64-bit integers, it may also allow the existing arithmetic opcodes in the ''same script'' to do the same.
+* Given that <code>OP_SUCCESSx</code> even causes potentially unparseable scripts to pass, it can be used to introduce multi-byte opcodes, or even a completely new scripting language when prefixed with a specific <code>OP_SUCCESSx</code> opcode.</ref>.
+## If any push opcode fails to decode because it would extend past the end of the tapscript, fail.
+# If the '''initial stack''' as defined in BIP341 (i.e., the witness stack after removing both the optional annex and the two last stack elements after that) violates any resource limits (stack size, and size of the elements in the stack; see "Resource Limits" below), fail. Note that this check can be bypassed using <code>OP_SUCCESSx</code>.
+# The tapscript is executed according to the rules in the following section, with the initial stack as input.
+## If execution fails for any reason, fail.
+## If the execution results in anything but exactly one element on the stack which evaluates to true with <code>CastToBool()</code>, fail.
+# If this step is reached without encountering a failure, validation succeeds.
+
+===Script execution===
+
+The execution rules for tapscript are based on those for P2WSH according to BIP141, including the <code>OP_CHECKLOCKTIMEVERIFY</code> and <code>OP_CHECKSEQUENCEVERIFY</code> opcodes defined in [[bip-0065.mediawiki|BIP65]] and [[bip-0112.mediawiki|BIP112]], but with the following modifications:
+* '''Disabled script opcodes''' The following script opcodes are disabled in tapscript: <code>OP_CHECKMULTISIG</code> and <code>OP_CHECKMULTISIGVERIFY</code><ref>'''Why are <code>OP_CHECKMULTISIG</code> and <code>OP_CHECKMULTISIGVERIFY</code> disabled, and not turned into OP_SUCCESSx?''' This is a precaution to make sure people who accidentally keep using <code>OP_CHECKMULTISIG</code> in Tapscript notice a problem immediately. It also avoids the complication of script disassemblers needing to become context-dependent.</ref>. The disabled opcodes behave in the same way as <code>OP_RETURN</code>, by failing and terminating the script immediately when executed, and being ignored when found in unexecuted branch of the script.
+* '''Consensus-enforced MINIMALIF''' The MINIMALIF rules, which are only a standardness rule in P2WSH, are consensus enforced in tapscript. This means that the input argument to the <code>OP_IF</code> and <code>OP_NOTIF</code> opcodes must be either exactly 0 (the empty vector) or exactly 1 (the one-byte vector with value 1)<ref>'''Why make MINIMALIF consensus?''' This makes it considerably easier to write non-malleable scripts that take branch information from the stack.</ref>.
+* '''OP_SUCCESSx opcodes''' As listed above, some opcodes are renamed to <code>OP_SUCCESSx</code>, and make the script unconditionally valid.
+* '''Signature opcodes'''. The <code>OP_CHECKSIG</code> and <code>OP_CHECKSIGVERIFY</code> are modified to operate on Schnorr public keys and signatures (see [[bip-0340.mediawiki|BIP340]]) instead of ECDSA, and a new opcode <code>OP_CHECKSIGADD</code> is added.
+** The opcode 186 (<code>0xba</code>) is named as <code>OP_CHECKSIGADD</code>. <ref>'''<code>OP_CHECKSIGADD</code>''' This opcode is added to compensate for the loss of <code>OP_CHECKMULTISIG</code>-like opcodes, which are incompatible with batch verification. <code>OP_CHECKSIGADD</code> is functionally equivalent to <code>OP_ROT OP_SWAP OP_CHECKSIG OP_ADD</code>, but only takes 1 byte. All <code>CScriptNum</code>-related behaviours of <code>OP_ADD</code> are also applicable to <code>OP_CHECKSIGADD</code>.</ref><ref>'''Alternatives to <code>CHECKMULTISIG</code>''' There are multiple ways of implementing a threshold ''k''-of-''n'' policy using Taproot and Tapscript:
+* '''Using a single <code>OP_CHECKSIGADD</code>-based script''' A <code>CHECKMULTISIG</code> script <code>m <pubkey_1> ... <pubkey_n> n CHECKMULTISIG</code> with witness <code>0 <signature_1> ... <signature_m></code> can be rewritten as script <code><pubkey_1> CHECKSIG <pubkey_2> CHECKSIGADD ... <pubkey_n> CHECKSIGADD m NUMEQUAL</code> with witness <code><w_n> ... <w_1></code>. Every witness element <code>w_i</code> is either a signature corresponding to <code>pubkey_i</code> or an empty vector. A similar <code>CHECKMULTISIGVERIFY</code> script can be translated to BIP342 by replacing <code>NUMEQUAL</code> with <code>NUMEQUALVERIFY</code>. This approach has very similar characteristics to the existing <code>OP_CHECKMULTISIG</code>-based scripts.
+* '''Using a ''k''-of-''k'' script for every combination''' A ''k''-of-''n'' policy can be implemented by splitting the script into several leaves of the Merkle tree, each implementing a ''k''-of-''k'' policy using <code><pubkey_1> CHECKSIGVERIFY ... <pubkey_(n-1)> CHECKSIGVERIFY <pubkey_n> CHECKSIG</code>. This may be preferable for privacy reasons over the previous approach, as it only exposes the participating public keys, but it is only more cost effective for small values of ''k'' (1-of-''n'' for any ''n'', 2-of-''n'' for ''n &ge; 6'', 3-of-''n'' for ''n &ge; 9'', ...). Furthermore, the signatures here commit to the branch used, which means signers need to be aware of which other signers will be participating, or produce signatures for each of the tree leaves.
+* '''Using an aggregated public key for every combination''' Instead of building a tree where every leaf consists of ''k'' public keys, it is possible instead build a tree where every leaf contains a single ''aggregate'' of those ''k'' keys using [https://eprint.iacr.org/2018/068 MuSig]. This approach is far more efficient, but does require a 3-round interactive signing protocol to jointly produce the (single) signature.
+* '''Native Schnorr threshold signatures''' Multisig policies can also be realized with [http://cacr.uwaterloo.ca/techreports/2001/corr2001-13.ps threshold signatures] using verifiable secret sharing. This results in outputs and inputs that are indistinguishable from single-key payments, but at the cost of needing an interactive protocol (and associated backup procedures) before determining the address to send to.</ref>
+
+===Rules for signature opcodes===
+
+The following rules apply to <code>OP_CHECKSIG</code>, <code>OP_CHECKSIGVERIFY</code>, and <code>OP_CHECKSIGADD</code>.
+
+* For <code>OP_CHECKSIGVERIFY</code> and <code>OP_CHECKSIG</code>, the public key (top element) and a signature (second to top element) are popped from the stack.
+** If fewer than 2 elements are on the stack, the script MUST fail and terminate immediately.
+* For <code>OP_CHECKSIGADD</code>, the public key (top element), a <code>CScriptNum</code> <code>n</code> (second to top element), and a signature (third to top element) are popped from the stack.
+** If fewer than 3 elements are on the stack, the script MUST fail and terminate immediately.
+** If <code>n</code> is larger than 4 bytes, the script MUST fail and terminate immediately.
+* If the public key size is zero, the script MUST fail and terminate immediately.
+* If the public key size is 32 bytes, it is considered to be a public key as described in BIP340:
+** If the signature is not the empty vector, the signature is validated against the public key (see the next subsection). Validation failure in this case immediately terminates script execution with failure.
+* If the public key size is not zero and not 32 bytes, the public key is of an ''unknown public key type''<ref>'''Unknown public key types''' allow adding new signature validation rules through softforks. A softfork could add actual signature validation which either passes or makes the script fail and terminate immediately. This way, new <code>SIGHASH</code> modes can be added, as well as [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-December/016549.html NOINPUT-tagged public keys] and a public key constant which is replaced by the taproot internal key for signature validation.</ref> and no actual signature verification is applied. During script execution of signature opcodes they behave exactly as known public key types except that signature validation is considered to be successful.
+* If the script did not fail and terminate before this step, regardless of the public key type:
+** If the signature is the empty vector:
+*** For <code>OP_CHECKSIGVERIFY</code>, the script MUST fail and terminate immediately.
+*** For <code>OP_CHECKSIG</code>, an empty vector is pushed onto the stack, and execution continues with the next opcode.
+*** For <code>OP_CHECKSIGADD</code>, a <code>CScriptNum</code> with value <code>n</code> is pushed onto the stack, and execution continues with the next opcode.
+** If the signature is not the empty vector, the opcode is counted towards the sigops budget (see further).
+*** For <code>OP_CHECKSIGVERIFY</code>, execution continues without any further changes to the stack.
+*** For <code>OP_CHECKSIG</code>, a 1-byte value <code>0x01</code> is pushed onto the stack.
+*** For <code>OP_CHECKSIGADD</code>, a <code>CScriptNum</code> with value of <code>n + 1</code> is pushed onto the stack.
+
+===Signature validation===
+
+To validate a signature ''sig'' with public key ''p'':
+* Compute the tapscript message extension ''ext'', consisting of the concatenation of:
+** ''tapleaf_hash'' (32): the tapleaf hash as defined in [[bip-0341.mediawiki#design|BIP341]]
+** ''key_version'' (1): a constant value ''0x00'' representing the current version of public keys in the tapscript signature opcode execution.
+** ''codesep_pos'' (4): the opcode position of the last executed <code>OP_CODESEPARATOR</code> before the currently executed signature opcode, with the value in little endian (or ''0xffffffff'' if none executed). The first opcode in a script has a position of 0. A multi-byte push opcode is counted as one opcode, regardless of the size of data being pushed.
+* If the ''sig'' is 64 bytes long, return ''Verify(p, hash<sub>TapSigHash</sub>(0x00 || SigMsg(0x00, 1) || ext), sig)'', where ''Verify'' is defined in [[bip-0340.mediawiki#design|BIP340]].
+* If the ''sig'' is 65 bytes long, return ''sig[64] &ne; 0x00 and Verify(p, hash<sub>TapSighash</sub>(0x00 || SigMsg(sig[64], 1) || ext), sig[0:64])''.
+* Otherwise, fail.
+
+In summary, the semantics of signature validation is identical to BIP340, except the following:
+# The signature message includes the tapscript-specific data ''key_version''.<ref>'''Why does the signature message commit to the ''key_version''?''' This is for future extensions that define unknown public key types, making sure signatures can't be moved from one key type to another.</ref>
+# The signature message commits to the executed script through the ''tapleaf_hash'' which includes the leaf version and script instead of ''scriptCode''. This implies that this commitment is unaffected by <code>OP_CODESEPARATOR</code>.
+# The signature message includes the opcode position of the last executed <code>OP_CODESEPARATOR</code>.<ref>'''Why does the signature message include the position of the last executed <code>OP_CODESEPARATOR</code>?''' This allows continuing to use <code>OP_CODESEPARATOR</code> to sign the executed path of the script. Because the <code>codeseparator_position</code> is the last input to the hash, the SHA256 midstate can be efficiently cached for multiple <code>OP_CODESEPARATOR</code>s in a single script. In contrast, the BIP143 handling of <code>OP_CODESEPARATOR</code> is to commit to the executed script only from the last executed <code>OP_CODESEPARATOR</code> onwards which requires unnecessary rehashing of the script. It should be noted that the one known <code>OP_CODESEPARATOR</code> use case of saving a second public key push in a script by sharing the first one between two code branches can be most likely expressed even cheaper by moving each branch into a separate taproot leaf.</ref>
+
+===Resource limits===
+
+In addition to changing the semantics of a number of opcodes, there are also some changes to the resource limitations:
+* '''Script size limit''' The maximum script size of 10000 bytes does not apply. Their size is only implicitly bounded by the block weight limit.<ref>'''Why is a limit on script size no longer needed?''' Since there is no <code>scriptCode</code> directly included in the signature hash (only indirectly through a precomputable tapleaf hash), the CPU time spent on a signature check is no longer proportional to the size of the script being executed.</ref>
+* '''Non-push opcodes limit''' The maximum non-push opcodes limit of 201 per script does not apply.<ref>'''Why is a limit on the number of opcodes no longer needed?''' An opcode limit only helps to the extent that it can prevent data structures from growing unboundedly during execution (both because of memory usage, and because of time that may grow in proportion to the size of those structures). The size of stack and altstack is already independently limited. By using O(1) logic for <code>OP_IF</code>, <code>OP_NOTIF</code>, <code>OP_ELSE</code>, and <code>OP_ENDIF</code> as suggested [https://bitslog.com/2017/04/17/new-quadratic-delays-in-bitcoin-scripts/ here] and implemented [https://github.com/bitcoin/bitcoin/pull/16902 here], the only other instance can be avoided as well.</ref>
+* '''Sigops limit''' The sigops in tapscripts do not count towards the block-wide limit of 80000 (weighted). Instead, there is a per-script sigops ''budget''. The budget equals 50 + the total serialized size in bytes of the transaction input's witness (including the <code>CCompactSize</code> prefix). Executing a signature opcode (<code>OP_CHECKSIG</code>, <code>OP_CHECKSIGVERIFY</code>, or <code>OP_CHECKSIGADD</code>) with a non-empty signature decrements the budget by 50. If that brings the budget below zero, the script fails immediately. Signature opcodes with unknown public key type and non-empty signature are also counted.<ref>'''The tapscript sigop limit''' The signature opcode limit protects against scripts which are slow to verify due to excessively many signature operations. In tapscript the number of signature opcodes does not count towards the BIP141 or legacy sigop limit. The old sigop limit makes transaction selection in block construction unnecessarily difficult because it is a second constraint in addition to weight. Instead, the number of tapscript signature opcodes is limited by witness weight. Additionally, the limit applies to the transaction input instead of the block and only actually executed signature opcodes are counted. Tapscript execution allows one signature opcode per 50 witness weight units plus one free signature opcode.</ref><ref>'''Parameter choice of the sigop limit''' Regular witnesses are unaffected by the limit as their weight is composed of public key and (<code>SIGHASH_ALL</code>) signature pairs with ''33 + 65'' weight units each (which includes a 1 weight unit <code>CCompactSize</code> tag). This is also the case if public keys are reused in the script because a signature's weight alone is 65 or 66 weight units. However, the limit increases the fees of abnormal scripts with duplicate signatures (and public keys) by requiring additional weight. The weight per sigop factor 50 corresponds to the ratio of BIP141 block limits: 4 mega weight units divided by 80,000 sigops. The "free" signature opcode permitted by the limit exists to account for the weight of the non-witness parts of the transaction input.</ref><ref>'''Why are only signature opcodes counted toward the budget, and not for example hashing opcodes or other expensive operations?''' It turns out that the CPU cost per witness byte for verification of a script consisting of the maximum density of signature checking opcodes (taking the 50 WU/sigop limit into account) is already very close to that of scripts packed with other opcodes, including hashing opcodes (taking the 520 byte stack element limit into account) and <code>OP_ROLL</code> (taking the 1000 stack element limit into account). That said, the construction is very flexible, and allows adding new signature opcodes like <code>CHECKSIGFROMSTACK</code> to count towards the limit through a soft fork. Even if in the future new opcodes are introduced which change normal script cost there is no need to stuff the witness with meaningless data. Instead, the taproot annex can be used to add weight to the witness without increasing the actual witness size.</ref>.
+* '''Stack + altstack element count limit''' The existing limit of 1000 elements in the stack and altstack together after every executed opcode remains. It is extended to also apply to the size of initial stack.
+* '''Stack element size limit''' The existing limit of maximum 520 bytes per stack element remains, both in the initial stack and in push opcodes.
+
+==Rationale==
+
+<references />
+
+==Examples==
+
+==Acknowledgements==
+
+This document is the result of many discussions and contains contributions by a number of people. The authors wish to thank all those who provided valuable feedback and reviews, including the participants of the [https://github.com/ajtowns/taproot-review structured reviews].
diff --git a/scripts/buildtable.pl b/scripts/buildtable.pl
index 36701a5..1edd8c0 100755
--- a/scripts/buildtable.pl
+++ b/scripts/buildtable.pl
@@ -19,6 +19,7 @@ my %MayHaveMulti = (
Author => undef,
'Comments-URI' => undef,
License => undef,
+ 'License-Code' => undef,
'Post-History' => undef,
);
my %DateField = (
@@ -33,6 +34,7 @@ my %MiscField = (
'Discussions-To' => undef,
'Post-History' => undef,
'Replaces' => undef,
+ 'Requires' => undef,
'Superseded-By' => undef,
);
@@ -52,6 +54,7 @@ my %ValidStatus = (
Final => "background-color: #cfffcf",
Active => "background-color: #cfffcf",
Replaced => "background-color: #ffcfcf",
+ Obsolete => "background-color: #ffcfcf",
);
my %ValidType = (
'Standards Track' => 'Standard',
@@ -149,9 +152,9 @@ while (++$bipnum <= $topbip) {
} elsif ($field eq 'Layer') { # BIP 123
die "Invalid layer $val in $fn" unless exists $ValidLayer{$val};
$layer = $val;
- } elsif ($field eq 'License') {
+ } elsif ($field =~ /^License(?:\-Code)?$/) {
die "Undefined license $val in $fn" unless exists $DefinedLicenses{$val};
- if (not $found{License}) {
+ if (not $found{$field}) {
die "Unacceptable license $val in $fn" unless exists $AcceptableLicenses{$val} or ($val eq 'PD' and exists $GrandfatheredPD{$bipnum});
}
} elsif ($field eq 'Comments-URI') {
diff --git a/scripts/link-format-chk.sh b/scripts/link-format-chk.sh
new file mode 100755
index 0000000..e3f0f6d
--- /dev/null
+++ b/scripts/link-format-chk.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2019 The Bitcoin Core developers
+# Distributed under the MIT software license, see the accompanying
+# file COPYING or http://www.opensource.org/licenses/mit-license.php.
+#
+# Check wrong mediawiki link format
+
+ECODE=0
+FILES=""
+for fname in $(git diff --name-only HEAD $(git merge-base HEAD master)); do
+ if [[ $fname == *.mediawiki ]]; then
+ GRES=$(grep -n '](http' $fname)
+ if [ "$GRES" != "" ]; then
+ if [ $ECODE -eq 0 ]; then
+ >&2 echo "Github Mediawiki format writes link as [URL text], not as [text](url):"
+ fi
+ ECODE=1
+ echo "- $fname:$GRES"
+ fi
+ fi
+done
+exit $ECODE