From 799656cbf7579d0d44a00ab14031e2730deaddb6 Mon Sep 17 00:00:00 2001 From: SovranoCoin Date: Thu, 27 Feb 2020 12:26:07 +0100 Subject: [PATCH] Update commit --- build-aux/m4/gmp.m4 | 16 + build-aux/m4/l_atomic.m4 | 46 + build-aux/snap/local/desktop/pivx-qt.desktop | 15 + .../local/desktop/pivx-qt_testnet.desktop | 15 + build-aux/snap/local/desktop/pivxd.desktop | 15 + .../snap/local/desktop/pivxd_testnet.desktop | 15 + .../patches/X002-fix-bdb-tmp-folder.patch | 36 + .../X003-fix-use-snap-instead-of-dirty.patch | 25 + build-aux/snap/snapcraft.yaml | 290 + contrib/cmake/FindBerkeleyDB.cmake | 146 + contrib/cmake/FindGMP.cmake | 33 + contrib/cmake/FindLibEvent.cmake | 46 + contrib/cmake/FindMiniupnp.cmake | 33 + contrib/cmake/FindQrcode.cmake | 37 + contrib/cmake/FindZMQ.cmake | 37 + contrib/debian/examples/pivx.conf | 105 + contrib/debian/pivx-qt.desktop | 13 + contrib/debian/pivx-qt.install | 6 + contrib/debian/pivx-qt.lintian-overrides | 2 + contrib/debian/pivx-qt.manpages | 1 + contrib/debian/pivx-qt.protocol | 11 + contrib/debian/pivxd.bash-completion | 2 + contrib/debian/pivxd.examples | 1 + contrib/debian/pivxd.install | 3 + contrib/debian/pivxd.lintian-overrides | 2 + contrib/debian/pivxd.manpages | 2 + contrib/debian/pivxd.postinst | 28 + contrib/debian/pivxd.postrm | 35 + contrib/debian/pivxd.service | 45 + contrib/devtools/circular-dependencies.py | 88 + contrib/devtools/clang-format-diff.py | 166 + contrib/devtools/commit-script-check.sh | 46 + contrib/devtools/copyright_header.py | 623 ++ contrib/devtools/gen-manpages.sh | 32 + contrib/devtools/git-subtree-check.sh | 95 + contrib/devtools/lint-whitespace.sh | 113 + contrib/devtools/logprint-scanner.py | 102 + contrib/devtools/optimize-pngs.py | 76 + contrib/devtools/security-check.py | 215 + contrib/devtools/test-security-check.py | 71 + contrib/filter-lcov.py | 25 + contrib/gitian-build.py | 393 + contrib/gitian-keys/README.md | 27 + contrib/gitian-keys/keys.txt | 5 + contrib/init/org.pivx.pivxd.plist | 14 + contrib/init/pivxd.conf | 63 + contrib/init/pivxd.init | 67 + contrib/init/pivxd.openrc | 92 + contrib/init/pivxd.openrcconf | 33 + contrib/init/pivxd.service | 44 + contrib/install_db4.sh | 101 + contrib/macdeploy/extract-osx-sdk.sh | 34 + contrib/pivx-cli.bash-completion | 154 + contrib/pivx-qt.pro | 663 ++ contrib/pivx-tx.bash-completion | 57 + contrib/pivxd.bash-completion | 56 + contrib/rpm/README.md | 185 + contrib/rpm/pivx.fc | 8 + contrib/rpm/pivx.if | 157 + contrib/rpm/pivx.spec | 442 + contrib/rpm/pivx.te | 81 + contrib/valgrind.supp | 43 + contrib/windeploy/detached-sig-create.sh | 35 + depends/packages/gmp.mk | 24 + depends/patches/qt/fix_configure_mac.patch | 50 + depends/patches/qt/fix_no_printer.patch | 19 + depends/patches/qt/fix_rcc_determinism.patch | 15 + depends/patches/qt/fix_riscv64_arch.patch | 14 + ...0x_powerpc_mips_mipsel_architectures.patch | 17 + depends/patches/qt/xkb-default.patch | 26 + .../0001-fix-build-with-older-mingw64.patch | 30 + .../0002-disable-pthread_set_name_np.patch | 35 + libbitcoinconsensus.pc.in | 11 + share/pixmaps/pivx-bc.ico | Bin 0 -> 62716 bytes share/pixmaps/pivx.ico | Bin 0 -> 239721 bytes share/pixmaps/pivx128.png | Bin 0 -> 7704 bytes share/pixmaps/pivx128.xpm | 258 + share/pixmaps/pivx16.png | Bin 0 -> 697 bytes share/pixmaps/pivx16.xpm | 149 + share/pixmaps/pivx256.png | Bin 0 -> 14562 bytes share/pixmaps/pivx256.xpm | 397 + share/pixmaps/pivx32.png | Bin 0 -> 1572 bytes share/pixmaps/pivx32.xpm | 182 + share/pixmaps/pivx64.png | Bin 0 -> 2538 bytes share/pixmaps/pivx64.xpm | 148 + share/rpcauth/README.md | 14 + share/rpcauth/rpcauth.py | 47 + src/Makefile.leveldb.include | 149 + src/addressbook.cpp | 38 + src/addressbook.h | 46 + src/blocksignature.cpp | 98 + src/blocksignature.h | 16 + src/compat/byteswap.h | 66 + src/compat/endian.h | 241 + src/consensus/merkle.cpp | 172 + src/consensus/merkle.h | 32 + src/crypto/chacha20.cpp | 128 + src/crypto/chacha20.h | 26 + src/guiinterface.h | 126 + src/httprpc.cpp | 198 + src/httprpc.h | 37 + src/httpserver.cpp | 669 ++ src/httpserver.h | 147 + src/invalid.cpp | 90 + src/invalid.h | 25 + src/invalid_outpoints.json.h | 6796 ++++++++++++ src/invalid_serials.json.h | 1192 +++ src/leveldb/.gitignore | 13 + src/leveldb/.travis.yml | 13 + src/leveldb/db/fault_injection_test.cc | 554 + src/leveldb/db/leveldbutil.cc | 65 + src/leveldb/db/recovery_test.cc | 324 + src/leveldb/doc/impl.md | 170 + src/leveldb/doc/index.md | 523 + src/leveldb/doc/log_format.md | 75 + src/leveldb/doc/table_format.md | 107 + src/leveldb/port/port_posix_sse.cc | 110 + src/leveldb/util/env_posix_test.cc | 66 + src/leveldb/util/env_posix_test_helper.h | 28 + .../CoinRandomnessSchnorrSignature.cpp | 64 + .../CoinRandomnessSchnorrSignature.h | 56 + src/libzerocoin/SpendType.h | 19 + src/libzerocoin/bignum.cpp | 63 + src/libzerocoin/bignum_gmp.cpp | 351 + src/libzerocoin/bignum_openssl.cpp | 508 + src/messagesigner.cpp | 180 + src/messagesigner.h | 91 + src/pairresult.h | 20 + src/pivx-cli-res.rc | 35 + src/pivx-cli.cpp | 320 + src/pivx-tx-res.rc | 35 + src/pivx-tx.cpp | 640 ++ src/pivxd-res.rc | 35 + src/pivxd.cpp | 168 + src/qt/CMakeLists.txt | 254 + src/qt/bantablemodel.cpp | 185 + src/qt/bantablemodel.h | 74 + src/qt/forms/governancepage.ui | 340 + src/qt/forms/zpivcontroldialog.ui | 431 + src/qt/governancepage.cpp | 148 + src/qt/governancepage.h | 70 + src/qt/locale/pivx_bg.ts | 4195 ++++++++ src/qt/locale/pivx_ca.ts | 2129 ++++ src/qt/locale/pivx_cs.ts | 1909 ++++ src/qt/locale/pivx_da.ts | 4834 +++++++++ src/qt/locale/pivx_de.ts | 5837 ++++++++++ src/qt/locale/pivx_en.ts | 9380 +++++++++++++++++ src/qt/locale/pivx_en_GB.ts | 4257 ++++++++ src/qt/locale/pivx_en_US.ts | 5149 +++++++++ src/qt/locale/pivx_eo.ts | 1903 ++++ src/qt/locale/pivx_es.ts | 7509 +++++++++++++ src/qt/locale/pivx_es_ES.ts | 565 + src/qt/locale/pivx_fi.ts | 2041 ++++ src/qt/locale/pivx_fr_FR.ts | 7333 +++++++++++++ src/qt/locale/pivx_hi_IN.ts | 421 + src/qt/locale/pivx_hr.ts | 2719 +++++ src/qt/locale/pivx_hr_HR.ts | 4196 ++++++++ src/qt/locale/pivx_it.ts | 7581 +++++++++++++ src/qt/locale/pivx_ja.ts | 357 + src/qt/locale/pivx_ko_KR.ts | 4913 +++++++++ src/qt/locale/pivx_lt_LT.ts | 2327 ++++ src/qt/locale/pivx_nl.ts | 7579 +++++++++++++ src/qt/locale/pivx_pl.ts | 4726 +++++++++ src/qt/locale/pivx_pt.ts | 1025 ++ src/qt/locale/pivx_pt_BR.ts | 4189 ++++++++ src/qt/locale/pivx_ro_RO.ts | 297 + src/qt/locale/pivx_ru.ts | 7503 +++++++++++++ src/qt/locale/pivx_sk.ts | 961 ++ src/qt/locale/pivx_sv.ts | 5538 ++++++++++ src/qt/locale/pivx_tr.ts | 7574 +++++++++++++ src/qt/locale/pivx_uk.ts | 449 + src/qt/locale/pivx_vi.ts | 313 + src/qt/locale/pivx_zh_CN.ts | 7536 +++++++++++++ src/qt/locale/pivx_zh_TW.ts | 741 ++ src/qt/pivx.cpp | 695 ++ src/qt/pivx.qrc | 324 + src/qt/pivx/addnewaddressdialog.cpp | 36 + src/qt/pivx/addnewaddressdialog.h | 26 + src/qt/pivx/addnewcontactdialog.cpp | 76 + src/qt/pivx/addnewcontactdialog.h | 36 + src/qt/pivx/addresseswidget.cpp | 268 + src/qt/pivx/addresseswidget.h | 65 + src/qt/pivx/addressfilterproxymodel.cpp | 41 + src/qt/pivx/addressfilterproxymodel.h | 47 + src/qt/pivx/addressholder.cpp | 19 + src/qt/pivx/addressholder.h | 41 + src/qt/pivx/addresslabelrow.cpp | 48 + src/qt/pivx/addresslabelrow.h | 34 + src/qt/pivx/coincontrolpivwidget.cpp | 89 + src/qt/pivx/coincontrolpivwidget.h | 26 + src/qt/pivx/coldstakingmodel.cpp | 183 + src/qt/pivx/coldstakingmodel.h | 92 + src/qt/pivx/coldstakingwidget.cpp | 755 ++ src/qt/pivx/coldstakingwidget.h | 119 + src/qt/pivx/contactdropdownrow.cpp | 33 + src/qt/pivx/contactdropdownrow.h | 30 + src/qt/pivx/contactsdropdown.cpp | 127 + src/qt/pivx/contactsdropdown.h | 49 + src/qt/pivx/csrow.cpp | 58 + src/qt/pivx/csrow.h | 35 + src/qt/pivx/dashboardwidget.cpp | 842 ++ src/qt/pivx/dashboardwidget.h | 189 + src/qt/pivx/defaultdialog.cpp | 56 + src/qt/pivx/defaultdialog.h | 29 + src/qt/pivx/denomgenerationdialog.cpp | 71 + src/qt/pivx/denomgenerationdialog.h | 26 + src/qt/pivx/expandablebutton.cpp | 105 + src/qt/pivx/expandablebutton.h | 73 + src/qt/pivx/forms/addnewaddressdialog.ui | 206 + src/qt/pivx/forms/addnewcontactdialog.ui | 279 + src/qt/pivx/forms/addresseswidget.ui | 433 + src/qt/pivx/forms/addresslabelrow.ui | 140 + src/qt/pivx/forms/coincontrolpivwidget.ui | 536 + src/qt/pivx/forms/coldstakingwidget.ui | 817 ++ src/qt/pivx/forms/contactdropdownrow.ui | 118 + src/qt/pivx/forms/csrow.ui | 209 + src/qt/pivx/forms/dashboardwidget.ui | 1369 +++ src/qt/pivx/forms/defaultdialog.ui | 268 + src/qt/pivx/forms/denomgenerationdialog.ui | 350 + src/qt/pivx/forms/expandablebutton.ui | 82 + src/qt/pivx/forms/loadingdialog.ui | 173 + src/qt/pivx/forms/lockunlock.ui | 203 + src/qt/pivx/forms/masternodeswidget.ui | 388 + src/qt/pivx/forms/masternodewizarddialog.ui | 1093 ++ src/qt/pivx/forms/mninfodialog.ui | 625 ++ src/qt/pivx/forms/mnrow.ui | 169 + src/qt/pivx/forms/myaddressrow.ui | 74 + src/qt/pivx/forms/navmenuwidget.ui | 401 + src/qt/pivx/forms/optionbutton.ui | 184 + src/qt/pivx/forms/privacywidget.ui | 804 ++ src/qt/pivx/forms/receivedialog.ui | 294 + src/qt/pivx/forms/receivewidget.ui | 407 + src/qt/pivx/forms/requestdialog.ui | 689 ++ src/qt/pivx/forms/send.ui | 809 ++ src/qt/pivx/forms/sendchangeaddressdialog.ui | 278 + src/qt/pivx/forms/sendconfirmdialog.ui | 959 ++ src/qt/pivx/forms/sendcustomfeedialog.ui | 377 + src/qt/pivx/forms/sendmultirow.ui | 317 + src/qt/pivx/forms/snackbar.ui | 119 + src/qt/pivx/forms/splash.ui | 266 + src/qt/pivx/forms/tooltipmenu.ui | 181 + src/qt/pivx/forms/topbar.ui | 713 ++ src/qt/pivx/forms/txrow.ui | 180 + src/qt/pivx/forms/walletpassworddialog.ui | 418 + src/qt/pivx/forms/welcomecontentwidget.ui | 1190 +++ src/qt/pivx/furabstractlistitemdelegate.cpp | 42 + src/qt/pivx/furabstractlistitemdelegate.h | 40 + src/qt/pivx/furlistrow.h | 31 + src/qt/pivx/guitransactionsutils.cpp | 80 + src/qt/pivx/guitransactionsutils.h | 37 + src/qt/pivx/loadingdialog.cpp | 95 + src/qt/pivx/loadingdialog.h | 58 + src/qt/pivx/lockunlock.cpp | 92 + src/qt/pivx/lockunlock.h | 49 + src/qt/pivx/masternodeswidget.cpp | 458 + src/qt/pivx/masternodeswidget.h | 70 + src/qt/pivx/masternodewizarddialog.cpp | 399 + src/qt/pivx/masternodewizarddialog.h | 52 + src/qt/pivx/mninfodialog.cpp | 66 + src/qt/pivx/mninfodialog.h | 43 + src/qt/pivx/mnmodel.cpp | 172 + src/qt/pivx/mnmodel.h | 60 + src/qt/pivx/mnrow.cpp | 33 + src/qt/pivx/mnrow.h | 30 + src/qt/pivx/myaddressrow.cpp | 31 + src/qt/pivx/myaddressrow.h | 28 + src/qt/pivx/navmenuwidget.cpp | 189 + src/qt/pivx/navmenuwidget.h | 52 + src/qt/pivx/optionbutton.cpp | 71 + src/qt/pivx/optionbutton.h | 39 + src/qt/pivx/pfborderimage.h | 55 + src/qt/pivx/pivxgui.cpp | 670 ++ src/qt/pivx/pivxgui.h | 189 + src/qt/pivx/privacywidget.cpp | 449 + src/qt/pivx/privacywidget.h | 64 + src/qt/pivx/prunnable.h | 14 + src/qt/pivx/pwidget.cpp | 127 + src/qt/pivx/pwidget.h | 82 + src/qt/pivx/qtutils.cpp | 259 + src/qt/pivx/qtutils.h | 72 + src/qt/pivx/receivedialog.cpp | 81 + src/qt/pivx/receivedialog.h | 35 + src/qt/pivx/receivewidget.cpp | 277 + src/qt/pivx/receivewidget.h | 71 + src/qt/pivx/requestdialog.cpp | 197 + src/qt/pivx/requestdialog.h | 53 + src/qt/pivx/res/css/style_dark.css | 3287 ++++++ src/qt/pivx/res/css/style_light.css | 3284 ++++++ src/qt/pivx/res/img/ani-loading-dark.gif | Bin 0 -> 206152 bytes src/qt/pivx/res/img/ani-loading.gif | Bin 0 -> 203759 bytes src/qt/pivx/res/img/bg-dashboard-banner.png | Bin 0 -> 144661 bytes src/qt/pivx/res/img/bg-multi-number-dark.svg | 10 + src/qt/pivx/res/img/bg-multi-number.svg | 10 + src/qt/pivx/res/img/bg-splash.png | Bin 0 -> 239635 bytes src/qt/pivx/res/img/bg-splash.svg | 15 + src/qt/pivx/res/img/bg-welcome-container.jpg | Bin 0 -> 63089 bytes src/qt/pivx/res/img/bg-welcome-container.png | Bin 0 -> 202707 bytes src/qt/pivx/res/img/bg-welcome-container.svg | 17 + .../pivx/res/img/bg-welcome-container@2x.png | Bin 0 -> 763729 bytes .../pivx/res/img/bg-welcome-container@3x.png | Bin 0 -> 1313130 bytes src/qt/pivx/res/img/bg-welcome.jpg | Bin 0 -> 265776 bytes src/qt/pivx/res/img/bg-welcome.png | Bin 0 -> 348030 bytes src/qt/pivx/res/img/bg-welcome.svg | 18 + src/qt/pivx/res/img/bg-welcome@2x.jpg | Bin 0 -> 685237 bytes src/qt/pivx/res/img/bg-welcome@3x.jpg | Bin 0 -> 1233291 bytes src/qt/pivx/res/img/btn-radio-active.svg | 10 + src/qt/pivx/res/img/btn-radio-off.svg | 10 + .../ic-transaction-cs-contract-inactive.svg | 41 + .../img/dark/ic-transaction-cs-contract.svg | 41 + .../img/dark/ic-transaction-mint-inactive.svg | 15 + .../pivx/res/img/dark/ic-transaction-mint.svg | 15 + .../dark/ic-transaction-received-inactive.svg | 14 + .../res/img/dark/ic-transaction-received.svg | 14 + .../img/dark/ic-transaction-sent-inactive.svg | 16 + .../pivx/res/img/dark/ic-transaction-sent.svg | 16 + ...c-transaction-stake-delegated-inactive.svg | 42 + .../dark/ic-transaction-stake-delegated.svg | 42 + .../ic-transaction-stake-hot-inactive.svg | 34 + .../res/img/dark/ic-transaction-stake-hot.svg | 34 + .../dark/ic-transaction-staked-inactive.svg | 11 + .../res/img/dark/ic-transaction-staked.svg | 11 + .../res/img/dark/ic-transaction-warning.svg | 14 + src/qt/pivx/res/img/ic-add-label.svg | 13 + src/qt/pivx/res/img/ic-add-liliac.svg | 12 + src/qt/pivx/res/img/ic-add-purple.svg | 12 + src/qt/pivx/res/img/ic-add.svg | 9 + src/qt/pivx/res/img/ic-address-book-grey.svg | 12 + src/qt/pivx/res/img/ic-address-book-white.svg | 12 + src/qt/pivx/res/img/ic-address-book.svg | 14 + src/qt/pivx/res/img/ic-address-send-white.svg | 12 + src/qt/pivx/res/img/ic-address-send.svg | 12 + .../res/img/ic-arrow-drop-down-purple.svg | 14 + .../pivx/res/img/ic-arrow-drop-down-white.svg | 14 + src/qt/pivx/res/img/ic-arrow-drop-down.svg | 14 + .../pivx/res/img/ic-arrow-drop-up-purple.svg | 13 + .../pivx/res/img/ic-arrow-drop-up-white.svg | 13 + src/qt/pivx/res/img/ic-arrow-drop-up.svg | 13 + .../pivx/res/img/ic-arrow-drop-white-down.svg | 14 + src/qt/pivx/res/img/ic-arrow-left-white.svg | 15 + src/qt/pivx/res/img/ic-arrow-left.svg | 15 + src/qt/pivx/res/img/ic-arrow-purple-down.svg | 14 + src/qt/pivx/res/img/ic-arrow-right-white.svg | 13 + src/qt/pivx/res/img/ic-arrow-right.svg | 13 + src/qt/pivx/res/img/ic-arrow-white-left.svg | 9 + src/qt/pivx/res/img/ic-arrow-white-right.svg | 13 + src/qt/pivx/res/img/ic-check-active.svg | 13 + .../pivx/res/img/ic-check-box-dark-active.svg | 13 + .../res/img/ic-check-box-indeterminate.svg | 14 + .../img/ic-check-box-liliac-indeterminate.svg | 14 + src/qt/pivx/res/img/ic-check-box.svg | 11 + .../res/img/ic-check-cold-staking-enabled.svg | 42 + .../res/img/ic-check-cold-staking-off.svg | 26 + src/qt/pivx/res/img/ic-check-cold-staking.svg | 26 + src/qt/pivx/res/img/ic-check-connect-off.svg | 24 + src/qt/pivx/res/img/ic-check-connect.svg | 22 + src/qt/pivx/res/img/ic-check-dark.svg | 9 + src/qt/pivx/res/img/ic-check-faq.svg | 9 + .../res/img/ic-check-liliac-indeterminate.svg | 14 + src/qt/pivx/res/img/ic-check-liliac-on.svg | 13 + src/qt/pivx/res/img/ic-check-locked-off.svg | 9 + src/qt/pivx/res/img/ic-check-locked.svg | 9 + src/qt/pivx/res/img/ic-check-mint-off.svg | 13 + src/qt/pivx/res/img/ic-check-mint.svg | 13 + src/qt/pivx/res/img/ic-check-peers-off.svg | 9 + src/qt/pivx/res/img/ic-check-peers.svg | 9 + src/qt/pivx/res/img/ic-check-staking-off.svg | 9 + src/qt/pivx/res/img/ic-check-staking.svg | 9 + src/qt/pivx/res/img/ic-check-sync-off.svg | 21 + src/qt/pivx/res/img/ic-check-sync.png | Bin 0 -> 466 bytes src/qt/pivx/res/img/ic-check-sync.svg | 12 + src/qt/pivx/res/img/ic-check-theme-dark.svg | 18 + src/qt/pivx/res/img/ic-check-theme-light.svg | 19 + src/qt/pivx/res/img/ic-check-white.svg | 9 + src/qt/pivx/res/img/ic-check.svg | 11 + src/qt/pivx/res/img/ic-chevron-left.svg | 13 + src/qt/pivx/res/img/ic-chevron-right.svg | 13 + src/qt/pivx/res/img/ic-clear-liliac.svg | 12 + src/qt/pivx/res/img/ic-clear-purple.svg | 12 + src/qt/pivx/res/img/ic-close-white.svg | 14 + src/qt/pivx/res/img/ic-close.svg | 9 + src/qt/pivx/res/img/ic-coin-piv.svg | 14 + src/qt/pivx/res/img/ic-coin-zpiv.png | Bin 0 -> 986 bytes src/qt/pivx/res/img/ic-coin-zpiv.svg | 14 + src/qt/pivx/res/img/ic-combo-box.svg | 24 + src/qt/pivx/res/img/ic-connect.svg | 22 + .../res/img/ic-contact-arrow-down-white.svg | 14 + src/qt/pivx/res/img/ic-contact-arrow-down.svg | 14 + src/qt/pivx/res/img/ic-copy-big-white.svg | 16 + src/qt/pivx/res/img/ic-copy-big.svg | 16 + src/qt/pivx/res/img/ic-copy-liliac.svg | 17 + src/qt/pivx/res/img/ic-copy.svg | 17 + src/qt/pivx/res/img/ic-exit.svg | 16 + src/qt/pivx/res/img/ic-expand.svg | 16 + src/qt/pivx/res/img/ic-folder.svg | 12 + src/qt/pivx/res/img/ic-label-liliac.svg | 14 + src/qt/pivx/res/img/ic-label.svg | 14 + src/qt/pivx/res/img/ic-menu-hover.svg | 15 + src/qt/pivx/res/img/ic-mint.svg | 13 + src/qt/pivx/res/img/ic-nav-address-active.svg | 12 + src/qt/pivx/res/img/ic-nav-address-hover.svg | 12 + src/qt/pivx/res/img/ic-nav-address.svg | 12 + .../res/img/ic-nav-cold-staking-active.svg | 21 + src/qt/pivx/res/img/ic-nav-cold-staking.svg | 21 + .../pivx/res/img/ic-nav-dashboard-active.svg | 19 + .../pivx/res/img/ic-nav-dashboard-hover.svg | 11 + src/qt/pivx/res/img/ic-nav-dashboard.svg | 19 + src/qt/pivx/res/img/ic-nav-master-active.svg | 12 + src/qt/pivx/res/img/ic-nav-master-hover.svg | 12 + src/qt/pivx/res/img/ic-nav-master.svg | 12 + src/qt/pivx/res/img/ic-nav-privacy-active.svg | 12 + src/qt/pivx/res/img/ic-nav-privacy-hover.svg | 12 + src/qt/pivx/res/img/ic-nav-privacy.svg | 12 + src/qt/pivx/res/img/ic-nav-receive-active.svg | 17 + src/qt/pivx/res/img/ic-nav-receive-hover.svg | 10 + src/qt/pivx/res/img/ic-nav-receive.svg | 17 + src/qt/pivx/res/img/ic-nav-send-active.svg | 17 + src/qt/pivx/res/img/ic-nav-send-hover.svg | 10 + src/qt/pivx/res/img/ic-nav-send.svg | 17 + .../pivx/res/img/ic-nav-settings-active.svg | 18 + src/qt/pivx/res/img/ic-nav-settings-hover.svg | 10 + src/qt/pivx/res/img/ic-nav-settings.svg | 16 + src/qt/pivx/res/img/ic-pending.svg | 16 + src/qt/pivx/res/img/ic-radio-liliac-on.svg | 10 + src/qt/pivx/res/img/ic-receive-off.svg | 14 + src/qt/pivx/res/img/ic-receive-on.svg | 12 + src/qt/pivx/res/img/ic-received.svg | 12 + src/qt/pivx/res/img/ic-send.svg | 14 + src/qt/pivx/res/img/ic-submenu-lock.svg | 12 + src/qt/pivx/res/img/ic-submenu-staking.svg | 14 + src/qt/pivx/res/img/ic-submenu-unlock.svg | 11 + src/qt/pivx/res/img/ic-switch-liliac-on.svg | 20 + src/qt/pivx/res/img/ic-switch-off.svg | 20 + src/qt/pivx/res/img/ic-switch-on.svg | 20 + .../ic-transaction-cs-contract-inactive.svg | 41 + .../res/img/ic-transaction-cs-contract.svg | 41 + .../res/img/ic-transaction-mint-inactive.svg | 13 + src/qt/pivx/res/img/ic-transaction-mint.svg | 13 + .../img/ic-transaction-received-inactive.svg | 12 + .../pivx/res/img/ic-transaction-received.svg | 12 + .../res/img/ic-transaction-sent-inactive.svg | 14 + src/qt/pivx/res/img/ic-transaction-sent.svg | 14 + ...c-transaction-stake-delegated-inactive.svg | 42 + .../img/ic-transaction-stake-delegated.svg | 42 + .../img/ic-transaction-stake-hot-inactive.svg | 34 + .../pivx/res/img/ic-transaction-stake-hot.svg | 34 + .../img/ic-transaction-staked-inactive.svg | 9 + src/qt/pivx/res/img/ic-transaction-staked.svg | 9 + .../pivx/res/img/ic-transaction-warning.svg | 14 + src/qt/pivx/res/img/ic-unlock-staking.svg | 11 + src/qt/pivx/res/img/ic-update-liliac.svg | 12 + src/qt/pivx/res/img/ic-update.svg | 12 + .../pivx/res/img/ic-wallet-status-locked.svg | 9 + .../pivx/res/img/ic-wallet-status-staking.svg | 11 + .../res/img/ic-wallet-status-unlocked.svg | 9 + .../pivx/res/img/ic-watch-password-white.svg | 14 + src/qt/pivx/res/img/ic-watch-password.svg | 14 + src/qt/pivx/res/img/img-dashboard-banner.jpg | Bin 0 -> 92635 bytes src/qt/pivx/res/img/img-empty-contacts.svg | 25 + .../pivx/res/img/img-empty-dark-contacts.svg | 25 + src/qt/pivx/res/img/img-empty-dark-error.svg | 23 + .../res/img/img-empty-dark-masternode.svg | 24 + .../pivx/res/img/img-empty-dark-multisend.svg | 29 + src/qt/pivx/res/img/img-empty-dark-peers.svg | 22 + .../res/img/img-empty-dark-staking-off.svg | 28 + .../res/img/img-empty-dark-staking-on.svg | 21 + .../res/img/img-empty-dark-transactions.svg | 27 + src/qt/pivx/res/img/img-empty-error.svg | 23 + src/qt/pivx/res/img/img-empty-masternode.svg | 24 + src/qt/pivx/res/img/img-empty-multisend.svg | 29 + src/qt/pivx/res/img/img-empty-peers.svg | 22 + .../pivx/res/img/img-empty-privacy-dark.svg | 25 + src/qt/pivx/res/img/img-empty-privacy.svg | 25 + src/qt/pivx/res/img/img-empty-staking-off.svg | 30 + src/qt/pivx/res/img/img-empty-staking-on.svg | 21 + .../pivx/res/img/img-empty-transactions.svg | 27 + src/qt/pivx/res/img/img-logo-pivx.png | Bin 0 -> 8967 bytes src/qt/pivx/res/img/img-logo-pivx.svg | 21 + src/qt/pivx/res/img/img-logo-pivx@2x.png | Bin 0 -> 19730 bytes src/qt/pivx/res/img/img-logo-pivx@3x.png | Bin 0 -> 37271 bytes src/qt/pivx/res/img/img-nav-logo-pivx.png | Bin 0 -> 1681 bytes src/qt/pivx/res/img/img-nav-logo.png | Bin 0 -> 1681 bytes src/qt/pivx/res/img/img-nav-logo.svg | 13 + src/qt/pivx/res/img/img-qr-test-big.png | Bin 0 -> 9126 bytes src/qt/pivx/res/img/img-qr-test.png | Bin 0 -> 5662 bytes src/qt/pivx/res/img/img-qr.svg | 40 + src/qt/pivx/res/img/img-welcome-step1.png | Bin 0 -> 10221 bytes src/qt/pivx/res/img/img-welcome-step2.png | Bin 0 -> 9010 bytes src/qt/pivx/res/img/img-welcome-step3.png | Bin 0 -> 8977 bytes src/qt/pivx/res/img/img-welcome-step4.png | Bin 0 -> 12861 bytes src/qt/pivx/send.cpp | 798 ++ src/qt/pivx/send.h | 100 + src/qt/pivx/sendchangeaddressdialog.cpp | 63 + src/qt/pivx/sendchangeaddressdialog.h | 33 + src/qt/pivx/sendconfirmdialog.cpp | 228 + src/qt/pivx/sendconfirmdialog.h | 58 + src/qt/pivx/sendcustomfeedialog.cpp | 126 + src/qt/pivx/sendcustomfeedialog.h | 41 + src/qt/pivx/sendmultirow.cpp | 292 + src/qt/pivx/sendmultirow.h | 95 + .../settings/forms/settingsbackupwallet.ui | 322 + .../settings/forms/settingsbittoolwidget.ui | 934 ++ .../settings/forms/settingsconsolewidget.ui | 231 + .../forms/settingsdisplayoptionswidget.ui | 444 + .../pivx/settings/forms/settingsfaqwidget.ui | 1630 +++ .../forms/settingsinformationwidget.ui | 680 ++ .../forms/settingsmainoptionswidget.ui | 461 + .../settings/forms/settingsmultisenddialog.ui | 433 + .../settings/forms/settingsmultisendwidget.ui | 497 + .../forms/settingssignmessagewidgets.ui | 532 + .../forms/settingswalletoptionswidget.ui | 511 + .../forms/settingswalletrepairwidget.ui | 611 ++ src/qt/pivx/settings/forms/settingswidget.ui | 905 ++ src/qt/pivx/settings/settingsbackupwallet.cpp | 102 + src/qt/pivx/settings/settingsbackupwallet.h | 33 + .../pivx/settings/settingsbittoolwidget.cpp | 344 + src/qt/pivx/settings/settingsbittoolwidget.h | 47 + .../pivx/settings/settingsconsolewidget.cpp | 540 + src/qt/pivx/settings/settingsconsolewidget.h | 81 + .../settings/settingsdisplayoptionswidget.cpp | 153 + .../settings/settingsdisplayoptionswidget.h | 35 + src/qt/pivx/settings/settingsfaqwidget.cpp | 194 + src/qt/pivx/settings/settingsfaqwidget.h | 45 + .../settings/settingsinformationwidget.cpp | 166 + .../pivx/settings/settingsinformationwidget.h | 36 + .../settings/settingsmainoptionswidget.cpp | 125 + .../pivx/settings/settingsmainoptionswidget.h | 37 + .../pivx/settings/settingsmultisenddialog.cpp | 76 + .../pivx/settings/settingsmultisenddialog.h | 31 + .../pivx/settings/settingsmultisendwidget.cpp | 347 + .../pivx/settings/settingsmultisendwidget.h | 67 + .../pivx/settings/settingsnetworkwidget.cpp | 37 + src/qt/pivx/settings/settingsnetworkwidget.h | 30 + .../settings/settingssignmessagewidgets.cpp | 322 + .../settings/settingssignmessagewidgets.h | 46 + .../settings/settingswalletoptionswidget.cpp | 103 + .../settings/settingswalletoptionswidget.h | 32 + .../settings/settingswalletrepairwidget.cpp | 166 + .../settings/settingswalletrepairwidget.h | 43 + src/qt/pivx/settings/settingswidget.cpp | 427 + src/qt/pivx/settings/settingswidget.h | 101 + src/qt/pivx/snackbar.cpp | 58 + src/qt/pivx/snackbar.h | 35 + src/qt/pivx/splash.cpp | 109 + src/qt/pivx/splash.h | 43 + src/qt/pivx/tooltipmenu.cpp | 86 + src/qt/pivx/tooltipmenu.h | 60 + src/qt/pivx/topbar.cpp | 578 + src/qt/pivx/topbar.h | 78 + src/qt/pivx/txrow.cpp | 133 + src/qt/pivx/txrow.h | 38 + src/qt/pivx/txviewholder.cpp | 55 + src/qt/pivx/txviewholder.h | 48 + src/qt/pivx/walletpassworddialog.cpp | 112 + src/qt/pivx/walletpassworddialog.h | 31 + src/qt/pivx/welcomecontentwidget.cpp | 317 + src/qt/pivx/welcomecontentwidget.h | 52 + src/qt/pivx_locale.qrc | 37 + src/qt/pivxstrings.cpp | 508 + src/qt/proposalframe.cpp | 323 + src/qt/proposalframe.h | 54 + src/qt/res/icons/abstainvote.png | Bin 0 -> 413 bytes src/qt/res/icons/bitcoin_regtest.png | Bin 0 -> 16356 bytes src/qt/res/icons/governance.png | Bin 0 -> 1196 bytes src/qt/res/icons/governance_dark.png | Bin 0 -> 1202 bytes src/qt/res/icons/ic-transaction-mint.png | Bin 0 -> 795 bytes src/qt/res/icons/ic-transaction-mint.svg | 13 + src/qt/res/icons/ic-transaction-received.png | Bin 0 -> 386 bytes src/qt/res/icons/ic-transaction-received.svg | 12 + src/qt/res/icons/ic-transaction-sent.png | Bin 0 -> 802 bytes src/qt/res/icons/ic-transaction-sent.svg | 14 + src/qt/res/icons/ic-transaction-staked.png | Bin 0 -> 335 bytes src/qt/res/icons/ic-transaction-staked.svg | 9 + src/qt/res/icons/novote.png | Bin 0 -> 529 bytes src/qt/res/icons/onion.png | Bin 0 -> 2526 bytes src/qt/res/icons/receive_dark.png | Bin 0 -> 1774 bytes src/qt/res/icons/send_dark.png | Bin 0 -> 1808 bytes src/qt/res/icons/transaction0_dark.png | Bin 0 -> 193 bytes src/qt/res/icons/unit_mpivx.png | Bin 0 -> 333 bytes src/qt/res/icons/unit_pivx.png | Bin 0 -> 275 bytes src/qt/res/icons/unit_tmpivx.png | Bin 0 -> 359 bytes src/qt/res/icons/unit_tpivx.png | Bin 0 -> 338 bytes src/qt/res/icons/unit_tupivx.png | Bin 0 -> 364 bytes src/qt/res/icons/unit_upivx.png | Bin 0 -> 250 bytes src/qt/res/icons/yesvote.png | Bin 0 -> 623 bytes src/qt/res/images/pivx_logo_horizontal.png | Bin 0 -> 8545 bytes src/qt/res/images/splash_regtest.png | Bin 0 -> 30754 bytes src/qt/res/pivx-qt-res.rc | 38 + src/qt/zpivcontroldialog.cpp | 243 + src/qt/zpivcontroldialog.h | 65 + src/reverselock.h | 35 + src/rpc/blockchain.cpp | 1689 +++ src/rpc/budget.cpp | 947 ++ src/rpc/client.cpp | 235 + src/rpc/client.h | 18 + src/rpc/masternode.cpp | 964 ++ src/rpc/mining.cpp | 777 ++ src/rpc/misc.cpp | 632 ++ src/rpc/net.cpp | 577 + src/rpc/protocol.cpp | 128 + src/rpc/protocol.h | 92 + src/rpc/rawtransaction.cpp | 1076 ++ src/rpc/server.cpp | 677 ++ src/rpc/server.h | 368 + src/scheduler.cpp | 139 + src/scheduler.h | 84 + src/secp256k1/contrib/lax_der_parsing.c | 150 + src/secp256k1/contrib/lax_der_parsing.h | 91 + .../contrib/lax_der_privatekey_parsing.c | 113 + .../contrib/lax_der_privatekey_parsing.h | 90 + src/secp256k1/include/secp256k1_ecdh.h | 55 + src/secp256k1/include/secp256k1_recovery.h | 110 + src/secp256k1/sage/group_prover.sage | 322 + src/secp256k1/sage/secp256k1.sage | 306 + src/secp256k1/sage/weierstrass_prover.sage | 264 + src/secp256k1/src/asm/field_10x26_arm.s | 919 ++ src/secp256k1/src/basic-config.h | 33 + src/secp256k1/src/bench.h | 82 + src/secp256k1/src/bench_ecdh.c | 54 + src/secp256k1/src/bench_ecmult.c | 196 + src/secp256k1/src/bench_internal.c | 367 + src/secp256k1/src/bench_recover.c | 60 + src/secp256k1/src/ecmult_const.h | 17 + src/secp256k1/src/ecmult_const_impl.h | 257 + src/secp256k1/src/gen_context.c | 74 + src/secp256k1/src/hash.h | 41 + src/secp256k1/src/hash_impl.h | 282 + .../java/org/bitcoin/NativeSecp256k1Test.java | 226 + .../java/org/bitcoin/NativeSecp256k1Util.java | 45 + .../java/org/bitcoin/Secp256k1Context.java | 51 + .../src/java/org_bitcoin_Secp256k1Context.c | 15 + .../src/java/org_bitcoin_Secp256k1Context.h | 22 + .../src/modules/ecdh/Makefile.am.include | 8 + src/secp256k1/src/modules/ecdh/main_impl.h | 67 + src/secp256k1/src/modules/ecdh/tests_impl.h | 132 + .../src/modules/recovery/Makefile.am.include | 8 + .../src/modules/recovery/main_impl.h | 193 + .../src/modules/recovery/tests_impl.h | 393 + src/secp256k1/src/scalar_low.h | 15 + src/secp256k1/src/scalar_low_impl.h | 114 + src/secp256k1/src/scratch.h | 39 + src/secp256k1/src/scratch_impl.h | 86 + src/secp256k1/src/tests_exhaustive.c | 511 + src/sporkid.h | 41 + src/stakeinput.cpp | 289 + src/stakeinput.h | 104 + src/support/cleanse.cpp | 39 + src/support/cleanse.h | 13 + src/test/addrman_tests.cpp | 522 + src/test/budget_tests.cpp | 33 + src/test/merkle_tests.cpp | 136 + src/test/random_tests.cpp | 67 + src/test/reverselock_tests.cpp | 64 + src/test/scheduler_tests.cpp | 121 + src/test/test_pivx.cpp | 104 + src/test/test_pivx.h | 55 + src/test/zerocoin_bignum_tests.cpp | 90 + src/test/zerocoin_coinspend_tests.cpp | 92 + src/univalue/.gitignore | 32 + src/univalue/.travis.yml | 52 + src/univalue/COPYING | 19 + src/univalue/Makefile.am | 115 + src/univalue/README.md | 32 + src/univalue/TODO | 10 + src/univalue/autogen.sh | 9 + src/univalue/build-aux/m4/.gitignore | 1 + src/univalue/configure.ac | 69 + src/univalue/gen/gen.cpp | 84 + src/univalue/include/univalue.h | 296 + src/univalue/lib/.gitignore | 2 + src/univalue/lib/univalue.cpp | 359 + src/univalue/lib/univalue_escapes.h | 262 + src/univalue/lib/univalue_read.cpp | 454 + src/univalue/lib/univalue_utffilter.h | 119 + src/univalue/lib/univalue_write.cpp | 115 + src/univalue/pc/libunivalue-uninstalled.pc.in | 9 + src/univalue/pc/libunivalue.pc.in | 10 + src/univalue/test/.gitignore | 8 + src/univalue/test/fail1.json | 1 + src/univalue/test/fail10.json | 1 + src/univalue/test/fail11.json | 1 + src/univalue/test/fail12.json | 1 + src/univalue/test/fail13.json | 1 + src/univalue/test/fail14.json | 1 + src/univalue/test/fail15.json | 1 + src/univalue/test/fail16.json | 1 + src/univalue/test/fail17.json | 1 + src/univalue/test/fail18.json | 1 + src/univalue/test/fail19.json | 1 + src/univalue/test/fail2.json | 1 + src/univalue/test/fail20.json | 1 + src/univalue/test/fail21.json | 1 + src/univalue/test/fail22.json | 1 + src/univalue/test/fail23.json | 1 + src/univalue/test/fail24.json | 1 + src/univalue/test/fail25.json | 1 + src/univalue/test/fail26.json | 1 + src/univalue/test/fail27.json | 2 + src/univalue/test/fail28.json | 2 + src/univalue/test/fail29.json | 1 + src/univalue/test/fail3.json | 1 + src/univalue/test/fail30.json | 1 + src/univalue/test/fail31.json | 1 + src/univalue/test/fail32.json | 1 + src/univalue/test/fail33.json | 1 + src/univalue/test/fail34.json | 1 + src/univalue/test/fail35.json | 1 + src/univalue/test/fail36.json | 1 + src/univalue/test/fail37.json | 1 + src/univalue/test/fail38.json | 1 + src/univalue/test/fail39.json | 1 + src/univalue/test/fail4.json | 1 + src/univalue/test/fail40.json | 1 + src/univalue/test/fail41.json | 1 + src/univalue/test/fail42.json | Bin 0 -> 37 bytes src/univalue/test/fail44.json | 1 + src/univalue/test/fail5.json | 1 + src/univalue/test/fail6.json | 1 + src/univalue/test/fail7.json | 1 + src/univalue/test/fail8.json | 1 + src/univalue/test/fail9.json | 1 + src/univalue/test/no_nul.cpp | 8 + src/univalue/test/object.cpp | 365 + src/univalue/test/pass1.json | 58 + src/univalue/test/pass2.json | 1 + src/univalue/test/pass3.json | 6 + src/univalue/test/round1.json | 1 + src/univalue/test/round2.json | 1 + src/univalue/test/round3.json | 1 + src/univalue/test/round4.json | 1 + src/univalue/test/round5.json | 1 + src/univalue/test/round6.json | 1 + src/univalue/test/round7.json | 1 + src/univalue/test/test_json.cpp | 24 + src/univalue/test/unitester.cpp | 170 + src/wallet/db.cpp | 463 + src/wallet/db.h | 318 + src/wallet/rpcdump.cpp | 548 + src/wallet/rpcwallet.cpp | 4375 ++++++++ src/wallet/test/wallet_tests.cpp | 308 + src/wallet/wallet.cpp | 5225 +++++++++ src/wallet/wallet.h | 1035 ++ src/wallet/wallet_ismine.cpp | 113 + src/wallet/wallet_ismine.h | 38 + src/wallet/walletdb.cpp | 1607 +++ src/wallet/walletdb.h | 200 + src/zpiv/accumulatorcheckpoints.cpp | 85 + src/zpiv/accumulatorcheckpoints.h | 21 + src/zpiv/accumulatorcheckpoints.json.h | 478 + src/zpiv/accumulatormap.cpp | 103 + src/zpiv/accumulatormap.h | 29 + src/zpiv/accumulators.cpp | 841 ++ src/zpiv/accumulators.h | 74 + src/zpiv/deterministicmint.cpp | 44 + src/zpiv/deterministicmint.h | 67 + src/zpiv/mintpool.cpp | 108 + src/zpiv/mintpool.h | 53 + src/zpiv/witness.cpp | 54 + src/zpiv/witness.h | 36 + src/zpiv/zerocoin.cpp | 116 + src/zpiv/zerocoin.h | 266 + src/zpiv/zpivmodule.cpp | 236 + src/zpiv/zpivmodule.h | 102 + src/zpiv/zpivtracker.cpp | 512 + src/zpiv/zpivtracker.h | 54 + src/zpiv/zpivwallet.cpp | 487 + src/zpiv/zpivwallet.h | 49 + src/zpivchain.cpp | 406 + src/zpivchain.h | 42 + 768 files changed, 240921 insertions(+) create mode 100644 build-aux/m4/gmp.m4 create mode 100644 build-aux/m4/l_atomic.m4 create mode 100644 build-aux/snap/local/desktop/pivx-qt.desktop create mode 100644 build-aux/snap/local/desktop/pivx-qt_testnet.desktop create mode 100644 build-aux/snap/local/desktop/pivxd.desktop create mode 100644 build-aux/snap/local/desktop/pivxd_testnet.desktop create mode 100644 build-aux/snap/local/patches/X002-fix-bdb-tmp-folder.patch create mode 100644 build-aux/snap/local/patches/X003-fix-use-snap-instead-of-dirty.patch create mode 100644 build-aux/snap/snapcraft.yaml create mode 100644 contrib/cmake/FindBerkeleyDB.cmake create mode 100644 contrib/cmake/FindGMP.cmake create mode 100644 contrib/cmake/FindLibEvent.cmake create mode 100644 contrib/cmake/FindMiniupnp.cmake create mode 100644 contrib/cmake/FindQrcode.cmake create mode 100644 contrib/cmake/FindZMQ.cmake create mode 100644 contrib/debian/examples/pivx.conf create mode 100644 contrib/debian/pivx-qt.desktop create mode 100644 contrib/debian/pivx-qt.install create mode 100644 contrib/debian/pivx-qt.lintian-overrides create mode 100644 contrib/debian/pivx-qt.manpages create mode 100644 contrib/debian/pivx-qt.protocol create mode 100644 contrib/debian/pivxd.bash-completion create mode 100644 contrib/debian/pivxd.examples create mode 100644 contrib/debian/pivxd.install create mode 100644 contrib/debian/pivxd.lintian-overrides create mode 100644 contrib/debian/pivxd.manpages create mode 100644 contrib/debian/pivxd.postinst create mode 100644 contrib/debian/pivxd.postrm create mode 100644 contrib/debian/pivxd.service create mode 100644 contrib/devtools/circular-dependencies.py create mode 100644 contrib/devtools/clang-format-diff.py create mode 100644 contrib/devtools/commit-script-check.sh create mode 100644 contrib/devtools/copyright_header.py create mode 100644 contrib/devtools/gen-manpages.sh create mode 100644 contrib/devtools/git-subtree-check.sh create mode 100644 contrib/devtools/lint-whitespace.sh create mode 100644 contrib/devtools/logprint-scanner.py create mode 100644 contrib/devtools/optimize-pngs.py create mode 100644 contrib/devtools/security-check.py create mode 100644 contrib/devtools/test-security-check.py create mode 100644 contrib/filter-lcov.py create mode 100644 contrib/gitian-build.py create mode 100644 contrib/gitian-keys/README.md create mode 100644 contrib/gitian-keys/keys.txt create mode 100644 contrib/init/org.pivx.pivxd.plist create mode 100644 contrib/init/pivxd.conf create mode 100644 contrib/init/pivxd.init create mode 100644 contrib/init/pivxd.openrc create mode 100644 contrib/init/pivxd.openrcconf create mode 100644 contrib/init/pivxd.service create mode 100644 contrib/install_db4.sh create mode 100644 contrib/macdeploy/extract-osx-sdk.sh create mode 100644 contrib/pivx-cli.bash-completion create mode 100644 contrib/pivx-qt.pro create mode 100644 contrib/pivx-tx.bash-completion create mode 100644 contrib/pivxd.bash-completion create mode 100644 contrib/rpm/README.md create mode 100644 contrib/rpm/pivx.fc create mode 100644 contrib/rpm/pivx.if create mode 100644 contrib/rpm/pivx.spec create mode 100644 contrib/rpm/pivx.te create mode 100644 contrib/valgrind.supp create mode 100644 contrib/windeploy/detached-sig-create.sh create mode 100644 depends/packages/gmp.mk create mode 100644 depends/patches/qt/fix_configure_mac.patch create mode 100644 depends/patches/qt/fix_no_printer.patch create mode 100644 depends/patches/qt/fix_rcc_determinism.patch create mode 100644 depends/patches/qt/fix_riscv64_arch.patch create mode 100644 depends/patches/qt/fix_s390x_powerpc_mips_mipsel_architectures.patch create mode 100644 depends/patches/qt/xkb-default.patch create mode 100644 depends/patches/zeromq/0001-fix-build-with-older-mingw64.patch create mode 100644 depends/patches/zeromq/0002-disable-pthread_set_name_np.patch create mode 100644 libbitcoinconsensus.pc.in create mode 100644 share/pixmaps/pivx-bc.ico create mode 100644 share/pixmaps/pivx.ico create mode 100644 share/pixmaps/pivx128.png create mode 100644 share/pixmaps/pivx128.xpm create mode 100644 share/pixmaps/pivx16.png create mode 100644 share/pixmaps/pivx16.xpm create mode 100644 share/pixmaps/pivx256.png create mode 100644 share/pixmaps/pivx256.xpm create mode 100644 share/pixmaps/pivx32.png create mode 100644 share/pixmaps/pivx32.xpm create mode 100644 share/pixmaps/pivx64.png create mode 100644 share/pixmaps/pivx64.xpm create mode 100644 share/rpcauth/README.md create mode 100644 share/rpcauth/rpcauth.py create mode 100644 src/Makefile.leveldb.include create mode 100644 src/addressbook.cpp create mode 100644 src/addressbook.h create mode 100644 src/blocksignature.cpp create mode 100644 src/blocksignature.h create mode 100644 src/compat/byteswap.h create mode 100644 src/compat/endian.h create mode 100644 src/consensus/merkle.cpp create mode 100644 src/consensus/merkle.h create mode 100644 src/crypto/chacha20.cpp create mode 100644 src/crypto/chacha20.h create mode 100644 src/guiinterface.h create mode 100644 src/httprpc.cpp create mode 100644 src/httprpc.h create mode 100644 src/httpserver.cpp create mode 100644 src/httpserver.h create mode 100644 src/invalid.cpp create mode 100644 src/invalid.h create mode 100644 src/invalid_outpoints.json.h create mode 100644 src/invalid_serials.json.h create mode 100644 src/leveldb/.gitignore create mode 100644 src/leveldb/.travis.yml create mode 100644 src/leveldb/db/fault_injection_test.cc create mode 100644 src/leveldb/db/leveldbutil.cc create mode 100644 src/leveldb/db/recovery_test.cc create mode 100644 src/leveldb/doc/impl.md create mode 100644 src/leveldb/doc/index.md create mode 100644 src/leveldb/doc/log_format.md create mode 100644 src/leveldb/doc/table_format.md create mode 100644 src/leveldb/port/port_posix_sse.cc create mode 100644 src/leveldb/util/env_posix_test.cc create mode 100644 src/leveldb/util/env_posix_test_helper.h create mode 100644 src/libzerocoin/CoinRandomnessSchnorrSignature.cpp create mode 100644 src/libzerocoin/CoinRandomnessSchnorrSignature.h create mode 100644 src/libzerocoin/SpendType.h create mode 100644 src/libzerocoin/bignum.cpp create mode 100644 src/libzerocoin/bignum_gmp.cpp create mode 100644 src/libzerocoin/bignum_openssl.cpp create mode 100644 src/messagesigner.cpp create mode 100644 src/messagesigner.h create mode 100644 src/pairresult.h create mode 100644 src/pivx-cli-res.rc create mode 100644 src/pivx-cli.cpp create mode 100644 src/pivx-tx-res.rc create mode 100644 src/pivx-tx.cpp create mode 100644 src/pivxd-res.rc create mode 100644 src/pivxd.cpp create mode 100644 src/qt/CMakeLists.txt create mode 100644 src/qt/bantablemodel.cpp create mode 100644 src/qt/bantablemodel.h create mode 100644 src/qt/forms/governancepage.ui create mode 100644 src/qt/forms/zpivcontroldialog.ui create mode 100644 src/qt/governancepage.cpp create mode 100644 src/qt/governancepage.h create mode 100644 src/qt/locale/pivx_bg.ts create mode 100644 src/qt/locale/pivx_ca.ts create mode 100644 src/qt/locale/pivx_cs.ts create mode 100644 src/qt/locale/pivx_da.ts create mode 100644 src/qt/locale/pivx_de.ts create mode 100644 src/qt/locale/pivx_en.ts create mode 100644 src/qt/locale/pivx_en_GB.ts create mode 100644 src/qt/locale/pivx_en_US.ts create mode 100644 src/qt/locale/pivx_eo.ts create mode 100644 src/qt/locale/pivx_es.ts create mode 100644 src/qt/locale/pivx_es_ES.ts create mode 100644 src/qt/locale/pivx_fi.ts create mode 100644 src/qt/locale/pivx_fr_FR.ts create mode 100644 src/qt/locale/pivx_hi_IN.ts create mode 100644 src/qt/locale/pivx_hr.ts create mode 100644 src/qt/locale/pivx_hr_HR.ts create mode 100644 src/qt/locale/pivx_it.ts create mode 100644 src/qt/locale/pivx_ja.ts create mode 100644 src/qt/locale/pivx_ko_KR.ts create mode 100644 src/qt/locale/pivx_lt_LT.ts create mode 100644 src/qt/locale/pivx_nl.ts create mode 100644 src/qt/locale/pivx_pl.ts create mode 100644 src/qt/locale/pivx_pt.ts create mode 100644 src/qt/locale/pivx_pt_BR.ts create mode 100644 src/qt/locale/pivx_ro_RO.ts create mode 100644 src/qt/locale/pivx_ru.ts create mode 100644 src/qt/locale/pivx_sk.ts create mode 100644 src/qt/locale/pivx_sv.ts create mode 100644 src/qt/locale/pivx_tr.ts create mode 100644 src/qt/locale/pivx_uk.ts create mode 100644 src/qt/locale/pivx_vi.ts create mode 100644 src/qt/locale/pivx_zh_CN.ts create mode 100644 src/qt/locale/pivx_zh_TW.ts create mode 100644 src/qt/pivx.cpp create mode 100644 src/qt/pivx.qrc create mode 100644 src/qt/pivx/addnewaddressdialog.cpp create mode 100644 src/qt/pivx/addnewaddressdialog.h create mode 100644 src/qt/pivx/addnewcontactdialog.cpp create mode 100644 src/qt/pivx/addnewcontactdialog.h create mode 100644 src/qt/pivx/addresseswidget.cpp create mode 100644 src/qt/pivx/addresseswidget.h create mode 100644 src/qt/pivx/addressfilterproxymodel.cpp create mode 100644 src/qt/pivx/addressfilterproxymodel.h create mode 100644 src/qt/pivx/addressholder.cpp create mode 100644 src/qt/pivx/addressholder.h create mode 100644 src/qt/pivx/addresslabelrow.cpp create mode 100644 src/qt/pivx/addresslabelrow.h create mode 100644 src/qt/pivx/coincontrolpivwidget.cpp create mode 100644 src/qt/pivx/coincontrolpivwidget.h create mode 100644 src/qt/pivx/coldstakingmodel.cpp create mode 100644 src/qt/pivx/coldstakingmodel.h create mode 100644 src/qt/pivx/coldstakingwidget.cpp create mode 100644 src/qt/pivx/coldstakingwidget.h create mode 100644 src/qt/pivx/contactdropdownrow.cpp create mode 100644 src/qt/pivx/contactdropdownrow.h create mode 100644 src/qt/pivx/contactsdropdown.cpp create mode 100644 src/qt/pivx/contactsdropdown.h create mode 100644 src/qt/pivx/csrow.cpp create mode 100644 src/qt/pivx/csrow.h create mode 100644 src/qt/pivx/dashboardwidget.cpp create mode 100644 src/qt/pivx/dashboardwidget.h create mode 100644 src/qt/pivx/defaultdialog.cpp create mode 100644 src/qt/pivx/defaultdialog.h create mode 100644 src/qt/pivx/denomgenerationdialog.cpp create mode 100644 src/qt/pivx/denomgenerationdialog.h create mode 100644 src/qt/pivx/expandablebutton.cpp create mode 100644 src/qt/pivx/expandablebutton.h create mode 100644 src/qt/pivx/forms/addnewaddressdialog.ui create mode 100644 src/qt/pivx/forms/addnewcontactdialog.ui create mode 100644 src/qt/pivx/forms/addresseswidget.ui create mode 100644 src/qt/pivx/forms/addresslabelrow.ui create mode 100644 src/qt/pivx/forms/coincontrolpivwidget.ui create mode 100644 src/qt/pivx/forms/coldstakingwidget.ui create mode 100644 src/qt/pivx/forms/contactdropdownrow.ui create mode 100644 src/qt/pivx/forms/csrow.ui create mode 100644 src/qt/pivx/forms/dashboardwidget.ui create mode 100644 src/qt/pivx/forms/defaultdialog.ui create mode 100644 src/qt/pivx/forms/denomgenerationdialog.ui create mode 100644 src/qt/pivx/forms/expandablebutton.ui create mode 100644 src/qt/pivx/forms/loadingdialog.ui create mode 100644 src/qt/pivx/forms/lockunlock.ui create mode 100644 src/qt/pivx/forms/masternodeswidget.ui create mode 100644 src/qt/pivx/forms/masternodewizarddialog.ui create mode 100644 src/qt/pivx/forms/mninfodialog.ui create mode 100644 src/qt/pivx/forms/mnrow.ui create mode 100644 src/qt/pivx/forms/myaddressrow.ui create mode 100644 src/qt/pivx/forms/navmenuwidget.ui create mode 100644 src/qt/pivx/forms/optionbutton.ui create mode 100644 src/qt/pivx/forms/privacywidget.ui create mode 100644 src/qt/pivx/forms/receivedialog.ui create mode 100644 src/qt/pivx/forms/receivewidget.ui create mode 100644 src/qt/pivx/forms/requestdialog.ui create mode 100644 src/qt/pivx/forms/send.ui create mode 100644 src/qt/pivx/forms/sendchangeaddressdialog.ui create mode 100644 src/qt/pivx/forms/sendconfirmdialog.ui create mode 100644 src/qt/pivx/forms/sendcustomfeedialog.ui create mode 100644 src/qt/pivx/forms/sendmultirow.ui create mode 100644 src/qt/pivx/forms/snackbar.ui create mode 100644 src/qt/pivx/forms/splash.ui create mode 100644 src/qt/pivx/forms/tooltipmenu.ui create mode 100644 src/qt/pivx/forms/topbar.ui create mode 100644 src/qt/pivx/forms/txrow.ui create mode 100644 src/qt/pivx/forms/walletpassworddialog.ui create mode 100644 src/qt/pivx/forms/welcomecontentwidget.ui create mode 100644 src/qt/pivx/furabstractlistitemdelegate.cpp create mode 100644 src/qt/pivx/furabstractlistitemdelegate.h create mode 100644 src/qt/pivx/furlistrow.h create mode 100644 src/qt/pivx/guitransactionsutils.cpp create mode 100644 src/qt/pivx/guitransactionsutils.h create mode 100644 src/qt/pivx/loadingdialog.cpp create mode 100644 src/qt/pivx/loadingdialog.h create mode 100644 src/qt/pivx/lockunlock.cpp create mode 100644 src/qt/pivx/lockunlock.h create mode 100644 src/qt/pivx/masternodeswidget.cpp create mode 100644 src/qt/pivx/masternodeswidget.h create mode 100644 src/qt/pivx/masternodewizarddialog.cpp create mode 100644 src/qt/pivx/masternodewizarddialog.h create mode 100644 src/qt/pivx/mninfodialog.cpp create mode 100644 src/qt/pivx/mninfodialog.h create mode 100644 src/qt/pivx/mnmodel.cpp create mode 100644 src/qt/pivx/mnmodel.h create mode 100644 src/qt/pivx/mnrow.cpp create mode 100644 src/qt/pivx/mnrow.h create mode 100644 src/qt/pivx/myaddressrow.cpp create mode 100644 src/qt/pivx/myaddressrow.h create mode 100644 src/qt/pivx/navmenuwidget.cpp create mode 100644 src/qt/pivx/navmenuwidget.h create mode 100644 src/qt/pivx/optionbutton.cpp create mode 100644 src/qt/pivx/optionbutton.h create mode 100644 src/qt/pivx/pfborderimage.h create mode 100644 src/qt/pivx/pivxgui.cpp create mode 100644 src/qt/pivx/pivxgui.h create mode 100644 src/qt/pivx/privacywidget.cpp create mode 100644 src/qt/pivx/privacywidget.h create mode 100644 src/qt/pivx/prunnable.h create mode 100644 src/qt/pivx/pwidget.cpp create mode 100644 src/qt/pivx/pwidget.h create mode 100644 src/qt/pivx/qtutils.cpp create mode 100644 src/qt/pivx/qtutils.h create mode 100644 src/qt/pivx/receivedialog.cpp create mode 100644 src/qt/pivx/receivedialog.h create mode 100644 src/qt/pivx/receivewidget.cpp create mode 100644 src/qt/pivx/receivewidget.h create mode 100644 src/qt/pivx/requestdialog.cpp create mode 100644 src/qt/pivx/requestdialog.h create mode 100644 src/qt/pivx/res/css/style_dark.css create mode 100644 src/qt/pivx/res/css/style_light.css create mode 100644 src/qt/pivx/res/img/ani-loading-dark.gif create mode 100644 src/qt/pivx/res/img/ani-loading.gif create mode 100644 src/qt/pivx/res/img/bg-dashboard-banner.png create mode 100644 src/qt/pivx/res/img/bg-multi-number-dark.svg create mode 100644 src/qt/pivx/res/img/bg-multi-number.svg create mode 100644 src/qt/pivx/res/img/bg-splash.png create mode 100644 src/qt/pivx/res/img/bg-splash.svg create mode 100644 src/qt/pivx/res/img/bg-welcome-container.jpg create mode 100644 src/qt/pivx/res/img/bg-welcome-container.png create mode 100644 src/qt/pivx/res/img/bg-welcome-container.svg create mode 100644 src/qt/pivx/res/img/bg-welcome-container@2x.png create mode 100644 src/qt/pivx/res/img/bg-welcome-container@3x.png create mode 100644 src/qt/pivx/res/img/bg-welcome.jpg create mode 100644 src/qt/pivx/res/img/bg-welcome.png create mode 100644 src/qt/pivx/res/img/bg-welcome.svg create mode 100644 src/qt/pivx/res/img/bg-welcome@2x.jpg create mode 100644 src/qt/pivx/res/img/bg-welcome@3x.jpg create mode 100644 src/qt/pivx/res/img/btn-radio-active.svg create mode 100644 src/qt/pivx/res/img/btn-radio-off.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-cs-contract-inactive.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-cs-contract.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-mint-inactive.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-mint.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-received-inactive.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-received.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-sent-inactive.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-sent.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-stake-delegated-inactive.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-stake-delegated.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-stake-hot-inactive.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-stake-hot.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-staked-inactive.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-staked.svg create mode 100644 src/qt/pivx/res/img/dark/ic-transaction-warning.svg create mode 100644 src/qt/pivx/res/img/ic-add-label.svg create mode 100644 src/qt/pivx/res/img/ic-add-liliac.svg create mode 100644 src/qt/pivx/res/img/ic-add-purple.svg create mode 100644 src/qt/pivx/res/img/ic-add.svg create mode 100644 src/qt/pivx/res/img/ic-address-book-grey.svg create mode 100644 src/qt/pivx/res/img/ic-address-book-white.svg create mode 100644 src/qt/pivx/res/img/ic-address-book.svg create mode 100644 src/qt/pivx/res/img/ic-address-send-white.svg create mode 100644 src/qt/pivx/res/img/ic-address-send.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-drop-down-purple.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-drop-down-white.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-drop-down.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-drop-up-purple.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-drop-up-white.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-drop-up.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-drop-white-down.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-left-white.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-left.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-purple-down.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-right-white.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-right.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-white-left.svg create mode 100644 src/qt/pivx/res/img/ic-arrow-white-right.svg create mode 100644 src/qt/pivx/res/img/ic-check-active.svg create mode 100644 src/qt/pivx/res/img/ic-check-box-dark-active.svg create mode 100644 src/qt/pivx/res/img/ic-check-box-indeterminate.svg create mode 100644 src/qt/pivx/res/img/ic-check-box-liliac-indeterminate.svg create mode 100644 src/qt/pivx/res/img/ic-check-box.svg create mode 100644 src/qt/pivx/res/img/ic-check-cold-staking-enabled.svg create mode 100644 src/qt/pivx/res/img/ic-check-cold-staking-off.svg create mode 100644 src/qt/pivx/res/img/ic-check-cold-staking.svg create mode 100644 src/qt/pivx/res/img/ic-check-connect-off.svg create mode 100644 src/qt/pivx/res/img/ic-check-connect.svg create mode 100644 src/qt/pivx/res/img/ic-check-dark.svg create mode 100644 src/qt/pivx/res/img/ic-check-faq.svg create mode 100644 src/qt/pivx/res/img/ic-check-liliac-indeterminate.svg create mode 100644 src/qt/pivx/res/img/ic-check-liliac-on.svg create mode 100644 src/qt/pivx/res/img/ic-check-locked-off.svg create mode 100644 src/qt/pivx/res/img/ic-check-locked.svg create mode 100644 src/qt/pivx/res/img/ic-check-mint-off.svg create mode 100644 src/qt/pivx/res/img/ic-check-mint.svg create mode 100644 src/qt/pivx/res/img/ic-check-peers-off.svg create mode 100644 src/qt/pivx/res/img/ic-check-peers.svg create mode 100644 src/qt/pivx/res/img/ic-check-staking-off.svg create mode 100644 src/qt/pivx/res/img/ic-check-staking.svg create mode 100644 src/qt/pivx/res/img/ic-check-sync-off.svg create mode 100644 src/qt/pivx/res/img/ic-check-sync.png create mode 100644 src/qt/pivx/res/img/ic-check-sync.svg create mode 100644 src/qt/pivx/res/img/ic-check-theme-dark.svg create mode 100644 src/qt/pivx/res/img/ic-check-theme-light.svg create mode 100644 src/qt/pivx/res/img/ic-check-white.svg create mode 100644 src/qt/pivx/res/img/ic-check.svg create mode 100644 src/qt/pivx/res/img/ic-chevron-left.svg create mode 100644 src/qt/pivx/res/img/ic-chevron-right.svg create mode 100644 src/qt/pivx/res/img/ic-clear-liliac.svg create mode 100644 src/qt/pivx/res/img/ic-clear-purple.svg create mode 100644 src/qt/pivx/res/img/ic-close-white.svg create mode 100644 src/qt/pivx/res/img/ic-close.svg create mode 100644 src/qt/pivx/res/img/ic-coin-piv.svg create mode 100644 src/qt/pivx/res/img/ic-coin-zpiv.png create mode 100644 src/qt/pivx/res/img/ic-coin-zpiv.svg create mode 100644 src/qt/pivx/res/img/ic-combo-box.svg create mode 100644 src/qt/pivx/res/img/ic-connect.svg create mode 100644 src/qt/pivx/res/img/ic-contact-arrow-down-white.svg create mode 100644 src/qt/pivx/res/img/ic-contact-arrow-down.svg create mode 100644 src/qt/pivx/res/img/ic-copy-big-white.svg create mode 100644 src/qt/pivx/res/img/ic-copy-big.svg create mode 100644 src/qt/pivx/res/img/ic-copy-liliac.svg create mode 100644 src/qt/pivx/res/img/ic-copy.svg create mode 100644 src/qt/pivx/res/img/ic-exit.svg create mode 100644 src/qt/pivx/res/img/ic-expand.svg create mode 100644 src/qt/pivx/res/img/ic-folder.svg create mode 100644 src/qt/pivx/res/img/ic-label-liliac.svg create mode 100644 src/qt/pivx/res/img/ic-label.svg create mode 100644 src/qt/pivx/res/img/ic-menu-hover.svg create mode 100644 src/qt/pivx/res/img/ic-mint.svg create mode 100644 src/qt/pivx/res/img/ic-nav-address-active.svg create mode 100644 src/qt/pivx/res/img/ic-nav-address-hover.svg create mode 100644 src/qt/pivx/res/img/ic-nav-address.svg create mode 100644 src/qt/pivx/res/img/ic-nav-cold-staking-active.svg create mode 100644 src/qt/pivx/res/img/ic-nav-cold-staking.svg create mode 100644 src/qt/pivx/res/img/ic-nav-dashboard-active.svg create mode 100644 src/qt/pivx/res/img/ic-nav-dashboard-hover.svg create mode 100644 src/qt/pivx/res/img/ic-nav-dashboard.svg create mode 100644 src/qt/pivx/res/img/ic-nav-master-active.svg create mode 100644 src/qt/pivx/res/img/ic-nav-master-hover.svg create mode 100644 src/qt/pivx/res/img/ic-nav-master.svg create mode 100644 src/qt/pivx/res/img/ic-nav-privacy-active.svg create mode 100644 src/qt/pivx/res/img/ic-nav-privacy-hover.svg create mode 100644 src/qt/pivx/res/img/ic-nav-privacy.svg create mode 100644 src/qt/pivx/res/img/ic-nav-receive-active.svg create mode 100644 src/qt/pivx/res/img/ic-nav-receive-hover.svg create mode 100644 src/qt/pivx/res/img/ic-nav-receive.svg create mode 100644 src/qt/pivx/res/img/ic-nav-send-active.svg create mode 100644 src/qt/pivx/res/img/ic-nav-send-hover.svg create mode 100644 src/qt/pivx/res/img/ic-nav-send.svg create mode 100644 src/qt/pivx/res/img/ic-nav-settings-active.svg create mode 100644 src/qt/pivx/res/img/ic-nav-settings-hover.svg create mode 100644 src/qt/pivx/res/img/ic-nav-settings.svg create mode 100644 src/qt/pivx/res/img/ic-pending.svg create mode 100644 src/qt/pivx/res/img/ic-radio-liliac-on.svg create mode 100644 src/qt/pivx/res/img/ic-receive-off.svg create mode 100644 src/qt/pivx/res/img/ic-receive-on.svg create mode 100644 src/qt/pivx/res/img/ic-received.svg create mode 100644 src/qt/pivx/res/img/ic-send.svg create mode 100644 src/qt/pivx/res/img/ic-submenu-lock.svg create mode 100644 src/qt/pivx/res/img/ic-submenu-staking.svg create mode 100644 src/qt/pivx/res/img/ic-submenu-unlock.svg create mode 100644 src/qt/pivx/res/img/ic-switch-liliac-on.svg create mode 100644 src/qt/pivx/res/img/ic-switch-off.svg create mode 100644 src/qt/pivx/res/img/ic-switch-on.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-cs-contract-inactive.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-cs-contract.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-mint-inactive.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-mint.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-received-inactive.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-received.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-sent-inactive.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-sent.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-stake-delegated-inactive.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-stake-delegated.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-stake-hot-inactive.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-stake-hot.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-staked-inactive.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-staked.svg create mode 100644 src/qt/pivx/res/img/ic-transaction-warning.svg create mode 100644 src/qt/pivx/res/img/ic-unlock-staking.svg create mode 100644 src/qt/pivx/res/img/ic-update-liliac.svg create mode 100644 src/qt/pivx/res/img/ic-update.svg create mode 100644 src/qt/pivx/res/img/ic-wallet-status-locked.svg create mode 100644 src/qt/pivx/res/img/ic-wallet-status-staking.svg create mode 100644 src/qt/pivx/res/img/ic-wallet-status-unlocked.svg create mode 100644 src/qt/pivx/res/img/ic-watch-password-white.svg create mode 100644 src/qt/pivx/res/img/ic-watch-password.svg create mode 100644 src/qt/pivx/res/img/img-dashboard-banner.jpg create mode 100644 src/qt/pivx/res/img/img-empty-contacts.svg create mode 100644 src/qt/pivx/res/img/img-empty-dark-contacts.svg create mode 100644 src/qt/pivx/res/img/img-empty-dark-error.svg create mode 100644 src/qt/pivx/res/img/img-empty-dark-masternode.svg create mode 100644 src/qt/pivx/res/img/img-empty-dark-multisend.svg create mode 100644 src/qt/pivx/res/img/img-empty-dark-peers.svg create mode 100644 src/qt/pivx/res/img/img-empty-dark-staking-off.svg create mode 100644 src/qt/pivx/res/img/img-empty-dark-staking-on.svg create mode 100644 src/qt/pivx/res/img/img-empty-dark-transactions.svg create mode 100644 src/qt/pivx/res/img/img-empty-error.svg create mode 100644 src/qt/pivx/res/img/img-empty-masternode.svg create mode 100644 src/qt/pivx/res/img/img-empty-multisend.svg create mode 100644 src/qt/pivx/res/img/img-empty-peers.svg create mode 100644 src/qt/pivx/res/img/img-empty-privacy-dark.svg create mode 100644 src/qt/pivx/res/img/img-empty-privacy.svg create mode 100644 src/qt/pivx/res/img/img-empty-staking-off.svg create mode 100644 src/qt/pivx/res/img/img-empty-staking-on.svg create mode 100644 src/qt/pivx/res/img/img-empty-transactions.svg create mode 100644 src/qt/pivx/res/img/img-logo-pivx.png create mode 100644 src/qt/pivx/res/img/img-logo-pivx.svg create mode 100644 src/qt/pivx/res/img/img-logo-pivx@2x.png create mode 100644 src/qt/pivx/res/img/img-logo-pivx@3x.png create mode 100644 src/qt/pivx/res/img/img-nav-logo-pivx.png create mode 100644 src/qt/pivx/res/img/img-nav-logo.png create mode 100644 src/qt/pivx/res/img/img-nav-logo.svg create mode 100644 src/qt/pivx/res/img/img-qr-test-big.png create mode 100644 src/qt/pivx/res/img/img-qr-test.png create mode 100644 src/qt/pivx/res/img/img-qr.svg create mode 100644 src/qt/pivx/res/img/img-welcome-step1.png create mode 100644 src/qt/pivx/res/img/img-welcome-step2.png create mode 100644 src/qt/pivx/res/img/img-welcome-step3.png create mode 100644 src/qt/pivx/res/img/img-welcome-step4.png create mode 100644 src/qt/pivx/send.cpp create mode 100644 src/qt/pivx/send.h create mode 100644 src/qt/pivx/sendchangeaddressdialog.cpp create mode 100644 src/qt/pivx/sendchangeaddressdialog.h create mode 100644 src/qt/pivx/sendconfirmdialog.cpp create mode 100644 src/qt/pivx/sendconfirmdialog.h create mode 100644 src/qt/pivx/sendcustomfeedialog.cpp create mode 100644 src/qt/pivx/sendcustomfeedialog.h create mode 100644 src/qt/pivx/sendmultirow.cpp create mode 100644 src/qt/pivx/sendmultirow.h create mode 100644 src/qt/pivx/settings/forms/settingsbackupwallet.ui create mode 100644 src/qt/pivx/settings/forms/settingsbittoolwidget.ui create mode 100644 src/qt/pivx/settings/forms/settingsconsolewidget.ui create mode 100644 src/qt/pivx/settings/forms/settingsdisplayoptionswidget.ui create mode 100644 src/qt/pivx/settings/forms/settingsfaqwidget.ui create mode 100644 src/qt/pivx/settings/forms/settingsinformationwidget.ui create mode 100644 src/qt/pivx/settings/forms/settingsmainoptionswidget.ui create mode 100644 src/qt/pivx/settings/forms/settingsmultisenddialog.ui create mode 100644 src/qt/pivx/settings/forms/settingsmultisendwidget.ui create mode 100644 src/qt/pivx/settings/forms/settingssignmessagewidgets.ui create mode 100644 src/qt/pivx/settings/forms/settingswalletoptionswidget.ui create mode 100644 src/qt/pivx/settings/forms/settingswalletrepairwidget.ui create mode 100644 src/qt/pivx/settings/forms/settingswidget.ui create mode 100644 src/qt/pivx/settings/settingsbackupwallet.cpp create mode 100644 src/qt/pivx/settings/settingsbackupwallet.h create mode 100644 src/qt/pivx/settings/settingsbittoolwidget.cpp create mode 100644 src/qt/pivx/settings/settingsbittoolwidget.h create mode 100644 src/qt/pivx/settings/settingsconsolewidget.cpp create mode 100644 src/qt/pivx/settings/settingsconsolewidget.h create mode 100644 src/qt/pivx/settings/settingsdisplayoptionswidget.cpp create mode 100644 src/qt/pivx/settings/settingsdisplayoptionswidget.h create mode 100644 src/qt/pivx/settings/settingsfaqwidget.cpp create mode 100644 src/qt/pivx/settings/settingsfaqwidget.h create mode 100644 src/qt/pivx/settings/settingsinformationwidget.cpp create mode 100644 src/qt/pivx/settings/settingsinformationwidget.h create mode 100644 src/qt/pivx/settings/settingsmainoptionswidget.cpp create mode 100644 src/qt/pivx/settings/settingsmainoptionswidget.h create mode 100644 src/qt/pivx/settings/settingsmultisenddialog.cpp create mode 100644 src/qt/pivx/settings/settingsmultisenddialog.h create mode 100644 src/qt/pivx/settings/settingsmultisendwidget.cpp create mode 100644 src/qt/pivx/settings/settingsmultisendwidget.h create mode 100644 src/qt/pivx/settings/settingsnetworkwidget.cpp create mode 100644 src/qt/pivx/settings/settingsnetworkwidget.h create mode 100644 src/qt/pivx/settings/settingssignmessagewidgets.cpp create mode 100644 src/qt/pivx/settings/settingssignmessagewidgets.h create mode 100644 src/qt/pivx/settings/settingswalletoptionswidget.cpp create mode 100644 src/qt/pivx/settings/settingswalletoptionswidget.h create mode 100644 src/qt/pivx/settings/settingswalletrepairwidget.cpp create mode 100644 src/qt/pivx/settings/settingswalletrepairwidget.h create mode 100644 src/qt/pivx/settings/settingswidget.cpp create mode 100644 src/qt/pivx/settings/settingswidget.h create mode 100644 src/qt/pivx/snackbar.cpp create mode 100644 src/qt/pivx/snackbar.h create mode 100644 src/qt/pivx/splash.cpp create mode 100644 src/qt/pivx/splash.h create mode 100644 src/qt/pivx/tooltipmenu.cpp create mode 100644 src/qt/pivx/tooltipmenu.h create mode 100644 src/qt/pivx/topbar.cpp create mode 100644 src/qt/pivx/topbar.h create mode 100644 src/qt/pivx/txrow.cpp create mode 100644 src/qt/pivx/txrow.h create mode 100644 src/qt/pivx/txviewholder.cpp create mode 100644 src/qt/pivx/txviewholder.h create mode 100644 src/qt/pivx/walletpassworddialog.cpp create mode 100644 src/qt/pivx/walletpassworddialog.h create mode 100644 src/qt/pivx/welcomecontentwidget.cpp create mode 100644 src/qt/pivx/welcomecontentwidget.h create mode 100644 src/qt/pivx_locale.qrc create mode 100644 src/qt/pivxstrings.cpp create mode 100644 src/qt/proposalframe.cpp create mode 100644 src/qt/proposalframe.h create mode 100644 src/qt/res/icons/abstainvote.png create mode 100644 src/qt/res/icons/bitcoin_regtest.png create mode 100644 src/qt/res/icons/governance.png create mode 100644 src/qt/res/icons/governance_dark.png create mode 100644 src/qt/res/icons/ic-transaction-mint.png create mode 100644 src/qt/res/icons/ic-transaction-mint.svg create mode 100644 src/qt/res/icons/ic-transaction-received.png create mode 100644 src/qt/res/icons/ic-transaction-received.svg create mode 100644 src/qt/res/icons/ic-transaction-sent.png create mode 100644 src/qt/res/icons/ic-transaction-sent.svg create mode 100644 src/qt/res/icons/ic-transaction-staked.png create mode 100644 src/qt/res/icons/ic-transaction-staked.svg create mode 100644 src/qt/res/icons/novote.png create mode 100644 src/qt/res/icons/onion.png create mode 100644 src/qt/res/icons/receive_dark.png create mode 100644 src/qt/res/icons/send_dark.png create mode 100644 src/qt/res/icons/transaction0_dark.png create mode 100644 src/qt/res/icons/unit_mpivx.png create mode 100644 src/qt/res/icons/unit_pivx.png create mode 100644 src/qt/res/icons/unit_tmpivx.png create mode 100644 src/qt/res/icons/unit_tpivx.png create mode 100644 src/qt/res/icons/unit_tupivx.png create mode 100644 src/qt/res/icons/unit_upivx.png create mode 100644 src/qt/res/icons/yesvote.png create mode 100644 src/qt/res/images/pivx_logo_horizontal.png create mode 100644 src/qt/res/images/splash_regtest.png create mode 100644 src/qt/res/pivx-qt-res.rc create mode 100644 src/qt/zpivcontroldialog.cpp create mode 100644 src/qt/zpivcontroldialog.h create mode 100644 src/reverselock.h create mode 100644 src/rpc/blockchain.cpp create mode 100644 src/rpc/budget.cpp create mode 100644 src/rpc/client.cpp create mode 100644 src/rpc/client.h create mode 100644 src/rpc/masternode.cpp create mode 100644 src/rpc/mining.cpp create mode 100644 src/rpc/misc.cpp create mode 100644 src/rpc/net.cpp create mode 100644 src/rpc/protocol.cpp create mode 100644 src/rpc/protocol.h create mode 100644 src/rpc/rawtransaction.cpp create mode 100644 src/rpc/server.cpp create mode 100644 src/rpc/server.h create mode 100644 src/scheduler.cpp create mode 100644 src/scheduler.h create mode 100644 src/secp256k1/contrib/lax_der_parsing.c create mode 100644 src/secp256k1/contrib/lax_der_parsing.h create mode 100644 src/secp256k1/contrib/lax_der_privatekey_parsing.c create mode 100644 src/secp256k1/contrib/lax_der_privatekey_parsing.h create mode 100644 src/secp256k1/include/secp256k1_ecdh.h create mode 100644 src/secp256k1/include/secp256k1_recovery.h create mode 100644 src/secp256k1/sage/group_prover.sage create mode 100644 src/secp256k1/sage/secp256k1.sage create mode 100644 src/secp256k1/sage/weierstrass_prover.sage create mode 100644 src/secp256k1/src/asm/field_10x26_arm.s create mode 100644 src/secp256k1/src/basic-config.h create mode 100644 src/secp256k1/src/bench.h create mode 100644 src/secp256k1/src/bench_ecdh.c create mode 100644 src/secp256k1/src/bench_ecmult.c create mode 100644 src/secp256k1/src/bench_internal.c create mode 100644 src/secp256k1/src/bench_recover.c create mode 100644 src/secp256k1/src/ecmult_const.h create mode 100644 src/secp256k1/src/ecmult_const_impl.h create mode 100644 src/secp256k1/src/gen_context.c create mode 100644 src/secp256k1/src/hash.h create mode 100644 src/secp256k1/src/hash_impl.h create mode 100644 src/secp256k1/src/java/org/bitcoin/NativeSecp256k1Test.java create mode 100644 src/secp256k1/src/java/org/bitcoin/NativeSecp256k1Util.java create mode 100644 src/secp256k1/src/java/org/bitcoin/Secp256k1Context.java create mode 100644 src/secp256k1/src/java/org_bitcoin_Secp256k1Context.c create mode 100644 src/secp256k1/src/java/org_bitcoin_Secp256k1Context.h create mode 100644 src/secp256k1/src/modules/ecdh/Makefile.am.include create mode 100644 src/secp256k1/src/modules/ecdh/main_impl.h create mode 100644 src/secp256k1/src/modules/ecdh/tests_impl.h create mode 100644 src/secp256k1/src/modules/recovery/Makefile.am.include create mode 100644 src/secp256k1/src/modules/recovery/main_impl.h create mode 100644 src/secp256k1/src/modules/recovery/tests_impl.h create mode 100644 src/secp256k1/src/scalar_low.h create mode 100644 src/secp256k1/src/scalar_low_impl.h create mode 100644 src/secp256k1/src/scratch.h create mode 100644 src/secp256k1/src/scratch_impl.h create mode 100644 src/secp256k1/src/tests_exhaustive.c create mode 100644 src/sporkid.h create mode 100644 src/stakeinput.cpp create mode 100644 src/stakeinput.h create mode 100644 src/support/cleanse.cpp create mode 100644 src/support/cleanse.h create mode 100644 src/test/addrman_tests.cpp create mode 100644 src/test/budget_tests.cpp create mode 100644 src/test/merkle_tests.cpp create mode 100644 src/test/random_tests.cpp create mode 100644 src/test/reverselock_tests.cpp create mode 100644 src/test/scheduler_tests.cpp create mode 100644 src/test/test_pivx.cpp create mode 100644 src/test/test_pivx.h create mode 100644 src/test/zerocoin_bignum_tests.cpp create mode 100644 src/test/zerocoin_coinspend_tests.cpp create mode 100644 src/univalue/.gitignore create mode 100644 src/univalue/.travis.yml create mode 100644 src/univalue/COPYING create mode 100644 src/univalue/Makefile.am create mode 100644 src/univalue/README.md create mode 100644 src/univalue/TODO create mode 100644 src/univalue/autogen.sh create mode 100644 src/univalue/build-aux/m4/.gitignore create mode 100644 src/univalue/configure.ac create mode 100644 src/univalue/gen/gen.cpp create mode 100644 src/univalue/include/univalue.h create mode 100644 src/univalue/lib/.gitignore create mode 100644 src/univalue/lib/univalue.cpp create mode 100644 src/univalue/lib/univalue_escapes.h create mode 100644 src/univalue/lib/univalue_read.cpp create mode 100644 src/univalue/lib/univalue_utffilter.h create mode 100644 src/univalue/lib/univalue_write.cpp create mode 100644 src/univalue/pc/libunivalue-uninstalled.pc.in create mode 100644 src/univalue/pc/libunivalue.pc.in create mode 100644 src/univalue/test/.gitignore create mode 100644 src/univalue/test/fail1.json create mode 100644 src/univalue/test/fail10.json create mode 100644 src/univalue/test/fail11.json create mode 100644 src/univalue/test/fail12.json create mode 100644 src/univalue/test/fail13.json create mode 100644 src/univalue/test/fail14.json create mode 100644 src/univalue/test/fail15.json create mode 100644 src/univalue/test/fail16.json create mode 100644 src/univalue/test/fail17.json create mode 100644 src/univalue/test/fail18.json create mode 100644 src/univalue/test/fail19.json create mode 100644 src/univalue/test/fail2.json create mode 100644 src/univalue/test/fail20.json create mode 100644 src/univalue/test/fail21.json create mode 100644 src/univalue/test/fail22.json create mode 100644 src/univalue/test/fail23.json create mode 100644 src/univalue/test/fail24.json create mode 100644 src/univalue/test/fail25.json create mode 100644 src/univalue/test/fail26.json create mode 100644 src/univalue/test/fail27.json create mode 100644 src/univalue/test/fail28.json create mode 100644 src/univalue/test/fail29.json create mode 100644 src/univalue/test/fail3.json create mode 100644 src/univalue/test/fail30.json create mode 100644 src/univalue/test/fail31.json create mode 100644 src/univalue/test/fail32.json create mode 100644 src/univalue/test/fail33.json create mode 100644 src/univalue/test/fail34.json create mode 100644 src/univalue/test/fail35.json create mode 100644 src/univalue/test/fail36.json create mode 100644 src/univalue/test/fail37.json create mode 100644 src/univalue/test/fail38.json create mode 100644 src/univalue/test/fail39.json create mode 100644 src/univalue/test/fail4.json create mode 100644 src/univalue/test/fail40.json create mode 100644 src/univalue/test/fail41.json create mode 100644 src/univalue/test/fail42.json create mode 100644 src/univalue/test/fail44.json create mode 100644 src/univalue/test/fail5.json create mode 100644 src/univalue/test/fail6.json create mode 100644 src/univalue/test/fail7.json create mode 100644 src/univalue/test/fail8.json create mode 100644 src/univalue/test/fail9.json create mode 100644 src/univalue/test/no_nul.cpp create mode 100644 src/univalue/test/object.cpp create mode 100644 src/univalue/test/pass1.json create mode 100644 src/univalue/test/pass2.json create mode 100644 src/univalue/test/pass3.json create mode 100644 src/univalue/test/round1.json create mode 100644 src/univalue/test/round2.json create mode 100644 src/univalue/test/round3.json create mode 100644 src/univalue/test/round4.json create mode 100644 src/univalue/test/round5.json create mode 100644 src/univalue/test/round6.json create mode 100644 src/univalue/test/round7.json create mode 100644 src/univalue/test/test_json.cpp create mode 100644 src/univalue/test/unitester.cpp create mode 100644 src/wallet/db.cpp create mode 100644 src/wallet/db.h create mode 100644 src/wallet/rpcdump.cpp create mode 100644 src/wallet/rpcwallet.cpp create mode 100644 src/wallet/test/wallet_tests.cpp create mode 100644 src/wallet/wallet.cpp create mode 100644 src/wallet/wallet.h create mode 100644 src/wallet/wallet_ismine.cpp create mode 100644 src/wallet/wallet_ismine.h create mode 100644 src/wallet/walletdb.cpp create mode 100644 src/wallet/walletdb.h create mode 100644 src/zpiv/accumulatorcheckpoints.cpp create mode 100644 src/zpiv/accumulatorcheckpoints.h create mode 100644 src/zpiv/accumulatorcheckpoints.json.h create mode 100644 src/zpiv/accumulatormap.cpp create mode 100644 src/zpiv/accumulatormap.h create mode 100644 src/zpiv/accumulators.cpp create mode 100644 src/zpiv/accumulators.h create mode 100644 src/zpiv/deterministicmint.cpp create mode 100644 src/zpiv/deterministicmint.h create mode 100644 src/zpiv/mintpool.cpp create mode 100644 src/zpiv/mintpool.h create mode 100644 src/zpiv/witness.cpp create mode 100644 src/zpiv/witness.h create mode 100644 src/zpiv/zerocoin.cpp create mode 100644 src/zpiv/zerocoin.h create mode 100644 src/zpiv/zpivmodule.cpp create mode 100644 src/zpiv/zpivmodule.h create mode 100644 src/zpiv/zpivtracker.cpp create mode 100644 src/zpiv/zpivtracker.h create mode 100644 src/zpiv/zpivwallet.cpp create mode 100644 src/zpiv/zpivwallet.h create mode 100644 src/zpivchain.cpp create mode 100644 src/zpivchain.h diff --git a/build-aux/m4/gmp.m4 b/build-aux/m4/gmp.m4 new file mode 100644 index 0000000..60fa06b --- /dev/null +++ b/build-aux/m4/gmp.m4 @@ -0,0 +1,16 @@ +dnl Copyright (c) 2018 The PIVX Core developers +dnl Distributed under the MIT software license, see the accompanying +dnl file COPYING or http://www.opensource.org/licenses/mit-license.php. + +dnl +AC_DEFUN([GMP_CHECK],[ +if test x"$has_gmp" != x"yes"; then + AC_CHECK_HEADER(gmp.h,[ + AC_CHECK_LIB(gmp, __gmpz_init,[ + has_gmp=yes; + LIBS="$LIBS -lgmp"; + AC_DEFINE(HAVE_LIBGMP, 1, [Define this symbol if libgmp is installed]) + ]) + ]) +fi +]) diff --git a/build-aux/m4/l_atomic.m4 b/build-aux/m4/l_atomic.m4 new file mode 100644 index 0000000..75c43f9 --- /dev/null +++ b/build-aux/m4/l_atomic.m4 @@ -0,0 +1,46 @@ +dnl Copyright (c) 2015 Tim Kosse +dnl Copying and distribution of this file, with or without modification, are +dnl permitted in any medium without royalty provided the copyright notice +dnl and this notice are preserved. This file is offered as-is, without any +dnl warranty. + +# Some versions of gcc/libstdc++ require linking with -latomic if +# using the C++ atomic library. +# +# Sourced from http://bugs.debian.org/797228 + +m4_define([_CHECK_ATOMIC_testbody], [[ + #include + #include + + int main() { + std::atomic a{}; + + int64_t v = 5; + int64_t r = a.fetch_add(v); + return static_cast(r); + } +]]) + +AC_DEFUN([CHECK_ATOMIC], [ + + AC_LANG_PUSH(C++) + + AC_MSG_CHECKING([whether std::atomic can be used without link library]) + + AC_LINK_IFELSE([AC_LANG_SOURCE([_CHECK_ATOMIC_testbody])],[ + AC_MSG_RESULT([yes]) + ],[ + AC_MSG_RESULT([no]) + LIBS="$LIBS -latomic" + AC_MSG_CHECKING([whether std::atomic needs -latomic]) + AC_LINK_IFELSE([AC_LANG_SOURCE([_CHECK_ATOMIC_testbody])],[ + AC_MSG_RESULT([yes]) + ],[ + AC_MSG_RESULT([no]) + AC_MSG_FAILURE([cannot figure out how to use std::atomic]) + ]) + ]) + + AC_LANG_POP +]) diff --git a/build-aux/snap/local/desktop/pivx-qt.desktop b/build-aux/snap/local/desktop/pivx-qt.desktop new file mode 100644 index 0000000..48887db --- /dev/null +++ b/build-aux/snap/local/desktop/pivx-qt.desktop @@ -0,0 +1,15 @@ +# http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html + +[Desktop Entry] +Encoding=UTF-8 +Name=PIVX Core +Comment=PIVX Core QT main network +GenericName=PIVX Digital Currency QT client main network +Exec=pivx-core.qt %u +Terminal=false +Type=Application +Icon=${SNAP}/share/pixmaps/pivx.png +MimeType=x-scheme-handler/pivx; +Categories=X-Office;X-Finance; +Keywords=internet;pivx;zpiv;piv;core;wallet;qt;main;snap;launchpad;crypto;digital;currency;coin;token;zerocoin; +Version=1.0 diff --git a/build-aux/snap/local/desktop/pivx-qt_testnet.desktop b/build-aux/snap/local/desktop/pivx-qt_testnet.desktop new file mode 100644 index 0000000..a2c5c0f --- /dev/null +++ b/build-aux/snap/local/desktop/pivx-qt_testnet.desktop @@ -0,0 +1,15 @@ +# http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html + +[Desktop Entry] +Encoding=UTF-8 +Name=PIVX Core +Comment=PIVX Core QT test network +GenericName=PIVX Digital Currency QT client testnet network +Exec=pivx-core.qt-testnet %u +Terminal=false +Type=Application +Icon=${SNAP}/share/pixmaps/pivx_testnet.png +MimeType=x-scheme-handler/piv; +Categories=X-Office;X-Finance; +Keywords=internet;pivx;zpiv;tpiv;core;wallet;qt;testnet;snap;launchpad;crypto;digital;currency;coin;token;zerocoin; +Version=1.0 diff --git a/build-aux/snap/local/desktop/pivxd.desktop b/build-aux/snap/local/desktop/pivxd.desktop new file mode 100644 index 0000000..52a3422 --- /dev/null +++ b/build-aux/snap/local/desktop/pivxd.desktop @@ -0,0 +1,15 @@ +# http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html + +[Desktop Entry] +Encoding=UTF-8 +Name=PIVX Core Daemon SNAP +Comment=main +GenericName=PIVX Digital Currency Daemon Client main network +Exec=pivx-core.daemon %u +Terminal=true +Type=Application +Icon=${SNAP}/share/pixmaps/pivx.png +MimeType=x-scheme-handler/piv; +Categories=X-Office;X-Finance; +Keywords=internet;pivx;zpiv;core;wallet;daemon;main;snap;launchpad;crypto;digital;currency;coin;token;zerocoin; +Version=1.0 diff --git a/build-aux/snap/local/desktop/pivxd_testnet.desktop b/build-aux/snap/local/desktop/pivxd_testnet.desktop new file mode 100644 index 0000000..6cf6a55 --- /dev/null +++ b/build-aux/snap/local/desktop/pivxd_testnet.desktop @@ -0,0 +1,15 @@ +# http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html + +[Desktop Entry] +Encoding=UTF-8 +Name=PIVX Core Daemon SNAP +Comment=testnet +GenericName=PIVX Digital Currency Daemon Client testnet network +Exec=pivx-core.daemon-testnet %u +Terminal=true +Type=Application +Icon=${SNAP}/share/pixmaps/pivx_testnet.png +MimeType=x-scheme-handler/piv; +Categories=X-Office;X-Finance; +Keywords=internet;pivx;zpiv;core;wallet;daemon;testnet;snap;launchpad;crypto;digital;currency;coin;token;zerocoin; +Version=1.0 diff --git a/build-aux/snap/local/patches/X002-fix-bdb-tmp-folder.patch b/build-aux/snap/local/patches/X002-fix-bdb-tmp-folder.patch new file mode 100644 index 0000000..b561f58 --- /dev/null +++ b/build-aux/snap/local/patches/X002-fix-bdb-tmp-folder.patch @@ -0,0 +1,36 @@ +From dcfe31b190ab8a28f2617914afdf15c6be2a74d2 Mon Sep 17 00:00:00 2001 +From: cevap +Date: Mon, 4 Feb 2019 07:41:47 +0100 +Subject: [PATCH] fix-bdb-tmp-folder + +--- + depends/packages/bdb.mk | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/depends/packages/bdb.mk b/depends/packages/bdb.mk +index 6c9876c..291111c 100644 +--- a/depends/packages/bdb.mk ++++ b/depends/packages/bdb.mk +@@ -13,6 +13,19 @@ $(package)_cxxflags=-std=c++11 + endef + + define $(package)_preprocess_cmds ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' csharp/DatabaseEnvironment.cs && \ ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' csharp/DatabaseEnvironmentConfig.cs && \ ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' csharp/doc/libdb_dotnet48.XML && \ ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' docs/api_reference/C/envset_tmp_dir.html && \ ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' docs/api_reference/CXX/envset_tmp_dir.html && \ ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' docs/csharp/html/F_BerkeleyDB_DatabaseEnvironmentConfig_TempDir.htm && \ ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' docs/csharp/html/P_BerkeleyDB_DatabaseEnvironment_TempDir.htm && \ ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' docs/java/com/sleepycat/db/EnvironmentConfig.html && \ ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' docs/programmer_reference/test.html && \ ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' java/src/com/sleepycat/db/EnvironmentConfig.java && \ ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' os/os_tmpdir.c && \ ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' php_db4/samples/simple_counter.php && \ ++ sed -i.old 's/\/var\/tmp/$HOME\/snap\/pivx\/common\/var\/tmp/g' php_db4/samples/transactional_counter.php && \ + sed -i.old 's/__atomic_compare_exchange/__atomic_compare_exchange_db/' dbinc/atomic.h && \ + sed -i.old 's/atomic_init/atomic_init_db/' dbinc/atomic.h mp/mp_region.c mp/mp_mvcc.c mp/mp_fget.c mutex/mut_method.c mutex/mut_tas.c && \ + cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub dist +-- +2.17.1 + diff --git a/build-aux/snap/local/patches/X003-fix-use-snap-instead-of-dirty.patch b/build-aux/snap/local/patches/X003-fix-use-snap-instead-of-dirty.patch new file mode 100644 index 0000000..7556040 --- /dev/null +++ b/build-aux/snap/local/patches/X003-fix-use-snap-instead-of-dirty.patch @@ -0,0 +1,25 @@ +From ec230421e7107448ca9ac2421eb702924e12a879 Mon Sep 17 00:00:00 2001 +From: observerdev +Date: Thu, 11 Apr 2019 00:12:00 +0200 +Subject: [PATCH] fix-use-snap-instead--of-dirty + +--- + share/genbuild.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/share/genbuild.sh b/share/genbuild.sh +index 519cc6e..de56b8d 100755 +--- a/share/genbuild.sh ++++ b/share/genbuild.sh +@@ -37,7 +37,7 @@ if [ "${BITCOIN_GENBUILD_NO_GIT}" != "1" -a -e "$(which git 2>/dev/null)" -a "$( + + # otherwise generate suffix from git, i.e. string like "59887e8-dirty" + SUFFIX=$(git rev-parse --short HEAD) +- git diff-index --quiet HEAD -- || SUFFIX="$SUFFIX-dirty" ++ git diff-index --quiet HEAD -- || SUFFIX="$SUFFIX-snap" + + # get a string like "2012-04-10 16:27:19 +0200" + LAST_COMMIT_DATE="$(git log -n 1 --format="%ci")" +-- +2.17.1 + diff --git a/build-aux/snap/snapcraft.yaml b/build-aux/snap/snapcraft.yaml new file mode 100644 index 0000000..2dcf03f --- /dev/null +++ b/build-aux/snap/snapcraft.yaml @@ -0,0 +1,290 @@ +# Copyright (c) 2018-2019 The Ion developers +# Copyright (c) 2019 The PIVX developers +name: pivx-core +base: core18 +version: 4.0.99 +summary: PIVX (Private – Instant – Verified – Transaction) +description: | + PIVX is an MIT licensed, + open source, blockchain-based cryptocurrency with + ultra fast transactions, low fees, high network decentralization, and + Zero Knowledge cryptography proofs for industry-leading + transaction anonymity. + + - [Download](https://pivx.org/wp-content/uploads/2018/10/PIVX-White.pdf) PIVX White Paper PDF +grade: devel +confinement: strict +apps: + daemon: + command: pivxd + plugs: [network, network-bind, home, removable-media] + desktop: pivxd.desktop + environment: + XDG_DATA_DIRS: $SNAP_USER_DATA:$SNAP/usr/share:$XDG_DATA_DIRS + HOME: $SNAP_USER_COMMON + daemon-testnet: + command: pivxd --testnet + plugs: [network, network-bind, home, removable-media] + desktop: pivxd_testnet.desktop + environment: + XDG_DATA_DIRS: $SNAP_USER_DATA:$SNAP/usr/share:$XDG_DATA_DIRS + HOME: $SNAP_USER_COMMON + qt: + command: pivx-qt + plugs: [network, network-bind, network-status, unity7, desktop, desktop-legacy, wayland, x11, mir, opengl, home, gsettings, removable-media, screen-inhibit-control, pulseaudio, media-hub] + desktop: pivx-qt.desktop + environment: + QT_XKB_CONFIG_ROOT: $SNAP_USER_DATA:$SNAP/usr/share:$QT_XKB_CONFIG_ROOT + XDG_DATA_DIRS: $SNAP_USER_DATA:$SNAP/usr/share:$XDG_DATA_DIRS + HOME: $SNAP_USER_COMMON + qt-testnet: + command: pivx-qt --testnet + plugs: [network, network-bind, network-status, unity7, desktop, desktop-legacy, wayland, x11, mir, opengl, home, gsettings, removable-media, screen-inhibit-control, pulseaudio, media-hub] + desktop: pivx-qt_testnet.desktop + environment: + QT_XKB_CONFIG_ROOT: $SNAP_USER_DATA:$SNAP/usr/share:$QT_XKB_CONFIG_ROOT + XDG_DATA_DIRS: $SNAP_USER_DATA:$SNAP/usr/share:$XDG_DATA_DIRS + HOME: $SNAP_USER_COMMON + cli: + command: pivx-cli + plugs: [network, network-bind, home, removable-media] + environment: + XDG_DATA_DIRS: $SNAP_USER_DATA:$SNAP/usr/share:$XDG_DATA_DIRS + HOME: $SNAP_USER_COMMON + cli-testnet: + command: pivx-cli --testnet + plugs: [network, network-bind, home, removable-media] + environment: + XDG_DATA_DIRS: $SNAP_USER_DATA:$SNAP/usr/share:$XDG_DATA_DIRS + HOME: $SNAP_USER_COMMON + tx: + command: pivx-tx + plugs: [home] + test: + command: test_pivx + plugs: [home] + testqt: + command: test_pivx-qt + plugs: [home] +parts: + pivx-core: + source: https://github.com/PIVX-Project/PIVX + source-type: git + source-tag: master + plugin: nil + override-build: | + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "CUSTOM SETTINGS" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + # use override prefix if binaries differ from project name, for ion it does, + # project is called ioncore because ion exists already as package. For anybody + # offering non official release and using own SNAP, this variable should be used + # default value is "false", to enable it, use your projects binary prefix + OVERRIDEBINPREFIX="pivx" + OVERRIDEDATADIR="false" + OVERRIDECONF="${OVERRIDEDATADIR}" + COPYCONF=0 # copy example config into users data folder, 1 = enabled + JOBS=4 # 0 means off and make will run without -j + PATCH=1 # 1 = enabled + SPLASHPNGS=0 # patch pngs to differ visaully from those installed from self compilation or other source like deb + FIXPPCBUILD=1 # if ppc builds fail due to failed qt, apps part will return error and build will fail, 1 = enabled + EXTRALOG=0 # prints env and all installed files at the end of current script + RUNTESTS=1 # run make check after post install part + echo "-----------------------------------------------" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "SET OVERRIDE VARIABLES IF SET" # checks OVERRIDEBINPREFIX, OVERRIDEDATADIR and OVERRIDECONF + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + if [ $OVERRIDEBINPREFIX = "false" ]; then + BINPREF="${SNAPCRAFT_PROJECT_NAME}" + else + BINPREF="${OVERRIDEBINPREFIX}" + fi + if [ $OVERRIDEDATADIR = "false" ]; then + DATADIR="${SNAPCRAFT_PROJECT_NAME}" + else + DATADIR="${OVERRIDEDATADIR}" + fi + if [ $OVERRIDECONF = "false" ]; then + CONF="${SNAPCRAFT_PROJECT_NAME}" + else + CONF="${OVERRIDECONF}" + fi + echo "BINPREF VARIABLE - ${BINPREF}" + echo "DATADIR VARIABLE - ${DATADIR}" + echo "CONF VARIABLE - ${CONF}" + echo "-----------------------------------------------" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "OVERRIDE ARCHITECTURE" # applies currently only on i386, for i386 architecture, we will use i686-linux-gnu to compile dependencies + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + if [ $SNAPCRAFT_ARCH_TRIPLET = "i386-linux-gnu" ]; then + HOST="i686-linux-gnu" + else + HOST="${SNAPCRAFT_ARCH_TRIPLET}" + fi + echo "-----------------------------------------------" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "APPLY PATCHES ${BINPREF}-${SNAPCRAFT_PROJECT_VERSION}" # patches which have to be applied for compilation, replace splash screen + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + cd ${SNAPCRAFT_PART_BUILD} + if [ $PATCH = 1 ]; then + echo "apply patches:" + git apply $SNAPCRAFT_PART_BUILD/build-aux/snap/local/patches/X002-fix-bdb-tmp-folder.patch + git apply $SNAPCRAFT_PART_BUILD/build-aux/snap/local/patches/X003-fix-use-snap-instead-of-dirty.patch + sed -i 's/tar --strip-components/tar --no-same-owner --strip-components/' ${SNAPCRAFT_PART_BUILD}/depends/funcs.mk + else + echo "APPLY .patch files during compilation is disabled, skipping" + fi + if [ $SPLASHPNGS = 1 ]; then + echo "replace splash screen with snapcrafts" + mv -f $SNAPCRAFT_PART_BUILD/contrib/snap/images/splash.png $SNAPCRAFT_PART_BUILD/src/qt/res/images/splash.png + mv -f $SNAPCRAFT_PART_BUILD/contrib/snap/images/splash_regtest.png $SNAPCRAFT_PART_BUILD/src/qt/res/images/splash_regtest.png + mv -f $SNAPCRAFT_PART_BUILD/contrib/snap/images/splash_testnet.png $SNAPCRAFT_PART_BUILD/src/qt/res/images/splash_testnet.png + mv -f $SNAPCRAFT_PART_BUILD/contrib/snap/icons/favicon.ico $SNAPCRAFT_PART_BUILD/share/pixmaps/favicon.ico + mv -f $SNAPCRAFT_PART_BUILD/contrib/snap/icons/favicon_testnet.ico $SNAPCRAFT_PART_BUILD/share/pixmaps/favicon_testnet.ico + mv -f $SNAPCRAFT_PART_BUILD/contrib/snap/icons/favicon_regtest.ico $SNAPCRAFT_PART_BUILD/share/pixmaps/favicon_regtest.ico + mv -f $SNAPCRAFT_PART_BUILD/build-aux/snap/local/desktop/${BINPREF}.png $SNAPCRAFT_PART_BUILD/src/qt/res/icons/${BINPREF}.png + mv -f $SNAPCRAFT_PART_BUILD/build-aux/snap/local/desktop/${BINPREF}_testnet.png $SNAPCRAFT_PART_BUILD/src/qt/res/icons/${BINPREF}_testnet.png + mv -f $SNAPCRAFT_PART_BUILD/build-aux/snap/local/desktop/${BINPREF}_regtest.png $SNAPCRAFT_PART_BUILD/src/qt/res/icons/${BINPREF}_regtest.png + else + echo "patch icons and images is disabled, skipping" + fi + echo "-----------------------------------------------" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "BUILD DEPENDENCIES" + echo "PRECOMPILE ${SNAPCRAFT_ARCH_TRIPLET} DEPENDENCIES FOR ${BINPREF}-${SNAPCRAFT_PROJECT_VERSION}" # cd to depends folder, download and precompile + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + cd ${SNAPCRAFT_PART_BUILD}/depends + make download-linux + if [ $JOBS = 0 ]; then + make + else + make -j${JOBS} HOST=${HOST} + fi + echo "-----------------------------------------------" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "CONFIGURATION OF ${BINPREF}-${SNAPCRAFT_PROJECT_VERSION}" # run configure with prefix to include depends + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + cd ${SNAPCRAFT_PART_BUILD} + echo "Configure and build ${BINPREF}" + ./autogen.sh + ./configure --prefix=`pwd`/depends/${HOST} + echo "-----------------------------------------------" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "COMPILATION OF ${BINPREF}-${SNAPCRAFT_PROJECT_VERSION}" # run make to compile using -j + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + if [ $JOBS = 0 ]; then + make + else + make -j${JOBS} HOST=${HOST} + fi + echo "-----------------------------------------------" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "INSTALLATION OF ${BINPREF}-${SNAPCRAFT_PROJECT_VERSION}" # run make install with a prefix where to install + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + make install prefix=${SNAPCRAFT_PART_INSTALL} + install -m 0644 -D -T $SNAPCRAFT_PART_BUILD/src/qt/res/icons/bitcoin.png $SNAPCRAFT_PART_INSTALL/share/pixmaps/pivx.png + install -m 0644 -D -T $SNAPCRAFT_PART_BUILD/src/qt/res/icons/bitcoin_testnet.png $SNAPCRAFT_PART_INSTALL/share/pixmaps/pivx_testnet.png + echo "-----------------------------------------------" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "POST INSTALL SCRIPTS OF ${BINPREF}-${SNAPCRAFT_PROJECT_VERSION}" # run make install with a prefix where to install + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + if [ $FIXPPCBUILD = 1 ]; then + if [ $SNAPCRAFT_ARCH_TRIPLET = "powerpc64le-linux-gnu" ]; then + if [ -e $SNAPCRAFT_PART_BUILD/src/qt/${BINPREF}-qt ]; then + echo "PPC64EL fix - ${BINPREF}-qt exists, fix unrequired" + else + echo "echo ${BINPREF}-qt is not installed" > ${SNAPCRAFT_PART_INSTALL}/usr/bin/${BINPREF}-qt + chmod +x ${SNAPCRAFT_PART_INSTALL}/usr/bin/${BINPREF}-qt + echo "PPC64EL fix - ${BINPREF}-qt does not exist, fix required, dummy as ${BINPREF}-qt" + fi + if [ -e $SNAPCRAFT_PART_BUILD/src/qt/test/test_${BINPREF}-qt ]; then + echo "PPC64EL fix - test_${BINPREF}-qt exists, fix unrequired" + else + echo "echo test_${BINPREF}-qt is not installed" > ${SNAPCRAFT_PART_INSTALL}/usr/bin/test_${BINPREF}-qt + chmod +x ${SNAPCRAFT_PART_INSTALL}/usr/bin/test_${BINPREF}-qt + echo "PPC64EL fix - test_${BINPREF}-qt does not exist, fix required, dummy as test_${BINPREF}-qt" + fi + if [ -e $SNAPCRAFT_PART_BUILD/src/test/test_${BINPREF} ]; then + echo "PPC64EL fix - test_${BINPREF} exists, fix unrequired" + else + echo "echo test_${BINPREF} is not installed" > ${SNAPCRAFT_PART_INSTALL}/usr/bin/test_${BINPREF} + chmod +x ${SNAPCRAFT_PART_INSTALL}/usr/bin/test_${BINPREF} + echo "PPC64EL fix - test_${BINPREF} does not exist, fix required, dummy as test_${BINPREF}" + fi + fi + else + echo "PPC64EL fix disabled, skipping" + fi + echo "-----------------------------------------------" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "CONFIG FILE" # create .pivx folder and copy example config - !!!warning!!!: do not copy as pivx.conf + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + mkdir -p ${SNAP_USER_COMMON}/.${DATADIR} + if [ $COPYCONF = 1 ]; then + cp ${SNAPCRAFT_PART_BUILD}/contrib/debian/manpages/${CONF}.conf.5 ${SNAP_USER_COMMON}/.${DATADIR}/${CONF}-example.conf + else + echo "COPY CONFIG FILE disabled, skipping" + fi + echo "-----------------------------------------------" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "RUN TESTS" # if tests fail to pass, build and release will fail + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + cd ${SNAPCRAFT_PART_BUILD} + if [ ! $SNAPCRAFT_ARCH_TRIPLET = "s390x-linux-gnu" ]; then + if [ $RUNTESTS = 1 ]; then + make check + else + echo "RUN TESTS disabled, skipping" + fi + fi + echo "-----------------------------------------------" + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + echo "INSTALATION OF ${BINPREF}-${SNAPCRAFT_PROJECT_VERSION}-snap has finished" # List installed files and vars when installation is finished + echo "+++++++++++++++++++++++++++++++++++++++++++++++" + if [ $EXTRALOG = 1 ]; then + find ${SNAPCRAFT_PART_INSTALL} -type f + env + else + echo "EXTRA LOG disabled, skipping" + fi + echo "-----------------------------------------------+" + build-packages: + - curl + - wget + - gcc + - gcc-8 + - g++ + - g++-8 + - make + - autoconf + - automake + - cmake + - pkg-config + - libtool + - bsdmainutils + - binutils + - python3 + - help2man + - doxygen + stage-packages: + - libxkbcommon0 + - ttf-ubuntu-font-family + - dmz-cursor-theme + - light-themes + - shared-mime-info + - libqt5gui5 + - libgdk-pixbuf2.0-0 + - libqt5svg5 # for loading icon themes which are svg + - locales-all + - qtwayland5 + - ca-certificates + after: + - patches + patches: + source: build-aux/snap/local/patches + plugin: dump + prime: + - -* + desktop: + source: build-aux/snap/local/desktop + plugin: dump \ No newline at end of file diff --git a/contrib/cmake/FindBerkeleyDB.cmake b/contrib/cmake/FindBerkeleyDB.cmake new file mode 100644 index 0000000..1b5188c --- /dev/null +++ b/contrib/cmake/FindBerkeleyDB.cmake @@ -0,0 +1,146 @@ +# Author: sum01 +# Git: https://github.com/sum01/FindBerkeleyDB +# Read the README.md for the full info. + +# Allow user to pass a path instead of guessing +if(BerkeleyDB_ROOT_DIR) + set(_BERKELEYDB_PATHS "${BerkeleyDB_ROOT_DIR}") +elseif(CMAKE_SYSTEM_NAME MATCHES ".*[wW]indows.*") + # MATCHES is used to work on any devies with windows in the name + # Shameless copy-paste from FindOpenSSL.cmake v3.8 + file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles) + list(APPEND _BERKELEYDB_HINTS "${_programfiles}") + + # There's actually production release and version numbers in the file path. + # For example, if they're on v6.2.32: C:/Program Files/Oracle/Berkeley DB 12cR1 6.2.32/ + # But this still works to find it, so I'm guessing it can accept partial path matches. + + foreach(_TARGET_BERKELEYDB_PATH "Oracle/Berkeley DB" "Berkeley DB") + list(APPEND _BERKELEYDB_PATHS + "${_programfiles}/${_TARGET_BERKELEYDB_PATH}" + "C:/Program Files (x86)/${_TARGET_BERKELEYDB_PATH}" + "C:/Program Files/${_TARGET_BERKELEYDB_PATH}" + "C:/${_TARGET_BERKELEYDB_PATH}" + ) + endforeach() +else() + # Paths for anything other than Windows + # Cellar/berkeley-db is for macOS from homebrew installation + list(APPEND _BERKELEYDB_PATHS + "/usr/local/Cellar/berkeley-db@4" + "/usr/local/Cellar/berkeley-db" + "/opt" + "/opt/local" + "/usr/local" + ) +endif() + +# Find includes path +find_path(BerkeleyDB_INCLUDE_DIRS + db_cxx.h + PATHS "${_BERKELEYDB_PATHS}" + PATH_SUFFIXES "include" "includes" + ) + +# Checks if the version file exists, save the version file to a var, and fail if there's no version file +if(BerkeleyDB_INCLUDE_DIRS) + # Read the version file db.h into a variable + file(READ "${BerkeleyDB_INCLUDE_DIRS}/db.h" _BERKELEYDB_DB_HEADER) + # Parse the DB version into variables to be used in the lib names + string(REGEX REPLACE ".*DB_VERSION_MAJOR ([0-9]+).*" "\\1" BerkeleyDB_VERSION_MAJOR "${_BERKELEYDB_DB_HEADER}") + string(REGEX REPLACE ".*DB_VERSION_MINOR ([0-9]+).*" "\\1" BerkeleyDB_VERSION_MINOR "${_BERKELEYDB_DB_HEADER}") + # Patch version example on non-crypto installs: x.x.xNC + string(REGEX REPLACE ".*DB_VERSION_PATCH ([0-9]+(NC)?).*" "\\1" BerkeleyDB_VERSION_PATCH "${_BERKELEYDB_DB_HEADER}") +else() + if(BerkeleyDB_FIND_REQUIRED) + # If the find_package(BerkeleyDB REQUIRED) was used, fail since we couldn't find the header + message(FATAL_ERROR "Failed to find Berkeley DB's header file \"db.h\"! Try setting \"BerkeleyDB_ROOT_DIR\" when initiating Cmake.") + elseif(NOT BerkeleyDB_FIND_QUIETLY) + message(WARNING "Failed to find Berkeley DB's header file \"db.h\"! Try setting \"BerkeleyDB_ROOT_DIR\" when initiating Cmake.") + endif() + # Set some garbage values to the versions since we didn't find a file to read + set(BerkeleyDB_VERSION_MAJOR "0") + set(BerkeleyDB_VERSION_MINOR "0") + set(BerkeleyDB_VERSION_PATCH "0") +endif() + +# The actual returned/output version variable (the others can be used if needed) +set(BerkeleyDB_VERSION "${BerkeleyDB_VERSION_MAJOR}.${BerkeleyDB_VERSION_MINOR}.${BerkeleyDB_VERSION_PATCH}") + +# Finds the target library for berkeley db, since they all follow the same naming conventions +macro(findpackage_berkeleydb_get_lib _BERKELEYDB_OUTPUT_VARNAME _TARGET_BERKELEYDB_LIB) + # Different systems sometimes have a version in the lib name... + # and some have a dash or underscore before the versions. + # CMake recommends to put unversioned names before versioned names + find_library(${_BERKELEYDB_OUTPUT_VARNAME} + NAMES + "${_TARGET_BERKELEYDB_LIB}" + "lib${_TARGET_BERKELEYDB_LIB}" + "lib${_TARGET_BERKELEYDB_LIB}${BerkeleyDB_VERSION_MAJOR}.${BerkeleyDB_VERSION_MINOR}" + "lib${_TARGET_BERKELEYDB_LIB}-${BerkeleyDB_VERSION_MAJOR}.${BerkeleyDB_VERSION_MINOR}" + "lib${_TARGET_BERKELEYDB_LIB}_${BerkeleyDB_VERSION_MAJOR}.${BerkeleyDB_VERSION_MINOR}" + "lib${_TARGET_BERKELEYDB_LIB}${BerkeleyDB_VERSION_MAJOR}${BerkeleyDB_VERSION_MINOR}" + "lib${_TARGET_BERKELEYDB_LIB}-${BerkeleyDB_VERSION_MAJOR}${BerkeleyDB_VERSION_MINOR}" + "lib${_TARGET_BERKELEYDB_LIB}_${BerkeleyDB_VERSION_MAJOR}${BerkeleyDB_VERSION_MINOR}" + "lib${_TARGET_BERKELEYDB_LIB}${BerkeleyDB_VERSION_MAJOR}" + "lib${_TARGET_BERKELEYDB_LIB}-${BerkeleyDB_VERSION_MAJOR}" + "lib${_TARGET_BERKELEYDB_LIB}_${BerkeleyDB_VERSION_MAJOR}" + HINTS ${_BERKELEYDB_HINTS} + PATH_SUFFIXES "lib" "lib64" "libs" "libs64" + PATHS ${_BERKELEYDB_PATHS} + ) + # If the library was found, add it to our list of libraries + if(${_BERKELEYDB_OUTPUT_VARNAME}) + # If found, append to our libraries variable + # The ${{}} is because the first expands to target the real variable, the second expands the variable's contents... + # and the real variable's contents is the path to the lib. Thus, it appends the path of the lib to BerkeleyDB_LIBRARIES. + list(APPEND BerkeleyDB_LIBRARIES "${${_BERKELEYDB_OUTPUT_VARNAME}}") + endif() +endmacro() + +# Find and set the paths of the specific library to the variable +findpackage_berkeleydb_get_lib(BerkeleyDB_LIBRARY "db") +# NOTE: Windows doesn't have a db_cxx lib, but instead compiles the cxx code into the "db" lib +findpackage_berkeleydb_get_lib(BerkeleyDB_Cxx_LIBRARY "db_cxx") +# NOTE: I don't think Linux/Unix gets an SQL lib +findpackage_berkeleydb_get_lib(BerkeleyDB_Sql_LIBRARY "db_sql") +findpackage_berkeleydb_get_lib(BerkeleyDB_Stl_LIBRARY "db_stl") + +# Needed for find_package_handle_standard_args() +include(FindPackageHandleStandardArgs) +# Fails if required vars aren't found, or if the version doesn't meet specifications. +find_package_handle_standard_args(BerkeleyDB + FOUND_VAR BerkeleyDB_FOUND + REQUIRED_VARS + BerkeleyDB_INCLUDE_DIRS + BerkeleyDB_LIBRARY + VERSION_VAR BerkeleyDB_VERSION + ) + +# Create an imported lib for easy linking by external projects +if(BerkeleyDB_FOUND AND BerkeleyDB_LIBRARIES AND NOT TARGET Oracle::BerkeleyDB) + add_library(Oracle::BerkeleyDB UNKNOWN IMPORTED) + set_target_properties(Oracle::BerkeleyDB PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${BerkeleyDB_INCLUDE_DIRS}" + IMPORTED_LOCATION "${BerkeleyDB_LIBRARY}" + INTERFACE_LINK_LIBRARIES "${BerkeleyDB_LIBRARIES}" + ) +endif() + +# Only show the includes path and libraries in the GUI if they click "advanced". +# Does nothing when using the CLI +mark_as_advanced(FORCE + BerkeleyDB_INCLUDE_DIRS + BerkeleyDB_LIBRARIES + BerkeleyDB_LIBRARY + BerkeleyDB_Cxx_LIBRARY + BerkeleyDB_Sql_LIBRARY + BerkeleyDB_Stl_LIBRARY + ) + +include(FindPackageMessage) +# A message that tells the user what includes/libs were found, and obeys the QUIET command. +find_package_message(BerkeleyDB + "Found BerkeleyDB libraries: ${BerkeleyDB_LIBRARIES}" + "[${BerkeleyDB_LIBRARIES}[${BerkeleyDB_INCLUDE_DIRS}]]" + ) diff --git a/contrib/cmake/FindGMP.cmake b/contrib/cmake/FindGMP.cmake new file mode 100644 index 0000000..ee39ba1 --- /dev/null +++ b/contrib/cmake/FindGMP.cmake @@ -0,0 +1,33 @@ +# - Find GMP +# This module defines +# GMP_INCLUDE_DIR, where to find GMP headers +# GMP_LIBRARY, LibEvent libraries +# GMP_FOUND, If false, do not try to use GMP + +set(GMP_PREFIX "" CACHE PATH "path ") + +find_path(GMP_INCLUDE_DIR gmp.h gmpxx.h + PATHS ${GMP_PREFIX}/include /usr/include /usr/local/include ) + +find_library(GMP_LIBRARY NAMES gmp libgmp + PATHS ${GMP_PREFIX}/lib /usr/lib /usr/local/lib) + +if(GMP_INCLUDE_DIR AND GMP_LIBRARY) + get_filename_component(GMP_LIBRARY_DIR ${GMP_LIBRARY} PATH) + set(GMP_FOUND TRUE) +endif() + +if(GMP_FOUND) + if(NOT GMP_FIND_QUIETLY) + MESSAGE(STATUS "Found GMP: ${GMP_LIBRARY}") + endif() +elseif(GMP_FOUND) + if(GMP_FIND_REQUIRED) + message(FATAL_ERROR "Could not find GMP") + endif() +endif() + +mark_as_advanced( + GMP_LIB + GMP_INCLUDE_DIR +) diff --git a/contrib/cmake/FindLibEvent.cmake b/contrib/cmake/FindLibEvent.cmake new file mode 100644 index 0000000..7d02ded --- /dev/null +++ b/contrib/cmake/FindLibEvent.cmake @@ -0,0 +1,46 @@ +# - Find LibEvent (a cross event library) +# This module defines +# LIBEVENT_INCLUDE_DIR, where to find LibEvent headers +# LIBEVENT_LIB, LibEvent libraries +# LibEvent_FOUND, If false, do not try to use libevent + +if($ENV{target} MATCHES "Windows") + if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/depends/$ENV{triple}") + set(LIBEVENT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/depends/$ENV{triple}/include") + set(LIBEVENT_LIB "${CMAKE_CURRENT_SOURCE_DIR}/depends/$ENV{triple}/lib/libevent.a") + set(LIBEVENT_PTHREAD_LIB "${CMAKE_CURRENT_SOURCE_DIR}/depends/$ENV{triple}/lib/libevent.a") + endif() +else() + set(LibEvent_EXTRA_PREFIXES /usr/local /opt/local "$ENV{HOME}") + foreach(prefix ${LibEvent_EXTRA_PREFIXES}) + list(APPEND LibEvent_INCLUDE_PATHS "${prefix}/include") + list(APPEND LibEvent_LIB_PATHS "${prefix}/lib") + endforeach() + + find_path(LIBEVENT_INCLUDE_DIR event.h PATHS ${LibEvent_INCLUDE_PATHS}) + find_library(LIBEVENT_LIB NAMES event PATHS ${LibEvent_LIB_PATHS}) + find_library(LIBEVENT_PTHREAD_LIB NAMES event_pthreads PATHS ${LibEvent_LIB_PATHS}) +endif() + +if (LIBEVENT_LIB AND LIBEVENT_INCLUDE_DIR AND LIBEVENT_PTHREAD_LIB) + set(LibEvent_FOUND TRUE) + set(LIBEVENT_LIB ${LIBEVENT_LIB} ${LIBEVENT_PTHREAD_LIB}) +else () + set(LibEvent_FOUND FALSE) +endif () + +if (LibEvent_FOUND) + if (NOT LibEvent_FIND_QUIETLY) + message(STATUS "Found libevent: ${LIBEVENT_LIB}") + endif () +else () + if (LibEvent_FIND_REQUIRED) + message(FATAL_ERROR "Could NOT find libevent and libevent_pthread.") + endif () + message(STATUS "libevent and libevent_pthread NOT found.") +endif () + +mark_as_advanced( + LIBEVENT_LIB + LIBEVENT_INCLUDE_DIR +) diff --git a/contrib/cmake/FindMiniupnp.cmake b/contrib/cmake/FindMiniupnp.cmake new file mode 100644 index 0000000..31e2e39 --- /dev/null +++ b/contrib/cmake/FindMiniupnp.cmake @@ -0,0 +1,33 @@ +# - Find Miniupnp +# This module defines +# MINIUPNP_INCLUDE_DIR, where to find Miniupnp headers +# MINIUPNP_LIBRARY, Miniupnp libraries +# MINIUPNP_FOUND, If false, do not try to use Miniupnp + +set(MINIUPNP_PREFIX "" CACHE PATH "path ") + +find_path(MINIUPNP_INCLUDE_DIR miniupnpc/miniupnpc.h + PATHS ${MINIUPNP_PREFIX}/include /usr/include /usr/local/include ) + +find_library(MINIUPNP_LIBRARY NAMES miniupnpc libminiupnpc + PATHS ${MINIUPNP_PREFIX}/lib /usr/lib /usr/local/lib) + +if(MINIUPNP_INCLUDE_DIR AND MINIUPNP_LIBRARY) + get_filename_component(MINIUPNP_LIBRARY_DIR ${MINIUPNP_LIBRARY} PATH) + set(MINIUPNP_FOUND TRUE) +endif() + +if(MINIUPNP_FOUND) + if(NOT Miniupnp_FIND_QUIETLY) + MESSAGE(STATUS "Found Miniupnp: ${MINIUPNP_LIBRARY}") + endif() +else() + if(MINIUPNP_FIND_REQUIRED) + message(FATAL_ERROR "Could not find Miniupnp") + endif() +endif() + +mark_as_advanced( + MINIUPNP_LIBRARY + MINIUPNP_INCLUDE_DIR +) \ No newline at end of file diff --git a/contrib/cmake/FindQrcode.cmake b/contrib/cmake/FindQrcode.cmake new file mode 100644 index 0000000..702d0d1 --- /dev/null +++ b/contrib/cmake/FindQrcode.cmake @@ -0,0 +1,37 @@ +# - Find Qrcode +# This module defines +# QRCODE_INCLUDE_DIR, where to find libqrencode headers +# QRCODE_LIB, libqrencode libraries +# QRCODE_FOUND, If false, do not try to use libqrencode + +set(QRCODE_EXTRA_PREFIXES /usr/local /opt/local "$ENV{HOME}") +foreach(prefix ${ZMQ_EXTRA_PREFIXES}) + list(APPEND QRCODE_INCLUDE_PATHS "${prefix}/include") + list(APPEND QRCODE_LIB_PATHS "${prefix}/lib") +endforeach() + +find_path(QRCODE_INCLUDE_DIR qrencode.h PATHS ${QRCODE_INCLUDE_PATHS}) +find_library(QRCODE_LIB NAMES qrencode PATHS ${QRCODE_LIB_PATHS}) + +if (QRCODE_LIB AND QRCODE_INCLUDE_DIR) + set(QRCODE_FOUND TRUE) +else () + set(QRCODE_FOUND FALSE) +endif () + +if (QRCODE_FOUND) + if (NOT QRCODE_FIND_QUIETLY) + message(STATUS "Found libqrencode: ${QRCODE_LIB}") + include_directories(${QRCODE_INCLUDE_DIR}) + endif () +else () + if (QRCODE_FIND_REQUIRED) + message(FATAL_ERROR "Could NOT find libqrencode.") + endif () + message(STATUS "libqrencode NOT found.") +endif () + +mark_as_advanced( + QRCODE_LIB + QRCODE_INCLUDE_DIR +) diff --git a/contrib/cmake/FindZMQ.cmake b/contrib/cmake/FindZMQ.cmake new file mode 100644 index 0000000..84b0273 --- /dev/null +++ b/contrib/cmake/FindZMQ.cmake @@ -0,0 +1,37 @@ +# - Find ZeroMQ +# This module defines +# ZMQ_INCLUDE_DIR, where to find ZMQ headers +# ZMQ_LIB, ZMQ libraries +# ZMQ_FOUND, If false, do not try to use ZeroMQ + +set(ZMQ_EXTRA_PREFIXES /usr/local /opt/local "$ENV{HOME}") +foreach(prefix ${ZMQ_EXTRA_PREFIXES}) + list(APPEND ZMQ_INCLUDE_PATHS "${prefix}/include") + list(APPEND ZMQ_LIB_PATHS "${prefix}/lib") +endforeach() + +find_path(ZMQ_INCLUDE_DIR zmq.h PATHS ${ZMQ_INCLUDE_PATHS}) +find_library(ZMQ_LIB NAMES zmq PATHS ${ZMQ_LIB_PATHS}) + +if (ZMQ_LIB AND ZMQ_INCLUDE_DIR) + set(ZMQ_FOUND TRUE) +else () + set(ZMQ_FOUND FALSE) +endif () + +if (ZMQ_FOUND) + if (NOT ZMQ_FIND_QUIETLY) + message(STATUS "Found ZeroMQ: ${ZMQ_LIB}") + include_directories(${ZMQ_INCLUDE_DIR}) + endif () +else () + if (ZMQ_FIND_REQUIRED) + message(FATAL_ERROR "Could NOT find ZeroMQ.") + endif () + message(STATUS "ZeroMQ NOT found.") +endif () + +mark_as_advanced( + ZMQ_LIB + ZMQ_INCLUDE_DIR +) diff --git a/contrib/debian/examples/pivx.conf b/contrib/debian/examples/pivx.conf new file mode 100644 index 0000000..e1fa247 --- /dev/null +++ b/contrib/debian/examples/pivx.conf @@ -0,0 +1,105 @@ +## +## pivx.conf configuration file. Lines beginning with # are comments. +## + +# Network-related settings: + +# Run on the test network instead of the real pivx network. +#testnet=0 + +# Run a regression test network +#regtest=0 + +# Connect via a SOCKS5 proxy +#proxy=127.0.0.1:9050 + +############################################################## +## Quick Primer on addnode vs connect ## +## Let's say for instance you use addnode=4.2.2.4 ## +## addnode will connect you to and tell you about the ## +## nodes connected to 4.2.2.4. In addition it will tell ## +## the other nodes connected to it that you exist so ## +## they can connect to you. ## +## connect will not do the above when you 'connect' to it. ## +## It will *only* connect you to 4.2.2.4 and no one else.## +## ## +## So if you're behind a firewall, or have other problems ## +## finding nodes, add some using 'addnode'. ## +## ## +## If you want to stay private, use 'connect' to only ## +## connect to "trusted" nodes. ## +## ## +## If you run multiple nodes on a LAN, there's no need for ## +## all of them to open lots of connections. Instead ## +## 'connect' them all to one node that is port forwarded ## +## and has lots of connections. ## +## Thanks goes to [Noodle] on Freenode. ## +############################################################## + +# Use as many addnode= settings as you like to connect to specific peers +#addnode=69.164.218.197 +#addnode=10.0.0.2:51472 + +# Alternatively use as many connect= settings as you like to connect ONLY to specific peers +#connect=69.164.218.197 +#connect=10.0.0.1:51472 + +# Listening mode, enabled by default except when 'connect' is being used +#listen=1 + +# Maximum number of inbound+outbound connections. +#maxconnections= + +# +# JSON-RPC options (for controlling a running Pivx/pivxd process) +# + +# server=1 tells Pivx-QT and pivxd to accept JSON-RPC commands +#server=0 + +# You must set rpcuser and rpcpassword to secure the JSON-RPC api +#rpcuser=Ulysseys +#rpcpassword=YourSuperGreatPasswordNumber_DO_NOT_USE_THIS_OR_YOU_WILL_GET_ROBBED_385593 + +# How many seconds pivx will wait for a complete RPC HTTP request. +# after the HTTP connection is established. +#rpcclienttimeout=30 + +# By default, only RPC connections from localhost are allowed. +# Specify as many rpcallowip= settings as you like to allow connections from other hosts, +# either as a single IPv4/IPv6 or with a subnet specification. + +# NOTE: opening up the RPC port to hosts outside your local trusted network is NOT RECOMMENDED, +# because the rpcpassword is transmitted over the network unencrypted. + +# server=1 tells Pivx-QT to accept JSON-RPC commands. +# it is also read by pivxd to determine if RPC should be enabled +#rpcallowip=10.1.1.34/255.255.255.0 +#rpcallowip=1.2.3.4/24 +#rpcallowip=2001:db8:85a3:0:0:8a2e:370:7334/96 + +# Listen for RPC connections on this TCP port: +#rpcport=51473 + +# You can use Pivx or pivxd to send commands to Pivx/pivxd +# running on another host using this option: +#rpcconnect=127.0.0.1 + +# Miscellaneous options + +# Pre-generate this many public/private key pairs, so wallet backups will be valid for +# both prior transactions and several dozen future transactions. +#keypool=100 + +# Pay an optional transaction fee every time you send PIVs. Transactions with fees +# are more likely than free transactions to be included in generated blocks, so may +# be validated sooner. +#paytxfee=0.00 + +# User interface options + +# Start Pivx minimized +#min=1 + +# Minimize to the system tray +#minimizetotray=1 diff --git a/contrib/debian/pivx-qt.desktop b/contrib/debian/pivx-qt.desktop new file mode 100644 index 0000000..88ac349 --- /dev/null +++ b/contrib/debian/pivx-qt.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Version=1.0 +Name=PIVX Core +Comment=PIVX P2P Cryptocurrency +Comment[fr]=PIVX, monnaie virtuelle cryptographique pair à pair +Comment[tr]=PIVX, eÅŸten eÅŸe kriptografik sanal para birimi +Exec=pivx-qt %u +Terminal=false +Type=Application +Icon=pivx128 +MimeType=x-scheme-handler/pivx; +Categories=Office;Finance; +StartupWMClass=Pivx-qt diff --git a/contrib/debian/pivx-qt.install b/contrib/debian/pivx-qt.install new file mode 100644 index 0000000..e0e1ef9 --- /dev/null +++ b/contrib/debian/pivx-qt.install @@ -0,0 +1,6 @@ +usr/local/bin/pivx-qt usr/bin +share/pixmaps/pivx32.xpm usr/share/pixmaps +share/pixmaps/pivx16.xpm usr/share/pixmaps +share/pixmaps/pivx128.png usr/share/pixmaps +debian/pivx-qt.desktop usr/share/applications +debian/pivx-qt.protocol usr/share/kde4/services/ diff --git a/contrib/debian/pivx-qt.lintian-overrides b/contrib/debian/pivx-qt.lintian-overrides new file mode 100644 index 0000000..ce88a1c --- /dev/null +++ b/contrib/debian/pivx-qt.lintian-overrides @@ -0,0 +1,2 @@ +# Linked code is Expat - only Debian packaging is GPL-2+ +pivx-qt: possible-gpl-code-linked-with-openssl diff --git a/contrib/debian/pivx-qt.manpages b/contrib/debian/pivx-qt.manpages new file mode 100644 index 0000000..9d24ea2 --- /dev/null +++ b/contrib/debian/pivx-qt.manpages @@ -0,0 +1 @@ +doc/man/pivx-qt.1 diff --git a/contrib/debian/pivx-qt.protocol b/contrib/debian/pivx-qt.protocol new file mode 100644 index 0000000..e3d8545 --- /dev/null +++ b/contrib/debian/pivx-qt.protocol @@ -0,0 +1,11 @@ +[Protocol] +exec=pivx-qt '%u' +protocol=pivx +input=none +output=none +helper=true +listing= +reading=false +writing=false +makedir=false +deleting=false diff --git a/contrib/debian/pivxd.bash-completion b/contrib/debian/pivxd.bash-completion new file mode 100644 index 0000000..53abdf2 --- /dev/null +++ b/contrib/debian/pivxd.bash-completion @@ -0,0 +1,2 @@ +contrib/pivxd.bash-completion pivxd +contrib/pivx-cli.bash-completion pivx-cli diff --git a/contrib/debian/pivxd.examples b/contrib/debian/pivxd.examples new file mode 100644 index 0000000..8b1d527 --- /dev/null +++ b/contrib/debian/pivxd.examples @@ -0,0 +1 @@ +debian/examples/pivx.conf diff --git a/contrib/debian/pivxd.install b/contrib/debian/pivxd.install new file mode 100644 index 0000000..4d848b6 --- /dev/null +++ b/contrib/debian/pivxd.install @@ -0,0 +1,3 @@ +usr/local/bin/pivxd usr/bin +usr/local/bin/pivx-cli usr/bin +debian/examples/pivx.conf etc/pivx diff --git a/contrib/debian/pivxd.lintian-overrides b/contrib/debian/pivxd.lintian-overrides new file mode 100644 index 0000000..a02eaed --- /dev/null +++ b/contrib/debian/pivxd.lintian-overrides @@ -0,0 +1,2 @@ +# Linked code is Expat - only Debian packaging is GPL-2+ +pivxd: possible-gpl-code-linked-with-openssl diff --git a/contrib/debian/pivxd.manpages b/contrib/debian/pivxd.manpages new file mode 100644 index 0000000..87128f2 --- /dev/null +++ b/contrib/debian/pivxd.manpages @@ -0,0 +1,2 @@ +doc/man/pivxd.1 +doc/man/pivx-cli.1 diff --git a/contrib/debian/pivxd.postinst b/contrib/debian/pivxd.postinst new file mode 100644 index 0000000..c76afa7 --- /dev/null +++ b/contrib/debian/pivxd.postinst @@ -0,0 +1,28 @@ + +#!/bin/sh + +# setup pivx account, homedir etc + +set -e + +BCUSER="pivx" +BCHOME="/var/lib/pivx" + +if [ "$1" = "configure" ]; then + # Add pivx user/group - this will gracefully abort if the user already exists. + # A homedir is never created. + set +e + adduser --system --home "${BCHOME}" --no-create-home --group "${BCUSER}" 2>/dev/null + set -e + + # If the homedir does not already exist, create it with proper + # ownership and permissions. + if [ ! -d "${BCHOME}" ]; then + mkdir -m 0750 -p "${BCHOME}" + chown "${BCUSER}:${BCUSER}" "${BCHOME}" + fi +fi + +#DEBHELPER# + +exit 0 diff --git a/contrib/debian/pivxd.postrm b/contrib/debian/pivxd.postrm new file mode 100644 index 0000000..f287afd --- /dev/null +++ b/contrib/debian/pivxd.postrm @@ -0,0 +1,35 @@ +#!/bin/sh + +# setup pivx account, homedir etc + +set -e + +BCUSER="pivx" +BCHOME="/var/lib/pivx" + +if [ "$1" = "purge" ]; then + + # The pivx user is left in place for now - This is to ensure that a new user + # will not inherit the users UID/GID and inadvertently gain access to wallets etc + + # The homedir is also left intact to ensure that we don't accidentally delete a + # wallet or something equally important + + echo + echo "#" + echo "# The pivx user (${BCUSER}) and data dir (${BCHOME})" + echo "# were left intact." + echo "#" + echo "# Make sure to check \"${BCHOME}\" for wallets and other" + echo "# important bits." + echo "#" + echo "# After backing up all vital data, cleanup can be completed" + echo "# by running: sudo userdel -r ${BCUSER}" + echo "#" + echo + +fi + +#DEBHELPER# + +exit 0 diff --git a/contrib/debian/pivxd.service b/contrib/debian/pivxd.service new file mode 100644 index 0000000..0864f78 --- /dev/null +++ b/contrib/debian/pivxd.service @@ -0,0 +1,45 @@ +# It is not recommended to modify this file in-place, because it will +# be overwritten during package upgrades. If you want to add further +# options or overwrite existing ones then use +# $ systemctl edit pivxd.service +# See "man systemd.service" for details. + +# Note that almost all daemon options could be specified in +# /etc/pivx/pivx.conf + +[Unit] +Description=PIVX daemon +After=network.target + +[Service] +ExecStart=/usr/bin/pivxd -daemon -datadir=/var/lib/pivx -conf=/etc/pivx/pivx.conf -pid=/run/pivxd/pivxd.pid +# Creates /run/pivxd owned by pivx +RuntimeDirectory=pivxd +User=pivx +Type=forking +PIDFile=/run/pivxd/pivxd.pid +Restart=on-failure + +# Hardening measures +#################### + +# Provide a private /tmp and /var/tmp. +PrivateTmp=true + +# Mount /usr, /boot/ and /etc read-only for the process. +ProtectSystem=full + +# Disallow the process and all of its children to gain +# new privileges through execve(). +NoNewPrivileges=true + +# Use a new /dev namespace only populated with API pseudo devices +# such as /dev/null, /dev/zero and /dev/random. +PrivateDevices=true + +# Deny the creation of writable and executable memory mappings. +# Commented out as it's not supported on Debian 8 or Ubuntu 16.04 LTS +#MemoryDenyWriteExecute=true + +[Install] +WantedBy=multi-user.target diff --git a/contrib/devtools/circular-dependencies.py b/contrib/devtools/circular-dependencies.py new file mode 100644 index 0000000..73d82eb --- /dev/null +++ b/contrib/devtools/circular-dependencies.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python3 + +import sys +import re + +MAPPING = { + 'core_read.cpp': 'core_io.cpp', + 'core_write.cpp': 'core_io.cpp', +} + +# Directories with header-based modules, where the assumption that .cpp files +# define functions and variables declared in corresponding .h files is +# incorrect. +HEADER_MODULE_PATHS = [ + 'interfaces/' +] + +def module_name(path): + if path in MAPPING: + path = MAPPING[path] + if any(path.startswith(dirpath) for dirpath in HEADER_MODULE_PATHS): + return path + if path.endswith(".h"): + return path[:-2] + if path.endswith(".c"): + return path[:-2] + if path.endswith(".cpp"): + return path[:-4] + return None + +files = dict() +deps = dict() + +RE = re.compile("^#include \"(.*)\"") + +# Iterate over files, and create list of modules +for arg in sys.argv[1:]: + module = module_name(arg) + if module is None: + print("Ignoring file %s (does not constitute module)\n" % arg) + else: + files[arg] = module + deps[module] = set() + +# Iterate again, and build list of direct dependencies for each module +# TODO: implement support for multiple include directories +for arg in sorted(files.keys()): + module = files[arg] + with open(arg, 'r', encoding="utf8") as f: + for line in f: + match = RE.match(line) + if match: + include = match.group(1) + included_module = module_name(include) + if included_module is not None and included_module in deps and included_module != module: + deps[module].add(included_module) + +# Loop to find the shortest (remaining) circular dependency +have_cycle = False +while True: + shortest_cycle = None + for module in sorted(deps.keys()): + # Build the transitive closure of dependencies of module + closure = dict() + for dep in deps[module]: + closure[dep] = [] + while True: + old_size = len(closure) + old_closure_keys = sorted(closure.keys()) + for src in old_closure_keys: + for dep in deps[src]: + if dep not in closure: + closure[dep] = closure[src] + [src] + if len(closure) == old_size: + break + # If module is in its own transitive closure, it's a circular dependency; check if it is the shortest + if module in closure and (shortest_cycle is None or len(closure[module]) + 1 < len(shortest_cycle)): + shortest_cycle = [module] + closure[module] + if shortest_cycle is None: + break + # We have the shortest circular dependency; report it + module = shortest_cycle[0] + print("Circular dependency: %s" % (" -> ".join(shortest_cycle + [module]))) + # And then break the dependency to avoid repeating in other cycles + deps[shortest_cycle[-1]] = deps[shortest_cycle[-1]] - set([module]) + have_cycle = True + +sys.exit(1 if have_cycle else 0) diff --git a/contrib/devtools/clang-format-diff.py b/contrib/devtools/clang-format-diff.py new file mode 100644 index 0000000..f322b3a --- /dev/null +++ b/contrib/devtools/clang-format-diff.py @@ -0,0 +1,166 @@ +#!/usr/bin/env python3 +# +#===- clang-format-diff.py - ClangFormat Diff Reformatter ----*- python -*--===# +# +# The LLVM Compiler Infrastructure +# +# This file is distributed under the University of Illinois Open Source +# License. +# +# ============================================================ +# +# University of Illinois/NCSA +# Open Source License +# +# Copyright (c) 2007-2015 University of Illinois at Urbana-Champaign. +# All rights reserved. +# +# Developed by: +# +# LLVM Team +# +# University of Illinois at Urbana-Champaign +# +# http://llvm.org +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of +# this software and associated documentation files (the "Software"), to deal with +# the Software without restriction, including without limitation the rights to +# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +# of the Software, and to permit persons to whom the Software is furnished to do +# so, subject to the following conditions: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimers. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimers in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the names of the LLVM Team, University of Illinois at +# Urbana-Champaign, nor the names of its contributors may be used to +# endorse or promote products derived from this Software without specific +# prior written permission. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +# SOFTWARE. +# +# ============================================================ +# +#===------------------------------------------------------------------------===# + +r""" +ClangFormat Diff Reformatter +============================ + +This script reads input from a unified diff and reformats all the changed +lines. This is useful to reformat all the lines touched by a specific patch. +Example usage for git/svn users: + + git diff -U0 HEAD^ | clang-format-diff.py -p1 -i + svn diff --diff-cmd=diff -x-U0 | clang-format-diff.py -i + +""" + +import argparse +import difflib +import io +import re +import subprocess +import sys + + +# Change this to the full path if clang-format is not on the path. +binary = 'clang-format' + + +def main(): + parser = argparse.ArgumentParser(description= + 'Reformat changed lines in diff. Without -i ' + 'option just output the diff that would be ' + 'introduced.') + parser.add_argument('-i', action='store_true', default=False, + help='apply edits to files instead of displaying a diff') + parser.add_argument('-p', metavar='NUM', default=0, + help='strip the smallest prefix containing P slashes') + parser.add_argument('-regex', metavar='PATTERN', default=None, + help='custom pattern selecting file paths to reformat ' + '(case sensitive, overrides -iregex)') + parser.add_argument('-iregex', metavar='PATTERN', default= + r'.*\.(cpp|cc|c\+\+|cxx|c|cl|h|hpp|m|mm|inc|js|ts|proto' + r'|protodevel|java)', + help='custom pattern selecting file paths to reformat ' + '(case insensitive, overridden by -regex)') + parser.add_argument('-sort-includes', action='store_true', default=False, + help='let clang-format sort include blocks') + parser.add_argument('-v', '--verbose', action='store_true', + help='be more verbose, ineffective without -i') + args = parser.parse_args() + + # Extract changed lines for each file. + filename = None + lines_by_file = {} + for line in sys.stdin: + match = re.search('^\+\+\+\ (.*?/){%s}(\S*)' % args.p, line) + if match: + filename = match.group(2) + if filename is None: + continue + + if args.regex is not None: + if not re.match('^%s$' % args.regex, filename): + continue + else: + if not re.match('^%s$' % args.iregex, filename, re.IGNORECASE): + continue + + match = re.search('^@@.*\+(\d+)(,(\d+))?', line) + if match: + start_line = int(match.group(1)) + line_count = 1 + if match.group(3): + line_count = int(match.group(3)) + if line_count == 0: + continue + end_line = start_line + line_count - 1 + lines_by_file.setdefault(filename, []).extend( + ['-lines', str(start_line) + ':' + str(end_line)]) + + # Reformat files containing changes in place. + for filename, lines in lines_by_file.items(): + if args.i and args.verbose: + print('Formatting {}'.format(filename)) + command = [binary, filename] + if args.i: + command.append('-i') + if args.sort_includes: + command.append('-sort-includes') + command.extend(lines) + command.extend(['-style=file', '-fallback-style=none']) + p = subprocess.Popen(command, + stdout=subprocess.PIPE, + stderr=None, + stdin=subprocess.PIPE, + universal_newlines=True) + stdout, stderr = p.communicate() + if p.returncode != 0: + sys.exit(p.returncode) + + if not args.i: + with open(filename, encoding="utf8") as f: + code = f.readlines() + formatted_code = io.StringIO(stdout).readlines() + diff = difflib.unified_diff(code, formatted_code, + filename, filename, + '(before formatting)', '(after formatting)') + diff_string = ''.join(diff) + if len(diff_string) > 0: + sys.stdout.write(diff_string) + +if __name__ == '__main__': + main() diff --git a/contrib/devtools/commit-script-check.sh b/contrib/devtools/commit-script-check.sh new file mode 100644 index 0000000..1c9dbc7 --- /dev/null +++ b/contrib/devtools/commit-script-check.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# Copyright (c) 2017 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +# This simple script checks for commits beginning with: scripted-diff: +# If found, looks for a script between the lines -BEGIN VERIFY SCRIPT- and +# -END VERIFY SCRIPT-. If no ending is found, it reads until the end of the +# commit message. + +# The resulting script should exactly transform the previous commit into the current +# one. Any remaining diff signals an error. + +if test "x$1" = "x"; then + echo "Usage: $0 ..." + exit 1 +fi + +RET=0 +PREV_BRANCH=`git name-rev --name-only HEAD` +PREV_HEAD=`git rev-parse HEAD` +for i in `git rev-list --reverse $1`; do + if git rev-list -n 1 --pretty="%s" $i | grep -q "^scripted-diff:"; then + git checkout --quiet $i^ || exit + SCRIPT="`git rev-list --format=%b -n1 $i | sed '/^-BEGIN VERIFY SCRIPT-$/,/^-END VERIFY SCRIPT-$/{//!b};d'`" + if test "x$SCRIPT" = "x"; then + echo "Error: missing script for: $i" + echo "Failed" + RET=1 + else + echo "Running script for: $i" + echo "$SCRIPT" + eval "$SCRIPT" + git --no-pager diff --exit-code $i && echo "OK" || (echo "Failed"; false) || RET=1 + fi + git reset --quiet --hard HEAD + else + if git rev-list "--format=%b" -n1 $i | grep -q '^-\(BEGIN\|END\)[ a-zA-Z]*-$'; then + echo "Error: script block marker but no scripted-diff in title" + echo "Failed" + RET=1 + fi + fi +done +git checkout --quiet $PREV_BRANCH 2>/dev/null || git checkout --quiet $PREV_HEAD +exit $RET diff --git a/contrib/devtools/copyright_header.py b/contrib/devtools/copyright_header.py new file mode 100644 index 0000000..d9c8386 --- /dev/null +++ b/contrib/devtools/copyright_header.py @@ -0,0 +1,623 @@ +#!/usr/bin/env python3 +# Copyright (c) 2016-2018 The Bitcoin Core developers +# Copyright (c) 2018-2019 The PIVX developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +import re +import fnmatch +import sys +import subprocess +import datetime +import os + +################################################################################ +# file filtering +################################################################################ + +EXCLUDE = [ + # auto generated: + 'src/qt/pivxstrings.cpp', + 'src/chainparamsseeds.h', + # other external copyrights: + 'src/tinyformat.h', + 'src/crypto/scrypt.cpp', + 'test/functional/test_framework/bignum.py', + # python init: + '*__init__.py', +] +EXCLUDE_COMPILED = re.compile('|'.join([fnmatch.translate(m) for m in EXCLUDE])) + +EXCLUDE_DIRS = [ + # git subtrees + "src/crypto/ctaes/", + "src/leveldb/", + "src/secp256k1/", + "src/univalue/", +] + +INCLUDE = ['*.h', '*.cpp', '*.cc', '*.c', '*.py'] +INCLUDE_COMPILED = re.compile('|'.join([fnmatch.translate(m) for m in INCLUDE])) + +def applies_to_file(filename): + for excluded_dir in EXCLUDE_DIRS: + if filename.startswith(excluded_dir): + return False + return ((EXCLUDE_COMPILED.match(filename) is None) and + (INCLUDE_COMPILED.match(filename) is not None)) + +################################################################################ +# obtain list of files in repo according to INCLUDE and EXCLUDE +################################################################################ + +GIT_LS_CMD = 'git ls-files --full-name'.split(' ') +GIT_TOPLEVEL_CMD = 'git rev-parse --show-toplevel'.split(' ') + +def call_git_ls(base_directory): + out = subprocess.check_output([*GIT_LS_CMD, base_directory]) + return [f for f in out.decode("utf-8").split('\n') if f != ''] + +def call_git_toplevel(): + "Returns the absolute path to the project root" + return subprocess.check_output(GIT_TOPLEVEL_CMD).strip().decode("utf-8") + +def get_filenames_to_examine(base_directory): + "Returns an array of absolute paths to any project files in the base_directory that pass the include/exclude filters" + root = call_git_toplevel() + filenames = call_git_ls(base_directory) + return sorted([os.path.join(root, filename) for filename in filenames if + applies_to_file(filename)]) + +################################################################################ +# define and compile regexes for the patterns we are looking for +################################################################################ + + +COPYRIGHT_WITH_C = 'Copyright \(c\)' +COPYRIGHT_WITHOUT_C = 'Copyright' +ANY_COPYRIGHT_STYLE = '(%s|%s)' % (COPYRIGHT_WITH_C, COPYRIGHT_WITHOUT_C) + +YEAR = "20[0-9][0-9]" +YEAR_RANGE = '(%s)(-%s)?' % (YEAR, YEAR) +YEAR_LIST = '(%s)(, %s)+' % (YEAR, YEAR) +ANY_YEAR_STYLE = '(%s|%s)' % (YEAR_RANGE, YEAR_LIST) +ANY_COPYRIGHT_STYLE_OR_YEAR_STYLE = ("%s %s" % (ANY_COPYRIGHT_STYLE, + ANY_YEAR_STYLE)) + +ANY_COPYRIGHT_COMPILED = re.compile(ANY_COPYRIGHT_STYLE_OR_YEAR_STYLE) + +def compile_copyright_regex(copyright_style, year_style, name): + return re.compile('%s %s,? %s' % (copyright_style, year_style, name)) + +EXPECTED_HOLDER_NAMES = [ + "Satoshi Nakamoto\n", + "The Bitcoin Core developers\n", + "The Bitcoin Core developers \n", + "Bitcoin Core Developers\n", + "the Bitcoin Core developers\n", + "The Bitcoin developers\n", + "The LevelDB Authors\. All rights reserved\.\n", + "BitPay Inc\.\n", + "BitPay, Inc\.\n", + "University of Illinois at Urbana-Champaign\.\n", + "MarcoFalke\n", + "Pieter Wuille\n", + "Pieter Wuille +\*\n", + "Pieter Wuille, Gregory Maxwell +\*\n", + "Pieter Wuille, Andrew Poelstra +\*\n", + "Ian Miers, Christina Garman and Matthew Green\n", + "Andrew Poelstra +\*\n", + "Wladimir J. van der Laan\n", + "Jeff Garzik\n", + "Diederik Huys, Pieter Wuille +\*\n", + "Thomas Daede, Cory Fields +\*\n", + "Jan-Klaas Kollhof\n", + "Sam Rushing\n", + "ArtForz -- public domain half-a-node\n", + " Projet RNRT SAPHIR\n", + "The Zcash developers\n", + "The Dash developers\n", + "The Dash Developers\n", + "The Dash Core developers\n", + "The PIVX developers\n", + "The PPCoin developers\n", + "The NovaCoin Developers", + "The BlackCoin Developers\n", + "The Blackcoin More developers\n", +] + +DOMINANT_STYLE_COMPILED = {} +YEAR_LIST_STYLE_COMPILED = {} +WITHOUT_C_STYLE_COMPILED = {} + +for holder_name in EXPECTED_HOLDER_NAMES: + DOMINANT_STYLE_COMPILED[holder_name] = ( + compile_copyright_regex(COPYRIGHT_WITH_C, YEAR_RANGE, holder_name)) + YEAR_LIST_STYLE_COMPILED[holder_name] = ( + compile_copyright_regex(COPYRIGHT_WITH_C, YEAR_LIST, holder_name)) + WITHOUT_C_STYLE_COMPILED[holder_name] = ( + compile_copyright_regex(COPYRIGHT_WITHOUT_C, ANY_YEAR_STYLE, + holder_name)) + +################################################################################ +# search file contents for copyright message of particular category +################################################################################ + +def get_count_of_copyrights_of_any_style_any_holder(contents): + return len(ANY_COPYRIGHT_COMPILED.findall(contents)) + +def file_has_dominant_style_copyright_for_holder(contents, holder_name): + match = DOMINANT_STYLE_COMPILED[holder_name].search(contents) + return match is not None + +def file_has_year_list_style_copyright_for_holder(contents, holder_name): + match = YEAR_LIST_STYLE_COMPILED[holder_name].search(contents) + return match is not None + +def file_has_without_c_style_copyright_for_holder(contents, holder_name): + match = WITHOUT_C_STYLE_COMPILED[holder_name].search(contents) + return match is not None + +################################################################################ +# get file info +################################################################################ + +def read_file(filename): + return open(filename, 'r', encoding="utf8").read() + +def gather_file_info(filename): + info = {} + info['filename'] = filename + c = read_file(filename) + info['contents'] = c + + info['all_copyrights'] = get_count_of_copyrights_of_any_style_any_holder(c) + + info['classified_copyrights'] = 0 + info['dominant_style'] = {} + info['year_list_style'] = {} + info['without_c_style'] = {} + for holder_name in EXPECTED_HOLDER_NAMES: + has_dominant_style = ( + file_has_dominant_style_copyright_for_holder(c, holder_name)) + has_year_list_style = ( + file_has_year_list_style_copyright_for_holder(c, holder_name)) + has_without_c_style = ( + file_has_without_c_style_copyright_for_holder(c, holder_name)) + info['dominant_style'][holder_name] = has_dominant_style + info['year_list_style'][holder_name] = has_year_list_style + info['without_c_style'][holder_name] = has_without_c_style + if has_dominant_style or has_year_list_style or has_without_c_style: + info['classified_copyrights'] = info['classified_copyrights'] + 1 + return info + +################################################################################ +# report execution +################################################################################ + +SEPARATOR = '-'.join(['' for _ in range(80)]) + +def print_filenames(filenames, verbose): + if not verbose: + return + for filename in filenames: + print("\t%s" % filename) + +def print_report(file_infos, verbose): + print(SEPARATOR) + examined = [i['filename'] for i in file_infos] + print("%d files examined according to INCLUDE and EXCLUDE fnmatch rules" % + len(examined)) + print_filenames(examined, verbose) + + print(SEPARATOR) + print('') + zero_copyrights = [i['filename'] for i in file_infos if + i['all_copyrights'] == 0] + print("%4d with zero copyrights" % len(zero_copyrights)) + print_filenames(zero_copyrights, verbose) + one_copyright = [i['filename'] for i in file_infos if + i['all_copyrights'] == 1] + print("%4d with one copyright" % len(one_copyright)) + print_filenames(one_copyright, verbose) + two_copyrights = [i['filename'] for i in file_infos if + i['all_copyrights'] == 2] + print("%4d with two copyrights" % len(two_copyrights)) + print_filenames(two_copyrights, verbose) + three_copyrights = [i['filename'] for i in file_infos if + i['all_copyrights'] == 3] + print("%4d with three copyrights" % len(three_copyrights)) + print_filenames(three_copyrights, verbose) + four_or_more_copyrights = [i['filename'] for i in file_infos if + i['all_copyrights'] >= 4] + print("%4d with four or more copyrights" % len(four_or_more_copyrights)) + print_filenames(four_or_more_copyrights, verbose) + print('') + print(SEPARATOR) + print('Copyrights with dominant style:\ne.g. "Copyright (c)" and ' + '"" or "-":\n') + for holder_name in EXPECTED_HOLDER_NAMES: + dominant_style = [i['filename'] for i in file_infos if + i['dominant_style'][holder_name]] + if len(dominant_style) > 0: + print("%4d with '%s'" % (len(dominant_style), + holder_name.replace('\n', '\\n'))) + print_filenames(dominant_style, verbose) + print('') + print(SEPARATOR) + print('Copyrights with year list style:\ne.g. "Copyright (c)" and ' + '", , ...":\n') + for holder_name in EXPECTED_HOLDER_NAMES: + year_list_style = [i['filename'] for i in file_infos if + i['year_list_style'][holder_name]] + if len(year_list_style) > 0: + print("%4d with '%s'" % (len(year_list_style), + holder_name.replace('\n', '\\n'))) + print_filenames(year_list_style, verbose) + print('') + print(SEPARATOR) + print('Copyrights with no "(c)" style:\ne.g. "Copyright" and "" or ' + '"-":\n') + for holder_name in EXPECTED_HOLDER_NAMES: + without_c_style = [i['filename'] for i in file_infos if + i['without_c_style'][holder_name]] + if len(without_c_style) > 0: + print("%4d with '%s'" % (len(without_c_style), + holder_name.replace('\n', '\\n'))) + print_filenames(without_c_style, verbose) + + print('') + print(SEPARATOR) + + unclassified_copyrights = [i['filename'] for i in file_infos if + i['classified_copyrights'] < i['all_copyrights']] + print("%d with unexpected copyright holder names" % + len(unclassified_copyrights)) + print_filenames(unclassified_copyrights, verbose) + print(SEPARATOR) + +def exec_report(base_directory, verbose): + filenames = get_filenames_to_examine(base_directory) + file_infos = [gather_file_info(f) for f in filenames] + print_report(file_infos, verbose) + +################################################################################ +# report cmd +################################################################################ + +REPORT_USAGE = """ +Produces a report of all copyright header notices found inside the source files +of a repository. + +Usage: + $ ./copyright_header.py report [verbose] + +Arguments: + - The base directory of a bitcoin source code repository. + [verbose] - Includes a list of every file of each subcategory in the report. +""" + +def report_cmd(argv): + if len(argv) == 2: + sys.exit(REPORT_USAGE) + + base_directory = argv[2] + if not os.path.exists(base_directory): + sys.exit("*** bad : %s" % base_directory) + + if len(argv) == 3: + verbose = False + elif argv[3] == 'verbose': + verbose = True + else: + sys.exit("*** unknown argument: %s" % argv[2]) + + exec_report(base_directory, verbose) + +################################################################################ +# query git for year of last change +################################################################################ + +GIT_LOG_CMD = "git log --pretty=format:%%ai %s" + +def call_git_log(filename): + out = subprocess.check_output((GIT_LOG_CMD % filename).split(' ')) + return out.decode("utf-8").split('\n') + +def get_git_change_years(filename): + git_log_lines = call_git_log(filename) + if len(git_log_lines) == 0: + return [datetime.date.today().year] + # timestamp is in ISO 8601 format. e.g. "2016-09-05 14:25:32 -0600" + return [line.split(' ')[0].split('-')[0] for line in git_log_lines] + +def get_most_recent_git_change_year(filename): + return max(get_git_change_years(filename)) + +################################################################################ +# read and write to file +################################################################################ + +def read_file_lines(filename): + f = open(filename, 'r', encoding="utf8") + file_lines = f.readlines() + f.close() + return file_lines + +def write_file_lines(filename, file_lines): + f = open(filename, 'w', encoding="utf8") + f.write(''.join(file_lines)) + f.close() + +################################################################################ +# update header years execution +################################################################################ + +COPYRIGHT = 'Copyright \(c\)' +YEAR = "20[0-9][0-9]" +YEAR_RANGE = '(%s)(-%s)?' % (YEAR, YEAR) +HOLDER = 'The PIVX developers' +UPDATEABLE_LINE_COMPILED = re.compile(' '.join([COPYRIGHT, YEAR_RANGE, HOLDER])) + +def get_updatable_copyright_line(file_lines): + index = 0 + for line in file_lines: + if UPDATEABLE_LINE_COMPILED.search(line) is not None: + return index, line + index = index + 1 + return None, None + +def parse_year_range(year_range): + year_split = year_range.split('-') + start_year = year_split[0] + if len(year_split) == 1: + return start_year, start_year + return start_year, year_split[1] + +def year_range_to_str(start_year, end_year): + if start_year == end_year: + return start_year + return "%s-%s" % (start_year, end_year) + +def create_updated_copyright_line(line, last_git_change_year): + copyright_splitter = 'Copyright (c) ' + copyright_split = line.split(copyright_splitter) + # Preserve characters on line that are ahead of the start of the copyright + # notice - they are part of the comment block and vary from file-to-file. + before_copyright = copyright_split[0] + after_copyright = copyright_split[1] + + space_split = after_copyright.split(' ') + year_range = space_split[0] + start_year, end_year = parse_year_range(year_range) + if end_year == last_git_change_year: + return line + return (before_copyright + copyright_splitter + + year_range_to_str(start_year, last_git_change_year) + ' ' + + ' '.join(space_split[1:])) + +def update_updatable_copyright(filename): + file_lines = read_file_lines(filename) + index, line = get_updatable_copyright_line(file_lines) + if not line: + print_file_action_message(filename, "No updatable copyright.") + return + last_git_change_year = get_most_recent_git_change_year(filename) + new_line = create_updated_copyright_line(line, last_git_change_year) + if line == new_line: + print_file_action_message(filename, "Copyright up-to-date.") + return + file_lines[index] = new_line + write_file_lines(filename, file_lines) + print_file_action_message(filename, + "Copyright updated! -> %s" % last_git_change_year) + +def exec_update_header_year(base_directory): + for filename in get_filenames_to_examine(base_directory): + update_updatable_copyright(filename) + +################################################################################ +# update cmd +################################################################################ + +UPDATE_USAGE = """ +Updates all the copyright headers of "The PIVX developers" which were +changed in a year more recent than is listed. For example: + +// Copyright (c) - The PIVX developers + +will be updated to: + +// Copyright (c) - The PIVX developers + +where is obtained from the 'git log' history. + +This subcommand also handles copyright headers that have only a single year. In those cases: + +// Copyright (c) The PIVX developers + +will be updated to: + +// Copyright (c) - The PIVX developers + +where the update is appropriate. + +Usage: + $ ./copyright_header.py update + +Arguments: + - The base directory of a pivx source code repository. +""" + +def print_file_action_message(filename, action): + print("%-52s %s" % (filename, action)) + +def update_cmd(argv): + if len(argv) != 3: + sys.exit(UPDATE_USAGE) + + base_directory = argv[2] + if not os.path.exists(base_directory): + sys.exit("*** bad base_directory: %s" % base_directory) + exec_update_header_year(base_directory) + +################################################################################ +# inserted copyright header format +################################################################################ + +def get_header_lines(header, start_year, end_year): + lines = header.split('\n')[1:-1] + lines[0] = lines[0] % year_range_to_str(start_year, end_year) + return [line + '\n' for line in lines] + +CPP_HEADER = ''' +// Copyright (c) %s The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. +''' + +def get_cpp_header_lines_to_insert(start_year, end_year): + return reversed(get_header_lines(CPP_HEADER, start_year, end_year)) + +PYTHON_HEADER = ''' +# Copyright (c) %s The PIVX developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +''' + +def get_python_header_lines_to_insert(start_year, end_year): + return reversed(get_header_lines(PYTHON_HEADER, start_year, end_year)) + +################################################################################ +# query git for year of last change +################################################################################ + +def get_git_change_year_range(filename): + years = get_git_change_years(filename) + return min(years), max(years) + +################################################################################ +# check for existing core copyright +################################################################################ + +def file_already_has_core_copyright(file_lines): + index, _ = get_updatable_copyright_line(file_lines) + return index is not None + +################################################################################ +# insert header execution +################################################################################ + +def file_has_hashbang(file_lines): + if len(file_lines) < 1: + return False + if len(file_lines[0]) <= 2: + return False + return file_lines[0][:2] == '#!' + +def insert_python_header(filename, file_lines, start_year, end_year): + if file_has_hashbang(file_lines): + insert_idx = 1 + else: + insert_idx = 0 + header_lines = get_python_header_lines_to_insert(start_year, end_year) + for line in header_lines: + file_lines.insert(insert_idx, line) + write_file_lines(filename, file_lines) + +def insert_cpp_header(filename, file_lines, start_year, end_year): + header_lines = get_cpp_header_lines_to_insert(start_year, end_year) + for line in header_lines: + file_lines.insert(0, line) + write_file_lines(filename, file_lines) + +def exec_insert_header(filename, style): + file_lines = read_file_lines(filename) + if file_already_has_core_copyright(file_lines): + sys.exit('*** %s already has a copyright by The PIVX developers' + % (filename)) + start_year, end_year = get_git_change_year_range(filename) + if style == 'python': + insert_python_header(filename, file_lines, start_year, end_year) + else: + insert_cpp_header(filename, file_lines, start_year, end_year) + +################################################################################ +# insert cmd +################################################################################ + +INSERT_USAGE = """ +Inserts a copyright header for "The PIVX developers" at the top of the +file in either Python or C++ style as determined by the file extension. If the +file is a Python file and it has a '#!' starting the first line, the header is +inserted in the line below it. + +The copyright dates will be set to be: + +"-" + +where is according to the 'git log' history. If + is equal to , the date will be set to be: + +"" + +If the file already has a copyright for "The PIVX developers", the +script will exit. + +Usage: + $ ./copyright_header.py insert + +Arguments: + - A source file in the bitcoin repository. +""" + +def insert_cmd(argv): + if len(argv) != 3: + sys.exit(INSERT_USAGE) + + filename = argv[2] + if not os.path.isfile(filename): + sys.exit("*** bad filename: %s" % filename) + _, extension = os.path.splitext(filename) + if extension not in ['.h', '.cpp', '.cc', '.c', '.py']: + sys.exit("*** cannot insert for file extension %s" % extension) + + if extension == '.py': + style = 'python' + else: + style = 'cpp' + exec_insert_header(filename, style) + +################################################################################ +# UI +################################################################################ + +USAGE = """ +copyright_header.py - utilities for managing copyright headers of 'The Bitcoin +Core developers' in repository source files. + +Usage: + $ ./copyright_header + +Subcommands: + report + update + insert + +To see subcommand usage, run them without arguments. +""" + +SUBCOMMANDS = ['report', 'update', 'insert'] + +if __name__ == "__main__": + if len(sys.argv) == 1: + sys.exit(USAGE) + subcommand = sys.argv[1] + if subcommand not in SUBCOMMANDS: + sys.exit(USAGE) + if subcommand == 'report': + report_cmd(sys.argv) + elif subcommand == 'update': + update_cmd(sys.argv) + elif subcommand == 'insert': + insert_cmd(sys.argv) diff --git a/contrib/devtools/gen-manpages.sh b/contrib/devtools/gen-manpages.sh new file mode 100644 index 0000000..2068e5c --- /dev/null +++ b/contrib/devtools/gen-manpages.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +export LC_ALL=C +TOPDIR=${TOPDIR:-$(git rev-parse --show-toplevel)} +BUILDDIR=${BUILDDIR:-$TOPDIR} + +BINDIR=${BINDIR:-$BUILDDIR/src} +MANDIR=${MANDIR:-$TOPDIR/doc/man} + +BITCOIND=${BITCOIND:-$BINDIR/pivxd} +BITCOINCLI=${BITCOINCLI:-$BINDIR/pivx-cli} +BITCOINTX=${BITCOINTX:-$BINDIR/pivx-tx} +BITCOINQT=${BITCOINQT:-$BINDIR/qt/pivx-qt} + +[ ! -x $BITCOIND ] && echo "$BITCOIND not found or not executable." && exit 1 + +# The autodetected version git tag can screw up manpage output a little bit +BTCVER=($($BITCOINCLI --version | head -n1 | awk -F'[ -]' '{ print $6, $7 }')) + +# Create a footer file with copyright content. +# This gets autodetected fine for bitcoind if --version-string is not set, +# but has different outcomes for bitcoin-qt and bitcoin-cli. +echo "[COPYRIGHT]" > footer.h2m +$BITCOIND --version | sed -n '1!p' >> footer.h2m + +for cmd in $BITCOIND $BITCOINCLI $BITCOINTX $BITCOINQT; do + cmdname="${cmd##*/}" + help2man -N --version-string=${BTCVER[0]} --include=footer.h2m -o ${MANDIR}/${cmdname}.1 ${cmd} + sed -i "s/\\\-${BTCVER[1]}//g" ${MANDIR}/${cmdname}.1 +done + +rm -f footer.h2m diff --git a/contrib/devtools/git-subtree-check.sh b/contrib/devtools/git-subtree-check.sh new file mode 100644 index 0000000..85e8b84 --- /dev/null +++ b/contrib/devtools/git-subtree-check.sh @@ -0,0 +1,95 @@ +#!/bin/sh +# Copyright (c) 2015 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C +DIR="$1" +COMMIT="$2" +if [ -z "$COMMIT" ]; then + COMMIT=HEAD +fi + +# Taken from git-subtree (Copyright (C) 2009 Avery Pennarun ) +find_latest_squash() +{ + dir="$1" + sq= + main= + sub= + git log --grep="^git-subtree-dir: $dir/*\$" \ + --pretty=format:'START %H%n%s%n%n%b%nEND%n' "$COMMIT" | + while read a b _; do + case "$a" in + START) sq="$b" ;; + git-subtree-mainline:) main="$b" ;; + git-subtree-split:) sub="$b" ;; + END) + if [ -n "$sub" ]; then + if [ -n "$main" ]; then + # a rejoin commit? + # Pretend its sub was a squash. + sq="$sub" + fi + echo "$sq" "$sub" + break + fi + sq= + main= + sub= + ;; + esac + done +} + +# find latest subtree update +latest_squash="$(find_latest_squash "$DIR")" +if [ -z "$latest_squash" ]; then + echo "ERROR: $DIR is not a subtree" >&2 + exit 2 +fi +set $latest_squash +old=$1 +rev=$2 + +# get the tree in the current commit +tree_actual=$(git ls-tree -d "$COMMIT" "$DIR" | head -n 1) +if [ -z "$tree_actual" ]; then + echo "FAIL: subtree directory $DIR not found in $COMMIT" >&2 + exit 1 +fi +set $tree_actual +tree_actual_type=$2 +tree_actual_tree=$3 +echo "$DIR in $COMMIT currently refers to $tree_actual_type $tree_actual_tree" +if [ "d$tree_actual_type" != "dtree" ]; then + echo "FAIL: subtree directory $DIR is not a tree in $COMMIT" >&2 + exit 1 +fi + +# get the tree at the time of the last subtree update +tree_commit=$(git show -s --format="%T" $old) +echo "$DIR in $COMMIT was last updated in commit $old (tree $tree_commit)" + +# ... and compare the actual tree with it +if [ "$tree_actual_tree" != "$tree_commit" ]; then + git diff $tree_commit $tree_actual_tree >&2 + echo "FAIL: subtree directory was touched without subtree merge" >&2 + exit 1 +fi + +# get the tree in the subtree commit referred to +if [ "d$(git cat-file -t $rev 2>/dev/null)" != dcommit ]; then + echo "subtree commit $rev unavailable: cannot compare" >&2 + exit +fi +tree_subtree=$(git show -s --format="%T" $rev) +echo "$DIR in $COMMIT was last updated to upstream commit $rev (tree $tree_subtree)" + +# ... and compare the actual tree with it +if [ "$tree_actual_tree" != "$tree_subtree" ]; then + echo "FAIL: subtree update commit differs from upstream tree!" >&2 + exit 1 +fi + +echo "GOOD" diff --git a/contrib/devtools/lint-whitespace.sh b/contrib/devtools/lint-whitespace.sh new file mode 100644 index 0000000..928a92f --- /dev/null +++ b/contrib/devtools/lint-whitespace.sh @@ -0,0 +1,113 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2017 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 for new lines in diff that introduce trailing whitespace. + +# We can't run this check unless we know the commit range for the PR. + +export LC_ALL=C +while getopts "?" opt; do + case $opt in + ?) + echo "Usage: .lint-whitespace.sh [N]" + echo " TRAVIS_COMMIT_RANGE='' .lint-whitespace.sh" + echo " .lint-whitespace.sh -?" + echo "Checks unstaged changes, the previous N commits, or a commit range." + echo "TRAVIS_COMMIT_RANGE='47ba2c3...ee50c9e' .lint-whitespace.sh" + exit 0 + ;; + esac +done + +if [ -z "${TRAVIS_COMMIT_RANGE}" ]; then + if [ "$1" ]; then + TRAVIS_COMMIT_RANGE="HEAD~$1...HEAD" + else + TRAVIS_COMMIT_RANGE="HEAD" + fi +fi + +showdiff() { + if ! git diff -U0 "${TRAVIS_COMMIT_RANGE}" -- "." ":(exclude)depends/patches/" ":(exclude)src/leveldb/" ":(exclude)src/secp256k1/" ":(exclude)src/univalue/" ":(exclude)doc/release-notes/" ":(exclude)build-aux/snap/local/patches/"; then + echo "Failed to get a diff" + exit 1 + fi +} + +showcodediff() { + if ! git diff -U0 "${TRAVIS_COMMIT_RANGE}" -- *.cpp *.h *.md *.py *.sh ":(exclude)src/leveldb/" ":(exclude)src/secp256k1/" ":(exclude)src/univalue/" ":(exclude)doc/release-notes/" ":(exclude)build-aux/snap/local/patches/"; then + echo "Failed to get a diff" + exit 1 + fi +} + +RET=0 + +# Check if trailing whitespace was found in the diff. +if showdiff | grep -E -q '^\+.*\s+$'; then + echo "This diff appears to have added new lines with trailing whitespace." + echo "The following changes were suspected:" + FILENAME="" + SEEN=0 + SEENLN=0 + while read -r line; do + if [[ "$line" =~ ^diff ]]; then + FILENAME="$line" + SEEN=0 + elif [[ "$line" =~ ^@@ ]]; then + LINENUMBER="$line" + SEENLN=0 + else + if [ "$SEEN" -eq 0 ]; then + # The first time a file is seen with trailing whitespace, we print the + # filename (preceded by a newline). + echo + echo "$FILENAME" + SEEN=1 + fi + if [ "$SEENLN" -eq 0 ]; then + echo "$LINENUMBER" + SEENLN=1 + fi + echo "$line" + fi + done < <(showdiff | grep -E '^(diff --git |@@|\+.*\s+$)') + RET=1 +fi + +# Check if tab characters were found in the diff. +if showcodediff | perl -nle '$MATCH++ if m{^\+.*\t}; END{exit 1 unless $MATCH>0}' > /dev/null; then + echo "This diff appears to have added new lines with tab characters instead of spaces." + echo "The following changes were suspected:" + FILENAME="" + SEEN=0 + SEENLN=0 + while read -r line; do + if [[ "$line" =~ ^diff ]]; then + FILENAME="$line" + SEEN=0 + elif [[ "$line" =~ ^@@ ]]; then + LINENUMBER="$line" + SEENLN=0 + else + if [ "$SEEN" -eq 0 ]; then + # The first time a file is seen with a tab character, we print the + # filename (preceded by a newline). + echo + echo "$FILENAME" + SEEN=1 + fi + if [ "$SEENLN" -eq 0 ]; then + echo "$LINENUMBER" + SEENLN=1 + fi + echo "$line" + fi + done < <(showcodediff | perl -nle 'print if m{^(diff --git |@@|\+.*\t)}') + RET=1 +fi + +exit $RET diff --git a/contrib/devtools/logprint-scanner.py b/contrib/devtools/logprint-scanner.py new file mode 100644 index 0000000..a93d647 --- /dev/null +++ b/contrib/devtools/logprint-scanner.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +# Copyright (c) 2017-2018 The PIVX developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +import os, sys +from subprocess import check_output + +def countRelevantCommas(line): + openParensPosStack = [] + openParensPos = 0 + charCounter = 0 + numRelevantCommas = 0 + firstOpenParensIndex = line.find("(") + + for char in line: + if char == '(': + openParensPosStack.append(charCounter) + + if char == ')': + openParensPosStack.pop() + + if char == "," and openParensPosStack[-1] == firstOpenParensIndex: + numRelevantCommas += 1 + charCounter += 1 + + return numRelevantCommas + +if __name__ == "__main__": + out = check_output("git rev-parse --show-toplevel", shell=True, universal_newlines=True) + srcDir = out.rstrip() + "/src/" + + filelist = [os.path.join(dp, f) for dp, dn, filenames in os.walk(srcDir) for f in filenames if os.path.splitext(f)[1] == '.cpp' or os.path.splitext(f)[1] == '.h' ] + incorrectInstanceCounter = 0 + + for file in filelist: + f = open(file,"r", encoding="utf-8") + data = f.read() + rows = data.split("\n") + count = 0 + full_data = [] + lineCounter = 1 + + tempLine = "" + tempCount = 0 + + for row in rows: + # Collapse multiple lines into one + tempLine += row + + # Line contains LogPrint or LogPrintf + if tempLine.find("LogPrint") != -1: + if tempLine.count("(") == tempLine.count(")"): + havePercents = tempLine.count('%') > 0 + + if havePercents: + # This line of code has a format specifier that requires checking number of associated arguments + # Determine the number of arguments provided, see if that matches the number of format specifiers + # Count the number of commas after the format specifier string. Check to see if it matches the number of format specifiers. + # Assumes quotes are not escaped in the specifier string and there are no percent signs when specifying the debug level. + + # First, determine the position of the comma after the format specifier section, named commaAfterEndSpecifierStringIndex + firstSpecifierIndex = tempLine.find('%') + startSpecifierStringIndex = tempLine.rfind('"',firstSpecifierIndex) + endSpecifierStringIndex = tempLine.find('"',firstSpecifierIndex) + commaAfterEndSpecifierStringIndex = tempLine.find(',',endSpecifierStringIndex) + + # Count the number of commas after the specifier string + line = "(" + tempLine[commaAfterEndSpecifierStringIndex:-1] + numCommas = countRelevantCommas(line) + + # Determine number of extra percents after specifier string + numExtraPercents = tempLine.count('%', commaAfterEndSpecifierStringIndex) + + # Subtract extra from total count. This is the number of expected specifiers + # ignore %% + numPercents = tempLine.count('%') - numExtraPercents - 2*tempLine.count('%%') + + if numPercents != numCommas: + print("Incorrect number of arguments for LogPrint(f) statement found.") + print(str(file) + ":" + str(lineCounter - tempCount)) + print("Line = " + tempLine) + print("numRelevantCommas = " + str(numCommas) + ", numRelevantPercents = " + str(numPercents)) + print("") + + incorrectInstanceCounter += 1 + + # Done with this multiline, clear tempLine + tempLine = "" + tempCount = 0 + else: + tempCount += 1 + else: + # No LogPrint, clear tempLine + tempLine = "" + tempCount = 0 + + lineCounter += 1 + + print("# of incorrect instances: " + str(incorrectInstanceCounter)) + + sys.exit(incorrectInstanceCounter) diff --git a/contrib/devtools/optimize-pngs.py b/contrib/devtools/optimize-pngs.py new file mode 100644 index 0000000..e9481db --- /dev/null +++ b/contrib/devtools/optimize-pngs.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 +# Copyright (c) 2014-2018 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +''' +Run this script every time you change one of the png files. Using pngcrush, it will optimize the png files, remove various color profiles, remove ancillary chunks (alla) and text chunks (text). +#pngcrush -brute -ow -rem gAMA -rem cHRM -rem iCCP -rem sRGB -rem alla -rem text +''' +import os +import sys +import subprocess +import hashlib +from PIL import Image # pip3 install Pillow + +def file_hash(filename): + '''Return hash of raw file contents''' + with open(filename, 'rb') as f: + return hashlib.sha256(f.read()).hexdigest() + +def content_hash(filename): + '''Return hash of RGBA contents of image''' + i = Image.open(filename) + i = i.convert('RGBA') + data = i.tobytes() + return hashlib.sha256(data).hexdigest() + +pngcrush = 'pngcrush' +git = 'git' +folders = ["src/qt/res/movies", "src/qt/res/icons", "share/pixmaps"] +basePath = subprocess.check_output([git, 'rev-parse', '--show-toplevel'], universal_newlines=True, encoding='utf8').rstrip('\n') +totalSaveBytes = 0 +noHashChange = True + +outputArray = [] +for folder in folders: + absFolder=os.path.join(basePath, folder) + for file in os.listdir(absFolder): + extension = os.path.splitext(file)[1] + if extension.lower() == '.png': + print("optimizing {}...".format(file), end =' ') + file_path = os.path.join(absFolder, file) + fileMetaMap = {'file' : file, 'osize': os.path.getsize(file_path), 'sha256Old' : file_hash(file_path)} + fileMetaMap['contentHashPre'] = content_hash(file_path) + + try: + subprocess.call([pngcrush, "-brute", "-ow", "-rem", "gAMA", "-rem", "cHRM", "-rem", "iCCP", "-rem", "sRGB", "-rem", "alla", "-rem", "text", file_path], + stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + except: + print("pngcrush is not installed, aborting...") + sys.exit(0) + + #verify + if "Not a PNG file" in subprocess.check_output([pngcrush, "-n", "-v", file_path], stderr=subprocess.STDOUT, universal_newlines=True, encoding='utf8'): + print("PNG file "+file+" is corrupted after crushing, check out pngcursh version") + sys.exit(1) + + fileMetaMap['sha256New'] = file_hash(file_path) + fileMetaMap['contentHashPost'] = content_hash(file_path) + + if fileMetaMap['contentHashPre'] != fileMetaMap['contentHashPost']: + print("Image contents of PNG file {} before and after crushing don't match".format(file)) + sys.exit(1) + + fileMetaMap['psize'] = os.path.getsize(file_path) + outputArray.append(fileMetaMap) + print("done") + +print("summary:\n+++++++++++++++++") +for fileDict in outputArray: + oldHash = fileDict['sha256Old'] + newHash = fileDict['sha256New'] + totalSaveBytes += fileDict['osize'] - fileDict['psize'] + noHashChange = noHashChange and (oldHash == newHash) + print(fileDict['file']+"\n size diff from: "+str(fileDict['osize'])+" to: "+str(fileDict['psize'])+"\n old sha256: "+oldHash+"\n new sha256: "+newHash+"\n") + +print("completed. Checksum stable: "+str(noHashChange)+". Total reduction: "+str(totalSaveBytes)+" bytes") diff --git a/contrib/devtools/security-check.py b/contrib/devtools/security-check.py new file mode 100644 index 0000000..44b7f6c --- /dev/null +++ b/contrib/devtools/security-check.py @@ -0,0 +1,215 @@ +#!/usr/bin/env python3 +# Copyright (c) 2015-2018 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +''' +Perform basic ELF security checks on a series of executables. +Exit status will be 0 if successful, and the program will be silent. +Otherwise the exit status will be 1 and it will log which executables failed which checks. +Needs `readelf` (for ELF) and `objdump` (for PE). +''' +import subprocess +import sys +import os + +READELF_CMD = os.getenv('READELF', '/usr/bin/readelf') +OBJDUMP_CMD = os.getenv('OBJDUMP', '/usr/bin/objdump') +NONFATAL = {} # checks which are non-fatal for now but only generate a warning + +def check_ELF_PIE(executable): + ''' + Check for position independent executable (PIE), allowing for address space randomization. + ''' + p = subprocess.Popen([READELF_CMD, '-h', '-W', executable], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, universal_newlines=True) + (stdout, stderr) = p.communicate() + if p.returncode: + raise IOError('Error opening file') + + ok = False + for line in stdout.splitlines(): + line = line.split() + if len(line)>=2 and line[0] == 'Type:' and line[1] == 'DYN': + ok = True + return ok + +def get_ELF_program_headers(executable): + '''Return type and flags for ELF program headers''' + p = subprocess.Popen([READELF_CMD, '-l', '-W', executable], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, universal_newlines=True) + (stdout, stderr) = p.communicate() + if p.returncode: + raise IOError('Error opening file') + in_headers = False + count = 0 + headers = [] + for line in stdout.splitlines(): + if line.startswith('Program Headers:'): + in_headers = True + if line == '': + in_headers = False + if in_headers: + if count == 1: # header line + ofs_typ = line.find('Type') + ofs_offset = line.find('Offset') + ofs_flags = line.find('Flg') + ofs_align = line.find('Align') + if ofs_typ == -1 or ofs_offset == -1 or ofs_flags == -1 or ofs_align == -1: + raise ValueError('Cannot parse elfread -lW output') + elif count > 1: + typ = line[ofs_typ:ofs_offset].rstrip() + flags = line[ofs_flags:ofs_align].rstrip() + headers.append((typ, flags)) + count += 1 + return headers + +def check_ELF_NX(executable): + ''' + Check that no sections are writable and executable (including the stack) + ''' + have_wx = False + have_gnu_stack = False + for (typ, flags) in get_ELF_program_headers(executable): + if typ == 'GNU_STACK': + have_gnu_stack = True + if 'W' in flags and 'E' in flags: # section is both writable and executable + have_wx = True + return have_gnu_stack and not have_wx + +def check_ELF_RELRO(executable): + ''' + Check for read-only relocations. + GNU_RELRO program header must exist + Dynamic section must have BIND_NOW flag + ''' + have_gnu_relro = False + for (typ, flags) in get_ELF_program_headers(executable): + # Note: not checking flags == 'R': here as linkers set the permission differently + # This does not affect security: the permission flags of the GNU_RELRO program header are ignored, the PT_LOAD header determines the effective permissions. + # However, the dynamic linker need to write to this area so these are RW. + # Glibc itself takes care of mprotecting this area R after relocations are finished. + # See also https://marc.info/?l=binutils&m=1498883354122353 + if typ == 'GNU_RELRO': + have_gnu_relro = True + + have_bindnow = False + p = subprocess.Popen([READELF_CMD, '-d', '-W', executable], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, universal_newlines=True) + (stdout, stderr) = p.communicate() + if p.returncode: + raise IOError('Error opening file') + for line in stdout.splitlines(): + tokens = line.split() + if len(tokens)>1 and tokens[1] == '(BIND_NOW)' or (len(tokens)>2 and tokens[1] == '(FLAGS)' and 'BIND_NOW' in tokens[2:]): + have_bindnow = True + return have_gnu_relro and have_bindnow + +def check_ELF_Canary(executable): + ''' + Check for use of stack canary + ''' + p = subprocess.Popen([READELF_CMD, '--dyn-syms', '-W', executable], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, universal_newlines=True) + (stdout, stderr) = p.communicate() + if p.returncode: + raise IOError('Error opening file') + ok = False + for line in stdout.splitlines(): + if '__stack_chk_fail' in line: + ok = True + return ok + +def get_PE_dll_characteristics(executable): + ''' + Get PE DllCharacteristics bits. + Returns a tuple (arch,bits) where arch is 'i386:x86-64' or 'i386' + and bits is the DllCharacteristics value. + ''' + p = subprocess.Popen([OBJDUMP_CMD, '-x', executable], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, universal_newlines=True) + (stdout, stderr) = p.communicate() + if p.returncode: + raise IOError('Error opening file') + arch = '' + bits = 0 + for line in stdout.splitlines(): + tokens = line.split() + if len(tokens)>=2 and tokens[0] == 'architecture:': + arch = tokens[1].rstrip(',') + if len(tokens)>=2 and tokens[0] == 'DllCharacteristics': + bits = int(tokens[1],16) + return (arch,bits) + +IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA = 0x0020 +IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040 +IMAGE_DLL_CHARACTERISTICS_NX_COMPAT = 0x0100 + +def check_PE_DYNAMIC_BASE(executable): + '''PIE: DllCharacteristics bit 0x40 signifies dynamicbase (ASLR)''' + (arch,bits) = get_PE_dll_characteristics(executable) + reqbits = IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE + return (bits & reqbits) == reqbits + +# On 64 bit, must support high-entropy 64-bit address space layout randomization in addition to DYNAMIC_BASE +# to have secure ASLR. +def check_PE_HIGH_ENTROPY_VA(executable): + '''PIE: DllCharacteristics bit 0x20 signifies high-entropy ASLR''' + (arch,bits) = get_PE_dll_characteristics(executable) + if arch == 'i386:x86-64': + reqbits = IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA + else: # Unnecessary on 32-bit + assert(arch == 'i386') + reqbits = 0 + return (bits & reqbits) == reqbits + +def check_PE_NX(executable): + '''NX: DllCharacteristics bit 0x100 signifies nxcompat (DEP)''' + (arch,bits) = get_PE_dll_characteristics(executable) + return (bits & IMAGE_DLL_CHARACTERISTICS_NX_COMPAT) == IMAGE_DLL_CHARACTERISTICS_NX_COMPAT + +CHECKS = { +'ELF': [ + ('PIE', check_ELF_PIE), + ('NX', check_ELF_NX), + ('RELRO', check_ELF_RELRO), + ('Canary', check_ELF_Canary) +], +'PE': [ + ('DYNAMIC_BASE', check_PE_DYNAMIC_BASE), + ('HIGH_ENTROPY_VA', check_PE_HIGH_ENTROPY_VA), + ('NX', check_PE_NX) +] +} + +def identify_executable(executable): + with open(filename, 'rb') as f: + magic = f.read(4) + if magic.startswith(b'MZ'): + return 'PE' + elif magic.startswith(b'\x7fELF'): + return 'ELF' + return None + +if __name__ == '__main__': + retval = 0 + for filename in sys.argv[1:]: + try: + etype = identify_executable(filename) + if etype is None: + print('%s: unknown format' % filename) + retval = 1 + continue + + failed = [] + warning = [] + for (name, func) in CHECKS[etype]: + if not func(filename): + if name in NONFATAL: + warning.append(name) + else: + failed.append(name) + if failed: + print('%s: failed %s' % (filename, ' '.join(failed))) + retval = 1 + if warning: + print('%s: warning %s' % (filename, ' '.join(warning))) + except IOError: + print('%s: cannot open' % filename) + retval = 1 + sys.exit(retval) + diff --git a/contrib/devtools/test-security-check.py b/contrib/devtools/test-security-check.py new file mode 100644 index 0000000..9b6d6bf --- /dev/null +++ b/contrib/devtools/test-security-check.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +# Copyright (c) 2015-2017 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +''' +Test script for security-check.py +''' +import subprocess +import unittest + +def write_testcode(filename): + with open(filename, 'w', encoding="utf8") as f: + f.write(''' + #include + int main() + { + printf("the quick brown fox jumps over the lazy god\\n"); + return 0; + } + ''') + +def call_security_check(cc, source, executable, options): + subprocess.check_call([cc,source,'-o',executable] + options) + p = subprocess.Popen(['./security-check.py',executable], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, universal_newlines=True) + (stdout, stderr) = p.communicate() + return (p.returncode, stdout.rstrip()) + +class TestSecurityChecks(unittest.TestCase): + def test_ELF(self): + source = 'test1.c' + executable = 'test1' + cc = 'gcc' + write_testcode(source) + + self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-zexecstack','-fno-stack-protector','-Wl,-znorelro']), + (1, executable+': failed PIE NX RELRO Canary')) + self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-znoexecstack','-fno-stack-protector','-Wl,-znorelro']), + (1, executable+': failed PIE RELRO Canary')) + self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-znoexecstack','-fstack-protector-all','-Wl,-znorelro']), + (1, executable+': failed PIE RELRO')) + self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-znoexecstack','-fstack-protector-all','-Wl,-znorelro','-pie','-fPIE']), + (1, executable+': failed RELRO')) + self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-znoexecstack','-fstack-protector-all','-Wl,-zrelro','-Wl,-z,now','-pie','-fPIE']), + (0, '')) + + def test_32bit_PE(self): + source = 'test1.c' + executable = 'test1.exe' + cc = 'i686-w64-mingw32-gcc' + write_testcode(source) + + self.assertEqual(call_security_check(cc, source, executable, []), + (1, executable+': failed DYNAMIC_BASE NX')) + self.assertEqual(call_security_check(cc, source, executable, ['-Wl,--nxcompat']), + (1, executable+': failed DYNAMIC_BASE')) + self.assertEqual(call_security_check(cc, source, executable, ['-Wl,--nxcompat','-Wl,--dynamicbase']), + (0, '')) + def test_64bit_PE(self): + source = 'test1.c' + executable = 'test1.exe' + cc = 'x86_64-w64-mingw32-gcc' + write_testcode(source) + + self.assertEqual(call_security_check(cc, source, executable, []), (1, executable+': failed DYNAMIC_BASE NX\n'+executable+': warning HIGH_ENTROPY_VA')) + self.assertEqual(call_security_check(cc, source, executable, ['-Wl,--nxcompat']), (1, executable+': failed DYNAMIC_BASE\n'+executable+': warning HIGH_ENTROPY_VA')) + self.assertEqual(call_security_check(cc, source, executable, ['-Wl,--nxcompat','-Wl,--dynamicbase']), (0, executable+': warning HIGH_ENTROPY_VA')) + self.assertEqual(call_security_check(cc, source, executable, ['-Wl,--nxcompat','-Wl,--dynamicbase','-Wl,--high-entropy-va']), (0, '')) + +if __name__ == '__main__': + unittest.main() + diff --git a/contrib/filter-lcov.py b/contrib/filter-lcov.py new file mode 100644 index 0000000..df1db76 --- /dev/null +++ b/contrib/filter-lcov.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 + +import argparse + +parser = argparse.ArgumentParser(description='Remove the coverage data from a tracefile for all files matching the pattern.') +parser.add_argument('--pattern', '-p', action='append', help='the pattern of files to remove', required=True) +parser.add_argument('tracefile', help='the tracefile to remove the coverage data from') +parser.add_argument('outfile', help='filename for the output to be written to') + +args = parser.parse_args() +tracefile = args.tracefile +pattern = args.pattern +outfile = args.outfile + +in_remove = False +with open(tracefile, 'r', encoding="utf8") as f: + with open(outfile, 'w', encoding="utf8") as wf: + for line in f: + for p in pattern: + if line.startswith("SF:") and p in line: + in_remove = True + if not in_remove: + wf.write(line) + if line == 'end_of_record\n': + in_remove = False diff --git a/contrib/gitian-build.py b/contrib/gitian-build.py new file mode 100644 index 0000000..07a24ee --- /dev/null +++ b/contrib/gitian-build.py @@ -0,0 +1,393 @@ +#!/usr/bin/env python3 +# Copyright (c) 2018-2019 The Bitcoin Core developers +# Copyright (c) 2019 The PIVX developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +import argparse +import os +import subprocess +import sys + + +def setup_linux(): + global args, workdir + if os.path.isfile('/usr/bin/apt-get'): + programs = ['ruby', 'git', 'make', 'wget', 'curl'] + if args.kvm: + programs += ['apt-cacher-ng', 'python-vm-builder', 'qemu-kvm', 'qemu-utils'] + elif args.docker: + if not os.path.isfile('/lib/systemd/system/docker.service'): + dockers = ['docker.io', 'docker-ce'] + for i in dockers: + return_code = subprocess.call(['sudo', 'apt-get', 'install', '-qq', i]) + if return_code == 0: + subprocess.check_call(['sudo', 'usermod', '-aG', 'docker', os.environ['USER']]) + print('Docker installed, restart your computer and re-run this script to continue the setup process.') + sys.exit(0) + if return_code != 0: + print('Cannot find any way to install Docker.', file=sys.stderr) + sys.exit(1) + else: + programs += ['apt-cacher-ng', 'lxc', 'debootstrap'] + subprocess.check_call(['sudo', 'apt-get', 'install', '-qq'] + programs) + setup_repos() + elif args.is_fedora: + pkgmgr = 'dnf' + repourl = 'https://download.docker.com/linux/fedora/docker-ce.repo' + elif args.is_centos: + pkgmgr = 'yum' + repourl = 'https://download.docker.com/linux/centos/docker-ce.repo' + + if args.is_fedora or args.is_centos: + programs = ['ruby', 'make', 'wget', 'curl'] + if args.kvm: + print('KVM not supported with Fedora/CentOS yet.') + sys.exit(1) + elif args.docker: + if not os.path.isfile('/lib/systemd/system/docker.service'): + user = os.environ['USER'] + dockers = ['docker-ce', 'docker-ce-cli', 'containerd.io'] + if args.is_fedora: + subprocess.check_call(['sudo', pkgmgr, 'install', '-y', 'dnf-plugins-core']) + subprocess.check_call(['sudo', pkgmgr, 'config-manager', '--add-repo', repourl]) + elif args.is_centos: + reqs = ['yum-utils', 'device-mapper-persistent-data', 'lvm2'] + subprocess.check_call(['sudo', pkgmgr, 'install', '-y'] + reqs) + subprocess.check_call(['sudo', 'yum-config-manager', '--add-repo', repourl]) + subprocess.check_call(['sudo', pkgmgr, 'install', '-y'] + dockers) + subprocess.check_call(['sudo', 'usermod', '-aG', 'docker', user]) + subprocess.check_call(['sudo', 'systemctl', 'enable', 'docker']) + print('Docker installed, restart your computer and re-run this script to continue the setup process.') + sys.exit(0) + subprocess.check_call(['sudo', 'systemctl', 'start', 'docker']) + else: + print('LXC not supported with Fedora/CentOS yet.') + sys.exit(1) + + if args.is_fedora: + programs += ['git'] + if args.is_centos: + # CentOS ships with an insanely outdated version of git that is no longer compatible with gitian builds + # Check current version and update if necessary + oldgit = b'2.' not in subprocess.check_output(['git', '--version']) + if oldgit: + subprocess.check_call(['sudo', pkgmgr, 'remove', '-y', 'git*']) + subprocess.check_call(['sudo', pkgmgr, 'install', '-y', 'https://centos7.iuscommunity.org/ius-release.rpm']) + programs += ['git2u-all'] + subprocess.check_call(['sudo', pkgmgr, 'install', '-y'] + programs) + setup_repos() + else: + print('Unsupported system/OS type.') + sys.exit(1) + + +def setup_darwin(): + global args, workdir + programs = [] + if not os.path.isfile('/usr/local/bin/wget'): + programs += ['wget'] + if not os.path.isfile('/usr/local/bin/git'): + programs += ['git'] + if not os.path.isfile('/usr/local/bin/gsha256sum'): + programs += ['coreutils'] + if args.docker: + print('Experimental setup for macOS host') + if len(programs) > 0: + subprocess.check_call(['brew', 'install'] + programs) + os.environ['PATH'] = '/usr/local/opt/coreutils/libexec/gnubin' + os.pathsep + os.environ['PATH'] + elif args.kvm or not args.docker: + print('KVM and LXC are not supported under macOS at this time.') + sys.exit(0) + setup_repos() + + +def setup_repos(): + if not os.path.isdir('gitian.sigs'): + subprocess.check_call(['git', 'clone', 'https://github.com/pivx-Project/gitian.sigs.git']) + if not os.path.isdir('pivx-detached-sigs'): + subprocess.check_call(['git', 'clone', 'https://github.com/pivx-Project/pivx-detached-sigs.git']) + if not os.path.isdir('gitian-builder'): + subprocess.check_call(['git', 'clone', 'https://github.com/devrandom/gitian-builder.git']) + if not os.path.isdir('pivx'): + subprocess.check_call(['git', 'clone', 'https://github.com/pivx-Project/pivx.git']) + os.chdir('gitian-builder') + make_image_prog = ['bin/make-base-vm', '--suite', 'bionic', '--arch', 'amd64'] + if args.docker: + make_image_prog += ['--docker'] + elif not args.kvm: + make_image_prog += ['--lxc'] + if args.host_os == 'darwin': + subprocess.check_call(['sed', '-i.old', '/50cacher/d', 'bin/make-base-vm']) + if args.host_os == 'linux': + if args.is_fedora or args.is_centos: + subprocess.check_call(['sed', '-i', '/50cacher/d', 'bin/make-base-vm']) + subprocess.check_call(make_image_prog) + subprocess.check_call(['git', 'checkout', 'bin/make-base-vm']) + os.chdir(workdir) + if args.host_os == 'linux': + if args.is_bionic and not args.kvm and not args.docker: + subprocess.check_call(['sudo', 'sed', '-i', 's/lxcbr0/br0/', '/etc/default/lxc-net']) + print('Reboot is required') + + print('Setup complete!') + sys.exit(0) + + +def build(): + global args, workdir + + os.makedirs('pivx-binaries/' + args.version, exist_ok=True) + print('\nBuilding Dependencies\n') + os.chdir('gitian-builder') + os.makedirs('inputs', exist_ok=True) + + subprocess.check_call(['wget', '-N', '-P', 'inputs', 'https://downloads.sourceforge.net/project/osslsigncode/osslsigncode/osslsigncode-1.7.1.tar.gz']) + subprocess.check_call(['wget', '-N', '-P', 'inputs', 'https://bitcoincore.org/cfields/osslsigncode-Backports-to-1.7.1.patch']) + subprocess.check_call(["echo 'a8c4e9cafba922f89de0df1f2152e7be286aba73f78505169bc351a7938dd911 inputs/osslsigncode-Backports-to-1.7.1.patch' | sha256sum -c"], shell=True) + subprocess.check_call(["echo 'f9a8cdb38b9c309326764ebc937cba1523a3a751a7ab05df3ecc99d18ae466c9 inputs/osslsigncode-1.7.1.tar.gz' | sha256sum -c"], shell=True) + subprocess.check_call(['make', '-C', '../pivx/depends', 'download', 'SOURCES_PATH=' + os.getcwd() + '/cache/common']) + + if args.linux: + print('\nCompiling ' + args.version + ' Linux') + subprocess.check_call(['bin/gbuild', '-j', args.jobs, '-m', args.memory, '--commit', 'pivx='+args.commit, '--url', 'pivx='+args.url, '../pivx/contrib/gitian-descriptors/gitian-linux.yml']) + subprocess.check_call(['bin/gsign', '-p', args.sign_prog, '--signer', args.signer, '--release', args.version+'-linux', '--destination', '../gitian.sigs/', '../pivx/contrib/gitian-descriptors/gitian-linux.yml']) + subprocess.check_call('mv build/out/pivx-*.tar.gz build/out/src/pivx-*.tar.gz ../pivx-binaries/'+args.version, shell=True) + + if args.windows: + print('\nCompiling ' + args.version + ' Windows') + subprocess.check_call(['bin/gbuild', '-j', args.jobs, '-m', args.memory, '--commit', 'pivx='+args.commit, '--url', 'pivx='+args.url, '../pivx/contrib/gitian-descriptors/gitian-win.yml']) + subprocess.check_call(['bin/gsign', '-p', args.sign_prog, '--signer', args.signer, '--release', args.version+'-win-unsigned', '--destination', '../gitian.sigs/', '../pivx/contrib/gitian-descriptors/gitian-win.yml']) + subprocess.check_call('mv build/out/pivx-*-win-unsigned.tar.gz inputs/', shell=True) + subprocess.check_call('mv build/out/pivx-*.zip build/out/pivx-*.exe build/out/src/pivx-*.tar.gz ../pivx-binaries/'+args.version, shell=True) + + if args.macos: + print('\nCompiling ' + args.version + ' MacOS') + subprocess.check_call(['bin/gbuild', '-j', args.jobs, '-m', args.memory, '--commit', 'pivx='+args.commit, '--url', 'pivx='+args.url, '../pivx/contrib/gitian-descriptors/gitian-osx.yml']) + subprocess.check_call(['bin/gsign', '-p', args.sign_prog, '--signer', args.signer, '--release', args.version+'-osx-unsigned', '--destination', '../gitian.sigs/', '../pivx/contrib/gitian-descriptors/gitian-osx.yml']) + subprocess.check_call('mv build/out/pivx-*-osx-unsigned.tar.gz inputs/', shell=True) + subprocess.check_call('mv build/out/pivx-*.tar.gz build/out/pivx-*.dmg build/out/src/pivx-*.tar.gz ../pivx-binaries/'+args.version, shell=True) + + os.chdir(workdir) + + if args.commit_files: + print('\nCommitting '+args.version+' Unsigned Sigs\n') + os.chdir('gitian.sigs') + subprocess.check_call(['git', 'add', args.version+'-linux/'+args.signer]) + subprocess.check_call(['git', 'add', args.version+'-win-unsigned/'+args.signer]) + subprocess.check_call(['git', 'add', args.version+'-osx-unsigned/'+args.signer]) + subprocess.check_call(['git', 'commit', '-m', 'Add '+args.version+' unsigned sigs for '+args.signer]) + os.chdir(workdir) + + +def sign(): + global args, workdir + os.chdir('gitian-builder') + + # TODO: Skip making signed windows sigs until we actually start producing signed windows binaries + #print('\nSigning ' + args.version + ' Windows') + #subprocess.check_call('cp inputs/pivx-' + args.version + '-win-unsigned.tar.gz inputs/pivx-win-unsigned.tar.gz', shell=True) + #subprocess.check_call(['bin/gbuild', '--skip-image', '--upgrade', '--commit', 'signature='+args.commit, '../pivx/contrib/gitian-descriptors/gitian-win-signer.yml']) + #subprocess.check_call(['bin/gsign', '-p', args.sign_prog, '--signer', args.signer, '--release', args.version+'-win-signed', '--destination', '../gitian.sigs/', '../pivx/contrib/gitian-descriptors/gitian-win-signer.yml']) + #subprocess.check_call('mv build/out/pivx-*win64-setup.exe ../pivx-binaries/'+args.version, shell=True) + #subprocess.check_call('mv build/out/pivx-*win32-setup.exe ../pivx-binaries/'+args.version, shell=True) + + print('\nSigning ' + args.version + ' MacOS') + subprocess.check_call('cp inputs/pivx-' + args.version + '-osx-unsigned.tar.gz inputs/pivx-osx-unsigned.tar.gz', shell=True) + subprocess.check_call(['bin/gbuild', '--skip-image', '--upgrade', '--commit', 'signature='+args.commit, '../pivx/contrib/gitian-descriptors/gitian-osx-signer.yml']) + subprocess.check_call(['bin/gsign', '-p', args.sign_prog, '--signer', args.signer, '--release', args.version+'-osx-signed', '--destination', '../gitian.sigs/', '../pivx/contrib/gitian-descriptors/gitian-osx-signer.yml']) + subprocess.check_call('mv build/out/pivx-osx-signed.dmg ../pivx-binaries/'+args.version+'/pivx-'+args.version+'-osx.dmg', shell=True) + + os.chdir(workdir) + + if args.commit_files: + os.chdir('gitian.sigs') + commit = False + if os.path.isfile(args.version+'-win-signed/'+args.signer+'/pivx-win-signer-build.assert.sig'): + subprocess.check_call(['git', 'add', args.version+'-win-signed/'+args.signer]) + commit = True + if os.path.isfile(args.version+'-osx-signed/'+args.signer+'/pivx-dmg-signer-build.assert.sig'): + subprocess.check_call(['git', 'add', args.version+'-osx-signed/'+args.signer]) + commit = True + if commit: + print('\nCommitting '+args.version+' Signed Sigs\n') + subprocess.check_call(['git', 'commit', '-a', '-m', 'Add '+args.version+' signed binary sigs for '+args.signer]) + else: + print('\nNothing to commit\n') + os.chdir(workdir) + + +def verify(): + global args, workdir + rc = 0 + os.chdir('gitian-builder') + + print('\nVerifying v'+args.version+' Linux\n') + if subprocess.call(['bin/gverify', '-v', '-d', '../gitian.sigs/', '-r', args.version+'-linux', '../pivx/contrib/gitian-descriptors/gitian-linux.yml']): + print('Verifying v'+args.version+' Linux FAILED\n') + rc = 1 + + print('\nVerifying v'+args.version+' Windows\n') + if subprocess.call(['bin/gverify', '-v', '-d', '../gitian.sigs/', '-r', args.version+'-win-unsigned', '../pivx/contrib/gitian-descriptors/gitian-win.yml']): + print('Verifying v'+args.version+' Windows FAILED\n') + rc = 1 + + print('\nVerifying v'+args.version+' MacOS\n') + if subprocess.call(['bin/gverify', '-v', '-d', '../gitian.sigs/', '-r', args.version+'-osx-unsigned', '../pivx/contrib/gitian-descriptors/gitian-osx.yml']): + print('Verifying v'+args.version+' MacOS FAILED\n') + rc = 1 + + # TODO: Skip checking signed windows sigs until we actually start producing signed windows binaries + #print('\nVerifying v'+args.version+' Signed Windows\n') + #if subprocess.call(['bin/gverify', '-v', '-d', '../gitian.sigs/', '-r', args.version+'-win-signed', '../pivx/contrib/gitian-descriptors/gitian-win-signer.yml']): + # print('Verifying v'+args.version+' Signed Windows FAILED\n') + # rc = 1 + + print('\nVerifying v'+args.version+' Signed MacOS\n') + if subprocess.call(['bin/gverify', '-v', '-d', '../gitian.sigs/', '-r', args.version+'-osx-signed', '../pivx/contrib/gitian-descriptors/gitian-osx-signer.yml']): + print('Verifying v'+args.version+' Signed MacOS FAILED\n') + rc = 1 + + os.chdir(workdir) + return rc + + +def main(): + global args, workdir + + parser = argparse.ArgumentParser(description='Script for running full Gitian builds.') + parser.add_argument('-c', '--commit', action='store_true', dest='commit', help='Indicate that the version argument is for a commit or branch') + parser.add_argument('-p', '--pull', action='store_true', dest='pull', help='Indicate that the version argument is the number of a github repository pull request') + parser.add_argument('-u', '--url', dest='url', default='https://github.com/pivx-Project/pivx', help='Specify the URL of the repository. Default is %(default)s') + parser.add_argument('-v', '--verify', action='store_true', dest='verify', help='Verify the Gitian build') + parser.add_argument('-b', '--build', action='store_true', dest='build', help='Do a Gitian build') + parser.add_argument('-s', '--sign', action='store_true', dest='sign', help='Make signed binaries for Windows and MacOS') + parser.add_argument('-B', '--buildsign', action='store_true', dest='buildsign', help='Build both signed and unsigned binaries') + parser.add_argument('-o', '--os', dest='os', default='lwm', help='Specify which Operating Systems the build is for. Default is %(default)s. l for Linux, w for Windows, m for MacOS') + parser.add_argument('-j', '--jobs', dest='jobs', default='2', help='Number of processes to use. Default %(default)s') + parser.add_argument('-m', '--memory', dest='memory', default='2000', help='Memory to allocate in MiB. Default %(default)s') + parser.add_argument('-k', '--kvm', action='store_true', dest='kvm', help='Use KVM instead of LXC') + parser.add_argument('-d', '--docker', action='store_true', dest='docker', help='Use Docker instead of LXC') + parser.add_argument('-S', '--setup', action='store_true', dest='setup', help='Set up the Gitian building environment. Only works on Debian-based systems (Ubuntu, Debian)') + parser.add_argument('-D', '--detach-sign', action='store_true', dest='detach_sign', help='Create the assert file for detached signing. Will not commit anything.') + parser.add_argument('-n', '--no-commit', action='store_false', dest='commit_files', help='Do not commit anything to git') + parser.add_argument('signer', nargs='?', help='GPG signer to sign each build assert file') + parser.add_argument('version', nargs='?', help='Version number, commit, or branch to build. If building a commit or branch, the -c option must be specified') + + args = parser.parse_args() + workdir = os.getcwd() + + args.host_os = sys.platform + + if args.host_os == 'win32' or args.host_os == 'cygwin': + raise Exception('Error: Native Windows is not supported by this script, use WSL') + + if args.host_os == 'linux': + if os.environ['USER'] == 'root': + raise Exception('Error: Do not run this script as the root user') + args.is_bionic = False + args.is_fedora = False + args.is_centos = False + if os.path.isfile('/usr/bin/lsb_release'): + args.is_bionic = b'bionic' in subprocess.check_output(['lsb_release', '-cs']) + if os.path.isfile('/etc/fedora-release'): + args.is_fedora = True + if os.path.isfile('/etc/centos-release'): + args.is_centos = True + + if args.kvm and args.docker: + raise Exception('Error: cannot have both kvm and docker') + + # Ensure no more than one environment variable for gitian-builder (USE_LXC, USE_VBOX, USE_DOCKER) is set as they + # can interfere (e.g., USE_LXC being set shadows USE_DOCKER; for details see gitian-builder/libexec/make-clean-vm). + os.environ['USE_LXC'] = '' + os.environ['USE_VBOX'] = '' + os.environ['USE_DOCKER'] = '' + if args.docker: + os.environ['USE_DOCKER'] = '1' + elif not args.kvm: + os.environ['USE_LXC'] = '1' + if 'GITIAN_HOST_IP' not in os.environ.keys(): + os.environ['GITIAN_HOST_IP'] = '10.0.3.1' + if 'LXC_GUEST_IP' not in os.environ.keys(): + os.environ['LXC_GUEST_IP'] = '10.0.3.5' + + if args.setup: + if args.host_os == 'linux': + setup_linux() + elif args.host_os == 'darwin': + setup_darwin() + + if args.buildsign: + args.build = True + args.sign = True + + if not args.build and not args.sign and not args.verify: + sys.exit(0) + + if args.host_os == 'darwin': + os.environ['PATH'] = '/usr/local/opt/coreutils/libexec/gnubin' + os.pathsep + os.environ['PATH'] + + args.linux = 'l' in args.os + args.windows = 'w' in args.os + args.macos = 'm' in args.os + + # Disable for MacOS if no SDK found + if args.macos and not os.path.isfile('gitian-builder/inputs/MacOSX10.11.sdk.tar.gz'): + print('Cannot build for MacOS, SDK does not exist. Will build for other OSes') + args.macos = False + + args.sign_prog = 'true' if args.detach_sign else 'gpg --detach-sign' + if args.detach_sign: + args.commit_files = False + + script_name = os.path.basename(sys.argv[0]) + if not args.signer: + print(script_name+': Missing signer') + print('Try '+script_name+' --help for more information') + sys.exit(1) + if not args.version: + print(script_name+': Missing version') + print('Try '+script_name+' --help for more information') + sys.exit(1) + + # Add leading 'v' for tags + if args.commit and args.pull: + raise Exception('Cannot have both commit and pull') + args.commit = ('' if args.commit else 'v') + args.version + + os.chdir('pivx') + if args.pull: + subprocess.check_call(['git', 'fetch', args.url, 'refs/pull/'+args.version+'/merge']) + if not os.path.isdir('../gitian-builder/inputs/pivx'): + os.makedirs('../gitian-builder/inputs/pivx') + os.chdir('../gitian-builder/inputs/pivx') + if not os.path.isdir('.git'): + subprocess.check_call(['git', 'init']) + subprocess.check_call(['git', 'fetch', args.url, 'refs/pull/'+args.version+'/merge']) + args.commit = subprocess.check_output(['git', 'show', '-s', '--format=%H', 'FETCH_HEAD'], universal_newlines=True, encoding='utf8').strip() + args.version = 'pull-' + args.version + print(args.commit) + subprocess.check_call(['git', 'fetch']) + subprocess.check_call(['git', 'checkout', args.commit]) + os.chdir(workdir) + + os.chdir('gitian-builder') + subprocess.check_call(['git', 'pull']) + os.chdir(workdir) + + if args.build: + build() + + if args.sign: + sign() + + if args.verify: + os.chdir('gitian.sigs') + subprocess.check_call(['git', 'pull']) + os.chdir(workdir) + sys.exit(verify()) + + +if __name__ == '__main__': + main() diff --git a/contrib/gitian-keys/README.md b/contrib/gitian-keys/README.md new file mode 100644 index 0000000..2cc1eba --- /dev/null +++ b/contrib/gitian-keys/README.md @@ -0,0 +1,27 @@ +## PGP keys of Gitian builders and Developers + +The file `keys.txt` contains fingerprints of the public keys of Gitian builders +and active developers. + +The associated keys are mainly used to sign git commits or the build results +of Gitian builds. + +The most recent version of each pgp key can be found on most pgp key servers. + +Fetch the latest version from the key server to see if any key was revoked in +the meantime. +To fetch the latest version of all pgp keys in your gpg homedir, + +```sh +gpg --refresh-keys +``` + +To fetch keys of Gitian builders and active developers, feed the list of +fingerprints of the primary keys into gpg: + +```sh +while read fingerprint keyholder_name; do gpg --keyserver hkp://subset.pool.sks-keyservers.net --recv-keys ${fingerprint}; done < ./keys.txt +``` + +Add your key to the list if you provided Gitian signatures for two major or +minor releases of PIVX Core. diff --git a/contrib/gitian-keys/keys.txt b/contrib/gitian-keys/keys.txt new file mode 100644 index 0000000..c2351f9 --- /dev/null +++ b/contrib/gitian-keys/keys.txt @@ -0,0 +1,5 @@ +03EFB47EAC111D0A669597D05DD23CCC686AA623 Furszy +6F993B250557E7B016ADE5713BDCDA2D87A881D9 Fuzzbawls +6BEEB3F378159D69F1F1FB6CFB3268F6FD9FC6CC Mrs-X +95FF81F36CC366492D67D9887E07C315C3BD9E93 Warrows +F18C56783E9C084826E17A203B40825F3926AFC4 random-zebra \ No newline at end of file diff --git a/contrib/init/org.pivx.pivxd.plist b/contrib/init/org.pivx.pivxd.plist new file mode 100644 index 0000000..f826368 --- /dev/null +++ b/contrib/init/org.pivx.pivxd.plist @@ -0,0 +1,14 @@ + + + + + Label + org.pivx.pivxd + ProgramArguments + + /usr/local/bin/pivxd + + RunAtLoad + + + diff --git a/contrib/init/pivxd.conf b/contrib/init/pivxd.conf new file mode 100644 index 0000000..42bc6f0 --- /dev/null +++ b/contrib/init/pivxd.conf @@ -0,0 +1,63 @@ +description "PIVX Core Daemon" + +start on runlevel [2345] +stop on starting rc RUNLEVEL=[016] + +env BITCOIND_BIN="/usr/bin/pivxd" +env BITCOIND_USER="pivx" +env BITCOIND_GROUP="pivx" +env BITCOIND_PIDDIR="/var/run/pivxd" +# upstart can't handle variables constructed with other variables +env BITCOIND_PIDFILE="/var/run/pivxd/pivxd.pid" +env BITCOIND_CONFIGFILE="/etc/pivx/pivx.conf" +env BITCOIND_DATADIR="/var/lib/pivxd" + +expect fork + +respawn +respawn limit 5 120 +kill timeout 60 + +pre-start script + # this will catch non-existent config files + # pivxd will check and exit with this very warning, but it can do so + # long after forking, leaving upstart to think everything started fine. + # since this is a commonly encountered case on install, just check and + # warn here. + if ! grep -qs '^rpcpassword=' "$BITCOIND_CONFIGFILE" ; then + echo "ERROR: You must set a secure rpcpassword to run pivxd." + echo "The setting must appear in $BITCOIND_CONFIGFILE" + echo + echo "This password is security critical to securing wallets " + echo "and must not be the same as the rpcuser setting." + echo "You can generate a suitable random password using the following" + echo "command from the shell:" + echo + echo "bash -c 'tr -dc a-zA-Z0-9 < /dev/urandom | head -c32 && echo'" + echo + echo "It is recommended that you also set alertnotify so you are " + echo "notified of problems:" + echo + echo "ie: alertnotify=echo %%s | mail -s \"PIVX Alert\"" \ + "admin@foo.com" + echo + exit 1 + fi + + mkdir -p "$BITCOIND_PIDDIR" + chmod 0755 "$BITCOIND_PIDDIR" + chown $BITCOIND_USER:$BITCOIND_GROUP "$BITCOIND_PIDDIR" + chown $BITCOIND_USER:$BITCOIND_GROUP "$BITCOIND_CONFIGFILE" + chmod 0660 "$BITCOIND_CONFIGFILE" +end script + +exec start-stop-daemon \ + --start \ + --pidfile "$BITCOIND_PIDFILE" \ + --chuid $BITCOIND_USER:$BITCOIND_GROUP \ + --exec "$BITCOIND_BIN" \ + -- \ + -pid="$BITCOIND_PIDFILE" \ + -conf="$BITCOIND_CONFIGFILE" \ + -datadir="$BITCOIND_DATADIR" \ + -daemon diff --git a/contrib/init/pivxd.init b/contrib/init/pivxd.init new file mode 100644 index 0000000..1b339e0 --- /dev/null +++ b/contrib/init/pivxd.init @@ -0,0 +1,67 @@ +#!/bin/bash +# +# pivxd The PIVX core server. +# +# +# chkconfig: 345 80 20 +# description: pivxd +# processname: pivxd +# + +# Source function library. +. /etc/init.d/functions + +# you can override defaults in /etc/sysconfig/pivxd, see below +if [ -f /etc/sysconfig/pivxd ]; then + . /etc/sysconfig/pivxd +fi + +RETVAL=0 + +prog=pivxd +# you can override the lockfile via BITCOIND_LOCKFILE in /etc/sysconfig/pivxd +lockfile=${BITCOIND_LOCKFILE-/var/lock/subsys/pivxd} + +# pivxd defaults to /usr/bin/pivxd, override with BITCOIND_BIN +bitcoind=${BITCOIND_BIN-/usr/bin/pivxd} + +# pivxd opts default to -disablewallet, override with BITCOIND_OPTS +bitcoind_opts=${BITCOIND_OPTS} + +start() { + echo -n $"Starting $prog: " + daemon $DAEMONOPTS $bitcoind $bitcoind_opts + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch $lockfile + return $RETVAL +} + +stop() { + echo -n $"Stopping $prog: " + killproc $prog + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f $lockfile + return $RETVAL +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $prog + ;; + restart) + stop + start + ;; + *) + echo "Usage: service $prog {start|stop|status|restart}" + exit 1 + ;; +esac diff --git a/contrib/init/pivxd.openrc b/contrib/init/pivxd.openrc new file mode 100644 index 0000000..d2a3b0a --- /dev/null +++ b/contrib/init/pivxd.openrc @@ -0,0 +1,92 @@ +#!/sbin/openrc-run + +# backward compatibility for existing gentoo layout +# +if [ -d "/var/lib/pivx/.pivx" ]; then + BITCOIND_DEFAULT_DATADIR="/var/lib/pivx/.pivx" +else + BITCOIND_DEFAULT_DATADIR="/var/lib/pivxd" +fi + +BITCOIND_CONFIGFILE=${BITCOIND_CONFIGFILE:-/etc/pivx/pivx.conf} +BITCOIND_PIDDIR=${BITCOIND_PIDDIR:-/var/run/pivxd} +BITCOIND_PIDFILE=${BITCOIND_PIDFILE:-${BITCOIND_PIDDIR}/pivxd.pid} +BITCOIND_DATADIR=${BITCOIND_DATADIR:-${BITCOIND_DEFAULT_DATADIR}} +BITCOIND_USER=${BITCOIND_USER:-${BITCOIN_USER:-pivx} +BITCOIND_GROUP=${BITCOIND_GROUP:-pivx} +BITCOIND_BIN=${BITCOIND_BIN:-/usr/bin/pivxd} +BITCOIND_NICE=${BITCOIND_NICE:-${NICELEVEL:-0}} +BITCOIND_OPTS="${BITCOIND_OPTS:-${BITCOIN_OPTS}}" + +name="PIVX Core Daemon" +description="PIVX crypto-currency p2p network daemon" + +command="/usr/bin/pivxd" +command_args="-pid=\"${BITCOIND_PIDFILE}\" \ + -conf=\"${BITCOIND_CONFIGFILE}\" \ + -datadir=\"${BITCOIND_DATADIR}\" \ + -daemon \ + ${BITCOIND_OPTS}" + +required_files="${BITCOIND_CONFIGFILE}" +start_stop_daemon_args="-u ${BITCOIND_USER} \ + -N ${BITCOIND_NICE} -w 2000" +pidfile="${BITCOIND_PIDFILE}" + +# The retry schedule to use when stopping the daemon. Could be either +# a timeout in seconds or multiple signal/timeout pairs (like +# "SIGKILL/180 SIGTERM/300") +retry="${BITCOIND_SIGTERM_TIMEOUT}" + +depend() { + need localmount net +} + +# verify +# 1) that the datadir exists and is writable (or create it) +# 2) that a directory for the pid exists and is writable +# 3) ownership and permissions on the config file +start_pre() { + checkpath \ + -d \ + --mode 0750 \ + --owner "${BITCOIND_USER}:${BITCOIND_GROUP}" \ + "${BITCOIND_DATADIR}" + + checkpath \ + -d \ + --mode 0755 \ + --owner "${BITCOIND_USER}:${BITCOIND_GROUP}" \ + "${BITCOIND_PIDDIR}" + + checkpath -f \ + -o ${BITCOIND_USER}:${BITCOIND_GROUP} \ + -m 0660 \ + ${BITCOIND_CONFIGFILE} + + checkconfig || return 1 +} + +checkconfig() +{ + if ! grep -qs '^rpcpassword=' "${BITCOIND_CONFIGFILE}" ; then + eerror "" + eerror "ERROR: You must set a secure rpcpassword to run pivxd." + eerror "The setting must appear in ${BITCOIND_CONFIGFILE}" + eerror "" + eerror "This password is security critical to securing wallets " + eerror "and must not be the same as the rpcuser setting." + eerror "You can generate a suitable random password using the following" + eerror "command from the shell:" + eerror "" + eerror "bash -c 'tr -dc a-zA-Z0-9 < /dev/urandom | head -c32 && echo'" + eerror "" + eerror "It is recommended that you also set alertnotify so you are " + eerror "notified of problems:" + eerror "" + eerror "ie: alertnotify=echo %%s | mail -s \"PIVX Alert\"" \ + "admin@foo.com" + eerror "" + return 1 + fi +} diff --git a/contrib/init/pivxd.openrcconf b/contrib/init/pivxd.openrcconf new file mode 100644 index 0000000..8c7d09a --- /dev/null +++ b/contrib/init/pivxd.openrcconf @@ -0,0 +1,33 @@ +# /etc/conf.d/pivxd: config file for /etc/init.d/pivxd + +# Config file location +#BITCOIND_CONFIGFILE="/etc/pivx/pivx.conf" + +# What directory to write pidfile to? (created and owned by $BITCOIND_USER) +#BITCOIND_PIDDIR="/var/run/pivxd" + +# What filename to give the pidfile +#BITCOIND_PIDFILE="${BITCOIND_PIDDIR}/pivxd.pid" + +# Where to write pivxd data (be mindful that the blockchain is large) +#BITCOIND_DATADIR="/var/lib/pivxd" + +# User and group to own pivxd process +#BITCOIND_USER="pivx" +#BITCOIND_GROUP="pivx" + +# Path to pivxd executable +#BITCOIND_BIN="/usr/bin/pivxd" + +# Nice value to run pivxd under +#BITCOIND_NICE=0 + +# Additional options (avoid -conf and -datadir, use flags above) +#BITCOIND_OPTS="" + +# The timeout in seconds OpenRC will wait for bitcoind to terminate +# after a SIGTERM has been raised. +# Note that this will be mapped as argument to start-stop-daemon's +# '--retry' option, which means you can specify a retry schedule +# here. For more information see man 8 start-stop-daemon. +BITCOIND_SIGTERM_TIMEOUT=60 diff --git a/contrib/init/pivxd.service b/contrib/init/pivxd.service new file mode 100644 index 0000000..9cb9571 --- /dev/null +++ b/contrib/init/pivxd.service @@ -0,0 +1,44 @@ +# It is not recommended to modify this file in-place, because it will +# be overwritten during package upgrades. If you want to add further +# options or overwrite existing ones then use +# $ systemctl edit bitcoind.service +# See "man systemd.service" for details. + +# Note that almost all daemon options could be specified in +# /etc/pivx/pivx.conf + +[Unit] +Description=PIVX daemon +After=network.target + +[Service] +ExecStart=/usr/bin/pivxd -daemon -conf=/etc/pivx/pivx.conf -pid=/run/pivxd/pivxd.pid +# Creates /run/pivxd owned by pivx +RuntimeDirectory=pivxd +User=pivx +Type=forking +PIDFile=/run/pivxd/pivxd.pid +Restart=on-failure + +# Hardening measures +#################### + +# Provide a private /tmp and /var/tmp. +PrivateTmp=true + +# Mount /usr, /boot/ and /etc read-only for the process. +ProtectSystem=full + +# Disallow the process and all of its children to gain +# new privileges through execve(). +NoNewPrivileges=true + +# Use a new /dev namespace only populated with API pseudo devices +# such as /dev/null, /dev/zero and /dev/random. +PrivateDevices=true + +# Deny the creation of writable and executable memory mappings. +MemoryDenyWriteExecute=true + +[Install] +WantedBy=multi-user.target diff --git a/contrib/install_db4.sh b/contrib/install_db4.sh new file mode 100644 index 0000000..890af5c --- /dev/null +++ b/contrib/install_db4.sh @@ -0,0 +1,101 @@ +#!/bin/sh + +# Install libdb4.8 (Berkeley DB). + +export LC_ALL=C +set -e + +if [ -z "${1}" ]; then + echo "Usage: $0 [ ...]" + echo + echo "Must specify a single argument: the directory in which db4 will be built." + echo "This is probably \`pwd\` if you're at the root of the pivx repository." + exit 1 +fi + +expand_path() { + echo "$(cd "${1}" && pwd -P)" +} + +BDB_PREFIX="$(expand_path ${1})/db4"; shift; +BDB_VERSION='db-4.8.30.NC' +BDB_HASH='12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef' +BDB_URL="https://download.oracle.com/berkeley-db/${BDB_VERSION}.tar.gz" + +check_exists() { + which "$1" >/dev/null 2>&1 +} + +sha256_check() { + # Args: + # + if check_exists sha256sum; then + echo "${1} ${2}" | sha256sum -c + elif check_exists sha256; then + if [ "$(uname)" = "FreeBSD" ]; then + sha256 -c "${1}" "${2}" + else + echo "${1} ${2}" | sha256 -c + fi + else + echo "${1} ${2}" | shasum -a 256 -c + fi +} + +http_get() { + # Args: + # + # It's acceptable that we don't require SSL here because we manually verify + # content hashes below. + # + if [ -f "${2}" ]; then + echo "File ${2} already exists; not downloading again" + elif check_exists curl; then + curl --insecure --retry 5 "${1}" -o "${2}" + else + wget --no-check-certificate "${1}" -O "${2}" + fi + + sha256_check "${3}" "${2}" +} + +mkdir -p "${BDB_PREFIX}" +http_get "${BDB_URL}" "${BDB_VERSION}.tar.gz" "${BDB_HASH}" +tar -xzvf ${BDB_VERSION}.tar.gz -C "$BDB_PREFIX" +cd "${BDB_PREFIX}/${BDB_VERSION}/" + +# Apply a patch necessary when building with clang and c++11 (see https://community.oracle.com/thread/3952592) +CLANG_CXX11_PATCH_URL='https://gist.githubusercontent.com/LnL7/5153b251fd525fe15de69b67e63a6075/raw/7778e9364679093a32dec2908656738e16b6bdcb/clang.patch' +CLANG_CXX11_PATCH_HASH='7a9a47b03fd5fb93a16ef42235fa9512db9b0829cfc3bdf90edd3ec1f44d637c' +http_get "${CLANG_CXX11_PATCH_URL}" clang.patch "${CLANG_CXX11_PATCH_HASH}" +patch -p2 < clang.patch + +# The packaged config.guess and config.sub are ancient (2009) and can cause build issues. +# Replace them with modern versions. +# See https://github.com/bitcoin/bitcoin/issues/16064 +CONFIG_GUESS_URL='https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=55eaf3e779455c4e5cc9f82efb5278be8f8f900b' +CONFIG_GUESS_HASH='2d1ff7bca773d2ec3c6217118129220fa72d8adda67c7d2bf79994b3129232c1' +CONFIG_SUB_URL='https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=55eaf3e779455c4e5cc9f82efb5278be8f8f900b' +CONFIG_SUB_HASH='3a4befde9bcdf0fdb2763fc1bfa74e8696df94e1ad7aac8042d133c8ff1d2e32' + +rm -f "dist/config.guess" +rm -f "dist/config.sub" + +http_get "${CONFIG_GUESS_URL}" dist/config.guess "${CONFIG_GUESS_HASH}" +http_get "${CONFIG_SUB_URL}" dist/config.sub "${CONFIG_SUB_HASH}" + +cd build_unix/ + +"${BDB_PREFIX}/${BDB_VERSION}/dist/configure" \ + --enable-cxx --disable-shared --disable-replication --with-pic --prefix="${BDB_PREFIX}" \ + "${@}" + +make install + +echo +echo "db4 build complete." +echo +echo 'When compiling pivxd, run `./configure` in the following way:' +echo +echo " export BDB_PREFIX='${BDB_PREFIX}'" +echo ' ./configure BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-I${BDB_PREFIX}/include" ...' diff --git a/contrib/macdeploy/extract-osx-sdk.sh b/contrib/macdeploy/extract-osx-sdk.sh new file mode 100644 index 0000000..4c17515 --- /dev/null +++ b/contrib/macdeploy/extract-osx-sdk.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# Copyright (c) 2016 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C +set -e + +INPUTFILE="Xcode_7.3.1.dmg" +HFSFILENAME="5.hfs" +SDKDIR="Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk" + +7z x "${INPUTFILE}" "${HFSFILENAME}" +SDKNAME="$(basename "${SDKDIR}")" +SDKDIRINODE=$(ifind -n "${SDKDIR}" "${HFSFILENAME}") +fls "${HFSFILENAME}" -rpF ${SDKDIRINODE} | + while read type inode filename; do + inode="${inode::-1}" + if [ "${filename:0:14}" = "usr/share/man/" ]; then + continue + fi + filename="${SDKNAME}/$filename" + echo "Extracting $filename ..." + mkdir -p "$(dirname "$filename")" + if [ "$type" = "l/l" ]; then + ln -s "$(icat "${HFSFILENAME}" $inode)" "$filename" + else + icat "${HFSFILENAME}" $inode >"$filename" + fi +done +echo "Building ${SDKNAME}.tar.gz ..." +MTIME="$(istat "${HFSFILENAME}" "${SDKDIRINODE}" | perl -nle 'm/Content Modified:\s+(.*?)\s\(/ && print $1')" +find "${SDKNAME}" | sort | tar --no-recursion --mtime="${MTIME}" --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > "${SDKNAME}.tar.gz" +echo 'All done!' diff --git a/contrib/pivx-cli.bash-completion b/contrib/pivx-cli.bash-completion new file mode 100644 index 0000000..3ccecfe --- /dev/null +++ b/contrib/pivx-cli.bash-completion @@ -0,0 +1,154 @@ +# bash programmable completion for pivx-cli(1) +# Copyright (c) 2012-2016 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +# call $pivx-cli for RPC +_pivx_rpc() { + # determine already specified args necessary for RPC + local rpcargs=() + for i in ${COMP_LINE}; do + case "$i" in + -conf=*|-datadir=*|-regtest|-rpc*|-testnet) + rpcargs=( "${rpcargs[@]}" "$i" ) + ;; + esac + done + $pivx_cli "${rpcargs[@]}" "$@" +} + +# Add wallet accounts to COMPREPLY +_pivx_accounts() { + local accounts + accounts=$(_pivx_rpc listaccounts | awk -F '"' '{ print $2 }') + COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "$accounts" -- "$cur" ) ) +} + +_pivx_cli() { + local cur prev words=() cword + local pivx_cli + + # save and use original argument to invoke pivx-cli for -help, help and RPC + # as pivx-cli might not be in $PATH + pivx_cli="$1" + + COMPREPLY=() + _get_comp_words_by_ref -n = cur prev words cword + + if ((cword > 5)); then + case ${words[cword-5]} in + sendtoaddress) + COMPREPLY=( $( compgen -W "true false" -- "$cur" ) ) + return 0 + ;; + esac + fi + + if ((cword > 4)); then + case ${words[cword-4]} in + importaddress|listtransactions|setban) + COMPREPLY=( $( compgen -W "true false" -- "$cur" ) ) + return 0 + ;; + signrawtransaction) + COMPREPLY=( $( compgen -W "ALL NONE SINGLE ALL|ANYONECANPAY NONE|ANYONECANPAY SINGLE|ANYONECANPAY" -- "$cur" ) ) + return 0 + ;; + esac + fi + + if ((cword > 3)); then + case ${words[cword-3]} in + addmultisigaddress) + _pivx_accounts + return 0 + ;; + getbalance|gettxout|importaddress|importpubkey|importprivkey|listreceivedbyaccount|listreceivedbyaddress|listsinceblock) + COMPREPLY=( $( compgen -W "true false" -- "$cur" ) ) + return 0 + ;; + esac + fi + + if ((cword > 2)); then + case ${words[cword-2]} in + addnode) + COMPREPLY=( $( compgen -W "add remove onetry" -- "$cur" ) ) + return 0 + ;; + setban) + COMPREPLY=( $( compgen -W "add remove" -- "$cur" ) ) + return 0 + ;; + fundrawtransaction|getblock|getblockheader|getmempoolancestors|getmempooldescendants|getrawtransaction|gettransaction|listaccounts|listreceivedbyaccount|listreceivedbyaddress|sendrawtransaction) + COMPREPLY=( $( compgen -W "true false" -- "$cur" ) ) + return 0 + ;; + move|setaccount) + _pivx_accounts + return 0 + ;; + esac + fi + + case "$prev" in + backupwallet|dumpwallet|importwallet) + _filedir + return 0 + ;; + getaddednodeinfo|getrawmempool|lockunspent|setgenerate) + COMPREPLY=( $( compgen -W "true false" -- "$cur" ) ) + return 0 + ;; + getaccountaddress|getaddressesbyaccount|getbalance|getnewaddress|getreceivedbyaccount|listtransactions|move|sendfrom|sendmany) + _pivx_accounts + return 0 + ;; + esac + + case "$cur" in + -conf=*) + cur="${cur#*=}" + _filedir + return 0 + ;; + -datadir=*) + cur="${cur#*=}" + _filedir -d + return 0 + ;; + -*=*) # prevent nonsense completions + return 0 + ;; + *) + local helpopts commands + + # only parse -help if senseful + if [[ -z "$cur" || "$cur" =~ ^- ]]; then + helpopts=$($pivx_cli -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' ) + fi + + # only parse help if senseful + if [[ -z "$cur" || "$cur" =~ ^[a-z] ]]; then + commands=$(_pivx_rpc help 2>/dev/null | awk '$1 ~ /^[a-z]/ { print $1; }') + fi + + COMPREPLY=( $( compgen -W "$helpopts $commands" -- "$cur" ) ) + + # Prevent space if an argument is desired + if [[ $COMPREPLY == *= ]]; then + compopt -o nospace + fi + return 0 + ;; + esac +} && +complete -F _pivx_cli pivx-cli + +# Local variables: +# mode: shell-script +# sh-basic-offset: 4 +# sh-indent-comment: t +# indent-tabs-mode: nil +# End: +# ex: ts=4 sw=4 et filetype=sh diff --git a/contrib/pivx-qt.pro b/contrib/pivx-qt.pro new file mode 100644 index 0000000..24e5a96 --- /dev/null +++ b/contrib/pivx-qt.pro @@ -0,0 +1,663 @@ +###################################################################### +# Automatically generated by qmake (2.01a) ?? ??? 23 17:50:54 2015 +###################################################################### + +DEFINES += ENABLE_WALLET + +TEMPLATE = app +TARGET = +DEPENDPATH += . \ + src \ + src/compat \ + src/config \ + src/crypto \ + src/json \ + src/obj \ + src/primitives \ + src/qt \ + src/script \ + src/test \ + src/univalue \ + src/leveldb/db \ + src/leveldb/issues \ + src/leveldb/port \ + src/leveldb/table \ + src/leveldb/util \ + src/qt/forms \ + src/qt/locale \ + src/qt/test \ + src/secp256k1/include \ + src/secp256k1/src \ + src/test/data \ + src/leveldb/doc/bench \ + src/leveldb/helpers/memenv \ + src/leveldb/include/leveldb \ + src/leveldb/port/win \ + src/secp256k1/src/java +INCLUDEPATH += . \ + src \ + src/config \ + src/leveldb/port/win \ + src/crypto \ + src/primitives \ + src/script \ + src/obj \ + src/univalue \ + src/json \ + src/qt \ + src/qt/forms \ + src/compat \ + src/secp256k1/include \ + src/leveldb/helpers/memenv \ + src/test/data \ + src/test \ + src/qt/test \ + src/secp256k1/src \ + src/secp256k1/src/java + +# Input +HEADERS += src/activemasternode.h \ + src/addrman.h \ + src/alert.h \ + src/allocators.h \ + src/amount.h \ + src/base58.h \ + src/bloom.h \ + src/chain.h \ + src/chainparams.h \ + src/chainparamsbase.h \ + src/chainparamsseeds.h \ + src/checkpoints.h \ + src/checkqueue.h \ + src/clientversion.h \ + src/coincontrol.h \ + src/coins.h \ + src/compat.h \ + src/compressor.h \ + src/core_io.h \ + src/crypter.h \ + src/obfuscation-relay.h \ + src/obfuscation.h \ + src/pivx-config.h \ + src/db.h \ + src/eccryptoverify.h \ + src/ecwrapper.h \ + src/hash.h \ + src/init.h \ + src/swifttx.h \ + src/keepass.h \ + src/key.h \ + src/keystore.h \ + src/leveldbwrapper.h \ + src/limitedmap.h \ + src/main.h \ + src/masternode-budget.h \ + src/masternode-payments.h \ + src/masternode-sync.h \ + src/masternode.h \ + src/masternodeconfig.h \ + src/masternodeman.h \ + src/merkleblock.h \ + src/miner.h \ + src/mruset.h \ + src/net.h \ + src/netbase.h \ + src/noui.h \ + src/pow.h \ + src/protocol.h \ + src/pubkey.h \ + src/random.h \ + src/rpcclient.h \ + src/rpcprotocol.h \ + src/rpcserver.h \ + src/serialize.h \ + src/spork.h \ + src/streams.h \ + src/sync.h \ + src/threadsafety.h \ + src/timedata.h \ + src/tinyformat.h \ + src/txdb.h \ + src/txmempool.h \ + src/ui_interface.h \ + src/uint256.h \ + src/undo.h \ + src/util.h \ + src/utilmoneystr.h \ + src/utilstrencodings.h \ + src/utiltime.h \ + src/version.h \ + src/wallet.h \ + src/wallet_ismine.h \ + src/walletdb.h \ + src/compat/sanity.h \ + src/config/pivx-config.h \ + src/crypto/common.h \ + src/crypto/hmac_sha256.h \ + src/crypto/hmac_sha512.h \ + src/crypto/rfc6979_hmac_sha256.h \ + src/crypto/ripemd160.h \ + src/crypto/sha1.h \ + src/crypto/sha256.h \ + src/crypto/sha512.h \ + src/crypto/sph_blake.h \ + src/crypto/sph_bmw.h \ + src/crypto/sph_cubehash.h \ + src/crypto/sph_echo.h \ + src/crypto/sph_groestl.h \ + src/crypto/sph_jh.h \ + src/crypto/sph_keccak.h \ + src/crypto/sph_luffa.h \ + src/crypto/sph_shavite.h \ + src/crypto/sph_simd.h \ + src/crypto/sph_skein.h \ + src/crypto/sph_types.h \ + src/json/json_spirit.h \ + src/json/json_spirit_error_position.h \ + src/json/json_spirit_reader.h \ + src/json/json_spirit_reader_template.h \ + src/json/json_spirit_stream_reader.h \ + src/json/json_spirit_utils.h \ + src/json/json_spirit_value.h \ + src/json/json_spirit_writer.h \ + src/json/json_spirit_writer_template.h \ + src/obj/build.h \ + src/primitives/block.h \ + src/primitives/transaction.h \ + src/qt/addressbookpage.h \ + src/qt/addresstablemodel.h \ + src/qt/askpassphrasedialog.h \ + src/qt/bitcoinaddressvalidator.h \ + src/qt/bitcoinamountfield.h \ + src/qt/bitcoingui.h \ + src/qt/bitcoinunits.h \ + src/qt/clientmodel.h \ + src/qt/coincontroldialog.h \ + src/qt/coincontroltreewidget.h \ + src/qt/csvmodelwriter.h \ + src/qt/obfuscationconfig.h \ + src/qt/editaddressdialog.h \ + src/qt/guiconstants.h \ + src/qt/guiutil.h \ + src/qt/intro.h \ + src/qt/macdockiconhandler.h \ + src/qt/macnotificationhandler.h \ + src/qt/networkstyle.h \ + src/qt/notificator.h \ + src/qt/openuridialog.h \ + src/qt/optionsdialog.h \ + src/qt/optionsmodel.h \ + src/qt/overviewpage.h \ + src/qt/paymentrequest.pb.h \ + src/qt/paymentrequestplus.h \ + src/qt/paymentserver.h \ + src/qt/peertablemodel.h \ + src/qt/qvalidatedlineedit.h \ + src/qt/qvaluecombobox.h \ + src/qt/receivecoinsdialog.h \ + src/qt/receiverequestdialog.h \ + src/qt/recentrequeststablemodel.h \ + src/qt/rpcconsole.h \ + src/qt/sendcoinsdialog.h \ + src/qt/sendcoinsentry.h \ + src/qt/signverifymessagedialog.h \ + src/qt/splashscreen.h \ + src/qt/trafficgraphwidget.h \ + src/qt/transactiondesc.h \ + src/qt/transactiondescdialog.h \ + src/qt/transactionfilterproxy.h \ + src/qt/transactionrecord.h \ + src/qt/transactiontablemodel.h \ + src/qt/transactionview.h \ + src/qt/utilitydialog.h \ + src/qt/walletframe.h \ + src/qt/walletmodel.h \ + src/qt/walletmodeltransaction.h \ + src/qt/walletview.h \ + src/qt/winshutdownmonitor.h \ + src/script/bitcoinconsensus.h \ + src/script/interpreter.h \ + src/script/script.h \ + src/script/script_error.h \ + src/script/sigcache.h \ + src/script/sign.h \ + src/script/standard.h \ + src/univalue/univalue.h \ + src/univalue/univalue_escapes.h \ + src/leveldb/db/builder.h \ + src/leveldb/db/db_impl.h \ + src/leveldb/db/db_iter.h \ + src/leveldb/db/dbformat.h \ + src/leveldb/db/filename.h \ + src/leveldb/db/log_format.h \ + src/leveldb/db/log_reader.h \ + src/leveldb/db/log_writer.h \ + src/leveldb/db/memtable.h \ + src/leveldb/db/skiplist.h \ + src/leveldb/db/snapshot.h \ + src/leveldb/db/table_cache.h \ + src/leveldb/db/version_edit.h \ + src/leveldb/db/version_set.h \ + src/leveldb/db/write_batch_internal.h \ + src/leveldb/port/atomic_pointer.h \ + src/leveldb/port/port.h \ + src/leveldb/port/port_example.h \ + src/leveldb/port/port_posix.h \ + src/leveldb/port/port_win.h \ + src/leveldb/port/thread_annotations.h \ + src/leveldb/table/block.h \ + src/leveldb/table/block_builder.h \ + src/leveldb/table/filter_block.h \ + src/leveldb/table/format.h \ + src/leveldb/table/iterator_wrapper.h \ + src/leveldb/table/merger.h \ + src/leveldb/table/two_level_iterator.h \ + src/leveldb/util/arena.h \ + src/leveldb/util/coding.h \ + src/leveldb/util/crc32c.h \ + src/leveldb/util/hash.h \ + src/leveldb/util/histogram.h \ + src/leveldb/util/logging.h \ + src/leveldb/util/mutexlock.h \ + src/leveldb/util/posix_logger.h \ + src/leveldb/util/random.h \ + src/leveldb/util/testharness.h \ + src/leveldb/util/testutil.h \ + src/qt/forms/ui_aboutdialog.h \ + src/qt/test/paymentrequestdata.h \ + src/qt/test/paymentservertests.h \ + src/qt/test/uritests.h \ + src/secp256k1/include/secp256k1.h \ + src/secp256k1/src/ecdsa.h \ + src/secp256k1/src/ecdsa_impl.h \ + src/secp256k1/src/eckey.h \ + src/secp256k1/src/eckey_impl.h \ + src/secp256k1/src/ecmult.h \ + src/secp256k1/src/ecmult_gen.h \ + src/secp256k1/src/ecmult_gen_impl.h \ + src/secp256k1/src/ecmult_impl.h \ + src/secp256k1/src/field.h \ + src/secp256k1/src/field_10x26.h \ + src/secp256k1/src/field_10x26_impl.h \ + src/secp256k1/src/field_5x52.h \ + src/secp256k1/src/field_5x52_asm_impl.h \ + src/secp256k1/src/field_5x52_impl.h \ + src/secp256k1/src/field_5x52_int128_impl.h \ + src/secp256k1/src/field_gmp.h \ + src/secp256k1/src/field_gmp_impl.h \ + src/secp256k1/src/field_impl.h \ + src/secp256k1/src/group.h \ + src/secp256k1/src/group_impl.h \ + src/secp256k1/src/libsecp256k1-config.h \ + src/secp256k1/src/num.h \ + src/secp256k1/src/num_gmp.h \ + src/secp256k1/src/num_gmp_impl.h \ + src/secp256k1/src/num_impl.h \ + src/secp256k1/src/scalar.h \ + src/secp256k1/src/scalar_4x64.h \ + src/secp256k1/src/scalar_4x64_impl.h \ + src/secp256k1/src/scalar_8x32.h \ + src/secp256k1/src/scalar_8x32_impl.h \ + src/secp256k1/src/scalar_impl.h \ + src/secp256k1/src/testrand.h \ + src/secp256k1/src/testrand_impl.h \ + src/secp256k1/src/util.h \ + src/test/data/alertTests.raw.h \ + src/test/data/base58_encode_decode.json.h \ + src/test/data/base58_keys_invalid.json.h \ + src/test/data/base58_keys_valid.json.h \ + src/test/data/script_invalid.json.h \ + src/test/data/script_valid.json.h \ + src/test/data/sig_canonical.json.h \ + src/test/data/sig_noncanonical.json.h \ + src/test/data/sighash.json.h \ + src/test/data/tx_invalid.json.h \ + src/test/data/tx_valid.json.h \ + src/leveldb/helpers/memenv/memenv.h \ + src/leveldb/include/leveldb/c.h \ + src/leveldb/include/leveldb/cache.h \ + src/leveldb/include/leveldb/comparator.h \ + src/leveldb/include/leveldb/db.h \ + src/leveldb/include/leveldb/dumpfile.h \ + src/leveldb/include/leveldb/env.h \ + src/leveldb/include/leveldb/filter_policy.h \ + src/leveldb/include/leveldb/iterator.h \ + src/leveldb/include/leveldb/options.h \ + src/leveldb/include/leveldb/slice.h \ + src/leveldb/include/leveldb/status.h \ + src/leveldb/include/leveldb/table.h \ + src/leveldb/include/leveldb/table_builder.h \ + src/leveldb/include/leveldb/write_batch.h \ + src/leveldb/port/win/stdint.h \ + src/secp256k1/src/java/org_bitcoin_NativeSecp256k1.h \ + src/crypto/aes_helper.c \ + src/qt/bitcoinamountfield.moc \ + src/qt/pivx.moc \ + src/qt/intro.moc \ + src/qt/overviewpage.moc \ + src/qt/rpcconsole.moc \ + src/secp256k1/src/secp256k1.c +FORMS += src/qt/forms/addressbookpage.ui \ + src/qt/forms/askpassphrasedialog.ui \ + src/qt/forms/coincontroldialog.ui \ + src/qt/forms/obfuscationconfig.ui \ + src/qt/forms/editaddressdialog.ui \ + src/qt/forms/helpmessagedialog.ui \ + src/qt/forms/intro.ui \ + src/qt/forms/openuridialog.ui \ + src/qt/forms/optionsdialog.ui \ + src/qt/forms/overviewpage.ui \ + src/qt/forms/receivecoinsdialog.ui \ + src/qt/forms/receiverequestdialog.ui \ + src/qt/forms/rpcconsole.ui \ + src/qt/forms/sendcoinsdialog.ui \ + src/qt/forms/sendcoinsentry.ui \ + src/qt/forms/signverifymessagedialog.ui \ + src/qt/forms/transactiondescdialog.ui +SOURCES += src/activemasternode.cpp \ + src/addrman.cpp \ + src/alert.cpp \ + src/allocators.cpp \ + src/amount.cpp \ + src/base58.cpp \ + src/bloom.cpp \ + src/chain.cpp \ + src/chainparams.cpp \ + src/chainparamsbase.cpp \ + src/checkpoints.cpp \ + src/clientversion.cpp \ + src/coins.cpp \ + src/compressor.cpp \ + src/core_read.cpp \ + src/core_write.cpp \ + src/crypter.cpp \ + src/obfuscation-relay.cpp \ + src/obfuscation.cpp \ + src/pivx-cli.cpp \ + src/pivx-tx.cpp \ + src/pivx.cpp \ + src/db.cpp \ + src/eccryptoverify.cpp \ + src/ecwrapper.cpp \ + src/editaddressdialog.cpp \ + src/hash.cpp \ + src/init.cpp \ + src/swifttx.cpp \ + src/keepass.cpp \ + src/key.cpp \ + src/keystore.cpp \ + src/leveldbwrapper.cpp \ + src/main.cpp \ + src/masternode-budget.cpp \ + src/masternode-payments.cpp \ + src/masternode-sync.cpp \ + src/masternode.cpp \ + src/masternodeconfig.cpp \ + src/masternodeman.cpp \ + src/merkleblock.cpp \ + src/miner.cpp \ + src/net.cpp \ + src/netbase.cpp \ + src/noui.cpp \ + src/pow.cpp \ + src/protocol.cpp \ + src/pubkey.cpp \ + src/random.cpp \ + src/rest.cpp \ + src/rpcblockchain.cpp \ + src/rpcclient.cpp \ + src/rpcdump.cpp \ + src/rpcmasternode-budget.cpp \ + src/rpcmasternode.cpp \ + src/rpcmining.cpp \ + src/rpcmisc.cpp \ + src/rpcnet.cpp \ + src/rpcprotocol.cpp \ + src/rpcrawtransaction.cpp \ + src/rpcserver.cpp \ + src/rpcwallet.cpp \ + src/spork.cpp \ + src/sync.cpp \ + src/timedata.cpp \ + src/txdb.cpp \ + src/txmempool.cpp \ + src/uint256.cpp \ + src/util.cpp \ + src/utilmoneystr.cpp \ + src/utilstrencodings.cpp \ + src/utiltime.cpp \ + src/wallet.cpp \ + src/wallet_ismine.cpp \ + src/walletdb.cpp \ + src/compat/glibc_compat.cpp \ + src/compat/glibc_sanity.cpp \ + src/compat/glibcxx_compat.cpp \ + src/compat/glibcxx_sanity.cpp \ + src/compat/strnlen.cpp \ + src/crypto/aes_helper.c \ + src/crypto/blake.c \ + src/crypto/bmw.c \ + src/crypto/cubehash.c \ + src/crypto/echo.c \ + src/crypto/groestl.c \ + src/crypto/hmac_sha256.cpp \ + src/crypto/hmac_sha512.cpp \ + src/crypto/jh.c \ + src/crypto/keccak.c \ + src/crypto/luffa.c \ + src/crypto/rfc6979_hmac_sha256.cpp \ + src/crypto/ripemd160.cpp \ + src/crypto/sha1.cpp \ + src/crypto/sha256.cpp \ + src/crypto/sha512.cpp \ + src/crypto/shavite.c \ + src/crypto/simd.c \ + src/crypto/skein.c \ + src/json/json_spirit_reader.cpp \ + src/json/json_spirit_value.cpp \ + src/json/json_spirit_writer.cpp \ + src/primitives/block.cpp \ + src/primitives/transaction.cpp \ + src/qt/addressbookpage.cpp \ + src/qt/addresstablemodel.cpp \ + src/qt/askpassphrasedialog.cpp \ + src/qt/bitcoinaddressvalidator.cpp \ + src/qt/bitcoinamountfield.cpp \ + src/qt/bitcoingui.cpp \ + src/qt/bitcoinunits.cpp \ + src/qt/clientmodel.cpp \ + src/qt/coincontroldialog.cpp \ + src/qt/coincontroltreewidget.cpp \ + src/qt/csvmodelwriter.cpp \ + src/qt/obfuscationconfig.cpp \ + src/qt/pivx.cpp \ + src/qt/pivxstrings.cpp \ + src/qt/editaddressdialog.cpp \ + src/qt/guiutil.cpp \ + src/qt/intro.cpp \ + src/qt/networkstyle.cpp \ + src/qt/notificator.cpp \ + src/qt/openuridialog.cpp \ + src/qt/optionsdialog.cpp \ + src/qt/optionsmodel.cpp \ + src/qt/overviewpage.cpp \ + src/qt/paymentrequest.pb.cc \ + src/qt/paymentrequestplus.cpp \ + src/qt/paymentserver.cpp \ + src/qt/peertablemodel.cpp \ + src/qt/qvalidatedlineedit.cpp \ + src/qt/qvaluecombobox.cpp \ + src/qt/receivecoinsdialog.cpp \ + src/qt/receiverequestdialog.cpp \ + src/qt/recentrequeststablemodel.cpp \ + src/qt/rpcconsole.cpp \ + src/qt/sendcoinsdialog.cpp \ + src/qt/sendcoinsentry.cpp \ + src/qt/signverifymessagedialog.cpp \ + src/qt/splashscreen.cpp \ + src/qt/trafficgraphwidget.cpp \ + src/qt/transactiondesc.cpp \ + src/qt/transactiondescdialog.cpp \ + src/qt/transactionfilterproxy.cpp \ + src/qt/transactionrecord.cpp \ + src/qt/transactiontablemodel.cpp \ + src/qt/transactionview.cpp \ + src/qt/utilitydialog.cpp \ + src/qt/walletframe.cpp \ + src/qt/walletmodel.cpp \ + src/qt/walletmodeltransaction.cpp \ + src/qt/walletview.cpp \ + src/qt/winshutdownmonitor.cpp \ + src/script/bitcoinconsensus.cpp \ + src/script/interpreter.cpp \ + src/script/script.cpp \ + src/script/script_error.cpp \ + src/script/sigcache.cpp \ + src/script/sign.cpp \ + src/script/standard.cpp \ + src/test/accounting_tests.cpp \ + src/test/alert_tests.cpp \ + src/test/allocator_tests.cpp \ + src/test/base32_tests.cpp \ + src/test/base58_tests.cpp \ + src/test/base64_tests.cpp \ + src/test/bip32_tests.cpp \ + src/test/bloom_tests.cpp \ + src/test/checkblock_tests.cpp \ + src/test/Checkpoints_tests.cpp \ + src/test/coins_tests.cpp \ + src/test/compress_tests.cpp \ + src/test/crypto_tests.cpp \ + src/test/DoS_tests.cpp \ + src/test/getarg_tests.cpp \ + src/test/hash_tests.cpp \ + src/test/key_tests.cpp \ + src/test/main_tests.cpp \ + src/test/mempool_tests.cpp \ + src/test/miner_tests.cpp \ + src/test/mruset_tests.cpp \ + src/test/multisig_tests.cpp \ + src/test/netbase_tests.cpp \ + src/test/pmt_tests.cpp \ + src/test/rpc_tests.cpp \ + src/test/rpc_wallet_tests.cpp \ + src/test/sanity_tests.cpp \ + src/test/script_P2SH_tests.cpp \ + src/test/script_tests.cpp \ + src/test/scriptnum_tests.cpp \ + src/test/serialize_tests.cpp \ + src/test/sighash_tests.cpp \ + src/test/sigopcount_tests.cpp \ + src/test/skiplist_tests.cpp \ + src/test/test_pivx.cpp \ + src/test/timedata_tests.cpp \ + src/test/transaction_tests.cpp \ + src/test/uint256_tests.cpp \ + src/test/univalue_tests.cpp \ + src/test/util_tests.cpp \ + src/test/wallet_tests.cpp \ + src/univalue/gen.cpp \ + src/univalue/univalue.cpp \ + src/univalue/univalue_read.cpp \ + src/univalue/univalue_write.cpp \ + src/leveldb/db/autocompact_test.cc \ + src/leveldb/db/builder.cc \ + src/leveldb/db/c.cc \ + src/leveldb/db/c_test.c \ + src/leveldb/db/corruption_test.cc \ + src/leveldb/db/db_bench.cc \ + src/leveldb/db/db_impl.cc \ + src/leveldb/db/db_iter.cc \ + src/leveldb/db/db_test.cc \ + src/leveldb/db/dbformat.cc \ + src/leveldb/db/dbformat_test.cc \ + src/leveldb/db/dumpfile.cc \ + src/leveldb/db/filename.cc \ + src/leveldb/db/filename_test.cc \ + src/leveldb/db/leveldb_main.cc \ + src/leveldb/db/log_reader.cc \ + src/leveldb/db/log_test.cc \ + src/leveldb/db/log_writer.cc \ + src/leveldb/db/memtable.cc \ + src/leveldb/db/repair.cc \ + src/leveldb/db/skiplist_test.cc \ + src/leveldb/db/table_cache.cc \ + src/leveldb/db/version_edit.cc \ + src/leveldb/db/version_edit_test.cc \ + src/leveldb/db/version_set.cc \ + src/leveldb/db/version_set_test.cc \ + src/leveldb/db/write_batch.cc \ + src/leveldb/db/write_batch_test.cc \ + src/leveldb/issues/issue178_test.cc \ + src/leveldb/issues/issue200_test.cc \ + src/leveldb/port/port_posix.cc \ + src/leveldb/port/port_win.cc \ + src/leveldb/table/block.cc \ + src/leveldb/table/block_builder.cc \ + src/leveldb/table/filter_block.cc \ + src/leveldb/table/filter_block_test.cc \ + src/leveldb/table/format.cc \ + src/leveldb/table/iterator.cc \ + src/leveldb/table/merger.cc \ + src/leveldb/table/table.cc \ + src/leveldb/table/table_builder.cc \ + src/leveldb/table/table_test.cc \ + src/leveldb/table/two_level_iterator.cc \ + src/leveldb/util/arena.cc \ + src/leveldb/util/arena_test.cc \ + src/leveldb/util/bloom.cc \ + src/leveldb/util/bloom_test.cc \ + src/leveldb/util/cache.cc \ + src/leveldb/util/cache_test.cc \ + src/leveldb/util/coding.cc \ + src/leveldb/util/coding_test.cc \ + src/leveldb/util/comparator.cc \ + src/leveldb/util/crc32c.cc \ + src/leveldb/util/crc32c_test.cc \ + src/leveldb/util/env.cc \ + src/leveldb/util/env_posix.cc \ + src/leveldb/util/env_test.cc \ + src/leveldb/util/env_win.cc \ + src/leveldb/util/filter_policy.cc \ + src/leveldb/util/hash.cc \ + src/leveldb/util/hash_test.cc \ + src/leveldb/util/histogram.cc \ + src/leveldb/util/logging.cc \ + src/leveldb/util/options.cc \ + src/leveldb/util/status.cc \ + src/leveldb/util/testharness.cc \ + src/leveldb/util/testutil.cc \ + src/qt/test/paymentservertests.cpp \ + src/qt/test/test_main.cpp \ + src/qt/test/uritests.cpp \ + src/secp256k1/src/bench_inv.c \ + src/secp256k1/src/bench_sign.c \ + src/secp256k1/src/bench_verify.c \ + src/secp256k1/src/secp256k1.c \ + src/secp256k1/src/tests.c \ + src/leveldb/doc/bench/db_bench_sqlite3.cc \ + src/leveldb/doc/bench/db_bench_tree_db.cc \ + src/leveldb/helpers/memenv/memenv.cc \ + src/leveldb/helpers/memenv/memenv_test.cc \ + src/secp256k1/src/java/org_bitcoin_NativeSecp256k1.c +RESOURCES += src/qt/pivx.qrc src/qt/pivx_locale.qrc + +TRANSLATIONS += src/qt/locale/pivx_bg.ts \ + src/qt/locale/pivx_de.ts \ + src/qt/locale/pivx_en.ts \ + src/qt/locale/pivx_es.ts \ + src/qt/locale/pivx_fi.ts \ + src/qt/locale/pivx_fr.ts \ + src/qt/locale/pivx_it.ts \ + src/qt/locale/pivx_ja.ts \ + src/qt/locale/pivx_pl.ts \ + src/qt/locale/pivx_pt.ts \ + src/qt/locale/pivx_ru.ts \ + src/qt/locale/pivx_sk.ts \ + src/qt/locale/pivx_sv.ts \ + src/qt/locale/pivx_vi.ts \ + src/qt/locale/pivx_zh_CN.ts \ + src/qt/locale/pivx_zh_TW.ts + +DISTFILES += \ + README.md diff --git a/contrib/pivx-tx.bash-completion b/contrib/pivx-tx.bash-completion new file mode 100644 index 0000000..4aec1ee --- /dev/null +++ b/contrib/pivx-tx.bash-completion @@ -0,0 +1,57 @@ +# bash programmable completion for pivx-tx(1) +# Copyright (c) 2016 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +_pivx_tx() { + local cur prev words=() cword + local pivx_tx + + # save and use original argument to invoke pivx-tx for -help + # it might not be in $PATH + pivx_tx="$1" + + COMPREPLY=() + _get_comp_words_by_ref -n =: cur prev words cword + + case "$cur" in + load=*:*) + cur="${cur#load=*:}" + _filedir + return 0 + ;; + *=*) # prevent attempts to complete other arguments + return 0 + ;; + esac + + if [[ "$cword" == 1 || ( "$prev" != "-create" && "$prev" == -* ) ]]; then + # only options (or an uncompletable hex-string) allowed + # parse pivx-tx -help for options + local helpopts + helpopts=$($pivx_tx -help | sed -e '/^ -/ p' -e d ) + COMPREPLY=( $( compgen -W "$helpopts" -- "$cur" ) ) + else + # only commands are allowed + # parse -help for commands + local helpcmds + helpcmds=$($pivx_tx -help | sed -e '1,/Commands:/d' -e 's/=.*/=/' -e '/^ [a-z]/ p' -e d ) + COMPREPLY=( $( compgen -W "$helpcmds" -- "$cur" ) ) + fi + + # Prevent space if an argument is desired + if [[ $COMPREPLY == *= ]]; then + compopt -o nospace + fi + + return 0 +} && +complete -F _pivx_tx pivx-tx + +# Local variables: +# mode: shell-script +# sh-basic-offset: 4 +# sh-indent-comment: t +# indent-tabs-mode: nil +# End: +# ex: ts=4 sw=4 et filetype=sh diff --git a/contrib/pivxd.bash-completion b/contrib/pivxd.bash-completion new file mode 100644 index 0000000..0038278 --- /dev/null +++ b/contrib/pivxd.bash-completion @@ -0,0 +1,56 @@ +# bash programmable completion for pivxd(1) and pivx-qt(1) +# Copyright (c) 2012-2016 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +_pivxd() { + local cur prev words=() cword + local pivxd + + # save and use original argument to invoke pivxd for -help + # it might not be in $PATH + pivxd="$1" + + COMPREPLY=() + _get_comp_words_by_ref -n = cur prev words cword + + case "$cur" in + -conf=*|-pid=*|-loadblock=*|-rootcertificates=*|-rpccookiefile=*|-wallet=*) + cur="${cur#*=}" + _filedir + return 0 + ;; + -datadir=*) + cur="${cur#*=}" + _filedir -d + return 0 + ;; + -*=*) # prevent nonsense completions + return 0 + ;; + *) + + # only parse -help if sensible + if [[ -z "$cur" || "$cur" =~ ^- ]]; then + local helpopts + helpopts=$($pivxd -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' ) + COMPREPLY=( $( compgen -W "$helpopts" -- "$cur" ) ) + fi + + # Prevent space if an argument is desired + if [[ $COMPREPLY == *= ]]; then + compopt -o nospace + fi + return 0 + ;; + esac +} && +complete -F _pivxd pivxd pivx-qt + +# Local variables: +# mode: shell-script +# sh-basic-offset: 4 +# sh-indent-comment: t +# indent-tabs-mode: nil +# End: +# ex: ts=4 sw=4 et filetype=sh diff --git a/contrib/rpm/README.md b/contrib/rpm/README.md new file mode 100644 index 0000000..e1e0745 --- /dev/null +++ b/contrib/rpm/README.md @@ -0,0 +1,185 @@ +RPM Spec File Notes +------------------- + +The RPM spec file provided here is for Bitcoin-Core 0.12.0 and builds on CentOS +7 with either the CentOS provided OpenSSL library or with LibreSSL as packaged +at [LibreLAMP.com](https://librelamp.com/). It should hopefully not be too +difficult to port the RPM spec file to most RPM based Linux distributions. + +When porting the spec file to build for a particular distribution, there are +some important notes. + +## Sources + +It is considered good form for all sources to reference a URL where the source +can be downloaded. + +Sources 0-9 should be reserved for source code tarballs. `Source0` should +reference the release tarball available from https://bitcoin.org/bin/ and +`Source1` should reference the BerkeleyDB source. + +Sources 10-99 are for source files that are maintained in the +[Bitcoin git repository](https://github.com/bitcoin/bitcoin) but are not part of +the release tarball. Most of these will reside in the `contrib` sub-directory. + +Sources 10-19 should be reserved for miscellaneous configuration files. +Currently only `Source10` is used, for the example `bitcoin.conf` file. + +Sources 20-29 should be reserved for man pages. Currently only `Source20` +through `Source23` are used. + +Sources 30-39 should be reserved for SELinux related files. Currently only +`Source30` through `Source32` are used. Until those files are in a tagged +release, the full URL specified in the RPM spec file will not work. You can get +them from the git repository where you retrieved this file. + +Sources 100+ are for files that are not source tarballs and are not maintained +in the bitcoin git repository. At present only an SVG version of the Bitcoin +icon is used. + +## Patches + +In general, patches should be avoided. When a packager feels a patch is +necessary, the packager should bring the problem to the attention of the bitcoin +developers so that an official fix to the issue can make it into the next +release. + +### Patch0 bitcoin-0.12.0-libressl.patch + +This patch is only needed if building against LibreSSL. LibreSSL is not the +standard TLS library on most Linux distributions. The patch will likely not be +needed when 0.12.1 is released, a proper fix is already in the Bitcoin git +master branch. + +## BuildRequires + +The packages specified in the `BuildRequires` are specified according to the +package naming convention currently used in CentOS 7 and EPEL for CentOS 7. You +may need to change some of the package names for other distributions. This is +most likely to be the case with the Qt packages. + +## BerkeleyDB + +The `build-unix.md` file recommends building against BerkeleyDB 4.8.30. Even if +that is the version your Linux distribution ships with, it probably is a good +idea to build Bitcoin Core against a static version of that library compiled +according to the instructions in the `build-unix.md` file so that any changes +the distribution may make in the future will not result in a problem for users. + +The problem that can exist, clients built against different versions of +BerkeleyDB may not be able read each other's `wallet.dat` file which can make it +difficult for a user to recover from backup in the event of a system failure. + +## Graphical User Interface and Qt Version + +The RPM spec file will by default build the GUI client linked against the Qt5 +libraries. If you wish instead to link against the Qt4 libraries you need to +pass the switch `-D '_use_qt4 1'` at build time to the `rpmbuild` or `mock` +command used to build the packages. + +If you would prefer not to build the GUI at all, you can pass the switch +`-D '_no_gui 1'` to the `rpmbuild` or `mock` build command. + +## Desktop and KDE Files + +The desktop and KDE meta files are created in the spec file itself with the +`cat` command. This is done to allow easy distribution specific changes without +needing to use any patches. A specific timestamp is given to the files so that +it does not they do not appear to have been updated every time the package is +built. If you do make changes to them, you probably should update timestamp +assigned to them in the `touch` command that specifies the timestamp. + +## SVG, PNG, and XPM Icons + +The `bitcoin.svg` file is from the source listed as `Source100`. It is used as +the source for the PNG and XPM files. The generated PNG and XPM files are given +the same timestamp as the source SVG file as a means of indicating they are +derived from it. + +## Systemd + +This spec file assumes the target distribution uses systemd. That really only +matters for the `bitcoin-server` package. At this point, most RPM based +distributions that still receive vendor updates do in fact use systemd. + +The files to control the service are created in the RPM spec file itself using +the `cat` command. This is done to make it easy to modify for other +distributions that may implement things differently without needing to patch +source. A specific timestamp is given to the files so that they do not appear +to have been updated every time the package is built. If you do make changes to +them, you probably should update the timestamp assigned to them in the `touch` +command that specifies the timestamp. + +## SELinux + +The `bitcoin-server` package should have SELinux support. How to properly do +that *may* vary by distribution and version of distribution. + +The SELinux stuff in this RPM spec file *should* be correct for CentOS, RHEL, +and Fedora but it would be a good idea to review it before building the package +on other distributions. + +## Tests + +The `%check` section takes a very long time to run. If your build system has a +time limit for package build, you may need to make an exception for this +package. On CentOS 7 the `%check` section completes successfully with both +OpenSSL and LibreSSL, a failure really does mean something is wrong. + +## LibreSSL Build Notes + +To build against LibreSSL you will need to pass the switch +`-D '_use_libressl 1'` to the `rpmbuild` or `mock` command or the spec file will +want the OpenSSL development files. + +### LibreSSL and Boost + +LibreSSL (and some newer builds of OpenSSL) do not have support for SSLv3. This +can cause issues with the Boost package if the Boost package has not been +patched accordingly. On those distributions, you will either need to build +Bitcoin-Core against OpenSSL or use a patched version of Boost in the build +system. + +As SSLv3 is no longer safe, distributions that have not patched Boost to work +with TLS libraries that do not support SSLv3 should have bug reports filed +against the Boost package. This bug report has already been filed for RHEL 7 but +it may need to be filed for other distributions. + +A patch for Boost: https://github.com/boostorg/asio/pull/23/files + +## ZeroMQ + +At this time, this RPM spec file does not support the ZeroMQ build options. A +suitable version of ZeroMQ is not available for the platform this spec file was +developed on (CentOS 7). + +## Legacy Credit + +This RPM spec file is largely based upon the work of Michael Hampton at +[Ringing Liberty](https://www.ringingliberty.com/bitcoin/). He has been +packaging Bitcoin for Fedora at least since 2012. + +Most of the differences between his packaging and this package are stylistic in +nature. The major differences: + +1. He builds from a github tagged release rather than a release tarball. This +should not result in different source code. + +2. He does not build BerkeleyDB but instead uses the BerkeleyDB provided by the +Linux distribution. For the distributions he packages for, they currently all +use the same version of BerkeleyDB so that difference is *probably* just +academic. + +3. As of his 10.11.2 package he did not allow for building against LibreSSL, +specifying a build without the Qt GUI, or specifying which version of the Qt +libraries to use. + +4. I renamed the `bitcoin` package that contains the Qt GUI to `bitcoin-core` as +that appears to be how the general population refers to it, in contrast to +`bitcoin-xt` or `bitcoin-classic`. I wanted to make sure the general population +knows what they are getting when installing the GUI package. + +As far as minor differences, I generally prefer to assign the file permissions +in the `%files` portion of an RPM spec file rather than specifying the +permissions of a file during `%install` and other minor things like that +are largely just cosmetic. diff --git a/contrib/rpm/pivx.fc b/contrib/rpm/pivx.fc new file mode 100644 index 0000000..0e34507 --- /dev/null +++ b/contrib/rpm/pivx.fc @@ -0,0 +1,8 @@ +/usr/bin/pivx-cli -- gen_context(system_u:object_r:pivx_exec_t,s0) +/usr/sbin/pivxd -- gen_context(system_u:object_r:pivx_exec_t,s0) +/usr/lib(64)?/pivx/pivxd -- gen_context(system_u:object_r:pivx_exec_t,s0) + +/etc/pivx(/.*)? gen_context(system_u:object_r:pivx_conf_t,s0) +/var/lib/pivx(/.*)? gen_context(system_u:object_r:pivx_var_lib_t,s0) + +(/var)?/run/pivxd(/.*)? gen_context(system_u:object_r:pivx_var_run_t,s0) diff --git a/contrib/rpm/pivx.if b/contrib/rpm/pivx.if new file mode 100644 index 0000000..70a065b --- /dev/null +++ b/contrib/rpm/pivx.if @@ -0,0 +1,157 @@ + +## policy for pivx + + +######################################## +## +## Transition to pivx. +## +## +## +## Domain allowed to transition. +## +## +# +interface(`pivx_domtrans',` + gen_require(` + type pivx_t, pivx_exec_t; + ') + + corecmd_search_bin($1) + domtrans_pattern($1, pivx_exec_t, pivx_t) +') + + +######################################## +## +## Execute pivx server in the pivx domain. +## +## +## +## Domain allowed access. +## +## +# +interface(`pivx_initrc_domtrans',` + gen_require(` + type pivx_initrc_exec_t; + ') + + init_labeled_script_domtrans($1, pivx_initrc_exec_t) +') + + +######################################## +## +## Search pivx lib directories. +## +## +## +## Domain allowed access. +## +## +# +interface(`pivx_search_lib',` + gen_require(` + type pivx_var_lib_t; + ') + + allow $1 pivx_var_lib_t:dir search_dir_perms; + files_search_var_lib($1) +') + +######################################## +## +## Read pivx lib files. +## +## +## +## Domain allowed access. +## +## +# +interface(`pivx_read_lib_files',` + gen_require(` + type pivx_var_lib_t; + ') + + files_search_var_lib($1) + read_files_pattern($1, pivx_var_lib_t, pivx_var_lib_t) +') + +######################################## +## +## Manage pivx lib files. +## +## +## +## Domain allowed access. +## +## +# +interface(`pivx_manage_lib_files',` + gen_require(` + type pivx_var_lib_t; + ') + + files_search_var_lib($1) + manage_files_pattern($1, pivx_var_lib_t, pivx_var_lib_t) +') + +######################################## +## +## Manage pivx lib directories. +## +## +## +## Domain allowed access. +## +## +# +interface(`pivx_manage_lib_dirs',` + gen_require(` + type pivx_var_lib_t; + ') + + files_search_var_lib($1) + manage_dirs_pattern($1, pivx_var_lib_t, pivx_var_lib_t) +') + + +######################################## +## +## All of the rules required to administrate +## a pivx environment +## +## +## +## Domain allowed access. +## +## +## +## +## Role allowed access. +## +## +## +# +interface(`pivx_admin',` + gen_require(` + type pivx_t; + type pivx_initrc_exec_t; + type pivx_var_lib_t; + ') + + allow $1 pivx_t:process { ptrace signal_perms }; + ps_process_pattern($1, pivx_t) + + pivx_initrc_domtrans($1) + domain_system_change_exemption($1) + role_transition $2 pivx_initrc_exec_t system_r; + allow $2 system_r; + + files_search_var_lib($1) + admin_pattern($1, pivx_var_lib_t) + +') + diff --git a/contrib/rpm/pivx.spec b/contrib/rpm/pivx.spec new file mode 100644 index 0000000..e49e20c --- /dev/null +++ b/contrib/rpm/pivx.spec @@ -0,0 +1,442 @@ +%define bdbv 4.8.30 +%global selinux_variants mls strict targeted + +%if 0%{?_no_gui:1} +%define _buildqt 0 +%define buildargs --with-gui=no +%else +%define _buildqt 1 +%if 0%{?_use_qt4} +%define buildargs --with-qrencode --with-gui=qt4 +%else +%define buildargs --with-qrencode --with-gui=qt5 +%endif +%endif + +Name: pivx +Version: 0.12.0 +Release: 2%{?dist} +Summary: Peer to Peer Cryptographic Currency + +Group: Applications/System +License: MIT +URL: https://pivx.org/ +Source0: https://pivx.org/bin/pivx-core-%{version}/pivx-%{version}.tar.gz +Source1: http://download.oracle.com/berkeley-db/db-%{bdbv}.NC.tar.gz + +Source10: https://raw.githubusercontent.com/pivx-project/pivx/v%{version}/contrib/debian/examples/pivx.conf + +#man pages +Source20: https://raw.githubusercontent.com/pivx-project/pivx/v%{version}/doc/man/pivxd.1 +Source21: https://raw.githubusercontent.com/pivx-project/pivx/v%{version}/doc/man/pivx-cli.1 +Source22: https://raw.githubusercontent.com/pivx-project/pivx/v%{version}/doc/man/pivx-qt.1 + +#selinux +Source30: https://raw.githubusercontent.com/pivx-project/pivx/v%{version}/contrib/rpm/pivx.te +# Source31 - what about pivx-tx and bench_pivx ??? +Source31: https://raw.githubusercontent.com/pivx-project/pivx/v%{version}/contrib/rpm/pivx.fc +Source32: https://raw.githubusercontent.com/pivx-project/pivx/v%{version}/contrib/rpm/pivx.if + +Source100: https://upload.wikimedia.org/wikipedia/commons/4/46/Bitcoin.svg + +%if 0%{?_use_libressl:1} +BuildRequires: libressl-devel +%else +BuildRequires: openssl-devel +%endif +BuildRequires: boost-devel +BuildRequires: miniupnpc-devel +BuildRequires: autoconf automake libtool +BuildRequires: libevent-devel + + +Patch0: pivx-0.12.0-libressl.patch + + +%description +Bitcoin is a digital cryptographic currency that uses peer-to-peer technology to +operate with no central authority or banks; managing transactions and the +issuing of pivxs is carried out collectively by the network. + +%if %{_buildqt} +%package core +Summary: Peer to Peer Cryptographic Currency +Group: Applications/System +Obsoletes: %{name} < %{version}-%{release} +Provides: %{name} = %{version}-%{release} +%if 0%{?_use_qt4} +BuildRequires: qt-devel +%else +BuildRequires: qt5-qtbase-devel +# for /usr/bin/lrelease-qt5 +BuildRequires: qt5-linguist +%endif +BuildRequires: protobuf-devel +BuildRequires: qrencode-devel +BuildRequires: %{_bindir}/desktop-file-validate +# for icon generation from SVG +BuildRequires: %{_bindir}/inkscape +BuildRequires: %{_bindir}/convert + +%description core +Bitcoin is a digital cryptographic currency that uses peer-to-peer technology to +operate with no central authority or banks; managing transactions and the +issuing of pivxs is carried out collectively by the network. + +This package contains the Qt based graphical client and node. If you are looking +to run a Bitcoin wallet, this is probably the package you want. +%endif + + +%package libs +Summary: Bitcoin shared libraries +Group: System Environment/Libraries + +%description libs +This package provides the pivxconsensus shared libraries. These libraries +may be used by third party software to provide consensus verification +functionality. + +Unless you know need this package, you probably do not. + +%package devel +Summary: Development files for pivx +Group: Development/Libraries +Requires: %{name}-libs = %{version}-%{release} + +%description devel +This package contains the header files and static library for the +pivxconsensus shared library. If you are developing or compiling software +that wants to link against that library, then you need this package installed. + +Most people do not need this package installed. + +%package server +Summary: The pivx daemon +Group: System Environment/Daemons +Requires: pivx-utils = %{version}-%{release} +Requires: selinux-policy policycoreutils-python +Requires(pre): shadow-utils +Requires(post): %{_sbindir}/semodule %{_sbindir}/restorecon %{_sbindir}/fixfiles %{_sbindir}/sestatus +Requires(postun): %{_sbindir}/semodule %{_sbindir}/restorecon %{_sbindir}/fixfiles %{_sbindir}/sestatus +BuildRequires: systemd +BuildRequires: checkpolicy +BuildRequires: %{_datadir}/selinux/devel/Makefile + +%description server +This package provides a stand-alone pivx-core daemon. For most users, this +package is only needed if they need a full-node without the graphical client. + +Some third party wallet software will want this package to provide the actual +pivx-core node they use to connect to the network. + +If you use the graphical pivx-core client then you almost certainly do not +need this package. + +%package utils +Summary: Bitcoin utilities +Group: Applications/System + +%description utils +This package provides several command line utilities for interacting with a +pivx-core daemon. + +The pivx-cli utility allows you to communicate and control a pivx daemon +over RPC, the pivx-tx utility allows you to create a custom transaction, and +the bench_pivx utility can be used to perform some benchmarks. + +This package contains utilities needed by the pivx-server package. + + +%prep +%setup -q +%patch0 -p1 -b .libressl +cp -p %{SOURCE10} ./pivx.conf.example +tar -zxf %{SOURCE1} +cp -p db-%{bdbv}.NC/LICENSE ./db-%{bdbv}.NC-LICENSE +mkdir db4 SELinux +cp -p %{SOURCE30} %{SOURCE31} %{SOURCE32} SELinux/ + + +%build +CWD=`pwd` +cd db-%{bdbv}.NC/build_unix/ +../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${CWD}/db4 +make install +cd ../.. + +./autogen.sh +%configure LDFLAGS="-L${CWD}/db4/lib/" CPPFLAGS="-I${CWD}/db4/include/" --with-miniupnpc --enable-glibc-back-compat %{buildargs} +make %{?_smp_mflags} + +pushd SELinux +for selinuxvariant in %{selinux_variants}; do + make NAME=${selinuxvariant} -f %{_datadir}/selinux/devel/Makefile + mv pivx.pp pivx.pp.${selinuxvariant} + make NAME=${selinuxvariant} -f %{_datadir}/selinux/devel/Makefile clean +done +popd + + +%install +make install DESTDIR=%{buildroot} + +mkdir -p -m755 %{buildroot}%{_sbindir} +mv %{buildroot}%{_bindir}/pivxd %{buildroot}%{_sbindir}/pivxd + +# systemd stuff +mkdir -p %{buildroot}%{_tmpfilesdir} +cat < %{buildroot}%{_tmpfilesdir}/pivx.conf +d /run/pivxd 0750 pivx pivx - +EOF +touch -a -m -t 201504280000 %{buildroot}%{_tmpfilesdir}/pivx.conf + +mkdir -p %{buildroot}%{_sysconfdir}/sysconfig +cat < %{buildroot}%{_sysconfdir}/sysconfig/pivx +# Provide options to the pivx daemon here, for example +# OPTIONS="-testnet -disable-wallet" + +OPTIONS="" + +# System service defaults. +# Don't change these unless you know what you're doing. +CONFIG_FILE="%{_sysconfdir}/pivx/pivx.conf" +DATA_DIR="%{_localstatedir}/lib/pivx" +PID_FILE="/run/pivxd/pivxd.pid" +EOF +touch -a -m -t 201504280000 %{buildroot}%{_sysconfdir}/sysconfig/pivx + +mkdir -p %{buildroot}%{_unitdir} +cat < %{buildroot}%{_unitdir}/pivx.service +[Unit] +Description=Bitcoin daemon +After=syslog.target network.target + +[Service] +Type=forking +ExecStart=%{_sbindir}/pivxd -daemon -conf=\${CONFIG_FILE} -datadir=\${DATA_DIR} -pid=\${PID_FILE} \$OPTIONS +EnvironmentFile=%{_sysconfdir}/sysconfig/pivx +User=pivx +Group=pivx + +Restart=on-failure +PrivateTmp=true +TimeoutStopSec=120 +TimeoutStartSec=60 +StartLimitInterval=240 +StartLimitBurst=5 + +[Install] +WantedBy=multi-user.target +EOF +touch -a -m -t 201504280000 %{buildroot}%{_unitdir}/pivx.service +#end systemd stuff + +mkdir %{buildroot}%{_sysconfdir}/pivx +mkdir -p %{buildroot}%{_localstatedir}/lib/pivx + +#SELinux +for selinuxvariant in %{selinux_variants}; do + install -d %{buildroot}%{_datadir}/selinux/${selinuxvariant} + install -p -m 644 SELinux/pivx.pp.${selinuxvariant} %{buildroot}%{_datadir}/selinux/${selinuxvariant}/pivx.pp +done + +%if %{_buildqt} +# qt icons +install -D -p share/pixmaps/pivx.ico %{buildroot}%{_datadir}/pixmaps/pivx.ico +install -p share/pixmaps/nsis-header.bmp %{buildroot}%{_datadir}/pixmaps/ +install -p share/pixmaps/nsis-wizard.bmp %{buildroot}%{_datadir}/pixmaps/ +install -p %{SOURCE100} %{buildroot}%{_datadir}/pixmaps/pivx.svg +%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/pivx16.png -w16 -h16 +%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/pivx32.png -w32 -h32 +%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/pivx64.png -w64 -h64 +%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/pivx128.png -w128 -h128 +%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/pivx256.png -w256 -h256 +%{_bindir}/convert -resize 16x16 %{buildroot}%{_datadir}/pixmaps/pivx256.png %{buildroot}%{_datadir}/pixmaps/pivx16.xpm +%{_bindir}/convert -resize 32x32 %{buildroot}%{_datadir}/pixmaps/pivx256.png %{buildroot}%{_datadir}/pixmaps/pivx32.xpm +%{_bindir}/convert -resize 64x64 %{buildroot}%{_datadir}/pixmaps/pivx256.png %{buildroot}%{_datadir}/pixmaps/pivx64.xpm +%{_bindir}/convert -resize 128x128 %{buildroot}%{_datadir}/pixmaps/pivx256.png %{buildroot}%{_datadir}/pixmaps/pivx128.xpm +%{_bindir}/convert %{buildroot}%{_datadir}/pixmaps/pivx256.png %{buildroot}%{_datadir}/pixmaps/pivx256.xpm +touch %{buildroot}%{_datadir}/pixmaps/*.png -r %{SOURCE100} +touch %{buildroot}%{_datadir}/pixmaps/*.xpm -r %{SOURCE100} + +# Desktop File - change the touch timestamp if modifying +mkdir -p %{buildroot}%{_datadir}/applications +cat < %{buildroot}%{_datadir}/applications/pivx-core.desktop +[Desktop Entry] +Encoding=UTF-8 +Name=Bitcoin +Comment=Bitcoin P2P Cryptocurrency +Comment[fr]=Bitcoin, monnaie virtuelle cryptographique pair à pair +Comment[tr]=Bitcoin, eÅŸten eÅŸe kriptografik sanal para birimi +Exec=pivx-qt %u +Terminal=false +Type=Application +Icon=pivx128 +MimeType=x-scheme-handler/pivx; +Categories=Office;Finance; +EOF +# change touch date when modifying desktop +touch -a -m -t 201511100546 %{buildroot}%{_datadir}/applications/pivx-core.desktop +%{_bindir}/desktop-file-validate %{buildroot}%{_datadir}/applications/pivx-core.desktop + +# KDE protocol - change the touch timestamp if modifying +mkdir -p %{buildroot}%{_datadir}/kde4/services +cat < %{buildroot}%{_datadir}/kde4/services/pivx-core.protocol +[Protocol] +exec=pivx-qt '%u' +protocol=pivx +input=none +output=none +helper=true +listing= +reading=false +writing=false +makedir=false +deleting=false +EOF +# change touch date when modifying protocol +touch -a -m -t 201511100546 %{buildroot}%{_datadir}/kde4/services/pivx-core.protocol +%endif + +# man pages +install -D -p %{SOURCE20} %{buildroot}%{_mandir}/man1/pivxd.1 +install -p %{SOURCE21} %{buildroot}%{_mandir}/man1/pivx-cli.1 +%if %{_buildqt} +install -p %{SOURCE22} %{buildroot}%{_mandir}/man1/pivx-qt.1 +%endif + +# nuke these, we do extensive testing of binaries in %%check before packaging +rm -f %{buildroot}%{_bindir}/test_* + +%check +make check +srcdir=src test/pivx-util-test.py +test/functional/test_runner.py --extended + +%post libs -p /sbin/ldconfig + +%postun libs -p /sbin/ldconfig + +%pre server +getent group pivx >/dev/null || groupadd -r pivx +getent passwd pivx >/dev/null || + useradd -r -g pivx -d /var/lib/pivx -s /sbin/nologin \ + -c "Bitcoin wallet server" pivx +exit 0 + +%post server +%systemd_post pivx.service +# SELinux +if [ `%{_sbindir}/sestatus |grep -c "disabled"` -eq 0 ]; then +for selinuxvariant in %{selinux_variants}; do + %{_sbindir}/semodule -s ${selinuxvariant} -i %{_datadir}/selinux/${selinuxvariant}/pivx.pp &> /dev/null || : +done +%{_sbindir}/semanage port -a -t pivx_port_t -p tcp 8332 +%{_sbindir}/semanage port -a -t pivx_port_t -p tcp 8333 +%{_sbindir}/semanage port -a -t pivx_port_t -p tcp 18332 +%{_sbindir}/semanage port -a -t pivx_port_t -p tcp 18333 +%{_sbindir}/semanage port -a -t pivx_port_t -p tcp 18443 +%{_sbindir}/semanage port -a -t pivx_port_t -p tcp 18444 +%{_sbindir}/fixfiles -R pivx-server restore &> /dev/null || : +%{_sbindir}/restorecon -R %{_localstatedir}/lib/pivx || : +fi + +%posttrans server +%{_bindir}/systemd-tmpfiles --create + +%preun server +%systemd_preun pivx.service + +%postun server +%systemd_postun pivx.service +# SELinux +if [ $1 -eq 0 ]; then + if [ `%{_sbindir}/sestatus |grep -c "disabled"` -eq 0 ]; then + %{_sbindir}/semanage port -d -p tcp 8332 + %{_sbindir}/semanage port -d -p tcp 8333 + %{_sbindir}/semanage port -d -p tcp 18332 + %{_sbindir}/semanage port -d -p tcp 18333 + %{_sbindir}/semanage port -d -p tcp 18443 + %{_sbindir}/semanage port -d -p tcp 18444 + for selinuxvariant in %{selinux_variants}; do + %{_sbindir}/semodule -s ${selinuxvariant} -r pivx &> /dev/null || : + done + %{_sbindir}/fixfiles -R pivx-server restore &> /dev/null || : + [ -d %{_localstatedir}/lib/pivx ] && \ + %{_sbindir}/restorecon -R %{_localstatedir}/lib/pivx &> /dev/null || : + fi +fi + +%clean +rm -rf %{buildroot} + +%if %{_buildqt} +%files core +%defattr(-,root,root,-) +%license COPYING db-%{bdbv}.NC-LICENSE +%doc COPYING pivx.conf.example doc/README.md doc/bips.md doc/files.md doc/multiwallet-qt.md doc/reduce-traffic.md doc/release-notes.md doc/tor.md +%attr(0755,root,root) %{_bindir}/pivx-qt +%attr(0644,root,root) %{_datadir}/applications/pivx-core.desktop +%attr(0644,root,root) %{_datadir}/kde4/services/pivx-core.protocol +%attr(0644,root,root) %{_datadir}/pixmaps/*.ico +%attr(0644,root,root) %{_datadir}/pixmaps/*.bmp +%attr(0644,root,root) %{_datadir}/pixmaps/*.svg +%attr(0644,root,root) %{_datadir}/pixmaps/*.png +%attr(0644,root,root) %{_datadir}/pixmaps/*.xpm +%attr(0644,root,root) %{_mandir}/man1/pivx-qt.1* +%endif + +%files libs +%defattr(-,root,root,-) +%license COPYING +%doc COPYING doc/README.md doc/shared-libraries.md +%{_libdir}/lib*.so.* + +%files devel +%defattr(-,root,root,-) +%license COPYING +%doc COPYING doc/README.md doc/developer-notes.md doc/shared-libraries.md +%attr(0644,root,root) %{_includedir}/*.h +%{_libdir}/*.so +%{_libdir}/*.a +%{_libdir}/*.la +%attr(0644,root,root) %{_libdir}/pkgconfig/*.pc + +%files server +%defattr(-,root,root,-) +%license COPYING db-%{bdbv}.NC-LICENSE +%doc COPYING pivx.conf.example doc/README.md doc/REST-interface.md doc/bips.md doc/dnsseed-policy.md doc/files.md doc/reduce-traffic.md doc/release-notes.md doc/tor.md +%attr(0755,root,root) %{_sbindir}/pivxd +%attr(0644,root,root) %{_tmpfilesdir}/pivx.conf +%attr(0644,root,root) %{_unitdir}/pivx.service +%dir %attr(0750,pivx,pivx) %{_sysconfdir}/pivx +%dir %attr(0750,pivx,pivx) %{_localstatedir}/lib/pivx +%config(noreplace) %attr(0600,root,root) %{_sysconfdir}/sysconfig/pivx +%attr(0644,root,root) %{_datadir}/selinux/*/*.pp +%attr(0644,root,root) %{_mandir}/man1/pivxd.1* + +%files utils +%defattr(-,root,root,-) +%license COPYING +%doc COPYING pivx.conf.example doc/README.md +%attr(0755,root,root) %{_bindir}/pivx-cli +%attr(0755,root,root) %{_bindir}/pivx-tx +%attr(0755,root,root) %{_bindir}/bench_pivx +%attr(0644,root,root) %{_mandir}/man1/pivx-cli.1* + + + +%changelog +* Fri Feb 26 2016 Alice Wonder - 0.12.0-2 +- Rename Qt package from pivx to pivx-core +- Make building of the Qt package optional +- When building the Qt package, default to Qt5 but allow building +- against Qt4 +- Only run SELinux stuff in post scripts if it is not set to disabled + +* Wed Feb 24 2016 Alice Wonder - 0.12.0-1 +- Initial spec file for 0.12.0 release + +# This spec file is written from scratch but a lot of the packaging decisions are directly +# based upon the 0.11.2 package spec file from https://www.ringingliberty.com/pivx/ diff --git a/contrib/rpm/pivx.te b/contrib/rpm/pivx.te new file mode 100644 index 0000000..13ad546 --- /dev/null +++ b/contrib/rpm/pivx.te @@ -0,0 +1,81 @@ +policy_module(pivx, 1.100.1) + +######################################## +# +# Declarations +# + +type pivx_t; +type pivx_exec_t; +init_daemon_domain(pivx_t, pivx_exec_t) + +permissive pivx_t; + +type pivx_initrc_exec_t; +init_script_file(pivx_initrc_exec_t) + +type pivx_conf_t; +files_type(pivx_conf_t) + +type pivx_var_lib_t; +files_type(pivx_var_lib_t) + +type pivx_var_run_t; +files_type(pivx_var_run_t) + +type pivx_port_t; +corenet_port(pivx_port_t) + +######################################## +# +# pivx local policy +# +allow pivx_t self:process { fork }; + +allow pivx_t self:fifo_file rw_fifo_file_perms; +allow pivx_t self:unix_stream_socket create_stream_socket_perms; + +manage_dirs_pattern(pivx_t, pivx_conf_t, pivx_conf_t) +manage_files_pattern(pivx_t, pivx_conf_t, pivx_conf_t) + +manage_dirs_pattern(pivx_t, pivx_var_lib_t, pivx_var_lib_t) +manage_files_pattern(pivx_t, pivx_var_lib_t, pivx_var_lib_t) +files_var_lib_filetrans(pivx_t, pivx_var_lib_t, { dir file }) + +manage_dirs_pattern(pivx_t, pivx_var_run_t, pivx_var_run_t) +manage_files_pattern(pivx_t, pivx_var_run_t, pivx_var_run_t) + +sysnet_dns_name_resolve(pivx_t) +corenet_all_recvfrom_unlabeled(pivx_t) + +allow pivx_t self:tcp_socket create_stream_socket_perms; +corenet_tcp_sendrecv_generic_if(pivx_t) +corenet_tcp_sendrecv_generic_node(pivx_t) +corenet_tcp_sendrecv_all_ports(pivx_t) +corenet_tcp_bind_generic_node(pivx_t) + +gen_require(` + type pivx_port_t; +') +allow pivx_t pivx_port_t:tcp_socket name_bind; + +gen_require(` + type pivx_port_t; +') +allow pivx_t pivx_port_t:tcp_socket name_connect; + +domain_use_interactive_fds(pivx_t) + +files_read_etc_files(pivx_t) + +miscfiles_read_localization(pivx_t) + +sysnet_dns_name_resolve(pivx_t) + +allow pivx_t pivx_exec_t:file execute_no_trans; +allow pivx_t self:process setsched; +corecmd_exec_ls(pivx_t) +corenet_tcp_connect_http_port(pivx_t) +dev_read_urand(pivx_t) +fs_getattr_xattr_fs(pivx_t) +kernel_read_system_state(pivx_t) diff --git a/contrib/valgrind.supp b/contrib/valgrind.supp new file mode 100644 index 0000000..adf8761 --- /dev/null +++ b/contrib/valgrind.supp @@ -0,0 +1,43 @@ +# Valgrind suppressions file for PIVX. +# +# Includes known Valgrind warnings in our dependencies that cannot be fixed +# in-tree. +# +# Example use: +# $ valgrind --suppressions=contrib/valgrind.supp src/test/test_pivx +# $ valgrind --suppressions=contrib/valgrind.supp --leak-check=full \ +# --show-leak-kinds=all src/test/test_pivx --log_level=test_suite +{ + Suppress libstdc++ warning - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65434 + Memcheck:Leak + match-leak-kinds: reachable + fun:malloc + obj:*/libstdc++.* + fun:call_init.part.0 + fun:call_init + fun:_dl_init + obj:*/ld-*.so +} +{ + Suppress libdb warning - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662917 + Memcheck:Cond + obj:*/libdb_cxx-*.so + fun:__log_put + obj:*/libdb_cxx-*.so + fun:__log_put_record +} +{ + Suppress leveldb warning (leveldb::InitModule()) - https://github.com/google/leveldb/issues/113 + Memcheck:Leak + match-leak-kinds: reachable + fun:_Znwm + fun:_ZN7leveldbL10InitModuleEv +} +{ + Suppress leveldb warning (leveldb::Env::Default()) - https://github.com/google/leveldb/issues/113 + Memcheck:Leak + match-leak-kinds: reachable + fun:_Znwm + ... + fun:_ZN7leveldbL14InitDefaultEnvEv +} diff --git a/contrib/windeploy/detached-sig-create.sh b/contrib/windeploy/detached-sig-create.sh new file mode 100644 index 0000000..15f8108 --- /dev/null +++ b/contrib/windeploy/detached-sig-create.sh @@ -0,0 +1,35 @@ +#!/bin/sh +# Copyright (c) 2014-2015 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +export LC_ALL=C +if [ -z "$OSSLSIGNCODE" ]; then + OSSLSIGNCODE=osslsigncode +fi + +if [ ! -n "$1" ]; then + echo "usage: $0 " + echo "example: $0 -key codesign.key" + exit 1 +fi + +OUT=signature-win.tar.gz +SRCDIR=unsigned +WORKDIR=./.tmp +OUTDIR="${WORKDIR}/out" +OUTSUBDIR="${OUTDIR}/win" +TIMESERVER=http://timestamp.comodoca.com +CERTFILE="win-codesign.cert" + +mkdir -p "${OUTSUBDIR}" +basename -a `ls -1 "${SRCDIR}"/*-unsigned.exe` | while read UNSIGNED; do + echo Signing "${UNSIGNED}" + "${OSSLSIGNCODE}" sign -certs "${CERTFILE}" -t "${TIMESERVER}" -in "${SRCDIR}/${UNSIGNED}" -out "${WORKDIR}/${UNSIGNED}" "$@" + "${OSSLSIGNCODE}" extract-signature -pem -in "${WORKDIR}/${UNSIGNED}" -out "${OUTSUBDIR}/${UNSIGNED}.pem" && rm "${WORKDIR}/${UNSIGNED}" +done + +rm -f "${OUT}" +tar -C "${OUTDIR}" -czf "${OUT}" . +rm -rf "${WORKDIR}" +echo "Created ${OUT}" diff --git a/depends/packages/gmp.mk b/depends/packages/gmp.mk new file mode 100644 index 0000000..afc3f39 --- /dev/null +++ b/depends/packages/gmp.mk @@ -0,0 +1,24 @@ +package=gmp +$(package)_version=6.1.2 +$(package)_download_path=https://gmplib.org/download/gmp +$(package)_file_name=$(package)-$($(package)_version).tar.bz2 +$(package)_sha256_hash=5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2 + +define $(package)_set_vars +$(package)_config_opts=--disable-shared +$(package)_config_opts_mingw32=--enable-mingw +$(package)_config_opts_linux=--with-pic +endef + +define $(package)_config_cmds + $($(package)_autoconf) +endef + +define $(package)_build_cmds + $(MAKE) +endef + +define $(package)_stage_cmds + $(MAKE) DESTDIR=$($(package)_staging_dir) install +endef + diff --git a/depends/patches/qt/fix_configure_mac.patch b/depends/patches/qt/fix_configure_mac.patch new file mode 100644 index 0000000..0d7dd64 --- /dev/null +++ b/depends/patches/qt/fix_configure_mac.patch @@ -0,0 +1,50 @@ +--- old/qtbase/mkspecs/features/mac/sdk.prf 2018-02-08 10:24:48.000000000 -0800 ++++ new/qtbase/mkspecs/features/mac/sdk.prf 2018-03-23 10:38:56.000000000 -0700 +@@ -8,21 +8,21 @@ + defineReplace(xcodeSDKInfo) { + info = $$1 + equals(info, "Path"): \ +- info = --show-sdk-path ++ infoarg = --show-sdk-path + equals(info, "PlatformPath"): \ +- info = --show-sdk-platform-path ++ infoarg = --show-sdk-platform-path + equals(info, "SDKVersion"): \ +- info = --show-sdk-version ++ infoarg = --show-sdk-version + sdk = $$2 + isEmpty(sdk): \ + sdk = $$QMAKE_MAC_SDK + + isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}) { +- QMAKE_MAC_SDK.$${sdk}.$${info} = $$system("/usr/bin/xcrun --sdk $$sdk $$info 2>/dev/null") ++ QMAKE_MAC_SDK.$${sdk}.$${info} = $$system("/usr/bin/xcrun --sdk $$sdk $$infoarg 2>/dev/null") + # --show-sdk-platform-path won't work for Command Line Tools; this is fine + # only used by the XCTest backend to testlib +- isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}):if(!isEmpty(QMAKE_XCODEBUILD_PATH)|!equals(info, "--show-sdk-platform-path")): \ +- error("Could not resolve SDK $$info for \'$$sdk\'") ++ isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}):if(!isEmpty(QMAKE_XCODEBUILD_PATH)|!equals(infoarg, "--show-sdk-platform-path")): \ ++ error("Could not resolve SDK $$info for \'$$sdk\' using $$infoarg") + cache(QMAKE_MAC_SDK.$${sdk}.$${info}, set stash, QMAKE_MAC_SDK.$${sdk}.$${info}) + } + +--- old/qtbase/configure 2018-02-08 10:24:48.000000000 -0800 ++++ new/qtbase/configure 2018-03-23 05:42:29.000000000 -0700 +@@ -232,8 +232,13 @@ + + sdk=$(getSingleQMakeVariable "QMAKE_MAC_SDK" "$1") + if [ -z "$sdk" ]; then echo "QMAKE_MAC_SDK must be set when building on Mac" >&2; exit 1; fi +- sysroot=$(/usr/bin/xcrun --sdk $sdk --show-sdk-path 2>/dev/null) +- if [ -z "$sysroot" ]; then echo "Failed to resolve SDK path for '$sdk'" >&2; exit 1; fi ++ sysroot=$(getSingleQMakeVariable "QMAKE_MAC_SDK_PATH" "$1") ++ ++ echo "sysroot pre-configured as $sysroot"; ++ if [ -z "$sysroot" ]; then ++ sysroot=$(/usr/bin/xcrun --sdk $sdk --show-sdk-path 2>/dev/null) ++ if [ -z "$sysroot" ]; then echo "Failed to resolve SDK path for '$sdk'" >&2; exit 1; fi ++ fi + + case "$sdk" in + macosx*) + + diff --git a/depends/patches/qt/fix_no_printer.patch b/depends/patches/qt/fix_no_printer.patch new file mode 100644 index 0000000..f868ca2 --- /dev/null +++ b/depends/patches/qt/fix_no_printer.patch @@ -0,0 +1,19 @@ +--- x/qtbase/src/plugins/platforms/cocoa/qprintengine_mac_p.h ++++ y/qtbase/src/plugins/platforms/cocoa/qprintengine_mac_p.h +@@ -52,6 +52,7 @@ + // + + #include ++#include + + #ifndef QT_NO_PRINTER + +--- x/qtbase/src/plugins/plugins.pro ++++ y/qtbase/src/plugins/plugins.pro +@@ -8,6 +8,3 @@ qtHaveModule(gui) { + qtConfig(imageformatplugin): SUBDIRS *= imageformats + !android:qtConfig(library): SUBDIRS *= generic + } +- +-!winrt:qtHaveModule(printsupport): \ +- SUBDIRS += printsupport diff --git a/depends/patches/qt/fix_rcc_determinism.patch b/depends/patches/qt/fix_rcc_determinism.patch new file mode 100644 index 0000000..c1b07fe --- /dev/null +++ b/depends/patches/qt/fix_rcc_determinism.patch @@ -0,0 +1,15 @@ +--- old/qtbase/src/tools/rcc/rcc.cpp ++++ new/qtbase/src/tools/rcc/rcc.cpp +@@ -207,7 +207,11 @@ void RCCFileInfo::writeDataInfo(RCCResourceLibrary &lib) + if (lib.formatVersion() >= 2) { + // last modified time stamp + const QDateTime lastModified = m_fileInfo.lastModified(); +- lib.writeNumber8(quint64(lastModified.isValid() ? lastModified.toMSecsSinceEpoch() : 0)); ++ quint64 lastmod = quint64(lastModified.isValid() ? lastModified.toMSecsSinceEpoch() : 0); ++ static const quint64 sourceDate = 1000 * qgetenv("QT_RCC_SOURCE_DATE_OVERRIDE").toULongLong(); ++ if (sourceDate != 0) ++ lastmod = sourceDate; ++ lib.writeNumber8(lastmod); + if (text || pass1) + lib.writeChar('\n'); + } diff --git a/depends/patches/qt/fix_riscv64_arch.patch b/depends/patches/qt/fix_riscv64_arch.patch new file mode 100644 index 0000000..e7f29f0 --- /dev/null +++ b/depends/patches/qt/fix_riscv64_arch.patch @@ -0,0 +1,14 @@ +diff --git a/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h b/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h +index 20bfd36..93729fa 100644 +--- a/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h ++++ b/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h +@@ -65,7 +65,8 @@ + defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ + defined(__SH4__) || defined(__alpha__) || \ + defined(_MIPS_ARCH_MIPS32R2) || \ +- defined(__AARCH64EL__) ++ defined(__AARCH64EL__) || defined(__aarch64__) || \ ++ defined(__riscv) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 + #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) + #if defined(_WIN32) diff --git a/depends/patches/qt/fix_s390x_powerpc_mips_mipsel_architectures.patch b/depends/patches/qt/fix_s390x_powerpc_mips_mipsel_architectures.patch new file mode 100644 index 0000000..57328cf --- /dev/null +++ b/depends/patches/qt/fix_s390x_powerpc_mips_mipsel_architectures.patch @@ -0,0 +1,17 @@ +diff --git a/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h b/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h +index 93729fae..398988c8 100644 +--- a/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h ++++ b/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h +@@ -60,9 +60,9 @@ + #if defined(_M_X64) || defined(__x86_64__) || \ + defined(__ARMEL__) || defined(__avr32__) || _M_ARM_FP || \ + defined(__hppa__) || defined(__ia64__) || \ +- defined(__mips__) || \ +- defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \ +- defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ ++ defined(__mips__) || defined(__mipsel__) || defined(__i386__) || \ ++ defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc64__) || defined(__powerpc64el__) || defined(__ppc64el__) || \ ++ defined(__sparc__) || defined(__sparc) || defined(__s390__) || defined(__s390x__) || \ + defined(__SH4__) || defined(__alpha__) || \ + defined(_MIPS_ARCH_MIPS32R2) || \ + defined(__AARCH64EL__) || defined(__aarch64__) || \ diff --git a/depends/patches/qt/xkb-default.patch b/depends/patches/qt/xkb-default.patch new file mode 100644 index 0000000..165abf3 --- /dev/null +++ b/depends/patches/qt/xkb-default.patch @@ -0,0 +1,26 @@ +--- old/qtbase/src/gui/configure.pri 2018-06-06 17:28:10.000000000 -0400 ++++ new/qtbase/src/gui/configure.pri 2018-08-17 18:43:01.589384567 -0400 +@@ -43,18 +43,11 @@ + } + + defineTest(qtConfTest_xkbConfigRoot) { +- qtConfTest_getPkgConfigVariable($${1}): return(true) +- +- for (dir, $$list("/usr/share/X11/xkb", "/usr/local/share/X11/xkb")) { +- exists($$dir) { +- $${1}.value = $$dir +- export($${1}.value) +- $${1}.cache += value +- export($${1}.cache) +- return(true) +- } +- } +- return(false) ++ $${1}.value = "/usr/share/X11/xkb" ++ export($${1}.value) ++ $${1}.cache += value ++ export($${1}.cache) ++ return(true) + } + + defineTest(qtConfTest_qpaDefaultPlatform) { diff --git a/depends/patches/zeromq/0001-fix-build-with-older-mingw64.patch b/depends/patches/zeromq/0001-fix-build-with-older-mingw64.patch new file mode 100644 index 0000000..b911ac5 --- /dev/null +++ b/depends/patches/zeromq/0001-fix-build-with-older-mingw64.patch @@ -0,0 +1,30 @@ +From f6866b0f166ad168618aae64c7fbee8775d3eb23 Mon Sep 17 00:00:00 2001 +From: mruddy <6440430+mruddy@users.noreply.github.com> +Date: Sat, 30 Jun 2018 09:44:58 -0400 +Subject: [PATCH] fix build with older mingw64 + +--- + src/windows.hpp | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/src/windows.hpp b/src/windows.hpp +index 6c3839fd..2c32ec79 100644 +--- a/src/windows.hpp ++++ b/src/windows.hpp +@@ -58,6 +58,13 @@ + #include + #include + #include ++ ++#if defined __MINGW64_VERSION_MAJOR && __MINGW64_VERSION_MAJOR < 4 ++// Workaround for mingw-w64 < v4.0 which did not include ws2ipdef.h in iphlpapi.h. ++// Fixed in mingw-w64 by 9bd8fe9148924840d315b4c915dd099955ea89d1. ++#include ++#include ++#endif + #include + + #if !defined __MINGW32__ +-- +2.17.1 + diff --git a/depends/patches/zeromq/0002-disable-pthread_set_name_np.patch b/depends/patches/zeromq/0002-disable-pthread_set_name_np.patch new file mode 100644 index 0000000..022e311 --- /dev/null +++ b/depends/patches/zeromq/0002-disable-pthread_set_name_np.patch @@ -0,0 +1,35 @@ +From c9bbdd6581d07acfe8971e4bcebe278a3676cf03 Mon Sep 17 00:00:00 2001 +From: mruddy <6440430+mruddy@users.noreply.github.com> +Date: Sat, 30 Jun 2018 09:57:18 -0400 +Subject: [PATCH] disable pthread_set_name_np + +pthread_set_name_np adds a Glibc requirement on >= 2.12. +--- + src/thread.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/thread.cpp b/src/thread.cpp +index a1086b0c..9943f354 100644 +--- a/src/thread.cpp ++++ b/src/thread.cpp +@@ -307,7 +307,7 @@ void zmq::thread_t::setThreadName (const char *name_) + */ + if (!name_) + return; +- ++#if 0 + #if defined(ZMQ_HAVE_PTHREAD_SETNAME_1) + int rc = pthread_setname_np (name_); + if (rc) +@@ -323,6 +323,8 @@ void zmq::thread_t::setThreadName (const char *name_) + #elif defined(ZMQ_HAVE_PTHREAD_SET_NAME) + pthread_set_name_np (descriptor, name_); + #endif ++#endif ++ return; + } + + #endif +-- +2.17.1 + diff --git a/libbitcoinconsensus.pc.in b/libbitcoinconsensus.pc.in new file mode 100644 index 0000000..eb920c4 --- /dev/null +++ b/libbitcoinconsensus.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: @PACKAGE_NAME@ consensus library +Description: Library for the Bitcoin consensus protocol. +Version: @PACKAGE_VERSION@ +Libs: -L${libdir} -lbitcoinconsensus +Cflags: -I${includedir} +Requires.private: libcrypto diff --git a/share/pixmaps/pivx-bc.ico b/share/pixmaps/pivx-bc.ico new file mode 100644 index 0000000000000000000000000000000000000000..2a00473ad8f9d7de2d6f63db0efa46381466c22c GIT binary patch literal 62716 zcmeFa2RxVE|3Chg5k=9|B+4jzC$ir5$j*rDN>oN7)H@;-B`u?nB$Ton8Y&|prKCtp zi;Sj`asAJ^uJ?I+bGPfhKlk_lyRZ9k?$^1_^%~FD>%7jn&ULQq9TJIwG={{KN z75q>ij*-p=w1vkKw$T;H`-2BA_k+B@#D;;04{j!rdU!~rx8q5qC!F zmm6-E&`0wh+QP9=Z4o7aRZ{EtXK_ zcMmF7!YI`-03XB$c!ANMia+un z$_-&5^dmp%DLn?%PWVpPrmF*$-#_SW0&c1w1V#GkDe@D}5vZNM4eEgH-?vO~Ap2nA z!sAR(!hgyLJR{F(@u%_qdiAurTH$O8I92hD%n zHjt&tqkcqoaAS1;gYCmG;qpK4KeA6?hdzLUFu?lP3gSVOLi)}8|AJlICqgd`6U`pv z2L<7y)pJ+Q-BU47YJQ68_*VR2eeZukQ$Bel1Q8TRY$4xP#Ac6 zNu;D65{c(mN^db^QqSloJpCk+3a%g8q8@OcLIM;AP-y!UbHT}f$A1y{KN10aUIg>+ z{}H$}nDBl{KYyb+oyPDlt-yFA+~^*F_rYJ=|8*XG5jTDxNB3@UPyZMCfiTg>8wB?+ zIZv#?fG;4okPP(sf7KE67$^`gh%HWs0O9*b;1pt{;e=~%!UxjGTpN=7n`;O=q!1g# zLuZok1L1_&hkT>)LD~OBU!b{!u#d-;zy$Epe4%0|AqspL@)hz?==?zaL5zJWA6+>9 zOclmz2>VD3I3A)OzJwXX8uyJxp*&u2aCj`hHAo2?L)ZQU`XRkUpVQeUas|eh1Tf;* zp>2o-$MD5=oEOOeO2vrt(%bqI*r5&-cTh#PKow!6qwqS2AqD3{?IZ#h{WZixqeFTj ze&ho%^4kZ(PK_s_j{-6M6)Un0<4f>UDGet$$K{|rWq5zVcIrXM6S;)ieuWOj0obDI zhi$Nq+n~n+>d;qs(DNW(oKhf0stL-rjwg4Vn zKb6ws9~OTg5A^^Qbo@Z)U$8@age|BS_5IHyCnV_Pas0zE0b2kM4Fjm7V;EM58DU2h zV1sQ?ei)^Ib8wA{7rzEEP|tsw;JTqrpce=u-9r>_CvcDe->~=teke!ZKNP3~;)Z2d z9kmgZutoZ9{CNCH06)Zn+k==0+lWFe$R0g@q7C8!IDihE;<8_>13q{i=Rx*j>T;Dz?d?O({RGq-aFCBRNsThF*Jcdv=j3s^!?V$LA z>%;Kl{D7CrPtY%%1O1d?yu>+S57fbRQ2(U^j};;R7ra0r(v4$;ejxmiBHu?+q?1C! zOz0u{g{l+iLf4`EFM$U_$Tp}F_<>$L{g&0N@8eS?MR|sen@fbe*izSJA@y^9AX2y@qVCC zDLr;71_B%8g_uZG3hTrBiFTc;7vU%L|Ka!p8z?qIegJI9Hi-@^^ojl)^3eGKV*?Ld z7MF+DiGpmv^WVuIJpLpCGocgIsTlBcsy$@)s}$&<$4&vhA^e055`i8140J->NdNEP zM|g(xLA?MA)K3AnsCCHqtpnEsc>y22A5aFz58LUkBO9>ockmiH6C#(-)N4BXHw+}FUiNZEe(1G+1Dy2{Aq({3IuIR-7i@=e!2T~CP!{R{!bG8Bhv&FWnlHpTJ;ra< z30Vp)#>jsPRWA{vA)UVj9th$1Nd$hV8}HWM86~heHw}v)Cn;F zD8F&{H}-Xb{hPJ*` zNU$B+{t-&2gUSyq;PSu*IEJnh=Rf~{gc0icwluIs>w_V?xI7&WbdKf#p!2JGk-p!L zKQ-orEh3MG*T3o-#QQCbR6#o5NhA91_wyh6j|%D!lplB>LtiL(9B~{}ynl%+h3fOy z^NZ*=WDCx*@Sw(k>gul(gdOUK2eO0Op-;5D0R9koAtq1<{XqCkM?o9XK~IssUq|}m zlF$~tZCFS4Q6JH8e}nhOE&jcn2s`o#@2D^I)!&QaKkffT;QyTn5MvBX&iFx3;m1Vq zyoZON@B=1zUd%vHMlg|r^L};-6-av|*m)p*tI9YU(km2(P)I{aBsEAQNhC=~xk)5$ zKnKBZrr0+F$_sv`Nl#(u;rYLfBAhA|Qa_Fl{2~mejKz>*#Uv6V1}OZv3sU@pEJ)$; zb^34k-Kw;-H0I{!22lRof#h%sbinx=)_+6`v2k{{q7Z-;?o9G4WWmK7ZJ0eJc2%ql!xcgZ&XkmAy(Li$ANnN zOR`^TgK}T9^(FpaX@hgff4^J(mB{^bGAM`sIg5lPJa56+f%7jMgRsE1zZ(b4d1wpG z`*2L6agFAczY7Pn3Fixl0oo;e<-+*Dtrpf{JM0gL1M>Z;SRkLFU&t;#7lC^Lnt$Lq zx(4~t-1xh(fbz&^F5FMPzudQ^fzQw;UH~Q%i4VsDWAQtAfo#+KqTa7*wx~AUsO=~g zkRlma{}l|-29!g3;5og1hz*^O#DmU}EDZzD@uN9`Vvgt42)|)m;Q=uqTVKM0+Mo_7 z^D{XKa~h&Vw#KW!i68(O0w{Wun&m)?JRdqekf z>U|aECcypE_P^vm?%R-k!Z!8Z4zA(%au{oTJ%un3`S`Q;(Kw>_9mWyHA0GI8gxezQ zAm2w)h!Mu|XYJGXKOT3eht7YP10xGQ_tEwl;N`3}btG5(3%#>W<2e?tuToI~v!h#$8PF#hQH$HyPY ze<(+98~O}mJhBiNARaf|e|$|%>xbX>pU89Kc?;^MFL3XS$T>Lf-SGWE*auLC7!SXe ze_K~|j&h$qAE3tkq#8vkMb!TDfB z|IlBDG5nSIqjen`vrq>bk9a=7z5tl;I!=i>0`Va^NOAi=G5+EF0pknfiSR=mFeiw0 z7`^tPI*t$CqX9O&z?i`Tat4lxAn_84C!D+K*OPFL|JMN>0SLw$;)Vs?qtTiJ`hwa=i2W;0;e8TfM7ZhKn8*isFQ@qj z`sm*P9Nya@Zb%VkxZW9w4PK-71Ij?3NAmqs=P1V^2Ksdq%|74IJ_r4plim;1XV7<= z+&@r3>qe9-!{bft1)}{o)F+U_XEy|oetq~)_65ve7&nBAMB>6R(XWxwHALM=#Cn_7 zPhh=0(hvOE8{`z>C%XFQDAWs|<4~T{$NY=?VSpduA5Mq%2N61W9UmKU#6AJ6qicVH z!no1TE$CT=9yf|DqV$+i8;ycz8F(GW0L1}PG`{hD2Jrm%C$K{u^w^P3dVI7x6&E~5 zSZUWl+sHbN2go74&>zjf#xN|izq!-)HaeLoRAmqcic8={W*%B zjZu!GxR11n`vP(R;fMEG$b;fOycjapSoFu+Z>R?aaVL;uN$|DMSEmqV>iQqMxhL@ZAwxj%k{Q%c9 z(Dq1*=Q(|U&~Oj=17iitpNv231B4yrKk^4rgdgS*-2498f%e0RF^g~$`2zca9{+F0 zpQ>*t{zLamyJ?zrh$p^EhmS*x>>FgS=>bKzTF)DO5Ul@ETq_DACnFu=J7>O^=EMSh?>pp8`^ zL-PmvL>F81Z5_mp_W|e=8ZUKRKwGfC|5W}H&wteCDiBA6A5tQAL=HoHsKB)xszW;5 z2jYDp%p=$r#QkjO9`L8*|K<4;Vkhv!G4`zkUZ>Axbd-$Ma!COi>&O>_l#%@k-!^;{f_gd=o&ML&2Ow$O1pX zb^82=eL1uu`?(sPw;;y!`A>`gh@7R5H$HCZd_&_GQm7N+h6Q3H{GrZQRGswrA^*>z z9^$6QPoMuIa{}fD#D?ZXgb$q~N|qOOaoAEFnfv=<^=R(PKsWP>g;BmG=8tUh3~_ z|9|$o)m98+zjpqj_05ad?Ao#RaX*^>;9qbURasJ^yLVe;=1R+D8Idb|GV=E&=G2#0 zn_6I*;4eXb{Q#*pE+gq^gqPFG4AuEkd(}i_%hg0>uA9j$-h0q1_{5d;oM^xU{;K3( z575q*8ke-sTFY?1im+snk)k@LE31TQN+@6&;_}$y`H~lWP3`wzK6dKhOYG&Cks3-a z7VCQ2Iwh&hm%a&XV{uV?uoX+~Fx3T8n69KEW}%>tS;?#4+P^ON@SV~M{gLtoS*PuQ z?PRi;+<>x>1eUZv4qIpAgxSfFF(0xy7G$st3({XU7-8peq&(-`@{#g|r*dp-bI&!&Hey~ok(x##V^Ca*3g+h-uHgoWCy zzz(bp!uEM?#0uh%Vns(XF@No)-<4MrmF@E~w8qZFr(%VNj$wOO`{UTFi>_cnhIZeS zx6(9B0k-=B^lY#wXD{r)x*#AQfaS*?!7dy<@m>2Cn)*pLikcY3&>l;rL}F(Tr(tIg zrD3Oc$75T~U9dnsTWq_%NAg$vcXBqhIc6!ZvByip^pKCb>FEt*^Xss9tD0nQAX^>| z)U(;M&)q+@qTr&-$oMrkH_y#Kd1_1i?wBLtftw3_TvnZRHC}phr?c0|#Es!+vv$Q6 zoJ&kUa-;ApllP6M_&zyItzIe^??aMb(@3HrjzL)=B*7)sK z_`B79l^_3GtLSgB!oST5W&itotKW|A?_LGDz}k;trl6SDVXf@HtM5nUfnDZ)tl#2x z)y=ChArTnJU+iJ^ZTKO9Bb?iRRL`&Q^On4X@R0CE?=Q4BD-vzshWY+IZoXK}g{zN2KbifEt&zOI_KKsihd!Dt zCf}2sA)o>M1@=m{Bo^X!$>9D63&fx$xe&*pCL*Wrt7@zoYVJ~dAt}APudmOWf?=aZ z>i*vOz`(%j*d5W`TH*@F7xRgVYKkiy1pW>JUomhW#=!jyw~a6$9Qb`%Ozx1KqL#>J zgJnkw_9u7uboKat&mR4C;J0SVf%p%=<{=FcDKVh)nl|tc+B8_GiutYZ#Eg~5U&H`$ zKwd!0^(15^g7uf}zmS~q5sXt^dK+J>1KTXsWfkYF$cEKw;<5{X?J5x80jO7Xfi&h~ zW{nMk|JFIUVJcuf0ozeg2l&8!8WcH9TVmmWj^x5xhlOO(9k!lj^%d2Z8Ziv~MeJ`M zz&=mnzJqTxMCDhL#pNQjB@}ze5`+zC-`Ug(1AU6EUG9q8*ARy`aeJ7loGP|lSr>EH zFvh&JEU=9Rw!Itlt#@zKUgmPfUnER->|<9_-`Yxf%)rN;db$L7+j0d6^fBPZr@+m#x{3Me{ z@quC3Rtr}w+w5nYd*9xPz3(7O z$Ez0Xdfs_#o2@&xQP&#B@F(rVwKm9U%+Jski}&4vC2R=A4$;b1EPL-E3}Sfo=qVl# zuqMO)tbIAmRmA`c(6q#SR845bSIrcxKdrF!8s=D}^E#}js~caFZUB6L%Dy@nVykt2RsBeq;ku9*AOC?zI{f8h2Y~Wb@ZTn#C_b-uA!Tp2lbQo7?2Nie@ z`x-oh;A5b(lG5*KhetiC*c41smC6$TpmdDNDfot8ZKK zEAtK;E4;vZFzg#D52V0;9~c)e zHW}E(Z_u{3{E7KjVBfaLH}bsmw@FXukunii5}+8{NQ9a=8iW`-tfMS(h}~>xcNyGc z9)p;413R!h4KiGIB?#C8b#GwPFvQ48GC*&sz&b@^37^Hrp{HXGwYOpKzkC0I_usPO zt53K2ZyH<)_6bZEYrO*Zq7pe?p;+nJf@|gYg!NSy$VxaY)|?k?XuW`u7J^QFp8M!kN=KFB5j}!$N%m@cG|BK^3gQq*@mXh*x;28D9_3wr&YAcgA8pfUSsq z*!iS%tn%#T*H7;~xbVKCV<%XL+Vx_X7|_l1ZR>x%3S<~QV%XF^tWOElUD{gP_TH|l zzLuAn)fykU2g{F30ptC`o2J`!CGXlg_CcO5tZz{Z_HpW;ehxtBE@PLOx-e`Ocpg!Q z&m^EeGZVxOUH^~%cmzOy5l6oY_(*R&_~-Y)HV1|HrwYMds0#cWsqk;Cz9o^y|A_*& zCWwC;k!ltW$p8M{>W}x=f1LlW2!J$(`-1vl-(v}&EdMTaUq=IRgL{kxc$U0WakUh? z3)ZclyL+#H#s=U&%=5SIBYhp!k6i)xGsFJ={)^WxT*iD|+%au&1ZWZUaA70zcS(OyfVp^%=vY0jARx*GdQd+&nN15m`)CSh5E^SLOTbTIYauR96sK zx9orAJvCqA|6(FyS{~2^&w*oLv24#EG{f721zaY5J1owbCz}onLw)mn2NHWUA zRRFB{q62kp-UI_b5_~9FeZ@`SHg+7WX+#j;KS_aY^N$}s+)7JG8Zck1i7ghC=mh&p zQMzLCGa(LbNd+=E&jR~AIqIS^_#V*?3wLgckzM#k9qYCbV@E7E=Fni<^H(qXumNxI zB?~{3RZeJ<^%O&hoH`e{#eW2g*5!jFbPyK32Di{Hr6(jdB(H zmcKuFpy$KKx^Apb?RPMKO%|+kwL0579))^u7*v}t(+&2)wpz?w$fhf)JRijN1db12 zM0meOhxioo)FkD^DGm;-!3K6g8+EKcCT|GC+FrhX4d!3-ui^NWb`W=R>#Nr<*4g8G zgHP2Z6?9d>YivzPMQ=?>`8P1;U&H&gb||AMA>RpT0QeS%nWAf_4#s!m0We3kK7HQy zr{*VsUFcnBXQQ{nib3#hwpL46Mg%-(al^3*_H+9H1{(IoVBb+mKnzm{^XJ!a4{Haq zgbsy*#UdiJLc#M|kgj!Q{FqOO<3~&IBdCr8Kx#8^W#2%J!KG&T2(O_kx)asIbe^c4m?}- z4-O6%0Q=wFTSjs^ISeJjtdQ+&_Z*gK!TE?#;tJ91!>S!G^Z7!TNSqU@Z54?09!(B(5Jl z@9gNvUuChZk1Qr{rYSCG0_KWOUy41-pONt=aLZwOQj0KqB^}I5+XCP3Lhlm5yosNq zy?uBN_JKYH8r#`z)L*8*Z-rm~+m^QTzq;RmFMwsd8{}R6nn13p%^AC7OjGaw9KJ0zMx#SG|UCP0A!T5MZ z`?>!H{BSM=@8qz%)iwD1`Mv)=s=Wuk6$-}Ri~Sq$!}(_=c#o2>J_Jh(i^kHz_lzjf zV1GXbgMIL#@e%GGe8+a!e=Gie1Nrd3$RBv`v{%x`$0^Kh_%7mW#SeU!77W(PWjSXt zur|P6KYoU7UFwFvr-45F)A-@N6uv`(?`q+@g0B^Lk3unq?@{4A`r_eZtgp8hI|;sX zf$y6B7x-b`tX4P1-)ly%SdV?Jgj%}d_gUlv?1u}fC$RzWzV^o1OJE%Q^Y~%jz;7Jk z`?|b?$=@8ZC%`v6D8|qSm|rmN;9C&<-5Tt-|3&;gHB3Ry*kIsWQS8$3(_by{9Uy$~ zisBF7$L8!$#0L8N@pq>9J>ehBe;9icunyZu&1)Dx^xpJK6#9s;LkjZ;e5Z@`f9?Z5 zp8|bDtc(7s@eA?0fOqaA*E4XOeyhN-yI$Q4iv#;V@V#g^DDZyvPsbmAui&j?iO+W^ zuF#h)W=_}^Qz!5)85Ho{1}vLRz`ITGEiMI6@GUO}-WOsYI^KeBE&8yMQ-w6_P|rUR zfBc&RkUPWXM36u58-zE{Ut;h*d&lcmtQ~xF(f;x^+)u#TUcAQ7d%M9`EYzbE+yn6M z1HijuS`6^@^WVGvR2P@U*Ye<Jf*v=j|E>8WE^DbPz37vUlp_93 z)@HB{7`d+h*4V}KP5-aY0Z<2gc7%IyTfjI8H*x9OXk_d3C!b%y_huI0yMx)9;)>n| zQi_ND^sKIe@AsYr8ZPUC-`Iff8Srlq;P(ai^9sO&Vu~n?J-h~a;P(np2F3v7VfQBD zJAo4L%$u~uz<#~InG+vH&)(oqJU^~5x9!sulMUCBUMK|j$Gmse>%Y3p>z1%L5H<6(}ZlQ;_eF`f6#74KQ>N zg5P8WftZ7PLlW4Jz6#bEPdAV)x`hu4SnzwPL}{HxFJ0LxCWXZz$%&Fz7roB}L% z=N`<*X%)6qLm%uVD_|<%cN@w=l6~O&xfTsE*=n$No&olVLcsmaT3Jk5N_6&YE{d@O zCk1@N5oln$6kwu&{y83~Z&SHZ*Xs2K&843M!8biHry}jwU`PDJvGWPXuv_5X{N(Qa zfsY+;p8^cg^nU+r9mr1vMPUFNSOxa8;=%s;)z;T7uWnaX4;Ex)V=-H|W1erNnZqaVlutX^QxU*!|_ zX&TV?N53!s5nmt=unXVy&Ia!vbwM8mf_i38PtWbci2{27 zPdE6M2!5;bqx%0Be82}5Q0BtY_#1o3{|oH@+5CSe0w6!ZLH~PIbl$H*w8M{=;C1)` z6Qt-PCI-r8c;3&%%LD0KPSSWtpO8rS-&-xF{{2x3iNpZgVMxLMXuku6=bOKBu0n19 zH&Sq?mcVgI%p@Uvn}__vz(-wp98jDv6h{=-;dHyPkv7Me>G1cJ9J)GWQxGjsWgxM_ zFJ6{;r@N6z8lQB@YUch8?T0r6En6CQIjQ^MBI(xBi?(7phZU+7l;=p!oh!L&D>++L zJvV#C#?vaSJ2xD3ojOJCE{Q>%GIuWbsJW@?5oU)vWXf~qb=$iW3j)3+&Zb-4k`?>V zb8gV8f?}H|7Ec0F{IA+@WmLakzfh`}O?6yKW*AxReDn7HuD#o&bj$f;moDw8 zPAJUXSZ8CIb<%D9C&faKM_Nsf6iu^)Ij?jpMZS_;|B$W3IgCjy!e-~IfJu{HNV*$L z+k1SMYeN;A!C}cQYD9LkGwXEXGDEpMvjPax3&~x)R^I{$$Y6_|{BWk4I z=Y3{niK_M~taXf%N*1Nz2PE>-=WnVyo}NmPbgqn(@|=0c&B)=#$9IuQ5-~BkDT8gf zEDp+}Ln2R;PHdUQH=(O<{PT6AZY@uDUnp_-b=2ad&`{rj+L{WN1x0@MvfVyyw9HCR zbFZ5&ck*#bN4!mZg01mt$-dD=ytRF+iY8FRI&0=1DY$)MJD7b<-^`<;1UFEtl<6ZZv&HH&^(S8g3<(jd?4i?icZyF}xnLdh(3$t(IK8 z;woyr5qxEaGYw0t-WeoFZqYR>m-6TbB-J8552=(%WB`e{L(Z4Sk21B-Y% z96ERKb5S(<#+dWhUkRV$%+4Ifc0>Dsl-G@w^W6+w8i3_krEo5O{fN>&(d*ot7E*@FAq>rWML*M%B4Vs(BsLBU7xCvXGEbzait>!rUX!$wo&xNBP+x8pKRn#KUQylq?})vYCNfVT2PIH!DavP!OvEXRb5I>xi!Tl zUr*$vnbor5STB?4958;;3=)caboqru-<)|K;k|C2bCHla<08$u+}Y!<&k2tro5PSJVhofSqdrlnR| zQDXd;lb2tWgp2y>w z<+`DIwp`)T+N^Z9_V`b2_b=`J9IkcMmsH02fjuoL)K@$7_2(3sr+2*s_e>QpY2eiK zF=g#K>ad7uS}AKUb3i1w$6>7+DH$0`7BsZkgMD$US|<~e@5JHW2f2)Y}w|46eZhA zZU?=U*Q~W-qa(u6QjZGm7azA2ik z+MSUzZ*%sm9m1O(lJx^uB&RS~cCntX+i~Vz#3^%Gi)Vo+f}_?hK44O`*4nR9^|Ish z(5a&Hmu!4W{?z7sRBEiFn8d{W6%o6--o7uL$;sk5F>INaU_%yD!5F@|6BfI^m=~F( z5F;#IW+v%8%4~j_l)FLi9+qj{q~)A@Z1aL^4p&4Szcev(qug6?`SCZN=}11}$m1Bx!k%N*!S1(e?A2M%lXeQ!=|yohd6b@fXR$O)z;g2V z_KmV0)8zA3);ufS>9fhy;05#Y`G%89%C^UjseS74smjCRuxs=f&GH?wPBs3XU0a%# ztHqAJ%IP{w{UkHLy8WgQuA@8RBv!FcmgYB!l?h;faa3Ptu9Vo?M~p#Q*U6HZ6XY%(*>j-1^1wi_&b|EQeh)a9T_dN>NHYjaIxg+8a<_%c0j{_-cR`Bq z2jwOC%1jyYpA+|@L)|8pET*Yw3C7GUV+_?4U!XM<$_0nL6&mzLabH&Y9R%N z*JBSe7u!_s)lYod`^w(!Q)Yq3g9~BGfvqbI3sctJN{#inb!_u&=4Y*u{*5Aj7bWcr z3UY5qKb@{3WVc*<;8eYRV5)Fq@ZquMmX>87Y~7+PR|_ytnC(1Qt}*>^mez`7MJ|`r z6+tRvRJGoPd6Z2{NtvhV8DaC*X?9p?Z{#%Fo2ePjaqHVA87+F{zhivK1aC{yXHU7Z z+jCjfHw88}UFhjw!0l7KcFFTkw(qpHKE6&mv8KR(wX*XGnYWoA-n*=qvd%ttGUM3G zE3)H@8a~Xny5R4%L#XD`WdDw0!JSnc2PIP;jThA8u8PjTnVVR}5Vt+1Kp`~ZNuPT8 zeP4aEnDuqGR(bBym5H{RrIBp2n0Z%Bn>32Vxx2h#MmB?ZY)8M3Z=UA8&+Z^gF1cs- zz6#x`*>#}rK1Z8C=8eWBfrqZ_uw1FAT<$NmVC#c2_pmX}EQ&XI`T7nT>z6n$bhqWX zk<3LI6#N`kHD_?4VP>xW?I@uW%$*$l+4I*l&xn-qT>kz>%z3f#-QICnc1$II%YJ|3gq3j@KQ&aYS+>p8)#Ak4s(9nJv78`%{lue6qyZptTyLXv(XW?#{HanI7lD!DhG zFOkWrGWI;|85PHW!$4wh@vbfdk=ynRaXUY;YhR7#B&pfRzMps|qILS@EYm29fUD;( zC~fwMeQaFhQt_CjDX8I;QAqBR}_om+jiV z4=Y-8n+`VR#BK=d-)>hdHqP()^UoU|n$OQF63CCen{U;S6t;GE!F=f`DT||0pEf0I zjuB-!M`Go(Iq`N=RO73}z`@(f>{5BNo_yXQGGBl7o2^!_Ew;|jySq;0hC%$D$->RM z-?3}nW}3B1+EA3!@E+T>Eq4mKFjaD*W)+#=JA9Ou=#-km`!6rLU45NZABi>C6r7ZM zx6U;-X1!)u4oBnOwo9FtG|!!Pj2P@XvwY>onitC-xSU*dVA&y_d!tz{lPLa)?~+AN zCb-UDpt3h9No3Y6mZvUGerY*wde81;=Jio%PHXS4!2jXECprn9YxaZhw&KYBMdRxn5C`3cW060%ma9<6=9C8bY+@e=nm!Dms@T1FdNslB&OOsTO9OF7Y;vCd3M&a+;$J6LFGGdp8h_5@1h%g4sX z3HPNG59|{b=2&4}kjEjldhDk=9yWqb`AV!dQEQ(?tjM-(tnxebAn}@Svrz<>nONDr z8G9y5gg6z4Pwz>S%u3i`A6QW@_e8hA#?IBkaz@P>A@Qy=*xOxTUY%(do=*bzyN!$P z$yla6HMl$5cH+q-z3XRFO+6yH_;WAUo~SlEE?cMGkR}mtyI|D9&qjgD8Y>(*_e=;~ z>J&LM^m^mnJ3`#63tZO*!~RR zKm;Z)d7*l7L;X41Ir+jTIV2M&QjX|t@M4kZ<&&z5khh3DbTp;WHr_vSrS<7K712{D ztcDHg=?RbK%WLwo-m#iNsb8C5t;oXBaNyX3wbJPaqvss9=6>$VJ`ly(K)LnO-7Egu z?aN>>ur+husU5Z8|#W|{q z1}T0z<(p=XD`qR66Tzw$?Y%{{JR6>n<0!tbZymPV8}mXpXnC^>93uIKv9|ce@EUN* zGuCTn>aDV#!>@gCm6(S^Loi0MScICT8xlFvh}upZSyDrb+L5aelnr{2c!^m`vsl4$%yARehhBvT(Po2RYkB z6Ws5gT{9!$UZ+#{DdpPQn5*1Zx_z9Nx|Lsf-eq<`^Q4Vw#+2&=?M=BM5l?z&_g)h0 zWoFZgoWDQgPPxww>)WrgDke1+w%wDrx2-%Oe#)^rGb(rO@(GW3%6YGU&SFG5uSU6d z_tKo4UJW_$KnT{~AqEKxx13oXFfKv9<9XO|`&TXH2lLk75lgL}zs_ZNUVRa?*^ zvAuKhBK_nfArY}BSyPkvR$S=yKcJKwIePHpq$0nzd3z#U`)b4I8Ep(KcGp>*E8KWc za;~sYmGjd@H(##CKB(OcYz*QE;Y_%eki>2QrV9#5G=rtPOGPiD_&(dwp0_I=31jao z76=R7;6LoApD})}5ose?r%>+Pb~Wv3HQoM|n#bRkYSy=;3Onl*oFAMm1a(A2kK3D{ z7QcrflU3%L46j?H#E1LB@6VlHUfFhTax2-vVVzpBeYU%9+H~Qn1&dl=NtI=<4iv3S zwA;?}Mp5&C5wq2arnP!mdb#svWra2{kFv6;&G6lAvGDdyt-{LMSt>7AdFjrX=NcBt zZLQaPeZr0%A9kO;q0LmbWM=8{!N)2U<1c**v?~ZYTw=HGZTd5?S;Mr_NKPW<{_IZ| zd7UM9zYx!Qy8qRQBG03<28*_7rPZgG?kSZelO+=8%NEot zx0FefUe4;eq8%yLd^G8@-kQ&4vplTw4lg^sV`kOa#CB#bjn$dk&12_wOkI~R&ns8v z@GP{PgH=PnDUl^3E5o_B^2GLmL9epiJXwNClD0RMF_$!h8INB%?*LmN{AZuuS^Dm< z=H(-6*77Gd9)FrH;h&fD)5Y7&V8-WQ`Wn)Nx!FCy#G*A z(?@N&wGRWV$`30BD|KRTk8#)d#Kj)nI+4P@O7GseZ4w$vHPP31-ibGOw|krYbCt^< zeL4mPn&b68iDthF2=6`4QyF$J@kqu#{qeIo4v}0yr+Ik#R&M>o#Ra0U%H807ku6V5 z=Rp18yKQZaVzxPFYh0HmEigO2yPkJlLSC1=5lKp2XPdB1Ow<~^H;xXGPs)SrH?Eod z*!rWbT-M{;f@YbiC!;r9dL??QbN48~Og4GNGILH&Y)u-+qMj@An*|f(+OGEmCa#Fx z&@gkM<0JM%3vPjV={hIBx|H?fmn>)HZ$Ew3H@mU$?%O=9Xxn*Zj%l046W^Zed7mfy zGEjRFm-NYXqoO6%6+Mm}J9Z@s<1hK3d@t+Kjl-9Nbgr=rlBPMw`lyFhB`&gP3feMw zjZKy3L4EG%hwh*wJ7**YIGqy-ZrdOE_|?0!H4k3Z_^_y|fJ_-5!77@?ks5Mf<-BF( zT#i}ZozDbQFP)M++LhSpb+tm;!{u|6-V>3X-wMPa8oprwOTY#ms#}ep(lHsOR`UGoWb#_Ps+VB zV76IW6uKz-wn$_YKZ__FyI=$&Q z1HabYh>G4AON#}J#~3qj?8+*Vc3+?+BrYzH7{SGKWNg`N1|!lg)?=4e3C?5Y=e?$> zai@i{Vfp4cYZX0ry?j3^dDO$t&6i)_sF#cFxF^`wIq}}TyDJ`^%~nYAw^t7hu3qzz z2Pzx}>Yrs#dFtPog>R$G&eONXJs5zQrsUjo{hSC zA!f}Pu8CY-_vEsJ-*njDv3np8XTTB5Dx~)y;#pNgW{k(Gx&tpKt+9W*=P6S%50|8j z;G2~mk2G{|r;FWL3C5uEhQZLljv$d&kL?{-j!t7`fh+`l|c6k&2Zzt{*>0_u5)n?-l4^Oj`DY#qoEP1wZ*wtsFjFjJ;joepjlIJGc+0(NFI|WYqFn1lzjO4bs zy1z4cb(v(01ZzN7MZIjC!K)yyItTE2jKu4-a#hxfwb$ehHBV7 zPpf-+DvOKQ&BVtbsD|{Qo$$PMEgYP5nwLR1qJDsY;?d8M3 z!p$H4Ie1aU?#ZS$QfsW*#AA(^_wAeFU03kx4Yo z&%#sMc_Ew)GO`74;w0S0Ns3FlykxgJ!PG)}+#M&oLTc*8W)J1|wsX&T!aEa{PU>^^>!?AH`=x^jH>RRJ)^?Ka2PLX{J$cZ~Uy4yWhz6;vD=ct}SS4qpp zt^h&F?&s4c?Cje%xt%>E`m)MfrQM5rLJ~e~p5!$uS~HTnOSaSPOj3DzuJGvKDc~g; z`}ofZ5zk9X__(fgN0m)v6BZM`3*VP1`Y4spR*7mUH;Ar%|BV0qb&wm`zG06(o!C~& z-MnMdE_Cw9>87r!rF0V-*b!o-i#0ZZ2;fL+)Pjfx< zO6m_$0$b5S^KTx!&`-WRONCujT)D_}ZSP>x+{5F%H#L=9*)@?e^GMnnetQukuR+$U zx1`p8_P^=>fsL_H;IZSa&dwJS`QWBEdDHq27i;4Uims@T!2Onu>BO8Oztg2NnwxbO z%jIhbNW`+KDL%iXviL~%!*{zQ(qYH#HRUbkekIdSsDqpFKLlWt8-vKCH1ueA99xUq+_TikhUy)o9TOJzl7E}GVtUnN0+E{jahJTZM2L2f}FFvXY@ZPXQLc_tXq(l z@gQgEiKU)Sy_KueHwN<;$gUst1YmsY!zxJ9pd5H8Z zR`eaPDfDP4y=PdI{-9u~P5j>E+sV62n~omXd3L!g>$+FsJh?TCd*gd@?o)&*o(n9- z)ow{OWpLz9vE<_SPrSn2?A|jP+?&El)rO*`XEr2Fd(BY4W}Sbc*SS8m9pDu?CBnhr zW6jgoV~q-D?Q)ESEfNMd!eyg(e2{I>_@v*cujE(M=d&b#F-kiSfV@RNS zI5%H-uxQ}@3qA`u3}qv@r}Fyx?gVBcBIe9Wy>Dq-y{kc%Nv_?AahI4^n5xFUE^Y`Q zKmVR|rpNqJ=A)!pxo_ANKJN+?W%r8YHf@>P=$?81Qc=9GVhfNNP#EjLeQOPej7)pV zLhJH~THSq9qDmv=UCzw&aS0Ec%+60{KVq1-x<;|EE$DFCfr|_C9z^gj0<(*sPQIx1 zYJS_*mbsoAWGl?g_KB`jmuOojRxEK$dBLsw<{D;|_IhK>jV+}T&nAt})Yzoyqzx9f zj=Lh%>T=I`&ETjm5?(M}f7NX(r%j0yLmVj+NuxR0wiK-Lt6!V8>9LXCqA^?aXN|Ky zL{d=X<>pdPNGmjC-7!|%%tj%ce1Wsrl_Q+nh&0oV)0IU%!EMPkORx$^723>nOw+ky z$)q#qIL6#m=KiR_uUL8@yHqmE0a5{ zH@(`$8^U;J6`D3?@4pze==zdLX3HdEuJ*q#Or8_^Sd(*7oq(>sMxpqNl~S*nRmo({ zz_a6{TC+e_@Et=v^27_V0|yIf#4VcbB+xG zM?)JtmRH_(xm85Ud_E&#skyFeeb;gS(~KD&%U>A_Wb(;umD6-K<7jkWnzO3hyRgpk z4hX!WN7Ml^9+|rE5Xn@{3z>~;Z1=TgYI3G(omYIJ*F>yBlU zDVBuWv;EfC+HY9Z>&D#unP=qOOKp)8oUsaLhyt*zDS>?UUaX3eW-$6Ae_G`fU0 ze^pn(-P-%6J0)kcsU%&v;56phF|aXE($A!2&^SJE;AF@sNA9};URcH{TM?-of2-Ny ziswHR>|ot~K_M(G;PChdF?9*8;mg)DOy5p+P&ry2d6oNV^a>589KT)F3*LAyKj~Vz zMt7&=cIshry^4#vPaV%$C7+eyX5K#7#dtY2 z?#Z;hB*EV!_re4Mq?~n&t&x^GLEJdrcqGSr>ct>dk zJ=-)p$BLnM`>1D|xV%)hyegF}d-H_Fy|MC1dVhQ$rD*FZp8fZ7Uy`>>ITX2VYWQf8 zK#RAL65hV6UPYPQQ8g^=ySTvHg4DX@aPiCrCWp^eW5$dbyV6rxA@O*om81Q3!R9SZ zIK9xcywBU!lRI<^ZrH zD{STwHP-&9^lIipVG>`AY2Er_YgKlK8+UahXUT_O4D7n9CU9hw+a&jzI2A0nuJS-r z{jrR-?+2Ez^!YsB;-#-5g}*$)X|$(?&6NoqQ<*(?ZBmkCSrQZ^zNNE#dq6;mvsaKf zPtDG!fs3{Jue-nYR~pALm(layR$iTplHMN-cd9fVtFgDXZh27FpTXDV+o(%w7{FTc z1pNAaSUpB{xfCrg;uB;}j#|290|PUube?8aoDaLj3Cp8hPgHqTDa-cjoDmB@6+Cb} zX_G^<^#`%Ru!zAK(+`|?c=9CW1FzPcyE1CA;di%e2rg3KR*HQ0?jm>DPA=)iWhL)| zc$PbHH#-`zH&0VykJ#NAkmY#YIg2^xvfqYTrCE2zj9MotmRbZV&ct*$J_$5A1XELg`uJElA$+w=A zxnqLU?QmX?i@lvS4?lTtC@*Tu)nuMtuOH<6(rU(RZ}4x^D||3YXnMC>Z_+KlQMZ-sFs_isaLwpR&twj{eY?>fi!Vh)#h3)!J(g6Hv-A}MtN|6eEP;Rxj) zKXAJth)Fp8s=CPsxjkyk2k9Uh5*OO}97+48geCeQ-b0|c z{;W?~nV#c-IDLBs;ucyM0jf#b1~)H$4j&5|E32#=Qob#pA~KkIe{#fLxWhuUb#+-{ zb~{!0FRy;iCT$}jN0WWWs$(V zm9{p25?V;tI8HHKH0YhfJyP&bMKxEC{-jrkx?buKAF1C_3!{l!fR{PCZ%7Fty}6|L z(|yLVV|iUqSRXIoAgwJ&!DHKslAZP3{T-si#?y6dnhEOkL;8L0upE{jyVPSYyJ2_&#?psrw#s-q8Rb@T{e5(lL z6PLfN`k#a-qNV()WExX`eaTw z?S2u_N(i`g?3`?~67)Y;=gNnsd{#js@BT!mYuzr;PIx^)xy6jyQv!ABw-Sk!ep((400F7J^7B# z;Ar~a9RpefNFKBF%Mkw*oFGfcQX&f!G-y9A+P% zIny6V_{}{V89iHTt0<>5{?_2F#j)tCZwHfWLiGtH5x()=2n-j#@%5uj`WQfZ{K}hX zhR!M8YRf>)gzj9LY|m~+WX@G6-d-4Xg{c96f+TpF8-5ppOy8vS*P$vAtO&p|1s9< z=ZvCkDJEChPE<%E!UE10`kuG_Y62uG6+v*-A-rAv>-#Ktg#YQ%^xF0&Cs|E=WYRPb zHrLuIpBY+v#ziwUm}I)7ZesLDMpn-NM}MmDf;qtrb`@1VvwhX02^yq#U}L)2UO(^5 zt;>g$*F0kSsPiC2quFF+d0OluRf9;&iWX-&i@;2Glb2^=HXn&coHsZ>Ry{FFY=X`F z9K_^4UFD{flDZlt>TvNQS3sg1$3>HE(og4U*r_2_KZJ+Tx~oNy*fa>^7$O~7?A_GZ z3QeACs_k0$?}W?rLexvgnkLY*87zTl)rlJ~5y-pX zo#>~`P2lxeCndel5G7;g{dzm4ocC!iWBBmdpOzV+umrWR4#!VuZ1B3_wRR1`g8{EH zfWE0)xWP&~MY;=Z37c7kwF`-yF2c7^uU$WrEbbtzY_5+L-f0SyD}Mugejn zLSs3HBfNMA*|5;N(K&I-!E-7)9lnwD<~Ep6u=twoX+%g;SC3eZrlMHJMI$|*?FdV@ z@_`Sx1}FxGj8)X!yxGOalhZY{mI9^aCtpKykwfiXs`lRt0yU5LxmUMEq{2SP zv~-9%WMM2==HQF{JN&&E_M480mIa*KSm??5S*M2GnT{E(Es&zYXoMV5N^ff0>#ByF zso~h_Tc%G~r4J7DuI!a8=%SpC!JQ$k5PsPzNbQumMO5^^gLBo{@V|SX4kR{#q*tlalD#;VGrhdV-jLz4MDdK zJS&oaJUF)3|5xWXrL|N2P+v@TP{Zl;Jb|-Oq9-7I=Ebr2=FC!BxPjOXVOR~U zk$VeyJuL=3I##oZmJl1-TIVjOJ@AFEeLhC)+5M*7+kAFZ(|vu@f9Cf+TodzhV zHkjn|-g=+OM;Bqc7Z}7z?JA#jUij?pUrCcwN)3~b>Fax|Jk9nM4~!E}=}`VCD-``2 zRV(HJ%P3JV-u%nCS!|HbqKu-zp@UXEQlS@z%k2OfqJl6E-F`_;5e>WtRcJ;R+P({f zb4nky>Ak%|O)EaD+VTMZTJ}}NlJ;NG9X6H%^fD`$mG}OI(Dof0IIS7kk~n5J7ap6J z$?>{No~2j%nLfQc5O-AC$!VfXCRmB&Wm!y?C;643_i`KuOyXqnK}3{;=MaEJPQTiA z3F8()7Cwx&+vmi+#hnz|6c5AyJs75+6o8ar*fSM5akM%A_7~ydmU}Cmq zQz$h5mbdahjL=1vaX*>*LnC8Xc!eF%UglrPmSG8{O`ET@8p00OBaK@qao5r<6;3I$ zMjQzO`_MYx^BZ*Pbrd2)8pT|GHd&KoU$R`s0vU}s>Dbn-eGl1Jim2dXnF*NqtSE0) z>UwWcDe@pqIO+(AJrTLwb}-xf<5hWXclRx|na~Y3u)=Ihm)N_eJ)72vw1n54etmHl z=RRGRJ39GH-l2azWPIyOT!XeUJwg&l&eFC zIHb`KY7D65{#mPmew`whfU9qLvC%7z*3TceAKM?>68~0cBUM41Xo}JcpGYeI_R%SD z(5?fd{n3ZYUuX*pEQsS^>19F4Ts%abczVAX2!Pa|{ zkZQK!RUwIIj~_2CYcn$&Q53~LT%j(+Z(C;J_>3`-1GP3UZqnRCna=k!vMj6aW?enFf_^ zAyIx8Te+kim)nMEPfok*aT9EXKMV8`tIxo1W$5UN#>glwvTj^#YaG$4$k(slz?viU zx@5^SA)hS%i=;qh13t&QX@#z{bF8NAq_;bT|B}yv%_KNqdZOUazTENQ{Q@r99hmZn zcCZklQ)QgnI7iE7TFhsuCxEiHgaW}Bdg#J`>bR|bVC{+B=1gqZN|YSNzh8%_I!2ft zi&K(5JtCHPtDpPoWQ*N~OB>Bc-{s(=VjgW_4J-8}V2&xCOYAg^-0|PO4YRDG=oX@Z z>!?@6;T!l|e`Y*cX!Neher#GVopAF}q9(+jZGhG0h=oLKf#~j;KhC}A@wfERp{K0MgzLE!b=pn(vz~ewf;Q!`RE&u$4?l`clNm0hlSqUzKxIUh>v@) z4hr;A$)kK!%%_>HFqjUqW7KF-_;|_jIY+B|@*!$2 z00^N&AX_%WpP8Ze!oI7{Jujt+E_^_nC)Uf&$s>2$Dw|b^>l#YR${70Ml$Pqg zvWfliciA+SV(XTS#EK>gyNDKXR|j}1uC+`v*~-h4h)iXmd(38|%8oq+KXv6{$Q*+9 z{$R6wi%>SpNbmSUNG^@MT+0HYHfq2FS1VsBy7}ju4{#P?5l&Ah7*&PR0`A_IqYIq> zSXZ~YZT+Mm4|bC%&B!Zp4TO1duLP)J+}o$ggY?@0hnvwK+C}GbYWo+a$DEC*T|;H> zH|5{UGElNZS-ro~I!_q!{qQ`2<-Ywf2^;1)9)LW+;xPGZd< z3+0(C-C?K{%a@d{fzY6^4i*2CbM89RX&|7fCmKBpnMhzch_(c<#pH*IPImR%+iUqp837P``&Qu@Rzu zUwvh+O{hlsNYVd`SM-H#)rW`pi(dQgNB9ZxNWdCcAHA(U6!vJ_ZBN}w9ubgz%9r;=vL5 zyp;1OC=e5Nv~JvaL=dO5J^N}usb0e8qInH3mF$(!|8gC!d)ey4 z|58`0W`llbkHl)*{|t$LTZrvAQP`4a)2g4+rP}@hLrEW#(kXf8&n>L7qbO42l9GTh zf%HdW`RFpo6R1*N`6x|03(4xen>1T=z| zj?nttW6Z;ld&U1%*nb%{in}HodR+s2D|`-@vWFY&<+tNRZ zmw|W@Pv`7a%ZE`T6|eOAqzS9oFIuYJb{0ych=BsJpsr8wS}T;`Cw9QOoL_r7(|y59 zYRq|97q8bsi9HmWVYC4lOCh?Gf8>;txyb6Zh$1OerlT+8lCq0qLV~B%x#*N@1wE&k zgin`e_qvtM)_5slmU^4r=`IaRlISo4Z=A3Pq||t@M&Qw%H{LI%iWQKZT58jc1V3Cg zkdL7P=IWQf%~`RDh|3LSbs_aut&Q%QvO*hogJzIRIzm}OK_e<0nQX40^v`kOeZNiv ztjNvDN)Oj#j|ST<%xGt_?crmt2h&jIP4hnA`2_p&*GakpJ`S=GDt5hnunG9sD>?os zU|agGd7Acf96d*~**uMQNKWsB3)0>YV0@mHttKHV_TRhmt@)iI6!QfZuX(gd^tbR` z=RU94m)~bI*7W9Gm14+P5Z~QQLfrKypJyTgM-W_qUWjBKqbsM4*<=Iu<4%vG@ABY{ z%ruK*ZJH&LkBbnOWI-^=UOsv7exsaN2@AJ{>y_VM%(n&Arki(;hZ~h)7S~14DyCrmaZ%LWogM`8Q3^dJNx>L%=R6K!e^!V+bAwoI!=1tN(thDv>SGdHYs>vsu zAyN+@H1GPeLNO~s7wgwH$}(4@&TCal9!TReKUC`6xD5O)a9_Paq_cQ3L{CU^s1sS`&)BH>-KD?yF$vR`!yZqkLN7;b) zGSM}bf>IPgjzPvLvPJ%{H_RX@tw+zFZWTo~MgmgQT4Wt=?jHjJaqK32YiV3nxLN13 zZsE(^Bi1un1G{6k(X5p@bZ()2W@(`gN8-q ziHcEy*zV-}g7tLg*^D8SkW2FeEldPmm6jE^p0_R^3`YxwIkbYL~6eUN+EZq zNdImpUU^;X6m$|$|E4dM%RBtqKK2XN&lm(=5FqXR4DoF(iu4Z}BznIAY8Kt)DA=)b zHP;wXl2)05zNm-(9|z;!g*-sg0|!HA*<+J>FJ*BpCw4WnWx+bsczr_u2J%>+y;*cY zNp)UT1e=glekD8oqgmrqDHaqL_N;9A{x3`X3fDj3*>ST)B!V*h#AZGiFnsHnYN>w9 z!1Hnc^@#p5T{ug>2_UWiJ+iF+`GHf2xhhFua4HGRm-Pl#l^__QQhbx^)BWAj2fbx-Hc-~Pxek)>9P<+6mDjCVVb&OU8mWh-|kZI|B-t=0I#w)CAn zeDg<d%UM`*U#||faPlH+4M??bKj}l0pk>({hm6@*Z?;fAl5xY|im$om;Bf$qRO~jnlqWS*!JR)k9z@7f z&owL4jeBjGJ8eZqv_K<>iCqo7{rD9%08J6Ik>r6#Ki*Cs3?gTjINk00mk4>FP*DWJ zxdcd)T9Hn4%_i=h?mlEkpgr0>LTc{8i>v&y$2%poV`A*`+AnxX#1TW*u^f=bEud1s_5fh{I$pgm*ZE06x(ffoI6v@sMm z{;hyNsq-)>FE|AP$UR6vu5yA??*sLZwzB<+r=4t2{*kTO%}hc!0O2gkpp_tOBzgSp zh7&@uSGzn?4cj+skMhP`5R#y?!t2@m5-BVktB+U962%1TRuZ*z)|;e`VcFIrq}gi| zZsuP$^OtZ24x^5K&u7h+&z@40ZRD;iNve&@BsESlTN0O)Y3Dc)pokz{qX@AoMgKWZ zFaN{rRK-C|@vKWNQwzT=TWK(PwEEA^e-Tl0t#CcUQozS!bcvYhZN9xCXZi0iUF$t| zve(M54P>)GIQ3aOw19OH#jU3Ig6btPIV`Jq@()Wh8&Xy_uG+W2!_ALPJ^pcaF#W3R zSgBnsnL5eJ!@{QY&WI;mT;?JIb{3mMF#Hhkb<{5k~srEm6&rJ99J*Rsu zbgk5-sM`FFl7%n(!KOSdxsV=zo*whd$CNEtxHNoZ`OkZ=0hibc){2x4``c`Z)otn5loy8$@R_%UyV=Zn%@;J zIdoVuno*AS#kmdCqSx5bVaAim#&N$igzk)(q7Q9soQK<6W2)ZgvHd@0#bI( HE$V*&v7k_5 literal 0 HcmV?d00001 diff --git a/share/pixmaps/pivx.ico b/share/pixmaps/pivx.ico new file mode 100644 index 0000000000000000000000000000000000000000..6bd1e5cebe9cb191358d178bcea5e98714b6b2dc GIT binary patch literal 239721 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%0Af`wm?*-MVpe3C!mw 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 literal 0 HcmV?d00001 diff --git a/share/pixmaps/pivx128.png b/share/pixmaps/pivx128.png new file mode 100644 index 0000000000000000000000000000000000000000..a053687b0674058169064611faa3759d14bc5ccc GIT binary patch literal 7704 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 literal 0 HcmV?d00001 diff --git a/share/pixmaps/pivx128.xpm b/share/pixmaps/pivx128.xpm new file mode 100644 index 0000000..db001d6 --- /dev/null +++ b/share/pixmaps/pivx128.xpm @@ -0,0 +1,258 @@ +/* XPM */ +static char *bitcoin128[] = { +/* columns rows colors chars-per-pixel */ +"128 128 124 2 ", +" c #2F273C", +". c #30273D", +"X c #31293E", +"o c #372F44", +"O c #382F46", +"+ c #382F49", +"@ c #373045", +"# c #383046", +"$ c #3C334B", +"% c #3F3551", +"& c #423A4E", +"* c #413753", +"= c #443A54", +"- c #463B5B", +"; c #493C5E", +": c #4A3E62", +"> c #4E3F68", +", c #474053", +"< c #4A4356", +"1 c #4D4659", +"2 c #4F485B", +"3 c #524A5D", +"4 c #4D4065", +"5 c #4F4269", +"6 c #554D61", +"7 c #52446D", +"8 c #5A5465", +"9 c #5F596A", +"0 c #554576", +"q c #564873", +"w c #594976", +"e c #574678", +"r c #584779", +"t c #5C4C7C", +"y c #5E5372", +"u c #5F507F", +"i c #625B6C", +"p c #604F7F", +"a c #61517F", +"s c #686272", +"d c #6F6878", +"f c #736E7E", +"g c #75707F", +"h c #5F4F80", +"j c #604F81", +"k c #635482", +"l c #675886", +"z c #695A86", +"x c #6C5E89", +"c c #6F618B", +"v c #72648E", +"b c #7C7684", +"n c #756790", +"m c #766992", +"M c #7A6D94", +"N c #7D7293", +"B c #7F7298", +"V c #827E8B", +"C c #81759A", +"Z c #867A9D", +"A c #887C9F", +"S c #897DA0", +"D c #85818D", +"F c #8A8592", +"G c #8E8995", +"H c #908B97", +"J c #95919C", +"K c #8D82A4", +"L c #9085A6", +"P c #958BAB", +"I c #998EAD", +"U c #9E9AA4", +"Y c #9A91AE", +"T c #9F95B1", +"R c #A09DA7", +"E c #A197B3", +"W c #A39AB5", +"Q c #A89FB9", +"! c #A4A1AA", +"~ c #A9A6AF", +"^ c #AEAAB4", +"/ c #AAA2BB", +"( c #AEA8BA", +") c #B2AFB7", +"_ c #B5B3BA", +"` c #B8B5BC", +"' c #BAB8BF", +"] c #AFA8C0", +"[ c #B4ADC3", +"{ c #B7B0C6", +"} c #BAB3C6", +"| c #BCB9C1", +" . c #BCB5C9", +".. c #BEB8CB", +"X. c #C2BCCE", +"o. c #C4BED0", +"O. c #C3C1C7", +"+. c #C5C2C9", +"@. c #C9C7CD", +"#. c #CCCACF", +"$. c #C7C1D2", +"%. c #CAC4D4", +"&. c #CDCBD3", +"*. c #CFCBD9", +"=. c #D2CEDB", +"-. c #D3D0D6", +";. c #D5D2DD", +":. c #D8D6DC", +">. c #DBD9DD", +",. c #DAD6E1", +"<. c #DEDBE3", +"1. c #E1DFE7", +"2. c #E2DFE8", +"3. c #E3E2E5", +"4. c #E4E1E9", +"5. c #E9E7ED", +"6. c #EBE9ED", +"7. c #EDECF1", +"8. c #F0EFF3", +"9. c #F2F1F3", +"0. c #F7F6F8", +"q. c #F8F7F9", +"w. c white", +"e. c None", +/* pixels */ +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.9.:._ G d N T ..,.9.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.0.>.| J d 2 # . . + > 0 0 u x Z W o.1.0.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.q.3.O.U g 6 $ . . . o o o o $ 7 t u w r r 0 0 u c K / %.4.q.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.w.6.@.! b 8 & o . o o @ @ @ @ @ o o % 7 t t u t t h t t w 0 0 w k n L ] *.5.w.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.9.>._ G s , O . X X o o O O # @ o o o @ o o o % 7 t u w t t t t t t t t t t r 0 0 t k C T ..<.9.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.0.<.' J d 2 # . . X X O X o o o o o O O @ o # @ # @ @ o % 7 u j j j h u t t t t t t t t t t t t 0 0 0 h x Z W o.1.0.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.q.4.+.R g 6 $ X . . X o o o O O @ @ o o o @ O o @ @ @ # @ @ + e.e.e.e.e.e.e.t u t t h h u u u t t t t t t t t t t r 0 0 0 j x S / %.4.q.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.5.@.! b 8 & X . . X o o o o o o o o # # # # # # o @ o o e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t u t t t h j h h t t t t t t t u t w r 0 r k n L ] *.5.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.9.#.~ V i & O . X o O o o O o O @ @ # # $ @ o # @ # e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.u t t u h h h j t t t t t t t t t w 0 0 r k M P { ;.9.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.! o . . o O o o o @ O # O @ @ # @ o @ @ e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t h u t t j h h h u t t t u t t r r 0 0 W 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O O o # @ $ @ @ # # @ # e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t t u t e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.h t u w u h h h h t t t h 0 T 6.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o o o O @ @ @ e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.u t t p h h j h h h h u u t w u e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t t t t t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o o e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t u t w h h h h t u t t t t t t t t u t h h h u w t u t e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.u t u t p k j p t u t t t t t t t t t t t t t t t t t t t t t h h h h u u w t u e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t h r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.R X o o e.e.e.e.e.e.e.e.e.e.e.e.e.u t u w h h h t t u t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u t j j j t t u t t e.e.e.e.e.e.e.e.e.e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o @ e.e.e.e.e.e.# O # - t h j h u h t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h h j j u t t t u e.e.e.e.e.e.t h 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.# @ $ o @ * w t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u u h u h u e.e.e.t t 0 E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.! o o O e.e.e.e.# O O O O & q u t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u h u e.e.e.t t r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.O O o # O $ 7 t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t w h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.O o o @ @ + > t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u h h e.e.e.t u 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o o e.e.e.e.# O O o o @ ; t t t t t t t t t t t t t t t t t t t t t t t t t t w u t t t t t t w u t u t t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o @ e.e.e.e.# o o o o @ = t t t t t t t t t t t t t t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t h r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.R o o @ e.e.e.e.# o O o o @ * w t t t t t t t t t t t t k S Q / / / / / / Q / / / / / Q / / / / / / W Y Z v k 0 r w t t t t t t t t t t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o @ e.e.e.e.O o o O o O $ 7 t t t t t t t t t t t w z ..w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.q.<.{ Z k r w t t t t t t t t t t t t t t t t t h h e.e.e.t h 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o @ e.e.e.e.# o o o o o @ 4 p t t t t t t t t t t w z .w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.q.=.L k r t t t t t t t t t t t t t t t t h h e.e.e.t t 0 E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o # e.e.e.e.# o o o o o @ - t t t t t t t t t t t t z .w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.0.X.M r t t t t t t t t t t t t t t t h h e.e.e.t t r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.# O o O o o o * w t t t t t t t t t t t z ..w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.,.S t w t t t t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o O e.e.e.e.# O o o o o o $ 7 p t t t t t t t t t w k Z W W W E T T E T Y T Y Y Y I I I I I P Y W } ;.9.w.w.w.w.w.w.w.<.n t t t t t t t t t t t t t t h h e.e.e.t u 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o O e.e.e.e.# o o o o o o @ : u t t t t t t t t t t t 0 0 0 0 0 0 0 0 0 0 0 0 r 0 0 0 0 0 r 0 0 0 0 t v Q 1.w.w.w.w.w.w.X.x t u w t t t t w t t t t t u h e.e.e.t u e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o O e.e.e.e.# o o o o o X # * w t t t t t t t t t t t t t t t t t u t t t t t t t t t t t t t t t t t w 0 x [ 9.w.w.w.w.w.W k w u t t t t t t t t t t h h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.R o o O e.e.e.e.# o o o o O O O $ 7 u t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t r h T 6.w.w.w.w.5.C t t t t t t t t t t t t h u e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.# o o o # O O # # ; p t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h / 9.w.w.w.w.] k t t t t t t t t t t u h h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U X o O e.e.e.e.# O O o o # o o # & t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t w c X.w.w.w.w.4.M w t t t t t t t t t t h h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.# o o o o o o o o $ 7 t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t P 5.w.w.w.w.I k t t t t t t t t t t h u e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.# o O o o o o X # @ - t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t w n $.w.w.w.w.} z t t t t t t t t t t u h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.! o o O e.e.e.e.O o o o o o # O O O & q t t t t t t t t t w t t r t t t t w t w t t w t w t t t t t t t t t t t t t u k / q.w.w.w.=.v w t t t t t t t t t u u e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o O e.e.e.e.# o o # o o o o # o # > u w t t t t u p u u u u p p p u u u p u u u u j p p u u t t t t t t t t t t t t Y 7.w.w.w.2.M t t t t t t t t u w h h e.e.e.t u r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.# o o o o # o o o o # * w u t t w K =.4.2.4.4.2.2.4.4.4.4.2.4.4.2.4.4.2.4.2.Q k t t t t t t t t t t t t L 2.w.w.w.7.Z u t t t t t t t w u h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o O e.e.e.e.# O o o # o o o o o o + 4 u t t t I 7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w. .z t t t t t t t t t t t t Z <.w.w.w.9.Z h t t t t t t t u t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o O e.e.e.e.# O o o o o o o o # o # * w t t t I 5.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.} k t t t t t t t t t t t w S <.w.w.w.0.A t w t t t t t t t t h h e.e.e.u h 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o O e.e.e.e.O O o # o o o o o o o o @ 4 p t t Y 6.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.} l t t t t t t t t w u t w K 2.w.w.w.7.Z t t t t t t t t t t h h e.e.e.w t 0 E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.O o o o o o # # o # o o O * w t t M E / / / Q / / / / / Q / / / / / / / / / S k t t t t t t t t t t t t P 5.w.w.w.5.B t t t t t t t t t t h h e.e.e.u t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.! o o O e.e.e.e.# o o o o o o # o o o o o # > t t w w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w t t t t t t t t t t t h Q 0.w.w.w.,.n r t t t t t t t t t h h e.e.e.t h r E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U X o O e.e.e.e.# o o o o o o o o o o o o O $ w t t t t t t t t u w u t t t t t t t t w u t t t t t t t t t t t t t w z X.w.w.w.w.X.z t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o o e.e.e.e.# O o o o o o o o o o o o o & - t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t r S <.w.w.w.w.W k t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o o e.e.e.e.# o O # o # o o o o o o o o o $ 7 p t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t k ] q.w.w.w.7.Z u t t t t t t t t t t h h e.e.e.t h r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o o e.e.e.e.# o o o # o o o o o o o o o o O - w p t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t r L 4.w.w.w.w.$.x t t t t t t t t t t t h u e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o @ e.e.e.e.# o o o o o o o o o o o o o o O @ > y t t t t t t t t t t t t t t t t t t t t t t t t t t t t t r C =.w.w.w.w.0.L u w t t t t t t t t t t h h e.e.e.t h 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o @ e.e.e.e.@ o o o o o o # o o o o o o o o o & 7 u w t t t t t t t t t t t t t t t t t t t t t t t u u w t Z ;.w.w.w.w.w...x w t t t t t t t t t t t h h e.e.e.t t 0 E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o @ e.e.e.e.# o o # o o o o o o o o o o o o o o , 0 u t t t w t w w t r t t t t t t t t w t w t w r 0 0 c / 5.w.w.w.w.w.1.N t t t t t t t t t t t t t h h e.e.e.t t r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.R o o @ e.e.e.e.# # O o o o o o o o o o o o o o o o # ; w t u t t h u h u t u t p u t h t h u u u j k v K } 5.w.w.w.w.w.w.0.L u t t t t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o @ e.e.e.e.# O o o o o # o # o o o o o o o o o o # : l / <.1.1.1.2.2.2.2.2.2.1.1.1.1.1.2.1.1.4.7.q.w.w.w.w.w.w.w.w.0.( h w t t t t t t t t t t t t t h h e.e.e.t u 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o O e.e.e.e.# o o o o o o o o o # o # o o o o # o o O y X.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.6.E a t t t t t t t t t t t t t t t p u e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.# o o o # o o # o o o o o o o o o o o o o 1 _ w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.q.%.C t t t t t t t t t t t t t t t t t p p e.e.e.t h r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.R X o O e.e.e.e.# o o o o o o o o o o o o # o # o o o o o < ) w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.8.$.K k q t t t t t t t t t t t t t t t t t p t e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o O e.e.e.e.# o o o o # o o o o o # o o o o o o # O . < ) w.w.w.w.q.9.8.8.8.8.8.8.8.8.8.8.8.8.8.6.4.=.} P c u 0 w t t t t t t t t t t t t t t t t t t p p e.e.e.t h 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.# O O o o o o o o o o o o o # o o o o o X 1 ) w.w.w.w.o.m k z l l l l l l k l l z l k k r 0 0 t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t t 0 E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.! o o O e.e.e.e.# o o o o o o o # o # o o o o # o o o o o 1 ) w.w.w.w.X.z 0 t t w r t t w t t t t r t w t u t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t t r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.# o O o o o o o o # o o o o o o o o o O O < ) w.w.w.w. .x t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.O o o o o o o o o o o o # o o o o # o o X < ) w.w.w.w.) 7 7 t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t u 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o O e.e.e.e.# o o o o o o # o o o # o o o # o o o O X 1 ) w.w.w.w.) , # 2 t u t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u h e.e.e.t u e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.# o o o o o o o o o # o o o o o o # o o X < ) w.w.w.w.) < o o * q t u t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o O e.e.e.e.# O o o o o o o o o o o o o o o # o o o o 1 ) w.w.w.w.) , X o O $ : w t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h u e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o O e.e.e.e.# O o o o o # o # o o o # o o o o o o # X 1 ) w.w.w.w.) < o o O o O * 5 t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u h h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o O e.e.e.e.O o o # o o o o o o o o o o o o o o o O o < ) w.w.w.w.) < X o o o # o + * 7 u t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.O O o o o o # o # o o o o # o # o o # o X 1 ) w.w.w.w.) < o o o o o o O o + * 7 t h t t t t t t t t t t t t t t t t t t t t t t t t t t t u h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.! o o O e.e.e.e.# O o o o o o # o # o o # o # o o o o o X 1 ) w.w.w.w.) < o o # o o o o o O o O % 5 w t t t t t t t t t t t t t t t t t t t t t t t t t t u u e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U X o O e.e.e.e.O o o o o o o o o o o o o o o o o o o # X < ) w.w.w.w.) < X o o o o # o o O o O o O $ : 7 t u t t t t t t t t t t t t t t t t t t t t t t u u e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o O o e.e.e.e.# # o # o o o o # o o o # o o o o o o # X 1 ) w.w.w.w.) < X o # o o o o o @ o o o o o o o & 1 7 t p p t t t t t t t t t t t t t t t t t t u e.e.e.e.t t r E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.~ o o o e.e.e.e.@ # O o o o # o o o o o o # o o o o # # o 1 ) w.w.w.w.) , X o o o o o o o @ o o @ o o o o # o # & - 7 w t t u t t t t t t t t t t t t t t t e.e.e.e.t t r W 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.q.' $ @ + e.e.e.e.@ # # o o o o o o o o o # o o o o o o # X 2 ) w.w.w.w.) < o o o o o o o o o o o @ o o o o o o o X O X @ = - 5 q t t u p u t t t t t t t j h e.e.e.e.h t t { 0.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.-.2 X @ @ e.e.e.e.# # o # o o # o o o o o o o o o o o # X < ) w.w.w.w.) < o o o # o o o o o o o o o o o o o o O O O O O X O o # $ * - 4 7 7 t t t t t u u e.e.e.e.e.h t k *.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.3.g . o @ e.e.e.e.@ @ o o o o o o o # o o o # o o o o o X 2 ) w.w.w.w.) < o o o o # o o o o o o @ o o o # o o o o o # o o o o o o o o X o o # # * * = - : e.e.e.e.u t r B 2.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.0.~ o # @ e.e.e.e.e.@ # # o o # o o o # o o o o o o o # o < ) w.w.w.w.) , X o o o o o # o o # o o o o o o o o # o o o o o o O O o o o o o o o o o O O o e.e.e.e.e.u t r Q 8.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.:.8 o o O e.e.e.e.e.# o o o o o o o o o o o o o o o o X < ) w.w.w.w.) , X o o o # o o o o o # o o o o o # o o o o o o o o o o o o o o o o o O o # @ e.e.e.e.e.u u t x =.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o O O o e.e.e.e.e.& o o o o # o o o o o o o o o o X < ) w.w.w.w.) < o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o O o o O o o @ e.e.e.e.e.t u t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.>.i . # # e.e.e.e.e.e.# @ o o o @ o # o o o # o o o o < _ w.w.w.w.) < o o o # o o o o o o o o o o # o o o o o o o o o o o o o o # o o o o @ @ $ e.e.e.e.e.h t t x ;.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.q.' & O o # e.e.e.e.e.e.# @ # o o o o # o o o o o o o & D _ _ ` ` D & o o o o o o # o # o # o o o o o o # o # o # o o o o # o o o o o o # @ @ e.e.e.e.e.t u w t { 0.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.J X o @ # e.e.e.e.e.e.# # @ o o # o o o o o # o o o X . X o o o o o o # o # o o o o o o o o o o o o # o o o o @ o o o o # @ @ # e.e.e.e.e.e.u t u 0 L 5.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.3.g X # # # e.e.e.e.e.e.# @ @ o o o o # o o o # o o o o o o o o o o # o o o o o o o o o o # o o # o o o o o o @ o o o o o @ o O # # e.e.e.e.e.e.u u t r M ,.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.-.i X o o o e.e.e.e.e.e.$ @ o o # o o o o # o o o o o o # o o o o # o o o o o o o o # o o o o o o # o o o o o o o o o o @ o @ # e.e.e.e.e.e.t u u w z *.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.#.6 X # # # e.e.e.e.e.e.o # o o o o o o o o # o # o o o o o o o o o o # o o o o o o o # o o # o o o o o # o o # o # o @ @ # e.e.e.e.e.e.p u t r k X.0.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.q.@.3 X O # # e.e.e.e.e.e.e.& # # o o o o o o # o # o o o o o o o o # o o # o o o o o o o o o o o o o o o o o o o o # $ e.e.e.e.e.e.e.u t t r h } 0.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.q.@.6 . O # # # e.e.e.e.e.e.# # o o # o o o o o o o o # o o o # o o o # o o o # o # o o o o # o # o o o o # o @ # # e.e.e.e.e.e.p j t t r k } 0.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.&.9 . o o @ @ e.e.e.e.e.e.e.# # # # O O o o o # o o o o o o o o o o # o o o o o o o o o o o o O # # @ @ + @ e.e.e.e.e.e.e.t j t u w k ..0.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.>.d . o o @ @ e.e.e.e.e.e.e.# # # O O o o o o o o o o # o o o o o o o o # o o # o # o o X o O O @ @ @ @ e.e.e.e.e.e.e.p j t t r x $.q.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.5.D o o o # # # e.e.e.e.e.e.e.# O o o o o o o # o # o # # o o o o o o o o # o o o o o O O o @ @ # e.e.e.e.e.e.e.u h t t t 0 M =.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.7.R & X @ # o # e.e.e.e.e.e.e.o o @ @ # o o o o o o o o o o # o o o o o o # o o o o O O o @ @ e.e.e.e.e.e.e.t u t t t r K 2.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.q.+.8 . o o # @ @ e.e.e.e.e.e.e.# # # o o o o o o o o o o o # o o o # o o o o o o # @ @ e.e.e.e.e.e.e.t j h t t r h Q 7.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.3.b o o o # # @ # e.e.e.e.e.e.e.$ # # o o o o o o o o X o o o # @ o o o # $ # o e.e.e.e.e.e.e.e.h t t t t 0 c o.0.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.0.^ 1 X O O o # # e.e.e.e.e.e.e.e.# # o o o o o o O O o # o o o o o $ # @ e.e.e.e.e.e.e.e.p j h t u w t K <.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.>.b o . o # # # # e.e.e.e.e.e.e.e.$ o $ o o # O O o o o o @ # @ @ e.e.e.e.e.e.e.e.u t u u t t 0 l [ 9.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.9.) 3 . o @ o @ # # e.e.e.e.e.e.e.e.# # @ @ # # o o # # # # e.e.e.e.e.e.e.e.e.u t t t t r t S ,.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.3.D $ X o o # # # # e.e.e.e.e.e.e.e.e.@ # # # # # # e.e.e.e.e.e.e.e.e.u u t t t t 0 x } 9.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.0.+.6 X o O O # # @ e.e.e.e.e.e.e.e.e.e.# # e.e.e.e.e.e.e.e.e.e.t u t t t t w t P 1.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.3.G = . o O # # # @ @ e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.h h h t t t t r v { q.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.q.#.f # . o o o @ @ # # e.e.e.e.e.e.e.e.e.e.e.e.u t u t t t u w 0 l E 4.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.9.` i o o o o o # # o o e.e.e.e.e.e.e.e.p p t u t t t t 0 k L ;.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.6.! 3 X o o # O O O @ # e.e.e.e.t h j t t t t t 0 u Z %.0.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.5.J 1 . o O o o @ @ @ & 7 h j t t t t t r t C X.0.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.<.G < . o o o o o % 7 t t t t t r w C X.9.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.>.F , X o O o $ 7 u t t 0 u C X.8.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.:.F = . o $ 7 t 0 j Z $.0.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.>.H 1 + > k P =.0.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.3.^ ( <.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", +"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e." +}; diff --git a/share/pixmaps/pivx16.png b/share/pixmaps/pivx16.png new file mode 100644 index 0000000000000000000000000000000000000000..ca658e458c3d2d50643d88b6d865f3416151f6e4 GIT binary patch literal 697 zcmV;q0!ICbP)z0K?9@bdris{d8vv}}x22r6cx#hf zOnkw+%{((qXIg`NZqKze=sOLnU$YnT5v=* zT~tJKGAclkjhS6nXEG~5Ix$H?I8{PAPCPY9I50&wFGB#l5?=rS09SNUPE!B_6f$68 zG86+OfuXgytgN`Tp@Jo1rIDPk$grJ}q-0y4pk1Q-{G+1#{QLX-U7-E`pJJP+&BJ${%68%fJNG#(a()3{J2DIUoTR7B( c #3A3149", +", c #3C3549", +"< c #3C334C", +"1 c #3E3453", +"2 c #423A4E", +"3 c #433756", +"4 c #423855", +"5 c #423758", +"6 c #44365D", +"7 c #453A5A", +"8 c #4B4555", +"9 c #4D4558", +"0 c #4D4659", +"q c #4D475A", +"w c #575065", +"e c #5A5263", +"r c #5D5767", +"t c #5C5668", +"y c #524371", +"u c #514072", +"i c #524273", +"p c #544473", +"a c #544477", +"s c #564477", +"d c #594D71", +"f c #574778", +"g c #5A4A79", +"h c #5A4A7A", +"j c #5A4A7B", +"k c #5B4A7B", +"l c #5C4B7C", +"z c #5C4C7C", +"x c #5D4D7C", +"c c #5E5274", +"v c #625B6D", +"b c #625A70", +"n c #60507F", +"m c #686271", +"M c #696473", +"N c #AAFF55", +"B c #5E4D80", +"V c #645484", +"C c #675A83", +"Z c #6C5D88", +"A c #6C5E89", +"S c #6C5E8A", +"D c #71638B", +"F c #71638D", +"G c #73678C", +"H c #7F7B86", +"J c #786B93", +"K c #796B93", +"L c #786A94", +"P c #7A6D94", +"I c #7C6F96", +"U c #7D7095", +"Y c #7C7096", +"T c #7D7197", +"R c #867A9E", +"E c #8C8793", +"W c #918D99", +"Q c #928F9A", +"! c #99959F", +"~ c #8C80A4", +"^ c #968BAB", +"/ c #988EAD", +"( c #9A8FAF", +") c #9894A0", +"_ c #9F99A4", +"` c #9E94B4", +"' c #A39FA9", +"] c #A198B4", +"[ c #A39AB5", +"{ c #A399B6", +"} c #A49AB7", +"| c #A59CB6", +" . c #A69CB8", +".. c #A69DB8", +"X. c #A89EB9", +"o. c #AEACB4", +"O. c #AFADB5", +"+. c #AAA1BB", +"@. c #ABA3BC", +"#. c #AEA5BF", +"$. c #B1AEB6", +"%. c #BAB7BF", +"&. c #80FF80", +"*. c #B1A8C1", +"=. c #B4ADC2", +"-. c #B9B1C7", +";. c #BDBAC3", +":. c #BAB2C8", +">. c #BDB5C9", +",. c #BCB6CA", +"<. c #C0BDC4", +"1. c #C1BBCD", +"2. c #C3BDCD", +"3. c #C3BDCE", +"4. c #C4C4CB", +"5. c #C9C5D3", +"6. c #CDC7D7", +"7. c gray89", +"8. c #E0E0E6", +"9. c #E3E3EA", +"0. c #E6FFE6", +"q. c #EDFFED", +"w. c #FFFFEA", +"e. c #EBE6F0", +"r. c #F2FFF2", +"t. c gray100", +"y. c None", +/* pixels */ +"y. ", +" t.t.8.%.2.e.r.N ", +" 7.o.Q H M w D R / X.,.9. ", +" $.e 3 y i a a u s j L >. ", +" $.8 7 B ~ .. .( V k A :. ", +" $.9 < g F Y K ] @.f S :. ", +" $.q & d } | J z 1.x S :. ", +" $.q * < C I P [ +.f S :. ", +" $.q = . ) =.{ ^ n h S :. ", +" O.0 ; X ! b 6 p z l Z -. ", +" <.v + @ W r # > 4 5 U 5. ", +" t._ 0 o 2 , : - O c #.0. ", +" t.' m @ $ % 1 T *.t. ", +" &.4.E t G ` 6.N ", +" w.;.3.q. ", +" " +}; diff --git a/share/pixmaps/pivx256.png b/share/pixmaps/pivx256.png new file mode 100644 index 0000000000000000000000000000000000000000..2fab918973879b8dbd72c42738b3515e4f013eb8 GIT binary patch literal 14562 zcmb_@^a4=tH zughKnfONTrvZ8_CuN`w-v()vey{5*i(}j?;g@x0Qua%Z=4Gn1#F=Xj_tl>$l4p2PM zH$AoaaAJ>|mWHX>!pSdRzDzpJKew;^^z2jM-lrHs+`WsDqcvhx^)3cHwj|FG)KRwz zk$?VC=*UI>Nk2Qs|JBvN3hWa(!3?k}$WLBPDE#1pDe0r*Zty3J^osS4bWy5u@Bjwp ze)EaqGEH6F!ro#@XmGZ?B1KAz&30mOdl)_97p}M9rr^X2cXQXGUDyqQ1dU<%rQ5{f zIM)-UKTJ4iqY0~tkuov8P}Q$Q5?s@|z6B$SJCPO8n}?gl$KvYhPE#}J7+yt*LTzR9 z!~kX|OToh12wCC=Ij5%+3geXQY~?Mr3U4o?pku_a8|D+dO*vnaotvw(<>T^t_rr4& z?&jd>T)1v*0D(94rUM8`F9sBIX)5XeoXMwBZ=pq$n8I6FPSPKKI{XtkxIdWABamVcbxX#mJv7qc&q`*_Rr^8a)~Fmib@aCdELTzzsFbDtAp0TIf$mHYlUrT=ibs;0Qb2B z9@cCQ!F4d?bHXP6z|ZESf*~->Hq@c`dsN&rtb)+>17VMI`~CThEvxBMnES;G@^|U4 zcY|^oAq7_y5`9s&L1Eei8o?sxGGY(Ut1+Xxx-^W{wA6|Groz}E-ry_S0R#ivy2y=c1*jgN1>{f@uEHlTB&--Jwf zm#xn^Za2DRbR5`lSx?4#3;WLzZ7lE*9#`1nof;uZtffO+H5VOlo-8I)OU`Uz+NvD%9NNL z%gdRPT=F6AhGzl|n=HInB&aMG@%+yh%J|xo9>NU26xUrY^)Wlr`XsN;T2|+hjvOZQ zizw^sno67PT^u-pMOZpQiG-tqKS=5RA;GH^fzJmJhW4WF+xinUr#__{BV;swKri;S~X9qT#pXo;YE z$o`LB!n3t@S{#_cjWo-Hseew1b0QqbbcBiS&V`T(nsawe*p|0y^kPYJu=7RUk`A`~ z(BQJ}y)DB^*)4jwa=O(cWu=hf^_E7kG0BVWD_e_9idTwyk~rRay!rQ3uVLr88D}hj zF&un|{}>~8NWC`#mt&{dV8(_b_e(YFeTZXG4%f6p|(vZ{fWecF{0#3HRfh6J&{*H zAo6Hkuq&OVvHN}EI?MvimPECfS5tDdt|7}`Z5qCwMiic}QK2|X4<90I{1aIAf)wL={sA&mUN*339C zBe_5nyhum75I@;1u!w10TP|t zo7pz#;9{1&zz=i-AX9;sEpST{&@UeR;XQW1JMxSHBIBFw75qDexLp~gE2d$s$cy^W3_+ipGi7% z{%hNnJgaZnAtf?DKN|EK+#^WgrTKm{S-h(6-D>6NCB2DSeGO~iy7YSIeH|RjyKYx3 zsKCl8D}_%y6emkc97-70O*hd>L{!z0^Z*DS7=$CZ=tR8K$<86q?!XMHO7R#|GOqXH zW0ZHNsJ3kVw>#8rhtP3QOc!7Vx*|k>@oH)eFiCq;Xtc1dJ7yM95eZE?Ov8N>}N8+ z`Y4J{6p=;m*qXcY)0-$j!V`6+Sfv^JY8uD9NU_2j4~XJywLXV|qsShZGka+=;lt|f z4>?w%Bv4&%itXnWMMcT_SqJZt0&LYlM{wNENPa6|D(Mz3!y=O6D$LQa3B97;0I^8-6({3t1jbjr% zO60k0!}%}+PUDen42%^F6^$b2`@tt26J<2?C_>aKM&Ot?53x>ZkZ!=SLOpY}HMuKC zYj}=7l>ar1i*7Wpt>02u5Deut`SK6|aw`Tis=I1_`*ddH3q*8c?H)-;e?1@Sg0eQ@SZRhjyo?UP%*BIY-E%VlEt zf^@hXdp6xeMczbSd zr!)s0>gI*O_Voo|CLJ2Nx5x^VfdDJVriMz%j{ZW*LYR}z4{^6)hD>E)AGDNHMoB$G zesST-qPfb-LOkl0WaUT%LGh%|D%9@nes2_7+_fqwJ@5092rZFLN$=`y4UepXutrYm zi#Q%e+p)D!g!MNeJfigV#cxQ#%my0v^wFyjJ!43s#gwV4<*I&Oz;*z zmSv3s52(Nbsy064mght!*QlguYXv3X$Qv&hr~axcf6hE3eM>#;OkW{aQ2JlG zmB+=(-sn^A)&#@Y^sdVV8MInP=7d$;o~^L$AR5=N&M|q~%eX;>PE!fom4m7B%b;=% z$B^1;aCVx#`s6)vwVFb#C<>bcd$Ty^?mQ}USMn7~r)+ynqRI=D(dOft{5iVcoc~&A zZ4^bCUeSlEnU!nZu%~ltD*YZ|S6^$hZ)DFGJ>m8#{du zeq5HDspskSPFW)@d}r@qF+Kamq2SW=&bgfBa!qtmV9v{l_2|!UhHunby3Dxv=Eugz z^F@1eEH%b$qdAsGZDM(7WApnmu16g&{P#**-(butqrNk1uvG6%L>>jlL08V{d<7J( zjFHN@%)C#dqrQ8g-=SWVrB>F6XS?dqORO2`+Z_IVU|x;yw#VkTzgB!3h7-z+T4+pp z`A^a?@CB)uXWHzUFbvu9v+K+PHg6v{U>;k23h`=gEpa-!|FhCh0JezI-n}RO=&)xc z_s?bf%m>4Eaf#l!UnRo>5}SuF#YVX~KP+*iByoPBPI}>o0|rR3fD}(oJm4c45JHsB zyX6Hqr#=GHmF|R`Z~k~9-OIc zBjtq0vTJ^?BS55R*iu*PsDI=BUP4i|U+uD?wr7GpJ`IZP2%9BI!@GAiPLwwK16#`02B9tbCo>ju_k{k zH>r@wuIqr1T%S{_+1+S*j6%b&y9 z8r~DeFB!&Kf8!*w^jSig!2f<@*Anm?s}+}OEAG73$sO4~A%vwI%Y?$lylm(}&`($$ z7f{DTWM4I#!dg;(D)~=e!$nu zo?YgIok2#e@VS1#nxa#~Mv9^vs9}|(KLTmt)`qWNYq^dSeZAP@w^0J1z|!0+H(Ng? za@q8k1gb0mLg(3~G@GBN7Pb`F#K>44uAalD#g00PT1HNF7qqJ?2jMM34^P0l|g9P-Wfw zFTt<-0d;&JNC@HpS_aihZ-~4lg1-Yg&eWmK4+=>C8@dOA|MgzEzsQNj$_ebN09Mve zt$H6T4lGsx!?kjNm9mwAyXZ@B3?9eb4Gq!)lW}P?=70Y8lLV@4AMS32Jt%yjw!WX^ zGfN-<2Eg!35YS*iG4y57OPiU%Uv6RjFi`uzVn-r!a7%d4+q(sb{w#0>ID zYgGSjljC%q;GprDGY=jRlnVLmFc>4q%(UAnIi{VzFERJkleEoTI$@2}@58VdxxnZ^QEK=;AK%yRB0_`vr-!oI}3NFnKq|DlSHX=>)3pB7BDsKb5iyck?{s^wH0usfLrSW4;8ENE|^z_GWTJ`44!99Cw8W@&&sP=uSE=(9X>IXr5gYN?|xF%t((U#BusO?MoDq6d;tJsz(@kb;p&RVpUuPwKQkRY zTul&1Olz&jM%k2U)!H`7e!nGEovU?13G#F|BW^x;=7)Zc``vIu)<=8mlp1a?2-2jk z%g@4aP{A`8@Z~A1;(W9uL}tTsNl|kH3sV`4yYfo~UQ$ShtZFsHMw75e_nfJ6IM(3< zcz_crkV#Wuq;X?NjYEi?}L9`p;{J2*LzTD98XZ0MD*d z5#M&saG%7ue~it8Y=uPnl+m18H74Y`)7MOZnvfhb$aoDBWfkaN^nr!W$Izb9Dn__y ziM`2vH+GQK{ja{raj-q35#bFM1b_gfPT=F=hkCTSpZL}89q)-VHzVrbR~7;<6`G!J zFx*Q_>YQG(`LwBnEnEQdpO3iVF7_9;xjaLSi!Ohkwuj~ zMPGq*m5prC_d?S5?=%Sm#{JM&emEdFgJwSJ#^sZP(319mdFG={LY))*J1-h&;YvDF zX#NhLH{_47fTFZlmShtMD03*jAv>SSVGscUNS;Tqx9B~A=S)Pj{ENv#ph-r(=mUvj z;|bBK;+~I9le5Zn&jB#QA{;yi);Y$#Ge(+$YAn4UD&_b)JrWtXPOfLsA*Y2aXo5uC zA?g%>CnKyy&C||sklHeCMmnj8#n4s_D&XCH@+R*i<`FE@C_D_1<`!9P$JRZ|Yq6Ui zj6njANffqB9)xS3*4(pR@{oMr ze=he%wqS8WpOoyC-3hQqoGBnn>3(|5Sq=L`mT+gu6wp!OLB1Dz3Z5Bi_pbbc;FH*I z;AAIM5IixMmm>t>9Ov?0dN#+!E6?kzO&p7oV^jfWr?{BuXuV#S1p(3>-JSqk%Kur$ zo4K9ezRLcf9u=vkJUSbv0M-9|Ix`QNSMdiyfCNy1Tc5{V{8pn12w+fIILoaqy_=K< z5`gq2&Kd>AYh=KA5iVK8o=O}IhH+>C(T9mbU;XQq83D6ag!8vMm$X3uKS5~3-T#>o zTfWZS1?t9oJKxh@Y~)E|iV(~IFu-gJc`t>3U;&)WX2Z`h`m7LKT+S$G|EQxCG>hzgzo;604+%wA_f6H^$0^ zzaZph$IM!8ZUCq%OhDiZ*_dfSV?f<}*54ykcI#s^9^q<=#fBZ$b;N7CJ10$pSQ&An zI2`NW`=IoMppl0T=Z@WidVo9Hf~U%)_a&CT7#Rqj0fI|VS=n?u1R#xvBegYPBHK+I z1OTm`wC|dJ!Vb%SYn?nm=7YykcBS8nR0k)0qOpG(+M|v?g3XwGmdy15i}DWq!4^== z@<`XzuUb$eZ_X+E(Bpz)3yZdgbNaeM_zoZ0PYB1v3m(leKcdxUl;g_==9+ilk;P>f z#EN&bFzG_GhTrKT>ZA5gp{=KnfA4q>rd!^vkr%P`N?{K5>ydA)Lqq< zq;CX)7XKs3RsWZ)+;`Cvh!cZz!Bd!4hZ_aPwmtsqihk3*{-*sV>k4JRZf%ts8<%H7 z_V{is`Jl_nN#K!%zX;Xu6t zSy(g5HiMmz#4T6+3oO}3Y`%VIjcQ()Mzuvd$?Tr?>N@vC*XZ3^sv8~zC%OQhpaTp! zzM0)XI5txxnst911iBwx>rj;5FYbKs62c=LxrYq_Z8e%G_CLXq&Y zS9W{El?P2epKz5%<9^Ql*fyE_D27`9Quvc*89A~^kdx7bFNZs)(;rCHfai4wio9ir zmt=_*gZQyX_}aT_%Z9I1#0Vp=Qq9oksJFk{?N|y5C$n7_TUdPdq>0o>^40|NPy~%` zX-(c_JYu&33?Vj0w@v|ngznIB1^|2%PIR+rxS%ym*E8tf*VePnj0ie3DPIV}%Z2O^ zyz<{%xHt(L7p;k5;p>@T+LzR&)oX)Wb;3v+)6`GPi5c!p|Jn5yOX;S8ta1bA$iC*7 zm=s72rx`Iv9CWXFR9O_ZR>1wES+fC=Le*R^@nCMx`f1j3ph?vo@-WyFY!3Il(qVcy`pKdt&1RLE z9-_1F&o-cT2Y@rs($p|T^~R?6?(?6-iT@@CdxF@04A`tU$vsSTXL#nez7|@S!tl^f zaJq3t`t93MURo1Ns8=pir0SjM8$j5mOX}=515UcnW9DA}#}6NnENdc6a;h6#vZ#e? zYc#UATYSdvh+)DU$P{+5aC8=zAN)Z)>iCME{BGrD1-Q8=qeGu+~9nf7CA&>ikbL2z$~3|81nP%RnDY&j_SH95x+f1p;CF$R0d(BM3*&gK8(9LyBwD4!ciCJJKH!3YCS1cG@DJD3X2Sm) z=?ipxCxzfCFTK*wT2SPK9P0 zI>e6^-m*crbk&|wG$j zuaGe8*=}Jb>K+#U-{DaQa*%-u$3vr4o!@~1Syd~02UquSFUxl)sD%nb0H})ak_=W* z)bf+#0wRgSLZ$m(xH6JsELPa|_mHsDGks>7h0^Sju5ci9bnMmKcN3-L%rKR6Pl^iJ=W`x>K3p##Cht}I)iHI>KUe6CBy5k~|M1fXfZ}(il>Loo;Is5P4v2*g^KD>n ztB$}4?*sczP^-~Ye>`$yKdR#Xj`Y8~*JPB=GyBMoNtRCmcXAMPZ{yKF*d>}xp!a>W zwUW$PzQ5>&u-)@$Mwtm%sqIv!6m#JWaVEqo5A1qziWF8u!;Jl$c`Sa1_P1LXyROS<*GEVKcOJ zr-?4D+P0%T`dnOZtA83SqGF1CG^~A{pWytHCb)Uz^Z=>3Ej58kwrj-!Kh<-4uF&(x zd74e2Toaq5V-q{#aZ$^6+ZKDquNLm^$0%XDCS0_f8lc;!h*+n%@Bdn)O@se4o~YHs zdVGyuA2ON)K~j=e$c8LKzURIi#$TgxS*@||*)1r8La%a;{SQcHL&KLnie(i5%d>2` z_CL9jFsrkX?k|baa^E=1P+XNh#6U}dMZ*n8G%+oq@vKoY9)=vvnYKBImK32CyG$I0 z)c&n^X(~bUIY8^uiSQ?8yM6vXXo4b}9m*Y^ihM0X{27m;*7!Rk%}?q;hJY}|c?MWq zJ07h|;|o`O(JM<@qBSnY+(M#Yv_eTQRpwwT`rdHl9CPY&z`>K>eV$k+a&-=vER*ac zZilPc=|Wbw-UmpTWxhNl14M z@}QS*5ZD$ZW|>;PR5^JiBO|36S!XQ#z%OT^o4!A2(nU+-+XEz()qRuCTfjcpYZ^Onl%xT=QY$kdF#&>7+d~^7r#c>FSEjS*J=Co6?N21d(ihtSLtOaB?;o*b62d{v?Ay<< zpBoHdYrZpoZwER51*lx}8LOPLhxG=#VPSe4q~(846{z{gxpQ-=d#}05kN);wT7EXV z=$k_i39c-EFLgd03k~JctY*ghY`=`!;cE4~a&3Rmkw;@yPN|dxQ4nghGBaeWrXtcdogL;GYbaJ2{(nR zxHb?pfbhFg$WKBf3&DQGl2qL^b!hqa35;XYVHKi{UyqGh(4vo9qu8uM?AE&rgcYJa zL6;w8Vyqy409ir$xT<e`T;~zux1B^HTDqCW9z`gQ7;ZVJecm3}~ z=C#Tx-z|S*==!QPGO*7&uojJ1Hu!jX<89RX?r$G=XKGLh9rli9qRq={l6t0y@cQ+1($NzN*&?GF+`6g+g7_{~9FRkeNS+11Q8X1}9F4~J{NBYVuAXWH9PUbpM2wNRGL9NWS?5J*yN zKW4u(V_=G<5%EDKjGGJ(v*F8204cddu>(Qjf~#^Eu}|lt;h!$!B|_d{SmSaxbC=KK zGx~?D-|7kvA%gGkcJnQrZB`yOBJPknZ0e`=aM+9Q&rD>%ptjj{Z1LC-4FhTTllz^w z+2ph&bIaoq5Xge_HQq$ro*ty(x>34u@!Bj_kSp~G`1Q+cX)ZuDO97E1<@$U0qF7%0 z**_D&kI1`9*nOET>!8zx1KW^9LyhM?rc+k+umQfj%jRdwa?Di?y0eHc4i(T(+M^JXDdrw}j5APA0wHPgL zbHyiid)G@YN=!ZdbBk4`U-#`7HUd3UNntx_@^VUodnnbD2>dvmX@+{^BZ+_|{btP1 zcnA73`#EWG?2m-=rAY--=C@bUTOLoE_)lLYtF8U~QrnDHkLP*sHgNP%B;*N6n=?JA z^$XKyqtG7J;J#Gs09-tAa^sn?!?ZA&8=NEdZ|}q4ks|W(CCST+=x2{OPtn9Z4K{v9 z?~4qqcbcvp&Kr@*&c^C7x1>dXf~&9`iU%@^4&1y9R&4^0d>_+;O(l1~*k4x(l|D4d z^F_cZPLwZ(IvSjNg5u%c@RF7Ao->j;qSL2#v5u^D1g3IP7T;cIrnAPzjkEKkDyS5W zby8YJl)8AZNWHs;HpH5kGFZ>IHZN3Gb2L_thJQG^{yHGX zD{`8#;Urc(r1v}&+9SU}3@+~yl;mb1A?jx^k+fOxzbK3ScWKrBW`q3a(Hxbu6~yf$ zHNPOITgOgwFvq3Al?UbL&a|T>iu@zd4`(lp&p^^rw~Qgx=-vjO`24@i8|d3j!@rN>i`aJl1{mr_HS`Xc!t3cZMS<>=xDrlA6D~ zt#FL(@T19gLFP)ys-=A3n=_-E?GwkxM^*E5FMT9N$%uwX&K>F4ntKyMc>TcqD$?GE zYQ|gz9?$s=BrUWm+M*p%$#q8T=#B4amV0Gxaf_`<9$4>q%2ca_40rHOrZ>zkwr5#M zwRTEZ;zI=mz97fEt%lA6KQm!J43SytKSx1>5mgnt2x!jXph}f!=tAR<`^rKUsoH`Q zgpdKRTfs<3<};$xMAx@@9oB1I6nHT{XIU0DL<*YCEr&zIu^~ds8@uHW*Je(ff(i_4 z15?o_d!itcZJFKva|N{ z(VtyF98xfoU6EGl=1_ebd!|ewtFt4LIH+?HT*fc^gR{Gj%Cb&Uh$8;hNJLP9Z_m#E z7Sqh`ET^Q|rc>BDxuHEtv{mtDfn*o%@>p_N&C9;eo|y%M(~`r}4cICILaYj!KrxKa_8Oa+xG0|{a9{z3|Qh8ASWx)fs-Z>fD{pgbmnq$I# zAYhXePhD5)cQt+e_gS&^!q8DL2M#+gCoW3_q++F$!n>v3JmQqJa&5pW^p)D9?dTwR zezLh>NcVk?3sr6~kx=uY3BCJ}>0=jH;k8pKr0JrGMvcJuXs_RBUOPl%`C-E0HEbp} zpf39o7mT(g4)5BJiVpv3$|>x>O@!xIgaF9fph}&0)`Dkp{Nr7oVXM8uF%cde1t*lkkIrwWq2uX`+SoHfauvzUV54bbsu~! z@yY(iY|IN=gLZ3=GH}au<>t5vocYj`j^)p6^208_W*l4Mc0#aQaW%if(+=LZ?G^;Q zk)RScaY||mV^M5%ip$C`*b;hM=H>T4#}*|o%OJSt1ZpawtmOUr8WaBMqck`*P26jJ zDW+@c!ljMyw1W?^Z6{e@^z2sVZVQo)J0xmbRJ7x0`M>8Hw0LcB*#&YT_l*v{jbF72 z{bUd@eIuD2P}M`ba;e{}B`5W5^tL1Uad+5{RT`!1w6A1%B!`Z5EdV5Jc_r{Grm{;U zC3QJjtawBj{@|)6bDSlU{;7Lu-R{>zo_1xsdqmp`ObIM9EB)st{6E5b{gU6|h7lo% z{_viX&mpp&u0!jg0_uwfF^4$JNfCN9u##+WR=?x7zns$2yDCJ4qF9l!U93W{#3_hS zc%ZEtWXBBelYYD1cD`5r0XDSb6Tl*EG3m?IY^v2$tauQ;^n z`*gS^^sw;NVQY{&>jDE3b3pSO3j49)0~k9j?e!2j;u0mo3JqD}2$XXJfd>Qi7VzGc zeQXiV`Uq}K6bW&_bSdzEx2#~ah=bgMdk@{NJZg$f7iAmK=#6)&1~}kQB_=_tNP{Y> z<`Arfd|}EitRnM6oCqYGZis;K`7g7fcBNKEMd-2SOu@T&sC(5Hcn5*g`H@+7SXp`J zlh1C32P+}sD!J1gR8NJ6OT-o_a>g59ty;UH-~F`gO4C$Hh|9MNe65%NVf@J-r}QOZ zX>Nwu+av9M^?x|G8^q%Nt<8khqFa1c?7fqoUDuQGm0hI!P&ixUoaH#B`Cf3CNPyMk zv#e!Hr6SMwW*=OP4ZC&5)~|<41Q?Sl_#W+5w2r>(xtt$Y?YcDl%|s_3=o*J@@YC@@ zIWJxt?{U~-y(Z^k6SkN_Cf0EHNs$=#-*ZF}*_!~Zq=(2bOF^M zF7shJ`TUV_BBFFvbY(?;xyX;}HWA4hKKfh5x63q5L0k0$a+nSy&ibgCkL~qYgycf# z7|(-pK|CZAglPsxRBfRnZ}Ak?=qvmbP95=L3x_$5ZKV=l$L0na!rFUbhz*v^=AW=+ zijHcbFe=Uv4gVxx`|$79My{T^ z!={q8jeND&9J@GSQQ&0TX@;i2Gv*<*3!4KwCG?l>BaL%it@tNOY$2N#hpH7$e?P*m z8?0$_MtgIv0u24Y%YoA3mlBzMI{K2&H&)vj z?g!U~YEhw6Jckzj88B zFykM6of2b^P#^CKzRRD$FWOg>UMIDWzHG*e4DFA9mU+&oDe2@&@J}^?HV$S`7`kZ0`<LhleB(;sWt!A4m_$Bz52po z**b-_T%VY(c+ikD;(EiP3)?VAnZO}K*4hN_oKWubbpK%xcK-E|jQSpFO4M>u_FG;- z0c&W%8Um{KgjG0aIPqW^lrW{*je@hfGralASt$BRaXXCIUMl3VS026E>)^yF%jbsO z_8cr*3k-Q@I_98?gRN zGjA$yvhj{jlbXSFvX*auNzLu!Kl;9SzOni7o54-5{cebo!GmKbDf%hFE4tl9A#a~8 zAsgpE|BjRWD9MzIT)9yne>|J|G#kO*-@=L~jx}pKTxkXmZ#WW)ah%)WuKj0vJkJjT9^xMcv!@l}f5oSJCi(HnXom)?ruux-G~ z4|&8=#4c?5gLSUdMbW=Yd&CIKiC|_)kCgt_)3`b(N)=6Mb3A^$#>*gYb7rC)Isu<` zcR)S$MOPy;SG;BIIJ`l4^aQw5Y#M%-6Ed_SwqQ$revjIivioG*LRJpK)%2XrX^#Uw zUzAQ{2AS2Sp`z)6og`d?rYiGe1X^Y0A9N;e`GWgohBoV^;h#1gH9p3c2!a)fHlL|+ zu%+fc^nvYFH*er8?-we1!{HKtS<9t_sP_%)-xz< z_lG}*AhECR50aNWlG;D4tdjQrP;Yiv%;BJv*01-C?%+}Pw!evWIJui-fp$?f-@9t! zmaZVDyRw@@`!a>2MWnC(upLm7`C+oSmOeTK_v;xAT1f{+ap#H#Dhfj^Jn&$^`9A#-S*bQY!enP*Rpcv6ch*0eQ~D>;pq`Jy?&fzev2lsKE;9u9iABo=-q5ow5z@) z<@=)e#?xr=dE@ALe8xY=lq3TtJYzOJ-{lA1>QoCn%~+abcr!#`$$VWRG6NhS9h}GC zuHp+tIo_S1VRq*gxjyPL_#66joSn^sg$(&+<<>_ZY$E39IRLbK(wX7YJio% ztR0Fu8BLx)Vlx?=h8JjAY|=?7CqR*sjTIJJoIu`dC4(Jir}+#PRm(uaXK1BJUdbNg zP5@MC^pR!Z(;Z-09hM1Mp?7Uqm5kB5RL|=)l>V5oVqOF&YF-oHi?Ut*WynzI*(y)A z?*mb%k4OU{Fh{?N-8vXh&fne7y)fs5y#IvJcB6QSl>Ec(T@i zT*GhWhRMd1iQ_Fvv4j1L+F9}&{tDjsP*RzH73|#?BB+)>SxZgwBPVMU5N9xS>cKr@ zL1@_6cYM>!?;3f9%UAiUo}hA?Wk`wa^0S6|8x7uqQf};XqTOVyvKw8?BAtwg64ywa zR9<$%Ts-IDSAFTFV;?n?^f7hxFdHrB5KonsvB@IEgfV>^<}M1pL~R{7!iFmoG!-}T zPM(J%<&qd8RPX^GrXg8;3cbM%7Uke*$Hhtf`4Ou0zq|g(9iq94sS9YlJ>4+xE&>`V L+RD{RR$>1GuU+2~ literal 0 HcmV?d00001 diff --git a/share/pixmaps/pivx256.xpm b/share/pixmaps/pivx256.xpm new file mode 100644 index 0000000..74f842d --- /dev/null +++ b/share/pixmaps/pivx256.xpm @@ -0,0 +1,397 @@ +/* XPM */ +static char *bitcoin256[] = { +/* columns rows colors chars-per-pixel */ +"256 256 135 2 ", +" c #2F263C", +". c #30263D", +"X c #31293F", +"o c #372F44", +"O c #382F44", +"+ c #392F48", +"@ c #373044", +"# c #383045", +"$ c #373048", +"% c #3B324A", +"& c #3F384C", +"* c #3F3651", +"= c #41394E", +"- c #413653", +"; c #433A55", +": c #453A5A", +"> c #483C5E", +", c #4B3E62", +"< c #4E3E6B", +"1 c #474055", +"2 c #4A4256", +"3 c #4E475A", +"4 c #4F485B", +"5 c #524A5D", +"6 c #4D4065", +"7 c #4F4169", +"8 c #554E61", +"9 c #51446C", +"0 c #575062", +"q c #5B5466", +"w c #5E5768", +"e c #5F596A", +"r c #554576", +"t c #564874", +"y c #584976", +"u c #574678", +"i c #584779", +"p c #5C4C7C", +"a c #5F507F", +"s c #625B6D", +"d c #604F7F", +"f c #655E70", +"g c #60507F", +"h c #676171", +"j c #696373", +"k c #6E6877", +"l c #6E6879", +"z c #76707E", +"x c #5F4F80", +"c c #5F5080", +"v c #604F81", +"b c #635582", +"n c #675885", +"m c #685A87", +"M c #6A5B88", +"N c #6F618B", +"B c #72648E", +"V c #777181", +"C c #7B7584", +"Z c #7E7987", +"A c #746690", +"S c #766991", +"D c #7B6E95", +"F c #7D7097", +"G c #7E7299", +"H c #827D8A", +"J c #847C91", +"K c #82759A", +"L c #867A9E", +"P c #897EA0", +"I c #86818F", +"U c #878390", +"Y c #8B8693", +"T c #8D8895", +"R c #948F9B", +"E c #97949E", +"W c #98949E", +"Q c #8D82A3", +"! c #9186A6", +"~ c #938AA6", +"^ c #958AAA", +"/ c #988FAC", +"( c #9995A0", +") c #9D99A4", +"_ c #9B92AF", +"` c #9E95B1", +"' c #A19DA8", +"] c #A197B3", +"[ c #A49BB5", +"{ c #A69EB8", +"} c #A5A1AC", +"| c #ABA7B1", +" . c #ADA9B3", +".. c #ACA4BC", +"X. c #B2AEB7", +"o. c #B6B2BB", +"O. c #B9B6BE", +"+. c #B3ACC2", +"@. c #B7B1C6", +"#. c #B9B2C7", +"$. c #BDBAC2", +"%. c #BBB5C9", +"&. c #BEB8CB", +"*. c #C1BEC5", +"=. c #C2BCCE", +"-. c #C4BFD0", +";. c #C3C0C7", +":. c #C5C2C9", +">. c #CAC7CE", +",. c #CAC8CE", +"<. c #C6C1D1", +"1. c #CAC5D4", +"2. c #CECAD4", +"3. c #CEC9D8", +"4. c #D1CED3", +"5. c #D2CEDB", +"6. c #D3D1D7", +"7. c #D6D2DC", +"8. c #D8D6DB", +"9. c #DAD9DD", +"0. c #D7D3E0", +"q. c #DAD6E1", +"w. c #DCD9E3", +"e. c #E2DFE8", +"r. c #E3E2E6", +"t. c #E4E2EA", +"y. c #E8E6ED", +"u. c #EBE9EE", +"i. c #EEECF1", +"p. c #F0EFF2", +"a. c #F2F1F5", +"s. c #F7F6F8", +"d. c #F8F7F9", +"f. c gray100", +"g. c None", +/* pixels */ +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.r.r.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.u.2.} H q = y A Q ..3.u.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.p.6. .I s = o . . X o t i u u i v S ^ +.5.i.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.a.9.o.T f 2 o X o @ o o o o t p p p p i i u r u n D / #.0.a.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.r.$.R k 4 # X . o o o @ o o o o o o o 9 p p p p p p p p p p p u u i M K ` &.e.a.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.y.:.' V 8 % X X o o o o o o o o @ o o o o o o o t a p p p p p p p p p p p p p y i u u p B L ..<.t.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.u.,.} Z q = o X @ @ @ o o o o o o o o o o o o o o o o o 9 p p p p p p p p p p p p p p p p p p i y i r u g B Q ..3.y.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.p.6. .I s ; @ . . X o o o o o @ o o o o o o o o o o o o o o o o o o o t p p p p p p p p p p p p p p p p p p p p p p p i i u u i b S ^ +.5.u.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.a.9.o.T h 2 o X X # @ o @ @ o o o o o o o o o o o o o o o o o o o o @ o o o t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u u i n D / #.0.p.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.s.w.O.E k 3 # . X o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o @ @ t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i i u p M G ] &.w.a.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.r.:.) z 5 & X X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ o # 9 d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u u u p N L [ <.e.s.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.u.>.} C 0 & o X o o @ @ o o o o o o o o o o o o o o o @ o o @ o o o o o o o o o o o @ o o o o o o # # + y v d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p y u u u g B P ..1.y.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.p.6.| H s = o X X o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o @ o o o o o @ @ # # + # # O # # # t p p p p v v v v p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i p i u u i v S ! +.5.p.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.a.8.o.T h 2 o X X o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o @ @ @ @ O # # # # # # # # + g.g.g.g.g.g.g.g.g.g.g.g.p p p p p v v v a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u u i n D / #.0.p.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.s.w.$.R k 3 # X X o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ O o @ @ o o o o O # # + # # O # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p c v c v p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u u p M K ` =.w.a.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.r.:.) z 5 % X X X o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o O o @ @ o o # # + + # # O O $ + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p d v c c x p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i p p i i u u p M L [ <.e.s.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.y.>.} C q & o X X @ o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o O # # + # # @ # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p v v c p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i i u u i p B P ..1.y.d.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.u.4.| H s = o . . X o o o o o o o o o @ o o o o o @ o o o o o o O o o o o o o # # @ @ O # + # # # @ # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p x c v v c p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i i u u v S ! +.5.u.d.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.$.Y f 1 @ X X o o @ o @ o o o o o o o o o o o o o o o o o o o o o o o o @ o O # # + + @ @ # @ % g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x p p p p c v x x p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i y u i b D / %.a.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.f X o o o o o o o o o o o o o o o o o o o o o @ @ o o o O o o @ O # # + # # O # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p v v v v p p p p p p p p p p p p p p p p p p p p p p p p p p p p i p p i u b w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o o o o o o o o o o o o o o o o o o o @ @ o o # # + # # # # $ g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p v v v p x p p p p p p p p p p p p p p p p p p p p p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o o o o o @ o o o o # @ @ o o o o # + % # # @ # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p v x x x p p p p p p p p p p p p p p p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o o o o o @ # o @ o # # + o O o + # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p g g a v v v v p p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x p p p v v g p p p p p p p p p p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o o o O # + + # # O # + # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p v v v x x p p p p p p p p p p p x x b x p p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p x p v v v p x p p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o o O o O # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x p p p p c v c p a p p p p p p p p p p p p p p p p p p p p p p p p v v v p p a p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p i p p v v v v p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g g g p p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p c x x v x p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g g g g a p a x p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O $ O g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p a p g g x x p p p p p p p p p p p p p p p p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p x x x p p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x y p a p v v v v p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p x v v v p p p a p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o o g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p c c v v g p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p d v g g p p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p v v v v x p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p v v v d p y p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o $ O g.g.g.g.g.g.g.g.g.g.g.g.g.g.# + # o o > v v x p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p x x v v v p p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o o g.g.g.g.g.g.g.g.+ # # # # + # # # o o ; i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p d g v v c p p p p g.g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ @ o o o # g.g.g.g.g.g.g.# # # # # o o o o o o o * t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p x v c g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# # @ o o o o o o o o o O t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O o O g.g.g.g.g.g.g.# # @ o o o o o @ o o o O 9 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # @ @ o o o o o o O o o 6 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o O O o g.g.g.g.g.g.g.O # @ o o o o o o o o o o , p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # @ o o O O g.g.g.g.g.g.g.# O @ o o o o o o o o o o ; y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p a y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O O O g.g.g.g.g.g.g.O # @ o o o o o o o o o X * y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O O O g.g.g.g.g.g.g.# @ @ o o o o @ o o o o @ # t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# @ O @ @ @ @ @ @ X O O O @ 9 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o O o $ O g.g.g.g.g.g.g.# # @ @ @ @ @ @ O O X @ O @ 3 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o @ o o O g.g.g.g.g.g.g.O O @ @ @ O O @ O O @ @ o o : p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p a p p p p p p p a p p p a p p p p p p p a p p p p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.O O O @ X O O O O O @ @ o o - y p p p p p p p p p p p p p p p p p p p p p p p p p p p p i i i y u i u u i i i i i i u u u i y i i i i i i i u u u u i i i i i i y i i i i i i i i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # # @ o o o o o o o o o o O t p p p p p p p p p p p p p p p p p p p p p p p p p p p i M F F F G G F F F F F F F F F F G F F F F F F F F F F F G F F F F F F F G F F F F F F D N b p u u u i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.O # # @ o o o O o o o o o o o 7 p p p p p p p p p p p p p p p p p p p p p p p p p p p u _ d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.d.i.e.1...! B p u u y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.O O O o o o o o o o o o o o o > d p p p p p p p p p p p p p p p p p p p p p p p p p p u _ d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.w.+.L v u i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.O O O o o o o o o o o o o o o - p p p p p p p p p p p p p p p p p p p p p p p p p p p u ` d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.r...B u u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# # @ o o o o o o o o o o o o % y p p p p p p p p p p p p p p p p y p p p p p p p p p r _ d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.a.&.S u t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o o g.g.g.g.g.g.g.# # @ o o o o o o o o o o o o o t p p p p p p p p p p p p p p p p d p p p p p p p p p r ` d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.+.M t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o + O g.g.g.g.g.g.g.o # @ o o @ o o o o o o o o o o 6 p p p p p p p p p p p p p p p p p p p p p p p p p p r _ d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.y.~ i y p p p p p p p p p p p p p p p p p w p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# @ @ o o o o o o o o o o o o o - p p p p p p p p p p p p p p p p p p p p p p p p p p r _ d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.%.b y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o o g.g.g.g.g.g.g.# @ O @ @ o o o o o o o o o o o = i p p p p p p p p p p p p p p p p p p p p p p p p p u ` d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.q.A u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o $ O g.g.g.g.g.g.g.O # O o o o o o o o o o o o o o o 9 p p p p p p p p p p p p y d p p p p p p p p p p p u ` d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.y.D u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # O o o o o o o o o o o o o o o > p p p p p p p p p p p p p p p p p p p p p p p p p u L <.1.1.1.1.1.1.<.-.:.:.-.=.<.<.=.%.%.%.%.#.#.#.%.#.+.+.+.+.+.+.+.+.+.+.+.+.+...+.+.=.5.e.a.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.u.G r p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o o g.g.g.g.g.g.g.# @ O @ o o o o o o o o o o o o o = p p p p p p p p p p p p p p p p p p p p p p p p p x y i i u i u i i u u y t u u u u u u u r u u u r u r r r u u r r r r r r r r r r r u u i p M K ..5.s.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.y.S u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o = g.g.g.g.g.g.g.@ @ O @ X @ @ @ o o o o o o o o O O i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i p p p p p p p p p p p p p p p p y y u i A [ w.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.w.M u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p x p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o O o $ X g.g.g.g.g.g.g.# O O @ O @ @ O o o o o o o o o O o , p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u b / r.f.f.f.f.f.f.f.f.f.f.f.f.f.f.1.y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x x p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o @ o o O g.g.g.g.g.g.g.@ # @ O O O O O o o o o o o o o O o - d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p u n +.d.f.f.f.f.f.f.f.f.f.f.f.f.d.] u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.@ # O @ O O O O o o o o o o o o o o O t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u P u.f.f.f.f.f.f.f.f.f.f.f.f.p.A u p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p x p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# @ @ O @ @ @ O o o o o o o o o o o o 6 d p p p p p p p p p p p p p p p p y d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p u S e.f.f.f.f.f.f.f.f.f.f.f.d.<.u p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.O # @ O @ @ @ X o o o o o o o o o o o : p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p u B r.f.f.f.f.f.f.f.f.f.f.f.d.L u p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o # g.g.g.g.g.g.g.@ @ @ O O O X @ O o o o o o o o o o o O i p p p p p y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i D p.f.f.f.f.f.f.f.f.f.f.f.3.i p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.@ @ @ O O O O @ o o o o o o o o o o o o 6 p p p p p d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i ^ f.f.f.f.f.f.f.f.f.f.f.d.K u p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.@ # @ @ @ @ @ @ o o o o O o o o o o o o - p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p =.f.f.f.f.f.f.f.f.f.f.f.%.u p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.# # O @ @ O @ @ o o o o o o o o o o o o # t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i B p.f.f.f.f.f.f.f.f.f.f.u.M i p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O O O g.g.g.g.g.g.g.@ O O @ @ O O O o o o o o o o o o o o o o > p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i +.f.f.f.f.f.f.f.f.f.f.d.^ u p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O O O g.g.g.g.g.g.g.O O O @ @ X O O o o o o o o o o o o o o o = p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i S a.f.f.f.f.f.f.f.f.f.f.=.u p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o O O g.g.g.g.g.g.g.# # # @ o o o o o o o o o o o o o o o o o o 9 d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p 1.f.f.f.f.f.f.f.f.f.f.t.b i p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o O O g.g.g.g.g.g.g.O # @ @ o o o o o o o o O o o o o o o o o o - p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p y ^ f.f.f.f.f.f.f.f.f.f.d.F i p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o O O O g.g.g.g.g.g.g.O O O o o o o o o o o o o o o o o o o o o o # t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p B p.f.f.f.f.f.f.f.f.f.d._ u p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o O O O O g.g.g.g.g.g.g.O O O o o O o o O o o o o @ o o o o o o o o o > p p p p p p p p p p p d y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p v 7.f.f.f.f.f.f.f.f.f.d.+.u p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # O o o o o o o o o o o O o o o o o o o o o % i p p p p p p p p p p p p p y p y p i p p y p i p p p p p p i p p y p i p p p p p p i p p y p i p p p p i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i +.f.f.f.f.f.f.f.f.f.d.3.i p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # O o @ o o o o o o o o o o o o o o o o o O O 6 p p p p p p p p p p p p a c c c x v p p p c x v p p p p x c p p p c x v p p p p x c p p p c x g p p p g p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p ` f.f.f.f.f.f.f.f.f.f.w.p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.O O O @ o o o o o o o o o o o o o o o o o o o o - p p p p p p p p p p p u ..w.t.e.r.t.t.t.e.e.t.t.t.e.r.e.r.t.t.t.e.e.t.t.t.e.r.e.r.t.t.t.e.e.t.r.r.e.r.e.r.y.F i p p p p p p p p p p p p p p p p p p p p p p p p p p Q f.f.f.f.f.f.f.f.f.f.y.n p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.O O O @ o O o o o o @ o o o o o o o @ o o o o o O 9 p p p p p p p p p p u =.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.P u p p p p p p p p p p p p p p p p p p p p p p p p p p K f.f.f.f.f.f.f.f.f.f.p.M i p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# O O @ @ @ @ o o o o o o o o o o o o o o o o o o - p p p p p p p p p p y =.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.P u p p p p p p p p p p p p p p p p p p p p p p p p p p S d.f.f.f.f.f.f.f.f.f.a.B i p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o $ O g.g.g.g.g.g.g.# # O @ @ @ @ @ o o O o o o o o o o o o o o o o o o 9 p p p p p p p p p u =.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.P u p p p p p p p p p p p p p p p p p p p p p p p p p y S a.f.f.f.f.f.f.f.f.f.a.A y p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o O O g.g.g.g.g.g.g.O @ O @ X O O @ o o o o o o o o o o o o o o o o O o ; p p p p p p p p p u &.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.P u p p p p p p p p p p p p p p p p p p p p p p p p p i A d.f.f.f.f.f.f.f.f.f.a.A p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.# # # @ O O @ @ o o o o o o o @ o o o o o o o o O O O 9 p p p p p p p p t &.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.P i p p p p p p p p p p p p p p p p p p p p p p p p p p A d.f.f.f.f.f.f.f.f.f.a.A i p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # O @ O X @ @ o @ o o o o o o o o o o o o o o o o o ; p p p p p p p p u =.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.P u p p p p p p p p p p p p p p p p p p p p p p p p p p G d.f.f.f.f.f.f.f.f.f.p.N p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o # g.g.g.g.g.g.g.O O O @ O @ @ @ o o o o o o o o o o o o o O o o o o o o 7 p p p p p p p u =.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.P u y p p p p p p p p p p p p p p p p p p p p p p p p y P f.f.f.f.f.f.f.f.f.f.y.M i p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# @ O @ O O O @ o o o o o o o o o o o o o o o o o o @ X - p p p p p p p u ..e.y.y.t.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.t.y.y.y.y.y.y.y.y.y.y.y.y.y.L i p p p p p p p p p p p p p p p p p p p p p p p p p i / f.f.f.f.f.f.f.f.f.f.e.v p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o # g.g.g.g.g.g.g.@ # O @ O O O O o o o O o o o o o o o o o o o o o @ @ o o 7 p p p p p p p g d v v p g g g p v v p v a a p g g p g g p g p v a a g p g a a p g g p g g p g a p p p p p p p p p p p p p p p p p p p p p p p p p p p p i ..f.f.f.f.f.f.f.f.f.f.5.i p p p p p p p p y p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o @ O g.g.g.g.g.g.g.# @ @ O @ @ @ O o o o o o o o o o o o o o o O o o o o o o * y p p p p p p p p p y p p p p p p y p y p p i p p y p i p p p p p y y p p p y p p p i p p y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p a <.f.f.f.f.f.f.f.f.f.f.&.u p p p p p p p p a p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.O # O @ @ @ X O o o o o @ o o o o o o o o o o o o o o o o o 6 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p M y.f.f.f.f.f.f.f.f.f.d.{ r p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O $ O g.g.g.g.g.g.g.@ @ @ O O @ O O O o o o o o O o o o o o o o o o o o o o o o % t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i K f.f.f.f.f.f.f.f.f.f.d.L u p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.@ @ O @ O O O X o o o o o o o o o o o o o o o @ o o o o o o o : p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i ..f.f.f.f.f.f.f.f.f.f.p.M p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ @ o o o O g.g.g.g.g.g.g.O # # @ @ @ @ @ o o o o o o o o o o o o o o o o o o o o o o o o < p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p n e.f.f.f.f.f.f.f.f.f.f.5.y p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.@ # @ @ @ @ @ @ o o o o o o o o o o o o o o o o o o o o o o o o = y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i ! f.f.f.f.f.f.f.f.f.f.d...u p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O o O g.g.g.g.g.g.g.O # @ @ X O O @ o o @ o o o o o o o o # o o o o o o o o o o o o o > p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g 6.f.f.f.f.f.f.f.f.f.f.s.D i p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.O O O @ O O O @ o o o o o O o o o o o o o o o o o @ o o o o o o o O t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p y ! f.f.f.f.f.f.f.f.f.f.f.7.p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # O @ o o @ o O o o o o o o o o o o o o o o o o o o o o o o o o o * i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p M y.f.f.f.f.f.f.f.f.f.f.d.` u p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o $ O g.g.g.g.g.g.g.# O # @ o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o > p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p *.f.f.f.f.f.f.f.f.f.f.f.u.M i p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.O O O o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o O 9 v p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p y [ f.f.f.f.f.f.f.f.f.f.f.d...u p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.O O O o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o = i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i ` d.f.f.f.f.f.f.f.f.f.f.f.y.M i p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# # @ o o o o o o o o o o o o o o o @ o o o o o @ o o o o o o o o o o o o - p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i p [ d.f.f.f.f.f.f.f.f.f.f.f.d.` t p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o O o $ O g.g.g.g.g.g.g.# # @ o o o o O o o o @ o o o o o o o o o o o o o o o o o o # o o o o o o o 6 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i b @.f.f.f.f.f.f.f.f.f.f.f.f.f.6.p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o @ o o O g.g.g.g.g.g.g.@ # @ o o o o o o o o o O o o o o o o o o o O o o o o o o o o o o o o o o o O 9 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i i L w.f.f.f.f.f.f.f.f.f.f.f.f.f.p.S t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# @ @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O O o = y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u p F <.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d._ u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o o g.g.g.g.g.g.g.# o O @ @ o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o @ O o ; p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i i u u M ^ 3.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.#.i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # O o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o > p p p p i u u u u y i i i i y y i i i i i i i i i i i i i i i i i i y y i i i i i i i i p v B L [ 3.p.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.-.p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.@ # @ o o @ o o o o O o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o , p p i Q =.<.<.<.<.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.5.7.w.i.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.1.c i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o o g.g.g.g.g.g.g.# O O o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # 9 p u ..f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.=.a i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.# @ O @ X @ @ @ o o o o o o o o o o o @ o o o o @ o o o o o o o o o o o o o o o o o o + 9 r ..f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d...p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.a p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.@ O O @ O @ @ @ o o o @ o o o o o o o o o o o o o o o o o o o o @ o o o o o o O o o o o + < ..d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.i.! i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O $ O g.g.g.g.g.g.g.# # O @ O O O O o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ $ [ f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.-.N i e p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.# O O @ O O O O o o o o o o o o o o o O o o o o o o o O o o o o o O o o o o o o o o o o o ( d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.q.Q y i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.@ # O O @ @ @ O o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o @ o o o o o o . E d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.q.^ v u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# @ @ O @ @ X O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.p.=.L p u y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o $ # g.g.g.g.g.g.g.@ @ @ O O @ O X o o o o o o o o O o o o @ o O o o o o o o O o o o o o o o o o o o o o o o . ( d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.y.&.! M i i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.@ @ @ O O O O @ o o o O @ o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o X E d.f.f.f.f.f.f.f.f.f.d.p.a.a.p.a.p.a.p.a.a.a.p.p.p.a.a.a.p.a.p.a.a.p.p.a.p.p.p.p.u.t.7.-...Q A p u u i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p y p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ @ o o o O g.g.g.g.g.g.g.O # @ @ @ @ @ @ o o o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f._ b M n n M M M M n M n m m m n m m m m m m m m M M m m m b c a i u u i y y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o # g.g.g.g.g.g.g.@ # @ @ @ @ @ @ @ o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o O . W d.f.f.f.f.f.f.f.f.f.! u i i p p u i p i p p p p u p i p p p u i p i i x i p i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O o O g.g.g.g.g.g.g.# # O @ @ O O O o o o o o o O o o @ o o o o o o o o o o o o o o o o o O o o o o o o o o o W d.f.f.f.f.f.f.f.f.f.! u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.O O O @ X O O O o o o o o o o o o O o o o o o o o o @ o o o o o o o o o o o o O o o o o o E f.f.f.f.f.f.f.f.f.f.^ u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o O O # g.g.g.g.g.g.g.# # @ @ o o o o o o O o o o o o o o o o o o O o o o o O o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.! r p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o O O O g.g.g.g.g.g.g.# O O @ o o o o o o o o o @ o o o o o o o @ o o o o o o o o o o o o o o o o O o o o o o o W d.f.f.f.f.f.f.f.f.f.J 9 x p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o O O g.g.g.g.g.g.g.O O O O o o @ o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o @ o o o o o o o E d.f.f.f.f.f.f.f.f.f.C o 9 a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O O # g.g.g.g.g.g.g.O O O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o E f.f.f.f.f.f.f.f.f.f.C @ , p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # @ o o o o o o o o o o o o @ o o o o O o o o o o o o o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o - y d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p x p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # @ o o o o o @ o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o E d.f.f.f.f.f.f.f.f.f.C X o o o # 9 p p p p p p p p p p p p p p p p p p p p p p p p p p p y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x x p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# O O o o O o o o o o o o o O o o o o o @ o o o o o o o o o o o o o o @ o o o o o o o o o E f.f.f.f.f.f.f.f.f.f.C . o o o o X : y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.@ O O o o o o o o o o o o o o o o o o o o o o o o o o o o O o o O o o o o o o o o o o o o E d.f.f.f.f.f.f.f.f.f.C . o o o o o o * 9 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p x p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# # @ @ @ @ o o o o o o @ o o o o o o o o o o o o o O o @ o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o o o o @ o @ ; y d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o $ O g.g.g.g.g.g.g.# O O @ @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C X o o o o o o o @ X % , p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o O O g.g.g.g.g.g.g.@ # O @ o o o o O o o o o o o o o @ o o O o o o o o o o o o O o o o o o o o # o o o @ o o . R f.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o = 7 a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# O O @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o . ( d.f.f.f.f.f.f.f.f.f.C X o O o o o o o o o o o o o ; t p p p p p p p p p p p p p p p p p p p p p p p p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# @ @ o o o o @ o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o @ E d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o # : y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.O # O o o o o o o o o o o o o o o o o O o o o o O o o o o o o o o o o o o o o o o o o o @ E d.f.f.f.f.f.f.f.f.f.C X o o o o o o o @ o o o o O o o o # , y p p p p p p p p p p p p p p p p p p p p p p p p p p p y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# O @ o o o o o o o o o o O o o o o o o o # o o o o o o o o o o @ o o o O o o o o o o o @ . W f.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o o o o o # , y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.@ # @ o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . ( d.f.f.f.f.f.f.f.f.f.C . o o o o o o O o o o o o o o o o o o @ o + > y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o @ O g.g.g.g.g.g.g.# # @ @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o O o @ o o o o o o o o o o o o o o o o o o @ ; 9 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# O O @ o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o O o o @ o o o o o o . E d.f.f.f.f.f.f.f.f.f.C X o o o o o o o o o o @ o o o o @ o o o o o o o o o - 7 i p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O $ O g.g.g.g.g.g.g.O @ O @ o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . ( d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o o o o o o o o o o o o o o # > t p p p y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.# O O @ o o o o @ o O o o o o o o o o o o o o o o o o O o o o o o o o o o o O o o o o o o X E d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o ; 6 y a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o # g.g.g.g.g.g.g.# + # o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X # : 9 y d d d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.g.# # o o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o o o o @ o o o o o o o o o o o o o o o o o o o o @ o o o o O O X @ # ; 7 y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p v p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.l # o o o o O g.g.g.g.g.g.g.g.# o o o @ o o o o o o @ o o O o o o o o o o o O o o o o o o o o o o o o o @ o o o o o o . R f.f.f.f.f.f.f.f.f.f.C . o o o o o o o o O o o o O o o o o o o o o o o o o o o o o o o o o O O @ @ @ # - 7 t i d d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p x g.g.g.g.g.g.g.g.p p p p p i B y.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.Z # o o @ o O g.g.g.g.g.g.g.g.# o @ o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o O o o o o o o o O o . ( d.f.f.f.f.f.f.f.f.f.C X o o @ o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o O O @ @ @ @ @ X o = ; 9 y p d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.g.p x p p p p S p.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.R # @ @ o o # # g.g.g.g.g.g.g.g.+ # o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o @ o o @ E d.f.f.f.f.f.f.f.f.f.C o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X O # - > 7 t p p d d p p p p p p p p p p p p p p p p p p p p p p p p p p p p x p g.g.g.g.g.g.g.g.p p p p p p L d.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.X.& o o o o # # g.g.g.g.g.g.g.g.# # O o o o o o O o o o o o o o o o o o o o o o o o o o o O o o @ o o o o o o o o o @ E d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o X o o = ; 6 9 i p p d p p p p p p p p p p p p p p p p p p p p p p p p v g.g.g.g.g.g.g.g.g.x p p p p p ^ f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.6.1 o @ @ o O # g.g.g.g.g.g.g.g.# # # o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o O o o o o o @ . E f.f.f.f.f.f.f.f.f.f.C X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o O o o o o o o o o o o o o o X o O % ; > 7 t i p p p p a p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.g.x p p p p p v +.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.a.w X @ @ @ O % g.g.g.g.g.g.g.g.g.# o o o o o @ o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o o O o o o o o o o o o @ o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o O O o o o o @ # % ; > 6 9 t y i p d p d p p p v p x p p v g.g.g.g.g.g.g.g.g.p p p p p p n 7.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.U @ o o o o O O g.g.g.g.g.g.g.g.g.+ # @ o o o o o o o o o o o o o o o @ o o o o o @ o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . @ o O o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o @ o o o o o o o O o o o o o o o o o o o o o o o o o o o X o o o # + * - ; > 6 6 9 9 u t i p p g.g.g.g.g.g.g.g.x x p p p p p F a.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.$.= o o o o o # g.g.g.g.g.g.g.g.g.# @ @ @ o o o o o O o @ o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o O o o o o o o O o o o o o o o @ o o o o o o o o o o o o o # # % % g.g.g.g.g.g.g.g.g.p x p p p p p ] f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.u.q o o o o o + # g.g.g.g.g.g.g.g.g.# @ @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o . R f.f.f.f.f.f.f.f.f.f.C . @ o o o o o o o o o o o o @ o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ @ # g.g.g.g.g.g.g.g.g.g.x p p p p p b 5.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.R @ o o o o O # g.g.g.g.g.g.g.g.g.g.@ # o o o o o o o o o o o o o O o o o o o o o o o o o O o o o o o o o o o o o . ( d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ # # g.g.g.g.g.g.g.g.g.p x p p p p p K s.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.8.2 o o O o o # # g.g.g.g.g.g.g.g.g.+ # @ o o o o o o o o o o o o o o o o o O o o o o o o o o # o o O o o o o o @ E d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o O o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ # # g.g.g.g.g.g.g.g.g.p v p p p p p v +.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.H @ o o o o o o g.g.g.g.g.g.g.g.g.g.+ # @ o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o E f.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o @ O @ # g.g.g.g.g.g.g.g.g.g.p c p p p p i D p.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.4.1 o o o o o o # g.g.g.g.g.g.g.g.g.g.# O O o o O o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o o o @ o o o o o o o o O o o o o O o o o o o o @ o o O o o o o o o o o o o o o o o o @ o o o o O o o o o o o o o o O o o o o o o o o o o o o o @ o # + g.g.g.g.g.g.g.g.g.g.p c p p p p y v ..f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.I # o o o o o + # g.g.g.g.g.g.g.g.g.g.% O O o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o . W d.f.f.f.f.f.f.f.f.f.C X o o o o o O o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o @ # # g.g.g.g.g.g.g.g.g.g.g.v p p p p p y D p.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.w.4 o o o o o o # g.g.g.g.g.g.g.g.g.g.g.# # O o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # o o o o o o o o o @ o o o o o o o o @ # # g.g.g.g.g.g.g.g.g.g.p p p p p p p v %.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.' # o o o o o o @ g.g.g.g.g.g.g.g.g.g.g.# # o o o o o O o o o o o o o o o o o o o o o o o o o o @ o o o o o . W f.f.f.f.f.f.f.f.f.f.C . o o o o o @ o o o o o o o o o o o o o o o o o o o o o O o o o o o o o O o o o o o o o O o o O @ o o o o o o o o o o o o o o o o o o o o o o o o @ # + g.g.g.g.g.g.g.g.g.g.p v p p p p p p L d.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.a.j @ o o o o o o # g.g.g.g.g.g.g.g.g.g.g.# # O o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o . ) d.f.f.f.f.f.f.f.f.f.Z o o o o o o o o O o o o o o o o @ o o O o o @ o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ @ # + % g.g.g.g.g.g.g.g.g.g.p c p p p p p i M 7.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.4.2 o o o o o o + # g.g.g.g.g.g.g.g.g.g.g.# # # o @ o o o o o o o o o o o o o O o o o o o o o o @ o o o o X f R W W W W W W W R W 8 o o O o o o o o o o o o o o o o o o o o o o o O o o o o o o o @ o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ # # + g.g.g.g.g.g.g.g.g.g.x v p p p p p p p ..f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.) % @ o o o o @ # # g.g.g.g.g.g.g.g.g.g.g.# # @ o o o o o o @ o o o o o o o o o o o @ o o o o O o o o o o X . o o o @ o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o O o o o o o o o o o o o o o o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.p v p p p p p p i L s.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.d.V @ o o o o @ @ + # g.g.g.g.g.g.g.g.g.g.g.# O # o o o o O o o O o o o o o o o o o o o o o o o o o o o o # o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o O o @ o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o @ # O g.g.g.g.g.g.g.g.g.g.g.g.d p p p p p p i N q.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.y.q o o o o o @ # # # g.g.g.g.g.g.g.g.g.g.g.# # @ o o o o o o o @ o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o @ o o o o o o o O # O # g.g.g.g.g.g.g.g.g.g.g.g.p p p p p p p i v %.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.>.2 o o o o @ @ @ + # g.g.g.g.g.g.g.g.g.g.g.+ # @ o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o @ o o o o o o o o o o o O o o o o o o o o o o o o o o O o o o @ o o o o o o o o o o o o o o @ # # g.g.g.g.g.g.g.g.g.g.g.g.d x p p p p p p p [ f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.X.& o o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.% # # @ @ o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o @ o o o o o o o o o O o o o o o o o o o o o o o @ @ % # g.g.g.g.g.g.g.g.g.g.g.g.v p p p p p p p p Q a.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.) # o o o o o o O # # g.g.g.g.g.g.g.g.g.g.g.g.# # @ @ o O o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o @ # O + g.g.g.g.g.g.g.g.g.g.g.p a p p p p p p p i D u.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.d.T # X o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.g.+ # @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o @ o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o @ o o o @ # O # g.g.g.g.g.g.g.g.g.g.g.g.p c p p p p p p p p A w.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.s.H o o o o o o o O # # g.g.g.g.g.g.g.g.g.g.g.g.+ # # @ o o o @ o o o o o O o o o o O o o o o o o o @ o o o o o o @ o o o o o o o o o o o o o o o o o o @ O o o o o o o o o o o o o o o o O o o o o o o o o o o o O o o @ o o o o o o o o o o o o # # # g.g.g.g.g.g.g.g.g.g.g.g.x v p p p p p p p i M 6.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.a.C o o o @ o o o o O # g.g.g.g.g.g.g.g.g.g.g.g.g.# O @ o O O O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ # # + g.g.g.g.g.g.g.g.g.g.g.g.x v p p p p p p p i n 1.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.a.V o o o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.g.g.# + @ O O o O o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o @ o o o o o o O o o o o o o O O # # # g.g.g.g.g.g.g.g.g.g.g.g.g.x x p p p p p p p p n <.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.a.C o o o o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.g.g.# O # o o o o o @ o o O o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o @ o o o o o o O o o o o O o o o o @ o o o o o o o o o o O o o o o o o o o o o o o o o o o @ # O + g.g.g.g.g.g.g.g.g.g.g.g.g.x p p p p p p p p i n -.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.a.H o o o o o O @ @ # # + g.g.g.g.g.g.g.g.g.g.g.g.g.# # # o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o @ o @ # # g.g.g.g.g.g.g.g.g.g.g.g.g.a p p p p p p p p p i n <.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.d.Y # o # o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # @ @ @ @ o O o o o o o o o o @ o o o o o o o o o o o o O o o o o o o o o o o O o o o O o @ o o o o o o o o O o o o o o o o o o @ o o o o o o @ o o o o O o @ @ # # # # g.g.g.g.g.g.g.g.g.g.g.g.g.p x p p p p p p p p i M 1.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.d.( # o o o o o o o o o # + g.g.g.g.g.g.g.g.g.g.g.g.g.# # # @ @ o o o o o o o o o o o o o o O o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ @ # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.x x p p p p p p p p p N 5.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.| = o o o o o o o o @ # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # @ o o o o o o @ o o o o o o o o o o o o o o o o o o o o o @ o O o o o o o o o o o o o o o o o o o @ o o o o o o O o o o o o o o o o o o o o o o o @ # # + g.g.g.g.g.g.g.g.g.g.g.g.g.p x p p p p p p p p p i S w.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.*.3 X o o o o o o o # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.% # O # o o o o o o o o O o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # # # O g.g.g.g.g.g.g.g.g.g.g.g.g.g.p v p p p p p p p p p p K t.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.6.w X o o o o o o o o O # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.@ % # @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o # o o o o o o @ o @ o o o o @ # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x p p p p p p p p p p p ! p.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.y.z o o o o o o o O o # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# @ @ o o O o o o o @ o o o o o O o o o o o o o o o o o o o o O @ o o o o o o o O o o o o o o o o o o o o o o o o o o o o o @ @ o @ # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.x v p p p p p p p p p i p [ d.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.d.R # o o o o o o o @ o O # % g.g.g.g.g.g.g.g.g.g.g.g.g.g.% # # # O o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o O @ @ # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x c p p p p p p p p p i n #.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.o.2 X o o o o @ o o o o + @ g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # O @ o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o @ o o o o O o o o o o o o o o o o @ # + + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.v v p p p p p p p p p p i A 5.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.8.f o o @ o o o o o o @ # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.+ # # @ @ o o o o o o o o o o o o @ o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o @ @ # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x x p p p p p p p p p i p Q y.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.a.T o X o o o o o o @ @ @ # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# + @ @ o o o o o o o o o o o o o o O o o o o o o o o o O o o o o o o o o o o o o o @ o o o o o o o o # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x x p p p p p p p p p p i g { d.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.X.1 X o o o @ o o o o o O + # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.+ # # # o O o o o o o O o o o o o o o o o o o o o o o o o o o o # o O o o o o o o o o o o o # @ # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p x p p p p p p p p p p i M <.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.9.k X o o @ @ O o o o o o # o % g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # # @ o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o @ # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p v p p p p p p p p p p p u K r.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.d.) % o o @ o o o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.@ # # o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o @ @ @ o @ @ + # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.v v p p p p p p p p p p p i p { d.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.4.s X X o o o o o o o o @ @ # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # # @ # o o o o o o o o o o o o o o o o o o o o o o o o @ o o o @ @ o # # $ g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x p c p p p p p p p p p p p u A 3.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.a.R % o @ o o o o o o @ o o O # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.+ # # o o o o o o o o o o o o o @ o @ o o o o o o o o o o o o # + # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x c p p p p p p p p p p p i y / i.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.4.w X o o o o o o @ o o o # # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.+ # # o o o o @ o o o o o o o o o o o o o o o o o o O # # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x v p p p p p p p p p p p p i N -.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.s.) = X o o o o o o o o o o o # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # # o o @ @ @ o o o o O o o o o o o @ o o o # # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x x x p p p p p p p p p p p p i ^ y.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.8.k o X o o o o o o o o o o # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.% O # @ @ o o o o o o o o o o @ @ o o # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p v c p p p p p p p p p p p p u N =.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.d.| 2 X o o o o o o o o o # @ # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.% # + # @ o o o o o o o o # # + # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p v p p p p p p p p p p p p i p / u.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.r.H # X o o o o o o o @ @ o o # + + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # + # o o o o o o # + # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x v p p p p p p p p p p p p y i D 1.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.;.w X o o o @ o o o @ o o @ @ O # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # + # o # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p x p p p p p p p p p p p p p i v ..a.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.a.) ; X o o o o o o o o @ @ o @ O # % g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.+ # O # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x c p p p p p p p p p p p p p i i L w.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.9.C o X @ @ o o o o o o O o O o # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p c p p p p p p p p p p p p p p u B %.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.*.s X X o o o o o o o o o o @ O # % # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x p x p p p p p p p p p p p p p p u v [ p.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.s.} 1 . o # o o o o o o o o o o o O O # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x c c p p p p p p p p p p p p p p i i Q w.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.y.Y % X o o o o o o @ o o o o @ o # % # % g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x x p p p p p p p p p p p p p x y i D <.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.6.l @ X o @ @ o o o o o o o o o O # # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x p v p p p p p p p p p p p p p p p p u M +.d.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.$.s X X # o o o o o o o o o o O O @ + O # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p v x p p p p p p p p p p p p p p p u b [ i.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.s.| 5 X X @ @ @ @ @ @ o o o o o o o @ # # + g.g.g.g.g.g.g.g.g.g.g.g.p p v p p p p p p p y p p p p p p p p u g ^ e.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.u.R ; X X @ @ @ @ @ o o o o o o o o @ # # # # g.g.g.g.g.g.x p c v p p p p p p p p p p p p p p p p u i Q q.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.r.I = X X X O @ o o o o o o o o @ o o o + # # g.g.p p v x p p p p p p p p p p p p p p a p i i L 3.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.6.C = . O @ o o o o o O o o o o o o # @ # # i b p p p p p p p p p p p p p p p p p i i G 1.d.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.2.j o X o o @ @ o o o o o o o o o o o o t p p p p p p p p p p p p p p p p u u D =.d.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.$.s X X o # o o o o o o o o o o o o t p p p p p p p p p p p p p p i u S &.d.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.O.s X X o o o o o o o o o o o o 9 p p p p p p p p p p p p i u S &.d.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.d.o.q X X @ # o o o o o o o o t p p p p p p p p p p u i D =.d.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.d.o.w X X o o o o o o o o t p p p p p p p p u i K 1.d.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.d.o.w X X o o o o o o t p p p p p p i p P 3.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.d.O.f X X o o o @ 9 p p p i r g ^ q.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.d.*.j o . o @ t p i u M [ y.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.>.V % < p D @.p.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.9.R ~ 5.d.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", +"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g." +}; diff --git a/share/pixmaps/pivx32.png b/share/pixmaps/pivx32.png new file mode 100644 index 0000000000000000000000000000000000000000..8a593ceb59604bf90e9aa411c9f1b2cb8017d4ee GIT binary patch literal 1572 zcmV+<2HW|GP)!5oJl(5<(FYvH?jTge?h#MNlY8McE-h1QiBpMF~QYipxxk zb{Mx>H!2npML`P|mnp478MW++7{Vm@?|n~Tbh->8_Cu#H^PhL$&7FIG_ndp~J8#yk z|F3CWb*P&Q7(M_@9z;CSejhkA=d~CEFdG=2XM)L=H z_!hM%ntIz?e`y%#d!(nvm|*yL7~S)LS+l2OaLy=3Z2_~Uzki^x?Z@`oqlZu4*KgmA z^u#=<{nvo&EQS4Y_a26YTa%o(;j&7c-W?T?i_CT9&==I8y6Oz-PF?-|&dtu+fq|iI zW-=G(IWc!C01N8RH+E*Hq|hu~a3? zveHO&))7+eQnhymGf0^1?Z->{)Q_87rt;L*$Edd6&y3fjw6F$O8{4~#FfN_~fYG8T zU*Ef8Av=G;dk*%l3_lCCT*r*`%acaPa}y$bb>$jaPMt=UeK%C99SN0YQR)npX@Ag2 zwH2hjQ6tTkDSdM7g1yr%^2 zWSGKzbcpcXgfLkS)ZSXCyfUElOs7S)LnK+47(?9&h$+k``yPR*P>EB6_Ld&&Gh%4j zO8{`gS+@M|S31hfO0N_$p%x+DnTQL?$EM_pKPe@)7#g1}D8=dYSOS1>U!6HbqHR!n zrG-onz(#P|nJF?Wgz?bGvJfOnMM*(5h8_*$(LOQpF@hn2*j( z?&n_#fX(Eay;g=3*Jl$qYZ0l?AucqZ_QWUZt+Zl^($|%s`O-~186H70@dg!^83GWP z-5q@=Ll7iPMW7&MQq;4W^aqR65b38wZ}%Y1o@k=`X9R!>0r3KSd2z^CSBlFQZoHtA zM;b}2bBK2`X`qI4*U@pi3u?*(vh0}wU@<)4=IDonRiEMDzB4aqkNzlGX*TVlK(gv9 z7u#{`#$BjLc7(}h%mV_j7<@?GR};z%x)W`FVf|QDe#dk`vRL87j#tJ-D}am{eF^FIAe2 zjg74>E-W8$W{AGFS?p#*V9E%{Q#M0LV()WW%+?&ft%k=i}`kZjxFDl7`e!y4T)Yb%(0`Mg-tALoVSa!A;EvMbN_g=C3@a8n7uj3#94L>lZFt@aj|BSwL0UmnK;F>4 zUEkr}Z@twd=Ph2tH-d@R{?qMK`MJgL;P{N%E^*zj;3if@DmIOj6&=QnYaLh281*QT}-iT3b4rNq;2J^X|X)c}5JrLsCmY6wrhAf6wrL?)n2n WI`1!7`)ddQ0000 c #393148", +", c #3C334C", +"< c #3D344D", +"1 c #3F344F", +"2 c #40384C", +"3 c #40394C", +"4 c #403652", +"5 c #423653", +"6 c #443E51", +"7 c #463E52", +"8 c #43375A", +"9 c #493D5F", +"0 c #4B3E62", +"q c #503E73", +"w c #494154", +"e c #4D4458", +"r c #4F416A", +"t c #50436A", +"y c #52456D", +"u c #585263", +"i c #595364", +"p c #5A5366", +"a c #5D5768", +"s c #524073", +"d c #554671", +"f c #514075", +"g c #564677", +"h c #584976", +"j c #5B4D76", +"k c #544378", +"l c #544478", +"z c #584779", +"x c #584879", +"c c #5A4B7A", +"v c #5B4A7B", +"b c #5B4B7B", +"n c #5B4B7D", +"m c #5C4B7D", +"M c #5C4C7C", +"N c #5D4C7C", +"B c #5C4D7C", +"V c #5F4F7F", +"C c #605A6B", +"Z c #655F6F", +"A c #6D6776", +"S c #5E4D80", +"D c #604F80", +"F c #615281", +"G c #635482", +"H c #645483", +"J c #675885", +"K c #685986", +"L c #685A86", +"P c #6A5B87", +"I c #6A5C87", +"U c #6D5B8A", +"Y c #70638C", +"T c #797383", +"R c #7E7887", +"E c #746691", +"W c #766890", +"Q c #7B6D94", +"! c #7A6C95", +"~ c #7B6C98", +"^ c #81749A", +"/ c #83779B", +"( c #83779C", +") c #84779C", +"_ c #857B9A", +"` c #878290", +"' c #888292", +"] c #8C8794", +"[ c #908B97", +"{ c #908A98", +"} c #918C9A", +"| c #948F9B", +" . c #95909C", +".. c #97949E", +"X. c #9388A8", +"o. c #9488AD", +"O. c #978CAF", +"+. c #988EAD", +"@. c #9A96A2", +"#. c #9C98A3", +"$. c #9C93B0", +"%. c #9E94B1", +"&. c #A095B2", +"*. c #A095B5", +"=. c #A299B4", +"-. c #A69DB7", +";. c #A89FBA", +":. c #A89FBC", +">. c #ADAAB3", +",. c #A9A1BA", +"<. c #ABA3BC", +"1. c #B1AFB7", +"2. c #B7B0C6", +"3. c #BBB5C9", +"4. c #BCB5C9", +"5. c #BFB8CB", +"6. c #C2BCCF", +"7. c #C4BECF", +"8. c #C2C0C6", +"9. c #C9C6CD", +"0. c #C8C3D3", +"q. c #CBC6D5", +"w. c #CCC7D6", +"e. c #CDCCD1", +"r. c #D3CEDC", +"t. c #D2D0D5", +"y. c #D5D4D8", +"u. c #D5D1DD", +"i. c #D9D6E1", +"p. c #DCD9E3", +"a. c #E1DEE7", +"s. c #E5E2EB", +"d. c #E9E7EE", +"f. c #EBE9EF", +"g. c #ECEAEC", +"h. c #EDEDEE", +"j. c #EEECF1", +"k. c #F0EFF3", +"l. c #F2F1F4", +"z. c #F4F2F6", +"x. c #F7F6F8", +"c. c #FBFBFB", +"v. c #FEFFFE", +"b. c None", +/* pixels */ +"b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.b.b.b.b.b.g.e.>.} =.4.u.j.b.b.b.b.b.b.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.h.t.1.| T p 2 + O s v G ~ o.;.5.i.j.b.b.b.b.b.b.b.", +"b.b.b.b.b.8.R a 7 # b.b.b.b.b.b.b.b.b.b.f n P Q o.q.b.b.b.b.b.", +"b.b.b.b.b.] b.b.b.b.b.D M M M M n B M b.b.b.b.b.f $.b.b.b.b.b.", +"b.b.b.b.b.[ b.$ 5 v D D S m v l v x n S D S M M M b.&.b.b.b.b.b.", +"b.b.b.b.b.[ b.% < h M v K / / / ~ / W M z M M F M b.&.b.b.b.b.b.", +"b.b.b.b.b.[ b.* : y M g X.l.k.k.l.l.x.p.^ z M S M b.&.b.b.b.b.b.", +"b.b.b.b.b.[ b.* % 9 M M V I K K I L Q w.x.E v M M b.&.b.b.b.b.b.", +"b.b.b.b.b.[ b.* - 4 M m g g g g g c l F f.3.l S M b.&.b.b.b.b.b.", +"b.b.b.b.b.[ b.* : - r ! 0.0.0.0.2.F v g 7.p.v S M b.&.b.b.b.b.b.", +"b.b.b.b.b.[ b.* : % 1 Y ,.,.,.,.%.M v g q.u.v M M b.&.b.b.b.b.b.", +"b.b.b.b.b.[ b.* : - - r l q s s f h f Y x.<.l S M b.&.b.b.b.b.b.", +"b.b.b.b.b.[ b.* : - % : j ^ / ( ) ) $.d.a.J B S M b.&.b.b.b.b.b.", +"b.b.b.b.b.[ b.* : ; % + p v.z.j.k.j.d.3.I v B S M b.&.b.b.b.b.b.", +"b.b.b.b.b.[ b.* : ; - + u c._ H K J F g v M n S M b.&.b.b.b.b.b.", +"b.b.b.b.b.[ b.* : ; * % u c.Z 8 h N N N M M M S M b.&.b.b.b.b.b.", +"b.b.b.b.b.[ b.% : ; % + u c.Z + , 0 g B S M M D M b.%.b.b.b.b.b.", +"b.b.b.b.b...b.* : : & @ i c.Z + - % : 4 0 t d b c b.-.b.b.b.b.b.", +"b.b.b.b.b.9.e b.: : = # i v.Z + ; % - % % % > > b.U w.b.b.b.b.b.", +"b.b.b.b.b.b.@.= b.: : % 3 A 7 % * * : % % : : b.M <.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.{ = b.: : * + % % ; ; - : - % b.M *.b.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.b.#.6 b.b.: : : : * : : ; b.b.H :.b.b.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.b.b.6.C X b.b.: : : : b.b.k E 6.b.b.b.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.b.b.b.h. .w . b.b.b.b.l H *.s.b.b.b.b.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.b.b.b.b.b.y.` 2 o f F O.r.b.b.b.b.b.b.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.b.b.b.b.b.b.b.e.' +.r.b.b.b.b.b.b.b.b.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.", +"b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b." +}; diff --git a/share/pixmaps/pivx64.png b/share/pixmaps/pivx64.png new file mode 100644 index 0000000000000000000000000000000000000000..19a2d9955924f42f88c1c644ac48915f6b0d7768 GIT binary patch literal 2538 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 AwEzGB literal 0 HcmV?d00001 diff --git a/share/pixmaps/pivx64.xpm b/share/pixmaps/pivx64.xpm new file mode 100644 index 0000000..656b2c9 --- /dev/null +++ b/share/pixmaps/pivx64.xpm @@ -0,0 +1,148 @@ +/* XPM */ +static char *bitcoin64[] = { +/* columns rows colors chars-per-pixel */ +"48 48 94 2 ", +" c #2E263C", +". c #31273E", +"X c #31293E", +"o c #362E43", +"O c #382F45", +"+ c #373044", +"@ c #393146", +"# c #3C334B", +"$ c #3F3451", +"% c #433A53", +"& c #473C5D", +"* c #483C5E", +"= c #4B3F63", +"- c #503E72", +"; c #4B4357", +": c #534C5F", +"> c #4F4169", +", c #51436B", +"< c #5B5467", +"1 c #5D5669", +"2 c #554576", +"3 c #574874", +"4 c #584A76", +"5 c #574678", +"6 c #58477A", +"7 c #5C4B7C", +"8 c #5F507D", +"9 c #625B6D", +"0 c #60517F", +"q c #676072", +"w c #6B6475", +"e c #706B7A", +"r c #5F4F80", +"t c #604F81", +"y c #625281", +"u c #675886", +"i c #6D5E8A", +"p c #70628E", +"a c #777283", +"s c #7C7685", +"d c #766793", +"f c #796B95", +"g c #7C6E9A", +"h c #7D7196", +"j c #7F719A", +"k c #827C8B", +"l c #81749B", +"z c #85799E", +"x c #8577A0", +"c c #8678A1", +"v c #868290", +"b c #898492", +"n c #918B98", +"m c #9186A6", +"M c #958AAC", +"N c #988EAD", +"B c #9995A0", +"V c #9F9BA6", +"C c #9C92AF", +"Z c #9D94B2", +"A c #A096B3", +"S c #A69DB9", +"D c #A9A5AF", +"F c #ADA5BC", +"G c #B0ADB5", +"H c #B5B1BB", +"J c #B6AEC4", +"K c #B8B1C6", +"L c #BFBCC3", +"P c #BCB4CB", +"I c #BFB9CB", +"U c #C2BCCF", +"Y c #C3BED1", +"T c #C8C6CC", +"R c #CAC5D5", +"E c #CECBD4", +"W c #D1CFD3", +"Q c #D2CDDB", +"! c #D6D2DE", +"~ c #DAD8DD", +"^ c #D8D4E0", +"/ c #DFDCE5", +"( c #E0DEE4", +") c #E3E2E5", +"_ c #E5E3EA", +"` c #E8E6EC", +"' c #EDECEF", +"] c #ECEAF0", +"[ c #F0EEF4", +"{ c #F4F3F5", +"} c #F5F4F8", +"| c #F9F7FA", +" . c #FEFEFE", +".. c None", +/* pixels */ +"................................................................................................", +"................................................................................................", +"................................................................................................", +"................................................................................................", +".......................................... .| / _ | ...........................................", +"................................ . .) T D k < % 8 f N P Q ` | .................................", +"...................... . .` E G b 9 % + X o X @ 5 6 7 6 7 u l Z P ^ ] . .......................", +".............. .' W H n q ; + X X + + O ............7 7 7 7 5 6 r i c S Y ^ ] ...............", +"..............{ w + X X o ........................................7 2 2 2 r x [ ..............", +"..............' 1 + ................8 7 8 7 8 r r 8 7 7 8 7 ..................d ] ..............", +"..............[ 1 ......# 4 7 8 8 r t t 7 8 7 7 7 7 8 7 r r r r 7 r 7 r ......d ] ..............", +"..............' 1 ....# @ 3 8 7 7 7 7 5 7 7 7 7 7 7 7 7 7 7 7 8 7 7 r t u ....d ' ..............", +"..............' 1 ....@ + > 7 7 8 7 8 t r y y 8 y y y 8 2 2 8 7 7 7 7 7 r ....d ] ..............", +"..............[ 1 ....@ + * 7 7 7 6 p _ ] ] ] ] ] ] ` ( I c 6 7 7 8 7 7 r ....d ] ..............", +"..............' 1 ....@ + $ 7 7 7 6 p ` ` ] ` ` ` ` ` | . .K 8 7 7 7 r r ....d ' ..............", +"..............' 1 ....@ + @ 3 7 7 7 7 y y y y y 8 8 0 i Z [ | J 2 7 7 r t ....d ] ..............", +"..............' 1 ....@ o o = 8 7 7 7 7 7 7 7 7 5 7 7 4 2 l { { j 6 7 7 r ....d ] ..............", +"..............' 1 ....@ o o % 7 7 7 2 2 2 2 2 2 5 5 7 7 7 2 U .F 2 8 7 r ....d ] ..............", +"..............[ 1 ....@ o o o , 7 j F F F J F F F f 4 7 7 2 Z .R 2 7 7 r ....d ] ..............", +"..............[ 1 ....@ o o o % 5 A . . . . . . .N 5 7 7 2 N .R 7 7 7 r ....d ] ..............", +"..............[ 1 ....@ + o + o > u p d d p p d d y 7 7 7 2 F .P 2 8 8 t ....d ] ..............", +"..............' 1 ....@ @ o o o $ 4 7 7 7 4 7 4 4 7 7 7 7 7 / | N 2 7 7 t ....d ] ..............", +"..............' 9 ....@ + o o O o & 8 5 4 5 5 5 5 5 5 2 8 K .( u 7 7 r r ....d ] ..............", +"..............' 1 ....@ @ o + o o o > l m m m m m m M S / .' z 2 7 7 r r ....d ] ..............", +"..............[ 1 ....@ @ + o + + + @ W . . . . . . . . .! h 2 8 7 7 r r ....d ' ..............", +"..............' 1 ....@ + o + o o + X T .Y S S F F S C j 8 5 7 7 7 7 7 r ....d ] ..............", +"..............' 1 ....@ + o o O + o X T .h - 2 2 2 2 2 5 7 8 7 7 7 7 8 t ....d ] ..............", +"..............{ 1 ....@ + + + o + o X T .e $ 4 7 7 7 7 8 7 7 7 7 7 7 7 r ....d ' ..............", +"..............' 1 ....@ + o o @ o + X T .e X @ = 4 7 7 7 7 7 7 7 7 7 7 r ....d ] ..............", +"..............' 1 ....@ + + o o O o o T .e X o o # * 3 7 7 r 8 7 7 7 7 t ....d ] ..............", +"..............{ 9 ....+ o + o o + + X T .e X o o o o O $ * , 5 7 7 r r r ....f [ ..............", +".............. .k o ..O @ + @ o o @ X T .e X o + o o o o o O @ $ % & = , ..7 M ...............", +"................T # ....@ + + + + o o E .e o o + o O O o o o o o o o ....r R ................", +"................ .v o ....@ @ + o O o s B : o + O o + o o o + O + + + ....6 M .................", +"..................' q X ....O @ + O O X o o o o @ o @ O O O + @ @ ....7 g ' ..................", +"....................` q o ......+ @ o O + + o o o o o o O O @ @ ......7 f _ ....................", +"......................' a o o ....@ @ + o O o O + o O o @ @ O ......7 x ` ......................", +"........................| V $ X ......@ @ @ o o @ o @ @ @ ......7 r A } ........................", +".......................... .T 9 o o ......+ @ @ @ @ @ ......8 2 p Y ...........................", +"..............................[ V % . O ......O @ ......r 5 t Z _ ..............................", +"................................ .~ s O X O ........8 7 r l E .................................", +".................................... .T w o o @ 7 7 6 d U | ....................................", +"........................................ .L w O 5 h U | ........................................", +"............................................| T R | ............................................", +"................................................................................................", +"................................................................................................", +"................................................................................................", +"................................................................................................" +}; diff --git a/share/rpcauth/README.md b/share/rpcauth/README.md new file mode 100644 index 0000000..20d16f0 --- /dev/null +++ b/share/rpcauth/README.md @@ -0,0 +1,14 @@ +RPC Tools +--------------------- + +### [RPCAuth](/share/rpcauth) ### + +Create login credentials for a JSON-RPC user. + +Usage: + + ./rpcauth.py + +in which case the script will generate a password. To specify a custom password do: + + ./rpcauth.py diff --git a/share/rpcauth/rpcauth.py b/share/rpcauth/rpcauth.py new file mode 100644 index 0000000..566c55a --- /dev/null +++ b/share/rpcauth/rpcauth.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +# Copyright (c) 2015-2017 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +import sys +import os +from random import SystemRandom +import base64 +import hmac + +def generate_salt(): + # This uses os.urandom() underneath + cryptogen = SystemRandom() + + # Create 16 byte hex salt + salt_sequence = [cryptogen.randrange(256) for _ in range(16)] + return ''.join([format(r, 'x') for r in salt_sequence]) + +def generate_password(): + """Create 32 byte b64 password""" + return base64.urlsafe_b64encode(os.urandom(32)).decode('utf-8') + +def password_to_hmac(salt, password): + m = hmac.new(bytearray(salt, 'utf-8'), bytearray(password, 'utf-8'), 'SHA256') + return m.hexdigest() + +def main(): + if len(sys.argv) < 2: + sys.stderr.write('Please include username (and an optional password, will generate one if not provided) as an argument.\n') + sys.exit(0) + + username = sys.argv[1] + + salt = generate_salt() + if len(sys.argv) > 2: + password = sys.argv[2] + else: + password = generate_password() + password_hmac = password_to_hmac(salt, password) + + print('String to be appended to bitcoin.conf:') + print('rpcauth={0}:{1}${2}'.format(username, salt, password_hmac)) + print('Your password:\n{0}'.format(password)) + +if __name__ == '__main__': + main() diff --git a/src/Makefile.leveldb.include b/src/Makefile.leveldb.include new file mode 100644 index 0000000..833f3d2 --- /dev/null +++ b/src/Makefile.leveldb.include @@ -0,0 +1,149 @@ +# Copyright (c) 2016 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. + +LIBLEVELDB_INT = leveldb/libleveldb.a +LIBMEMENV_INT = leveldb/libmemenv.a +LIBLEVELDB_SSE42_INT = leveldb/libleveldb_sse42.a + +EXTRA_LIBRARIES += $(LIBLEVELDB_INT) +EXTRA_LIBRARIES += $(LIBMEMENV_INT) +EXTRA_LIBRARIES += $(LIBLEVELDB_SSE42_INT) + +LIBLEVELDB += $(LIBLEVELDB_INT) +LIBMEMENV += $(LIBMEMENV_INT) +LIBLEVELDB_SSE42 = $(LIBLEVELDB_SSE42_INT) + +LEVELDB_CPPFLAGS += -I$(srcdir)/leveldb/include +LEVELDB_CPPFLAGS += -I$(srcdir)/leveldb/helpers/memenv + +LEVELDB_CPPFLAGS_INT = +LEVELDB_CPPFLAGS_INT += -I$(srcdir)/leveldb +LEVELDB_CPPFLAGS_INT += $(LEVELDB_TARGET_FLAGS) +LEVELDB_CPPFLAGS_INT += -DLEVELDB_ATOMIC_PRESENT +LEVELDB_CPPFLAGS_INT += -D__STDC_LIMIT_MACROS + +if TARGET_WINDOWS +LEVELDB_CPPFLAGS_INT += -DLEVELDB_PLATFORM_WINDOWS -DWINVER=0x0500 -D__USE_MINGW_ANSI_STDIO=1 +else +LEVELDB_CPPFLAGS_INT += -DLEVELDB_PLATFORM_POSIX +endif + +leveldb_libleveldb_a_CPPFLAGS = $(AM_CPPFLAGS) $(LEVELDB_CPPFLAGS_INT) $(LEVELDB_CPPFLAGS) +leveldb_libleveldb_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) + +leveldb_libleveldb_a_SOURCES= +leveldb_libleveldb_a_SOURCES += leveldb/port/atomic_pointer.h +leveldb_libleveldb_a_SOURCES += leveldb/port/port_example.h +leveldb_libleveldb_a_SOURCES += leveldb/port/port_posix.h +leveldb_libleveldb_a_SOURCES += leveldb/port/win/stdint.h +leveldb_libleveldb_a_SOURCES += leveldb/port/port.h +leveldb_libleveldb_a_SOURCES += leveldb/port/port_win.h +leveldb_libleveldb_a_SOURCES += leveldb/port/thread_annotations.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/db.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/options.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/comparator.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/filter_policy.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/slice.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/table_builder.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/env.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/c.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/iterator.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/cache.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/dumpfile.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/table.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/write_batch.h +leveldb_libleveldb_a_SOURCES += leveldb/include/leveldb/status.h +leveldb_libleveldb_a_SOURCES += leveldb/db/log_format.h +leveldb_libleveldb_a_SOURCES += leveldb/db/memtable.h +leveldb_libleveldb_a_SOURCES += leveldb/db/version_set.h +leveldb_libleveldb_a_SOURCES += leveldb/db/write_batch_internal.h +leveldb_libleveldb_a_SOURCES += leveldb/db/filename.h +leveldb_libleveldb_a_SOURCES += leveldb/db/version_edit.h +leveldb_libleveldb_a_SOURCES += leveldb/db/dbformat.h +leveldb_libleveldb_a_SOURCES += leveldb/db/builder.h +leveldb_libleveldb_a_SOURCES += leveldb/db/log_writer.h +leveldb_libleveldb_a_SOURCES += leveldb/db/db_iter.h +leveldb_libleveldb_a_SOURCES += leveldb/db/skiplist.h +leveldb_libleveldb_a_SOURCES += leveldb/db/db_impl.h +leveldb_libleveldb_a_SOURCES += leveldb/db/table_cache.h +leveldb_libleveldb_a_SOURCES += leveldb/db/snapshot.h +leveldb_libleveldb_a_SOURCES += leveldb/db/log_reader.h +leveldb_libleveldb_a_SOURCES += leveldb/table/filter_block.h +leveldb_libleveldb_a_SOURCES += leveldb/table/block_builder.h +leveldb_libleveldb_a_SOURCES += leveldb/table/block.h +leveldb_libleveldb_a_SOURCES += leveldb/table/two_level_iterator.h +leveldb_libleveldb_a_SOURCES += leveldb/table/merger.h +leveldb_libleveldb_a_SOURCES += leveldb/table/format.h +leveldb_libleveldb_a_SOURCES += leveldb/table/iterator_wrapper.h +leveldb_libleveldb_a_SOURCES += leveldb/util/crc32c.h +leveldb_libleveldb_a_SOURCES += leveldb/util/env_posix_test_helper.h +leveldb_libleveldb_a_SOURCES += leveldb/util/arena.h +leveldb_libleveldb_a_SOURCES += leveldb/util/random.h +leveldb_libleveldb_a_SOURCES += leveldb/util/posix_logger.h +leveldb_libleveldb_a_SOURCES += leveldb/util/hash.h +leveldb_libleveldb_a_SOURCES += leveldb/util/histogram.h +leveldb_libleveldb_a_SOURCES += leveldb/util/coding.h +leveldb_libleveldb_a_SOURCES += leveldb/util/testutil.h +leveldb_libleveldb_a_SOURCES += leveldb/util/mutexlock.h +leveldb_libleveldb_a_SOURCES += leveldb/util/logging.h +leveldb_libleveldb_a_SOURCES += leveldb/util/testharness.h + +leveldb_libleveldb_a_SOURCES += leveldb/db/builder.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/c.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/dbformat.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/db_impl.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/db_iter.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/dumpfile.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/filename.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/log_reader.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/log_writer.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/memtable.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/repair.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/table_cache.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/version_edit.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/version_set.cc +leveldb_libleveldb_a_SOURCES += leveldb/db/write_batch.cc +leveldb_libleveldb_a_SOURCES += leveldb/table/block_builder.cc +leveldb_libleveldb_a_SOURCES += leveldb/table/block.cc +leveldb_libleveldb_a_SOURCES += leveldb/table/filter_block.cc +leveldb_libleveldb_a_SOURCES += leveldb/table/format.cc +leveldb_libleveldb_a_SOURCES += leveldb/table/iterator.cc +leveldb_libleveldb_a_SOURCES += leveldb/table/merger.cc +leveldb_libleveldb_a_SOURCES += leveldb/table/table_builder.cc +leveldb_libleveldb_a_SOURCES += leveldb/table/table.cc +leveldb_libleveldb_a_SOURCES += leveldb/table/two_level_iterator.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/arena.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/bloom.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/cache.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/coding.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/comparator.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/crc32c.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/env.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/env_posix.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/filter_policy.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/hash.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/histogram.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/logging.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/options.cc +leveldb_libleveldb_a_SOURCES += leveldb/util/status.cc + +if TARGET_WINDOWS +leveldb_libleveldb_a_SOURCES += leveldb/util/env_win.cc +leveldb_libleveldb_a_SOURCES += leveldb/port/port_win.cc +else +leveldb_libleveldb_a_SOURCES += leveldb/port/port_posix.cc +endif + +leveldb_libmemenv_a_CPPFLAGS = $(leveldb_libleveldb_a_CPPFLAGS) +leveldb_libmemenv_a_CXXFLAGS = $(leveldb_libleveldb_a_CXXFLAGS) +leveldb_libmemenv_a_SOURCES = leveldb/helpers/memenv/memenv.cc +leveldb_libmemenv_a_SOURCES += leveldb/helpers/memenv/memenv.h + +leveldb_libleveldb_sse42_a_CPPFLAGS = $(leveldb_libleveldb_a_CPPFLAGS) +leveldb_libleveldb_sse42_a_CXXFLAGS = $(leveldb_libleveldb_a_CXXFLAGS) +if ENABLE_HWCRC32 +leveldb_libleveldb_sse42_a_CPPFLAGS += -DLEVELDB_PLATFORM_POSIX_SSE +leveldb_libleveldb_sse42_a_CXXFLAGS += $(SSE42_CXXFLAGS) +endif +leveldb_libleveldb_sse42_a_SOURCES = leveldb/port/port_posix_sse.cc diff --git a/src/addressbook.cpp b/src/addressbook.cpp new file mode 100644 index 0000000..82d0236 --- /dev/null +++ b/src/addressbook.cpp @@ -0,0 +1,38 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "addressbook.h" +#include + +namespace AddressBook { + + namespace AddressBookPurpose { + const std::string UNKNOWN{"unknown"}; + const std::string RECEIVE{"receive"}; + const std::string SEND{"send"}; + const std::string DELEGABLE{"delegable"}; + const std::string DELEGATOR{"delegator"}; + const std::string COLD_STAKING{"coldstaking"}; + const std::string COLD_STAKING_SEND{"coldstaking_send"}; + } + + bool IsColdStakingPurpose(const std::string& purpose) { + return purpose == AddressBookPurpose::COLD_STAKING + || purpose == AddressBookPurpose::COLD_STAKING_SEND; + } + + bool CAddressBookData::isSendColdStakingPurpose() const { + return purpose == AddressBookPurpose::COLD_STAKING_SEND; + } + + bool CAddressBookData::isSendPurpose() const { + return purpose == AddressBookPurpose::SEND; + } + bool CAddressBookData::isReceivePurpose() const { + return purpose == AddressBookPurpose::RECEIVE; + } + + +} + diff --git a/src/addressbook.h b/src/addressbook.h new file mode 100644 index 0000000..844a357 --- /dev/null +++ b/src/addressbook.h @@ -0,0 +1,46 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PIVX_ADDRESSBOOK_H +#define PIVX_ADDRESSBOOK_H + +#include +#include + +namespace AddressBook { + + namespace AddressBookPurpose { + extern const std::string UNKNOWN; + extern const std::string RECEIVE; + extern const std::string SEND; + extern const std::string DELEGABLE; + extern const std::string DELEGATOR; + extern const std::string COLD_STAKING; + extern const std::string COLD_STAKING_SEND; + } + + bool IsColdStakingPurpose(const std::string& purpose); + +/** Address book data */ + class CAddressBookData { + public: + + std::string name; + std::string purpose; + + CAddressBookData() { + purpose = AddressBook::AddressBookPurpose::UNKNOWN; + } + + typedef std::map StringMap; + StringMap destdata; + + bool isSendColdStakingPurpose() const; + bool isSendPurpose() const; + bool isReceivePurpose() const; + }; + +} + +#endif //PIVX_ADDRESSBOOK_H diff --git a/src/blocksignature.cpp b/src/blocksignature.cpp new file mode 100644 index 0000000..b2bf183 --- /dev/null +++ b/src/blocksignature.cpp @@ -0,0 +1,98 @@ +// Copyright (c) 2017-2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "blocksignature.h" +#include "main.h" +#include "zpivchain.h" + +bool SignBlockWithKey(CBlock& block, const CKey& key) +{ + if (!key.Sign(block.GetHash(), block.vchBlockSig)) + return error("%s: failed to sign block hash with key", __func__); + + return true; +} + +bool GetKeyIDFromUTXO(const CTxOut& txout, CKeyID& keyID) +{ + std::vector vSolutions; + txnouttype whichType; + if (!Solver(txout.scriptPubKey, whichType, vSolutions)) + return false; + if (whichType == TX_PUBKEY) { + keyID = CPubKey(vSolutions[0]).GetID(); + } else if (whichType == TX_PUBKEYHASH || whichType == TX_COLDSTAKE) { + keyID = CKeyID(uint160(vSolutions[0])); + } else { + return false; + } + + return true; +} + +bool SignBlock(CBlock& block, const CKeyStore& keystore) +{ + CKeyID keyID; + if (block.IsProofOfWork()) { + bool fFoundID = false; + for (const CTxOut& txout :block.vtx[0].vout) { + if (!GetKeyIDFromUTXO(txout, keyID)) + continue; + fFoundID = true; + break; + } + if (!fFoundID) + return error("%s: failed to find key for PoW", __func__); + } else { + if (!GetKeyIDFromUTXO(block.vtx[1].vout[1], keyID)) + return error("%s: failed to find key for PoS", __func__); + } + + CKey key; + if (!keystore.GetKey(keyID, key)) + return error("%s: failed to get key from keystore", __func__); + + return SignBlockWithKey(block, key); +} + +bool CheckBlockSignature(const CBlock& block) +{ + if (block.IsProofOfWork()) + return block.vchBlockSig.empty(); + + if (block.vchBlockSig.empty()) + return error("%s: vchBlockSig is empty!", __func__); + + /** Each block is signed by the private key of the input that is staked. This can be either zPIV or normal UTXO + * zPIV: Each zPIV has a keypair associated with it. The serial number is a hash of the public key. + * UTXO: The public key that signs must match the public key associated with the first utxo of the coinstake tx. + */ + CPubKey pubkey; + bool fzPIVStake = block.vtx[1].vin[0].IsZerocoinSpend(); + if (fzPIVStake) { + libzerocoin::CoinSpend spend = TxInToZerocoinSpend(block.vtx[1].vin[0]); + pubkey = spend.getPubKey(); + } else { + txnouttype whichType; + std::vector vSolutions; + const CTxOut& txout = block.vtx[1].vout[1]; + if (!Solver(txout.scriptPubKey, whichType, vSolutions)) + return false; + if (whichType == TX_PUBKEY || whichType == TX_PUBKEYHASH) { + valtype& vchPubKey = vSolutions[0]; + pubkey = CPubKey(vchPubKey); + } else if (whichType == TX_COLDSTAKE) { + // pick the public key from the P2CS input + const CTxIn& txin = block.vtx[1].vin[0]; + int start = 1 + (int) *txin.scriptSig.begin(); // skip sig + start += 1 + (int) *(txin.scriptSig.begin()+start); // skip flag + pubkey = CPubKey(txin.scriptSig.begin()+start+1, txin.scriptSig.end()); + } + } + + if (!pubkey.IsValid()) + return error("%s: invalid pubkey %s", __func__, HexStr(pubkey)); + + return pubkey.Verify(block.GetHash(), block.vchBlockSig); +} diff --git a/src/blocksignature.h b/src/blocksignature.h new file mode 100644 index 0000000..ad399b8 --- /dev/null +++ b/src/blocksignature.h @@ -0,0 +1,16 @@ +// Copyright (c) 2017-2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PIVX_BLOCKSIGNATURE_H +#define PIVX_BLOCKSIGNATURE_H + +#include "key.h" +#include "primitives/block.h" +#include "keystore.h" + +bool SignBlockWithKey(CBlock& block, const CKey& key); +bool SignBlock(CBlock& block, const CKeyStore& keystore); +bool CheckBlockSignature(const CBlock& block); + +#endif //PIVX_BLOCKSIGNATURE_H diff --git a/src/compat/byteswap.h b/src/compat/byteswap.h new file mode 100644 index 0000000..ae2e080 --- /dev/null +++ b/src/compat/byteswap.h @@ -0,0 +1,66 @@ +// Copyright (c) 2014-2017 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_COMPAT_BYTESWAP_H +#define BITCOIN_COMPAT_BYTESWAP_H + +#if defined(HAVE_CONFIG_H) +#include +#endif + +#include + +#if defined(HAVE_BYTESWAP_H) +#include +#endif + +#if defined(__APPLE__) + +#if !defined(bswap_16) + +// Mac OS X / Darwin features; we include a check for bswap_16 because if it is already defined, protobuf has +// defined these macros for us already; if it isn't, we do it ourselves. In either case, we get the exact same +// result regardless which path was taken +#include +#define bswap_16(x) OSSwapInt16(x) +#define bswap_32(x) OSSwapInt32(x) +#define bswap_64(x) OSSwapInt64(x) + +#endif // !defined(bswap_16) + +#else +// Non-Mac OS X / non-Darwin + +#if HAVE_DECL_BSWAP_16 == 0 +inline uint16_t bswap_16(uint16_t x) +{ + return (x >> 8) | (x << 8); +} +#endif // HAVE_DECL_BSWAP16 == 0 + +#if HAVE_DECL_BSWAP_32 == 0 +inline uint32_t bswap_32(uint32_t x) +{ + return (((x & 0xff000000U) >> 24) | ((x & 0x00ff0000U) >> 8) | + ((x & 0x0000ff00U) << 8) | ((x & 0x000000ffU) << 24)); +} +#endif // HAVE_DECL_BSWAP32 == 0 + +#if HAVE_DECL_BSWAP_64 == 0 +inline uint64_t bswap_64(uint64_t x) +{ + return (((x & 0xff00000000000000ull) >> 56) + | ((x & 0x00ff000000000000ull) >> 40) + | ((x & 0x0000ff0000000000ull) >> 24) + | ((x & 0x000000ff00000000ull) >> 8) + | ((x & 0x00000000ff000000ull) << 8) + | ((x & 0x0000000000ff0000ull) << 24) + | ((x & 0x000000000000ff00ull) << 40) + | ((x & 0x00000000000000ffull) << 56)); +} +#endif // HAVE_DECL_BSWAP64 == 0 + +#endif // defined(__APPLE__) + +#endif // BITCOIN_COMPAT_BYTESWAP_H diff --git a/src/compat/endian.h b/src/compat/endian.h new file mode 100644 index 0000000..df05e02 --- /dev/null +++ b/src/compat/endian.h @@ -0,0 +1,241 @@ +// Copyright (c) 2014-2017 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_COMPAT_ENDIAN_H +#define BITCOIN_COMPAT_ENDIAN_H + +#if defined(HAVE_CONFIG_H) +#include +#endif + +#include + +#include + +#if defined(HAVE_ENDIAN_H) +#include +#elif defined(HAVE_SYS_ENDIAN_H) +#include +#endif + +#ifndef HAVE_CONFIG_H +// While not technically a supported configuration, defaulting to defining these +// DECLs when we were compiled without autotools makes it easier for other build +// systems to build things like libbitcoinconsensus for strange targets. +#ifdef htobe16 +#define HAVE_DECL_HTOBE16 1 +#endif +#ifdef htole16 +#define HAVE_DECL_HTOLE16 1 +#endif +#ifdef be16toh +#define HAVE_DECL_BE16TOH 1 +#endif +#ifdef le16toh +#define HAVE_DECL_LE16TOH 1 +#endif + +#ifdef htobe32 +#define HAVE_DECL_HTOBE32 1 +#endif +#ifdef htole32 +#define HAVE_DECL_HTOLE32 1 +#endif +#ifdef be32toh +#define HAVE_DECL_BE32TOH 1 +#endif +#ifdef le32toh +#define HAVE_DECL_LE32TOH 1 +#endif + +#ifdef htobe64 +#define HAVE_DECL_HTOBE64 1 +#endif +#ifdef htole64 +#define HAVE_DECL_HTOLE64 1 +#endif +#ifdef be64toh +#define HAVE_DECL_BE64TOH 1 +#endif +#ifdef le64toh +#define HAVE_DECL_LE64TOH 1 +#endif + +#endif // HAVE_CONFIG_H + +#if defined(WORDS_BIGENDIAN) + +#if HAVE_DECL_HTOBE16 == 0 +inline uint16_t htobe16(uint16_t host_16bits) +{ + return host_16bits; +} +#endif // HAVE_DECL_HTOBE16 + +#if HAVE_DECL_HTOLE16 == 0 +inline uint16_t htole16(uint16_t host_16bits) +{ + return bswap_16(host_16bits); +} +#endif // HAVE_DECL_HTOLE16 + +#if HAVE_DECL_BE16TOH == 0 +inline uint16_t be16toh(uint16_t big_endian_16bits) +{ + return big_endian_16bits; +} +#endif // HAVE_DECL_BE16TOH + +#if HAVE_DECL_LE16TOH == 0 +inline uint16_t le16toh(uint16_t little_endian_16bits) +{ + return bswap_16(little_endian_16bits); +} +#endif // HAVE_DECL_LE16TOH + +#if HAVE_DECL_HTOBE32 == 0 +inline uint32_t htobe32(uint32_t host_32bits) +{ + return host_32bits; +} +#endif // HAVE_DECL_HTOBE32 + +#if HAVE_DECL_HTOLE32 == 0 +inline uint32_t htole32(uint32_t host_32bits) +{ + return bswap_32(host_32bits); +} +#endif // HAVE_DECL_HTOLE32 + +#if HAVE_DECL_BE32TOH == 0 +inline uint32_t be32toh(uint32_t big_endian_32bits) +{ + return big_endian_32bits; +} +#endif // HAVE_DECL_BE32TOH + +#if HAVE_DECL_LE32TOH == 0 +inline uint32_t le32toh(uint32_t little_endian_32bits) +{ + return bswap_32(little_endian_32bits); +} +#endif // HAVE_DECL_LE32TOH + +#if HAVE_DECL_HTOBE64 == 0 +inline uint64_t htobe64(uint64_t host_64bits) +{ + return host_64bits; +} +#endif // HAVE_DECL_HTOBE64 + +#if HAVE_DECL_HTOLE64 == 0 +inline uint64_t htole64(uint64_t host_64bits) +{ + return bswap_64(host_64bits); +} +#endif // HAVE_DECL_HTOLE64 + +#if HAVE_DECL_BE64TOH == 0 +inline uint64_t be64toh(uint64_t big_endian_64bits) +{ + return big_endian_64bits; +} +#endif // HAVE_DECL_BE64TOH + +#if HAVE_DECL_LE64TOH == 0 +inline uint64_t le64toh(uint64_t little_endian_64bits) +{ + return bswap_64(little_endian_64bits); +} +#endif // HAVE_DECL_LE64TOH + +#else // WORDS_BIGENDIAN + +#if HAVE_DECL_HTOBE16 == 0 +inline uint16_t htobe16(uint16_t host_16bits) +{ + return bswap_16(host_16bits); +} +#endif // HAVE_DECL_HTOBE16 + +#if HAVE_DECL_HTOLE16 == 0 +inline uint16_t htole16(uint16_t host_16bits) +{ + return host_16bits; +} +#endif // HAVE_DECL_HTOLE16 + +#if HAVE_DECL_BE16TOH == 0 +inline uint16_t be16toh(uint16_t big_endian_16bits) +{ + return bswap_16(big_endian_16bits); +} +#endif // HAVE_DECL_BE16TOH + +#if HAVE_DECL_LE16TOH == 0 +inline uint16_t le16toh(uint16_t little_endian_16bits) +{ + return little_endian_16bits; +} +#endif // HAVE_DECL_LE16TOH + +#if HAVE_DECL_HTOBE32 == 0 +inline uint32_t htobe32(uint32_t host_32bits) +{ + return bswap_32(host_32bits); +} +#endif // HAVE_DECL_HTOBE32 + +#if HAVE_DECL_HTOLE32 == 0 +inline uint32_t htole32(uint32_t host_32bits) +{ + return host_32bits; +} +#endif // HAVE_DECL_HTOLE32 + +#if HAVE_DECL_BE32TOH == 0 +inline uint32_t be32toh(uint32_t big_endian_32bits) +{ + return bswap_32(big_endian_32bits); +} +#endif // HAVE_DECL_BE32TOH + +#if HAVE_DECL_LE32TOH == 0 +inline uint32_t le32toh(uint32_t little_endian_32bits) +{ + return little_endian_32bits; +} +#endif // HAVE_DECL_LE32TOH + +#if HAVE_DECL_HTOBE64 == 0 +inline uint64_t htobe64(uint64_t host_64bits) +{ + return bswap_64(host_64bits); +} +#endif // HAVE_DECL_HTOBE64 + +#if HAVE_DECL_HTOLE64 == 0 +inline uint64_t htole64(uint64_t host_64bits) +{ + return host_64bits; +} +#endif // HAVE_DECL_HTOLE64 + +#if HAVE_DECL_BE64TOH == 0 +inline uint64_t be64toh(uint64_t big_endian_64bits) +{ + return bswap_64(big_endian_64bits); +} +#endif // HAVE_DECL_BE64TOH + +#if HAVE_DECL_LE64TOH == 0 +inline uint64_t le64toh(uint64_t little_endian_64bits) +{ + return little_endian_64bits; +} +#endif // HAVE_DECL_LE64TOH + +#endif // WORDS_BIGENDIAN + +#endif // BITCOIN_COMPAT_ENDIAN_H diff --git a/src/consensus/merkle.cpp b/src/consensus/merkle.cpp new file mode 100644 index 0000000..e78345a --- /dev/null +++ b/src/consensus/merkle.cpp @@ -0,0 +1,172 @@ +// Copyright (c) 2015 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "merkle.h" +#include "hash.h" +#include "utilstrencodings.h" + +/* WARNING! If you're reading this because you're learning about crypto + and/or designing a new system that will use merkle trees, keep in mind + that the following merkle tree algorithm has a serious flaw related to + duplicate txids, resulting in a vulnerability (CVE-2012-2459). + The reason is that if the number of hashes in the list at a given time + is odd, the last one is duplicated before computing the next level (which + is unusual in Merkle trees). This results in certain sequences of + transactions leading to the same merkle root. For example, these two + trees: + A A + / \ / \ + B C B C + / \ | / \ / \ + D E F D E F F + / \ / \ / \ / \ / \ / \ / \ + 1 2 3 4 5 6 1 2 3 4 5 6 5 6 + for transaction lists [1,2,3,4,5,6] and [1,2,3,4,5,6,5,6] (where 5 and + 6 are repeated) result in the same root hash A (because the hash of both + of (F) and (F,F) is C). + The vulnerability results from being able to send a block with such a + transaction list, with the same merkle root, and the same block hash as + the original without duplication, resulting in failed validation. If the + receiving node proceeds to mark that block as permanently invalid + however, it will fail to accept further unmodified (and thus potentially + valid) versions of the same block. We defend against this by detecting + the case where we would hash two identical hashes at the end of the list + together, and treating that identically to the block having an invalid + merkle root. Assuming no double-SHA256 collisions, this will detect all + known ways of changing the transactions without affecting the merkle + root. +*/ + +/* This implements a constant-space merkle root/path calculator, limited to 2^32 leaves. */ +static void MerkleComputation(const std::vector& leaves, uint256* proot, bool* pmutated, uint32_t branchpos, std::vector* pbranch) { + if (pbranch) pbranch->clear(); + if (leaves.size() == 0) { + if (pmutated) *pmutated = false; + if (proot) *proot = uint256(); + return; + } + bool mutated = false; + // count is the number of leaves processed so far. + uint32_t count = 0; + // inner is an array of eagerly computed subtree hashes, indexed by tree + // level (0 being the leaves). + // For example, when count is 25 (11001 in binary), inner[4] is the hash of + // the first 16 leaves, inner[3] of the next 8 leaves, and inner[0] equal to + // the last leaf. The other inner entries are undefined. + uint256 inner[32]; + // Which position in inner is a hash that depends on the matching leaf. + int matchlevel = -1; + // First process all leaves into 'inner' values. + while (count < leaves.size()) { + uint256 h = leaves[count]; + bool matchh = count == branchpos; + count++; + int level; + // For each of the lower bits in count that are 0, do 1 step. Each + // corresponds to an inner value that existed before processing the + // current leaf, and each needs a hash to combine it. + for (level = 0; !(count & (((uint32_t)1) << level)); level++) { + if (pbranch) { + if (matchh) { + pbranch->push_back(inner[level]); + } else if (matchlevel == level) { + pbranch->push_back(h); + matchh = true; + } + } + mutated |= (inner[level] == h); + CHash256().Write(inner[level].begin(), 32).Write(h.begin(), 32).Finalize(h.begin()); + } + // Store the resulting hash at inner position level. + inner[level] = h; + if (matchh) { + matchlevel = level; + } + } + // Do a final 'sweep' over the rightmost branch of the tree to process + // odd levels, and reduce everything to a single top value. + // Level is the level (counted from the bottom) up to which we've sweeped. + int level = 0; + // As long as bit number level in count is zero, skip it. It means there + // is nothing left at this level. + while (!(count & (((uint32_t)1) << level))) { + level++; + } + uint256 h = inner[level]; + bool matchh = matchlevel == level; + while (count != (((uint32_t)1) << level)) { + // If we reach this point, h is an inner value that is not the top. + // We combine it with itself (Bitcoin's special rule for odd levels in + // the tree) to produce a higher level one. + if (pbranch && matchh) { + pbranch->push_back(h); + } + CHash256().Write(h.begin(), 32).Write(h.begin(), 32).Finalize(h.begin()); + // Increment count to the value it would have if two entries at this + // level had existed. + count += (((uint32_t)1) << level); + level++; + // And propagate the result upwards accordingly. + while (!(count & (((uint32_t)1) << level))) { + if (pbranch) { + if (matchh) { + pbranch->push_back(inner[level]); + } else if (matchlevel == level) { + pbranch->push_back(h); + matchh = true; + } + } + CHash256().Write(inner[level].begin(), 32).Write(h.begin(), 32).Finalize(h.begin()); + level++; + } + } + // Return result. + if (pmutated) *pmutated = mutated; + if (proot) *proot = h; +} + +uint256 ComputeMerkleRoot(const std::vector& leaves, bool* mutated) { + uint256 hash; + MerkleComputation(leaves, &hash, mutated, -1, NULL); + return hash; +} + +std::vector ComputeMerkleBranch(const std::vector& leaves, uint32_t position) { + std::vector ret; + MerkleComputation(leaves, NULL, NULL, position, &ret); + return ret; +} + +uint256 ComputeMerkleRootFromBranch(const uint256& leaf, const std::vector& vMerkleBranch, uint32_t nIndex) { + uint256 hash = leaf; + for (std::vector::const_iterator it = vMerkleBranch.begin(); it != vMerkleBranch.end(); ++it) { + if (nIndex & 1) { + hash = Hash(BEGIN(*it), END(*it), BEGIN(hash), END(hash)); + } else { + hash = Hash(BEGIN(hash), END(hash), BEGIN(*it), END(*it)); + } + nIndex >>= 1; + } + return hash; +} + +uint256 BlockMerkleRoot(const CBlock& block, bool* mutated) +{ + std::vector leaves; + leaves.resize(block.vtx.size()); + for (size_t s = 0; s < block.vtx.size(); s++) { + leaves[s] = block.vtx[s].GetHash(); + } + return ComputeMerkleRoot(leaves, mutated); +} + +std::vector BlockMerkleBranch(const CBlock& block, uint32_t position) +{ + std::vector leaves; + leaves.resize(block.vtx.size()); + for (size_t s = 0; s < block.vtx.size(); s++) { + leaves[s] = block.vtx[s].GetHash(); + } + return ComputeMerkleBranch(leaves, position); +} \ No newline at end of file diff --git a/src/consensus/merkle.h b/src/consensus/merkle.h new file mode 100644 index 0000000..8f4bf8a --- /dev/null +++ b/src/consensus/merkle.h @@ -0,0 +1,32 @@ +// Copyright (c) 2015 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_MERKLE +#define BITCOIN_MERKLE + +#include +#include + +#include "primitives/transaction.h" +#include "primitives/block.h" +#include "uint256.h" + +uint256 ComputeMerkleRoot(const std::vector& leaves, bool* mutated = NULL); +std::vector ComputeMerkleBranch(const std::vector& leaves, uint32_t position); +uint256 ComputeMerkleRootFromBranch(const uint256& leaf, const std::vector& branch, uint32_t position); + +/* + * Compute the Merkle root of the transactions in a block. + * *mutated is set to true if a duplicated subtree was found. + */ +uint256 BlockMerkleRoot(const CBlock& block, bool* mutated = NULL); + +/* + * Compute the Merkle branch for the tree of transactions in a block, for a + * given position. + * This can be verified using ComputeMerkleRootFromBranch. + */ +std::vector BlockMerkleBranch(const CBlock& block, uint32_t position); + +#endif \ No newline at end of file diff --git a/src/crypto/chacha20.cpp b/src/crypto/chacha20.cpp new file mode 100644 index 0000000..70c472b --- /dev/null +++ b/src/crypto/chacha20.cpp @@ -0,0 +1,128 @@ +// Copyright (c) 2017 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +// Based on the public domain implementation 'merged' by D. J. Bernstein +// See https://cr.yp.to/chacha.html. + +#include "crypto/common.h" +#include "crypto/chacha20.h" + +#include + +constexpr static inline uint32_t rotl32(uint32_t v, int c) { return (v << c) | (v >> (32 - c)); } + +#define QUARTERROUND(a,b,c,d) \ + a += b; d = rotl32(d ^ a, 16); \ + c += d; b = rotl32(b ^ c, 12); \ + a += b; d = rotl32(d ^ a, 8); \ + c += d; b = rotl32(b ^ c, 7); + +static const unsigned char sigma[] = "expand 32-byte k"; +static const unsigned char tau[] = "expand 16-byte k"; + +void ChaCha20::SetKey(const unsigned char* k, size_t keylen) +{ + const unsigned char *constants; + + input[4] = ReadLE32(k + 0); + input[5] = ReadLE32(k + 4); + input[6] = ReadLE32(k + 8); + input[7] = ReadLE32(k + 12); + if (keylen == 32) { /* recommended */ + k += 16; + constants = sigma; + } else { /* keylen == 16 */ + constants = tau; + } + input[8] = ReadLE32(k + 0); + input[9] = ReadLE32(k + 4); + input[10] = ReadLE32(k + 8); + input[11] = ReadLE32(k + 12); + input[0] = ReadLE32(constants + 0); + input[1] = ReadLE32(constants + 4); + input[2] = ReadLE32(constants + 8); + input[3] = ReadLE32(constants + 12); + input[12] = 0; + input[13] = 0; + input[14] = 0; + input[15] = 0; +} + +ChaCha20::ChaCha20() +{ + memset(input, 0, sizeof(input)); +} + +ChaCha20::ChaCha20(const unsigned char* k, size_t keylen) +{ + SetKey(k, keylen); +} + +void ChaCha20::SetIV(uint64_t iv) +{ + input[14] = iv; + input[15] = iv >> 32; +} + +void ChaCha20::Seek(uint64_t pos) +{ + input[12] = pos; + input[13] = pos >> 32; +} + +void ChaCha20::Output(unsigned char* c, size_t bytes) +{ + uint32_t x[16]; + uint32_t j[16]; + unsigned char *ctarget = nullptr; + unsigned char tmp[64]; + unsigned int i; + + if (!bytes) return; + + for (uint32_t i=0; i<16; i++) { + j[i] = input[i]; + } + + for (;;) { + if (bytes < 64) { + ctarget = c; + c = tmp; + } + for (uint32_t i=0; i<16; i++) { + x[i] = j[i]; + } + for (i = 20;i > 0;i -= 2) { + QUARTERROUND( x[0], x[4], x[8],x[12]) + QUARTERROUND( x[1], x[5], x[9],x[13]) + QUARTERROUND( x[2], x[6],x[10],x[14]) + QUARTERROUND( x[3], x[7],x[11],x[15]) + QUARTERROUND( x[0], x[5],x[10],x[15]) + QUARTERROUND( x[1], x[6],x[11],x[12]) + QUARTERROUND( x[2], x[7], x[8],x[13]) + QUARTERROUND( x[3], x[4], x[9],x[14]) + } + for (uint32_t i=0; i<16; i++) { + x[i] += j[i]; + } + + ++j[12]; + if (!j[12]) ++j[13]; + + for (uint32_t i=0; i<16; i++) { + WriteLE32(c + 4*i, x[i]); + } + + if (bytes <= 64) { + if (bytes < 64) { + for (i = 0;i < bytes;++i) ctarget[i] = c[i]; + } + input[12] = j[12]; + input[13] = j[13]; + return; + } + bytes -= 64; + c += 64; + } +} diff --git a/src/crypto/chacha20.h b/src/crypto/chacha20.h new file mode 100644 index 0000000..a305977 --- /dev/null +++ b/src/crypto/chacha20.h @@ -0,0 +1,26 @@ +// Copyright (c) 2017 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_CRYPTO_CHACHA20_H +#define BITCOIN_CRYPTO_CHACHA20_H + +#include +#include + +/** A PRNG class for ChaCha20. */ +class ChaCha20 +{ +private: + uint32_t input[16]; + +public: + ChaCha20(); + ChaCha20(const unsigned char* key, size_t keylen); + void SetKey(const unsigned char* key, size_t keylen); + void SetIV(uint64_t iv); + void Seek(uint64_t pos); + void Output(unsigned char* output, size_t bytes); +}; + +#endif // BITCOIN_CRYPTO_CHACHA20_H diff --git a/src/guiinterface.h b/src/guiinterface.h new file mode 100644 index 0000000..c5a6a2a --- /dev/null +++ b/src/guiinterface.h @@ -0,0 +1,126 @@ +// Copyright (c) 2010 Satoshi Nakamoto +// Copyright (c) 2012-2014 The Bitcoin developers +// Copyright (c) 2017-2019 The PIVX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_GUIINTERFACE_H +#define BITCOIN_GUIINTERFACE_H + +#include +#include + +#include +#include + +class CBasicKeyStore; +class CWallet; +class uint256; + +/** General change type (added, updated, removed). */ +enum ChangeType { + CT_NEW, + CT_UPDATED, + CT_DELETED +}; + +/** Signals for UI communication. */ +class CClientUIInterface +{ +public: + /** Flags for CClientUIInterface::ThreadSafeMessageBox */ + enum MessageBoxFlags { + ICON_INFORMATION = 0, + ICON_WARNING = (1U << 0), + ICON_ERROR = (1U << 1), + /** + * Mask of all available icons in CClientUIInterface::MessageBoxFlags + * This needs to be updated, when icons are changed there! + */ + ICON_MASK = (ICON_INFORMATION | ICON_WARNING | ICON_ERROR), + + /** These values are taken from qmessagebox.h "enum StandardButton" to be directly usable */ + BTN_OK = 0x00000400U, // QMessageBox::Ok + BTN_YES = 0x00004000U, // QMessageBox::Yes + BTN_NO = 0x00010000U, // QMessageBox::No + BTN_ABORT = 0x00040000U, // QMessageBox::Abort + BTN_RETRY = 0x00080000U, // QMessageBox::Retry + BTN_IGNORE = 0x00100000U, // QMessageBox::Ignore + BTN_CLOSE = 0x00200000U, // QMessageBox::Close + BTN_CANCEL = 0x00400000U, // QMessageBox::Cancel + BTN_DISCARD = 0x00800000U, // QMessageBox::Discard + BTN_HELP = 0x01000000U, // QMessageBox::Help + BTN_APPLY = 0x02000000U, // QMessageBox::Apply + BTN_RESET = 0x04000000U, // QMessageBox::Reset + /** + * Mask of all available buttons in CClientUIInterface::MessageBoxFlags + * This needs to be updated, when buttons are changed there! + */ + BTN_MASK = (BTN_OK | BTN_YES | BTN_NO | BTN_ABORT | BTN_RETRY | BTN_IGNORE | + BTN_CLOSE | + BTN_CANCEL | + BTN_DISCARD | + BTN_HELP | + BTN_APPLY | + BTN_RESET), + + /** Force blocking, modal message box dialog (not just OS notification) */ + MODAL = 0x10000000U, + + /** Do not print contents of message to debug log */ + SECURE = 0x40000000U, + + /** Predefined combinations for certain default usage cases */ + MSG_INFORMATION = ICON_INFORMATION, + MSG_WARNING = (ICON_WARNING | BTN_OK | MODAL), + MSG_ERROR = (ICON_ERROR | BTN_OK | MODAL), + MSG_INFORMATION_SNACK = 1U << 2 + }; + + /** Show message box. */ + boost::signals2::signal > ThreadSafeMessageBox; + + /** Progress message during initialization. */ + boost::signals2::signal InitMessage; + + /** Translate a message to the native language of the user. */ + boost::signals2::signal Translate; + + /** Number of network connections changed. */ + boost::signals2::signal NotifyNumConnectionsChanged; + + /** + * New, updated or cancelled alert. + * @note called with lock cs_mapAlerts held. + */ + boost::signals2::signal NotifyAlertChanged; + + /** A wallet has been loaded. */ + boost::signals2::signal LoadWallet; + + /** Show progress e.g. for verifychain */ + boost::signals2::signal ShowProgress; + + /** New block has been accepted */ + boost::signals2::signal NotifyBlockTip; + + /** New block has been accepted and is over a certain size */ + boost::signals2::signal NotifyBlockSize; + + /** Banlist did change. */ + boost::signals2::signal BannedListChanged; +}; + +extern CClientUIInterface uiInterface; + +/** + * Translation function: Call Translate signal on UI interface, which returns a boost::optional result. + * If no translation slot is registered, nothing is returned, and simply return the input. + */ +inline std::string _(const char* psz) +{ + boost::optional rv = uiInterface.Translate(psz); + return rv ? (*rv) : psz; +} + +#endif // BITCOIN_GUIINTERFACE_H diff --git a/src/httprpc.cpp b/src/httprpc.cpp new file mode 100644 index 0000000..7cc106f --- /dev/null +++ b/src/httprpc.cpp @@ -0,0 +1,198 @@ +// Copyright (c) 2015-2017 The Bitcoin Core developers +// Copyright (c) 2017-2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "httprpc.h" + +#include "base58.h" +#include "chainparams.h" +#include "httpserver.h" +#include "rpc/protocol.h" +#include "rpc/server.h" +#include "random.h" +#include "sync.h" +#include "util.h" +#include "utilstrencodings.h" +#include "guiinterface.h" + +#include // boost::trim + +/** Simple one-shot callback timer to be used by the RPC mechanism to e.g. + * re-lock the wellet. + */ +class HTTPRPCTimer : public RPCTimerBase +{ +public: + HTTPRPCTimer(struct event_base* eventBase, boost::function& func, int64_t millis) : + ev(eventBase, false, func) + { + struct timeval tv; + tv.tv_sec = millis/1000; + tv.tv_usec = (millis%1000)*1000; + ev.trigger(&tv); + } +private: + HTTPEvent ev; +}; + +class HTTPRPCTimerInterface : public RPCTimerInterface +{ +public: + HTTPRPCTimerInterface(struct event_base* base) : base(base) + { + } + const char* Name() + { + return "HTTP"; + } + RPCTimerBase* NewTimer(boost::function& func, int64_t millis) + { + return new HTTPRPCTimer(base, func, millis); + } +private: + struct event_base* base; +}; + + +/* Pre-base64-encoded authentication token */ +static std::string strRPCUserColonPass; +/* Stored RPC timer interface (for unregistration) */ +static HTTPRPCTimerInterface* httpRPCTimerInterface = 0; + +static void JSONErrorReply(HTTPRequest* req, const UniValue& objError, const UniValue& id) +{ + // Send error reply from json-rpc error object + int nStatus = HTTP_INTERNAL_SERVER_ERROR; + int code = find_value(objError, "code").get_int(); + + if (code == RPC_INVALID_REQUEST) + nStatus = HTTP_BAD_REQUEST; + else if (code == RPC_METHOD_NOT_FOUND) + nStatus = HTTP_NOT_FOUND; + + std::string strReply = JSONRPCReply(NullUniValue, objError, id); + + req->WriteHeader("Content-Type", "application/json"); + req->WriteReply(nStatus, strReply); +} + +static bool RPCAuthorized(const std::string& strAuth) +{ + if (strRPCUserColonPass.empty()) // Belt-and-suspenders measure if InitRPCAuthentication was not called + return false; + if (strAuth.substr(0, 6) != "Basic ") + return false; + std::string strUserPass64 = strAuth.substr(6); + boost::trim(strUserPass64); + std::string strUserPass = DecodeBase64(strUserPass64); + return TimingResistantEqual(strUserPass, strRPCUserColonPass); +} + +static bool HTTPReq_JSONRPC(HTTPRequest* req, const std::string &) +{ + // JSONRPC handles only POST + if (req->GetRequestMethod() != HTTPRequest::POST) { + req->WriteReply(HTTP_BAD_METHOD, "JSONRPC server handles only POST requests"); + return false; + } + // Check authorization + std::pair authHeader = req->GetHeader("authorization"); + if (!authHeader.first) { + req->WriteReply(HTTP_UNAUTHORIZED); + return false; + } + + if (!RPCAuthorized(authHeader.second)) { + LogPrintf("ThreadRPCServer incorrect password attempt from %s\n", req->GetPeer().ToString()); + + /* Deter brute-forcing + If this results in a DoS the user really + shouldn't have their RPC port exposed. */ + MilliSleep(250); + + req->WriteReply(HTTP_UNAUTHORIZED); + return false; + } + + JSONRequest jreq; + try { + // Parse request + UniValue valRequest; + if (!valRequest.read(req->ReadBody())) + throw JSONRPCError(RPC_PARSE_ERROR, "Parse error"); + + std::string strReply; + // singleton request + if (valRequest.isObject()) { + jreq.parse(valRequest); + + UniValue result = tableRPC.execute(jreq.strMethod, jreq.params); + + // Send reply + strReply = JSONRPCReply(result, NullUniValue, jreq.id); + + // array of requests + } else if (valRequest.isArray()) + strReply = JSONRPCExecBatch(valRequest.get_array()); + else + throw JSONRPCError(RPC_PARSE_ERROR, "Top-level object parse error"); + + req->WriteHeader("Content-Type", "application/json"); + req->WriteReply(HTTP_OK, strReply); + } catch (const UniValue& objError) { + JSONErrorReply(req, objError, jreq.id); + return false; + } catch (const std::exception& e) { + JSONErrorReply(req, JSONRPCError(RPC_PARSE_ERROR, e.what()), jreq.id); + return false; + } + return true; +} + +static bool InitRPCAuthentication() +{ + if (mapArgs["-rpcpassword"] == "") + { + LogPrintf("No rpcpassword set - using random cookie authentication\n"); + if (!GenerateAuthCookie(&strRPCUserColonPass)) { + uiInterface.ThreadSafeMessageBox( + _("Error: A fatal internal error occurred, see debug.log for details"), // Same message as AbortNode + "", CClientUIInterface::MSG_ERROR); + return false; + } + } else { + strRPCUserColonPass = mapArgs["-rpcuser"] + ":" + mapArgs["-rpcpassword"]; + } + return true; +} + +bool StartHTTPRPC() +{ + LogPrint("rpc", "Starting HTTP RPC server\n"); + if (!InitRPCAuthentication()) + return false; + + RegisterHTTPHandler("/", true, HTTPReq_JSONRPC); + + assert(EventBase()); + httpRPCTimerInterface = new HTTPRPCTimerInterface(EventBase()); + RPCSetTimerInterface(httpRPCTimerInterface); + return true; +} + +void InterruptHTTPRPC() +{ + LogPrint("rpc", "Interrupting HTTP RPC server\n"); +} + +void StopHTTPRPC() +{ + LogPrint("rpc", "Stopping HTTP RPC server\n"); + UnregisterHTTPHandler("/", true); + if (httpRPCTimerInterface) { + RPCUnsetTimerInterface(httpRPCTimerInterface); + delete httpRPCTimerInterface; + httpRPCTimerInterface = 0; + } +} diff --git a/src/httprpc.h b/src/httprpc.h new file mode 100644 index 0000000..d354457 --- /dev/null +++ b/src/httprpc.h @@ -0,0 +1,37 @@ +// Copyright (c) 2015 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_HTTPRPC_H +#define BITCOIN_HTTPRPC_H + +#include +#include + +class HTTPRequest; + +/** Start HTTP RPC subsystem. + * Precondition; HTTP and RPC has been started. + */ +bool StartHTTPRPC(); +/** Interrupt HTTP RPC subsystem. + */ +void InterruptHTTPRPC(); +/** Stop HTTP RPC subsystem. + * Precondition; HTTP and RPC has been stopped. + */ +void StopHTTPRPC(); + +/** Start HTTP REST subsystem. + * Precondition; HTTP and RPC has been started. + */ +bool StartREST(); +/** Interrupt RPC REST subsystem. + */ +void InterruptREST(); +/** Stop HTTP REST subsystem. + * Precondition; HTTP and RPC has been stopped. + */ +void StopREST(); + +#endif diff --git a/src/httpserver.cpp b/src/httpserver.cpp new file mode 100644 index 0000000..0ddaa43 --- /dev/null +++ b/src/httpserver.cpp @@ -0,0 +1,669 @@ +// Copyright (c) 2015 The Bitcoin Core developers +// Copyright (c) 2018-2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "httpserver.h" + +#include "chainparamsbase.h" +#include "compat.h" +#include "util.h" +#include "netbase.h" +#include "rpc/protocol.h" // For HTTP status codes +#include "sync.h" +#include "guiinterface.h" + +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#ifdef EVENT__HAVE_NETINET_IN_H +#include +#ifdef _XOPEN_SOURCE_EXTENDED +#include +#endif +#endif + +/** Maximum size of http request (request line + headers) */ +static const size_t MAX_HEADERS_SIZE = 8192; + +/** HTTP request work item */ +class HTTPWorkItem : public HTTPClosure +{ +public: + HTTPWorkItem(HTTPRequest* req, const std::string &path, const HTTPRequestHandler& func): + req(req), path(path), func(func) + { + } + void operator()() + { + func(req.get(), path); + } + + std::unique_ptr req; + +private: + std::string path; + HTTPRequestHandler func; +}; + +/** Simple work queue for distributing work over multiple threads. + * Work items are simply callable objects. + */ +template +class WorkQueue +{ +private: + /** Mutex protects entire object */ + std::mutex cs; + std::condition_variable cond; + /* XXX in C++11 we can use std::unique_ptr here and avoid manual cleanup */ + std::deque queue; + bool running; + size_t maxDepth; + int numThreads; + + /** RAII object to keep track of number of running worker threads */ + class ThreadCounter + { + public: + WorkQueue &wq; + ThreadCounter(WorkQueue &w): wq(w) + { + std::lock_guard lock(wq.cs); + wq.numThreads += 1; + } + ~ThreadCounter() + { + std::lock_guard lock(wq.cs); + wq.numThreads -= 1; + wq.cond.notify_all(); + } + }; + +public: + WorkQueue(size_t maxDepth) : running(true), + maxDepth(maxDepth), + numThreads(0) + { + } + /*( Precondition: worker threads have all stopped + * (call WaitExit) + */ + ~WorkQueue() + { + while (!queue.empty()) { + delete queue.front(); + queue.pop_front(); + } + } + /** Enqueue a work item */ + bool Enqueue(WorkItem* item) + { + std::unique_lock lock(cs); + if (queue.size() >= maxDepth) { + return false; + } + queue.push_back(item); + cond.notify_one(); + return true; + } + /** Thread function */ + void Run() + { + ThreadCounter count(*this); + while (running) { + WorkItem* i = 0; + { + std::unique_lock lock(cs); + while (running && queue.empty()) + cond.wait(lock); + if (!running) + break; + i = queue.front(); + queue.pop_front(); + } + (*i)(); + delete i; + } + } + /** Interrupt and exit loops */ + void Interrupt() + { + std::unique_lock lock(cs); + running = false; + cond.notify_all(); + } + /** Wait for worker threads to exit */ + void WaitExit() + { + std::unique_lock lock(cs); + while (numThreads > 0) + cond.wait(lock); + } + + /** Return current depth of queue */ + size_t Depth() + { + std::unique_lock lock(cs); + return queue.size(); + } +}; + +struct HTTPPathHandler +{ + HTTPPathHandler() {} + HTTPPathHandler(std::string prefix, bool exactMatch, HTTPRequestHandler handler): + prefix(prefix), exactMatch(exactMatch), handler(handler) + { + } + std::string prefix; + bool exactMatch; + HTTPRequestHandler handler; +}; + +/** HTTP module state */ + +//! libevent event loop +static struct event_base* eventBase = 0; +//! HTTP server +struct evhttp* eventHTTP = 0; +//! List of subnets to allow RPC connections from +static std::vector rpc_allow_subnets; +//! Work queue for handling longer requests off the event loop thread +static WorkQueue* workQueue = 0; +//! Handlers for (sub)paths +std::vector pathHandlers; +std::vector boundSockets; + +/** Check if a network address is allowed to access the HTTP server */ +static bool ClientAllowed(const CNetAddr& netaddr) +{ + if (!netaddr.IsValid()) + return false; + for (const CSubNet& subnet : rpc_allow_subnets) + if (subnet.Match(netaddr)) + return true; + return false; +} + +/** Initialize ACL list for HTTP server */ +static bool InitHTTPAllowList() +{ + rpc_allow_subnets.clear(); + rpc_allow_subnets.push_back(CSubNet("127.0.0.0/8")); // always allow IPv4 local subnet + rpc_allow_subnets.push_back(CSubNet("::1")); // always allow IPv6 localhost + if (mapMultiArgs.count("-rpcallowip")) { + const std::vector& vAllow = mapMultiArgs["-rpcallowip"]; + for (std::string strAllow : vAllow) { + CSubNet subnet(strAllow); + if (!subnet.IsValid()) { + uiInterface.ThreadSafeMessageBox( + strprintf("Invalid -rpcallowip subnet specification: %s. Valid are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24).", strAllow), + "", CClientUIInterface::MSG_ERROR); + return false; + } + rpc_allow_subnets.push_back(subnet); + } + } + std::string strAllowed; + for (const CSubNet& subnet : rpc_allow_subnets) + strAllowed += subnet.ToString() + " "; + LogPrint("http", "Allowing HTTP connections from: %s\n", strAllowed); + return true; +} + +/** HTTP request method as string - use for logging only */ +static std::string RequestMethodString(HTTPRequest::RequestMethod m) +{ + switch (m) { + case HTTPRequest::GET: + return "GET"; + break; + case HTTPRequest::POST: + return "POST"; + break; + case HTTPRequest::HEAD: + return "HEAD"; + break; + case HTTPRequest::PUT: + return "PUT"; + break; + default: + return "unknown"; + } +} + +/** HTTP request callback */ +static void http_request_cb(struct evhttp_request* req, void* arg) +{ + std::unique_ptr hreq(new HTTPRequest(req)); + + LogPrint("http", "Received a %s request for %s from %s\n", + RequestMethodString(hreq->GetRequestMethod()), hreq->GetURI(), hreq->GetPeer().ToString()); + + // Early address-based allow check + if (!ClientAllowed(hreq->GetPeer())) { + hreq->WriteReply(HTTP_FORBIDDEN); + return; + } + + // Early reject unknown HTTP methods + if (hreq->GetRequestMethod() == HTTPRequest::UNKNOWN) { + hreq->WriteReply(HTTP_BADMETHOD); + return; + } + + // Find registered handler for prefix + std::string strURI = hreq->GetURI(); + std::string path; + std::vector::const_iterator i = pathHandlers.begin(); + std::vector::const_iterator iend = pathHandlers.end(); + for (; i != iend; ++i) { + bool match = false; + if (i->exactMatch) + match = (strURI == i->prefix); + else + match = (strURI.substr(0, i->prefix.size()) == i->prefix); + if (match) { + path = strURI.substr(i->prefix.size()); + break; + } + } + + // Dispatch to worker thread + if (i != iend) { + std::unique_ptr item(new HTTPWorkItem(hreq.release(), path, i->handler)); + assert(workQueue); + if (workQueue->Enqueue(item.get())) + item.release(); /* if true, queue took ownership */ + else + item->req->WriteReply(HTTP_INTERNAL, "Work queue depth exceeded"); + } else { + hreq->WriteReply(HTTP_NOTFOUND); + } +} + +/** Callback to reject HTTP requests after shutdown. */ +static void http_reject_request_cb(struct evhttp_request* req, void*) +{ + LogPrint("http", "Rejecting request while shutting down\n"); + evhttp_send_error(req, HTTP_SERVUNAVAIL, NULL); +} +/** Event dispatcher thread */ +static bool ThreadHTTP(struct event_base* base, struct evhttp* http) +{ + RenameThread("bitcoin-http"); + LogPrint("http", "Entering http event loop\n"); + event_base_dispatch(base); + // Event loop will be interrupted by InterruptHTTPServer() + LogPrint("http", "Exited http event loop\n"); + return event_base_got_break(base) == 0; +} + +/** Bind HTTP server to specified addresses */ +static bool HTTPBindAddresses(struct evhttp* http) +{ + int defaultPort = GetArg("-rpcport", BaseParams().RPCPort()); + std::vector > endpoints; + + // Determine what addresses to bind to + if (!mapArgs.count("-rpcallowip")) { // Default to loopback if not allowing external IPs + endpoints.push_back(std::make_pair("::1", defaultPort)); + endpoints.push_back(std::make_pair("127.0.0.1", defaultPort)); + if (mapArgs.count("-rpcbind")) { + LogPrintf("WARNING: option -rpcbind was ignored because -rpcallowip was not specified, refusing to allow everyone to connect\n"); + } + } else if (mapArgs.count("-rpcbind")) { // Specific bind address + const std::vector& vbind = mapMultiArgs["-rpcbind"]; + for (std::vector::const_iterator i = vbind.begin(); i != vbind.end(); ++i) { + int port = defaultPort; + std::string host; + SplitHostPort(*i, port, host); + endpoints.push_back(std::make_pair(host, port)); + } + } else { // No specific bind address specified, bind to any + endpoints.push_back(std::make_pair("::", defaultPort)); + endpoints.push_back(std::make_pair("0.0.0.0", defaultPort)); + } + + // Bind addresses + for (std::vector >::iterator i = endpoints.begin(); i != endpoints.end(); ++i) { + LogPrint("http", "Binding RPC on address %s port %i\n", i->first, i->second); + evhttp_bound_socket *bind_handle = evhttp_bind_socket_with_handle(http, i->first.empty() ? NULL : i->first.c_str(), i->second); + if (bind_handle) { + boundSockets.push_back(bind_handle); + } else { + LogPrintf("Binding RPC on address %s port %i failed.\n", i->first, i->second); + } + } + return !boundSockets.empty(); +} + +/** Simple wrapper to set thread name and run work queue */ +static void HTTPWorkQueueRun(WorkQueue* queue) +{ + RenameThread("bitcoin-httpworker"); + queue->Run(); +} + +/** libevent event log callback */ +static void libevent_log_cb(int severity, const char *msg) +{ +#ifndef EVENT_LOG_WARN +// EVENT_LOG_WARN was added in 2.0.19; but before then _EVENT_LOG_WARN existed. +# define EVENT_LOG_WARN _EVENT_LOG_WARN +#endif + if (severity >= EVENT_LOG_WARN) // Log warn messages and higher without debug category + LogPrintf("libevent: %s\n", msg); + else + LogPrint("libevent", "libevent: %s\n", msg); +} + +bool InitHTTPServer() +{ + struct evhttp* http = 0; + struct event_base* base = 0; + + if (!InitHTTPAllowList()) + return false; + + if (GetBoolArg("-rpcssl", false)) { + uiInterface.ThreadSafeMessageBox( + "SSL mode for RPC (-rpcssl) is no longer supported.", + "", CClientUIInterface::MSG_ERROR); + return false; + } + + // Redirect libevent's logging to our own log + event_set_log_callback(&libevent_log_cb); +#if LIBEVENT_VERSION_NUMBER >= 0x02010100 + // If -debug=libevent, set full libevent debugging. + // Otherwise, disable all libevent debugging. + if (LogAcceptCategory("libevent")) + event_enable_debug_logging(EVENT_DBG_ALL); + else + event_enable_debug_logging(EVENT_DBG_NONE); +#endif +#ifdef WIN32 + evthread_use_windows_threads(); +#else + evthread_use_pthreads(); +#endif + + base = event_base_new(); // XXX RAII + if (!base) { + LogPrintf("Couldn't create an event_base: exiting\n"); + return false; + } + + /* Create a new evhttp object to handle requests. */ + http = evhttp_new(base); // XXX RAII + if (!http) { + LogPrintf("couldn't create evhttp. Exiting.\n"); + event_base_free(base); + return false; + } + + evhttp_set_timeout(http, GetArg("-rpcservertimeout", DEFAULT_HTTP_SERVER_TIMEOUT)); + evhttp_set_max_headers_size(http, MAX_HEADERS_SIZE); + evhttp_set_max_body_size(http, MAX_SIZE); + evhttp_set_gencb(http, http_request_cb, NULL); + + if (!HTTPBindAddresses(http)) { + LogPrintf("Unable to bind any endpoint for RPC server\n"); + evhttp_free(http); + event_base_free(base); + return false; + } + + LogPrint("http", "Initialized HTTP server\n"); + int workQueueDepth = std::max((long)GetArg("-rpcworkqueue", DEFAULT_HTTP_WORKQUEUE), 1L); + LogPrintf("HTTP: creating work queue of depth %d\n", workQueueDepth); + + workQueue = new WorkQueue(workQueueDepth); + eventBase = base; + eventHTTP = http; + return true; +} + +std::thread threadHTTP; +std::future threadResult; + +bool StartHTTPServer() +{ + LogPrint("http", "Starting HTTP server\n"); + int rpcThreads = std::max((long)GetArg("-rpcthreads", DEFAULT_HTTP_THREADS), 1L); + LogPrintf("HTTP: starting %d worker threads\n", rpcThreads); + std::packaged_task task(ThreadHTTP); + threadResult = task.get_future(); + threadHTTP = std::thread(std::move(task), eventBase, eventHTTP); + + for (int i = 0; i < rpcThreads; i++) { + std::thread rpc_worker(HTTPWorkQueueRun, workQueue); + rpc_worker.detach(); + } + return true; +} + +void InterruptHTTPServer() +{ + LogPrint("http", "Interrupting HTTP server\n"); + if (eventHTTP) { + for (evhttp_bound_socket *socket : boundSockets) { + evhttp_del_accept_socket(eventHTTP, socket); + } + evhttp_set_gencb(eventHTTP, http_reject_request_cb, NULL); + } + if (workQueue) + workQueue->Interrupt(); +} + +void StopHTTPServer() +{ + LogPrint("http", "Stopping HTTP server\n"); + if (workQueue) { + LogPrint("http", "Waiting for HTTP worker threads to exit\n"); + workQueue->WaitExit(); + delete workQueue; + } + MilliSleep(500); // Avoid race condition while the last HTTP-thread is exiting + if (eventBase) { + LogPrint("http", "Waiting for HTTP event thread to exit\n"); + // Give event loop a few seconds to exit (to send back last RPC responses), then break it + // Before this was solved with event_base_loopexit, but that didn't work as expected in + // at least libevent 2.0.21 and always introduced a delay. In libevent + // master that appears to be solved, so in the future that solution + // could be used again (if desirable). + // (see discussion in https://github.com/bitcoin/bitcoin/pull/6990) + if (threadResult.valid() && threadResult.wait_for(std::chrono::milliseconds(2000)) == std::future_status::timeout) { + LogPrintf("HTTP event loop did not exit within allotted time, sending loopbreak\n"); + event_base_loopbreak(eventBase); + + } + threadHTTP.join(); + } + if (eventHTTP) { + evhttp_free(eventHTTP); + eventHTTP = 0; + } + if (eventBase) { + event_base_free(eventBase); + eventBase = 0; + } + LogPrint("http", "Stopped HTTP server\n"); +} + +struct event_base* EventBase() +{ + return eventBase; +} + +static void httpevent_callback_fn(evutil_socket_t, short, void* data) +{ + // Static handler: simply call inner handler + HTTPEvent *self = ((HTTPEvent*)data); + self->handler(); + if (self->deleteWhenTriggered) + delete self; +} + +HTTPEvent::HTTPEvent(struct event_base* base, bool deleteWhenTriggered, const std::function& handler): + deleteWhenTriggered(deleteWhenTriggered), handler(handler) +{ + ev = event_new(base, -1, 0, httpevent_callback_fn, this); + assert(ev); +} +HTTPEvent::~HTTPEvent() +{ + event_free(ev); +} +void HTTPEvent::trigger(struct timeval* tv) +{ + if (tv == NULL) + event_active(ev, 0, 0); // immediately trigger event in main thread + else + evtimer_add(ev, tv); // trigger after timeval passed +} +HTTPRequest::HTTPRequest(struct evhttp_request* req) : req(req), + replySent(false) +{ +} +HTTPRequest::~HTTPRequest() +{ + if (!replySent) { + // Keep track of whether reply was sent to avoid request leaks + LogPrintf("%s: Unhandled request\n", __func__); + WriteReply(HTTP_INTERNAL, "Unhandled request"); + } + // evhttpd cleans up the request, as long as a reply was sent. +} + +std::pair HTTPRequest::GetHeader(const std::string& hdr) +{ + const struct evkeyvalq* headers = evhttp_request_get_input_headers(req); + assert(headers); + const char* val = evhttp_find_header(headers, hdr.c_str()); + if (val) + return std::make_pair(true, val); + else + return std::make_pair(false, ""); +} + +std::string HTTPRequest::ReadBody() +{ + struct evbuffer* buf = evhttp_request_get_input_buffer(req); + if (!buf) + return ""; + size_t size = evbuffer_get_length(buf); + /** Trivial implementation: if this is ever a performance bottleneck, + * internal copying can be avoided in multi-segment buffers by using + * evbuffer_peek and an awkward loop. Though in that case, it'd be even + * better to not copy into an intermediate string but use a stream + * abstraction to consume the evbuffer on the fly in the parsing algorithm. + */ + const char* data = (const char*)evbuffer_pullup(buf, size); + if (!data) // returns NULL in case of empty buffer + return ""; + std::string rv(data, size); + evbuffer_drain(buf, size); + return rv; +} + +void HTTPRequest::WriteHeader(const std::string& hdr, const std::string& value) +{ + struct evkeyvalq* headers = evhttp_request_get_output_headers(req); + assert(headers); + evhttp_add_header(headers, hdr.c_str(), value.c_str()); +} + +/** Closure sent to main thread to request a reply to be sent to + * a HTTP request. + * Replies must be sent in the main loop in the main http thread, + * this cannot be done from worker threads. + */ +void HTTPRequest::WriteReply(int nStatus, const std::string& strReply) +{ + assert(!replySent && req); + // Send event to main http thread to send reply message + struct evbuffer* evb = evhttp_request_get_output_buffer(req); + assert(evb); + evbuffer_add(evb, strReply.data(), strReply.size()); + HTTPEvent* ev = new HTTPEvent(eventBase, true, + std::bind(evhttp_send_reply, req, nStatus, (const char*)NULL, (struct evbuffer *)NULL)); + ev->trigger(0); + replySent = true; + req = 0; // transferred back to main thread +} + +CService HTTPRequest::GetPeer() +{ + evhttp_connection* con = evhttp_request_get_connection(req); + CService peer; + if (con) { + // evhttp retains ownership over returned address string + const char* address = ""; + uint16_t port = 0; + evhttp_connection_get_peer(con, (char**)&address, &port); + peer = CService(address, port); + } + return peer; +} + +std::string HTTPRequest::GetURI() +{ + return evhttp_request_get_uri(req); +} + +HTTPRequest::RequestMethod HTTPRequest::GetRequestMethod() +{ + switch (evhttp_request_get_command(req)) { + case EVHTTP_REQ_GET: + return GET; + break; + case EVHTTP_REQ_POST: + return POST; + break; + case EVHTTP_REQ_HEAD: + return HEAD; + break; + case EVHTTP_REQ_PUT: + return PUT; + break; + default: + return UNKNOWN; + break; + } +} + +void RegisterHTTPHandler(const std::string &prefix, bool exactMatch, const HTTPRequestHandler &handler) +{ + LogPrint("http", "Registering HTTP handler for %s (exactmatch %d)\n", prefix, exactMatch); + pathHandlers.push_back(HTTPPathHandler(prefix, exactMatch, handler)); +} + +void UnregisterHTTPHandler(const std::string &prefix, bool exactMatch) +{ + std::vector::iterator i = pathHandlers.begin(); + std::vector::iterator iend = pathHandlers.end(); + for (; i != iend; ++i) + if (i->prefix == prefix && i->exactMatch == exactMatch) + break; + if (i != iend) + { + LogPrint("http", "Unregistering HTTP handler for %s (exactmatch %d)\n", prefix, exactMatch); + pathHandlers.erase(i); + } +} diff --git a/src/httpserver.h b/src/httpserver.h new file mode 100644 index 0000000..e320026 --- /dev/null +++ b/src/httpserver.h @@ -0,0 +1,147 @@ +// Copyright (c) 2015 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_HTTPSERVER_H +#define BITCOIN_HTTPSERVER_H + +#include +#include +#include + +static const int DEFAULT_HTTP_THREADS=4; +static const int DEFAULT_HTTP_WORKQUEUE=16; +static const int DEFAULT_HTTP_SERVER_TIMEOUT=30; + +struct evhttp_request; +struct event_base; +class CService; +class HTTPRequest; + +/** Initialize HTTP server. + * Call this before RegisterHTTPHandler or EventBase(). + */ +bool InitHTTPServer(); +/** Start HTTP server. + * This is separate from InitHTTPServer to give users race-condition-free time + * to register their handlers between InitHTTPServer and StartHTTPServer. + */ +bool StartHTTPServer(); +/** Interrupt HTTP server threads */ +void InterruptHTTPServer(); +/** Stop HTTP server */ +void StopHTTPServer(); + +/** Handler for requests to a certain HTTP path */ +typedef std::function HTTPRequestHandler; +/** Register handler for prefix. + * If multiple handlers match a prefix, the first-registered one will + * be invoked. + */ +void RegisterHTTPHandler(const std::string &prefix, bool exactMatch, const HTTPRequestHandler &handler); +/** Unregister handler for prefix */ +void UnregisterHTTPHandler(const std::string &prefix, bool exactMatch); + +/** Return evhttp event base. This can be used by submodules to + * queue timers or custom events. + */ +struct event_base* EventBase(); + +/** In-flight HTTP request. + * Thin C++ wrapper around evhttp_request. + */ +class HTTPRequest +{ +private: + struct evhttp_request* req; + bool replySent; + +public: + HTTPRequest(struct evhttp_request* req); + ~HTTPRequest(); + + enum RequestMethod { + UNKNOWN, + GET, + POST, + HEAD, + PUT + }; + + /** Get requested URI. + */ + std::string GetURI(); + + /** Get CService (address:ip) for the origin of the http request. + */ + CService GetPeer(); + + /** Get request method. + */ + RequestMethod GetRequestMethod(); + + /** + * Get the request header specified by hdr, or an empty string. + * Return an pair (isPresent,std::string). + */ + std::pair GetHeader(const std::string& hdr); + + /** + * Read request body. + * + * @note As this consumes the underlying buffer, call this only once. + * Repeated calls will return an empty string. + */ + std::string ReadBody(); + + /** + * Write output header. + * + * @note call this before calling WriteErrorReply or Reply. + */ + void WriteHeader(const std::string& hdr, const std::string& value); + + /** + * Write HTTP reply. + * nStatus is the HTTP status code to send. + * strReply is the body of the reply. Keep it empty to send a standard message. + * + * @note Can be called only once. As this will give the request back to the + * main thread, do not call any other HTTPRequest methods after calling this. + */ + void WriteReply(int nStatus, const std::string& strReply = ""); +}; + +/** Event handler closure. + */ +class HTTPClosure +{ +public: + virtual void operator()() = 0; + virtual ~HTTPClosure() {} +}; + +/** Event class. This can be used either as an cross-thread trigger or as a timer. + */ +class HTTPEvent +{ +public: + /** Create a new event. + * deleteWhenTriggered deletes this event object after the event is triggered (and the handler called) + * handler is the handler to call when the event is triggered. + */ + HTTPEvent(struct event_base* base, bool deleteWhenTriggered, const std::function& handler); + ~HTTPEvent(); + + /** Trigger the event. If tv is 0, trigger it immediately. Otherwise trigger it after + * the given time has elapsed. + */ + void trigger(struct timeval* tv); + + bool deleteWhenTriggered; + std::function handler; +private: + struct event* ev; +}; + +#endif // BITCOIN_HTTPSERVER_H diff --git a/src/invalid.cpp b/src/invalid.cpp new file mode 100644 index 0000000..0a9ea86 --- /dev/null +++ b/src/invalid.cpp @@ -0,0 +1,90 @@ +// Copyright (c) 2018 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "invalid.h" +#include "invalid_outpoints.json.h" +#include "invalid_serials.json.h" + +namespace invalid_out +{ + std::set setInvalidSerials; + std::set setInvalidOutPoints; + + UniValue read_json(const std::string& jsondata) + { + UniValue v; + + if (!v.read(jsondata) || !v.isArray()) + { + return UniValue(UniValue::VARR); + } + return v.get_array(); + } + + bool LoadOutpoints() + { + UniValue v = read_json(LoadInvalidOutPoints()); + + if (v.empty()) + return false; + + for (unsigned int idx = 0; idx < v.size(); idx++) { + const UniValue &val = v[idx]; + const UniValue &o = val.get_obj(); + + const UniValue &vTxid = find_value(o, "txid"); + if (!vTxid.isStr()) + return false; + + uint256 txid = uint256(vTxid.get_str()); + if (txid == 0) + return false; + + const UniValue &vN = find_value(o, "n"); + if (!vN.isNum()) + return false; + + auto n = static_cast(vN.get_int()); + COutPoint out(txid, n); + setInvalidOutPoints.insert(out); + } + return true; + } + + bool LoadSerials() + { + UniValue v = read_json(LoadInvalidSerials()); + + if (v.empty()) + return false; + + for (unsigned int idx = 0; idx < v.size(); idx++) { + const UniValue &val = v[idx]; + const UniValue &o = val.get_obj(); + + const UniValue &vSerial = find_value(o, "s"); + if (!vSerial.isStr()) + return false; + + CBigNum bnSerial = 0; + bnSerial.SetHex(vSerial.get_str()); + if (bnSerial == 0) + return false; + setInvalidSerials.insert(bnSerial); + } + + return true; + } + + bool ContainsOutPoint(const COutPoint& out) + { + return static_cast(setInvalidOutPoints.count(out)); + } + + bool ContainsSerial(const CBigNum& bnSerial) + { + return static_cast(setInvalidSerials.count(bnSerial)); + } +} + diff --git a/src/invalid.h b/src/invalid.h new file mode 100644 index 0000000..adcf229 --- /dev/null +++ b/src/invalid.h @@ -0,0 +1,25 @@ +// Copyright (c) 2018 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PIVX_INVALID_H +#define PIVX_INVALID_H + +#endif //PIVX_INVALID_H + +#include +#include +#include + +namespace invalid_out +{ + extern std::set setInvalidSerials; + extern std::set setInvalidOutPoints; + + UniValue read_json(const std::string& jsondata); + + bool ContainsOutPoint(const COutPoint& out); + bool ContainsSerial(const CBigNum& bnSerial); + bool LoadOutpoints(); + bool LoadSerials(); +} \ No newline at end of file diff --git a/src/invalid_outpoints.json.h b/src/invalid_outpoints.json.h new file mode 100644 index 0000000..d9d61cb --- /dev/null +++ b/src/invalid_outpoints.json.h @@ -0,0 +1,6796 @@ +// Copyright (c) 2018 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PIVX_INVALID_OUTPOINTS_JSON_H +#define PIVX_INVALID_OUTPOINTS_JSON_H +#include + +std::string LoadInvalidOutPoints() +{ + std::string str = "[\n" + " {\n" + " \"txid\": \"00405ad8cc4ec7b6be27dedc6bf19f2febf8e338031fe552d7bf5c0dfd6e67de\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"00438a4c089b31f8b12c75c274eed5914a0e78f91bb8bb8cf52f2194b8190cdb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"00438a4c089b31f8b12c75c274eed5914a0e78f91bb8bb8cf52f2194b8190cdb\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0091d20a2af5f54e1cf5cd27cb5b7d2fe928db4cb9c40987d8ba8f206cff225a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0091d20a2af5f54e1cf5cd27cb5b7d2fe928db4cb9c40987d8ba8f206cff225a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0139e44f59fee4052d43cf709f3078cf489304d6107e9d7a0885b466a3a22dc6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0139e44f59fee4052d43cf709f3078cf489304d6107e9d7a0885b466a3a22dc6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"017ad2f684700eb538484231e5455d7613867cc4772c468d03e5bd99e8eb8e23\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"01d0113c48e1dfc08bff37faaeaa50a1eb98e26da20e860a2991a4dd3d2f3e61\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"01e74cc60b380a1102103f7df14bb8972b43fc2e3781a65920bf40c0e4b012e9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"01e74cc60b380a1102103f7df14bb8972b43fc2e3781a65920bf40c0e4b012e9\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"02484718907a39f8caa13d61a52e4e977d7bfe4703bda0b4a680e65e379b7eae\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"02484718907a39f8caa13d61a52e4e977d7bfe4703bda0b4a680e65e379b7eae\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"02ec53a6da7c0dcd662a4fd7d6af199ab48caf1d921aa1953e7ce110083cfcf9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0357a0a5011e8bd34d767b8aae1d5872edef12f668d84b5d4787c8f0b4b52746\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0357a0a5011e8bd34d767b8aae1d5872edef12f668d84b5d4787c8f0b4b52746\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"03bcbaf2c42a271ce5b1b0080c0bb57cd2f59dbbe71bb0170d0bf6a4f0c743f7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"040361e86ebd598eb580a9d3d00d482b55d793816b50882d5ce64dd1869a70e9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"040361e86ebd598eb580a9d3d00d482b55d793816b50882d5ce64dd1869a70e9\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0489446611c91f4e4c605e572e924871eb028643fa215a55f5464f77002c773c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0489446611c91f4e4c605e572e924871eb028643fa215a55f5464f77002c773c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"04ac31cd61ac6fd317e58b90e9a32ef6b03c067880bf27c055330742a1d2f019\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"04ac31cd61ac6fd317e58b90e9a32ef6b03c067880bf27c055330742a1d2f019\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"05661cbaf57d69e77fc7f721554bc0b073a0cb17a4f6ff91bd9555bd55bf5254\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"05730ffc2f0f00683c6ee8662dde8f6cd166ccd8f0597484b32aebe8e05104aa\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0583ae0ba9983215be2e1f2d67da43b3b37d1805d17811d81bdf9ae8699c8cf1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"05db42a11a2d59213c138764fb4a14ee50cb27ad8564685adc830cce0cd67815\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"06175aea562856aac029c14187624106a5e14552cbab440b4aa81c63329c35dc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"06175aea562856aac029c14187624106a5e14552cbab440b4aa81c63329c35dc\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0622cac4d75cae612a717a192a5b36d5d7c7d5d195db76c8bb2da5770ab79a1d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"06468b85a292d3176a17c3452f46d9d2f090c11e6af7c358440543f36dbddcc5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"06468b85a292d3176a17c3452f46d9d2f090c11e6af7c358440543f36dbddcc5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"065619befdddb2e6a5637e912c87cbff0d9678de5ebda22914f330bdba637da0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"06628c6e7bab04018035707554b5b32c6fad371bd549e36ea863b9abb2194e1c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"06628c6e7bab04018035707554b5b32c6fad371bd549e36ea863b9abb2194e1c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"06895aa5d28b45fb2f66a6a658b9c42a40c72d29f930969e573bdf4f2c65d19f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"071a08099310da3c409e2579c3bdcf9cfb854ccd9766b42ddaa4ad344509b891\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"07ae9fe0c4daf8c3a2d464c51ef2a90c4d0b79004326991ed84bb57ccd07aa75\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"07ae9fe0c4daf8c3a2d464c51ef2a90c4d0b79004326991ed84bb57ccd07aa75\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0812a19701fa062bfe20de85d5e21a897c9181a4e1a534339923b6f726130e35\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"081a70e987901b32bedbd6e65d8db3cb69bd6028fdf5484345e101849331a63f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"081a70e987901b32bedbd6e65d8db3cb69bd6028fdf5484345e101849331a63f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"08501c017c5a66f99a34d4719df9192e292a67d7e39bbc30cce0b0524cbfb321\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"08501c017c5a66f99a34d4719df9192e292a67d7e39bbc30cce0b0524cbfb321\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"089e44127ae51cf5d5882089f241fc1e1cc22b852d8f7f5f6f8dc91e4c4037f5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"089e44127ae51cf5d5882089f241fc1e1cc22b852d8f7f5f6f8dc91e4c4037f5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"08c1035b5302e3d73ab06bb6e9c20d736d1e02d8c10669dcf475958c9d5a9fba\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"09669ccfd0e55ee8f97a6e9295d697ced19a0e83fddc9d93c118ef580b9464de\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"09669ccfd0e55ee8f97a6e9295d697ced19a0e83fddc9d93c118ef580b9464de\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0993240231eccb835c0371088cfc7ee86885ba566adbf5ee206af121da9bf348\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0993240231eccb835c0371088cfc7ee86885ba566adbf5ee206af121da9bf348\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0a2df0ef5ac5db86869b4e118f45ef72421140635156ef424de907dc1d0165b3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0a2df0ef5ac5db86869b4e118f45ef72421140635156ef424de907dc1d0165b3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0a3d864593f59085f5b62e47af10769fec4a68ab03a116695c37a33d318cd1ba\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0a3d864593f59085f5b62e47af10769fec4a68ab03a116695c37a33d318cd1ba\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0a6099002810dc4065cec3bffa07c876e451b22b9c2700ebd29366846577661e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0a6099002810dc4065cec3bffa07c876e451b22b9c2700ebd29366846577661e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0a67f3b8210e12c4e4cbed5d9a46a3e07938d2af8dcfb5549c6ac4f873b2bc44\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0b88115d9645a51d9fa56f84e1d05b927949b933f6159c4eda6f304e4326d192\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0bd97e3d96405f80d736f292c05ef8d89ca4dc07c5e366e8e72c70fa0c73069f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0bd97e3d96405f80d736f292c05ef8d89ca4dc07c5e366e8e72c70fa0c73069f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0bf42890cc5957e41a04c88e167babed0857597163892ac53b1c46c6f5ed49e0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0bf42890cc5957e41a04c88e167babed0857597163892ac53b1c46c6f5ed49e0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0d08120f32d32e9d35c0f793e9c2dec52eb864caa085103056bfe7d813b24ddf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0d08120f32d32e9d35c0f793e9c2dec52eb864caa085103056bfe7d813b24ddf\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0d241b451d17e435e61a196cd275ef0034d1f101307859abafc3539646c85d0c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0d241b451d17e435e61a196cd275ef0034d1f101307859abafc3539646c85d0c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0d3f317455116bf3b05b0d9f0ab8cdb8ac2aa31b2c131ba38e17322f42ad8b82\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0d3f317455116bf3b05b0d9f0ab8cdb8ac2aa31b2c131ba38e17322f42ad8b82\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0dd771ea116c69ac2f42a4809f6207fe302532b963596226a1ee07dbf3ba4a8d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0dd771ea116c69ac2f42a4809f6207fe302532b963596226a1ee07dbf3ba4a8d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0df13e1ede2d64503dcd75b756a46a13658b91a6cf97465f424fb6e2287c52f9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0e2e43e761a0bc371a37f9dc3b0a02e4e6902a373de06d2e4e87e9a7b1e97bcc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0eb93ac17ae304f4bd175cc14296fef5acc52c14fa0afd75d9cd8b37a11a4ab2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0eb93ac17ae304f4bd175cc14296fef5acc52c14fa0afd75d9cd8b37a11a4ab2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0ebde08b36f3e1699b26b7e2b93f4a20d5280b1d419da4c2ec20beab18f22930\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0ebde08b36f3e1699b26b7e2b93f4a20d5280b1d419da4c2ec20beab18f22930\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0f036a997354c93f9ca34d70ad0ff5988bd0e28b2d89b1f57d05df37ff57ba5f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0f50959e88bc2dd96835f0dee3ccd9ff0832d66b7f3f2fdb99c25ada3e5899bd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0f50959e88bc2dd96835f0dee3ccd9ff0832d66b7f3f2fdb99c25ada3e5899bd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0f50fde9dbec1fa5418947e426dec21941de384c21dd61a6d5023294c94897f6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0f50fde9dbec1fa5418947e426dec21941de384c21dd61a6d5023294c94897f6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"0fc7311433f8e2931dbdd5aaae15e97e42cc3f474ae539f8f8eddfa032336fc8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"0fc7311433f8e2931dbdd5aaae15e97e42cc3f474ae539f8f8eddfa032336fc8\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"107757d0e2b6f9613401cc1c50dcd35c0c056c09a817f0549fa85ce60ef89d25\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1088aebc92c20c31f55a12e6c014360d50c97b2034d3a89e80fd53b43ec840b1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"108abf02d81486a1c6c33d96436cc0498f39233dee394ad1ad05e7a5e31d3779\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"10a83415a1fd677ec66da06bbeb4bb7fe691326960c2343b0ab4123d6012c86d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"10a83415a1fd677ec66da06bbeb4bb7fe691326960c2343b0ab4123d6012c86d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"111214208503954bc40a95382ab3c12e221718a3dd12f8800d607f05f691fab0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"111214208503954bc40a95382ab3c12e221718a3dd12f8800d607f05f691fab0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"11c7c35990a2e94f4440a8c9fb5b77de9bf7fc3adcfa35d5bfd3509cc2dbe1ad\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"11f1a21c092236a90c10e0202e1490e6e0336cef2727527a4518419346da0312\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"11f1a21c092236a90c10e0202e1490e6e0336cef2727527a4518419346da0312\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"11f2838ad108074df8b7adabaed73bf8c764ac2a116d525fcc7accfd02ecc38d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"12049cdd325438cb011787f8f59cd18111209fabbaabfa8f100c35522024f2f3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"121832beb663b51a7c03aa9a3800b1b74698c19095ffc93e9de97e066ef8f833\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1253897c64d0d87103f3824cb6e1886c5eb8f5cffbab62554bd4ba04a5b03aff\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1253897c64d0d87103f3824cb6e1886c5eb8f5cffbab62554bd4ba04a5b03aff\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"12600a57dab7c8d3cedfd5784716a6396eb1e0c1b25c0d09a746fceb9a0ee7fa\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"12cf428509f09983a15c00d443253515d874940d555cc3acf0035c0674ee60a1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"12cf428509f09983a15c00d443253515d874940d555cc3acf0035c0674ee60a1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"130bf14fd44a22f4d033dc057b9e20b829211e415f12adafcfbb326303bc92c8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"130e0295094e83e23c204e3bdd13a6a6a6b07f4bda51ad533200ea9a30a78dde\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1314219afcbf6f3fb185f4fd52ab03bcea04c0140b591888e2a35a1c5a95f420\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1314219afcbf6f3fb185f4fd52ab03bcea04c0140b591888e2a35a1c5a95f420\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"13b77e12b54aaff0e45b883bdcc7373fbb010cdb34001ef4e028fbc446ca6144\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"13fa26c0ed5f516c317c76dc32f907bc24cb5b23b9b32babe3b4d2a1f3e038c2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"13fa26c0ed5f516c317c76dc32f907bc24cb5b23b9b32babe3b4d2a1f3e038c2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"14084ac4fc5e1abec5da9168e06244785acb55825b6c5bf4342a9ee7aacb2211\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"14084ac4fc5e1abec5da9168e06244785acb55825b6c5bf4342a9ee7aacb2211\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"14d173bd618007c8f96121981d6271f9e1d26a7e224f207991dae6f4d759efad\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"14f775627b5e9b18cbd63a91f0b537649238d5a3654eaf0d9cd01b00e9929838\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"15566bd86e03604a46383d2b65fa619e5eae7ad88c5d88fdd8b80861176df6fa\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"15566bd86e03604a46383d2b65fa619e5eae7ad88c5d88fdd8b80861176df6fa\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"158e1e5e396e99b9e7b9e39853fca437a5dbbd4bf3a1e6d3aa90bed923ef0e99\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"158e1e5e396e99b9e7b9e39853fca437a5dbbd4bf3a1e6d3aa90bed923ef0e99\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"159591f7b062a198221deac1cbfe612458b24a8e91150980eec5d451b91657f7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"159591f7b062a198221deac1cbfe612458b24a8e91150980eec5d451b91657f7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"15f6651e62ff25ed50338765e44e948a8baf735de01f99a093b4609bd4cd008f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1648b142fe68303c5195a630c2eee0143ff1fa74087db0958ed3a6338253be60\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"166aacbae84f7fdce526de92849c72a9e8d4c863427d67ee1450fe934653d2ac\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"166aacbae84f7fdce526de92849c72a9e8d4c863427d67ee1450fe934653d2ac\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"16d27ac809bb613026f18a3255c941c5cdb14589a02d11fe0b48e845d8312689\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"177829c7de9b480b81927f80ab005cc9e7ba58a10a8d6b5908db95b8e54eac18\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"177829c7de9b480b81927f80ab005cc9e7ba58a10a8d6b5908db95b8e54eac18\",\n" + " \"n\": 2\n" + " },\n" + " {\n" + " \"txid\": \"18665cfb229c4933caf048ce2b95e066bc854596bb81d62c9dabe985e9635cd5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"19134f4d27a5402ef2b82d96b83f478b17798cfadc323c071dc74ed7ec7165fa\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"19134f4d27a5402ef2b82d96b83f478b17798cfadc323c071dc74ed7ec7165fa\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"196dae0b5880bc0b9015502298adf1a65b0ac2b391c0696530404d644bb127ba\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"197e857cc16314f156b68122695291e0721c440bf2fff5ca0120e47f1da358d1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"197e857cc16314f156b68122695291e0721c440bf2fff5ca0120e47f1da358d1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"19923ee0897ba0e3beb4683c2e5df8f956181feb1c49fddf6f6b44f28bb83cf5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"19923ee0897ba0e3beb4683c2e5df8f956181feb1c49fddf6f6b44f28bb83cf5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"199b9b2c5b96736c19a13f9f07365d8ec1b4bb56d8c0fa7dab6bd1bc50d8c522\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"199b9b2c5b96736c19a13f9f07365d8ec1b4bb56d8c0fa7dab6bd1bc50d8c522\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"19da31c5c53961c9c29abd76fe8fe2c55e73cf4e4a1936dff8b879bb13844f43\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"19da31c5c53961c9c29abd76fe8fe2c55e73cf4e4a1936dff8b879bb13844f43\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1a0910c3ca9a01a34706b53318d991bb1bdb1313f120701e9c6d89605c96ee97\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1a33e5140fac18a334315612940b2cded7418228e24e4712a1a874e05017070a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1a57e43844d2670839190c3617f027cc23110404d4c6f5b85ff73fce2e7028b8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1a69f50a7f1c197853fc146b3cb1c278f89b1a72aea7c9d1d64b75acd53eb2d7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1a69f50a7f1c197853fc146b3cb1c278f89b1a72aea7c9d1d64b75acd53eb2d7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1a96a2fb4fe59ae80190e15e87e4eac7c604b998b4d3f78cbffb95d6e4ea671b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1a96a2fb4fe59ae80190e15e87e4eac7c604b998b4d3f78cbffb95d6e4ea671b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1ae0ac2f6ba92760c36856b1f3dfc01026d75abfdf8c00621bc28a2db2c380e9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1ae0ac2f6ba92760c36856b1f3dfc01026d75abfdf8c00621bc28a2db2c380e9\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1b01e7daaed504b1dab238caa2369fa585c4ce5d22cccba3a5cc39df6a0d780d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1b01e7daaed504b1dab238caa2369fa585c4ce5d22cccba3a5cc39df6a0d780d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1b0d95efd87a9604d99402b5f2ef58fed33d94aae216b938979883a9639153ef\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1b0d95efd87a9604d99402b5f2ef58fed33d94aae216b938979883a9639153ef\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1b2dfb3c8824b5a93c28f63c226675762e1d401dfaa8cbd4380c15f40b8fd44e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1b2dfb3c8824b5a93c28f63c226675762e1d401dfaa8cbd4380c15f40b8fd44e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1b2e1983481f6c4b9da5460b9169b92031ee6b4d03eaccba246e5bdddef1f3dc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1ba5bdde0f31ac1e581aedf6da1229fb6c38176be43382494061f9690cf2869a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1ba5bdde0f31ac1e581aedf6da1229fb6c38176be43382494061f9690cf2869a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1bf2cfd9cedb058caee02f6c561a3df026f66f1cd3aebea5c131532c35ce8f64\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1c3ac61aead677c04bee734f29f1bfd896b8edf232c63c717460e7845256e3ed\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1c3ac61aead677c04bee734f29f1bfd896b8edf232c63c717460e7845256e3ed\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1c64d62fdbda9b0b6730152e7866576cb09fce1ea3e39cc3f2048f373d51338f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1c64d62fdbda9b0b6730152e7866576cb09fce1ea3e39cc3f2048f373d51338f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1cb84da323c53cb49294d5e00965d95801c0b28514322130357313770e0ab240\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1cb84da323c53cb49294d5e00965d95801c0b28514322130357313770e0ab240\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1cd0c0df697ecce58d7371e255fd452b6040d6ab5dd39575b5a984c332279333\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1cd0c0df697ecce58d7371e255fd452b6040d6ab5dd39575b5a984c332279333\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1d0da20ac550fc0dcae078ea8118d7d2d3ee0331e4f2fa1f68a4e3105a26b638\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1d0da20ac550fc0dcae078ea8118d7d2d3ee0331e4f2fa1f68a4e3105a26b638\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1d28a9f6a8ff5c4fabf1457f3def15586bf9452fb31fe6ed22c499792ecfe5c6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1d28a9f6a8ff5c4fabf1457f3def15586bf9452fb31fe6ed22c499792ecfe5c6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1d306a7d07aece5546f594e54eedccfacb27332149e3cc7ecfbbe8c4c4b20f0f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1d306a7d07aece5546f594e54eedccfacb27332149e3cc7ecfbbe8c4c4b20f0f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1d398e40c5e5ca00fc5e60b35a4eef15c86ee2a1d98bf11b0b3281e956b97482\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1d398e40c5e5ca00fc5e60b35a4eef15c86ee2a1d98bf11b0b3281e956b97482\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1e2caee2e2add82506213a6bebe22c0ae9517ed561cc2574f96f6846c3d69990\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1e4df7992c08783ab9c3252de58ddb58abd74103f03ec00568e066396de4aa45\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1e4df7992c08783ab9c3252de58ddb58abd74103f03ec00568e066396de4aa45\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1ed44f23e384722d04836b9f68a848216d419201cf512b3e98e1c92878e87c66\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1ed44f23e384722d04836b9f68a848216d419201cf512b3e98e1c92878e87c66\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1f20d7962b019613a16a5fae6c589d58f4dc111e309d16a97e02d1fa373f811d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1f619fb622c58ac5eb47ede8aa4d9381e71375c89835f752d7aecca6558f2dee\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1f619fb622c58ac5eb47ede8aa4d9381e71375c89835f752d7aecca6558f2dee\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"1f788a2449cb7686ab5f87735093b229b4739c138c409c6213a7865304556aa0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"1f788a2449cb7686ab5f87735093b229b4739c138c409c6213a7865304556aa0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"203f2fa072dec16b9025453c2bb54695dabdd5a458bd63dd32253862cd248bbe\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"203f2fa072dec16b9025453c2bb54695dabdd5a458bd63dd32253862cd248bbe\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"20f8762ca75f932edd0e922b934ad54be82a6a5cb7a3fdeda6b6fe2af9dedee8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"217e665294b5f43977f53dd34a030be6f813f9bc2f6c88402c769bab44c10395\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"217e665294b5f43977f53dd34a030be6f813f9bc2f6c88402c769bab44c10395\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"228115a174a51c23b5a7baf6d0de7be7654875486df843a98ee3c3c447992b46\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"228115a174a51c23b5a7baf6d0de7be7654875486df843a98ee3c3c447992b46\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"22b9ad2b0a376c135b9763e4e65ca9a8dbd07492c954046e3e0ec33a6c4b556c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"22b9ad2b0a376c135b9763e4e65ca9a8dbd07492c954046e3e0ec33a6c4b556c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"22c759a214d532c0fdce60758adc7dce600f365ae696038a503567333b06abd5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"22c759a214d532c0fdce60758adc7dce600f365ae696038a503567333b06abd5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"23486925a2cea21f4a5eef18040e4356174dd316c3d99ea4a7b2a5482febf62e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2372cdd7ea5c4491f67988262f68d3f531b130092e67e55f5d9b9dc82bd4d843\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"237d8eb09f2e691fb0c4d8793e1d84ff8407ce543e202a56fe00c462e770291b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"238c15f6bef55a1a450d94ee7af95cc285a287090efde788a7dd55c95d728c94\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"238c15f6bef55a1a450d94ee7af95cc285a287090efde788a7dd55c95d728c94\",\n" + " \"n\": 2\n" + " },\n" + " {\n" + " \"txid\": \"238f528f048ef8c40636e8bb56f12676b494f79f344677852f5876e5b185d8f7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"238f528f048ef8c40636e8bb56f12676b494f79f344677852f5876e5b185d8f7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"24678445b4c24dd0786de6115452bf64f616ad31aa03c51004ac4028b6f1f43c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"24678445b4c24dd0786de6115452bf64f616ad31aa03c51004ac4028b6f1f43c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"24a595be809e552319cd5b4f264be3b053fe8c780d843dd81a7b45282ed360bc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"24a595be809e552319cd5b4f264be3b053fe8c780d843dd81a7b45282ed360bc\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"24ba685f8bd3f4fd806e7f85864b9796ff9a889f2496362791b2101b1777be83\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"24ba685f8bd3f4fd806e7f85864b9796ff9a889f2496362791b2101b1777be83\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"253e1c05d09a9e77b2cc6c8c98315e0d522be2d9b8bbf976c00e0dbb1a6bddab\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"256b0da6517ad9a051202c183fa40823b06c70daafc3c48e6f2103b91706c921\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"256c9146466b57ad90a139cf1589164fa626217ae12b86d0177ca2e1464af060\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"256c9146466b57ad90a139cf1589164fa626217ae12b86d0177ca2e1464af060\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"259c8189b207af99686ee4129b1fd3a3c08163140d048a1eb0aa7ccb56198296\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"25af4a63ad75515616bc7be30c3e318e256292e275b62315d8a77511ea3c4f4c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"25d2e52bd41a76ac6284b975f72de0e49a78ebe72c7ce9d0141dcf6aea82f3af\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"25d2e52bd41a76ac6284b975f72de0e49a78ebe72c7ce9d0141dcf6aea82f3af\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"25f3ca7699d60bfba5e2c43a8795d5b26c0bdaf08f74f5998de1ea6049695eee\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"25f3ca7699d60bfba5e2c43a8795d5b26c0bdaf08f74f5998de1ea6049695eee\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"25f81c6be419a368abafc8a7e8926f90b579760c06ab26739b6f615c511c631c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"263ad4802d845502b5e68e8c38166e4b8a529e5d0b1769e9418db8173aed3b8c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"263ad4802d845502b5e68e8c38166e4b8a529e5d0b1769e9418db8173aed3b8c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"264f518f51f4d6529c06d5c9aab3b736d9c7af2197c372253be243adaffe1bf6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"264f518f51f4d6529c06d5c9aab3b736d9c7af2197c372253be243adaffe1bf6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"26717856eef42334c6c96d2e2c514dd7810fad1862592607767595d24edcfa0e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"26717856eef42334c6c96d2e2c514dd7810fad1862592607767595d24edcfa0e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2694d0c9f34def2f6e1b6b989ae3f6dfd2bde036834cffb2d014e7c3f01e8851\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2694d0c9f34def2f6e1b6b989ae3f6dfd2bde036834cffb2d014e7c3f01e8851\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"273226384a1f303f94d943e43b58b1a8f845be9894f404ee628a161eb36bc6ba\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"273226384a1f303f94d943e43b58b1a8f845be9894f404ee628a161eb36bc6ba\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"274c7c852ecd9675bfe009111b4d1a32bade381a1144124e8fecc266925cc320\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"274c7c852ecd9675bfe009111b4d1a32bade381a1144124e8fecc266925cc320\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"276adafb859206731fe91f78fccb70bc1c1bb5994e43811748c3a1274044cac8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"276adafb859206731fe91f78fccb70bc1c1bb5994e43811748c3a1274044cac8\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"281937915e6f100b7cfc375c2628dc65263eff1f95ff7eb90a040db4b09c6d94\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"286e660127a8bacf3b887285ada924447bffc3432cb94cc0d3c00d2fd6e123a2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"286e660127a8bacf3b887285ada924447bffc3432cb94cc0d3c00d2fd6e123a2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"28c08b2ad6aa361394cc42e6dcf6d453ca0e1855d58f1d998df4e706bd7afa21\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"28c08b2ad6aa361394cc42e6dcf6d453ca0e1855d58f1d998df4e706bd7afa21\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"29166d34a31a0ccdc42254c0f1533435d5f4e662d16652cc9c6eb2f3639ba8ba\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"29166d34a31a0ccdc42254c0f1533435d5f4e662d16652cc9c6eb2f3639ba8ba\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"29dcde5bdb4f0fe0983d38669ee5ceb9578f994df26c4c5ee0fe4527cc5c0d46\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"29dcde5bdb4f0fe0983d38669ee5ceb9578f994df26c4c5ee0fe4527cc5c0d46\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"29fe4707ddb1cd29a457dcb358a870c99e45af75336c45eae4a89a1a07800612\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2a295568d66aa2cd06fb2d89089f2616dfbaec10132d7c97f1232cc10891cc79\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2a7391913dc72ecde8973e4192eb4dbff3ee6d6472185093638f7aeeef78a800\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2a77be1aaf39825def6c77f447d6767043c5c21578113406b40b5a5b85f86a56\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2a77be1aaf39825def6c77f447d6767043c5c21578113406b40b5a5b85f86a56\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2ab0fbebe325d8a178b586523dd669adbc4e89ef95e3e64528625f0d6b5e896f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2ae82c8413426bbf0daa707970c01c7a72043f5cfa46d2d954a4c66a939c666a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2ae82c8413426bbf0daa707970c01c7a72043f5cfa46d2d954a4c66a939c666a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2af91c06d73b7139b333030639cf4ea7b159b56b26aaf4f6ecaf082d37c5f34c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2af91c06d73b7139b333030639cf4ea7b159b56b26aaf4f6ecaf082d37c5f34c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2b07dabbab647ee8658a3ed4c0e5e5f0a0e2e166985346921d1f674216006b5d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2b07dabbab647ee8658a3ed4c0e5e5f0a0e2e166985346921d1f674216006b5d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2bd381aaa5dcbea056cea479b1de373cdf4a01a7c89e61bc39ecaceacd0b5ba1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2bf190f07a2f8834940d3238182ddae2abde6532681fc9b0d35defa9bd999e14\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2bf190f07a2f8834940d3238182ddae2abde6532681fc9b0d35defa9bd999e14\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2bfdb0bd5b52c6abf7fab382b25111756ff308843a4069d5515fa13ab44d4761\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2bfdb0bd5b52c6abf7fab382b25111756ff308843a4069d5515fa13ab44d4761\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2c00e9693f85468daabf07f4e7ff36182814a2123baf17225aea584f2ca0830b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2c00e9693f85468daabf07f4e7ff36182814a2123baf17225aea584f2ca0830b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2c0c08652ecd0378d0adf80208cbb1ce89e8f448dbc50733fe20be6271631313\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2c0c08652ecd0378d0adf80208cbb1ce89e8f448dbc50733fe20be6271631313\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2c684582cf3228672baac8db0b35c436f5115fe6d51c73e046667483d58a05e9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2c684582cf3228672baac8db0b35c436f5115fe6d51c73e046667483d58a05e9\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2ce55c8d4dd3862685e3a3d490cc930d9f69e04696fa0febc1a41546066c4cdd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2d6fe7120112ec95877e9bb9a6b22b94e926b3f6de31254eb560a05ff17317fd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2d6fe7120112ec95877e9bb9a6b22b94e926b3f6de31254eb560a05ff17317fd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2e08fd6abc3ef4e6d069d1eeaf301ac638c2a9e2017d2d3e45c793ec753042ba\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2e08fd6abc3ef4e6d069d1eeaf301ac638c2a9e2017d2d3e45c793ec753042ba\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2e1108dd8df3acf59d77d23eb557b959e9cc5bf506c8e14079bda9a41b1ae29f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2e1108dd8df3acf59d77d23eb557b959e9cc5bf506c8e14079bda9a41b1ae29f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2e3b7806b8ab75063c2a86fc0587ab0f8b72e005e809aa826dedfaf28f06e05b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2e3b7806b8ab75063c2a86fc0587ab0f8b72e005e809aa826dedfaf28f06e05b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2e930e51a46ee8904654e66ecb4067519ca1a59577798b42e4c90f127e6a2305\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2e9da2ea1fd94e7527d58658c94b684a756e4108218d97c6065a4fb74a423ccc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2e9da2ea1fd94e7527d58658c94b684a756e4108218d97c6065a4fb74a423ccc\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2eed33f1f1524e302765d0504962071e21b2ca7ec2c17b5d3eb2561592bece07\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2eed33f1f1524e302765d0504962071e21b2ca7ec2c17b5d3eb2561592bece07\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2f0c506d3a98018195c0d99b51afe33369d82104f3e2cb2ba6a65bd8eb981282\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2f2c78c8c300e8d31670edc55b7a55d8263dd146a2fcc38313f5ff5072694886\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2f2c78c8c300e8d31670edc55b7a55d8263dd146a2fcc38313f5ff5072694886\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"2fda819426d12459be8730c8c3e697abb81fdcdef15f74f32d704e9e646f41a8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"2fda819426d12459be8730c8c3e697abb81fdcdef15f74f32d704e9e646f41a8\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3034ffa2738687797af85ab0e5f2ec1d6d38fd61babff364611567d02ae687e6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3034ffa2738687797af85ab0e5f2ec1d6d38fd61babff364611567d02ae687e6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"303cdb125293d7f4f0a5a5d2337f0e91e75d4b33a7e27fac40c74555f4ce16a1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"303cdb125293d7f4f0a5a5d2337f0e91e75d4b33a7e27fac40c74555f4ce16a1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"305f457b2309c655962d252f42efd960d7e4699ffc7dbcca637e460e98586ea6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"30a92b814fd10b4c4f9329f474de5b5806f4d5a00217216471f16bfe7f80ac7a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"30a92b814fd10b4c4f9329f474de5b5806f4d5a00217216471f16bfe7f80ac7a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"314be7b6d4574fac048e2c97eddd011e809b804da7341676f63a501bf18d2386\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"314be7b6d4574fac048e2c97eddd011e809b804da7341676f63a501bf18d2386\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"31ef92733fb5ea8b0da45258d2aaf67ff255d4f05a5bfe84e0f144dc434c6f50\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"31ef92733fb5ea8b0da45258d2aaf67ff255d4f05a5bfe84e0f144dc434c6f50\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3210f61ceccec3bde42490c267373ada61ce6ed0f7204ab76681ee966de732c1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3210f61ceccec3bde42490c267373ada61ce6ed0f7204ab76681ee966de732c1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"324dcad13a5cea1ba08cd7a27d4559b7c8f321b61d8b2e04907a7821323819c6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"324dcad13a5cea1ba08cd7a27d4559b7c8f321b61d8b2e04907a7821323819c6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3295926f48ce12a3445e3aa5412087d2a5dae4dee039add0c5a859cb6582b9f2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"32c8c2f00b864ddaf1887fc2c1029f7a562e3712d2f42022bfd209b99025d4e7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"32c8c2f00b864ddaf1887fc2c1029f7a562e3712d2f42022bfd209b99025d4e7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3302fdd27067f17c81145ebc39d84137216afe371c1c660177496293ce52a70a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3302fdd27067f17c81145ebc39d84137216afe371c1c660177496293ce52a70a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3310efe747db9bdca25ba6e6fee9233862620956ab82b5188f849fdfb9808eaf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3310efe747db9bdca25ba6e6fee9233862620956ab82b5188f849fdfb9808eaf\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3367dd22a7d180cdc7ce2ad4781b1f9350a17ed252cb030c23e944d9fd67c50e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"33a5edfe20ddcbc65653047fe029ffdff9a08656c056fe773b2128b4e7240f98\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"33a5edfe20ddcbc65653047fe029ffdff9a08656c056fe773b2128b4e7240f98\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3423753ded761fb2b353c3cca0868edb6692decfcffcfeef372b70b4b646c9b3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3423753ded761fb2b353c3cca0868edb6692decfcffcfeef372b70b4b646c9b3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3493e2d113bafcd645a3f0b2b872a44df0d16b1828fa3bf3a0ebc4d4be3fa96e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"353bc1160164eca3c00974ed637f2df3ef4d628c25d91af9f0c4e0d857053443\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"353bc1160164eca3c00974ed637f2df3ef4d628c25d91af9f0c4e0d857053443\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"353c3efbe42b4179b872e151a53687c3448e91e99e1782993de9ac6e7ac66907\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"353fd3bb12bf0912497131ece5af831f867e076e89539a2ff3324b37b025519a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"353fd3bb12bf0912497131ece5af831f867e076e89539a2ff3324b37b025519a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3551d10ff3ac0c7f7c51f81fcb20a01876778eb316986afb3fbbbf7dce0924ab\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"35758c96296b89ab39013c0c08aff917a3907e5c4b516cf088543460e6d1e0ac\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"35d3f5548b496f115b6a62a0ace40123e1f8ad9618f86710099b0eab801901fd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"35ea61ffbafdf497a9570e079e9820afb6d57bb9ad7ea4184b7378cbccc92081\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"35ea61ffbafdf497a9570e079e9820afb6d57bb9ad7ea4184b7378cbccc92081\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"35eaf70bd70e6ef92c15a2a056bd1eaff91c310f5156ac45f979fa7c30b80f3b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"35eaf70bd70e6ef92c15a2a056bd1eaff91c310f5156ac45f979fa7c30b80f3b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3728f895d1fcfbcacb98853e5aa92a2e2294817e70fe1b91f2a9e384c2333714\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3728f895d1fcfbcacb98853e5aa92a2e2294817e70fe1b91f2a9e384c2333714\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3760fdcefd3aa2c9f44541f1111fd774480a82ed5b5170a08d4fa81c42ca2727\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"37b1fae4fd0e8dd448977a9320ef20707d0d909f3e2257e8b5456ca056e513f3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"37b5e8f91004a59e577ebb3eda1f055fbb044f849b338dc51e12224b0dc3c2c4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"38032efcfc820a70bd039f84fde45e3b168d78212005bcf7ea97033871981ff6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"38032efcfc820a70bd039f84fde45e3b168d78212005bcf7ea97033871981ff6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"38447dab6074aecf97cc464146691a2c1777b332197b9101c1eaae5d1cd297ce\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3854c928b2adb416e57d338d5cab5b4ce1a3f47497242cf5bd5df2ea55872fee\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3854c928b2adb416e57d338d5cab5b4ce1a3f47497242cf5bd5df2ea55872fee\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3888892374e263be121b40dc008ccd6f0644435632643a7f3f213195bac60887\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"38a4008e0bb6bcf413bfb6a24090ba87ab845634964f5c9462f4109f23badd0a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"38a4008e0bb6bcf413bfb6a24090ba87ab845634964f5c9462f4109f23badd0a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"38a831395c02d661a2231e24374f7b40a7953c45200e0832dd90bb9b10950f6b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"38a831395c02d661a2231e24374f7b40a7953c45200e0832dd90bb9b10950f6b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"38b776da06f979925b22db7a19e9933092b5029980693a89698081daa8c55c64\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"38b776da06f979925b22db7a19e9933092b5029980693a89698081daa8c55c64\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"38eb88f71c91d5e281b203a170ce46bac91b81f295de889ab7d1d9f4711cb9b1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3943bb560d531e4f988ccd47896b3c4dc47fa740cd34fa694a4798c6127f47b8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"396171b3f42e100fa29a303efb7abf82312384a4e7ee2e51a55b49033f224321\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"396171b3f42e100fa29a303efb7abf82312384a4e7ee2e51a55b49033f224321\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"39762718a9ed6cc48266a48ccb1b0075efcb086487c403deb484e8288fe9652f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"39b68a2c6b67bc5cca12c43a58070fab7c847852e2bd95370afddccec567bef7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"39b68a2c6b67bc5cca12c43a58070fab7c847852e2bd95370afddccec567bef7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3a27e02a5ed7f9104e08846364eec0254f925d621751fd18f5105eac8ecfc544\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3a27e02a5ed7f9104e08846364eec0254f925d621751fd18f5105eac8ecfc544\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3a59c0a7b99030389f13d844554612e4fa0d7c0f6768a2339569708ea7a76475\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3a85be3170d1505cc7fd4be1f5302e851b5d0a025d87a2367f66a1aa3df0754a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3a85be3170d1505cc7fd4be1f5302e851b5d0a025d87a2367f66a1aa3df0754a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3b457d2ef1d9529af63b4bd2612f0faa64914b0e51d7a062e72dc26f549b1d59\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3b55c35db1961e338a837327f3e959798bfd43146c69a4b61d0b8cc24f7c726d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3b55c35db1961e338a837327f3e959798bfd43146c69a4b61d0b8cc24f7c726d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3b6400e3a8d72b71a9494c8f24a26c4c7644d3828ff6d38c9589fed135b1f9de\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3b9c7a4fc9eb0cefd3f40be45b8054884d86da1a4358bae15133015a4967ad3b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3ba707c1910ae8b86818170baf7306b861c58c6d0cfdc70af7a5e2efd6f5049a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3ba707c1910ae8b86818170baf7306b861c58c6d0cfdc70af7a5e2efd6f5049a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3baf760020881cc9ed516ec8928f47d241bf075fcb9d0706c15eab79ecf88830\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3bb4751e54c38a3cca9522ed49341d95b29bb9d8a3aaea7284940fbdf6ecc4e9\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3bb4751e54c38a3cca9522ed49341d95b29bb9d8a3aaea7284940fbdf6ecc4e9\",\n" + " \"n\": 2\n" + " },\n" + " {\n" + " \"txid\": \"3bcccff7cb1894be9a37ebd93f784cf0efbbc939ed86191033a391eb7088d6a1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3bcccff7cb1894be9a37ebd93f784cf0efbbc939ed86191033a391eb7088d6a1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3c5d1c9091c8112b121b53fbc8947b6b357241d49667c43ecaa615acc880ea47\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3c606b6c26dad2d55986604e70b37bd27e4815f757fbb4c92aa03036a7d5a006\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3c606b6c26dad2d55986604e70b37bd27e4815f757fbb4c92aa03036a7d5a006\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3d5dae6644616f0afb4c17cad8623d9a242f3cd14380121350686006547fc9a2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3d9a3b3e0c90b349644585c3ec06e41b034da7bcff7245d079ef05fb513cdefd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3db7dbcedb913c41237515b2c1abe0e69f09e36d33c6c91ea11d2cbe1bc47c05\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3db7dbcedb913c41237515b2c1abe0e69f09e36d33c6c91ea11d2cbe1bc47c05\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3df0e0b627247ced549498b67b3525d49d420a97130180980d92cadeec4658f5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3df0e0b627247ced549498b67b3525d49d420a97130180980d92cadeec4658f5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3e64214b169f6164918ac96da7c2f17599981410993ef2b36b1015453870754f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3ed15809c9819ab996f1a1740bd132b127b0bec4e94f3ca0fff606cda3282b15\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3ed15809c9819ab996f1a1740bd132b127b0bec4e94f3ca0fff606cda3282b15\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3ed3db178be348fb83ea2a96ced5453460bf35522d78c8c0fb3bff77ff4111af\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3ed3db178be348fb83ea2a96ced5453460bf35522d78c8c0fb3bff77ff4111af\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3f4da8b86ac4f1086d7abdba738c821d6b05cc4c4abe5fe941444f6bb6a10f1c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3f532b62dc44d542930549dd53c060ae0d5b81510ceb5325b49ef06eb7277a2a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3f532b62dc44d542930549dd53c060ae0d5b81510ceb5325b49ef06eb7277a2a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"3f79af6fd74215200acf22b7fe22071dc14315fd3efed71b976694f4efffc211\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3fb7ec8cc84adfb889da2972c2fc3ac3107053f312dc6734d987b108ff0a11c1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3fe5c9c0df766f5c92051431051022dbbbf7c1f06783f992429ba79214e2c36c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"3fe5c9c0df766f5c92051431051022dbbbf7c1f06783f992429ba79214e2c36c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"405f1a268a38ed898618cc3e693192e100bcf59953f931bf80c9c0494ccfefa4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"405f1a268a38ed898618cc3e693192e100bcf59953f931bf80c9c0494ccfefa4\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"40e83b8e2320fa89b560f42f276374c4431b9f4de625491627e06ef1c813cbfd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"40e83b8e2320fa89b560f42f276374c4431b9f4de625491627e06ef1c813cbfd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"40f01268e852fa9479c851a4ad35b73c3ea9c5fd5c874f888b1808121eaaab8e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"40fdf22559523786d6d90bb20699f70c45f7ba26c97729a47ad33eb713d56211\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"41e08e8641f1ba803b41402902b2606ca158b467f509aca2bbb674b3c70c7715\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"41e08e8641f1ba803b41402902b2606ca158b467f509aca2bbb674b3c70c7715\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"42100de8a02827d7fbddb1dca908ae31b25ddce07b74640e03ce5adacfc84b9a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"42100de8a02827d7fbddb1dca908ae31b25ddce07b74640e03ce5adacfc84b9a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4246278f8f01e48fdb85be9d6b3ef7851385fd40cd135bfff18267f38f276aac\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"425ab0bd4390e9eb23a511c2b7869d3af9d2b6ea6415516caa8dee78f7c2e682\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"425ab0bd4390e9eb23a511c2b7869d3af9d2b6ea6415516caa8dee78f7c2e682\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"42c5caf2a895ba6292be46abce93e6f0e960bca696e0a7f47eaf47961cea0e2e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"42c5caf2a895ba6292be46abce93e6f0e960bca696e0a7f47eaf47961cea0e2e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"42ccf80d5b9e0a8e900131bd39b623d7539a61015c4ec18c5adfda0e8cc19db3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"42fed751a1878f27c8616e6a19e43a79ba824184f2ac9f4027d2b2204277196c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"42fed751a1878f27c8616e6a19e43a79ba824184f2ac9f4027d2b2204277196c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"434a02d607e4c2fc7420e3eb7e5d16fb68c871a7c3d7d1240d297ed9e363170a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"435ab9860930a11eeef78e347bc1c39c66b4fa3fabffba7634c894014a77cc4f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"435ab9860930a11eeef78e347bc1c39c66b4fa3fabffba7634c894014a77cc4f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"439759d0e722f730c30fac7983a5e642cafe1343c828ca4248a0d07107d8a0f4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"439759d0e722f730c30fac7983a5e642cafe1343c828ca4248a0d07107d8a0f4\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"43e50cad7097eb57b3e672fb46dc11215d99ded634fb29abf65068e30919366c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"43e50cad7097eb57b3e672fb46dc11215d99ded634fb29abf65068e30919366c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"43ea5c5a5edee112288db368bba3df4d4faff593145ffb28acf94efe8015d258\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"43ea5c5a5edee112288db368bba3df4d4faff593145ffb28acf94efe8015d258\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"43f66ff2029169dc5e00cd8e54cf53f688b69fda8c741f5021d2ea93aaa5992e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"43f66ff2029169dc5e00cd8e54cf53f688b69fda8c741f5021d2ea93aaa5992e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"43feb89bf957b2eff5654fd1f1e9f9b72ee48be70d1f16dd0da4d9b6bde02d7f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"43feb89bf957b2eff5654fd1f1e9f9b72ee48be70d1f16dd0da4d9b6bde02d7f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"44068ba68efeef1a6605b5ea100feb523733c757b8243b42b874ea4ee9b9d569\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4433b96cfeee3e2c0984b3dc342fe342ec3a9481deca3c52b69e661a1a5bfc9a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4433b96cfeee3e2c0984b3dc342fe342ec3a9481deca3c52b69e661a1a5bfc9a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4452bfde6b20f68e5a4d2ded55f69d200d21608e965662268a8ce745002d282a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4452bfde6b20f68e5a4d2ded55f69d200d21608e965662268a8ce745002d282a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"44e5bdf9e8ef7f8c6f21a161e2a34e21ab50cc383d97ba894e3c0d169bd9f45e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"44e5bdf9e8ef7f8c6f21a161e2a34e21ab50cc383d97ba894e3c0d169bd9f45e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"44e75cd3d95ef4719f318ba9d5af0a636c2d28dbe9e1c4fba0a842a894627de5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"44e75cd3d95ef4719f318ba9d5af0a636c2d28dbe9e1c4fba0a842a894627de5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"45625bbc31e6055a3d7ac9109c415245566be8b7f02e30e6db275183280bda22\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"45625bbc31e6055a3d7ac9109c415245566be8b7f02e30e6db275183280bda22\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"469f132fc523fa6840967a9a7ec7b794cca5fea7f368c7c50552b68c556bf7e5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"469f132fc523fa6840967a9a7ec7b794cca5fea7f368c7c50552b68c556bf7e5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"46e6e427d397c1c3e85791c91848aa2e814cb1bc982df40107d863be8ef15672\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"47893a8ba11a2e958c1809525f366afa07f6ebc35b1a88b25410c8dabda2a3b4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"47d200757556febf055f8caf9f3f1f36fcb7a64c9ef2fb5096b8850a0ed422d7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"47d200757556febf055f8caf9f3f1f36fcb7a64c9ef2fb5096b8850a0ed422d7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"47ee069817a05be7694448834b51485d94c59b211b0a78a5960bcf4fb63cb784\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"48176cb0c7ee5e8eb8bdc4ed0fc7099421d24b1bdefda228004360da0c7e2128\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"48176cb0c7ee5e8eb8bdc4ed0fc7099421d24b1bdefda228004360da0c7e2128\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"481f5c7a55e1c54ded35e61fe71c21d72ab0df0f1a303bd8876f35370671ddfd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"481f5c7a55e1c54ded35e61fe71c21d72ab0df0f1a303bd8876f35370671ddfd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"483f4fbc09217bbce226e49bd499fff71a04f51caacad559421766ff14022cef\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4841ba39c65183a86bbed010b79fba504f59dda4bb531b6c2d7aabaaa9de2f3a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4841ba39c65183a86bbed010b79fba504f59dda4bb531b6c2d7aabaaa9de2f3a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4848331591cadc3f7652c1191232c01264412dd0b3239ac62a7605655201ee38\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"485039c53471026b90a334a6949e8cb8b62d39586219a2f1533f0b274c0a58db\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"491b5a5fffc4aab3546c0b65cad05052fbe2817ea7ad556446315bc6ab74934f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4a91fb0549f50ce6cb23c366b7126d9ca2861ddcd45f479e5b49d3fff36ed3c4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4ac3621ab50aebcb2943e031ab798f482769f762c586e3cddd3c1342924c2e0c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4ac3621ab50aebcb2943e031ab798f482769f762c586e3cddd3c1342924c2e0c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4ae3bf1ac3ece330a2559ba0f3ffe8649a3833e8ea0c1929f861674535a3579a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4b220399906ac10d91e771e47061b5f9e2808dde07873a014fe8da47a219b923\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4b220399906ac10d91e771e47061b5f9e2808dde07873a014fe8da47a219b923\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4c19502fdeb8f9c2b9b2237ec12156b3a351a707dc923e705775a2387ade4ceb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4c4c05d8f1088ba48aeefd97f5c099e11809f5bf7a4be38b62acb4bbcbe508b6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4c4c05d8f1088ba48aeefd97f5c099e11809f5bf7a4be38b62acb4bbcbe508b6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4cb11b9b413941012ebd193225bdef7f6d274069a0086ef3586293dfe801aca2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4cddca53263879d2b1e702050c50198b860642b72d83d93a83868d513684cd2e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4cddca53263879d2b1e702050c50198b860642b72d83d93a83868d513684cd2e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4cfbf7c1eb054602fcd3179383e0bc2c68a7645b5f686d29afb24f9205aae581\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4d69dee6979eedd85e8982925c0bb97205a1d59f25187a358110d2b0972ff19d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4d69dee6979eedd85e8982925c0bb97205a1d59f25187a358110d2b0972ff19d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4d849a2595a6b48794b6df37c338b570a439b21add6add10bb2a76f26172ee16\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4d849a2595a6b48794b6df37c338b570a439b21add6add10bb2a76f26172ee16\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4da77f6330ff9d4d7a2fc80721c82ff67ed0ac858626417c4729add2491fddb2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4dc3341e77b4c6e87c99b0b0a90f1e0a5179eb5daf0f317f2e2436b1e892e8dd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4dc3341e77b4c6e87c99b0b0a90f1e0a5179eb5daf0f317f2e2436b1e892e8dd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4dc779bdabfcbb4225f65ddef8c58da74e689ecc38490c2ee775880710793eef\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4e10a192f2753953b93ab702fdd0ba4a3d5e0241ca45f7ba23c5f2d3fbc7d407\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4e3087f36b432f2df21d385142d78e7cc79132d73294e2834ab68665d755683b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4e3087f36b432f2df21d385142d78e7cc79132d73294e2834ab68665d755683b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4e375ae141842eab3e18b5e08f3226fa07d24eed680328cf8f1a11632937589f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4e375ae141842eab3e18b5e08f3226fa07d24eed680328cf8f1a11632937589f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4e7a54153e334d72a4eaa9c945488e560d92849bae16d1430e069d2b9d981049\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4e8e6a38d5ac76f8c213b42fcf89c8eb96aaace9341e5bebe4ade79e651bba35\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4e8e6a38d5ac76f8c213b42fcf89c8eb96aaace9341e5bebe4ade79e651bba35\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4e977ce4e374a81a5973aaa2ac423cd25d9b2289e4b30190ae87404b832e8b8f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4f22ff85f0ed6509d179af63d38cfd0dfb1b5505194b8e8ffd9e60802be5e03b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4f22ff85f0ed6509d179af63d38cfd0dfb1b5505194b8e8ffd9e60802be5e03b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4f7c10e21d1884f5aca7d559baf24c18321ca7d9eb160fb029d5fe515dc7c1a3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4f7c10e21d1884f5aca7d559baf24c18321ca7d9eb160fb029d5fe515dc7c1a3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"4fb601b049196af7f1638c7103db4a2ed67cf12fe9bd2933d230f44356b5ab08\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4fff0840c662b1d70e17fcc1cc1577bdf29733d5c79b7206cd96a6146eb764bb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"4fff0840c662b1d70e17fcc1cc1577bdf29733d5c79b7206cd96a6146eb764bb\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5041a7f4ea272edea8de7ab3d734681a529715c7b9fef656f848e6fe58e05d1a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5041a7f4ea272edea8de7ab3d734681a529715c7b9fef656f848e6fe58e05d1a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"50642d6ff4b7d3755972d0e3bf6f9f2d30592a7dddc215d23965fa7ecb2a8f82\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"50882812dbb6483045e03667309e308541c7560061ebc961f37a34a94e93a3a3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"508d49cac08f9bba48d86f15a2a6bf5480bf6abc66064828b5f13a03692101d7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"508d49cac08f9bba48d86f15a2a6bf5480bf6abc66064828b5f13a03692101d7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"50ab1335d959dfa6e1a9ed3735b00b88db138e1daa8a4dc302fe506124dfc59b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"50ab1335d959dfa6e1a9ed3735b00b88db138e1daa8a4dc302fe506124dfc59b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"50d30175c01d5c3d69d29e640762cd3960d153066791b996ddb80b69bc9b4d3a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"50d30175c01d5c3d69d29e640762cd3960d153066791b996ddb80b69bc9b4d3a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"50dbbb8df930eabb2434858590c9e6c668bdee04b1f172ce094fb39d1c67653f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"50dbbb8df930eabb2434858590c9e6c668bdee04b1f172ce094fb39d1c67653f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"517450cb537fb08fb40e049019d9fcbe94f29a2a0561a70bb2e47eb8de672b76\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"517450cb537fb08fb40e049019d9fcbe94f29a2a0561a70bb2e47eb8de672b76\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"51b1a748f04661a80be181b8ebda97066a89bd7a898454caf0ddc227cf5c56a9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"51b1a748f04661a80be181b8ebda97066a89bd7a898454caf0ddc227cf5c56a9\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"51f4c79ba77bb02d2c6dadf47b70b1a182113e47b3ee66bbbfd65c783fdc4427\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"51f4c79ba77bb02d2c6dadf47b70b1a182113e47b3ee66bbbfd65c783fdc4427\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5228184ac758345b49495d93d612e21408577ff2cb2f855b7789baceefdfd559\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5228184ac758345b49495d93d612e21408577ff2cb2f855b7789baceefdfd559\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5240857ececcfdbc1ebd19cd6591318461359bab81977a2188d767dfbe1f40dd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5276b4d90ee0fe88cf81bd6a10225726b6e216a963fd4cd2921d35f155e754d6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"52813e1bee7625edded6d0762d102cb7821053ef8d6e5116f8873151d68f5e15\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"52813e1bee7625edded6d0762d102cb7821053ef8d6e5116f8873151d68f5e15\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"529b6a26bf4be72ef946ce455e49e0a5a799da19e18e662b8972239085935004\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"529b6a26bf4be72ef946ce455e49e0a5a799da19e18e662b8972239085935004\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"52a1e12eebf5d75f444f86dd79661b0ea2be081a86f1c9d592c5addadd3fc640\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"52a1e12eebf5d75f444f86dd79661b0ea2be081a86f1c9d592c5addadd3fc640\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5342c66da4f5e2815988997c9e9d1eb352ee56e879817a3d886ae26dacc0aa72\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"53506911b957884d191b5a3250fca9ebf1dc5d2851b4d833da32c3813669b405\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5361cd5119cfacf86a9533eacf70bb996770ba074708f271794a1f2a1cfcfdbe\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"537be66a0ec501e3ffbbd0bf0828bebb54b71e840454806e40818726cfca41d4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"537be66a0ec501e3ffbbd0bf0828bebb54b71e840454806e40818726cfca41d4\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"53f4d04f29f282102441232ab92ac7170bb1ac432553f5be780beda06e142bff\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"542e2fb5cae3e7054dec931bd0309d54e633a508f78c89115c8aaf43094998a8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"545a1424626a8a44bfeffa80a71534a1ccf6849514f8e97487e9d017ba22db75\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"54612b75bea0281037758f008837567344ed2351d147849b4e724146092047c5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"54612b75bea0281037758f008837567344ed2351d147849b4e724146092047c5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"546311dbb2579bf0560f2daed29fc2b8340731b18ab7bf0547523c00d9d179c5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"546311dbb2579bf0560f2daed29fc2b8340731b18ab7bf0547523c00d9d179c5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5540c32978054ad9fa7a96c87c1b9e7aa78526274645031899022b04acfa6af2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5540c32978054ad9fa7a96c87c1b9e7aa78526274645031899022b04acfa6af2\",\n" + " \"n\": 2\n" + " },\n" + " {\n" + " \"txid\": \"55a30705d650b26b786298f0c2d28b88ebcb8186e62b964fcf7a090fae88a43b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"55a30705d650b26b786298f0c2d28b88ebcb8186e62b964fcf7a090fae88a43b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"55a8378207a9782f4dc9989c0f7c5c11f84c5d712ebd0aee23263179aab60adb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"55a8378207a9782f4dc9989c0f7c5c11f84c5d712ebd0aee23263179aab60adb\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"55e8cfc66a6ec21831f53b33217ada8b53ddfc1db8056284c74599107271901b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"55e8cfc66a6ec21831f53b33217ada8b53ddfc1db8056284c74599107271901b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5608cd60edf5a8f4ead8e4f50ce223f8deb891e4ef1e149fc46948054d5bed7a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5651039f94ac9a496efa5eedab605b757a174b9aafdf64f2f8b35bea71bbe7b6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5651039f94ac9a496efa5eedab605b757a174b9aafdf64f2f8b35bea71bbe7b6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"567c924692cf4d82b9022f1c30fb05402c6c96ac2789ca295886b99b781c796b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"567c924692cf4d82b9022f1c30fb05402c6c96ac2789ca295886b99b781c796b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"569dfce553adf9b50fb2d1ba24743ce084e5ffd7ce6340511b9dba1619328080\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"56ffe6bd02b018a997eefb09928d133027059b43e1524242a6cc334a53436db6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"570339ab5f2ca985468c03ec2693c2e23177bde7f6d8094894deb98c36244aa7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"570339ab5f2ca985468c03ec2693c2e23177bde7f6d8094894deb98c36244aa7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"571104d5e24e59875a40f6c6c8d516d7e95eb0c542bb825e746bd03a8958e3ac\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"571104d5e24e59875a40f6c6c8d516d7e95eb0c542bb825e746bd03a8958e3ac\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"573ecad79bd034468108c4ac0be233418b0d77bb33dc455496b31a0f97917b7d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"573ecad79bd034468108c4ac0be233418b0d77bb33dc455496b31a0f97917b7d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"574a32dcbb5560d3f37ace8b77f556a26c4d954c8ad7cc6559c64a546bf89aa3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"57c24941680a641c431ac0f539210f0f51b0ef51a2969f7ad7da9a0e77268a41\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"57d568a775ef279d37322a5c4ae260c9cee6d938445db5f4c07f7888a4ff561b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"582bd6c31f994bd845215040714329bfe78fe308ceb198730f89713971db3f91\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"582bd6c31f994bd845215040714329bfe78fe308ceb198730f89713971db3f91\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"584079d79b64b16b7012160e0c03dfe5879fa42618d8b4e65d34c11b4427f036\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"584079d79b64b16b7012160e0c03dfe5879fa42618d8b4e65d34c11b4427f036\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5854bbf06906dbf0dfb31f9bd8a119d759272b68e37c823c6fdd367ee19c8d5d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"585ba50393aec105273057517e361b7946ba626af7674e5829f83bad80c3438e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"585f5b22c89a42a3bd38ae8fc4c77759e7ac091c04dccb953ab30da1dfc69a82\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"58be9b9fe0487283f7fbf3c284da12e784ff43f9e0d1f8ea9c8c3bd12f8847b2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"593ae31619f3b83573aa4f978d6fe685306b708e2a2aa9f9e23c416fd0d30c01\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"593ae31619f3b83573aa4f978d6fe685306b708e2a2aa9f9e23c416fd0d30c01\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"59b03d13ab92475ab541104ef6a0e1432feacbe6497d57c352f69897f33ad510\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"59b03d13ab92475ab541104ef6a0e1432feacbe6497d57c352f69897f33ad510\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5a1e993558a51a9c2aff820d542c6d980b83d4db7e13a148a32ff507f382870b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5a1e993558a51a9c2aff820d542c6d980b83d4db7e13a148a32ff507f382870b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5a33e2d61b4e284e81e30b7737a6f98be6399cd9ad42f00fe6698a0d18b315ec\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5a4867cf77c11836c8ca55de9aaf2c90b6692b89c85c3f5e5c12f264df824a5e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5a4867cf77c11836c8ca55de9aaf2c90b6692b89c85c3f5e5c12f264df824a5e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5a4f5d25e4f1422b7945432d38bda3ed1a8879b1a77f68dca0b3eb1c5ba1d413\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5a4f5d25e4f1422b7945432d38bda3ed1a8879b1a77f68dca0b3eb1c5ba1d413\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5aac64cdcdf10d96ea74881408c1f8c9047e5509b46bf56235929d03d2499d20\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5aac64cdcdf10d96ea74881408c1f8c9047e5509b46bf56235929d03d2499d20\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5ac9cb846292705dd5bdf21d8eed87e906f5c7b6b808d38eb64145bd50e2560a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5afee9e834a8155e073033fcecd79632bc57bb11d268fa7e4bbbde86e2806f3f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5b3427239eeaf56f7c962ca752a4fee083e58f33c9f44e0a8ed1a95f0badd0f6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5b3e3f38abb481d8281fee5edeca88dc225de9f51f562f02d41798bc0db62c89\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5b3e3f38abb481d8281fee5edeca88dc225de9f51f562f02d41798bc0db62c89\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5bb58db2b176e4fb7b499e3746f15dcffb847303e1f455ccc56e83148750bc7b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5c491c16fdaad031a1217cfc4252298e8bd7fa96a08dbc6507bbef3846ceda2b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5c491c16fdaad031a1217cfc4252298e8bd7fa96a08dbc6507bbef3846ceda2b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5d5ebdddbf76a652265050383e6c7a613b1ce41a0e50d1cd6aae55dfd3c950b4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5d85f853a5e817c96725345900b80984af463be8f052bbe982e84ba5a50f0c7e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5db3d4cd885c2b28cf68bd7c32309f5281111842722333ed4cf6ecfbe7c000fd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5f3731d419c42e2be8f561fbbebead2ed9b66c5f413d399688b5e09164f9d377\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5f801292e023ed5f0705267498e289881e97371676dd06d695e05adf69adff33\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5fcbb13db805876800d2a23199a48cb675387bf1e4d8c52e3d1aab4f6e511a0c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5fcbb13db805876800d2a23199a48cb675387bf1e4d8c52e3d1aab4f6e511a0c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5fd9ca4b9a4fad91713046520ea53d45a63abb01731e29b763026ee19ae5c38d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5fd9ca4b9a4fad91713046520ea53d45a63abb01731e29b763026ee19ae5c38d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"5ffea7afa62cf8c69597ad8a75b9c61fc188432800b52b1c43c4d02fd0fd0f0f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"5ffea7afa62cf8c69597ad8a75b9c61fc188432800b52b1c43c4d02fd0fd0f0f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6061c3730066be56959952afab7b99a6216a0f7322d51cde70e2a30c007ef67c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"608714b28727941bba1c55231a3c285103bc7292104f4331bae8d2773dd88f4b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"608714b28727941bba1c55231a3c285103bc7292104f4331bae8d2773dd88f4b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"610af482b729b031cd82a9926a8cf28c61388cbed07112a7eb329c7465ca217a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"611ac48a86e3b3f0cdaa6d5ea173d7525bdd3dfa6ff743760cf52948e41998a9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"615fb586cd822be3ef426fdcb05cc5b32adcc3544d213f731310e532a9290bda\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6183a2611361c3a66d5bd1b14cc0123fb34825bd9693e7335abfea3a03b9e866\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6183a2611361c3a66d5bd1b14cc0123fb34825bd9693e7335abfea3a03b9e866\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6216b98bbc54eb3a08052cba9e0c79ba61eb9dc309881c0267fc0702b1ae1915\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6216b98bbc54eb3a08052cba9e0c79ba61eb9dc309881c0267fc0702b1ae1915\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"62bde2a6c8c26ddd795450a6bea76923b70b5a4bb647610bea5ac7f2059463e0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"62bde2a6c8c26ddd795450a6bea76923b70b5a4bb647610bea5ac7f2059463e0\",\n" + " \"n\": 2\n" + " },\n" + " {\n" + " \"txid\": \"630f774d6dbd622386ca98be314959563ccba07b90bbb285c8eb0fcaf7817b65\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"632c060a82be441a339bcd671468c63ec6498b46bbe589b31985d291ae92e397\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"636b44b9408a667f06885d3150e9c6f41ef1f973d3c151564fcfb2f38b3316f8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"63a8fbbb623064265d84f1567500aef8a0233a0797cd09cefd8c2914a499334f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"63a9619c62d77632c577a7936be5be2f4db9fb970a9301920b5bea3ec154e0a5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"63ec73d20eca16117b5cf831e61939be71c4df794f8a78bd47bc9ac2c588c815\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"64ab1a87c00292c80c265847e29128ad5ac695b06c1cb7b05871e18b8eaefafc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"64ab1a87c00292c80c265847e29128ad5ac695b06c1cb7b05871e18b8eaefafc\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6512f784abacb9a7e65a9e0289d24ad8b699f6075b18f68d8c1559adc0343a0c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6512f784abacb9a7e65a9e0289d24ad8b699f6075b18f68d8c1559adc0343a0c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"65208ba1183e8900dd553e8798884662d789c15c793fbb9d154d5f46c07eec08\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"65208ba1183e8900dd553e8798884662d789c15c793fbb9d154d5f46c07eec08\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"652e644f0428dd0e0448eaeefd6b4b33fe65d43c3f4ae8f36e363c0d25e42e7c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"652e885b739a914d64bba6b4fd4a42b0398983c5a1e578d52ce6b4ebec84b51c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"652e885b739a914d64bba6b4fd4a42b0398983c5a1e578d52ce6b4ebec84b51c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"65901aac5b76337c1a39e1489d040b93a4d3a49373ced6c6524cd61d69dd2877\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"65901aac5b76337c1a39e1489d040b93a4d3a49373ced6c6524cd61d69dd2877\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6637bf10326df2b05eed0ef1ff96147574c2f9f20d6ebc5664bf65a3de3c6654\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"66613cf7746aa26577019a96ab35dfb0d15a593188c9a4a517cf815fb0752ed2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"66613cf7746aa26577019a96ab35dfb0d15a593188c9a4a517cf815fb0752ed2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6664a1611fac6bbd921d40da4be788f3fd6ab7af6ab48f03594f52022c810a74\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6664a1611fac6bbd921d40da4be788f3fd6ab7af6ab48f03594f52022c810a74\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"66811c923a7a8a16672d663507fd61f66962ebc64e2bd33955c9749751ae36c9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"66a22776a87aba2796ddb34e71a64cca2d27ca9f83cd2a5ebf40e1d5f391c4d6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"67057f1e20dcf3d804408fae0807109c7270d7d3ef53e0482007058da67c7f5b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"67057f1e20dcf3d804408fae0807109c7270d7d3ef53e0482007058da67c7f5b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6722c37c865bdd8219c74eed434504e9c8cc20c324eccd809fbf038f56ec7b6f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"672f48a29149c12ec613a55dd714fc3b9ffc08a1d3a503d97e8f51caed3d17e3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"672f48a29149c12ec613a55dd714fc3b9ffc08a1d3a503d97e8f51caed3d17e3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"67371af05b63a2867b068f7f9137c9b5ecf7faff1a62333ac09d733fd4e7f5d1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"67371af05b63a2867b068f7f9137c9b5ecf7faff1a62333ac09d733fd4e7f5d1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"679c42133f006600be6c1d5ff941abdb3237e5c0dca61db2acbc933f3d81c562\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"67c0f1837506419f823febab55479c267ff460668246c916bd8de5bd6fb103b6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6837b82c53dc6a70bef2b8226295fd58fc2a9f5d73b4509843ff493f84d90ff9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6837b82c53dc6a70bef2b8226295fd58fc2a9f5d73b4509843ff493f84d90ff9\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"684f636d61329dadeddc41188b68e03a5b2eb9df29ce2b5a0a869106140d3fe1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"684f636d61329dadeddc41188b68e03a5b2eb9df29ce2b5a0a869106140d3fe1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"687da84d0fb5f9990cfc3cb692fd21cdf9963a6414fcdf03a4f42a0fc5287703\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6896aad77d808edcee14d2999cf1024b9d7076e234302f86f40e388d6e3a1131\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6896aad77d808edcee14d2999cf1024b9d7076e234302f86f40e388d6e3a1131\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"68a4bcc0d11cbfd9bfa099585e2b2243a125156654fefb836743e76b2a1cb83f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"68a4bcc0d11cbfd9bfa099585e2b2243a125156654fefb836743e76b2a1cb83f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"68f0ef9b2945ff55a341691618a780a02d2f9604f1edf010fcb6679b831577db\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"68f0ef9b2945ff55a341691618a780a02d2f9604f1edf010fcb6679b831577db\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"691f6578158f99655720073b4e68a4ae89718e793df1d6609bce76da09c90df3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"691f6578158f99655720073b4e68a4ae89718e793df1d6609bce76da09c90df3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"692b9a63a3fb0a0e5c0ad47e6f722c74bade8369451b12fc686375ab06f40cc5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"692b9a63a3fb0a0e5c0ad47e6f722c74bade8369451b12fc686375ab06f40cc5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"692e1d1ba0486db815c8fddf8fed85d4ea600259dc81d3229772fe57a85317a7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"692e1d1ba0486db815c8fddf8fed85d4ea600259dc81d3229772fe57a85317a7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6968d05d597f83425c9eb8c9427df5ce95d933089198f04eb6b24a0e3e7edaae\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6968d05d597f83425c9eb8c9427df5ce95d933089198f04eb6b24a0e3e7edaae\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6a4d689d480e2a2310a53e87dc7d0a0adb327bd34dbb06f46a85ea82ffa9b336\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6a4d689d480e2a2310a53e87dc7d0a0adb327bd34dbb06f46a85ea82ffa9b336\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6af9f6d34fd89ee0a87ecda011c4eaebcb1c78798604d65b4e57106f2ac165e3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6af9f6d34fd89ee0a87ecda011c4eaebcb1c78798604d65b4e57106f2ac165e3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6b37c84b18d7ae48cb9b4774ac7ecd25a0bbf87a98c02341ba482b9293379ae3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6b532339b025eba1831f5319e1384dd56d8491aa3708ec83eda3acc166d0796d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6b532339b025eba1831f5319e1384dd56d8491aa3708ec83eda3acc166d0796d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6b95665dd506bda092c19691a5cc87f4e753de32c997cd4409f218fd64c3298c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6b95665dd506bda092c19691a5cc87f4e753de32c997cd4409f218fd64c3298c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6bd6034d5e222fa4af3cbd8587b05e018edae111a3585ffe0eeb2f0ee1dac669\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6bd856f458896f35a369d08326f1ce87108da375eea930c13cfb6fed6284f0c8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6bd856f458896f35a369d08326f1ce87108da375eea930c13cfb6fed6284f0c8\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6bdf9741511cf965136096e88b9606c799249d59de9d711814d5ae645676ae00\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6bdf9741511cf965136096e88b9606c799249d59de9d711814d5ae645676ae00\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6be1dec83b4c2ff4a0f9a62983fbcd6e7e78e1993c9ed6e77fec7fa8e227f65d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6be1dec83b4c2ff4a0f9a62983fbcd6e7e78e1993c9ed6e77fec7fa8e227f65d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6cd971e3c5d9b41730ba29f25f1a64c5544ce8302550688a3c890ebcd62c8afa\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6cd971e3c5d9b41730ba29f25f1a64c5544ce8302550688a3c890ebcd62c8afa\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6cf06800ecf05cfe0c2b30f7332c0f5759106951ba418935a62ba1667669891b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6cf06800ecf05cfe0c2b30f7332c0f5759106951ba418935a62ba1667669891b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6d18d0129196db41ac9bd4bfa133be6df87869b1d9335219a751ae35a9f805cf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6d18d0129196db41ac9bd4bfa133be6df87869b1d9335219a751ae35a9f805cf\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6ea93292703185c9a7bd6aa08a5ae909c6ca316441a356426fef1d53fd18bf07\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6eadffe19c6765d6ceaf3699dcdadb6a032eedd3678f79555aed2255751a86cf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6eadffe19c6765d6ceaf3699dcdadb6a032eedd3678f79555aed2255751a86cf\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6ec9aa04ef693737a7ceb5681791db07b8f40b93a5ca10c1867eb71ac8242878\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6ec9aa04ef693737a7ceb5681791db07b8f40b93a5ca10c1867eb71ac8242878\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6ecb01e9960aaa6101a8da56dc25f87beb4f1fa945ca5f4cf5245e710ded845c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6ecb01e9960aaa6101a8da56dc25f87beb4f1fa945ca5f4cf5245e710ded845c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6ecc45242878169fd1c9bfbc199f5c5c53f5c2c6daae99dbe0395a1f5ef70d3b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6f649b96cab5b1e6e117c3072d5aac8ed27742deef527ec6c898135ad354da81\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6f649b96cab5b1e6e117c3072d5aac8ed27742deef527ec6c898135ad354da81\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"6f6d4686822e9ceb7618c9e347f7869699faedfab2eeab01abb978bb429cf868\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"6fc05c15e0da3aced31e5bcf5c8a37504e19ca84575384c15aa23dad8d4f864b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"702a6cb8e2109cb40c69fb83e9dcc4a929ea47682ebccf0845c48dbee35cf6b3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"702de787b5251cb0981e5276e509302afa4a96259529aaf8f18536caf7d490be\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"708a02402e6ad00548ffcbf4b50777f73863a61f3781371c105823fb5f312e81\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"708a02402e6ad00548ffcbf4b50777f73863a61f3781371c105823fb5f312e81\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7105ee48abbcdf5c344976c5215babdaa6b4f39324ac5b85dfeec01e6d7742c0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7105ee48abbcdf5c344976c5215babdaa6b4f39324ac5b85dfeec01e6d7742c0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"719278b368e3aaa1e714d35f06a34d52c227ce2ffd92aa6cbba485ecd16e99a3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"719278b368e3aaa1e714d35f06a34d52c227ce2ffd92aa6cbba485ecd16e99a3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"71978ddfcb8190632b260cbbd2001f8160fc1be8fc2d91cce30759636b88daa8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"71df05ace2283a3add7767b37072f7be070b21068243b288f5f6f82f6c81b45c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"71df05ace2283a3add7767b37072f7be070b21068243b288f5f6f82f6c81b45c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"72fbc333a43cabac8796a0d447ccfa960ede098d3c954e865e53d8146da1a99f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"72fbc333a43cabac8796a0d447ccfa960ede098d3c954e865e53d8146da1a99f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"73b0bebcaa46a0bcdf134390b405925f9092afc82a62c744502e628ab773b30d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"73b0bebcaa46a0bcdf134390b405925f9092afc82a62c744502e628ab773b30d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"73bbafc7cdd484672a47dc142696c7d57ebe15f7a68f8809c14bc5f33eac31af\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"73f0180ef587718635e0d81a54e7ae7af5827ebf3d6691f5744a128d3879b93a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"74029b878f32196e774053bb081e233ef1ecc4c27b558952e858e0221b64881b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7412d9706651766616e576c6391cb2e4a3146de3aee27ef849b3c455ad1caa63\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7412d9706651766616e576c6391cb2e4a3146de3aee27ef849b3c455ad1caa63\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7478a7bfd7df747db30c2b2df75a67b44fa8cb80cd196174dbe00b1b58346e54\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7478a7bfd7df747db30c2b2df75a67b44fa8cb80cd196174dbe00b1b58346e54\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"750accc52c659986e304cb87f95d4f63a39da24544980b43a9184eb9d9bd5255\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"750accc52c659986e304cb87f95d4f63a39da24544980b43a9184eb9d9bd5255\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7537bf02ea43559f17d191011679d6dc210169b7f269f5f702940548ba718b1b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7537bf02ea43559f17d191011679d6dc210169b7f269f5f702940548ba718b1b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"75d313b10840414efa36df21d4f961114be6a8c74953a7f4fcc3241d11220920\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"75d313b10840414efa36df21d4f961114be6a8c74953a7f4fcc3241d11220920\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"75dd7331746540b84bfcf57113a656cef26867634c59a3352c77874fd90b6a31\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"75dd7331746540b84bfcf57113a656cef26867634c59a3352c77874fd90b6a31\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"75fdd94eedb1a88d792982fcdb7f3e6d99ca88138920960ae99adb4fb77625a7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"75fdd94eedb1a88d792982fcdb7f3e6d99ca88138920960ae99adb4fb77625a7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"760f2e55bf8f853764bb6aaa045c646175b7b6b8ac9e87f000588b0352d380dc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7649b82eb6b19b3024bccb5a546704f7a0b7107d591eed36a2bc43e52e622d76\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"76855db74eaad3d0c073c15f4598e4e95dfbc21afecfe21f9ee479ef8e13e9c2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"76855db74eaad3d0c073c15f4598e4e95dfbc21afecfe21f9ee479ef8e13e9c2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"769973bbb28fb4e8f7fcd7b78d4f09723c0f6f58b3c88d7b05d5d9cecf1eb93d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"769973bbb28fb4e8f7fcd7b78d4f09723c0f6f58b3c88d7b05d5d9cecf1eb93d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"769b731d16e5934147dca77e3533b6490d1947c9889a5d67cc6671b636eab67a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"769b731d16e5934147dca77e3533b6490d1947c9889a5d67cc6671b636eab67a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"76c42080e52f8167d1d50a4e8fcc95c49afa8d4769fe7637ed4848f3f9cf9806\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"76c42080e52f8167d1d50a4e8fcc95c49afa8d4769fe7637ed4848f3f9cf9806\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"76ec2d1610f5d7a458583c3dde10eb8a7dbfaaed52873268a6a6011bd45616a2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"76ec2d1610f5d7a458583c3dde10eb8a7dbfaaed52873268a6a6011bd45616a2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"77150aa1e37a625e4b52fdf5c208687d559199442e920ceedab15f51149823df\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"77797cb9c641059209b2060a35decbfd314e6075a563efcd68a39c9059a29c72\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7785f0edd6b775f4e58ae168c579f66edfb6c23dbc938a9b8bd66c5ce8b85cef\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7785f0edd6b775f4e58ae168c579f66edfb6c23dbc938a9b8bd66c5ce8b85cef\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"78479bf14fffef4e9dcfe3356e695beebbcee953cd507c95b9e046b140d64a24\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"78479bf14fffef4e9dcfe3356e695beebbcee953cd507c95b9e046b140d64a24\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"786cb4c80da17cad6d6a39c6658accf08dd173da2a2ea18fa7489e6fb788922d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"786cb4c80da17cad6d6a39c6658accf08dd173da2a2ea18fa7489e6fb788922d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7898c406060efcd78fb246cb56ecba7d9dcf59605b4f479638e783455c4e2015\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7898c406060efcd78fb246cb56ecba7d9dcf59605b4f479638e783455c4e2015\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"78a152ba8b6331bb710ed263b4af90a08c9d74df4ca9b868c7c03f0ee475c6a8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"78a152ba8b6331bb710ed263b4af90a08c9d74df4ca9b868c7c03f0ee475c6a8\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"797786296a0c7b4ece42f473fa1d081240b1add0cb9d8d58502328a1e50afd4a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"797786296a0c7b4ece42f473fa1d081240b1add0cb9d8d58502328a1e50afd4a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"797d8aa18719be9f08b698accdd97171875ce6a5547d85703e49844827790784\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"797d8aa18719be9f08b698accdd97171875ce6a5547d85703e49844827790784\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7a51693996f04de3ea8e1a6b3b722d7b169a01d1aec51c033e5efbdeb4442147\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7a51693996f04de3ea8e1a6b3b722d7b169a01d1aec51c033e5efbdeb4442147\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7b17e7fde99ceb7f5b4db0cd492353c06fce1d49f162f937113e7c0b9cfe8ed1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7b17e7fde99ceb7f5b4db0cd492353c06fce1d49f162f937113e7c0b9cfe8ed1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7b6dc7723982e7594776d445b60c99c7d133c9e71c1667bec6d85dc04cb1f5dd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7b6dc7723982e7594776d445b60c99c7d133c9e71c1667bec6d85dc04cb1f5dd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7b9e84c4b06f2493e417bba3158ee3ebe7fc8982a80fbfb3340bdefe3f1272e8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7b9e84c4b06f2493e417bba3158ee3ebe7fc8982a80fbfb3340bdefe3f1272e8\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7bd34101e21e676796eeeb27ff54cce2ff35ddc9a762a82c211515f82d97e92e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7bd34101e21e676796eeeb27ff54cce2ff35ddc9a762a82c211515f82d97e92e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7ce356b6e57fabc1f9203db4cd055da749de3c575bd85386de842dc99eab20fc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7ce356b6e57fabc1f9203db4cd055da749de3c575bd85386de842dc99eab20fc\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7d21a0eb030fb6925fc3f56282443fa02e4896020c72fd54b8f8c997743586e7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7d81c8619324ff1ee062f6cf2a7e64de2261faa27d8da6e941c66bc72e323d53\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7dcf74eb40517011aabd8462c3617a90081a4a2662bb54c5c04d4f3171f9a09d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7e0f1920c491cd7471c2e390ebf4b24344cb5b7c9b53082ba20b5b2d4c753049\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7e0f1920c491cd7471c2e390ebf4b24344cb5b7c9b53082ba20b5b2d4c753049\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7e24b40f2935dd39029e20a2a423cd965667bd9b33665a4365ebbc2fe12331b2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7e24b40f2935dd39029e20a2a423cd965667bd9b33665a4365ebbc2fe12331b2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7e535a21dce242e2f067ff80906106cf8617c3b506f491f4d5644e4b92eee9a8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7e535a21dce242e2f067ff80906106cf8617c3b506f491f4d5644e4b92eee9a8\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7e768a2b5362cb24e1359449c91f1a2c542f9687764e6bdf1c96f0963423549e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7e768a2b5362cb24e1359449c91f1a2c542f9687764e6bdf1c96f0963423549e\",\n" + " \"n\": 2\n" + " },\n" + " {\n" + " \"txid\": \"7ea5dd47421dc7a3c6b8c29dbf7ed9e7509a6e4190caced821a8713b125e80c1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7ea5dd47421dc7a3c6b8c29dbf7ed9e7509a6e4190caced821a8713b125e80c1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7eeadda268e8dc1f3c72356dd50679ebcc8cc83967e5ce0b16cf123f1a81409c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7eeadda268e8dc1f3c72356dd50679ebcc8cc83967e5ce0b16cf123f1a81409c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7f2d899006b921f7b55208309f6abb2b21c5fbbfc8f49b0385ae22ab54509f91\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7f3616eee230938622257b1b40be1e9b10d702ebe69b0161f5089c6ae8a9a79a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7f3616eee230938622257b1b40be1e9b10d702ebe69b0161f5089c6ae8a9a79a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7f3d232ccce6c533b530e68a84d5256786c4d37f031db1b4232dc5e118185276\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7f70d17472d0f6adb7bac1616c8321690308b624f7a297f7ac9c11d0b0d4dac7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7f70d17472d0f6adb7bac1616c8321690308b624f7a297f7ac9c11d0b0d4dac7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7fd8d13ae58013d3c0c7bc056ce75d599e2dd4a6bb5b72ac582a8302ada1032a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"7fd8d13ae58013d3c0c7bc056ce75d599e2dd4a6bb5b72ac582a8302ada1032a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"7fe047ce9ec9b0a9899341650578e131197fb4d0451df572e10254cdb7b0f5a9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"805ff6ddb99854304639e9b99ebe29c40d82a2e04c13f30a90da094d14b509b0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"807365467c86dfbdbd7f5b5433e57ccec0a547c94eb561dce2e29e29cfd86017\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"807f37da41b3451cf9108954db417bee28985af895b8ffeb4f38b41adbf1741c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"807f37da41b3451cf9108954db417bee28985af895b8ffeb4f38b41adbf1741c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"80c7e9be47436a176bd951e493337249be23329d51b23bca1bff5b6868f47064\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"80cd0023c262cebd85ef1387b825c061614321752bec59d54fcede3c41b8da60\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"80cd0023c262cebd85ef1387b825c061614321752bec59d54fcede3c41b8da60\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"812bb53f772c9ef32543963dbf9877ac0a151b05d8ff4083e22a9e01dbe17ae2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"812bb53f772c9ef32543963dbf9877ac0a151b05d8ff4083e22a9e01dbe17ae2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"814b29424bae2297439bcd8d699d2f4e90813a7ef95742954d73e62719b66498\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"814b29424bae2297439bcd8d699d2f4e90813a7ef95742954d73e62719b66498\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"814d7b3548395e53ddc378e3c5ec95e453239deb5b805786224810e6288f6f73\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"817593043b13c1b0c70efdc28359efd19efd0d170fd9a261eb664cc09fe54751\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"817593043b13c1b0c70efdc28359efd19efd0d170fd9a261eb664cc09fe54751\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"818b11fba6b18e69caa96542ddb70bfea0c308d90c0f93bd321a2727318cbd1d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"818b11fba6b18e69caa96542ddb70bfea0c308d90c0f93bd321a2727318cbd1d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"81a1401feda7332bd6472803d127e25fd931ec8600384bfa3c8ede6469a74121\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"81a1401feda7332bd6472803d127e25fd931ec8600384bfa3c8ede6469a74121\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"81c65cd176edeb7d981ccbc6b5b278cbaeeed8f02fed9b9e624b052b66da837c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"82345b7a7d3d4689ff252f0fc2de7970524efd97e939b377fd2ccd08f9ea60e3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"82345b7a7d3d4689ff252f0fc2de7970524efd97e939b377fd2ccd08f9ea60e3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8326537cf9783acf65effcfd81e65ef75bc534faad226450cd9d253131085fc0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"83385bb17ee0382c94fbb720413de0e22bb480d775393f55074cfcd8d38dc483\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"83385bb17ee0382c94fbb720413de0e22bb480d775393f55074cfcd8d38dc483\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"837751d330c50582fbd0d9e198db93df071e30ed73c3844f006e63276e239943\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"839d23c0aa8cc0e628acfa1d9b58046f3639bdb0d8f67387c4671fd99dffb91b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"839d23c0aa8cc0e628acfa1d9b58046f3639bdb0d8f67387c4671fd99dffb91b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"842353acbc854de24407d7783426fde916ed45f12579504ba9c1df125355c7ab\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"842353acbc854de24407d7783426fde916ed45f12579504ba9c1df125355c7ab\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"84267d238856bea4e3db9593ac30dfd4cc4997ef0dcbaf27f49edfd748c7efa3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"84267d238856bea4e3db9593ac30dfd4cc4997ef0dcbaf27f49edfd748c7efa3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"84743a8f5b6315f6727d92f3f15812e8d00059d928bc9de8a90d23a24a9f48be\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"84743a8f5b6315f6727d92f3f15812e8d00059d928bc9de8a90d23a24a9f48be\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8484d2cdc33f31fa610e22d593fa9c2b1e2e4b6c2ea53612612c479ab6f7aad0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8484d2cdc33f31fa610e22d593fa9c2b1e2e4b6c2ea53612612c479ab6f7aad0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8487ce4090a111761324f6365743702fd9c89db20617ce5e6a0e291ac6086367\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8487ce4090a111761324f6365743702fd9c89db20617ce5e6a0e291ac6086367\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"84e55508662585626bfa27452321a1df254a65bd1e49d5c9fccfee0a4c665ee5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"84e55508662585626bfa27452321a1df254a65bd1e49d5c9fccfee0a4c665ee5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"84f98ba34966cb0bffbb2326f1fc755b75666a750bb188350c8ee85f1352e701\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"84f98ba34966cb0bffbb2326f1fc755b75666a750bb188350c8ee85f1352e701\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"856fcb43e0394eedb3ec0978618e47d6030ebdfda606f4cae9cfe5bd4bc3eeaf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"85b92a25a307c61cf18530912e3a7e3bc88098f33eb3d46400df22d254954bda\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"86158ccdcc8b793606209489a71a36312c3ee5f0694de6a2a3d847913c2158f1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"862a81a5d571f293b0b0e8401c56b673a089aae4819a3647fd13a1cd074443a9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"862a81a5d571f293b0b0e8401c56b673a089aae4819a3647fd13a1cd074443a9\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8640dd92617e4e8f00a113a6a19646b99a2fdaf46672b7e9a6486f28d97cfb14\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8640dd92617e4e8f00a113a6a19646b99a2fdaf46672b7e9a6486f28d97cfb14\",\n" + " \"n\": 2\n" + " },\n" + " {\n" + " \"txid\": \"8661b26e97e29d121d5d71893f375b4ad144b68dd1d7a9b4ef374eb1e75cf496\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"86761d63d54e527cdd3f571de4c4c6aef6e98f737e3b29244053c850da8d7370\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"86761d63d54e527cdd3f571de4c4c6aef6e98f737e3b29244053c850da8d7370\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"86911926ccc5541d068b505d4cf1ec66d244a8341f8509b0e3a1301c2813ac94\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"86911926ccc5541d068b505d4cf1ec66d244a8341f8509b0e3a1301c2813ac94\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"86a0afe2ddec131720a18718463cd5cc5143ca137ad164ad5697edccdaa0e200\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"86a0afe2ddec131720a18718463cd5cc5143ca137ad164ad5697edccdaa0e200\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"86e88a8d06e58d4d6ef008884477b4efbfd7178054f7318cf06f0d1a09493e8a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"873bc3779d833fe0056cff40c9cee9d029c89c838faa85f2ed6bb529ca24ae1a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"873bc3779d833fe0056cff40c9cee9d029c89c838faa85f2ed6bb529ca24ae1a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8750e8a4be84726d0c08317d7d11b7de0d683b185eb7f25a80a0a9ebffbec697\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8750e8a4be84726d0c08317d7d11b7de0d683b185eb7f25a80a0a9ebffbec697\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"875600bafd06aed1e4e42f7dd7fee16a0c45f5551e3cb320fd1e1309de8c5dbb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"876ba70665d500eadd485ab1c986f610e61ea07592f9a43ec716a3c58fbd8a5a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"87b8d532519414c94517792336e079cf0ffa3f60f3f374885bc12ff4f86fbe77\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8823dfc5ac80f998b5659c73ae37ffc9fca1a5c921cdc368e07e3eb03e52466e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"888fd2342e0a61bc6419f20434c18d2b41e9745a43f68dc6deb58ecc99d5ec5d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"88dc55677b2af96b9ef9cf26fd4a6a17b320959573305a71cbd41c02c283025f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"88dc55677b2af96b9ef9cf26fd4a6a17b320959573305a71cbd41c02c283025f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"88e140031b8960f3b3fcd4eb0f771d97d579d727a168b8ebfb6d52e2149d3ecd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"88e140031b8960f3b3fcd4eb0f771d97d579d727a168b8ebfb6d52e2149d3ecd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"890ea2598f25f46615a02912a0be60b385c17afc80c1f817eb0f7b88f4dd84df\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8965f6fe407668a91c4925893347ca0951d78c8337aef4d25e98babc7e9fe06d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8965f6fe407668a91c4925893347ca0951d78c8337aef4d25e98babc7e9fe06d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8980b46aac5b8b7ebed22d4d551b33a99f933873fd8eaa58b627ad214876f643\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8980b46aac5b8b7ebed22d4d551b33a99f933873fd8eaa58b627ad214876f643\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"89d60009530f522c708aadd49f3ef7375cad58bea0be6b515d045e5cfd078369\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8ad8f6e7d0211be7053dd29c98c736e6303eade6b2c9f8572accd9b41a5ddda6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8ae7bca02bb3102f7255e7021ec61265a0b4db67cd0588d37320145713f8b7e9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8b346fdc8b824d94c271db13c1fea4af14ce91f10901df978a6c8d108657f453\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8b6362c0b6bff7019d6221824f8ca36535db2ab14d06916ca3c2152fa53e9f7d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8b8806e1e72d7011ce5f8ad6069cb9924594969f2a06ea06c3678930a1445fbc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8b8806e1e72d7011ce5f8ad6069cb9924594969f2a06ea06c3678930a1445fbc\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8b9b056e6831ef00a133a3257f0acba13b8a6b4f27fc63c2985e99ca4199c1cb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8b9b056e6831ef00a133a3257f0acba13b8a6b4f27fc63c2985e99ca4199c1cb\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8c54ccd7789d8e2bc5f979a430b1d015a90f1eebc73414eeea0951de5bac5362\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8c6728cd48f657ab56b1150b0fc5ce29ae304d8461052077df4c6dafa08277d8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8cdceec796f1476b72ece392c4c69f87376c76915b1cf966029a47955233d7bd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8cdceec796f1476b72ece392c4c69f87376c76915b1cf966029a47955233d7bd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8d6e89d12d51d7103b05959fa414794af18624d066f0497002903e84a13c3224\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8d6e89d12d51d7103b05959fa414794af18624d066f0497002903e84a13c3224\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8dbe9fca4cd19082b31cde4642c206ff4049ffb8e732fa2c22499dd0fe74b2bf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8dcbb3585bf6c357702f37fc9c45eb70bcc7999faf18d04404aa41b28f614bbd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8e2ede8e862750af5836adff85fba81568873b40ed9648c26a0f3cfa0eb9fafe\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8e6b9a3f109663a835b9a008371a45ae6106d9d256876db4eb6f63f94e5d2f79\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8ead2c0c76615db9f26178ebaf221718a1db9838b1567e21d7bcad507cc3e9c6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8f374c3c60407c60c779fa4bf61a5f88150845edeaaa350bb02b8c45fd037571\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8f5905e499b14146918fee18aa68557c08b617028d2f37120bd66dcf10fc2fc5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8f5905e499b14146918fee18aa68557c08b617028d2f37120bd66dcf10fc2fc5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8fbfa9eaf8da790e35edc03e047e7188196fc8797882a182a53dbfa89911cca6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8fceafc50fc743340b972c600302f8ae6fb471bff1e652febeab3c85c982d176\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8fceafc50fc743340b972c600302f8ae6fb471bff1e652febeab3c85c982d176\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8fcf90c801fad679eed6e765c4f9fab867d136c88ef9359ac8a540854c29b99e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8fd1ffe62f9fd0d1cc336d12ff0b7feb8ba540b73396a2b8717d59cb584482b7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"8fd1ffe62f9fd0d1cc336d12ff0b7feb8ba540b73396a2b8717d59cb584482b7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"8fe93eeaa43d17a71083fb06985d70163f15201a4273d767b2e1f9eeb27eac67\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"90155cc74eb0a980452d1b9bdd5c1da839ee0d560ee54eecfd4e6f8419374078\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"904babe3cc4a6523f6c7d7bb4fa8178c2c955c89d81a14dde3234ff0f34318f2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"904babe3cc4a6523f6c7d7bb4fa8178c2c955c89d81a14dde3234ff0f34318f2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"905ba432e164950576b11a851bf9e20da65a563ed1f7c48c70e08195cea64910\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"905bee529096fffcd9db5df6412c01a8fcb7e3b278d40577424787a92c2184c4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"905bee529096fffcd9db5df6412c01a8fcb7e3b278d40577424787a92c2184c4\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"90710a52375ee50ccc9acc02613bee5347650b9f2161c75678983d4b51716e6f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"90ee0000e5ab9ac3f4408f6b4d27fa4eedcb2c52c6cf614e6dd347634fede04e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"90ee0000e5ab9ac3f4408f6b4d27fa4eedcb2c52c6cf614e6dd347634fede04e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"91b2f175d0fc88146369f84ca6c239ca1a6ed98829ef62482a99547730a9ebea\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"91f9f6cc669facd111f878e457fda05584815afe9cf23b6405fd48dfe20633d1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"91f9f6cc669facd111f878e457fda05584815afe9cf23b6405fd48dfe20633d1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9263e34378d30e333d08476050a49cc27cd37184536134598ecc1f304b6ed93f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9263e34378d30e333d08476050a49cc27cd37184536134598ecc1f304b6ed93f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9299bf498fb56be00833487fbec77f2bd83d642e13a9e3bfd859df5e89080e05\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"92c7be3c98c57372e1db4afa66055e16e1a76e295d6aa6c6e078629cf56faf70\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"92c7be3c98c57372e1db4afa66055e16e1a76e295d6aa6c6e078629cf56faf70\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"92dc617893c552bbff8cc6cbba564452e8a81ef994ac2230f6c922b6c498c756\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"92dc617893c552bbff8cc6cbba564452e8a81ef994ac2230f6c922b6c498c756\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"932f62162bcacb82fba8da45b4dfb5791a84217f1025305e7b7aa4000c3b84e0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"932f62162bcacb82fba8da45b4dfb5791a84217f1025305e7b7aa4000c3b84e0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"933874d8bff04df6747bca29582974990978827cbda5760ec9cceeeeb54f9566\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"933874d8bff04df6747bca29582974990978827cbda5760ec9cceeeeb54f9566\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9367c8794fa89f465e17385e0a07d4a51d6170835cb1a3408bd26cbac6f703ff\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9367c8794fa89f465e17385e0a07d4a51d6170835cb1a3408bd26cbac6f703ff\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"94069ffcadfec40d2a4242158dc78ae8c6cc384a85f7fbd71d7ef26028ead3f5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"943a14e24f551013929c65f7f048e2824da2a2ed3e361344b3be6d481f3d7bd4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"945044b2c9942caf7757f3388ba99ee66146257e5f59e8ed393c02755253734d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"945044b2c9942caf7757f3388ba99ee66146257e5f59e8ed393c02755253734d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"945335aef9b3ad2d1c90b835f16e2d67ca04388d000a475324071c932a1068cf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"945335aef9b3ad2d1c90b835f16e2d67ca04388d000a475324071c932a1068cf\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"945ec1d29b9c8b6c6e9b4b8ac93a1734fb391a0baa6998a8a19750088b58de7a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"945ec1d29b9c8b6c6e9b4b8ac93a1734fb391a0baa6998a8a19750088b58de7a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"948f7027b4ef9e19eeb9596f048adcadb7d54842ec2cc8f46f64d7d670deaa44\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"948f7027b4ef9e19eeb9596f048adcadb7d54842ec2cc8f46f64d7d670deaa44\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"94a7153361e6cc2d9252d4a58616cca087bda7c7b3288a865e3fbb145ab308bd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"94a7153361e6cc2d9252d4a58616cca087bda7c7b3288a865e3fbb145ab308bd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"94ea15df80b1ca7344b5f410f2b8e108780b94686e0d5e54efc448d1ba01e760\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"94ea15df80b1ca7344b5f410f2b8e108780b94686e0d5e54efc448d1ba01e760\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9503bb92a882ea713afeee49e0b40361693e6a1ed93b596b30222a033ac2e74a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9503bb92a882ea713afeee49e0b40361693e6a1ed93b596b30222a033ac2e74a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9514a9c891d5e68930081876ae8afdb9b3f721935dc534b8d224b6dc2ad0d630\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9514a9c891d5e68930081876ae8afdb9b3f721935dc534b8d224b6dc2ad0d630\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"95935e3663e1ad9c9ba0a4317586f009430cb8bc0b8db47cee4f247c9227e97f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"959980bc960f19db95720458de60c8b950bfbf3b5c484772a6b0f6114ee2ddbb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"959980bc960f19db95720458de60c8b950bfbf3b5c484772a6b0f6114ee2ddbb\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"95f7d5eeb7a5982f97093adcec5127c63b635c34f70d08a2e139993601973109\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"96aa87400ad8ddd8195ad282be1141207509e72c706908207d0902847c6cdae9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"96d7617fd1d78090cb94a711663eb326f52160ae05fb213b6e28ed601ffcc31b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"97b4112fc338bcc79a3f8c176ce0afa0884d9fa56507ded405c6f7c352feb64a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"97b4112fc338bcc79a3f8c176ce0afa0884d9fa56507ded405c6f7c352feb64a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9878361067c6bce87245517f833c2c7d90edfe40c167941d5554fbc044fcc691\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9878361067c6bce87245517f833c2c7d90edfe40c167941d5554fbc044fcc691\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"98cd917fd42973dbbffa561e647fa4d593287e62b2407fccca9638e67d7e42bf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"993a54d3efd0c82b25649bf5d6f77a44f6f5959531e2854530b260dae328bfd6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"997bc50b09f1455e793c76527c37ab1c718702bcabd6eac8dc368d3ed9bfe112\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"997bc50b09f1455e793c76527c37ab1c718702bcabd6eac8dc368d3ed9bfe112\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9981d353d3eb06e784c456f0f48ee6ff6b143dbf0653bd64e8025f3931f2d6de\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"99980e7a29ba0c4322b7e9c1e499ec49a693513130ea9b33d47c3b0df4a1e1bf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"99980e7a29ba0c4322b7e9c1e499ec49a693513130ea9b33d47c3b0df4a1e1bf\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"99bd3ba73a331a89e5b357026befe087bfdba2f9fac2a2c6c4c8ce9975ab5995\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"99bd3ba73a331a89e5b357026befe087bfdba2f9fac2a2c6c4c8ce9975ab5995\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"99c04aabd8efb2c5519d8f52ac68b591a12f06d55d3e186abd442a81ce8d2461\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"99c04aabd8efb2c5519d8f52ac68b591a12f06d55d3e186abd442a81ce8d2461\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"99de55232a7fc6b42f26ab0ce288da3cfadac6a950e9138032df1647198446c8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"99de55232a7fc6b42f26ab0ce288da3cfadac6a950e9138032df1647198446c8\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9a08ed8c04586931c290272ece669475358cf2f77bf755c2cdaf6cc9c3536a85\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9a1b8b8f337770317f8b8f3ef555f2940ff06d5688c90d4a7d0f40163812a517\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9a731ceef4d0a084fa06f3bd4e49d4d4ff4a4fec70db7ffc90bc9972386833dc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9a731ceef4d0a084fa06f3bd4e49d4d4ff4a4fec70db7ffc90bc9972386833dc\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9aab7d19824f70181766e0eb2656f415557ba71a3185173c41c08a142f5fd2e5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9ad16daec8f9de33895305754859028993ebf3801552ae38bc88f20342dabe74\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9ad6403e3d82b33a48cb96ae7af73cc2cc3406d070535f4c348443207148a4de\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9ad6403e3d82b33a48cb96ae7af73cc2cc3406d070535f4c348443207148a4de\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9b2fad5c6cd158e209a0f3f15a4f83bb22b79493893100ce2f05075bcb7cf572\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9b2fad5c6cd158e209a0f3f15a4f83bb22b79493893100ce2f05075bcb7cf572\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9b45979f1bbea7a9706e149bf0efe723ebb46cadc7816b1d1fedb43667e18f07\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9b45979f1bbea7a9706e149bf0efe723ebb46cadc7816b1d1fedb43667e18f07\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9b49d44aa9b7032782bd0e44303d8f8b08518b43af8e60e458e66ae1c192fc2b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9b6d96fb7663a94fec0fb84898f066a9c6811fa047f8afa63d8f70ba6f67f3fc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9b73cf6e01f775b3afb6f8ec10102653726cdd8a091190c60a1da03ef3227e26\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9b73cf6e01f775b3afb6f8ec10102653726cdd8a091190c60a1da03ef3227e26\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9b7db5b76b6d4b158193904a2b366509689bc655e5edef11831b441718a60071\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9bc597f389d9802379250b4ebd989ded9fa054f3184b0f17bd4aab6f5b79ac1f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9bc597f389d9802379250b4ebd989ded9fa054f3184b0f17bd4aab6f5b79ac1f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9bc946f72e5bf19fc5ce1613a6c9f810247b5913b74bc8522ae70835b8b5812a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9bc946f72e5bf19fc5ce1613a6c9f810247b5913b74bc8522ae70835b8b5812a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9bcb62c0f2979b6bfb86249a5a606962a05f6146753f2ea95e83da0b33d72385\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9bcb62c0f2979b6bfb86249a5a606962a05f6146753f2ea95e83da0b33d72385\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9bd8903fb8bb64f659777019eb8c7c8181913a816bbf595ae83c26aa99e6f74a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9be54f301af3b5f2ce391b84b32689174cfc835bd9092d67e4826250a8b3b8b4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9be54f301af3b5f2ce391b84b32689174cfc835bd9092d67e4826250a8b3b8b4\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9bfd904d20b458c9f2c6dad2f2f2c5fc76aaea16c6e49aa31e62a8e42e627920\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9bfd904d20b458c9f2c6dad2f2f2c5fc76aaea16c6e49aa31e62a8e42e627920\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9bfff64bbcf2bf73aa7c7b6358a7d858b5ddc83b19b619e74e35942e0f636505\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9c1571b5589b1681a47d2b02c3531702ebb7d466476fd0062a92a3ce12a6e835\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9c2bdc667c4a8a5ed0d71bc3cfe299182ce5676e139dcf7a0706fbc2377c72ac\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9c2bdc667c4a8a5ed0d71bc3cfe299182ce5676e139dcf7a0706fbc2377c72ac\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9d1f6ff2e2e56d8b56f8d92a5474f47860f13d3625ee8bdce14f3cbc955c595f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9d493a1dd3914989bc2ba3673dd5c9b17587059c1ae62f75c4c85a145bcfd940\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9d9427938b52114be9f67a17ba6b34d61cbf2e082f3bec7f961fd305664f1d41\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9da96c251bccb6378b0d4d87f3594b5ea314a26b18a7937cea0517e4967493d4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9da96c251bccb6378b0d4d87f3594b5ea314a26b18a7937cea0517e4967493d4\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9df4adb6cc5f7610024dabe9635e2ae8eda58ffe64f7076d01cdcf7a0887a61b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9df4adb6cc5f7610024dabe9635e2ae8eda58ffe64f7076d01cdcf7a0887a61b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9e0f2050079eeb149e37209bcc6e99c111f4c25f7acf0d516b884234aa92cec1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9e2435d8b8362c29f89b99ba41036a127d1bf8ab92ec0014301e7dc8c991adaa\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9e2435d8b8362c29f89b99ba41036a127d1bf8ab92ec0014301e7dc8c991adaa\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9e9c645a3d70e6a36353ffd50b3ec189c935dd71e67e8495f3184d17aa6cf694\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9e9db48c147c52ad17a5b4fc061d0271b27a595e82b31124437b55d8785337f2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9e9db48c147c52ad17a5b4fc061d0271b27a595e82b31124437b55d8785337f2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9eb216d271c30702016518e385e60b01f85fdbe3c7d895a65ff69b336f825832\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9ecd5f5a65f394d4c0c4ca15720bd921c75c9872f69429c9f66348129c9e62ef\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9ecd5f5a65f394d4c0c4ca15720bd921c75c9872f69429c9f66348129c9e62ef\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9f02cd2f75557b4a6828f380713866af3ceb9adf6a5bfa86e03e5e6de4499146\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9f505e538cbe5fde83ffec8451ee7504f97904cb23cfcb4b9c477fcade8cee95\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9f505e538cbe5fde83ffec8451ee7504f97904cb23cfcb4b9c477fcade8cee95\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9f7aecdfe133935e62d0ae7b3635fa46b9e4ad37ec7331471cb842ce0e28fedb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9f7aecdfe133935e62d0ae7b3635fa46b9e4ad37ec7331471cb842ce0e28fedb\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"9f8680d54c4d0bc9d6cab09251116c75194ad2b4831ca600f43a5d32249fa6ae\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"9f8680d54c4d0bc9d6cab09251116c75194ad2b4831ca600f43a5d32249fa6ae\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a0050cda9c4eb183a8f61172d629bd46049f4a0644f656f244b4ff5f87ee734c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a01b2b6d91324c0311cf2ca5f999fb785e56c41e1ace8d001603185477eb558e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a01b2b6d91324c0311cf2ca5f999fb785e56c41e1ace8d001603185477eb558e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a03093b69670a7da46c1791ff9fc878462cc1e4c2199cc6590a5e779dd8c9f2b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a03093b69670a7da46c1791ff9fc878462cc1e4c2199cc6590a5e779dd8c9f2b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a096fe6e67040329ef3cb2d0700d72d582ff266ce896736f0ead9b5b3ee75e4e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a0c09e73fd8712f3518093b655ce2bd8addcd576fa535be03ae2e7d1789db2b6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a0c09e73fd8712f3518093b655ce2bd8addcd576fa535be03ae2e7d1789db2b6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a1365d3de681150177c616185ea3b177ebbe2380cc3a996bfff1918b720f8985\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a221125f67135f8911deda466cdf04d1f0d427709fdc0a5593952cac96710a79\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a221125f67135f8911deda466cdf04d1f0d427709fdc0a5593952cac96710a79\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a241a9a8fa3e707a0ae7ec8338dc1882c2a2dc483c74c82861a6f43a83265d3e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a36925323012601afad090c115879c26cf13463ad72799abb118d72dafcc0db0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a36925323012601afad090c115879c26cf13463ad72799abb118d72dafcc0db0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a387bfaf79a959e2d01178d03bd3c5db897405a425cdbb28f9c897353588036a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a3a819f687663c5f7ef51185da8bdf80e39d28e309786465544133f3fe42a507\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a3a819f687663c5f7ef51185da8bdf80e39d28e309786465544133f3fe42a507\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a3f3f38715d12bc2cfae5b9436c5d167cc31d4d0517d30fda9180189739cbbc8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a3f3f38715d12bc2cfae5b9436c5d167cc31d4d0517d30fda9180189739cbbc8\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a43b66ed29f27c1a23452668dcef172bc14949000fc73e1f4cc0b05b14d5b0ed\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a43b66ed29f27c1a23452668dcef172bc14949000fc73e1f4cc0b05b14d5b0ed\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a4cb494da978d469f21c5f833ec8cc6099496c23be7e2d3b0dfe8664b634c660\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a4cb494da978d469f21c5f833ec8cc6099496c23be7e2d3b0dfe8664b634c660\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a4ed9a4290cc71715f33300740ea12e41151dfd51aca34283a1edb2bfed8a3ff\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a4ed9a4290cc71715f33300740ea12e41151dfd51aca34283a1edb2bfed8a3ff\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a50a2088a34ead7648f741f1e31eb5db9125e0d52075b56c4de2324382544094\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a50a2088a34ead7648f741f1e31eb5db9125e0d52075b56c4de2324382544094\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a53b2fcb5a64f6bcfe2dd7d643d9dc32ec8f8f297fe7e52c70b1fec94ee2cac1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a53b2fcb5a64f6bcfe2dd7d643d9dc32ec8f8f297fe7e52c70b1fec94ee2cac1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a584cd123b4ff5a838c28fb8f457c7caaad6e5c57ea65c7e11488aee936fcdf5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a584cd123b4ff5a838c28fb8f457c7caaad6e5c57ea65c7e11488aee936fcdf5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a5856f046635f2738d944a840a2fc9219f61db3cd56d298fa731b00ea240fe24\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a5856f046635f2738d944a840a2fc9219f61db3cd56d298fa731b00ea240fe24\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a5a30ff7cd68dad335f7920f32e9c167ff320264550c2eda5a1e260c8fa09d31\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a5d75b7f99edfc8259580285999197eb755b7e20342cfa0731b09f5b0b3635a7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a5d75b7f99edfc8259580285999197eb755b7e20342cfa0731b09f5b0b3635a7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a604c5b7aba60b1cbbcf1c7eb238a3004474269a7f909276e775fc613b9ffc42\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a696c99d14a137e488a33e1fb43e968b361e2b721d43a9d08e90c0e15fadfd5e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a696c99d14a137e488a33e1fb43e968b361e2b721d43a9d08e90c0e15fadfd5e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a6a24d42e32a5c8494d1f85827bcf448a3a34561fec7c58ab4f75cdf7ae97a97\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a6a24d42e32a5c8494d1f85827bcf448a3a34561fec7c58ab4f75cdf7ae97a97\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a6df1d401691587652f121c224c5d092e23306b2250afebb8e89c9956e0ee20c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a6df1d401691587652f121c224c5d092e23306b2250afebb8e89c9956e0ee20c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a6e1c305f5467e3f2586e682576e98668ad39ed0ebc88eed0bc8a535bcc4c625\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a6f0458546b1bf81fc3ca27b08ac594be6e1a03771c7c748b527ba2f91ab0409\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a716aa42cc7c39aa132d3b1be001f17227096c0213101f3ed9242c068e631ca5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a716aa42cc7c39aa132d3b1be001f17227096c0213101f3ed9242c068e631ca5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a79978cf20ebb26a8922f7b3d127890170f2798536743be6e61c8bfe0216ed9b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a7ddcee8b5497d97f52944d0960adc5c304d87318d91521aeec5c8668dba3206\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a80ac1efe83ee257fea41999f12c9d883f4fddadb3e06927bee1a3eca1d19af6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a80ac1efe83ee257fea41999f12c9d883f4fddadb3e06927bee1a3eca1d19af6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a813125dc76d576690b4d8c145cb37bd2f6d2f45079ef69fbe5a84619727e12b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a813125dc76d576690b4d8c145cb37bd2f6d2f45079ef69fbe5a84619727e12b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a88baa5db0855e6e6e2d7992b645c3e8440e06883232650cb4652f616bda44dd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a89852c0e5a59147d11ceb766417d8393f9b9cad207cddd1e32eec724e484446\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a89852c0e5a59147d11ceb766417d8393f9b9cad207cddd1e32eec724e484446\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a8ed2bca36d7d5336417189b42e7f2c326144959fd6446449e9d1d900f3edf94\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a8ed2bca36d7d5336417189b42e7f2c326144959fd6446449e9d1d900f3edf94\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a8f96842a48580747e35131ca35df8ab24a8dcb863b4628c6cf612b06e6932a0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a8f9f78fa9821254967bc1bec6d5761bdb7f70383a378c6f4636ec75297e0d0b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a8f9f78fa9821254967bc1bec6d5761bdb7f70383a378c6f4636ec75297e0d0b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a90607a69b81e9fc903b36bfbb165ef125b94ce3a997a39ce8fdd5bdb80f8a52\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a910426b67b8457c1ef4c06a8ae59afcefee37d8d8bd7226f96fe06e4e47012c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a9461384072083f90f8ca51b121030ac75c63111c7f037474d8b244796185bc0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a9461384072083f90f8ca51b121030ac75c63111c7f037474d8b244796185bc0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a978aabaa9771b07279153920e1428ab4300416e87b3173a92ab61f1d69d2ffe\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"a978aabaa9771b07279153920e1428ab4300416e87b3173a92ab61f1d69d2ffe\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"a980d197c6f9ffae90152e91e1f57d002f4993793084d3c1465ab423a1c10c21\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"aa1fa52c55078fd26b654b398f8b67505e05bfcaaa6d56d24c854a7e2887f97e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"aa1fa52c55078fd26b654b398f8b67505e05bfcaaa6d56d24c854a7e2887f97e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"aacebbabf46073e3bcce0f68f4f87905655448e7d8701d7761ef188e26464136\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"aaf75023618fb7a8dce3cb4e3738304791255912d026bc8d470cfec00d0fb5aa\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ab552312967c8122d40332c7541ccf987f92bc306dfbe65d4120a7e55426790a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"abc9acf8b5d0e3354fd4e6c24a2cbc17c46fb1ce0980f7af4fad295e5a88fe46\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"abc9acf8b5d0e3354fd4e6c24a2cbc17c46fb1ce0980f7af4fad295e5a88fe46\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"abcd9d6cc5710ddb438445ac21a633fbabdccfef70210a37c8166fbb20fadb47\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"abf71224c81a3e898998218a31051a90f139594746260f6003b81a479074d4d0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"abf71224c81a3e898998218a31051a90f139594746260f6003b81a479074d4d0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ac0067502beb16a07232266ddce50474527f4783e3f8fcf44b19aadcdb22ef92\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ac0067502beb16a07232266ddce50474527f4783e3f8fcf44b19aadcdb22ef92\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ac2f4c1722cfda11e2af1899e50e6d60088702447d44cf423f3ee4e2e7f62fdf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ac6f0cc6b92030c420d1539c3714aafdc9cd624d889ced2240a6136b92eef61f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ac7627e96c65c5376687667311100e10584cc6f4b9aca8b905d0e2a0391f7216\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ac7627e96c65c5376687667311100e10584cc6f4b9aca8b905d0e2a0391f7216\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ad4c70a297cd8c5b957573cb24c749b880b0f368f6e2de5da8b633bdcf5013ab\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ad4c70a297cd8c5b957573cb24c749b880b0f368f6e2de5da8b633bdcf5013ab\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ad5a3178a54124465c248c0fb661b4ee5cb925fbef0be5105b283d32fbf15a1b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ad5a3178a54124465c248c0fb661b4ee5cb925fbef0be5105b283d32fbf15a1b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ae04a3ad33ae5921641b3ebdf63404d5a74b3286935e721147841cec2fedc816\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ae5e4247a2961097f366fda62d9b0ed4104b106e9c4783d841617c49546a8bab\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ae5e4247a2961097f366fda62d9b0ed4104b106e9c4783d841617c49546a8bab\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ae63eda1add69d4a372b7a1996375a0110b07ae8c0a19283cd3da04cac33063b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ae63eda1add69d4a372b7a1996375a0110b07ae8c0a19283cd3da04cac33063b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"af0ec6c24987a4da4dc5c5b795f325229bdb00064e87db8c63b17b91145a58f5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"af0ec6c24987a4da4dc5c5b795f325229bdb00064e87db8c63b17b91145a58f5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"af4ac127005b6ab3548638dda6da8dcbe8ddb8a2c139d1766de907b34ab75d29\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"af4ac127005b6ab3548638dda6da8dcbe8ddb8a2c139d1766de907b34ab75d29\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"af6db883ae117063a76b00a36757ba9656d88311dac1ec8228d5456197a6ee7a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b018e10d28f9b078a4b9e90225f633487dcfe2ffdb6d1dd28fabc70c520a38fd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b018e10d28f9b078a4b9e90225f633487dcfe2ffdb6d1dd28fabc70c520a38fd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b06e76b6317585626d348e799847d4f9cedd86e677076fd9117d5fb67e79a4e0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b07006b1221af5b2a3ffd255db9b59b8ccbc9f81122d933d98bfda7feb696de4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b095be90160dea1ecb5fc109a5830aab173e280bb133cfd36e5de48545abaf78\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b0b94dd3dd8480939dbee300412961f20633f6d86db3ccabf2050c4ebb7006f5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b1063bda261988af8b7bb6c9809bc827ed1e607757e49815d7a935bd792c7b23\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b15083cec87c0c17c95d37190847ebb94357a068c2e5b4b6b5be10877a61a79d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b15083cec87c0c17c95d37190847ebb94357a068c2e5b4b6b5be10877a61a79d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b1a74afd501322dda231fc9a0fcdde416b26e0c847f269784da2411d94a7f5d0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b1d23ec12c279bd2b5e35800b54970f1bdf1750a0bc10b58a46ccfcbc5694bb1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b1d6cae38b455aeca550fd0ad1597ed18e2750eeae36803ada54329e8d237a71\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b224b423bdfc465b6327cfeb9caf2c85573366ea7c369a50aa946603057c1540\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b224b423bdfc465b6327cfeb9caf2c85573366ea7c369a50aa946603057c1540\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b2c0bde3696f8a654001c5a70a2424878745cbb055a55a0cbaa802201e0e7ad0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b2c0bde3696f8a654001c5a70a2424878745cbb055a55a0cbaa802201e0e7ad0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b2cb314586787e7b2ffc9ace5d6592ad21e746ea75998f2c6fb4beb27c7d86e7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b2cb314586787e7b2ffc9ace5d6592ad21e746ea75998f2c6fb4beb27c7d86e7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b2de81c1b7935c8cb5625327f283642d695a19e06af2c635ef87c84785380852\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b2de81c1b7935c8cb5625327f283642d695a19e06af2c635ef87c84785380852\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b33817c3565f6699be4f7466fe71c03396725222ce9a57702536832593fbdc77\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b33817c3565f6699be4f7466fe71c03396725222ce9a57702536832593fbdc77\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b34954420f7f26190828e2f966b836e7f6fe9ba64bf34d9ec69e51a90b6ee1de\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b3a745848b4f9878bce42c7eb0ec1afe7725844a2fdfbb0373fb9f9624b9ebbd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b3cd3a9fb78054e584bb73734129c0ae6ef542de97be3b5807acf6cbe08db5f1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b3cd3a9fb78054e584bb73734129c0ae6ef542de97be3b5807acf6cbe08db5f1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b3cd6283f8cdfdc9a8a09b884a77e5dc8eb1ab4e50b20cbe18a87dcac59ca588\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b3cd6283f8cdfdc9a8a09b884a77e5dc8eb1ab4e50b20cbe18a87dcac59ca588\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b3d89e99e26d7051ccbfd6b95cd4b6962bc5d7bb41740c0ddc417494d53dcf36\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b3d89e99e26d7051ccbfd6b95cd4b6962bc5d7bb41740c0ddc417494d53dcf36\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b426a470293e28c94587d9635bbe99d80b6b8980510b28baec34b88f17822af8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b45add1669563b46bfa2f7bc2bc2faefeb190448e2c434d5221f387ee16bf4cb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b45add1669563b46bfa2f7bc2bc2faefeb190448e2c434d5221f387ee16bf4cb\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b45bc84185d05773b96be450ca41f551f6390f1638de17e9e9087c33dc107530\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b46dafc3a62fac3b560e8edd9564588944e325014afce45a428ed00c21d22165\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b46dafc3a62fac3b560e8edd9564588944e325014afce45a428ed00c21d22165\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b48b048cd808a7b24d690988ff84cb70db34d15eb8d3c25005c54ad3b29ee9cc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b49671affc884dc5ede0c156e669618e2edcde1fced956c7e92eea62ee49e983\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b49671affc884dc5ede0c156e669618e2edcde1fced956c7e92eea62ee49e983\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b4b1a514ac84da09adcfec5514e40a1c0f731e780c399da33c7b5ad80a001211\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b4b1a514ac84da09adcfec5514e40a1c0f731e780c399da33c7b5ad80a001211\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b4e786a3a96f9cc24fbd330c0a6abc7a44fdf2a3916e589ed06b653517b61375\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b53d3c1684bc3b95017d989be3936f9cdf9d535aef81fc78753db2d34c263d9a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b55d3aa4315df8588abe7de95abcc4583197d731311b11a62b149033a116669b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b56e14004540e55c04b666c25a9bd53e51d618d8fb0285e7caed7d8e040e2296\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b56e14004540e55c04b666c25a9bd53e51d618d8fb0285e7caed7d8e040e2296\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b56e5b9560f4d8939a73d0a6d72cde189daffeb512ba0b5c03af533ddd3eebe1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b5aa8ab6303fe01f1733936550c8269e26ff4e19b89e3732df671e1e97427806\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b5b601b5b73faffc8f9663d8a966b7d06addbe35e247daa073e3142709a2a8c2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b5b601b5b73faffc8f9663d8a966b7d06addbe35e247daa073e3142709a2a8c2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b5d8961c153194bc3331e8c165c9942ab7897d644ce8ffcc898ff9919b7a273f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b62b09a067dde81d6bacb59b0aab6f772678e97074a8625ded566c8da335a165\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b62b09a067dde81d6bacb59b0aab6f772678e97074a8625ded566c8da335a165\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b67e52cac7bb7a51e9d8a41332f9aba833c15e3cd5896675ecd927706bb72011\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b67fb2258f1cd76d574e12ef2ef4b1c9ac3bc522aedcece20a229bbaadfa7394\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b6d3a190ee7d9c22fe618cd43df4283d2f9b7f9eee988201eeb5abdaf9254b8a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b6d3a190ee7d9c22fe618cd43df4283d2f9b7f9eee988201eeb5abdaf9254b8a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b708bda582cb3c453b8a0ff341c31d5ff2316db79418060880bcdca96d4905a3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b743c030780658e545254049cf912040e0bbfe3d7c01db9cd373fb712e0fdfe3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b766d5e507fe4a8da54d0b9899aefe18ea4a5969a0ee477d74c50ee937593e2e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b766d5e507fe4a8da54d0b9899aefe18ea4a5969a0ee477d74c50ee937593e2e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b774b9cc1794163bc39cbcab5dc7faaa89d1f182af3b6ebe76fc4102cd5e1d90\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b774b9cc1794163bc39cbcab5dc7faaa89d1f182af3b6ebe76fc4102cd5e1d90\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b787110bee085ee57e4b5c1094ec5908e2f4c848d85ab1049791b114f9557f2f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b787110bee085ee57e4b5c1094ec5908e2f4c848d85ab1049791b114f9557f2f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b7ab2a4d72b9d76c3fdf5da8ea80d1d788c13482ae91646cadedc3c3fa04b351\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b7ab2a4d72b9d76c3fdf5da8ea80d1d788c13482ae91646cadedc3c3fa04b351\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b810f8b10e66549e6352aef85c3e91a368620830f79fc2f0c1d8f02623171c5b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b810f8b10e66549e6352aef85c3e91a368620830f79fc2f0c1d8f02623171c5b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b829f89bb21eeb80def156e234b073e2d32b73656f5b40055b574f703504f6b6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b829f89bb21eeb80def156e234b073e2d32b73656f5b40055b574f703504f6b6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"b83324c9c95a814faf2b8edbcaf8ecc0b527627d577df8ed3d8ac8690d802b2c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b87a2777a26a6704bc9a78e636556e756cfe10e830bddec094d3321cfa606c66\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b8d97619bf9aa796f886039e860f5df15a06783b3992c09f2da0f3c59b4eea7b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b985f0a236f8fa618da05cf7f41bea134778c7f5634dc093deae024ae00d1673\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b9b1dbc073cd884e43de60a54740ac2a933bb72fc67418a78471225ebce090c3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b9c684e7ac76819af0d48bf512f15584461e975105986e410a5b70f27abd76ae\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b9e8c669cd0632c5caab476baf1e92c0b2eba6ee5fe42d55fd7ace2dd34e3ce0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b9f7a239c5354c61d1908288657bed1db2c75735fdec2e8735cba71dddf082d9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"b9f7a239c5354c61d1908288657bed1db2c75735fdec2e8735cba71dddf082d9\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ba8420e86ac64e832fedf277ae96f993c31a2dd763a6e1751b551214f47adf9e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ba8420e86ac64e832fedf277ae96f993c31a2dd763a6e1751b551214f47adf9e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bb17bb3e92c64253a2efd2ca5a6440e534ca5a315a473e9453a2bbccca4a56ac\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bb1884975a6052d6d4349af2cb9191436823e62b416e253518341be4ed9876d1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bb1884975a6052d6d4349af2cb9191436823e62b416e253518341be4ed9876d1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bb18e778e6399de6d09264cb56af2377ff95422b109f2ee768ce24f3b3a04e25\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bb18e778e6399de6d09264cb56af2377ff95422b109f2ee768ce24f3b3a04e25\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bbcc99724217e318fe3eaf4026cb1232758547f9548efe85c369ec4a26a37a85\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bbcc99724217e318fe3eaf4026cb1232758547f9548efe85c369ec4a26a37a85\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bc06be26e5799ee3c37db58d6e75130b0942d427ca49a7e3d3bd77266d9dbe64\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bccdbf464dd63d979e940f52e56aa23e5b17daa212b9bbf10fec3dcd3b58b8c6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bcdad12a62679cf86849e628934070015d00121a46e578ed0e0feeb3fa95fe9b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bcdad12a62679cf86849e628934070015d00121a46e578ed0e0feeb3fa95fe9b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bd058cd6a2be72c35da186d629aaef878ea886d351cccfdfff9ee2809864fc7e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bd058cd6a2be72c35da186d629aaef878ea886d351cccfdfff9ee2809864fc7e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bd1a00c318c94718801cb07548090af2f8894b460f577e31fbefcfabc5c6c758\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bd1a00c318c94718801cb07548090af2f8894b460f577e31fbefcfabc5c6c758\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bd73bcbb8d393adc4f5120c676f4d67bd53dcc5d8b3a070745c94287db0a07a5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bd73bcbb8d393adc4f5120c676f4d67bd53dcc5d8b3a070745c94287db0a07a5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bdc16073ac24c9872eaa6a98b651361f648149442e11ce3943b381c05582e949\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bdd19b3eecdf791e711be15206ce6a15706fd96a280aa6f6eac220bc31025459\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bdd19b3eecdf791e711be15206ce6a15706fd96a280aa6f6eac220bc31025459\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bdfa051092d2babc9300f8e4cd7dd9bfe6a4997d6c1e07e9143178f9580a0481\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bdfa051092d2babc9300f8e4cd7dd9bfe6a4997d6c1e07e9143178f9580a0481\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"be17de87dc6cc7ce502b3d520bea286347f5b10c5adac50263e75f951362cbb8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"be17de87dc6cc7ce502b3d520bea286347f5b10c5adac50263e75f951362cbb8\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"be26967b810b7fb9ded92f4680e73187514b47f71a7bfcf030dcf56ae4354ec4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"be5b1cf2281e0e9a1b103e18ee725939d436d3a7d1a7ab5d1251ebaf7ad93cc7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"be5b1cf2281e0e9a1b103e18ee725939d436d3a7d1a7ab5d1251ebaf7ad93cc7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bebd8cae739717fa4d7310d43392800d6a909848ad6db670d69f39d31b65f24c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bebd8cae739717fa4d7310d43392800d6a909848ad6db670d69f39d31b65f24c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"becad120746afbd01c3ef82573c4ac6a4cba9f9923058f573ea61e29f60bef9c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"beeb92632f365fe4c66c99e779f2a2023c5327d1cc48fdd15c9181de206c9bb5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bf0a9913cace279d3af6cce68d812b882220263cd7fd71db06f98184285820dc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bf5c70d8885ff9277ec3288db6a73bcef1bc0d8543324214f464bdc1945406a3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bf5c70d8885ff9277ec3288db6a73bcef1bc0d8543324214f464bdc1945406a3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bf694f11fd359fb79778de9aab9be32761f4677cb006ee4a98cf306d06586b4c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bf694f11fd359fb79778de9aab9be32761f4677cb006ee4a98cf306d06586b4c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bfa66f05f098539a0adf3ef352165ab924d6a6ef4f0d237b7e8c87d769dfec1b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bfa66f05f098539a0adf3ef352165ab924d6a6ef4f0d237b7e8c87d769dfec1b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bfad3de231296e59d577dda7ea989f8ef3ec7c06bee3c8ceab3f6a6a3bb2b9b1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bfc76a529ce1925c33fccfe3d12ffc6c08345442791503ec172889dd4bec27e9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bfc76a529ce1925c33fccfe3d12ffc6c08345442791503ec172889dd4bec27e9\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bfdd597d3710daebdd8d2a624cab25f0af3c9780d84748dcd2f753bf87cd27c5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"bfdd597d3710daebdd8d2a624cab25f0af3c9780d84748dcd2f753bf87cd27c5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"bfe410bf701133744e8630380b6efebe601fb6c53aef92de723c219c9c7bd7f9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c0e0740c3e13754ed94cea9038ee42b78b8286b9e8b5e92d71f10908db787254\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c1390606a734274e8f175f55e6c0ad62c8c9c6fbb9856f2067db107c15835681\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c1390606a734274e8f175f55e6c0ad62c8c9c6fbb9856f2067db107c15835681\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c18e0e0cfd53d38cf65fb811a8a54af6a08f36a6fea1638052e8643f8b12b6a4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c18e0e0cfd53d38cf65fb811a8a54af6a08f36a6fea1638052e8643f8b12b6a4\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c195f015d88a6eff5f8f099d06a7570a5d055a83df1b1a32113cbb0eacd10bce\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c1b8e5839a60e9d19dd8d5773daf5ad552698df17d95a4f539fbf0ae2b841050\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c1b8e5839a60e9d19dd8d5773daf5ad552698df17d95a4f539fbf0ae2b841050\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c1c452bacc0004c8b058b1beb6d97038a95749c357297a3f5cebba2f0a5feb63\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c1c452bacc0004c8b058b1beb6d97038a95749c357297a3f5cebba2f0a5feb63\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c219f090a8c38a00035b7071e18ca19e9b36f38895ade8b8fcee0cd127358aa5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c219f090a8c38a00035b7071e18ca19e9b36f38895ade8b8fcee0cd127358aa5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c22c3ef6229d9a225f62e09cab34398436aa5dc20da80c979262905465e5f109\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c26d391f7401643f07dcf950f8742844278c168cbbdfc140709957c4670503e6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c26d391f7401643f07dcf950f8742844278c168cbbdfc140709957c4670503e6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c27a29db4de3a70f40b485a8cc5e806698e8dcdd944fbcfc97b1e27a1cb682ed\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c27a29db4de3a70f40b485a8cc5e806698e8dcdd944fbcfc97b1e27a1cb682ed\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c2a3abc6b085765c074c60af17b92c76dccb6566bb3aa3215ebf1b01f13092f1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c2a3abc6b085765c074c60af17b92c76dccb6566bb3aa3215ebf1b01f13092f1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c2c730d2714a6c30d24fd2e0bdd0e7964312c8fd1cabadee23e2c14c4c9b4e16\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c2c730d2714a6c30d24fd2e0bdd0e7964312c8fd1cabadee23e2c14c4c9b4e16\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c3538f527c0167ab34baa366aefc27e95bb69a651c07d3f8f34f070c21f6d8f4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c3538f527c0167ab34baa366aefc27e95bb69a651c07d3f8f34f070c21f6d8f4\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c36522995d12d5a05a8ede4b6db764c5767d27f549c003b4589f8d7ac3cdf05d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c36522995d12d5a05a8ede4b6db764c5767d27f549c003b4589f8d7ac3cdf05d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c4333b74d1a5d07be3b697bfbaa3f11cfcf894431bddda5f1278d8640347b57e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c43aec554fa65cdc2b1ccdaa467c7b9ea33aaa37503e00cc41f6ca38255a9db2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c43aec554fa65cdc2b1ccdaa467c7b9ea33aaa37503e00cc41f6ca38255a9db2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c4861cc6ccdf538d44444ab422be8e2f33c4bade36f6847dcc8fc114d6d0e1c9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c4add2bc61ffe21158912b43614c234b0b4ef937bc532a961041e05f823e466a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c4dc132629f6e7e4ec1ef35ae6d4efec060292dba5b187f2bdc004f54283d0bb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c51a96f8b0ce6d000b267316d8bdbfe733e8d4e2a4165871a9fe9a71109c74b1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c51a96f8b0ce6d000b267316d8bdbfe733e8d4e2a4165871a9fe9a71109c74b1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c52bfafb9e23350846391149691c5bedab066adf2ab7bec407de492125024124\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c596a8815125072fff1ff577f66a3a772520258b7fe9aa7eae380031b61d8c73\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c596a8815125072fff1ff577f66a3a772520258b7fe9aa7eae380031b61d8c73\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c628a737aed380f79be65e9dc151963bf1cf13b398eb714dd6d0fbbd67f424b7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c69f4f37fdc4b1b58d69413d3b85fe7743706a7c1d5bcea45e9b6222e1600998\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c69f4f37fdc4b1b58d69413d3b85fe7743706a7c1d5bcea45e9b6222e1600998\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c6a6d79116d7bae68c5fcc4e752a9ba4000ceac6ce05bed43cd23e6addc29bc7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c6a6d79116d7bae68c5fcc4e752a9ba4000ceac6ce05bed43cd23e6addc29bc7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c6ba421b1fed9d1127f68a628235cdd5c7d3e7ed30b4e539b70ac40b94814d84\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c6ba421b1fed9d1127f68a628235cdd5c7d3e7ed30b4e539b70ac40b94814d84\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c6c443d49b41af350f10a4ef3f2d59783bceb56605e0252ba18d17c2fd67fb8c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c6c443d49b41af350f10a4ef3f2d59783bceb56605e0252ba18d17c2fd67fb8c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c6d1d3cb34c514190a99213b0601de612af42ac477ff5cffbc3641742540785c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c7244a0c1c142739267639d8cc3fda3c7396a95873df132126da4ddd2fee4075\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c73ce0cb4673eb1405eb68b1c6063e04e2a5ee1e301232cd803bda860e45b2e8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c75e5c5646efc15b227508eb0c1f57cf006254e74890558ff359378641ef5dc3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c80446a75b926ee0a35adbb58953911c844c05f54c93cbda734c2419b726dcf1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c80446a75b926ee0a35adbb58953911c844c05f54c93cbda734c2419b726dcf1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c811d237e4e24c5e84bc69807eb23f9a3d56fcd862937d4e87a0cd01f21a2564\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c83fc7ab4b6b0860545c1d06d5cbf0754e19b283adab6d301c80aa962ae084e5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c88a7d807f95a03e94fc0f8da6c1fecbb9f3d32f4e414846b502fdb37238f480\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c88a7d807f95a03e94fc0f8da6c1fecbb9f3d32f4e414846b502fdb37238f480\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c89751a65975168177aeea2c15778b50142ffa572291448e0aeec09e1d2ef572\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c89751a65975168177aeea2c15778b50142ffa572291448e0aeec09e1d2ef572\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c8c52830f536f0c95cc8ac94fc02fb723457ef4cd702c812eda32666d1c05f17\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c8c52830f536f0c95cc8ac94fc02fb723457ef4cd702c812eda32666d1c05f17\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c8d298fc3d2ea7c7954e0afc0b5c918b0ab685b077a223f0de87e66ac2e683b7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c8d298fc3d2ea7c7954e0afc0b5c918b0ab685b077a223f0de87e66ac2e683b7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c8e9f1f9d6e69f4def12da6cd92c4f07a7c1f08ab0047e664abe45295f05142a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c8e9f1f9d6e69f4def12da6cd92c4f07a7c1f08ab0047e664abe45295f05142a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"c90ef905c7f29ba823c208b0cda2cd09646bceef523a0a91f04210649c8f6c0f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"c90ef905c7f29ba823c208b0cda2cd09646bceef523a0a91f04210649c8f6c0f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ca1e645af1f7340ded2d71410a54bdb07932c0e1a84f2bf31a60c7ddf552fa3d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ca49119b314a7557370ce1d0db4b15a3bb8c5f313e34a45cbecc2048485dfaa3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ca49119b314a7557370ce1d0db4b15a3bb8c5f313e34a45cbecc2048485dfaa3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ca94eb10b4fc9e70826964060712a64989acb2cc21e3db0d1c5f8153e8647b73\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ca94eb10b4fc9e70826964060712a64989acb2cc21e3db0d1c5f8153e8647b73\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"caa2275e034bd11d8d464ea3b613c585044504b4583450e527d5681976a6b009\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"caa2275e034bd11d8d464ea3b613c585044504b4583450e527d5681976a6b009\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cb098e4a084189fa762357bbfdef9998a008557599b7a431c9c6ad6189df69e7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cb0d426f88887d4034ae7e507da54f0764dfdd027b04ce1bb5a6eb40b8ffbb7e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cb0d426f88887d4034ae7e507da54f0764dfdd027b04ce1bb5a6eb40b8ffbb7e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cb3daf843f1c09fcc41573e776f59329661077afaec038755c0a0a6a9b78ac7d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cb7b5dbd1eea03dee6ed77da080a8bb737b78ea8b0b68afbacd82bde1a447985\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cbb89f66196879b92e8a4145835026fd261c313739158e15aa439c09830a8875\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cbb89f66196879b92e8a4145835026fd261c313739158e15aa439c09830a8875\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cbc8b1ffdf1fd3dc8e79328723f0fc75996deae69d8c36be2c315663c0d0da79\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cbc8b1ffdf1fd3dc8e79328723f0fc75996deae69d8c36be2c315663c0d0da79\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ccf0ec5a3c5af3ab5807346922f85b7e0adbe3594e6561c77d3a80f43f51cbdd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ccf0ec5a3c5af3ab5807346922f85b7e0adbe3594e6561c77d3a80f43f51cbdd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cd43a3185b9c63c74ef3c51e75f7958875f0ea7623fda47955364f3320acf6b6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cd43a3185b9c63c74ef3c51e75f7958875f0ea7623fda47955364f3320acf6b6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cd4f629d985fabfb1658db5fce2319f6374432344fe55674a84d4dfbe3887f3a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cd4f629d985fabfb1658db5fce2319f6374432344fe55674a84d4dfbe3887f3a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cd584797eff833d1eeca42e7226f67caaa8ae4fa1fd77cb09a720e472f38bea6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cd584797eff833d1eeca42e7226f67caaa8ae4fa1fd77cb09a720e472f38bea6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cd5dea3a9f11a68a4ca38de01814268ec0cd3349e20a075ba6d9a9600021d70a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cd5dea3a9f11a68a4ca38de01814268ec0cd3349e20a075ba6d9a9600021d70a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cd9c7de770746850a5c826527151f7b38c2b8cb9fe1c202ec4380161bd532381\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cd9c7de770746850a5c826527151f7b38c2b8cb9fe1c202ec4380161bd532381\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cdb7e430981358a356131c77d93f2db1219ff9c0473077494a55d8fc5679b1f2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cdb7e430981358a356131c77d93f2db1219ff9c0473077494a55d8fc5679b1f2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cdd83d7d843fe2b7bac04fbcaf0bbaea155661b7ded34c0e1b67d39890f2d038\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ce0287a5b058492d25ff0bd6635540b953f19cefa95ea880054e8162ac1f228c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ce9a1294400da1a2a434e31ba07e86e15b1bbfdbce7f67eb6f8f044c296b50a3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ce9a1294400da1a2a434e31ba07e86e15b1bbfdbce7f67eb6f8f044c296b50a3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ceb514a72f2ae9599fcb22ee30162ba8833a39160e2dc21a2f03296ebbc6c6c5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cec2c1e893366588fe7bd8d7d8f7c4430216890122362fe698fdc5dd7763e27e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cec2c1e893366588fe7bd8d7d8f7c4430216890122362fe698fdc5dd7763e27e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cec6842760cefe0d744be627e45b22a06640984e7d15610eb6f5cf6685844dd8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ceda5647d3259d47de91a79a1b3c559119fe2d4f08dfc24a061291c1dbd45e74\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ceda5647d3259d47de91a79a1b3c559119fe2d4f08dfc24a061291c1dbd45e74\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cee99c73193e17894de50dad3f857be837ee5124e93757c6eb60db99ad9dc783\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cf47d8f022100422f4bc8dfcbdb276f048ac01847020f4ab4ae1cc3eccb70957\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cf47d8f022100422f4bc8dfcbdb276f048ac01847020f4ab4ae1cc3eccb70957\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cf8180211e5a74253931ff031ae6d22c2ea4a278ad271acc64156ae37e489961\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"cf8180211e5a74253931ff031ae6d22c2ea4a278ad271acc64156ae37e489961\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cf89118479d1595bf0cb468c18e3b732aa3f298c80c559c5e284dcb32f05dd6e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"cf89118479d1595bf0cb468c18e3b732aa3f298c80c559c5e284dcb32f05dd6e\",\n" + " \"n\": 2\n" + " },\n" + " {\n" + " \"txid\": \"d01b9debad7a8f2f7cd9d11e5a1eafd77863b0108a7ec3738377ff255c9aafb3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d01b9debad7a8f2f7cd9d11e5a1eafd77863b0108a7ec3738377ff255c9aafb3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d0b6ec0413d08a2def7e1300c7dfcd71773a54d2addd91448628a22c8e48a6e0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d0b6ec0413d08a2def7e1300c7dfcd71773a54d2addd91448628a22c8e48a6e0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d129b29dd54f4b4a2f7e358148a06ad742235942a2937fac7676fefe1e481f36\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d129b29dd54f4b4a2f7e358148a06ad742235942a2937fac7676fefe1e481f36\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d14b70fbad9e9c0d6276d265d65b28de5891aa25b57770f17ab1f44cdc795db3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d14b70fbad9e9c0d6276d265d65b28de5891aa25b57770f17ab1f44cdc795db3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d20e2b27524ae5e0ae6bb88bda962b6be52f9de3dd01119799983d7bcf63edda\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d20e2b27524ae5e0ae6bb88bda962b6be52f9de3dd01119799983d7bcf63edda\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d21d1be0078efea5354bd7c8be32d1f401f50aa3e3e8fef1f3903d87f2972594\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d21d1be0078efea5354bd7c8be32d1f401f50aa3e3e8fef1f3903d87f2972594\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d26e7c779feac7d034d4458f1efa0483394c4eda3d13c04f1ab0534237441d06\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d2cb1023435f02dfed4b59c3df6c6940b9222ffa7c1c172a41b1260dbe1e03c3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d308e352332ed6e05c806e52b23b5bb50a7349a35d6d72a1b8a5c30f3aa6ba98\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d308e352332ed6e05c806e52b23b5bb50a7349a35d6d72a1b8a5c30f3aa6ba98\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d3596c441f818c00dd3364253a0e7665691993873c70a2fc8e60bfc3205157a2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d3596c441f818c00dd3364253a0e7665691993873c70a2fc8e60bfc3205157a2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d38f9b57764b36dd20b7fd8302110dadca3532e4e2e03ef17a355d0a5a00df0e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d38f9b57764b36dd20b7fd8302110dadca3532e4e2e03ef17a355d0a5a00df0e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d3a1580be28c4eed3d10cc765a7d8100789b42dec383ce7c6307d2845662fe6f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d3b1a559f02bb02b1c24e572204899d2191c411341eca5b7ac887fb782ad9e93\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d3efce64fe3882c13438f540bdd37d56f53a2d60f590194aa6bf4892eddb776f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d3efce64fe3882c13438f540bdd37d56f53a2d60f590194aa6bf4892eddb776f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d3fabd32237b179b8cbd04559f52951fe7f102a7e879e20f50a69c6d88a7b49d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d3fabd32237b179b8cbd04559f52951fe7f102a7e879e20f50a69c6d88a7b49d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d40e350bf75c4bbe8a7c6045502ec777e61128b404c13e1576e2005730546d81\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d40e350bf75c4bbe8a7c6045502ec777e61128b404c13e1576e2005730546d81\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d4a149540a6440a00bffe196349aae1c12828399109651a4bf47c178e1b45b27\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d4a21d736af5dad8b3e6ffe3e3a625a24d1ad6ebf2c43ac75314d62627e429e8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d4a21d736af5dad8b3e6ffe3e3a625a24d1ad6ebf2c43ac75314d62627e429e8\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d4bda8fb7c36c11fed6ca36f46cb85c55061054da538b84b47e1fcf83023ca13\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d4bda8fb7c36c11fed6ca36f46cb85c55061054da538b84b47e1fcf83023ca13\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d4d4d2fdc6cb51e99a01d491f0e20159caa5172960bc259d050af920fd413b55\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d4d4d2fdc6cb51e99a01d491f0e20159caa5172960bc259d050af920fd413b55\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d53908b8644f3c41c0cb45e6a790e95c5b380b9818e2c59dfc3d6ca40587b0fe\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d53908b8644f3c41c0cb45e6a790e95c5b380b9818e2c59dfc3d6ca40587b0fe\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d54f5ce88490e0da743c2124f335a6f79feeac0dfa52b1566deb88c70dfcfbee\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d550a43130242c6fee4e9ca2883890775dbf70d2e1ff4a42a8f185e92a21df44\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d550a43130242c6fee4e9ca2883890775dbf70d2e1ff4a42a8f185e92a21df44\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d59b5c13af2bf192028567021e93fde8b7b524eb782183363d3a990204dede57\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d59b5c13af2bf192028567021e93fde8b7b524eb782183363d3a990204dede57\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d5d7adb58a54c6f7f210f467d8f55863e88140c075462c4ac622be0ead5a463c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d617bb33082f9cd4074e1994eee3f208c1b3e910590a6213077f57f91d7a7220\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d617bb33082f9cd4074e1994eee3f208c1b3e910590a6213077f57f91d7a7220\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d61eae768d453e45caa2a3bde4ac2c18e5acecff6d062344d339bc8e9024f623\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d61eae768d453e45caa2a3bde4ac2c18e5acecff6d062344d339bc8e9024f623\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d7289dd0f83e5a52582c2273cd20f8b6a131f8d90a07e8014baaf9be7a334b00\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d7289dd0f83e5a52582c2273cd20f8b6a131f8d90a07e8014baaf9be7a334b00\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d76d86ec8a11d7e590620560274a2e8660f3516a9eb21a0632abe7c9c787cd95\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d76d86ec8a11d7e590620560274a2e8660f3516a9eb21a0632abe7c9c787cd95\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d78b3f9366f4a4f5db58818f474cfe4699d0638c45ecfb9715399c5c686e63f6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d7de918fe1bd71ee60118b1ed59ad91d3cfbb1be95bbdff33fb06955551af990\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d7de918fe1bd71ee60118b1ed59ad91d3cfbb1be95bbdff33fb06955551af990\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d7e18e4c093d120549bef64c7745e9dc271c6ae59b96d3d54741446e5a8cbbd2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d7e18e4c093d120549bef64c7745e9dc271c6ae59b96d3d54741446e5a8cbbd2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d8a1c2d72ac8b2076a2eaa7f5a451d89fbff9d422ce7628c96b3dc984ce0ff05\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d93149f195af396f1fc509db8b866b4bf74be7b64308ffba8e1724b3f3848869\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d93149f195af396f1fc509db8b866b4bf74be7b64308ffba8e1724b3f3848869\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d9590bdce161020ee7412d5bcaeac8478be1bade58c1c730f2277ea92588873a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"d9590bdce161020ee7412d5bcaeac8478be1bade58c1c730f2277ea92588873a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"d9f8985e249884063c6d5e7ae87155f54b64bd5c6420ef06b68e4e1fa5a5211e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"da284d09b58348556e605d1b0556d86659d94afcbfa48ff34f73bb8244004ad1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"da4a5486633a3da02a17d16436c9f3587c7751e5e0e6c7810faa99eb8a3aea59\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"da4a5486633a3da02a17d16436c9f3587c7751e5e0e6c7810faa99eb8a3aea59\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"da6ecc4a6fef24b06ed14a93dafc8f559a2bcf282b347ef93d4732d1e5ad49a3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"da7f674d51f3bbc1d3cedd48e80f1895d893dc1161d7b840d5a0189202195022\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"da9155a7cf03a2daa0f5208688a356a6bcec979aa9c85f6251ee9b63bb933155\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"da9155a7cf03a2daa0f5208688a356a6bcec979aa9c85f6251ee9b63bb933155\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"dabff835bb4aedf7717d5b723d8b0c7325fe522a649c9ceeb52293264020693d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"db3c18efaa65eb30976ebf7ae2072fae9beda2ee5a3456c84cfeb2e657d8981a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"db4377dda3d5281d768b23740abb812ff1ec85089f3f21392918e1112ed4508f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"db4377dda3d5281d768b23740abb812ff1ec85089f3f21392918e1112ed4508f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"db54f0b2d978c68d6619281949ddc445f56c13206a0483d70d6710be3010928f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"db54f0b2d978c68d6619281949ddc445f56c13206a0483d70d6710be3010928f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"dbbd0191b33bfcb1352f3f1c9f59753770ffbbfc7fc61c721fc58acdbf3c94ec\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"dbc70ed820dc2f0f12f2ccfd949aa65f6674dd5827495b6120b72144ac3ed18a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"dbc70ed820dc2f0f12f2ccfd949aa65f6674dd5827495b6120b72144ac3ed18a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"dc7fa3fe778c8cd7e345d9dbb9b61c7011f52b7a6671ac4700acecbfd4fbd443\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"dca6075f7c5ff80d53d977316d60488e3a654ce917c031e6f04af55779778d50\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"dca6075f7c5ff80d53d977316d60488e3a654ce917c031e6f04af55779778d50\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"dcc42559e5b2f5ff71d35cb6740790c23c63b5314edc9e0de265f0d9f1d4461f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"dcf359021b6d536317f390652b328619d3738b2217bce3b9c27aa81d33bed521\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"dcf359021b6d536317f390652b328619d3738b2217bce3b9c27aa81d33bed521\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"dd09599622463c502322fd15f55651d5c7c3db7deda6abe0a0792828f7edfb4d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"dd09599622463c502322fd15f55651d5c7c3db7deda6abe0a0792828f7edfb4d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"dd716f997c988e39e3e4e6848f3efa1a5dfef26040220f140d622579166a17ee\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ddddc29fa950a163b041c92a6b07cd429e824a2e89c7df66cbd3ea85b2692511\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ddddc29fa950a163b041c92a6b07cd429e824a2e89c7df66cbd3ea85b2692511\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ddde91527aa587d9c7095f22480f9639fdc68677dd895ab9127d5340671f0d8d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ddde91527aa587d9c7095f22480f9639fdc68677dd895ab9127d5340671f0d8d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ddea6fdf1d9b1a443e9d5f3164d2e06f9cc1106bd817121b6f96249958084e92\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ddea6fdf1d9b1a443e9d5f3164d2e06f9cc1106bd817121b6f96249958084e92\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"de1ac60603d78fa6b6889870cf01451e7c864503a82d2f52a1b33ad37e849959\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"de1ac60603d78fa6b6889870cf01451e7c864503a82d2f52a1b33ad37e849959\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"de2cc88c885eb34cb2c62e2bd3085f6d683f5c5d94170e5f97842542a9815902\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"de36d28a6e1cb739b7a1e5d90cabe1fe40539912ee9053eb5b09b38d1942f16f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"de36d28a6e1cb739b7a1e5d90cabe1fe40539912ee9053eb5b09b38d1942f16f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"defdd76a23abb5b7875c78c37f068b601eda22c50e0f86e16787085a8629e3c5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"df0047b50d1035e471e9d11d1334e6b95cb2eae93dae35e5d79592352373bc02\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"df0047b50d1035e471e9d11d1334e6b95cb2eae93dae35e5d79592352373bc02\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"df08eb9c7db5f119c84525cdc50aa145f87bcb300ad5bf0e84b8a2cb691b9817\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"df2847cec96be42f94818722f41b2db75ce0cbec627eb78d5f617bedb58fe433\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"df2847cec96be42f94818722f41b2db75ce0cbec627eb78d5f617bedb58fe433\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"df494494825744b0c86c3326a32f204701e34737f1cc05f0a3d493f89a00990f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"df494494825744b0c86c3326a32f204701e34737f1cc05f0a3d493f89a00990f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"df664562b35697a3282a16f46b7888b83e005e93a94555758bb3c31d25e3f0b1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"df7155f1e4dbb734ebe6411bc96f9a4274a4b2069d0d456198836bdd5ccc50cc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"df7155f1e4dbb734ebe6411bc96f9a4274a4b2069d0d456198836bdd5ccc50cc\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"dffae00e0057727f18fa32eb7039f9b8b0ce42531ac69c1ba3b70b4b2d8c9d83\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"dffae00e0057727f18fa32eb7039f9b8b0ce42531ac69c1ba3b70b4b2d8c9d83\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e04ab336e8f4c7df454f04a76e27533e7b4d48a99279758aa6614e2a0619f7ec\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e06bc37fb1296f87aea6e79d194789d4444a8adbee41407e2af06673e9ed3fd1\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e06bc37fb1296f87aea6e79d194789d4444a8adbee41407e2af06673e9ed3fd1\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e0bfe37c9fed2cfb4babecf3089c9a01ca0b20fb7b6ebb30318b2d7ed159d13c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e0bfe37c9fed2cfb4babecf3089c9a01ca0b20fb7b6ebb30318b2d7ed159d13c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e0c1701b1aa692d7373b4439b58814a2747f862e1cfeed81fb906ed75e03299e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e0c1701b1aa692d7373b4439b58814a2747f862e1cfeed81fb906ed75e03299e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e0f632361a4237b0f67ff890b5027db0d22f812f60a62fade39fb4915d3bca94\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e0f632361a4237b0f67ff890b5027db0d22f812f60a62fade39fb4915d3bca94\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e1392e1583180e67d2ee5337cd3f0c22053943193e0ee9419c109a15707f0ddb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e155228e471f9e58e9d7991e4352dd6d92227c0a2f34888f68a265fe8c0dc033\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e155228e471f9e58e9d7991e4352dd6d92227c0a2f34888f68a265fe8c0dc033\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e19970465d03f9959e01f3b622358bf46a68d471a4f6b701e69e536cb21a614e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e285e1c3a5018eb875a4fadec2b482b88e59546fff8447e43e7e1b12cff6bc8d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e2a9acdd1f279ff6a955925c4f41cee2ab0512183ba89c3761acf4a5ace90baa\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e2a9acdd1f279ff6a955925c4f41cee2ab0512183ba89c3761acf4a5ace90baa\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e2b148721bd4afc2b8898e5e0bc68c36f4e639473418d770b676b4d8aa29adcf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e2ba402d580acc288d48deb07b5190b36c2bdbb8a74a0195b97c1f837d5bd24c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e2bf83855ff1260ddffca69728b79524ecf6804c0935f2c2e584616ecbd7d549\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e2bf83855ff1260ddffca69728b79524ecf6804c0935f2c2e584616ecbd7d549\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e2e91670786874cd4dcecf1597be5e23b1f9ec533f45670ecb73274fe040da32\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e2e91670786874cd4dcecf1597be5e23b1f9ec533f45670ecb73274fe040da32\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e2f65f395955aa117b40345232ee5d662fb2b1a99555a846f69a1747a2417b8b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e2f65f395955aa117b40345232ee5d662fb2b1a99555a846f69a1747a2417b8b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e355bed94ee9520895d1cedcc3e9c5f14d962ac1006e4314c190ea26ba229a67\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e355bed94ee9520895d1cedcc3e9c5f14d962ac1006e4314c190ea26ba229a67\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e35f54b7d398c6e3862bd4b052da89c2e867f97b8b9448766290897b30369972\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e371e5394603accbddf9208790ff7599f8d67b5daf0d2a0041c327bf13070bd7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e371e5394603accbddf9208790ff7599f8d67b5daf0d2a0041c327bf13070bd7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e3821d74ab5e7d2f6f08ae1975d9d92451b60dea5fe7875c5a9a5b745d4a90f6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e3821d74ab5e7d2f6f08ae1975d9d92451b60dea5fe7875c5a9a5b745d4a90f6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e38338f78e41e1304c58bf73b7ee3d3f76586b8c909641d929e7d0a595a4044c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e38338f78e41e1304c58bf73b7ee3d3f76586b8c909641d929e7d0a595a4044c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e38bc5d19be4d15493d81655c8077fd5f86ca8ed33258ddad9d561a576f80ffa\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e38bc5d19be4d15493d81655c8077fd5f86ca8ed33258ddad9d561a576f80ffa\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e38e99bd62b6b8c178aab34d5cab1334f45fda54fff5b2c9af8bfcb237ff55ca\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e392f1b5877a554954df8b84a349252b91db4f06fe00f9f2b0f38906c6060a0a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e3d4fbc141fd6d9a23c4df2e5a6cb520bcac624b31512ac9d546312d4c957af5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e400c331e876818ab15f74e60292f935995f5fa77bb6619284c1ca5f67f50e1b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e409bfddb916606553c4fa87e1ff030f6f6fa00e3caee03b1ebe371a4d6a07ab\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e438a25429d1a6ad008e808796f231848532acd0ce730436c9136b53c22e73a7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e438a25429d1a6ad008e808796f231848532acd0ce730436c9136b53c22e73a7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e4a765c940afbac650ffe661153b4e719a0326fc1c87d20185a7862ff772e9eb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e4a765c940afbac650ffe661153b4e719a0326fc1c87d20185a7862ff772e9eb\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e4efac582d63a964f6a932426fcbf7c7a26072d73803548055a01ac2d64eaad5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e4efac582d63a964f6a932426fcbf7c7a26072d73803548055a01ac2d64eaad5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e5025b2ca865ea2e23e3e71015f29083559a8e67afc3ad6b056f8d24aca55f2d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e507a89623fe0af85de3e5dd62edd00a506277488c97ac9d21aa617986135eba\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e507a89623fe0af85de3e5dd62edd00a506277488c97ac9d21aa617986135eba\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e57710c11225e45c173a960221edc25c83f107fd15fc528ee47e10788d4846b9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e57710c11225e45c173a960221edc25c83f107fd15fc528ee47e10788d4846b9\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e579d07c3986d83e03fcb029d9f2b10ac088c32f2eab380b775c218fbd380c31\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e579d07c3986d83e03fcb029d9f2b10ac088c32f2eab380b775c218fbd380c31\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e57d393f8b1a5141fcf66149cef2d09c05fecc052b96c126656211df4dcba067\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e57d393f8b1a5141fcf66149cef2d09c05fecc052b96c126656211df4dcba067\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e6f67985a957b67a91044ab2fcc9987cc4ac1ff185610437e5dd7695e318b24b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e6f67985a957b67a91044ab2fcc9987cc4ac1ff185610437e5dd7695e318b24b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e7e16a7df47f41ba1ec3653bb5f4d8e84fbaa6d2ba0696fe675b4781e930899c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e7e16a7df47f41ba1ec3653bb5f4d8e84fbaa6d2ba0696fe675b4781e930899c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e85cbcf8e30ea30f8d3a37ea08da714ab129af104bb08a9e8abeddf4f2626cda\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e87c35505f0adbeb4d8e4af3bb5e1c32075e87660b6d3f1f1c9ba9accc547507\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e87c35505f0adbeb4d8e4af3bb5e1c32075e87660b6d3f1f1c9ba9accc547507\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e89e864b9d18a06be1a32f5876f22874af435a92dbee70c674a09a770ae3fe9b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e89e864b9d18a06be1a32f5876f22874af435a92dbee70c674a09a770ae3fe9b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e8bbd9ba2c2dd5a30062fb45adfdf74004a077e3104a10af8e7f9e7aed259c4e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e8bbd9ba2c2dd5a30062fb45adfdf74004a077e3104a10af8e7f9e7aed259c4e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e8ef4ced962ab8dcd1808c633cc03542f36f94f3e009883da4d956f97bdab072\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e90a8da17dbe955e1e739495073c37e9d17b9d8b5f3c57b7d9e6c9b41b5e7806\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e90a8da17dbe955e1e739495073c37e9d17b9d8b5f3c57b7d9e6c9b41b5e7806\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e92158cfcc390a64415f36fdf17dbdece413e4e55eee017aebb60226e852c1e2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e92158cfcc390a64415f36fdf17dbdece413e4e55eee017aebb60226e852c1e2\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e92fd5c27b38503c286aa3871a0912a7f61b6a253c96e1ff6100247753a0514e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e9c30a8a9c68c776b82a73aa4510cfc53bcfc8ec80ec447abc6e5ac961598cac\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"e9c30a8a9c68c776b82a73aa4510cfc53bcfc8ec80ec447abc6e5ac961598cac\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"e9de1d488ce9cdf97f4887d0e98c99ca3cc15ba3df468f040820c3322f156857\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ea069f8ac6096fdb6a0fe13d4a457a20dffec2f69e22469506b3ecbb8c0544eb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ea069f8ac6096fdb6a0fe13d4a457a20dffec2f69e22469506b3ecbb8c0544eb\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ea9f1a9004bf61053aa026931fc5c2ec0853c94e418c04c22beb6b88e93dbf4c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ea9f1a9004bf61053aa026931fc5c2ec0853c94e418c04c22beb6b88e93dbf4c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"eb394a9bf15fcf34004ea86d4d3517a67ab2fe43d0f4bcadc169f6aba1fd6334\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"eb394a9bf15fcf34004ea86d4d3517a67ab2fe43d0f4bcadc169f6aba1fd6334\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"eb523a3d692347befa7021a8338dbce56b36d1d03f513503aaaab08da6bdb941\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"eb523a3d692347befa7021a8338dbce56b36d1d03f513503aaaab08da6bdb941\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"eba6e81f599a55f44a80f2bbc36aa2f5eb6f582c3558b1122f3be5aebdf5a2b4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"eba6e81f599a55f44a80f2bbc36aa2f5eb6f582c3558b1122f3be5aebdf5a2b4\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ebab71a510cabb9dd7ba5646ad2706ffd85fd3ef538dff2feb4aeb606df5b03e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ec1a40654a868737cda76b1d77c9a003060ffd7fa938323ead8233f2fbdfa10f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ec1a40654a868737cda76b1d77c9a003060ffd7fa938323ead8233f2fbdfa10f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ec56dd89cec7ebc236d1f127c32357099236b76104c3c2d7f29acc948e67d7ad\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ec56dd89cec7ebc236d1f127c32357099236b76104c3c2d7f29acc948e67d7ad\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ec6889a604d8971591e05f6d01bdc2789615103a86db75a7ea01c7ce7e9d3d56\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ec73649f8cb12c4cadc3fe5f4765feb9d783e0c7f70993a90c88cdcca4fad0ad\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ecbf018ca42347f067082016964bdc63769dd26df9eb24a0d0d2d651fcdb4c17\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ecbf018ca42347f067082016964bdc63769dd26df9eb24a0d0d2d651fcdb4c17\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ecf5c60db8b16686ac68452883ce5a53e7c866e3ebe864d6e17393d082dfc3fd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ecf5c60db8b16686ac68452883ce5a53e7c866e3ebe864d6e17393d082dfc3fd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ed3e1d4485fc2bb02a68e862413b1f52b2fc2ea0ebe52a33bd819e53470c91cd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ed890fb44dee6e293036116d775e281e734d7ac695b7678e68d98f086756d7aa\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ed890fb44dee6e293036116d775e281e734d7ac695b7678e68d98f086756d7aa\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"eda3b9a64f9bbb930b6bbff1c1397c88fa6c75ea1cf576a92f84b17e87ecfba5\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"eda3b9a64f9bbb930b6bbff1c1397c88fa6c75ea1cf576a92f84b17e87ecfba5\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"edaae0ecac1b1f02273069c95de214bc5116b46d6f5f432b9050924c7c920bf0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"edaae0ecac1b1f02273069c95de214bc5116b46d6f5f432b9050924c7c920bf0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ee2143d0efad27f2af65866218e92e0ce74bbb6a0f72542a5707a553ae4a6cba\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ee2143d0efad27f2af65866218e92e0ce74bbb6a0f72542a5707a553ae4a6cba\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ee21e82fb71757839e8bdb0fb14bce747911922402d0680d6122512e45512959\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ee4548d056f0c6f5eecc02fd0d0274a9c5bb6819196e4d2be7183f183e9ea8a8\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ee4548d056f0c6f5eecc02fd0d0274a9c5bb6819196e4d2be7183f183e9ea8a8\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"eed388fb3a9423bc64743ef5e61e98d11d3b4e1b2e27cfee0e008aaf646a1f73\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"eed388fb3a9423bc64743ef5e61e98d11d3b4e1b2e27cfee0e008aaf646a1f73\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"eed937b31de430f26e5983f2c59410ed4368280ee8b916626ed33420db85335a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"eeecaa503c50df22a85de6b2298c2a3e39a66d5ad8ee9d177c95d56f7426325b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"eeecaa503c50df22a85de6b2298c2a3e39a66d5ad8ee9d177c95d56f7426325b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ef1ef81237a9dc8ac56ea438e4b7cecf6d1706f79d1c195e35b20d0fca26c931\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f01274450b65dacbe63b1855ae18929c854e6558ff7183eaa2b27ad5ebfee2ba\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f01274450b65dacbe63b1855ae18929c854e6558ff7183eaa2b27ad5ebfee2ba\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f07cbb9a0b0bfdd9b9a6ed25c3528b3d95759a8f23820a73e93dd981ac6acee7\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f07cbb9a0b0bfdd9b9a6ed25c3528b3d95759a8f23820a73e93dd981ac6acee7\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f0f25ff526e1fe78f818d3d6d23230015b88f093858273db9c3b29f63cc69201\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f0f25ff526e1fe78f818d3d6d23230015b88f093858273db9c3b29f63cc69201\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f11d337d96933ecb10d79bf56aad315fa6484af173c87f9c7a9ab05ea34633d9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f11d337d96933ecb10d79bf56aad315fa6484af173c87f9c7a9ab05ea34633d9\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f18db0569cd480c577e5ddc29db43092042c660375de09f10b8a82816132ece2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f1b82ebaace87cd4a9d3f47ad7640665e24dd3cab20409fbff7286d802599357\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f1c25b581bade13be5d9434b4bc4fe601c061bbe8cbf264f72463bfb24256047\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f23d986d803f0470ace110ff85505a316928bd7ee201db3e95632a654293159b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f23d986d803f0470ace110ff85505a316928bd7ee201db3e95632a654293159b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f2a6a406cb9068596378c03c91829020fe8b9b2cd6ca75c563a5fd56daa61412\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f2b4d9b00ec88216e1a5940e62cb758ee8c7d52bbf1c9be7148d2f7b583e0a98\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f2b4d9b00ec88216e1a5940e62cb758ee8c7d52bbf1c9be7148d2f7b583e0a98\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f2ea7df6aae538af9a86ff58e08da1204c49a97b056b078075e39f79cf28a36c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f2ea7df6aae538af9a86ff58e08da1204c49a97b056b078075e39f79cf28a36c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f32214553d4a9f4f931c35e7071bfdf1410da95a92bd22c45fe2241f47f40d08\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f3271e1f6e66125d9cf05f8e0593bb06345e0c0a0524e2f00d240090ae074644\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f3271e1f6e66125d9cf05f8e0593bb06345e0c0a0524e2f00d240090ae074644\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f340868f924d36051265cac75c7d69c77090410a972f4bbcf354a8c4e12c2b38\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f340868f924d36051265cac75c7d69c77090410a972f4bbcf354a8c4e12c2b38\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f34ecafed6eec137553915b3595eab82d38031335bbfdea594e8bd6db2819600\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f34ecafed6eec137553915b3595eab82d38031335bbfdea594e8bd6db2819600\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f3583eb013eac568f51b457c54a050eb450013cfc46ecaa829226efb9ef6ca4d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f3583eb013eac568f51b457c54a050eb450013cfc46ecaa829226efb9ef6ca4d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f3ec8eb0910557a8f996781d2934ad61c179610c2c0d38cc6fbbb1aa008b879f\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f3ec8eb0910557a8f996781d2934ad61c179610c2c0d38cc6fbbb1aa008b879f\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f46ad5e8b73a8d994a8007b4e1a43e125c37dcd9eea4383f463f8bb02bf14483\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f46ad5e8b73a8d994a8007b4e1a43e125c37dcd9eea4383f463f8bb02bf14483\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f4c6fb6a95ea944ec7fdb382ff68c4217b39177cfa2ec426405fcc66174af66a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f4c6fb6a95ea944ec7fdb382ff68c4217b39177cfa2ec426405fcc66174af66a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f4f8610928be83755404771c0d3c799bc864924f92521abd6b813eeb30908b77\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f50cc3f39fed9dc4fa78806101e8e571ee911a3413e839eea848682623a1452c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f50cc3f39fed9dc4fa78806101e8e571ee911a3413e839eea848682623a1452c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f5a0fd710d8ad80cbed09d69ad6f9c5e714cd700964c10ef2156ac1df07e852c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f5a27c5e1e7e8708c23a1d3cf5f0f0b1f70e80639051df1ed3f7a7e1eaa3de37\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f5a27c5e1e7e8708c23a1d3cf5f0f0b1f70e80639051df1ed3f7a7e1eaa3de37\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f62eddb5df36cbe4447f643385aa597a61f5023caa11f3f541563419e95996cf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f66faea1c9ab023562cc8ce32f91821ad62b30a7fe83ef381628b22104d5e798\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f66faea1c9ab023562cc8ce32f91821ad62b30a7fe83ef381628b22104d5e798\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f68c59cfb5cfa5f763ec3d5fcbbe88ccc0a37ebff62d6e229485afc0b32f8667\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f68c59cfb5cfa5f763ec3d5fcbbe88ccc0a37ebff62d6e229485afc0b32f8667\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f6b111b5dd954fbbd6161bd5b181c8de68d0f427c2d3c675ee73c440b31b31d3\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f6b111b5dd954fbbd6161bd5b181c8de68d0f427c2d3c675ee73c440b31b31d3\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f6eef0f05efe5abdf649f176dbaa3c2b7859ac9905403494fb638c20b5c52814\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f6f57f1c4b95cc4a29af777b28056bd0dc57ffae70ed601bb15027094c67242d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f6f57f1c4b95cc4a29af777b28056bd0dc57ffae70ed601bb15027094c67242d\",\n" + " \"n\": 2\n" + " },\n" + " {\n" + " \"txid\": \"f7504dc2bffaff4af878e48d932739bc6b882cc38f91ec4f1aec38dc93d72dd0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f7504dc2bffaff4af878e48d932739bc6b882cc38f91ec4f1aec38dc93d72dd0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f75b6c0a93ae6ea1871cd96bd050f30f925cb4fda7c26c227e99ebddc5ef2940\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f77729c5aa1294da9fab83d4b4c6ca6317706e216c1ab1b0f33964852068616e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f78d483909e1db4aac2c41eabf8809a81c5882b1d28cbfa37b5ff91714390549\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f78d483909e1db4aac2c41eabf8809a81c5882b1d28cbfa37b5ff91714390549\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f793f8ce409b22e5684e13e43a923cd5e7fa74c853c1d10f52c169a4fff06f78\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f87200e4e44c4bbd4f62ec07448a623a200804ddf79236bc5947896591f2afdd\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f87200e4e44c4bbd4f62ec07448a623a200804ddf79236bc5947896591f2afdd\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f891496db9be5e3aaaa0d9cc0d19d6f7834e820e00d63e2af013af6d16d7395e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f89eba8b9150604add1d26b632bec964027cae464c48940cc9186227186d027d\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f89eba8b9150604add1d26b632bec964027cae464c48940cc9186227186d027d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f922e719d01b7214436afbf272a9c7b2c5e24bb1cc946daaed33c4b2f53d9dcb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f922e719d01b7214436afbf272a9c7b2c5e24bb1cc946daaed33c4b2f53d9dcb\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f9578addf100907492a87a0dee93761953662663dbce8e08a73227847378e9c6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f9578addf100907492a87a0dee93761953662663dbce8e08a73227847378e9c6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f9b4a7de5f85e86c22bd61942e0de7955940e3ec8b5dd3c48cad1b9f0f15ceef\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f9b4a7de5f85e86c22bd61942e0de7955940e3ec8b5dd3c48cad1b9f0f15ceef\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"f9b92416eb79387b33e0f56eef435d252b472d8cd38eac8124cdcd94256717da\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f9cfc1b31340a4a16046f61109ac03350f9a475e63c97b306d33f2b82e60d613\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"f9f220823ca5e9010621c9d70bc2bde242f2144f0f9197facdae20c2707c4dfb\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fa2c41d3b5075b470898efe496de7bef1a08170594d7017b512bb6ca5d1fcb8e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fa2c41d3b5075b470898efe496de7bef1a08170594d7017b512bb6ca5d1fcb8e\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fa44afffc0facfbf33220ad2c46d9502c501b6b6832d7ba7e01c92ab12293457\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fa6f52a8685e5653a0c8cf93397947a63b5fe4c204c188ed8c3fe9109b12d669\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fa6f52a8685e5653a0c8cf93397947a63b5fe4c204c188ed8c3fe9109b12d669\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fadb123e439fa3ff8a7af185628f7d7fc6ed14e08408be2460080a9bcb7e0917\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fadb123e439fa3ff8a7af185628f7d7fc6ed14e08408be2460080a9bcb7e0917\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"faefce14269139531a87832181b0cdcc1b9a2b0512de05f8aa4e194cf5a5c0dc\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"faefce14269139531a87832181b0cdcc1b9a2b0512de05f8aa4e194cf5a5c0dc\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"faf98468cba9c2e1f7e8412f98fb0b9d3e283b4899b652c5d022129bdf62445a\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"faf98468cba9c2e1f7e8412f98fb0b9d3e283b4899b652c5d022129bdf62445a\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fb04513b447b3a2dd9a05ee6aaf21a5930e333514900c78ab6bc9fb9f59c4641\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fb04513b447b3a2dd9a05ee6aaf21a5930e333514900c78ab6bc9fb9f59c4641\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fbc5c77f09278a0dfcf27850af17cd87ea45cce54a42099f795df46e38494f1e\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fbcd0e8d1c4294913e501d2f211b98a26f9cb6f2caee5f85477481e38bffc949\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fbcd0e8d1c4294913e501d2f211b98a26f9cb6f2caee5f85477481e38bffc949\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fbd2f9ff17ae6044e9dbfc74d5373b952087719388a686d721cf21eddd245293\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fbe4873146d77f5906c930401cda16a480713b829e0d04d5a9300861eeea0508\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fbe4873146d77f5906c930401cda16a480713b829e0d04d5a9300861eeea0508\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fbf0061ec89b2be70dafc78e219c1a68a085f8b5040aecd5295e4dd4270a48a0\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fbf0061ec89b2be70dafc78e219c1a68a085f8b5040aecd5295e4dd4270a48a0\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fc29357f7d5b007fe406dca83c028b2f64f0e641488323fc125a0f98683be3b9\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fc5ed1cad7abda03588ce2c42bc19079e93495d26cc9ea23b3185220bd7b90d6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fc6bdf20d19a29a7badf69d275ae90fcee180e0e1a2c225bada97b4a43004053\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fc6bdf20d19a29a7badf69d275ae90fcee180e0e1a2c225bada97b4a43004053\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fc9539c5c8647da533665a617303cae3598de9ca9602f22f47b403a43f3917bf\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fc9539c5c8647da533665a617303cae3598de9ca9602f22f47b403a43f3917bf\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fcc078f2fd881acc9e59d4cad23e67757ade61155ce0fb1031fd94cd771ab442\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fcc078f2fd881acc9e59d4cad23e67757ade61155ce0fb1031fd94cd771ab442\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fcc697cd0cf8e1d827dd04e2321c67962583d4497f6dad2da2916e416413c697\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fcc697cd0cf8e1d827dd04e2321c67962583d4497f6dad2da2916e416413c697\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fd4bb45888a1c05c26f3f5e0a74c72bbf8d8398c8c0b166c5b2013b91aa69894\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fd4bb45888a1c05c26f3f5e0a74c72bbf8d8398c8c0b166c5b2013b91aa69894\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fd553ba535204e1959ad479d461f897afa1c30c1ba5e433ff695bf439c539072\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fd553ba535204e1959ad479d461f897afa1c30c1ba5e433ff695bf439c539072\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fd830f72967ce3b18b0e0cb3752971a7345123ddce1fdafab3d4d0d535952578\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fd830f72967ce3b18b0e0cb3752971a7345123ddce1fdafab3d4d0d535952578\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fd9b287069b1cd37cd6ca3acad9745360188c669f0aea13b8f40607973b42a01\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fd9b287069b1cd37cd6ca3acad9745360188c669f0aea13b8f40607973b42a01\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fdb7217e1c8fb7621c0a301756e53b6603f78e919bfb8380051009134c0e8e4c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fdb7217e1c8fb7621c0a301756e53b6603f78e919bfb8380051009134c0e8e4c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fdf6f835f928c964c3c0c8eae7f38dd5af46bebd767315c3557456773ad44768\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fdf7dcf77f8448d7e7806e0e30b38348882a2773c05e6b18664268e728e790a2\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fe2d16bff14cb0284f8fbc8cbf70645c147c07d0d9ba2a18c6c5efbfddb49d8b\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fe2d16bff14cb0284f8fbc8cbf70645c147c07d0d9ba2a18c6c5efbfddb49d8b\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fe34f4b21f7bdf6d0d17e9f68bb919c44d2921480cfd6441f71a5e61a7418f70\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fe34f4b21f7bdf6d0d17e9f68bb919c44d2921480cfd6441f71a5e61a7418f70\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fe38cd0a2a3110922b1b55c4d8e6f9ecd56c5bac61ec7b8c4e168063c019a403\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fe38cd0a2a3110922b1b55c4d8e6f9ecd56c5bac61ec7b8c4e168063c019a403\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fe8b78fe29f2846e90608d83a975577710fa9c1e94ef713c4866d6680ff96a54\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fee425420215cca74d1eafebcad0dbfb98a3393130a8700e09d2e9f37b22901c\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fee425420215cca74d1eafebcad0dbfb98a3393130a8700e09d2e9f37b22901c\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ff094c52d9dc5908abc6f2106e4c6e824ee1b4dfb1e73f485ef76faa2eac62c6\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ff094c52d9dc5908abc6f2106e4c6e824ee1b4dfb1e73f485ef76faa2eac62c6\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ff6809528d69e1745dd5f979c77f1a7b55f97fc28c4ad937392b45d312d049c4\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ff952cd968917f1e88068743e825371ad2f548e133903a068dd64e10d8ebfa3d\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"ffcafd056bbb50b8c37a8205bc8621c7c36bab70939d4d6d6e7c56d8767e8856\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"ffcafd056bbb50b8c37a8205bc8621c7c36bab70939d4d6d6e7c56d8767e8856\",\n" + " \"n\": 1\n" + " },\n" + " {\n" + " \"txid\": \"fff7164737e3437fd27b3787edeb2650eddd07966c492ffb7e0eb537c0a5b850\",\n" + " \"n\": 0\n" + " },\n" + " {\n" + " \"txid\": \"fff7164737e3437fd27b3787edeb2650eddd07966c492ffb7e0eb537c0a5b850\",\n" + " \"n\": 1\n" + " }\n" + "]"; + return str; +} + +#endif //PIVX_INVALID_OUTPOINTS_JSON_H diff --git a/src/invalid_serials.json.h b/src/invalid_serials.json.h new file mode 100644 index 0000000..2bc4aa2 --- /dev/null +++ b/src/invalid_serials.json.h @@ -0,0 +1,1192 @@ +// Copyright (c) 2018 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + + + +#ifndef PIVX_INVALID_SERIALS_JSON_H +#define PIVX_INVALID_SERIALS_JSON_H + +#include + +std::string LoadInvalidSerials() +{ + std::string str = "[\n" + " {\n" + " \"s\": \"c9c868bb56eacfc4f3d829528a0ae812dff26619cd38e6c9a0eea1eacddc84\"\n" + " },\n" + " {\n" + " \"s\": \"17ab90c682a42d7a3b8bd1da019f6e788e82f25220a1cdaca242f15873ee553\"\n" + " },\n" + " {\n" + " \"s\": \"1aca2f77af39229578b4093855278a20569ae7ea81eeda1263eac8c2cc9fcf7\"\n" + " },\n" + " {\n" + " \"s\": \"4f3e09eab1981c715af9ec05d9c13bef831501250dbdd477c429329e837abf1\"\n" + " },\n" + " {\n" + " \"s\": \"62c55983e9c14261f52eb6c22a154ea0e1534a938ce97ab17d5d057bbda7d2d\"\n" + " },\n" + " {\n" + " \"s\": \"7075dcfbbcc32b6a871244635155b4f0a95146d7c0171c4eb5667120ab4d173\"\n" + " },\n" + " {\n" + " \"s\": \"7395cc3cc468e7e7c81f254fedfcc800089846f3eb34c9ba7846e8464396848\"\n" + " },\n" + " {\n" + " \"s\": \"7f7006bd50e72da2baaf386ac27e622b9872e696860322c8b8383d86049a9de\"\n" + " },\n" + " {\n" + " \"s\": \"801ac2f210fc601a7d200c361b79bb35ce195850e37c3e09d21e24d29b34b6c\"\n" + " },\n" + " {\n" + " \"s\": \"92b39170c2f2c05ec3260d39f5c66b068a588680ef3b7b0a2a06b63ee60f46d\"\n" + " },\n" + " {\n" + " \"s\": \"998a1079510f721ffcb2e15edcccf0df6d2d7febc26a1423aef0428967372e4\"\n" + " },\n" + " {\n" + " \"s\": \"9bbb102e23ffc1d462f96613ea655f4c4a90040bbf83e01783efe99f8f92eb7\"\n" + " },\n" + " {\n" + " \"s\": \"9fc4091d1d955e68118195b8c3f354a635719cc702c62757d47512179f10197\"\n" + " },\n" + " {\n" + " \"s\": \"a4f26c6962f2165ab31d746046ba6fb14eedcce9d40ad49b4d8ec5a59651767\"\n" + " },\n" + " {\n" + " \"s\": \"a5fe1c2dbfd3bcf54275ac8318c1d97892fd018b77d8480c4eda6d54c8f4b0e\"\n" + " },\n" + " {\n" + " \"s\": \"aaa7b123505df20ee582ee5af50c4b10b970e857322eaa5ff344806680e5ab3\"\n" + " },\n" + " {\n" + " \"s\": \"e0ad6aca02b6723b3b8d579bb36cea47734d65b20f2209db8a6882cf484beb0\"\n" + " },\n" + " {\n" + " \"s\": \"ec29d90e8a354484d995e80b61b87a35064b3c911904d81713bdbf5edb4acf5\"\n" + " },\n" + " {\n" + " \"s\": \"f0dd05b9cd83f5da08f4af4acddd6ff40580e2b2056bad1937567a54e883cbb\"\n" + " },\n" + " {\n" + " \"s\": \"115dec262441fda7533074b4bc0158b65bcf9d1a9a8ba5f76106e51700ccc975\"\n" + " },\n" + " {\n" + " \"s\": \"149341097087dea918d8102f82c3740e1b55030a6a785cc0231fdd4e4d0f03c5\"\n" + " },\n" + " {\n" + " \"s\": \"150f493cf5be73b78252344d27d1c7f2b45d7b3b6302a840d0031b3e1b6d2b78\"\n" + " },\n" + " {\n" + " \"s\": \"15e18c83e0343031d2c69383c01508e763629fc68783b2cb3d470726773c407c\"\n" + " },\n" + " {\n" + " \"s\": \"1824f506e590ce050e02a24af12d621684666b88da74a33bfc3ae19d92c0b093\"\n" + " },\n" + " {\n" + " \"s\": \"1a53f51c8a5a941e7c69ef8a7721cd686fc7dd4faabf9b70041c906a4f4833a0\"\n" + " },\n" + " {\n" + " \"s\": \"1befaae308e2a712277495fbb40c32c4d8ce9233ca39e01236635ee985971adb\"\n" + " },\n" + " {\n" + " \"s\": \"1ca4f1d724d87eb09230dee2a2dc1ca50b2a1669e82ffe933b347c2f227aab47\"\n" + " },\n" + " {\n" + " \"s\": \"1dbdbc8cf8b1f9bd367856162d8a53e379fac2487ae81553d5238c0ddb8c252f\"\n" + " },\n" + " {\n" + " \"s\": \"1eac21f759996dd4817aa17821b48e3bbe963ea611ace0861469b2416f42adb7\"\n" + " },\n" + " {\n" + " \"s\": \"1ef8dc687ffe2b2a9ad35453df4e383ab66d3f2c12dd8b46ed2a3cbfa7c67fc7\"\n" + " },\n" + " {\n" + " \"s\": \"1f2627c45af257b8be9cd97b8fc9e1d7f603df78d83c0599e9e72ba784b378ce\"\n" + " },\n" + " {\n" + " \"s\": \"206dbc1d0a1f4e180be5a0635e0ea4db27a248e520e1475b44f27d43b1b211d9\"\n" + " },\n" + " {\n" + " \"s\": \"23a277496c18e89fdfa16dd0add57e3d629a9043b44a00a2606bb624e71480cb\"\n" + " },\n" + " {\n" + " \"s\": \"24d23fb6bfb1ee09974afb8ef5dc3490e4dbafe8af94033b88593fbcaf7edccb\"\n" + " },\n" + " {\n" + " \"s\": \"26116f90dd5d5d378ef831b6cb6c8fab730009a7dd41e7508f454e978782faca\"\n" + " },\n" + " {\n" + " \"s\": \"26e7af28b1c1434bc940931e3b702d3149e33193dcef4004a4b1bbd5a639b605\"\n" + " },\n" + " {\n" + " \"s\": \"274cd2190936b541d92743221c9ba4c613175f112d52abf91ef2ce53002614f3\"\n" + " },\n" + " {\n" + " \"s\": \"2776d35d90167cfec476f435106faa91490c0b9fae26c4a8ecd3a0789942818b\"\n" + " },\n" + " {\n" + " \"s\": \"27d5123ce3c8ab80827632a3a95487cac4e6355bc08ad66c686e48eb182cafbe\"\n" + " },\n" + " {\n" + " \"s\": \"280114e59e04406a49d399b7dec260836868bd8f0e9aa81c89b5ec23d00bab78\"\n" + " },\n" + " {\n" + " \"s\": \"2809dc8b2f97cc1b96dc2b426bd26d2eff948f4637167268bf235db932c706c2\"\n" + " },\n" + " {\n" + " \"s\": \"28453be8fbb70c19f9818fdee57b5370cfcfa225dd8416c6535efad9ea0e5c0d\"\n" + " },\n" + " {\n" + " \"s\": \"29353340841fc5e9b613c9365d3dd48fa32bbb6342c19aa3eb6b0e2acf5d4934\"\n" + " },\n" + " {\n" + " \"s\": \"2b294dfe32fe935c5d97f181b0b9bd37c52692aebabbe276c5bdb3e40acd73b5\"\n" + " },\n" + " {\n" + " \"s\": \"2b9877df96ce356eeba1a17f40fec1a0fc88c11df47d8cb583f8fe1e32b90772\"\n" + " },\n" + " {\n" + " \"s\": \"2d4640795df9c9b7f31891e3b980763e004781112a9ff39cefa155d394e430dd\"\n" + " },\n" + " {\n" + " \"s\": \"2d822bbad09965a6e0dcd790f99ef3c1d32edc70130b7b320efe025107c1112a\"\n" + " },\n" + " {\n" + " \"s\": \"2e4d7765d98b3b1b832eda1e22f63c8d98b6f85dff35dca8f0070841d57d10b9\"\n" + " },\n" + " {\n" + " \"s\": \"2fbcfe92669d6a7b7ddef37fb1f26119465972454f291390e0e7baccc80c9b39\"\n" + " },\n" + " {\n" + " \"s\": \"30adc0e598fbbd407c0c7e0beda7c71b03d94e16b9436a5b44229f9e9943860d\"\n" + " },\n" + " {\n" + " \"s\": \"30c3cfffedc601c0da0d1d7410094db0653bc9c444609709cb82bd790bfea502\"\n" + " },\n" + " {\n" + " \"s\": \"32b72acb884c9577e9c9f44b22e97b02b6441cf8acdfad80dbb09ccc8d653fa1\"\n" + " },\n" + " {\n" + " \"s\": \"33ebbad0c298933362ae0a386945fd4a87da776173aa2264eb3742804d868e0a\"\n" + " },\n" + " {\n" + " \"s\": \"36326e3d2e11e23f8d26dde51da07c09a2027b86c0dc0aca3d7ba66bc7d996fa\"\n" + " },\n" + " {\n" + " \"s\": \"36f6249fd8228139e0de2caa33998d1f1f9a90202cc921cc187ad4b2c71f24f7\"\n" + " },\n" + " {\n" + " \"s\": \"37e0a27f70b19335723da1bd545fc3ffe43094ec4df736beafb87f1cb1b8defa\"\n" + " },\n" + " {\n" + " \"s\": \"384f72cabe2ec5648c34eae679021e0e34579ad9100fe1e9075bd120939671a9\"\n" + " },\n" + " {\n" + " \"s\": \"3bb0ee91b2d5346b8050b2e0bb2beab08ea11e53c1b03629e03ffa9f8f785547\"\n" + " },\n" + " {\n" + " \"s\": \"3c52a9a893cd868241b005518faa0813042efbd4e116a4479a628a9a1abdef10\"\n" + " },\n" + " {\n" + " \"s\": \"3d3d24ae893c6ce383c0bf4e8ee8bfd58c3928d5a912c5a98b5d79694529daf5\"\n" + " },\n" + " {\n" + " \"s\": \"3e767e84a99fff69dac06f4958b4399754b0d9d60faaff4e79a946b24e4205d3\"\n" + " },\n" + " {\n" + " \"s\": \"3ebd51ca9d0bfc09912caf90df75d9c4b89867a4eb993fadb3286a200f9c3b76\"\n" + " },\n" + " {\n" + " \"s\": \"3f6725381d45416203cd50e6b85523cdf813bc7d8d11fd502e01ce984a571dfb\"\n" + " },\n" + " {\n" + " \"s\": \"3fb4c149548816333378015629abcb8c5c286f0ae7ab5c47b08e34b4645c557b\"\n" + " },\n" + " {\n" + " \"s\": \"41838844b681337b2fcbcd1bdfe33fe14e9d6f4b9608de7c60f8f83f951d079f\"\n" + " },\n" + " {\n" + " \"s\": \"448caf70fe54fee7b6057557c54ad653a2684322fbb3c6551c860ad6779785f3\"\n" + " },\n" + " {\n" + " \"s\": \"44b98adcada8f4bd05902aa1e63f4ae45c1f44a39dddbf25c49eba983ab65178\"\n" + " },\n" + " {\n" + " \"s\": \"45de6b65065e6b14ef821fb37968b57af716ea2f96f60bdc07cc9f0f588c60f7\"\n" + " },\n" + " {\n" + " \"s\": \"4671127a7635ce22d403d1a396a7c8565f5ff3656b49913d916dad7e951266f5\"\n" + " },\n" + " {\n" + " \"s\": \"47d36daae743920ea121ec89dd43f0034e84a8e28340ee7d255768879f21be0f\"\n" + " },\n" + " {\n" + " \"s\": \"47eb13447a36b9abee1c1a129e5fa15ebe76bcc737a02f4168bf1ae1921c22ce\"\n" + " },\n" + " {\n" + " \"s\": \"499524459a9bd481194523d76ad6041c2db1ed80b063d3cccd9b29a07fecaace\"\n" + " },\n" + " {\n" + " \"s\": \"4ae33104e2f8688fcf5917bac70d32ccc89d84b3f40c7ea3475c754087df25cd\"\n" + " },\n" + " {\n" + " \"s\": \"4b5ad8a17a06e87a242b85f69f6b65d6ef04264a439fc9d3e1aeffe3acaeefb8\"\n" + " },\n" + " {\n" + " \"s\": \"4bb7ce3dc21531bee4d658c41f7e7641d90455d2c5b8d9324512b30e0cf8f8fa\"\n" + " },\n" + " {\n" + " \"s\": \"4cceca269074024d60086a6175172f5235083dd6173c9f8e9fcb26daac5c0010\"\n" + " },\n" + " {\n" + " \"s\": \"4d06a8164d290e101173fcbb054e6a8f4f964bb251f1406cc11b75569d747819\"\n" + " },\n" + " {\n" + " \"s\": \"4ed88b07f3d519d60ee38549c9688e8b17f18c39bb48aca82bf5643559b1c0cb\"\n" + " },\n" + " {\n" + " \"s\": \"5115cd14bbb0b65abc6779eaafb6f3945f6d449e9ec509bc1981a332343e0911\"\n" + " },\n" + " {\n" + " \"s\": \"516bf9c9afd37f7e397e7e2acbcf7b6671d571e2dd8c9a2d37c9ab9809844e04\"\n" + " },\n" + " {\n" + " \"s\": \"51ce13819aa5a747572fef35704e8a46227ccf430237c5e68022f43fb1e00c4f\"\n" + " },\n" + " {\n" + " \"s\": \"5462f25f65f5a5dd8f8d09c7b1b9093b7e8a63f5b585cad11c40ace5d8288a5b\"\n" + " },\n" + " {\n" + " \"s\": \"5586f27ba8cd3b91beec47524782fe61cdd949e5a14f049bec16bb929442f270\"\n" + " },\n" + " {\n" + " \"s\": \"595c00ad177207c061d35ba757430421c29ac5103f1b31ff57fd682153603b03\"\n" + " },\n" + " {\n" + " \"s\": \"5ae0656fe7b833ec250118f23528ccb95524179b99751fa25b4fdd0e049730be\"\n" + " },\n" + " {\n" + " \"s\": \"5b740b17cad4ca33e59b53ef26f596ecf04d836614e2dce891a7b8a159bca239\"\n" + " },\n" + " {\n" + " \"s\": \"5c879aab4c0fd6de9945a643bbf88ad5d826499c7772c6a3889bc660bdb477ed\"\n" + " },\n" + " {\n" + " \"s\": \"5cdcfeba8c5946a18a6d44a513be441096517730914a3171e36043ecaba37bbb\"\n" + " },\n" + " {\n" + " \"s\": \"5d0d85914902094a48cf1514a74bc3e347b00b72f371cbc6a4e25c629f5ef18e\"\n" + " },\n" + " {\n" + " \"s\": \"5db8cee927f751865ab4bb90c79843373a2433d44f842ea4eae9e31a4c44a664\"\n" + " },\n" + " {\n" + " \"s\": \"5e16b125f9330714616e3381dfcf513edd784d556211ffe27e85b4b3b34e1e2e\"\n" + " },\n" + " {\n" + " \"s\": \"5e60f377c0ddadb7f2e382c131701ccd903d014950452275ccd4452b574f298c\"\n" + " },\n" + " {\n" + " \"s\": \"5e8eb125709680f6699af55cdb2f2fbf56519854ee68d6787db46c53f81b86f5\"\n" + " },\n" + " {\n" + " \"s\": \"603d3c862f457f71e5847a62897fa63dcd8e2db9ec16bce1d38513fcd01ede5e\"\n" + " },\n" + " {\n" + " \"s\": \"6151e99e99234ece546b3a1fb3ab050a3b1bde28a2eef3b54d31ac31d5cd8852\"\n" + " },\n" + " {\n" + " \"s\": \"616e844c5f9ea004f38a8195ca5f3853695895507997ac17ebdd5c842196c416\"\n" + " },\n" + " {\n" + " \"s\": \"6348f92e233d0927958827e65798d6e5f3fc97edfd3a350cb075693bf0ccaf01\"\n" + " },\n" + " {\n" + " \"s\": \"63a12c7d5c53716dd895e3561960dfbf90e060c3df1ce42f11a7ae5a1a921a7d\"\n" + " },\n" + " {\n" + " \"s\": \"63aabe87ab73828f9a9e099f6706fa04af6570fc70bd6f39fb1b2aeb2a073d6f\"\n" + " },\n" + " {\n" + " \"s\": \"64b4cf57c4c98011d2ab2c3f7adec3950e1162735aabbcf158cfa5dff2d0e6b6\"\n" + " },\n" + " {\n" + " \"s\": \"64f641e2b08ee2655e742ba13a9287a925d021aa6e07e21df07d7e8dfbf377fb\"\n" + " },\n" + " {\n" + " \"s\": \"65557ff0516c0ae27c567cd16f18ce04af1183bf6aca068799c089c0a6264bf0\"\n" + " },\n" + " {\n" + " \"s\": \"6571480163823be7a53b57f2053e54b68afb202e3f105e1acdcbe68a5660323f\"\n" + " },\n" + " {\n" + " \"s\": \"662244aca40908699eede8081e5d8a831fb139ebd27c0cd16db636cd49fc52dd\"\n" + " },\n" + " {\n" + " \"s\": \"675eca33353c3ebf08dbe1429245d9711d3caf99d97f7aa671a73cd2e24fa409\"\n" + " },\n" + " {\n" + " \"s\": \"685aec4107566303f0803eb2c802a32cb4fbf695b73c09850315d977c3f678c1\"\n" + " },\n" + " {\n" + " \"s\": \"6bbcd96a09ebb08f4b3433f93a294e802140f5a32983259ff1f16eb16e437fac\"\n" + " },\n" + " {\n" + " \"s\": \"6cd6ff447b8a723eca481a8c7149ace94b8981e7bedf4c275a097e3e28b13845\"\n" + " },\n" + " {\n" + " \"s\": \"6d5289f5b37cfefb5d2fcb204738a4a1418eaa1d70181c00ca71ebdd4d84eeb4\"\n" + " },\n" + " {\n" + " \"s\": \"6ea031945b9ae626eaa0768a5745478682abc63cb6b0d3fd30b14b72be4b1eaf\"\n" + " },\n" + " {\n" + " \"s\": \"6f7e233d3e1d33a5aaa609659c31ba33e4b3645c555c618407702bc7fa1a4853\"\n" + " },\n" + " {\n" + " \"s\": \"70d0ec8d4c09c35c1bebc165a3ba6e33e9d8cd7c2ea16d6383f7a07b15cb96e6\"\n" + " },\n" + " {\n" + " \"s\": \"725c8f289b804d2e4db2b840b01059e4bb1d856c8c19d616a9c88842cf26f9f0\"\n" + " },\n" + " {\n" + " \"s\": \"72bed6a3a9998190d972ca56a647a4c6ede833ab393ec4a74bef22363fee104a\"\n" + " },\n" + " {\n" + " \"s\": \"72e62055964e78e6ae63f3e3a8daaa08fbee713ad3cc6f59e7a4532b79539505\"\n" + " },\n" + " {\n" + " \"s\": \"73147455370562f28ad019dedbe5101794faad50b5cff82a2588541041e0adb6\"\n" + " },\n" + " {\n" + " \"s\": \"73ebf3d966af3d028e004ab7caa54ec6c849afb49f3ba994629e1358fb1ea4b3\"\n" + " },\n" + " {\n" + " \"s\": \"75498f3a34ca40023269738d6805c1019b4994cd0d0018e56c831f50634ad98c\"\n" + " },\n" + " {\n" + " \"s\": \"77240e9747f8290558c545ac4b92c3a3e6d08d088b6c6538498f558bc379f625\"\n" + " },\n" + " {\n" + " \"s\": \"77c007f951781ec6646009c4710c26f43a6bc2c75e48b353bb72df98b80b11b2\"\n" + " },\n" + " {\n" + " \"s\": \"77fd2e9aeacd7c1871b213443efa6bb72b8ca5be379b6c750fba29a115a9fe19\"\n" + " },\n" + " {\n" + " \"s\": \"78052fda3fe229733e158f7862dd7506a3ecbaf3071d9b5e68a98f8215b9cc10\"\n" + " },\n" + " {\n" + " \"s\": \"79d5fb604c31b4416dd42835dbb8169efd489ed7b2571cd3d67948c8b14ddbad\"\n" + " },\n" + " {\n" + " \"s\": \"7e734f66c5f658296c7767ed5ef4bca128dbba954b1ab75d85ff1fa736c690c8\"\n" + " },\n" + " {\n" + " \"s\": \"80d4460423b6f3cd2b6650f65b991e4d70386fe13a8a3a7d69acfc6ea680aec3\"\n" + " },\n" + " {\n" + " \"s\": \"82906865f4988371335760918cb39913b55d28bbe0c6517ccf6c1336795023f7\"\n" + " },\n" + " {\n" + " \"s\": \"82acfa93d01e96295cf4b30b6338b71a853e8dcbca5c033b5478c9bee8ac6372\"\n" + " },\n" + " {\n" + " \"s\": \"84e647da5fe6386cf1429db6a3b5086217208a9edadc3910a0f9a22a099e1ef4\"\n" + " },\n" + " {\n" + " \"s\": \"851fe306d60566eeebd2e14bbb3b96d63c0a2bc19e0fca76e91edc52b455df9b\"\n" + " },\n" + " {\n" + " \"s\": \"875213f74d5b29ac443bfebaed0cb0276c0d21158d203a15a9062495b659e57f\"\n" + " },\n" + " {\n" + " \"s\": \"877e1a18dc2818c6e989934ac7785bb21a9d6f292160a4e936d97d9dea1c70d1\"\n" + " },\n" + " {\n" + " \"s\": \"87f4a792f5ded2e4c9bd9ad6901023ba0f7850be46f5fecab814e2f98fcbc937\"\n" + " },\n" + " {\n" + " \"s\": \"895f69760174853b31478fb13b209f68cdf01619bb1a1c298fa42474a6f46958\"\n" + " },\n" + " {\n" + " \"s\": \"8c3445af38857b1aac0ba9baace41eddd1bb2fe2b2510c8a84fc6c05390e314c\"\n" + " },\n" + " {\n" + " \"s\": \"8eb300cafc341f8b94e782101e3d4d1d627b2fd79491d67c59c6ced7ebe981d8\"\n" + " },\n" + " {\n" + " \"s\": \"8efc96414420a1b573e8e26a9c74d2c91f95efa95474a9978f936c555b4c6910\"\n" + " },\n" + " {\n" + " \"s\": \"8eff9382bd058f384065a050f1d3b11c425f4770d2b455fdc20260e349889966\"\n" + " },\n" + " {\n" + " \"s\": \"8f1e646d9e4a6e3f840e9bf385aa285db59ab5818324af508b08fd1dd32821d3\"\n" + " },\n" + " {\n" + " \"s\": \"8f9981325570929add0679b4c5e12d43c39fa5cfde580f386dead299726b5d10\"\n" + " },\n" + " {\n" + " \"s\": \"901530f89980abef9bb17b45e52f5ad7d19525a1194c389bebf8c83a7ee768f2\"\n" + " },\n" + " {\n" + " \"s\": \"90fd5408d8693ad1c6b17b45bd23147eed44d906df97a8b06a8e30c91e35a96a\"\n" + " },\n" + " {\n" + " \"s\": \"9155b6c1fa4c4acb6618e32c10b873adbb7d99cd8d8abd50b493ad1076a12e92\"\n" + " },\n" + " {\n" + " \"s\": \"91bdf0b8cbac56ed4199f15aec8411b5807cab4aea93ff49609a12eae52b20d6\"\n" + " },\n" + " {\n" + " \"s\": \"923c11ca96d6bee39a6c14de3321909eb134337616bcca26d6b5e1f464c53367\"\n" + " },\n" + " {\n" + " \"s\": \"92c112c43504ad27ae45fd19520c9441194fe9007ab5fb6f768ebcf170e8bec4\"\n" + " },\n" + " {\n" + " \"s\": \"962a2f4f6b85ce22ca8bf0326e43a2991f75cbc8ead7d9a404bf964b24376143\"\n" + " },\n" + " {\n" + " \"s\": \"96bac7c9fddbeb404f505c392a9f8c0ff085de03756b9e789f6f7629d95c4a48\"\n" + " },\n" + " {\n" + " \"s\": \"97da82393142a7b7c0037854fe26460b829ba767b65d1fa027a5847be19451de\"\n" + " },\n" + " {\n" + " \"s\": \"99607a75ff5451beb8c7f1f68a12f7948f43e71f958df270dc13b06656360389\"\n" + " },\n" + " {\n" + " \"s\": \"99f7f18cee159c64f9a68fb4bb4a6d8d0cd76a504ce0fcd69c3fa1da216cb274\"\n" + " },\n" + " {\n" + " \"s\": \"9ad31ea8df8626855664cd99eeeb77d2fe786167eddc313ac3984aec79013c27\"\n" + " },\n" + " {\n" + " \"s\": \"9b36d1ce6ef2ff08a79b5027561583e222141622521be8b84244161ff70ad0d5\"\n" + " },\n" + " {\n" + " \"s\": \"9c03332c6a46f1715067adf0f0bca51b036526af7ae6b8f0431403d739eb2e2b\"\n" + " },\n" + " {\n" + " \"s\": \"9cd41db3d347f278e223c54a2433895c4d805753f3f0d1d03af8fa7daf16d07b\"\n" + " },\n" + " {\n" + " \"s\": \"9cf99eeb4690b3b4d92d87dafab8cf442e888ccd2896ce508625c86ff65cc6c9\"\n" + " },\n" + " {\n" + " \"s\": \"9e1ca93326c00bab6fe4b21f425928fa3f44d5623c54c9c6dd7ddb08823ad84d\"\n" + " },\n" + " {\n" + " \"s\": \"a0737c11c43ccb5ad12869ab78970ab27cb346b39b973888e88c89d1c097c18c\"\n" + " },\n" + " {\n" + " \"s\": \"a12cc8b123f03ce76883bae2e925009aa41f948a2670c36826760adcd11a7327\"\n" + " },\n" + " {\n" + " \"s\": \"a16f6aca4f7c26f004c0f0956b746c12e627e9b42cc85c4288390b8b074b01fd\"\n" + " },\n" + " {\n" + " \"s\": \"a435f2e742de70066a1819f624f6fdeff5faf36c8ee6ed67173577a9551bf2d4\"\n" + " },\n" + " {\n" + " \"s\": \"a956c9e1efac7f1326ec5b8275d8c52162d070cfd578f28a2b5023744acfbd1b\"\n" + " },\n" + " {\n" + " \"s\": \"a9f61da6729a0803acc9181cf667bf75e5e6936f076aedfa73e9918be6ab807c\"\n" + " },\n" + " {\n" + " \"s\": \"ab99ca019c5f24e1730c4bac043700332bc6eafefb873557d0b587c2f17f1686\"\n" + " },\n" + " {\n" + " \"s\": \"aba262178dd5c21f9070f48b078a47d099fb7e319b612ba78e626cbd7b42944a\"\n" + " },\n" + " {\n" + " \"s\": \"acb20da730190d69a0b18d32ea5dd10a23c73d645228223ae6ee13749b24de1d\"\n" + " },\n" + " {\n" + " \"s\": \"ad6bf7a1620c0e7affbd3fcd0b090ab226240d603f5276541006c4cc0c7f4afb\"\n" + " },\n" + " {\n" + " \"s\": \"aebdcce0db51b47da1d25e6735fe18fe8882ba76b186dc152ac47ed47c496ea4\"\n" + " },\n" + " {\n" + " \"s\": \"b1035d369a22885c8437999e5f2fe3893b62948c420f2b891057dd83eda08b84\"\n" + " },\n" + " {\n" + " \"s\": \"b2ef15f316d151640e03c78e936042e79e95788fe5ad704b16c283ee01a262d7\"\n" + " },\n" + " {\n" + " \"s\": \"b34a7dc6efd04a1661b553f11c5852921f9d735696fb9ab83ad4a05698435f17\"\n" + " },\n" + " {\n" + " \"s\": \"b3ecd3f7c2807058647131b2293fdfa6401d39559d61e300d4466be020bc6cb6\"\n" + " },\n" + " {\n" + " \"s\": \"b499f298f138aad71fd7e1c8e9e0dc29078e72e550c1d4d762aefd2df119c4ee\"\n" + " },\n" + " {\n" + " \"s\": \"b56bb873e4dfe65bcc577d556e9855acce5259192f44da85f532e326a4021be0\"\n" + " },\n" + " {\n" + " \"s\": \"b5a0eef68c172b7550f39f1b28ad55baf276ea73f434131ba8a4b10df80e6419\"\n" + " },\n" + " {\n" + " \"s\": \"b652afc4705436e3b2d7309853ae57a9ff813f903e628a3441972f9f794675f9\"\n" + " },\n" + " {\n" + " \"s\": \"b68b1b3e7f319f890245984c59b63b0fe91fcdafff76087531aa676b6fd8d1f2\"\n" + " },\n" + " {\n" + " \"s\": \"b696d3f8b7985d9e5999cdc8888fec2a74d9ca1570bda93b67139f5da2a0f071\"\n" + " },\n" + " {\n" + " \"s\": \"b88649d422a39be2772f51ae7ecd5c9faed47a47c6ad082c26ac3ed119649946\"\n" + " },\n" + " {\n" + " \"s\": \"b9d78a2580d588439e70445dcce3f80157a2a3f56cd0aff291d4a4d368e02bea\"\n" + " },\n" + " {\n" + " \"s\": \"ba5fbd2fb3505693b01698e772ca4fa6eb7061ad053e92f5bf2010b4d666eb08\"\n" + " },\n" + " {\n" + " \"s\": \"bc3960393ca02ff2cee222c74a45ab3efe562134fd752b1e07892d728fa6e0ec\"\n" + " },\n" + " {\n" + " \"s\": \"bd8cb2973fdd456c0a74130a9b03e9eeb726e624e7b5f7d557050947aeef4dfe\"\n" + " },\n" + " {\n" + " \"s\": \"bda28351a208b39cecb387bb4a8671383933903461fb65ba746e64ddd0ef9e7b\"\n" + " },\n" + " {\n" + " \"s\": \"be1ffd893a3570579f98f31b0ec77e86b9b530553baf149f6bc0a8f48a4b8005\"\n" + " },\n" + " {\n" + " \"s\": \"be58e559a5db6c755b71d2245204dd7e2ca4b837548b7a3204a56f4b004444fe\"\n" + " },\n" + " {\n" + " \"s\": \"c1ced7a4a739960663a5afb7207eb90c8cf07021455f2da6b8f4fbca890fe358\"\n" + " },\n" + " {\n" + " \"s\": \"c68cc01fcab3f41d17e79886e1f3871827aae3e0f9f4c86bae22e9af2d3c8489\"\n" + " },\n" + " {\n" + " \"s\": \"c72ab51324754a4aa84148862b435fcfc77dac135740c3c6857f7b2fba04b781\"\n" + " },\n" + " {\n" + " \"s\": \"c73e72505fa96c333e42c34f8dd8a63b8df15f9c363adc2f22e6fa9a5615822d\"\n" + " },\n" + " {\n" + " \"s\": \"c7745fb347f95e7aca5ef5e962da1191a365ef3bb9613dbd4a71f059daa763cb\"\n" + " },\n" + " {\n" + " \"s\": \"c90233f1164b6b7628c9cea9affc2fd0937302e78806054cf0549c25878383dd\"\n" + " },\n" + " {\n" + " \"s\": \"c9b24f371005cbd97852e6bf237d315027d2f898a64c3d2a7fc7c4850dfd591b\"\n" + " },\n" + " {\n" + " \"s\": \"ca3a1bb927fa2371ed11d34f6f8033544e191a63650cc7e38638f61097e4b767\"\n" + " },\n" + " {\n" + " \"s\": \"ca8a0048323989a3fc65fa8387c5443c5d219e7ecd9db7341f12fb8983222f6a\"\n" + " },\n" + " {\n" + " \"s\": \"cb697a1ab429e78a1d844d182f9e6ec0e103f015a2390c70efd93d14a5a89e34\"\n" + " },\n" + " {\n" + " \"s\": \"ce1670a1289d044152e94af5df2d25e8ade43f1b28a9b2e4f08731c68b87af57\"\n" + " },\n" + " {\n" + " \"s\": \"cec76144d5705c4931ae2fea2cbd11e823ec7bda30e696d8f10a723a27f8b826\"\n" + " },\n" + " {\n" + " \"s\": \"cef94b2fe839ab9ae580b36011f593a2a06dfb33b6fb679f4d24efb0cd83cfca\"\n" + " },\n" + " {\n" + " \"s\": \"d24088d7185f9b38a3a5118cea3f2ebf93359cc75fb85745a328d64e88f17ec4\"\n" + " },\n" + " {\n" + " \"s\": \"d378fdd0abe22d97ad485e38af446feaa919815e47ab11a93ebc137c5c945000\"\n" + " },\n" + " {\n" + " \"s\": \"d454060829124c2836669712c1b8764fa59961228addebc3123caa36ab6ea446\"\n" + " },\n" + " {\n" + " \"s\": \"d48604fc398ca7f00a7765218b82e7809b8dd1244d8fc699ce6ab1a904f33b1b\"\n" + " },\n" + " {\n" + " \"s\": \"d543a8a442548c4bb9a0665338cb0123548b7b1e773cac2ab269c6fd01037cb1\"\n" + " },\n" + " {\n" + " \"s\": \"d54e54678e55df7335c7738fee5ab6b3f7e5e23a1d143ddec4082571ca6d1e3f\"\n" + " },\n" + " {\n" + " \"s\": \"d677e14f797545777a27d3a02bff81b103a9d51d1dd031aec986ae888f1ac740\"\n" + " },\n" + " {\n" + " \"s\": \"d6e54940025710938dc0a0e27a6fea0e91d724b3cb031b4061d5474d372d45b7\"\n" + " },\n" + " {\n" + " \"s\": \"d708593b4f86158ed425092dcb4970f55fad4cf5cad4b7ff9f2541be99b3018a\"\n" + " },\n" + " {\n" + " \"s\": \"d748e8ca3f1f6f580f0d8c2818e2504afe5b66817f08dc73a42d94461aaad46a\"\n" + " },\n" + " {\n" + " \"s\": \"d79bceff03753ad739274a12910ec1fbaff32983ac1d2747dbbf2f7efa1eea3a\"\n" + " },\n" + " {\n" + " \"s\": \"d7ac89fb49435540e21ccd94be2f389824341ccdc659fe7eebd3e9f9ed491de1\"\n" + " },\n" + " {\n" + " \"s\": \"d7f7234aa24bf8927c4da1b23bf3dfb1a69b5b3a81ff64a4261a8b2b08c82d86\"\n" + " },\n" + " {\n" + " \"s\": \"db577ee50d71809541ae484647d9e9a5123923102fce9a9bdf8ccb51953e9183\"\n" + " },\n" + " {\n" + " \"s\": \"dc0f45c955e96db9db8ed14d42bea2a3eb69007e206cc77f98221f1a8e6e7fc8\"\n" + " },\n" + " {\n" + " \"s\": \"dc5a78940a1e58cf2e84bdc13980f1ffdb5c5ae02f3334cfba5baac9ef420f8e\"\n" + " },\n" + " {\n" + " \"s\": \"deaa945e91881718e125e78148a473b6f6d3e9cfa9681ff587ed283ba1869c48\"\n" + " },\n" + " {\n" + " \"s\": \"e1dfe941ddcdf81aa6cd82fc0f668f0eb6594fbf7954d6be4a062072edc8d698\"\n" + " },\n" + " {\n" + " \"s\": \"e25bf17563048d291047a719b474e2f34f61c7f071df223ef6e95e62bc26fe4b\"\n" + " },\n" + " {\n" + " \"s\": \"e32e34bc4d7a49a360bc06504cb823e7fe66ec7b96602cc9642d4a4b17f6134f\"\n" + " },\n" + " {\n" + " \"s\": \"e5719d3f52d6e7769bf815177dd07d171f6ab83de9511d3a232124c2337a8366\"\n" + " },\n" + " {\n" + " \"s\": \"e7a09d54f7a0ad900a5f625703c4e8690acc2a04b99c156e2b02d38ef0020673\"\n" + " },\n" + " {\n" + " \"s\": \"e93c531b7628c083b56a08c840af4dc573d2dee8d9165a105d49a20e2650edae\"\n" + " },\n" + " {\n" + " \"s\": \"e9f19a0f921e9822202651af2f7f37a5a62e631ef70c7891621abf53c3347e1a\"\n" + " },\n" + " {\n" + " \"s\": \"eb0a64c565f8132ec46dc8e2ba2d6ee414ff0efd89c48f51fc09cf327c45f802\"\n" + " },\n" + " {\n" + " \"s\": \"ebf8ca2fc6df87460f701444ae57a93c599a8b5b20895a843b4ff5660ffc808a\"\n" + " },\n" + " {\n" + " \"s\": \"ec4584a0ed44449c28c8c7206bf1533b51718be121ba054514107fe44880529a\"\n" + " },\n" + " {\n" + " \"s\": \"ec72cffcc838712a4c924c481c6cfcd891082c2de7187f9810cd6ecc256d4ba1\"\n" + " },\n" + " {\n" + " \"s\": \"edba64557765678999db132feab1bfdbc2a6959a2fbdc1596bd8c068526be4ac\"\n" + " },\n" + " {\n" + " \"s\": \"f0ef1f81d95f02116d96e09d3a78993dfd9edcf8c3267aa08751f94987ce539e\"\n" + " },\n" + " {\n" + " \"s\": \"f21ee7ef2cf8077b25406e5b827f4f917fdffc9dbe707d39af3f82e15038af9e\"\n" + " },\n" + " {\n" + " \"s\": \"f35e17c94aa376a91ceda483580faaac0e04565cec1e614eb62b91bc283ccd9d\"\n" + " },\n" + " {\n" + " \"s\": \"f43457611f075cbd573605eac8134831e4e77e48ebcbba02cb97fefa46f388d8\"\n" + " },\n" + " {\n" + " \"s\": \"f4997a51767cceb3671cb5eea93ebfc6ae1babc63c2f25f745d91177a0dfe7c6\"\n" + " },\n" + " {\n" + " \"s\": \"f4c37b95fd5c9670526c67019d12c591e4105854bd033ea713b9e39d39fc545e\"\n" + " },\n" + " {\n" + " \"s\": \"f521ba75510ec4f2106ba57035f7a2cb5fea8210cf67506a8f548c0fb8e68291\"\n" + " },\n" + " {\n" + " \"s\": \"f54dbd1e0b4a59dbd7c90c846b657b84036d0a441d77221ab09c2f4870c57e4b\"\n" + " },\n" + " {\n" + " \"s\": \"f55684c39cdde58d24d19e0ef875882f9a98dbfb45f2ec66e609a0ddd380d995\"\n" + " },\n" + " {\n" + " \"s\": \"f591e42168fd258b877702ab721e6e716ad3eedaec6090c47a453dfe8ac82ee0\"\n" + " },\n" + " {\n" + " \"s\": \"f681db78f165df5b44093c02e9e0ef903e300818519e14a21251514f70171c07\"\n" + " },\n" + " {\n" + " \"s\": \"f875f636a044accdeb8d644e3d5cd838602adf63c9985c74eca3f708ab874688\"\n" + " },\n" + " {\n" + " \"s\": \"f8e5201804144ee07997144bcda1dca1978d0dd3035a06b3aadf4142d372da45\"\n" + " },\n" + " {\n" + " \"s\": \"fa92e8b1cb3fe329810e04b04623913e9b4bcdc6397c6d9b168798f8359e03b0\"\n" + " },\n" + " {\n" + " \"s\": \"faced3f33ddf7f186ed24a5d86420ec26e33292521e7f53035e44575a87ae3fd\"\n" + " },\n" + " {\n" + " \"s\": \"fb9a1f9e46d1548d11244ceaaf99578e33bb45130e1256a716ed4b667636e38c\"\n" + " },\n" + " {\n" + " \"s\": \"fd09a6cad3e383ed0bd4664c3e957c19e15dbefa5e058d8f07cdfdf168c66e0c\"\n" + " },\n" + " {\n" + " \"s\": \"fdfa691e0641d6b20a01f0d87a4ae21b9edd9acbc81fe4596b08e2c339fd58e0\"\n" + " },\n" + " {\n" + " \"s\": \"fe1078385b0c1b32680290409cac68b100401679533d1107f269009dacb877d5\"\n" + " },\n" + " {\n" + " \"s\": \"10003d303f592aee977bf6717af8c9603514869adbbbc277f0296dff12e1f1274\"\n" + " },\n" + " {\n" + " \"s\": \"1013863092fdeaca4f0a37d04f5e9184b22dec41682869c63121d85a4ee4060dd\"\n" + " },\n" + " {\n" + " \"s\": \"1037f16759b57fbb11b1c50b1aa43970a3d06c83bcfb884c86461e990689369cd\"\n" + " },\n" + " {\n" + " \"s\": \"10442ccd845689aab6ed39f76c03ca81fba9edcd53ba59bca3f6117d767d8f7ca\"\n" + " },\n" + " {\n" + " \"s\": \"1052d4ab7ddf7aca700331489e102df007f34e1a15cd3b0bcd69ec2415272b1cd\"\n" + " },\n" + " {\n" + " \"s\": \"1059c1b032b74ded61a2a5db305a5390ecf5be78e1eec5be72e4214453450447c\"\n" + " },\n" + " {\n" + " \"s\": \"108fd96ca201b4ddd0e4625ad47cf05b129a56b08d08cb02807263dc43032281a\"\n" + " },\n" + " {\n" + " \"s\": \"1099f51e101139ff3cfa5781e1c4d23139f334889eff31e45c148cdbebb77c1e3\"\n" + " },\n" + " {\n" + " \"s\": \"10a89cce6f682865511b6321b1b8bdad6273d758ab7ef3fa7b243bc8de5e3adc8\"\n" + " },\n" + " {\n" + " \"s\": \"10bc326bd16e618db68b5e215e5575497efb5268b1e87794ca08f89d6eefbd8a6\"\n" + " },\n" + " {\n" + " \"s\": \"10c09fa030a52157b1f22225d6c18f4c5539cb459fa75b9abda0ead44b0560e49\"\n" + " },\n" + " {\n" + " \"s\": \"10cb3cd708a8b5ad391c2c3b344f83ece931809329bee774e54e811bceb10f0ce\"\n" + " },\n" + " {\n" + " \"s\": \"10d016981c1ce2fa4c16d7422b64ee68cf72cbbbff687d645d77477d90516284e\"\n" + " },\n" + " {\n" + " \"s\": \"10ed0307d23c74cecbdc13fe86c865ae1e9a1bc00a4e5587a87df3b6435d6da72\"\n" + " },\n" + " {\n" + " \"s\": \"111d957a96b9b185943fae82451edf1543d6c8fd80a904053436c4dfb185158c6\"\n" + " },\n" + " {\n" + " \"s\": \"1120633151aef0e2e93859d6e72e265e4f7239158acba3923eb84fdbcdb70244b\"\n" + " },\n" + " {\n" + " \"s\": \"1132b139d73a484867d779280060bd07b921b36e4a5d285da2eb2e233f94633ca\"\n" + " },\n" + " {\n" + " \"s\": \"113bdbab2e37be79461f94470234ae356fa64401a7a260b3bb853f0a335cc39c8\"\n" + " },\n" + " {\n" + " \"s\": \"1152015e35489ab802f175f5669e70b03e988f597921d687b4c3dabac3fdb90e2\"\n" + " },\n" + " {\n" + " \"s\": \"11537bb7ce77cd31d7c118cdf2b02bc5f597b097c467ca93f8fa55e0632d5f5a1\"\n" + " },\n" + " {\n" + " \"s\": \"116e1cc7e07e1edf2a73a96a3f7791f1cc8b63a35bf404dcaf4816cc520a67da1\"\n" + " },\n" + " {\n" + " \"s\": \"1182fd93d503e82015d4e8a8753b04dcd63a1d16902e8f8a16e42b8652898f8a0\"\n" + " },\n" + " {\n" + " \"s\": \"118a780d9e74d01ebb220f8c32c0e80d78a0872ff527c43d2089543084d68c28b\"\n" + " },\n" + " {\n" + " \"s\": \"1190476762f5b4b3072cbcb90ac2191427408a287d49553306bf8f632adb2cbcd\"\n" + " },\n" + " {\n" + " \"s\": \"11a1b725efdba1bbeedfddd2e01ba4a52d00c8a8b2619198cc6b169ff4d15d2e3\"\n" + " },\n" + " {\n" + " \"s\": \"11a53504eba6f27819f696f8791f1858fea9a986760cdba6ae801b87b3e2e4aec\"\n" + " },\n" + " {\n" + " \"s\": \"11c253340611b33479cd8f816560ba98bb2f5d8eeca2526a652dba759fa6b939e\"\n" + " },\n" + " {\n" + " \"s\": \"11e62754d28f6cfcc4a5cecb73c5a0e94fa719153ada183ba4067e656d4f7dbe4\"\n" + " },\n" + " {\n" + " \"s\": \"11eb8a2021d1998efc773f0f7587296670cd9be97ec69142b5eafeebcaa3e20d7\"\n" + " },\n" + " {\n" + " \"s\": \"11f1abbba07ebc0b8e5256201fcf1a546bd811bf811143fe4a70937645299df22\"\n" + " },\n" + " {\n" + " \"s\": \"121af9a97d33bbf4f1d827c943e5c243c198eb0aac46244cf4326f00a78e25d2e\"\n" + " },\n" + " {\n" + " \"s\": \"122d39ab4161355034ce1ba1ed426196268dd969ab02b7e9a12fcfeb734fcc543\"\n" + " },\n" + " {\n" + " \"s\": \"126a8a8e584b82131efc8ce73e3e61f225d9f11c54df7abfd7ee3ab45f41a0dd6\"\n" + " },\n" + " {\n" + " \"s\": \"1282d0da854fe4d5db2f68bbec1cbe7b9f0286450a85199a082362032a5510391\"\n" + " },\n" + " {\n" + " \"s\": \"128c0b350381ae3a57390c6bbb398b1ed8b51d01b23bf56e6b88dfbc5fa76750c\"\n" + " },\n" + " {\n" + " \"s\": \"129d442e3b955f050273b1910489ba5d6732a9651864f40a1af8209855e6e4ac0\"\n" + " },\n" + " {\n" + " \"s\": \"12a29a6f2f99f60131862b771a0615f113155c3e5a026ab700a4687114c5d4e8e\"\n" + " },\n" + " {\n" + " \"s\": \"12a5a2dc9b64822bbd6c487e133eedee3e2b45828024e45c4cbc89f874018c461\"\n" + " },\n" + " {\n" + " \"s\": \"12b057721953d6af7e8aa2e5d543b5e37d52880895e60a8a311d0263eecfe7937\"\n" + " },\n" + " {\n" + " \"s\": \"12b63595e66792085ef63a64e6c726c3f787c9a0a70ee79e0a56bf7d85407f101\"\n" + " },\n" + " {\n" + " \"s\": \"12bad9bb02e23c72980d8f58dbe1337ce2b414dfe5f219c73f3ba884ff808fc5f\"\n" + " },\n" + " {\n" + " \"s\": \"12bdb595ddddc9a67f790682967d24abff155e509fd455076a49aaf7898d559c8\"\n" + " },\n" + " {\n" + " \"s\": \"12d89e4be9c8b98e37379ed2f1622c13e68927a6efaf336dffa6b572170d8b131\"\n" + " },\n" + " {\n" + " \"s\": \"12e9e91d70669683fe260acec404e200ad6202addb1cb6db37417ef5676875b25\"\n" + " },\n" + " {\n" + " \"s\": \"12ebb2c84cce4b976817ff46257025354045ce2058874261612c39fa8c25096e9\"\n" + " },\n" + " {\n" + " \"s\": \"13095a16690832299237d9ab2e43bf1e68f00e4a30c16af0ad75bac60918681d4\"\n" + " },\n" + " {\n" + " \"s\": \"130edd4b5c9998adf668b5622a603fac02be4ad78edf95e2d388df17ebb4bed50\"\n" + " },\n" + " {\n" + " \"s\": \"130f766c018b99c0128937c6bf3aa15054a69bdb17f99e93822016e0fcac11042\"\n" + " },\n" + " {\n" + " \"s\": \"132017790320f998360a09f0c0781de95a915af28698836ef7fb5e904938ab989\"\n" + " },\n" + " {\n" + " \"s\": \"13242ea1b1dd4fbd6ec699e6dc735a2a9c0d46e5f7ce45c1c1763c1b29cad4ace\"\n" + " },\n" + " {\n" + " \"s\": \"132a22828beb224540a4bef9dfbbbe9054a15d07479a68085c0a6cce546e01ec3\"\n" + " },\n" + " {\n" + " \"s\": \"132bdf039d0c855593330cabe91e16fb725ff6ce34decd818f4b229aef71a0512\"\n" + " },\n" + " {\n" + " \"s\": \"1336eece5114f21db2ce35ad4ab00a583bab586a0e15886cf949c79f1eab625b0\"\n" + " },\n" + " {\n" + " \"s\": \"134ab726ba282583096d1540f1ee8f471b840fc4ee85bf4a4988d7ff7830976dc\"\n" + " },\n" + " {\n" + " \"s\": \"135a79479749c7c757e75b17f54a5be2d5000434ac618838329fc1c9c64b04b94\"\n" + " },\n" + " {\n" + " \"s\": \"1390981a27731ca00d929a6c5c6cc6980bc454258385f9f9e18d7b1d60efd527f\"\n" + " },\n" + " {\n" + " \"s\": \"13a23a77ce8d08bb0583d8d58fdecc7e9e68dce9ccdbbc62580efc162c96b0b18\"\n" + " },\n" + " {\n" + " \"s\": \"13a9f322e20c3186ceb253decd3dbbfa1dc92f6d27ef495fef1582f01ee3ec187\"\n" + " },\n" + " {\n" + " \"s\": \"13becd9ccc8e0ff987895e956e3e862871db012f1c58d4dfb57978e975f04f182\"\n" + " },\n" + " {\n" + " \"s\": \"13ccacb75ab634d17389b7c3228d4d5347fb7b1116438db822e566eec9ad41b26\"\n" + " },\n" + " {\n" + " \"s\": \"13e1d94c5b94fdccda9e13432305d893484dd1a313d7de761aadde39fb68569b9\"\n" + " },\n" + " {\n" + " \"s\": \"13fa9376108c6669fdba82b0d3cb374e55621d2219af65014d0aecb676fe0ccc3\"\n" + " },\n" + " {\n" + " \"s\": \"1400b7edc16df9b0267683d2332eabfc788ec8060481b3ea572d5655ae0a7e31d\"\n" + " },\n" + " {\n" + " \"s\": \"14032c88e039492583c5966b0357dc50996f2bdefe2a8e9580e8a96501a0d67d8\"\n" + " },\n" + " {\n" + " \"s\": \"140611c8da44b7c6418c58cab68882b182ffefa05c4ac72284c6e9734e29a8089\"\n" + " },\n" + " {\n" + " \"s\": \"141389c11d3f556741bf5bd84574869c7634dfc69ae1823928984567d9bd87786\"\n" + " },\n" + " {\n" + " \"s\": \"142963772a2105973c05ee659f4a8dc02364de1821bdc92e3936962750404ac5f\"\n" + " },\n" + " {\n" + " \"s\": \"14470b6cfb53e4276e6bab878d835dea481d4d9bd9a48df36707598b06433c8f8\"\n" + " },\n" + " {\n" + " \"s\": \"1450cb031bebe3837f2557c90fdaf41f4d5700f7c6d252d51e25922bd58c4e485\"\n" + " },\n" + " {\n" + " \"s\": \"14549d6d358139589ffa78610cb9d86b7c690f2734677e67336a06cc5b663d0ec\"\n" + " },\n" + " {\n" + " \"s\": \"14551d812ad2842e4cc0b0244ef8090073ef107a815fa155c8f8fd2a6b6739ee3\"\n" + " },\n" + " {\n" + " \"s\": \"14722a398b977cdb2fbc99b02685b319f984ceb8cc13396d1fd5f8bed5207ae80\"\n" + " },\n" + " {\n" + " \"s\": \"14bbff79f333c719afa6cdab9eb97d7a1c3e0074a59f7315bace562cbd780639b\"\n" + " },\n" + " {\n" + " \"s\": \"14e20ee3c90fd0d3eb95bc3c2e83c394e0b3cbc964966b47b90933f93473a8196\"\n" + " },\n" + " {\n" + " \"s\": \"14fdd109e61de9ce2c14cd35e1956b41450617570efa2cb7af652565b1a09f6ca\"\n" + " },\n" + " {\n" + " \"s\": \"14ff9a2cc3d64af9aeaea25d7efdbd21b2042da80d9387d397b5f0ce389663645\"\n" + " },\n" + " {\n" + " \"s\": \"15232f012cd2c51de7f38108330582362b224d753e9b8b30ec7dfe54eaa57f1c7\"\n" + " },\n" + " {\n" + " \"s\": \"1526c8b3f434b806079c8541847deb1d6d70e7876acec447510051f77550fb26e\"\n" + " },\n" + " {\n" + " \"s\": \"1549ebc2fbaa1431dd231718779afcb2807116dca9bfcb413cfec67ba5713b852\"\n" + " },\n" + " {\n" + " \"s\": \"154cac251496e3238777f0617541b76b2b5a1bbde303d1ee75dbfc0c28ad643a4\"\n" + " },\n" + " {\n" + " \"s\": \"155414fcb6324ec5657b30da31cb33ebaaa7c9d7355d278c8defb261e30859c0a\"\n" + " },\n" + " {\n" + " \"s\": \"156ac11ae6eba9eacbf3d027dc7c3ba6968f462cec9f69627b68a679947ae3c2b\"\n" + " },\n" + " {\n" + " \"s\": \"15980ede7a5cb948c3a011c87398739de6cbf7c97c12d8688abe2af29d9c8041f\"\n" + " },\n" + " {\n" + " \"s\": \"15bffa903697a38fd22dcf4dcaae0681dfd7f7c8ca36e507a80ad11fc8ca354ab\"\n" + " },\n" + " {\n" + " \"s\": \"15c493e79b166bb2701de55372917edc9ba9a3c5e63512395b679af79fc063be3\"\n" + " },\n" + " {\n" + " \"s\": \"15c4c3bbb2a4ba8a9ce5b131d7e76cc1cdd639425e190cffbe8e8a407ea426c39\"\n" + " },\n" + " {\n" + " \"s\": \"15c6b0ca60b9087b112040ec0124d435e509f02369201294eb1ef404273e1f4a6\"\n" + " },\n" + " {\n" + " \"s\": \"15ce6296ac2b6ac0c6afbec81528448445ea3f284ed34893694d115be13252fe3\"\n" + " },\n" + " {\n" + " \"s\": \"15d61d93106c6c56129a6ee1271d275d86c9972562828b29a12df0b5f1fa13bc5\"\n" + " },\n" + " {\n" + " \"s\": \"15e49fc4145af544354a6ee1249c62f7f884925bbee7422ae917473edbeef7c3d\"\n" + " },\n" + " {\n" + " \"s\": \"15ea25efa6792643cf40e55f89d5b8eae5681e6829c67374edb79f035175b0165\"\n" + " },\n" + " {\n" + " \"s\": \"15f0a98f138f2705ecf8f642779272cb61b80f7fff97079478780560f85e4f3a9\"\n" + " },\n" + " {\n" + " \"s\": \"15f88ba03041cd855286187aabfc4ab9f4c38802b25994424fd9c2519057f063a\"\n" + " },\n" + " {\n" + " \"s\": \"1600dbafca24ac6993c3b6fe5deafaf41b45435b58992756d9d75001611a29197\"\n" + " },\n" + " {\n" + " \"s\": \"16376d787d8cbe794588162fefae6bd99ba7a187df9b453a22ba5d96fc4f13416\"\n" + " },\n" + " {\n" + " \"s\": \"1640770026b2204b1dd45cf05b742a7108b8a2ab884481876c655b94e7a161d1b\"\n" + " },\n" + " {\n" + " \"s\": \"165272a719e88c1294df8eb218ac9610c1d9ff41cc539999e4e8bc7a0824e24b1\"\n" + " },\n" + " {\n" + " \"s\": \"166ad22ae6c9a6b3046bd64c316b612952a4833d4a46a6c6f02f9f38af6efd65c\"\n" + " },\n" + " {\n" + " \"s\": \"1674499c55b5bb5d6879c028147ed888da7dbb7055bbd76d4c325e4fec2268547\"\n" + " },\n" + " {\n" + " \"s\": \"1681fc6e14ccc3ff6e45a40667b8e92d3997cae1cfcb8ab38ea7e8e1119bb0efa\"\n" + " },\n" + " {\n" + " \"s\": \"168837a06dc39187a3590c2f3e2b89ee2bd1862d760f862b6692a594497c4a3a8\"\n" + " },\n" + " {\n" + " \"s\": \"1694fdb64d78d0ae2de5d20bd7d5fc01b9e69736489c332ee69fa46fbdaa500fe\"\n" + " },\n" + " {\n" + " \"s\": \"16a20c5ec408e0bea70193816b0d6a45ce884a40902cd4bce61df3da24fd0a34e\"\n" + " },\n" + " {\n" + " \"s\": \"16a464723b3d6cd266722faa7875bea44c98cd9823773484ead0c0b949716999c\"\n" + " },\n" + " {\n" + " \"s\": \"16b69516b9406251cfdda24ebcefc43fada4922174b3143c504641e2d22f4ab20\"\n" + " },\n" + " {\n" + " \"s\": \"16dc0244a3182e4cc5f1ddc78053a25b317b79368aa73b2870f72ccf66151945f\"\n" + " },\n" + " {\n" + " \"s\": \"16e7970e991365658f6792daf75c81b9b3f23e13f354d3d664d5c4e0171d445fa\"\n" + " },\n" + " {\n" + " \"s\": \"16ebc1302bcc2406192b66361f8178713812c36693ba4d640af1f4eafa804d4d0\"\n" + " },\n" + " {\n" + " \"s\": \"171829b1fb0248977f80d8cc2b19a18f090ff40219dc367653e1bbacdf5d5c5a7\"\n" + " },\n" + " {\n" + " \"s\": \"176a3721a5cf29884b4e1ce4f027be021fdd4bd84e4556c8852366698eb898fee\"\n" + " },\n" + " {\n" + " \"s\": \"17742c5dedfe021753abe8ae9830ada7680eae024164767f89acfd4b08765534f\"\n" + " },\n" + " {\n" + " \"s\": \"178e6723a09a53e530101be7890da1b33c6cb37b40a63af55f79bcae79238e959\"\n" + " },\n" + " {\n" + " \"s\": \"178ef0a4ffb1bdb911e666757942d62d134ffcae6aa3da5a5b548afe21bfc671d\"\n" + " },\n" + " {\n" + " \"s\": \"179feb5df9d5f26db2ea6ffff7700ec0abecb8a1961049c390dd456993bdeb0f0\"\n" + " },\n" + " {\n" + " \"s\": \"17ab89fd9cf5227ec8db2b29997ac25b2c1285a154e2ef05236ed07f0ad391dce\"\n" + " },\n" + " {\n" + " \"s\": \"17c0a75194897cdef2fc7d133c2a133ff2387072bc063561351aac1f91d034177\"\n" + " },\n" + " {\n" + " \"s\": \"17e50056f0768a1ce122d0c6aebd2fe89d666e14150eba587373e20a88e5a5e57\"\n" + " },\n" + " {\n" + " \"s\": \"1803bbe2b84176ad59bf93a5b20035de83999c544f489ea493da8c712a25c35aa\"\n" + " },\n" + " {\n" + " \"s\": \"1809725ff5d166387efaac6bda8fb6d92baa1c00ba5d814b661bae37b38fd31ea\"\n" + " },\n" + " {\n" + " \"s\": \"181397c302fc689c9f266a47eb5e2faa6db21860aac3e5cfefb2caf04c1763f89\"\n" + " },\n" + " {\n" + " \"s\": \"181e69ad15e7ec448adcd54957683f729a292bf9a5f9e4ed58995405291d397c1\"\n" + " },\n" + " {\n" + " \"s\": \"182b860ac5225ffcd5a4cf021fb3b70ad6956a5ce3e2154841c19264b44bbeeb3\"\n" + " },\n" + " {\n" + " \"s\": \"182ed972ef95d44e6dee911e7b55070bb8d7b372903108d19cf8af43298c836ec\"\n" + " },\n" + " {\n" + " \"s\": \"1839f57fcdd9a505540cca364e05172aa9a858c454d3f0432687d72c41a0048cc\"\n" + " },\n" + " {\n" + " \"s\": \"183d7c376ec77b8fa903b0b18e659561084241a650e5282735890aa901092a4c5\"\n" + " },\n" + " {\n" + " \"s\": \"183e37c3124de770fe78f40951533072b0fde16ca7f9a23398df9e282435ac344\"\n" + " },\n" + " {\n" + " \"s\": \"185d2f20c8fe9b5540524c47b0b7077a049d8c6fcd589822a4d9281f5ba1e6c19\"\n" + " },\n" + " {\n" + " \"s\": \"18724325dee1ba1b52c65b72a59871301f2a6f0aa7bad29f0b8bae7f80999febd\"\n" + " },\n" + " {\n" + " \"s\": \"1876774781515872cb1d39e4c3d73885567dc4be924edf393c19930e2fe3e4922\"\n" + " },\n" + " {\n" + " \"s\": \"187ac6568209670053e0c0bb3ff6d6aa78674ae62141b0cf3e60653d97720bddb\"\n" + " },\n" + " {\n" + " \"s\": \"189860871a9e649645cd79593d6e8c63f995a6dea0c51a51c2e6f70973060b3bf\"\n" + " },\n" + " {\n" + " \"s\": \"18ad95acfad235edd986985d727a704ef522b32d9f69271d37deb4c6c4fa920d1\"\n" + " },\n" + " {\n" + " \"s\": \"18aef2b8a0f4ecd0e7aa8fa87d7298c38d437dce970d7dfb89b54a80271a9714e\"\n" + " },\n" + " {\n" + " \"s\": \"18b6ca5c1a77b89c92d8e65e79b6a998754b97d0a4a8b8e9d92a6ec192b0552d8\"\n" + " },\n" + " {\n" + " \"s\": \"18ba58d92132185e6e96744f0dea7f87ec7a904ec6367f4302b8bb26fa0fe17d1\"\n" + " },\n" + " {\n" + " \"s\": \"18f1b7fdd147faf77f19b2283ad21d40d27f4bcd6543ba7a4dfdb3eef29c9b62b\"\n" + " },\n" + " {\n" + " \"s\": \"193d9685837fa0d8ea5dd0b536e96a218c2af309608d14269d5092cd3cdf6575c\"\n" + " },\n" + " {\n" + " \"s\": \"194775d4b91bb63bc3636bb52b7e67ad06281f8c8661d3dc4ac65be545abe8a54\"\n" + " },\n" + " {\n" + " \"s\": \"1948b1a88ccef85a4cc38361c1a7bc13c28f5ac514517562d49cd3dbef6cf5500\"\n" + " },\n" + " {\n" + " \"s\": \"194c107ebb53f77ec585468b5ef7d2c923e6a3bf0c83db7bb7158337e7b61369e\"\n" + " },\n" + " {\n" + " \"s\": \"1964edc29839184e7b6bf41763c9f4ad12e774f9c96e27f4b173adf4a283d56b0\"\n" + " },\n" + " {\n" + " \"s\": \"196fef76f7d4be54b0648598bb0204c50c2d7454db528b728a6ae07a9aeb72bee\"\n" + " },\n" + " {\n" + " \"s\": \"19786c3f195403ce37b07461bfc234e54e91d671873e941e1ad1f3935389e8a3a\"\n" + " },\n" + " {\n" + " \"s\": \"197d6a8809f7fa3158a5b6d5014685f3cf825eb33dc7a313245f93eae23dc023d\"\n" + " },\n" + " {\n" + " \"s\": \"198b62253217000fbab79bfe4bc4189c17c083ccab115866f16bf803946627107\"\n" + " }\n" + "]"; + return str; +} + +#endif //PIVX_INVALID_SERIALS_JSON_H diff --git a/src/leveldb/.gitignore b/src/leveldb/.gitignore new file mode 100644 index 0000000..71d87a4 --- /dev/null +++ b/src/leveldb/.gitignore @@ -0,0 +1,13 @@ +build_config.mk +*.a +*.o +*.dylib* +*.so +*.so.* +*_test +db_bench +leveldbutil +Release +Debug +Benchmark +vs2010.* diff --git a/src/leveldb/.travis.yml b/src/leveldb/.travis.yml new file mode 100644 index 0000000..f5bd74c --- /dev/null +++ b/src/leveldb/.travis.yml @@ -0,0 +1,13 @@ +language: cpp +compiler: +- clang +- gcc +os: +- linux +- osx +sudo: false +before_install: +- echo $LANG +- echo $LC_ALL +script: +- make -j 4 check diff --git a/src/leveldb/db/fault_injection_test.cc b/src/leveldb/db/fault_injection_test.cc new file mode 100644 index 0000000..875dfe8 --- /dev/null +++ b/src/leveldb/db/fault_injection_test.cc @@ -0,0 +1,554 @@ +// Copyright 2014 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. + +// This test uses a custom Env to keep track of the state of a filesystem as of +// the last "sync". It then checks for data loss errors by purposely dropping +// file data (or entire files) not protected by a "sync". + +#include "leveldb/db.h" + +#include +#include +#include "db/db_impl.h" +#include "db/filename.h" +#include "db/log_format.h" +#include "db/version_set.h" +#include "leveldb/cache.h" +#include "leveldb/env.h" +#include "leveldb/table.h" +#include "leveldb/write_batch.h" +#include "util/logging.h" +#include "util/mutexlock.h" +#include "util/testharness.h" +#include "util/testutil.h" + +namespace leveldb { + +static const int kValueSize = 1000; +static const int kMaxNumValues = 2000; +static const size_t kNumIterations = 3; + +class FaultInjectionTestEnv; + +namespace { + +// Assume a filename, and not a directory name like "/foo/bar/" +static std::string GetDirName(const std::string filename) { + size_t found = filename.find_last_of("/\\"); + if (found == std::string::npos) { + return ""; + } else { + return filename.substr(0, found); + } +} + +Status SyncDir(const std::string& dir) { + // As this is a test it isn't required to *actually* sync this directory. + return Status::OK(); +} + +// A basic file truncation function suitable for this test. +Status Truncate(const std::string& filename, uint64_t length) { + leveldb::Env* env = leveldb::Env::Default(); + + SequentialFile* orig_file; + Status s = env->NewSequentialFile(filename, &orig_file); + if (!s.ok()) + return s; + + char* scratch = new char[length]; + leveldb::Slice result; + s = orig_file->Read(length, &result, scratch); + delete orig_file; + if (s.ok()) { + std::string tmp_name = GetDirName(filename) + "/truncate.tmp"; + WritableFile* tmp_file; + s = env->NewWritableFile(tmp_name, &tmp_file); + if (s.ok()) { + s = tmp_file->Append(result); + delete tmp_file; + if (s.ok()) { + s = env->RenameFile(tmp_name, filename); + } else { + env->DeleteFile(tmp_name); + } + } + } + + delete[] scratch; + + return s; +} + +struct FileState { + std::string filename_; + ssize_t pos_; + ssize_t pos_at_last_sync_; + ssize_t pos_at_last_flush_; + + FileState(const std::string& filename) + : filename_(filename), + pos_(-1), + pos_at_last_sync_(-1), + pos_at_last_flush_(-1) { } + + FileState() : pos_(-1), pos_at_last_sync_(-1), pos_at_last_flush_(-1) {} + + bool IsFullySynced() const { return pos_ <= 0 || pos_ == pos_at_last_sync_; } + + Status DropUnsyncedData() const; +}; + +} // anonymous namespace + +// A wrapper around WritableFile which informs another Env whenever this file +// is written to or sync'ed. +class TestWritableFile : public WritableFile { + public: + TestWritableFile(const FileState& state, + WritableFile* f, + FaultInjectionTestEnv* env); + virtual ~TestWritableFile(); + virtual Status Append(const Slice& data); + virtual Status Close(); + virtual Status Flush(); + virtual Status Sync(); + + private: + FileState state_; + WritableFile* target_; + bool writable_file_opened_; + FaultInjectionTestEnv* env_; + + Status SyncParent(); +}; + +class FaultInjectionTestEnv : public EnvWrapper { + public: + FaultInjectionTestEnv() : EnvWrapper(Env::Default()), filesystem_active_(true) {} + virtual ~FaultInjectionTestEnv() { } + virtual Status NewWritableFile(const std::string& fname, + WritableFile** result); + virtual Status NewAppendableFile(const std::string& fname, + WritableFile** result); + virtual Status DeleteFile(const std::string& f); + virtual Status RenameFile(const std::string& s, const std::string& t); + + void WritableFileClosed(const FileState& state); + Status DropUnsyncedFileData(); + Status DeleteFilesCreatedAfterLastDirSync(); + void DirWasSynced(); + bool IsFileCreatedSinceLastDirSync(const std::string& filename); + void ResetState(); + void UntrackFile(const std::string& f); + // Setting the filesystem to inactive is the test equivalent to simulating a + // system reset. Setting to inactive will freeze our saved filesystem state so + // that it will stop being recorded. It can then be reset back to the state at + // the time of the reset. + bool IsFilesystemActive() const { return filesystem_active_; } + void SetFilesystemActive(bool active) { filesystem_active_ = active; } + + private: + port::Mutex mutex_; + std::map db_file_state_; + std::set new_files_since_last_dir_sync_; + bool filesystem_active_; // Record flushes, syncs, writes +}; + +TestWritableFile::TestWritableFile(const FileState& state, + WritableFile* f, + FaultInjectionTestEnv* env) + : state_(state), + target_(f), + writable_file_opened_(true), + env_(env) { + assert(f != NULL); +} + +TestWritableFile::~TestWritableFile() { + if (writable_file_opened_) { + Close(); + } + delete target_; +} + +Status TestWritableFile::Append(const Slice& data) { + Status s = target_->Append(data); + if (s.ok() && env_->IsFilesystemActive()) { + state_.pos_ += data.size(); + } + return s; +} + +Status TestWritableFile::Close() { + writable_file_opened_ = false; + Status s = target_->Close(); + if (s.ok()) { + env_->WritableFileClosed(state_); + } + return s; +} + +Status TestWritableFile::Flush() { + Status s = target_->Flush(); + if (s.ok() && env_->IsFilesystemActive()) { + state_.pos_at_last_flush_ = state_.pos_; + } + return s; +} + +Status TestWritableFile::SyncParent() { + Status s = SyncDir(GetDirName(state_.filename_)); + if (s.ok()) { + env_->DirWasSynced(); + } + return s; +} + +Status TestWritableFile::Sync() { + if (!env_->IsFilesystemActive()) { + return Status::OK(); + } + // Ensure new files referred to by the manifest are in the filesystem. + Status s = target_->Sync(); + if (s.ok()) { + state_.pos_at_last_sync_ = state_.pos_; + } + if (env_->IsFileCreatedSinceLastDirSync(state_.filename_)) { + Status ps = SyncParent(); + if (s.ok() && !ps.ok()) { + s = ps; + } + } + return s; +} + +Status FaultInjectionTestEnv::NewWritableFile(const std::string& fname, + WritableFile** result) { + WritableFile* actual_writable_file; + Status s = target()->NewWritableFile(fname, &actual_writable_file); + if (s.ok()) { + FileState state(fname); + state.pos_ = 0; + *result = new TestWritableFile(state, actual_writable_file, this); + // NewWritableFile doesn't append to files, so if the same file is + // opened again then it will be truncated - so forget our saved + // state. + UntrackFile(fname); + MutexLock l(&mutex_); + new_files_since_last_dir_sync_.insert(fname); + } + return s; +} + +Status FaultInjectionTestEnv::NewAppendableFile(const std::string& fname, + WritableFile** result) { + WritableFile* actual_writable_file; + Status s = target()->NewAppendableFile(fname, &actual_writable_file); + if (s.ok()) { + FileState state(fname); + state.pos_ = 0; + { + MutexLock l(&mutex_); + if (db_file_state_.count(fname) == 0) { + new_files_since_last_dir_sync_.insert(fname); + } else { + state = db_file_state_[fname]; + } + } + *result = new TestWritableFile(state, actual_writable_file, this); + } + return s; +} + +Status FaultInjectionTestEnv::DropUnsyncedFileData() { + Status s; + MutexLock l(&mutex_); + for (std::map::const_iterator it = + db_file_state_.begin(); + s.ok() && it != db_file_state_.end(); ++it) { + const FileState& state = it->second; + if (!state.IsFullySynced()) { + s = state.DropUnsyncedData(); + } + } + return s; +} + +void FaultInjectionTestEnv::DirWasSynced() { + MutexLock l(&mutex_); + new_files_since_last_dir_sync_.clear(); +} + +bool FaultInjectionTestEnv::IsFileCreatedSinceLastDirSync( + const std::string& filename) { + MutexLock l(&mutex_); + return new_files_since_last_dir_sync_.find(filename) != + new_files_since_last_dir_sync_.end(); +} + +void FaultInjectionTestEnv::UntrackFile(const std::string& f) { + MutexLock l(&mutex_); + db_file_state_.erase(f); + new_files_since_last_dir_sync_.erase(f); +} + +Status FaultInjectionTestEnv::DeleteFile(const std::string& f) { + Status s = EnvWrapper::DeleteFile(f); + ASSERT_OK(s); + if (s.ok()) { + UntrackFile(f); + } + return s; +} + +Status FaultInjectionTestEnv::RenameFile(const std::string& s, + const std::string& t) { + Status ret = EnvWrapper::RenameFile(s, t); + + if (ret.ok()) { + MutexLock l(&mutex_); + if (db_file_state_.find(s) != db_file_state_.end()) { + db_file_state_[t] = db_file_state_[s]; + db_file_state_.erase(s); + } + + if (new_files_since_last_dir_sync_.erase(s) != 0) { + assert(new_files_since_last_dir_sync_.find(t) == + new_files_since_last_dir_sync_.end()); + new_files_since_last_dir_sync_.insert(t); + } + } + + return ret; +} + +void FaultInjectionTestEnv::ResetState() { + // Since we are not destroying the database, the existing files + // should keep their recorded synced/flushed state. Therefore + // we do not reset db_file_state_ and new_files_since_last_dir_sync_. + MutexLock l(&mutex_); + SetFilesystemActive(true); +} + +Status FaultInjectionTestEnv::DeleteFilesCreatedAfterLastDirSync() { + // Because DeleteFile access this container make a copy to avoid deadlock + mutex_.Lock(); + std::set new_files(new_files_since_last_dir_sync_.begin(), + new_files_since_last_dir_sync_.end()); + mutex_.Unlock(); + Status s; + std::set::const_iterator it; + for (it = new_files.begin(); s.ok() && it != new_files.end(); ++it) { + s = DeleteFile(*it); + } + return s; +} + +void FaultInjectionTestEnv::WritableFileClosed(const FileState& state) { + MutexLock l(&mutex_); + db_file_state_[state.filename_] = state; +} + +Status FileState::DropUnsyncedData() const { + ssize_t sync_pos = pos_at_last_sync_ == -1 ? 0 : pos_at_last_sync_; + return Truncate(filename_, sync_pos); +} + +class FaultInjectionTest { + public: + enum ExpectedVerifResult { VAL_EXPECT_NO_ERROR, VAL_EXPECT_ERROR }; + enum ResetMethod { RESET_DROP_UNSYNCED_DATA, RESET_DELETE_UNSYNCED_FILES }; + + FaultInjectionTestEnv* env_; + std::string dbname_; + Cache* tiny_cache_; + Options options_; + DB* db_; + + FaultInjectionTest() + : env_(new FaultInjectionTestEnv), + tiny_cache_(NewLRUCache(100)), + db_(NULL) { + dbname_ = test::TmpDir() + "/fault_test"; + DestroyDB(dbname_, Options()); // Destroy any db from earlier run + options_.reuse_logs = true; + options_.env = env_; + options_.paranoid_checks = true; + options_.block_cache = tiny_cache_; + options_.create_if_missing = true; + } + + ~FaultInjectionTest() { + CloseDB(); + DestroyDB(dbname_, Options()); + delete tiny_cache_; + delete env_; + } + + void ReuseLogs(bool reuse) { + options_.reuse_logs = reuse; + } + + void Build(int start_idx, int num_vals) { + std::string key_space, value_space; + WriteBatch batch; + for (int i = start_idx; i < start_idx + num_vals; i++) { + Slice key = Key(i, &key_space); + batch.Clear(); + batch.Put(key, Value(i, &value_space)); + WriteOptions options; + ASSERT_OK(db_->Write(options, &batch)); + } + } + + Status ReadValue(int i, std::string* val) const { + std::string key_space, value_space; + Slice key = Key(i, &key_space); + Value(i, &value_space); + ReadOptions options; + return db_->Get(options, key, val); + } + + Status Verify(int start_idx, int num_vals, + ExpectedVerifResult expected) const { + std::string val; + std::string value_space; + Status s; + for (int i = start_idx; i < start_idx + num_vals && s.ok(); i++) { + Value(i, &value_space); + s = ReadValue(i, &val); + if (expected == VAL_EXPECT_NO_ERROR) { + if (s.ok()) { + ASSERT_EQ(value_space, val); + } + } else if (s.ok()) { + fprintf(stderr, "Expected an error at %d, but was OK\n", i); + s = Status::IOError(dbname_, "Expected value error:"); + } else { + s = Status::OK(); // An expected error + } + } + return s; + } + + // Return the ith key + Slice Key(int i, std::string* storage) const { + char buf[100]; + snprintf(buf, sizeof(buf), "%016d", i); + storage->assign(buf, strlen(buf)); + return Slice(*storage); + } + + // Return the value to associate with the specified key + Slice Value(int k, std::string* storage) const { + Random r(k); + return test::RandomString(&r, kValueSize, storage); + } + + Status OpenDB() { + delete db_; + db_ = NULL; + env_->ResetState(); + return DB::Open(options_, dbname_, &db_); + } + + void CloseDB() { + delete db_; + db_ = NULL; + } + + void DeleteAllData() { + Iterator* iter = db_->NewIterator(ReadOptions()); + WriteOptions options; + for (iter->SeekToFirst(); iter->Valid(); iter->Next()) { + ASSERT_OK(db_->Delete(WriteOptions(), iter->key())); + } + + delete iter; + } + + void ResetDBState(ResetMethod reset_method) { + switch (reset_method) { + case RESET_DROP_UNSYNCED_DATA: + ASSERT_OK(env_->DropUnsyncedFileData()); + break; + case RESET_DELETE_UNSYNCED_FILES: + ASSERT_OK(env_->DeleteFilesCreatedAfterLastDirSync()); + break; + default: + assert(false); + } + } + + void PartialCompactTestPreFault(int num_pre_sync, int num_post_sync) { + DeleteAllData(); + Build(0, num_pre_sync); + db_->CompactRange(NULL, NULL); + Build(num_pre_sync, num_post_sync); + } + + void PartialCompactTestReopenWithFault(ResetMethod reset_method, + int num_pre_sync, + int num_post_sync) { + env_->SetFilesystemActive(false); + CloseDB(); + ResetDBState(reset_method); + ASSERT_OK(OpenDB()); + ASSERT_OK(Verify(0, num_pre_sync, FaultInjectionTest::VAL_EXPECT_NO_ERROR)); + ASSERT_OK(Verify(num_pre_sync, num_post_sync, FaultInjectionTest::VAL_EXPECT_ERROR)); + } + + void NoWriteTestPreFault() { + } + + void NoWriteTestReopenWithFault(ResetMethod reset_method) { + CloseDB(); + ResetDBState(reset_method); + ASSERT_OK(OpenDB()); + } + + void DoTest() { + Random rnd(0); + ASSERT_OK(OpenDB()); + for (size_t idx = 0; idx < kNumIterations; idx++) { + int num_pre_sync = rnd.Uniform(kMaxNumValues); + int num_post_sync = rnd.Uniform(kMaxNumValues); + + PartialCompactTestPreFault(num_pre_sync, num_post_sync); + PartialCompactTestReopenWithFault(RESET_DROP_UNSYNCED_DATA, + num_pre_sync, + num_post_sync); + + NoWriteTestPreFault(); + NoWriteTestReopenWithFault(RESET_DROP_UNSYNCED_DATA); + + PartialCompactTestPreFault(num_pre_sync, num_post_sync); + // No new files created so we expect all values since no files will be + // dropped. + PartialCompactTestReopenWithFault(RESET_DELETE_UNSYNCED_FILES, + num_pre_sync + num_post_sync, + 0); + + NoWriteTestPreFault(); + NoWriteTestReopenWithFault(RESET_DELETE_UNSYNCED_FILES); + } + } +}; + +TEST(FaultInjectionTest, FaultTestNoLogReuse) { + ReuseLogs(false); + DoTest(); +} + +TEST(FaultInjectionTest, FaultTestWithLogReuse) { + ReuseLogs(true); + DoTest(); +} + +} // namespace leveldb + +int main(int argc, char** argv) { + return leveldb::test::RunAllTests(); +} diff --git a/src/leveldb/db/leveldbutil.cc b/src/leveldb/db/leveldbutil.cc new file mode 100644 index 0000000..d06d64d --- /dev/null +++ b/src/leveldb/db/leveldbutil.cc @@ -0,0 +1,65 @@ +// Copyright (c) 2012 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. + +#include +#include "leveldb/dumpfile.h" +#include "leveldb/env.h" +#include "leveldb/status.h" + +namespace leveldb { +namespace { + +class StdoutPrinter : public WritableFile { + public: + virtual Status Append(const Slice& data) { + fwrite(data.data(), 1, data.size(), stdout); + return Status::OK(); + } + virtual Status Close() { return Status::OK(); } + virtual Status Flush() { return Status::OK(); } + virtual Status Sync() { return Status::OK(); } + virtual std::string GetName() const { return "[stdout]"; } +}; + +bool HandleDumpCommand(Env* env, char** files, int num) { + StdoutPrinter printer; + bool ok = true; + for (int i = 0; i < num; i++) { + Status s = DumpFile(env, files[i], &printer); + if (!s.ok()) { + fprintf(stderr, "%s\n", s.ToString().c_str()); + ok = false; + } + } + return ok; +} + +} // namespace +} // namespace leveldb + +static void Usage() { + fprintf( + stderr, + "Usage: leveldbutil command...\n" + " dump files... -- dump contents of specified files\n" + ); +} + +int main(int argc, char** argv) { + leveldb::Env* env = leveldb::Env::Default(); + bool ok = true; + if (argc < 2) { + Usage(); + ok = false; + } else { + std::string command = argv[1]; + if (command == "dump") { + ok = leveldb::HandleDumpCommand(env, argv+2, argc-2); + } else { + Usage(); + ok = false; + } + } + return (ok ? 0 : 1); +} diff --git a/src/leveldb/db/recovery_test.cc b/src/leveldb/db/recovery_test.cc new file mode 100644 index 0000000..9596f42 --- /dev/null +++ b/src/leveldb/db/recovery_test.cc @@ -0,0 +1,324 @@ +// Copyright (c) 2014 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. + +#include "db/db_impl.h" +#include "db/filename.h" +#include "db/version_set.h" +#include "db/write_batch_internal.h" +#include "leveldb/db.h" +#include "leveldb/env.h" +#include "leveldb/write_batch.h" +#include "util/logging.h" +#include "util/testharness.h" +#include "util/testutil.h" + +namespace leveldb { + +class RecoveryTest { + public: + RecoveryTest() : env_(Env::Default()), db_(NULL) { + dbname_ = test::TmpDir() + "/recovery_test"; + DestroyDB(dbname_, Options()); + Open(); + } + + ~RecoveryTest() { + Close(); + DestroyDB(dbname_, Options()); + } + + DBImpl* dbfull() const { return reinterpret_cast(db_); } + Env* env() const { return env_; } + + bool CanAppend() { + WritableFile* tmp; + Status s = env_->NewAppendableFile(CurrentFileName(dbname_), &tmp); + delete tmp; + if (s.IsNotSupportedError()) { + return false; + } else { + return true; + } + } + + void Close() { + delete db_; + db_ = NULL; + } + + void Open(Options* options = NULL) { + Close(); + Options opts; + if (options != NULL) { + opts = *options; + } else { + opts.reuse_logs = true; // TODO(sanjay): test both ways + opts.create_if_missing = true; + } + if (opts.env == NULL) { + opts.env = env_; + } + ASSERT_OK(DB::Open(opts, dbname_, &db_)); + ASSERT_EQ(1, NumLogs()); + } + + Status Put(const std::string& k, const std::string& v) { + return db_->Put(WriteOptions(), k, v); + } + + std::string Get(const std::string& k, const Snapshot* snapshot = NULL) { + std::string result; + Status s = db_->Get(ReadOptions(), k, &result); + if (s.IsNotFound()) { + result = "NOT_FOUND"; + } else if (!s.ok()) { + result = s.ToString(); + } + return result; + } + + std::string ManifestFileName() { + std::string current; + ASSERT_OK(ReadFileToString(env_, CurrentFileName(dbname_), ¤t)); + size_t len = current.size(); + if (len > 0 && current[len-1] == '\n') { + current.resize(len - 1); + } + return dbname_ + "/" + current; + } + + std::string LogName(uint64_t number) { + return LogFileName(dbname_, number); + } + + size_t DeleteLogFiles() { + std::vector logs = GetFiles(kLogFile); + for (size_t i = 0; i < logs.size(); i++) { + ASSERT_OK(env_->DeleteFile(LogName(logs[i]))) << LogName(logs[i]); + } + return logs.size(); + } + + uint64_t FirstLogFile() { + return GetFiles(kLogFile)[0]; + } + + std::vector GetFiles(FileType t) { + std::vector filenames; + ASSERT_OK(env_->GetChildren(dbname_, &filenames)); + std::vector result; + for (size_t i = 0; i < filenames.size(); i++) { + uint64_t number; + FileType type; + if (ParseFileName(filenames[i], &number, &type) && type == t) { + result.push_back(number); + } + } + return result; + } + + int NumLogs() { + return GetFiles(kLogFile).size(); + } + + int NumTables() { + return GetFiles(kTableFile).size(); + } + + uint64_t FileSize(const std::string& fname) { + uint64_t result; + ASSERT_OK(env_->GetFileSize(fname, &result)) << fname; + return result; + } + + void CompactMemTable() { + dbfull()->TEST_CompactMemTable(); + } + + // Directly construct a log file that sets key to val. + void MakeLogFile(uint64_t lognum, SequenceNumber seq, Slice key, Slice val) { + std::string fname = LogFileName(dbname_, lognum); + WritableFile* file; + ASSERT_OK(env_->NewWritableFile(fname, &file)); + log::Writer writer(file); + WriteBatch batch; + batch.Put(key, val); + WriteBatchInternal::SetSequence(&batch, seq); + ASSERT_OK(writer.AddRecord(WriteBatchInternal::Contents(&batch))); + ASSERT_OK(file->Flush()); + delete file; + } + + private: + std::string dbname_; + Env* env_; + DB* db_; +}; + +TEST(RecoveryTest, ManifestReused) { + if (!CanAppend()) { + fprintf(stderr, "skipping test because env does not support appending\n"); + return; + } + ASSERT_OK(Put("foo", "bar")); + Close(); + std::string old_manifest = ManifestFileName(); + Open(); + ASSERT_EQ(old_manifest, ManifestFileName()); + ASSERT_EQ("bar", Get("foo")); + Open(); + ASSERT_EQ(old_manifest, ManifestFileName()); + ASSERT_EQ("bar", Get("foo")); +} + +TEST(RecoveryTest, LargeManifestCompacted) { + if (!CanAppend()) { + fprintf(stderr, "skipping test because env does not support appending\n"); + return; + } + ASSERT_OK(Put("foo", "bar")); + Close(); + std::string old_manifest = ManifestFileName(); + + // Pad with zeroes to make manifest file very big. + { + uint64_t len = FileSize(old_manifest); + WritableFile* file; + ASSERT_OK(env()->NewAppendableFile(old_manifest, &file)); + std::string zeroes(3*1048576 - static_cast(len), 0); + ASSERT_OK(file->Append(zeroes)); + ASSERT_OK(file->Flush()); + delete file; + } + + Open(); + std::string new_manifest = ManifestFileName(); + ASSERT_NE(old_manifest, new_manifest); + ASSERT_GT(10000, FileSize(new_manifest)); + ASSERT_EQ("bar", Get("foo")); + + Open(); + ASSERT_EQ(new_manifest, ManifestFileName()); + ASSERT_EQ("bar", Get("foo")); +} + +TEST(RecoveryTest, NoLogFiles) { + ASSERT_OK(Put("foo", "bar")); + ASSERT_EQ(1, DeleteLogFiles()); + Open(); + ASSERT_EQ("NOT_FOUND", Get("foo")); + Open(); + ASSERT_EQ("NOT_FOUND", Get("foo")); +} + +TEST(RecoveryTest, LogFileReuse) { + if (!CanAppend()) { + fprintf(stderr, "skipping test because env does not support appending\n"); + return; + } + for (int i = 0; i < 2; i++) { + ASSERT_OK(Put("foo", "bar")); + if (i == 0) { + // Compact to ensure current log is empty + CompactMemTable(); + } + Close(); + ASSERT_EQ(1, NumLogs()); + uint64_t number = FirstLogFile(); + if (i == 0) { + ASSERT_EQ(0, FileSize(LogName(number))); + } else { + ASSERT_LT(0, FileSize(LogName(number))); + } + Open(); + ASSERT_EQ(1, NumLogs()); + ASSERT_EQ(number, FirstLogFile()) << "did not reuse log file"; + ASSERT_EQ("bar", Get("foo")); + Open(); + ASSERT_EQ(1, NumLogs()); + ASSERT_EQ(number, FirstLogFile()) << "did not reuse log file"; + ASSERT_EQ("bar", Get("foo")); + } +} + +TEST(RecoveryTest, MultipleMemTables) { + // Make a large log. + const int kNum = 1000; + for (int i = 0; i < kNum; i++) { + char buf[100]; + snprintf(buf, sizeof(buf), "%050d", i); + ASSERT_OK(Put(buf, buf)); + } + ASSERT_EQ(0, NumTables()); + Close(); + ASSERT_EQ(0, NumTables()); + ASSERT_EQ(1, NumLogs()); + uint64_t old_log_file = FirstLogFile(); + + // Force creation of multiple memtables by reducing the write buffer size. + Options opt; + opt.reuse_logs = true; + opt.write_buffer_size = (kNum*100) / 2; + Open(&opt); + ASSERT_LE(2, NumTables()); + ASSERT_EQ(1, NumLogs()); + ASSERT_NE(old_log_file, FirstLogFile()) << "must not reuse log"; + for (int i = 0; i < kNum; i++) { + char buf[100]; + snprintf(buf, sizeof(buf), "%050d", i); + ASSERT_EQ(buf, Get(buf)); + } +} + +TEST(RecoveryTest, MultipleLogFiles) { + ASSERT_OK(Put("foo", "bar")); + Close(); + ASSERT_EQ(1, NumLogs()); + + // Make a bunch of uncompacted log files. + uint64_t old_log = FirstLogFile(); + MakeLogFile(old_log+1, 1000, "hello", "world"); + MakeLogFile(old_log+2, 1001, "hi", "there"); + MakeLogFile(old_log+3, 1002, "foo", "bar2"); + + // Recover and check that all log files were processed. + Open(); + ASSERT_LE(1, NumTables()); + ASSERT_EQ(1, NumLogs()); + uint64_t new_log = FirstLogFile(); + ASSERT_LE(old_log+3, new_log); + ASSERT_EQ("bar2", Get("foo")); + ASSERT_EQ("world", Get("hello")); + ASSERT_EQ("there", Get("hi")); + + // Test that previous recovery produced recoverable state. + Open(); + ASSERT_LE(1, NumTables()); + ASSERT_EQ(1, NumLogs()); + if (CanAppend()) { + ASSERT_EQ(new_log, FirstLogFile()); + } + ASSERT_EQ("bar2", Get("foo")); + ASSERT_EQ("world", Get("hello")); + ASSERT_EQ("there", Get("hi")); + + // Check that introducing an older log file does not cause it to be re-read. + Close(); + MakeLogFile(old_log+1, 2000, "hello", "stale write"); + Open(); + ASSERT_LE(1, NumTables()); + ASSERT_EQ(1, NumLogs()); + if (CanAppend()) { + ASSERT_EQ(new_log, FirstLogFile()); + } + ASSERT_EQ("bar2", Get("foo")); + ASSERT_EQ("world", Get("hello")); + ASSERT_EQ("there", Get("hi")); +} + +} // namespace leveldb + +int main(int argc, char** argv) { + return leveldb::test::RunAllTests(); +} diff --git a/src/leveldb/doc/impl.md b/src/leveldb/doc/impl.md new file mode 100644 index 0000000..4b13f2a --- /dev/null +++ b/src/leveldb/doc/impl.md @@ -0,0 +1,170 @@ +## Files + +The implementation of leveldb is similar in spirit to the representation of a +single [Bigtable tablet (section 5.3)](http://research.google.com/archive/bigtable.html). +However the organization of the files that make up the representation is +somewhat different and is explained below. + +Each database is represented by a set of files stored in a directory. There are +several different types of files as documented below: + +### Log files + +A log file (*.log) stores a sequence of recent updates. Each update is appended +to the current log file. When the log file reaches a pre-determined size +(approximately 4MB by default), it is converted to a sorted table (see below) +and a new log file is created for future updates. + +A copy of the current log file is kept in an in-memory structure (the +`memtable`). This copy is consulted on every read so that read operations +reflect all logged updates. + +## Sorted tables + +A sorted table (*.ldb) stores a sequence of entries sorted by key. Each entry is +either a value for the key, or a deletion marker for the key. (Deletion markers +are kept around to hide obsolete values present in older sorted tables). + +The set of sorted tables are organized into a sequence of levels. The sorted +table generated from a log file is placed in a special **young** level (also +called level-0). When the number of young files exceeds a certain threshold +(currently four), all of the young files are merged together with all of the +overlapping level-1 files to produce a sequence of new level-1 files (we create +a new level-1 file for every 2MB of data.) + +Files in the young level may contain overlapping keys. However files in other +levels have distinct non-overlapping key ranges. Consider level number L where +L >= 1. When the combined size of files in level-L exceeds (10^L) MB (i.e., 10MB +for level-1, 100MB for level-2, ...), one file in level-L, and all of the +overlapping files in level-(L+1) are merged to form a set of new files for +level-(L+1). These merges have the effect of gradually migrating new updates +from the young level to the largest level using only bulk reads and writes +(i.e., minimizing expensive seeks). + +### Manifest + +A MANIFEST file lists the set of sorted tables that make up each level, the +corresponding key ranges, and other important metadata. A new MANIFEST file +(with a new number embedded in the file name) is created whenever the database +is reopened. The MANIFEST file is formatted as a log, and changes made to the +serving state (as files are added or removed) are appended to this log. + +### Current + +CURRENT is a simple text file that contains the name of the latest MANIFEST +file. + +### Info logs + +Informational messages are printed to files named LOG and LOG.old. + +### Others + +Other files used for miscellaneous purposes may also be present (LOCK, *.dbtmp). + +## Level 0 + +When the log file grows above a certain size (1MB by default): +Create a brand new memtable and log file and direct future updates here +In the background: +Write the contents of the previous memtable to an sstable +Discard the memtable +Delete the old log file and the old memtable +Add the new sstable to the young (level-0) level. + +## Compactions + +When the size of level L exceeds its limit, we compact it in a background +thread. The compaction picks a file from level L and all overlapping files from +the next level L+1. Note that if a level-L file overlaps only part of a +level-(L+1) file, the entire file at level-(L+1) is used as an input to the +compaction and will be discarded after the compaction. Aside: because level-0 +is special (files in it may overlap each other), we treat compactions from +level-0 to level-1 specially: a level-0 compaction may pick more than one +level-0 file in case some of these files overlap each other. + +A compaction merges the contents of the picked files to produce a sequence of +level-(L+1) files. We switch to producing a new level-(L+1) file after the +current output file has reached the target file size (2MB). We also switch to a +new output file when the key range of the current output file has grown enough +to overlap more than ten level-(L+2) files. This last rule ensures that a later +compaction of a level-(L+1) file will not pick up too much data from +level-(L+2). + +The old files are discarded and the new files are added to the serving state. + +Compactions for a particular level rotate through the key space. In more detail, +for each level L, we remember the ending key of the last compaction at level L. +The next compaction for level L will pick the first file that starts after this +key (wrapping around to the beginning of the key space if there is no such +file). + +Compactions drop overwritten values. They also drop deletion markers if there +are no higher numbered levels that contain a file whose range overlaps the +current key. + +### Timing + +Level-0 compactions will read up to four 1MB files from level-0, and at worst +all the level-1 files (10MB). I.e., we will read 14MB and write 14MB. + +Other than the special level-0 compactions, we will pick one 2MB file from level +L. In the worst case, this will overlap ~ 12 files from level L+1 (10 because +level-(L+1) is ten times the size of level-L, and another two at the boundaries +since the file ranges at level-L will usually not be aligned with the file +ranges at level-L+1). The compaction will therefore read 26MB and write 26MB. +Assuming a disk IO rate of 100MB/s (ballpark range for modern drives), the worst +compaction cost will be approximately 0.5 second. + +If we throttle the background writing to something small, say 10% of the full +100MB/s speed, a compaction may take up to 5 seconds. If the user is writing at +10MB/s, we might build up lots of level-0 files (~50 to hold the 5*10MB). This +may significantly increase the cost of reads due to the overhead of merging more +files together on every read. + +Solution 1: To reduce this problem, we might want to increase the log switching +threshold when the number of level-0 files is large. Though the downside is that +the larger this threshold, the more memory we will need to hold the +corresponding memtable. + +Solution 2: We might want to decrease write rate artificially when the number of +level-0 files goes up. + +Solution 3: We work on reducing the cost of very wide merges. Perhaps most of +the level-0 files will have their blocks sitting uncompressed in the cache and +we will only need to worry about the O(N) complexity in the merging iterator. + +### Number of files + +Instead of always making 2MB files, we could make larger files for larger levels +to reduce the total file count, though at the expense of more bursty +compactions. Alternatively, we could shard the set of files into multiple +directories. + +An experiment on an ext3 filesystem on Feb 04, 2011 shows the following timings +to do 100K file opens in directories with varying number of files: + + +| Files in directory | Microseconds to open a file | +|-------------------:|----------------------------:| +| 1000 | 9 | +| 10000 | 10 | +| 100000 | 16 | + +So maybe even the sharding is not necessary on modern filesystems? + +## Recovery + +* Read CURRENT to find name of the latest committed MANIFEST +* Read the named MANIFEST file +* Clean up stale files +* We could open all sstables here, but it is probably better to be lazy... +* Convert log chunk to a new level-0 sstable +* Start directing new writes to a new log file with recovered sequence# + +## Garbage collection of files + +`DeleteObsoleteFiles()` is called at the end of every compaction and at the end +of recovery. It finds the names of all files in the database. It deletes all log +files that are not the current log file. It deletes all table files that are not +referenced from some level and are not the output of an active compaction. diff --git a/src/leveldb/doc/index.md b/src/leveldb/doc/index.md new file mode 100644 index 0000000..be85696 --- /dev/null +++ b/src/leveldb/doc/index.md @@ -0,0 +1,523 @@ +leveldb +======= + +_Jeff Dean, Sanjay Ghemawat_ + +The leveldb library provides a persistent key value store. Keys and values are +arbitrary byte arrays. The keys are ordered within the key value store +according to a user-specified comparator function. + +## Opening A Database + +A leveldb database has a name which corresponds to a file system directory. All +of the contents of database are stored in this directory. The following example +shows how to open a database, creating it if necessary: + +```c++ +#include +#include "leveldb/db.h" + +leveldb::DB* db; +leveldb::Options options; +options.create_if_missing = true; +leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db); +assert(status.ok()); +... +``` + +If you want to raise an error if the database already exists, add the following +line before the `leveldb::DB::Open` call: + +```c++ +options.error_if_exists = true; +``` + +## Status + +You may have noticed the `leveldb::Status` type above. Values of this type are +returned by most functions in leveldb that may encounter an error. You can check +if such a result is ok, and also print an associated error message: + +```c++ +leveldb::Status s = ...; +if (!s.ok()) cerr << s.ToString() << endl; +``` + +## Closing A Database + +When you are done with a database, just delete the database object. Example: + +```c++ +... open the db as described above ... +... do something with db ... +delete db; +``` + +## Reads And Writes + +The database provides Put, Delete, and Get methods to modify/query the database. +For example, the following code moves the value stored under key1 to key2. + +```c++ +std::string value; +leveldb::Status s = db->Get(leveldb::ReadOptions(), key1, &value); +if (s.ok()) s = db->Put(leveldb::WriteOptions(), key2, value); +if (s.ok()) s = db->Delete(leveldb::WriteOptions(), key1); +``` + +## Atomic Updates + +Note that if the process dies after the Put of key2 but before the delete of +key1, the same value may be left stored under multiple keys. Such problems can +be avoided by using the `WriteBatch` class to atomically apply a set of updates: + +```c++ +#include "leveldb/write_batch.h" +... +std::string value; +leveldb::Status s = db->Get(leveldb::ReadOptions(), key1, &value); +if (s.ok()) { + leveldb::WriteBatch batch; + batch.Delete(key1); + batch.Put(key2, value); + s = db->Write(leveldb::WriteOptions(), &batch); +} +``` + +The `WriteBatch` holds a sequence of edits to be made to the database, and these +edits within the batch are applied in order. Note that we called Delete before +Put so that if key1 is identical to key2, we do not end up erroneously dropping +the value entirely. + +Apart from its atomicity benefits, `WriteBatch` may also be used to speed up +bulk updates by placing lots of individual mutations into the same batch. + +## Synchronous Writes + +By default, each write to leveldb is asynchronous: it returns after pushing the +write from the process into the operating system. The transfer from operating +system memory to the underlying persistent storage happens asynchronously. The +sync flag can be turned on for a particular write to make the write operation +not return until the data being written has been pushed all the way to +persistent storage. (On Posix systems, this is implemented by calling either +`fsync(...)` or `fdatasync(...)` or `msync(..., MS_SYNC)` before the write +operation returns.) + +```c++ +leveldb::WriteOptions write_options; +write_options.sync = true; +db->Put(write_options, ...); +``` + +Asynchronous writes are often more than a thousand times as fast as synchronous +writes. The downside of asynchronous writes is that a crash of the machine may +cause the last few updates to be lost. Note that a crash of just the writing +process (i.e., not a reboot) will not cause any loss since even when sync is +false, an update is pushed from the process memory into the operating system +before it is considered done. + +Asynchronous writes can often be used safely. For example, when loading a large +amount of data into the database you can handle lost updates by restarting the +bulk load after a crash. A hybrid scheme is also possible where every Nth write +is synchronous, and in the event of a crash, the bulk load is restarted just +after the last synchronous write finished by the previous run. (The synchronous +write can update a marker that describes where to restart on a crash.) + +`WriteBatch` provides an alternative to asynchronous writes. Multiple updates +may be placed in the same WriteBatch and applied together using a synchronous +write (i.e., `write_options.sync` is set to true). The extra cost of the +synchronous write will be amortized across all of the writes in the batch. + +## Concurrency + +A database may only be opened by one process at a time. The leveldb +implementation acquires a lock from the operating system to prevent misuse. +Within a single process, the same `leveldb::DB` object may be safely shared by +multiple concurrent threads. I.e., different threads may write into or fetch +iterators or call Get on the same database without any external synchronization +(the leveldb implementation will automatically do the required synchronization). +However other objects (like Iterator and `WriteBatch`) may require external +synchronization. If two threads share such an object, they must protect access +to it using their own locking protocol. More details are available in the public +header files. + +## Iteration + +The following example demonstrates how to print all key,value pairs in a +database. + +```c++ +leveldb::Iterator* it = db->NewIterator(leveldb::ReadOptions()); +for (it->SeekToFirst(); it->Valid(); it->Next()) { + cout << it->key().ToString() << ": " << it->value().ToString() << endl; +} +assert(it->status().ok()); // Check for any errors found during the scan +delete it; +``` + +The following variation shows how to process just the keys in the range +[start,limit): + +```c++ +for (it->Seek(start); + it->Valid() && it->key().ToString() < limit; + it->Next()) { + ... +} +``` + +You can also process entries in reverse order. (Caveat: reverse iteration may be +somewhat slower than forward iteration.) + +```c++ +for (it->SeekToLast(); it->Valid(); it->Prev()) { + ... +} +``` + +## Snapshots + +Snapshots provide consistent read-only views over the entire state of the +key-value store. `ReadOptions::snapshot` may be non-NULL to indicate that a +read should operate on a particular version of the DB state. If +`ReadOptions::snapshot` is NULL, the read will operate on an implicit snapshot +of the current state. + +Snapshots are created by the `DB::GetSnapshot()` method: + +```c++ +leveldb::ReadOptions options; +options.snapshot = db->GetSnapshot(); +... apply some updates to db ... +leveldb::Iterator* iter = db->NewIterator(options); +... read using iter to view the state when the snapshot was created ... +delete iter; +db->ReleaseSnapshot(options.snapshot); +``` + +Note that when a snapshot is no longer needed, it should be released using the +`DB::ReleaseSnapshot` interface. This allows the implementation to get rid of +state that was being maintained just to support reading as of that snapshot. + +## Slice + +The return value of the `it->key()` and `it->value()` calls above are instances +of the `leveldb::Slice` type. Slice is a simple structure that contains a length +and a pointer to an external byte array. Returning a Slice is a cheaper +alternative to returning a `std::string` since we do not need to copy +potentially large keys and values. In addition, leveldb methods do not return +null-terminated C-style strings since leveldb keys and values are allowed to +contain `'\0'` bytes. + +C++ strings and null-terminated C-style strings can be easily converted to a +Slice: + +```c++ +leveldb::Slice s1 = "hello"; + +std::string str("world"); +leveldb::Slice s2 = str; +``` + +A Slice can be easily converted back to a C++ string: + +```c++ +std::string str = s1.ToString(); +assert(str == std::string("hello")); +``` + +Be careful when using Slices since it is up to the caller to ensure that the +external byte array into which the Slice points remains live while the Slice is +in use. For example, the following is buggy: + +```c++ +leveldb::Slice slice; +if (...) { + std::string str = ...; + slice = str; +} +Use(slice); +``` + +When the if statement goes out of scope, str will be destroyed and the backing +storage for slice will disappear. + +## Comparators + +The preceding examples used the default ordering function for key, which orders +bytes lexicographically. You can however supply a custom comparator when opening +a database. For example, suppose each database key consists of two numbers and +we should sort by the first number, breaking ties by the second number. First, +define a proper subclass of `leveldb::Comparator` that expresses these rules: + +```c++ +class TwoPartComparator : public leveldb::Comparator { + public: + // Three-way comparison function: + // if a < b: negative result + // if a > b: positive result + // else: zero result + int Compare(const leveldb::Slice& a, const leveldb::Slice& b) const { + int a1, a2, b1, b2; + ParseKey(a, &a1, &a2); + ParseKey(b, &b1, &b2); + if (a1 < b1) return -1; + if (a1 > b1) return +1; + if (a2 < b2) return -1; + if (a2 > b2) return +1; + return 0; + } + + // Ignore the following methods for now: + const char* Name() const { return "TwoPartComparator"; } + void FindShortestSeparator(std::string*, const leveldb::Slice&) const {} + void FindShortSuccessor(std::string*) const {} +}; +``` + +Now create a database using this custom comparator: + +```c++ +TwoPartComparator cmp; +leveldb::DB* db; +leveldb::Options options; +options.create_if_missing = true; +options.comparator = &cmp; +leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db); +... +``` + +### Backwards compatibility + +The result of the comparator's Name method is attached to the database when it +is created, and is checked on every subsequent database open. If the name +changes, the `leveldb::DB::Open` call will fail. Therefore, change the name if +and only if the new key format and comparison function are incompatible with +existing databases, and it is ok to discard the contents of all existing +databases. + +You can however still gradually evolve your key format over time with a little +bit of pre-planning. For example, you could store a version number at the end of +each key (one byte should suffice for most uses). When you wish to switch to a +new key format (e.g., adding an optional third part to the keys processed by +`TwoPartComparator`), (a) keep the same comparator name (b) increment the +version number for new keys (c) change the comparator function so it uses the +version numbers found in the keys to decide how to interpret them. + +## Performance + +Performance can be tuned by changing the default values of the types defined in +`include/leveldb/options.h`. + +### Block size + +leveldb groups adjacent keys together into the same block and such a block is +the unit of transfer to and from persistent storage. The default block size is +approximately 4096 uncompressed bytes. Applications that mostly do bulk scans +over the contents of the database may wish to increase this size. Applications +that do a lot of point reads of small values may wish to switch to a smaller +block size if performance measurements indicate an improvement. There isn't much +benefit in using blocks smaller than one kilobyte, or larger than a few +megabytes. Also note that compression will be more effective with larger block +sizes. + +### Compression + +Each block is individually compressed before being written to persistent +storage. Compression is on by default since the default compression method is +very fast, and is automatically disabled for uncompressible data. In rare cases, +applications may want to disable compression entirely, but should only do so if +benchmarks show a performance improvement: + +```c++ +leveldb::Options options; +options.compression = leveldb::kNoCompression; +... leveldb::DB::Open(options, name, ...) .... +``` + +### Cache + +The contents of the database are stored in a set of files in the filesystem and +each file stores a sequence of compressed blocks. If options.cache is non-NULL, +it is used to cache frequently used uncompressed block contents. + +```c++ +#include "leveldb/cache.h" + +leveldb::Options options; +options.cache = leveldb::NewLRUCache(100 * 1048576); // 100MB cache +leveldb::DB* db; +leveldb::DB::Open(options, name, &db); +... use the db ... +delete db +delete options.cache; +``` + +Note that the cache holds uncompressed data, and therefore it should be sized +according to application level data sizes, without any reduction from +compression. (Caching of compressed blocks is left to the operating system +buffer cache, or any custom Env implementation provided by the client.) + +When performing a bulk read, the application may wish to disable caching so that +the data processed by the bulk read does not end up displacing most of the +cached contents. A per-iterator option can be used to achieve this: + +```c++ +leveldb::ReadOptions options; +options.fill_cache = false; +leveldb::Iterator* it = db->NewIterator(options); +for (it->SeekToFirst(); it->Valid(); it->Next()) { + ... +} +``` + +### Key Layout + +Note that the unit of disk transfer and caching is a block. Adjacent keys +(according to the database sort order) will usually be placed in the same block. +Therefore the application can improve its performance by placing keys that are +accessed together near each other and placing infrequently used keys in a +separate region of the key space. + +For example, suppose we are implementing a simple file system on top of leveldb. +The types of entries we might wish to store are: + + filename -> permission-bits, length, list of file_block_ids + file_block_id -> data + +We might want to prefix filename keys with one letter (say '/') and the +`file_block_id` keys with a different letter (say '0') so that scans over just +the metadata do not force us to fetch and cache bulky file contents. + +### Filters + +Because of the way leveldb data is organized on disk, a single `Get()` call may +involve multiple reads from disk. The optional FilterPolicy mechanism can be +used to reduce the number of disk reads substantially. + +```c++ +leveldb::Options options; +options.filter_policy = NewBloomFilterPolicy(10); +leveldb::DB* db; +leveldb::DB::Open(options, "/tmp/testdb", &db); +... use the database ... +delete db; +delete options.filter_policy; +``` + +The preceding code associates a Bloom filter based filtering policy with the +database. Bloom filter based filtering relies on keeping some number of bits of +data in memory per key (in this case 10 bits per key since that is the argument +we passed to `NewBloomFilterPolicy`). This filter will reduce the number of +unnecessary disk reads needed for Get() calls by a factor of approximately +a 100. Increasing the bits per key will lead to a larger reduction at the cost +of more memory usage. We recommend that applications whose working set does not +fit in memory and that do a lot of random reads set a filter policy. + +If you are using a custom comparator, you should ensure that the filter policy +you are using is compatible with your comparator. For example, consider a +comparator that ignores trailing spaces when comparing keys. +`NewBloomFilterPolicy` must not be used with such a comparator. Instead, the +application should provide a custom filter policy that also ignores trailing +spaces. For example: + +```c++ +class CustomFilterPolicy : public leveldb::FilterPolicy { + private: + FilterPolicy* builtin_policy_; + + public: + CustomFilterPolicy() : builtin_policy_(NewBloomFilterPolicy(10)) {} + ~CustomFilterPolicy() { delete builtin_policy_; } + + const char* Name() const { return "IgnoreTrailingSpacesFilter"; } + + void CreateFilter(const Slice* keys, int n, std::string* dst) const { + // Use builtin bloom filter code after removing trailing spaces + std::vector trimmed(n); + for (int i = 0; i < n; i++) { + trimmed[i] = RemoveTrailingSpaces(keys[i]); + } + return builtin_policy_->CreateFilter(&trimmed[i], n, dst); + } +}; +``` + +Advanced applications may provide a filter policy that does not use a bloom +filter but uses some other mechanism for summarizing a set of keys. See +`leveldb/filter_policy.h` for detail. + +## Checksums + +leveldb associates checksums with all data it stores in the file system. There +are two separate controls provided over how aggressively these checksums are +verified: + +`ReadOptions::verify_checksums` may be set to true to force checksum +verification of all data that is read from the file system on behalf of a +particular read. By default, no such verification is done. + +`Options::paranoid_checks` may be set to true before opening a database to make +the database implementation raise an error as soon as it detects an internal +corruption. Depending on which portion of the database has been corrupted, the +error may be raised when the database is opened, or later by another database +operation. By default, paranoid checking is off so that the database can be used +even if parts of its persistent storage have been corrupted. + +If a database is corrupted (perhaps it cannot be opened when paranoid checking +is turned on), the `leveldb::RepairDB` function may be used to recover as much +of the data as possible + +## Approximate Sizes + +The `GetApproximateSizes` method can used to get the approximate number of bytes +of file system space used by one or more key ranges. + +```c++ +leveldb::Range ranges[2]; +ranges[0] = leveldb::Range("a", "c"); +ranges[1] = leveldb::Range("x", "z"); +uint64_t sizes[2]; +leveldb::Status s = db->GetApproximateSizes(ranges, 2, sizes); +``` + +The preceding call will set `sizes[0]` to the approximate number of bytes of +file system space used by the key range `[a..c)` and `sizes[1]` to the +approximate number of bytes used by the key range `[x..z)`. + +## Environment + +All file operations (and other operating system calls) issued by the leveldb +implementation are routed through a `leveldb::Env` object. Sophisticated clients +may wish to provide their own Env implementation to get better control. +For example, an application may introduce artificial delays in the file IO +paths to limit the impact of leveldb on other activities in the system. + +```c++ +class SlowEnv : public leveldb::Env { + ... implementation of the Env interface ... +}; + +SlowEnv env; +leveldb::Options options; +options.env = &env; +Status s = leveldb::DB::Open(options, ...); +``` + +## Porting + +leveldb may be ported to a new platform by providing platform specific +implementations of the types/methods/functions exported by +`leveldb/port/port.h`. See `leveldb/port/port_example.h` for more details. + +In addition, the new platform may need a new default `leveldb::Env` +implementation. See `leveldb/util/env_posix.h` for an example. + +## Other Information + +Details about the leveldb implementation may be found in the following +documents: + +1. [Implementation notes](impl.md) +2. [Format of an immutable Table file](table_format.md) +3. [Format of a log file](log_format.md) diff --git a/src/leveldb/doc/log_format.md b/src/leveldb/doc/log_format.md new file mode 100644 index 0000000..f32cb5d --- /dev/null +++ b/src/leveldb/doc/log_format.md @@ -0,0 +1,75 @@ +leveldb Log format +================== +The log file contents are a sequence of 32KB blocks. The only exception is that +the tail of the file may contain a partial block. + +Each block consists of a sequence of records: + + block := record* trailer? + record := + checksum: uint32 // crc32c of type and data[] ; little-endian + length: uint16 // little-endian + type: uint8 // One of FULL, FIRST, MIDDLE, LAST + data: uint8[length] + +A record never starts within the last six bytes of a block (since it won't fit). +Any leftover bytes here form the trailer, which must consist entirely of zero +bytes and must be skipped by readers. + +Aside: if exactly seven bytes are left in the current block, and a new non-zero +length record is added, the writer must emit a FIRST record (which contains zero +bytes of user data) to fill up the trailing seven bytes of the block and then +emit all of the user data in subsequent blocks. + +More types may be added in the future. Some Readers may skip record types they +do not understand, others may report that some data was skipped. + + FULL == 1 + FIRST == 2 + MIDDLE == 3 + LAST == 4 + +The FULL record contains the contents of an entire user record. + +FIRST, MIDDLE, LAST are types used for user records that have been split into +multiple fragments (typically because of block boundaries). FIRST is the type +of the first fragment of a user record, LAST is the type of the last fragment of +a user record, and MIDDLE is the type of all interior fragments of a user +record. + +Example: consider a sequence of user records: + + A: length 1000 + B: length 97270 + C: length 8000 + +**A** will be stored as a FULL record in the first block. + +**B** will be split into three fragments: first fragment occupies the rest of +the first block, second fragment occupies the entirety of the second block, and +the third fragment occupies a prefix of the third block. This will leave six +bytes free in the third block, which will be left empty as the trailer. + +**C** will be stored as a FULL record in the fourth block. + +---- + +## Some benefits over the recordio format: + +1. We do not need any heuristics for resyncing - just go to next block boundary + and scan. If there is a corruption, skip to the next block. As a + side-benefit, we do not get confused when part of the contents of one log + file are embedded as a record inside another log file. + +2. Splitting at approximate boundaries (e.g., for mapreduce) is simple: find the + next block boundary and skip records until we hit a FULL or FIRST record. + +3. We do not need extra buffering for large records. + +## Some downsides compared to recordio format: + +1. No packing of tiny records. This could be fixed by adding a new record type, + so it is a shortcoming of the current implementation, not necessarily the + format. + +2. No compression. Again, this could be fixed by adding new record types. diff --git a/src/leveldb/doc/table_format.md b/src/leveldb/doc/table_format.md new file mode 100644 index 0000000..5fe7e72 --- /dev/null +++ b/src/leveldb/doc/table_format.md @@ -0,0 +1,107 @@ +leveldb File format +=================== + + + [data block 1] + [data block 2] + ... + [data block N] + [meta block 1] + ... + [meta block K] + [metaindex block] + [index block] + [Footer] (fixed size; starts at file_size - sizeof(Footer)) + + +The file contains internal pointers. Each such pointer is called +a BlockHandle and contains the following information: + + offset: varint64 + size: varint64 + +See [varints](https://developers.google.com/protocol-buffers/docs/encoding#varints) +for an explanation of varint64 format. + +1. The sequence of key/value pairs in the file are stored in sorted +order and partitioned into a sequence of data blocks. These blocks +come one after another at the beginning of the file. Each data block +is formatted according to the code in `block_builder.cc`, and then +optionally compressed. + +2. After the data blocks we store a bunch of meta blocks. The +supported meta block types are described below. More meta block types +may be added in the future. Each meta block is again formatted using +`block_builder.cc` and then optionally compressed. + +3. A "metaindex" block. It contains one entry for every other meta +block where the key is the name of the meta block and the value is a +BlockHandle pointing to that meta block. + +4. An "index" block. This block contains one entry per data block, +where the key is a string >= last key in that data block and before +the first key in the successive data block. The value is the +BlockHandle for the data block. + +5. At the very end of the file is a fixed length footer that contains +the BlockHandle of the metaindex and index blocks as well as a magic number. + + metaindex_handle: char[p]; // Block handle for metaindex + index_handle: char[q]; // Block handle for index + padding: char[40-p-q];// zeroed bytes to make fixed length + // (40==2*BlockHandle::kMaxEncodedLength) + magic: fixed64; // == 0xdb4775248b80fb57 (little-endian) + +## "filter" Meta Block + +If a `FilterPolicy` was specified when the database was opened, a +filter block is stored in each table. The "metaindex" block contains +an entry that maps from `filter.` to the BlockHandle for the filter +block where `` is the string returned by the filter policy's +`Name()` method. + +The filter block stores a sequence of filters, where filter i contains +the output of `FilterPolicy::CreateFilter()` on all keys that are stored +in a block whose file offset falls within the range + + [ i*base ... (i+1)*base-1 ] + +Currently, "base" is 2KB. So for example, if blocks X and Y start in +the range `[ 0KB .. 2KB-1 ]`, all of the keys in X and Y will be +converted to a filter by calling `FilterPolicy::CreateFilter()`, and the +resulting filter will be stored as the first filter in the filter +block. + +The filter block is formatted as follows: + + [filter 0] + [filter 1] + [filter 2] + ... + [filter N-1] + + [offset of filter 0] : 4 bytes + [offset of filter 1] : 4 bytes + [offset of filter 2] : 4 bytes + ... + [offset of filter N-1] : 4 bytes + + [offset of beginning of offset array] : 4 bytes + lg(base) : 1 byte + +The offset array at the end of the filter block allows efficient +mapping from a data block offset to the corresponding filter. + +## "stats" Meta Block + +This meta block contains a bunch of stats. The key is the name +of the statistic. The value contains the statistic. + +TODO(postrelease): record following stats. + + data size + index size + key size (uncompressed) + value size (uncompressed) + number of entries + number of data blocks diff --git a/src/leveldb/port/port_posix_sse.cc b/src/leveldb/port/port_posix_sse.cc new file mode 100644 index 0000000..2d49c21 --- /dev/null +++ b/src/leveldb/port/port_posix_sse.cc @@ -0,0 +1,110 @@ +// Copyright 2016 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. +// +// A portable implementation of crc32c, optimized to handle +// four bytes at a time. +// +// In a separate source file to allow this accelerated CRC32C function to be +// compiled with the appropriate compiler flags to enable x86 SSE 4.2 +// instructions. + +#include +#include +#include "port/port.h" + +#if defined(LEVELDB_PLATFORM_POSIX_SSE) + +#if defined(_MSC_VER) +#include +#elif defined(__GNUC__) && defined(__SSE4_2__) +#include +#endif + +#endif // defined(LEVELDB_PLATFORM_POSIX_SSE) + +namespace leveldb { +namespace port { + +#if defined(LEVELDB_PLATFORM_POSIX_SSE) + +// Used to fetch a naturally-aligned 32-bit word in little endian byte-order +static inline uint32_t LE_LOAD32(const uint8_t *p) { + // SSE is x86 only, so ensured that |p| is always little-endian. + uint32_t word; + memcpy(&word, p, sizeof(word)); + return word; +} + +#if defined(_M_X64) || defined(__x86_64__) // LE_LOAD64 is only used on x64. + +// Used to fetch a naturally-aligned 64-bit word in little endian byte-order +static inline uint64_t LE_LOAD64(const uint8_t *p) { + uint64_t dword; + memcpy(&dword, p, sizeof(dword)); + return dword; +} + +#endif // defined(_M_X64) || defined(__x86_64__) + +#endif // defined(LEVELDB_PLATFORM_POSIX_SSE) + +// For further improvements see Intel publication at: +// http://download.intel.com/design/intarch/papers/323405.pdf +uint32_t AcceleratedCRC32C(uint32_t crc, const char* buf, size_t size) { +#if !defined(LEVELDB_PLATFORM_POSIX_SSE) + return 0; +#else + + const uint8_t *p = reinterpret_cast(buf); + const uint8_t *e = p + size; + uint32_t l = crc ^ 0xffffffffu; + +#define STEP1 do { \ + l = _mm_crc32_u8(l, *p++); \ +} while (0) +#define STEP4 do { \ + l = _mm_crc32_u32(l, LE_LOAD32(p)); \ + p += 4; \ +} while (0) +#define STEP8 do { \ + l = _mm_crc32_u64(l, LE_LOAD64(p)); \ + p += 8; \ +} while (0) + + if (size > 16) { + // Process unaligned bytes + for (unsigned int i = reinterpret_cast(p) % 8; i; --i) { + STEP1; + } + + // _mm_crc32_u64 is only available on x64. +#if defined(_M_X64) || defined(__x86_64__) + // Process 8 bytes at a time + while ((e-p) >= 8) { + STEP8; + } + // Process 4 bytes at a time + if ((e-p) >= 4) { + STEP4; + } +#else // !(defined(_M_X64) || defined(__x86_64__)) + // Process 4 bytes at a time + while ((e-p) >= 4) { + STEP4; + } +#endif // defined(_M_X64) || defined(__x86_64__) + } + // Process the last few bytes + while (p != e) { + STEP1; + } +#undef STEP8 +#undef STEP4 +#undef STEP1 + return l ^ 0xffffffffu; +#endif // defined(LEVELDB_PLATFORM_POSIX_SSE) +} + +} // namespace port +} // namespace leveldb diff --git a/src/leveldb/util/env_posix_test.cc b/src/leveldb/util/env_posix_test.cc new file mode 100644 index 0000000..295f8ae --- /dev/null +++ b/src/leveldb/util/env_posix_test.cc @@ -0,0 +1,66 @@ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. + +#include "leveldb/env.h" + +#include "port/port.h" +#include "util/testharness.h" +#include "util/env_posix_test_helper.h" + +namespace leveldb { + +static const int kDelayMicros = 100000; +static const int kReadOnlyFileLimit = 4; +static const int kMMapLimit = 4; + +class EnvPosixTest { + public: + Env* env_; + EnvPosixTest() : env_(Env::Default()) { } + + static void SetFileLimits(int read_only_file_limit, int mmap_limit) { + EnvPosixTestHelper::SetReadOnlyFDLimit(read_only_file_limit); + EnvPosixTestHelper::SetReadOnlyMMapLimit(mmap_limit); + } +}; + +TEST(EnvPosixTest, TestOpenOnRead) { + // Write some test data to a single file that will be opened |n| times. + std::string test_dir; + ASSERT_OK(env_->GetTestDirectory(&test_dir)); + std::string test_file = test_dir + "/open_on_read.txt"; + + FILE* f = fopen(test_file.c_str(), "w"); + ASSERT_TRUE(f != NULL); + const char kFileData[] = "abcdefghijklmnopqrstuvwxyz"; + fputs(kFileData, f); + fclose(f); + + // Open test file some number above the sum of the two limits to force + // open-on-read behavior of POSIX Env leveldb::RandomAccessFile. + const int kNumFiles = kReadOnlyFileLimit + kMMapLimit + 5; + leveldb::RandomAccessFile* files[kNumFiles] = {0}; + for (int i = 0; i < kNumFiles; i++) { + ASSERT_OK(env_->NewRandomAccessFile(test_file, &files[i])); + } + char scratch; + Slice read_result; + for (int i = 0; i < kNumFiles; i++) { + ASSERT_OK(files[i]->Read(i, 1, &read_result, &scratch)); + ASSERT_EQ(kFileData[i], read_result[0]); + } + for (int i = 0; i < kNumFiles; i++) { + delete files[i]; + } + ASSERT_OK(env_->DeleteFile(test_file)); +} + +} // namespace leveldb + +int main(int argc, char** argv) { + // All tests currently run with the same read-only file limits. + leveldb::EnvPosixTest::SetFileLimits(leveldb::kReadOnlyFileLimit, + leveldb::kMMapLimit); + return leveldb::test::RunAllTests(); +} diff --git a/src/leveldb/util/env_posix_test_helper.h b/src/leveldb/util/env_posix_test_helper.h new file mode 100644 index 0000000..0386960 --- /dev/null +++ b/src/leveldb/util/env_posix_test_helper.h @@ -0,0 +1,28 @@ +// Copyright 2017 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. + +#ifndef STORAGE_LEVELDB_UTIL_ENV_POSIX_TEST_HELPER_H_ +#define STORAGE_LEVELDB_UTIL_ENV_POSIX_TEST_HELPER_H_ + +namespace leveldb { + +class EnvPosixTest; + +// A helper for the POSIX Env to facilitate testing. +class EnvPosixTestHelper { + private: + friend class EnvPosixTest; + + // Set the maximum number of read-only files that will be opened. + // Must be called before creating an Env. + static void SetReadOnlyFDLimit(int limit); + + // Set the maximum number of read-only files that will be mapped via mmap. + // Must be called before creating an Env. + static void SetReadOnlyMMapLimit(int limit); +}; + +} // namespace leveldb + +#endif // STORAGE_LEVELDB_UTIL_ENV_POSIX_TEST_HELPER_H_ diff --git a/src/libzerocoin/CoinRandomnessSchnorrSignature.cpp b/src/libzerocoin/CoinRandomnessSchnorrSignature.cpp new file mode 100644 index 0000000..7518eb0 --- /dev/null +++ b/src/libzerocoin/CoinRandomnessSchnorrSignature.cpp @@ -0,0 +1,64 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "CoinRandomnessSchnorrSignature.h" + +namespace libzerocoin { + +CoinRandomnessSchnorrSignature::CoinRandomnessSchnorrSignature( + const ZerocoinParams* zcparams, const CBigNum randomness, const uint256 msghash) +{ + const CBigNum p = zcparams->coinCommitmentGroup.modulus; + const CBigNum q = zcparams->coinCommitmentGroup.groupOrder; + const CBigNum h = zcparams->coinCommitmentGroup.h; + const CBigNum pk = h.pow_mod(randomness, p); + + alpha = 0; + beta = 0; + + CBigNum k, r; + + while (!alpha || !beta) { + // select random nonce k in Zq and let r = h^k mod p + k = CBigNum::randBignum(q); + r = h.pow_mod(k, p); + + // challenge hash + CHashWriter hasher(0,0); + hasher << *zcparams << pk << r << msghash; + alpha = CBigNum(hasher.GetHash()) % q; + beta = (k - alpha.mul_mod(randomness, q)) % q; + } + +} + +bool CoinRandomnessSchnorrSignature::Verify( + const ZerocoinParams* zcparams, const CBigNum& S, const CBigNum& C, const uint256 msghash) const +{ + const CBigNum p = zcparams->coinCommitmentGroup.modulus; + const CBigNum q = zcparams->coinCommitmentGroup.groupOrder; + const CBigNum h = zcparams->coinCommitmentGroup.h; + const CBigNum g = zcparams->coinCommitmentGroup.g; + + // Params validation. + if (!IsValidSerial(zcparams, S)) return error("%s: Invalid serial range", __func__); + if (alpha < BN_ZERO || alpha >= q) return error("%s: alpha out of range", __func__); + if (beta < BN_ZERO || beta >= q) return error("%s: beta out of range", __func__); + + // Schnorr public key computation. + const CBigNum pk = C.mul_mod(g.pow_mod(-S,p),p); + + // Signature verification. + const CBigNum rv = (pk.pow_mod(alpha,p)).mul_mod(h.pow_mod(beta,p),p); + CHashWriter hasher(0,0); + hasher << *zcparams << pk << rv << msghash; + + if (CBigNum(hasher.GetHash()) % q != alpha) + return error("%s: Schnorr signature does not verify", __func__); + + return true; + +} + +} /* namespace libzerocoin */ diff --git a/src/libzerocoin/CoinRandomnessSchnorrSignature.h b/src/libzerocoin/CoinRandomnessSchnorrSignature.h new file mode 100644 index 0000000..d769284 --- /dev/null +++ b/src/libzerocoin/CoinRandomnessSchnorrSignature.h @@ -0,0 +1,56 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef COINRANDOMNESSPROOF_H_ +#define COINRANDOMNESSPROOF_H_ + +#include "Params.h" +#include "Coin.h" +#include "serialize.h" +#include "hash.h" + +namespace libzerocoin { + +/**A Schnorr Signature on the hash of metadata attesting that the signer knows the randomness v + * necessary to open a public coin C (which is a pedersen commitment g^S h^v mod p) with + * given serial number S. + */ +class CoinRandomnessSchnorrSignature { +public: + CoinRandomnessSchnorrSignature() {}; + template CoinRandomnessSchnorrSignature(Stream& strm) {strm >> *this;} + + /** Creates a Schnorr signature object using the randomness of a public coin as private key sk. + * + * @param zcparams zerocoin params (group modulus, order and generators) + * @param randomness the coin we are going to use for the signature (sk := randomness, pk := h^sk mod p). + * @param msghash hash of meta data to create a signature on. + */ + CoinRandomnessSchnorrSignature(const ZerocoinParams* zcparams, const CBigNum randomness, const uint256 msghash); + + /** Verifies the Schnorr signature on message msghash with public key pk = Cg^-S mod p + * + * @param zcparams zerocoin params (group modulus, order and generators) + * @param S serial number of the coin used for the signature + * @param C value of the public coin (commitment to serial S and randomness v) used for the signature. + * @param msghash hash of meta data to verify the signature on. + * @return + */ + bool Verify(const ZerocoinParams* zcparams, const CBigNum& S, const CBigNum& C, const uint256 msghash) const; + + ADD_SERIALIZE_METHODS; + template + inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) + { + READWRITE(alpha); + READWRITE(beta); + } + +private: + // signature components + CBigNum alpha, beta; +}; + +} /* namespace libzerocoin */ +#endif /* COINRANDOMNESSPROOF_H_ */ diff --git a/src/libzerocoin/SpendType.h b/src/libzerocoin/SpendType.h new file mode 100644 index 0000000..99f7c3a --- /dev/null +++ b/src/libzerocoin/SpendType.h @@ -0,0 +1,19 @@ +// Copyright (c) 2018 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PIVX_SPENDTYPE_H +#define PIVX_SPENDTYPE_H + +#include + +namespace libzerocoin { + enum SpendType : uint8_t { + SPEND, // Used for a typical spend transaction, zPIV should be unusable after + STAKE, // Used for a spend that occurs as a stake + MN_COLLATERAL, // Used when proving ownership of zPIV that will be used for masternodes (future) + SIGN_MESSAGE // Used to sign messages that do not belong above (future) + }; +} + +#endif //PIVX_SPENDTYPE_H diff --git a/src/libzerocoin/bignum.cpp b/src/libzerocoin/bignum.cpp new file mode 100644 index 0000000..6b19ea1 --- /dev/null +++ b/src/libzerocoin/bignum.cpp @@ -0,0 +1,63 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2012 The Bitcoin developers +// Copyright (c) 2017-2019 The PIVX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "bignum.h" + +#if defined(USE_NUM_GMP) +#include "bignum_gmp.cpp" +#endif + +#if defined(USE_NUM_OPENSSL) +#include "bignum_openssl.cpp" +#endif + +std::string CBigNum::GetHex() const +{ + return ToString(16); +} + +std::string CBigNum::GetDec() const +{ + return ToString(10); +} + +CBigNum CBigNum::pow(const int e) const +{ + return this->pow(CBigNum(e)); +} + +void CBigNum::SetHex(const std::string& str) +{ + SetHexBool(str); +} + +CBigNum& CBigNum::operator/=(const CBigNum& b) +{ + *this = *this / b; + return *this; +} + +CBigNum& CBigNum::operator%=(const CBigNum& b) +{ + *this = *this % b; + return *this; +} + +const CBigNum CBigNum::operator++(int) +{ + // postfix operator + const CBigNum ret = *this; + ++(*this); + return ret; +} + +const CBigNum CBigNum::operator--(int) +{ + // postfix operator + const CBigNum ret = *this; + --(*this); + return ret; +} diff --git a/src/libzerocoin/bignum_gmp.cpp b/src/libzerocoin/bignum_gmp.cpp new file mode 100644 index 0000000..a7f1453 --- /dev/null +++ b/src/libzerocoin/bignum_gmp.cpp @@ -0,0 +1,351 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2012 The Bitcoin developers +// Copyright (c) 2017-2019 The PIVX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "bignum.h" + +/** C++ wrapper for BIGNUM (Gmp bignum) */ +CBigNum::CBigNum() +{ + mpz_init(bn); +} + +CBigNum::CBigNum(const CBigNum& b) +{ + mpz_init(bn); + mpz_set(bn, b.bn); +} + +CBigNum& CBigNum::operator=(const CBigNum& b) +{ + mpz_set(bn, b.bn); + return (*this); +} + +CBigNum::~CBigNum() +{ + mpz_clear(bn); +} + +//CBigNum(char n) is not portable. Use 'signed char' or 'unsigned char'. +CBigNum::CBigNum(signed char n) { mpz_init(bn); if (n >= 0) mpz_set_ui(bn, n); else mpz_set_si(bn, n); } +CBigNum::CBigNum(short n) { mpz_init(bn); if (n >= 0) mpz_set_ui(bn, n); else mpz_set_si(bn, n); } +CBigNum::CBigNum(int n) { mpz_init(bn); if (n >= 0) mpz_set_ui(bn, n); else mpz_set_si(bn, n); } +CBigNum::CBigNum(long n) { mpz_init(bn); if (n >= 0) mpz_set_ui(bn, n); else mpz_set_si(bn, n); } +CBigNum::CBigNum(long long n) { mpz_init(bn); mpz_set_si(bn, n); } +CBigNum::CBigNum(unsigned char n) { mpz_init(bn); mpz_set_ui(bn, n); } +CBigNum::CBigNum(unsigned short n) { mpz_init(bn); mpz_set_ui(bn, n); } +CBigNum::CBigNum(unsigned int n) { mpz_init(bn); mpz_set_ui(bn, n); } +CBigNum::CBigNum(unsigned long n) { mpz_init(bn); mpz_set_ui(bn, n); } + +CBigNum::CBigNum(uint256 n) { mpz_init(bn); setuint256(n); } + +CBigNum::CBigNum(const std::vector& vch) +{ + mpz_init(bn); + setvch(vch); +} + +/** PRNGs use OpenSSL for consistency with seed initialization **/ + +/** Generates a cryptographically secure random number between zero and range-1 (inclusive) +* i.e. 0 <= returned number < range +* @param range The upper bound on the number. +* @return +*/ +CBigNum CBigNum::randBignum(const CBigNum& range) +{ + if (range < 2) + return 0; + + size_t size = (mpz_sizeinbase (range.bn, 2) + CHAR_BIT-1) / CHAR_BIT; + std::vector buf(size); + + RandAddSeed(); + GetRandBytes(buf.data(), size); + + CBigNum ret(buf); + if (ret < 0) + mpz_neg(ret.bn, ret.bn); + return (ret % range); +} + +/** Generates a cryptographically secure random k-bit number +* @param k The bit length of the number. +* @return +*/ +CBigNum CBigNum::randKBitBignum(const uint32_t k) +{ + std::vector buf((k+7)/8); + + RandAddSeed(); + GetRandBytes(buf.data(), (k+7)/8); + + CBigNum ret(buf); + if (ret < 0) + mpz_neg(ret.bn, ret.bn); + return ret % (BN_ONE << k); +} + +/**Returns the size in bits of the underlying bignum. + * + * @return the size + */ +int CBigNum::bitSize() const +{ + return mpz_sizeinbase(bn, 2); +} + +void CBigNum::setulong(unsigned long n) +{ + mpz_set_ui(bn, n); +} + +unsigned long CBigNum::getulong() const +{ + return mpz_get_ui(bn); +} + +unsigned int CBigNum::getuint() const +{ + return mpz_get_ui(bn); +} + +int CBigNum::getint() const +{ + unsigned long n = getulong(); + if (mpz_cmp(bn, BN_ZERO.bn) >= 0) { + return (n > (unsigned long)std::numeric_limits::max() ? std::numeric_limits::max() : n); + } else { + return (n > (unsigned long)std::numeric_limits::max() ? std::numeric_limits::min() : -(int)n); + } +} + +void CBigNum::setuint256(uint256 n) +{ + mpz_import(bn, n.size(), -1, 1, 0, 0, (unsigned char*)&n); +} + +uint256 CBigNum::getuint256() const +{ + if(bitSize() > 256) { + throw std::range_error("cannot convert to uint256, bignum longer than 256 bits"); + } + uint256 n = uint256(0); + mpz_export((unsigned char*)&n, NULL, -1, 1, 0, 0, bn); + return n; +} + +void CBigNum::setvch(const std::vector& vch) +{ + std::vector vch2 = vch; + unsigned char sign = 0; + if (vch2.size() > 0) { + sign = vch2[vch2.size()-1] & 0x80; + vch2[vch2.size()-1] = vch2[vch2.size()-1] & 0x7f; + mpz_import(bn, vch2.size(), -1, 1, 0, 0, &vch2[0]); + if (sign) + mpz_neg(bn, bn); + } + else { + mpz_set_si(bn, 0); + } +} + +std::vector CBigNum::getvch() const +{ + if (mpz_cmp(bn, BN_ZERO.bn) == 0) { + return std::vector(0); + } + size_t size = (mpz_sizeinbase (bn, 2) + CHAR_BIT-1) / CHAR_BIT; + if (size <= 0) + return std::vector(); + std::vector v(size + 1); + mpz_export(&v[0], &size, -1, 1, 0, 0, bn); + if (v[v.size()-2] & 0x80) { + if (mpz_sgn(bn)<0) { + v[v.size()-1] = 0x80; + } else { + v[v.size()-1] = 0x00; + } + } else { + v.pop_back(); + if (mpz_sgn(bn)<0) { + v[v.size()-1] |= 0x80; + } + } + return v; +} + +void CBigNum::SetDec(const std::string& str) +{ + const char* psz = str.c_str(); + mpz_set_str(bn, psz, 10); +} + +bool CBigNum::SetHexBool(const std::string& str) +{ + const char* psz = str.c_str(); + int ret = 1 + mpz_set_str(bn, psz, 16); + return (bool) ret; +} + +std::string CBigNum::ToString(int nBase) const +{ + char* c_str = mpz_get_str(NULL, nBase, bn); + std::string str(c_str); + // Free c_str with the right free function: + void (*freefunc)(void *, size_t); + mp_get_memory_functions (NULL, NULL, &freefunc); + freefunc(c_str, strlen(c_str) + 1); + + return str; +} + +/** + * exponentiation this^e + * @param e the exponent + * @return + */ +CBigNum CBigNum::pow(const CBigNum& e) const +{ + CBigNum ret; + long unsigned int ei = mpz_get_ui (e.bn); + mpz_pow_ui(ret.bn, bn, ei); + return ret; +} + +/** + * modular multiplication: (this * b) mod m + * @param b operand + * @param m modulus + */ +CBigNum CBigNum::mul_mod(const CBigNum& b, const CBigNum& m) const +{ + CBigNum ret; + mpz_mul (ret.bn, bn, b.bn); + mpz_mod (ret.bn, ret.bn, m.bn); + return ret; +} + +/** + * modular exponentiation: this^e mod n + * @param e exponent + * @param m modulus + */ +CBigNum CBigNum::pow_mod(const CBigNum& e, const CBigNum& m) const +{ + CBigNum ret; + if (e > BN_ZERO && mpz_odd_p(m.bn)) + mpz_powm_sec (ret.bn, bn, e.bn, m.bn); + else + mpz_powm (ret.bn, bn, e.bn, m.bn); + return ret; +} + +/** +* Calculates the inverse of this element mod m. +* i.e. i such this*i = 1 mod m +* @param m the modu +* @return the inverse +*/ +CBigNum CBigNum::inverse(const CBigNum& m) const +{ + CBigNum ret; + mpz_invert(ret.bn, bn, m.bn); + return ret; +} + +/** + * Generates a random (safe) prime of numBits bits + * @param numBits the number of bits + * @param safe true for a safe prime + * @return the prime + */ +CBigNum CBigNum::generatePrime(const unsigned int numBits, bool safe) +{ + CBigNum rand = randKBitBignum(numBits); + CBigNum prime; + mpz_nextprime(prime.bn, rand.bn); + return prime; +} + +/** + * Calculates the greatest common divisor (GCD) of two numbers. + * @param m the second element + * @return the GCD + */ +CBigNum CBigNum::gcd( const CBigNum& b) const +{ + CBigNum ret; + mpz_gcd(ret.bn, bn, b.bn); + return ret; +} + +/** +* Miller-Rabin primality test on this element +* @param checks: optional, the number of Miller-Rabin tests to run +* default causes error rate of 2^-80. +* @return true if prime +*/ +bool CBigNum::isPrime(const int checks) const +{ + int ret = mpz_probab_prime_p(bn, checks); + return ret; +} + +bool CBigNum::isOne() const +{ + return mpz_cmp(bn, BN_ONE.bn) == 0; +} + +bool CBigNum::operator!() const +{ + return mpz_cmp(bn, BN_ZERO.bn) == 0; +} + +CBigNum& CBigNum::operator+=(const CBigNum& b) +{ + mpz_add(bn, bn, b.bn); + return *this; +} + +CBigNum& CBigNum::operator-=(const CBigNum& b) +{ + mpz_sub(bn, bn, b.bn); + return *this; +} + +CBigNum& CBigNum::operator*=(const CBigNum& b) +{ + mpz_mul(bn, bn, b.bn); + return *this; +} + +CBigNum& CBigNum::operator<<=(unsigned int shift) +{ + mpz_mul_2exp(bn, bn, shift); + return *this; +} + +CBigNum& CBigNum::operator>>=(unsigned int shift) +{ + mpz_div_2exp(bn, bn, shift); + return *this; +} + +CBigNum& CBigNum::operator++() +{ + // prefix operator + mpz_add(bn, bn, BN_ONE.bn); + return *this; +} + +CBigNum& CBigNum::operator--() +{ + // prefix operator + mpz_sub(bn, bn, BN_ONE.bn); + return *this; +} diff --git a/src/libzerocoin/bignum_openssl.cpp b/src/libzerocoin/bignum_openssl.cpp new file mode 100644 index 0000000..30e38b2 --- /dev/null +++ b/src/libzerocoin/bignum_openssl.cpp @@ -0,0 +1,508 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2012 The Bitcoin developers +// Copyright (c) 2017-2019 The PIVX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "bignum.h" + +CBigNum::CBigNum() +{ + bn = BN_new(); +} + +CBigNum::CBigNum(const CBigNum& b) +{ + bn = BN_new(); + if (!BN_copy(bn, b.bn)) + { + BN_clear_free(bn); + throw bignum_error("CBigNum::CBigNum(const CBigNum&) : BN_copy failed"); + } +} + +CBigNum& CBigNum::operator=(const CBigNum& b) +{ + if (!BN_copy(bn, b.bn)) + throw bignum_error("CBigNum::operator= : BN_copy failed"); + return (*this); +} + +CBigNum::~CBigNum() +{ + BN_clear_free(bn); +} + +//CBigNum(char n) is not portable. Use 'signed char' or 'unsigned char'. +CBigNum::CBigNum(signed char n) { bn = BN_new(); if (n >= 0) setulong(n); else setint64(n); } +CBigNum::CBigNum(short n) { bn = BN_new(); if (n >= 0) setulong(n); else setint64(n); } +CBigNum::CBigNum(int n) { bn = BN_new(); if (n >= 0) setulong(n); else setint64(n); } +CBigNum::CBigNum(long n) { bn = BN_new(); if (n >= 0) setulong(n); else setint64(n); } +CBigNum::CBigNum(long long n) { bn = BN_new(); setint64(n); } +CBigNum::CBigNum(unsigned char n) { bn = BN_new(); setulong(n); } +CBigNum::CBigNum(unsigned short n) { bn = BN_new(); setulong(n); } +CBigNum::CBigNum(unsigned int n) { bn = BN_new(); setulong(n); } +CBigNum::CBigNum(unsigned long n) { bn = BN_new(); setulong(n); } +CBigNum::CBigNum(unsigned long long n) { bn = BN_new(); setuint64(n); } +CBigNum::CBigNum(uint256 n) { bn = BN_new(); setuint256(n); } + +CBigNum::CBigNum(const std::vector& vch) +{ + bn = BN_new(); + setvch(vch); +} + +/** Generates a cryptographically secure random number between zero and range-1 (inclusive) +* i.e. 0 <= returned number < range +* @param range The upper bound on the number. +* @return +*/ +CBigNum CBigNum::randBignum(const CBigNum& range) +{ + CBigNum ret; + if(!BN_rand_range(ret.bn, range.bn)){ + throw bignum_error("CBigNum:rand element : BN_rand_range failed"); + } + return ret; +} + +/** Generates a cryptographically secure random k-bit number +* @param k The bit length of the number. +* @return +*/ +CBigNum CBigNum::randKBitBignum(const uint32_t k) +{ + CBigNum ret; + if(!BN_rand(ret.bn, k, -1, 0)){ + throw bignum_error("CBigNum:rand element : BN_rand failed"); + } + return ret; +} + +/**Returns the size in bits of the underlying bignum. + * + * @return the size + */ +int CBigNum::bitSize() const +{ + return BN_num_bits(bn); +} + +void CBigNum::setulong(unsigned long n) +{ + if (!BN_set_word(bn, n)) + throw bignum_error("CBigNum conversion from unsigned long : BN_set_word failed"); +} + +unsigned long CBigNum::getulong() const +{ + return BN_get_word(bn); +} + +unsigned int CBigNum::getuint() const +{ + return BN_get_word(bn); +} + +int CBigNum::getint() const +{ + unsigned long n = BN_get_word(bn); + if (!BN_is_negative(bn)) + return (n > (unsigned long)std::numeric_limits::max() ? std::numeric_limits::max() : n); + else + return (n > (unsigned long)std::numeric_limits::max() ? std::numeric_limits::min() : -(int)n); +} + +void CBigNum::setint64(int64_t sn) +{ + unsigned char pch[sizeof(sn) + 6]; + unsigned char* p = pch + 4; + bool fNegative; + uint64_t n; + + if (sn < (int64_t)0) + { + // Since the minimum signed integer cannot be represented as positive so long as its type is signed, + // and it's not well-defined what happens if you make it unsigned before negating it, + // we instead increment the negative integer by 1, convert it, then increment the (now positive) unsigned integer by 1 to compensate + n = -(sn + 1); + ++n; + fNegative = true; + } else { + n = sn; + fNegative = false; + } + + bool fLeadingZeroes = true; + for (int i = 0; i < 8; i++) + { + unsigned char c = (n >> 56) & 0xff; + n <<= 8; + if (fLeadingZeroes) + { + if (c == 0) + continue; + if (c & 0x80) + *p++ = (fNegative ? 0x80 : 0); + else if (fNegative) + c |= 0x80; + fLeadingZeroes = false; + } + *p++ = c; + } + unsigned int nSize = p - (pch + 4); + pch[0] = (nSize >> 24) & 0xff; + pch[1] = (nSize >> 16) & 0xff; + pch[2] = (nSize >> 8) & 0xff; + pch[3] = (nSize) & 0xff; + BN_mpi2bn(pch, p - pch, bn); +} + +void CBigNum::setuint64(uint64_t n) +{ + unsigned char pch[sizeof(n) + 6]; + unsigned char* p = pch + 4; + bool fLeadingZeroes = true; + for (int i = 0; i < 8; i++) + { + unsigned char c = (n >> 56) & 0xff; + n <<= 8; + if (fLeadingZeroes) + { + if (c == 0) + continue; + if (c & 0x80) + *p++ = 0; + fLeadingZeroes = false; + } + *p++ = c; + } + unsigned int nSize = p - (pch + 4); + pch[0] = (nSize >> 24) & 0xff; + pch[1] = (nSize >> 16) & 0xff; + pch[2] = (nSize >> 8) & 0xff; + pch[3] = (nSize) & 0xff; + BN_mpi2bn(pch, p - pch, bn); +} + +void CBigNum::setuint256(uint256 n) +{ + unsigned char pch[sizeof(n) + 6]; + unsigned char* p = pch + 4; + bool fLeadingZeroes = true; + unsigned char* pbegin = (unsigned char*)&n; + unsigned char* psrc = pbegin + sizeof(n); + while (psrc != pbegin) + { + unsigned char c = *(--psrc); + if (fLeadingZeroes) + { + if (c == 0) + continue; + if (c & 0x80) + *p++ = 0; + fLeadingZeroes = false; + } + *p++ = c; + } + unsigned int nSize = p - (pch + 4); + pch[0] = (nSize >> 24) & 0xff; + pch[1] = (nSize >> 16) & 0xff; + pch[2] = (nSize >> 8) & 0xff; + pch[3] = (nSize >> 0) & 0xff; + BN_mpi2bn(pch, p - pch, bn); +} + +uint256 CBigNum::getuint256() const +{ + if(bitSize() > 256) { + throw std::range_error("cannot convert to uint256, bignum longer than 256 bits"); + } + unsigned int nSize = BN_bn2mpi(bn, NULL); + if (nSize < 4) + return 0; + std::vector vch(nSize); + BN_bn2mpi(bn, &vch[0]); + if (vch.size() > 4) + vch[4] &= 0x7f; + uint256 n = 0; + for (unsigned int i = 0, j = vch.size()-1; i < sizeof(n) && j >= 4; i++, j--) + ((unsigned char*)&n)[i] = vch[j]; + return n; +} + +void CBigNum::setvch(const std::vector& vch) +{ + std::vector vch2(vch.size() + 4); + unsigned int nSize = vch.size(); + // BIGNUM's byte stream format expects 4 bytes of + // big endian size data info at the front + vch2[0] = (nSize >> 24) & 0xff; + vch2[1] = (nSize >> 16) & 0xff; + vch2[2] = (nSize >> 8) & 0xff; + vch2[3] = (nSize >> 0) & 0xff; + // swap data to big endian + reverse_copy(vch.begin(), vch.end(), vch2.begin() + 4); + BN_mpi2bn(&vch2[0], vch2.size(), bn); +} + +std::vector CBigNum::getvch() const +{ + unsigned int nSize = BN_bn2mpi(bn, NULL); + if (nSize <= 4) + return std::vector(); + std::vector vch(nSize); + BN_bn2mpi(bn, &vch[0]); + vch.erase(vch.begin(), vch.begin() + 4); + reverse(vch.begin(), vch.end()); + return vch; +} + +void CBigNum::SetDec(const std::string& str) +{ + BN_dec2bn(&bn, str.c_str()); +} + +bool CBigNum::SetHexBool(const std::string& str) +{ + // skip 0x + const char* psz = str.c_str(); + while (isspace(*psz)) + psz++; + bool fNegative = false; + if (*psz == '-') + { + fNegative = true; + psz++; + } + if (psz[0] == '0' && tolower(psz[1]) == 'x') + psz += 2; + while (isspace(*psz)) + psz++; + + // hex string to bignum + static const signed char phexdigit[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0 }; + *this = 0; + while (isxdigit(*psz)) + { + *this <<= 4; + int n = phexdigit[(unsigned char)*psz++]; + *this += n; + } + if (fNegative) + *this = 0 - *this; + + return true; +} + + +std::string CBigNum::ToString(int nBase) const +{ + CAutoBN_CTX pctx; + CBigNum bnBase = nBase; + CBigNum bn0 = 0; + CBigNum locBn = *this; + std::string str; + BN_set_negative(locBn.bn, false); + CBigNum dv; + CBigNum rem; + if (BN_cmp(locBn.bn, bn0.bn) == 0) + return "0"; + while (BN_cmp(locBn.bn, bn0.bn) > 0) + { + if (!BN_div(dv.bn, rem.bn, locBn.bn, bnBase.bn, pctx)) + throw bignum_error("CBigNum::ToString() : BN_div failed"); + locBn = dv; + unsigned int c = rem.getulong(); + str += "0123456789abcdef"[c]; + } + if (BN_is_negative(bn)) + str += "-"; + reverse(str.begin(), str.end()); + return str; +} + +/** + * exponentiation this^e + * @param e the exponent + * @return + */ +CBigNum CBigNum::pow(const CBigNum& e) const +{ + CAutoBN_CTX pctx; + CBigNum ret; + if (!BN_exp(ret.bn, bn, e.bn, pctx)) + throw bignum_error("CBigNum::pow : BN_exp failed"); + return ret; +} + +/** + * modular multiplication: (this * b) mod m + * @param b operand + * @param m modulus + */ +CBigNum CBigNum::mul_mod(const CBigNum& b, const CBigNum& m) const +{ + CAutoBN_CTX pctx; + CBigNum ret; + if (!BN_mod_mul(ret.bn, bn, b.bn, m.bn, pctx)) + throw bignum_error("CBigNum::mul_mod : BN_mod_mul failed"); + + return ret; +} + +/** + * modular exponentiation: this^e mod n + * @param e exponent + * @param m modulus + */ +CBigNum CBigNum::pow_mod(const CBigNum& e, const CBigNum& m) const +{ + CAutoBN_CTX pctx; + CBigNum ret; + if( e < 0){ + // g^-x = (g^-1)^x + CBigNum inv = this->inverse(m); + CBigNum posE = e * -1; + if (!BN_mod_exp(ret.bn, inv.bn, posE.bn, m.bn, pctx)) + throw bignum_error("CBigNum::pow_mod: BN_mod_exp failed on negative exponent"); + }else + if (!BN_mod_exp(ret.bn, bn, e.bn, m.bn, pctx)) + throw bignum_error("CBigNum::pow_mod : BN_mod_exp failed"); + + return ret; +} + +/** +* Calculates the inverse of this element mod m. +* i.e. i such this*i = 1 mod m +* @param m the modu +* @return the inverse +*/ +CBigNum CBigNum::inverse(const CBigNum& m) const +{ + CAutoBN_CTX pctx; + CBigNum ret; + if (!BN_mod_inverse(ret.bn, bn, m.bn, pctx)) + throw bignum_error("CBigNum::inverse*= :BN_mod_inverse"); + return ret; +} + +/** + * Generates a random (safe) prime of numBits bits + * @param numBits the number of bits + * @param safe true for a safe prime + * @return the prime + */ +CBigNum CBigNum::generatePrime(const unsigned int numBits, bool safe) +{ + CBigNum ret; + if(!BN_generate_prime_ex(ret.bn, numBits, (safe == true), NULL, NULL, NULL)) + throw bignum_error("CBigNum::generatePrime*= :BN_generate_prime_ex"); + return ret; +} + +/** + * Calculates the greatest common divisor (GCD) of two numbers. + * @param m the second element + * @return the GCD + */ +CBigNum CBigNum::gcd( const CBigNum& b) const +{ + CAutoBN_CTX pctx; + CBigNum ret; + if (!BN_gcd(ret.bn, bn, b.bn, pctx)) + throw bignum_error("CBigNum::gcd*= :BN_gcd"); + return ret; +} + +/** +* Miller-Rabin primality test on this element +* @param checks: optional, the number of Miller-Rabin tests to run +* default causes error rate of 2^-80. +* @return true if prime +*/ +bool CBigNum::isPrime(const int checks) const +{ + CAutoBN_CTX pctx; + int ret = BN_is_prime_ex(bn, checks, pctx, NULL); + if(ret < 0){ + throw bignum_error("CBigNum::isPrime :BN_is_prime"); + } + return ret; +} + +bool CBigNum::isOne() const +{ + return BN_is_one(bn); +} + +bool CBigNum::operator!() const +{ + return BN_is_zero(bn); +} + +CBigNum& CBigNum::operator+=(const CBigNum& b) +{ + if (!BN_add(bn, bn, b.bn)) + throw bignum_error("CBigNum::operator+= : BN_add failed"); + return *this; +} + +CBigNum& CBigNum::operator-=(const CBigNum& b) +{ + if (!BN_sub(bn, bn, b.bn)) + throw bignum_error("CBigNum::operator-= : BN_sub failed"); + return *this; +} + +CBigNum& CBigNum::operator*=(const CBigNum& b) +{ + CAutoBN_CTX pctx; + if (!BN_mul(bn, bn, b.bn, pctx)) + throw bignum_error("CBigNum::operator*= : BN_mul failed"); + return *this; +} + +CBigNum& CBigNum::operator<<=(unsigned int shift) +{ + if (!BN_lshift(bn, bn, shift)) + throw bignum_error("CBigNum:operator<<= : BN_lshift failed"); + return *this; +} + +CBigNum& CBigNum::operator>>=(unsigned int shift) +{ + // Note: BN_rshift segfaults on 64-bit if 2^shift is greater than the number + // if built on ubuntu 9.04 or 9.10, probably depends on version of OpenSSL + CBigNum a = 1; + a <<= shift; + if (BN_cmp(a.bn, bn) > 0) + { + bn = 0; + return *this; + } + + if (!BN_rshift(bn, bn, shift)) + throw bignum_error("CBigNum:operator>>= : BN_rshift failed"); + return *this; +} + + +CBigNum& CBigNum::operator++() +{ + // prefix operator + if (!BN_add(bn, bn, BN_value_one())) + throw bignum_error("CBigNum::operator++ : BN_add failed"); + return *this; +} + +CBigNum& CBigNum::operator--() +{ + // prefix operator + CBigNum r; + if (!BN_sub(r.bn, bn, BN_value_one())) + throw bignum_error("CBigNum::operator-- : BN_sub failed"); + bn = r.bn; + return *this; +} diff --git a/src/messagesigner.cpp b/src/messagesigner.cpp new file mode 100644 index 0000000..99f9e8c --- /dev/null +++ b/src/messagesigner.cpp @@ -0,0 +1,180 @@ +// Copyright (c) 2014-2018 The Dash Core developers +// Copyright (c) 2018-2020 The PIVX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "base58.h" +#include "hash.h" +#include "main.h" // For strMessageMagic +#include "messagesigner.h" +#include "masternodeman.h" // For GetPublicKey (of MN from its vin) +#include "tinyformat.h" +#include "utilstrencodings.h" + +bool CMessageSigner::GetKeysFromSecret(const std::string& strSecret, CKey& keyRet, CPubKey& pubkeyRet) +{ + CBitcoinSecret vchSecret; + + if(!vchSecret.SetString(strSecret)) return false; + + keyRet = vchSecret.GetKey(); + pubkeyRet = keyRet.GetPubKey(); + + return true; +} + +uint256 CMessageSigner::GetMessageHash(const std::string& strMessage) +{ + CHashWriter ss(SER_GETHASH, 0); + ss << strMessageMagic; + ss << strMessage; + return ss.GetHash(); +} + +bool CMessageSigner::SignMessage(const std::string& strMessage, std::vector& vchSigRet, const CKey& key) +{ + return CHashSigner::SignHash(GetMessageHash(strMessage), key, vchSigRet); +} + +bool CMessageSigner::VerifyMessage(const CPubKey& pubkey, const std::vector& vchSig, const std::string& strMessage, std::string& strErrorRet) +{ + return VerifyMessage(pubkey.GetID(), vchSig, strMessage, strErrorRet); +} + +bool CMessageSigner::VerifyMessage(const CKeyID& keyID, const std::vector& vchSig, const std::string& strMessage, std::string& strErrorRet) +{ + return CHashSigner::VerifyHash(GetMessageHash(strMessage), keyID, vchSig, strErrorRet); +} + +bool CHashSigner::SignHash(const uint256& hash, const CKey& key, std::vector& vchSigRet) +{ + return key.SignCompact(hash, vchSigRet); +} + +bool CHashSigner::VerifyHash(const uint256& hash, const CPubKey& pubkey, const std::vector& vchSig, std::string& strErrorRet) +{ + return VerifyHash(hash, pubkey.GetID(), vchSig, strErrorRet); +} + +bool CHashSigner::VerifyHash(const uint256& hash, const CKeyID& keyID, const std::vector& vchSig, std::string& strErrorRet) +{ + CPubKey pubkeyFromSig; + if(!pubkeyFromSig.RecoverCompact(hash, vchSig)) { + strErrorRet = "Error recovering public key."; + return false; + } + + if(pubkeyFromSig.GetID() != keyID) { + strErrorRet = strprintf("Keys don't match: pubkey=%s, pubkeyFromSig=%s, hash=%s, vchSig=%s", + CBitcoinAddress(keyID).ToString(), CBitcoinAddress(pubkeyFromSig.GetID()).ToString(), + hash.ToString(), EncodeBase64(&vchSig[0], vchSig.size())); + return false; + } + + return true; +} + +/** CSignedMessage Class + * Functions inherited by network signed-messages + */ + +bool CSignedMessage::Sign(const CKey& key, const CPubKey& pubKey, const bool fNewSigs) +{ + std::string strError = ""; + + if (fNewSigs) { + nMessVersion = MessageVersion::MESS_VER_HASH; + uint256 hash = GetSignatureHash(); + + if(!CHashSigner::SignHash(hash, key, vchSig)) { + return error("%s : SignHash() failed", __func__); + } + + if (!CHashSigner::VerifyHash(hash, pubKey, vchSig, strError)) { + return error("%s : VerifyHash() failed, error: %s", __func__, strError); + } + + } else { + nMessVersion = MessageVersion::MESS_VER_STRMESS; + std::string strMessage = GetStrMessage(); + + if (!CMessageSigner::SignMessage(strMessage, vchSig, key)) { + return error("%s : SignMessage() failed", __func__); + } + + if (!CMessageSigner::VerifyMessage(pubKey, vchSig, strMessage, strError)) { + return error("%s : VerifyMessage() failed, error: %s\n", __func__, strError); + } + } + + return true; +} + +bool CSignedMessage::Sign(const std::string strSignKey, const bool fNewSigs) +{ + CKey key; + CPubKey pubkey; + + if (!CMessageSigner::GetKeysFromSecret(strSignKey, key, pubkey)) { + return error("%s : Invalid strSignKey", __func__); + } + + return Sign(key, pubkey, fNewSigs); +} + +bool CSignedMessage::CheckSignature(const CPubKey& pubKey) const +{ + std::string strError = ""; + + if (nMessVersion == MessageVersion::MESS_VER_HASH) { + uint256 hash = GetSignatureHash(); + if(!CHashSigner::VerifyHash(hash, pubKey, vchSig, strError)) + return error("%s : VerifyHash failed: %s", __func__, strError); + + } else { + std::string strMessage = GetStrMessage(); + if(!CMessageSigner::VerifyMessage(pubKey, vchSig, strMessage, strError)) + return error("%s : VerifyMessage failed: %s", __func__, strError); + } + + return true; +} + +bool CSignedMessage::CheckSignature() const +{ + std::string strError = ""; + + const CPubKey pubkey = GetPublicKey(strError); + if (pubkey == CPubKey()) + return error("%s : %s", __func__, strError); + + return CheckSignature(pubkey); +} + +const CPubKey CSignedMessage::GetPublicKey(std::string& strErrorRet) const +{ + const CTxIn vin = GetVin(); + CMasternode* pmn = mnodeman.Find(vin); + if(pmn) { + return pmn->pubKeyMasternode; + } + strErrorRet = strprintf("Unable to find masternode vin %s", vin.prevout.hash.GetHex()); + return CPubKey(); +} + +std::string CSignedMessage::GetSignatureBase64() const +{ + return EncodeBase64(&vchSig[0], vchSig.size()); +} + +void CSignedMessage::swap(CSignedMessage& first, CSignedMessage& second) // nothrow +{ + // enable ADL (not necessary in our case, but good practice) + using std::swap; + + // by swapping the members of two classes, + // the two classes are effectively swapped + swap(first.vchSig, second.vchSig); + swap(first.nMessVersion, second.nMessVersion); +} + diff --git a/src/messagesigner.h b/src/messagesigner.h new file mode 100644 index 0000000..5c03612 --- /dev/null +++ b/src/messagesigner.h @@ -0,0 +1,91 @@ +// Copyright (c) 2014-2018 The Dash Core developers +// Copyright (c) 2018-2020 The PIVX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef MESSAGESIGNER_H +#define MESSAGESIGNER_H + +#include "key.h" +#include "primitives/transaction.h" // for CTxIn + +enum MessageVersion { + MESS_VER_STRMESS = 0, + MESS_VER_HASH = 1, +}; + +/** Helper class for signing messages and checking their signatures + */ +class CMessageSigner +{ +public: + /// Set the private/public key values, returns true if successful + static bool GetKeysFromSecret(const std::string& strSecret, CKey& keyRet, CPubKey& pubkeyRet); + /// Get the hash based on the input message + static uint256 GetMessageHash(const std::string& strMessage); + /// Sign the message, returns true if successful + static bool SignMessage(const std::string& strMessage, std::vector& vchSigRet, const CKey& key); + /// Verify the message signature, returns true if successful + static bool VerifyMessage(const CPubKey& pubkey, const std::vector& vchSig, const std::string& strMessage, std::string& strErrorRet); + /// Verify the message signature, returns true if successful + static bool VerifyMessage(const CKeyID& keyID, const std::vector& vchSig, const std::string& strMessage, std::string& strErrorRet); +}; + +/** Helper class for signing hashes and checking their signatures + */ +class CHashSigner +{ +public: + /// Sign the hash, returns true if successful + static bool SignHash(const uint256& hash, const CKey& key, std::vector& vchSigRet); + /// Verify the hash signature, returns true if successful + static bool VerifyHash(const uint256& hash, const CPubKey& pubkey, const std::vector& vchSig, std::string& strErrorRet); + /// Verify the hash signature, returns true if successful + static bool VerifyHash(const uint256& hash, const CKeyID& keyID, const std::vector& vchSig, std::string& strErrorRet); +}; + +/** Base Class for all signed messages on the network + */ +class CSignedMessage +{ +protected: + std::vector vchSig; + void swap(CSignedMessage& first, CSignedMessage& second); // Swap two messages + +public: + int nMessVersion; + + CSignedMessage() : + vchSig(), + nMessVersion(MessageVersion::MESS_VER_HASH) + {} + CSignedMessage(const CSignedMessage& other) + { + vchSig = other.GetVchSig(); + nMessVersion = other.nMessVersion; + } + virtual ~CSignedMessage() {}; + + // Sign-Verify message + bool Sign(const CKey& key, const CPubKey& pubKey, const bool fNewSigs); + bool Sign(const std::string strSignKey, const bool fNewSigs); + bool CheckSignature(const CPubKey& pubKey) const; + bool CheckSignature() const; + + // Pure virtual functions (used in Sign-Verify functions) + // Must be implemented in child classes + virtual uint256 GetSignatureHash() const = 0; + virtual std::string GetStrMessage() const = 0; + virtual const CTxIn GetVin() const = 0; + + // GetPublicKey defaults to public key of masternode with vin from GetVin. + // Child classes can override if public key is directly accessible. + virtual const CPubKey GetPublicKey(std::string& strErrorRet) const; + + // Setters and getters + void SetVchSig(const std::vector& vchSigIn) { vchSig = vchSigIn; } + std::vector GetVchSig() const { return vchSig; } + std::string GetSignatureBase64() const; +}; + +#endif diff --git a/src/pairresult.h b/src/pairresult.h new file mode 100644 index 0000000..9cb6b3f --- /dev/null +++ b/src/pairresult.h @@ -0,0 +1,20 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PIVX_PAIRRESULT_H +#define PIVX_PAIRRESULT_H + + +class PairResult { + +public: + PairResult(bool res):result(res){} + PairResult(bool res, std::string* statusStr):result(res), status(statusStr){} + + bool result; + std::string* status = nullptr; +}; + + +#endif //PIVX_PAIRRESULT_H diff --git a/src/pivx-cli-res.rc b/src/pivx-cli-res.rc new file mode 100644 index 0000000..c42f803 --- /dev/null +++ b/src/pivx-cli-res.rc @@ -0,0 +1,35 @@ +#include // needed for VERSIONINFO +#include "clientversion.h" // holds the needed client version information + +#define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD +#define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) +#define VER_FILEVERSION VER_PRODUCTVERSION +#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR + +VS_VERSION_INFO VERSIONINFO +FILEVERSION VER_FILEVERSION +PRODUCTVERSION VER_PRODUCTVERSION +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" // U.S. English - multilingual (hex) + BEGIN + VALUE "CompanyName", "Pivx" + VALUE "FileDescription", "Pivx-cli (OSS RPC client for Pivx)" + VALUE "FileVersion", VER_FILEVERSION_STR + VALUE "InternalName", "pivx-cli" + VALUE "LegalCopyright", COPYRIGHT_STR + VALUE "LegalTrademarks1", "Distributed under the MIT/X11 software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." + VALUE "OriginalFilename", "pivx-cli.exe" + VALUE "ProductName", "Pivx-cli" + VALUE "ProductVersion", VER_PRODUCTVERSION_STR + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1252 // language neutral - multilingual (decimal) + END +END diff --git a/src/pivx-cli.cpp b/src/pivx-cli.cpp new file mode 100644 index 0000000..af201b0 --- /dev/null +++ b/src/pivx-cli.cpp @@ -0,0 +1,320 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2015 The Bitcoin developers +// Copyright (c) 2009-2015 The Dash developers +// Copyright (c) 2015-2019 The PIVX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "chainparamsbase.h" +#include "clientversion.h" +#include "rpc/client.h" +#include "rpc/protocol.h" +#include "util.h" +#include "utilstrencodings.h" + +#include +#include + +#include +#include +#include +#include + +#include + +#define _(x) std::string(x) /* Keep the _() around in case gettext or such will be used later to translate non-UI */ + + +static const int DEFAULT_HTTP_CLIENT_TIMEOUT=900; + +std::string HelpMessageCli() +{ + std::string strUsage; + strUsage += HelpMessageGroup(_("Options:")); + strUsage += HelpMessageOpt("-?", _("This help message")); + strUsage += HelpMessageOpt("-conf=", strprintf(_("Specify configuration file (default: %s)"), "pivx.conf")); + strUsage += HelpMessageOpt("-datadir=", _("Specify data directory")); + strUsage += HelpMessageOpt("-testnet", _("Use the test network")); + strUsage += HelpMessageOpt("-regtest", _("Enter regression test mode, which uses a special chain in which blocks can be " + "solved instantly. This is intended for regression testing tools and app development.")); + strUsage += HelpMessageOpt("-rpcconnect=", strprintf(_("Send commands to node running on (default: %s)"), "127.0.0.1")); + strUsage += HelpMessageOpt("-rpcport=", strprintf(_("Connect to JSON-RPC on (default: %u or testnet: %u)"), 51473, 51475)); + strUsage += HelpMessageOpt("-rpcwait", _("Wait for RPC server to start")); + strUsage += HelpMessageOpt("-rpcuser=", _("Username for JSON-RPC connections")); + strUsage += HelpMessageOpt("-rpcpassword=", _("Password for JSON-RPC connections")); + strUsage += HelpMessageOpt("-rpcclienttimeout=", strprintf(_("Timeout during HTTP requests (default: %d)"), DEFAULT_HTTP_CLIENT_TIMEOUT)); + + return strUsage; +} + +////////////////////////////////////////////////////////////////////////////// +// +// Start +// + +// +// Exception thrown on connection error. This error is used to determine +// when to wait if -rpcwait is given. +// +class CConnectionFailed : public std::runtime_error +{ +public: + explicit inline CConnectionFailed(const std::string& msg) : std::runtime_error(msg) + { + } +}; + +static bool AppInitRPC(int argc, char* argv[]) +{ + // + // Parameters + // + ParseParameters(argc, argv); + if (argc < 2 || mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version")) { + std::string strUsage = _("PIVX Core RPC client version") + " " + FormatFullVersion() + "\n"; + if (!mapArgs.count("-version")) { + strUsage += "\n" + _("Usage:") + "\n" + + " pivx-cli [options] [params] " + _("Send command to PIVX Core") + "\n" + + " pivx-cli [options] help " + _("List commands") + "\n" + + " pivx-cli [options] help " + _("Get help for a command") + "\n"; + + strUsage += "\n" + HelpMessageCli(); + } + + fprintf(stdout, "%s", strUsage.c_str()); + return false; + } + if (!boost::filesystem::is_directory(GetDataDir(false))) { + fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", mapArgs["-datadir"].c_str()); + return false; + } + try { + ReadConfigFile(mapArgs, mapMultiArgs); + } catch (const std::exception& e) { + fprintf(stderr, "Error reading configuration file: %s\n", e.what()); + return false; + } + // Check for -testnet or -regtest parameter (BaseParams() calls are only valid after this clause) + if (!SelectBaseParamsFromCommandLine()) { + fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); + return false; + } + if (GetBoolArg("-rpcssl", false)) + { + fprintf(stderr, "Error: SSL mode for RPC (-rpcssl) is no longer supported.\n"); + return false; + } + return true; +} + + +/** Reply structure for request_done to fill in */ +struct HTTPReply +{ + int status; + std::string body; +}; + +static void http_request_done(struct evhttp_request *req, void *ctx) +{ + HTTPReply *reply = static_cast(ctx); + + if (req == NULL) { + /* If req is NULL, it means an error occurred while connecting, but + * I'm not sure how to find out which one. We also don't really care. + */ + reply->status = 0; + return; + } + + reply->status = evhttp_request_get_response_code(req); + + struct evbuffer *buf = evhttp_request_get_input_buffer(req); + if (buf) + { + size_t size = evbuffer_get_length(buf); + const char *data = (const char*)evbuffer_pullup(buf, size); + if (data) + reply->body = std::string(data, size); + evbuffer_drain(buf, size); + } +} + +UniValue CallRPC(const std::string& strMethod, const UniValue& params) +{ + std::string host = GetArg("-rpcconnect", "127.0.0.1"); + int port = GetArg("-rpcport", BaseParams().RPCPort()); + + // Create event base + struct event_base *base = event_base_new(); // TODO RAII + if (!base) + throw std::runtime_error("cannot create event_base"); + + // Synchronously look up hostname + struct evhttp_connection *evcon = evhttp_connection_base_new(base, NULL, host.c_str(), port); // TODO RAII + if (evcon == NULL) + throw std::runtime_error("create connection failed"); + evhttp_connection_set_timeout(evcon, GetArg("-rpcclienttimeout", DEFAULT_HTTP_CLIENT_TIMEOUT)); + + HTTPReply response; + struct evhttp_request *req = evhttp_request_new(http_request_done, (void*)&response); // TODO RAII + if (req == NULL) + throw std::runtime_error("create http request failed"); + + // Get credentials + std::string strRPCUserColonPass; + if (mapArgs["-rpcpassword"] == "") { + // Try fall back to cookie-based authentication if no password is provided + if (!GetAuthCookie(&strRPCUserColonPass)) { + throw std::runtime_error(strprintf( + _("Could not locate RPC credentials. No authentication cookie could be found, and no rpcpassword is set in the configuration file (%s)"), + GetConfigFile().string().c_str())); + + } + } else { + strRPCUserColonPass = mapArgs["-rpcuser"] + ":" + mapArgs["-rpcpassword"]; + } + + struct evkeyvalq *output_headers = evhttp_request_get_output_headers(req); + assert(output_headers); + evhttp_add_header(output_headers, "Host", host.c_str()); + evhttp_add_header(output_headers, "Connection", "close"); + evhttp_add_header(output_headers, "Authorization", (std::string("Basic ") + EncodeBase64(strRPCUserColonPass)).c_str()); + + // Attach request data + std::string strRequest = JSONRPCRequest(strMethod, params, 1); + struct evbuffer * output_buffer = evhttp_request_get_output_buffer(req); + assert(output_buffer); + evbuffer_add(output_buffer, strRequest.data(), strRequest.size()); + + int r = evhttp_make_request(evcon, req, EVHTTP_REQ_POST, "/"); + if (r != 0) { + evhttp_connection_free(evcon); + event_base_free(base); + throw CConnectionFailed("send http request failed"); + } + + event_base_dispatch(base); + evhttp_connection_free(evcon); + event_base_free(base); + + if (response.status == 0) + throw CConnectionFailed("couldn't connect to server"); + else if (response.status == HTTP_UNAUTHORIZED) + throw std::runtime_error("incorrect rpcuser or rpcpassword (authorization failed)"); + else if (response.status >= 400 && response.status != HTTP_BAD_REQUEST && response.status != HTTP_NOT_FOUND && response.status != HTTP_INTERNAL_SERVER_ERROR) + throw std::runtime_error(strprintf("server returned HTTP error %d", response.status)); + else if (response.body.empty()) + throw std::runtime_error("no response from server"); + + // Parse reply + UniValue valReply(UniValue::VSTR); + if (!valReply.read(response.body)) + throw std::runtime_error("couldn't parse reply from server"); + const UniValue& reply = valReply.get_obj(); + if (reply.empty()) + throw std::runtime_error("expected reply to have result, error and id properties"); + + return reply; +} + +int CommandLineRPC(int argc, char* argv[]) +{ + std::string strPrint; + int nRet = 0; + try { + // Skip switches + while (argc > 1 && IsSwitchChar(argv[1][0])) { + argc--; + argv++; + } + + // Method + if (argc < 2) + throw std::runtime_error("too few parameters"); + std::string strMethod = argv[1]; + + // Parameters default to strings + std::vector strParams(&argv[2], &argv[argc]); + UniValue params = RPCConvertValues(strMethod, strParams); + + // Execute and handle connection failures with -rpcwait + const bool fWait = GetBoolArg("-rpcwait", false); + do { + try { + const UniValue reply = CallRPC(strMethod, params); + + // Parse reply + const UniValue& result = find_value(reply, "result"); + const UniValue& error = find_value(reply, "error"); + + if (!error.isNull()) { + // Error + int code = error["code"].get_int(); + if (fWait && code == RPC_IN_WARMUP) + throw CConnectionFailed("server in warmup"); + strPrint = "error: " + error.write(); + nRet = abs(code); + } else { + // Result + if (result.isNull()) + strPrint = ""; + else if (result.isStr()) + strPrint = result.get_str(); + else + strPrint = result.write(2); + } + // Connection succeeded, no need to retry. + break; + } catch (const CConnectionFailed& e) { + if (fWait) + MilliSleep(1000); + else + throw; + } + } while (fWait); + } catch (const boost::thread_interrupted&) { + throw; + } catch (const std::exception& e) { + strPrint = std::string("error: ") + e.what(); + nRet = EXIT_FAILURE; + } catch (...) { + PrintExceptionContinue(NULL, "CommandLineRPC()"); + throw; + } + + if (strPrint != "") { + fprintf((nRet == 0 ? stdout : stderr), "%s\n", strPrint.c_str()); + } + return nRet; +} + +int main(int argc, char* argv[]) +{ + SetupEnvironment(); + if (!SetupNetworking()) { + fprintf(stderr, "Error: Initializing networking failed\n"); + exit(1); + } + + try { + if (!AppInitRPC(argc, argv)) + return EXIT_FAILURE; + } catch (const std::exception& e) { + PrintExceptionContinue(&e, "AppInitRPC()"); + return EXIT_FAILURE; + } catch (...) { + PrintExceptionContinue(NULL, "AppInitRPC()"); + return EXIT_FAILURE; + } + + int ret = EXIT_FAILURE; + try { + ret = CommandLineRPC(argc, argv); + } catch (const std::exception& e) { + PrintExceptionContinue(&e, "CommandLineRPC()"); + } catch (...) { + PrintExceptionContinue(NULL, "CommandLineRPC()"); + } + return ret; +} diff --git a/src/pivx-tx-res.rc b/src/pivx-tx-res.rc new file mode 100644 index 0000000..61f2beb --- /dev/null +++ b/src/pivx-tx-res.rc @@ -0,0 +1,35 @@ +#include // needed for VERSIONINFO +#include "clientversion.h" // holds the needed client version information + +#define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD +#define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) +#define VER_FILEVERSION VER_PRODUCTVERSION +#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR + +VS_VERSION_INFO VERSIONINFO +FILEVERSION VER_FILEVERSION +PRODUCTVERSION VER_PRODUCTVERSION +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" // U.S. English - multilingual (hex) + BEGIN + VALUE "CompanyName", "PIVX" + VALUE "FileDescription", "pivx-tx (CLI PIVX transaction editor utility)" + VALUE "FileVersion", VER_FILEVERSION_STR + VALUE "InternalName", "pivx-tx" + VALUE "LegalCopyright", COPYRIGHT_STR + VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." + VALUE "OriginalFilename", "pivx-tx.exe" + VALUE "ProductName", "pivx-tx" + VALUE "ProductVersion", VER_PRODUCTVERSION_STR + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1252 // language neutral - multilingual (decimal) + END +END diff --git a/src/pivx-tx.cpp b/src/pivx-tx.cpp new file mode 100644 index 0000000..821c16e --- /dev/null +++ b/src/pivx-tx.cpp @@ -0,0 +1,640 @@ +// Copyright (c) 2009-2014 The Bitcoin developers +// Copyright (c) 2015-2019 The PIVX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "base58.h" +#include "clientversion.h" +#include "coins.h" +#include "core_io.h" +#include "keystore.h" +#include "primitives/block.h" // for MAX_BLOCK_SIZE +#include "primitives/transaction.h" +#include "script/script.h" +#include "script/sign.h" +#include "guiinterface.h" // for _(...) +#include +#include "util.h" +#include "utilmoneystr.h" +#include "utilstrencodings.h" + +#include + +#include +#include + + +static bool fCreateBlank; +static std::map registers; +CClientUIInterface uiInterface; + +static bool AppInitRawTx(int argc, char* argv[]) +{ + // + // Parameters + // + ParseParameters(argc, argv); + + // Check for -testnet or -regtest parameter (Params() calls are only valid after this clause) + if (!SelectParamsFromCommandLine()) { + fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); + return false; + } + + fCreateBlank = GetBoolArg("-create", false); + + if (argc < 2 || mapArgs.count("-?") || mapArgs.count("-help")) { + // First part of help message is specific to this utility + std::string strUsage = _("Pivx Core pivx-tx utility version") + " " + FormatFullVersion() + "\n\n" + + _("Usage:") + "\n" + + " pivx-tx [options] [commands] " + _("Update hex-encoded pivx transaction") + "\n" + + " pivx-tx [options] -create [commands] " + _("Create hex-encoded pivx transaction") + "\n" + + "\n"; + + fprintf(stdout, "%s", strUsage.c_str()); + + strUsage = HelpMessageGroup(_("Options:")); + strUsage += HelpMessageOpt("-?", _("This help message")); + strUsage += HelpMessageOpt("-create", _("Create new, empty TX.")); + strUsage += HelpMessageOpt("-json", _("Select JSON output")); + strUsage += HelpMessageOpt("-txid", _("Output only the hex-encoded transaction id of the resultant transaction.")); + strUsage += HelpMessageOpt("-regtest", _("Enter regression test mode, which uses a special chain in which blocks can be solved instantly.")); + strUsage += HelpMessageOpt("-testnet", _("Use the test network")); + + fprintf(stdout, "%s", strUsage.c_str()); + + + strUsage = HelpMessageGroup(_("Commands:")); + strUsage += HelpMessageOpt("delin=N", _("Delete input N from TX")); + strUsage += HelpMessageOpt("delout=N", _("Delete output N from TX")); + strUsage += HelpMessageOpt("in=TXID:VOUT", _("Add input to TX")); + strUsage += HelpMessageOpt("locktime=N", _("Set TX lock time to N")); + strUsage += HelpMessageOpt("nversion=N", _("Set TX version to N")); + strUsage += HelpMessageOpt("outaddr=VALUE:ADDRESS", _("Add address-based output to TX")); + strUsage += HelpMessageOpt("outscript=VALUE:SCRIPT", _("Add raw script output to TX")); + strUsage += HelpMessageOpt("sign=SIGHASH-FLAGS", _("Add zero or more signatures to transaction") + ". " + + _("This command requires JSON registers:") + + _("prevtxs=JSON object") + ", " + + _("privatekeys=JSON object") + ". " + + _("See signrawtransaction docs for format of sighash flags, JSON objects.")); + fprintf(stdout, "%s", strUsage.c_str()); + + strUsage = HelpMessageGroup(_("Register Commands:")); + strUsage += HelpMessageOpt("load=NAME:FILENAME", _("Load JSON file FILENAME into register NAME")); + strUsage += HelpMessageOpt("set=NAME:JSON-STRING", _("Set register NAME to given JSON-STRING")); + fprintf(stdout, "%s", strUsage.c_str()); + + return false; + } + return true; +} + +static void RegisterSetJson(const std::string& key, const std::string& rawJson) +{ + UniValue val; + if (!val.read(rawJson)) { + std::string strErr = "Cannot parse JSON for key " + key; + throw std::runtime_error(strErr); + } + + registers[key] = val; +} + +static void RegisterSet(const std::string& strInput) +{ + // separate NAME:VALUE in string + size_t pos = strInput.find(':'); + if ((pos == std::string::npos) || + (pos == 0) || + (pos == (strInput.size() - 1))) + throw std::runtime_error("Register input requires NAME:VALUE"); + + std::string key = strInput.substr(0, pos); + std::string valStr = strInput.substr(pos + 1, std::string::npos); + + RegisterSetJson(key, valStr); +} + +static void RegisterLoad(const std::string& strInput) +{ + // separate NAME:FILENAME in string + size_t pos = strInput.find(':'); + if ((pos == std::string::npos) || + (pos == 0) || + (pos == (strInput.size() - 1))) + throw std::runtime_error("Register load requires NAME:FILENAME"); + + std::string key = strInput.substr(0, pos); + std::string filename = strInput.substr(pos + 1, std::string::npos); + + FILE* f = fopen(filename.c_str(), "r"); + if (!f) { + std::string strErr = "Cannot open file " + filename; + throw std::runtime_error(strErr); + } + + // load file chunks into one big buffer + std::string valStr; + while ((!feof(f)) && (!ferror(f))) { + char buf[4096]; + int bread = fread(buf, 1, sizeof(buf), f); + if (bread <= 0) + break; + + valStr.insert(valStr.size(), buf, bread); + } + + if (ferror(f)) { + std::string strErr = "Error reading file " + filename; + throw std::runtime_error(strErr); + } + + fclose(f); + + // evaluate as JSON buffer register + RegisterSetJson(key, valStr); +} + +static void MutateTxVersion(CMutableTransaction& tx, const std::string& cmdVal) +{ + int64_t newVersion = atoi64(cmdVal); + if (newVersion < 1 || newVersion > CTransaction::CURRENT_VERSION) + throw std::runtime_error("Invalid TX version requested"); + + tx.nVersion = (int)newVersion; +} + +static void MutateTxLocktime(CMutableTransaction& tx, const std::string& cmdVal) +{ + int64_t newLocktime = atoi64(cmdVal); + if (newLocktime < 0LL || newLocktime > 0xffffffffLL) + throw std::runtime_error("Invalid TX locktime requested"); + + tx.nLockTime = (unsigned int)newLocktime; +} + +static void MutateTxAddInput(CMutableTransaction& tx, const std::string& strInput) +{ + // separate TXID:VOUT in string + size_t pos = strInput.find(':'); + if ((pos == std::string::npos) || + (pos == 0) || + (pos == (strInput.size() - 1))) + throw std::runtime_error("TX input missing separator"); + + // extract and validate TXID + std::string strTxid = strInput.substr(0, pos); + if ((strTxid.size() != 64) || !IsHex(strTxid)) + throw std::runtime_error("invalid TX input txid"); + uint256 txid(strTxid); + + static const unsigned int minTxOutSz = 9; + unsigned int nMaxSize = MAX_BLOCK_SIZE_LEGACY; + static const unsigned int maxVout = nMaxSize / minTxOutSz; + + // extract and validate vout + std::string strVout = strInput.substr(pos + 1, std::string::npos); + int vout = atoi(strVout); + if ((vout < 0) || (vout > (int)maxVout)) + throw std::runtime_error("invalid TX input vout"); + + // append to transaction input list + CTxIn txin(txid, vout); + tx.vin.push_back(txin); +} + +static void MutateTxAddOutAddr(CMutableTransaction& tx, const std::string& strInput) +{ + // separate VALUE:ADDRESS in string + size_t pos = strInput.find(':'); + if ((pos == std::string::npos) || + (pos == 0) || + (pos == (strInput.size() - 1))) + throw std::runtime_error("TX output missing separator"); + + // extract and validate VALUE + std::string strValue = strInput.substr(0, pos); + CAmount value; + if (!ParseMoney(strValue, value)) + throw std::runtime_error("invalid TX output value"); + + // extract and validate ADDRESS + std::string strAddr = strInput.substr(pos + 1, std::string::npos); + CBitcoinAddress addr(strAddr); + if (!addr.IsValid()) + throw std::runtime_error("invalid TX output address"); + + // build standard output script via GetScriptForDestination() + CScript scriptPubKey = GetScriptForDestination(addr.Get()); + + // construct TxOut, append to transaction output list + CTxOut txout(value, scriptPubKey); + tx.vout.push_back(txout); +} + +static void MutateTxAddOutScript(CMutableTransaction& tx, const std::string& strInput) +{ + // separate VALUE:SCRIPT in string + size_t pos = strInput.find(':'); + if ((pos == std::string::npos) || + (pos == 0)) + throw std::runtime_error("TX output missing separator"); + + // extract and validate VALUE + std::string strValue = strInput.substr(0, pos); + CAmount value; + if (!ParseMoney(strValue, value)) + throw std::runtime_error("invalid TX output value"); + + // extract and validate script + std::string strScript = strInput.substr(pos + 1, std::string::npos); + CScript scriptPubKey = ParseScript(strScript); // throws on err + + // construct TxOut, append to transaction output list + CTxOut txout(value, scriptPubKey); + tx.vout.push_back(txout); +} + +static void MutateTxDelInput(CMutableTransaction& tx, const std::string& strInIdx) +{ + // parse requested deletion index + int inIdx = atoi(strInIdx); + if (inIdx < 0 || inIdx >= (int)tx.vin.size()) { + std::string strErr = "Invalid TX input index '" + strInIdx + "'"; + throw std::runtime_error(strErr.c_str()); + } + + // delete input from transaction + tx.vin.erase(tx.vin.begin() + inIdx); +} + +static void MutateTxDelOutput(CMutableTransaction& tx, const std::string& strOutIdx) +{ + // parse requested deletion index + int outIdx = atoi(strOutIdx); + if (outIdx < 0 || outIdx >= (int)tx.vout.size()) { + std::string strErr = "Invalid TX output index '" + strOutIdx + "'"; + throw std::runtime_error(strErr.c_str()); + } + + // delete output from transaction + tx.vout.erase(tx.vout.begin() + outIdx); +} + +static const unsigned int N_SIGHASH_OPTS = 6; +static const struct { + const char* flagStr; + int flags; +} sighashOptions[N_SIGHASH_OPTS] = { + {"ALL", SIGHASH_ALL}, + {"NONE", SIGHASH_NONE}, + {"SINGLE", SIGHASH_SINGLE}, + {"ALL|ANYONECANPAY", SIGHASH_ALL | SIGHASH_ANYONECANPAY}, + {"NONE|ANYONECANPAY", SIGHASH_NONE | SIGHASH_ANYONECANPAY}, + {"SINGLE|ANYONECANPAY", SIGHASH_SINGLE | SIGHASH_ANYONECANPAY}, +}; + +static bool findSighashFlags(int& flags, const std::string& flagStr) +{ + flags = 0; + + for (unsigned int i = 0; i < N_SIGHASH_OPTS; i++) { + if (flagStr == sighashOptions[i].flagStr) { + flags = sighashOptions[i].flags; + return true; + } + } + + return false; +} + +uint256 ParseHashUO(std::map& o, std::string strKey) +{ + if (!o.count(strKey)) + return 0; + return ParseHashUV(o[strKey], strKey); +} + +std::vector ParseHexUO(std::map& o, std::string strKey) +{ + if (!o.count(strKey)) { + std::vector emptyVec; + return emptyVec; + } + return ParseHexUV(o[strKey], strKey); +} + +static void MutateTxSign(CMutableTransaction& tx, const std::string& flagStr) +{ + int nHashType = SIGHASH_ALL; + + if (flagStr.size() > 0) + if (!findSighashFlags(nHashType, flagStr)) + throw std::runtime_error("unknown sighash flag/sign option"); + + std::vector txVariants; + txVariants.push_back(tx); + + // mergedTx will end up with all the signatures; it + // starts as a clone of the raw tx: + CMutableTransaction mergedTx(txVariants[0]); + bool fComplete = true; + CCoinsView viewDummy; + CCoinsViewCache view(&viewDummy); + + if (!registers.count("privatekeys")) + throw std::runtime_error("privatekeys register variable must be set."); + bool fGivenKeys = false; + CBasicKeyStore tempKeystore; + UniValue keysObj = registers["privatekeys"]; + fGivenKeys = true; + + for (unsigned int kidx = 0; kidx < keysObj.size(); kidx++) { + if (!keysObj[kidx].isStr()) + throw std::runtime_error("privatekey not a string"); + CBitcoinSecret vchSecret; + bool fGood = vchSecret.SetString(keysObj[kidx].getValStr()); + if (!fGood) + throw std::runtime_error("privatekey not valid"); + + CKey key = vchSecret.GetKey(); + tempKeystore.AddKey(key); + } + + // Add previous txouts given in the RPC call: + if (!registers.count("prevtxs")) + throw std::runtime_error("prevtxs register variable must be set."); + UniValue prevtxsObj = registers["prevtxs"]; + { + for (unsigned int previdx = 0; previdx < prevtxsObj.size(); previdx++) { + UniValue prevOut = prevtxsObj[previdx]; + if (!prevOut.isObject()) + throw std::runtime_error("expected prevtxs internal object"); + + std::map types = boost::assign::map_list_of("txid", UniValue::VSTR)("vout", UniValue::VNUM)("scriptPubKey", UniValue::VSTR); + if (!prevOut.checkObject(types)) + throw std::runtime_error("prevtxs internal object typecheck fail"); + + uint256 txid = ParseHashUV(prevOut["txid"], "txid"); + + int nOut = atoi(prevOut["vout"].getValStr()); + if (nOut < 0) + throw std::runtime_error("vout must be positive"); + + std::vector pkData(ParseHexUV(prevOut["scriptPubKey"], "scriptPubKey")); + CScript scriptPubKey(pkData.begin(), pkData.end()); + + { + CCoinsModifier coins = view.ModifyCoins(txid); + if (coins->IsAvailable(nOut) && coins->vout[nOut].scriptPubKey != scriptPubKey) { + std::string err("Previous output scriptPubKey mismatch:\n"); + err = err + coins->vout[nOut].scriptPubKey.ToString() + "\nvs:\n" + + scriptPubKey.ToString(); + throw std::runtime_error(err); + } + if ((unsigned int)nOut >= coins->vout.size()) + coins->vout.resize(nOut + 1); + coins->vout[nOut].scriptPubKey = scriptPubKey; + coins->vout[nOut].nValue = 0; // we don't know the actual output value + } + + // if redeemScript given and private keys given, + // add redeemScript to the tempKeystore so it can be signed: + if (fGivenKeys && scriptPubKey.IsPayToScriptHash() && + prevOut.exists("redeemScript")) { + UniValue v = prevOut["redeemScript"]; + std::vector rsData(ParseHexUV(v, "redeemScript")); + CScript redeemScript(rsData.begin(), rsData.end()); + tempKeystore.AddCScript(redeemScript); + } + } + } + + const CKeyStore& keystore = tempKeystore; + + bool fHashSingle = ((nHashType & ~SIGHASH_ANYONECANPAY) == SIGHASH_SINGLE); + + // Sign what we can: + for (unsigned int i = 0; i < mergedTx.vin.size(); i++) { + CTxIn& txin = mergedTx.vin[i]; + const CCoins* coins = view.AccessCoins(txin.prevout.hash); + if (!coins || !coins->IsAvailable(txin.prevout.n)) { + fComplete = false; + continue; + } + const CScript& prevPubKey = coins->vout[txin.prevout.n].scriptPubKey; + + txin.scriptSig.clear(); + // Only sign SIGHASH_SINGLE if there's a corresponding output: + if (!fHashSingle || (i < mergedTx.vout.size())) + SignSignature(keystore, prevPubKey, mergedTx, i, nHashType); + + // ... and merge in other signatures: + for (const CTransaction& txv : txVariants) { + txin.scriptSig = CombineSignatures(prevPubKey, mergedTx, i, txin.scriptSig, txv.vin[i].scriptSig); + } + if (!VerifyScript(txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(&mergedTx, i))) + fComplete = false; + } + + if (fComplete) { + // do nothing... for now + // perhaps store this for later optional JSON output + } + + tx = mergedTx; +} + +class Secp256k1Init +{ + ECCVerifyHandle globalVerifyHandle; + +public: + Secp256k1Init() { + ECC_Start(); + } + ~Secp256k1Init() { + ECC_Stop(); + } +}; + +static void MutateTx(CMutableTransaction& tx, const std::string& command, const std::string& commandVal) +{ + boost::scoped_ptr ecc; + if (command == "nversion") + MutateTxVersion(tx, commandVal); + else if (command == "locktime") + MutateTxLocktime(tx, commandVal); + + else if (command == "delin") + MutateTxDelInput(tx, commandVal); + else if (command == "in") + MutateTxAddInput(tx, commandVal); + + else if (command == "delout") + MutateTxDelOutput(tx, commandVal); + else if (command == "outaddr") + MutateTxAddOutAddr(tx, commandVal); + else if (command == "outscript") + MutateTxAddOutScript(tx, commandVal); + + else if (command == "sign"){ + if (!ecc) { ecc.reset(new Secp256k1Init()); } + MutateTxSign(tx, commandVal); + } + + else if (command == "load") + RegisterLoad(commandVal); + + else if (command == "set") + RegisterSet(commandVal); + + else + throw std::runtime_error("unknown command"); +} + +static void OutputTxJSON(const CTransaction& tx) +{ + UniValue entry(UniValue::VOBJ); + TxToUniv(tx, 0, entry); + + std::string jsonOutput = entry.write(4); + fprintf(stdout, "%s\n", jsonOutput.c_str()); +} + +static void OutputTxHash(const CTransaction& tx) +{ + std::string strHexHash = tx.GetHash().GetHex(); // the hex-encoded transaction hash (aka the transaction id) + + fprintf(stdout, "%s\n", strHexHash.c_str()); +} + +static void OutputTxHex(const CTransaction& tx) +{ + std::string strHex = EncodeHexTx(tx); + + fprintf(stdout, "%s\n", strHex.c_str()); +} + +static void OutputTx(const CTransaction& tx) +{ + if (GetBoolArg("-json", false)) + OutputTxJSON(tx); + else if (GetBoolArg("-txid", false)) + OutputTxHash(tx); + else + OutputTxHex(tx); +} + +static std::string readStdin() +{ + char buf[4096]; + std::string ret; + + while (!feof(stdin)) { + size_t bread = fread(buf, 1, sizeof(buf), stdin); + ret.append(buf, bread); + if (bread < sizeof(buf)) + break; + } + + if (ferror(stdin)) + throw std::runtime_error("error reading stdin"); + + boost::algorithm::trim_right(ret); + + return ret; +} + +static int CommandLineRawTx(int argc, char* argv[]) +{ + std::string strPrint; + int nRet = 0; + try { + // Skip switches; Permit common stdin convention "-" + while (argc > 1 && IsSwitchChar(argv[1][0]) && + (argv[1][1] != 0)) { + argc--; + argv++; + } + + CTransaction txDecodeTmp; + int startArg; + + if (!fCreateBlank) { + // require at least one param + if (argc < 2) + throw std::runtime_error("too few parameters"); + + // param: hex-encoded pivx transaction + std::string strHexTx(argv[1]); + if (strHexTx == "-") // "-" implies standard input + strHexTx = readStdin(); + + if (!DecodeHexTx(txDecodeTmp, strHexTx)) + throw std::runtime_error("invalid transaction encoding"); + + startArg = 2; + } else + startArg = 1; + + CMutableTransaction tx(txDecodeTmp); + + for (int i = startArg; i < argc; i++) { + std::string arg = argv[i]; + std::string key, value; + size_t eqpos = arg.find('='); + if (eqpos == std::string::npos) + key = arg; + else { + key = arg.substr(0, eqpos); + value = arg.substr(eqpos + 1); + } + + MutateTx(tx, key, value); + } + + OutputTx(tx); + } + + catch (const boost::thread_interrupted&) { + throw; + } catch (const std::exception& e) { + strPrint = std::string("error: ") + e.what(); + nRet = EXIT_FAILURE; + } catch (...) { + PrintExceptionContinue(NULL, "CommandLineRawTx()"); + throw; + } + + if (strPrint != "") { + fprintf((nRet == 0 ? stdout : stderr), "%s\n", strPrint.c_str()); + } + return nRet; +} + +int main(int argc, char* argv[]) +{ + SetupEnvironment(); + + try { + if (!AppInitRawTx(argc, argv)) + return EXIT_FAILURE; + } catch (const std::exception& e) { + PrintExceptionContinue(&e, "AppInitRawTx()"); + return EXIT_FAILURE; + } catch (...) { + PrintExceptionContinue(NULL, "AppInitRawTx()"); + return EXIT_FAILURE; + } + + int ret = EXIT_FAILURE; + try { + ret = CommandLineRawTx(argc, argv); + } catch (const std::exception& e) { + PrintExceptionContinue(&e, "CommandLineRawTx()"); + } catch (...) { + PrintExceptionContinue(NULL, "CommandLineRawTx()"); + } + return ret; +} diff --git a/src/pivxd-res.rc b/src/pivxd-res.rc new file mode 100644 index 0000000..3de3882 --- /dev/null +++ b/src/pivxd-res.rc @@ -0,0 +1,35 @@ +#include // needed for VERSIONINFO +#include "clientversion.h" // holds the needed client version information + +#define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD +#define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) +#define VER_FILEVERSION VER_PRODUCTVERSION +#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR + +VS_VERSION_INFO VERSIONINFO +FILEVERSION VER_FILEVERSION +PRODUCTVERSION VER_PRODUCTVERSION +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" // U.S. English - multilingual (hex) + BEGIN + VALUE "CompanyName", "PIVX" + VALUE "FileDescription", "pivxd (OSS daemon/client for PIVX)" + VALUE "FileVersion", VER_FILEVERSION_STR + VALUE "InternalName", "pivxd" + VALUE "LegalCopyright", COPYRIGHT_STR + VALUE "LegalTrademarks1", "Distributed under the MIT/X11 software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." + VALUE "OriginalFilename", "pivxd.exe" + VALUE "ProductName", "pivxd" + VALUE "ProductVersion", VER_PRODUCTVERSION_STR + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1252 // language neutral - multilingual (decimal) + END +END diff --git a/src/pivxd.cpp b/src/pivxd.cpp new file mode 100644 index 0000000..9e4d1e8 --- /dev/null +++ b/src/pivxd.cpp @@ -0,0 +1,168 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2014 The Bitcoin developers +// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2015-2019 The PIVX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "clientversion.h" +#include "init.h" +#include "main.h" +#include "masternodeconfig.h" +#include "noui.h" +#include "rpc/server.h" +#include "guiinterface.h" +#include "util.h" +#include "httpserver.h" +#include "httprpc.h" + +#include +#include +#include + +#include + +/* Introduction text for doxygen: */ + +/*! \mainpage Developer documentation + * + * \section intro_sec Introduction + * + * This is the developer documentation of the reference client for an experimental new digital currency called PIVX (http://www.pivx.org), + * which enables instant payments to anyone, anywhere in the world. PIVX uses peer-to-peer technology to operate + * with no central authority: managing transactions and issuing money are carried out collectively by the network. + * + * The software is a community-driven open source project, released under the MIT license. + * + * \section Navigation + * Use the buttons Namespaces, Classes or Files at the top of the page to start navigating the code. + */ + +static bool fDaemon; + +void WaitForShutdown() +{ + bool fShutdown = ShutdownRequested(); + // Tell the main threads to shutdown. + while (!fShutdown) { + MilliSleep(200); + fShutdown = ShutdownRequested(); + } + Interrupt(); +} + +////////////////////////////////////////////////////////////////////////////// +// +// Start +// +bool AppInit(int argc, char* argv[]) +{ + bool fRet = false; + + // + // Parameters + // + // If Qt is used, parameters/pivx.conf are parsed in qt/pivx.cpp's main() + ParseParameters(argc, argv); + + // Process help and version before taking care about datadir + if (mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version")) { + std::string strUsage = _("Pivx Core Daemon") + " " + _("version") + " " + FormatFullVersion() + "\n"; + + if (mapArgs.count("-version")) { + strUsage += LicenseInfo(); + } else { + strUsage += "\n" + _("Usage:") + "\n" + + " pivxd [options] " + _("Start Pivx Core Daemon") + "\n"; + + strUsage += "\n" + HelpMessage(HMM_BITCOIND); + } + + fprintf(stdout, "%s", strUsage.c_str()); + return false; + } + + try { + if (!boost::filesystem::is_directory(GetDataDir(false))) { + fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", mapArgs["-datadir"].c_str()); + return false; + } + try { + ReadConfigFile(mapArgs, mapMultiArgs); + } catch (const std::exception& e) { + fprintf(stderr, "Error reading configuration file: %s\n", e.what()); + return false; + } + // Check for -testnet or -regtest parameter (Params() calls are only valid after this clause) + if (!SelectParamsFromCommandLine()) { + fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); + return false; + } + + // parse masternode.conf + std::string strErr; + if (!masternodeConfig.read(strErr)) { + fprintf(stderr, "Error reading masternode configuration file: %s\n", strErr.c_str()); + return false; + } + + // Command-line RPC + bool fCommandLine = false; + for (int i = 1; i < argc; i++) + if (!IsSwitchChar(argv[i][0]) && !boost::algorithm::istarts_with(argv[i], "pivx:")) + fCommandLine = true; + + if (fCommandLine) { + fprintf(stderr, "Error: There is no RPC client functionality in pivxd anymore. Use the pivx-cli utility instead.\n"); + exit(1); + } +#ifndef WIN32 + fDaemon = GetBoolArg("-daemon", false); + if (fDaemon) { + fprintf(stdout, "PIVX server starting\n"); + + // Daemonize + pid_t pid = fork(); + if (pid < 0) { + fprintf(stderr, "Error: fork() returned %d errno %d\n", pid, errno); + return false; + } + if (pid > 0) // Parent process, pid is child process id + { + return true; + } + // Child process falls through to rest of initialization + + pid_t sid = setsid(); + if (sid < 0) + fprintf(stderr, "Error: setsid() returned %d errno %d\n", sid, errno); + } +#endif + SoftSetBoolArg("-server", true); + + fRet = AppInit2(); + } catch (const std::exception& e) { + PrintExceptionContinue(&e, "AppInit()"); + } catch (...) { + PrintExceptionContinue(NULL, "AppInit()"); + } + + if (!fRet) { + Interrupt(); + } else { + WaitForShutdown(); + } + Shutdown(); + + return fRet; +} + +int main(int argc, char* argv[]) +{ + SetupEnvironment(); + + // Connect pivxd signal handlers + noui_connect(); + + return (AppInit(argc, argv) ? 0 : 1); +} diff --git a/src/qt/CMakeLists.txt b/src/qt/CMakeLists.txt new file mode 100644 index 0000000..d61604d --- /dev/null +++ b/src/qt/CMakeLists.txt @@ -0,0 +1,254 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 3.10) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/forms ${CMAKE_CURRENT_SOURCE_DIR}/pivx/forms ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/forms) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") + set(CMAKE_POSITION_INDEPENDENT_CODE ON) +endif () + +find_package(Qrcode) +if (QRCODE_FOUND) + include_directories ( ${QRCODE_INCLUDE_DIR} ) + link_directories ( ${QRCODE_LIBRARY_DIRS} ) +endif() + +unset(Qt5Enables) +foreach(comp Widgets Core Gui Network LinguistTools DBus Svg Charts) + find_package(Qt5${comp}) + set(Qt5Enables "${Qt5Enables};Qt5${comp}_FOUND") + if(Qt5${comp}_FOUND) + MESSAGE(STATUS "FOUND QT5${comp}") + include_directories(${include_directories} ${Qt5${comp}_INCLUDE_DIRS} ${QT_USE_FILE}) + add_definitions(${Qt5${comp}_DEFINITIONS}) + list(APPEND Qt5_LIBRARIES ${Qt5${comp}_LIBRARIES}) + else() + MESSAGE(WARNING "Cant find Qt5${comp}") + endif() +endforeach(comp) + +if (Qt5DBus_FOUND) + add_compile_options("-DUSE_DBUS") +endif() + +if (Qt5Charts_FOUND) + add_compile_options("-DUSE_QTCHARTS") +endif() + +find_program(MOC_BIN NAMES moc moc-qt5 qt5-moc + PATHS /usr/lib/qt5/bin /usr/lib/x86_64-linux-gnu/qt5/bin /usr/local/opt/qt/bin /usr/local/opt/qt5/bin + NO_DEFAULT_PATH + NO_SYSTEM_ENVIRONMENT_PATH) +if (MOC_BIN) + MESSAGE(STATUS "FOUND MOC ${MOC_BIN}") + +endif () + +# Why isn't this done automatically?? +if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set(CMAKE_AUTOMOC_MOC_OPTIONS "-DQ_OS_MAC") +endif() + +file(GLOB LOCAL_QT_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h) +source_group("QtHeaders" FILES ${LOCAL_QT_HEADERS}) + +find_package(Protobuf REQUIRED) +if(Protobuf_FOUND) + message(STATUS "Found Protobuf compiler: ${Protobuf_PROTOC_EXECUTABLE}") + message(STATUS "Found Protobuf library: ${Protobuf_LIBRARIES}") +endif() +include_directories(${PROTOBUF_INCLUDE_DIRS}) +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS ${CMAKE_CURRENT_SOURCE_DIR}/paymentrequest.proto) + +SET(QT_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/bantablemodel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/blockexplorer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/bitcoinaddressvalidator.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/bitcoinamountfield.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/bitcoinunits.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/clientmodel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/csvmodelwriter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/governancepage.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/guiutil.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/intro.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/networkstyle.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/notificator.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/optionsdialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/optionsmodel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/peertablemodel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/platformstyle.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/qvalidatedlineedit.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/qvaluecombobox.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rpcconsole.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/splashscreen.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/trafficgraphwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/utilitydialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/addressbookpage.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/addresstablemodel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/askpassphrasedialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/coincontroldialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/zpivcontroldialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/coincontroltreewidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/proposalframe.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/editaddressdialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/openuridialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/paymentrequestplus.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/paymentserver.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/recentrequeststablemodel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/transactiondesc.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/transactionfilterproxy.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/transactionrecord.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/transactiontablemodel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/walletmodel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/walletmodeltransaction.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/zpivcontroldialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/pivxgui.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/loadingdialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/pwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/guitransactionsutils.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/snackbar.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/navmenuwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/lockunlock.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/receivedialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/furabstractlistitemdelegate.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/txviewholder.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/qtutils.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/expandablebutton.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/walletpassworddialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/topbar.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/txrow.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/addressfilterproxymodel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/dashboardwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/coincontrolpivwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/addresslabelrow.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/contactdropdownrow.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/contactsdropdown.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/optionbutton.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/mninfodialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/coldstakingmodel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/mnmodel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/masternodewizarddialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/mnrow.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/masternodeswidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/sendchangeaddressdialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/sendconfirmdialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/sendcustomfeedialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/sendchangeaddressdialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/sendmultirow.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/send.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/addnewaddressdialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/addnewcontactdialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/requestdialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/receivewidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/myaddressrow.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/csrow.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/addressholder.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/tooltipmenu.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/addresseswidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/defaultdialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/denomgenerationdialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/privacywidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/coldstakingwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingsbackupwallet.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingsbittoolwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingsconsolewidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingsdisplayoptionswidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingsfaqwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingsinformationwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingsmainoptionswidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingsmultisenddialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingsmultisendwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingssignmessagewidgets.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingswalletoptionswidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingswalletrepairwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingswidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/welcomecontentwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/splash.cpp + ) + +# Workaround until the old rpcconsole UI window is fully removed +set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings/settingsconsolewidget.cpp PROPERTY SKIP_AUTOMOC ON) +execute_process( + COMMAND ${MOC_BIN} -o moc_settingsconsolewidget.cpp settingsconsolewidget.h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings +) + +execute_process( + COMMAND ${MOC_BIN} -o moc_pfborderimage.cpp pfborderimage.h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/pivx +) +list(APPEND QT_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/pivx/moc_pfborderimage.cpp) + +if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + list(APPEND QT_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/macdockiconhandler.mm) + list(APPEND QT_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/macnotificationhandler.mm) +endif() + +add_library(qt_stuff STATIC ${BitcoinHeaders} ${QtHeaders} ${QT_SOURCES} ${PROTO_SRCS} ${PROTO_HDRS}) +target_include_directories(qt_stuff PUBLIC ${CMAKE_SOURCE_DIR}/src + ${CMAKE_SOURCE_DIR}/src/leveldb/include + ${CMAKE_SOURCE_DIR}/src/univalue/include + ${CMAKE_SOURCE_DIR}/src/secp256k1/include + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/pivx + ${CMAKE_CURRENT_SOURCE_DIR}/pivx/settings + ${OPENSSL_INCLUDE_DIR} + ${BerkeleyDB_INCLUDE_DIRS} + ) +set_property(TARGET qt_stuff PROPERTY CXX_STANDARD 11) + +file(GLOB QT_TRANSLATIONS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/*.ts) + +get_filename_component(QM_FILES_BINARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/locale" ABSOLUTE) +set_source_files_properties(${QT_TRANSLATIONS_FILES} PROPERTIES OUTPUT_LOCATION "${QM_FILES_BINARY_DIR}") + +QT5_ADD_TRANSLATION(QM ${QT_TRANSLATIONS_FILES}) +add_custom_target(translations_target ALL DEPENDS ${QM}) + +QT5_ADD_RESOURCES(QRC_RESOURCE pivx.qrc) +QT5_ADD_RESOURCES(QRC_LOCALE_RESOURCE pivx_locale.qrc) + +add_executable(pivx-qt pivx.cpp ${QM} ${QRC_RESOURCE} ${QRC_LOCALE_RESOURCE}) +add_dependencies(pivx-qt translations_target libunivalue libsecp256k1 leveldb leveldb_sse42 memenv) +target_include_directories(pivx-qt PUBLIC ${ENDIAN_INCLUDES}) +target_link_libraries(pivx-qt + qt_stuff + univalue + SERVER_A UTIL_A WALLET_A CLI_A COMMON_A BITCOIN_CRYPTO_A ZEROCOIN_A + leveldb leveldb_sse42 memenv secp256k1 + ${BerkeleyDB_LIBRARIES} ${OPENSSL_LIBRARIES} ${Boost_LIBRARIES} ${PROTOBUF_LIBRARIES} ${LIBEVENT_LIB} + pthread + ) +if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + target_link_libraries(pivx-qt "-framework Cocoa") +endif() +if(GMP_FOUND) + target_link_libraries(pivx-qt ${GMP_LIBRARY}) + target_include_directories(pivx-qt PUBLIC ${GMP_INCLUDE_DIR}) +endif() +if(ZMQ_FOUND) + target_link_libraries(pivx-qt ZMQ_A ${ZMQ_LIB}) + target_include_directories(pivx-qt PUBLIC ${ZMQ_INCLUDE_DIR}) +endif() +if (QRCODE_FOUND) + target_link_libraries(pivx-qt ${QRCODE_LIB}) + target_include_directories(pivx-qt PUBLIC ${QRCODE_INCLUDE_DIR}) +endif() +if(MINIUPNP_FOUND) + target_compile_definitions(pivx-qt PUBLIC "-DSTATICLIB -DMINIUPNP_STATICLIB") + target_link_libraries(pivx-qt ${MINIUPNP_LIBRARY}) + target_include_directories(pivx-qt PUBLIC ${MINIUPNP_INCLUDE_DIR}) +endif() + +target_link_libraries(pivx-qt Qt5::Gui Qt5::Core Qt5::Widgets Qt5::Network Qt5::Svg ${QT_LIBRARIES}) +if (Qt5DBus_FOUND) + target_link_libraries(pivx-qt Qt5::DBus ${QT_LIBRARIES}) +endif() +if (Qt5Charts_FOUND) + target_link_libraries(pivx-qt Qt5::Charts ${QT_LIBRARIES}) +endif() diff --git a/src/qt/bantablemodel.cpp b/src/qt/bantablemodel.cpp new file mode 100644 index 0000000..5bc703d --- /dev/null +++ b/src/qt/bantablemodel.cpp @@ -0,0 +1,185 @@ +// Copyright (c) 2011-2015 The Bitcoin Core developers +// Copyright (c) 2018 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "bantablemodel.h" + +#include "clientmodel.h" +#include "guiconstants.h" +#include "guiutil.h" + +#include "sync.h" +#include "utiltime.h" + +#include +#include + +bool BannedNodeLessThan::operator()(const CCombinedBan& left, const CCombinedBan& right) const +{ + const CCombinedBan* pLeft = &left; + const CCombinedBan* pRight = &right; + + if (order == Qt::DescendingOrder) + std::swap(pLeft, pRight); + + switch(column) + { + case BanTableModel::Address: + return pLeft->subnet.ToString().compare(pRight->subnet.ToString()) < 0; + case BanTableModel::Bantime: + return pLeft->banEntry.nBanUntil < pRight->banEntry.nBanUntil; + } + + return false; +} + +// private implementation +class BanTablePriv +{ +public: + /** Local cache of peer information */ + QList cachedBanlist; + /** Column to sort nodes by */ + int sortColumn; + /** Order (ascending or descending) to sort nodes by */ + Qt::SortOrder sortOrder; + + /** Pull a full list of banned nodes from CNode into our cache */ + void refreshBanlist() + { + banmap_t banMap; + CNode::GetBanned(banMap); + + cachedBanlist.clear(); + cachedBanlist.reserve(banMap.size()); + for (banmap_t::iterator it = banMap.begin(); it != banMap.end(); it++) + { + CCombinedBan banEntry; + banEntry.subnet = (*it).first; + banEntry.banEntry = (*it).second; + cachedBanlist.append(banEntry); + } + + if (sortColumn >= 0) + // sort cachedBanlist (use stable sort to prevent rows jumping around unneceesarily) + qStableSort(cachedBanlist.begin(), cachedBanlist.end(), BannedNodeLessThan(sortColumn, sortOrder)); + } + + int size() const + { + return cachedBanlist.size(); + } + + CCombinedBan *index(int idx) + { + if (idx >= 0 && idx < cachedBanlist.size()) + return &cachedBanlist[idx]; + + return 0; + } +}; + +BanTableModel::BanTableModel(ClientModel *parent) : + QAbstractTableModel(parent), + clientModel(parent) +{ + columns << tr("IP/Netmask") << tr("Banned Until"); + priv.reset(new BanTablePriv()); + // default to unsorted + priv->sortColumn = -1; + + // load initial data + refresh(); +} + +BanTableModel::~BanTableModel() +{ + // Intentionally left empty +} + +int BanTableModel::rowCount(const QModelIndex &parent) const +{ + Q_UNUSED(parent); + return priv->size(); +} + +int BanTableModel::columnCount(const QModelIndex &parent) const +{ + Q_UNUSED(parent); + return columns.length(); +} + +QVariant BanTableModel::data(const QModelIndex &index, int role) const +{ + if(!index.isValid()) + return QVariant(); + + CCombinedBan *rec = static_cast(index.internalPointer()); + + if (role == Qt::DisplayRole) { + switch(index.column()) + { + case Address: + return QString::fromStdString(rec->subnet.ToString()); + case Bantime: + QDateTime date = QDateTime::fromMSecsSinceEpoch(0); + date = date.addSecs(rec->banEntry.nBanUntil); + return date.toString(Qt::SystemLocaleLongDate); + } + } + + return QVariant(); +} + +QVariant BanTableModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if(orientation == Qt::Horizontal) + { + if(role == Qt::DisplayRole && section < columns.size()) + { + return columns[section]; + } + } + return QVariant(); +} + +Qt::ItemFlags BanTableModel::flags(const QModelIndex &index) const +{ + if(!index.isValid()) + return 0; + + Qt::ItemFlags retval = Qt::ItemIsSelectable | Qt::ItemIsEnabled; + return retval; +} + +QModelIndex BanTableModel::index(int row, int column, const QModelIndex &parent) const +{ + Q_UNUSED(parent); + CCombinedBan *data = priv->index(row); + + if (data) + return createIndex(row, column, data); + return QModelIndex(); +} + +void BanTableModel::refresh() +{ + Q_EMIT layoutAboutToBeChanged(); + priv->refreshBanlist(); + Q_EMIT layoutChanged(); +} + +void BanTableModel::sort(int column, Qt::SortOrder order) +{ + priv->sortColumn = column; + priv->sortOrder = order; + refresh(); +} + +bool BanTableModel::shouldShow() +{ + if (priv->size() > 0) + return true; + return false; +} diff --git a/src/qt/bantablemodel.h b/src/qt/bantablemodel.h new file mode 100644 index 0000000..3faca2a --- /dev/null +++ b/src/qt/bantablemodel.h @@ -0,0 +1,74 @@ +// Copyright (c) 2011-2013 The Bitcoin Core developers +// Copyright (c) 2018 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_QT_BANTABLEMODEL_H +#define BITCOIN_QT_BANTABLEMODEL_H + +#include "net.h" + +#include +#include + +class ClientModel; +class BanTablePriv; + +struct CCombinedBan { + CSubNet subnet; + CBanEntry banEntry; +}; + +class BannedNodeLessThan +{ +public: + BannedNodeLessThan(int nColumn, Qt::SortOrder fOrder) : + column(nColumn), order(fOrder) {} + bool operator()(const CCombinedBan& left, const CCombinedBan& right) const; + +private: + int column; + Qt::SortOrder order; +}; + +/** + Qt model providing information about connected peers, similar to the + "getpeerinfo" RPC call. Used by the rpc console UI. + */ +class BanTableModel : public QAbstractTableModel +{ + Q_OBJECT + +public: + explicit BanTableModel(ClientModel *parent = 0); + ~BanTableModel(); + void startAutoRefresh(); + void stopAutoRefresh(); + + enum ColumnIndex { + Address = 0, + Bantime = 1 + }; + + /** @name Methods overridden from QAbstractTableModel + @{*/ + int rowCount(const QModelIndex &parent) const; + int columnCount(const QModelIndex &parent) const; + QVariant data(const QModelIndex &index, int role) const; + QVariant headerData(int section, Qt::Orientation orientation, int role) const; + QModelIndex index(int row, int column, const QModelIndex &parent) const; + Qt::ItemFlags flags(const QModelIndex &index) const; + void sort(int column, Qt::SortOrder order); + bool shouldShow(); + /*@}*/ + +public Q_SLOTS: + void refresh(); + +private: + ClientModel *clientModel; + QStringList columns; + std::unique_ptr priv; +}; + +#endif // BITCOIN_QT_BANTABLEMODEL_H diff --git a/src/qt/forms/governancepage.ui b/src/qt/forms/governancepage.ui new file mode 100644 index 0000000..a19d8c2 --- /dev/null +++ b/src/qt/forms/governancepage.ui @@ -0,0 +1,340 @@ + + + GovernancePage + + + + 0 + 0 + 968 + 457 + + + + Form + + + + 9 + + + + + 0 + + + + + + 0 + + + + + + + + 464 + 60 + + + + + 16777215 + 60 + + + + + 20 + 75 + true + + + + GOVERNANCE + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 464 + 60 + + + + + 16777215 + 60 + + + + + 14 + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + 6 + + + + + + 0 + + + 0 + + + + + + + + + + 0 + 1 + + + + QFrame::NoFrame + + + QFrame::Plain + + + 0 + + + Qt::ScrollBarAlwaysOff + + + QAbstractScrollArea::AdjustIgnored + + + true + + + + + 0 + 0 + 742 + 282 + + + + + 0 + 1 + + + + + 0 + + + QLayout::SetDefaultConstraint + + + 0 + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + Update Proposals + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + Next super block: + + + + + + + 0 + + + + + + + Blocks to next super block: + + + + + + + 0 + + + + + + + Days to budget payout (estimate): + + + + + + + 0 + + + + + + + Allotted budget: + + + + + + + 0 + + + + + + + Budget left: + + + + + + + 0 + + + + + + + Masternodes count: + + + + + + + 0 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/qt/forms/zpivcontroldialog.ui b/src/qt/forms/zpivcontroldialog.ui new file mode 100644 index 0000000..4d25242 --- /dev/null +++ b/src/qt/forms/zpivcontroldialog.ui @@ -0,0 +1,431 @@ + + + ZPivControlDialog + + + + 0 + 0 + 681 + 550 + + + + + 681 + 550 + + + + Select zPIV to Spend + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 12 + + + 0 + + + 20 + + + + + 0 + + + 20 + + + 30 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + padding-left:30px; + + + Coin Control + + + Qt::AlignCenter + + + 7 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + PushButton + + + + + + + + + -1 + + + 20 + + + 20 + + + 10 + + + + + + + + zPiv + + + + + + + 0.00 + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + + + + Quantity: + + + + + + + 0 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 0 + + + 20 + + + 20 + + + 10 + + + + + + 180 + 40 + + + + Select/Deselect All + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 20 + + + 20 + + + + + + 0 + 0 + + + + + 0 + 250 + + + + true + + + true + + + 6 + + + 100 + + + + Select + + + + + Denomination + + + + + zPIV ID + + + + + zPIV Version + + + + + Confirmations + + + + + Is Spendable + + + + + + + + + + 0 + + + 20 + + + 26 + + + + + Qt::Horizontal + + + + 558 + 20 + + + + + + + + + 0 + 0 + + + + + 150 + 35 + + + + Qt::Horizontal + + + QDialogButtonBox::Ok + + + + + + + + + + + + + + buttonBox + accepted() + ZPivControlDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + ZPivControlDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/qt/governancepage.cpp b/src/qt/governancepage.cpp new file mode 100644 index 0000000..0546ad7 --- /dev/null +++ b/src/qt/governancepage.cpp @@ -0,0 +1,148 @@ +// Copyright (c) 2018-2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "governancepage.h" +#include "ui_governancepage.h" + +#include "activemasternode.h" +#include "chainparams.h" +#include "clientmodel.h" +#include "masternode-budget.h" +#include "masternode-sync.h" +#include "masternodeconfig.h" +#include "masternodeman.h" +#include "utilmoneystr.h" +#include "walletmodel.h" +#include "askpassphrasedialog.h" +#include "proposalframe.h" + +#include +#include +#include +#include + +GovernancePage::GovernancePage(QWidget* parent) : QWidget(parent), + ui(new Ui::GovernancePage), + clientModel(0), + walletModel(0) +{ + ui->setupUi(this); + + timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(updateProposalList())); + timer->start(100000); + fLockUpdating = false; +} + + +GovernancePage::~GovernancePage() +{ + delete ui; +} + +void GovernancePage::setClientModel(ClientModel* model) +{ + this->clientModel = model; +} + +void GovernancePage::setWalletModel(WalletModel* model) +{ + this->walletModel = model; +} + +void GovernancePage::lockUpdating(bool lock) +{ + fLockUpdating = lock; +} + +struct sortProposalsByVotes +{ + bool operator() (const CBudgetProposal* left, const CBudgetProposal* right) + { + if (left != right) + return (left->GetYeas() - left->GetNays() > right->GetYeas() - right->GetNays()); + return (left->nFeeTXHash > right->nFeeTXHash); + } +}; + +void GovernancePage::updateProposalList() +{ + if (fLockUpdating) return; + + QLayoutItem* child; + while ((child = ui->proposalGrid->takeAt(0)) != 0) { + if (child->widget() != 0) + { + delete child->widget(); + } + delete child; + } + + std::vector allotedProposals = budget.GetBudget(); + CAmount nTotalAllotted = 0; + std::vector proposalsList = budget.GetAllProposals(); + std::sort (proposalsList.begin(), proposalsList.end(), sortProposalsByVotes()); + int nRow = 0; + CBlockIndex* pindexPrev; + { + LOCK(cs_main); + pindexPrev = chainActive.Tip(); + } + if (!pindexPrev) return; + int nBlockStart = pindexPrev->nHeight - pindexPrev->nHeight % Params().GetBudgetCycleBlocks() + Params().GetBudgetCycleBlocks(); + int nBlocksLeft = nBlockStart - pindexPrev->nHeight; + int nBlockEnd = nBlockStart + Params().GetBudgetCycleBlocks() - 1; + int mnCount = mnodeman.CountEnabled(ActiveProtocol()); + + for (CBudgetProposal* pbudgetProposal : proposalsList) { + if (!pbudgetProposal->fValid) continue; + if (pbudgetProposal->GetRemainingPaymentCount() < 1) continue; + + ProposalFrame* proposalFrame = new ProposalFrame(); + proposalFrame->setWalletModel(walletModel); + proposalFrame->setProposal(pbudgetProposal); + proposalFrame->setGovernancePage(this); + + if (std::find(allotedProposals.begin(), allotedProposals.end(), pbudgetProposal) != allotedProposals.end()) { + nTotalAllotted += pbudgetProposal->GetAllotted(); + proposalFrame->setObjectName(QStringLiteral("proposalFramePassing")); + } else if (!pbudgetProposal->IsEstablished()) { + proposalFrame->setObjectName(QStringLiteral("proposalFrameNotEstablished")); + } else if (pbudgetProposal->IsPassing(pindexPrev, nBlockStart, nBlockEnd, mnCount)) { + proposalFrame->setObjectName(QStringLiteral("proposalFramePassingUnfunded")); + } else { + proposalFrame->setObjectName(QStringLiteral("proposalFrame")); + } + proposalFrame->setFrameShape(QFrame::StyledPanel); + + if (extendedProposal == pbudgetProposal) + proposalFrame->extend(); + proposalFrame->setMaximumHeight(150); + ui->proposalGrid->addWidget(proposalFrame, nRow); + + ++nRow; + } + + ui->next_superblock_value->setText(QString::number(nBlockStart)); + ui->blocks_before_super_value->setText(QString::number(nBlocksLeft)); + ui->time_before_super_value->setText(QString::number(nBlocksLeft/60/24)); + ui->alloted_budget_value->setText(QString::number(nTotalAllotted/COIN)); + ui->unallocated_budget_value->setText(QString::number((budget.GetTotalBudget(pindexPrev->nHeight) - nTotalAllotted)/COIN)); + ui->masternode_count_value->setText(QString::number(mnodeman.CountEnabled(ActiveProtocol()))); +} + +void GovernancePage::setExtendedProposal(CBudgetProposal* proposal) +{ + bool update = false; + if (extendedProposal != proposal) + update = true; + extendedProposal = proposal; + if (update) + updateProposalList(); +} + +void GovernancePage::on_UpdateButton_clicked() +{ + updateProposalList(); +} diff --git a/src/qt/governancepage.h b/src/qt/governancepage.h new file mode 100644 index 0000000..95fd70b --- /dev/null +++ b/src/qt/governancepage.h @@ -0,0 +1,70 @@ +// Copyright (c) 2018 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_QT_GOVERNANCEPAGE_H +#define BITCOIN_QT_GOVERNANCEPAGE_H + +#include "masternode.h" +#include "platformstyle.h" +#include "sync.h" +#include "util.h" + +#include +#include +#include +#include +#include +#include +#include + +class ClientModel; +class WalletModel; +class CBudgetProposal; + +namespace Ui +{ + class GovernancePage; +} + +QT_BEGIN_NAMESPACE +class QModelIndex; +QT_END_NAMESPACE + +class GovernancePage : public QWidget +{ + Q_OBJECT + +public: + explicit GovernancePage(QWidget* parent = 0); + ~GovernancePage(); + + void setClientModel(ClientModel* clientModel); + void setWalletModel(WalletModel* walletModel); + void setExtendedProposal(CBudgetProposal* proposal); + void lockUpdating(bool lock); + +private: + QMenu* contextMenu; + int64_t nTimeFilterUpdated; + bool fFilterUpdated; + bool fLockUpdating; + +public Q_SLOTS: + void updateProposalList(); + +Q_SIGNALS: + +private: + QTimer* timer; + Ui::GovernancePage* ui; + ClientModel* clientModel; + WalletModel* walletModel; + QString strCurrentFilter; + CBudgetProposal* extendedProposal; + +private Q_SLOTS: + void on_UpdateButton_clicked(); +}; + +#endif // BITCOIN_QT_GOVERNANCEPAGE_H diff --git a/src/qt/locale/pivx_bg.ts b/src/qt/locale/pivx_bg.ts new file mode 100644 index 0000000..a133c45 --- /dev/null +++ b/src/qt/locale/pivx_bg.ts @@ -0,0 +1,4195 @@ + + + AddNewAddressDialog + + Address + ÐÐ´Ñ€ÐµÑ + + + + AddNewContactDialog + + TextLabel + ТекÑтовЕтикет + + + + AddressBookPage + + Right-click to edit address or label + ДеÑен клик, за промÑна на Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ етикет. + + + Create a new address + Създайте нов Ð°Ð´Ñ€ÐµÑ + + + &New + &Ðов + + + Copy the currently selected address to the system clipboard + Копиране на избраните адреÑи в ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ Ð±ÑƒÑ„ÐµÑ€ + + + &Copy + &Копирай + + + Delete the currently selected address from the list + Изтриване на избраните адреÑи от ÑпиÑъка + + + &Delete + &Изтрий + + + Export the data in the current tab to a file + ЕкÑпортиране информациÑта от ÑÐµÐ³Ð°ÑˆÐ½Ð¸Ñ Ñ‚Ð°Ð± във файл + + + &Export + &ЕкÑпортиране + + + C&lose + &Затвори + + + Choose the address to send coins to + Изберете адреÑ, на който да пратите монети + + + Choose the address to receive coins with + Изберете адреÑ, в който да получавате монети + + + C&hoose + Из&бери + + + Sending addresses + Изпращаш Ð°Ð´Ñ€ÐµÑ + + + Receiving addresses + Получаващ Ð°Ð´Ñ€ÐµÑ + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Това Ñа вашите PIVX адреÑи за изпращане на плащаниÑ. Винаги проверÑвайте количеÑтвото и адреÑа на получателÑ, преди да изпратите монети. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Това Ñа вашите PIVX адреÑи за получаване на плащаниÑ. Препоръчително е да използвате нови адреÑи за получаване за вÑÑка транзакциÑ. + + + &Copy Address + &Копиране на адреÑа + + + Copy &Label + Копиране на &Етикета + + + &Edit + &Редактиране + + + Export Address List + ЕкÑпортиране на лиÑта Ñ Ð°Ð´Ñ€ÐµÑи + + + Comma separated file (*.csv) + Файлове разделени чрез Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ (*.csv) + + + Exporting Failed + ЕкÑпортирането провалено + + + There was an error trying to save the address list to %1. Please try again. + Имаше грешка при запиÑването на лиÑта Ñ Ð°Ð´Ñ€ÐµÑи в %1. МолÑ, опитайте отново. + + + + AddressLabelRow + + Form + От + + + + AddressTableModel + + Label + Етикет + + + Address + ÐÐ´Ñ€ÐµÑ + + + Date + Дата + + + (no label) + (без етикет) + + + + AddressesWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + + AskPassphraseDialog + + Passphrase Dialog + Поле за парола + + + TextLabel + ТекÑтовЕтикет + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Въведете нова паролата за портфейла.<br/>МолÑ, използвайте парола от <b>деÑет или повече Ñлучайни Ñимвола</b> или <b>оÑем или повече думи</b>. + + + Encrypt wallet + Шифрирай портфейла + + + This operation needs your wallet passphrase to unlock the wallet. + Това дейÑтвие изиÑква вашата портфейлна парола, за да отключи портфейла. + + + Unlock wallet + Отключване на портфейла + + + This operation needs your wallet passphrase to decrypt the wallet. + Това дейÑтвие изиÑква вашата портфейлна парола, за да декриптира портфейла. + + + Decrypt wallet + Декриптиране на портфейла + + + Change passphrase + Смени паролата + + + Enter the old and new passphrase to the wallet. + Въведете Ñтарата и новата пароли за портфейла. + + + Confirm wallet encryption + Потвърдете шифрирането на портфейла + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX Ñега ще Ñе затвори, за да довърши процеÑа по шифриране. Запомнете, че шифрирането на Ð²Ð°ÑˆÐ¸Ñ Ð¿Ð¾Ñ€Ñ‚Ñ„ÐµÐ¹Ð» не може напълно да защити Ð²Ð°ÑˆÐ¸Ñ PIVX от това, да бъде откраднат чрез злонамерен Ñофутуер, инфектирал Ð²Ð°ÑˆÐ¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€. + + + Are you sure you wish to encrypt your wallet? + Сигурни ли Ñте, че иÑкате да шифрирате Ð²Ð°ÑˆÐ¸Ñ Ð¿Ð¾Ñ€Ñ‚Ñ„ÐµÐ¹Ð»? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + <b>Внимание: Ðко шифрирате Ð²Ð°ÑˆÐ¸Ñ Ð¿Ð¾Ñ€Ñ‚Ñ„ÐµÐ¹Ð» и загубите вашата парола, вие ще ЗÐГУБИТЕ ВСИЧКИТЕ ВИ PIV</b>! + + + Wallet encrypted + Портфейла е шифриран + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + Ð’ÐЖÐО: Ð’Ñички резервни копиÑ, които Ñте били направили на Ð²Ð°ÑˆÐ¸Ñ Ð¿Ð¾Ñ€Ñ‚Ñ„ÐµÐ¹Ð» Ñ‚Ñ€Ñбва да бъдат заменени Ñ Ð½Ð¾Ð²Ð¾Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°Ð½Ð¸Ñ, шифриран портфейл. От ÑÑŠÐ¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð·Ð° ÑигурноÑÑ‚, предишни резервни ÐºÐ¾Ð¿Ð¸Ñ Ð½Ð° Ð½ÐµÑˆÐ¸Ñ„Ñ€Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð¿Ð¾Ñ€Ñ‚Ñ„ÐµÐ¹Ð» ще Ñтанат безполезни веднага, щом за почнете да използвате новиÑ, шифриран портфейл. + + + Wallet encryption failed + Шифрирането на портфейла - неуÑпешно + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Шифрирането на портфейла Ñе провали, поради вътрешна грешка. ВашиÑÑ‚ портфейл не беше шифриран. + + + The supplied passphrases do not match. + Попълнените пароли не Ñъвпадат. + + + Wallet unlock failed + Отключването на портфейла беше неуÑпешно + + + The passphrase entered for the wallet decryption was incorrect. + Паролата, въведена за декриптирането на портфейла, е неправилна. + + + Wallet decryption failed + Декриптирането на портфейла беше неуÑпешно + + + Wallet passphrase was successfully changed. + Паролата на портфейла беше Ñменена уÑпешно. + + + Warning: The Caps Lock key is on! + Внимание: Клавишът за главни букви е включен! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + Забранен до + + + + BlockExplorer + + Blockchain Explorer + Блокчейн Сонда + + + Back + Ðазад + + + Forward + Ðапред + + + Address / Block / Transaction + ÐÐ´Ñ€ÐµÑ / Блок / Превод + + + Search + ТърÑене + + + TextLabel + ТекÑтовЕтикет + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Ðе вÑички преводи ще бъдат показани. За да разгледате вÑички преводи, Ñ‚Ñ€Ñбва да зададете txindex=1 в ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» (pivx.conf). + + + + CSRow + + Form + От + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Общо: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Ðепознати: %5) + + + Network Alert + Мрежово ИзвеÑтие + + + + CoinControlDialog + + Quantity: + КоличеÑтво: + + + Bytes: + Байтове: + + + Fee: + ТакÑа: + + + Coin Selection + Избор на Монети + + + Dust: + ОÑтатък: + + + Change: + РеÑто: + + + Tree mode + ДървеÑен изглед + + + List mode + СпиÑъчен изглед + + + (1 locked) + (1 заключен) + + + Amount + Сума + + + 0 + 0 + + + Received with label + Получени Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚ + + + Received with address + Получени Ñ Ð°Ð´Ñ€ÐµÑ + + + Date + Дата + + + Confirmations + ÐŸÐ¾Ñ‚Ð²ÑŠÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ + + + Confirmed + Потвърдени + + + Copy address + Копирай Ð°Ð´Ñ€ÐµÑ + + + Copy label + Копирай етикет + + + Copy amount + Копирай Ñумата + + + Copy transaction ID + Копирай номер на превода + + + Lock unspent + Заключни непохарчените + + + Unlock unspent + Отключи непохарчените + + + Copy quantity + Копирай количеÑтвото + + + Copy fee + Копирай такÑата + + + Copy after fee + Копирай чиÑто + + + Copy bytes + Копирай байтовете + + + Copy priority + Копирай приоритета + + + Copy dust + Копирай оÑтатъка + + + Copy change + Копирай реÑтото + + + Please switch to "List mode" to use this function. + Преключете в "СпиÑъчен Излгед" за да използвате тази Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ + + + highest + най-виÑок + + + higher + по-виÑок + + + high + виÑок + + + medium-high + Ñредно-виÑок + + + medium + Ñреден + + + low-medium + ниÑко-Ñреден + + + low + ниÑък + + + lower + по-ниÑък + + + lowest + най-ниÑък + + + (%1 locked) + (%1 заключен) + + + none + без + + + yes + да + + + no + не + + + This label turns red, if the transaction size is greater than 1000 bytes. + Етикета е червен когато размера на превода Ð½Ð°Ð´Ñ…Ð²ÑŠÑ€Ð»Ñ 1000 байта. + + + This means a fee of at least %1 per kB is required. + Това означава, че минималната такÑа е %1 за килобайт. + + + Can vary +/- 1 byte per input. + Възможна фирма от +/- 1 байт за вход. + + + Transactions with higher priority are more likely to get included into a block. + Преводи Ñ Ð¿Ð¾-виÑок приоритет е по-вероÑтно да бъдат включени в предÑтоÑщ блок. + + + This label turns red, if the priority is smaller than "medium". + Етикета Ñтава червен, ако приоритета е по-малък от "Ñреден". + + + This label turns red, if any recipient receives an amount smaller than %1. + Етикета Ñтава червен, когато Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ Ñ‰Ðµ получи Ñума по-малка от %1. + + + Can vary +/- %1 upiv per input. + Може да има разлика от +/- %1 upiv на вх. + + + (no label) + (без етикет) + + + change from %1 (%2) + реÑто от %1 (%2) + + + (change) + (реÑто) + + + + CoinControlPivWidget + + PIV: + PIV: + + + TextLabel + ТекÑтовЕтикет + + + Quantity: + КоличеÑтво: + + + Fee: + ТакÑа: + + + Amount + Сума + + + Label + Етикет + + + Address + ÐÐ´Ñ€ÐµÑ + + + Type + Вид + + + Date + Дата + + + Confirmations + ÐŸÐ¾Ñ‚Ð²ÑŠÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ + + + Bytes: + Байтове: + + + Dust: + ОÑтатък: + + + Change: + РеÑто: + + + + ColdStakingWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + + ContactDropdownRow + + Form + От + + + + DashboardWidget + + Form + От + + + Warning + Внимание + + + TextLabel + ТекÑтовЕтикет + + + zPIV + zPIV + + + All + Ð’Ñички + + + Received + Получени + + + Sent + Изпратени + + + Mined + ИзÑечени + + + Minted + ИзÑечени + + + To yourself + Към Ñебе Ñи + + + + DefaultDialog + + Form + От + + + + DenomGenerationDialog + + Form + От + + + + EditAddressDialog + + Edit Address + Промени ÐдреÑа + + + &Label + &Етикет + + + The label associated with this address list entry + Етикета аÑоцииран Ñ Ñ‚Ð¾Ð·Ð¸ Ð°Ð´Ñ€ÐµÑ + + + &Address + &ÐÐ´Ñ€ÐµÑ + + + The address associated with this address list entry. This can only be modified for sending addresses. + ÐдреÑа аÑоцииран Ñ Ñ‚Ð¾Ð·Ð¸ адреÑ. Полето може да Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ñамо при адреÑите за изпращане. + + + New receiving address + Ðов Ð°Ð´Ñ€ÐµÑ Ð·Ð° получаване + + + New sending address + Ðов Ð°Ð´Ñ€ÐµÑ Ð·Ð° изпращане + + + Edit receiving address + Редактирай Ð°Ð´Ñ€ÐµÑ Ð·Ð° получаване + + + Edit sending address + Редактирай Ð°Ð´Ñ€ÐµÑ Ð·Ð° изпращане + + + The entered address "%1" is not a valid PIVX address. + Ð—Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑ "%1"не е валиден PIVX адреÑ. + + + The entered address "%1" is already in the address book. + Ð—Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑ "%1" вече ÑъщеÑтвува в адреÑната книга. + + + Could not unlock wallet. + ÐеуÑпешно отключване на портфейла. + + + New key generation failed. + ÐеуÑпешно генериране на нов ключ. + + + + ExpandableButton + + Form + От + + + + FreespaceChecker + + A new data directory will be created. + Ðова папка за данни ще бъде Ñъздадена. + + + name + име + + + Directory already exists. Add %1 if you intend to create a new directory here. + Папката вече ÑъщеÑтвува. Добавeте %1 ако възнамерÑвате да Ñъздадете нова папка тук. + + + Path already exists, and is not a directory. + ÐŸÑŠÑ‚Ñ ÐºÑŠÐ¼ папката вече ÑъщеÑтвува и не е папка Ñама по Ñебе Ñи. + + + Cannot create data directory here. + Ðе може да Ñъздадете нова папка за данни точно тук. + + + + GovernancePage + + Form + От + + + 0 + 0 + + + + HelpMessageDialog + + version + верÑÐ¸Ñ + + + PIVX Core + PIVX Ядро + + + (%1-bit) + (%1-bit) + + + About PIVX Core + ОтноÑно PIVX Ядрото + + + Command-line options + Опции за командно-поле + + + Usage: + Употреба: + + + command-line options + опции за командно-поле + + + UI Options: + ИнтерфейÑни Опции: + + + Choose data directory on startup (default: %u) + Изберете папка за данни по подразбиране (default: %u) + + + Show splash screen on startup (default: %u) + Изберете начален екран по подразбиране (default: %u) + + + Set language, for example "de_DE" (default: system locale) + Задайте езика, например "de_DE" (default: system locale) + + + Start minimized + Стартирай минимизаран + + + Set SSL root certificates for payment request (default: -system-) + Задай SSL root Ñертификати за платежни Ð½Ð°Ñ€ÐµÐ¶Ð´Ð°Ð½Ð¸Ñ (default: -system) + + + + Intro + + Welcome + Привет + + + Welcome to PIVX Core. + Добре Дошли в PIVX Ядрото + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Тъй като това е Ð¿ÑŠÑ€Ð²Ð¸Ñ Ð¿ÑŠÑ‚, в който Ñтартирате програмата, имате възможноÑтта да изберете къде PIVX Ядрото ще ÑъхранÑва Ñвоите данни. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Ядрото ще изтегли и запише копие на Ñ†ÐµÐ»Ð¸Ñ PIVX блокчейн. Поне %1 гигабайта ще бъдат ÑъхранÑвани в тази папка, като тенденциÑта е файла да раÑте. Портфейла Ñъщо ще бъде запазен в тази папка. + + + Use the default data directory + Използвай папката за данни, по подразбиране + + + PIVX Core + PIVX Ядро + + + Error: Specified data directory "%1" cannot be created. + Грешка: Зададената папка *%1* не може да бъде Ñъздадена. + + + Error + Грешка + + + %1 GB of free space available + Има налични %1 гигабайта Ñвободно проÑтранÑтво + + + (of %1 GB needed) + (oÑ‚ общо %1 необходими) + + + + LoadingDialog + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + + LockUnlock + + Form + От + + + + MNRow + + Form + От + + + + MasterNodeWizardDialog + + Name + Име + + + Address + ÐÐ´Ñ€ÐµÑ + + + The recipient address is not valid, please recheck. + ÐдреÑа на Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ Ðµ недвалиден. ÐœÐ¾Ð»Ñ Ð¿Ñ€ÐµÐ²ÐµÑ€ÐµÑ‚Ðµ. + + + The amount to pay must be larger than 0. + Сумата на превода Ñ‚Ñ€Ñбва да е по-голÑма от 0. + + + The amount exceeds your balance. + Сумата Ð½Ð°Ð´Ñ…Ð²ÑŠÑ€Ð»Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¾Ñтта. + + + The total exceeds your balance when the %1 transaction fee is included. + Сумата Ð½Ð°Ð´Ñ…Ð²ÑŠÑ€Ð»Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¾Ñтта, когато преводната такÑа %1 е включена. + + + Duplicate address found, can only send to each address once per send operation. + Ðаличие на един и Ñъщи Ð°Ð´Ñ€ÐµÑ Ð´Ð²Ð° пъти. Можем да изпращане до вÑеки Ð°Ð´Ñ€ÐµÑ Ñамо по веднъж по време на вÑÑка отделна Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ изпращане. + + + Transaction creation failed! + ÐеуÑпешен превод. + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Превода бе отказам! Това може да Ñе Ñлучи ако чаÑÑ‚ от монетите в портфейла вече Ñа биле изпратени, като например ако Ñте използвали копие на wallet.dat файла и монетите Ñа биле похарчени там, но не Ñа биле маркирани като изпратени тук. + + + Error: The wallet was unlocked only to anonymize coins. + Грешка: Портфейла е отключен Ñамо за анонимизиране на монети. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + ТакÑа %1 пъти по-голÑма от %2 за кБ Ñе Ñчита неразумно голÑма такÑа. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Грешка: Портфейла е отключен Ñамо за анонимизиране на монети. Отключването ÑпрÑно. + + + + MasterNodesWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + Delete + Изтрий + + + + MnInfoDialog + + Form + От + + + Status: + СъÑтоÑние + + + + MyAddressRow + + Form + От + + + + NavMenuWidget + + Form + От + + + + OpenURIDialog + + Open URI + Отвори URI + + + Open payment request from URI or file + Отвори платежно нареждане от URI или файл + + + TextLabel + ТекÑтовЕтикет + + + Select payment request file + Изберете файл за платежно нареждане. + + + Select payment request file to open + Изберете файл Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ð½Ð¾ нареждане, който да бъде отворен + + + + OptionButton + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + + OptionsDialog + + Options + Опции + + + &Main + &Главен + + + Size of &database cache + Размер на кеша в &базата данни + + + MB + Мегабайта + + + Number of script &verification threads + Брой проверÑващи нишки + + + (0 = auto, <0 = leave that many cores free) + (0 = автоматичен, <0 = оÑтави толкова Ñдра неангажирани) + + + W&allet + Порт&фейл + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + Aко изключите харча на непотвърдено реÑто, реÑтото от превод<br/>не може да Ñе използва, докато превода не получи поне 1 потвърждение. <br/>Това влиÑе и на начина по който общите Ви ÑредÑтва Ñе преизчиÑлÑват. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Ðвтоматично отвори PIVX порта в рутера. Това Ñтава Ñамо ако рутера Ви подържа UPnP и поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ðµ включен. + + + Accept connections from outside + Приемай външни Ñвръзки + + + Allow incoming connections + Приемай входÑщи Ñвръзки + + + &Connect through SOCKS5 proxy (default proxy): + &Свуржи Ñе чрез SOCKS5 прокÑи (по подразбиране): + + + Expert + ЕкÑперт + + + Automatically start PIVX after logging in to the system. + Стартирай PIVX автоматично Ñлед влизане в ÑиÑтемата. + + + &Start PIVX on system login + &Стартирай PIVX заедно Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ‚Ð° ÑиÑтема + + + Whether to show coin control features or not. + Дали да показва възможноÑтите за контрол на монетите или не. + + + Enable coin &control features + Включи възможноÑтите за &контрол на монетите. + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Добави още един таб да показва вÑичките маÑтърноудове под Ð¿Ñ€ÑŠÐ²Ð¸Ñ Ñ‚Ð°Ð±<br/>и вÑички маÑтърноудове по мрежата във Ð²Ñ‚Ð¾Ñ€Ð¸Ñ Ñ‚Ð°Ð±. + + + Show Masternodes Tab + Покажи МаÑтърноуд Таба + + + &Spend unconfirmed change + &Похарви непотвърденото реÑто + + + &Network + &Мрежа + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + ПромÑна на езика. ÐаÑтройката е активна Ñлед реÑтарт на портфейла. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + ЛипÑващ език или непълен превод? Помогнете Ñ Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð¸Ñ‚Ðµ тук: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Картографирай портовете използвайки &UPnP + + + Enable automatic minting of PIV units to zPIV + Включи автоматичното емитиране на PIV единици в zPIV + + + Enable zPIV Automint + Включи Ðвтоматично емитиране на zPIV + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Процент от входÑщите PIV, който автоматично да Ñе конвертира в zPIV поÑредтвом Zerocoin Протокола (мин: 10%) + + + Percentage of autominted zPIV + Процент автоматично Ñечени zPIV + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Ðе бързай Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ñ‚Ð¾ конвертиране в zPIV докато не Ñе Ñъберат доÑтатъчно PIV за тази Ð´ÐµÐ½Ð¾Ð¼Ð¸Ð½Ð°Ñ†Ð¸Ñ + + + Preferred Automint zPIV Denomination + Предпочитани деноминации, в които да Ñе Ñече автоматичен zPIV + + + Stake split threshold: + Праг на Ñподеленото Ñъхранение: + + + Connect to the PIVX network through a SOCKS5 proxy. + Свържи Ñе Ñ PIVX мрежата ÑÑŠÑ SOCKS5 прокÑи. + + + Proxy &IP: + ПрокÑи &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP Ð°Ð´Ñ€ÐµÑ Ð½Ð° прокÑито (например: IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Порт: + + + Port of the proxy (e.g. 9050) + Порт за прокÑито (например 9050) + + + &Window + &Прозорец + + + Show only a tray icon after minimizing the window. + Показвай Ñамо ÑиÑтемна иконка Ñлед минимизране на портфейла. + + + &Minimize to the tray instead of the taskbar + &Минимизирай в ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ Ñ‚Ñ€ÐµÐ¹ вмеÑто в работната лента. + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Минимизирай вмеÑто да затварÑш програмата, когато прозореца Ñе затвори. Когато тази Ð¾Ð¿Ñ†Ð¸Ñ Ðµ включена, програмата може да бъде напълно затворена Ñамо от "Излез" в менюто. + + + M&inimize on close + Ðœ&инимизирай при затварÑне + + + &Display + &Ð•ÐºÑ€Ð°Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ + + + User Interface &language: + Език на интерфейÑа: + + + User Interface Theme: + Тема на интерфейÑа: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Изберете вида деÑетична запетаÑ. + + + Decimal digits + ДеÑетични единици + + + Hide empty balances + Скрий нулевите наличноÑти + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + УниверÑални web адреÑи (например блокчейн Ñонда), които Ñе поÑвÑват в прозореца за преводи като контекÑтно меню. %s в URL координатите е замеÑтено от Ð¿Ñ€ÐµÐ²Ð¾Ð´Ð½Ð¸Ñ Ñ…Ð°Ñˆ. МножеÑтво URL координати биват отделени Ñ Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»Ð½Ð° Ð»Ð¸Ð½Ð¸Ñ |. + + + Third party transaction URLs + Преводни URL-и на трети лица. + + + Active command-line options that override above options: + Ðктивирани опции на командното-поле, които вземат Ð¿Ñ€ÐµÐ²ÐµÑ Ð½Ð°Ð´ горните опции: + + + Reset all client options to default. + ВъзÑтанови вÑички опции до техните критерии по подразбиране. + + + &Reset Options + &ВъзÑтанови Опциите + + + &OK + &OK + + + &Cancel + &Отказ + + + Any + Ð’Ñеки + + + default + по подразбиране + + + none + без + + + Confirm options reset + Потвърди нулиране + + + Client restart required to activate changes. + ТрÑбва да реÑтартирате програмата. + + + Client will be shutdown, do you want to proceed? + Програмата ще Ñе изключи. Продължаване? + + + This change would require a client restart. + Тази промÑна ще изиÑква реÑтартиране на програмата. + + + The supplied proxy address is invalid. + Ðевалиден прокÑи адреÑ. + + + The supplied proxy port is invalid. + Ð—Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐºÑи порт е невалиден. + + + The supplied proxy settings are invalid. + Зададените прокÑи наÑтройки не работÑÑ‚. + + + + PIVXGUI + + PIVX Core + PIVX Ядро + + + Wallet + Портфейл + + + Node + Ðоуд + + + &Show / Hide + &Покажи / Скрий + + + Show or hide the main Window + Покажи или Ñкрий Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† + + + E&xit + Из&ход + + + Quit application + Затоври приложението + + + PIVX Core client + Клиент PIVX Ядро + + + Error + Грешка + + + Warning + Внимание + + + Information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + Sent MultiSend transaction + Изпратени Мулти транзакции + + + Sent transaction + Изпратен превод + + + Incoming transaction + ВходÑщ превод + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Дата: %1 +Сума: %2 +Вид: %3 +ÐдреÑ: %4 + + + + + PWidget + + + PaymentServer + + Payment request error + Грешка в платежно нареждане + + + URI handling + Обработка на URI + + + Payment request fetch URL is invalid: %1 + Ðевалидна заÑвки за прихващане на URI: %1 + + + Payment request file handling + Обработка на платежно нареждане от файл + + + Invalid payment address %1 + Грешен Ð°Ð´Ñ€ÐµÑ Ð·Ð° плащане %1 + + + Cannot start pivx: click-to-pay handler + Провал при Ñтартирането на pivx: click-to-pay обработвател + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URI не може да Ñе парÑне. ВероÑтна причина е невалиден PIVX Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ зле-форматирани URI Параметри. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Файла не може да бъде прочетен. + + + Payment request rejected + Отхвърлено платежно нареждане. + + + Payment request network doesn't match client network. + Мрежата за платежно нареждане не Ñъвпада Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñката мрежа. + + + Payment request has expired. + Изтекъл Ñрок на платежното нареждане. + + + Payment request is not initialized. + Платежното нареждане не е инициализирано. + + + Unverified payment requests to custom payment scripts are unsupported. + Ðеподържан формат. + + + Requested payment amount of %1 is too small (considered dust). + Платежното нареждане за %1 е за твърде малка Ñума. + + + Refund from %1 + Обещетение от %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Платежно нреждане %1 е твърде голÑмо (%2 байта, разрешени %3 байта). + + + Payment request DoS protection + DoS защита + + + Error communicating with %1: %2 + Грешка при комуникациÑта Ñ %1: %2 + + + Payment request cannot be parsed! + Платежното нареждане не може да бъде прочетено. + + + Bad response from server %1 + Сървъра Ð¾Ñ‚Ð³Ð¾Ð²Ð°Ñ€Ñ Ð½ÐµÐ¾Ñ‡Ð°ÐºÐ²Ð°Ð½Ð¾ %1 + + + Network request error + Грешка по мрежата + + + Payment acknowledged + Плащането региÑтрирано + + + + PeerTableModel + + Address/Hostname + ÐдреÑ/ХоÑтнейм + + + Version + ВерÑÐ¸Ñ + + + Ping Time + Ping отговор + + + + PrivacyWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + + ProposalFrame + + + QObject + + Amount + Сума + + + Enter a PIVX address (e.g. %1) + Задайте PIVX Ð°Ð´Ñ€ÐµÑ (например %1) + + + %1 d + %1 д + + + %1 h + %1 ч + + + %1 m + %1 м + + + %1 s + %1 Ñ + + + NETWORK + МРЕЖР+ + + BLOOM + ЦЪФТЕЖ + + + UNKNOWN + ÐЕПОЗÐÐТ + + + None + Без + + + N/A + ÐÑма + + + %1 ms + %1 милиÑек. + + + PIVX Core + PIVX Ядро + + + + RPCConsole + + Tools window + Колан Ñ Ð¸Ð½Ñтрументи + + + &Information + &Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + General + Главни + + + Name + Име + + + Client name + Име на клиент + + + N/A + ÐÑма + + + Number of connections + Брой Ñвръзки + + + &Open + &Отвори + + + Startup time + Време на Ñтартиране + + + Network + Мрежа + + + Last block time + ВъзраÑÑ‚ на поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð±Ð»Ð¾Ðº + + + Debug log file + Дебъг лог файл + + + Build date + Дата на компилиране + + + Current number of blocks + Блокове в момента + + + Client version + ВерÑÐ¸Ñ Ð½Ð° клиента + + + Using BerkeleyDB version + Използва BarkleyDB верÑÐ¸Ñ + + + Block chain + Блокчейн + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Отвори PIVX дебъг лог файла от Ñегашната папка. Това може да отнеме извеÑтно време за по-дълги файлове. + + + Number of Masternodes + Брой маÑтърноудове + + + &Console + &Конзола + + + Clear console + ИзчиÑти конзолата + + + &Network Traffic + &Мрежови Трафик + + + &Clear + &ИзчиÑти + + + Totals + Ð’Ñички + + + Received + Получени + + + Sent + Изпратени + + + &Peers + &Пиъри + + + Banned peers + Забранени пиъри + + + Select a peer to view detailed information. + Изберете пиър за повече детайли + + + Whitelisted + БÑл лиÑÑ‚ + + + Direction + ÐаÑока + + + Protocol + Протокол + + + Version + ВерÑÐ¸Ñ + + + Services + УÑлуги + + + Ban Score + Резултат + + + Connection Time + Време на връзка + + + Last Send + ПоÑледно изпратени + + + Last Receive + ПоÑледно получени + + + Bytes Sent + Изпратейни байта + + + Bytes Received + Получени байта + + + Ping Time + Ping отговор + + + &Wallet Repair + &Поправка на портфейла + + + Delete local Blockchain Folders + Изтрий локалните папки на Блокчейна + + + Wallet In Use: + Портфейл в употреба: + + + Starting Block + Ðачален Блок + + + Synced Headers + Синхронизирани Ð—Ð°Ð³Ð»Ð°Ð²Ð¸Ñ + + + Synced Blocks + Синхронизирани Блокове + + + The duration of a currently outstanding ping. + Времетраенето на незавършен пинг. + + + Ping Wait + Пинг Изчакване + + + Time Offset + Времево отлагане + + + Custom Backup Path: + ПерÑонален резервен път: + + + Custom zPIV Backup Path: + ПерÑонализиран zPIV резервен път: + + + Custom Backups Threshold: + Праг на перÑонализирани резервни копиÑ: + + + Salvage wallet + СпаÑи портфейл + + + Attempt to recover private keys from a corrupt wallet.dat. + Опит за възтановÑване на лични ключове от повреден wallet.dat файл. + + + Rescan blockchain files + Сканирай повторно блокчейн файловете + + + Rescan the block chain for missing wallet transactions. + Сканирай блокчейна отново за липÑващи преводи + + + Recover transactions 1 + ВъзÑтанови преводи 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + ВъзÑтанови преводи от блокчейна (Ñ Ð¼ÐµÑ‚Ð° данни). + + + Recover transactions 2 + ВъзÑтанови преводи 2 + + + Recover transactions from blockchain (drop meta-data). + ВъзÑтанови преводи от блокчена (без мета данни). + + + Upgrade wallet format + Ðадграждане формата на портфейла. + + + Rebuild block chain index from current blk000??.dat files. + Изградни повторно индекÑа на блокчена от Ñегашните blk000??.dat файлове. + + + -resync: + -реÑинх: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Изтрий вÑички локални папки на блокчейна, така че портфейла да Ñе Ñинхронизира от Ñамото начало. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + Копчетета долу ще реÑтартират портфейла Ñ Ð²ÑŠÐ·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑ‚ за ремонт на портфейла поÑредÑтвим командната линиÑ. Случи за поправка на проблеми Ñ ÑƒÐ²Ñ€ÐµÐ´ÐµÐ½Ð¸ блокчейн файлове или липÑващи/оÑтарели транзакции. + + + Wallet repair options. + Ремонт на портфейла Ñ Ð¾Ð¿Ñ†Ð¸Ð¸. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Ðадгради портфейла до най-Ð½Ð¾Ð²Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ при Ñтартирането на програмата. (Внимание: Това Ñамо по Ñебе Ñи обновÑва портфейла, Ñамо Ð½ÐµÐ³Ð¾Ð²Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚.) + + + Rebuild index + Потворно изграждане на индекÑа + + + In: + ВходÑщи: + + + Out: + ИзходÑщи: + + + Welcome to the PIVX RPC console. + Добре Дошли в RPC конзолата на PIVX. + + + &Disconnect Node + &Изключи Възела + + + Ban Node for + Забрани Възела за + + + 1 &hour + 1&Ñ‡Ð°Ñ + + + 1 &day + 1&ден + + + 1 &week + 1&Ñедмица + + + 1 &year + 1&година + + + &Unban Node + &Разреши възела + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Това ще иÑтрие Вашите локални блокчейн папки и портфейла ще Ñе Ñинхронизира Ñ Ñ†ÐµÐ»Ð¸Ñ Ð±Ð»Ð¾ÐºÑ‡ÐµÐ¹Ð½ от Ñамото начало. + + + This needs quite some time and downloads a lot of data.<br /><br /> + Това изиÑква доÑта време и тегленето на много данни. <br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Вашите преводи и ÑредÑтва ще бъдат видими отново Ñлед като тегленето приключи. <br /><br /> + + + Do you want to continue?.<br /> + Сигурни ли Ñте, че желаете да изпратите? <br /><br /> + + + Confirm resync Blockchain + Потвърдете реÑинх на Блокчейна + + + Type <b>help</b> for an overview of available commands. + Ðапишете <b>help</b> за ÑпиÑък Ñ Ð²ÑŠÐ·Ð¼Ð¾Ð¶Ð½Ð¸Ñ‚Ðµ команди. + + + %1 B + %1 Б + + + %1 KB + %1 КБ + + + %1 MB + %1 МБ + + + %1 GB + %1 ГБ + + + (node id: %1) + (възлова идентификациÑ: %1) + + + via %1 + през %1 + + + never + никога + + + Inbound + ВходÑщи + + + Outbound + ИзходÑщи + + + Yes + Да + + + No + Ðе + + + Unknown + Ðепознат + + + + ReceiveDialog + + + ReceiveWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + + RecentRequestsTableModel + + Date + Дата + + + Label + Етикет + + + Message + Съобщение + + + Address + ÐÐ´Ñ€ÐµÑ + + + Amount + Сума + + + (no label) + (без етикет) + + + (no message) + (нÑма Ñъобщение) + + + (no amount) + (нÑма ÑтойноÑÑ‚) + + + + RequestDialog + + Amount + Сума + + + TextLabel + ТекÑтовЕтикет + + + Label + Етикет + + + Error + Грешка + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + Form + От + + + + SendMultiRow + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + + SendWidget + + Amount + Сума + + + Spend Zerocoin + Похарчи Zerocoin + + + zPIV is currently undergoing maintenance. + Ð’ момента zPIV е в ремонт. + + + Version 1 zPIV require a security level of 100 to successfully spend. + ВерÑÐ¸Ñ 1 zPIV изиÑква ниво на ÑигурноÑÑ‚ от 100 за уÑпешно изразходване. + + + Too much inputs ( + Твърде много входÑщи ( + + + ) needed. +Maximum allowed: + ) нужни. +МакÑимум позволени: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Или емитирайте по-големи деноминации (за да Ñе ползват по малко входÑщи) или намалете Ñумата за плащане. + + + + SettingsBackupWallet + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + Backup Wallet + Ðаправи резерва на Портфейла + + + Wallet Data (*.dat) + Wallet Data формат (*.dat) + + + + SettingsBitToolWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + Import Address + Импортирай ÐÐ´Ñ€ÐµÑ + + + Clear + ИзчиÑти + + + The entered passphrase is invalid. + Въведената фраза е невалидна. + + + Allowed: 0-9,a-z,A-Z, + Използвайте: чиÑлата 0-9, латинÑки букви от a do z и малки или главни букви + + + The entered address is invalid. + Ð’ÑŠÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑ Ðµ невалиден. + + + Please check the address and try again. + ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ адреÑа и опитайте отново. + + + The entered address does not refer to a key. + ВъведениÑÑ‚ Ð°Ð´Ñ€ÐµÑ Ð½Ðµ е Ñвързан Ñ ÐºÐ»ÑŽÑ‡. + + + Wallet unlock was cancelled. + Отключването на портфейла бе прекратено. + + + Private key for the entered address is not available. + ЛичниÑÑ‚ ключ за въведениÑÑ‚ Ð°Ð´Ñ€ÐµÑ Ðµ неналичен. + + + Failed to decrypt. + ÐеуÑпешно дешифриране. + + + Please check the key and passphrase and try again. + ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ ключа и фразата и опитайте отново. + + + Data Not Valid. + Ðевалидни данни. + + + Please try again. + ÐœÐ¾Ð»Ñ Ð¾Ð¿Ð¸Ñ‚Ð°Ð¹Ñ‚Ðµ отново. + + + Please wait while key is imported + ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ докато импортираме ключа. + + + + SettingsConsoleWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + Welcome to the PIVX RPC console. + Добре Дошли в RPC конзолата на PIVX. + + + Type <b>help</b> for an overview of available commands. + Ðапишете <b>help</b> за ÑпиÑък Ñ Ð²ÑŠÐ·Ð¼Ð¾Ð¶Ð½Ð¸Ñ‚Ðµ команди. + + + + SettingsDisplayOptionsWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + Decimal digits + ДеÑетични единици + + + Hide empty balances + Скрий нулевите наличноÑти + + + default + по подразбиране + + + + SettingsFaqWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + + SettingsInformationWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + Information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + General + Главни + + + Network + Мрежа + + + In: + ВходÑщи: + + + Out: + ИзходÑщи: + + + + SettingsMainOptionsWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + + SettingsMultisendDialog + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + + SettingsMultisendWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + Active + Ðктивен + + + + SettingsSignMessageWidgets + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + Clear + ИзчиÑти + + + Message + Съобщение + + + Signature + ÐŸÐ¾Ð´Ð¿Ð¸Ñ + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Може да подпиÑвате ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ Ð’Ð°ÑˆÐ¸Ñ‚Ðµ адреÑи, за да докажете че Ñте техен притежател. Внимавайте да не подпиÑвате нищо Ñъмнително, тъй като има хакерÑки атаки, които целÑÑ‚ да придобиÑÑ‚ вашата ÑамоличноÑÑ‚. Само подпиÑвайте пълен и ÑÑен текÑÑ‚, Ñ ÐºÐ¾Ð¹Ñ‚Ð¾ Ñте напълно ÑъглаÑни. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Въведете одпиÑÐ²Ð°Ñ‰Ð¸Ñ Ð°Ð´Ñ€ÐµÑ, Ñъобщението и подпиÑа по-долу за да проверите Ñъобщението. Внимавайте да не четете повече от подпиÑа от колкото има в Ñамото Ñъобщение, за да избегнете "man in the middle" атака. + + + The entered address is invalid. + Ð’ÑŠÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑ Ðµ невалиден. + + + Please check the address and try again. + ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ адреÑа и опитайте отново. + + + The entered address does not refer to a key. + ВъведениÑÑ‚ Ð°Ð´Ñ€ÐµÑ Ð½Ðµ е Ñвързан Ñ ÐºÐ»ÑŽÑ‡. + + + Wallet unlock was cancelled. + Отключването на портфейла бе прекратено. + + + Private key for the entered address is not available. + ЛичниÑÑ‚ ключ за въведениÑÑ‚ Ð°Ð´Ñ€ÐµÑ Ðµ неналичен. + + + Message signing failed. + ÐеуÑпешено подпиÑване. + + + Message signed. + УÑпешно подпиÑване. + + + The signature could not be decoded. + ПодпиÑа не Ñе дешифрира. + + + Please check the signature and try again. + ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ подпиÑа и опитайте пак. + + + The signature did not match the message digest. + ПодпиÑа не Ñъвпада ÑÑŠÑ Ñъобщението. + + + Message verification failed. + Съобщението не бе проверено. + + + Message verified. + Съобщението е проверено. + + + + SettingsWalletOptionsWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + Wallet + Портфейл + + + Stake split threshold: + Праг на Ñподеленото Ñъхранение: + + + Network + Мрежа + + + Allow incoming connections + Приемай входÑщи Ñвръзки + + + + SettingsWalletRepairWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + Attempt to recover private keys from a corrupt wallet.dat. + Опит за възтановÑване на лични ключове от повреден wallet.dat файл. + + + Recover transactions from blockchain (drop meta-data). + ВъзÑтанови преводи от блокчена (без мета данни). + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Изтрий вÑички локални папки на блокчейна, така че портфейла да Ñе Ñинхронизира от Ñамото начало. + + + Salvage wallet + СпаÑи портфейл + + + Recover transactions 1 + ВъзÑтанови преводи 1 + + + Recover transactions 2 + ВъзÑтанови преводи 2 + + + Upgrade wallet format + Ðадграждане формата на портфейла. + + + Rebuild index + Потворно изграждане на индекÑа + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Това ще иÑтрие Вашите локални блокчейн папки и портфейла ще Ñе Ñинхронизира Ñ Ñ†ÐµÐ»Ð¸Ñ Ð±Ð»Ð¾ÐºÑ‡ÐµÐ¹Ð½ от Ñамото начало. + + + This needs quite some time and downloads a lot of data.<br /><br /> + Това изиÑква доÑта време и тегленето на много данни. <br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Вашите преводи и ÑредÑтва ще бъдат видими отново Ñлед като тегленето приключи. <br /><br /> + + + Do you want to continue?.<br /> + Сигурни ли Ñте, че желаете да изпратите? <br /><br /> + + + Confirm resync Blockchain + Потвърдете реÑинх на Блокчейна + + + + SettingsWidget + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + Wallet + Портфейл + + + Options + Опции + + + Information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + Confirm options reset + Потвърди нулиране + + + Client restart required to activate changes. + ТрÑбва да реÑтартирате програмата. + + + Client will be shutdown, do you want to proceed? + Програмата ще Ñе изключи. Продължаване? + + + + ShutdownWindow + + PIVX Core is shutting down... + Изключване на PIVX Ядрото... + + + Do not shut down the computer until this window disappears. + Ðе изключвайте компютъра, докато този прозорец не изчезне. + + + + SnackBar + + Form + От + + + + Splash + + Form + От + + + PIVX Core + PIVX Ядро + + + + SplashScreen + + PIVX Core + PIVX Ядро + + + Version %1 + ВерÑÐ¸Ñ %1 + + + The Bitcoin Core developers + Bitcoin Core разработчици + + + The Dash Core developers + Dash Core разработчици + + + The PIVX Core developers + PIVX Core разработчици + + + [testnet] + [теÑтнет] + + + + TooltipMenu + + Form + От + + + Delete + Изтрий + + + + TopBar + + Form + От + + + %1 and %2 + %1 и %2 + + + + TrafficGraphWidget + + KB/s + КБ/Ñ + + + + TransactionDesc + + Open until %1 + Отворен до %1 + + + conflicted + конфликтен + + + %1/offline + %1/офлайн + + + %1/unconfirmed + %1/непотвърдени + + + %1 confirmations + %1 Ð¿Ð¾Ñ‚Ð²ÑŠÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ + + + %1/offline (verified via SwiftX) + %1 офлайн (потвърдени чрез swiftTx) + + + %1/confirmed (verified via SwiftX) + %1 потвърдени (потвърдени чрез swiftTx) + + + %1 confirmations (verified via SwiftX) + %1 Ð¿Ð¾Ñ‚Ð²ÑŠÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ (потвърдени чрез swiftTx) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/офлайн (SwiftTX потвърждение в Ð¿Ñ€Ð¾Ñ†ÐµÑ - %2 от %3 подпиÑа) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/потвърдени (SwiftTX потвърждение в Ð¿Ñ€Ð¾Ñ†ÐµÑ - %2 от %3 подпиÑа) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 Ð¿Ð¾Ñ‚Ð²ÑŠÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ (SwiftTX потвърждение в Ð¿Ñ€Ð¾Ñ†ÐµÑ - %2 от %3 подпиÑа) + + + %1/offline (SwiftX verification failed) + %1/офлайн (ÐеуÑпешно SwiftTX потвърждние) + + + %1/confirmed (SwiftX verification failed) + %1/потвърдени (ÐеуÑпешно SwiftTX потвърждние) + + + Status + СъÑтоÑние + + + , has not been successfully broadcast yet + , вÑе още неуÑпешно обÑвени + + + Date + Дата + + + Source + Източник + + + Generated + Генериран + + + From + От + + + unknown + неизвеÑтен + + + To + До + + + own address + ÑобÑтвен Ð°Ð´Ñ€ÐµÑ + + + watch-only + наблюдение Ñамо + + + label + етикет + + + Credit + Кредит + + + not accepted + не е приет + + + Debit + Дебит + + + Total debit + Общ дебит + + + Total credit + Обще кредит + + + Transaction fee + Преводна такÑа + + + Net amount + Сума Ðето + + + Message + Съобщение + + + Comment + Коментар + + + Transaction ID + Преводен идентификатор + + + Output index + ИзходÑщ Ð¸Ð½Ð´ÐµÐºÑ + + + Merchant + Търговец + + + Debug information + Дебъг Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + Transaction + Превод + + + Inputs + ВходÑщи + + + Amount + Сума + + + true + вÑрно + + + false + грешно + + + + TransactionTableModel + + Date + Дата + + + Type + Вид + + + Address + ÐÐ´Ñ€ÐµÑ + + + Open until %1 + Отворен до %1 + + + Offline + Офлайн + + + Unconfirmed + Ðепотвърден + + + Confirming (%1 of %2 recommended confirmations) + Потвърждава (%1 о5 %2 препоръчителни потвърждениÑ) + + + Confirmed (%1 confirmations) + Потвърден (%1 потвърждениÑ) + + + Conflicted + Конфликтен + + + Immature (%1 confirmations, will be available after %2) + ÐеузрÑл (%1 потвърждениÑ, ще е наличен Ñлед още %2) + + + This block was not received by any other nodes and will probably not be accepted! + Този блок не бе получен от нито един друг ноуд и вероÑтно нÑма да бъде приет. + + + Received with + Получен Ñ + + + Masternode Reward + МаÑтърноуд възнаграждение + + + Received from + Получен от + + + Received via Obfuscation + Получен поÑредÑтвом обфуÑÐºÐ°Ñ†Ð¸Ñ + + + PIV Stake + PIV Stake + + + zPIV Stake + zPIV Stake + + + Obfuscation Denominate + Ð”ÐµÐ½Ð¾Ð¼Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð½Ð° обфуÑÐºÐ°Ñ†Ð¸Ñ + + + Obfuscation Collateral Payment + ОбфуÑÐºÐ°Ñ†Ð¸Ñ Ð½Ð° на Платежен Залог + + + Obfuscation Make Collateral Inputs + ОбфуÑÐºÐ°Ñ†Ð¸Ñ Ð½Ð° Ðаправени входÑщи Залози + + + Obfuscation Create Denominations + ОбфуÑÐºÐ°Ñ†Ð¸Ñ Ð¸ направа на Деноминации + + + Converted PIV to zPIV + Конвертиран PIV във zPIV + + + Spent zPIV + Похарчени zPIV + + + Received PIV from zPIV + Получен PIV от zPIV + + + Minted Change as zPIV from zPIV Spend + ИÑечено реÑто като zPIV от похарчените zPIV + + + Converted zPIV to PIV + Конвертиран zPIV във PIV + + + Sent to + Изпратени до + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + ОÑиротÑл блок - Генериран но не приет. Това не влиÑе на вашите ÑредÑтва. + + + Payment to yourself + Плащане до Ñебе Ñи + + + Mined + ИзÑечени + + + Obfuscated + ОбфуÑкирани + + + watch-only + наблюдение Ñамо + + + (n/a) + (без) + + + Transaction status. Hover over this field to show number of confirmations. + СъÑтоÑние на превода. ПремеÑтете курÑора над това поле за да видите броÑÑ‚ потвърждениÑ. + + + Date and time that the transaction was received. + Дата и Ñ‡Ð°Ñ Ð½Ð° приÑтигане на превода. + + + Type of transaction. + Вид на превода. + + + Whether or not a watch-only address is involved in this transaction. + Дали адреÑ, който е Ñамо за наблюдение ще бъде въвлечен в превода или не. + + + Destination address of transaction. + ÐÐ´Ñ€ÐµÑ Ð½Ð° Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ превод. + + + Amount removed from or added to balance. + Сума извадена или добавена към Ñметката. + + + + TxDetailDialog + + Form + От + + + Fee: + ТакÑа: + + + Status: + СъÑтоÑние + + + TextLabel + ТекÑтовЕтикет + + + SEND + ИЗПРÐТИ + + + Unknown + Ðепознат + + + + TxRow + + Form + От + + + + WalletModel + + Send Coins + Изпрати Монети + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftTX не подържа изпращането на толкова големи Ñуми. Превода е ограничен до %1 PIV. + + + + WalletPasswordDialog + + TextLabel + ТекÑтовЕтикет + + + + WelcomeContentWidget + + Welcome + Привет + + + default + по подразбиране + + + + ZPivControlDialog + + Select zPIV to Spend + Изберете zPIV за Изпращане + + + Coin Control + Монетен контрол... + + + zPiv + zPIV + + + Quantity: + КоличеÑтво: + + + Is Spendable + Ð’ Ðалични за харечене + + + 0 + 0 + + + Select/Deselect All + Избери/Премахни Ð’Ñички + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = пази мета данните от преводи, например ÑобÑтвеник на акаунта и Ð¸Ñ„Ð½Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° изиÑквани плащаниÑ, 2 = изхръвли мета данните от преводи) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Позволи JSON-RPC Ñвръзки от Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð¸Ð·Ñ‚Ð¾Ñ‡Ð½Ð¸Ðº. Валидно е за <ip> Ñ ÐµÐ´Ð¸Ð½Ð¸Ñ‡ÐµÐ½ IP (напр. 1.2.3.4), мрежа/netmask (напр. 1.2.3.4/255.255.255.0) или мрежа/CIDR (напр. 1.2.3.4/24). Тази Ð¾Ð¿Ñ†Ð¸Ñ Ð¼Ð¾Ð¶Ðµ да Ñе зададе множеÑтво пъти. + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Закачи Ñе към Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑ Ð¸ винаги Ñлушай по него. Използвайте [host]:port Ð½Ð¾Ñ‚Ð°Ñ†Ð¸Ñ Ð·Ð° IPv6. + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Прикачи Ñе към Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑ Ð½Ð° пиъри вв Ð±ÐµÐ»Ð¸Ñ ÑпиÑък, като Ñе Ñвържеш Ñ Ð½ÐµÐ³Ð¾. Използвайте [host]:port notation for IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Прикачи Ñе към Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑ Ð·Ð° Ñлушане на JSON-RPC връзки. Използвайте [host]:port notation for IPv6. Тази Ð¾Ð¿Ñ†Ð¸Ñ Ð¼Ð¾Ð¶Ðµ да Ñе зададе множеÑтво пъти (по подразбиране: прикачва Ñе към вÑички итнерфейÑи) + + + Calculated accumulator checkpoint is not what is recorded by block index + ИзчиÑÐ»ÐµÐ½Ð¸Ñ Ñ‡ÐµÐºÐ¿Ð¾Ð¹Ð½Ñ‚ на акумулатора не е ÑÑŠÑ‰Ð¸Ñ ÐºÐ°Ñ‚Ð¾ запиÑÐ°Ð½Ð¸Ñ Ð² блок индекÑа. + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Ðе може да заключи папката Ñ Ð´Ð°Ð½Ð½Ð¸ %s. PIVX Портфейла вероÑтно вече е Ñтартиран. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + ПромÑна на поведението на автоматично финализираното глаÑоподаване. mode=auto: ГлаÑувай Ñамо за точни финализирани бюджети, които Ñъвпадат Ñ Ð¼Ð¾ÑÑ‚ генериран бюджет. (string, default:auto) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Ðвтоматично приравнÑвай неограничените преводи до <n>*1000 байте в минута (default:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Създавай новите файлове Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐ¸Ñ‚ÐµÐ»Ð½Ð¸ нива по подразбиране, вмеÑто 077 (Ñамо ефективно при изключена функционалноÑÑ‚ на портфейла) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Изтрий вÑички преводи от портфейла и възÑтанови Ñамо тези чаÑти от блокчейна - Ñканира при Ñтартиране. + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Изтрийте вÑички разходи за нулево злато и монетните дворове, които Ñа запиÑани в блока за блокиране и ги възÑтановете (0-1, по подразбиране: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + РазпроÑтранÑва Ñе пот MIT Ñофтуерен лиценз, виж ÑÑŠÐ¿Ñ€Ð¾Ð²Ð¾Ð¶Ð´Ð°Ñ‰Ð¸Ñ Ñ„Ð°Ð¹Ð» от <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Включи автоматичните бекъпи на портфейла Ñлед вÑÑко zPIV емитиране (0-1, по подразбиране: %u) + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Ðктивиране или деактивиране на функциÑта за зареждане за PIV входове (0-1, по подразбиране: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Ðктивиране или деактивиране на функциÑта за зареждане за zPIV входове (0-1, по подразбиране: %u) + + + Enable spork administration functionality with the appropriate private key. + Включете функциÑта за spork админиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñ Ð¿Ð¾Ð´Ñ…Ð¾Ð´ÑÑ‰Ð¸Ñ Ð»Ð¸Ñ‡ÐµÐ½ ключ. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Влезете в теÑтови режим на регреÑиÑ, използвайки Ñпециален блокчейн в който блоковете Ñе калкулират мигновено. + + + Error: Listening for incoming connections failed (listen returned error %s) + Грешка: Провал в Ñ‚ÑŠÑ€Ñенето на входÑщи Ñвръзки (listen returned error %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Грешка: Превода е по-голÑма от Ð¿Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€ за транзакции! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Грешка: Ðеподържан аргумент -socks. Вече не е възможно да Ñе наÑтройва верÑиÑта на SOCKS. Подържаме Ñамо SOCKS5 прокÑита. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Командата влиза в Ñила Ñамо ако Ñе получи Ñпециално предупреждение или Ñе заÑече много голÑм форк (%s в cmd Ñе замеÑтва ÑÑŠÑ Ñъобщение) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Командата влиза в Ñила когато превод по портфейла Ñе промени (%s в cmd Ñе замеÑтва от идентификатора на транзакциÑта TxID) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Командата влиза в Ñила, когато най-Ð´Ð¾Ð±Ñ€Ð¸Ñ Ð±Ð»Ð¾Ðº Ñе промени (%s в cmd Ñе замеÑтва от хаш на блока) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + ТакÑи (в PIV/Кб) по-малки от това Ñе Ñчитат за нулеви при препращане (default: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + ТакÑи (в PIV/Кб) по-малки от това Ñе Ñчитат за нулеви при Ñъздаване на предовда (default: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Изпразни паметта за дейноÑти по базата данни в лог файл на диÑка на вÑеки <n> мегабайта (default: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Ðко paytxfee не е зададен, включи доÑтатъчно такÑи, така че превода да започне Ñ Ð¿Ð¾Ñ‚Ð²ÑŠÑ€Ð¶Ð´ÐµÐ½Ð¸Ðµ на вÑеки N блока (default: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + Ð’ този режим -genproclimit контролира колко блока Ñе генерират на момента. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + ÐедоÑтатъчни или недоÑтатъчно-потвърдени ÑредÑтва. Може да Ñе наложи да изчакате нÑколко минути преди да опитате отново. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Ðевалидна Ñума за -maxtxfee=<amount>:'%s' (Ñ‚Ñ€Ñбва да е поне такÑата от %s за да предотвратим заклещени преводи). + + + Keep the specified amount available for spending at all times (default: 0) + Пази зададената Ñума като налична за харчене по вÑÑко време (defajlt: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Прихващай приоритета на преводите и такÑата за килобайт когато копаете блокове (default: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Пази пълен Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° вÑички преводи използвани от getrawtransaction rpc call (default: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + МакÑимум големина на данните в транзакциите, които препращаме и минираме (default: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + МакÑимални общи такÑи да Ñе използват при единичен портфейл превод. Твърде малко може да прекрати големите преводи (default: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Времетраене в Ñекунди, за което да предотвратÑва пиъри ÑÑŠÑ Ñъмнително поведение от повторно Ñвръзване (default: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + ОбфуÑкациÑта използва точни деноминации за да изпраща ÑредÑтва. Може да Ñ‚Ñ€Ñбва проÑто да анонимизирате още монети. + + + Output debugging information (default: %u, supplying <category> is optional) + Изходирай дебъг Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ (default: %u, задавайки <category> е по желание) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Ðко адреÑите Ñа малко - запитване за Ð°Ð´Ñ€ÐµÑ Ð½Ð° пиър, чрез DNS Ñ‚ÑŠÑ€Ñене (default: 1 оÑвен -connect) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Използвай Ñлучайни имена и пароли за вÑÑка прокÑи Ñвръзка. Това позволÑва намирането на Tor потоци (default: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + ПозволÑва виÑок приоритет за препращане на безплатни или ниÑко-тарифни преводи (default: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + Покажи дебъг информациÑта в конзолата вмеÑто debug.log файл (default: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Задай макÑимален размер на виÑоко-приоритетни/ниÑко-б'джетни преводи в байтове (default: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Задай Ð±Ñ€Ð¾Ñ Ð½Ð° нишки за проверка на Ñкриптове (%u до %d, 0 = автоматичен <0 = оÑвати толкова Ñдра Ñвободни, default: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Задай Ð±Ñ€Ð¾Ñ Ð½Ð¸ÑˆÐºÐ¸ за генериране на монети ако е включено (-1 = вÑички Ñдра, default: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Покажи N Ð¿Ð¾Ñ‚Ð²ÑŠÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° уÑпешно заключени преводи (0-9999, default: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Поддържай филтрирането на блокове и преводи Ñ bloom филтри (default: %u) + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + Този продукт включва Ñофтуер разработен от OpenSSL Project <https://www.openssl.org/> и крипто Ñофтуер напиÑан от Ерик Юнг и UPnP Ñофтуер от Ð¢Ð¾Ð¼Ð°Ñ Ð‘ÐµÑ€Ð½Ð°Ñ€Ð´. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Ðе може да Ñе прикачи към %s на този компютър. PIVX Портфейла вероÑтно вече е Ñтартиран. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Ðе намираме доÑтатъчно ОбфуÑкационно деноминирани ÑредÑтва за този превод. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Ðе можем да намерим доÑтатъчно ОбфуÑкационно не-деноминирани ÑредÑтва за този превод, които да не Ñа равни на 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Ðе намираме доÑтатъчно ÑредÑтва за този превод, които да не Ñа равни на 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Използвайте отделен SOCKS5 прокÑи за да доÑтигнете пиърите през Tor Ñкрити уÑлуги (по подразбиране: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Внимание: -maxtxfee е зададена твърде виÑока! Толкова големи такÑи може да Ñе платÑÑ‚ на единичен превод. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Внимание: -paytxfee е зададена твърде голÑма! Това е преводната такÑа, коÑто ще платите ако изпратите този превод. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Внимание: Проверете дали датата и чаÑа на компютъра Ñа верни! Ðко ВашиÑÑ‚ чаÑовник греши, PIVX Портфейла нÑма да работи правилно. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Внимание: Изглежда че мрежата не е единна! ÐÑкои миньори изпитват затруднениÑ. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Внимание: Изглежда че имаме неразбирателÑтво Ñ Ð½Ñкои пиъри! Може да Ñе налага да обновите Ñофтуера Ñи или другите възли Ñ‚Ñ€Ñбва да Ñе ъпгрейднат. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Внимание: грешка при четене на wallet.dat! Ð’Ñички ключове изглеждат добре, но преводните данни или адреÑната книга липÑват или Ñа некоректни. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Внимание: увреден wallet.dat файл, данните Ñа ÑпаÑени! ÐžÑ€Ð¸Ð³Ð¸Ð½Ð°Ð»Ð½Ð¸Ñ wallet.dat е запазен като wallet.[timestamp].bak в %s; ако наличноÑтта или преводите Ви изглеждат погрешни, Ñ‚Ñ€Ñбва да възтановите портфейла от бекъп. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Пиърите от Ð±ÐµÐ»Ð¸Ñ ÑпиÑък Ñвързващи Ñе от зададената netmask-а или IP адреÑ. Може да Ñе зададе множеÑтво пъти. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Пиърите от Ð‘ÐµÐ»Ð¸Ñ ÑпиÑък не може да Ñа DoS забранени и техните преводи винаги ще бъдат предавани, дори и да Ñа вече в мемпул баÑейна. Полезно за портал. + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + ТрÑбва да зададете masternodeprivkey в ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð». КонÑултирайте Ñе Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñта за повече помощ. + + + (51472 could be used only on mainnet) + (51472 може да Ñе ползва Ñамо в mainnet) + + + (default: %s) + (по подразбиране: %s) + + + (default: 1) + (по подразбиране: 1) + + + (must be 51472 for mainnet) + (Ñ‚Ñ€Ñбва да е 51472 за mainnet) + + + Accept command line and JSON-RPC commands + Приемане на JSON-RPC команди и командно поле + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Приемай външни връзки (по подразбиране: 1 ако нÑма -proxy или -connect) + + + Accept public REST requests (default: %u) + Приемай външни REST Ð·Ð°Ð¿Ð¸Ñ‚Ð²Ð°Ð½Ð¸Ñ (по подразбиране: %u) + + + Add a node to connect to and attempt to keep the connection open + Добави възел за Ñвръзка и опитай да държиш връзката отворена + + + Allow DNS lookups for -addnode, -seednode and -connect + ПозволÑвай DNS Ð·Ð°Ð¿Ð¸Ñ‚Ð²Ð°Ð½Ð¸Ñ Ð·Ð° -addnote, -seednode и -connect + + + Always query for peer addresses via DNS lookup (default: %u) + Винаги извършвай запитване за пиъри поÑредÑтвим DNS Ñ‚ÑŠÑ€Ñене (по подразбиране: %u) + + + Attempt to recover private keys from a corrupt wallet.dat + Опит за възтановÑване на лични ключове от повреден wallet.dat файл. + + + Automatically create Tor hidden service (default: %d) + Ðвтоматично Ñъздавай Ñкрит Tor доÑтавчик (по подразбиране: %d) + + + Block creation options: + Блокирай Ñъзидателни опции: + + + Calculating missing accumulators... + ИзчиÑлÑва липÑващите акумулатори... + + + Cannot downgrade wallet + ПроменÑне Ñофтуерната верÑÐ¸Ñ Ð½Ð° портфейла към по-ниÑка е невъзможно. + + + Cannot resolve -bind address: '%s' + Ðе можем да разрешим -blind адреÑ: '%s' + + + Cannot resolve -externalip address: '%s' + Ðе можем да разрешим -externalip адреÑ: '%s' + + + Cannot resolve -whitebind address: '%s' + Ðе можем да разрешим -whitebind адреÑ: '%s' + + + Connect only to the specified node(s) + Свързвай Ñе Ñамо към зададените възли(възел). + + + Connect through SOCKS5 proxy + Свързвай Ñе чрез SOCKS5 прокÑи + + + Connect to a node to retrieve peer addresses, and disconnect + Свържи Ñе към възел за получаване на пиър адреÑи и Ñе изключи + + + Connection options: + Опции за Ñвръзка: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Ð’Ñички права запазени (c) 2009-%i Bitcoin Core разработчици + + + Copyright (C) 2014-%i The Dash Core Developers + Ð’Ñички права запазени (c) 2014-%i Dash Core разработчици + + + Copyright (C) 2015-%i The PIVX Core Developers + Ð’Ñички права запазени (c) 2015-%i PIVX Core разработчици + + + Corrupted block database detected + ЗаÑечена е повредена блок база данни + + + Could not parse masternode.conf + Ðе можахме да прочетем masternode.conf файла + + + Debugging/Testing options: + Дебъг/ТеÑÑ‚ опции: + + + Delete blockchain folders and resync from scratch + Изтрий блокчейн папките и реÑинхронизирай от начало. + + + Disable OS notifications for incoming transactions (default: %u) + Спри ÑъобщениÑта от ОС за входÑщи преводи (по подразбиране: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Изключи безопаÑен режим, отмени иÑтинÑките ÑÑŠÐ±Ð¸Ñ‚Ð¸Ñ Ð¾Ñ‚ безопаÑÐ½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼ (по подразбиране: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Открий ÑобÑÑ‚Ð²ÐµÐ½Ð¸Ñ IP Ð°Ð´Ñ€ÐµÑ (по подразбиране: 1 когато Ñлуша и нÑма -externalip) + + + Do not load the wallet and disable wallet RPC calls + Ðе зареждай портфейла и изключи RPC обажданиÑта му + + + Do you want to rebuild the block database now? + Желаете ли да преÑъздадете базата данни на блоковете Ñега? + + + Done loading + Край на зареждането + + + Enable automatic Zerocoin minting (0-1, default: %u) + Ðктивирай автоматично Ñечене на Zerocoin (0-1, По подразбиране: %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + Вкл. публикуването на хаш транзакциÑта (закл. чрез SwiftX) в <address> + + + Enable publish raw transaction (locked via SwiftX) in <address> + Вкл. публикуването на Ñурова Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ (закл. чрез SwiftX) в <address> + + + Enable the client to act as a masternode (0-1, default: %u) + Вкл. клиента да дейÑтва като влаген възел (0-1, по подразбиране: %u) + + + Error initializing block database + Грешка при Ñтартирането на блок базата данни + + + Error initializing wallet database environment %s! + Грешка при Ñтартиране на Ñредата за бази данни %s! + + + Error loading block database + Грешка при зареждането на блок базата данни + + + Error loading wallet.dat + Грешка в зареждането на wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Грешка в зареждането на wallet.dat: Портфейла е повреден + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Грешка в зареждането на wallet.dat: Портфейла изиÑква по-нова верÑÐ¸Ñ + + + Error opening block database + Грешка в отварÑнето на блок базата данни + + + Error reading from database, shutting down. + Грешка в четенето от базата данни. Изключвам Ñе! + + + Error + Грешка + + + Error: A fatal internal error occured, see debug.log for details + Грешка: Фатална вътрешна грешка, вижте debug.log за повече подробноÑти. + + + Error: Disk space is low! + Грешка: ÐамалÑващо ДиÑково проÑтранÑтво! + + + Error: Unsupported argument -tor found, use -onion. + Грешка: Ðамерихме неподдържан аргумент -tor, използвайте -onion. + + + Error: Wallet locked, unable to create transaction! + Грешка: Портфейла е заключен, неуÑпешен превод! + + + Failed to calculate accumulator checkpoint + ÐеуÑпешно изчиÑление на Ð°ÐºÑƒÐ¼ÑƒÐ»Ð°Ñ‚Ð¾Ñ€Ð½Ð¸Ñ Ñ‡ÐµÐºÐ¿Ð¾Ð¸Ð½Ñ‚ + + + Failed to listen on any port. Use -listen=0 if you want this. + ÐеуÑпешно очакване на който и да е порт. За тази цел, зползвайте -listen=0. + + + Failed to read block + ÐеуÑпешно четене на блок + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + ТакÑа (в PIV/kB), коÑто да Ñе добави към изходÑщи преводи (по подразбиране: %s) + + + Force safe mode (default: %u) + Предизвикай безопаÑен режим (по подразбиране: %u) + + + Generate coins (default: %u) + Генерирай монети (по подразбиране: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Колко блока да провери при Ñтартиране (по подразбиране: %u, 0 = all) + + + If <category> is not supplied, output all debugging information. + Ðко <category> не е зададен, изкарай цÑлата дебъг информациÑ. + + + Importing... + Импортиране... + + + Imports blocks from external blk000??.dat file + Импортира блокове от външен blk000??.dat файл. + + + Include IP addresses in debug output (default: %u) + Включи и IP адреÑите при дебъг (по подразбиране: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + ÐÑма намерен Ð³ÐµÐ½ÐµÐ·Ð¸Ñ Ð±Ð»Ð¾Ðº или Ð½Ð°Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ Ðµ неÑъвмеÑтим. Грешен datadlr за мрежата? + + + Information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + Initialization sanity check failed. PIVX Core is shutting down. + Стартирането на проверка на здравоÑловното ÑÑŠÑтоÑние на портфейла Ñе провали. Изключваме Портфейла. + + + Insufficient funds + ÐедоÑтатъчни ÑредÑтва + + + Insufficient funds. + ÐедоÑтатъчни ÑредÑтва. + + + Invalid -onion address or hostname: '%s' + Ðевалиден -onion Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ име: '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + Ðевалидна ÑтойноÑÑ‚ за -maxtxfee=<amount>:'%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Ðевалидна ÑтойноÑÑ‚ за -minrelaytxfee=<amount>:'%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Ðевалидна ÑтойноÑÑ‚ за -mintxfee=<amount>:'%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Ðевалидна ÑтойноÑÑ‚ за -paytxfe=<amount>:'%s' (Ñ‚Ñ€Ñбва да бъде поне %s) + + + Invalid amount for -paytxfee=<amount>: '%s' + Ðевалидна ÑтойноÑÑ‚ за -paytxfee=<amount>:'%s' + + + Invalid amount for -reservebalance=<amount> + Ðевалидна ÑтойноÑÑ‚ за -reservebalance=<amount> + + + Invalid amount + Ðевалидна ÑтойноÑÑ‚ + + + Invalid masternodeprivkey. Please see documenation. + Ðевалиден masternodeprivkey. ÐœÐ¾Ð»Ñ ÐºÐ¾Ð½Ñултирайте Ñе Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñта. + + + Invalid netmask specified in -whitelist: '%s' + Ðевалидна netmask зададена в -whitelist: :'%s' + + + Invalid port detected in masternode.conf + Ðевалиден порт, заÑечен в masternode.conf + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Процент автоматично емитирани Zerocoin (1-100, по подразбиране: %u) + + + Reindex the PIV and zPIV money supply statistics + ИндекÑирай наново PIV и zPIV данните по наличноÑти + + + Reindexing zerocoin database... + РедекÑиране на база данни за нуроиди ... + + + Reindexing zerocoin failed + Повторното индекÑиране на зероцена Ñе провали + + + Selected coins value is less than payment target + Избраната ÑтойноÑÑ‚ на монетите е по-малка от целта за плащане + + + SwiftX options: + SwiftX опции: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + Това е теÑтов Ñофтуер - използвай на ÑÐ²Ð¾Ñ Ð³Ð»Ð°Ð²Ð° - да не Ñе използва за Ñтейкване или търговÑко приложение. + + + mints deleted + + изтрити емиÑии + + + + mints updated, + обновени емиÑии, + + + unconfirmed transactions removed + + премахнати непотвърдени транзакции + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Изключи PIVX Ñпецифичната функционалноÑÑ‚ (Главни възли, Zerocoin, SwiftX, Бюджетиране) (0-1, po podrazbirane: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Включи SwiftTX, показвай Ð¿Ð¾Ñ‚Ð²ÑŠÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° заключени преводи (bool, default: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Превода бе отказан! Това може да Ñе Ñлучи ако чаÑÑ‚ от монетите в портфейла вече Ñа биле изпратени, като например ако Ñте използвали копие на wallet.dat файла и монетите Ñа биле похарчени там, но не Ñа биле маркирани като изпратени тук. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + Грешка: Този превод изиÑква преводна такÑа от поне %s поради неговите размер, ÑложноÑÑ‚ или употребата на наÑкоро получени ÑредÑтва. + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + Грешка: Ðеподдържан аргумент -checklevel. Checklevel Ñ‚Ñ€Ñбва да е поне 4. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + Командата влиза в Ñила, когато най-Ð´Ð¾Ð±Ñ€Ð¸Ñ Ð±Ð»Ð¾Ðº Ñе промени и Ð½ÐµÐ³Ð¾Ð²Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€ е над (%s в cmd Ñе промени Ñ Ñ…Ð°Ñˆ на блока, %d Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€ на блока) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Ðе уÑпÑхме да намерим монетата Ñред държаните монети Ñ Ð¿Ð¾-малък номер от maxNumber на ПлащаниÑта. + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + Ð’ редки Ñлучаи, плащане от 7 монети Ð½Ð°Ð´Ñ…Ð²ÑŠÑ€Ð»Ñ Ð¼Ð°ÐºÑимално Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€ на транзакциÑ. ÐœÐ¾Ð»Ñ Ð¾Ð¿Ð¸Ñ‚Ð°Ð¹Ñ‚Ðµ да похарчете 6 или по-малко монети за това плащане. + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Предпочитани деноминации за автоматично изÑечените Zerocoin (1/5/10/50/100/500/1000/5000), 0 за каквито и да е. (По подразбиране: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + ПоÑочете перÑонализиран път за архивиране, за да добавите копие на вÑÑко автоматично архивиране zPIV. Ðко е зададено като реж., Ð’Ñеки архив генерира файл Ñ Ð²Ñ€ÐµÐ¼ÐµÐ²Ð° маркировка. Ðко е зададен като файл, ще пренапише към този файл вÑеки архив. Ðко е зададено и резервно копие, ще Ñе Ñлучат 4 архиви + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + ПоÑочете перÑонализиран път за архивиране, за да добавите копие на вÑÑко резервно копие на портфейла. Ðко е зададено като реж., Ð’Ñеки архив генерира файл Ñ Ð²Ñ€ÐµÐ¼ÐµÐ²Ð° маркировка. Ðко е зададен като файл, ще пренапише към този файл вÑеки архив. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftTX изиÑква входÑщи преводи Ñ Ð¿Ð¾Ð½Ðµ 6 потвърждениÑ. Може да Ñе наложи да изчакате още преди да опитате отново. + + + <category> can be: + <category> може да е: + + + Attempt to force blockchain corruption recovery + Опитай да наложиш възтановÑване на увереден блокчейн + + + CoinSpend: Accumulator witness does not verify + МонетноПлащане: ÐÐºÑƒÐ¼ÑƒÐ»Ð°Ñ‚Ð¾Ñ€Ð½Ð¸Ñ Ñвидетел не потвърждава + + + Display the stake modifier calculations in the debug.log file. + Покажи изчиÑлениÑта на Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð¸Ñ Ñъхранител в debug.log файла. + + + Display verbose coin stake messages in the debug.log file. + Покажи многоÑловните ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ñ‚ Ñъхранение на монети в debug.log файла. + + + Enable publish hash block in <address> + Вкл. публикуването на хаш блока в <address> + + + Enable publish hash transaction in <address> + Вкл. публикуването на хаш транзакциÑта в <address> + + + Enable publish raw block in <address> + Вкл. публикуването на Ñурови блокове в <address> + + + Enable publish raw transaction in <address> + Вкл. публикуването на Ñурови транзакции в <address> + + + Enable staking functionality (0-1, default: %u) + Включи функционалноÑтта по Ñърханение (0-1, по подразбиране: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Грешка: Фатална вътрешна грешка, вижте debug.log за повече подробноÑти. + + + Error: No valid utxo! + Грешка: ÐÑма валиден utxo! + + + Failed to create mint + ÐеуÑпешно емитиране + + + Failed to find Zerocoins in wallet.dat + ÐÑма намерени Zerocoin монети в wallet.dat файла + + + Failed to select a zerocoin + ÐеуÑпешен избор на Zerocoin + + + Failed to wipe zerocoinDB + Изтриването на zerocoinDB не бе уÑпешно + + + Failed to write coin serial number into wallet + ÐеуÑпешно запиÑване на ÑÐµÑ€Ð¸Ð¹Ð½Ð¸Ñ Ð½Ð¾Ð¼ÐµÑ€ на монетата в портфейла + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Пази най-много <n> неÑвързани превода в паметта (по подразбиране: %u) + + + Limit size of signature cache to <n> entries (default: %u) + Ограничи размера на подпиÑÐ½Ð¸Ñ ÐºÐµÑˆ до <n> Ð·Ð°Ð´Ð°Ð½Ð¸Ñ (по подразбиране: %u) + + + Line: %d + Ред: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Следи за JSON-RPC връзки на <port> (по подразбиране: %u или testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Следи за Ñвръзки на <port> (по подразбиране: %u или testnet: %u) + + + Loading addresses... + Зареждане на адреÑи... + + + Loading block index... + Зареждане блок индекÑа... + + + Loading budget cache... + Зареждане на Ð±ÑŽÐ´Ð¶ÐµÑ‚Ð½Ð¸Ñ ÐºÐµÑˆ... + + + Loading masternode cache... + Зареждане на кеша от главни възли... + + + Loading masternode payment cache... + Зареждане кеша на Ð¿Ð»Ð°Ñ‰Ð°Ð½Ð¸Ñ Ð¾Ñ‚ главни възли... + + + Loading sporks... + Зареждане на вилицо-лъжици... + + + Loading wallet... (%3.2f %%) + Зареждане на портфейла... (%3.2f %%) + + + Loading wallet... + Зареждане на портфейла... + + + Location of the auth cookie (default: data dir) + МеÑтоположение на оторизационната биÑквитка (по подразбиране: data dir) + + + Lock masternodes from masternode configuration file (default: %u) + Заключи главен възел от ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» (по подразбиране: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Lookup(): Ðевалиден -proxy Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ име: '%s' + + + Maintain at most <n> connections to peers (default: %u) + Пази най-много <n> връзки към пиъри (по подразбиране: %u) + + + Masternode options: + Опции за Главни възли + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + МакÑимум буфер за Получаване, за връзка, <n>*1000 байта (по подразбиране: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + МакÑимум буфер за Изпращане, за връзка, <n>*1000 байта (по подразбиране: %u) + + + Mint did not make it into blockchain + ЕмиÑиÑта не уÑÐ¿Ñ Ð´Ð° Ñе включи в блокчейна + + + Need to specify a port with -whitebind: '%s' + Ðужно е да Ñе зададе порт Ñ -whitebind: '%s' + + + Node relay options: + Опции на възел релето: + + + Not enough file descriptors available. + ÐедоÑтатъчно налични файл опиÑаниÑ. + + + Number of automatic wallet backups (default: 10) + Брой автоматични портфейлни ÐºÐ¾Ð¿Ð¸Ñ (по подразбиране: 10) + + + Number of custom location backups to retain (default: %d) + Брой запазени резервни ÐºÐ¾Ð¿Ð¸Ñ Ð·Ð° меÑтоположението (по подразбиране: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Приемай Ñамо блокчейн ÑÑŠÑ Ñъвпадащи чекпоинтове (по подразбиране: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Свързвай Ñе Ñамо Ñ Ð²ÑŠÐ·Ð»Ð¸ от мрежа <net>(ipv4, ipv6 или onion) + + + Options: + Опции: + + + Password for JSON-RPC connections + Парола за JSON-RPC връзките + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid(): Ðевалиден -proxy Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ име: '%s' + + + Preparing for resync... + ÐŸÐ¾Ð´Ð³Ð¾Ñ‚Ð²Ñ Ñе за ре-Ñинх... + + + Prepend debug output with timestamp (default: %u) + Добави дата и Ñ‡Ð°Ñ Ð² дебъг логовете (по подразбиране: %u) + + + Print version and exit + Принтирай и излез + + + RPC server options: + Опции за RPC Ñървъра: + + + Randomly drop 1 of every <n> network messages + Ðа Ñлучаен принцип изпуÑкай 1 от вÑÑко <n> мрежови ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ + + + Randomly fuzz 1 of every <n> network messages + Ðа Ñлучаен принцип отбележи 1 от вÑÑко <n> мрежови ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ + + + Rebuild block chain index from current blk000??.dat files + Изгради на ново блокчейн индекÑа от Ñегашните blk000??.dat файлове + + + Receive and display P2P network alerts (default: %u) + Получавай и показвай P2P мрежови ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (по подразбиране: %u) + + + Reindex the accumulator database + ИндекÑирай на ново акмулаторната база данни + + + Relay and mine data carrier transactions (default: %u) + Препращай и копай преводите по Ð¿Ñ€ÐµÐ½Ð¾Ñ Ð½Ð° данни (по подразбиране: %u) + + + Relay non-P2SH multisig (default: %u) + Препращай не-P2SH Ð¼ÑƒÐ»Ñ‚Ð¸Ð¿Ð¾Ð´Ð¿Ð¸Ñ (по подразбиране: %u) + + + Rescan the block chain for missing wallet transactions + Сканирай блокчейна за липÑващи портфейлни транзакции + + + Rescanning... + Сканиране наново... + + + ResetMintZerocoin finished: + ResetMintZeroinc завърши: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin завърши: + + + Run a thread to flush wallet periodically (default: %u) + Периодично изчиÑтвай портфейла (по подразбиране: %u) + + + Run in the background as a daemon and accept commands + Върши го на заден план като невидим Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¸ приемай командите + + + Send transactions as zero-fee transactions if possible (default: %u) + Ðко е възможно, изпращай транзакциите като нулево-такÑуван превод (по подразбиране: %u) + + + Session timed out. + Времето на ÑеÑиÑта изтече. + + + Set database cache size in megabytes (%d to %d, default: %d) + Задай размера на кеша за базите данни в мегабайти (%d до %d, по подразбиране: %d) + + + Set external address:port to get to this masternode (example: %s) + Задай външен адреÑ:порт за да доÑтигнете този главен възел (например: %s) + + + Set key pool size to <n> (default: %u) + Задай размер на баÑейна за ключове да бъде <n>(по подразбиране: %u) + + + Set maximum block size in bytes (default: %d) + МакÑимален разбимер на блока в байтове (default: %d) + + + Set minimum block size in bytes (default: %u) + Минимален размер на блока в байтове (default: %u) + + + Set the Maximum reorg depth (default: %u) + МакÑимална дълбочина на reorg (default: %u) + + + Set the masternode private key + Задай Ñ‚Ð°Ð¹Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ на Ð“Ð»Ð°Ð²Ð½Ð¸Ñ Ð²ÑŠÐ·ÐµÐ» + + + Set the number of threads to service RPC calls (default: %d) + Задай Ð±Ñ€Ð¾Ñ Ð½Ð¸ÑˆÐºÐ¸ да обÑлужват RPC Ð·Ð°Ð¿Ð¸Ñ‚Ð²Ð°Ð½Ð¸Ñ (по подразбиране: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Задай DB_PRIVATE флаг в Ñредата на портфейловата база данни (по подразбиране: %u) + + + Show all debugging options (usage: --help -help-debug) + Покажи вÑички дебъг възможноÑти (иползвай: -help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Ðамали debug.log файла при Ñтартиране на портфейла (по подразбиране: 1 когато нÑма -debug) + + + Signing timed out. + Времето за поÑпиÑване изтече. + + + Signing transaction failed + ÐеуÑпешено подпиÑване на превода. + + + Specify configuration file (default: %s) + Задай конфигурационен файл (default: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Задай макÑимално време на чакане в милиÑекунди (минимум: 1, по подразбиране: %d) + + + Specify data directory + Задай възтановÑване на данни + + + Specify masternode configuration file (default: %s) + Задай конфигурационен файл за Главен възел (default: %s) + + + Specify pid file (default: %s) + Задай pid файл (default: %s) + + + Specify wallet file (within data directory) + Задай файл на портфейла (в папката Ñ Ð´Ð°Ð½Ð½Ð¸) + + + Specify your own public address + Задай Ñвой ÑобÑтвен публичен Ð°Ð´Ñ€ÐµÑ + + + Spend Valid + Валидно Плащане + + + Spend unconfirmed change when sending transactions (default: %u) + Похарчи непотвърдено реÑто когато пращаш преводи (default: %u) + + + Staking options: + Опции за Ñъхранение: + + + Stop running after importing blocks from disk (default: %u) + Изключи Ñе Ñлед импортирането на блоквоете от диÑка (default: %u) + + + Synchronization failed + ÐеуÑпешна ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ + + + Synchronization finished + УÑпешно Ñинхронизиране + + + Synchronization pending... + СинхронизациÑта изчаква... + + + Synchronizing budgets... + Синхронизиране на бюджетите... + + + Synchronizing masternode winners... + Синхронизиране печелившите Главни възли... + + + Synchronizing masternodes... + Синхронизиране Ñ Ð“Ð»Ð°Ð²Ð½Ð¸Ñ‚Ðµ възли... + + + Synchronizing sporks... + Синхронизиране на вилицо-лъжиците... + + + Syncing zPIV wallet... + Синхронизиране на zPIV портфейла ... + + + The coin spend has been used + Монетното плащане е използвано + + + The transaction did not verify + Превода не бе потвърден + + + This help message + Това Ñъобщение + + + This is experimental software. + Това е екÑпериментален Ñофтуер + + + This is intended for regression testing tools and app development. + Това е за регреÑионен теÑÑ‚ и Ñофтуерна разработка. + + + Threshold for disconnecting misbehaving peers (default: %u) + Праг за разкачване на пиъри Ñ Ð»Ð¾ÑˆÐ¾ поведение (по подразбиране: %u) + + + Too many spends needed + Ðужни Ñа твърде много Ð¿Ð»Ð°Ñ‰Ð°Ð½Ð¸Ñ + + + Tor control port password (default: empty) + Парола за контрол на Tor порт: (по подразбиране: празно) + + + Tor control port to use if onion listening enabled (default: %s) + Порт за контрол на Tor ако onion е включен (по подразбиране: %s) + + + Transaction Created + Превода е Ñъздаден + + + Transaction Mint Started + Емитиране по Превода Стартира + + + Transaction amount too small + Преводната Ñума е твърде малка + + + Transaction amounts must be positive + Преводните Ñуми Ñ‚Ñ€Ñбва да Ñа положително чиÑло + + + Transaction too large for fee policy + Твърде голÑм превод за такÑионната политика + + + Transaction too large + Твърде голÑм превод + + + Trying to spend an already spent serial #, try again. + Опитвате Ñе да похарчите, вече похарчен Ñериен номер. Опитайте отново. + + + Unable to bind to %s on this computer (bind returned error %s) + Ðе можем да прикачим %s към този компютър (прикачването даде грешка %s) + + + Unable to sign spork message, wrong key? + Ðе можем да подпишем Ñъобщението по тази вилицо-лъжица, грешен ключ? + + + Unable to start HTTP server. See debug log for details. + Ðе можем да Ñтартираме HTTP Ñървъра. Вижте дебъг логовете за повече подробноÑти. + + + Unknown network specified in -onlynet: '%s' + Ðепозната мрежа е зададена в -onlynet: '%s' + + + Upgrade wallet to latest format + Обновете портфейла до най-Ð½Ð¾Ð²Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ + + + Use UPnP to map the listening port (default: %u) + Използвай UPnP за да картографираш портовете за Ñлушане (по подразбиране: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Използвай UPnP за да картографираш портовете за Ñлушане (по подразбиране: 1 когато Ñлуша) + + + Use a custom max chain reorganization depth (default: %u) + Използвай Ñвободно зададена макÑимална дълбочина за Ñ€ÐµÐ¾Ñ€Ð³Ð°Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° веригата (по подразбиране: %u) + + + Use the test network + Използвайте теÑтова мрежа + + + Username for JSON-RPC connections + ПотребителÑко име за JSON-RPC Ñвръзките + + + Value is below the smallest available denomination (= 1) of zPIV + СтойноÑтта е под най-малката налична Ð´ÐµÐ½Ð¾Ð¼Ð¸Ð½Ð°Ñ†Ð¸Ñ (= 1) в zPIV + + + Verifying blocks... + ПроверÑва блоковете... + + + Verifying wallet... + ПроверÑва портфейла... + + + Wallet %s resides outside data directory %s + Портфейла %s е извън папката Ñ Ð´Ð°Ð½Ð½Ð¸ %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + Портфейла Ñ‚Ñ€Ñбва да Ñе пренапише: реÑтартирайте програмата за завършване на процеÑа + + + Wallet options: + Опции на Портфейла: + + + Wallet window title + Име на прозореца на портфейла + + + Warning + Внимание + + + Warning: This version is obsolete, upgrade required! + Внимание: Тази верÑÐ¸Ñ Ðµ Ñтара, нужен е ъпгрейд! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Внимание: ÐÐµÐ¿Ð¾Ð´Ð´ÑŠÑ€Ð¶Ð°Ð½Ð½Ð¸Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚ -benchmark бе игнориран, използвайте -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Внимание: ÐÐµÐ¿Ð¾Ð´Ð´ÑŠÑ€Ð¶Ð°Ð½Ð½Ð¸Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚ -debugnet бе игнориран, използвайте -debug=net. + + + You don't have enough Zerocoins in your wallet + ÐÑмате доÑтатъчно Zerocoin в портфейла Ñи + + + You need to rebuild the database using -reindex to change -txindex + ТрÑбва да поÑтроите базата данни наново, използвайки -reindex вмеÑто -txindex + + + Zapping all transactions from wallet... + Затриване на вÑички преводи от портфейла... + + + ZeroMQ notification options: + Опции за ZeroMQ извеÑÑ‚Ñване: + + + Zerocoin options: + Zerocoin опции + + + on startup + при Ñтартиране + + + wallet.dat corrupt, salvage failed + wallet.dat е повреден, неуÑпешно ÑпаÑÑване + + + + send + + Form + От + + + TextLabel + ТекÑтовЕтикет + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_ca.ts b/src/qt/locale/pivx_ca.ts new file mode 100644 index 0000000..fe68196 --- /dev/null +++ b/src/qt/locale/pivx_ca.ts @@ -0,0 +1,2129 @@ + + + AddNewAddressDialog + + Dialog + Diàleg + + + My Address + La meva adreça + + + Address + Adreça + + + CANCEL + Cancel·lar + + + OK + D'acord + + + + AddNewContactDialog + + Dialog + Diàleg + + + TextLabel + EtiquetaDeText + + + CANCEL + Cancel·lar + + + OK + D'acord + + + Edit Contact + Editar Contacte + + + Set a label for the selected address + Definir etiqueta a les adreces seleccionades + + + Enter a name for the address (e.g Exchange) + Introdueix un nom per l'adreça (per exemple Exchange) + + + SAVE + Gravar + + + Edit label for the selected address: +%1 + Edita l'etiqueta per l'adreça seleccionada: +%1 + + + + AddressBookPage + + Right-click to edit address or label + Botó dret per editar l'adreça o l'etiqueta + + + Create a new address + Crea una nova adreça + + + &New + &Nou + + + Copy the currently selected address to the system clipboard + Copia l'adreça seleccionada al porta-retalls del sistema + + + &Copy + &Copia + + + Delete the currently selected address from the list + Elimina l'adreça seleccionada de la llista + + + &Delete + &Elimina + + + Export the data in the current tab to a file + Exporta les dades de la pestanya actual a un fitxer + + + &Export + &Exporta + + + C&lose + &Tanca + + + Choose the address to send coins to + Tria l'adreça on enviar les monedes + + + Choose the address to receive coins with + Tria l'adreça on rebre les monedes + + + C&hoose + &Tria + + + Sending addresses + Adreces d'enviament + + + Receiving addresses + Adreces de recepció + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Aquestes són les teves adreces PIVX per fer enviar pagaments. Sempre comprova l'import i l'adreça de recepció abans d'enviar les monedes. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Aquestes són les teves adreces PIVX per rebre pagaments. Es recomana utilitzar noves adreces de recepció per cada transacció. + + + &Copy Address + &Copia adreça + + + Copy &Label + Copia l'eti&queta + + + &Edit + &Edita + + + Export Address List + Exporta la llista d'Adreces + + + Comma separated file (*.csv) + Fitxer separat per comes (*.csv) + + + Exporting Failed + L'exportació ha fallat + + + There was an error trying to save the address list to %1. Please try again. + S'ha produït un error en desar la llista d'adreces a %1. Torneu-ho a provar. + + + + AddressLabelRow + + Form + Formulari + + + + AddressTableModel + + Label + Etiqueta + + + Address + Adreça + + + Date + Data + + + (no label) + (sense etiqueta) + + + + AddressesWidget + + Form + Formulari + + + Send + Envia + + + TextLabel + EtiquetaDeText + + + No active Master Node yet + Encara no es actiu el node Mestre + + + Contact name + Nom del contacte + + + Enter address + Introdueix adreça + + + OK + D'acord + + + Contacts + Contactes + + + You can add a new one in the options menu to the side. + Pots afegir una opció nova al menú d'opcions del costat + + + No contacts yet + No hi han contactes + + + e.g. John Doe + Per exemple: John Doe + + + Enter a PIVX address + Introdueix l'adreça PIVX + + + SAVE + Gravar + + + Invalid Contact Address + Adreça de contacte invalida. + + + Cannot store your own address as contact + No pots guardar la teva adreça com a contacte + + + Address already stored, label: %1 + Adreça ja existeix, etiqueta: %1 + + + New Contact Stored + Nou contacte guardat + + + Error Storing Contact + Error al guardar contacte + + + Contact edited + Contacte editat + + + Contact edit failed + Ha fallat l'edició del contacte + + + Delete Contact + Esborrar contacte + + + You are just about to remove the contact: + +%1 + +Are you sure? + Ets a punt d'esborrar el contacte: + +%1 + +Estàs segur? + + + Contact Deleted + Contacte esborrat + + + Error deleting a contact + Error esborrant contacte + + + Address copied + Adreça copiada + + + + AskPassphraseDialog + + Passphrase Dialog + Diàleg de contrasenya + + + TextLabel + EtiquetaDeText + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Introduïu la contrasenya nova al moneder. <br/>Utilitzeu una contrasenya de <b>deu o més caràcters aleatoris</b>, o <b>vuit o més paraules</b>. + + + Encrypt wallet + Encripta el moneder + + + This operation needs your wallet passphrase to unlock the wallet. + Aquesta operació requereix la contrasenya del moneder per a desbloquejar-lo. + + + Unlock wallet +for staking + Desbloquejar moneder +â€per recompensa + + + Unlock wallet + Desbloqueja el moneder + + + This operation needs your wallet passphrase to decrypt the wallet. + Aquesta operació requereix la contrasenya del moneder per desencriptar-lo. + + + Decrypt wallet + Desencripta el moneder + + + Change passphrase + Canvia la contrasenya + + + Enter the old and new passphrase to the wallet. + Introduïu la contrasenya antiga i la contrasenya nova al moneder. + + + Confirm wallet encryption + Confirma l'encriptació del moneder + + + ENCRYPT + ENCRIPTAR + + + CANCEL + Cancel·lar + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX es tancarà per finalitzar el procés d'encriptació. Recorda que encriptant el teu moneder no protegeix els teus PIV de ser robats si el teu ordinador està infectat amb programari maliciós. + + + Are you sure you wish to encrypt your wallet? + Estàs segur que vols encriptar el moneder? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Avís: Si encripteu el vostre moneder i perdeu la contrasenya, <b>PERDREU TOTS ELS VOSTRES PIVS</b>! + + + Wallet encrypted + Moneder encriptat + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + IMPORTANT: Qualsevol copia previa que hagis fet del moneder, hauria de ser reemplaçada pel nou moneder encriptat que acabes de generar. Per motius de seguretat, les copies previes del moneder sense encriptar, no seran vàlides tant bon punt comencis a fer servir el nou moneder encriptat. + + + Wallet encryption failed + L'encriptació del moneder ha fallat + + + OK + D'acord + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Ha fallat l'encriptació per error intern. El teu moneder no està encriptat. + + + The supplied passphrases do not match. + Les contrasenyes introduïdes no coincideixen. + + + Wallet unlock failed + El desbloqueig del moneder ha fallat + + + The passphrase entered for the wallet decryption was incorrect. + La contrasenya introduïda per a desencriptar el moneder és incorrecta. + + + Wallet decryption failed + La desencriptació del moneder ha fallat. + + + Wallet passphrase was successfully changed. + La contrasenya del moneder ha estat canviada amb èxit. + + + Warning: The Caps Lock key is on! + Atenció: La tecla de bloqueig de majúscules està activada! + + + + BanTableModel + + IP/Netmask + IP/Màscara de xarxa + + + Banned Until + Bloquejat fins + + + + BlockExplorer + + Blockchain Explorer + Explorador del Blockchain + + + Back + Enrere + + + Forward + Endavant + + + Address / Block / Transaction + Adreça / Bloc / Transacció + + + Search + Cerca + + + TextLabel + EtiquetaDeText + + + + CSRow + + Form + Formulari + + + + ClientModel + + Network Alert + Alerta de xarxa + + + + CoinControlDialog + + Quantity: + Quantitat: + + + Bytes: + Bytes: + + + Fee: + Comissió: + + + Coin Selection + Selecció de monedes + + + Change: + Canvi: + + + Tree mode + Mode d'arbre + + + List mode + Mode de llista + + + (1 locked) + (1 bloquejat) + + + Amount + Import + + + 0 + 0 + + + Received with label + Rebut amb l'etiqueta + + + Received with address + Rebut amb l'adreça + + + OK + D'acord + + + Date + Data + + + Confirmations + Confirmacions + + + Confirmed + Confirmat + + + Copy address + Copia l'adreça + + + Copy label + Copia l'etiqueta + + + Copy amount + Copia l'import + + + Copy transaction ID + Copia l'ID de transacció + + + Copy quantity + Copia la quantitat + + + Copy fee + Copia comissió + + + Copy after fee + Copia amb comissió + + + Copy bytes + Copia els bytes + + + Copy priority + Copia la prioritat + + + Copy change + Copia canvi + + + Please switch to "List mode" to use this function. + Si us plau canvia a "Mode llista" per utilitzar aquesta funció. + + + highest + màxima + + + higher + molt alta + + + high + alta + + + medium-high + mitjana-alta + + + medium + mitjana + + + low-medium + baixa-mitjana + + + low + baixa + + + lower + molt baixa + + + lowest + mínima + + + (%1 locked) + (%1 bloquejat) + + + none + cap + + + yes + sí + + + no + no + + + This label turns red, if the transaction size is greater than 1000 bytes. + Aquesta etiqueta es posa vermella si la mida de la transacció és major que 1000 bytes. + + + This means a fee of at least %1 per kB is required. + Això significa que és requereix una comissió d'almenys %1 per kB. + + + Can vary +/- 1 byte per input. + Pot variar +/- 1 byte per entrada. + + + Transactions with higher priority are more likely to get included into a block. + Les transaccions amb prioritat més alta són més probables de ser incloses en el bloc. + + + This label turns red, if the priority is smaller than "medium". + Aquesta etiqueta es posa vermella si la prioritat és més petita que "mitjana" + + + This label turns red, if any recipient receives an amount smaller than %1. + Aquesta etiqueta es posa vermella si algun destinatari rep un import inferior a l' %1. + + + (no label) + (sense etiqueta) + + + change from %1 (%2) + canvi des de %1 (%2) + + + (change) + (canvi) + + + + CoinControlPivWidget + + Dialog + Diàleg + + + PIV: + PIV: + + + TextLabel + EtiquetaDeText + + + Quantity: + Quantitat: + + + Fee: + Comissió: + + + Amount + Import + + + Label + Etiqueta + + + Address + Adreça + + + Type + Tipus + + + Date + Data + + + Confirmations + Confirmacions + + + Bytes: + Bytes: + + + Change: + Canvi: + + + CANCEL + Cancel·lar + + + OK + D'acord + + + + ColdStakingWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + Address copied + Adreça copiada + + + + ContactDropdownRow + + Form + Formulari + + + + DashboardWidget + + Form + Formulari + + + Warning + Atenció + + + TextLabel + EtiquetaDeText + + + zPIV + zPIV + + + Received + Rebut + + + Sent + Enviat + + + + DefaultDialog + + Form + Formulari + + + CANCEL + Cancel·lar + + + SAVE + Gravar + + + + DenomGenerationDialog + + Form + Formulari + + + CANCEL + Cancel·lar + + + SAVE + Gravar + + + + EditAddressDialog + + Edit Address + Edita l'adreça + + + The label associated with this address list entry + L'etiqueta associada amb aquesta entrada de la llibreta d'adreces + + + &Address + &Adreça + + + The address associated with this address list entry. This can only be modified for sending addresses. + L'adreça associada amb aquesta entrada de la llibreta d'adreces. Aquesta només pot ser modificada en les adreces d'enviament. + + + New receiving address + Nova adreça de recepció + + + New sending address + Nova adreça d'enviament + + + Edit receiving address + Edita l'adreça de recepció + + + Edit sending address + Edita l'adreça d'enviament + + + The entered address "%1" is not a valid PIVX address. + L'adreça introduïda "%1" no és una adreça PIVX vàlida. + + + The entered address "%1" is already in the address book. + L'adreça introduïda "%1" ja és a la llibreta d'adreces. + + + Could not unlock wallet. + No s'ha pogut desbloquejar el moneder. + + + New key generation failed. + La generació de la nova clau ha fallat. + + + + ExpandableButton + + Form + Formulari + + + + FreespaceChecker + + A new data directory will be created. + Es crearà una nova carpeta de dades. + + + name + nom + + + Directory already exists. Add %1 if you intend to create a new directory here. + La carpeta ja existeix. Afegeix %1 si la teva intenció és crear una nova carpeta. + + + Path already exists, and is not a directory. + La ruta ja existeix i no és una carpeta. + + + Cannot create data directory here. + No és possible crear una carpeta de dades aquí. + + + + GovernancePage + + Form + Formulari + + + 0 + 0 + + + + HelpMessageDialog + + version + versió + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + Sobre PIVX Core + + + Command-line options + Opcions de línia de comandes + + + Usage: + Ús: + + + command-line options + opcions de línia de comandes + + + UI Options: + Opcions d'interfície d'usuari: + + + Choose data directory on startup (default: %u) + Escull la carpeta de dades a l'iniciar (per defecte: %u) + + + Show splash screen on startup (default: %u) + Mostra la pantalla de benvinguda a l'iniciar (per defecte: %u) + + + Set language, for example "de_DE" (default: system locale) + Selecciona l'idioma, per exemple "ca" (per defecte: idioma del sistema) + + + Start minimized + Inicia minimitzat + + + Set SSL root certificates for payment request (default: -system-) + Estableix el certificats SSL arrel per a la sol·licitud de pagament (per defecte: -sistema-) + + + OK + D'acord + + + + Intro + + Welcome + Benvingut + + + Welcome to PIVX Core. + Benvingut a PIVX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Al ser el primer cop que s'inicia el programa, pots escollir on es desaran les dades del PIVX Core. + + + Use the default data directory + Usar la carpeta de dades per defecte + + + CANCEL + Cancel·lar + + + OK + D'acord + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Error: La carpeta de dades introduïda "%1" no pot ser creada. + + + Error + Error + + + %1 GB of free space available + %1 GB d'espai lliure disponible + + + (of %1 GB needed) + (of %1 GB necessari) + + + + LoadingDialog + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + + LockUnlock + + Form + Formulari + + + + MNRow + + Form + Formulari + + + + MasterNodeWizardDialog + + Dialog + Diàleg + + + Name + Nom + + + Address + Adreça + + + CANCEL + Cancel·lar + + + OK + D'acord + + + + MasterNodesWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + No active Master Node yet + Encara no es actiu el node Mestre + + + Delete + Elimina + + + + MnInfoDialog + + Form + Formulari + + + Status: + Estat: + + + + MyAddressRow + + Form + Formulari + + + + NavMenuWidget + + Form + Formulari + + + + OpenURIDialog + + Open URI + Obre l'URI + + + Open payment request from URI or file + Obre sol·licitud de pagament des d'URI o fitxer. + + + TextLabel + EtiquetaDeText + + + CANCEL + CANCEL·LAR + + + OK + D'ACORD + + + + OptionButton + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + + OptionsDialog + + Options + Opcions + + + MB + MB + + + Allow incoming connections + Permet connexions entrants + + + &Connect through SOCKS5 proxy (default proxy): + &Connecta a través d'un proxy SOCKS5 (proxy per defecte): + + + Expert + Expert + + + Automatically start PIVX after logging in to the system. + Inicia PIVX automàticament després d'identificar-te en el sistema. + + + Whether to show coin control features or not. + Mostra o no les funcionalitats de control de monedes. + + + Enable coin &control features + Activa la funcionalitat de &control de monedes + + + Show Masternodes Tab + Mostra la pestanya de Masternodes + + + &Port: + &Port: + + + User Interface Theme: + Tema de la interfície d'usuari: + + + &Reset Options + &Restableix les opcions + + + &OK + D'ac&ord + + + &Cancel + &Cancel·la + + + none + cap + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + Moneder + + + Node + Node + + + Show or hide the main Window + Mostra o oculta la Finestra principal + + + E&xit + &Surt + + + Quit application + Surt de l'aplicació + + + PIVX Core client + Client PIVX core + + + Error + Error + + + Warning + Atenció + + + Information + Informació + + + + PWidget + + + PaymentServer + + + PeerTableModel + + Version + Versió + + + Ping Time + Temps de Ping + + + + PrivacyWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + No active Master Node yet + Encara no es actiu el node Mestre + + + + ProposalFrame + + + QObject + + Amount + Import + + + %1 d + %1 d + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + XARXA + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + + RPCConsole + + Tools window + Finestra d'eines + + + &Information + &Informació + + + General + General + + + Name + Nom + + + Number of connections + Nombre de connexions + + + &Open + &Obre + + + Network + Xarxa + + + Build date + Data de compilació + + + &Console + &Consola + + + Totals + Totals + + + Received + Rebut + + + Sent + Enviat + + + Protocol + Protocol + + + Version + Versió + + + Services + Serveis + + + Bytes Sent + Bytes Enviats + + + Bytes Received + Bytes Rebuts + + + Ping Time + Temps de Ping + + + Rebuild index + Reconstrueix l'index + + + Type <b>help</b> for an overview of available commands. + Escriu <b>help</b> per obtenir un llistat de les comandes disponibles. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + never + mai + + + + ReceiveDialog + + Dialog + Diàleg + + + CANCEL + CANCEL·LAR + + + OK + D'ACORD + + + + ReceiveWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + Address copied + Adreça copiada + + + + RecentRequestsTableModel + + Date + Data + + + Label + Etiqueta + + + Message + Missatge + + + Address + Adreça + + + Amount + Import + + + (no label) + (sense etiqueta) + + + + RequestDialog + + Dialog + Diàleg + + + Amount + Import + + + TextLabel + EtiquetaDeText + + + CANCEL + Cancel·lar + + + Label + Etiqueta + + + Error + Error + + + + SendChangeAddressDialog + + Dialog + Diàleg + + + CANCEL + Cancel·lar + + + OK + D'acord + + + + SendCustomFeeDialog + + Form + Formulari + + + CANCEL + Cancel·lar + + + OK + D'acord + + + SAVE + Gravar + + + + SendMultiRow + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + + SendWidget + + Send + Envia + + + Amount + Import + + + Cannot store your own address as contact + No pots guardar la teva adreça com a contacte + + + New Contact Stored + Nou contacte guardat + + + Error Storing Contact + Error al guardar contacte + + + + SettingsBackupWallet + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + + SettingsBitToolWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + Import Address + Importa adreça + + + Enter a PIVX address + Introdueix l'adreça PIVX + + + ENCRYPT + ENCRIPTAR + + + The entered passphrase is invalid. + La contrasenya introduïda és incorrecta. + + + Allowed: 0-9,a-z,A-Z, + Permès: 0-9,a-z,A-Z, + + + The entered address is invalid. + L'adreça introduïda no és vàlida + + + Wallet unlock was cancelled. + El desbloqueig del moneder ha estat cancel·lat + + + Data Not Valid. + Dades no vàlides. + + + + SettingsConsoleWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + Type <b>help</b> for an overview of available commands. + Escriu <b>help</b> per obtenir un llistat de les comandes disponibles. + + + + SettingsDisplayOptionsWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + SAVE + Gravar + + + + SettingsFaqWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + + SettingsInformationWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + Information + Informació + + + General + General + + + Network + Xarxa + + + + SettingsMainOptionsWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + SAVE + Gravar + + + + SettingsMultisendDialog + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + CANCEL + Cancel·lar + + + SAVE + Gravar + + + + SettingsMultisendWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + No active Master Node yet + Encara no es actiu el node Mestre + + + Active + Actiu + + + + SettingsSignMessageWidgets + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + Message + Missatge + + + Signature + Signatura + + + The entered address is invalid. + L'adreça introduïda no és vàlida + + + Wallet unlock was cancelled. + El desbloqueig del moneder ha estat cancel·lat + + + Message signed. + Missatge signat. + + + Message verification failed. + La verificació del missatge ha fallat. + + + Message verified. + Missatge verificat. + + + + SettingsWalletOptionsWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + Wallet + Moneder + + + Network + Xarxa + + + Allow incoming connections + Permet connexions entrants + + + SAVE + Gravar + + + + SettingsWalletRepairWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + Rebuild index + Reconstrueix l'index + + + + SettingsWidget + + Form + Formulari + + + TextLabel + EtiquetaDeText + + + Wallet + Moneder + + + Options + Opcions + + + Information + Informació + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core s'està tancant... + + + Do not shut down the computer until this window disappears. + No apagueu l'ordinador fins que aquesta finestra desaparegui. + + + + SnackBar + + Form + Formulari + + + + Splash + + Form + Formulari + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Versió %1 + + + + TooltipMenu + + Form + Formulari + + + Delete + Elimina + + + + TopBar + + Form + Formulari + + + %1 and %2 + %1 i %2 + + + + TrafficGraphWidget + + + TransactionDesc + + %1 confirmations + %1 confirmacions + + + Status + Estat + + + Date + Data + + + label + etiqueta + + + Message + Missatge + + + Transaction + Transacció + + + Amount + Import + + + true + cert + + + false + fals + + + + TransactionTableModel + + Date + Data + + + Type + Tipus + + + Address + Adreça + + + Obfuscated + Ofuscat + + + (n/a) + (n/a) + + + Type of transaction. + Tipus de transacció. + + + + TxDetailDialog + + Form + Formulari + + + Fee: + Comissió: + + + Status: + Estat: + + + TextLabel + EtiquetaDeText + + + CANCEL + Cancel·lar + + + OK + D'acord + + + + TxRow + + Form + Formulari + + + + WalletModel + + + WalletPasswordDialog + + Dialog + Diàleg + + + TextLabel + EtiquetaDeText + + + CANCEL + Cancel·lar + + + OK + D'acord + + + + WelcomeContentWidget + + Dialog + Diàleg + + + Welcome + Benvingut + + + + ZPivControlDialog + + zPiv + zPiv + + + Quantity: + Quantitat: + + + 0 + 0 + + + + pivx-core + + Connection options: + Opcions de connexió: + + + Error + Error + + + Information + Informació + + + Loading block index... + S'està carregant l'índex de blocs... + + + Loading wallet... (%3.2f %%) + S'està carregant el moneder... (%3.2f %%) + + + Loading wallet... + S'està carregant el moneder... + + + Options: + Opcions: + + + RPC server options: + Opcions del servidor RPC: + + + Rescanning... + S'està reescanejant... + + + Synchronization failed + La sincronització ha fallat + + + Synchronization finished + Sincronització finalitzada + + + Verifying blocks... + Verificant blocs... + + + Verifying wallet... + Verificant moneder... + + + Warning + Atenció + + + + send + + Form + Formulari + + + Send + Envia + + + TextLabel + EtiquetaDeText + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_cs.ts b/src/qt/locale/pivx_cs.ts new file mode 100644 index 0000000..a21c68e --- /dev/null +++ b/src/qt/locale/pivx_cs.ts @@ -0,0 +1,1909 @@ + + + AddNewAddressDialog + + Address + Adresa + + + + AddNewContactDialog + + TextLabel + TextPopisku + + + + AddressBookPage + + Right-click to edit address or label + Pravým kliknutím upravte adresu nebo popisek + + + Create a new address + VytvoÅ™it novou adresu + + + &New + &Nová + + + Copy the currently selected address to the system clipboard + Kopírovat vybranou adresu do schránky + + + &Copy + &Kopírovat + + + Delete the currently selected address from the list + Smazat aktuálnÄ› vybranou adresu ze seznamu + + + &Delete + &Smazat + + + Export the data in the current tab to a file + Exportovat data z aktulní záložky do souboru + + + &Export + &Exportovat + + + C&lose + Z&avřít + + + Choose the address to send coins to + Vybrat adresu kam poslat peníze + + + Choose the address to receive coins with + Vybrat adresu pro pÅ™ijetí penÄ›z + + + C&hoose + V&ybrat + + + Sending addresses + Adresy pro odeslání penÄ›z + + + Receiving addresses + Adresy pro pÅ™ijetí penÄ›z + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Toto jsou VaÅ¡e PIVX adresy pro poslání platby. Vždy si pÅ™ekontrolujte množství penÄ›z a cílovou adresu než platbu odeÅ¡lete. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Toto jsou VaÅ¡e PIVX adresy pro pÅ™ijetí plateb. Je doporuÄeno použít novou adresu pro každou novou transakci. + + + &Copy Address + &Kopírovat Adresu + + + Copy &Label + Kopírovat &Popis + + + &Edit + &Upravit + + + Export Address List + Exportovat Seznam Adres + + + Comma separated file (*.csv) + Comma separated file (*.csv) + + + Exporting Failed + Export selhal + + + There was an error trying to save the address list to %1. Please try again. + Objevila se chyba pÅ™i pokusu o uložení seznamu adres do %1. Prosím, zkuste to znovu. + + + + AddressLabelRow + + Form + Od + + + + AddressTableModel + + Label + Popis + + + Address + Adresa + + + Date + Datum + + + (no label) + (bez popisku) + + + + AddressesWidget + + Form + Od + + + TextLabel + TextPopisku + + + + AskPassphraseDialog + + Passphrase Dialog + Dialog frázového hesla + + + TextLabel + TextPopisku + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Zadejte nové frázové heslo pro VaÅ¡i peněženku <br/> Prosím, použijte frázové heslo z <b> nebo více náhodných znaků </b>, nebo<b>z osmi nebo více slov</b> . + + + Encrypt wallet + Å ifrovat peněženku + + + This operation needs your wallet passphrase to unlock the wallet. + Pro tuto operaci potÅ™ebujete frázové heslo k odemÄení Vaší paněženky. + + + Unlock wallet + Odemknout peněženku + + + This operation needs your wallet passphrase to decrypt the wallet. + Pro tuto operaci potÅ™ebujete frázové heslo pro odÅ¡ifrování Vaší paněženky. + + + Decrypt wallet + OdÅ¡ifrovat peněženku + + + Change passphrase + ZmÄ›nit frázové heslo + + + Enter the old and new passphrase to the wallet. + Zadajete staré a nové frázové heslo Vaší peněženky. + + + Confirm wallet encryption + Potvrdit zaÅ¡ifrování peněženky + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX se teÄ zavÅ™e pro dokonÄení Å¡ifrovacího procesu. Prosím, vemte na vÄ›domí, že zaÅ¡ifrování Vaší peněženky plnÄ› neochrání VaÅ¡e PIVy pÅ™ed krádží, pokud je Váš poÄítaÄ infikován malwarem. + + + Are you sure you wish to encrypt your wallet? + Opravdu chcete zaÅ¡ifrovat VaÅ¡i peněženku? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Varování: Pokud zaÅ¡ifrujete svou peněženku a ztratíte frázové heslo, tak <b>ZTRATÃTE VÅ ECHNY VAÅ E PIVy</b>! + + + Wallet encrypted + PÄ›něženka je zaÅ¡ifrována + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + DÅ®LEŽITÉ: Každá pÅ™edeÅ¡lá zaloha, kterou jste provedli, by mÄ›la být nahrazena novÄ› vygenerovanou, Å¡ifrovavou zálohou soboru Vaší peněženky. Z bezpeÄnostních důvodů budou vÅ¡echny pÅ™edeÅ¡lé zálohy nezaÅ¡ifrované peněženky nepoužitelné, jakmile zaÄnete používat novÄ› zaÅ¡ifrovanou peněženku. + + + Wallet encryption failed + Å ifrování peněženky selhalo + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Å ifrování peněženky selhalo kvůli vnitÅ™ní chybÄ› aplikace. VaÅ¡e peněženka není zaÅ¡ifrovaná. + + + The supplied passphrases do not match. + Zadaná frázová hesla se neshodují. + + + Wallet unlock failed + UzamÄení pÄ›něženky selhalo + + + The passphrase entered for the wallet decryption was incorrect. + Zadané frázové heslo pro deÅ¡ifrování peněženky není správné. + + + Wallet decryption failed + OdÅ¡ifrování peněženky selhalo + + + Wallet passphrase was successfully changed. + Frázové heslo peněženky bylo úspěšnÄ› zmÄ›nÄ›no. + + + Warning: The Caps Lock key is on! + Vaarování: Cpas Lock je zapnutý! + + + + BanTableModel + + + BlockExplorer + + Blockchain Explorer + Blockchainový průzkumník + + + Back + ZpÄ›t + + + Forward + Dále + + + Address / Block / Transaction + Adresa / Blok / Transakce + + + Search + Hledat + + + TextLabel + TextPopisku + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Ne vÅ¡echny transakce budou zobrazeny. Pro zobrazení vÅ¡ech transackí nastavte v konfiguraÄním souboru (pivx.conf) txindex=1. + + + + CSRow + + Form + Od + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Celkem: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / neznámé: %5) + + + Network Alert + UpozornÄ›ní sítÄ› + + + + CoinControlDialog + + Quantity: + Množství: + + + Bytes: + Byty: + + + Fee: + Poplatek: + + + Coin Selection + VýbÄ›r mince + + + Change: + ZmÄ›na: + + + Tree mode + Stromový mód + + + List mode + Seznamový mód + + + (1 locked) + (1 zamÄeno) + + + Amount + Hodnota + + + 0 + 0 + + + Received with label + Obdrženo s popiskem + + + Received with address + Obdrženo s adresou + + + Date + Datum + + + Confirmations + Potvrzení + + + Confirmed + Potvrzeno + + + Copy address + Kopírovat adresu + + + Copy label + Kopírovat popisek + + + Copy amount + Kopírovat hodnotu + + + Copy transaction ID + Kopírovat ID transakce + + + Lock unspent + Zamknout neutracené + + + Unlock unspent + Odemknout neutracené + + + Copy quantity + Kopíroat množstí + + + Copy fee + Kopírovat poplatek + + + Copy after fee + Kopírovat s poplatkem + + + Copy bytes + Kopírovat byty + + + Copy priority + Kopírovat prioritu + + + Copy change + Kopírovat zmÄ›nu + + + Please switch to "List mode" to use this function. + Prosím, pÅ™epnÄ›to do "Seznamového módu" pro použití této funkce + + + highest + nejvyšší + + + higher + vyšší + + + high + vysoký + + + medium-high + stÅ™ednÄ› vysoký + + + medium + stÅ™ední + + + low-medium + stÅ™ednÄ› malý + + + low + nízký + + + lower + nižší + + + lowest + nejnižší + + + (%1 locked) + (%1 zamknuto) + + + none + žádný + + + yes + ano + + + no + ne + + + This label turns red, if the transaction size is greater than 1000 bytes. + Tento text zÄervená, pokud bude velikost transakce vÄ›tší než 1000 bytů. + + + This means a fee of at least %1 per kB is required. + To znamÄ›ná, že nejnižší nutný poplatek musí být nejménÄ› %1 za kB. + + + Can vary +/- 1 byte per input. + Může se liÅ¡it +/- 1 byte na vstup. + + + Transactions with higher priority are more likely to get included into a block. + Transakce s vyšší prioritou bude pravdÄ›podobnÄ›ji zaÅ™azena do bloku. + + + This label turns red, if the priority is smaller than "medium". + Tento text zÄervená, pokud je priorita menší než "stÅ™ední". + + + This label turns red, if any recipient receives an amount smaller than %1. + Tento text zÄervená, pokud je hodnota pro nÄ›kterého z příjemců menší než %1. + + + (no label) + (bez popisku) + + + change from %1 (%2) + zmÄ›na z %1 (%2) + + + (change) + (zmÄ›na) + + + + CoinControlPivWidget + + TextLabel + TextPopisku + + + Quantity: + Množství: + + + Fee: + Poplatek: + + + Amount + Hodnota + + + Label + Popis + + + Address + Adresa + + + Date + Datum + + + Confirmations + Potvrzení + + + Bytes: + Byty: + + + Change: + ZmÄ›na: + + + + ColdStakingWidget + + Form + Od + + + TextLabel + TextPopisku + + + + ContactDropdownRow + + Form + Od + + + + DashboardWidget + + Form + Od + + + Warning + Varování + + + TextLabel + TextPopisku + + + Received + PÅ™ijato + + + Sent + Odesláno + + + + DefaultDialog + + Form + Od + + + + DenomGenerationDialog + + Form + Od + + + + EditAddressDialog + + Edit Address + Upravit adresu + + + &Label + &Popis + + + &Address + &Adresy + + + New receiving address + Nová adresa pro pÅ™ijetí platby + + + New sending address + Nová adresa k odeslání platby + + + Edit receiving address + Upravit adresu pro pÅ™ijetí platby + + + Edit sending address + Upravit adresu k odeslání platby + + + The entered address "%1" is not a valid PIVX address. + Zadaná adresa "%1" není validní PIVX adresa. + + + The entered address "%1" is already in the address book. + Zadaná adresa "%1" je již ve VaÅ¡em seznamu adres. + + + Could not unlock wallet. + NepodaÅ™ilo se odemknout peněženku. + + + New key generation failed. + Generování nového klíÄe selhalo. + + + + ExpandableButton + + Form + Od + + + + FreespaceChecker + + A new data directory will be created. + Nová složka byla vytvoÅ™ena. + + + name + jméno + + + Directory already exists. Add %1 if you intend to create a new directory here. + Složka již existuje. PÅ™idejte %1 pokud zde chcete vytvoÅ™it novou složku. + + + Path already exists, and is not a directory. + Cesta již existuje, a není to složka + + + Cannot create data directory here. + Zde nelze vytvoÅ™it složku. + + + + GovernancePage + + Form + Od + + + 0 + 0 + + + + HelpMessageDialog + + version + verze + + + PIVX Core + PIVX Core + + + About PIVX Core + O PIVX Core + + + Command-line options + Možnosti příkazové řádky + + + Usage: + Použití: + + + command-line options + možnosti příkazové řádky + + + Set language, for example "de_DE" (default: system locale) + Nastavit jazyk, například "de_DE" (defaultnÄ›: systémová lokalizace) + + + Start minimized + Spustit minimalizované + + + Set SSL root certificates for payment request (default: -system-) + Nastavit SSL koÅ™enový certifikát pro platební žádosti (defaultnÄ›: - system-) + + + + Intro + + Welcome + Vítejte + + + Welcome to PIVX Core. + Vítejte v PIVX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + PÅ™i prvním spuÅ¡tÄ›ní programu si můžete vybrat, kam bude PIVX Core ukládat svá data. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core stáhne a uloží kopii PIVX blockchainu. NejménÄ› %1GB dat bude do této složky uloženo a v průbÄ›hu Äasu bude ukládat další data. Peněženka bude v této složce uložena také. + + + Use the default data directory + Použít defaultnÄ› nastavenou složku pro data + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Chyba: Zvolená složka "%1" nemůže být vytvoÅ™ena. + + + Error + Chyba + + + %1 GB of free space available + %1 GB dostupného volného místa + + + (of %1 GB needed) + (z %1 GB potÅ™eba) + + + + LoadingDialog + + Form + Od + + + TextLabel + TextPopisku + + + + LockUnlock + + Form + Od + + + + MNRow + + Form + Od + + + + MasterNodeWizardDialog + + Name + Jméno + + + Address + Adresa + + + + MasterNodesWidget + + Form + Od + + + TextLabel + TextPopisku + + + Delete + Smazat + + + + MnInfoDialog + + Form + Od + + + Status: + Stav: + + + + MyAddressRow + + Form + Od + + + + NavMenuWidget + + Form + Od + + + + OpenURIDialog + + Open URI + Otevřít URI + + + TextLabel + TextPopisku + + + Select payment request file + Vybrat soubor vyžádání platby + + + Select payment request file to open + Vybrat soubor vyžádání platby pro otevÅ™ení + + + + OptionButton + + Form + Od + + + TextLabel + TextPopisku + + + + OptionsDialog + + Options + Možnosti + + + &Main + &Hlavní + + + Size of &database cache + Velikost &databatové cahce + + + MB + MB + + + Number of script &verification threads + PoÄet skriptových &ověřovacích vláken + + + W&allet + P&eněženka + + + Accept connections from outside + PÅ™ijmout pÅ™ipojení z venÄí + + + Allow incoming connections + Povolit příchozí spojení + + + Expert + Expert + + + Automatically start PIVX after logging in to the system. + Automaticky spustit PIVX po pÅ™ihlášení do systému + + + &Start PIVX on system login + &Spusti PIVX pÅ™i pÅ™ihlášení do systému + + + Show Masternodes Tab + Zobrazit záložku Masternodů + + + &Network + &Síť + + + Proxy &IP: + Proxy &IP + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP adresa proxy (například IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Port + + + Port of the proxy (e.g. 9050) + Port proxy (například 9050) + + + &Window + &Okno + + + M&inimize on close + PÅ™i zavÅ™ení minimalizovat + + + &Display + &Zobrazit + + + Reset all client options to default. + Resetovat vÅ¡echny klintské volby na defaultní hodnoty. + + + &Reset Options + &Resetovat Volby + + + &OK + &OK + + + &Cancel + &ZruÅ¡it + + + none + žádný + + + Confirm options reset + Potvrdit resetování voleb + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + Peněženka + + + Node + Uzel + + + &Show / Hide + &Zobrazit / Schovat + + + Show or hide the main Window + Zobrazit nebo schovat hlavní okno + + + E&xit + E&xit + + + Quit application + Zavřít aplikaci + + + PIVX Core client + PIVX Core klient + + + Error + Chyba + + + Warning + Varování + + + Information + Informace + + + Sent MultiSend transaction + Odeslat MultiSend transakci + + + Sent transaction + Odeslané transakce + + + Incoming transaction + Příchozí transakce + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Datum: %1 +Hodnota: %2 +Typ: %3 +Adresa: %4 + + + + + PWidget + + + PaymentServer + + Invalid payment address %1 + Nevalidní adresa pro platbu %1 + + + + PeerTableModel + + Version + Verze + + + Ping Time + ÄŒas pingnutí + + + + PrivacyWidget + + Form + Od + + + TextLabel + TextPopisku + + + + ProposalFrame + + + QObject + + Amount + Hodnota + + + %1 d + %1 d + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + N/A + N/A + + + PIVX Core + PIVX Core + + + + RPCConsole + + &Information + &Informace + + + General + Obecné + + + Name + Jméno + + + Client name + Jméno klienta + + + N/A + N/A + + + Number of connections + PoÄet spojení + + + &Open + &Otevřít + + + Network + Síť + + + Last block time + ÄŒas posledního bloku + + + Build date + ÄŒas buildu + + + Current number of blocks + Aktuální poÄet bloků + + + Client version + Verze Klienta + + + Block chain + Blockchain + + + Number of Masternodes + PoÄet Masternodů + + + &Console + Konzole + + + Clear console + Vymazat konzoli + + + &Clear + &Vymazat + + + Totals + Celkem + + + Received + PÅ™ijato + + + Sent + Odesláno + + + &Peers + &Peerů + + + Direction + SmÄ›r + + + Protocol + Protokol + + + Version + Verze + + + Services + Služby + + + Last Send + Poslední odeslané + + + Last Receive + Poslední pÅ™ijaté + + + Bytes Sent + Odeslané Byty + + + Bytes Received + PÅ™ijaté Byty + + + Ping Time + ÄŒas pingnutí + + + &Wallet Repair + &Oprava Peněženky + + + Rescan blockchain files + Reskenovat soubory blockchainu + + + Upgrade wallet format + Upgradovat formát peněženky + + + In: + Vstup: + + + Out: + Výstup + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + + ReceiveDialog + + + ReceiveWidget + + Form + Od + + + TextLabel + TextPopisku + + + + RecentRequestsTableModel + + Date + Datum + + + Label + Popis + + + Message + Zpráva + + + Address + Adresa + + + Amount + Hodnota + + + (no label) + (bez popisku) + + + + RequestDialog + + Amount + Hodnota + + + TextLabel + TextPopisku + + + Label + Popis + + + Error + Chyba + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + Form + Od + + + + SendMultiRow + + Form + Od + + + TextLabel + TextPopisku + + + + SendWidget + + Amount + Hodnota + + + + SettingsBackupWallet + + Form + Od + + + TextLabel + TextPopisku + + + + SettingsBitToolWidget + + Form + Od + + + TextLabel + TextPopisku + + + Import Address + Importovat Adresu + + + Clear + Vymazat + + + The entered passphrase is invalid. + Zadané frázové heslo není validní. + + + Allowed: 0-9,a-z,A-Z, + Povoleno: 0-9,a-z,A-Z, + + + The entered address is invalid. + Zadaná adresa není validní. + + + Please check the address and try again. + Prosím zkontolujte adresu a zkuste to znovu. + + + The entered address does not refer to a key. + Zadaná adresa neodpovídá klíÄi. + + + Wallet unlock was cancelled. + Odemknutí peněženky bylo zruÅ¡eno. + + + Private key for the entered address is not available. + Privátní klÃ­Ä pro zadanou adresu není dostupný. + + + Failed to decrypt. + DeÅ¡ifrování selhalo. + + + Please check the key and passphrase and try again. + Prosím, zkontrolujte klÃ­Ä a frázové heslo a zkuste to znovu. + + + Data Not Valid. + Data nejsou validní. + + + Please try again. + Prosím, zkuste to znovu. + + + Please wait while key is imported + Prosím, poÄkejte než se klÃ­Ä importuje + + + + SettingsConsoleWidget + + Form + Od + + + TextLabel + TextPopisku + + + + SettingsDisplayOptionsWidget + + Form + Od + + + TextLabel + TextPopisku + + + + SettingsFaqWidget + + Form + Od + + + TextLabel + TextPopisku + + + + SettingsInformationWidget + + Form + Od + + + TextLabel + TextPopisku + + + Information + Informace + + + General + Obecné + + + Network + Síť + + + In: + Vstup: + + + Out: + Výstup + + + + SettingsMainOptionsWidget + + Form + Od + + + TextLabel + TextPopisku + + + + SettingsMultisendDialog + + Form + Od + + + TextLabel + TextPopisku + + + + SettingsMultisendWidget + + Form + Od + + + TextLabel + TextPopisku + + + Active + Aktivní + + + + SettingsSignMessageWidgets + + Form + Od + + + TextLabel + TextPopisku + + + Clear + Vymazat + + + Message + Zpráva + + + Signature + Podpis + + + The entered address is invalid. + Zadaná adresa není validní. + + + Please check the address and try again. + Prosím zkontolujte adresu a zkuste to znovu. + + + The entered address does not refer to a key. + Zadaná adresa neodpovídá klíÄi. + + + Wallet unlock was cancelled. + Odemknutí peněženky bylo zruÅ¡eno. + + + Private key for the entered address is not available. + Privátní klÃ­Ä pro zadanou adresu není dostupný. + + + + SettingsWalletOptionsWidget + + Form + Od + + + TextLabel + TextPopisku + + + Wallet + Peněženka + + + Network + Síť + + + Allow incoming connections + Povolit příchozí spojení + + + + SettingsWalletRepairWidget + + Form + Od + + + TextLabel + TextPopisku + + + Upgrade wallet format + Upgradovat formát peněženky + + + + SettingsWidget + + Form + Od + + + TextLabel + TextPopisku + + + Wallet + Peněženka + + + Options + Možnosti + + + Information + Informace + + + Confirm options reset + Potvrdit resetování voleb + + + + ShutdownWindow + + + SnackBar + + Form + Od + + + + Splash + + Form + Od + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + + TooltipMenu + + Form + Od + + + Delete + Smazat + + + + TopBar + + Form + Od + + + %1 and %2 + %1 a %2 + + + + TrafficGraphWidget + + + TransactionDesc + + Status + Stav + + + Date + Datum + + + Message + Zpráva + + + Amount + Hodnota + + + + TransactionTableModel + + Date + Datum + + + Address + Adresa + + + + TxDetailDialog + + Form + Od + + + Fee: + Poplatek: + + + Status: + Stav: + + + TextLabel + TextPopisku + + + + TxRow + + Form + Od + + + + WalletModel + + + WalletPasswordDialog + + TextLabel + TextPopisku + + + + WelcomeContentWidget + + Welcome + Vítejte + + + + ZPivControlDialog + + Quantity: + Množství: + + + 0 + 0 + + + + pivx-core + + Error + Chyba + + + Information + Informace + + + Synchronization failed + Synchronizace selhala + + + Synchronization finished + Synchronizace dokonÄena + + + Synchronization pending... + Synchronizace probíhá + + + Synchronizing budgets... + Synchronizace rozpoÄtu... + + + Synchronizing masternode winners... + Synchronizace vítÄ›zných masternodů... + + + Synchronizing masternodes... + Synchronizace masternodů... + + + This is experimental software. + Toto je experimentální software. + + + Transaction amount too small + Hodnota transakce je příliÅ¡ malá + + + Transaction amounts must be positive + Hodnota transakce musí být kladná + + + Transaction too large for fee policy + Transakce je příliÅ¡ velká s ohledem na pravidla poplatků + + + Transaction too large + Transakce je příliÅ¡ velká + + + Unknown network specified in -onlynet: '%s' + Neznámá síť uvedená v -onlynet: '%s' + + + Upgrade wallet to latest format + Upgradovat peněženku do nejnovÄ›jšího formátu + + + Use the test network + Použít testovací síť + + + Verifying blocks... + Ověřování bloků... + + + Verifying wallet... + Ověřování peněženky... + + + Wallet options: + Možnosti peněženky: + + + Wallet window title + Titulek okna peněženky + + + Warning + Varování + + + Warning: This version is obsolete, upgrade required! + Varování: Tato verze je zastaralá, vyžadován upgrade! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Varování: Nepodporovaný argument -benchmark je ignorován, použijte -debug=bench + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Varování: Nepodporovaný argument -debugnet je ignorován, použijte -debug=net + + + on startup + pÅ™i spuÅ¡tÄ›ní + + + + send + + Form + Od + + + TextLabel + TextPopisku + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_da.ts b/src/qt/locale/pivx_da.ts new file mode 100644 index 0000000..829fe7d --- /dev/null +++ b/src/qt/locale/pivx_da.ts @@ -0,0 +1,4834 @@ + + + AddNewAddressDialog + + Dialog + Dialog + + + My Address + Min Adresse + + + Address + Adresse + + + PushButton + Tryk pÃ¥ Knappen + + + CANCEL + Afslut + + + OK + Ok + + + + AddNewContactDialog + + Dialog + Dialog + + + TextLabel + Tekstmærke + + + CANCEL + Afslut + + + OK + Ok + + + Edit Contact + Rediger Kontakt + + + Enter a name for the address (e.g Exchange) + Skriv et navn for Adressen (F.eks exchange) + + + SAVE + Gem + + + + AddressBookPage + + Right-click to edit address or label + Højreklik for at rette adressen eller teksten + + + Create a new address + opret ny adresse + + + &New + &Ny + + + Copy the currently selected address to the system clipboard + Kopier til udklipsholder + + + &Copy + &Kopier + + + Delete the currently selected address from the list + Slet den valgte adresse fra listen + + + &Delete + &Slet + + + Export the data in the current tab to a file + Eksporter aktuelle tekst til en fil + + + &Export + E&ksporter + + + C&lose + L&uk + + + Choose the address to send coins to + Vælg modtageradresse at sende til + + + Choose the address to receive coins with + Vælg egen modtageradresse + + + C&hoose + V&ælg + + + Sending addresses + Afsenderadresse + + + Receiving addresses + Modtageradresse + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Dine adresser til at sende betalinger med. Kontroller altid bÃ¥de beløb og modtageradresse før afsendelse. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Dette er dine modtager adresser. Det anbefales at anvende en ny adresse til hver transaktion + + + &Copy Address + Kopier adresse + + + Copy &Label + Kopier tekst + + + &Edit + Ret + + + Export Address List + Eksporter adresseliste + + + Comma separated file (*.csv) + Kommasepareret fil (*.csv) + + + Exporting Failed + Eksporten fejlede + + + There was an error trying to save the address list to %1. Please try again. + Der opstod en fejl under forsøget pÃ¥ at gemme adressen i liste %1. Prøv igen + + + + AddressLabelRow + + Form + Formular + + + Bob Allen + Bob Allen + + + + AddressTableModel + + Label + Mærke + + + Address + Adresse + + + Date + Dato + + + (no label) + (ingen opmærknig) + + + + AddressesWidget + + Form + Formular + + + Send + send + + + TextLabel + Tekstmærke + + + No active Master Node yet + Ingen aktiv Master node endnu + + + Contact name + Kontakt Navn + + + Enter address + Skriv adresse + + + OK + Ok + + + Contacts + Kontakter + + + You can add a new one in the options menu to the side. + Du kan tilføje en ny i options menuen i siden + + + No contacts yet + Ingen kontakter endnu + + + e.g. John Doe + F.eks John Doe + + + Enter a PIVX address + Skriv en PIVX adresse + + + SAVE + Gem + + + Invalid Contact Address + Ugyldig Kontakt Adresse + + + Cannot store your own address as contact + Du kan ikke gemme din egen adresse som kontakt + + + Address already stored, label: %1 + Adressen er allerede gemt, label: %1 + + + New Contact Stored + Ny kontakt Gemt + + + Error Storing Contact + Fejl + + + Contact edited + Kontakt ændret + + + + Contact edit failed + Fejl ved kontakt ændring + + + Delete Contact + Slet kontakt + + + You are just about to remove the contact: + +%1 + +Are you sure? + Du er ved er slette kontakten: + +%1 + +Er du sikker? + + + Contact Deleted + Kontakt slettede + + + Address copied + Adresse kopieret + + + + AskPassphraseDialog + + Passphrase Dialog + Password dialog + + + TextLabel + Tekstmærke + + + PushButton + Tryk pÃ¥ Knappen + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Indtast et password til tegnebogen. <br/> Brug mindst 10 karakterer<b>eller<b> mindst 8 ord<b>. + + + Encrypt wallet + Kryptografér tegnebogen + + + This operation needs your wallet passphrase to unlock the wallet. + Dette kræver dit password for at lÃ¥se tegnebogen op + + + Unlock wallet +for staking + LÃ¥s tegnebogen op +For Staking + + + Unlock wallet + LÃ¥s tegnebogen op + + + This operation needs your wallet passphrase to decrypt the wallet. + Dette kræver dit password for at dekryptere tegnebogen + + + Decrypt wallet + Dekrypter tegnebogen + + + Change passphrase + Skift password + + + Enter the old and new passphrase to the wallet. + Indtast det gamle og det nye password til tegnebogen + + + Confirm wallet encryption + Bekræft, og tegnebogen krypteres. + + + ENCRYPT + Enkrypter + + + CANCEL + Afslut + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX vil lukke ned for at færdiggøre kryptograferingsprocesserne. Husk at kryptering alene ikke sikrer mod tyveri af mønterne fra malware eller virus pÃ¥ computeren. + + + Are you sure you wish to encrypt your wallet? + Er du sikker pÃ¥, at du vil kryptere din tegnebog? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Advarsel! Hvis du krypterer din tegnebog og mister dit password vil du <b>MISTE ALLE DINE PIV</b>. Passworded kan ikke genskabes. + + + Wallet encrypted + Tegnebogen er nu krypteret + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + Vigtigt! Alle sikkerhedskopier er er lavet af tegnebogen bør fjernes og erstattes med den nye kryptograferede tegnebogsfil. Af sikkerhedsmæssige Ã¥rsager vil alle tidligere sikkerhedskopier, som har været taget af den ukrypterede tegnebog være uanvendelige sÃ¥ snart De tager den nye, krypterede tegnebog i brug. + + + Wallet encryption failed + Kryptografering af tegnebogen fejlede + + + OK + Ok + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Kryptografering af tegnebogen fejlede pÃ¥ grund af en intern fejl. Tegnebogen er ikke kryptograferet. + + + The supplied passphrases do not match. + De indtastede passwords er ikke ens. + + + Wallet unlock failed + Tegnebogen kunne ikke lÃ¥ses op + + + The passphrase entered for the wallet decryption was incorrect. + Det indtastede password er forkert og kan ikke dekryptere tegnebogen + + + Wallet decryption failed + Dekryptering fejlede. + + + Wallet passphrase was successfully changed. + Kodeordet blev udskiftet. + + + Warning: The Caps Lock key is on! + Advarsel! Caps-Lock er aktiveret + + + + BanTableModel + + IP/Netmask + IP / Netmaske + + + Banned Until + Forbudt indtil + + + + BlockExplorer + + Blockchain Explorer + Blockcain eksplorer + + + Back + Tilbage + + + Forward + Frem + + + Address / Block / Transaction + Adresse / Blok / Transaktion + + + Search + Søg + + + TextLabel + Tekstmærke + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Ikke alle transaktioner vil blive vist. For at vise alle transaktioner mÃ¥ De sætte "txindex=1" i konfigurationsfilen (pivx.conf). + + + + CSRow + + Form + Formular + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + I alt: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Ukendt: %5) + + + Network Alert + Netværksalarm! + + + + CoinControlDialog + + Quantity: + Antal: + + + Bytes: + Bytes: + + + Fee: + Gebyr: + + + Coin Selection + Møntvalg + + + Dust: + Affald: + + + Change: + Penge tilbage: + + + Tree mode + Visning i træstruktur + + + List mode + Visning som liste + + + (1 locked) + (1 lÃ¥st) + + + Amount + Beløb + + + Transaction Details + Transaktions Detaljer + + + PushButton + Tryk pÃ¥ Knappen + + + 0.00 PIV + 0.00 PIV + + + 0 + 0 + + + Select all + Vælg Alt + + + Received with label + Modtaget med tekstmærke + + + Received with address + Modtaget med adresse + + + After Fee: + Efter Gebyr + + + OK + Ok + + + Date + Dato + + + Confirmations + Bekræftelser + + + Confirmed + Bekræftet + + + Copy address + Kopiér adresse + + + Copy label + Kopiér tekstmærke + + + Copy amount + Kopiér beløb + + + Copy transaction ID + Kopiér transaktionsID + + + Lock unspent + LÃ¥s ubrugte + + + Unlock unspent + LÃ¥s ubrugte op + + + Copy quantity + Kopiér antal + + + Copy fee + Kopiér gebyr + + + Copy after fee + Kopiér efterbetaling + + + Copy bytes + Kopiér bytes + + + Copy priority + Kopiér prioritet + + + Copy dust + Kopiér affald + + + Copy change + Kopiér "penge tilbage" + + + Unselect all + Fjern markering af alle + + + Please switch to "List mode" to use this function. + Skift til "listeformat" for at benytte denne funktion + + + highest + højeste + + + higher + Højere + + + high + høj + + + medium-high + middelhøj + + + medium + Middel + + + low-medium + middellav + + + low + lav + + + lower + lavere + + + lowest + lavest + + + (%1 locked) + (%1 lÃ¥st) + + + none + ingen + + + yes + ja + + + no + nej + + + This label turns red, if the transaction size is greater than 1000 bytes. + Denne tekstmarkør bliver rød, hvis transaktionens størrelse overstiger 1000 bytes. + + + This means a fee of at least %1 per kB is required. + Dette resulterer i et nødvendigt gebyr pÃ¥ mindst %1 pr. kB + + + Can vary +/- 1 byte per input. + Kan variere +/- 1 byte pr. input + + + Transactions with higher priority are more likely to get included into a block. + Transaktionerne med højere prioritet vil sandsynligvis blive inkluderet i en blok + + + This label turns red, if the priority is smaller than "medium". + Denne tekstmrkør bliver rød, hvis prioriteten er mindre end middel. + + + This label turns red, if any recipient receives an amount smaller than %1. + Denne tekstmarkør bliver rød, hvis en modtageradresse modtager et beløb mindre end %1. + + + Can vary +/- %1 upiv per input. + Kan variere +/- %1 opiv pr input. + + + (no label) + (ingen opmærknig) + + + change from %1 (%2) + tilbage fra %1 (%2) + + + (change) + (Retur) + + + + CoinControlPivWidget + + Dialog + Dialog + + + Transaction Details + Transaktions Detaljer + + + PushButton + Tryk pÃ¥ Knappen + + + PIV: + PIV: + + + TextLabel + Tekstmærke + + + Quantity: + Antal: + + + Fee: + Gebyr: + + + Amount + Beløb + + + Label + Mærke + + + Address + Adresse + + + Type + Type + + + Date + Dato + + + Confirmations + Bekræftelser + + + Bytes: + Bytes: + + + Dust: + Affald: + + + Change: + Penge tilbage: + + + After Fee: + Efter Gebyr + + + CANCEL + Afslut + + + OK + Ok + + + + ColdStakingWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + PushButton + Tryk pÃ¥ Knappen + + + Address copied + Adresse kopieret + + + + ContactDropdownRow + + Form + Formular + + + Bob Allen + Bob Allen + + + + DashboardWidget + + Form + Formular + + + Transactions + Transaktioner + + + You can see here the history of your account + Du kan her se historiken af din konto + + + Warning + Advarsel! + + + No transactions + Ingen Transaktioner + + + PushButton + Tryk pÃ¥ Knappen + + + Staking Rewards + Opbevarings Belønninger + + + TextLabel + Tekstmærke + + + Staking statistics + Opbevarings statistik + + + PIV + PIV + + + zPIV + zPIV + + + Days + Dage + + + Months + MÃ¥neder + + + Years + Ã…r + + + You can view your account's history + Du kan se din konto historik + + + Amount of PIV and zPIV staked. + Mængden af PIV og zPIV opbevaret + + + All + Alt + + + Received + Modtaget + + + Sent + Sendt + + + Mined + Mineret + + + Minted + Mintet + + + MN reward + MN belønning + + + To yourself + Til Dem selv + + + Please wait until the wallet is fully synced to see your correct balance + Vær sød og vent til pungen er fuldt synced for at kunne se din korrekte balance + + + No transactions yet + Ingen transaktioner endnu + + + How to get PIV or zPIV + Hvordan man fÃ¥r PIV eller zPIV + + + You can verify the staking activity in the status bar at the top right of the wallet. +It will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced. + Du kan verificere din opbevarings aktivitet i den status bar som er til højre i toppen af din pung. +Den vil starte automatisk sÃ¥ snart at pungen har nok bekræftelser pÃ¥ nogen af de ubrugte balancer, og pungen har synkroniseret. + + + You have no staking rewards + Du har ingen opbevarings belønninger + + + Loading chart.. + Indlæser diagram.. + + + Error loading chart, invalid show option + Fejl ved indlæsningen af diagram, ugyldig vis muligheder + + + Error loading chart: %1 + Fejl ved indlæsning af diagram: %1 + + + + DefaultDialog + + Form + Formular + + + Transaction Details + Transaktions Detaljer + + + CANCEL + Afslut + + + SAVE + Gem + + + + DenomGenerationDialog + + Form + Formular + + + Transaction Details + Transaktions Detaljer + + + PushButton + Tryk pÃ¥ Knappen + + + 500 + 500 + + + 5 + 5 + + + 1 + 1 + + + Select All + Vælg alle + + + CANCEL + Afslut + + + SAVE + Gem + + + + EditAddressDialog + + Edit Address + Ret adresse + + + &Label + &tekstmarkør + + + The label associated with this address list entry + Denne tekstmarkør e forbundet med denne adresse i listen. + + + &Address + &adresse + + + The address associated with this address list entry. This can only be modified for sending addresses. + Adressen forbundet med denne adresse i listen kan kun rettes for afsenderadresser. + + + New receiving address + Ny modtageradresse + + + New sending address + Ny afsenderadresse + + + Edit receiving address + Ret modtageradresse + + + Edit sending address + Ret afsenderadresse + + + The entered address "%1" is not a valid PIVX address. + Den indtastede adresse %1 er ikke en gyldig PIVX adresse + + + The entered address "%1" is already in the address book. + Den indtastede adresse %1 findes allerede i adressebogen. + + + Could not unlock wallet. + Kunne ikke lÃ¥se tegnebogen op. + + + New key generation failed. + Ny generering af nøgle fejlede. + + + + ExpandableButton + + Form + Formular + + + + FreespaceChecker + + A new data directory will be created. + En ny mappe vil blive oprettet. + + + name + navn + + + Directory already exists. Add %1 if you intend to create a new directory here. + Mappen eksisterer allerede. Tilføj%1 hvis De ønsker at oprette en ny mappe her. + + + Path already exists, and is not a directory. + Stien eksisterer allerede men er ikke en mappe + + + Cannot create data directory here. + Kan ikke oprette en mappe hr + + + + GovernancePage + + Form + Formular + + + 0 + 0 + + + + HelpMessageDialog + + version + version + + + PIVX Core + PIVX kerne + + + (%1-bit) + (%1-bit) + + + About PIVX Core + om PIVX kerne + + + Command-line options + Kommandolinieparametre + + + Usage: + Anvendelse: + + + command-line options + kommandolinieparametre + + + UI Options: + UI valgmuligheder + + + Choose data directory on startup (default: %u) + Vælg datamappe ved start (Standard: %u) + + + Show splash screen on startup (default: %u) + Vis splashskærm ved opstart (standard: %u) + + + Set language, for example "de_DE" (default: system locale) + Vælg sprog. For eksempel "de_DE" (standard: Systemsprog) + + + Start minimized + Start minimeret. + + + Set SSL root certificates for payment request (default: -system-) + Indstil SSL rodcertifikater til betalingsanmodninger (standard -system-) + + + OK + Ok + + + + Intro + + Welcome + Velkommen + + + Welcome to PIVX Core. + Velkommen til PIVX kerne + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Da det er første gang programmet startes, kan De vælge hvor PIVX kernen skal lagre sine data + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX kernen vil nu hente og gemme en kopi af PIVX blockchain. Der skal være mindst %1GB ledigt pÃ¥ lagermediet, og behovet vil stige efterhÃ¥nden som tiden gÃ¥r. Selve tegnebogen vil ogsÃ¥ blive gemt her. + + + Use the default data directory + Anvend standardmappen til data. + + + CANCEL + Afslut + + + OK + Ok + + + PIVX Core + PIVX kerne + + + Error: Specified data directory "%1" cannot be created. + Fejl! Mappen %1% kan ikke oprettes + + + Error + Fejl! + + + %1 GB of free space available + %1GB fri dataplads tilgængelig + + + (of %1 GB needed) + (af %1 GB brugt) + + + + LoadingDialog + + Form + Formular + + + TextLabel + Tekstmærke + + + + LockUnlock + + Form + Formular + + + + MNRow + + Form + Formular + + + + MasterNodeWizardDialog + + Dialog + Dialog + + + 1 + 1 + + + Name + Navn + + + Address + Adresse + + + CANCEL + Afslut + + + OK + Ok + + + The recipient address is not valid, please recheck. + Modtageradressen er ikke gyldig. Kontroller igen + + + The amount to pay must be larger than 0. + Beløbet skal være større end 0 + + + The amount exceeds your balance. + Beløbet overstiger saldoen + + + The total exceeds your balance when the %1 transaction fee is included. + Totalbeløbet overstiger saldoen nÃ¥r transaktionsgebyret %1 medregnes + + + Duplicate address found, can only send to each address once per send operation. + Den samme adresse er anvendt flere gange. Der kan kun sendes til den samme adresse en gang pr. afsendelse + + + Transaction creation failed! + Oprettelse af transaktionen mislykkedes + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Transaktionen blev afvist! Dette kan ske, hvis nogle af mønterne i tegnebogen allerede er brugt. For eksempel hvis De har brugt en kopi af Wallet.dat filen, og mønterne har været brugt, men ikke markerede som brugte i den. + + + Error: The wallet was unlocked only to anonymize coins. + Fejl! Tegnebogen blev kun lÃ¥st op for at anonymisere mønterne. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + Et gebyr %1 gange højere end %2 pr. kilobyte er vanvittigt højt. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Fejl: Tegnebogen blev lÃ¥st op for at anonymisere mønter. LÃ¥s op afbrudt. + + + + MasterNodesWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + No active Master Node yet + Ingen aktiv Master node endnu + + + PushButton + Tryk pÃ¥ Knappen + + + Delete + Slet + + + + MnInfoDialog + + Form + Formular + + + Status: + Status + + + + MyAddressRow + + Form + Formular + + + + NavMenuWidget + + Form + Formular + + + + OpenURIDialog + + Open URI + Ã…bn URl + + + Open payment request from URI or file + Ã…bn betalingsforespørgsel fra URl eller fil + + + TextLabel + Tekstmærke + + + CANCEL + Afslut + + + OK + Ok + + + Select payment request file + Vælg fil med betalingsforespørgsel + + + Select payment request file to open + Vælg hvilken betalingsforespørgsel der skal Ã¥bnes + + + + OptionButton + + Form + Formular + + + TextLabel + Tekstmærke + + + + OptionsDialog + + Options + Muligheder + + + &Main + &hoved + + + Size of &database cache + Størrelse pÃ¥ &databasecache + + + MB + MB + + + Number of script &verification threads + antal af script &verifikationstrÃ¥de + + + (0 = auto, <0 = leave that many cores free) + (0=auto, >0 efterlad sÃ¥ mange trÃ¥de fri) + + + W&allet + T&egnebog + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + Hvis De slÃ¥r "brug af ubekræftede penge tilbage" vil penge tilbage <br/> ikke kunne benyttes før transaktionen er bekræftet mindst en gang. <br/>Dette har ogsÃ¥ indflydelse pÃ¥ opgørelsen af saldoen. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Ã…bn PIVX klientporten pÃ¥ ruteren automatisk. Virker kun hvis UPnP er slÃ¥et til i ruteren. + + + Accept connections from outside + Accepter forbindelser udefra + + + Allow incoming connections + Tillad indkomne forbindelser + + + &Connect through SOCKS5 proxy (default proxy): + &forbind gennem SOCJS5 proxy (standardproxy): + + + Expert + Ekspert + + + Automatically start PIVX after logging in to the system. + Start PIVX automatisk, nÃ¥r der logges pÃ¥ systemet + + + &Start PIVX on system login + &start PIVX nÃ¥r der logges pÃ¥ systemet + + + Whether to show coin control features or not. + Vis eller skjul møntkontrolfeatures + + + Enable coin &control features + Aktiver mønt &kontrolfeatures + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Vis en liste over alle Deres masternoder i første underfane <br/> og vis en liste over alle masternoder pÃ¥ netværket i anden underfane + + + Show Masternodes Tab + Vis fane med masternoder + + + &Spend unconfirmed change + &brug ikke bekræftede "penge tilbage" + + + &Network + &netværk + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + Vælg sprog her. Ændringerne træder i kraft næste gang PIVX klienten startes + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Det valgte sprog mangler, eller oversættelsen er mangelfuld. Hjælp ved at bidrage med oversættelser her: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + MAP port ved hjælp af UPnP + + + Enable automatic minting of PIV units to zPIV + Aktivér automatisk mintning af PIV-enheder til zPIV + + + Enable zPIV Automint + Aktivér zPIV Automint + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Procentdelen af indkommende PIV, som automatisk konverteres til zPIV via Zerocoin Protocol (min: 10%) + + + Percentage of autominted zPIV + Procentdel af automatiseret zPIV + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Vent med automatisk konvertering til Zerocoin, indtil nok PIV til denne betegnelse er tilgængelig + + + Preferred Automint zPIV Denomination + Foretrukket Automint zPIV Denomination + + + Stake split threshold: + Indtastningsgrænse for indsats: + + + Connect to the PIVX network through a SOCKS5 proxy. + Tilslut PIVX netværket gennem en SOCKS5 PROXY + + + Proxy &IP: + Proxy &IP + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP adresse til proxyserveren (For eksempel IPV4: 127.0.0.1/IPv6: ::1) + + + &Port: + &port + + + Port of the proxy (e.g. 9050) + Proxyport (f.eks 9050) + + + &Window + &vindue + + + Show only a tray icon after minimizing the window. + Vis kun ikonet efter minimering af vinduet + + + &Minimize to the tray instead of the taskbar + &Minimer til bakken i stedet for til proceslinien + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Minimer i stedet for at afslutte applikationen nÃ¥r vinduet lukkes. NÃ¥r dette er valgt er det kun muligt at lukke ned via filmenuen og afslut + + + M&inimize on close + M&inimer og luk + + + &Display + &Vis + + + User Interface &language: + Brugerinterface &sprog: + + + User Interface Theme: + Brugers tema: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Vælg standard inddelingsenhed der vises nÃ¥r der afsendes mønter + + + Decimal digits + Decimaler + + + Hide empty balances + Skjul tomme saldi + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + Tredjeparts URLs (F.eks. en block eksplorer) som fremkommer i transaktionsvisningen som kontekstmenuer. %s i URL bliver erstattet af transaktionens hashværdi. Flere URL separeres med vertikabar I. + + + Third party transaction URLs + Tredjepartis transaktions URLs + + + Active command-line options that override above options: + Aktive kommandolinieparametre der trumfer ovenstÃ¥ende muligheder. + + + Reset all client options to default. + Nulstil alle klientoptioner til standard + + + &Reset Options + &nulstil optioner + + + &OK + &Ok + + + &Cancel + &Annuller + + + Any + Nogen + + + default + standard + + + none + ingen + + + Confirm options reset + Bekræft nulstilling af optioner + + + Client restart required to activate changes. + Klienten skal genstartes for at aktivere ændringerne. + + + Client will be shutdown, do you want to proceed? + Klienten lukkes ned. Vil De fortsætte + + + This change would require a client restart. + Denne ændring vil kræve en genstart af klienten + + + The supplied proxy address is invalid. + Den oplyste proxyadresse er ugyldig. + + + The supplied proxy port is invalid. + Den medfølgende proxyport er ugyldig. + + + The supplied proxy settings are invalid. + De medfølgende proxyindstillinger er ugyldige. + + + + PIVXGUI + + PIVX Core + PIVX kerne + + + Wallet + Tegnebog + + + Node + Node + + + &Show / Hide + &Vis / skjul + + + Show or hide the main Window + Vis eller skjul hovedvinduet. + + + E&xit + E&xit + + + Quit application + Afslut applikationen + + + PIVX Core client + PIVX kerneklient + + + Error + Fejl! + + + Warning + Advarsel! + + + Information + Info: + + + Sent MultiSend transaction + Transaktion til flere adresser afsendt via "multisend" funktionen + + + Sent transaction + Afsendt transaktion + + + Incoming transaction + Indkommende transaktion + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Dato: %1 +Beløb: %2 +Type: %3 +Adresse: %4 + + + + + PWidget + + + PaymentServer + + Payment request error + Fejl i betalingsanmodning + + + URI handling + URL handling + + + Payment request fetch URL is invalid: %1 + BetalingsanmodningsURL er ugyldig: %1 + + + Payment request file handling + Filen med betalingsanmodningen behandles + + + Invalid payment address %1 + Ugyldig betalingsadresse: %1 + + + Cannot start pivx: click-to-pay handler + Kan ikke starte PIVX "klik for at betale" systemet + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URl kan ikke fortolkes! Det kan skyldes en ugyldig adresse, eller forkerte URl parametre. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Betalingsanmodningsfil kan ikke læses! Det kan forÃ¥rsages af en ugyldig fil. + + + Payment request rejected + Betalingsanmodning afvist + + + Payment request network doesn't match client network. + Betalingsanmodningsnetværket passer ikke sammen med klientens netværk + + + Payment request has expired. + Betalingsanmodning er udløbet + + + Payment request is not initialized. + Betalingsanmodning blev ikke initialiseret + + + Unverified payment requests to custom payment scripts are unsupported. + Ikke verificerede betalingsanmodninger til brugerdefinerede betalingsscripts understøttes ikke. + + + Requested payment amount of %1 is too small (considered dust). + Anmodningen om betaling af %1 er for lille. (Systemet vil behandle anmodningen som støj). + + + Refund from %1 + Tilbagebetaling fra %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Betalingsanmodning %1 er for stor (%2 bytes, højeste tilladte er %3 bytes) + + + Payment request DoS protection + Beskyttelse af Betalingsanmodning mod DoS + + + Error communicating with %1: %2 + Fejl i kommunikationen med %1: %2 + + + Payment request cannot be parsed! + Betalingsanmodning kan ikke fortolkes + + + Bad response from server %1 + Svaret fra server %1 kan ikke bruges + + + Network request error + Netværksfejl! + + + Payment acknowledged + Betaling modtaget og accepteret + + + + PeerTableModel + + Address/Hostname + Adresse/Hostnavn + + + Version + Version + + + Ping Time + PingtidPingtid + + + + PrivacyWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + PushButton + Tryk pÃ¥ Knappen + + + No active Master Node yet + Ingen aktiv Master node endnu + + + No transactions yet + Ingen transaktioner endnu + + + + ProposalFrame + + + QObject + + Amount + Beløb + + + Enter a PIVX address (e.g. %1) + Indtast en PIVX adresse (F.eks. %1) + + + %1 d + %1 d + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + NETVÆRK + + + BLOOM + BLOOM + + + UNKNOWN + UENDT + + + None + Ingen + + + N/A + Ikke tilgængelig + + + %1 ms + %1 ms + + + PIVX Core + PIVX kerne + + + + RPCConsole + + Tools window + Værktøjskasse + + + &Information + &information + + + General + Generelt + + + Name + Navn + + + Client name + Klientnavn + + + N/A + Ikke tilgængelig + + + Number of connections + Antal forbindelser + + + &Open + &Ã…ben + + + Startup time + Opstartstid + + + Network + Netværk + + + Last block time + Seneste bloktid + + + Debug log file + Debug logfil + + + Build date + Versionsdato + + + Current number of blocks + Aktuelt blokantal + + + Client version + Klientversion + + + Using BerkeleyDB version + Anvender BerkeleyDB version + + + Block chain + Block chain + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Ã…bn PIVX debug logfilen fra den aktuelle datamappe. Det kan godt tage lidt tid hvis filen er meget stor. + + + Number of Masternodes + Antal masternoder + + + &Console + &konsol + + + Clear console + Clear konsollet + + + &Network Traffic + &Netværkstrafik + + + &Clear + &clear + + + Totals + Totaler + + + Received + Modtaget + + + Sent + Sendt + + + &Peers + &Peers + + + Banned peers + Forbudte jævnaldrende + + + Select a peer to view detailed information. + Vælg en peer for at fÃ¥ vist deltaljerede informationer + + + Whitelisted + whitelisten + + + Direction + Retning + + + Protocol + Protokol + + + Version + Version + + + Services + Tjenester + + + Ban Score + Forbyd Score + + + Connection Time + Forbindelsesti + + + Last Send + Seneste sendte + + + Last Receive + Senest modtagne + + + Bytes Sent + Bytes sendt + + + Bytes Received + Bytes modtaget + + + Ping Time + PingtidPingtid + + + &Wallet Repair + &Tegnebog Reparer + + + Delete local Blockchain Folders + Slet lokale blokchainmapper + + + Wallet In Use: + Tegnebog i brug + + + Starting Block + Startblok + + + Synced Headers + Synkroniserede overskrifter + + + Synced Blocks + Synced Blocks + + + The duration of a currently outstanding ping. + Varigheden af en aktuelt fremragende ping. + + + Ping Wait + Ping Vent + + + Time Offset + Tidsforskydning + + + Custom Backup Path: + Brugerdefineret Backup-sti: + + + Custom zPIV Backup Path: + Brugerdefineret zPIV Backup-sti: + + + Custom Backups Threshold: + Brugerdefineret sikkerhedskopieringstærskel: + + + Salvage wallet + Opsumer tegnebog + + + Attempt to recover private keys from a corrupt wallet.dat. + Forsøg at genskabe de private nøgler fra en beskadiget wallet.dat fil + + + Rescan blockchain files + Gennemsøg blokkædens filer + + + Rescan the block chain for missing wallet transactions. + Genskan blokkæden for manglende transaktioner i tegnebogen + + + Recover transactions 1 + Genskab transaktioner 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Genskab transaktioner fra blokkæden (behold meta-data sÃ¥som kontohaver). + + + Recover transactions 2 + Genskab transaktioner 2 + + + Recover transactions from blockchain (drop meta-data). + Genskab transaktioner fra blokkæden (skip metadata). + + + Upgrade wallet format + Opdater formatet for tegnebogen + + + Rebuild block chain index from current blk000??.dat files. + Genopbyg blokkædens indeks fra de aktuelle blk000??.dat filer + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Sletter alle lokale blockchain-mapper, sÃ¥ tegnebogen synkroniseres fra bunden. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + NedenstÃ¥ende knapper vil genstarte tegnebogen med kommandolinieparametre fr at reparere den, korrigere fejl og mangler i block-chain filerne, herunder ogsÃ¥ undersøge for manglende eller fejlagtige transaktioner + + + Wallet repair options. + Reparation af tegnebog - valgmuligheder + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Opdater tegnebogen til det seneste format ved opstart. (Note: Dette er IKKE en opdatering af tegnebogen i sig selv!) + + + Rebuild index + Genopbyg index + + + In: + Ind: + + + Out: + Ud: + + + Welcome to the PIVX RPC console. + Velkommen til PIVX RPC konsollet + + + &Disconnect Node + & Afbryd knudepunkt + + + Ban Node for + Ban Node for + + + 1 &hour + 1 &hour + + + 1 &day + 1 &day + + + 1 &week + 1 &week + + + 1 &year + 1 &year + + + &Unban Node + & Unban Node + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Dette vil slette dine lokale blockchain-mapper, og tegnebogen vil synkronisere den komplette blokke fra bunden.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Dette har brug for en del tid og overfører mange data.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Dine transaktioner og penge vil blive synlige igen, nÃ¥r downloadet er gennemført.<br /><br /> + + + Do you want to continue?.<br /> + Vil du fortsætte?.<br /> + + + Confirm resync Blockchain + Bekræft resync Blockchain + + + Type <b>help</b> for an overview of available commands. + Tast <b>help> for at fÃ¥ en oversigt over tilgængelige kommandoer + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (node id: %1) + + + via %1 + Via %1 + + + never + Aldrig + + + Inbound + IndgÃ¥ende + + + Outbound + UdgÃ¥ende + + + Yes + Ja + + + No + Ingen + + + Unknown + Ukendt + + + + ReceiveDialog + + Dialog + Dialog + + + Transaction Details + Transaktions Detaljer + + + PushButton + Tryk pÃ¥ Knappen + + + CANCEL + Afslut + + + OK + Ok + + + + ReceiveWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + Address copied + Adresse kopieret + + + + RecentRequestsTableModel + + Date + Dato + + + Label + Mærke + + + Message + Besked + + + Address + Adresse + + + Amount + Beløb + + + (no label) + (ingen opmærknig) + + + (no message) + (Inge besked) + + + (no amount) + (intet beløb) + + + + RequestDialog + + Dialog + Dialog + + + Amount + Beløb + + + PIV + PIV + + + TextLabel + Tekstmærke + + + CANCEL + Afslut + + + Label + Mærke + + + Error + Fejl! + + + + SendChangeAddressDialog + + Dialog + Dialog + + + Transaction Details + Transaktions Detaljer + + + PushButton + Tryk pÃ¥ Knappen + + + CANCEL + Afslut + + + OK + Ok + + + + SendCustomFeeDialog + + Form + Formular + + + Transaction Details + Transaktions Detaljer + + + CANCEL + Afslut + + + OK + Ok + + + SAVE + Gem + + + + SendMultiRow + + Form + Formular + + + TextLabel + Tekstmærke + + + + SendWidget + + Send + send + + + Amount + Beløb + + + Spend Zerocoin + Tilbring Zerocoin + + + zPIV is currently undergoing maintenance. + zPIV er i øjeblikket under opretholdelse. + + + Version 1 zPIV require a security level of 100 to successfully spend. + Version 1 zPIV kræver et sikkerhedsniveau pÃ¥ 100 til succes. + + + Too much inputs ( + For mange input ( + + + ) needed. +Maximum allowed: + ) havde brug for. +Maksimum tilladt: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Enten mint højere nomineringer (sÃ¥ færre input er nødvendige) eller reducere det beløb, der skal bruges. + + + Cannot store your own address as contact + Du kan ikke gemme din egen adresse som kontakt + + + New Contact Stored + Ny kontakt Gemt + + + Error Storing Contact + Fejl + + + + SettingsBackupWallet + + Form + Formular + + + TextLabel + Tekstmærke + + + PushButton + Tryk pÃ¥ Knappen + + + Backup Wallet + Tag sikkerhedskopi af tegnebogen. + + + Wallet Data (*.dat) + Datafil til tegnebog (*.dat) + + + + SettingsBitToolWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + PushButton + Tryk pÃ¥ Knappen + + + Import Address + Importér adresse + + + Clear + &clear + + + Enter a PIVX address + Skriv en PIVX adresse + + + ENCRYPT + Enkrypter + + + The entered passphrase is invalid. + Det indtastede kodeord er ugyldigt + + + Allowed: 0-9,a-z,A-Z, + Tilladte tegn: 0-9, a-z, A-Z + + + The entered address is invalid. + Den indtastede adresse er ugyldig + + + Please check the address and try again. + Kontroller adressen og prøv igen. + + + The entered address does not refer to a key. + Den indtastede adresse har ikke nogen tilknyttet nøgle. + + + Wallet unlock was cancelled. + OplÃ¥sning af tegnebogen mislykkedes + + + Private key for the entered address is not available. + Den private nøgler der hører til den indtastede adresse er ikke tilgængelig. + + + Failed to decrypt. + Dekryptering mislykkedes + + + Please check the key and passphrase and try again. + Kontroller nøgle og kodeord - og prøv igen. + + + Data Not Valid. + Ugyldig data + + + Please try again. + Prøv igen + + + Please wait while key is imported + Vent mens nøglen bliver importeret. + + + + SettingsConsoleWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + Welcome to the PIVX RPC console. + Velkommen til PIVX RPC konsollet + + + Type <b>help</b> for an overview of available commands. + Tast <b>help> for at fÃ¥ en oversigt over tilgængelige kommandoer + + + + SettingsDisplayOptionsWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + PushButton + Tryk pÃ¥ Knappen + + + Decimal digits + Decimaler + + + Hide empty balances + Skjul tomme saldi + + + SAVE + Gem + + + default + standard + + + + SettingsFaqWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + PushButton + Tryk pÃ¥ Knappen + + + 1 + 1 + + + 5 + 5 + + + + SettingsInformationWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + Information + Info: + + + General + Generelt + + + Network + Netværk + + + In: + Ind: + + + Out: + Ud: + + + + SettingsMainOptionsWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + SAVE + Gem + + + + SettingsMultisendDialog + + Form + Formular + + + Transaction Details + Transaktions Detaljer + + + TextLabel + Tekstmærke + + + CANCEL + Afslut + + + SAVE + Gem + + + + SettingsMultisendWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + No active Master Node yet + Ingen aktiv Master node endnu + + + Active + Aktiv! + + + The total amount of your MultiSend vector is over 100% of your stake reward + Den totale sum af Deres Multisendgruppe er over 100% af Deres indskudsbelønning + + + + + SettingsSignMessageWidgets + + Form + Formular + + + TextLabel + Tekstmærke + + + PushButton + Tryk pÃ¥ Knappen + + + Clear + &clear + + + Message + Besked + + + Signature + Underskrift + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + De kan underskrive beskeder med Deres adresser or at bevise ejerskab. Vær forsigtig med at underskrive noget De er usikker pÃ¥ sÃ¥som forsøg op at narre Dem til at oplyse Deres identitet. Skriv kun under pÃ¥ noget De kan stÃ¥ inde for, og som De er enig i. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Skriv den adresse der skal bruges til at underskrive med. (Vær sikker pÃ¥ at fÃ¥ det hele med, herunder alle linjerne, mellemrum, tabuleringer o.l. præcist) og signer nedenfor for at verificere beskeden. Vær forsigtig med ikke at læse mere ind i underskriften end den underskrevne besked for at undgÃ¥ snyd fra et "man-in-the-middle" angreb. + + + The entered address is invalid. + Den indtastede adresse er ugyldig + + + Please check the address and try again. + Kontroller adressen og prøv igen. + + + The entered address does not refer to a key. + Den indtastede adresse har ikke nogen tilknyttet nøgle. + + + Wallet unlock was cancelled. + OplÃ¥sning af tegnebogen mislykkedes + + + Private key for the entered address is not available. + Den private nøgler der hører til den indtastede adresse er ikke tilgængelig. + + + Message signing failed. + Beskeden kunne ikke underskrives + + + Message signed. + Beskeden er underskrevet + + + The signature could not be decoded. + Signaturen kunne ikke afkodes + + + Please check the signature and try again. + Kontroller signaturen og prøv igen + + + The signature did not match the message digest. + Signaturen passer ikke sammen med beskeden + + + Message verification failed. + Verificering af beskeden mislykkedes. + + + Message verified. + Beskeden er verificeret. + + + + SettingsWalletOptionsWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + PushButton + Tryk pÃ¥ Knappen + + + Wallet + Tegnebog + + + Stake split threshold: + Indtastningsgrænse for indsats: + + + Network + Netværk + + + Allow incoming connections + Tillad indkomne forbindelser + + + SAVE + Gem + + + + SettingsWalletRepairWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + PushButton + Tryk pÃ¥ Knappen + + + Attempt to recover private keys from a corrupt wallet.dat. + Forsøg at genskabe de private nøgler fra en beskadiget wallet.dat fil + + + Recover transactions from blockchain (drop meta-data). + Genskab transaktioner fra blokkæden (skip metadata). + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Sletter alle lokale blockchain-mapper, sÃ¥ tegnebogen synkroniseres fra bunden. + + + Salvage wallet + Opsumer tegnebog + + + Recover transactions 1 + Genskab transaktioner 1 + + + Recover transactions 2 + Genskab transaktioner 2 + + + Upgrade wallet format + Opdater formatet for tegnebogen + + + Rebuild index + Genopbyg index + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Dette vil slette dine lokale blockchain-mapper, og tegnebogen vil synkronisere den komplette blokke fra bunden.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Dette har brug for en del tid og overfører mange data.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Dine transaktioner og penge vil blive synlige igen, nÃ¥r downloadet er gennemført.<br /><br /> + + + Do you want to continue?.<br /> + Vil du fortsætte?.<br /> + + + Confirm resync Blockchain + Bekræft resync Blockchain + + + + SettingsWidget + + Form + Formular + + + TextLabel + Tekstmærke + + + Wallet + Tegnebog + + + Options + Muligheder + + + Information + Info: + + + Confirm options reset + Bekræft nulstilling af optioner + + + Client restart required to activate changes. + Klienten skal genstartes for at aktivere ændringerne. + + + Client will be shutdown, do you want to proceed? + Klienten lukkes ned. Vil De fortsætte + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX kernen lukker ned + + + Do not shut down the computer until this window disappears. + Undlad at logge af, eller slukke for computeren før dette vindue er forsvundet. + + + + SnackBar + + Form + Formular + + + + Splash + + Form + Formular + + + PIVX Core + PIVX kerne + + + + SplashScreen + + PIVX Core + PIVX kerne + + + Version %1 + Version %1 + + + The Bitcoin Core developers + Bitcoin "core" udviklerne + + + The Dash Core developers + DASH "core" udviklerne + + + The PIVX Core developers + PIVX "core" udviklerne + + + [testnet] + [Testnet] + + + + TooltipMenu + + Form + Formular + + + Delete + Slet + + + + TopBar + + Form + Formular + + + %1 and %2 + %1 og %2 + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open until %1 + Ã…bn frem til %1 + + + conflicted + Konflikt! + + + %1/offline + %1/ofline + + + %1/unconfirmed + %1/ej bekræftet + + + %1 confirmations + %1/bekræftelser + + + %1/offline (verified via SwiftX) + %1/offline (verified via svifttx) + + + %1/confirmed (verified via SwiftX) + %1/bekræftet (verified via svifttx) + + + %1 confirmations (verified via SwiftX) + %1/bekræftelser (verified via svifttx) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/offline (SwifTX verificering i gang - %2 af %3 signaturer) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/bekræftet(SwifTX verificering i gang - %2 af %3 signaturer) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1/bekræftelser (SwifTX verificering i gang - %2 af %3 signaturer) + + + %1/offline (SwiftX verification failed) + %1/offline (SwifTX verificering mislykkedes) + + + %1/confirmed (SwiftX verification failed) + %1/bekræftet (SwifTX verificering mislykkedes) + + + Status + Status + + + , has not been successfully broadcast yet + , er ikke udsendt endnu + + + Date + Dato + + + Source + Kilde + + + Generated + Genereret + + + From + Fra + + + unknown + Ukendt + + + To + Til + + + own address + Egen adresse + + + watch-only + Vis-kun + + + label + Mærke + + + Credit + Kredit + + + not accepted + Afvist! + + + Debit + Debet + + + Total debit + Total debet + + + Total credit + Total kredit + + + Transaction fee + Transaktionsgebyr + + + Net amount + Nettobeløb + + + Message + Besked + + + Comment + Kommentar + + + Transaction ID + Transaktions ID + + + Output index + Output indeks + + + Merchant + Forhandler + + + Debug information + Debug information + + + Transaction + transaktion + + + Inputs + inputs + + + Amount + Beløb + + + true + Sand + + + false + Falsk + + + + TransactionTableModel + + Date + Dato + + + Type + Type + + + Address + Adresse + + + Open until %1 + Ã…bn frem til %1 + + + Offline + Offline + + + Unconfirmed + Ubekræftet + + + Confirming (%1 of %2 recommended confirmations) + Bekræfter (%1 af %2 bekræftelser anbefalet) + + + Confirmed (%1 confirmations) + Bekræftet (%1 bekræftelser) + + + Conflicted + I konflikt + + + Immature (%1 confirmations, will be available after %2) + Umoden (%1 bekræftelser. Vil være tilgængelig efter %2) + + + This block was not received by any other nodes and will probably not be accepted! + Denne blok var ikke modtaget af andre noder og vil sandsynligvis ikke blive godkendt. + + + Received with + Modtaget med + + + Masternode Reward + Masternodebelønning + + + Received from + Modtaget fra + + + Received via Obfuscation + Modtaget via tilsløring + + + PIV Stake + PIV Stake + + + zPIV Stake + zPIV Stake + + + Obfuscation Denominate + Tilslør designerede + + + Obfuscation Collateral Payment + Samlet tilsløret betaling + + + Obfuscation Make Collateral Inputs + Tilslørede samlede tilføjelser + + + Obfuscation Create Denominations + Opret tilsløret designering + + + Converted PIV to zPIV + Konverteret PIV til zPIV + + + Spent zPIV + Brugt zPiv + + + Received PIV from zPIV + Modtaget Piv fra zPiv + + + Minted Change as zPIV from zPIV Spend + Minted Change som zPIV fra zPIV Spend + + + Converted zPIV to PIV + Konverteret PIV til zPIV + + + Sent to + Sendt til + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Orphan blok - genereret, men ikke godkent. Dette har ikke indflydelse pÃ¥ saldoen + + + Payment to yourself + Betaling til Dem selv + + + Mined + Mineret + + + Obfuscated + skjult + + + watch-only + Vis-kun + + + (n/a) + (n/a) + + + Transaction status. Hover over this field to show number of confirmations. + Tansaktionsstatus. Før musen hen over dette felt for at fÃ¥ vist antallet af bekræftelser + + + Date and time that the transaction was received. + Dato og tid da transaktionen blev modtaget + + + Type of transaction. + Transaktionstype + + + Whether or not a watch-only address is involved in this transaction. + Om der er en vis-kun adresse indeholdt i dennne transaktion eller ej. + + + Destination address of transaction. + Destinationsadresse for denne transaktion + + + Amount removed from or added to balance. + Beløb fjernet eller tilføjet til saldoen + + + + TxDetailDialog + + Form + Formular + + + Transaction Details + Transaktions Detaljer + + + Fee: + Gebyr: + + + Status: + Status + + + TextLabel + Tekstmærke + + + CANCEL + Afslut + + + OK + Ok + + + SEND + SENDE + + + Unknown + Ukendt + + + + TxRow + + Form + Formular + + + + WalletModel + + Send Coins + Send mønter + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftTx understøtter ikke afsendelse af sÃ¥ store beløb endnu. Transaktioner er for tiden begrænsede til %1PIV. + + + + WalletPasswordDialog + + Dialog + Dialog + + + TextLabel + Tekstmærke + + + PushButton + Tryk pÃ¥ Knappen + + + CANCEL + Afslut + + + OK + Ok + + + + WelcomeContentWidget + + Dialog + Dialog + + + 1 + 1 + + + Welcome + Velkommen + + + default + standard + + + + ZPivControlDialog + + Select zPIV to Spend + Vælg zPIV for at bruge + + + Coin Control + Møntkontrol + + + PushButton + Tryk pÃ¥ Knappen + + + zPiv + zPiv + + + Quantity: + Antal: + + + Is Spendable + Kan tilbringes + + + 0 + 0 + + + Select/Deselect All + Vælg / Fravælg alle + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = beholdtx metadata. For eksempel information om kontoejer og betalngsanmodninger, 2 = drop TX metadata) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Tillad JSON-RPC forbindelser fra bestemte kilder. Gyldig <ip> er enkeltadresse (1.2.3.4), a Network/netmask (1.2.3.4/255.255.255.0) eller et netværk/CCIDR (1.2.3.4/24). Der kan indsættes flere linier. + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Forbind til den opgivne adresse og lyt pÃ¥ den kontinuerligt. Brug [host]:port notation for IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Forbind til den opgivne adresse og put peers pÃ¥ listen over godkendte adresser. Brug [host]:port notation for IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Forbind til den opgivne adresse og lyt efter JSON-.RPC forbindelser. Brug [host]:port notation for IPv6. Der kan indsættes flere linier (standard: Forbind til alle interfaces) + + + Calculated accumulator checkpoint is not what is recorded by block index + Beregnet akkumulator kontrolpunkt er ikke det, der er registreret af blok indeks + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Kan ikke lÃ¥se datamappen %s. PIVX core kører sandsynligvis allerede. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Skift automatisk afstemningsmetode, mode=auto: Stem kun for fuldstændigt match mod det generered budget (Strng, Default: auto) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Bedøm ubegrænsede transaktioner til <n>*1000 bytes pr. minut kontinuerligt (default:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Opret nye filer med systemets default tilladelser i stedet for umask 077 (virker kun med tegnebogsfunktionen slÃ¥et fra) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Slet alle tegnebogens transaktioner og genskab kun fra blokkæden ved at tilføje -rescan i forbindes med opstart. + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Slet alle zerocoin-udgifter og minter, der er blevet sendt til blockchain-databasen og geninddrive dem (0-1, standard: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribueret under MIT software licensen. Se den vedlaget fil COPYING eller +<http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Aktivér automatiske wallet-sikkerhedskopier udløst efter hver zPiv-mintning (0-1, standard: %u) + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Aktiver eller deaktiver staking-funktionalitet for PIV-indgange (0-1, standard: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Aktiver eller deaktiver staking-funktionalitet for zPIV-indgange (0-1, standard: %u) + + + Enable spork administration functionality with the appropriate private key. + SlÃ¥ spork administrationsfunktionen til med den rette private nøgle + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Opgiv regression test mode, der bruger en særlig kæde, hvor blokke kan løses med det samme + + + Error: Listening for incoming connections failed (listen returned error %s) + Fejl! Der opstod en fejl i under lytning efter indkommende forbindelser (Listen returnerede fejl %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Fejl: Transaktionen er større end den maksimalt tilladte transaktionsstørrelse! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Fejl! Argumentet er ikke understøttet -socks found. Det er ikke muligt at bestemme hvilken SOCKS version længere. Kun SOCKS5 proxies understøttes. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Udfør en kommando nÃ¥r der modtages en alarm, eller der opdages en meget lang fork (%s in cmd erstattet af en besked) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Udfør en kommando nÃ¥r en transaktion i tegnebogen ændres (%s in cmd erstattet af TxID) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Udfør en kommando nÃ¥r den bedste blok ændres (%s in cmd erstattes med blok hashen) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Gebyrer (in PIV/kb) lavere end dette betragtes som et nul-gebyr for at videresende (default: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Gebyrer (in PIV/kb) lavere end dette betragtes som et nul-gebyr for at oprette en transaktion (default: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Opsaml databaseaktiviteterne fra hukommelsespool og gem dem i loggen pÃ¥ disken for hver <n> megabytes (default: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Hvis der ikke fastsættes et betalingsTxgebyr, skal der inkluderes tilstrækkelige midler til gebyret sÃ¥ transaktionens bekræftelsesproces vil begynde indenfor n blokke (default: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + Denne indstilling -genproclimit kontrollerer hvor mange blokke der bliver genereret med det samme. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Utilstrækkelige eller utilstrækkelige bekræftede penge, skal du muligvis vente et par minutter og prøve igen. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Ugyldigt beløb for -maxtxfee=<amount>: '%s' (skal være mindst det samme som minimumsgebyret pÃ¥ %s for at forhindre at transaktionen blokeres). + + + Keep the specified amount available for spending at all times (default: 0) + Fasthold altid den aktuelle saldo klar til brug (default: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Indskriv transaktionsprioritet og gebyr pr kB i loggen nÃ¥r der mineres (default: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Vedligehold et fuldgyldigt transaktionsindeks fra getrawtransaktion fra rpc kald (default: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maksimal størrelse pÃ¥ data hos databærerens transaktioner der videresendes og mineres (default: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maksimal gebyrstørrelse der an bruges i en enkelt transaktion. Hvis denne er sat for lavt kan det medføre afvisning af store transaktioner (default: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Det antal sekunder, som peers, der ikke handler korrekt skal afholdes fra at genforbinde (default: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + Tilsløring bruger hele det tilslørede designerede beløb til at sende betalinger. De kan blot tilsløre yderligere PIVX + + + Output debugging information (default: %u, supplying <category> is optional) + Output debug information (default: %u, supplying <category> er valgfri) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Forespørg peer adresser via DNS opslag, hvis antallet af adresser er laft (default: 1 med mindre -connect) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Randomize credentials for hver proxy-forbindelse. Dette gør det muligt for Tor-strøm isolering (standard: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + anmod om høj prioritet for videresendelse af gratis transaktioner eller transaktioner med lavt gebyr (default: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + Send sporings/debug info til konsollet i stedet for at sende det til debug.log filen. (default: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Angiv maksimumstørrelsen pÃ¥ højprioritets/lavgebyrstransaktioner i bytes (default: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Angiv antallet af script verifikationstrÃ¥de (%u til %d, 0 = auto, < = efterlad sÃ¥ mange trÃ¥de ledige, default: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Angiv antallet af trÃ¥de til møntgenerering hvis aktiveret (-1 = alle cores, default: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Vis N bekræftelser for en gennemført lÃ¥st transaktion (0-9999, default: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Understøt filtrering af blokke og transaktioner med bloom filters (default: %u) + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + Dette produkt anvender software udviklet i OpenSSL projektet til brug i OpenSSL værktøjssættet <https://www.openssl.org/> og kryptosoftware skrevet afEric Young og UPnP software skrevet af Thomas Bernard. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Det var ikke muligt at forbinde %s pÃ¥ denne computer. PIVX kører sandsynligvis allerede. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Det er ikke muligt at allokere tilstrækkeligt med tilsløret designeret indestÃ¥ende for at gennemføre denne transaktion. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Det er ikke muligt at allokere tilstrækkeligt med tilsløret ikke-designeret indestÃ¥ende for at gennemføre denne transaktion, der ikke ækvivalerer 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Det var ikke muligt at allokere tilstrækkelige midler til denne transaktion som er forskellig fra 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Brug separat SOCKS5 proxy for at nÃ¥ ud til peers via Tor skjulte tjenester (default: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Advarsel! -maxtxfee er sat meget højt. Gebyrer sÃ¥ store bør betales i en selvstændig transaktion. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Advarsel! -paytxfee er sat meget højt. Det er dette gebyr De kommer til at betale for transaktionen, hvis De gennemfører. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Advarsel! Kontroller at computerens dato og tid er korrekt indstillet. Hvis tiden ikke er rigtig, vil PIVX core ikke fungere ordentligt. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Advarsel! Netværket ser ikke ud til at samtýgge. Nogle af minerne har tilsyneladende problemer. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Advarsel! Der er ikke fuld enighed mellem Deres og de øvrige peers. Det er muligt, at De skal opdatere tegnebogen, eller at andre noder mangler at opdatere. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Advarsel! Fejl ved læsning af wallet.dat. Alle nøgler blev indlæst korrekt, men transaktions- eller adressebogens er fejlbehæftede, eller mangler helt. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Advarsel! wallet.dat filen er beskadiget. Data genskabt. Den originale wallet.dat fll blev gemt som tegnebog. {temestap}.bak i %s; Hvis transaktioner eller saldo er forkert, bør De genskabe tegnebogen fra en sikkerhedskopi. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Sæt peers, der forbinder fra denne netmaske eller IP adresse pÃ¥ listen over godkendte peers. Der kan indføjes flere linier. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Peers, der optræder i listen over godkendte peers kan ikke blokeres pÃ¥ baggrund af DoS, og deres transaktioner vil altid blive videresendt - ogsÃ¥ selvom de allerede findes i mempoolen - anvendes til f.eks. gateways. + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + Der skal angives en masternodeprivkey i konfigurationen. For mere information, se i dokumentationen. + + + (51472 could be used only on mainnet) + (51472 kunne kun bruges pÃ¥ hovednettet) + + + (default: %s) + (default: %s) + + + (default: 1) + (default: 1) + + + (must be 51472 for mainnet) + (skal være 51472 for hovednettet) + + + Accept command line and JSON-RPC commands + Accepter kommandolinie og JSON-RPC kommandoer + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Accepter forbindelser udefra (default: 1 hvis ingen -proxy eller -connect) + + + Accept public REST requests (default: %u) + Accepter public REST anmodninger (default: %u) + + + Add a node to connect to and attempt to keep the connection open + Tilføj en node at forbinde til, og forsøg at holde forbindelsen Ã¥ben. + + + Allow DNS lookups for -addnode, -seednode and -connect + Tillad DNS opslag for -addnode, -seednode og -connect + + + Always query for peer addresses via DNS lookup (default: %u) + Forespørg altid peer adresser via DNS opslag (default: %u) + + + Attempt to recover private keys from a corrupt wallet.dat + Forsøger at genskabe de private nøgler fra en beskadiget wallet.dat fil + + + Automatically create Tor hidden service (default: %d) + Opret automatisk Tor-skjult tjeneste (standard: %d) + + + Block creation options: + Bloker optioner for oprettelse: + + + Calculating missing accumulators... + Beregning af manglende akkumulatorer ... + + + Cannot downgrade wallet + Kan ikke nedgradere tegnebogen + + + Cannot resolve -bind address: '%s' + Kan ikke opløse -bind adresse: %s' + + + Cannot resolve -externalip address: '%s' + Kan ikke opløse -externalip adresse: %s' + + + Cannot resolve -whitebind address: '%s' + Kan ikke opløse -whitebind adresse: %s' + + + Connect only to the specified node(s) + Forbind kun til de angivne node(r) + + + Connect through SOCKS5 proxy + Forbind gennem SOCKS5 proxy + + + Connect to a node to retrieve peer addresses, and disconnect + Forbind til en node for at hente peeradresser og afbryd derefter forbindelsen + + + Connection options: + Forbindelsesoptioner + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Core Developers + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i The Dash Core Developers + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i The PIVX Core Developers + + + Corrupted block database detected + Blokdatabasen er beskadiget + + + Could not parse masternode.conf + Kunne ikke fortolke masternode.conf + + + Debugging/Testing options: + Debug/testoptioner: + + + Delete blockchain folders and resync from scratch + Slet blockchain mapper og resync fra bunden + + + Disable OS notifications for incoming transactions (default: %u) + Deaktiver OS-underretninger for indgÃ¥ende transaktioner (standard: %u) + + + Disable safemode, override a real safe mode event (default: %u) + SlÃ¥ beskyttet tilstand fra og ignorer en ægte "beskyttet tilstands" hændelse (default: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Find egen IP adresse (default: 1 nÃ¥r der lyttes, og inge -externalip) + + + Do not load the wallet and disable wallet RPC calls + Indlæs ikke tegnebogen og slÃ¥ tegnebogens RPC kald fra + + + Do you want to rebuild the block database now? + Vil De genopbygge blokdatabasen nu? + + + Done loading + Indlæst! + + + Enable automatic Zerocoin minting (0-1, default: %u) + Aktivér automatisk Zerocoin-mintning (0-1, standard: %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + Aktivér publicering af hash-transaktion (lÃ¥st via SwiftX) i <address> + + + Enable publish raw transaction (locked via SwiftX) in <address> + Aktivér publicere rÃ¥ transaktion (lÃ¥st via SwiftX) i <address> + + + Enable the client to act as a masternode (0-1, default: %u) + SlÃ¥ tilstanden "masternode" til (0-1 default: %u) + + + Error initializing block database + Fejl ved initialisering af blokdatabasen + + + Error initializing wallet database environment %s! + Fejl ved initialisering af tegnebogens databasemilljø %s! + + + Error loading block database + Fejl ved indlæsning af blokdatabasen + + + Error loading wallet.dat + Fejl ved indlæsning af wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Fejl ved indlæsning af wallet.dat: Tegnebogen er beskadiget + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Fejl ved indlæsning af wallet.dat: Tegnebogen kræver en nyere version af PIVX core + + + Error opening block database + Fejl ved Ã¥bning af blokdatabasen + + + Error reading from database, shutting down. + Fejl ved læsning fra database, programmet lukker ned. + + + Error writing zerocoinDB to disk + Fejl ved at skrive zerocoinDB til disk + + + Error + Fejl! + + + Error: A fatal internal error occured, see debug.log for details + Fejl! En fatal intern fejl opstod. Se debug.log for nærmere detaljer + + + Error: Disk space is low! + Fejl! Der er ikke nok plads pÃ¥ disken. + + + Error: Unsupported argument -tor found, use -onion. + Fejl! Argumentet er ikke understøttet - tor fundet, brug -onion + + + Error: Wallet locked, unable to create transaction! + Fejl! Tegnebogen er lÃ¥st. Det er ikke muligt at oprette transaktionen. + + + Failed to calculate accumulator checkpoint + Kunne ikke beregne akkumulatorkontrolpunktet + + + Failed to listen on any port. Use -listen=0 if you want this. + Lytning pÃ¥ uspecificerede porte mislykkedes. Brug -listen=0 hvis De ønsker denne funktion. + + + Failed to parse host:port string + Failed to parse host:port string + + + Failed to read block + Læsning af blokken mislykkedes + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Gebyr (i PIV/kB) som skal tilføjes transaktionen der sendes (default: %s) + + + Force safe mode (default: %u) + Gennemtving beskyttet tilstand (default: %u) + + + Generate coins (default: %u) + Generer mønter (default: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Antal blokke der kontrolleres ved opstart (default: %u, 0 = all) + + + If <category> is not supplied, output all debugging information. + Hvis <category> ikke findes, sendes al debug information som output. + + + Importing... + Importerer + + + Imports blocks from external blk000??.dat file + Importer blokke fra ekstern kilde - blk000??.dat fil + + + Include IP addresses in debug output (default: %u) + Inkluder IP adressen i debug output (default: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + Forkert, eller ikke genesis blok fundet. Er De sikker pÃ¥, at det er den rigtige datadir der benyttes til netværket? + + + Information + Info: + + + Initialization sanity check failed. PIVX Core is shutting down. + Initiering af sanitetskontrollen fejlede. PIVX core lukker ned. + + + Insufficient funds + Utilstrækkelige midler + + + Insufficient funds. + Utilstrækkelige midler + + + Invalid -onion address or hostname: '%s' + Ugyldig -onionadresse eller værtsnavn: ' %s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + Ugyldigt beløb til -maxtxfee=<beløb>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Ugyldigt beløb til -minrelaytxfee=<beløb>: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Ugyldigt beløb til -mintxfee=<beløb>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Ugyldigt beløb til -paytxfee=<beløb>: '%s' (skal mindst være %s) + + + Invalid amount for -paytxfee=<amount>: '%s' + Ugyldigt beløb til -paytxfee=<beløb>: '%s' + + + Invalid amount for -reservebalance=<amount> + Ugyldigt beløb til -reservebalance=<beløb>: + + + Invalid amount + Ugyldigt beløb + + + Invalid masternodeprivkey. Please see documenation. + Ugyldig masternodeprivkey. Se dokumentationen + + + Invalid netmask specified in -whitelist: '%s' + Ugyldig netmask specificeret i -whitelist: '%s' + + + Invalid port detected in masternode.conf + Ugyldig port fundet i masternode.conf + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Procentdel af automatisk mintede Zerocoin (10-100, standard: %u) + + + Reindex the PIV and zPIV money supply statistics + Reindex PIV og zPIV pengemængde statistikker + + + Reindexing zerocoin database... + Reindexing zerocoin database ... + + + Reindexing zerocoin failed + Reindexerende zerocoin mislykkedes + + + Selected coins value is less than payment target + Valgt mønter værdi er mindre end betalingsmÃ¥l + + + SwiftX options: + SwiftTX optioner: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + Denne release er en testrelease. Anvendelse pÃ¥ eget ansvar - bør ikke anvendes til staking eller handelsapplikationer! + + + mints deleted + + minter slettet + + + + mints updated, + mints opdateret, + + + unconfirmed transactions removed + + ubekræftede transaktioner fjernet + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + SlÃ¥ alle PIVX funktioner fra (Masternoder, Tilsløring, SwiftTX, Budgetting)(0-1,default:%u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Aktiver swifttx, vis bekræftelser for lÃ¥ste transaktioner (bool, default: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Transaktionen blev afvist! Dette kan ske, hvis nogle af mønterne i tegnebogen allerede er brugt. For eksempel hvis De har brugt en kopi af Wallet.dat filen, og mønterne har været brugt, men ikke markerede som brugte i den. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + Fejl: Denne transaktion kræver et transaktionsgebyr pÃ¥ mindst %s pÃ¥ grund af dets mængde, kompleksitet eller brug af nyligt modtagne penge! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + Fejl: Ikke understøttet argument -checklevel fundet. Checklevel skal være niveau 4. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + Udfør kommando, nÃ¥r den bedste blok ændres, og dens størrelse er overstÃ¥et (%s i cmd erstattes af blok hash, %d med blokstørrelsen) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Kunne ikke finde møntsæt blandt holdte mønter med mindre end maksimalt antal udgifter + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + I sjældne tilfælde overstiger en udgift med 7 mønter vores maksimale tilladte transaktionsstørrelse. Prøv igen med 6 eller færre mønter + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Foretrukken Betegnelse for automatisk mintede Zerocoin (1/5/10/50/100/500/1000/5000), 0 uden præference. standard: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Angiv brugerdefineret backup-vej for at tilføje en kopi af enhver zPIV-backup. Hvis det er angivet som dig, genererer hver backup en tidsstempelet fil. Hvis den er angivet som fil, ønsker man at omskrive til den pÃ¥gældende fil hver backup. Hvis backupath er indstillet, vil der ske 4 sikkerhedskopier + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Angiv en brugerdefineret backup-sti for at tilføje en kopi af en wallet-backup. Hvis det er angivet som dig, genererer hver backup en tidsstempelet fil. Hvis den er angivet som fil, ønsker man at omskrive til den pÃ¥gældende fil hver backup. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftTX kræver mindst 6 bekræftelser. Vent nogle minutter og prøv igen. + + + <category> can be: + <category> can be: + + + Attempt to force blockchain corruption recovery + Forsøg at gennemtvinge reparation af korrumperet blokkæde + + + CoinSpend: Accumulator witness does not verify + CoinSpend: Akkumulator vidne bekræfter ikke + + + Display the stake modifier calculations in the debug.log file. + Vis beregning af stavmodifikator i debug.log-filen. + + + Display verbose coin stake messages in the debug.log file. + Vis verbose møntspilsmeddelelser i debug.log-filen. + + + Enable publish hash block in <address> + Aktivér publish hash-blok i <address> + + + Enable publish hash transaction in <address> + Aktivér publicering af hash-transaction I <address> + + + Enable publish raw block in <address> + Aktivér offentliggør rÃ¥ blok I <address> + + + Enable publish raw transaction in <address> + Aktivér publicere rÃ¥ transaktion i <address> + + + Enable staking functionality (0-1, default: %u) + Aktivér stakfunktionalitet (0-1, standard: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Fejl! En fatal intern fejl opstod. Se debug.log for nærmere detaljer + + + Error: No valid utxo! + Fejl: Ingen gyldig udxo! + + + Failed to create mint + Kunne ikke oprette mynte + + + Failed to find Zerocoins in wallet.dat + Kunne ikke finde Zerocoins i wallet.dat + + + Failed to select a zerocoin + Kunne ikke vælge en zerocoin + + + Failed to wipe zerocoinDB + Kunne ikke tørre zerocoinDB + + + Failed to write coin serial number into wallet + Kunne ikke skrive møntserienummer i tegnebog + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Behold højest <n> transaktioner i hukommelsen, der ikke kan forbindes (default: %u) + + + Limit size of signature cache to <n> entries (default: %u) + Begræns størrelsen pÃ¥ signatur cachen til <n> poster (default: %u) + + + Line: %d + Linje: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Lyt efter JSON-RPC forbindelser pÃ¥ <port> (default: %u or testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Lyt efter forbindelser pÃ¥ port <port> (default: %u or tesntet: %u) + + + Loading addresses... + Indlæser adresser + + + Loading block index... + Indlæser blokindeks + + + Loading budget cache... + Indlæser budgetcache... + + + Loading masternode cache... + Indlæser masternodecache... + + + Loading masternode payment cache... + Indlæser masternode betalingscache... + + + Loading sporks... + Indlæser sporks ... + + + Loading wallet... (%3.2f %%) + Indlæser tegnebog... (%3.2f%%) + + + Loading wallet... + Indlæser tegnebog + + + Location of the auth cookie (default: data dir) + Placering af auth cookie (standard: data dir) + + + Lock masternodes from masternode configuration file (default: %u) + LÃ¥s masternoder fra masternode konfiguratinsfilen (default: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Opslag (): Ugyldig-proxy adresse eller værtsnavn: '%s' + + + Maintain at most <n> connections to peers (default: %u) + Vedligehold maksimalt <n> forbindelser til peers (default: %u) + + + Masternode options: + Masternodeoptioner + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Maksimal størrelse pÃ¥ per-connection receive buffer, <n>*1000 bytes (default: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Maksimal størrelse pÃ¥ per-connection send buffer, <n> *1000 bytes (default: %u) + + + Mint did not make it into blockchain + Mint gjorde det ikke til blockchain + + + Need to specify a port with -whitebind: '%s' + Der skal specificeres en port med -whitebind: '%s' + + + Node relay options: + Node videresendelsesoptioner: + + + Not enough file descriptors available. + Ikke nok fildescriptors tilgængelige + + + Number of automatic wallet backups (default: 10) + Antal automatiske sikkerhedskopier af tegnebogen (default: 10) + + + Number of custom location backups to retain (default: %d) + Antal brugerdefinerede positionsbackups til at beholde (standard: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Accepter kun blokkæde matchende indbyggede kontrolpunkter (defaut %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Forbind udelukkende til noder i netværket <net> (ipv4, ipv6 eller onion) + + + Options: + Optioner: + + + Password for JSON-RPC connections + Kodeord for JSON-RPC forbindelser + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid (): Ugyldig-proxy adresse eller værtsnavn: '%s' + + + Preparing for resync... + Forberedelse til genoptagelse ... + + + Prepend debug output with timestamp (default: %u) + Forbered debug output med tidsstempel (default %u) + + + Print version and exit + Udskriftsversion og exit + + + RPC server options: + RPC server optioner: + + + Randomly drop 1 of every <n> network messages + Drop 1 af hver <n> netværksmeddelelser efter tilfældighedsprincippet + + + Randomly fuzz 1 of every <n> network messages + Gør 1 af hver <n> netværksmeddelelser uklar efter tilfældighedsprincippet + + + Rebuild block chain index from current blk000??.dat files + Genopbyg blokkædens indeks fra de aktuelle blk000??.dat filer + + + Receive and display P2P network alerts (default: %u) + Modtag og vis P2P netværksalarmer (default: %u) + + + Reindex the accumulator database + Reindex akkumulatiedatabasen + + + Relay and mine data carrier transactions (default: %u) + Videresend og minér databærer transaktioner (default: %u) + + + Relay non-P2SH multisig (default: %u) + Videresend ikke-P2SH mulisig (default %u) + + + Rescan the block chain for missing wallet transactions + Genskan blokkæden for manglende transaktioner i tegnebogen + + + Rescanning... + Genskanner... + + + ResetMintZerocoin finished: + ResetSpentZerocoin færdig: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin færdig: + + + Run a thread to flush wallet periodically (default: %u) + Kør en trÃ¥d periodevist for at rense tegnebogen ud (default %u) + + + Run in the background as a daemon and accept commands + Kør en trÃ¥d i baggrunden som en særlig service og tag imod kommandoer + + + Send transactions as zero-fee transactions if possible (default: %u) + Send transaktioner som nugebyrstransaktioner hvis muligt (default: %u) + + + Session timed out. + Sessionen brugte for meget tid. + + + Set database cache size in megabytes (%d to %d, default: %d) + Angiv databasecachens størrelse i megabytes (%d til %d, default: %d) + + + Set external address:port to get to this masternode (example: %s) + Angiv den eksterne adresse:port for at komme til denne masternode (eksempel: %s) + + + Set key pool size to <n> (default: %u) + Angiv hoved poolstørrelse til <n> (default %u) + + + Set maximum block size in bytes (default: %d) + Angiv maksimal blokstørrelse i bytes (default: %d) + + + Set minimum block size in bytes (default: %u) + Angiv minimums blokstørrelse i bytes (default: %u) + + + Set the Maximum reorg depth (default: %u) + Indstil højeste dybde dybde (standard: %u) + + + Set the masternode private key + angiv masternodens private nøgle + + + Set the number of threads to service RPC calls (default: %d) + Angiv antallet af trÃ¥de der anvendes til at servicere RPC opkald (default: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Sætter DB_PRIVATE flag i tegnebogens databasemiljø (default: %u) + + + Show all debugging options (usage: --help -help-debug) + Vis alle debugoptioner (brug: --help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Formindsk debug.logfilen ved opstart af klienten (default: 1 nÃ¥r der ikke er angivet -debug) + + + Signing timed out. + Signering brugte for meget tid. + + + Signing transaction failed + Signering af transaktionen mislykkedes + + + Specify configuration file (default: %s) + Specificer konfigurationsfil (default: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Specificer forbindelsens timeout i millisekunder (minimum: 1, default : %d) + + + Specify data directory + angiv datamappe + + + Specify masternode configuration file (default: %s) + Specificer masternode konfigurationsfilen (default: %s) + + + Specify pid file (default: %s) + Angiv pid filen (default: %s) + + + Specify wallet file (within data directory) + angiv tegnebogens wallet fil (indenfor datamappen) + + + Specify your own public address + Angiv Deres offentlige adresse + + + Spend Valid + Tilbring gyldig + + + Spend unconfirmed change when sending transactions (default: %u) + Brug ubekræftede returpenge nÃ¥r der sendes transaktioner (default: %u) + + + Staking options: + Staking muligheder: + + + Stop running after importing blocks from disk (default: %u) + Stop kørsel efter import af blokke fra disken (default: %u) + + + Synchronization failed + Synkronisering mislykkedes. + + + Synchronization finished + Synkronisering færdig + + + Synchronization pending... + Synkronisering venter + + + Synchronizing budgets... + Synkronisere budgetter + + + Synchronizing masternode winners... + Synkroniserer masternodevinnere + + + Synchronizing masternodes... + Synkroniserer masternoder... + + + Synchronizing sporks... + Synkroniserer sporks... + + + Syncing zPIV wallet... + Syncing zPIV wallet .. + + + The coin spend has been used + Møntudgifterne er blevet brugt + + + The transaction did not verify + Transaktionen bekræftede ikke + + + This help message + Denne hjælpemeddelelse + + + This is experimental software. + Denne software er eksperimentiel + + + This is intended for regression testing tools and app development. + Dette er ment som et tilbagekørings test- og appudviklingsværktøj. + + + Threshold for disconnecting misbehaving peers (default: %u) + Terskel for frakoblíng af peers der udfører upassende handlinger (default: %u) + + + Too many spends needed + Alt for mange tilbringer nødvendig + + + Tor control port password (default: empty) + Tor-kontrolportadgangskode (standard: tom) + + + Tor control port to use if onion listening enabled (default: %s) + Tor-kontrolport, der skal bruges, hvis du lytter til løg (standard: %s) + + + Transaction Created + Transaktion oprettet + + + Transaction Mint Started + Transaktionsmynte startet + + + Transaction amount too small + Transaktionsbeløbet er for lille + + + Transaction amounts must be positive + Transaktionsbeløbet skal være positivt + + + Transaction too large for fee policy + Transaktionen er for stor til at opfylde gebyrpolitikken + + + Transaction too large + Transaktionen er for stor + + + Trying to spend an already spent serial #, try again. + Forsøger at bruge en allerede brugt serie #, prøv igen. + + + Unable to bind to %s on this computer (bind returned error %s) + Det er ikke muligt at forbide til %s pÃ¥ denne computer (bind returnerede fejl %s) + + + Unable to sign spork message, wrong key? + Det var ikke muligt at signere spork meddelelsen. Er De sikker pÃ¥ De anvender den rigtige nøgle? + + + Unable to start HTTP server. See debug log for details. + Kan ikke starte HTTP-serveren. Se fejlfindingsloggen for detaljer. + + + Unknown network specified in -onlynet: '%s' + Ukendt netværk specificeret i -onlynet: '%s' + + + Upgrade wallet to latest format + Opdater tegnebogen til det nyeste format + + + Use UPnP to map the listening port (default: %u) + Anvend UPnP til at kortlægge den lyttende port (default: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Anvend UPnP for at kortlægge lytteporten (default: 1 nÃ¥r der lyttes) + + + Use a custom max chain reorganization depth (default: %u) + Brug en brugerdefineret maks kædeomlægningsdybde (standard: %u) + + + Use the test network + Anvend testnetværket + + + Username for JSON-RPC connections + Brugernavn til JSON-RPC forbindelser + + + Value is below the smallest available denomination (= 1) of zPIV + Værdien er under den mindste tilgængelige værdi (= 1) for zPIV + + + Verifying blocks... + Verificerer blokke + + + Verifying wallet... + Verificerer tegnebog + + + Wallet %s resides outside data directory %s + Tegnbogen %s befinder sig udenfor datamappen %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + Tegnebogen mÃ¥tte genskrives. Genstart PIVX core for at gøre færdig + + + Wallet options: + Optioner for tegnebogen + + + Wallet window title + Tegnebogens vinduestitel + + + Warning + Advarsel! + + + Warning: This version is obsolete, upgrade required! + Advarsel! Denne version er forældet. Opgradering krævet. + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Advarsel! Argumentet -benchmark understøttes ikke og blev ignoreret. Anvend -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Advarsel! Argumentet -debugnet understøttes ikke og blev ignoret. Brug -debug=net. + + + You don't have enough Zerocoins in your wallet + Du har ikke nok Zerocoins i din tegnebog + + + You need to rebuild the database using -reindex to change -txindex + Databasen skal genopbygges ved hjælp af -reindex for at ændre -txindex + + + Zapping all transactions from wallet... + Skifter alle transaktioner i tegnebogen. + + + ZeroMQ notification options: + ZeroMQ notifikationsindstillinger: + + + Zerocoin options: + Zerocoin muligheder: + + + on startup + Ved opstart + + + wallet.dat corrupt, salvage failed + Tegnebogsfilen wallet.dat er beskadiget. Opbygning mislykkedes. + + + + send + + Form + Formular + + + Send + send + + + TextLabel + Tekstmærke + + + PushButton + Tryk pÃ¥ Knappen + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_de.ts b/src/qt/locale/pivx_de.ts new file mode 100644 index 0000000..7a1aef4 --- /dev/null +++ b/src/qt/locale/pivx_de.ts @@ -0,0 +1,5837 @@ + + + AddNewAddressDialog + + Dialog + Dialog + + + My Address + Meine Adresse + + + Address + Adresse + + + PushButton + Druckknopf + + + CANCEL + Abbrechen + + + OK + OK + + + + AddNewContactDialog + + Dialog + Dialog + + + TextLabel + TextEtikett + + + CANCEL + Abbrechen + + + OK + OK + + + Edit Contact + Kontakt bearbeiten + + + Set a label for the selected address + Der ausgewählten Adresse ein Label zuweisen + + + Enter a name for the address (e.g Exchange) + Einen Namen für diese Adresse eingeben (z.B. Exchange) + + + SAVE + SICHERN + + + Edit label for the selected address: +%1 + Beschreibung bearbeiten für ausgewählte Adresse: +%1 + + + + AddressBookPage + + Right-click to edit address or label + Rechtsklick um Adresse oder Bezeichnung zu bearbeiten + + + Create a new address + Eine neue Adresse erstellen + + + &New + &Neu + + + Copy the currently selected address to the system clipboard + Ausgewählte Adresse in die Zwischenablage kopieren + + + &Copy + &Kopieren + + + Delete the currently selected address from the list + Ausgewählte Adresse aus der Liste entfernen + + + &Delete + &Löschen + + + Export the data in the current tab to a file + Daten aus der aktuellen Ansicht in eine Datei exportieren + + + &Export + &Exportieren + + + C&lose + &Schließen + + + Choose the address to send coins to + Wählen Sie die Adresse aus, an die Sie PIV überweisen möchten + + + Choose the address to receive coins with + Wählen Sie die Adresse aus, über die Sie PIV empfangen wollen + + + C&hoose + &Auswählen + + + Sending addresses + Zahlungsadressen + + + Receiving addresses + Empfangsadressen + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Dies sind ihre PIVX-Adressen zum Tätigen von Ãœberweisungen. Bitte prüfen Sie den Betrag und die Empfangsadresse, bevor Sie PIV überweisen. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Dies sind ihre PIVX-Adressen zum Empfangen von Zahlungen. Es wird empfohlen für jede Transaktion eine neue Empfangsadresse zu verwenden. + + + &Copy Address + &Adresse kopieren + + + Copy &Label + &Bezeichnung kopieren + + + &Edit + &Editieren + + + Export Address List + Adressliste exportieren + + + Comma separated file (*.csv) + Kommagetrennte Datei (*.csv) + + + Exporting Failed + Exportieren fehlgeschlagen + + + There was an error trying to save the address list to %1. Please try again. + Beim Speichern der Adressliste nach %1 ist ein Fehler aufgetreten. Bitte erneut versuchen. + + + + AddressLabelRow + + Form + Formular + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + AddressTableModel + + Label + Bezeichnung + + + Address + Adresse + + + Date + Datum + + + (no label) + (keine Bezeichnung) + + + + AddressesWidget + + Form + Formular + + + Send + Schicken + + + TextLabel + TextEtikett + + + No active Master Node yet + Keine aktiven Masternodes bis jetzt + + + Contact name + Kontaktname + + + Enter address + Adresse einfügen + + + OK + OK + + + Contacts + Kontakte + + + You can add a new one in the options menu to the side. + Unter Menü "Optionen" auf der Seite können sie einen Neuen erfassen. + + + No contacts yet + Noch keine Kontakte + + + e.g. John Doe + z.B. John Doe + + + Enter a PIVX address + PIVX Adresse einfügen + + + SAVE + SICHERN + + + Invalid Contact Address + Ungültige Kontaktadresse + + + Cannot store your own address as contact + Eigene Adresse nicht als Kontakt speicherbar + + + Address already stored, label: %1 + Adresse schon gespeichert, label: %1 + + + New Contact Stored + Neuer Kontakt gespeichert + + + Error Storing Contact + Fehler beim Speichern des Kontakts + + + Contact edited + Kontakt bearbeitet + + + Contact edit failed + Bearbeitung des Kontakts fehlgeschlagen + + + Delete Contact + Lösche Kontakt + + + You are just about to remove the contact: + +%1 + +Are you sure? + Sie sind dabei folgenden Kontakt zu löschen: + +%1 + +Sind Sie sicher? + + + Contact Deleted + Kontakt gelöscht + + + Error deleting a contact + Fehler beim Löschen des Kontakts + + + Address copied + Adresse kopiert + + + + AskPassphraseDialog + + Passphrase Dialog + Passphrase Dialog + + + TextLabel + TextEtikett + + + PushButton + Druckknopf + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Geben Sie die neue Passphrase für die Wallet ein.<br>Bitte verwenden Sie eine Passphrase bestehend aus <b>10 oder mehr zufälligen Zeichen</b> oder <b>8 oder mehr Wörtern</b>. + + + Encrypt wallet + Wallet verschlüsseln + + + This operation needs your wallet passphrase to unlock the wallet. + Dieser Vorgang benötigt ihre Passphrase, um die Wallet zu entsperren. + + + Unlock wallet +for staking + Wallet entsperren + + + Unlock wallet + Wallet entsperren + + + This operation needs your wallet passphrase to decrypt the wallet. + Dieser Vorgang benötigt ihre Passphrase, um die Wallet zu entschlüsseln. + + + Decrypt wallet + Wallet entschlüsseln + + + Change passphrase + Passphrase ändern + + + Enter the old and new passphrase to the wallet. + Geben Sie die alte und neue Passphrase für die Wallet ein. + + + Confirm wallet encryption + Verschlüsselung der Wallet bestätigen + + + ENCRYPT + VERSCHLÃœSSELN + + + CANCEL + ABBRECHEN + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + Die Anwendung wird nun geschlossen um die Verschlüsselung abzuschließen. Bitte bedenken Sie, dass auch die Verschlüsselung nicht sicher vor Diebstahl ihrer PIVs durch Schadsoftware schützt, die ihren Computer befällt. + + + Are you sure you wish to encrypt your wallet? + Sind Sie sich sicher, dass Sie Ihre Wallet verschlüsseln möchten? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Warnung: Wenn Sie Ihre Wallet verschlüsseln und Ihre Passphrase verlieren, <b>verlieren Sie alle ihre PIVs</b>! + + + Wallet encrypted + Wallet verschlüsselt + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + WICHTIG: Alle vorherigen Sicherungen sollten durch die neu erzeugte, verschlüsselte Wallet-Datei ersetzt werden. Aus Sicherheitsgründen werden vorherige Sicherungen der unverschlüsselten Wallet nutzlos, sobald Sie die neue, verschlüsselte Wallet verwenden. + + + Wallet encryption failed + Verschlüsselung der Wallet fehlgeschlagen + + + OK + OK + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Die Verschlüsselung der Wallet ist aufgrund eines internen Fehlers fehlgeschlagen. Ihre Wallet wurde nicht verschlüsselt. + + + The supplied passphrases do not match. + Die eingegebenen Passphrases stimmen nicht überein. + + + Wallet unlock failed + Entsperrung der Wallet fehlgeschlagen + + + The passphrase entered for the wallet decryption was incorrect. + Die eingegebene Passphrase zur Entschlüsselung der Wallet ist nicht korrekt. + + + Wallet decryption failed + Entschlüsselung der Wallet fehlgeschlagen + + + Wallet passphrase was successfully changed. + Die Passphrase der Wallet wurde erfolgreich geändert. + + + Warning: The Caps Lock key is on! + Warnung: Die Feststelltaste ist aktiviert! + + + + BanTableModel + + IP/Netmask + IP/Netzmaske + + + Banned Until + Gesperrt bis + + + + BlockExplorer + + Blockchain Explorer + Blockchain Explorer + + + Back + Zurück + + + Forward + Vor + + + Address / Block / Transaction + Addrese / Block / Tansaktion + + + Search + Suche + + + TextLabel + TextEtikett + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Nicht alle Transaktionen können anzezeigt werden. Um alle Transaktionen zu sehen, müssen sie die Option "txindex=1" in der "pivx.conf" Konfigurationsdatei hinzufügen. + + + + CSRow + + Form + Formular + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unbekannt: %5) + + + Network Alert + Netzwerkalarm + + + + CoinControlDialog + + Quantity: + Anzahl: + + + Bytes: + Byte: + + + Fee: + Gebühr: + + + Coin Selection + Münzenauswahl + + + Dust: + Abzug: + + + Change: + Wechselgeld: + + + Tree mode + Baumansicht + + + List mode + Listenansicht + + + (1 locked) + (1 gesperrt) + + + Amount + Betrag + + + Transaction Details + Transaktionsdetails + + + PushButton + Druckknopf + + + 0.00 PIV + 0.00 PIV + + + 0 + 0 + + + Select all + Alle anwählen + + + Received with label + Empfange mit Bezeichnung + + + Received with address + Empfangen mit Adresse + + + After Fee: + Nach Gebühren: + + + OK + OK + + + Date + Datum + + + Confirmations + Betätigungen + + + Confirmed + Bestätigt + + + Copy address + Adresse kopieren + + + Copy label + Bezeichnung kopieren + + + Copy amount + Betrag kopieren + + + Copy transaction ID + Transaktions-ID kopieren + + + Lock unspent + Sperre Verwendung + + + Unlock unspent + Entsperre Verwendung + + + Copy quantity + Anzahl kopieren + + + Copy fee + Gebühr kopieren + + + Copy after fee + Kopiere nach Gebühr + + + Copy bytes + Kopiere Bytes + + + Copy priority + Kopiere Priorität + + + Copy dust + Kopiere Abzug + + + Copy change + Kopiere Wechselgeld + + + Unselect all + Alle abwählen + + + Please switch to "List mode" to use this function. + Bitte wechsle zur "Listenansicht" um diese Funktion zu verwenden. + + + highest + höchste + + + higher + höher + + + high + hoch + + + medium-high + mittel-hoch + + + medium + mittel + + + low-medium + niedrig-mittel + + + low + niedrig + + + lower + niedriger + + + lowest + am niedrigsten + + + (%1 locked) + (%1 gesperrt) + + + none + keine + + + yes + ja + + + no + nein + + + This label turns red, if the transaction size is greater than 1000 bytes. + Diese Bezeichnung wird rot, wenn die Transaktion größer als 1000 Bytes ist. + + + This means a fee of at least %1 per kB is required. + Das heißt, eine Gebühr von mindestens %1 pro kB ist notwendig. + + + Can vary +/- 1 byte per input. + Kann um +/-1 Byte pro Eingang variieren. + + + Transactions with higher priority are more likely to get included into a block. + Transaktionen mit höherer Priorität werden eher in einen Block aufgenommen. + + + This label turns red, if the priority is smaller than "medium". + Diese Bezeichnung wird rot, wenn die Priorität kleiner als "mittel" ist. + + + This label turns red, if any recipient receives an amount smaller than %1. + Diese Bezeichnung wird rot, wenn ein Empfänger einen Betrag erhält, der kleiner ist als %1. + + + Can vary +/- %1 upiv per input. + Kann um +/- %1 upiv pro Eingang variieren. + + + (no label) + (keine Bezeichnung) + + + change from %1 (%2) + Wechselgeld von %1 (%2) + + + (change) + (Wechselgeld) + + + + CoinControlPivWidget + + Dialog + Dialog + + + Transaction Details + Transaktionsdetails + + + PushButton + Druckknopf + + + PIV: + PIV: + + + TextLabel + TextEtikett + + + Quantity: + Anzahl: + + + Fee: + Gebühr: + + + Amount + Betrag + + + Label + Bezeichnung + + + Address + Adresse + + + Type + Art + + + Date + Datum + + + Confirmations + Betätigungen + + + CheckBox + Checkbox + + + Bytes: + Byte: + + + Dust: + Abzug: + + + Change: + Wechselgeld: + + + After Fee: + Nach Gebühren: + + + CANCEL + ABBRECHEN + + + OK + OK + + + + ColdStakingWidget + + Form + Formular + + + Title + Titel + + + TextLabel + TextEtikett + + + PushButton + Druckknopf + + + Invalid entry + Ungültige Eingabe + + + Cannot create transaction. + Die Transaktion kann nicht erzeugt werden. + + + Address copied to clipboard + Adresse in Zwischenablage kopiert + + + Copy + Kopieren + + + Address copied + Adresse kopiert + + + Address label saved + Adressbezeichnung gespeichert + + + Error storing address label + Fehler beim Speichern der Adressbezeichnung + + + + ContactDropdownRow + + Form + Formular + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + DashboardWidget + + Form + Formular + + + Transactions + Transaktion + + + You can see here the history of your account + Hier können sie die Geschichte des Accounts anschauen + + + Warning + Warnung + + + No transactions + Keine Transaktionen + + + PushButton + Druckknopf + + + Staking Rewards + Staking Entschädigung + + + TextLabel + TextEtikett + + + Staking statistics + Staking Statistiken + + + PIV + PIV + + + zPIV + zPIV + + + Sort by + Sortieren nach + + + Days + Tage + + + Months + Monate + + + Years + Jahre + + + Filter by + Filtern nach + + + You can view your account's history + Der Link zum Verlauf des Accounts + + + Amount of PIV and zPIV staked. + Wieviele PIV und z PIV am staken sind. + + + All + Alle + + + Received + Empfangen + + + Sent + Gesendet + + + Mined + Erarbeitet + + + Minted + Erzeugt + + + MN reward + MN Vergütung + + + To yourself + Eigenüberweisung + + + Please wait until the wallet is fully synced to see your correct balance + Bitte warten bis die Wallet voll synchronisiert ist, um den korrekten Kontostand zu sehen + + + No transactions yet + Keine Transaktionen + + + How to get PIV or zPIV + Wie bekommt man PIV oder zPIV + + + You can verify the staking activity in the status bar at the top right of the wallet. +It will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced. + In der Statusbar der Wallet oben rechts kannst du sehen, ob staking aktiviert wurde. +Die staking Aktivität wird automatisch gestartet, sobald die Wallet genügend Konfirmationen für alle nicht ausgegeben Guthaben hat und zudem die Wallet synchronisiert ist. + + + You have no staking rewards + Sie haben keine Staking-Vergütungen + + + No charts library + Keine Grafik Bibliothek + + + Loading chart.. + Lade Tabelle.. + + + Error loading chart, invalid show option + Fehler beim Laden der Tabelle, ungültige Anzeigeoption + + + Error loading chart: %1 + Fehler beim Laden der Tabelle: %1 + + + + DefaultDialog + + Form + Formular + + + Transaction Details + Transaktionsdetails + + + Text Label + Text Bezeichnung + + + CANCEL + Abbrechen + + + SAVE + SICHERN + + + + DenomGenerationDialog + + Form + Formular + + + Transaction Details + Transaktionsdetails + + + PushButton + Druckknopf + + + This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again. + Diese Option schaltet ihre Wallet ganz frei. Jeder der Zugriff hat, kann PIV ausgeben bis die Wallet wieder geschlossen oder gesperrt wird. + + + 5000 + 5000 + + + 100 + 100 + + + 10 + 10 + + + 1000 + 1000 + + + 50 + 50 + + + 500 + 500 + + + 5 + 5 + + + 1 + 1 + + + Select All + Alle anwählen + + + CANCEL + ABBRECHEN + + + SAVE + SICHERN + + + + EditAddressDialog + + Edit Address + Adresse bearbeiten + + + &Label + &Bezeichnung + + + The label associated with this address list entry + Bezeichnung, die dem Adresslisteneintrag zugeordnet ist + + + &Address + &Adresse + + + The address associated with this address list entry. This can only be modified for sending addresses. + Adresse, die dem Adresslisteneintrag zugeordnet ist. Diese kann nur bei Zahlungsadressen verändert werden. + + + New receiving address + Neue Empfangsadresse + + + New sending address + Neue Zahlungsadresse + + + Edit receiving address + Empfangsadresse bearbeiten + + + Edit sending address + Zahlungsadresse bearbeiten + + + The entered address "%1" is not a valid PIVX address. + Die eingegebene Adresse "%1" ist keine gültige PIVX-Adresse. + + + The entered address "%1" is already in the address book. + Die eingegebene Adresse "%1" befindet sich bereits im Adressbuch. + + + Could not unlock wallet. + Wallet konnte nicht entsperrt werden. + + + New key generation failed. + Erzeugung eines neuen Schlüssels fehlgeschlagen. + + + + ExpandableButton + + Form + Formular + + + + FreespaceChecker + + A new data directory will be created. + Es wird ein neues Datenverzeichnis angelegt. + + + name + Name + + + Directory already exists. Add %1 if you intend to create a new directory here. + Verzeichnis existiert bereits. Fügen Sie %1 an, wenn Sie beabsichtigen hier ein neues Verzeichnis anzulegen. + + + Path already exists, and is not a directory. + Pfad existiert bereits und ist kein Verzeichnis. + + + Cannot create data directory here. + Datenverzeichnis kann hier nicht angelegt werden. + + + + GovernancePage + + Form + Formular + + + GOVERNANCE + KONTROLLE + + + Update Proposals + Vorschläge aktualisieren + + + Next super block: + Nächster Superblock: + + + 0 + 0 + + + Blocks to next super block: + Blöcke zum nächsten Superblock: + + + Days to budget payout (estimate): + Tage zur nächsten Auszahlung ( Schätzung): + + + Budget left: + Restliches Budget: + + + Masternodes count: + Anzahl Masternodes: + + + + HelpMessageDialog + + version + Version + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-Bit) + + + About PIVX Core + Ãœber PIVX Core + + + Command-line options + Kommandozeilenoptionen + + + Usage: + Benutzung: + + + command-line options + Kommandozeilenoptionen + + + UI Options: + UI Optionen: + + + Choose data directory on startup (default: %u) + Wähle Datenverzeichnis beim Start (Standard: %u) + + + Show splash screen on startup (default: %u) + Zeige Startbildschirm beim Start (Standard: %u) + + + Set language, for example "de_DE" (default: system locale) + Sprache festlegen, z.B. "de_DE" (Standard: Systemstandard) + + + Start minimized + Minimiert starten + + + Set SSL root certificates for payment request (default: -system-) + SSL-Wurzelzertifikate für Zahlungsanforderungen festlegen (Standard: Systemstandard) + + + OK + OK + + + + Intro + + Welcome + Willkommen + + + Welcome to PIVX Core. + Willkommen zu PIVX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Da dies das erste Mal ist, dass Sie PIVX Core starten, legen Sie jetzt bitte fest, an welchem Ort die Daten gespeichert werden sollen. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core wird die Blockchain laden und lokal speichern. Dafür sind mindestens %1GB freier Speicherplatz erforderlich. Der Speicherbedarf wird mit der Zeit anwachsen. Die Wallet wird ebenfalls in diesem Verzeichnis gespeichert. + + + Use the default data directory + Standard-Datenverzeichnis verwenden + + + CANCEL + Abbrechen + + + OK + OK + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Fehler: Angegebenes Datenverzeichnis "%1" kann nicht angelegt werden. + + + Error + Fehler + + + %1 GB of free space available + %1 GB freier Speicherplatz verfügbar + + + (of %1 GB needed) + (von benötigten %1 GB) + + + + LoadingDialog + + Form + Formular + + + TextLabel + TextEtikett + + + Loading + Lädt + + + . + . + + + + LockUnlock + + Form + Formular + + + Unlock Wallet + Wallet entsperren + + + Lock Wallet + Wallet sperren + + + Staking Only + Nur Staking + + + + MNRow + + Form + Formular + + + user_masternode + Benutzer_masternode + + + Address: 88.26.164.88:51474 + Address: 88.26.164.88:51474 + + + Jan. 19, 2019 + Jan. 19, 2019 + + + + MasterNodeWizardDialog + + Dialog + Dialog + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + Intro + Intro + + + Name + Name + + + Address + Adresse + + + Create New Master Node Controller + Erstelle einen neuen Master Node Controller + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + <html><head/><body><p>Um einen PIVX Masternode zu erstellen benötigen Sie 10'000 PIV (die Einheit von PIVX), welche sie dem Netzwerk zur Verfügung stellen (Diese Münzen gehören Ihnen und werden Ihren Besitz nie verlassen). </p><p></p><p>Sie können den Node zu jeder Zeit deaktivieren und somit die Münzen freischalten.</p></body></html> + + + Make sure you have this amount of coins. + Stellen Sie sicher, dass Sie die Anzahl Coins besitzen. + + + Set Master Node’s Name + Geben Sie dem Master Node einen Namen + + + <html><head/><body><p>A transaction of 10,000 PIV will be made</p><p>to a new empty address in your wallet.</p><p>The Address is labeled under the master node's name.</p></body></html> + <html><head/><body><p>Eine Transaktion von 10'000 PIV wird gemacht</p><p>auf eine leere Adresse in Ihrer Wallet.</p><p>Die Adresse wird beschriftet mit dem Namen des Masternodes.</p></body></html> + + + Set Master Node’s IP and port + Setzen Sie die IP und den Port des Masternodes. + + + Address of the node that must always be online running the actual master node. + Adresse des Nodes, welche immer online sein muss um den Master Node darüber laufen zu lassen. + + + Enter IP address + IP-Adresse eingeben + + + Enter Port + Port angeben + + + CANCEL + Abbrechen + + + OK + OK + + + e.g user_masternode + z.B Benutzer_masternode + + + NEXT + NEXT + + + BACK + ZURÃœCK + + + address label cannot be empty + Adressenbeschriftung darf nicht leer sein + + + IP or port cannot be empty + IP und port dürfen nicht leer sein + + + Invalid port number + Ungültige Portnummer + + + Prepare master node failed.. + Vorbereitungen für den Masternode sind fehlgeschlagen.. + + + Invalid masternode.conf file + Ungültiges masternode.conf file + + + Master node created! + Masternode erstellt! + + + masternode.conf file doesn't exists + masternode.conf File existiert nicht + + + The recipient address is not valid, please recheck. + Die Adresse des Empfängers ist nicht gültig, bitte erneut prüfen. + + + The amount to pay must be larger than 0. + Der zu zahlende Betrag muss größer als 0 sein. + + + The amount exceeds your balance. + Der Betrag übersteigt ihr Guthaben. + + + The total exceeds your balance when the %1 transaction fee is included. + Die Gesamtsumme überschreitet Ihr Guthaben, sobald die Transaktionsgebühr von %1 enthalten ist. + + + Duplicate address found, can only send to each address once per send operation. + Doppelte Adresse gefunden. Es kann nur einmal pro Sendeoperation an jede Adresse gesendet werden. + + + Transaction creation failed! + Transaktionserstellung fehlgeschlagen! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Die Transaktion wurde abgelehnt! Dies könnte passieren, wenn einige der Coins in deiner Wallet schon ausgegeben wurden. Zum Beispiel wenn du eine Kopie der wallet.dat benutzt hättest und Coins in der Kopie verbracht wurden. Hier aber noch nicht als verbraucht markiert wurden. + + + Error: The wallet was unlocked only to anonymize coins. + Fehler: Die Wallet wurde nur zum Anonymisieren von Coins freigeschaltet. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + Eine Gebühr %1 mal höher als %2 pro kB gilt als wahnsinnig hohe Gebühr. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Fehler: Die Wallet wurde nur zum Anonymisieren von Coins freigeschaltet. Freischaltung aufgehoben. + + + + MasterNodesWidget + + Form + Formular + + + TextLabel + TextEtikett + + + No active Master Node yet + Keine aktiven Masternodes bis jetzt + + + PushButton + Druckknopf + + + Masternodes + Masternodes + + + Create Masternode Controller + Masternode Controller erstellen + + + No active Masternode yet + Keine aktiven Masternodes bis jetzt + + + Start + Start + + + Delete + Löschen + + + Info + Info + + + Start Masternode + Starte Masternode + + + Are you sure you want to start masternode %1? + + Sind Sie sicher, dass Sie den Masternode starten wollen %1? + + + + Cannot start masternode, the collateral transaction has not been accepted by the network. +Please wait few more minutes. + Masternode kann nicht gestartet werden, die Sicherungstransaktion wurde vom Netzwerk noch nicht akzeptiert. +Bitte warte einige Minuten. + + + You are just about to export the required data to run a Masternode +on a remote server to your clipboard. + + +You will only have to paste the data in the pivx.conf file +of your remote server and start it, then start the Masternode using +this controller wallet (select the Masternode in the list and press "start"). + + Sie sind dabei die erforderlichen Daten, +um einen Masternode auf einem externen Server laufen zu lassen, +in die Zwischenablage zu kopieren. + + +SIe müssen lediglich die Daten in das pivx.conf-File ihres externen Servers einfügen, +die Pivx-wallet starten, um dann von der Kontrollwallet aus +ihren Masternode zu starten. + + + + Masternode exported!, check your clipboard + Masternode exportiert!, Befindet sich in der Zwischenablage + + + Delete Masternode + Lösche Masternode + + + You are just about to delete Masternode: +%1 + +Are you sure? + Sie sind dabei folgednen Masternode zu löschen: +%1 + +Sind sie sicher? + + + Invalid masternode.conf file + Ungültiges masternode.conf file + + + masternode.conf file doesn't exists + masternode.conf File existiert nicht + + + Not enough balance to create a masternode, 10,000 PIV required. + Nicht genügend Guthaben um einen Masternode zu erstellen, 10'000 PIV werden benötigt. + + + Error creating masternode + Fehler beim Erstellen des Masternodes + + + + MnInfoDialog + + Form + Formular + + + Master Node Information + Masternode Inormationen + + + Public Key: + Öffentlicher Schlüssel: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Address: + IP-Adresse: + + + 127.0.0.2:43223 + 127.0.0.2:43223 + + + Status: + Status: + + + + MyAddressRow + + Form + Formular + + + Jan. 19, 2019 + Jan. 19, 2019 + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + NavMenuWidget + + Form + Formular + + + + OpenURIDialog + + Open URI + URI öffnen + + + Open payment request from URI or file + Zahlungsanfrage von URI oder Datei öffnen + + + TextLabel + TextEtikett + + + CANCEL + Abbrechen + + + OK + OK + + + Select payment request file + Datei für Zahlungsanfrage auswählen + + + Select payment request file to open + Datei für Zahlungsanfrage öffnen + + + + OptionButton + + Form + Formular + + + TextLabel + TextEtikett + + + + OptionsDialog + + Options + Optionen + + + &Main + &Main + + + Size of &database cache + Größe &Datenbank Cache + + + MB + MB + + + Number of script &verification threads + Anzahl der Skript &Verifikation Threads + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = leave that many cores free) + + + W&allet + W&allet + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + Wenn Sie das Ausgeben von unbestätigten Wechselgeld deaktivieren, so kann das Wechselgeld von einer Transaktion <br/>nicht verwendet werden, bis mindestens eine Bestätigung vorliegt.<br/>Dies hat auch Auswirkungen auf ihre Bilanzberechnung. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Automatisches öffnen des PIVX-Client-Port im Router. Dies funktioniert nur, wenn ihr Router UPnP unterstützt und es eingeschaltet ist. + + + Accept connections from outside + Verbindungen von Aussen zulassen + + + Allow incoming connections + Eingehende Verbindungen erlauben + + + &Connect through SOCKS5 proxy (default proxy): + &Verbindung durch SOCKS5 proxy (default proxy): + + + Expert + Experte + + + Automatically start PIVX after logging in to the system. + PIVX automatisch nach dem Login starten. + + + &Start PIVX on system login + PIVX automatisch beim System Login &starten. + + + Whether to show coin control features or not. + Coin &control Funktionen anzeigen oder nicht + + + Enable coin &control features + Coin &control Funktionen aktivieren + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Zeige zusätzlichen Tab, der alle ihre Masternodes anzeigt, im ersten Untertab<br/>und alle Masternodes im Netzwerk im zweiten Untertab. + + + Show Masternodes Tab + Masternodes Tab anzeigen + + + &Spend unconfirmed change + &Sende unbestätigtes Wechselgeld + + + &Network + &Netzwerk + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + Die Sprache der Benutzeroberfläche kann hier festgelegt werden. Diese Einstellung wird nach einem Neustart realisiert. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Sprache fehlt oder ist unvollständig? Helfe mit und trage zur Ãœbersetzung bei unter: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Port mit &UPnP mappen + + + Enable automatic minting of PIV units to zPIV + Aktivieren Sie die automatische Prägung von PIV-Einheiten zu zPIV + + + Enable zPIV Automint + Aktivieren Sie zPIV Automint + + + Enable automatic zPIV minting from specific addresses + Automatisches zPIV Minting von spezifischen Adressen erlauben + + + Enable Automint Addresses + Automint Adressen aktivieren + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Anteil des eingehenden PIV, welcher automatisch zu zPIV via Zerocoin Protokoll konvertiert wird (min: 10%) + + + Percentage of autominted zPIV + Prozentsatz der automatisierten zPIV + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Warte mit automatischer Konvertierung zu Zerocoin, bis genügend PIV für diese Stückelung verfügbar ist + + + Preferred Automint zPIV Denomination + Bevorzugte automatisierte zPIV Stückelung + + + Stake split threshold: + Staff Split-Schwelle: + + + Connect to the PIVX network through a SOCKS5 proxy. + Durch einen SOCKS5 Proxy mit dem PIVX Netzwerk verbinden. + + + Proxy &IP: + Proxy &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP Adresse des PROXY (z.B. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Port: + + + Port of the proxy (e.g. 9050) + Port des Proxies (z.B. 9050) + + + &Window + &Fenster + + + Show only a tray icon after minimizing the window. + Zeige nur ein Symbolkachel nach der Fensterminimierung. + + + &Minimize to the tray instead of the taskbar + &Minimierung zur Kachel anstelle auf der Taskbar + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Minimierung anstelle vom Schließen der Anwendung, wenn das Fenster geschlossen wird. Wenn diese Option aktiviert ist, wird die Anwendung nur geschlossen, wenn im Menü Beenden gewählt wird. + + + M&inimize on close + Beim Schließen m&inimieren + + + &Display + &Display + + + User Interface &language: + Benutzeroberfläche &Sprache + + + User Interface Theme: + Benutzeroberfläche Motiv: + + + Unit to show amounts in: + Einheit des Betrags anzeigen in: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Wähle die Standardunterteilungseinheit, um sie auf der Oberfläche anzuzeigen und wenn Coins gesendet werden. + + + Decimal digits + Dezimalstellen + + + Hide empty balances + Leere Salden ausblenden + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + Drittpartei URLs (z.B. Blockexplorer) die auf der Registerkarte Transaktionen als Kontextmenü erscheinen. %s in der URL wird durch den Transaktionshash ersetzt. Mehrere URLs sind durch vertikale Balken | getrennt. + + + Third party transaction URLs + Drittanbieter Transaktions URLs + + + Active command-line options that override above options: + Aktive Befehlszeilenoptionen, die über Optionen hinausgehen: + + + Reset all client options to default. + Alle Client Optionen auf den Standard zurücksetzen + + + &Reset Options + Optionen Zu&rücksetzen + + + &OK + &OK + + + &Cancel + &Abbrechen + + + Any + Irgendein + + + default + standard + + + none + keine + + + Confirm options reset + Zurücksetzen der Optionen bestätigen + + + Client restart required to activate changes. + Client Neustart erforderlich, um Änderungen zu aktivieren. + + + Client will be shutdown, do you want to proceed? + Der Client wird heruntergefahren, wollen Sie fortfahren? + + + This change would require a client restart. + Diese Änderung würde einen Neustart des Clients erfordern. + + + The supplied proxy address is invalid. + Die eingegeben PROXY-Adresse ist ungültig. + + + The supplied proxy port is invalid. + Der angegebene Proxy-Port ist ungültig. + + + The supplied proxy settings are invalid. + Die angegebenen Proxyeinstellungen sind ungültig. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + Wallet + + + Node + Node + + + &Show / Hide + &Anzeigen / Verstecken + + + Show or hide the main Window + Das Hauptfenster anzeigen oder verstecken + + + E&xit + &Beenden + + + Quit application + Anwendung beenden + + + PIVX Core client + PIVX Core Client + + + Error + Fehler + + + Warning + Warnung + + + Information + Hinweis + + + Sent MultiSend transaction + Versende MultiSend Transaktion + + + Sent transaction + Gesendete Transaktion + + + Incoming transaction + Eingehende Transaktion + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Datum: %1 +Betrag: %2 +Typ: %3 +Adresse: %4 + + + + PWidget + + + PaymentServer + + Payment request error + Zahlungsauftragsfehler + + + URI handling + URI Behandlung + + + Payment request fetch URL is invalid: %1 + Zahlungsauftragsabruf URL ist ungültig: %1 + + + Payment request file handling + Zahlungsauftragsdatei Behandlung + + + Invalid payment address %1 + Ungültige Zahlungsaufforderungsadresse %1 + + + Cannot start pivx: click-to-pay handler + Kann PIVX nicht starten: click-to-pay Handler + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URI kann nicht analysiert werden! Dies kann durch eine ungültige PIVX-Adresse oder fehlerhafte URI-Parameter verursacht worden sein. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Zahlungsauftragsdatei kann nicht gelesen werden! Dies kann durch eine ungültige Zahlungsauftragsdatei verursacht werden. + + + Payment request rejected + Zahlungsauftrag abgelehnt + + + Payment request network doesn't match client network. + Das Zahlungsauftragsnetzwerk stimmt nicht mit dem Clientnetzwerk überein. + + + Payment request has expired. + Zahlungsauftrag ist abgelaufen. + + + Payment request is not initialized. + Zahlungsauftrag ist nicht initialisiert. + + + Unverified payment requests to custom payment scripts are unsupported. + Nicht verifizierte Zahlungsaufträge an benutzerdefinierte Zahlungsskripts werden nicht unterstützt. + + + Requested payment amount of %1 is too small (considered dust). + Der angeforderte Zahlungsbetrag von %1 ist zu klein (betrachtet als Staub). + + + Refund from %1 + Rückerstattung von %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Zahlungsauftrag %1 ist zu groß (%2 Bytes, erlaubt %3 Bytes). + + + Payment request DoS protection + Zahlungsauftrag DoS Schutz + + + Error communicating with %1: %2 + Fehler beim Kommunizieren mit %1: %2 + + + Payment request cannot be parsed! + Zahlungsauftrag kann nicht analysiert werden! + + + Bad response from server %1 + Fehlerhafte Antwort vom Server %1 + + + Network request error + Netzwerkanfragefehler + + + Payment acknowledged + Zahlung anerkannt + + + + PeerTableModel + + Address/Hostname + Adresse/Rechnername + + + Version + Programmversion + + + Ping Time + Latenz (Ping) + + + + PrivacyWidget + + Form + Formular + + + Title + Titel + + + TextLabel + TextEtikett + + + PushButton + Druckknopf + + + No active Master Node yet + Keine aktiven Masternodes bis jetzt + + + Privacy + Privatsphäre + + + Convert + Umwandeln + + + Mint + Prägen + + + No transactions yet + Keine Transaktionen + + + Mint zPIV + zPIV prägen + + + Enter amount of PIV to mint into zPIV + Gebe eine Anzahl PIV ein, um sie in zPIV zu wechseln + + + Convert back to PIV + Konvertiere zPIV zurück zu PIV + + + Zerocoin + Zerocoin + + + zPIV is currently undergoing maintenance + zPIV wird momentan überarbeitet + + + convert + Umwandeln + + + mint + Prägen + + + Invalid value + Ungültiger Wert + + + + ProposalFrame + + Open proposal page in browser + Vorschläge-Seite im Browser + + + Yes: + Ja: + + + No: + Nein: + + + Open link + Öffentlicher Link + + + Copy link + Link kopieren + + + Wallet Locked + Wallet gesperrt + + + You must unlock your wallet to vote. + Um wählen zu können, muss dein Wallet entsperrt sein. + + + Confirm Vote + Bestätige deine Stimmabgabe + + + Vote Results + Abstimmresultate + + + + QObject + + Amount + Betrag + + + Enter a PIVX address (e.g. %1) + PIVX-Adresse eingeben (z.B. %1) + + + %1 d + %1 T + + + %1 h + %1 St. + + + %1 m + %1 Min. + + + %1 s + %1 S + + + NETWORK + NETZWERK + + + BLOOM + BLOOM + + + UNKNOWN + UNBEKANNT + + + None + Keine + + + N/A + k.A. + + + %1 ms + %1 Ms + + + PIVX Core + PIVX Core + + + + RPCConsole + + Tools window + Werkzeugfenster + + + &Information + &Information + + + General + Allgemein + + + Name + Name + + + Client name + Client Name + + + N/A + k.A. + + + Number of connections + Anzahl der Verbindungen + + + &Open + &Öffnen + + + Startup time + Startzeit + + + Network + Netzwerk + + + Last block time + Letzte Blockzeit + + + Debug log file + Debug-Protokolldatei + + + Build date + Build Datum + + + Current number of blocks + Aktuelle Blockanzahl + + + Client version + Client Version + + + Using BerkeleyDB version + Verwendete BerkeleyDB Version + + + Block chain + Blockchain + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Öffne PIVX-Debug-Protokolldatei aus dem aktuellen Datenverzeichnis. Dies kann bei großen Protokolldateien einige Sekunden dauern. + + + Number of Masternodes + Anzahl der Masternodes + + + &Console + &Konsole + + + Clear console + Konsole leeren + + + &Network Traffic + &Netzwerk Traffic + + + &Clear + &Clear + + + Totals + Gesamtbetrag + + + Received + Empfangen + + + Sent + Gesendet + + + &Peers + &Peers + + + Banned peers + Gebannte Peers + + + Select a peer to view detailed information. + Wähle ein Peer, um detaillierte Informationen zu sehen. + + + Whitelisted + Whitelisted + + + Direction + Richtung + + + Protocol + Protokoll + + + Version + Programmversion + + + Services + Dienstleistung + + + Ban Score + Ban Score + + + Connection Time + Verbindungszeit + + + Last Send + Letztes Senden + + + Last Receive + Letzter Empfang + + + Bytes Sent + Bytes gesendet + + + Bytes Received + Bytes empfangen + + + Ping Time + Latenz (Ping) + + + &Wallet Repair + &Wallet reparieren + + + Delete local Blockchain Folders + Lokalen Blockchain-Ordner löschen. + + + Wallet In Use: + Wallet In Benutzung: + + + Starting Block + Startblock + + + Synced Headers + Synchronisierte Header + + + Synced Blocks + Synchronisierte Blöcke + + + The duration of a currently outstanding ping. + Die Dauer eines derzeit ausstehenden Pings. + + + Ping Wait + Ping warten + + + Time Offset + Zeitverschiebung + + + Custom Backup Path: + Benutzerdefinierter Sicherungspfad: + + + Custom zPIV Backup Path: + Benutzerdefinierter zPIV Sicherungspfad: + + + Custom Backups Threshold: + Benutzerdefinierter Sicherungs-Schwellwert: + + + Salvage wallet + Wallet Rettung + + + Attempt to recover private keys from a corrupt wallet.dat. + Versuche, private Schlüssel aus einer beschädigten wallet.dat wiederherzustellen. + + + Rescan blockchain files + Erneutes Scannen der Bockchain Dateien + + + Rescan the block chain for missing wallet transactions. + Erneutes Scannen der Bockchain nach verschollen Wallet Transaktionen + + + Recover transactions 1 + Wiederherstellung von Transaktionen 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Wiederherstellung von Transaktionen aus der Blockchain (behalte Meta-Daten, zB. Kontoinhaber) + + + Recover transactions 2 + Wiederherstellung von Transaktionen 2 + + + Recover transactions from blockchain (drop meta-data). + Wiederherstellung von Transaktionen aus der Blockchain (verwerfe Meta-Daten) + + + Upgrade wallet format + Upgrade Wallet Format + + + Rebuild block chain index from current blk000??.dat files. + Blockchain Index aus der aktuellen blk000??.dat Datei neu aufbauen. + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Löscht alle lokalen Blockchain-Ordner damit das Wallet sich von Grund auf synchronisiert. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + Die unten aufgeführten Schaltflächen starten die Wallet mit Befehlszeilenoptionen, um die Wallet zu reparieren. Probleme mit beschädigten Blockchain-Dateien oder fehlenden/veralteten Transaktionen werden behoben. + + + Wallet repair options. + Wallet-Reparatur-Optionen + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Upgrade die Wallet, beim Start, auf das neueste Format . (Anmerkung: Dies ist NICHT ein Update der Wallet selbst!) + + + Rebuild index + Index neu aufbauen + + + In: + In: + + + Out: + Out: + + + Welcome to the PIVX RPC console. + Willkommen in der PIVX RPC-Konsole. + + + &Disconnect Node + &Disconnect Node + + + Ban Node for + Ban Knoten für + + + 1 &hour + 1 &hour + + + 1 &day + 1 &day + + + 1 &week + 1 &week + + + 1 &year + 1 &year + + + &Unban Node + &Unban Node + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Dieser Vorgang wird Ihren lokalen Blockchain-Ordner löschen und das Wallet wird von Grund auf neu Synchronisieren.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Dieser Vorgang wird einige Zeit in Anspruch nehmen und eine menge Daten herunterladen.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Deine Transaktionen und Guthaben werden wieder sichtbar sein nachdem der Download-Prozess abgeschlossen ist.<br /><br /> + + + Do you want to continue?.<br /> + Möchten Sie fortfahren?<br /> + + + Confirm resync Blockchain + Synchronisation der Blockchain bestätigen + + + Use up and down arrows to navigate history, and %1 to clear screen. + Verwende die Pfeiltasten um durch den Verlauf zu scrollen und %1 um das Konsolenfester zu löschen. + + + Type <b>help</b> for an overview of available commands. + Gebe <b>help</b> ein, um eine Ãœbersicht der verfügbaren Befehle zu erhalten. + + + %1 B + %1 Byte + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (node id: %1) + + + via %1 + via %1 + + + never + nie + + + Inbound + Eingehend + + + Outbound + Ausgehend + + + Yes + Ja + + + No + Nein + + + Unknown + Unbekannt + + + + ReceiveDialog + + Dialog + Dialog + + + Transaction Details + Transaktionsdetails + + + PushButton + Druckknopf + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + Abbrechen + + + OK + OK + + + + ReceiveWidget + + Form + Formular + + + TextLabel + TextEtikett + + + No address + Keine Adresse + + + Add Label + Bezeichnung hinzufügen + + + Generate Address + Generiere Adresse + + + Copy + Kopieren + + + Receive + Empfangen + + + Scan the QR code or copy the address to receive PIV. + QR-Code scannen oder Adresse kopieren um PIV zu erhalten. + + + No address + Keine Adresse + + + No available address, try unlocking the wallet + Keine Adresse verfügbar, versuche die Wallet zu entsperren. + + + Error generating address + Fehler beim Erstellen der Adresse + + + Change Label + Bezeichnung ändern + + + Edit Address Label + Adressbezeichnung bearbeiten + + + Address label saved + Adressbezeichnung gespeichert + + + Error storing address label + Fehler beim Speichern der Adressbezeichnung + + + New address created + Neue Adresse erstellen + + + Address copied + Adresse kopiert + + + Address copied to clipboard + Adresse in Zwischenablage kopiert + + + + RecentRequestsTableModel + + Date + Datum + + + Label + Bezeichnung + + + Message + Nachricht + + + Address + Adresse + + + Amount + Betrag + + + (no label) + (keine Bezeichnung) + + + (no message) + (keine Nachricht) + + + (no amount) + (kein Betrag) + + + + RequestDialog + + Dialog + Dialog + + + New Request Payment + Neue Zahlung anfordern + + + Lorem ipsum dolor sit amet, consectur cling elit, sed do + Lorem ipsum dolor sit amet, consectur cling elit, sed do + + + Amount + Betrag + + + PIV + PIV + + + TextLabel + TextEtikett + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + COPY ADDRESS + Adresse kopieren + + + COPY URL + URL kopieren + + + CANCEL + Abbrechen + + + REQUEST + Anfordern + + + Label + Bezeichnung + + + Description (optional) + Beschreibung (optional) + + + Add description + Beschreibung hinzufügen + + + Error + Fehler + + + GENERATE + ERSTELLEN + + + + SendChangeAddressDialog + + Dialog + Dialog + + + Transaction Details + Transaktionsdetails + + + PushButton + Druckknopf + + + CANCEL + Abbrechen + + + OK + OK + + + + SendCustomFeeDialog + + Form + Formular + + + Transaction Details + Transaktionsdetails + + + Recomended + Empfohlen + + + 0.00 KB + 0.00 KB + + + Custom + Benutzerdefiniert: + + + Per kilobyte + pro Kilobyte + + + CANCEL + Abbrechen + + + OK + OK + + + Customize Fee + Benutzerdefinierte Gebühr + + + Normal + Normal + + + Slow + Langsam + + + Fast + Schnell + + + SAVE + SICHERN + + + + SendMultiRow + + Form + Formular + + + TextLabel + TextEtikett + + + Add address + Adresse hinzufügen + + + Add description + Beschreibung hinzufügen + + + + SendWidget + + Send + Schicken + + + You can transfer public coins (PIV) or private coins (zPIV) + Sie können öffentliche Coins (PIV) oder private Coins (zPIV) transferieren + + + Select coin type to spend + Wähle Coin zum ausgeben + + + Enter a PIVX address or contact label + PIVX Adresse oder Kontaktbezeichnung einfügen + + + Amount + Betrag + + + Customize fee + Benutzerdefinierte Gebühr + + + Clear all + Alles löschen + + + Add recipient + Füge Empfänger hinzu + + + Reset to default + Auf Voreinstellungen zurücksetzen + + + Total to send + Totalbetrag zum Senden + + + Send PIV + Sende PIV + + + Send zPIV + Sende zPIV + + + Customize Fee + Benutzerdefinierte Gebühr + + + Maximum amount of outputs reached + Maximale Anzahl an Outputs erreicht + + + Invalid entry, previous entries must be valid before add a new one + Ungültige Eingabe, vorangehende Eingaben müssen gültig sein bevor eine neue angefügt werden kann + + + Invalid entry + Ungültige Eingabe + + + No set recipients + Keine Empfänger definiert + + + Cannot send, wallet locked + Senden nicht möglich, Wallet geschlossen + + + Cannot create transaction. + Die Transaktion kann nicht erzeugt werden. + + + Transaction sent + Transaktion geschickt + + + Spend Zerocoin + Ãœberweise Zerocoin + + + zPIV is currently undergoing maintenance. + zPIV unterliegt momentan Wartungsarbeiten. + + + Version 1 zPIV require a security level of 100 to successfully spend. + Version 1 zPIV benötigen eine Sicherheitsstufe von 100 um erfolgreich ausgegeben werden zu können. + + + Too much inputs ( + Zu viele Eingaben ( + + + ) needed. +Maximum allowed: + ) benötigt. +Maximal erlaubt: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) oder reduziere die aufzuwendende Menge. + + + Cannot store your own address as contact + Eigene Adresse nicht als Kontakt speicherbar + + + Update Contact + Kontakt bearbeiten + + + Create New Contact + Kontakt erstellen + + + New Contact Stored + Neuer Kontakt gespeichert + + + Error Storing Contact + Fehler beim Speichern des Kontakts + + + + SettingsBackupWallet + + Form + Formular + + + TextLabel + TextEtikett + + + PushButton + Druckknopf + + + Backup Wallet + Backup Wallet + + + Change Wallet Passphrase + Wallet Passwort ändern + + + Where + Wo + + + Backup + Backup + + + Change Passphrase + Passwort ändern + + + Backup Wallet + Wallet sichern + + + Wallet Data (*.dat) + Wallet-Daten (*.dat) + + + Backup created + Backup erstellt + + + Backup creation failed + Erstellung des Backups fehlgeschlagen + + + + SettingsBitToolWidget + + Form + Formular + + + TextLabel + TextEtikett + + + PushButton + Druckknopf + + + Import Address + Adresse importieren + + + Clear + Clear + + + Enter a PIVX address + PIVX Adresse einfügen + + + Add address + Adresse hinzufügen + + + Write a message + Nachricht schreiben + + + Encrypted Key + Verschlüsselter Schlüssel + + + ENCRYPT + Verschlüsseln + + + CLEAR ALL + ALLES LÖSCHEN + + + CLEAR + LÖSCHEN + + + The entered passphrase is invalid. + Die eingegebene Passphrase ist ungültig. + + + Allowed: 0-9,a-z,A-Z, + Zulässig: 0-9,a-z,A-Z, + + + The entered address is invalid. + Die eingegebene Adresse ist falsch + + + Please check the address and try again. + Bitte die Adresse prüfen und erneut eingeben + + + The entered address does not refer to a key. + Die eingegebene Adresse passt zu keinem Schlüssel + + + Wallet unlock was cancelled. + Entsperrung der Wallet wurde abgebrochen. + + + Private key for the entered address is not available. + Kein privater Schlüssel für die eingegebene Adresse verfügbar + + + Address encrypted. + Verschlüsselte Adresse. + + + No addresses available, you can go to the receive screen and add some there! + Keine Adressen verfügbar, Sie können in das Empfangsmenu gehen und neue hinzufügen! + + + Failed to decrypt. + Entschlüsselung fehlgeschlagen. + + + Please check the key and passphrase and try again. + Bitte überprüfen Sie den Schlüssel und die Passphrase und versuchen Sie es erneut. + + + Data Not Valid. + Daten ungültig. + + + Please try again. + Bitte versuchen Sie es erneut. + + + Please wait while key is imported + Bitte warten. Schlüssel wird importiert.. + + + Cannot import address, key already held by the wallet + Adresse kann nicht importiert werden, der Schlüssel ist schon in der Wallet hinterlegt + + + Error adding key to the wallet + Fehler beim Hinzufügen des Schlüssels zur Wallet + + + Successfully added pivate key to the wallet + Privater Schlüssel erfolgreich zur Wallet hinzugefügt + + + + SettingsConsoleWidget + + Form + Formular + + + TextLabel + TextEtikett + + + Console + Konsole + + + Welcome to the PIVX RPC console. + Willkommen in der PIVX RPC-Konsole. + + + Use up and down arrows to navigate history, and %1 to clear screen. + Verwende die Pfeiltasten um durch den Verlauf zu scrollen und %1 um das Konsolenfester zu löschen. + + + Type <b>help</b> for an overview of available commands. + Gebe <b>help</b> ein, um eine Ãœbersicht der verfügbaren Befehle zu erhalten. + + + + SettingsDisplayOptionsWidget + + Form + Formular + + + TextLabel + TextEtikett + + + PushButton + Druckknopf + + + Reset to default + Auf Voreinstellungen zurücksetzen + + + Discard changes + Änderungen verwerfen + + + Display + Display + + + Customize the display view options + Anpassen der Bildschirmdarstellung + + + Language + Sprache + + + Unit to show amount + Anzeige der Einheit + + + Decimal digits + Dezimalstellen + + + Hide empty balances + Leere Salden ausblenden + + + SAVE + SICHERN + + + default + standard + + + + SettingsFaqWidget + + Form + Formular + + + TextLabel + TextEtikett + + + PushButton + Druckknopf + + + 1) What is PIVX? + 1) Was ist PIVX? + + + 2) Why are my PIV unspendable? + 2) Wieso kann ich meine PIV nicht ausgeben? + + + 3) PIVX privacy? What is Zerocoin (zPIV)? + 3) PIVX Privatsphäre? Was ist ein Zercoin (zPIV)? + + + 4) Why are my zPIV unspendable? + 4) Wieso kann ich meine zPIV nicht ausgeben? + + + 5) Why did my wallet convert the balance + into zPIV automatically? + 5) Wieso hat meine Wallet automatisch das Guthaben in zPIV gewechselt? + + + 6) How do I receive PIV/zPIV? + 6) Wie empfange ich PIV/zPIV? + + + 7) How do I stake PIV/zPIV? + 7) Wie stake ich PIV/zPIV? + + + 8) Where I should go if I need support? + 8) Wo sollte ich hingehen, wenn ich ein Problem habe? + + + 9) What is a Master Node? + 9) Was ist ein Masternode? + + + 10) What is a Master Node Controller? + 10) Was ist ein Masternode Controller? + + + 1 + 1 + + + What is PIVX? + Was ist PIVX + + + 2 + 2 + + + Why are my PIV unspendable? + Wieso kann ich meine PIV nicht ausgeben? + + + 3 + 3 + + + PIVX privacy? What is Zerocoin (zPIV)? + PIVX Privatsphäre? Was ist ein Zercoin (zPIV)? + + + 4 + 4 + + + Why are my zPIV unspendable? + Wieso kann ich meine zPIV nicht ausgeben? + + + 5 + 5 + + + Why did my wallet convert the balance into zPIV automatically? + Wieso hat meine Wallet automatisch das Guthaben in zPIV gewechselt? + + + How do I receive PIV/zPIV? + Wie empfange ich PIV/zPIV? + + + How do I stake PIV/zPIV? + Wie stake ich PIV/zPIV? + + + Where I should go if I need support? + Wohin kann ich mich wenden, wenn ein Problem auftaucht? + + + What is a Master Node? + Was ist ein Masternode? + + + 10 + 10 + + + What is a Master Node Controller? + Was ist ein Masternodecontroller? + + + Frequently Asked Questions + Häufig gestellte Fragen + + + You can read more here + Hier können Sie mehr lesen + + + Exit + Exit + + + + SettingsInformationWidget + + Form + Formular + + + TextLabel + TextEtikett + + + Network Monitor + Netzwerkmonitor + + + Information + Hinweis + + + General + Allgemein + + + Client Version: + Client Version + + + Using BerkeleyDB version: + Verwendete BerkeleyDB Version: + + + Network + Netzwerk + + + In: + In: + + + Out: + Out: + + + + SettingsMainOptionsWidget + + Form + Formular + + + TextLabel + TextEtikett + + + CheckBox + Checkbox + + + Reset to default + Auf Voreinstellungen zurücksetzen + + + Discard changes + Änderungen verwerfen + + + SAVE + SICHERN + + + + SettingsMultisendDialog + + Form + Formular + + + Transaction Details + Transaktionsdetails + + + TextLabel + TextEtikett + + + CANCEL + Abbrechen + + + SAVE + SICHERN + + + + SettingsMultisendWidget + + Form + Formular + + + TextLabel + TextEtikett + + + No active Master Node yet + Keine aktiven Masternodes bis jetzt + + + CheckBox + Checkbox + + + Active + Aktiv + + + CLEAR ALL + Alles löschen + + + MultiSend activated + MultiSend aktiviert + + + MultiSend deactivated + MultiSend deaktiviert + + + + SettingsSignMessageWidgets + + Form + Formular + + + TextLabel + TextEtikett + + + PushButton + Druckknopf + + + Clear + Clear + + + Enter a PIVX address or contact label + PIVX Adresse oder Kontaktbezeichnung einfügen + + + Add address + Adresse hinzufügen + + + Message + Nachricht + + + Write a message + Nachricht schreiben + + + Signature + Signatur + + + CLEAR ALL + Alles löschen + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Sie können Nachrichten mit Ihren Adressen signieren, um zu beweisen, dass Sie diese besitzen. Seien Sie vorsichtig nichts fragwürdiges zu unterschreiben, da Phishing-Angriffe versuchen können, Sie dazu zu bringen, Ihre Identität zu überschreiben. Unterschreiben Sie nur ganz detaillierte Aussagen, denen Sie zustimmen. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Geben Sie die signierte Adresse, die Nachricht (stellen Sie sicher, dass Zeilenumbrüche, Leerzeichen, Tabs usw. genau kopieren) und Signatur unten ein, um die Nachricht zu überprüfen. Seien Sie vorsichtig, nicht mehr in die Signatur hinein zu interpretieren, als das was in der signierten Nachricht selbst angegeben ist, um zu vermeiden, von einem Mann-in-der-Mitte Angriff getroffen zu werden. + + + The entered address is invalid. + Die eingegebene Adresse ist falsch + + + Please check the address and try again. + Bitte die Adresse prüfen und erneut eingeben + + + The entered address does not refer to a key. + Die eingegebene Adresse passt zu keinem Schlüssel + + + Wallet unlock was cancelled. + Entsperrung der Wallet wurde abgebrochen. + + + Private key for the entered address is not available. + Kein privater Schlüssel für die eingegebene Adresse verfügbar + + + Message signing failed. + Signierung der Nachricht fehlgeschlagen. + + + Message signed. + Nachricht signiert. + + + The signature could not be decoded. + Die Signatur konnte nicht dekodiert werden. + + + Please check the signature and try again. + Bitte überprüfen Sie die Signatur und versuchen Sie es erneut. + + + The signature did not match the message digest. + Die Signatur stimmt nicht mit der Nachricht überein. + + + Message verification failed. + Nachrichtenüberprüfung fehlgeschlagen. + + + Message verified. + Nachricht überprüft. + + + No addresses available, you can go to the receive screen and add some there! + Keine Adressen verfügbar, Sie können in das Empfangsmenu gehen und neue hinzufügen! + + + + SettingsWalletOptionsWidget + + Form + Formular + + + TextLabel + TextEtikett + + + CheckBox + Checkbox + + + Reset to default + Auf Voreinstellungen zurücksetzen + + + Discard changes + Änderungen verwerfen + + + PushButton + Druckknopf + + + Wallet + Wallet + + + Stake split threshold: + Staff Split-Schwelle: + + + Network + Netzwerk + + + Allow incoming connections + Eingehende Verbindungen erlauben + + + SAVE + SICHERN + + + + SettingsWalletRepairWidget + + Form + Formular + + + TextLabel + TextEtikett + + + PushButton + Druckknopf + + + Attempt to recover private keys from a corrupt wallet.dat. + Versuche, private Schlüssel aus einer beschädigten wallet.dat wiederherzustellen. + + + Recover transactions from blockchain (drop meta-data). + Wiederherstellung von Transaktionen aus der Blockchain (verwerfe Meta-Daten) + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Löscht alle lokalen Blockchain-Ordner damit das Wallet sich von Grund auf synchronisiert. + + + Salvage wallet + Wallet Rettung + + + Recover transactions 1 + Wiederherstellung von Transaktionen 1 + + + Recover transactions 2 + Wiederherstellung von Transaktionen 2 + + + Upgrade wallet format + Upgrade Wallet Format + + + Rebuild index + Index neu aufbauen + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Dieser Vorgang wird Ihren lokalen Blockchain-Ordner löschen und das Wallet wird von Grund auf neu Synchronisieren.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Dieser Vorgang wird einige Zeit in Anspruch nehmen und eine menge Daten herunterladen.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Deine Transaktionen und Guthaben werden wieder sichtbar sein nachdem der Download-Prozess abgeschlossen ist.<br /><br /> + + + Do you want to continue?.<br /> + Möchten Sie fortfahren?<br /> + + + Confirm resync Blockchain + Synchronisation der Blockchain bestätigen + + + + SettingsWidget + + Form + Formular + + + TextLabel + TextEtikett + + + Wallet + Wallet + + + Options + Optionen + + + Display + Display + + + Information + Hinweis + + + Console + Konsole + + + Settings + Einstellungen + + + Confirm options reset + Zurücksetzen der Optionen bestätigen + + + Client restart required to activate changes. + Client Neustart erforderlich, um Änderungen zu aktivieren. + + + Client will be shutdown, do you want to proceed? + Der Client wird heruntergefahren, wollen Sie fortfahren? + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core wird beendet... + + + Do not shut down the computer until this window disappears. + Fahren Sie den Computer nicht herunter, bevor dieses Fenster verschwindet. + + + + SnackBar + + Form + Formular + + + + Splash + + Form + Formular + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Version %1 + + + The Bitcoin Core developers + Die Bitcoin Core Entwickler + + + The Dash Core developers + Die Dash Core Entwickler + + + The PIVX Core developers + Die PIVX Core Entwickler + + + [testnet] + [Testnetzwerk] + + + + TooltipMenu + + Form + Formular + + + Copy + Kopieren + + + Delete + Löschen + + + + TopBar + + Form + Formular + + + Error generating address + Fehler beim Erstellen der Adresse + + + %1 and %2 + %1 und %2 + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open until %1 + Offen bis %1 + + + conflicted + in Konflikt stehend + + + %1/offline + %1/offline + + + %1/unconfirmed + %1/unbestätigt + + + %1 confirmations + %1 Bestätigungen + + + %1/offline (verified via SwiftX) + %1/offline (verifiziert via Swift Transaktion) + + + %1/confirmed (verified via SwiftX) + %1/bestätigt (verifiziert via Swift Transaktion) + + + %1 confirmations (verified via SwiftX) + %1 Bestätigungen (verifiziert via Swift Transaktion) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/offline (Swift Transaktion wird verifiziert - %2 aus %3 Signaturen) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/bestätigt (Swift Transaktion wird verifiziert - %2 von %3 Signaturen) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 Bestätigungen (Swift Transaktion wird verifiziert - %2 von %3 Signaturen) + + + %1/offline (SwiftX verification failed) + %1/offline (Swift Transaktion konnte nicht verifiziert werden) + + + %1/confirmed (SwiftX verification failed) + %1/bestätigt (Swift Transaktion konnte nicht verifiziert werden) + + + Status + Status + + + , has not been successfully broadcast yet + , wurde noch nicht erfolgreich übertragen + + + Date + Datum + + + Source + Quelle + + + Generated + Erzeugt + + + From + Von + + + unknown + unbekannt + + + To + An + + + own address + eigene Adresse + + + watch-only + nur beobachtet + + + label + Bezeichnung + + + Credit + Gutschrift + + + not accepted + nicht angenommen + + + Debit + Belastung + + + Total debit + Gesamtbelastung + + + Total credit + Gesamtgutschrift + + + Transaction fee + Transaktionsgebühr + + + Net amount + Nettobetrag + + + Message + Nachricht + + + Comment + Kommentar + + + Transaction ID + Transaktions-ID + + + Output index + Output Index + + + Merchant + Händler + + + Debug information + Debuginformationen + + + Transaction + Transaktion + + + Inputs + Eingänge + + + Amount + Betrag + + + true + wahr + + + false + falsch + + + + TransactionTableModel + + Date + Datum + + + Type + Art + + + Address + Adresse + + + Open until %1 + Offen bis %1 + + + Offline + Offline + + + Unconfirmed + Unbestätigt + + + Confirming (%1 of %2 recommended confirmations) + Wird bestätigt (%1 von %2 empfohlenen Bestätigungen) + + + Confirmed (%1 confirmations) + Bestätigt (%1 Bestätigungen) + + + Conflicted + Steht in Konflikt + + + Immature (%1 confirmations, will be available after %2) + Unreif (%1 Bestätigungen, wird verfügbar sein nach %2) + + + This block was not received by any other nodes and will probably not be accepted! + Dieser Block wurde von keinem anderen Knoten empfangen und wird wahrscheinlich nicht angenommen werden! + + + Received with + Empfangen über + + + Masternode Reward + Masternode Vergütung + + + Received from + Empfangen von + + + Received via Obfuscation + über/durch Verschleierung empfangen + + + PIV Stake + PIV Stake + + + zPIV Stake + zPIV Stake + + + Obfuscation Denominate + Stückelung der Verschleierung + + + Obfuscation Collateral Payment + Sicherheitspfandzahlung für Verschleierung + + + Obfuscation Make Collateral Inputs + Verschleierung Erzeugung des Sicherheitspfand + + + Obfuscation Create Denominations + Verschleierung Erzeugung der Stückelung + + + Converted PIV to zPIV + Umgewandeltes PIV zu zPIV + + + Spent zPIV + Ausgegebene zPIV + + + Received PIV from zPIV + Empfangene PIV von zPIV + + + Minted Change as zPIV from zPIV Spend + Geprägtes zPIV Wechselgeld aus zPIV Ãœberweisung + + + Converted zPIV to PIV + Umgewandeltes zPIV zu PIV + + + Sent to + Ãœberwiesen an + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Verwaister Block - Generiert, aber nicht akzeptiert. Dies wirkt sich nicht auf Ihre Bestände aus. + + + Payment to yourself + Eigenüberweisung + + + Mined + Erarbeitet + + + Obfuscated + Verschleiert + + + watch-only + nur beobachtet + + + (n/a) + (k.A.) + + + Transaction status. Hover over this field to show number of confirmations. + Transaktionsstatus, fahren Sie mit der Maus über dieses Feld, um die Anzahl der Bestätigungen zu sehen. + + + Date and time that the transaction was received. + Datum und Uhrzeit zu der die Transaktion empfangen wurde. + + + Type of transaction. + Art der Transaktion. + + + Whether or not a watch-only address is involved in this transaction. + Zeigt ob eine nur beobachtete Adresse in dieser Transaktion beteiligt ist. + + + Destination address of transaction. + Zieladresse der Transaktion + + + Amount removed from or added to balance. + Der Betrag, der dem Kontostand abgezogen oder hinzugefügt wurde. + + + + TxDetailDialog + + Form + Formular + + + Transaction Details + Transaktionsdetails + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + Fee: + Gebühr: + + + Status: + Status: + + + TextLabel + TextEtikett + + + CANCEL + Abbrechen + + + OK + OK + + + SEND + SENDEN + + + Unknown + Unbekannt + + + + TxRow + + Form + Formular + + + + WalletModel + + Send Coins + PIVs überweisen + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + Swift Transaktionen unterstützen das senden solch hoher Beträge noch nicht. Transaktionen sind momentan auf %1 PIV begrenzt. + + + + WalletPasswordDialog + + Dialog + Dialog + + + TextLabel + TextEtikett + + + PushButton + Druckknopf + + + CANCEL + Abbrechen + + + OK + OK + + + + WelcomeContentWidget + + Dialog + Dialog + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + Language + Sprache + + + Welcome + Willkommen + + + Privacy + Privatsphäre + + + Masternodes + Masternodes + + + default + standard + + + + ZPivControlDialog + + Select zPIV to Spend + Wählen Sie die zPIV aus, die Sie ausgeben möchten + + + Coin Control + Coinverwaltung + + + PushButton + Druckknopf + + + zPiv + zPIV + + + Quantity: + Anzahl: + + + Is Spendable + ist aufwendbar + + + 0 + 0 + + + Select/Deselect All + Alle Aus-/Abwählen + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = behalte Tx-Meta-Daten z.B. Betrag, Besitzer und Zahlungsanforderungsinformationen, 2 = verwerfe Tx-Meta-Daten) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Erlaubt JSON-RPC Verbindungen von der angegebenen Quelle. Valide für <ip> ist eine einzelne IP (z.B. 1.2.3.4), ein Netzwerk/Netzwerkmaske (z.B. 1.2.3.4/255.255.255.0) oder ein Netzwerk/CIDR (z.B. 1.2.3.4/24). Diese Option kann mehrfach angegeben werden + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Binde an die angegebene Adresse und höre immer auf ihr. Benutze [host]:port Notation für IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Binde an die angegebene Adresse und setze Verbindungen zu ihr auf die Whitelist. Benutze [host]:port Notation für IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Binde an die angegebene Adresse und höre auf JSON-RPC verbindungen. Benutze [host]:port Notation für IPv6. Diese Option kann mehrere Male aufgerufen werden (Standard: Binde an alle Schnittstellen) + + + Calculated accumulator checkpoint is not what is recorded by block index + Der berechnete Akkumulator-Checkpoint stimmt nicht mit dem vom Blockindex aufgezeichneten überein + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Kann keine Sperre für das Datenverzeichnis %s erhalten. PIVX Core läuft wahrscheinlich bereits. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Ändere das automatische, finale Budget Stimmverhalten. Modus=auto: Stimme nur für exakt finale Budgets, welche meinem generierten Budget entsprechen. (string, Standard:auto) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Begrenze freie Transaktionen Permanent auf <n>*1000 Bytes pro Minute (Standard:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Erstelle neue Dateien mit Systemstandardberechtigungen anstelle von umask 077 (nur wirksam mit deaktivierter Wallet-Funktionalität) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Lösche alle Wallet-Transaktionen und stelle nur diese Teile der Blockchain beim Start durch -neuscan wieder her + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Lösche alle Zerocoin Ãœberweisungen und Prägungen die in der Blockchain-Datenbank gespeichert wurden und reindiziere diese (0-1, Standard: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Veröffentlicht unter der MIT-Software-Lizenz, siehe die beigelegte Datei COPYING oder <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Aktiviere nach jeder zPIV-Prägung ausgelöste automatische Wallet-Backups (0-1, Standard: %u) + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Aktiviere oder deaktiviere Staking-Funktionalität für PIV Eingänge (0-1, default: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Aktiviere oder deaktiviere Staking-Funktionalität für zPIV Eingänge (0-1, default: %u) + + + Enable spork administration functionality with the appropriate private key. + Aktiviere die Funktionalität der Spork-Administration mit dem entsprechenden privaten Schlüssel. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Gebe den Regressions-Testmodus ein, der eine spezielle Kette verwendet, in der Blöcke sofort gelöst werden können. + + + Error: Listening for incoming connections failed (listen returned error %s) + Fehler: Ãœberwachung von eingehenden Verbindungen fehlgeschlagen (listen return error %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Fehler: Die Transaktion ist größer als die maximal zulässige Transaktionsgröße! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Fehler: Nicht unterstütztes Argument -socks gefunden. Festlegen der SOCKS Version ist nicht mehr möglich, es werden nur noch SOCKS5-Proxys unterstützt. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Befehl ausführen, wenn eine relevante Warnung empfangen wird oder wir einen wirklich langen Fork sehen (%s in cmd wird durch Benachrichtigungen ersetzt) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Befehl ausführen, wenn eine Wallet-Transaktion geändert wird (%s in cmd wird durch TxID ersetzt) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Befehl ausführen, wenn sich der beste Block ändert (%s in cmd wird durch Blockhash ersetzt) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Gebühren (in PIV/kB) kleiner als diese gelten für die Weiterleitung als Null-Gebühr (default: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Gebühren (in PIV/kB) kleiner als diese werden als Null-Gebühr für die Transaktionserstellung betrachtet (default: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Flusht die Datenbankaktivität vom Speicherpool auf das Festplattenprotokoll alle <n> Megabytes (default: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Wenn paytxfee nicht gesetzt ist, gebe genügend Gebühr an, sodass die Transaktionsbestätigungen im Durchschnitt innerhalb von n Blöcken beginnen (default: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + In diesem Modus -genproclimit steuern, wie viele Blöcke sofort erzeugt werden. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Unzureichend oder unzureichend bestätigtes Guthaben, warten Sie ein paar Minuten und probieren es dann nochmal. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Ungültiger Betrag für -maxtxfee=<amount>: '%s' (muss mindestens die minrelay Gebühr von %s sein, um Transaktionsstau zu vermeiden) + + + Keep the specified amount available for spending at all times (default: 0) + Behalte jeder Zeit den angegebenen Betrag für die Ausgaben (default: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Priorität der Protokolltransaktion und Gebühr pro kB wenn Blöcke geschürft werden (default: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Pflege einen vollständigen Transaktionsindex, der von getrawtransaction rpc call verwendet wird. (default: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maximale Größe der Daten in Datenträgertransaktionen, die wir weiterleiten und abbilden (default: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maximale Gesamtgebühren für die Verwendung in einer einzigen Wallet-Transaktion. Zu niedrige Einstellung kann große Transaktionen abbrechen (default: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Sekundenanzahl, um fehlerhafte Peers von der Wiederverbindung abzuhalten (default: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + Verschleierung benötigt exakt gestückelte Mengen um Gelder zu versenden, ggf. müssen Sie einfach mehr Münzen anonymisieren. + + + Output debugging information (default: %u, supplying <category> is optional) + Debug-Informationen ausgeben (Standard: %u, die Bereitstellung von <category> ist optional) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Abfrage von Gegenstellen-Adressen per DNS-Lookup, falls wenige Adressen verfügbar sind (Standard: 1, ausser -connect ist aktiviert) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Randomisiere Zugangsdaten für jede einzelne Proxy-Verbindung. Dies ermöglicht die Stream-Isolation im Tor Netzwerk (Standard: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Benötige hohe Priorität um kostenlose Transaktionen oder Transaktionen mit niedriger Gebühr weiterzuleiten (Standard: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + Sende die Debug-Info an die Konsole, anstatt in die debug.log-Datei (Standard: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Maximale Größe von Transaktionen mit hoher Priorität/niedrigen Gebühren festlegen, in Bytes (Standard: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Anzahl der Threads festlegen, die für die Skript Verifikation verwendet werden (%u to %d, 0 = auto, <0 = diese Anzahl an Kernen ungenutzt lassen, Standard: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Wenn aktiviert, kann die Anzahl der CPU-Threads für die Coin-Erzeugung festgelegt werden (-1 = alle Kerne, Standard: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Zeige N Bestätigungen für eine erfolgreich gesperrte Transaktion (0-9999, Standard: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Unterstütze Filtern von Blöcken und Transaktionen mittels Bloom-Filtern (Standard: %u) + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + Dieses Produkt beinhaltet Software, die vom OpenSSL Projekt für die Nutzung im OpenSSL Toolkit <https://www.openssl.org/> entwickelt wurde. Desweiteren kryptografische Software , die von Eric Young, und UPnP Software, die von Thomas Bernard, geschrieben wurde. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Fehler: Port %s ist bereits belegt! Läuft bereits eine andere PIVX Core Wallet ? + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Nicht genügend gestückeltes, verschleiertes Guthaben für diese Transaktion gefunden. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Nicht genügend verschleiertes, nicht gestückeltes Guthaben für diese Transaktion gefunden, die nicht gleich 10000 PIV entsprechen. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Nicht genügend Guthaben für diese Transaktion gefunden, die nicht gleich 10000 PIV entsprechen. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Verwende seperate SOCKS5-Proxys um Gegenstellen über Tor-Hidden-Services zu erreichen (Standard: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Warnung: -maxtxfee ist sehr hoch eingestellt! Gebühren in dieser Höhe können in einer einzigen Transaktion abgebucht werden. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Warnung: -paytxfee ist sehr hoch eingestellt! Diese Transaktionsgebühr werden Ihnen abgebucht, falls Sie die Transaktion überweisen. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Warnung: Bitte stellen Sie sicher, das vom Computer verwendete Zeit und Datumangaben korrekt sind! Wenn ihr System falsche Zeitangaben nutzt, wird PIVX Core nicht korrekt funktionieren. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Warnung: Unstimmigkeiten im Netzwerk! Einige Miner scheinen Probleme zu haben. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Warnung: Es scheint einige Unstimmigkeiten mit unseren Gegenstellen zu geben. Eventuell müssen Sie oder andere Nodes Upgrades durchführen. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Warnung: Fehler beim Lesen der wallet.dat! Alle Schlüssel wurden korrekt gelesen, aber Transaktionsdaten oder Adressbuch-Einträge könnten fehlen oder inkorrekt sein. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Warnung: wallet.dat fehlerhaft, Daten wurden gerettet! Die originale wallet.dat wurde als wallet.{Zeitstempel}.bak in %s gesichert; falls ihr Kontostand oder ihre Transaktionen fehlerhaft sind, sollten Sie ein Backup zur Wiederherstellung nutzen. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Setze Verbindungen aus der folgenden Subnetzmaske oder IP-Adresse. Dies kann mehrere male spezifiziert werden. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Whitelist-Peers können nicht verboten werden und ihre Transaktionen werden immer weitergeleitet, auch wenn sie bereits im Mempool sind, nützlich z. für ein Gateway + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + Sie müssen einen privaten Masternode-Schlüssel in der Konfiguration festlegen. Bitte nutzen Sie die Dokumentation zwecks Hilfe. + + + (51472 could be used only on mainnet) + (51472 kann nur im Mainnet verwendet werden) + + + (default: %s) + (default: %s) + + + (default: 1) + (default: 1) + + + (must be 51472 for mainnet) + (muss im Mainnet 51472 sein) + + + Accept command line and JSON-RPC commands + Akzeptiere Kommandozeilen- und JSON-RPC- Eingaben + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Akzeptiere Verbindungen von aussen (Standard: 1 , falls -proxy oder -connect nicht genutzt wird) + + + Accept public REST requests (default: %u) + Akzeptiere öffentliche REST Anfragen (Standard: %u) + + + Add a node to connect to and attempt to keep the connection open + Füge ein Node zum verbinden hinzu und versuche die Verbindung offen zu halten + + + Allow DNS lookups for -addnode, -seednode and -connect + Erlaube DNS lookups für -addnode, -seednode und -connect + + + Always query for peer addresses via DNS lookup (default: %u) + Gegenstellen-Adressen immer per DNS lookup anfragen (Standard: %u) + + + Attempt to recover private keys from a corrupt wallet.dat + Versuche private Schlüssel aus fehlerhafter wallet.dat wiederherzustellen. + + + Automatically create Tor hidden service (default: %d) + Tor-Hidden-Service automatisch erzeugen (Standard: %d) + + + Block creation options: + Block-Erzeugungs-Optionen: + + + Calculating missing accumulators... + Fehlende Akkus berechnen ... + + + Cannot downgrade wallet + Wallet downgrade nicht möglich + + + Cannot resolve -bind address: '%s' + Kann -bind Adresse nicht auflösen: '%s' + + + Cannot resolve -externalip address: '%s' + Kann -externalip Adresse nicht auflösen: '%s' + + + Cannot resolve -whitebind address: '%s' + Kann -whitebind Adresse nicht auflösen: '%s' + + + Connect only to the specified node(s) + Nur mit den aufgeführten Node(s) verbinden + + + Connect through SOCKS5 proxy + Verbindung per SOCKS5 proxy + + + Connect to a node to retrieve peer addresses, and disconnect + Verbinde zu einer Node um Gegenstellen-Adressen abzurufen und trenne die Verbindung. + + + Connection options: + Verbindungsoptionen: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Core Developers + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i The Dash Core Developers + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i The PIVX Core Developers + + + Corrupted block database detected + Beschädigte Block-Datenbank gefunden + + + Could not parse masternode.conf + Kann masternode.conf nicht parsen + + + Debugging/Testing options: + Debugging- / Testoptionen + + + Delete blockchain folders and resync from scratch + Löschen Sie Blockchain-Ordner und resync von Grund auf neu + + + Disable OS notifications for incoming transactions (default: %u) + Benachrichtigungen über eingehende Transaktionen im Betriebsystem ausschalten (Standard: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Deaktivieren Sie den Safemodus, überschreiben Sie ein echtes Safe-Mode-Ereignis (Standard: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Eigene IP-Adresse erkennen (Standard: 1 beim Hören und keine -Ausnahme) + + + Do not load the wallet and disable wallet RPC calls + Wallet nicht laden und Wallet Fernaufruf/RPC unterbinden + + + Do you want to rebuild the block database now? + Möchten Sie die Blockdatenbank neu aufbauen? + + + Done loading + Geladen + + + Enable automatic Zerocoin minting (0-1, default: %u) + Automatische Zerocoin-Prägung ermöglichen (0-1, Standard: %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + Aktivieren Sie die Veröffentlichung der Hash-Transaktion (gesperrt über SwiftX) in <address> + + + Enable publish raw transaction (locked via SwiftX) in <address> + Aktivieren Sie die Publish-Raw-Transaktion (gesperrt über SwiftX) in<address> + + + Enable the client to act as a masternode (0-1, default: %u) + Ermögliche dem Client als Masternode zu fungieren (0-1, Standard: %u) + + + Error initializing block database + Fehler bei der Initialisierung der Block Datenbank + + + Error initializing wallet database environment %s! + Fehler beim Initialisieren der Wallet Datenbank Umgebung %s! + + + Error loading block database + Fehler beim Laden der Block-Datenbank + + + Error loading wallet.dat + Fehler beim Laden von wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Fehler beim Laden von wallet.dat : Wallet beschädigt + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Fehler beim Laden der wallet.dat: Neuere PIVX Core Version benötigt + + + Error opening block database + Fehler beim Öffnen der Block-Datenbank + + + Error reading from database, shutting down. + Fehler beim Lesen der Datenbank, wird heruntergefahren. + + + Error writing zerocoinDB to disk + Fehler beim Schreiben von zerocoinDB auf die Festplatte + + + Error + Fehler + + + Error: A fatal internal error occured, see debug.log for details + Fehler: Ein schwerwiegender Fehler ist aufgetreten, schauen Sie für detailiertere Infos ins debug.log + + + Error: Disk space is low! + Fehler: Festplattenspeicher ist knapp. + + + Error: Unsupported argument -tor found, use -onion. + Fehler: Argument -tor nicht unterstützt, nutzen Sie -onion. + + + Error: Wallet locked, unable to create transaction! + Fehler: Wallet verschlossen, Transaktion konnte nicht erstellt werden! + + + Failed to calculate accumulator checkpoint + Fehler beim Berechnen des Akku-Checkpoints + + + Failed to listen on any port. Use -listen=0 if you want this. + Abhören jeglicher Ports fehlgeschlagen. Nutzen Sie -listen=0 falls dies erwünscht ist. + + + Failed to parse host:port string + Fehler beim Analysieren von host: port string + + + Failed to read block + Block konnte nicht gelesen werden + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Gebühr (in PIV/kB) die den Transaktionen, die Sie überweisen, hinzugefügt wird (Standard: %s) + + + Force safe mode (default: %u) + Erzwinge Safe-Mode (Standard: %u) + + + Generate coins (default: %u) + Generiere Coins (default: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Zu überprüfende Blöcke beim Start (default: %u, 0 = all) + + + If <category> is not supplied, output all debugging information. + Wenn <category> nicht angegeben wurde, gebe alle Debuginformationen aus. + + + Importing... + Importiere... + + + Imports blocks from external blk000??.dat file + Importiere Blöcke aus externer Datei blk000??.dat + + + Include IP addresses in debug output (default: %u) + Ip-Adresse in Debug-Ausgabe einbeziehen (Standard: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + Falscher oder kein Genesis-Block gefunden. Falsches Datenverzeichnis für das Netzwerk? + + + Information + Hinweis + + + Initialization sanity check failed. PIVX Core is shutting down. + Initialisierung Sanity-Check fehlgeschlagen. PIVX Core schaltet ab. + + + Insufficient funds + Unzureichende Mittel + + + Insufficient funds. + Unzureichende Mittel. + + + Invalid -onion address or hostname: '%s' + Ungültige -onion Adresse oder Hostname: '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + Ungültiger Betrag für -maxtxfee=<amount>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Ungültiger Betrag für -minrelaytxfee=<amount>: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Ungültiger Betrag für -mintxfee=<amount>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Ungültiger Betrag für -paytxfee=<amount>: '%s' (muss mindestens %s sein) + + + Invalid amount for -paytxfee=<amount>: '%s' + Ungültiger Betrag für -paytxfee=<amount>: '%s' + + + Invalid amount for -reservebalance=<amount> + Ungültiger Betrag für -reservebalance=<amount> + + + Invalid amount + Ungültiger Betrag + + + Invalid masternodeprivkey. Please see documenation. + Ungültiger privater Masternode-Schlüssel. Bitte sehen Sie in der Dokumentation nach. + + + Invalid netmask specified in -whitelist: '%s' + Fehlerhafte Netzmaske in -whitelist festgelegt: '%s' + + + Invalid port detected in masternode.conf + Ungültiger Port in masternode.conf entdeckt + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Prozent automatisch geprägter Zerocoins (1-100, Standard: %u) + + + Reindex the PIV and zPIV money supply statistics + Die Geldmengenstatistik PIV und zPIV neu indizieren + + + Reindexing zerocoin database... + Reindiziere Zerocoin Datenbank... + + + Reindexing zerocoin failed + Zerocoin Reindizierung fehlgeschlagen + + + Selected coins value is less than payment target + Ausgewählter Coinwert ist geringer als der Zielbetrag + + + SwiftX options: + SwiftX Optionen: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + Dies ist ein Pre-Release-Testbuild - Nutzung auf eigene Gefahr - Nutzen Sie diese Version nicht für Staking oder Handelsanwendungen. + + + mints deleted + + Prägungen gelöscht + + + + mints updated, + Prägungen geupdatet, + + + unconfirmed transactions removed + + unbestätigte Transaktionen entfernt + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Deaktivieren Sie alle PIVX-spezifischen Funktionen (Masternodes, Zerocoin, SwiftX, Budgetierung) (0-1, Standard: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Swifttx aktivieren, Bestätigungen für gesperrte Transaktionen anzeigen (bool, default: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Fehler: Die Transaktion wurde abgelehnt! Dies könnte passieren, wenn einige Coins in deiner Wallet schon ausgegeben wurden, als wenn du eine Kopie von der wallet.dat benutzt hättest. Coins wurden in der Kopie verbracht, aber hier nicht als verbracht markiert. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + Fehler: Diese Transaktion erfordert eine Transaktionsgebühr von mindestens %s wegen ihrer Menge, Komplexität oder Verwendung von kürzlich erhaltenen Mitteln! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + Fehler: Nicht unterstütztes Argument -checklevel entdeckt. Checklevel muss Level 4 sein. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + Befehl ausführen, wenn sich der beste Block ändert und seine Größe überschritten ist (%s in cmd wird durch Blockhash ersetzt, %d durch die Blockgröße) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Fehler beim Finden der Münzen unter den gehaltenen Münzen mit weniger als maxNaval of Spends + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + In seltenen Fällen überschreiten Ausgaben mit 7 Münzen die maximal zulässige Transaktionsgröße. Bitte versuchen Sie erneut, mit 6 oder weniger Münzen auszugeben + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Bervorzugte Stückelung für automatisch geprägte Zerocoins (1/5/10/50/100/500/1000/5000), 0 falls keine bestimmte Stückelung präferiert wird. Standard: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Benutzerdefinierten Sicherungspfad festlegen, in den Kopien von allen automatischen zPIV-Sicherungen abgelegt werden. Wenn ein Verzeichnis ausgewählt ist, wird jede Sicherung als Datei mit Zeitstempel erstellt. Wenn eine Datei ausgewählt ist, wird diese Datei bei jeder Sicherung überschrieben. Wenn der Sicherungspfad auch festgelegt ist, werden 4 Sicherungen erstellt. + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Benutzerdefinierten Sicherungspfad festlegen, in den Kopien von allen Wallet-Sicherungen abgelegt werden. Wenn ein Verzeichnis ausgewählt ist, wird jede Sicherung als Datei mit Zeitstempel erstellt. Wenn eine Datei ausgewählt ist, wird diese Datei bei jeder Sicherung überschrieben. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftTX benötigt mindestens 6 confirmations, Sie sollten ggf. einige Minuten abwarten und dann erneut probieren. + + + <category> can be: + <category>kann folgendes sein: + + + Attempt to force blockchain corruption recovery + Versuche die Wiederherstellung der fehlerhaften Blockchain zu forcieren + + + CoinSpend: Accumulator witness does not verify + CoinSpend: Akkumulator-Zeuge verifiziert nicht + + + Display the stake modifier calculations in the debug.log file. + Zeigen Sie die Berechnungen des Pfahlmodifikators in der Datei debug.log an. + + + Display verbose coin stake messages in the debug.log file. + Zeigen Sie in der Datei "debug.log" ausführliche Meldungen zum Pfahlstatus an. + + + Enable publish hash block in <address> + Aktivieren Sie den Veröffentlichungs-Hash-Block in<address> + + + Enable publish hash transaction in <address> + Aktivieren Sie die Veröffentlichung der Hash-Transaktion in<address> + + + Enable publish raw block in <address> + Aktivieren Sie den Veröffentlichungsrohblock in<address> + + + Enable publish raw transaction in <address> + Aktivieren Sie die Veröffentlichung der Rohtransaktion in<address> + + + Enable staking functionality (0-1, default: %u) + Aktiviere Staking-Funktionalität (0-1, default: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Fehler: Ein schwerwiegender Fehler ist aufgetreten, schauen Sie für detailiertere Infos ins debug.log + + + Error: No valid utxo! + Error: No valid utxo! + + + Failed to create mint + Fehler beim Erstellen von Minze + + + Failed to find Zerocoins in wallet.dat + Zerocoins in wallet.dat nicht gefunden + + + Failed to select a zerocoin + Fehler beim Auswählen einer Nullstelle + + + Failed to wipe zerocoinDB + Zerocoin Datenbank konnte nicht gelöscht werden + + + Failed to write coin serial number into wallet + Fehler beim Schreiben der Seriennummer der Münze in die Brieftasche + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Halte höchstens <n> unverbindbare Transaktionen im Speicher (Standard: %u) + + + Limit size of signature cache to <n> entries (default: %u) + Begrenze die Größe des Signatur Cache auf <n> Einträge (Standard: %u) + + + Line: %d + Zeile: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Ãœberwache Port <port> auf JSON-RPC Verbindungen (Standard: %u oder Testnetzwerk: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Ãœberwache Port <port> auf Verbindungen (Standard: %u oder Testnetzwerk: %u) + + + Loading addresses... + Lade Adressen... + + + Loading block index... + Lade Block-Index... + + + Loading budget cache... + Lade Budget Puffer... + + + Loading masternode cache... + Lade Masternode Cache... + + + Loading masternode payment cache... + Lade Masternode-Zahlungs-Puffer... + + + Loading sporks... + Lade Sporks... + + + Loading wallet... (%3.2f %%) + Lade Wallet... (%3.2f %%) + + + Loading wallet... + Lade Wallet... + + + Location of the auth cookie (default: data dir) + Location of the auth cookie (default: data dir) + + + Lock masternodes from masternode configuration file (default: %u) + Masternodes aus der masternode-Konfigurationsdatei sperren (Standard: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Lookup(): Invalid -proxy address or hostname: '%s' + + + Maintain at most <n> connections to peers (default: %u) + Pflegen Sie höchstens<n> Verbindungen zu Peers (Standard: %u) + + + Masternode options: + Masternode-Optionen: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Maximaler Empfangspuffer pro Verbindung <n>*1000 bytes (Standard: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Maximaler Sendepuffer pro Verbindung <n>*1000 bytes (Standard: %u) + + + Mint did not make it into blockchain + Mint schaffte es nicht in Blockchain + + + Need to specify a port with -whitebind: '%s' + Sie müssen einen Port mittels -whitebind festlegen: '%s' + + + Node relay options: + Optionen für Knotenrelais: + + + Not enough file descriptors available. + Nicht genügend Datei-Deskriptoren verfügbar. + + + Number of automatic wallet backups (default: 10) + Anzahl automatischer Wallet-Backups (Standard: 10) + + + Number of custom location backups to retain (default: %d) + Anzahl an benutzerdefinierter Backups die aufbewahrt werden (Standard: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Akzeptiere nur Blockchains, die mit eingebauten Prüfpunkten übereinstimmt (Standard: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Nur Verbindung zu Knoten im Netzwerk <net> (ipv4, ipv6 oder onion) + + + Options: + Optionen: + + + Password for JSON-RPC connections + Passwort für JSON-RPC Verbindungen + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid(): Invalid -proxy address or hostname: '%s' + + + Preparing for resync... + Vorbereitung für die Resynchronisierung ... + + + Prepend debug output with timestamp (default: %u) + Zeitstempel vor Debug-Ausgabe vermerken (Standard: %u) + + + Print version and exit + Version drucken und Programm beenden + + + RPC server options: + RPC Serveroptionen: + + + Randomly drop 1 of every <n> network messages + Nach dem Zufallsprinzip 1 von jedem fallen lassen<n> Netzwerknachrichten + + + Randomly fuzz 1 of every <n> network messages + Zufällig fuzz 1 von jedem<n> Netzwerknachrichten + + + Rebuild block chain index from current blk000??.dat files + Baue den Blockchain-Index mithilfe der aktuellen blk000??.dat Datei erneut auf + + + Receive and display P2P network alerts (default: %u) + Empfange P2P-Netzwerk-Warnsignale und zeige diese an (Standard: %u) + + + Reindex the accumulator database + Reinde die Akkumulator-Datenbank neu + + + Relay and mine data carrier transactions (default: %u) + Relay und meine Datenträgertransaktionen (Standard: %u) + + + Relay non-P2SH multisig (default: %u) + Relais nicht-P2SH multisig (Standard: %u) + + + Rescan the block chain for missing wallet transactions + Neuscannen der Blockchain nach fehlenden Wallet-Transaktionen + + + Rescanning... + Neuscannen... + + + ResetMintZerocoin finished: + ResetMintZerocoin abgeschlossen: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin abgeschlossen: + + + Run a thread to flush wallet periodically (default: %u) + Führen Sie einen Thread aus, um die Brieftasche regelmäßig zu leeren (Standard: %u) + + + Run in the background as a daemon and accept commands + Als Hintergrundprozess ausführen und Eingaben akzeptieren + + + Send transactions as zero-fee transactions if possible (default: %u) + Sende die Transaktion als gebührenfreie Transaktion, falls möglich (Standard: %u) + + + Session timed out. + Zeitüberschreitung + + + Set database cache size in megabytes (%d to %d, default: %d) + Größe des Datenbank-Cache in Megabytes festlegen (%d to %d, Standard: %d) + + + Set external address:port to get to this masternode (example: %s) + Port für externe Adressen festlegen, die verwendet werden um diese Masternode anzusteuern (Beispiel: %s) + + + Set key pool size to <n> (default: %u) + Setze Key-Pool Größe auf <n> (Standard: %u) + + + Set maximum block size in bytes (default: %d) + Maximale Blockgröße in Bytes festlegen (Standard: %d) + + + Set minimum block size in bytes (default: %u) + Minimale Blockgröße in Bytes festlegen (Standard: %u) + + + Set the Maximum reorg depth (default: %u) + Legen Sie die maximale Reorganisationstiefe fest (Standard: %u) + + + Set the masternode private key + Privaten Masternode-Schlüssel festlegen + + + Set the number of threads to service RPC calls (default: %d) + Anzahl der Threads festlegen, die genutzt werden um RPC Anfragen zu bearbeiten (Standard: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Setzt das DB_PRIVATE-Flag in der Wallet-Datenbankumgebung (Standard: %u) + + + Show all debugging options (usage: --help -help-debug) + Zeige alle debugging Optionen (verwende: --help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Schrumpfe debug.log Datei beim Client-Start (Standard: 1, falls -debug nicht gesetzt ist) + + + Signing timed out. + Zeitüberschreitung bei der Signierung. + + + Signing transaction failed + Signieren der Transaktion fehlgeschlagen + + + Specify configuration file (default: %s) + Konfigurationsdatei auswählen (Standard: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Verbindungs-Timeout in Millisekunden festlegen (Minimum: 1, Standard: %d) + + + Specify data directory + Datenverzeichnis festlegen + + + Specify masternode configuration file (default: %s) + Bezeichne Masternode-Konfigurationsdatei (default: %s) + + + Specify pid file (default: %s) + Bezeichne pid-Datei (default: %s) + + + Specify wallet file (within data directory) + Bezeichne Wallet-Datei (im Datenverzeichnis) + + + Specify your own public address + Bezeichnen Sie ihre eigene öffentliche Adresse + + + Spend Valid + Spend Valid + + + Spend unconfirmed change when sending transactions (default: %u) + Unbestätigte Änderung beim Senden von Transaktionen ausgeben (Standard: %u) + + + Staking options: + Staking-Optionen: + + + Stop running after importing blocks from disk (default: %u) + Stoppt den Lauf nach dem Importieren von Blöcken von der Festplatte (default: %u) + + + Synchronization failed + Synchronisierung fehlgeschlagen + + + Synchronization finished + Synchronisierung erfolgreich beendet + + + Synchronization pending... + Synchronisierung ausstehend... + + + Synchronizing budgets... + Synchronisiere Budgets.... + + + Synchronizing masternode winners... + Synchronisiere ausgewählte Masternodes.... + + + Synchronizing masternodes... + Synchronisiere Masternodes.... + + + Synchronizing sporks... + Synchronisiere Sporks.... + + + Syncing zPIV wallet... + Synchronisiere zPIV Wallet... + + + The coin spend has been used + Die Münzausgabe wurde verwendet + + + The transaction did not verify + Die Transaktion wurde nicht verifiziert + + + This help message + Dieser Hilfetext + + + This is experimental software. + Dies ist experimentelle Software. + + + This is intended for regression testing tools and app development. + Dies ist für Regressionstest-Tools und Anwendungsentwicklung gedacht. + + + Threshold for disconnecting misbehaving peers (default: %u) + Schwellenwert zum Trennen von sich falsch verhaltenden Gegenstellen (Standard: %u) + + + Too many spends needed + Zu viele Ausgaben benötigt + + + Tor control port password (default: empty) + Tor Kontroll-Port Passwort (Standard: ohne) + + + Tor control port to use if onion listening enabled (default: %s) + Zu verwendender Tor Kontroll-Port, falls onion Ãœberwachung aktiviert ist (Standard %s) + + + Transaction Created + Transaktion erstellt + + + Transaction Mint Started + Transaktion Mint gestartet + + + Transaction amount too small + Transaktionsbetrag zu niedrig + + + Transaction amounts must be positive + Transaktionsbeträge müssen positiv sein + + + Transaction too large for fee policy + Transaktion ist für die Gebührenrichtlinie zu groß + + + Transaction too large + Transaktion zu groß + + + Trying to spend an already spent serial #, try again. + Versuchen Sie, eine bereits ausgegebene Seriennummer auszugeben, versuchen Sie es erneut. + + + Unable to bind to %s on this computer (bind returned error %s) + Kann auf diesem Computer nicht an %s binden (zurückgegebener Fehler: %s) + + + Unable to sign spork message, wrong key? + Die Spork-Nachricht konnte nicht signiert werden. Falscher Key? + + + Unable to start HTTP server. See debug log for details. + Der HTTP-Server konnte nicht gestartet werden. Details finden Sie im Debug-Protokoll. + + + Unknown network specified in -onlynet: '%s' + Unbekannter Netztyp in -onlynet angegeben: '%s' + + + Upgrade wallet to latest format + Wallet auf das neueste Format aktualisieren + + + Use UPnP to map the listening port (default: %u) + UPnP verwenden, um eine Portweiterleitung einzurichten (Standard: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + UPnP verwenden, um eine Portweiterleitung einzurichten (Standard: 1, wenn abgehört wird) + + + Use a custom max chain reorganization depth (default: %u) + Verwenden Sie eine benutzerdefinierte Max-Reorganisation der Kette (Standard: %u) + + + Use the test network + Das Testnetzwerk verwenden + + + Username for JSON-RPC connections + Benutzername für JSON-RPC-Verbindungen + + + Value is below the smallest available denomination (= 1) of zPIV + Der Betrag ist unterhalb des kleinsten Wertes (=1) an zPIV + + + Verifying blocks... + Verifiziere Blöcke... + + + Verifying wallet... + Verifiziere Wallet... + + + Wallet %s resides outside data directory %s + Wallet %s liegt außerhalb des Datenverzeichnisses %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + Wallet musste neu geschrieben werden: Bitte PIVX Core neu starten + + + Wallet options: + Wallet-Optionen: + + + Wallet window title + Fensterüberschrift der Wallet + + + Warning + Warnung + + + Warning: This version is obsolete, upgrade required! + Warnung: Diese Version is veraltet, Aktualisierung erforderlich! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Warnung: Nicht unterstütztes Argument -benchmark wurde ignoriert, nutzen Sie -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Warnung: Nicht unterstütztes Argument -debugnet wurde ignoriert, nutze stattdessen -debug=net. + + + You don't have enough Zerocoins in your wallet + Du hast nicht genug Zerocoins in deiner Brieftasche + + + You need to rebuild the database using -reindex to change -txindex + Sie müssen die Datenbank mithilfe von -reindex neu erstellen, um -txindex zu ändern + + + Zapping all transactions from wallet... + Lösche alle Transaktionen aus der Wallet... + + + ZeroMQ notification options: + ZeroMQ Benachrichtigungsoptionen: + + + Zerocoin options: + Zerocoin Optionen: + + + on startup + beim Starten + + + wallet.dat corrupt, salvage failed + wallet.dat beschädigt, Datenrettung fehlgeschlagen + + + + send + + Form + Formular + + + Send + Schicken + + + TextLabel + TextEtikett + + + PushButton + Druckknopf + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_en.ts b/src/qt/locale/pivx_en.ts new file mode 100644 index 0000000..dc67f0e --- /dev/null +++ b/src/qt/locale/pivx_en.ts @@ -0,0 +1,9380 @@ + + + + + AddNewAddressDialog + + + Dialog + + + + + My Address + + + + + Address + Address + + + + PushButton + + + + + CANCEL + + + + + OK + + + + + AddNewContactDialog + + + Dialog + + + + + + TextLabel + + + + + CANCEL + + + + + OK + + + + + Edit Contact + + + + + Set a label for the selected address + + + + + Enter a name for the address (e.g Exchange) + + + + + SAVE + + + + + Edit label for the selected address: +%1 + + + + + AddressBookPage + + + Right-click to edit address or label + Right-click to edit address or label + + + + Create a new address + Create a new address + + + + &New + &New + + + + Copy the currently selected address to the system clipboard + Copy the currently selected address to the system clipboard + + + + &Copy + &Copy + + + + Delete the currently selected address from the list + Delete the currently selected address from the list + + + + &Delete + &Delete + + + + Export the data in the current tab to a file + Export the data in the current tab to a file + + + + &Export + &Export + + + + C&lose + C&lose + + + + Choose the address to send coins to + Choose the address to send coins to + + + + Choose the address to receive coins with + Choose the address to receive coins with + + + + C&hoose + C&hoose + + + + Sending addresses + Sending addresses + + + + Receiving addresses + Receiving addresses + + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + + + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + + + + + &Copy Address + &Copy Address + + + + Copy &Label + Copy &Label + + + + &Edit + &Edit + + + + Export Address List + Export Address List + + + + Comma separated file (*.csv) + Comma separated file (*.csv) + + + + Exporting Failed + Exporting Failed + + + + There was an error trying to save the address list to %1. Please try again. + There was an error trying to save the address list to %1. Please try again. + + + + AddressLabelRow + + + Form + Form + + + + Bob Allen + + + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + + AddressTableModel + + + Label + Label + + + + Address + Address + + + + Date + Date + + + + (no label) + (no label) + + + + AddressesWidget + + + Form + Form + + + + Send + + + + + TextLabel + + + + + No active Master Node yet + + + + + + Contact name + + + + + Enter address + + + + + OK + + + + + Contacts + + + + + You can add a new one in the options menu to the side. + + + + + No contacts yet + + + + + e.g. John Doe + + + + + Enter a PIVX address + + + + + SAVE + + + + + Invalid Contact Address + + + + + Cannot store your own address as contact + + + + + Address already stored, label: %1 + + + + + New Contact Stored + + + + + Error Storing Contact + + + + + Contact edited + + + + + Contact edit failed + + + + + Delete Contact + + + + + You are just about to remove the contact: + +%1 + +Are you sure? + + + + + Contact Deleted + + + + + Error deleting a contact + + + + + Address copied + + + + + AskPassphraseDialog + + + Passphrase Dialog + Passphrase Dialog + + + + + + + TextLabel + + + + + PushButton + + + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + + + + Encrypt wallet + Encrypt wallet + + + + + This operation needs your wallet passphrase to unlock the wallet. + This operation needs your wallet passphrase to unlock the wallet. + + + + Unlock wallet +for staking + + + + + Unlock wallet + Unlock wallet + + + + This operation needs your wallet passphrase to decrypt the wallet. + This operation needs your wallet passphrase to decrypt the wallet. + + + + Decrypt wallet + Decrypt wallet + + + + Change passphrase + Change passphrase + + + + Enter the old and new passphrase to the wallet. + Enter the old and new passphrase to the wallet. + + + + Confirm wallet encryption + Confirm wallet encryption + + + + ENCRYPT + + + + + CANCEL + + + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + + + + + Are you sure you wish to encrypt your wallet? + Are you sure you wish to encrypt your wallet? + + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + + + + + + Wallet encrypted + Wallet encrypted + + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + + + + + + + Wallet encryption failed + Wallet encryption failed + + + + OK + + + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + + + + + The supplied passphrases do not match. + The supplied passphrases do not match. + + + + + Wallet unlock failed + Wallet unlock failed + + + + + + + The passphrase entered for the wallet decryption was incorrect. + The passphrase entered for the wallet decryption was incorrect. + + + + Wallet decryption failed + Wallet decryption failed + + + + Wallet passphrase was successfully changed. + Wallet passphrase was successfully changed. + + + + + Warning: The Caps Lock key is on! + Warning: The Caps Lock key is on! + + + + BanTableModel + + + IP/Netmask + + + + + Banned Until + + + + + BlockExplorer + + + Blockchain Explorer + + + + + Back + + + + + Forward + + + + + Address / Block / Transaction + + + + + Search + + + + + TextLabel + + + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + + + + + CSRow + + + Form + Form + + + + Savings + + + + + 0,00 PIV + + + + + address + + + + + Not Staking + + + + + Own delegation + + + + + ClientModel + + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + + + + + Network Alert + Network Alert + + + + CoinControlDialog + + + Quantity: + Quantity: + + + + Bytes: + Bytes: + + + + Fee: + Fee: + + + + Coin Selection + Coin Selection + + + + Dust: + Dust: + + + + Change: + Change: + + + + Tree mode + Tree mode + + + + List mode + List mode + + + + (1 locked) + (1 locked) + + + + + Amount + Amount + + + + Transaction Details + + + + + PushButton + + + + + + + 0.00 PIV + + + + + + + 0 + + + + + + + Select all + + + + + Toggle lock state + + + + + Received with label + Received with label + + + + Received with address + Received with address + + + + After Fee: + + + + + OK + + + + + Date + Date + + + + Confirmations + Confirmations + + + + Confirmed + Confirmed + + + + Copy address + Copy address + + + + Copy label + Copy label + + + + + Copy amount + Copy amount + + + + Copy transaction ID + Copy transaction ID + + + + Lock unspent + Lock unspent + + + + Unlock unspent + Unlock unspent + + + + Copy quantity + Copy quantity + + + + Copy fee + Copy fee + + + + Copy after fee + Copy after fee + + + + Copy bytes + Copy bytes + + + + Copy priority + Copy priority + + + + Copy dust + Copy dust + + + + Copy change + Copy change + + + + + Unselect all + + + + + Please switch to "List mode" to use this function. + + + + + highest + highest + + + + higher + higher + + + + high + high + + + + medium-high + medium-high + + + + medium + medium + + + + low-medium + low-medium + + + + low + low + + + + lower + lower + + + + lowest + lowest + + + + (%1 locked) + (%1 locked) + + + + none + none + + + + yes + yes + + + + + no + no + + + + This label turns red, if the transaction size is greater than 1000 bytes. + This label turns red, if the transaction size is greater than 1000 bytes. + + + + + This means a fee of at least %1 per kB is required. + This means a fee of at least %1 per kB is required. + + + + Can vary +/- 1 byte per input. + Can vary +/- 1 byte per input. + + + + Transactions with higher priority are more likely to get included into a block. + Transactions with higher priority are more likely to get included into a block. + + + + This label turns red, if the priority is smaller than "medium". + This label turns red, if the priority is smaller than "medium". + + + + This label turns red, if any recipient receives an amount smaller than %1. + This label turns red, if any recipient receives an amount smaller than %1. + + + + Can vary +/- %1 upiv per input. + + + + + + (no label) + (no label) + + + + change from %1 (%2) + change from %1 (%2) + + + + (change) + (change) + + + + CoinControlPivWidget + + + Dialog + + + + + Transaction Details + + + + + PushButton + + + + + PIV: + + + + + + + + + + + TextLabel + + + + + Quantity: + Quantity: + + + + Fee: + Fee: + + + + Amount + Amount + + + + Label + Label + + + + Address + Address + + + + Type + Type + + + + Date + Date + + + + Confirmations + Confirmations + + + + CheckBox + + + + + Bytes: + Bytes: + + + + Dust: + Dust: + + + + Change: + Change: + + + + After Fee: + + + + + CANCEL + + + + + OK + + + + + ColdStakingWidget + + + Form + Form + + + + Title + + + + + + TextLabel + + + + + Total Staking: + + + + + Owner Address (optional, if empty a new address will be created) + + + + + List of delegated balance by address + + + + + No balance delegated + + + + + Cold Staking + + + + + Staker + + + + + Delegation + + + + + You can delegate your PIVs and let a hot node (24/7 online node) +stake in your behalf, keeping the keys in a secure place offline. + + + + + Add owner address + + + + + Delegate or Accept PIV delegation + + + + + Delegate + + + + + Clear All + + + + + Add the staking address + + + + + Delegated balance history + + + + + No delegations yet + + + + + Total Staking: %1 + + + + + Error loading delegations: %1 + + + + + No receive addresses available, you can go to the receive screen and create some there! + + + + + No contacts available, you can go to the contacts screen and add some there! + + + + + Cold staking is networkely disabled + + + + + Invalid entry + + + + + Invalid entry, minimum delegable amount is + + + + + Owner address invalid + + + + + ALERT! + + + + + Delegating to an external owner address! + +The delegated coins will NOT be spendable by this wallet. +Spending these coins will need to be done from the wallet or +device containing the owner address. + +Do you wish to proceed? + + + + + Staking address corresponds to this wallet, change it to an external node + + + + + Cannot create transaction. + + + + + Coins delegated + + + + + You don't have any PIV to select. + + + + + URI copied to clipboard + + + + + Address copied to clipboard + + + + + Copy + + + + + Edit + + + + + Stake + + + + + Blacklist + + + + + Edit Label + + + + + Copy owner +address + + + + + Address copied + + + + + Edit Cold Address Label + + + + + Whitelist failed, please check the logs + + + + + staking! + + + + + Blacklist failed, please check the logs + + + + + blacklisted from staking + + + + + Owner address copied + + + + + Edit Owner Address Label + + + + + Address label saved + + + + + Error storing address label + + + + + ContactDropdownRow + + + Form + Form + + + + Bob Allen + + + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + + DashboardWidget + + + Form + Form + + + + Transactions + + + + + You can see here the history of your account + + + + + Warning + Warning + + + + No transactions + + + + + + Staking Rewards + + + + + + + + TextLabel + + + + + Staking statistics + + + + + PIV + + + + + zPIV + + + + + Sort by + + + + + Days + + + + + Months + + + + + Years + + + + + Filter by + + + + + LabelText + + + + + You can view your account's history + + + + + Amount of PIV and zPIV staked. + + + + + All + All + + + + Received + Received + + + + Sent + Sent + + + + Mined + Mined + + + + Minted + + + + + MN reward + + + + + To yourself + To yourself + + + + Cold stakes + + + + + Hot stakes + + + + + Delegated + + + + + Delegations + + + + + Please wait until the wallet is fully synced to see your correct balance + + + + + No transactions yet + + + + + How to get PIV or zPIV + + + + + You can verify the staking activity in the status bar at the top right of the wallet. +It will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced. + + + + + + You have no staking rewards + + + + + No charts library + + + + + Loading chart.. + + + + + + + Error loading chart, invalid show option + + + + + Error loading chart, invalid data + + + + + Error loading chart: %1 + + + + + DefaultDialog + + + Form + Form + + + + Transaction Details + + + + + Text Label + + + + + CANCEL + + + + + SAVE + + + + + DenomGenerationDialog + + + Form + Form + + + + Transaction Details + + + + + This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again. + + + + + 5000 + + + + + 100 + + + + + 10 + + + + + 1000 + + + + + 50 + + + + + 500 + + + + + 5 + + + + + 1 + + + + + Select All + + + + + CANCEL + + + + + SAVE + + + + + EditAddressDialog + + + Edit Address + Edit Address + + + + &Label + &Label + + + + The label associated with this address list entry + The label associated with this address list entry + + + + &Address + &Address + + + + The address associated with this address list entry. This can only be modified for sending addresses. + The address associated with this address list entry. This can only be modified for sending addresses. + + + + New receiving address + New receiving address + + + + New sending address + New sending address + + + + Edit receiving address + Edit receiving address + + + + Edit sending address + Edit sending address + + + + The entered address "%1" is not a valid PIVX address. + + + + + The entered address "%1" is already in the address book. + The entered address "%1" is already in the address book. + + + + Could not unlock wallet. + Could not unlock wallet. + + + + New key generation failed. + New key generation failed. + + + + ExpandableButton + + + Form + Form + + + + FreespaceChecker + + + A new data directory will be created. + A new data directory will be created. + + + + name + name + + + + Directory already exists. Add %1 if you intend to create a new directory here. + Directory already exists. Add %1 if you intend to create a new directory here. + + + + Path already exists, and is not a directory. + Path already exists, and is not a directory. + + + + Cannot create data directory here. + Cannot create data directory here. + + + + GovernancePage + + + Form + Form + + + + GOVERNANCE + + + + + Update Proposals + + + + + Next super block: + + + + + + + + + + 0 + + + + + Blocks to next super block: + + + + + Days to budget payout (estimate): + + + + + Allotted budget: + + + + + Budget left: + + + + + Masternodes count: + + + + + HelpMessageDialog + + + version + version + + + + PIVX Core + + + + + + (%1-bit) + (%1-bit) + + + + About PIVX Core + + + + + Command-line options + Command-line options + + + + Usage: + Usage: + + + + command-line options + command-line options + + + + UI Options: + + + + + Choose data directory on startup (default: %u) + + + + + Show splash screen on startup (default: %u) + + + + + Set language, for example "de_DE" (default: system locale) + Set language, for example "de_DE" (default: system locale) + + + + Start minimized + Start minimized + + + + Set SSL root certificates for payment request (default: -system-) + Set SSL root certificates for payment request (default: -system-) + + + + OK + + + + + Intro + + + Welcome + Welcome + + + + Welcome to PIVX Core. + + + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + + + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + + + + + Use the default data directory + Use the default data directory + + + + Use a custom data directory + + + + + CANCEL + + + + + OK + + + + + PIVX Core + + + + + Error: Specified data directory "%1" cannot be created. + Error: Specified data directory "%1" cannot be created. + + + + Error + Error + + + + %1 GB of free space available + %1 GB of free space available + + + + (of %1 GB needed) + (of %1 GB needed) + + + + LoadingDialog + + + Form + Form + + + + TextLabel + + + + + + Loading + + + + + . + + + + + LockUnlock + + + Form + Form + + + + Unlock Wallet + + + + + Lock Wallet + + + + + Staking Only + + + + + MNRow + + + Form + Form + + + + user_masternode + + + + + Address: 88.26.164.88:51474 + + + + + Jan. 19, 2019 + + + + + MasterNodeWizardDialog + + + Dialog + + + + + 1 + + + + + 2 + + + + + 3 + + + + + Intro + + + + + Name + Name + + + + Address + Address + + + + Create New Master Node Controller + + + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + + + + + Make sure you have this amount of coins. + + + + + Set Master Node’s Name + + + + + <html><head/><body><p>A transaction of 10,000 PIV will be made</p><p>to a new empty address in your wallet.</p><p>The Address is labeled under the master node's name.</p></body></html> + + + + + Set Master Node’s IP and port + + + + + Address of the node that must always be online running the actual master node. + + + + + Enter IP address + + + + + Enter Port + + + + + CANCEL + + + + + OK + + + + + e.g user_masternode + + + + + NEXT + + + + + BACK + + + + + address label cannot be empty + + + + + IP or port cannot be empty + + + + + Invalid port number + + + + + Prepare master node failed.. + + + + + Invalid masternode.conf file + + + + + Error parsing masternode.conf file + + + + + Invalid collaterall output index + + + + + Master node created! + + + + + masternode.conf file doesn't exists + + + + + The recipient address is not valid, please recheck. + The recipient address is not valid, please recheck. + + + + The amount to pay must be larger than 0. + The amount to pay must be larger than 0. + + + + The amount exceeds your balance. + The amount exceeds your balance. + + + + The total exceeds your balance when the %1 transaction fee is included. + The total exceeds your balance when the %1 transaction fee is included. + + + + Duplicate address found, can only send to each address once per send operation. + Duplicate address found, can only send to each address once per send operation. + + + + Transaction creation failed! + Transaction creation failed! + + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + + + + Error: The wallet was unlocked only to anonymize coins. + Error: The wallet was unlocked only to anonymize coins. + + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + A fee %1 times higher than %2 per kB is considered an insanely high fee. + + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + + + + + MasterNodesWidget + + + Form + Form + + + + + TextLabel + + + + + No active Master Node yet + + + + + Masternodes + + + + + Full nodes that incentivize node operators to perform the core consensus functions +and vote on the treasury system receiving a periodic reward. + + + + + Create Masternode Controller + + + + + No active Masternode yet + + + + + Start + + + + + Delete + + + + + Info + + + + + Start Masternode + + + + + Are you sure you want to start masternode %1? + + + + + + Cannot start masternode, the collateral transaction has not been accepted by the network. +Please wait few more minutes. + + + + + Remote Masternode Data + + + + + You are just about to export the required data to run a Masternode +on a remote server to your clipboard. + + +You will only have to paste the data in the pivx.conf file +of your remote server and start it, then start the Masternode using +this controller wallet (select the Masternode in the list and press "start"). + + + + + + Masternode exported!, check your clipboard + + + + + Delete Masternode + + + + + You are just about to delete Masternode: +%1 + +Are you sure? + + + + + Invalid masternode.conf file + + + + + Error parsing masternode.conf file + + + + + masternode.conf file doesn't exists + + + + + Not enough balance to create a masternode, 10,000 PIV required. + + + + + Error creating masternode + + + + + MnInfoDialog + + + Form + Form + + + + + Master Node Information + + + + + Public Key: + + + + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + + + Address: + + + + + 127.0.0.2:43223 + + + + + Collaterall tx id: + + + + + Output index: + + + + + 1 Inputs + + + + + Status: + + + + + MISSING + + + + + Export data to run the Master Node on a remote server + + + + + MyAddressRow + + + Form + Form + + + + Savings + + + + + Jan. 19, 2019 + + + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + + NavMenuWidget + + + Form + Form + + + + V 1.0.0 + + + + + v%1 + + + + + OpenURIDialog + + + Open URI + Open URI + + + + Open payment request from URI or file + Open payment request from URI or file + + + + TextLabel + + + + + CANCEL + + + + + OK + + + + + Select payment request file + Select payment request file + + + + Select payment request file to open + Select payment request file to open + + + + File not found + + + + + Parsed data too large + + + + + Invalid URI, not starting with "pivx" prefix + + + + + OptionButton + + + Form + Form + + + + + TextLabel + + + + + OptionsDialog + + + Options + Options + + + + &Main + &Main + + + + Size of &database cache + Size of &database cache + + + + MB + MB + + + + Number of script &verification threads + Number of script &verification threads + + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = leave that many cores free) + + + + W&allet + W&allet + + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + + + + + Accept connections from outside + Accept connections from outside + + + + Allow incoming connections + Allow incoming connections + + + + &Connect through SOCKS5 proxy (default proxy): + &Connect through SOCKS5 proxy (default proxy): + + + + Expert + Expert + + + + Automatically start PIVX after logging in to the system. + + + + + &Start PIVX on system login + + + + + Whether to show coin control features or not. + Whether to show coin control features or not. + + + + Enable coin &control features + Enable coin &control features + + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + + + + + Show Masternodes Tab + + + + + &Spend unconfirmed change + &Spend unconfirmed change + + + + &Network + &Network + + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + + + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + + + + + Map port using &UPnP + Map port using &UPnP + + + + Enable automatic minting of PIV units to zPIV + + + + + Enable zPIV Automint + + + + + Enable automatic zPIV minting from specific addresses + + + + + Enable Automint Addresses + + + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + + + + + Percentage of autominted zPIV + + + + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + + + + + Preferred Automint zPIV Denomination + + + + + Stake split threshold: + + + + + Connect to the PIVX network through a SOCKS5 proxy. + + + + + Proxy &IP: + Proxy &IP: + + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + + + + &Port: + &Port: + + + + Port of the proxy (e.g. 9050) + Port of the proxy (e.g. 9050) + + + + &Window + &Window + + + + Show only a tray icon after minimizing the window. + Show only a tray icon after minimizing the window. + + + + &Minimize to the tray instead of the taskbar + &Minimize to the tray instead of the taskbar + + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + + + + M&inimize on close + M&inimize on close + + + + &Display + &Display + + + + User Interface &language: + User Interface &language: + + + + User Interface Theme: + User Interface Theme: + + + + Unit to show amounts in: + + + + + Choose the default subdivision unit to show in the interface and when sending coins. + Choose the default subdivision unit to show in the interface and when sending coins. + + + + Decimal digits + Decimal digits + + + + + Hide empty balances + + + + + Hide orphan stakes in transaction lists + + + + + Hide orphan stakes + + + + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + + + + Third party transaction URLs + Third party transaction URLs + + + + Active command-line options that override above options: + Active command-line options that override above options: + + + + Reset all client options to default. + Reset all client options to default. + + + + &Reset Options + &Reset Options + + + + &OK + &OK + + + + &Cancel + &Cancel + + + + Any + + + + + default + default + + + + none + none + + + + Confirm options reset + Confirm options reset + + + + + Client restart required to activate changes. + Client restart required to activate changes. + + + + Client will be shutdown, do you want to proceed? + Client will be shutdown, do you want to proceed? + + + + This change would require a client restart. + This change would require a client restart. + + + + The supplied proxy address is invalid. + The supplied proxy address is invalid. + + + + The supplied proxy port is invalid. + + + + + The supplied proxy settings are invalid. + + + + + PIVXGUI + + + + + PIVX Core + + + + + Wallet + Wallet + + + + Node + Node + + + + &Show / Hide + &Show / Hide + + + + Show or hide the main Window + Show or hide the main Window + + + + E&xit + E&xit + + + + Quit application + Quit application + + + + PIVX Core client + + + + + Error + Error + + + + Warning + Warning + + + + Information + Information + + + + System Message + + + + + Sent MultiSend transaction + + + + + Sent transaction + Sent transaction + + + + Incoming transaction + Incoming transaction + + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + + + + A fatal error occurred. PIVX can no longer continue safely and will quit. + + + + + PWidget + + + Wallet locked, you need to unlock it to perform this action + + + + + PaymentServer + + + + + + + + Payment request error + Payment request error + + + + + + URI handling + URI handling + + + + Payment request fetch URL is invalid: %1 + Payment request fetch URL is invalid: %1 + + + + Payment request file handling + Payment request file handling + + + + Invalid payment address %1 + Invalid payment address %1 + + + + Cannot start pivx: click-to-pay handler + + + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + + + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Payment request file cannot be read! This can be caused by an invalid payment request file. + + + + + + Payment request rejected + Payment request rejected + + + + Payment request network doesn't match client network. + Payment request network doesn't match client network. + + + + Payment request has expired. + Payment request has expired. + + + + Payment request is not initialized. + Payment request is not initialized. + + + + Unverified payment requests to custom payment scripts are unsupported. + Unverified payment requests to custom payment scripts are unsupported. + + + + Requested payment amount of %1 is too small (considered dust). + Requested payment amount of %1 is too small (considered dust). + + + + Refund from %1 + Refund from %1 + + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + + + + Payment request DoS protection + Payment request DoS protection + + + + Error communicating with %1: %2 + Error communicating with %1: %2 + + + + Payment request cannot be parsed! + Payment request cannot be parsed! + + + + Bad response from server %1 + Bad response from server %1 + + + + Network request error + Network request error + + + + Payment acknowledged + Payment acknowledged + + + + PeerTableModel + + + Address/Hostname + Address/Hostname + + + + Version + Version + + + + Ping Time + Ping Time + + + + PrivacyWidget + + + Form + Form + + + + Title + + + + + + + + + + + + + + + + + + + + + + + + TextLabel + + + + + + + PushButton + + + + + No active Master Node yet + + + + + Privacy + + + + + Convert + + + + + Mint + + + + + Minting zPIV anonymizes your PIV by removing any +transaction history, making transactions untraceable + + + + + Mint new zPIV or convert back to PIV + + + + + Last Zerocoin Movements + + + + + No transactions yet + + + + + Mint zPIV + + + + + Enter amount of PIV to mint into zPIV + + + + + Convert back to PIV + + + + + Enter amount of zPIV to convert back into PIV + + + + + Zerocoin + + + + + zPIV is currently undergoing maintenance + + + + + You need to unlock the wallet to be able to %1 zPIV + + + + + convert + + + + + mint + + + + + Invalid value + + + + + zPIV minted successfully + + + + + zPIV converted back to PIV + + + + + You don't have any PIV to select. + + + + + Rescan Mints + + + + + Your zerocoin mints are going to be scanned from the blockchain from scratch + + + + + Reset Spent Zerocoins + + + + + Your zerocoin spends are going to be scanned from the blockchain from scratch + + + + + Total %1 + + + + + ProposalFrame + + + Open proposal page in browser + + + + + remaining payment(s). + + + + + Yes: + + + + + Abstain: + + + + + No: + + + + + A proposal URL can be used for phishing, scams and computer viruses. Open this link only if you trust the following URL. + + + + + + Open link + + + + + Copy link + + + + + Wallet Locked + + + + + You must unlock your wallet to vote. + + + + + Do you want to vote %1 on + + + + + using all your masternodes? + + + + + Proposal Hash: + + + + + Proposal URL: + + + + + Confirm Vote + + + + + Vote Results + + + + + QObject + + + Amount + Amount + + + + Enter a PIVX address (e.g. %1) + + + + + %1 d + %1 d + + + + %1 h + %1 h + + + + %1 m + %1 m + + + + + %1 s + %1 s + + + + NETWORK + NETWORK + + + + BLOOM + + + + + ZK_BLOOM + + + + + UNKNOWN + UNKNOWN + + + + None + None + + + + N/A + N/A + + + + %1 ms + %1 ms + + + + + + + PIVX Core + + + + + Error: Specified data directory "%1" does not exist. + + + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + + + + + Error: Invalid combination of -regtest and -testnet. + + + + + Error reading masternode configuration file: %1 + + + + + PIVX Core didn't yet exit safely... + + + + + RPCConsole + + + Tools window + Tools window + + + + &Information + &Information + + + + General + General + + + + Name + Name + + + + Client name + Client name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + N/A + N/A + + + + Number of connections + Number of connections + + + + &Open + &Open + + + + Startup time + Startup time + + + + Network + Network + + + + Last block time + Last block time + + + + Debug log file + Debug log file + + + + Build date + Build date + + + + Current number of blocks + Current number of blocks + + + + Client version + Client version + + + + Using BerkeleyDB version + Using BerkeleyDB version + + + + Block chain + Block chain + + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + + + + + Number of Masternodes + Number of Masternodes + + + + Data Directory + + + + + Last block hash + + + + + &Console + &Console + + + + Clear console + Clear console + + + + &Network Traffic + &Network Traffic + + + + &Clear + &Clear + + + + Totals + Totals + + + + Received + Received + + + + Sent + Sent + + + + &Peers + &Peers + + + + Banned peers + + + + + + + Select a peer to view detailed information. + Select a peer to view detailed information. + + + + Whitelisted + + + + + Direction + Direction + + + + Protocol + + + + + Version + Version + + + + Services + Services + + + + Ban Score + Ban Score + + + + Connection Time + Connection Time + + + + Last Send + Last Send + + + + Last Receive + Last Receive + + + + Bytes Sent + Bytes Sent + + + + Bytes Received + Bytes Received + + + + Ping Time + Ping Time + + + + &Wallet Repair + &Wallet Repair + + + + Delete local Blockchain Folders + + + + + Wallet In Use: + + + + + Starting Block + + + + + Synced Headers + + + + + Synced Blocks + + + + + The duration of a currently outstanding ping. + + + + + Ping Wait + + + + + Time Offset + + + + + Custom Backup Path: + + + + + Custom zPIV Backup Path: + + + + + Custom Backups Threshold: + + + + + Salvage wallet + Salvage wallet + + + + Attempt to recover private keys from a corrupt wallet.dat. + + + + + Rescan blockchain files + Rescan blockchain files + + + + Rescan the block chain for missing wallet transactions. + + + + + Recover transactions 1 + Recover transactions 1 + + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + + + + + Recover transactions 2 + Recover transactions 2 + + + + Recover transactions from blockchain (drop meta-data). + + + + + Upgrade wallet format + Upgrade wallet format + + + + Rebuild block chain index from current blk000??.dat files. + + + + + -resync: + + + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + + + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + + + + Wallet repair options. + Wallet repair options. + + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + + + + + Rebuild index + Rebuild index + + + + In: + In: + + + + Out: + Out: + + + + Welcome to the PIVX RPC console. + + + + + &Disconnect Node + + + + + + + + Ban Node for + + + + + 1 &hour + + + + + 1 &day + + + + + 1 &week + + + + + 1 &year + + + + + &Unban Node + + + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + + + + + This needs quite some time and downloads a lot of data.<br /><br /> + + + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + + + + + Do you want to continue?.<br /> + + + + + Confirm resync Blockchain + + + + + Use up and down arrows to navigate history, and %1 to clear screen. + + + + + Type <b>help</b> for an overview of available commands. + Type <b>help</b> for an overview of available commands. + + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + + + + + %1 B + %1 B + + + + %1 KB + %1 KB + + + + %1 MB + %1 MB + + + + %1 GB + %1 GB + + + + (node id: %1) + + + + + via %1 + via %1 + + + + + never + never + + + + Inbound + Inbound + + + + Outbound + Outbound + + + + Yes + + + + + No + + + + + + Unknown + Unknown + + + + ReceiveDialog + + + Dialog + + + + + Transaction Details + + + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + + + CANCEL + + + + + OK + + + + + ReceiveWidget + + + Form + Form + + + + + + + TextLabel + + + + + + No address + + + + + + Add Label + + + + + + Generate Address + + + + + + Copy + + + + + Receive + + + + + Scan the QR code or copy the address to receive PIV. + + + + + No address + + + + + + No available address, try unlocking the wallet + + + + + + Error generating address + + + + + Change Label + + + + + Edit Address Label + + + + + Address label saved + + + + + Error storing address label + + + + + New address created + + + + + Address copied + + + + + URI copied to clipboard + + + + + Address copied to clipboard + + + + + RecentRequestsTableModel + + + Date + Date + + + + Label + Label + + + + Message + Message + + + + Address + Address + + + + Amount + Amount + + + + (no label) + (no label) + + + + (no message) + (no message) + + + + (no amount) + (no amount) + + + + RequestDialog + + + Dialog + + + + + + New Request Payment + + + + + Lorem ipsum dolor sit amet, consectur cling elit, sed do + + + + + + Amount + Amount + + + + PIV + + + + + + TextLabel + + + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + + + COPY ADDRESS + + + + + COPY URL + + + + + CANCEL + + + + + REQUEST + + + + + Instead of only sharing a PIVX address, you can create a Payment Request message which bundles up more information than is contained in just a PIVX address. + + + + + Label + Label + + + + Enter a label to be saved within the address + + + + + Description (optional) + + + + + Add description + + + + + Error + Error + + + + GENERATE + + + + + Creates an address to receive coin delegations and be able to stake them. + + + + + New Cold Staking Address + + + + + Amount (optional) + + + + + SendChangeAddressDialog + + + Dialog + + + + + Transaction Details + + + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + + + CANCEL + + + + + OK + + + + + Custom Change Address + + + + + The remainder of the value resultant from the inputs minus the outputs value goes to the "change" PIVX address + + + + + SendCustomFeeDialog + + + Form + Form + + + + Transaction Details + + + + + Customize the transaction fee at your to your liking, depending on the fee value your transaction will be included or not in the blockchain. + + + + + Recomended + + + + + 0.00 KB + + + + + Custom + + + + + Per kilobyte + + + + + CANCEL + + + + + OK + + + + + Customize Fee + + + + + Customize the transaction fee, depending on the fee value your transaction will be included or not in the blockchain. + + + + + Normal + + + + + Slow + + + + + Fast + + + + + SAVE + + + + + SendMultiRow + + + Form + Form + + + + TextLabel + + + + + Add address + + + + + Add description + + + + + SendWidget + + + Send + + + + + You can transfer public coins (PIV) or private coins (zPIV) + + + + + Select coin type to spend + + + + + Enter a PIVX address or contact label + + + + + Amount + Amount + + + + Customize fee + + + + + Clear all + + + + + Add recipient + + + + + Reset to default + + + + + Total to send + + + + + Send PIV + + + + + Send zPIV + + + + + Total remaining from the selected UTXO + + + + + Total remaining + + + + + + Customize Fee + + + + + Maximum amount of outputs reached + + + + + Invalid entry, previous entries must be valid before add a new one + + + + + Invalid entry + + + + + No set recipients + + + + + Cannot send, wallet locked + + + + + Cannot create transaction. + + + + + WARNING: +Transaction spends a cold-stake delegation, voiding it. +These coins will no longer be cold-staked. + + + + + Transaction sent + + + + + + Spend Zerocoin + + + + + zPIV is currently undergoing maintenance. + + + + + Coin control mint not found + + + + + Sending %1 to address %2 + + + + + + Sending %1 to addresses: +%2 + + + + + zPIV transaction sent! + + + + + Version 1 zPIV require a security level of 100 to successfully spend. + + + + + Too much inputs ( + + + + + ) needed. +Maximum allowed: + + + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + + + + + Address label update failed for address: %1 + + + + + Invalid change address + + + + + Invalid URI + + + + + Invalid address in URI + + + + + Custom Fee %1 + + + + + You don't have any PIV to select. + + + + + You don't have any zPIV in your balance to select. + + + + + No contacts available, you can go to the contacts screen and add some there! + + + + + Save contact + + + + + Address field is empty + + + + + Invalid address + + + + + Cannot store your own address as contact + + + + + Update Contact + + + + + Create New Contact + + + + + New Contact Stored + + + + + Error Storing Contact + + + + + SettingsBackupWallet + + + Form + Form + + + + + + + + TextLabel + + + + + Backup Wallet + + + + + Change Wallet Passphrase + + + + + Keep your wallet safe doing regular backups, store your backup file externally. +This option creates a wallet.dat file that can be used to recover your whole balance (transactions and addresses) from another device. + + + + + This will decrypt the whole wallet data and encrypt it back with the new passphrase. +Remember to write it down and store it safely, otherwise you might lose access to your funds. + + + + + Where + + + + + + Set a folder location + + + + + Backup + + + + + Change Passphrase + + + + + Backup Wallet + Backup Wallet + + + + Wallet Data (*.dat) + Wallet Data (*.dat) + + + + Backup created + + + + + Backup creation failed + + + + + Please select a folder to export the backup first. + + + + + SettingsBitToolWidget + + + Form + Form + + + + + + + + + + + TextLabel + + + + + PushButton + + + + + Decrypt Address Result + + + + + + Import Address + + + + + + Clear + Clear + + + + BIP38 Tool + + + + + Encrypt + + + + + Decrypt + + + + + + Encrypted key + + + + + Enter a encrypted key + + + + + + Passphrase + + + + + Enter a passphrase + + + + + Decrypted address result + + + + + Decrypted Address + + + + + DECRYPT KEY + + + + + Enter a PIVX address + + + + + Add address + + + + + Write a message + + + + + Encrypted Key + + + + + ENCRYPT + + + + + CLEAR ALL + + + + + CLEAR + + + + + The entered passphrase is invalid. + + + + + Allowed: 0-9,a-z,A-Z, + + + + + The entered address is invalid. + The entered address is invalid. + + + + + Please check the address and try again. + Please check the address and try again. + + + + The entered address does not refer to a key. + The entered address does not refer to a key. + + + + + Wallet unlock was cancelled. + Wallet unlock was cancelled. + + + + Private key for the entered address is not available. + Private key for the entered address is not available. + + + + Address encrypted. + + + + + No addresses available, you can go to the receive screen and add some there! + + + + + Failed to decrypt. + + + + + Please check the key and passphrase and try again. + + + + + Data Not Valid. + + + + + Please try again. + + + + + Please wait while key is imported + + + + + Cannot import address, key already held by the wallet + + + + + Error adding key to the wallet + + + + + Successfully added pivate key to the wallet + + + + + SettingsConsoleWidget + + + Form + Form + + + + TextLabel + + + + + Console + + + + + Console input + + + + + Command Line Options + + + + + Open Debug File + + + + + Cannot open debug file. +Verify that you have installed a predetermined text editor. + + + + + Welcome to the PIVX RPC console. + + + + + Use up and down arrows to navigate history, and %1 to clear screen. + + + + + Type <b>help</b> for an overview of available commands. + Type <b>help</b> for an overview of available commands. + + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + + + + + SettingsDisplayOptionsWidget + + + Form + Form + + + + + + + + + TextLabel + + + + + + Reset to default + + + + + Discard changes + + + + + Display + + + + + Customize the display view options + + + + + Language + + + + + Unit to show amount + + + + + Decimal digits + Decimal digits + + + + Third party transactions URLs + + + + + Hide empty balances + + + + + SAVE + + + + + default + default + + + + Options reset succeed + + + + + SettingsFaqWidget + + + Form + Form + + + + + TextLabel + + + + + + PushButton + + + + + 1) What is PIVX? + + + + + 2) Why are my PIV unspendable? + + + + + 3) PIVX privacy? What is Zerocoin (zPIV)? + + + + + 4) Why are my zPIV unspendable? + + + + + 5) Why did my wallet convert the balance + into zPIV automatically? + + + + + 6) How do I receive PIV/zPIV? + + + + + 7) How do I stake PIV/zPIV? + + + + + 8) Where I should go if I need support? + + + + + 9) What is a Master Node? + + + + + 10) What is a Master Node Controller? + + + + + 1 + + + + + What is PIVX? + + + + + + <html><head/><body><p align="justify"> + PIVX is a form of digital online money using blockchain technology + that can be easily transferred globally, instantly, and with near + zero fees. PIVX incorporates market leading security & + privacy and is also the first PoS (Proof of Stake) Cryptocurrency + to implement ZeroCoin(zPIV) and Zerocoin staking. + </p><p align="justify"> + PIVX utilizes a Proof of Stake (PoS) consensus system algorithm, + allowing all owners of PIVX to participate in earning block rewards + while securing the network with full node wallets, as well as to + run Masternodes to create and vote on proposals. + </p></body></html> + + + + + + 2 + + + + + Why are my PIV unspendable? + + + + + + <html><head/><body><p align="justify"> + Newly received PIVX requires 6 confirmations on the network + to become eligible for spending which can take ~6 minutes. + </p><p align="justify"> + Your PIVX wallet also needs to be completely synchronized + to see and spend balances on the network. + </p></body></html> + + + + + + 3 + + + + + PIVX privacy? What is Zerocoin (zPIV)? + + + + + + <html><head/><body><p align="justify"> + zPIV is an optional privacy-centric method of coin mixing on the + PIVX blockchain. Basically all your transactions cannot be tracked + on to any block explorer. You can read more about the technicals in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "PIVX Zerocoin (zPIV) Technical Paper"</a>. + </p></body></html> + + + + + + 4 + + + + + Why are my zPIV unspendable? + + + + + + <html><head/><body><p align="justify"> + After minting, zPIV will require 20 confirmations as well as 1 + additional mint of the same denomination on the network to + become eligible for spending. + </p></body></html> + + + + + + 5 + + + + + Why did my wallet convert the balance into zPIV automatically? + + + + + + <html><head/><body><p align="justify"> + By default the PIVX wallet will convert 10% of your entire PIV + balance to zPIV to assist the network. If you do not wish to + stake zPIV or take advantage of the privacy benefit it brings, + you can disable the automatic minting in your PIVX wallet by + going to Settings->Options and deselecting “Enable zPIV Automintâ€. + If you are not making use of the PIVX-QT or GUI you can simply open + your pivx.conf file and add <i>enablezeromint=0</i> Without the quotation + marks and restart your wallet to disable automint.</p> + </p><p align="justify"> + You can read more about zPIV in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> "PIVX Zerocoin (zPIV) Technical Paper"</a>. + If you would like to keep and stake your zPIV, please read the "How do I stake" + section of the FAQ below. + </p></body></html> + + + + + + 6 + + + + + How do I receive PIV/zPIV? + + + + + + <html><head/><body><p align="justify"> + zPIV can be spent and sent to any PIVX address. The receiver will + receive standard PIVX but the origin of the PIVX is anonymized by the zPIV Protocol. + </p><p align="justify"> + If you want more zPIV you will need to mint your balance in the “Privacy†tab. + </p></body></html> + + + + + + 7 + + + + + How do I stake PIV/zPIV? + + + + + + <html><head/><body><p align="justify"> + To Stake PIVX: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + You must have a balance of PIVX with a minimum of 101 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + <li> + Once all those steps are followed staking should be enabled. + <li> + You can see the status of staking in the wallet by mousing over the package icon in the row on the top left of the wallet interface. There package will be lit up and will state "Staking Enabled" to indicate it is staking. Using the command line interface (pivx-cli); the command <i>getstakingstatus</i> will confirm that staking is active. + </li></ol> + </p><p align="justify"> + To Stake zPIV: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + Your newly minted or existing zPIV balance must have a minimum of 200 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + Staking should now be enabled. + </li></ol> + </p></body></html> + + + + + + 8 + + + + + Where I should go if I need support? + + + + + + <html><head/><body><p align="justify"> + We have support channels in most of our official chat groups, for example + <a style='color: #b088ff' href='https://discord.PIVX.org'> + #support in our Discord</a>. + If you prefer to submit a ticket, One can be + <a style='color: #b088ff' href='https://PIVX.freshdesk.com'> + our Freshdesk support site</a>. + </p></body></html> + + + + + + 9 + + + + + What is a Master Node? + + + + + + <html><head/><body><p align="justify"> + A masternode is a computer running a full node PIVX core wallet with a + requirement of 10,000 PIV secured collateral to provide extra services + to the network and in return, receive a portion of the block reward + regularly. These services include: + </p><p align="justify"> + + <ul> + <li>Instant transactions (SwiftX)</li> + <li>A decentralized governance (Proposal Voting)</li> + <li>A decentralized budgeting system (Treasury)</li> + <li>Validation of transactions within each block</li> + <li>Act as an additional full node in the network</li> + </ul> + + </p><p align="justify"> + For providing such services, masternodes are also paid a certain portion + of reward for each block. This can serve as a passive income to the + masternode owners minus their running cost. + </p><p align="justify"> + + Masternode Perks: + </p><p align="justify"> + <ul> + <li>Participate in PIVX Governance</li> + <li>Earn Masternode Rewards</li> + <li>Commodity option for future sale</li> + <li>Help secure the PIVX network</li> + </ul> + </p><p align="justify"> + + Requirements: + </p><p align="justify"> + <ul> + <li>10,000 PIV per single Masternode instance</li> + <li>Must be stored in a core wallet</li> + <li>Need dedicated IP address</li> + <li>Masternode wallet to remain online</li> + </ul> + </p></body></html> + + + + + + 10 + + + + + What is a Master Node Controller? + + + + + <html><head/><body><p align="justify">A Masternode Controller wallet is where the 10,000 PIV collateral can reside during a Controller-Remote masternode setup. It is a wallet that can activate the remote masternode wallet/s and allows you to keep your collateral coins offline while the remote masternode remains online. </p></body></html> + + + + + Frequently Asked Questions + + + + + You can read more here + + + + + Exit + + + + + SettingsInformationWidget + + + Form + Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + TextLabel + + + + + + Network Monitor + + + + + Information + Information + + + + General + General + + + + Client Version: + + + + + User Agent: + + + + + Using BerkeleyDB version: + + + + + Datadir: + + + + + Startup Time: + + + + + Network + Network + + + + Name: + + + + + Number Connections: + + + + + Blockchain + + + + + Current Number of Blocks: + + + + + Last Block Time: + + + + + Memory Pool + + + + + Current Number of Transactions: + + + + + Main + + + + + Wallet Conf + + + + + Backups + + + + + No information + + + + + Unable to open backups folder + + + + + Unable to open pivx.conf with default application + + + + + In: + In: + + + + Out: + Out: + + + + SettingsMainOptionsWidget + + + Form + Form + + + + + + + TextLabel + + + + + Window + + + + + Customize the application window options + + + + + + CheckBox + + + + + + Reset to default + + + + + Discard changes + + + + + + SAVE + + + + + Main + + + + + Size of database cache + + + + + Number of script verification threads + + + + + Start PIVX on system login + + + + + Minimize to the tray instead of the taskbar + + + + + Minimize on close + + + + + Reset Options + + + + + You are just about to reset the app's options to the default values. + +Are you sure? + + + + + + Options reset succeed + + + + + SettingsMultisendDialog + + + Form + Form + + + + Transaction Details + + + + + + + TextLabel + + + + + CANCEL + + + + + SAVE + + + + + New recipient for multisend + + + + + Label (optional) + + + + + Enter a label to add this address in your address book + + + + + Percentage + + + + + SettingsMultisendWidget + + + Form + Form + + + + + TextLabel + + + + + No active Master Node yet + + + + + + CheckBox + + + + + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. + + + + + Active + + + + + Disable + + + + + No active recipient yet + + + + + Send stakes + + + + + Send masternode rewards + + + + + ADD RECIPIENT + + + + + CLEAR ALL + + + + + Clear succeed + + + + + Clear all failed, could not locate address in wallet file + + + + + The entered address: %1 is invalid. +Please check the address and try again. + + + + + Invalid percentage, please enter values from 1 to 100. + + + + + The total amount of your MultiSend vector is over 100% of your stake reward + + + + + Error saving MultiSend, failed saving properties to the database. + + + + + Unable to activate MultiSend, no available recipients + + + + + Unable to activate MultiSend +Check one or both of the check boxes to send on stake and/or masternode rewards + + + + + MultiSend activated but writing settings to DB failed + + + + + MultiSend activated + + + + + First multiSend address invalid + + + + + MultiSend deactivated but writing settings to DB failed + + + + + MultiSend deactivated + + + + + SettingsSignMessageWidgets + + + Form + Form + + + + + + + + + TextLabel + + + + + Clear + Clear + + + + Sign/Verify Message + + + + + Enter a PIVX address or contact label + + + + + Add address + + + + + Sign + + + + + Verify + + + + + Select mode + + + + + Message + Message + + + + Write a message + + + + + + Signature + Signature + + + + + SIGN + + + + + CLEAR ALL + + + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + + + + VERIFY + + + + + + The entered address is invalid. + The entered address is invalid. + + + + + + + Please check the address and try again. + Please check the address and try again. + + + + + The entered address does not refer to a key. + The entered address does not refer to a key. + + + + Wallet unlock was cancelled. + Wallet unlock was cancelled. + + + + Private key for the entered address is not available. + Private key for the entered address is not available. + + + + Message signing failed. + Message signing failed. + + + + Message signed. + Message signed. + + + + The signature could not be decoded. + The signature could not be decoded. + + + + + Please check the signature and try again. + Please check the signature and try again. + + + + The signature did not match the message digest. + The signature did not match the message digest. + + + + Message verification failed. + Message verification failed. + + + + Message verified. + Message verified. + + + + No addresses available, you can go to the receive screen and add some there! + + + + + SettingsWalletOptionsWidget + + + Form + Form + + + + + + + + + + TextLabel + + + + + CheckBox + + + + + + + RadioButton + + + + + + Reset to default + + + + + Discard changes + + + + + Wallet + Wallet + + + + Customize the internal wallet options + + + + + Stake split threshold: + + + + + Spend unconfirmed change + + + + + Network + Network + + + + Customize the node network options + + + + + Proxy IP: + + + + + Enter proxy IP + + + + + Port: + + + + + Map port using UPnP + + + + + Allow incoming connections + Allow incoming connections + + + + Connect through SOCKS5 proxy (default proxy): + + + + + SAVE + + + + + Options reset succeed + + + + + SettingsWalletRepairWidget + + + Form + Form + + + + + + + + + + + + TextLabel + + + + + Wallet Repair + + + + + The buttons below will restart the wallet with command-line options to repair this wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. + + + + + Attempt to recover private keys from a corrupt wallet.dat. + + + + + Rescan the blockchain for missing wallet transactions. + + + + + Recover transactions from blockchain (keep-meta-data, e.g. account owner). + + + + + Recover transactions from blockchain (drop meta-data). + + + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself) + + + + + Rebuild blockchain index from current blk000???.dat files. + + + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + + + + + Salvage wallet + Salvage wallet + + + + Rescan blockchain file + + + + + Recover transactions 1 + Recover transactions 1 + + + + Recover transactions 2 + Recover transactions 2 + + + + Upgrade wallet format + Upgrade wallet format + + + + Rebuild index + Rebuild index + + + + Delete local blockchain + + + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + + + + + This needs quite some time and downloads a lot of data.<br /><br /> + + + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + + + + + Do you want to continue?.<br /> + + + + + Confirm resync Blockchain + + + + + SettingsWidget + + + Form + Form + + + + TextLabel + + + + + Wallet Data + + + + + + Wallet + Wallet + + + + Multisend + + + + + Tools + + + + + Sign/Verify Message + + + + + BIP38 Tool + + + + + Options + Options + + + + Main + + + + + Display + + + + + Debug + + + + + Information + Information + + + + Console + + + + + Wallet Repair + + + + + Help + + + + + FAQ + + + + + About PIVX + + + + + Settings + + + + + Confirm options reset + Confirm options reset + + + + Client restart required to activate changes. + Client restart required to activate changes. + + + + Client will be shutdown, do you want to proceed? + Client will be shutdown, do you want to proceed? + + + + Restart required + + + + + Your wallet needs to be restarted to apply the changes + + + + + + Restart Now + + + + + Restart Later + + + + + Options will be applied on next wallet restart + + + + + Options stored + + + + + Options store failed + + + + + Discard Unsaved Changes + + + + + You are just about to discard all of your unsaved options. + +Are you sure? + + + + + + ShutdownWindow + + + PIVX Core is shutting down... + + + + + Do not shut down the computer until this window disappears. + Do not shut down the computer until this window disappears. + + + + SnackBar + + + Form + Form + + + + Contact Stored + + + + + Splash + + + Form + Form + + + + Loading… + + + + + PIVX Core + + + + + SplashScreen + + + PIVX Core + + + + + Version %1 + Version %1 + + + + The Bitcoin Core developers + The Bitcoin Core developers + + + + The Dash Core developers + + + + + The PIVX Core developers + + + + + [testnet] + [testnet] + + + + TooltipMenu + + + Form + Form + + + + Copy + + + + + Edit + + + + + Delete + + + + + Last + + + + + TopBar + + + Form + Form + + + + + 480.0685 PIV + + + + + + 1,000 zPIV + + + + + + Available + + + + + + Pending + + + + + 6.943 PIV + + + + + + Immature + + + + + 10 PIV + + + + + 60 zPIV + + + + + 10 zPIV + + + + + Wallet Unlocked for staking + + + + + Error generating address + + + + + Address Copied + + + + + Automint enabled + + + + + Automint disabled + + + + + Staking active + + + + + Staking not active + + + + + %n active connection(s) + + + + + + + + Synchronized + + + + + %n hour(s) + + %n hour + %n hours + + + + + %n day(s) + + %n day + %n days + + + + + + %n week(s) + + %n week + %n weeks + + + + + %1 and %2 + %1 and %2 + + + + %n year(s) + + %n year + %n years + + + + + TrafficGraphWidget + + + KB/s + KB/s + + + + TransactionDesc + + + Open for %n more block(s) + + Open for %n more block + Open for %n more blocks + + + + + Open until %1 + Open until %1 + + + + conflicted + conflicted + + + + %1/offline + %1/offline + + + + %1/unconfirmed + %1/unconfirmed + + + + + %1 confirmations + %1 confirmations + + + + %1/offline (verified via SwiftX) + + + + + %1/confirmed (verified via SwiftX) + + + + + %1 confirmations (verified via SwiftX) + + + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + + + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + + + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + + + + + %1/offline (SwiftX verification failed) + + + + + %1/confirmed (SwiftX verification failed) + + + + + Status + Status + + + + , has not been successfully broadcast yet + , has not been successfully broadcast yet + + + + , broadcast through %n node(s) + + , broadcast through %n node + , broadcast through %n nodes + + + + + Date + Date + + + + Source + Source + + + + Generated + Generated + + + + + + From + From + + + + unknown + unknown + + + + + + To + To + + + + own address + own address + + + + + watch-only + watch-only + + + + label + label + + + + + + + + Credit + Credit + + + + matures in %n more block(s) + + matures in %n more block + matures in %n more blocks + + + + + not accepted + not accepted + + + + + + Debit + Debit + + + + Total debit + Total debit + + + + Total credit + Total credit + + + + Transaction fee + Transaction fee + + + + Net amount + Net amount + + + + + Message + Message + + + + Comment + Comment + + + + Transaction ID + Transaction ID + + + + Output index + + + + + Merchant + Merchant + + + + Debug information + Debug information + + + + Transaction + Transaction + + + + Inputs + Inputs + + + + Amount + Amount + + + + + true + true + + + + + false + false + + + + TransactionTableModel + + + Date + Date + + + + Type + Type + + + + Address + Address + + + + Open for %n more block(s) + + Open for %n more block + Open for %n more blocks + + + + + Open until %1 + Open until %1 + + + + Offline + Offline + + + + Unconfirmed + Unconfirmed + + + + Confirming (%1 of %2 recommended confirmations) + Confirming (%1 of %2 recommended confirmations) + + + + Confirmed (%1 confirmations) + Confirmed (%1 confirmations) + + + + Conflicted + Conflicted + + + + Immature (%1 confirmations, will be available after %2) + Immature (%1 confirmations, will be available after %2) + + + + This block was not received by any other nodes and will probably not be accepted! + This block was not received by any other nodes and will probably not be accepted! + + + + Received with + Received with + + + + Masternode Reward + + + + + Received from + Received from + + + + Received via Obfuscation + + + + + PIV Stake + + + + + zPIV Stake + + + + + PIV Cold Stake + + + + + PIV Stake in behalf of + + + + + Stake delegation + + + + + Obfuscation Denominate + + + + + Obfuscation Collateral Payment + + + + + Obfuscation Make Collateral Inputs + + + + + Obfuscation Create Denominations + + + + + Converted PIV to zPIV + + + + + Spent zPIV + + + + + Received PIV from zPIV + + + + + Minted Change as zPIV from zPIV Spend + + + + + Converted zPIV to PIV + + + + + Sent to + Sent to + + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + + + + + Payment to yourself + Payment to yourself + + + + Mined + Mined + + + + Obfuscated + Obfuscated + + + + watch-only + watch-only + + + + Anonymous + + + + + No information + + + + + (n/a) + (n/a) + + + + Transaction status. Hover over this field to show number of confirmations. + Transaction status. Hover over this field to show number of confirmations. + + + + Date and time that the transaction was received. + Date and time that the transaction was received. + + + + Type of transaction. + Type of transaction. + + + + Whether or not a watch-only address is involved in this transaction. + Whether or not a watch-only address is involved in this transaction. + + + + Destination address of transaction. + Destination address of transaction. + + + + Amount removed from or added to balance. + Amount removed from or added to balance. + + + + TxDetailDialog + + + Form + Form + + + + + Transaction Details + + + + + ID: + + + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + + + Sending to: + + + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + + + Total amount + + + + + 2 PIV + + + + + Coin inputs: + + + + + 1 Inputs + + + + + Previous Transaction + + + + + Output Index + + + + + Fee: + Fee: + + + + 0.0001 PIV + + + + + Change address: + + + + + D7VFR83SQbie…BhjcWJtcfip5krte2Z + + + + + Confirmations: + + + + + 12 + + + + + Size: + + + + + 2 kB + + + + + Date: + + + + + May 25, 2017 + + + + + Status: + + + + + Spendable + + + + + TextLabel + + + + + CANCEL + + + + + OK + + + + + Confirm Your Transaction + + + + + SEND + + + + + ID copied + + + + + Unknown + Unknown + + + + TxRow + + + Form + Form + + + + Received from Bob + + + + + 18/05/18 + + + + + +0.000585 PIV + + + + + WalletModel + + + + + Send Coins + Send Coins + + + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + + + + + WalletPasswordDialog + + + Dialog + + + + + + + TextLabel + + + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + + + CANCEL + + + + + OK + + + + + WelcomeContentWidget + + + Dialog + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + Language + + + + + Welcome + Welcome + + + + Privacy + + + + + Masternodes + + + + + Select your language + + + + + Welcome to +PIVX Core Wallet + + + + + PIVX is the world’s most innovative Proof of Stake blockchain based technology. Developed by a team of highly experienced developers and cryptographers. + + + + + <html><head/><body><p>As our manifesto says: Privacy is a non-negotiable basic human right; it grants users the freedom to share their data whenever and with whomever they want - PIVX believes in self sovereignty.</p></body></html> + + + + + The masternode network is PIVX's second layer network on top of the blockchain that enables our DAO to provide decentralized governance and a treasury. + + + + + How PIVX respects your privacy? + + + + + What is a Masternode? + + + + + default + default + + + + ZPivControlDialog + + + Select zPIV to Spend + + + + + Coin Control + + + + + PushButton + + + + + zPiv + + + + + 0.00 + + + + + Quantity: + Quantity: + + + + Is Spendable + + + + + 0 + + + + + Select/Deselect All + + + + + Select zPIV Denominations to Spend + + + + + pivx-core + + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + + + + Calculated accumulator checkpoint is not what is recorded by block index + + + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + + + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + + + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + + + + Enable automatic Zerocoin minting from specific addresses (0-1, default: %u) + + + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + + + + + Enable cold staking functionality (0-1, default: %u). Disabled if staking=0 + + + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + + + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + + + + + Enable spork administration functionality with the appropriate private key. + + + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + + + + Error: Listening for incoming connections failed (listen returned error %s) + Error: Listening for incoming connections failed (listen returned error %s) + + + + Error: The transaction is larger than the maximum allowed transaction size! + + + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Execute command when the best block changes (%s in cmd is replaced by block hash) + + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + + + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + + + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + + + + In this mode -genproclimit controls how many blocks are generated immediately. + In this mode -genproclimit controls how many blocks are generated immediately. + + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + + + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + + + + Keep the specified amount available for spending at all times (default: 0) + + + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Log transaction priority and fee per kB when mining blocks (default: %u) + + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + + + + Maximum average size of an index occurrence in the block spam filter (default: %u) + + + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maximum size of data in data carrier transactions we relay and mine (default: %u) + + + + Maximum size of the list of indexes in the block spam filter (default: %u) + + + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + + + + + Output debugging information (default: %u, supplying <category> is optional) + Output debugging information (default: %u, supplying <category> is optional) + + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + + + + + Require high priority for relaying free or low-fee transactions (default:%u) + Require high priority for relaying free or low-fee transactions (default:%u) + + + + Send trace/debug info to console instead of debug.log file (default: %u) + Send trace/debug info to console instead of debug.log file (default: %u) + + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + + + + Set the number of included blocks to precompute per cycle. (minimum: %d) (maximum: %d) (default: %d) + + + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + + + + Support filtering of blocks and transaction with bloom filters (default: %u) + + + + + The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct + + + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + + + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + + + + + Unable to locate enough Obfuscation denominated funds for this transaction. + + + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + + + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + + + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + + + + Warning: Peers are being disconnected due time differences. Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + + + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + + + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + + + + (51472 could be used only on mainnet) + (51472 could be used only on mainnet) + + + + (default: %s) + (default: %s) + + + + (default: 1) + (default: 1) + + + + (must be 51472 for mainnet) + + + + + Accept command line and JSON-RPC commands + Accept command line and JSON-RPC commands + + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Accept connections from outside (default: 1 if no -proxy or -connect) + + + + Accept public REST requests (default: %u) + Accept public REST requests (default: %u) + + + + Add a node to connect to and attempt to keep the connection open + Add a node to connect to and attempt to keep the connection open + + + + Adding Wrapped Serials supply... + + + + + Allow DNS lookups for -addnode, -seednode and -connect + Allow DNS lookups for -addnode, -seednode and -connect + + + + Always query for peer addresses via DNS lookup (default: %u) + Always query for peer addresses via DNS lookup (default: %u) + + + + Append comment to the user agent string + + + + + Attempt to recover private keys from a corrupt wallet.dat + Attempt to recover private keys from a corrupt wallet.dat + + + + Automatically create Tor hidden service (default: %d) + + + + + Block creation options: + Block creation options: + + + + Calculating missing accumulators... + + + + + Cannot downgrade wallet + Cannot downgrade wallet + + + + Cannot resolve -bind address: '%s' + Cannot resolve -bind address: '%s' + + + + Cannot resolve -externalip address: '%s' + Cannot resolve -externalip address: '%s' + + + + Cannot resolve -whitebind address: '%s' + Cannot resolve -whitebind address: '%s' + + + + CoinSpend: failed check + + + + + Connect only to the specified node(s) + Connect only to the specified node(s) + + + + Connect through SOCKS5 proxy + Connect through SOCKS5 proxy + + + + Connect to a node to retrieve peer addresses, and disconnect + Connect to a node to retrieve peer addresses, and disconnect + + + + Connection options: + Connection options: + + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Core Developers + + + + Copyright (C) 2014-%i The Dash Core Developers + + + + + Copyright (C) 2015-%i The PIVX Core Developers + + + + + Corrupted block database detected + Corrupted block database detected + + + + Could not parse masternode.conf + Could not parse masternode.conf + + + + Couldn't generate the accumulator witness + + + + + Debugging/Testing options: + Debugging/Testing options: + + + + Delete blockchain folders and resync from scratch + + + + + Disable OS notifications for incoming transactions (default: %u) + + + + + Disable safemode, override a real safe mode event (default: %u) + Disable safemode, override a real safe mode event (default: %u) + + + + Discover own IP address (default: 1 when listening and no -externalip) + Discover own IP address (default: 1 when listening and no -externalip) + + + + Do not load the wallet and disable wallet RPC calls + Do not load the wallet and disable wallet RPC calls + + + + Do you want to rebuild the block database now? + Do you want to rebuild the block database now? + + + + Done loading + Done loading + + + + Enable automatic Zerocoin minting (0-1, default: %u) + + + + + Enable precomputation of zPIV spends and stakes (0-1, default %u) + + + + + Enable publish hash transaction (locked via SwiftX) in <address> + + + + + Enable publish raw transaction (locked via SwiftX) in <address> + + + + + Enable the client to act as a masternode (0-1, default: %u) + Enable the client to act as a masternode (0-1, default: %u) + + + + Error initializing block database + Error initializing block database + + + + Error initializing wallet database environment %s! + Error initializing wallet database environment %s! + + + + Error loading block database + Error loading block database + + + + Error loading wallet.dat + Error loading wallet.dat + + + + Error loading wallet.dat: Wallet corrupted + Error loading wallet.dat: Wallet corrupted + + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + + + + + Error opening block database + Error opening block database + + + + Error reading from database, shutting down. + Error reading from database, shutting down. + + + + Error writing zerocoinDB to disk + + + + + Error + Error + + + + Error: A fatal internal error occured, see debug.log for details + Error: A fatal internal error occured, see debug.log for details + + + + Error: Disk space is low! + Error: Disk space is low! + + + + Error: Unsupported argument -tor found, use -onion. + Error: Unsupported argument -tor found, use -onion. + + + + Error: Wallet locked, unable to create transaction! + Error: Wallet locked, unable to create transaction! + + + + Failed to calculate accumulator checkpoint + + + + + Failed to listen on any port. Use -listen=0 if you want this. + Failed to listen on any port. Use -listen=0 if you want this. + + + + Failed to parse host:port string + + + + + Failed to read block + Failed to read block + + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + + + + + Force safe mode (default: %u) + Force safe mode (default: %u) + + + + Generate coins (default: %u) + Generate coins (default: %u) + + + + How many blocks to check at startup (default: %u, 0 = all) + How many blocks to check at startup (default: %u, 0 = all) + + + + If <category> is not supplied, output all debugging information. + If <category> is not supplied, output all debugging information. + + + + Importing... + Importing... + + + + Imports blocks from external blk000??.dat file + Imports blocks from external blk000??.dat file + + + + Include IP addresses in debug output (default: %u) + Include IP addresses in debug output (default: %u) + + + + Incorrect or no genesis block found. Wrong datadir for network? + Incorrect or no genesis block found. Wrong datadir for network? + + + + Information + Information + + + + Initialization sanity check failed. PIVX Core is shutting down. + + + + + Insufficient funds + + + + + Insufficient funds. + Insufficient funds. + + + + Invalid -onion address or hostname: '%s' + + + + + Invalid amount for -maxtxfee=<amount>: '%s' + Invalid amount for -maxtxfee=<amount>: '%s' + + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Invalid amount for -minrelaytxfee=<amount>: '%s' + + + + Invalid amount for -mintxfee=<amount>: '%s' + Invalid amount for -mintxfee=<amount>: '%s' + + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + + + + Invalid amount for -paytxfee=<amount>: '%s' + Invalid amount for -paytxfee=<amount>: '%s' + + + + Invalid amount for -reservebalance=<amount> + + + + + Invalid amount + + + + + Invalid masternodeprivkey. Please see documenation. + Invalid masternodeprivkey. Please see documenation. + + + + Invalid netmask specified in -whitelist: '%s' + Invalid netmask specified in -whitelist: '%s' + + + + Invalid port detected in masternode.conf + Invalid port detected in masternode.conf + + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + + + + + Recalculating PIV supply... + + + + + Recalculating minted ZPIV... + + + + + Recalculating spent ZPIV... + + + + + Reindex the PIV and zPIV money supply statistics + + + + + Reindexing zerocoin database... + + + + + Reindexing zerocoin failed + + + + + Selected coins value is less than payment target + + + + + Support the zerocoin light node protocol (default: %u) + + + + + SwiftX options: + + + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + + + + + mints deleted + + + + + + mints updated, + + + + + unconfirmed transactions removed + + + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + + + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + + + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + + + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + + + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + + + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + + + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + + + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + + + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + + + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + + + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + + + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + + + + + <category> can be: + + + + + Attempt to force blockchain corruption recovery + + + + + Cannot create public spend input + + + + + CoinSpend: Accumulator witness does not verify + + + + + Display the stake modifier calculations in the debug.log file. + + + + + Display verbose coin stake messages in the debug.log file. + + + + + Enable publish hash block in <address> + + + + + Enable publish hash transaction in <address> + + + + + Enable publish raw block in <address> + + + + + Enable publish raw transaction in <address> + + + + + Enable staking functionality (0-1, default: %u) + + + + + Error: A fatal internal error occurred, see debug.log for details + + + + + Error: No valid utxo! + + + + + Failed to create mint + + + + + Failed to find Zerocoins in wallet.dat + + + + + Failed to parse public spend + + + + + Failed to select a zerocoin + + + + + Failed to wipe zerocoinDB + + + + + Failed to write coin serial number into wallet + + + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Keep at most <n> unconnectable transactions in memory (default: %u) + + + + Limit size of signature cache to <n> entries (default: %u) + Limit size of signature cache to <n> entries (default: %u) + + + + Line: %d + Line: %d + + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + + + + Listen for connections on <port> (default: %u or testnet: %u) + Listen for connections on <port> (default: %u or testnet: %u) + + + + Loading addresses... + Loading addresses... + + + + Loading block index... + Loading block index... + + + + Loading budget cache... + Loading budget cache... + + + + Loading masternode cache... + Loading masternode cache... + + + + Loading masternode payment cache... + Loading masternode payment cache... + + + + Loading sporks... + + + + + Loading wallet... (%3.2f %%) + Loading wallet... (%3.2f %%) + + + + Loading wallet... + Loading wallet... + + + + Location of the auth cookie (default: data dir) + + + + + Lock masternodes from masternode configuration file (default: %u) + Lock masternodes from masternode configuration file (default: %u) + + + + Lookup(): Invalid -proxy address or hostname: '%s' + + + + + Maintain at most <n> connections to peers (default: %u) + Maintain at most <n> connections to peers (default: %u) + + + + Masternode options: + Masternode options: + + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + + + + Mint did not make it into blockchain + + + + + Need to specify a port with -whitebind: '%s' + Need to specify a port with -whitebind: '%s' + + + + Node relay options: + Node relay options: + + + + Not enough file descriptors available. + Not enough file descriptors available. + + + + Number of automatic wallet backups (default: 10) + Number of automatic wallet backups (default: 10) + + + + Number of custom location backups to retain (default: %d) + + + + + Only accept block chain matching built-in checkpoints (default: %u) + Only accept block chain matching built-in checkpoints (default: %u) + + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + + + + Options: + Options: + + + + Password for JSON-RPC connections + Password for JSON-RPC connections + + + + Unable to find transaction containing mint %s + + + + + Unable to find transaction containing mint, txHash: %s + + + + + Use block spam filter (default: %u) + + + + + could not get lock on cs_spendcache + + + + + isValid(): Invalid -proxy address or hostname: '%s' + + + + + Preparing for resync... + + + + + Need destination or change address because change is not exact + + + + + Prepend debug output with timestamp (default: %u) + Prepend debug output with timestamp (default: %u) + + + + Print version and exit + + + + + Pubcoin not found in mint tx + + + + + RPC server options: + RPC server options: + + + + Randomly drop 1 of every <n> network messages + Randomly drop 1 of every <n> network messages + + + + Randomly fuzz 1 of every <n> network messages + Randomly fuzz 1 of every <n> network messages + + + + Rebuild block chain index from current blk000??.dat files + Rebuild block chain index from current blk000??.dat files + + + + Receive and display P2P network alerts (default: %u) + Receive and display P2P network alerts (default: %u) + + + + Reindex the accumulator database + + + + + Relay and mine data carrier transactions (default: %u) + Relay and mine data carrier transactions (default: %u) + + + + Relay non-P2SH multisig (default: %u) + Relay non-P2SH multisig (default: %u) + + + + Rescan the block chain for missing wallet transactions + Rescan the block chain for missing wallet transactions + + + + Rescanning... + Rescanning... + + + + ResetMintZerocoin finished: + + + + + ResetSpentZerocoin finished: + + + + + Run a thread to flush wallet periodically (default: %u) + Run a thread to flush wallet periodically (default: %u) + + + + Run in the background as a daemon and accept commands + Run in the background as a daemon and accept commands + + + + Send transactions as zero-fee transactions if possible (default: %u) + Send transactions as zero-fee transactions if possible (default: %u) + + + + Session timed out. + Session timed out. + + + + Set database cache size in megabytes (%d to %d, default: %d) + Set database cache size in megabytes (%d to %d, default: %d) + + + + Set external address:port to get to this masternode (example: %s) + Set external address:port to get to this masternode (example: %s) + + + + Set key pool size to <n> (default: %u) + Set key pool size to <n> (default: %u) + + + + Set maximum block size in bytes (default: %d) + Set maximum block size in bytes (default: %d) + + + + Set minimum block size in bytes (default: %u) + Set minimum block size in bytes (default: %u) + + + + Set the Maximum reorg depth (default: %u) + + + + + Set the masternode private key + Set the masternode private key + + + + Set the number of threads to service RPC calls (default: %d) + Set the number of threads to service RPC calls (default: %d) + + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + + + + Show all debugging options (usage: --help -help-debug) + Show all debugging options (usage: --help -help-debug) + + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Shrink debug.log file on client startup (default: 1 when no -debug) + + + + Signing timed out. + Signing timed out. + + + + Signing transaction failed + Signing transaction failed + + + + Specify configuration file (default: %s) + Specify configuration file (default: %s) + + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Specify connection timeout in milliseconds (minimum: 1, default: %d) + + + + Specify data directory + Specify data directory + + + + Specify masternode configuration file (default: %s) + Specify masternode configuration file (default: %s) + + + + Specify pid file (default: %s) + Specify pid file (default: %s) + + + + Specify wallet file (within data directory) + Specify wallet file (within data directory) + + + + Specify your own public address + Specify your own public address + + + + Spend Valid + + + + + Spend unconfirmed change when sending transactions (default: %u) + Spend unconfirmed change when sending transactions (default: %u) + + + + Staking options: + + + + + Stop running after importing blocks from disk (default: %u) + Stop running after importing blocks from disk (default: %u) + + + + Synchronization failed + Synchronization failed + + + + Synchronization finished + Synchronization finished + + + + Synchronization pending... + Synchronization pending... + + + + Synchronizing budgets... + Synchronizing budgets... + + + + Synchronizing masternode winners... + Synchronizing masternode winners... + + + + Synchronizing masternodes... + Synchronizing masternodes... + + + + Synchronizing sporks... + Synchronizing sporks... + + + + Syncing zPIV wallet... + + + + + The coin spend has been used + + + + + The transaction did not verify + + + + + This help message + This help message + + + + This is experimental software. + This is experimental software. + + + + This is intended for regression testing tools and app development. + This is intended for regression testing tools and app development. + + + + Threshold for disconnecting misbehaving peers (default: %u) + Threshold for disconnecting misbehaving peers (default: %u) + + + + Too many spends needed + + + + + Tor control port password (default: empty) + + + + + Tor control port to use if onion listening enabled (default: %s) + + + + + Transaction Created + + + + + Transaction Mint Started + + + + + Transaction amount too small + Transaction amount too small + + + + Transaction amounts must be positive + Transaction amounts must be positive + + + + Transaction too large for fee policy + Transaction too large for fee policy + + + + Transaction too large + Transaction too large + + + + Trying to spend an already spent serial #, try again. + + + + + Unable to bind to %s on this computer (bind returned error %s) + Unable to bind to %s on this computer (bind returned error %s) + + + + Unable to generate initial key + + + + + Unable to sign spork message, wrong key? + Unable to sign spork message, wrong key? + + + + Unable to start HTTP server. See debug log for details. + + + + + Unknown network specified in -onlynet: '%s' + Unknown network specified in -onlynet: '%s' + + + + Upgrade wallet to latest format + Upgrade wallet to latest format + + + + Use UPnP to map the listening port (default: %u) + Use UPnP to map the listening port (default: %u) + + + + Use UPnP to map the listening port (default: 1 when listening) + Use UPnP to map the listening port (default: 1 when listening) + + + + Use a custom max chain reorganization depth (default: %u) + + + + + Use the test network + Use the test network + + + + User Agent comment (%s) contains unsafe characters. + + + + + Username for JSON-RPC connections + Username for JSON-RPC connections + + + + Value is below the smallest available denomination (= 1) of zPIV + + + + + Verifying blocks... + Verifying blocks... + + + + Verifying wallet... + Verifying wallet... + + + + Wallet %s resides outside data directory %s + Wallet %s resides outside data directory %s + + + + Wallet needed to be rewritten: restart PIVX Core to complete + + + + + Wallet options: + Wallet options: + + + + Wallet window title + Wallet window title + + + + Warning + Warning + + + + Warning: This version is obsolete, upgrade required! + Warning: This version is obsolete, upgrade required! + + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Warning: Unsupported argument -debugnet ignored, use -debug=net. + + + + You don't have enough Zerocoins in your wallet + + + + + You need to rebuild the database using -reindex to change -txindex + You need to rebuild the database using -reindex to change -txindex + + + + Zapping all transactions from wallet... + Zapping all transactions from wallet... + + + + ZeroMQ notification options: + + + + + Zerocoin options: + + + + + on startup + on startup + + + + wallet.dat corrupt, salvage failed + wallet.dat corrupt, salvage failed + + + + send + + + Form + Form + + + + Send + + + + + + + + + + + + TextLabel + + + + + + + + PushButton + + + + diff --git a/src/qt/locale/pivx_en_GB.ts b/src/qt/locale/pivx_en_GB.ts new file mode 100644 index 0000000..16d4999 --- /dev/null +++ b/src/qt/locale/pivx_en_GB.ts @@ -0,0 +1,4257 @@ + + + AddNewAddressDialog + + Address + Address + + + + AddNewContactDialog + + TextLabel + TextLabel + + + + AddressBookPage + + Right-click to edit address or label + Right-click to edit address or label + + + Create a new address + Create a new address + + + &New + &New + + + Copy the currently selected address to the system clipboard + Copy the currently selected address to the system clipboard + + + &Copy + &Copy + + + Delete the currently selected address from the list + Delete the currently selected address from the list + + + &Delete + &Delete + + + Export the data in the current tab to a file + Export the data in the current tab to a file + + + &Export + &Export + + + C&lose + C&lose + + + Choose the address to send coins to + Choose the address to send coins to + + + Choose the address to receive coins with + Choose the address to receive coins with + + + C&hoose + C&hoose + + + Sending addresses + Sending addresses + + + Receiving addresses + Receiving addresses + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + + + &Copy Address + &Copy Address + + + Copy &Label + Copy &Label + + + &Edit + &Edit + + + Export Address List + Export Address List + + + Comma separated file (*.csv) + Comma separated file (*.csv) + + + Exporting Failed + Exporting Failed + + + There was an error trying to save the address list to %1. Please try again. + There was an error trying to save the address list to %1. Please try again. + + + + AddressLabelRow + + Form + Form + + + + AddressTableModel + + Label + Label + + + Address + Address + + + Date + Date + + + (no label) + (no label) + + + + AddressesWidget + + Form + Form + + + TextLabel + TextLabel + + + + AskPassphraseDialog + + Passphrase Dialog + Passphrase Dialog + + + TextLabel + TextLabel + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + + + Encrypt wallet + Encrypt wallet + + + This operation needs your wallet passphrase to unlock the wallet. + This operation needs your wallet passphrase to unlock the wallet. + + + Unlock wallet + Unlock wallet + + + This operation needs your wallet passphrase to decrypt the wallet. + This operation needs your wallet passphrase to decrypt the wallet. + + + Decrypt wallet + Decrypt wallet + + + Change passphrase + Change passphrase + + + Enter the old and new passphrase to the wallet. + Enter the old and new passphrase to the wallet. + + + Confirm wallet encryption + Confirm wallet encryption + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + + + Are you sure you wish to encrypt your wallet? + Are you sure you wish to encrypt your wallet? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + + + Wallet encrypted + Wallet encrypted + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + + + Wallet encryption failed + Wallet encryption failed + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + + + The supplied passphrases do not match. + The supplied passphrases do not match. + + + Wallet unlock failed + Wallet unlock failed + + + The passphrase entered for the wallet decryption was incorrect. + The passphrase entered for the wallet decryption was incorrect. + + + Wallet decryption failed + Wallet decryption failed + + + Wallet passphrase was successfully changed. + Wallet passphrase was successfully changed. + + + Warning: The Caps Lock key is on! + Warning: The Caps Lock key is on! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + Banned Until + + + + BlockExplorer + + Blockchain Explorer + Blockchain Explorer + + + Back + Back + + + Forward + Forward + + + Address / Block / Transaction + Address / Block / Transaction + + + Search + Search + + + TextLabel + TextLabel + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + + + + CSRow + + Form + Form + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + + + Network Alert + Network Alert + + + + CoinControlDialog + + Quantity: + Quantity: + + + Bytes: + Bytes: + + + Fee: + Fee: + + + Coin Selection + Coin Selection + + + Dust: + Dust: + + + Change: + Change: + + + Tree mode + Tree mode + + + List mode + List mode + + + (1 locked) + (1 locked) + + + Amount + Amount + + + 0 + 0 + + + Received with label + Received with label + + + Received with address + Received with address + + + Date + Date + + + Confirmations + Confirmations + + + Confirmed + Confirmed + + + Copy address + Copy address + + + Copy label + Copy label + + + Copy amount + Copy amount + + + Copy transaction ID + Copy transaction ID + + + Lock unspent + Lock unspent + + + Unlock unspent + Unlock unspent + + + Copy quantity + Copy quantity + + + Copy fee + Copy fee + + + Copy after fee + Copy after fee + + + Copy bytes + Copy bytes + + + Copy priority + Copy priority + + + Copy dust + Copy dust + + + Copy change + Copy change + + + Please switch to "List mode" to use this function. + Please switch to "List mode" to use this function. + + + highest + highest + + + higher + higher + + + high + high + + + medium-high + medium-high + + + medium + medium + + + low-medium + low-medium + + + low + low + + + lower + lower + + + lowest + lowest + + + (%1 locked) + (%1 locked) + + + none + none + + + yes + yes + + + no + no + + + This label turns red, if the transaction size is greater than 1000 bytes. + This label turns red if the transaction size is greater than 1000 bytes. + + + This means a fee of at least %1 per kB is required. + This means a fee of at least %1 per kB is required. + + + Can vary +/- 1 byte per input. + Can vary +/- 1 byte per input. + + + Transactions with higher priority are more likely to get included into a block. + Transactions with higher priority are more likely to get included into a block. + + + This label turns red, if the priority is smaller than "medium". + This label turns red if the priority is smaller than "medium". + + + This label turns red, if any recipient receives an amount smaller than %1. + This label turns red if any recipient receives an amount smaller than %1. + + + Can vary +/- %1 upiv per input. + Can vary +/- %1 upiv per input. + + + (no label) + (no label) + + + change from %1 (%2) + change from %1 (%2) + + + (change) + (change) + + + + CoinControlPivWidget + + TextLabel + TextLabel + + + Quantity: + Quantity: + + + Fee: + Fee: + + + Amount + Amount + + + Label + Label + + + Address + Address + + + Type + Type + + + Date + Date + + + Confirmations + Confirmations + + + Bytes: + Bytes: + + + Dust: + Dust: + + + Change: + Change: + + + + ColdStakingWidget + + Form + Form + + + TextLabel + TextLabel + + + + ContactDropdownRow + + Form + Form + + + + DashboardWidget + + Form + Form + + + Warning + Warning + + + TextLabel + TextLabel + + + zPIV + zPIV + + + All + All + + + Received + Received + + + Sent + Sent + + + Mined + Mined + + + Minted + Minted + + + To yourself + To yourself + + + + DefaultDialog + + Form + Form + + + + DenomGenerationDialog + + Form + Form + + + + EditAddressDialog + + Edit Address + Edit Address + + + &Label + &Label + + + The label associated with this address list entry + The label associated with this address list entry + + + &Address + &Address + + + The address associated with this address list entry. This can only be modified for sending addresses. + The address associated with this address list entry. This can only be modified for sending addresses. + + + New receiving address + New receiving address + + + New sending address + New sending address + + + Edit receiving address + Edit receiving address + + + Edit sending address + Edit sending address + + + The entered address "%1" is not a valid PIVX address. + The entered address "%1" is not a valid PIVX address. + + + The entered address "%1" is already in the address book. + The entered address "%1" is already in the address book. + + + Could not unlock wallet. + Could not unlock wallet. + + + New key generation failed. + New key generation failed. + + + + ExpandableButton + + Form + Form + + + + FreespaceChecker + + A new data directory will be created. + A new data directory will be created. + + + name + name + + + Directory already exists. Add %1 if you intend to create a new directory here. + Directory already exists. Add %1 if you intend to create a new directory here. + + + Path already exists, and is not a directory. + Path already exists and is not a directory. + + + Cannot create data directory here. + Cannot create data directory here. + + + + GovernancePage + + Form + Form + + + 0 + 0 + + + + HelpMessageDialog + + version + version + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + About PIVX Core + + + Command-line options + Command-line options + + + Usage: + Usage: + + + command-line options + command-line options + + + UI Options: + UI Options: + + + Choose data directory on startup (default: %u) + Choose data directory on start up (default: %u) + + + Show splash screen on startup (default: %u) + Show splash screen on start up (default: %u) + + + Set language, for example "de_DE" (default: system locale) + Set language, for example "de_DE" (default: system locale) + + + Start minimized + Start minimised + + + Set SSL root certificates for payment request (default: -system-) + Set SSL root certificates for payment request (default: -system-) + + + + Intro + + Welcome + Welcome + + + Welcome to PIVX Core. + Welcome to PIVX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + + + Use the default data directory + Use the default data directory + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Error: Specified data directory "%1" cannot be created. + + + Error + Error + + + %1 GB of free space available + %1 GB of free space available + + + (of %1 GB needed) + (of %1 GB needed) + + + + LoadingDialog + + Form + Form + + + TextLabel + TextLabel + + + + LockUnlock + + Form + Form + + + + MNRow + + Form + Form + + + + MasterNodeWizardDialog + + Name + Name + + + Address + Address + + + The recipient address is not valid, please recheck. + The recipient address is not valid, please recheck. + + + The amount to pay must be larger than 0. + The amount to pay must be larger than 0. + + + The amount exceeds your balance. + The amount exceeds your balance. + + + The total exceeds your balance when the %1 transaction fee is included. + The total exceeds your balance when the %1 transaction fee is included. + + + Duplicate address found, can only send to each address once per send operation. + Duplicate address found, can only send to each address once per send operation. + + + Transaction creation failed! + Transaction creation failed! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + + + Error: The wallet was unlocked only to anonymize coins. + Error: The wallet was unlocked only to anonymise coins. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + A fee %1 times higher than %2 per kB is considered an insanely high fee. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Error: The wallet was unlocked only to anonymise coins. Unlock cancelled. + + + + MasterNodesWidget + + Form + Form + + + TextLabel + TextLabel + + + Delete + Delete + + + + MnInfoDialog + + Form + Form + + + Status: + Status: + + + + MyAddressRow + + Form + Form + + + + NavMenuWidget + + Form + Form + + + + OpenURIDialog + + Open URI + Open URI + + + Open payment request from URI or file + Open payment request from URI or file + + + TextLabel + TextLabel + + + Select payment request file + Select payment request file + + + Select payment request file to open + Select payment request file to open + + + + OptionButton + + Form + Form + + + TextLabel + TextLabel + + + + OptionsDialog + + Options + Options + + + &Main + &Main + + + Size of &database cache + Size of &database cache + + + MB + MB + + + Number of script &verification threads + Number of script &verification threads + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = leave that many cores free) + + + W&allet + W&allet + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + + + Accept connections from outside + Accept connections from outside + + + Allow incoming connections + Allow incoming connections + + + &Connect through SOCKS5 proxy (default proxy): + &Connect through SOCKS5 proxy (default proxy): + + + Expert + Expert + + + Automatically start PIVX after logging in to the system. + Automatically start PIVX after logging in to the system. + + + &Start PIVX on system login + &Start PIVX on system login + + + Whether to show coin control features or not. + Whether to show coin control features or not. + + + Enable coin &control features + Enable coin &control features + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + + + Show Masternodes Tab + Show Masternodes Tab + + + &Spend unconfirmed change + &Spend unconfirmed change + + + &Network + &Network + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + The user interface language can be set here. This setting will take effect after restarting PIVX. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Map port using &UPnP + + + Enable automatic minting of PIV units to zPIV + Enable automatic minting of PIV units to zPIV + + + Enable zPIV Automint + Enable zPIV Automint + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + + + Percentage of autominted zPIV + Percentage of autominted zPIV + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + + + Preferred Automint zPIV Denomination + Preferred Automint zPIV Denomination + + + Stake split threshold: + Stake split threshold: + + + Connect to the PIVX network through a SOCKS5 proxy. + Connect to the PIVX network through a SOCKS5 proxy. + + + Proxy &IP: + Proxy &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Port: + + + Port of the proxy (e.g. 9050) + Port of the proxy (e.g. 9050) + + + &Window + &Window + + + Show only a tray icon after minimizing the window. + Show only a tray icon after minimising the window. + + + &Minimize to the tray instead of the taskbar + &Minimise to the tray instead of the taskbar + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Minimise instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + + + M&inimize on close + M&inimise on close + + + &Display + &Display + + + User Interface &language: + User Interface &language: + + + User Interface Theme: + User Interface Theme: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Choose the default subdivision unit to show in the interface and when sending coins. + + + Decimal digits + Decimal digits + + + Hide empty balances + Hide empty balances + + + Hide orphan stakes in transaction lists + Hide orphan stakes in transaction lists + + + Hide orphan stakes + Hide orphan stakes + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + + + Third party transaction URLs + Third party transaction URLs + + + Active command-line options that override above options: + Active command-line options that override above options: + + + Reset all client options to default. + Reset all client options to default. + + + &Reset Options + &Reset Options + + + &OK + &OK + + + &Cancel + &Cancel + + + Any + Any + + + default + default + + + none + none + + + Confirm options reset + Confirm options reset + + + Client restart required to activate changes. + Client restart required to activate changes. + + + Client will be shutdown, do you want to proceed? + Client will be shut down, do you want to proceed? + + + This change would require a client restart. + This change would require a client restart. + + + The supplied proxy address is invalid. + The supplied proxy address is invalid. + + + The supplied proxy port is invalid. + The supplied proxy port is invalid. + + + The supplied proxy settings are invalid. + The supplied proxy settings are invalid. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + Wallet + + + Node + Node + + + &Show / Hide + &Show / Hide + + + Show or hide the main Window + Show or hide the main Window + + + E&xit + E&xit + + + Quit application + Quit application + + + PIVX Core client + PIVX Core client + + + Error + Error + + + Warning + Warning + + + Information + Information + + + Sent MultiSend transaction + Sent MultiSend transaction + + + Sent transaction + Sent transaction + + + Incoming transaction + Incoming transaction + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + + + + PWidget + + + PaymentServer + + Payment request error + Payment request error + + + URI handling + URI handling + + + Payment request fetch URL is invalid: %1 + Payment request fetch URL is invalid: %1 + + + Payment request file handling + Payment request file handling + + + Invalid payment address %1 + Invalid payment address %1 + + + Cannot start pivx: click-to-pay handler + Cannot start pivx: click-to-pay handler + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Payment request file cannot be read! This can be caused by an invalid payment request file. + + + Payment request rejected + Payment request rejected + + + Payment request network doesn't match client network. + Payment request network doesn't match client network. + + + Payment request has expired. + Payment request has expired. + + + Payment request is not initialized. + Payment request is not initialised. + + + Unverified payment requests to custom payment scripts are unsupported. + Unverified payment requests to custom payment scripts are unsupported. + + + Requested payment amount of %1 is too small (considered dust). + Requested payment amount of %1 is too small (considered dust). + + + Refund from %1 + Refund from %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + + + Payment request DoS protection + Payment request DoS protection + + + Error communicating with %1: %2 + Error communicating with %1: %2 + + + Payment request cannot be parsed! + Payment request cannot be parsed! + + + Bad response from server %1 + Bad response from server %1 + + + Network request error + Network request error + + + Payment acknowledged + Payment acknowledged + + + + PeerTableModel + + Address/Hostname + Address/Hostname + + + Version + Version + + + Ping Time + Ping Time + + + + PrivacyWidget + + Form + Form + + + TextLabel + TextLabel + + + + ProposalFrame + + + QObject + + Amount + Amount + + + Enter a PIVX address (e.g. %1) + Enter a PIVX address (e.g. %1) + + + %1 d + %1 d + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + NETWORK + + + BLOOM + BLOOM + + + UNKNOWN + UNKNOWN + + + None + None + + + N/A + N/A + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + + RPCConsole + + Tools window + Tools window + + + &Information + &Information + + + General + General + + + Name + Name + + + Client name + Client name + + + N/A + N/A + + + Number of connections + Number of connections + + + &Open + &Open + + + Startup time + Start up time + + + Network + Network + + + Last block time + Last block time + + + Debug log file + Debug log file + + + Build date + Build date + + + Current number of blocks + Current number of blocks + + + Client version + Client version + + + Using BerkeleyDB version + Using BerkeleyDB version + + + Block chain + Block chain + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + + + Number of Masternodes + Number of Masternodes + + + &Console + &Console + + + Clear console + Clear console + + + &Network Traffic + &Network Traffic + + + &Clear + &Clear + + + Totals + Totals + + + Received + Received + + + Sent + Sent + + + &Peers + &Peers + + + Banned peers + Banned peers + + + Select a peer to view detailed information. + Select a peer to view detailed information. + + + Whitelisted + Whitelisted + + + Direction + Direction + + + Protocol + Protocol + + + Version + Version + + + Services + Services + + + Ban Score + Ban Score + + + Connection Time + Connection Time + + + Last Send + Last Send + + + Last Receive + Last Receive + + + Bytes Sent + Bytes Sent + + + Bytes Received + Bytes Received + + + Ping Time + Ping Time + + + &Wallet Repair + &Wallet Repair + + + Delete local Blockchain Folders + Delete local Blockchain Folders + + + Wallet In Use: + Wallet In Use: + + + Starting Block + Starting Block + + + Synced Headers + Synced Headers + + + Synced Blocks + Synced Blocks + + + The duration of a currently outstanding ping. + The duration of a currently outstanding ping. + + + Ping Wait + Ping Wait + + + Time Offset + Time Offset + + + Custom Backup Path: + Custom Backup Path: + + + Custom zPIV Backup Path: + Custom zPIV Backup Path: + + + Custom Backups Threshold: + Custom Backups Threshold: + + + Salvage wallet + Salvage wallet + + + Attempt to recover private keys from a corrupt wallet.dat. + Attempt to recover private keys from a corrupt wallet.dat. + + + Rescan blockchain files + Rescan blockchain files + + + Rescan the block chain for missing wallet transactions. + Rescan the block chain for missing wallet transactions. + + + Recover transactions 1 + Recover transactions 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Recover transactions from blockchain (keep meta-data, e.g. account owner). + + + Recover transactions 2 + Recover transactions 2 + + + Recover transactions from blockchain (drop meta-data). + Recover transactions from blockchain (drop meta-data). + + + Upgrade wallet format + Upgrade wallet format + + + Rebuild block chain index from current blk000??.dat files. + Rebuild block chain index from current blk000??.dat files. + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Deletes all local blockchain folders so the wallet synchronises from scratch. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. + + + Wallet repair options. + Wallet repair options. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Upgrade wallet to latest format on start up. (Note: this is NOT an update of the wallet itself!) + + + Rebuild index + Rebuild index + + + In: + In: + + + Out: + Out: + + + Welcome to the PIVX RPC console. + Welcome to the PIVX RPC console. + + + &Disconnect Node + &Disconnect Node + + + Ban Node for + Ban Node for + + + 1 &hour + 1 &hour + + + 1 &day + 1 &day + + + 1 &week + 1 &week + + + 1 &year + 1 &year + + + &Unban Node + &Unban Node + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + This will delete your local blockchain folders and the wallet will synchronise the complete Blockchain from scratch.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + This needs quite some time and downloads a lot of data.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Your transactions and funds will be visible again after the download has completed.<br /><br /> + + + Do you want to continue?.<br /> + Do you want to continue?.<br /> + + + Confirm resync Blockchain + Confirm resync Blockchain + + + Use up and down arrows to navigate history, and %1 to clear screen. + Use up and down arrows to navigate history, and %1 to clear screen. + + + Type <b>help</b> for an overview of available commands. + Type <b>help</b> for an overview of available commands. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (node id: %1) + + + via %1 + via %1 + + + never + never + + + Inbound + Inbound + + + Outbound + Outbound + + + Yes + Yes + + + No + No + + + Unknown + Unknown + + + + ReceiveDialog + + + ReceiveWidget + + Form + Form + + + TextLabel + TextLabel + + + + RecentRequestsTableModel + + Date + Date + + + Label + Label + + + Message + Message + + + Address + Address + + + Amount + Amount + + + (no label) + (no label) + + + (no message) + (no message) + + + (no amount) + (no amount) + + + + RequestDialog + + Amount + Amount + + + TextLabel + TextLabel + + + Label + Label + + + Error + Error + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + Form + Form + + + + SendMultiRow + + Form + Form + + + TextLabel + TextLabel + + + + SendWidget + + Amount + Amount + + + Spend Zerocoin + Spend Zerocoin + + + zPIV is currently undergoing maintenance. + zPIV is currently undergoing maintenance. + + + Version 1 zPIV require a security level of 100 to successfully spend. + Version 1 zPIV require a security level of 100 to successfully spend. + + + Too much inputs ( + Too much inputs ( + + + ) needed. +Maximum allowed: + ) needed. +Maximum allowed: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + + + + SettingsBackupWallet + + Form + Form + + + TextLabel + TextLabel + + + Backup Wallet + Backup Wallet + + + Wallet Data (*.dat) + Wallet Data (*.dat) + + + + SettingsBitToolWidget + + Form + Form + + + TextLabel + TextLabel + + + Import Address + Import Address + + + Clear + Clear + + + The entered passphrase is invalid. + The entered passphrase is invalid. + + + Allowed: 0-9,a-z,A-Z, + Allowed: 0-9,a-z,A-Z, + + + The entered address is invalid. + The entered address is invalid. + + + Please check the address and try again. + Please check the address and try again. + + + The entered address does not refer to a key. + The entered address does not refer to a key. + + + Wallet unlock was cancelled. + Wallet unlock was cancelled. + + + Private key for the entered address is not available. + Private key for the entered address is not available. + + + Failed to decrypt. + Failed to decrypt. + + + Please check the key and passphrase and try again. + Please check the key and passphrase and try again. + + + Data Not Valid. + Data Not Valid. + + + Please try again. + Please try again. + + + Please wait while key is imported + Please wait while key is imported + + + + SettingsConsoleWidget + + Form + Form + + + TextLabel + TextLabel + + + Welcome to the PIVX RPC console. + Welcome to the PIVX RPC console. + + + Use up and down arrows to navigate history, and %1 to clear screen. + Use up and down arrows to navigate history, and %1 to clear screen. + + + Type <b>help</b> for an overview of available commands. + Type <b>help</b> for an overview of available commands. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + + + + SettingsDisplayOptionsWidget + + Form + Form + + + TextLabel + TextLabel + + + Decimal digits + Decimal digits + + + Hide empty balances + Hide empty balances + + + default + default + + + + SettingsFaqWidget + + Form + Form + + + TextLabel + TextLabel + + + + SettingsInformationWidget + + Form + Form + + + TextLabel + TextLabel + + + Information + Information + + + General + General + + + Network + Network + + + In: + In: + + + Out: + Out: + + + + SettingsMainOptionsWidget + + Form + Form + + + TextLabel + TextLabel + + + + SettingsMultisendDialog + + Form + Form + + + TextLabel + TextLabel + + + + SettingsMultisendWidget + + Form + Form + + + TextLabel + TextLabel + + + Active + Active + + + The entered address: %1 is invalid. +Please check the address and try again. + The entered address: %1 is invalid. +Please check the address and try again. + + + The total amount of your MultiSend vector is over 100% of your stake reward + The total amount of your MultiSend vector is over 100% of your stake reward + + + MultiSend activated but writing settings to DB failed + MultiSend activated but writing settings to DB failed + + + MultiSend activated + MultiSend activated + + + MultiSend deactivated but writing settings to DB failed + MultiSend deactivated but writing settings to DB failed + + + MultiSend deactivated + MultiSend deactivated + + + + SettingsSignMessageWidgets + + Form + Form + + + TextLabel + TextLabel + + + Clear + Clear + + + Message + Message + + + Signature + Signature + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + + + The entered address is invalid. + The entered address is invalid. + + + Please check the address and try again. + Please check the address and try again. + + + The entered address does not refer to a key. + The entered address does not refer to a key. + + + Wallet unlock was cancelled. + Wallet unlock was cancelled. + + + Private key for the entered address is not available. + Private key for the entered address is not available. + + + Message signing failed. + Message signing failed. + + + Message signed. + Message signed. + + + The signature could not be decoded. + The signature could not be decoded. + + + Please check the signature and try again. + Please check the signature and try again. + + + The signature did not match the message digest. + The signature did not match the message digest. + + + Message verification failed. + Message verification failed. + + + Message verified. + Message verified. + + + + SettingsWalletOptionsWidget + + Form + Form + + + TextLabel + TextLabel + + + Wallet + Wallet + + + Stake split threshold: + Stake split threshold: + + + Network + Network + + + Allow incoming connections + Allow incoming connections + + + + SettingsWalletRepairWidget + + Form + Form + + + TextLabel + TextLabel + + + Attempt to recover private keys from a corrupt wallet.dat. + Attempt to recover private keys from a corrupt wallet.dat. + + + Recover transactions from blockchain (drop meta-data). + Recover transactions from blockchain (drop meta-data). + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Deletes all local blockchain folders so the wallet synchronises from scratch. + + + Salvage wallet + Salvage wallet + + + Recover transactions 1 + Recover transactions 1 + + + Recover transactions 2 + Recover transactions 2 + + + Upgrade wallet format + Upgrade wallet format + + + Rebuild index + Rebuild index + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + This will delete your local blockchain folders and the wallet will synchronise the complete Blockchain from scratch.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + This needs quite some time and downloads a lot of data.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Your transactions and funds will be visible again after the download has completed.<br /><br /> + + + Do you want to continue?.<br /> + Do you want to continue?.<br /> + + + Confirm resync Blockchain + Confirm resync Blockchain + + + + SettingsWidget + + Form + Form + + + TextLabel + TextLabel + + + Wallet + Wallet + + + Options + Options + + + Information + Information + + + Confirm options reset + Confirm options reset + + + Client restart required to activate changes. + Client restart required to activate changes. + + + Client will be shutdown, do you want to proceed? + Client will be shut down, do you want to proceed? + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core is shutting down... + + + Do not shut down the computer until this window disappears. + Do not shut down the computer until this window disappears. + + + + SnackBar + + Form + Form + + + + Splash + + Form + Form + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Version %1 + + + The Bitcoin Core developers + The Bitcoin Core developers + + + The Dash Core developers + The Dash Core developers + + + The PIVX Core developers + The PIVX Core developers + + + [testnet] + [testnet] + + + + TooltipMenu + + Form + Form + + + Delete + Delete + + + + TopBar + + Form + Form + + + %1 and %2 + %1 and %2 + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open until %1 + Open until %1 + + + conflicted + conflicted + + + %1/offline + %1/offline + + + %1/unconfirmed + %1/unconfirmed + + + %1 confirmations + %1 confirmations + + + %1/offline (verified via SwiftX) + %1/offline (verified via SwiftX) + + + %1/confirmed (verified via SwiftX) + %1/confirmed (verified via SwiftX) + + + %1 confirmations (verified via SwiftX) + %1 confirmations (verified via SwiftX) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + + + %1/offline (SwiftX verification failed) + %1/offline (SwiftX verification failed) + + + %1/confirmed (SwiftX verification failed) + %1/confirmed (SwiftX verification failed) + + + Status + Status + + + , has not been successfully broadcast yet + , has not been successfully broadcast yet + + + Date + Date + + + Source + Source + + + Generated + Generated + + + From + From + + + unknown + unknown + + + To + To + + + own address + own address + + + watch-only + watch-only + + + label + label + + + Credit + Credit + + + not accepted + not accepted + + + Debit + Debit + + + Total debit + Total debit + + + Total credit + Total credit + + + Transaction fee + Transaction fee + + + Net amount + Net amount + + + Message + Message + + + Comment + Comment + + + Transaction ID + Transaction ID + + + Output index + Output index + + + Merchant + Merchant + + + Debug information + Debug information + + + Transaction + Transaction + + + Inputs + Inputs + + + Amount + Amount + + + true + true + + + false + false + + + + TransactionTableModel + + Date + Date + + + Type + Type + + + Address + Address + + + Open until %1 + Open until %1 + + + Offline + Offline + + + Unconfirmed + Unconfirmed + + + Confirming (%1 of %2 recommended confirmations) + Confirming (%1 of %2 recommended confirmations) + + + Confirmed (%1 confirmations) + Confirmed (%1 confirmations) + + + Conflicted + Conflicted + + + Immature (%1 confirmations, will be available after %2) + Immature (%1 confirmations, will be available after %2) + + + This block was not received by any other nodes and will probably not be accepted! + This block was not received by any other nodes and will probably not be accepted! + + + Received with + Received with + + + Masternode Reward + Masternode Reward + + + Received from + Received from + + + Received via Obfuscation + Received via Obfuscation + + + PIV Stake + PIV Stake + + + zPIV Stake + zPIV Stake + + + Obfuscation Denominate + Obfuscation Denominate + + + Obfuscation Collateral Payment + Obfuscation Collateral Payment + + + Obfuscation Make Collateral Inputs + Obfuscation Make Collateral Inputs + + + Obfuscation Create Denominations + Obfuscation Create Denominations + + + Converted PIV to zPIV + Converted PIV to zPIV + + + Spent zPIV + Spent zPIV + + + Received PIV from zPIV + Received PIV from zPIV + + + Minted Change as zPIV from zPIV Spend + Minted Change as zPIV from zPIV Spend + + + Converted zPIV to PIV + Converted zPIV to PIV + + + Sent to + Sent to + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Orphan Block - Generated but not accepted. This does not impact your holdings. + + + Payment to yourself + Payment to yourself + + + Mined + Mined + + + Obfuscated + Obfuscated + + + watch-only + watch-only + + + (n/a) + (n/a) + + + Transaction status. Hover over this field to show number of confirmations. + Transaction status. Hover over this field to show number of confirmations. + + + Date and time that the transaction was received. + Date and time that the transaction was received. + + + Type of transaction. + Type of transaction. + + + Whether or not a watch-only address is involved in this transaction. + Whether or not a watch-only address is involved in this transaction. + + + Destination address of transaction. + Destination address of transaction. + + + Amount removed from or added to balance. + Amount removed from or added to balance. + + + + TxDetailDialog + + Form + Form + + + Fee: + Fee: + + + Status: + Status: + + + TextLabel + TextLabel + + + SEND + SEND + + + Unknown + Unknown + + + + TxRow + + Form + Form + + + + WalletModel + + Send Coins + Send Coins + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + + + + WalletPasswordDialog + + TextLabel + TextLabel + + + + WelcomeContentWidget + + Welcome + Welcome + + + default + default + + + + ZPivControlDialog + + Select zPIV to Spend + Select zPIV to Spend + + + Coin Control + Coin Control + + + Quantity: + Quantity: + + + Is Spendable + Is Spendable + + + 0 + 0 + + + Select/Deselect All + Select/Deselect All + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + + + Calculated accumulator checkpoint is not what is recorded by block index + Calculated accumulator checkpoint is not what is recorded by block index + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Change automatic finalised budget voting behaviour. mode=auto: Vote for only exact finalised budget match to my generated budget. (string, default: auto) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on start up + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + + + Enable spork administration functionality with the appropriate private key. + Enable spork administration functionality with the appropriate private key. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + + + Error: Listening for incoming connections failed (listen returned error %s) + Error: Listening for incoming connections failed (listen returned error %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Error: The transaction is larger than the maximum allowed transaction size! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible any more, only SOCKS5 proxies are supported. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Execute command when the best block changes (%s in cmd is replaced by block hash) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + In this mode -genproclimit controls how many blocks are generated immediately. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + + + Keep the specified amount available for spending at all times (default: 0) + Keep the specified amount available for spending at all times (default: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Log transaction priority and fee per kB when mining blocks (default: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Maintain a full transaction index, used by the getrawtransaction RPC call (default: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maximum size of data in data carrier transactions we relay and mine (default: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymise some more coins. + + + Output debugging information (default: %u, supplying <category> is optional) + Output debugging information (default: %u, supplying <category> is optional) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Randomise credentials for every proxy connection. This enables Tor stream isolation (default: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Require high priority for relaying free or low-fee transactions (default:%u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + Send trace/debug info to console instead of debug.log file (default: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Support filtering of blocks and transaction with bloom filters (default: %u) + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Unable to bind to %s on this computer. PIVX Core is probably already running. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Unable to locate enough Obfuscation denominated funds for this transaction. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + + + (51472 could be used only on mainnet) + (51472 could be used only on mainnet) + + + (default: %s) + (default: %s) + + + (default: 1) + (default: 1) + + + (must be 51472 for mainnet) + (must be 51472 for mainnet) + + + Accept command line and JSON-RPC commands + Accept command line and JSON-RPC commands + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Accept connections from outside (default: 1 if no -proxy or -connect) + + + Accept public REST requests (default: %u) + Accept public REST requests (default: %u) + + + Add a node to connect to and attempt to keep the connection open + Add a node to connect to and attempt to keep the connection open + + + Allow DNS lookups for -addnode, -seednode and -connect + Allow DNS lookups for -addnode, -seednode and -connect + + + Always query for peer addresses via DNS lookup (default: %u) + Always query for peer addresses via DNS lookup (default: %u) + + + Append comment to the user agent string + Append comment to the user agent string + + + Attempt to recover private keys from a corrupt wallet.dat + Attempt to recover private keys from a corrupt wallet.dat + + + Automatically create Tor hidden service (default: %d) + Automatically create Tor hidden service (default: %d) + + + Block creation options: + Block creation options: + + + Calculating missing accumulators... + Calculating missing accumulators... + + + Cannot downgrade wallet + Cannot downgrade wallet + + + Cannot resolve -bind address: '%s' + Cannot resolve -bind address: '%s' + + + Cannot resolve -externalip address: '%s' + Cannot resolve -externalip address: '%s' + + + Cannot resolve -whitebind address: '%s' + Cannot resolve -whitebind address: '%s' + + + Connect only to the specified node(s) + Connect only to the specified node(s) + + + Connect through SOCKS5 proxy + Connect through SOCKS5 proxy + + + Connect to a node to retrieve peer addresses, and disconnect + Connect to a node to retrieve peer addresses, and disconnect + + + Connection options: + Connection options: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Core Developers + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i The Dash Core Developers + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i The PIVX Core Developers + + + Corrupted block database detected + Corrupted block database detected + + + Could not parse masternode.conf + Could not parse masternode.conf + + + Debugging/Testing options: + Debugging/Testing options: + + + Delete blockchain folders and resync from scratch + Delete blockchain folders and resync from scratch + + + Disable OS notifications for incoming transactions (default: %u) + Disable OS notifications for incoming transactions (default: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Disable safe mode, override a real safe mode event (default: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Discover own IP address (default: 1 when listening and no -externalip) + + + Do not load the wallet and disable wallet RPC calls + Do not load the wallet and disable wallet RPC calls + + + Do you want to rebuild the block database now? + Do you want to rebuild the block database now? + + + Done loading + Done loading + + + Enable automatic Zerocoin minting (0-1, default: %u) + Enable automatic Zerocoin minting (0-1, default: %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + Enable publish hash transaction (locked via SwiftX) in <address> + + + Enable publish raw transaction (locked via SwiftX) in <address> + Enable publish raw transaction (locked via SwiftX) in <address> + + + Enable the client to act as a masternode (0-1, default: %u) + Enable the client to act as a masternode (0-1, default: %u) + + + Error initializing block database + Error initialising block database + + + Error initializing wallet database environment %s! + Error initialising wallet database environment %s! + + + Error loading block database + Error loading block database + + + Error loading wallet.dat + Error loading wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Error loading wallet.dat: Wallet corrupted + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Error loading wallet.dat: Wallet requires newer version of PIVX Core + + + Error opening block database + Error opening block database + + + Error reading from database, shutting down. + Error reading from database, shutting down. + + + Error writing zerocoinDB to disk + Error writing zerocoinDB to disk + + + Error + Error + + + Error: A fatal internal error occured, see debug.log for details + Error: A fatal internal error occurred, see debug.log for details + + + Error: Disk space is low! + Error: Disk space is low! + + + Error: Unsupported argument -tor found, use -onion. + Error: Unsupported argument -tor found, use -onion. + + + Error: Wallet locked, unable to create transaction! + Error: Wallet locked, unable to create transaction! + + + Failed to calculate accumulator checkpoint + Failed to calculate accumulator checkpoint + + + Failed to listen on any port. Use -listen=0 if you want this. + Failed to listen on any port. Use -listen=0 if you want this. + + + Failed to parse host:port string + Failed to parse host:port string + + + Failed to read block + Failed to read block + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Fee (in PIV/kB) to add to transactions you send (default: %s) + + + Force safe mode (default: %u) + Force safe mode (default: %u) + + + Generate coins (default: %u) + Generate coins (default: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + How many blocks to check at start up (default: %u, 0 = all) + + + If <category> is not supplied, output all debugging information. + If <category> is not supplied, output all debugging information. + + + Importing... + Importing... + + + Imports blocks from external blk000??.dat file + Imports blocks from external blk000??.dat file + + + Include IP addresses in debug output (default: %u) + Include IP addresses in debug output (default: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + Incorrect or no genesis block found. Wrong datadir for network? + + + Information + Information + + + Initialization sanity check failed. PIVX Core is shutting down. + Initialisation sanity check failed. PIVX Core is shutting down. + + + Insufficient funds + Insufficient funds + + + Insufficient funds. + Insufficient funds. + + + Invalid -onion address or hostname: '%s' + Invalid -onion address or hostname: '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + Invalid amount for -maxtxfee=<amount>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Invalid amount for -minrelaytxfee=<amount>: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Invalid amount for -mintxfee=<amount>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + + + Invalid amount for -paytxfee=<amount>: '%s' + Invalid amount for -paytxfee=<amount>: '%s' + + + Invalid amount for -reservebalance=<amount> + Invalid amount for -reservebalance=<amount> + + + Invalid amount + Invalid amount + + + Invalid masternodeprivkey. Please see documenation. + Invalid masternodeprivkey. Please see documentation. + + + Invalid netmask specified in -whitelist: '%s' + Invalid netmask specified in -whitelist: '%s' + + + Invalid port detected in masternode.conf + Invalid port detected in masternode.conf + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Percentage of automatically minted Zerocoin (1-100, default: %u) + + + Reindex the PIV and zPIV money supply statistics + Reindex the PIV and zPIV money supply statistics + + + Reindexing zerocoin database... + Reindexing zerocoin database... + + + Reindexing zerocoin failed + Reindexing zerocoin failed + + + Selected coins value is less than payment target + Selected coins value is less than payment target + + + SwiftX options: + SwiftX options: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + + + mints deleted + + mints deleted + + + + mints updated, + mints updated, + + + unconfirmed transactions removed + + unconfirmed transactions removed + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Failed to find coin set amongst held coins with less than maxNumber of Spends + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + + + <category> can be: + <category> can be: + + + Attempt to force blockchain corruption recovery + Attempt to force blockchain corruption recovery + + + CoinSpend: Accumulator witness does not verify + CoinSpend: Accumulator witness does not verify + + + Display the stake modifier calculations in the debug.log file. + Display the stake modifier calculations in the debug.log file. + + + Display verbose coin stake messages in the debug.log file. + Display verbose coin stake messages in the debug.log file. + + + Enable publish hash block in <address> + Enable publish hash block in <address> + + + Enable publish hash transaction in <address> + Enable publish hash transaction in <address> + + + Enable publish raw block in <address> + Enable publish raw block in <address> + + + Enable publish raw transaction in <address> + Enable publish raw transaction in <address> + + + Enable staking functionality (0-1, default: %u) + Enable staking functionality (0-1, default: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Error: A fatal internal error occurred, see debug.log for details + + + Error: No valid utxo! + Error: No valid utxo! + + + Failed to create mint + Failed to create mint + + + Failed to find Zerocoins in wallet.dat + Failed to find Zerocoins in wallet.dat + + + Failed to select a zerocoin + Failed to select a zerocoin + + + Failed to wipe zerocoinDB + Failed to wipe zerocoinDB + + + Failed to write coin serial number into wallet + Failed to write coin serial number into wallet + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Keep at most <n> unconnectable transactions in memory (default: %u) + + + Limit size of signature cache to <n> entries (default: %u) + Limit size of signature cache to <n> entries (default: %u) + + + Line: %d + Line: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Listen for connections on <port> (default: %u or testnet: %u) + + + Loading addresses... + Loading addresses... + + + Loading block index... + Loading block index... + + + Loading budget cache... + Loading budget cache... + + + Loading masternode cache... + Loading masternode cache... + + + Loading masternode payment cache... + Loading masternode payment cache... + + + Loading sporks... + Loading sporks... + + + Loading wallet... (%3.2f %%) + Loading wallet... (%3.2f %%) + + + Loading wallet... + Loading wallet... + + + Location of the auth cookie (default: data dir) + Location of the auth cookie (default: data dir) + + + Lock masternodes from masternode configuration file (default: %u) + Lock masternodes from masternode configuration file (default: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Lookup(): Invalid -proxy address or hostname: '%s' + + + Maintain at most <n> connections to peers (default: %u) + Maintain at most <n> connections to peers (default: %u) + + + Masternode options: + Masternode options: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + + + Mint did not make it into blockchain + Mint did not make it into blockchain + + + Need to specify a port with -whitebind: '%s' + Need to specify a port with -whitebind: '%s' + + + Node relay options: + Node relay options: + + + Not enough file descriptors available. + Not enough file descriptors available. + + + Number of automatic wallet backups (default: 10) + Number of automatic wallet backups (default: 10) + + + Number of custom location backups to retain (default: %d) + Number of custom location backups to retain (default: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Only accept block chain matching built-in checkpoints (default: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + + + Options: + Options: + + + Password for JSON-RPC connections + Password for JSON-RPC connections + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid(): Invalid -proxy address or hostname: '%s' + + + Preparing for resync... + Preparing for resync... + + + Prepend debug output with timestamp (default: %u) + Prepend debug output with timestamp (default: %u) + + + Print version and exit + Print version and exit + + + RPC server options: + RPC server options: + + + Randomly drop 1 of every <n> network messages + Randomly drop 1 of every <n> network messages + + + Randomly fuzz 1 of every <n> network messages + Randomly fuzz 1 of every <n> network messages + + + Rebuild block chain index from current blk000??.dat files + Rebuild block chain index from current blk000??.dat files + + + Receive and display P2P network alerts (default: %u) + Receive and display P2P network alerts (default: %u) + + + Reindex the accumulator database + Reindex the accumulator database + + + Relay and mine data carrier transactions (default: %u) + Relay and mine data carrier transactions (default: %u) + + + Relay non-P2SH multisig (default: %u) + Relay non-P2SH multisig (default: %u) + + + Rescan the block chain for missing wallet transactions + Rescan the block chain for missing wallet transactions + + + Rescanning... + Rescanning... + + + ResetMintZerocoin finished: + ResetMintZerocoin finished: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin finished: + + + Run a thread to flush wallet periodically (default: %u) + Run a thread to flush wallet periodically (default: %u) + + + Run in the background as a daemon and accept commands + Run in the background as a daemon and accept commands + + + Send transactions as zero-fee transactions if possible (default: %u) + Send transactions as zero-fee transactions if possible (default: %u) + + + Session timed out. + Session timed out. + + + Set database cache size in megabytes (%d to %d, default: %d) + Set database cache size in megabytes (%d to %d, default: %d) + + + Set external address:port to get to this masternode (example: %s) + Set external address:port to get to this masternode (example: %s) + + + Set key pool size to <n> (default: %u) + Set key pool size to <n> (default: %u) + + + Set maximum block size in bytes (default: %d) + Set maximum block size in bytes (default: %d) + + + Set minimum block size in bytes (default: %u) + Set minimum block size in bytes (default: %u) + + + Set the Maximum reorg depth (default: %u) + Set the Maximum reorg depth (default: %u) + + + Set the masternode private key + Set the masternode private key + + + Set the number of threads to service RPC calls (default: %d) + Set the number of threads to service RPC calls (default: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + + + Show all debugging options (usage: --help -help-debug) + Show all debugging options (usage: --help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Shrink debug.log file on client start up (default: 1 when no -debug) + + + Signing timed out. + Signing timed out. + + + Signing transaction failed + Signing transaction failed + + + Specify configuration file (default: %s) + Specify configuration file (default: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Specify connection timeout in milliseconds (minimum: 1, default: %d) + + + Specify data directory + Specify data directory + + + Specify masternode configuration file (default: %s) + Specify masternode configuration file (default: %s) + + + Specify pid file (default: %s) + Specify pid file (default: %s) + + + Specify wallet file (within data directory) + Specify wallet file (within data directory) + + + Specify your own public address + Specify your own public address + + + Spend Valid + Spend Valid + + + Spend unconfirmed change when sending transactions (default: %u) + Spend unconfirmed change when sending transactions (default: %u) + + + Staking options: + Staking options: + + + Stop running after importing blocks from disk (default: %u) + Stop running after importing blocks from disk (default: %u) + + + Synchronization failed + Synchronisation failed + + + Synchronization finished + Synchronisation finished + + + Synchronization pending... + Synchronisation pending... + + + Synchronizing budgets... + Synchronising budgets... + + + Synchronizing masternode winners... + Synchronising masternode winners... + + + Synchronizing masternodes... + Synchronising masternodes... + + + Synchronizing sporks... + Synchronising sporks... + + + Syncing zPIV wallet... + Syncing zPIV wallet... + + + The coin spend has been used + The coin spend has been used + + + The transaction did not verify + The transaction did not verify + + + This help message + This help message + + + This is experimental software. + This is experimental software. + + + This is intended for regression testing tools and app development. + This is intended for regression testing tools and app development. + + + Threshold for disconnecting misbehaving peers (default: %u) + Threshold for disconnecting misbehaving peers (default: %u) + + + Too many spends needed + Too many spends needed + + + Tor control port password (default: empty) + Tor control port password (default: empty) + + + Tor control port to use if onion listening enabled (default: %s) + Tor control port to use if onion listening enabled (default: %s) + + + Transaction Created + Transaction Created + + + Transaction Mint Started + Transaction Mint Started + + + Transaction amount too small + Transaction amount too small + + + Transaction amounts must be positive + Transaction amounts must be positive + + + Transaction too large for fee policy + Transaction too large for fee policy + + + Transaction too large + Transaction too large + + + Trying to spend an already spent serial #, try again. + Trying to spend an already spent serial #, try again. + + + Unable to bind to %s on this computer (bind returned error %s) + Unable to bind to %s on this computer (bind returned error %s) + + + Unable to sign spork message, wrong key? + Unable to sign spork message, wrong key? + + + Unable to start HTTP server. See debug log for details. + Unable to start HTTP server. See debug log for details. + + + Unknown network specified in -onlynet: '%s' + Unknown network specified in -onlynet: '%s' + + + Upgrade wallet to latest format + Upgrade wallet to latest format + + + Use UPnP to map the listening port (default: %u) + Use UPnP to map the listening port (default: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Use UPnP to map the listening port (default: 1 when listening) + + + Use a custom max chain reorganization depth (default: %u) + Use a custom max chain reorganisation depth (default: %u) + + + Use the test network + Use the test network + + + User Agent comment (%s) contains unsafe characters. + User Agent comment (%s) contains unsafe characters. + + + Username for JSON-RPC connections + Username for JSON-RPC connections + + + Value is below the smallest available denomination (= 1) of zPIV + Value is below the smallest available denomination (= 1) of zPIV + + + Verifying blocks... + Verifying blocks... + + + Verifying wallet... + Verifying wallet... + + + Wallet %s resides outside data directory %s + Wallet %s resides outside data directory %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + Wallet needed to be rewritten: restart PIVX Core to complete + + + Wallet options: + Wallet options: + + + Wallet window title + Wallet window title + + + Warning + Warning + + + Warning: This version is obsolete, upgrade required! + Warning: This version is obsolete, upgrade required! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Warning: Unsupported argument -debugnet ignored, use -debug=net. + + + You don't have enough Zerocoins in your wallet + You don't have enough Zerocoins in your wallet + + + You need to rebuild the database using -reindex to change -txindex + You need to rebuild the database using -reindex to change -txindex + + + Zapping all transactions from wallet... + Zapping all transactions from wallet... + + + ZeroMQ notification options: + ZeroMQ notification options: + + + Zerocoin options: + Zerocoin options: + + + on startup + on start up + + + wallet.dat corrupt, salvage failed + wallet.dat corrupt, salvage failed + + + + send + + Form + Form + + + TextLabel + TextLabel + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_en_US.ts b/src/qt/locale/pivx_en_US.ts new file mode 100644 index 0000000..6808de0 --- /dev/null +++ b/src/qt/locale/pivx_en_US.ts @@ -0,0 +1,5149 @@ + + + AddressBookPage + + Right-click to edit address or label + Right-click to edit address or label + + + Create a new address + Create a new address + + + &New + &New + + + Copy the currently selected address to the system clipboard + Copy the currently selected address to the system clipboard + + + &Copy + &Copy + + + Delete the currently selected address from the list + Delete the currently selected address from the list + + + &Delete + &Delete + + + Export the data in the current tab to a file + Export the data in the current tab to a file + + + &Export + &Export + + + C&lose + C&lose + + + Choose the address to send coins to + Choose the address to send coins to + + + Choose the address to receive coins with + Choose the address to receive coins with + + + C&hoose + C&hoose + + + Sending addresses + Sending addresses + + + Receiving addresses + Receiving addresses + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + + + &Copy Address + &Copy Address + + + Copy &Label + Copy &Label + + + &Edit + &Edit + + + Export Address List + Export Address List + + + Comma separated file (*.csv) + Comma separated file (*.csv) + + + Exporting Failed + Exporting Failed + + + There was an error trying to save the address list to %1. Please try again. + There was an error trying to save the address list to %1. Please try again. + + + + AddressTableModel + + Label + Label + + + Address + Address + + + (no label) + (no label) + + + + AskPassphraseDialog + + Passphrase Dialog + Passphrase Dialog + + + Enter passphrase + Enter passphrase + + + New passphrase + New passphrase + + + Repeat new passphrase + Repeat new passphrase + + + Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. + Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. + + + For anonymization and staking only + For anonymization and staking only + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + + + Encrypt wallet + Encrypt wallet + + + This operation needs your wallet passphrase to unlock the wallet. + This operation needs your wallet passphrase to unlock the wallet. + + + Unlock wallet + Unlock wallet + + + This operation needs your wallet passphrase to decrypt the wallet. + This operation needs your wallet passphrase to decrypt the wallet. + + + Decrypt wallet + Decrypt wallet + + + Change passphrase + Change passphrase + + + Enter the old and new passphrase to the wallet. + Enter the old and new passphrase to the wallet. + + + Confirm wallet encryption + Confirm wallet encryption + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + + + Are you sure you wish to encrypt your wallet? + Are you sure you wish to encrypt your wallet? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + + + Wallet encrypted + Wallet encrypted + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + + + Wallet encryption failed + Wallet encryption failed + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + + + The supplied passphrases do not match. + The supplied passphrases do not match. + + + Wallet unlock failed + Wallet unlock failed + + + The passphrase entered for the wallet decryption was incorrect. + The passphrase entered for the wallet decryption was incorrect. + + + Wallet decryption failed + Wallet decryption failed + + + Wallet passphrase was successfully changed. + Wallet passphrase was successfully changed. + + + Warning: The Caps Lock key is on! + Warning: The Caps Lock key is on! + + + + Bip38ToolDialog + + BIP 38 Tool + BIP 38 Tool + + + &BIP 38 Encrypt + &BIP 38 Encrypt + + + Enter a Pivx Address that you would like to encrypt using BIP 38. Enter a passphrase in the middle box. Press encrypt to compute the encrypted private key. + Enter a Pivx Address that you would like to encrypt using BIP 38. Enter a passphrase in the middle box. Press encrypt to compute the encrypted private key. + + + Address: + Address: + + + The PIVX address to sign the message with + The PIVX address to sign the message with + + + Choose previously used address + Choose previously used address + + + Alt+A + Alt+A + + + Paste address from clipboard + Paste address from clipboard + + + Alt+P + Alt+P + + + Passphrase: + Passphrase: + + + Encrypted Key: + Encrypted Key: + + + Copy the current signature to the system clipboard + Copy the current signature to the system clipboard + + + Sign the message to prove you own this PIVX address + Sign the message to prove you own this PIVX address + + + Encrypt &Key + Encrypt &Key + + + Reset all sign message fields + Reset all sign message fields + + + Clear &All + Clear &All + + + &BIP 38 Decrypt + &BIP 38 Decrypt + + + Enter the BIP 38 encrypted private key. Enter the passphrase in the middle box. Click Decrypt Key to compute the private key. After the key is decrypted, clicking 'Import Address' will add this private key to the wallet. + Enter the BIP 38 encrypted private key. Enter the passphrase in the middle box. Click Decrypt Key to compute the private key. After the key is decrypted, clicking 'Import Address' will add this private key to the wallet. + + + The PIVX address the message was signed with + The PIVX address the message was signed with + + + Verify the message to ensure it was signed with the specified PIVX address + Verify the message to ensure it was signed with the specified PIVX address + + + Decrypt &Key + Decrypt &Key + + + Reset all verify message fields + Reset all verify message fields + + + Decrypted Key: + Decrypted Key: + + + Import Address + Import Address + + + Click "Decrypt Key" to compute key + Click "Decrypt Key" to compute key + + + The entered passphrase is invalid. + The entered passphrase is invalid. + + + Allowed: 0-9,a-z,A-Z, + Allowed: 0-9,a-z,A-Z, + + + The entered address is invalid. + The entered address is invalid. + + + Please check the address and try again. + Please check the address and try again. + + + The entered address does not refer to a key. + The entered address does not refer to a key. + + + Wallet unlock was cancelled. + Wallet unlock was cancelled. + + + Private key for the entered address is not available. + Private key for the entered address is not available. + + + Failed to decrypt. + Failed to decrypt. + + + Please check the key and passphrase and try again. + Please check the key and passphrase and try again. + + + Data Not Valid. + Data Not Valid. + + + Please try again. + Please try again. + + + Please wait while key is imported + Please wait while key is imported + + + Key Already Held By Wallet + Key Already Held By Wallet + + + Error Adding Key To Wallet + Error Adding Key To Wallet + + + Successfully Added Private Key To Wallet + Successfully Added Private Key To Wallet + + + + BitcoinGUI + + Wallet + Wallet + + + Node + Node + + + &Overview + &Overview + + + Show general overview of wallet + Show general overview of wallet + + + &Send + &Send + + + &Receive + &Receive + + + &Transactions + &Transactions + + + Browse transaction history + Browse transaction history + + + E&xit + E&xit + + + Quit application + Quit application + + + About &Qt + About &Qt + + + Show information about Qt + Show information about Qt + + + &Options... + &Options... + + + &Show / Hide + &Show / Hide + + + Show or hide the main Window + Show or hide the main Window + + + &Encrypt Wallet... + &Encrypt Wallet... + + + Encrypt the private keys that belong to your wallet + Encrypt the private keys that belong to your wallet + + + &Backup Wallet... + &Backup Wallet... + + + Backup wallet to another location + Backup wallet to another location + + + &Change Passphrase... + &Change Passphrase... + + + Change the passphrase used for wallet encryption + Change the passphrase used for wallet encryption + + + &Unlock Wallet... + &Unlock Wallet... + + + Unlock wallet + Unlock wallet + + + &Lock Wallet + &Lock Wallet + + + Sign &message... + Sign &message... + + + &Verify message... + &Verify message... + + + &Information + &Information + + + Show diagnostic information + Show diagnostic information + + + &Debug console + &Debug console + + + Open debugging console + Open debugging console + + + &Network Monitor + &Network Monitor + + + Show network monitor + Show network monitor + + + &Peers list + &Peers list + + + Show peers info + Show peers info + + + Wallet &Repair + Wallet &Repair + + + Show wallet repair options + Show wallet repair options + + + Open configuration file + Open configuration file + + + Show Automatic &Backups + Show Automatic &Backups + + + Show automatically created wallet backups + Show automatically created wallet backups + + + &Sending addresses... + &Sending addresses... + + + Show the list of used sending addresses and labels + Show the list of used sending addresses and labels + + + &Receiving addresses... + &Receiving addresses... + + + Show the list of used receiving addresses and labels + Show the list of used receiving addresses and labels + + + Open &URI... + Open &URI... + + + &Command-line options + &Command-line options + + + Processed %n blocks of transaction history. + Processed %n block of transaction history.Processed %n blocks of transaction history. + + + Synchronizing additional data: %p% + Synchronizing additional data: %p% + + + &File + &File + + + &Settings + &Settings + + + &Tools + &Tools + + + &Help + &Help + + + Tabs toolbar + Tabs toolbar + + + PIVX Core + PIVX Core + + + Send coins to a PIVX address + Send coins to a PIVX address + + + Request payments (generates QR codes and pivx: URIs) + Request payments (generates QR codes and pivx: URIs) + + + &Masternodes + &Masternodes + + + Browse masternodes + Browse masternodes + + + &About PIVX Core + &About PIVX Core + + + Show information about PIVX Core + Show information about PIVX Core + + + Modify configuration options for PIVX + Modify configuration options for PIVX + + + Sign messages with your PIVX addresses to prove you own them + Sign messages with your PIVX addresses to prove you own them + + + Verify messages to ensure they were signed with specified PIVX addresses + Verify messages to ensure they were signed with specified PIVX addresses + + + &BIP38 tool + &BIP38 tool + + + Encrypt and decrypt private keys using a passphrase + Encrypt and decrypt private keys using a passphrase + + + &MultiSend + &MultiSend + + + MultiSend Settings + MultiSend Settings + + + Open Wallet &Configuration File + Open Wallet &Configuration File + + + Open &Masternode Configuration File + Open &Masternode Configuration File + + + Open Masternode configuration file + Open Masternode configuration file + + + Open a PIVX: URI or payment request + Open a PIVX: URI or payment request + + + &Blockchain explorer + &Blockchain explorer + + + Block explorer window + Block explorer window + + + Show the PIVX Core help message to get a list with possible PIVX command-line options + Show the PIVX Core help message to get a list with possible PIVX command-line options + + + PIVX Core client + PIVX Core client + + + %n active connection(s) to PIVX network + %n active connection(s) to PIVX network%n active connection(s) to PIVX network + + + Synchronizing with network... + Synchronizing with network... + + + Importing blocks from disk... + Importing blocks from disk... + + + Reindexing blocks on disk... + Reindexing blocks on disk... + + + No block source available... + No block source available... + + + Up to date + Up to date + + + %n hour(s) + %n hour%n hours + + + %n day(s) + %n day%n days + + + %n week(s) + %n week%n weeks + + + %1 and %2 + %1 and %2 + + + %n year(s) + %n year%n years + + + %1 behind + %1 behind + + + Catching up... + Catching up... + + + Last received block was generated %1 ago. + Last received block was generated %1 ago. + + + Transactions after this will not yet be visible. + Transactions after this will not yet be visible. + + + Error + Error + + + Warning + Warning + + + Information + Information + + + Sent transaction + Sent transaction + + + Incoming transaction + Incoming transaction + + + Sent MultiSend transaction + Sent MultiSend transaction + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + + + Staking is active + MultiSend: %1 + Staking is active + MultiSend: %1 + + + Active + Active + + + Not Active + Not Active + + + Staking is not active + MultiSend: %1 + Staking is not active + MultiSend: %1 + + + Wallet is <b>encrypted</b> and currently <b>unlocked</b> + Wallet is <b>encrypted</b> and currently <b>unlocked</b> + + + Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization and staking only + Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization and staking only + + + Wallet is <b>encrypted</b> and currently <b>locked</b> + Wallet is <b>encrypted</b> and currently <b>locked</b> + + + + BlockExplorer + + Blockchain Explorer + Blockchain Explorer + + + Address / Block / Transaction + Address / Block / Transaction + + + Search + Search + + + TextLabel + TextLabel + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + + + + ClientModel + + Total: %1 (OBF compatible: %2 / Enabled: %3) + Total: %1 (OBF compatible: %2 / Enabled: %3) + + + Network Alert + Network Alert + + + + CoinControlDialog + + Quantity: + Quantity: + + + Bytes: + Bytes: + + + Amount: + Amount: + + + Priority: + Priority: + + + Fee: + Fee: + + + Coin Selection + Coin Selection + + + Dust: + Dust: + + + After Fee: + After Fee: + + + Change: + Change: + + + (un)select all + (un)select all + + + toggle lock state + toggle lock state + + + Tree mode + Tree mode + + + List mode + List mode + + + (1 locked) + (1 locked) + + + Amount + Amount + + + Received with label + Received with label + + + Received with address + Received with address + + + DS Rounds + DS Rounds + + + Date + Date + + + Confirmations + Confirmations + + + Confirmed + Confirmed + + + Priority + Priority + + + Copy address + Copy address + + + Copy label + Copy label + + + Copy amount + Copy amount + + + Copy transaction ID + Copy transaction ID + + + Lock unspent + Lock unspent + + + Unlock unspent + Unlock unspent + + + Copy quantity + Copy quantity + + + Copy fee + Copy fee + + + Copy after fee + Copy after fee + + + Copy bytes + Copy bytes + + + Copy priority + Copy priority + + + Copy dust + Copy dust + + + Copy change + Copy change + + + Please switch to "List mode" to use this function. + Please switch to "List mode" to use this function. + + + Non-anonymized input selected. <b>Obfuscation will be disabled.</b><br><br>If you still want to use Obfuscation, please deselect all non-nonymized inputs first and then check Obfuscation checkbox again. + Non-anonymized input selected. <b>Obfuscation will be disabled.</b><br><br>If you still want to use Obfuscation, please deselect all non-nonymized inputs first and then check Obfuscation checkbox again. + + + highest + highest + + + higher + higher + + + high + high + + + medium-high + medium-high + + + Can vary +/- %1 duff(s) per input. + Can vary +/- %1 duff(s) per input. + + + n/a + n/a + + + medium + medium + + + low-medium + low-medium + + + low + low + + + lower + lower + + + lowest + lowest + + + (%1 locked) + (%1 locked) + + + none + none + + + yes + yes + + + no + no + + + This label turns red, if the transaction size is greater than 1000 bytes. + This label turns red, if the transaction size is greater than 1000 bytes. + + + This means a fee of at least %1 per kB is required. + This means a fee of at least %1 per kB is required. + + + Can vary +/- 1 byte per input. + Can vary +/- 1 byte per input. + + + Transactions with higher priority are more likely to get included into a block. + Transactions with higher priority are more likely to get included into a block. + + + This label turns red, if the priority is smaller than "medium". + This label turns red, if the priority is smaller than "medium". + + + This label turns red, if any recipient receives an amount smaller than %1. + This label turns red, if any recipient receives an amount smaller than %1. + + + (no label) + (no label) + + + change from %1 (%2) + change from %1 (%2) + + + (change) + (change) + + + + EditAddressDialog + + Edit Address + Edit Address + + + &Label + &Label + + + The label associated with this address list entry + The label associated with this address list entry + + + &Address + &Address + + + The address associated with this address list entry. This can only be modified for sending addresses. + The address associated with this address list entry. This can only be modified for sending addresses. + + + New receiving address + New receiving address + + + New sending address + New sending address + + + Edit receiving address + Edit receiving address + + + Edit sending address + Edit sending address + + + The entered address "%1" is not a valid PIVX address. + The entered address "%1" is not a valid PIVX address. + + + The entered address "%1" is already in the address book. + The entered address "%1" is already in the address book. + + + Could not unlock wallet. + Could not unlock wallet. + + + New key generation failed. + New key generation failed. + + + + FreespaceChecker + + A new data directory will be created. + A new data directory will be created. + + + name + name + + + Directory already exists. Add %1 if you intend to create a new directory here. + Directory already exists. Add %1 if you intend to create a new directory here. + + + Path already exists, and is not a directory. + Path already exists, and is not a directory. + + + Cannot create data directory here. + Cannot create data directory here. + + + + HelpMessageDialog + + version + version + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + About PIVX Core + + + Command-line options + Command-line options + + + Usage: + Usage: + + + command-line options + command-line options + + + UI Options: + UI Options: + + + Choose data directory on startup (default: %u) + Choose data directory on startup (default: %u) + + + Show splash screen on startup (default: %u) + Show splash screen on startup (default: %u) + + + Set language, for example "de_DE" (default: system locale) + Set language, for example "de_DE" (default: system locale) + + + Start minimized + Start minimized + + + Set SSL root certificates for payment request (default: -system-) + Set SSL root certificates for payment request (default: -system-) + + + + Intro + + Welcome + Welcome + + + Welcome to PIVX Core. + Welcome to PIVX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + + + Use the default data directory + Use the default data directory + + + Use a custom data directory: + Use a custom data directory: + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Error: Specified data directory "%1" cannot be created. + + + Error + Error + + + %1 GB of free space available + %1 GB of free space available + + + (of %1 GB needed) + (of %1 GB needed) + + + + MasternodeList + + Form + Form + + + My Masternodes + My Masternodes + + + Note: Status of your masternodes in local wallet can potentially be slightly incorrect.<br />Always wait for wallet to sync additional data and then double check from another node<br />if your node should be running but you still see "MISSING" in "Status" field. + Note: Status of your masternodes in local wallet can potentially be slightly incorrect.<br />Always wait for wallet to sync additional data and then double check from another node<br />if your node should be running but you still see "MISSING" in "Status" field. + + + Alias + Alias + + + Address + Address + + + Protocol + Protocol + + + Status + Status + + + Active + Active + + + Last Seen (UTC) + Last Seen (UTC) + + + Pubkey + Pubkey + + + S&tart alias + S&tart alias + + + Start &all + Start &all + + + Start &MISSING + Start &MISSING + + + &Update status + &Update status + + + Status will be updated automatically in (sec): + Status will be updated automatically in (sec): + + + 0 + 0 + + + Start alias + Start alias + + + Confirm masternode start + Confirm masternode start + + + Are you sure you want to start masternode %1? + Are you sure you want to start masternode %1? + + + Confirm all masternodes start + Confirm all masternodes start + + + Are you sure you want to start ALL masternodes? + Are you sure you want to start ALL masternodes? + + + Command is not available right now + Command is not available right now + + + You can't use this command until masternode list is synced + You can't use this command until masternode list is synced + + + Confirm missing masternodes start + Confirm missing masternodes start + + + Are you sure you want to start MISSING masternodes? + Are you sure you want to start MISSING masternodes? + + + + MultiSendDialog + + MultiSend + MultiSend + + + Enter whole numbers 1 - 100 + Enter whole numbers 1 - 100 + + + Enter % to Give (1-100) + Enter % to Give (1-100) + + + Enter Address to Send to + Enter Address to Send to + + + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. +To Add: enter percentage to give and PIVX address to add to the MultiSend vector. +To Delete: Enter address to delete and press delete. +MultiSend will not be activated unless you have clicked Activate + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. +To Add: enter percentage to give and PIVX address to add to the MultiSend vector. +To Delete: Enter address to delete and press delete. +MultiSend will not be activated unless you have clicked Activate + + + Add to MultiSend Vector + Add to MultiSend Vector + + + Add + Add + + + Deactivate MultiSend + Deactivate MultiSend + + + Deactivate + Deactivate + + + Choose an address from the address book + Choose an address from the address book + + + Alt+A + Alt+A + + + Percentage of stake to send + Percentage of stake to send + + + Percentage: + Percentage: + + + Address to send portion of stake to + Address to send portion of stake to + + + Address: + Address: + + + Delete Address From MultiSend Vector + Delete Address From MultiSend Vector + + + Delete + Delete + + + Activate MultiSend + Activate MultiSend + + + Activate + Activate + + + View MultiSend Vector + View MultiSend Vector + + + View MultiSend + View MultiSend + + + Send For Stakes + Send For Stakes + + + Send For Masternode Rewards + Send For Masternode Rewards + + + The entered address: + + The entered address: + + + + is invalid. +Please check the address and try again. + is invalid. +Please check the address and try again. + + + The total amount of your MultiSend vector is over 100% of your stake reward + + The total amount of your MultiSend vector is over 100% of your stake reward + + + + Please Enter 1 - 100 for percent. + Please Enter 1 - 100 for percent. + + + MultiSend Vector + + MultiSend Vector + + + + Removed + Removed + + + Could not locate address + + Could not locate address + + + + + ObfuscationConfig + + Configure Obfuscation + Configure Obfuscation + + + Basic Privacy + Basic Privacy + + + High Privacy + High Privacy + + + Maximum Privacy + Maximum Privacy + + + Please select a privacy level. + Please select a privacy level. + + + Use 2 separate masternodes to mix funds up to 10000 PIV + Use 2 separate masternodes to mix funds up to 10000 PIV + + + Use 8 separate masternodes to mix funds up to 10000 PIV + Use 8 separate masternodes to mix funds up to 10000 PIV + + + Use 16 separate masternodes + Use 16 separate masternodes + + + This option is the quickest and will cost about ~0.025 PIV to anonymize 10000 PIV + This option is the quickest and will cost about ~0.025 PIV to anonymize 10000 PIV + + + This option is moderately fast and will cost about 0.05 PIV to anonymize 10000 PIV + This option is moderately fast and will cost about 0.05 PIV to anonymize 10000 PIV + + + This is the slowest and most secure option. Using maximum anonymity will cost + This is the slowest and most secure option. Using maximum anonymity will cost + + + 0.1 PIV per 10000 PIV you anonymize. + 0.1 PIV per 10000 PIV you anonymize. + + + Obfuscation Configuration + Obfuscation Configuration + + + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening PIVX's configuration screen. + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening PIVX's configuration screen. + + + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening PIVX's configuration screen. + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening PIVX's configuration screen. + + + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening PIVX's configuration screen. + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening PIVX's configuration screen. + + + + OpenURIDialog + + Open URI + Open URI + + + Open payment request from URI or file + Open payment request from URI or file + + + URI: + URI: + + + Select payment request file + Select payment request file + + + Select payment request file to open + Select payment request file to open + + + + OptionsDialog + + Options + Options + + + &Main + &Main + + + Size of &database cache + Size of &database cache + + + MB + MB + + + Number of script &verification threads + Number of script &verification threads + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = leave that many cores free) + + + W&allet + W&allet + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + + + Accept connections from outside + Accept connections from outside + + + Allow incoming connections + Allow incoming connections + + + &Connect through SOCKS5 proxy (default proxy): + &Connect through SOCKS5 proxy (default proxy): + + + Expert + Expert + + + Automatically start PIVX after logging in to the system. + Automatically start PIVX after logging in to the system. + + + &Start PIVX on system login + &Start PIVX on system login + + + This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. + This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. + + + Obfuscation rounds to use + Obfuscation rounds to use + + + This amount acts as a threshold to turn off Obfuscation once it's reached. + This amount acts as a threshold to turn off Obfuscation once it's reached. + + + Amount of PIVX to keep anonymized + Amount of PIVX to keep anonymized + + + Whether to show coin control features or not. + Whether to show coin control features or not. + + + Enable coin &control features + Enable coin &control features + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + + + Show Masternodes Tab + Show Masternodes Tab + + + &Spend unconfirmed change + &Spend unconfirmed change + + + &Network + &Network + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + The user interface language can be set here. This setting will take effect after restarting PIVX. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Map port using &UPnP + + + Connect to the PIVX network through a SOCKS5 proxy. + Connect to the PIVX network through a SOCKS5 proxy. + + + Proxy &IP: + Proxy &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Port: + + + Port of the proxy (e.g. 9050) + Port of the proxy (e.g. 9050) + + + &Window + &Window + + + Show only a tray icon after minimizing the window. + Show only a tray icon after minimizing the window. + + + &Minimize to the tray instead of the taskbar + &Minimize to the tray instead of the taskbar + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + + + M&inimize on close + M&inimize on close + + + &Display + &Display + + + User Interface &language: + User Interface &language: + + + User Interface Theme: + User Interface Theme: + + + &Unit to show amounts in: + &Unit to show amounts in: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Choose the default subdivision unit to show in the interface and when sending coins. + + + Decimal digits + Decimal digits + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + + + Third party transaction URLs + Third party transaction URLs + + + Active command-line options that override above options: + Active command-line options that override above options: + + + Reset all client options to default. + Reset all client options to default. + + + &Reset Options + &Reset Options + + + &OK + &OK + + + &Cancel + &Cancel + + + default + default + + + none + none + + + Confirm options reset + Confirm options reset + + + Client restart required to activate changes. + Client restart required to activate changes. + + + Client will be shutdown, do you want to proceed? + Client will be shutdown, do you want to proceed? + + + This change would require a client restart. + This change would require a client restart. + + + The supplied proxy address is invalid. + The supplied proxy address is invalid. + + + + OverviewPage + + Form + Form + + + Available: + Available: + + + Your current spendable balance + Your current spendable balance + + + Pending: + Pending: + + + Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance + Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance + + + Immature: + Immature: + + + Staked or masternode rewards that has not yet matured + Staked or masternode rewards that has not yet matured + + + Balances + Balances + + + The displayed information may be out of date. Your wallet automatically synchronizes with the PIVX network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the PIVX network after a connection is established, but this process has not completed yet. + + + Unconfirmed transactions to watch-only addresses + Unconfirmed transactions to watch-only addresses + + + Staked or masternode rewards in watch-only addresses that has not yet matured + Staked or masternode rewards in watch-only addresses that has not yet matured + + + Total: + Total: + + + Your current total balance + Your current total balance + + + Current total balance in watch-only addresses + Current total balance in watch-only addresses + + + Watch-only: + Watch-only: + + + Your current balance in watch-only addresses + Your current balance in watch-only addresses + + + Spendable: + Spendable: + + + Status: + Status: + + + Obfuscation Balance: + Obfuscation Balance: + + + 0 PIV / 0 Rounds + 0 PIV / 0 Rounds + + + Enabled/Disabled + Enabled/Disabled + + + Try to manually submit a Obfuscation request. + Try to manually submit a Obfuscation request. + + + Reset the current status of Obfuscation (can interrupt Obfuscation if it's in the process of Mixing, which can cost you money!) + Reset the current status of Obfuscation (can interrupt Obfuscation if it's in the process of Mixing, which can cost you money!) + + + Obfuscation + Obfuscation + + + Completion: + Completion: + + + Amount and Rounds: + Amount and Rounds: + + + Submitted Denom: + Submitted Denom: + + + n/a + n/a + + + Recent transactions + Recent transactions + + + Start/Stop Mixing + Start/Stop Mixing + + + The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. + The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. + + + (Last Message) + (Last Message) + + + Try Mix + Try Mix + + + Reset + Reset + + + out of sync + out of sync + + + Disabled + Disabled + + + No inputs detected + No inputs detected + + + %n Rounds + %n Round%n Rounds + + + Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead + Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead + + + Overall progress + Overall progress + + + Denominated + Denominated + + + Anonymized + Anonymized + + + Denominated inputs have %5 of %n rounds on average + Denominated inputs have %5 of %n rounds on averageDenominated inputs have %5 of %n rounds on average + + + Last Obfuscation message: + + Last Obfuscation message: + + + + Obfuscation was successfully reset. + Obfuscation was successfully reset. + + + If you don't want to see internal Obfuscation fees/transactions select "Most Common" as Type on the "Transactions" tab. + If you don't want to see internal Obfuscation fees/transactions select "Most Common" as Type on the "Transactions" tab. + + + Obfuscation requires at least %1 to use. + Obfuscation requires at least %1 to use. + + + Wallet is locked and user declined to unlock. Disabling Obfuscation. + Wallet is locked and user declined to unlock. Disabling Obfuscation. + + + Found enough compatible inputs to anonymize %1 + Found enough compatible inputs to anonymize %1 + + + Start Obfuscation + Start Obfuscation + + + Stop Obfuscation + Stop Obfuscation + + + Mixed + Mixed + + + Enabled + Enabled + + + N/A + N/A + + + + PaymentServer + + Payment request error + Payment request error + + + URI handling + URI handling + + + Payment request fetch URL is invalid: %1 + Payment request fetch URL is invalid: %1 + + + Payment request file handling + Payment request file handling + + + Invalid payment address %1 + Invalid payment address %1 + + + Cannot start pivx: click-to-pay handler + Cannot start pivx: click-to-pay handler + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Payment request file cannot be read! This can be caused by an invalid payment request file. + + + Payment request rejected + Payment request rejected + + + Payment request network doesn't match client network. + Payment request network doesn't match client network. + + + Payment request has expired. + Payment request has expired. + + + Payment request is not initialized. + Payment request is not initialized. + + + Unverified payment requests to custom payment scripts are unsupported. + Unverified payment requests to custom payment scripts are unsupported. + + + Requested payment amount of %1 is too small (considered dust). + Requested payment amount of %1 is too small (considered dust). + + + Refund from %1 + Refund from %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + + + Payment request DoS protection + Payment request DoS protection + + + Error communicating with %1: %2 + Error communicating with %1: %2 + + + Payment request cannot be parsed! + Payment request cannot be parsed! + + + Bad response from server %1 + Bad response from server %1 + + + Network request error + Network request error + + + Payment acknowledged + Payment acknowledged + + + + PeerTableModel + + Address/Hostname + Address/Hostname + + + Version + Version + + + Ping Time + Ping Time + + + + QObject + + Amount + Amount + + + Enter a PIVX address (e.g. %1) + Enter a PIVX address (e.g. %1) + + + %1 d + %1 d + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + NETWORK + + + UNKNOWN + UNKNOWN + + + None + None + + + N/A + N/A + + + %1 ms + %1 ms + + + + QRImageWidget + + &Save Image... + &Save Image... + + + &Copy Image + &Copy Image + + + Save QR Code + Save QR Code + + + PNG Image (*.png) + PNG Image (*.png) + + + + RPCConsole + + Tools window + Tools window + + + &Information + &Information + + + General + General + + + Name + Name + + + Client name + Client name + + + N/A + N/A + + + Number of connections + Number of connections + + + &Open + &Open + + + Startup time + Startup time + + + Network + Network + + + Last block time + Last block time + + + Debug log file + Debug log file + + + Using OpenSSL version + Using OpenSSL version + + + Build date + Build date + + + Current number of blocks + Current number of blocks + + + Client version + Client version + + + Using BerkeleyDB version + Using BerkeleyDB version + + + Block chain + Block chain + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + + + Number of Masternodes + Number of Masternodes + + + &Console + &Console + + + Clear console + Clear console + + + &Network Traffic + &Network Traffic + + + &Clear + &Clear + + + Totals + Totals + + + Received + Received + + + Sent + Sent + + + &Peers + &Peers + + + Select a peer to view detailed information. + Select a peer to view detailed information. + + + Direction + Direction + + + Protocol + Protocol + + + Version + Version + + + Services + Services + + + Starting Height + Starting Height + + + Sync Height + Sync Height + + + Ban Score + Ban Score + + + Connection Time + Connection Time + + + Last Send + Last Send + + + Last Receive + Last Receive + + + Bytes Sent + Bytes Sent + + + Bytes Received + Bytes Received + + + Ping Time + Ping Time + + + &Wallet Repair + &Wallet Repair + + + Wallet In Use: + Wallet In Use: + + + Salvage wallet + Salvage wallet + + + Attempt to recover private keys from a corrupt wallet.dat. + Attempt to recover private keys from a corrupt wallet.dat. + + + Rescan blockchain files + Rescan blockchain files + + + Rescan the block chain for missing wallet transactions. + Rescan the block chain for missing wallet transactions. + + + Recover transactions 1 + Recover transactions 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Recover transactions from blockchain (keep meta-data, e.g. account owner). + + + Recover transactions 2 + Recover transactions 2 + + + Recover transactions from blockchain (drop meta-data). + Recover transactions from blockchain (drop meta-data). + + + Upgrade wallet format + Upgrade wallet format + + + Rebuild block chain index from current blk000??.dat files. + Rebuild block chain index from current blk000??.dat files. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + + + Wallet repair options. + Wallet repair options. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + + + Rebuild index + Rebuild index + + + In: + In: + + + Out: + Out: + + + Welcome to the PIVX RPC console. + Welcome to the PIVX RPC console. + + + Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. + Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. + + + Type <b>help</b> for an overview of available commands. + Type <b>help</b> for an overview of available commands. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + via %1 + via %1 + + + never + never + + + Inbound + Inbound + + + Outbound + Outbound + + + Unknown + Unknown + + + Fetching... + Fetching... + + + + ReceiveCoinsDialog + + Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. + Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. + + + R&euse an existing receiving address (not recommended) + R&euse an existing receiving address (not recommended) + + + &Message: + &Message: + + + An optional label to associate with the new receiving address. + An optional label to associate with the new receiving address. + + + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the PIVX network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the PIVX network. + + + An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the PIVX network. + An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the PIVX network. + + + Use this form to request payments. All fields are <b>optional</b>. + Use this form to request payments. All fields are <b>optional</b>. + + + &Label: + &Label: + + + An optional amount to request. Leave this empty or zero to not request a specific amount. + An optional amount to request. Leave this empty or zero to not request a specific amount. + + + &Amount: + &Amount: + + + &Request payment + &Request payment + + + Clear all fields of the form. + Clear all fields of the form. + + + Clear + Clear + + + Requested payments history + Requested payments history + + + Show the selected request (does the same as double clicking an entry) + Show the selected request (does the same as double clicking an entry) + + + Show + Show + + + Remove the selected entries from the list + Remove the selected entries from the list + + + Remove + Remove + + + Copy label + Copy label + + + Copy message + Copy message + + + Copy amount + Copy amount + + + + ReceiveRequestDialog + + QR Code + QR Code + + + Copy &URI + Copy &URI + + + Copy &Address + Copy &Address + + + &Save Image... + &Save Image... + + + Request payment to %1 + Request payment to %1 + + + Payment information + Payment information + + + URI + URI + + + Address + Address + + + Amount + Amount + + + Label + Label + + + Message + Message + + + Resulting URI too long, try to reduce the text for label / message. + Resulting URI too long, try to reduce the text for label / message. + + + Error encoding URI into QR Code. + Error encoding URI into QR Code. + + + + RecentRequestsTableModel + + Date + Date + + + Label + Label + + + Message + Message + + + Amount + Amount + + + (no label) + (no label) + + + (no message) + (no message) + + + (no amount) + (no amount) + + + + SendCoinsDialog + + Send Coins + Send Coins + + + Coin Control Features + Coin Control Features + + + Inputs... + Inputs... + + + automatically selected + automatically selected + + + Insufficient funds! + Insufficient funds! + + + Quantity: + Quantity: + + + Bytes: + Bytes: + + + Amount: + Amount: + + + Priority: + Priority: + + + medium + medium + + + Fee: + Fee: + + + Dust: + Dust: + + + no + no + + + After Fee: + After Fee: + + + Change: + Change: + + + If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. + If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. + + + Custom change address + Custom change address + + + Split UTXO + Split UTXO + + + # of outputs + # of outputs + + + UTXO Size: + UTXO Size: + + + 0 PIV + 0 PIV + + + Transaction Fee: + Transaction Fee: + + + Choose... + Choose... + + + collapse fee-settings + collapse fee-settings + + + Minimize + Minimize + + + Obfuscation + Obfuscation + + + per kilobyte + per kilobyte + + + total at least + total at least + + + (read the tooltip) + (read the tooltip) + + + Custom: + Custom: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (Smart fee not initialized yet. This usually takes a few blocks...) + + + Confirmation time: + Confirmation time: + + + If the custom fee is set to 1000 uPIVs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uPIVs in fee,<br />while "at least" pays 1000 uPIVs. For transactions bigger than a kilobyte both pay by kilobyte. + If the custom fee is set to 1000 uPIVs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uPIVs in fee,<br />while "at least" pays 1000 uPIVs. For transactions bigger than a kilobyte both pay by kilobyte. + + + If the custom fee is set to 1000 uPIVs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uPIVs in fee,<br />while "total at least" pays 1000 uPIVs. For transactions bigger than a kilobyte both pay by kilobyte. + If the custom fee is set to 1000 uPIVs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uPIVs in fee,<br />while "total at least" pays 1000 uPIVs. For transactions bigger than a kilobyte both pay by kilobyte. + + + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for PIVX transactions than the network can process. + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for PIVX transactions than the network can process. + + + normal + normal + + + fast + fast + + + Recommended + Recommended + + + Send as zero-fee transaction if possible + Send as zero-fee transaction if possible + + + (confirmation may take longer) + (confirmation may take longer) + + + Confirm the send action + Confirm the send action + + + S&end + S&end + + + Clear all fields of the form. + Clear all fields of the form. + + + Clear &All + Clear &All + + + Send to multiple recipients at once + Send to multiple recipients at once + + + Add &Recipient + Add &Recipient + + + SwiftTX + SwiftTX + + + Balance: + Balance: + + + Copy quantity + Copy quantity + + + Copy amount + Copy amount + + + Copy fee + Copy fee + + + Copy after fee + Copy after fee + + + Copy bytes + Copy bytes + + + Copy priority + Copy priority + + + Copy dust + Copy dust + + + Copy change + Copy change + + + The split block tool does not work when sending to outside addresses. Try again. + The split block tool does not work when sending to outside addresses. Try again. + + + The split block tool does not work with multiple addresses. Try again. + The split block tool does not work with multiple addresses. Try again. + + + using + using + + + anonymous funds + anonymous funds + + + Warning: Invalid PIVX address + Warning: Invalid PIVX address + + + any available funds (not recommended) + any available funds (not recommended) + + + and SwiftTX + and SwiftTX + + + %1 to %2 + %1 to %2 + + + Are you sure you want to send? + Are you sure you want to send? + + + are added as transaction fee + are added as transaction fee + + + Total Amount = <b>%1</b><br />= %2 + Total Amount = <b>%1</b><br />= %2 + + + Confirm send coins + Confirm send coins + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + A fee %1 times higher than %2 per kB is considered an insanely high fee. + + + Estimated to begin confirmation within %n block(s). + Estimated to begin confirmation within %n block.Estimated to begin confirmation within %n blocks. + + + The recipient address is not valid, please recheck. + The recipient address is not valid, please recheck. + + + (obfuscation requires this amount to be rounded up to the nearest %1). + (obfuscation requires this amount to be rounded up to the nearest %1). + + + split into %1 outputs using the UTXO splitter. + split into %1 outputs using the UTXO splitter. + + + <b>(%1 of %2 entries displayed)</b> + <b>(%1 of %2 entries displayed)</b> + + + The amount to pay must be larger than 0. + The amount to pay must be larger than 0. + + + The amount exceeds your balance. + The amount exceeds your balance. + + + The total exceeds your balance when the %1 transaction fee is included. + The total exceeds your balance when the %1 transaction fee is included. + + + Duplicate address found, can only send to each address once per send operation. + Duplicate address found, can only send to each address once per send operation. + + + Transaction creation failed! + Transaction creation failed! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + + + Error: The wallet was unlocked only to anonymize coins. + Error: The wallet was unlocked only to anonymize coins. + + + Pay only the minimum fee of %1 + Pay only the minimum fee of %1 + + + Warning: Unknown change address + Warning: Unknown change address + + + (no label) + (no label) + + + + SendCoinsEntry + + This is a normal payment. + This is a normal payment. + + + Pay &To: + Pay &To: + + + The PIVX address to send the payment to + The PIVX address to send the payment to + + + Choose previously used address + Choose previously used address + + + Alt+A + Alt+A + + + Paste address from clipboard + Paste address from clipboard + + + Alt+P + Alt+P + + + Remove this entry + Remove this entry + + + &Label: + &Label: + + + Enter a label for this address to add it to the list of used addresses + Enter a label for this address to add it to the list of used addresses + + + A&mount: + A&mount: + + + Message: + Message: + + + A message that was attached to the PIVX: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the PIVX network. + A message that was attached to the PIVX: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the PIVX network. + + + This is an unverified payment request. + This is an unverified payment request. + + + Pay To: + Pay To: + + + Memo: + Memo: + + + This is a verified payment request. + This is a verified payment request. + + + Enter a label for this address to add it to your address book + Enter a label for this address to add it to your address book + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core is shutting down... + + + Do not shut down the computer until this window disappears. + Do not shut down the computer until this window disappears. + + + + SignVerifyMessageDialog + + Signatures - Sign / Verify a Message + Signatures - Sign / Verify a Message + + + &Sign Message + &Sign Message + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + + + The PIVX address to sign the message with + The PIVX address to sign the message with + + + Choose previously used address + Choose previously used address + + + Alt+A + Alt+A + + + Paste address from clipboard + Paste address from clipboard + + + Alt+P + Alt+P + + + Enter the message you want to sign here + Enter the message you want to sign here + + + Signature + Signature + + + Copy the current signature to the system clipboard + Copy the current signature to the system clipboard + + + Sign the message to prove you own this PIVX address + Sign the message to prove you own this PIVX address + + + The PIVX address the message was signed with + The PIVX address the message was signed with + + + Verify the message to ensure it was signed with the specified PIVX address + Verify the message to ensure it was signed with the specified PIVX address + + + Sign &Message + Sign &Message + + + Reset all sign message fields + Reset all sign message fields + + + Clear &All + Clear &All + + + &Verify Message + &Verify Message + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + + + Verify &Message + Verify &Message + + + Reset all verify message fields + Reset all verify message fields + + + Click "Sign Message" to generate signature + Click "Sign Message" to generate signature + + + The entered address is invalid. + The entered address is invalid. + + + Please check the address and try again. + Please check the address and try again. + + + The entered address does not refer to a key. + The entered address does not refer to a key. + + + Wallet unlock was cancelled. + Wallet unlock was cancelled. + + + Private key for the entered address is not available. + Private key for the entered address is not available. + + + Message signing failed. + Message signing failed. + + + Message signed. + Message signed. + + + The signature could not be decoded. + The signature could not be decoded. + + + Please check the signature and try again. + Please check the signature and try again. + + + The signature did not match the message digest. + The signature did not match the message digest. + + + Message verification failed. + Message verification failed. + + + Message verified. + Message verified. + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Version %1 + + + The Bitcoin Core developers + The Bitcoin Core developers + + + The Dash Core developers + The Dash Core developers + + + The PIVX Core developers + The PIVX Core developers + + + [testnet] + [testnet] + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open for %n more block(s) + Open for %n more blockOpen for %n more blocks + + + Open until %1 + Open until %1 + + + conflicted + conflicted + + + %1/offline (verified via swifttx) + %1/offline (verified via swifttx) + + + %1/confirmed (verified via swifttx) + %1/confirmed (verified via swifttx) + + + %1 confirmations (verified via swifttx) + %1 confirmations (verified via swifttx) + + + %1/offline + %1/offline + + + %1/unconfirmed + %1/unconfirmed + + + %1 confirmations + %1 confirmations + + + %1/offline (SwiftTX verification in progress - %2 of %3 signatures) + %1/offline (SwiftTX verification in progress - %2 of %3 signatures) + + + %1/confirmed (SwiftTX verification in progress - %2 of %3 signatures ) + %1/confirmed (SwiftTX verification in progress - %2 of %3 signatures ) + + + %1 confirmations (SwiftTX verification in progress - %2 of %3 signatures) + %1 confirmations (SwiftTX verification in progress - %2 of %3 signatures) + + + %1/offline (SwiftTX verification failed) + %1/offline (SwiftTX verification failed) + + + %1/confirmed (SwiftTX verification failed) + %1/confirmed (SwiftTX verification failed) + + + Status + Status + + + , has not been successfully broadcast yet + , has not been successfully broadcast yet + + + , broadcast through %n node(s) + , broadcast through %n node, broadcast through %n nodes + + + Date + Date + + + Source + Source + + + Generated + Generated + + + From + From + + + unknown + unknown + + + To + To + + + own address + own address + + + watch-only + watch-only + + + label + label + + + Credit + Credit + + + matures in %n more block(s) + matures in %n more blockmatures in %n more blocks + + + not accepted + not accepted + + + Debit + Debit + + + Total debit + Total debit + + + Total credit + Total credit + + + Transaction fee + Transaction fee + + + Net amount + Net amount + + + Message + Message + + + Comment + Comment + + + Transaction ID + Transaction ID + + + Output index + Output index + + + Merchant + Merchant + + + Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. + Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. + + + Debug information + Debug information + + + Transaction + Transaction + + + Inputs + Inputs + + + Amount + Amount + + + true + true + + + false + false + + + + TransactionDescDialog + + Transaction details + Transaction details + + + This pane shows a detailed description of the transaction + This pane shows a detailed description of the transaction + + + + TransactionTableModel + + Date + Date + + + Type + Type + + + Address + Address + + + Open for %n more block(s) + Open for %n more blockOpen for %n more blocks + + + Open until %1 + Open until %1 + + + Offline + Offline + + + Unconfirmed + Unconfirmed + + + Confirming (%1 of %2 recommended confirmations) + Confirming (%1 of %2 recommended confirmations) + + + Confirmed (%1 confirmations) + Confirmed (%1 confirmations) + + + Conflicted + Conflicted + + + Immature (%1 confirmations, will be available after %2) + Immature (%1 confirmations, will be available after %2) + + + This block was not received by any other nodes and will probably not be accepted! + This block was not received by any other nodes and will probably not be accepted! + + + Received with + Received with + + + Masternode Reward + Masternode Reward + + + Received from + Received from + + + Received via Obfuscation + Received via Obfuscation + + + Obfuscation Denominate + Obfuscation Denominate + + + Obfuscation Collateral Payment + Obfuscation Collateral Payment + + + Obfuscation Make Collateral Inputs + Obfuscation Make Collateral Inputs + + + Obfuscation Create Denominations + Obfuscation Create Denominations + + + Sent to + Sent to + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Orphan Block - Generated but not accepted. This does not impact your holdings. + + + Payment to yourself + Payment to yourself + + + Minted + Minted + + + Mined + Mined + + + Obfuscated + Obfuscated + + + watch-only + watch-only + + + (n/a) + (n/a) + + + Transaction status. Hover over this field to show number of confirmations. + Transaction status. Hover over this field to show number of confirmations. + + + Date and time that the transaction was received. + Date and time that the transaction was received. + + + Type of transaction. + Type of transaction. + + + Whether or not a watch-only address is involved in this transaction. + Whether or not a watch-only address is involved in this transaction. + + + Destination address of transaction. + Destination address of transaction. + + + Amount removed from or added to balance. + Amount removed from or added to balance. + + + + TransactionView + + All + All + + + Today + Today + + + This week + This week + + + This month + This month + + + Last month + Last month + + + This year + This year + + + Range... + Range... + + + Most Common + Most Common + + + Received with + Received with + + + Sent to + Sent to + + + Obfuscated + Obfuscated + + + Obfuscation Make Collateral Inputs + Obfuscation Make Collateral Inputs + + + Obfuscation Create Denominations + Obfuscation Create Denominations + + + Obfuscation Denominate + Obfuscation Denominate + + + Obfuscation Collateral Payment + Obfuscation Collateral Payment + + + To yourself + To yourself + + + Mined + Mined + + + Minted + Minted + + + Masternode Reward + Masternode Reward + + + Other + Other + + + Enter address or label to search + Enter address or label to search + + + Min amount + Min amount + + + Copy address + Copy address + + + Copy label + Copy label + + + Copy amount + Copy amount + + + Copy transaction ID + Copy transaction ID + + + Edit label + Edit label + + + Show transaction details + Show transaction details + + + Export Transaction History + Export Transaction History + + + Comma separated file (*.csv) + Comma separated file (*.csv) + + + Confirmed + Confirmed + + + Watch-only + Watch-only + + + Date + Date + + + Type + Type + + + Label + Label + + + Address + Address + + + ID + ID + + + Exporting Failed + Exporting Failed + + + There was an error trying to save the transaction history to %1. + There was an error trying to save the transaction history to %1. + + + Exporting Successful + Exporting Successful + + + The transaction history was successfully saved to %1. + The transaction history was successfully saved to %1. + + + Range: + Range: + + + to + to + + + + UnitDisplayStatusBarControl + + Unit to show amounts in. Click to select another unit. + Unit to show amounts in. Click to select another unit. + + + + WalletFrame + + No wallet has been loaded. + No wallet has been loaded. + + + + WalletModel + + Send Coins + Send Coins + + + SwiftTX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftTX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + + + + WalletView + + &Export + &Export + + + Export the data in the current tab to a file + Export the data in the current tab to a file + + + Selected amount: + Selected amount: + + + Backup Wallet + Backup Wallet + + + Wallet Data (*.dat) + Wallet Data (*.dat) + + + Backup Failed + Backup Failed + + + There was an error trying to save the wallet data to %1. + There was an error trying to save the wallet data to %1. + + + Backup Successful + Backup Successful + + + The wallet data was successfully saved to %1. + The wallet data was successfully saved to %1. + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + + + An error occurred while setting up the RPC address %s port %u for listening: %s + An error occurred while setting up the RPC address %s port %u for listening: %s + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + + + Disable all PIVX specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) + Disable all PIVX specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + + + Enable spork administration functionality with the appropriate private key. + Enable spork administration functionality with the appropriate private key. + + + Enable swifttx, show confirmations for locked transactions (bool, default: %s) + Enable swifttx, show confirmations for locked transactions (bool, default: %s) + + + Enable use of automated obfuscation for funds stored in this wallet (0-1, default: %u) + Enable use of automated obfuscation for funds stored in this wallet (0-1, default: %u) + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + + + Error: Listening for incoming connections failed (listen returned error %s) + Error: Listening for incoming connections failed (listen returned error %s) + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Execute command when the best block changes (%s in cmd is replaced by block hash) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + + + Found unconfirmed denominated outputs, will wait till they confirm to continue. + Found unconfirmed denominated outputs, will wait till they confirm to continue. + + + How thorough the block verification of -checkblocks is (0-4, default: %u) + How thorough the block verification of -checkblocks is (0-4, default: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + In this mode -genproclimit controls how many blocks are generated immediately. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + + + Keep the specified amount available for spending at all times (default: 0) + Keep the specified amount available for spending at all times (default: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Log transaction priority and fee per kB when mining blocks (default: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maximum size of data in data carrier transactions we relay and mine (default: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + + + Output debugging information (default: %u, supplying <category> is optional) + Output debugging information (default: %u, supplying <category> is optional) + + + Provide liquidity to Obfuscation by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) + Provide liquidity to Obfuscation by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Require high priority for relaying free or low-fee transactions (default:%u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + Send trace/debug info to console instead of debug.log file (default: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Support filtering of blocks and transaction with bloom filters (default: %u) + + + SwiftTX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftTX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + + + To use pivxd, or the -server option to pivx-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=pivxrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "PIVX Alert" admin@foo.com + + To use pivxd, or the -server option to pivx-qt, you must set an rpcpassword in the configuration file: +%s +It is recommended you use the following random password: +rpcuser=pivxrpc +rpcpassword=%s +(you do not need to remember this password) +The username and password MUST NOT be the same. +If the file does not exist, create it with owner-readable-only file permissions. +It is also recommended to set alertnotify so you are notified of problems; +for example: alertnotify=echo %%s | mail -s "PIVX Alert" admin@foo.com + + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Unable to bind to %s on this computer. PIVX Core is probably already running. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Unable to locate enough Obfuscation denominated funds for this transaction. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + + + (51472 could be used only on mainnet) + (51472 could be used only on mainnet) + + + (default: %s) + (default: %s) + + + (default: 1) + (default: 1) + + + (must be 51472 for mainnet) + (must be 51472 for mainnet) + + + Accept command line and JSON-RPC commands + Accept command line and JSON-RPC commands + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Accept connections from outside (default: 1 if no -proxy or -connect) + + + Accept public REST requests (default: %u) + Accept public REST requests (default: %u) + + + Acceptable ciphers (default: %s) + Acceptable ciphers (default: %s) + + + Add a node to connect to and attempt to keep the connection open + Add a node to connect to and attempt to keep the connection open + + + Allow DNS lookups for -addnode, -seednode and -connect + Allow DNS lookups for -addnode, -seednode and -connect + + + Already have that input. + Already have that input. + + + Always query for peer addresses via DNS lookup (default: %u) + Always query for peer addresses via DNS lookup (default: %u) + + + Attempt to recover private keys from a corrupt wallet.dat + Attempt to recover private keys from a corrupt wallet.dat + + + Block creation options: + Block creation options: + + + Can't denominate: no compatible inputs left. + Can't denominate: no compatible inputs left. + + + Can't find random Masternode. + Can't find random Masternode. + + + Can't mix while sync in progress. + Can't mix while sync in progress. + + + Cannot downgrade wallet + Cannot downgrade wallet + + + Cannot resolve -bind address: '%s' + Cannot resolve -bind address: '%s' + + + Cannot resolve -externalip address: '%s' + Cannot resolve -externalip address: '%s' + + + Cannot resolve -whitebind address: '%s' + Cannot resolve -whitebind address: '%s' + + + Cannot write default address + Cannot write default address + + + Collateral not valid. + Collateral not valid. + + + Connect only to the specified node(s) + Connect only to the specified node(s) + + + Connect through SOCKS5 proxy + Connect through SOCKS5 proxy + + + Connect to a node to retrieve peer addresses, and disconnect + Connect to a node to retrieve peer addresses, and disconnect + + + Connection options: + Connection options: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Core Developers + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i The Dash Core Developers + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i The PIVX Core Developers + + + Corrupted block database detected + Corrupted block database detected + + + Could not parse -rpcbind value %s as network address + Could not parse -rpcbind value %s as network address + + + Could not parse masternode.conf + Could not parse masternode.conf + + + Debugging/Testing options: + Debugging/Testing options: + + + Disable safemode, override a real safe mode event (default: %u) + Disable safemode, override a real safe mode event (default: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Discover own IP address (default: 1 when listening and no -externalip) + + + Do not load the wallet and disable wallet RPC calls + Do not load the wallet and disable wallet RPC calls + + + Do you want to rebuild the block database now? + Do you want to rebuild the block database now? + + + Done loading + Done loading + + + Enable the client to act as a masternode (0-1, default: %u) + Enable the client to act as a masternode (0-1, default: %u) + + + Entries are full. + Entries are full. + + + Error connecting to Masternode. + Error connecting to Masternode. + + + Error initializing block database + Error initializing block database + + + Error initializing wallet database environment %s! + Error initializing wallet database environment %s! + + + Error loading block database + Error loading block database + + + Error loading wallet.dat + Error loading wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Error loading wallet.dat: Wallet corrupted + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Error loading wallet.dat: Wallet requires newer version of PIVX Core + + + Error opening block database + Error opening block database + + + Error reading from database, shutting down. + Error reading from database, shutting down. + + + Error recovering public key. + Error recovering public key. + + + Error + Error + + + Error: A fatal internal error occured, see debug.log for details + Error: A fatal internal error occured, see debug.log for details + + + Error: Can't select current denominated inputs + Error: Can't select current denominated inputs + + + Error: Disk space is low! + Error: Disk space is low! + + + Error: Unsupported argument -tor found, use -onion. + Error: Unsupported argument -tor found, use -onion. + + + Error: Wallet locked, unable to create transaction! + Error: Wallet locked, unable to create transaction! + + + Error: You already have pending entries in the Obfuscation pool + Error: You already have pending entries in the Obfuscation pool + + + Failed to listen on any port. Use -listen=0 if you want this. + Failed to listen on any port. Use -listen=0 if you want this. + + + Failed to read block + Failed to read block + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Fee (in PIV/kB) to add to transactions you send (default: %s) + + + Finalizing transaction. + Finalizing transaction. + + + Force safe mode (default: %u) + Force safe mode (default: %u) + + + Found enough users, signing ( waiting %s ) + Found enough users, signing ( waiting %s ) + + + Found enough users, signing ... + Found enough users, signing ... + + + Generate coins (default: %u) + Generate coins (default: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + How many blocks to check at startup (default: %u, 0 = all) + + + If <category> is not supplied, output all debugging information. + If <category> is not supplied, output all debugging information. + + + Importing... + Importing... + + + Imports blocks from external blk000??.dat file + Imports blocks from external blk000??.dat file + + + Include IP addresses in debug output (default: %u) + Include IP addresses in debug output (default: %u) + + + Incompatible mode. + Incompatible mode. + + + Incompatible version. + Incompatible version. + + + Incorrect or no genesis block found. Wrong datadir for network? + Incorrect or no genesis block found. Wrong datadir for network? + + + Information + Information + + + Initialization sanity check failed. PIVX Core is shutting down. + Initialization sanity check failed. PIVX Core is shutting down. + + + Input is not valid. + Input is not valid. + + + Insufficient funds. + Insufficient funds. + + + Invalid -onion address: '%s' + Invalid -onion address: '%s' + + + Invalid -proxy address: '%s' + Invalid -proxy address: '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + Invalid amount for -maxtxfee=<amount>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Invalid amount for -minrelaytxfee=<amount>: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Invalid amount for -mintxfee=<amount>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + + + Invalid amount for -paytxfee=<amount>: '%s' + Invalid amount for -paytxfee=<amount>: '%s' + + + Invalid amount for -reservebalance=<amount> + Invalid amount for -reservebalance=<amount> + + + Invalid masternodeprivkey. Please see documenation. + Invalid masternodeprivkey. Please see documenation. + + + Invalid netmask specified in -whitelist: '%s' + Invalid netmask specified in -whitelist: '%s' + + + Invalid port detected in masternode.conf + Invalid port detected in masternode.conf + + + Invalid private key. + Invalid private key. + + + Invalid script detected. + Invalid script detected. + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + + + <category> can be: + <category> can be: + + + Attempt to force blockchain corruption recovery + Attempt to force blockchain corruption recovery + + + Display the stake modifier calculations in the debug.log file. + Display the stake modifier calculations in the debug.log file. + + + Display verbose coin stake messages in the debug.log file. + Display verbose coin stake messages in the debug.log file. + + + Enable publish hash block in <address> + Enable publish hash block in <address> + + + Enable publish hash transaction (locked via SwiftTX) in <address> + Enable publish hash transaction (locked via SwiftTX) in <address> + + + Enable publish hash transaction in <address> + Enable publish hash transaction in <address> + + + Enable publish raw block in <address> + Enable publish raw block in <address> + + + Enable publish raw transaction (locked via SwiftTX) in <address> + Enable publish raw transaction (locked via SwiftTX) in <address> + + + Enable publish raw transaction in <address> + Enable publish raw transaction in <address> + + + Enable staking functionality (0-1, default: %u) + Enable staking functionality (0-1, default: %u) + + + Keep N PIV anonymized (default: %u) + Keep N PIV anonymized (default: %u) + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Keep at most <n> unconnectable transactions in memory (default: %u) + + + Last Obfuscation was too recent. + Last Obfuscation was too recent. + + + Last successful Obfuscation action was too recent. + Last successful Obfuscation action was too recent. + + + Limit size of signature cache to <n> entries (default: %u) + Limit size of signature cache to <n> entries (default: %u) + + + Line: %d + Line: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Listen for connections on <port> (default: %u or testnet: %u) + + + Loading addresses... + Loading addresses... + + + Loading block index... + Loading block index... + + + Loading budget cache... + Loading budget cache... + + + Loading masternode cache... + Loading masternode cache... + + + Loading masternode payment cache... + Loading masternode payment cache... + + + Loading wallet... (%3.2f %%) + Loading wallet... (%3.2f %%) + + + Loading wallet... + Loading wallet... + + + Lock is already in place. + Lock is already in place. + + + Lock masternodes from masternode configuration file (default: %u) + Lock masternodes from masternode configuration file (default: %u) + + + Maintain at most <n> connections to peers (default: %u) + Maintain at most <n> connections to peers (default: %u) + + + Masternode options: + Masternode options: + + + Masternode queue is full. + Masternode queue is full. + + + Masternode: + Masternode: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + + + Missing input transaction information. + Missing input transaction information. + + + Mixing in progress... + Mixing in progress... + + + Need to specify a port with -whitebind: '%s' + Need to specify a port with -whitebind: '%s' + + + No Masternodes detected. + No Masternodes detected. + + + No compatible Masternode found. + No compatible Masternode found. + + + No funds detected in need of denominating. + No funds detected in need of denominating. + + + No matching denominations found for mixing. + No matching denominations found for mixing. + + + Node relay options: + Node relay options: + + + Non-standard public key detected. + Non-standard public key detected. + + + Not compatible with existing transactions. + Not compatible with existing transactions. + + + Not enough file descriptors available. + Not enough file descriptors available. + + + Not in the Masternode list. + Not in the Masternode list. + + + Number of automatic wallet backups (default: 10) + Number of automatic wallet backups (default: 10) + + + Obfuscation is idle. + Obfuscation is idle. + + + Obfuscation options: + Obfuscation options: + + + Obfuscation request complete: + Obfuscation request complete: + + + Obfuscation request incomplete: + Obfuscation request incomplete: + + + Only accept block chain matching built-in checkpoints (default: %u) + Only accept block chain matching built-in checkpoints (default: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + + + Options: + Options: + + + Password for JSON-RPC connections + Password for JSON-RPC connections + + + Prepend debug output with timestamp (default: %u) + Prepend debug output with timestamp (default: %u) + + + Print version and exit + Print version and exit + + + RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) + RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) + + + RPC server options: + RPC server options: + + + RPC support for HTTP persistent connections (default: %d) + RPC support for HTTP persistent connections (default: %d) + + + Randomly drop 1 of every <n> network messages + Randomly drop 1 of every <n> network messages + + + Randomly fuzz 1 of every <n> network messages + Randomly fuzz 1 of every <n> network messages + + + Rebuild block chain index from current blk000??.dat files + Rebuild block chain index from current blk000??.dat files + + + Receive and display P2P network alerts (default: %u) + Receive and display P2P network alerts (default: %u) + + + Relay and mine data carrier transactions (default: %u) + Relay and mine data carrier transactions (default: %u) + + + Relay non-P2SH multisig (default: %u) + Relay non-P2SH multisig (default: %u) + + + Rescan the block chain for missing wallet transactions + Rescan the block chain for missing wallet transactions + + + Rescanning... + Rescanning... + + + Run a thread to flush wallet periodically (default: %u) + Run a thread to flush wallet periodically (default: %u) + + + Run in the background as a daemon and accept commands + Run in the background as a daemon and accept commands + + + Send transactions as zero-fee transactions if possible (default: %u) + Send transactions as zero-fee transactions if possible (default: %u) + + + Server certificate file (default: %s) + Server certificate file (default: %s) + + + Server private key (default: %s) + Server private key (default: %s) + + + Session not complete! + Session not complete! + + + Session timed out. + Session timed out. + + + Set database cache size in megabytes (%d to %d, default: %d) + Set database cache size in megabytes (%d to %d, default: %d) + + + Set external address:port to get to this masternode (example: %s) + Set external address:port to get to this masternode (example: %s) + + + Set key pool size to <n> (default: %u) + Set key pool size to <n> (default: %u) + + + Set maximum block size in bytes (default: %d) + Set maximum block size in bytes (default: %d) + + + Set minimum block size in bytes (default: %u) + Set minimum block size in bytes (default: %u) + + + Set the masternode private key + Set the masternode private key + + + Set the number of threads to service RPC calls (default: %d) + Set the number of threads to service RPC calls (default: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + + + Show all debugging options (usage: --help -help-debug) + Show all debugging options (usage: --help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Shrink debug.log file on client startup (default: 1 when no -debug) + + + Signing failed. + Signing failed. + + + Signing timed out. + Signing timed out. + + + Signing transaction failed + Signing transaction failed + + + Specify configuration file (default: %s) + Specify configuration file (default: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Specify connection timeout in milliseconds (minimum: 1, default: %d) + + + Specify data directory + Specify data directory + + + Specify masternode configuration file (default: %s) + Specify masternode configuration file (default: %s) + + + Specify pid file (default: %s) + Specify pid file (default: %s) + + + Specify wallet file (within data directory) + Specify wallet file (within data directory) + + + Specify your own public address + Specify your own public address + + + Spend unconfirmed change when sending transactions (default: %u) + Spend unconfirmed change when sending transactions (default: %u) + + + Staking options: + Staking options: + + + Stop running after importing blocks from disk (default: %u) + Stop running after importing blocks from disk (default: %u) + + + Submitted following entries to masternode: %u / %d + Submitted following entries to masternode: %u / %d + + + Submitted to masternode, waiting for more entries ( %u / %d ) %s + Submitted to masternode, waiting for more entries ( %u / %d ) %s + + + Submitted to masternode, waiting in queue %s + Submitted to masternode, waiting in queue %s + + + SwiftTX options: + SwiftTX options: + + + Synchronization failed + Synchronization failed + + + Synchronization finished + Synchronization finished + + + Synchronization pending... + Synchronization pending... + + + Synchronizing budgets... + Synchronizing budgets... + + + Synchronizing masternode winners... + Synchronizing masternode winners... + + + Synchronizing masternodes... + Synchronizing masternodes... + + + Synchronizing sporks... + Synchronizing sporks... + + + This help message + This help message + + + This is experimental software. + This is experimental software. + + + This is intended for regression testing tools and app development. + This is intended for regression testing tools and app development. + + + This is not a Masternode. + This is not a Masternode. + + + Threshold for disconnecting misbehaving peers (default: %u) + Threshold for disconnecting misbehaving peers (default: %u) + + + Transaction amount too small + Transaction amount too small + + + Transaction amounts must be positive + Transaction amounts must be positive + + + Transaction created successfully. + Transaction created successfully. + + + Transaction fees are too high. + Transaction fees are too high. + + + Transaction not valid. + Transaction not valid. + + + Transaction too large for fee policy + Transaction too large for fee policy + + + Transaction too large + Transaction too large + + + Transmitting final transaction. + Transmitting final transaction. + + + Unable to bind to %s on this computer (bind returned error %s) + Unable to bind to %s on this computer (bind returned error %s) + + + Unable to sign spork message, wrong key? + Unable to sign spork message, wrong key? + + + Unknown network specified in -onlynet: '%s' + Unknown network specified in -onlynet: '%s' + + + Unknown state: id = %u + Unknown state: id = %u + + + Upgrade wallet to latest format + Upgrade wallet to latest format + + + Use N separate masternodes to anonymize funds (2-8, default: %u) + Use N separate masternodes to anonymize funds (2-8, default: %u) + + + Use OpenSSL (https) for JSON-RPC connections + Use OpenSSL (https) for JSON-RPC connections + + + Use UPnP to map the listening port (default: %u) + Use UPnP to map the listening port (default: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Use UPnP to map the listening port (default: 1 when listening) + + + Use the test network + Use the test network + + + Username for JSON-RPC connections + Username for JSON-RPC connections + + + Value more than Obfuscation pool maximum allows. + Value more than Obfuscation pool maximum allows. + + + Verifying blocks... + Verifying blocks... + + + Verifying wallet... + Verifying wallet... + + + Wallet %s resides outside data directory %s + Wallet %s resides outside data directory %s + + + Wallet is locked. + Wallet is locked. + + + Wallet needed to be rewritten: restart PIVX Core to complete + Wallet needed to be rewritten: restart PIVX Core to complete + + + Wallet options: + Wallet options: + + + Wallet window title + Wallet window title + + + Warning + Warning + + + Warning: This version is obsolete, upgrade required! + Warning: This version is obsolete, upgrade required! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Warning: Unsupported argument -debugnet ignored, use -debug=net. + + + Will retry... + Will retry... + + + You need to rebuild the database using -reindex to change -txindex + You need to rebuild the database using -reindex to change -txindex + + + Your entries added successfully. + Your entries added successfully. + + + Your transaction was accepted into the pool! + Your transaction was accepted into the pool! + + + Zapping all transactions from wallet... + Zapping all transactions from wallet... + + + ZeroMQ notification options: + ZeroMQ notification options: + + + on startup + on startup + + + wallet.dat corrupt, salvage failed + wallet.dat corrupt, salvage failed + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_eo.ts b/src/qt/locale/pivx_eo.ts new file mode 100644 index 0000000..2a68991 --- /dev/null +++ b/src/qt/locale/pivx_eo.ts @@ -0,0 +1,1903 @@ + + + AddNewAddressDialog + + Address + Adreso + + + + AddNewContactDialog + + TextLabel + Tekstetikedo + + + + AddressBookPage + + Right-click to edit address or label + Dekstre klaku por korekti au etikedo + + + Create a new address + Krei novan adreson + + + &New + &Nova + + + Copy the currently selected address to the system clipboard + Kopii la aktualan elektitan adreson al la sistemo-poÅo + + + &Copy + &Kopii + + + Delete the currently selected address from the list + Forigu la aktuala elektita adreson de la listo + + + &Delete + &Forigi + + + Export the data in the current tab to a file + Eksporti la datumojn sur la nuna pestajo al dosiero + + + &Export + &Eksporti + + + C&lose + Fermi + + + Choose the address to send coins to + Elektu la adreson por sendi mono al + + + Choose the address to receive coins with + Elektu la adreson por ricevi monerojn kun + + + C&hoose + &Elektu + + + Sending addresses + Sendante adresojn + + + Receiving addresses + Ricevanta adresojn + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Ĉi tiuj estas viaj PIVX adreso por sendi pagojn. Ĉiam kontroku la kvanto kaj la ricevanta antaÅ­ ol sendi monerojn. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Ĉi tiuj estas vian adreson por ricevi pagojn. Äœi rekomendas uzi novajn ricenvantan adreson por ĉiu nova transakcio. + + + &Copy Address + &Kopii adreson + + + Copy &Label + Kopi&Etikedo + + + &Edit + &Redaktu + + + Export Address List + Eksportu adreson listo + + + Comma separated file (*.csv) + Koma disgito dosiero (*.csv) + + + Exporting Failed + Eksporti malsukcesis + + + There was an error trying to save the address list to %1. Please try again. + Estis eraro dum savo la adreso al la listo %1. Bonvolu reprovi. + + + + AddressLabelRow + + Form + Formo + + + + AddressTableModel + + Label + Etikedo + + + Address + Adreso + + + Date + Dato + + + (no label) + (neniu etikedo) + + + + AddressesWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + + AskPassphraseDialog + + Passphrase Dialog + Pasfrazon dialogo + + + TextLabel + Tekstetikedo + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Tajpu la novan pasfrazo al la monujo.<br/>Bonvolu uzi unu pasfrazon kun<b>dek ol pli hazardaj signoj</b>, aÅ­ <b>okt ol pli vortoj</b>. + + + Encrypt wallet + Ĉifri monujon + + + This operation needs your wallet passphrase to unlock the wallet. + Ĉi tiun operacio bezonas vian monujon pasfrazon por malÅlosi la monujon. + + + Unlock wallet + MalÅlosi monujon + + + This operation needs your wallet passphrase to decrypt the wallet. + Ĉi tiun operacio bezonas vian pasfrazon por malĉifri la monujon + + + Decrypt wallet + Malĉifri monujon + + + Change passphrase + ÅœanÄi pasfrazon + + + Enter the old and new passphrase to the wallet. + Skribu la malnovan kaj la novan pasfrazon al la monujo. + + + Confirm wallet encryption + Konfirmi monerĉifrado + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX fermos nun por fini ĉifran procezon. Memoru ke ĉifri vian monujon ne povas plene protekti viajn PIVs de esti Åtelita per malware infektanta vian komputilon. + + + Are you sure you wish to encrypt your wallet? + Ĉu vi certas ke vi volas ĉifri vian monujon? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Averto: se vi ĉifras vian monujo kaj perdi vian pasfrazon, vi <b>PERDOS VIAN TUTAN MONON</b>! + + + Wallet encrypted + Monujo ĉifrita + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + GRAVA: Ajna antaÅ­a restaÅ­rkopio vi faris de via monujo dosiero devus esti anstataÅ­ita kun la nova generita ĉifrita monujo dosiero. Por sekurecaj kialoj, antaÅ­a restaÅ­rkopio de la malĉifrita monujo dosiero faridÄos senutila tuj kiam vi komencos uzi la novan ĉifritan monujon. + + + Wallet encryption failed + Monujo ĉifrado malsukcesis + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Monujo ĉifrado malsukcesis pro unu interna eraro. Vian monujon ne estis ĉifrata. + + + The supplied passphrases do not match. + La provizata pasfrazon ne kongruas. + + + Wallet unlock failed + Monujo malÅlosilo malsukcesis + + + The passphrase entered for the wallet decryption was incorrect. + La provizata pasfrazon por la monujoalĉifrado estis malkorekta. + + + Wallet decryption failed + Monujo malĉifrado malsukcesis + + + Wallet passphrase was successfully changed. + Monujo pasfrazo Åangi sukcesis + + + Warning: The Caps Lock key is on! + Avendo: la majuskulo Ålosilo estas sur! + + + + BanTableModel + + IP/Netmask + IP/Retmasko + + + Banned Until + Malpermesita Äis + + + + BlockExplorer + + Blockchain Explorer + &Blokĉeno esplorilo + + + Back + Reen + + + Forward + AntaÅ­i + + + Address / Block / Transaction + Adreso/Bloko/Transakcio + + + Search + Serĉu + + + TextLabel + Tekstetikedo + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Ĉiuj transakcio ne estos montri. Peor vidi ĉiuj transakcio bezonas agordi txindekso=1 en la agordo dosiero (pivx.conf). + + + + CSRow + + Form + Formo + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Totalo: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Nekonata: %5) + + + Network Alert + Reto alarmo + + + + CoinControlDialog + + Quantity: + Kvanto + + + Bytes: + Bajtoj + + + Fee: + Krompago + + + Coin Selection + Mono selektado + + + Change: + ÅœanÄu: + + + Tree mode + ArboreÄimo + + + List mode + ListreÄimo + + + (1 locked) + (1 enfermita) + + + Amount + Sumo: + + + 0 + 0 + + + Received with label + Ricevita kun etikedo + + + Received with address + Ricevita kun adreso + + + Date + Dato + + + Confirmations + Konfirmoj + + + Confirmed + Konfirmita + + + Copy address + Kopi adreson + + + Copy label + Kopi etikedo + + + Copy amount + Kopii kvanto + + + Copy transaction ID + Kopiu transakcion ID + + + Lock unspent + Åœlosi neelspezita + + + Unlock unspent + Malfermi malelspezita + + + Copy quantity + Kopi kvanto + + + Copy fee + Kopiu krompago + + + Copy after fee + Kopiu post krompago + + + Copy bytes + Kopiu bajtoj + + + Copy priority + Kopiu prioritato + + + Copy change + Kopi ÅanÄo + + + Please switch to "List mode" to use this function. + Bonvolu baskulu "Listo modo" por uzi tiun funkcio. + + + highest + plej alta + + + higher + pli alta + + + high + alta + + + medium-high + alta meza + + + medium + meza + + + low-medium + baza meza + + + low + malalta + + + lower + pli malalta + + + lowest + plej malalta + + + (%1 locked) + (%1 Ålosita) + + + none + neniu + + + yes + jes + + + no + ne + + + This label turns red, if the transaction size is greater than 1000 bytes. + Tiun etikedon ruÄigis se la transakcio grandeco estas pli granda ol 1000 bajtoj. + + + This means a fee of at least %1 per kB is required. + Tio signifas %1 por KB almenaÅ­ bezonas. + + + Can vary +/- 1 byte per input. + Povas varii +/- 1 bajto per enigo. + + + Transactions with higher priority are more likely to get included into a block. + Pli alta prioritato tansakcio estas pli verÅajna esti inklusitaj en la bloko + + + This label turns red, if the priority is smaller than "medium". + Tiun etikedo ruÄiÄas se la prioritato estas pli malgranda ol "meza". + + + This label turns red, if any recipient receives an amount smaller than %1. + Ĉi tiun etikedo ruÄiÄas se iu ajna ricevanto ricevas totalo pli malgranda ol %1. + + + Can vary +/- %1 upiv per input. + Povas varii +/- %1 upiv per enigo. + + + (no label) + (neniu etikedo) + + + change from %1 (%2) + ÅanÄi el %1 (%2) + + + (change) + (ÅanÄu) + + + + CoinControlPivWidget + + TextLabel + Tekstetikedo + + + Quantity: + Kvanto + + + Fee: + Krompago + + + Amount + Sumo: + + + Label + Etikedo + + + Address + Adreso + + + Type + Tajpu + + + Date + Dato + + + Confirmations + Konfirmoj + + + Bytes: + Bajtoj + + + Change: + ÅœanÄu: + + + + ColdStakingWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + + ContactDropdownRow + + Form + Formo + + + + DashboardWidget + + Form + Formo + + + Warning + Averto + + + TextLabel + Tekstetikedo + + + zPIV + zPIV + + + Received + Ricevita + + + Sent + Sendita + + + + DefaultDialog + + Form + Formo + + + + DenomGenerationDialog + + Form + Formo + + + + EditAddressDialog + + Edit Address + Redaktu adreson + + + &Label + &Etikedo + + + The label associated with this address list entry + Etikedo asociita kun la adreso eniri listo + + + &Address + &Adreso + + + The address associated with this address list entry. This can only be modified for sending addresses. + Asociita adreson kun ĉi tio adresaro eniro. Ĉi tio povas nun esti modifita por send-adresoj. + + + New receiving address + Nova ricevanta adreso + + + New sending address + Nova sendanta adreso + + + Edit receiving address + Redaktu ricenvantan adreson + + + Edit sending address + Redaktu sendantan adreson + + + The entered address "%1" is not a valid PIVX address. + La enirita "%1" adreso ne estas validan PIVX adreson. + + + The entered address "%1" is already in the address book. + La enirita adreson "%1" estas jam en la adresaron. + + + Could not unlock wallet. + Ne povis malÅlosi monujo. + + + New key generation failed. + Novan Ålosilo generacio malsukcesis. + + + + ExpandableButton + + Form + Formo + + + + FreespaceChecker + + A new data directory will be created. + Novan datumojn dosierujojn estos kreita. + + + name + nomo + + + Directory already exists. Add %1 if you intend to create a new directory here. + Dosoerujo jam eksistas. Aldonu %1 se vi volus krei novan dosierujon ĉi tie. + + + Path already exists, and is not a directory. + Vojon jam eksistas, kaj ne estas dosierujon. + + + Cannot create data directory here. + Ne povas krei datumoj dosierujo ĉi tie. + + + + GovernancePage + + Form + Formo + + + 0 + 0 + + + + HelpMessageDialog + + version + versio + + + PIVX Core + PIVX kerno + + + (%1-bit) + (%1-bajto) + + + About PIVX Core + Pri PIVX Kerno + + + Command-line options + Komando-linio opcioj + + + Usage: + Usado: + + + command-line options + komando-linio opcioj + + + UI Options: + UI Agordoj: + + + Choose data directory on startup (default: %u) + Elektu datumojn dosierujo sur komenĉo (defaÅ­ltas: %u) + + + Show splash screen on startup (default: %u) + Montri ekranĉeblan ekranon sur komenĉo (defaÅ­ltas: %u) + + + Set language, for example "de_DE" (default: system locale) + Agordi lingvon, ekzemple "de_DE" (defaÅ­lta: sistemo-loka) + + + Start minimized + Komenci minimumigita + + + + Intro + + Welcome + Bonvenon + + + Welcome to PIVX Core. + Bonvenon al la PIVX Kerno. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Ĉar estas la unuan fojon ke la programo estas lanĉita, vi povas elekti kie PIVX kernk storigis sian datumojn. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX kerno elÅutos kaj konservi kopion de la PIVX blokĉeno. AlmenaÅ­ %1GB datumoj stokitos en ĉi tiun dosierujo, kaj Äi kresko kun la tempo. Monujo stokitos en ĉi tiun dosierujo. + + + Use the default data directory + Uzi defaÅ­ltan dosierujon + + + PIVX Core + PIVX kerno + + + Error: Specified data directory "%1" cannot be created. + Eraro: specifita datumoj dosierujo "%1" ne povas esti kreita. + + + Error + Eraro + + + %1 GB of free space available + %1 GB de libera spaco havebla + + + (of %1 GB needed) + (de %1 GB bezonita) + + + + LoadingDialog + + Form + Formo + + + TextLabel + Tekstetikedo + + + + LockUnlock + + Form + Formo + + + + MNRow + + Form + Formo + + + + MasterNodeWizardDialog + + Name + Nomo + + + Address + Adreso + + + + MasterNodesWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + Delete + Forigi + + + + MnInfoDialog + + Form + Formo + + + Status: + Åœtato: + + + + MyAddressRow + + Form + Formo + + + + NavMenuWidget + + Form + Formo + + + + OpenURIDialog + + Open URI + Malfermi URI + + + Open payment request from URI or file + Malfermi pago peto el URI aÅ­ dosiero + + + TextLabel + Tekstetikedo + + + Select payment request file + Elektu pago peto dosieron + + + Select payment request file to open + Elektu pago peto dosieron por malfermi + + + + OptionButton + + Form + Formo + + + TextLabel + Tekstetikedo + + + + OptionsDialog + + Options + Agordoj + + + &Main + &Ĉefa + + + MB + MB + + + W&allet + &Monujo + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + AÅ­tomate malfermi PIVX klienton havenon en la enkursigilo. Tio nur laboras kiam via enkursigilo subtenas UPnP kaj estas ebligita. + + + Accept connections from outside + Accepti ekster-ligojn + + + Expert + Sperta + + + &Start PIVX on system login + &Komencu PIVX en sistem-ensaluto + + + &Spend unconfirmed change + &Elspezi nekonfirmita ÅanÄo + + + &Network + &Reto + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + La uzanta interfaco lingvo povas esti agordi ĉi tie. Tio agordo efektivigos post rekomenci PIVX. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Ĉu mankas lingvon aÅ­ nekompleta tradukado? Helpu la tradukcio ĉi tie: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Connect to the PIVX network through a SOCKS5 proxy. + Konekti al la PIVX reto per SOCKS5 prokurilo. + + + Proxy &IP: + Prokurilo &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP prokurilo adreso (ekz. IPv4:127.0.0.1 / IPv6: ::1) + + + &Window + &Fenestro + + + User Interface &language: + Uzanta interfaca &lingvo: + + + User Interface Theme: + Usanto interfaco temo: + + + Hide empty balances + KaÅi malplenajn ekvilibrojn + + + &OK + &OK + + + default + defaÅ­lte + + + none + neniu + + + Confirm options reset + Konfirmu restarigi opiojn + + + The supplied proxy address is invalid. + La provinta prokurilon adreson estas nevalida + + + The supplied proxy settings are invalid. + La provinta prokurilon agordojn estas nevalida. + + + + PIVXGUI + + PIVX Core + PIVX kerno + + + Wallet + Monujo + + + Node + Nodo + + + &Show / Hide + &Montri/KaÅi + + + Show or hide the main Window + Montri aÅ­ kaÅi la ĉefan fenestron + + + E&xit + &Eliri + + + Quit application + Eliri + + + PIVX Core client + PIVX Kerno kliento + + + Error + Eraro + + + Warning + Averto + + + Information + Informoj + + + Sent MultiSend transaction + Sendita multisend transakcio + + + Sent transaction + Sendita transakcio + + + Incoming transaction + Venonta transakcio + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Dato: %1 +Kvanto: %2 +Tipo: %3 +Adreso: %4 + + + + + PWidget + + + PaymentServer + + Payment request error + Pago peto eraro + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Pago peto dosiero ne povas estas legi! Ĉi tio pivas esti kauzita por nevalida pago peto dosiero. + + + Payment request rejected + Malakceptita pago peto + + + + PeerTableModel + + + PrivacyWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + + ProposalFrame + + + QObject + + Amount + Sumo: + + + %1 d + %1 t + + + NETWORK + RETO + + + UNKNOWN + NEKONATA + + + PIVX Core + PIVX kerno + + + + RPCConsole + + Tools window + Iloj fenestro + + + &Information + &Informoj + + + Name + Nomo + + + &Open + &Malfermi + + + Network + Reto + + + Block chain + Blokoĉeno + + + &Console + &Konzolo + + + Clear console + Malplenigi konzolo + + + &Clear + &Malplenigi + + + Received + Ricevita + + + Sent + Sendita + + + &Peers + &Samuloj + + + Protocol + Protokolo + + + Rebuild index + Rekonstrui indekson + + + Welcome to the PIVX RPC console. + Bonvenon al la PIVX RPC konzolo. + + + 1 &hour + 1&horo + + + 1 &day + 1&tago + + + 1 &week + 1&semajno + + + Type <b>help</b> for an overview of available commands. + Tajpu <b>helpo</b> por superrigardi la disponeblajn komandojn. + + + never + neniam + + + Yes + Jes + + + No + Ne + + + + ReceiveDialog + + + ReceiveWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + + RecentRequestsTableModel + + Date + Dato + + + Label + Etikedo + + + Message + MesaÄo + + + Address + Adreso + + + Amount + Sumo: + + + (no label) + (neniu etikedo) + + + (no message) + (neniam mesaÄo) + + + + RequestDialog + + Amount + Sumo: + + + TextLabel + Tekstetikedo + + + Label + Etikedo + + + Error + Eraro + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + Form + Formo + + + + SendMultiRow + + Form + Formo + + + TextLabel + Tekstetikedo + + + + SendWidget + + Amount + Sumo: + + + Spend Zerocoin + Elspezi zerocoin + + + Too much inputs ( + Tro eniroj ( + + + + SettingsBackupWallet + + Form + Formo + + + TextLabel + Tekstetikedo + + + + SettingsBitToolWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + Import Address + Importu adreson + + + Clear + Malplenigi + + + The entered passphrase is invalid. + La skribita pasfrazo estas nevalida. + + + Allowed: 0-9,a-z,A-Z, + Permesita: 0-9,a-z,A-Z, + + + The entered address is invalid. + La skribita adreso estas nevalida. + + + Please check the address and try again. + Bonvolu kontroli la adreson kaj riprovi. + + + The entered address does not refer to a key. + La enirita adreso ne rilatas al Ålosilo. + + + Wallet unlock was cancelled. + Monujo malĉifri estis nuligita. + + + Private key for the entered address is not available. + Privatan Ålosilon por la enirita adreson estas ne disponebla + + + Failed to decrypt. + Malsukcesis maĉifri + + + Please check the key and passphrase and try again. + Bonvolu kontroli la Ålosilo kaj la pasfrazo kaj riprovi. + + + Data Not Valid. + Nevalidaj datumoj + + + Please try again. + Bonvolu reprovi. + + + Please wait while key is imported + Bonvolu atendi dum la Ålosilo estas importita + + + + SettingsConsoleWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + Welcome to the PIVX RPC console. + Bonvenon al la PIVX RPC konzolo. + + + Type <b>help</b> for an overview of available commands. + Tajpu <b>helpo</b> por superrigardi la disponeblajn komandojn. + + + + SettingsDisplayOptionsWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + Hide empty balances + KaÅi malplenajn ekvilibrojn + + + default + defaÅ­lte + + + + SettingsFaqWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + + SettingsInformationWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + Information + Informoj + + + Network + Reto + + + + SettingsMainOptionsWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + + SettingsMultisendDialog + + Form + Formo + + + TextLabel + Tekstetikedo + + + + SettingsMultisendWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + Active + Aktiva + + + + SettingsSignMessageWidgets + + Form + Formo + + + TextLabel + Tekstetikedo + + + Clear + Malplenigi + + + Message + MesaÄo + + + The entered address is invalid. + La skribita adreso estas nevalida. + + + Please check the address and try again. + Bonvolu kontroli la adreson kaj riprovi. + + + The entered address does not refer to a key. + La enirita adreso ne rilatas al Ålosilo. + + + Wallet unlock was cancelled. + Monujo malĉifri estis nuligita. + + + Private key for the entered address is not available. + Privatan Ålosilon por la enirita adreson estas ne disponebla + + + + SettingsWalletOptionsWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + Wallet + Monujo + + + Network + Reto + + + + SettingsWalletRepairWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + Rebuild index + Rekonstrui indekson + + + + SettingsWidget + + Form + Formo + + + TextLabel + Tekstetikedo + + + Wallet + Monujo + + + Options + Agordoj + + + Information + Informoj + + + Confirm options reset + Konfirmu restarigi opiojn + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX kerno fermanta... + + + + SnackBar + + Form + Formo + + + + Splash + + Form + Formo + + + PIVX Core + PIVX kerno + + + + SplashScreen + + PIVX Core + PIVX kerno + + + The Bitcoin Core developers + La Bitcoin kerno programistoj + + + The Dash Core developers + La Dash kerno programistoj + + + The PIVX Core developers + La PIVX kerno programistoj + + + + TooltipMenu + + Form + Formo + + + Delete + Forigi + + + + TopBar + + Form + Formo + + + %1 and %2 + %1 kaj %2 + + + + TrafficGraphWidget + + + TransactionDesc + + conflicted + konfliktita + + + Status + Statuso + + + Date + Dato + + + own address + propra adreso + + + label + etikedo + + + Transaction fee + Transakcio krompago + + + Message + MesaÄo + + + Amount + Sumo: + + + + TransactionTableModel + + Date + Dato + + + Type + Tajpu + + + Address + Adreso + + + Received with + Ricevita kun + + + Sent to + Sendita al + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Orfo bloko - generita sed ne akceptita. Tio ne ÅanÄas vian tenojn. + + + + TxDetailDialog + + Form + Formo + + + Fee: + Krompago + + + Status: + Åœtato: + + + TextLabel + Tekstetikedo + + + SEND + SENDU + + + + TxRow + + Form + Formo + + + + WalletModel + + Send Coins + Sendu monojn + + + + WalletPasswordDialog + + TextLabel + Tekstetikedo + + + + WelcomeContentWidget + + Welcome + Bonvenon + + + default + defaÅ­lte + + + + ZPivControlDialog + + Coin Control + Mono kontrolo + + + Quantity: + Kvanto + + + Is Spendable + Estas elspezebla + + + 0 + 0 + + + + pivx-core + + Connect through SOCKS5 proxy + Konekti per SOCKS5 prokurilo + + + Error + Eraro + + + Information + Informoj + + + Loading block index... + ÅœarÄante blok-indekson + + + Synchronization failed + Sincronigo malsukcesis + + + This help message + Jeno helpo mesaÄo + + + This is experimental software. + Ĉi tio estas eksperimenta programaro. + + + Transaction too large + Tro longa transakcio + + + Wallet options: + Monujo opcioj: + + + Warning + Averto + + + You don't have enough Zerocoins in your wallet + Vi ne havas sufiĉan Zeromonojn en vian monujon + + + Zerocoin options: + Zeromono opcioj: + + + on startup + je startigo + + + + send + + Form + Formo + + + TextLabel + Tekstetikedo + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_es.ts b/src/qt/locale/pivx_es.ts new file mode 100644 index 0000000..308dc8a --- /dev/null +++ b/src/qt/locale/pivx_es.ts @@ -0,0 +1,7509 @@ + + + AddNewAddressDialog + + Dialog + Diálogo + + + My Address + Mi Dirección + + + Address + Dirección + + + PushButton + Presionar el botón + + + CANCEL + CANCELAR + + + OK + OK + + + + AddNewContactDialog + + Dialog + Diálogo + + + TextLabel + EtiquetaDeTexto + + + CANCEL + CANCELAR + + + OK + OK + + + Edit Contact + Editar Contacto + + + Set a label for the selected address + Etiqueta la dirección seleccionada + + + Enter a name for the address (e.g Exchange) + Introduce un nombre para la dirección (p.e. Exchange) + + + SAVE + GUARDAR + + + Edit label for the selected address: +%1 + Editar etiqueta para la dirección seleccionada: +%1 + + + + AddressBookPage + + Right-click to edit address or label + Click derecho para editar la dirección o etiqueta + + + Create a new address + Crear nueva dirección + + + &New + &Nuevo + + + Copy the currently selected address to the system clipboard + Copiar la dirección seleccionada al portapapeles + + + &Copy + &Copiar + + + Delete the currently selected address from the list + Borrar la dirección seleccionada de la lista + + + &Delete + Borrar + + + Export the data in the current tab to a file + Exportar los datos de la pestaña actual a un archivo + + + &Export + &Exportar + + + C&lose + Cerrar + + + Choose the address to send coins to + Escoja la dirección a la cual desee enviar las monedas + + + Choose the address to receive coins with + Escoja la dirección en la cual recibirá las monedas + + + C&hoose + &Escoger + + + Sending addresses + Direcciones de envío + + + Receiving addresses + Direcciones de recepción + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Estas son tus direcciones PIVX para realizar pagos. Verifica siempre la cantidad y la dirección de recepción antes de enviar monedas. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Estas son sus direcciones PIVX para recibir pagos. Es recomendable usar una nueva dirección de recepción para cada transacción. + + + &Copy Address + Copiar dirección + + + Copy &Label + Copiar etiqueta + + + &Edit + Editar + + + Export Address List + Exportar lista de direcciones + + + Comma separated file (*.csv) + Archivo separado por comas (*.csv) + + + Exporting Failed + Exportación fallida + + + There was an error trying to save the address list to %1. Please try again. + Ha habido un error intentando guardar la lista de direcciones %1. Por favor inténtelo de nuevo. + + + + AddressLabelRow + + Form + Formulario + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + AddressTableModel + + Label + Etiqueta + + + Address + Dirección + + + Date + Fecha + + + (no label) + (sin etiqueta) + + + + AddressesWidget + + Form + Formulario + + + Send + Enviar + + + TextLabel + EtiquetaDeTexto + + + No active Master Node yet + No hay ningún nodo Maestro activo todavía. + + + Contact name + Nombre de contacto + + + Enter address + Ingresa la dirección + + + OK + OK + + + Contacts + Contactos + + + You can add a new one in the options menu to the side. + Puede agregar uno nuevo en las opciones del menú. + + + No contacts yet + Aún no hay contactos + + + e.g. John Doe + p.ej. John Doe + + + Enter a PIVX address + Introduzca una dirección PIVX + + + SAVE + GUARDAR + + + Invalid Contact Address + Dirección de contacto inválida + + + Cannot store your own address as contact + No es posible almacenar tu propia dirección como contacto + + + Address already stored, label: %1 + Dirección ya almacenada, etiqueta: %1 + + + New Contact Stored + Nuevo contacto almacenado + + + Error Storing Contact + Error al almacenar el contacto + + + Contact edited + Contacto editado + + + Contact edit failed + La edición del contacto falló + + + Delete Contact + Borrar Contacto + + + You are just about to remove the contact: + +%1 + +Are you sure? + Está a punto de eliminar el contacto: + +%1 + +¿Está seguro? + + + Contact Deleted + Contacto Eliminado + + + Error deleting a contact + Error al eliminar un contacto + + + Address copied + Dirección copiada + + + + AskPassphraseDialog + + Passphrase Dialog + Diálogo de contraseña + + + TextLabel + EtiquetaDeTexto + + + PushButton + Presionar el botón + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Escriba la nueva contraseña para el monedero. <br/>Por favor utilice una contraseña de <b>10 o más caracteres aleatorios</b>, u <b> ocho o más palabras</b> + + + Encrypt wallet + Cifrar monedero + + + This operation needs your wallet passphrase to unlock the wallet. + Esta operación requiere su contraseña para desbloquear el monedero + + + Unlock wallet +for staking + Desbloquear billetera +para staking + + + Unlock wallet + Desbloquear monedero + + + This operation needs your wallet passphrase to decrypt the wallet. + Esta operación requiere su contraseña para descifrar el monedero + + + Decrypt wallet + Descifrar monedero + + + Change passphrase + Cambiar contraseña + + + Enter the old and new passphrase to the wallet. + Ingrese la antigua y la nueva contraseña para el monedero + + + Confirm wallet encryption + Confirme el cifrado del monedero + + + ENCRYPT + ENCRIPTAR + + + CANCEL + CANCELAR + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX se cerrará para finalizar el proceso de cifrado. Recuerde que cifrar su monedero no garantiza que sus PIVs no sean robados mediante malware de su ordenador. + + + Are you sure you wish to encrypt your wallet? + ¿Está seguro de que desea cifrar su monedero? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Atención: Si cifra su monedero y pierde su contraseña, perderá <b> TODOS SUS PIV</b>! + + + Wallet encrypted + Monedero cifrado + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + IMPORTANTE: Cualquier copia de seguridad anterior que haya realizado de su monedero debe ser reemplazada por la nueva copia de seguridad cifrada. Por razones de seguridad, las copias de seguridad anteriores del monedero sin cifrar pasarán a ser obsoletas tan pronto empiece a utilizar el nuevo monedero cifrado. + + + Wallet encryption failed + El cifrado del monedero ha fallado + + + OK + OK + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + El cifrado del monedero ha fallado debido a un error interno. Su monedero no ha sido cifrado. + + + The supplied passphrases do not match. + Las contraseñas introducidas no coinciden. + + + Wallet unlock failed + Desbloqueo del monedero fallido + + + The passphrase entered for the wallet decryption was incorrect. + La contraseña introducida para el descifrado del monedero es incorrecta. + + + Wallet decryption failed + Descifrado del monedero fallido + + + Wallet passphrase was successfully changed. + Se cambió la contraseña con éxito. + + + Warning: The Caps Lock key is on! + Aviso: La tecla Mayúsculas está encendida! + + + + BanTableModel + + IP/Netmask + IP/Máscara de Red + + + Banned Until + Suspendido hasta + + + + BlockExplorer + + Blockchain Explorer + Explorador del blockchain + + + Back + Atrás + + + Forward + Adelante + + + Address / Block / Transaction + Dirección / Bloque / Transacción + + + Search + Buscar + + + TextLabel + EtiquetaDeTexto + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + No se muestran todas las transacciones. Para ver todas las transacciones introduzca la línea "txindex=1" en el archivo de configuración (pivx.conf). + + + + CSRow + + Form + Formulario + + + Savings + Ahorros + + + 0,00 PIV + 0,00 PIV + + + address + Dirección + + + Not Staking + Sin Stake + + + Own delegation + Delegación propia + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Desconocido: %5) + + + Network Alert + Alerta de Red + + + + CoinControlDialog + + Quantity: + Cantidad: + + + Bytes: + Bytes: + + + Fee: + Comisión: + + + Coin Selection + Selección de Moneda + + + Dust: + Calderilla: + + + Change: + Cambio: + + + Tree mode + Modo de Ãrbol + + + List mode + Modo de Lista + + + (1 locked) + (1 bloqueado) + + + Amount + Cantidad + + + Transaction Details + Detalles de Transacción + + + PushButton + Presionar el botón + + + 0.00 PIV + 0.00 PIV + + + 0 + 0 + + + Select all + Seleccionar todo + + + Toggle lock state + Cambiar estado de bloqueo + + + Received with label + Recibido con etiqueta + + + Received with address + Recibido con dirección + + + After Fee: + Después de Comisión: + + + OK + OK + + + Date + Fecha + + + Confirmations + Confirmaciones + + + Confirmed + Confirmado + + + Copy address + Copiar dirección + + + Copy label + Copiar etiqueta + + + Copy amount + Copiar cantidad + + + Copy transaction ID + Copiar código de transacción + + + Lock unspent + Bloquear no gastado + + + Unlock unspent + Desbloquear no gastado + + + Copy quantity + Copiar cantidad + + + Copy fee + Copiar comisión + + + Copy after fee + Copiar después de comisión + + + Copy bytes + Copiar octetos + + + Copy priority + Copiar prioridad + + + Copy dust + Copiar calderilla + + + Copy change + Copiar cambio + + + Unselect all + Deseleccionar todo + + + Please switch to "List mode" to use this function. + Por favor cambie a "Modo de Lista" para utilizar esta función. + + + highest + la más alta + + + higher + más alta + + + high + alta + + + medium-high + medio-alta + + + medium + media + + + low-medium + baja-media + + + low + baja + + + lower + muy baja + + + lowest + la más baja + + + (%1 locked) + (%1 bloqueado) + + + none + ninguno + + + yes + sí + + + no + no + + + This label turns red, if the transaction size is greater than 1000 bytes. + Esta etiqueta se pone roja, si el tamaño de la transacción es mayor de 1000 bytes. + + + This means a fee of at least %1 per kB is required. + Esto significa que se requiere una comisión de al menos %1 por kB. + + + Can vary +/- 1 byte per input. + Puede variar +/- 1 byte por entrada. + + + Transactions with higher priority are more likely to get included into a block. + Las transacciones con alta prioridad tienen más probabilidades de ser incluidas en un bloque. + + + This label turns red, if the priority is smaller than "medium". + Esta etiqueta se vuelve roja, si la prioridad es inferior a "media". + + + This label turns red, if any recipient receives an amount smaller than %1. + Esta etiqueta se vuelve roja, si algún destinatario recibe una cantidad menor que %1. + + + Can vary +/- %1 upiv per input. + Puede variar +/- %1 upiv por entrada. + + + (no label) + (sin etiqueta) + + + change from %1 (%2) + cambio desde %1 (%2) + + + (change) + (cambio) + + + + CoinControlPivWidget + + Dialog + Diálogo + + + Transaction Details + Detalles de Transacción + + + PushButton + Presionar el botón + + + PIV: + PIV: + + + TextLabel + EtiquetaDeTexto + + + Quantity: + Cantidad: + + + Fee: + Comisión: + + + Amount + Cantidad + + + Label + Etiqueta + + + Address + Dirección + + + Type + Tipo + + + Date + Fecha + + + Confirmations + Confirmaciones + + + CheckBox + CheckBox + + + Bytes: + Bytes: + + + Dust: + Calderilla: + + + Change: + Cambio: + + + After Fee: + Después de Comisión: + + + CANCEL + CANCELAR + + + OK + OK + + + + ColdStakingWidget + + Form + Formulario + + + Title + Título + + + TextLabel + EtiquetaDeTexto + + + PushButton + Presionar el botón + + + Owner Address (optional, if empty a new address will be created) + Dirección del propietario (opcional, si está vacía se creará una nueva dirección) + + + List of delegated balance by address + Lista de saldos delegados por dirección + + + Total + Total + + + Unconfirmed balance will not be shown + No se mostrará el saldo no confirmado + + + No balance delegated + Sin saldo delegado + + + Cold Staking + Colocar Cold Staking + + + Staker + Inversor de Stake + + + Delegation + Delegación + + + You can delegate your PIVs and let a hot node (24/7 online node) +stake in your behalf, keeping the keys in a secure place offline. + Puedes delegar tus PIVs y dejar que un nodo de acceso directo (24/7 nodo en línea) Haga Stake en tu nombre, manteniendo las llaves en un lugar seguro fuera de línea. + + + Add owner address + Añadir dirección del propietario + + + Delegate or Accept PIV delegation + Delegar o aceptar la delegación de PIV + + + Delegate + Delegado + + + Clear All + Borrar todo + + + Add the staking address + Añadir la dirección de hacer Stake + + + Delegated balance history + Historial de saldo delegado + + + No delegations yet + Aún no hay delegaciones + + + Total Staking: %1 + Total en Stake: %1 + + + Error loading delegations: %1 + Error al cargar las delegaciones:%1 + + + No contacts available, you can go to the contacts screen and add some there! + Sin contactos disponibles, ¡puedes ir a la pantalla de contactos y añadir alguno allí! + + + Cold staking is networkely disabled + El Cold Stake está desactivado en la red + + + Invalid entry + Entrada inválida + + + Invalid entry, minimum delegable amount is 10 PIV + Entrada no válida, la cantidad mínima para delegar es de 10 PIV + + + Owner address invalid + Dirección del propietario inválida + + + ALERT! + ALERTA! + + + Delegating to an external owner address! + +The delegated coins will NOT be spendable by this wallet. +Spending these coins will need to be done from the wallet or +device containing the owner address. + +Do you wish to proceed? + ¡Delegar en una dirección de propietario externa! + +Las monedas delegadas NO se podrán gastar en esta billetera. +El gasto de estas monedas tendrá que hacerse desde la billetera o +el dispositivo que contiene la dirección del propietario. + +¿Deseas continuar? + + + Staking address corresponds to this wallet, change it to an external node + La dirección de Stake corresponde a esta cartera, cámbiala a un nodo externo. + + + Cannot create transaction. + No se puede crear la transacción. + + + Coins delegated + Monedas delegadas + + + You don't have any PIV to select. + Tú no tienes ningún PIV para seleccionar + + + URI copied to clipboard + URL copiado al portapapeles + + + Address copied to clipboard + Dirección copiada al portapapeles + + + Copy + Copiar + + + Edit + Editar + + + Stake + Stake + + + Blacklist + Lista negra + + + Edit Label + Editar etiqueta + + + Copy owner +address + Copiar dirección +del propietario + + + Address copied + Dirección copiada + + + Edit Cold Address Label + Editar la Etiqueta de la Dirección Cold + + + Whitelist failed, please check the logs + La lista blanca falló, por favor revisa los registros. + + + staking! + ¡Haciendo Stake! + + + Blacklist failed, please check the logs + La lista negra falló, por favor revisa los registros. + + + blacklisted from staking + Lista negra de hacer Stake + + + Owner address copied + Dirección del propietario copiada + + + Edit Owner Address Label + Editar la Etiqueta de Dirección del Propietario + + + Address label saved + Dirección de etiqueta guardada + + + Error storing address label + Error al almacenar la etiqueta de dirección + + + + ContactDropdownRow + + Form + Formulario + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + DashboardWidget + + Form + Formulario + + + Transactions + Transacciones + + + You can see here the history of your account + Puedes ver aquí el historial de tu cuenta + + + Warning + Advertencia + + + No transactions + Sin transacciones + + + PushButton + Presionar el botón + + + Staking Rewards + Recompensas de Staking + + + TextLabel + EtiquetaDeTexto + + + Staking statistics + Estadísticas de Staking + + + PIV + PIV + + + zPIV + zPIV + + + Sort by + Ordenar por + + + Days + Dias + + + Months + Meses + + + Years + Años + + + Filter by + Filtrar por + + + LabelText + LabelText + + + You can view your account's history + Puedes ver el historial de tu cuenta + + + Amount of PIV and zPIV staked. + Cantidad de PIV y zPIV por stake. + + + All + Todos + + + Received + Recibidos + + + Sent + Enviados + + + Mined + Minado + + + Minted + Creación de moneda + + + MN reward + Recompensa de MN + + + To yourself + A usted mismo + + + Cold stakes + Stake en frío + + + Hot stakes + Stake en caliente + + + Delegated + Delegado + + + Delegations + Delegaciones + + + Please wait until the wallet is fully synced to see your correct balance + Espere hasta que la billetera esté completamente sincronizada para ver su saldo correcto + + + No transactions yet + Aún no hay transacciones + + + How to get PIV or zPIV + Cómo obtener PIV o zPIV + + + You can verify the staking activity in the status bar at the top right of the wallet. +It will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced. + Puedes verificar la actividad de tu Stake en la barra de estado en la parte superior derecha de la billetera. Se iniciará automáticamente tan pronto como la billetera se haya sincronizado y tenga suficientes confirmaciones sobre cualquier saldo disponible. + + + You have no staking rewards + No tienes recompensas de staking + + + No charts library + Aún no hay estadísticas + + + Loading chart.. + Cargando estadísticas.. + + + Error loading chart, invalid show option + Error al cargar las estadísticas, opción no válida + + + Error loading chart, invalid data + Error cargando gráfico, datos inválidos + + + Error loading chart: %1 + Error al cargar las estadísticas: %1 + + + + DefaultDialog + + Form + Formulario + + + Transaction Details + Detalles de Transacción + + + Text Label + Text Label + + + CANCEL + CANCELAR + + + SAVE + GUARDAR + + + + DenomGenerationDialog + + Form + Formulario + + + Transaction Details + Detalles de Transacción + + + PushButton + Presionar el botón + + + This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again. + Esto desbloqueará su billetera completamente, para que cualquier persona con acceso a ella pueda utilizarla hasta que la billetera esté cerrada o bloqueada de nuevo. + + + 5000 + 5000 + + + 100 + 100 + + + 10 + 10 + + + 1000 + 1000 + + + 50 + 50 + + + 500 + 500 + + + 5 + 5 + + + 1 + 1 + + + Select All + Deseleccionar Todo + + + CANCEL + CANCELAR + + + SAVE + GUARDAR + + + + EditAddressDialog + + Edit Address + Editar Dirección + + + &Label + &Etiqueta + + + The label associated with this address list entry + La etiqueta asociada con esta entrada de la libreta de direcciones + + + &Address + &Dirección + + + The address associated with this address list entry. This can only be modified for sending addresses. + La dirección asociada con esta entrada de la libreta de direcciones. Ésta sólo puede ser modificada en las direcciones de envío. + + + New receiving address + Nueva dirección de cobro + + + New sending address + Nueva dirección de envío + + + Edit receiving address + Editar dirección de cobro + + + Edit sending address + Editar dirección de envío + + + The entered address "%1" is not a valid PIVX address. + La dirección introducida "%1" no es una dirección PIVX válida. + + + The entered address "%1" is already in the address book. + La dirección introducida "%1" ya está en la libreta de direcciones. + + + Could not unlock wallet. + No se pudo desbloquear el monedero. + + + New key generation failed. + La generación de llave nueva falló. + + + + ExpandableButton + + Form + Formulario + + + + FreespaceChecker + + A new data directory will be created. + Se creará una nueva carpeta de datos. + + + name + nombre + + + Directory already exists. Add %1 if you intend to create a new directory here. + El directorio ya existe, Añada %1 si pretende crear una nueva carpeta aquí. + + + Path already exists, and is not a directory. + La ruta ya existe, y no es una carpeta. + + + Cannot create data directory here. + No se puede crear un directorio de datos aquí. + + + + GovernancePage + + Form + Formulario + + + GOVERNANCE + GOBERNANZA + + + Update Proposals + Actualizar Propuestas + + + Next super block: + Próximo superbloque: + + + 0 + 0 + + + Blocks to next super block: + Bloques para el próximo superbloque: + + + Days to budget payout (estimate): + Días para el pago del presupuesto (estimado): + + + Allotted budget: + Presupuesto asignado: + + + Budget left: + Presupuesto restante: + + + Masternodes count: + Conteo de Masternodes: + + + + HelpMessageDialog + + version + versión + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + Acerca de PIVX Core + + + Command-line options + Opciones de línea de comandos + + + Usage: + Uso: + + + command-line options + opciones de línea de comandos + + + UI Options: + Opciones de interfaz de usuario: + + + Choose data directory on startup (default: %u) + Elija la carpeta de datos al arrancar (por defecto: %u) + + + Show splash screen on startup (default: %u) + Mostrar pantalla de bienvenida al arrancar (por defecto: %u) + + + Set language, for example "de_DE" (default: system locale) + Seleccionar el idioma, por ejemplo "es_ES" (por defecto: idioma del sistema) + + + Start minimized + Arrancar minimizado + + + Set SSL root certificates for payment request (default: -system-) + Elegir certificado raíz SSL para solicitud de pago (por defecto: -sistema-) + + + OK + OK + + + + Intro + + Welcome + Bienvenido/a + + + Welcome to PIVX Core. + Bienvenido/a a PIVX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Al ser la primera vez que se inicia el programa, usted puede elegir dónde guardará PIVX Core sus datos. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core descargará y guardará una copia de la cadena de bloques PIVX. Por lo menos %1GB de datos serán guardados en esta carpeta, y crecerá con el tiempo. El monedero también se guardará en esta carpeta. + + + Use the default data directory + Usar la carpeta de datos por defecto + + + Use a custom data directory + Usar una carpeta de datos personalizada + + + CANCEL + CANCELAR + + + OK + OK + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Error: La carpeta de datos especificada "%1" no pudo ser creada. + + + Error + Error + + + %1 GB of free space available + %1 GB de espacio libre en disco + + + (of %1 GB needed) + (de %1 GB necesarios) + + + + LoadingDialog + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + Loading + Cargando + + + . + . + + + + LockUnlock + + Form + Formulario + + + Unlock Wallet + Desbloquear monedero + + + Lock Wallet + Bloquear monedero + + + Staking Only + Solo Staking + + + + MNRow + + Form + Formulario + + + user_masternode + usuario_masternode + + + Address: 88.26.164.88:51474 + Dirección: 88.26.164.88:51474 + + + Jan. 19, 2019 + 19 de enero, 2019 + + + + MasterNodeWizardDialog + + Dialog + Diálogo + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + Intro + Introducción + + + Name + Nombre + + + Address + Dirección + + + Create New Master Node Controller + Crear Nuevo Controlador de Master Node + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + Para crear un Masternode de PIVX debes desponer 10.000 PIVX (la unidad de PIVX) a la red (sin embargo, estas monedas siguen siendo tuyas y nunca saldrán de tu posesión). Puedes desactivar el nodo y desbloquear las monedas en cualquier momento. + + + Make sure you have this amount of coins. + Asegúrate de tener esta cantidad de monedas. + + + Set Master Node’s Name + Establecer el nombre del Master Node + + + <html><head/><body><p>A transaction of 10,000 PIV will be made</p><p>to a new empty address in your wallet.</p><p>The Address is labeled under the master node's name.</p></body></html> + Una transacción de 10,000 PIV se hará a una nueva dirección vacía en tu billetera. La dirección está etiquetada bajo el nombre de masternode. + + + Set Master Node’s IP and port + Configurar la IP y el puerto del Nodo Maestro + + + Address of the node that must always be online running the actual master node. + Dirección del nodo que siempre se debe estar en línea ejecutando el masternode actual. + + + Enter IP address + Ingresa la dirección IP + + + Enter Port + Ingresa el Puerto + + + CANCEL + CANCELAR + + + OK + OK + + + e.g user_masternode + por ejemplo usuario_masternode + + + NEXT + SIGUIENTE + + + BACK + ATRÃS + + + address label cannot be empty + la etiqueta de la dirección no puede quedar vacía + + + IP or port cannot be empty + IP o puerto no puede quedar vacío + + + Invalid port number + Número de puerto inválido + + + Prepare master node failed.. + Preparar el masternode fallido. + + + Invalid masternode.conf file + Archivo masternode.conf no válido + + + Error parsing masternode.conf file + Error al analizar el archivo masternode.conf + + + Invalid collaterall output index + Ãndice de salida de colaterales no válido + + + Master node created! + ¡Masternodo creado! + + + masternode.conf file doesn't exists + El archivo masternode.conf no existe + + + The recipient address is not valid, please recheck. + La dirección de destino no es válida, por favor compruébelo de nuevo. + + + The amount to pay must be larger than 0. + La cantidad a pagar debe ser mayor de 0. + + + The amount exceeds your balance. + La cantidad excede su saldo. + + + The total exceeds your balance when the %1 transaction fee is included. + El total excede su saldo si contamos la comisión de %1 . + + + Duplicate address found, can only send to each address once per send operation. + Hemos encontrado una dirección duplicada, sólo podemos enviar a cada dirección una vez por envío. + + + Transaction creation failed! + ¡Fallo al crear la transacción! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + ¡La transacción fue rechazada! Esto puede ocurrir si alguna de sus monedas ya se gastó con anterioridad, por ejemplo, si estuvo usted usando una copia de su monedero wallet.dat y gastó allí monedas pero no las marcó como gastadas aquí. + + + Error: The wallet was unlocked only to anonymize coins. + Error: El monedero se desbloqueó sólo para anonimizar monedas. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + Una comisión %1 veces más alta que %2 por kB se considera exageradamente alta. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Error: El monedero ya fue desbloqueado para anonimizar monedas. El desbloqueo total se ha cancelado. + + + + MasterNodesWidget + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + No active Master Node yet + No hay ningún nodo Maestro activo todavía. + + + PushButton + Presionar el botón + + + Masternodes + Masternodes + + + Full nodes that incentivize node operators to perform the core consensus functions +and vote on the treasury system receiving a periodic reward. + Nodos completos que incentivan a los operadores de nodos a realizar las funciones básicas de consenso y votar sobre el sistema de tesorería recibiendo una recompensa periódica. + + + Create Masternode Controller + Crear Controlador de Masternode + + + No active Masternode yet + Aún no hay Masternode activo + + + Start + Iniciar + + + Delete + Borrar + + + Info + Información + + + Start Masternode + Iniciar Masternode + + + Are you sure you want to start masternode %1? + + ¿Estas seguro de que deseas iniciar el masternode al %1? + + + + Cannot start masternode, the collateral transaction has not been accepted by the network. +Please wait few more minutes. + No se puede iniciar el masternode, la operación de garantía no ha sido aceptada por la red. +Por favor, espera unos minutos más. + + + Remote Masternode Data + Datos Remotos del Masternode + + + You are just about to export the required data to run a Masternode +on a remote server to your clipboard. + + +You will only have to paste the data in the pivx.conf file +of your remote server and start it, then start the Masternode using +this controller wallet (select the Masternode in the list and press "start"). + + Estás a punto de exportar los datos necesarios para ejecutar un Masternode de un servidor remoto a tu portapapeles. + + +Sólo tendrás que pegar los datos en el archivo pivx.conf de tu servidor remoto e iniciarlo, luego inicia el Masternode usando esta cartera de controladores (selecciona el Masternode en la lista y presione "start"). + + + + Masternode exported!, check your clipboard + Masternode exportado, comprueba tu portapapeles + + + Delete Masternode + Eliminar Masternode + + + You are just about to delete Masternode: +%1 + +Are you sure? + Está a punto de eliminar el Masternode: + %1 + +¿Estás seguro? + + + Invalid masternode.conf file + Archivo masternode.conf inválido + + + Error parsing masternode.conf file + Error al analizar el archivo masternode.conf + + + masternode.conf file doesn't exists + El archivo masternode.conf no existe + + + Not enough balance to create a masternode, 10,000 PIV required. + No hay suficiente saldo para crear un masternode, se necesitan 10.000 PIV. + + + Error creating masternode + Error al crear masternode + + + + MnInfoDialog + + Form + Formulario + + + Master Node Information + Información del Masternode + + + Public Key: + Clave Pública: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Address: + Dirección: + + + 127.0.0.2:43223 + 127.0.0.2:43223 + + + Collaterall tx id: + Colateral ID TX: + + + Output index: + Ãndice de salida: + + + 1 Inputs + 1 Entrada + + + Status: + Estado: + + + MISSING + FALTAN + + + Export data to run the Master Node on a remote server + Exportar datos para ejecutar el masternode en un servidor remoto + + + + MyAddressRow + + Form + Formulario + + + Savings + Ahorros + + + Jan. 19, 2019 + 19 de enero de 2019 + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + NavMenuWidget + + Form + Formulario + + + V 1.0.0 + V 1.0.0 + + + v%1 + v%1 + + + + OpenURIDialog + + Open URI + Abrir URI + + + Open payment request from URI or file + Abrir solicitud de pago de URI o archivo + + + TextLabel + EtiquetaDeTexto + + + CANCEL + CANCELAR + + + OK + OK + + + Select payment request file + Seleccione el fichero que contiene la solicitud de pago + + + Select payment request file to open + Seleccione el fichero de solicitud de pago que desea abrir + + + File not found + Archivo no encontrado + + + Parsed data too large + Los datos analizados son demasiado grandes + + + Invalid URI, not starting with "pivx" prefix + URI inválido, no empezar con el prefijo "pivx" + + + + OptionButton + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + + OptionsDialog + + Options + Opciones + + + &Main + &Principal + + + Size of &database cache + Tamaño del caché de &base de datos + + + MB + MB + + + Number of script &verification threads + Número de procesos de &verificación de scripts + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = dejar libres tal número de cores) + + + W&allet + M&onedero + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + Si deselecciona el gasto de cambio no confirmado, las entradas de una transacción<br/>no podrán ser usadas hasta que esa transacción tenga al menos una confirmación.<br/>Esto también afecta a cómo se calcula su balance actual. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Abrir automáticamente el puerto del cliente PIVX en el enrutador. Ésto sólo funciona si su enrutador soporta UPnP y esta función está activada. + + + Accept connections from outside + Aceptar conexiones del exterior + + + Allow incoming connections + Permitir conexiones entrantes + + + &Connect through SOCKS5 proxy (default proxy): + &Conectar a través de un proxy SOCKS5 (proxy por defecto): + + + Expert + Experto + + + Automatically start PIVX after logging in to the system. + Arrancar PIVX automáticamente después de identificarse en el sistema. + + + &Start PIVX on system login + &Arrancar PIVX al inicio del sistema + + + Whether to show coin control features or not. + Mostrar las características de control de monedas, o no + + + Enable coin &control features + Activar funciones de &control de monedas + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Mostrar pestaña adicional listando todos sus masternodes en la primera sub-pestaña<br/>y todos los masternodes de la red en la segunda sub-pestaña. + + + Show Masternodes Tab + Mostrar la pestaña de masternodes + + + &Spend unconfirmed change + &Gastar cambio no confirmado + + + &Network + &Red + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + El idioma de interface de usuario puede seleccionarse aquí. Este ajuste tomará efecto después de reiniciar PIVX. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + ¿Falta su lenguaje o la traducción está incompleta? Contribuya con las traducciones aquí: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Mapear un puerto utilizando &UPnP + + + Enable automatic minting of PIV units to zPIV + Activar el minting automática de unidades PIV a zPIV + + + Enable zPIV Automint + Activar zPIV Automint + + + Enable automatic zPIV minting from specific addresses + Habilita el acuñado automático de zPIV desde direcciones específicas + + + Enable Automint Addresses + Habilitar direcciones de Auto-acuñamiento + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Porcentaje de PIV entrantes que serán automáticamente convertidos a zPIV a través del Protocolo Zerocoin (mín: 10%) + + + Percentage of autominted zPIV + Porcentaje de zPIV autogenerados + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Esperar con la conversión automática a Zerocoin hasta que hayan suficientes PIV disponibles para este tamaño de billete + + + Preferred Automint zPIV Denomination + Tamaño de billete zPIV preferido en la creación automática de dinero + + + Stake split threshold: + Parte limite de stake: + + + Connect to the PIVX network through a SOCKS5 proxy. + Conectar a la red PIVX mediante un proxy SOCKS5. + + + Proxy &IP: + &IP del proxy: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + Dirección IP del proxy (p.e. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Puerto: + + + Port of the proxy (e.g. 9050) + Puerto del proxy (p.e. 9050) + + + &Window + &Ventana + + + Show only a tray icon after minimizing the window. + Mostrar sólo un icono en la bandeja al minimizar la ventana. + + + &Minimize to the tray instead of the taskbar + &Minimizar a la bandeja en lugar de a la barra de tareas + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Minimizar en lugar de cerrar la aplicación cuando se cierra la ventana. Cuando active esta opción, tendrá que cerrar la aplicación seleccionando Salir desde el menú. + + + M&inimize on close + M&inimizar al cerrar + + + &Display + &Mostrar + + + User Interface &language: + &Idioma de la interface de usuario: + + + User Interface Theme: + Tema de la Interface de Usuario: + + + Unit to show amounts in: + Unidad en la que se muestran las cantidades: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Seleccionar la subdivisión a mostrar por defecto en la interface y al enviar monedas. + + + Decimal digits + Dígitos decimales + + + Hide empty balances + Ocultar saldos vazios + + + Hide orphan stakes in transaction lists + Ocultar los Stake huérfanos de las listas de transacciones + + + Hide orphan stakes + Ocultar los Stakes en estado de huérfanos + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + Direcciones web de terceras partes (p.e. un explorador de bloques) que aparecen en la pestaña de transacciones como objetos contextuales del menú. %s en la dirección web es reemplazada por el identificador de la transacción. Múltiples direcciones web están separadas por una barra vertical (|). + + + Third party transaction URLs + Direcciones web de transacciones de terceras partes + + + Active command-line options that override above options: + Opciones de línea de comando activas que anulan las opciones anteriores: + + + Reset all client options to default. + Resetear todas las opciones de cliente a su valor por defecto. + + + &Reset Options + Opciones de &Reset + + + &OK + &OK + + + &Cancel + &Cancelar + + + Any + Qualquer + + + default + por defecto + + + none + ninguno + + + Confirm options reset + Confirmar reinicio de las opciones + + + Client restart required to activate changes. + Se requiere un reinicio del cliente para activar los cambios. + + + Client will be shutdown, do you want to proceed? + El cliente se cerrará, ¿procedemos? + + + This change would require a client restart. + Este cambio requerirá un reinicio del cliente. + + + The supplied proxy address is invalid. + La dirección proxy indicada es inválida. + + + The supplied proxy port is invalid. + El puerto proxy suministrado no es válido. + + + The supplied proxy settings are invalid. + La configuración del proxy suministrado no es válida. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + Monedero + + + Node + Nodo + + + &Show / Hide + &Mostrar / Esconder + + + Show or hide the main Window + Mostrar o esconder la ventana principal + + + E&xit + S&alir + + + Quit application + Cerrar aplicación + + + PIVX Core client + Cliente PIVX Core + + + Error + Error + + + Warning + Advertencia + + + Information + Información + + + System Message + Mensaje de Sistema + + + Sent MultiSend transaction + Transacción MultiEnvío emitida + + + Sent transaction + Transacción enviada + + + Incoming transaction + Transacción entrante + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Fecha: %1 +Cantidad: %2 +Tipo: %3 +Dirección: %4 + + + + A fatal error occurred. PIVX can no longer continue safely and will quit. + Se produjo un error fatal. PIVX ya no puede continuar de forma segura y dejará de funcionar. + + + + PWidget + + Wallet locked, you need to unlock it to perform this action + Billetera bloqueada, es necesario desbloquearla para realizar esta acción + + + + PaymentServer + + Payment request error + Error en la solicitud de pago + + + URI handling + Manejo de URI + + + Payment request fetch URL is invalid: %1 + Solicitud de pago via web inválida: %1 + + + Payment request file handling + Manejo del fichero de solicitud de pago + + + Invalid payment address %1 + Dirección de pago inválida %1 + + + Cannot start pivx: click-to-pay handler + No se puede iniciar pivx: módulo click-to-pay + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + ¡El identificador de la dirección no puede ser analizado! Esto puede ser causado por una dirección PIVX inválida o parámetros del identificador malformados. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + El fichero de solicitud de pago no se pudo leer! Esto puede estar causado por una solicitud de pago inválida. + + + Payment request rejected + Solicitud de pago rechazada + + + Payment request network doesn't match client network. + La solicitud de pago no coincide con la red del cliente. + + + Payment request has expired. + La solicitud de pago ha expirado. + + + Payment request is not initialized. + La solicitud de pago no está inicializada. + + + Unverified payment requests to custom payment scripts are unsupported. + Solicitudes de pago no verificadas a scripts de pago personalizado no están soportadas. + + + Requested payment amount of %1 is too small (considered dust). + La cantidad de pago solicitada de %1 es demasiado pequeña (se considera calderilla). + + + Refund from %1 + Reembolso desde %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + La solicitud de pago %1 es demasiado larga (%2 bytes, permitidos %3 bytes). + + + Payment request DoS protection + Protección de Denegación de Servicio para la solicitud de pago + + + Error communicating with %1: %2 + Error de comunicación con %1: %2 + + + Payment request cannot be parsed! + ¡La solicitud de pago no se pudo procesar! + + + Bad response from server %1 + Respuesta inadecuada del servidor %1 + + + Network request error + Error de Red + + + Payment acknowledged + Pago confirmado + + + + PeerTableModel + + Address/Hostname + Dirección/Nombre Host + + + Version + Versión + + + Ping Time + Intervalo de Ping + + + + PrivacyWidget + + Form + Formulario + + + Title + Título + + + TextLabel + EtiquetaDeTexto + + + PushButton + Presionar el botón + + + No active Master Node yet + No hay ningún nodo Maestro activo todavía. + + + Privacy + Privacidad + + + Convert + Convertir + + + Mint + Acuñar + + + Minting zPIV anonymizes your PIV by removing any +transaction history, making transactions untraceable + Acuñando zPIV, haz anónimo tu PIV removiendo cualquier historial de transacción, haciendo transacciones imposibles de rastrear. + + + Mint new zPIV or convert back to PIV + Acuñar nuevo zPIV o convertir de nuevo a PIV + + + Last Zerocoin Movements + Últimos movimientos de Zerocoin + + + No transactions yet + Aún no hay transacciones + + + Mint zPIV + Acuñar zPIV + + + Enter amount of PIV to mint into zPIV + Ingresa un monto de PIV para acuñar a zPIV + + + Convert back to PIV + Volver a convertir a PIV + + + Enter amount of zPIV to convert back into PIV + Introduce la cantidad de zPIV para volver a convertirla en PIV + + + Zerocoin + Zerocoin + + + zPIV is currently undergoing maintenance + zPIV actualmente está sometiéndose a mantenimiento + + + You need to unlock the wallet to be able to %1 zPIV + Necesitas desbloquear la billetera para poder alcanzar el %1 zPIV + + + convert + convertir + + + mint + acuñar + + + Invalid value + Valor inválido + + + zPIV minted successfully + zPIV acuñado éxitosamente + + + zPIV converted back to PIV + zPIV reconvertido a PIV + + + You don't have any PIV to select. + Tú no tienes ningún PIV para seleccionar + + + Rescan Mints + Re-escanear acuñamientos + + + Your zerocoin mints are going to be scanned from the blockchain from scratch + Tus acuñamientos de zerocoins van a ser escaneados desde cero en la blockchain + + + Reset Spent Zerocoins + Restablecer los Zerocoins usados + + + Your zerocoin spends are going to be scanned from the blockchain from scratch + Tus zerocoins usados van a ser escaneados desde cero en la blockchain + + + Total %1 + Total %1 + + + + ProposalFrame + + Open proposal page in browser + Abrir la página de propuesta en el navegador + + + remaining payment(s). + Pago(s) pendiente(s). + + + Yes: + Si: + + + Abstain: + Abstenciones: + + + No: + No: + + + A proposal URL can be used for phishing, scams and computer viruses. Open this link only if you trust the following URL. + + Una dirección URL propuesta puede ser usada para suplantación de identidad, estafas y virus informáticos. Abre este enlace solo si confías en la siguiente URL + + + + Open link + Abrir enlace + + + Copy link + Copiar enlace + + + Wallet Locked + Billetera desbloqueada + + + You must unlock your wallet to vote. + Debes desbloquear tu billetera para votar. + + + Do you want to vote %1 on + Quieres votar %1 en + + + using all your masternodes? + usando todos tus masternodes? + + + Proposal Hash: + Propuesta de Hash: + + + Proposal URL: + Propuesta de URL: + + + Confirm Vote + Confirmar Voto + + + Vote Results + Resultados de la Votación + + + + QObject + + Amount + Cantidad + + + Enter a PIVX address (e.g. %1) + Introduzca una dirección PIVX (p.e. %1) + + + %1 d + %1 d + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + RED + + + BLOOM + BLOOM + + + ZK_BLOOM + ZK_BLOOM + + + UNKNOWN + DESCONOCIDO + + + None + Ninguno + + + N/A + N/A + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" does not exist. + Error: El directorio de datos especificado "%1" no existe. + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + Error: No se puede analizar el archivo de configuración: %1. Utilice sólo la sintaxis key=value. + + + Error: Invalid combination of -regtest and -testnet. + Error: Combinación no válida de -regtest y -testnet. + + + Error reading masternode configuration file: %1 + Error al leer el archivo de configuración de masternode: %1 + + + PIVX Core didn't yet exit safely... + El núcleo PIVX aún no ha salido de forma segura... + + + + RPCConsole + + Tools window + Ventana de herramientas + + + &Information + &Información + + + General + General + + + Name + Nombre + + + Client name + Nombre de cliente + + + N/A + N/A + + + Number of connections + Número de conexiones + + + &Open + &Abrir + + + Startup time + Tiempo de funcionamiento + + + Network + Red + + + Last block time + Momento del último bloque + + + Debug log file + Fichero de depuración + + + Build date + Fecha de compilación + + + Current number of blocks + Número actual de bloques + + + Client version + Versión del cliente + + + Using BerkeleyDB version + Usando BerkeleyDB versión + + + Block chain + Blockchain + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Abrir el fichero de depuración PIVX en el directorio actual de datos. Esto puede llevar unos segundos para ficheros de depuración grandes. + + + Number of Masternodes + Número de masternodes + + + Data Directory + Directorio de Datos + + + Last block hash + Hash del bloque pasado + + + &Console + &Consola + + + Clear console + Limpiar consola + + + &Network Traffic + &Tráfico de Red + + + &Clear + &Limpiar + + + Totals + Totales + + + Received + Recibidos + + + Sent + Enviados + + + &Peers + &Peers + + + Banned peers + Peers proibidos + + + Select a peer to view detailed information. + Seleccione un peer conectado para ver información detallada. + + + Whitelisted + En lista blance + + + Direction + Dirección + + + Protocol + Protocolo + + + Version + Versión + + + Services + Servicios + + + Ban Score + Puntuación de Baneo + + + Connection Time + Tiempo de Conexión + + + Last Send + Último Envío + + + Last Receive + Última Recepción + + + Bytes Sent + Bytes Enviados + + + Bytes Received + Bytes Recibidos + + + Ping Time + Intervalo de Ping + + + &Wallet Repair + Reparar &Monedero + + + Delete local Blockchain Folders + Eliminar directorios locales de Blockchain + + + Wallet In Use: + Monedero En Uso: + + + Starting Block + Bloque de empiezo + + + Synced Headers + Encabezados sincronizados + + + Synced Blocks + Bloques sincronizados + + + The duration of a currently outstanding ping. + La duración de un ping actualmente pendiente. + + + Ping Wait + Espera de Ping + + + Time Offset + Desplazamiento de tiempo + + + Custom Backup Path: + Ruta personalizada de la copia de seguridad: + + + Custom zPIV Backup Path: + Ruta personalizada de la copia de seguridad zPIV: + + + Custom Backups Threshold: + Límite de copias de seguridad personalizadas: + + + Salvage wallet + Salvar monedero + + + Attempt to recover private keys from a corrupt wallet.dat. + Intentar recuperar las llaves privadas de un archivo wallet.dat corrupto. + + + Rescan blockchain files + Reescanear ficheros del blockchain + + + Rescan the block chain for missing wallet transactions. + Reescanear el blockchain buscando transacciones que faltan en el monedero. + + + Recover transactions 1 + Recuperar transacciones 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Recuperar transacciones del blockchain (mantener meta-datos, p.e. propietario de la cuenta,etc). + + + Recover transactions 2 + Recuperar transacciones 2 + + + Recover transactions from blockchain (drop meta-data). + Recuperar transacciones del blockchain (ignorar meta-datos). + + + Upgrade wallet format + Actualizar formato del monedero + + + Rebuild block chain index from current blk000??.dat files. + Reconstruir el índice del blockchain desde los archivos blk000??.dat actuales. + + + -resync: + resincronizando: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Eliminar todos los directorios locales del blockchain y sincronizar el monedero desde el principio + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + Los botones de más abajo reiniciarán el programa con comandos especiales para reparar el monedero, solucionar problemas con cadenas de bloques corruptas o buscar transacciones obsoletas o perdidas + + + Wallet repair options. + Opciones de reparación de monedero. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Actualizar el monedero al último formato en el arranque. (Nota: esto NO es una actualización del monedero como tal!) + + + Rebuild index + Reconstruir índice + + + In: + Dentro: + + + Out: + Fuera: + + + Welcome to the PIVX RPC console. + Bienvenido a la consola RPC de PIVX. + + + &Disconnect Node + &Desconectar nodo + + + Ban Node for + Prohibir nodo por + + + 1 &hour + 1 &hora + + + 1 &day + 1 &día + + + 1 &week + 1 &semana + + + 1 &year + 1 &año + + + &Unban Node + & No prohibir nodo + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Esto eliminará las carpetas de blockchain locales y el monedero sincronizará la cadena de bloques completa desde cero.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Esto requiere bastante tiempo y la descarga una gran cantidad de datos.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Sus transacciones y fondos serán visibles nuevamente después de que se haya completado la descarga.<br /><br /> + + + Do you want to continue?.<br /> + ¿Desea continuar?.<br /> + + + Confirm resync Blockchain + Confirmar resincronización del Blockchain + + + Use up and down arrows to navigate history, and %1 to clear screen. + Utiliza las flechas arriba y abajo para navegar por el historial, y %1 para limpiar la pantalla. + + + Type <b>help</b> for an overview of available commands. + Escriba <b>help</b> para ver una lista de posibles comandos. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + ADVERTENCIA: Los estafadores han estado activos, diciendo a los usuarios que escriban comandos aquí, robando el contenido de su billetera. No uses esta consola sin entender completamente las consecuencias de un comando. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (node id: %1) + + + via %1 + vía %1 + + + never + nunca + + + Inbound + Entrantes + + + Outbound + Salientes + + + Yes + Sí + + + No + No + + + Unknown + Desconocido + + + + ReceiveDialog + + Dialog + Diálogo + + + Transaction Details + Detalles de Transacción + + + PushButton + Presionar el botón + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + CANCELAR + + + OK + OK + + + + ReceiveWidget + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + No address + Sin dirección + + + Add Label + Añadir etiqueta + + + Generate Address + Generar Dirección + + + Copy + Copiar + + + Receive + Recibir + + + Scan the QR code or copy the address to receive PIV. + Escanear el código QR o copiar la dirección para recibir PIV. + + + No address + Sin dirección + + + No available address, try unlocking the wallet + Sin dirección disponible, intenta desbloquear la billetera + + + Error generating address + Error al generar la dirección + + + Change Label + Cambiar etiqueta + + + Edit Address Label + Editar la Etiqueta de Dirección + + + Address label saved + Dirección de etiqueta guardada + + + Error storing address label + Error al almacenar la etiqueta de dirección + + + New address created + Nueva dirección creada + + + Address copied + Dirección copiada + + + URI copied to clipboard + URL copiado al portapapeles + + + Address copied to clipboard + Dirección copiada al portapapeles + + + + RecentRequestsTableModel + + Date + Fecha + + + Label + Etiqueta + + + Message + Mensaje + + + Address + Dirección + + + Amount + Cantidad + + + (no label) + (sin etiqueta) + + + (no message) + (no hay mensajes) + + + (no amount) + (sin cantidad) + + + + RequestDialog + + Dialog + Diálogo + + + New Request Payment + Nueva Solicitud de Pago + + + Lorem ipsum dolor sit amet, consectur cling elit, sed do + Lorem ipsum dolor sit amet, consectur cling elit, sed do + + + Amount + Cantidad + + + PIV + PIV + + + TextLabel + EtiquetaDeTexto + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + COPY ADDRESS + COPIAR DIRECCIÓN + + + COPY URL + COPIAR URL + + + CANCEL + CANCELAR + + + REQUEST + SOLICITUD + + + Instead of only sharing a PIVX address, you can create a Payment Request message which bundles up more information than is contained in just a PIVX address. + En lugar de compartir únicamente una dirección de PIVX, puedes crear un mensaje de Solicitud de Pago que agrupe más información de la que contiene sólo una dirección de PIVX. + + + Label + Etiqueta + + + Enter a label to be saved within the address + Introduce una etiqueta para guardar dentro de la dirección + + + Description (optional) + Descripción (opcional) + + + Add description + Añadir descripción + + + Error + Error + + + GENERATE + GENERAR + + + Creates an address to receive coin delegations and be able to stake them. + Crea una dirección para recibir delegaciones de monedas y poder hacer stake con ellas. + + + New Cold Staking Address + Nueva dirección de Cold Staking + + + + SendChangeAddressDialog + + Dialog + Diálogo + + + Transaction Details + Detalles de Transacción + + + PushButton + Presionar el botón + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + CANCELAR + + + OK + OK + + + Custom Change Address + Cambio de dirección personalizado + + + The remainder of the value resultant from the inputs minus the outputs value goes to the "change" PIVX address + El resto del valor resultante de las entradas menos el valor de las salidas va al "cambio" de dirección de PIVX + + + + SendCustomFeeDialog + + Form + Formulario + + + Transaction Details + Detalles de Transacción + + + Customize the transaction fee at your to your liking, depending on the fee value your transaction will be included or not in the blockchain. + Personaliza la tarifa de transacción a tu gusto, dependiendo del valor de la tarifa, tu transacción será incluida o no en la blockchain. + + + Recomended + Recomendado + + + 0.00 KB + 0.00 KB + + + Custom + Personalizado: + + + Per kilobyte + Por kilobyte + + + CANCEL + CANCELAR + + + OK + OK + + + Customize Fee + Tarifa Personalizada + + + Customize the transaction fee, depending on the fee value your transaction will be included or not in the blockchain. + Personaliza la comisión de la transacción, dependiendo del valor de la comisión tu transacción será incluida o no en la Blockchain. + + + Normal + Normal + + + Slow + Lento + + + Fast + Rápido + + + SAVE + GUARDAR + + + + SendMultiRow + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + Add address + Añadir dirección + + + Add description + Añadir descripción + + + + SendWidget + + Send + Enviar + + + You can transfer public coins (PIV) or private coins (zPIV) + Puedes transferir monedas públicas (PIV) o monedas privadas (zPIV) + + + Select coin type to spend + Selecciona el tipo de moneda a usar + + + Enter a PIVX address or contact label + Introduzca una dirección PIVX o una etiqueta de contacto + + + Amount + Cantidad + + + Customize fee + Tarifa personalizada + + + Clear all + Borrar todo + + + Add recipient + Añadir destinatario + + + Reset to default + Reestablecer los valores predeterminados + + + Total to send + Total a enviar + + + Send PIV + Enviar PIV + + + Send zPIV + Enviar zPIV + + + Total remaining from the selected UTXO + Total restante del UTXO seleccionado + + + Total remaining + Total restante + + + Customize Fee + Tarifa Personalizada + + + Maximum amount of outputs reached + Cantidad máxima de salidas alcanzadas + + + Invalid entry, previous entries must be valid before add a new one + Entrada inválida, las entradas anteriores deben ser válidas antes de añadir una nueva + + + Invalid entry + Entrada inválida + + + No set recipients + Sin destinatarios establecidos + + + Cannot send, wallet locked + No se puede enviar, la wallet está bloqueada + + + Cannot create transaction. + No se puede crear la transacción. + + + WARNING: +Transaction spends a cold-stake delegation, voiding it. +These coins will no longer be cold-staked. + ADVERTENCIA: +La transacción gasta una comisión del Cold-Stake, y se anula. +Estas monedas ya no serán puestas en Cold-Staked + + + Transaction sent + Transacción enviada + + + Spend Zerocoin + Gastar Zerocoin + + + zPIV is currently undergoing maintenance. + zPIV se encuentra actualmente en mantenimiento. + + + Coin control mint not found + No se ha encontrado el control de monedas acuñadas + + + Sending %1 to address %2 + + Enviando %1 a la dirección %2 + + + + Sending %1 to addresses: +%2 + Enviando %1 a las direcciones: +%2 + + + zPIV transaction sent! + ¡Transacción de zPIV enviada! + + + Version 1 zPIV require a security level of 100 to successfully spend. + La versión 1 zPIV requiere un nivel de seguridad de 100 para gastar exitosamente. + + + Too much inputs ( + Demasiadas entradas ( + + + ) needed. +Maximum allowed: + ) necesario. +Máximo permitido: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o reduzca la cantidad a gastar. + + + Address label update failed for address: %1 + La actualización de la etiqueta de dirección ha fallado para la dirección: %1 + + + Invalid change address + Cambio de dirección inválida + + + Invalid URI + URI inválido + + + Invalid address in URI + Dirección inválida en la URI + + + Custom Fee %1 + Tarifa personalizada %1 + + + You don't have any PIV to select. + Tú no tienes ningún PIV para seleccionar + + + You don't have any zPIV in your balance to select. + No tienes ningún zPIV en tu saldo para seleccionar. + + + No contacts available, you can go to the contacts screen and add some there! + Sin contactos disponibles, ¡puedes ir a la pantalla de contactos y añadir alguno allí! + + + Save contact + Guardar contacto + + + Address field is empty + El área de dirección está vacío + + + Invalid address + Dirección inválida + + + Cannot store your own address as contact + No es posible almacenar tu propia dirección como contacto + + + Update Contact + Actualizar Contacto + + + Create New Contact + Crear Nuevo Contacto + + + New Contact Stored + Nuevo contacto almacenado + + + Error Storing Contact + Error al almacenar el contacto + + + + SettingsBackupWallet + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + PushButton + Presionar el botón + + + Backup Wallet + Billetera de Respaldo + + + Change Wallet Passphrase + Cambiar la Frase de la Contraseña de la Billetera + + + Keep your wallet safe doing regular backups, store your backup file externally. +This option creates a wallet.dat file that can be used to recover your whole balance (transactions and addresses) from another device. + Mantén tu billetera segura haciendo copias de seguridad regulares, almacena tu archivo de copia de seguridad externamente. +Esta opción crea un archivo wallet.dat que se puede utilizar para recuperar todo el saldo (transacciones y direcciones) de otro dispositivo. + + + This will decrypt the whole wallet data and encrypt it back with the new passphrase. +Remember to write it down and store it safely, otherwise you might lose access to your funds. + Esto descifrará todos los datos de la billetera y los encriptará con la nueva frase de contraseña. +Recuerda anotarla y guardarla de forma segura, de lo contrario podrías perder el acceso a tus fondos. + + + Where + Donde + + + Set a folder location + Establecer una ubicación de carpeta + + + Backup + Respaldo + + + Change Passphrase + Cambiar la Frase de Contraseña + + + Backup Wallet + Copia del Monedero + + + Wallet Data (*.dat) + Datos del Monedero (*.dat) + + + Backup created + Respaldo creado + + + Backup creation failed + Creación de Respaldo fallida + + + Please select a folder to export the backup first. + Por favor selecciona una carpeta para exportar el respaldo primero. + + + + SettingsBitToolWidget + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + PushButton + Presionar el botón + + + Decrypt Address Result + Resultado de la Dirección Descifrada + + + Import Address + Importar dirección + + + Clear + Limpiar + + + BIP38 Tool + Herramienta BIP38 + + + Encrypt + Encriptar + + + Decrypt + Descifrar + + + Encrypted key + Clave Encriptada + + + Enter a encrypted key + Introduce una clave encriptada + + + Passphrase + Frase de Contraseña + + + Enter a passphrase + Introduce una frase de contraseña + + + Decrypted address result + Resultado de la dirección descifrada + + + Decrypted Address + Dirección Descifrada + + + DECRYPT KEY + CLAVE DESCIFRADA + + + Enter a PIVX address + Introduzca una dirección PIVX + + + Add address + Añadir dirección + + + Write a message + Escribe un mensaje + + + Encrypted Key + Clave Encriptada + + + ENCRYPT + ENCRIPTAR + + + CLEAR ALL + BORRAR TODO + + + CLEAR + BORRAR + + + The entered passphrase is invalid. + La contraseña introducida es inválida + + + Allowed: 0-9,a-z,A-Z, + Permitido: 0-9,a.z,A-Z, + + + The entered address is invalid. + La dirección introducida es inválida + + + Please check the address and try again. + Por favor compruebe la dirección e inténtelo de nuevo. + + + The entered address does not refer to a key. + La dirección introducida no se refiere a ninguna clave. + + + Wallet unlock was cancelled. + El desbloqueo del monedero fue cancelado. + + + Private key for the entered address is not available. + La clave privada para la dirección introducida no está disponible. + + + Address encrypted. + Dirección encriptada. + + + No addresses available, you can go to the receive screen and add some there! + No hay direcciones disponibles, puedes ir a la pantalla de recepción y añadir algunas allí! + + + Failed to decrypt. + Falló el descifrado + + + Please check the key and passphrase and try again. + Por favor compruebe la clave y la contraseña e inténtelo de nuevo. + + + Data Not Valid. + Datos no válidos. + + + Please try again. + Por favor inténtelo de nuevo. + + + Please wait while key is imported + Por favor espere mientras la clave es importada + + + Cannot import address, key already held by the wallet + No se puede importar la dirección, la clave ya está en la billetera + + + Error adding key to the wallet + Error al añadir la clave a la billetera + + + Successfully added pivate key to the wallet + La clave fue agregada éxitosamente a la billetera + + + + SettingsConsoleWidget + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + Console + Consola + + + Console input + Entrada de consola + + + Command Line Options + Opciones de Línea de Comandos + + + Open Debug File + Abrir Archivo de Depuración + + + Cannot open debug file. +Verify that you have installed a predetermined text editor. + No se puede abrir el archivo de depuración +Verifica que tengas instalado un editor de texto predeterminado. + + + Welcome to the PIVX RPC console. + Bienvenido a la consola RPC de PIVX. + + + Use up and down arrows to navigate history, and %1 to clear screen. + Utiliza las flechas arriba y abajo para navegar por el historial, y %1 para limpiar la pantalla. + + + Type <b>help</b> for an overview of available commands. + Escriba <b>help</b> para ver una lista de posibles comandos. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + ADVERTENCIA: Los estafadores han estado activos, diciendo a los usuarios que escriban comandos aquí, robando el contenido de su billetera. No uses esta consola sin entender completamente las consecuencias de un comando. + + + + SettingsDisplayOptionsWidget + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + PushButton + Presionar el botón + + + Reset to default + Reestablecer a valores predeterminados + + + Discard changes + Descartar los cambios + + + Display + Visualización de la pantalla + + + Customize the display view options + Personalizar las opciones de la vista de pantalla + + + Language + Idioma + + + Unit to show amount + Unidad para mostrar la cantidad + + + Decimal digits + Dígitos decimales + + + Third party transactions URLs + URLs de transacciones de terceros + + + Hide empty balances + Ocultar saldos vazios + + + SAVE + GUARDAR + + + default + por defecto + + + Options reset succeed + El restablecimiento de las opciones se ha realizado correctamente + + + + SettingsFaqWidget + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + PushButton + Presionar el botón + + + 1) What is PIVX? + 1) ¿Qué es PIVX? + + + 2) Why are my PIV unspendable? + 2) ¿Por qué mis PIV no se pueden gastar? + + + 3) PIVX privacy? What is Zerocoin (zPIV)? + 3) ¿Cómo es la privacidad de PIVX? ¿Qué es Zerocoin (zPIV)? + + + 4) Why are my zPIV unspendable? + 4) ¿Por qué no se pueden gastar mis zPIV? + + + 5) Why did my wallet convert the balance + into zPIV automatically? + 5) ¿Por qué mi billetera convirtió el saldo en zPIV automáticamente? + + + 6) How do I receive PIV/zPIV? + 6) ¿Cómo recibo PIV/zPIV? + + + 7) How do I stake PIV/zPIV? + 7) ¿Cómo puedo hacer Stake de PIV/zPIV? + + + 8) Where I should go if I need support? + 8) ¿A dónde debo ir si necesito apoyo? + + + 9) What is a Master Node? + 9) ¿Qué es un Masternode? + + + 10) What is a Master Node Controller? + 10) ¿Qué es un controlador de Masternode? + + + 1 + 1 + + + What is PIVX? + ¿Qué es PIVX? + + + + <html><head/><body><p align="justify"> + PIVX is a form of digital online money using blockchain technology + that can be easily transferred globally, instantly, and with near + zero fees. PIVX incorporates market leading security & + privacy and is also the first PoS (Proof of Stake) Cryptocurrency + to implement ZeroCoin(zPIV) and Zerocoin staking. + </p><p align="justify"> + PIVX utilizes a Proof of Stake (PoS) consensus system algorithm, + allowing all owners of PIVX to participate in earning block rewards + while securing the network with full node wallets, as well as to + run Masternodes to create and vote on proposals. + </p></body></html> + + +<html><head/><body><p align="justify"> +PIVX es una forma de dinero digital en línea que utiliza la tecnología blockchain que se puede transferir a nivel global, de forma instantánea y con tarifas casi nulas. PIVX incorpora un sistema de seguridad y privacidad líder en el mercado y es también la primera criptomoneda PoS (Proof of Stake) que implementa el sistema de Stake de ZeroCoin(zPIV) y Zerocoin. +</p><p align="justify"> + PIVX utiliza un algoritmo de consenso de Prueba de Stake (PoS), que permite a todos los propietarios de PIVX participar en la obtención de recompensas de los nuevos bloques generados mientras aseguran la red con billeteras de nodo completo , así como también ejecutan Masternodos para crear y votar las propuestas. +. </p></body></html> + + + 2 + 2 + + + Why are my PIV unspendable? + ¿Por qué mi PIV no se pueden gastar? + + + + <html><head/><body><p align="justify"> + Newly received PIVX requires 6 confirmations on the network + to become eligible for spending which can take ~6 minutes. + </p><p align="justify"> + Your PIVX wallet also needs to be completely synchronized + to see and spend balances on the network. + </p></body></html> + + +<html><head/><body><p align="justify"> +Los PIVX recién recibidos requieren 6 confirmaciones en la red para ser elegibles para gastos que pueden tomar ~6 minutos. +</p><p align="justify"> +Tu cartera PIVX también necesita estar completamente sincronizada para que pueda ver y gastar el saldos en la red. +</p></body></html> + + + 3 + 3 + + + PIVX privacy? What is Zerocoin (zPIV)? + ¿Cómo es la privacidad de PIVX? ¿Qué es Zerocoin (zPIV)? + + + + <html><head/><body><p align="justify"> + zPIV is an optional privacy-centric method of coin mixing on the + PIVX blockchain. Basically all your transactions cannot be tracked + on to any block explorer. You can read more about the technicals in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "PIVX Zerocoin (zPIV) Technical Paper"</a>. + </p></body></html> + + +<html><head/><body><p align="justify">  +zPIV es un método opcional centrado en la privacidad de monedas en la Blockchain PIVX. Básicamente, todas sus transacciones no pueden ser rastreadas en ningún explorador de bloques. Puedes leer más sobre los aspectos técnicos en el + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> +"Documentación Técnica de PIVX Zerocoin (zPIV) ". </a>. +</p></body></html> + + + + 4 + 4 + + + Why are my zPIV unspendable? + ¿Por qué mis zPIV se encuentran inutilizables? + + + + <html><head/><body><p align="justify"> + After minting, zPIV will require 20 confirmations as well as 1 + additional mint of the same denomination on the network to + become eligible for spending. + </p></body></html> + + +<html><head/><body><p align="justify"> Después de la acuñación, el zPIV requerirá 20 confirmaciones así como 1 acuñación adicional de la misma denominación en la red para ser elegible para el gasto.  </p></body></html> + + + 5 + 5 + + + Why did my wallet convert the balance into zPIV automatically? + ¿Por qué mi billetera convierte el balance automáticamente en zPIV? + + + + <html><head/><body><p align="justify"> + By default the PIVX wallet will convert 10% of your entire PIV + balance to zPIV to assist the network. If you do not wish to + stake zPIV or take advantage of the privacy benefit it brings, + you can disable the automatic minting in your PIVX wallet by + going to Settings->Options and deselecting “Enable zPIV Automintâ€. + If you are not making use of the PIVX-QT or GUI you can simply open + your pivx.conf file and add <i>enablezeromint=0</i> Without the quotation + marks and restart your wallet to disable automint.</p> + </p><p align="justify"> + You can read more about zPIV in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> "PIVX Zerocoin (zPIV) Technical Paper"</a>. + If you would like to keep and stake your zPIV, please read the "How do I stake" + section of the FAQ below. + </p></body></html> + + +<html><head/><body><p align="justify"> +Por defecto, la billetera PIVX convierte el 10% de tu saldo PIV completo +a zPIV para ayudar a la red. Si no deseas hacer +stake por zPIV o aprovechar el beneficio de privacidad que te brinda, +puedes desactivar la acuñación automática en tu billetera PIVX yendo +a Ajustes->Opciones y deseleccionando "Activar zPIV Automint". +Si no estás haciendo uso de la PIVX-QT o GUI puedes simplemente abrir +tu archivo pivx.conf y agregar <i> enablezeromint=0</i> Sin las comillas +luego reinicia tu billetera para deshabilitar la impresión automática.</p> +</p><p align="justify"> +Puedes leer más sobre zPIV en el +<a style='color: #b088ff' href='https://PIVX.org/zpiv/'> "Documentación Técnica de PIVX Zerocoin (zPIV)" </a>. +Si deseas conservar y hacer stake tu zPIV, lee la sección "¿Cómo puedo hacer stake?"de las preguntas frecuentes a continuación. +</p></body></html> + + + 6 + 6 + + + How do I receive PIV/zPIV? + ¿Cómo recibo PIV/zPIV? + + + + <html><head/><body><p align="justify"> + zPIV can be spent and sent to any PIVX address. The receiver will + receive standard PIVX but the origin of the PIVX is anonymized by the zPIV Protocol. + </p><p align="justify"> + If you want more zPIV you will need to mint your balance in the “Privacy†tab. + </p></body></html> + + +<html><head/><body><p align="justify"> +El zPIV se puede gastar y enviar a cualquier dirección PIVX. El receptor recibirá +el PIVX estándar, pero el origen del PIVX es anonimizado por el protocolo zPIV. +</p><p align="justify"> +Si quieres más zPIV necesitarás acuñar tu saldo en la pestaña "Privacidad". +</p></body></html> + + + 7 + 7 + + + How do I stake PIV/zPIV? + ¿Cómo hago stake PIV/zPIV? + + + + <html><head/><body><p align="justify"> + To Stake PIVX: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + You must have a balance of PIVX with a minimum of 101 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + <li> + Once all those steps are followed staking should be enabled. + <li> + You can see the status of staking in the wallet by mousing over the package icon in the row on the top left of the wallet interface. There package will be lit up and will state "Staking Enabled" to indicate it is staking. Using the command line interface (pivx-cli); the command <i>getstakingstatus</i> will confirm that staking is active. + </li></ol> + </p><p align="justify"> + To Stake zPIV: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + Your newly minted or existing zPIV balance must have a minimum of 200 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + Staking should now be enabled. + </li></ol> + </p></body></html> + + +<html><head/><body><p align="justify"> +Para hacer stake PIVX: +</p></p> +<ol><li> +Asegúrate de que tu billetera esté completamente sincronizada y de que esté utilizando la última versión. +<li> +Asegúrate de que tu billetera esté completamente sincronizada y de que esté utilizando la última versión. +<li>Tu billetera debe permanecer en línea y estar desbloqueada para propósitos de anonimato y de stake. +<li> +Una vez que se siguen todos estos pasos, se debe habilitar el stake. +<li> + Puedes ver el estado del stake en la billetera pasando el ratón sobre el icono del paquete en la fila de la parte superior izquierda de la interfaz de la billetera. El paquete se iluminará y mostrará el mensaje "Stake Activado" para indicar que está hecho el stake. Usando la interfaz de línea de comandos (pivx-cli); el comando <i>getstakingstatus</i> confirmará que el stake está activo. +</li></ol> +</p><p align="justify"> +Para hacer stake zPIV: +</p><p align="justify"> +<ol><li> +Asegúrate de que tu billetera esté completamente sincronizada y de que esté utilizando la última versión. +<li>Tu saldo zPIV recién acuñado o existente debe tener un mínimo de 200 confirmaciones. +<li>Tu billetera debe permanecer en línea y estar desbloqueada para propósitos de anonimato y de stake. +El stake debe estar ahora habilitado. +</li></ol> +</p></body></html> + + + 8 + 8 + + + Where I should go if I need support? + ¿A dónde debo dirigirme si necesito ayuda? + + + + <html><head/><body><p align="justify"> + We have support channels in most of our official chat groups, for example + <a style='color: #b088ff' href='https://Discord.PIVX.com'> + #support in our Discord</a>. + If you prefer to submit a ticket, One can be + <a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> + our Freshdesk support site</a>. + </p></body></html> + + +<html><head/><body><p align="justify"> +Tenemos canales de ayuda en la mayoría de nuestros grupos de chat oficiales, por ejemplo +<a style='color: #b088ff' href='https://Discord.PIVX.com'> +#support en nuestro Discord</a>. +Si prefieres enviar una solicitud, una puede ser +<a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> +nuestro sitio de apoyo Freshdesk</a>. +</p></body></html> + + + 9 + 9 + + + What is a Master Node? + ¿Qué es un Master Node? + + + + <html><head/><body><p align="justify"> + A masternode is a computer running a full node PIVX core wallet with a + requirement of 10,000 PIV secured collateral to provide extra services + to the network and in return, receive a portion of the block reward + regularly. These services include: + </p><p align="justify"> + + <ul> + <li>Instant transactions (SwiftX)</li> + <li>A decentralized governance (Proposal Voting)</li> + <li>A decentralized budgeting system (Treasury)</li> + <li>Validation of transactions within each block</li> + <li>Act as an additional full node in the network</li> + </ul> + + </p><p align="justify"> + For providing such services, masternodes are also paid a certain portion + of reward for each block. This can serve as a passive income to the + masternode owners minus their running cost. + </p><p align="justify"> + + Masternode Perks: + </p><p align="justify"> + <ul> + <li>Participate in PIVX Governance</li> + <li>Earn Masternode Rewards</li> + <li>Commodity option for future sale</li> + <li>Help secure the PIVX network</li> + </ul> + </p><p align="justify"> + + Requirements: + </p><p align="justify"> + <ul> + <li>10,000 PIV per single Masternode instance</li> + <li>Must be stored in a core wallet</li> + <li>Need dedicated IP address</li> + <li>Masternode wallet to remain online</li> + </ul> + </p></body></html> + + +<html><head/><body><p align="justify"> +Un Masternode es un ordenador que ejecuta una billetera central PIVX de nodo +completo con un requisito de 10.000 PIV de garantía asegurados para prestar servicios +adicionales a la red y a cambio, recibir una parte de la recompensa del bloque +regularmente. Estos servicios incluyen: +</p><p align="justify"> + +<ul> +<li>Transacciones instantáneas (SwiftX)</li> +<li>Una gobernanza descentralizada (Propuesta de Votación)</li> +<li>Un sistema de presupuestación descentralizado (Tesorería)</li> +<li>Validación de transacciones dentro de cada bloque</li> +<li>Actuar como un nodo completo adicional en la red</li> +</ul> + +</p><p align="justify"> +Por la prestación de estos servicios, a los Masternodes también se les paga una cierta parte de recompensa por cada bloque. Esto puede servir como un ingreso pasivo para los +propietarios de Masternodes menos sus costes de funcionamiento. +</p><p align="justify"> + +Ventajas de los Masternodes: +</p><p align="justify"> +<ul> +<li>Participar en el gobierno de PIVX</li> +<li>Gana Recompensas Masternode</li> +<li>Opción de productos para venta futura</li> +</li>Ayudar a proteger la red PIVX</li> +</ul> +</p><p align="justify"> + +Requisitos: +</p> +<p align="justify"><ul> +<li>10.000 PIV por cada instancia de Masternode</li> +<li>Debe guardarse en una billetera principal</li> +<li>Necesita una dirección IP dedicada</li> +<li>La billetera Masternode permanecerá en línea</li> +</ul> +</p></body></html> + + + 10 + 10 + + + What is a Master Node Controller? + ¿Qué es un Controlador de Masternode? + + + <html><head/><body><p align="justify">A Masternode Controller wallet is where the 10,000 PIV collateral can reside during a Controller-Remote masternode setup. It is a wallet that can activate the remote masternode wallet/s and allows you to keep your collateral coins offline while the remote masternode remains online. </p></body></html> + <html><head/><body><p align="justify">Una billetera de Controlador de Masternode es donde los 10,000 PIV colaterales pueden residir durante una configuración de Masternode de Controlador-Remoto. Es una billetera que puede activar la/s billetera/s remota/s de masternode y te permite mantener tus monedas colaterales fuera de línea mientras el masternode remoto permanece en línea.</p></body></html> + + + Frequently Asked Questions + Preguntas Frecuentes + + + You can read more here + Puedes leer más aquí + + + Exit + Salida + + + + SettingsInformationWidget + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + Network Monitor + Monitor de Red + + + Information + Información + + + General + General + + + Client Version: + Versión del Cliente: + + + User Agent: + Agente de Usuario: + + + Using BerkeleyDB version: + Usando la versión de BerkeleyDB: + + + Datadir: + Datadir: + + + Startup Time: + Tiempo de Inicio: + + + Network + Red + + + Name: + Nombre: + + + Number Connections: + Conexiones Numéricas: + + + Blockchain + Blockchain + + + Current Number of Blocks: + Número Actual de Bloques: + + + Last Block Time: + Tiempo del bloque pasado + + + Memory Pool + Pool de Memoria + + + Current Number of Transactions: + Número Actual de Transacciones: + + + Main + Principal + + + Wallet Conf + Configurar Billetera + + + Backups + Respaldos + + + No information + Sin información + + + Unable to open backups folder + No se puede abrir la carpeta de copias de seguridad + + + Unable to open pivx.conf with default application + No se puede abrir pivx.conf con la aplicación predeterminada + + + In: + Dentro: + + + Out: + Fuera: + + + + SettingsMainOptionsWidget + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + Window + Ventana + + + Customize the application window options + Personalizar las opciones de la ventana de la aplicación + + + CheckBox + CheckBox + + + Reset to default + Reestablecer a valores predeterminados + + + Discard changes + Descartar los cambios + + + SAVE + GUARDAR + + + Main + Principal + + + Size of database cache + Tamaño del caché de la base de datos + + + Number of script verification threads + Números de hilos de verificación del Scrip + + + Start PIVX on system login + Iniciar PIVX al iniciar sesión en el sistema + + + Minimize to the tray instead of the taskbar + Minimizar a la bandeja en lugar de a la barra de tareas + + + Minimize on close + Minimizar al cerrar + + + Reset Options + Reestablecer Opciones + + + You are just about to reset the app's options to the default values. + +Are you sure? + + Estás a punto de reestablecer las opciones de la aplicación a los valores predeterminados. + +¿Estás seguro? + + + + Options reset succeed + El restablecimiento de las opciones se ha realizado correctamente + + + + SettingsMultisendDialog + + Form + Formulario + + + Transaction Details + Detalles de Transacción + + + TextLabel + EtiquetaDeTexto + + + CANCEL + CANCELAR + + + SAVE + GUARDAR + + + New recipient for multisend + Nuevo destinatario para multisend + + + Label (optional) + Etiqueta (opcional) + + + Enter a label to add this address in your address book + Introduce una etiqueta para añadir esta dirección en tu libreta de direcciones + + + Percentage + Porcentaje + + + + SettingsMultisendWidget + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + No active Master Node yet + No hay ningún nodo Maestro activo todavía. + + + CheckBox + CheckBox + + + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. + MultiSend le permite enviar automáticamente hasta el 100% de tus stakes o recompensas masternode a una lista de otras direcciones PIVX después de que madurar. + + + Active + Activo + + + Disable + Deshabilitar + + + No active recipient yet + Ningún destinatario activo todavía + + + Send stakes + Enviar stakes + + + Send masternode rewards + Enviar recompensas de masternode + + + ADD RECIPIENT + AÑADIR DESTINATARIO + + + CLEAR ALL + BORRAR TODO + + + Clear succeed + Borrado con éxito + + + Clear all failed, could not locate address in wallet file + Borrar todos los errores, no se pudo localizar la dirección en el archivo de la billetera + + + The entered address: %1 is invalid. +Please check the address and try again. + La dirección introducida: %1 es inválida. +Por favor comprueba la dirección e inténtalo nuevamente. + + + Invalid percentage, please enter values from 1 to 100. + Porcentaje inválido, por favor ingresa valores desde 1 hasta 100. + + + The total amount of your MultiSend vector is over 100% of your stake reward + La cantidad total de tu vector de MultiEnvío es superior al 100% de tu recompensa de Stake + + + Error saving MultiSend, failed saving properties to the database. + Error al guardar MultiSend, ha fallado el guardado de las propiedades en la base de datos. + + + Unable to activate MultiSend, no available recipients + No se puede activar MultiSend, no hay destinatarios disponibles + + + Unable to activate MultiSend +Check one or both of the check boxes to send on stake and/or masternode rewards + No se puede activar MultiSend +Marque una o ambas casillas de verificación para enviar recompensas de stake y/o masternode + + + MultiSend activated but writing settings to DB failed + MultiSend activado pero la configuración de escritura en la DB falló + + + MultiSend activated + MultiSend activado + + + First multiSend address invalid + La primera dirección de envío múltiple no es válida + + + MultiSend deactivated but writing settings to DB failed + MultiSend desactivado pero la configuración de escritura en la BD falló + + + MultiSend deactivated + MultiSend desactivado + + + + SettingsSignMessageWidgets + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + PushButton + Presionar el botón + + + Clear + Limpiar + + + Sign/Verify Message + Firmar/Verificar Mensaje + + + Enter a PIVX address or contact label + Introduce una dirección PIVX o una etiqueta de contacto + + + Add address + Añadir dirección + + + Sign + Firmar + + + Verify + Verificar + + + Select mode + Seleccionar una modalidad + + + Message + Mensaje + + + Write a message + Escribe un mensaje + + + Signature + Firma + + + SIGN + FIRMAR + + + CLEAR ALL + BORRAR TODO + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Usted puede firmar mensajes con su dirección para probar que son auténticos. Tenga cuidado con firmar algo corto o vago como "hola", pues los ataques de phising pueden engañarle para que firme su identidad para ellos. Sólo firme textos detallados con los que esté de acuerdo. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Introduzca la dirección de firma, mensaje (asegúrese de que copia los puntos y aparte, espacios, tabuladores, etc. exactamente) y la firma debajo para verificar el mensaje. Vaya con cuidado de no leer más en la firma de loque está en el mensaje firmado propiamente dicho, para evitar ser engañado por un ataque "hombre en el medio". + + + VERIFY + VERIFICAR + + + The entered address is invalid. + La dirección introducida es inválida + + + Please check the address and try again. + Por favor compruebe la dirección e inténtelo de nuevo. + + + The entered address does not refer to a key. + La dirección introducida no se refiere a ninguna clave. + + + Wallet unlock was cancelled. + El desbloqueo del monedero fue cancelado. + + + Private key for the entered address is not available. + La clave privada para la dirección introducida no está disponible. + + + Message signing failed. + La firma del mensaje falló. + + + Message signed. + Mensaje firmado. + + + The signature could not be decoded. + La firma no pudo ser decodificada. + + + Please check the signature and try again. + Por favor compruebe la firma e inténtelo otra vez. + + + The signature did not match the message digest. + La firma no coincide con el resumen del mensaje. + + + Message verification failed. + Falló la verificación del mensaje. + + + Message verified. + Mensaje verificado. + + + No addresses available, you can go to the receive screen and add some there! + No hay direcciones disponibles, puedes ir a la pantalla de recepción y añadir algunas allí! + + + + SettingsWalletOptionsWidget + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + CheckBox + CheckBox + + + RadioButton + RadioButton + + + Reset to default + Reestablecer a valores predeterminados + + + Discard changes + Descartar los cambios + + + PushButton + Presionar el botón + + + Wallet + Monedero + + + Customize the internal wallet options + Personaliza las opciones de la billetera interna + + + Stake split threshold: + Parte limite de stake: + + + Spend unconfirmed change + Gastar cambio no confirmado + + + Network + Red + + + Customize the node network options + Personalizar las opciones de la red de nodos + + + Proxy IP: + IP del proxy: + + + Enter proxy IP + Introduce la IP del proxy + + + Port: + Puerto: + + + Map port using UPnP + Asignar puerto utilizando UPnP + + + Allow incoming connections + Permitir conexiones entrantes + + + Connect through SOCKS5 proxy (default proxy): + Conectarse a través del proxy SOCKS5 (proxy por defecto): + + + SAVE + GUARDAR + + + Options reset succeed + El restablecimiento de las opciones se ha realizado correctamente + + + + SettingsWalletRepairWidget + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + PushButton + Presionar el botón + + + Wallet Repair + Reparación de billeteras + + + The buttons below will restart the wallet with command-line options to repair this wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. + Los botones de abajo reiniciarán la billetera con opciones de línea de comandos para reparar esta billetera, solucionar problemas con archivos corruptos de blockchain o transacciones perdidas u obsoletas. + + + Attempt to recover private keys from a corrupt wallet.dat. + Intentar recuperar las llaves privadas de un archivo wallet.dat corrupto. + + + Rescan the blockchain for missing wallet transactions. + Vuelve a escanear la blockchain en busca de transacciones de billetera perdidas. + + + Recover transactions from blockchain (keep-meta-data, e.g. account owner). + Recuperar transacciones de la blockchain (guardar-meta-datos, por ejemplo, propietario de la cuenta). + + + Recover transactions from blockchain (drop meta-data). + Recuperar transacciones del blockchain (ignorar meta-datos). + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself) + Actualiza tu billetera al último formato al iniciarse. (Nota: esto NO es una actualización de la billetera en sí) + + + Rebuild blockchain index from current blk000???.dat files. + Reconstruir el índice de la cadena de bloques desde los archivos blk000??.dat actuales. + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Eliminar todos los directorios locales del blockchain y sincronizar el monedero desde el principio + + + Salvage wallet + Salvar monedero + + + Rescan blockchain file + Volver a escanear el archivo de la blockchain + + + Recover transactions 1 + Recuperar transacciones 1 + + + Recover transactions 2 + Recuperar transacciones 2 + + + Upgrade wallet format + Actualizar formato del monedero + + + Rebuild index + Reconstruir índice + + + Delete local blockchain + Eliminar la blockchain local + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Esto eliminará las carpetas de blockchain locales y el monedero sincronizará la cadena de bloques completa desde cero.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Esto requiere bastante tiempo y la descarga una gran cantidad de datos.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Sus transacciones y fondos serán visibles nuevamente después de que se haya completado la descarga.<br /><br /> + + + Do you want to continue?.<br /> + ¿Desea continuar?.<br /> + + + Confirm resync Blockchain + Confirmar resincronización del Blockchain + + + + SettingsWidget + + Form + Formulario + + + TextLabel + EtiquetaDeTexto + + + Wallet Data + Datos de la Billetera + + + Wallet + Monedero + + + Multisend + Multisend + + + Tools + Herramientas + + + Sign/Verify Message + Firmar/Verificar Mensaje + + + BIP38 Tool + Herramienta BIP38 + + + Options + Opciones + + + Main + Principal + + + Display + Visualización de la pantalla + + + Debug + Depurar + + + Information + Información + + + Console + Consola + + + Wallet Repair + Reparación de billetera + + + Help + Ayuda + + + FAQ + Preguntas Frecuentes + + + About PIVX + Acerca de PIVX + + + Settings + Ajustes + + + Confirm options reset + Confirmar reinicio de las opciones + + + Client restart required to activate changes. + Se requiere un reinicio del cliente para activar los cambios. + + + Client will be shutdown, do you want to proceed? + El cliente se cerrará, ¿procedemos? + + + Restart required + Se requiere reiniciar + + + Your wallet needs to be restarted to apply the changes + + Tu billetera necesita ser reiniciada para aplicar los cambios. + + + + Restart Now + Reiniciar Ahora + + + Restart Later + Reiniciar más tarde + + + Options will be applied on next wallet restart + Las opciones se aplicarán en el próximo reinicio de la billetera + + + Options stored + Opciones guardadas + + + Options store failed + Fallo al guardar las opciones + + + Discard Unsaved Changes + Descartar los cambios no guardados + + + You are just about to discard all of your unsaved options. + +Are you sure? + + Estás a punto de descartar todas las opciones que no has guardado. + +¿Estás seguro de eso? + + + + + ShutdownWindow + + PIVX Core is shutting down... + El programa PIVX se está cerrando... + + + Do not shut down the computer until this window disappears. + No apague el equipo hasta que esta ventana desaparezca. + + + + SnackBar + + Form + Formulario + + + Contact Stored + Contacto Guardado + + + + Splash + + Form + Formulario + + + Loading… + Cargando.... + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Versión %1 + + + The Bitcoin Core developers + Los desarrolladores de Bitcoin Core + + + The Dash Core developers + Los desarrolladores de Dash Core + + + The PIVX Core developers + Los desarrolladores de PIVX Core + + + [testnet] + [testnet] + + + + TooltipMenu + + Form + Formulario + + + Copy + Copiar + + + Edit + Editar + + + Delete + Borrar + + + Last + Último + + + + TopBar + + Form + Formulario + + + 480.0685 PIV + 480.0685 PIV + + + 1,000 zPIV + 1,000 zPIV + + + Available + Disponible + + + Pending + Pendiente + + + 6.943 PIV + 6.943 PIV + + + Immature + No está completamente desarrollado + + + 10 PIV + 10 PIV + + + 60 zPIV + 60 zPIV + + + 10 zPIV + 10 zPIV + + + Wallet Unlocked for staking + Billetera desbloqueada para hacer Stake + + + Error generating address + Error al generar la dirección + + + Address Copied + Dirección Copiada + + + Automint enabled + Auto-acuñamiento habilitado + + + Automint disabled + Auto-acuñamiento inválido + + + Staking active + Stake activo + + + Staking not active + Stake inactivo + + + Synchronized + Sincronizado + + + %1 and %2 + %1 y %2 + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open until %1 + Abierto hasta %1 + + + conflicted + conflictivo (bloque huérfano?) + + + %1/offline + %1/offline + + + %1/unconfirmed + %1/sin confirmar + + + %1 confirmations + %1 confirmaciones + + + %1/offline (verified via SwiftX) + %1/offline (verificado via swifttx) + + + %1/confirmed (verified via SwiftX) + %1/confirmado (verificado via swifttx) + + + %1 confirmations (verified via SwiftX) + %1 confirmaciones (verificado via swifttx) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/offline (verificación SwiftTX en marcha - %2 de %3 firmas) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/confirmado (verificación SwiftTX en marcha - %2 de %3 firmas) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 confirmaciones (verificación SwiftTX en marcha - %2 de %3 firmas) + + + %1/offline (SwiftX verification failed) + %1/offline (falló la verificación SwiftTX) + + + %1/confirmed (SwiftX verification failed) + %1/confirmado (falló la verificación SwiftTX) + + + Status + Estado + + + , has not been successfully broadcast yet + , no ha sido correctamente transmitida todavía + + + Date + Fecha + + + Source + Fuente + + + Generated + Generado + + + From + De + + + unknown + desconocido + + + To + A + + + own address + dirección propia + + + watch-only + sólo-lectura + + + label + etiqueta + + + Credit + Crédito + + + not accepted + rechazado + + + Debit + Débito + + + Total debit + Débito total + + + Total credit + Abonos totales + + + Transaction fee + Comisión de transacción + + + Net amount + Cantidad neta + + + Message + Mensaje + + + Comment + Comentario + + + Transaction ID + ID de la transacción + + + Output index + Ãndice de salida + + + Merchant + Comerciante + + + Debug information + Información de depuración + + + Transaction + Transacción + + + Inputs + Entradas + + + Amount + Cantidad + + + true + verdad + + + false + falso + + + + TransactionTableModel + + Date + Fecha + + + Type + Tipo + + + Address + Dirección + + + Open until %1 + Abierto hasta %1 + + + Offline + Desconectado + + + Unconfirmed + Sin confirmar + + + Confirming (%1 of %2 recommended confirmations) + Confirmando (%1 de %2 confirmaciones recomendadas) + + + Confirmed (%1 confirmations) + Confirmado (%1 confirmaciones) + + + Conflicted + Huérfano + + + Immature (%1 confirmations, will be available after %2) + Prematuro (%1 confirmaciones, estará disponible después de %2) + + + This block was not received by any other nodes and will probably not be accepted! + ¡Este bloque no fue recibido por los otros nodos y probablemente no será aceptado! + + + Received with + Recibido con + + + Masternode Reward + Recompensa de Nodo Maestro + + + Received from + Recibido desde + + + Received via Obfuscation + Recibido por medio de Ofuscación + + + PIV Stake + Stake PIV + + + zPIV Stake + Stake zPIV + + + PIV Cold Stake + Cold Stake de PIV + + + PIV Stake in behalf of + Stake de PIV en nombre de + + + Stake delegation + Delegación de Stake + + + Obfuscation Denominate + Ofuscación Denominada + + + Obfuscation Collateral Payment + Pago Colateral de Ofuscación + + + Obfuscation Make Collateral Inputs + La Ofuscación Crea Entradas Colaterales + + + Obfuscation Create Denominations + Ofuscación Crea Billetes + + + Converted PIV to zPIV + PIV convertidos a zPIV + + + Spent zPIV + Gastar zPIV + + + Received PIV from zPIV + PIV recibidos desde zPIV + + + Minted Change as zPIV from zPIV Spend + Cambio de acuñación en zPIV al Gastar zPIV + + + Converted zPIV to PIV + zPIV convertidos a PIV + + + Sent to + Enviado a + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Bloque Huérfano - Generado pero no aceptado. Esto no afecta a su saldo. + + + Payment to yourself + Pago a usted mismo + + + Mined + Minado + + + Obfuscated + Ofuscado + + + watch-only + sólo-lectura + + + Anonymous + Anónimo + + + No information + Sin información + + + (n/a) + (n/a) + + + Transaction status. Hover over this field to show number of confirmations. + Estado de la transacción. Pase el ratón sobre este campo para mostrar el número de confirmaciones. + + + Date and time that the transaction was received. + Fecha y hora a la que se recibió la transacción. + + + Type of transaction. + Tipo de transacción. + + + Whether or not a watch-only address is involved in this transaction. + Indica si hay o no una dirección de sólo lectura relacionada en esta transacción + + + Destination address of transaction. + Dirección de destino de la transacción. + + + Amount removed from or added to balance. + Cantidad quitada o añadida al balance. + + + + TxDetailDialog + + Form + Formulario + + + Transaction Details + Detalles de Transacción + + + ID: + ID: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Sending to: + Enviando a: + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + Total amount + Monto total + + + 2 PIV + 2 PIV + + + Coin inputs: + Ingreso de monedas: + + + 1 Inputs + 1 Entrada + + + Previous Transaction + Transacción Previa + + + Output Index + Ãndice de Salida + + + Fee: + Comisión: + + + 0.0001 PIV + 0.0001 PIV + + + Change address: + Cambiar dirección: + + + D7VFR83SQbie…BhjcWJtcfip5krte2Z + D7VFR83SQbie…BhjcWJtcfip5krte2Z + + + Confirmations: + Confirmaciones: + + + 12 + 12 + + + Size: + Tamaño: + + + 2 kB + 2 kB + + + Date: + Fecha: + + + May 25, 2017 + Mayo 25, 2017 + + + Status: + Estado: + + + Spendable + Para gastar + + + TextLabel + EtiquetaDeTexto + + + CANCEL + CANCELAR + + + OK + OK + + + Confirm Your Transaction + Confirma Tu Transacción + + + SEND + ENVIAR + + + ID copied + ID copiado + + + Unknown + Desconocido + + + + TxRow + + Form + Formulario + + + Received from Bob + Recibido de Bob + + + 18/05/18 + 18/05/18 + + + +0.000585 PIV + +0.000585 PIV + + + + WalletModel + + Send Coins + Enviar Monedas + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftTX no soporta el envío de importes tan altos todavía. Las transacciones están actualmente limitadas a %1 PIV. + + + + WalletPasswordDialog + + Dialog + Diálogo + + + TextLabel + EtiquetaDeTexto + + + PushButton + Presionar el botón + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + CANCELAR + + + OK + OK + + + + WelcomeContentWidget + + Dialog + Diálogo + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + Language + Idioma + + + Welcome + Bienvenido/a + + + Privacy + Privacidad + + + Masternodes + Masternodes + + + Select your language + Selecciona tu idioma + + + Welcome to +PIVX Core Wallet + Bienvenido a +PIVX Core Wallet + + + PIVX is the world’s most innovative Proof of Stake blockchain based technology. Developed by a team of highly experienced developers and cryptographers. + PIVX es la tecnología blockchain de Prueba de Stake más avanzada del mundo. Desarrollada por un equipo de desarrolladores y criptógrafos altamente experimentados. + + + <html><head/><body><p>As our manifesto says: Privacy is a non-negotiable basic human right; it grants users the freedom to share their data whenever and with whomever they want - PIVX believes in self sovereignty.</p></body></html> + <html><head/><body><p>Como dice nuestro manifiesto: La privacidad es un derecho humano básico no negociable; concede a los usuarios la libertad de compartir sus datos cuando y con quien quieran - PIVX cree en la auto-soberanía</p></body></html> + + + The masternode network is PIVX's second layer network on top of the blockchain that enables our DAO to provide decentralized governance and a treasury. + La red masternode es la red de segunda capa de PIVX en la parte superior de la blockchain que permite a nuestra DAO proporcionar un gobierno descentralizado y una tesorería. + + + How PIVX respects your privacy? + ¿Cómo PIVX respeta tu privacidad? + + + What is a Masternode? + ¿Qué es un Masternode? + + + default + por defecto + + + + ZPivControlDialog + + Select zPIV to Spend + Selecciona zPIV para Gastar + + + Coin Control + Control de moneda + + + PushButton + Presionar el botón + + + zPiv + zPiv + + + 0.00 + 0.00 + + + Quantity: + Cantidad: + + + Is Spendable + Es Gastable + + + 0 + 0 + + + Select/Deselect All + Seleccionar/Deseleccionar Todos + + + Select zPIV Denominations to Spend + Selecciona la Denominación zPIV para gastar: + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1= mantener los metadatos tx p.e. dueño de la cuenta e información de la solicitud de pago, 2 = ignorar metadatos tx) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Permitir conexiones JSON-RPC desde la fuente especificada. Valido para <ip> sea una única IP (ej: 1.2.3.4), una red/mascara de red (ej: 1.2.3.4/255.255.255.0) o una red/CIDR (ej: 1.2.3.4/24). Esta opción puede ser especificada múltiples veces. + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Conectarse a la IP seleccionada y siempre escuchar de ella. Usar la forma [host]:puerto para IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Escuchar únicamente a la dirección IP indicada y a nodos de la lista blanca. Use la notación [host]:puerto para IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Escuchar únicamente a la tarjeta de red indicada para conexiones JSON-RPC. Use la notación [host]:puerto para IPv6. Esta opción puede ser especificada varias veces (por defecto: escuchar en todas las tarjetas de red) + + + Calculated accumulator checkpoint is not what is recorded by block index + El punto de chequeo del acumulador que hemos calculado no coincide con lo guardado en el índice de bloques + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + No se puede obtener un bloqueo sobre el directorio de datos %s. PIVX Core esta probablemente en ejecución. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Cambiar el comportamiento automático de votación de presupuesto final. modo=auto: Votar sólo por coincidencia exacta de un presupuesto finalizado con el generado por mí. (cadena, por defecto: auto) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Limite continuo de transacciones gratuitas <n>*1000 bytes por minuto (default:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Crear nuevos archivos con el permiso predeterminado del sistema, en vez de umask 077 (solamente efectivo con la funcionalidad del monedero desabilitada) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Borrar todas las transacciones del monedero y solo recuperar partes de la cadena de bloque a traves de -rescan al inicio. + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Elimina todos registros de las transferencias y el acuñado de Zerocoin que se hayan registrado en la base de datos de Blockchain y vuelva a indexarlos (0-1, default: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuido bajo licencia MIT software license, ver el archivo adjunto COPYING or <http://www.opensource.org/licenses/mit-license.php> + + + Enable automatic Zerocoin minting from specific addresses (0-1, default: %u) + Habilitar acuñado automático de Zerocoin desde una dirección específica (0-1, default: %u) + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Habilite copias de seguridad automáticas del monedero que se activan después de cada acuñación zPIV (0-1, predeterminado: %u) + + + Enable cold staking functionality (0-1, default: %u). Disabled if staking=0 + Activar funcionalidad de cold staking (0-1, por defecto: %u). Desactivado si staking=0 + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Habilitar o deshabilitar la funcionalidad de staking para las entradas PIV (0-1, predeterminado: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Habilitar o deshabilitar la funcionalidad de staking para las entradas zPIV (0-1, predeterminado: %u) + + + Enable spork administration functionality with the appropriate private key. + Activar la función de administración de sporks con la llave privada apropiada. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Entrar en el modo prueba de regresión, el cual usa una cadena especial en el cual los bloques pueden ser resueltos instantaneamente. + + + Error: Listening for incoming connections failed (listen returned error %s) + Error: La escucha para conexiones entrantes falló (la escucha retorno error %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Error: ¡La transacción es más grande que el tamaño máximo de transacción permitido! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Error: Argumento -socks no soportado. No se permite utilizar la versión SOCKS, solo proxies de SOCKS5 están soportados. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Ejecutar un comando cuando una alerta relevante es recibida o estamos teniendo una realmente larga bifurcación (%s en cmd is reemplazado por el mensaje) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Ejecutar un comando cuando una transacción del monedero cambie (%s en cmd is reemplazado por TxID) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Ejecutar comando cuando el mejor bloque cambie (%s en cmd es reemplazado por el block hash) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Comisiones (en PIV/Kb) menores a esta son consideradas gratuitas para la propagación de la transacción (default: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Comisiones (en PIV/Kb) menores a esta son consideradas gratuitas para la creación de la transacción (default: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Trasladar la actividad de la base de datos en el pool de memoria al log de disco cada <n> megabytes (default: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Si paytxfee no esta definido, incluir suficiente comisión de manera que la transacción se vuelva confirmada en promedio dentro de n bloques (predeterminado: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + En este modo -genproclimit controla cuantos bloques son generados inmediatamente. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Fondos insuficientes o fondos confirmados insuficientes, es posible que tenga que esperar unos minutos y volver a intentarlo. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Importe inválido para -maxtxfee=<amount>:'%s' (debe ser al menos la comisión minrelay de %s para prevenir transacciones atascadas) + + + Keep the specified amount available for spending at all times (default: 0) + Mantener la cantidad especificada disponible para gastar en todo momento (por defecto: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Prioridad y comisión del registro de transacciones por kB cuando se esta minando bloques (predeterminado: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Mantener un indice de transacción completo, utilizado por la llamada rpc getrawtransaction (predeterminado: %u) + + + Maximum average size of an index occurrence in the block spam filter (default: %u) + Tamaño promedio máximo de un indicador de ocurrencia en el filtro de spam del bloque (default: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Tamaño máximo de datos en transacciones de transmisiones de datos que pasamos y minamos (predeterminado: %u) + + + Maximum size of the list of indexes in the block spam filter (default: %u) + Tamaño máximo de la lista de indicadores en el filtro de spam del bloque (default: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Comisión máxima total para usar en una única transacción de monedero, definirlo muy bajo puede abortar transacciones largas (predeterminado: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Número de segundos a mantener pares con mal comportamiento de reconectarse (predeterminado: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + La ofuscación utiliza importes en denominaciones exactas para enviar fondos, puedes simplemente necesitar anonimizar algunas monedas mas. + + + Output debugging information (default: %u, supplying <category> is optional) + Saluda de información de depuración (predeterminado: %u, proveyendo <category> es opcional) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Consultar por direcciones de pares vía búsqueda en DNS, si cantidad de direcciones esta bajo (predeterminado: 1 a menos que se utilice -connect) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Credenciales aleatorias para cada conexión proxy. Esto habilita el aislamiento del flujos de datos Tor (por defecto: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Requerir alta prioridad para transmitir transacción de libre o baja comisión (predeterminado: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + Enviar info de traza/debug a la consola en lugar del archivo debug.log (predeterminado: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Define tamaño máximo de transacción alta prioridad/baja comisión en bytes (predeterminado: %d) + + + Set the number of included blocks to precompute per cycle. (minimum: %d) (maximum: %d) (default: %d) + Configurar el número de bloques incluidos para precalcular por ciclo. (minimum: %d) (maximum: %d) (default: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Define el número de hilos para el script de verificación (%u a %d, 0 = auto, <0 = dejar esa cantidad de núcleos libres, predeterminado: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Define el número de hilos para generación de moneda si esta habilitado (-1 = todos los núcleos, predeterminado: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Mostrar N confirmaciones para una transacción cerrada exitosamente (0-9999, predefinido: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Soportar filtrado de bloques y transacciones con filtros bloom (por defecto: %u) + + + The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct + La base de datos de bloques contiene un bloque que parece ser del futuro. Esto puede deberse a que la fecha y la hora de su ordenador están mal ajustadas. Sólo reconstruya la base de datos de bloques si está seguro de que la fecha y la hora de su ordenador son correctas. + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + Este producto incluye software desarrollado por el Proyecto OpenSSL para uso en OpenSSL Toolkit <https://www.openssl.org/> y software de cifrado escrito por Eric Young y software de UPnP escrito por Thomas Bernard. + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + La longitud total de la cadena de la versión de red (%i) excede la longitud máxima (%i). Reducir el número o tamaño de los uacomments. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Imposible conectar a %s en esta computadora. Es probable que PIVX Core ya este corriendo. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Imposible localizar suficientes fondos denominados de Ofuscación para esta transacción. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Imposible localizar suficientes fondos no-denominados de Ofuscación para esta transacción que no es igual a 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Imposible localizar fondos suficientes para esta transacción que no es igual a 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Utilizar un proxy SOCKS5 diferente para alcanzar pares vía el servicio oculto Tor (predefinido: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Advertencia: -maxtxfee esta muy alto! Comisiones así de altas pueden ser pagadas en una única transacción. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Advertencia: -paytxfee esta muy alta! Esta es la comisión de transacción que pagarás si envías una transacción. + + + Warning: Peers are being disconnected due time differences. Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Advertencia: Los pares están siendo desconectados debido a las diferencias horarias. Por favor, verifica que la fecha y la hora de tu computadora sean correctas! Si tu reloj está fuera de hora, PIVX Core no funcionará correctamente. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Advertencia: Por favor verifique que la fecha y hora de su computadora sean correctas! Si su reloj esta fuera de hora PIVX Core no funcionará adecuadamente. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Advertencia: La red parece no estar concordando totalmente! Algunos mineros parecen estar experimentando problemas. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Advertencia: No estamos apareciendo totalmente en concordancia con nuestros pares! Podrías necesitar una actualización, o otros nodos pueden necesitar una actualización. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Advertencia: error leyendo wallet.dat! Todas las claves leídas correctamente, pero datos de transacción or entradas en el libro de direcciones podrían estar faltando o ser incorrectas. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Advertencia: wallet.dat esta dañado, datos salvados! El wallet.dat original esta grabado como wallet.{timestamp}.bak en %s; si tu saldo o transacciones son incorrectas deberías restaurar de un backup. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Pares de la whitelist conectados desde la mascara de red o direcciones IP dada. Puede ser especificado múltiples veces. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Pares de la Whitelist no pueden ser banneados por DoS y sus transacciones son siempre transmitidas, aún si ellas están ya en la mempool, util por ejemplo para un gateway. + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + Debes especificar un masternodeprivkey en la configuración. Por favor mira la documentación por ayuda. + + + (51472 could be used only on mainnet) + (51472 puede ser utilizado solo en mainnet) + + + (default: %s) + (predeterminado: %s) + + + (default: 1) + (predeterminado: 1) + + + (must be 51472 for mainnet) + (debe ser 51472 para un mainnet) + + + Accept command line and JSON-RPC commands + Aceptar linea de mandato y mandatos JSON-RPC + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Aceptar conexiones desde afuera (predeterminado: 1 sin opción -proxy o -connect) + + + Accept public REST requests (default: %u) + Aceptar peticiones públicas REST (predeterminado: %u) + + + Add a node to connect to and attempt to keep the connection open + Agregar un nodo a conectarse y intentar mantener abierta la conexión + + + Adding Wrapped Serials supply... + Añadiendo el suministro de Seriales Envueltos... + + + Allow DNS lookups for -addnode, -seednode and -connect + Permitir búsquedas DNS para -addnode, -seednode y -connect + + + Always query for peer addresses via DNS lookup (default: %u) + Siempre consultar por direcciones de pares vía búsqueda DNS (predeterminado: %u) + + + Append comment to the user agent string + Añadir un comentario a la cadena del agente de usuario + + + Attempt to recover private keys from a corrupt wallet.dat + Intentar recuperar claves privadas desde un wallet.dat dañado + + + Automatically create Tor hidden service (default: %d) + Crear automáticamente servicio Tor oculto (por defecto: %d) + + + Block creation options: + Opciones de creación de bloque: + + + Calculating missing accumulators... + Calculando acumuladores pendientes... + + + Cannot downgrade wallet + No se puede volver a una versión anterior del monedero + + + Cannot resolve -bind address: '%s' + No se puede resolver la dirección -bind: '%s' + + + Cannot resolve -externalip address: '%s' + No se puede resolver la dirección -externalip: '%s' + + + Cannot resolve -whitebind address: '%s' + No se puede resolver la dirección -whitebind: '%s' + + + CoinSpend: failed check + Gasto de Moneda: verificación fallida + + + Connect only to the specified node(s) + Conectar solo a el/los nodo(s) especificados + + + Connect through SOCKS5 proxy + Conectar a través de proxy SOCKS5 + + + Connect to a node to retrieve peer addresses, and disconnect + Conectar a un nodo para obtener direcciones de pares, y desconectar + + + Connection options: + Opciones de conexión: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Core Developers + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i The Dash Core Developers + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i The PIVX Core Developers + + + Corrupted block database detected + Se detectó base de datos de bloques dañado + + + Could not parse masternode.conf + No se pudo analizar el contenido de masternode.conf + + + Couldn't generate the accumulator witness + No se pudo generar el testigo del acumulador + + + Debugging/Testing options: + Opciones de Depuración/Pruebas: + + + Delete blockchain folders and resync from scratch + Eliminar directorios de Blockchain y resincronizar desde el principio + + + Disable OS notifications for incoming transactions (default: %u) + Desactivar notificaciones del sistema para transacciones extrantes (por defecto: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Desactiva modo seguro, invalida un evento modo seguro real (predeterminado: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Descubrir direcciones IP propia (predeterminado: 1 cuando se esta a la escucha y sin opción -externalip) + + + Do not load the wallet and disable wallet RPC calls + No cargar la monedero y desactivar las llamadas RPC del monedero + + + Do you want to rebuild the block database now? + ¿Quieres reconstruir la base de datos de bloques ahora? + + + Done loading + Realizando carga + + + Enable automatic Zerocoin minting (0-1, default: %u) + Habilitar creación automática de Zerocoin (0-1, por defecto: %u) + + + Enable precomputation of zPIV spends and stakes (0-1, default %u) + Habilitar el cálculo previo de los gastos y los stakes de zPIV (0-1, default %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + Activar inclusión del hash de la transacción (fijada mediante SwiftTX) en <address> + + + Enable publish raw transaction (locked via SwiftX) in <address> + Activar inclusión de la transacción en bruto (fijada mediante SwiftTX) en <address> + + + Enable the client to act as a masternode (0-1, default: %u) + Habilitar al cliente para actuar como un nodo maestro (0-1. predeterminado: %u) + + + Error initializing block database + Error al inicializar base de datos de bloques + + + Error initializing wallet database environment %s! + Error al inicializar ambiente %s de base de datos del monedero! + + + Error loading block database + Error al cargar base de datos de bloques + + + Error loading wallet.dat + Error al cargar wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Error al cargar wallet.dat: Monedero dañado + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Error al cargar wallet.dat: El monedero requiere una nueva versión del PIVX Core + + + Error opening block database + Error al abrir la base de datos de bloques + + + Error reading from database, shutting down. + Error al leer desde la base de datos, apagando. + + + Error writing zerocoinDB to disk + Error al escribir zerocoinDB en el disco + + + Error + Error + + + Error: A fatal internal error occured, see debug.log for details + Error: Un error interno fatal a ocurrido, ver debug.log para mas detalles + + + Error: Disk space is low! + Error: El espacio en disco esta bajo! + + + Error: Unsupported argument -tor found, use -onion. + Error: Se encontró argumento no soportado -tor, utilizar -onion. + + + Error: Wallet locked, unable to create transaction! + Error: ¡Monedero bloqueado, imposible crear transacción! + + + Failed to calculate accumulator checkpoint + Error al calcular el punto de control del acumulador + + + Failed to listen on any port. Use -listen=0 if you want this. + Falló la escucha en cualquiera de los puertos. Usar -listen=0 si quieres esto. + + + Failed to parse host:port string + Error al analizar el host: cadena del puerto + + + Failed to read block + Falló al leer el bloque + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Comisión (en PIV/kB) para agregar a la transacción que envías (predeterminado: %s) + + + Force safe mode (default: %u) + Forzar modo seguro (predeterminado: %u) + + + Generate coins (default: %u) + Generando monedas: (predeterminado: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Cuantos bloques a probar al iniciar (predeterminado: %u, 0 = todos) + + + If <category> is not supplied, output all debugging information. + Si <category> no es proveído, dar salida a toda la información de depuración. + + + Importing... + Importando... + + + Imports blocks from external blk000??.dat file + Importar bloques desde archivo externo blk000??.dat + + + Include IP addresses in debug output (default: %u) + Incluir direcciones IP en salida de depuración (predeterminado: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + Bloque de génesis incorrecto o no encontrado. datadir equivocado para red? + + + Information + Información + + + Initialization sanity check failed. PIVX Core is shutting down. + La prueba de salud de inicialización ha fallado. PIVX Core se cerrará. + + + Insufficient funds + Fondos insuficientes + + + Insufficient funds. + Fondos insuficientes. + + + Invalid -onion address or hostname: '%s' + Dirección o nombre de equipo -onion inválido: '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + Importe inválido para -maxtxfee=<amount>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Importe inválido para -minrelaytxfee=<amount>: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Importe inválido para -mintxfee=<amount>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Importe inválido para -paytxfee=<amount>: '%s' (debe ser al menos %s) + + + Invalid amount for -paytxfee=<amount>: '%s' + Importe inválido para -paytxfee=<amount>: '%s' + + + Invalid amount for -reservebalance=<amount> + Importe inválido para -reservebalance=<amount> + + + Invalid amount + Cantidad incorrecta + + + Invalid masternodeprivkey. Please see documenation. + Valor de masternodeprivkey es inválido. Por favor ver la documentación. + + + Invalid netmask specified in -whitelist: '%s' + Máscara de red inválida especificada en -whitelist: '%s' + + + Invalid port detected in masternode.conf + Puerto inválido ha sido detectado en masternode.conf + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Porcentaje de Zerocoin creadas automáticamente (10-100, por defecto: %u) + + + Recalculating PIV supply... + Recalculando suministro PIV... + + + Recalculating minted ZPIV... + Recalculando acuñado ZPIV... + + + Recalculating spent ZPIV... + Recalculando gasto ZPIV... + + + Reindex the PIV and zPIV money supply statistics + Reindexar as estatísticas de fornecimento de dinheiro PIV e zPIV + + + Reindexing zerocoin database... + Reindexando la base de datos zerocoin... + + + Reindexing zerocoin failed + La reindexación zerocoin ha fallado + + + Selected coins value is less than payment target + El valor de las monedas seleccionadas es menor que el monto a pagar + + + Support the zerocoin light node protocol (default: %u) + Soporta el protocolo de nodo ligero zerocoin (default: %u) + + + SwiftX options: + Opciones SwiftX: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + Esto es una versión pre-release de prueba - use bajo su propia responsabilidad - ¡No lo utilice para recompensa de participación ni aplicaciones de comercio! + + + mints deleted + + creaciones de moneda borradas + + + + mints updated, + creaciones de moneda actualizadas, + + + unconfirmed transactions removed + + transacciones sin confirmar eliminadas + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Desabilitar toda la funcionalidad especifica PIVX (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, predeterminado: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Activar swifttx, mostrar confirmaciones para transacciones bloqueadas (bool, predeterminado: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + ¡La transacción fue rechazada! Esto puede ocurrir si alguna de sus monedas ya se gastó con anterioridad, por ejemplo, si estuvo usted usando una copia de su monedero wallet.dat y gastó allí monedas pero no las marcó como gastadas aquí. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + Error: ¡Esta transacción requiere una tasa de al menos %s debido a la cantidad enviada, su complejidad, o el uso de fondos recibidos recientemente! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + Error: Se ha especificado un argumento no soportado -checklevel. El Checklevel debe ser siempre 4. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + Ejecute el comando cuando el mejor bloque cambie y su tamaño haya terminado (%s en cmd se reemplaza por el hash del bloque, %d con el tamaño de bloque) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + No se puede encontrar el conjunto de monedas necesarias entre las monedas disponibles con menos de maxNumber para poder gastarlas + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + En casos excepcionales, un envío con más de 7 monedas excede el tamaño máximo de transacción permitidas, intente gastar 6 monedas o menos. + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Denominación preferida para acuñado automatico de Zerocoin (1/5/10/50/100/500/1000/5000), 0 para ninguna preferencia. predeterminado: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Especifique la ruta de copia de seguridad personalizada para agregar una copia de cualquier copia de seguridad zPIV automática. Si se establece como directorio, cada copia de seguridad genera un archivo con marcas de tiempo. Si se establece como archivo, se reescribirá en ese archivo cada copia de seguridad. Si también se establece backuppath, se realizarán 4 copias de seguridad + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Especifique una ruta de copia de seguridad personalizada para agregar una copia de cualquier copia de seguridad de monedero. Si se establece como directorio, cada copia de seguridad genera un archivo con marcas de tiempo. Si se establece como archivo, se reescribirá en ese archivo cada copia de seguridad generada. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftX requiere entradas con al menos 6 confirmaciones, es posible que deba esperar unos minutos e intente de nuevo. + + + <category> can be: + <category>puede ser: + + + Attempt to force blockchain corruption recovery + Intentar forzar la recuperación de la cadena de bloques corrupta + + + Cannot create public spend input + No puede crear insumos para el gasto público + + + CoinSpend: Accumulator witness does not verify + CoinSpend: El testigo del acumulador no verifica + + + Display the stake modifier calculations in the debug.log file. + Incluir los cálculos de recompensa por participación en el fichero debug.log. + + + Display verbose coin stake messages in the debug.log file. + Incluir mensajes explícitos de recompensa por participación en el fichero debug.log. + + + Enable publish hash block in <address> + Activar inclusión del hash del bloque en <address> + + + Enable publish hash transaction in <address> + Activar inclusión del hash de la transacción en <address> + + + Enable publish raw block in <address> + Activar inclusión del bloque en bruto en <address> + + + Enable publish raw transaction in <address> + Activar inclusión de la transacción en bruto en <address> + + + Enable staking functionality (0-1, default: %u) + Activar funcionalidad de recompensa por participación (0-1, por defecto: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Error: Un error interno fatal a ocurrido, ver debug.log para mas detalles + + + Error: No valid utxo! + Error: ¡utxo no válido! + + + Failed to create mint + Error al acuñar + + + Failed to find Zerocoins in wallet.dat + Error al encontrar Zerocoins en wallet.dat + + + Failed to parse public spend + No se analizó el gasto público + + + Failed to select a zerocoin + Error al seleccionar una zerocoin + + + Failed to wipe zerocoinDB + Error al borrar zerocoinDB + + + Failed to write coin serial number into wallet + Error al escribir el número de serie de la moneda en el monedero + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Mantener como máximo <n> transacciones no conectables en memoria (predeterminado: %u) + + + Limit size of signature cache to <n> entries (default: %u) + Tamaño límite del cache de firmas a <n> entradas (predeterminado: %u) + + + Line: %d + Linea: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Escuchar por conexiones JSON-RPC en <port> (predeterminado: %u o testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Escuchar por conexiones en <port> (predeterminado: %u o testnet: %u) + + + Loading addresses... + Cargando direcciones... + + + Loading block index... + Cargando índice de bloque... + + + Loading budget cache... + Cargando cache de presupuestos... + + + Loading masternode cache... + Cargando cache de nodos maestros... + + + Loading masternode payment cache... + Cargando cache de pagos de nodos maestros + + + Loading sporks... + Cargando sporks... + + + Loading wallet... (%3.2f %%) + Cargando monedero: (%3.2f %%) + + + Loading wallet... + Cargando monedero... + + + Location of the auth cookie (default: data dir) + Ubicación de la cookie de autenticación (predeterminado: data dir) + + + Lock masternodes from masternode configuration file (default: %u) + Bloquear nodos maestros desde el archivo de configuración de nodo maestro (predeterminado: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Lookup(): Inválido -dirección proxy o nombre de host '%s' + + + Maintain at most <n> connections to peers (default: %u) + Mantener como máximo <n> conexiones a pares (predeterminado: %u) + + + Masternode options: + Opciones de Masternode: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Buffer de recepción máximo por conexión, <n>*1000 bytes (predeterminado: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Máximo buffer de envío por conexión, <n>*1000 bytes (predeterminado: %u) + + + Mint did not make it into blockchain + El Acuñado no se realizó en blockchain + + + Need to specify a port with -whitebind: '%s' + Necesita especificar un puerto con -whitebind: '%s' + + + Node relay options: + Opciones de transmisión del nodo: + + + Not enough file descriptors available. + No hay suficientes descriptores de archivo disponibles. + + + Number of automatic wallet backups (default: 10) + Número de Copias de seguridad automáticas de monedero (predeterminado: 10) + + + Number of custom location backups to retain (default: %d) + Número de copias de seguridad personalizadas que se deben retener (predeterminado: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Solo aceptar cadena de bloque emparejada con puntos de verificación construidos (predeterminado: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Solo conectar a nodos en la red <net> (ipv4, ipv6 o onion) + + + Options: + Opciones: + + + Password for JSON-RPC connections + Contraseña para conexiones JSON-RPC + + + Unable to find transaction containing mint %s + No se ha podido encontrar la transacción que contiene acuñamiento %s + + + Unable to find transaction containing mint, txHash: %s + No se ha podido encontrar la transacción que contiene acuñamiento, txHash: %s + + + Use block spam filter (default: %u) + Usar el filtro de spam del bloque (default: %u) + + + could not get lock on cs_spendcache + no se pudo bloquear cs_spendcache + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid(): Inválido -dirección proxy o nombre de host '%s' + + + Preparing for resync... + Preparando para resincronizar... + + + Need destination or change address because change is not exact + Necesitas un destino o cambiar de dirección porque el cambio no es exacto + + + Prepend debug output with timestamp (default: %u) + Agregar timestamp a la salida de depuración (predeterminado: %u) + + + Print version and exit + Mostrar versión y salir + + + Pubcoin not found in mint tx + Pubcoin no encontrado en acuñamiento tx + + + RPC server options: + Opciones del servidor RPC: + + + Randomly drop 1 of every <n> network messages + Aleatoriamente dejar caer 1 de cada <n> mensajes de red + + + Randomly fuzz 1 of every <n> network messages + Aleatoriamente esfumar 1 de cada <n> mensajes de red + + + Rebuild block chain index from current blk000??.dat files + Reconstruir el indice de la cadena de bloque desde el corriente archivo blk000??.dat + + + Receive and display P2P network alerts (default: %u) + Recibir y mostrar alertas de red P2P (predeterminado: %u) + + + Reindex the accumulator database + Reindexar la base de datos del acumulador + + + Relay and mine data carrier transactions (default: %u) + Transmitir y minar datos de transacciones enviadas (predeterminado: %u) + + + Relay non-P2SH multisig (default: %u) + Transmitir no-P2SH multisig (predeterminado: %u) + + + Rescan the block chain for missing wallet transactions + Reescanear la cadena de bloques en busca de transacciones perdidas del monedero + + + Rescanning... + Reescaneado... + + + ResetMintZerocoin finished: + ResetMintZerocoin finalizado: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin finalizado: + + + Run a thread to flush wallet periodically (default: %u) + Ejecutar un hilo de ejecución para nivelar el monedero periódicamente (predeterminado: %u) + + + Run in the background as a daemon and accept commands + Ejecutar en segundo plano como demonio y aceptar comandos + + + Send transactions as zero-fee transactions if possible (default: %u) + Enviar transacciones como transacciones cero-comisión si es posible (predeterminado: %u) + + + Session timed out. + La sesión expiró. + + + Set database cache size in megabytes (%d to %d, default: %d) + Definir tamaño de cache de base de datos en megabytes (%d a %d, predeterminado: %d) + + + Set external address:port to get to this masternode (example: %s) + Definir dirección:puerto externo para alcanzar este nodo maestro (ejemplo: %s) + + + Set key pool size to <n> (default: %u) + Definir el tamaño del pool de llaves a <n> (predeterminado: %u) + + + Set maximum block size in bytes (default: %d) + Ajustar el tamaño máximo de bloque en bytes (predeterminado: %d) + + + Set minimum block size in bytes (default: %u) + Ajustar el tamaño mínimo de bloque en bytes (predeterminado: %u) + + + Set the Maximum reorg depth (default: %u) + Establezca la profundidad máxima de reorganización (valor predeterminado: %u) + + + Set the masternode private key + Ajustar la clave privada de masternode + + + Set the number of threads to service RPC calls (default: %d) + Definir el número de hilos para llamadas al servicio RPC (predeterminado: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Definir la bandera DB_PRIVATE en la db de la monedero del ambiente (predeterminado: %u) + + + Show all debugging options (usage: --help -help-debug) + Mostrar todas las opciones de depuración (uso: --help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Encojer el archivo debug.log en el cliente al inicio (predeterminado: 1 cuando no hay -debug) + + + Signing timed out. + Se agotó el tiempo para la firma. + + + Signing transaction failed + La firma de la transacción falló + + + Specify configuration file (default: %s) + Especifique el archivo de configuración (predeterminado: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Especificar el timeout de conexión en mili segundos (mínimo: 1, predeterminado: %d) + + + Specify data directory + Especifique el directorio de datos + + + Specify masternode configuration file (default: %s) + Especifique el archivo de configuración masternode (predeterminado: %s) + + + Specify pid file (default: %s) + Especifique el archivo pid (predeterminado: %s) + + + Specify wallet file (within data directory) + Especifique el archivo del monedero (dentro del directorio de datos) + + + Specify your own public address + Especifique su propia dirección pública + + + Spend Valid + Gastar Válido + + + Spend unconfirmed change when sending transactions (default: %u) + Gastar cambio no confirmado cuando se envían transacciones (predeterminado: %u) + + + Staking options: + Opciones de recompensa por participación: + + + Stop running after importing blocks from disk (default: %u) + Parar la ejecución después de importar bloques desde el disco (predeterminado: %u) + + + Synchronization failed + Falló la sincronización + + + Synchronization finished + Sincronización finalizada! + + + Synchronization pending... + Sincronización pendiente... + + + Synchronizing budgets... + Sincronizando presupuestos... + + + Synchronizing masternode winners... + Sincronizando ganadores masternode... + + + Synchronizing masternodes... + Sincronizando masternodes... + + + Synchronizing sporks... + Sincronizando con la red... + + + Syncing zPIV wallet... + Sincronizando el monedero zPIV... + + + The coin spend has been used + El gasto de moneda se ha usado + + + The transaction did not verify + La transacción no se verificó + + + This help message + Este mensaje de ayuda + + + This is experimental software. + Esto es software experimental. + + + This is intended for regression testing tools and app development. + Esto esta destinado para herramientas de prueba de regresión y desarrollo de aplicaciones. + + + Threshold for disconnecting misbehaving peers (default: %u) + Limite para desconexión de peers de mal desempeño (predeterminado: %u) + + + Too many spends needed + Demasiados gastos necesarios + + + Tor control port password (default: empty) + Contraseña del puerto de control Tor (por defecto: vacío) + + + Tor control port to use if onion listening enabled (default: %s) + Puerto de control Tor a utilizar si está activada la escucha Onion (por defecto: %s) + + + Transaction Created + Transacción creada + + + Transaction Mint Started + Cotação de transação iniciada + + + Transaction amount too small + El monto de la transacción es demasiado pequeño + + + Transaction amounts must be positive + El monto de la transacción debe ser positivo + + + Transaction too large for fee policy + La transacción es demasiado grande para la política de comisión. + + + Transaction too large + La transacción es demasiado grande + + + Trying to spend an already spent serial #, try again. + Tentando gastar um número de série já gasto, tente novamente. + + + Unable to bind to %s on this computer (bind returned error %s) + Imposible enlazar %s en esta computadora (enlace retorna error %s) + + + Unable to generate initial key + No se puede generar la clave inicial + + + Unable to sign spork message, wrong key? + Imposible firmar el mensaje spork, ¿llave equivocada? + + + Unable to start HTTP server. See debug log for details. + No se puede iniciar el servidor HTTP. Ver registro de depuración para más detalles. + + + Unknown network specified in -onlynet: '%s' + Red especificada desconocida en -onlynet: '%s' + + + Upgrade wallet to latest format + Actualizar el monedero al último formato + + + Use UPnP to map the listening port (default: %u) + Usar UPnP para mapear el puerto de escucha (predeterminado: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Usar UPnP para mapear el puerto de escucha (predeterminado: 1 cuando esta en escucha) + + + Use a custom max chain reorganization depth (default: %u) + Utilice una profundidad de reorganización de cadena máxima personalizada (valor predeterminado: %u) + + + Use the test network + Usar la red de prueba + + + User Agent comment (%s) contains unsafe characters. + El comentario del Agente de usuario (%s) contiene caracteres inseguros. + + + Username for JSON-RPC connections + Nombre de usuario para conexiones JSON-RPC + + + Value is below the smallest available denomination (= 1) of zPIV + El valor está por debajo de la denominación más pequeña disponible (= 1) de zPIV + + + Verifying blocks... + Verificando bloques... + + + Verifying wallet... + Verificando el monedero... + + + Wallet %s resides outside data directory %s + El monedero %s esta ubicada fuera del directorio de datos %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + El Monedero necesita ser reescrito: reinicie PIVX Core para completar + + + Wallet options: + Opciones del Monedero: + + + Wallet window title + Monedero titulo de ventana + + + Warning + Advertencia + + + Warning: This version is obsolete, upgrade required! + Advertencia: Esta versión es obsoleta, se requiere actualizar! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Advertencia: Argumento no soportado -benchmark ignorado, use -debug=bench + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Advertencia: Argumento no soportado -debugnet ignorado, use -debug=net. + + + You don't have enough Zerocoins in your wallet + No tienes suficientes Zerocoins en tu monedero + + + You need to rebuild the database using -reindex to change -txindex + Usted necesita reconstruir la base de datos usando -reindex para cambiar -txindex + + + Zapping all transactions from wallet... + Saltando todas las transacciones del monedero... + + + ZeroMQ notification options: + Opciones de notificación ZeroMQ: + + + Zerocoin options: + Opciones Zerocoin: + + + on startup + al inicio + + + wallet.dat corrupt, salvage failed + wallet.dat esta corrupto, fallo al guardar + + + + send + + Form + Formulario + + + Send + Enviar + + + TextLabel + EtiquetaDeTexto + + + PushButton + Presionar el botón + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_es_ES.ts b/src/qt/locale/pivx_es_ES.ts new file mode 100644 index 0000000..3fb95f9 --- /dev/null +++ b/src/qt/locale/pivx_es_ES.ts @@ -0,0 +1,565 @@ + + + AddNewAddressDialog + + Address + Dirección + + + + AddNewContactDialog + + + AddressBookPage + + Right-click to edit address or label + Botón derecho para editar dirección o etiqueta + + + Create a new address + Crear una nueva dirección + + + &New + Nueva + + + Copy the currently selected address to the system clipboard + Copiar la dirección seleccionada al portapapeles + + + &Copy + Copiar + + + Delete the currently selected address from the list + Quitar la dirección seleccionada de la lista + + + &Delete + Eliminar + + + Export the data in the current tab to a file + Exportar los datos de la pestaña actual a un archivo + + + &Export + Exportar + + + C&lose + Cerrar + + + Choose the address to send coins to + Elija la dirección a la cual enviar moneda + + + Choose the address to receive coins with + Elija la dirección desde la que recibir moneda + + + C&hoose + Elegir + + + Sending addresses + Direcciones de envío + + + Receiving addresses + Direcciones de recepción + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Estas son sus direcciones de PIVX para enviar pagos. Compruebe siempre la cantidad así como la dirección de destino antes de enviar moneda. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Estas son sus direcciones de PIVX para recibir pagos. Es recomendable que use una dirección nueva para cada transacción. + + + &Copy Address + Copiar dirección + + + Copy &Label + Copiar etiqueta + + + &Edit + &Editar + + + Export Address List + Exportar listado de direcciones + + + Comma separated file (*.csv) + Archivo de valores separados por comas (*.csv) + + + Exporting Failed + La exportación falló + + + There was an error trying to save the address list to %1. Please try again. + Se produjo un error al intentar guardar el listado de direcciones a %1. Por favor, inténtelo de nuevo. + + + + AddressLabelRow + + + AddressTableModel + + Label + Etiqueta + + + Address + Dirección + + + (no label) + (sin etiqueta) + + + + AddressesWidget + + + AskPassphraseDialog + + Passphrase Dialog + Clave de seguridad + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Introduzca la nueva clave de seguridad para el monedero.<br/>Por favor, use una clave de seguridad de <b>diez o más caracteres aleatorios</b>, u <b> ocho o más palabras. + + + Encrypt wallet + Encriptar monedero + + + This operation needs your wallet passphrase to unlock the wallet. + Esta operación requiere su clave de seguridad para desbloquear el monedero. + + + Unlock wallet + Desbloquear monedero + + + This operation needs your wallet passphrase to decrypt the wallet. + Esta operación requiere su clave de seguridad para desencriptar el monedero. + + + Decrypt wallet + Desencriptar monedero + + + Change passphrase + Cambio de clave de seguridad + + + Enter the old and new passphrase to the wallet. + Introduzca sus claves de seguridad antigua y nueva. + + + Confirm wallet encryption + Confirmar encriptación del monedero + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX se cerrará ahora para completar el proceso de encriptación. Recuerde que la encriptación no le protege completamente del robo de sus PIVs frente a malware que infecte su ordenador. + + + Are you sure you wish to encrypt your wallet? + ¿Está seguro de que quiere encriptar su monedero? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Advertencia: si encripta su monedero y pierde su clave de seguridad, ¡<b>PERDERà TODOS SUS PIV</b>! + + + Wallet encrypted + Monedero encriptado + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + IMPORTNTE: cualquier copia de seguridad que haya efectuado de su fichero de monedero debería ser reemplazada por la que se genere ahora para el archivo de monedero encriptado. Por razones de seguridad, las copias de seguridad previas del archivo de monedero sin encriptar serán inutilizadas tan pronto como comience a ussar el nuevo archivo de monedero encriptado. + + + Wallet encryption failed + La encriptación del monedero ha fallado + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + La encriptación del monedero ha fallado por un error interno. Su monedero no ha sido encriptado. + + + The supplied passphrases do not match. + Las claves de seguridad suministradas no coinciden. + + + Wallet unlock failed + El desbloqueo del monedero ha fallado + + + The passphrase entered for the wallet decryption was incorrect. + La clave de seguridad introducida para la desencriptación del monedero es incorrecta. + + + Wallet decryption failed + La desecriptación del monedero ha fallado. + + + Wallet passphrase was successfully changed. + La clave de seguridad del monedero se ha cambiado correctamente. + + + Warning: The Caps Lock key is on! + Advertencia: la tecla Bloq Mayús está activada! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + Prohibido hasta + + + + BlockExplorer + + + CSRow + + + ClientModel + + + CoinControlDialog + + (no label) + (sin etiqueta) + + + + CoinControlPivWidget + + Label + Etiqueta + + + Address + Dirección + + + + ColdStakingWidget + + + ContactDropdownRow + + + DashboardWidget + + + DefaultDialog + + + DenomGenerationDialog + + + EditAddressDialog + + + ExpandableButton + + + FreespaceChecker + + + GovernancePage + + + HelpMessageDialog + + + Intro + + + LoadingDialog + + + LockUnlock + + + MNRow + + + MasterNodeWizardDialog + + Address + Dirección + + + + MasterNodesWidget + + + MnInfoDialog + + + MyAddressRow + + + NavMenuWidget + + + OpenURIDialog + + + OptionButton + + + OptionsDialog + + + PIVXGUI + + + PWidget + + + PaymentServer + + + PeerTableModel + + + PrivacyWidget + + + ProposalFrame + + + QObject + + + RPCConsole + + + ReceiveDialog + + + ReceiveWidget + + + RecentRequestsTableModel + + Label + Etiqueta + + + Address + Dirección + + + (no label) + (sin etiqueta) + + + + RequestDialog + + Label + Etiqueta + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + + SendMultiRow + + + SendWidget + + + SettingsBackupWallet + + + SettingsBitToolWidget + + Import Address + Importar dirección + + + The entered passphrase is invalid. + La contraseña introducida es inválida + + + Allowed: 0-9,a-z,A-Z, + Permitido: 0-9,a.z,A-Z, + + + The entered address is invalid. + La dirección introducida es inválida. + + + Please check the address and try again. + Por favor compruebe la dirección e inténtelo de nuevo. + + + The entered address does not refer to a key. + La dirección introducida no se refiere a ninguna clave. + + + Wallet unlock was cancelled. + El desbloqueo del monedero fue cancelado. + + + Private key for the entered address is not available. + La clave privada para la dirección introducida no está disponible. + + + + SettingsConsoleWidget + + + SettingsDisplayOptionsWidget + + + SettingsFaqWidget + + + SettingsInformationWidget + + + SettingsMainOptionsWidget + + + SettingsMultisendDialog + + + SettingsMultisendWidget + + + SettingsSignMessageWidgets + + The entered address is invalid. + La dirección introducida es inválida. + + + Please check the address and try again. + Por favor compruebe la dirección e inténtelo de nuevo. + + + The entered address does not refer to a key. + La dirección introducida no se refiere a ninguna clave. + + + Wallet unlock was cancelled. + El desbloqueo del monedero fue cancelado. + + + Private key for the entered address is not available. + La clave privada para la dirección introducida no está disponible. + + + + SettingsWalletOptionsWidget + + + SettingsWalletRepairWidget + + + SettingsWidget + + + ShutdownWindow + + + SnackBar + + + Splash + + + SplashScreen + + + TooltipMenu + + + TopBar + + + TrafficGraphWidget + + + TransactionDesc + + + TransactionTableModel + + Address + Dirección + + + + TxDetailDialog + + + TxRow + + + WalletModel + + + WalletPasswordDialog + + + WelcomeContentWidget + + + ZPivControlDialog + + + pivx-core + + Zapping all transactions from wallet... + Saltando todas las transacciones del monedero... + + + ZeroMQ notification options: + Opciones de notificación ZeroMQ: + + + Zerocoin options: + Opciones Zerocoin: + + + on startup + al inicio + + + wallet.dat corrupt, salvage failed + wallet.dat corrupto, recuperación fallida + + + + send + + \ No newline at end of file diff --git a/src/qt/locale/pivx_fi.ts b/src/qt/locale/pivx_fi.ts new file mode 100644 index 0000000..0635cce --- /dev/null +++ b/src/qt/locale/pivx_fi.ts @@ -0,0 +1,2041 @@ + + + AddNewAddressDialog + + Address + Osoite + + + + AddNewContactDialog + + TextLabel + TekstiNimike + + + + AddressBookPage + + Right-click to edit address or label + Napsauta hiiren kakkospainiketta muokataksesi osoitetta tai nimikettä + + + Create a new address + Luo uusi osoite + + + &New + &Uusi + + + Copy the currently selected address to the system clipboard + Kopioi valittu osoite leikepöydälle + + + &Copy + &Kopioi + + + Delete the currently selected address from the list + Poista valittu osoite listalta + + + &Delete + &Poista + + + Export the data in the current tab to a file + Vie tiedot nykyisestä välilehdestä tiedostoon + + + &Export + &Vie + + + C&lose + Su&lje + + + Choose the address to send coins to + Valitse osoite johon lähettää kolikot + + + Choose the address to receive coins with + Valitse osoite jolla vastaanottaa kolikot + + + C&hoose + V&alitse + + + Sending addresses + Lähettävät osoitteet + + + Receiving addresses + Vastaanottavat osoitteet + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Nämä ovat sinun PIVX osoitteesi maksujen lähetystä varten. Tarkista aina määrä ja vastaanottava osoite ennen kolikoiden lähettämistä. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Nämä ovat sinun PIVX osoitteesi maksujen vastaanottamista varten. On suositeltavaa käyttää uutta vastaanottavaa osoitetta jokaiselle uudelle rahansiirrolle. + + + &Copy Address + &Kopioi osoite + + + Copy &Label + Kopioi &Nimike + + + &Edit + &Muokkaa + + + Export Address List + Vie osoitelista + + + Comma separated file (*.csv) + Pilkuilla eroteltu tiedosto (*.csv) + + + Exporting Failed + Vienti epäonnistui + + + There was an error trying to save the address list to %1. Please try again. + Tapahtui virhe osoitelistan tallennuksessa %1. Yritä uudestaan. + + + + AddressLabelRow + + Form + Lomake + + + + AddressTableModel + + Label + Nimike + + + Address + Osoite + + + Date + Päivämäärä + + + (no label) + (ei nimikettä) + + + + AddressesWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + + AskPassphraseDialog + + Passphrase Dialog + Salausavain dialogi + + + TextLabel + TekstiNimike + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Syötä uusi salausavain lompakkoon <br/> Käytä salausavaimena <b>yli kymmentä satunnaista merkkiä</b>, tai <b> kahdeksaa tai useampaa sanaa</b>. + + + Encrypt wallet + Salaa lompakko + + + This operation needs your wallet passphrase to unlock the wallet. + Tämä toiminto tarvitsee sinun salausavaimesi lompakon avaamista varten. + + + Unlock wallet + Avaa lompakko + + + This operation needs your wallet passphrase to decrypt the wallet. + Tämä toiminto vaatii salausavaimen avataksesi lompakon. + + + Decrypt wallet + Pura lompakon salaus + + + Change passphrase + Vaihda salausavain + + + Enter the old and new passphrase to the wallet. + Syötä uusi ja vanha salausavain lompakkoon. + + + Confirm wallet encryption + Vahvista lompakon salaus + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX sulkeutuu salausprosessin ajaksi. Muista, että lompakon salaus ei voi täysin suojella PIVien varkaudelta, jos tietokoneesi sisältää haittaohjelmia. + + + Are you sure you wish to encrypt your wallet? + Oletko varma että tahdot salata lompakkosi? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Varoitus: Jos salaat lompakkosi ja unohdat salausavaimesi, <b>menetät kaikki PIVisi</b> + + + Wallet encrypted + Lompakko salattu + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + TÄRKEÄÄ: Kaikki edelliset varmuuskopiot, jotka olet tehnyt lompakosta täytyy korvata uudella salatulla lompakko tiedostolla. Turvallisuussyistä edelliset varmuuskopiot salaamattomasta lompakosta muuttuvat hyödyttömiksi heti kun avaat uuden, salatun lompakon. + + + Wallet encryption failed + Lompakon salaus epäonnistui + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Lompakon salaus epäonnistui sisäisen vian vuoksi. Lompakkoa ei salattu. + + + The supplied passphrases do not match. + Syötetyt salausavaimet eivät täsmää. + + + Wallet unlock failed + Lompakon avaaminen epäonnistui + + + The passphrase entered for the wallet decryption was incorrect. + Syöttämäsi salausavain on väärin. + + + Wallet decryption failed + Lompakon salauksen purku epäonnistui + + + Wallet passphrase was successfully changed. + Lompakon salausavaimen vaihto onnistui. + + + Warning: The Caps Lock key is on! + Varoitus: Caps Lock on päällä! + + + + BanTableModel + + + BlockExplorer + + Address / Block / Transaction + Osoite / Lohko / Rahansiirto + + + Search + Etsi + + + TextLabel + TekstiNimike + + + + CSRow + + Form + Lomake + + + + ClientModel + + Network Alert + Verkon Hälytys + + + + CoinControlDialog + + Quantity: + Määrä: + + + Bytes: + Tavut: + + + Fee: + Taksa: + + + Change: + Muutos: + + + Amount + Määrä + + + 0 + 0 + + + Date + Päivämäärä + + + Confirmations + Vahvistukset + + + Confirmed + Vahvistettu + + + Copy address + Kopioi osoite + + + Copy label + Kopioi nimike + + + Copy amount + Kopioi määrä + + + Copy transaction ID + Kopioi rahansiirron ID + + + Copy quantity + Kopioi määrä + + + Copy fee + Kopioi taksa + + + highest + korkein + + + higher + korkeampi + + + high + korkea + + + medium-high + kohtalainen-korkea + + + medium + kohtalainen + + + low-medium + matala-kohtalainen + + + low + matala + + + lower + matalampi + + + lowest + matalin + + + yes + kyllä + + + no + ei + + + (no label) + (ei nimikettä) + + + + CoinControlPivWidget + + TextLabel + TekstiNimike + + + Quantity: + Määrä: + + + Fee: + Taksa: + + + Amount + Määrä + + + Label + Nimike + + + Address + Osoite + + + Type + Tyyppi + + + Date + Päivämäärä + + + Confirmations + Vahvistukset + + + Bytes: + Tavut: + + + Change: + Muutos: + + + + ColdStakingWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + + ContactDropdownRow + + Form + Lomake + + + + DashboardWidget + + Form + Lomake + + + Warning + Varoitus + + + TextLabel + TekstiNimike + + + All + Kaikki + + + Received + Vastaanotettu + + + Sent + Lähetetty + + + Mined + Mainattu + + + Minted + Luotu + + + To yourself + Itsellesi + + + + DefaultDialog + + Form + Lomake + + + + DenomGenerationDialog + + Form + Lomake + + + + EditAddressDialog + + Edit Address + Muokkaa osoitetta + + + &Address + &Osoite + + + New receiving address + Uusi vastaanottava osoite + + + Edit receiving address + Muokkaa vastaanottavia osoitteita + + + Could not unlock wallet. + Ei pystynyt avaamaan lompakkoa. + + + + ExpandableButton + + Form + Lomake + + + + FreespaceChecker + + name + nimi + + + + GovernancePage + + Form + Lomake + + + 0 + 0 + + + + HelpMessageDialog + + PIVX Core + PIVX Ydin + + + Usage: + Käyttö: + + + Start minimized + Aloita minimoituna + + + + Intro + + Welcome + Tervetuloa + + + Welcome to PIVX Core. + Tervetuloa PIVX Ytimeen. + + + PIVX Core + PIVX Ydin + + + Error + Virhe + + + + LoadingDialog + + Form + Lomake + + + TextLabel + TekstiNimike + + + + LockUnlock + + Form + Lomake + + + + MNRow + + Form + Lomake + + + + MasterNodeWizardDialog + + Name + Nimi + + + Address + Osoite + + + The recipient address is not valid, please recheck. + Vastaanottava osoite ei ole kunnollinen, tarkista + + + The amount exceeds your balance. + Määrä ylittää saldosi. + + + Transaction creation failed! + Maksun luonti epäonnistui! + + + Error: The wallet was unlocked only to anonymize coins. + Virhe: Lompakko avattiin vain kolikoiden anonymisointiin + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Virhe: Lompakko avattiin vain kolikoiden anonymisointiin. Avaus peruutettu. + + + + MasterNodesWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + Delete + Poista + + + + MnInfoDialog + + Form + Lomake + + + Status: + Tila: + + + + MyAddressRow + + Form + Lomake + + + + NavMenuWidget + + Form + Lomake + + + + OpenURIDialog + + Open URI + Avaa URI + + + TextLabel + TekstiNimike + + + + OptionButton + + Form + Lomake + + + TextLabel + TekstiNimike + + + + OptionsDialog + + Options + Vaihtoehdot + + + MB + MB + + + W&allet + L&ompakko + + + Accept connections from outside + Hyväksy ulkopuoliset yhteydet + + + Allow incoming connections + Salli sisääntulevat yhteydet + + + &Connect through SOCKS5 proxy (default proxy): + &Yhdistä SOCKS5 proxyn kautta (default proxy): + + + Expert + Ekspertti + + + Automatically start PIVX after logging in to the system. + Automaattisesti käynnistä PIVX kun kirjaudut sisään. + + + &Start PIVX on system login + &Aloita PIVX järjestelmän kirjautumisessa + + + Enable coin &control features + Ota käyttöön coin &kontrolli palvelut + + + Show Masternodes Tab + Näytä Masternode välilehti + + + &Spend unconfirmed change + &Käytä vahvistamaton vaihtoraha + + + &Network + &Verkko + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + Käyttöliittymän kielen voi säätää täällä. Tämä asetus tulee voimaan uudelleenkäynnistettyäsi lompakon. + + + Connect to the PIVX network through a SOCKS5 proxy. + Yhdistä PIVX verkkoon SOCKS5 proxyn kautta + + + Proxy &IP: + Proxy &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + Proxyn IP osoite (esim. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Portti: + + + Port of the proxy (e.g. 9050) + Proxyn portti (esim. 9050) + + + &Window + &Ikkuna + + + Show only a tray icon after minimizing the window. + Näytä vain tarjotin ikoni pienennettyäsi ikkunan. + + + &Minimize to the tray instead of the taskbar + &Pienennä tarjottimelle tehtäväpalkin sijaan + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Pienennä ikkuna poistumisen sijaan kun ikkuna suljetaan. Kun tämä vaihtoehto on valittuna, sovellus sulkeutuu vain kun se Lopetetaan valikosta. + + + M&inimize on close + P&ienennä suljettaessa + + + &Display + &Näyttö + + + User Interface &language: + Käyttöliittymän &kieli: + + + User Interface Theme: + Käyttöliittymän teema: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Käytä oletus vähennysyksikköä käyttöliittymässä ja kolikoita lähettäessä. + + + Decimal digits + Desimaalinumerot + + + Reset all client options to default. + Palauta kaikki asetukset oletuksiin + + + &Reset Options + &Palauta valinnat + + + &OK + &OK + + + &Cancel + &Peruuta + + + default + oletus + + + Confirm options reset + Vahvista asetusten nollaus + + + Client restart required to activate changes. + Uudelleenkäynnistys vaadittu aktivoidaksesi muutokset + + + Client will be shutdown, do you want to proceed? + Ohjelma sammuu, haluatko jatkaa? + + + This change would require a client restart. + Tämä muutos vaatii uudelleenkäynnistyksen. + + + The supplied proxy address is invalid. + Tarjottu proxy osoite on virheellinen. + + + + PIVXGUI + + PIVX Core + PIVX Ydin + + + Wallet + Lompakko + + + Node + Solmu + + + &Show / Hide + &Näytä / Piilota + + + Show or hide the main Window + Näytä tai piilota pääikkuna + + + E&xit + P&oistu + + + Quit application + Lopeta ohjelma + + + PIVX Core client + PIVX Ydin asiakasohjelma + + + Error + Virhe + + + Warning + Varoitus + + + Information + Informaatio + + + Sent MultiSend transaction + Lähetetty MultiSend rahansiirto + + + Sent transaction + Lähetetty rahansiirto + + + Incoming transaction + Saapuva rahansiirto + + + + PWidget + + + PaymentServer + + + PeerTableModel + + Version + Versio + + + Ping Time + Ping aika + + + + PrivacyWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + + ProposalFrame + + + QObject + + Amount + Määrä + + + PIVX Core + PIVX Ydin + + + + RPCConsole + + Tools window + Työkaluikkuna + + + &Information + &Informaatio + + + General + Yleinen + + + Name + Nimi + + + Number of connections + Yhteyksien määrä + + + &Open + &Avaa + + + Startup time + Käynnistysaika + + + Current number of blocks + Nykyinen lohkojen määrä + + + Block chain + Lohko ketju + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Avaa PIVX debug loki nykyisestä sijainnista. Tämä voi kestää muutaman sekunnin suurille lokeille + + + Number of Masternodes + Masternodien määrä + + + &Console + &Konsoli + + + Clear console + Tyhjennä konsoli + + + &Network Traffic + &Verkkoliikenne + + + &Clear + &Tyhjennä + + + Totals + Kokonaismäärät + + + Received + Vastaanotettu + + + Sent + Lähetetty + + + Direction + Suunta + + + Protocol + Protokolla + + + Version + Versio + + + Services + Palvelut + + + Connection Time + Yhteysaika + + + Last Send + Viime lähetys + + + Last Receive + Viime vastaanotto + + + Bytes Sent + Tavuja lähetetty + + + Bytes Received + Tavuja vastaanotettu + + + Ping Time + Ping aika + + + &Wallet Repair + &Lompakon korjaus + + + Wallet In Use: + Käytössä oleva lompakko: + + + Salvage wallet + Pelasta lompakko + + + Attempt to recover private keys from a corrupt wallet.dat. + Yritä pelastaa yksityisavaimet korruptoituneesa wallet.dat tiedostosta + + + Rescan blockchain files + Uudelleenskannaa blockchain tiedostot + + + Rescan the block chain for missing wallet transactions. + Uudelleenskannaa blockchain puuttuvista rahansiirroista + + + Wallet repair options. + Lompakon korjausvaihtoehdot + + + In: + Sisään: + + + Out: + Ulos: + + + Welcome to the PIVX RPC console. + Tervetuloa PIVX RPC konsoliin. + + + never + ikinä + + + Inbound + Saapuva + + + Outbound + Lähtevä + + + Unknown + Tuntematon + + + + ReceiveDialog + + + ReceiveWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + + RecentRequestsTableModel + + Date + Päivämäärä + + + Label + Nimike + + + Message + Viesti + + + Address + Osoite + + + Amount + Määrä + + + (no label) + (ei nimikettä) + + + (no message) + (ei viestiä) + + + (no amount) + (ei määrää) + + + + RequestDialog + + Amount + Määrä + + + TextLabel + TekstiNimike + + + Label + Nimike + + + Error + Virhe + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + Form + Lomake + + + + SendMultiRow + + Form + Lomake + + + TextLabel + TekstiNimike + + + + SendWidget + + Amount + Määrä + + + + SettingsBackupWallet + + Form + Lomake + + + TextLabel + TekstiNimike + + + Backup Wallet + Varmuuskopioi lompakko + + + Wallet Data (*.dat) + Lompakko Data (*.dat) + + + + SettingsBitToolWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + Import Address + Tuo osoite + + + Clear + Tyhjennä + + + The entered passphrase is invalid. + Syötetty salausavain ei ole toimiva. + + + Allowed: 0-9,a-z,A-Z, + Sallittu: 0-9,a-z,A-Z, + + + The entered address is invalid. + Syötetty osoite ei ole toimiva. + + + Please check the address and try again. + Ole hyvä ja tarkista osoite ja yritä uudelleen. + + + The entered address does not refer to a key. + Syötetty osoite ei viittaa avaimeen. + + + Wallet unlock was cancelled. + Lompakon avaus peruutettiin. + + + Private key for the entered address is not available. + Yksityisavain syötetylle osoitteelle ei ole saatavilla. + + + Failed to decrypt. + Salauksen avaus ei onnistunut. + + + Please check the key and passphrase and try again. + Ole hyvä ja tarkista avain ja salausavain. Kokeile uudestaan. + + + Data Not Valid. + Data ei ole validi. + + + Please try again. + Ole hyvä ja yritä uudestaan. + + + Please wait while key is imported + Ole hyvä ja odota kun avain tuodaan + + + + SettingsConsoleWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + Welcome to the PIVX RPC console. + Tervetuloa PIVX RPC konsoliin. + + + + SettingsDisplayOptionsWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + Decimal digits + Desimaalinumerot + + + default + oletus + + + + SettingsFaqWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + + SettingsInformationWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + Information + Informaatio + + + General + Yleinen + + + In: + Sisään: + + + Out: + Ulos: + + + + SettingsMainOptionsWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + + SettingsMultisendDialog + + Form + Lomake + + + TextLabel + TekstiNimike + + + + SettingsMultisendWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + Active + Aktiivinen + + + + SettingsSignMessageWidgets + + Form + Lomake + + + TextLabel + TekstiNimike + + + Clear + Tyhjennä + + + Message + Viesti + + + Signature + Allekirjoitus + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Voit allekirjoittaa viestejä osoitteillasi todistaaksesi, että omistat ne. Ole varovainen ettet allekirjoita mitään kummallista, sillä kalasteluyritykset saattavat yrittää huijata sinut luovuttamaan tietoja. Allekirjoita vain täysin yksityiskohtaisia sanomia, jotka hyväksyt. + + + The entered address is invalid. + Syötetty osoite ei ole toimiva. + + + Please check the address and try again. + Ole hyvä ja tarkista osoite ja yritä uudelleen. + + + The entered address does not refer to a key. + Syötetty osoite ei viittaa avaimeen. + + + Wallet unlock was cancelled. + Lompakon avaus peruutettiin. + + + Private key for the entered address is not available. + Yksityisavain syötetylle osoitteelle ei ole saatavilla. + + + Message signing failed. + Viestin allekirjoitus epäonnistui + + + Message signed. + Viesti allekirjoitettu + + + The signature could not be decoded. + Allekirjoitusta ei pystytty avaamaan. + + + Please check the signature and try again. + Tarkista allekirjoitus ja yritä uudestaan. + + + The signature did not match the message digest. + Allekirjoitus ei vastannut viestin sisältöä. + + + Message verification failed. + Viestin vahvistus epäonnistui + + + Message verified. + Viesti vahvistettu + + + + SettingsWalletOptionsWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + Wallet + Lompakko + + + Allow incoming connections + Salli sisääntulevat yhteydet + + + + SettingsWalletRepairWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + Attempt to recover private keys from a corrupt wallet.dat. + Yritä pelastaa yksityisavaimet korruptoituneesa wallet.dat tiedostosta + + + Salvage wallet + Pelasta lompakko + + + + SettingsWidget + + Form + Lomake + + + TextLabel + TekstiNimike + + + Wallet + Lompakko + + + Options + Vaihtoehdot + + + Information + Informaatio + + + Confirm options reset + Vahvista asetusten nollaus + + + Client restart required to activate changes. + Uudelleenkäynnistys vaadittu aktivoidaksesi muutokset + + + Client will be shutdown, do you want to proceed? + Ohjelma sammuu, haluatko jatkaa? + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX core sammuu... + + + Do not shut down the computer until this window disappears. + Älä sammuta konetta ennen kuin tämä ikkuna katoaa. + + + + SnackBar + + Form + Lomake + + + + Splash + + Form + Lomake + + + PIVX Core + PIVX Ydin + + + + SplashScreen + + PIVX Core + PIVX Ydin + + + Version %1 + Versio %1 + + + The Bitcoin Core developers + Bitcoin Core kehittäjät + + + The Dash Core developers + Dash Core kehittäjät + + + The PIVX Core developers + PIVX core kehittäjät + + + [testnet] + [testnet] + + + + TooltipMenu + + Form + Lomake + + + Delete + Poista + + + + TopBar + + Form + Lomake + + + %1 and %2 + %1 ja %2 + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + %1/unconfirmed + %1/Vahvistamatonta + + + Status + Tila + + + Date + Päivämäärä + + + unknown + tuntematon + + + not accepted + ei hyväksytty + + + Transaction fee + Rahansiirron taksa + + + Net amount + Nettomäärä + + + Message + Viesti + + + Comment + Kommentti + + + Transaction ID + Rahansiirto ID + + + Merchant + Myyjä + + + Amount + Määrä + + + true + tosi + + + false + epätosi + + + + TransactionTableModel + + Date + Päivämäärä + + + Type + Tyyppi + + + Address + Osoite + + + Unconfirmed + Vahvistamaton + + + Confirming (%1 of %2 recommended confirmations) + Vahvistetaan (%1 %2:sta suositellusta vahvistuksesta) + + + Payment to yourself + Maksut itsellesi + + + Mined + Mainattu + + + Transaction status. Hover over this field to show number of confirmations. + Rahansiirron status. Liikuta hiiresi tämän kentän päälle nähdäksesi vahvistuksien määrä + + + Date and time that the transaction was received. + Päivämäärä ja aika jolloin rahansiirto vastaanotettiin + + + Type of transaction. + Rahansiirron tyyppi. + + + Destination address of transaction. + Rahansiirron määränpään osoite. + + + Amount removed from or added to balance. + Määrä, joka poistettu tai lisätty taseeseen + + + + TxDetailDialog + + Form + Lomake + + + Fee: + Taksa: + + + Status: + Tila: + + + TextLabel + TekstiNimike + + + Unknown + Tuntematon + + + + TxRow + + Form + Lomake + + + + WalletModel + + Send Coins + Lähetä Kolikot + + + + WalletPasswordDialog + + TextLabel + TekstiNimike + + + + WelcomeContentWidget + + Welcome + Tervetuloa + + + default + oletus + + + + ZPivControlDialog + + Quantity: + Määrä: + + + 0 + 0 + + + + pivx-core + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Varoitus: Verkko ei näytä olevan samaa mieltä! Jotkin mainaajat saattavat kokea ongelmia. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Varoitus: virhe yrittäessä lukea wallet.dat tiedostoa! Kaikki avaimet luettu onnistuneesti, mutta rahansiirto- tai yhteystietokirjat saattavat puuttua tai olla virheellisiä. + + + Connect through SOCKS5 proxy + Yhdistä SOCKS5 proxyn kautta + + + Connection options: + Yhteys vaihtoehdot: + + + Corrupted block database detected + Korruptoitunut lohko tietokannassa havaittu + + + Do you want to rebuild the block database now? + Haluatko rakentaa uudelleen lohkotietokannan? + + + Done loading + Lataus valmis + + + Error initializing block database + Virhe aloittaessa lohko tietokantaa + + + Error loading block database + Virhe ladattaessa lohko tietokantaa + + + Error loading wallet.dat + Virhe ladattaessa wallet.dat tiedostoa + + + Error loading wallet.dat: Wallet corrupted + Virhe ladattaessa wallet.dat tiedostoa: Lompakko korruptoitunut + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Virhe ladattaessa wallet.dat tiedostoa: Lompakko vaatii uudemman version PIVX Coresta + + + Error reading from database, shutting down. + Virhe lukiessa tietokantaa, sammutetaan. + + + Error + Virhe + + + Error: Disk space is low! + Virhe: Tallennustila vähissä! + + + Error: Wallet locked, unable to create transaction! + Virhe: Lompakko lukittu, ei voida luoda rahansiirtoa! + + + Importing... + Tuodaan... + + + Information + Informaatio + + + Insufficient funds. + Riittämättömät varat. + + + <category> can be: + <category> voi olla: + + + Loading addresses... + Lataa osoitteita... + + + Loading block index... + Lataa lohkoindeksiä... + + + Loading wallet... + Lataa lompakkoa... + + + Options: + Vaihtoehdot: + + + Rescanning... + Skannaa uudelleen... + + + Session timed out. + Istunto päättyi. + + + Signing transaction failed + Rahansiirron allekirjoitus epäonnistui + + + Specify data directory + Määritä tiedostosijainti + + + Specify your own public address + Määritä oma julkinen osoitteesi + + + Staking options: + Panostus vaihtoehdot: + + + Synchronization failed + Synkronisointi epäonnistui + + + Synchronization finished + Synkronisointi valmis + + + This is experimental software. + Tämä on kokeellista ohjelmistoa. + + + Transaction amount too small + Rahansiirron määrä on liian pieni + + + Transaction amounts must be positive + Rahansiirtojen tulee olla positiivisia + + + Transaction too large for fee policy + Rahansiirto liian iso taksaan nähden + + + Transaction too large + Rahansiirto liian suuri + + + Upgrade wallet to latest format + Päivitä lompakko viimeisimpään formaattiin. + + + Use the test network + Käytä testiverkkoa + + + Verifying blocks... + Tarkistaa lohkoja... + + + Verifying wallet... + Tarkistaa lompakkoa... + + + Wallet options: + Lompakon vaihtoehdot: + + + Warning + Varoitus + + + Warning: This version is obsolete, upgrade required! + Varoitus: Tämä versio on vanha, päivitys vaadittu! + + + on startup + käynnistyksessä + + + wallet.dat corrupt, salvage failed + wallet.dat vioittunut, pelastus epäonnistui + + + + send + + Form + Lomake + + + TextLabel + TekstiNimike + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_fr_FR.ts b/src/qt/locale/pivx_fr_FR.ts new file mode 100644 index 0000000..3a77c38 --- /dev/null +++ b/src/qt/locale/pivx_fr_FR.ts @@ -0,0 +1,7333 @@ + + + AddNewAddressDialog + + Dialog + Dialogue + + + My Address + Mon Adresse + + + Address + Adresse + + + PushButton + Bouton poussoir + + + CANCEL + ANNULER + + + OK + OK + + + + AddNewContactDialog + + Dialog + Dialogue + + + TextLabel + TextLabel + + + CANCEL + ANNULER + + + OK + OK + + + Edit Contact + Modifier le contact + + + Set a label for the selected address + Définir un libellé pour l'adresse sélectionnée + + + Enter a name for the address (e.g Exchange) + Entrez un nom pour cette adresse (par ex. Bourse) + + + SAVE + SAUVEGARDER + + + Edit label for the selected address: +%1 + Modifier le libellé pour l'adresse sélectionnée: +%1 + + + + AddressBookPage + + Right-click to edit address or label + Cliquez droit pour modifier l'adresse ou le libellé + + + Create a new address + Créer une nouvelle adresse + + + &New + Nouveau + + + Copy the currently selected address to the system clipboard + Copier l'adresse actuelle dans le presse-papier + + + &Copy + Copier + + + Delete the currently selected address from the list + Supprimer l'adresse actuellement séléctionnée de la liste + + + &Delete + Supprimer + + + Export the data in the current tab to a file + Exporter les informations de l'onglet actuel vers un fichier + + + &Export + Exporter + + + C&lose + Fermer + + + Choose the address to send coins to + Choisir l'adresse à laquelle envoyer des jetons + + + Choose the address to receive coins with + Choisir l'adresse avec laquelle recevoir des jetons + + + C&hoose + Choisir + + + Sending addresses + Adresses d'envoi + + + Receiving addresses + Adresses de réception + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Voici vos adresses PIVX pour envoyer des paiements. Assurez-vous de toujours vérifier le montant et l'adresse de réception avant d'envoyer les jetons + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Voici vos adresses PIVX pour les réceptions de vos paiments. Il est recommandé d'utiliser une nouvelle adresse de réception pour chaque transaction. + + + &Copy Address + Copier l'adresse + + + Copy &Label + Copier &Label + + + &Edit + Modifier + + + Export Address List + Exporter la liste des adresses + + + Comma separated file (*.csv) + Fichier avec séparation par des virgules (*.csv) + + + Exporting Failed + Exportation échouée + + + There was an error trying to save the address list to %1. Please try again. + Un erreur s'est produite en essayant d'enregistrer la liste d'adresses dans %1. Veuillez réessayer. + + + + AddressLabelRow + + Form + Formulaire + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + AddressTableModel + + Label + Label + + + Address + Adresse + + + Date + Date + + + (no label) + (pas de label) + + + + AddressesWidget + + Form + Formulaire + + + Send + Envoyer + + + TextLabel + TextLabel + + + No active Master Node yet + Pas encore de masternode actif + + + Contact name + Nom du contact + + + Enter address + Entrez l'adresse + + + OK + OK + + + Contacts + Contacts + + + You can add a new one in the options menu to the side. + Vous pouvez en ajouter une nouvelle depuis le menu latéral des options + + + No contacts yet + Pas encore de contacts + + + e.g. John Doe + Par exemple: Pierre Dupont + + + Enter a PIVX address + Entrez une adresse PIVX + + + SAVE + SAUVEGARDER + + + Invalid Contact Address + Adresse du contact invalide + + + Cannot store your own address as contact + Vous ne pouvez pas stocker votre propre adresse comme contact + + + Address already stored, label: %1 + Adresse déjà enregistrée, étiquette: %1 + + + New Contact Stored + Nouveau contact enregistré + + + Error Storing Contact + Erreur lors de l'enregistrement du contact + + + Contact edited + Contact modifié + + + Contact edit failed + Erreur de modification du contact + + + Delete Contact + Supprimer le contact + + + You are just about to remove the contact: + +%1 + +Are you sure? + Vous êtes sur le point de supprimer le contact : + +%1 + +êtes-vous sûr ? + + + Contact Deleted + Contact supprimé + + + Error deleting a contact + Erreur lors de la suppression du contact + + + Address copied + Adresse copiée + + + + AskPassphraseDialog + + Passphrase Dialog + Dialogue phrase secrète + + + TextLabel + TextLabel + + + PushButton + Bouton poussoir + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Entrez la nouvelle phrase secrète dans le portefeuille.<br/>Utilisez s'il vous plaît une phrase secrète de :<b> 10 caractères au hasard ou plus</b>, ou<b> huit mots ou plus</b>. + + + Encrypt wallet + Crypter le portefeuille + + + This operation needs your wallet passphrase to unlock the wallet. + Cette opération requiert votre phrase secrète pour déverrouiller votre portefeuille. + + + Unlock wallet +for staking + Déverrouillez le portefeuille +pour le staking + + + Unlock wallet + Déverrouiller le portefeuille + + + This operation needs your wallet passphrase to decrypt the wallet. + Cette opération nécessite votre phrase secrète de portefeuille pour décrypter le portefeuille + + + Decrypt wallet + Décrypter le portefeuille + + + Change passphrase + Changer la phrase secrète + + + Enter the old and new passphrase to the wallet. + Entrer l'ancienne et la nouvelle phrase secrète dans le portefeuille + + + Confirm wallet encryption + Confirmer le cryptage du portefeuille + + + ENCRYPT + CHIFFRER + + + CANCEL + ANNULER + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX va maintenant se fermer pour finir le processus de cryptage. Notez que le cryptage de votre portefeuille ne peut pas complètement protéger vos PIVs d'un vol par un malware ayant infecté votre ordinateur. + + + Are you sure you wish to encrypt your wallet? + Êtes-vous sûr de vouloir crypter votre portefeuille? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Attention : si vous cryptez votre portefeuille et perdez votre phrase secrète, vous <b>PERDREZ TOUS VOS PIV</b>! + + + Wallet encrypted + Portefeuille crypté + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + IMPORTANT: Tous les backups précédents de votre fichier wallet devront être remplacés par ce nouveau fichier chiffré. Pour des raisons de sécurité, les backups précédents de votre fichier wallet non chiffrés seront rendus inutilisables au moment ou vous utilisez le nouveau portefeuille chiffré. + + + Wallet encryption failed + Le cryptage du portefeuille a échoué + + + OK + OK + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Le cryptage du portefeuille a échoué en raison d'une erreur interne. Votre portefeuille n'a pas été crypté. + + + The supplied passphrases do not match. + Les phrases secrètes fournies ne correspondent pas. + + + Wallet unlock failed + Le déverrouillage de votre portefeuille a échoué + + + The passphrase entered for the wallet decryption was incorrect. + La phrase secrète entrée pour le décryptage de votre portefeuille était incorrecte. + + + Wallet decryption failed + Le décryptage de votre portefeuille a échoué. + + + Wallet passphrase was successfully changed. + La phrase secrète de votre portefeuille a été changée avec succès. + + + Warning: The Caps Lock key is on! + Attention : la touche de verrouillage des majuscules est activée. + + + + BanTableModel + + IP/Netmask + IP/Masque de sous réseau + + + Banned Until + Banni jusque + + + + BlockExplorer + + Blockchain Explorer + Explorateur de la Blockchain + + + Back + Retour + + + Forward + Avancer + + + Address / Block / Transaction + Adresse / Bloc / Transaction + + + Search + Chercher + + + TextLabel + TextLabel + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Toutes les transaction ne seront pas affichés. Pour voir toutes les transactions, vous devez régler txindex=1 dans le fichier de configuration (pivx.conf). + + + + CSRow + + Form + Formulaire + + + Savings + Épargne + + + 0,00 PIV + 0,00 PIV + + + address + adresse + + + Not Staking + Pas en staking + + + Own delegation + Propre délégation + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Inconnu: %5) + + + Network Alert + Alerte réseau + + + + CoinControlDialog + + Quantity: + Quantité : + + + Bytes: + Octets: + + + Fee: + Commission : + + + Coin Selection + Sélection des pièces + + + Dust: + Résidu: + + + Change: + Monnaie rendue: + + + Tree mode + Mode arbre + + + List mode + Mode liste + + + (1 locked) + (1 verrouillé) + + + Amount + Montant + + + Transaction Details + Détails de la transaction + + + PushButton + Bouton poussoir + + + 0.00 PIV + 0.00 PIV + + + 0 + 0 + + + Select all + Tout sélectionner + + + Toggle lock state + Basculer le mode vérouillage + + + Received with label + Reçu avec label + + + Received with address + Reçu avec l'adresse + + + After Fee: + Après les frais: + + + OK + OK + + + Date + Date + + + Confirmations + Confirmations + + + Confirmed + Confirmé + + + Copy address + Copier l'adresse + + + Copy label + Copier label + + + Copy amount + Copier le montant + + + Copy transaction ID + Copier l'ID de la transaction + + + Lock unspent + Verrouiller non dépensé + + + Unlock unspent + Déverrouiller non dépensé + + + Copy quantity + Copier la quantité + + + Copy fee + Copier la commission + + + Copy after fee + Copier après la commission + + + Copy bytes + Copier les octets + + + Copy priority + Copier la priorité + + + Copy dust + Copier les résidus + + + Copy change + Copier la monnaie + + + Unselect all + Désélectionner tout + + + Please switch to "List mode" to use this function. + Veuillez changer pour le "Mode liste" afin d'utiliser cette fonction + + + highest + le plus haut + + + higher + plus haut + + + high + haut + + + medium-high + moyennement haut + + + medium + moyen + + + low-medium + moyennement bas + + + low + bas + + + lower + plus bas + + + lowest + le plus bas + + + (%1 locked) + (%1 verrouillé) + + + none + aucun + + + yes + oui + + + no + non + + + This label turns red, if the transaction size is greater than 1000 bytes. + Ce label devient rouge si la taille de la transaction est supérieure à 1000 octets. + + + This means a fee of at least %1 per kB is required. + Cela signifie qu'une commission d'au moins %1 par kb est obligatoire. + + + Can vary +/- 1 byte per input. + Peut varier de +/- 1 octet par entrée. + + + Transactions with higher priority are more likely to get included into a block. + Les transactions avec une priorité plus haute ont plus de chance d'être incluses dans un bloque. + + + This label turns red, if the priority is smaller than "medium". + Ce label devient rouge si la priorité est inférieure au niveau "moyen". + + + This label turns red, if any recipient receives an amount smaller than %1. + Ce label devient rouge si l'un des destinataires reçoit un montant inférieur à %1. + + + Can vary +/- %1 upiv per input. + Peut varier de +/- %1 upiv par entrée. + + + (no label) + (pas de label) + + + change from %1 (%2) + Modifier depuis %1 (%2) + + + (change) + (changer) + + + + CoinControlPivWidget + + Dialog + Dialogue + + + Transaction Details + Détails de la transaction + + + PushButton + Bouton poussoir + + + PIV: + PIV: + + + TextLabel + TextLabel + + + Quantity: + Quantité : + + + Fee: + Commission : + + + Amount + Montant + + + Label + Label + + + Address + Adresse + + + Type + Type + + + Date + Date + + + Confirmations + Confirmations + + + CheckBox + CheckBox + + + Bytes: + Octets: + + + Dust: + Résidu: + + + Change: + Monnaie rendue: + + + After Fee: + Après les frais: + + + CANCEL + ANNULER + + + OK + OK + + + + ColdStakingWidget + + Form + Formulaire + + + Title + Titre + + + TextLabel + TextLabel + + + PushButton + Bouton poussoir + + + Owner Address (optional, if empty a new address will be created) + Adresse propriétaire (optionnel, si vide une nouvelle adresse sera créée) + + + List of delegated balance by address + Liste des soldes en procuration par adresse. + + + Total + Total + + + Unconfirmed balance will not be shown + Le solde non confirmé ne sera pas montré + + + No balance delegated + Pas de solde en procuration + + + Cold Staking + Staking à froid + + + Staker + Staker + + + Delegation + Procuration + + + You can delegate your PIVs and let a hot node (24/7 online node) +stake in your behalf, keeping the keys in a secure place offline. + Vous pouvez faire une procuration de vos PIVs et laissez un noeud à chaud (en ligne 24h/7) faire du staking en votre nom, en gardant les clés dans un endroit sécurisé et hors ligne. + + + Add owner address + Ajouter l'adresse propriétaire + + + Delegate or Accept PIV delegation + Faire une procuration our accepter une procuration PIV. + + + Delegate + Déléguer + + + Clear All + Remettre à zéro + + + Add the staking address + Ajouter l'adresse de staking + + + Delegated balance history + Historique du solde de procuration + + + No contacts available, you can go to the contacts screen and add some there! + Aucun contact enregistré, vous pouvez aller dans l'écran des contacts et en ajouter! + + + Invalid entry + Entrée invalide + + + Cannot create transaction. + Impossible de créer la transaction. + + + You don't have any PIV to select. + Vous n'avez aucun PIV à sélectionner + + + URI copied to clipboard + URI copiée vers le presse-papier + + + Address copied to clipboard + Adresse copiée vers le presse-papier + + + Copy + Copier + + + Edit + Modifier + + + Address copied + Adresse copiée + + + Address label saved + Libellé de l'adresse sauvegardé + + + Error storing address label + Erreur lors de l'enregistrement du libellé + + + + ContactDropdownRow + + Form + Formulaire + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + DashboardWidget + + Form + Formulaire + + + Transactions + Transactions + + + You can see here the history of your account + Vous pouvez voir ici l'historique de votre compte + + + Warning + Attention + + + No transactions + Pas de transaction + + + PushButton + Bouton poussoir + + + Staking Rewards + Récompenses de staking + + + TextLabel + TextLabel + + + Staking statistics + Statistiques de staking + + + PIV + PIV + + + zPIV + zPIV + + + Sort by + Trier par + + + Days + Jours + + + Months + Mois + + + Years + Années + + + Filter by + Filtrer par + + + LabelText + Texte + + + You can view your account's history + Vous pouvez voir l'historique de votre compte + + + Amount of PIV and zPIV staked. + Le montant de PIV et de zPIV en staking + + + All + Tous + + + Received + Reçu + + + Sent + Envoyé + + + Mined + Miné + + + Minted + Récompense Stake + + + MN reward + Récompense de masternode + + + To yourself + A vous-même + + + Please wait until the wallet is fully synced to see your correct balance + Attendez que votre portefeuille soit complètement synchronisé pour voir le solde correct + + + No transactions yet + Pas encore de transaction + + + How to get PIV or zPIV + Comment obtenir des PIV ou zPIV + + + You can verify the staking activity in the status bar at the top right of the wallet. +It will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced. + Vous pouvez vérifier l'activité de staking via la barre de statut au dessus du portefeuille. +Il commencera automatiquement dès que le portefeuille aura assez de confirmations sur les transactions et qu'il sera complètement synchronisé. + + + You have no staking rewards + Vous n'avez pas de récompenses de staking + + + No charts library + Pas de librairie de graphiques + + + Loading chart.. + Chargement du graphe.. + + + Error loading chart, invalid show option + Erreur de chargement du graphe, options non valides + + + Error loading chart: %1 + Erreur chargement du graphique: %1 + + + + DefaultDialog + + Form + Formulaire + + + Transaction Details + Détails de la transaction + + + Text Label + Libellé + + + CANCEL + ANNULER + + + SAVE + SAUVEGARDER + + + + DenomGenerationDialog + + Form + Formulaire + + + Transaction Details + Détails de la transaction + + + PushButton + Bouton poussoir + + + This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again. + Cela va déverrouiller votre portefeuille totalement et tout ceux qui y ont accès peuvent dépenser jusqu'à ce que le portefeuille soit fermé ou verrouillé. + + + 5000 + 5000 + + + 100 + 100 + + + 10 + 10 + + + 1000 + 1000 + + + 50 + 50 + + + 500 + 500 + + + 5 + 5 + + + 1 + 1 + + + Select All + Tout sélectionner + + + CANCEL + ANNULER + + + SAVE + SAUVEGARDER + + + + EditAddressDialog + + Edit Address + Modifier l'adresse + + + &Label + &Label + + + The label associated with this address list entry + Le label associée à cette entrée de liste d'adresses + + + &Address + Adresse + + + The address associated with this address list entry. This can only be modified for sending addresses. + L'adresse associée à cette entrée de liste d'adresses. Ceci ne peut être modifié que pour les adresses d'envoi. + + + New receiving address + Nouvelle adresse de reception + + + New sending address + Nouvelle adresse d'envoi + + + Edit receiving address + Modifier l'adresse de reception + + + Edit sending address + Modifier l'adresse d'envoi + + + The entered address "%1" is not a valid PIVX address. + L'adresse entrée "%1" n'est pas une adresse PIVX valide + + + The entered address "%1" is already in the address book. + L'adresse entrée "%1" est déjà dans la liste d'adresse + + + Could not unlock wallet. + N'a pas pu déverrouiller le portefeuille + + + New key generation failed. + La création de la nouvelle clé à échoué + + + + ExpandableButton + + Form + Formulaire + + + + FreespaceChecker + + A new data directory will be created. + Un nouvelle répertoire sera crée, + + + name + nom + + + Directory already exists. Add %1 if you intend to create a new directory here. + Le répertoire existe déjà. Ajoutez %1 si vous souhaitez créer un nouveau répertoire ici. + + + Path already exists, and is not a directory. + Chemin existe déjà, et n'est pas un répertoire. + + + Cannot create data directory here. + Impossible de créer le répertoire pour les données ici + + + + GovernancePage + + Form + Formulaire + + + GOVERNANCE + GOUVERNANCE + + + Update Proposals + Mettre à jour les propositions + + + Next super block: + Super bloc suivant: + + + 0 + 0 + + + Blocks to next super block: + Blocs restants jusqu'au Super block suivant: + + + Days to budget payout (estimate): + Jours avant le paiement du budget (estimation) : + + + Allotted budget: + Budget alloué: + + + Budget left: + Budget restant: + + + Masternodes count: + Nombre de masternodes: + + + + HelpMessageDialog + + version + version + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + A propos de PIVX Core + + + Command-line options + Options de commandes en ligne + + + Usage: + Utilisation + + + command-line options + options en ligne de commande + + + UI Options: + Options de l'interface utilisateur: + + + Choose data directory on startup (default: %u) + Choisir le répertoire de données au démarrage (par défaut: %u) + + + Show splash screen on startup (default: %u) + Afficher l'écran de démarrage au démarrage (par défaut: %u) + + + Set language, for example "de_DE" (default: system locale) + Définir la langue, par exemple "de_DE" (par défaut: paramètres régionaux du système) + + + Start minimized + Démarrer minimiser + + + Set SSL root certificates for payment request (default: -system-) + Définir les certificats racine SSL pour les demandes de paiement (par défaut: -system-) + + + OK + OK + + + + Intro + + Welcome + Bienvenu + + + Welcome to PIVX Core. + Bienvenue à PIVX Core + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Comme c'est la première fois que le programme est lancé, vous pouvez choisir où PIVX Core va stocker ses données. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core téléchargera et stockera une copie de la chaîne de blocs PIVX. Au moins %1 Go de données sera stocké dans ce répertoire, et il va augmenter au fil du temps. Le portefeuille sera également stocké dans ce répertoire. + + + Use the default data directory + Utiliser le répertoire de données par défaut + + + Use a custom data directory + Utiliser un répertoire personnalisé pour les données + + + CANCEL + ANNULER + + + OK + OK + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Erreur: Le répertoire de données "%1" spécifié ne peut pas être créé. + + + Error + Erreur + + + %1 GB of free space available + %1 GB de place disponible + + + (of %1 GB needed) + (de %1 GB libre nécessaire) + + + + LoadingDialog + + Form + Formulaire + + + TextLabel + TextLabel + + + Loading + Chargement + + + . + . + + + + LockUnlock + + Form + Formulaire + + + Unlock Wallet + Déverrouiller le portefeuille + + + Lock Wallet + Verrouiller le portefeuille + + + Staking Only + Staking seulement + + + + MNRow + + Form + Formulaire + + + user_masternode + utilisateur de masternode + + + Address: 88.26.164.88:51474 + Adresse: 88.26.164.88:51474 + + + Jan. 19, 2019 + 19 janvier 2019 + + + + MasterNodeWizardDialog + + Dialog + Dialogue + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + Intro + intro + + + Name + Nom + + + Address + Adresse + + + Create New Master Node Controller + Créer un nouveau contrôleur de Masternode + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + <html><head/><body><p>Pour créer un Masternode PIVX vous devez dédier 10.000 PIV (l'unité de PIVX) au réseau (notez que ces monnaies restent les votres et ne quitteront jamais votre portefeuille)</p><p></p><p> Vous pouvez désactiver votre noeud et libérer vos monnaies en tous temps. </p></body></html> + + + Make sure you have this amount of coins. + Assurez-vous d'avoir ce montant de pièces. + + + Set Master Node’s Name + Définir le nom du Masternode + + + <html><head/><body><p>A transaction of 10,000 PIV will be made</p><p>to a new empty address in your wallet.</p><p>The Address is labeled under the master node's name.</p></body></html> + <html><head/><body><p>Une transaction de 10 000 PIV sera effectuée </p><p> vers une nouvelle adresse de votre partefeuille.</p><p> L'adresse est étiquettée avec le nom de masternode. </p></body></html> + + + Set Master Node’s IP and port + Définir l'adresse IP et le port du masternode + + + Address of the node that must always be online running the actual master node. + L'adresse du noeud doit toujours demeurer en ligne et exécuter le masternode. + + + Enter IP address + Entrer l'adresse IP + + + Enter Port + Entrer le port + + + CANCEL + ANNULER + + + OK + OK + + + e.g user_masternode + ex. user_masternode + + + NEXT + SUIVANT + + + BACK + PRÉCÉDENT + + + address label cannot be empty + L'étiquette de l'adresse ne peut rester vide + + + IP or port cannot be empty + L'adresse IP ou le port ne peuvent rester vide + + + Invalid port number + Numéro de port invalide + + + Prepare master node failed.. + La préparation du masternode a échoué. + + + Invalid masternode.conf file + Fichier masternode.conf invalide + + + Error parsing masternode.conf file + Erreur lors de l'analyse du fichier masternode.conf + + + Invalid collaterall output index + L'index du dépôt de garantie est invalide + + + Master node created! + Masternode créé! + + + masternode.conf file doesn't exists + Le fichier masternode.conf est absent + + + The recipient address is not valid, please recheck. + L'adresse du destinataire n'est pas valide, revérifiez SVP. + + + The amount to pay must be larger than 0. + Le montant à payer doit être supérieur à 0. + + + The amount exceeds your balance. + Le montant dépasse votre solde. + + + The total exceeds your balance when the %1 transaction fee is included. + Le montant dépasse votre solde lorsque les frais de transaction %1 sont ajoutés. + + + Duplicate address found, can only send to each address once per send operation. + Adresse doublon trouvée, on ne peut envoyer à une même adresse qu'une fois par opération. + + + Transaction creation failed! + La création de la transaction a échoué + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + La transaction a été refusée! Cela peut arriver lorsque certaines pièces de votre portefeuille ont déjà été dépensées, par exemple lorsque vous utilisez une copie de votre wallet.dat et que les pièces ont été marquées comme dépensées dans la copie, mais pas dans ce portefeuille. + + + Error: The wallet was unlocked only to anonymize coins. + Erreur : Le portefeuille n'a été déverrouillé que pour anonymiser les pièces. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + Des frais %1 fois supérieurs à %2 par kilooctet sont considérés comme extrêmement élevés. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Erreur: Le portefeuille a été dévérouillé uniquement pour anonymiser les pièces. Déverouillage annulé. + + + + MasterNodesWidget + + Form + Formulaire + + + TextLabel + TextLabel + + + No active Master Node yet + Pas encore de masternode actif + + + PushButton + Bouton poussoir + + + Masternodes + Masternodes + + + Full nodes that incentivize node operators to perform the core consensus functions +and vote on the treasury system receiving a periodic reward. + Noeuds complets qui incite les opérateurs à exécuter les fonctions de consensus essentielles et votent sur le système de financement en recevant des récompenses périodiquement. + + + Create Masternode Controller + Créer un contrôleur masternode + + + No active Masternode yet + Aucun masternode actif + + + Start + Démarrer + + + Delete + Supprimer + + + Info + Info + + + Start Masternode + Démarrer le masternode + + + Are you sure you want to start masternode %1? + + Êtes-vous certain de vouloir démarrer le masternode %1? + + + + Cannot start masternode, the collateral transaction has not been accepted by the network. +Please wait few more minutes. + Impossible de démarrer le masternode, la transaction du dépôt de garantie n'a pas encore été acceptée par le réseau. +S'il vous plaît attendez quelques minutes de plus. + + + Remote Masternode Data + Données masternode distant + + + You are just about to export the required data to run a Masternode +on a remote server to your clipboard. + + +You will only have to paste the data in the pivx.conf file +of your remote server and start it, then start the Masternode using +this controller wallet (select the Masternode in the list and press "start"). + + Vous êtes sur le point d'exporter les données requises pour exécuter un Masternode +sur un serveur distant vers votre presse-papiers. + + +Il vous suffira de coller les données dans le fichier pivx.conf +de votre serveur distant, le démarrer, puis de lancer le masternode en utilisant +ce portefeuille (sélectionnez le masternode dans la liste et appuyez sur "Démarrer"). + + + Masternode exported!, check your clipboard + Masternode exporté!, vérifier votre presse-papier + + + Delete Masternode + Supprimer le masternode + + + You are just about to delete Masternode: +%1 + +Are you sure? + Vous vous apprêtez à supprimer le masternode: +%1 +Confirmez-vous? + + + Invalid masternode.conf file + Fichier masternode.conf invalide + + + Error parsing masternode.conf file + Erreur lors de l'analyse du fichier masternode.conf + + + masternode.conf file doesn't exists + Le fichier masternode.conf est absent + + + Not enough balance to create a masternode, 10,000 PIV required. + Fonds insuffisant pour créer un masternode, 10 000 PIV sont requis. + + + Error creating masternode + Erreur lors de la création du masternode + + + + MnInfoDialog + + Form + Formulaire + + + Master Node Information + Information du masternode + + + Public Key: + Clé publique: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Address: + Adresse: + + + 127.0.0.2:43223 + 127.0.0.2:43223 + + + Collaterall tx id: + Collatéral tx id: + + + Output index: + Index de sortie: + + + 1 Inputs + 1 Entrées + + + Status: + Statut : + + + MISSING + MANQUANT + + + Export data to run the Master Node on a remote server + Exporter les données pour exécuter le masternode sur un serveur distant + + + + MyAddressRow + + Form + Formulaire + + + Savings + Épargne + + + Jan. 19, 2019 + 19 janvier 2019 + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + NavMenuWidget + + Form + Formulaire + + + V 1.0.0 + V 1.0.0 + + + v%1 + v%1 + + + + OpenURIDialog + + Open URI + Ouvrir URI + + + Open payment request from URI or file + Ouvrir une demande de paiement depuis URI ou un fichier + + + TextLabel + TextLabel + + + CANCEL + ANNULER + + + OK + OK + + + Select payment request file + Choisir le fichier de demande de paiement + + + Select payment request file to open + Choisir le fichier de demande de paiement à ouvrir + + + + OptionButton + + Form + Formulaire + + + TextLabel + TextLabel + + + + OptionsDialog + + Options + Options + + + &Main + Principal + + + Size of &database cache + Taille du cache de base de données + + + MB + MB + + + Number of script &verification threads + Nombre de fil pour les scripts de vérification + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = laisser autant de cÅ“urs libres) + + + W&allet + Portefeuille + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + SI vous désactivez la dépense de la monnaire non confirmée, la monnaie rendue sur une transaction <br/>ne peut pas être utilisée tant que celle-ci n'a pas reçue au moins une confirmation <br/>Ceci implique également la manière dont votre solde est calculé. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Ouvrir automatiquement le port du client PIVX sur le routeur. Ceci fonctionne uniquement si votre routeur prend en charge UPnP et que celui-ci est activé. + + + Accept connections from outside + Accepter les connections depuis l'extérieur + + + Allow incoming connections + Autoriser les connections entrantes + + + &Connect through SOCKS5 proxy (default proxy): + Connection via un proxy SOCKS5 (proxy par défaut): + + + Expert + Expert + + + Automatically start PIVX after logging in to the system. + Démarrez PIVX automatiquement après vous être connecté au système. + + + &Start PIVX on system login + Démarrer PIVX au démarrage système + + + Whether to show coin control features or not. + Que ce soit pour montrer les fonctionnalités de contrôle des pièces ou non. + + + Enable coin &control features + Activer les fonctionnalités de contrôle des pièces + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Afficher l'onglet supplémentaire répertoriant tous vos masternodes dans le premier sous-onglet <br/> et tous les masternodes du réseau dans le deuxième sous-onglet. + + + Show Masternodes Tab + Montrer l'onglet des Masternodes + + + &Spend unconfirmed change + Dépenser la monnaie non confirmée + + + &Network + Réseau + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + La langue de l'interface utilisateur peut être définie ici. Ce paramètre prendra effet après le redémarrage de PIVX. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Langue manquante ou traduction incomplète? Aidez-nous à traduire ce projet ici: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Répertorier les port utilisant UPnP + + + Enable automatic minting of PIV units to zPIV + Activé l'auto-monnayage de PIV unités en zPIV + + + Enable zPIV Automint + Activer l'Auto-monnayage zPIV + + + Enable automatic zPIV minting from specific addresses + Activer la frappe zPIV automatique à partir d'adresses spécifiques + + + Enable Automint Addresses + Activer les Adresses Automint + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Pourcentage des PIV entrants qui seront automatiquement convertis en zPIV via le protocole Zerocoin (min. 10%) + + + Percentage of autominted zPIV + Pourcentage de zPIV auto-monnayé + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Met en attente la conversion automatique Zerocoin jusqu'à ce qu'il y ai suffisament de PIV disponibles pour la dénomination demandée + + + Preferred Automint zPIV Denomination + Dénomination préférée pour l'auto-monnayage zPIV + + + Stake split threshold: + Seuil de partage du Stake + + + Connect to the PIVX network through a SOCKS5 proxy. + Se connetcer au réseau PIVX via un proxy SOCKS5. + + + Proxy &IP: + IP du proxy: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + Adresse IP du proxy (ex: IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + Port: + + + Port of the proxy (e.g. 9050) + Port du proxy (ex: 9050) + + + &Window + Fenêtre + + + Show only a tray icon after minimizing the window. + Afficher uniquement l'icône de la barre d'état après avoir réduit la fenêtre. + + + &Minimize to the tray instead of the taskbar + Minimiser vers la barre d'état au lieu de la barre de tâche + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Minimiser l'application putôt que de la quitter lorsque la fenêtre est fermée. Quant cette option est activée, l'application ne sera fermé qu'après avoir choisi la fonction Quitter dans le menu. + + + M&inimize on close + Minimiser sur fermeture + + + &Display + Afficher + + + User Interface &language: + Language de l'interface utilisateur: + + + User Interface Theme: + Thème de l'interface utilisateur: + + + Unit to show amounts in: + Unité d'affichage des montants: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Choisir l'unité de subdivision par défaut à afficher dans l'interface et pour envoyer des pièces. + + + Decimal digits + Chiffres décimaux + + + Hide empty balances + Masquer les soldes vides + + + Hide orphan stakes in transaction lists + Masquer les récompenses Stake orphelines dans la liste des transactions + + + Hide orphan stakes + Masquer les récompenses Stake orphelines + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + URL tierces (par exemple un explorateur de blocs) qui apparaissent dans l'onglet des transactions en tant qu'éléments de menu contextuel. %s dans l'URL est remplacé par le hash de transaction. Les URL multiples sont séparées par une barre verticale | + + + Third party transaction URLs + URLs de transaction tierces + + + Active command-line options that override above options: + Options de ligne de commande actives qui remplacent les options ci-dessus: + + + Reset all client options to default. + Réinitialiser toutes les options par défaut du client. + + + &Reset Options + Réinitialiser les options + + + &OK + OK + + + &Cancel + Annuler + + + Any + Tout + + + default + défaut + + + none + aucun + + + Confirm options reset + Confirmer la réinitialisation des options + + + Client restart required to activate changes. + Un redémarrage du client est requis pour activer les changements. + + + Client will be shutdown, do you want to proceed? + Le client va être éteint, voulez-vous procéder ? + + + This change would require a client restart. + Ce changement nécessitera un redémarrage du client. + + + The supplied proxy address is invalid. + L'adresse proxy fournie est invalide. + + + The supplied proxy port is invalid. + Le port du proxy fourni est invalide. + + + The supplied proxy settings are invalid. + Les paramètres proxy fournis ne sont pas valides. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + Portefeuille + + + Node + NÅ“ud + + + &Show / Hide + Afficher / Cacher + + + Show or hide the main Window + Afficher ou cacher la fenêtre principale + + + E&xit + Quitter + + + Quit application + Quitter l'application + + + PIVX Core client + PIVX Core client + + + Error + Erreur + + + Warning + Attention + + + Information + Information + + + System Message + Message système + + + Sent MultiSend transaction + Envoi d'une transaction MultiSend + + + Sent transaction + Transaction sortie + + + Incoming transaction + Transaction entrante + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Date : %1 +Montant : %2 +Type : %3 +Adresse : %4 + + + + A fatal error occurred. PIVX can no longer continue safely and will quit. + Une erreur fatale s'est produite. PIVX Core ne peut plus poursuivre en toute sécurité et va quitter. + + + + PWidget + + Wallet locked, you need to unlock it to perform this action + Portefeuille vérouillé, vous devez le dévérrouiller pour réaliser cette opération + + + + PaymentServer + + Payment request error + Erreur dans la demande de paiement + + + URI handling + Gestion URI + + + Payment request fetch URL is invalid: %1 + L'URL de récupération de la demande de paiement n'est pas valide: %1 + + + Payment request file handling + Gestion du fichier des demandes de paiement + + + Invalid payment address %1 + Adresse de paiement invalide %1 + + + Cannot start pivx: click-to-pay handler + Impossible de démarrer pivx: gestionnaire click-to-pay + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + L'URI ne peut pas être analysée! Cela peut être dû à une adresse PIVX invalide ou à des paramètres URI incorrectes. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Le fichier de demande de paiement ne peut pas être lu! Cela peut être causé par un fichier de demande de paiement invalide. + + + Payment request rejected + Demande de paiement rejetée + + + Payment request network doesn't match client network. + Le réseau de demande de paiement ne correspond pas au réseau client. + + + Payment request has expired. + La demande de paiement a expiré. + + + Payment request is not initialized. + La demande de paiement n'est pas initialisée. + + + Unverified payment requests to custom payment scripts are unsupported. + Les demandes de paiement non vérifiées vers des scripts de paiement personnalisés ne sont pas prises en charge. + + + Requested payment amount of %1 is too small (considered dust). + Le montant du paiement demandé de %1 est trop petit (considéré comme du résidu). + + + Refund from %1 + Rembourser depuis %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + La demande de paiement %1 est trop grande (%2 octets, autorisé %3 octets). + + + Payment request DoS protection + Demande de paiement Protection DoS + + + Error communicating with %1: %2 + Erreur de communication avec %1: %2 + + + Payment request cannot be parsed! + La requête de paiement ne peut être exécutée + + + Bad response from server %1 + Mauvaise réponse du serveur %1 + + + Network request error + Erreur de requête réseau + + + Payment acknowledged + Paiement accepté + + + + PeerTableModel + + Address/Hostname + Adresse/Nom de domaine + + + Version + Version + + + Ping Time + Temps de réponse au Ping + + + + PrivacyWidget + + Form + Formulaire + + + Title + Titre + + + TextLabel + TextLabel + + + PushButton + Bouton poussoir + + + No active Master Node yet + Pas encore de masternode actif + + + Privacy + Confidentialité + + + Convert + Convertir + + + Mint + Monnayage + + + Minting zPIV anonymizes your PIV by removing any +transaction history, making transactions untraceable + Frapper des zPIV anonymise vos PIV en supprimant tout +l'historique de transaction, rendant les transactions intraçables + + + Mint new zPIV or convert back to PIV + Frapper de nouveaux zPIV ou reconvertir en PIV + + + Last Zerocoin Movements + Dernières opérations Zerocoin + + + No transactions yet + Pas encore de transaction + + + Mint zPIV + Frapper des zPIV + + + Enter amount of PIV to mint into zPIV + Entrer le montant de PIV à monnayer en zPIV + + + Convert back to PIV + Reconvertir en PIV + + + Enter amount of zPIV to convert back into PIV + Entrer le montant de zPIV à reconvertir en PIV + + + Zerocoin + Zerocoin + + + zPIV is currently undergoing maintenance + zPIV est actuellement en maintenance + + + You need to unlock the wallet to be able to %1 zPIV + Vous devez dévérouiller le portefeuille pour pouvoir %1 zPIV + + + convert + convertir + + + mint + Frapper + + + Invalid value + Valeur incorrecte + + + zPIV minted successfully + zPIV frappées avec succès + + + zPIV converted back to PIV + zPIV reconverti en PIV + + + You don't have any PIV to select. + Vous n'avez aucun PIV à sélectionner + + + Rescan Mints + Rescanner les frappes + + + Your zerocoin mints are going to be scanned from the blockchain from scratch + Votre monnayage Zerocoin va être retracer à partir de la blockchain + + + Reset Spent Zerocoins + Réinitialiser les Zerocoins dépensés + + + Your zerocoin spends are going to be scanned from the blockchain from scratch + Vos dépenses Zerocoin vont être recalculées à partir de la blockchain + + + Total %1 + Total %1 + + + + ProposalFrame + + Open proposal page in browser + Ouvrir la page des propositions dans le navigateur + + + remaining payment(s). + paiement(s) restant. + + + Yes: + Pour: + + + Abstain: + Abstention: + + + No: + Contre: + + + A proposal URL can be used for phishing, scams and computer viruses. Open this link only if you trust the following URL. + + Une page de proposition peut être utilisée pour le phishing, des escroqueries ou des virus informatiques. Ouvrez ce lien uniquement si vous faites confiance à l'URL suivante. + + + + Open link + Ouvrir le lien + + + Copy link + Copier le lien + + + Wallet Locked + Portefeuille vérouillé + + + You must unlock your wallet to vote. + Vous devez déverrouiller votre portefeuille pour voter + + + Do you want to vote %1 on + Voulez-vous voter %1 pour + + + using all your masternodes? + en utilisant tous vos masternodes? + + + Proposal Hash: + Hash de la proposition: + + + Proposal URL: + URL de la proposition: + + + Confirm Vote + Confirmer le vote + + + Vote Results + Résultats du vote + + + + QObject + + Amount + Montant + + + Enter a PIVX address (e.g. %1) + Entrez une adresse PIVX (par ex. %1) + + + %1 d + %1 j + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + RÉSEAU + + + BLOOM + ÉCLOSION + + + ZK_BLOOM + ZK_BLOOM + + + UNKNOWN + INCONNU + + + None + Aucun + + + N/A + N/A + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" does not exist. + Erreur: le répertoire de données spécifié "%1" n'existe pas. + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + Erreur: impossible d'analyser le fichier de configuration: %1. Utilisez uniquement la syntaxe clé=valeur. + + + Error: Invalid combination of -regtest and -testnet. + Erreur: Combinaison non valide de -regtest et -testnet. + + + Error reading masternode configuration file: %1 + Erreur de lecture du fichier de configuration Masternode: %1 + + + PIVX Core didn't yet exit safely... + PIVX Core n'a pas encore quitté en toute sécurité ... + + + + RPCConsole + + Tools window + Fenêtre outils + + + &Information + &Information + + + General + Général + + + Name + Nom + + + Client name + Nom du client + + + N/A + N/A + + + Number of connections + Nombre de connections + + + &Open + Ouvrir + + + Startup time + Heure de démarrage + + + Network + Réseau + + + Last block time + Dernier block + + + Debug log file + Fichier journal de débogage + + + Build date + Date de construction + + + Current number of blocks + Nombre actuel de blocs + + + Client version + Version client + + + Using BerkeleyDB version + Utilisation de la version BerkeleyDB + + + Block chain + Chaîne de bloc + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Ouvrir le fichier journal de déboguage depuis le répertoire de données courant. Cela peut prendre quelques minutes pour les fichier journaux volumineux. + + + Number of Masternodes + Nombre de masternodes + + + Data Directory + Dossier des données + + + Last block hash + Hash du dernier block + + + &Console + Console + + + Clear console + Vider la console + + + &Network Traffic + Traffic du réseau + + + &Clear + Effacer + + + Totals + Totaux + + + Received + Reçu + + + Sent + Envoyé + + + &Peers + Pairs + + + Banned peers + Pairs bannis + + + Select a peer to view detailed information. + Sélectionnez un pair pour voir les informations détaillées. + + + Whitelisted + Listé comme approuvé + + + Direction + Direction + + + Protocol + Protocole + + + Version + Version + + + Services + Services + + + Ban Score + Ban Score + + + Connection Time + Heure de connection + + + Last Send + Dernier envoi + + + Last Receive + Dernière réception + + + Bytes Sent + Octets envoyés + + + Bytes Received + Octets reçus + + + Ping Time + Temps de réponse au Ping + + + &Wallet Repair + Réparation du portefeuille + + + Delete local Blockchain Folders + Supprime le dossier local Blockchain + + + Wallet In Use: + Portefeuille en cours: + + + Starting Block + Bloc de départ + + + Synced Headers + En-têtes synchronisées + + + Synced Blocks + Blocs synchronisés + + + The duration of a currently outstanding ping. + Durée du ping actuellement en cours. + + + Ping Wait + Attente Ping + + + Time Offset + Décalage horaire + + + Custom Backup Path: + Chemin du répertoire de sauvegarde personnalisé: + + + Custom zPIV Backup Path: + Chemin du répertoire de sauvegarde zPIV personnalisé: + + + Custom Backups Threshold: + Nombre limite de sauvegardes: + + + Salvage wallet + Portefeuille de récupération + + + Attempt to recover private keys from a corrupt wallet.dat. + Tentative de récupération des clés privées à partir d'un wallet.dat corrompu. + + + Rescan blockchain files + Réanalysez les fichiers blockchain + + + Rescan the block chain for missing wallet transactions. + Réanalysez la chaîne de blocs pour les transactions de portefeuille manquantes. + + + Recover transactions 1 + Récupère les transactions 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Récupère les transactions depuis la blockchain (conserve les méta-données, par exemple le propriétaire du compte). + + + Recover transactions 2 + récupérer transactions + + + Recover transactions from blockchain (drop meta-data). + Récupère les transactions depuis la blockchain (sans les méta-données) + + + Upgrade wallet format + Mettre à jour le format du portefeuille + + + Rebuild block chain index from current blk000??.dat files. + Reconstruire l'index de la chaîne de block à partir des fichiers courants blk000??.dat. + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Supprime tous les dossiers blockchain locaux afin que le portefeuille se synchronise à partir de zéro. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + Les boutons ci-dessous vont redémarrer le portefeuille avec des options en ligne de commande pour réparer le portefeuille, résoudre les problèmes avec des fichiers blockhain corrompus ou des transactions manquantes / obsolètes. + + + Wallet repair options. + Options de réparation du portefeuille. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Mettre à jour le portefeuille au format le plus récent lors du démarrage. (Note: ce n'est pas une mise à jour du portefeuille lui-même!) + + + Rebuild index + Reconstruire l'index + + + In: + Entrée: + + + Out: + Sortie: + + + Welcome to the PIVX RPC console. + Bienvenue sur la console PIVX RPC. + + + &Disconnect Node + Déconnecter le noeud + + + Ban Node for + Bannir le noeud pour + + + 1 &hour + 1 heure + + + 1 &day + 1 jour + + + 1 &week + 1 &semaine + + + 1 &year + 1 année + + + &Unban Node + Noeud non banni + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Cela supprimera vos dossiers de blockchain locaux et le portefeuille synchronisera la Blockchain complète à partir de zéro. <br /> <br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Cela nécessite beaucoup de temps et télécharge beaucoup de données. <br /> <br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Vos transactions et vos fonds seront à nouveau visibles après que le téléchargement soit complet. <br /> <br/> + + + Do you want to continue?.<br /> + Voulez-vous continuer?.<br /> + + + Confirm resync Blockchain + Cornfirmer la resynchronisation Blockchain + + + Use up and down arrows to navigate history, and %1 to clear screen. + Utilisez la flèches haut et bas pour naviguer dans l'historique, et %1 pour purger l'écran. + + + Type <b>help</b> for an overview of available commands. + Entrez <b> aide </b> pour un aperçu des commandes disponibles + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + ATTENTION: Des escrocs sévisent, demandant aux utilisateurs de taper certaines commandes dans la console, volant le contenu de leur portefeuille. N'utilisez pas cette console sans une parfaite compréhension des conséquences des commandes que vous y tapez. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (identifiant du noeud: %1) + + + via %1 + via %1 + + + never + jamais + + + Inbound + Entrant + + + Outbound + Sortant + + + Yes + Oui + + + No + Non + + + Unknown + Inconnu + + + + ReceiveDialog + + Dialog + Dialogue + + + Transaction Details + Détails de la transaction + + + PushButton + Bouton poussoir + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + ANNULER + + + OK + OK + + + + ReceiveWidget + + Form + Formulaire + + + TextLabel + TextLabel + + + No address + Aucune adresse + + + Add Label + Ajouter un libellé + + + Generate Address + Générer une adresse + + + Copy + Copier + + + Receive + Recevoir + + + Scan the QR code or copy the address to receive PIV. + Balayez le QR code ou copiez l'adresse pour recevoir les PIV. + + + No address + Aucune adresse + + + No available address, try unlocking the wallet + Aucune adresse disponible, essayez de dévérouiller le portefeuille + + + Error generating address + Erreur lors de la génération de l'adresse + + + Change Label + Changer le libellé + + + Edit Address Label + Éditer le libellé de l'adresse + + + Address label saved + Libellé de l'adresse sauvegardé + + + Error storing address label + Erreur lors de l'enregistrement du libellé + + + New address created + Nouvelle adresse créée + + + Address copied + Adresse copiée + + + URI copied to clipboard + URI copiée vers le presse-papier + + + Address copied to clipboard + Adresse copiée vers le presse-papier + + + + RecentRequestsTableModel + + Date + Date + + + Label + Label + + + Message + Message + + + Address + Adresse + + + Amount + Montant + + + (no label) + (pas de label) + + + (no message) + (pas de message) + + + (no amount) + (pas de montant) + + + + RequestDialog + + Dialog + Dialogue + + + New Request Payment + Nouvelle demande de paiement + + + Lorem ipsum dolor sit amet, consectur cling elit, sed do + Lorem ipsum dolor sit amet, consectur cling elit, sed do + + + Amount + Montant + + + PIV + PIV + + + TextLabel + TextLabel + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + COPY ADDRESS + COPIER ADRESSE + + + COPY URL + COPIER URL + + + CANCEL + ANNULER + + + REQUEST + DEMANDER + + + Label + Label + + + Enter a label to be saved within the address + Entrez le libellé à associer à cette adresse + + + Description (optional) + Description (optionel) + + + Add description + Ajouter une description + + + Error + Erreur + + + GENERATE + GÉNÉRER + + + + SendChangeAddressDialog + + Dialog + Dialogue + + + Transaction Details + Détails de la transaction + + + PushButton + Bouton poussoir + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + ANNULER + + + OK + OK + + + Custom Change Address + Adresse de changement personnalisée + + + The remainder of the value resultant from the inputs minus the outputs value goes to the "change" PIVX address + Le reste de la valeur résultante des entrées moins la valeur des sorties est envoyé à l'adresse "change" PIVX + + + + SendCustomFeeDialog + + Form + Formulaire + + + Transaction Details + Détails de la transaction + + + Customize the transaction fee at your to your liking, depending on the fee value your transaction will be included or not in the blockchain. + Personnalisez les frais de transaction à votre guise, en fonction de la valeur des frais, votre transaction sera incluse ou non dans la blockchain. + + + Recomended + Recommandé + + + 0.00 KB + 0.00 KO + + + Custom + Personnaliser + + + Per kilobyte + Par kilooctet + + + CANCEL + ANNULER + + + OK + OK + + + Customize Fee + Personnaliser les frais + + + Normal + Normal + + + Slow + Lent + + + Fast + Rapide + + + SAVE + SAUVEGARDER + + + + SendMultiRow + + Form + Formulaire + + + TextLabel + TextLabel + + + Add address + Ajouter une adresse + + + Add description + Ajouter une description + + + + SendWidget + + Send + Envoyer + + + You can transfer public coins (PIV) or private coins (zPIV) + Vous pouvez transférer des pièces publiques (PIV) ou des pièces privées (zPIV) + + + Select coin type to spend + Choisir le type de pièce à dépenser + + + Enter a PIVX address or contact label + Entrez une adresse PIVX ou un nom de contact + + + Amount + Montant + + + Customize fee + Personnaliser les frais + + + Clear all + Tout effacer + + + Add recipient + Ajouter un destinataire + + + Reset to default + Réinitialiser les valeurs par défaut + + + Total to send + Total à envoyer + + + Send PIV + Envoyer PIV + + + Send zPIV + Envoyer zPIV + + + Total remaining from the selected UTXO + Total restant dans l'UTXO sélectionné + + + Total remaining + Total restant + + + Customize Fee + Personnaliser les frais + + + Maximum amount of outputs reached + Quantité maximale de données de sortie atteinte + + + Invalid entry, previous entries must be valid before add a new one + Entrée invalide, les entrées précédentes doivent être validées avant d'en créer de nouvelles + + + Invalid entry + Entrée invalide + + + No set recipients + Pas de destinataires définis + + + Cannot send, wallet locked + Envoi impossible, portefeuille vérouillé + + + Cannot create transaction. + Impossible de créer la transaction. + + + Transaction sent + Transaction envoyée + + + Spend Zerocoin + Dépenser les Zerocoin + + + zPIV is currently undergoing maintenance. + zPIV est actuellement en cours de maintenance. + + + Coin control mint not found + Pièce de monnaie monnayée introuvable + + + Sending %1 to address %2 + + Envoi %1 vers l'adresse %2 + + + + Sending %1 to addresses: +%2 + Envoi %1 vers l'adresse: + %2 + + + zPIV transaction sent! + Transaction zPIV envoyée! + + + Version 1 zPIV require a security level of 100 to successfully spend. + La version 1 de zPIV requiert un niveau de sécurité de 100 pour les dépenser. + + + + Too much inputs ( + Trop d'entrées ( + + + ) needed. +Maximum allowed: + ) demandées. +Maximum autorisé: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Monnayez des dénominations plus élevées (moins d'intrants sont nécessaires), ou réduisez le montant à dépenser. + + + Address label update failed for address: %1 + La mise à jour du libellé a échoué pour l'adresse: %1 + + + Invalid change address + Adresse de change invalide + + + Invalid URI + URI invalide + + + Invalid address in URI + Adresse invalide dans l'URI + + + Custom Fee %1 + Frais personnalisé %1 + + + You don't have any PIV to select. + Vous n'avez aucun PIV à sélectionner + + + You don't have any zPIV in your balance to select. + Vous n'avez aucun zPIV à sélectionner. + + + No contacts available, you can go to the contacts screen and add some there! + Aucun contact enregistré, vous pouvez aller dans l'écran des contacts et en ajouter! + + + Save contact + Sauvegarder le contact + + + Address field is empty + Le chanp adresse est vide + + + Invalid address + Adresse invalide + + + Cannot store your own address as contact + Vous ne pouvez pas stocker votre propre adresse comme contact + + + Update Contact + Mettre à jour le contact + + + Create New Contact + Créer un nouveau contact + + + New Contact Stored + Nouveau contact enregistré + + + Error Storing Contact + Erreur lors de l'enregistrement du contact + + + + SettingsBackupWallet + + Form + Formulaire + + + TextLabel + TextLabel + + + PushButton + Bouton poussoir + + + Backup Wallet + Sauvegarder le Portefeuille + + + Change Wallet Passphrase + Changer la phrase secrète du portefeuille + + + Keep your wallet safe doing regular backups, store your backup file externally. +This option creates a wallet.dat file that can be used to recover your whole balance (transactions and addresses) from another device. + Garder votre portefeuille en sécurité en réalisant régulièrement des sauvegards, conservez vos fichiers de sauvegarde dans un stockage externe. +Cette option créé un fichier wallet.dat qui peut être employé pour restaurer votre solde de monnaies (transactions et adresses) à partir d'un autre appareil. + + + Where + Où + + + Set a folder location + Définir l'emplacement du répertoire + + + Backup + Sauvegarde + + + Change Passphrase + Modifier la phrase de passe + + + Backup Wallet + Sauvegarder le Portefeuille + + + Wallet Data (*.dat) + Wallet Data (*.dat) + + + Backup created + Sauvegarde créée + + + Backup creation failed + Création de la sauvegarde échouée + + + Please select a folder to export the backup first. + SVP, sélectionnez d'abord le répertoire vers lequel la sauvegarde est exportée + + + + SettingsBitToolWidget + + Form + Formulaire + + + TextLabel + TextLabel + + + PushButton + Bouton poussoir + + + Decrypt Address Result + Déchiffrer le résultat de l'adresse + + + Import Address + Importer l'adresse + + + Clear + Effacer + + + BIP38 Tool + Outil BIP38 + + + Encrypt + Chiffrer + + + Decrypt + Déchiffrer + + + Encrypted key + Clé de chiffrement + + + Enter a encrypted key + Entrez une clé de chiffrement + + + Passphrase + Phrase de passe + + + Enter a passphrase + Entrez une phrase de passe + + + Decrypted address result + Résultat d'adresse déchiffré + + + Decrypted Address + Adresse déchiffrée + + + DECRYPT KEY + CLÉ DÉCHIFFRÉE + + + Enter a PIVX address + Entrez une adresse PIVX + + + Add address + Ajouter une adresse + + + Write a message + Écrire un message + + + Encrypted Key + Clé de chiffrement + + + ENCRYPT + CHIFFRER + + + CLEAR ALL + TOUT EFFACER + + + CLEAR + EFFACER + + + The entered passphrase is invalid. + La phrase secrète entrée est incorrect. + + + Allowed: 0-9,a-z,A-Z, + Autorisés : 0-9,a-z,A-Z, + + + The entered address is invalid. + L'adresse entrée est incorrecte. + + + Please check the address and try again. + Veuillez vérifier l'adresse et réessayer. + + + The entered address does not refer to a key. + L'adresse renseignée ne correspond pas à une clé. + + + Wallet unlock was cancelled. + Le déverrouillage du portefeuille a été annulé. + + + Private key for the entered address is not available. + La clé privée pour l'adresse entrée n'est pas valide. + + + Address encrypted. + Adresse chiffrée. + + + No addresses available, you can go to the receive screen and add some there! + Aucune adresse enregistrée, vous pouvez aller dans l'écran de réception et en ajouter! + + + Failed to decrypt. + Échec du décryptage. + + + Please check the key and passphrase and try again. + Veuillez vérifier la clé et la phrase secrète et réessayer. + + + Data Not Valid. + Les donnés ne sont pas valides. + + + Please try again. + Veuillez réessayer. + + + Please wait while key is imported + Veuillez patienter pendant que la clé est importée + + + Cannot import address, key already held by the wallet + Impossible d'importer l'adresse, la clé est déjà existante dans le portefeuille + + + Error adding key to the wallet + Erreur d'ajout de clé dans le portefeuille + + + Successfully added pivate key to the wallet + Clé privée ajoutée avec succès dans le portefeuille + + + + SettingsConsoleWidget + + Form + Formulaire + + + TextLabel + TextLabel + + + Console + Console + + + Console input + Entrée de console + + + Command Line Options + Options de la ligen de commande + + + Open Debug File + Ouvrir le fichier debug + + + Cannot open debug file. +Verify that you have installed a predetermined text editor. + Imposible d'ouvrir le fichier debug. +Vérifiez que vous avez installé un logiciel éditeur de texte. + + + Welcome to the PIVX RPC console. + Bienvenue sur la console PIVX RPC. + + + Use up and down arrows to navigate history, and %1 to clear screen. + Utilisez la flèches haut et bas pour naviguer dans l'historique, et %1 pour purger l'écran. + + + Type <b>help</b> for an overview of available commands. + Entrez <b> aide </b> pour un aperçu des commandes disponibles + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + ATTENTION: Des escrocs sévisent, demandant aux utilisateurs de taper certaines commandes dans la console, volant le contenu de leur portefeuille. N'utilisez pas cette console sans une parfaite compréhension des conséquences des commandes que vous y tapez. + + + + SettingsDisplayOptionsWidget + + Form + Formulaire + + + TextLabel + TextLabel + + + PushButton + Bouton poussoir + + + Reset to default + Réinitialiser les valeurs par défaut + + + Discard changes + Annuler les modifications + + + Display + Afficher + + + Customize the display view options + Personnaliser les options d'affichage + + + Language + Langue + + + Unit to show amount + Unité d'affichage des montants + + + Decimal digits + Chiffres décimaux + + + Third party transactions URLs + URL de transactions tierces + + + Hide empty balances + Masquer les soldes vides + + + SAVE + SAUVEGARDER + + + default + défaut + + + Options reset succeed + Réinitialisation des optiosn réussie + + + + SettingsFaqWidget + + Form + Formulaire + + + TextLabel + TextLabel + + + PushButton + Bouton poussoir + + + 1) What is PIVX? + 1) Qu'est ce que PIVX? + + + 2) Why are my PIV unspendable? + 2) Pourquoi mes PIV ne peuvent pas être dépensés? + + + 3) PIVX privacy? What is Zerocoin (zPIV)? + 3) Confidentialité et PIVX? Qu'est ce que Zerocoin (zPIV)? + + + 4) Why are my zPIV unspendable? + 4) Pourquoi mes zPIV ne peuvent pas être dépensés? + + + 5) Why did my wallet convert the balance + into zPIV automatically? + 5) Pourquoi mon portefeuille convertit-il automatiquement +mon solde en zPIV? + + + 6) How do I receive PIV/zPIV? + 6) Comment recevoir des PIV/zPIV? + + + 7) How do I stake PIV/zPIV? + 7) Comment staker des PIV/zPIV? + + + 8) Where I should go if I need support? + 8) Où dois-je aller pour obtenir de l'aide? + + + 9) What is a Master Node? + 9) Qu'est ce qu'un masternode? + + + 10) What is a Master Node Controller? + 10) Qu'est ce qu'un contrôleur de masternode? + + + 1 + 1 + + + What is PIVX? + Qu'est ce que PIVX ? + + + + <html><head/><body><p align="justify"> + PIVX is a form of digital online money using blockchain technology + that can be easily transferred globally, instantly, and with near + zero fees. PIVX incorporates market leading security & + privacy and is also the first PoS (Proof of Stake) Cryptocurrency + to implement ZeroCoin(zPIV) and Zerocoin staking. + </p><p align="justify"> + PIVX utilizes a Proof of Stake (PoS) consensus system algorithm, + allowing all owners of PIVX to participate in earning block rewards + while securing the network with full node wallets, as well as to + run Masternodes to create and vote on proposals. + </p></body></html> + + +<html><head/><body><p align="justify"> +PIVX est une forme de monnaie digitale en ligne qui utilise la technologie de la blockchain +et qui peut être facilement transférée globalement, instantanément, avec des frais +quasi nuls. PIVX intègre les meilleures solutions de sécurité et de confidentialité +du marché et elle est également la première cryptomonnaie avec un consensus PoS (Proof of Stake ou Preuve d'Enjeu) à implémenter Zerocoin(zPIV) ainsi que le staking de Zerocoin. +</p><p align="justify"> +PIVX utilise un système de consensus de type Proof of Stake (PoS), +permettant à tous les détenteurs de PIVX de participer au réseau et de gagner des récompenses +lorsqu'ils sécurisent le réseau au moyen de leur portefeuille full node, ainsi qu'en +éxécutant des masternodes pour créer et voter des propositions. +</p></body></html> + + + 2 + 2 + + + Why are my PIV unspendable? + Pourquoi mes PIV ne peuvent pas être dépensés? + + + + <html><head/><body><p align="justify"> + Newly received PIVX requires 6 confirmations on the network + to become eligible for spending which can take ~6 minutes. + </p><p align="justify"> + Your PIVX wallet also needs to be completely synchronized + to see and spend balances on the network. + </p></body></html> + + +<html><head/><body><p align="justify"> +Les nouveaux PIVX reçus nécessitent 6 confirmations sur le réseau +pour être disponible à la dépense ce qui peut prendre ~6 minutes. +</p><p align="justify"> +Votre portefeuille PIVX a besoin également d'être totalement synchronisé +pour voir votre solde de monnaie dépensable sur le réseau. +</p></body></html> + + + + 3 + 3 + + + PIVX privacy? What is Zerocoin (zPIV)? + Confidentialité et PIVX? Qu'est ce que Zerocoin (zPIV)? + + + + <html><head/><body><p align="justify"> + zPIV is an optional privacy-centric method of coin mixing on the + PIVX blockchain. Basically all your transactions cannot be tracked + on to any block explorer. You can read more about the technicals in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "PIVX Zerocoin (zPIV) Technical Paper"</a>. + </p></body></html> + + +<html><head/><body><p align="justify"> +zPIV est une méthode optionnelle de fongibilité des pièces sur la blockchain PIVX, axée sur la confidentialité. Basiquement, cela permet rendre vos transactions intraçables par les explorateurs de blocs. Vous pouvez en savoir plus sur les aspects techniques en consultant le document +<a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "PIVX Zerocoin (zPIV) Technical Paper".</a> +</p></body></html> + + + + 4 + 4 + + + Why are my zPIV unspendable? + Pourquoi mes zPIV ne peuvent pas être dépensés? + + + + <html><head/><body><p align="justify"> + After minting, zPIV will require 20 confirmations as well as 1 + additional mint of the same denomination on the network to + become eligible for spending. + </p></body></html> + + <html><head/><body><p align="justify"> +Après le monnayage, zPIV va nécessiter 20 confirmations ainsi que 1 +monnayage supplémentaire sur le réseau de la même dénomination +afin d'être dépensable. +</p></body></html> + + + + 5 + 5 + + + Why did my wallet convert the balance into zPIV automatically? + Pourquoi mon portefeuille convertit-il automatiquement +mon solde en zPIV? + + + + <html><head/><body><p align="justify"> + By default the PIVX wallet will convert 10% of your entire PIV + balance to zPIV to assist the network. If you do not wish to + stake zPIV or take advantage of the privacy benefit it brings, + you can disable the automatic minting in your PIVX wallet by + going to Settings->Options and deselecting “Enable zPIV Automintâ€. + If you are not making use of the PIVX-QT or GUI you can simply open + your pivx.conf file and add <i>enablezeromint=0</i> Without the quotation + marks and restart your wallet to disable automint.</p> + </p><p align="justify"> + You can read more about zPIV in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> "PIVX Zerocoin (zPIV) Technical Paper"</a>. + If you would like to keep and stake your zPIV, please read the "How do I stake" + section of the FAQ below. + </p></body></html> + + <html><head/><body><p align="justify"> +Par défaut le portefeuille PIVX convertit % de voter total de PIV +en zPIV afin de soutenir le réseau. Si vous ne souhaitez pas +conserver des zPIV ou profiter de ses propriétés en matière de confidentialité, +vous pouvez désactiver cette fonctionnalité dans votre portefeuille PIVX en +allant dans Paramètres->Options et décocher “Activer l'atuto-monnayage zPIVâ€. +Si vous n'utilisez pas PIVX-QT ou le GUI vous pouvez simplement ouvrir +votre fichier pivx.conf et ajouter <i> enablezeromint=0</i> sans guillements +et redémarrer votre portefeuille.</p> +</p><p align="justify"> +Vous pouvez en savoir plus sur zPIV dans +<a style='color: #b088ff' href='https://PIVX.org/zpiv/'> le document "PIVX Zerocoin (zPIV) Technical Paper"</a>. +Si vous voulez conserver et mettre en jeu vos zPIV, veuillez lire la section "Comment staker" +de la FAQ ci-dessous. +</p></body></html> + + + + 6 + 6 + + + How do I receive PIV/zPIV? + Comment recevoir des PIV/zPIV? + + + + <html><head/><body><p align="justify"> + zPIV can be spent and sent to any PIVX address. The receiver will + receive standard PIVX but the origin of the PIVX is anonymized by the zPIV Protocol. + </p><p align="justify"> + If you want more zPIV you will need to mint your balance in the “Privacy†tab. + </p></body></html> + + +<html><head/><body><p align="justify"> +zPIV peut être dépensé et envoyé à n'importe quelle adresse PIVX. Le destinataire va recevoir des PIVX standards mais l'origine de ceux-ci sera anonymisé par le protocol zPIV. +</p><p align="justify"> +Si vous désirez obtenir plus de zPIV vous devez créer cette monnaie à partir de l'onglet "Confidentialité". +</p></body></html> + + + + 7 + 7 + + + How do I stake PIV/zPIV? + Comment staker des PIV/zPIV? + + + + <html><head/><body><p align="justify"> + To Stake PIVX: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + You must have a balance of PIVX with a minimum of 101 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + <li> + Once all those steps are followed staking should be enabled. + <li> + You can see the status of staking in the wallet by mousing over the package icon in the row on the top left of the wallet interface. There package will be lit up and will state "Staking Enabled" to indicate it is staking. Using the command line interface (pivx-cli); the command <i>getstakingstatus</i> will confirm that staking is active. + </li></ol> + </p><p align="justify"> + To Stake zPIV: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + Your newly minted or existing zPIV balance must have a minimum of 200 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + Staking should now be enabled. + </li></ol> + </p></body></html> + + +<html><head/><body><p align="justify"> +Pour faire du Stake avec vos PIV: +</p><p align="justify"> +<ol><li> +Assurez-vous que votre portefeuillle est complètement synchronisé et que vous utilisez la dernière version du portefeuille. +<li> +Votre solde de PIV doit avoir reçu un minimum de 101 confirmations. +<li> +Votre portefeuille doit rester en ligne et dévérouillé pour l'anonymisation et le staking. +<li> +Une fois ces étapes accomplies le staking devrait être activé. +<li> + Vous pouvez voir le statut du staking dans le portefeuille en survolant l'icône du package dans la rangée en haut à gauche de l'interface du portefeuille. Le package sera allumé et indiquera "Staking Enabled" pour confirmer qu'il est effectivement activé. Dnas le cas de l'utilisation de l'interface en ligne de commande (pivx-cli); La commande <i>getstakingstatus</i> confirmera que le staking est actif. +</li></ol> +</p><p align="justify"> +Pour faire du Stake avec vos zPIV: +</p><p align="justify"> +<ol><li> +Assurez-vous que votre portefeuillle est complètement synchronisé et que vous utilisez la dernière version du portefeuille. +<li> +Votre solde de zPIV doit avoir reçu un minimum de 200 confirmations. +<li> +Votre portefeuille doit rester en ligne et dévérouillé pour l'anonymisation et le staking. +Le staking devrait maintenant être actif. +</li></ol> +</p></body></html> + + + + 8 + 8 + + + Where I should go if I need support? + Où dois-je aller pour obtenir de l'aide? + + + + <html><head/><body><p align="justify"> + We have support channels in most of our official chat groups, for example + <a style='color: #b088ff' href='https://Discord.PIVX.com'> + #support in our Discord</a>. + If you prefer to submit a ticket, One can be + <a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> + our Freshdesk support site</a>. + </p></body></html> + + +<html><head/><body> +Nous avons des services de support dans la plupart de nos groupes de discussion officiels, tel que +<a style='color: #b088ff' href='https://Discord.PIVX.com'> + #support dans notre groupe Discord</a>. +Si vous préférez soumettre un ticket, utilisez +<a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> +notre site support Freshdesk</a>. +<p align="justify"></body></html> + + + + 9 + 9 + + + What is a Master Node? + Qu'est ce qu'un masternode? + + + + <html><head/><body><p align="justify"> + A masternode is a computer running a full node PIVX core wallet with a + requirement of 10,000 PIV secured collateral to provide extra services + to the network and in return, receive a portion of the block reward + regularly. These services include: + </p><p align="justify"> + + <ul> + <li>Instant transactions (SwiftX)</li> + <li>A decentralized governance (Proposal Voting)</li> + <li>A decentralized budgeting system (Treasury)</li> + <li>Validation of transactions within each block</li> + <li>Act as an additional full node in the network</li> + </ul> + + </p><p align="justify"> + For providing such services, masternodes are also paid a certain portion + of reward for each block. This can serve as a passive income to the + masternode owners minus their running cost. + </p><p align="justify"> + + Masternode Perks: + </p><p align="justify"> + <ul> + <li>Participate in PIVX Governance</li> + <li>Earn Masternode Rewards</li> + <li>Commodity option for future sale</li> + <li>Help secure the PIVX network</li> + </ul> + </p><p align="justify"> + + Requirements: + </p><p align="justify"> + <ul> + <li>10,000 PIV per single Masternode instance</li> + <li>Must be stored in a core wallet</li> + <li>Need dedicated IP address</li> + <li>Masternode wallet to remain online</li> + </ul> + </p></body></html> + + +<html><head/><body><p align="justify"> +Un masternode est un ordinateur qui exécute un noeud complet du portefeuille PIVX core avec une +exigence de 10 000 PIV déposé en garantie pour fournir au réseau des services aditionnels et recevoir, en retour et régulièrement, une partie des récompense de blocs. +Ces services comprennent: +</p><p align="justify"> +<ul> +<li>des transactions instantanées (SwiftX)</li> +<li>une gouvernance décentralisée (vote des motions)</li> +<li>un système de budget décentralisé (financement)</li> +<li>validation des transactions dans chaque bloc</li> +<li>Agit comme un noeud supplémentaire pour sécuriser le réseau</li> +</ul> +</p><p align="justify"> +Pour fournir ces services, les masternodes sont payés avec une certaine portion des récompenses de chaque bloc. Cela permet de distribuer des revenus passifs aux propriétaires de masternodes déduction faite de leur frais d'opérations. +</p><p align="justify"> +Avantages du Masternode: +</p><p align="justify"> +<ul> +<li>Participer à la gouvernance de PIVX</li> +<li>Gagner les récompences prévues pour les masternodes</li> +<li>Option de marchandise pour vente future</li> +<li>Aider à sécuriser le réseau PIVX</li> +</ul> +</p><p align="justify"> + +Exigences: +</p><p align="justify"> +<ul> +<li>10 000 PIV pour chaque instance de masternode</li> +<li>Montant conservé dans un portefeuille core</li> +<li>Nécessite une IP fixe dédiée</li> +<li>Le portefeuille masternode doit rester en ligne</li> +</ul> +</p></body></html> + + + + 10 + 10 + + + What is a Master Node Controller? + Qu'est ce qu'un contrôleur de masternode? + + + <html><head/><body><p align="justify">A Masternode Controller wallet is where the 10,000 PIV collateral can reside during a Controller-Remote masternode setup. It is a wallet that can activate the remote masternode wallet/s and allows you to keep your collateral coins offline while the remote masternode remains online. </p></body></html> + <html><head/><body><p align="justify"> Un contrôleur de masternode est un portefeuille dans lequel le dépôt de garantie de 10 000 PIV réside pendant la configuration d'un masternode contrôleur-distant. C'est un portefeuille qui peut activer le portefeuille masternode distant et vous permet de conserver le dépôt de garantie hors ligne tandis que le masternode restera en ligne.</p></body></html> + + + Frequently Asked Questions + Foire Aux Questions + + + You can read more here + Vous pouvez en lire plus ici + + + Exit + Quitter + + + + SettingsInformationWidget + + Form + Formulaire + + + TextLabel + TextLabel + + + Network Monitor + Moniteur réseau + + + Information + Information + + + General + Général + + + Client Version: + Version du Client: + + + User Agent: + Agent Utilisateur: + + + Using BerkeleyDB version: + Utilisation de la version BerkeleyDB: + + + Datadir: + Datadir: + + + Startup Time: + Temps de démarrage: + + + Network + Réseau + + + Name: + Nom: + + + Number Connections: + Nombre de connections: + + + Blockchain + Blockchain + + + Current Number of Blocks: + Nombre actuel de blocs: + + + Last Block Time: + Dernier bloc + + + Memory Pool + Memory Pool + + + Current Number of Transactions: + Nombre actuel de transactions + + + Main + Principal + + + Wallet Conf + Conf portefeuille + + + Backups + Sauvegardes + + + No information + Aucune information + + + In: + Entrée: + + + Out: + Sortie: + + + + SettingsMainOptionsWidget + + Form + Formulaire + + + TextLabel + TextLabel + + + Window + Fenêtre + + + Customize the application window options + Personnaliser les options de la fenêtre de l'application + + + CheckBox + CheckBox + + + Reset to default + Réinitialiser les valeurs par défaut + + + Discard changes + Annuler les modifications + + + SAVE + SAUVEGARDER + + + Main + Principal + + + Size of database cache + Taille du cache de base de données + + + Number of script verification threads + Nombre de threads de vérification de script + + + Start PIVX on system login + Lancer PIVX à l'ouverture de la session + + + Minimize to the tray instead of the taskbar + Réduire dans la barre d'état au lieu de la barre des tâches + + + Minimize on close + Réduire sur fermeture + + + Reset Options + Réinitialiser les options + + + You are just about to reset the app's options to the default values. + +Are you sure? + + Vous êtes sur le point de réinitialiser les options à leur valeur par défaut. + +Confirmez-vous? + + + + Options reset succeed + Réinitialisation des options réussie + + + + SettingsMultisendDialog + + Form + Formulaire + + + Transaction Details + Détails de la transaction + + + TextLabel + TextLabel + + + CANCEL + ANNULER + + + SAVE + SAUVEGARDER + + + New recipient for multisend + Nouveau destinataire pour multisend + + + Label (optional) + Libellé (optionel) + + + Enter a label to add this address in your address book + Entrez un nom de libellé pour ajouter cette adresse dans votre carnet d'adresses + + + Percentage + Pourcentage + + + + SettingsMultisendWidget + + Form + Formulaire + + + TextLabel + TextLabel + + + No active Master Node yet + Pas encore de masternode actif + + + CheckBox + CheckBox + + + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. + MultiSend vous pernet d'envoyer automatiquement jusqu'à 100% des récompenses de stake et masternode matures vers une liste d'adresses PIVX de votre choix. + + + Active + Actif + + + Disable + Désactiver + + + No active recipient yet + Aucun destinataire actif + + + Send stakes + Envoyer les récompenses stakes + + + Send masternode rewards + Envoyer les récompenses masternode + + + ADD RECIPIENT + AJOUTER DESTINATAIRE + + + CLEAR ALL + TOUT EFFACER + + + Clear succeed + Effacement réussi + + + Clear all failed, could not locate address in wallet file + Effacement total a échoué, impossible de localiser l'adresse dans le fichier du portefeuille + + + The entered address: %1 is invalid. +Please check the address and try again. + L'adresse %1 entrée est invalide. +SVP vérifiez l'adresse et essayez à nouveau. + + + Invalid percentage, please enter values from 1 to 100. + Pourcentage incorrect, entrez une valeur entre 1 et 100. + + + The total amount of your MultiSend vector is over 100% of your stake reward + Le montant total de votre vecteur d'envoi multiple est supérieur à 100% de votre récompense Stake + + + Error saving MultiSend, failed saving properties to the database. + Erreur de sauvegarde MultiSend, échec de la sauvegarde des propriétés dans la base de données. + + + Unable to activate MultiSend, no available recipients + Impossible d'activer MultiSend, aucun destinataire disponible + + + Unable to activate MultiSend +Check one or both of the check boxes to send on stake and/or masternode rewards + Impossible d'activer MultiSend +Cochez l'une ou l'autre des cases à cocher pour envoyer les récompenses stake et/ou masternode + + + MultiSend activated but writing settings to DB failed + Envoi multiple activé mais les paramètres d'écriture en base de données ont échoué + + + MultiSend activated + Envoi multiple activé + + + First multiSend address invalid + Première adresse MultiSend invalide + + + MultiSend deactivated but writing settings to DB failed + Envoi multiple désactivé mais les paramètres d'écriture en base de données ont échoué + + + MultiSend deactivated + Envoi multiple désactivé + + + + SettingsSignMessageWidgets + + Form + Formulaire + + + TextLabel + TextLabel + + + PushButton + Bouton poussoir + + + Clear + Effacer + + + Sign/Verify Message + Signer/Vérifier un message + + + Enter a PIVX address or contact label + Entrez une adresse PIVX ou un nom de contact + + + Add address + Ajouter une adresse + + + Sign + Signer + + + Verify + Vérifier + + + Select mode + Sélectionnez le mode + + + Message + Message + + + Write a message + Écrire un message + + + Signature + Signature + + + SIGN + SIGNER + + + CLEAR ALL + TOUT EFFACER + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Vous pouvez signer des messages avec vos adresses pour prouver que vous les possédez. Veillez à ne rien signer d'imprécis, car des attaques de type phishing pourraient vous inciter à divulger votre identité. Ne signez que des déclarations détaillées que vous avez approuvé. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Entrez l'adresse de signature, le message (veillez à copier précisément les sauts de ligne, les espaces, les onglets, etc...) et la signature ci-dessous pour vérifier le message. Verifiez que vous ne lisez pas plus d'informations dans la signature que ce qui se trouve dans le message signé lui-même, afin d'éviter de se faire piéger par une attaque de type intermédiaire (tel que l'ajout d'informations à votre insu lors d'un copié/collé). + + + VERIFY + VÉRIFIER + + + The entered address is invalid. + L'adresse entrée est incorrecte. + + + Please check the address and try again. + Veuillez vérifier l'adresse et réessayer. + + + The entered address does not refer to a key. + L'adresse renseignée ne correspond pas à une clé. + + + Wallet unlock was cancelled. + Le déverrouillage du portefeuille a été annulé. + + + Private key for the entered address is not available. + La clé privée pour l'adresse entrée n'est pas valide. + + + Message signing failed. + La signature du message a échoué + + + Message signed. + Message signé. + + + The signature could not be decoded. + La signature ne peut pas être décodée. + + + Please check the signature and try again. + Merci de vérifier la signature et de ré-essayer. + + + The signature did not match the message digest. + La signature ne correspond pas au résumé du message. + + + Message verification failed. + La vérification du message a échoué. + + + Message verified. + Message vérifié. + + + No addresses available, you can go to the receive screen and add some there! + Aucune adresse enregistrée, vous pouvez aller dans l'écran de réception et en ajouter! + + + + SettingsWalletOptionsWidget + + Form + Formulaire + + + TextLabel + TextLabel + + + CheckBox + CheckBox + + + RadioButton + RadioBouton + + + Reset to default + Réinitialiser les valeurs par défaut + + + Discard changes + Annuler les modifications + + + PushButton + Bouton poussoir + + + Wallet + Portefeuille + + + Customize the internal wallet options + Personnaliser les options du portefeuille interne + + + Stake split threshold: + Seuil de partage du Stake + + + Spend unconfirmed change + Dépenser le change non confirmé + + + Network + Réseau + + + Customize the node network options + Personnaliser les options réseau du nÅ“ud + + + Proxy IP: + Proxy IP: + + + Enter proxy IP + Entrez l'IP du proxy + + + Port: + Port: + + + Map port using UPnP + Mapper le port avec UPnP + + + Allow incoming connections + Autoriser les connections entrantes + + + Connect through SOCKS5 proxy (default proxy): + Connexion via proxy SOCKS5 (proxy par défaut): + + + SAVE + SAUVEGARDER + + + Options reset succeed + Réinitialisation des optiosn réussie + + + + SettingsWalletRepairWidget + + Form + Formulaire + + + TextLabel + TextLabel + + + PushButton + Bouton poussoir + + + Wallet Repair + Réparation du portefeuille + + + The buttons below will restart the wallet with command-line options to repair this wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. + Les boutons ci-dessous relancent le portefeuille avec des options de ligne de commande pour réparer ce dernier, résoudre les problèmes de fichiers blockchain corrompus ou de transactions manquantes / obsolètes. + + + Attempt to recover private keys from a corrupt wallet.dat. + Tentative de récupération des clés privées à partir d'un wallet.dat corrompu. + + + Rescan the blockchain for missing wallet transactions. + Réanalyser la blockchain pour détecter les transactions de portefeuille manquantes. + + + Recover transactions from blockchain (keep-meta-data, e.g. account owner). + Récupère les transactions depuis la blockchain (conserve les méta-données, par exemple le propriétaire du compte). + + + Recover transactions from blockchain (drop meta-data). + Récupère les transactions depuis la blockchain (sans les méta-données) + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself) + Mettre à jour le portefeuille au format le plus récent lors du démarrage. (Note: ce n'est pas une mise à jour du portefeuille lui-même!) + + + Rebuild blockchain index from current blk000???.dat files. + Reconstruire l'index de la chaîne de blocs à partir des fichiers courants blk000 ??. + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Supprime tous les dossiers blockchain locaux afin que le portefeuille se synchronise à partir de zéro. + + + Salvage wallet + Portefeuille de récupération + + + Rescan blockchain file + Réanalysez les fichiers blockchain + + + Recover transactions 1 + Récupère les transactions 1 + + + Recover transactions 2 + récupérer transactions + + + Upgrade wallet format + Mettre à jour le format du portefeuille + + + Rebuild index + Reconstruire l'index + + + Delete local blockchain + Supprime le dossier local Blockchain + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Cela supprimera vos dossiers de blockchain locaux et le portefeuille synchronisera la Blockchain complète à partir de zéro. <br /> <br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Cela nécessite beaucoup de temps et télécharge beaucoup de données. <br /> <br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Vos transactions et vos fonds seront à nouveau visibles après que le téléchargement soit complet. <br /> <br/> + + + Do you want to continue?.<br /> + Voulez-vous continuer?.<br /> + + + Confirm resync Blockchain + Cornfirmer la resynchronisation Blockchain + + + + SettingsWidget + + Form + Formulaire + + + TextLabel + TextLabel + + + Wallet Data + Données portefeuille + + + Wallet + Portefeuille + + + Multisend + MultiSend + + + Tools + Outils + + + Sign/Verify Message + Signer/Vérifier un message + + + BIP38 Tool + Outil BIP38 + + + Options + Options + + + Main + Principal + + + Display + Afficher + + + Debug + Debug + + + Information + Information + + + Console + Console + + + Wallet Repair + Réparation du portefeuille + + + Help + Aide + + + FAQ + FAQ + + + About PIVX + A propos de PIVX + + + Settings + Paramètres + + + Confirm options reset + Confirmer la réinitialisation des options + + + Client restart required to activate changes. + Un redémarrage du client est requis pour activer les changements. + + + Client will be shutdown, do you want to proceed? + Le client va être éteint, voulez-vous procéder ? + + + Restart required + Redémarrage requis + + + Options stored + Options enregistrées + + + Options store failed + La banque d'options a échoué + + + Discard Unsaved Changes + Annuler les modifications non sauvegardées + + + You are just about to discard all of your unsaved options. + +Are you sure? + + Vous êtes sur le point de supprimer toutes les options non sauvegardées. + +Confirmez-vous ? + + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core est en cours de fermeture... + + + Do not shut down the computer until this window disappears. + N'arrêtez pas l'ordinateur tant que cette fenêtre n'a pas disparu. + + + + SnackBar + + Form + Formulaire + + + Contact Stored + Contacts enregistrés + + + + Splash + + Form + Formulaire + + + Loading… + Chargement... + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Version %1 + + + The Bitcoin Core developers + Les développeurs Bitcoin Core + + + The Dash Core developers + Les développeurs Dash Core + + + The PIVX Core developers + Les développeurs PIVX Core + + + [testnet] + [testnet] + + + + TooltipMenu + + Form + Formulaire + + + Copy + Copier + + + Edit + Modifier + + + Delete + Supprimer + + + + TopBar + + Form + Formulaire + + + 480.0685 PIV + 480.0685PIV + + + 1,000 zPIV + 1 000 zPIV + + + Available + Disponible + + + Pending + En attente + + + 6.943 PIV + 6.943 PIV + + + Immature + Immature + + + 10 PIV + 10 PIV + + + 60 zPIV + 60 zPIV + + + 10 zPIV + 10 zPIV + + + Wallet Unlocked for staking + Portefeuille déverrouillé pour le staking + + + Error generating address + Erreur lors de la génération de l'adresse + + + Address Copied + Adresse copiée + + + Automint enabled + Auto-monnayage activé + + + Automint disabled + Auto-monnayage désactivé + + + Staking active + Staking actif + + + Staking not active + Staking inactif + + + %n active connection(s) + %n connexion active%n connexions actives + + + Synchronized + Synchronisé + + + %n hour(s) + %n heure%n heures + + + %n day(s) + %n jour%n jours + + + %n week(s) + %n semaine%n semaines + + + %1 and %2 + %1 et %2 + + + %n year(s) + %n année%n années + + + + TrafficGraphWidget + + KB/s + Ko/s + + + + TransactionDesc + + Open for %n more block(s) + Ouvert pour %n bloc supplémentaireOuvert pour %n blocs supplémentaires + + + Open until %1 + Ouvrir jusqu'à %1 + + + conflicted + en conflit + + + %1/offline + %1/hors ligne + + + %1/unconfirmed + %1/non confirmé + + + %1 confirmations + %1 confirmations + + + %1/offline (verified via SwiftX) + %1/hors ligne (vérifié via SwiftX) + + + %1/confirmed (verified via SwiftX) + %1/confirmé (vérifié via SwiftX) + + + %1 confirmations (verified via SwiftX) + %1 confirmations (vérifié via SwiftX) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/hors ligne (Vérification SwiftX en cours - %2 de %3 signatures) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/confirmé (vérification SwiftX en cours - %2 sur %3 signatures) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 confirmations (Vérification SwiftX en cours - %2 de %3 signatures) + + + %1/offline (SwiftX verification failed) + %1/hors ligne (Vérification SwiftX échouée) + + + %1/confirmed (SwiftX verification failed) + %1/confirmé (vérification SwiftX a échoué) + + + Status + Statuts + + + , has not been successfully broadcast yet + , n'a pas encore été diffusé avec succès + + + , broadcast through %n node(s) + , transmission à travers %n noeud, transmission à travers %n noeuds + + + Date + Date + + + Source + Source + + + Generated + Généré + + + From + De + + + unknown + inconnu + + + To + À + + + own address + Adresse personnelle + + + watch-only + témoin seulement + + + label + label + + + Credit + Crédit + + + matures in %n more block(s) + mature dans %n bloc supplémentairemature dans %n blocs supplémentaires + + + not accepted + pas accepté + + + Debit + Débit + + + Total debit + Total débit + + + Total credit + Total crédit + + + Transaction fee + Frais de transaction + + + Net amount + Montant net + + + Message + Message + + + Comment + Commentaire + + + Transaction ID + ID de transaction + + + Output index + Index de sortie + + + Merchant + Marchand + + + Debug information + Information de débug + + + Transaction + Transaction + + + Inputs + Entrées + + + Amount + Montant + + + true + vrai + + + false + faux + + + + TransactionTableModel + + Date + Date + + + Type + Type + + + Address + Adresse + + + Open for %n more block(s) + Ouvert pour %n bloc supplémentaireOuvert pour %n blocs supplémentaires + + + Open until %1 + Ouvrir jusqu'à %1 + + + Offline + Hors ligne + + + Unconfirmed + Non confirmé + + + Confirming (%1 of %2 recommended confirmations) + Confirmation en cours (%1 de %2 confirmations requises) + + + Confirmed (%1 confirmations) + Confirmé (%1 confirmations) + + + Conflicted + En conflit + + + Immature (%1 confirmations, will be available after %2) + Immature (%1 confirmations, sera disponible après %2) + + + This block was not received by any other nodes and will probably not be accepted! + Ce bloc n'a été reçu par aucun autre noeud du réseau et sera probablement refusé! + + + Received with + Reçu avec + + + Masternode Reward + Récompense Matsernode + + + Received from + Reçu depuis + + + Received via Obfuscation + Reçu via Obfuscation + + + PIV Stake + PIV Stake + + + zPIV Stake + zPIV Stake + + + Obfuscation Denominate + Unités cryptées + + + Obfuscation Collateral Payment + Paiement collatéral crypté + + + Obfuscation Make Collateral Inputs + Le cryptage a généré des entrées collatérales + + + Obfuscation Create Denominations + Le cryptage créé des unités + + + Converted PIV to zPIV + PIV converti en zPIV + + + Spent zPIV + zPIV dépensés + + + Received PIV from zPIV + PIV reçu depuis zPIV + + + Minted Change as zPIV from zPIV Spend + Monnaie rendue à partir d'une dépense zPIV frappée comme zPIV + + + Converted zPIV to PIV + zPIV converti en PIV + + + Sent to + Envoyé à + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Bloc orphelin - Généré mais non accepté. Cela n'a pas d'impact sur vos avoirs. + + + Payment to yourself + Paiement à vous-même + + + Mined + Miné + + + Obfuscated + Obfusqué + + + watch-only + témoin seulement + + + Anonymous + Anonyme + + + No information + Aucune information + + + (n/a) + (n/a) + + + Transaction status. Hover over this field to show number of confirmations. + État de la transaction. Survolez le champ pour voir le nombre de transactions. + + + Date and time that the transaction was received. + Date et heure a laquelle la transaction fut reçue + + + Type of transaction. + Type de transaction. + + + Whether or not a watch-only address is involved in this transaction. + Si oui ou non une adresse témoin est impliquée dans cette transaction. + + + Destination address of transaction. + Adresse destinataire de la transaction. + + + Amount removed from or added to balance. + Montant retiré ou ajouté a la balance. + + + + TxDetailDialog + + Form + Formulaire + + + Transaction Details + Détails de la transaction + + + ID: + ID: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Sending to: + Envoyer à: + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + Total amount + Montant total + + + 2 PIV + 2 PIV + + + Coin inputs: + Entrées: + + + 1 Inputs + 1 Entrées + + + Previous Transaction + Transaction précédente + + + Output Index + Index de sortie + + + Fee: + Commission : + + + 0.0001 PIV + 0.0001 PIV + + + Change address: + Changer adresse: + + + D7VFR83SQbie…BhjcWJtcfip5krte2Z + D7VFR83SQbie…BhjcWJtcfip5krte2Z + + + Confirmations: + Confirmations: + + + 12 + 12 + + + Size: + Taille: + + + 2 kB + 2 kO + + + Date: + Date: + + + May 25, 2017 + 25 mai 2017 + + + Status: + Statut : + + + Spendable + Dépensable + + + TextLabel + TextLabel + + + CANCEL + ANNULER + + + OK + OK + + + Confirm Your Transaction + Confirmer votre transaction + + + SEND + ENVOYER + + + ID copied + ID copié + + + Unknown + Inconnu + + + + TxRow + + Form + Formulaire + + + Received from Bob + Reçu de Bob + + + 18/05/18 + 18/05/2018 + + + +0.000585 PIV + +0.000585 PIV + + + + WalletModel + + Send Coins + Envoyer des pièces + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftX ne supporte pas l'envoi de montants aussi élevés. Les transactions sont actuellement lmitées à %1 PIV. + + + + WalletPasswordDialog + + Dialog + Dialogue + + + TextLabel + TextLabel + + + PushButton + Bouton poussoir + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + ANNULER + + + OK + OK + + + + WelcomeContentWidget + + Dialog + Dialogue + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + Language + Langue + + + Welcome + Bienvenu + + + Privacy + Confidentialité + + + Masternodes + Masternodes + + + Select your language + Choisir votre langue + + + Welcome to +PIVX Core Wallet + Bienvenu au +Portefeuille PIVX Core + + + How PIVX respects your privacy? + Comment PIVX respecte votre vie privée? + + + What is a Masternode? + Qu'est-ce qu'un masternode? + + + default + défaut + + + + ZPivControlDialog + + Select zPIV to Spend + Choisir les zPIV à dépenser + + + Coin Control + Contrôle des pièces + + + PushButton + Bouton poussoir + + + zPiv + zPIV + + + 0.00 + 0.00 + + + Quantity: + Quantité : + + + Is Spendable + est dépensable + + + 0 + 0 + + + Select/Deselect All + Tout Sélectionner/Désélectionner + + + Select zPIV Denominations to Spend + Sélectionnez les dénominations zPIV à dépenser + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = conserve les métadonnées de transaction, par exemple le propriétaire du compte et les informations de demande de paiement, 2 = supprime les métadonnées) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Autoriser les connections JSON-RPC à partir de la source spécifiée. Valable pour <ip> comme une seule adresse IP (par exemple, 1.2.3.4), un réseau / masque de sous-réseau (par exemple, 1.2.3.4/255.255.255.0) ou un réseau / CIDR (par exemple, 1.2.3.4/24). Cette option peut être spécifiée plusieurs fois. + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Relier à des adresses spécifiques et toujours écouter dessus. Utilisez [host]:port pour IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Relier à des adresses spécifiques et ajouter à la liste blanche les pairs qui s'y connectent. Utilisez la notation [host]:port pour IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Relier à une adresse spécifique pour écouter les connections JSON-RPC. Utilisez la notation [host]:port pour IPv6. Cette option peut être spécifiée plusieurs fois (par défaut: liaison à toutes les interfaces) + + + Calculated accumulator checkpoint is not what is recorded by block index + Le point de contrôle de l'accumulateur qui a été calculé ne correspond pas à ce qui est enregistré par l'index de bloc + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Impossible de vérouiller le répertoire de données %s. PIVX Core est probablement déjà en cours d'exécution. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Modifier le comportement du vote budgétaire automatique. mode = auto: ne votez que pour une correspondance exacte avec votre budget généré. (chaîne, par défaut: auto) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Limiter continuellement les transactions gratuites à <n>* 1000 octets par minute (par défaut: %u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Créer les nouveaux fichiers avec les autorisations système par défaut, au lieu de umask 077 (efficace uniquement avec la fonctionnalité de portefeuille désactivée) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Supprimer toutes les transactions de portefeuille et ne récupérer ces parties de la blockchain que via -rescan au démarrage + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Supprimez toutes les dépenses de zerocoin et monnayez qui ont été enregistrées dans la base de données blockchain et réindexez-les (0-1, par défaut: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribué sous la licence du logiciel MIT, consultez le fichier d'accompagnement COPYING ou <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic Zerocoin minting from specific addresses (0-1, default: %u) + Activer la frappe automatique de monnaie à partir d’adresses spécifiques (0-1, par défaut: %u) + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Activer les sauvegardes automatiques de portefeuille déclenchées après chaque frappe zPIV (0-1, par défaut: %u) + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Active ou désactive la fonctionnalité de staking pour les entrées PIV (0-1, par défaut: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Active ou désactive la fonctionnalité de staking pour les entrées zPIV (0-1, par défaut: %u) + + + Enable spork administration functionality with the appropriate private key. + Activer la fonctionnalité d'administration de spork avec la clé privée appropriée. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Entrer dans le mode de test de régression, qui utilise une chaîne spéciale dans laquelle les blocs peuvent être résolus instantanément. + + + Error: Listening for incoming connections failed (listen returned error %s) + Erreur: L'écoute des connections entrantes a échoué (listen a renvoyé l'erreur %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Erreur: La transaction est plus grande que la taille maximum autorisée! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Erreur: Argument -socks non pris en charge. Le paramétrage de SOCKS n'est plus possible, seul les proxies SOCKS5 sont supportés. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Execute la commande quand une alerte pertinente est reçue ou que nous constatons un long fork dans la chaine (%s dans cmd est remplacé par un message) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Exécuter la commande quand une transaction de portefeuille change (%s dans cmd est remplacé par l'identifiant de transaction) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Exécuter la commande lorsque le meilleur bloc change (%s dans cmd est remplacé par le hash du bloc) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Les frais (en PIV / Kb) inférieurs à ceux-ci sont considérés comme des frais nuls pour le relais (par défaut: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Les frais (en PIV / Kb) inférieurs à cette valeur sont considérés comme des frais nuls pour la création de transaction (par défaut: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Vider l'activité de la base de données du pool de mémoire vers le journal du disque tous les <n>mégaoctets (par défaut: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Si paytxfee n'est pas défini, incluez suffisamment de frais pour que les transactions commencent la confirmation en moyenne dans les n blocs (par défaut: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + Dans ce mode, -genproclimit contrôle le nombre de blocs générés immédiatement. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Vos fonds confirmés sont insuffisants, attendez quelques minutes et essayez à nouveau. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Montant incorrect pour -maxtxfee=<amount>: '%s' (doit être au minimum de %s afin d'éviter que la transaction reste bloquée) + + + Keep the specified amount available for spending at all times (default: 0) + Garder le montant spécifié disponible pour la dépense en tous temps (défaut: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Journaliser la priorité des transactions et les frais par Ko lors de l'extraction de blocs (par défaut: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Maintenir un index de transaction complet, utilisé par l'appel rpc de getrawtransaction (par défaut: %u) + + + Maximum average size of an index occurrence in the block spam filter (default: %u) + L'index a atteint sa taille maximale dans le filtre de bloc spammé (défaut: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Taille maximale des données dans les transactions de support de données que nous transmettons et minons (par défaut: %u) + + + Maximum size of the list of indexes in the block spam filter (default: %u) + Taille maximale de la liste des index dans le filtre de bloc spammé (défaut: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Total des frais maximum à utiliser dans une même transaction, paramétrer une valeur trop basse peut empêcher des transactions importantes (défaut: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Nombre de secondes pendant lesquelles les pairs se conduisant mal ne peuvent pas se reconnecter (par défaut: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + L'Obfuscation utilise des montants libellés précis pour envoyer des fonds, vous devriez peut-être simplement anonymiser des pièces supplémentaires. + + + Output debugging information (default: %u, supplying <category> is optional) + Informations de débogage en sortie (par défaut: %u, fournir <category> est facultatif) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Requêter les adresses des pairs via la recherche DNS, si faible sur les adresses (par défaut: 1 sauf si -connect) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Définir aléatoirement les informations d'identification pour chaque connection proxy. Cela permet d'isoler le flux Tor (par défaut: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Exiger une priorité éleveée pour relayer des transactions gratuites ou à faible coût (par défaut: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + Envoyer des informations de trace/débogage à la console au lieu du fichier debug.log (par défaut: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Définir la taille maximale des transactions à priorité élevée / faible tarif en octets (par défaut: %d) + + + Set the number of included blocks to precompute per cycle. (minimum: %d) (maximum: %d) (default: %d) + Indiquez le nombre de blocs inclus à pré-calculer par cycle. (minimum: %d) (maximum: %d) (défaut: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Définir le nombre de threads de vérification de script (%u à %d, 0 = auto, <0 = laisse autant de cÅ“urs libres, par défaut: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Définir le nombre de threads pour la génération des pièces, si activé (-1 = tous les cÅ“urs, par défaut: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Affiche N confirmations pour une transaction correctement verrouillée (0-9999, par défaut: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Supporter le filtrage des blocs et des transactions avec des filtres de Bloom (par défaut: %u) + + + The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct + La base de donnée des blocs contient un bloc qui semble être venu du futur. C'est peut être à cause de la date et de l'heure qui ne sont pas configurés correctement sur votre ordinateur. Rechargez la base de donnée des blocs seulement si vous êtes certain que la date et l'heure de votre ordinateur est correcte. + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + Ce produit inclut un logiciel développé par OpenSSL Project pour être utilisé dans OpenSSL Toolkit <https://www.openssl.org/> et le logiciel de cryptographie écrit par Eric Young ainsi que le logiciel UPnP écrit par Thomas Bernard. + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + La longueur totale de la chaîne dans la version réseau (%i) dépasse la longueur maximale (%i). Réduisez le nombre ou la taille des commentaires de l'Agent Utilisateur + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Impossible de se lier à %s depuis cet ordinateur. PIVX Core est probablement déjà en cours d'exécution. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Incapable de localiser suffisamment de fonds non-dénommés pour l'Obfuscation de cette transaction. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Incapable de localiser suffisamment de fonds non-dénommés pour l'Obfuscation de cette transaction qui ne sont pas égaux à 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Impossible de grouper assez de fonds pour cette transaction qui n'est pas égale à 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Utilisez un proxy SOCKS5 séparé pour rejoindre les pairs via les services cachés Tor (par défaut: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Attention: -maxtxfee est très élevé! Ces frais importants pourraient être payés lors d'une seule transaction. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Attention: -paytxfee est réglé très haut! Ce sont les frais de transaction que vous paierez si vous envoyez une transaction. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Avertissement: Veuillez vérifier que la date et l'heure de votre ordinateur sont correctes! Si votre horloge est incorrecte, PIVX Core ne fonctionnera pas correctement. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Attention: le réseau ne semble pas totalement d'accord! Certains mineurs semblent avoir des problèmes. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Attention: Il semble que nous soyons en désaccord avec nos pairs sur le réseau! Cela signifie que vous pourriez avoir besoin de mettre à jour votre PIVX Core, ou que les autres noeuds aient besoin de se mettre à jour de leur côté. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Attention: erreur de lecture du fichier wallet.dat! Toutes les clés sont lues correctement, mais les données de transaction ou les entrées du carnet d'adresse pourraient être manquantes ou incorrectes. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Attention: wallet.dat corrompu, données récupérées! Le wallet.dat original est enregistré en tant que wallet.{timestamp}.bak in %s; Si votre solde ou vos transactions sont incorrects, vous devez restaurer à partir de votre sauvegarde. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Mettre en liste blanche les pairs se connectant à partir du masque de réseau ou de l'adresse IP donnés. Peut être spécifié plusieurs fois. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Les pairs inscrits sur la liste blanche ne peuvent pas être interdits par le DoS et leurs transactions sont toujours relayées, même si elles sont déjà dans le mempool, utile par exemple pour une passerelle + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + Vous devez spécifier une masternodeprivkey dans la configuration. Veuillez consulter la documentation pour obtenir de l'aide. + + + (51472 could be used only on mainnet) + (51472 ne peut être utilisé que pour le mainnet) + + + (default: %s) + (défaut: %s) + + + (default: 1) + (default: 1) + + + (must be 51472 for mainnet) + (doit être 51472 pour le mainnet) + + + Accept command line and JSON-RPC commands + Accepter les lignes de commandes et les commandes JSON-RPC + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Accepter les connections depuis l'extérieur (défaut: 1 si pas de -proxy ou -connect) + + + Accept public REST requests (default: %u) + Accepter les requêtes REST publiques (défaut: %u) + + + Add a node to connect to and attempt to keep the connection open + Ajouter un noeud pour se connecter avec et essayer de garder la connection ouverte. + + + Adding Wrapped Serials supply... + Ajout de numéros de série enveloppés ... + + + Allow DNS lookups for -addnode, -seednode and -connect + Autoriser les recherches DNS pour -addnode, -seednode et -connect + + + Always query for peer addresses via DNS lookup (default: %u) + Toujours rechercher les adresses des pairs via une recherche DNS (par défaut: %u) + + + Append comment to the user agent string + Ajouter un commentaire à la chaîne de l'Agent Utilisateur + + + Attempt to recover private keys from a corrupt wallet.dat + Essaye de restaurer les clés privées depuis un fichier wallet.dat corrompu + + + Automatically create Tor hidden service (default: %d) + Créer automatiquement un service Tor caché (défaut: %d) + + + Block creation options: + Options de création de bloc: + + + Calculating missing accumulators... + Calcul des accumulateurs manquants... + + + Cannot downgrade wallet + Ne peut pas rétrograder le portefeuille + + + Cannot resolve -bind address: '%s' + Impossible de résoudre l'adresse -bind: '%s' + + + Cannot resolve -externalip address: '%s' + Impossible de résoudre l'adresse -externalip: '%s' + + + Cannot resolve -whitebind address: '%s' + Impossible de résoudre l'adresse -whitebind: '%s' + + + CoinSpend: failed check + Dépense de coin: vérification échouée + + + Connect only to the specified node(s) + Se connecter uniquement au(x) noeud(s) spécifié(s) + + + Connect through SOCKS5 proxy + Connecter à travers un proxy SOCKS5 + + + Connect to a node to retrieve peer addresses, and disconnect + Se connecter à un noeud pour retrouver les adresses des pairs et se déconnecter ensuite + + + Connection options: + Options de connection: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i Les développeurs de Bitcoin Core + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i Les développeurs de DASH Core + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i Les développeurs de PIVX Core + + + Corrupted block database detected + Corruption des base de données de blocs détectée + + + Could not parse masternode.conf + Impossible d'analyser masternode.conf + + + Couldn't generate the accumulator witness + Impossible de générer le témoin accumulateur + + + Debugging/Testing options: + Options de déboguage/test: + + + Delete blockchain folders and resync from scratch + Supprimer les dossiers blockchain et resynchroniser à partir de zéro + + + Disable OS notifications for incoming transactions (default: %u) + Désactiver les notifications de l'OS pour les transcation entrantes (défaut: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Désactiver le mode sans échec , remplacer un événement en mode sans échec réel (par défaut: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Découvrir sa propre adresse IP (par défaut: 1 lorsqu'en écoute et sans -externalip) + + + Do not load the wallet and disable wallet RPC calls + Ne pas charger le portefeuille et désactiver les appels RPC + + + Do you want to rebuild the block database now? + Voulez-vous reconstruire la base de données des blocs maintenant ? + + + Done loading + Chargement effectué + + + Enable automatic Zerocoin minting (0-1, default: %u) + Activer la frappe automatique Zerocoin (0-1, par défaut: %u) + + + Enable precomputation of zPIV spends and stakes (0-1, default %u) + Autoriser le pré-calcul des ZPIV dépensés et stakés (0-1, défaut %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + Activer la publication du hash des transactions (vérouillées via SwiftX) dans <address> + + + Enable publish raw transaction (locked via SwiftX) in <address> + Activer la publication des transactions brut (vérouillées via SwiftX) dans <address> + + + Enable the client to act as a masternode (0-1, default: %u) + Activer le client pour agir en tant que Masternode (0-1, défaut: %u) + + + Error initializing block database + Erreur d'initialisation de la base de données des blocs + + + Error initializing wallet database environment %s! + Erreur lors de l'initialisation de l'environnement de base de données du portefeuille %s! + + + Error loading block database + Erreur de chargement de la base de données des blocs + + + Error loading wallet.dat + Erreur de chargement du fichier wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Erreur de chargement du fichier wallet.dat: Portefeuille corrompu + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Erreur de chargement du fichier wallet.dat: Le portefeuille nécessite une version plus récente du PIVX core + + + Error opening block database + Erreur d'ouverture de la base de données des blocs + + + Error reading from database, shutting down. + Erreur de lecture de la base de données, fermeture du programme. + + + Error writing zerocoinDB to disk + Erreur lors de l'écriture de zerocoinDB sur le disque + + + Error + Erreur + + + Error: A fatal internal error occured, see debug.log for details + Erreur: Une erreur interne fatale est survenue, voir debug.log pour plus de détails + + + Error: Disk space is low! + Erreur: Espace disque faible! + + + Error: Unsupported argument -tor found, use -onion. + Erreur: argument -tor non pris en charge, utilisez -onion. + + + Error: Wallet locked, unable to create transaction! + Erreur: Portefeuille vérouillé, impossible de créer une transaction! + + + Failed to calculate accumulator checkpoint + Échec du calcul du point de contrôle de l'accumulateur + + + Failed to listen on any port. Use -listen=0 if you want this. + Écoute impossible quelque soit le port. Utilisez -listen=0 si c'est cela que vous souhaitez. + + + Failed to parse host:port string + Impossible d'interprêter la chaine host:port + + + Failed to read block + Impossible de lire le bloc + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Frais (en PIV/kB) à ajouter aux transactions envoyées (défaut: %s) + + + Force safe mode (default: %u) + Forcer le mode sans échec (défaut: %u) + + + Generate coins (default: %u) + Générer des pièces (par défaut: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Nombre de blocs à vérifier au démarrage (défaut: %u, 0 = tous) + + + If <category> is not supplied, output all debugging information. + Si <category> n'est pas fourni, afficher toutes les informations de débogage. + + + Importing... + Importation... + + + Imports blocks from external blk000??.dat file + Importe les blocs à partir du fichier externe blk000??.dat + + + Include IP addresses in debug output (default: %u) + Inclure les adresses IP dans les informations de déboguage (par défaut: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + Bloc de genèse incorrect ou non trouvé. Peut-être un mauvais datadir pour le réseau ? + + + Information + Information + + + Initialization sanity check failed. PIVX Core is shutting down. + Échec de la vérification de l'initialisation. PIVX Core va fermer. + + + Insufficient funds + Fonds insuffisants + + + Insufficient funds. + Fonds insuffisants. + + + Invalid -onion address or hostname: '%s' + Adresse -onion ou hostname incorrect: '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + Montant incorrect pour -maxtxfee=<amount>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Montant incorrect pour -minrelaytxfee=:<amount> '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Montant incorrect pour -mintxfee=<amount>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Montant incorrect pour -paytxfee=<amount>: '%s' (doit être au mininum %s) + + + Invalid amount for -paytxfee=<amount>: '%s' + Montant incorrect pour -paytxfee=<amount>: '%s' + + + Invalid amount for -reservebalance=<amount> + Montant incorrect pour -reservebalance=<amount> + + + Invalid amount + Montant incorrect + + + Invalid masternodeprivkey. Please see documenation. + Masternodeprivkey incorrecte. Regardez la documentation SVP. + + + Invalid netmask specified in -whitelist: '%s' + Masque réseau incorrect spécifié dans -whitelist: '%s' + + + Invalid port detected in masternode.conf + Port invalide détecté dans masternode.conf + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Pourcentage de Zerocoin Auto-monnayé (1-100, par défaut: %u) + + + Recalculating PIV supply... + Recalcule de PIV émis + + + Recalculating minted ZPIV... + Recalcule des ZPIV générés + + + Recalculating spent ZPIV... + Recalcule des ZPIV dépensés + + + Reindex the PIV and zPIV money supply statistics + Recalculer les statistiques sur l'approvisionnement en PIV et zPIV + + + Reindexing zerocoin database... + Réindexation de la base de données zerocoin... + + + Reindexing zerocoin failed + La réindexation zerocoin a échoué + + + Selected coins value is less than payment target + La valeur des monnaies choisies est inférieure au montant projeté + + + Support the zerocoin light node protocol (default: %u) + Supporte les nÅ“uds légers en protocole zerocoin (défaut: %u) + + + SwiftX options: + Options SwiftX: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + Il s'agit d'une pré-version de test - à utiliser à vos risques et périls - ne pas utiliser pour le staking ni pour les applications marchandes! + + + mints deleted + + Monnayes supprimées + + + + mints updated, + Monnayes actualisé +, + + + unconfirmed transactions removed + + Transactions non confirmées supprimées + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Désactiver toutes les fonctionnalités spécifiques à PIVX (Masternodes, Zerocoin, SwiftX, Budgétisation) (0-1, défaut: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Activer SwiftX, montrer les confirmations pour les transactions vérouillées (booléen, défaut : %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Erreur: La transaction a été rejetée. Cela peut survenir si certaines pièces de votre portefeuille ont déjà été dépensées. Par exemple si vous avez utilisez une copie de wallet.dat et que les monnaies dépensées dans cette copie n'ont pas été marquées comme telles dans ce portefeuille. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + Erreur: Cette transaction requiert des frais minimum de %s en raison de son montant, sa complexité, ou de l'utilisation de fonds récemment reçus. + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + Erreur: argument -checklevel non pris en charge. Checklevel doit être de niveau 4. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + Exécute la commande lorsque le meilleur bloc change et que sa taille est finalisée (%s dans cmd est remplacé par le hash du bloc, %d avec la taille du bloc) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Impossible de trouver des pièces parmi celles détenues avec moins de maxNumber de dépenses + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + Dans quelques rares cas, une dépense de 7 monnaies dépasse la taille maximale autorisée pour une transation, SVP réessayez en choisissant 6 monnaies ou moins + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Dénomination préférée pour les Zerocoin Auto-monnayés (1/5/10/50/100/500/1000/5000), 0 pour aucune préférence. par défaut: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Spécifier un chemin de sauvegarde personnalisé pour y ajouter les sauvegardes automatiques zPIV. S'il est paramétré comme un dossier, chaque sauvegarde génère un fichier horodaté. S'il est paramétré comme fichier, chaque sauvegarde écrasera la précédente. Si le chemin de la sauvegarde est défini, il y aura 4 versions de sauvegardes + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Spécifier un chemin de sauvegarde personnalisé pour y ajouter les sauvegardes automatiques zPIV. S'il est paramétré comme un dossier, chaque sauvegarde génère un fichier horodaté. S'il est paramétré comme fichier, chaque sauvegarde écrasera la précédente. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftX requiert des entrées avec un minimum de 6 confirmations, attendez quelques minutes et réessayez. + + + <category> can be: + <category> peut être: + + + Attempt to force blockchain corruption recovery + Tenter de forcer la restauration d'une chaine de bloc corrompue + + + Cannot create public spend input + Impossible de créer une entrée de dépense publique + + + CoinSpend: Accumulator witness does not verify + CoinSpend: le témoin d'accumulateur ne vérifie pas + + + Display the stake modifier calculations in the debug.log file. + Afficher les calculs du modificateur de mise dans le fichier debug.log. + + + Display verbose coin stake messages in the debug.log file. + Afficher des messages détaillés dans le fichier debug.log. + + + Enable publish hash block in <address> + Activer la publication du bloc de hachage dans <address> + + + Enable publish hash transaction in <address> + Activer la publication d'une transaction de hachage dans <address> + + + Enable publish raw block in <address> + Activer la publication du bloc brut dans <address> + + + Enable publish raw transaction in <address> + Activer la publication des transactions brutes dans <address> + + + Enable staking functionality (0-1, default: %u) + Activer la fonctionnalité de staking (0-1, par défaut: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Erreur: Une erreur interne fatale est survenue, voir debug.log pour plus de détails + + + Error: No valid utxo! + Erreur: UTXO invalide! + + + Failed to create mint + Impossible de créer la monnayer + + + Failed to find Zerocoins in wallet.dat + Impossible de trouver un Zerocoin dans le portefeuille wallet.dat + + + Failed to parse public spend + Impossible d'analyser les dépenses publiques + + + Failed to select a zerocoin + Impossible de sélectionner un zerocoin + + + Failed to wipe zerocoinDB + Impossible de nettoyer zerocoinDB + + + Failed to write coin serial number into wallet + Impossible d'écrire le numéro de série de la monnaie dans le portefeuille + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Conserver au maximum <n> transactions non connectables en mémoire (par défaut: %u) + + + Limit size of signature cache to <n> entries (default: %u) + Limiter la taille du cache de signature à <n> entrées (par défaut: %u) + + + Line: %d + Ligne: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Écouter les connections JSON-PORT sur <port> (par défaut: %u ou testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Écouter les connections sur <port> (par défaut: %u ou testnet: %u) + + + Loading addresses... + Chargement des adresses... + + + Loading block index... + Chargement de l'index des blocs... + + + Loading budget cache... + Chargement du cache budget ... + + + Loading masternode cache... + Chargement du cache masternode... + + + Loading masternode payment cache... + Chargement du cache de paiement masternode ... + + + Loading sporks... + Chargement des sporks... + + + Loading wallet... (%3.2f %%) + Chargement du portefeuille... (%3.2f %%) + + + Loading wallet... + Chargement du portefeuille... + + + Location of the auth cookie (default: data dir) + Emplacement du cookie d'authentification (par défaut: répertoire de données) + + + Lock masternodes from masternode configuration file (default: %u) + Verrouiller les masternodes à partir du fichier de configuration masternode (par défaut: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Lookup(): adresse-proxy ou nom d'hôte non valide: '%s' + + + Maintain at most <n> connections to peers (default: %u) + Conserver au maximum <n> connections avec des pairs (par défaut: %u) + + + Masternode options: + Options Masternode: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Tampon de réception maximum par connection, * 1000 octets (par défaut: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Tampon d'envoi maximum par connection, <n>* 1000 octets (par défaut: %u) + + + Mint did not make it into blockchain + Monnayés ne pas fait entre dans la blockchain + + + Need to specify a port with -whitebind: '%s' + Nécessite de vérifier un port avec -whitebind: '%s' + + + Node relay options: + Options de relais de noeud: + + + Not enough file descriptors available. + Pas assez de descripteurs de fichiers disponibles. + + + Number of automatic wallet backups (default: 10) + Nombre de sauvegardes automatiques du portefeuille (par défaut: 10) + + + Number of custom location backups to retain (default: %d) + Nombre de sauvegardes à conserver (par défaut: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Accepter uniquement les points de contrôle conformes à la chaîne de blocs (par défaut: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Ne vous connectez qu'aux nÅ“uds du réseau <net> (ipv4, ipv6 ou onion) + + + Options: + Options: + + + Password for JSON-RPC connections + Mot de passe pour les connections JSON-RPC + + + Unable to find transaction containing mint %s + Impossible de trouver une transaction contenant le monnayage %s + + + Unable to find transaction containing mint, txHash: %s + Impossible de trouver une transaction contenant le monnayage, txHash: %s + + + Use block spam filter (default: %u) + Utilise le filtre de bloc spammé (défaut: %u) + + + could not get lock on cs_spendcache + ne peut pas être verrouillé sur cs_spendcache + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid(): adresses -proxy ou hostname invalides: '%s' + + + Preparing for resync... + Préparation à la resynchronistaion... + + + Prepend debug output with timestamp (default: %u) + Ajouter une sortie de débogage avec l'horodatage (par défaut: %u) + + + Print version and exit + Imprimer la version est quitter + + + Pubcoin not found in mint tx + Pubcoin introuvable dans la transaction + + + RPC server options: + Options serveur RPC: + + + Randomly drop 1 of every <n> network messages + Déposer aléatoirement 1 message tous les <n> messages du réseau + + + Randomly fuzz 1 of every <n> network messages + Couvrir aléatoirement 1 message tous les <n> messages du réseau + + + Rebuild block chain index from current blk000??.dat files + Reconstruire l'index de la chaîne de blocs à partir des fichiers blk000 ??.dat courants + + + Receive and display P2P network alerts (default: %u) + Recevoir et afficher des alertes réseau P2P (par défaut: %u) + + + Reindex the accumulator database + Réindexer la base de données des accumulateurs + + + Relay and mine data carrier transactions (default: %u) + Relayer et miner les transactions de support de données (par défaut: %u) + + + Relay non-P2SH multisig (default: %u) + Relayer les multisignatures non-P2SH (par défaut: %u) + + + Rescan the block chain for missing wallet transactions + Rescanner la chaîne de blocs pour retrouver les transactions manquantes dans le portefeuille + + + Rescanning... + Rescanning... + + + ResetMintZerocoin finished: + ResetMintZerocoin terminé: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin terminé: + + + Run a thread to flush wallet periodically (default: %u) + Exécuter un fil pour vider le portefeuille périodiquement (par défaut: %u) + + + Run in the background as a daemon and accept commands + Exécuter en arrière-plan en tant que démon et accepter les commandes + + + Send transactions as zero-fee transactions if possible (default: %u) + Envoyer des transaction sans frais si possible (défaut: %u) + + + Session timed out. + Session expirée! + + + Set database cache size in megabytes (%d to %d, default: %d) + Définir la taille duc ache de base de données en mégaoctets (%d à %d, défaut: %d) + + + Set external address:port to get to this masternode (example: %s) + Définir adresse:port pour accéder à ce masternode (exemple: %s) + + + Set key pool size to <n> (default: %u) + Définir la taille du pool de clés à <n> (par défaut: %u) + + + Set maximum block size in bytes (default: %d) + Définir la taille maximale du bloc en octets (par défaut: %d) + + + Set minimum block size in bytes (default: %u) + Définir la taille minimale du bloc en octets (par défaut: %u) + + + Set the Maximum reorg depth (default: %u) + Définir la profondeur de réorganisation maximale (par défaut: %u) + + + Set the masternode private key + Définir la clé privée masternode + + + Set the number of threads to service RPC calls (default: %d) + Définir le nombre de threads pour traiter les appels RPC (par défaut: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Définit l'indicateur DB_PRIVATE dans l'environnement db du portefeuille (défaut: %u) + + + Show all debugging options (usage: --help -help-debug) + Afficher toutes les options de déboguage (utilisation: -help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Réduire le fichier debug.log au démarrage du client (défaut: 1 quand pas de -debug) + + + Signing timed out. + Délai de signature expiré. + + + Signing transaction failed + Signature de transaction échouée + + + Specify configuration file (default: %s) + Spécifiez le fichier de configuration (par défaut: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Spécifiez le délai d'attente de connection en millisecondes (minimum: 1, par défaut: %d) + + + Specify data directory + Spécifiez le répertoire de données + + + Specify masternode configuration file (default: %s) + Spécifiez le fichier de configuration masternode (par défaut: %s) + + + Specify pid file (default: %s) + Spécifiez le fichier pid (par défaut: %s) + + + Specify wallet file (within data directory) + Spécifiez le fichier du portefeuille (dans le répertoire de données) + + + Specify your own public address + Indiquez votre propre adresse publique + + + Spend Valid + Dépenser Valide + + + Spend unconfirmed change when sending transactions (default: %u) + Dépenser la monnaie non confirmée lors de l'envoi de transactions (par défaut: %u) + + + Staking options: + Options de staking: + + + Stop running after importing blocks from disk (default: %u) + Arrêter l'exécution après l'importation des blocs du disque (défaut: %u) + + + Synchronization failed + Synchronisation échouée + + + Synchronization finished + Synchronisation terminée + + + Synchronization pending... + Synchronisation en attente... + + + Synchronizing budgets... + Synchronisation des budgets... + + + Synchronizing masternode winners... + Synchronisation des masternodes gagnants... + + + Synchronizing masternodes... + Synchronisation des masternodes... + + + Synchronizing sporks... + Synchronisation des sporks ... + + + Syncing zPIV wallet... + Synchronisation du portefeuille zPIV ... + + + The coin spend has been used + La dépense en pièces a été utilisée + + + The transaction did not verify + La transaction n'a pas été vérifiée + + + This help message + Ceci est un message d'aide + + + This is experimental software. + Ceci est un logiciel expérimental. + + + This is intended for regression testing tools and app development. + Ceci est destiné aux outils de test de régression et au développement d'applications. + + + Threshold for disconnecting misbehaving peers (default: %u) + Seuil pour déconnecter les pairs avec un comportement suspicieux (par défaut: %u) + + + Too many spends needed + Trop de dépenses nécessaires + + + Tor control port password (default: empty) + Mot de passe du port de contrôle Tor (par défaut: vide) + + + Tor control port to use if onion listening enabled (default: %s) + Port de contrôle à utiliser si l'écoute sur le réseau Tor est activée (par défaut: %s) + + + Transaction Created + Transaction créée + + + Transaction Mint Started + Monnayer de transaction démarrée + + + Transaction amount too small + Montant de la transaction trop faible + + + Transaction amounts must be positive + Le montant de la transaction doit être positif + + + Transaction too large for fee policy + Transaction trop importante pour la politique de frais + + + Transaction too large + Transaction trop importante + + + Trying to spend an already spent serial #, try again. + Le portefeuille essaye de dépenser un numéro de série déjà dépensé, réessayez. + + + Unable to bind to %s on this computer (bind returned error %s) + Impossible de joindre %s sur cet ordinateur (la liaison a retourné l'erreur %s) + + + Unable to sign spork message, wrong key? + Impossible de signer le message spork, la mauvaise clé ? + + + Unable to start HTTP server. See debug log for details. + Impossible de démarrer le serveur HTTP. Voir les détails dans le journal debug + + + Unknown network specified in -onlynet: '%s' + Le réseau spécifié dans -onlynet: '%s' est inconnu + + + Upgrade wallet to latest format + Mettre à jour le portefeuille au dernier format + + + Use UPnP to map the listening port (default: %u) + Utiliser UPnP pour mapper le port d'écoute (par défaut: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Utiliser UPnP pour mapper le port d'écoute (par défaut: 1 lorsqu'en écoute) + + + Use a custom max chain reorganization depth (default: %u) + Utiliser une profondeur de réorganisation de chaîne maximale personnalisée (par défaut: %u) + + + Use the test network + Utiliser le réseau test + + + User Agent comment (%s) contains unsafe characters. + Le commentaire de l'Agent Utilisateur (%s) contient des caractères non sécurisés. + + + Username for JSON-RPC connections + Nom d'utilisateur pour les connections JSON-RPC + + + Value is below the smallest available denomination (= 1) of zPIV + La valeur est inférieure à la plus petite dénomination disponible (= 1) de zPIV + + + Verifying blocks... + Vérification des blocs... + + + Verifying wallet... + Vérification du portefeuille... + + + Wallet needed to be rewritten: restart PIVX Core to complete + Le portefeuille doit être réécrit: redémarrez PIVX Core pour terminer + + + Wallet options: + Options du portefeuille: + + + Wallet window title + Titre de la fenêtre du portefeuille + + + Warning + Attention + + + Warning: This version is obsolete, upgrade required! + Attention: Cette version est obsolète, mise à niveau requise! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Avertissement: argument non pris en charge -benchmark ignoré, utilisez -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Avertissement: argument non pris en charge -debugnet ignoré, utilisez -debug=net. + + + You don't have enough Zerocoins in your wallet + Vous n'avez pas assez de Zerocoins dans votre portefeuille + + + You need to rebuild the database using -reindex to change -txindex + Vous devez reconstruire la base de données en utilisant -reindex pour modifier -txindex + + + Zapping all transactions from wallet... + Rayer toutes les transactions du portefeuille ... + + + ZeroMQ notification options: + ZeroMQ options de notification: + + + Zerocoin options: + Options Zerocoin: + + + on startup + au démarrage + + + wallet.dat corrupt, salvage failed + wallet.dat corrompu, le sauvetage a échoué + + + + send + + Form + Formulaire + + + Send + Envoyer + + + TextLabel + TextLabel + + + PushButton + Bouton poussoir + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_hi_IN.ts b/src/qt/locale/pivx_hi_IN.ts new file mode 100644 index 0000000..c81456a --- /dev/null +++ b/src/qt/locale/pivx_hi_IN.ts @@ -0,0 +1,421 @@ + + + AddNewAddressDialog + + Address + पता + + + + AddNewContactDialog + + + AddressBookPage + + Create a new address + नया पता बनाà¤à¤ + + + Choose the address to send coins to + सिकà¥à¤•à¥‹à¤‚ को भेजने के लिठपता चà¥à¤¨à¥‡à¤‚ + + + Choose the address to receive coins with + सिकà¥à¤•à¥‹à¤‚ को पà¥à¤°à¤¾à¤ªà¥à¤¤ करने के लिठपता चà¥à¤¨à¥‡à¤‚ + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + पहले इसà¥à¤¤à¥‡à¤®à¤¾à¤² किठगठपते को चà¥à¤¨à¥‡à¤‚ + + + + AddressLabelRow + + + AddressTableModel + + Label + लेबल + + + Address + पता + + + Date + मिति + + + + AddressesWidget + + + AskPassphraseDialog + + + BanTableModel + + + BlockExplorer + + Back + वापस + + + Forward + आगे + + + + CSRow + + + ClientModel + + + CoinControlDialog + + Quantity: + मातà¥à¤°à¤¾: + + + Fee: + फ़ीस: + + + Dust: + धूल: + + + Date + मिति + + + medium + मधà¥à¤¯à¤® + + + + CoinControlPivWidget + + Quantity: + मातà¥à¤°à¤¾: + + + Fee: + फ़ीस: + + + Label + लेबल + + + Address + पता + + + Date + मिति + + + Dust: + धूल: + + + + ColdStakingWidget + + + ContactDropdownRow + + + DashboardWidget + + Warning + चेतावनी + + + + DefaultDialog + + + DenomGenerationDialog + + + EditAddressDialog + + + ExpandableButton + + + FreespaceChecker + + + GovernancePage + + + HelpMessageDialog + + + Intro + + + LoadingDialog + + + LockUnlock + + + MNRow + + + MasterNodeWizardDialog + + Address + पता + + + + MasterNodesWidget + + + MnInfoDialog + + + MyAddressRow + + + NavMenuWidget + + + OpenURIDialog + + + OptionButton + + + OptionsDialog + + + PIVXGUI + + Warning + चेतावनी + + + Information + जानकारी + + + + PWidget + + + PaymentServer + + + PeerTableModel + + + PrivacyWidget + + + ProposalFrame + + + QObject + + + RPCConsole + + Yes + हाठ+ + + No + नहीं + + + + ReceiveDialog + + + ReceiveWidget + + + RecentRequestsTableModel + + Date + मिति + + + Label + लेबल + + + Message + संदेश + + + Address + पता + + + + RequestDialog + + Label + लेबल + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + + SendMultiRow + + + SendWidget + + + SettingsBackupWallet + + + SettingsBitToolWidget + + + SettingsConsoleWidget + + + SettingsDisplayOptionsWidget + + + SettingsFaqWidget + + + SettingsInformationWidget + + Information + जानकारी + + + + SettingsMainOptionsWidget + + + SettingsMultisendDialog + + + SettingsMultisendWidget + + + SettingsSignMessageWidgets + + Message + संदेश + + + Signature + हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° + + + + SettingsWalletOptionsWidget + + + SettingsWalletRepairWidget + + + SettingsWidget + + Information + जानकारी + + + + ShutdownWindow + + + SnackBar + + + Splash + + + SplashScreen + + + TooltipMenu + + + TopBar + + + TrafficGraphWidget + + + TransactionDesc + + Date + मिति + + + Message + संदेश + + + + TransactionTableModel + + Date + मिति + + + Address + पता + + + + TxDetailDialog + + Fee: + फ़ीस: + + + + TxRow + + + WalletModel + + + WalletPasswordDialog + + + WelcomeContentWidget + + + ZPivControlDialog + + Quantity: + मातà¥à¤°à¤¾: + + + + pivx-core + + Information + जानकारी + + + Warning + चेतावनी + + + + send + + \ No newline at end of file diff --git a/src/qt/locale/pivx_hr.ts b/src/qt/locale/pivx_hr.ts new file mode 100644 index 0000000..e01799f --- /dev/null +++ b/src/qt/locale/pivx_hr.ts @@ -0,0 +1,2719 @@ + + + AddNewAddressDialog + + My Address + Moja adresa + + + Address + Adresa + + + PushButton + PritisniTipku + + + CANCEL + PONIÅ TI + + + OK + U redu + + + + AddNewContactDialog + + TextLabel + TekstualnaOznaka + + + CANCEL + PONIÅ TI + + + OK + U redu + + + Edit Contact + Uredi Kontakt + + + Set a label for the selected address + Postavi oznaku za oznaÄenu adresu + + + Enter a name for the address (e.g Exchange) + Unesi ime za adresu (npr. MjenjaÄnica) + + + SAVE + SPREMI + + + Edit label for the selected address: +%1 + Uredi oznaku za oznaÄenu adresu: +%1 + + + + AddressBookPage + + Right-click to edit address or label + Desni klik za promjenu adrese ili oznake + + + Create a new address + Stvori novu adresu + + + &New + &Novo + + + Copy the currently selected address to the system clipboard + Kopiraj trenutno odabranu adresu u spremnik + + + &Copy + &Kopiraj + + + Delete the currently selected address from the list + IzbriÅ¡i trenutno odabranu adresu iz liste + + + &Delete + &IzbriÅ¡i + + + Export the data in the current tab to a file + Izvezi podatke iz trenutne kartice u datoteku + + + &Export + &Izvezi + + + C&lose + Z&atvori + + + Choose the address to send coins to + Izaberi adresu na koju poslati kovanice + + + Choose the address to receive coins with + Izaberi adresu na koju primiti kovanice + + + C&hoose + O&daberi + + + Sending addresses + Adrese za slanje + + + Receiving addresses + Adrese za primanje + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + To su vaÅ¡e PIVX adrese za slanje plaćanja. Uvijek provjerite iznos i adresu primatelja prije slanja novca. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + To su vaÅ¡e PIVX adrese za primanje uplata. PreporuÄa se upotreba nove adrese primanja za svaku transakciju. + + + &Copy Address + & Kopiraj adresu + + + Copy &Label + Kopiraj i oznaÄite + + + &Edit + &Uredi + + + Export Address List + Izvezi Popis Adresa + + + Comma separated file (*.csv) + Comma separated file (*.csv) + + + Exporting Failed + Izvoz Nije Uspio + + + There was an error trying to save the address list to %1. Please try again. + DoÅ¡lo je do pogreÅ¡ke prilikom spremanja popisa adresa na %1. Molim te pokuÅ¡aj ponovno. + + + + AddressLabelRow + + Form + Obrazac + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + AddressTableModel + + Label + Oznaka + + + Address + Adresa + + + Date + Datum + + + (no label) + (nema oznake) + + + + AddressesWidget + + Form + Obrazac + + + Send + PoÅ¡alji + + + TextLabel + TekstualnaOznaka + + + No active Master Node yet + JoÅ¡ nema aktivnih Master Nodeova + + + Contact name + Ime kontakta + + + Enter address + Unesi adresu + + + OK + U redu + + + Contacts + Kontakti + + + No contacts yet + JoÅ¡ nema kontakata + + + e.g. John Doe + npr. Ivan Ivić + + + Enter a PIVX address + Unesite PIVX adresu + + + SAVE + SPREMI + + + Invalid Contact Address + PogreÅ¡na adresa kontakta + + + Cannot store your own address as contact + Ne možete spremiti vlastitu adresu kao kontakt + + + Address already stored, label: %1 + Adresa je već spremljena, oznaka: %1 + + + New Contact Stored + Novi kontakt spremljen + + + Error Storing Contact + GreÅ¡ka pri spremanju kontakta + + + Contact edited + Kontakt izmijenjen. + + + Contact edit failed + Neuspjelo ureÄ‘ivanje kontakta + + + Delete Contact + IzbriÅ¡i kontakt + + + Contact Deleted + Kontakt izbrisan + + + Address copied + Adresa kopirana + + + + AskPassphraseDialog + + Passphrase Dialog + Dijalog zaporke + + + TextLabel + TekstualnaOznaka + + + PushButton + PritisniTipku + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Unesite novu lozinku u novÄanik.1 Koristite zaporku od 2 deset ili viÅ¡e znakova sluÄajnih znakova2 ili 3 osam ili viÅ¡e rijeÄi3. + + + Encrypt wallet + Å ifriranje novÄanika + + + This operation needs your wallet passphrase to unlock the wallet. + Za ovu operaciju potrebna je vaÅ¡a zaporka novÄanika za otkljuÄavanje novÄanika. + + + Unlock wallet + OtkljuÄaj novÄanik + + + This operation needs your wallet passphrase to decrypt the wallet. + Za ovu je operaciju potrebna vaÅ¡a zaporka novÄanika za deÅ¡ifriranje novÄanika + + + Decrypt wallet + DeÅ¡ifriranje novÄanika + + + Change passphrase + Izmjena zaporke + + + Enter the old and new passphrase to the wallet. + Unesite staru i novu zaporku u novÄanik. + + + Confirm wallet encryption + Potvrdite Å¡ifriranje novÄanika + + + ENCRYPT + Å IFRIRAJ + + + CANCEL + PONIÅ TI + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX se sada zatvara kako bi dovrÅ¡io proces Å¡ifriranja. Ne zaboravite da Å¡ifriranje vaÅ¡eg novÄanika ne može u potpunosti zaÅ¡tititi vaÅ¡e PIV od kraÄ‘e zlonamjernog softvera koji zarazi vaÅ¡e raÄunalo. + + + Are you sure you wish to encrypt your wallet? + Jeste li sigurni da želite Å¡ifrirati svoj novÄanik? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Upozorenje: Ako Å¡ifrirate svoj novÄanik i izgubite vaÅ¡u zaporku, vi ćete <b>IZGUBITI ĆE TE SAV VAÅ  PIV</b>! + + + Wallet encrypted + NovÄanik je Å¡ifriran + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + VAŽNO: Bilo kakve prethodne sigurnosne kopije koje ste napravili iz svoje datoteke lisnice trebale bi se zamijeniti novom generiÄkom, Å¡ifriranom datotekom novÄanika. Iz sigurnosnih razloga, prethodne sigurnosne kopije nekodirane datoteke novÄanika postat će beskorisne Äim poÄnete koristiti novu, Å¡ifriranu novÄanik. + + + Wallet encryption failed + Å ifriranje novÄanika nije uspjelo + + + OK + U redu + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Å ifriranje novÄanika nije uspjelo zbog unutarnje pogreÅ¡ke. VaÅ¡ novÄanik nije bio Å¡ifriran. + + + The supplied passphrases do not match. + IsporuÄene zaporke ne odgovaraju. + + + Wallet unlock failed + OtkljuÄavanje novÄanika nije uspjelo + + + The passphrase entered for the wallet decryption was incorrect. + Zaporka unesena za deÅ¡ifriranje novÄanika je netoÄna + + + Wallet decryption failed + DeÅ¡ifriranje novÄanika nije uspjelo + + + Wallet passphrase was successfully changed. + Zaporka za novÄanik je uspjeÅ¡no promijenjena. + + + Warning: The Caps Lock key is on! + Upozorenje: Caps Lock je ukljuÄen! + + + + BanTableModel + + + BlockExplorer + + Back + Povratak + + + Forward + Naprijed + + + Address / Block / Transaction + Adresa / Blok / Transakcija + + + Search + Traži + + + TextLabel + TekstualnaOznaka + + + + CSRow + + Form + Obrazac + + + + ClientModel + + + CoinControlDialog + + Quantity: + KoliÄina: + + + Bytes: + Bajtova: + + + Fee: + Naknada: + + + Coin Selection + Odabir novÄića + + + Dust: + SitniÅ¡: + + + Change: + Ostatak: + + + Tree mode + Stablo prikaz + + + List mode + Popis prikaz + + + (1 locked) + (1 zakljuÄan) + + + Amount + Iznos + + + Transaction Details + Detalji o transakciji + + + PushButton + PritisniTipku + + + 0.00 PIV + 0.00 PIV + + + 0 + 0 + + + Received with label + Primljeno s oznakom + + + Received with address + Primljeno s adresom + + + OK + U redu + + + Date + Datum + + + Confirmations + Potvrde + + + Confirmed + PotvrÄ‘eno + + + Copy address + Kopiraj adrese + + + Copy label + Kopiraj oznaku + + + Copy amount + Kopiraj iznos + + + Copy transaction ID + Kopiraj ID transakcije + + + Lock unspent + ZakljuÄaj neiskoriÅ¡teno + + + Unlock unspent + OtkljuÄaj neiskoriÅ¡teno + + + Copy quantity + Kopiraj koliÄinu + + + Copy fee + Kopiraj naknadu + + + Copy after fee + Kopiraj nakon naknade + + + Copy dust + Kopiraj sitniÅ¡: + + + Copy change + Kopiraj naknadu + + + Unselect all + OdznaÄi sve + + + highest + NajviÅ¡i + + + higher + viÅ¡i + + + high + visok + + + medium-high + srednje-visoki + + + medium + Srednji + + + low + nizak + + + lower + niži + + + lowest + najniži + + + yes + da + + + no + ne + + + This label turns red, if the transaction size is greater than 1000 bytes. + Ova oznaka postaje crvena ako je veliÄina transakcije veća od 1000 bajtova. + + + This label turns red, if the priority is smaller than "medium". + Ova oznaka postaje crvena ako je prioritet manji od "srednjeg". + + + This label turns red, if any recipient receives an amount smaller than %1. + Ova oznaka postaje crvena ako primatelj prima iznos manji od %1. + + + (no label) + (nema oznake) + + + (change) + (ostatak) + + + + CoinControlPivWidget + + Transaction Details + Detalji o transakciji + + + PushButton + PritisniTipku + + + TextLabel + TekstualnaOznaka + + + Quantity: + KoliÄina: + + + Fee: + Naknada: + + + Amount + Iznos + + + Label + Oznaka + + + Address + Adresa + + + Type + Tip + + + Date + Datum + + + Confirmations + Potvrde + + + Bytes: + Bajtova: + + + Dust: + SitniÅ¡: + + + Change: + Ostatak: + + + CANCEL + PONIÅ TI + + + OK + U redu + + + + ColdStakingWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + PushButton + PritisniTipku + + + No contacts available, you can go to the contacts screen and add some there! + Nema dostupnih kontakata, možete ići na ekran s kontaktima i dodati neke! + + + Address copied to clipboard + Adresa kopirana u meÄ‘uspremnik + + + Copy + Kopiraj + + + Edit + Uredi + + + Address copied + Adresa kopirana + + + Address label saved + Oznaka adrese spremljena + + + Error storing address label + GreÅ¡ka pri spremanju oznake + + + + ContactDropdownRow + + Form + Obrazac + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + DashboardWidget + + Form + Obrazac + + + Transactions + Transakcije + + + Warning + Upozorenje + + + No transactions + Nema transakcija + + + PushButton + PritisniTipku + + + TextLabel + TekstualnaOznaka + + + PIV + PIV + + + zPIV + zPIV + + + Sort by + Sortiraj po + + + Days + Dani + + + Months + Mjeseci + + + Years + Godine + + + Filter by + Filtriraj po + + + LabelText + TekstOznake + + + All + Sve + + + Sent + Poslano + + + Mined + Izrudareno + + + MN reward + MN nagrade + + + No transactions yet + JoÅ¡ nema transakcija + + + How to get PIV or zPIV + Kako dobiti PIV ili zPIV + + + Loading chart.. + UÄitavanje dijagrama... + + + Error loading chart: %1 + GreÅ¡ka pri uÄitavanju dijagrama: %1 + + + + DefaultDialog + + Form + Obrazac + + + Transaction Details + Detalji o transakciji + + + Text Label + Tekst oznake + + + CANCEL + PONIÅ TI + + + SAVE + SPREMI + + + + DenomGenerationDialog + + Form + Obrazac + + + Transaction Details + Detalji o transakciji + + + PushButton + PritisniTipku + + + 5000 + 5000 + + + 100 + 100 + + + 10 + 10 + + + 1000 + 1000 + + + 50 + 50 + + + 500 + 500 + + + 5 + 5 + + + 1 + 1 + + + Select All + OznaÄi sve + + + CANCEL + PONIÅ TI + + + SAVE + SPREMI + + + + EditAddressDialog + + Edit Address + Uredi adresu + + + &Label + &Oznaka + + + &Address + &Adresa + + + New receiving address + Nova adresa za primanje + + + New sending address + Nova adresa za slanje + + + Edit receiving address + Uredi adresu za primanje + + + Edit sending address + Uredi adresu za slanje + + + Could not unlock wallet. + Ne mogu otkljuÄati novÄanik. + + + + ExpandableButton + + Form + Obrazac + + + + FreespaceChecker + + name + ime + + + + GovernancePage + + Form + Obrazac + + + GOVERNANCE + GLASOVANJE + + + Next super block: + Sljedeći super blok: + + + 0 + 0 + + + Days to budget payout (estimate): + Preostalo dana do isplate (procjena): + + + Allotted budget: + Raspodijeljeno budžeta: + + + Budget left: + Preostalo budžeta: + + + Masternodes count: + Broj masternodeova: + + + + HelpMessageDialog + + PIVX Core + PIVX Core + + + About PIVX Core + O PIVX Core-u + + + Usage: + KoriÅ¡tenje: + + + OK + U redu + + + + Intro + + Welcome + DobrodoÅ¡li + + + Welcome to PIVX Core. + DobrodoÅ¡li u PIVX Core. + + + CANCEL + PONIÅ TI + + + OK + U redu + + + PIVX Core + PIVX Core + + + Error + GreÅ¡ka + + + + LoadingDialog + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + . + . + + + + LockUnlock + + Form + Obrazac + + + + MNRow + + Form + Obrazac + + + Address: 88.26.164.88:51474 + Adresa: 88.26.164.88:51474 + + + + MasterNodeWizardDialog + + 1 + 1 + + + Name + Ime + + + Address + Adresa + + + Enter IP address + Unesi IP adresu + + + CANCEL + PONIÅ TI + + + OK + U redu + + + e.g user_masternode + npr. masternode_korisnik + + + address label cannot be empty + oznaka adrese ne može biti prazna + + + Prepare master node failed.. + Priprema masternodea neuspjela... + + + Invalid masternode.conf file + Neispravna masternode.conf datoteka + + + masternode.conf file doesn't exists + masternode.conf datoteka ne postoji + + + The amount to pay must be larger than 0. + Iznos koji plaćate mora biti veći od 0. + + + The amount exceeds your balance. + Iznos premaÅ¡uje vaÅ¡ saldo. + + + Error: The wallet was unlocked only to anonymize coins. + GreÅ¡ka. NovÄanik je otkljuÄan jedino za anonimizaciju novÄića. + + + + MasterNodesWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + No active Master Node yet + JoÅ¡ nema aktivnih Master Nodeova + + + PushButton + PritisniTipku + + + Delete + IzbriÅ¡i + + + Invalid masternode.conf file + Neispravna masternode.conf datoteka + + + masternode.conf file doesn't exists + masternode.conf datoteka ne postoji + + + + MnInfoDialog + + Form + Obrazac + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Address: + Adresa: + + + 127.0.0.2:43223 + 127.0.0.2:43223 + + + + MyAddressRow + + Form + Obrazac + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + NavMenuWidget + + Form + Obrazac + + + V 1.0.0 + V 1.0.0 + + + + OpenURIDialog + + TextLabel + TekstualnaOznaka + + + CANCEL + PONIÅ TI + + + OK + U redu + + + + OptionButton + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + + OptionsDialog + + Options + Opcije + + + MB + MB + + + W&allet + N&ovÄanik + + + Expert + StruÄnjak + + + Automatically start PIVX after logging in to the system. + Automatski pokreni PIVX nakon ulogiravanja u raÄunalo. + + + &Network + &Mreža + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP adresa poslužitelja (npr. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Window + &Prozor + + + Unit to show amounts in: + Jedinica za prikaz iznosa u: + + + Decimal digits + Decimalne znamenke + + + &OK + &U redu + + + &Cancel + &PoniÅ¡ti + + + Confirm options reset + Potvrdi mogućnosti resetiranja + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + NovÄanik + + + Node + ÄŒvor + + + &Show / Hide + &Prikaži / Sakrij + + + Show or hide the main Window + Prikaži ili sakrij glavni prozor + + + E&xit + E&Izlaz + + + Quit application + Napusti aplikaciju + + + PIVX Core client + PIVX Core klijent + + + Error + GreÅ¡ka + + + Warning + Upozorenje + + + Information + Informacija + + + Sent transaction + Poslana transakcija + + + Incoming transaction + Nadolazeća tranksakcija + + + + PWidget + + + PaymentServer + + Payment request error + GreÅ¡ka pri zahtjevu za plaćanjem + + + Payment request has expired. + Zahtjev za plaćanje je istekao. + + + Payment request is not initialized. + Zahtjev za plaćanje nije zapoÄet. + + + Requested payment amount of %1 is too small (considered dust). + Zatraženi iznos plaćanja od %1 je premali (smatra se presitnim). + + + + PeerTableModel + + Version + InaÄica + + + + PrivacyWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + PushButton + PritisniTipku + + + No active Master Node yet + JoÅ¡ nema aktivnih Master Nodeova + + + No transactions yet + JoÅ¡ nema transakcija + + + + ProposalFrame + + + QObject + + Amount + Iznos + + + Enter a PIVX address (e.g. %1) + Unesi PIVX adresu (npr. %1) + + + NETWORK + MREŽA + + + N/A + N/A + + + PIVX Core + PIVX Core + + + + RPCConsole + + &Information + &Informacije + + + Name + Ime + + + N/A + N/A + + + &Open + &Otvori + + + Network + Mreža + + + Client version + Verzija klijenta + + + Sent + Poslano + + + Version + InaÄica + + + Salvage wallet + NovÄanik za spaÅ¡avanje + + + Recover transactions 1 + Oporavak transakcija 1 + + + Recover transactions 2 + Oporavak transakcija 2 + + + Wallet repair options. + Opcije popravka novÄanika. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Ažurirajte novÄanik na posljednju verziju pri pokretanju. (Važno: ovo NIJE automatsko ažuriranje novÄanika!) + + + Confirm resync Blockchain + Potvrdi ponovnu sinkronizaciju Blockchaina + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + via %1 + via %1 + + + + ReceiveDialog + + Transaction Details + Detalji o transakciji + + + PushButton + PritisniTipku + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + PONIÅ TI + + + OK + U redu + + + + ReceiveWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + No address + Nema adrese + + + Add Label + Dodaj oznaku + + + Copy + Kopiraj + + + No address + Nema adrese + + + Error generating address + GreÅ¡ka pri stvaranju adrese + + + Change Label + Promjeni oznaku + + + Edit Address Label + Uredi oznaku adrese + + + Address label saved + Oznaka adrese spremljena + + + Error storing address label + GreÅ¡ka pri spremanju oznake + + + New address created + Nova adresa stvorena + + + Address copied + Adresa kopirana + + + Address copied to clipboard + Adresa kopirana u meÄ‘uspremnik + + + + RecentRequestsTableModel + + Date + Datum + + + Label + Oznaka + + + Message + Poruka + + + Address + Adresa + + + Amount + Iznos + + + (no label) + (nema oznake) + + + (no message) + (nema poruke) + + + (no amount) + (nema iznosa) + + + + RequestDialog + + New Request Payment + Novi zahtjev za plaćanje + + + Amount + Iznos + + + PIV + PIV + + + TextLabel + TekstualnaOznaka + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + COPY ADDRESS + KOPIRAJ ADRESU + + + CANCEL + PONIÅ TI + + + REQUEST + ZATRAŽI + + + Label + Oznaka + + + Enter a label to be saved within the address + Unesi oznaku da bude spremljena meÄ‘ju adrese + + + Add description + Dodaj opis + + + Error + GreÅ¡ka + + + + SendChangeAddressDialog + + Transaction Details + Detalji o transakciji + + + PushButton + PritisniTipku + + + CANCEL + PONIÅ TI + + + OK + U redu + + + + SendCustomFeeDialog + + Form + Obrazac + + + Transaction Details + Detalji o transakciji + + + 0.00 KB + 0.00 KB + + + CANCEL + PONIÅ TI + + + OK + U redu + + + SAVE + SPREMI + + + + SendMultiRow + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + Add address + Dodaj adresu + + + Add description + Dodaj opis + + + + SendWidget + + Send + PoÅ¡alji + + + Enter a PIVX address or contact label + Unesite PIVX adresu ili oznaku kontakta + + + Amount + Iznos + + + Clear all + OÄisti sve + + + Add recipient + Dodaj primatelja + + + Cannot send, wallet locked + Ne mogu poslati, novÄanik je zakljuÄan + + + No contacts available, you can go to the contacts screen and add some there! + Nema dostupnih kontakata, možete ići na ekran s kontaktima i dodati neke! + + + Invalid address + Neispravna adresa + + + Cannot store your own address as contact + Ne možete spremiti vlastitu adresu kao kontakt + + + New Contact Stored + Novi kontakt spremljen + + + Error Storing Contact + GreÅ¡ka pri spremanju kontakta + + + + SettingsBackupWallet + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + PushButton + PritisniTipku + + + Backup Wallet + Pohrani novÄanik + + + Backup + Sigurnosna kopija + + + Backup Wallet + Pohrani novÄanik + + + Backup created + Sigurnosna kopija stvorena. + + + Backup creation failed + Stvaranje sigurnosna kopije neuspjelo. + + + + SettingsBitToolWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + PushButton + PritisniTipku + + + Import Address + Uvezi adresu + + + BIP38 Tool + BIP38 alat + + + Decrypted Address + DeÅ¡ifriraj adresu + + + Enter a PIVX address + Unesite PIVX adresu + + + Add address + Dodaj adresu + + + ENCRYPT + Å IFRIRAJ + + + The entered passphrase is invalid. + Unesena Å¡ifra nije ispravna. + + + Allowed: 0-9,a-z,A-Z, + Dozvoljeno: 0-9,a-z,A-Z, + + + The entered address is invalid. + Unesena adresa nije ispravna. + + + Please check the address and try again. + Molimo da provjerite adresu i probajte isponova + + + The entered address does not refer to a key. + Unesena adresa ne odnosi se na kljuÄ. + + + Wallet unlock was cancelled. + OtkluÄavanje novÄanika ukinuto + + + Private key for the entered address is not available. + Privatni kljuÄ za unesenu adresu nije dostupan. + + + Address encrypted. + Adresa deÅ¡ifrirana. + + + Failed to decrypt. + Nije uspjelo deÅ¡ifriranje. + + + Please check the key and passphrase and try again. + Molimo vas provjerite kljuÄ i zaporku i pokuÅ¡ajte ponovo. + + + Data Not Valid. + Podaci nisu važeći. + + + Please try again. + Moli te ponovi + + + Please wait while key is imported + PriÄekajte dok se kljuÄevi importiraju + + + + SettingsConsoleWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + + SettingsDisplayOptionsWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + PushButton + PritisniTipku + + + Discard changes + Odbaci promjene + + + Display + Prikaz + + + Decimal digits + Decimalne znamenke + + + SAVE + SPREMI + + + + SettingsFaqWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + PushButton + PritisniTipku + + + 1 + 1 + + + 5 + 5 + + + 10 + 10 + + + + SettingsInformationWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + Information + Informacija + + + Network + Mreža + + + Backups + Sigurnosne kopije + + + No information + Nema informacija + + + + SettingsMainOptionsWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + Discard changes + Odbaci promjene + + + SAVE + SPREMI + + + + SettingsMultisendDialog + + Form + Obrazac + + + Transaction Details + Detalji o transakciji + + + TextLabel + TekstualnaOznaka + + + CANCEL + PONIÅ TI + + + SAVE + SPREMI + + + Label (optional) + Oznaka (neobavezno) + + + + SettingsMultisendWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + No active Master Node yet + JoÅ¡ nema aktivnih Master Nodeova + + + Active + Aktivan + + + ADD RECIPIENT + DODAJ PRIMATELJA + + + + SettingsSignMessageWidgets + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + PushButton + PritisniTipku + + + Enter a PIVX address or contact label + Unesite PIVX adresu ili oznaku kontakta + + + Add address + Dodaj adresu + + + Message + Poruka + + + The entered address is invalid. + Unesena adresa nije ispravna. + + + Please check the address and try again. + Molimo da provjerite adresu i probajte isponova + + + The entered address does not refer to a key. + Unesena adresa ne odnosi se na kljuÄ. + + + Wallet unlock was cancelled. + OtkljuÄavanje novÄanika je poniÅ¡teno. + + + Private key for the entered address is not available. + Privatni kljuÄ za unesenu adresu nije dostupan. + + + Message signing failed. + Potpisivanje poruke neuspjelo. + + + Message signed. + Poruka potpisana. + + + The signature could not be decoded. + Potpis ne može biti dekodiran. + + + Message verification failed. + Ovjera poruke neuspjela. + + + Message verified. + Poruka verificirana. + + + + SettingsWalletOptionsWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + Discard changes + Odbaci promjene + + + PushButton + PritisniTipku + + + Wallet + NovÄanik + + + Network + Mreža + + + SAVE + SPREMI + + + + SettingsWalletRepairWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + PushButton + PritisniTipku + + + Salvage wallet + NovÄanik za spaÅ¡avanje + + + Rescan blockchain file + Preskeniraj blockchain datoteku + + + Recover transactions 1 + Oporavak transakcija 1 + + + Recover transactions 2 + Oporavak transakcija 2 + + + Delete local blockchain + ObriÅ¡i lokalni blockchain + + + Confirm resync Blockchain + Potvrdi ponovnu sinkronizaciju Blockchaina + + + + SettingsWidget + + Form + Obrazac + + + TextLabel + TekstualnaOznaka + + + Wallet Data + Podaci novÄanika + + + Wallet + NovÄanik + + + BIP38 Tool + BIP38 alat + + + Options + Opcije + + + Display + Prikaz + + + Information + Informacija + + + Help + Pomoć + + + FAQ + ÄŒesto postavljena pitanja + + + About PIVX + O PIVX-u + + + Settings + Postavke + + + Confirm options reset + Potvrdi mogućnosti resetiranja + + + Options stored + Postavke spremljene + + + Options store failed + Neuspjelo spremanje postavki + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core se gasi... + + + + SnackBar + + Form + Obrazac + + + Contact Stored + Kontrakt spremljen + + + + Splash + + Form + Obrazac + + + Loading… + UÄitavanje... + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Verzija %1 + + + The Bitcoin Core developers + Bitcoin Core developeri + + + The Dash Core developers + Dash Core developeri + + + The PIVX Core developers + PIVX Core developeri + + + [testnet] + [testnet] + + + + TooltipMenu + + Form + Obrazac + + + Copy + Kopiraj + + + Edit + Uredi + + + Delete + IzbriÅ¡i + + + + TopBar + + Form + Obrazac + + + 480.0685 PIV + 480.0685 PIV + + + 1,000 zPIV + 1,000 zPIV + + + Available + Dostupno + + + 6.943 PIV + 6.943 PIV + + + 10 PIV + 10 PIV + + + 60 zPIV + 60 zPIV + + + 10 zPIV + 10 zPIV + + + Error generating address + GreÅ¡ka pri stvaranju adrese + + + Address Copied + Adresa kopirana + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Status + Status + + + Date + Datum + + + Source + Izvor + + + label + oznaka + + + Credit + Kredit + + + Total credit + Ukupni kredit + + + Message + Poruka + + + Amount + Iznos + + + + TransactionTableModel + + Date + Datum + + + Type + Tip + + + Address + Adresa + + + Mined + Izrudareno + + + No information + Nema informacija + + + (n/a) + (n/a) + + + Type of transaction. + Tip transakcije. + + + + TxDetailDialog + + Form + Obrazac + + + Transaction Details + Detalji o transakciji + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + Fee: + Naknada: + + + 0.0001 PIV + 0.0001 PIV + + + TextLabel + TekstualnaOznaka + + + CANCEL + PONIÅ TI + + + OK + U redu + + + + TxRow + + Form + Obrazac + + + +0.000585 PIV + +0.000585 PIV + + + + WalletModel + + + WalletPasswordDialog + + TextLabel + TekstualnaOznaka + + + PushButton + PritisniTipku + + + CANCEL + PONIÅ TI + + + OK + U redu + + + + WelcomeContentWidget + + 1 + 1 + + + Welcome + DobrodoÅ¡li + + + + ZPivControlDialog + + PushButton + PritisniTipku + + + 0.00 + 0.00 + + + Quantity: + KoliÄina: + + + 0 + 0 + + + + pivx-core + + Discover own IP address (default: 1 when listening and no -externalip) + Otkrij svoju IP adresu (zadano: 1 kada sluÅ¡a i nema -externalip) + + + Error + GreÅ¡ka + + + Information + Informacija + + + Insufficient funds. + Nedovoljno sredstava. + + + Recalculating PIV supply... + PreraÄunavanje ponude PIV-a... + + + Loading addresses... + UÄitavanje adresa... + + + Loading budget cache... + UÄitavanje predmemorije budžeta... + + + Loading masternode cache... + UÄitavanje masternode predmemorije... + + + Loading wallet... (%3.2f %%) + UÄitavanje novÄanika... (%3.2f %%) + + + Loading wallet... + UÄitavanje novÄanika... + + + Number of automatic wallet backups (default: 10) + Broj automatskih sigurnosnih kopija novÄanika (zadano: 10) + + + Options: + Mogućnosti: + + + Preparing for resync... + Pripremanje za resinkronizaciju... + + + Rescanning... + Preskeniranje... + + + Specify your own public address + Odredi svoju vlastitu javnu adresu + + + Synchronization failed + Sinkronizacija neuspjela + + + Synchronization finished + UsklaÄ‘ivanje zavrÅ¡eno + + + Synchronization pending... + Sinkronizacija je na Äekanju... + + + Synchronizing budgets... + UsklaÄ‘ivanje proraÄuna... + + + This is experimental software. + Ovo je eksperimentalan softver. + + + Transaction Created + Transakcija stvorena + + + Transaction too large for fee policy + Transakcija je prevelika za trenutnu naknadu + + + Transaction too large + Transakcija je prevelika + + + Use the test network + Koristi testnu mrežu + + + Verifying blocks... + Provjera blokova... + + + Verifying wallet... + Provjera novÄanika... + + + Wallet options: + Opcije novÄanika: + + + Warning + Upozorenje + + + Zerocoin options: + Zerocoin opcije: + + + + send + + Form + Obrazac + + + Send + PoÅ¡alji + + + TextLabel + TekstualnaOznaka + + + PushButton + PritisniTipku + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_hr_HR.ts b/src/qt/locale/pivx_hr_HR.ts new file mode 100644 index 0000000..2ab8a21 --- /dev/null +++ b/src/qt/locale/pivx_hr_HR.ts @@ -0,0 +1,4196 @@ + + + AddNewAddressDialog + + Address + Adresa + + + + AddNewContactDialog + + TextLabel + TextLabel + + + + AddressBookPage + + Right-click to edit address or label + Desnom tipkom miÅ¡a kliknite za ureÄ‘ivanje adrese ili oznake + + + Create a new address + Stvori novu adresu + + + &New + Novo + + + Copy the currently selected address to the system clipboard + Kopirajte trenutno odabranu adresu u meÄ‘uspremnik sustava + + + &Copy + Kopiraj + + + Delete the currently selected address from the list + Izbrisati trenutno odabranu adresu s popisa + + + &Delete + IzbriÅ¡i + + + Export the data in the current tab to a file + Izvoz podataka iz trenutne kartice u datoteku + + + &Export + Izvoz + + + C&lose + Zatvori + + + Choose the address to send coins to + Odaberite adresu za slanje novÄića + + + Choose the address to receive coins with + Odaberite adresu za primanje novÄića + + + C&hoose + Odaberi + + + Sending addresses + Adresa primatelja + + + Receiving addresses + Adresa primatelja + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + To su vaÅ¡e PIVX adrese za slanje plaćanja. Uvijek provjerite iznos i adresu primatelja prije slanja novca. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + To su vaÅ¡e PIVX adrese za primanje uplata. PreporuÄa se upotreba nove adrese primatelja za svaku transakciju. + + + &Copy Address + Kopiraj adresu + + + Copy &Label + Kopiraj oznaku + + + &Edit + Uredi + + + Export Address List + Izvezi popis adresa + + + Comma separated file (*.csv) + Datoteka odvojena zarezom (* .csv) + + + Exporting Failed + Izvoz nije uspio + + + There was an error trying to save the address list to %1. Please try again. + DoÅ¡lo je do pogreÅ¡ke prilikom spremanja popisa adresa na %1. Molim te pokuÅ¡aj ponovno + + + + AddressLabelRow + + Form + Obrazac + + + + AddressTableModel + + Label + Oznaka + + + Address + Adresa + + + Date + Datum + + + (no label) + (bez oznake) + + + + AddressesWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + + AskPassphraseDialog + + Passphrase Dialog + Passphrase Dialog (tajni dijalog) + + + TextLabel + TextLabel + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Unesi novu zaporku za novÄanik. 1. Molimo koristite zaporku od 2. 10 ili viÅ¡e nasumiÄnih simbola, ili 3. osam i viÅ¡e rijeÄi 3. + + + Encrypt wallet + Å ifriranje novÄanika + + + This operation needs your wallet passphrase to unlock the wallet. + Ova operacija zahtijeva zaporku za otkljuÄavanje novÄanika. + + + Unlock wallet + OtkljuÄaj novÄanik + + + This operation needs your wallet passphrase to decrypt the wallet. + Ova operacija zahtjeva zaporku novÄanika za deÅ¡ifriranje novÄanika + + + Decrypt wallet + DeÅ¡ifriraj novÄanik + + + Change passphrase + Promijeni zaporku + + + Enter the old and new passphrase to the wallet. + Unesi staru i novu zaporku novÄanika. + + + Confirm wallet encryption + Potvrdi Å¡ifriranje novÄanika + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX se sada zatvara kako bi dovrÅ¡io proces Å¡ifriranja. Ne zaboravite da Å¡ifriranje vaÅ¡eg novÄanika ne može u potpunosti zaÅ¡tititi vaÅ¡e PIV od kraÄ‘e zlonamjernog softvera koji zarazi vaÅ¡e raÄunalo. + + + Are you sure you wish to encrypt your wallet? + Jeste li sigurni da želite Å¡ifrirati svoj novÄanik? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Upozorenje: Ako Å¡ifrirate svoj novÄanik i izgubite zaporku, 1 izgubit ćete sve VaÅ¡e PIVove 1 ! + + + Wallet encrypted + NovÄanik Å¡ifriran + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + VAŽNO: Bilo kakve prethodne sigurnosne kopije koje ste napravili iz svoje datoteke lisnice trebale bi se zamijeniti novom generiÄkom, Å¡ifriranom datotekom lisnice. Iz sigurnosnih razloga, prethodne sigurnosne kopije nekodirane datoteke novÄanika postat će beskorisne Äim poÄnete koristiti novi, Å¡ifrirani novÄanik. + + + Wallet encryption failed + Å ifriranje novÄanika neuspijelo + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Å ifriranje novÄanika neuspijelo zbog unutarnje greÅ¡ke. VaÅ¡ novÄanik nije Å¡ifriran. + + + The supplied passphrases do not match. + Unesene lozinke se ne podudaraju. + + + Wallet unlock failed + OtkljuÄavanje novÄanika neuspijelo + + + The passphrase entered for the wallet decryption was incorrect. + Zaporka za Å¡ifriranje novÄanika bila je netoÄna. + + + Wallet decryption failed + Neuspjelo Å¡ifriranje novÄanika + + + Wallet passphrase was successfully changed. + Zaporka novÄanika uspjeÅ¡no promijenjena. + + + Warning: The Caps Lock key is on! + Upozorenje: Caps Lock ukljuÄen! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + Blokiran do + + + + BlockExplorer + + Blockchain Explorer + Blockchain preglednik + + + Back + Natrag + + + Forward + Naprijed + + + Address / Block / Transaction + Adresa / Block / Transakcija + + + Search + Pretraga + + + TextLabel + TextLabel + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Nisu prikazane sve transakcije. Za pregled svih transakcija morate postaviti txindex = 1 u konfiguracijskoj datoteci (pivx.conf). + + + + CSRow + + Form + Obrazac + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Ukupno: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Nepoznato: %5) + + + Network Alert + Upozorenje o mreži + + + + CoinControlDialog + + Quantity: + KoliÄina: + + + Bytes: + Bytovi: + + + Fee: + Naknada: + + + Coin Selection + Odabir novÄića + + + Dust: + Dust: + + + Change: + Razlika: + + + Tree mode + Granati prikaz + + + List mode + Popis + + + (1 locked) + (1 zakljuÄan) + + + Amount + Iznos + + + 0 + 0 + + + Received with label + Primljeno s oznakom + + + Received with address + Primljeno s adresom + + + Date + Datum + + + Confirmations + Potvrde + + + Confirmed + PotvrÄ‘eno + + + Copy address + Kopiraj adresu + + + Copy label + Kopiraj oznaku + + + Copy amount + Kopiraj iznos + + + Copy transaction ID + Kopiraj ID transakcije + + + Lock unspent + ZakljuÄaj neiskoriÅ¡teno + + + Unlock unspent + OtkljuÄaj neiskoriÅ¡teno + + + Copy quantity + Kopirajte koliÄinu + + + Copy fee + Kopiraj naknadu + + + Copy after fee + Kopiraj naknadnu naknadu + + + Copy bytes + Kopiraj bitove + + + Copy priority + Kopiraj prioritet + + + Copy dust + Kopiraj dust + + + Copy change + Kopiraj razliku + + + Please switch to "List mode" to use this function. + Prebacite se na "popis" kako biste koristili ovu funkciju. + + + highest + najviÅ¡i + + + higher + viÅ¡i + + + high + visok + + + medium-high + srednje visok + + + medium + srednje + + + low-medium + srednje niži + + + low + nizak + + + lower + niži + + + lowest + najniži + + + (%1 locked) + (%1 zakljuÄano) + + + none + bez + + + yes + da + + + no + ne + + + This label turns red, if the transaction size is greater than 1000 bytes. + Ova oznaka postaje crvena, ako je veliÄina transakcije veća od 1000 bajta. + + + This means a fee of at least %1 per kB is required. + To znaÄi da je potrebna naknada od najmanje %1 po kB. + + + Can vary +/- 1 byte per input. + Varira +/- 1 byte po unosu. + + + Transactions with higher priority are more likely to get included into a block. + Vjerojatnije je da će transakcije s većim prioritetom biti ukljuÄene u blok. + + + This label turns red, if the priority is smaller than "medium". + Ova oznaka postaje crvena, ako je prioritet manji od "srednji". + + + This label turns red, if any recipient receives an amount smaller than %1. + Ova oznaka postaje crvena ako neki primatelj prima iznos manji od %1. + + + Can vary +/- %1 upiv per input. + Može varirati +/- %1 upiv po unosu. + + + (no label) + (bez oznake) + + + change from %1 (%2) + promijeni s %1 (%2) + + + (change) + (promjena) + + + + CoinControlPivWidget + + TextLabel + TextLabel + + + Quantity: + KoliÄina: + + + Fee: + Naknada: + + + Amount + Iznos + + + Label + Oznaka + + + Address + Adresa + + + Type + Tip + + + Date + Datum + + + Confirmations + Potvrde + + + Bytes: + Bytovi: + + + Dust: + Dust: + + + Change: + Razlika: + + + + ColdStakingWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + + ContactDropdownRow + + Form + Obrazac + + + + DashboardWidget + + Form + Obrazac + + + Warning + Upozorenje + + + TextLabel + TextLabel + + + zPIV + zPIV + + + All + Sve + + + Received + Primljeno + + + Sent + Poslano + + + Mined + Mined + + + Minted + Minted + + + To yourself + Sam sebi + + + + DefaultDialog + + Form + Obrazac + + + + DenomGenerationDialog + + Form + Obrazac + + + + EditAddressDialog + + Edit Address + Uredi Adresu + + + &Label + Oznaka + + + The label associated with this address list entry + Oznaka povezana s ovim unosom popisa adresa + + + &Address + Adresa + + + The address associated with this address list entry. This can only be modified for sending addresses. + Adresa povezana s ovim unosom popisa adresa. To se može promijeniti samo za slanje adresa. + + + New receiving address + Nova adresa za primanje + + + New sending address + Nova adresa za slanje + + + Edit receiving address + UreÄ‘ivanje adrese primatelja + + + Edit sending address + UreÄ‘ivanje adrese slanja + + + The entered address "%1" is not a valid PIVX address. + Unesena adresa "%1" nije važeća PIVX adresa. + + + The entered address "%1" is already in the address book. + Unesena adresa "%1" već je u adresaru. + + + Could not unlock wallet. + Nije moguće otkljuÄati novÄanik. + + + New key generation failed. + Novo generiranje kljuÄa nije uspjelo. + + + + ExpandableButton + + Form + Obrazac + + + + FreespaceChecker + + A new data directory will be created. + Kreirat će se novi direktorij podataka. + + + name + naziv + + + Directory already exists. Add %1 if you intend to create a new directory here. + Direktorij već postoji. Dodajte %1 ako namjeravate izraditi novi direktorij ovdje. + + + Path already exists, and is not a directory. + Put već postoji i nije direktorij. + + + Cannot create data directory here. + Ovdje nije moguće stvoriti direktorij za podatke. + + + + GovernancePage + + Form + Obrazac + + + 0 + 0 + + + + HelpMessageDialog + + version + verzija + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + O PIVX Core + + + Command-line options + Opcije naredbene linije + + + Usage: + Upotreba: + + + command-line options + opcije naredbenog retka + + + UI Options: + UI mogućnosti: + + + Choose data directory on startup (default: %u) + Odaberite direktorij za podatke pri pokretanju (zadano: %u) + + + Show splash screen on startup (default: %u) + Prikažite zaslon prilikom pokretanja (zadano: %u) + + + Set language, for example "de_DE" (default: system locale) + Postavite jezik, na primjer "de_DE" (zadano: regionalni sustav) + + + Start minimized + PoÄetak minimiziran + + + Set SSL root certificates for payment request (default: -system-) + Postavite SSL potvrde korijena za zahtjev za plaćanje (zadano: -system-) + + + + Intro + + Welcome + DobrodoÅ¡li + + + Welcome to PIVX Core. + DobrodoÅ¡li u PIVX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Budući da je prvi put pokrenut program, možete odabrati gdje će PIVX Core pohraniti svoje podatke. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core preuzima i pohranjuje kopiju PIVX blok-lanca. Barem će %1GB podataka biti pohranjeno u ovom direktoriju i to će s vremenom rasti. NovÄanik će takoÄ‘er biti pohranjena u ovom direktoriju. + + + Use the default data directory + Upotrijebite zadani direktorij podataka + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + GreÅ¡ka: ne može se izraditi direktorij podataka "%1". + + + Error + GreÅ¡ka + + + %1 GB of free space available + %1 GB slobodnog prostora na raspolaganju + + + (of %1 GB needed) + (%1 GB potrebno) + + + + LoadingDialog + + Form + Obrazac + + + TextLabel + TextLabel + + + + LockUnlock + + Form + Obrazac + + + + MNRow + + Form + Obrazac + + + + MasterNodeWizardDialog + + Name + Naziv + + + Address + Adresa + + + The recipient address is not valid, please recheck. + Adresa primatelja nije važeća, ponovo provjerite. + + + The amount to pay must be larger than 0. + Iznos za plaćanje mora biti veći od 0. + + + The amount exceeds your balance. + Iznos prelazi vaÅ¡ saldo. + + + The total exceeds your balance when the %1 transaction fee is included. + Ukupni iznos prelazi vaÅ¡ saldo kada je ukljuÄena naknada za transakciju %1. + + + Duplicate address found, can only send to each address once per send operation. + Duplicirana adresa pronaÄ‘ena, može poslati samo na svaku adresu jednom po poÅ¡iljci. + + + Transaction creation failed! + Izrada transakcija nije uspjela! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Transakcija je odbijena! To se može dogoditi ako su neki od novÄića u vaÅ¡em novÄaniku već bili potroÅ¡eni, primjerice, ako ste upotrijebili kopiju wallet.data, a novÄići su potroÅ¡eni u kopiji, ali nisu oznaÄeni kao ovdje potroÅ¡eni. + + + Error: The wallet was unlocked only to anonymize coins. + PogreÅ¡ka: novÄanik je otkljuÄan samo za anonimizaciju kovanica. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + Naknada %1 puta veća od %2 po kB smatra se nerazumljivo visokom naknadom. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + PogreÅ¡ka: novÄanik je otkljuÄan samo za anonimizaciju kovanica. OtkljuÄavanje je otkazano. + + + + MasterNodesWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + Delete + IzbriÅ¡i + + + + MnInfoDialog + + Form + Obrazac + + + Status: + Status: + + + + MyAddressRow + + Form + Obrazac + + + + NavMenuWidget + + Form + Obrazac + + + + OpenURIDialog + + Open URI + Otvori URI + + + Open payment request from URI or file + Otvorite zahtjev za plaćanje iz URI ili datoteke + + + TextLabel + TextLabel + + + Select payment request file + Odaberite datoteku zahtjeva za plaćanje + + + Select payment request file to open + Odaberite datoteku zahtjeva za plaćanje za otvaranje + + + + OptionButton + + Form + Obrazac + + + TextLabel + TextLabel + + + + OptionsDialog + + Options + Mogućnosti + + + &Main + Glavno + + + Size of &database cache + VeliÄina database cachea + + + MB + MB + + + Number of script &verification threads + Broj skripti i foruma za potvrdu + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = ostavi toliko jezgri) + + + W&allet + NovÄanik + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + Ako onemogućite potroÅ¡nju nepotvrÄ‘enih promjena, promjena s transakcijskog kanala bit će upotrijebljena sve dok ta transakcija nema barem jednu potvrdu. To takoÄ‘er utjeÄe na izraÄun salda. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Automatski otvorite PIVX klijentski prikljuÄak na rooteru. To funkcionira samo kada vaÅ¡ rooter podržava UPnP i omogućen je. + + + Accept connections from outside + Prihvatite veze izvana + + + Allow incoming connections + Dopusti dolazne veze + + + &Connect through SOCKS5 proxy (default proxy): + Povežite se putem SOCKS5 proxyja (zadani proxy): + + + Expert + StruÄnjak + + + Automatically start PIVX after logging in to the system. + Automatski pokrenite PIVX nakon prijave u sustav. + + + &Start PIVX on system login + Pokrenite PIVX na prijavi u sustav + + + Whether to show coin control features or not. + Bilo da pokazuju znaÄajke kontrole novÄića ili ne. + + + Enable coin &control features + Omogućite znaÄajke kontrole novÄića + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Prikaži dodatnu karticu s popisom svih svojih masternoda u prvom pod-tabu i sve masternode na mreži u drugoj podkartici. + + + Show Masternodes Tab + Prikaži Masternodes Tab + + + &Spend unconfirmed change + Provedite nepotvrÄ‘ene promjene + + + &Network + Mreža + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + Ovdje se može postaviti jezik korisniÄkog suÄelja. Ova postavka će stupiti na snagu nakon ponovnog pokretanja PIVX-a. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Jezik nedostaje ili prijevod nije potpun? Pomozite s prijevodima ovdje: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Karte porta pomoću UPnP + + + + Enable automatic minting of PIV units to zPIV + Omogućite automint PIV jedinica na zPIV + + + Enable zPIV Automint + Omogući zPIV Automint + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Postotak dolaznih PIV koji se automatski pretvara u zPIV putem protokola Zerocoin (min: 10%) + + + Percentage of autominted zPIV + Postotak automatiziranog zPIV + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + PriÄekajte s automatskom pretvorbom u Zerocoin dok ne bude dostupno dovoljno PIV za apoen + + + Preferred Automint zPIV Denomination + Preferirana Automint zPIV denominacijad + + + Stake split threshold: + Prag razdvajanja Stake-a: + + + Connect to the PIVX network through a SOCKS5 proxy. + Povežite se s PIVX mrežom putem SOCKS5 proxy poslužitelja. + + + Proxy &IP: + Proxy IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP adresa proxya (npr. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + Port: + + + Port of the proxy (e.g. 9050) + Port proxya (npr. 9050) + + + &Window + Prozor + + + Show only a tray icon after minimizing the window. + Prikaži samo ikonu trake nakon minimaliziranja prozora. + + + &Minimize to the tray instead of the taskbar + Minimaliziraj na traku umjesto Taskbar + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Minimiziraj umjesto izlaska iz aplikacije kada je prozor zatvoren. Kada je ova opcija omogućena, program će biti zatvoren samo nakon odabira opcije Quit u izborniku. + + + M&inimize on close + Minimiziraj pri zatvaranju + + + &Display + Prikaz + + + User Interface &language: + Jezik suÄelja korisnika: + + + User Interface Theme: + Tema suÄelja korisnika: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Odaberite zadanu jedinicu podjele za prikazivanje u suÄelju i za slanje novca. + + + Decimal digits + Decimalnih znamenki + + + Hide empty balances + Sakri praznu bilancu + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + URL-ovi treće strane (npr. Blok-istraživaÄ) koji se pojavljuju na kartici transakcija kao stavke kontekstualnog izbornika. %s u URL-u zamjenjuje se transakcijom. ViÅ¡estruki URL-ovi razdvojeni su okomitim trakom |. + + + Third party transaction URLs + URL transakcije treće stranke + + + Active command-line options that override above options: + Aktivne opcije naredbenog retka koje nadjaÄavaju gore navedene opcije: + + + Reset all client options to default. + Ponovno postavite sve opcije klijenta na zadano. + + + &Reset Options + Mogućnosti ponovnog postavljanja + + + &OK + U redu + + + &Cancel + PoniÅ¡ti + + + Any + bilo koji + + + default + Zadani + + + none + bez + + + Confirm options reset + Potvrdi ponovno postavljanje mogućnosti + + + Client restart required to activate changes. + Ponovno pokretanje klijenta potrebno je za aktiviranje promjena. + + + Client will be shutdown, do you want to proceed? + Klijent će biti iskljuÄen, želite li nastaviti? + + + This change would require a client restart. + Ova će promjena zahtijevati ponovno pokretanje klijenta. + + + The supplied proxy address is invalid. + IsporuÄena proxy adresa nije važeća. + + + The supplied proxy port is invalid. + IsporuÄeni proxy prikljuÄak nije valjan. + + + The supplied proxy settings are invalid. + IsporuÄene proxy postavke nisu važeće. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + NovÄanik + + + Node + Node ( Ävor ) + + + &Show / Hide + Prikaži / Sakrij + + + Show or hide the main Window + Prikaži ili sakrij glavni prozor + + + E&xit + Izlaz + + + Quit application + Napusti aplikaciju + + + PIVX Core client + PIVIX Core Klijent + + + Error + GreÅ¡ka + + + Warning + Upozorenje + + + Information + Informacije + + + Sent MultiSend transaction + PoÅ¡alji ViÅ¡estruku transakciju + + + Sent transaction + Poslane transakcije + + + Incoming transaction + Dolazne transakcije + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Datum: %1 +Iznos: %2 +Tip: %3 +Adresa: %4 + + + + + PWidget + + + PaymentServer + + Payment request error + GreÅ¡ka zahtjeva za plaćanje + + + URI handling + rukovanje s URI + + + Payment request fetch URL is invalid: %1 + URL za dohvaćanje zahtjeva za plaćanje nije valjan: %1 + + + Payment request file handling + Upravljanje datotekama zahtjeva za plaćanjem + + + Invalid payment address %1 + Nevažeća adresa za plaćanje %1 + + + Cannot start pivx: click-to-pay handler + Ne može se pokrenuti pivx: clik-to-pay handler + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URI se ne može analizirati! To može biti uzrokovana nevažećom PIVX adresom ili nepravilnim URI parametrima. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Datoteku zahtjeva za plaćanje ne može se proÄitati! To može biti uzrokovana nevažećom datotekom zahtjeva za plaćanjem. + + + Payment request rejected + Zahtjev za plaćanje odbijen + + + Payment request network doesn't match client network. + Mreža zahtjeva za plaćanje ne odgovara mreži klijenta. + + + Payment request has expired. + Zahtjev za plaćanje je istekao. + + + Payment request is not initialized. + Zahtjev za plaćanje nije pokrenut. + + + Unverified payment requests to custom payment scripts are unsupported. + Nepodržane su nepotvrÄ‘eni zahtjevi za plaćanje prilagoÄ‘enim skriptama za plaćanje. + + + Requested payment amount of %1 is too small (considered dust). + Zatražena uplata od %1 je premala (smatra se praÅ¡inom). + + + Refund from %1 + Povrat od %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Zahtjev za isplatu %1 prevelik je (%2 bajta, dopuÅ¡teno je %3bajta). + + + Payment request DoS protection + Zahtjev za plaćanje DoS zaÅ¡titu + + + Error communicating with %1: %2 + PogreÅ¡ka pri komunikaciji s %1: %2 + + + Payment request cannot be parsed! + Zahtjev za plaćanje ne može se rastaviti! + + + Bad response from server %1 + LoÅ¡ odgovor od poslužitelja %1 + + + Network request error + GreÅ¡ka odgovora mreže + + + Payment acknowledged + Plaćanje je priznato + + + + PeerTableModel + + Address/Hostname + Adresa / Naziv poslužitelja + + + Version + Verzija + + + Ping Time + Ping Time + + + + PrivacyWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + + ProposalFrame + + + QObject + + Amount + Iznos + + + Enter a PIVX address (e.g. %1) + Unesite PIVX adresu (npr., %1) + + + %1 d + %1 d + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + MREŽA + + + BLOOM + RAST + + + UNKNOWN + NEPOZNATO + + + None + NiÅ¡ta + + + N/A + N/D + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + + RPCConsole + + Tools window + Alatni prozor + + + &Information + Informacije + + + General + Opće + + + Name + Naziv + + + Client name + Ime klijenta + + + + N/A + N/D + + + Number of connections + Broj veza + + + &Open + Otvori + + + Startup time + Vrijeme pokretanja + + + Network + Mreža + + + Last block time + Zadnje vrijeme bloka + + + Debug log file + Otkloni neispravnost log datoteke + + + Build date + Datum gradnje + + + Current number of blocks + Trenutan broj blokova + + + Client version + Verzija klijenta + + + Using BerkeleyDB version + Upotreba verzije BerkeleyDB + + + Block chain + Block chain + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Otvorite PIVX debug log datoteku iz aktualnog direktorija podataka. To može potrajati nekoliko sekundi za velike datoteke zapisnika. + + + Number of Masternodes + Broj Masternoda + + + &Console + Konzola + + + Clear console + OÄisti konzolu + + + &Network Traffic + Promet Mreže + + + &Clear + OÄisti + + + Totals + Ukupno + + + Received + Primljeno + + + Sent + Poslano + + + &Peers + Peers + + + Banned peers + Blokirani peer-ovi + + + Select a peer to view detailed information. + Odaberite peer da biste vidjeli detaljne informacije. + + + Whitelisted + Whitelisted + + + Direction + Upute + + + Protocol + Protokol + + + Version + Verzija + + + Services + Servis + + + Ban Score + Ban rezultat + + + Connection Time + Vrijeme veze + + + Last Send + Zadnji slanje + + + Last Receive + Zadnji prijem + + + Bytes Sent + Poslani Bytovi + + + Bytes Received + Primljeni Bytovi + + + Ping Time + Ping Time + + + &Wallet Repair + Popravak novÄanika + + + Delete local Blockchain Folders + IzbriÅ¡ite lokalne mape Blockchaina + + + Wallet In Use: + NovÄanik u uporabi: + + + Starting Block + Zapoćinje Block + + + Synced Headers + Sinkronizirana zaglavlja + + + Synced Blocks + Sinkronizirana zaglavlja + + + The duration of a currently outstanding ping. + Trajanje trenutno prisutnog ping-a. + + + Ping Wait + Pingaj NovÄanik + + + Time Offset + Pomak vremena + + + Custom Backup Path: + Put prilagoÄ‘enog sigurnosnog kopiranja: + + + Custom zPIV Backup Path: + PrilagoÄ‘eni put zPIV sigurnosne kopije: + + + Custom Backups Threshold: + Prag za prilagoÄ‘ene sigurnosne kopije: + + + Salvage wallet + Spasi novÄanik + + + Attempt to recover private keys from a corrupt wallet.dat. + PokuÅ¡aj oporavka privatnih kljuÄeva iz korumpirane wallet.dat. + + + Rescan blockchain files + Ponovno skeniranje blockchain datoteka + + + Rescan the block chain for missing wallet transactions. + Ponovno skeniranje blok-lanca za transakcije novÄanika koji nedostaju. + + + Recover transactions 1 + Oporavak transakcije 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Obnova transakcija od blockchaina (zadržite meta-podatke, npr. Vlasnika raÄuna). + + + Recover transactions 2 + Oporavak transakcije 2 + + + Recover transactions from blockchain (drop meta-data). + Obnova transakcija iz blockchaina (izbaci meta-podatake). + + + Upgrade wallet format + Nadogradnja formata NovÄanika + + + Rebuild block chain index from current blk000??.dat files. + Obnovi indeks blok lanca iz trenutnih blk000 ?? dat datoteka. + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + BriÅ¡e sve lokalne mape blokiranja tako da se novÄanik sinkronizira ispoÄetka. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + Donji gumbi će ponovo pokrenuti novÄanik pomoću opcija naredbenog retka za popravak lisnice, popraviti probleme s korumpiranim datotekama blockchaina ili nedostajućim / zastarjelim transakcijama. + + + Wallet repair options. + Opcije popravka novÄanika. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Nadogradnja novÄanika na najnoviji format pri pokretanju. (Napomena: ovo NIJE ažuriranje novÄanika!) + + + Rebuild index + Obnovi indeks + + + In: + U: + + + Out: + Iz: + + + Welcome to the PIVX RPC console. + DobrodoÅ¡li na PIVX RPC konzolu. + + + &Disconnect Node + Odspoji Node + + + Ban Node for + Ban Node za + + + 1 &hour + 1 sat + + + 1 &day + 1 dan + + + 1 &week + 1 tjedan + + + 1 &year + 1 godinu + + + &Unban Node + Nebanani Nodovi + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + To će izbrisati vaÅ¡e lokalne mape blockcahaina i novÄanik će uskladiti cijeli Blockchain od nule. + + + This needs quite some time and downloads a lot of data.<br /><br /> + To treba dosta vremena i preuzimanja puno podataka. + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + VaÅ¡e transakcije i sredstva bit će ponovno vidljivi nakon preuzimanja. + + + Do you want to continue?.<br /> + Želite li nastaviti? + + + Confirm resync Blockchain + Potvrdite resync Blockchain + + + Type <b>help</b> for an overview of available commands. + UpiÅ¡ite pomoć za pregled dostupnih naredbi. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (node id: %1) + + + via %1 + via %1 + + + never + nikada + + + Inbound + Dolazno + + + Outbound + Odlazno + + + Yes + Da + + + No + Ne + + + Unknown + Nepoznato + + + + ReceiveDialog + + + ReceiveWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + + RecentRequestsTableModel + + Date + Datum + + + Label + Oznaka + + + Message + Poruka + + + Address + Adresa + + + Amount + Iznos + + + (no label) + (bez oznake) + + + (no message) + ( bez poruke ) + + + (no amount) + (bez iznosa) + + + + RequestDialog + + Amount + Iznos + + + TextLabel + TextLabel + + + Label + Oznaka + + + Error + GreÅ¡ka + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + Form + Obrazac + + + + SendMultiRow + + Form + Obrazac + + + TextLabel + TextLabel + + + + SendWidget + + Amount + Iznos + + + Spend Zerocoin + PotroÅ¡i Zerocoin + + + zPIV is currently undergoing maintenance. + Radovi u tijeku na zPIV. + + + Version 1 zPIV require a security level of 100 to successfully spend. + Verzija 1 zPIV zahtjeva sigurnosnu razinu 100 da se uspjeÅ¡no utroÅ¡i. + + + Too much inputs ( + PreviÅ¡e unosa ( + + + ) needed. +Maximum allowed: + ) potrebno. +Maksimalno dopuÅ¡teno: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + Ili mintaj viÅ¡e vrijedne denominacije (tako da je potrebno manje ulaza) ili smanjiti iznos potroÅ¡nje + + + + SettingsBackupWallet + + Form + Obrazac + + + TextLabel + TextLabel + + + Backup Wallet + Sigurnosna kopija novÄanika + + + Wallet Data (*.dat) + Wallet Data (*.dat) + + + + SettingsBitToolWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + Import Address + Uvoz adrese + + + Clear + IzbriÅ¡i + + + The entered passphrase is invalid. + Unesena zaporka je nevažeća. + + + Allowed: 0-9,a-z,A-Z, + Dozvoljeno: 0-9, a-z, A-Z. + + + The entered address is invalid. + Unesena adresa je nevažeća. + + + Please check the address and try again. + Provjerite adresu i pokuÅ¡ajte ponovno. + + + The entered address does not refer to a key. + Unesena adresa ne odnosi se na kljuÄ. + + + Wallet unlock was cancelled. + OtkljuÄavanje novÄanika je otkazano. + + + Private key for the entered address is not available. + Privatni kljuÄ za unesenu adresu nije dostupan. + + + Failed to decrypt. + DeÅ¡ifriranje neuspijelo + + + Please check the key and passphrase and try again. + Provjerite kljuÄ i lozinku te pokuÅ¡ajte ponovo. + + + Data Not Valid. + Podaci nisu valjani. + + + Please try again. + PokuÅ¡ajte ponovno. + + + Please wait while key is imported + Molimo priÄekajte dok se kljuÄ uvozi + + + + SettingsConsoleWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + Welcome to the PIVX RPC console. + DobrodoÅ¡li na PIVX RPC konzolu. + + + Type <b>help</b> for an overview of available commands. + UpiÅ¡ite pomoć za pregled dostupnih naredbi. + + + + SettingsDisplayOptionsWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + Decimal digits + Decimalnih znamenki + + + Hide empty balances + Sakri praznu bilancu + + + default + Zadani + + + + SettingsFaqWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + + SettingsInformationWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + Information + Informacije + + + General + Opće + + + Network + Mreža + + + In: + U: + + + Out: + Iz: + + + + SettingsMainOptionsWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + + SettingsMultisendDialog + + Form + Obrazac + + + TextLabel + TextLabel + + + + SettingsMultisendWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + Active + Aktivno + + + + SettingsSignMessageWidgets + + Form + Obrazac + + + TextLabel + TextLabel + + + Clear + IzbriÅ¡i + + + Message + Poruka + + + Signature + Potpis + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Možete potpisati poruke s vaÅ¡im adresama kako biste dokazali da ih posjedujete. Pazite da ne potpiÅ¡ete niÅ¡ta nejasno, jer napadi za kraÄ‘u identiteta mogu Vas pokuÅ¡ati uvjeriti da vam potpiÅ¡u identitet. PotpiÅ¡ite samo detalje oko kojih se slažete. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Unesite adresu potpisivanja, poruku (provjerite da toÄno kopirate presjeke, razmake, kartice itd.) I potpis ispod da biste potvrdili poruku. Budite pažljivi da ne Äitate viÅ¡e u potpisu od onoga Å¡to je u samoj potpisanoj poruci kako bi se izbjegla prijevara s Äovjekom u sredini. + + + The entered address is invalid. + Unesena adresa je nevažeća. + + + Please check the address and try again. + Provjerite adresu i pokuÅ¡ajte ponovno. + + + The entered address does not refer to a key. + Unesena adresa ne odnosi se na kljuÄ. + + + Wallet unlock was cancelled. + OtkljuÄavanje novÄanika je otkazano. + + + Private key for the entered address is not available. + Privatni kljuÄ za unesenu adresu nije dostupan. + + + Message signing failed. + Potpisivanje poruka nije uspjelo. + + + Message signed. + Poruka potpisana. + + + The signature could not be decoded. + Potpis nije mogao biti dekodiran. + + + Please check the signature and try again. + Provjerite potpis i pokuÅ¡ajte ponovo. + + + The signature did not match the message digest. + Potpis se nije podudarao s digestom poruka. + + + Message verification failed. + Potvrda poruke nije uspjela. + + + Message verified. + Poruka je potvrÄ‘ena. + + + + SettingsWalletOptionsWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + Wallet + NovÄanik + + + Stake split threshold: + Prag razdvajanja Stake-a: + + + Network + Mreža + + + Allow incoming connections + Dopusti dolazne veze + + + + SettingsWalletRepairWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + Attempt to recover private keys from a corrupt wallet.dat. + PokuÅ¡aj oporavka privatnih kljuÄeva iz korumpirane wallet.dat. + + + Recover transactions from blockchain (drop meta-data). + Obnova transakcija iz blockchaina (izbaci meta-podatake). + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + BriÅ¡e sve lokalne mape blokiranja tako da se novÄanik sinkronizira ispoÄetka. + + + Salvage wallet + Spasi novÄanik + + + Recover transactions 1 + Oporavak transakcije 1 + + + Recover transactions 2 + Oporavak transakcije 2 + + + Upgrade wallet format + Nadogradnja formata NovÄanika + + + Rebuild index + Obnovi indeks + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + To će izbrisati vaÅ¡e lokalne mape blockcahaina i novÄanik će uskladiti cijeli Blockchain od nule. + + + This needs quite some time and downloads a lot of data.<br /><br /> + To treba dosta vremena i preuzimanja puno podataka. + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + VaÅ¡e transakcije i sredstva bit će ponovno vidljivi nakon preuzimanja. + + + Do you want to continue?.<br /> + Želite li nastaviti? + + + Confirm resync Blockchain + Potvrdite resync Blockchain + + + + SettingsWidget + + Form + Obrazac + + + TextLabel + TextLabel + + + Wallet + NovÄanik + + + Options + Mogućnosti + + + Information + Informacije + + + Confirm options reset + Potvrdi ponovno postavljanje mogućnosti + + + Client restart required to activate changes. + Ponovno pokretanje klijenta potrebno je za aktiviranje promjena. + + + Client will be shutdown, do you want to proceed? + Klijent će biti iskljuÄen, želite li nastaviti? + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core se zatvara ... + + + Do not shut down the computer until this window disappears. + Nemojte iskljuÄivati raÄunalo dok ovaj prozor ne nestane. + + + + SnackBar + + Form + Obrazac + + + + Splash + + Form + Obrazac + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Verzija %1 + + + The Bitcoin Core developers + Bitcoin Core programeri + + + The Dash Core developers + Dash Core programeri + + + The PIVX Core developers + PIVX Core programeri + + + [testnet] + [testnet] + + + + TooltipMenu + + Form + Obrazac + + + Delete + IzbriÅ¡i + + + + TopBar + + Form + Obrazac + + + %1 and %2 + %1 i %2 + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open until %1 + Otvori dok %1 + + + conflicted + u sukobu + + + %1/offline + %1/offline + + + %1/unconfirmed + %1/nepotvrÄ‘en + + + %1 confirmations + %1 potvrÄ‘eno + + + %1/offline (verified via SwiftX) + %1/offline (provjereno s SwiftX) + + + %1/confirmed (verified via SwiftX) + %1 / potvrÄ‘eno (potvrÄ‘eno putem usluge SwiftX) + + + %1 confirmations (verified via SwiftX) + Potvrde %1 (potvrÄ‘ene putem SwiftX-a) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1 / offline (SwiftX potvrda u tijeku - %2 od %3 potpisa) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1 / potvrÄ‘eno (provjera SwiftX u tijeku -%2 od %3 potpisa) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + Potvrde %1 (provjera SwiftX u tijeku -%2 od %3 potpisa) + + + %1/offline (SwiftX verification failed) + %1 / offline (SwiftX verifikacija nije uspjela) + + + %1/confirmed (SwiftX verification failed) + %1 / potvrÄ‘eno (nije uspjela SwiftX provjera) + + + Status + Status + + + , has not been successfully broadcast yet + , joÅ¡ nije uspjeÅ¡no emitiran + + + Date + Datum + + + Source + Izvor + + + Generated + Kreirano + + + From + Oblik + + + unknown + nepoznato + + + To + Za + + + own address + moja adresa + + + watch-only + samo za gledanje + + + label + oznaka + + + Credit + Kredit + + + not accepted + nije prihvaćeno + + + Debit + Dugovanje + + + Total debit + Ukupan dug + + + Total credit + Ukupni kredit + + + Transaction fee + Naknada za transakciju + + + Net amount + Neto iznos + + + Message + Poruka + + + Comment + Komentar + + + Transaction ID + Transakcijski ID + + + Output index + Izlazni indeks + + + Merchant + Trgovac + + + Debug information + Informacije o uklanjanju pogreÅ¡aka + + + Transaction + Transakcija + + + Inputs + Unosi + + + Amount + Iznos + + + true + toÄno + + + false + netoÄno + + + + TransactionTableModel + + Date + Datum + + + Type + Tip + + + Address + Adresa + + + Open until %1 + Otvori dok %1 + + + Offline + Van mreže + + + Unconfirmed + NepotvrÄ‘en + + + Confirming (%1 of %2 recommended confirmations) + PotvrÄ‘ivanje (%1 od %2 preporuÄene potvrde) + + + Confirmed (%1 confirmations) + PotvrÄ‘eno (potvrde %1) + + + Conflicted + u sukobu + + + Immature (%1 confirmations, will be available after %2) + NedovrÅ¡eno (potvrda %1, bit će dostupna nakon %2) + + + This block was not received by any other nodes and will probably not be accepted! + Taj blok nije primljen od strane drugih Ävorova i vjerojatno neće biti prihvaćeni! + + + Received with + Primljeno s + + + Masternode Reward + Masternode Nagrada + + + Received from + Zaprimljeno s + + + Received via Obfuscation + Zaprimljeno preko Zametanja + + + PIV Stake + PIV Stake + + + zPIV Stake + zPIV Stake + + + Obfuscation Denominate + Zameteni denonimi + + + Obfuscation Collateral Payment + Zametena kolateralna plaÄanja + + + Obfuscation Make Collateral Inputs + Prikrivanje Izrade Kolateralnih Unosa + + + Obfuscation Create Denominations + Prikrivanje Stvara Denominacije + + + Converted PIV to zPIV + Pretvoreni PIV u zPIV + + + Spent zPIV + UtroÅ¡eni zPIV + + + Received PIV from zPIV + Primljeni PIV od zPIV + + + Minted Change as zPIV from zPIV Spend + Mintana razlika zPIV od zPIV UtroÅ¡ka + + + Converted zPIV to PIV + Pretvoreni zPIV u PIV + + + Sent to + PoÅ¡alji za: + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Orphan Block - Generirano, ali nije prihvaćeno. Ovo ne utjeÄe na VaÅ¡u imovinu. + + + Payment to yourself + PlaÄanje samom sebi + + + Mined + Mined + + + Obfuscated + Obfuscated + + + watch-only + samo za gledanje + + + (n/a) + (n/d) + + + Transaction status. Hover over this field to show number of confirmations. + Status transakcije. Zadržite pokazivaÄ iznad ovog polja da biste prikazali broj potvrda. + + + Date and time that the transaction was received. + Datum i vrijeme prijema transakcije. + + + Type of transaction. + Vrsta transakcije. + + + Whether or not a watch-only address is involved in this transaction. + Bez obzira je li rijeÄ o adresi za praćenje ili nije ukljuÄena u tu transakciju. + + + Destination address of transaction. + OdrediÅ¡na adresa transakcije. + + + Amount removed from or added to balance. + Iznos uklonjen iz ili dodan u stanje. + + + + TxDetailDialog + + Form + Obrazac + + + Fee: + Naknada: + + + Status: + Status: + + + TextLabel + TextLabel + + + SEND + Å alji + + + Unknown + Nepoznato + + + + TxRow + + Form + Obrazac + + + + WalletModel + + Send Coins + Salji novac + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftX ne podržava slanje visokih vrijednosti. Transakcije su trenutaÄno ograniÄene na %1 PIV. + + + + WalletPasswordDialog + + TextLabel + TextLabel + + + + WelcomeContentWidget + + Welcome + DobrodoÅ¡li + + + default + Zadani + + + + ZPivControlDialog + + Select zPIV to Spend + Odabrani zPIV za utroÅ¡iti + + + Coin Control + Upravljanje novÄićem + + + zPiv + zPiv + + + Quantity: + KoliÄina: + + + Is Spendable + Je moguće utroÅ¡iti + + + 0 + 0 + + + Select/Deselect All + Odaberite/poniÅ¡ti odabir za Sve + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = zadržite metapodatke tx, npr. Vlasnika raÄuna i podatke o zahtjevu za plaćanje, 2 = odbaci meta podataka tx) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Dopusti JSON-RPC veze od odreÄ‘enog izvora. Vrijedi za jednu IP (npr. 1.2.3.4), mrežu / mrežnu masku (npr. 1.2.3.4/255.255.255.0) ili mrežu / CIDR (npr. 1.2.3.4/24). Ova se opcija može odrediti viÅ¡e puta + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Veži se na navedenu adresu i uvijek sluÅ¡ajte na njemu. Koristite [host]: port notation za IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Veži se na navedenoj adresi i dopuÅ¡tenim kolegama koji se povezuju s njom. Koristite [host]: port notation za IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Pridržavajte se na navedenu adresu da biste sluÅ¡ali veze JSON-RPC. Koristite [host]: port notation za IPv6. Ova se opcija može odrediti viÅ¡e puta (zadano: vezati se na sva suÄelja) + + + Calculated accumulator checkpoint is not what is recorded by block index + IzraÄunata kontrolna toÄka akumulatora nije ono Å¡to se bilježi indeksom blokova + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Nije moguće dobiti zakljuÄavanje na direktoriju podataka %s. PIVX Core vjerojatno već radi. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Promjena ponaÅ¡anja glasova na automatskom finaliziranom proraÄunu. mode = auto: Glasujte samo za toÄan zavrÅ¡eni proraÄun s mojim generiranim proraÄunom. (niz, zadani: automatski) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Stalne besplatne transakcije bez ograniÄenja stope na <n>* 1000 bajta po minuti (zadano: %u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Izradite nove datoteke s zadanim dozvolama za sustav, umjesto umask 077 (samo uÄinkovite s funkcijom onemogućene lisnice) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + IzbriÅ¡ite sve transakcije lisnice i obnavljajte one dijelove blok-lanca kroz -rescan pri pokretanju + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + IzbriÅ¡i sve zerocoin utroÅ¡ke i minteve koji su zabilježeni na blockchain database i reindexiraj ih (0-1, default: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuirano pod MIT softverskom licencom, pogledajte priloženu datoteku COPYING ili <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Omogući automatsko sigurnosno kopiranje novÄanika nakon svakog zPIV mintanja (0-1, default: %u) + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Omogući ili onemogući staking funkcionalnosti za PIV unose (0-1, default: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Omogući ili onemogući staking funkcionalnosti za zPIV unose (0-1, default: %u) + + + Enable spork administration functionality with the appropriate private key. + Omogućite funkcionalnost administracije s odgovarajućim privatnim kljuÄem. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Unesite naÄin rada regresije, koji koristi poseban lanac u kojem blokovi mogu biti rijeÅ¡eni odmah. + + + Error: Listening for incoming connections failed (listen returned error %s) + PogreÅ¡ka: SluÅ¡anje dolaznih veza nije uspjelo (sluÅ¡ajte pogreÅ¡ku vraćenu pogreÅ¡ku %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + PogreÅ¡ka: transakcija je veća od maksimalne dozvoljene veliÄine transakcije! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + PogreÅ¡ka: nepodržani argument - pronaÄ‘eni su kanali. Postavljanje SOCKS verzije viÅ¡e nije moguće, samo SOCKS5 proksiji su podržani. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + IzvrÅ¡ite naredbu kada se primi odgovarajuće upozorenje ili vidimo jako dugo raÄvanje (%s u cmd zamjenjuje se porukom) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + IzvrÅ¡i naredbu prilikom promjene transakcije naoÄanika (%s u cmd zamjenjuje se TxID-om) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + IzvrÅ¡i naredbu kada se promijeni najbolji blok (%s u cmd zamjenjuje se blokovskim rasprÅ¡ivanjem) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Naknade (u PIV / Kb) manje od toga smatraju se nulom naknadom za prosljeÄ‘ivanje (zadano: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Naknade (u PIV / Kb) manje od toga smatraju se nulom naknadom za izradu transakcija (zadano: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Ispraznite aktivnost baze podataka iz baze memorije na dnevnik diska svakog megabajta (zadano: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Ako paytxfee nije postavljen, ukljuÄite dovoljnu naknadu kako bi transakcije zapoÄele potvrdu u prosjeku unutar n blokova (zadana vrijednost: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + U ovom naÄinu rada -genproclimit kontrolira koliko blokova se generiraju odmah. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Nedovoljno ili nedovoljno potvrÄ‘ena sredstva, možda ćete morati priÄekati nekoliko minuta i pokuÅ¡ati ponovno. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Nevažeći iznos za -maxtxfee =<amount>: '%s' (mora biti barem minimalna naknada od %s kako bi se sprijeÄili zastoji) + + + Keep the specified amount available for spending at all times (default: 0) + Zadržavajte odreÄ‘eni iznos dostupan za potroÅ¡nju u svakom trenutku (zadano: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Prijavite prioritet transakcije i naknadu po kB kada se mining-ju blokovi (zadano: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Održavajte cijeli indeks transakcija, koji se koristi pozivom getrawtransaction rpc (zadano: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maksimalna veliÄina podataka u transakcijama nosaÄa podataka koje Å¡aljemo i minamo (zadana vrijednost: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maksimalne ukupne naknade za upotrebu u jednoj transakciji novÄanika, postavljanje preniske mogu prekidati velike transakcije (zadano: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Broj sekundi za neprimjereno ponaÅ¡anje vrÅ¡njaka iz ponovnog povezivanja (zadano: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + Prikrivanje koristi toÄno iznose denominiranih sredstava za slanje sredstava, možda ćete jednostavno morati anonimizirati joÅ¡ novca. + + + Output debugging information (default: %u, supplying <category> is optional) + Izlazne informacije o pogreÅ¡ci (zadano: %u, <category> unos je neobavezan) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Upit za peer adrese putem DNS traženja, ako je niska adresa (zadana: 1 ako nije povezana) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Randomizirati vjerodajnice za svaku proxy vezu. To omogućuje izolaciju Tor izvora (zadano: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Zahtijevajte visoki prioritet za preusmjeravanje transakcija besplatnih ili niskih naknada (zadano: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + PoÅ¡aljite informacije o praćenju i debugu na konzolu umjesto datoteke debug.log (zadano: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Postavite maksimalnu veliÄinu transakcija s visokim prioritetom / niske naknade u bajtima (zadano: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Postavite broj niza provjere skripte (%u do %d, 0 = auto, <0 = ostavite toliko jezgri slobodno, zadano: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Postavite broj niti za generiranje novÄića ako je omogućeno (-1 = sve jezgre, zadana vrijednost: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Prikaži potvrde N za uspjeÅ¡no zakljuÄanu transakciju (0-9999, zadano: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Podržite filtriranje blokova i transakciju s filtrima za cvjetanje (zadano: %u) + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + Ovaj proizvod ukljuÄuje softver razvijen od strane OpenSSL projekta za uporabu u OpenSSL Toolkitu i kriptografskom softveru kojeg je napisao Eric Young i UPnP softver koji je napisao Thomas Bernard. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Nije moguće vezati se na %s na ovom raÄunalu. PIVX Core vjerojatno već radi. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Nije moguće locirati dovoljno sredstava s domenom Prikrivanja za tu transakciju. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Nije moguće pronaći dovoljno prikrivenih sredstava koja nisu denominirana za ovu transakciju koja nisu jednaka 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Nije moguće pronaći dovoljno sredstava za ovu transakciju koja nije jednaka 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Koristite zasebni SOCKS5 proxy za pristup kolegama putem Tor skrivenih usluga (zadano: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Upozorenje: -maxtxfee je vrlo visoka! Naknade ovoliko visoke mogu se platiti samo jednom transakcijom. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Upozorenje: -paytxfee je vrlo visoka! To je transakcijska naknada koju ćete platiti ako Å¡aljete transakciju. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Upozorenje: Provjerite jesu li datum i vrijeme vaÅ¡eg raÄunala toÄni! Ako je vaÅ¡ sat pogreÅ¡an, PIVX Core neće raditi ispravno. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Upozorenje: ÄŒini se da se mreža ne slaže u potpunosti! ÄŒini se da neki rudari imaju problema. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Upozorenje: ÄŒini se da se ne slažemo s naÅ¡im vrÅ¡njacima! Možda ćete morati nadograditi ili možda želite nadograditi druge Ävorove. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Upozorenje: pogreÅ¡ka u Äitanju wallet.dat! Svi kljuÄevi pravilno Äitaju, ali podaci o transakciji ili unosi u adresaru možda nedostaju ili su netoÄni. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Upozorenje: wallet.dat je oÅ¡tećen, podaci su spaÅ¡eni! Izvorni wallet.dat spremljen je kao lisnica. {Timestamp} .bak u %s; ako su vaÅ¡a salda ili transakcije netoÄne, trebali biste ih vratiti iz sigurnosne kopije. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + DopuÅ¡tene kolege koji se povezuju s odreÄ‘enom netmask ili IP adresa. Može se navesti viÅ¡e puta. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Popis dopuÅ¡tenih suradnika ne može biti zabranjen DoS i njihova se transakcija uvijek prenosi, Äak i ako su već u spremiÅ¡tu, na primjer. za pristupnika + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + Morate odrediti masternodeprivkey u konfiguraciji. Za pomoć pogledajte dokumentaciju. + + + (51472 could be used only on mainnet) + (51472 se može koristiti samo na mainnetu) + + + (default: %s) + (default: %s) + + + (default: 1) + (default: 1) + + + (must be 51472 for mainnet) + (mora biti 51472 za glavnu mrežu) + + + Accept command line and JSON-RPC commands + Prihvatite naredbeni redak i JSON-RPC naredbe + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Prihvatite veze s vanjske strane (zadana postavka: 1 ako nema proxy ili -connect) + + + Accept public REST requests (default: %u) + Prihvatite javne zahtjeve za REST (zadano: %u) + + + Add a node to connect to and attempt to keep the connection open + Dodajte Ävor za povezivanje i pokuÅ¡ajte zadržati vezu otvorenu + + + Allow DNS lookups for -addnode, -seednode and -connect + Dopustite traženja DNS-a za -addnode, -seednode i -connect + + + Always query for peer addresses via DNS lookup (default: %u) + Uvijek se upita za peer adrese putem DNS pretraživanja (zadano: %u) + + + Attempt to recover private keys from a corrupt wallet.dat + PokuÅ¡aj oporavka privatnih kljuÄeva iz korumpirane wallet.dat + + + Automatically create Tor hidden service (default: %d) + Automatski izradite Tor skrivenu uslugu (zadano: %d) + + + Block creation options: + Opcije izrade blokova: + + + Calculating missing accumulators... + IzraÄun akumulatora koji nedostaju ... + + + Cannot downgrade wallet + Nije moguće novÄanik vratiti na nižu verziju + + + Cannot resolve -bind address: '%s' + Nije moguće rijeÅ¡iti adresu poÅ¡iljatelja: '%s' + + + Cannot resolve -externalip address: '%s' + Nije moguće rijeÅ¡iti vanjsku adresu: '%s' + + + Cannot resolve -whitebind address: '%s' + Nije moguće rijeÅ¡iti -whitebind adresu: '%s' + + + Connect only to the specified node(s) + Povežite se samo s navedenim Ävorom(ima) + + + Connect through SOCKS5 proxy + Povežite se preko SOCKS5 proxyja + + + Connect to a node to retrieve peer addresses, and disconnect + Povežite se s Ävorom za preuzimanje peer adresa i odspojite se + + + Connection options: + Mogućnosti povezivanja: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Autorska prava (C) 2009-%i Bitcoin Core Developers + + + Copyright (C) 2014-%i The Dash Core Developers + Autorska prava (C) 2014-%i The Dash Core Developers + + + Copyright (C) 2015-%i The PIVX Core Developers + Autorska prava (C) 2015-%i The PIVX Core Developers + + + Corrupted block database detected + Otkriven oÅ¡tećen blok podataka + + + Could not parse masternode.conf + Nije moguće analizirati masternode.conf + + + + Debugging/Testing options: + Opcije otklanjanja pogreÅ¡aka / testiranja: + + + Delete blockchain folders and resync from scratch + Brisanje blockchain mape i RESYNC od nule + + + Disable OS notifications for incoming transactions (default: %u) + Onemogućite obavijesti OS-a za dolazne transakcije (zadano: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Onemogućivanje sigurnosnog modula, nadjaÄavanje sigurnog naÄina rada (zadano: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Otkrijte vlastitu IP adresu (zadano: 1 prilikom sluÅ¡anja i nije za vanjski ip) + + + Do not load the wallet and disable wallet RPC calls + Ne uÄitavaj novÄanik i onesspobiti RPC pozive + + + Do you want to rebuild the block database now? + Želite li sada obnoviti blok bazu podataka? + + + Done loading + Gotovo uÄitavanje + + + Enable automatic Zerocoin minting (0-1, default: %u) + Omogući automatsko Zerocoin stvaranje (0-1, zadano: %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + Omogući objavu hash transakcije (zakljuÄano putem usluge SwiftX) u + + + Enable publish raw transaction (locked via SwiftX) in <address> + Omogući objavljivanje neobraÄ‘ene transakcije (zakljuÄano putem usluge SwiftX) u + + + Enable the client to act as a masternode (0-1, default: %u) + Omogućite klijentu da djeluje kao masternode (0-1, zadano: %u) + + + Error initializing block database + PogreÅ¡ka prilikom inicijalizacije baze blokova + + + Error initializing wallet database environment %s! + PogreÅ¡ka pri pokretanju okruženja baze podataka novÄanika %s! + + + Error loading block database + PogreÅ¡ka pri uÄitavanju baze podataka blokova + + + Error loading wallet.dat + PogreÅ¡ka prilikom uÄitavanja wallet.dat + + + Error loading wallet.dat: Wallet corrupted + PogreÅ¡ka pri uÄitavanju wallet.dat: novÄanik oÅ¡tećen + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + PogreÅ¡ka prilikom uÄitavanja wallet.dat: NovÄanik zahtijeva noviju verziju PIVX jezgre + + + Error opening block database + PogreÅ¡ka pri otvaranju baze podataka blokova + + + Error reading from database, shutting down. + PogreÅ¡ka pri Äitanju iz baze podataka, zatvaranje. + + + Error writing zerocoinDB to disk + GreÅ¡ka u zapisivanju zerocoinDB na disk + + + Error + GreÅ¡ka + + + Error: A fatal internal error occured, see debug.log for details + PogreÅ¡ka: DoÅ¡lo je do kobne interne pogreÅ¡ke, pogledajte detalje o debug.logu + + + Error: Disk space is low! + PogreÅ¡ka: prostor na disku je nizak! + + + Error: Unsupported argument -tor found, use -onion. + PogreÅ¡ka: neodržani argument - tor pronaÄ‘en, koristite -onion. + + + Error: Wallet locked, unable to create transaction! + PogreÅ¡ka: NovÄanik zakljuÄan, ne može stvoriti transakciju! + + + Failed to calculate accumulator checkpoint + Nije uspjelo izraÄunavanje kontrolne toÄke akumulatora + + + Failed to listen on any port. Use -listen=0 if you want this. + SluÅ¡anje nije bilo na bilo kojem prikljuÄku. Koristite -listen = 0 ako to želite. + + + Failed to read block + GreÅ¡ka Äitanja bloka + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Naknada (u PIV / kB) za dodavanje transakcija koje Å¡aljete (zadano: %s) + + + Force safe mode (default: %u) + Prisilno poktretanje sigurnosnog naÄina rada (zadano: %u) + + + Generate coins (default: %u) + Generirajte novÄiće (zadano: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Koliko blokova treba provjeriti pri pokretanju (zadano: %u, 0 = sve) + + + If <category> is not supplied, output all debugging information. + ako <category>nije isporuÄen, ispiÅ¡ite sve informacije o uklanjanju pogreÅ¡aka. + + + Importing... + Uvozim... + + + Imports blocks from external blk000??.dat file + Uvoz blokova iz vanjske blk000 ?? dat datoteke + + + Include IP addresses in debug output (default: %u) + UkljuÄi IP adrese u izlaz za ispravljanje pogreÅ¡aka (zadano: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + NetoÄan ili nijedan blok geneze nije pronaÄ‘en. PogreÅ¡an datadir za mrežu? + + + Information + Informacije + + + Initialization sanity check failed. PIVX Core is shutting down. + Provjera ispravnosti inicijalizacije nije uspjela. PIVX Core se zatvara. + + + Insufficient funds + Nedovoljna sredstva + + + Insufficient funds. + Nedovoljna sredstva. + + + Invalid -onion address or hostname: '%s' + nevažeća -onion adresa ili naziv hosta: '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + Nevažeći iznos za -maxtxfee =<amount>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Nevažeći iznos za -minrelaytxfee =<amount>: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Nevažeći iznos za -mintfee=<amount>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Nevažeći iznos za -paytxfee =<amount>: '%s' (mora biti barem %s) + + + Invalid amount for -paytxfee=<amount>: '%s' + Nevažeći iznos za -paytxfee =<amount>: '%s' + + + Invalid amount for -reservebalance=<amount> + Nevažeći iznos za -reservebalance =<amount> + + + Invalid amount + Nevažeći iznos + + + Invalid masternodeprivkey. Please see documenation. + Nevažeći masternodeprivkey. Molimo pogledajte dokumentaciju. + + + Invalid netmask specified in -whitelist: '%s' + Nevažeća mrežna maska specificirana u kategoriji -whitelist: '%s' + + + Invalid port detected in masternode.conf + Nevažeći port otkriven u masternode.conf + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Postotak automatskog kovanog Zerocoina (1-100, zadano: %u) + + + Reindex the PIV and zPIV money supply statistics + Ponovno indeksirati statistiku PIV i zPIV ponude novca + + + Reindexing zerocoin database... + Reindeksiranje zerocoin databaze... + + + Reindexing zerocoin failed + Reindeksiranje zerocoin neuspjelo + + + Selected coins value is less than payment target + Odabrana vrijednost novÄića je manja od koliÄine za plaÄanje + + + SwiftX options: + SwiftX opcije: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + Ovo je priprema za testiranje prije puÅ¡tanja - upotrebljavajte na vlastiti rizik - nemojte ga koristiti za staking ili trgovinske aplikacije! + + + mints deleted + + mints izbrisana + + + + mints updated, + mintova ažurirano + + + unconfirmed transactions removed + + uklonjene nepotvrÄ‘ene transakcije + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Onemogući sve specifiÄne funkcije PIVX (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, zadano: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Omogućite SwiftX, prikažite potvrde za zakljuÄane transakcije (bool, zadano: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + PogreÅ¡ka: transakcija je odbijena! To se može dogoditi ako su neki od novÄića u vaÅ¡em novÄaniku već bili potroÅ¡eni, primjerice, ako ste upotrijebili kopiju wallet.data, a novÄići su potroÅ¡eni u kopiji, ali nisu oznaÄeni kao ovdje potroÅ¡eni. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + PogreÅ¡ka: ova transakcija zahtijeva naknadu za transakciju od najmanje %s zbog svoje koliÄine, složenosti ili koriÅ¡tenja nedavno primljenih sredstava! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + PogreÅ¡ka: pronaÄ‘en je nepotpuni argument. Checklevel mora biti razina 4. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + IzvrÅ¡i naredbu kada se promijeni najbolji blok i njezina veliÄina je gotova (%s u cmd zamjenjuje blok hash, %d s veliÄinom bloka) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Nije pronaÄ‘en set novÄića koji se drže s manje od maksimuma potroÅ¡nje + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + U rijetkim sluÄajevima, potroÅ¡nja s 7 kovanica premaÅ¡uje naÅ¡u maksimalnu dopuÅ¡tenu veliÄinu transakcije, pokuÅ¡ajte ponovo pokuÅ¡ati potroÅ¡iti 6 ili manje kovanica + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Preferirana denominacija za automatski ovjereni Zerocoin (1/5/10/50/100/500/1000/5000), 0 bez preferencije. zadana vrijednost: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Navedite put prilagoÄ‘enog sigurnosnog kopiranja da biste dodali kopiju bilo koje automatske zPIV sigurnosne kopije. Ako je postavljeno kao dir, svaka sigurnosna kopija generira vremensku datoteku. Ako je postavljen kao datoteka, prepisat će na tu datoteku svaku kopiju. Ako je postavljen backuppath, dogodit će se 4 sigurnosne kopije + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Navedite put prilagoÄ‘enog sigurnosnog kopiranja da biste dodali kopiju sigurnosne kopije lisnice. Ako je postavljeno kao dir, svaka sigurnosna kopija generira vremensku datoteku. Ako je postavljen kao datoteka, prepisat će na tu datoteku svaku kopiju. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftX zahtijeva ulaze s najmanje 6 potvrda, možda ćete morati priÄekati nekoliko minuta i pokuÅ¡ati ponovo. + + + <category> can be: + <category> može biti: + + + Attempt to force blockchain corruption recovery + PokuÅ¡aj prisiljavanja blokiranja korupcije na oporavak + + + CoinSpend: Accumulator witness does not verify + CoinSpend: Svjedok akumulatora ne potvrÄ‘uje + + + Display the stake modifier calculations in the debug.log file. + Prikažite izraÄune modifikatora uloga u debug.log datoteci. + + + Display verbose coin stake messages in the debug.log file. + Prikažite opsežne poruke za ulaganje novÄića u datoteku debug.log. + + + Enable publish hash block in <address> + Omogući blokiranje zbirke oglasa u sustavu<address> + + + Enable publish hash transaction in <address> + Omogući transakciju hash transakcije u sustavu <address> + + + Enable publish raw block in <address> + Omogući objavljivanje neobraÄ‘enog bloka u <address> + + + Enable publish raw transaction in <address> + Omogući objavljivanje neobraÄ‘ene transakcije u<address> + + + Enable staking functionality (0-1, default: %u) + Omogući funkcionalnost odstupanja (0-1, zadano: %u) + + + Error: A fatal internal error occurred, see debug.log for details + PogreÅ¡ka: DoÅ¡lo je do kobne interne pogreÅ¡ke, pogledajte detalje o debug.logu + + + Error: No valid utxo! + PogreÅ¡ka: Nema valjanog utxo! + + + Failed to create mint + Nije uspjelo kovanje + + + Failed to find Zerocoins in wallet.dat + Neuspjelo pronalaženje Zerocoina u wallet.dat + + + Failed to select a zerocoin + Odabir Zerocoina nije uspjelo + + + Failed to wipe zerocoinDB + Neuspjelo brisanje zerocoinDB + + + Failed to write coin serial number into wallet + Nije uspio zapisi serijskog broja novÄića u novÄanik + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Zadržite najviÅ¡e <n> neprenosive transakcije u memoriji (zadano: %u) + + + Limit size of signature cache to <n> entries (default: %u) + OgraniÄite veliÄinu predmemorije potpisa na 1 unosa (zadano: %u) + + + Line: %d + Linija: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + SluÅ¡ajte za povezivanje JSON-RPC veze <port> (zadano: %u ili testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + SluÅ¡ajte za veze <port>ukljuÄeno (zadano: %u ili testnet: %u) + + + Loading addresses... + UÄitavanje adresa ... + + + Loading block index... + UÄitavanje indeksa blokova ... + + + Loading budget cache... + UÄitavanje predmemorije proraÄuna ... + + + Loading masternode cache... + UÄitavanje predmemorije masternoda ... + + + Loading masternode payment cache... + UÄitavanje predmemorije plaćanja masternoda ... + + + Loading sporks... + UÄitavanje aplikacije ... + + + Loading wallet... (%3.2f %%) + UÄitavanje novÄanika ... (%3.2f %%) + + + Loading wallet... + UÄitavanje novÄanika... + + + Location of the auth cookie (default: data dir) + Lokacija autentiÄnog kolaÄića (zadano: dir. Podataka) + + + Lock masternodes from masternode configuration file (default: %u) + ZakljuÄaj masternode iz masternode konfiguracijske datoteke (zadano: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Potražnja(): nevažeća adresa -proxy ili naziv hosta: '%s' + + + Maintain at most <n> connections to peers (default: %u) + Održavajte najviÅ¡e <n> veza s vrÅ¡njacima (zadano: %u) + + + Masternode options: + Opcije Masternoda: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Maksimalni meÄ‘uspremnik za primanje veze, <n>* 1000 bajta (zadano: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Maksimalni poÅ¡iljatelj za slanje po vezama, <n>* 1000 bajta (zadano: %u) + + + Mint did not make it into blockchain + Kovanje nije uÅ¡lo u blockchain + + + Need to specify a port with -whitebind: '%s' + Morate navesti vezu s -whitebind: '%s' + + + Node relay options: + Opcije releja Ävorova: + + + Not enough file descriptors available. + Nije dostupno dovoljno deskriptora datoteka. + + + Number of automatic wallet backups (default: 10) + Broj automatskih sigurnosnih kopija novÄanika (zadani: 10) + + + Number of custom location backups to retain (default: %d) + Broj sigurnosnih kopija prilagoÄ‘enih lokacija za zadržavanje (zadano: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Prihvatite blok lanac koji odgovara ugraÄ‘enim kontrolnim toÄkama (zadano: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Samo se povežite s Ävorovima u mreži <net>(ipv4, ipv6 ili luk) + + + Options: + MoguÄnosti: + + + Password for JSON-RPC connections + Lozinka za JSON-RPC veze + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid (): Nevažeća proxy adresa ili naziv hosta: '%s' + + + Preparing for resync... + Priprema za resync ... + + + Prepend debug output with timestamp (default: %u) + Dodaj na poÄetak izlaz za uklanjanje pogreÅ¡aka s vremenskom oznakom (zadano: %u) + + + Print version and exit + Ispis verzije i izlaz + + + RPC server options: + Opcije RPC poslužitelja: + + + Randomly drop 1 of every <n> network messages + NasumiÄno ispusti 1 svake <n> mrežne poruke + + + Randomly fuzz 1 of every <n> network messages + OznaÄava sluÄajno svaka 1 <n> mrežne poruke + + + Rebuild block chain index from current blk000??.dat files + Obnovi indeks blok lanca iz trenutnih blk000??.dat datoteka + + + Receive and display P2P network alerts (default: %u) + Primanje i prikaz upozorenja P2P mreže (zadano: %u) + + + Reindex the accumulator database + Ponovno indeksirati bazu podataka akumulatora + + + Relay and mine data carrier transactions (default: %u) + Transakcije prijenosnika i minanja podataka (zadano: %u) + + + Relay non-P2SH multisig (default: %u) + Relay ne-P2SH multisig (zadano: %u) + + + Rescan the block chain for missing wallet transactions + Ponovno skeniranje blok-lanca za transakcije novÄanika koji nedostaju + + + Rescanning... + Ponovno skeniranje ... + + + ResetMintZerocoin finished: + ResetMintZerocoin je zavrÅ¡io: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin zavrÅ¡io: + + + Run a thread to flush wallet periodically (default: %u) + Pokrenite niti kako biste redovito priguÅ¡ili novÄanik (zadano: %u) + + + Run in the background as a daemon and accept commands + Radi u pozadini kao daemon i prihvatite naredbe + + + Send transactions as zero-fee transactions if possible (default: %u) + Ako je moguće, poÅ¡aljite transakcije kao transakcije s nultom naknadom (zadano: %u) + + + Session timed out. + Sjednica je istekla. + + + Set database cache size in megabytes (%d to %d, default: %d) + Postavite veliÄinu predmemorije baze podataka u megabajtima (%d do %d, zadano: %d) + + + Set external address:port to get to this masternode (example: %s) + Postavite vanjsku adresu:port da biste doÅ¡li do tog masternoda (primjer: %s) + + + Set key pool size to <n> (default: %u) + Postavite veliÄinu veliÄine baze na <n> (zadano: %u) + + + Set maximum block size in bytes (default: %d) + Postavite maksimalnu veliÄinu bloka u bajtima (zadano: %d) + + + Set minimum block size in bytes (default: %u) + Postavite minimalnu veliÄinu bloka u bajtovima (zadano: %u) + + + Set the Maximum reorg depth (default: %u) + Postavite maksimalnu dubinu reorg (zadano: %u) + + + Set the masternode private key + Postavite masternode privatni kljuÄ + + + Set the number of threads to service RPC calls (default: %d) + Postavite broj niti za RPC pozive usluge (zadano: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Postavlja DB_PRIVATE zastavicu u okruženju novÄanika db (zadano: %u) + + + Show all debugging options (usage: --help -help-debug) + Prikaži sve opcije uklanjanja pogreÅ¡aka (upotreba: --help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Smanji datoteku debug.log na pokretanju klijenta (zadano: 1 kada nema -debug) + + + Signing timed out. + Potpisivanje je isteklo. + + + Signing transaction failed + Potpisivanje transakcije nije uspjelo + + + Specify configuration file (default: %s) + Navedite konfiguracijsku datoteku (zadano: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Navedite vrijeme veze u milisekundama (minimalno: 1, zadano: %d) + + + Specify data directory + Navedite direktorij podataka + + + Specify masternode configuration file (default: %s) + Navedite masternode konfiguracijsku datoteku (zadano: %s) + + + Specify pid file (default: %s) + Navedite datoteku pid (zadano: %s) + + + Specify wallet file (within data directory) + Odredite datoteku novÄanika (u direktoriju podataka) + + + Specify your own public address + Navedite svoju javnu adresu + + + Spend Valid + PotroÅ¡nja valjana + + + Spend unconfirmed change when sending transactions (default: %u) + Provedite nepotvrÄ‘ene promjene prilikom slanja transakcija (zadano: %u) + + + Staking options: + Mogućnosti Stakinga: + + + Stop running after importing blocks from disk (default: %u) + Prestani prikazivati nakon uvoza blokova s diska (zadano: %u) + + + Synchronization failed + Sinkronizacija neuspjela + + + Synchronization finished + Sinkronizacija zavrÅ¡ena + + + Synchronization pending... + Sinkronizacija je na Äekanju ... + + + Synchronizing budgets... + Sinkronizacija proraÄuna ... + + + Synchronizing masternode winners... + UsklaÄ‘ivanje dobitnika masternoda... + + + Synchronizing masternodes... + Sinkronizacija masternoda... + + + Synchronizing sporks... + Sinkronizacija sporka... + + + Syncing zPIV wallet... + Sinkronizacija zPIV novÄanika... + + + The coin spend has been used + KoriÅ¡tena je potroÅ¡nja novÄića + + + The transaction did not verify + Transakcija nije potvrÄ‘ena + + + This help message + Ova poruka za pomoć + + + This is experimental software. + Ovo je pokusni software + + + This is intended for regression testing tools and app development. + To je namijenjeno alatima za test regresije i razvoju aplikacija. + + + Threshold for disconnecting misbehaving peers (default: %u) + Prag za odspajanje loÅ¡ih vrÅ¡njaka (zadano: %u) + + + Too many spends needed + Potrebno je previÅ¡e PotroÅ¡nji + + + Tor control port password (default: empty) + Lozinka za kontrolni port Tor (zadano: prazno) + + + Tor control port to use if onion listening enabled (default: %s) + Tor kontrolni prikljuÄak koji će se koristiti ako je ukljuÄeno sluÅ¡anje portova (zadano: %s) + + + Transaction Created + Stvorena transakcija + + + Transaction Mint Started + Transakcijsko kovanje zapoÄeto + + + Transaction amount too small + Iznos transakcije premali + + + Transaction amounts must be positive + Iznos transakcije mora biti pozitivan + + + Transaction too large for fee policy + Transakcija prevelika da bi bila besplatna + + + Transaction too large + Transakcija prevelika + + + Trying to spend an already spent serial #, try again. + PokuÅ¡avate potroÅ¡iti već utroÅ¡eni serijski broj #, pokuÅ¡ajte ponovo. + + + Unable to bind to %s on this computer (bind returned error %s) + Nije moguće vezati se na %s na ovom raÄunalu (vezanje vraćene pogreÅ¡ke %s) + + + Unable to sign spork message, wrong key? + Nije moguće potpisati spork poruku, pogreÅ¡an kljuÄ? + + + Unable to start HTTP server. See debug log for details. + Nije moguće pokrenuti HTTP poslužitelj. Detalje potražite u debug logu. + + + Unknown network specified in -onlynet: '%s' + Nepoznata mreža specificirana u -onlynet: '%s' + + + Upgrade wallet to latest format + Nadogradnja novÄanika u najnoviji format + + + Use UPnP to map the listening port (default: %u) + Koristite UPnP za mapiranje prikljuÄka za sluÅ¡anje (zadano: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Koristite UPnP za mapiranje porta za sluÅ¡anje (zadano: 1 prilikom sluÅ¡anja) + + + Use a custom max chain reorganization depth (default: %u) + Koristite prilagoÄ‘enu maksimalnu dubinu reorganizacije lanca (zadano: %u) + + + Use the test network + Koristi testnu mrežu + + + Username for JSON-RPC connections + KorisniÄko ime za JSON-RPC veze + + + Value is below the smallest available denomination (= 1) of zPIV + Vrijednost je niža od najmanje dostupne denominacije (= 1) zPIV-a + + + Verifying blocks... + Provjera blokova ... + + + Verifying wallet... + Provjera novÄanika... + + + Wallet %s resides outside data directory %s + NovÄanik %s nalazi se izvan direktorija podataka %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + Potrebno je prepisati novÄanik: ponovo pokrenite PIVX Core + + + Wallet options: + Opcije novÄanika: + + + Wallet window title + Naziv prozora novÄanika + + + Warning + Upozorenje + + + Warning: This version is obsolete, upgrade required! + Upozorenje: Ova verzija je zastarjela, potrebna nadogradnja! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Upozorenje: nepodržani argument -baschmark zanemaren, upotrijebite -debug = klupu. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Upozorenje: nepodržani argument -debugnet ignoriran, upotrijebite -debug=net. + + + You don't have enough Zerocoins in your wallet + Nemate dovoljno Zerocoina u novÄaniku + + + You need to rebuild the database using -reindex to change -txindex + orate obnoviti bazu podataka koristeći -index za promjenu -txindexa + + + Zapping all transactions from wallet... + Zapping svih transakcija iz novÄanika ... + + + ZeroMQ notification options: + Mogućnosti ZeroMQ obavijesti: + + + Zerocoin options: + Zerocoin mogućnosti: + + + on startup + na pokretanju + + + wallet.dat corrupt, salvage failed + wallet.dat korumpiran, spaÅ¡avanje nije uspjelo + + + + send + + Form + Obrazac + + + TextLabel + TextLabel + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_it.ts b/src/qt/locale/pivx_it.ts new file mode 100644 index 0000000..5439840 --- /dev/null +++ b/src/qt/locale/pivx_it.ts @@ -0,0 +1,7581 @@ + + + AddNewAddressDialog + + Dialog + Finestra di dialogo + + + My Address + Il mio indirizzo + + + Address + Indirizzo + + + PushButton + Premi il bottone + + + CANCEL + CANCELLA + + + OK + OK + + + + AddNewContactDialog + + Dialog + Finestra di dialogo + + + TextLabel + Etichetta + + + CANCEL + CANCELLA + + + OK + OK + + + Edit Contact + Modifica il contatto + + + Set a label for the selected address + Imposta un'etichetta per l'indirizzo selezionato + + + Enter a name for the address (e.g Exchange) + Inserisci un nome per l'indirizzo (ad es. Exchange) + + + SAVE + SALVA + + + Edit label for the selected address: +%1 + Modifica l'etichetta per l'indirizzo selezionato +%1 + + + + AddressBookPage + + Right-click to edit address or label + Fare click col pulsante destro per modificare l'indirizzo o l'etichetta + + + Create a new address + Crea un nuovo indirizzo + + + &New + &Nuovo + + + Copy the currently selected address to the system clipboard + Copia l'indirizzo selezionato negli appunti + + + &Copy + &Copia + + + Delete the currently selected address from the list + Elimina l'indirizzo selezionato dalla lista + + + &Delete + &Elimina + + + Export the data in the current tab to a file + Esporta i dati della scheda corrente in un file + + + &Export + &Esporta + + + C&lose + C&hiudi + + + Choose the address to send coins to + Seleziona l'indirizzo a cui inviare valuta + + + Choose the address to receive coins with + Seleziona l'indirizzo a cui ricevere valuta + + + C&hoose + &Seleziona + + + Sending addresses + Indirizzi di destinazione + + + Receiving addresses + Indirizzi di ricezione + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Questi sono gli indirizzi PIVX per l'invio di pagamenti. Controlla sempre l'importo e l'indirizzo di ricezione prima di inviare valuta. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Questi sono gli indirizzi PIVX per la ricezione di pagamenti. Si raccomanda di utilizzare un indirizzo diverso per ogni transazione. + + + &Copy Address + &Copia indirizzo + + + Copy &Label + Copia &etichetta + + + &Edit + &Modifica + + + Export Address List + Esporta elenco indirizzi + + + Comma separated file (*.csv) + File separato da virgola (*.csv) + + + Exporting Failed + Esportazione fallita + + + There was an error trying to save the address list to %1. Please try again. + Si è verificato un errore nel salvataggio dell'elenco indirizzi in %1. Si prega di ritentare. + + + + AddressLabelRow + + Form + Modulo + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + AddressTableModel + + Label + Etichetta + + + Address + Indirizzo + + + Date + Data + + + (no label) + (nessuna etichetta) + + + + AddressesWidget + + Form + Modulo + + + Send + Invia + + + TextLabel + Etichetta + + + No active Master Node yet + Ancora nessun MasterNode attivo + + + Contact name + Nome del contatto + + + Enter address + Inserire indirizzo + + + OK + OK + + + Contacts + Contatti + + + You can add a new one in the options menu to the side. + Puoi aggiungerne uno nuovo nel menu delle opzioni a lato. + + + No contacts yet + Ancora nessun contatto + + + e.g. John Doe + ad es. John Doe + + + Enter a PIVX address + Inserisci un indirizzo PIVX + + + SAVE + SALVA + + + Invalid Contact Address + Indirizzo di contatto non valido + + + Cannot store your own address as contact + Impossibile memorizzare il proprio indirizzo come contatto + + + Address already stored, label: %1 + Indirizzo già memorizzato, etichetta: %1 + + + New Contact Stored + Nuovo contatto memorizzato + + + Error Storing Contact + Errore durante la memorizzazione del contatto + + + Contact edited + Contatto modificato + + + Contact edit failed + Modifica contatto non riuscita + + + Delete Contact + Cancella contatto + + + You are just about to remove the contact: + +%1 + +Are you sure? + Stai per rimuovere il contatto: + +%1 + +Sei sicuro? + + + Contact Deleted + Contatto cancellato + + + Error deleting a contact + Errore cancellando il contatto + + + Address copied + Indirizzo copiato + + + + AskPassphraseDialog + + Passphrase Dialog + Inserimento frase d'accesso + + + TextLabel + Etichetta + + + PushButton + Premi il bottone + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Inserisci la nuova frase d'accesso per il portafoglio.<br/>Si raccomanda di usare una frase d'accesso di <b>dieci o più caratteri casuali</b>, oppure di <b>otto o più parole</b>. + + + Encrypt wallet + Crittografa portafoglio + + + This operation needs your wallet passphrase to unlock the wallet. + Questa operazione richiede la parola d'ordine per sbloccare il portafoglio. + + + Unlock wallet +for staking + Sblocca portafoglio +per lo staking + + + Unlock wallet + Sblocca portafoglio + + + This operation needs your wallet passphrase to decrypt the wallet. + Questa operazione richiede la parola d'ordine per decrittografare il portafoglio. + + + Decrypt wallet + Decrittografa portafoglio + + + Change passphrase + Cambia frase d'accesso + + + Enter the old and new passphrase to the wallet. + Inserire la vecchia e la nuova parola d'ordine per il portafoglio. + + + Confirm wallet encryption + Conferma cifratura portafoglio + + + ENCRYPT + Crittografa + + + CANCEL + CANCELLA + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX verrà ora chiuso per completare il processo di cifratura. Ricorda che crittografare il tuo portafoglio non protegge completamente i tuoi PIV dal furto da parte di software malevoli che potrebbero infettare il tuo computer. + + + Are you sure you wish to encrypt your wallet? + Confermi di voler crittografare il portafoglio? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Attenzione: Se crittografi il portafoglio e poi perdi la parola d'ordine, <b>PERDERAI TUTTI I TUOI PIV<7b>! + + + Wallet encrypted + Portafoglio crittografato + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + IMPORTANTE: Eventuali file di back-up precedenti del tuo portafoglio dovrebbero essere sostituiti con il nuovo file criptato generato. Per motivi di sicurezza, precedenti file di back-up del portafoglio non criptato diventeranno inutilizzabili nel momento in cui inizierai ad utilizzare il nuovo portafoglio criptato. + + + Wallet encryption failed + Cifratura portafoglio fallita + + + OK + OK + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + La cifratura del portafoglio è fallita a causa di un errore interno. Il portafoglio non è stato crittografato. + + + The supplied passphrases do not match. + Le parole d'ordine fornite con coincidono. + + + Wallet unlock failed + Sblocco portafoglio fallito + + + The passphrase entered for the wallet decryption was incorrect. + La frase immessa per la decrittografare il portafoglio era errata. + + + Wallet decryption failed + Decodifica del portafoglio non riuscita + + + Wallet passphrase was successfully changed. + La passphrase del portafoglio è stata modificata correttamente. + + + Warning: The Caps Lock key is on! + Attenzione: il tasto Caps Lock è attivo! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + Bloccato fino a + + + + BlockExplorer + + Blockchain Explorer + Esplora catena dei blocchi + + + Back + Indietro + + + Forward + Avanti + + + Address / Block / Transaction + Indirizzo / Blocco / Transazione + + + Search + Cerca + + + TextLabel + Etichetta + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Non tutte le transazioni verranno visualizzate. Per vedere tutte le transazioni è necessario aggiungere txindex=1 nel file di configurazione (pivx.conf) + + + + CSRow + + Form + Modulo + + + Savings + Risparmi + + + 0,00 PIV + 0,00 PIV + + + address + indirizzo + + + Not Staking + Staking non attivo + + + Own delegation + Propria delega + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Totale: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Sconosciuti: %5) + + + Network Alert + Avviso di rete + + + + CoinControlDialog + + Quantity: + Quantità: + + + Bytes: + Byte: + + + Fee: + Commissione: + + + Coin Selection + Selezione valuta + + + Dust: + Polvere: + + + Change: + Differenza: + + + Tree mode + Modalità albero + + + List mode + Modalità lista + + + (1 locked) + (1 bloccato) + + + Amount + Ammontare + + + Transaction Details + Dettagli della transazione + + + PushButton + Premi il bottone + + + 0.00 PIV + 0.00 PIV + + + 0 + 0 + + + Select all + Seleziona tutto + + + Toggle lock state + Attiva/disattiva stato bloccato + + + Received with label + Ricevute con etichetta + + + Received with address + Ricevute con indirizzo + + + After Fee: + Al netto della commissione: + + + OK + OK + + + Date + Data + + + Confirmations + Conferme + + + Confirmed + Confermata + + + Copy address + Copia indirizzo + + + Copy label + Copia etichetta + + + Copy amount + Copia ammontare + + + Copy transaction ID + Copia ID transazione + + + Lock unspent + Blocca non spesi + + + Unlock unspent + Sblocca non spesi + + + Copy quantity + Copia importo + + + Copy fee + Copia commissione + + + Copy after fee + Copia importo al netto della commissione + + + Copy bytes + Copia byte + + + Copy priority + Copia priorità + + + Copy dust + Copia polvere + + + Copy change + Copia resto + + + Unselect all + Deseleziona tutto + + + Please switch to "List mode" to use this function. + Prego selezionare "Modalità lista" per utilizzare questa funzione + + + highest + massima + + + higher + molto alta + + + high + alta + + + medium-high + medio-alta + + + medium + media + + + low-medium + medio-bassa + + + low + basso + + + lower + bassa + + + lowest + minima + + + (%1 locked) + (%1 bloccati) + + + none + nessuno + + + yes + si + + + no + no + + + This label turns red, if the transaction size is greater than 1000 bytes. + Questa etichetta diventerà rossa se la transazione supera i 1000 bytes + + + This means a fee of at least %1 per kB is required. + Vuol dire che è richiesta una commissione minima di %1 per kB. + + + Can vary +/- 1 byte per input. + Può variare di +/- 1 byte per input. + + + Transactions with higher priority are more likely to get included into a block. + Transazioni con priorità maggiore verranno aggiunte con maggiore probabilità in un blocco. + + + This label turns red, if the priority is smaller than "medium". + Questa etichetta diventa rossa se la priorità è inferiore a "media". + + + This label turns red, if any recipient receives an amount smaller than %1. + Questa etichetta diventa rossa se uno dei destinatari riceve un importo inferiore a %1. + + + Can vary +/- %1 upiv per input. + Può variare di +/- %1 uPIV per input. + + + (no label) + (nessuna etichetta) + + + change from %1 (%2) + resto da %1 (%2) + + + (change) + (resto) + + + + CoinControlPivWidget + + Dialog + Finestra di dialogo + + + Transaction Details + Dettagli della transazione + + + PushButton + Premi il bottone + + + PIV: + PIV: + + + TextLabel + Etichetta + + + Quantity: + Quantità: + + + Fee: + Commissione: + + + Amount + Ammontare + + + Label + Etichetta + + + Address + Indirizzo + + + Type + Tipo + + + Date + Data + + + Confirmations + Conferme + + + CheckBox + CheckBox + + + Bytes: + Byte: + + + Dust: + Polvere: + + + Change: + Differenza: + + + After Fee: + Al netto della commissione: + + + CANCEL + CANCELLA + + + OK + OK + + + + ColdStakingWidget + + Form + Modulo + + + Title + Titolo + + + TextLabel + Etichetta + + + PushButton + Premi il bottone + + + Owner Address (optional, if empty a new address will be created) + Indirizzo del proprietario (facoltativo, se vuoto verrà creato un nuovo indirizzo) + + + List of delegated balance by address + Lista dei saldi delegati per indirizzo + + + Total + Totale + + + Unconfirmed balance will not be shown + Il saldo non confermato non verrà visualizzato + + + No balance delegated + Nessun saldo delegato + + + Cold Staking + Cold Staking + + + Staker + Staker + + + Delegation + Delega + + + You can delegate your PIVs and let a hot node (24/7 online node) +stake in your behalf, keeping the keys in a secure place offline. + Puoi delegare i tuoi PIV e lasciare un nodo attivo (nodo online 24/7) ad +effettuare lo stake a tuo nome, mantenendo le chiavi in ​​un luogo sicuro offline. + + + Add owner address + Aggiungi indirizzo proprietario + + + Delegate or Accept PIV delegation + Delegare o accettare la delega PIV + + + Delegate + Delegato + + + Clear All + Cancella tutto + + + Add the staking address + Aggiungere l'indirizzo di staking + + + Delegated balance history + Storia dei saldi delegati + + + No delegations yet + Ancora nessuna delega + + + Total Staking: %1 + Totale Staking: %1 + + + Error loading delegations: %1 + Errore durante il caricamento delle deleghe: %1 + + + No contacts available, you can go to the contacts screen and add some there! + Nessun contatto disponibile, puoi andare alla schermata dei contatti e aggiungerne alcuni! + + + Cold staking is networkely disabled + Il cold staking è disabilitato sulla rete + + + Invalid entry + Valore non valido + + + Invalid entry, minimum delegable amount is 10 PIV + Voce non valida, importo minimo delegabile è 10 PIV + + + Owner address invalid + Indirizzo proprietario non valido + + + ALERT! + AVVISO! + + + Delegating to an external owner address! + +The delegated coins will NOT be spendable by this wallet. +Spending these coins will need to be done from the wallet or +device containing the owner address. + +Do you wish to proceed? + Delega a un indirizzo di proprietà esterna! + +Le valute delegate NON saranno spendibili da questo portafoglio. +La spesa di queste valute dovrà essere effettuata dal portafoglio o +dispositivo contenente l'indirizzo del proprietario. + +Vuoi procedere? + + + Staking address corresponds to this wallet, change it to an external node + L'indirizzo di staking corrisponde a questo portafoglio, cambiarlo in un nodo esterno + + + Cannot create transaction. + Impossibile creare la transazione. + + + Coins delegated + Valute delegate + + + You don't have any PIV to select. + Non hai alcun PIV da selezionare. + + + URI copied to clipboard + URI copiato negli appunti + + + Address copied to clipboard + Indirizzo copiato negli appunti + + + Copy + Copia + + + Edit + Modifica + + + Stake + Stake + + + Blacklist + Lista nera + + + Edit Label + Modifica etichetta + + + Copy owner +address + Copia indirizzo +proprietario + + + Address copied + Indirizzo copiato + + + Edit Cold Address Label + Modifica etichetta indirizzo "cold" + + + Whitelist failed, please check the logs + Lista bianca non riuscita, controlla i registri + + + staking! + staking! + + + Blacklist failed, please check the logs + Lista nera non riuscita, controlla i registri + + + blacklisted from staking + in lista nera dallo staking + + + Owner address copied + Indirizzo del proprietario copiato + + + Edit Owner Address Label + Modifica etichetta indirizzo proprietario + + + Address label saved + Etichetta salvata + + + Error storing address label + Errore salvando l'etichetta indirizzo + + + + ContactDropdownRow + + Form + Modulo + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + DashboardWidget + + Form + Modulo + + + Transactions + Transazioni + + + You can see here the history of your account + Puoi vedere qui la cronologia del tuo account + + + Warning + Avvertimento + + + No transactions + Nessuna transazione + + + PushButton + Premi il bottone + + + Staking Rewards + Premi dello Staking + + + TextLabel + Etichetta + + + Staking statistics + Statistiche dello Staking + + + PIV + PIV + + + zPIV + zPIV + + + Sort by + Ordina per + + + Days + Giorni + + + Months + Mesi + + + Years + Anni + + + Filter by + Filtra per + + + LabelText + LabelText + + + You can view your account's history + Puoi vedere la cronologia del tuo account + + + Amount of PIV and zPIV staked. + Quantità di PIV e zPIV dallo stake. + + + All + Tutto + + + Received + Ricevuto + + + Sent + Inviato + + + Mined + Minato + + + Minted + Forgiato + + + MN reward + Premio del MN + + + To yourself + A te stesso + + + Cold stakes + Cold stakes + + + Hot stakes + Hot stakes + + + Delegated + Delegato + + + Delegations + Deleghe + + + Please wait until the wallet is fully synced to see your correct balance + Attendi fino a quando il portafoglio non è completamente sincronizzato per vedere il tuo saldo corretto + + + No transactions yet + Ancora nessuna transazione + + + How to get PIV or zPIV + Come ottenere PIV o zPIV + + + You can verify the staking activity in the status bar at the top right of the wallet. +It will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced. + Puoi verificare l'attività di staking nella barra di stato in alto a destra nel portafoglio. +Si avvierà automaticamente non appena il portafoglio avrà sufficienti conferme su eventuali saldi non spesi e il portafoglio si sarà sincronizzato. + + + You have no staking rewards + Non hai ricompense di staking + + + No charts library + Nessuna libreria di grafici + + + Loading chart.. + Caricando i grafici... + + + Error loading chart, invalid show option + Errore durante il caricamento del grafico, opzione di visualizzazione non valida + + + Error loading chart, invalid data + Errore durante il caricamento del grafico, data non valida + + + Error loading chart: %1 + Errore durante il caricamento del grafico: %1 + + + + DefaultDialog + + Form + Modulo + + + Transaction Details + Dettagli della transazione + + + Text Label + Etichetta del testo + + + CANCEL + CANCELLA + + + SAVE + SALVA + + + + DenomGenerationDialog + + Form + Modulo + + + Transaction Details + Dettagli della transazione + + + PushButton + Premi il bottone + + + This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again. + Questo sbloccherà completamente il tuo portafoglio, in modo che chiunque abbia accesso ad esso possa spendere fino a quando il portafoglio non verrà chiuso o nuovamente bloccato. + + + 5000 + 5000 + + + 100 + 100 + + + 10 + 10 + + + 1000 + 1000 + + + 50 + 50 + + + 500 + 500 + + + 5 + 5 + + + 1 + 1 + + + Select All + Seleziona tutto + + + CANCEL + CANCELLA + + + SAVE + SALVA + + + + EditAddressDialog + + Edit Address + Modifica indirizzo + + + &Label + &Etichetta + + + The label associated with this address list entry + L'etichetta associata a questa voce dell'elenco indirizzi + + + &Address + &Indirizzo + + + The address associated with this address list entry. This can only be modified for sending addresses. + L'indirizzo associato a questa voce dell'elenco indirizzi. Questo può essere modificato solo per l'invio di indirizzi. + + + New receiving address + Nuovo indirizzo di ricezione + + + New sending address + Nuovo indirizzo di invio + + + Edit receiving address + Modifica indirizzo di ricezione + + + Edit sending address + Modifica indirizzo di invio + + + The entered address "%1" is not a valid PIVX address. + L'indirizzo inserito "%1" non è un indirizzo PIVX valido. + + + The entered address "%1" is already in the address book. + L'indirizzo inserito "%1" è già presente in rubrica. + + + Could not unlock wallet. + Impossibile sbloccare il portafoglio + + + New key generation failed. + Generazione nuovo codice fallita. + + + + ExpandableButton + + Form + Modulo + + + + FreespaceChecker + + A new data directory will be created. + Verrà creata una nuova cartella dati. + + + name + nome + + + Directory already exists. Add %1 if you intend to create a new directory here. + Cartella esistente. Aggiunti %1 se intendi creare una nuova cartella qui. + + + Path already exists, and is not a directory. + Percorso già esistente, e non è una cartella. + + + Cannot create data directory here. + Impossibile creare la cartella dati qui. + + + + GovernancePage + + Form + Modulo + + + GOVERNANCE + GOVERNANCE + + + Update Proposals + Proposte di aggiornamento + + + Next super block: + Prossimo super blocco: + + + 0 + 0 + + + Blocks to next super block: + Blocchi al prossimo super blocco: + + + Days to budget payout (estimate): + Giorni di pagamento del budget (stima): + + + Allotted budget: + Budget assegnato: + + + Budget left: + Budget residuo: + + + Masternodes count: + Numero dei Masternodes: + + + + HelpMessageDialog + + version + versione + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + Informazioni su PIVX Core + + + Command-line options + Opzioni linea di comando + + + Usage: + Utilizzo: + + + command-line options + opzioni linea di comando + + + UI Options: + Opzioni interfaccia: + + + Choose data directory on startup (default: %u) + Seleziona cartella dati all'avvio (predefinita: %u) + + + Show splash screen on startup (default: %u) + Mostra schermata di benvenuto all'avvio (predefinita: %u) + + + Set language, for example "de_DE" (default: system locale) + Imposta lingua, per esempio "it_IT" (predefinito: lingua di sistema) + + + Start minimized + Avvio ridotto a icona + + + Set SSL root certificates for payment request (default: -system-) + Imposta certificati SSL root per richiesta di pagamento (predefinito: -system-) + + + OK + OK + + + + Intro + + Welcome + Benvenuto + + + Welcome to PIVX Core. + Benvenuto in PIVIX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Essendo il primo avvio dell'applicazione, puoi scegliere dove PIVX Core salverà i propri dati. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core scaricherà e salverà una copia della blockchain PIVX. Verranno salvati almeno %1GB di dati in questa cartella, che cresceranno nel tempo. In questa cartella verrà salvato anche il portafoglio. + + + Use the default data directory + Utilizza la cartella dati predefinita + + + Use a custom data directory + Utilizza una cartella dati personalizzata + + + CANCEL + CANCELLA + + + OK + OK + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Errore: la cartella dati specificata "%1" non può essere creata. + + + Error + Errore + + + %1 GB of free space available + %1 GB di spazio disponibile + + + (of %1 GB needed) + (di %1 GB necessari) + + + + LoadingDialog + + Form + Modulo + + + TextLabel + Etichetta + + + Loading + Caricamento + + + . + . + + + + LockUnlock + + Form + Modulo + + + Unlock Wallet + Sblocca portafoglio + + + Lock Wallet + Blocca portafoglio + + + Staking Only + Solo Staking + + + + MNRow + + Form + Modulo + + + user_masternode + user_masternode + + + Address: 88.26.164.88:51474 + Address: 88.26.164.88:51474 + + + Jan. 19, 2019 + 19 Gennaio 2019 + + + + MasterNodeWizardDialog + + Dialog + Finestra di dialogo + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + Intro + Intro + + + Name + Nome + + + Address + Indirizzo + + + Create New Master Node Controller + Crea nuovo controller Masternode + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + <html><head/><body><p>Per creare un Masternode PIVX devi dedicare 10.000 PIV (l'unità di PIVX) alla rete (tuttavia, queste valute sono ancora tue e saranno sempre in tuo possesso). </p><p></p><p>Puoi disattivare il nodo e sbloccare le valute in qualsiasi momento. + + + Make sure you have this amount of coins. + Assicurati di avere questa quantità di valuta. + + + Set Master Node’s Name + Imposta il nome del Masternode + + + <html><head/><body><p>A transaction of 10,000 PIV will be made</p><p>to a new empty address in your wallet.</p><p>The Address is labeled under the master node's name.</p></body></html> + <html><head/><body><p>Verrà effettuata una transazione di 10.000 PIV</p><p>a un nuovo indirizzo vuoto nel tuo portafoglio.<p>L'indirizzo è etichettato con il nome del Masternode.</p></body></html> + + + Set Master Node’s IP and port + Imposta indirizzo IP e porta del Masternode + + + Address of the node that must always be online running the actual master node. + Indirizzo del nodo che deve essere sempre online che esegue il Masternode effettivo. + + + Enter IP address + Inserire indirizzo IP + + + Enter Port + Inserisci porta + + + CANCEL + CANCELLA + + + OK + OK + + + e.g user_masternode + ad es. user_masternode + + + NEXT + AVANTI + + + BACK + INDIETRO + + + address label cannot be empty + l'etichetta dell'indirizzo non può essere vuota + + + IP or port cannot be empty + IP o porta non possono essere vuoti + + + Invalid port number + Valore della porta non valido + + + Prepare master node failed.. + Preparazione del Masternode non riuscita... + + + Invalid masternode.conf file + Il file masternode.conf non è valido + + + Error parsing masternode.conf file + Errore durante l'analisi del file masternode.conf + + + Invalid collaterall output index + Indice di output collaterale non valido + + + Master node created! + Masternode creato! + + + masternode.conf file doesn't exists + il file masternode.conf non esiste + + + The recipient address is not valid, please recheck. + L'indirizzo destinatario non è un indirizzo valido, controllare. + + + The amount to pay must be larger than 0. + L'importo da pagare deve essere maggiore di 0. + + + The amount exceeds your balance. + L'importo eccede il tuo saldo. + + + The total exceeds your balance when the %1 transaction fee is included. + Il totale supera il saldo quando è incluso %1 quale commissione di transazione. + + + Duplicate address found, can only send to each address once per send operation. + È stato trovato un indirizzo duplicato, può essere inviato a ciascun indirizzo solo una volta per operazione di invio. + + + Transaction creation failed! + Creazione della transazione non riuscita! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + La transazione è stata rifiutata! Ciò può accadere se alcune delle valute nel tuo portafoglio fossero già state spese, come se tu avessi usato una copia di wallet.dat e le valute fossero state spese nella copia ma non contrassegnate come spese qui. + + + Error: The wallet was unlocked only to anonymize coins. + Errore: il portafoglio è stato sbloccato solo per rendere anonime le valute. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + Una commissione %1 volte superiore a %2 per kB è considerata una commissione follemente alta. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Errore: il portafoglio è stato sbloccato solo per rendere anonime le valute. Sblocco annullato. + + + + MasterNodesWidget + + Form + Modulo + + + TextLabel + Etichetta + + + No active Master Node yet + Ancora nessun MasterNode attivo + + + PushButton + Premi il bottone + + + Masternodes + Masternodes + + + Full nodes that incentivize node operators to perform the core consensus functions +and vote on the treasury system receiving a periodic reward. + Nodi completi che incentivano gli operatori dei nodi a svolgere le funzioni di consenso di base +e votano il sistema di tesoreria ricevendo una ricompensa periodica. + + + Create Masternode Controller + Creare il Masternode Controller + + + No active Masternode yet + Ancora nessun Masternode attivo + + + Start + Avvia + + + Delete + Elimina + + + Info + Info + + + Start Masternode + Avvia Masternode + + + Are you sure you want to start masternode %1? + + Confermi di voler avviare il masternode %1? + + + + Cannot start masternode, the collateral transaction has not been accepted by the network. +Please wait few more minutes. + Impossibile avviare il masternode, la transazione collaterale non è stata accettata dalla rete. +Per favore, attendi qualche minuto. + + + Remote Masternode Data + Remote Masternode Data + + + You are just about to export the required data to run a Masternode +on a remote server to your clipboard. + + +You will only have to paste the data in the pivx.conf file +of your remote server and start it, then start the Masternode using +this controller wallet (select the Masternode in the list and press "start"). + + Stai per esportare negli appunti i dati richiesti per eseguire +un Masternode su un server remoto . + + +Dovrai solo incollare i dati nel file pivx.conf del server remoto +e avviarlo, quindi avviare il Masternode utilizzando questo portafoglio +come controller (selezionare il Masternode nell'elenco e premere "start"). + + + + Masternode exported!, check your clipboard + Masternode esportato!, controlla gli appunti + + + Delete Masternode + Cancella Masternode + + + You are just about to delete Masternode: +%1 + +Are you sure? + Stai per rimuovere il Masternode: +%1 + +Sei sicuro? + + + Invalid masternode.conf file + il file masternode.conf non è valido + + + Error parsing masternode.conf file + Errore durante l'analisi del file masternode.conf + + + masternode.conf file doesn't exists + il file masternode.conf non esiste + + + Not enough balance to create a masternode, 10,000 PIV required. + Saldo insufficiente per creare un masternode, sono necessari 10.000 PIV. + + + Error creating masternode + Errore in fase di creazione del Masternode + + + + MnInfoDialog + + Form + Modulo + + + Master Node Information + Informazioni sul Masternode + + + Public Key: + Chiave pubblica: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Address: + Indirizzo: + + + 127.0.0.2:43223 + 127.0.0.2:43223 + + + Collaterall tx id: + Collaterale tx id: + + + Output index: + Indice di uscita: + + + 1 Inputs + 1 Input + + + Status: + Stato: + + + MISSING + MANCANTE + + + Export data to run the Master Node on a remote server + Esporta i dati per eseguire il Masternode su un server remoto + + + + MyAddressRow + + Form + Modulo + + + Savings + Risparmi + + + Jan. 19, 2019 + 19 Gennaio 2019 + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + NavMenuWidget + + Form + Modulo + + + V 1.0.0 + V 1.0.0 + + + v%1 + v%1 + + + + OpenURIDialog + + Open URI + Apri URI + + + Open payment request from URI or file + Seleziona il file o URI di richiesta di pagamento + + + TextLabel + Etichetta + + + CANCEL + CANCELLA + + + OK + OK + + + Select payment request file + Seleziona il file di richiesta di pagamento + + + Select payment request file to open + Seleziona il file di richiesta di pagamento da aprire + + + File not found + File non trovato + + + Parsed data too large + Dati analizzati troppo grandi + + + Invalid URI, not starting with "pivx" prefix + URI non valido, che non inizia con il prefisso "pivx" + + + + OptionButton + + Form + Modulo + + + TextLabel + Etichetta + + + + OptionsDialog + + Options + Opzioni + + + &Main + &Main + + + Size of &database cache + Dimensione della cache del &database + + + MB + MB + + + Number of script &verification threads + Numero di script e processi di &verifica + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = lascia molti core liberi) + + + W&allet + W&allet + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + Se si disabilita la spesa per la modifica non confermata, la modifica da una transazione<br/>non può essere utilizzata fino a quando tale transazione non ha almeno una conferma.<br/>Ciò influisce anche sul modo in cui viene calcolato il saldo. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Apri automaticamente la porta client PIVX sul router. Funziona solo quando il router supporta UPnP ed è abilitato. + + + Accept connections from outside + Accetta connessioni dall'esterno + + + Allow incoming connections + Consenti connessioni in entrata + + + &Connect through SOCKS5 proxy (default proxy): + &Connetti tramite proxy SOCKS5 (proxy predefinito): + + + Expert + Esperto + + + Automatically start PIVX after logging in to the system. + Avvia automaticamente PIVX dopo aver effettuato l'accesso al sistema. + + + &Start PIVX on system login + &Start PIVX all'accesso al sistema + + + Whether to show coin control features or not. + Se mostrare o meno le funzionalità di controllo della valuta. + + + Enable coin &control features + Attiva la funzionalità di &controllo della moneta + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Mostra la scheda aggiuntiva che elenca tutti i tuoi Masternode nella prima sottoscheda<br/>e tutti i Masternode della rete nella seconda sottoscheda. + + + Show Masternodes Tab + Mostra la scheda dei Masternode + + + &Spend unconfirmed change + &Spendi modifica non confermata + + + &Network + &Network + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + La lingua dell'interfaccia utente può essere impostata qui. Questa impostazione avrà effetto dopo il riavvio di PIVX. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Lingua mancante o traduzione incompleta? Aiutaci a contribuire alle traduzioni qui: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Mappa la porta utilizzando &UPnP + + + Enable automatic minting of PIV units to zPIV + Attiva la forgiatura automatica di unità PIV in zPIV + + + Enable zPIV Automint + Attiva forgiatura automatica zPIV + + + Enable automatic zPIV minting from specific addresses + Attiva la forgiatura automatica di zPIV da indirizzi specifici + + + Enable Automint Addresses + Abilita indirizzi forgiatura automatica + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Percentuale di PIV in entrata che viene automaticamente convertita in zPIV attraverso il protocollo Zerocoin (min: 10%) + + + Percentage of autominted zPIV + Percentuale di zPIV Percentuale di zPIV da forgiare automaticamente + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Attendere la conversione automatica in Zerocoin fino a quando non saranno disponibili abbastanza PIV per questa denominazione + + + Preferred Automint zPIV Denomination + Denominazione preferita forgiatura automatica zPIV + + + Stake split threshold: + Soglia di divisione dello stake + + + Connect to the PIVX network through a SOCKS5 proxy. + Connettiti alla rete PIVX tramite un proxy SOCKS5. + + + Proxy &IP: + Proxy &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + Indirizzo IP del proxy (ad es. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Porta: + + + Port of the proxy (e.g. 9050) + Porta del proxy (ad es. 9050) + + + &Window + &Finestra + + + Show only a tray icon after minimizing the window. + Mostra solo l'icona della barra delle applicazioni dopo aver ridotto a icona la finestra. + + + &Minimize to the tray instead of the taskbar + &Minimizza a icona nel vassoio anziché nella barra delle applicazioni + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Riduci a icona invece di uscire dall'applicazione quando la finestra è chiusa. Quando questa opzione è abilitata, l'applicazione verrà chiusa solo dopo aver selezionato "Esci" nel menu. + + + M&inimize on close + M&inimizza in chiusura + + + &Display + &Display + + + User Interface &language: + $lingua dell'interfaccia utente: + + + User Interface Theme: + Tema dell'interfaccia utente: + + + Unit to show amounts in: + Unità di misura in cui mostrare gli importi: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Scegli l'unità di suddivisione predefinita da mostrare nell'interfaccia e quando si inviano valute. + + + Decimal digits + Cifre decimali + + + Hide empty balances + Nascondi bilanci vuoti + + + Hide orphan stakes in transaction lists + Nascondi le stakes orfane nella lista delle transazioni + + + Hide orphan stakes + Nascondi le stakes orfane + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + URL di terze parti (ad esempio un esploratore di blocchi) che vengono visualizzati nella scheda Transazioni come voci di menu contestuale. %s nell'URL è sostituito dall'hash della transazione. Più URL sono separati da una barra verticale |. + + + Third party transaction URLs + URL di transazione di terze parti + + + Active command-line options that override above options: + Opzioni della riga di comando attive che sovrascrivono le opzioni sopra: + + + Reset all client options to default. + Ripristina tutte le opzioni client ai valori predefiniti. + + + &Reset Options + Opzioni &Reset + + + &OK + &OK + + + &Cancel + &Cancella + + + Any + Qualsiasi + + + default + predefinito + + + none + nessuno + + + Confirm options reset + Conferma il ripristino delle opzioni + + + Client restart required to activate changes. + Riavvio del client richiesto per attivare le modifiche. + + + Client will be shutdown, do you want to proceed? + Il client verrà arrestato, vuoi procedere? + + + This change would require a client restart. + Questa modifica richiederebbe un riavvio del client. + + + The supplied proxy address is invalid. + L'indirizzo proxy inserito non è valido. + + + The supplied proxy port is invalid. + La porta proxy inserita non è valida. + + + The supplied proxy settings are invalid. + Le impostazioni proxy inserite non sono valide. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + Portafoglio + + + Node + Nodo + + + &Show / Hide + &Mostra / Nascondi + + + Show or hide the main Window + Mostra o nasconde la finestra principale + + + E&xit + &Esci + + + Quit application + Chiude l'applicazione + + + PIVX Core client + PIVX Core + + + Error + Errore + + + Warning + Avvertimento + + + Information + Informazioni + + + System Message + Messaggio di sistema + + + Sent MultiSend transaction + Transazioni MultiSend inviate + + + Sent transaction + Transazioni Inviate + + + Incoming transaction + Transazione in entrata + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Data: %1 +Ammontare: %2 +Tipo: %3 +Indirizzo: %4 + + + + A fatal error occurred. PIVX can no longer continue safely and will quit. + Si è verificato un errore irreversibile. PIVX non può più continuare in modo sicuro e verrà chiuso. + + + + PWidget + + Wallet locked, you need to unlock it to perform this action + Portafoglio bloccato, è necessario sbloccarlo per eseguire questa azione + + + + PaymentServer + + Payment request error + Errore nella richiesta di pagamento + + + URI handling + Gestione degli URI + + + Payment request fetch URL is invalid: %1 + L'URL di recupero della richiesta di pagamento non è valido: %1 + + + Payment request file handling + Gestione dei file delle richieste di pagamento + + + Invalid payment address %1 + Indirizzo di pagamento %1 invalido + + + Cannot start pivx: click-to-pay handler + Impossibile avviare pivx: gestore click-to-pay + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + Impossibile leggere il file della richiesta di pagamento! Ciò può essere causato da un indirizzo PIVX non valido o parametri URI non validi. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Impossibile leggere il file della richiesta di pagamento! Ciò può essere causato da un file di richiesta di pagamento non valido. + + + Payment request rejected + Richiesta di pagamento rifiutata + + + Payment request network doesn't match client network. + La rete di richiesta di pagamento non corrisponde alla rete client. + + + Payment request has expired. + La richiesta di pagamento è scaduta. + + + Payment request is not initialized. + La richiesta di pagamento non è inizializzata. + + + Unverified payment requests to custom payment scripts are unsupported. + Le richieste di pagamento non verificate per gli script di pagamento personalizzati non sono supportate. + + + Requested payment amount of %1 is too small (considered dust). + L'ammontare della richiesta di pagamento di %1 è troppo basso (considerato polvere). + + + Refund from %1 + Risarcimento da %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + La richiesta di pagamento %1 è troppo grande (%2 byte, consentiti %3 byte). + + + Payment request DoS protection + La richiesta di pagamento richiede protezione DoS + + + Error communicating with %1: %2 + Errore durante la comunicazione con %1: %2 + + + Payment request cannot be parsed! + La richiesta di pagamento non può essere analizzata! + + + Bad response from server %1 + Risposta errata dal server %1 + + + Network request error + Errore di richiesta di rete + + + Payment acknowledged + Pagamento confermato + + + + PeerTableModel + + Address/Hostname + Indirizzo/Nome host + + + Version + Versione + + + Ping Time + Ping Time + + + + PrivacyWidget + + Form + Modulo + + + Title + Titolo + + + TextLabel + Etichetta + + + PushButton + Premi il bottone + + + No active Master Node yet + Ancora nessun MasterNode attivo + + + Privacy + Privacy + + + Convert + Converti + + + Mint + Forgiatura + + + Minting zPIV anonymizes your PIV by removing any +transaction history, making transactions untraceable + La forgiatura zPIV anonimizza il tuo PIV rimuovendo qualsiasi +cronologia delle transazioni, rendendo le transazioni non rintracciabili + + + Mint new zPIV or convert back to PIV + Forgia nuovi zPIV o converti nuovamente in PIV + + + Last Zerocoin Movements + Ultimi movimenti Zerocoin + + + No transactions yet + Ancora nessuna transazione + + + Mint zPIV + Forgiatura zPIV + + + Enter amount of PIV to mint into zPIV + Immetti un importo di PIV da convertire in zPIV + + + Convert back to PIV + Converti nuovamente in PIV + + + Enter amount of zPIV to convert back into PIV + Immetti un importo di zPIV da convertire in PIV + + + Zerocoin + Zerocoin + + + zPIV is currently undergoing maintenance + zPIV è attualmente in fase di manutenzione + + + You need to unlock the wallet to be able to %1 zPIV + Devi sbloccare il portafoglio per %1 zPIV + + + convert + converti + + + mint + forgia + + + Invalid value + Valore non valido + + + zPIV minted successfully + zPIV forgiati con successo + + + zPIV converted back to PIV + zPIV riconvertito in PIV + + + You don't have any PIV to select. + Non hai alcun PIV da selezionare. + + + Rescan Mints + Scansiona nuovamente forgiature + + + Your zerocoin mints are going to be scanned from the blockchain from scratch + I tuoi movimenti Zerocoin forgiati saranno ora ricercati sulla blockchain da capo + + + Reset Spent Zerocoins + Azzera movimenti Zerocoin + + + Your zerocoin spends are going to be scanned from the blockchain from scratch + I tuoi movimenti Zerocoin saranno ora ricercati sulla blockchain da capo + + + Total %1 + Totale %1 + + + + ProposalFrame + + Open proposal page in browser + Apri la pagina della proposta nel browser + + + remaining payment(s). + pagamenti rimanenti. + + + Yes: + Si: + + + Abstain: + Astenersi: + + + No: + No: + + + A proposal URL can be used for phishing, scams and computer viruses. Open this link only if you trust the following URL. + + Un URL proposto può essere utilizzato per phishing, truffe e virus informatici. Apri questo link solo se ti fidi del seguente URL. + + + + Open link + Apri link + + + Copy link + Copia link + + + Wallet Locked + Portafoglio bloccato + + + You must unlock your wallet to vote. + Devi sbloccare il portafoglio per votare + + + Do you want to vote %1 on + Vuoi votare %1 su + + + using all your masternodes? + utilizzare tutti i masternode? + + + Proposal Hash: + Hash proposto: + + + Proposal URL: + URL proposto: + + + Confirm Vote + Conferma il voto + + + Vote Results + Risultati del voto + + + + QObject + + Amount + Ammontare + + + Enter a PIVX address (e.g. %1) + Inserisci un indirizzo PIVX (ad es. %1) + + + %1 d + %1 d + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + NETWORK + + + BLOOM + BLOOM + + + ZK_BLOOM + ZK_BLOOM + + + UNKNOWN + SCONOSCIUTO + + + None + Nessuno + + + N/A + N/D + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" does not exist. + Errore: la cartella dati specificata "%1" non esiste. + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + Errore: impossibile analizzare il file di configurazione: %1. Utilizzare solo la sintassi key=value. + + + Error: Invalid combination of -regtest and -testnet. + Errore: combinazione non valida di -regtest e -testnet. + + + Error reading masternode configuration file: %1 + Errore durante la lettura del file di configurazione del Masternode: %1 + + + PIVX Core didn't yet exit safely... + PIVX Core non è ancora uscito in modo sicuro... + + + + RPCConsole + + Tools window + Finestra degli strumenti + + + &Information + &Informazioni + + + General + Generale + + + Name + Nome + + + Client name + Nome del client + + + N/A + N/D + + + Number of connections + Numero delle connessioni + + + &Open + &Open + + + Startup time + Tempo di avvio + + + Network + Network + + + Last block time + Ultimo blocco + + + Debug log file + Debug del file di registro + + + Build date + Data di costruzione + + + Current number of blocks + Numero attuale dei blocchi + + + Client version + Versione del client + + + Using BerkeleyDB version + Utilizza versione BerkeleyDB + + + Block chain + Blockchain + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Aprire il file di registro di debug PIVX dalla directory dei dati corrente. Questa operazione può richiedere alcuni secondi per file di registro di grandi dimensioni. + + + Number of Masternodes + Numero dei Masternode + + + Data Directory + Directory dei dati + + + Last block hash + Hash dell'ultimo blocco + + + &Console + &Console + + + Clear console + Chiudi console + + + &Network Traffic + Traffico del &Network + + + &Clear + &Cancella + + + Totals + Totali + + + Received + Ricevuto + + + Sent + Inviato + + + &Peers + &Peers + + + Banned peers + Peers bannati + + + Select a peer to view detailed information. + Seleziona un peer per visualizzare informazioni dettagliate. + + + Whitelisted + Messo in Whitelist + + + Direction + Direzione + + + Protocol + Protocollo + + + Version + Versione + + + Services + Servizi + + + Ban Score + Punteggio di ban + + + Connection Time + Tempo di connessione + + + Last Send + Ultimo Invio + + + Last Receive + Ultima ricezione + + + Bytes Sent + Bytes inviati + + + Bytes Received + Bytes ricevuti + + + Ping Time + Ping Time + + + &Wallet Repair + Ripara &Wallet + + + Delete local Blockchain Folders + Elimina le cartelle Blockchain locali + + + Wallet In Use: + Portafoglio in uso: + + + Starting Block + Blocco di partenza + + + Synced Headers + Intestazioni sincronizzate + + + Synced Blocks + Blocchi sincronizzati + + + The duration of a currently outstanding ping. + La durata di un ping attualmente in sospeso. + + + Ping Wait + Ping Wait + + + Time Offset + Differenza di fuso orario + + + Custom Backup Path: + Percorso di backup personalizzato: + + + Custom zPIV Backup Path: + Percorso di backup zPIV personalizzato: + + + Custom Backups Threshold: + Soglia backup personalizzati: + + + Salvage wallet + Portafoglio di salvataggio + + + Attempt to recover private keys from a corrupt wallet.dat. + Tentativo di recuperare chiavi private da un wallet.dat corrotto. + + + Rescan blockchain files + Ripeti la scansione dei file blockchain + + + Rescan the block chain for missing wallet transactions. + Riesegui la scansione della blockchain per cercare le transazioni mancanti. + + + Recover transactions 1 + Recupera transazioni 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Recupera le transazioni dalla blockchain (conserva i metadati, ad esempio il proprietario dell'account). + + + Recover transactions 2 + Recupera transazioni 2 + + + Recover transactions from blockchain (drop meta-data). + Recupera le transazioni dalla blockchain (cancella i metadati). + + + Upgrade wallet format + Aggiorna il formato del portafoglio + + + Rebuild block chain index from current blk000??.dat files. + Ricostruisce l'indice della blockchain dai file blk000??.dat corrente. + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Elimina tutte le cartelle blockchain locali in modo che il portafoglio si sincronizzi da zero. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + I pulsanti seguenti riavvieranno il portafoglio con le opzioni della riga di comando per riparare il portafoglio, risolvere problemi con file blockhain corrotti o transazioni mancanti / obsolete. + + + Wallet repair options. + Opzioni di riparazione del portafoglio + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Aggiorna il portafoglio all'ultimo formato all'avvio. (Nota: questo NON è un aggiornamento del portafoglio stesso!) + + + Rebuild index + Ricostruisci indice + + + In: + In: + + + Out: + Out: + + + Welcome to the PIVX RPC console. + Benvenuti nella console RPC di PIVX. + + + &Disconnect Node + &Disconnetti Nodo + + + Ban Node for + Ban Nodo per + + + 1 &hour + 1 &ora + + + 1 &day + 1 &giorno + + + 1 &week + 1 &settimana + + + 1 &year + 1 &anno + + + &Unban Node + &Unban Nodo + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Questo eliminerà tutte le cartelle blockchain locali in modo che il portafoglio si sincronizzi da zero.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Ciò richiede un po' di tempo e scarica molti dati.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Le transazioni e i fondi saranno nuovamente visibili al termine del download.<br /><br /> + + + Do you want to continue?.<br /> + Vuoi continuare?.<br /> + + + Confirm resync Blockchain + Conferma la risincronizzazione della Blockchain + + + Use up and down arrows to navigate history, and %1 to clear screen. + Usa le frecce su e giù per navigare nella cronologia e %1 per cancellare lo schermo. + + + Type <b>help</b> for an overview of available commands. + Scrivi <b>help</b> per una panoramica dei comandi disponibili. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + ATTENZIONE: i truffatori sono stati attivi, dicendo agli utenti di digitare i comandi qui, rubando il contenuto del loro portafoglio. Non utilizzare questa console senza comprendere appieno le conseguenze di un comando. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (node id: %1) + + + via %1 + via %1 + + + never + mai + + + Inbound + In entrata + + + Outbound + In uscita + + + Yes + Si + + + No + No + + + Unknown + Sconosciuto + + + + ReceiveDialog + + Dialog + Finestra di dialogo + + + Transaction Details + Dettagli della transazione + + + PushButton + Premi il bottone + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + CANCELLA + + + OK + OK + + + + ReceiveWidget + + Form + Modulo + + + TextLabel + Etichetta + + + No address + Nessun indirizzo + + + Add Label + Aggiungi etichetta + + + Generate Address + Genera indirizzo + + + Copy + Copia + + + Receive + Ricevi + + + Scan the QR code or copy the address to receive PIV. + Scansiona il codice QR o copia l'indirizzo per ricevere PIV. + + + No address + Nessun indirizzo + + + No available address, try unlocking the wallet + Nessun indirizzo disponibile, prova a sbloccare il portafoglio + + + Error generating address + Errore generando l'indirizzo + + + Change Label + Cambia etichetta + + + Edit Address Label + Modifica etichetta indirizzo + + + Address label saved + Etichetta salvata + + + Error storing address label + Errore salvando l'etichetta indirizzo + + + New address created + Nuovo indirizzo creato + + + Address copied + Indirizzo copiato + + + URI copied to clipboard + URI copiato negli appunti + + + Address copied to clipboard + Indirizzo copiato negli appunti + + + + RecentRequestsTableModel + + Date + Data + + + Label + Etichetta + + + Message + Messaggio + + + Address + Indirizzo + + + Amount + Ammontare + + + (no label) + (nessuna etichetta) + + + (no message) + (nessun messaggio) + + + (no amount) + (nessun importo) + + + + RequestDialog + + Dialog + Finestra di dialogo + + + New Request Payment + Nuova richiesta di pagamento + + + Lorem ipsum dolor sit amet, consectur cling elit, sed do + Lorem ipsum dolor sit amet, consectur cling elit, sed do + + + Amount + Ammontare + + + PIV + PIV + + + TextLabel + Etichetta + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + COPY ADDRESS + COPIA INDIRIZZO + + + COPY URL + COPIA URL + + + CANCEL + CANCELLA + + + REQUEST + RICHIESTA + + + Instead of only sharing a PIVX address, you can create a Payment Request message which bundles up more information than is contained in just a PIVX address. + Invece di condividere solo un indirizzo PIVX, è possibile creare un messaggio di richiesta di pagamento che raggruppa più informazioni di quelle contenute in un solo indirizzo PIVX. + + + Label + Etichetta + + + Enter a label to be saved within the address + Inserisci un'etichetta da salvare con l'indirizzo + + + Description (optional) + Descrizione (opzionale) + + + Add description + Aggiungi descrizione + + + Error + Errore + + + GENERATE + GENERARE + + + Creates an address to receive coin delegations and be able to stake them. + Crea un indirizzo per ricevere deleghe di valuta ed essere in grado di effettuare lo staking. + + + New Cold Staking Address + Nuovo indirizzo di Cold Staking + + + + SendChangeAddressDialog + + Dialog + Finestra di dialogo + + + Transaction Details + Dettagli della transazione + + + PushButton + Premi il bottone + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + CANCELLA + + + OK + OK + + + Custom Change Address + Modifica indirizzo personalizzata + + + The remainder of the value resultant from the inputs minus the outputs value goes to the "change" PIVX address + Il resto del valore risultante dagli ingressi meno il valore delle uscite va all'indirizzo PIVX "cambio" + + + + SendCustomFeeDialog + + Form + Modulo + + + Transaction Details + Dettagli della transazione + + + Customize the transaction fee at your to your liking, depending on the fee value your transaction will be included or not in the blockchain. + Personalizza la commissione di transazione a tuo piacimento; a seconda del valore della commissione, la transazione verrà inclusa o meno nella blockchain. + + + Recomended + Raccomandato + + + 0.00 KB + 0.00 KB + + + Custom + Personalizzato + + + Per kilobyte + Per kilobyte + + + CANCEL + CANCELLA + + + OK + OK + + + Customize Fee + Tariffa personalizzata + + + Customize the transaction fee, depending on the fee value your transaction will be included or not in the blockchain. + Personalizza la commissione di transazione; a seconda del valore della commissione, la transazione verrà inclusa o meno nella blockchain. + + + Normal + Normale + + + Slow + Lento + + + Fast + Veloce + + + SAVE + SALVA + + + + SendMultiRow + + Form + Modulo + + + TextLabel + Etichetta + + + Add address + Aggiungi indirizzo + + + Add description + Aggiungi descrizione + + + + SendWidget + + Send + Invia + + + You can transfer public coins (PIV) or private coins (zPIV) + È possibile trasferire valuta pubblica (PIV) o valuta privata (zPIV) + + + Select coin type to spend + Seleziona il tipo di valuta da spendere + + + Enter a PIVX address or contact label + Inserisci un indirizzo PIVX o etichetta + + + Amount + Ammontare + + + Customize fee + Tariffa personalizzata + + + Clear all + Cancella tutto + + + Add recipient + Aggiungi destinatario + + + Reset to default + Ripristina valori predefiniti. + + + Total to send + Totale da mandare + + + Send PIV + Invia PIV + + + Send zPIV + Invia zPIV + + + Total remaining from the selected UTXO + Totale rimanente dall'UTXO selezionato + + + Total remaining + Totale rimanente + + + Customize Fee + Tariffa personalizzata + + + Maximum amount of outputs reached + Numero massimo di output raggiunti + + + Invalid entry, previous entries must be valid before add a new one + Voce non valida, le voci precedenti devono essere valide prima di aggiungerne una nuova + + + Invalid entry + Valore non valido + + + No set recipients + Nessun destinatario impostato + + + Cannot send, wallet locked + Impossibile inviare, portafoglio bloccato + + + Cannot create transaction. + Impossibile creare la transazione. + + + WARNING: +Transaction spends a cold-stake delegation, voiding it. +These coins will no longer be cold-staked. + AVVERTIMENTO: +La transazione spende una delega cold-stake, annullandola. +Questa valuta non sarà più in cold-stake. + + + Transaction sent + Transazione inviata + + + Spend Zerocoin + Spendi Zerocoin + + + zPIV is currently undergoing maintenance. + zPIV è attualmente in fase di manutenzione. + + + Coin control mint not found + Controllo della valuta forgiata non trovato + + + Sending %1 to address %2 + + Inviando %1 all'indirizzo %2 + + + + Sending %1 to addresses: +%2 + Inviando %1 agli indirizzi: +%2 + + + zPIV transaction sent! + Transazione zPIV inviata! + + + Version 1 zPIV require a security level of 100 to successfully spend. + La versione 1 zPIV richiede un livello di sicurezza di 100 per poter essere utilizzata con successo. + + + Too much inputs ( + Troppi inputs ( + + + ) needed. +Maximum allowed: + ) necessario. +Massimo consentito: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Alternativamente forgia denominazioni più alte (quindi sono necessari meno input) o riduci l'importo da spendere. + + + Address label update failed for address: %1 + Aggiornamento dell'etichetta dell'indirizzo non riuscito per l'indirizzo: %1 + + + Invalid change address + Indirizzo di cambio non valido + + + Invalid URI + URI non valido + + + Invalid address in URI + Indirizzo non valido nel URI + + + Custom Fee %1 + Tariffa personalizzata %1 + + + You don't have any PIV to select. + Non hai alcun PIV da selezionare. + + + You don't have any zPIV in your balance to select. + Non hai alcun zPIV nel tuo saldo da selezionare. + + + No contacts available, you can go to the contacts screen and add some there! + Nessun contatto disponibile, puoi andare alla schermata dei contatti e aggiungerne alcuni! + + + Save contact + Salva contatto + + + Address field is empty + Il campo indirizzo è vuoto + + + Invalid address + Indirizzo non valido + + + Cannot store your own address as contact + Impossibile memorizzare il proprio indirizzo come contatto + + + Update Contact + Aggiorna il contatto + + + Create New Contact + Crea nuovo contatto + + + New Contact Stored + Nuovo contatto memorizzato + + + Error Storing Contact + Errore durante la memorizzazione del contatto + + + + SettingsBackupWallet + + Form + Modulo + + + TextLabel + Etichetta + + + PushButton + Premi il bottone + + + Backup Wallet + Backup portafoglio + + + Change Wallet Passphrase + Cambia frase d'accesso al wallet + + + Keep your wallet safe doing regular backups, store your backup file externally. +This option creates a wallet.dat file that can be used to recover your whole balance (transactions and addresses) from another device. + Mantieni il tuo portafoglio sicuro eseguendo backup regolari, archivia il tuo file di backup esternamente. +Questa opzione crea un file wallet.dat che può essere utilizzato per recuperare l'intero saldo (transazioni e indirizzi) da un altro dispositivo. + + + This will decrypt the whole wallet data and encrypt it back with the new passphrase. +Remember to write it down and store it safely, otherwise you might lose access to your funds. + Questo decifrerà tutti i dati del portafoglio e li crittograferà nuovamente con la nuova passphrase. +Ricordati di scriverlo e conservarlo in modo sicuro, altrimenti potresti perdere l'accesso ai tuoi fondi. + + + Where + Dove + + + Set a folder location + Imposta un percorso per la cartella + + + Backup + Backup + + + Change Passphrase + Cambia frase d'accesso + + + Backup Wallet + Backup portafoglio + + + Wallet Data (*.dat) + Wallet Data (*.dat) + + + Backup created + Backup creato + + + Backup creation failed + Creazione del backup non riuscita + + + Please select a folder to export the backup first. + Seleziona prima una cartella per esportare il backup. + + + + SettingsBitToolWidget + + Form + Modulo + + + TextLabel + Etichetta + + + PushButton + Premi il bottone + + + Decrypt Address Result + Decrittografare il risultato dell'indirizzo + + + Import Address + Importa indirizzo + + + Clear + Cancella + + + BIP38 Tool + Strumenti BIP38 + + + Encrypt + Crittografa + + + Decrypt + Decrittografa + + + Encrypted key + Chiave crittografata + + + Enter a encrypted key + Inserisci una chiave crittografata + + + Passphrase + Frase d'accesso + + + Enter a passphrase + Inserire frase d'accesso + + + Decrypted address result + Risultato dell'indirizzo decrittografato + + + Decrypted Address + Indirizzo decrittografato + + + DECRYPT KEY + DECRITTOGRAFA LA CHIAVE + + + Enter a PIVX address + Inserisci un indirizzo PIVX + + + Add address + Aggiungi indirizzo + + + Write a message + Scrivi un messaggio + + + Encrypted Key + Chiave crittografata + + + ENCRYPT + CRITTOGRAFA + + + CLEAR ALL + CANCELLA TUTTO + + + CLEAR + CANCELLA + + + The entered passphrase is invalid. + La frase d'accesso inserita non è valida. + + + Allowed: 0-9,a-z,A-Z, + Sono ammessi: 0-9, a-z, A-Z, + + + The entered address is invalid. + L'indirizzo inserito non è valido. + + + Please check the address and try again. + Per favore controlla l'indirizzo e riprova. + + + The entered address does not refer to a key. + L'indirizzo inserito non corrisponde a una chiave. + + + Wallet unlock was cancelled. + Lo sblocco portafoglio è stato annullato. + + + Private key for the entered address is not available. + La chiave privata per l'indirizzo inserito non è disponibile. + + + Address encrypted. + Indirizzo crittografato + + + No addresses available, you can go to the receive screen and add some there! + Nessun indirizzo disponibile, puoi andare alla schermata ricevi e aggiungerne alcuni! + + + Failed to decrypt. + Impossibile decrittografare. + + + Please check the key and passphrase and try again. + Controllare la chiave e la frase d'accesso e riprovare. + + + Data Not Valid. + Dati non validi. + + + Please try again. + Per favore prova ancora. + + + Please wait while key is imported + Per favore attendere l'importazione della chiave + + + Cannot import address, key already held by the wallet + Impossibile importare l'indirizzo, chiave già detenuta dal portafoglio + + + Error adding key to the wallet + Errore nell'inserimento della chiave nel portafoglio + + + Successfully added pivate key to the wallet + Chiave privata inserita correttamente nel portafoglio + + + + SettingsConsoleWidget + + Form + Modulo + + + TextLabel + Etichetta + + + Console + Console + + + Console input + Console input + + + Command Line Options + Opzioni linea di comando + + + Open Debug File + Apri file di debug + + + Cannot open debug file. +Verify that you have installed a predetermined text editor. + Impossibile aprire il file di debug. +Verifica di aver installato un editor di testo predeterminato. + + + Welcome to the PIVX RPC console. + Benvenuti nella console RPC di PIVX. + + + Use up and down arrows to navigate history, and %1 to clear screen. + Usa le frecce su e giù per navigare nella cronologia e %1 per cancellare lo schermo. + + + Type <b>help</b> for an overview of available commands. + Scrivi <b>help</b> per una panoramica dei comandi disponibili. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + ATTENZIONE: i truffatori sono stati attivi, dicendo agli utenti di digitare i comandi qui, rubando il contenuto del loro portafoglio. Non utilizzare questa console senza comprendere appieno le conseguenze di un comando. + + + + SettingsDisplayOptionsWidget + + Form + Modulo + + + TextLabel + Etichetta + + + PushButton + Premi il bottone + + + Reset to default + Ripristina valori predefiniti. + + + Discard changes + Non salvare le modifiche + + + Display + Mostra + + + Customize the display view options + Personalizza le opzioni di visualizzazione del display + + + Language + Lingua + + + Unit to show amount + Unità di misura in cui mostrare gli importi + + + Decimal digits + Cifre decimali + + + Third party transactions URLs + URL di transazione di terze parti + + + Hide empty balances + Nascondi bilanci vuoti + + + SAVE + SALVA + + + default + predefinito + + + Options reset succeed + Ripristino delle opzioni riuscito + + + + SettingsFaqWidget + + Form + Modulo + + + TextLabel + Etichetta + + + PushButton + Premi il bottone + + + 1) What is PIVX? + 1) Che cos'è PIVX? + + + 2) Why are my PIV unspendable? + 2) Perché i miei PIV non sono spendibili? + + + 3) PIVX privacy? What is Zerocoin (zPIV)? + 3) Privacy PIVX? Che cos'è Zerocoin (zPIV)? + + + 4) Why are my zPIV unspendable? + 4) Perché i miei zPIV non sono spendibili? + + + 5) Why did my wallet convert the balance + into zPIV automatically? + 5) Perché il mio portafoglio ha convertito il saldo + in zPIV automaticamente? + + + 6) How do I receive PIV/zPIV? + 6) Come ottenere PIV o zPIV? + + + 7) How do I stake PIV/zPIV? + 7) Come posso fare lo stake di PIV / zPIV? + + + 8) Where I should go if I need support? + 8) Dove dovrei andare se ho bisogno di supporto? + + + 9) What is a Master Node? + 9) Cos'è un Masternode? + + + 10) What is a Master Node Controller? + 10) Cos'è un Masternode controller? + + + 1 + 1 + + + What is PIVX? + Che cos'è PIVX? + + + + <html><head/><body><p align="justify"> + PIVX is a form of digital online money using blockchain technology + that can be easily transferred globally, instantly, and with near + zero fees. PIVX incorporates market leading security & + privacy and is also the first PoS (Proof of Stake) Cryptocurrency + to implement ZeroCoin(zPIV) and Zerocoin staking. + </p><p align="justify"> + PIVX utilizes a Proof of Stake (PoS) consensus system algorithm, + allowing all owners of PIVX to participate in earning block rewards + while securing the network with full node wallets, as well as to + run Masternodes to create and vote on proposals. + </p></body></html> + + +<html><head/><body><p align="justify"> +PIVX è una forma di denaro online digitale che utilizza la tecnologia blockchain +che può essere facilmente trasferito a livello globale, istantaneamente e con quasi +zero costi. PIVX incorpora le tecniche di sicurezza e privacy più avanzate del mercato +ed è anche la prima criptovaluta PoS (Proof of Stake) +ad implementare lo staking di ZeroCoin (zPIV) e Zerocoin. +</p><p align="justify"> +PIVX utilizza un algoritmo del sistema di consenso Proof of Stake (PoS), +consentendo a tutti i proprietari di PIVX di partecipare alle ricompense dei blocchi +proteggendo la rete con portafogli full node, oltre a +eseguire Masternode per creare e votare proposte. +</p></body></html> + + + + 2 + 2 + + + Why are my PIV unspendable? + Perché i miei PIV non sono spendibili? + + + + <html><head/><body><p align="justify"> + Newly received PIVX requires 6 confirmations on the network + to become eligible for spending which can take ~6 minutes. + </p><p align="justify"> + Your PIVX wallet also needs to be completely synchronized + to see and spend balances on the network. + </p></body></html> + + + <html><head/><body><p align="justify"> + PIVX appeni ricevuti richiedono 6 conferme sulla rete + per poter essere spendibili, cioè può richiedere ~6 minuti. + </p><p align="justify"> + Anche il tuo portafoglio PIVX deve essere completamente sincronizzato +per vedere e spendere i saldi sulla rete. + </p></body></html> + + + + 3 + 3 + + + PIVX privacy? What is Zerocoin (zPIV)? + PIVX privacy? What is Zerocoin (zPIV)? + + + + <html><head/><body><p align="justify"> + zPIV is an optional privacy-centric method of coin mixing on the + PIVX blockchain. Basically all your transactions cannot be tracked + on to any block explorer. You can read more about the technicals in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "PIVX Zerocoin (zPIV) Technical Paper"</a>. + </p></body></html> + + + <html><head/><body><p align="justify"> + zPIV è un metodo opzionale incentrato sulla privacy per la miscelazione delle valute sulla +Blockchain PIVX. Essenzialmente, tutte le tue transazioni non potranno essere tracciate +su un block explorer. Puoi leggere di più sugli aspetti tecnici nel + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "PIVX Zerocoin (zPIV) Technical Paper"</a>. + </p></body></html> + + + + 4 + 4 + + + Why are my zPIV unspendable? + Perché i miei zPIV non sono spendibili? + + + + <html><head/><body><p align="justify"> + After minting, zPIV will require 20 confirmations as well as 1 + additional mint of the same denomination on the network to + become eligible for spending. + </p></body></html> + + + <html><head/><body><p align="justify"> + Dopo la forgiatura, zPIV richiederà 20 conferme e 1 +forgiatura aggiuntiva della stessa denominazione sulla rete +per diventare idoneo alla spesa. + </p></body></html> + + + + 5 + 5 + + + Why did my wallet convert the balance into zPIV automatically? + Perché il mio portafoglio ha convertito il saldo in zPIV automaticamente? + + + + <html><head/><body><p align="justify"> + By default the PIVX wallet will convert 10% of your entire PIV + balance to zPIV to assist the network. If you do not wish to + stake zPIV or take advantage of the privacy benefit it brings, + you can disable the automatic minting in your PIVX wallet by + going to Settings->Options and deselecting “Enable zPIV Automintâ€. + If you are not making use of the PIVX-QT or GUI you can simply open + your pivx.conf file and add <i>enablezeromint=0</i> Without the quotation + marks and restart your wallet to disable automint.</p> + </p><p align="justify"> + You can read more about zPIV in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> "PIVX Zerocoin (zPIV) Technical Paper"</a>. + If you would like to keep and stake your zPIV, please read the "How do I stake" + section of the FAQ below. + </p></body></html> + + + <html><head/><body><p align="justify"> +Come impostazione predefinita, il portafoglio PIVX convertirà il 10% dell'intero +saldo PIV con zPIV, per supportare la rete. Se non desideri effettuare lo +staking di zPIV o sfruttare il vantaggio sulla privacy che ne comporta, +puoi disabilitare la forgiatura automatica nel tuo portafoglio PIVX +andando su Impostazioni->Opzioni e deselezionando “Abilita zPIV Automintâ€. +Se non si utilizzi PIVX-QT o la GUI, è possibile aprire semplicemente +il tuo file pivx.conf e aggiungere<i>enablezeromint=0</i> senza gli apostrofi +e far ripartire il portafoglio per disabilitare la forgiatura automatica.</p> + </p><p align="justify"> + Puoi leggere di più su zPIV nel + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> "PIVX Zerocoin (zPIV) Technical Paper"</a>. + Se desideri effettuare lo staking dei tuoi zPIV, leggi "Come faccio ad effettuare lo staking" +nella sezione delle FAQ di seguito. + </p></body></html> + + + + 6 + 6 + + + How do I receive PIV/zPIV? + Come ottenere PIV o zPIV? + + + + <html><head/><body><p align="justify"> + zPIV can be spent and sent to any PIVX address. The receiver will + receive standard PIVX but the origin of the PIVX is anonymized by the zPIV Protocol. + </p><p align="justify"> + If you want more zPIV you will need to mint your balance in the “Privacy†tab. + </p></body></html> + + + <html><head/><body><p align="justify"> + zPIV può essere speso e inviato a qualsiasi indirizzo PIVX. Il ricevente +otterrà PIVX standard ma l'origine dei PIVX è anonimizzata dal protocollo zPIV. +</p><p align="justify"> +Se desideri più zPIV, dovrai forgiare il saldo nella scheda "Privacy". + </p></body></html> + + + + 7 + 7 + + + How do I stake PIV/zPIV? + Come posso fare lo stake di PIV / zPIV? + + + + <html><head/><body><p align="justify"> + To Stake PIVX: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + You must have a balance of PIVX with a minimum of 101 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + <li> + Once all those steps are followed staking should be enabled. + <li> + You can see the status of staking in the wallet by mousing over the package icon in the row on the top left of the wallet interface. There package will be lit up and will state "Staking Enabled" to indicate it is staking. Using the command line interface (pivx-cli); the command <i>getstakingstatus</i> will confirm that staking is active. + </li></ol> + </p><p align="justify"> + To Stake zPIV: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + Your newly minted or existing zPIV balance must have a minimum of 200 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + Staking should now be enabled. + </li></ol> + </p></body></html> + + + <html><head/><body><p align="justify"> + Per fare lo Stake di PIVX: + </p><p align="justify"> + <ol><li> + Assicurati che il tuo portafoglio sia completamente sincronizzato e stai utilizzando l'ultima versione. + <li> + Devi avere un saldo di PIVX con un minimo di 101 conferme. + <li> + Il tuo portafoglio deve rimanere online ed essere sbloccato per scopi di anonimizzazione e staking. + <li> + Una volta seguiti tutti questi passaggi, è necessario abilitare lo staking. + <li> + Puoi vedere lo stato dello staking nel portafoglio spostando il mouse sull'icona del pacchetto nella riga in alto a sinistra dell'interfaccia del portafoglio. Il pacchetto verrà illuminato e indicherà "Staking Enabled" per indicare che sta effettuando lo staking. Utilizzando l'interfaccia della riga di comando (pivx-cli); il comando<i>getstakingstatus</i> confermerà che lo staking é attivo. + </li></ol> + </p><p align="justify"> + Per fare Staking zPIV: + </p><p align="justify"> + <ol><li> + Assicurati che il tuo portafoglio sia completamente sincronizzato e stai utilizzando l'ultima versione. + <li> + Il saldo zPIV appena forgiato o esistente deve avere un minimo di 200 conferme. + <li> + Il tuo portafoglio deve rimanere online ed essere sbloccato per scopi di anonimizzazione e staking. + Lo Staking dovrebbe ora essere attivo. + </li></ol> + </p></body></html> + + + + 8 + 8 + + + Where I should go if I need support? + Dove dovrei andare se ho bisogno di supporto? + + + + <html><head/><body><p align="justify"> + We have support channels in most of our official chat groups, for example + <a style='color: #b088ff' href='https://Discord.PIVX.com'> + #support in our Discord</a>. + If you prefer to submit a ticket, One can be + <a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> + our Freshdesk support site</a>. + </p></body></html> + + + <html><head/><body><p align="justify"> + Abbiamo canali di supporto nella maggior parte dei nostri gruppi di chat ufficiali, ad esempio + <a style='color: #b088ff' href='https://Discord.PIVX.com'> + #support nel nostro Discord</a>. + Se preferisci aprire un ticket, puoi farlo su + <a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> + il nostro sito di supporto Freshdesk</a>. + </p></body></html> + + + + 9 + 9 + + + What is a Master Node? + Cos'è un Masternode? + + + + <html><head/><body><p align="justify"> + A masternode is a computer running a full node PIVX core wallet with a + requirement of 10,000 PIV secured collateral to provide extra services + to the network and in return, receive a portion of the block reward + regularly. These services include: + </p><p align="justify"> + + <ul> + <li>Instant transactions (SwiftX)</li> + <li>A decentralized governance (Proposal Voting)</li> + <li>A decentralized budgeting system (Treasury)</li> + <li>Validation of transactions within each block</li> + <li>Act as an additional full node in the network</li> + </ul> + + </p><p align="justify"> + For providing such services, masternodes are also paid a certain portion + of reward for each block. This can serve as a passive income to the + masternode owners minus their running cost. + </p><p align="justify"> + + Masternode Perks: + </p><p align="justify"> + <ul> + <li>Participate in PIVX Governance</li> + <li>Earn Masternode Rewards</li> + <li>Commodity option for future sale</li> + <li>Help secure the PIVX network</li> + </ul> + </p><p align="justify"> + + Requirements: + </p><p align="justify"> + <ul> + <li>10,000 PIV per single Masternode instance</li> + <li>Must be stored in a core wallet</li> + <li>Need dedicated IP address</li> + <li>Masternode wallet to remain online</li> + </ul> + </p></body></html> + + + <html><head/><body><p align="justify"> + Un masternode è un computer che esegue un portafoglio core PIVX a nodo completo +con un requisito di 10.000 PIV a garanzia per fornire servizi extra +alla rete e, in cambio, riceve una parte del premio del blocco +regolarmente. Questi servizi includono: + </p><p align="justify"> + + <ul> + <li>Transazioni istantanee (SwiftX)</li> + <li>Una governance decentrata (votazione della proposta)</li> + <li>Un sistema di bilancio decentralizzato (Tesoreria)</li> + <li>Convalida delle transazioni all'interno di ciascun blocco</li> + <li>Funziona come un nodo completo aggiuntivo nella rete</li> + </ul> + + </p><p align="justify"> + Per fornire tali servizi, i masternode vengono pagati anche una determinata porzione + di ricompensa per ogni blocco. Questo può servire come reddito passivo per il + proprietari di masternode detratti i loro costi di gestione. + </p><p align="justify"> + + Vantaggi del Masternode: + </p><p align="justify"> + <ul> + <li>Partecipare alla Governance di PIVX </li> + <li>Guadagnare i premi del Masternode</li> + <li>Opzione di una commodity per vendita futura</li> + <li>Aiuta a proteggere la rete PIVX</li> + </ul> + </p><p align="justify"> + + Requisiti: + </p><p align="justify"> + <ul> + <li>10,000 PIV per singolo Masternode + <li>Devono essere conservati in un portafoglio core</li> + <li>Necessita un indirizzo IP dedicato</li> + <li>Il portafoglio del Masternode deve rimanere online</li> + </ul> + </p></body></html> + + + + 10 + 10 + + + What is a Master Node Controller? + Cos'è un Masternode controller? + + + <html><head/><body><p align="justify">A Masternode Controller wallet is where the 10,000 PIV collateral can reside during a Controller-Remote masternode setup. It is a wallet that can activate the remote masternode wallet/s and allows you to keep your collateral coins offline while the remote masternode remains online. </p></body></html> + <html><head/><body><p align="justify">Un portafoglio Masternode Controller è dove i 10.000 PIV collaterali possono risiedere durante l'impostazione del Masternode Controller remoto. È un portafoglio che può attivare uno o più portafogli masternode remoti e ti consente di mantenere offline le tue valute collaterali mentre il masternode remoto rimane online.</p></body></html> + + + Frequently Asked Questions + Domande frequenti + + + You can read more here + Puoi leggere di più qui + + + Exit + Esci + + + + SettingsInformationWidget + + Form + Modulo + + + TextLabel + Etichetta + + + Network Monitor + Monitor rete + + + Information + Informazioni + + + General + Generale + + + Client Version: + Versione del client: + + + User Agent: + User Agent: + + + Using BerkeleyDB version: + Utilizza versione BerkeleyDB: + + + Datadir: + Datadir: + + + Startup Time: + Tempo di avvio: + + + Network + Network + + + Name: + Nome: + + + Number Connections: + Numero delle connessioni: + + + Blockchain + Blockchain + + + Current Number of Blocks: + Numero attuale dei blocchi: + + + Last Block Time: + Ultimo blocco: + + + Memory Pool + Pool di memoria + + + Current Number of Transactions: + Numero attuale delle transazioni: + + + Main + Principale + + + Wallet Conf + Wallet Conf + + + Backups + Backups + + + No information + Nessuna informazione + + + Unable to open backups folder + Impossibile aprire la cartella dei backup + + + Unable to open pivx.conf with default application + Impossibile aprire pivx.conf con l'applicazione predefinita + + + In: + In: + + + Out: + Out: + + + + SettingsMainOptionsWidget + + Form + Modulo + + + TextLabel + Etichetta + + + Window + Finestra + + + Customize the application window options + Personalizza le opzioni di visualizzazione dell'applicazione + + + CheckBox + CheckBox + + + Reset to default + Ripristina valori predefiniti. + + + Discard changes + Non salvare le modifiche + + + SAVE + SALVA + + + Main + Principale + + + Size of database cache + Dimensione della cache del database + + + Number of script verification threads + Numero di script e processi di verifica + + + Start PIVX on system login + Avvia PIVX all'accesso al sistema + + + Minimize to the tray instead of the taskbar + Minimizza a icona nel vassoio anziché nella barra delle applicazioni + + + Minimize on close + Minimizza in chiusura + + + Reset Options + Reset Opzioni + + + You are just about to reset the app's options to the default values. + +Are you sure? + + Stai per ripristinare i valori predefiniti delle opzioni dell'app. + +Sei sicuro? + + + + Options reset succeed + Ripristino delle opzioni riuscito + + + + SettingsMultisendDialog + + Form + Modulo + + + Transaction Details + Dettagli della transazione + + + TextLabel + Etichetta + + + CANCEL + CANCELLA + + + SAVE + SALVA + + + New recipient for multisend + Nuovo destinatario per multisend + + + Label (optional) + Etichetta (opzionale) + + + Enter a label to add this address in your address book + Inserisci un'etichetta per questo indirizzo da aggiungere alla tua rubrica + + + Percentage + Percentuale + + + + SettingsMultisendWidget + + Form + Modulo + + + TextLabel + Etichetta + + + No active Master Node yet + Ancora nessun MasterNode attivo + + + CheckBox + CheckBox + + + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. + MultiSend ti consente di inviare automaticamente fino al 100% dei tuoi stake o ricompense masternode a un elenco di altri indirizzi PIVX dopo la loro maturazione. + + + Active + Attivo + + + Disable + Disabilita + + + No active recipient yet + Ancora nessun destinatario attivo + + + Send stakes + Invia stake + + + Send masternode rewards + Invia le ricompense del Masternode + + + ADD RECIPIENT + AGGIUNGERE DESTINATARIO + + + CLEAR ALL + CANCELLA TUTTO + + + Clear succeed + Cancellazione riuscita + + + Clear all failed, could not locate address in wallet file + Cancella tutto non riuscito, impossibile trovare l'indirizzo nel file wallet + + + The entered address: %1 is invalid. +Please check the address and try again. + L'indirizzo inserito %1 non è valido. +Per favore controlla l'indirizzo e riprova nuovamente. + + + Invalid percentage, please enter values from 1 to 100. + Percentuale non valida, inserire valori da 1 a 100. + + + The total amount of your MultiSend vector is over 100% of your stake reward + L'importo totale del tuo vettore MultiSend è superiore al 100% della ricompensa di stake + + + Error saving MultiSend, failed saving properties to the database. + Errore durante il salvataggio di MultiSend, errore nel salvataggio delle proprietà nel database. + + + Unable to activate MultiSend, no available recipients + Impossibile attivare MultiSend, nessun destinatario disponibile + + + Unable to activate MultiSend +Check one or both of the check boxes to send on stake and/or masternode rewards + Impossibile attivare MultiSend +Seleziona una o entrambe le caselle di controllo per inviare gli stake e/o i premi del masternode + + + MultiSend activated but writing settings to DB failed + MultiSend attivato ma la scrittura delle impostazioni nel DB non è riuscita + + + MultiSend activated + MultiSend attivato + + + First multiSend address invalid + Primo indirizzo MultiSend non valido + + + MultiSend deactivated but writing settings to DB failed + MultiSend disattivato ma la scrittura delle impostazioni nel DB non è riuscita + + + MultiSend deactivated + MultiSend disattivato + + + + SettingsSignMessageWidgets + + Form + Modulo + + + TextLabel + Etichetta + + + PushButton + Premi il bottone + + + Clear + Cancella + + + Sign/Verify Message + Firma/Verifica messaggio + + + Enter a PIVX address or contact label + Inserisci un indirizzo PIVX o etichetta + + + Add address + Aggiungi indirizzo + + + Sign + Firma + + + Verify + Verifica + + + Select mode + Seleziona modalità + + + Message + Messaggio + + + Write a message + Scrivi un messaggio + + + Signature + Firma + + + SIGN + FIRMA + + + CLEAR ALL + CANCELLA TUTTO + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Puoi firmare i messaggi con i tuoi indirizzi per provare di possederli. Fai attenzione a non firmare nulla di vago, poiché gli attacchi di phishing potrebbero tentare di indurti a firmare la tua identità. Firma solo dichiarazioni completamente dettagliate che accetti. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Immettere l'indirizzo di firma, il messaggio (assicurarsi di copiare esattamente le interruzioni di riga, gli spazi, le schede, ecc.) e la firma di seguito per verificare il messaggio. Fai attenzione a non leggere più nella firma di quanto non sia nel messaggio firmato stesso, per evitare di essere ingannato da un attacco man-in-the-middle. + + + VERIFY + VERIFICA + + + The entered address is invalid. + L'indirizzo inserito non è valido. + + + Please check the address and try again. + Per favore controlla l'indirizzo e riprova. + + + The entered address does not refer to a key. + L'indirizzo inserito non corrisponde a una chiave. + + + Wallet unlock was cancelled. + Lo sblocco portafoglio è stato annullato. + + + Private key for the entered address is not available. + La chiave privata per l'indirizzo inserito non è disponibile. + + + Message signing failed. + Firma del messaggio non riuscita. + + + Message signed. + Messaggio firmato. + + + The signature could not be decoded. + Non è stato possibile decodificare la firma. + + + Please check the signature and try again. + Per favore controlla la firma e riprova. + + + The signature did not match the message digest. + La firma non corrisponde al digest del messaggio. + + + Message verification failed. + Verifica del messaggio non riuscita. + + + Message verified. + Messaggio verificato. + + + No addresses available, you can go to the receive screen and add some there! + Nessun indirizzo disponibile, puoi andare alla schermata ricevi e aggiungerne alcuni! + + + + SettingsWalletOptionsWidget + + Form + Modulo + + + TextLabel + Etichetta + + + CheckBox + CheckBox + + + RadioButton + Pulsante di opzione + + + Reset to default + Ripristina valori predefiniti. + + + Discard changes + Non salvare le modifiche + + + PushButton + Premi il bottone + + + Wallet + Portafoglio + + + Customize the internal wallet options + Personalizza le opzioni interne del portafoglio + + + Stake split threshold: + Soglia di divisione dello stake + + + Spend unconfirmed change + Spendi modifica non confermata + + + Network + Network + + + Customize the node network options + Personalizza le opzioni di rete del nodo + + + Proxy IP: + Proxy IP: + + + Enter proxy IP + Inserire proxy IP + + + Port: + Porta: + + + Map port using UPnP + Mappa la porta utilizzando UPnP + + + Allow incoming connections + Consenti connessioni in entrata + + + Connect through SOCKS5 proxy (default proxy): + Connetti tramite proxy SOCKS5 (proxy predefinito): + + + SAVE + SALVA + + + Options reset succeed + Ripristino delle opzioni riuscito + + + + SettingsWalletRepairWidget + + Form + Modulo + + + TextLabel + Etichetta + + + PushButton + Premi il bottone + + + Wallet Repair + Ripara Wallet + + + The buttons below will restart the wallet with command-line options to repair this wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. + I pulsanti seguenti riavvieranno il portafoglio con le opzioni della riga di comando per riparare il portafoglio, risolvere problemi con file blockhain corrotti o transazioni mancanti / obsolete. + + + Attempt to recover private keys from a corrupt wallet.dat. + Tentativo di recuperare chiavi private da un wallet.dat corrotto. + + + Rescan the blockchain for missing wallet transactions. + Riesegui la scansione della blockchain per cercare le transazioni mancanti. + + + Recover transactions from blockchain (keep-meta-data, e.g. account owner). + Recupera le transazioni dalla blockchain (conserva i metadati, ad esempio il proprietario dell'account). + + + Recover transactions from blockchain (drop meta-data). + Recupera le transazioni dalla blockchain (cancella i metadati). + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself) + Aggiorna il portafoglio all'ultimo formato all'avvio. (Nota: questo NON è un aggiornamento del portafoglio stesso!) + + + Rebuild blockchain index from current blk000???.dat files. + Ricostruisce l'indice della blockchain dai file blk000??.dat corrente. + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Elimina tutte le cartelle blockchain locali in modo che il portafoglio si sincronizzi da zero. + + + Salvage wallet + Portafoglio di salvataggio + + + Rescan blockchain file + Ripeti la scansione dei file blockchain + + + Recover transactions 1 + Recupera transazioni 1 + + + Recover transactions 2 + Recupera transazioni 2 + + + Upgrade wallet format + Aggiorna il formato del portafoglio + + + Rebuild index + Ricostruisci indice + + + Delete local blockchain + Elimina le cartelle Blockchain locali + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Questo eliminerà tutte le cartelle blockchain locali in modo che il portafoglio si sincronizzi da zero.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Ciò richiede un po' di tempo e scarica molti dati.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Le transazioni e i fondi saranno nuovamente visibili al termine del download.<br /><br /> + + + Do you want to continue?.<br /> + Vuoi continuare?.<br /> + + + Confirm resync Blockchain + Conferma la risincronizzazione della Blockchain + + + + SettingsWidget + + Form + Modulo + + + TextLabel + Etichetta + + + Wallet Data + Wallet Data + + + Wallet + Portafoglio + + + Multisend + MultiSend + + + Tools + Strumenti + + + Sign/Verify Message + Firma/Verifica messaggio + + + BIP38 Tool + Strumenti BIP38 + + + Options + Opzioni + + + Main + Principale + + + Display + Mostra + + + Debug + Debug + + + Information + Informazioni + + + Console + Console + + + Wallet Repair + Ripara Wallet + + + Help + Aiuto + + + FAQ + FAQ + + + About PIVX + Informazioni su PIVX + + + Settings + Impostazioni + + + Confirm options reset + Conferma il ripristino delle opzioni + + + Client restart required to activate changes. + Riavvio del client richiesto per attivare le modifiche. + + + Client will be shutdown, do you want to proceed? + Il client verrà arrestato, vuoi procedere? + + + Restart required + Riavvio necessario + + + Your wallet needs to be restarted to apply the changes + + È necessario riavviare il portafoglio per applicare le modifiche + + + + Restart Now + Riavvia adesso + + + Restart Later + Riavvia più tardi + + + Options will be applied on next wallet restart + Le opzioni verranno applicate al prossimo riavvio del portafoglio + + + Options stored + Opzioni memorizzate + + + Options store failed + Opzioni non memorizzate, errore + + + Discard Unsaved Changes + Non salvare le modifiche + + + You are just about to discard all of your unsaved options. + +Are you sure? + + Stai per eliminare tutte le opzioni non salvate. + +Sei sicuro? + + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core si sta spegnendo... + + + Do not shut down the computer until this window disappears. + Non spegnere il computer fino a quando questa finestra non scompare. + + + + SnackBar + + Form + Modulo + + + Contact Stored + Contatto memorizzato + + + + Splash + + Form + Modulo + + + Loading… + Caricamento... + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Versione %1 + + + The Bitcoin Core developers + Gli sviluppatori di Bitcoin Core + + + The Dash Core developers + Gli sviluppatori di Dash Core + + + The PIVX Core developers + Gli sviluppatori di PIVX Core + + + [testnet] + [testnet] + + + + TooltipMenu + + Form + Modulo + + + Copy + Copia + + + Edit + Modifica + + + Delete + Elimina + + + Last + Ultimo + + + + TopBar + + Form + Modulo + + + 480.0685 PIV + 480.0685 PIV + + + 1,000 zPIV + 1,000 zPIV + + + Available + Disponibile + + + Pending + In attesa + + + 6.943 PIV + 6.943 PIV + + + Immature + Immaturo + + + 10 PIV + 10 PIV + + + 60 zPIV + 60 zPIV + + + 10 zPIV + 10 zPIV + + + Wallet Unlocked for staking + Portafoglio sbloccato per lo staking + + + Error generating address + Errore generando l'indirizzo + + + Address Copied + Indirizzo copiato + + + Automint enabled + Forgiatura automatica abilitata + + + Automint disabled + Forgiatura automatica disabilitata + + + Staking active + Stacking attivo + + + Staking not active + Stacking non attivo + + + %n active connection(s) + %n connessioni attive%n connessioni attive + + + Synchronized + Sincronizzato + + + %n hour(s) + %n ora%n ore + + + %n day(s) + %n giorno%n giorni + + + %n week(s) + %n settimana%n settimane + + + %1 and %2 + %1 e %2 + + + %n year(s) + %n anno%n anni + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open for %n more block(s) + Aperto per altro %n bloccoAperto per altri %n blocchi + + + Open until %1 + Apri fino a %1 + + + conflicted + conflitto + + + %1/offline + %1/offline + + + %1/unconfirmed + %1/Non confermati + + + %1 confirmations + %1 conferme + + + %1/offline (verified via SwiftX) + %1/offline (verificato via SwiftX) + + + %1/confirmed (verified via SwiftX) + %1/confermato (verificato via SwiftX) + + + %1 confirmations (verified via SwiftX) + %1 conferme (verificato via SwiftX) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/offline (verifica SwiftX in corso - %2 di %3 firme) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/confirmed (verifica SwiftX in corso - %2 di %3 firme) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 conferme (verifica SwiftX in corso - %2 di %3 firme) + + + %1/offline (SwiftX verification failed) + %1/offline (verifica SwiftX non riuscita) + + + %1/confirmed (SwiftX verification failed) + %1/confirmed (verifica SwiftX non riuscita) + + + Status + Stato + + + , has not been successfully broadcast yet + , non è stato ancora trasmesso con successo + + + , broadcast through %n node(s) + , trasmesso attraverso %n nodo, trasmesso attraverso %n nodi + + + Date + Data + + + Source + Fonte + + + Generated + Generato + + + From + Da + + + unknown + sconosciuto + + + To + A + + + own address + proprio indirizzo + + + watch-only + watch-only + + + label + etichetta + + + Credit + Credito + + + matures in %n more block(s) + matura in %n bloccomatura in altri %n blocchi + + + not accepted + non accettato + + + Debit + Debito + + + Total debit + Debito totale + + + Total credit + Credito totale + + + Transaction fee + Commissione di transazione + + + Net amount + Ammontare netto + + + Message + Messaggio + + + Comment + Commento + + + Transaction ID + ID transazione + + + Output index + Indice di uscita + + + Merchant + Merchant + + + Debug information + Informazioni di debug + + + Transaction + Transazione + + + Inputs + Inputs + + + Amount + Ammontare + + + true + vero + + + false + falso + + + + TransactionTableModel + + Date + Data + + + Type + Tipo + + + Address + Indirizzo + + + Open for %n more block(s) + Aperto per %n bloccoAperto per altri %n blocchi + + + Open until %1 + Apri fino a %1 + + + Offline + Offline + + + Unconfirmed + Non confermato + + + Confirming (%1 of %2 recommended confirmations) + In fase di conferma (%1 di %2 conferme raccomandate) + + + Confirmed (%1 confirmations) + Confermato (%1 conferme) + + + Conflicted + Conflitto + + + Immature (%1 confirmations, will be available after %2) + Immaturo (%1 conferme, saranno disponibili dopo %2) + + + This block was not received by any other nodes and will probably not be accepted! + Questo blocco non è stato ricevuto da nessun altro nodo e probabilmente non sarà accettato! + + + Received with + Ricevuto con + + + Masternode Reward + Ricompense Masternode + + + Received from + Ricevuto da + + + Received via Obfuscation + Ricevuto tramite offuscamento + + + PIV Stake + PIV Stake + + + zPIV Stake + zPIV Stake + + + PIV Cold Stake + PIV Cold Stake + + + PIV Stake in behalf of + PIV Stake per conto di + + + Stake delegation + Delega allo stake + + + Obfuscation Denominate + Denominazione Offuscamento + + + Obfuscation Collateral Payment + Offuscamento del pagamento collaterale + + + Obfuscation Make Collateral Inputs + L'offuscamento produce input collaterali + + + Obfuscation Create Denominations + L'offuscamento crea denominazioni + + + Converted PIV to zPIV + Convertito PIV in zPIV + + + Spent zPIV + zPIV spesi + + + Received PIV from zPIV + Ricevuto PIV da zPIV + + + Minted Change as zPIV from zPIV Spend + Forgiatura cambiata in zPIV da zPIV spesi + + + Converted zPIV to PIV + Convertito zPIV in PIV + + + Sent to + Inviato a + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Blocco orfano - Generato ma non accettato. Ciò non influisce sulle tue proprietà. + + + Payment to yourself + Pagamento a te stesso + + + Mined + Minato + + + Obfuscated + Offuscato + + + watch-only + watch-only + + + Anonymous + Anonimo + + + No information + Nessuna informazione + + + (n/a) + (n/d) + + + Transaction status. Hover over this field to show number of confirmations. + Stato della transazione. Passa il mouse sopra questo campo per mostrare il numero di conferme. + + + Date and time that the transaction was received. + Data e ora in cui la transazione è stata ricevuta. + + + Type of transaction. + Tipo di transazione. + + + Whether or not a watch-only address is involved in this transaction. + Se un indirizzo watch-only è coinvolto o meno in questa transazione. + + + Destination address of transaction. + Indirizzo di destinazione della transazione. + + + Amount removed from or added to balance. + Importo rimosso o aggiunto al saldo. + + + + TxDetailDialog + + Form + Modulo + + + Transaction Details + Dettagli della transazione + + + ID: + ID: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Sending to: + Inviando a: + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + Total amount + Importo totale + + + 2 PIV + 2 PIV + + + Coin inputs: + Coin inputs: + + + 1 Inputs + 1 Input + + + Previous Transaction + Transazioni precedenti + + + Output Index + Indice di uscita + + + Fee: + Commissione: + + + 0.0001 PIV + 0.0001 PIV + + + Change address: + Modifica indirizzo: + + + D7VFR83SQbie…BhjcWJtcfip5krte2Z + D7VFR83SQbie…BhjcWJtcfip5krte2Z + + + Confirmations: + Conferme: + + + 12 + 12 + + + Size: + Dimensione: + + + 2 kB + 2 kB + + + Date: + Data: + + + May 25, 2017 + 25 Maggio, 2017 + + + Status: + Stato: + + + Spendable + Spendibile + + + TextLabel + Etichetta + + + CANCEL + CANCELLA + + + OK + OK + + + Confirm Your Transaction + Conferma la tua transazione + + + SEND + INVIA + + + ID copied + ID copiato + + + Unknown + Sconosciuto + + + + TxRow + + Form + Modulo + + + Received from Bob + Ricevuto da Bob + + + 18/05/18 + 18/05/18 + + + +0.000585 PIV + +0.000585 PIV + + + + WalletModel + + Send Coins + Invia Valuta + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftX non supporta ancora l'invio di valori così elevati. Le transazioni sono attualmente limitate a %1 PIV. + + + + WalletPasswordDialog + + Dialog + Finestra di dialogo + + + TextLabel + Etichetta + + + PushButton + Premi il bottone + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + CANCELLA + + + OK + OK + + + + WelcomeContentWidget + + Dialog + Finestra di dialogo + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + Language + Lingua + + + Welcome + Benvenuto + + + Privacy + Privacy + + + Masternodes + Masternodes + + + Select your language + Seleziona la tua lingua + + + Welcome to +PIVX Core Wallet + Benvenuto in +Portafoglio PIVX Core. + + + PIVX is the world’s most innovative Proof of Stake blockchain based technology. Developed by a team of highly experienced developers and cryptographers. + PIVX è la tecnologia basata su blockchain Proof of Stake più innovativa al mondo. Sviluppato da un team di sviluppatori e crittografi di grande esperienza. + + + <html><head/><body><p>As our manifesto says: Privacy is a non-negotiable basic human right; it grants users the freedom to share their data whenever and with whomever they want - PIVX believes in self sovereignty.</p></body></html> + <html><head/><body><p>Come dice il nostro manifesto: la privacy è un diritto umano di base non negoziabile; garantisce agli utenti la libertà di condividere i propri dati quando e con chi vuole - PIVX crede nell'auto sovranità.</p></body></html> + + + The masternode network is PIVX's second layer network on top of the blockchain that enables our DAO to provide decentralized governance and a treasury. + La rete masternode è la rete di secondo livello di PIVX sopra alla blockchain che consente al nostro DAO di fornire governance decentralizzata e tesoreria. + + + How PIVX respects your privacy? + In che modo PIVX rispetta la tua privacy? + + + What is a Masternode? + Cos'è un Masternode? + + + default + predefinito + + + + ZPivControlDialog + + Select zPIV to Spend + Seleziona zPIV da spendere + + + Coin Control + Controllo Valuta + + + PushButton + Premi il bottone + + + zPiv + zPiv + + + 0.00 + 0.00 + + + Quantity: + Quantità: + + + Is Spendable + E' spendibile + + + 0 + 0 + + + Select/Deselect All + Seleziona/Deseleziona tutto + + + Select zPIV Denominations to Spend + Seleziona le denominazioni zPIV da spendere + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = conserva i metadati tx, ad esempio il proprietario dell'account e le informazioni sulla richiesta di pagamento, 2 = elimina i metadati tx) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Consenti connessioni JSON-RPC dall'origine specificata. Valido per <ip> sono un singolo IP (ad es. 1.2.3.4), una rete / maschera di rete (ad es. 1.2.3.4/255.255.255.0) o una rete / CIDR (ad es. 1.2.3.4/24). Questa opzione può essere specificata più volte + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Associa l'indirizzo specificato e ascoltalo sempre. Usa la notazione [host]:porta per IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Associa a un indirizzo specificato e ai peer della whitelist che si connettono ad esso. Usa la notazione [host]:porta per IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Associa l'indirizzo indicato per ascoltare le connessioni JSON-RPC. Usa la notazione [host]:porta per IPv6. Questa opzione può essere specificata più volte (impostazione predefinita: associa a tutte le interfacce) + + + Calculated accumulator checkpoint is not what is recorded by block index + Il punto di controllo dell'accumulatore calcolato non è ciò che viene registrato dall'indice di blocco + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Impossibile allocare la directory di dati %s. Probabilmente PIVX Core è già in esecuzione. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Modifica il comportamento di votazione automatica del budget finalizzato. mode=auto: vota solo per la corrispondenza esatta del budget finalizzato al mio budget generato. (stringa, impostazione predefinita: auto) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Limita continuamente le transazioni gratuite a <n>* 1000 byte al minuto (impostazione predefinita: %u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Crea nuovi file con le autorizzazioni predefinite del sistema, invece di umask 077 (valido solo con funzionalità wallet disabilitata) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Elimina tutte le transazioni del portafoglio e recupera solo quelle parti della blockchain tramite -rescan all'avvio + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Elimina tutte le spese e forgiature zerocoin che sono state registrate nella blockchain e le reindicizza (0-1, impostazione predefinita: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuito sotto la licenza del software MIT, consultare il file di accompagnamento COPYING o <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic Zerocoin minting from specific addresses (0-1, default: %u) + Abilita forgiatura automatica Zerocoin da indirizzi specifici (0-1, impostazione predefinita: %u) + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Abilita i backup automatici del portafoglio attivati ​​dopo ogni forgiatura zPIV (0-1, impostazione predefinita: %u) + + + Enable cold staking functionality (0-1, default: %u). Disabled if staking=0 + Abilita la funzionalità di cold staking (0-1, default: %u). Disabilitato se staking=0 + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Abilita o disabilita la funzionalità di cold staking per gli input PIV (0-1, default: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Abilita o disabilita la funzionalità di cold staking per gli input zPIV (0-1, default: %u) + + + Enable spork administration functionality with the appropriate private key. + Abilitare la funzionalità di amministrazione di spork con la chiave privata appropriata. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Entra nella modalità test di regressione, che utilizza una catena speciale in cui i blocchi possono essere risolti istantaneamente. + + + Error: Listening for incoming connections failed (listen returned error %s) + Errore: ascolto delle connessioni in entrata non riuscito (ascolto ha restituito errore %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Errore: la transazione è superiore alla dimensione massima consentita della transazione! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Errore: trovati argomenti non supportati. L'impostazione della versione di SOCKS non è più possibile, sono supportati solo i proxy SOCKS5. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Esegui comando quando viene ricevuto un avviso rilevante o viene visualizzato un fork molto lungo (%s in cmd viene sostituito dal messaggio) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Esegui comando quando cambia una transazione del portafoglio (%s in cmd è sostituito da TxID) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Esegui comando quando cambia il blocco migliore (%s in cmd è sostituito dall'hash del blocco) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Le commissioni (in PIV/Kb) inferiori a questa sono considerate zero per l'inoltro (impostazione predefinita: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Le commissioni (in PIV/Kb) inferiori a questa sono considerate zero per la creazione della transazione (impostazione predefinita: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Svuota ogni volta l'attività del database dal pool di memoria al registro del disco <n> megabytes (default: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Se paytxfee non è impostato, includere una commissione sufficiente in modo che le transazioni inizino la conferma in media entro n blocchi (impostazione predefinita: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + In questa modalità -genproclimit controlla quanti blocchi vengono generati immediatamente. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Fondi confermati insufficienti o insufficienti, potrebbe essere necessario attendere qualche minuto e riprovare. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Importo non valido per -maxtxfee=<amount>: '%s' (deve essere almeno la commissione minima di %s per evitare transazioni bloccate) + + + Keep the specified amount available for spending at all times (default: 0) + Mantieni sempre disponibile l'importo specificato da spendere (impostazione predefinita: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Registra priorità transazione e tariffa per kB durante i blocchi di mining (impostazione predefinita: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Mantenere un indice di transazione completo, utilizzato dalla chiamata rpc getrawtransaction (impostazione predefinita: %u) + + + Maximum average size of an index occurrence in the block spam filter (default: %u) + Dimensione media massima di un'occorrenza di indice nel filtro antispam di blocco (impostazione predefinita: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Dimensione massima dei dati nelle transazioni del supporto dati che trasmettiamo e estraiamo (impostazione predefinita: %u) + + + Maximum size of the list of indexes in the block spam filter (default: %u) + Dimensione massima dell'elenco di indici nel filtro antispam di blocco (impostazione predefinita: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Le commissioni totali massime da utilizzare in una singola transazione, impostando un valore troppo basso, possono interrompere le transazioni di grandi dimensioni (valore predefinito: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Numero di secondi per impedire la riconnessione dei peer che si comportano male (impostazione predefinita: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + L'offuscamento utilizza importi esatti per inviare fondi, potrebbe essere necessario anonimizzare altre valute. + + + Output debugging information (default: %u, supplying <category> is optional) + Informazioni sul debug dell'output (impostazione predefinita: %u, fornitura <category> è opzionale) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Richiesta di indirizzi peer tramite la ricerca DNS, se gli indirizzi sono pochi (impostazione predefinita: 1 unless -connect) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Randomizza le credenziali per ogni connessione proxy. Ciò consente l'isolamento del flusso Tor (impostazione predefinita: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Richiedi alta priorità per l'inoltro di transazioni gratuite o a basso costo (impostazione predefinita: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + Invia informazioni di traccia / debug alla console anziché al file debug.log (impostazione predefinita: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Imposta la dimensione massima delle transazioni ad alta priorità / a basso costo in byte (impostazione predefinita: %d) + + + Set the number of included blocks to precompute per cycle. (minimum: %d) (maximum: %d) (default: %d) + Imposta il numero di blocchi inclusi da pre-calcolare per ciclo. (minimo: %d) (massimo: %d) (valore predefinito: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Imposta il numero di thread di verifica dello script (da %u a %d, 0 = auto, <0 = lascia liberi molti core, impostazione predefinita: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Imposta il numero di processi per la generazione di coin se abilitato (-1 = tutti i core, impostazione predefinita: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Mostra N conferme per una transazione bloccata correttamente (0-9999, impostazione predefinita: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Supporta il filtraggio di blocchi e transazioni con filtri bloom (impostazione predefinita: %u) + + + The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct + Il database dei blocchi contiene un blocco che sembra appartenere al futuro. Ciò potrebbe essere dovuto alla data e all'ora del computer impostate in modo errato. Ricostruire il database dei blocchi solo se si è certi che la data e l'ora del computer siano corrette + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + Questo prodotto include software sviluppato da OpenSSL Project per l'uso in OpenSSL Toolkit <https://www.openssl.org/> e software crittografico scritto da Eric Young e software UPnP scritto da Thomas Bernard. + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + La lunghezza totale della stringa della versione di rete (%i) supera la lunghezza massima (%i). Ridurre il numero o la dimensione degli uacomments. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Impossibile associare %s su questo computer. Probabilmente PIVX Core è già in esecuzione. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Impossibile individuare abbastanza fondi denominati di offuscamento per questa transazione. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Impossibile individuare fondi non denominati di offuscamento sufficienti per questa transazione non uguali a 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Impossibile individuare fondi per questa transazione non uguali a 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Utilizza un proxy SOCKS5 separato per raggiungere i peer tramite i servizi nascosti Tor (impostazione predefinita: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Attenzione: -maxtxfee è impostato molto alto! Commissioni così grandi potrebbero essere pagate su un'unica transazione. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Attenzione: -paytxfee è impostato molto alto! Questa è la commissione di transazione che dovrai pagare se invii una transazione. + + + Warning: Peers are being disconnected due time differences. Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Avvertenza: i peer vengono disconnessi a causa di differenze temporali. Verifica che la data e l'ora del tuo computer siano corrette! Se l'orologio è sbagliato, PIVX Core non funzionerà correttamente. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Avvertenza: verificare che la data e l'ora del computer siano corrette! Se l'orologio è sbagliato, PIVX Core non funzionerà correttamente. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Avviso: la rete non sembra essere pienamente d'accordo! Alcuni minatori sembrano avere problemi. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Avvertenza: non sembra essere pienamente d'accordo con i nostri peers! Potrebbe essere necessario eseguire l'aggiornamento o potrebbe essere necessario aggiornare altri nodi. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Attenzione: errore nella lettura di wallet.dat! Tutte le chiavi vengono lette correttamente, ma i dati delle transazioni o le voci della rubrica potrebbero essere mancanti o errati. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Attenzione: wallet.dat corrotto, dati recuperati! Wallet.dat originale salvato come portafoglio.{Timestamp}.bak in %s; se il saldo o le transazioni sono errati, è necessario ripristinare da un backup. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Lista bianca dei peer che si connettono dalla maschera di rete o dall'indirizzo IP indicati. Può essere specificato più volte. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + I peer autorizzati non possono essere esenti da DoS e le loro transazioni vengono sempre inoltrate, anche se sono già nel mempool, utile ad es. per un gateway + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + È necessario specificare una chiave masternodepriv nella configurazione. Consultare la documentazione per assistenza. + + + (51472 could be used only on mainnet) + (51472 potrebbe essere utilizzato solo su mainnet) + + + (default: %s) + (default: %s) + + + (default: 1) + (default: 1) + + + (must be 51472 for mainnet) + (deve essere 51472 per mainnet) + + + Accept command line and JSON-RPC commands + Accetta i comandi della riga di comando e JSON-RPC + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Accetta connessioni dall'esterno (default: 1 se nessun -proxy o -connect) + + + Accept public REST requests (default: %u) + Accetta richieste REST pubbliche (impostazione predefinita: %u) + + + Add a node to connect to and attempt to keep the connection open + Aggiungere un nodo a cui connettersi e tentare di mantenere aperta la connessione + + + Adding Wrapped Serials supply... + Aggiunta la fornitura dei Wrapped Serials... + + + Allow DNS lookups for -addnode, -seednode and -connect + Consenti ricerche DNS per -addnode, -seednode e -connect + + + Always query for peer addresses via DNS lookup (default: %u) + Cerca sempre gli indirizzi peer tramite la ricerca DNS (impostazione predefinita: %u) + + + Append comment to the user agent string + Aggiungi commento alla stringa del user agent + + + Attempt to recover private keys from a corrupt wallet.dat + Tentativo di recuperare chiavi private da un wallet.dat corrotto. + + + Automatically create Tor hidden service (default: %d) + Crea automaticamente servizio nascosto Tor (impostazione predefinita: %d) + + + Block creation options: + Opzioni di creazione del blocco: + + + Calculating missing accumulators... + Calcolo degli accumulatori mancanti... + + + Cannot downgrade wallet + Impossibile eseguire il downgrade del portafoglio + + + Cannot resolve -bind address: '%s' + Impossibile risolvere l'indirizzo -bind: '%s' + + + Cannot resolve -externalip address: '%s' + Impossibile risolvere l'indirizzo -externalip: '%s' + + + Cannot resolve -whitebind address: '%s' + Impossibile risolvere l'indirizzo -whitebind: '%s' + + + CoinSpend: failed check + CoinSpend: controllo fallito + + + Connect only to the specified node(s) + Connetti solo ai nodi specificati + + + Connect through SOCKS5 proxy + Connetti tramite proxy SOCKS5 + + + Connect to a node to retrieve peer addresses, and disconnect + Connettersi a un nodo per recuperare gli indirizzi peer e disconnettersi + + + Connection options: + Opzioni di connessione: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i Gli sviluppatori di Bitcoin Core + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i Gli sviluppatori di Dash Core + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i Gli sviluppatori di PIVX Core + + + Corrupted block database detected + Rilevato database dei blocchi danneggiato + + + Could not parse masternode.conf + Impossibile effettuare l'analisi del file masternode.conf + + + Couldn't generate the accumulator witness + Impossibile generare il testimone dell'accumulatore + + + Debugging/Testing options: + Opzioni di debug / test: + + + Delete blockchain folders and resync from scratch + Elimina tutte le cartelle blockchain locali in modo che il portafoglio si sincronizzi da zero. + + + Disable OS notifications for incoming transactions (default: %u) + Disabilita le notifiche del sistema operativo per le transazioni in entrata (impostazione predefinita: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Disabilita safemode, sovrascrivi un evento in modalità sicura reale (impostazione predefinita: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Scopri il tuo indirizzo IP (impostazione predefinita: 1 durante l'ascolto e no -externalip) + + + Do not load the wallet and disable wallet RPC calls + Non caricare il portafoglio e disabilitare le chiamate RPC del portafoglio + + + Do you want to rebuild the block database now? + Vuoi ricostruire il database dei blocchi ora? + + + Done loading + Caricamento completato + + + Enable automatic Zerocoin minting (0-1, default: %u) + Abilita forgiatura automatica Zerocoin (0-1, impostazione predefinita: %u) + + + Enable precomputation of zPIV spends and stakes (0-1, default %u) + Abilita pre-calcolo delle spese e degli stake di zPIV (0-1, valore predefinito %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + Abilita la pubblicazione dell'hash transazione (bloccata tramite SwiftX) in <address> + + + Enable publish raw transaction (locked via SwiftX) in <address> + Abilita la pubblicazione transazione grezza (bloccata tramite SwiftX) in <address> + + + Enable the client to act as a masternode (0-1, default: %u) + Abilita il client a fungere da Masternode (0-1, impostazione predefinita: %u) + + + Error initializing block database + Errore durante l'inizializzazione del database dei blocchi + + + Error initializing wallet database environment %s! + Errore durante l'inizializzazione dell'ambiente del database del portafoglio %s! + + + Error loading block database + Errore durante il caricamento del database dei blocchi + + + Error loading wallet.dat + Errore durante il caricamento di wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Errore durante il caricamento di wallet.dat: portafoglio corrotto + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Errore durante il caricamento di wallet.dat: il portafoglio richiede una versione più recente di PIVX Core + + + Error opening block database + Errore durante l'apertura del database dei blocchi + + + Error reading from database, shutting down. + Errore durante la lettura dal database, arresto. + + + Error writing zerocoinDB to disk + Errore durante la scrittura di zerocoinDB sul disco + + + Error + Errore + + + Error: A fatal internal error occured, see debug.log for details + Errore: si è verificato un errore interno irreversibile, vedere debug.log per i dettagli + + + Error: Disk space is low! + Errore: lo spazio su disco è insufficiente! + + + Error: Unsupported argument -tor found, use -onion. + Errore: argomento non supportato -tor trovato, utilizzare -onion. + + + Error: Wallet locked, unable to create transaction! + Errore: portafoglio bloccato, impossibile creare la transazione! + + + Failed to calculate accumulator checkpoint + Calcolo del checkpoint dell'accumulatore non riuscito + + + Failed to listen on any port. Use -listen=0 if you want this. + Impossibile ascoltare su qualsiasi porta. Usa -listen=0 se vuoi questo. + + + Failed to parse host:port string + Analisi dell'host non riuscita: stringa della porta + + + Failed to read block + Lettura del blocco non riuscita + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Commissione (in PIV/kB) da aggiungere alle transazioni inviate (impostazione predefinita: %s) + + + Force safe mode (default: %u) + Forza modalità provvisoria (impostazione predefinita: %u) + + + Generate coins (default: %u) + Genera coin (impostazione predefinita: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Quanti blocchi verificare all'avvio (impostazione predefinita: %u, 0 = all) + + + If <category> is not supplied, output all debugging information. + Se <category> non viene fornito, restituisce tutte le informazioni di debug. + + + Importing... + Importazione... + + + Imports blocks from external blk000??.dat file + Importa i blocchi dal file esterno blk000???.dat + + + Include IP addresses in debug output (default: %u) + Includi indirizzi IP nell'output di debug (impostazione predefinita: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + Trovato blocco genesi errato o assente. Datadir errato per la rete? + + + Information + Informazioni + + + Initialization sanity check failed. PIVX Core is shutting down. + Verifica dell'integrità dell'inizializzazione non riuscita. PIVX Core si sta spegnendo. + + + Insufficient funds + Fondi insufficienti + + + Insufficient funds. + Fondi insufficienti. + + + Invalid -onion address or hostname: '%s' + Invalid -proxy address or hostname: '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + Importo invalido per -maxtxfee=<amount>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Invalid amount for -minrelaytxfee=<amount>: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Importo invalido per -mintxfee=<amount>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Invalid amount for -paytxfee=<amount>: '%s' (deve essere almeno %s) + + + Invalid amount for -paytxfee=<amount>: '%s' + Invalid amount for -paytxfee=<amount>: '%s' + + + Invalid amount for -reservebalance=<amount> + Invalid amount for -reservebalance=<amount> + + + Invalid amount + Importo non valido + + + Invalid masternodeprivkey. Please see documenation. + Invalid masternodeprivkey. Si prega di consultare la documentazione. + + + Invalid netmask specified in -whitelist: '%s' + Invalid netmask specificata in -whitelist: '%s' + + + Invalid port detected in masternode.conf + Invalid port detected in masternode.conf + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Percentuale di Zerocoin forgiati automaticamente (1-100, valore predefinito: %u) + + + Recalculating PIV supply... + Ricalcolo della supply PIV... + + + Recalculating minted ZPIV... + Ricalcolo ZPIV forgiati... + + + Recalculating spent ZPIV... + Ricalcolo spese ZPIV... + + + Reindex the PIV and zPIV money supply statistics + Reindicizza le statistiche sulla supply di PIV e zPIV + + + Reindexing zerocoin database... + Reindicizzazione del database zerocoin... + + + Reindexing zerocoin failed + Errore nella reindicizzazione del database zerocoin + + + Selected coins value is less than payment target + Il valore delle coin selezionate è inferiore all'obiettivo di pagamento + + + Support the zerocoin light node protocol (default: %u) + Supporta il protocollo zerocoin light node (impostazione predefinita: %u) + + + SwiftX options: + Opzioni SwiftX: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + Questa è una build di test pre-release - utilizzare a proprio rischio - non utilizzare per staking o applicazioni commerciali! + + + mints deleted + + forgiature cancellate + + + + mints updated, + forgiature aggiornate, + + + unconfirmed transactions removed + + transazioni non confermate rimosse + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Disabilita tutte le funzionalità specifiche di PIVX (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Abilita SwiftX, mostra le conferme per le transazioni bloccate (valore bool, predefinito: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Errore: la transazione è stata rifiutata! Ciò potrebbe accadere se alcune delle coin nel tuo portafoglio fossero già state spese, come se tu avessi usato una copia di wallet.dat e le coin fossero state spese nella copia ma non contrassegnate come spese qui. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + Errore: questa transazione richiede una commissione di transazione di almeno %s a causa della sua quantità, complessità o utilizzo dei fondi ricevuti di recente! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + Errore: argomento non supportato -checklevel trovato. Il livello di controllo deve essere di livello 4. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + Esegui comando quando il blocco migliore cambia e la sua dimensione è finita (%s in cmd è sostituito dall'hash del blocco, %d con la dimensione del blocco) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Impossibile trovare il set di coin tra le coin detenute con meno di maxNumber of Spends + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + In rari casi, una spesa con 7 coin supera la dimensione massima consentita della transazione, riprovare a utilizzare 6 o meno coin + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Denominazione preferita per Zerocoin forgiato automaticamente (1/5/10/50/100/500/1000/5000), 0 per nessuna preferenza. impostazione predefinita: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Specificare il percorso di backup personalizzato per aggiungere una copia di qualsiasi backup zPIV automatico. Se impostato come dir, ogni backup genera un file con data e ora. Se impostato come file, riscriverà su quel file ogni backup. Se viene impostato anche il backuppath, verranno eseguiti 4 backup + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Specifica il percorso di backup personalizzato per aggiungere una copia di qualsiasi backup del portafoglio. Se impostato come dir, ogni backup genera un file con data e ora. Se impostato come file, riscriverà su quel file ogni backup. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftX richiede input con almeno 6 conferme, potrebbe essere necessario attendere qualche minuto e riprovare. + + + <category> can be: + <category> può essere: + + + Attempt to force blockchain corruption recovery + Tentativo di forzare il ripristino della blockchain corrotta + + + Cannot create public spend input + Impossibile creare input di spesa pubblica + + + CoinSpend: Accumulator witness does not verify + CoinSpend: il testimone dell'accumulatore non verifica + + + Display the stake modifier calculations in the debug.log file. + Visualizza i calcoli del modificatore di stake nel file debug.log. + + + Display verbose coin stake messages in the debug.log file. + Visualizza dettagliatamente i messaggi di staking della coin nel file debug.log. + + + Enable publish hash block in <address> + Abilita pubblicazione hash block in <address> + + + Enable publish hash transaction in <address> + Abilita pubblicazione hash transazione in <address> + + + Enable publish raw block in <address> + Abilita pubblicazione raw block in <address> + + + Enable publish raw transaction in <address> + Abilita pubblicazione transazione raw in <address> + + + Enable staking functionality (0-1, default: %u) + Abilita la funzionalità di staking (0-1, default: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Errore: si è verificato un errore interno irreversibile, vedere debug.log per i dettagli + + + Error: No valid utxo! + Errore: Nessun utxo valido! + + + Failed to create mint + Errore durante la forgiatura + + + Failed to find Zerocoins in wallet.dat + Impossibile trovare Zerocoins in wallet.dat + + + Failed to parse public spend + Analisi della spesa pubblica non riuscita + + + Failed to select a zerocoin + Impossibile selezionare uno zerocoin + + + Failed to wipe zerocoinDB + Impossibile cancellare zerocoinDB + + + Failed to write coin serial number into wallet + Impossibile scrivere il numero seriale della coin nel portafoglio + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Conserva al massimo <n> transazioni non collegabili in memoria (impostazione predefinita: %u) + + + Limit size of signature cache to <n> entries (default: %u) + Limita la dimensione della cache delle firme a <n> voci (default: %u) + + + Line: %d + Linea: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Ascolta le connessioni JSON-RPC su <port> (default: %u o testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Ascolta le connessioni su <port> (default: %u or testnet: %u) + + + Loading addresses... + Caricamento indirizzi... + + + Loading block index... + Caricamento indice dei blocchi... + + + Loading budget cache... + Caricamento cache budget... + + + Loading masternode cache... + Caricamento cache masternode... + + + Loading masternode payment cache... + Caricamento cache pagamento masternode... + + + Loading sporks... + Caricamento sporks... + + + Loading wallet... (%3.2f %%) + Caricamento portafoglio... (%3.2f %%) + + + Loading wallet... + Caricamento portafoglio... + + + Location of the auth cookie (default: data dir) + Posizione del cookie di autenticazione (impostazione predefinita: directory dati) + + + Lock masternodes from masternode configuration file (default: %u) + Blocca i masternodes dal file di configurazione del masternode (default: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Lookup(): Invalid -proxy address or hostname: '%s' + + + Maintain at most <n> connections to peers (default: %u) + Conserva al massimo <n> connessioni ai peers (impostazione predefinita: %u) + + + Masternode options: + Opzioni del Masternode: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Buffer di ricezione massimo per connessione, <n>*1000 bytes (default: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Buffer di spedizione massimo per connessione, <n>*1000 bytes (default: %u) + + + Mint did not make it into blockchain + La forgiatura non è riuscita nella blockchain + + + Need to specify a port with -whitebind: '%s' + È necessario specificare una porta con -whitebind: '%s' + + + Node relay options: + Opzioni di inoltro del nodo: + + + Not enough file descriptors available. + Descrittori di file disponibili insufficienti. + + + Number of automatic wallet backups (default: 10) + Numero di backup automatici del portafoglio (impostazione predefinita: 10) + + + Number of custom location backups to retain (default: %d) + Numero di backup di posizione personalizzati da conservare (impostazione predefinita: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Accetta solo checkpoint integrati corrispondenti alla catena di blocchi (impostazione predefinita: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Connetti solo a nodi in rete <net> (ipv4, ipv6 o onion) + + + Options: + Opzioni: + + + Password for JSON-RPC connections + Password per connessioni JSON-RPC + + + Unable to find transaction containing mint %s + Impossibile trovare la transazione contenente forgiatura %s + + + Unable to find transaction containing mint, txHash: %s + Impossibile trovare la transazione contenente forgiatura, txHash %s + + + Use block spam filter (default: %u) + Usa il filtro antispam di blocco (default: %u) + + + could not get lock on cs_spendcache + impossibile ottenere il blocco su cs_spendcache + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid(): Invalid -proxy address or hostname: '%s' + + + Preparing for resync... + Preparazione per la risincronizzazione... + + + Need destination or change address because change is not exact + Hai bisogno di una destinazione o cambia indirizzo perché il cambio non è esatto + + + Prepend debug output with timestamp (default: %u) + Prepara l'output di debug con data / ora (default: %u) + + + Print version and exit + Stampa versione e esci + + + Pubcoin not found in mint tx + Pubcoin not trovato nella tx di forgiatura + + + RPC server options: + Opzioni del server RPC: + + + Randomly drop 1 of every <n> network messages + Rilascia a caso 1 di ogni <n> messaggi di rete + + + Randomly fuzz 1 of every <n> network messages + Rilascia a caso 1 di ogni <n> messaggi di rete + + + Rebuild block chain index from current blk000??.dat files + Ricostruisce l'indice della blockchain dai file blk000??.dat corrente. + + + Receive and display P2P network alerts (default: %u) + Ricevi e visualizza avvisi di rete P2P (default: %u) + + + Reindex the accumulator database + Reindicizzazione del database accumulatore + + + Relay and mine data carrier transactions (default: %u) + Transazioni e operazioni di estrazione dati da mining (default: %u) + + + Relay non-P2SH multisig (default: %u) + Inoltra non-P2SH multisig (default: %u) + + + Rescan the block chain for missing wallet transactions + Riesegui la scansione della blockchain per cercare le transazioni mancanti. + + + Rescanning... + Scansiona nuovamente... + + + ResetMintZerocoin finished: + ResetMintZerocoin terminato: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin terminato: + + + Run a thread to flush wallet periodically (default: %u) + Esegui un thread per scaricare periodicamente il portafoglio (default: %u) + + + Run in the background as a daemon and accept commands + Esegui in background come demone e accetta comandi + + + Send transactions as zero-fee transactions if possible (default: %u) + Invia transazioni come transazioni a costo zero, se possibile (default: %u) + + + Session timed out. + La sessione è scaduta. + + + Set database cache size in megabytes (%d to %d, default: %d) + Imposta la dimensione della cache del database in megabyte (%d a %d, default: %d) + + + Set external address:port to get to this masternode (example: %s) + Imposta indirizzo esterno:porta per arrivare a questo nodo principale (esempio: %s) + + + Set key pool size to <n> (default: %u) + Impostare la dimensione del pool di chiavi su<n> (default: %u) + + + Set maximum block size in bytes (default: %d) + Imposta la dimensione massima del blocco in byte (default: %d) + + + Set minimum block size in bytes (default: %u) + Imposta la dimensione minima del blocco in byte (default: %u) + + + Set the Maximum reorg depth (default: %u) + Imposta la profondità massima del reorg (default: %u) + + + Set the masternode private key + Impostare la chiave privata del Masternode + + + Set the number of threads to service RPC calls (default: %d) + Imposta il numero di thread per servire le chiamate RPC (default: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Imposta il flag DB_PRIVATE nell'ambiente db del portafoglio (default: %u) + + + Show all debugging options (usage: --help -help-debug) + Mostra tutte le opzioni di debug (uso: --help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Riduci il file debug.log all'avvio del client (impostazione predefinita: 1 se non -debug) + + + Signing timed out. + Firma scaduta. + + + Signing transaction failed + Firma della transazione non riuscita + + + Specify configuration file (default: %s) + Specificare il file di configurazione (default: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Specifica il timeout della connessione in millisecondi (minimo: 1, impostazione predefinita: %d) + + + Specify data directory + Specifica la directory dei dati + + + Specify masternode configuration file (default: %s) + Specificare il file di configurazione del Masternode (default: %s) + + + Specify pid file (default: %s) + Specifica il file pid (default: %s) + + + Specify wallet file (within data directory) + Specifica il file del portafoglio (all'interno della directory dei dati) + + + Specify your own public address + Specifica il tuo indirizzo pubblico + + + Spend Valid + Spesa Valida + + + Spend unconfirmed change when sending transactions (default: %u) + Spendi modifiche non confermate quando invii transazioni (default: %u) + + + Staking options: + Opzioni di staking: + + + Stop running after importing blocks from disk (default: %u) + Interrompere l'esecuzione dopo l'importazione di blocchi dal disco (default: %u) + + + Synchronization failed + Sincronizzazione non riuscita + + + Synchronization finished + Sincronizzazione finita + + + Synchronization pending... + Sincronizzazione in attesa... + + + Synchronizing budgets... + Sincronizzazione budgets... + + + Synchronizing masternode winners... + Sincronizzazione dei Masternode vincitori... + + + Synchronizing masternodes... + Sincronizzazione dei Masternode... + + + Synchronizing sporks... + Sincronizzazione sporks... + + + Syncing zPIV wallet... + Sincronizzazione del portafoglio zPIV... + + + The coin spend has been used + La coin spend è stata utilizzata + + + The transaction did not verify + La transazione non è stata verificata + + + This help message + Questo messaggio di aiuto + + + This is experimental software. + Questo è un software sperimentale. + + + This is intended for regression testing tools and app development. + Questo è destinato agli strumenti di test di regressione e allo sviluppo di app. + + + Threshold for disconnecting misbehaving peers (default: %u) + Soglia per disconnettere peer che si comportano in modo inappropriato (default: %u) + + + Too many spends needed + Troppe spese necessarie + + + Tor control port password (default: empty) + Password della porta di controllo Tor (impostazione predefinita: vuota) + + + Tor control port to use if onion listening enabled (default: %s) + Porta di controllo Tor da utilizzare se l'ascolto onion è abilitato (default: %s) + + + Transaction Created + Transazione creata + + + Transaction Mint Started + Transazione di forgiatura iniziata + + + Transaction amount too small + Transazione troppo piccola + + + Transaction amounts must be positive + Gli importi delle transazioni devono essere positivi + + + Transaction too large for fee policy + Transazione troppo grande per le regole dei costi + + + Transaction too large + Transazione troppo grande + + + Trying to spend an already spent serial #, try again. + Tentativo di spendere un numero seriale già esaurito, riprovare. + + + Unable to bind to %s on this computer (bind returned error %s) + Impossibile associare %s su questo computer (errore associato restituito %s) + + + Unable to generate initial key + Impossibile generare la chiave iniziale + + + Unable to sign spork message, wrong key? + Impossibile firmare il messaggio spork, chiave errata? + + + Unable to start HTTP server. See debug log for details. + Impossibile avviare il server HTTP. Vedi il registro di debug per i dettagli. + + + Unknown network specified in -onlynet: '%s' + Rete sconosciuta specificata in -onlynet: '%s' + + + Upgrade wallet to latest format + Aggiorna all'ultimo formato del portafoglio + + + Use UPnP to map the listening port (default: %u) + Utilizzare UPnP per mappare la porta di ascolto (default: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Utilizzare UPnP per mappare la porta di ascolto (default: 1 in ascolto) + + + Use a custom max chain reorganization depth (default: %u) + Utilizzare una profondità di riorganizzazione della catena massima personalizzata (default: %u) + + + Use the test network + Usa la rete di test + + + User Agent comment (%s) contains unsafe characters. + Il commento del User Agent (%s) contiene caratteri non sicuri. + + + Username for JSON-RPC connections + Nome utente per connessioni JSON-RPC + + + Value is below the smallest available denomination (= 1) of zPIV + Il valore è inferiore alla denominazione più piccola disponibile (=1) di zPIV + + + Verifying blocks... + Verifica dei blocchi... + + + Verifying wallet... + Verifica del portafoglio... + + + Wallet %s resides outside data directory %s + Il portafoglio %s risiede al di fuori della directory di dati %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + Il portafoglio doveva essere riscritto: riavviare PIVX Core per completare + + + Wallet options: + Opzioni del portafoglio: + + + Wallet window title + Titolo della finestra del portafoglio + + + Warning + Avvertimento + + + Warning: This version is obsolete, upgrade required! + Attenzione: questa versione è obsoleta, è necessario l'aggiornamento! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Avvertenza: argomento non supportato -benchmark ignorato, utilizzare -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Avvertenza: argomento non supportato -debugnet ignorato, utilizzare -debug=net. + + + You don't have enough Zerocoins in your wallet + Non hai abbastanza Zerocoin nel tuo portafoglio + + + You need to rebuild the database using -reindex to change -txindex + È necessario ricostruire il database utilizzando -reindex per modificare -txindex + + + Zapping all transactions from wallet... + Zapping di tutte le transazioni dal portafoglio... + + + ZeroMQ notification options: + Opzioni di notifica ZeroMQ: + + + Zerocoin options: + Opzioni Zerocoin: + + + on startup + all'avvio + + + wallet.dat corrupt, salvage failed + wallet.dat corrotto, recupero fallito + + + + send + + Form + Modulo + + + Send + Invia + + + TextLabel + Etichetta + + + PushButton + Premi il bottone + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_ja.ts b/src/qt/locale/pivx_ja.ts new file mode 100644 index 0000000..6dc38e2 --- /dev/null +++ b/src/qt/locale/pivx_ja.ts @@ -0,0 +1,357 @@ + + + AddNewAddressDialog + + Address + アドレス + + + + AddNewContactDialog + + + AddressBookPage + + Right-click to edit address or label + å³ã‚¯ãƒªãƒƒã‚¯ã§ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚‚ã—ãã¯ãƒ©ãƒ™ãƒ«ã‚’編集 + + + Create a new address + æ–°ã—ã„ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’ä½œæˆ + + + &New + ï¼†æ–°è¦ + + + Copy the currently selected address to the system clipboard + クリップボードã¸ç¾åœ¨é¸æŠžã—ã¦ã„るアドレスをコピー + + + &Copy + &コピー + + + Delete the currently selected address from the list + リストã‹ã‚‰é¸æŠžã•ã‚ŒãŸã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’削除 + + + &Delete + &削除 + + + &Export + &エクスãƒãƒ¼ãƒˆ + + + C&lose + &閉ã˜ã‚‹ + + + Choose the address to send coins to + é€ä¿¡å…ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’é¸ã‚“ã§ã‚³ã‚¤ãƒ³ã‚’é€ã‚‹ + + + Choose the address to receive coins with + å—信用アドレスをé¸ã‚“ã§ã‚³ã‚¤ãƒ³ã‚’å—ã‘å–ã‚‹ + + + C&hoose + &é¸æŠž + + + Sending addresses + é€ä¿¡å…ˆã‚¢ãƒ‰ãƒ¬ã‚¹ + + + Receiving addresses + å—信用アドレス + + + &Copy Address + &アドレスをコビー + + + &Edit + &編集 + + + Export Address List + アドレスリストをエクスãƒãƒ¼ãƒˆ + + + Exporting Failed + エクスãƒãƒ¼ãƒˆå¤±æ•— + + + + AddressLabelRow + + + AddressTableModel + + Address + アドレス + + + + AddressesWidget + + + AskPassphraseDialog + + Encrypt wallet + 財布を暗å·åŒ– + + + Change passphrase + パスワードを変更 + + + Enter the old and new passphrase to the wallet. + ç¾åœ¨ã®ãƒ‘スワードã¨æ–°ã—ã„パスワードを財布ã«å…¥åŠ› + + + Wallet encrypted + 財布ãŒæš—å·åŒ–ã•ã‚ŒãŸ + + + + BanTableModel + + + BlockExplorer + + + CSRow + + + ClientModel + + + CoinControlDialog + + + CoinControlPivWidget + + Address + アドレス + + + + ColdStakingWidget + + + ContactDropdownRow + + + DashboardWidget + + + DefaultDialog + + + DenomGenerationDialog + + + EditAddressDialog + + + ExpandableButton + + + FreespaceChecker + + + GovernancePage + + + HelpMessageDialog + + + Intro + + + LoadingDialog + + + LockUnlock + + + MNRow + + + MasterNodeWizardDialog + + Address + アドレス + + + + MasterNodesWidget + + + MnInfoDialog + + + MyAddressRow + + + NavMenuWidget + + + OpenURIDialog + + + OptionButton + + + OptionsDialog + + + PIVXGUI + + + PWidget + + + PaymentServer + + + PeerTableModel + + + PrivacyWidget + + + ProposalFrame + + + QObject + + + RPCConsole + + + ReceiveDialog + + + ReceiveWidget + + + RecentRequestsTableModel + + Address + アドレス + + + + RequestDialog + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + + SendMultiRow + + + SendWidget + + + SettingsBackupWallet + + + SettingsBitToolWidget + + + SettingsConsoleWidget + + + SettingsDisplayOptionsWidget + + + SettingsFaqWidget + + + SettingsInformationWidget + + + SettingsMainOptionsWidget + + + SettingsMultisendDialog + + + SettingsMultisendWidget + + + SettingsSignMessageWidgets + + + SettingsWalletOptionsWidget + + + SettingsWalletRepairWidget + + + SettingsWidget + + + ShutdownWindow + + + SnackBar + + + Splash + + + SplashScreen + + + TooltipMenu + + + TopBar + + + TrafficGraphWidget + + + TransactionDesc + + + TransactionTableModel + + Address + アドレス + + + + TxDetailDialog + + + TxRow + + + WalletModel + + + WalletPasswordDialog + + + WelcomeContentWidget + + + ZPivControlDialog + + + pivx-core + + + send + + \ No newline at end of file diff --git a/src/qt/locale/pivx_ko_KR.ts b/src/qt/locale/pivx_ko_KR.ts new file mode 100644 index 0000000..3308475 --- /dev/null +++ b/src/qt/locale/pivx_ko_KR.ts @@ -0,0 +1,4913 @@ + + + AddNewAddressDialog + + My Address + ë‚´ 주소 + + + Address + 주소 + + + PushButton + 누르기 + + + CANCEL + 취소 + + + OK + ì„ íƒ + + + + AddNewContactDialog + + TextLabel + í…스트ë¼ë²¨ + + + CANCEL + 취소 + + + OK + ì„ íƒ + + + Edit Contact + ì—°ë½ì²˜ 수정 + + + Set a label for the selected address + ì„ íƒëœ ì£¼ì†Œì— ë¼ë²¨ 설정하기 + + + Enter a name for the address (e.g Exchange) + 주소 ì´ë¦„ ìž…ë ¥ (예 : 거래소) + + + SAVE + 저장 + + + Edit label for the selected address: +%1 + ì„ íƒëœ ì£¼ì†Œì˜ ë¼ë²¨ 변경: +%1 + + + + AddressBookPage + + Right-click to edit address or label + 주소 ë° ë¼ë²¨ì„ 수정하려면 마우스 오른쪽 ë²„íŠ¼ì„ í´ë¦­í•´ì£¼ì„¸ìš”. + + + Create a new address + 새로운 주소 만들기 + + + &New + &ìƒì„± + + + Copy the currently selected address to the system clipboard + 현재 ì„ íƒëœ 주소를 복사합니다. + + + &Copy + &복사 + + + Delete the currently selected address from the list + 현재 ì„ íƒëœ 주소를 목ë¡ì—ì„œ 삭제합니다. + + + &Delete + &ì‚­ì œ + + + Export the data in the current tab to a file + 현재 ì„ íƒëœ íƒ­ì˜ ë°ì´í„°ë¥¼ 파ì¼ë¡œ 내보내기 + + + &Export + &내보내기 + + + C&lose + ë‹«&기 + + + Choose the address to send coins to + 송금할 주소를 ì„ íƒí•´ì£¼ì„¸ìš”. + + + Choose the address to receive coins with + 입금 ë°›ì„ ì£¼ì†Œë¥¼ ì„ íƒí•´ì£¼ì„¸ìš”. + + + C&hoose + ì„ &íƒ + + + Sending addresses + 보낼 주소 + + + Receiving addresses + ë°›ì„ ì£¼ì†Œ + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + ì´ ì£¼ì†Œë“¤ì€ ì†¡ê¸ˆí•  PIVX 주소입니다. 송금하기 ì „ í•­ìƒ ê¸ˆì•¡ê³¼ 주소를 확ì¸í•´ì£¼ì„¸ìš”. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + ì´ ì£¼ì†Œë“¤ì€ ìž…ê¸ˆ ë°›ì„ PIVX 주소입니다. 매 거래마다 새로운 입금 주소를 사용하는 ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤. + + + &Copy Address + &주소 복사 + + + Copy &Label + ë¼ë²¨ &복사 + + + &Edit + &수정 + + + Export Address List + ì£¼ì†Œë¡ ë‚´ë³´ë‚´ê¸° + + + Comma separated file (*.csv) + 콤마로 구분 ëœ íŒŒì¼ (*.csv) + + + Exporting Failed + 내보내기 실패 + + + There was an error trying to save the address list to %1. Please try again. + %1 ì— ì£¼ì†Œ 목ë¡ì„ 저장하는 ë™ì•ˆ 오류가 ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤. 다시 ì‹œë„해주세요. + + + + AddressLabelRow + + Form + Form + + + Bob Allen + ë°¥ 앨런 + + + + AddressTableModel + + Label + ë¼ë²¨ + + + Address + 주소 + + + Date + 날짜 + + + (no label) + (ë¼ë²¨ ì—†ìŒ) + + + + AddressesWidget + + Form + Form + + + Send + 보내기 + + + TextLabel + í…스트ë¼ë²¨ + + + No active Master Node yet + ì§€ê¸ˆì€ í™œì„±í™”ëœ ë§ˆìŠ¤í„° 노드가 없습니다. + + + Contact name + ì—°ë½ì²˜ ì´ë¦„ + + + Enter address + 주소 ìž…ë ¥ + + + OK + ì„ íƒ + + + Contacts + ì—°ë½ì²˜ + + + You can add a new one in the options menu to the side. + ì˜†ì— ìžˆëŠ” 옵션 메뉴ì—ì„œ 새로운 주소를 추가할 수 있습니다. + + + No contacts yet + ì—°ë½ì²˜ê°€ 비어 있습니다. + + + e.g. John Doe + 예) í™ê¸¸ë™ + + + Enter a PIVX address + PIVX 주소를 입력하세요. + + + SAVE + 저장 + + + Invalid Contact Address + ì—°ë½ì²˜ 주소가 잘못 ë˜ì—ˆìŠµë‹ˆë‹¤. + + + Cannot store your own address as contact + ìžì‹ ì˜ 주소는 ì—°ë½ì²˜ë¡œ 저장할 수 없습니다. + + + Address already stored, label: %1 + ì´ë¯¸ ì €ìž¥ëœ ì£¼ì†Œìž…ë‹ˆë‹¤. ë¼ë²¨: %1 + + + New Contact Stored + 새로운 주소가 저장ë˜ì—ˆìŠµë‹ˆë‹¤. + + + Error Storing Contact + ì—°ë½ì²˜ 저장 오류 + + + Contact edited + ì—°ë½ì²˜ 수정 + + + Contact edit failed + ì—°ë½ì²˜ ìˆ˜ì •ì´ ì‹¤íŒ¨í•˜ì˜€ìŠµë‹ˆë‹¤. + + + Delete Contact + ì—°ë½ì²˜ ì‚­ì œ + + + Contact Deleted + ì—°ë½ì²˜ê°€ ì‚­ì œë˜ì—ˆìŠµë‹ˆë‹¤ + + + Error deleting a contact + ì—°ë½ì²˜ ì‚­ì œ 오류 + + + Address copied + 주소가 복사ë˜ì—ˆìŠµë‹ˆë‹¤. + + + + AskPassphraseDialog + + Passphrase Dialog + 암호 대화ìƒìž + + + TextLabel + í…스트ë¼ë²¨ + + + PushButton + 누르기 + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + ì§€ê°‘ì— ìƒˆë¡œìš´ 암호를 입력해주세요. <br/><b>10ìžë¦¬ ì´ìƒì˜ ìž„ì˜ì˜ 문ìž</b> ë˜ëŠ”, <b>8ê°œ ì´ìƒì˜ 단어</b>ë¡œ êµ¬ì„±ëœ ì•”í˜¸ë¥¼ 입력해주세요. + + + Encrypt wallet + 지갑 암호화 + + + This operation needs your wallet passphrase to unlock the wallet. + ì´ ìž‘ì—…ì€ ì§€ê°‘ì˜ ì•”í˜¸ë¥¼ 풀어 ì§€ê°‘ì„ ìž ê¸ˆí•´ì œë¥¼ 진행해야 합니다. + + + Unlock wallet +for staking + 스테ì´í‚¹ì„ 위한 +지갑 보안 í•´ì œ + + + Unlock wallet + 지갑 잠금해제 + + + This operation needs your wallet passphrase to decrypt the wallet. + ì´ ìž‘ì—…ì€ ì§€ê°‘ 암호화 해제를 하셔야 가능합니다. + + + Decrypt wallet + 지갑 암호화 í•´ì œ + + + Change passphrase + 암호 변경 + + + Enter the old and new passphrase to the wallet. + ì§€ê°‘ì— ì‚¬ìš©í•  ì´ì „ 암호와 새로운 암호를 입력해주세요. + + + Confirm wallet encryption + 지갑 암호화 í™•ì¸ + + + ENCRYPT + 암호화 + + + CANCEL + 취소 + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX는 ì´ì œ 암호화 프로세스를 마치기 위해 ë‹«ížê²ƒìž…니다. ì§€ê°‘ì„ ì•”í˜¸í™”í•˜ë”ë¼ë„ 맬웨어로 ì¸í•œ PIVs ì˜ ë„난당하는 ê²ƒì„ ì™„ë²½í•˜ê²Œ 보호 í•  수는 없습니다. + + + Are you sure you wish to encrypt your wallet? + ì§€ê°‘ì„ ì•”í˜¸í™” 하시겠습니까? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + 경고: 지갑 암호화 후 암호를 분실하게 ë˜ë©´ <b>모든 PIV를 잃게 ë©ë‹ˆë‹¤</b>! + + + Wallet encrypted + 지갑 암호화 완료 + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + 중요: ì´ì „ì— ì§€ê°‘ 파ì¼ë¡œ 백업 í•œ 경우 지갑 파ì¼ì„ 암호화 ëœ ì§€ê°‘ 파ì¼ë¡œ 대체해야 합니다. ë³´ì•ˆìƒ ë¬¸ì œë¡œ, 암호화ë˜ì§€ ì•Šì€ ì§€ê°‘ 파ì¼ì˜ ì´ì „ ë°±ì—…ì€ ìƒˆë¡­ê²Œ 암호화 ëœ ì§€ê°‘ì„ ì‚¬ìš©í•˜ê²Œ ë˜ë©´ 쓸모없게 ë  ê²ƒìž…ë‹ˆë‹¤. + + + Wallet encryption failed + 지갑 암호화 실패 + + + OK + ì„ íƒ + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + 내부 오류로 ì¸í•´ 지갑 ì•”í˜¸í™”ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. ì§€ê°‘ì´ ì•”í˜¸í™”ë˜ì§€ 않았습니다. + + + The supplied passphrases do not match. + 암호가 ì¼ì¹˜í•˜ì§€ 않습니다. + + + Wallet unlock failed + 지갑 잠금해제 실패 + + + The passphrase entered for the wallet decryption was incorrect. + 입력한 지갑 암호가 올바르지 않습니다. + + + Wallet decryption failed + 지갑 암호화 í•´ì œ 실패 + + + Wallet passphrase was successfully changed. + 지갑 암호가 변경ë˜ì—ˆìŠµë‹ˆë‹¤. + + + Warning: The Caps Lock key is on! + 경고: Caps Lock 키가 켜져있습니다! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + 까지 ì œí•œë¨ + + + + BlockExplorer + + Blockchain Explorer + 블ë¡ì²´ì¸ íƒìƒ‰ê¸° + + + Back + 뒤로 + + + Forward + 앞으로 + + + Address / Block / Transaction + 주소 / ë¸”ë¡ / 트랜잭션 + + + Search + 검색 + + + TextLabel + í…스트ë¼ë²¨ + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + 모든 íŠ¸ëžœìž­ì…˜ì´ í‘œì‹œë˜ì§€ëŠ” 않습니다. 모든 íŠ¸ëžœìž­ì…˜ì„ ë³´ë ¤ë©´ 구성 íŒŒì¼ (pivx.conf)ì— txindex = 1ì„ ì„¤ì •í•´ì•¼í•©ë‹ˆë‹¤. + + + + CSRow + + Form + Form + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + ì „ì²´ : %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / 미확ì¸: %5) + + + Network Alert + ë„¤íŠ¸ì›Œí¬ ì•Œë¦¼ + + + + CoinControlDialog + + Quantity: + 수량: + + + Bytes: + ë°”ì´íŠ¸: + + + Fee: + 수수료: + + + Coin Selection + ì½”ì¸ ì„ íƒ + + + Dust: + 현금: + + + Change: + ìž”ëˆ: + + + Tree mode + 트리 모드 + + + List mode + ëª©ë¡ ëª¨ë“œ + + + (1 locked) + (1 ìž ê¹€) + + + Amount + 금액 + + + Transaction Details + 전송 ìƒì„¸ë‚´ì—­ + + + PushButton + 누르기 + + + 0.00 PIV + 0.00 PIV + + + 0 + 0 + + + Select all + ëª¨ë‘ ì„ íƒ + + + Received with label + 수신 ëœ ë¼ë²¨ + + + Received with address + 수신 ëœ ì£¼ì†Œ + + + OK + ì„ íƒ + + + Date + 날짜 + + + Confirmations + í™•ì¸ + + + Confirmed + í™•ì •ë¨ + + + Copy address + 주소 복사 + + + Copy label + ë¼ë²¨ 복사 + + + Copy amount + 금액 복사 + + + Copy transaction ID + 트랜잭션 ID 복사 + + + Lock unspent + 잠금ë˜ì§€ ì•ŠìŒ + + + Unlock unspent + 잠금해제ë˜ì§€ ì•ŠìŒ + + + Copy quantity + 수량 복사 + + + Copy fee + 수수료 복사 + + + Copy after fee + ì´ìš© 수수료 복사 + + + Copy bytes + ë°”ì´íŠ¸ 복사 + + + Copy priority + ìš°ì„  사항 복사 + + + Copy dust + 현금 복사 + + + Copy change + 변경 복사 + + + Unselect all + ëª¨ë‘ ì„ íƒ í•´ì œ + + + Please switch to "List mode" to use this function. + ì´ ê¸°ëŠ¥ì„ ì‚¬ìš©í•˜ë ¤ë©´ "ëª©ë¡ ëª¨ë“œ"ë¡œ 전환하십시오. + + + highest + 9 최고 + + + higher + 8 매우 ë†’ìŒ + + + high + 7 ë†’ìŒ + + + medium-high + 6 약간 ë†’ìŒ + + + medium + 5 중간 + + + low-medium + 4 ë‚®ì€ ì¤‘ê°„ + + + low + 3 ë‚®ìŒ + + + lower + 2 매우 ë‚®ìŒ + + + lowest + 1 최저 + + + (%1 locked) + (%1 ìž ê¹€) + + + none + ì—†ìŒ + + + yes + 예 + + + no + 아니오 + + + This label turns red, if the transaction size is greater than 1000 bytes. + 트랜잭션 í¬ê¸°ê°€ 1000 byte 보다 í´ ê²½ìš° ë¼ë²¨ì´ 빨간색으로 변경ë©ë‹ˆë‹¤. + + + This means a fee of at least %1 per kB is required. + 즉, KB 당 최소 %1 ì˜ ìˆ˜ìˆ˜ë£Œê°€ 필요합니다. + + + Can vary +/- 1 byte per input. + 입력당 +/- 1 byte ì¡°ì ˆ 가능. + + + Transactions with higher priority are more likely to get included into a block. + ìš°ì„  순위가 ë†’ì€ íŠ¸ëžœìž­ì…˜ì´ ë¸”ë¡ì— í¬í•¨ ë  í™•ë¥ ì´ ë†’ì•„ì§‘ë‹ˆë‹¤. + + + This label turns red, if the priority is smaller than "medium". + ìš°ì„  순위가 "중간" 보다 낮으면 ë¼ë²¨ì´ 빨간색으로 변경ë©ë‹ˆë‹¤. + + + This label turns red, if any recipient receives an amount smaller than %1. + 받는 ì‚¬ëžŒì´ %1 보다 ìž‘ì€ ê¸ˆì•¡ì„ ë°›ìœ¼ë©´ ë¼ë²¨ì´ 빨간색으로 변경ë©ë‹ˆë‹¤. + + + Can vary +/- %1 upiv per input. + Can vary +/- %1 upiv per input. + + + (no label) + (ë¼ë²¨ ì—†ìŒ) + + + change from %1 (%2) + %1 (%2) ì—ì„œ 변경 + + + (change) + (ìž”ëˆ) + + + + CoinControlPivWidget + + Transaction Details + 전송 ìƒì„¸ë‚´ì—­ + + + PushButton + 누르기 + + + PIV: + PIV: + + + TextLabel + í…스트ë¼ë²¨ + + + Quantity: + 수량: + + + Fee: + 수수료: + + + Amount + 금액 + + + Label + ë¼ë²¨ + + + Address + 주소 + + + Type + 분류 + + + Date + 날짜 + + + Confirmations + í™•ì¸ + + + Bytes: + ë°”ì´íŠ¸: + + + Dust: + 현금: + + + Change: + ìž”ëˆ: + + + CANCEL + 취소 + + + OK + ì„ íƒ + + + + ColdStakingWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + PushButton + 누르기 + + + Address copied + 주소가 복사ë˜ì—ˆìŠµë‹ˆë‹¤. + + + + ContactDropdownRow + + Form + Form + + + Bob Allen + ë°¥ 앨런 + + + + DashboardWidget + + Form + Form + + + Transactions + 전송 + + + You can see here the history of your account + ì´ê³³ì—ì„œ 계정 ì´ë ¥ì„ 확ì¸í•  수 있습니다. + + + Warning + 경고 + + + No transactions + 거래가 ì—†ìŒ + + + PushButton + 누르기 + + + Staking Rewards + 스테ì´í‚¹ ë³´ìƒ + + + TextLabel + í…스트ë¼ë²¨ + + + Staking statistics + 스테ì´í‚¹ 통계 + + + PIV + PIV + + + zPIV + zPIV + + + Sort by + ì •ë ¬ + + + Days + ì¼ + + + Months + ì›” + + + Years + ì—°ë„ + + + You can view your account's history + ë‹¹ì‹ ì˜ ìž…ì¶œê¸ˆ ì´ë ¥ì„ 확ì¸í•  수 있습니다. + + + Amount of PIV and zPIV staked. + 스테ì´í‚¹ ëœ PIV와 zPIV ì–‘ + + + All + ì „ì²´ + + + Received + ë°›ìŒ + + + Sent + 보냄 + + + Mined + 채굴 + + + Minted + 발행 + + + MN reward + 마스터노드 ë³´ìƒ + + + To yourself + ìžì‹ ì—게 + + + How to get PIV or zPIV + PIV í˜¹ì€ zPIV를 얻는 법 + + + You have no staking rewards + 스테ì´í‚¹ëœ ë³´ìƒì´ 없습니다. + + + Loading chart.. + 차트를 불러오는 중입니다.. + + + Error loading chart, invalid show option + 차트 로딩 ì—러, 보기 ì˜µì…˜ì´ ì—†ìŠµë‹ˆë‹¤. + + + Error loading chart: %1 + 차트 로딩 ì—러: %1 + + + + DefaultDialog + + Form + Form + + + Transaction Details + 전송 ìƒì„¸ë‚´ì—­ + + + CANCEL + 취소 + + + SAVE + 저장 + + + + DenomGenerationDialog + + Form + Form + + + Transaction Details + 전송 ìƒì„¸ë‚´ì—­ + + + PushButton + 누르기 + + + 5000 + 5000 + + + 100 + 100 + + + 10 + 10 + + + 1000 + 1000 + + + Select All + ëª¨ë‘ ì„ íƒ + + + CANCEL + 취소 + + + SAVE + 저장 + + + + EditAddressDialog + + Edit Address + 주소 수정 + + + &Label + &ë¼ë²¨ + + + The label associated with this address list entry + ì´ ì£¼ì†Œ 목ë¡ê³¼ ê´€ë ¨ëœ ë¼ë²¨ + + + &Address + &주소 + + + The address associated with this address list entry. This can only be modified for sending addresses. + ì´ ì£¼ì†Œ 목ë¡ê³¼ ê´€ë ¨ëœ ì£¼ì†Œìž…ë‹ˆë‹¤. 주소를 보낼 때만 수정할 수 있습니다. + + + New receiving address + 새로운 받는 주소 + + + New sending address + 새로운 보내는 주소 + + + Edit receiving address + 받는 주소 수정 + + + Edit sending address + 보내는 주소 수정 + + + The entered address "%1" is not a valid PIVX address. + ìž…ë ¥ëœ ì£¼ì†Œ "%1"는 올바른 PIVX 주소가 아닙니다. + + + The entered address "%1" is already in the address book. + 입력한 주소 "%1"는 ì´ë¯¸ 주소ë¡ì— ë“±ë¡ ë˜ìžˆìŠµë‹ˆë‹¤. + + + Could not unlock wallet. + ì§€ê°‘ì˜ ìž ê¸ˆì„ í•´ì œí•  수 없습니다. + + + New key generation failed. + 새로운 키 ìƒì„±ì— 실패하였습니다. + + + + ExpandableButton + + Form + Form + + + + FreespaceChecker + + A new data directory will be created. + 새로운 ë°ì´í„° 디렉토리가 ìƒì„±ë©ë‹ˆë‹¤. + + + name + ì´ë¦„ + + + Directory already exists. Add %1 if you intend to create a new directory here. + 디렉토리가 ì´ë¯¸ 존재합니다. ì—¬ê¸°ì— ìƒˆë¡œìš´ 디렉토리를 만들려면 %1ì„ ì¶”ê°€í•´ì£¼ì„¸ìš”. + + + Path already exists, and is not a directory. + 경로가 ì´ë¯¸ 존재하며 디렉토리가 아닙니다. + + + Cannot create data directory here. + ì—¬ê¸°ì— ë””ë ‰í† ë¦¬ë¥¼ 만들 수 없습니다. + + + + GovernancePage + + Form + Form + + + Update Proposals + 제안서 갱신 + + + Next super block: + ë‹¤ìŒ ìŠˆí¼ ë¸”ë¡ + + + 0 + 0 + + + Budget left: + ë‚¨ì€ ì˜ˆì‚° + + + Masternodes count: + 마스터노드 수 + + + + HelpMessageDialog + + version + 버전 + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + PIVX Core ì •ë³´ + + + Command-line options + 명령행 옵션 + + + Usage: + 사용: + + + command-line options + 명령행 옵션 + + + UI Options: + UI 옵션: + + + Choose data directory on startup (default: %u) + ë°ì´í„° 디렉토리 ì„ íƒ (기본: %u) + + + Show splash screen on startup (default: %u) + 실행시 초기화면 표시 (기본: %u) + + + Set language, for example "de_DE" (default: system locale) + 언어 설정 예시 "de_DE" (기본값: 시스템 언어) + + + Start minimized + 시작시 최소화 + + + Set SSL root certificates for payment request (default: -system-) + ê²°ì œ ìš”ì²­ì— ëŒ€í•œ SSL 루트 ì¸ì¦ì„œ 설정 (기본값: -system-) + + + OK + ì„ íƒ + + + + Intro + + Welcome + 환ì˜í•©ë‹ˆë‹¤ + + + Welcome to PIVX Core. + PIVX Coreì— ì˜¤ì‹  ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + ì´ í”„ë¡œê·¸ëž¨ì´ ì²˜ìŒ ì‹¤í–‰ë˜ì—ˆìœ¼ë¯€ë¡œ PIVX Coreê°€ ë°ì´í„°ë¥¼ 저장할 위치를 ì„ íƒí•  수 있습니다. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core는 PIVX 블ë¡ì²´ì¸ì„ 다운로드하여 저장합니다. 최소 %1GBì˜ ë°ì´í„°ê°€ ë””ë ‰í† ë¦¬ì— ì €ìž¥ë˜ë©° ì‹œê°„ì´ ì§€ë‚ ìˆ˜ë¡ ì¦ê°€í•©ë‹ˆë‹¤. ë˜í•œ ì§€ê°‘ë„ í•´ë‹¹ ë””ë ‰í† ë¦¬ì— ì €ìž¥ë©ë‹ˆë‹¤. + + + Use the default data directory + 기본 ë°ì´í„° 디렉토리 사용 + + + CANCEL + 취소 + + + OK + ì„ íƒ + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + 오류: ì§€ì •ëœ ë°ì´í„° 디렉토리 "%1"ì„ ìƒì„±í•  수 없습니다. + + + Error + ì—러 + + + %1 GB of free space available + %1 GBì˜ ì‚¬ìš© 가능한 여유 공간 + + + (of %1 GB needed) + (%1 GB í•„ìš”) + + + + LoadingDialog + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + Loading + 불러오는 중 + + + + LockUnlock + + Form + Form + + + Unlock Wallet + 지갑 잠금 í•´ì œ + + + Lock Wallet + 지갑 잠금 + + + Staking Only + 스테ì´í‚¹ë§Œ 진행 + + + + MNRow + + Form + Form + + + + MasterNodeWizardDialog + + Name + ì´ë¦„ + + + Address + 주소 + + + Create New Master Node Controller + 새로운 마스터노드 컨트롤러 ìƒì„± + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + <html><head/><body><p>PIVX 마스터노드 ìƒì„±ì„ 위해서는 최소 10,000 PIV (PIVX 단위) ê°€ ë„¤íŠ¸ì›Œí¬ ìƒì— 존재해야 합니다. (해당 ì½”ì¸ë“¤ì˜ ì†Œìœ ê¶Œì€ ê·¸ëŒ€ë¡œ 유지ë˜ë©° 사ë¼ì§€ì§€ 않습니다) </p><p></p><p> 언제든지 소유하고 있는 노드를 비활성화 시키거나 ì½”ì¸ì˜ 잠금ìƒíƒœë¥¼ 해제할 수 있습니다.</p></body></html> + + + Set Master Node’s Name + 마스터노드 ì´ë¦„ 지정 + + + Enter IP address + IP 주소 ìž…ë ¥ + + + Enter Port + Port ìž…ë ¥ + + + CANCEL + 취소 + + + OK + ì„ íƒ + + + NEXT + ë‹¤ìŒ + + + BACK + ì´ì „ + + + address label cannot be empty + 주소 ë¼ë²¨ì€ 비어있으면 안ë©ë‹ˆë‹¤. + + + Invalid masternode.conf file + masternode.conf 파ì¼ì´ 유효하지 않습니다. + + + Master node created! + 마스터노드가 ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤! + + + masternode.conf file doesn't exists + masternode.conf 파ì¼ì´ ìƒì„±ë˜ì§€ 않았습니다. + + + The recipient address is not valid, please recheck. + ìˆ˜ì‹ ìž ì£¼ì†Œê°€ 유효하지 않습니다. 다시 확ì¸í•´ì£¼ì„¸ìš”. + + + The amount to pay must be larger than 0. + 지불 í•  ê¸ˆì•¡ì€ 0보다 커야합니다. + + + The amount exceeds your balance. + 입력한 ê¸ˆì•¡ì´ ìž”ì•¡ì„ ì´ˆê³¼í•©ë‹ˆë‹¤. + + + The total exceeds your balance when the %1 transaction fee is included. + %1 트랜잭션 수수료가 í¬í•¨í•˜ë©´ 현재 ìž”ì•¡ì„ ì´ˆê³¼í•©ë‹ˆë‹¤. + + + Duplicate address found, can only send to each address once per send operation. + ì¤‘ë³µëœ ì£¼ì†Œë¥¼ 발견했습니다. ê° ì£¼ì†ŒëŠ” 전송 작업당 í•œ 번씩만 보낼 수 있습니다. + + + Transaction creation failed! + 트랜잭션 ìƒì„± 실패! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + íŠ¸ëžœìž­ì…˜ì´ ê±°ë¶€ë˜ì—ˆìŠµë‹ˆë‹¤! ì§€ê°‘ì— ìžˆëŠ” ì½”ì¸ ì¤‘ ì¼ë¶€ê°€ ì´ë¯¸ ì‚¬ìš©ëœ ê²½ìš°ì¼ ìˆ˜ 있습니다. wallet.dat ì‚¬ë³¸ì„ ì‚¬ìš©í•˜ê³  ì½”ì¸ì„ ì´ë¯¸ 사용하고 현재 ì—¬ê¸°ì— í‘œì‹œë˜ì§€ ì•Šì€ ê²½ìš°ì— ì´ëŸ° 현ìƒì´ ë°œìƒí•  수 있습니다. + + + Error: The wallet was unlocked only to anonymize coins. + 오류: 현재 ì§€ê°‘ì´ ìµëª… 처리를 위해 잠금해제 ë˜ì–´ 있습니다. ìµëª…í™” ë° ìŠ¤í…Œì´í‚¹ ì „ìš©ì„ í•´ì œí•˜ì‹œê³  다시 ì‹œë„하세요. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + KB당 %1보다 %2ë°° ë§Žì€ ìˆ˜ìˆ˜ë£ŒëŠ” 너무 ë†’ì€ ìˆ˜ìˆ˜ë£Œìž…ë‹ˆë‹¤. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + ì—러 : 현재 ì§€ê°‘ì€ ì½”ì¸ ìµëª…화를 위해서만 잠금해제ë˜ì—ˆìŠµë‹ˆë‹¤. 잠금해제가 취소ë©ë‹ˆë‹¤. + + + + MasterNodesWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + No active Master Node yet + ì§€ê¸ˆì€ í™œì„±í™”ëœ ë§ˆìŠ¤í„° 노드가 없습니다. + + + PushButton + 누르기 + + + No active Masternode yet + í™œì„±í™”ëœ ë§ˆìŠ¤í„°ë…¸ë“œê°€ 없습니다. + + + Start + 시작 + + + Delete + ì‚­ì œ + + + Info + ì •ë³´ + + + Start Masternode + 마스터노드 시작 + + + Are you sure you want to start masternode %1? + + 마스터노드 %1ì„ ì‹œìž‘í•˜ì‹œê² ìŠµë‹ˆê¹Œ? + + + Remote Masternode Data + 마스터노드 ë°ì´í„° ì›ê²© 조종 + + + Delete Masternode + 마스터노드 ì‚­ì œ + + + Invalid masternode.conf file + masternode.conf 파ì¼ì´ 유효하지 않습니다. + + + masternode.conf file doesn't exists + masternode.conf 파ì¼ì´ ìƒì„±ë˜ì§€ 않았습니다. + + + Not enough balance to create a masternode, 10,000 PIV required. + 마스터노드 ìƒì„±ì— 필요한 잔고가 부족합니다. 마스터노드 ìƒì„±ì—는 10,000 PIVê°€ 필요합니다. + + + + MnInfoDialog + + Form + Form + + + Address: + 주소: + + + Status: + ìƒíƒœ: + + + + MyAddressRow + + Form + Form + + + + NavMenuWidget + + Form + Form + + + V 1.0.0 + V.1.0.0 + + + + OpenURIDialog + + Open URI + URI 열기 + + + Open payment request from URI or file + URI ë˜ëŠ” 파ì¼ì—ì„œ ê²°ì œ 요청 열기 + + + TextLabel + í…스트ë¼ë²¨ + + + CANCEL + 취소 + + + OK + ì„ íƒ + + + Select payment request file + ê²°ì œ 요청 íŒŒì¼ ì„ íƒ + + + Select payment request file to open + 열려고하는 ê²°ì œ 요청 파ì¼ì„ ì„ íƒí•´ì£¼ì„¸ìš” + + + + OptionButton + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + + OptionsDialog + + Options + 옵션 + + + &Main + &ë©”ì¸ + + + Size of &database cache + &ë°ì´í„°ë² ì´ìŠ¤ ìºì‹œ í¬ê¸° + + + MB + MB + + + Number of script &verification threads + 스í¬ë¦½íŠ¸ &ê²€ì¦ ìŠ¤ë ˆë“œ 개수 + + + (0 = auto, <0 = leave that many cores free) + (0 = ìžë™, <0 = ë§Žì€ ì½”ì–´ë“¤ì„ ì—¬ìœ ë¡­ê²Œ ë‘기) + + + W&allet + 지&ê°‘ + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + 확ì¸ë˜ì§€ ì•Šì€ ë³€ê²½ì‚¬í•­ì„ ì‚¬ìš©í•˜ì§€ ì•Šë„ë¡ ì„¤ì •í•˜ë©´ 해당 íŠ¸ëžœìž­ì…˜ì— í•˜ë‚˜ ì´ìƒì˜ ì»¨íŽŒì´ ì§„í–‰ë˜ì•¼<br/>íŠ¸ëžœìž­ì…˜ì— ë³€ê²½ì‚¬í•­ì„ ì ìš©í•  수 있습니다.<br/>ë˜í•œ ì´ê²ƒì€ 잔액 계산 ë°©ì‹ì—ë„ ì˜í–¥ì„ ì¤ë‹ˆë‹¤. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + ë¼ìš°í„°ì—ì„œ PIVX í´ë¼ì´ì–¸íŠ¸ í¬íŠ¸ë¥¼ ìžë™ìœ¼ë¡œ 엽니다. ì´ ê¸°ëŠ¥ì€ ë¼ìš°í„°ê°€ UPnP를 지ì›í•˜ê³  활성화 ëœ ê²½ìš°ì—만 사용할 수 있습니다. + + + Accept connections from outside + 외부ì—ì„œì˜ ì—°ê²° 허용 + + + Allow incoming connections + 들어오는 ì—°ê²° 허용 + + + &Connect through SOCKS5 proxy (default proxy): + &SOCKS5 프ë¡ì‹œë¥¼ 통해 ì—°ê²° (기본 프ë¡ì‹œ): + + + Expert + ì „ë¬¸ì  + + + Automatically start PIVX after logging in to the system. + 시스템 ë¡œê·¸ì¸ í›„ PIVXì„ ìžë™ìœ¼ë¡œ 시작합니다. + + + &Start PIVX on system login + &시스템 로그ì¸ì‹œ PIVX 시작 + + + Whether to show coin control features or not. + ë™ì „ 제어 ê¸°ëŠ¥ì„ í‘œì‹œí• ì§€ 여부를 나타냅니다. + + + Enable coin &control features + ì½”ì¸ &제어 기능 사용 + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + 첫 번째 하위 탭ì—ì„œ 모든 마스터 노드를 나열하는 추가 탭과<br/>ë‘ ë²ˆì§¸ 하위 탭ì—ì„œ 네트워í¬ì˜ 모든 마스터 노드를 표시하십시오. + + + Show Masternodes Tab + 마스터노드 탭 표시 + + + &Spend unconfirmed change + &확ì¸ë˜ì§€ ì•Šì€ ë³€ê²½ì‚¬í•­ 전송 + + + &Network + &ë„¤íŠ¸ì›Œí¬ + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + ì‚¬ìš©ìž ì¸í„°íŽ˜ì´ìŠ¤ 언어를 설정할 수 있습니다. ì´ ì„¤ì •ì€ PIVXì„ ë‹¤ì‹œ 시작한 í›„ì— ì ìš©ë©ë‹ˆë‹¤. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + ì§€ì› ì–¸ì–´ê°€ 없거나 ë²ˆì—­ì´ ë¶ˆì™„ì „í•œê°€ìš”? ë²ˆì—­ì„ ë„와주세요 : +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + &UPnp를 사용하여 í¬íŠ¸ 매핑 + + + Enable automatic minting of PIV units to zPIV + ë³´ìƒë°›ì€ PIV를 zPIVë¡œ ìžë™ë³€í™˜ 활성화 + + + Enable zPIV Automint + zPIV ìžë™ìƒì„± 활성화 + + + Enable Automint Addresses + Automint 주소 사용 + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + PIV수신시 ìžë™ë³€í™˜ zPIV 비율 (최소값:10%) + + + Percentage of autominted zPIV + ìžë™ 변환ë˜ëŠ” zPIV 비율 + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + ì´ ë””ë…¸ë¯¸ë„¤ì´ì…˜ì˜ PIVê°€ 충분해질 때까지 Zerocoin으로 ìžë™ì „í™˜ì€ ë³´ë¥˜ë©ë‹ˆë‹¤. + + + Preferred Automint zPIV Denomination + 선호하는 ìžë™ìƒì„± zPIV 디노미네ì´ì…˜ + + + Stake split threshold: + Stake split threshold: + + + Connect to the PIVX network through a SOCKS5 proxy. + SOCKS5 프ë¡ì‹œë¥¼ 통해 PIVX 네트워í¬ì— 연결해주세요. + + + Proxy &IP: + 프ë¡ì‹œ &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + 프ë¡ì‹œ IP 주소 (예: IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &í¬íŠ¸: + + + Port of the proxy (e.g. 9050) + 프ë¡ì‹œ í¬íŠ¸ (예: 9050) + + + &Window + &윈ë„ìš° + + + Show only a tray icon after minimizing the window. + ì°½ 최소화 후 íŠ¸ë ˆì´ ì•„ì´ì½˜ìœ¼ë¡œë§Œ 표시. + + + &Minimize to the tray instead of the taskbar + &최소화시 ìž‘ì—…í‘œì‹œì¤„ì´ ì•„ë‹Œ 트레ì´ë¡œ 최소화 + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + ì°½ 닫기시 프로그램 종료하지 ì•Šê³  최소화하기. ì´ ì˜µì…˜ì„ ì‚¬ìš©í•˜ë©´ 메뉴ì—ì„œ 종료를 ì„ íƒí•´ì•¼ í”„ë¡œê·¸ëž¨ì´ ì¢…ë£Œë©ë‹ˆë‹¤. + + + M&inimize on close + ë‹«&기시 최소화 + + + &Display + &ë””ìŠ¤í”Œë ˆì´ + + + User Interface &language: + ì‚¬ìš©ìž ì¸í„°íŽ˜ì´ìŠ¤ &언어: + + + User Interface Theme: + ì‚¬ìš©ìž ì¸í„°íŽ˜ì´ìŠ¤ 테마: + + + Choose the default subdivision unit to show in the interface and when sending coins. + ì½”ì¸ ì „ì†¡ì‹œ ì¸í„°íŽ˜ì´ìŠ¤ì— 표시할 기본 세분화 단위를 ì„ íƒí•´ì£¼ì„¸ìš”. + + + Decimal digits + 10진수 + + + Hide empty balances + 잔액 0 숨기기 + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + 트랜잭션 íƒ­ì— ì»¨í…스트 메뉴 항목으로 표시ë˜ëŠ” 서드파티 URL (예: ë¸”ë¡ íƒìƒ‰) URLì˜ %s 는 트랜잭션 해시로 대체ë©ë‹ˆë‹¤. 여러 ê°œì˜ URLì€ ì„¸ë¡œ 막대로 구분ë©ë‹ˆë‹¤ |. + + + Third party transaction URLs + 서드파티 트랜잭션 URL + + + Active command-line options that override above options: + ìœ„ì˜ ì˜µì…˜ì„ ë¬´ì‹œí•˜ëŠ” 활성 명령행 옵션: + + + Reset all client options to default. + 모든 í´ë¼ì´ì–¸íŠ¸ ì˜µì…˜ì„ ê¸°ë³¸ê°’ìœ¼ë¡œ 재설정. + + + &Reset Options + &옵션 재설정 + + + &OK + &예 + + + &Cancel + &취소 + + + Any + ì–´ë–¤ + + + default + 기본값 + + + none + ì—†ìŒ + + + Confirm options reset + 옵션 재설정 í™•ì¸ + + + Client restart required to activate changes. + 변경 ì‚¬í•­ì„ ì ìš©í•˜ë ¤ë©´ í´ë¼ì´ì–¸íŠ¸ë¥¼ 다시 시작해야합니다. + + + Client will be shutdown, do you want to proceed? + í´ë¼ì´ì–¸íŠ¸ê°€ 종료ë©ë‹ˆë‹¤. ê³„ì† ì§„í–‰í•˜ì‹œê² ìŠµë‹ˆê¹Œ? + + + This change would require a client restart. + ì´ ë³€ê²½ì€ í´ë¼ì´ì–¸íŠ¸ê°€ 재시작 ë˜ì•¼ ì ìš©ë©ë‹ˆë‹¤. + + + The supplied proxy address is invalid. + 프ë¡ì‹œ 주소가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤. + + + The supplied proxy port is invalid. + ì œê³µëœ í”„ë¡ì‹œ í¬íŠ¸ê°€ 유효하지 않습니다. + + + The supplied proxy settings are invalid. + ì œê³µëœ í”„ë¡ì‹œ ì„¤ì •ì´ ìœ íš¨í•˜ì§€ 않습니다. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + 지갑 + + + Node + 노드 + + + &Show / Hide + &ë³´ì´ê¸° / 숨기기 + + + Show or hide the main Window + 기본 ì°½ ë³´ì´ê¸° ë˜ëŠ” 숨기기 + + + E&xit + 종&료 + + + Quit application + 어플리케ì´ì…˜ 종료 + + + PIVX Core client + PIVX Core í´ë¼ì´ì–¸íŠ¸ + + + Error + ì—러 + + + Warning + 경고 + + + Information + ì •ë³´ + + + System Message + 시스템 메세지 + + + Sent MultiSend transaction + 다중 보내기 ë°©ì‹ìœ¼ë¡œ 보냄 + + + Sent transaction + 보낸 ë‚´ì—­ + + + Incoming transaction + ë°›ì€ ë‚´ì—­ + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + 날짜: %1 +금액: %2 +유형: %3 +주소: %4 + + + + + PWidget + + + PaymentServer + + Payment request error + ê²°ì œ 요청 오류 + + + URI handling + URI 처리 + + + Payment request fetch URL is invalid: %1 + ê²°ì œ ìš”ì²­ì„ ë¶ˆëŸ¬ì˜¤ê¸° 위한 URLì´ ìž˜ëª» ë˜ì—ˆìŠµë‹ˆë‹¤: %1 + + + Payment request file handling + ê²°ì œ 요청 íŒŒì¼ ì²˜ë¦¬ 중 + + + Invalid payment address %1 + ìž˜ëª»ëœ ê²°ì œ 주소 %1 + + + Cannot start pivx: click-to-pay handler + PIVXì„ ì‹œìž‘í•  수 없습니다: 결제하기 위한 í´ë¦­ 처리 + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URI를 분ì„í•  수 없습니다! ì´ëŠ” ìž˜ëª»ëœ PIVX 주소 ë˜ëŠ” URI 매개변수 ì†ìƒìœ¼ë¡œ ì¸í•´ ë°œìƒí•  수 있습니다. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + ê²°ì œ 요청 파ì¼ì„ ì½ì–´ 올 수 없습니다! ì´ëŠ” ê²°ì œ 요청 파ì¼ì´ 잘못ë˜ì—ˆì„ ë•Œ ë°œìƒí•  수 있습니다. + + + Payment request rejected + ê²°ì œ 요청 거부 + + + Payment request network doesn't match client network. + 결제가 ìš”ì²­ëœ ë„¤íŠ¸ì›Œí¬ì™€ í´ë¼ì´ì–¸íŠ¸ì˜ 네트워í¬ê°€ ì¼ì¹˜í•˜ì§€ 않습니다. + + + Payment request has expired. + ê²°ì œ 요청 ê¸°ê°„ì´ ë§Œë£Œë˜ì—ˆìŠµë‹ˆë‹¤. + + + Payment request is not initialized. + ê²°ì œ 요청 ê°’ì´ ì´ˆê¸°í™” ë˜ì§€ 않았습니다. + + + Unverified payment requests to custom payment scripts are unsupported. + 커스텀 ê²°ì œ 스í¬ë¦½íŠ¸ì— 대한 확ì¸ë˜ì§€ ì•Šì€ ê²°ì œ ìš”ì²­ì€ ì§€ì›ë˜ì§€ 않습니다. + + + Requested payment amount of %1 is too small (considered dust). + %1 ì´í•˜ì˜ ê²°ì œ 요청 ê¸ˆì•¡ì€ ë„ˆë¬´ ì ìŠµë‹ˆë‹¤(현금으로 간주ë¨). + + + Refund from %1 + %1ë¡œ 부터 환불 ë˜ì—ˆìŠµë‹ˆë‹¤. + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + ê²°ì œ 요청 금액 %1ì€ ë„ˆë¬´ í½ë‹ˆë‹¤ (%2 ë°”ì´íŠ¸, %3 ë°”ì´íŠ¸ 허용). + + + Payment request DoS protection + ê²°ì œ 요청 DoS 보호 + + + Error communicating with %1: %2 + %1: %2 통신하는 중 오류 ë°œìƒ: + + + Payment request cannot be parsed! + ê²°ì œ ìš”ì²­ì„ í™•ì¸í•  수 없습니다! + + + Bad response from server %1 + %1 서버로 부터 ì‘답 ì—†ìŒ + + + Network request error + ë„¤íŠ¸ì›Œí¬ ìš”ì²­ 오류 + + + Payment acknowledged + ê²°ì œ í™•ì¸ ë¨ + + + + PeerTableModel + + Address/Hostname + 주소/ì‚¬ìš©ìž ì´ë¦„ + + + Version + 버전 + + + Ping Time + ì‘답 시간 + + + + PrivacyWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + PushButton + 누르기 + + + No active Master Node yet + ì§€ê¸ˆì€ í™œì„±í™”ëœ ë§ˆìŠ¤í„° 노드가 없습니다. + + + Convert back to PIV + PIV ë¡œ 재변환 + + + Zerocoin + ì œë¡œì½”ì¸ + + + convert + 변환 + + + + ProposalFrame + + + QObject + + Amount + 금액 + + + Enter a PIVX address (e.g. %1) + PIVX 주소를 입력하세요 (예 %1) + + + %1 d + %1 ì¼ + + + %1 h + %1 시간 + + + %1 m + %1 분 + + + %1 s + %1 ì´ˆ + + + NETWORK + ë„¤íŠ¸ì›Œí¬ + + + BLOOM + BLOOM + + + UNKNOWN + UNKNOWN + + + None + None + + + N/A + N/A + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + + RPCConsole + + Tools window + ë„구 ì°½ + + + &Information + &ì •ë³´ + + + General + ì¼ë°˜ + + + Name + ì´ë¦„ + + + Client name + í´ë¼ì´ì–¸íŠ¸ ì´ë¦„ + + + N/A + N/A + + + Number of connections + ì—°ê²°ëœ ìˆ˜ + + + &Open + &열기 + + + Startup time + 시작 시간 + + + Network + ë„¤íŠ¸ì›Œí¬ + + + Last block time + 최근 ë¸”ë¡ ì‹œê°„ + + + Debug log file + 로그 íŒŒì¼ ë””ë²„ê·¸ + + + Build date + 빌드 날짜 + + + Current number of blocks + 현재 ë¸”ë¡ ê°œìˆ˜ + + + Client version + í´ë¼ì´ì–¸íŠ¸ 버전 + + + Using BerkeleyDB version + ì‚¬ìš©ì¤‘ì¸ BerkeleyDB 버전 + + + Block chain + 블ë¡ì²´ì¸ + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + 현재 ë°ì´í„° 디렉토리ì—ì„œ PIVX 디버그 로그 파ì¼ì„ 엽니다. 로그 파ì¼ì´ í´ ê²½ìš°, ì•½ê°„ì˜ ì‹œê°„ì´ ê±¸ë¦´ 수 있습니다. + + + Number of Masternodes + 마스터노드 개수 + + + &Console + &콘솔 + + + Clear console + 콘솔 초기화 + + + &Network Traffic + &ë„¤íŠ¸ì›Œí¬ íŠ¸ëž˜í”½ + + + &Clear + &초기화 + + + Totals + ì´ + + + Received + ë°›ìŒ + + + Sent + 보냄 + + + &Peers + &피어 + + + Banned peers + ì œí•œëœ í”¼ì–´ + + + Select a peer to view detailed information. + ìžì„¸í•œ 정보를 보기 위해 피어를 ì„ íƒ í•˜ì„¸ìš”. + + + Whitelisted + í™”ì´íŠ¸ë¦¬ìŠ¤íŠ¸ + + + Direction + 위치 + + + Protocol + 프로토콜 + + + Version + 버전 + + + Services + 서비스 + + + Ban Score + ë°´ 스코어 + + + Connection Time + ì—°ê²° 시간 + + + Last Send + 최근 보냄 + + + Last Receive + 최근 ë°›ìŒ + + + Bytes Sent + 보낸 ë°”ì´íŠ¸ + + + Bytes Received + ë°›ì€ ë°”ì´íŠ¸ + + + Ping Time + ì‘답 시간 + + + &Wallet Repair + &지갑 복구 + + + Delete local Blockchain Folders + ìžì‹ ì˜ ì»´í“¨í„°ì˜ ë¸”ë¡ì²´ì¸ í´ë” ì‚­ì œ + + + Wallet In Use: + ì‚¬ìš©ì¤‘ì¸ ì§€ê°‘: + + + Starting Block + 시작 ë¸”ë¡ + + + Synced Headers + ë™ê¸°í™”ëœ í—¤ë” + + + Synced Blocks + ë™ê¸°í™”ëœ ë¸”ë¡ + + + The duration of a currently outstanding ping. + 현재 미해결 pingì˜ ì§€ì† ì‹œê°„. + + + Ping Wait + í•‘ 대기 + + + Time Offset + 타임 오프셋 + + + Custom Backup Path: + 맞춤 백업 경로 : + + + Custom zPIV Backup Path: + 맞춤 zPIV 백업 경로 : + + + Custom Backups Threshold: + 맞춤 백업 역치(threshold) : + + + Salvage wallet + 지갑 복구 + + + Attempt to recover private keys from a corrupt wallet.dat. + ì†ìƒëœ wallet.datë¡œ 부터 ê°œì¸í‚¤ 복구 ì‹œë„ + + + Rescan blockchain files + 블ë¡ì²´ì¸ íŒŒì¼ ìž¬ìŠ¤ìº” + + + Rescan the block chain for missing wallet transactions. + 거래내역 복구를 위한 블ë¡ì²´ì¸ 재검색 + + + Recover transactions 1 + 트랜잭션 복구 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + 블ë¡ì²´ì¸ì—ì„œ 거래내역 복구 (메타 ë°ì´í„° 저장 예: ì‚¬ìš©ìž ì£¼ì†Œ) + + + + Recover transactions 2 + 트랜잭션 복구 2 + + + Recover transactions from blockchain (drop meta-data). + 블ë¡ì²´ì¸ì—ì„œ 거래내역 복구 (메타 ë°ì´í„° ì‚­ì œ) + + + Upgrade wallet format + 지갑 구성 업그레ì´ë“œ + + + Rebuild block chain index from current blk000??.dat files. + 현재 blk000??.datë¡œ 부터 블ë¡ì²´ì¸ ì¸ë±ìŠ¤ 재작성 + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + 블ë¡ì²´ì¸ì„ 재ë™ê¸°í™”를 위해 모든 블ë¡ì²´ì¸ í´ë” ì‚­ì œ + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + 아래 ë²„íŠ¼ë“¤ì€ ì§€ê°‘ì„ ê³ ì¹˜ê¸° 위한 명령어 옵션들로 실행시 ì§€ê°‘ì„ ìž¬ì‹œìž‘í•©ë‹ˆë‹¤, ì†ìƒëœ 블ë¡ì²´ì¸ íŒŒì¼ ë˜ëŠ” 누ë½ë˜ì—ˆê±°ë‚˜ ì˜¤ëž˜ëœ íŠ¸ëžœìž­ì…˜ë“¤ì— ëŒ€í•œ 문제를 해결합니다. + + + Wallet repair options. + 지갑 복구 옵션. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + 시작시 ì§€ê°‘ì„ ìµœì‹  í¬ë§·ìœ¼ë¡œ 업그레ì´ë“œ (참고 : 지갑 ìžì²´ì˜ ì—…ë°ì´íŠ¸ 아님!) + + + Rebuild index + ìƒ‰ì¸ ìž¬êµ¬ì¶• + + + In: + ìž…ë ¥: + + + Out: + 출력: + + + Welcome to the PIVX RPC console. + PIVX RPC ì½˜ì†”ì— ì˜¤ì‹  ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤. + + + &Disconnect Node + & ì—°ê²°ì´ ëŠì–´ì§„ 노드 + + + Ban Node for + ì œí•œëœ ë…¸ë“œ + + + 1 &hour + 1 &시간 + + + 1 &day + 1 &ì¼ + + + 1 &week + 1 &ì£¼ì¼ + + + 1 &year + 1 &ë…„ + + + &Unban Node + &제한 í•´ì§€ëœ ë…¸ë“œ + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + 그러면 로컬 ë¸”ë¡ ì²´ì¸ í´ë”ê°€ ì‚­ì œë˜ê³  Walletì€ ì „ì²´ Blockchainì„ ì²˜ìŒë¶€í„° ë™ê¸°í™”합니다. + + + This needs quite some time and downloads a lot of data.<br /><br /> + ì´ê²ƒì€ ìƒë‹¹í•œ ì‹œê°„ì„ í•„ìš”ë¡œí•˜ë©° ë§Žì€ ì–‘ì˜ ë°ì´í„°ë¥¼ 다운로드합니다. + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + 다운로드가 완료ë˜ë©´ 거래와 ìžê¸ˆì´ 다시 표시ë©ë‹ˆë‹¤ .12 + + + Do you want to continue?.<br /> + ê³„ì† ì§„í–‰í•˜ê² ìŠµë‹ˆê¹Œ?<br /> + + + Confirm resync Blockchain + 블ë¡ì²´ì¸ ë™ê¸°í™”를 다시 하시겠습니까? + + + Type <b>help</b> for an overview of available commands. + 사용가능한 ëª…ë ¹ì„ ë³´ë ¤ë©´ <b>help</b>를 입력하십시오. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (노드 id: %1) + + + via %1 + via %1 + + + never + never + + + Inbound + ì¸ë°”ìš´ë“œ + + + Outbound + 아웃바운드 + + + Yes + Yes + + + No + No + + + Unknown + Unknown + + + + ReceiveDialog + + Transaction Details + 전송 ìƒì„¸ë‚´ì—­ + + + PushButton + 누르기 + + + CANCEL + 취소 + + + OK + ì„ íƒ + + + + ReceiveWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + Address copied + 주소가 복사ë˜ì—ˆìŠµë‹ˆë‹¤. + + + + RecentRequestsTableModel + + Date + 날짜 + + + Label + ë¼ë²¨ + + + Message + 메세지 + + + Address + 주소 + + + Amount + 금액 + + + (no label) + (ë¼ë²¨ ì—†ìŒ) + + + (no message) + (메세지 ì—†ìŒ) + + + (no amount) + (금액 ì—†ìŒ) + + + + RequestDialog + + Amount + 금액 + + + PIV + PIV + + + TextLabel + í…스트ë¼ë²¨ + + + CANCEL + 취소 + + + Label + ë¼ë²¨ + + + Error + ì—러 + + + + SendChangeAddressDialog + + Transaction Details + 전송 ìƒì„¸ë‚´ì—­ + + + PushButton + 누르기 + + + CANCEL + 취소 + + + OK + ì„ íƒ + + + + SendCustomFeeDialog + + Form + Form + + + Transaction Details + 전송 ìƒì„¸ë‚´ì—­ + + + CANCEL + 취소 + + + OK + ì„ íƒ + + + SAVE + 저장 + + + + SendMultiRow + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + + SendWidget + + Send + 보내기 + + + Amount + 금액 + + + Spend Zerocoin + ì œë¡œì½”ì¸ ë³´ë‚´ê¸° + + + zPIV is currently undergoing maintenance. + zPIV는 현재 ì ê²€ì¤‘입니다. + + + Version 1 zPIV require a security level of 100 to successfully spend. + zPIV 버전 1ì€ ì„±ê³µì ìœ¼ë¡œ 보내기 위해서 100 ì‹œí리티 ë ˆë²¨ì´ í•„ìš”í•©ë‹ˆë‹¤. + + + Too much inputs ( + 너무 ë§Žì€ ìž…ë ¥ ( + + + ) needed. +Maximum allowed: + ) ê°€ 필요함. +가능한 최대값 : + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + ë†’ì€ ë””ë…¸ë¯¸ë„¤ì…˜ 값으로 ìƒì„±í•˜ê±°ë‚˜, 보내실 ê¸ˆì•¡ì„ ì¤„ì—¬ì£¼ì„¸ìš”. + + + Cannot store your own address as contact + ìžì‹ ì˜ 주소는 ì—°ë½ì²˜ë¡œ 저장할 수 없습니다. + + + New Contact Stored + 새로운 주소가 저장ë˜ì—ˆìŠµë‹ˆë‹¤. + + + Error Storing Contact + ì—°ë½ì²˜ 저장 오류 + + + + SettingsBackupWallet + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + PushButton + 누르기 + + + Backup Wallet + 지갑 백업 + + + Wallet Data (*.dat) + 지갑 ë°ì´í„° (*.dat) + + + + SettingsBitToolWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + PushButton + 누르기 + + + Import Address + 주소 가져오기 + + + Clear + 지우기 + + + Enter a PIVX address + PIVX 주소를 입력하세요. + + + ENCRYPT + 암호화 + + + The entered passphrase is invalid. + 입력한 암호 문구가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤. + + + Allowed: 0-9,a-z,A-Z, + 사용가능: 0-9,a-z,A-Z, + + + The entered address is invalid. + 입력한 주소가 올바르지 않습니다. + + + Please check the address and try again. + 주소를 다시 확ì¸í•´ì£¼ì„¸ìš”. + + + The entered address does not refer to a key. + 입력한 주소가 키를 참조하지 않습니다. + + + Wallet unlock was cancelled. + 지갑 잠금 해제가 취소ë˜ì—ˆìŠµë‹ˆë‹¤. + + + Private key for the entered address is not available. + 입력한 ì£¼ì†Œì˜ ê°œì¸ í‚¤ë¥¼ 사용할 수 없습니다. + + + Failed to decrypt. + ì•”í˜¸í•´ì œì— ì‹¤íŒ¨í•˜ì˜€ìŠµë‹ˆë‹¤. + + + Please check the key and passphrase and try again. + 키와 암호를 확ì¸í•˜ê³  다시 ì‹œë„해주세요. + + + Data Not Valid. + ë°ì´í„°ê°€ 올바르지 않습니다. + + + Please try again. + 다시 ì‹œë„해주세요. + + + Please wait while key is imported + 키를 가져오는 ë™ì•ˆ 기다려주세요. + + + + SettingsConsoleWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + Welcome to the PIVX RPC console. + PIVX RPC ì½˜ì†”ì— ì˜¤ì‹  ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤. + + + Type <b>help</b> for an overview of available commands. + 사용가능한 ëª…ë ¹ì„ ë³´ë ¤ë©´ <b>help</b>를 입력하십시오. + + + + SettingsDisplayOptionsWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + PushButton + 누르기 + + + Decimal digits + 10진수 + + + Hide empty balances + 잔액 0 숨기기 + + + SAVE + 저장 + + + default + 기본값 + + + + SettingsFaqWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + PushButton + 누르기 + + + 10 + 10 + + + + SettingsInformationWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + Information + ì •ë³´ + + + General + ì¼ë°˜ + + + Network + ë„¤íŠ¸ì›Œí¬ + + + In: + ìž…ë ¥: + + + Out: + 출력: + + + + SettingsMainOptionsWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + SAVE + 저장 + + + + SettingsMultisendDialog + + Form + Form + + + Transaction Details + 전송 ìƒì„¸ë‚´ì—­ + + + TextLabel + í…스트ë¼ë²¨ + + + CANCEL + 취소 + + + SAVE + 저장 + + + + SettingsMultisendWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + No active Master Node yet + ì§€ê¸ˆì€ í™œì„±í™”ëœ ë§ˆìŠ¤í„° 노드가 없습니다. + + + Active + ëˆ„ì  í™œì„± 시간 + + + MultiSend activated + 멀티 ì „ì†¡ì´ í™œì„±í™” ë˜ì—ˆìŠµë‹ˆë‹¤. + + + + SettingsSignMessageWidgets + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + PushButton + 누르기 + + + Clear + 지우기 + + + Message + 메세지 + + + Signature + 서명 + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + ìžì‹ ì˜ 주소로 ë©”ì„¸ì§€ì— ì„œëª…í•  수 있습니다. 피싱 공격으로 사용ìžë¥¼ ì†ì¼ 수 있으므로 ì„œëª…ì— ì£¼ì˜í•´ì£¼ì„¸ìš”. ë™ì˜í•˜ëŠ” ë°”ì— í•œí•˜ì—¬ 서명하십시오. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + 메세지를 확ì¸í•˜ê¸° 위해 서명 주소, 메세지 (줄 바꿈, 공백, 탭 ë“±ì„ ì •í™•í•˜ê²Œ 복사해주세요) ë° ì„œëª…ì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤. ì¤‘ê°„ìž ê³µê²©ì— ì£¼ì˜í•´ì„œ ì„œëª…ì„ ìž…ë ¥í•´ì£¼ì„¸ìš”. + + + The entered address is invalid. + 입력한 주소가 올바르지 않습니다. + + + Please check the address and try again. + 주소를 다시 확ì¸í•´ì£¼ì„¸ìš”. + + + The entered address does not refer to a key. + 입력한 주소가 키를 참조하지 않습니다. + + + Wallet unlock was cancelled. + 지갑 잠금 해제가 취소ë˜ì—ˆìŠµë‹ˆë‹¤. + + + Private key for the entered address is not available. + 입력한 ì£¼ì†Œì˜ ê°œì¸ í‚¤ë¥¼ 사용할 수 없습니다. + + + Message signing failed. + 메세지 서명 실패. + + + Message signed. + ì„œëª…ëœ ë©”ì„¸ì§€. + + + The signature could not be decoded. + ì„œëª…ì„ ë””ì½”ë”© í•  수 없습니다. + + + Please check the signature and try again. + ì„œëª…ì„ í™•ì¸í•˜ê³  다시 ì‹œë„해주세요. + + + The signature did not match the message digest. + ì„œëª…ì´ ë©”ì„¸ì§€ 요약과 ì¼ì¹˜í•˜ì§€ 않습니다. + + + Message verification failed. + 메세지 확ì¸ì— 실패하였습니다. + + + Message verified. + 메세지 í™•ì¸ ë¨. + + + + SettingsWalletOptionsWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + PushButton + 누르기 + + + Wallet + 지갑 + + + Stake split threshold: + Stake split threshold: + + + Network + ë„¤íŠ¸ì›Œí¬ + + + Allow incoming connections + 들어오는 ì—°ê²° 허용 + + + SAVE + 저장 + + + + SettingsWalletRepairWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + PushButton + 누르기 + + + Attempt to recover private keys from a corrupt wallet.dat. + ì†ìƒëœ wallet.datë¡œ 부터 ê°œì¸í‚¤ 복구 ì‹œë„ + + + Recover transactions from blockchain (drop meta-data). + 블ë¡ì²´ì¸ì—ì„œ 거래내역 복구 (메타 ë°ì´í„° ì‚­ì œ) + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + 블ë¡ì²´ì¸ì„ 재ë™ê¸°í™”를 위해 모든 블ë¡ì²´ì¸ í´ë” ì‚­ì œ + + + Salvage wallet + 지갑 복구 + + + Recover transactions 1 + 트랜잭션 복구 1 + + + Recover transactions 2 + 트랜잭션 복구 2 + + + Upgrade wallet format + 지갑 구성 업그레ì´ë“œ + + + Rebuild index + ìƒ‰ì¸ ìž¬êµ¬ì¶• + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + 그러면 로컬 ë¸”ë¡ ì²´ì¸ í´ë”ê°€ ì‚­ì œë˜ê³  Walletì€ ì „ì²´ Blockchainì„ ì²˜ìŒë¶€í„° ë™ê¸°í™”합니다. + + + This needs quite some time and downloads a lot of data.<br /><br /> + ì´ê²ƒì€ ìƒë‹¹í•œ ì‹œê°„ì„ í•„ìš”ë¡œí•˜ë©° ë§Žì€ ì–‘ì˜ ë°ì´í„°ë¥¼ 다운로드합니다. + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + 다운로드가 완료ë˜ë©´ 거래와 ìžê¸ˆì´ 다시 표시ë©ë‹ˆë‹¤ .12 + + + Do you want to continue?.<br /> + ê³„ì† ì§„í–‰í•˜ê² ìŠµë‹ˆê¹Œ?<br /> + + + Confirm resync Blockchain + 블ë¡ì²´ì¸ ë™ê¸°í™”를 다시 하시겠습니까? + + + + SettingsWidget + + Form + Form + + + TextLabel + í…스트ë¼ë²¨ + + + Wallet + 지갑 + + + Options + 옵션 + + + Information + ì •ë³´ + + + Confirm options reset + 옵션 재설정 í™•ì¸ + + + Client restart required to activate changes. + 변경 ì‚¬í•­ì„ ì ìš©í•˜ë ¤ë©´ í´ë¼ì´ì–¸íŠ¸ë¥¼ 다시 시작해야합니다. + + + Client will be shutdown, do you want to proceed? + í´ë¼ì´ì–¸íŠ¸ê°€ 종료ë©ë‹ˆë‹¤. ê³„ì† ì§„í–‰í•˜ì‹œê² ìŠµë‹ˆê¹Œ? + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Coreê°€ 종료ë©ë‹ˆë‹¤... + + + Do not shut down the computer until this window disappears. + ì´ ì°½ì´ ì‚¬ë¼ì§ˆ 때까지 컴퓨터를 종료하지 마십시오. + + + + SnackBar + + Form + Form + + + + Splash + + Form + Form + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + 버전 %1 + + + The Bitcoin Core developers + ë¹„íŠ¸ì½”ì¸ Core ê°œë°œìž + + + The Dash Core developers + Dash Core ê°œë°œìž + + + The PIVX Core developers + PIVX Core ê°œë°œìž + + + [testnet] + [테스트넷] + + + + TooltipMenu + + Form + Form + + + Delete + ì‚­ì œ + + + + TopBar + + Form + Form + + + %1 and %2 + %1 그리고 %2 + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open until %1 + %1까지 열기 + + + conflicted + 충ëŒë¨ + + + %1/offline + %1/오프ë¼ì¸ + + + %1/unconfirmed + %1/ë¯¸í™•ì¸ ë¨ + + + %1 confirmations + %1 í™•ì¸ + + + %1/offline (verified via SwiftX) + %1/오프ë¼ì¸ (swifttx를 통해 í™•ì¸ ë¨) + + + %1/confirmed (verified via SwiftX) + %1/í™•ì¸ ë¨ (swifttx를 통해 í™•ì¸ ë¨) + + + %1 confirmations (verified via SwiftX) + %1 í™•ì¸ (swifttx를 통해 í™•ì¸ ë¨) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/오프ë¼ì¸ (SwiftTX í™•ì¸ ì§„í–‰ 중 - %2 중 %3 서명) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/í™•ì¸ ë¨ (SwiftTX í™•ì¸ ì§„í–‰ 중 - %2 중 %3 서명) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 í™•ì¸ (SwiftTX í™•ì¸ ì§„í–‰ 중 - %2 중 %3 서명) + + + %1/offline (SwiftX verification failed) + %1/오프ë¼ì¸ (SwiftTX í™•ì¸ ì‹¤íŒ¨) + + + + %1/confirmed (SwiftX verification failed) + %1/í™•ì¸ ë¨ (SwiftTX í™•ì¸ ì‹¤íŒ¨) + + + Status + ìƒíƒœ + + + , has not been successfully broadcast yet + , ì•„ì§ ì„±ê³µì ìœ¼ë¡œ 브로드ìºìŠ¤íŠ¸ë˜ì§€ 않았습니다 + + + Date + 날짜 + + + Source + ì›ë³¸ + + + Generated + ìƒì„± ëœ + + + From + From + + + unknown + unknown + + + To + ëŒ€ìƒ + + + own address + ë‚´ 주소 + + + watch-only + ì½ê¸° ì „ìš© + + + label + ë¼ë²¨ + + + Credit + í¬ë ˆë”§ + + + not accepted + 허용ë˜ì§€ ì•ŠìŒ + + + Debit + ì¸ì¶œì•¡ + + + Total debit + ì´ ì¸ì¶œì•¡ + + + Total credit + ì´ í¬ë ˆë”§ + + + Transaction fee + 트랜잭션 수수료 + + + Net amount + 순수액 + + + Message + 메세지 + + + Comment + 코멘트 + + + Transaction ID + 트랜잭션 ID + + + Output index + 출력 ì¸ë±ìŠ¤ + + + Merchant + ìƒì¸ + + + Debug information + 디버그 ì •ë³´ + + + Transaction + 트랜잭션 + + + Inputs + ìž…ë ¥ + + + Amount + 금액 + + + true + 허용 + + + false + 거부 + + + + TransactionTableModel + + Date + 날짜 + + + Type + 분류 + + + Address + 주소 + + + Open until %1 + %1까지 열기 + + + Offline + 오프ë¼ì¸ + + + Unconfirmed + 미확ì¸ë¨ + + + Confirming (%1 of %2 recommended confirmations) + í™•ì¸ ì¤‘ (%2 중 %1 í™•ì¸ ì¤‘) + + + Confirmed (%1 confirmations) + í™•ì¸ ë¨ (%1 확ì¸) + + + Conflicted + 충ëŒë¨ + + + Immature (%1 confirmations, will be available after %2) + 완료ë˜ì§€ ì•ŠìŒ (%1 확ì¸ì´ %2 í›„ì— ê°€ëŠ¥í•©ë‹ˆë‹¤) + + + This block was not received by any other nodes and will probably not be accepted! + ì´ ë¸”ë¡ì€ 다른 ë…¸ë“œì— ì˜í•´ 수신ë˜ì§€ 않았으며 ì•„ë§ˆë„ ìŠ¹ì¸ë˜ì§€ ì•Šì„ ê²ƒìž…ë‹ˆë‹¤! + + + Received with + ìˆ˜ì‹ ë¨ + + + Masternode Reward + 마스터노드 ë³´ìƒ + + + Received from + ìˆ˜ì‹ ë¨ + + + Received via Obfuscation + ë‚œë…화를 통해 수신 ë¨ + + + PIV Stake + PIV stake + + + zPIV Stake + zPIV stake + + + Obfuscation Denominate + ë‚œë…í™” 표시 + + + Obfuscation Collateral Payment + ë‚œë…í™” ë³´ì¦ ê²°ì œ + + + Obfuscation Make Collateral Inputs + ë‚œë…화로 ë³´ì¦ ìž…ë ¥ + + + Obfuscation Create Denominations + ë‚œë…í™” 표시 만들기 + + + Converted PIV to zPIV + PIV를 zPIVë¡œ 변환 + + + Spent zPIV + zPIV 사용 + + + Received PIV from zPIV + zPIV를 PIVë¡œ ë°›ìŒ + + + Minted Change as zPIV from zPIV Spend + zPIV 전송후 ë‚¨ì€ zPIVë¡œ ìž”ëˆ ìƒì„± + + + Converted zPIV to PIV + zPIV를 PIVë¡œ 변환 + + + Sent to + ëŒ€ìƒ ì „ì†¡ + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + ê³ ì•„ ë¸”ë¡ - ìƒì„±ë˜ì—ˆì§€ë§Œ 승ì¸ë˜ì§€ 않았습니다. ì´ê²ƒì€ ë‹¹ì‹ ì˜ ì†Œìœ ì•¡ì— ì˜í–¥ì„ 주지 않습니다. + + + Payment to yourself + ìžì‹ ì—게 지불 + + + Mined + 채굴 + + + Obfuscated + ë‚œë…í™” + + + watch-only + ì½ê¸° ì „ìš© + + + (n/a) + (n/a) + + + Transaction status. Hover over this field to show number of confirmations. + 트랜잭션 ìƒíƒœ. ì´ ì˜ì—­ì— 마우스를 올리면 ìŠ¹ì¸ ìˆ˜ê°€ 표시ë©ë‹ˆë‹¤. + + + Date and time that the transaction was received. + íŠ¸ëžœìž­ì…˜ì´ ìˆ˜ì‹  ëœ ë‚ ì§œì™€ 시간. + + + Type of transaction. + 트랜잭션 유형. + + + Whether or not a watch-only address is involved in this transaction. + ì½ê¸° ì „ìš© 주소 트랜잭션 í¬í•¨ 여부. + + + Destination address of transaction. + 트랜잭션 목ì ì§€ 주소. + + + Amount removed from or added to balance. + 잔액ì—ì„œ 제거ë˜ê±°ë‚˜ ì¶”ê°€ëœ ê¸ˆì•¡. + + + + TxDetailDialog + + Form + Form + + + Transaction Details + 전송 ìƒì„¸ë‚´ì—­ + + + Fee: + 수수료: + + + Status: + ìƒíƒœ: + + + TextLabel + í…스트ë¼ë²¨ + + + CANCEL + 취소 + + + OK + ì„ íƒ + + + SEND + 보내기 + + + Unknown + Unknown + + + + TxRow + + Form + Form + + + + WalletModel + + Send Coins + ì½”ì¸ ì „ì†¡ + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftTX는 ì•„ì§ ë†’ì€ ê°’ì„ ì „ì†¡í•˜ëŠ” ê²ƒì„ ì§€ì›í•˜ì§€ 않습니다. íŠ¸ëžœìž­ì…˜ì€ í˜„ìž¬ %1 PIVë¡œ 제한ë©ë‹ˆë‹¤. + + + + WalletPasswordDialog + + TextLabel + í…스트ë¼ë²¨ + + + PushButton + 누르기 + + + CANCEL + 취소 + + + OK + ì„ íƒ + + + + WelcomeContentWidget + + Welcome + 환ì˜í•©ë‹ˆë‹¤ + + + default + 기본값 + + + + ZPivControlDialog + + Select zPIV to Spend + 사용할 zPIV ì„ íƒ + + + Coin Control + ì½”ì¸ ì„¤ì • + + + PushButton + 누르기 + + + zPiv + zPiv + + + Quantity: + 수량: + + + Is Spendable + 전송가능한 ì½”ì¸ìˆ˜ + + + 0 + 0 + + + Select/Deselect All + ì „ì²´ ì„ íƒ / í•´ì œ + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = tx 메타 ë°ì´í„° 유지 예 : 계정 ì†Œìœ ìž ë° ì§€ë¶ˆ 요청 ì •ë³´, 2 = tx 메타 ë°ì´í„° ì‚­ì œ) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + ì§€ì •ëœ ì†ŒìŠ¤ì—ì„œ JSON-RPC ì—°ê²°ì„ í—ˆìš©í•˜ì‹­ì‹œì˜¤. ë‹¨ì¼ IP (예 : 1.2.3.4), 네트워í¬/ë„·ë§ˆìŠ¤í¬ (예 : 1.2.3.4/255.255.255.0) ë˜ëŠ” ë„¤íŠ¸ì›Œí¬ / CIDR (예 : 1.2.3.4/24)ì— ëŒ€í•´ <ip> ê°€ 유효합니다. ì´ ì˜µì…˜ì€ ì—¬ëŸ¬ë²ˆ 지정할 수 있습니다. + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + 주어진 주소를 지정하고 í•­ìƒ ìˆ˜ì‹ í•˜ë„ë¡ í•˜ì‹­ì‹œì˜¤. [host]:IPv6 í¬íŠ¸ 표기법 사용 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + 주어진 ì£¼ì†Œì— ë°”ì¸ë”©í•˜ê³  피어 ì—°ê²°ì„ í—ˆìš©í•˜ì‹­ì‹œì˜¤. IPv6 [host]:port 표기법 사용 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + JSON-RPCì—°ê²° ìˆ˜ì‹ ì„ ìœ„í•´ 주어진 주소를 지정합니다. [host]: IPv6 í¬íŠ¸ 표기법 사용. ì´ ì˜µì…˜ì€ ì—¬ëŸ¬ë²ˆ 지정할 수 있습니다. (기본값 : 모든 ì¸í„°íŽ˜ì´ìŠ¤ì— 지정) + + + Calculated accumulator checkpoint is not what is recorded by block index + ê³„ì‚°ëœ ëˆ„ì‚°ê¸° ì²´í¬í¬ì¸íŠ¸ëŠ” ë¸”ë¡ ì¸ë±ìŠ¤ì— ì˜í•´ 기ë¡ë˜ëŠ” ê²ƒì´ ì•„ë‹™ë‹ˆë‹¤. + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + <translation>잠겨진 ë°ì´í„° 디렉토리 %s 를 가져올 수 없습니다. PIVX Core는 ì´ë¯¸ 실행 중입니다. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + 최종 budget 투표 ìžë™ ìž‘ë™ ê°’ì„ ë³€ê²½í•©ë‹ˆë‹¤. mode=auto: ì˜¤ì§ ë‚´ê°€ ìƒì„±í•œ budgetê³¼ 최종 budgetì´ ì •í™•ížˆ ì¼ì¹˜í• ë•Œ 투표합니다. (string, 기본값: ìžë™) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + ì—°ì†ì ì¸ 무료 íŠ¸ëžœìž­ì…˜ì„ ë¶„ë‹¹ <n>*1000 bytesë¡œ 제한합니다. (기본값:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + umask 077대신 시스템 기본 권한으로 새로운 파ì¼ë“¤ì„ 만듭니다. (지갑 ê¸°ëŠ¥ì´ ë¹„í™œì„±í™”ì¼ ë•Œë§Œ 효과가 발휘ë©ë‹ˆë‹¤) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + ì§€ê°‘ì˜ ëª¨ë“  íŠ¸ëžœìž­ì…˜ë“¤ì„ ì‚­ì œí•˜ê³  ì˜¤ì§ ë¸”ë¡ì²´ì¸ì„ 통한 트랜잭션 부분들만 복구합니다 -시작 ì‹œ 다시 스캔 + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + MIT 소프트웨어 ë¼ì´ì„¼ìŠ¤ì— ë”°ë¼ ë°°í¬, 첨부 íŒŒì¼ COPYING ë˜ëŠ” <http://www.opensource.org/licenses/mit-license.php> 를 참조하십시오. + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + + + Enable spork administration functionality with the appropriate private key. + 올바른 ê°œì¸í‚¤ë¡œ spork 관리 ê¸°ëŠ¥ì„ ì‚¬ìš© 가능 + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + 리그레션 í…ŒìŠ¤íŠ¸ì— ë“¤ì–´ê°‘ë‹ˆë‹¤. 특수 ì²´ì¸ì„ 사용하며 블ë¡ë“¤ì„ 바로 푸는 ê²ƒì´ ê°€ëŠ¥í•©ë‹ˆë‹¤. + + + Error: Listening for incoming connections failed (listen returned error %s) + 오류: 오는 ì—°ê²°ë“¤ì„ ìˆ˜ì‹ í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.(수신 중 오류 ë°˜í™˜ë¨ %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Error: 트랜ì ì…˜ì˜ í¬ê¸°ê°€ í˜€ìš©ëœ í¬ê¸°ë¥¼ 넘었습니다. + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + 오류 : 지ì›í•˜ì§€ 않는 ì¸ìˆ˜ -socksê°€ 발견ë˜ì—ˆìŠµë‹ˆë‹¤. SOCKS 버전 ì„¤ì •ì€ ë” ì´ìƒ 가능하지 않으며 SOCKS5 프ë¡ì‹œë§Œ 지ì›í•©ë‹ˆë‹¤. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + ê´€ë ¨ëœ ê²½ê³  ë˜ëŠ” í¬í¬ê°€ 길어질 경우 ëª…ë ¹ì„ ì‹¤í–‰í•˜ì‹­ì‹œì˜¤. (명령 ë‚´ %s 는 메시지로 대체 ë˜ì—ˆìŠµë‹ˆë‹¤) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + 지갑 íŠ¸ëžœìž­ì…˜ì´ ë³€ê²½ë  ê²½ìš° ëª…ë ¹ì„ ì‹¤í–‰í•˜ì‹­ì‹œì˜¤.(명령 ë‚´ %s 는 TxIDë¡œ 대체 ë˜ì—ˆìŠµë‹ˆë‹¤) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + 최고 블ë¡ì´ ë³€ê²½ë  ê²½ìš° ëª…ë ¹ì„ ì‹¤í–‰í•˜ì‹­ì‹œì˜¤ (명령 ë‚´ %s 는 ë¸”ë¡ í•´ì‹œë¡œ 대체 ë˜ì—ˆìŠµë‹ˆë‹¤) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + ì´ê²ƒë³´ë‹¤ ìž‘ì€ ìˆ˜ìˆ˜ë£Œ (PIV/Kb)는 중계 수수료가 없는 것으로 간주ë©ë‹ˆë‹¤ (기본값: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + ì´ê²ƒë³´ë‹¤ ìž‘ì€ ìˆ˜ìˆ˜ë£Œ (PIV/Kb)는 트랜잭션 ìƒì„± 수수료가 없는 것으로 간주ë©ë‹ˆë‹¤ (기본값: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + 메모리 í’€ì—ì„œ 디스í¬ë¡œ 매 <n> 메가바ì´íŠ¸ë§Œí¼ ë°ì´í„°ë² ì´ìŠ¤ í™œë™ í”ŒëŸ¬ì‰¬ë¥¼ 기ë¡í•©ë‹ˆë‹¤ (기본값: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + paytxfeeê°€ 설정ë˜ì–´ 있지 않는 경우 충분한 수수료를 넣어야만 í‰ê· ì´ë‚´ n블ë¡ë“¤ì„ 확ì¸í•˜ê³  트랜잭션를 시작합니다 (기본값: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + ì´ ëª¨ë“œì—ì„œ -genproclimit는 즉시 ìƒì„±ë˜ëŠ” ë¸”ë¡ ìˆ˜ë¥¼ 제어합니다. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + 확정 ëœ ìžê¸ˆì´ 불충분하거나 부족한 경우 몇 분 í›„ì— ë‹¤ì‹œ ì‹œë„하십시오. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + -maxtxfee=<amount>ì— ëŒ€í•œ ìž˜ëª»ëœ ê¸ˆì•¡: '%s' (트랜잭션 정지를 막ì„려면 ì ì–´ë„ %sì˜ minrelay 수수료가 있어야 합니다) + + + Keep the specified amount available for spending at all times (default: 0) + í•­ìƒ ì†¡ê¸ˆí• ìˆ˜ 있ë„ë¡ ì§€ì •ëœ ìˆ˜ëŸ‰ 유지 (기본값 : 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + 블ë¡ì„ 채굴 í•  ë•Œ 트랜잭션 ìš°ì„  순위 ë° kB 당 수수료를 기ë¡í•©ë‹ˆë‹¤ (기본값: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + getrawtransaction rpc 호출ì—ì„œ 사용ë˜ëŠ” ì „ì²´ 트랜잭션 색ì¸ë¥¼ 유지보수합니다 (기본값: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + ë°ì´í„° ìºë¦¬ì–´ ë‚´ì—ì„œ 우리가 중계하고 채굴하는 트랜잭션 ë°ì´í„°ì˜ 최대 사ì´ì¦ˆ (기본값: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + ë‹¨ì¼ ì§€ê°‘ 트랜잭션ì—ì„œ 사용하기 위한 최대 ì „ì²´ 수수료, 너무 ë‚®ì€ ê°’ì´ ì„¤ì •ë˜ì–´ 있으면 í° íŠ¸ëžœìž­ì…˜ì´ ìœ ì‹¤ë  ìˆ˜ 있습니다 (기본값: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + 재연결로 ì¸í•´ 피어가 오작ë™ì„ 유지하는 ì´ˆ 단위 시간 (기본값: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + ë‚œë…화는 정확한 ê¸ˆì•¡ì„ ì‚¬ìš©í•˜ì—¬ ìžê¸ˆì„ 송금하기 ë•Œë¬¸ì— ë” ë§Žì€ ì½”ì¸ì„ ìµëª…화해야 í•  ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. + + + Output debugging information (default: %u, supplying <category> is optional) + 디버깅 ì •ë³´ 출력 (기본값: %u, <category> ê³µê¸‰ì€ ì„ íƒìž…니다) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + DNS ê²€ìƒ‰ì„ í†µí•œ 피어 주소 쿼리, 주소가 부족할 경우 (-connect ì•„ë‹Œ ì´ìƒ 기본값:1) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + 모든 프ë¡ì‹œ 연결마다 ìžê²© ì¦ëª… 무작위화. ì´ë ‡ê²Œí•˜ë©´ Tor ìŠ¤íŠ¸ë¦¼ì„ ê²©ë¦¬í• ìˆ˜ 있습니다. (기본값 : %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + 무료 ë˜ëŠ” ë‚®ì€ ìˆ˜ìˆ˜ë£Œ 트랜잭션를 ì¤‘ê³„í•˜ëŠ”ë° ë†’ì€ ìš°ì„  순위가 필요합니다 (기본값: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + debug.log íŒŒì¼ ëŒ€ì‹  추ì /디버그 정보를 ì½˜ì†”ì— ë³´ëƒ…ë‹ˆë‹¤ (기본값: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + 최우선/ë‚®ì€ ìˆ˜ìˆ˜ë£Œ íŠ¸ëžœìž­ì…˜ì˜ ìµœëŒ€ í¬ê¸°ë¥¼ ë°”ì´íŠ¸ 단위로 설정합니다 (기본값: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + 스í¬ë¦½íŠ¸ 허용 ìŠ¤ë ˆë“œì˜ ê°œìˆ˜ë¥¼ 설정합니다. (%u ì—ì„œ %d, 0 = ìžë™, <0 = 충분한 ì½”ì–´ë“¤ì„ ë‚¨ê²¨ë‘세요, 기본값: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + 활성화 ì‹œì— ì½”ì¸ ìƒì„±ì„ 위한 스레드 숫ìžë¥¼ 설정합니다 (-1= 모든 코어, 기본값: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + 성공ì ìœ¼ë¡œ 잠긴 íŠ¸ëžœìž­ì…˜ì— ëŒ€í•œ 확ì¸ì„ N으로 나타냅니다 (0-9999, 기본값: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + bloom필터를 사용한 ë¸”ë¡ ë° íŠ¸ëžœìž­ì…˜ í•„í„°ë§ ì§€ì› (기본값 : %u) + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + ì´ ì œí’ˆì€ OpenSSLì´ ê°œë°œí•œ Open SSL 툴킷 <https://www.openssl.org/> ì—ì„œ 사용하기 위한 프로ì íŠ¸ 소프트웨어, Eric Youngì´ ê°œë°œí•œ 암호화 소프트웨어, Thomas Bernardê°€ 개발한 UPnP 소프트웨어가 í¬í•¨ë˜ì–´ 있습니다. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + ì´ ì»´í“¨í„°ë¥¼ %s ë¡œ ì§€ì •í•˜ëŠ”ê²ƒì€ ë¶ˆê°€ëŠ¥í•©ë‹ˆë‹¤. PIVX Core는 ì´ë¯¸ 실행 중입니다. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + ì´ íŠ¸ëžœìž­ì…˜ë¥¼ 위해 ë‚œë…í™” í‘œê¸°ëœ ì¶©ë¶„í•œ ê¸ˆì•¡ì„ ì°¾ì„ ìˆ˜ 없습니다. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + ì´ íŠ¸ëžœìž­ì…˜ë¥¼ 위해 ë‚œë…í™” 표기가 ì•ˆëœ ì¶©ë¶„í•œ ê¸ˆì•¡ì„ ì°¾ì„ ìˆ˜ 없습니다. 10000 PIVê³¼ ì¼ì¹˜í•˜ì§€ ì•ŠìŒ. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + íŠ¸ëžœìž­ì…˜ì— ëŒ€í•œ 충분한 ê¸ˆì•¡ì„ ì°¾ì„ ìˆ˜ 없습니다. 10000 PIV와 같지 ì•ŠìŒ + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Tor hidden services를 통하여 피어ì—게 ë„달하기 위해 ë…ë¦½ëœ SOCKS5 프ë¡ì‹œë¥¼ 사용합니다(기본값: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + 경고: -maxrtxfeeê°€ 매우 높게 설정 ë˜ì—ˆìŠµë‹ˆë‹¤! ì´ë ‡ê²Œ í° ìˆ˜ìˆ˜ë£ŒëŠ” 단 í•œë²ˆì˜ ë‹¨ì¼ íŠ¸ëžœìž­ì…˜ì— ì§€ë¶ˆë  ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + 경고 : -paytxfeeê°€ 매우 높게 설정ë˜ì—ˆìŠµë‹ˆë‹¤! ì´ê²ƒì€ 전송할 경우 지불 í•  트랜잭션 수수료입니다. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + 경고: ì»´í“¨í„°ì˜ ë‚ ì§œì™€ ì‹œê°„ì´ ì˜¬ë°”ë¥´ê²Œ 설정ë˜ì–´ 있는지 확ì¸í•´ 주세요! ë§Œì¼ ì‹œê³„ê°€ 잘못ë˜ì–´ 있다면 PIVX 코어는 ì •ìƒì ìœ¼ë¡œ ìž‘ë™í•˜ì§€ ì•Šì„ ìˆ˜ 있습니다. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + 경고: 네트워í¬ê°€ 완전히 ë™ì˜í•˜ì§€ 않는 것 같습니다! ì¼ë¶€ 마ì´ë„ˆì— 문제가 ë°œìƒí•œ 것으로 보입니다. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + 경고: ìš°ë¦¬ì˜ í”¼ì–´ë“¤ê³¼ 완벽하게 ì¼ì¹˜í•˜ì§€ 않습니다! 업그레ì´ë“œ ë˜ëŠ” 다른 ë…¸ë“œë“¤ì˜ ì—…ê·¸ë ˆì´ë“œê°€ 필요할 수 있습니다. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + 경고 : wallet.datì„ ì½ëŠ” 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤! 모든 키가 올바르게 ì½í˜€ 지지만 트랜잭션 ë°ì´í„° ë˜ëŠ” ì£¼ì†Œë¡ í•­ëª©ì´ ëˆ„ë½ë˜ì—ˆê±°ë‚˜ 올바르지 ì•Šì„ ìˆ˜ 있습니다. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + 경고 : wallet.datì— ì†ìƒëœ ë°ì´í„°ê°€ 복구ë˜ì—ˆìŠµë‹ˆë‹¤. 본래 wallet.datì€ wallet으로 저장ë˜ì—ˆìŠµë‹ˆë‹¤. {timestamp}.bak %s; 잔액 ë˜ëŠ” 트랜잭션가 올바르지 ì•Šì€ ê²½ìš° 백업ì—ì„œ ë³µì›í•´ì•¼í•©ë‹ˆë‹¤. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + 주어진 ë„·ë§ˆìŠ¤í¬ ë˜ëŠ” IP 주소로부터 í™”ì´íŠ¸ë¦¬ìŠ¤íŠ¸ 피어가 ì—°ê²°ë˜ê³  있습니다. 여러 번 ì§€ì •ë  ìˆ˜ 있습니다. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + í™”ì´íŠ¸ë¦¬ìŠ¤íŠ¸ í”¼ì–´ë“¤ì€ DoS ë°´ ë  ìˆ˜ 없으며 ê·¸ë“¤ì´ ì´ë¯¸ 메모리 í’€ì— ìžˆì„지ë¼ë„ ê·¸ë“¤ì˜ íŠ¸ëžœìž­ì…˜ëŠ” í•­ìƒ ì¤‘ê³„ë©ë‹ˆë‹¤. 예를들면 게ì´íŠ¸ì›¨ì´ ê°™ì€ ê²ƒì— ìœ ìš© + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + 환경설정ì—ì„œ masternodeprivkey를 지정해야 합니다. ë„움ë§ì„ 참조하십시오. + + + (51472 could be used only on mainnet) + (51472 ì€ ë©”ì¸ë„·ì—서만 ì‚¬ìš©ë  ìˆ˜ 있습니다) + + + (default: %s) + (기본값: %s) + + + (default: 1) + (기본값: 1) + + + (must be 51472 for mainnet) + (ë©”ì¸ë„· ì¼ê²½ìš° 51472) + + + Accept command line and JSON-RPC commands + command line ê³¼ JSON-RPC ì ìš© + + + Accept connections from outside (default: 1 if no -proxy or -connect) + 외부ì—ì„œì˜ ì ‘ì†ì„ 허용 (1 -프ë¡ì‹œ ë˜ëŠ” -ì—°ê²°ì´ ì—†ì„ ê²½ìš° 기본값) + + + Accept public REST requests (default: %u) + 공개 REST 요청 수ë½(기본값: %u) + + + Add a node to connect to and attempt to keep the connection open + ì—°ê²°í•  노드를 추가하고 계ì†í•´ì„œ ì—°ê²°ì„ ìœ ì§€í•˜ì‹­ì‹œì˜¤. + + + Allow DNS lookups for -addnode, -seednode and -connect + -addnode, -seednode, -connectì„ ìœ„í•´ DNS 조회를 허용하십시오. + + + Always query for peer addresses via DNS lookup (default: %u) + 피어 주소ì—게 DNS 조회를 통한 지ì†ì ì¸ ì •ë³´ 수신 ìš”ì²­ì„ í•©ë‹ˆë‹¤ (기본값: %u) + + + Attempt to recover private keys from a corrupt wallet.dat + ì†ìƒëœ wallet.dat으로 부터 ê°œì¸ í‚¤ 복구를 ì‹œë„합니다. + + + Automatically create Tor hidden service (default: %d) + ìžë™ Tor 히든 서버스 ìƒì„± (기본값: %d) + + + Block creation options: + ë¸”ë¡ ìƒì„± 옵션: + + + Calculating missing accumulators... + 누ë½ëœ 누산기 계산중... + + + Cannot downgrade wallet + ì§€ê°‘ì„ ë‹¤ìš´ê·¸ë ˆì´ë“œ í•  수 없습니다. + + + Cannot resolve -bind address: '%s' + 주소를 변환할 수 없습니다 주소 -bind: '%s' + + + Cannot resolve -externalip address: '%s' + 주소를 변환할 수 없습니다 -externalip 주소: '%s' + + + Cannot resolve -whitebind address: '%s' + í•´ê²°í•  수 없습니다 -whitebind 주소: '%s' + + + Connect only to the specified node(s) + ì§€ì •ëœ ë…¸ë“œ(s)로만 ì—°ê²°ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤. + + + Connect through SOCKS5 proxy + SOCKS5 프ë¡ì‹œë¥¼ 통해 연결합니다 + + + Connect to a node to retrieve peer addresses, and disconnect + ë…¸ë“œì— ì—°ê²°í•˜ì—¬ 피어 주소를 검색하고 ì—°ê²°ì„ ëŠìŠµë‹ˆë‹¤ + + + Connection options: + ì—°ê²° 옵션: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i ë¹„íŠ¸ì½”ì¸ Core 개발ìžë“¤ + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i The Dash Core 개발ìžë“¤ + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i The PIVX Core ê°œë°œìž + + + Corrupted block database detected + ì†ìƒëœ ë¸”ë¡ ë°ì´í„°ë² ì´ìŠ¤ê°€ 발견ë˜ì—ˆìŠµë‹ˆë‹¤ + + + Could not parse masternode.conf + masternode.conf 를 분ì„í•  수 없습니다. + + + Debugging/Testing options: + 디버깅/테스팅 옵션: + + + Delete blockchain folders and resync from scratch + ë¸”ë¡ ì²´ì¸ í´ë” ì‚­ì œ ë° ì²˜ìŒë¶€í„° 다시 ë™ê¸°í™” + + + Disable OS notifications for incoming transactions (default: %u) + 거래시 수신 알림창 í•´ì œ (기본값: %u) + + + Disable safemode, override a real safe mode event (default: %u) + 안전모드 비활성화, 실시간 안전모드 ì´ë²¤íŠ¸ 중단 (기본값: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + ìžì‹ ì˜ IP 주소를 찾습니다 (기본값: 1 수신중ì´ê±°ë‚˜ -외부아ì´í”¼ê°€ ì—†ì„ ê²½ìš°) + + + Do not load the wallet and disable wallet RPC calls + 지갑 RPC í˜¸ì¶œì„ ë¹„í™œì„±í™”í•˜ê³  ì§€ê°‘ì„ ë¶ˆëŸ¬ì˜¤ì§€ 마시오 + + + Do you want to rebuild the block database now? + ë¸”ë¡ ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 다시 작성하시기를 ì›í•˜ì‹­ë‹ˆê¹Œ? + + + Done loading + 로딩 완료 + + + Enable automatic Zerocoin minting (0-1, default: %u) + ìžë™ ì œë¡œì½”ì¸ ìƒì„± (0-1, 기본값: %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + <address> ì—ì„œ í•´ì‹œ 전송 게시 가능 (SwiftTXë¡œ 설정ëœ) + + + Enable publish raw transaction (locked via SwiftX) in <address> + <address>ì—ì„œ Raw 트랜잭션 게시 ì§€ì› (SwiftTX를 통해 잠겨진) + + + Enable the client to act as a masternode (0-1, default: %u) + í´ë¼ì´ì–¸íŠ¸ê°€ 마스터노드로 ìž‘ë™í•˜ëŠ” ê²ƒì„ í™œì„±í™” (0-1, 기본값: %u) + + + Error initializing block database + ë¸”ë¡ ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 초기화하는 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. + + + Error initializing wallet database environment %s! + 지갑 ë°ì´í„°ë² ì´ìŠ¤ 환경 %s ì„ ì´ˆê¸°í™”í•˜ëŠ” 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤! + + + Error loading block database + ë¸”ë¡ ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 불러오는 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. + + + Error loading wallet.dat + wallet.datì„ ë¶ˆëŸ¬ì˜¤ëŠ” 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. + + + Error loading wallet.dat: Wallet corrupted + wallet.datì„ ë¶ˆëŸ¬ì˜¤ëŠ” 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤: 지갑 ì†ìƒë¨ + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + wallet.dat를 로드하는 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì§€ê°‘ì— ìµœì‹  ë²„ì „ì˜ PIVX 코어가 필요합니다. + + + Error opening block database + ë¸”ë¡ ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 여는 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. + + + Error reading from database, shutting down. + ë°ì´í„°ë² ì´ìŠ¤ì—서서 ì½ì–´ì˜¤ëŠ” 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 종료합니다. + + + Error writing zerocoinDB to disk + 디스í¬ì— zerocoinDB 쓰기 오류 + + + Error + ì—러 + + + Error: A fatal internal error occured, see debug.log for details + 오류 : 내부ì—ì„œ 치명ì ì¸ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. ìžì„¸í•œ ë‚´ìš©ì€ debug.log를 참조하십시오 + + + Error: Disk space is low! + 오류 : ë””ìŠ¤í¬ ê³µê°„ì´ ë¶€ì¡±í•©ë‹ˆë‹¤! + + + Error: Unsupported argument -tor found, use -onion. + 오류 : 지ì›í•˜ì§€ 않는 ì¸ìˆ˜ -torê°€ 발견ë˜ì—ˆìŠµë‹ˆë‹¤. -onionì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤. + + + Error: Wallet locked, unable to create transaction! + 오류 : ì§€ê°‘ì´ ìž ê²¼ìŠµë‹ˆë‹¤, íŠ¸ëžœìž­ì…˜ì„ ìƒì„±í•  수 없습니다! + + + Failed to calculate accumulator checkpoint + 축 압기 ì²´í¬ í¬ì¸íŠ¸ë¥¼ 계산하지 못했습니다. + + + Failed to listen on any port. Use -listen=0 if you want this. + ì–´ë– í•œ í¬íŠ¸ì—ì„œë„ ìˆ˜ì‹ í•˜ëŠ” ê²ƒì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. ì›í•˜ì‹ ë‹¤ë©´ -listen=0 ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤. + + + Failed to parse host:port string + 호스트 : í¬íŠ¸ 문ìžì—´ì„ 구문 분ì„하지 못했습니다. + + + Failed to read block + 블ë¡ì„ ë°›ì•„ì˜¤ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + ë‹¹ì‹ ì´ ë³´ë‚´ëŠ” íŠ¸ëžœìž­ì…˜ì— ì¶”ê°€ í•  수수료 (PIV/kB) (기본값: %s) + + + Force safe mode (default: %u) + ê°•ì œ 안전 모드 (기본값: %u) + + + Generate coins (default: %u) + ì½”ì¸ ìƒì„± (기본값: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + 시작할 ë•Œ 검사할 블ë¡ì˜ 수 (기본값: %u, 0=모ë‘) + + + If <category> is not supplied, output all debugging information. + <category>ê°€ 제공ë˜ì§€ 않으면, 모든 디버깅 정보를 출력합니다. + + + Importing... + 가져오는 중... + + + Imports blocks from external blk000??.dat file + ë‚´ë¶€ì— blk000??.dat 파ì¼ë¡œë¶€í„° 블ë¡ë“¤ì„ 가져옴 + + + Include IP addresses in debug output (default: %u) + 디버그 ì¶œë ¥ì— IP 주소를 í¬í•¨í•©ë‹ˆë‹¤ (기본값: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + 잘못ë˜ì—ˆê±°ë‚˜ 블ë¡ì„ 찾지 못하였습니다. 네트워í¬ì— 대한 ìž˜ëª»ëœ ë°ì´í„° 디렉토리 문제? + + + Information + ì •ë³´ + + + Initialization sanity check failed. PIVX Core is shutting down. + 초기화 정확성 ê²€ì‚¬ì— ì‹¤íŒ¨ 했습니다. PIVX Coreê°€ 종료ë©ë‹ˆë‹¤. + + + Insufficient funds + ìž”ì•¡ì´ ì¶©ë¶„í•˜ì§€ ì•ŠìŒ + + + Insufficient funds. + 충분하지 ì•Šì€ ê¸ˆì•¡. + + + Invalid -onion address or hostname: '%s' + ìž˜ëª»ëœ -onion 주소거나 호스트네임 : '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + -maxtxfee=<amount> ì— ëŒ€í•œ 유효하지 ì•Šì€ ê°’: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + -minrelaytxfee=<amount>; ì— ëŒ€í•œ 유효하지 ì•Šì€ ê°’: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + -mintxfee=<amount>; ì— ëŒ€í•œ 유효하지 ì•Šì€ ê°’: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + -paytxfee=<amount> ì— ëŒ€í•œ 유효하지 ì•Šì€ ê°’: '%s' (ì ì–´ë„ %s ê°€ 필요합니다) + + + Invalid amount for -paytxfee=<amount>: '%s' + -paytxfee=<amount> ì— ëŒ€í•œ 유효하지 ì•Šì€ ê°’: '%s' + + + Invalid amount for -reservebalance=<amount> + -reservebalance=<amount>ì— ëŒ€í•œ ê¸ˆì•¡ì´ ìœ íš¨í•˜ì§€ ì•Šì€ ê°’ + + + Invalid amount + ìž˜ëª»ëœ ìˆ˜ëŸ‰ + + + Invalid masternodeprivkey. Please see documenation. + 마스터노드 ê°œì¸ í‚¤ê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤. 설명서를 참조하십시오. + + + Invalid netmask specified in -whitelist: '%s' + -whitelist: '%s' ì— ì§€ì •ëœ ë„·ë§ˆìŠ¤í¬ê°€ 유효하지 않습니다. + + + Invalid port detected in masternode.conf + masternode.conf ì—ì„œ 유효하지 ì•Šì€ í¬íŠ¸ê°€ ê°ì§€ë˜ì—ˆìŠµë‹ˆë‹¤ + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + ìžë™ìƒì„± zPIV 비율 (1-100, default: %u) + + + Reindex the PIV and zPIV money supply statistics + PIV ë° zPIV 공급량 다시 ìƒ‰ì¸ + + + Reindexing zerocoin database... + ì œë¡œì½”ì¸ ë°ì´íƒ€ë² ì´ìŠ¤ ìž¬ìƒ‰ì¸ + + + Reindexing zerocoin failed + ì œë¡œì½”ì¸ ìž¬ ì¸ë±ì‹± 실패 + + + Selected coins value is less than payment target + 지불대ìƒë³´ë‹¤ ì ì€ ì½”ì¸ ì„ íƒë¨ + + + SwiftX options: + SwiftX 옵션: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + ì´ê²ƒì€ 사전 릴리스 테스트 빌드입니다 - ì‚¬ìš©ìƒ ì±…ìž„ì€ ê·€í•˜ì—게 있습니다. - stakingì´ë‚˜ ìƒì—…ì ì¸ ìš©ë„로는 절대 사용하지 마십시오! + + + mints deleted + + ìƒì„± ì‚­ì œ + + + + mints updated, + ìƒì„± ì—…ë°ì´ë“œ + + + unconfirmed transactions removed + + 미확ì¸ëœ 거래 ì‚­ì œë¨ + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + PIVXì˜ ëª¨ë“  특정 ê¸°ëŠ¥ë“¤ì„ ë¹„í™œì„±í™”í•©ë‹ˆë‹¤(마스터노드, ë‚œë…í™”, SwiftTX, Budgeting) (0-1, 기본값: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + swiftTX 활성화, 잠긴 íŠ¸ëžœìž­ì…˜ë“¤ì— ëŒ€í•œ í™•ì¸ í‘œì‹œ (bool, 기본값: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + ì—러 : 거래가 거부ë˜ì—ˆìŠµë‹ˆë‹¤. 예를 들어 다른 사본 wallet.datì—ì„œ ì½”ì¸ì„ 사용했다면 2중 사용으로 ì¸ì‹ë ìˆ˜ 있습니다. 혹ì€, ì¼ë¶€ê°€ ì´ë¯¸ 소비 ëœ ê²½ìš°ì— ì´ëŸ° ì¼ì´ ë°œìƒí•  수 있습니다. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + ì—러 :ì´ ê±°ëž˜ì—는 전송량, 복잡성 ë˜ëŠ” ìµœê·¼ì— ë°›ì€ ìžê¸ˆì˜ 사용등으로 ì¸í•´ ì ì–´ë„ %sì˜ ê±°ëž˜ 수수료가 필요합니다! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + ì—러 : 지ì›í•˜ì§€ì•ŠëŠ” argument -checklevel 발견ëœ. Checklevel는 레벨 4ì´ì–´ì•¼ 합니다. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Failed to find coin set amongst held coins with less than maxNumber of Spends + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + ìžë™ìƒì„± ì œë¡œì½”ì¸ ì„ í˜¸ 디노미네ì´ì…˜ (1/5/10/50/100/500/1000/5000) 0사용안ë¨, 기본값 : %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftTX는 최소 6회 확ì¸ì´ 필요한 입력으로 몇 분 í›„ì— ë‹¤ì‹œ ì‹œë„해야 í•  수 있습니다. + + + <category> can be: + <category> 가능함 : + + + Attempt to force blockchain corruption recovery + 블ë¡ì²´ì¸ ì†ìƒ 복구 ì‹œë„ + + + CoinSpend: Accumulator witness does not verify + CoinSpend: 누산기가 제대로 ìž‘ë™í•˜ì§€ 않았습니다. + + + Display the stake modifier calculations in the debug.log file. + debug.logì— stake 수정 계산 ê¸°ë¡ + + + Display verbose coin stake messages in the debug.log file. + debug.log ì— ì½”ì¸ stake 메시지를 ìžì„¸ížˆ ê¸°ë¡ + + + Enable publish hash block in <address> + <address> ì—ì„œ í•´ì‹œ ë¸”ë¡ ê²Œì‹œ 가능 + + + Enable publish hash transaction in <address> + <address> ì—ì„œ í•´ì‹œ ë¶ˆë¡ ê²Œì‹œ 가능 + + + Enable publish raw block in <address> + <address>ì—ì„œ Raw ë¸”ë¡ ê²Œì‹œ 가능 + + + Enable publish raw transaction in <address> + <address> ì—ì„œ Raw 트랜잭션 게시 ì§€ì› + + + Enable staking functionality (0-1, default: %u) + 스테ì´í‚¹ 기능 사용 (0-1, 기본값: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Error: ì¹˜ëª…ì  ì—러 ë°œìƒ log 파ì¼ì„ 확ì¸í•´ì£¼ì„¸ìš”. + + + Error: No valid utxo! + Error: 유효하지 않는 utxo! + + + Failed to create mint + ìƒì„± 실패 + + + Failed to find Zerocoins in wallet.dat + wallet.dat ì—ì„œ 제로코ì¸ì„ ì¸ì‹ 실패 + + + Failed to select a zerocoin + ì œë¡œì½”ì¸ ì„ íƒ ì‹¤íŒ¨ + + + Failed to wipe zerocoinDB + ì œë¡œì½”ì¸ DB ì‚­ì œ 실패 + + + Failed to write coin serial number into wallet + ì§€ê°‘ì— ì½”ì¸ ì‹œë¦¬ì–¼ 번호 작성 실패 + + + Keep at most <n> unconnectable transactions in memory (default: %u) + 메모리ì—ì„œ ì—°ê²° 불가능한 íŠ¸ëžœìž­ì…˜ì„ <n>개까지 유지하십시오. (기본값: %u) + + + Limit size of signature cache to <n> entries (default: %u) + 시그니처 ìºì‹œì˜ í¬ê¸° ì œí•œì„ <n> 항목으로 합니다 (기본값: %u) + + + Line: %d + Line: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + <port>ì—ì„œ JSON-RPC ì—°ê²° 대기 (기본값: %u ë˜ëŠ” 테스트넷: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + <port>ì—ì„œ ì—°ê²° 대기 (기본값: %u ë˜ëŠ” 테스트넷: %u) + + + Loading addresses... + 주소를 불러오는 중... + + + Loading block index... + ë¸”ë¡ ì¸ë±ìŠ¤ë¥¼ 불러오는 중... + + + Loading budget cache... + budget ìºì‹œë¥¼ 불러오는 중... + + + Loading masternode cache... + 마스터노드 ìºì‹œë¥¼ 불러오는 중... + + + Loading masternode payment cache... + 마스터노드 ê²°ì œ ìºì‹œë¥¼ 불러오는 중... + + + Loading sporks... + sporks 로딩중... + + + Loading wallet... (%3.2f %%) + ì§€ê°‘ì„ ë¶ˆëŸ¬ì˜¤ëŠ” 중… (%3.2f %%) + + + Loading wallet... + ì§€ê°‘ì„ ë¶ˆëŸ¬ì˜¤ëŠ” 중… + + + Location of the auth cookie (default: data dir) + auth 쿠기 위치 (default: data dir) + + + Lock masternodes from masternode configuration file (default: %u) + 마스터노드 구성 파ì¼ì—ì„œ 마스터노드를 잠급니다. (기본값: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Lookup(): Invalid -proxy address or hostname: '%s' + + + Maintain at most <n> connections to peers (default: %u) + 최대 <n> ì—°ê²°ì„ í”¼ì–´ë“¤ê³¼ 유지합니다. (기본값: %u) + + + Masternode options: + 마스터노드 옵션: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + ì—°ê²° 당 최대 수신 버í¼, <n>*1000 ë°”ì´íŠ¸ (기본값: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + ì—°ê²° 당 최대 전송 버í¼, <n>*1000 ë°”ì´íŠ¸ (기본값: %u) + + + Mint did not make it into blockchain + ì½”ì¸ìƒì„±ì´ 블ë¡ì²´ì¸ì— 기ë¡ë˜ì§€ 않았습니다. + + + Need to specify a port with -whitebind: '%s' + -whitebind: '%s' ì˜ í¬íŠ¸ë¥¼ 지정해야 합니다 + + + Node relay options: + 노드 중계 옵션: + + + Not enough file descriptors available. + 사용 가능한 íŒŒì¼ ë””ìŠ¤í¬ë¦½í„°ê°€ 충분하지 않습니다. + + + Number of automatic wallet backups (default: 10) + ìžë™ 지갑 백업 횟수 (기본값: 10) + + + Number of custom location backups to retain (default: %d) + Number of custom location backups to retain (default: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + ë‚´ìž¥ëœ ì²´í¬ í¬ì¸íŠ¸ì™€ ì¼ì¹˜í•˜ëŠ” 블ë¡ì²´ì¸ë§Œ 허용 (기본값: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + 네트워í¬ì— ì—°ê²°ëœ ë…¸ë“œì—만 ì—°ê²° <net> (ipv4, ipv6 ë˜ëŠ” onion) + + + Options: + 옵션: + + + Password for JSON-RPC connections + JSON-RPC ì—°ê²° 비밀번호 + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid(): Invalid -proxy address or hostname: '%s' + + + Preparing for resync... + 재ë™ê¸°í™” 준비중... + + + Prepend debug output with timestamp (default: %u) + 디버그 출력 ì•žì— íƒ€ìž„ìŠ¤íƒ¬í”„ë¥¼ 추가합니다. (기본값: %u) + + + Print version and exit + 버전 출력후 종료 + + + RPC server options: + RPC 서버 옵션: + + + Randomly drop 1 of every <n> network messages + <n>ê°œì˜ ë„¤íŠ¸ì›Œí¬ ë©”ì„¸ì§€ë§ˆë‹¤ 무작위로 1ê°œ ì‚­ì œ + + + Randomly fuzz 1 of every <n> network messages + <n>ê°œì˜ ë„¤íŠ¸ì›Œí¬ ë©”ì„¸ì§€ë§ˆë‹¤ 무작위로 1 í¼ì¦ˆ + + + Rebuild block chain index from current blk000??.dat files + 현재 blk000??.dat 파ì¼ì˜ 블ë¡ì²´ì¸ ì¸ë±ìŠ¤ë¥¼ 다시 구축합니다 + + + Receive and display P2P network alerts (default: %u) + P2P 네í¬ì›Œí¬ë¡œ 부터 경고를 받고 ë³´ì—¬ì¤ë‹ˆë‹¤ (기본값: %u) + + + Reindex the accumulator database + ëˆ„ì  ê¸° ë°ì´í„°ë² ì´ìŠ¤ 다시 색ì¸í™” + + + Relay and mine data carrier transactions (default: %u) + ë¦´ë ˆì´ ë° ì±„êµ´ ë°ì´í„° ì´ë™ë§¤ì²´ 트랜잭션 (기본값: %u) + + + Relay non-P2SH multisig (default: %u) + non-P2SH multisig 중계 (기본값: %u) + + + Rescan the block chain for missing wallet transactions + 누ë½ëœ 지갑 íŠ¸ëžœìž­ì…˜ì— ëŒ€í•´ 블ë¡ì²´ì¸ì„ 다시 스캔합니다 + + + Rescanning... + 다시 스캔하는 중... + + + ResetMintZerocoin finished: + ìƒì„±ëœ ì œë¡œì½”ì¸ ì´ˆê¸°í™” 완료: + + + ResetSpentZerocoin finished: + ì‚¬ìš©ëœ ì œë¡œì½”ì¸ ì´ˆê¸°í™” 완료: + + + Run a thread to flush wallet periodically (default: %u) + 주기ì ìœ¼ë¡œ ì§€ê°‘ì„ í”ŒëŸ¬ì‰¬í•˜ëŠ” 스레드를 실행합니다 (기본값: %u) + + + Run in the background as a daemon and accept commands + 백그ë¼ìš´ë“œì—ì„œ ìƒì£¼í•˜ë©° 실행하고 ëª…ë ¹ì„ ë°›ìŠµë‹ˆë‹¤ + + + Send transactions as zero-fee transactions if possible (default: %u) + 무료 수수료 íŠ¸ëžœìž­ì…˜ì´ ê°€ëŠ¥í•  경우 무료 수수료로 íŠ¸ëžœìž­ì…˜ì„ ì „ì†¡í•©ë‹ˆë‹¤ (기본값: %u) + + + Session timed out. + ì„¸ì…˜ì´ ë§Œë£Œë˜ì—ˆìŠµë‹ˆë‹¤. + + + Set database cache size in megabytes (%d to %d, default: %d) + ë°ì´í„°ë² ì´ìŠ¤ ìºì‹œ í¬ê¸°ë¥¼ 메가바ì´íŠ¸ 단위로 설정합니다 (%d ì—ì„œ %d, 기본값: %d) + + + Set external address:port to get to this masternode (example: %s) + ë§ˆìŠ¤í„°ë…¸ë“œì— ì ‘ì†í•˜ë ¤ë©´ 외부 주소:í¬íŠ¸ë¥¼ 설정하십시오 (예시: %s) + + + Set key pool size to <n> (default: %u) + 키 í’€ í¬ê¸°ë¥¼ <n> ë¡œ 설정합니다 (기본값: %u) + + + Set maximum block size in bytes (default: %d) + 최대 ë¸”ë¡ í¬ê¸°ë¥¼ ë°”ì´íŠ¸ 단위로 설정합니다 (기본값: %d) + + + Set minimum block size in bytes (default: %u) + 최소 ë¸”ë¡ í¬ê¸°ë¥¼ ë°”ì´íŠ¸ 단위로 설정합니다 (기본값: %u) + + + Set the Maximum reorg depth (default: %u) + 최대 재구성 ê¹Šì´ ì„¤ì • (기본값 : %u) + + + Set the masternode private key + 마스터노드 ê°œì¸ í‚¤ë¥¼ 설정합니다 + + + Set the number of threads to service RPC calls (default: %d) + RPC 호출 서비스 ìŠ¤ë ˆë“œì˜ ê°¯ìˆ˜ë¥¼ 설정합니다 (기본값: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + 지갑 db 환경ì—ì„œ DB_PRIVATE 플래그를 설정합니다 (기본값 : %u) + + + Show all debugging options (usage: --help -help-debug) + 모든 디버깅 옵션 표시 (사용 방법: --help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + í´ë¼ì´ì–¸íŠ¸ ì‹œìž‘ì‹œì— debug.log 파ì¼ì„ 축소시킵니다 (기본값:1 ì•„ë‹ê²½ìš° -debug) + + + Signing timed out. + ì¸ì¦ 시간 초과. + + + Signing transaction failed + 트랜잭션 ì¸ì¦ 실패 + + + Specify configuration file (default: %s) + 구성 íŒŒì¼ ì§€ì • (기본값: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + ì—°ê²° 시간 초과 단위를 100ë¶„ì˜ 1ì´ˆ 단위로 지정 (최소값: 1, 기본값: %d) + + + Specify data directory + ë°ì´í„° 디렉토리 지정 + + + Specify masternode configuration file (default: %s) + 마스터노드 êµ¬ì„±íŒŒì¼ ì§€ì • (기본값: %s) + + + Specify pid file (default: %s) + pid íŒŒì¼ ì§€ì • (기본값: %s) + + + Specify wallet file (within data directory) + 지갑 íŒŒì¼ ì§€ì • (ë°ì´í„° 디렉토리 ë‚´ì—서만) + + + Specify your own public address + ìžì‹ ì˜ 공용 주소를 지정 + + + Spend Valid + 유효한 지출 + + + Spend unconfirmed change when sending transactions (default: %u) + 트랜잭션 전송시 승ì¸ë˜ì§€ ì•Šì€ ë³€ê²½ì‚¬í•­ì„ ì „ì†¡í•©ë‹ˆë‹¤ (기본값: %u) + + + Staking options: + 스테ì´í‚¹ 옵션: + + + Stop running after importing blocks from disk (default: %u) + 디스í¬ì—ì„œ 블ë¡ì„ 가져오면 실행 중지 (기본값: %u) + + + Synchronization failed + ë™ê¸°í™” 실패 + + + Synchronization finished + ë™ê¸°í™” 완료 + + + Synchronization pending... + ë™ê¸°í™” 대기중... + + + Synchronizing budgets... + budgets ë™ê¸°í™” 중입니다... + + + Synchronizing masternode winners... + 마스터노드 승ìžë¥¼ ë™ê¸°í™” 중입니다... + + + Synchronizing masternodes... + 마스터노드와 ë™ê¸°í™”중입니다... + + + Synchronizing sporks... + sporks와 ë™ê¸°í™” 중입니다... + + + Syncing zPIV wallet... + zPIV 지갑 ë™ê¸°í™”중... + + + The coin spend has been used + ì „ì†¡ì´ ì´ë¯¸ ë˜ì—ˆìŠµë‹ˆë‹¤. + + + The transaction did not verify + 거래가 확ì¸ë˜ì§€ 않았습니다. + + + This help message + ë„ì›€ë§ ë©”ì‹œì§€ìž…ë‹ˆë‹¤ + + + This is experimental software. + ì´ê²ƒì€ 실험용 소프트웨어입니다. + + + This is intended for regression testing tools and app development. + ì´ê²ƒì€ 리그레션 테스팅 ë° ì•± ê°œë°œì„ ìœ„í•´ 만들어졌습니다. + + + Threshold for disconnecting misbehaving peers (default: %u) + 제대로 ë™ìž‘하지 않는 피어와 ì—°ê²°ì„ ëŠì„ 임계값 (기본값: %u) + + + Too many spends needed + 너무 ë§Žì€ ì§€ì¶œì´ í•„ìš”í•¨ + + + Tor control port password (default: empty) + Tor 컨트롤 í¬íŠ¸ 암호 (기본값: 공백) + + + Tor control port to use if onion listening enabled (default: %s) + onion 활성화ë˜ì—ˆì„ 경우 사용할 Tor 코트롤 í¬íŠ¸ (기본값: %s) + + + Transaction Created + 트랜잭션 ì·¨ì†Œë¨ + + + Transaction Mint Started + 트랜잭션 ìƒì„± ì‹œìž‘ë¨ + + + Transaction amount too small + 트랜잭션 ê¸ˆì•¡ì´ ë„ˆë¬´ ì ìŠµë‹ˆë‹¤ + + + Transaction amounts must be positive + 트랜잭션 ê¸ˆì•¡ì— ë°˜ë“œì‹œ ì–‘ìˆ˜ê°’ì´ ë“¤ì–´ê°€ì•¼ 합니다 + + + Transaction too large for fee policy + 수수료 ì •ì±…ì— ë¹„í•´ íŠ¸ëžœìž­ì…˜ì´ ë„ˆë¬´ 많습니다 + + + Transaction too large + íŠ¸ëžœìž­ì…˜ì´ ë„ˆë¬´ í½ë‹ˆë‹¤ + + + Trying to spend an already spent serial #, try again. + ì´ë¯¸ ì „ì†¡ëœ ë¦¬ì–¼ 번호를 보내려고 했습니다. 다시 ì‹œë„하십시오. + + + Unable to bind to %s on this computer (bind returned error %s) + ì´ ì»´í“¨í„°ì—ì„œ %s ë¡œ ë°”ì¸ë“œí•  수 없습니다 (ë°”ì¸ë“œ 리턴 오류 %s) + + + Unable to sign spork message, wrong key? + 스í¬í¬ 메시지를 ì¸ì¦í•  수 없습니다, 키를 확ì¸í•´ì£¼ì„¸ìš” + + + Unable to start HTTP server. See debug log for details. + HTTP 서버를 시작할수 없습니다. log 파ì¼ì„ 확ì¸í•´ì£¼ì„¸ìš”. + + + Unknown network specified in -onlynet: '%s' + -onlynet: '%s' ì— ì•Œ 수 없는 네트워í¬ê°€ 지정ë˜ì—ˆìŠµë‹ˆë‹¤ + + + Upgrade wallet to latest format + ì§€ê°‘ì„ ìµœì‹  í¬ë§·ìœ¼ë¡œ 업그레ì´ë“œí•©ë‹ˆë‹¤ + + + Use UPnP to map the listening port (default: %u) + 수신 í¬íŠ¸ë¥¼ 매핑하려면 UPnP를 사용하십시오 (기본값: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + 수신 í¬íŠ¸ë¥¼ 매핑하려면 UPnP를 사용하십시오 (기본값: 1 수신 ìƒíƒœì¼ ë•Œ) + + + Use a custom max chain reorganization depth (default: %u) + 맞춤 최대 ì²´ì¸ ìž¬êµ¬ì„± ê¹Šì´ ì‚¬ìš© (기본값 : %u) + + + Use the test network + 테스트 네트워í¬ë¥¼ 사용합니다 + + + Username for JSON-RPC connections + JSON-RPC ì—°ê²° ì‚¬ìš©ìž ì´ë¦„ + + + Value is below the smallest available denomination (= 1) of zPIV + Value is below the smallest available denomination (= 1) of zPIV + + + Verifying blocks... + ë¸”ë¡ ì¸ì¦ 중... + + + Verifying wallet... + 지갑 ì¸ì¦ 중... + + + Wallet %s resides outside data directory %s + 지갑 %s ê°€ ë°ì´í„° 디렉토리 ì™¸ë¶€ì— ì¡´ìž¬í•©ë‹ˆë‹¤ %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + ì§€ê°‘ì„ ë‹¤ì‹œ 작성해야 합니다: 완료하려면 PIVX 코어를 재시작해야 합니다 + + + Wallet options: + 지갑 옵션: + + + Wallet window title + 지갑 ì°½ 제목 + + + Warning + 경고 + + + Warning: This version is obsolete, upgrade required! + 경고 : 현재 ì‚¬ìš©ì¤‘ì¸ ë²„ì „ì€ ë”ì´ìƒ 사용ë˜ì§€ 않으므로 업그레ì´ë“œê°€ 필요합니다! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + 경고 : 지ì›í•˜ì§€ 않는 ì¸ìˆ˜ -benchmark ë¬´ì‹œë¨ -debug = bench를 사용하십시오. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + 경고 : 지ì›í•˜ì§€ 않는 ì¸ìˆ˜ -debugnet ë¬´ì‹œë¨ -debug=net를 사용하십시오. + + + You don't have enough Zerocoins in your wallet + ì§€ê°‘ì— zPIV ê°€ 부족합니다. + + + You need to rebuild the database using -reindex to change -txindex + -treindex를 변경하려면 -reindex를 사용하여 ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 다시 빌드해야합니다. + + + Zapping all transactions from wallet... + 지갑 ë‚´ 모든 íŠ¸ëžœìž­ì…˜ë“¤ì„ ìž¬í•‘í•˜ëŠ” 중... + + + ZeroMQ notification options: + ZeroMQ 알림 옵션: + + + Zerocoin options: + ì œë¡œì½”ì¸ ì˜µì…˜: + + + on startup + 시작 ì‹œ + + + wallet.dat corrupt, salvage failed + wallet.dat 파ì¼ì´ ì†ìƒë˜ì–´ ë³µêµ¬ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤ + + + + send + + Form + Form + + + Send + 보내기 + + + TextLabel + í…스트ë¼ë²¨ + + + PushButton + 누르기 + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_lt_LT.ts b/src/qt/locale/pivx_lt_LT.ts new file mode 100644 index 0000000..722af20 --- /dev/null +++ b/src/qt/locale/pivx_lt_LT.ts @@ -0,0 +1,2327 @@ + + + AddNewAddressDialog + + Address + Adresas + + + + AddNewContactDialog + + TextLabel + Teksto etiketÄ— + + + + AddressBookPage + + Right-click to edit address or label + Paspauskite deÅ¡nį pelÄ—s klaviÅ¡Ä… norÄ—dami pakeisti adresÄ… + + + Create a new address + Sukurti naujÄ… adresÄ… + + + &New + &Naujas + + + Copy the currently selected address to the system clipboard + Kopijuoti pažymÄ—tÄ… adresÄ… + + + &Copy + &Kopijuoti + + + Delete the currently selected address from the list + IÅ¡trinti dabartinį pažymÄ—tÄ… adresÄ… iÅ¡ sÄ…raÅ¡o + + + &Delete + &IÅ¡trinti + + + Export the data in the current tab to a file + Eksportuoti duomenis dabartiniame skirtuke į failÄ… + + + &Export + &Eksportuoti + + + C&lose + &Uždaryti + + + Choose the address to send coins to + Pasirinkite adresÄ…, kuriam siųsite monetas + + + Choose the address to receive coins with + Pasirinkite adresÄ…, kuriuo gausite monetas + + + C&hoose + &Pasirinkti + + + Sending addresses + Siuntimo adresai + + + Receiving addresses + Gavimo adresai + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Tai jÅ«sų PIVX adresai mokÄ—jimų iÅ¡siuntimams. Visada patikrinkite sumÄ… ir gavÄ—jo adresÄ… prieÅ¡ siųsdami monetas. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Tai jÅ«sų PIVX adresai mokÄ—jimų gavimams. Rekomenduojama naudoti naujÄ… adresÄ… kiekvienam pavedimui. + + + &Copy Address + &Kopijuoti AdresÄ… + + + Copy &Label + Kopijuoti &EtiketÄ— + + + &Edit + &Redaguoti + + + Export Address List + Eksportuoti adresų sÄ…raÅ¡Ä… + + + Comma separated file (*.csv) + TaÅ¡kais atskirtas failas (* .csv) + + + Exporting Failed + Eksportavimas Nepavyko + + + There was an error trying to save the address list to %1. Please try again. + Ä®vyko klaida bandant iÅ¡saugoti adresų sÄ…raÅ¡Ä… į %1. Bandykite dar kartÄ…. + + + + AddressLabelRow + + Form + Forma + + + + AddressTableModel + + Label + EtiketÄ— + + + Address + Adresas + + + Date + Data + + + (no label) + (nÄ—ra etiketÄ—s) + + + + AddressesWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + + AskPassphraseDialog + + Passphrase Dialog + SlaptafrazÄ—s dialogas + + + TextLabel + Teksto etiketÄ— + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Suveskite naujÄ… slaptafrazÄ™ į piniginÄ™, <br/>PraÅ¡ome naudoti frazÄ™ sudarytÄ… iÅ¡ <b> deÅ¡imt ar daugiau atsitiktinių simbolių</b>, arba <b>aÅ¡tuonis ir daugiau žodžių</b>. + + + Encrypt wallet + Užšifruoti piniginÄ™ + + + This operation needs your wallet passphrase to unlock the wallet. + Å i operacija reikalauja jÅ«sų piniginÄ—s slaptafrazÄ—s, tam, kad jÄ… atrakintumÄ—te. + + + Unlock wallet + Atrakinti piniginÄ™ + + + This operation needs your wallet passphrase to decrypt the wallet. + Å i operacija reikalauja jÅ«sų piniginÄ—s slaptafrazÄ—s, tam, kad jÄ… iÅ¡Å¡ifruotumÄ—te. + + + Decrypt wallet + IÅ¡Å¡ifruoti piniginÄ™ + + + Change passphrase + Pakeisti slaptafrazÄ™ + + + Enter the old and new passphrase to the wallet. + Ä®veskite senÄ… ir naujÄ… slaptafrazÄ™ į piniginÄ™. + + + Confirm wallet encryption + Patvirtinkite piniginÄ—s užšifravimÄ…. + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + Dabar PIVX iÅ¡sijungs, kad bÅ«tų užbaigtas Å¡ifravimo procesas. Atminkite, kad jÅ«sų piniginÄ—s užšifravimas negali visiÅ¡kai apsaugoti jÅ«sų PIV nuo kenkÄ—jiÅ¡kų programų, užkrÄ—sto jÅ«sų kompiuterio. + + + Are you sure you wish to encrypt your wallet? + Ar tikrai norite užšifruoti savo piniginÄ™? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Ä®spÄ—jimas: jei užšifruosite savo piniginÄ™ ir prarasite slaptafrazÄ™, jÅ«s <b>PRARASITE VISUS SAVO PIV</b>! + + + Wallet encrypted + PiniginÄ— užšifruota + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + SVARBU: bet kokios ankstesnÄ—s atsarginÄ—s piniginÄ—s kopijos, turÄ—tų bÅ«ti pakeistos naujai sukurtu, užšifruotu piniginÄ—s failu. Saugumo sumetimais ankstesnÄ—s neužšifruoto piniginÄ—s failo atsarginÄ—s kopijos bus netinkamos, kai tik pradÄ—site naudoti naujÄ… užšifruotÄ… piniginÄ™. + + + Wallet encryption failed + PiniginÄ—s užšifravimas nepavyko + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + PiniginÄ—s užšifravimas nepavyko dÄ—l vidinÄ—s klaidos. JÅ«sų piniginÄ— nebuvo užšifruota + + + The supplied passphrases do not match. + Pateiktos slaptafrazÄ—s neatitinka. + + + Wallet unlock failed + PiniginÄ—s atrakinimas nepavyko. + + + The passphrase entered for the wallet decryption was incorrect. + Ä®vesta slaptafrazÄ— piniginÄ—s iÅ¡Å¡ifravimui yra neteisinga. + + + Wallet decryption failed + PiniginÄ—s iÅ¡Å¡ifravimas nepavyko + + + Wallet passphrase was successfully changed. + PiniginÄ—s slaptafrazÄ— sÄ—kmingai pakeista. + + + Warning: The Caps Lock key is on! + Ä®spÄ—jimas: mygtukas "Caps Lock" yra įjungtas! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + Uždraustas Iki + + + + BlockExplorer + + Blockchain Explorer + Blockchain NarÅ¡yklÄ— + + + Back + Atgal + + + Forward + Pirmyn + + + Address / Block / Transaction + Adresas / Blokas / Pavedimas + + + Search + IeÅ¡koti + + + TextLabel + Teksto etiketÄ— + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Ne visi pavedimai bus rodomi. NorÄ—dami peržiÅ«rÄ—ti visus pavedimus, reikia nustatyti txindex = 1 konfigÅ«racijos faile (pivx.conf). + + + + CSRow + + Form + Forma + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + IÅ¡ viso: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Nežinomi: %5) + + + Network Alert + Tinklo Ä®spÄ—jimas + + + + CoinControlDialog + + Quantity: + Kiekis: + + + Bytes: + Baitai: + + + Fee: + Mokestis: + + + Coin Selection + Monetų Pasirinkimas + + + Change: + Grąža: + + + Tree mode + Medžio rėžimas + + + List mode + SÄ…raÅ¡o rėžimas + + + (1 locked) + (1 užrakintas) + + + Amount + Suma + + + 0 + 0 + + + Received with label + Gauta su etikete + + + Received with address + Gauta su adresu + + + Date + Data + + + Confirmations + Patvirtinimų + + + Confirmed + Patvirtinta + + + Copy address + Kopijuoti adresÄ… + + + Copy label + Kopijuoti etiketÄ™ + + + Copy amount + Kopijuoti sumÄ… + + + Copy transaction ID + Kopijuoti pavedimo ID + + + Lock unspent + Užrakinti neiÅ¡naudotus + + + Unlock unspent + Atrakinti neiÅ¡naudotus + + + Copy quantity + Kopijuoti kiekį + + + Copy fee + Kopijuoti mokestį + + + Copy after fee + Kopijuoti po mokesÄio + + + Copy bytes + Kopijuoti baitus + + + Copy priority + Kopijuoti prioritetÄ… + + + Copy change + Kopijuoti grąžą + + + Please switch to "List mode" to use this function. + NorÄ—dami naudoti Å¡iÄ… funkcijÄ…, pereikite prie "SÄ…raÅ¡o rėžimo". + + + highest + aukÅ¡Äiausias + + + higher + aukÅ¡tesnis + + + high + aukÅ¡tas + + + medium-high + vidutinis-aukÅ¡tas + + + medium + vidutinis + + + low-medium + žemas-vidutinis + + + low + žemas + + + lower + žemesnis + + + lowest + žemiausias + + + (%1 locked) + (%1 užrakinta) + + + none + nieko + + + yes + taip + + + no + ne + + + This label turns red, if the transaction size is greater than 1000 bytes. + Å i etiketÄ— bÅ«na raudona, jei operacijos dydis yra didesnis nei 1000 baitų. + + + This means a fee of at least %1 per kB is required. + Tai reiÅ¡kia, kad reikia ne mažesnio kaip %1 mokesÄio už kB. + + + Can vary +/- 1 byte per input. + Gali skirtis +/- 1 baitas kiekvienoje įvestyje. + + + Transactions with higher priority are more likely to get included into a block. + Pavedimai su didesniu prioritetu turi didesnį Å¡ansÄ… bÅ«ti įtraukti į blokÄ…. + + + This label turns red, if the priority is smaller than "medium". + Å i etiketÄ— taps raudona, jei prioritetas yra mažesnis nei "vidutinis". + + + This label turns red, if any recipient receives an amount smaller than %1. + Å i etiketÄ— taps raudona, jei gavÄ—jas gaus sumÄ… mažesnÄ™ už %1 + + + Can vary +/- %1 upiv per input. + Gali skirtis +/- %1 upiv kiekvienoje įvestyje. + + + (no label) + (nÄ—ra etiketÄ—s) + + + change from %1 (%2) + pakeisti iÅ¡ %1 (%2) + + + (change) + (keisti) + + + + CoinControlPivWidget + + PIV: + PIV: + + + TextLabel + Teksto etiketÄ— + + + Quantity: + Kiekis: + + + Fee: + Mokestis: + + + Amount + Suma + + + Label + EtiketÄ— + + + Address + Adresas + + + Type + Tipas + + + Date + Data + + + Confirmations + Patvirtinimų + + + Bytes: + Baitai: + + + Change: + Grąža: + + + + ColdStakingWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + + ContactDropdownRow + + Form + Forma + + + + DashboardWidget + + Form + Forma + + + Warning + Ä®spÄ—jimas + + + TextLabel + Teksto etiketÄ— + + + zPIV + zPIV + + + All + Viskas + + + Received + Gauta + + + Sent + IÅ¡siųsta + + + Mined + IÅ¡kasta + + + Minted + Nukalta + + + + DefaultDialog + + Form + Forma + + + + DenomGenerationDialog + + Form + Forma + + + + EditAddressDialog + + Edit Address + Keisti AdresÄ… + + + &Label + &EtiketÄ— + + + The label associated with this address list entry + EtiketÄ—, susieta su Å¡iuo adresų sÄ…raÅ¡o įraÅ¡u + + + &Address + &Adresas + + + The address associated with this address list entry. This can only be modified for sending addresses. + Adresas, susietas su Å¡iuo adresų sÄ…raÅ¡o įraÅ¡u. Tai galima pakeisti tik siuntimo adresams. + + + New receiving address + Naujas gavimo adresas + + + New sending address + Naujas siuntimo adresas + + + Edit receiving address + Keisti gavimo adresÄ… + + + Edit sending address + Keisti siuntimo adresÄ… + + + The entered address "%1" is not a valid PIVX address. + Ä®vestas adresas "%1" nÄ—ra galiojantis PIVX adresas. + + + The entered address "%1" is already in the address book. + Ä®vestas adresas "%1" jau yra adresų knygoje. + + + Could not unlock wallet. + Nepavyko atrakinti piniginÄ—s. + + + New key generation failed. + Naujo rakto generavimas nepavyko. + + + + ExpandableButton + + Form + Forma + + + + FreespaceChecker + + A new data directory will be created. + Bus sukurtas naujas duomenų katalogas. + + + name + pavadinimas + + + Directory already exists. Add %1 if you intend to create a new directory here. + Katalogas jau egzistuoja. PridÄ—kite %1, jei ketinate Äia kurti naujÄ… katalogÄ…. + + + Path already exists, and is not a directory. + Trumpinys jau egzistuoja ir tai nÄ—ra aplankas. + + + Cannot create data directory here. + Sukurti duomenų katalogo Äia negalima . + + + + GovernancePage + + Form + Forma + + + 0 + 0 + + + + HelpMessageDialog + + version + versija + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bitai) + + + About PIVX Core + Apie PIVX Core + + + Command-line options + Komandų eilutÄ—s parinktys + + + Usage: + Naudojimas: + + + command-line options + komandų eilutÄ—s parinktys + + + UI Options: + Vartotojo sÄ…sajos pasirinktys: + + + Choose data directory on startup (default: %u) + Pasirinkti duomenų katalogÄ… paleidžiant (numatytasis: %u) + + + Show splash screen on startup (default: %u) + Rodyti ekrano užsklanda paleidžiant (numatytasis: %u) + + + Set language, for example "de_DE" (default: system locale) + Nustatykite kalbÄ…, pvz., "de_DE" (numatytasis: sistemos kalba) + + + Start minimized + Paleisti sumažintÄ… + + + Set SSL root certificates for payment request (default: -system-) + SSL sertifikatų nustatymas mokÄ—jimo užklausai (numatytasis: -system-) + + + + Intro + + Welcome + Sveiki + + + Welcome to PIVX Core. + Sveiki atvykÄ™ į PIVX Core + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Kadangi programa paleista pirmÄ… kartÄ…, galite pasirinkti kur PIVX Core saugos savo duomenis. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core atsisiųs ir saugos PIVX blockchain'o kopijÄ…. Å iame kataloge bus saugomas ne mažesnis kaip %1GB duomenų kiekis, kuris laikui bÄ—gant augs. PiniginÄ— taip pat bus saugoma Å¡iame kataloge. + + + Use the default data directory + Naudoti numatytÄ…jį duomenų katalogÄ… + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Klaida: negalima sukurti nurodyto duomenų katalogo "%1". + + + Error + Klaida + + + %1 GB of free space available + %1 GB laisvos vietos yra prieinama + + + (of %1 GB needed) + (iÅ¡ %1 GB reikiamos) + + + + LoadingDialog + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + + LockUnlock + + Form + Forma + + + + MNRow + + Form + Forma + + + + MasterNodeWizardDialog + + Name + Pavadinimas + + + Address + Adresas + + + The amount exceeds your balance. + Å i suma virÅ¡ija jÅ«sų likutį. + + + Transaction creation failed! + MokÄ—jimo kÅ«rimas nepavyko! + + + + MasterNodesWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + Delete + IÅ¡trinti + + + + MnInfoDialog + + Form + Forma + + + Status: + Statusas: + + + + MyAddressRow + + Form + Forma + + + + NavMenuWidget + + Form + Forma + + + + OpenURIDialog + + Open URI + Atidaryti URI + + + TextLabel + Teksto etiketÄ— + + + Select payment request file + Pasirinkite mokÄ—jimo užklausos failÄ… + + + Select payment request file to open + Pasirinkite norimÄ… atidaryti mokÄ—jimo užklausÄ… + + + + OptionButton + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + + OptionsDialog + + Options + Nustatymai + + + Size of &database cache + &Duomenų bazÄ—s talpyklos dydis + + + MB + MB + + + W&allet + P&iniginÄ— + + + Accept connections from outside + Priimti prisijungimus iÅ¡ iÅ¡orÄ—s + + + Allow incoming connections + Leisti įeinanÄius ryÅ¡ius + + + Expert + Ekspertas + + + Automatically start PIVX after logging in to the system. + AutomatiÅ¡kai paleisti PIVX prisijungus prie sistemos. + + + &Start PIVX on system login + &Paleisti PIVX sistemai įsijungiant + + + Whether to show coin control features or not. + Ar rodyti monetos kontrolÄ—s funkcijas ar ne. + + + Enable coin &control features + Ä®galinti monetų &valdymo funkcijas + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Rodyti papildomÄ… skirtukÄ…, kuriame pateikiami visi jÅ«sų masternod'ai pirmame<br/> skirtuke ir visi antrame skirtuke visi tinkle esantys masternod'ai. + + + Show Masternodes Tab + Rodyti Masternod'ų Langelį + + + &Spend unconfirmed change + &IÅ¡leisti nepatvirtintÄ… grąžą + + + &Network + &Tinklas + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + ÄŒia galite nustatyti vartotojo sÄ…sajos kalbÄ…. Å is nustatymas įsigalios iÅ¡ naujo paleidus "PIVX". + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + TrÅ«ksta kalbos arba vertimas nebaigtas? PadÄ—kite prisidÄ—dami prie vertimų Äia: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Ä®raÅ¡yti prievadÄ… naudojant &UPnP + + + Enable automatic minting of PIV units to zPIV + Ä®galinti automatinį konvertavimÄ… iÅ¡ PIV į zPIV + + + Enable zPIV Automint + Ä®galinti zPIV Automatinį nukaldinima + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Procentas gauto PIV, kuris automatiÅ¡kai bus konvertuotas į zPIV naudojant Zerocoin ProtokolÄ… (min: 10%) + + + Percentage of autominted zPIV + AutomatiÅ¡kai sukurtų zPIV procentas + + + Preferred Automint zPIV Denomination + Pageidautinas zPIV Automatinio Nukaldinimo Nominalas + + + Connect to the PIVX network through a SOCKS5 proxy. + Jungtis prie PIVX tinklo naudojant SOCKS5 tarpinį serverį. + + + Proxy &IP: + Proxy &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP proxy adresas (pvz. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Prievadas (angl. port): + + + Port of the proxy (e.g. 9050) + Proxy prievadas (pvz. 9050) + + + &Window + &Langas + + + Show only a tray icon after minimizing the window. + Po lango minimizavimo rodyti tik piktogramÄ…. + + + &Display + &Rodyti + + + Decimal digits + DeÅ¡imtainiai skaitmenys + + + Hide empty balances + SlÄ—pti tuÅ¡Äius balansus + + + Third party transaction URLs + TreÄių Å¡alių pavedimų URL adresai + + + Reset all client options to default. + IÅ¡ naujo nustatyti visas parinktis. + + + &Reset Options + &Atstatyti Nustatymus + + + &OK + &Gerai + + + &Cancel + &AtÅ¡aukti + + + Any + Bet koks + + + default + numatytas + + + none + nieko + + + Confirm options reset + Patvirtinti nustatymų atstatymÄ… + + + Client restart required to activate changes. + Reikalingas pakartotinis programos paleidimas norint aktyvuoti pakeitimus. + + + Client will be shutdown, do you want to proceed? + Programa bus iÅ¡jungta, ar norite tÄ™sti? + + + This change would require a client restart. + Å is pakeitimas reikalauja programos perkrovimo. + + + The supplied proxy address is invalid. + Pateiktas tarpinio serverio adresas neteisingas. + + + The supplied proxy port is invalid. + Pateiktas tarpinio serverio prievadas yra netinkamas. + + + The supplied proxy settings are invalid. + Pateikti tarpinio serverio nustatymai yra netinkami. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + PiniginÄ— + + + Node + "Node'as" + + + &Show / Hide + &Rodyti / PaslÄ—pti + + + Show or hide the main Window + Rodyti arba paslÄ—pti pagrindinį langÄ… + + + E&xit + &IÅ¡eiti + + + Quit application + Uždaryti programÄ… + + + PIVX Core client + PIVX Core piniginÄ— + + + Error + Klaida + + + Warning + Ä®spÄ—jimas + + + Information + Informacija + + + Sent MultiSend transaction + IÅ¡siųstas MultiSend pavedimas + + + Sent transaction + Siųsti pavedimÄ… + + + Incoming transaction + Gaunamasis pavedimas + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Data: %1 +Kiekis: %2 +Tipas: %3 +Adresas: %4 + + + + + PWidget + + + PaymentServer + + Payment request error + MokÄ—jimo užklausos klaida + + + Invalid payment address %1 + Netinkamas mokÄ—jimo adresas %1 + + + Cannot start pivx: click-to-pay handler + Nepavyksta paleisti pivx: apdorojimo "spustelÄ—jimo ir apmokÄ—jimo" funkcijos klaida + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + MokÄ—jimo užklausos failas negali bÅ«ti nuskaitytas! Tai gali sukelti netinkamas mokÄ—jimo praÅ¡ymo failas. + + + Payment request rejected + MokÄ—jimo užklausa atmesta + + + Error communicating with %1: %2 + Klaida susisiekiant su %1: %2 + + + Payment request cannot be parsed! + Negalima iÅ¡nagrinÄ—ti mokÄ—jimo užklausos! + + + Bad response from server %1 + Blogas serverio %1 atsakymas + + + Network request error + Tinklo užklausos klaida + + + Payment acknowledged + MokÄ—jimas patvirtintas + + + + PeerTableModel + + Address/Hostname + Adresas / pavadinimas + + + Version + Versija + + + Ping Time + Ping'o laikas + + + + PrivacyWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + + ProposalFrame + + + QObject + + Amount + Suma + + + Enter a PIVX address (e.g. %1) + Ä®veskite PIVX adresÄ… (pvz. %1) + + + %1 d + %1 d + + + %1 h + %1 v + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + TINKLAS + + + UNKNOWN + NEŽINOMAS + + + None + Niekas + + + N/A + N/A + + + PIVX Core + PIVX Core + + + + RPCConsole + + Tools window + Ä®rankių langas + + + &Information + &Informacija + + + General + Bendras + + + Name + Pavadinimas + + + N/A + N/A + + + Number of connections + Prisijungimų skaiÄius + + + &Open + &Atidaryti + + + Network + Tinklas + + + Last block time + Paskutinio bloko laikas + + + Current number of blocks + Dabartinis blokų skaiÄius + + + Client version + Kliento versija + + + Using BerkeleyDB version + Naudojant BerkeleyDB versijÄ… + + + Block chain + Blockchain + + + Number of Masternodes + Masternod'ų skaiÄius + + + &Console + &KonsolÄ— + + + Clear console + IÅ¡valyti konsolÄ™ + + + &Network Traffic + &Tinklo Srautas + + + &Clear + &IÅ¡valyti + + + Received + Gauta + + + Sent + IÅ¡siųsta + + + &Peers + &Peers + + + Select a peer to view detailed information. + Pasirinkite peer, kad peržiÅ«rÄ—tumÄ—te detaliÄ… informacijÄ…. + + + Protocol + Protokolas + + + Version + Versija + + + Bytes Sent + IÅ¡siųsta Baitų + + + Bytes Received + Gauta Baitų + + + Ping Time + Ping'o laikas + + + &Wallet Repair + &PiniginÄ—s Taisymas + + + In: + Ä®: + + + Out: + IÅ¡: + + + Welcome to the PIVX RPC console. + Sveiki atvykÄ™ į PIVX RPC konsolÄ™. + + + never + niekada + + + + ReceiveDialog + + + ReceiveWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + + RecentRequestsTableModel + + Date + Data + + + Label + EtiketÄ— + + + Message + ŽinutÄ— + + + Address + Adresas + + + Amount + Suma + + + (no label) + (nÄ—ra etiketÄ—s) + + + (no message) + (nÄ—ra žinutÄ—s) + + + (no amount) + (nÄ—ra sumos) + + + + RequestDialog + + Amount + Suma + + + TextLabel + Teksto etiketÄ— + + + Label + EtiketÄ— + + + Error + Klaida + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + Form + Forma + + + + SendMultiRow + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + + SendWidget + + Amount + Suma + + + Spend Zerocoin + IÅ¡leisti Zerocoin + + + + SettingsBackupWallet + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + + SettingsBitToolWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + Import Address + Importuoti adresÄ… + + + Clear + IÅ¡valyti + + + The entered passphrase is invalid. + Ä®vesta slaptafrazÄ— neteisinga. + + + Allowed: 0-9,a-z,A-Z, + Leidžiama: 0-9, a-z, A-Z, + + + The entered address is invalid. + Ä®vestas adresas yra neteisingas. + + + Please check the address and try again. + Patikrinkite adresÄ… ir bandykite dar kartÄ…. + + + The entered address does not refer to a key. + Ä®vestas adresas nenurodo rakto. + + + Wallet unlock was cancelled. + PiniginÄ—s atrakinimas buvo atÅ¡auktas. + + + Private key for the entered address is not available. + Privatus raktas nurodytam adresui nÄ—ra prieinamas. + + + Failed to decrypt. + Nepavyko iÅ¡Å¡ifruoti. + + + Please check the key and passphrase and try again. + PeržiÅ«rÄ—kite raktÄ… ir slaptafrazÄ™ ir bandykite dar kartÄ…. + + + Data Not Valid. + Duomenys netinkami. + + + Please try again. + Bandykite dar kartÄ…. + + + Please wait while key is imported + Palaukite kol raktas bus importuotas + + + + SettingsConsoleWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + Welcome to the PIVX RPC console. + Sveiki atvykÄ™ į PIVX RPC konsolÄ™. + + + + SettingsDisplayOptionsWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + Decimal digits + DeÅ¡imtainiai skaitmenys + + + Hide empty balances + SlÄ—pti tuÅ¡Äius balansus + + + default + numatytas + + + + SettingsFaqWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + + SettingsInformationWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + Information + Informacija + + + General + Bendras + + + Network + Tinklas + + + In: + Ä®: + + + Out: + IÅ¡: + + + + SettingsMainOptionsWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + + SettingsMultisendDialog + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + + SettingsMultisendWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + Active + Aktyvuota + + + + SettingsSignMessageWidgets + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + Clear + IÅ¡valyti + + + Message + ŽinutÄ— + + + The entered address is invalid. + Ä®vestas adresas yra neteisingas. + + + Please check the address and try again. + Patikrinkite adresÄ… ir bandykite dar kartÄ…. + + + The entered address does not refer to a key. + Ä®vestas adresas nenurodo rakto. + + + Wallet unlock was cancelled. + PiniginÄ—s atrakinimas buvo atÅ¡auktas. + + + Private key for the entered address is not available. + Privatus raktas nurodytam adresui nÄ—ra prieinamas. + + + + SettingsWalletOptionsWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + Wallet + PiniginÄ— + + + Network + Tinklas + + + Allow incoming connections + Leisti įeinanÄius ryÅ¡ius + + + + SettingsWalletRepairWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + + SettingsWidget + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + Wallet + PiniginÄ— + + + Options + Nustatymai + + + Information + Informacija + + + Confirm options reset + Patvirtinti nustatymų atstatymÄ… + + + Client restart required to activate changes. + Reikalingas pakartotinis programos paleidimas norint aktyvuoti pakeitimus. + + + Client will be shutdown, do you want to proceed? + Programa bus iÅ¡jungta, ar norite tÄ™sti? + + + + ShutdownWindow + + + SnackBar + + Form + Forma + + + + Splash + + Form + Forma + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + + TooltipMenu + + Form + Forma + + + Delete + IÅ¡trinti + + + + TopBar + + Form + Forma + + + %1 and %2 + %1 ir %2 + + + + TrafficGraphWidget + + + TransactionDesc + + Status + Statusas + + + Date + Data + + + Message + ŽinutÄ— + + + Transaction + Pavedimas + + + Inputs + Ä®vestys + + + Amount + Suma + + + true + tiesa + + + false + netiesa + + + + TransactionTableModel + + Date + Data + + + Type + Tipas + + + Address + Adresas + + + Offline + NeprisijungÄ™s + + + Unconfirmed + Nepatvirtinta: + + + Sent to + IÅ¡siųsta + + + Mined + IÅ¡kasta + + + (n/a) + (n/a) + + + Transaction status. Hover over this field to show number of confirmations. + Pavedimo statusas. Užveskite pelÄ—s žymeklį virÅ¡ Å¡io lauko, kad bÅ«tų rodomas patvirtinimų skaiÄius. + + + Type of transaction. + Operacijos tipas. + + + + TxDetailDialog + + Form + Forma + + + Fee: + Mokestis: + + + Status: + Statusas: + + + TextLabel + Teksto etiketÄ— + + + + TxRow + + Form + Forma + + + + WalletModel + + Send Coins + Siųsti Monetas + + + + WalletPasswordDialog + + TextLabel + Teksto etiketÄ— + + + + WelcomeContentWidget + + Welcome + Sveiki + + + default + numatytas + + + + ZPivControlDialog + + Coin Control + Monetų KontrolÄ— + + + Quantity: + Kiekis: + + + 0 + 0 + + + + pivx-core + + (default: %s) + (numatytas: %s) + + + (default: 1) + (numatytas: 1) + + + Done loading + Krovimas baigtas + + + Error loading block database + Klaida kraunant blokų duomenų bazÄ™ + + + Error loading wallet.dat + Klaida kraunant wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Klaida kraunant wallet.dat: PiniginÄ— yra sugadinta + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Klaida kraunant wallet.dat: PiniginÄ— reikalauja naujesnÄ—s PIVX Core versijos + + + Error opening block database + Klaida atidarant blokų duomenų bazÄ™ + + + Error + Klaida + + + Error: A fatal internal error occured, see debug.log for details + Klaida: Ä®vyko vidinÄ— klaida, dÄ—l iÅ¡samesnÄ—s informacijos žr. Debug.log + + + Error: Disk space is low! + Klaida: Diske mažai vietos! + + + Failed to read block + Klaida nuskaitant blokÄ… + + + Importing... + Importuojama... + + + Information + Informacija + + + Insufficient funds + Nepakankamai lėšų + + + Insufficient funds. + Nepakankamai lėšų. + + + Invalid amount + Neteisinga suma + + + SwiftX options: + SwiftX nustatymai: + + + Failed to select a zerocoin + Nepavyko pasirinkti zerocoin + + + Loading addresses... + Kraunami adresai.... + + + Loading block index... + Kraunamas bloko indeksas... + + + Loading budget cache... + Kraunamas biudžeto podÄ—lis... + + + Loading masternode cache... + Kraunamas masternodų podÄ—lis... + + + Loading masternode payment cache... + Kraunamas masternodų iÅ¡mokų podÄ—lis... + + + Loading sporks... + Kraunami sporkai... + + + Loading wallet... (%3.2f %%) + Kraunama piniginÄ—... (%3.2f %%) + + + Loading wallet... + Kraunama piniginÄ—... + + + Masternode options: + Masternod'ų nustatymai: + + + Options: + Nustatymai: + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid(): Neteisingas -proxy adresas arba mazgo pavadinimas: '%s' + + + Session timed out. + Sesijos laikas baigÄ—si. + + + Signing timed out. + Prisijungimo laikas baigÄ—si. + + + Synchronization failed + Sinchronizavimas nepavyko + + + Synchronization finished + Sinchronizavimas baigtas + + + Synchronization pending... + Laukiama sinchronizavimo... + + + Synchronizing budgets... + Sinchronizuojami biudžetai... + + + Synchronizing masternode winners... + Sinchronizuojami Masternod'ų nugalÄ—tojai... + + + Synchronizing masternodes... + Sinchronizuojami Masternod'ai.. + + + This help message + Å is pagalbos praneÅ¡imas + + + Transaction Created + Sandoris Sukurtas + + + Transaction amount too small + Sandorio suma per maža + + + Transaction amounts must be positive + Sandorio sumos turi bÅ«ti teigiamos + + + Transaction too large + Sandoris per didelis + + + Upgrade wallet to latest format + Atnaujinti piniginÄ™ į naujausiÄ… formatÄ… + + + Use the test network + Naudoti bandomajį tinklÄ… + + + Verifying blocks... + Patvirtinami blokai... + + + Verifying wallet... + Patvirtinama piniginÄ—... + + + Wallet %s resides outside data directory %s + PiniginÄ— %s yra ne duomenų kataloge %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + PiniginÄ™ reikia perraÅ¡yti: paleiskite PIVX Core iÅ¡ naujo + + + Wallet options: + PiniginÄ—s nustatymai: + + + Wallet window title + PiniginÄ—s lango pavadinimas + + + Warning + Ä®spÄ—jimas + + + Warning: This version is obsolete, upgrade required! + Ä®spÄ—jimas: Å¡i versija yra pasenusi, bÅ«tina jÄ… atnaujinti! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Ä®spÄ—jimas: nepalaikomas argumentas -benchmark ignored, naudokite -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Ä®spÄ—jimas: nepalaikomas argumentas -debugnet ignored naudokite -debug=net. + + + You don't have enough Zerocoins in your wallet + Neturite pakankamai Zerocoin monetų savo piniginÄ—je + + + Zapping all transactions from wallet... + Trinami visi sandoriai iÅ¡ piniginÄ—s... + + + ZeroMQ notification options: + ZeroMQ praneÅ¡imų nustatymai: + + + Zerocoin options: + Zerocoin nustatymai: + + + on startup + paleidus + + + wallet.dat corrupt, salvage failed + wallet.dat sugadintas, surinkimas nepavyko + + + + send + + Form + Forma + + + TextLabel + Teksto etiketÄ— + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_nl.ts b/src/qt/locale/pivx_nl.ts new file mode 100644 index 0000000..48e6515 --- /dev/null +++ b/src/qt/locale/pivx_nl.ts @@ -0,0 +1,7579 @@ + + + AddNewAddressDialog + + Dialog + Dialoog + + + My Address + Mijn Adres + + + Address + Adres + + + PushButton + Druk Knop + + + CANCEL + Annuleren + + + OK + Akkoord + + + + AddNewContactDialog + + Dialog + Dialoog + + + TextLabel + TextLabel + + + CANCEL + Annuleren + + + OK + Akkoord + + + Edit Contact + Contactgegevens wijzigen + + + Set a label for the selected address + Stel een label in voor het geselecteerde adres + + + Enter a name for the address (e.g Exchange) + Voeg een naam toe bij het behorende adres + + + SAVE + Opslaan + + + Edit label for the selected address: +%1 + Bewerk label voor het geselecteerde adres: +%1 + + + + AddressBookPage + + Right-click to edit address or label + Klik met de rechtermuisknop om het adres of label te wijzigen + + + Create a new address + Maak een nieuw adres aan + + + &New + &Nieuw + + + Copy the currently selected address to the system clipboard + Kopieer het geselecteerde adres naar het klembord + + + &Copy + &Kopiëren + + + Delete the currently selected address from the list + Verwijder het geselecteerde adres uit de lijst + + + &Delete + &Verwijderen + + + Export the data in the current tab to a file + Exporteer de data in de huidige tab naar een bestand + + + &Export + &Exporteren + + + C&lose + &Sluiten + + + Choose the address to send coins to + Kies het adres om munten naar toe te sturen + + + Choose the address to receive coins with + Kies het adres om munten op te ontvangen + + + C&hoose + K&iezen + + + Sending addresses + Verzendadressen + + + Receiving addresses + Ontvangstadressen + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Dit zijn uw PIVX adressen om betalingen mee te verzenden. Controleer altijd zowel het bedrag als het ontvangstadres voor het verzenden van geld. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Dit zijn uw PIVX adressen waarop betalingen kunnen worden ontvangen. Het wordt aangeraden om een nieuw ontvangstadres voor elke transactie te gebruiken. + + + &Copy Address + &Kopiëer Adres + + + Copy &Label + Kopiëer &Label + + + &Edit + &Bewerken + + + Export Address List + Exporteer Adreslijst + + + Comma separated file (*.csv) + Kommagescheiden bestand (*.csv) + + + Exporting Failed + Export Mislukt + + + There was an error trying to save the address list to %1. Please try again. + Er was een fout opgetreden tijdens het opslaan van deze adreslijst naar %1. Probeer het nogmaals. + + + + AddressLabelRow + + Form + Formulier + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + AddressTableModel + + Label + Label + + + Address + Adres + + + Date + Datum + + + (no label) + (geen label) + + + + AddressesWidget + + Form + Formulier + + + Send + Zenden + + + TextLabel + TextLabel + + + No active Master Node yet + Nog geen actieve Master Node + + + Contact name + Contactpersoon + + + Enter address + Voeg adres toe + + + OK + Akkoord + + + Contacts + Contacten + + + You can add a new one in the options menu to the side. + U kunt een nieuwe toevoegen in het optiemenu aan de zijkant. + + + No contacts yet + Nog geen contacten + + + e.g. John Doe + bv. Jan Jansen + + + Enter a PIVX address + Voeg een PIVX adres toe + + + SAVE + Opslaan + + + Invalid Contact Address + Ongeldig contactadres + + + Cannot store your own address as contact + Kan uw eigen adres niet als contact opslaan + + + Address already stored, label: %1 + Adres al opgeslagen, label: %1 + + + New Contact Stored + Nieuw contact opgeslagen + + + Error Storing Contact + Fout bij het opslaan van contact + + + Contact edited + Contact bewerkt + + + Contact edit failed + Bewerken van contact mislukt + + + Delete Contact + Verwijder contact + + + You are just about to remove the contact: + +%1 + +Are you sure? + U staat op het punt het contact te verwijderen: + +%1 + +Weet U het zeker? + + + Contact Deleted + Contact verwijderd + + + Error deleting a contact + Fout bij het verwijderen van een contact + + + Address copied + Adres gekopieerd + + + + AskPassphraseDialog + + Passphrase Dialog + Wachtwoordzin dialoog + + + TextLabel + TextLabel + + + PushButton + Druk Knop + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Voer een nieuw wachtwoord in voor uw portemonnee.<br/>Gebruik een wachtwoord van <b>tien of meer willekeurige karakters</b>, of <b>acht of meer woorden</b>. + + + Encrypt wallet + Versleutel portemonnee + + + This operation needs your wallet passphrase to unlock the wallet. + Deze operatie vereist uw portemonneewachtwoord om de portemonnee te openen. + + + Unlock wallet +for staking + Portemonnee ontgrendelen +voor bewijs van Inzet + + + Unlock wallet + Open portemonnee + + + This operation needs your wallet passphrase to decrypt the wallet. + Deze operatie vereist uw portemonneewachtwoord om de portemonnee te ontsleutelen + + + Decrypt wallet + Ontsleutel portemonnee + + + Change passphrase + Wijzig wachtwoord + + + Enter the old and new passphrase to the wallet. + Voer de oude en nieuwe wachtwoordzin in voor uw portemonnee. + + + Confirm wallet encryption + Bevestig versleuteling van de portemonnee + + + ENCRYPT + Versleutelen + + + CANCEL + Annuleren + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX zal nu afsluiten om het versleutelingsproces te voltooien. Onthoud dat het versleutelen van uw portemonnee u niet volledig kan beschermen tegen malware infecties op uw computer die uw PIV's kunnen stelen. + + + Are you sure you wish to encrypt your wallet? + Weet u zeker dat u uw portemonnee wilt versleutelen? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Waarschuwing: Als u uw portemonnee versleutelt en uw wachtwoord vergeet, zult u <b>AL UW PIV VERLIEZEN</b>! + + + Wallet encrypted + Portemonnee versleuteld + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + BELANGRIJK: Elke eerder gemaakte backup van uw portemonneebestand dient te worden vervangen door het nieuwe gegenereerde, versleutelde portemonneebestand. Om veiligheidsredenen zullen eerdere backups van het niet-versleutelde portemonneebestand onbruikbaar worden zodra u uw nieuwe, versleutelde, portemonnee begint te gebruiken. + + + Wallet encryption failed + Portemonneeversleuteling mislukt + + + OK + Akkoord + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Portemonneeversleuteling mislukt door een interne fout. Uw portemonnee is niet versleuteld. + + + The supplied passphrases do not match. + De opgegeven wachtwoordzinnen komen niet overeen. + + + Wallet unlock failed + Portemonnee openen mislukt + + + The passphrase entered for the wallet decryption was incorrect. + De opgegeven wachtwoordzin voor de portemonnee ontsleuteling is niet correct. + + + Wallet decryption failed + Portemonnee ontsleuteling mislukt + + + Wallet passphrase was successfully changed. + Portemonnee wachtwoordzin is met succes gewijzigd. + + + Warning: The Caps Lock key is on! + Waarschuwing: De Caps-Lock-toets staat aan! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + Verboden tot + + + + BlockExplorer + + Blockchain Explorer + Blockchain Verkenner + + + Back + Terug + + + Forward + Volgende + + + Address / Block / Transaction + Adres / Block / Transactie + + + Search + Zoeken + + + TextLabel + TextLabel + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Niet alle transacties zullen worden getoond. Om alle transacties te bekijken moet u txindex=1 instellen in het configuratie bestand (pivx.conf). + + + + CSRow + + Form + Formulier + + + Savings + Besparingen + + + 0,00 PIV + 0,00 PIV + + + address + adres + + + Not Staking + Niet aan het Staken + + + Own delegation + Eigen delegatie + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Totaal: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Onbekend: %5) + + + Network Alert + Netwerk waarschuwing + + + + CoinControlDialog + + Quantity: + Kwantiteit: + + + Bytes: + Bytes: + + + Fee: + Fee: + + + Coin Selection + Munt Selectie + + + Dust: + Dust: + + + Change: + Wisselgeld: + + + Tree mode + Tree modus + + + List mode + Lijst modus + + + (1 locked) + (1 locked) + + + Amount + Bedrag + + + Transaction Details + Transactie details + + + PushButton + Druk Knop + + + 0.00 PIV + 0.00 PIV + + + 0 + 0 + + + Select all + Selecteer alles + + + Toggle lock state + Schakel lockstatus in + + + Received with label + Ontvangen met label + + + Received with address + Ontvangen met adres + + + After Fee: + Na kosten + + + OK + Akkoord + + + Date + Datum + + + Confirmations + Bevestigingen + + + Confirmed + Bevestigd + + + Copy address + Kopieer adres + + + Copy label + Kopiëer label + + + Copy amount + Kopieer bedrag + + + Copy transaction ID + Kopieer transactie ID + + + Lock unspent + Lock niet besteed + + + Unlock unspent + Unlock niet besteed + + + Copy quantity + Kopieer kwantiteit + + + Copy fee + Kopieer fee + + + Copy after fee + Kopieer na fee + + + Copy bytes + Kopieer bytes + + + Copy priority + Kopieer prioriteit + + + Copy dust + Kopieer dust + + + Copy change + Kopieer wisselgeld + + + Unselect all + Deselecteer alles + + + Please switch to "List mode" to use this function. + Schakel alsjeblieft over naar "Lijst modus" om deze functie te gebruiken. + + + highest + hoogste + + + higher + hoger + + + high + hoog + + + medium-high + medium-hoog + + + medium + medium + + + low-medium + laag-medium + + + low + laag + + + lower + lager + + + lowest + laagst + + + (%1 locked) + (%1 vergrendeld) + + + none + geen + + + yes + ja + + + no + nee + + + This label turns red, if the transaction size is greater than 1000 bytes. + Dit label wordt rood, als de transactiegrootte groter is dan 1000 bytes. + + + This means a fee of at least %1 per kB is required. + Dit betekent dat een fee van minstens %1 per kB vereist is. + + + Can vary +/- 1 byte per input. + Kan variëren van +/- 1 byte per invoer. + + + Transactions with higher priority are more likely to get included into a block. + Transacties met hogere prioriteit zullen waarschijnlijk eerder in een blok opgenomen worden. + + + This label turns red, if the priority is smaller than "medium". + Dit label wordt rood, als de prioriteit lager is dan "medium". + + + This label turns red, if any recipient receives an amount smaller than %1. + Dit label wordt rood, als een ontvanger een hoeveelheid kleiner dan %1 ontvangt. + + + Can vary +/- %1 upiv per input. + Kan +/-%1 upiv per invoer variëren. + + + (no label) + (geen label) + + + change from %1 (%2) + wijzig van %1 (%2) + + + (change) + (wijzig) + + + + CoinControlPivWidget + + Dialog + Dialoog + + + Transaction Details + Transactie details + + + PushButton + Druk Knop + + + PIV: + PIV: + + + TextLabel + TextLabel + + + Quantity: + Kwantiteit: + + + Fee: + Fee: + + + Amount + Bedrag + + + Label + Label + + + Address + Adres + + + Type + Type + + + Date + Datum + + + Confirmations + Bevestigingen + + + CheckBox + Selectievakje + + + Bytes: + Bytes: + + + Dust: + Dust: + + + Change: + Wisselgeld: + + + After Fee: + Na kosten + + + CANCEL + Annuleren + + + OK + Akkoord + + + + ColdStakingWidget + + Form + Formulier + + + Title + Tietel + + + TextLabel + TextLabel + + + PushButton + Druk Knop + + + Owner Address (optional, if empty a new address will be created) + Eigenaarsadres (optioneel, indien leeg zal er een nieuw adres aangemaakt worden) + + + List of delegated balance by address + Lijst van gedelegeerde balans gesorteerd op adres + + + Total + Totaal + + + Unconfirmed balance will not be shown + Onbevestigde saldi zal niet getoond worden + + + No balance delegated + Geen balans gedelegeerd + + + Cold Staking + Cold Staking + + + Staker + Staker + + + Delegation + Delegatie + + + You can delegate your PIVs and let a hot node (24/7 online node) +stake in your behalf, keeping the keys in a secure place offline. + Je kan jouw PIVs delegeren en een hot node (24/7 online node) +laten staken in jouw naam, waardoor de sleutels in een veilige offline opslag bewaard worden. + + + Add owner address + Eigenaarsadres toevoegen + + + Delegate or Accept PIV delegation + Delegeer of Accepteer PIV delegatie + + + Delegate + Delegeer + + + Clear All + Alles wissen + + + Add the staking address + Staking-adres toevoegen + + + Delegated balance history + Gedelegeerde balanshistoriek + + + No delegations yet + Nog geen delegaties + + + Total Staking: %1 + Totaal Staking: %1 + + + Error loading delegations: %1 + Fout bij laden delegaties: %1 + + + No contacts available, you can go to the contacts screen and add some there! + Geen beschikbare contacten, je kan naar het contactscherm gaan en daar enkele toevoegen! + + + Cold staking is networkely disabled + Cold staking is uitgeschakeld + + + Invalid entry + Ongeldige invoer + + + Invalid entry, minimum delegable amount is 10 PIV + Ongeldige invoer, de minimum gedelegeerde hoeveelheid is 10 PIV + + + Owner address invalid + Ongeldig eigenaarsadres + + + ALERT! + ALERT! + + + Delegating to an external owner address! + +The delegated coins will NOT be spendable by this wallet. +Spending these coins will need to be done from the wallet or +device containing the owner address. + +Do you wish to proceed? + Aan het delegeren naar een extern eigenaarsadres! + +De gedelegeerde munten zullen NIET besteedbaar zijn vanuit deze portemonnee. +Het uitbesteden van deze munten zal gedaan kunnen worden vanuit de portemonnee of +toestel welke het eigenaarsadres bevat. + +Wil je verdergaan? + + + Staking address corresponds to this wallet, change it to an external node + Stakingadres reageert op deze portemonnee, wijzig het in een externe node + + + Cannot create transaction. + Kan geen transactie aanmaken. + + + Coins delegated + Gedelegeerde Munten + + + You don't have any PIV to select. + Je hebt geen PIV om te selecteren + + + URI copied to clipboard + URI gekopieerd naar klembord + + + Address copied to clipboard + Adres gekopieerd naar klembord + + + Copy + Kopieren + + + Edit + Bewerk + + + Stake + Stake + + + Blacklist + Blacklist + + + Edit Label + Label wijzigen + + + Copy owner +address + Kopieer eigenaarsadres + + + Address copied + Adres gekopieerd + + + Edit Cold Address Label + Label Cold Adres wijzigen + + + Whitelist failed, please check the logs + Veilige lijst mislukt, controleer de logs + + + staking! + staking! + + + Blacklist failed, please check the logs + Zwarte lijst mislukt, controleer de logs + + + blacklisted from staking + staking staat op de zwarte lijst + + + Owner address copied + Eigenaarsadres gekopieerd + + + Edit Owner Address Label + Label eigenaarsadres wijzigen + + + Address label saved + Adreslabel opgeslagen + + + Error storing address label + Fout bij bewaren adreslabel + + + + ContactDropdownRow + + Form + Formulier + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + DashboardWidget + + Form + Formulier + + + Transactions + Transacties + + + You can see here the history of your account + U kunt hier de geschiedenis van uw account bekijken + + + Warning + Waarschuwing + + + No transactions + Geen transacties + + + PushButton + Druk Knop + + + Staking Rewards + Staking Beloningen + + + TextLabel + TextLabel + + + Staking statistics + Staking statistieken + + + PIV + PIV + + + zPIV + zPIV + + + Sort by + Sorteervolgorde + + + Days + Dagen + + + Months + Maanden + + + Years + Jaren + + + Filter by + Filter volgens + + + LabelText + LabelText + + + You can view your account's history + U kunt de geschiedenis van uw account bekijken + + + Amount of PIV and zPIV staked. + Hoeveelheid aan gestaked PIV en zPIV. + + + All + Alle + + + Received + Ontvangen + + + Sent + Verstuurd + + + Mined + Mined + + + Minted + Minted + + + MN reward + MN beloning + + + To yourself + Naar jezelf + + + Cold stakes + Cold stakes + + + Hot stakes + Hot stakes + + + Delegated + Gedelegeerd + + + Delegations + Delegaties + + + Please wait until the wallet is fully synced to see your correct balance + Wacht tot de portemonnee volledig gesynchroniseerd is om uw juiste saldo te zien + + + No transactions yet + Nog geen transacties + + + How to get PIV or zPIV + Hoe PIV of zPIV verkrijgen + + + You can verify the staking activity in the status bar at the top right of the wallet. +It will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced. + U kunt de stakingactiviteit controleren in de statusbalk rechtsboven in de portemonnee. +Het zal automatisch starten zodra de portemonnee voldoende bevestigingen heeft op ongebruikte saldo's en de portemonnee gesynchroniseerd is. + + + You have no staking rewards + Je hebt geen staking beloningen + + + No charts library + Geen grafiekbibliotheek + + + Loading chart.. + Grafiek laden... + + + Error loading chart, invalid show option + Fout bij laden van grafiek, ongeldige toonoptie + + + Error loading chart, invalid data + Fout bij laden van grafiek, ongeldige gegevens + + + Error loading chart: %1 + Fout bij laden grafiek: %1 + + + + DefaultDialog + + Form + Formulier + + + Transaction Details + Transactie details + + + Text Label + Text Label + + + CANCEL + Annuleren + + + SAVE + Opslaan + + + + DenomGenerationDialog + + Form + Formulier + + + Transaction Details + Transactie details + + + PushButton + Druk Knop + + + This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again. + Hiermee wordt uw portemonnee volledig ontgrendeld, zodat iedereen die er toegang toe heeft, deze kan uitgeven totdat de portemonnee weer wordt gesloten of vergrendeld. + + + 5000 + 5000 + + + 100 + 100 + + + 10 + 10 + + + 1000 + 1000 + + + 50 + 50 + + + 500 + 500 + + + 5 + 5 + + + 1 + 1 + + + Select All + Selecteer Alles + + + CANCEL + Annuleren + + + SAVE + Opslaan + + + + EditAddressDialog + + Edit Address + Wijzig Adres + + + &Label + &Label + + + The label associated with this address list entry + Het label dat geassocieerd is met deze adreslijst invoer + + + &Address + &Adres + + + The address associated with this address list entry. This can only be modified for sending addresses. + Het adres geassocieerd met deze adreslijst invoer. Dit kan alleen worden gewijzigd voor verzend adressen. + + + New receiving address + Nieuw ontvangst adres + + + New sending address + Nieuw verzend adres + + + Edit receiving address + Wijzig ontvangst adres + + + Edit sending address + Wijzig verzend adres + + + The entered address "%1" is not a valid PIVX address. + Het ingevoerde adres: "%1" is geen geldig PIVX adres. + + + The entered address "%1" is already in the address book. + Het ingevoerde adres: "%1" staat al in uw adresboek. + + + Could not unlock wallet. + Kan portemonnee niet ontgrendelen. + + + New key generation failed. + Aanmaken nieuwe key mislukt. + + + + ExpandableButton + + Form + Formulier + + + + FreespaceChecker + + A new data directory will be created. + Een nieuwe data directory zal worden aangemaakt. + + + name + naam + + + Directory already exists. Add %1 if you intend to create a new directory here. + Map bestaat reeds. Voeg %1 toe als je van plan bent om hier een nieuwe map te creëren. + + + Path already exists, and is not a directory. + Pad bestaat al en is geen directory. + + + Cannot create data directory here. + Kan de data directory hier niet aanmaken. + + + + GovernancePage + + Form + Formulier + + + GOVERNANCE + BESTUUR + + + Update Proposals + Voorstellen Bijwerken + + + Next super block: + Volgende superblok: + + + 0 + 0 + + + Blocks to next super block: + Blokken tot de volgende superblok: + + + Days to budget payout (estimate): + Dagen tot budgetuitbetaling (schatting): + + + Allotted budget: + Toegewezen budget: + + + Budget left: + Resterend budget: + + + Masternodes count: + Masternodes aantal: + + + + HelpMessageDialog + + version + versie + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + Over PIVX Core + + + Command-line options + Command-line opties + + + Usage: + Gebruik: + + + command-line options + command-line opties + + + UI Options: + UI Opties: + + + Choose data directory on startup (default: %u) + Kies data directory bij opstarten (standaard: %u) + + + Show splash screen on startup (default: %u) + Toon splash scherm bij opstarten (standaard: %u) + + + Set language, for example "de_DE" (default: system locale) + Stel taal in, bijvoorbeeld "de_DE" (standaard: systeem locale) + + + Start minimized + Geminimaliseerd starten + + + Set SSL root certificates for payment request (default: -system-) + Stel SSL root certificaten in voor betalingsverzoek (standaard: -systeem-) + + + OK + Akkoord + + + + Intro + + Welcome + Welkom + + + Welcome to PIVX Core. + Welkom bij PIVX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Aangezien dit de eerste keer is dat het programma is gestart, kun je kiezen waar PIVX Core zijn data opslaat. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core zal een kopie van de PIVX blockchain downloaden en opslaan. Tenminste %1GB aan data zal worden opgeslagen in deze map en het zal over de tijd groeien. De portemonnee zal ook in deze map worden opgeslagen. + + + Use the default data directory + Gebruik de standaard datafolder + + + Use a custom data directory + Gebruik een aangepaste gegevenslocatie + + + CANCEL + Annuleren + + + OK + Akkoord + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Fout: opgegeven data directory "%1" kan niet worden gemaakt. + + + Error + Error + + + %1 GB of free space available + %1 GB beschikbare schijfruimte + + + (of %1 GB needed) + (van de %1 GB benodigd) + + + + LoadingDialog + + Form + Formulier + + + TextLabel + TextLabel + + + Loading + Aan het laden + + + . + . + + + + LockUnlock + + Form + Formulier + + + Unlock Wallet + Portemonnee Ontgrendelen + + + Lock Wallet + Portemonnee Vergrendelen + + + Staking Only + Alleen Staking + + + + MNRow + + Form + Formulier + + + user_masternode + user_masternode + + + Address: 88.26.164.88:51474 + Adres: 88.26.164.88:51474 + + + Jan. 19, 2019 + Jan. 19, 2019 + + + + MasterNodeWizardDialog + + Dialog + Dialoog + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + Intro + Intro + + + Name + Naam + + + Address + Adres + + + Create New Master Node Controller + Creëer een Nieuwe Masternode Controller + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + <html><head/><body><p>Om een PIVX Masternode te maken moet u 10.000 PIV (de eenheid van PIVX) aan het netwerk wijden (deze munten zijn echter nog steeds van u en zullen nooit uw bezit verlaten). </p><p></p><p>U kunt de node op elk gewenst moment deactiveren en de munten ontgrendelen.</p></body></html> + + + Make sure you have this amount of coins. + Zorg ervoor dat je deze hoeveelheid munten hebt. + + + Set Master Node’s Name + Masternode's Naam instellen + + + <html><head/><body><p>A transaction of 10,000 PIV will be made</p><p>to a new empty address in your wallet.</p><p>The Address is labeled under the master node's name.</p></body></html> + <html><head/><body><p>Een transactie van 10,000 PIV zal gemaakt worden</p><p>naar een nieuw leeg adres in uw portemonnee.</p><p>Het adres is gelabeld onder de masternode's naam.</p></body></html> + + + Set Master Node’s IP and port + Masternode's IP en poort instellen + + + Address of the node that must always be online running the actual master node. + Adres van de node dat altijd online moet zijn met het eigenlijke masternode. + + + Enter IP address + Voer IP-adres in + + + Enter Port + Voer Poort In + + + CANCEL + Annuleren + + + OK + Akkoord + + + e.g user_masternode + e.g user_masternode + + + NEXT + VOLGENDE + + + BACK + TERUG + + + address label cannot be empty + Adreslabel kan niet leeg zijn + + + IP or port cannot be empty + IP of poort kan niet leeg zijn + + + Invalid port number + Ongeldige poortnummer + + + Prepare master node failed.. + Voorbereiden masternode mislukt.. + + + Invalid masternode.conf file + Invalide masternode.conf file + + + Error parsing masternode.conf file + Fout opgelopen bij het parsen van het masternode.conf bestand + + + Invalid collaterall output index + Ongeldige Collaterale Outputindex + + + Master node created! + Masternode aangemaakt! + + + masternode.conf file doesn't exists + masternode.conf bestand bestaat niet + + + The recipient address is not valid, please recheck. + Het ontvangstadres is niet geldig, controleer deze. + + + The amount to pay must be larger than 0. + Het te betalen bedrag moet groter zijn dan 0. + + + The amount exceeds your balance. + Het bedrag overschrijdt uw saldo. + + + The total exceeds your balance when the %1 transaction fee is included. + Het totaal overschrijdt uw saldo wanneer de transactievergoeding %1 is inbegrepen. + + + Duplicate address found, can only send to each address once per send operation. + Dubbel adres gevonden, kan alleen per keer per verzendoperatie naar elk adres versturen. + + + Transaction creation failed! + Transactie creatie mislukt! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + De transactie is afgewezen! Dit kan gebeuren als sommige munten in je portemonnee al waren uitgegeven, zoals als je een kopie van de wallet.dat en munten in de kopie waren besteed maar niet gemarkeerd zoals hier besteed. + + + Error: The wallet was unlocked only to anonymize coins. + Fout: De portemonnee was alleen geopend om munten te anonimiseren. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + Een vergoeding %1 keer hoger dan %2 per kB wordt beschouwd als een zwaar hoge vergoeding. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Fout: De portemonnee was alleen geopend om munten te anonimiseren. Ontgrendelen geannuleerd. + + + + MasterNodesWidget + + Form + Formulier + + + TextLabel + TextLabel + + + No active Master Node yet + Nog geen actieve Master Node + + + PushButton + Druk Knop + + + Masternodes + Masternodes + + + Full nodes that incentivize node operators to perform the core consensus functions +and vote on the treasury system receiving a periodic reward. + Volledige nodes die node-operators stimuleren om de belangrijkste consensusfuncties uit te voeren. +en stemmen over het treasury systeem met een periodieke beloning. + + + Create Masternode Controller + Creëer Masternode Controller + + + No active Masternode yet + Geen actieve Masternode + + + Start + Start + + + Delete + Wissen + + + Info + Info + + + Start Masternode + Start Masternode + + + Are you sure you want to start masternode %1? + + Weet u zeker dat u masternode %1 wilt starten? + + + + Cannot start masternode, the collateral transaction has not been accepted by the network. +Please wait few more minutes. + Kan de masternode niet starten, de collaterale transactie is niet geaccepteerd door het netwerk. +Gelieve nog enkele minuten te wachten. + + + Remote Masternode Data + Remote Masternodegegevens + + + You are just about to export the required data to run a Masternode +on a remote server to your clipboard. + + +You will only have to paste the data in the pivx.conf file +of your remote server and start it, then start the Masternode using +this controller wallet (select the Masternode in the list and press "start"). + + U staat op het punt om de vereiste gegevens te exporteren om een Masternode uit te voeren. +op een externe server aan uw klembord. + + +U hoeft alleen de gegevens in het pivx.conf bestand te plakken +van uw externe server en start deze vervolgens de Masternode met +deze controller portemonnee (selecteer de Masternode in de lijst en druk op "start"). + + + Masternode exported!, check your clipboard + Masternode geëxporteerd, controleer uw klembord + + + Delete Masternode + Verwijder Masternode + + + You are just about to delete Masternode: +%1 + +Are you sure? + Je staat op het punt om volgende Masternode te verwijderen: +%1 + +Weet je het zeker? + + + Invalid masternode.conf file + Invalide masternode.conf file + + + Error parsing masternode.conf file + Fout opgelopen bij het parsen van het masternode.conf bestand + + + masternode.conf file doesn't exists + masternode.conf bestand bestaat niet + + + Not enough balance to create a masternode, 10,000 PIV required. + Niet genoeg balans om een masternode te creëren, 10,000 PIV vereist. + + + Error creating masternode + Error in het aanmaken van de masternode + + + + MnInfoDialog + + Form + Formulier + + + Master Node Information + Masternode Informatie + + + Public Key: + Publieke Sleutel: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Address: + Adres: + + + 127.0.0.2:43223 + 127.0.0.2:43223 + + + Collaterall tx id: + Collaterale tx id: + + + Output index: + Outputindex: + + + 1 Inputs + 1 Invoer + + + Status: + Status: + + + MISSING + ONTBREKEND + + + Export data to run the Master Node on a remote server + Exporteer data om de Masternode uit te voeren op een externe server + + + + MyAddressRow + + Form + Formulier + + + Savings + Besparingen + + + Jan. 19, 2019 + Jan. 19, 2019 + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + NavMenuWidget + + Form + Formulier + + + V 1.0.0 + V 1.0.0 + + + v%1 + v%1 + + + + OpenURIDialog + + Open URI + URI openen + + + Open payment request from URI or file + Open betalingsverzoek van URL of bestand + + + TextLabel + TextLabel + + + CANCEL + Annuleren + + + OK + Akkoord + + + Select payment request file + Selecteer betalingsverzoek bestand + + + Select payment request file to open + Selecteer betalingsverzoek bestand dat geopend moet worden + + + File not found + Bestand niet gevonden + + + Parsed data too large + Ingelezen data te groot + + + Invalid URI, not starting with "pivx" prefix + Ongeldige URI, begint niet met de "pivx" prefix + + + + OptionButton + + Form + Formulier + + + TextLabel + TextLabel + + + + OptionsDialog + + Options + Opties + + + &Main + &Algemeen + + + Size of &database cache + Grootte van cache &gegevens + + + MB + MB + + + Number of script &verification threads + Aantal script en verificatie threads + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = laat dat aantal cores vrij) + + + W&allet + P&ortemonnee + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + Als je de uitgaven van onbevestigde wijzigingen uitschakelt, de wijziging van een transactie<br/>kan niet worden gebruikt tot die transactie tenminste één bevestiging heeft.<br/>Dit beïnvloedt ook hoe uw saldo is berekend. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Open de PIVX client poort automatisch op de router. Dit werkt alleen als je router UPnP ondersteunt en het is ingeschakeld. + + + Accept connections from outside + Accepteer externe connecties + + + Allow incoming connections + Sta inkomende connecties toe + + + &Connect through SOCKS5 proxy (default proxy): + & Verbind via SOCKS5 proxy (standaard proxy): + + + Expert + Expert + + + Automatically start PIVX after logging in to the system. + PIVX automatisch opstarten na inloggen op het systeem. + + + &Start PIVX on system login + &PIVX starten bij systeemlogin + + + Whether to show coin control features or not. + Of je de muntcontrolefuncties wilt tonen of niet. + + + Enable coin &control features + Munt- en controlefuncties inschakelen + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Toon extra tabblad waarin al je masternodes worden vermeld in het eerste sub-tabblad<br/>en alle masternodes op het netwerk in het tweede sub-tabblad. + + + Show Masternodes Tab + Toon Masternodes Tab + + + &Spend unconfirmed change + & Besteed onbevestigd wisselgeld + + + &Network + &Netwerk + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + De gebruikersinterface taal kan hier ingesteld worden. Deze instelling zal uitgevoerd na herstart van PIVX. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Taal ontbreekt of vertaling onvolledig? Help om bij te dragen aan vertalingen: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Map poort gebruikt &UPnP + + + Enable automatic minting of PIV units to zPIV + Schakel automatisch slaan van PIV-eenheden in op zPIV + + + Enable zPIV Automint + Schakel zPIV Automint in + + + Enable automatic zPIV minting from specific addresses + Automatische zPIV munting inschakelen vanuit specifiek adres + + + Enable Automint Addresses + Automint Adressen Inschakelen + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Percentage inkomende PIV die automatisch wordt omgezet naar zPIV via Zerocoin Protocol (min: 10%) + + + Percentage of autominted zPIV + Percentage autominted zPIV + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Wacht met automatische omzetting naar Zerocoin totdat er genoeg PIV voor deze denominatie beschikbaar is + + + Preferred Automint zPIV Denomination + Gewenste Automint zPIV denominatie + + + Stake split threshold: + Inzet splitdrempel: + + + Connect to the PIVX network through a SOCKS5 proxy. + Maak verbinding met het PIVX netwerk via een SOCKS5 proxy. + + + Proxy &IP: + Proxy &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP adres van de proxy (bijvoorbeeld IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Poort: + + + Port of the proxy (e.g. 9050) + Proxy-poort (v.b. 9050) + + + &Window + &Venster + + + Show only a tray icon after minimizing the window. + Toon alleen een tray icoon na minimalisering van het venster. + + + &Minimize to the tray instead of the taskbar + & Minimaliseer naar de tray in plaats van de taakbalk + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Minimaliseer in plaats van de applicatie te verlaten wanneer het venster wordt gesloten. Wanneer deze optie is ingeschakeld, wordt de applicatie alleen gesloten nadat in het menu Quit wordt gekozen. + + + M&inimize on close + Minimaliseer bij sluiten + + + &Display + &Weergave + + + User Interface &language: + Gebruiksinterface &language: + + + User Interface Theme: + Gebruiksinterface thema: + + + Unit to show amounts in: + Eenheid om hoeveelheid in te weergeven: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Kies de standaard onderverdelingseenheid die in de interface wordt weergegeven en bij het verzenden van munten. + + + Decimal digits + Decimale cijfers + + + Hide empty balances + Verberg lege saldi + + + Hide orphan stakes in transaction lists + Verberg orphan stakes in transactielijsten + + + Hide orphan stakes + Verberg orphan stakes + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + URL's van derden (bijvoorbeeld een blok verkenner) die in het tabblad transacties verschijnen als contextmenu items. %s in de URL wordt vervangen door transactie hash. Meerdere URL's worden gescheiden door verticale balk |. + + + Third party transaction URLs + Transactie URL's van derden + + + Active command-line options that override above options: + Actieve command line opties die bovenstaande opties overschrijven: + + + Reset all client options to default. + Reset alle client instellingen naar standaardinstellingen. + + + &Reset Options + &Herstellings Opties + + + &OK + &OK + + + &Cancel + &Annuleren + + + Any + een + + + default + standaard + + + none + geen + + + Confirm options reset + Bevestig reset instellingen + + + Client restart required to activate changes. + Client herstart vereist om wijzigingen te activeren. + + + Client will be shutdown, do you want to proceed? + Client wordt uitgeschakeld, wil je doorgaan? + + + This change would require a client restart. + Deze wijziging vereist een herstart van de client. + + + The supplied proxy address is invalid. + Het opgegeven proxyadres is ongeldig. + + + The supplied proxy port is invalid. + De meegeleverde proxy-poort is ongeldig. + + + The supplied proxy settings are invalid. + De geleverde proxy-instellingen zijn ongeldig. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + Portemonnee + + + Node + Node + + + &Show / Hide + &Tonen / Verbergen + + + Show or hide the main Window + Toon of verberg het hoofdvenster + + + E&xit + S&luiten + + + Quit application + Programma afsluiten + + + PIVX Core client + PIVX Core client + + + Error + Error + + + Warning + Waarschuwing + + + Information + Informatie + + + System Message + Systeembericht + + + Sent MultiSend transaction + Verzonden MultiSend transactie + + + Sent transaction + Verzend transactie + + + Incoming transaction + Inkomende transactie + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Datum: %1 +Hoeveelheid: %2 +Type: %3 +Adres: %4 + + + + A fatal error occurred. PIVX can no longer continue safely and will quit. + Een kritieke fout is opgelopen. PIVX kan niet langer veilig uitgevoerd worden en zal afsluiten. + + + + PWidget + + Wallet locked, you need to unlock it to perform this action + Portemonnee vergrendeld, je moet deze ontgrendelen om deze actie te kunnen uitvoeren + + + + PaymentServer + + Payment request error + Fout bij betalingsverzoek + + + URI handling + URL behandeling + + + Payment request fetch URL is invalid: %1 + Betalingsverzoek ophalen URL is ongeldig: %1 + + + Payment request file handling + Betalingsaanvraag bestandsverwerking + + + Invalid payment address %1 + Ongeldig betalingsadres %1 + + + Cannot start pivx: click-to-pay handler + Kan pivx niet starten: click-to-pay handler + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URL kan niet ontleed worden! Dit kan worden veroorzaakt door een ongeldig PIVX adres of misvormde URL parameters. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Uw betalingsverzoek kan niet worden gelezen! Dit kan worden veroorzaakt door een ongeldig betalingsverzoek bestand. + + + Payment request rejected + Betalingsverzoek afgewezen + + + Payment request network doesn't match client network. + Het betalingsverzoek netwerk komt niet overeen met het client netwerk. + + + Payment request has expired. + Betalingsverzoek is verlopen. + + + Payment request is not initialized. + Betalingsverzoek is niet geïnitialiseerd. + + + Unverified payment requests to custom payment scripts are unsupported. + Niet geverifieerde betalingsverzoeken naar aangepaste betaal scripts worden niet ondersteund. + + + Requested payment amount of %1 is too small (considered dust). + Gevraagd betalingsbedrag van %1 is te klein (beschouwd als dust). + + + Refund from %1 + Terugbetaling van %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Betalingsverzoek %1 is te groot (%2 bytes, toegestaan %3 bytes). + + + Payment request DoS protection + Betalingsverzoek DoS bescherming + + + Error communicating with %1: %2 + Fout communiceren met %1: %2 + + + Payment request cannot be parsed! + Betalingsaanvraag kan niet worden geanalyseerd! + + + Bad response from server %1 + Bad response van server %1 + + + Network request error + Netwerkverzoek fout + + + Payment acknowledged + Betaling erkend + + + + PeerTableModel + + Address/Hostname + Adres/Hostnaam + + + Version + Versie + + + Ping Time + Pingtijd + + + + PrivacyWidget + + Form + Formulier + + + Title + Tietel + + + TextLabel + TextLabel + + + PushButton + Druk Knop + + + No active Master Node yet + Nog geen actieve Master Node + + + Privacy + Privacy + + + Convert + Converteren + + + Mint + Munt + + + Minting zPIV anonymizes your PIV by removing any +transaction history, making transactions untraceable + Munten van zPIV anonimiseert uw PIV door het verwijderen van eender welke +transactiegeschiedenis, waardoor transacties niet meer te traceren zijn + + + Mint new zPIV or convert back to PIV + Munt nieuwe zPIV of converteer deze terug in PIV + + + Last Zerocoin Movements + Laatste Zerocoin Bewegingen + + + No transactions yet + Nog geen transacties + + + Mint zPIV + Munt zPIV + + + Enter amount of PIV to mint into zPIV + Vul de hoeveelheid PIV in die u omslaan in zPIV + + + Convert back to PIV + Converteer terug naar PIV + + + Enter amount of zPIV to convert back into PIV + Voer de hoeveelheed zPIV in om terug te converteren naar PIV + + + Zerocoin + Zerocoin + + + zPIV is currently undergoing maintenance + zPIV ondergaat momenteel onderhoud + + + You need to unlock the wallet to be able to %1 zPIV + Je moet de portemonnee ontgrendelen om in staat zijn om %1 zPIV + + + convert + converteer + + + mint + munt + + + Invalid value + Ongeldige waarde + + + zPIV minted successfully + zPIV munting succesvol + + + zPIV converted back to PIV + zPIV terug geconverteerd naar PIV + + + You don't have any PIV to select. + Je hebt geen PIV om te selecteren + + + Rescan Mints + Muntingen opnieuw scannen + + + Your zerocoin mints are going to be scanned from the blockchain from scratch + Uw zerocoin muntingen zullen van de blockchain vanaf nul worden gescanned + + + Reset Spent Zerocoins + Bestede Zerocoins Resetten + + + Your zerocoin spends are going to be scanned from the blockchain from scratch + Uw zerocoin bestedingen zullen van de blockchain vanaf nul worden gescanned + + + Total %1 + Totaal %1 + + + + ProposalFrame + + Open proposal page in browser + Voorstelpagina in browser openen + + + remaining payment(s). + resterende betaling(en). + + + Yes: + Voor: + + + Abstain: + Onthouden: + + + No: + Tegen: + + + A proposal URL can be used for phishing, scams and computer viruses. Open this link only if you trust the following URL. + + Een voorstel-URL kan worden gebruikt voor phishing, oplichting en computervirussen. Open deze link alleen als u de volgende URL vertrouwt. + + + + Open link + Link openen + + + Copy link + Link kopiëren + + + Wallet Locked + Portemonnee Vergrendeld + + + You must unlock your wallet to vote. + Je moet uw portemonnee ontgrendelen om te stemmen. + + + Do you want to vote %1 on + Wil je stemmen op %1 + + + using all your masternodes? + al je masternodes gebruiken? + + + Proposal Hash: + Voorstel Hash: + + + Proposal URL: + Voorstel URL: + + + Confirm Vote + Stem bevestigen + + + Vote Results + Stemresultaten + + + + QObject + + Amount + Bedrag + + + Enter a PIVX address (e.g. %1) + Voer een PIVX adres in (b.v. %1) + + + %1 d + %1 d + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + NETWERK + + + BLOOM + BLOOM + + + ZK_BLOOM + ZK_BLOOM + + + UNKNOWN + ONBEKEND + + + None + Geen + + + N/A + NB + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" does not exist. + Fout: De opgegeven gegevensmap "%1" bestaat niet. + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + Fout: Kan het configuratiebestand niet parsen: %1. Gebruik alleen sleutel=waarde syntaxis. + + + Error: Invalid combination of -regtest and -testnet. + Fout: Ongeldige combinatie van -regtest en -testnet. + + + Error reading masternode configuration file: %1 + Fout bij het lezen van het masternode configuratiebestand: %1 + + + PIVX Core didn't yet exit safely... + PIVX Core is nog niet veilig afgesloten... + + + + RPCConsole + + Tools window + Tools venster + + + &Information + &Informatie + + + General + Algemeen + + + Name + Naam + + + Client name + Client naam + + + N/A + NB + + + Number of connections + Aantal connecties + + + &Open + &Open + + + Startup time + Opstarttijd + + + Network + Netwerk + + + Last block time + Laatste blocktijd + + + Debug log file + Debug logbestand + + + Build date + Bouwdatum + + + Current number of blocks + Huidige blockaantal + + + Client version + Client versie + + + Using BerkeleyDB version + Gebruikt BerkeleyDB versie + + + Block chain + Blockchain + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Open het PIVX debug log bestand uit de huidige data directory. Dit kan enkele seconden duren voor grote logbestanden. + + + Number of Masternodes + Aantal Masternodes + + + Data Directory + Gegevenslocatie + + + Last block hash + Laatste blokhash + + + &Console + &Console + + + Clear console + Console leegmaken + + + &Network Traffic + &Netwerk verkeer + + + &Clear + &Leegmaken + + + Totals + Totalen + + + Received + Ontvangen + + + Sent + Verstuurd + + + &Peers + &Peers + + + Banned peers + Verboden leeftijdsgenoten + + + Select a peer to view detailed information. + Selecteer een peer om gedetailleerde informatie te bekijken. + + + Whitelisted + Whitelisted + + + Direction + Richting + + + Protocol + Protocol + + + Version + Versie + + + Services + Diensten + + + Ban Score + Ban score + + + Connection Time + Connectietijd + + + Last Send + Laatst Verzonden + + + Last Receive + Laatst Ontvangen + + + Bytes Sent + Verzonden Bytes + + + Bytes Received + Ontvangen Bytes + + + Ping Time + Pingtijd + + + &Wallet Repair + &Portemonnee herstel + + + Delete local Blockchain Folders + Verwijder lokale Blockchain Mappen + + + Wallet In Use: + Portemonnee in gebruik: + + + Starting Block + Startblok + + + Synced Headers + Gesynchroniseerde headers + + + Synced Blocks + Gesynchroniseerde blokken + + + The duration of a currently outstanding ping. + De duur van een momenteel openstaande ping. + + + Ping Wait + Ping wacht + + + Time Offset + Tijdverschuiving + + + Custom Backup Path: + Aangepast back-up pad: + + + Custom zPIV Backup Path: + Aangepast zPIV back-up pad: + + + Custom Backups Threshold: + Aangepaste back-up drempel: + + + Salvage wallet + Red portemonnee + + + Attempt to recover private keys from a corrupt wallet.dat. + Poog om privé sleutels terug te halen uit een corrupte wallet.dat. + + + Rescan blockchain files + Herscan blockchain bestanden + + + Rescan the block chain for missing wallet transactions. + Herscan de blockchain voor ontbrekende portemonnee transacties. + + + Recover transactions 1 + Herstel transacties 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Herstel transacties van blockchain (houd meta-data, bijvoorbeeld account eigenaar). + + + Recover transactions 2 + Herstel transacties 2 + + + Recover transactions from blockchain (drop meta-data). + Herstel transacties van blockchain (laat meta-data vallen). + + + Upgrade wallet format + Upgrade portemonnee format + + + Rebuild block chain index from current blk000??.dat files. + Herstel blockchain index van huidige blk000??.dat bestanden. + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Verwijder alle lokale blockchain mappen zodat de portemonnee alles opnieuw kan hersynchroniseren. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + De onderstaande knoppen zullen de portemonnee opnieuw opstarten met command line opties om de portemonnee te repareren, problemen op te lossen met corrupte blockchain bestanden of ontbrekende/verouderde transacties. + + + Wallet repair options. + Portemonnee herstelopties. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Upgrade portemonnee naar nieuwste format bij opstarten. (Opmerking: dit is NIET een update van de portemonnee zelf!) + + + Rebuild index + Herbouw index + + + In: + In: + + + Out: + Uit: + + + Welcome to the PIVX RPC console. + Welkom bij de PIVX RPC console. + + + &Disconnect Node + & Koppel Node los + + + Ban Node for + Ban Node voor + + + 1 &hour + 1 &hour + + + 1 &day + 1 &day + + + 1 &week + 1 &week + + + 1 &year + 1 &year + + + &Unban Node + & Veel succes + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Dit zal al jouw lokale blockchain mappen verwijderen en de portemonnee zal de blockchain helemaal opnieuw synchroniseren.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Dit vergt nogal wat tijd en downloadt veel data.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Uw transacties en tegoeden zijn opnieuw zichtbaar nadat het downloaden is voltooid.<br /><br /> + + + Do you want to continue?.<br /> + Wil je verdergaan? + + + Confirm resync Blockchain + Bevestig hersynchronisering van Blockchain + + + Use up and down arrows to navigate history, and %1 to clear screen. + Gebruik omhoog en omlaag pijltjestoetsen om door de geschiedenis te navigeren en %1 om het scherm te wissen. + + + Type <b>help</b> for an overview of available commands. + Type <b>help </b>voor een overzicht van beschikbare commando's. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + WAARSCHUWING: Er zijn oplichters actief geweest, die gebruikers vertellen dat ze hier commando's moeten typen waarmee ze de inhoud van hun portemonnee konden stelen. Gebruik deze console niet zonder de gevolgen van een commando volledig te begrijpen. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (node id: %1) + + + via %1 + via %1 + + + never + nooit + + + Inbound + Inkomende + + + Outbound + Uitgaande + + + Yes + ja + + + No + Nee + + + Unknown + Ongekend + + + + ReceiveDialog + + Dialog + Dialoog + + + Transaction Details + Transactie details + + + PushButton + Druk Knop + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + Annuleren + + + OK + Akkoord + + + + ReceiveWidget + + Form + Formulier + + + TextLabel + TextLabel + + + No address + Geen adres + + + Add Label + Label Toevoegen + + + Generate Address + Adres Genereren + + + Copy + Kopieren + + + Receive + Ontvangen + + + Scan the QR code or copy the address to receive PIV. + Scan de QR code of kopieer het adres om PIV te ontvangen. + + + No address + Geen adres + + + No available address, try unlocking the wallet + Geen beschikbaar adres, probeer de portemonnee te ontgrendelen + + + Error generating address + Genereren van adres misgelopen + + + Change Label + Wijzig Label + + + Edit Address Label + Bewerk Adreslabel + + + Address label saved + Adreslabel opgeslagen + + + Error storing address label + Fout bij bewaren adreslabel + + + New address created + Nieuw adres gecreëerd + + + Address copied + Adres gekopieerd + + + URI copied to clipboard + URI gekopieerd naar klembord + + + Address copied to clipboard + Adres gekopieerd naar klembord + + + + RecentRequestsTableModel + + Date + Datum + + + Label + Label + + + Message + Bericht + + + Address + Adres + + + Amount + Bedrag + + + (no label) + (geen label) + + + (no message) + (geen bericht) + + + (no amount) + (geen hoeveelheid) + + + + RequestDialog + + Dialog + Dialoog + + + New Request Payment + Nieuw Betalingsverzoek + + + Lorem ipsum dolor sit amet, consectur cling elit, sed do + Lorem ipsum dolor sit amet, consectur cling elit, sed do + + + Amount + Bedrag + + + PIV + PIV + + + TextLabel + TextLabel + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + COPY ADDRESS + KOPIEER ADRES + + + COPY URL + KOPIEER URL + + + CANCEL + Annuleren + + + REQUEST + VERZOEK + + + Instead of only sharing a PIVX address, you can create a Payment Request message which bundles up more information than is contained in just a PIVX address. + In plaats van een PIVX-adres te delen, kunt u een bericht voor een betalingsverzoek maken dat meer informatie bundelt dan alleen in een PIVX-adres. + + + Label + Label + + + Enter a label to be saved within the address + Voer een label in dat bij het adres moet worden opgeslagen + + + Description (optional) + Omschrijving (optioneel) + + + Add description + Voeg beschrijving toe + + + Error + Error + + + GENERATE + GENEREER + + + Creates an address to receive coin delegations and be able to stake them. + Maak een adres aan om muntdelegaties te ontvangen en deze te kunnen staken. + + + New Cold Staking Address + Nieuw Cold Staking Adres + + + + SendChangeAddressDialog + + Dialog + Dialoog + + + Transaction Details + Transactie details + + + PushButton + Druk Knop + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + Annuleren + + + OK + Akkoord + + + Custom Change Address + Aangepast wijzigingsadres + + + The remainder of the value resultant from the inputs minus the outputs value goes to the "change" PIVX address + De rest van de waarde die resulteert uit de ingangen minus de waarde van de uitgangen gaat naar het "wijzig" PIVX-adres + + + + SendCustomFeeDialog + + Form + Formulier + + + Transaction Details + Transactie details + + + Customize the transaction fee at your to your liking, depending on the fee value your transaction will be included or not in the blockchain. + Pas de transactiekosten naar wens aan, afhankelijk van de kostenwaarde die uw transactie wel of niet in de blockchain zal opnemen. + + + Recomended + Aanbevolen + + + 0.00 KB + 0.00 KB + + + Custom + Aangepast + + + Per kilobyte + Per kilobyte + + + CANCEL + Annuleren + + + OK + Akkoord + + + Customize Fee + Kost Aanpassen + + + Customize the transaction fee, depending on the fee value your transaction will be included or not in the blockchain. + Pas de transactiekosten aan, afhankelijk van de kostenwaarde die uw transactie wel of niet in de blockchain zal opnemen. + + + Normal + Normaal + + + Slow + Traag + + + Fast + Snel + + + SAVE + Opslaan + + + + SendMultiRow + + Form + Formulier + + + TextLabel + TextLabel + + + Add address + Adres toevoegen + + + Add description + Beschrijving toevoegen + + + + SendWidget + + Send + Zenden + + + You can transfer public coins (PIV) or private coins (zPIV) + Je kan publieke munten (PIV) of private munten (zPIV) overdragen + + + Select coin type to spend + Selecteer munttype om te spenderen + + + Enter a PIVX address or contact label + Voer een PIVX-adres of contactlabel in + + + Amount + Bedrag + + + Customize fee + Kosten aanpassen + + + Clear all + Alles wissen + + + Add recipient + Voeg bestemmeling toe + + + Reset to default + Terugzetten naar standaardinstelling + + + Total to send + Totaal te versturen + + + Send PIV + PIV Versturen + + + Send zPIV + zPIV Versturen + + + Total remaining from the selected UTXO + Totaal resterende van de geselecteerde UTXO + + + Total remaining + Totaal resterende + + + Customize Fee + Kost Aanpassen + + + Maximum amount of outputs reached + Maximum aantal uitvoeren bereikt + + + Invalid entry, previous entries must be valid before add a new one + Ongeldige invoer, vorige invoeren moeten geldig zijn voordat je een nieuwe kan toevoegen + + + Invalid entry + Ongeldige invoer + + + No set recipients + Geen ontvangers ingesteld + + + Cannot send, wallet locked + Kan niet verzenden, portemonnee vergrendeld + + + Cannot create transaction. + Kan geen transactie aanmaken. + + + WARNING: +Transaction spends a cold-stake delegation, voiding it. +These coins will no longer be cold-staked. + WAARSCHUWING: +Transactie besteedt een cold-stake delegatie om deze te vernietigen +Deze munten zullen niet langer cold-staked zijn. + + + Transaction sent + Transactie verstuurd + + + Spend Zerocoin + Besteed Zerocoin + + + zPIV is currently undergoing maintenance. + zPIV wordt momenteel onderhouden. + + + Coin control mint not found + Muntcontrole munting niet gevonden + + + Sending %1 to address %2 + + Versturen van %1 naar adres %2 + + + + Sending %1 to addresses: +%2 + Versturen van %1 naar adressen: +%2 + + + zPIV transaction sent! + zPIV transactie verzonden! + + + Version 1 zPIV require a security level of 100 to successfully spend. + Versie 1 zPIV vereist een beveiligingsniveau van 100 om succesvol te besteden. + + + Too much inputs ( + Teveel invoer ( + + + ) needed. +Maximum allowed: + ) vereist. +Maximaal toegestaan: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te besteden bedrag verminderen. + + + Address label update failed for address: %1 + Adreslabel bijwerken mislukt voor adres: %1 + + + Invalid change address + Ongeldig wisseladres + + + Invalid URI + Ongeldige URI + + + Invalid address in URI + Ongeldig adres in URI + + + Custom Fee %1 + Aangepaste Kost %1 + + + You don't have any PIV to select. + Je hebt geen PIV om te selecteren + + + You don't have any zPIV in your balance to select. + Je hebt geen zPIV in je balans om te selecteren. + + + No contacts available, you can go to the contacts screen and add some there! + Geen beschikbare contacten, je kan naar het contactscherm gaan en daar enkele toevoegen! + + + Save contact + Contact opslaan + + + Address field is empty + Adresveld is leeg + + + Invalid address + Ongeldig adres + + + Cannot store your own address as contact + Kan uw eigen adres niet als contact opslaan + + + Update Contact + Contact bijwerken + + + Create New Contact + Creëer Nieuw Contact + + + New Contact Stored + Nieuw contact opgeslagen + + + Error Storing Contact + Fout bij het opslaan van contact + + + + SettingsBackupWallet + + Form + Formulier + + + TextLabel + TextLabel + + + PushButton + Druk Knop + + + Backup Wallet + Wallet Back-uppen + + + Change Wallet Passphrase + Wijzig Portemonnee Wachtwoord + + + Keep your wallet safe doing regular backups, store your backup file externally. +This option creates a wallet.dat file that can be used to recover your whole balance (transactions and addresses) from another device. + Bewaar uw portemonnee veilig door middel van regelmatige back-ups, bewaar uw back-upbestand extern. +Deze optie maakt een portemonnee.datbbestand aan dat kan worden gebruikt om uw volledige saldo (transacties en adressen) van een ander apparaat terug te krijgen. + + + This will decrypt the whole wallet data and encrypt it back with the new passphrase. +Remember to write it down and store it safely, otherwise you might lose access to your funds. + Dit zal de gehele portemonneegegevens decrypteren en zal opnieuw encrypteren met een nieuwe wachtwoordzin. +Vergeet deze niet op te schrijven en veilig te bewaren, anders verlies je mogelijks de toegang tot uw geld. + + + Where + Waar + + + Set a folder location + Maplocatie instellen + + + Backup + Back-up + + + Change Passphrase + Wijzig Wachtwoord + + + Backup Wallet + Backup portemonnee + + + Wallet Data (*.dat) + Portemonneegegevens (*.dat) + + + Backup created + Back-up aangemaakt + + + Backup creation failed + Aanmaak back-up mislukt + + + Please select a folder to export the backup first. + Selecteer eerst een map om de back-up te exporteren. + + + + SettingsBitToolWidget + + Form + Formulier + + + TextLabel + TextLabel + + + PushButton + Druk Knop + + + Decrypt Address Result + Decrypteer Adresresultaat + + + Import Address + Adres Importeren + + + Clear + Leegmaken + + + BIP38 Tool + BIP38 Tool + + + Encrypt + Encrypteer + + + Decrypt + Decrypteer + + + Encrypted key + Geëncrypteerde sleutel + + + Enter a encrypted key + Voer een geëncrypteerde sleutel in + + + Passphrase + Wachtwoord + + + Enter a passphrase + Voer wachtwoord in + + + Decrypted address result + Gedecrypteerd Adresresultaat + + + Decrypted Address + Gedecrypteerd Adres + + + DECRYPT KEY + DECRYPTEER SLEUTEL + + + Enter a PIVX address + Voeg een PIVX adres toe + + + Add address + Adres toevoegen + + + Write a message + Schrijf een bericht + + + Encrypted Key + Geëncrypteerde sleutel + + + ENCRYPT + Versleutelen + + + CLEAR ALL + WIS ALLES + + + CLEAR + WIS + + + The entered passphrase is invalid. + De ingevoerde wachtwoordzin is ongeldig. + + + Allowed: 0-9,a-z,A-Z, + Toegestaan: 0-9,a-z,A-Z + + + The entered address is invalid. + Het ingevoerde adres is ongeldig. + + + Please check the address and try again. + Controleer het adres en probeer het opnieuw. + + + The entered address does not refer to a key. + Het opgegeven adres verwijst niet naar een sleutel. + + + Wallet unlock was cancelled. + Portemonnee ontsleuteling is geannuleerd. + + + Private key for the entered address is not available. + Privé sleutel voor het ingevoerde adres is niet beschikbaar. + + + Address encrypted. + Adres geëncrypteerd. + + + No addresses available, you can go to the receive screen and add some there! + Geen beschikbare adressen, je kan naar het ontvangstscherm gaan en daar enkele toevoegen! + + + Failed to decrypt. + Ontsleutelen mislukt. + + + Please check the key and passphrase and try again. + Controleer de sleutel en de wachtwoordzin en probeer het opnieuw. + + + Data Not Valid. + Gegevens ongeldig. + + + Please try again. + Probeer het opnieuw. + + + Please wait while key is imported + Wacht tot de sleutel is geïmporteerd + + + Cannot import address, key already held by the wallet + Kan adres niet importen, sleutel alreeds in de portemonnee + + + Error adding key to the wallet + Fout bij toevoegen van sleutel aan de portemonnee + + + Successfully added pivate key to the wallet + Geheime sleutel succesvol toegevoegd aan de portemonnee + + + + SettingsConsoleWidget + + Form + Formulier + + + TextLabel + TextLabel + + + Console + Console + + + Console input + Console invoer + + + Command Line Options + Command Line Opties + + + Open Debug File + Open debugbestand + + + Cannot open debug file. +Verify that you have installed a predetermined text editor. + Kan het debugbestand niet openen. +Controleer of u een vooraf bepaalde teksteditor hebt geïnstalleerd. + + + Welcome to the PIVX RPC console. + Welkom bij de PIVX RPC console. + + + Use up and down arrows to navigate history, and %1 to clear screen. + Gebruik omhoog en omlaag pijltjestoetsen om door de geschiedenis te navigeren en %1 om het scherm te wissen. + + + Type <b>help</b> for an overview of available commands. + Type <b>help </b>voor een overzicht van beschikbare commando's. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + WAARSCHUWING: Er zijn oplichters actief geweest, die gebruikers vertellen dat ze hier commando's moeten typen waarmee ze de inhoud van hun portemonnee konden stelen. Gebruik deze console niet zonder de gevolgen van een commando volledig te begrijpen. + + + + SettingsDisplayOptionsWidget + + Form + Formulier + + + TextLabel + TextLabel + + + PushButton + Druk Knop + + + Reset to default + Terugzetten naar standaardinstelling + + + Discard changes + Wijzigingen ongedaan maken + + + Display + Display + + + Customize the display view options + Pas de weergaveopties aan + + + Language + Taal + + + Unit to show amount + Eenheid om bedrag te tonen + + + Decimal digits + Decimale cijfers + + + Third party transactions URLs + Derde partij transactie URLs + + + Hide empty balances + Verberg lege saldi + + + SAVE + Opslaan + + + default + standaard + + + Options reset succeed + Opties succesvol gereset + + + + SettingsFaqWidget + + Form + Formulier + + + TextLabel + TextLabel + + + PushButton + Druk Knop + + + 1) What is PIVX? + 1) Wat is PIVX? + + + 2) Why are my PIV unspendable? + 2) Waarom is mijn PIV niet besteedbaar? + + + 3) PIVX privacy? What is Zerocoin (zPIV)? + 3) PIVX privacy? Wat is Zerocoin (zPIV)? + + + 4) Why are my zPIV unspendable? + 4) Waarom is mijn zPIV niet besteedbaar? + + + 5) Why did my wallet convert the balance + into zPIV automatically? + 5) Waarom heeft mijn portemonnee mijn balans + automatisch naar zPIV geconverteerd? + + + 6) How do I receive PIV/zPIV? + 6) Hoe ontvang ik PIV/zPIV? + + + 7) How do I stake PIV/zPIV? + 7) Hoe stake ik PIV/zPIV? + + + 8) Where I should go if I need support? + 8) Waar moet ik heen gaan als ik ondersteuning nodig heb? + + + 9) What is a Master Node? + 9) Wat is een Masternode? + + + 10) What is a Master Node Controller? + 10) Wat is een Master Node Controller? + + + 1 + 1 + + + What is PIVX? + Wat is PIVX? + + + + <html><head/><body><p align="justify"> + PIVX is a form of digital online money using blockchain technology + that can be easily transferred globally, instantly, and with near + zero fees. PIVX incorporates market leading security & + privacy and is also the first PoS (Proof of Stake) Cryptocurrency + to implement ZeroCoin(zPIV) and Zerocoin staking. + </p><p align="justify"> + PIVX utilizes a Proof of Stake (PoS) consensus system algorithm, + allowing all owners of PIVX to participate in earning block rewards + while securing the network with full node wallets, as well as to + run Masternodes to create and vote on proposals. + </p></body></html> + + + <html><head/><body><p align="justify"> + PIVX is een vorm van digitaal online geld dat gebruik maakt van blockchain technologie. + die gemakkelijk wereldwijd kan worden overgebracht, onmiddellijk en met bijna + geen kosten. PIVX omvat marktleidende beveiliging & + privacy en is ook de eerste PoS (Proof of Stake) Cryptovaluta + om ZeroCoin (zPIV) en Zerocoin staking te implementeren. + </p><p align="justify"> + PIVX gebruikt een Proof of Stake (PoS) consensussysteemalgoritme, + waardoor alle eigenaren van PIVX kunnen deelnemen aan het verdienen van blokbeloningen + en tegelijkertijd het netwerk te beveiligen met volledige node portemonnees, en ook om + Masternodes uit te voeren en om voorstellen op te stellen en daarover te stemmen. + </p></body></html> + + + + 2 + 2 + + + Why are my PIV unspendable? + Waarom is mijn PIV niet besteedbaar? + + + + <html><head/><body><p align="justify"> + Newly received PIVX requires 6 confirmations on the network + to become eligible for spending which can take ~6 minutes. + </p><p align="justify"> + Your PIVX wallet also needs to be completely synchronized + to see and spend balances on the network. + </p></body></html> + + + <html><head/><body><p align="justify"> + Nieuw ontvangen PIVX vereist 6 bevestigingen op het netwerk + om in aanmerking te komen voor uitgaven die ongeveer 6 minuten in beslag kunnen nemen. + </p><p align="justify"> + Uw PIVX portemonnee moet ook volledig gesynchroniseerd zijn + om de balans te zien en uit te geven op het netwerk. + </p></body></html> + + + + 3 + 3 + + + PIVX privacy? What is Zerocoin (zPIV)? + PIVX privacy? Wat is Zerocoin (zPIV)? + + + + <html><head/><body><p align="justify"> + zPIV is an optional privacy-centric method of coin mixing on the + PIVX blockchain. Basically all your transactions cannot be tracked + on to any block explorer. You can read more about the technicals in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "PIVX Zerocoin (zPIV) Technical Paper"</a>. + </p></body></html> + + + <html><head/><body><p align="justify"> + zPIV is een optionele privacy-gerichte methode om munten te mengen op de + PIVX blockchain. In principe kunnen al uw transacties niet worden gevolgd + op enige block explorer. U kunt meer lezen over de technische gegevens in de + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "PIVX Zerocoin (zPIV) Technische Paper"</a>. + </p></body></html> + + + + 4 + 4 + + + Why are my zPIV unspendable? + Waarom is mijn zPIV niet besteedbaar? + + + + <html><head/><body><p align="justify"> + After minting, zPIV will require 20 confirmations as well as 1 + additional mint of the same denomination on the network to + become eligible for spending. + </p></body></html> + + + <html><head/><body><p align="justify"> + Na het muntenheeft zPIV 20 bevestigingen nodig, evenals 1 + extra munt van dezelfde denominatie op het netwerk om + in aanmerking komen voor uitgaven. + </p></body></html> + + + + 5 + 5 + + + Why did my wallet convert the balance into zPIV automatically? + Waarom heeft mijn portemonnee mijn balans automatisch naar zPIV geconverteerd? + + + + <html><head/><body><p align="justify"> + By default the PIVX wallet will convert 10% of your entire PIV + balance to zPIV to assist the network. If you do not wish to + stake zPIV or take advantage of the privacy benefit it brings, + you can disable the automatic minting in your PIVX wallet by + going to Settings->Options and deselecting “Enable zPIV Automintâ€. + If you are not making use of the PIVX-QT or GUI you can simply open + your pivx.conf file and add <i>enablezeromint=0</i> Without the quotation + marks and restart your wallet to disable automint.</p> + </p><p align="justify"> + You can read more about zPIV in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> "PIVX Zerocoin (zPIV) Technical Paper"</a>. + If you would like to keep and stake your zPIV, please read the "How do I stake" + section of the FAQ below. + </p></body></html> + + + <html><head/><body><p align="justify"> + Standaard zal de PIVX portemonnee 10% van uw gehele PIV-balans omzetten + naar zPIV om het netwerk te helpen. Als u niet wenst om + zPIV te staken of voordeel te halen uit het privacyvoordeel dat dit oplevert, + kan je deze automatische omzetting uitschakelen in je PIVX portemonnee door + naar Instellingen > Opties te gaan en dan “Schakel zPIV Automuntering in†te deselecteren. + Als je geen gebruik maakt van de PIVX-QT of GUI kan je simpelweg + je pivx.conf bestand openen en er <i>"enablezeromint=0" aan toevoegen</i> Zonder de aanhaling + en je portemonnee herstarten om automuntering uit te schakelen.</p> + </p><p align="justify"> + Je kan meer lezen over zPIV in de + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> "PIVX Zerocoin (zPIV) Technische Paper"</a>. + Als u uw zPIV wilt behouden en staken, lees dan de "Hoe stake ik" + sectie in onderstaande FAQ. + </p></body></html> + + + + 6 + 6 + + + How do I receive PIV/zPIV? + Hoe ontvang ik PIV/zPIV? + + + + <html><head/><body><p align="justify"> + zPIV can be spent and sent to any PIVX address. The receiver will + receive standard PIVX but the origin of the PIVX is anonymized by the zPIV Protocol. + </p><p align="justify"> + If you want more zPIV you will need to mint your balance in the “Privacy†tab. + </p></body></html> + + + <html><head/><body><p align="justify"> + zPIV kan worden uitgegeven en verzonden naar elk PIVX-adres. De ontvanger zal + gewone PIVX ontvangen, maar de oorsprong van de PIVX is geanonimiseerd door het zPIV-protocol + </p><p align="justify"> + Als u meer zPIV wilt, moet u uw balans op mint zetten in de "Privacy" tab. + </p></body></html> + + + + 7 + 7 + + + How do I stake PIV/zPIV? + Hoe stakz ik PIV/zPIV? + + + + <html><head/><body><p align="justify"> + To Stake PIVX: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + You must have a balance of PIVX with a minimum of 101 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + <li> + Once all those steps are followed staking should be enabled. + <li> + You can see the status of staking in the wallet by mousing over the package icon in the row on the top left of the wallet interface. There package will be lit up and will state "Staking Enabled" to indicate it is staking. Using the command line interface (pivx-cli); the command <i>getstakingstatus</i> will confirm that staking is active. + </li></ol> + </p><p align="justify"> + To Stake zPIV: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + Your newly minted or existing zPIV balance must have a minimum of 200 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + Staking should now be enabled. + </li></ol> + </p></body></html> + + + <html><head/><body><p align="justify"> + Om PIVX te Staken: + </p><p align="justify"> + <ol><li> + Zorg ervoor dat uw portemonnee volledig gesynchroniseerd is en dat u de laatste versie gebruikt. + <li> + U moet een saldo van PIVX hebben met een minimum van 101 bevestigingen. + <li> + Uw portemonnee moet online blijven en worden ontgrendeld voor anonimisering en staking-doeleinden. + <li> + Zodra al deze stappen zijn gevolgd, zal het staken worden ingeschakeld. + <li> + U kunt de status van de staking in de portemonnee zien door op het pictogram in de rij linksboven in de portemonnee-interface te bewegen. Het pakket zal oplichten en zal "Staking Ingeschakeld" aangeven om aan te geven dat het pakket in de portemonnee is geplaatst. Met behulp van de opdrachtregel-interface (pivx-cli); het commando <i>getstakingstatus</i> zal bevestigen dat de staking actief is. + </li></ol> + </p><p align="justify"> + Om zPIV te Staken: + </p><p align="justify"> + <ol><li> + Zorg ervoor dat uw portemonnee volledig gesynchroniseerd is en dat u de laatste versie gebruikt. + <li> + Uw nieuw gemunte of bestaande zPIV balans moet minimaal 200 bevestigingen hebben. + <li> + Uw portemonnee moet online blijven en worden ontgrendeld voor anonimisering en staking-doeleinden. + Het Staken zou nu ingeschakeld moeten zijn + </li></ol> + </p></body></html> + + + + 8 + 8 + + + Where I should go if I need support? + Waar moet ik heen gaan als ik ondersteuning nodig heb? + + + + <html><head/><body><p align="justify"> + We have support channels in most of our official chat groups, for example + <a style='color: #b088ff' href='https://Discord.PIVX.com'> + #support in our Discord</a>. + If you prefer to submit a ticket, One can be + <a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> + our Freshdesk support site</a>. + </p></body></html> + + + <html><head/><body><p align="justify"> + We hebben ondersteuningskanalen in de meeste van onze officiële chatgroepen, bijvoorbeeld + <a style='color: #b088ff' href='https://Discord.PIVX.com'> + #support in onze Discord</a>. + Als u liever een ticket indient, kan men dat + <a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> + op onze Freshdesk support site</a>. + </p></body></html> + + + + 9 + 9 + + + What is a Master Node? + Wat is een Masternode + + + + <html><head/><body><p align="justify"> + A masternode is a computer running a full node PIVX core wallet with a + requirement of 10,000 PIV secured collateral to provide extra services + to the network and in return, receive a portion of the block reward + regularly. These services include: + </p><p align="justify"> + + <ul> + <li>Instant transactions (SwiftX)</li> + <li>A decentralized governance (Proposal Voting)</li> + <li>A decentralized budgeting system (Treasury)</li> + <li>Validation of transactions within each block</li> + <li>Act as an additional full node in the network</li> + </ul> + + </p><p align="justify"> + For providing such services, masternodes are also paid a certain portion + of reward for each block. This can serve as a passive income to the + masternode owners minus their running cost. + </p><p align="justify"> + + Masternode Perks: + </p><p align="justify"> + <ul> + <li>Participate in PIVX Governance</li> + <li>Earn Masternode Rewards</li> + <li>Commodity option for future sale</li> + <li>Help secure the PIVX network</li> + </ul> + </p><p align="justify"> + + Requirements: + </p><p align="justify"> + <ul> + <li>10,000 PIV per single Masternode instance</li> + <li>Must be stored in a core wallet</li> + <li>Need dedicated IP address</li> + <li>Masternode wallet to remain online</li> + </ul> + </p></body></html> + + + <html><head/><body><p align="justify"> + Een masternode is een computer met een volledige node PIVX core portemonnee met een + vereiste van 10.000 PIV onderpand om extra diensten te kunnen verlenen + aan het netwerk en in ruil daarvoor ontvangt u regelmatig een deel van de blokbeloning. + Deze diensten omvatten:: + </p><p align="justify"> + + <ul> + <li>Directe transacties (SwiftX)</li> + <li>Een gedecentralizeerd bestuur (Stemming Voorstel)</li> + <li>Een gedecentralizeerd budgeteringssysteem (Treasury)</li> + <li>Validatie van transacties binnen elk blok</li> + <li>Fungeert als een extra volledige node in het netwerk</li> + </ul> + + </p><p align="justify"> + Voor het verlenen van dergelijke diensten wordt ook een bepaald deel van de masternodes betaald + van beloning voor elk blok. Dit kan dienen als een passief inkomen voor de + masternode eigenaars minus hun exploitatiekosten. + </p><p align="justify"> + + Masternode Voordelen: + </p><p align="justify"> + <ul> + <li>Deelnemen in het PIVX Bestuur</li> + <li>Verdien Masternode Beloningen</li> + <li>Commodity-optie voor toekomstige verkoop</li> + <li>Helpt bij het beveiligen van het PIVX netwerk</li> + </ul> + </p><p align="justify"> + + Vereisten: + </p><p align="justify"> + <ul> + <li>10,000 PIV per Masternode instance</li> + <li>Moet in een kernportemonnee worden opgeborgen</li> + <li>Vereist een vast IP-adres + <li>Masternode portemonnee moet online blijven</li> + </ul> + </p></body></html> + + + + 10 + 10 + + + What is a Master Node Controller? + Wat is een Masternode Controller? + + + <html><head/><body><p align="justify">A Masternode Controller wallet is where the 10,000 PIV collateral can reside during a Controller-Remote masternode setup. It is a wallet that can activate the remote masternode wallet/s and allows you to keep your collateral coins offline while the remote masternode remains online. </p></body></html> + <html><head/><body><p align="justify">Een Masternode Controller portemonnee is waar de 10.000 PIV onderpand zich kan bevinden tijdens een Controller-Remote masternode setup. Het is een portemonnee die de remote masternode portemonnee(s) kan activeren en waarmee u uw ondergepande munten offline kunt houden terwijl de remote masternode online blijft. </p></body></html> + + + Frequently Asked Questions + Frequently Asked Questions + + + You can read more here + Je kan er hier meer over lezen + + + Exit + Sluit + + + + SettingsInformationWidget + + Form + Formulier + + + TextLabel + TextLabel + + + Network Monitor + Netwerkmonitor + + + Information + Informatie + + + General + Algemeen + + + Client Version: + Client Versie: + + + User Agent: + User Agent: + + + Using BerkeleyDB version: + Gebruikt BerkeleyDB versie: + + + Datadir: + Datadir: + + + Startup Time: + Starttijd: + + + Network + Netwerk + + + Name: + Naam: + + + Number Connections: + Nummer Verbindingen: + + + Blockchain + Blockchain + + + Current Number of Blocks: + Huidige nummer van blokken: + + + Last Block Time: + Laatste Bloktijd: + + + Memory Pool + Geheugenpool + + + Current Number of Transactions: + Huidige nummer van transacties: + + + Main + Hoofd + + + Wallet Conf + Portemonnee Conf + + + Backups + Back-ups + + + No information + Geen informatie + + + Unable to open backups folder + Kan de back-upmap niet openen + + + Unable to open pivx.conf with default application + Kan pivx.conf niet openen met de standaard applicatie + + + In: + In: + + + Out: + Uit: + + + + SettingsMainOptionsWidget + + Form + Formulier + + + TextLabel + TextLabel + + + Window + Venster + + + Customize the application window options + De opties van het toepassingsvenster aanpassen + + + CheckBox + Selectievakje + + + Reset to default + Terugzetten naar standaardinstelling + + + Discard changes + Wijzigingen ongedaan maken + + + SAVE + Opslaan + + + Main + Hoofd + + + Size of database cache + Grootte van database cache + + + Number of script verification threads + Aantal van script verificatiethreads + + + Start PIVX on system login + Start PIVX bij systeemlogin + + + Minimize to the tray instead of the taskbar + Minimaliseer naar het vak in plaats van de taakbalk + + + Minimize on close + Minimaliseer bij sluiten + + + Reset Options + Reset Opties + + + You are just about to reset the app's options to the default values. + +Are you sure? + + U staat op het punt om de opties van de app terug te zetten naar de standaardwaarden. + +Weet u het zeker? + + + + Options reset succeed + Opties succesvol gereset + + + + SettingsMultisendDialog + + Form + Formulier + + + Transaction Details + Transactie details + + + TextLabel + TextLabel + + + CANCEL + Annuleren + + + SAVE + Opslaan + + + New recipient for multisend + Nieuwe ontvanger voor multisend + + + Label (optional) + Label (optioneel) + + + Enter a label to add this address in your address book + Voer een label in om dit adres toe te voegen aan uw adresboek. + + + Percentage + Percentage + + + + SettingsMultisendWidget + + Form + Formulier + + + TextLabel + TextLabel + + + No active Master Node yet + Nog geen actieve Master Node + + + CheckBox + Selectievakje + + + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. + Met MultiSend kunt u automatisch tot 100% van uw inzet of masternode beloning naar een lijst met andere PIVX-adressen sturen nadat deze volwaardig zijn geworden. + + + Active + Actief + + + Disable + Uitschakelen + + + No active recipient yet + Nog geen actieve ontvanger + + + Send stakes + Verstuur stakes + + + Send masternode rewards + Verstuurd masternode beloningen + + + ADD RECIPIENT + VOEG BESTEMMELING TOE + + + CLEAR ALL + WIS ALLES + + + Clear succeed + Wissen geslaagd + + + Clear all failed, could not locate address in wallet file + Alles wissen mislukt, kon geen adres terugvinden in het portemonnee bestand + + + The entered address: %1 is invalid. +Please check the address and try again. + Het ingevoerde adres: %1 is ongeldig. +Controleer het adres en probeer opnieuw. + + + Invalid percentage, please enter values from 1 to 100. + Ongeldig percentage, voer waarden in van 1 tot 100. + + + The total amount of your MultiSend vector is over 100% of your stake reward + De totale hoeveelheid van je MultiSend vector is meer dan 100% van je inzet beloning + + + Error saving MultiSend, failed saving properties to the database. + Opslaan van MultiSend mislukt, foutgelopen bij opslaan van eigenschappen naar de database. + + + Unable to activate MultiSend, no available recipients + Kon MultiSend niet activeren, geen beschikbare ontvangers + + + Unable to activate MultiSend +Check one or both of the check boxes to send on stake and/or masternode rewards + MultiSend kan niet geactiveerd worden +Vink één of beide selectievakjes aan om beloningen op de inzet en/of masternode te sturen. + + + MultiSend activated but writing settings to DB failed + MultiSend geactiveerd maar instellingen naar DB wegschrijven mislukt + + + MultiSend activated + MultiSend geactiveerd + + + First multiSend address invalid + Eerste MultiSend-adres ongeldig + + + MultiSend deactivated but writing settings to DB failed + MultiSend gedeactiveerd maar instellingen naar DB wegschrijven mislukt + + + MultiSend deactivated + MultiSend gedeactiveerd + + + + SettingsSignMessageWidgets + + Form + Formulier + + + TextLabel + TextLabel + + + PushButton + Druk Knop + + + Clear + Leegmaken + + + Sign/Verify Message + Onderteken/Verifiëer Bericht + + + Enter a PIVX address or contact label + Voer een PIVX-adres of contactlabel in + + + Add address + Adres toevoegen + + + Sign + Onderteken + + + Verify + Verifiëer + + + Select mode + Selecteer mode + + + Message + Bericht + + + Write a message + Schrijf een bericht + + + Signature + Handtekening + + + SIGN + SIGNEER + + + CLEAR ALL + WIS ALLES + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Je kunt berichten met je adressen ondertekenen om te bewijzen dat je ze bezit. Wees voorzichtig om niets vaags te ondertekenen, omdat phishing aanvallen je misschien kunnen proberen om je identiteit over te geven. Teken alleen volledig gedetailleerde verklaringen aan waar je mee akkoord gaat. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Voer het ondertekening adres in, verifieer het bericht (zorg ervoor dat je line breaks, spaties, tabs, enz.) en onderteken hieronder om het bericht te verifiëren. Wees voorzichtig om niet meer in de handtekening te lezen dan in het ondertekende bericht zelf, om te voorkomen dat je door een man-in-de-middle aanval wordt getroffen. + + + VERIFY + VERIFIËER + + + The entered address is invalid. + Het ingevoerde adres is ongeldig. + + + Please check the address and try again. + Controleer het adres en probeer het opnieuw. + + + The entered address does not refer to a key. + Het opgegeven adres verwijst niet naar een sleutel. + + + Wallet unlock was cancelled. + Portemonnee ontsleuteling is geannuleerd. + + + Private key for the entered address is not available. + Privé sleutel voor het ingevoerde adres is niet beschikbaar. + + + Message signing failed. + Bericht ondertekenen mislukt. + + + Message signed. + Bericht ondertekend. + + + The signature could not be decoded. + De handtekening kon niet gedecodeerd worden. + + + Please check the signature and try again. + Controleer de handtekening en probeer het opnieuw. + + + The signature did not match the message digest. + De handtekening kwam niet overeen met de berichtverdeling. + + + Message verification failed. + Bericht verificatie mislukt. + + + Message verified. + Bericht geverifieerd. + + + No addresses available, you can go to the receive screen and add some there! + Geen beschikbare adressen, je kan naar het ontvangstscherm gaan en daar enkele toevoegen! + + + + SettingsWalletOptionsWidget + + Form + Formulier + + + TextLabel + TextLabel + + + CheckBox + Selectievakje + + + RadioButton + RadioButton + + + Reset to default + Terugzetten naar standaardinstelling + + + Discard changes + Wijzigingen ongedaan maken + + + PushButton + Druk Knop + + + Wallet + Portemonnee + + + Customize the internal wallet options + Pas de interne portemonnee-opties aan + + + Stake split threshold: + Inzet splitdrempel: + + + Spend unconfirmed change + Besteed onbevestigde wijziging + + + Network + Netwerk + + + Customize the node network options + Pas de nodenetwerkopties aan + + + Proxy IP: + Proxy IP: + + + Enter proxy IP + Proxy IP invoeren + + + Port: + Poort: + + + Map port using UPnP + Wijs poort toe met behulp van UPnP + + + Allow incoming connections + Sta inkomende connecties toe + + + Connect through SOCKS5 proxy (default proxy): + Connecteer via SOCKS5 proxy (standaardproxy): + + + SAVE + Opslaan + + + Options reset succeed + Opties succesvol gereset + + + + SettingsWalletRepairWidget + + Form + Formulier + + + TextLabel + TextLabel + + + PushButton + Druk Knop + + + Wallet Repair + Portemonnee Herstel + + + The buttons below will restart the wallet with command-line options to repair this wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. + De knoppen hieronder herstarten de portemonnee met commandoregelopties om deze portemonnee te repareren, problemen met corrupte blockchain bestanden of ontbrekende/verouderde transacties op te lossen. + + + Attempt to recover private keys from a corrupt wallet.dat. + Poog om privé sleutels terug te halen uit een corrupte wallet.dat. + + + Rescan the blockchain for missing wallet transactions. + Scan de blockchain opnieuw voor ontbrekende portemonneetransacties. + + + Recover transactions from blockchain (keep-meta-data, e.g. account owner). + Herstel transacties uit de blockchain (keep-meta-data, bijvoorbeeld van de rekeninghouder). + + + Recover transactions from blockchain (drop meta-data). + Herstel transacties van blockchain (laat meta-data vallen). + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself) + Upgrade de portemonnee naar het laatste formaat bij het opstarten. (Opmerking: dit is GEEN update van de portemonnee zelf). + + + Rebuild blockchain index from current blk000???.dat files. + Bouw de blockchain index opnieuw vanuit huidige blk000???.dat bestanden. + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Verwijder alle lokale blockchain mappen zodat de portemonnee alles opnieuw kan hersynchroniseren. + + + Salvage wallet + Red portemonnee + + + Rescan blockchain file + Blockchainbestand opnieuw scannen + + + Recover transactions 1 + Herstel transacties 1 + + + Recover transactions 2 + Herstel transacties 2 + + + Upgrade wallet format + Upgrade portemonnee format + + + Rebuild index + Herbouw index + + + Delete local blockchain + Verwijder lokale blockchain + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Dit zal al jouw lokale blockchain mappen verwijderen en de portemonnee zal de blockchain helemaal opnieuw synchroniseren.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Dit vergt nogal wat tijd en downloadt veel data.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Uw transacties en tegoeden zijn opnieuw zichtbaar nadat het downloaden is voltooid.<br /><br /> + + + Do you want to continue?.<br /> + Wil je verdergaan? + + + Confirm resync Blockchain + Bevestig hersynchronisering van Blockchain + + + + SettingsWidget + + Form + Formulier + + + TextLabel + TextLabel + + + Wallet Data + Portemonnee Data + + + Wallet + Portemonnee + + + Multisend + Multisend + + + Tools + Gereedschap + + + Sign/Verify Message + Onderteken/Verifiëer Bericht + + + BIP38 Tool + BIP38 Tool + + + Options + Opties + + + Main + Hoofd + + + Display + Display + + + Debug + Debug + + + Information + Informatie + + + Console + Console + + + Wallet Repair + Portemonnee Herstellen + + + Help + Help + + + FAQ + Veelgestelde vragen + + + About PIVX + Over PIVX + + + Settings + Instellingen + + + Confirm options reset + Bevestig reset instellingen + + + Client restart required to activate changes. + Client herstart vereist om wijzigingen te activeren. + + + Client will be shutdown, do you want to proceed? + Client wordt uitgeschakeld, wil je doorgaan? + + + Restart required + Herstart nodig + + + Your wallet needs to be restarted to apply the changes + + Je portemonnee moet opnieuw opgestart worden om de wijzigingen toe te passen. + + + + Restart Now + Nu herstarten + + + Restart Later + Later herstarten + + + Options will be applied on next wallet restart + Opties zullen toegepast worden bij de volgende herstart van de portemonnee + + + Options stored + Opties bewaard + + + Options store failed + Opties opslaan mislukt + + + Discard Unsaved Changes + Niet-opgeslagen wijzigingen negeren + + + You are just about to discard all of your unsaved options. + +Are you sure? + + U staat op het punt al uw niet-opgeslagen opties te verwijderen. + +Weet je zeker dat? + + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core is aan het afsluiten... + + + Do not shut down the computer until this window disappears. + Sluit de computer niet af voordat dit venster verdwenen is. + + + + SnackBar + + Form + Formulier + + + Contact Stored + Contact Bewaard + + + + Splash + + Form + Formulier + + + Loading… + Laden... + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Versie %1 + + + The Bitcoin Core developers + De Bitcoin Kernontwikkelaars + + + The Dash Core developers + De Dash Kernontwikkelaars + + + The PIVX Core developers + De PIVX Kernontwikkelaars + + + [testnet] + [testnet] + + + + TooltipMenu + + Form + Formulier + + + Copy + Kopieren + + + Edit + Bewerk + + + Delete + Wissen + + + Last + Laatste + + + + TopBar + + Form + Formulier + + + 480.0685 PIV + 480.0685 PIV + + + 1,000 zPIV + 1,000 zPIV + + + Available + Beschikbaar + + + Pending + In afwachting + + + 6.943 PIV + 6.943 PIV + + + Immature + Onverwerkt + + + 10 PIV + 10 PIV + + + 60 zPIV + 60 zPIV + + + 10 zPIV + 10 zPIV + + + Wallet Unlocked for staking + Portemonnee Ongrendeld voor staking + + + Error generating address + Genereren van adres misgelopen + + + Address Copied + Adres Gekopieerd + + + Automint enabled + Automunt ingeschakeld + + + Automint disabled + Automunt uitgeschakeld + + + Staking active + Staking actief + + + Staking not active + Staking niet actief + + + %n active connection(s) + %n actieve verbinding%n actieve verbindingen + + + Synchronized + Gesynchroniseerd + + + %n hour(s) + %n uur%n uren + + + %n day(s) + %n dag%n dagen + + + %n week(s) + %n week%n weken + + + %1 and %2 + %1 en %2 + + + %n year(s) + %n jaar%n jaren + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open for %n more block(s) + Open voor nog %n blokOpen voor nog %n blokken + + + Open until %1 + Open tot %1 + + + conflicted + conflicteert + + + %1/offline + %1/offline + + + %1/unconfirmed + %1/onbevestigd + + + %1 confirmations + %1 bevestigingen + + + %1/offline (verified via SwiftX) + %1/offline (gecontroleerd via SwiftX) + + + %1/confirmed (verified via SwiftX) + %1/bevestigd (gecontroleerd via swifttx) + + + %1 confirmations (verified via SwiftX) + %1 bevestigingen (gecontroleerd via swifttx) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/offline (SwiftTX controle in uitvoering - %2 van %3 handtekeningen) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/bevestigd (SwiftTX controle in uitvoering - %2 van %3 handtekeningen) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 bevestigingen (SwiftTX controle in uitvoering -%2 van %3 handtekeningen) + + + %1/offline (SwiftX verification failed) + %1/offline (SwiftTX verificatie mislukt) + + + %1/confirmed (SwiftX verification failed) + %1/bevestigd (SwiftTX verificatie mislukt) + + + Status + Status + + + , has not been successfully broadcast yet + , is nog niet succesvol uitgezonden + + + , broadcast through %n node(s) + , broadcast via %n node, broadcast via %n nodes + + + Date + Datum + + + Source + Bron + + + Generated + Gegeneerd + + + From + Van + + + unknown + ongekend + + + To + Naar + + + own address + eigen adres + + + watch-only + watch-only + + + label + label + + + Credit + Credit + + + matures in %n more block(s) + Volgroeid in %n blokvolgroeid in %n blokken + + + not accepted + niet geaccepteerd + + + Debit + Debet + + + Total debit + Totaal debet + + + Total credit + Totaal credit + + + Transaction fee + Transactiekosten + + + Net amount + Netto bedrag + + + Message + Bericht + + + Comment + Reactie + + + Transaction ID + Transactie ID + + + Output index + Output index + + + Merchant + Winkelier + + + Debug information + Debug informatie + + + Transaction + Transactie + + + Inputs + Inputs + + + Amount + Bedrag + + + true + waar + + + false + onwaar + + + + TransactionTableModel + + Date + Datum + + + Type + Type + + + Address + Adres + + + Open for %n more block(s) + Open voor nog %n blokOpen voor nog %n blokken + + + Open until %1 + Open tot %1 + + + Offline + Offline + + + Unconfirmed + Onbevestigd + + + Confirming (%1 of %2 recommended confirmations) + Bevestigen (%1 van %2 aanbevolen bevestigingen) + + + Confirmed (%1 confirmations) + Bevestigd (%1 bevestigingen) + + + Conflicted + Geconflicteerd + + + Immature (%1 confirmations, will be available after %2) + Onvolwassen (%1 bevestigingen, zullen beschikbaar zijn na %2) + + + This block was not received by any other nodes and will probably not be accepted! + Dit blok is niet ontvangen door andere noden en wordt waarschijnlijk niet geaccepteerd! + + + Received with + Ontvangen met + + + Masternode Reward + Masternode beloning + + + Received from + Ontvangen van + + + Received via Obfuscation + Verkregen via verduistering + + + PIV Stake + PIV Stake + + + zPIV Stake + zPIV Stake + + + PIV Cold Stake + PIV Cold Stake + + + PIV Stake in behalf of + PIV Stake in naam van + + + Stake delegation + Stake delegatie + + + Obfuscation Denominate + Verduistering denominatie + + + Obfuscation Collateral Payment + Verduistering zijdelingse betaling + + + Obfuscation Make Collateral Inputs + Verduistering maakt zijdelingse inputs + + + Obfuscation Create Denominations + Verduistering creëert denominaties + + + Converted PIV to zPIV + Geconverteerde PIV naar zPIV + + + Spent zPIV + Bestede zPIV + + + Received PIV from zPIV + Ontvangen PIV van zPIV + + + Minted Change as zPIV from zPIV Spend + Gemint wisselgeld als zPIV van bestede zPIV + + + Converted zPIV to PIV + Geconverteerde zPIV naar PIV + + + Sent to + Verzenden naar + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Orphan Block - Gegenereerd maar niet geaccepteerd. Dit heeft geen invloed op uw bezit. + + + Payment to yourself + Betaling naar jezelf + + + Mined + Mined + + + Obfuscated + Verduisterd + + + watch-only + watch-only + + + Anonymous + Anoniem + + + No information + Geen informatie + + + (n/a) + (n/b) + + + Transaction status. Hover over this field to show number of confirmations. + Transactie status. Beweeg over dit veld om het aantal bevestigingen te tonen. + + + Date and time that the transaction was received. + Datum en tijd waarop de transactie is ontvangen. + + + Type of transaction. + Type transactie. + + + Whether or not a watch-only address is involved in this transaction. + Of een watch-only adres wel of niet betrokken is bij deze transactie. + + + Destination address of transaction. + Bestemming adres van de transactie. + + + Amount removed from or added to balance. + Bedrag verwijderd uit of toegevoegd aan saldo. + + + + TxDetailDialog + + Form + Formulier + + + Transaction Details + Transactie details + + + ID: + ID: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Sending to: + Versturen naar: + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + Total amount + Totale hoeveelheid + + + 2 PIV + 2 PIV + + + Coin inputs: + Munt invoeren: + + + 1 Inputs + 1 Invoer + + + Previous Transaction + Vorige Transactie + + + Output Index + Outputindex + + + Fee: + Fee: + + + 0.0001 PIV + 0.0001 PIV + + + Change address: + Wijzig adres: + + + D7VFR83SQbie…BhjcWJtcfip5krte2Z + D7VFR83SQbie…BhjcWJtcfip5krte2Z + + + Confirmations: + Bevestigingen: + + + 12 + 12 + + + Size: + Grootte: + + + 2 kB + 2 kB + + + Date: + Datum: + + + May 25, 2017 + 25 Mei, 2017 + + + Status: + Status: + + + Spendable + Uitgeefbaar + + + TextLabel + TextLabel + + + CANCEL + Annuleren + + + OK + Akkoord + + + Confirm Your Transaction + Bevestig Uw Transactie + + + SEND + STUREN + + + ID copied + ID gekopieerd + + + Unknown + Ongekend + + + + TxRow + + Form + Formulier + + + Received from Bob + Ontvangen van Bob + + + 18/05/18 + 18/05/18 + + + +0.000585 PIV + +0.000585 PIV + + + + WalletModel + + Send Coins + Verzend Munten + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftTX ondersteunt geen verzendwaarden die zo hoog zijn. Transacties zijn momenteel beperkt tot %1 PIV. + + + + WalletPasswordDialog + + Dialog + Dialoog + + + TextLabel + TextLabel + + + PushButton + Druk Knop + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + Annuleren + + + OK + Akkoord + + + + WelcomeContentWidget + + Dialog + Dialoog + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + Language + Taal + + + Welcome + Welkom + + + Privacy + Privacy + + + Masternodes + Masternodes + + + Select your language + Selecteer uw taal + + + Welcome to +PIVX Core Wallet + Welkom bij +PIVX Core Portemonnee + + + PIVX is the world’s most innovative Proof of Stake blockchain based technology. Developed by a team of highly experienced developers and cryptographers. + PIVX is 's werelds meest innovatieve Proof of Stake blockchain gebaseerde technologie. Ontwikkeld door een team van zeer ervaren ontwikkelaars en cryptografen. + + + <html><head/><body><p>As our manifesto says: Privacy is a non-negotiable basic human right; it grants users the freedom to share their data whenever and with whomever they want - PIVX believes in self sovereignty.</p></body></html> + <html><head/><body><p>Zoals ons manifest zegt: Privacy is een niet-onderhandelbaar fundamenteel mensenrecht; het geeft gebruikers de vrijheid om hun gegevens te delen wanneer en met wie ze maar willen - PIVX gelooft in soevereiniteit.</p></body></html> + + + The masternode network is PIVX's second layer network on top of the blockchain that enables our DAO to provide decentralized governance and a treasury. + Het masternode netwerk is PIVX's tweedelaagse netwerk bovenop de blockchain die onze DAO in staat stelt om gedecentraliseerd bestuur, treasury te leveren + + + How PIVX respects your privacy? + Hoe respecteert PIVX uw privacy? + + + What is a Masternode? + Wat is een Masternode? + + + default + standaard + + + + ZPivControlDialog + + Select zPIV to Spend + Selecteer zPIV om te besteden + + + Coin Control + Munt Controle + + + PushButton + Druk Knop + + + zPiv + zPiv + + + 0.00 + 0.00 + + + Quantity: + Kwantiteit: + + + Is Spendable + Is Uitgeefbaar + + + 0 + 0 + + + Select/Deselect All + Selecteer/Deselecteer Alles + + + Select zPIV Denominations to Spend + Selecteer zPIV Denominaties om te Besteden + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = houd tx meta data, bijvoorbeeld account eigenaar en betalingsverzoek informatie, 2 = drop tx meta data) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Sta JSON-RPC connecties toe van de opgegeven bron. Geldig voor<ip>zijn een enkel IP (bijvoorbeeld 1.2.3.4), een netwerk/netmask (bijvoorbeeld 1.2.3.4/255.255.255.0) of een netwerk/CIDR (bijvoorbeeld 1.2.3.4/24). Deze optie kan meerdere keren worden opgegeven + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Bind naar het gegeven adres en luister er altijd naar. Gebruik [host]:poort notatie voor IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Bind naar bepaald adres en whitelist peers die er verbinding mee maken. Gebruik [host]:poort notatie voor IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Bind naar het opgegeven adres om te luisteren naar JSON-RPC verbindingen. Gebruik [host]:poort notatie voor IPv6. Deze optie kan meerdere keren worden opgegeven (standaard: bind aan alle interfaces) + + + Calculated accumulator checkpoint is not what is recorded by block index + Het berekende accumulatie controlepunt is niet wat wordt geregistreerd door de blokindex + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Kan geen vergrendeling op data directory %s verkrijgen. PIVX Core loopt waarschijnlijk al. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Verander automatisch gefinaliseerd budget voting gedrag. modus=auto: Stem enkel voor exact gefinaliseerde budget overeenkomend met mijn gegenereerde budget. (tekenreeks, standaard: auto) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Doorlopend rate-limit gratis transacties naar<n>*1000 bytes per minuut (default:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Maak nieuwe bestanden met systeem standaard permissies, in plaats van umask 077 (alleen effectief met gedeactiveerde wallet functionaliteit) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Verwijder alle portemonnee transacties en herstel alleen die delen van de blockchain via -rescan bij opstarten + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Verwijder alle bestede Zerocoin en mints die zijn geregistreerd in de blockchain database en her-indexeer ze (0-1, standaard: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Gedistribueerd onder de MIT software licentie, zie het bijgevoegde bestand COPYING of <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic Zerocoin minting from specific addresses (0-1, default: %u) + Schakel automatische Zerocoin munting vanuit specifieke adressen in (0-1, standaard %u) + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Schakel automatische portemonnee back-ups in geactiveerd na elke geminte zPIV (0-1, standaard: %u) + + + Enable cold staking functionality (0-1, default: %u). Disabled if staking=0 + Activeer cold staking functionaliteit (0-1, standaard: %u). Uitgeschakeld als staking=0 + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + In- of uitschakelen staking functionaliteit voor PIV inputs (0-1, standaard: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + In- of uitschakelen staking functionaliteit voor zPIV inputs (0-1, standaard: %u) + + + Enable spork administration functionality with the appropriate private key. + Activeer de spork administratie functionaliteit met de juiste private sleutel. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Voer de regressietest modus uit, die een speciale chain gebruikt waarin blokken direct kunnen worden opgelost. + + + Error: Listening for incoming connections failed (listen returned error %s) + Fout: het luisteren naar inkomende verbindingen is mislukt (luister terug fout %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Fout: de transactie is groter dan de maximaal toegestane transactiegrootte! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Fout: Niet ondersteund argument -socks gevonden. Het instellen van SOCKS versie is niet meer mogelijk, alleen SOCKS5 proxy's worden ondersteund. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Uitvoeren commando wanneer een relevante waarschuwing is ontvangen of we zien een echt lange fork (%s in cmd wordt vervangen door bericht) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Uitvoeren commando wanneer een portemonnee transactie verandert (%s in cmd wordt vervangen door TxID) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Uitvoeren commando wanneer het beste blok verandert (%s in cmd is vervangen door block hash) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Kosten (in PIV/Kb) kleiner dan dit worden beschouwd als zero fee voor heruitzending (standaard: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Kosten (in PIV/Kb) kleiner dan dit worden beschouwd als zero fee voor transactie verrichting (standaard: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Leeg database activiteit uit geheugen pool naar schijf log elke keer<n>megabytes (default: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Als paytxfee niet is ingesteld, sluit voldoende kosten in, zodat transacties beginnen te confirmeren binnen gemiddeld n blokken (standaard: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + In deze modus controleert -genproclimit hoeveel blokken er onmiddellijk worden gegenereerd. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Onvoldoende of onvoldoende bevestigd geld, u moet mogelijk een paar minuten wachten en het opnieuw proberen. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Ongeldige hoeveelheid voor -maxtxfee=<amount>: '%s' (moet ten minste de minimale vergoeding van %s zijn om hangende transacties te voorkomen) + + + Keep the specified amount available for spending at all times (default: 0) + Houd het gespecificeerde bedrag altijd beschikbaar voor uitgaven te allen tijde (standaard: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Log transactie prioriteit en vergoeding per kB wanneer blokken worden gemined (standaard: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Onderhoud een volledige transactie index, gebruikt door de getrawtransaction rpc call (standaard: %u) + + + Maximum average size of an index occurrence in the block spam filter (default: %u) + Maximale gemiddelde grootte van een index in het spamfilter van het blok (standaard: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maximale gegevensgrootte in data carrier transacties die we relayen en minen (standaard: %u) + + + Maximum size of the list of indexes in the block spam filter (default: %u) + Maximale grootte van de lijst met indexen in de spamfilter van het blok (standaard: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maximale totale kosten die in een enkele portefeuille kunnen worden gebruikt, een te lage instelling kan grote transacties afbreken (standaard: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Aantal seconden om te voorkomen dat misdragende peers opnieuw connectoren (standaard: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + Verduistering maakt gebruik van exacte gedenomineerde bedragen om fondsen te verzenden, je zou misschien nog wat munten moeten anonimiseren. + + + Output debugging information (default: %u, supplying <category> is optional) + Output debugging informatie (default: %u, verschaffen <category> is optioneel) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Query voor peer adressen via DNS lookup, als er weinig adressen zijn (standaard: 1 tenzij -connect) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Willekeurige credentials voor elke proxy verbinding. Dit stelt Tor stream isolatie in staat (standaard: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Vereist hoge prioriteit voor het relayen van gratis of low-fee transacties (standaard: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + Stuur trace/debug info naar console in plaats van debug.log bestand (standaard: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Stel maximale grootte van transacties met hoge prioriteit/low-fee in bytes in (standaard: %d) + + + Set the number of included blocks to precompute per cycle. (minimum: %d) (maximum: %d) (default: %d) + Stel het aantal ingesloten blokken in om vooraf te berekenen per cyclus. (minimum: %d) (maximum: %d) (standaard: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Stel het aantal script verificatie threads (%u tot %d, 0 = auto, <0 = laat dat aantal kernen vrij, standaard: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Stel het aantal threads voor munt generatie in indien geactiveerd (-1 = alle kernen, standaard: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Toon N bevestigingen voor een succesvol opgesloten transactie (0-9999, standaard: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Ondersteun filteren van blokken en transactie met bloom filters (standaard: %u) + + + The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct + De blokdatabase bevat een blok dat uit de toekomst lijkt te komen. Dit kan te wijten zijn aan het feit dat de datum en tijd van uw computer verkeerd zijn ingesteld. Bouw de blokdatabase alleen opnieuw op als u er zeker van bent dat de datum en tijd van uw computer correct zijn ingesteld. + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + Dit product bevat software ontwikkeld door het OpenSSL Project voor gebruik in de OpenSSL Toolkit <https://www.openssl.org/> en cryptografische software geschreven door Eric Young en UPnP software geschreven door Thomas Bernard. + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + De totale lengte van de netwerkversie (%i) overschrijdt de maximale lengte (%i). Verminder het aantal of de grootte van uacommentaren. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Niet mogelijk te binden aan %s op deze computer. PIVX Core loopt waarschijnlijk al. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Kan niet genoeg verduistering gedenomineerde fondsen voor deze transactie vinden. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Kan niet genoeg verduistering niet gedenomineerde fondsen voor deze transactie vinden die niet gelijk zijn aan 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Kan niet genoeg fondsen voor deze transactie vinden die niet gelijk zijn aan 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Gebruik aparte SOCKS5 proxy om peers via Tor verborgen services te bereiken (standaard: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Waarschuwing: -maxtxfee is zeer hoog ingesteld! Deze hoge kosten kunnen worden betaald op een enkele transactie. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Waarschuwing: -paytxfee is zeer hoog ingesteld! Dit zijn de transactie kosten die je betaalt als je een transactie verstuurt. + + + Warning: Peers are being disconnected due time differences. Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Waarschuwing: Peers zijn afgesloten als gevolg van tijdsverschillen. Controleer of de datum en tijd van je computer juist zijn! Als je klok verkeerd staat, werkt PIVX Core niet goed. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Waarschuwing: Controleer of de datum en tijd van je computer juist zijn! Als je klok verkeerd staat, werkt PIVX Core niet goed. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Waarschuwing: het netwerk lijkt er niet helemaal mee eens te zijn! Sommige miners lijken problemen te ondervinden. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Waarschuwing: Wij lijken het er niet helemaal eens te zijn met onze peers! Mogelijk moet je upgraden, of andere nodes moeten mogelijk upgraden. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Waarschuwing: fout lezen wallet.dat! Alle sleutels lezen correct, maar transactie gegevens of adresboek invoeringen kunnen missen of niet correct zijn. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Waarschuwing: wallet.dat corrupt, data gered! Originele wallet.dat opgeslagen als wallet.{timestamp}.bak in %s; als je saldo of transacties onjuist zijn, moet je een back-up herstellen. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Whitelist peers verbinden van het opgegeven netmask of IP adres. Kan meerdere keren worden opgegeven. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Whitelisted peers kunnen niet DoS banned worden en hun transacties worden altijd doorgestuurd, zelfs als ze al in de mempool zijn, nuttig bijv. voor een gateway + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + Je moet een masternodeprivkey opgeven in de configuratie. Raadpleeg de documentatie voor hulp. + + + (51472 could be used only on mainnet) + (51472 kan alleen op mainnet worden gebruikt) + + + (default: %s) + (standaard: %s) + + + (default: 1) + (standaard: 1) + + + (must be 51472 for mainnet) + (moet 51472 voor mainnet zijn) + + + Accept command line and JSON-RPC commands + Accepteer command line en JSON-RPC commando's + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Accepteer verbindingen van buitenaf (standaard: 1 als geen -proxy of -connect) + + + Accept public REST requests (default: %u) + Accepteer publieke REST verzoeken (standaard: %u) + + + Add a node to connect to and attempt to keep the connection open + Voeg een node toe om verbinding mee te maken en probeer de verbinding open te houden + + + Adding Wrapped Serials supply... + Toevoegen van Wrapped Serialvoorraad... + + + Allow DNS lookups for -addnode, -seednode and -connect + DNS lookups toestaan voor -addnode, -seednode en -connect + + + Always query for peer addresses via DNS lookup (default: %u) + Vraag altijd naar peer adressen via DNS lookup (standaard: %u) + + + Append comment to the user agent string + Voeg opmerking toe aan de user agent string + + + Attempt to recover private keys from a corrupt wallet.dat + Poog om privé sleutels te herstellen van een corrupte wallet.dat + + + Automatically create Tor hidden service (default: %d) + Creëer automatisch de Tor verborgen service (standaard: %d) + + + Block creation options: + Block creatie opties: + + + Calculating missing accumulators... + Calculeren van ontbrekende accumulators... + + + Cannot downgrade wallet + Kan de portemonnee niet downgraden + + + Cannot resolve -bind address: '%s' + Kan -bind adres niet oplossen: '%s' + + + Cannot resolve -externalip address: '%s' + Kan -externalip adres niet oplossen: '%s' + + + Cannot resolve -whitebind address: '%s' + Kan -whitebind adres niet oplossen: '%s' + + + CoinSpend: failed check + CoinSpend: controle mislukt + + + Connect only to the specified node(s) + Verbind alleen met de opgegeven node(s) + + + Connect through SOCKS5 proxy + Verbind via SOCKS5 proxy + + + Connect to a node to retrieve peer addresses, and disconnect + Verbind met een node om peer adressen te verkrijgen en verbreek verbinding + + + Connection options: + Connectie opties: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Kernontwikkelaars + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i The Dash Kernontwikkelaars + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i The PIVX Kernontwikkelaars + + + Corrupted block database detected + Corrupte block database gedetecteerd + + + Could not parse masternode.conf + Kan masternode.conf niet parsen + + + Couldn't generate the accumulator witness + Kon de accumulator witness niet genereren + + + Debugging/Testing options: + Debugging/Test opties: + + + Delete blockchain folders and resync from scratch + Verwijder blockchain mappen en hersynchroniseer alles opnieuw + + + Disable OS notifications for incoming transactions (default: %u) + Schakel OS notificaties uit voor inkomende transacties (standaard: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Schakel safe mode uit, override een echte safe mode gebeurtenis (standaard: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Ontdek eigen IP adres (standaard: 1 bij luisteren en niet -externalip) + + + Do not load the wallet and disable wallet RPC calls + Laad de portemonnee niet in en schakel portemonnee RPC oproepen uit + + + Do you want to rebuild the block database now? + Wil je de blok database nu herbouwen? + + + Done loading + Klaar met laden + + + Enable automatic Zerocoin minting (0-1, default: %u) + Zet automatische Zerocoin minting aan (0-1, standaard: %u) + + + Enable precomputation of zPIV spends and stakes (0-1, default %u) + Schakel de precomputatie van zPIV-uitgaven en stakes in (0-1, standaard %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + Activeer publicatie hash transactie (vergrendeld via SwiftTX) in <address> + + + Enable publish raw transaction (locked via SwiftX) in <address> + Activeer publicatie raw transactie (vergrendeld via SwiftTX) in <address> + + + Enable the client to act as a masternode (0-1, default: %u) + Schakel de client in als masternode (0-1, standaard: %u) + + + Error initializing block database + Fout bij het initialiseren van blok database + + + Error initializing wallet database environment %s! + Fout bij het initialiseren van de wallet database omgeving %s! + + + Error loading block database + Error tijdens het laden van de block database + + + Error loading wallet.dat + Error tijdens het laden van wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Error tijdens het laden van wallet.dat: Portemonnee corrupt + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Fout bij het laden van wallet.dat: Portemonnee vereist een nieuwere versie van PIVX Core + + + Error opening block database + Error tijdens het openen van de block database + + + Error reading from database, shutting down. + Error tijdens het lezen van de database, aan het afsluiten. + + + Error writing zerocoinDB to disk + Fout bij het schrijven van zerocoinDB naar schijf + + + Error + Error + + + Error: A fatal internal error occured, see debug.log for details + Fout: Er is een fatale interne fout opgetreden, zie debug.log voor details + + + Error: Disk space is low! + Error: Schijfruimte is laag! + + + Error: Unsupported argument -tor found, use -onion. + Fout: Niet ondersteunde argument -tor gevonden, gebruik -onion. + + + Error: Wallet locked, unable to create transaction! + Fout: Portemonnee vergrendeld, niet in staat om transactie te creëren! + + + Failed to calculate accumulator checkpoint + Kon het controlepunt van de accumulator niet berekenen + + + Failed to listen on any port. Use -listen=0 if you want this. + Niet gelukt om te luisteren op een poort. Gebruik -listen=0 als je dit wilt. + + + Failed to parse host:port string + Kan host: poortreeks niet parseren + + + Failed to read block + Mislukt om block te lezen + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Fee (in PIV/kB) om toe te voegen aan transacties die je verzendt (standaard: %s) + + + Force safe mode (default: %u) + Forceer safe mode (standaard: %u) + + + Generate coins (default: %u) + Genereer munten (standaard: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Hoeveel blokken bij het opstarten controleren (standaard: %u, 0 = alles) + + + If <category> is not supplied, output all debugging information. + Als <category> niet is opgegeven, output alle debugging informatie. + + + Importing... + Importeren... + + + Imports blocks from external blk000??.dat file + Importeert blokken uit extern blk000??.dat bestand + + + Include IP addresses in debug output (default: %u) + Inclusief IP adressen in debug output (standaard: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + Het genesis block kan niet worden gevonden of is incorrect. Klopt datadir voor het netwerk? + + + Information + Informatie + + + Initialization sanity check failed. PIVX Core is shutting down. + Initialisatie saniteitscontrole mislukt. PIVX Core wordt afgesloten. + + + Insufficient funds + Onvoldoende saldo. + + + Insufficient funds. + Onvoldoende saldo. + + + Invalid -onion address or hostname: '%s' + Ongeldig -onion adres of hostnaam: '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + Ongeldige hoeveelheid voor -maxtxfee=<amount>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Ongeldige hoeveelheid voor -minrelaytxfee=<amount>: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Ongeldige hoeveelheid voor -mintxfee=<amount>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Ongeldige hoeveelheid voor -paytxfee=<amount>: '%s' (moet tenminste %s zijn) + + + Invalid amount for -paytxfee=<amount>: '%s' + Ongeldige hoeveelheid voor -paytxfee=<amount>: '%s' + + + Invalid amount for -reservebalance=<amount> + Ongeldige hoeveelheid voor -reservebalance=<amount> + + + Invalid amount + Ongeldige hoeveelheid + + + Invalid masternodeprivkey. Please see documenation. + Ongeldige masternodeprivkey. Zie documentatie. + + + Invalid netmask specified in -whitelist: '%s' + Ongeldige netmask opgegeven in -whitelist: '%s' + + + Invalid port detected in masternode.conf + Ongeldige poort gedetecteerd in masternode.conf + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Percentage automatisch geminte Zerocoin (10-100, standaard: %u) + + + Recalculating PIV supply... + Hercalculatie van PIV aanbod... + + + Recalculating minted ZPIV... + Herberekenen van gemunte ZPIV.... + + + Recalculating spent ZPIV... + Herberekenen van bestede ZPIV.... + + + Reindex the PIV and zPIV money supply statistics + Indexeer de PIV- en zPIV-geldvoorraadstatistieken opnieuw + + + Reindexing zerocoin database... + Her-indexeren Zerocoin database... + + + Reindexing zerocoin failed + Her-indexeren Zerocoin database mislukt + + + Selected coins value is less than payment target + Geselecteerde munt waarde is minder dan het betalingsdoel + + + Support the zerocoin light node protocol (default: %u) + Ondersteuning van het zerocoin light node protocol (standaard: %u) + + + SwiftX options: + SwiftTX opties: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + Dit is een pre-release test build - gebruik op eigen risico - niet gebruiken voor staking of handel applicaties! + + + mints deleted + + mints verwijderd + + + + mints updated, + mints bijgewerkt, + + + unconfirmed transactions removed + + onbevestigde transacties verwijderd + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Schakel alle specifieke PIVX functionaliteit uit (Masternodes, Zerocoin, SwiftTX, Budgeting) (0-1, standaard: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Schakel SwiftX in, toon bevestigingen voor vergrendelde transacties (bool, standaard: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Fout: De transactie is afgewezen! Dit kan gebeuren als sommige munten in je portemonnee al waren uitgegeven, bijvoorbeeld als je een kopie van wallet.dat gebruikt en munten in de kopie waren besteed maar hier niet als zodanig gemarkeerd. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + Fout: Deze transactie vereist transactiekosten van ten minste %s vanwege de hoeveelheid, de complexiteit of het gebruik van recent ontvangen fondsen! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + Fout: Niet ondersteund argument -checklevel gevonden. Checklevel moet niveau 4 zijn. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + Voer het commando uit als het beste blok verandert en de grootte ervan voorbij is (%s in cmd wordt vervangen door blokhash, %d met de blokgrootte) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Het is niet gelukt om muntstukken te vinden onder de aangehouden munten met minder dan max. Aantal uitgaven + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + In zeldzame gevallen overschrijdt een besteding met 7 munten uw maximaal toegestane transactiegrootte. Probeer het opnieuw met 6 of minder munten + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Voorkeur denominatie voor automatisch minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 voor geen voorkeur. standaard: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Specificeer aangepast back-up pad om een kopie van elke automatische zPIV back-up toe te voegen. Indien ingesteld als dir zal elke back-up een bestand genereren met een tijdstempel. Indien ingesteld als file zal elke back-up herschreven worden naar dat bestand. Indien backuppath ook is ingesteld zullen 4 back-ups gedaan worden. + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Specificeer aangepast back-up pad om een kopie van elke portemonnee back-up toe te voegen. Indien ingesteld als dir zal elke back-up een bestand genereren met een tijdstempel. Indien ingesteld als file zal elke back-up herschreven worden naar dat bestand. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftTX vereist invoer van tenminste 6 bevestigingen, je dient wellicht een paar minuten te wachten en het opnieuw proberen. + + + <category> can be: + <category>kan zijn: + + + Attempt to force blockchain corruption recovery + Poging om blockchain corruptie herstel te forceren + + + Cannot create public spend input + Kon geen publiek besteedadres aanmaken + + + CoinSpend: Accumulator witness does not verify + CoinSpend: Accumulator witness controleert niet + + + Display the stake modifier calculations in the debug.log file. + Toon de berekeningen van de stake modificator in het debug.log bestand. + + + Display verbose coin stake messages in the debug.log file. + Toon verbose munt stake berichten in het debug.log bestand. + + + Enable publish hash block in <address> + Activeer publicatie hash blok in <address> + + + Enable publish hash transaction in <address> + Activeer publicatie has transactie in <address> + + + Enable publish raw block in <address> + Activeer publicatie raw block in <address> + + + Enable publish raw transaction in <address> + Activeer publicatie raw transactie in <address> + + + Enable staking functionality (0-1, default: %u) + Activeer staking functionaliteit (0-1, standaard: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Fout: Er is een fatale interne fout opgetreden, zie debug.log voor meer informatie + + + Error: No valid utxo! + Fout: geen geldige utxo! + + + Failed to create mint + Het is niet gelukt om mint te maken + + + Failed to find Zerocoins in wallet.dat + Niet gelukt om Zerocoins in wallet.dat te vinden. + + + Failed to parse public spend + Parsen van publieke uitgaven mislukt + + + Failed to select a zerocoin + Het is niet gelukt om een zerocoin te selecteren + + + Failed to wipe zerocoinDB + Mislukt om zerocoinDB te legen. + + + Failed to write coin serial number into wallet + Het serienummer van het muntstuk kan niet in de portemonnee worden geschreven + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Houd maximaal <n>niet te verbinden transacties in het geheugen (standaard: %u) + + + Limit size of signature cache to <n> entries (default: %u) + Limiet grootte van signature cache naar <n> invoer (standaard: %u) + + + Line: %d + Line: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Luister naar JSON-RPC verbindingen op <port> (standaard: %u of testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Luister naar verbindingen op <port> (standaard: %u of testnet: %u) + + + Loading addresses... + Adressen laden... + + + Loading block index... + Blockindex laden... + + + Loading budget cache... + Budget cache laden... + + + Loading masternode cache... + Masternode cache laden... + + + Loading masternode payment cache... + Masternode betalingscache laden... + + + Loading sporks... + Sporks laden... + + + Loading wallet... (%3.2f %%) + Portemonnee laden... (%3.2f %%) + + + Loading wallet... + Portemonnee aan het laden... + + + Location of the auth cookie (default: data dir) + Locatie van de auth cookie (standaard: data dir) + + + Lock masternodes from masternode configuration file (default: %u) + Masternodes vergrendelen van masternode configuratiebestand (standaard: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Lookup (): ongeldig -proxy-adres of hostnaam: '%s' + + + Maintain at most <n> connections to peers (default: %u) + Bijhouden maximaal <n> connecties naar peers (standaard: %u) + + + Masternode options: + Masternode opties: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Maximaal per connectie ontvangst buffer, <n>*1000 bytes (standaard: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Maximaal per connectie verstuur buffer, <n>*1000 bytes (standaard: %u) + + + Mint did not make it into blockchain + Mint heeft de blockchain niet gehaald + + + Need to specify a port with -whitebind: '%s' + Moet een poort opgeven met -whitebind: '%s' + + + Node relay options: + Node relay opties: + + + Not enough file descriptors available. + Niet genoeg bestandsbeschrijvingen beschikbaar. + + + Number of automatic wallet backups (default: 10) + Aantal automatische portemonnee backups (standaard: 10) + + + Number of custom location backups to retain (default: %d) + Aantal aangepaste locatie back-ups om te behouden (standaard: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Accepteer alleen blockchain matching met ingebouwde controlepunten (standaard: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Verbind alleen met nodes in het netwerk <net> (ipv4, ipv6 of onion) + + + Options: + Opties: + + + Password for JSON-RPC connections + Wachtwoord voor JSON-RPC connecties + + + Unable to find transaction containing mint %s + Kan geen transactie terugvinden die munting %s bevat + + + Unable to find transaction containing mint, txHash: %s + Kan geen transactie terugvinden die munting, txHash %s bevat + + + Use block spam filter (default: %u) + Gebruik block-spamfilter (standaard: %u) + + + could not get lock on cs_spendcache + kon niet op cs_spendcache terecht komen + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid (): ongeldig -proxy-adres of hostnaam: '%s' + + + Preparing for resync... + Voorbereiden van hersynchronisatie... + + + Need destination or change address because change is not exact + Bestemmings- of wisseladres nodig omdat wissel niet exact is + + + Prepend debug output with timestamp (default: %u) + Voeg debug output met timestamp toe (standaard: %u) + + + Print version and exit + Print versie en verlaat + + + Pubcoin not found in mint tx + Pubcoin niet gevonden in mint tx + + + RPC server options: + RPC server opties: + + + Randomly drop 1 of every <n> network messages + Willekeurig laten vallen van 1 van elke <n>netwerk berichten + + + Randomly fuzz 1 of every <n> network messages + Willekeurig vervagen van 1 van elke <n> netwerk berichten + + + Rebuild block chain index from current blk000??.dat files + Herstel blockchain index van huidige blk000??.dat bestanden + + + Receive and display P2P network alerts (default: %u) + Ontvang en laat P2P netwerkmeldingen zien (standaard: %u) + + + Reindex the accumulator database + Herindexeer de verzameldatabase + + + Relay and mine data carrier transactions (default: %u) + Relay en mine data carrier transacties (standaard: %u) + + + Relay non-P2SH multisig (default: %u) + Relay non P2SH multisig (default: %u) + + + Rescan the block chain for missing wallet transactions + Rescan de blockchain voor ontbrekende portemonnee transacties + + + Rescanning... + Opnieuw scannen... + + + ResetMintZerocoin finished: + ResetMintZerocoin voltooid: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin voltooid: + + + Run a thread to flush wallet periodically (default: %u) + Voer regelmatig een thread om de portemonnee te spoelen uit (standaard: %u) + + + Run in the background as a daemon and accept commands + Voer op de achtergrond uit als een daemon en accepteer commando's + + + Send transactions as zero-fee transactions if possible (default: %u) + Zend transacties als zero fee transacties indien mogelijk (standaard: %u) + + + Session timed out. + Sessie verlopen. + + + Set database cache size in megabytes (%d to %d, default: %d) + Stel de cache grootte van de database in megabytes in (%d tot %d, standaard: %d) + + + Set external address:port to get to this masternode (example: %s) + Extern adres instellen:poort om bij deze masternode te komen (voorbeeld: %s) + + + Set key pool size to <n> (default: %u) + Stel key pool grootte in op <n> (standaard: %u) + + + Set maximum block size in bytes (default: %d) + Stel maximale block grootte in bytes in (default: %d) + + + Set minimum block size in bytes (default: %u) + Stel minimale block grootte in bytes in (default: %u) + + + Set the Maximum reorg depth (default: %u) + Stel de Maximale reorg diepte in (standaard: %u) + + + Set the masternode private key + Stel de masternode privé sleutel in + + + Set the number of threads to service RPC calls (default: %d) + Stel het aantal threads in om RPC oproepen te bedienen (standaard: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Stelt de DB_PRIVATE vlag in de portemonnee db omgeving in (standaard: %u) + + + Show all debugging options (usage: --help -help-debug) + Toon alle debugging opties (gebruik: --help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Krimp debug.log bestand bij client startup (standaard: 1 wanneer geen -debug) + + + Signing timed out. + Ondertekening time out. + + + Signing transaction failed + Ondertekening transactie mislukt. + + + Specify configuration file (default: %s) + Specificeer configuratiebestand (standaard: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Specificeer verbinding time-out in milliseconden (minimum: 1, standaard: %d) + + + Specify data directory + Specificeer data directory. + + + Specify masternode configuration file (default: %s) + Specificeer masternode configuratie bestand (default: %s) + + + Specify pid file (default: %s) + Specificeer pid bestand (default: %s) + + + Specify wallet file (within data directory) + Specificeer portemonnee bestand (in data directory) + + + Specify your own public address + Specificeer je eigen publieke addres + + + Spend Valid + Besteed geldig + + + Spend unconfirmed change when sending transactions (default: %u) + Onbevestigd wisselgeld besteden bij het verzenden van transacties (standaard: %u) + + + Staking options: + Staking opties: + + + Stop running after importing blocks from disk (default: %u) + Stop na het importeren van blokken van schijf (standaard: %u) + + + Synchronization failed + Synchronisatie mislukt + + + Synchronization finished + Synchronisatie voltooid + + + Synchronization pending... + Synchronisatie in afwachting... + + + Synchronizing budgets... + Budgeten synchroniseren... + + + Synchronizing masternode winners... + Synchroniseren masternode winnaars... + + + Synchronizing masternodes... + Synchroniseren masternodes... + + + Synchronizing sporks... + Synchroniseren sporks... + + + Syncing zPIV wallet... + Synchroniseren zPIV portemonnee... + + + The coin spend has been used + De muntuitgaven zijn gebruikt + + + The transaction did not verify + De transactie heeft niet geverifieerd + + + This help message + Dit help bericht + + + This is experimental software. + Dit is experimentele software. + + + This is intended for regression testing tools and app development. + Dit is bedoeld voor regressie test tools en app ontwikkeling. + + + Threshold for disconnecting misbehaving peers (default: %u) + Drempel voor het verbreken van misdragende peers (standaard: %u) + + + Too many spends needed + Te veel uitgaven nodig + + + Tor control port password (default: empty) + Tor controle poort wachtwoord (standaard: leeg) + + + Tor control port to use if onion listening enabled (default: %s) + Tor controle poort om te gebruiken als onion listening geactiveerd is (standaard: %s) + + + Transaction Created + Transactie gemaakt + + + Transaction Mint Started + Transactie startte met Mint + + + Transaction amount too small + Transactie bedrag te klein + + + Transaction amounts must be positive + Transactie bedragen moeten positief zijn + + + Transaction too large for fee policy + Transactie te groot voor kosten beleid + + + Transaction too large + Transactie te groot + + + Trying to spend an already spent serial #, try again. + Probeer een reeds bestaand serienummer nog een keer uit te geven, probeer het opnieuw. + + + Unable to bind to %s on this computer (bind returned error %s) + Niet mogelijk te binden aan %s op deze computer (bind stuurt fout %s terug) + + + Unable to generate initial key + Niet mogelijke om de initiële sleutel te genereren. + + + Unable to sign spork message, wrong key? + Kan sporkbericht niet tekenen, verkeerde sleutel? + + + Unable to start HTTP server. See debug log for details. + Kan HTTP-server niet starten. Zie foutopsporingslog voor details. + + + Unknown network specified in -onlynet: '%s' + Onbekend netwerk gespecificeerd in -onlynet: '%s' + + + Upgrade wallet to latest format + Upgrade portemonnee naar nieuwste formaat + + + Use UPnP to map the listening port (default: %u) + Gebruik UPnP om de luisterpoort te mappen (standaard: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Gebruik UPnP om de luisterpoort te mappen (standaard: 1 bij het luisteren) + + + Use a custom max chain reorganization depth (default: %u) + Gebruik een aangepaste max chain reorganisatie diepte (standaard: %u) + + + Use the test network + Gebruik het test netwerk + + + User Agent comment (%s) contains unsafe characters. + User Agent opmerking (%s) bevat onveilige karakters. + + + Username for JSON-RPC connections + Gebruikersnaam voor JSON-RPC verbindingen + + + Value is below the smallest available denomination (= 1) of zPIV + Waarde is minder dan de kleinst beschikbare denominatie (=1) van zPIV + + + Verifying blocks... + Blokken verifiëren... + + + Verifying wallet... + Portemonnee verifiëren... + + + Wallet %s resides outside data directory %s + Portemonnee %s verblijft buiten de data directory %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + Wallet moest worden herschreven: start PIVX Core opnieuw om te voltooien + + + Wallet options: + Portemonnee opties: + + + Wallet window title + Portemonnee venster titel + + + Warning + Waarschuwing + + + Warning: This version is obsolete, upgrade required! + Waarschuwing: Deze versie is verouderd, upgrade vereist! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Waarschuwing: Niet- ondersteund argument -benchmark genegeerd, gebruik -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Waarschuwing: Niet ondersteunde argument -debugnet genegeerd, gebruik -debug=net. + + + You don't have enough Zerocoins in your wallet + Je hebt niet genoeg Zerocoins in je portemonnee + + + You need to rebuild the database using -reindex to change -txindex + Je moet de database herbouwen met -reindex om -txindex te wijzigen + + + Zapping all transactions from wallet... + Verwijderen van alle transacties uit portemonnee... + + + ZeroMQ notification options: + ZeroMQ notificatie opties: + + + Zerocoin options: + Zerocoin opties: + + + on startup + tijdens het opstarten + + + wallet.dat corrupt, salvage failed + wallet.dat corrupt, redding mislukt + + + + send + + Form + Formulier + + + Send + Zenden + + + TextLabel + TextLabel + + + PushButton + Druk Knop + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_pl.ts b/src/qt/locale/pivx_pl.ts new file mode 100644 index 0000000..85f59d2 --- /dev/null +++ b/src/qt/locale/pivx_pl.ts @@ -0,0 +1,4726 @@ + + + AddNewAddressDialog + + Dialog + Dialog + + + My Address + Mój adres + + + Address + Adres + + + PushButton + NaciÅ›nij przycisk + + + CANCEL + ANULUJ + + + OK + OK + + + + AddNewContactDialog + + Dialog + Dialog + + + TextLabel + TekstZakÅ‚adka + + + CANCEL + ANULUJ + + + OK + OK + + + Edit Contact + Edytuj kontakt + + + Set a label for the selected address + Ustaw etykietÄ™ dla wybranego adresu + + + Enter a name for the address (e.g Exchange) + Wpisz nazwÄ™ adresu (np. Exchange) + + + SAVE + ZAPISZ + + + Edit label for the selected address: +%1 + Edytuj etykietÄ™ dla wybranego adresu: +%1 + + + + AddressBookPage + + Right-click to edit address or label + Kliknij prawy przycisk myszy by edytować adres lub zakÅ‚adkÄ™ + + + Create a new address + Stwórz nowy adres + + + &New + &Nowy + + + Copy the currently selected address to the system clipboard + Skopiuj aktualnie wybrany adres do schowka systemowego + + + &Copy + &Kopiuj + + + Delete the currently selected address from the list + UsuÅ„ zaznaczony adres z listy + + + &Delete + &UsuÅ„ + + + Export the data in the current tab to a file + Wyeksportuj dane z bieżącej karty do pliku + + + &Export + &Eksportuj + + + C&lose + &Zamknij + + + Choose the address to send coins to + Wybierz adres odbiorcy + + + Choose the address to receive coins with + Wybierz adres do otrzymania monet + + + C&hoose + &Wybierz + + + Sending addresses + Adres do wysÅ‚ania + + + Receiving addresses + Adres odbiorczy + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + To sÄ… twoje adresy PIVX do wysyÅ‚ania pÅ‚atnoÅ›ci. Zawsze sprawdzaj kwotÄ™ i adres odbiorcy przed wysÅ‚aniem monet. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + To sÄ… twoje adresy PIVX do otrzymywania pÅ‚atnoÅ›ci. Zaleca siÄ™ użycie nowego adresu odbiorczego dla każdej transakcji. + + + &Copy Address + &Kopiuj adres + + + Copy &Label + Skopiuj &etykietÄ™ + + + &Edit + &Edytuj + + + Export Address List + Eksportuj listÄ™ adresów + + + Comma separated file (*.csv) + Plik rozdzielony przecinkami (* .csv) + + + Exporting Failed + Eksport nieudany + + + There was an error trying to save the address list to %1. Please try again. + WystÄ…piÅ‚ problem podczas zapisywania listy adresów do %1. Spróbuj ponownie + + + + AddressLabelRow + + Form + Forma + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + AddressTableModel + + Label + Etykieta + + + Address + Adres + + + Date + Data + + + (no label) + (brak etykiety) + + + + AddressesWidget + + Form + Forma + + + Send + WyÅ›lij + + + TextLabel + TekstZakÅ‚adka + + + No active Master Node yet + Brak aktywnego Master Node + + + Contact name + Nazwa Kontaktu + + + Enter address + Podaj adres + + + OK + OK + + + Contacts + Kontakty + + + You can add a new one in the options menu to the side. + Możesz dodać nowy w menu opcji z boku. + + + No contacts yet + Brak Kontaktów + + + e.g. John Doe + np. John Doe + + + Enter a PIVX address + Wpisz adres PIVX + + + SAVE + ZAPISZ + + + Invalid Contact Address + NieprawidÅ‚owy adres kontaktowy + + + Cannot store your own address as contact + Nie można zapisać wÅ‚asnego adresu jako kontaktu + + + Address already stored, label: %1 + Adres już zapisany, nazwa: %1 + + + New Contact Stored + Zapisano nowy kontakt + + + + AskPassphraseDialog + + Passphrase Dialog + Okno dialogowe "Passphrase" + + + TextLabel + TekstZakÅ‚adka + + + PushButton + NaciÅ›nij przycisk + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Wprowadź nowe hasÅ‚o do portfela. +Użyj hasÅ‚a skÅ‚adajÄ…cego siÄ™ z dziesiÄ™ciu lub wiÄ™cej losowych znaków lub oÅ›miu lub wiÄ™cej słów. + + + Encrypt wallet + Zaszyfruj portfel + + + This operation needs your wallet passphrase to unlock the wallet. + Ta operacja wymaga twojego hasÅ‚a, by odblokować portfel + + + Unlock wallet + Odblokuj portfel + + + This operation needs your wallet passphrase to decrypt the wallet. + Ta operacja wymaga twojego hasÅ‚a, by zakodować portfel + + + Decrypt wallet + Odszyfruj portfel + + + Change passphrase + ZmieÅ„ hasÅ‚o + + + Enter the old and new passphrase to the wallet. + Wpisz stare oraz nowe hasÅ‚o do portfela + + + Confirm wallet encryption + Potwierdź szyfrowanie portfela + + + CANCEL + ANULUJ + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX zamknie siÄ™ teraz, aby zakoÅ„czyć proces szyfrowania. PamiÄ™taj, że zaszyfrowanie portfela nie chroni w peÅ‚ni Twoich PIV przed kradzieżą przez zÅ‚oÅ›liwe oprogramowanie infekujÄ…ce Twój komputer. + + + Are you sure you wish to encrypt your wallet? + Czy na pewno chcesz zaszyfrować swój portfel? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Ostrzeżenie: Jeżeli zaszyfrujesz portfel i stracisz do niego hasÅ‚o , <b>UTRACISZ WSZYSTKIE PIV</b>! + + + Wallet encrypted + Portfel zaszyfrowany + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + WAÅ»NE: Wszystkie poprzednie kopie zapasowe plików portfela należy zastÄ…pić nowo wygenerowanym, zaszyfrowanym plikiem portfela. Ze wzglÄ™dów bezpieczeÅ„stwa poprzednie kopie niezaszyfrowanego pliku portfela stanÄ… siÄ™ bezużyteczne, gdy tylko zaczniesz korzystać z nowego, zaszyfrowanego portfela. + + + Wallet encryption failed + Szyfrowanie portfela nieudane + + + OK + OK + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Szyfrowanie portfela nieudane z powodu wewnÄ™trznego bÅ‚Ä™du. Twój portfel nie zostaÅ‚ zaszyfrowany + + + The supplied passphrases do not match. + Podane hasÅ‚a nie zgadzajÄ… siÄ™ + + + Wallet unlock failed + Odblokowanie portfela nieudane + + + The passphrase entered for the wallet decryption was incorrect. + Podane hasÅ‚o do odszyfrowania portfela jest bÅ‚Ä™dne + + + Wallet decryption failed + Odszyfrowywanie portfela nie powiodÅ‚o siÄ™ + + + Wallet passphrase was successfully changed. + HasÅ‚o do portfela zostaÅ‚o zmienione + + + Warning: The Caps Lock key is on! + Ostrzeżenie: Caps Lock wÅ‚Ä…czony! + + + + BanTableModel + + IP/Netmask + Numer IP / Netmask + + + Banned Until + Zakazany do + + + + BlockExplorer + + Blockchain Explorer + Eksplorer blockchain + + + Back + Do tyÅ‚u + + + Forward + Do przodu + + + Address / Block / Transaction + Adres / Blok / Transakcja + + + Search + Szukaj + + + TextLabel + TekstZakÅ‚adka + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Nie wszystkie transakcje zostanÄ… pokazane. Aby wyÅ›wietlić wszystkie transakcje, musisz ustawić txindex=1 w pliku konfiguracyjnym (pivx.conf). + + + + CSRow + + Form + Forma + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Razem: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Nieznane: %5) + + + Network Alert + Alert sieciowy + + + + CoinControlDialog + + Quantity: + Ilość: + + + Bytes: + Bajty: + + + Fee: + OpÅ‚ata: + + + Coin Selection + Wybór monet + + + Dust: + PyÅ‚: + + + Change: + Reszta: + + + Tree mode + Tryb drzewa + + + List mode + Tryb listy + + + (1 locked) + (1 zablokowany) + + + Amount + Ilość + + + PushButton + NaciÅ›nij przycisk + + + 0 + 0 + + + Received with label + Otrzymano z zakÅ‚adkÄ… + + + Received with address + Otrzymano z adresem + + + OK + OK + + + Date + Data + + + Confirmations + Potwierdzenia + + + Confirmed + Potwierdzone + + + Copy address + Kopiuj adres + + + Copy label + Kopiuj zakÅ‚adkÄ™ + + + Copy amount + Kopiuj liczbÄ™ + + + Copy transaction ID + Kopiuj ID transakcji + + + Lock unspent + Zablokuj niewydane + + + Unlock unspent + Odblokuj niewydane + + + Copy quantity + Kopiuj ilość + + + Copy fee + Kopiuj opÅ‚atÄ™ + + + Copy after fee + Kopiuj po opÅ‚acie + + + Copy bytes + Skopiuj bajty + + + Copy priority + Kopiuj priorytet + + + Copy dust + Kopiuj PyÅ‚ + + + Copy change + Kopiuj resztÄ™ + + + Please switch to "List mode" to use this function. + ProszÄ™ przeÅ‚Ä…czyć na "Tryb listy" by użyć tej funkcji + + + highest + Najwyższy + + + higher + Wyższy + + + high + Wysoki + + + medium-high + Åšrednio-wysoki + + + medium + Å›redni + + + low-medium + Å›rednio-niski + + + low + niski + + + lower + niższy + + + lowest + najniższy + + + (%1 locked) + (%1 zablokowany) + + + none + brak + + + yes + tak + + + no + nie + + + This label turns red, if the transaction size is greater than 1000 bytes. + Ta zakÅ‚adka stajÄ™ siÄ™ czerwona, gdy rozmiar transakcji przekracza 1000 bajtów + + + This means a fee of at least %1 per kB is required. + To znaczy, że opÅ‚ata co najmniej %1 za kB jest wymagana + + + Can vary +/- 1 byte per input. + Zmienia siÄ™ +/- 1 byte + + + Transactions with higher priority are more likely to get included into a block. + Transakcje o wyższym priorytecie ma wiÄ™ksze prawdopodobieÅ„stwo wdrożenia do bloku + + + This label turns red, if the priority is smaller than "medium". + Ta zakÅ‚adka staje siÄ™ czerwona, jeżeli priorytet jest mniejszy niż "Å›redni" + + + This label turns red, if any recipient receives an amount smaller than %1. + Ta etykieta zmienia kolor na czerwony, jeÅ›li odbiorca otrzymuje mniej niż %1. + + + Can vary +/- %1 upiv per input. + Zmienia siÄ™ +/- %1 upiv + + + (no label) + (brak etykiety) + + + change from %1 (%2) + Reszta z %1 (%2) + + + (change) + (reszta) + + + + CoinControlPivWidget + + Dialog + Dialog + + + PushButton + NaciÅ›nij przycisk + + + TextLabel + TekstZakÅ‚adka + + + Quantity: + Ilość: + + + Fee: + OpÅ‚ata: + + + Amount + Ilość + + + Label + Etykieta + + + Address + Adres + + + Type + Typ + + + Date + Data + + + Confirmations + Potwierdzenia + + + Bytes: + Bajty: + + + Dust: + PyÅ‚: + + + Change: + Reszta: + + + CANCEL + ANULUJ + + + OK + OK + + + + ColdStakingWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + PushButton + NaciÅ›nij przycisk + + + + ContactDropdownRow + + Form + Forma + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + DashboardWidget + + Form + Forma + + + Warning + Ostrzeżenie + + + PushButton + NaciÅ›nij przycisk + + + TextLabel + TekstZakÅ‚adka + + + zPIV + zPIV + + + All + Wszystko + + + Received + Otrzymano + + + Sent + WysÅ‚ano + + + Mined + wydobyty + + + Minted + Wybite + + + To yourself + Dla siebie + + + + DefaultDialog + + Form + Forma + + + CANCEL + ANULUJ + + + SAVE + ZAPISZ + + + + DenomGenerationDialog + + Form + Forma + + + PushButton + NaciÅ›nij przycisk + + + CANCEL + ANULUJ + + + SAVE + ZAPISZ + + + + EditAddressDialog + + Edit Address + Edytuj adres + + + &Label + &Etykieta + + + The label associated with this address list entry + Etykieta powiÄ…zana z tÄ… pozycjÄ… listy adresowej + + + &Address + &Adres + + + The address associated with this address list entry. This can only be modified for sending addresses. + Adres powiÄ…zany z tÄ… pozycjÄ… listy adresowej. To można zmodyfikować tylko dla adresu docelowego. + + + New receiving address + Nowy adres odbiorczy + + + New sending address + Nowy adres wysyÅ‚ania + + + Edit receiving address + Nowy adres wysyÅ‚ania + + + Edit sending address + Edytuj adres wysyÅ‚ania + + + The entered address "%1" is not a valid PIVX address. + Wprowadzony adres "%1" nie jest prawidÅ‚owym adresem PIVX. + + + The entered address "%1" is already in the address book. + Wprowadzony adres "%1" jest już w książce adresowej. + + + Could not unlock wallet. + Nie można odblokować portfela. + + + New key generation failed. + Nie udaÅ‚o siÄ™ wygenerować nowego klucza. + + + + ExpandableButton + + Form + Forma + + + + FreespaceChecker + + A new data directory will be created. + Zostanie utworzony nowy katalog danych. + + + name + Nazwa + + + Directory already exists. Add %1 if you intend to create a new directory here. + Katalog już istnieje. Dodaj %1, jeÅ›li zamierzasz utworzyć tutaj nowy katalog. + + + Path already exists, and is not a directory. + Åšcieżka już istnieje i nie jest katalogiem. + + + Cannot create data directory here. + Nie można tutaj utworzyć katalogu danych. + + + + GovernancePage + + Form + Forma + + + GOVERNANCE + ZARZÄ„DZANIE + + + Update Proposals + Aktualizuj propozycje + + + Next super block: + NastÄ™pny super blok: + + + 0 + 0 + + + Blocks to next super block: + Bloków to nastÄ™pnego super bloku: + + + Days to budget payout (estimate): + Dni do wypÅ‚aty (szacunkowe): + + + Allotted budget: + Budżet przydzielony: + + + Budget left: + PozostaÅ‚y budżet: + + + Masternodes count: + Liczniki masternodes: + + + + HelpMessageDialog + + version + Wersja + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + O PIVX Core + + + Command-line options + Opcje wiersza poleceÅ„ + + + Usage: + użycie: + + + command-line options + Opcje wiersza poleceÅ„ + + + UI Options: + UI opcje + + + Choose data directory on startup (default: %u) + Wybierz katalog danych podczas uruchamiania (domyÅ›lnie: %u ) + + + Show splash screen on startup (default: %u) + Pokaż ekran powitalny podczas uruchamiania (domyÅ›lnie: %u ) + + + Set language, for example "de_DE" (default: system locale) + Ustaw jÄ™zyk, na przykÅ‚ad "pl_PL" (domyÅ›lnie: ustawienia regionalne) + + + Start minimized + Start zminimalizowany + + + Set SSL root certificates for payment request (default: -system-) + Ustaw certyfikaty SSL dla żądania zapÅ‚aty (domyÅ›lnie: -system-) + + + OK + OK + + + + Intro + + Welcome + Zapraszamy + + + Welcome to PIVX Core. + Zapraszamy do PIVX Core + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Ponieważ program jest uruchamiany po raz pierwszy, możesz wybrać miejsce, w którym PIVX Core bÄ™dzie przechowywać swoje dane. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core pobierze i zapisze kopiÄ™ Å‚aÅ„cucha bloków PIVX. Przynajmniej %1 GB danych zostanie zapisanych w tym katalogu, a jego liczba bÄ™dzie rosnąć z czasem. Portfel zostanie również zapisany w tym katalogu. + + + Use the default data directory + Użyj domyÅ›lnej Å›cieżki danych + + + CANCEL + ANULUJ + + + OK + OK + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + BÅ‚Ä…d: nie można utworzyć okreÅ›lonego katalogu danych "%1". + + + Error + BÅ‚Ä…d + + + %1 GB of free space available + %1 GB dostÄ™pnej pamiÄ™ci + + + (of %1 GB needed) + ( %1 GB potrzebne) + + + + LoadingDialog + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + + LockUnlock + + Form + Forma + + + + MNRow + + Form + Forma + + + + MasterNodeWizardDialog + + Dialog + Dialog + + + Name + Nazwa + + + Address + Adres + + + CANCEL + ANULUJ + + + OK + OK + + + The recipient address is not valid, please recheck. + Adres odbiorcy jest nieprawidÅ‚owy, proszÄ™ ponownie sprawdzić. + + + The amount to pay must be larger than 0. + Kwota do zapÅ‚aty musi być wiÄ™ksza niż 0. + + + The amount exceeds your balance. + Kwota przekracza saldo. + + + The total exceeds your balance when the %1 transaction fee is included. + Suma przekracza saldo po uwzglÄ™dnieniu opÅ‚aty transakcyjnej %1. + + + Duplicate address found, can only send to each address once per send operation. + Znaleziono zduplikowany adres, można wysÅ‚ać tylko do każdego adresu raz na operacjÄ™ wysyÅ‚ania. + + + Transaction creation failed! + Tworzenie transakcji nie powiodÅ‚o siÄ™! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Transakcja zostaÅ‚a odrzucona! Może siÄ™ tak zdarzyć, jeÅ›li część monet w portfelu już zostaÅ‚a wydana, na przykÅ‚ad jeÅ›li użyto kopii pliku wallet.dat, a monety zostaÅ‚y wydane w kopii, ale nie zostaÅ‚y oznaczone jako wydane. + + + Error: The wallet was unlocked only to anonymize coins. + BÅ‚Ä…d: portfel zostaÅ‚ odblokowany tylko w celu anonimizacji monet. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + OpÅ‚ata %1 razy wyższa niż %2 za kB jest uważana za niesamowicie wysokÄ… opÅ‚atÄ™. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + BÅ‚Ä…d: portfel zostaÅ‚ odblokowany tylko w celu anonimizacji monet. Odblokownie anulowanie. + + + + MasterNodesWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + No active Master Node yet + Brak aktywnego Master Node + + + PushButton + NaciÅ›nij przycisk + + + Delete + UsuÅ„ + + + + MnInfoDialog + + Form + Forma + + + Status: + Stan: + + + + MyAddressRow + + Form + Forma + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + NavMenuWidget + + Form + Forma + + + + OpenURIDialog + + Open URI + Otwórz URI + + + Open payment request from URI or file + Otwórz proÅ›bÄ™ o pÅ‚atność z URI lub pliku + + + TextLabel + TekstZakÅ‚adka + + + CANCEL + ANULUJ + + + OK + OK + + + Select payment request file + Wybierz plik żądania pÅ‚atnoÅ›ci + + + Select payment request file to open + Wybierz plik żądania pÅ‚atnoÅ›ci, aby otworzyć + + + + OptionButton + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + + OptionsDialog + + Options + Opcje + + + &Main + &Główne + + + Size of &database cache + &Rozmiar bazy danych cache + + + MB + MB + + + Number of script &verification threads + Liczba wÄ…tków skryptowych i weryfikacyjnych + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = zostaw za darmo) + + + W&allet + &Portfel + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + JeÅ›li wyÅ‚Ä…czysz wydawanie niepotwierdzonych reszt, reszta z transakcji nie może być użyta, dopóki transakcja nie uzyska co najmniej jednego potwierdzenia. Ma to również wpÅ‚yw na sposób obliczania salda. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Automatycznie otwórz port klienta PIVX na routerze. DziaÅ‚a to tylko wtedy, gdy twój router obsÅ‚uguje UPnP i jest wÅ‚Ä…czony. + + + Accept connections from outside + Akceptuj poÅ‚Ä…czenia z zewnÄ…trz + + + Allow incoming connections + Zezwól na przychodzÄ…ce poÅ‚Ä…czenia + + + &Connect through SOCKS5 proxy (default proxy): + &PoÅ‚Ä…cz przez serwer proxy SOCKS5 (domyÅ›lne proxy): + + + Expert + Ekspert + + + Automatically start PIVX after logging in to the system. + Automatycznie uruchom PIVX po zalogowaniu do systemu + + + &Start PIVX on system login + &Uruchom PIVX podczas logowania do systemu + + + Whether to show coin control features or not. + Czy pokazać cechy kontroli monety czy nie + + + Enable coin &control features + WÅ‚Ä…cz cechy kontroli monety + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Pokaż dodatkowÄ… tabelÄ™ wszystkich twoich masternodów w pierwszej szpalcie<br/> i wszystkich masternodów w sieci w drugiej + + + Show Masternodes Tab + Pokaż Masternode Tab + + + &Spend unconfirmed change + &Wydaj niepotwierdzonÄ… resztÄ™ + + + &Network + &Sieć + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + JÄ™zyk interfejsu użytkownika może być wybrany tutaj. Ustawienia ulegnÄ… zmianie po restarcie PIVX + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Brakuje jÄ™zyka bÄ…dź nieukoÅ„czona peÅ‚nego tÅ‚umaczenia? Pomóż w tÅ‚umaczeniu tutaj: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Mapuj port za pomocÄ… &UPnP + + + Enable automatic minting of PIV units to zPIV + WÅ‚Ä…cz automatyczny minting PIV do zPIV + + + Enable zPIV Automint + WÅ‚Ä…cz zPIV Automint + + + Enable automatic zPIV minting from specific addresses + WÅ‚Ä…cz automatyczne wybijanie zPIV-ów z okreÅ›lonych adresów + + + Enable Automint Addresses + WÅ‚Ä…cz adresy Automint + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Procent PIV, które sÄ… automatycznie konwertowane na zPIV za pomocÄ… protokoÅ‚u Zerocoin (min: 10%) + + + Percentage of autominted zPIV + Procent automint zPIV + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Zaczekaj z automatycznÄ… konwersjÄ… na Zerocoin, aż bÄ™dzie dostÄ™pna wystarczajÄ…ca wartość PIV dla tego nominaÅ‚u + + + Preferred Automint zPIV Denomination + Preferowane nominaÅ‚y Automint zPIV + + + Stake split threshold: + Próg podziaÅ‚u stawki 'stake' : + + + Connect to the PIVX network through a SOCKS5 proxy. + PoÅ‚Ä…cz z sieciÄ… PIVX poprzez SOCKS5 proxy. + + + Proxy &IP: + Proxy &IP + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + Adres IP proxy (np. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Port + + + Port of the proxy (e.g. 9050) + Port proxy (np. 9050) + + + &Window + &Okno + + + Show only a tray icon after minimizing the window. + Pokaż tylko ikonkÄ™ po zminimalizowaniu okna. + + + &Minimize to the tray instead of the taskbar + &Zminimalizuj do tray zamiast do paska zadaÅ„ + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Zminimalizuj zamiast wychodzić z aplikacji, gdy okno jest zamkniÄ™te. Po wÅ‚Ä…czeniu tej opcji aplikacja zostanie zamkniÄ™ta dopiero po wybraniu opcji ZakoÅ„cz w menu. + + + M&inimize on close + &Zminimalizuj przy zamkniÄ™ciu + + + &Display + &Pokaż + + + User Interface &language: + Interfejs użytkownika &JÄ™zyk. + + + User Interface Theme: + Motyw interfejsu użytkownika: + + + Unit to show amounts in: + Jednostka pokazujÄ…ca kwoty: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Nagrody ze stakingu lub masternode, które nie sÄ… jeszcze dojrzaÅ‚e + + + Decimal digits + Liczby dziesiÄ™tne + + + Hide empty balances + Ukryj puste saldo + + + Hide orphan stakes in transaction lists + Ukryj osierocone stakes w liÅ›cie tranzakcji + + + Hide orphan stakes + Ukryj osierocone stakes + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + ZewnÄ™trzne adresy URL (np. Eksplorator bloków), które pojawiajÄ… siÄ™ na karcie transakcji jako elementy menu kontekstowego. %s w adresie URL jest zastÄ…pione hashem transakcji. Wielokrotne URL sÄ… oddzielone pionowÄ… liniÄ… |. + + + Third party transaction URLs + Adresy URL transakcji stron trzecich + + + Active command-line options that override above options: + Aktywne opcje wiersza polecenia, które zastÄ™pujÄ… powyższe opcje: + + + Reset all client options to default. + Zresetuj wszystkie ustawienia by przywrócić ustawienia domyÅ›lne + + + &Reset Options + &Opcje resetowania + + + &OK + &OK + + + &Cancel + &Anuluj + + + Any + jakikolwiek + + + default + domyÅ›lny + + + none + brak + + + Confirm options reset + Zatwierdź resetowanie opcji + + + Client restart required to activate changes. + Wymagany restart programu do aktywowania zmian. + + + Client will be shutdown, do you want to proceed? + Program zostanie zamkniÄ™ty, czy chcesz kontynuować? + + + This change would require a client restart. + Ta zmiana bÄ™dzie wymagaÅ‚a restartu programu. + + + The supplied proxy address is invalid. + Podany adres proxy jest nieprawidÅ‚owy + + + The supplied proxy port is invalid. + Podany port proxy jest nieprawidÅ‚owy. + + + The supplied proxy settings are invalid. + Podane ustawienia proxy sÄ… nieprawidÅ‚owe. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + Portfel + + + Node + WÄ™zeÅ‚ + + + &Show / Hide + &Pokaż/Ukryj + + + Show or hide the main Window + Pokaż lub ukryj główne okno + + + E&xit + &Wyjdź + + + Quit application + Wyjdź z aplikacji + + + PIVX Core client + PIVX Core klient + + + Error + BÅ‚Ä…d + + + Warning + Ostrzeżenie + + + Information + Informacje + + + Sent MultiSend transaction + WysÅ‚ane transakcje MultiWysyÅ‚ki + + + Sent transaction + WysÅ‚ane transakcje + + + Incoming transaction + PrzychodzÄ…ce transakcje + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Data: %1 +Liczba: %2 +Typ: %3 +Adres: %4 + + + + A fatal error occurred. PIVX can no longer continue safely and will quit. + WystÄ…piÅ‚ bÅ‚Ä…d krytyczny. PIVX nie może już dziaÅ‚ać bezpiecznie i zakoÅ„czy dziaÅ‚anie. + + + + PWidget + + + PaymentServer + + Payment request error + BÅÄ„D żądania pÅ‚atnoÅ›ci + + + URI handling + ObsÅ‚uga URI + + + Payment request fetch URL is invalid: %1 + Adres URL żądania zapÅ‚aty jest nieprawidÅ‚owy: %1 + + + Payment request file handling + ObsÅ‚uga plików żądaÅ„ pÅ‚atnoÅ›ci + + + Invalid payment address %1 + NieprawidÅ‚owy adres pÅ‚atnoÅ›ci %1 + + + Cannot start pivx: click-to-pay handler + Nie można uruchomić pivx: click-to-pay handler + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + Nie można przeanalizować identyfikatora URI! Może to być spowodowane nieprawidÅ‚owym adresem PIVX lub nieprawidÅ‚owymi parametrami URI. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Plik żądania pÅ‚atnoÅ›ci nie może zostać odczytany! PrzyczynÄ… może być niepoprawny plik żądania pÅ‚atnoÅ›ci. + + + Payment request rejected + Żądanie pÅ‚atnoÅ›ci odrzucone + + + Payment request network doesn't match client network. + Sieć żądaÅ„ pÅ‚atnoÅ›ci nie jest zgodna z sieciÄ… klienta. + + + Payment request has expired. + Å»adanie pÅ‚atnoÅ›ci straciÅ‚o ważność + + + Payment request is not initialized. + Żądanie pÅ‚atnoÅ›ci nie zainicjowane + + + Unverified payment requests to custom payment scripts are unsupported. + Niezweryfikowane żądania pÅ‚atnoÅ›ci dotyczÄ…ce niestandardowych skryptów pÅ‚atnoÅ›ci sÄ… nieobsÅ‚ugiwane. + + + Requested payment amount of %1 is too small (considered dust). + Żądana kwota pÅ‚atnoÅ›ci %1 jest za maÅ‚a (za pyÅ‚). + + + Refund from %1 + Zwrot %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Żądanie pÅ‚atnoÅ›ci %1 jest za duże ( %2 bajty, dozwolone %3 bajty). + + + Payment request DoS protection + Wniosek o pÅ‚atność Ochrona DoS + + + Error communicating with %1: %2 + BÅ‚Ä…d komunikacji z %1: %2 + + + Payment request cannot be parsed! + Żądania pÅ‚atnoÅ›ci nie można przeanalizować! + + + Bad response from server %1 + ZÅ‚a odpowiedź z serwera %1 + + + Network request error + BÅ‚Ä…d żądania sieci + + + Payment acknowledged + PÅ‚atność potwierdzona + + + + PeerTableModel + + Address/Hostname + adres / nazwa hosta + + + Version + Wersja + + + Ping Time + Czas Pingu + + + + PrivacyWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + PushButton + NaciÅ›nij przycisk + + + No active Master Node yet + Brak aktywnego Master Node + + + + ProposalFrame + + Open proposal page in browser + Otwórz stronÄ™ propozycji w przeglÄ…darce + + + remaining payment(s). + pozostaÅ‚e pÅ‚atnoÅ›ci.() + + + Yes: + Tak: + + + Abstain: + Wstrzymać siÄ™: + + + No: + Nie: + + + A proposal URL can be used for phishing, scams and computer viruses. Open this link only if you trust the following URL. + + Adres URL propozycji może być używany do phishingu, oszustw i wirusów komputerowych. Otwórz ten link tylko wtedy, gdy ufasz poniższemu adresowi URL. + + + + Open link + Otwórz link + + + Copy link + Kopiuj link + + + Wallet Locked + Portfel zablokowany + + + You must unlock your wallet to vote. + Aby gÅ‚osować, musisz odblokować portfel. + + + Do you want to vote %1 on + Czy chcesz gÅ‚osować na %1 + + + using all your masternodes? + używać wszystkich swoich masternodów? + + + Proposal Hash: + Hash propozycji: + + + Proposal URL: + URL propozycji: + + + Confirm Vote + Potwierdź gÅ‚osowanie + + + Vote Results + Wyniki gÅ‚osowania + + + + QObject + + Amount + Ilość + + + Enter a PIVX address (e.g. %1) + Wprowadź adres PIVX (np. %1) + + + %1 d + %1 d + + + %1 h + %1 g + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + Sieć + + + BLOOM + BLOOM + + + ZK_BLOOM + ZK_BLOOM + + + UNKNOWN + NIEZNANY + + + None + Brak + + + N/A + N/A + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" does not exist. + BÅ‚Ä…d: OkreÅ›lony katalog danych „%1†nie istnieje. + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + BÅ‚Ä…d: Nie można przeanalizować pliku konfiguracyjnego: %1. Używaj tylko skÅ‚adni klucz=wartość. + + + Error: Invalid combination of -regtest and -testnet. + BÅ‚Ä…d: nieprawidÅ‚owa kombinacja -regtest i -testnet. + + + Error reading masternode configuration file: %1 + BÅ‚Ä…d odczytu pliku konfiguracyjnego masternode: %1 + + + PIVX Core didn't yet exit safely... + PIVX Core nie zamknÄ… siÄ™ jeszcze bezpiecznie ... + + + + RPCConsole + + Tools window + Okno narzÄ™dzi + + + &Information + &Informacje + + + General + Generalne + + + Name + Nazwa + + + Client name + Nazwa klienta + + + N/A + N/A + + + Number of connections + Liczba poÅ‚Ä…czeÅ„ + + + &Open + &Otwórz + + + Startup time + Czas startupu + + + Network + Sieć + + + Last block time + Czas ostatniego bloku + + + Debug log file + Debuguj plik log + + + Build date + Data zbudowania + + + Current number of blocks + Bieżąca liczba bloków + + + Client version + Wersja clienta + + + Using BerkeleyDB version + Używanie wersji BerkeleyDB + + + Block chain + ÅaÅ„cuch bloków + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Otwórz plik dziennika debugowania PIVX z bieżącego katalogu danych. Może to potrwać kilka sekund w przypadku dużych plików dziennika. + + + Number of Masternodes + Liczba Masternode + + + &Console + &Konsola + + + Clear console + Wyczyść konsolÄ™ + + + &Network Traffic + &Ruch sieci + + + &Clear + &Wyczyść + + + Totals + Razem + + + Received + Otrzymano + + + Sent + WysÅ‚ano + + + &Peers + &Peers + + + Banned peers + Zbanowane peery -punkty sieciowe- + + + Select a peer to view detailed information. + Wybierz peer by zobaczyć szczegółowe informacje + + + Whitelisted + Dodane do biaÅ‚ej listy + + + Direction + Kierunek + + + Protocol + Protokół + + + Version + Wersja + + + Services + UsÅ‚ugi + + + Ban Score + Wynik Ban + + + Connection Time + Czas poÅ‚Ä…czenia + + + Last Send + OStatnio wysÅ‚ano + + + Last Receive + Ostatnio otrzymano + + + Bytes Sent + Bajty wysÅ‚ane + + + Bytes Received + Bajty otrzymane + + + Ping Time + Czas Pingu + + + &Wallet Repair + &Napraw portfel + + + Delete local Blockchain Folders + UsuÅ„ lokalne foldery Blockchain + + + Wallet In Use: + Portfel w użyciu: + + + Starting Block + Startuje Blok + + + Synced Headers + Zsynchronizowane nagłówki + + + Synced Blocks + Zsynchronizowane Bloki + + + The duration of a currently outstanding ping. + Aktualny czas polecenia ping. + + + Ping Wait + Ping czeka + + + Time Offset + Przesuniecie Czasu + + + Custom Backup Path: + Standardowa Å›cieżka kopii zapasowej: + + + Custom zPIV Backup Path: + standardowa Å›cieżka kopii zapasowej zPIV: + + + Custom Backups Threshold: + Próg standardowych kopii zapasowych: + + + Salvage wallet + Odzyskaj portfel + + + Attempt to recover private keys from a corrupt wallet.dat. + Próba odzyskania kluczy prywatnych z uszkodzonego pliku wallet.dat. + + + Rescan blockchain files + Reskanuj pliki Å‚aÅ„cucha bloków + + + Rescan the block chain for missing wallet transactions. + Ponownie przeskanuj Å‚aÅ„cuch blokujÄ…cy w poszukiwaniu brakujÄ…cych transakcji w portfelu. + + + Recover transactions 1 + Odzyskaj transakcji 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Odzyskaj transakcje z blockchain (zachowaj metadane, np. WÅ‚aÅ›ciciela konta). + + + Recover transactions 2 + Odzyskaj transakcje 2 + + + Recover transactions from blockchain (drop meta-data). + Odzyskaj transakcje z blockchain (niezachowuj metadanych). + + + Upgrade wallet format + Ulepsz format portfela + + + Rebuild block chain index from current blk000??.dat files. + Przebuduj indeks Å‚aÅ„cucha bloków z bieżących plików blk000??.dat + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Usuwa wszystkie lokalne foldery blockchain, aby portfel synchronizowaÅ‚ siÄ™ od poczÄ…tku. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + Poniższe przyciski uruchomiÄ… ponownie portfel z opcjami wiersza poleceÅ„, aby naprawić portfel, naprawić problemy z uszkodzonymi plikami blockhain lub brakujÄ…cymi / przestarzaÅ‚ymi transakcjami. + + + Wallet repair options. + Opcje naprawy portfela. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Uaktualnij portfel do najnowszego formatu podczas uruchamiania. (Uwaga: NIE jest to aktualizacja samego portfela!) + + + Rebuild index + Przebuduj indeks + + + In: + W + + + Out: + Z + + + Welcome to the PIVX RPC console. + Witamy w konsoli PIVX RPC. + + + &Disconnect Node + OdÅ‚Ä…cz wÄ™zeÅ‚ + + + Ban Node for + Zbanuj wÄ™zeÅ‚ na + + + 1 &hour + 1 &godzinÄ™ + + + 1 &day + 1 &dzieÅ„ + + + 1 &week + 1 &tydzieÅ„ + + + 1 &year + 1 &rok + + + &Unban Node + &UsuÅ„ bana na wÄ™zeÅ‚ + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Spowoduje to usuniÄ™cie lokalnych folderów blockchain, a portfel zsynchronizuje kompletny Blockchain od zera.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + To zajmuje sporo czasu i pobiera dużo danych.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Twoje transakcje i Å›rodki bÄ™dÄ… widoczne ponownie po zakoÅ„czeniu pobierania.<br /><br /> + + + Do you want to continue?.<br /> + Czy chcesz kontynuować?.<br /> + + + Confirm resync Blockchain + Potwierdź resynchronizacje Blockchain + + + Use up and down arrows to navigate history, and %1 to clear screen. + Użyj strzaÅ‚ek w górÄ™ iw dół, aby poruszać siÄ™ po historii, a %1, aby wyczyÅ›cić ekran. + + + Type <b>help</b> for an overview of available commands. + Wpisz <b>help</b>, aby uzyskać przeglÄ…d dostÄ™pnych poleceÅ„. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + OSTRZEÅ»ENIE: Scamery byÅ‚y aktywne, mówiÄ…c użytkownikom, aby wpisywali tutaj polecenia, kradnÄ…c ich zawartość portfela. Nie używaj tej konsoli bez peÅ‚nego zrozumienia konsekwencji polecenia. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (identyfikator wÄ™zÅ‚a: %1) + + + via %1 + przez %1 + + + never + nigdy + + + Inbound + PrzychodzÄ…ce + + + Outbound + WychodzÄ…ce + + + Yes + Tak + + + No + Nie + + + Unknown + Nieznane + + + + ReceiveDialog + + Dialog + Dialog + + + PushButton + NaciÅ›nij przycisk + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + ANULUJ + + + OK + OK + + + + ReceiveWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + + RecentRequestsTableModel + + Date + Data + + + Label + Etykieta + + + Message + Wiadomość + + + Address + Adres + + + Amount + Ilość + + + (no label) + (brak etykiety) + + + (no message) + (brak wiadomoÅ›ci) + + + (no amount) + (bez kwoty) + + + + RequestDialog + + Dialog + Dialog + + + Amount + Ilość + + + TextLabel + TekstZakÅ‚adka + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + ANULUJ + + + Label + Etykieta + + + Error + BÅ‚Ä…d + + + + SendChangeAddressDialog + + Dialog + Dialog + + + PushButton + NaciÅ›nij przycisk + + + CANCEL + ANULUJ + + + OK + OK + + + + SendCustomFeeDialog + + Form + Forma + + + CANCEL + ANULUJ + + + OK + OK + + + SAVE + ZAPISZ + + + + SendMultiRow + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + + SendWidget + + Send + WyÅ›lij + + + Amount + Ilość + + + Spend Zerocoin + Wydaj Zerocoin + + + zPIV is currently undergoing maintenance. + zPIV jest obecnie w trakcie konserwacji. + + + Version 1 zPIV require a security level of 100 to successfully spend. + Wersja 1 zPIV wymaga poziomu bezpieczeÅ„stwa 100, aby pomyÅ›lnie wydać. + + + Too much inputs ( + Za dużo wejść ( + + + ) needed. +Maximum allowed: + ) potrzebne. +Maksymalna dozwolona: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Albo wybierz wyższe nominaÅ‚y (potrzeba mniej wejść) albo zmniejsz kwotÄ™ do wydania. + + + Cannot store your own address as contact + Nie można zapisać wÅ‚asnego adresu jako kontaktu + + + New Contact Stored + Zapisano nowy kontakt + + + + SettingsBackupWallet + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + PushButton + NaciÅ›nij przycisk + + + Backup Wallet + Kopia zapasowa portfela + + + Wallet Data (*.dat) + Wallet Data (*.dat) + + + + SettingsBitToolWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + PushButton + NaciÅ›nij przycisk + + + Import Address + Adres importu + + + Clear + Wyczyść + + + Enter a PIVX address + Wpisz adres PIVX + + + The entered passphrase is invalid. + Podane hasÅ‚o jest nieprawidÅ‚owe + + + Allowed: 0-9,a-z,A-Z, + Dozwolone 0-9,a-z,A-Z + + + The entered address is invalid. + Podany adres jest nieprawidÅ‚owy + + + Please check the address and try again. + ProszÄ™ sprawdzić adres i spróbować ponownie + + + The entered address does not refer to a key. + Podany adres nie odnosi siÄ™ do klucza + + + Wallet unlock was cancelled. + Odblokowywanie anulowanie + + + Private key for the entered address is not available. + Prywatny klucz do podanego adresu nie jest dostÄ™pny + + + Failed to decrypt. + Nie udaÅ‚o siÄ™ odszyfrować. + + + Please check the key and passphrase and try again. + ProszÄ™ sprawdzić klucz i hasÅ‚o ponownie + + + Data Not Valid. + Dane sÄ… nieprawidÅ‚owe. + + + Please try again. + ProszÄ™ spróbować ponownie + + + Please wait while key is imported + ProszÄ™ czekać. Importowanie klucza. + + + + SettingsConsoleWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + Welcome to the PIVX RPC console. + Witamy w konsoli PIVX RPC. + + + Use up and down arrows to navigate history, and %1 to clear screen. + Użyj strzaÅ‚ek w górÄ™ iw dół, aby poruszać siÄ™ po historii, a %1, aby wyczyÅ›cić ekran. + + + Type <b>help</b> for an overview of available commands. + Wpisz <b>help</b>, aby uzyskać przeglÄ…d dostÄ™pnych poleceÅ„. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + OSTRZEÅ»ENIE: Scamery byÅ‚y aktywne, mówiÄ…c użytkownikom, aby wpisywali tutaj polecenia, kradnÄ…c ich zawartość portfela. Nie używaj tej konsoli bez peÅ‚nego zrozumienia konsekwencji polecenia. + + + + SettingsDisplayOptionsWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + PushButton + NaciÅ›nij przycisk + + + Decimal digits + Liczby dziesiÄ™tne + + + Hide empty balances + Ukryj puste saldo + + + SAVE + ZAPISZ + + + default + domyÅ›lny + + + + SettingsFaqWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + PushButton + NaciÅ›nij przycisk + + + + SettingsInformationWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + Information + Informacje + + + General + Generalne + + + Network + Sieć + + + In: + W + + + Out: + Z + + + + SettingsMainOptionsWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + SAVE + ZAPISZ + + + + SettingsMultisendDialog + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + CANCEL + ANULUJ + + + SAVE + ZAPISZ + + + + SettingsMultisendWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + No active Master Node yet + Brak aktywnego Master Node + + + Active + Aktywny + + + The entered address: %1 is invalid. +Please check the address and try again. + Wprowadzony adres: %1 jest nieprawidÅ‚owy. +Sprawdź adres i spróbuj ponownie. + + + The total amount of your MultiSend vector is over 100% of your stake reward + ÅÄ…czna kwota Twojego wektora MultiSend to ponad 100% nagrody za stake + + + MultiSend activated but writing settings to DB failed + Aktywowano funkcjÄ™ MultiSend, ale zapisanie ustawieÅ„ do bazy danych nie powiodÅ‚o siÄ™ + + + MultiSend activated + Aktywowano funkcjÄ™ MultiSend + + + MultiSend deactivated but writing settings to DB failed + Funkcja MultiSend zostaÅ‚a wyÅ‚Ä…czona, ale zapisywanie ustawieÅ„ do bazy danych nie powiodÅ‚o siÄ™ + + + MultiSend deactivated + Funkcja MultiSend zostaÅ‚a wyÅ‚Ä…czona + + + + SettingsSignMessageWidgets + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + PushButton + NaciÅ›nij przycisk + + + Clear + Wyczyść + + + Message + Wiadomość + + + Signature + Podpis + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Możesz podpisywać wiadomoÅ›ci ze swoimi adresami, aby udowodnić, że je posiadasz. Uważaj, aby nie podpisać niczego niejasnego, ponieważ ataki phishingowe mogÄ… skÅ‚onić CiÄ™ do podpisania Twojej tożsamoÅ›ci. Podawaj tylko w peÅ‚ni szczegółowe oÅ›wiadczenia, na które wyrażasz zgodÄ™. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Wprowadź adres podpisu, wiadomość (upewnij siÄ™, że dokÅ‚adnie kopiujesz wiersze, spacje, tabulatory itp.) i podpisz poniżej, aby zweryfikować wiadomość. Uważaj, aby nie wprowadzić wiÄ™cej w podpis niż w podpisanej wiadomoÅ›ci, aby uniknąć oszustwa przez atak typu "man-in-the-middle". + + + The entered address is invalid. + Podany adres jest nieprawidÅ‚owy + + + Please check the address and try again. + ProszÄ™ sprawdzić adres i spróbować ponownie + + + The entered address does not refer to a key. + Podany adres nie odnosi siÄ™ do klucza + + + Wallet unlock was cancelled. + Odblokowywanie anulowanie + + + Private key for the entered address is not available. + Prywatny klucz do podanego adresu nie jest dostÄ™pny + + + Message signing failed. + Podpisywanie wiadomoÅ›ci nie powiodÅ‚o siÄ™. + + + Message signed. + Wiadomość zostaÅ‚a podpisana. + + + The signature could not be decoded. + Podpis nie mógÅ‚ zostać zdekodowany. + + + Please check the signature and try again. + Sprawdź podpis i spróbuj ponownie. + + + The signature did not match the message digest. + Podpis nie pasuje do skrótu wiadomoÅ›ci. + + + Message verification failed. + Weryfikacja wiadomoÅ›ci nieudana. + + + Message verified. + Wiadomość zweryfikowana. + + + + SettingsWalletOptionsWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + PushButton + NaciÅ›nij przycisk + + + Wallet + Portfel + + + Stake split threshold: + Próg podziaÅ‚u stawki 'stake' : + + + Network + Sieć + + + Allow incoming connections + Zezwól na przychodzÄ…ce poÅ‚Ä…czenia + + + SAVE + ZAPISZ + + + + SettingsWalletRepairWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + PushButton + NaciÅ›nij przycisk + + + Attempt to recover private keys from a corrupt wallet.dat. + Próba odzyskania kluczy prywatnych z uszkodzonego pliku wallet.dat. + + + Recover transactions from blockchain (drop meta-data). + Odzyskaj transakcje z blockchain (niezachowuj metadanych). + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Usuwa wszystkie lokalne foldery blockchain, aby portfel synchronizowaÅ‚ siÄ™ od poczÄ…tku. + + + Salvage wallet + Odzyskaj portfel + + + Recover transactions 1 + Odzyskaj transakcji 1 + + + Recover transactions 2 + Odzyskaj transakcje 2 + + + Upgrade wallet format + Ulepsz format portfela + + + Rebuild index + Przebuduj indeks + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Spowoduje to usuniÄ™cie lokalnych folderów blockchain, a portfel zsynchronizuje kompletny Blockchain od zera.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + To zajmuje sporo czasu i pobiera dużo danych.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Twoje transakcje i Å›rodki bÄ™dÄ… widoczne ponownie po zakoÅ„czeniu pobierania.<br /><br /> + + + Do you want to continue?.<br /> + Czy chcesz kontynuować?.<br /> + + + Confirm resync Blockchain + Potwierdź resynchronizacje Blockchain + + + + SettingsWidget + + Form + Forma + + + TextLabel + TekstZakÅ‚adka + + + Wallet + Portfel + + + Options + Opcje + + + Information + Informacje + + + Confirm options reset + Zatwierdź resetowanie opcji + + + Client restart required to activate changes. + Wymagany restart programu do aktywowania zmian. + + + Client will be shutdown, do you want to proceed? + Program zostanie zamkniÄ™ty, czy chcesz kontynuować? + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core siÄ™ wyÅ‚Ä…cza ... + + + Do not shut down the computer until this window disappears. + Nie wyÅ‚Ä…czaj komputera, dopóki to okno nie zniknie. + + + + SnackBar + + Form + Forma + + + + Splash + + Form + Forma + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Wersja %1 + + + The Bitcoin Core developers + Twórcy Bitcoin Core + + + The Dash Core developers + Twórcy Dash Core + + + The PIVX Core developers + Twórcy PIVX Core + + + [testnet] + [testnet] + + + + TooltipMenu + + Form + Forma + + + Delete + UsuÅ„ + + + + TopBar + + Form + Forma + + + %1 and %2 + %1 i %2 + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open until %1 + Otwórz od %1 + + + conflicted + sprzeczne + + + %1/offline + %1/offline + + + %1/unconfirmed + %1/ niepotwierdzone + + + %1 confirmations + %1 potwierdzeÅ„ + + + %1/offline (verified via SwiftX) + %1/offline (zweryfikowany przez SwiftX) + + + %1/confirmed (verified via SwiftX) + %1/potwierdzony (zweryfikowany przez SwiftX) + + + %1 confirmations (verified via SwiftX) + %1 potwierdzeÅ„ (zweryfikowane przez SwiftX) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/offline (weryfikacja SwiftX w toku -%2 z %3 podpisów) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/potwierdzony (weryfikacja SwiftX w toku -%2 z %3 podpisów) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 potwierdzeÅ„ (weryfikacja SwiftX w toku -%2 z %3 podpisów) + + + %1/offline (SwiftX verification failed) + %1/offline (Weryfikacja SwiftX nie powiodÅ‚a siÄ™) + + + %1/confirmed (SwiftX verification failed) + %1/potwierdzony (Weryfikacja SwiftX nie powiodÅ‚a siÄ™) + + + Status + Status + + + , has not been successfully broadcast yet + , nie udaÅ‚o siÄ™ jeszcze nadać + + + Date + Data + + + Source + ŹródÅ‚o + + + Generated + Wygenerowano + + + From + Z + + + unknown + nieznany + + + To + Do + + + own address + wÅ‚asny adres + + + watch-only + watch-only + + + label + etykieta + + + Credit + Kredyt + + + not accepted + nie zaakceptowany + + + Debit + Debet + + + Total debit + Debet razem + + + Total credit + CaÅ‚kowity kredyt + + + Transaction fee + OpÅ‚ata transakcyjna + + + Net amount + Kwota netto + + + Message + Wiadomość + + + Comment + Komentarz + + + Transaction ID + Identyfikator transakcji + + + Output index + Indeks wyjÅ›ciowy + + + Merchant + Kupiec + + + Debug information + Debug informacje + + + Transaction + Transakcja + + + Inputs + WejÅ›cia + + + Amount + Ilość + + + true + prawdziwe + + + false + faÅ‚szywe + + + + TransactionTableModel + + Date + Data + + + Type + Typ + + + Address + Adres + + + Open until %1 + Otwórz od %1 + + + Offline + Offline + + + Unconfirmed + Niepotwierdzone + + + Confirming (%1 of %2 recommended confirmations) + Potwierdzanie (%1 z %2 zalecanych potwierdzeÅ„) + + + Confirmed (%1 confirmations) + Potwierdzone (%1 potwierdzeÅ„) + + + Conflicted + kolidujÄ…ce + + + Immature (%1 confirmations, will be available after %2) + NiedojrzaÅ‚e (potwierdzenia %1, bÄ™dÄ… dostÄ™pne po %2) + + + This block was not received by any other nodes and will probably not be accepted! + Ten blok nie zostaÅ‚ odebrany przez żadne inne wÄ™zÅ‚y i prawdopodobnie nie zostanie zaakceptowany! + + + Received with + Otrzymano z + + + Masternode Reward + Nagroda Masternode + + + Received from + Otrzymane od + + + Received via Obfuscation + Otrzymane przez Zamaskowanie + + + PIV Stake + PIV Stake + + + zPIV Stake + zPIV Stake + + + Obfuscation Denominate + Zamaskowanie Denominacja + + + Obfuscation Collateral Payment + Zamaskowanie Zabezpieczenie pÅ‚atnoÅ›ci + + + Obfuscation Make Collateral Inputs + Wprowadź zabezpieczenia Zaciemniania + + + Obfuscation Create Denominations + Zamaskowanie Utwórz denominacje + + + Converted PIV to zPIV + przekonwertowany PIV to zPIV + + + Spent zPIV + Wydaj zPIV + + + Received PIV from zPIV + Otrzymano PIV z zPIV + + + Minted Change as zPIV from zPIV Spend + Reszta Minted jako zPIV z WysyÅ‚ki zPIV + + + Converted zPIV to PIV + przekonwertowany zPIV to PIV + + + Sent to + WyÅ›lij do + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Orphan Block - wygenerowany, ale nie zakceptowany. To nie ma wpÅ‚ywu na twoje saldo. + + + Payment to yourself + ZapÅ‚ata dla siebie + + + Mined + wydobyty + + + Obfuscated + Zamaskowane + + + watch-only + watch-only + + + (n/a) + (nie dotyczy) + + + Transaction status. Hover over this field to show number of confirmations. + Status transakcji. Najedź kursorem na to pole, aby wyÅ›wietlić liczbÄ™ potwierdzeÅ„. + + + Date and time that the transaction was received. + Data i godzina otrzymania transakcji. + + + Type of transaction. + Rodzaj transakcji. + + + Whether or not a watch-only address is involved in this transaction. + Niezależnie od tego, czy w transakcji bierze udziaÅ‚ adres typu watch-only. + + + Destination address of transaction. + Adres docelowy transakcji. + + + Amount removed from or added to balance. + Kwota usuniÄ™ta z salda lub dodana do salda. + + + + TxDetailDialog + + Form + Forma + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + Fee: + OpÅ‚ata: + + + Status: + Stan: + + + TextLabel + TekstZakÅ‚adka + + + CANCEL + ANULUJ + + + OK + OK + + + SEND + WyÅ›lij + + + Unknown + Nieznane + + + + TxRow + + Form + Forma + + + + WalletModel + + Send Coins + WyÅ›lij monety + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftX nie obsÅ‚uguje wysyÅ‚ania wysokich wartoÅ›ci. Transakcje sÄ… obecnie ograniczone do %1 PIV. + + + + WalletPasswordDialog + + Dialog + Dialog + + + TextLabel + TekstZakÅ‚adka + + + PushButton + NaciÅ›nij przycisk + + + CANCEL + ANULUJ + + + OK + OK + + + + WelcomeContentWidget + + Dialog + Dialog + + + Welcome + Zapraszamy + + + default + domyÅ›lny + + + + ZPivControlDialog + + Select zPIV to Spend + Wybierz zPIV do wydania + + + Coin Control + Kontrola monet + + + PushButton + NaciÅ›nij przycisk + + + Quantity: + Ilość: + + + Is Spendable + do wydania + + + 0 + 0 + + + Select/Deselect All + Wybierz / Odznacz wszystko + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = zachowaj tx meta dane np. WÅ‚aÅ›ciciel konta i informacje o żądaniu pÅ‚atnoÅ›ci, 2 = porzuć tx meta dane) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Zezwalaj na poÅ‚Ä…czenia JSON-RPC z okreÅ›lonego źródÅ‚a. Ważny dla <ip> sÄ… pojedynczym IP (na przykÅ‚ad 1.2.3.4), sieciÄ… / maskÄ… sieci (np. 1.2.3.4/255.255.255.0) lub sieciÄ… / CIDR (na przykÅ‚ad 1.2.3.4/24). Ta opcja może być okreÅ›lona wiele razy + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Zwiąż siÄ™ z podanym adresem i zawsze go sÅ‚uchaj. Użyj [host]:port dla IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Powiąż z podanym adresem i poÅ‚Ä…czeniami whitelist. Użyj [host]:port dla IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Powiąż z podanym adresem, aby odsÅ‚uchać poÅ‚Ä…czenia JSON-RPC. Użyj [host]:port dla IPv6. Ta opcja może być okreÅ›lona wiele razy (domyÅ›lnie: powiÄ…zanie ze wszystkimi interfejsami) + + + Calculated accumulator checkpoint is not what is recorded by block index + Obliczony punkt kontrolny akumulatora nie jest tym, co jest rejestrowane przez indeks bloku + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Nie można uzyskać dostÄ™pu do katalogu danych %s. PIVX Core prawdopodobnie już dziaÅ‚a. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + ZmieÅ„ zachowanie automatycznego gÅ‚osowania w budżecie finalizowanym. mode=auto: GÅ‚osuj tylko na dokÅ‚adne sfinalizowane dopasowanie budżetu do mojego wygenerowanego budżetu. (ciÄ…g, domyÅ›lny: auto) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Limit bezpÅ‚atnych transakcji do <n>* 1000 bajtów na minutÄ™ (domyÅ›lnie:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Twórz nowe pliki z domyÅ›lnymi uprawnieniami systemowymi zamiast umask 077 (skuteczne tylko przy wyÅ‚Ä…czonej funkcji portfela) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + UsuÅ„ wszystkie transakcje portfela i odzyskaj tylko część Å‚aÅ„cucha blokowego -reskan przy uruchomieniu + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + UsuÅ„ wszystkie wydane zerocoin i mint, które zostaÅ‚y zapisane w bazie danych blockchain i ponownie je zindeksuj (0-1, domyÅ›lnie: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Dystrybuowane w ramach licencji oprogramowania MIT, patrz plik towarzyszÄ…cy COPYING lub <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic Zerocoin minting from specific addresses (0-1, default: %u) + WÅ‚Ä…cz automatyczne wybijanie Zerocoin z okreÅ›lonych adresów (0-1, domyÅ›lnie:%u) + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + WÅ‚Ä…cz automatyczne kopie zapasowe portfela uruchamiane po każdym mintingu zPIV (0-1, domyÅ›lnie: %u) + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + WÅ‚Ä…czanie lub wyÅ‚Ä…czanie funkcji stake dla przychodzÄ…cych PIV (0-1, domyÅ›lnie:%u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + WÅ‚Ä…czanie lub wyÅ‚Ä…czanie funkcji staking dla nowych zPIV (0-1, domyÅ›lnie: %u) + + + Enable spork administration functionality with the appropriate private key. + WÅ‚Ä…cz funkcjÄ™ zarzÄ…dzania sporkami za pomocÄ… odpowiedniego klucza prywatnego. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Wejdź w tryb testu regresyjnego, który wykorzystuje specjalny Å‚aÅ„cuch, w którym bloki można natychmiast rozwiÄ…zać. + + + Error: Listening for incoming connections failed (listen returned error %s) + BÅ‚Ä…d: OdsÅ‚uchiwanie przychodzÄ…cych poÅ‚Ä…czeÅ„ nie powiodÅ‚o siÄ™ (zwrócony bÅ‚Ä…d %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + BÅ‚Ä…d: transakcja jest wiÄ™ksza niż maksymalny dozwolony rozmiar transakcji! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + BÅ‚Ä…d: Znaleziono nieobsÅ‚ugiwany argument -socks. Ustawienie wersji SOCKS nie jest już możliwe, obsÅ‚ugiwane sÄ… tylko serwery proxy SOCKS5. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Wykonaj polecenie, gdy otrzymasz odpowiednie powiadomienie lub zobaczysz naprawdÄ™ dÅ‚ugi fork ( %s w cmd zostanie zastÄ…piony przez komunikat) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Wykonaj polecenie, gdy zmieni siÄ™ transakcja ( %s w cmd jest zastÄ…pione przez TxID) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Wykonaj polecenie, gdy najlepszy blok zostanie zmieniony ( %s w cmd zostanie zastÄ…pione hash blokiem) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + OpÅ‚aty za przekazywanie (w PIV/Kb) mniejsze od tej sÄ… uznawane za opÅ‚aty zerowe (domyÅ›lnie: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + OpÅ‚aty za tworzenie transakcji (w PIV/Kb) mniejsze od tej sÄ… uznawane za opÅ‚aty zerowe (domyÅ›lnie: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Opróżniaj dziennik z pamiÄ™ci dysku co <n> megabajtów (domyÅ›lnie:%u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + JeÅ›li paytxfee nie jest ustawiony, należy ustawić odpowiedniÄ… opÅ‚atÄ™, aby transakcje zaczęły potwierdzać Å›rednio w n blokach (domyÅ›lnie:%u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + W tym trybie -genproclimit kontroluje, ile bloków jest generowanych natychmiast. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + NiewystarczajÄ…ce lub niewystarczajÄ…co potwierdzone fundusze, może trzeba poczekać kilka minut i spróbować ponownie. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + NieprawidÅ‚owa kwota dla -maxtxfee=<amount>: „%s†(musi być co najmniej minimalnÄ… opÅ‚atÄ… %s, aby zapobiec zablokowanym transakcjom) + + + Keep the specified amount available for spending at all times (default: 0) + Zawsze utrzymuj okreÅ›lonÄ… kwotÄ™ przeznaczonÄ… na wydatki (domyÅ›lnie: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Loguj priorytet transakcji i opÅ‚atÄ™ za kB, gdy kopiesz bloki (domyÅ›lnie:%u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Utrzymuj peÅ‚ny indeks transakcji, używany przez wywoÅ‚anie getrawtransaction rpc (domyÅ›lnie:%u) + + + Maximum average size of an index occurrence in the block spam filter (default: %u) + Maksymalny Å›redni rozmiar wystÄ…pienia indeksu w filtrze blokujÄ…cym spam (domyÅ›lnie: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maksymalny rozmiar danych w transakcjach noÅ›ników danych przekazywany i kopany (domyÅ›lnie: %u) + + + Maximum size of the list of indexes in the block spam filter (default: %u) + Maksymalny rozmiar listy indeksów w blokowym filtrze spamu (domyÅ›lnie: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maksymalna Å‚Ä…czna opÅ‚ata za pojedynczÄ… transakcjÄ™ , ustawienie zbyt niskiej opÅ‚aty może przerwać duże transakcje (domyÅ›lnie: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Liczba sekund, po których nastÄ…pi ponowne Å‚Ä…czenie siÄ™ (domyÅ›lnie: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + Obfuscation używa dokÅ‚adnych kwot denominowanych do wysyÅ‚ania Å›rodków, może po prostu trzeba anonimizować wiÄ™cej monet. + + + Output debugging information (default: %u, supplying <category> is optional) + Informacje o debugowaniu wyjÅ›cia (domyÅ›lnie: %u, dostarczanie <category> jest opcjonalne) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Zapytanie o adresy peer za pomocÄ… DNS lookup, jeÅ›li adresy sÄ… low (domyÅ›lnie: 1 chyba, że -connect) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Losuj dane uwierzytelniajÄ…ce dla każdego poÅ‚Ä…czenia proxy. To umożliwia izolacjÄ™ strumienia Tora (domyÅ›lnie: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Wymagaj wysokiego priorytetu przy przekazywaniu transakcji bezpÅ‚atnych lub o niskich opÅ‚atach (domyÅ›lnie: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + WyÅ›lij informacje Å›ledzenia/debugowania do konsoli zamiast pliku debug.log (domyÅ›lnie: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Ustaw maksymalny rozmiar transakcji o wysokim priorytecie / niskich opÅ‚atach w bajtach (domyÅ›lnie: %d) + + + Set the number of included blocks to precompute per cycle. (minimum: %d) (maximum: %d) (default: %d) + Ustaw liczbÄ™ doÅ‚Ä…czonych bloków do wstÄ™pnego obliczenia cyklu. (minimum: %d) (maksimum: %d) (domyÅ›lnie: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Ustaw liczbÄ™ wÄ…tków weryfikujÄ…cych skrypty (%u do %d, 0 = auto, <0 = pozostaw tyle rdzeni wolnych, domyÅ›lnie: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Ustaw liczbÄ™ wÄ…tków do generowania monet, jeÅ›li jest wÅ‚Ä…czona (-1 = wszystkie rdzenie, domyÅ›lnie: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Pokaż N potwierdzeÅ„ dla pomyÅ›lnie zablokowanej transakcji (0-9999, domyÅ›lnie: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + ObsÅ‚uga filtrowania bloków i transakcji za pomocÄ… filtrów bloom (domyÅ›lnie: %u) + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + CaÅ‚kowita dÅ‚ugość string wersji sieciowej (%i) przekracza maksymalnÄ… dÅ‚ugość (%i). Zmniejsz liczbÄ™ lub rozmiar uacomments. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Nie można podÅ‚Ä…czyć %s na tym komputerze. PIVX Core prawdopodobnie już dziaÅ‚a. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Nie można znaleźć wystarczajÄ…cej liczby funduszy ukrytych dla tej transakcji. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Nie można zlokalizować wystarczajÄ…co dużo zaciemnionych Åšrodków. Ta transakcja nie jest równa 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Nie można zlokalizować wystarczajÄ…co dużo Åšrodków. Ta transakcja nie jest równa 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Oddzielne użycie proxy SOCKS5, aby dotrzeć do peerów za poÅ›rednictwem ukrytych usÅ‚ug Tora (domyÅ›lnie: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Ostrzeżenie: -maxtxfee jest ustawiony bardzo wysoko! OpÅ‚atÄ… tak dużą można by zapÅ‚acić za pojedynczÄ… transakcjÄ™. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Ostrzeżenie: -paytxfee jest ustawione bardzo wysoko! Jest to opÅ‚ata transakcyjna, którÄ… zapÅ‚acisz, jeÅ›li wyÅ›lesz transakcjÄ™. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Ostrzeżenie: sprawdź, czy data i godzina komputera sÄ… poprawne! JeÅ›li zegar jest nieprawidÅ‚owy, PIVX Core nie bÄ™dzie dziaÅ‚ać poprawnie. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Ostrzeżenie: Wydaje siÄ™, że sieć nie zgadza siÄ™ w peÅ‚ni! Niektórzy górnicy wydajÄ… siÄ™ mieć problemy. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Ostrzeżenie: Wydaje siÄ™, że nie zgadzamy siÄ™ caÅ‚kowicie z naszymi peer-ami! Może zajść potrzeba aktualizacji lub inne wÄ™zÅ‚y mogÄ… wymagać aktualizacji. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Ostrzeżenie: bÅ‚Ä…d odczytu wallet.dat! Wszystkie klucze wczytujÄ… siÄ™ poprawnie, ale może brakować danych transakcji lub wpisów w książce adresowej lub sÄ… one nieprawidÅ‚owe. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Ostrzeżenie: uszkodzony plik wallet.dat, dane odzyskane! Oryginalny wallet.dat zapisany jako wallet.{timestamp}.bak w %s; jeÅ›li saldo lub transakcje sÄ… nieprawidÅ‚owe, należy je przywrócić z kopii zapasowej. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + BiaÅ‚a lista peerów Å‚Ä…czÄ…cych siÄ™ z podanej maski sieciowej lub adresu IP. Można podać wiele razy. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Peery na biaÅ‚ej liÅ›cie nie mogÄ… być zbanowane przez DoS, a ich transakcje sÄ… zawsze przekazywane, nawet jeÅ›li sÄ… już w pamiÄ™ci, przydatne np. na gatewaya + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + Musisz okreÅ›lić masternodeprivkey w konfiguracji. Aby uzyskać pomoc, zapoznaj siÄ™ z dokumentacjÄ…. + + + (51472 could be used only on mainnet) + (51472 może być używany tylko w sieci mainnet) + + + (default: %s) + (domyÅ›lnie: %s) + + + (default: 1) + (domyÅ›lnie: 1) + + + (must be 51472 for mainnet) + (musi być 51472 dla mainnetu) + + + Accept command line and JSON-RPC commands + Zaakceptuj polecenia linii poleceÅ„ i JSON-RPC + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Akceptuj poÅ‚Ä…czenia z zewnÄ…trz (domyÅ›lnie: 1 jeÅ›li nie -proxy lub -connect) + + + Accept public REST requests (default: %u) + Akceptuj publiczne żądania REST (domyÅ›lnie: %u) + + + Add a node to connect to and attempt to keep the connection open + Dodaj wÄ™zeÅ‚ do poÅ‚Ä…czenia i spróbuj je utrzymać otwarte + + + Adding Wrapped Serials supply... + Dodanie zapakowanych dostaw seryjnych ... + + + Allow DNS lookups for -addnode, -seednode and -connect + Zezwalaj na wyszukiwanie DNS dla -addnode, -seednode i -connect + + + Always query for peer addresses via DNS lookup (default: %u) + Zawsze sprawdzaj adresy peer za pomocÄ… wyszukiwania DNS (domyÅ›lnie: %u) + + + Append comment to the user agent string + DoÅ‚Ä…cz komentarz do ciÄ…gu agenta użytkownika + + + Attempt to recover private keys from a corrupt wallet.dat + Próba odzyskania kluczy prywatnych z uszkodzonego wallet.dat + + + Automatically create Tor hidden service (default: %d) + Automatycznie utwórz usÅ‚ugÄ™ ukrytÄ… Tora (domyÅ›lnie: %d) + + + Block creation options: + Opcje tworzenia bloku: + + + Calculating missing accumulators... + Obliczanie brakujÄ…cych akumulatorów ... + + + Cannot downgrade wallet + Nie można cofnąć wersji portfela + + + Cannot resolve -bind address: '%s' + Nie można odwzorować adresu -bind: '%s' + + + Cannot resolve -externalip address: '%s' + Nie można odwzorować adresu -externalip: '%s' + + + Cannot resolve -whitebind address: '%s' + Nie można odwzorować adresu -whitebind: '%s' + + + CoinSpend: failed check + CoinSpend: nieudane sprawdzenie + + + Connect only to the specified node(s) + PoÅ‚Ä…cz tylko z okreÅ›lonym wÄ™zÅ‚em (wÄ™zÅ‚ami) + + + Connect through SOCKS5 proxy + PoÅ‚Ä…cz przez serwer proxy SOCKS5 + + + Connect to a node to retrieve peer addresses, and disconnect + PoÅ‚Ä…cz siÄ™ z wÄ™zÅ‚em, aby pobrać adresy równorzÄ™dne, i rozÅ‚Ä…cz siÄ™ + + + Connection options: + Opcje poÅ‚Ä…czenia: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Core Developers + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i The Dash Core Developers + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i The PIVX Core Developers + + + Corrupted block database detected + Wykryto uszkodzonÄ… bazÄ™ danych bloków + + + Could not parse masternode.conf + Nie można przetworzyć pliku masternode.conf + + + Debugging/Testing options: + Opcje debugowania/testowania: + + + Delete blockchain folders and resync from scratch + UsuÅ„ foldery blockchain i zsynchronizuj ponownie od podstaw + + + Disable OS notifications for incoming transactions (default: %u) + WyÅ‚Ä…cz powiadomienia systemu operacyjnego dla transakcji przychodzÄ…cych (domyÅ›lnie:%u) + + + Disable safemode, override a real safe mode event (default: %u) + WyÅ‚Ä…cz tryb bezpieczny, zastÄ…p rzeczywiste zdarzenie w trybie bezpiecznym (domyÅ›lnie:%u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Odkryj wÅ‚asny adres IP (domyÅ›lnie: 1 podczas sÅ‚uchania i bez -externalip) + + + Do not load the wallet and disable wallet RPC calls + Nie Å‚aduj portfela i nie wyÅ‚Ä…czaj wywoÅ‚aÅ„ RPC portfela + + + Do you want to rebuild the block database now? + Czy chcesz teraz odbudować block database danych? + + + Done loading + Åadowanie ukoÅ„czone + + + Enable automatic Zerocoin minting (0-1, default: %u) + WÅ‚Ä…cz automatyczne Zerocoin minting (0-100, domyÅ›lnie: %u) + + + Enable precomputation of zPIV spends and stakes (0-1, default %u) + WÅ‚Ä…cz wstÄ™pne obliczanie wydatków i stawek zPIV (0-1, domyÅ›lnie %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + WÅ‚Ä…cz transakcjÄ™ mieszania (zablokowanÄ… przez SwiftX) w <address> + + + Enable publish raw transaction (locked via SwiftX) in <address> + WÅ‚Ä…cz publikowanie surowej transakcji (zablokowanej przez SwiftX) w <address> + + + Enable the client to act as a masternode (0-1, default: %u) + WÅ‚Ä…cz klienta, aby dziaÅ‚aÅ‚ jako masternode (0-1, domyÅ›lnie: %u) + + + Error initializing block database + BÅ‚Ä…d podczas inicjowania block database + + + Error initializing wallet database environment %s! + BÅ‚Ä…d podczas inicjowania Å›rodowiska bazy danych portfela %s! + + + Error loading block database + BÅ‚Ä…d podczas Å‚adowania block database + + + Error loading wallet.dat + WystÄ…piÅ‚ bÅ‚Ä…d podczas Å‚adowania pliku wallet.dat + + + Error loading wallet.dat: Wallet corrupted + WystÄ…piÅ‚ bÅ‚Ä…d podczas Å‚adowania pliku wallet.dat: Portfel uszkodzony + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + BÅ‚Ä…d Å‚adowania pliku wallet.dat: Portfel wymaga nowszej wersji PIVX Core + + + Error opening block database + BÅ‚Ä…d podczas otwierania block database + + + Error reading from database, shutting down. + BÅ‚Ä…d odczytu z bazy danych, wyÅ‚Ä…czenie. + + + Error writing zerocoinDB to disk + BÅ‚Ä…d podczas zapisywania zerocoinDB na dysku + + + Error + BÅ‚Ä…d + + + Error: A fatal internal error occured, see debug.log for details + BÅ‚Ä…d: WystÄ…piÅ‚ krytyczny bÅ‚Ä…d wewnÄ™trzny, zobacz szczegóły w pliku debug.log + + + Error: Disk space is low! + BÅ‚Ä…d: MaÅ‚o miejsca na dysku! + + + Error: Unsupported argument -tor found, use -onion. + BÅ‚Ä…d: NieobsÅ‚ugiwany argument -tor, użyj -onion. + + + Error: Wallet locked, unable to create transaction! + BÅ‚Ä…d: Portfel zablokowany, nie można utworzyć transakcji! + + + Failed to calculate accumulator checkpoint + Nie można obliczyć punktu kontrolnego akumulatora + + + Failed to listen on any port. Use -listen=0 if you want this. + Nie można nasÅ‚uchiwać na żadnym porcie. Użyj -listen=0, jeÅ›li chcesz tego. + + + Failed to parse host:port string + Nie można przeanalizować host:port string + + + Failed to read block + Nie można odczytać bloku + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + OpÅ‚ata (w PIV/kB) dodawana do wysyÅ‚anych transakcji (domyÅ›lnie: %s) + + + Force safe mode (default: %u) + WymuÅ› tryb bezpieczny (domyÅ›lnie: %u) + + + Generate coins (default: %u) + Wygeneruj monety (domyÅ›lnie: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Ile bloków należy sprawdzić przy starcie (domyÅ›lnie: %u, 0 = wszystko) + + + If <category> is not supplied, output all debugging information. + JeÅ›li <category> nie jest podana, wyÅ›lij wszystkie informacje debugowania. + + + Importing... + ImportujÄ™ ... + + + Imports blocks from external blk000??.dat file + Importuje bloki z zewnÄ™trznego pliku blk000??.dat + + + Include IP addresses in debug output (default: %u) + WÅ‚Ä…cz adresy IP do wyników debugowania (domyÅ›lnie: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + NieprawidÅ‚owy lub nie znaleziony blok genezy. NieprawidÅ‚owy datadir do sieci? + + + Information + Informacje + + + Initialization sanity check failed. PIVX Core is shutting down. + Sprawdzenie poprawnoÅ›ci inicjalizacji nie powiodÅ‚o siÄ™. PIVX Core zamyka siÄ™. + + + Insufficient funds + NiewystarczajÄ…ce Å›rodki + + + Insufficient funds. + NiewystarczajÄ…ce Å›rodki. + + + Invalid -onion address or hostname: '%s' + NieprawidÅ‚owy adres -onion lub nazwa hosta: „%s†+ + + Invalid amount for -maxtxfee=<amount>: '%s' + NieprawidÅ‚owa kwota dla -maxtxfee= <amount> : '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + NieprawidÅ‚owa kwota dla -minrelaytxfee= <amount> : '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + NieprawidÅ‚owa kwota dla -mintxfee= <amount> : '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + NieprawidÅ‚owa kwota dla -paytxfee= <amount> : '%s' (musi być przynajmniej %s) + + + Invalid amount for -paytxfee=<amount>: '%s' + NieprawidÅ‚owa kwota dla -paytxfee= <amount> : '%s' + + + Invalid amount for -reservebalance=<amount> + NieprawidÅ‚owa kwota dla -reservebalance=<amount> + + + Invalid amount + nieprawidÅ‚owa kwota + + + Invalid masternodeprivkey. Please see documenation. + NieprawidÅ‚owy masternodeprivkey. Zobacz dokumentacjÄ™. + + + Invalid netmask specified in -whitelist: '%s' + NieprawidÅ‚owa netmask podana w -whitelist: '%s' + + + Invalid port detected in masternode.conf + NieprawidÅ‚owy port wykryty w masternode.conf + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Odsetek automatycznych minted Zerocoin (1-100, domyÅ›lnie: %u) + + + Recalculating PIV supply... + Przeliczanie podaży PIV ... + + + Recalculating minted ZPIV... + Przeliczenie wybitego ZPIV ... + + + Recalculating spent ZPIV... + Przeliczanie wydanego ZPIV ... + + + Reindex the PIV and zPIV money supply statistics + Ponownie oblicz statystyki podaży pieniÄ…dza PIV i zPIV + + + Reindexing zerocoin database... + Ponowne indeksowanie bazy danych zerocoin ... + + + Reindexing zerocoin failed + Ponowne indeksowanie zerocoin nie powiodÅ‚o siÄ™ + + + Selected coins value is less than payment target + Wybrana wartość monet jest mniejsza niż docelowa + + + Support the zerocoin light node protocol (default: %u) + ObsÅ‚uga protokoÅ‚u zerocoin light node (domyÅ›lnie: %u) + + + SwiftX options: + Opcje SwiftX: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + Jest to wersja testowa pre-release - korzystaj z niej na wÅ‚asne ryzyko - nie używaj do staking lub prawdziwych transakcji! + + + mints deleted + + mints usuniÄ™te + + + + mints updated, + zaktualizowano mints, + + + unconfirmed transactions removed + + niepotwierdzone transakcje zostaÅ‚y usuniÄ™te + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + WyÅ‚Ä…cz wszystkie funkcje specyficzne dla PIVX (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, domyÅ›lnie: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + WÅ‚Ä…cz SwiftX, pokaż potwierdzenia zablokowanych transakcji (bool, domyÅ›lnie: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + BÅ‚Ä…d: transakcja zostaÅ‚a odrzucona! Może siÄ™ tak zdarzyć, jeÅ›li niektóre monety w portfelu zostaÅ‚y już wydane, np. JeÅ›li użyÅ‚eÅ› kopii portfela. Monety zostaÅ‚y wydane w kopii, ale nie zostaÅ‚y oznaczone jako wydane tutaj. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + BÅ‚Ä…d: ta transakcja wymaga opÅ‚aty transakcyjnej w wysokoÅ›ci co najmniej %s ze wzglÄ™du na jej ilość, zÅ‚ożoność lub wykorzystanie ostatnio otrzymanych Å›rodków! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + BÅ‚Ä…d: Znaleziono nieobsÅ‚ugiwany argument -checklevel. Checklevel musi być poziomem 4. + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Nie udaÅ‚o siÄ™ znaleźć zestawu monet i innych monet o wartoÅ›ci mniejszej niż maksymalna liczba wydatków + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + W rzadkich przypadkach należy wydać 7 lub wiÄ™cej monet z naszym maksymalnym dopuszczalnym rozmiarem transakcji, spróbuj ponownie wydać 6 lub mniej monet + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Preferowana jednostka dla automatycznych minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 bez żadnych preferencji. domyÅ›lnie: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + OkreÅ›l standardowÄ… Å›cieżkÄ™ kopii zapasowej, aby dodać kopiÄ™ automatycznej kopii zapasowej zPIV. JeÅ›li ustawione jako katalog, każda kopia zapasowa generuje plik z sygnaturÄ… czasowÄ…. JeÅ›li ustawione jako plik, bÄ™dzie przepisywać do tego pliku każdÄ… kopiÄ™ zapasowÄ…. JeÅ›li ustawiona jest również Å›cieżka tworzenia kopii zapasowych, zostanÄ… utworzone 4 kopie zapasowe + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + OkreÅ›l Å›cieżkÄ™ kopii zapasowej, aby dodać kopiÄ™ zapasowÄ… portfela. JeÅ›li ustawione jako katalog, każda kopia zapasowa generuje plik ze znacznikiem czasu. JeÅ›li jest ustawiony jako plik, przepisuje do tego pliku każdÄ… kopiÄ™ zapasowÄ…. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftX wymaga danych wejÅ›ciowych z co najmniej 6 potwierdzeniami, być może trzeba bÄ™dzie poczekać kilka minut i spróbować ponownie. + + + <category> can be: + <category>może być: + + + Attempt to force blockchain corruption recovery + Spróbuj wymusić blockchain corruption recovery + + + Cannot create public spend input + Nie można utworzyć publicznego wpisu wydatków + + + CoinSpend: Accumulator witness does not verify + CoinSpend: Accumulator witness nie weryfikuje + + + Display the stake modifier calculations in the debug.log file. + WyÅ›wietl obliczenia modyfikatora stake w pliku debug.log. + + + Display verbose coin stake messages in the debug.log file. + WyÅ›wietlaj szczegółowe komunikaty o staking w pliku debug.log. + + + Enable publish hash block in <address> + WÅ‚Ä…cz publiczny hash block w <address> + + + Enable publish hash transaction in <address> + WÅ‚Ä…cz publish hash transaction w <address> + + + Enable publish raw block in <address> + WÅ‚Ä…cz publish raw block w <address> + + + Enable publish raw transaction in <address> + WÅ‚Ä…cz publish raw transaction w <address> + + + Enable staking functionality (0-1, default: %u) + WÅ‚Ä…cz funkcjÄ™ staking (0-1, domyÅ›lnie: %u) + + + Error: A fatal internal error occurred, see debug.log for details + BÅ‚Ä…d: WystÄ…piÅ‚ krytyczny bÅ‚Ä…d wewnÄ™trzny, zobacz szczegóły w pliku debug.log + + + Error: No valid utxo! + BÅ‚Ä…d: brak prawidÅ‚owego utxo! + + + Failed to create mint + Nie udaÅ‚o siÄ™ utworzyć mint + + + Failed to find Zerocoins in wallet.dat + Nie można znaleźć Zerocoins w pliku wallet.dat + + + Failed to parse public spend + Nie udaÅ‚o siÄ™ przeanalizować wydatków publicznych + + + Failed to select a zerocoin + Nie udaÅ‚o siÄ™ wybrać zerocoin + + + Failed to wipe zerocoinDB + Nie można wyczyÅ›cić zerocoinDB + + + Failed to write coin serial number into wallet + Nie udaÅ‚o siÄ™ zapisać numeru seryjnego monety w portfelu + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Zachowaj <n> najczęściej używanych transakcji w pamiÄ™ci (domyÅ›lnie: %u) + + + Limit size of signature cache to <n> entries (default: %u) + Ogranicz rozmiar pamiÄ™ci podrÄ™cznej podpisu do <n> wpisów (domyÅ›lnie: %u) + + + Line: %d + Linia: %d + + + Listen for connections on <port> (default: %u or testnet: %u) + NasÅ‚uchuj wÅ‚Ä…czone poÅ‚Ä…czenia <port> (domyÅ›lnie: %u lub testnet: %u) + + + Loading addresses... + Åadowanie adresów ... + + + Loading block index... + Åadowanie indeksu bloków ... + + + Loading budget cache... + Åadowanie cache budżetu ... + + + Loading masternode cache... + Åadowanie pamiÄ™ci podrÄ™cznej masternode ... + + + Loading masternode payment cache... + Åadowanie pamiÄ™ci podrÄ™cznej pÅ‚atnoÅ›ci masternode ... + + + Loading sporks... + Åadowanie sporks ... + + + Loading wallet... (%3.2f %%) + Åadowanie portfela ... (%3,2f %%) + + + Loading wallet... + Åadowanie portfela ... + + + Location of the auth cookie (default: data dir) + Lokalizacja auth cookie (domyÅ›lnie: data dir) + + + Lock masternodes from masternode configuration file (default: %u) + Zablokuj masternody z pliku konfiguracyjnego (domyÅ›lnie: %u) + + + Maintain at most <n> connections to peers (default: %u) + Utrzymuj co najwyżej <n> poÅ‚Ä…czeÅ„ z peerami (domyÅ›lnie: %u) + + + Masternode options: + Opcje Masternode: + + + Mint did not make it into blockchain + Mint nie przeszÅ‚o do blockchain + + + Need to specify a port with -whitebind: '%s' + Musisz okreÅ›lić port za pomocÄ… -whitebind: '%s' + + + Node relay options: + Opcje przekazywania wÄ™złów: + + + Not enough file descriptors available. + Za maÅ‚o dostÄ™pnych deskryptorów plików. + + + Number of automatic wallet backups (default: 10) + Liczba automatycznych kopii zapasowych portfela (domyÅ›lnie: 10) + + + Number of custom location backups to retain (default: %d) + Liczba lokalizacji kopii zapasowych do zachowania (domyÅ›lnie: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Akceptuj tylko wbudowane punkty kontrolne Å‚aÅ„cucha bloków (domyÅ›lnie: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + PoÅ‚Ä…cz tylko z wÄ™zÅ‚ami w sieci (ipv4, ipv6 lub onion) + + + Options: + Opcje: + + + Password for JSON-RPC connections + HasÅ‚o dla poÅ‚Ä…czeÅ„ JSON-RPC + + + Use block spam filter (default: %u) + Użyj block spam filter (domyÅ›lnie: %u) + + + Preparing for resync... + Przygotowanie do ponownej synchronizacji ... + + + Prepend debug output with timestamp (default: %u) + Przygotuj wyjÅ›cie debugowania ze znacznikiem czasu (domyÅ›lnie: %u) + + + Print version and exit + Wydrukuj wersjÄ™ i zakoÅ„cz + + + Pubcoin not found in mint tx + Pubcoin nie znaleziono w mint tx + + + RPC server options: + Opcje serwera RPC: + + + Rebuild block chain index from current blk000??.dat files + Przebuduj indeks Å‚aÅ„cucha bloków z bieżących plików blk000??.dat + + + Receive and display P2P network alerts (default: %u) + Odbieranie i wyÅ›wietlanie alertów sieciowych P2P (domyÅ›lnie: %u) + + + Reindex the accumulator database + Ponownie zindeksuj bazÄ™ danych akumulatora + + + Rescan the block chain for missing wallet transactions + Ponownie zeskanuj Å‚aÅ„cuch bloków w poszukiwaniu brakujÄ…cych transakcji portfela + + + Rescanning... + Ponowne skanowanie ... + + + ResetMintZerocoin finished: + ResetMintZerocoin zakoÅ„czony: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin zakoÅ„czony: + + + Run in the background as a daemon and accept commands + Uruchom w tle jako demon i przyjmuj polecenia + + + Send transactions as zero-fee transactions if possible (default: %u) + WysyÅ‚aj transakcje jako transakcje bez opÅ‚at, jeÅ›li to możliwe (domyÅ›lnie: %u) + + + Session timed out. + Sesja skoÅ„czyÅ‚a siÄ™. + + + Set key pool size to <n> (default: %u) + Ustaw key pool size na (domyÅ›lnie: %u) + + + Set maximum block size in bytes (default: %d) + Ustaw maksymalny rozmiar bloku w bajtach (domyÅ›lnie: %d) + + + Set minimum block size in bytes (default: %u) + Ustaw minimalny rozmiar bloku w bajtach (domyÅ›lnie: %u) + + + Set the masternode private key + Ustaw klucz prywatny masternode + + + Signing timed out. + UpÅ‚ynÄ…Å‚ limit czasu logowania + + + Signing transaction failed + Podpisanie transakcji nie powiodÅ‚o siÄ™ + + + Specify configuration file (default: %s) + OkreÅ›l plik konfiguracyjny (domyÅ›lnie: %s) + + + Specify data directory + OkreÅ›l katalog danych + + + Specify masternode configuration file (default: %s) + OkreÅ›l plik konfiguracyjny masternode (domyÅ›lnie: %s) + + + Specify pid file (default: %s) + OkreÅ›l plik pid (domyÅ›lnie: %s) + + + Specify wallet file (within data directory) + OkreÅ›l plik portfela (w katalogu danych) + + + Specify your own public address + Podaj swój wÅ‚asny adres publiczny + + + Spend Valid + Spend Valid + + + Staking options: + Staking opcje: + + + Synchronization failed + Synchronizacja nie powiodÅ‚a siÄ™ + + + Synchronization finished + Synchronizacja zakoÅ„czona + + + Synchronization pending... + Trwa synchronizacja ... + + + Synchronizing budgets... + Synchronizowanie budżetów ... + + + Synchronizing masternode winners... + Synchronizowanie masternode winners... + + + Synchronizing masternodes... + Synchronizowanie masternode... + + + Synchronizing sporks... + Synchronizowanie sporks... + + + Syncing zPIV wallet... + SynchronizujÄ™ portfel zPIV ... + + + The coin spend has been used + Wykorzystano już monety + + + The transaction did not verify + Transakcja nie zostaÅ‚a zweryfikowana + + + This help message + Ten komunikat pomocy + + + This is experimental software. + To jest oprogramowanie eksperymentalne. + + + Too many spends needed + Zbyt wiele potrzebnych Å›rodków + + + Tor control port password (default: empty) + HasÅ‚o portu kontrolnego Tora (domyÅ›lnie: puste) + + + Transaction Created + Utworzono transakcjÄ™ + + + Transaction Mint Started + RozpoczÄ™to transakcjÄ™ Mint + + + Transaction amount too small + Kwota transakcji jest za maÅ‚a + + + Transaction amounts must be positive + Kwoty transakcji muszÄ… być dodatnie + + + Transaction too large for fee policy + Transakcja zbyt duża dla zasad pÅ‚atnoÅ›ci + + + Transaction too large + Transakcja zbyt duża + + + Unknown network specified in -onlynet: '%s' + Nieznana sieć okreÅ›lona w -onlynet: '%s' + + + Upgrade wallet to latest format + Uaktualnij portfel do najnowszego formatu + + + Use the test network + Użyj sieci testowej + + + Username for JSON-RPC connections + Nazwa użytkownika dla poÅ‚Ä…czeÅ„ JSON-RPC + + + Value is below the smallest available denomination (= 1) of zPIV + Wartość jest mniejsza od najmniejszej dostÄ™pnej (= 1) zPIV + + + Verifying blocks... + WeryfikujÄ™ bloki ... + + + Verifying wallet... + WeryfikujÄ™ portfel ... + + + Wallet needed to be rewritten: restart PIVX Core to complete + Portfel musiaÅ‚ zostać przepisany: zrestartuj PIVX Core, aby zakoÅ„czyć + + + Wallet options: + Opcje portfela: + + + Wallet window title + TytuÅ‚ okna portfela + + + Warning + Ostrzeżenie + + + Warning: This version is obsolete, upgrade required! + Ostrzeżenie: ta wersja jest przestarzaÅ‚a, wymagana jest aktualizacja! + + + You don't have enough Zerocoins in your wallet + Nie masz wystarczajÄ…cej liczby Zerocoins w swoim portfelu + + + You need to rebuild the database using -reindex to change -txindex + Musisz przebudować bazÄ™ danych za pomocÄ… -reindex, aby zmienić -txindeks + + + Zapping all transactions from wallet... + -Zapping- ÅÄ…czenie wszystkich transakcji z portfela ... + + + Zerocoin options: + Opcje Zerocoin: + + + on startup + na starcie + + + wallet.dat corrupt, salvage failed + wallet.dat uszkodzony, odzyskiwanie nie powiodÅ‚o siÄ™ + + + + send + + Form + Forma + + + Send + WyÅ›lij + + + TextLabel + TekstZakÅ‚adka + + + PushButton + NaciÅ›nij przycisk + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_pt.ts b/src/qt/locale/pivx_pt.ts new file mode 100644 index 0000000..462b132 --- /dev/null +++ b/src/qt/locale/pivx_pt.ts @@ -0,0 +1,1025 @@ + + + AddNewAddressDialog + + Address + Endereço + + + + AddNewContactDialog + + + AddressBookPage + + Right-click to edit address or label + Clique com o botão direito do rato para editar o endereço ou a descrição + + + Create a new address + Criar novo endereço + + + &New + &Novo + + + Copy the currently selected address to the system clipboard + Copiar o endereço selecionado para a área de transferência + + + &Copy + &Copiar + + + Delete the currently selected address from the list + Apagar o endereço selecionado da lista + + + &Delete + &Apagar + + + Export the data in the current tab to a file + Exporta os dados da aba ativa para um arquivo + + + &Export + &Exportar + + + C&lose + F&echar + + + Choose the address to send coins to + Escolha o endereço para onde enviar moedas + + + Choose the address to receive coins with + Escolha o endereço onde receber moedas + + + C&hoose + E&scolher + + + Sending addresses + Endereços de envio + + + Receiving addresses + Endereços de recebimento + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Esses são seus endereços PIVX para onde enviar pagamentos. Confira sempre o montante e os endereços de destino antes de enviar moedas. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Esses são seus endereços PIVX onde receber pagamentos. Recomenda-se o uso de um novo endereço para cada transacção. + + + &Copy Address + &Copiar Endereço + + + Copy &Label + Copiar &Descrição + + + &Edit + &Editar + + + Export Address List + Exportar lista de endereços + + + Comma separated file (*.csv) + Arquivo separado por vírgulas (*.csv) + + + Exporting Failed + A exportação falhou + + + There was an error trying to save the address list to %1. Please try again. + Ocorreu um erro ao salvar a lista de endereços em %1. Tente novamente. + + + + AddressLabelRow + + + AddressTableModel + + Label + Descrição + + + Address + Endereço + + + Date + Data + + + (no label) + (Sem descrição) + + + + AddressesWidget + + + AskPassphraseDialog + + Passphrase Dialog + Caixa de diálogo de senha + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Digite a nova senha para a carteira.<br/>Use uma senha com <b>10 ou mais caracteres aleatórios</b>, ou <b>oito palavras ou mais</b>. + + + Encrypt wallet + Criptografar carteira + + + This operation needs your wallet passphrase to unlock the wallet. + Para esta operação, é necessário desbloquear a carteira com a sua senha. + + + Unlock wallet + Desbloquear carteira + + + This operation needs your wallet passphrase to decrypt the wallet. + Para esta operação, é necessário desbloquear a carteira com a sua senha. + + + Decrypt wallet + Descriptografar carteira + + + Change passphrase + Alterar senha + + + Enter the old and new passphrase to the wallet. + Digite a senha antiga e a nova senha + + + Confirm wallet encryption + Confirmar encriptação da carteira + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX encerrará para terminar o processo de encriptação. Lembre-se que encriptar sua carteira não protege completamente suas PIVs contra roubo por malware infectando seu computador. + + + Are you sure you wish to encrypt your wallet? + Tem certeza que deseja encriptar sua carteira? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Atenção: Se você encriptar sua carteira e perder a senha, você <B>PERDERà TODA SUA PIV</b>! + + + Wallet encrypted + Carteira encriptada + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + IMPORTANTE: Qualquer backup que você fez da sua carteira precisa ser substituído pelo novo arquivo encriptado. Por razões de segurança, arquivos anteriores de backup vão se tornar inúteis assim que você usar a carteira nova e encriptada. + + + Wallet encryption failed + Encriptação da carteira falhou + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + A encriptação da carteira falhou por causa de um erro interno. Sua carteira não foi encriptada. + + + The supplied passphrases do not match. + As senhas digitadas não conferem. + + + Wallet unlock failed + Falha ao desbloquear a carteira + + + The passphrase entered for the wallet decryption was incorrect. + A senha usada para decriptar a carteira estava incorreta. + + + Wallet decryption failed + Decriptação da carteira falhou + + + Wallet passphrase was successfully changed. + Senha da carteira alterada com sucesso. + + + Warning: The Caps Lock key is on! + Atenção: Caps Lock ativo! + + + + BanTableModel + + + BlockExplorer + + + CSRow + + + ClientModel + + + CoinControlDialog + + Fee: + Taxa: + + + Amount + Quantidade + + + Date + Data + + + no + não + + + (no label) + (Sem descrição) + + + + CoinControlPivWidget + + Fee: + Taxa: + + + Amount + Quantidade + + + Label + Descrição + + + Address + Endereço + + + Date + Data + + + + ColdStakingWidget + + + ContactDropdownRow + + + DashboardWidget + + Warning + Atenção + + + Mined + Minerado + + + + DefaultDialog + + + DenomGenerationDialog + + + EditAddressDialog + + Edit Address + Alterar endereço + + + &Label + &Descrição + + + &Address + &Endereço + + + + ExpandableButton + + + FreespaceChecker + + + GovernancePage + + + HelpMessageDialog + + + Intro + + + LoadingDialog + + + LockUnlock + + + MNRow + + + MasterNodeWizardDialog + + Address + Endereço + + + The amount to pay must be larger than 0. + A quantidade a ser paga deve ser maior que 0. + + + The amount exceeds your balance. + A quantia excede o seu saldo. + + + Transaction creation failed! + A criação da transação falhou! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + A transação foi rejeitada! Isto pode acontecer se algumas de suas moedas na sua carteira já foram gastas, como por exemplo se você usou uma cópia do wallet.dat e as moedas foram gastas na cópia mas não marcadas como gastas aqui. + + + + MasterNodesWidget + + + MnInfoDialog + + + MyAddressRow + + + NavMenuWidget + + + OpenURIDialog + + + OptionButton + + + OptionsDialog + + + PIVXGUI + + Wallet + Carteira + + + Node + Nó + + + Warning + Atenção + + + Information + Informação + + + + PWidget + + + PaymentServer + + + PeerTableModel + + + PrivacyWidget + + + ProposalFrame + + + QObject + + Amount + Quantidade + + + + RPCConsole + + + ReceiveDialog + + + ReceiveWidget + + + RecentRequestsTableModel + + Date + Data + + + Label + Descrição + + + Address + Endereço + + + Amount + Quantidade + + + (no label) + (Sem descrição) + + + + RequestDialog + + Amount + Quantidade + + + Label + Descrição + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + + SendMultiRow + + + SendWidget + + Amount + Quantidade + + + + SettingsBackupWallet + + + SettingsBitToolWidget + + Import Address + Importar endereço + + + Clear + Limpar + + + Allowed: 0-9,a-z,A-Z, + Permitido: 0-9,a-z,A-Z + + + The entered address is invalid. + O endereço informado é inválido. + + + Please check the address and try again. + Favor verificar o endereço e tente novamente. + + + + SettingsConsoleWidget + + + SettingsDisplayOptionsWidget + + + SettingsFaqWidget + + + SettingsInformationWidget + + Information + Informação + + + + SettingsMainOptionsWidget + + + SettingsMultisendDialog + + + SettingsMultisendWidget + + + SettingsSignMessageWidgets + + Clear + Limpar + + + Signature + Assinatura + + + The entered address is invalid. + O endereço informado é inválido. + + + Please check the address and try again. + Favor verificar o endereço e tente novamente. + + + + SettingsWalletOptionsWidget + + Wallet + Carteira + + + + SettingsWalletRepairWidget + + + SettingsWidget + + Wallet + Carteira + + + Information + Informação + + + + ShutdownWindow + + Do not shut down the computer until this window disappears. + Não desligue o computador até que esta janela desapareça. + + + + SnackBar + + + Splash + + + SplashScreen + + + TooltipMenu + + + TopBar + + + TrafficGraphWidget + + + TransactionDesc + + Date + Data + + + Source + Fonte + + + From + De + + + unknown + desconhecido + + + To + Para + + + own address + endereço próprio + + + Credit + Crédito + + + not accepted + não aceito + + + Debit + Débito + + + Total debit + Débito total + + + Total credit + Crédito total + + + Transaction fee + Taxa de transação + + + Transaction ID + ID da transação + + + Transaction + Transação + + + Amount + Quantidade + + + true + verdadeiro + + + false + falso + + + + TransactionTableModel + + Date + Data + + + Address + Endereço + + + Sent to + Enviado para + + + Mined + Minerado + + + + TxDetailDialog + + Fee: + Taxa: + + + + TxRow + + + WalletModel + + + WalletPasswordDialog + + + WelcomeContentWidget + + + ZPivControlDialog + + + pivx-core + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Deletar todas as transações da carteira e somente recuperar aquelas partes do blockchain através de -rescan na inicialização + + + Connect through SOCKS5 proxy + Conectar usando proxy SOCKS5 + + + Connection options: + Opções de conexão: + + + Error: A fatal internal error occured, see debug.log for details + Erro: Um erro interno fatal ocorreu, veja debug.log para detalhes + + + Error: Disk space is low! + Erro: Espaço em disco baixo! + + + Importing... + Importando... + + + Information + Informação + + + Insufficient funds. + Fundos insuficientes. + + + Loading wallet... + Carregando carteira... + + + Options: + Opções: + + + Password for JSON-RPC connections + Senha para conexões JSON-RPC + + + Receive and display P2P network alerts (default: %u) + Receber e mostrar alertas da rede P2P (padrão %u) + + + Relay and mine data carrier transactions (default: %u) + Transações de retransmissão e transações de dados de mina (padrão:%u) + + + Rescan the block chain for missing wallet transactions + Analise novamente a cadeia de blocos para ver se há transações de carteira em falta + + + Rescanning... + Rescanning ... + + + Run a thread to flush wallet periodically (default: %u) + Execute uma thread para liberar a carteira periodicamente (padrão: %u) + + + Run in the background as a daemon and accept commands + Executar em segundo plano como um daemon e aceitar comandos + + + Send transactions as zero-fee transactions if possible (default: %u) + Enviar transações como transações de taxa zero, se possível (padrão:%u) + + + Session timed out. + A sessão expirou. + + + Set database cache size in megabytes (%d to %d, default: %d) + Definir o tamanho do cache do banco de dados em megabytes (%d para%d, padrão:%d) + + + Set external address:port to get to this masternode (example: %s) + Definir endereço externo: porta para acessar este masternode (exemplo:%s) + + + Set key pool size to <n> (default: %u) + Definir o tamanho do pool de chaves para <n> (padrão:%u) + + + Set maximum block size in bytes (default: %d) + Definir o tamanho máximo do bloco em bytes (padrão:%d) + + + Set minimum block size in bytes (default: %u) + Definir tamanho mínimo de bloco em bytes (padrão:%u) + + + Set the masternode private key + Definir a chave privada masternode + + + Set the number of threads to service RPC calls (default: %d) + Defina o número de segmentos para atender chamadas RPC (padrão:%d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Define o sinalizador DB_PRIVATE no ambiente db da carteira (padrão: %u) + + + Show all debugging options (usage: --help -help-debug) + Mostrar todas as opções de depuração (uso: --help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Shrink arquivo debug.log na inicialização do cliente (padrão: 1 quando não -debug) + + + Signing timed out. + A assinatura expirou. + + + Signing transaction failed + A transação de assinatura falhou + + + Specify configuration file (default: %s) + Especifique o arquivo de configuração (padrão:%s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Especifique o tempo limite da conexão em milissegundos (mínimo: 1, padrão:%d) + + + Specify data directory + Especificar o diretório de dados + + + Specify masternode configuration file (default: %s) + Especifique o arquivo de configuração masternode (padrão:%s) + + + Specify pid file (default: %s) + Especificar arquivo pid (padrão: %s) + + + Specify wallet file (within data directory) + Especifique o arquivo de carteira (dentro do diretório de dados) + + + Specify your own public address + Especifique seu próprio endereço público + + + Spend unconfirmed change when sending transactions (default: %u) + Gaste alterações não confirmadas ao enviar transações (padrão: %u) + + + Stop running after importing blocks from disk (default: %u) + Parar de executar após importar blocos do disco (padrão:%u) + + + Synchronization failed + Sincronização falhou + + + Synchronization finished + Sincronização finalizada + + + Synchronization pending... + Sincronizando pendencias... + + + Synchronizing budgets... + Sincronizando orçamentos... + + + Synchronizing masternode winners... + Sincronizando os masternode vencedores... + + + Synchronizing masternodes... + Sincronizando masternodes ... + + + Synchronizing sporks... + Sincronizando sporks ... + + + This help message + Esta mensagem de ajuda + + + This is experimental software. + Este é um software experimental. + + + This is intended for regression testing tools and app development. + Isso é destinado a ferramentas de teste de regressão e desenvolvimento de aplicativos. + + + Threshold for disconnecting misbehaving peers (default: %u) + Limiar para desconectar pares com comportamentos incorretos (padrão:%u) + + + Transaction amount too small + Valor da transação muito pequeno + + + Transaction amounts must be positive + Os valores das transações devem ser positivos + + + Transaction too large for fee policy + Transação muito grande para a política de tarifas + + + Transaction too large + Transmissão muito grande + + + Unable to bind to %s on this computer (bind returned error %s) + Não é possível ligar a %s neste computador (erro retornado%s) + + + Unable to sign spork message, wrong key? + Não é possível assinar mensagem spork, chave errada? + + + Unknown network specified in -onlynet: '%s' + Rede desconhecida especificada em -onlynet: '%s' + + + Upgrade wallet to latest format + Atualizar a carteira para a ultimo formato + + + Use UPnP to map the listening port (default: %u) + Use UPnP para mapear as portas de escuta(padrão: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Use o UPnP para mapear a porta de escutar (padrão: 1 ao escutar) + + + Use the test network + Use o Testador de rede + + + Username for JSON-RPC connections + Nome de usuário para conexões JSON-RPC + + + Verifying blocks... + verificando blocos... + + + Verifying wallet... + verificando carteira... + + + Wallet %s resides outside data directory %s + carteira %s reside fora do diretório %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + Carteira precisa ser reescrita: reinicie o PIVX Core para completar. + + + Wallet options: + Opções de Carteiras: + + + Wallet window title + Título da carteira + + + Warning + Atenção + + + Warning: This version is obsolete, upgrade required! + Aviso: Esta versão é obsoleta, atualização obrigatória! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Aviso: Argumento não suportado -benchmark ignorado, use -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Aviso: Argumento não suportado -debugnet ignorado, use -debug=net. + + + You need to rebuild the database using -reindex to change -txindex + Você precisa reconstruir a database usando -reindex para mudar -txindex + + + + send + + \ No newline at end of file diff --git a/src/qt/locale/pivx_pt_BR.ts b/src/qt/locale/pivx_pt_BR.ts new file mode 100644 index 0000000..23a1a34 --- /dev/null +++ b/src/qt/locale/pivx_pt_BR.ts @@ -0,0 +1,4189 @@ + + + AddNewAddressDialog + + Dialog + Diálogo + + + My Address + Meu endereço + + + Address + Endereço + + + PushButton + Aperte o Botão + + + CANCEL + Cancelar + + + OK + Ok + + + + AddNewContactDialog + + Dialog + Diálogo + + + TextLabel + Rótulo + + + CANCEL + Cancelar + + + OK + Ok + + + Edit Contact + Editar Contato + + + Set a label for the selected address + Defina um nome para o endereço selecionado + + + Enter a name for the address (e.g Exchange) + Digite um nome para o endereço (por exemplo, Corretora) + + + SAVE + SALVAR + + + Edit label for the selected address: +%1 + Edite o nome do endereço selecionado: +%1 + + + + AddressBookPage + + Right-click to edit address or label + Clique com botão direito para alterar endereço ou rótulo + + + Create a new address + Criar um novo endereço + + + &New + &Novo + + + Copy the currently selected address to the system clipboard + Copiar o endereço selecionado para a área de transferência + + + &Copy + &Copiar + + + Delete the currently selected address from the list + Deletar da lista o endereço selecionado + + + &Delete + &Deletar + + + Export the data in the current tab to a file + Exportar as informações da aba atual para um arquivo + + + &Export + &Exportar + + + C&lose + &Fechar + + + Choose the address to send coins to + Escolha o endereço para enviar moedas + + + Choose the address to receive coins with + Escolha o endereço para receber moedas + + + C&hoose + &Selecionar + + + Sending addresses + Endereços de envio + + + Receiving addresses + Endereços de recebimento + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Esses são seus endereços PIVX para envio de pagamentos. Sempre verifique a quantia e os endereços de recebimento antes de enviar moedas. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Esses são seus endereços PIVX para recebimento de pagamentos. É recomendado usar um novo endereço para cada transação. + + + &Copy Address + &Copiar endereço + + + Copy &Label + Copiar &Rotular + + + &Edit + &Alterar + + + Export Address List + Exportar lista de endereços + + + Comma separated file (*.csv) + Comma separated file (*.csv) + + + Exporting Failed + Exportação falhou + + + There was an error trying to save the address list to %1. Please try again. + Há um erro na tentativa de salvar a lista de endereços para %1. Favor tentar novamente. + + + + AddressLabelRow + + Form + Formulário + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + AddressTableModel + + Label + Rótulo + + + Address + Endereço + + + Date + Data + + + (no label) + (sem rótulo) + + + + AddressesWidget + + Form + Formulário + + + Send + Enviar + + + TextLabel + Rótulo + + + No active Master Node yet + Nenhum MasterNOde ativo ainda + + + Contact name + Nome do contato + + + Enter address + Insira o endereço + + + OK + Ok + + + Contacts + Contatos + + + You can add a new one in the options menu to the side. + Você pode adicionar um novo no menu de opções ao lado. + + + No contacts yet + Ainda não há contatos + + + e.g. John Doe + por exemplo. John Doe + + + Enter a PIVX address + Digite um endereço PIVX + + + SAVE + SALVAR + + + Invalid Contact Address + Endereço de contato inválido + + + Cannot store your own address as contact + Não é possível armazenar seu próprio endereço como contato + + + Address already stored, label: %1 + Endereço já armazenado, nome: %1 + + + New Contact Stored + Novo contato armazenado + + + Error Storing Contact + Erro ao armazenar o contato + + + Contact edited + Contato editado + + + Contact edit failed + Falha na edição do contato + + + Delete Contact + Remover Contato + + + You are just about to remove the contact: + +%1 + +Are you sure? + Você está prestes a remover o contato: + +%1 +Você tem certeza? + + + Contact Deleted + Contato Removido + + + Error deleting a contact + Erro ao remover contato + + + Address copied + Endereço copiado + + + + AskPassphraseDialog + + Passphrase Dialog + Palavra-chave + + + TextLabel + Rótulo + + + PushButton + Aperte o Botão + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Digite uma nova senha para esta carteira.<br/>Use uma senha com <b>dez ou mais caracteres aleatórios</b> ou <b>mais de oito palavras.</b> + + + Encrypt wallet + Criptografar carteira + + + This operation needs your wallet passphrase to unlock the wallet. + Esta operação necessita a palavra-chave da sua carteira para que possa desbloqueá-la. + + + Unlock wallet +for staking + Desbloquear carteira +para 'Staking' + + + Unlock wallet + Desbloquear carteira + + + This operation needs your wallet passphrase to decrypt the wallet. + Esta operação precisa da senha de sua carteira para descriptografar a carteira. + + + Decrypt wallet + Descriptografar carteira + + + Change passphrase + Mudar palavra-chave + + + Enter the old and new passphrase to the wallet. + Insira a palavra-chave antiga e a nova para a carteira. + + + Confirm wallet encryption + Confirmar criptografia de carteira + + + ENCRYPT + CRIPTOGRAFAR + + + CANCEL + Cancelar + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX vai fechar agora para finalizar o processo de criptografia. Lembre-se que encriptar sua carteira não pode proteger totalmente suas PIVs de serem roubadas por malwares infectando seu computador. + + + Are you sure you wish to encrypt your wallet? + Você tem certeza que deseja criptografar sua carteira? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Aviso: se você criptografar sua carteira e perder sua senha você <b>PERDERà TODAS AS SUAS PIV<b>! + + + Wallet encrypted + Carteira criptografada + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + IMPORTANTE: Quaisquer backups prévios que você realizou do arquivo de sua carteira deve ser substituído pelo novo arquivo de carteira criptografado gerado. Por razões de segurança, os backups anteriores do arquivo da carteira descriptografados serão inutilizados assim que começar a utilizar o novo arquivo de carteira criptografado. + + + Wallet encryption failed + Criptografia da carteira falhou + + + OK + Ok + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Criptografia da carteira falhou devido a um erro interno. Sua carteira não foi criptografada. + + + The supplied passphrases do not match. + As palavras chaves informadas não combinam. + + + Wallet unlock failed + Desbloqueio da carteira falhou + + + The passphrase entered for the wallet decryption was incorrect. + A palavra-chave inserida para descriptografar a carteira estava incorreta. + + + Wallet decryption failed + Desencriptação da carteira falhou + + + Wallet passphrase was successfully changed. + A palavra-chave da carteira foi alterada com sucesso. + + + Warning: The Caps Lock key is on! + Aviso: A tecla Caps Lock está ativa! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + Proibido até + + + + BlockExplorer + + Blockchain Explorer + Explorador Blockchain + + + Back + Voltar + + + Forward + Avançar + + + Address / Block / Transaction + Endereço / Bloco / Transação + + + Search + Busca + + + TextLabel + Rótulo + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Nem todas as transações serão exibidas. Para visualizar todas as transações você precisa definir txindex=1 no arquivo de configuração (pivx.conf). + + + + CSRow + + Form + Formulário + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Desconhecido: %5) + + + Network Alert + Alerta de rede + + + + CoinControlDialog + + Quantity: + Quantidade: + + + Bytes: + Bytes: + + + Fee: + Taxa: + + + Coin Selection + Seleção de Moedas + + + Dust: + Fração de saldo: + + + Change: + Troco: + + + Tree mode + modo árvore + + + List mode + Modo de lista + + + (1 locked) + (1 travado) + + + Amount + Quantidade + + + Transaction Details + Detalhes da transação + + + PushButton + Aperte o Botão + + + 0.00 PIV + 0 PIV + + + 0 + 0 + + + Select all + Selecionar todas + + + Toggle lock state + Alternar estado de bloqueio + + + Received with label + Recebido com rótulo + + + Received with address + Recebido no endereço + + + After Fee: + Após taxa: + + + OK + Ok + + + Date + Data + + + Confirmations + Confirmações + + + Confirmed + Confirmado + + + Copy address + Copiar endereço + + + Copy label + Copiar rótulo + + + Copy amount + Copiar quantia + + + Copy transaction ID + Copiar ID da transação + + + Lock unspent + Travar não gasto + + + Unlock unspent + Destravar não gasto + + + Copy quantity + Copiar quantidade + + + Copy fee + Copiar taxa + + + Copy after fee + Copiar depois das taxas + + + Copy bytes + Copiar bytes + + + Copy priority + Copiar prioridade + + + Copy dust + Copiar fração + + + Copy change + Copiar troco + + + Unselect all + Desmarcar todas + + + Please switch to "List mode" to use this function. + Favor alterar para o "Modo de lista" para usar esta função. + + + highest + mais alto + + + higher + elevado + + + high + alto + + + medium-high + médio-alto + + + medium + médio + + + low-medium + baixo-médio + + + low + baixo + + + lower + baixíssimo + + + lowest + mais baixo + + + (%1 locked) + (%1 travado) + + + none + nenhum + + + yes + sim + + + no + não + + + This label turns red, if the transaction size is greater than 1000 bytes. + Este rótulo fica vermelho caso o tamanho da transação seja maior que 1000 bytes. + + + This means a fee of at least %1 per kB is required. + Isto significa que uma taxa de pelo menos %1 por kB é obrigatória. + + + Can vary +/- 1 byte per input. + Pode variar+/- 1 byte por input. + + + Transactions with higher priority are more likely to get included into a block. + Transações com prioridades mais altas são mais comuns de serem inclusas em um bloco. + + + This label turns red, if the priority is smaller than "medium". + Este rótulo fica vermelho se a prioridade é menor que "média". + + + This label turns red, if any recipient receives an amount smaller than %1. + Este rótulo fica vermelho se qualquer recipiente receber uma quantia menor que %1. + + + Can vary +/- %1 upiv per input. + Pode variar +/- %1 upiv por entrada. + + + (no label) + (sem rótulo) + + + change from %1 (%2) + mudar de %1 (%2) + + + (change) + (mudar) + + + + CoinControlPivWidget + + Dialog + Diálogo + + + Transaction Details + Detalhes da transação + + + PushButton + Aperte o Botão + + + PIV: + PIV: + + + TextLabel + Rótulo + + + Quantity: + Quantidade: + + + Fee: + Taxa: + + + Amount + Quantidade + + + Label + Rótulo + + + Address + Endereço + + + Type + Tipo + + + Date + Data + + + Confirmations + Confirmações + + + CheckBox + CheckBox + + + Bytes: + Bytes: + + + Dust: + Fração de saldo: + + + Change: + Troco: + + + After Fee: + Após taxa: + + + CANCEL + Cancelar + + + OK + Ok + + + + ColdStakingWidget + + Form + Formulário + + + TextLabel + Rótulo + + + PushButton + Aperte o Botão + + + Address copied + Endereço copiado + + + + ContactDropdownRow + + Form + Formulário + + + Bob Allen + Bob Allen + + + + DashboardWidget + + Form + Formulário + + + Transactions + Transações + + + You can see here the history of your account + Você pode ver aqui o histórico da sua conta + + + Warning + Aviso + + + No transactions + Nenhuma transação + + + PushButton + Aperte o Botão + + + Staking Rewards + Recompensas do Staking + + + TextLabel + Rótulo + + + Staking statistics + Estatísticas de Staking + + + PIV + PIV + + + zPIV + zPIV + + + Sort by + Organizar por + + + Days + Dias + + + Months + Meses + + + Years + Anos + + + Filter by + Filtrado por + + + LabelText + Nome do Texto + + + You can view your account's history + Você pode ver o histórico da sua conta + + + Amount of PIV and zPIV staked. + Quantidade de PIV e zPIV em Staking. + + + All + Tudo + + + Received + Recebido + + + Sent + Enviado + + + Mined + Minerado + + + Minted + Cunhado + + + MN reward + Recompensa MN + + + To yourself + Para si mesmo + + + Please wait until the wallet is fully synced to see your correct balance + Aguarde até que a carteira esteja totalmente sincronizada para ver seu saldo correto + + + No transactions yet + Nenhuma transação ainda + + + How to get PIV or zPIV + Como obter o PIV ou zPIV + + + You can verify the staking activity in the status bar at the top right of the wallet. +It will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced. + Você pode verificar a atividade de Staking na barra de status no canto superior da direito da carteira. +Ele será iniciado automaticamente assim que a carteira tiver confirmações suficientes nos saldos não utilizados e a carteira for sincronizada. + + + You have no staking rewards + Você não tem recompensas de Staking + + + No charts library + Não há biblioteca de gráficos + + + Loading chart.. + Carregando gráfico .. + + + Error loading chart, invalid show option + Erro ao carregar o gráfico, opção de exibição inválida + + + Error loading chart: %1 + Erro ao carregar o gráfico: %1 + + + + DefaultDialog + + Form + Formulário + + + Transaction Details + Detalhes da transação + + + Text Label + Texto Rótulo + + + CANCEL + Cancelar + + + SAVE + SALVAR + + + + DenomGenerationDialog + + Form + Formulário + + + Transaction Details + Detalhes da transação + + + PushButton + Aperte o Botão + + + This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again. + Isso desbloqueará sua carteira totalmente para que qualquer pessoa que tenha acesso a ela e possa gastar até que a carteira seja fechada ou bloqueada novamente. + + + 5000 + 5000 + + + 100 + 100 + + + 10 + 10 + + + 1000 + 1000 + + + 50 + 50 + + + 500 + 500 + + + 5 + 5 + + + 1 + 1 + + + Select All + Selecionar Todos + + + CANCEL + Cancelar + + + SAVE + SALVAR + + + + EditAddressDialog + + Edit Address + Alterar endereço + + + &Label + &Rótulo + + + The label associated with this address list entry + Rótulo referente a essa entrada na lista de endereços + + + &Address + &Endereço + + + The address associated with this address list entry. This can only be modified for sending addresses. + Endereço associado a essa entrada na lista de endereços. Só pode ser modificado ara endereços de destino. + + + New receiving address + Novo endereço recebedor + + + New sending address + Novo endereço remetente + + + Edit receiving address + Editar endereço receptor + + + Edit sending address + Editar endereço remetente + + + The entered address "%1" is not a valid PIVX address. + O endereço que você selecionou, "%1" , não é um endereço válido de PIVX + + + The entered address "%1" is already in the address book. + O endereço informado "%1" já está nos seus contatos. + + + Could not unlock wallet. + Não foi possível desbloquear a carteira. + + + New key generation failed. + A geração da nova chave falhou. + + + + ExpandableButton + + Form + Formulário + + + + FreespaceChecker + + A new data directory will be created. + Um novo diretório de dados será criado. + + + name + nome + + + Directory already exists. Add %1 if you intend to create a new directory here. + O diretório já existe. Adicione %1 se você pretende criar um novo diretório aqui. + + + Path already exists, and is not a directory. + Caminho já existente e não é um diretório. + + + Cannot create data directory here. + Não é possível criar informação de diretório aqui. + + + + GovernancePage + + Form + Formulário + + + GOVERNANCE + GOVERNANÇA + + + Update Proposals + Atualizar propostas + + + Next super block: + Próximo super bloco: + + + 0 + 0 + + + Blocks to next super block: + Blocos para o próximo super bloco: + + + Days to budget payout (estimate): + Dias para o orçamento de pagamento (estimativa): + + + Allotted budget: + Orçamento alocado: + + + Budget left: + Orçamento restante: + + + Masternodes count: + Contagem de masternodes: + + + + HelpMessageDialog + + version + versão + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + Sobre o PIVX Core + + + Command-line options + Opções de linha de comando + + + Usage: + Utilização: + + + command-line options + opções de linha de comando + + + UI Options: + Opções de UI: + + + Choose data directory on startup (default: %u) + Escolher diretório de informações ao inicializar (padrão: %u) + + + Show splash screen on startup (default: %u) + Mostrar tela inicial na inicialização (padrão: %u) + + + Set language, for example "de_DE" (default: system locale) + Definir linguagem, por exemplo "de_DE (padrão: local do sistema) + + + Start minimized + Iniciar minimizado + + + Set SSL root certificates for payment request (default: -system-) + Define certificados raiz SSL para requisição de pagamento (padrão: -sistema-) + + + OK + Ok + + + + Intro + + Welcome + Bem-vindo + + + Welcome to PIVX Core. + Bem-vindo ao PIVX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Como essa é a primeira vez que o programa é utilizado, você pode escolher onde PIVX Core vai armazenar os seus dados. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core vai baixar e armazenar uma cópia da blockchain PIVX. Pelo menos %1GB de informação será armazenado neste diretório e irá aumentar com o tempo. A carteira também será armazenada neste diretório. + + + Use the default data directory + Usar o diretório padrão de dados + + + Use a custom data directory + Use um diretório de dados personalizado + + + CANCEL + Cancelar + + + OK + Ok + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Erro: O diretório de dados especificado "%1" não pôde ser criado. + + + Error + Erro + + + %1 GB of free space available + %1 GB de espaço livre disponível + + + (of %1 GB needed) + (de %1 GB necessário) + + + + LoadingDialog + + Form + Formulário + + + TextLabel + Rótulo + + + Loading + Carregando + + + . + . + + + + LockUnlock + + Form + Formulário + + + Unlock Wallet + Desbloquear carteira + + + Lock Wallet + Bloquear carteira + + + Staking Only + Somente Staking + + + + MNRow + + Form + Formulário + + + user_masternode + usuario_masternod + + + Address: 88.26.164.88:51474 + Endereço: 88.26.164.88:51474 + + + Jan. 19, 2019 + 19 de janeiro de 2019 + + + + MasterNodeWizardDialog + + Dialog + Diálogo + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + Intro + introdução + + + Name + Nome + + + Address + Endereço + + + Create New Master Node Controller + Criar novo controlador de nó principal + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + Para criar um Masternode PIVX, você deve dedicar 10.000 PIV (a unidade do PIVX) à rede (no entanto, essas moedas ainda são suas e nunca deixarão sua posse). Você pode desativar o nó e desbloquear as moedas a qualquer momento. + + + Make sure you have this amount of coins. + Verifique se você tem essa quantidade de moedas. + + + Set Master Node’s Name + Definir o nome do Masternode + + + <html><head/><body><p>A transaction of 10,000 PIV will be made</p><p>to a new empty address in your wallet.</p><p>The Address is labeled under the master node's name.</p></body></html> + A transação de 10.000 PIV será feita com um novo endereço vazio em sua carteira. O endereço é rotulado com o nome do nó principal. + + + Set Master Node’s IP and port + Definir o IP e porto de Masternode + + + Address of the node that must always be online running the actual master node. + Endereço do node que deve estar online executando o Masternode. + + + Enter IP address + Digite o endereço IP + + + Enter Port + Digite o porto + + + CANCEL + Cancelar + + + OK + Ok + + + e.g user_masternode + por exemplo, user_masternode + + + NEXT + PRÓXIMO + + + BACK + VOLTAR + + + address label cannot be empty + o nome do endereço não pode estar vazia + + + IP or port cannot be empty + IP ou porta não podem estar vazios + + + Invalid port number + Número de porta inválido + + + Prepare master node failed.. + Falha na preparação do masternode. + + + Invalid masternode.conf file + Arquivo masternode.conf inválido + + + Error parsing masternode.conf file + Erro ao analisar o arquivo masternode.conf + + + Invalid collaterall output index + Ãndice de saída de garantia inválido + + + Master node created! + Masternode criado! + + + masternode.conf file doesn't exists + O arquivo masternode.conf não existe + + + The recipient address is not valid, please recheck. + O endereço de recebimento não é válido, favor conferir novamente. + + + The amount to pay must be larger than 0. + A quantia a ser paga deve ser maior que 0. + + + The amount exceeds your balance. + A quantia excede o seu saldo. + + + The total exceeds your balance when the %1 transaction fee is included. + O total excede seu saldo quando a taxa de %1 transação é incluída. + + + Duplicate address found, can only send to each address once per send operation. + Endereço duplicado encontrado, somente possível enviar uma vez a cada endereço por operação. + + + Transaction creation failed! + Criação da transação falhou! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + A transação foi rejeitada! Isso pode acontecer se algumas das moedas em sua carteira já tiverem sido gastas, como se você usasse uma cópia de wallet.dat e moedas tenham sido gastas na cópia, mas não marcadas como gastas aqui. + + + Error: The wallet was unlocked only to anonymize coins. + Erro: A carteira foi destravada apenas para anonimizar moedas. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + Uma taxa %1 vezes maior que %2 por kB é considerada extremamente alta. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Erro: a carteira foi desbloqueada apenas para anonimizar moedas. Desbloqueio cancelado. + + + + MasterNodesWidget + + Form + Formulário + + + TextLabel + Rótulo + + + No active Master Node yet + Nenhum MasterNOde ativo ainda + + + PushButton + Aperte o Botão + + + Masternodes + Masternodes + + + Full nodes that incentivize node operators to perform the core consensus functions +and vote on the treasury system receiving a periodic reward. + Nodes completos que incentivam os operadores de nodes a desempenhar as principais funções de consenso +e votar no sistema de tesouraria recebendo uma recompensa periódica. + + + Create Masternode Controller + Criar controlador Masternode + + + No active Masternode yet + Nenhum Masternode ativo ainda + + + Start + Começar + + + Delete + Excluir + + + Info + Informações + + + Start Masternode + Iniciar Masternode + + + Are you sure you want to start masternode %1? + + Tem certeza de que deseja iniciar o masternode %1? + + + + + Cannot start masternode, the collateral transaction has not been accepted by the network. +Please wait few more minutes. + Não é possível iniciar o masternode, a transação colateral não foi aceita pela rede. +Aguarde mais alguns minutos. + + + Remote Masternode Data + Dados de Masternode Remoto + + + You are just about to export the required data to run a Masternode +on a remote server to your clipboard. + + +You will only have to paste the data in the pivx.conf file +of your remote server and start it, then start the Masternode using +this controller wallet (select the Masternode in the list and press "start"). + + Você está prestes a exportar os dados necessários para executar um Masternode +em um servidor remoto para a área de transferência. + + +Você só precisará transferir os dados no arquivo pivx.conf +do servidor remoto e inicie-o, reinicie o Masternode usando +esta carteira do controlador (selecione o Masternode na lista e pressione "Iniciar"). + + + + + Masternode exported!, check your clipboard + O Masternode foi exportado!, verifique sua área de trabalho + + + Delete Masternode + Deletar Masternode + + + You are just about to delete Masternode: +%1 + +Are you sure? + Você está prestes a excluir o Masternode: +%1 + +Você tem certeza? + + + Invalid masternode.conf file + Arquivo masternode.conf inválido + + + Error parsing masternode.conf file + Erro ao analisar o arquivo masternode.conf + + + masternode.conf file doesn't exists + O arquivo masternode.conf não existe + + + Not enough balance to create a masternode, 10,000 PIV required. + Não há saldo suficiente para criar um masternode, 10.000 PIV necessários. + + + Error creating masternode + Erro ao criar masternode + + + + MnInfoDialog + + Form + Formulário + + + Master Node Information + Informação Masternode + + + Public Key: + Chave pública: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Address: + Endereço: + + + 127.0.0.2:43223 + 127.0.0.2:43223 + + + Collaterall tx id: + Collaterall tx id: + + + Output index: + Ãndice de saída: + + + 1 Inputs + 1 Entradas + + + Status: + Situação: + + + MISSING + FALTANDO + + + Export data to run the Master Node on a remote server + Exportar dados para executar o Masternode em um servidor remoto + + + + MyAddressRow + + Form + Formulário + + + Jan. 19, 2019 + 19 de janeiro de 2019 + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + NavMenuWidget + + Form + Formulário + + + + OpenURIDialog + + Open URI + Abrir URI + + + Open payment request from URI or file + Abrir requisição de pagamento de URI ou arquivo + + + TextLabel + Rótulo + + + CANCEL + Cancelar + + + OK + Ok + + + Select payment request file + Selecionar arquivo de requisição de pagamento + + + Select payment request file to open + Selecione o arquivo de requisição de pagamento para abrir + + + + OptionButton + + Form + Formulário + + + TextLabel + Rótulo + + + + OptionsDialog + + Options + Opções + + + &Main + &Principal + + + Size of &database cache + Tamanho do cachê da &basededados + + + MB + MB + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = deixe esse tanto de núcleos livres) + + + W&allet + C&arteira + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Abrir automaticamente a porta do cliente PIVX no roteador. Isto somente funciona quando seu roteador suporta UPnP e este esteja habilitado. + + + Accept connections from outside + Aceitar conexões de fora + + + Allow incoming connections + Aceitar conexões chegando + + + &Connect through SOCKS5 proxy (default proxy): + &Conectar através de proxy SOCKS5 (proxy padrão): + + + Expert + Expert + + + Automatically start PIVX after logging in to the system. + Iniciar automaticamente PIVX depois de logar no sistema. + + + &Start PIVX on system login + &Iniciar PIVX ao logar no sistema + + + Enable coin &control features + Habilitar &funcções de controle de moeda + + + Show Masternodes Tab + Mostra aba de Masternodes + + + &Network + &Rede + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + A linguagem da interface pode ser definida aqui. Está configuração terá efeito após reinício do PIVX. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Linguagem não encontrada ou tradução incompleta? Ajude contribuido com traduções aqui: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Connect to the PIVX network through a SOCKS5 proxy. + Conectar à rede PIVX através de um proxy SOCKS5 + + + Proxy &IP: + Proxy &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + Endereço IP do proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Porta: + + + Port of the proxy (e.g. 9050) + Porta do proxy (e.g. 9050) + + + &Window + &Janela + + + Show only a tray icon after minimizing the window. + Mostrar somente um icone depois de minimizar a janela. + + + &Minimize to the tray instead of the taskbar + &Minimizar para a bandeja ao invés da barra de tarefas + + + M&inimize on close + Minimizar quando fechar + + + &Display + &Mostrar + + + User Interface &language: + Interface do usuário &Linguagem: + + + User Interface Theme: + Usar tema de inferface: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Escolha uma unidade padrão para mostrar quando estiver enviando moedas. + + + Decimal digits + Dígitos decimais + + + Third party transaction URLs + URLs de transações de terceiros + + + Reset all client options to default. + Reiniciar todas as opções do cliente para o padrão. + + + &Reset Options + &Reiniciar Opções + + + &OK + &OK + + + &Cancel + &Cancel + + + default + padrão + + + none + nenhum + + + Confirm options reset + Confirma reinício das opções + + + Client restart required to activate changes. + É necessário reiniciar o cliente para ativar as mudanças. + + + Client will be shutdown, do you want to proceed? + O cliente será desligado, deseja continuar? + + + This change would require a client restart. + Esta mudança requer que o cliente seja reiniciado. + + + The supplied proxy address is invalid. + O endereço proxy fornecido é inválido. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + Carteira + + + Node + Nó + + + &Show / Hide + &Mostrar / Esconder + + + Show or hide the main Window + Mostrar ou esconder a janela principal + + + E&xit + &Sair + + + Quit application + Sair da aplicação + + + PIVX Core client + Cliente Core PIVX + + + Error + Erro + + + Warning + Aviso + + + Information + Informação + + + Sent MultiSend transaction + Enviar transação MultiSend + + + Sent transaction + Transação enviada + + + Incoming transaction + Transação chegando + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Data: %1 + +Valor: %2 + +Tipo: %3 + +Endereço: %4 + + + + + PWidget + + + PaymentServer + + Payment request error + Erro na requisição de pagamento + + + Payment request fetch URL is invalid: %1 + Pagamento solicitado pela URL é inválido: %1 + + + Invalid payment address %1 + Carteira de pagamento inválida %1 + + + Payment request rejected + Requisição de pagamento rejeitada + + + Payment request has expired. + Requisição de pagamento expirou. + + + Payment request is not initialized. + A requisição de pagamento não está iniciada. + + + Refund from %1 + Reembolso de %1 + + + Error communicating with %1: %2 + Erro ao comunicar com %1: %2 + + + Network request error + Erro na requisição de rede + + + + PeerTableModel + + Version + Versão + + + Ping Time + Tempo de resposta + + + + PrivacyWidget + + Form + Formulário + + + TextLabel + Rótulo + + + PushButton + Aperte o Botão + + + No active Master Node yet + Nenhum MasterNOde ativo ainda + + + No transactions yet + Nenhuma transação ainda + + + + ProposalFrame + + + QObject + + Amount + Quantidade + + + Enter a PIVX address (e.g. %1) + Insira um endereço PIVX (e.g. %1) + + + %1 d + %1 d + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + REDE + + + UNKNOWN + DESCONHECIDO + + + None + Nenhum + + + N/A + N/A + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + + RPCConsole + + &Information + &Informação + + + General + Geral + + + Name + Nome + + + Client name + nome do cliente + + + N/A + N/A + + + Number of connections + Número de conexões + + + &Open + &Abrir + + + Startup time + Tempo de inicialização + + + Network + Rede + + + Last block time + tempo do último bloco + + + Build date + Data de desenvolvimento + + + Current number of blocks + Número atual de blocos + + + Client version + versão do Cliente + + + Block chain + Block chain + + + Number of Masternodes + Número de Masternodes + + + &Console + &Console + + + Clear console + Limpar console + + + &Network Traffic + &Tráfego da Rede + + + &Clear + &Limpar + + + Totals + Totais + + + Received + Recebido + + + Sent + Enviado + + + &Peers + &Pares + + + Select a peer to view detailed information. + Selecione um par para ver informações detalhadas + + + Direction + Direção + + + Protocol + Protocolo + + + Version + Versão + + + Services + Serviços + + + Connection Time + Tempo de conexão + + + Last Send + Último envio + + + Last Receive + Último recebimento + + + Bytes Sent + Bytes enviados + + + Bytes Received + Bytes recebidos + + + Ping Time + Tempo de resposta + + + &Wallet Repair + &Reparo da Carteira + + + Delete local Blockchain Folders + Excluir pastas locais Blockchain + + + Wallet In Use: + Carteiro em uso: + + + Attempt to recover private keys from a corrupt wallet.dat. + Tentar recuperar chaves privadas de um wallet.dat corrompido. + + + Rescan blockchain files + Reescanear os arquivos da blockchain + + + Recover transactions 1 + Recuperar transações 1 + + + Recover transactions 2 + Recuperar transações 2 + + + Upgrade wallet format + Atualizar formato da carteira + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Deleta todos os arquivos locais da blockchain para que a carteira sincronize do zero. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + Os botões abaixo vão reiniciar a carteira com opções de linha de comando para reparar a carteira, corrigir problemas com os arquivos corrompidos da blockchain ou transações perdidas/obsoletas. + + + Wallet repair options. + Opções de reparo da Carteira + + + Rebuild index + Reconstruir índice + + + In: + entrada: + + + Out: + saída: + + + Welcome to the PIVX RPC console. + Bem-vindo ao console da PIVX RPC + + + Do you want to continue?.<br /> + Você deseja continuar?.<br /> + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + via %1 + via %1 + + + never + nunca + + + Inbound + chegada + + + Unknown + Desconhecido + + + + ReceiveDialog + + Dialog + Diálogo + + + Transaction Details + Detalhes da transação + + + PushButton + Aperte o Botão + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + Cancelar + + + OK + Ok + + + + ReceiveWidget + + Form + Formulário + + + TextLabel + Rótulo + + + Address copied + Endereço copiado + + + + RecentRequestsTableModel + + Date + Data + + + Label + Rótulo + + + Message + Mensagem + + + Address + Endereço + + + Amount + Quantidade + + + (no label) + (sem rótulo) + + + (no message) + (nenhuma mensagem) + + + (no amount) + (nenhuma quantia) + + + + RequestDialog + + Dialog + Diálogo + + + Amount + Quantidade + + + PIV + PIV + + + TextLabel + Rótulo + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + Cancelar + + + Label + Rótulo + + + Error + Erro + + + + SendChangeAddressDialog + + Dialog + Diálogo + + + Transaction Details + Detalhes da transação + + + PushButton + Aperte o Botão + + + CANCEL + Cancelar + + + OK + Ok + + + + SendCustomFeeDialog + + Form + Formulário + + + Transaction Details + Detalhes da transação + + + CANCEL + Cancelar + + + OK + Ok + + + SAVE + SALVAR + + + + SendMultiRow + + Form + Formulário + + + TextLabel + Rótulo + + + + SendWidget + + Send + Enviar + + + Amount + Quantidade + + + Cannot store your own address as contact + Não é possível armazenar seu próprio endereço como contato + + + New Contact Stored + Novo contato armazenado + + + Error Storing Contact + Erro ao armazenar o contato + + + + SettingsBackupWallet + + Form + Formulário + + + TextLabel + Rótulo + + + PushButton + Aperte o Botão + + + Backup Wallet + Carteira de backup + + + Wallet Data (*.dat) + Wallet Data (.dat) + + + + SettingsBitToolWidget + + Form + Formulário + + + TextLabel + Rótulo + + + PushButton + Aperte o Botão + + + Import Address + Importar endereço + + + Clear + Limpar + + + Enter a PIVX address + Digite um endereço PIVX + + + ENCRYPT + CRIPTOGRAFAR + + + The entered passphrase is invalid. + A senha informada é inválida. + + + Allowed: 0-9,a-z,A-Z, + Permitido: 0-9,a-z,A-Z. + + + The entered address is invalid. + O endereço informado é inválido. + + + Please check the address and try again. + Favor verificar o endereço e tente novamente. + + + The entered address does not refer to a key. + O endereço inserido não se refere a uma chave. + + + Wallet unlock was cancelled. + Desbloqueio da carteira foi cancelado. + + + Private key for the entered address is not available. + A chave privada para o endereço fornecido não está disponível. + + + Failed to decrypt. + Falhou ao desencriptar. + + + Please check the key and passphrase and try again. + Favor verificar a chave e a palavra-chave e tentar novamente. + + + Data Not Valid. + Informação não é válida. + + + Please try again. + Favor tentar novamente. + + + Please wait while key is imported + Favor aguardar enquanto a chave é importada + + + + SettingsConsoleWidget + + Form + Formulário + + + TextLabel + Rótulo + + + Welcome to the PIVX RPC console. + Bem-vindo ao console da PIVX RPC + + + + SettingsDisplayOptionsWidget + + Form + Formulário + + + TextLabel + Rótulo + + + PushButton + Aperte o Botão + + + Decimal digits + Dígitos decimais + + + SAVE + SALVAR + + + default + padrão + + + + SettingsFaqWidget + + Form + Formulário + + + TextLabel + Rótulo + + + PushButton + Aperte o Botão + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 5 + 5 + + + 10 + 10 + + + + SettingsInformationWidget + + Form + Formulário + + + TextLabel + Rótulo + + + Information + Informação + + + General + Geral + + + Network + Rede + + + In: + entrada: + + + Out: + saída: + + + + SettingsMainOptionsWidget + + Form + Formulário + + + TextLabel + Rótulo + + + CheckBox + CheckBox + + + SAVE + SALVAR + + + + SettingsMultisendDialog + + Form + Formulário + + + Transaction Details + Detalhes da transação + + + TextLabel + Rótulo + + + CANCEL + Cancelar + + + SAVE + SALVAR + + + + SettingsMultisendWidget + + Form + Formulário + + + TextLabel + Rótulo + + + No active Master Node yet + Nenhum MasterNOde ativo ainda + + + CheckBox + CheckBox + + + Active + Ativo + + + + SettingsSignMessageWidgets + + Form + Formulário + + + TextLabel + Rótulo + + + PushButton + Aperte o Botão + + + Clear + Limpar + + + Message + Mensagem + + + Signature + Assinatura + + + The entered address is invalid. + O endereço informado é inválido. + + + Please check the address and try again. + Favor verificar o endereço e tente novamente. + + + The entered address does not refer to a key. + O endereço inserido não se refere a uma chave. + + + Wallet unlock was cancelled. + Desbloqueio da carteira foi cancelado. + + + Private key for the entered address is not available. + A chave privada para o endereço fornecido não está disponível. + + + Message signing failed. + Assinatura da mensagem falhou. + + + Message signed. + Mensagem assinada. + + + The signature could not be decoded. + A assinatura não pôde ser decodificada. + + + Please check the signature and try again. + Favor verificar a assinatura e tentar novamente. + + + The signature did not match the message digest. + A assinatura não conferiu com o resumo da mensagem. + + + Message verification failed. + Verificação da mensagem falhou. + + + Message verified. + Mensagem verificada. + + + + SettingsWalletOptionsWidget + + Form + Formulário + + + TextLabel + Rótulo + + + CheckBox + CheckBox + + + PushButton + Aperte o Botão + + + Wallet + Carteira + + + Network + Rede + + + Allow incoming connections + Aceitar conexões chegando + + + SAVE + SALVAR + + + + SettingsWalletRepairWidget + + Form + Formulário + + + TextLabel + Rótulo + + + PushButton + Aperte o Botão + + + Attempt to recover private keys from a corrupt wallet.dat. + Tentar recuperar chaves privadas de um wallet.dat corrompido. + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Deleta todos os arquivos locais da blockchain para que a carteira sincronize do zero. + + + Recover transactions 1 + Recuperar transações 1 + + + Recover transactions 2 + Recuperar transações 2 + + + Upgrade wallet format + Atualizar formato da carteira + + + Rebuild index + Reconstruir índice + + + Do you want to continue?.<br /> + Você deseja continuar?.<br /> + + + + SettingsWidget + + Form + Formulário + + + TextLabel + Rótulo + + + Wallet + Carteira + + + Options + Opções + + + Information + Informação + + + Confirm options reset + Confirma reinício das opções + + + Client restart required to activate changes. + É necessário reiniciar o cliente para ativar as mudanças. + + + Client will be shutdown, do you want to proceed? + O cliente será desligado, deseja continuar? + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core está desligando... + + + Do not shut down the computer until this window disappears. + Não desligue o seu computador até que esta janela desapareça + + + + SnackBar + + Form + Formulário + + + + Splash + + Form + Formulário + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Versão %1 + + + The Bitcoin Core developers + Os desenvolvedores do Bitcoin Core + + + The Dash Core developers + Os desenvolvedores do Dash Core + + + The PIVX Core developers + Os desenvolvedores do PIVX Core + + + [testnet] + [testnet] + + + + TooltipMenu + + Form + Formulário + + + Delete + Excluir + + + + TopBar + + Form + Formulário + + + %1 and %2 + %1 e %2 + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open until %1 + Aberto até %1 + + + conflicted + conflitou + + + %1/offline + %1/offline + + + %1/unconfirmed + %1/não confirmado + + + %1 confirmations + %1 confirmações + + + %1/offline (verified via SwiftX) + %1/offline (verificado via SwiftX) + + + %1/confirmed (verified via SwiftX) + %1/confirmado (verificado via SwiftX) + + + %1 confirmations (verified via SwiftX) + %1 confirmações (verificado via SwiftX) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/offline (verificação SwiftX em progresso - %2 de %3 assinaturas) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/confirmado (verificação SwiftX em progresso - %2 de %3 assinaturas ) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 confirmações ( verificação SwiftX em progresso - %2 de %3 assinaturas) + + + %1/offline (SwiftX verification failed) + %1/offline ( verificação SwiftX falhou) + + + %1/confirmed (SwiftX verification failed) + %1/confirmado (verificação SwiftX falhou) + + + Status + Situação + + + , has not been successfully broadcast yet + , não foi propagada com sucesso ainda + + + Date + Data + + + Source + Fonte + + + Generated + Gerado + + + From + De + + + unknown + desconhecido + + + To + Para + + + own address + endereço próprio + + + watch-only + somente visualização + + + label + rótulo + + + Credit + Crédito + + + not accepted + não aceito + + + Debit + Débito + + + Total debit + Débito total + + + Total credit + Crédito total + + + Transaction fee + Taxa de transação + + + Net amount + Valor líquido + + + Message + Mensagem + + + Comment + Comentário + + + Transaction ID + ID da transação + + + Output index + Ãndice de outputs + + + Merchant + Vendedor + + + Debug information + Informação de depuração + + + Transaction + Transação + + + Inputs + Inputs + + + Amount + Quantidade + + + true + verdadeiro + + + false + falso + + + + TransactionTableModel + + Date + Data + + + Type + Tipo + + + Address + Endereço + + + Open until %1 + Aberto até %1 + + + Offline + Offline + + + Unconfirmed + Não confirmado + + + Confirming (%1 of %2 recommended confirmations) + Confirmando (%1 de %2 confirmações recomendadas) + + + Confirmed (%1 confirmations) + Confirmado (%1 confirmações) + + + Conflicted + Conflitado + + + Immature (%1 confirmations, will be available after %2) + Imaturo (%1 confirmações, estará disponível depois de %2) + + + This block was not received by any other nodes and will probably not be accepted! + O bloco não foi recebido por qualquer outro nó e provavelmente não será aceito! + + + Received with + Recebido com + + + Masternode Reward + Recompensa de Masternode + + + Received from + Recebido de + + + Received via Obfuscation + Recebido com Ofuscação + + + Sent to + Enviado para + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Bloco órfão - Gerado, porém não aceito. Isto não impacta seus fundos. + + + Payment to yourself + Pagamento para si mesmo + + + Mined + Minerado + + + Obfuscated + Ofuscado + + + watch-only + somente visualização + + + (n/a) + (n/a) + + + Transaction status. Hover over this field to show number of confirmations. + Estado da transação. Passe o cursor sobre este campo para mostrar o número de confirmações. + + + Date and time that the transaction was received. + Data e horário que a transação foi recebida. + + + Type of transaction. + Tipo de transação. + + + Whether or not a watch-only address is involved in this transaction. + Se está ou não envolvido um endereço somente visualização nesta transação. + + + Destination address of transaction. + Endereço de destino da transação. + + + Amount removed from or added to balance. + Quantia removida ou adicionada ao saldo. + + + + TxDetailDialog + + Form + Formulário + + + Transaction Details + Detalhes da transação + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + 1 Inputs + 1 Entradas + + + Fee: + Taxa: + + + Status: + Situação: + + + TextLabel + Rótulo + + + CANCEL + Cancelar + + + OK + Ok + + + Unknown + Desconhecido + + + + TxRow + + Form + Formulário + + + + WalletModel + + Send Coins + Enviar Moedas + + + + WalletPasswordDialog + + Dialog + Diálogo + + + TextLabel + Rótulo + + + PushButton + Aperte o Botão + + + CANCEL + Cancelar + + + OK + Ok + + + + WelcomeContentWidget + + Dialog + Diálogo + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + Welcome + Bem-vindo + + + Masternodes + Masternodes + + + default + padrão + + + + ZPivControlDialog + + PushButton + Aperte o Botão + + + zPiv + zPIV + + + Quantity: + Quantidade: + + + 0 + 0 + + + Select/Deselect All + Selecionar/Deselecionar todos + + + + pivx-core + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Deletar todas as transações da carteira e somente recuperar aquelas partes da blockchain através de -rescan na inicialização + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Erro: Argumento não suportado -socks encontrado. Definir a versão SOCKS não é mais possível, somente proxies SOCKS5 são suportados. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Executar o comando quando um alerta relevante for recebido ou vermos uma grande bifurcação da rede (%s no cmd é substituído pela mensagem) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Executar o comando quando uma transação da carteira mudar (%s no cmd será substituído pela TxID) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Taxas (em PIV/Kb) menores que isso serão consideradas taxa zero para propagação (padrão: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Taxas (em PIV/Kb) menores que isso serão consideradas taxa zero para a criação da transação (padrão: %s) + + + In this mode -genproclimit controls how many blocks are generated immediately. + Neste modo -genproclimit controla quantos blocos são gerados imediatamente. + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Número de segundos a manter pares em mal comportamento de se reconectarem (padrão: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Requerir alta prioridade na propagação gratuita ou com taxa baixa em transações (padrão:%u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Define o tamanho máximo de transações de alta prioridade/taxa baixa em bytes (padrão: %d) + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Incapaz de localizar fundos para esta transação que não são iguais a 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Utilize proxy SOCKS5 separado para alcançar pares através dos serviços camuflados Tor (default: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Aviso: -maxtxfee está definido como muito alto! Taxas deste tamanho poderão ser pagas em uma única transação. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Aviso: -paytxfee está definido como muito alto! Está e a taxa de transação que você irá pagar se enviar uma transação. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Aviso: Favor verificar se o horário e data de seu computador estão corretos! Se o seu relógio estiver errado o Core PIVX não vai funcionar corretamente. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Aviso: A rede parece não estar em total concordância! Alguns mineradores aparentemente estão enfrentando problemas. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Aviso: erro na leitura do wallet.dat! Todas as chaves foram lidas corretamente, mas as informações de transações ou livro de endereços não foram encontradas ou estão incorretas. + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + Você deve especificar uma masternodeprivkey na configuração. Favor verificar o manual para obter ajuda. + + + (51472 could be used only on mainnet) + (51472 could be used only on mainnet) + + + (default: %s) + (padrão: %s) + + + (default: 1) + (padrão: 1) + + + (must be 51472 for mainnet) + (deve ser 51472 para mainnet) + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Aceitar conexões do exterior (padrão: 1 se não -proxy ou -connect) + + + Add a node to connect to and attempt to keep the connection open + Adicionar um nó para conectar e tentar manter uma conexão aberta + + + Block creation options: + Opções de criação de bloco: + + + Connect only to the specified node(s) + Conectar somente aos nós especifico(s) + + + Connect through SOCKS5 proxy + Conectar através de proxy SOCKS5 + + + Connect to a node to retrieve peer addresses, and disconnect + Conecte a um nó para recuperar endereços de pares e disconecte + + + Connection options: + Opções de conexão: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Todos os direitos reservados (C) 2009-%i aos Desenvolvedores do Bitcoin Core + + + Copyright (C) 2014-%i The Dash Core Developers + Todos os direitos reservados (C) 2014-%i aos Desenvolvedores do Dash Core + + + Copyright (C) 2015-%i The PIVX Core Developers + Todos os direitos reservados (C) 2015-%i aos Desenvolvedores do PIVX Core + + + Corrupted block database detected + database de blocos corrompida + + + Debugging/Testing options: + Opções de depuração/teste: + + + Disable OS notifications for incoming transactions (default: %u) + Desabilitar notificações OS para transações chegando (padrão: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Descobrir próprio endereço IP (padrão: 1 se na escuta e não -externalip) + + + Do you want to rebuild the block database now? + Você deseja refazer a database de blocos agora? + + + Done loading + Carregamento completo + + + Enable the client to act as a masternode (0-1, default: %u) + Permite ao cliente atuar como um masternode (0-1, padrão: %u) + + + Error initializing block database + Erro ao inicializar a base de dados de blocos + + + Error initializing wallet database environment %s! + Erro ao inicializar o ambiente da base de dados da carteira %s! + + + Error loading block database + Erro no carregamento da base de dados dos blocos + + + Error loading wallet.dat + Erro no carregamento da wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Erro no carregamento da wallet.dat: Carteira corrompida + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Erro ao carregar wallet.dat: A Carteira requer uma nova versão da PIVX Core + + + Error opening block database + Erro na abertura da base de dados dos blocos + + + Error reading from database, shutting down. + Erro na leitura da base de datos, desligando. + + + Error + Erro + + + Error: A fatal internal error occured, see debug.log for details + Erro: Um erro interno ocorreu, veja debug.log para detalhes + + + Error: Disk space is low! + Erro: Espaço em disco está baixo! + + + Error: Wallet locked, unable to create transaction! + erro: Carteira travada, não foi possível criar a transação! + + + Failed to listen on any port. Use -listen=0 if you want this. + Falhou em escutar qualquer porta. Use -listen=0 se você quiser isso. + + + Failed to read block + Falhou em ler o bloco + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Taxa (em PIV/kB) a adicionar em transações que você enviar (padrão: %s) + + + Force safe mode (default: %u) + Forçar modo seguro (padrão: %u) + + + Generate coins (default: %u) + Gerar moedas (padrão: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Quantos blocos verificar na inicialização (padrão: %u, 0 = todos) + + + Importing... + Importando... + + + Incorrect or no genesis block found. Wrong datadir for network? + Incorreto ou bloco gênesis não encontrado. O datadir de rede estaria errado? + + + Information + Informação + + + Insufficient funds + Fundos insuficientes + + + Insufficient funds. + Fundos insuficientes. + + + Invalid amount for -maxtxfee=<amount>: '%s' + Quantia inválida para -maxtxfee=<amount>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Quantia inválida para -minrelaytxfee=<amount>: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Quantia inválida para -mintxfee=<amount>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Quantia inválida para -paytxfee=<amount>: '%s' (deve ser pelo menos %s) + + + Invalid amount for -paytxfee=<amount>: '%s' + Quantia inválida para -paytxfee=<amount>: '%s' + + + Invalid amount for -reservebalance=<amount> + Quantia inválida para -reservebalance=<quantidade> + + + Invalid amount + quantia inválida + + + Invalid masternodeprivkey. Please see documenation. + masternodeprivkey inválido. Favor conferir o manual. + + + Invalid netmask specified in -whitelist: '%s' + Máscara de rede especificada inválida em -whitelist: '%s' + + + Invalid port detected in masternode.conf + Porta inválida detectada em masternode.conf + + + SwiftX options: + opções SwiftX: + + + unconfirmed transactions removed + + transações não confirmadas removidas + + + + <category> can be: + <category> pode ser: + + + Limit size of signature cache to <n> entries (default: %u) + Limitar o tamanho do cachê de assinatora a <n> entradas (padrão: %u) + + + Line: %d + Linha: %d + + + Loading addresses... + Carregando endereços... + + + Loading block index... + Carregando índice de blocos... + + + Loading masternode cache... + Carregando cachê do masternode... + + + Loading masternode payment cache... + Carregando o cachê de pagamento do masternode... + + + Loading wallet... (%3.2f %%) + Carregando carteira... (%3.2f %%) + + + Loading wallet... + Carregando carteira... + + + Maintain at most <n> connections to peers (default: %u) + Manter pelo menos <n> conexões aos pares (padrão: %u) + + + Masternode options: + Opções de Masternode: + + + Need to specify a port with -whitebind: '%s' + Necessário especificar uma porta com -whitebind: '%s' + + + Node relay options: + Opções de propagação do Nó: + + + Number of automatic wallet backups (default: 10) + Número de backups automáticos da carteira (padrão: 10) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Somente conecte a nós da rede <net> (Ipv4, ipv6 ou onion) + + + Options: + Opções: + + + Password for JSON-RPC connections + Senha para conexões JSON-RPC + + + Preparing for resync... + Preparando para ressincronizar... + + + RPC server options: + opções do servidor RPC: + + + Receive and display P2P network alerts (default: %u) + Receber e mostrar alertas da rede P2P (padrão: %u) + + + Rescanning... + Reescaneando... + + + Send transactions as zero-fee transactions if possible (default: %u) + Enviar transações com taxa zero se possível (padrão: %u) + + + Session timed out. + Sessão expirou. + + + Set database cache size in megabytes (%d to %d, default: %d) + Defina o cachê da base de dados em megabytes (%d a %d, padrão: %d) + + + Set external address:port to get to this masternode (example: %s) + Defina o enderço externo:porta para chegar a este masternode (exemplo: %s) + + + Set maximum block size in bytes (default: %d) + Defina o tamanho máximo do bloco em bytes (padrão: %d) + + + Set minimum block size in bytes (default: %u) + Define o tamanho mínimo do bloco em bytes (padrão: %u) + + + Set the masternode private key + Define a chave privada do masternode + + + Signing timed out. + Autenticação expirou. + + + Signing transaction failed + Assinatura da transação falhou + + + Specify configuration file (default: %s) + Especifique o arquivo de configuração (padrão: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Especifique em milisegundos o tempo para uma conexão expirar (mínimo: 1, padrão: %d) + + + Specify data directory + Especifique o diretório de informações + + + Specify masternode configuration file (default: %s) + Especifique o arquivo de configuração do masternode (padrão: %s) + + + Specify pid file (default: %s) + Especifique o arquivo pid (padrão: %s) + + + Specify wallet file (within data directory) + Especificar arquivo da carteira (dentro do diretório de dados) + + + Specify your own public address + Especifique seu próprio endereço público + + + Staking options: + Opções de staking: + + + Stop running after importing blocks from disk (default: %u) + Parar de rodar depois de importar blocos do disco (padrão: %u) + + + Synchronization failed + Sincronização falhou + + + Synchronization finished + Sincronização concluída + + + Synchronization pending... + Sincronização pendente... + + + Synchronizing masternodes... + Sincronizando masternodes... + + + This help message + Esta mensagem de ajuda + + + This is experimental software. + Este software é experimental. + + + Transaction amount too small + Quantia de transação muito pequena + + + Transaction amounts must be positive + Quantias de transação devem ser positivas + + + Transaction too large for fee policy + Transação muito grande para a política de taxas. + + + Transaction too large + Transação muito grande + + + Unknown network specified in -onlynet: '%s' + Rede desconhecida especificada em -onlynet: '%s' + + + Upgrade wallet to latest format + Atualize a carteira para o último formato + + + Use UPnP to map the listening port (default: 1 when listening) + Use UPnP para mapear a porta de escuta (padrão: 1 ao escutar) + + + Use a custom max chain reorganization depth (default: %u) + Use uma profundidade de reorganização máxima da cadeia personalizada (padrão: %u) + + + Use the test network + Use a rede de testes + + + User Agent comment (%s) contains unsafe characters. + O comentário do agente do usuário (%s) contém caracteres não seguros. + + + Username for JSON-RPC connections + Nome de usuário para conexões JSON-RPC + + + Value is below the smallest available denomination (= 1) of zPIV + O valor está abaixo da menor denominação disponível (= 1) do zPIV + + + Verifying blocks... + Verificando blocos... + + + Verifying wallet... + Verificando carteira... + + + Wallet %s resides outside data directory %s + A carteira %s reside fora do diretório de dados %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + A carteira precisa ser reescrita: reinicia o PIVX Core para completar + + + Wallet options: + Opções de carteira: + + + Wallet window title + Título da janela da Carteira + + + Warning + Aviso + + + Warning: This version is obsolete, upgrade required! + Aviso: Esta versão está obsoleta, atualização necessária! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Aviso: Argumento não suportado -benchmark ignorado, use -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Aviso: Argumento não suportado -debugnet ignorado, use -debug=net. + + + You don't have enough Zerocoins in your wallet + Você não tem Zerocoins suficientes na sua carteira + + + You need to rebuild the database using -reindex to change -txindex + Você precisa refazer a base de dados usando -reindex para mudar -txindex + + + Zapping all transactions from wallet... + Eliminando todas as transações da carteira... + + + ZeroMQ notification options: + Opções de notificação ZeroMQ: + + + Zerocoin options: + opções Zerocoin: + + + on startup + em inicialização + + + wallet.dat corrupt, salvage failed + wallet.dat corrompido, falha ao salvar + + + + send + + Form + Formulário + + + Send + Enviar + + + TextLabel + Rótulo + + + PushButton + Aperte o Botão + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_ro_RO.ts b/src/qt/locale/pivx_ro_RO.ts new file mode 100644 index 0000000..11cb379 --- /dev/null +++ b/src/qt/locale/pivx_ro_RO.ts @@ -0,0 +1,297 @@ + + + AddNewAddressDialog + + + AddNewContactDialog + + + AddressBookPage + + Right-click to edit address or label + FaceÈ›i click dreapta pentru a edita adresa sau eticheta + + + Create a new address + Creează o nouă adresă + + + &New + &Nou/Nouă + + + Copy the currently selected address to the system clipboard + Copiază adresa selectată în clipboard + + + &Copy + &Copiază + + + Delete the currently selected address from the list + Șterge adresa selectată din listă + + + &Delete + &Șterge + + + Export the data in the current tab to a file + Exportă datele din fila curentă într-un fiÈ™ier + + + &Export + &Exportă + + + C&lose + &ÃŽnchide + + + Choose the address to send coins to + Alege adresa la care vrei să trimiÈ›i monedele + + + Choose the address to receive coins with + Alege adresa la care vrei să primeÈ™ti monedele + + + C&hoose + &Alege + + + + AddressLabelRow + + + AddressTableModel + + + AddressesWidget + + + AskPassphraseDialog + + + BanTableModel + + + BlockExplorer + + + CSRow + + + ClientModel + + + CoinControlDialog + + + CoinControlPivWidget + + + ColdStakingWidget + + + ContactDropdownRow + + + DashboardWidget + + + DefaultDialog + + + DenomGenerationDialog + + + EditAddressDialog + + + ExpandableButton + + + FreespaceChecker + + + GovernancePage + + + HelpMessageDialog + + + Intro + + + LoadingDialog + + + LockUnlock + + + MNRow + + + MasterNodeWizardDialog + + + MasterNodesWidget + + + MnInfoDialog + + + MyAddressRow + + + NavMenuWidget + + + OpenURIDialog + + + OptionButton + + + OptionsDialog + + + PIVXGUI + + + PWidget + + + PaymentServer + + + PeerTableModel + + + PrivacyWidget + + + ProposalFrame + + + QObject + + + RPCConsole + + + ReceiveDialog + + + ReceiveWidget + + + RecentRequestsTableModel + + + RequestDialog + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + + SendMultiRow + + + SendWidget + + + SettingsBackupWallet + + + SettingsBitToolWidget + + + SettingsConsoleWidget + + + SettingsDisplayOptionsWidget + + + SettingsFaqWidget + + + SettingsInformationWidget + + + SettingsMainOptionsWidget + + + SettingsMultisendDialog + + + SettingsMultisendWidget + + + SettingsSignMessageWidgets + + + SettingsWalletOptionsWidget + + + SettingsWalletRepairWidget + + + SettingsWidget + + + ShutdownWindow + + + SnackBar + + + Splash + + + SplashScreen + + + TooltipMenu + + + TopBar + + + TrafficGraphWidget + + + TransactionDesc + + + TransactionTableModel + + + TxDetailDialog + + + TxRow + + + WalletModel + + + WalletPasswordDialog + + + WelcomeContentWidget + + + ZPivControlDialog + + + pivx-core + + + send + + \ No newline at end of file diff --git a/src/qt/locale/pivx_ru.ts b/src/qt/locale/pivx_ru.ts new file mode 100644 index 0000000..68845ab --- /dev/null +++ b/src/qt/locale/pivx_ru.ts @@ -0,0 +1,7503 @@ + + + AddNewAddressDialog + + Dialog + Диалоговое окно + + + My Address + Мой Ð°Ð´Ñ€ÐµÑ + + + Address + ÐÐ´Ñ€ÐµÑ + + + PushButton + Ðажать кнопку + + + CANCEL + ОТМЕÐÐ + + + OK + ХОРОШО + + + + AddNewContactDialog + + Dialog + Диалоговое окно + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + CANCEL + ОТМЕÐÐ + + + OK + ХОРОШО + + + Edit Contact + Добавить контакт + + + Set a label for the selected address + УÑтановить Ñрлык Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ адреÑа + + + Enter a name for the address (e.g Exchange) + Введите Ð¸Ð¼Ñ Ð°Ð´Ñ€ÐµÑа (например, биржи) + + + SAVE + СОХРÐÐИТЬ + + + Edit label for the selected address: +%1 + Изменить Ñрлык Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ адреÑа: + %1 + + + + AddressBookPage + + Right-click to edit address or label + Щелкните правой кнопкой мыши, чтобы изменить Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ метку + + + Create a new address + Создать новый Ð°Ð´Ñ€ÐµÑ + + + &New + &Ðовый + + + Copy the currently selected address to the system clipboard + Скопировать текущий выбранный Ð°Ð´Ñ€ÐµÑ Ð² буфер обмена ÑиÑтемы + + + &Copy + &Копировать + + + Delete the currently selected address from the list + Удалить текущий выбранный Ð°Ð´Ñ€ÐµÑ Ð¸Ð· ÑпиÑка + + + &Delete + &Удалить + + + Export the data in the current tab to a file + ЭкÑпортировать данные Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ вкладки в файл + + + &Export + &ЭкÑпорт + + + C&lose + З&акрыть + + + Choose the address to send coins to + Выберите Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ монет + + + Choose the address to receive coins with + Выберите Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð½ÐµÑ‚ + + + C&hoose + Ð’&ыберите + + + Sending addresses + ÐдреÑа отправки + + + Receiving addresses + ÐдреÑа Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Это ваши PIVX-адреÑа Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ платежей. Перед отправкой монет вÑегда проверÑйте Ñумму и Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Это ваши PIVX-адреÑа Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶ÐµÐ¹. Ð”Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ транзакции рекомендуетÑÑ Ð¸Ñпользовать новый Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ. + + + &Copy Address + &Копировать ÐÐ´Ñ€ÐµÑ + + + Copy &Label + Копировать &Метку + + + &Edit + &Редактировать + + + Export Address List + ЭкÑпорт ÑпиÑка адреÑов + + + Comma separated file (*.csv) + Файл формата csv + + + Exporting Failed + Ошибка ÑкÑпорта + + + There was an error trying to save the address list to %1. Please try again. + Произошла ошибка при попытке Ñохранить ÑпиÑок адреÑов в %1. ПожалуйÑта, попробуйте еще раз. + + + + AddressLabelRow + + Form + Вид + + + Bob Allen + Иван Петров + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + AddressTableModel + + Label + Метка + + + Address + ÐÐ´Ñ€ÐµÑ + + + Date + Дата + + + (no label) + (нет Ñрлыка) + + + + AddressesWidget + + Form + Вид + + + Send + Отправить + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + No active Master Node yet + Пока что нет активной МаÑтерноды + + + Contact name + Контактное Ð¸Ð¼Ñ + + + Enter address + ВвеÑти Ð°Ð´Ñ€ÐµÑ + + + OK + ХОРОШО + + + Contacts + Контакты + + + You can add a new one in the options menu to the side. + Ð’Ñ‹ можете добавить новый в меню параметров Ñбоку. + + + No contacts yet + Пока что нет контактов + + + e.g. John Doe + Ðапример, Иван Петров + + + Enter a PIVX address + ВвеÑти Ð°Ð´Ñ€ÐµÑ PIVX + + + SAVE + СОХРÐÐИТЬ + + + Invalid Contact Address + Ðеверный контактный Ð°Ð´Ñ€ÐµÑ + + + Cannot store your own address as contact + Ðевозможно Ñохранить ваш личный Ð°Ð´Ñ€ÐµÑ Ð² качеÑтве контакта + + + Address already stored, label: %1 + ÐÐ´Ñ€ÐµÑ ÑƒÐ¶Ðµ Ñохранен, Ñрлык: %1 + + + New Contact Stored + Ðовый контакт Ñохранен + + + Error Storing Contact + Ошибка при Ñохранении контакта + + + Contact edited + Контакт изменен + + + Contact edit failed + Ðе удалоÑÑŒ изменить контакт + + + Delete Contact + Удалить контакт + + + You are just about to remove the contact: + +%1 + +Are you sure? + Ð’Ñ‹ ÑобираетеÑÑŒ удалить контакт: + +%1 + +Ð’Ñ‹ уверены? + + + Contact Deleted + Контакт удален + + + Error deleting a contact + Ошибка при удалении контакта + + + Address copied + ÐÐ´Ñ€ÐµÑ Ñкопирован + + + + AskPassphraseDialog + + Passphrase Dialog + Диалоговое окно кодовой фразы + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + PushButton + Ðажать кнопку + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Введите новый пароль к кошельку. <br/>ИÑпользуйте при Ñтом деÑÑÑ‚ÑŒ </b>или более Ñлучайных Ñимволов </b>или воÑем и более Ñлов. + + + Encrypt wallet + Зашифровать кошелек + + + This operation needs your wallet passphrase to unlock the wallet. + Ð”Ð»Ñ Ñтой операции требуетÑÑ ÐºÐ¾Ð´Ð¾Ð²Ð°Ñ Ñ„Ñ€Ð°Ð·Ð° вашего кошелька, чтобы разблокировать кошелек. + + + Unlock wallet +for staking + Разблокировать кошелек Ð´Ð»Ñ Ñтекинга + + + Unlock wallet + СнÑтие блокировки кошелька + + + This operation needs your wallet passphrase to decrypt the wallet. + Ð”Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸ Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ кошелька нужна ÐºÐ¾Ð´Ð¾Ð²Ð°Ñ Ñ„Ñ€Ð°Ð·Ð°. + + + Decrypt wallet + РаÑшифровать кошелек + + + Change passphrase + Изменить кодовую фразу + + + Enter the old and new passphrase to the wallet. + Введите Ñтарую и новую кодовую фразу Ð´Ð»Ñ ÐºÐ¾ÑˆÐµÐ»ÑŒÐºÐ°. + + + Confirm wallet encryption + Подтверждение ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾ÑˆÐµÐ»ÑŒÐºÐ° + + + ENCRYPT + РÐСШИФРОВÐТЬ + + + CANCEL + ОТМЕÐÐ + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX ÑÐµÐ¹Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ð¾ÐµÑ‚ÑÑ, чтобы завершить процеÑÑ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ. Помните, что шифрование вашего кошелька не может полноÑтью защитить ваши PIVX от кражи Ñ Ð¸Ñпользованием вредоноÑного ПО. + + + Are you sure you wish to encrypt your wallet? + Ð’Ñ‹ дейÑтвительно хотите зашифровать Ñвой кошелек? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Внимание: еÑли вы зашифруете Ñвой кошелёк и потерÑете от него пароль, то вы <b>ПОТЕРЯЕТЕ ВСЕ СВОИ PIV</b>! + + + Wallet encrypted + Кошелек зашифрован + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + Ð’ÐЖÐО: вÑе предыдущие резервные копии вашего файла кошелька должны быть заменены вновь Ñозданным зашифрованным файлом кошелька. Из Ñоображений безопаÑноÑти предыдущие резервные копии незашифрованного файла кошелька Ñтанут беÑполезными, как только вы начнете иÑпользовать новый зашифрованный кошелек. + + + Wallet encryption failed + Сбой ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾ÑˆÐµÐ»ÑŒÐºÐ° + + + OK + ХОРОШО + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Шифрование кошелька не удалоÑÑŒ из-за внутренней ошибки. Ваш кошелек не был зашифрован. + + + The supplied passphrases do not match. + Введенные парольные фразы не Ñовпадают. + + + Wallet unlock failed + Ðе удалоÑÑŒ разблокировать кошелек + + + The passphrase entered for the wallet decryption was incorrect. + ÐšÐ¾Ð´Ð¾Ð²Ð°Ñ Ñ„Ñ€Ð°Ð·Ð°, Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ð°Ñ Ð´Ð»Ñ Ñ€Ð°Ñшифровки кошелька, была неверной. + + + Wallet decryption failed + Ðе удалоÑÑŒ дешифровать кошелек + + + Wallet passphrase was successfully changed. + ÐšÐ¾Ð´Ð¾Ð²Ð°Ñ Ñ„Ñ€Ð°Ð·Ð° кошелька уÑпешно изменена. + + + Warning: The Caps Lock key is on! + Внимание: Клавиша Caps Lock включена! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + Запрещено до + + + + BlockExplorer + + Blockchain Explorer + Обзор блокчейна + + + Back + Ðазад + + + Forward + вперед + + + Address / Block / Transaction + ÐÐ´Ñ€ÐµÑ / Блок / Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ + + + Search + ПоиÑк + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Будут показаны не вÑе транзакции. Ð”Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð²Ñех транзакций необходимо выÑтавить txindex=1 в конфигурационном файле (pivx.conf). + + + + CSRow + + Form + Вид + + + Savings + Ð¡Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ñ + + + 0,00 PIV + 0.00 PIV + + + address + Ð°Ð´Ñ€ÐµÑ + + + Not Staking + Стекинг не запущен + + + Own delegation + СобÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð´ÐµÐ»ÐµÐ³Ð°Ñ†Ð¸Ñ + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Общее количеÑтво: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / ÐеизвеÑтные: %5) + + + Network Alert + Сетевое предупреждение + + + + CoinControlDialog + + Quantity: + КоличеÑтво: + + + Bytes: + Байты: + + + Fee: + КомиÑÑиÑ: + + + Coin Selection + Выбор монеты + + + Dust: + Пыль: + + + Change: + Изменить: + + + Tree mode + Режим древа + + + List mode + Режим ÑпиÑка + + + (1 locked) + (1 заблокирован) + + + Amount + Сумма + + + Transaction Details + Детали транзакции + + + PushButton + Ðажать кнопку + + + 0.00 PIV + 0.00 PIV + + + 0 + 0 + + + Select all + Выбрать вÑе + + + Toggle lock state + Переключить ÑоÑтоÑние блокировки + + + Received with label + Получено Ñ Ð¼ÐµÑ‚ÐºÐ¾Ð¹ + + + Received with address + Полученно на Ð°Ð´Ñ€ÐµÑ + + + After Fee: + ПоÑле комиÑÑии: + + + OK + ХОРОШО + + + Date + Дата + + + Confirmations + ÐŸÐ¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ + + + Confirmed + Подтверждено + + + Copy address + Копировать Ð°Ð´Ñ€ÐµÑ + + + Copy label + Копировать метку + + + Copy amount + Копировать Ñумму + + + Copy transaction ID + Копировать ID транзакции + + + Lock unspent + Заблокировать неÑтраченные + + + Unlock unspent + Разблокировать неиÑтраченные + + + Copy quantity + Копировать количеÑтво + + + Copy fee + Копировать комиÑÑию + + + Copy after fee + Копировать поÑле Ð²Ð¾Ð·Ð½Ð°Ð³Ñ€Ð°Ð¶Ð´ÐµÐ½Ð¸Ñ + + + Copy bytes + Копировать байты + + + Copy priority + Копировать приоритет + + + Copy dust + Копировать пыль + + + Copy change + Копировать изменение + + + Unselect all + СнÑÑ‚ÑŒ вÑе + + + Please switch to "List mode" to use this function. + Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтой функции перейдите в "Режим ÑпиÑка" + + + highest + Ñамый выÑокий + + + higher + выше + + + high + выÑокий + + + medium-high + Ñредне-выÑокий + + + medium + промежуточный + + + low-medium + низко-Ñредний + + + low + низкий + + + lower + ниже + + + lowest + Ñамый низкий + + + (%1 locked) + (%1 заблокирован) + + + none + ничего + + + yes + да + + + no + нет + + + This label turns red, if the transaction size is greater than 1000 bytes. + Этот маркер ÑтановитÑÑ ÐºÑ€Ð°Ñным еÑли размер транзакции превыÑит 1000 байт. + + + This means a fee of at least %1 per kB is required. + Это означает, что необходима комиÑÑÐ¸Ñ Ð² размере как минимум %1 за kB + + + Can vary +/- 1 byte per input. + Может вариировать +/- 1 байт на каждый ввод + + + Transactions with higher priority are more likely to get included into a block. + Транзакции Ñ Ð²Ñ‹Ñоким приоритетом Ñ Ð±Ð¾Ð»ÑŒÑˆÐµÐ¹ вероÑтноÑтью будут включены в блок. + + + This label turns red, if the priority is smaller than "medium". + Этот маркер ÑтановитÑÑ ÐºÑ€Ð°Ñным еÑли приоритет ниже, чем "Ñредний". + + + This label turns red, if any recipient receives an amount smaller than %1. + Этот маркер ÑтановитÑÑ ÐºÑ€Ð°Ñным еÑли Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÐµÐ¼Ð°Ñ Ð°Ð´Ñ€ÐµÑатом Ñумма меньше, чем %1 + + + Can vary +/- %1 upiv per input. + Может вариироватьÑÑ +/- %1 upiv при вводе + + + (no label) + (нет метки) + + + change from %1 (%2) + изменить Ñ %1 (%2) + + + (change) + (изменить) + + + + CoinControlPivWidget + + Dialog + Диалоговое окно + + + Transaction Details + Детали транзакции + + + PushButton + Ðажать кнопку + + + PIV: + PIV: + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + Quantity: + КоличеÑтво: + + + Fee: + КомиÑÑиÑ: + + + Amount + Сумма + + + Label + Метка + + + Address + ÐÐ´Ñ€ÐµÑ + + + Type + Тип + + + Date + Дата + + + Confirmations + ÐŸÐ¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ + + + CheckBox + Флажок + + + Bytes: + Байты: + + + Dust: + Пыль: + + + Change: + Изменить: + + + After Fee: + ПоÑле комиÑÑии: + + + CANCEL + ОТМЕÐÐ + + + OK + ХОРОШО + + + + ColdStakingWidget + + Form + Вид + + + Title + Ðазвание + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + PushButton + Ðажать кнопку + + + Owner Address (optional, if empty a new address will be created) + ÐÐ´Ñ€ÐµÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ð° (по желанию; еÑли пуÑто, то тогда будет Ñоздан новый адреÑ) + + + List of delegated balance by address + СпиÑок делегированного баланÑа по адреÑам + + + Total + Ð’ Ñумме + + + Unconfirmed balance will not be shown + Ðеподтвержденный Ð±Ð°Ð»Ð°Ð½Ñ Ð½Ðµ будет показан + + + No balance delegated + Ðет делегированного баланÑа + + + Cold Staking + Холодный Ñтекинг + + + Staker + Стекер + + + Delegation + Делегирование + + + You can delegate your PIVs and let a hot node (24/7 online node) +stake in your behalf, keeping the keys in a secure place offline. + Ð’Ñ‹ можете делегировать Ñвои PIV и позволить горÑчему узлу (онлайн-узел 24/7 ) +запуÑкать Ñтекинг от вашего имени, при Ñтом ÑƒÐ´ÐµÑ€Ð¶Ð¸Ð²Ð°Ñ ÐºÐ»ÑŽÑ‡Ð¸ оффлайн в безопаÑном меÑте. + + + Add owner address + Добавить Ð°Ð´Ñ€ÐµÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ð° + + + Delegate or Accept PIV delegation + Делегировать или принÑÑ‚ÑŒ делегирование PIV + + + Delegate + Делегировать + + + Clear All + ОчиÑтить вÑе + + + Add the staking address + Добавить Ñтекинг Ð°Ð´Ñ€ÐµÑ + + + Delegated balance history + ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð´ÐµÐ»ÐµÐ³Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð¾Ð³Ð¾ баланÑа + + + No delegations yet + Еще нет делегаций + + + Total Staking: %1 + Общий Ñтекинг: %1 + + + Error loading delegations: %1 + Ошибка при загрузке делегаций: %1 + + + No contacts available, you can go to the contacts screen and add some there! + Ðет доÑтупных контактов. Ð’Ñ‹ можете перейти на вкладку контактов и добавить неÑколько! + + + Cold staking is networkely disabled + Холодный Ñтекинг отключен в Ñети + + + Invalid entry + ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ + + + Invalid entry, minimum delegable amount is 10 PIV + ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ, Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´ÐµÐ»ÐµÐ³Ð¸Ñ€ÑƒÐµÐ¼Ð°Ñ Ñумма равна 10 PIV + + + Owner address invalid + Ðеверный Ð°Ð´Ñ€ÐµÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ð° + + + ALERT! + ПРЕДУПРЕЖДЕÐИЕ! + + + Delegating to an external owner address! + +The delegated coins will NOT be spendable by this wallet. +Spending these coins will need to be done from the wallet or +device containing the owner address. + +Do you wish to proceed? + Делегирование на внешний Ð°Ð´Ñ€ÐµÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ð°! + +Делегированные монеты ÐЕ будут потрачены Ñтим кошельком. +РаÑходовать Ñти монеты нужно будет Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ кошелька или +уÑтройÑтва, Ñодержащего Ð°Ð´Ñ€ÐµÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ð°. +Ð’Ñ‹ хотите продолжить? + + + Staking address corresponds to this wallet, change it to an external node + ÐÐ´Ñ€ÐµÑ Ñтекинга ÑоответÑтвует Ñтому кошельку, измените его на внешний узел + + + Cannot create transaction. + Ðевозможно Ñоздать транзакцию. + + + Coins delegated + Монеты делегированы + + + You don't have any PIV to select. + У Ð²Ð°Ñ Ð½ÐµÑ‚ PIV. + + + URI copied to clipboard + URI Ñкопирован в буфер обмена + + + Address copied to clipboard + ÐÐ´Ñ€ÐµÑ Ñкопирован в буфер обмена + + + Copy + Копировать + + + Edit + Редактировать + + + Stake + Стекинг + + + Blacklist + Черный ÑпиÑок + + + Edit Label + Изменить Ñрлык + + + Copy owner +address + Копировать Ð°Ð´Ñ€ÐµÑ +владельца + + + Address copied + ÐÐ´Ñ€ÐµÑ Ñкопирован + + + Edit Cold Address Label + Изменить Ñрлык холодного адреÑа + + + Whitelist failed, please check the logs + Добавление в белый ÑпиÑок не удалоÑÑŒ, пожалуйÑта, проверьте логи + + + staking! + Ñтекинг пошел! + + + Blacklist failed, please check the logs + Добавление в черный ÑпиÑок не удалоÑÑŒ, пожалуйÑта, проверьте логи + + + blacklisted from staking + занеÑен в черный ÑпиÑок из Ñтекинга + + + Owner address copied + ÐÐ´Ñ€ÐµÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ð° Ñкопирован + + + Edit Owner Address Label + Редактировать Ñрлык адреÑа владельца + + + Address label saved + ÐÐ´Ñ€ÐµÑ Ñрлыка Ñохранен + + + Error storing address label + Ошибка при Ñохранении адреÑной метки + + + + ContactDropdownRow + + Form + Вид + + + Bob Allen + Иван Петров + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + DashboardWidget + + Form + Вид + + + Transactions + Транзакции + + + You can see here the history of your account + ЗдеÑÑŒ вы можете поÑмотреть иÑторию вашего аккаунта + + + Warning + Предупреждение + + + No transactions + Ðет транзакций + + + PushButton + Ðажать кнопку + + + Staking Rewards + Ð’Ð¾Ð·Ð½Ð°Ð³Ñ€Ð°Ð¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° Ñтекинг + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + Staking statistics + СтатиÑтика Ñтекинга + + + PIV + PIV + + + zPIV + zPIV + + + Sort by + Сортировать по + + + Days + Дней + + + Months + МеÑÑцев + + + Years + Лет + + + Filter by + Сортировать по + + + LabelText + ТекÑÑ‚ Ñрлыка + + + You can view your account's history + Ð’Ñ‹ можете проÑмотреть иÑторию вашего аккаунта + + + Amount of PIV and zPIV staked. + Сумма добытых PIV и zPIV + + + All + вÑе + + + Received + ПринÑто + + + Sent + Отправлено + + + Mined + заминированный + + + Minted + Чеканка + + + MN reward + Вознаграждение от MN + + + To yourself + Самому Ñебе + + + Cold stakes + Холодные Ñтекинг Ñтавки + + + Hot stakes + ГорÑчие Ñтекинг Ñтавки + + + Delegated + Делегирован + + + Delegations + Ð”ÐµÐ»ÐµÐ³Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ + + + Please wait until the wallet is fully synced to see your correct balance + Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы увидеть правильный баланÑ, пожалуйÑта, дождитеÑÑŒ полной Ñинхронизации кошелька + + + No transactions yet + Пока что нет транзакций + + + How to get PIV or zPIV + Как получить PIV или zPIV + + + You can verify the staking activity in the status bar at the top right of the wallet. +It will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced. + Ð’Ñ‹ можете проверить активноÑÑ‚ÑŒ Ñтекинга в ÑтатуÑной Ñтроке в правом верхнем углу кошелька. +Он начнетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки, как только у кошелька будет доÑтаточно подтверждений по вÑем неизраÑходованным баланÑам, и как только кошелек будет Ñинхронизирован. + + + You have no staking rewards + У Ð²Ð°Ñ Ð½ÐµÑ‚ вознаграждений за Ñтекинг + + + No charts library + Ðет библиотеки графиков + + + Loading chart.. + Загрузка графика + + + Error loading chart, invalid show option + Ошибка при загрузке графика, Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ð° + + + Error loading chart, invalid data + Ошибка загрузки графика, неверные данные + + + Error loading chart: %1 + Ошибка при загрузке графика: %1 + + + + DefaultDialog + + Form + Вид + + + Transaction Details + Детали транзакции + + + Text Label + Ярлык текÑта + + + CANCEL + ОТМЕÐÐ + + + SAVE + СОХРÐÐИТЬ + + + + DenomGenerationDialog + + Form + Вид + + + Transaction Details + Детали транзакции + + + PushButton + Ðажать кнопку + + + This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again. + Это полноÑтью разблокирует ваш кошелек и любой, кто имеет к нему доÑтуп, может тратить монеты до тех пор, пока кошелек не будет закрыт или заблокирован Ñнова. + + + 5000 + 5000 + + + 100 + 100 + + + 10 + 10 + + + 1000 + 1000 + + + 50 + 50 + + + 500 + 500 + + + 5 + 5 + + + 1 + 1 + + + Select All + Выбрать вÑе + + + CANCEL + ОТМЕÐÐ + + + SAVE + СОХРÐÐИТЬ + + + + EditAddressDialog + + Edit Address + Изменить Ð°Ð´Ñ€ÐµÑ + + + &Label + &Метка + + + The label associated with this address list entry + Метка, ÑвÑÐ·Ð°Ð½Ð½Ð°Ñ Ñ Ñтой запиÑью в ÑпиÑке адреÑов + + + &Address + &ÐÐ´Ñ€ÐµÑ + + + The address associated with this address list entry. This can only be modified for sending addresses. + ÐÐ´Ñ€ÐµÑ Ð°ÑÑоциирован Ñ Ñтим Ñлемнтом ÑпиÑка адреÑов. Это может быть изменнено только Ð´Ð»Ñ Ð°Ð´Ñ€ÐµÑов отправлениÑ. + + + New receiving address + Ðовый Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ + + + New sending address + Ðовый Ð°Ð´Ñ€ÐµÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ + + + Edit receiving address + Изменить Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ + + + Edit sending address + Изменить Ð°Ð´Ñ€ÐµÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ + + + The entered address "%1" is not a valid PIVX address. + Введенный Ð°Ð´Ñ€ÐµÑ "%1" не ÑвлÑетÑÑ PIVX адреÑом. + + + The entered address "%1" is already in the address book. + Введенный Ð°Ð´Ñ€ÐµÑ "%1" уже находитÑÑ Ð² запиÑной книге. + + + Could not unlock wallet. + Ðе удалоÑÑŒ разблокировать кошелек. + + + New key generation failed. + Ðе удалоÑÑŒ Ñоздать новый ключ. + + + + ExpandableButton + + Form + Вид + + + + FreespaceChecker + + A new data directory will be created. + Будет Ñоздан новый каталог данных. + + + name + Ð¸Ð¼Ñ + + + Directory already exists. Add %1 if you intend to create a new directory here. + Данный каталог уже ÑущеÑтвует. Добавьте %1 еÑли вы вÑе еще хотите Ñоздать здеÑÑŒ новый каталог. + + + Path already exists, and is not a directory. + Путь уже ÑущеÑтвует и не ÑвлÑетÑÑ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð¼. + + + Cannot create data directory here. + ЗдеÑÑŒ невозможно Ñоздать каталог данных. + + + + GovernancePage + + Form + Вид + + + GOVERNANCE + УПРÐВЛЕÐИЕ + + + Update Proposals + Обновить Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + + + Next super block: + Следующий Ñупер блок: + + + 0 + 0 + + + Blocks to next super block: + Блоки до Ñледующего Ñуперблока: + + + Days to budget payout (estimate): + Дней до выплаты бюджета (приблизительно): + + + Allotted budget: + Выделенный бюджет: + + + Budget left: + ОÑтаток Бюджета: + + + Masternodes count: + КоличеÑтво маÑтернод: + + + + HelpMessageDialog + + version + верÑÐ¸Ñ + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-бит) + + + About PIVX Core + О PIVX Core + + + Command-line options + Параметры командной Ñтроки + + + Usage: + Применение: + + + command-line options + параметры командной Ñтроки + + + UI Options: + Опции интерфейÑа + + + Choose data directory on startup (default: %u) + Выберите директорию Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… при запуÑке (по умолчанию: %u) + + + Show splash screen on startup (default: %u) + Показывать загрузочную заÑтавку при запуÑке (по умолчанию: %u) + + + Set language, for example "de_DE" (default: system locale) + Задайте Ñзык, например "de_DE"(по умолчанию: Ñзык ÑиÑтемы) + + + Start minimized + ЗапуÑкать Ñвёрнутым + + + Set SSL root certificates for payment request (default: -system-) + Задать корневой Ñертификат SSL Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ð½Ñ‹Ñ… запроÑов (по умолчанию: -system-) + + + OK + ХОРОШО + + + + Intro + + Welcome + Добро пожаловать + + + Welcome to PIVX Core. + Добро пожаловать в PIVX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + ПоÑкольку Ñто первый запуÑк программы, вы можете выбрать, где будут хранитьÑÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ PIVX Core. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core загрузит и Ñохранит копию цепочки блоков PIVX. Каталог будет занимать около %1GB и Ñо временем размер будет увеличиватьÑÑ. Кроме того, в Ñтом каталоге будет хранитьÑÑ ÐºÐ¾ÑˆÐµÐ»ÐµÐº. + + + Use the default data directory + ИÑпользовать каталог данных по умолчанию + + + Use a custom data directory + ИÑпользуйте пользовательÑкий каталог данных + + + CANCEL + ОТМЕÐÐ + + + OK + ХОРОШО + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Ошибка: Ðевозможно Ñоздать указанный каталог данных "%1" + + + Error + Ошибка + + + %1 GB of free space available + ДоÑтупно %1 GB Ñвободного меÑта + + + (of %1 GB needed) + (требуетÑÑ %1 GB) + + + + LoadingDialog + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + Loading + Загрузка + + + . + . + + + + LockUnlock + + Form + Вид + + + Unlock Wallet + Разблокировать кошелек + + + Lock Wallet + Заблокировать кошелек + + + Staking Only + Только Ñтекинг + + + + MNRow + + Form + Вид + + + user_masternode + user_masternode + + + Address: 88.26.164.88:51474 + ÐдреÑ: 88.26.164.88:51474 + + + Jan. 19, 2019 + 19 ÑнварÑ, 2019 + + + + MasterNodeWizardDialog + + Dialog + Диалоговое окно + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + Intro + Введение + + + Name + Ð˜Ð¼Ñ + + + Address + ÐÐ´Ñ€ÐµÑ + + + Create New Master Node Controller + Создать новый контроллер маÑтерноды + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + <html><head/><body><p>Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы Ñоздать маÑтерноду PIVX, вам необходимо внеÑти в Ñеть 10.000 PIV (Ñти монеты оÑтаютÑÑ Ð²Ð°ÑˆÐ¸Ð¼Ð¸ и никогда не покинут ваÑ).</p><p></p><p> Ð’Ñ‹ можете отключить узел и разблокировать монеты в любое времÑ.</p></body></html> + + + Make sure you have this amount of coins. + УбедитеÑÑŒ, что у Ð²Ð°Ñ ÐµÑÑ‚ÑŒ такое количеÑтво монет. + + + Set Master Node’s Name + УÑтановить Ð¸Ð¼Ñ Ð¼Ð°Ñтерноды + + + <html><head/><body><p>A transaction of 10,000 PIV will be made</p><p>to a new empty address in your wallet.</p><p>The Address is labeled under the master node's name.</p></body></html> + <html><head/><body><p>Ðа новый пуÑтой Ð°Ð´Ñ€ÐµÑ Ð² вашем кошельке</p><p> будет Ñделана Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð² 10 000 PIV. </p><p>ÐÐ´Ñ€ÐµÑ Ð¾Ñ‚Ð¼ÐµÑ‡ÐµÐ½ под именем маÑтерноды.</p></body></html> + + + Set Master Node’s IP and port + УÑтановите IP-Ð°Ð´Ñ€ÐµÑ Ð¸ порт маÑтерноды + + + Address of the node that must always be online running the actual master node. + ÐÐ´Ñ€ÐµÑ ÑƒÐ·Ð»Ð°, который вÑегда должен быть подключен к Ñети, запуÑкающий фактичеÑкую маÑтерноду. + + + Enter IP address + ВвеÑти IP-Ð°Ð´Ñ€ÐµÑ + + + Enter Port + ВвеÑти порт + + + CANCEL + ОТМЕÐÐ + + + OK + ХОРОШО + + + e.g user_masternode + например, user_masternode + + + NEXT + ДÐЛЕЕ + + + BACK + ÐÐЗÐД + + + address label cannot be empty + Ñрлык адреÑа не может быть пуÑтым + + + IP or port cannot be empty + IP и порт не могут быть пуÑтыми + + + Invalid port number + Ðеверный номер порта + + + Prepare master node failed.. + Ðе удалоÑÑŒ подготовить маÑтерноду + + + Invalid masternode.conf file + Ðеверный файл masternode.conf + + + Error parsing masternode.conf file + Ошибка разбора файла masternode.conf + + + Invalid collaterall output index + Ðеверный Ð¸Ð½Ð´ÐµÐºÑ Ð²Ñ‹Ñ…Ð¾Ð´Ð° залога + + + Master node created! + МаÑтернода уÑпешно Ñоздана! + + + masternode.conf file doesn't exists + Файла masternode.cong не ÑущеÑтвует + + + The recipient address is not valid, please recheck. + ÐÐ´Ñ€ÐµÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ Ð½ÐµÐ´ÐµÐ¹Ñтвителен, повторите проверку. + + + The amount to pay must be larger than 0. + Сумма Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ð° должна быть больше, чем 0. + + + The amount exceeds your balance. + Сумма превышает ваш баланÑ. + + + The total exceeds your balance when the %1 transaction fee is included. + Сумма превышает ваш баланÑ, когда включена комиÑÑÐ¸Ñ Ð·Ð° транзакцию %1. + + + Duplicate address found, can only send to each address once per send operation. + Дублированный Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð¹Ð´ÐµÐ½, можно отправлÑÑ‚ÑŒ только на каждый Ð°Ð´Ñ€ÐµÑ Ð¾Ð´Ð¸Ð½ раз за операцию отправки. + + + Transaction creation failed! + Ðе удалоÑÑŒ Ñоздать транзакцию! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Сделка была отклонена! Это может произойти, еÑли некоторые из монет в вашем кошельке уже были потрачены, например, еÑли вы иÑпользовали копию wallet.dat и монеты были потрачены в копии, но не отмечены как потраченные здеÑÑŒ. + + + Error: The wallet was unlocked only to anonymize coins. + Ошибка: кошелек был разблокирован только Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ð¸ монет. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + Плата в %1 раз выше, чем %2 за КБ, ÑчитаетÑÑ Ð±ÐµÐ·ÑƒÐ¼Ð½Ð¾ выÑокой. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Ошибка: кошелек был разблокирован только Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ð¸ монет. Разблокировка отменена. + + + + MasterNodesWidget + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + No active Master Node yet + Пока что нет активной МаÑтерноды + + + PushButton + Ðажать кнопку + + + Masternodes + МаÑтерноды + + + Full nodes that incentivize node operators to perform the core consensus functions +and vote on the treasury system receiving a periodic reward. + Полные узлы, которые Ñтимулируют операторов узлов выполнÑÑ‚ÑŒ оÑновные конÑенÑуÑные функции +и голоÑовать за ÑиÑтему казны периодичеÑки отправлÑÑ Ð²Ð¾Ð·Ð½Ð°Ð³Ñ€Ð°Ð¶Ð´ÐµÐ½Ð¸Ñ. + + + Create Masternode Controller + Создать контроллер маÑтерноды + + + No active Masternode yet + Пока что нет активных маÑтернод + + + Start + ЗапуÑк + + + Delete + Удалить + + + Info + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + Start Masternode + ЗапуÑтить маÑтерноду + + + Are you sure you want to start masternode %1? + + Ð’Ñ‹ уверены, что хотите запуÑтить маÑтерноду %1? + + + + Cannot start masternode, the collateral transaction has not been accepted by the network. +Please wait few more minutes. + Ðевозможно запуÑтить маÑтерноду - Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð·Ð°Ð»Ð¾Ð³Ð° не была принÑта Ñетью. +ПожалуйÑта, подождите еще неÑколько минут. + + + Remote Masternode Data + Данные удаленной маÑтерноды + + + You are just about to export the required data to run a Masternode +on a remote server to your clipboard. + + +You will only have to paste the data in the pivx.conf file +of your remote server and start it, then start the Masternode using +this controller wallet (select the Masternode in the list and press "start"). + + Ð’Ñ‹ ÑобираетеÑÑŒ ÑкÑпортировать необходимые данные Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка маÑтерноды +на удаленном Ñервере в буфер обмена. + + +Вам необходимо только вÑтавить данные в файл pivx.conf +вашего удаленного Ñервера и запуÑтить его, а затем запуÑтить маÑтерноду, +иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñтот кошелек контроллера (выберите маÑтерноду из ÑпиÑка и нажмите «Старт»). + + + + Masternode exported!, check your clipboard + МаÑтернода ÑкÑпортирована! Проверьте Ñвой буфер обмена + + + Delete Masternode + Удалить маÑтерноду + + + You are just about to delete Masternode: +%1 + +Are you sure? + Ð’Ñ‹ ÑобираетеÑÑŒ удалить маÑтерноду: +%1 + +Ð’Ñ‹ уверены? + + + Invalid masternode.conf file + Ðеверный файл masternode.conf + + + Error parsing masternode.conf file + Ошибка разбора файла masternode.conf + + + masternode.conf file doesn't exists + Файла masternode.cong не ÑущеÑтвует + + + Not enough balance to create a masternode, 10,000 PIV required. + ÐедоÑтаточно баланÑа Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¼Ð°Ñтерноды. ТребуетÑÑ 10 000 PIV. + + + Error creating masternode + Ошибка при Ñоздании маÑтерноды + + + + MnInfoDialog + + Form + Вид + + + Master Node Information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾ маÑтерноде + + + Public Key: + Публичный ключ: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Address: + ÐдреÑ: + + + 127.0.0.2:43223 + 127.0.0.2:43223 + + + Collaterall tx id: + tx id залога: + + + Output index: + Ð˜Ð½Ð´ÐµÐºÑ Ð²Ñ‹Ñ…Ð¾Ð´Ð°: + + + 1 Inputs + 1 вход + + + Status: + СтатуÑ: + + + MISSING + ОТСУТСТВУЕТ + + + Export data to run the Master Node on a remote server + ЭкÑпорт данных Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка маÑтерноды на удаленном Ñервере + + + + MyAddressRow + + Form + Вид + + + Savings + Ð¡Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ñ + + + Jan. 19, 2019 + 19 ÑнварÑ, 2019 + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + NavMenuWidget + + Form + Вид + + + V 1.0.0 + V 1.0.0 + + + v%1 + v%1 + + + + OpenURIDialog + + Open URI + Открыть URI + + + Open payment request from URI or file + ЗапроÑить платеж через URI или файл + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + CANCEL + ОТМЕÐÐ + + + OK + ХОРОШО + + + Select payment request file + Выберите файл запроÑа платежа + + + Select payment request file to open + Выберите файл запроÑа платежа чтобы его открыть + + + File not found + Файл не найден + + + Parsed data too large + Проанализированные данные Ñлишком большие + + + Invalid URI, not starting with "pivx" prefix + Ðеверный URI, не начинаетÑÑ Ñ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑа "pivx" + + + + OptionButton + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + + OptionsDialog + + Options + ÐаÑтройки + + + &Main + &ОÑновной + + + Size of &database cache + Размер кÑша &базы данных + + + MB + MB + + + Number of script &verification threads + КоличеÑтво Ñценариев &проверочных потоков + + + (0 = auto, <0 = leave that many cores free) + (0 = авто, <0 = оÑтавить Ñвободных Ñдер) + + + W&allet + К&ошелек + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + Отключив проведение неподтвержденных изменений вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¾ транзакции <br/>не будут иÑпользованы пока Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð½Ðµ получит Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ одно подтверждение.<br/>Также Ñто влиÑет на раÑчет вашего баланÑа. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + ÐвтоматичеÑки открыть клиентÑкий порт PIVX через роутер. Ваш роутер должен поддерживать UPnP, а Ñам ÑÐµÑ€Ð²Ð¸Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть включен. + + + Accept connections from outside + Принимать внешние Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ + + + Allow incoming connections + Разрешить входÑщие Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ + + + &Connect through SOCKS5 proxy (default proxy): + &ПодключитьÑÑ Ñ‡ÐµÑ€ÐµÐ· SOCKS5 (прокÑи-Ñервер по умолчанию): + + + Expert + ЭкÑперт + + + Automatically start PIVX after logging in to the system. + ÐвтоматичеÑки запуÑкать PIVX поÑле входа в ÑиÑтему. + + + &Start PIVX on system login + &ЗапуÑкать PIVX при входе в ÑиÑтему + + + Whether to show coin control features or not. + Показывает или Ñкрывает оÑобенноÑти ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð½ÐµÑ‚Ð°Ð¼Ð¸. + + + Enable coin &control features + Включить функции &ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð½ÐµÑ‚ + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Показать ÑпиÑок вÑех ваших маÑтернод в первой вкладке<br/>и вÑех маÑтернод в Ñети во второй вкладке. + + + Show Masternodes Tab + Показать вкладку МаÑтернод + + + &Spend unconfirmed change + &Проведение неподтвержденных изменений + + + &Network + &Сеть + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + ЗдеÑÑŒ можно выÑтавить Ñзык интерфейÑа. Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²ÑтупÑÑ‚ в Ñилу поÑле перезапуÑка PIVX. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + ОтÑутÑтвует ваш Ñзык или заметили незавершенный перевод? Ð’Ñ‹ можете помочь нам Ñтать лучше: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Карта порта, иÑпользующего &UPnP + + + Enable automatic minting of PIV units to zPIV + Ðевозможно автоматичеÑки отчеканить единицы PIV Ð´Ð»Ñ zPIV + + + Enable zPIV Automint + Ðевозможно авточеканка zPIV + + + Enable automatic zPIV minting from specific addresses + Включить автоматичеÑкое чеканку zPIV Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ñ… адреÑов + + + Enable Automint Addresses + Включить адреÑа Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкой чеканкой + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Процент приходÑщих PIV, которые автоматичеÑки конвертируютÑÑ Ð² zPIV Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ Zerocoin протоколу (min: 10%) + + + Percentage of autominted zPIV + Процент авточеканненых zPIV + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Подождите Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑким преобразованием в Zerocoin, пока не будет доÑтаточно PIV Ð´Ð»Ñ Ñтой номинации. + + + Preferred Automint zPIV Denomination + Предпочитаемый номинал авточеканной монеты zPIV + + + Stake split threshold: + Порог Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¸: + + + Connect to the PIVX network through a SOCKS5 proxy. + ПодключитьÑÑ Ðº Ñети PIVX через SOCKS5 прокÑи. + + + Proxy &IP: + &IP адреÑ: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + IP-Ð°Ð´Ñ€ÐµÑ Ð¿Ñ€Ð¾ÐºÑи Ñервера (например: IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Порт + + + Port of the proxy (e.g. 9050) + Порт прокÑи Ñервера (например: 9050) + + + &Window + &Окно + + + Show only a tray icon after minimizing the window. + ПоÑле ÑÐ²Ð¾Ñ€Ð°Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¾ÐºÐ½Ð° показывать только значок в трее. + + + &Minimize to the tray instead of the taskbar + &Свернуть в трей, а не на панель задач + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Сворачивать окно при закрывании вмеÑто выхода из приложениÑ. При включении Ñтой опции покинуть приложение можно только поÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ Ð’Ñ‹Ð¹Ñ‚Ð¸ в меню программы. + + + M&inimize on close + C&ворачивать при закрытии + + + &Display + &Экран + + + User Interface &language: + &Язык ИнтерфейÑа + + + User Interface Theme: + Тема ИнтерфейÑа + + + Unit to show amounts in: + Единица Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñумм в: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Выберите Ñтандарную дробную величину, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±ÑƒÐ´ÐµÑ‚ показыватьÑÑ Ð² графичеÑком интерфейÑе и при отправке монет. + + + Decimal digits + ДеÑÑÑ‚Ð¸Ñ‡Ð½Ð°Ñ Ñ€Ð°Ð·Ñ€ÑдноÑÑ‚ÑŒ + + + Hide empty balances + Скрыть пуÑтые баланÑÑ‹ + + + Hide orphan stakes in transaction lists + Скрыть орфаны в ÑпиÑках транзакций + + + Hide orphan stakes + Скрыть орфаны + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + Сторониие ÑÑылки (такие как block exporer), которые отображаютÑÑ Ð² закладке "транзакции" как контекÑтное меню. %s в ÑÑыле будет замещено Ñ…Ñшем транзакции. СÑылки отделÑÑŽÑ‚ÑÑ Ð´Ñ€ÑƒÐ³ от друга вертикальной чертой |. + + + Third party transaction URLs + Сторонние ÑÑылки + + + Active command-line options that override above options: + Ðктивные опции коммандной Ñтроки, которые перепиÑывают опции выше: + + + Reset all client options to default. + Вернуть Ñтандартные наÑтройки клиента + + + &Reset Options + &СброÑить ÐаÑтройки + + + &OK + &OK + + + &Cancel + &Отмена + + + Any + Любой + + + default + по-умолчанию + + + none + ничего + + + Confirm options reset + Подтвердить ÑÐ±Ñ€Ð¾Ñ Ð½Ð°Ñтроек + + + Client restart required to activate changes. + Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ требуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑк клиента. + + + Client will be shutdown, do you want to proceed? + Клиент будет закрыт, вы хотите продолжить? + + + This change would require a client restart. + Это изменение потребует перезапуÑка клиента. + + + The supplied proxy address is invalid. + Указан недопуÑтимый Ð°Ð´Ñ€ÐµÑ Ð¿Ñ€Ð¾ÐºÑи-Ñервера. + + + The supplied proxy port is invalid. + Указан недопуÑтимый порт прокÑи-Ñервера. + + + The supplied proxy settings are invalid. + Указаны недопуÑтимые наÑтройки прокÑи-Ñервера. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + Кошелек + + + Node + Узел + + + &Show / Hide + &Показать / Скрыть + + + Show or hide the main Window + Показать или Ñкрыть оÑновное Окно + + + E&xit + Ð’&ыход + + + Quit application + Завершить работу + + + PIVX Core client + Клиент PIVX Core + + + Error + Ошибка + + + Warning + Предупреждение + + + Information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + System Message + СиÑтемное Ñообщение + + + Sent MultiSend transaction + ÐžÑ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ð°Ñ MultiSend Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ + + + Sent transaction + ÐžÑ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ + + + Incoming transaction + ВходÑÑ‰Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Дата: %1 +Сумма: %2 +Тип: %3 +ÐдреÑ: %4 + + + + A fatal error occurred. PIVX can no longer continue safely and will quit. + Произошла Ñ„Ð°Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. PIVX больше не может безопаÑно продолжать работу и завершит работу. + + + + PWidget + + Wallet locked, you need to unlock it to perform this action + Кошелек заблокирован. Ð”Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñтого дейÑÑ‚Ð²Ð¸Ñ Ð²Ð°Ð¼ нужно его разблокировать + + + + PaymentServer + + Payment request error + Ошибка при запроÑе на оплату + + + URI handling + Обработка ÑÑылок + + + Payment request fetch URL is invalid: %1 + ÐедопуÑтимый URL-Ð°Ð´Ñ€ÐµÑ Ð·Ð°Ð¿Ñ€Ð¾Ñа платежа: %1 + + + Payment request file handling + Обработка файла запроÑа на оплату + + + Invalid payment address %1 + Ðеверный Ð°Ð´Ñ€ÐµÑ Ð¾Ð¿Ð»Ð°Ñ‚Ñ‹ %1 + + + Cannot start pivx: click-to-pay handler + Ðе удалоÑÑŒ запуÑтить pivx: обработчик click-to-pay + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URI не интерпретируетÑÑ! Причиной Ñтому может быть неверный PIVX Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ неверные параметеры URI. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Файл запроÑа оплаты нечитаетÑÑ! Причиной может быть неверный файл запроÑа оплаты. + + + Payment request rejected + Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° оплату отклонен + + + Payment request network doesn't match client network. + Сеть запроÑа на оплату отличаетÑÑ Ð¾Ñ‚ Ñети клиента. + + + Payment request has expired. + Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° оплату проÑрочен. + + + Payment request is not initialized. + Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° оплату не инициализирован. + + + Unverified payment requests to custom payment scripts are unsupported. + Ðеверифицированные запроÑÑ‹ на оплату к пользовательÑким Ñкриптам оплаты не поддерживаетÑÑ. + + + Requested payment amount of %1 is too small (considered dust). + Ð—Ð°Ð¿Ñ€Ð°ÑˆÐ¸Ð²Ð°ÐµÐ¼Ð°Ñ Ñумма оплаты %1 Ñлишком мала (considered dust). + + + Refund from %1 + Сумма возврата от %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° оплату %1 Ñлишком велик (%2 байт, разрешено %3 байт). + + + Payment request DoS protection + Защита от DoS атак, иÑпользующих запроÑÑ‹ на оплату + + + Error communicating with %1: %2 + Ошибка коммуникации Ñ %1: %2 + + + Payment request cannot be parsed! + Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° оплату непонÑтен! + + + Bad response from server %1 + Ðеожиданный ответ Ñервера %1 + + + Network request error + Ошибка Ð¾Ð±Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ðº Ñети + + + Payment acknowledged + Оплата принÑта к обработке + + + + PeerTableModel + + Address/Hostname + ÐÐ´Ñ€ÐµÑ / Ð¸Ð¼Ñ Ñ…Ð¾Ñта + + + Version + ВерÑÐ¸Ñ + + + Ping Time + Ð’Ñ€ÐµÐ¼Ñ Ð¾Ñ‚ÐºÐ»Ð¸ÐºÐ° + + + + PrivacyWidget + + Form + Вид + + + Title + Ðазвание + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + PushButton + Ðажать кнопку + + + No active Master Node yet + Пока что нет активной МаÑтерноды + + + Privacy + КонфиденциальноÑÑ‚ÑŒ + + + Convert + Конвертировать + + + Mint + Чеканить + + + Minting zPIV anonymizes your PIV by removing any +transaction history, making transactions untraceable + Чеканка zPIV анонимизирует ваш PIV, удалÑÑ Ð»ÑŽÐ±ÑƒÑŽ иÑторию транзакций и Ð´ÐµÐ»Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸ недоÑтупными Ð´Ð»Ñ Ð¾Ñ‚ÑлеживаниÑ. + + + Mint new zPIV or convert back to PIV + Чеканить новые zPIV или конвертировать обратно в PIV + + + Last Zerocoin Movements + ПоÑледние Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Zerocoin + + + No transactions yet + Пока что нет транзакций + + + Mint zPIV + Чеканить zPIV + + + Enter amount of PIV to mint into zPIV + Введите количеÑтво PIV Ð´Ð»Ñ Ñ‡ÐµÐºÐ°Ð½ÐºÐ¸ в zPIV + + + Convert back to PIV + Конвертировать обратно в PIV + + + Enter amount of zPIV to convert back into PIV + Введите количеÑтво zPIV Ð´Ð»Ñ Ñ‡ÐµÐºÐ°Ð½ÐºÐ¸ в PIV + + + Zerocoin + Zerocoin + + + zPIV is currently undergoing maintenance + zPIV в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾Ñ…Ð¾Ð´Ð¸Ñ‚ техничеÑкое обÑлуживание + + + You need to unlock the wallet to be able to %1 zPIV + Вам нужно разблокировать кошелек, чтобы иметь возможноÑÑ‚ÑŒ %1 zPIV + + + convert + конвертировать + + + mint + чеканить + + + Invalid value + Ðеверное значение + + + zPIV minted successfully + zPIV отчеканилиÑÑŒ уÑпешно + + + zPIV converted back to PIV + ZPIV конвертированы обратно в PIV + + + You don't have any PIV to select. + У Ð²Ð°Ñ Ð½ÐµÑ‚ PIV. + + + Rescan Mints + Повторно Ñканировать чеканку + + + Your zerocoin mints are going to be scanned from the blockchain from scratch + Ваши чеканки zerocoin будут ÑканироватьÑÑ Ð¸Ð· блокчейна Ñ Ð½ÑƒÐ»Ñ + + + Reset Spent Zerocoins + СброÑить потраченные Zerocoins + + + Your zerocoin spends are going to be scanned from the blockchain from scratch + Ваши потраченные zerocoin будут ÑканироватьÑÑ Ð¸Ð· блокчейна Ñ Ð½ÑƒÐ»Ñ + + + Total %1 + Ð’Ñего %1 + + + + ProposalFrame + + Open proposal page in browser + Откройте Ñтраницу Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² браузере + + + remaining payment(s). + оÑтавшиеÑÑ Ð¿Ð»Ð°Ñ‚ÐµÐ¶(и). + + + Yes: + Да: + + + Abstain: + ВоздержатьÑÑ: + + + No: + Ðет: + + + A proposal URL can be used for phishing, scams and computer viruses. Open this link only if you trust the following URL. + + URL-Ð°Ð´Ñ€ÐµÑ Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть иÑпользован Ð´Ð»Ñ Ñ„Ð¸ÑˆÐ¸Ð½Ð³Ð°, мошенничеÑтва и компьютерных вируÑов. Открывайте Ñту ÑÑылку, только еÑли вы доверÑете данному URL. + + + + Open link + Открыть ÑÑылку + + + Copy link + Копировать ÑÑылку + + + Wallet Locked + Кошелек заблокирован + + + You must unlock your wallet to vote. + Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы голоÑовать вы должны разблокировать ваш кошелек. + + + Do you want to vote %1 on + Ð’Ñ‹ хотите проголоÑовать %1 за + + + using all your masternodes? + иÑпользовать вÑе ваши маÑтерноды? + + + Proposal Hash: + Hash предложениÑ: + + + Proposal URL: + URL предложениÑ: + + + Confirm Vote + Подтвердить Ñвой Ð³Ð¾Ð»Ð¾Ñ + + + Vote Results + Результаты голоÑÐ¾Ð²Ð°Ð½Ð¸Ñ + + + + QObject + + Amount + Сумма + + + Enter a PIVX address (e.g. %1) + Введите Ð°Ð´Ñ€ÐµÑ PIVX (например %1) + + + %1 d + %1 д + + + %1 h + %1 ч + + + %1 m + %1 м + + + %1 s + %1 Ñ + + + NETWORK + СЕТЬ + + + BLOOM + BLOOM + + + ZK_BLOOM + ZK_BLOOM + + + UNKNOWN + ÐЕИЗВЕСТÐО + + + None + Ðичего + + + N/A + ÐедоÑтупно + + + %1 ms + %1 Ð¼Ñ + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" does not exist. + Ошибка: указанного каталогп данных "%1" не ÑущеÑтвует. + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + Ошибка: невозможно проанализировать файл конфигурации: %1. ИÑпользуйте только ÑинтакÑÐ¸Ñ key=value. + + + Error: Invalid combination of -regtest and -testnet. + Ошибка: Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ -regtest и -testnet. + + + Error reading masternode configuration file: %1 + Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° конфигурации маÑтерноды: %1 + + + PIVX Core didn't yet exit safely... + PIVX Core еще не вышел безопаÑно... + + + + RPCConsole + + Tools window + Окно Ñ Ð¸Ð½Ñтрументами + + + &Information + &Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + General + ОÑновное + + + Name + Ð˜Ð¼Ñ + + + Client name + Ð˜Ð¼Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð° + + + N/A + ÐедоÑтупно + + + Number of connections + КоличеÑтво Ñоениднений + + + &Open + &Открыть + + + Startup time + Ð’Ñ€ÐµÐ¼Ñ Ñтарта + + + Network + Сеть + + + Last block time + Ð’Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ñледнего блока + + + Debug log file + Протокол отладки + + + Build date + Дата Ñборки + + + Current number of blocks + Текущее количеÑтво блоков + + + Client version + ВерÑÐ¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð° + + + Using BerkeleyDB version + ИÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ BrekleyDB + + + Block chain + Блокчейн + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Открыть протокол отладки PIVX. Это может занÑÑ‚ÑŒ некоторе времÑ, еÑли файл протокола очень большой. + + + Number of Masternodes + КоличеÑтво маÑтернод + + + Data Directory + Каталог данных + + + Last block hash + Hash поÑледнего блока + + + &Console + &ÐšÐ¾Ð¼Ð¼Ð°Ð½Ð´Ð°Ñ Ñтрока + + + Clear console + ОчиÑтить коммандную Ñтроку + + + &Network Traffic + &Ð¡ÐµÑ‚ÐµÐ²Ð°Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð° данных + + + &Clear + &ОчиÑтить + + + Totals + Результаты + + + Received + ПринÑто + + + Sent + Отправлено + + + &Peers + &Пиры + + + Banned peers + Заблокированные ÑверÑтники + + + Select a peer to view detailed information. + Выберите пир, чтобы показать детальную информацию. + + + Whitelisted + белый ÑпиÑок + + + Direction + Ðаправление + + + Protocol + Протокол + + + Version + ВерÑÐ¸Ñ + + + Services + СервиÑÑ‹ + + + Ban Score + Рекорд банов + + + Connection Time + ПродолжительноÑÑ‚ÑŒ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ + + + Last Send + ПоÑленее отправление + + + Last Receive + ПоÑлений приём + + + Bytes Sent + Байтов отправлено + + + Bytes Received + Байтов получено + + + Ping Time + Ð’Ñ€ÐµÐ¼Ñ Ð¾Ñ‚ÐºÐ»Ð¸ÐºÐ° + + + &Wallet Repair + &Ремонт кошелька + + + Delete local Blockchain Folders + Удаление локальных папок Blockchain + + + Wallet In Use: + ИÑпользуемый кошелек: + + + Starting Block + Ðачальный блок + + + Synced Headers + Синхронизированные заголовки + + + Synced Blocks + Синхронизированные блоки + + + The duration of a currently outstanding ping. + ПродолжительноÑÑ‚ÑŒ текущего выдающегоÑÑ Ð¿Ð¸Ð½Ð³Ð°. + + + Ping Wait + Ping Wait + + + Time Offset + Ñмещение по времени + + + Custom Backup Path: + ПользовательÑкий путь резервного копированиÑ: + + + Custom zPIV Backup Path: + ПользовательÑкий путь резервного ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ zPIV: + + + Custom Backups Threshold: + Порог пользовательÑких резервных копий: + + + Salvage wallet + Кошелёк Ð´Ð»Ñ Ñбора + + + Attempt to recover private keys from a corrupt wallet.dat. + Попытка воÑтановить Ñекрентые ключи битого wallet.dat. + + + Rescan blockchain files + ПереÑканировать файлы блокчейна + + + Rescan the block chain for missing wallet transactions. + ПереÑканировать блокчейн Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка пропущенных транзакций в кошельке. + + + Recover transactions 1 + ВоÑтановление транзакций 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + ПерезапиÑать транзакции из блокчейна (при Ñохранении мета-данных, таких как владелец кошелька). + + + Recover transactions 2 + ВоÑтановление транзакций 2 + + + Recover transactions from blockchain (drop meta-data). + ПерезапиÑать транзакции из блокчейна (Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸ÐµÐ¼ мета-данных, таких как владелец кошелька). + + + Upgrade wallet format + Обновить формат кошелька + + + Rebuild block chain index from current blk000??.dat files. + ПереÑтроить Ð¸Ð½Ð´ÐµÐºÑ Ð±Ð»Ð¾ÐºÑ‡ÐµÐ¹Ð½Ð° из текущих blk000??.dat файлов. + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + УдалÑет вÑе локальные папки Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ¾Ð¹, чтобы кошелек ÑинхронизировалÑÑ Ñ Ð½ÑƒÐ»Ñ. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + Кнопка ниже перезапуÑтит кошелёк Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ опциÑми кммандной Ñтроки чтобы отремотировать кошелёк, файлы блокчейна и пропавшие / уÑтаревшие транзакции. + + + Wallet repair options. + Опции ремонта кошелька. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Обновить кошелек до поÑледнего формата при запуÑке. +(Примечание: Ñто ÐЕ обновление Ñамого кошелька!) + + + Rebuild index + ПереÑоздать Ð¸Ð½Ð´ÐµÐºÑ + + + In: + Ввод: + + + Out: + Вывод: + + + Welcome to the PIVX RPC console. + Добро пожаловать в окружение PIVX RPC. + + + &Disconnect Node + &Отключить узел + + + Ban Node for + Запретный узел Ð´Ð»Ñ + + + 1 &hour + 1 &Ñ‡Ð°Ñ + + + 1 &day + 1 &день + + + 1 &week + 1 &Ð½ÐµÐ´ÐµÐ»Ñ + + + 1 &year + 1 &год + + + &Unban Node + &Запретный узел + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + УдалÑет вÑе локальные папки Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ¾Ð¹, чтобы кошелек ÑинхронизировалÑÑ Ñ Ð½ÑƒÐ»Ñ.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Это требует довольно много времени чтобы загрузить большое количеÑтво данных.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + ПоÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ ваши транзакции и ÑредÑтва будут Ñнова видны.<br /><br /> + + + Do you want to continue?.<br /> + Ð’Ñ‹ хотите продолжить?<br /> + + + Confirm resync Blockchain + Подтвердить повторную Ñинхронизацию Blockchain + + + Use up and down arrows to navigate history, and %1 to clear screen. + ИÑпользуйте Ñтрелки вверх и вниз Ð´Ð»Ñ Ð½Ð°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ð¸ в разделе иÑтории и %1 Ð´Ð»Ñ Ð¾Ñ‡Ð¸Ñтки Ñкрана. + + + Type <b>help</b> for an overview of available commands. + Введите <b>help</b> Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра доÑтупных команд. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + Ð’ÐИМÐÐИЕ: мошенники активизировалиÑÑŒ, Ð¿Ñ€ÐµÐ´Ð»Ð°Ð³Ð°Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñм вводить здеÑÑŒ команды и Ð²Ð¾Ñ€ÑƒÑ Ñодержимое кошелька. Ðе иÑпользуйте Ñту конÑоль без полного Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑледÑтвий команды. + + + %1 B + %1 Б + + + %1 KB + %1 КБ + + + %1 MB + %1 МБ + + + %1 GB + %1 ГБ + + + (node id: %1) + (node id: %1) + + + via %1 + через %1 + + + never + никогда + + + Inbound + входÑщий + + + Outbound + ИÑходÑщий + + + Yes + да + + + No + нет + + + Unknown + ÐеизвеÑтно + + + + ReceiveDialog + + Dialog + Диалоговое окно + + + Transaction Details + Детали транзакции + + + PushButton + Ðажать кнопку + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + ОТМЕÐÐ + + + OK + ХОРОШО + + + + ReceiveWidget + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + No address + Ðет адреÑов + + + Add Label + Добавить Ñрлык + + + Generate Address + Генерировать Ð°Ð´Ñ€ÐµÑ + + + Copy + Копировать + + + Receive + Получить + + + Scan the QR code or copy the address to receive PIV. + Сканировать QR-код или копировать Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ PIV. + + + No address + Ðет адреÑа + + + No available address, try unlocking the wallet + Ðет доÑтупного адреÑа, попробуйте разблокировать кошелек + + + Error generating address + Ошибка при генерации адреÑа + + + Change Label + Сменить Ñрлык + + + Edit Address Label + Изменить Ð°Ð´Ñ€ÐµÑ Ñрлыка + + + Address label saved + ÐÐ´Ñ€ÐµÑ Ñрлыка Ñохранен + + + Error storing address label + Ошибка при Ñохранении адреÑной метки + + + New address created + Создан новый Ð°Ð´Ñ€ÐµÑ + + + Address copied + ÐÐ´Ñ€ÐµÑ Ñкопирован + + + URI copied to clipboard + URI Ñкопирован в буфер обмена + + + Address copied to clipboard + ÐÐ´Ñ€ÐµÑ Ñкопирован в буфер обмена + + + + RecentRequestsTableModel + + Date + Дата + + + Label + Метка + + + Message + Сообщение + + + Address + ÐÐ´Ñ€ÐµÑ + + + Amount + Сумма + + + (no label) + (нет метки) + + + (no message) + (нет Ñообщений) + + + (no amount) + (нет Ñуммы) + + + + RequestDialog + + Dialog + Диалоговое окно + + + New Request Payment + Ðовый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñ‹ + + + Lorem ipsum dolor sit amet, consectur cling elit, sed do + Lorem ipsum dolor sit amet, consectur cling elit, sed do + + + Amount + Сумма + + + PIV + PIV + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + COPY ADDRESS + КОПИРОВÐТЬ ÐДРЕС + + + COPY URL + КОПИРОВÐТЬ URL + + + CANCEL + ОТМЕÐÐ + + + REQUEST + ЗÐПРОС + + + Instead of only sharing a PIVX address, you can create a Payment Request message which bundles up more information than is contained in just a PIVX address. + ВмеÑто того, чтобы проÑто делитьÑÑ Ð°Ð´Ñ€ÐµÑом PIVX, вы можете Ñоздать Ñообщение Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñом платежа, в котором ÑодержитÑÑ Ð±Ð¾Ð»ÑŒÑˆÐµ информации, чем ÑодержитÑÑ Ð² адреÑе PIVX. + + + Label + Метка + + + Enter a label to be saved within the address + Введите метку Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð² адреÑе + + + Description (optional) + ОпиÑание (необÑзательно) + + + Add description + Добавить опиÑание + + + Error + Ошибка + + + GENERATE + ГЕÐЕРИРОВÐТЬ + + + Creates an address to receive coin delegations and be able to stake them. + Создает Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¿Ñ€Ð¸ÐµÐ¼Ð° делегированных монет и возможноÑти их Ñтекить. + + + New Cold Staking Address + Ðовый Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ñ…Ð¾Ð»Ð¾Ð´Ð½Ð¾Ð³Ð¾ Ñтекинга + + + + SendChangeAddressDialog + + Dialog + Диалоговое окно + + + Transaction Details + Детали транзакции + + + PushButton + Ðажать кнопку + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + ОТМЕÐÐ + + + OK + ХОРОШО + + + Custom Change Address + Смена адреÑа + + + The remainder of the value resultant from the inputs minus the outputs value goes to the "change" PIVX address + ОÑÑ‚Ð°Ñ‚Ð¾Ñ‡Ð½Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ значениÑ, полученного от Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð²Ñ…Ð¾Ð´Ð¾Ð² Ð¼Ð¸Ð½ÑƒÑ Ð²Ñ‹Ñ…Ð¾Ð´Ð¾Ð², идет на «изменение» адреÑа PIVX + + + + SendCustomFeeDialog + + Form + Вид + + + Transaction Details + Детали транзакции + + + Customize the transaction fee at your to your liking, depending on the fee value your transaction will be included or not in the blockchain. + ÐаÑтроить комиÑÑию за транзакцию на Ñвой выбор, в завиÑимоÑти от Ñуммы комиÑÑии, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±ÑƒÐ´ÐµÑ‚/не будет включена в вашу транзакцию в блокчейне. + + + Recomended + РекоммендуетÑÑ + + + 0.00 KB + 0.00 KB + + + Custom + ÐаÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ + + + Per kilobyte + За килобайт + + + CANCEL + ОТМЕÐÐ + + + OK + ХОРОШО + + + Customize Fee + ÐаÑтройка комиÑÑии + + + Customize the transaction fee, depending on the fee value your transaction will be included or not in the blockchain. + ÐаÑтройте комиÑÑию за транзакцию. Ð’ завиÑимоÑти от величины комиÑÑии, ваша Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ включена или не включена в блокчейн. + + + Normal + ÐÐ¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ + + + Slow + ÐœÐµÐ´Ð»ÐµÐ½Ð½Ð°Ñ + + + Fast + БыÑÑ‚Ñ€Ð°Ñ + + + SAVE + СОХРÐÐИТЬ + + + + SendMultiRow + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + Add address + Добавить Ð°Ð´Ñ€ÐµÑ + + + Add description + Добавить опиÑание + + + + SendWidget + + Send + Отправить + + + You can transfer public coins (PIV) or private coins (zPIV) + Ð’Ñ‹ можете отправить публичные монеты (PIV) или конфиденциальные монеты (zPIV) + + + Select coin type to spend + Выберите тип монеты Ð´Ð»Ñ Ñ‚Ñ€Ð°Ñ‚ + + + Enter a PIVX address or contact label + Введите Ð°Ð´Ñ€ÐµÑ PIVX или метку контакта + + + Amount + Сумма + + + Customize fee + ÐаÑтройка комиÑÑии + + + Clear all + ОчиÑтить вÑе + + + Add recipient + Добавить Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ + + + Reset to default + СброÑить наÑтройки по умолчанию + + + Total to send + ÐžÐ±Ñ‰Ð°Ñ Ñумма к отправке + + + Send PIV + Отправить PIV + + + Send zPIV + Отправить zPIV + + + Total remaining from the selected UTXO + Ð’Ñего оÑталоÑÑŒ от выбранного UTXO + + + Total remaining + Ð’Ñего оÑталоÑÑŒ + + + Customize Fee + ÐаÑтройка комиÑÑии + + + Maximum amount of outputs reached + ДоÑтигнуто макÑимальное количеÑтво выходов + + + Invalid entry, previous entries must be valid before add a new one + ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ. Прежде чем добавить новую запиÑÑŒ, предыдущие запиÑи должны быть дейÑтвительными + + + Invalid entry + ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ + + + No set recipients + Ðет уÑтановленных получателей + + + Cannot send, wallet locked + Ðевозможно отправить, так как кошелек заблокирован. + + + Cannot create transaction. + Ðевозможно Ñоздать транзакцию. + + + WARNING: +Transaction spends a cold-stake delegation, voiding it. +These coins will no longer be cold-staked. + ПРЕДУПРЕЖДЕÐИЕ: +Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ñ‚Ñ€Ð°Ñ‚Ð¸Ñ‚ делегацию холодного Ñтекинга, Ð°Ð½Ð½ÑƒÐ»Ð¸Ñ€ÑƒÑ ÐµÐµ. +Холодного Ñтекинга Ñтих монет больше не будет. + + + Transaction sent + Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð° + + + Spend Zerocoin + Потратить Zerocoin + + + zPIV is currently undergoing maintenance. + Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ zPIV проходит техничеÑкое обÑлуживание. + + + Coin control mint not found + Контроль отчеканенных монет не найден + + + Sending %1 to address %2 + + Отправка %1 на Ð°Ð´Ñ€ÐµÑ %2 + + + + Sending %1 to addresses: +%2 + Отправка %1 на адреÑа: +%2 + + + zPIV transaction sent! + Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ zPIV отправлена! + + + Version 1 zPIV require a security level of 100 to successfully spend. + Ð”Ð»Ñ Ð²ÐµÑ€Ñии 1 zPIV требуетÑÑ ÑƒÑ€Ð¾Ð²ÐµÐ½ÑŒ безопаÑноÑти 100, который можно уÑпешно тратить. + + + Too much inputs ( + Слишком много входов ( + + + ) needed. +Maximum allowed: + ) необходимо. +МакÑимально допуÑтимое: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Либо чеканÑÑ‚ÑÑ Ð¼Ð¾Ð½ÐµÑ‚Ñ‹ Ñ Ð²Ñ‹Ñоким номиналом (поÑтому требуетÑÑ Ð¼ÐµÐ½ÑŒÑˆÐµ реÑурÑов), либо уменьшите Ñумму, которую нужно потратить. + + + Address label update failed for address: %1 + Ðе удалоÑÑŒ обновить метку адреÑа Ð´Ð»Ñ Ð°Ð´Ñ€ÐµÑа: %1 + + + Invalid change address + Ðеверное изменение адреÑа + + + Invalid URI + Ðеверный URI + + + Invalid address in URI + Ðеверный Ð°Ð´Ñ€ÐµÑ Ð² URI + + + Custom Fee %1 + Сбор по выбору %1 + + + You don't have any PIV to select. + У Ð²Ð°Ñ Ð½ÐµÑ‚ PIV. + + + You don't have any zPIV in your balance to select. + Ðа вашем баланÑе нет zPIV Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°. + + + No contacts available, you can go to the contacts screen and add some there! + Ðет доÑтупных контактов. Ð’Ñ‹ можете перейти на вкладку контактов и добавить неÑколько! + + + Save contact + Сохранить контакт + + + Address field is empty + Поле адреÑа пуÑтое + + + Invalid address + Ðеверный Ð°Ð´Ñ€ÐµÑ + + + Cannot store your own address as contact + Ðевозможно хранить ваш личный Ð°Ð´Ñ€ÐµÑ Ð² качеÑтве контакта + + + Update Contact + Обновить контакт + + + Create New Contact + Создать новый контакт + + + New Contact Stored + Ðовый контакт Ñохранен + + + Error Storing Contact + Ошибка при Ñохранении контакта + + + + SettingsBackupWallet + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + PushButton + Ðажать кнопку + + + Backup Wallet + Сделать резервную копию кошелька + + + Change Wallet Passphrase + Изменить фразовый пароль кошелька + + + Keep your wallet safe doing regular backups, store your backup file externally. +This option creates a wallet.dat file that can be used to recover your whole balance (transactions and addresses) from another device. + Храните Ñвой кошелек в безопаÑноÑти, делайте регулÑрные резервные копии и храните файл резервной копии вне Ñети. +Этот параметр Ñоздает файл wallet.dat, который можно иÑпользовать Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñего вашего баланÑа (транзакций и адреÑов) Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ уÑтройÑтва. + + + This will decrypt the whole wallet data and encrypt it back with the new passphrase. +Remember to write it down and store it safely, otherwise you might lose access to your funds. + Это раÑшифрует вÑе данные кошелька и зашифрует их Ñ Ð½Ð¾Ð²Ð¾Ð¹ парольной фразой. Ðе забудьте запиÑать и хранить ее в надежном меÑте, иначе вы можете потерÑÑ‚ÑŒ доÑтуп к Ñвоим ÑредÑтвам. + + + Where + Где + + + Set a folder location + УÑтановить меÑтоположение папки + + + Backup + Сделать резервную копию + + + Change Passphrase + Изменить фразовый пароль + + + Backup Wallet + Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ ÐºÐ¾ÑˆÐµÐ»ÑŒÐºÐ° + + + Wallet Data (*.dat) + Данные кошелька (* .dat) + + + Backup created + Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñделана + + + Backup creation failed + Ðе удалоÑÑŒ Ñоздать резервную копию + + + Please select a folder to export the backup first. + Ð”Ð»Ñ ÑкÑпорта резервной копии Ñначала выберите папку. + + + + SettingsBitToolWidget + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + PushButton + Ðажать кнопку + + + Decrypt Address Result + РаÑшифровать результат адреÑа + + + Import Address + Импортировать ÐÐ´Ñ€ÐµÑ + + + Clear + ОчиÑтить + + + BIP38 Tool + ИнÑтрумент BIP38 + + + Encrypt + Зашифровать + + + Decrypt + РаÑшифровать + + + Encrypted key + Зашифрованный ключ + + + Enter a encrypted key + ВвеÑти зашифрованный ключ + + + Passphrase + Фразовый пароль + + + Enter a passphrase + ВвеÑти фразовый пароль + + + Decrypted address result + РаÑшифрованный результат адреÑа + + + Decrypted Address + РаÑшифрованный Ð°Ð´Ñ€ÐµÑ + + + DECRYPT KEY + РаÑшифровать ключ + + + Enter a PIVX address + ВвеÑти Ð°Ð´Ñ€ÐµÑ PIVX + + + Add address + Добавить Ð°Ð´Ñ€ÐµÑ + + + Write a message + ÐапиÑать Ñообщение + + + Encrypted Key + Зашифрованный ключ + + + ENCRYPT + РÐСШИФРОВÐТЬ + + + CLEAR ALL + ОЧИСТИТЬ ВСЕ + + + CLEAR + ОЧИСТИТЬ + + + The entered passphrase is invalid. + Ðеправильно введена ÐºÐ¾Ð´Ð¾Ð²Ð°Ñ Ñ„Ñ€Ð°Ð·Ð°. + + + Allowed: 0-9,a-z,A-Z, + ДопуÑкаетÑÑ: 0-9,a-z,A-Z, + + + The entered address is invalid. + Ðеправильно введен адреÑ. + + + Please check the address and try again. + ПожалуйÑта, проверьте Ð°Ð´Ñ€ÐµÑ Ð¸ попробуйте Ñнова. + + + The entered address does not refer to a key. + Введенный Ð°Ð´Ñ€ÐµÑ Ð½Ðµ ÑвÑзан Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼. + + + Wallet unlock was cancelled. + СнÑтие блокировки кошелька было отменено. + + + Private key for the entered address is not available. + ПерÑональный ключ Ð´Ð»Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ð¾Ð³Ð¾ адреÑа недоÑтупен. + + + Address encrypted. + ÐÐ´Ñ€ÐµÑ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½. + + + No addresses available, you can go to the receive screen and add some there! + Ðет доÑтупных адреÑов. Ð’Ñ‹ можете перейти на вкладку Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¸ добавить! + + + Failed to decrypt. + Ðе удалоÑÑŒ дешифровать. + + + Please check the key and passphrase and try again. + ПожалуйÑта, проверьте ключ и кодовую фразу и попробуйте Ñнова. + + + Data Not Valid. + Данные недейÑтвительны. + + + Please try again. + ПожалуйÑта, попробуйте Ñнова. + + + Please wait while key is imported + ПожалуйÑта, дождитеÑÑŒ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð° + + + Cannot import address, key already held by the wallet + ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ адреÑ. Ключ уже удерживаетÑÑ ÐºÐ¾ÑˆÐµÐ»ÑŒÐºÐ¾Ð¼ + + + Error adding key to the wallet + Ошибка при добавлении ключа к кошельку + + + Successfully added pivate key to the wallet + Добавление приватного ключа к кошельку прошло уÑпешно + + + + SettingsConsoleWidget + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + Console + КонÑоль + + + Console input + КонÑольный вход + + + Command Line Options + Параметры командной Ñтроки + + + Open Debug File + Открыть файл отладки + + + Cannot open debug file. +Verify that you have installed a predetermined text editor. + Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ файл отладки. +УбедитеÑÑŒ, что вы уÑтановили заранее уÑтановленный текÑтовый редактор. + + + Welcome to the PIVX RPC console. + Добро пожаловать в окружение PIVX RPC. + + + Use up and down arrows to navigate history, and %1 to clear screen. + ИÑпользуйте Ñтрелки вверх и вниз Ð´Ð»Ñ Ð½Ð°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ð¸ в разделе иÑтории и %1 Ð´Ð»Ñ Ð¾Ñ‡Ð¸Ñтки Ñкрана. + + + Type <b>help</b> for an overview of available commands. + Введите <b>help</b> Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра доÑтупных команд. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + Ð’ÐИМÐÐИЕ: активизировалиÑÑŒ мошенники, которые предлагают пользователÑм вводить здеÑÑŒ команды и Ð²Ð¾Ñ€ÑƒÑ Ñодержимое их кошелька. Ðе иÑпользуйте Ñту конÑоль без полного Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑледÑтвий команды. + + + + SettingsDisplayOptionsWidget + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + PushButton + Ðажать кнопку + + + Reset to default + СброÑить наÑтройки по умолчанию + + + Discard changes + Отменить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + + + Display + ДиÑплей + + + Customize the display view options + ÐаÑтройте параметры проÑмотра + + + Language + Язык + + + Unit to show amount + Единица Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð° Ñуммы + + + Decimal digits + ДеÑÑÑ‚Ð¸Ñ‡Ð½Ð°Ñ Ñ€Ð°Ð·Ñ€ÑдноÑÑ‚ÑŒ + + + Third party transactions URLs + URL транзакций третьих лиц + + + Hide empty balances + Скрыть пуÑтые баланÑÑ‹ + + + SAVE + СОХРÐÐИТЬ + + + default + по-умолчанию + + + Options reset succeed + Ð¡Ð±Ñ€Ð¾Ñ Ð½Ð°Ñтроек выполнен уÑпешно + + + + SettingsFaqWidget + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + PushButton + Ðажать кнопку + + + 1) What is PIVX? + 1) Что такое PIVX? + + + 2) Why are my PIV unspendable? + 2) Почему мои PIV невозможно потратить? + + + 3) PIVX privacy? What is Zerocoin (zPIV)? + 3) КонфиденциальноÑÑ‚ÑŒ PIVX? Что такое Zerocoin (zPIV)? + + + 4) Why are my zPIV unspendable? + 4) Почему мои zPIV невозможно потратить? + + + 5) Why did my wallet convert the balance + into zPIV automatically? + 5) Почему мой кошелек автоматичеÑки конвертировал Ð±Ð°Ð»Ð°Ð½Ñ +в zPIV? + + + 6) How do I receive PIV/zPIV? + 6) Как Ñ Ð¼Ð¾Ð³Ñƒ получить PIV/zPIV? + + + 7) How do I stake PIV/zPIV? + 7) Как запуÑтить Ñтекинг PIV/zPIV? + + + 8) Where I should go if I need support? + 8) Куда Ñ Ð¼Ð¾Ð³Ñƒ обратитьÑÑ Ð·Ð° помощью? + + + 9) What is a Master Node? + 9) Что такое маÑтернода? + + + 10) What is a Master Node Controller? + 10) Что такое контролер маÑтерноды? + + + 1 + 1 + + + What is PIVX? + Что такое PIVX? + + + + <html><head/><body><p align="justify"> + PIVX is a form of digital online money using blockchain technology + that can be easily transferred globally, instantly, and with near + zero fees. PIVX incorporates market leading security & + privacy and is also the first PoS (Proof of Stake) Cryptocurrency + to implement ZeroCoin(zPIV) and Zerocoin staking. + </p><p align="justify"> + PIVX utilizes a Proof of Stake (PoS) consensus system algorithm, + allowing all owners of PIVX to participate in earning block rewards + while securing the network with full node wallets, as well as to + run Masternodes to create and vote on proposals. + </p></body></html> + + +<html><head/><body><p align="justify"> +PIVX - Ñто форма цифровых онлайн-денег, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑŽÑ‰Ð°Ñ Ñ‚ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ð¸ÑŽ блокчейн, +ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть легко переведена по вÑему миру, мгновенно и Ñ Ð¿Ñ€Ð°ÐºÑ‚Ð¸Ñ‡ÐµÑки +нулевой комиÑÑией. PIVX включает в ÑÐµÐ±Ñ Ð»Ð¸Ð´Ð¸Ñ€ÑƒÑŽÑ‰ÑƒÑŽ на рынке защиту и +«конфиденциальноÑть», а также ÑвлÑетÑÑ Ð¿ÐµÑ€Ð²Ð¾Ð¹ PoS криптовалютой (Proof of Stake), +в которой реализована ÑиÑтема Ñтекинга ZeroCoin (zPIV) и Zerocoin. +</p><p align="justify"> +PIVX иÑпользует конÑенÑÑƒÑ PoS (Proof of Stake), позволÑÑ Ð²Ñем владельцам PIVX учаÑтвовать в заработке вознаграждений +при Ñтом обеÑÐ¿ÐµÑ‡Ð¸Ð²Ð°Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑ‚ÑŒ Ñети Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ кошельков Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼Ð¸ узлами, а также позволÑет +запуÑкать маÑтерноды Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹ и голоÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ ним. + </p></body></html> + + + 2 + 2 + + + Why are my PIV unspendable? + Почему мои PIV невозможно потратить? + + + + <html><head/><body><p align="justify"> + Newly received PIVX requires 6 confirmations on the network + to become eligible for spending which can take ~6 minutes. + </p><p align="justify"> + Your PIVX wallet also needs to be completely synchronized + to see and spend balances on the network. + </p></body></html> + + +<html><head/><body><p align="justify"> +Ðедавно полученным PIVX требуетÑÑ 6 подтверждений в Ñети, +чтобы получить право быть раÑходуемыми. Это может занÑÑ‚ÑŒ примерно 6 минут. +</p><p align="justify"> +Ваш кошелек PIVX также должен быть полноÑтью Ñинхронизирован, +чтобы видеть Ð±Ð°Ð»Ð°Ð½Ñ Ð¸ раÑходовать его в Ñети. + </p></body></html> + + + 3 + 3 + + + PIVX privacy? What is Zerocoin (zPIV)? + КонфиденциальноÑÑ‚ÑŒ PIVX? Что такое Zerocoin (zPIV)? + + + + <html><head/><body><p align="justify"> + zPIV is an optional privacy-centric method of coin mixing on the + PIVX blockchain. Basically all your transactions cannot be tracked + on to any block explorer. You can read more about the technicals in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "PIVX Zerocoin (zPIV) Technical Paper"</a>. + </p></body></html> + + +<html><head/><body><p align="justify"> +zPIV - Ñто необÑÐ·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð´ÐµÐ½Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾ÑÑ‚ÑŒ, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð° при микшировании монет +в блокчейне PIVX. По Ñути,ни одна Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð½Ðµ может быть отÑлежена +ни в одном из обозревателей блоков. Ð’Ñ‹ можете прочитать больше о техничеÑких характериÑтиках в +<a style='color: #b088ff' href='https://PIVX.org/zpiv/'> +"ТехничеÑком документе PIVX Zerocoin (zPIV)"</a>. + </p></body></html> + + + 4 + 4 + + + Why are my zPIV unspendable? + Почему мои zPIV невозможно потратить? + + + + <html><head/><body><p align="justify"> + After minting, zPIV will require 20 confirmations as well as 1 + additional mint of the same denomination on the network to + become eligible for spending. + </p></body></html> + + +<html><head/><body><p align="justify"> +ПоÑле чеканки zPIV потребуетÑÑ 20 подтверждений, а также 1 +Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ñ‡ÐµÐºÐ°Ð½ÐºÐ° того же номинала в Ñети, +чтобы получить право быть раÑходуемым. +</p></body></html> + + + 5 + 5 + + + Why did my wallet convert the balance into zPIV automatically? + Почему мой кошелек автоматичеÑки конвертировал Ð±Ð°Ð»Ð°Ð½Ñ Ð² zPIV? + + + + <html><head/><body><p align="justify"> + By default the PIVX wallet will convert 10% of your entire PIV + balance to zPIV to assist the network. If you do not wish to + stake zPIV or take advantage of the privacy benefit it brings, + you can disable the automatic minting in your PIVX wallet by + going to Settings->Options and deselecting “Enable zPIV Automintâ€. + If you are not making use of the PIVX-QT or GUI you can simply open + your pivx.conf file and add <i>enablezeromint=0</i> Without the quotation + marks and restart your wallet to disable automint.</p> + </p><p align="justify"> + You can read more about zPIV in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> "PIVX Zerocoin (zPIV) Technical Paper"</a>. + If you would like to keep and stake your zPIV, please read the "How do I stake" + section of the FAQ below. + </p></body></html> + + +<html><head/><body><p align="justify"> +По умолчанию кошелек PIVX преобразует 10% вÑего вашего баланÑа PIV +в zPIV Ð´Ð»Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰Ð¸ Ñети. ЕÑли вы не хотите +запуÑкать Ñтекинг zPIV или пользоватьÑÑ Ð¿Ñ€ÐµÐ¸Ð¼ÑƒÑ‰ÐµÑтвами конфиденциальноÑти, которые она приноÑит, +вы можете отключить автоматичеÑкую чеканку в Ñвоем PIVX-кошельке, +Ð¿ÐµÑ€ÐµÐ¹Ð´Ñ Ð² «ÐаÑтройки-> Параметры» и отменив выбор «Включить авточекунку zPIV». +ЕÑли вы не иÑпользуете PIVX-QT или GUI, вы можете проÑто открыть +Ñвой файл pivx.conf и добавить <i>enablezeromint=0</i> без кавычек и +перезапуÑтите Ñвой кошелек Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкой чеканки. </p> </p><p align="justify"> Ð’Ñ‹ можете прочитать больше о zPIV в +<a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "ТехничеÑкий документ PIVX Zerocoin (zPIV)"</a>. +ЕÑли вы хотите продолжать Ñтекинг zPIV, ознакомьтеÑÑŒ Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð¼" Как оÑущеÑтвить Ñтекинг" +в разделе чаÑто задаваемых вопроÑов ниже. + </p></body></html> + + + 6 + 6 + + + How do I receive PIV/zPIV? + Как мне получить PIV/zPIV? + + + + <html><head/><body><p align="justify"> + zPIV can be spent and sent to any PIVX address. The receiver will + receive standard PIVX but the origin of the PIVX is anonymized by the zPIV Protocol. + </p><p align="justify"> + If you want more zPIV you will need to mint your balance in the “Privacy†tab. + </p></body></html> + + +<html><head/><body><p align="justify"> +zPIV можно потратить и отправить на любой Ð°Ð´Ñ€ÐµÑ PIVX. Получатель получит +Ñтандартный PIVX, но оригинальное проиÑхождение PIVX анонимизируетÑÑ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð¾Ð¼ zPIV. +</p><p align="justify"> +ЕÑли вы хотите больше zPIV, вам нужно будет чеканить Ñвой Ð±Ð°Ð»Ð°Ð½Ñ Ð½Ð° вкладке «КонфиденциальноÑть». +</p></body></html> + + + 7 + 7 + + + How do I stake PIV/zPIV? + Как мне запуÑтить Ñтекинг PIV/zPIV? + + + + <html><head/><body><p align="justify"> + To Stake PIVX: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + You must have a balance of PIVX with a minimum of 101 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + <li> + Once all those steps are followed staking should be enabled. + <li> + You can see the status of staking in the wallet by mousing over the package icon in the row on the top left of the wallet interface. There package will be lit up and will state "Staking Enabled" to indicate it is staking. Using the command line interface (pivx-cli); the command <i>getstakingstatus</i> will confirm that staking is active. + </li></ol> + </p><p align="justify"> + To Stake zPIV: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + Your newly minted or existing zPIV balance must have a minimum of 200 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + Staking should now be enabled. + </li></ol> + </p></body></html> + + +<html><head/><body><p align="justify">Чтобы запуÑтить Ñтекинг PIVX: +</p><p align="justify"> + <ol><li>убедитеÑÑŒ, что ваш кошелек полноÑтью Ñинхронизирован и вы иÑпользуете поÑледнюю верÑию. +<li> +Ð’Ñ‹ должны иметь Ð±Ð°Ð»Ð°Ð½Ñ PIVX Ñ Ð¼Ð¸Ð½Ð¸Ð¼ÑƒÐ¼Ð¾Ð¼ в 101 подтверждение +<li> +Ваш кошелек должен оÑтаватьÑÑ Ð² Ñети и быть разблокированным Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ð¸ и Ñтекинга. +<li> +ПоÑле того, как вÑе Ñти шаги будут выполнены, Ñледует включить Ñтекинг. +<li> +Ð’Ñ‹ можете увидеть ÑÑ‚Ð°Ñ‚ÑƒÑ Ñтекинга в кошельке, Ð½Ð°Ð²ÐµÐ´Ñ ÐºÑƒÑ€Ñор на ÑоответÑтвующий значок в Ñтроке в левом верхнем углу интерфейÑа кошелька. Там будет подÑвечен значек, в котором будет указано «Стекинг включен», а Ñто значит, что делает Ñтекинг запущен. ИÑпользование интерфейÑа командной Ñтроки (pivx-cli); команда getstakingstatus подтвердит, что Ñтекинг активен. Чтобы запуÑтить Ñтекинг zPIV: убедитеÑÑŒ, что ваш кошелек полноÑтью Ñинхронизирован и вы иÑпользуете поÑледнюю верÑию. Ваш недавно отчеканенный или ÑущеÑтвующий Ð±Ð°Ð»Ð°Ð½Ñ zPIV должен иметь, как минимум, 200 подтверждений. Ваш кошелек должен оÑтаватьÑÑ Ð² Ñети и быть разблокированным Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ð¸ и Ñтекинга. Стекинг будет включен. + + + 8 + 8 + + + Where I should go if I need support? + Куда мне обращатьÑÑ Ð·Ð° помощью? + + + + <html><head/><body><p align="justify"> + We have support channels in most of our official chat groups, for example + <a style='color: #b088ff' href='https://Discord.PIVX.com'> + #support in our Discord</a>. + If you prefer to submit a ticket, One can be + <a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> + our Freshdesk support site</a>. + </p></body></html> + + +<html><head/><body><p align="justify"> +У Ð½Ð°Ñ ÐµÑÑ‚ÑŒ каналы поддержки в большинÑтве наших официальных групп, например +<a style='color: #b088ff' href='https://Discord.PIVX.com'> +#support в нашем Discord</a>. +ЕÑли вы хотите задать вопроÑ, одним из ÑпоÑобов Ñто Ñделать может поÑлужить +<a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> +наш Ñайт поддержки Freshdesk</a>. +</p></body></html> + + + 9 + 9 + + + What is a Master Node? + Что такое маÑтернода? + + + + <html><head/><body><p align="justify"> + A masternode is a computer running a full node PIVX core wallet with a + requirement of 10,000 PIV secured collateral to provide extra services + to the network and in return, receive a portion of the block reward + regularly. These services include: + </p><p align="justify"> + + <ul> + <li>Instant transactions (SwiftX)</li> + <li>A decentralized governance (Proposal Voting)</li> + <li>A decentralized budgeting system (Treasury)</li> + <li>Validation of transactions within each block</li> + <li>Act as an additional full node in the network</li> + </ul> + + </p><p align="justify"> + For providing such services, masternodes are also paid a certain portion + of reward for each block. This can serve as a passive income to the + masternode owners minus their running cost. + </p><p align="justify"> + + Masternode Perks: + </p><p align="justify"> + <ul> + <li>Participate in PIVX Governance</li> + <li>Earn Masternode Rewards</li> + <li>Commodity option for future sale</li> + <li>Help secure the PIVX network</li> + </ul> + </p><p align="justify"> + + Requirements: + </p><p align="justify"> + <ul> + <li>10,000 PIV per single Masternode instance</li> + <li>Must be stored in a core wallet</li> + <li>Need dedicated IP address</li> + <li>Masternode wallet to remain online</li> + </ul> + </p></body></html> + + +МаÑтернода - Ñто компьютер, на котором запущен базовый кошелек PIVX Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ узлом и Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ требуетÑÑ Ð¾Ð±ÐµÑпечение в 10000 PIV Ð´Ð»Ñ Ð¾Ð±ÐµÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ñ… уÑлуг Ñети и, в Ñвою очередь, регулÑрного Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ‡Ð°Ñти Ð²Ð¾Ð·Ð½Ð°Ð³Ñ€Ð°Ð¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° блок. Эти уÑлуги в ÑÐµÐ±Ñ Ð²ÐºÐ»ÑŽÑ‡Ð°ÑŽÑ‚: + +Мгновенные транзакции (SwiftX) +Децентрализованное управление (ГолоÑование по предложениÑм) +Ð”ÐµÑ†ÐµÐ½Ñ‚Ñ€Ð°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ÑиÑтема Ð±ÑŽÐ´Ð¶ÐµÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (КазначейÑтво) +Проверка транзакций в каждом блоке. +Ð’Ñ‹Ñтупление в качеÑтве дополнительного полного узла в Ñети. + +Ð”Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð°ÐºÐ¸Ñ… уÑлуг маÑтернодам также выплачиваетÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ вознаграждений за каждый блок. Это может Ñлужить паÑÑивным доходом Ð´Ð»Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†ÐµÐ² маÑтернод за вычетом их ÑкÑплуатационных раÑходов. + +Привилегии маÑтерноды: + +УчаÑтие в управлении PIVX +Получение вознаграждений за маÑтерноду +Товарные опционы Ð´Ð»Ñ Ð±ÑƒÐ´ÑƒÑ‰ÐµÐ¹ продажи +Помощь в защите Ñети PIVX + +ТребованиÑ: + +10 000 PIV Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ маÑтерноды +Должен хранитьÑÑ Ð² оÑновном кошельке +ТребуетÑÑ Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð½Ñ‹Ð¹ IP-Ð°Ð´Ñ€ÐµÑ +Кошелек маÑтерноды должен оÑтаватьÑÑ Ð² Ñети + + + 10 + 10 + + + What is a Master Node Controller? + Что такое контролер маÑтерноды? + + + <html><head/><body><p align="justify">A Masternode Controller wallet is where the 10,000 PIV collateral can reside during a Controller-Remote masternode setup. It is a wallet that can activate the remote masternode wallet/s and allows you to keep your collateral coins offline while the remote masternode remains online. </p></body></html> + <html><head/><body><p align="justify">Кошелек контролера маÑтерноды - Ñто то меÑто, где может находитьÑÑ Ð·Ð°Ð»Ð¾Ð³ в 10 000 PIV во Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ñтройки удаленного контролера маÑтерноды. Это кошелек, который может активировать удаленный кошелек / кошельки маÑтерноды и позволит вам ÑохранÑÑ‚ÑŒ ваши ÑопутÑтвующие монеты в автономном режиме, пока ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ð°Ñ Ð¼Ð°Ñтернода оÑтаетÑÑ Ð² Ñети.</p></body></html> + + + Frequently Asked Questions + ЧаÑто задаваемые вопроÑÑ‹ + + + You can read more here + Ð’Ñ‹ можете прочитать подробнее здеÑÑŒ + + + Exit + Выход + + + + SettingsInformationWidget + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + Network Monitor + Сетевой монитор + + + Information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + General + ОÑновное + + + Client Version: + ВерÑÐ¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°: + + + User Agent: + ПользовательÑкий агент: + + + Using BerkeleyDB version: + ИÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð²ÐµÑ€Ñию BerkeleyDB: + + + Datadir: + Datadir: + + + Startup Time: + Ð’Ñ€ÐµÐ¼Ñ Ð·Ð°Ð¿ÑƒÑка: + + + Network + Сеть + + + Name: + ИмÑ: + + + Number Connections: + КоличеÑтво подключений: + + + Blockchain + Блокчейн + + + Current Number of Blocks: + Текущий номер блоков: + + + Last Block Time: + Ð’Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ñледнего блока: + + + Memory Pool + Пул памÑти + + + Current Number of Transactions: + Текущий номер транзакций: + + + Main + Ð“Ð»Ð°Ð²Ð½Ð°Ñ + + + Wallet Conf + ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ ÐºÐ¾ÑˆÐµÐ»ÑŒÐºÐ° + + + Backups + Резервные копии + + + No information + Ðет информации + + + Unable to open backups folder + Ðевозможно открыть папку резервных копий + + + Unable to open pivx.conf with default application + Ðевозможно открыть pivx.conf Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÐ¼ по умолчанию + + + In: + Ввод: + + + Out: + Вывод: + + + + SettingsMainOptionsWidget + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + Window + Окно + + + Customize the application window options + ÐаÑтройте параметры окна Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + + + CheckBox + Флажок + + + Reset to default + СброÑить наÑтройки по умолчанию + + + Discard changes + Отменить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + + + SAVE + СОХРÐÐИТЬ + + + Main + Ð“Ð»Ð°Ð²Ð½Ð°Ñ + + + Size of database cache + Размер кеша базы данных + + + Number of script verification threads + КоличеÑтво потоков проверки Ñкрипта + + + Start PIVX on system login + ЗапуÑкать PIVX при входе в ÑиÑтему + + + Minimize to the tray instead of the taskbar + Свернуть в трей вмеÑто панели задач + + + Minimize on close + Свернуть или закрыть + + + Reset Options + СброÑить параметры + + + You are just about to reset the app's options to the default values. + +Are you sure? + + Ð’Ñ‹ ÑобираетеÑÑŒ ÑброÑить параметры Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + +к наÑтройкам по умолчанию. Ð’Ñ‹ уверены? + + + + Options reset succeed + Ð¡Ð±Ñ€Ð¾Ñ Ð½Ð°Ñтроек выполнен уÑпешно + + + + SettingsMultisendDialog + + Form + Вид + + + Transaction Details + Детали транзакции + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + CANCEL + ОТМЕÐÐ + + + SAVE + СОХРÐÐИТЬ + + + New recipient for multisend + Ðовый получатель Ð´Ð»Ñ Ð¼ÑƒÐ»ÑŒÑ‚Ð¸Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ + + + Label (optional) + Метка (необÑзательно) + + + Enter a label to add this address in your address book + Введите метку, чтобы добавить Ñтот Ð°Ð´Ñ€ÐµÑ Ð² адреÑную книгу + + + Percentage + Процент + + + + SettingsMultisendWidget + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + No active Master Node yet + Пока что нет активной МаÑтерноды + + + CheckBox + Флажок + + + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. + MultiSend позволÑет автоматичеÑки отправлÑÑ‚ÑŒ до 100% ваших вознаграждений от Ñтекинга или маÑтернод в ÑпиÑок других адреÑов PIVX поÑле его ÑозреваниÑ. + + + Active + Ðктивно + + + Disable + Отключить + + + No active recipient yet + Пока нет активных получателей + + + Send stakes + Отправить Ð²Ð¾Ð·Ð½Ð°Ð³Ñ€Ð°Ð¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° Ñтекинг + + + Send masternode rewards + Отправить Ð²Ð¾Ð·Ð½Ð°Ð³Ñ€Ð°Ð¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° маÑтерноду + + + ADD RECIPIENT + ДОБÐВИТЬ ПОЛУЧÐТЕЛЯ + + + CLEAR ALL + УБРÐТЬ ВСЕ + + + Clear succeed + ОчиÑтка уÑпешно завершена + + + Clear all failed, could not locate address in wallet file + ÐŸÐ¾Ð»Ð½Ð°Ñ Ð¾Ñ‡Ð¸Ñтка не удалаÑÑŒ. Ðе удалоÑÑŒ найти Ð°Ð´Ñ€ÐµÑ Ð² файле кошелька + + + The entered address: %1 is invalid. +Please check the address and try again. + Введенный адреÑ: %1 неверен. +ПожалуйÑта, проверьте Ð°Ð´Ñ€ÐµÑ Ð¸ попробуйте еще раз. + + + Invalid percentage, please enter values from 1 to 100. + Ðеверный процент, введите Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚ 1 до 100. + + + The total amount of your MultiSend vector is over 100% of your stake reward + ÐžÐ±Ñ‰Ð°Ñ Ñумма вашего вектора MultiSend превышает 100% ваших Ð²Ð¾Ð·Ð½Ð°Ð³Ñ€Ð°Ð¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° Ñтекинг + + + Error saving MultiSend, failed saving properties to the database. + Ошибка при Ñохранении MultiSend. Ðе удалоÑÑŒ Ñохранить ÑвойÑтва в базе данных. + + + Unable to activate MultiSend, no available recipients + Ðевозможно активировать MultiSend. Ðет доÑтупных получателей + + + Unable to activate MultiSend +Check one or both of the check boxes to send on stake and/or masternode rewards + Ðевозможно активировать MultiSend. +Проверьте один или оба флажка Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ вознаграждений за Ñтекинг и / или маÑтерноду. + + + MultiSend activated but writing settings to DB failed + MultiSend активирован, но запиÑÑŒ наÑтроек в DB не удалаÑÑŒ + + + MultiSend activated + MultiSend активирован + + + First multiSend address invalid + Первый Ð°Ð´Ñ€ÐµÑ Ð¼ÑƒÐ»ÑŒÑ‚Ð¸Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ неверен + + + MultiSend deactivated but writing settings to DB failed + MultiSend деактивирован, но запиÑÑŒ наÑтроек в DB не удалаÑÑŒ + + + MultiSend deactivated + MultiSend деактивирован + + + + SettingsSignMessageWidgets + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + PushButton + Ðажать кнопку + + + Clear + ОчиÑтить + + + Sign/Verify Message + ПодпиÑать/верифицировать Ñообщение + + + Enter a PIVX address or contact label + Введите Ð°Ð´Ñ€ÐµÑ PIVX или метку контакта + + + Add address + Добавить Ð°Ð´Ñ€ÐµÑ + + + Sign + ПодпиÑать + + + Verify + Верифицировать + + + Select mode + Выбрать режим + + + Message + Сообщение + + + Write a message + ÐапиÑать Ñообщение + + + Signature + ПодпиÑÑŒ + + + SIGN + ПОДПИСÐТЬ + + + CLEAR ALL + УБРÐТЬ ВСЕ + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Ð’Ñ‹ можете подпиÑывать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ Ð²Ð°ÑˆÐ¸Ð¼Ð¸ адреÑами, чтобы доказать, что вы ими владеете. Будьте оÑторожны, чтобы не подпиÑывать ничего неопределенного, поÑкольку фишинг-атаки могут попытатьÑÑ Ð¾Ð±Ð¼Ð°Ð½ÑƒÑ‚ÑŒ ваÑ, подпиÑав вашу личноÑÑ‚ÑŒ на них. Подпишите только полные подробные заÑвлениÑ, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ вы ÑоглаÑны. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Введите Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñи, Ñообщение (убедитеÑÑŒ, что вы Ñкопировали разрывы Ñтрок, пробелы, табулÑции и Ñ‚. Д.) И подпиÑÑŒ ниже, чтобы проверить Ñообщение. Будьте внимательны, чтобы не читать больше в подпиÑи, чем в Ñамом подпиÑанном Ñообщении, чтобы избежать обмана Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ атаки + + + VERIFY + ВЕРИФИЦИРОВÐТЬ + + + The entered address is invalid. + Ðеправильно введен адреÑ. + + + Please check the address and try again. + ПожалуйÑта, проверьте Ð°Ð´Ñ€ÐµÑ Ð¸ попробуйте Ñнова. + + + The entered address does not refer to a key. + Введенный Ð°Ð´Ñ€ÐµÑ Ð½Ðµ ÑвÑзан Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼. + + + Wallet unlock was cancelled. + СнÑтие блокировки кошелька было отменено. + + + Private key for the entered address is not available. + ПерÑональный ключ Ð´Ð»Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ð¾Ð³Ð¾ адреÑа недоÑтупен. + + + Message signing failed. + Ошибка подпиÑÐ°Ð½Ð¸Ñ ÑообщениÑ. + + + Message signed. + Сообщение подпиÑано. + + + The signature could not be decoded. + ПодпиÑÑŒ не может быть раÑшифрована. + + + Please check the signature and try again. + ПожалуйÑта, проверьте Ñту подпиÑÑŒ и попробуйте Ñнова. + + + The signature did not match the message digest. + ПодпиÑÑŒ не ÑоответÑтвовала дайджеÑту ÑообщениÑ. + + + Message verification failed. + Ðе удалоÑÑŒ выполнить проверку ÑообщениÑ. + + + Message verified. + Сообщение подтверждено. + + + No addresses available, you can go to the receive screen and add some there! + Ðет доÑтупных адреÑов. Ð’Ñ‹ можете перейти на вкладку Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¸ добавить! + + + + SettingsWalletOptionsWidget + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + CheckBox + Флажок + + + RadioButton + Переключатель + + + Reset to default + СброÑить наÑтройки по умолчанию + + + Discard changes + Отменить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + + + PushButton + Ðажать кнопку + + + Wallet + Кошелек + + + Customize the internal wallet options + ÐаÑтройте параметры внутреннего кошелька + + + Stake split threshold: + Порог Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¸: + + + Spend unconfirmed change + Проведите неподтвержденные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + + + Network + Сеть + + + Customize the node network options + ÐаÑтройте параметры Ñети узла + + + Proxy IP: + IP прокÑи: + + + Enter proxy IP + ВвеÑти IP прокÑи: + + + Port: + Порт: + + + Map port using UPnP + Карта порта Ñ Ð¸Ñпользованием UPnP + + + Allow incoming connections + Разрешить входÑщие Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ + + + Connect through SOCKS5 proxy (default proxy): + ПодключитьÑÑ Ñ‡ÐµÑ€ÐµÐ· SOCKS5 прокÑи (по умолчанию): + + + SAVE + СОХРÐÐИТЬ + + + Options reset succeed + Ð¡Ð±Ñ€Ð¾Ñ Ð½Ð°Ñтроек выполнен уÑпешно + + + + SettingsWalletRepairWidget + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + PushButton + Ðажать кнопку + + + Wallet Repair + Ремонт кошелька + + + The buttons below will restart the wallet with command-line options to repair this wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. + Кнопки ниже перезапуÑÑ‚ÑÑ‚ кошелек Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ командной Ñтроки Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñтого кошелька, иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ Ñ Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð½Ñ‹Ð¼Ð¸ файлами блокчейна или отÑутÑтвующими / уÑтаревшими транзакциÑми. + + + Attempt to recover private keys from a corrupt wallet.dat. + Попытка воÑтановить Ñекрентые ключи битого wallet.dat. + + + Rescan the blockchain for missing wallet transactions. + Повторно проÑканируйте блокчейн на предмет отÑутÑÑ‚Ð²Ð¸Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¹ кошелька. + + + Recover transactions from blockchain (keep-meta-data, e.g. account owner). + ВоÑÑтановление транзакций из блокчейна (keep-meta-data, например, владелец аккаунта). + + + Recover transactions from blockchain (drop meta-data). + ПерезапиÑать транзакции из блокчейна (Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸ÐµÐ¼ мета-данных, таких как владелец кошелька). + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself) + При запуÑке обновлÑÑ‚ÑŒ кошелек до поÑледнего формата. (Примечание: Ñто ÐЕ обновление Ñамого кошелька) + + + Rebuild blockchain index from current blk000???.dat files. + ПереÑтроить Ð¸Ð½Ð´ÐµÐºÑ Ð±Ð»Ð¾ÐºÑ‡ÐµÐ¹Ð½Ð° из текущих файлов blk000???.dat. + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + УдалÑет вÑе локальные папки Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ¾Ð¹, чтобы кошелек ÑинхронизировалÑÑ Ñ Ð½ÑƒÐ»Ñ. + + + Salvage wallet + Кошелёк Ð´Ð»Ñ Ñбора + + + Rescan blockchain file + Повторно Ñканировать файл блокчена + + + Recover transactions 1 + ВоÑтановление транзакций 1 + + + Recover transactions 2 + ВоÑтановление транзакций 2 + + + Upgrade wallet format + Обновить формат кошелька + + + Rebuild index + ПереÑоздать Ð¸Ð½Ð´ÐµÐºÑ + + + Delete local blockchain + Удалить локальный блокчейн + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + УдалÑет вÑе локальные папки Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ¾Ð¹, чтобы кошелек ÑинхронизировалÑÑ Ñ Ð½ÑƒÐ»Ñ.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Это требует довольно много времени чтобы загрузить большое количеÑтво данных.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + ПоÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ ваши транзакции и ÑредÑтва будут Ñнова видны.<br /><br /> + + + Do you want to continue?.<br /> + Ð’Ñ‹ хотите продолжить?<br /> + + + Confirm resync Blockchain + Подтвердить повторную Ñинхронизацию Blockchain + + + + SettingsWidget + + Form + Вид + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + Wallet Data + Данные кошелька + + + Wallet + Кошелек + + + Multisend + Multisend + + + Tools + ИнÑтрументы + + + Sign/Verify Message + ПодпиÑать/верифицировать Ñообщение + + + BIP38 Tool + ИнÑтрумент BIP38 + + + Options + ÐаÑтройки + + + Main + Ð“Ð»Ð°Ð²Ð½Ð°Ñ + + + Display + ДиÑплей + + + Debug + Отладка + + + Information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + Console + КонÑоль + + + Wallet Repair + Ремонт кошелька + + + Help + Помощь + + + FAQ + ЧаВо + + + About PIVX + О PIVX + + + Settings + ÐаÑтройки + + + Confirm options reset + Подтвердить ÑÐ±Ñ€Ð¾Ñ Ð½Ð°Ñтроек + + + Client restart required to activate changes. + Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ требуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑк клиента. + + + Client will be shutdown, do you want to proceed? + Клиент будет закрыт, вы хотите продолжить? + + + Restart required + Ðеобходима перезагрузка + + + Your wallet needs to be restarted to apply the changes + + Чтобы Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ñтупили в Ñилу, ваш кошелек необходимо перезагрузить + + + + Restart Now + Перезагрузить ÑÐµÐ¹Ñ‡Ð°Ñ + + + Restart Later + Перезагрузить позже + + + Options will be applied on next wallet restart + Параметры будут применены при Ñледующем перезапуÑке кошелька + + + Options stored + Опции Ñохранены + + + Options store failed + Сохранение опций не удалоÑÑŒ + + + Discard Unsaved Changes + Отменить неÑохраненные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + + + You are just about to discard all of your unsaved options. + +Are you sure? + + Ð’Ñ‹ ÑобираетеÑÑŒ отказатьÑÑ Ð¾Ñ‚ вÑех неÑохраненных опций. + +Ð’Ñ‹ уверены? + + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core выключаетÑÑ... + + + Do not shut down the computer until this window disappears. + Ðе выключайте Ñтот компьютер пока Ñто окно не иÑчезнет. + + + + SnackBar + + Form + Вид + + + Contact Stored + Контакт Ñохранен + + + + Splash + + Form + Вид + + + Loading… + Загрузка... + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + ВерÑÐ¸Ñ %1 + + + The Bitcoin Core developers + Разработчики Bitcoin Core + + + The Dash Core developers + Разработчики Dash Core + + + The PIVX Core developers + Разработчики PIVX Core + + + [testnet] + [теÑÑ‚Ð¾Ð²Ð°Ñ Ñеть] + + + + TooltipMenu + + Form + Вид + + + Copy + Копировать + + + Edit + Редактировать + + + Delete + Удалить + + + Last + ПоÑледнÑÑ + + + + TopBar + + Form + Вид + + + 480.0685 PIV + 480.0685 PIV + + + 1,000 zPIV + 1 000 zPIV + + + Available + ДоÑтупный + + + Pending + Ð’ ожидании + + + 6.943 PIV + 6.943 PIV + + + Immature + Ðезрелый + + + 10 PIV + 10 PIV + + + 60 zPIV + 60 zPIV + + + 10 zPIV + 10 zPIV + + + Wallet Unlocked for staking + Кошелек разблокирован Ð´Ð»Ñ Ñтекинга + + + Error generating address + Ошибка при генерации адреÑа + + + Address Copied + ÐÐ´Ñ€ÐµÑ Ñкопирован + + + Automint enabled + Включена автоматичеÑÐºÐ°Ñ Ñ‡ÐµÐºÐ°Ð½ÐºÐ° + + + Automint disabled + ÐвтоматичеÑÐºÐ°Ñ Ñ‡ÐµÐºÐ°Ð½ÐºÐ° отключена + + + Staking active + Стекинг активен + + + Staking not active + Стекинг не активен + + + Synchronized + Синхронизировано + + + %n hour(s) + %n чаÑ%n чаÑа%n чаÑов%n чаÑов + + + %1 and %2 + %1 и %2 + + + + TrafficGraphWidget + + KB/s + КБ/Ñ + + + + TransactionDesc + + Open until %1 + Открыть до %1 + + + conflicted + противоречивый + + + %1/offline + %1/ не в Ñети + + + %1/unconfirmed + %1/ неподтвержденный + + + %1 confirmations + %1 Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ + + + %1/offline (verified via SwiftX) + %1 / офлайн (проверено через SwiftX) + + + %1/confirmed (verified via SwiftX) + %1 / подтверждено (проверено через SwiftX) + + + %1 confirmations (verified via SwiftX) + %1 подтверждений (проверено через SwiftX) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1 / офлайн (проверка SwiftX - %2 %3 подпиÑей) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1 / подтверждено (выполнÑетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° SwiftX - %2 %3 подпиÑей) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 подтверждений (Проверка SwiftX в процеÑÑе - %2 %3 подпиÑи) + + + %1/offline (SwiftX verification failed) + %1 / офлайн (проверка SwiftX не выполнена) + + + %1/confirmed (SwiftX verification failed) + %1 / подтверждено (проверка SwiftX не выполнена) + + + Status + СоÑтоÑние + + + , has not been successfully broadcast yet + , еще не была уÑпешно передана + + + Date + Дата + + + Source + ИÑточник + + + Generated + Сформировано + + + From + От + + + unknown + неизвеÑтно + + + To + Кому + + + own address + ÑобÑтвенный Ð°Ð´Ñ€ÐµÑ + + + watch-only + Ñмотреть только + + + label + метка + + + Credit + Кредит + + + not accepted + не принимаютÑÑ + + + Debit + Дебит + + + Total debit + Общий дебет + + + Total credit + Общий кредит + + + Transaction fee + КомиÑÑÐ¸Ñ Ð·Ð° транзакцию + + + Net amount + ЧиÑÑ‚Ð°Ñ Ñумма + + + Message + Сообщение + + + Comment + Комментарий + + + Transaction ID + Ðомер транзакции + + + Output index + Выходной Ð¸Ð½Ð´ÐµÐºÑ + + + Merchant + коммерÑант + + + Debug information + ÐžÑ‚Ð»Ð°Ð´Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + Transaction + Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ + + + Inputs + входы + + + Amount + Сумма + + + true + иÑтина + + + false + ложь + + + + TransactionTableModel + + Date + Дата + + + Type + Тип + + + Address + ÐÐ´Ñ€ÐµÑ + + + Open until %1 + Открыть до %1 + + + Offline + не в Ñети + + + Unconfirmed + неподтвержденный + + + Confirming (%1 of %2 recommended confirmations) + Подтверждение (%1 %2 рекомендованных подтверждений) + + + Confirmed (%1 confirmations) + Подтверждено (подтверждение %1) + + + Conflicted + Конфликтующий + + + Immature (%1 confirmations, will be available after %2) + Ðезрелые (%1 Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ доÑтупны поÑле %2) + + + This block was not received by any other nodes and will probably not be accepted! + Этот блок не был принÑÑ‚ никакими другими узлами и, вероÑтно, не будет принÑÑ‚! + + + Received with + Получено Ñ + + + Masternode Reward + Вознаграждение МаÑтерноды + + + Received from + Получен от + + + Received via Obfuscation + Получено через обфуÑкацию + + + PIV Stake + Ð”Ð¾Ð»Ñ PIV + + + zPIV Stake + Ð”Ð¾Ð»Ñ zPIV + + + PIV Cold Stake + Холодный Ñтекинг PIV + + + PIV Stake in behalf of + Стекинг PIV от имени + + + Stake delegation + Ð”ÐµÐ»ÐµÐ³Ð°Ñ†Ð¸Ñ Ñтекинга + + + Obfuscation Denominate + ОбфуÑÐºÐ°Ñ†Ð¸Ñ + + + Obfuscation Collateral Payment + ОбфуÑкационный СопутÑтвующий платеж + + + Obfuscation Make Collateral Inputs + ОбфуÑÐºÐ°Ñ†Ð¸Ñ + + + Obfuscation Create Denominations + ОбфуÑÐºÐ°Ñ†Ð¸Ñ Ð¡Ð¾Ð·Ð´Ð°Ð½Ð¸Ðµ конфеÑÑий + + + Converted PIV to zPIV + Преобразованный PIV в zPIV + + + Spent zPIV + потраченный zPIV + + + Received PIV from zPIV + Полученный PIV от zPIV + + + Minted Change as zPIV from zPIV Spend + ÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð°Ñ Ð·Ð°Ð¼ÐµÐ½Ð° zPIV из потраенного zPIV + + + Converted zPIV to PIV + Преобразованный zPIV to PIV + + + Sent to + Отправить + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + СиротÑкий блок - Ñгенерирован, но не принÑÑ‚. Это не влиÑет на ваши запаÑÑ‹. + + + Payment to yourself + Оплата Ñебе + + + Mined + заминированный + + + Obfuscated + затемненный + + + watch-only + Ñмотреть только + + + Anonymous + Ðнонимный + + + No information + Ðет информации + + + (n/a) + (н/з) + + + Transaction status. Hover over this field to show number of confirmations. + Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸. Ðаведите указатель мыши на Ñто поле, чтобы показать количеÑтво подтверждений. + + + Date and time that the transaction was received. + Дата и Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸. + + + Type of transaction. + Тип транзакции. + + + Whether or not a watch-only address is involved in this transaction. + ÐезавиÑимо от того, включен ли в Ñту транзакцию только Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸Ñ. + + + Destination address of transaction. + ÐÐ´Ñ€ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸. + + + Amount removed from or added to balance. + Сумма, ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ð°Ñ Ð¸Ð»Ð¸ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ðº баланÑу. + + + + TxDetailDialog + + Form + Вид + + + Transaction Details + Детали транзакции + + + ID: + ID: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Sending to: + Отправить: + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + Total amount + ÐžÐ±Ñ‰Ð°Ñ Ñумма + + + 2 PIV + 2 PIV + + + Coin inputs: + Входы монеты: + + + 1 Inputs + 1 вход + + + Previous Transaction + Предыдущие транзакции + + + Output Index + Ð˜Ð½Ð´ÐµÐºÑ Ð²Ñ‹Ñ…Ð¾Ð´Ð° + + + Fee: + КомиÑÑиÑ: + + + 0.0001 PIV + 0.0001 PIV + + + Change address: + Изменить адреÑ: + + + D7VFR83SQbie…BhjcWJtcfip5krte2Z + D7VFR83SQbie…BhjcWJtcfip5krte2Z + + + Confirmations: + ПодтверждениÑ: + + + 12 + 12 + + + Size: + Размер: + + + 2 kB + 2 kB + + + Date: + Дата: + + + May 25, 2017 + 25 маÑ, 2017 + + + Status: + СтатуÑ: + + + Spendable + РаÑходуемый + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + CANCEL + ОТМЕÐÐ + + + OK + ХОРОШО + + + Confirm Your Transaction + Подтвердить вашу транзакцию + + + SEND + отправить + + + ID copied + ID Ñкопирован + + + Unknown + ÐеизвеÑтно + + + + TxRow + + Form + Вид + + + Received from Bob + Получено от Боба + + + 18/05/18 + 18/05/18 + + + +0.000585 PIV + +0.000585 PIV + + + + WalletModel + + Send Coins + Отправить Монеты + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftX не поддерживает отправку значений, которые еще выÑоки. Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸ ограничены %1 PIV. + + + + WalletPasswordDialog + + Dialog + Диалоговое окно + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + PushButton + Ðажать кнопку + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + ОТМЕÐÐ + + + OK + ХОРОШО + + + + WelcomeContentWidget + + Dialog + Диалоговое окно + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + Language + Язык + + + Welcome + Добро пожаловать + + + Privacy + КонфиденциальноÑÑ‚ÑŒ + + + Masternodes + МаÑтерноды + + + Select your language + Выбрать Ñзык + + + Welcome to +PIVX Core Wallet + Добро пожаловать +в оÑновной кошелек PIVX + + + PIVX is the world’s most innovative Proof of Stake blockchain based technology. Developed by a team of highly experienced developers and cryptographers. + PIVX - ÑÐ°Ð¼Ð°Ñ Ð¸Ð½Ð½Ð¾Ð²Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð² мире Ñ‚ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ Ð½Ð° оÑнове блокчейна Proof of Stake. Разработана командой опытных разработчиков и криптографов. + + + <html><head/><body><p>As our manifesto says: Privacy is a non-negotiable basic human right; it grants users the freedom to share their data whenever and with whomever they want - PIVX believes in self sovereignty.</p></body></html> + <html><head/><body><p>Как говоритÑÑ Ð² нашем манифеÑте: конфиденциальноÑÑ‚ÑŒ ÑвлÑетÑÑ Ð½Ðµ подлежащим обÑуждению оÑновным правом человека; Ñто дает пользователÑм Ñвободу делитьÑÑ Ñвоими данными в любое Ð²Ñ€ÐµÐ¼Ñ Ð¸ Ñ ÐºÐµÐ¼ угодно, ведь PIVX верит в ÑобÑтвенный Ñуверенитет.</p></body></html> + + + The masternode network is PIVX's second layer network on top of the blockchain that enables our DAO to provide decentralized governance and a treasury. + Сеть маÑтернод - Ñто Ñеть второго ÑƒÑ€Ð¾Ð²Ð½Ñ PIVX поверх блокчейна, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет нашему ДÐО обеÑпечивать децентрализованное управление и казначейÑтво. + + + How PIVX respects your privacy? + Как PIVX уважает вашу конфиденциальноÑÑ‚ÑŒ? + + + What is a Masternode? + Что такое маÑтернода? + + + default + по-умолчанию + + + + ZPivControlDialog + + Select zPIV to Spend + Выберите zPIV чтобы потратить + + + Coin Control + Контроль Монеты + + + PushButton + Ðажать кнопку + + + zPiv + zPiv + + + 0.00 + 0.00 + + + Quantity: + КоличеÑтво: + + + Is Spendable + РаÑходы + + + 0 + 0 + + + Select/Deselect All + Выбрать / Отменить выбор + + + Select zPIV Denominations to Spend + Выберите деноминации zPIV Ð´Ð»Ñ Ñ€Ð°Ñходов + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = Ñохранить tx метаданные, например, владельца учетной запиÑи и информацию о запроÑе платежа, 2 = удалить tx метаданные) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + Разрешить ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ JSON-RPC из указанного иÑточника. ДейÑтвительно Ð´Ð»Ñ <ip> одного IP (например, 1.2.3.4), Ñетевой / Ñетевой маÑки (например, 1.2.3.4/255.255.255.0) или Ñети / CIDR (например, 1.2.3.4/24). Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть указана неÑколько раз + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + ПривÑжите к указанному адреÑу и вÑегда Ñлушайте его. ИÑпользовать [host]: обозначение порта Ð´Ð»Ñ IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + ПривÑжите к указанным адреÑам и ÑверÑтникам-ÑверÑтникам, подключающимÑÑ Ðº нему. ИÑпользовать [host]: обозначение порта Ð´Ð»Ñ IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + ПривÑжите к указанному адреÑу Ð´Ð»Ñ Ð¿Ñ€Ð¾ÑÐ»ÑƒÑˆÐ¸Ð²Ð°Ð½Ð¸Ñ Ñоединений JSON-RPC. ИÑпользуйте [host]: обозначение порта Ð´Ð»Ñ IPv6. Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть указана неÑколько раз (по умолчанию: привÑзка ко вÑем интерфейÑам) + + + Calculated accumulator checkpoint is not what is recorded by block index + РаÑÑ‡ÐµÑ‚Ð½Ð°Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ° не ÑвлÑетÑÑ Ñ‚ÐµÐ¼, что региÑтрируетÑÑ Ð±Ð»Ð¾Ñ‡Ð½Ñ‹Ð¼ индекÑом + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Ðе удаетÑÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ блокировку в каталоге данных %s. PIVX Core, вероÑтно, уже запущен. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Изменить автоматичеÑкое окончательное поведение бюджета. mode = auto: ГолоÑовать за точный окончательный бюджет, ÑоответÑтвующий моему Ñгенерированному бюджету. (Ñтрока, по умолчанию: авто) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Ðепрерывные транзакции Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñми по ÑкороÑти до <n>* 1000 байт в минуту (по умолчанию: %u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Создавайте новые файлы Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñми по умолчанию Ð´Ð»Ñ ÑиÑтемы, вмеÑто umask 077 (Ñффективны только Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ð¾Ð¹ функцией кошелька) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Удалите вÑе транзакции кошелька и воÑÑтановите только те чаÑти блок-цепи через -rescan при запуÑке + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Удалите вÑе траты и монетки zerocoin, которые были запиÑаны в базу данных blockchain, и переиндекÑируйте их (0-1, по умолчанию: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + РаÑпроÑтранÑетÑÑ Ð¿Ð¾ лицензии программного обеÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ MIT, Ñм. Сопроводительный файл COPYING или <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic Zerocoin minting from specific addresses (0-1, default: %u) + Включить автоматичеÑкую чеканку Zerocoin Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ñ… адреÑов (0-1, по умолчанию:%u) + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Включить автоматичеÑкое резервное копирование кошелька, запуÑкаемое поÑле каждого чеканки zPIV (0-1, по умолчанию: %u) + + + Enable cold staking functionality (0-1, default: %u). Disabled if staking=0 + Включить функцию холодного Ñтекинга (0-1, по умолчанию:%u). Отключено, еÑли Ñтекинг = 0 + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Включение или отключение функций разбивки Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð¾Ð² PIV (0-1, по умолчанию: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Включение или отключение функций разбивки Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð¾Ð² zPIV (0-1, по умолчанию: %u) + + + Enable spork administration functionality with the appropriate private key. + Включите функцию админиÑÑ‚Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ spork Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑоответÑтвующего закрытого ключа. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Введите режим регреÑÑии, в котором иÑпользуетÑÑ ÑÐ¿ÐµÑ†Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ°, в которой блоки могут быть решены мгновенно. + + + Error: Listening for incoming connections failed (listen returned error %s) + Ошибка: ПроÑлушивание входÑщих Ñоединений не выполнено (при возврате ошибки %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Ошибка: Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð±Ð¾Ð»ÑŒÑˆÐµ макÑимально допуÑтимого размера транзакции! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Ошибка: обнаружен неподдерживаемый аргумент -socks. ÐаÑтройка верÑии SOCKS больше невозможна, поддерживаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ прокÑи SOCKS5. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Выполните команду, когда получено ÑоответÑтвующее предупреждение, или мы видим очень длинную развилку (%s в cmd заменÑетÑÑ Ñообщением) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + ВыполнÑÑ‚ÑŒ команду при изменении транзакции кошелька (%s в cmd заменÑетÑÑ Ð½Ð° TxID) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Выполнить команду, когда лучший блок изменÑетÑÑ (%s в cmd заменÑетÑÑ Ð±Ð»Ð¾Ñ‡Ð½Ñ‹Ð¼ Ñ…Ñшем) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Тарифы (в PIV / Kb), меньшие, чем Ñто, ÑчитаютÑÑ Ð½ÑƒÐ»ÐµÐ²Ð¾Ð¹ комиÑÑией за ретранÑлÑцию (по умолчанию: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Плата (в PIV / Kb) меньше Ñтого ÑчитаетÑÑ Ð½ÑƒÐ»ÐµÐ²Ð¾Ð¹ комиÑÑией за Ñоздание транзакции (по умолчанию: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + СброÑить активноÑÑ‚ÑŒ базы данных из пула памÑти в журнал диÑка каждый <n> мегабайт (по умолчанию: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + ЕÑли paytxfee не уÑтановлен, включите доÑтаточно плату, так что транзакции начнут подтверждать в Ñреднем в пределах n блоков (по умолчанию: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + Ð’ Ñтом режиме контролируетÑÑ, Ñколько блоков генерируетÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + ÐедоÑтаточно или недоÑтаточно подтвержденных ÑредÑтв, вам может потребоватьÑÑ Ð½ÐµÑколько минут и повторите попытку. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñумма Ð´Ð»Ñ -maxtxfee =<amount>: '%s' (должна быть Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð¿Ð»Ð°Ñ‚Ð° %s Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°ÑÑ‚Ñ€ÐµÐ²Ð°Ð½Ð¸Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¹) + + + Keep the specified amount available for spending at all times (default: 0) + Держите указанную Ñумму доÑтупной Ð´Ð»Ñ Ñ€Ð°Ñходов в любое Ð²Ñ€ÐµÐ¼Ñ (по умолчанию: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Приоритет транзакции журнала и плата за kB при выполнении блоков добычи (по умолчанию: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Поддерживание полного индекÑа транзакции, иÑпользуемого вызовом rvc getrawtransaction (по умолчанию: %u) + + + Maximum average size of an index occurrence in the block spam filter (default: %u) + МакÑимально Ñредний размер входа индекÑа в фильтр нежелательной почты (по умолчанию:%u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + МакÑимальный размер данных в транзакциÑÑ… передачи данных, которые мы передаем, (по умолчанию: %u) + + + Maximum size of the list of indexes in the block spam filter (default: %u) + МакÑимальный размер ÑпиÑка индекÑов в фильтре нежелательной почты (по умолчанию:%u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾Ð±Ñ‰Ð°Ñ Ñумма комиÑÑий за иÑпользование транзакции Ñ Ð¾Ð´Ð½Ð¸Ð¼ кошельком, Ñлишком низкаÑ, может прервать крупные транзакции (по умолчанию: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + КоличеÑтво Ñекунд, чтобы не допуÑтить повторного Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ñ… пользователей (по умолчанию: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + Obfuscation иÑпользует точные деноминированные Ñуммы Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ ÑредÑтв, вам проÑто нужно будет анонимизировать еще неÑколько монет. + + + Output debugging information (default: %u, supplying <category> is optional) + Ð’Ñ‹Ñ…Ð¾Ð´Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸ (по умолчанию: %u, поÑтавка <category> необÑзательна) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ñ€Ð°Ð½Ð³Ð¾Ð²Ñ‹Ñ… адреÑов через DNS-поиÑк, еÑли он имеет низкий Ð°Ð´Ñ€ÐµÑ (по умолчанию: 1, еÑли не подключено) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Ранжирование учетных данных Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ прокÑи-ÑоединениÑ. Это позволÑет изолировать Tor поток (по умолчанию: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Требовать выÑокий приоритет Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ беÑплатных или низкооплачиваемых транзакций (по умолчанию: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + ОтправлÑÑ‚ÑŒ траÑÑировку / отладочную информацию на конÑоль вмеÑто файла debug.log (по умолчанию: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + УÑтановите макÑимальный размер транзакций Ñ Ð²Ñ‹Ñоким приоритетом / низкой оплатой в байтах (по умолчанию: %d) + + + Set the number of included blocks to precompute per cycle. (minimum: %d) (maximum: %d) (default: %d) + УÑтановить количеÑтво включенных блоков Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ вычиÑÐ»ÐµÐ½Ð¸Ñ Ð·Ð° цикл. (минимум: %d) (макÑимум: %d) (по умолчанию: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Задайте количеÑтво потоков проверки Ñкриптов (%u до %d, 0 = auto, <0 = оÑтавить много Ñдер беÑплатно, по умолчанию: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + УÑтановите количеÑтво потоков Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ монет, еÑли включено (-1 = вÑе Ñдра, по умолчанию: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Показывать Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ N Ð´Ð»Ñ ÑƒÑпешно заблокированной транзакции (0-9999, по умолчанию: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Поддержка фильтрации блоков и транзакций Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ð¼Ð¸ Ñ†Ð²ÐµÑ‚ÐµÐ½Ð¸Ñ (по умолчанию: %u) + + + The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct + База данных блоков Ñодержит блок, который показываетÑÑ, как из будущего. Это может быть ÑвÑзано Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð¹ наÑтройкой даты и времени на вашем компьютере. ПереÑтройте базу данных блоков только в том Ñлучае, еÑли вы уверены, что дата и Ð²Ñ€ÐµÐ¼Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ компьютера указаны верно + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + Этот продукт включает программное обеÑпечение, разработанное OpenSSL Project Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² OpenSSL Toolkit <https://www.openssl.org/> и криптографичеÑком программном обеÑпечении, напиÑанном Эриком Яном и программным обеÑпечением UPnP, напиÑанным ТомаÑом Бернардом. + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + ÐžÐ±Ñ‰Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Ñтроки верÑии Ñети (%i) превышает макÑимальную длину (%i). Уменьшите количеÑтво или размер uacomments. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Ðе удалоÑÑŒ привÑзать к %s на Ñтом компьютере. PIVX Core, вероÑтно, уже запущен. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Ðе удалоÑÑŒ найти доÑтаточное количеÑтво ÑредÑтв, предназначенных Ð´Ð»Ñ Ð¾Ð±Ñ„ÑƒÑкации, Ð´Ð»Ñ Ñтой транзакции. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Ðевозможно найти доÑтаточное количеÑтво ÑредÑтв, не предназначенных Ð´Ð»Ñ Ð¾Ð±Ñ„ÑƒÑкации, Ð´Ð»Ñ Ñтой транзакции, которые не равны 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Ðе удалоÑÑŒ найти доÑтаточное количеÑтво ÑредÑтв Ð´Ð»Ñ Ñтой транзакции, которые не равны 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + ИÑпользуйте отдельный прокÑи SOCKS5 Ð´Ð»Ñ Ð´Ð¾Ñтупа к ÑверÑтникам через Ñкрытые ÑервиÑÑ‹ Tor (по умолчанию: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Предупреждение: -maxtxfee уÑтановлен очень выÑоко! Тарифы на Ñту Ñумму могут быть оплачены по одной транзакции. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Предупреждение: -paytxfee уÑтановлен очень выÑоко! Это комиÑÑÐ¸Ñ Ð·Ð° транзакцию, которую вы заплатите, еÑли вы отправлÑете транзакцию. + + + Warning: Peers are being disconnected due time differences. Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Предупреждение: пиры отключаютÑÑ Ð¸Ð·-за разницы во времени. ПожалуйÑта, проверьте правильноÑÑ‚ÑŒ даты и времени на вашем компьютере! ЕÑли ваши чаÑÑ‹ наÑтроены не правильно, PIVX Core не будет работать должным образом. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Внимание: проверьте правильноÑÑ‚ÑŒ даты и времени вашего компьютера! ЕÑли ваши чаÑÑ‹ ошибочны, PIVX Core не будет работать должным образом. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Предупреждение: Ñеть, похоже, не полноÑтью ÑоглаÑна! Ðекоторые , похоже, иÑпытывают проблемы. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Предупреждение: Мы, похоже, не полноÑтью ÑоглаÑны Ñ Ð½Ð°ÑˆÐ¸Ð¼Ð¸ ÑверÑтниками! Возможно, вам потребуетÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ или другие узлы, возможно, потребуетÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Предупреждение: ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ wallet.dat! Ð’Ñе ключи читаютÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾, но данные транзакции или запиÑи адреÑной книги могут отÑутÑтвовать или некорректны. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Предупреждение: wallet.dat поврежден, данные ÑпаÑены! ИÑходный wallet.dat Ñохранен как кошелек. {Timestamp} .bak в %s; еÑли ваш Ð±Ð°Ð»Ð°Ð½Ñ Ð¸Ð»Ð¸ транзакции неверны, вам Ñледует воÑÑтановить резервную копию. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + СпиÑок белых ÑпиÑков, ÑоединÑющихÑÑ Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ Ñетевой маÑкой или IP-адреÑом. Может быть указано неÑколько раз. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Учетные запиÑи белых ÑпиÑков не могут быть запрещены DoS, и их транзакции вÑегда передаютÑÑ, даже еÑли они уже находÑÑ‚ÑÑ Ð² мÑппуле, полезными, например, Ð´Ð»Ñ ÑˆÐ»ÑŽÐ·Ð° + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + Ð’Ñ‹ должны указать в Ñтроке приложенный ключ. ПожалуйÑта, обратитеÑÑŒ к документации Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñправки + + + (51472 could be used only on mainnet) + (51472 можно иÑпользовать только в Ñети) + + + (default: %s) + (неуплата: %s) + + + (default: 1) + (неуплата: 1) + + + (must be 51472 for mainnet) + (должен быть 51472 Ð´Ð»Ñ mainet) + + + Accept command line and JSON-RPC commands + ПринÑÑ‚ÑŒ командную Ñтроку и команды JSON-RPC + + + Accept connections from outside (default: 1 if no -proxy or -connect) + ПринÑÑ‚ÑŒ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð²Ð½Ðµ (по умолчанию: 1, еÑли нет -proxy или -connect) + + + Accept public REST requests (default: %u) + Принимать публичные запроÑÑ‹ REST (по умолчанию: %u) + + + Add a node to connect to and attempt to keep the connection open + Добавьте узел Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸ попытку Ñохранить Ñоединение открытым + + + Adding Wrapped Serials supply... + Добавление Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð°Ð²ÐµÑ€Ð½ÑƒÑ‚Ñ‹Ñ… Ñерий... + + + Allow DNS lookups for -addnode, -seednode and -connect + Разрешить поиÑк в DNS Ð´Ð»Ñ -addnode, -seednode и -connect + + + Always query for peer addresses via DNS lookup (default: %u) + Ð’Ñегда запрашивать одноранговые адреÑа через DNS-поиÑк (по умолчанию: %u) + + + Append comment to the user agent string + Добавить комментарий к Ñтроке агента Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ + + + Attempt to recover private keys from a corrupt wallet.dat + Попытка воÑÑтановить Ñекретные ключи из поврежденного файла wallet.dat + + + Automatically create Tor hidden service (default: %d) + ÐвтоматичеÑки Ñоздавать Ñкрытую Ñлужбу Tor (по умолчанию: %d) + + + Block creation options: + Варианты ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ°: + + + Calculating missing accumulators... + ВычиÑление недоÑтающих аккумулÑторов ... + + + Cannot downgrade wallet + ÐÐµÐ»ÑŒÐ·Ñ Ð¿Ð¾Ð½Ð¸Ð·Ð¸Ñ‚ÑŒ кошелек + + + Cannot resolve -bind address: '%s' + Ðе удаетÑÑ Ñ€Ð°Ð·Ñ€ÐµÑˆÐ¸Ñ‚ÑŒ -включить адреÑ: '%s' + + + Cannot resolve -externalip address: '%s' + Ðе удаетÑÑ Ñ€Ð°Ð·Ñ€ÐµÑˆÐ¸Ñ‚ÑŒ -externalip адреÑ: '%s' + + + Cannot resolve -whitebind address: '%s' + Ðе удаетÑÑ Ñ€Ð°Ð·Ñ€ÐµÑˆÐ¸Ñ‚ÑŒ -whitebind адреÑ: '%s' + + + CoinSpend: failed check + CoinSpend: Ð½ÐµÑƒÐ´Ð°Ñ‡Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° + + + Connect only to the specified node(s) + ПодключитеÑÑŒ только к указанному узлу (узлам) + + + Connect through SOCKS5 proxy + Подключение через прокÑи SOCKS5 + + + Connect to a node to retrieve peer addresses, and disconnect + ПодключитеÑÑŒ к узлу Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¾Ð´Ð½Ð¾Ñ€Ð°Ð½Ð³Ð¾Ð²Ñ‹Ñ… адреÑов и отключите + + + Connection options: + Варианты подключениÑ: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i Разработчики Bitcoin Core + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i Разработчики Dash Core + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i Разработчики PIVX Core + + + Corrupted block database detected + Обнаружена Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных блоков + + + Could not parse masternode.conf + Ðе удалоÑÑŒ разобрать masternode.conf + + + Couldn't generate the accumulator witness + Ðе удалоÑÑŒ Ñгенерировать witness аккумулÑтор + + + Debugging/Testing options: + Параметры отладки / теÑтированиÑ: + + + Delete blockchain folders and resync from scratch + Удаление папок-цепочек и Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ Ð½ÑƒÐ»Ñ + + + Disable OS notifications for incoming transactions (default: %u) + Отключить ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ ÐžÐ¡ Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñщих транзакций (по умолчанию: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Отключить безопаÑный режим, переопределить реальное Ñобытие безопаÑного режима (по умолчанию: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Откройте ÑобÑтвенный IP-Ð°Ð´Ñ€ÐµÑ (по умолчанию: 1 при проÑлушивании и без -externalip) + + + Do not load the wallet and disable wallet RPC calls + Ðе загружайте кошелек и отключите вызовы RPC кошелька + + + Do you want to rebuild the block database now? + Ð’Ñ‹ хотите переÑтроить базу данных блоков ÑейчаÑ? + + + Done loading + Загрузка выполнена + + + Enable automatic Zerocoin minting (0-1, default: %u) + Включить автоматичеÑкую чиÑтку Zerocoin (0-1, по умолчанию: %u) + + + Enable precomputation of zPIV spends and stakes (0-1, default %u) + Включить предварительное вычиÑление раÑходов и Ñтекинга zPIV (0-1, по умолчанию %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + Включить публикацию хеш-транзакции (заблокированной через SwiftX) в <address> + + + Enable publish raw transaction (locked via SwiftX) in <address> + Включить публикацию необработанных транзакций (заблокированных через SwiftX) в <address> + + + Enable the client to act as a masternode (0-1, default: %u) + Разрешить клиенту дейÑтвовать как маÑтернод (0-1, по умолчанию: %u) + + + Error initializing block database + Ошибка инициализации базы данных блоков + + + Error initializing wallet database environment %s! + Ошибка инициализации Ñреды базы данных кошелька %s! + + + Error loading block database + Ошибка загрузки базы данных блоков + + + Error loading wallet.dat + Ошибка при загрузке wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Ошибка при загрузке wallet.dat: Кошелек поврежден + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Ошибка загрузки wallet.dat: Кошелек требует более новой верÑии PIVX Core + + + Error opening block database + Ошибка Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных блоков + + + Error reading from database, shutting down. + Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸Ð· базы данных, завершение работы. + + + Error writing zerocoinDB to disk + Ошибка запиÑи zerocoinDB на диÑк + + + Error + Ошибка + + + Error: A fatal internal error occured, see debug.log for details + Ошибка: произошла Ñ„Ð°Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°, подробноÑти Ñм. Ð’ файле debug.log. + + + Error: Disk space is low! + Ошибка. ÐедоÑтаточно меÑта на диÑке! + + + Error: Unsupported argument -tor found, use -onion. + Ошибка: Ðеподдерживаемый аргумент -tor найден, иÑпользуйте -onion. + + + Error: Wallet locked, unable to create transaction! + Ошибка: кошелек заблокирован, невозможно Ñоздать транзакцию! + + + Failed to calculate accumulator checkpoint + Ðе удалоÑÑŒ вычиÑлить контрольную точку аккумулÑтора + + + Failed to listen on any port. Use -listen=0 if you want this. + Ðе удалоÑÑŒ проÑлушивать любой порт. ИÑпользуйте -listen = 0, еÑли вы Ñтого хотите. + + + Failed to parse host:port string + Ðе удалоÑÑŒ проанализировать хоÑÑ‚: Ñтрока порта + + + Failed to read block + Ðе удалоÑÑŒ прочитать блок + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Плата (в PIV / kB) Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ðº транзакциÑм, которые вы отправлÑете (по умолчанию: %s) + + + Force safe mode (default: %u) + Режим принудительной защиты (по умолчанию: %u) + + + Generate coins (default: %u) + Создание монет (по умолчанию: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Сколько блоков проверÑетÑÑ Ð¿Ñ€Ð¸ запуÑке (по умолчанию: %u, 0 = all) + + + If <category> is not supplied, output all debugging information. + ЕÑли <category>не предоÑтавлÑетÑÑ, выводит вÑÑŽ информацию об отладке. + + + Importing... + Импорт ... + + + Imports blocks from external blk000??.dat file + Импортирует блоки из внешнего файла blk000 ?? .dat + + + Include IP addresses in debug output (default: %u) + Включить IP-адреÑа в отладочном выходе (по умолчанию: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + Ðеправильный или не обнаруженный блок генезиÑа. Ðеверный каталог данных Ð´Ð»Ñ Ñети? + + + Information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + + + Initialization sanity check failed. PIVX Core is shutting down. + Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ работоÑпоÑобноÑти не удалаÑÑŒ. PIVX Core отключаетÑÑ. + + + Insufficient funds + ÐедоÑтаточно ÑредÑтв. + + + Insufficient funds. + ÐедоÑтаточно ÑредÑтв. + + + Invalid -onion address or hostname: '%s' + ÐедопуÑтимый -онионный Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ Ð¸Ð¼Ñ Ñ…Ð¾Ñта: '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñумма Ð´Ð»Ñ -maxtxfee =<amount>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñумма Ð´Ð»Ñ -minrelaytxfee<amount>: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñумма Ð´Ð»Ñ -mintxfee =<amount>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Invalid amount for -paytxfee=<amount>: '%s' (должен быть не менее%s) + + + Invalid amount for -paytxfee=<amount>: '%s' + ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñумма Ð´Ð»Ñ -paytxfee =<amount>: '%s' + + + Invalid amount for -reservebalance=<amount> + ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñумма Ð´Ð»Ñ -reservebalance =<amount> + + + Invalid amount + ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñумма + + + Invalid masternodeprivkey. Please see documenation. + ÐедопуÑтимый Ñекретный ключ. См. Документацию. + + + Invalid netmask specified in -whitelist: '%s' + ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ ÑÐµÑ‚ÐµÐ²Ð°Ñ Ð¼Ð°Ñка, ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð² -whitelist: '%s' + + + Invalid port detected in masternode.conf + Ðеверный порт обнаружен в файле masternode.conf + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Процент автоматичеÑки отчеканенного Zerocoin (1-100, по умолчанию: %u) + + + Recalculating PIV supply... + ПерераÑчет Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ PIV... + + + Recalculating minted ZPIV... + ПерераÑчет отчеканенных ZPIV... + + + Recalculating spent ZPIV... + ПерераÑчет потраченных ZPIV... + + + Reindex the PIV and zPIV money supply statistics + Reindex ÑтатиÑтика денежной маÑÑÑ‹ PIV и zPIV + + + Reindexing zerocoin database... + РеиндекÑÐ¸Ñ€ÑƒÑŽÑ‰Ð°Ñ Ð±Ð°Ð·Ð° данных нулевого цикла ... + + + Reindexing zerocoin failed + Повторный обмен зерокоинта не удалÑÑ + + + Selected coins value is less than payment target + Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ ÑтоиÐ¼Ð¾ÑÑ‚ÑŒ монет меньше цели платежа + + + Support the zerocoin light node protocol (default: %u) + Поддержка лайт узла zerocoin протокола (по умолчанию: %u) + + + SwiftX options: + Параметры SwiftX: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + Это Ð¿Ñ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñборки - иÑпользуйте на Ñвой Ñтрах и риÑк - не иÑпользуйте Ð´Ð»Ñ Ñтавок или коммерчеÑких приложений! + + + mints deleted + + удалены монеты + + + + mints updated, + монеты обновлены, + + + unconfirmed transactions removed + + удалены неподтвержденные транзакции + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Отключите вÑе ÑпецифичеÑкие функции PIVX (Masternodes, Zerocoin, SwiftX, Бюджетирование) (0-1, по умолчанию: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Включить SwiftX, показать Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… транзакций (bool, default: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Ошибка: Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð±Ñ‹Ð»Ð° отклонена! Это может произойти, еÑли некоторые из монет в вашем кошельке уже были потрачены, например, еÑли вы иÑпользовали копию кошелька. Dat и монеты были потрачены в копии, но не отмечены как потраченные здеÑÑŒ. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + Ошибка. Ð”Ð»Ñ Ñтой транзакции требуетÑÑ ÐºÐ¾Ð¼Ð¸ÑÑÐ¸Ñ Ð·Ð° транзакцию не менее %s из-за ее количеÑтва, ÑложноÑти или иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ´Ð°Ð²Ð½Ð¾ полученных ÑредÑтв! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + Ошибка: обнаружен неподдерживаемый аргумент -checklevel. Контрольный уровень должен быть 4-го уровнÑ. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + ВыполнÑÑ‚ÑŒ команду, когда лучший блок изменÑетÑÑ Ð¸ его размер превышает (%s в cmd заменÑетÑÑ Ð±Ð»Ð¾Ñ‡Ð½Ñ‹Ð¼ хешем, %d Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð¾Ð¼ блока) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Ðе удалоÑÑŒ найти монету, уÑтановленную Ñреди удерживаемых монет Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ñ‹Ð¼ количеÑтвом раÑходов + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + Ð’ редких ÑлучаÑÑ… трата Ñ 7 монетами превышает наш макÑимально допуÑтимый размер транзакции, пожалуйÑта, попробуйте потратить, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ 6 или менее монет + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Предпочтительный номинал Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки чеканившегоÑÑ Zerocoin (1/5/10/50/100/500/1000/5000), 0 без предпочтений. default: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Укажите ÑобÑтвенный путь резервного копированиÑ, чтобы добавить копию любой автоматичеÑкой резервной копии zPIV. ЕÑли задано как dir, ÐºÐ°Ð¶Ð´Ð°Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€ÑƒÐµÑ‚ файл Ñ Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ¾Ð¹ времени. ЕÑли он уÑтановлен как файл, он будет перепиÑывать в Ñтот файл каждую резервную копию. ЕÑли также уÑтановлен резервный путь, произойдет 4 резервных копии + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Укажите ÑобÑтвенный путь резервного копированиÑ, чтобы добавить копию любой резервной копии кошелька. ЕÑли задано как dir, ÐºÐ°Ð¶Ð´Ð°Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€ÑƒÐµÑ‚ файл Ñ Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ¾Ð¹ времени. ЕÑли он уÑтановлен как файл, он будет перепиÑывать в Ñтот файл каждую резервную копию. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftX требует ввода Ñ Ð½Ðµ менее чем 6 подтверждениÑми, вам может потребоватьÑÑ Ð½ÐµÑколько минут и повторите попытку. + + + <category> can be: + <category> возможно: + + + Attempt to force blockchain corruption recovery + Попытка принудительного воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ°Ð´Ñ‹ + + + Cannot create public spend input + Ðевозможно Ñоздать вход публичных раÑходов + + + CoinSpend: Accumulator witness does not verify + CoinSpend: Свидетель ÐккумулÑтора не проверÑет + + + Display the stake modifier calculations in the debug.log file. + Отображение раÑчетов модификатора кола в файле debug.log. + + + Display verbose coin stake messages in the debug.log file. + Отображать подробные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ Ð¼Ð¾Ð½ÐµÑ‚Ð°Ð¼Ð¸ в файле debug.log. + + + Enable publish hash block in <address> + Включить публикацию хеш-блока в <address> + + + Enable publish hash transaction in <address> + Включить публикацию хеш-транзакции в <address> + + + Enable publish raw block in <address> + Включить публикацию необработанного блока в<address> + + + Enable publish raw transaction in <address> + Включить публикацию необработанных транзакций в <address> + + + Enable staking functionality (0-1, default: %u) + Включить функцию разбивки (0-1, по умолчанию: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Ошибка: произошла Ñ„Ð°Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°, подробнее Ñм. Debug.log. + + + Error: No valid utxo! + Ошибка: нет дейÑтвительного utxo! + + + Failed to create mint + Ðе удалоÑÑŒ Ñоздать монетный двор + + + Failed to find Zerocoins in wallet.dat + Ðе удалоÑÑŒ найти Zerocoins в файле wallet.dat + + + Failed to parse public spend + Ðе удалоÑÑŒ разобрать публичные раÑходы + + + Failed to select a zerocoin + Ðе удалоÑÑŒ выбрать зерокоин + + + Failed to wipe zerocoinDB + Ðе удалоÑÑŒ вытереть zerocoinDB + + + Failed to write coin serial number into wallet + Ðе удалоÑÑŒ запиÑать Ñерийный номер монеты в кошелек + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Ðепрерывные <n> транзакции в памÑти (по умолчанию: %u) + + + Limit size of signature cache to <n> entries (default: %u) + Ограничить размер кÑша подпиÑи <n> Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñей (по умолчанию: %u) + + + Line: %d + ЛиниÑ: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Слушайте Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ JSON-RPC <port> (по умолчанию: %u или testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Слушайте Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ <port>(по умолчанию: %u или testnet: %u) + + + Loading addresses... + Загрузка адреÑов ... + + + Loading block index... + ЗагружаетÑÑ Ð¸Ð½Ð´ÐµÐºÑ Ð±Ð»Ð¾ÐºÐ° ... + + + Loading budget cache... + Загрузка кÑша бюджета ... + + + Loading masternode cache... + загрузка оперативной памÑти маÑтернодов + + + Loading masternode payment cache... + Загрузка кÑша платежей в мазну ... + + + Loading sporks... + Загрузка ... + + + Loading wallet... (%3.2f %%) + Загрузка кошелька ... (%3.2f %%) + + + Loading wallet... + Загрузка кошелька ... + + + Location of the auth cookie (default: data dir) + РаÑположение файла cookie auth (по умолчанию: data dir) + + + Lock masternodes from masternode configuration file (default: %u) + Блокировка masternodes из файла конфигурации masternode (по умолчанию: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Lookup (): Invalid -proxy Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ Ð¸Ð¼Ñ Ñ…Ð¾Ñта: '%s' + + + Maintain at most <n> connections to peers (default: %u) + Поддерживать большинÑтво <n> Ñоединений Ñо ÑверÑтниками (по умолчанию: %u) + + + Masternode options: + Параметры Masternode: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + МакÑимальный буфер приема Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑоединениÑ<n>* 1000 байтов (по умолчанию: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + МакÑимальный буфер отправки Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ <n>* 1000 байтов (по умолчанию: %u) + + + Mint did not make it into blockchain + чеканка не превратила его в блокчейн + + + Need to specify a port with -whitebind: '%s' + Ðеобходимо указать порт Ñ -whitebind: '%s' + + + Node relay options: + Варианты реле узла: + + + Not enough file descriptors available. + ÐедоÑтаточно доÑтупных деÑкрипторов файлов. + + + Number of automatic wallet backups (default: 10) + КоличеÑтво резервных копий автоматичеÑкого кошелька (по умолчанию: 10) + + + Number of custom location backups to retain (default: %d) + КоличеÑтво резервных копий пользовательÑкого меÑÑ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ (по умолчанию: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Учитывать вÑтроенные контрольные точки Ñ Ð¸Ñпользованием цепочки блоков (по умолчанию: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Только подключение к узлам в Ñети <net> (ipv4, ipv6 или лук) + + + Options: + Опции: + + + Password for JSON-RPC connections + Пароль Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ð¹ JSON-RPC + + + Unable to find transaction containing mint %s + Ðе удалоÑÑŒ найти транзакцию, Ñодержащую чеканку %s + + + Unable to find transaction containing mint, txHash: %s + Ðе удалоÑÑŒ найти транзакцию, Ñодержащую чеканку, txHash: %s + + + Use block spam filter (default: %u) + ИÑпользовать блок Ñпам-фильтр (по умолчанию: %u) + + + could not get lock on cs_spendcache + не удалоÑÑŒ получить блокировку на cs_spendcache + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid (): Invalid -proxy Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ Ð¸Ð¼Ñ Ñ…Ð¾Ñта: '%s' + + + Preparing for resync... + Подготовка к повторной Ñинхронизации ... + + + Need destination or change address because change is not exact + Ðеобходимо меÑто Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ изменение адреÑа, потому что изменение не ÑвлÑетÑÑ Ñ‚Ð¾Ñ‡Ð½Ñ‹Ð¼ + + + Prepend debug output with timestamp (default: %u) + Подготовить вывод отладки Ñ Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ¾Ð¹ времени (по умолчанию: %u) + + + Print version and exit + ВерÑÐ¸Ñ Ð´Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ и выхода + + + Pubcoin not found in mint tx + Pubcoin не найден в чеканке tx + + + RPC server options: + Параметры Ñервера RPC: + + + Randomly drop 1 of every <n> network messages + Случайно отбраÑывайте 1 из вÑех <n> Ñетевых Ñообщений + + + Randomly fuzz 1 of every <n> network messages + Случайно fuzz 1 каждого <n> Ñетевые ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ + + + Rebuild block chain index from current blk000??.dat files + ПереÑтроить Ð¸Ð½Ð´ÐµÐºÑ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ¸ блоков из текущих файлов blk000 ?? .dat + + + Receive and display P2P network alerts (default: %u) + Получение и отображение оповещений Ñети P2P (по умолчанию: %u) + + + Reindex the accumulator database + Reindex база данных аккумулÑтора + + + Relay and mine data carrier transactions (default: %u) + Операции передачи данных реле и мины (по умолчанию: %u) + + + Relay non-P2SH multisig (default: %u) + Реле не-P2SH multisig (по умолчанию: %u) + + + Rescan the block chain for missing wallet transactions + Повторите Ñканирование цепочки блоков Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑ‰ÐµÐ½Ð½Ñ‹Ñ… транзакций в кошельке. + + + Rescanning... + Повторное Ñканирование ... + + + ResetMintZerocoin finished: + ResetMintZerocoin завершен: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin завершен: + + + Run a thread to flush wallet periodically (default: %u) + ЗапуÑтите поток, чтобы периодичеÑки очищать кошелек (по умолчанию: %u) + + + Run in the background as a daemon and accept commands + ЗапуÑкать в фоновом режиме в качеÑтве демона и принимать команды + + + Send transactions as zero-fee transactions if possible (default: %u) + ОтправлÑÑ‚ÑŒ транзакции как транзакции Ñ Ð½ÑƒÐ»ÐµÐ²Ð¾Ð¹ оплатой, еÑли Ñто возможно (по умолчанию: %u) + + + Session timed out. + Ð’Ñ€ÐµÐ¼Ñ ÑеанÑа иÑтекло. + + + Set database cache size in megabytes (%d to %d, default: %d) + УÑтановите размер кеша базы данных в мегабайтах (от %d до %d, по умолчанию: %d) + + + Set external address:port to get to this masternode (example: %s) + Задайте внешний адреÑ: порт, чтобы перейти к Ñтому masternode (пример: %s) + + + Set key pool size to <n> (default: %u) + УÑтановите размер пула ключей<n>(по умолчанию: %u) + + + Set maximum block size in bytes (default: %d) + УÑтановите макÑимальный размер блока в байтах (по умолчанию: %d) + + + Set minimum block size in bytes (default: %u) + УÑтановите минимальный размер блока в байтах (по умолчанию: %u) + + + Set the Maximum reorg depth (default: %u) + УÑтановите макÑимальную глубину реорганизации (по умолчанию: %u) + + + Set the masternode private key + Задайте личный ключ маÑштаба + + + Set the number of threads to service RPC calls (default: %d) + Задайте количеÑтво потоков Ð´Ð»Ñ Ð¾Ð±ÑÐ»ÑƒÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð²Ñ‹Ð·Ð¾Ð²Ð¾Ð² RPC (по умолчанию: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + УÑтанавливает флаг DB_PRIVATE в Ñреде db кошелька (по умолчанию: %u) + + + Show all debugging options (usage: --help -help-debug) + Показать вÑе параметры отладки (иÑпользование: --help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Сжать файл debug.log при запуÑке клиента (по умолчанию: 1, когда нет -debug) + + + Signing timed out. + ПодпиÑание закончилоÑÑŒ. + + + Signing transaction failed + Ðе удалоÑÑŒ подпиÑать транзакцию + + + Specify configuration file (default: %s) + Укажите конфигурационный файл (по умолчанию: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Укажите Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð² миллиÑекундах (минимум: 1, по умолчанию: %d) + + + Specify data directory + Укажите каталог данных + + + Specify masternode configuration file (default: %s) + Укажите конфигурационный файл (по умолчанию: %s) + + + Specify pid file (default: %s) + Укажите файл pid (по умолчанию: %s) + + + Specify wallet file (within data directory) + Укажите файл кошелька (в каталоге данных) + + + Specify your own public address + Укажите Ñвой ÑобÑтвенный общедоÑтупный Ð°Ð´Ñ€ÐµÑ + + + Spend Valid + Проводить проверку + + + Spend unconfirmed change when sending transactions (default: %u) + Проводить неподтвержденные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ отправке транзакций (по умолчанию: %u) + + + Staking options: + Варианты Ñтавок: + + + Stop running after importing blocks from disk (default: %u) + Прекратить работу поÑле импорта блоков Ñ Ð´Ð¸Ñка (по умолчанию: %u) + + + Synchronization failed + Ошибка Ñинхронизации + + + Synchronization finished + Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð° + + + Synchronization pending... + ОжидаетÑÑ ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ ... + + + Synchronizing budgets... + Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð±ÑŽÐ´Ð¶ÐµÑ‚Ð¾Ð² ... + + + Synchronizing masternode winners... + Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¼Ð°Ñтернод победителей ... + + + Synchronizing masternodes... + Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¼Ð°Ñтернод ... + + + Synchronizing sporks... + Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñпорков ... + + + Syncing zPIV wallet... + Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ zPIV кошелька ... + + + The coin spend has been used + РаÑходы на монеты иÑпользовалиÑÑŒ + + + The transaction did not verify + Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð½Ðµ подтверждена + + + This help message + Это Ñправочное Ñообщение + + + This is experimental software. + Это ÑкÑпериментальное программное обеÑпечение. + + + This is intended for regression testing tools and app development. + Это предназначено Ð´Ð»Ñ Ð¸Ð½Ñтрументов теÑÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€ÐµÐ³Ñ€ÐµÑÑии и разработки приложений. + + + Threshold for disconnecting misbehaving peers (default: %u) + Порог Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¾ÑˆÐ¸Ð±Ð¾Ñ‡Ð½Ñ‹Ñ… ÑверÑтников (по умолчанию: %u) + + + Too many spends needed + Слишком много раÑходов + + + Tor control port password (default: empty) + Пароль управлÑющего порта Tor (по умолчанию: пуÑтой) + + + Tor control port to use if onion listening enabled (default: %s) + Tor Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ включенном проÑлушивании лука (по умолчанию: %s) + + + Transaction Created + Создана Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ + + + Transaction Mint Started + Чеканка началаÑÑŒ + + + Transaction amount too small + Слишком Ð¼Ð°Ð»ÐµÐ½ÑŒÐºÐ°Ñ Ñумма транзакции + + + Transaction amounts must be positive + Суммы транзакций должны быть положительными + + + Transaction too large for fee policy + Слишком Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ тарифа + + + Transaction too large + Слишком Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ + + + Trying to spend an already spent serial #, try again. + ПытаÑÑÑŒ потратить уже потраченный Ñерийный номер #, попробуйте еще раз. + + + Unable to bind to %s on this computer (bind returned error %s) + Ðевозможно ÑвÑзать %s на Ñтом компьютере (ÑвÑзать возвращенную ошибку %s) + + + Unable to generate initial key + Ðевозможно Ñгенерировать первоначальный ключ + + + Unable to sign spork message, wrong key? + Ðе удалоÑÑŒ подпиÑать Ñообщение , неправильный ключ? + + + Unable to start HTTP server. See debug log for details. + Ðе удалоÑÑŒ запуÑтить HTTP-Ñервер. Подробнее Ñм. Журнал отладки. + + + Unknown network specified in -onlynet: '%s' + ÐеизвеÑÑ‚Ð½Ð°Ñ Ñеть, ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð² -onlynet: '%s' + + + Upgrade wallet to latest format + Обновление кошелька до поÑледнего формата + + + Use UPnP to map the listening port (default: %u) + ИÑпользуйте UPnP Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ€Ñ‚Ð° проÑÐ»ÑƒÑˆÐ¸Ð²Ð°Ð½Ð¸Ñ (по умолчанию: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + ИÑпользуйте UPnP Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ€Ñ‚Ð° проÑÐ»ÑƒÑˆÐ¸Ð²Ð°Ð½Ð¸Ñ (по умолчанию: 1 при проÑлушивании) + + + Use a custom max chain reorganization depth (default: %u) + ИÑпользуйте наÑтраиваемую макÑимальную глубину реорганизации цепочки (по умолчанию: %u) + + + Use the test network + ИÑпользовать теÑтовую Ñеть + + + User Agent comment (%s) contains unsafe characters. + Комментарий агента Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (%s) Ñодержит небезопаÑные Ñимволы. + + + Username for JSON-RPC connections + Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ñоединений JSON-RPC + + + Value is below the smallest available denomination (= 1) of zPIV + Значение ниже наименьшего доÑтупного номинала (= 1) zPiv + + + Verifying blocks... + Проверка блоков ... + + + Verifying wallet... + Проверка кошелька ... + + + Wallet %s resides outside data directory %s + Кошелек %s находитÑÑ Ð·Ð° пределами каталога данных %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + Кошелек необходимо перепиÑать: перезапуÑтите PIVX Core, чтобы завершить + + + Wallet options: + Параметры кошелька: + + + Wallet window title + Ðазвание окна кошелька + + + Warning + Предупреждение + + + Warning: This version is obsolete, upgrade required! + Внимание: Ñта верÑÐ¸Ñ ÑƒÑтарела, требуетÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ðµ! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Предупреждение: Ðеподдерживаемый аргумент -benchmark игнорируетÑÑ, иÑпользуйте -debug = bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Предупреждение. Ðеподдерживаемый аргумент -debugnet игнорируетÑÑ, иÑпользуйте -debug = net. + + + You don't have enough Zerocoins in your wallet + У Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтаточно Zerocoins в вашем кошельке + + + You need to rebuild the database using -reindex to change -txindex + Вам нужно переÑтроить базу данных Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ -reindex Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ -txindex + + + Zapping all transactions from wallet... + Замена вÑех транзакций из кошелька ... + + + ZeroMQ notification options: + Опции ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ ZeroMQ: + + + Zerocoin options: + Варианты Zerocoin: + + + on startup + на Ñтарте + + + wallet.dat corrupt, salvage failed + wallet.dat коррумпирован, Ñбор не выполнен + + + + send + + Form + Вид + + + Send + Отправить + + + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + + + PushButton + Ðажать кнопку + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_sk.ts b/src/qt/locale/pivx_sk.ts new file mode 100644 index 0000000..2a96404 --- /dev/null +++ b/src/qt/locale/pivx_sk.ts @@ -0,0 +1,961 @@ + + + AddNewAddressDialog + + Address + Adresa + + + + AddNewContactDialog + + TextLabel + TextLabel + + + + AddressBookPage + + Right-click to edit address or label + Pravým tlaÄidlom myÅ¡i upravte adresu alebo Å¡títok + + + Create a new address + VytvoriÅ¥ novú adresu + + + &New + Nový + + + Copy the currently selected address to the system clipboard + SkopírovaÅ¥ oznaÄenú adresu do schránky + + + &Copy + KopírovaÅ¥ + + + Delete the currently selected address from the list + VymazaÅ¥ oznaÄenú adresu zo zoznamu + + + &Delete + VymazaÅ¥ + + + Export the data in the current tab to a file + ExportovaÅ¥ údaje na aktuálnej karte do súboru + + + &Export + ExportovaÅ¥ + + + C&lose + ZatvoriÅ¥ + + + Choose the address to send coins to + Vyberte adresu, na ktorú chcete odoslaÅ¥ mince + + + Choose the address to receive coins with + Vyberte adresu, na ktorej chcete mince prijaÅ¥ + + + C&hoose + VybraÅ¥ + + + Sending addresses + Odosielacia adresa + + + Receiving addresses + Prijímacia adresa + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Toto sú vaÅ¡e PIVX adresy na odosielanie platieb. Pred odoslaním vždy skontrolujte výšku a adresu prijemcu. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Toto sú vaÅ¡e PIVX adresy na prijímanie platieb. Pre každú transakciu sa odporúÄa použiÅ¥ novú prijímaciu adresu. + + + &Copy Address + SkopírovaÅ¥ adresu + + + Copy &Label + SkopírovaÅ¥ Å¡títok + + + &Edit + EditovaÅ¥ + + + Export Address List + ExportovaÅ¥ zoznamu adries + + + Comma separated file (*.csv) + Súbor oddelený Äiarkami (*.csv) + + + Exporting Failed + Export zlyhal + + + There was an error trying to save the address list to %1. Please try again. + Pri pokuse o uloženie zoznamu adries na %1 sa vyskytla chyba. Prosím skúste znova. + + + + AddressLabelRow + + + AddressTableModel + + Label + Å títok + + + Address + Adresa + + + Date + Dátum + + + (no label) + (žiaden Å¡títok) + + + + AddressesWidget + + TextLabel + TextLabel + + + + AskPassphraseDialog + + Passphrase Dialog + Okno prístupovej frázy + + + TextLabel + TextLabel + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Zadajte novú prístupovú frázu do peňaženky. <br/> Použite prístupovú frázu <b>, ktorá má desaÅ¥ alebo viac náhodných znakov </ b> alebo <b> osem alebo viac slov </ b>. + + + Encrypt wallet + Å ifrovaÅ¥ peňaženku + + + This operation needs your wallet passphrase to unlock the wallet. + Táto operácia potrebuje prístupovú frázu peňaženky na odomknutie peňaženky. + + + Unlock wallet + Odomknúť peňaženku + + + This operation needs your wallet passphrase to decrypt the wallet. + Táto operácia potrebuje prístupovú frázu peňaženky na deÅ¡ifrovanie peňaženky. + + + Decrypt wallet + DeÅ¡ifrovaÅ¥ peňaženku + + + Change passphrase + ZmeniÅ¥ prístupovú frázu + + + Enter the old and new passphrase to the wallet. + Zadajte starú a novú prístupovú frázu do peňaženky. + + + Confirm wallet encryption + PotvrÄte Å¡ifrovanie peňaženky + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX sa teraz ukonÄí, aby dokonÄil proces Å¡ifrovania. Nezabudnite, že Å¡ifrovanie peňaženky nemôže úplne ochrániÅ¥ vaÅ¡e PIV pred odcudzením Å¡kodlivým softvérom, ktorý infikuje váš poÄítaÄ. + + + Are you sure you wish to encrypt your wallet? + Naozaj chcete zaÅ¡ifrovaÅ¥ svoju peňaženku? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Upozornenie: Ak zaÅ¡ifrujete svoju peňaženku a stratíte svoju prístupovú frázu, <b> PRÃDETE O VÅ ETKY PIV </ b>! + + + Wallet encrypted + Peňaženka zaÅ¡ifrovaná + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + DÔLEŽITÉ: VÅ¡etky predchádzajúce zálohy súboru peňaženky, by mali byÅ¥ nahradené novo vytvoreným Å¡ifrovaným súborom peňaženky. Z bezpeÄnostných dôvodov sa predchádzajúce zálohy súboru nezaÅ¡ifrovanej peňaženky stanú nepotrebné, akonáhle zaÄnete používaÅ¥ novú zaÅ¡ifrovanú peňaženku. + + + Wallet encryption failed + Å ifrovanie peňaženky zlyhalo + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Å ifrovanie peňaženky zlyhalo kvôli internej chybe. VaÅ¡a peňaženka nebola zaÅ¡ifrovaná. + + + The supplied passphrases do not match. + Zadané prístupové frázy sa nezhodujú. + + + Wallet unlock failed + Odomknutie peňaženky zlyhalo + + + The passphrase entered for the wallet decryption was incorrect. + Zadaná prístupová fráza pre deÅ¡ifrovanie peňaženky bola nesprávna. + + + Wallet decryption failed + DeÅ¡ifrovanie peňaženky zlyhalo + + + Wallet passphrase was successfully changed. + Prístupová fráza pre peňaženku bola úspeÅ¡ne zmenená. + + + Warning: The Caps Lock key is on! + Upozornenie: TlaÄidlo Caps Lock je zapnuté! + + + + BanTableModel + + + BlockExplorer + + Blockchain Explorer + Blockchain prehliadaÄ + + + Address / Block / Transaction + Adresa / Blok / Transakcia + + + Search + HľadaÅ¥ + + + TextLabel + TextLabel + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Nie vÅ¡etky transakcie sa zobrazia. Ak chcete zobraziÅ¥ vÅ¡etky transakcie, musíte v konfiguraÄnom súbore (pivx.conf) nastaviÅ¥ txindex = 1. + + + + CSRow + + + ClientModel + + Network Alert + Upozornenie siete + + + + CoinControlDialog + + Quantity: + Množstvo: + + + Bytes: + Bytov: + + + Fee: + Poplatok: + + + Change: + Zmena: + + + Amount + Suma + + + Date + Dátum + + + Confirmations + Potvrdenia + + + Confirmed + Potvrdené + + + Copy address + SkopírovaÅ¥ adresu + + + Copy label + SkopírovaÅ¥ Å¡títok + + + Copy amount + SkopírovaÅ¥ sumu + + + Copy transaction ID + SkopírovaÅ¥ ID transakcie + + + (no label) + (žiaden Å¡títok) + + + + CoinControlPivWidget + + TextLabel + TextLabel + + + Quantity: + Množstvo: + + + Fee: + Poplatok: + + + Amount + Suma + + + Label + Å títok + + + Address + Adresa + + + Date + Dátum + + + Confirmations + Potvrdenia + + + Bytes: + Bytov: + + + Change: + Zmena: + + + + ColdStakingWidget + + TextLabel + TextLabel + + + + ContactDropdownRow + + + DashboardWidget + + Warning + Varovanie + + + TextLabel + TextLabel + + + + DefaultDialog + + + DenomGenerationDialog + + + EditAddressDialog + + + ExpandableButton + + + FreespaceChecker + + + GovernancePage + + + HelpMessageDialog + + PIVX Core + PIVX Core + + + + Intro + + PIVX Core + PIVX Core + + + Error + Chyba + + + + LoadingDialog + + TextLabel + TextLabel + + + + LockUnlock + + + MNRow + + + MasterNodeWizardDialog + + Address + Adresa + + + + MasterNodesWidget + + TextLabel + TextLabel + + + + MnInfoDialog + + + MyAddressRow + + + NavMenuWidget + + + OpenURIDialog + + TextLabel + TextLabel + + + + OptionButton + + TextLabel + TextLabel + + + + OptionsDialog + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + Peňaženka + + + Node + Uzol + + + &Show / Hide + ZobraziÅ¥ / SkryÅ¥ + + + Show or hide the main Window + ZobraziÅ¥ alebo skryÅ¥ hlavné okno + + + E&xit + Koniec + + + Quit application + UkonÄiÅ¥ aplikáciu + + + PIVX Core client + PIVX Core klient + + + Error + Chyba + + + Warning + Varovanie + + + Information + Informácia + + + Sent MultiSend transaction + PoslaÅ¥ MultiSend transakciu + + + Sent transaction + Odoslaná transakcia + + + Incoming transaction + Prichádzajúca transakcia + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Dátum: %1 +Suma: %2 +Typ: %3 +Adresa: %4 + + + + + PWidget + + + PaymentServer + + + PeerTableModel + + + PrivacyWidget + + TextLabel + TextLabel + + + + ProposalFrame + + + QObject + + Amount + Suma + + + PIVX Core + PIVX Core + + + + RPCConsole + + &Information + Informácie + + + + ReceiveDialog + + + ReceiveWidget + + TextLabel + TextLabel + + + + RecentRequestsTableModel + + Date + Dátum + + + Label + Å títok + + + Address + Adresa + + + Amount + Suma + + + (no label) + (žiaden Å¡títok) + + + + RequestDialog + + Amount + Suma + + + TextLabel + TextLabel + + + Label + Å títok + + + Error + Chyba + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + + SendMultiRow + + TextLabel + TextLabel + + + + SendWidget + + Amount + Suma + + + + SettingsBackupWallet + + TextLabel + TextLabel + + + + SettingsBitToolWidget + + TextLabel + TextLabel + + + Import Address + ImportovaÅ¥ adresu: + + + The entered passphrase is invalid. + Zadaná prístupová fráza je neplatná. + + + Allowed: 0-9,a-z,A-Z, + Povolené: 0-9, a-z, A-Z, + + + The entered address is invalid. + Zadaná adresa je neplatná. + + + Please check the address and try again. + Skontrolujte adresu a skúste to znova. + + + The entered address does not refer to a key. + Zadaná adresa neodkazuje na kľúÄ. + + + Wallet unlock was cancelled. + Odomknutie peňaženky bolo zruÅ¡ené. + + + Private key for the entered address is not available. + Súkromný kÄ¾ÃºÄ pre zadanú adresu nie je k dispozícii. + + + Failed to decrypt. + DeÅ¡ifrovanie zlyhalo. + + + Please check the key and passphrase and try again. + Skontrolujte, prosím, kÄ¾ÃºÄ a prístupovú frázu a skúste to znova. + + + Data Not Valid. + Neplatné dáta. + + + Please try again. + Prosím skúste znova. + + + Please wait while key is imported + PoÄkajte, kým sa importuje kÄ¾ÃºÄ + + + + SettingsConsoleWidget + + TextLabel + TextLabel + + + + SettingsDisplayOptionsWidget + + TextLabel + TextLabel + + + + SettingsFaqWidget + + TextLabel + TextLabel + + + + SettingsInformationWidget + + TextLabel + TextLabel + + + Information + Informácia + + + + SettingsMainOptionsWidget + + TextLabel + TextLabel + + + + SettingsMultisendDialog + + TextLabel + TextLabel + + + + SettingsMultisendWidget + + TextLabel + TextLabel + + + Active + Aktívny + + + + SettingsSignMessageWidgets + + TextLabel + TextLabel + + + The entered address is invalid. + Zadaná adresa je neplatná. + + + Please check the address and try again. + Skontrolujte adresu a skúste to znova. + + + The entered address does not refer to a key. + Zadaná adresa neodkazuje na kľúÄ. + + + Wallet unlock was cancelled. + Odomknutie peňaženky bolo zruÅ¡ené. + + + Private key for the entered address is not available. + Súkromný kÄ¾ÃºÄ pre zadanú adresu nie je k dispozícii. + + + + SettingsWalletOptionsWidget + + TextLabel + TextLabel + + + Wallet + Peňaženka + + + + SettingsWalletRepairWidget + + TextLabel + TextLabel + + + + SettingsWidget + + TextLabel + TextLabel + + + Wallet + Peňaženka + + + Information + Informácia + + + + ShutdownWindow + + + SnackBar + + + Splash + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + + TooltipMenu + + + TopBar + + %1 and %2 + %1 a %2 + + + + TrafficGraphWidget + + + TransactionDesc + + Date + Dátum + + + Amount + Suma + + + + TransactionTableModel + + Date + Dátum + + + Address + Adresa + + + + TxDetailDialog + + Fee: + Poplatok: + + + TextLabel + TextLabel + + + + TxRow + + + WalletModel + + + WalletPasswordDialog + + TextLabel + TextLabel + + + + WelcomeContentWidget + + + ZPivControlDialog + + Quantity: + Množstvo: + + + + pivx-core + + Error + Chyba + + + Information + Informácia + + + Warning + Varovanie + + + + send + + TextLabel + TextLabel + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_sv.ts b/src/qt/locale/pivx_sv.ts new file mode 100644 index 0000000..8b83756 --- /dev/null +++ b/src/qt/locale/pivx_sv.ts @@ -0,0 +1,5538 @@ + + + AddNewAddressDialog + + Dialog + Dialog + + + My Address + Min Adress + + + Address + Adress + + + PushButton + Tryck pÃ¥ knappen + + + CANCEL + cancel + + + OK + ok + + + + AddNewContactDialog + + Dialog + Dialog + + + TextLabel + text etikett + + + CANCEL + cancel + + + OK + ok + + + Edit Contact + ändra kontakt + + + Set a label for the selected address + Lägg till rubrik för den utvalda adressen + + + Enter a name for the address (e.g Exchange) + Lägg till ett namn till adressen (exempel: börs) + + + SAVE + spara + + + Edit label for the selected address: +%1 + Redigera rubriken till den specifierade adressen: +%1 + + + + AddressBookPage + + Right-click to edit address or label + Höger klicka för att redigera adress eller etikett + + + Create a new address + Skapa en ny adress + + + &New + &Ny + + + Copy the currently selected address to the system clipboard + Kopiera den markerade adressen till systemets urklipp + + + &Copy + &Kopiera + + + Delete the currently selected address from the list + Radera den valda adressen frÃ¥n listan + + + &Delete + &Radera + + + Export the data in the current tab to a file + Exportera data in den nuvarande fliken till en fil + + + &Export + &Exportera + + + C&lose + Stäng + + + Choose the address to send coins to + Välj adress att skicka mynt till + + + Choose the address to receive coins with + Välj adress att ta emot mynt med + + + C&hoose + Välj + + + Sending addresses + Skicka adresser + + + Receiving addresses + Mottagar adresser + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Det här är dina PIVX adresser för att skicka betalningar. Kontrollera alltid summan och mottagaradressen före du sänder mynt. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Det här är dina PIVX adresser för att ta emot betalningar. Det är rekomenderat att använda en ny mottagaradress för varje transaktion. + + + &Copy Address + &Kopiera Adress + + + Copy &Label + Kopiera & Ettiket + + + &Edit + &Redigera + + + Export Address List + Exportera Adress Lista + + + Comma separated file (*.csv) + Kommaseparerad fil (*.csv) + + + Exporting Failed + Exportering Misslyckades + + + There was an error trying to save the address list to %1. Please try again. + Det uppstod ett fel när vi försökte spara adresslistan till %1. Var snäll och försök pÃ¥ nytt. + + + + AddressLabelRow + + Form + Formulär + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + AddressTableModel + + Label + Etikett + + + Address + Adress + + + Date + Datum + + + (no label) + (Ingen etikett) + + + + AddressesWidget + + Form + Formulär + + + Send + Skicka + + + TextLabel + text etikett + + + No active Master Node yet + Ingen Aktiv Masternode ännu + + + Contact name + Kontakt Namn + + + Enter address + Skriv in Adress + + + OK + ok + + + Contacts + Kontakter + + + You can add a new one in the options menu to the side. + Du kan lägga till en ny pÃ¥ options menyn pÃ¥ sidan + + + No contacts yet + Inga kontakter ännu + + + e.g. John Doe + Till Exempel John Doe + + + Enter a PIVX address + Skriv in en PIVX adress + + + SAVE + spara + + + Invalid Contact Address + Fel Kontakt Adress + + + Cannot store your own address as contact + Kan inte spara den egna adressen som kontakt + + + Address already stored, label: %1 + Adress finns redan lagrad, etikett: %1 + + + New Contact Stored + Nytt kontrakt lagrat + + + Error Storing Contact + Gick inte spara kontakt + + + Contact edited + Kontakt ändrad + + + Contact edit failed + Försök till att ändra kontakt slog fel + + + Delete Contact + ta bort kontakt + + + You are just about to remove the contact: + +%1 + +Are you sure? + Du hÃ¥ller pÃ¥ att ta bort kontakten : + +%1 +Är du säker ? + + + Contact Deleted + Kontakt borttagen + + + Error deleting a contact + Fel när kontakt skulle tas bort + + + Address copied + Adress kopierad + + + + AskPassphraseDialog + + Passphrase Dialog + Lösenfras Dialog + + + TextLabel + text etikett + + + PushButton + Tryck pÃ¥ knappen + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Skriv in den nya lösenfrasen för plÃ¥nboken.<br/>Var vänlig använd en lösenfras bestÃ¥ende av <b>tio eller mer slumpmässiga bokstäver</b>, eller <b>Ã¥tta eller flera ord </b>. + + + Encrypt wallet + Kryptera PlÃ¥nbok + + + This operation needs your wallet passphrase to unlock the wallet. + Den här processen kräver din plÃ¥nboks lösenfras för att lÃ¥sa upp plÃ¥nboken + + + Unlock wallet +for staking + LÃ¥s upp börsen till staking + + + Unlock wallet + lÃ¥s upp plÃ¥nbok + + + This operation needs your wallet passphrase to decrypt the wallet. + Den här processen kräver din plÃ¥nboks lösenfras för att avkryptera plÃ¥nboken + + + Decrypt wallet + Avkryptera plÃ¥nbok + + + Change passphrase + Ändra lösenfras + + + Enter the old and new passphrase to the wallet. + Skriv in den gamla och den nya lösenfrasen för plÃ¥nboken. + + + Confirm wallet encryption + Bekräfta plÃ¥nboks krypering + + + ENCRYPT + ENKRYPTERA + + + CANCEL + cancel + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX kommer att stängas ner nu för att färdigställa kryperingsprocessen. Kom ihÃ¥g att kryptering av din plÃ¥nbok inte kan säkerställa dina PIVs frÃ¥n att bli stulna av skadeprogram som infekterat din dator. + + + Are you sure you wish to encrypt your wallet? + Är du säker pÃ¥ att du vill kryptera din plÃ¥nbok? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Varning: om du krypterar din plÃ¥nbok och tappar bort din lösenfras kommer du <b> FÖRLORA ALLA DINA PIV</b>! + + + Wallet encrypted + PlÃ¥nbok krypterad + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + VIKTIGT: Alla dina tidigare säkerhetskopior du har gjort av plÃ¥nboks filen bör ersättas med den nygenererade, krypterade plÃ¥nboks filen. För säkerhetsskäl, tidigare säkerhetskopior av okrypterade plÃ¥nboks filer kommer bli oanvändbar sÃ¥ fort du börjar använda den nya krypterade plÃ¥nboken. + + + Wallet encryption failed + PlÃ¥nboks kryptering misslyckades + + + OK + ok + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + PlÃ¥nboks kryptering misslyckades pÃ¥ grund av ett internt fel. Din plÃ¥nbok blev inte krypterad. + + + The supplied passphrases do not match. + Den tillhandahÃ¥llna lösenfrasen stämmer inte överens. + + + Wallet unlock failed + PlÃ¥nboks upplÃ¥sning misslyckades + + + The passphrase entered for the wallet decryption was incorrect. + Den givna lösenfrasen för plÃ¥nbokens avkryptering var fel. + + + Wallet decryption failed + plÃ¥nboks dekryptering misslyckades + + + Wallet passphrase was successfully changed. + Ändring av plÃ¥nbokens lösenfras lyckades. + + + Warning: The Caps Lock key is on! + Varning: Caps-Lock tangent är pÃ¥! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + Portad fram tills + + + + BlockExplorer + + Blockchain Explorer + Blockchain Utforskaren + + + Back + Tillbaka + + + Forward + FramÃ¥t + + + Address / Block / Transaction + Adress / Block / Transaktion + + + Search + Sök + + + TextLabel + text etikett + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Alla transaktioner kommer inte visas. För att visa alla transaktioner behöver du sätta txindex=1 i konfigurationsfilen (pivx.conf). + + + + CSRow + + Form + Formulär + + + Savings + Sparande + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Okänd: %5) + + + Network Alert + Nätverks alarm + + + + CoinControlDialog + + Quantity: + Kvantitet: + + + Bytes: + Bytes: + + + Fee: + Avgift: + + + Coin Selection + Mynt Val + + + Dust: + Dust: + + + Change: + Växel: + + + Tree mode + träd mode + + + List mode + list mode + + + (1 locked) + (1 lÃ¥st) + + + Amount + Mängd + + + Transaction Details + Transaktions detaljer + + + PushButton + Tryck pÃ¥ knappen + + + 0.00 PIV + 0.00 PIV + + + 0 + 0 + + + Select all + Markera allt + + + Toggle lock state + Växla mellan lÃ¥s tillstÃ¥nd + + + Received with label + Mottag med etikett + + + Received with address + Mottag med adress + + + After Fee: + Efter avgift: + + + OK + ok + + + Date + Datum + + + Confirmations + Bekräftelser + + + Confirmed + bekräftad + + + Copy address + Kopiera Adress + + + Copy label + Kopiera etikett + + + Copy amount + Kopiera antal + + + Copy transaction ID + Kopiera transaktions ID + + + Lock unspent + LÃ¥s ospenderat + + + Unlock unspent + LÃ¥s upp ospenderat + + + Copy quantity + Kopiera kvantitet + + + Copy fee + Kopiera avgift + + + Copy after fee + Kopiera efter avgift + + + Copy bytes + Kopiera bytes + + + Copy priority + Kopierings prioritet + + + Copy dust + Kopiera dust + + + Copy change + kopiera ändringar + + + Unselect all + avmarkera alla + + + Please switch to "List mode" to use this function. + Var vänlig byt till "Lista läge" för att använda denna funktion. + + + highest + högst + + + higher + högre + + + high + hög + + + medium-high + medel-hög + + + medium + medel + + + low-medium + lÃ¥g-medel + + + low + lÃ¥g + + + lower + lägre + + + lowest + lägst + + + (%1 locked) + (%1 lÃ¥st) + + + none + ingen + + + yes + ja + + + no + nej + + + This label turns red, if the transaction size is greater than 1000 bytes. + Den här etiketten blir röd, ifall storleken pÃ¥ transaktionen överstiger 1000 bytes. + + + This means a fee of at least %1 per kB is required. + Detta betyder att en avgift pÃ¥ minst %1 per kB är nödvändigt. + + + Can vary +/- 1 byte per input. + Kan variera med +/- 1 byte per inmatning. + + + Transactions with higher priority are more likely to get included into a block. + Transaktioner med högre prioritet har högre sannolikhet att inkluderas i ett block. + + + This label turns red, if the priority is smaller than "medium". + Den här etiketten blir röd, om prioriteten är lägre än "medium". + + + This label turns red, if any recipient receives an amount smaller than %1. + Den här etiketten blir röd, ifall nÃ¥gon mottagare fÃ¥r en mängd som är mindre än %1. + + + Can vary +/- %1 upiv per input. + Kan variera med +/- %1 upiv per inmatning. + + + (no label) + (Ingen etikett) + + + change from %1 (%2) + ändra frÃ¥n %1 (%2) + + + (change) + (ändra) + + + + CoinControlPivWidget + + Dialog + Dialog + + + Transaction Details + Transaktions detaljer + + + PushButton + Tryck pÃ¥ knappen + + + PIV: + PIV: + + + TextLabel + text etikett + + + Quantity: + Kvantitet: + + + Fee: + Avgift: + + + Amount + Mängd + + + Label + Etikett + + + Address + Adress + + + Type + Typ + + + Date + Datum + + + Confirmations + Bekräftelser + + + CheckBox + CheckBox + + + Bytes: + Bytes: + + + Dust: + Dust: + + + Change: + Växel: + + + After Fee: + Efter avgift: + + + CANCEL + cancel + + + OK + ok + + + + ColdStakingWidget + + Form + Formulär + + + Title + Titel + + + TextLabel + text etikett + + + PushButton + Tryck pÃ¥ knappen + + + Address copied + Adress kopierad + + + + ContactDropdownRow + + Form + Formulär + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + DashboardWidget + + Form + Formulär + + + Transactions + Transaktioner + + + You can see here the history of your account + Du kan se konto historiken här + + + Warning + Varning + + + No transactions + Inga transaktioner + + + PushButton + Tryck pÃ¥ knappen + + + Staking Rewards + Staking belöning + + + TextLabel + text etikett + + + Staking statistics + Staking statistik + + + PIV + PIV + + + zPIV + zPIV + + + Sort by + Sortera med + + + Days + Dagar + + + Months + MÃ¥nader + + + Years + Ã…r + + + Filter by + Filtrera med + + + LabelText + Etikett text + + + You can view your account's history + Du kan se ditt kontos historik + + + Amount of PIV and zPIV staked. + Mängden PIV och zPIV som präglats. + + + All + All + + + Received + Mottaget + + + Sent + Skickat + + + Mined + Mined + + + Minted + Mintad + + + MN reward + MN belöning + + + To yourself + Dig själv + + + Please wait until the wallet is fully synced to see your correct balance + Vänta tills plÃ¥nboken är synkroniserad för att se rätt saldo. + + + No transactions yet + Inga transaktioner ännu. + + + How to get PIV or zPIV + Hur man fÃ¥r PIV eller zPIV. + + + You can verify the staking activity in the status bar at the top right of the wallet. +It will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced. + Du kan verifiera staking aktiviteten i statusfältet längst upp till höger i plÃ¥nboken. +Den startar automatiskt sÃ¥ snart plÃ¥nboken har tillräckligt mÃ¥nga bekräftelser pÃ¥ eventuella outnyttjade saldon och när plÃ¥nboken har synkroniserats. + + + You have no staking rewards + Du har inga staking belöningar + + + No charts library + Inget diagram bibliotek + + + Loading chart.. + Laddar chart + + + Error loading chart, invalid show option + Fel vid laddning av diagram, ogiltigt visningsalternativ. + + + Error loading chart: %1 + Fel vid laddning av diagram: %1 + + + + DefaultDialog + + Form + Formulär + + + Transaction Details + Transaktions detaljer + + + Text Label + text adress + + + CANCEL + cancel + + + SAVE + spara + + + + DenomGenerationDialog + + Form + Formulär + + + Transaction Details + Transaktions detaljer + + + PushButton + Tryck pÃ¥ knappen + + + This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again. + Detta lÃ¥ser upp din plÃ¥nbok helt, sÃ¥ att alla som har tillgÃ¥ng till den kan spendera tills plÃ¥nboken är stängd eller lÃ¥st igen. + + + 5000 + 5000 + + + 100 + 100 + + + 10 + 10 + + + 1000 + 1000 + + + 50 + 50 + + + 500 + 500 + + + 5 + 5 + + + 1 + 1 + + + Select All + välj alla + + + CANCEL + cancel + + + SAVE + spara + + + + EditAddressDialog + + Edit Address + Redigera Adress + + + &Label + &Etikett + + + The label associated with this address list entry + Etiketten som associeras med denna adresslista + + + &Address + &Adress + + + The address associated with this address list entry. This can only be modified for sending addresses. + Adressen som associeras med denna adresslista. Den kan bara modifieras för skickande adresser. + + + New receiving address + Ny mottagaradress + + + New sending address + Ny skickande adress + + + Edit receiving address + Redigera mottagaradressen + + + Edit sending address + Redigera skickande adress + + + The entered address "%1" is not a valid PIVX address. + Den inmatade adressen "%1" är ej en giltig PIVX adress. + + + The entered address "%1" is already in the address book. + Den inmatade adressen "%1" är redan i adressboken. + + + Could not unlock wallet. + Kunde inte lÃ¥sa upp plÃ¥nbok. + + + New key generation failed. + Generering av ny nyckel misslyckades. + + + + ExpandableButton + + Form + Formulär + + + + FreespaceChecker + + A new data directory will be created. + En ny data katalog kommer skapas. + + + name + namn + + + Directory already exists. Add %1 if you intend to create a new directory here. + Katalogen finns redan. Lägg till %1 om vill skapa en ny katalog här. + + + Path already exists, and is not a directory. + Vägen finns redan och är inte en katalog. + + + Cannot create data directory here. + Kan inte skapa data katalog här. + + + + GovernancePage + + Form + Formulär + + + GOVERNANCE + MANAGEMENT + + + Update Proposals + Uppdatera förslag + + + Next super block: + Nästa Superblock + + + 0 + 0 + + + Blocks to next super block: + Block till nästa superblock: + + + Days to budget payout (estimate): + Dagar till budget utbetalning (estimerad): + + + Allotted budget: + Utvald budget: + + + Budget left: + Kvar av budget: + + + Masternodes count: + Masternode beräkning: + + + + HelpMessageDialog + + version + version + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + Om PIVX Kärna + + + Command-line options + Kommandoradsalternativ + + + Usage: + Användning: + + + command-line options + kommandoradsalternativ + + + UI Options: + Användargränssnitts-alternativ + + + Choose data directory on startup (default: %u) + Välj data katalog vid start (standard: %u) + + + Show splash screen on startup (default: %u) + Visa startbild vid start (standard: %u) + + + Set language, for example "de_DE" (default: system locale) + Ange sprÃ¥k, till exempel "de_DE" (standard: system) + + + Start minimized + Starta i minimerat läge + + + Set SSL root certificates for payment request (default: -system-) + Ställ in SSL root certificates för betalningsbegäran (standard: -system-) + + + OK + ok + + + + Intro + + Welcome + Välkommen + + + Welcome to PIVX Core. + Välkommen till PIVX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Eftersom detta är första gÃ¥ngen programmet körs sÃ¥ kan du välja var PIVX Core ska spara sin data. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Kärnan kommer ladda ner och spara en kopia av PIVX block chain. Minst %1GB data kommer sparas i denna katalog och den kommer växa med tiden. PlÃ¥nboken kommer ocksÃ¥ sparas i denna katalog. + + + Use the default data directory + Använd standard data katalogen + + + Use a custom data directory + Använd en anpassad datakatalog + + + CANCEL + cancel + + + OK + ok + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Fel: Den specifierade data katalogen "%1" kan inte skapas. + + + Error + Fel + + + %1 GB of free space available + %1 GB ledigt diskutrymme tillgängligt + + + (of %1 GB needed) + (varav %1 GB är nödvändigt) + + + + LoadingDialog + + Form + Formulär + + + TextLabel + text etikett + + + Loading + Laddar + + + + LockUnlock + + Form + Formulär + + + Unlock Wallet + lÃ¥s upp plÃ¥nboken + + + Lock Wallet + lÃ¥s börsen + + + Staking Only + Bara staking + + + + MNRow + + Form + Formulär + + + user_masternode + användare_masternode + + + Address: 88.26.164.88:51474 + Address: 88.26.164.88:51474 + + + Jan. 19, 2019 + Jan. 19, 2019 + + + + MasterNodeWizardDialog + + Dialog + Dialog + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + Intro + intro + + + Name + Namn + + + Address + Adress + + + Create New Master Node Controller + Skapa ny masternode kontrollör + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + För att skapa en PIVX Masternode mÃ¥ste du avsätta 10.000 PIV (enheten till PIVX) till nätverket (dessa mynt är dock fortfarande dina och kommer aldrig att lämna ditt innehav). Du kan stänga av noden och lÃ¥sa upp mynt när som helst. + + + Make sure you have this amount of coins. + Se till att du har denna mängd mynt. + + + Set Master Node’s Name + Ställ in Masternode namn + + + <html><head/><body><p>A transaction of 10,000 PIV will be made</p><p>to a new empty address in your wallet.</p><p>The Address is labeled under the master node's name.</p></body></html> + En transaktion pÃ¥ 10 000 PIV kommer göras till en ny tom adress i din plÃ¥nbok. Adressen är märkt under huvudnodens namn. + + + Set Master Node’s IP and port + Ställ in Masternode IP och port + + + Address of the node that must always be online running the actual master node. + Adress till den nod som alltid mÃ¥ste vara online som kör den verkliga huvudnoden. + + + Enter IP address + Skriv in IP adressen + + + Enter Port + Skriv in Port namnet + + + CANCEL + cancel + + + OK + ok + + + e.g user_masternode + användare_masternode + + + NEXT + NÄSTA + + + BACK + TILLBAKA + + + address label cannot be empty + adressetiketten kan inte vara tom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + IP or port cannot be empty + IP eller port kan inte vara tom + + + Invalid port number + Fel nummer till port + + + Prepare master node failed.. + Förberedande av huvudnoden misslyckades .. + + + Invalid masternode.conf file + Ogiltig masternode.conf-fil + + + Error parsing masternode.conf file + Fel vid analys av masternode.conf-fil + + + Invalid collaterall output index + Ogiltigt collaterall index + + + Master node created! + Masternode skapad ! + + + masternode.conf file doesn't exists + Masternode conf file existerar inte + + + The recipient address is not valid, please recheck. + Mottagaradressen är ej giltig, var vänlig kontrollera den. + + + The amount to pay must be larger than 0. + Mängden som betalas mÃ¥ste överstiga 0. + + + The amount exceeds your balance. + Mängden överstiger ditt saldo. + + + The total exceeds your balance when the %1 transaction fee is included. + Det totala överstiger ditt saldo när %1 transaktionsavgiften lägg pÃ¥. + + + Duplicate address found, can only send to each address once per send operation. + En adress har använts tvÃ¥ gÃ¥nger, kan endast skicka till en adress en gÃ¥ng per skickad transaktion. + + + Transaction creation failed! + Misslyckades att skapa transaktion! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Transaktionen nekades! Detta kan hända om nÃ¥gra mynt i din plÃ¥nbok redan har spenderats, möjligen att du använt en kopia av wallet.dat och spenderade mynt frÃ¥n kopian men de inte blivit markerade som spenderade här. + + + Error: The wallet was unlocked only to anonymize coins. + Felmeddelande: PlÃ¥nboken lÃ¥stes upp endast för att anonymisera mynt. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + En avgift %1 gÃ¥nger större än %2 per kB anses vara en galet hög avgift. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Felmeddelande: PlÃ¥nboken lÃ¥stes upp endast för att anonymisera mynt. UpplÃ¥sning avbrutet. + + + + MasterNodesWidget + + Form + Formulär + + + TextLabel + text etikett + + + No active Master Node yet + Ingen Aktiv Masternode ännu + + + PushButton + Tryck pÃ¥ knappen + + + Masternodes + Masternoder + + + Full nodes that incentivize node operators to perform the core consensus functions +and vote on the treasury system receiving a periodic reward. + Noder som erbjuder nod operatörer att utföra grundläggande konsensus funktioner och rösta pÃ¥ treasury systemet och tar emot en Ã¥terkommande belöning. + + + No active Masternode yet + Ingen aktiv masternode + + + Start + Start + + + Delete + Radera + + + Info + Info + + + Start Masternode + Starta Masternode + + + Are you sure you want to start masternode %1? + + Vill du starta masternoden %1 ? + + + + Cannot start masternode, the collateral transaction has not been accepted by the network. +Please wait few more minutes. + Kan inte starta masternoden, transaktionen har inte accepterats av nätverket ännu. Var vänlig vänta nÃ¥gra minuter till. + + + Remote Masternode Data + Remote Masternode Data + + + You are just about to export the required data to run a Masternode +on a remote server to your clipboard. + + +You will only have to paste the data in the pivx.conf file +of your remote server and start it, then start the Masternode using +this controller wallet (select the Masternode in the list and press "start"). + + Du är precis pÃ¥ väg att exportera nödvändig data för att köra en Masternode +pÃ¥ en server. + +Du behöver bara infoga data i filen pivx.conf +pÃ¥ din server och starta den och starta sedan Masternode med +denna plÃ¥nbok (välj Masternode i listan och tryck pÃ¥ "start"). + + + Masternode exported!, check your clipboard + Masternode exporterad, kolla under urklipp. + + + Delete Masternode + Ta bort Masternode + + + You are just about to delete Masternode: +%1 + +Are you sure? + Du hÃ¥ller pÃ¥ att ta bort Masternoden %1, är du säker ? + + + Invalid masternode.conf file + Ogiltig masternode.conf-fil + + + Error parsing masternode.conf file + Fel vid analys av masternode.conf-fil + + + masternode.conf file doesn't exists + Masternode conf file existerar inte + + + Not enough balance to create a masternode, 10,000 PIV required. + Inte nog pÃ¥ saldot för att skapa en Masternode, 10000 PIV behövs. + + + Error creating masternode + Fel vid Masternode setup + + + + MnInfoDialog + + Form + Formulär + + + Master Node Information + Masternode Information + + + Public Key: + Allmän Nyckel + + + Address: + Adress + + + Collaterall tx id: + Kollateral tx id: + + + Output index: + output index + + + 1 Inputs + 1 input + + + Status: + Status: + + + MISSING + Saknas + + + Export data to run the Master Node on a remote server + Exportera data för att köra Master Node pÃ¥ en annan server. + + + + MyAddressRow + + Form + Formulär + + + Savings + Sparande + + + Jan. 19, 2019 + Jan. 19, 2019 + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + NavMenuWidget + + Form + Formulär + + + V 1.0.0 + V 1.0.0 + + + v%1 + v%1 + + + + OpenURIDialog + + Open URI + Öppna URI + + + Open payment request from URI or file + Öppna betalningsförfrÃ¥gan frÃ¥n URI eller fil + + + TextLabel + text etikett + + + CANCEL + cancel + + + OK + ok + + + Select payment request file + Välj fil med betalningsförfÃ¥gan + + + Select payment request file to open + Välj betalningsförfrÃ¥ganfil till att öppna + + + + OptionButton + + Form + Formulär + + + TextLabel + text etikett + + + + OptionsDialog + + Options + Alternativ + + + &Main + &Main + + + Size of &database cache + Storlek pÃ¥ &databasbuffert + + + MB + MB + + + Number of script &verification threads + Antal script &verifications trÃ¥dar + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = lämna sÃ¥ mÃ¥nga "kärnor" fria) + + + W&allet + W&allet + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + Om du avaktiverar spenderandet av okonfirmerad växel sÃ¥ kommer växeln frÃ¥n en transaktion <br/>ej kunna användas föräns transaktionen har minst en bekräftelse. <br/> Detta pÃ¥verkar även hur ditt saldo beräknas. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Öppna automatiskt PIVX klient porten pÃ¥ denna router. Detta funkar endast om din router stödjer UPnP och är pÃ¥slaget. + + + Accept connections from outside + Acceptera anslutningar utifrÃ¥n + + + Allow incoming connections + TillÃ¥t inkommande anslutningar + + + &Connect through SOCKS5 proxy (default proxy): + &Koppla upp genom SOCKS5 proxy (standard proxy): + + + Expert + Expert + + + Automatically start PIVX after logging in to the system. + Starta PIVX automatiskt efter inloggning pÃ¥ systemet. + + + &Start PIVX on system login + &Starta PIVX vid systeminloggning + + + Whether to show coin control features or not. + Huruvida mynt kontroll funktioner ska visas eller inte. + + + Enable coin &control features + TillÃ¥t mynt &kontroll funktioner + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Visa ytterligare en flik som visar alla dina huvudnoder i sin första sub-flik<br/>och alla huvudnoder pÃ¥ nätverket i en andra sub-flik. + + + Show Masternodes Tab + Visa Huvudnoder Flik + + + &Spend unconfirmed change + &Spendera ej bekräftad växel + + + &Network + &Nätverk + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + Användargränssnittets sprÃ¥k kan väljas här. Denna inställning börjar gälla efter att man startat om PIVX. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Fattas sprÃ¥k eller är översättningen ofullständig? Hjälp till att bidra med översättning här: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Kartlägg port med &UPnP + + + Enable automatic minting of PIV units to zPIV + TillÃ¥t automatisk prägling med PIV enheter till zPIV + + + Enable zPIV Automint + TillÃ¥t zPIV Autoprägling + + + Enable automatic zPIV minting from specific addresses + Aktivera automatisk zPIV prägling frÃ¥n specifika adresser + + + Enable Automint Addresses + Aktivera autopräglingsadresser + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Procent av inkommande PIV som automatiskt konverteras till zPIV via Zerocoin Protokollet (min: 10%) + + + Percentage of autominted zPIV + Procent av autopräglade zPIV + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Vänta med automatisk omvandling till Zerocoin tills tillräckligt mÃ¥nga PIV för denna valör är tillgängliga + + + Preferred Automint zPIV Denomination + Preferens pÃ¥ zPIV valör i autoprägling + + + Stake split threshold: + Staking delnings tröskel: + + + Connect to the PIVX network through a SOCKS5 proxy. + Anslut till PIVX nätverket via en SOCKS5 proxy. + + + Proxy &IP: + Proxy &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + Proxyns IP adress (t.ex. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Port: + + + Port of the proxy (e.g. 9050) + Proxyns port (t.ex. 9050) + + + &Window + &Window + + + Show only a tray icon after minimizing the window. + När fönstret minimeras visa endast en icon. + + + &Minimize to the tray instead of the taskbar + &Minimera till "tray" istället för aktivitetsfältet + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Minimera istället för att stänga ner applikationen när fönstret stängs. När denna inställning är tillÃ¥ten kan applikationen endast stängas ner av att välja Avsluta i menyn. + + + M&inimize on close + M&inimera pÃ¥ stäng + + + &Display + &Display + + + User Interface &language: + Användargränssnitt och &sprÃ¥k: + + + User Interface Theme: + Användargränssnitts Tema: + + + Unit to show amounts in: + Enhet som summan visas pÃ¥. + + + Choose the default subdivision unit to show in the interface and when sending coins. + Välj standardindelningsenheten att visa i gränssnittet och när mynt skickas. + + + Decimal digits + Decimal platser + + + Hide empty balances + Dölj tomma saldon + + + Hide orphan stakes in transaction lists + Göm föräldralösa stakes i transaktionslistan + + + Hide orphan stakes + Göm föräldralösa stakes + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + Tredjeparts URLs (t.ex. en blockutforskare) som visar sig i transaktionsfliken som objekt i innehÃ¥llsmeny. %s i URLen ersätts med transaktionshash. Flera URLs separeras med vertical stÃ¥ng |. + + + Third party transaction URLs + Tredjeparts transaktion URLs + + + Active command-line options that override above options: + Aktiva commandorad val som överskrider valen över: + + + Reset all client options to default. + Starta om alla klient alternativ till standard. + + + &Reset Options + &Ã…terställnings Inställningar + + + &OK + &OK + + + &Cancel + &ta bort + + + Any + Vilken som helst + + + default + standard + + + none + ingen + + + Confirm options reset + Bekräfta omstart av alternativ + + + Client restart required to activate changes. + Omstart av applikationen krävs för att aktivera ändringarna. + + + Client will be shutdown, do you want to proceed? + Applikationen kommer stängas av, vill du fortsätta. + + + This change would require a client restart. + Denna ändring kommer kräva att applikationen startas om. + + + The supplied proxy address is invalid. + Den angivna proxyadressen är ogiltig. + + + The supplied proxy port is invalid. + Den angivna proxy porten är ogiltig. + + + The supplied proxy settings are invalid. + De angivna proxy inställningarna ör ogiltiga. + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + PlÃ¥nbok + + + Node + Nod + + + &Show / Hide + &Visa / Dölj + + + Show or hide the main Window + Visa eller Dölj huvudfönstret + + + E&xit + Exit + + + Quit application + Avsluta applikationen + + + PIVX Core client + PIVX kärn klient + + + Error + Fel + + + Warning + Varning + + + Information + Information + + + System Message + System Meddelande. + + + Sent MultiSend transaction + Skickad MultiSend transaktion + + + Sent transaction + Skickad transaktion + + + Incoming transaction + Inkommande transaktion + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Datum: %1 +Mängd: %2 +Typ: %3 +Adress: %4 + + + + A fatal error occurred. PIVX can no longer continue safely and will quit. + Ett fel inträffade. PIVX kan inte längre köras säkert och kommer att stängas ned för tillfället. + + + + PWidget + + Wallet locked, you need to unlock it to perform this action + PlÃ¥nboken är lÃ¥st, du mÃ¥ste lÃ¥sa upp den för att utföra den här Ã¥tgärden. + + + + PaymentServer + + Payment request error + BetalningsförfrÃ¥gan felaktighet + + + URI handling + URI hantering + + + Payment request fetch URL is invalid: %1 + BetalningsförfrÃ¥gan hämta URL är ogiltig: %1 + + + Payment request file handling + BetalningsförfrÃ¥gan filhantering + + + Invalid payment address %1 + Ogiltig betalningsadress %1 + + + Cannot start pivx: click-to-pay handler + Kan ej starta pivx: klicka-för-att-betala hanterare + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URI kunde ej analyseras! Detta kan orsakas av en ogiltig PIVX adress eller felproducerade URI parametrar. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + BetalningsförfrÃ¥gan fil kan ej läsas! Detta kan orsakas av en ogiltig betalsningsförfrÃ¥gan fil. + + + Payment request rejected + BetalningsförfrÃ¥gan nekad + + + Payment request network doesn't match client network. + BetalningsförfrÃ¥gan nätverk stämmer inte överens med klient nätverk. + + + Payment request has expired. + BetalningsförfrÃ¥gan har gÃ¥tt ut. + + + Payment request is not initialized. + BetalningsförfrÃ¥gan är inte initialiserad. + + + Unverified payment requests to custom payment scripts are unsupported. + Obekräftade betalningsförfrÃ¥gningar till skräddarsydda betalningsskript stöds ej. + + + Requested payment amount of %1 is too small (considered dust). + BetalningsförfrÃ¥gans mängd pÃ¥ %1 är för liten (anses vara damm). + + + Refund from %1 + Ã…terbetalning frÃ¥n %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + BetalningsförfrÃ¥gan %1 är för stor (%2 bytes, tillÃ¥ten %3 bytes). + + + Payment request DoS protection + BetalningsförfrÃ¥gan DoS skydd + + + Error communicating with %1: %2 + Kommunikationsfel med %1: %2 + + + Payment request cannot be parsed! + BetalningsförfrÃ¥gan kan ej analyseras! + + + Bad response from server %1 + DÃ¥ligt svar frÃ¥n server %1 + + + Network request error + Fel pÃ¥ nätverksförfrÃ¥gan + + + Payment acknowledged + Betalning erkänd + + + + PeerTableModel + + Address/Hostname + Adress/Värdnamn + + + Version + Version + + + Ping Time + Ping Tid + + + + PrivacyWidget + + Form + Formulär + + + Title + Titel + + + TextLabel + text etikett + + + PushButton + Tryck pÃ¥ knappen + + + No active Master Node yet + Ingen Aktiv Masternode ännu + + + Privacy + Privat + + + Convert + Konvertera + + + Mint + Prägla + + + Minting zPIV anonymizes your PIV by removing any +transaction history, making transactions untraceable + Prägling av zPIV anonymiserar dina PIV genom att ta bort +transaktionshistorik, vilket gör transaktioner ospÃ¥rbara + + + Mint new zPIV or convert back to PIV + Prägla nya zPIV eller konvertera tillbaka till PIV + + + Last Zerocoin Movements + Sista Zerocoin Rörelsen + + + No transactions yet + Inga transaktioner ännu. + + + Mint zPIV + Prägla zPIV + + + Enter amount of PIV to mint into zPIV + Ange PIV beloppet att prägla till zPIV + + + Convert back to PIV + Konvertera tillbaka till PIV + + + Enter amount of zPIV to convert back into PIV + Ange mängden zPIV som ska konverteras tillbaka till PIV + + + Zerocoin + Zerocoin + + + zPIV is currently undergoing maintenance + zPIV genomgÃ¥r underhÃ¥ll + + + convert + konvertera + + + mint + prägla + + + + ProposalFrame + + Open proposal page in browser + Öppna förslagssida i webbläsare + + + remaining payment(s). + Ã¥terstÃ¥ende betalningar + + + Yes: + Ja: + + + Abstain: + AvstÃ¥: + + + No: + Nej: + + + Open link + Öppna länk: + + + Copy link + Kopiera länk: + + + Wallet Locked + PlÃ¥nbok lÃ¥st: + + + You must unlock your wallet to vote. + Du mÃ¥ste lÃ¥sa upp din plÃ¥nbok för att rösta. + + + Do you want to vote %1 on + Vill du rösta %1 pÃ¥ + + + using all your masternodes? + använda alla dina masternodes ? + + + Proposal Hash: + Föreslags hash: + + + Proposal URL: + Föreslags URL: + + + Confirm Vote + Bekräfta Röst: + + + Vote Results + Röst resultat: + + + + QObject + + Amount + Mängd + + + Enter a PIVX address (e.g. %1) + Mata in en PIVX adress (e.g. %1) + + + %1 d + %1 d + + + %1 h + %1 t + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + NÄTVERK + + + BLOOM + "BLOOM" + + + ZK_BLOOM + ZK_BLOOM + + + UNKNOWN + OKÄND + + + None + Inget + + + N/A + N/A + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" does not exist. + Fel: Den angivna datakatalogen "%1" existerar inte. + + + Error reading masternode configuration file: %1 + Fel vid inläsning av masternodens konfigurationsfil: %1 + + + PIVX Core didn't yet exit safely... + PIVX Core avslutades ännu inte säkert... + + + + RPCConsole + + Tools window + Verktygsfönster + + + &Information + &Information + + + General + Allmänt + + + Name + Namn + + + Client name + Klient namn + + + N/A + N/A + + + Number of connections + Antal anslutningar + + + &Open + &Öppna + + + Startup time + Starttid + + + Network + Nätverk + + + Last block time + Tid för senaste block + + + Debug log file + Felsökningslogg + + + Build date + Byggdatum + + + Current number of blocks + Nuvarande mängd block + + + Client version + Klient version + + + Using BerkeleyDB version + Använder BerkeleyDB version + + + Block chain + Blockchain + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Öppna PIVX felsökningslogg frÃ¥n den nuvarande data katalogen. Detta kan ta nÃ¥gra sekunder för stora logg filer. + + + Number of Masternodes + Antal Huvudnoder "masternodes" + + + &Console + &Konsoll + + + Clear console + Rensa konsol + + + &Network Traffic + &Nätverkstrafik + + + &Clear + &Rensa + + + Totals + Totalt + + + Received + Mottaget + + + Sent + Skickat + + + &Peers + &Peers + + + Banned peers + Förbjudna kamrater + + + Select a peer to view detailed information. + Välj en person för att visa detaljerad information. + + + Whitelisted + Vitlistad + + + Direction + Riktning + + + Protocol + Protokoll + + + Version + Version + + + Services + Tjänster + + + Ban Score + "Ban" Poäng + + + Connection Time + Anslutningstid + + + Last Send + Senast skickad + + + Last Receive + Senast mottagen + + + Bytes Sent + Bytes Skickat + + + Bytes Received + Mottagna Bytes + + + Ping Time + Ping Tid + + + &Wallet Repair + &PlÃ¥nboks Reparation + + + Delete local Blockchain Folders + Radera lokala Blockchain Mappar + + + Wallet In Use: + PlÃ¥nbok Används: + + + Starting Block + Startblock + + + Synced Headers + Synkroniserade Rubriker + + + Synced Blocks + Synkroniserade Block + + + The duration of a currently outstanding ping. + Varaktigheten pÃ¥ ett nuvarande utomstÃ¥ende ping. + + + Ping Wait + Ping Vänta + + + Time Offset + Tidsförskjutning + + + Custom Backup Path: + Vanlig Backup Sökväg: + + + Custom zPIV Backup Path: + Vanlig zPIV Backup Sökväg: + + + Custom Backups Threshold: + Vanlig Backup Tröskel: + + + Salvage wallet + Spara plÃ¥nboken + + + Attempt to recover private keys from a corrupt wallet.dat. + Försök Ã¥terställa privata nycklar frÃ¥n en korrupt wallet.dat. + + + Rescan blockchain files + Skanna om blockchain filer + + + Rescan the block chain for missing wallet transactions. + Skanna om blockchain efter de saknade plÃ¥nboks transaktionerna. + + + Recover transactions 1 + Hämta Ã¥ter transaktion 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Ã…tervinn transaktioner frÃ¥n blockchain (behÃ¥ll meta-data, t.ex. kontoägare). + + + Recover transactions 2 + Hämta Ã¥ter transaktion 2 + + + Recover transactions from blockchain (drop meta-data). + Hämta Ã¥ter transaktioner frÃ¥n blockchain (släpp meta-data). + + + Upgrade wallet format + Uppgradera plÃ¥nboksformat + + + Rebuild block chain index from current blk000??.dat files. + Bygg om blockchain index frÃ¥n nuvarande blk000??.dat filer. + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Raderar alla lokala blockchain mappar sÃ¥ att plÃ¥nboken synkroniseras frÃ¥n start. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + Knapparna nedanför kommer starta om plÃ¥nboken med ett kommandorads val att reparera plÃ¥nboken, lösa problem med korrupta blockchain filer eller saknade/förÃ¥ldrade transaktioner. + + + Wallet repair options. + PlÃ¥nbok reparerings alternativ. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Uppgradera plÃ¥nbok till senaste formatet vid uppstart. (Observera: detta är inte en uppdatering av själva plÃ¥nboken!) + + + Rebuild index + Bygg om index + + + In: + In: + + + Out: + Ut: + + + Welcome to the PIVX RPC console. + Välkommen till PIVX RPC konsol. + + + &Disconnect Node + &stänga av nod + + + Ban Node for + förbjud Nod för att + + + 1 &hour + 1 &timme + + + 1 &day + 1 &dag + + + 1 &week + 1 &vecka + + + 1 &year + 1 &Ã¥r + + + &Unban Node + &Ta bort bann frÃ¥n Nod + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Detta kommer radera dina lokala blockchain mappar och plÃ¥nboken kommer synkronisera den kompletta Blockchainen frÃ¥n början.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Detta behöver tid och laddar ner en massa data.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Dina transaktioner och tillgÃ¥ngar kommer bli synliga igen efter att nedladdningen är slutförd.<br /><br /> + + + Do you want to continue?.<br /> + Vill du fortsätta?.<br /> + + + Confirm resync Blockchain + Godkänn omsynkronisering av Blockchain + + + Use up and down arrows to navigate history, and %1 to clear screen. + Använd upp- och ner-pilarna för att navigera historiken, och %1 för att rensa skärm. + + + Type <b>help</b> for an overview of available commands. + Skriv <b>help</b> för en överblick av tillgängliga kommandon. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + VARNING: Bedrägare har varit aktiva, säger Ã¥t användare att skriva kommandon här, stjäl deras innehÃ¥ll i plÃ¥nboken. Använd inte denna konsoll utan att fullt förstÃ¥ vad ett kommando kan leda till. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (nod id: %1) + + + via %1 + via %1 + + + never + aldrig + + + Inbound + Inkommande + + + Outbound + UtgÃ¥ende + + + Yes + Ja + + + No + Nej + + + Unknown + Okänd + + + + ReceiveDialog + + Dialog + Dialog + + + Transaction Details + Transaktions detaljer + + + PushButton + Tryck pÃ¥ knappen + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + cancel + + + OK + ok + + + + ReceiveWidget + + Form + Formulär + + + TextLabel + text etikett + + + Address copied + Adress kopierad + + + + RecentRequestsTableModel + + Date + Datum + + + Label + Etikett + + + Message + Meddelande + + + Address + Adress + + + Amount + Mängd + + + (no label) + (Ingen etikett) + + + (no message) + (inget meddelande) + + + (no amount) + (ingen mängd) + + + + RequestDialog + + Dialog + Dialog + + + Amount + Mängd + + + PIV + PIV + + + TextLabel + text etikett + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + cancel + + + Label + Etikett + + + Error + Fel + + + + SendChangeAddressDialog + + Dialog + Dialog + + + Transaction Details + Transaktions detaljer + + + PushButton + Tryck pÃ¥ knappen + + + CANCEL + cancel + + + OK + ok + + + + SendCustomFeeDialog + + Form + Formulär + + + Transaction Details + Transaktions detaljer + + + CANCEL + cancel + + + OK + ok + + + SAVE + spara + + + + SendMultiRow + + Form + Formulär + + + TextLabel + text etikett + + + + SendWidget + + Send + Skicka + + + Amount + Mängd + + + Spend Zerocoin + Spendera Zerocoin + + + zPIV is currently undergoing maintenance. + zPIV genomgÃ¥r för tillfället underhÃ¥ll. + + + Version 1 zPIV require a security level of 100 to successfully spend. + Version 1 zPIV kräver en säkerhetsnivÃ¥ pÃ¥ 100 för att kunna spenderas med framgÃ¥ng. + + + Too much inputs ( + För mÃ¥nga input ( + + + ) needed. +Maximum allowed: + ) behövda. +Högsta tillÃ¥tna: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Minta antingen högre valörer (sÃ¥ att färre inputs behövs) eller spendera mindre. + + + Cannot store your own address as contact + Kan inte spara den egna adressen som kontakt + + + New Contact Stored + Nytt kontrakt lagrat + + + Error Storing Contact + Gick inte spara kontakt + + + + SettingsBackupWallet + + Form + Formulär + + + TextLabel + text etikett + + + PushButton + Tryck pÃ¥ knappen + + + Backup Wallet + Gör en backup pÃ¥ plÃ¥nboken + + + Wallet Data (*.dat) + PlÃ¥nboksdata (*.dat) + + + + SettingsBitToolWidget + + Form + Formulär + + + TextLabel + text etikett + + + PushButton + Tryck pÃ¥ knappen + + + Import Address + Importera Adress + + + Clear + Rensa + + + Enter a PIVX address + Skriv in en PIVX adress + + + ENCRYPT + ENKRYPTERA + + + The entered passphrase is invalid. + Den angivna lösenfrasen är felaktig. + + + Allowed: 0-9,a-z,A-Z, + TillÃ¥tna: 0-9,a-z.A-Z. + + + The entered address is invalid. + Den angivna adressen är felaktig. + + + Please check the address and try again. + Var vänlig kontrollera adressen och försök igen. + + + The entered address does not refer to a key. + Den angivna adressen visar inte till en nyckel. + + + Wallet unlock was cancelled. + UpplÃ¥sningen av plÃ¥nboken blev avbruten. + + + Private key for the entered address is not available. + Den privata nyckel som angivits till adressen är inte tillgänglig. + + + Failed to decrypt. + Dekryptering misslyckades. + + + Please check the key and passphrase and try again. + Var vänlig och kontrollera nyckeln och lösenfrasen och försök igen. + + + Data Not Valid. + Data ogiltig. + + + Please try again. + Var vänlig försök igen. + + + Please wait while key is imported + Var god vänta medans nyckeln importeras + + + + SettingsConsoleWidget + + Form + Formulär + + + TextLabel + text etikett + + + Welcome to the PIVX RPC console. + Välkommen till PIVX RPC konsol. + + + Use up and down arrows to navigate history, and %1 to clear screen. + Använd upp- och ner-pilarna för att navigera historiken, och %1 för att rensa skärm. + + + Type <b>help</b> for an overview of available commands. + Skriv <b>help</b> för en överblick av tillgängliga kommandon. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + VARNING: Bedrägare har varit aktiva, säger Ã¥t användare att skriva kommandon här, stjäl deras innehÃ¥ll i plÃ¥nboken. Använd inte denna konsoll utan att fullt förstÃ¥ vad ett kommando kan leda till. + + + + SettingsDisplayOptionsWidget + + Form + Formulär + + + TextLabel + text etikett + + + PushButton + Tryck pÃ¥ knappen + + + Decimal digits + Decimal platser + + + Hide empty balances + Dölj tomma saldon + + + SAVE + spara + + + default + standard + + + + SettingsFaqWidget + + Form + Formulär + + + TextLabel + text etikett + + + PushButton + Tryck pÃ¥ knappen + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 5 + 5 + + + 10 + 10 + + + + SettingsInformationWidget + + Form + Formulär + + + TextLabel + text etikett + + + Information + Information + + + General + Allmänt + + + Network + Nätverk + + + In: + In: + + + Out: + Ut: + + + + SettingsMainOptionsWidget + + Form + Formulär + + + TextLabel + text etikett + + + CheckBox + CheckBox + + + SAVE + spara + + + + SettingsMultisendDialog + + Form + Formulär + + + Transaction Details + Transaktions detaljer + + + TextLabel + text etikett + + + CANCEL + cancel + + + SAVE + spara + + + + SettingsMultisendWidget + + Form + Formulär + + + TextLabel + text etikett + + + No active Master Node yet + Ingen Aktiv Masternode ännu + + + CheckBox + CheckBox + + + Active + Aktiv + + + The entered address: %1 is invalid. +Please check the address and try again. + Den angivna adressen: %1 är ej giltig. +Var vänlig kontrollera adressen och försök igen. + + + The total amount of your MultiSend vector is over 100% of your stake reward + Den totala mängden av din MultiSend vektor är över 100% av din stake belöning + + + MultiSend activated but writing settings to DB failed + MultiSend aktiverat men misslyckades att skriva inställningar till DB + + + MultiSend activated + MultiSend aktiverat + + + MultiSend deactivated but writing settings to DB failed + MultiSend avaktiverat men misslyckades skriva inställningar till DB + + + MultiSend deactivated + MultiSend avaktiverat + + + + SettingsSignMessageWidgets + + Form + Formulär + + + TextLabel + text etikett + + + PushButton + Tryck pÃ¥ knappen + + + Clear + Rensa + + + Message + Meddelande + + + Signature + Signatur + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Du kan signera meddelanden med din egna adress för att bevisa att du äger dem. Se upp för att signera nÃ¥got vagt, dÃ¥ phishing-attacker kan försöka lura dig att signera din identitet Ã¥t dom. Signera endast fullt detaljerade pÃ¥stÃ¥enden du gÃ¥r med pÃ¥. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Skriv in den signerande adressen, meddelande (var säker pÃ¥ att du kopierar radbrytningar, mellanslag, tabs, etc. exakt) och signera under för att verifiera meddelandet. Var försiktig med att inte läsa in mer i signaturen än själva signerade meddelandet, för att undvika att bli lurad av en "man i mitten" attack. + + + The entered address is invalid. + Den angivna adressen är felaktig. + + + Please check the address and try again. + Var vänlig kontrollera adressen och försök igen. + + + The entered address does not refer to a key. + Den angivna adressen visar inte till en nyckel. + + + Wallet unlock was cancelled. + UpplÃ¥sningen av plÃ¥nboken blev avbruten. + + + Private key for the entered address is not available. + Den privata nyckel som angivits till adressen är inte tillgänglig. + + + Message signing failed. + Meddelande signering misslyckades. + + + Message signed. + Meddelande signerat. + + + The signature could not be decoded. + Signaturen kunde inte avkodas. + + + Please check the signature and try again. + Var vänlig och kontrollera signaturen och försök igen. + + + The signature did not match the message digest. + Signaturen matchade inte meddelande smältandet. + + + Message verification failed. + Meddelande verifiering misslyckades. + + + Message verified. + Medelande verifierat. + + + + SettingsWalletOptionsWidget + + Form + Formulär + + + TextLabel + text etikett + + + CheckBox + CheckBox + + + PushButton + Tryck pÃ¥ knappen + + + Wallet + PlÃ¥nbok + + + Stake split threshold: + Staking delnings tröskel: + + + Network + Nätverk + + + Allow incoming connections + TillÃ¥t inkommande anslutningar + + + SAVE + spara + + + + SettingsWalletRepairWidget + + Form + Formulär + + + TextLabel + text etikett + + + PushButton + Tryck pÃ¥ knappen + + + Attempt to recover private keys from a corrupt wallet.dat. + Försök Ã¥terställa privata nycklar frÃ¥n en korrupt wallet.dat. + + + Recover transactions from blockchain (drop meta-data). + Hämta Ã¥ter transaktioner frÃ¥n blockchain (släpp meta-data). + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Raderar alla lokala blockchain mappar sÃ¥ att plÃ¥nboken synkroniseras frÃ¥n start. + + + Salvage wallet + Spara plÃ¥nboken + + + Recover transactions 1 + Hämta Ã¥ter transaktion 1 + + + Recover transactions 2 + Hämta Ã¥ter transaktion 2 + + + Upgrade wallet format + Uppgradera plÃ¥nboksformat + + + Rebuild index + Bygg om index + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Detta kommer radera dina lokala blockchain mappar och plÃ¥nboken kommer synkronisera den kompletta Blockchainen frÃ¥n början.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Detta behöver tid och laddar ner en massa data.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Dina transaktioner och tillgÃ¥ngar kommer bli synliga igen efter att nedladdningen är slutförd.<br /><br /> + + + Do you want to continue?.<br /> + Vill du fortsätta?.<br /> + + + Confirm resync Blockchain + Godkänn omsynkronisering av Blockchain + + + + SettingsWidget + + Form + Formulär + + + TextLabel + text etikett + + + Wallet + PlÃ¥nbok + + + Options + Alternativ + + + Information + Information + + + Confirm options reset + Bekräfta omstart av alternativ + + + Client restart required to activate changes. + Omstart av applikationen krävs för att aktivera ändringarna. + + + Client will be shutdown, do you want to proceed? + Applikationen kommer stängas av, vill du fortsätta. + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core stängs ner... + + + Do not shut down the computer until this window disappears. + Stäng inte av datorn förrän detta fönster försvinner. + + + + SnackBar + + Form + Formulär + + + + Splash + + Form + Formulär + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Version %1 + + + The Bitcoin Core developers + Bitcoin Core utvecklarna + + + The Dash Core developers + Dash Core utvecklarna + + + The PIVX Core developers + PIVX Core utvecklarna + + + [testnet] + [testnet] + + + + TooltipMenu + + Form + Formulär + + + Delete + Radera + + + + TopBar + + Form + Formulär + + + %1 and %2 + %1 och %2 + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open until %1 + Öppna tills %1 + + + conflicted + hamnade i konflikt + + + %1/offline + %1/offline + + + %1/unconfirmed + %1/obekräftade + + + %1 confirmations + %1 bekräftelser + + + %1/offline (verified via SwiftX) + %1/offline (verifierade via SwiftX) + + + %1/confirmed (verified via SwiftX) + %1/bekräftade (verifierade via SwiftX) + + + %1 confirmations (verified via SwiftX) + %1 bekräftelser (verifierade via SwiftX) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/offline (SwiftX verifikation arbetar pÃ¥ det - %2 av %3 signaturer) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/bekräftade (SwiftX verifikation arbetar pÃ¥ det - %2 av %3 signaturer) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 bekräftelser (SwiftX verifikation arbetar pÃ¥ det - %2 av %3 signaturer) + + + %1/offline (SwiftX verification failed) + %1/offline (SwiftX verifikation misslyckades) + + + %1/confirmed (SwiftX verification failed) + %1/bekräftade (SwiftX verifikation misslyckades) + + + Status + Status + + + , has not been successfully broadcast yet + , har ännu inte lyckats sändas ut + + + Date + Datum + + + Source + Källa + + + Generated + Genererad + + + From + FrÃ¥n + + + unknown + okänd + + + To + Till + + + own address + egen adress + + + watch-only + se-endast + + + label + Etikett + + + Credit + Kredit + + + not accepted + Inte Accepterad + + + Debit + Debit + + + Total debit + Total debit + + + Total credit + Total kredit + + + Transaction fee + Transaktions avgift + + + Net amount + Nettobelopp + + + Message + Meddelande + + + Comment + Kommentar + + + Transaction ID + Transaktions ID + + + Output index + UtgÃ¥ngsindex + + + Merchant + Handlare + + + Debug information + Felsökningsinformation + + + Transaction + Transaktion + + + Inputs + Input + + + Amount + Mängd + + + true + sant + + + false + falskt + + + + TransactionTableModel + + Date + Datum + + + Type + Typ + + + Address + Adress + + + Open until %1 + Öppna tills %1 + + + Offline + Offline + + + Unconfirmed + obekräftad + + + Confirming (%1 of %2 recommended confirmations) + Bekräftar (%1 av %2 rekomenderade bekräftelser) + + + Confirmed (%1 confirmations) + Bekräftat (%1 bekräftelser) + + + Conflicted + I konflikt + + + Immature (%1 confirmations, will be available after %2) + Omogna (%1 bekräftelser, kommer bli tillgängliga efter %2) + + + This block was not received by any other nodes and will probably not be accepted! + Detta block togs inte emot av nÃ¥gon annan nod och kommer förmodligen inte accepteras! + + + Received with + Mottaget med + + + Masternode Reward + Masternode Belöning + + + Received from + Mottaget frÃ¥n + + + Received via Obfuscation + Mottaget via Fördunkling + + + PIV Stake + PIV staking + + + zPIV Stake + zPIV Staking + + + Obfuscation Denominate + Fördunkling Betecknat + + + Obfuscation Collateral Payment + Fördunkling Kollateral Betalning + + + Obfuscation Make Collateral Inputs + Fördunkling Gör Kollateral Inmatning + + + Obfuscation Create Denominations + Obfuscation Skapa tecken + + + Converted PIV to zPIV + Konvertera PIV till zPIV + + + Spent zPIV + Spendera zPIV + + + Received PIV from zPIV + Mottog PIV frÃ¥n zPIV + + + Minted Change as zPIV from zPIV Spend + Myntad Växel som zPIV frÃ¥n zPIV Spendering + + + Converted zPIV to PIV + Konverterad zPIV till PIV + + + Sent to + Skicka till + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Föräldralöst Block - Genererat men ej accepterat. Detta pÃ¥verkar inte ditt innehav. + + + Payment to yourself + Betalning till dig själv + + + Mined + Mined + + + Obfuscated + Fördunklade + + + watch-only + se-endast + + + (n/a) + (n/a) + + + Transaction status. Hover over this field to show number of confirmations. + Transaktionsstatus. hÃ¥ll musen över detta fält för att visa antal bekräftelser. + + + Date and time that the transaction was received. + Tid och datum som transaktionen togs emot. + + + Type of transaction. + Typ av transaktion. + + + Whether or not a watch-only address is involved in this transaction. + Om en "watch only" adress är involverad i denna transaktion. + + + Destination address of transaction. + Transaktionens Destinationsadress. + + + Amount removed from or added to balance. + Mängd borttagen frÃ¥n eller tillagd till saldo. + + + + TxDetailDialog + + Form + Formulär + + + Transaction Details + Transaktions detaljer + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + 1 Inputs + 1 input + + + Fee: + Avgift: + + + Status: + Status: + + + TextLabel + text etikett + + + CANCEL + cancel + + + OK + ok + + + SEND + SKICKA + + + Unknown + Okänd + + + + TxRow + + Form + Formulär + + + + WalletModel + + Send Coins + Skicka Mynt + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + wiftX stödjer inte att skicka sÃ¥ höga värden än. Transaktioner är för nuvarande begränsade till %1 PIV. + + + + WalletPasswordDialog + + Dialog + Dialog + + + TextLabel + text etikett + + + PushButton + Tryck pÃ¥ knappen + + + CANCEL + cancel + + + OK + ok + + + + WelcomeContentWidget + + Dialog + Dialog + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + Welcome + Välkommen + + + Privacy + Privat + + + Masternodes + Masternoder + + + default + standard + + + + ZPivControlDialog + + Select zPIV to Spend + Välj zPIV att Spendera + + + Coin Control + Mynt Kontroll + + + PushButton + Tryck pÃ¥ knappen + + + Quantity: + Kvantitet: + + + Is Spendable + Är Spenderbar + + + 0 + 0 + + + Select/Deselect All + Markera/Avmarkera alla + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = behÃ¥ll tx meta data t.ex. kontoägare och information om betalningsförfrÃ¥ga, 2 = släpp tx meta data) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + TillÃ¥t JSON-RPC anslutningar frÃ¥n specifierad källa. Giltig till <ip> är en singel IP (t.ex. 1.2.3.4), ett nätverk/nätmask (t.ex. 1.2.3.4/255.255.255.0) eller ett nätverk/CIDR (t.ex. 1.2.3.4/24). Detta alternativ kan specifieras flera gÃ¥nger + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Bind till given adress och lyssna alltid pÃ¥ den. Använd [värd]:port notation för IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Bind till angiven adress och vitlista peers att ansluta till den. Använd [värd]:port notation för IPv6 + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Bind till given adress att lyssna efter JSON-RPC anslutningar. Använd [värd]:port notation för IPv6. Detta alternativ kan specifieras flera gÃ¥nger (standard: bind till alla gränssnitt) + + + Calculated accumulator checkpoint is not what is recorded by block index + Beräknade ackumulator kontrollstation är inte vad som sparats av block index + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Kan ej lÃ¥sa in pÃ¥ data katalog %s. PIVX Kärna körs förmodligen redan. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Växel automatiskt slutgiltig budget beteende. läge=auto: Rösta endast för exakt slutförd budget matchning till min genererade budget. (sträng, standard: auto) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Kontinuerligt takt-begränsad fria transaktioner to <n>*1000 bytes per minut (standard:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Skapa nya filer med systemets standard tillstÃ¥nd, istället för umask 077 (endast effektgivande med inaktiverade plÃ¥nboksfunktioner) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Radera alla plÃ¥nbokstransaktioner och Ã¥terhämta endast de delar av blockchain genom -rescan vid uppstart + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Radera alla zerocoin spenderingar och mints som har blivit nedskrivna till blockchain databasen och placera om de i indexet (0-1, default: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribuerad under MIT mjukvarulicensen, se medföljande fil COPYING eller <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Aktivera automatisk plÃ¥nboksbackup efter varje zPIV minting (0-1, standard: %u) + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Aktivera eller avaktivera staking funktionalitet för PIV inmatningar (0-1, standard: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Aktivera eller avaktivera staking funktionalitet för zPIV inmatningar (0-1, standard: %u) + + + Enable spork administration functionality with the appropriate private key. + TillÃ¥t spork administration funktion med den lämpliga privata nyckeln. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + GÃ¥ in i regressions testläge, som använder en speciell chain som block kan lösas omedelbart. + + + Error: Listening for incoming connections failed (listen returned error %s) + Felmeddelande: Lystnande efter inkommande anslutningar misslyckades (listen Ã¥tergav fel %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Felmeddelande: Transaktionen är större än maximala tillÃ¥tna transaktions storleken! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Felmeddelande: Ohanterbart argument -socks hittad. Ställa in SOCKS version är inte möjligt längre, endast SOCKS5 proxies stöds. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Exekvera kommando när en relevant varning tas emot eller när vi ser en jättelÃ¥ng fork (%s i cmd byts ut mot meddelande) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Exekvera kommando när en plÃ¥nbok transaktion ändras (%s i cmd är utbytt mot TxID) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Exekvera kommando när den bästa block ändras (%s i cmd är utbytt mot block hash) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Avgifter (i PIV/Kb) mindre än detta anses vara noll avgift i vidarebefodring (standard: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Avgifter (i PIV/Kb) mindre än detta anses vara noll avgift i transaktionsskapelse (standard: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Spola databasaktivitet frÃ¥n minnes pool till disk log varje <n>megabytes (default: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Om paytxfee inte är satt, inkludera tillräcklig avgift för att transaktionen ska börja bekräfta i genomsnitt inom n block (standard: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + I detta läge -genproclimit kontrolleras hur mÃ¥nga block som genereras omedelbart. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Otillräckliga eller otillräckligt bekräftade pengar, du kan behöva vänta nÃ¥gra minuter och försöka igen. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Ogiltig mängd -maxtxfee=<amount>: '%s' (mÃ¥ste vara minst minrelay avgift av %s för att förhindra att transaktioner fastnar) + + + Keep the specified amount available for spending at all times (default: 0) + HÃ¥ll den specifierade mängden tillgänglig till att spenderas vid alla tillfällen (standard: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Log transaktion prioritet och avgift per kB närmining block (standard: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + BehÃ¥ll en full transaktionsindex, använd av getrawtransaction rpc call (standard: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Maximal datastorlek i databärar transaktioner ändrar vi väg och mine (standard: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Maximala fullständiga avgifter att använda i en ensam plÃ¥nbokstransaktion, om satt för lÃ¥g sÃ¥ kanske stora transaktioner avbryts (standard: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Antal sekunder att hindra peers som beter sig illa frÃ¥n att Ã¥teransluta (standard: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + Obfuscation använder exakta denominerade mängder för att skicka medel, du kan helt enkelt behöva anonymisera nÃ¥gra fler mynt. + + + Output debugging information (default: %u, supplying <category> is optional) + Utmata felsökningsinformation (standard: %u, tillgodose <category> är frivilligt) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + FrÃ¥ga efter peer adresser via DNS lookup, om fÃ¥ adresser (standard: 1 om inte -connect) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Slumpa kreditiv för varje proxy anslutning. Detta tillÃ¥ter Tor stream isolation (standard: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Kräver hög prioritet för att lägga om gratis eller lÃ¥g-avgifts transaktionsväg (standard: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + Skicka spÃ¥ra/felsöknings information till konsoll istället för debug.log fil (standard: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Sätt maximala storlek för hög-prioritet/lÃ¥g-avgift transaktioner i bytes (standard: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Sätt mängden scripbekräftelse trÃ¥dar (%u till %d, 0 = auto, <0 = lämna sÃ¥ mÃ¥nga kärnor fria, standard: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Sätt mängden trÃ¥dar Ã¥t mynt generering om aktiverad (-1 = alla kärnor, standard: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Visa N bekräftelser för en lyckad lÃ¥st transaktion (0-9999, standard: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Stödjer filtrering av block och transaktioner med blomm filter (standard: %u) + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + Denna produkt inkluderar mjukvara utvecklad av OpenSSL Projektet för användning i OpenSSL Toolkit <https://www.openssl.org/> och kryptografisk mjukvara skriven av Eric Young och UPnP mjukvara skriven av Thomas Bernard. + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + Totala längden av nätverks verisionens sträng (%i) överskrider maximala längd (%i). Minska mängden eller storleken av uakommentarer. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Kan inte binda till %s pÃ¥ denna dator. PIVX Core körs förmodligen redan. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Kan ej lokalisera tillräckligt Fördunklingsdenominationerade pengar för denna transaktion. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Kan ej lokalisera tillräckligt Fördunkling icke-denominationerade pengar för denna transaktion som inte är 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Kan inte hitta tillräckligt med pengar för denna transaktion som inte är 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Använd separera SOCKS5 proxy för att nÃ¥ peers via Tor hidden services (standard: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Varning: -maxtxfee är sätt väldigt högt! Avgifter sÃ¥här stora kan betalas med en ensam transaktion. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Varning: -maxtxfee är sätt väldigt högt! Detta är transaktionsavgiften du kommer betala om du skickar en transaktion. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Varning: Var vänlig kontrollera att din dators tid och datum är korrekt! Om din klocka är fel sÃ¥ kommer PIVX Core inte att fungera korrekt. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Varning: Nätverket verkar inte fullständigt hÃ¥lla med! NÃ¥gra miners verkar uppleva problem. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Varning: Vi verkar inte fullständigt hÃ¥lla med vÃ¥ra peers! Du kan behöva uppgradera, eller andra noder kan behöva uppgraderas. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Varning: fel intäffade när wallet.dat skulle läsas! Alla nycklar lästes korrekt, men transaktionsdata eller adress bokinmatningar kan fattas eller vara fel. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Varning: wallet.dat korrupt, data bärgat! Original wallet.dat sparad som wallet.{timestamp}.bak i %s; om ditt saldo eller transaktioner är fel borde du Ã¥terställa frÃ¥n en backup. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Vitlista peers som ansuter frÃ¥n den angivna nätmasken eller IP adressen. Kan specifieras flera gÃ¥nger. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Vitlistade peers kan ej DoS bannas och deras transaktioner är alltid vidarebofordrade, även om dom redan är i mempool, användbart t.ex. för en gateway + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + Du mÃ¥ste specifiera en masternodeprivkey i konfigurationen. Var vänlig se dokumentationen för hjälp. + + + (51472 could be used only on mainnet) + (51472 kunde endast användas pÃ¥ mainnet) + + + (default: %s) + (standard: %s) + + + (default: 1) + (standard: 1) + + + (must be 51472 for mainnet) + (mÃ¥ste vara 51472 för mainnet) + + + Accept command line and JSON-RPC commands + Acceptera kommandolinje och JSON-RPC kommandon + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Acceptera anslutningar utifrÃ¥n (standard: 1 om ingen -proxy eller -connect) + + + Accept public REST requests (default: %u) + Acceptera offentlig REST förfrÃ¥gningar (standard: %u) + + + Add a node to connect to and attempt to keep the connection open + Lägg till en nod för att ansluta till och försöka att hÃ¥lla anslutningen öppen + + + Allow DNS lookups for -addnode, -seednode and -connect + TillÃ¥t DNS lookups för -addnode, -seednode och -connect + + + Always query for peer addresses via DNS lookup (default: %u) + FrÃ¥ga alltid efter peer adresser via DNS lookup (standard: %u) + + + Append comment to the user agent string + Bifoga kommentar till användaragent strängen + + + Attempt to recover private keys from a corrupt wallet.dat + Försök Ã¥terfÃ¥ privata nycklar frÃ¥n en korrupt wallet.dat + + + Automatically create Tor hidden service (default: %d) + Skapa automatiskt Tor hidden service (standard: %d) + + + Block creation options: + Block skapande alternative: + + + Calculating missing accumulators... + Beräknar fattandes ackumulatorer... + + + Cannot downgrade wallet + Kan ej nergradera plÃ¥nbok + + + Cannot resolve -bind address: '%s' + Kan ej lösa -bind adress: '%s' + + + Cannot resolve -externalip address: '%s' + Kan ej lösa -externalip adress: '%s' + + + Cannot resolve -whitebind address: '%s' + Kan ej lösa -whitebind adress: '%s' + + + Connect only to the specified node(s) + Anslut endast till de specifierade nod(erna) + + + Connect through SOCKS5 proxy + Anslut genom SOCKS5 proxy + + + Connect to a node to retrieve peer addresses, and disconnect + Anslut till en not för att hämta upp peer adresser, och koppla ifrÃ¥n + + + Connection options: + Anslutningsalternativ: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Core Developers + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i The Dash Core Developers + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i The PIVX Core Developers + + + Corrupted block database detected + Korrupterad blockdatabas upptäckt + + + Could not parse masternode.conf + Kunde ej tolka masternode.conf + + + Debugging/Testing options: + Felsökning/Test alternativ: + + + Delete blockchain folders and resync from scratch + Radera blockchainmappar och synka om frÃ¥n början + + + Disable OS notifications for incoming transactions (default: %u) + Inaktivera OS notifikationer för inkommande transaktioner (standard: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Avaktivera säkert läge, köröver en riktig säkert läge händelse (standard: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Upptäck egen IP adress (standard: 1 när lyssnar och ingen -externalip) + + + Do not load the wallet and disable wallet RPC calls + Ladda inte plÃ¥nboken och avaktivera plÃ¥nbok RPC kallning + + + Do you want to rebuild the block database now? + Vill du bygga om block databasen nu? + + + Done loading + Färdigladdat + + + Enable automatic Zerocoin minting (0-1, default: %u) + Aktivera automatisk Zerocoin minting (0-1, standard: %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + Aktivera publicera hash transaktion (lÃ¥st via SwiftX) i <address> + + + Enable publish raw transaction (locked via SwiftX) in <address> + Aktivera publicera rÃ¥ transaktion (lÃ¥st via SwiftX) i <address> + + + Enable the client to act as a masternode (0-1, default: %u) + TillÃ¥t klinten att bete sig som en huvudnod (0-1, standard: %u) + + + Error initializing block database + Fel vid initialisering av blockdatabas + + + Error initializing wallet database environment %s! + Fel initialisering av plÃ¥nboksdatabas miljö %s! + + + Error loading block database + Fel vid laddning av blockdatabas + + + Error loading wallet.dat + Fel vid laddning av wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Fel vid laddning av wallet.dat: PlÃ¥nbok korrupterad + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Fel vid laddning av wallet.dat: PlÃ¥nbok kräver nyare PIVX Kärna version + + + Error opening block database + Fel vid öppning av block databas + + + Error reading from database, shutting down. + Fel vid läsning frÃ¥n databas, stänger ner. + + + Error writing zerocoinDB to disk + Fel vid skrivning av zerocoinDB till disk + + + Error + Fel + + + Error: A fatal internal error occured, see debug.log for details + Fel: Ett fatalt internt fel inträffade, se debug.log för detaljer + + + Error: Disk space is low! + Fel: Diskutrymme lÃ¥gt! + + + Error: Unsupported argument -tor found, use -onion. + Fel: Argument som ej stöds, -tor, hittat, använd -onion. + + + Error: Wallet locked, unable to create transaction! + Fel: PlÃ¥nbok lÃ¥st, kan ej genomföra transaktion! + + + Failed to calculate accumulator checkpoint + Misslyckades att beräkna ackumulator kontrollstation + + + Failed to listen on any port. Use -listen=0 if you want this. + Misslyckades att lyssna pÃ¥ nÃ¥gon port. Använd -listen=0 om du vill detta. + + + Failed to parse host:port string + Misslyckades ta ut satsdelarna i host:port sträng + + + Failed to read block + Misslyckades läsa block + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Avgift (i PIV/kB) för att lägga till transaktioner you skicka (standard: %s) + + + Force safe mode (default: %u) + Tvinga säkert läga (standard: %u) + + + Generate coins (default: %u) + Generera mynt (standard: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Hur mÃ¥nga block som kollas vid start (standard: %u, 0 = alla) + + + If <category> is not supplied, output all debugging information. + Om <category> inte ges, mata ut all felsökningsinformation. + + + Importing... + Importerar... + + + Imports blocks from external blk000??.dat file + Importera block frÃ¥n externt blk000??.dat fil + + + Include IP addresses in debug output (default: %u) + Inkludera IP adress i felsökningens utmatning (standard: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + Ogiltig eller ingen tillblivelse block hittat. Fel datadir för nätverk? + + + Information + Information + + + Initialization sanity check failed. PIVX Core is shutting down. + Initierings renlighetscheck misslyckades. PIVX Kärna stängs ner. + + + Insufficient funds + Otillräckliga pengar + + + Insufficient funds. + Otillräckliga pengar. + + + Invalid -onion address or hostname: '%s' + Ogiltig -onion adress eller värdnamn: '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + Ogiltig mängd -maxtxfee=<amount>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Ogiltig mängd -minrelaytxfee=<amount>: '%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + Ogiltig mäng -mintxfee=<amount>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Ogiltig mäng -paytxfee=<amount>: '%s' (mÃ¥ste vara minst %s) + + + Invalid amount for -paytxfee=<amount>: '%s' + Ogiltig mäng -paytxfee=<amount>: '%s' + + + Invalid amount for -reservebalance=<amount> + Ogiltig mäng -reservebalance=<amount> + + + Invalid amount + Ogiltig mängd + + + Invalid masternodeprivkey. Please see documenation. + ogiltig masternodeprivkey. Var vänlig se dokumentation. + + + Invalid netmask specified in -whitelist: '%s' + Ogiltig nätmask spefifierad i -whitelist: '%s' + + + Invalid port detected in masternode.conf + Ogiltig port upptäckt i masternode.conf + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Procent automatiskt mintad Zerocoin (1-100, default: %u) + + + Reindex the PIV and zPIV money supply statistics + Indexera PIV och zPIV pengarna tillgÃ¥ng statistik pÃ¥ nytt + + + Reindexing zerocoin database... + Indexera zerocoin databas pÃ¥ nytt... + + + Reindexing zerocoin failed + Indexera zerocoin pÃ¥ nytt misslyckades + + + Selected coins value is less than payment target + Valda mynts värde är under betalningsmÃ¥l + + + Support the zerocoin light node protocol (default: %u) + Stöd zerocoin protokollet för light node (standard: %u) + + + SwiftX options: + SwiftX alternativ: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + Det här är en för-släppt test byggnad - använd pÃ¥ din egna risk - använd inte för staking eller handel applikationer! + + + mints deleted + + mints raderade + + + + mints updated, + mints updaterade, + + + unconfirmed transactions removed + + obekräftade transaktioner borttagna + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Avaktivera all PIVX funktionalitet (Huvudnoder, Zerocoin, SwiftX, Budgeting) (0-1, standard: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + TillÃ¥t SwiftX, visa bekräftelser för lÃ¥sta transaktioner (bool, default: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Fel: Transaktionen nekades! Detta kan hända om nÃ¥gra mynt i din plÃ¥nbok redan har spenderats, möjligen att du använt en kopia av wallet.dat och spenderade mynt frÃ¥n kopian men de inte blivit markerade som spenderade här. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + Fel: Denna transaktion kräver enatransaktionsavgift pÃ¥ minst %s pÃ¥ grund av dess mängd, komplexitet, eller användning av nyligen mottagna pengar! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + Fel: Argument som ej stöds hittat, -checklevel. Checklevel mÃ¥ste vara 4. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + Exekvera kommando när den bästa block ändras och dess storlek är över (%s i cmd är utbytt mot block hash, %d med blockstorleken) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Misslyckades hitta mynt set bland hÃ¥llandes mynt med mindre än maxNumber av Spenderingar + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + I sällsynta fall, en spendering med 7 mynt överstiger vÃ¥ran maximala tillÃ¥tna transaktionsstorlek, var vänlig försök spendera 6 elr färre mynt + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Valör aatt föredra för automatiskt mintad Zerocoin (1/5/10/50/100/500/1000/5000), 0 för ingen preface. standard: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Specifiera skräddarsydd backup väg att lägga till en kopia av alla automatisk zPIV backup. Om satt som dir, varje backup genererar en tidsstämplad fil. Om satt som fil, skriver över den filen vid varje backup. Om backupvägen ocksÃ¥ är satt, 4 backups kommer hända + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Specifiera skräddarsydd backup väg att lägga till en kopia av vilken plÃ¥nbok backup som helst. Om satt som dir, varje backup genererar en tidsstämplad fil. Om satt som fil, skriver över den filen vid varje backup. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftX kräver inmatningar med minst 6 bekräftelser, du kan behöva vänta nÃ¥gra minuter och försöka igen. + + + <category> can be: + <category> kan vara: + + + Attempt to force blockchain corruption recovery + Försök tvinga Ã¥terhämtning av korrupt blockchain + + + CoinSpend: Accumulator witness does not verify + CoinSend: Ackumulator vittnesmÃ¥l verifierar inte + + + Display the stake modifier calculations in the debug.log file. + Visar stake modifierar beräkningar i debug.log fil. + + + Display verbose coin stake messages in the debug.log file. + Visa omständig mynt stake meddelande i debug.log filen. + + + Enable publish hash block in <address> + Aktivera publicera hash block i <address> + + + Enable publish hash transaction in <address> + Aktivera publicera hash transaktion i <address> + + + Enable publish raw block in <address> + Aktivera publicera rÃ¥ block i <address> + + + Enable publish raw transaction in <address> + Aktivera publicera rÃ¥ transaktion i <address> + + + Enable staking functionality (0-1, default: %u) + Aktivera staking funktionalitet (0-1, standard: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Fel: Ett fatalt internt fel hände, se debug.log för detaljer + + + Error: No valid utxo! + Fel: Ingen giltig utxo! + + + Failed to create mint + Misslyckades skapa mint + + + Failed to find Zerocoins in wallet.dat + Misslyckades hitta Zerocoins i wallet.dat + + + Failed to select a zerocoin + Misslyckades välja en zerocoin + + + Failed to wipe zerocoinDB + Misslyckades torka zerocoinDB + + + Failed to write coin serial number into wallet + Misslyckades skriva mynt serienummer i plÃ¥nbok + + + Keep at most <n> unconnectable transactions in memory (default: %u) + BehÃ¥ll som mest <n> oanslutningsbara transaktioner i minne (standard: %u) + + + Limit size of signature cache to <n> entries (default: %u) + Begränsa storlek av signatur cache till <n> poster (standard: %u) + + + Line: %d + Linje: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + Leta efter JSON-RPC anslutningar pÃ¥ <port> (standard: %u eller testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + Lystna efter anslutningar pÃ¥ <port>(default: %u or testnet: %u) + + + Loading addresses... + Laddar adresser... + + + Loading block index... + Laddar block index... + + + Loading budget cache... + budget cache... + + + Loading masternode cache... + Laddar huvudnod cache... + + + Loading masternode payment cache... + Laddar huvudnodens betalnings cache... + + + Loading sporks... + Laddar sporks... + + + Loading wallet... (%3.2f %%) + Laddar plÃ¥nbok... (%3.2f%%) + + + Loading wallet... + Laddar plÃ¥nbok... + + + Location of the auth cookie (default: data dir) + Lokation av auth cookie (standard: data dir) + + + Lock masternodes from masternode configuration file (default: %u) + LÃ¥s huvudnoder frÃ¥n huvudnod konfigurations fil (standard: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Lookup(): Ogiltig -proxy adress eller värdnamn: '%s' + + + Maintain at most <n> connections to peers (default: %u) + BehÃ¥ll som mest <n> anslutningar till peers (standard: %u) + + + Masternode options: + Masternod val: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Maximala mottagna per-anslutning buffer, <n>*1000 bytes (standard: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Maximala skicka per-anslutning buffer, <n>*1000 bytes (standard: %u) + + + Mint did not make it into blockchain + Mint kom inte med i blockchain + + + Need to specify a port with -whitebind: '%s' + Port behöver specifieras med -whitebind: '%s' + + + Node relay options: + Nod relä val: + + + Not enough file descriptors available. + Ej tillräckliga fil deskriptorer tillgängliga. + + + Number of automatic wallet backups (default: 10) + Antal automatiska plÃ¥nboks backups (standard: 10) + + + Number of custom location backups to retain (default: %d) + Antal skräddarsydda platser för backup att behÃ¥lla (standard: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Acceptera endast block chain som matchar inbyggda kontrollstationer (standard: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + Anslut endast till noder i nätverk <net> (ipv4, ipv6 eller onion) + + + Options: + Val: + + + Password for JSON-RPC connections + Lösenord för JSON-RPC anslutningar + + + Unable to find transaction containing mint %s + Det gick inte att hitta transaktionen som innehöll prägling %s + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid(): Ogiltig -proxy adress eller värdnamn: '%s' + + + Preparing for resync... + Förbereder för omsynkronisering... + + + Prepend debug output with timestamp (default: %u) + Addera till början felsöknings utmatning med tidsstämpel (standard: %u) + + + Print version and exit + Skriv ut version och stäng + + + RPC server options: + RPC server alternativ: + + + Randomly drop 1 of every <n> network messages + Slumpmässig släpp 1 för varje <n> nätverksmeddelanden + + + Randomly fuzz 1 of every <n> network messages + Slumpmässigt brusa 1 för varje <n> nätverksmeddelanden + + + Rebuild block chain index from current blk000??.dat files + Bygg om block chain index frÃ¥n nuvarande blk000??.dat filer + + + Receive and display P2P network alerts (default: %u) + Motta och visa P2P nätverk varningar (standard: %u) + + + Reindex the accumulator database + Indexera om ackumulator databasen + + + Relay and mine data carrier transactions (default: %u) + Lägg om och utvinn data bärar transaktioner (standard: %u) + + + Relay non-P2SH multisig (default: %u) + Lägg om icke-P2SH multisig (standard: %u) + + + Rescan the block chain for missing wallet transactions + Skanna om block chain för transaktioner som fattas + + + Rescanning... + Skannar om... + + + ResetMintZerocoin finished: + ResetMintZerocoin färdig: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin färdigt: + + + Run a thread to flush wallet periodically (default: %u) + Kör en trÃ¥d för att spola plÃ¥nbok periodvis (standard: %u) + + + Run in the background as a daemon and accept commands + Kör i bakgrunden som en daemon och acceptera kommandon + + + Send transactions as zero-fee transactions if possible (default: %u) + Skicka transaktioner som avgiftsfria transaktioner om möjligt (standard: %u) + + + Session timed out. + Sessionens tidsgräns överskriden + + + Set database cache size in megabytes (%d to %d, default: %d) + Ställ in databas cache storlek i megabytes (%d till %d, standard: %d) + + + Set external address:port to get to this masternode (example: %s) + Ställ in externa adress:port för att komma Ã¥t denna huvudnod (exempel: %s) + + + Set key pool size to <n> (default: %u) + Ställ in nyckel pool storlek till <n> (standard: %u) + + + Set maximum block size in bytes (default: %d) + Ställ in maximala blockstorlek i bytes (standard: %d)  + + + Set minimum block size in bytes (default: %u) + Ställ in minimum blockstorlek i bytes (standard: %u)  + + + Set the Maximum reorg depth (default: %u) + Ställ in maximala reorg djup (standard: %u)  + + + Set the masternode private key + Ställ in privata huvudnods nyckeln + + + Set the number of threads to service RPC calls (default: %d) + Ställ in antalet trÃ¥dar att behandla RPC calls (default: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Ställer in DB_PRIVATE flaggan i plÃ¥nbokens db miljö (standard: %u)  + + + Show all debugging options (usage: --help -help-debug) + Visa alla felsöknings alternativ (användning: --help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Minska debug.log fil vid klient start (standard: 1 när ingen -debug) + + + Signing timed out. + Signeringens tidsgräns överskriden + + + Signing transaction failed + Signering av transaktion misslyckades + + + Specify configuration file (default: %s) + Specifiera konfigurationsfil (standard: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + Specifiera anslutnings timeout i millisekunder (minimum: 1, standard: %d) + + + Specify data directory + Specificera data katalog + + + Specify masternode configuration file (default: %s) + Specifiera huvudnod konfigurationsfil (standard: %s) + + + Specify pid file (default: %s) + Specifiera pid fil (standard: %s) + + + Specify wallet file (within data directory) + Specifiera plÃ¥nboksfil (inom data katalog) + + + Specify your own public address + Specifiera din egna offentliga adress + + + Spend Valid + Spendering Giltig + + + Spend unconfirmed change when sending transactions (default: %u) + Spendera obekräftad växel när transaktioner skickas (standard: %u) + + + Staking options: + Staking alternativ: + + + Stop running after importing blocks from disk (default: %u) + Sluta kör efter block har importerats frÃ¥n disk (standard: %u) + + + Synchronization failed + Synchronisering misslyckad + + + Synchronization finished + Synkronisering klar + + + Synchronization pending... + Synchronisering väntar + + + Synchronizing budgets... + Synchroniserar budgetar + + + Synchronizing masternode winners... + Synkroniserar huvudnod vinnarna... + + + Synchronizing masternodes... + Synchroniserar masternoder + + + Synchronizing sporks... + Synkroniserar sporks... + + + Syncing zPIV wallet... + Synkroniserar zPIV plÃ¥nbok... + + + The coin spend has been used + Mynt spenderingen har redan använts + + + The transaction did not verify + Transaktionen verifierades inte + + + This help message + Detta hjälpmedelande + + + This is experimental software. + Detta är experimentiell mjukvara + + + This is intended for regression testing tools and app development. + Det här är menat för regression testverktyg och app utveckling. + + + Threshold for disconnecting misbehaving peers (default: %u) + Tröskel för att koppla frÃ¥n peers som beteer sig illa (standard: %u) + + + Too many spends needed + För mÃ¥nga spenderingar behövda + + + Tor control port password (default: empty) + Tor kontroll port lösenord (standard: tom) + + + Tor control port to use if onion listening enabled (default: %s) + Tor kontroll port att använda om onion lystning är aktiverad (standard: %s) + + + Transaction Created + Transaktion Skapad + + + Transaction Mint Started + Transaktion Mint Startad + + + Transaction amount too small + Transaktionens antal för litet + + + Transaction amounts must be positive + Transaktionens värde mÃ¥ste vara possitivt + + + Transaction too large for fee policy + Transaktionen för stor för avgifts policy + + + Transaction too large + Transaktion för stor + + + Trying to spend an already spent serial #, try again. + Försöker spendera en redan spendera serie #, försök igen. + + + Unable to bind to %s on this computer (bind returned error %s) + Kan ej binda till %s pÃ¥ denna dator (bind Ã¥tergav fel %s) + + + Unable to sign spork message, wrong key? + Kan ej signera spork meddelande, fel nyckel? + + + Unable to start HTTP server. See debug log for details. + Kan ej starta HTTP server. Se felsöknings log för detaljer. + + + Unknown network specified in -onlynet: '%s' + Okänt nätverk specifierat i -onlynet: '%s' + + + Upgrade wallet to latest format + Upgradera plÃ¥nbok till senaste format + + + Use UPnP to map the listening port (default: %u) + Använd UPnP för att kartlägga den lystnande porten (standard: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Använd UPnP för att kartlägga den lyssnande porten (standard: 1 när lyssnar) + + + Use a custom max chain reorganization depth (default: %u) + Använd en skräddarsydd max chain reorganiserations djup (standard: %u) + + + Use the test network + Använd test nätverket + + + User Agent comment (%s) contains unsafe characters. + Användaragent kommentar (%s) innehÃ¥ller osäkra tecken. + + + Username for JSON-RPC connections + Användarnamn för JSON-RPC anslutningar + + + Value is below the smallest available denomination (= 1) of zPIV + Värde är under den minsta tillgängliga valören (=1) av zPIV + + + Verifying blocks... + Verifierar block + + + Verifying wallet... + Verifierar plÃ¥nbok + + + Wallet %s resides outside data directory %s + PlÃ¥nbok %s finns utanför data katalog %s + + + Wallet needed to be rewritten: restart PIVX Core to complete + PlÃ¥nbok behöver skrivas om: starta om PIVX Kärna för att göra klart + + + Wallet options: + PlÃ¥nboks val: + + + Wallet window title + PlÃ¥nboksfönster tittle + + + Warning + Varning + + + Warning: This version is obsolete, upgrade required! + Varning: Denna version är förÃ¥ldrad, upgradering krävs! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Varning: Argument -benchmark stödjes ej, ignoreras. Använd -debug=bench. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Varning: Argument -debugnet stödjes ej, ignoreras. Använd -debug=net. + + + You don't have enough Zerocoins in your wallet + Du har inte tillräckligt med Zerocoins i din plÃ¥nbok + + + You need to rebuild the database using -reindex to change -txindex + Du behöver bygga om databasen genom att använda -reindex för att ändra -txindex + + + Zapping all transactions from wallet... + Zapping alla transaktioner frÃ¥n plÃ¥nboken ... + + + ZeroMQ notification options: + ZeroMQ-anmälningsalternativ: + + + Zerocoin options: + Zerocoin alternativ: + + + on startup + Vid uppstart + + + wallet.dat corrupt, salvage failed + wallet.dat korrupt, räddning misslyckades + + + + send + + Form + Formulär + + + Send + Skicka + + + TextLabel + text etikett + + + PushButton + Tryck pÃ¥ knappen + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_tr.ts b/src/qt/locale/pivx_tr.ts new file mode 100644 index 0000000..bcf8c4d --- /dev/null +++ b/src/qt/locale/pivx_tr.ts @@ -0,0 +1,7574 @@ + + + AddNewAddressDialog + + Dialog + Diyalog + + + My Address + Adresim + + + Address + Adres + + + PushButton + Butona Basın + + + CANCEL + Ä°PTAL + + + OK + TAMAM + + + + AddNewContactDialog + + Dialog + Diyalog + + + TextLabel + TextLabel + + + CANCEL + Ä°PTAL + + + OK + TAMAM + + + Edit Contact + KiÅŸiyi Güncelle + + + Set a label for the selected address + Seçili adres için etiket belirleyin + + + Enter a name for the address (e.g Exchange) + Adres için isim girin (örn. Borsa) + + + SAVE + KAYDET + + + Edit label for the selected address: +%1 + Seçili adres için etiketi güncelleyin +%1 + + + + AddressBookPage + + Right-click to edit address or label + Adresi ya da etiketi deÄŸiÅŸtirmek için saÄŸ tuÅŸa tıklayın + + + Create a new address + Yeni bir adres oluÅŸtur + + + &New + &Yeni + + + Copy the currently selected address to the system clipboard + Seçili olan adresi sistem panosuna kopyala + + + &Copy + &Kopyala + + + Delete the currently selected address from the list + Seçili olan adresi listeden sil + + + &Delete + &Sil + + + Export the data in the current tab to a file + Güncel sekmedeki verileri bir dosyaya aktar + + + &Export + Çıkart + + + C&lose + Kapat + + + Choose the address to send coins to + Coinleri gönderecek adresi seçin + + + Choose the address to receive coins with + Coinleri Alacak adresi seçin + + + C&hoose + Seçin + + + Sending addresses + Gönderen adres + + + Receiving addresses + Alıcı Adres + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Bunlar ödemeleri göndermek için olan PIVX adreslerinizdir.Coinleri göndermeden önce her zaman gönderilen miktarı ve adresi kontrol edin + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Bunlar ödemeleri almak için olan PIVX adreslerinizdirHer iÅŸlem için yeni bir adres kullanmanız önerilir. + + + &Copy Address + Adresi kopyala + + + Copy &Label + Kopyala &Etiket + + + &Edit + &Düzelt + + + Export Address List + Adres listesini çıkart + + + Comma separated file (*.csv) + Virgül ile ayrılmış dosya(*.csv) + + + Exporting Failed + Çıkartma iÅŸlemi baÅŸarısız + + + There was an error trying to save the address list to %1. Please try again. + Adres listesini %1 e kaydederken hata oldu.Lütfen tekrar deneyin + + + + AddressLabelRow + + Form + Form + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + AddressTableModel + + Label + Etiket + + + Address + Adres + + + Date + Tarih + + + (no label) + (etiket yok) + + + + AddressesWidget + + Form + Form + + + Send + Gönder + + + TextLabel + TextLabel + + + No active Master Node yet + Henüz aktif Masternode bulunmuyor + + + Contact name + KiÅŸi Ä°smi + + + Enter address + Adres girin + + + OK + TAMAM + + + Contacts + KiÅŸiler + + + You can add a new one in the options menu to the side. + Seçenekler menüsünde yan tarafa yeni bir tane ekleyebilirsiniz. + + + No contacts yet + GirilmiÅŸ baÄŸlantı yok + + + e.g. John Doe + örn. Ad Soyad + + + Enter a PIVX address + Bir PIVX adresi girin + + + SAVE + KAYDET + + + Invalid Contact Address + Geçersiz BaÄŸlantı Adresi + + + Cannot store your own address as contact + Kendi adresinizi baÄŸlantı adresi olarak kaydedemezsiniz. + + + Address already stored, label: %1 + Adres önceden kaydedilmiÅŸ, etiket: %1 + + + New Contact Stored + Yeni BaÄŸlantı Kaydedildi + + + Error Storing Contact + BaÄŸlantı Kayıt Hatası + + + Contact edited + BaÄŸlantı güncellendi + + + Contact edit failed + BaÄŸlantı güncelleme hatası + + + Delete Contact + BaÄŸlantıyı Sil + + + You are just about to remove the contact: + +%1 + +Are you sure? + BaÄŸlantıyı silmek üzeresiniz: + +%1 + +Emin misiniz? + + + Contact Deleted + BaÄŸlantı Silindi + + + Error deleting a contact + BaÄŸlantıyı silme hatası + + + Address copied + Adres kopyalandı + + + + AskPassphraseDialog + + Passphrase Dialog + Åžifre sözcüğü DiyaloÄŸu + + + TextLabel + TextLabel + + + PushButton + Butona Basın + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Yeni ÅŸifre sözcüğünü cüzdana girinLütfen bir ÅŸifre sözcüğü kullanın <br/><b>10 veya daha fazla karakter içeren</b>veya<b>8 veya daha fazla kelime içeren</b> + + + Encrypt wallet + Cüzdanı ÅŸifreleyin + + + This operation needs your wallet passphrase to unlock the wallet. + Bu iÅŸlem, cüzdan kilidini açmak için cüzdan parolanıza ihtiyaç duyuyor. + + + Unlock wallet +for staking + Cüzdanın kilidini +Stake için kaldırın + + + Unlock wallet + Cüzdanı aç + + + This operation needs your wallet passphrase to decrypt the wallet. + Bu iÅŸlem, cüzdan ÅŸifresini çözmek için cüzdan parolanıza ihtiyaç duyuyor. + + + Decrypt wallet + cüzdan ÅŸifresini çöz + + + Change passphrase + Åžifreyi deÄŸiÅŸtir + + + Enter the old and new passphrase to the wallet. + Cüzdanınıza eski ve yeni parolayı girin. + + + Confirm wallet encryption + cüzdan ÅŸifrelemesini onayla + + + ENCRYPT + ŞİFRELE + + + CANCEL + Ä°PTAL + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX ÅŸifreleme iÅŸlemini tamamlamak için ÅŸimdi kapanacaktır. Cüzdanınızı ÅŸifrelemenin, PIV'lerinizi bilgisayarınıza bulaÅŸan kötücül yazılımlar tarafından çalınmasına tamamen engelleyemediÄŸini unutmayın + + + Are you sure you wish to encrypt your wallet? + Cüzdanınızı ÅŸifrelemek istediÄŸinizden emin misiniz? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Dikkat! EÄŸer cüzdanınızı ÅŸifrelerseniz ve ÅŸifrenizi unutursanız <b>Tüm Pıvlerinizi kaybedersiniz</b>! + + + Wallet encrypted + Cüzdan ÅŸifrelendi + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + Önemli: wallet dosyası ile daha önce yaptığınız yedeklemeler ÅŸifreleme sonrası yenisi ile tekrar yedeklenmelidir.Güvenlik nedenleri ile, ÅŸifrelenmemiÅŸ cüzdanınıza ait yedeklemeler yeni ÅŸifrelenmiÅŸ cüzdanoınızla birlikte kullanılmaz hale gelecektir. + + + Wallet encryption failed + Cüzdan ÅŸifrelemesi baÅŸarısız oldu + + + OK + TAMAM + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + Dahili bir hata nedeniyle cüzdan ÅŸifrelemesi baÅŸarısız oldu. Cüzdanınız ÅŸifrelenmedi. + + + The supplied passphrases do not match. + Verilen parolalar uyuÅŸmuyor. + + + Wallet unlock failed + Cüzdan kilidini açma baÅŸarısız oldu + + + The passphrase entered for the wallet decryption was incorrect. + cüzdan ÅŸifre çözme iÅŸlemi için girilen parola yanlıştı. + + + Wallet decryption failed + Cüzdan ÅŸifre çözme iÅŸlemi baÅŸarısız oldu + + + Wallet passphrase was successfully changed. + Cüzdan parolası baÅŸarıyla deÄŸiÅŸtirildi. + + + Warning: The Caps Lock key is on! + Uyarı: Caps Lock tuÅŸu açık! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + Yasaklılık BitiÅŸ Tarihi + + + + BlockExplorer + + Blockchain Explorer + Blok zinciri tarayıcı + + + Back + Geri + + + Forward + Ileri + + + Address / Block / Transaction + Adres/Blok/Ä°ÅŸlem + + + Search + Ara + + + TextLabel + TextLabel + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Tüm iÅŸlemler gösterilmez. Tüm iÅŸlemleri görmek için yapılandırma dosyasında txindex = 1 ayarlamanız gerekir (pivx.conf). + + + + + CSRow + + Form + Form + + + Savings + Birikimler + + + 0,00 PIV + 0,00 PIV + + + address + adres + + + Not Staking + Stake yapılmıyor + + + Own delegation + Kendi delegasyonum + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Bilinmeyen: %5) + + + Network Alert + AÄŸ Uyarısı + + + + CoinControlDialog + + Quantity: + Miktar + + + Bytes: + Bytes: + + + Fee: + Ãœcret: + + + Coin Selection + Koin Seçimi + + + Dust: + Dust + + + Change: + Fark: + + + Tree mode + AÄŸaç modu + + + List mode + Liste modu + + + (1 locked) + (1 kilitli) + + + Amount + Miktar + + + Transaction Details + Ä°ÅŸlem Detayları + + + PushButton + Butona Basın + + + 0.00 PIV + 0.00 PIV + + + 0 + 0 + + + Select all + Tümünü seç + + + Toggle lock state + Kilit durumunu deÄŸiÅŸtir + + + Received with label + Etiket ile alındı + + + Received with address + Adres ile alındı + + + After Fee: + Ãœcret sonrası: + + + OK + TAMAM + + + Date + Tarih + + + Confirmations + DoÄŸrulamalar + + + Confirmed + DoÄŸrulandı + + + Copy address + Adresi Kopyala + + + Copy label + Etiketi kopyala + + + Copy amount + Miktarı kopyala + + + Copy transaction ID + Ä°ÅŸlem KimliÄŸini kopyala + + + Lock unspent + Harcanmamış tutarı kilitle + + + Unlock unspent + Harcanmamış tutarın kilidini aç + + + Copy quantity + Miktarı kopyala + + + Copy fee + Ãœcreti kopyala + + + Copy after fee + Ãœcret sonrasını kopyala + + + Copy bytes + bytes kopyala + + + Copy priority + öncelik kopyala + + + Copy dust + dust kopyala + + + Copy change + fark kopyala + + + Unselect all + Tüm seçimleri kaldır + + + Please switch to "List mode" to use this function. + Bu fonksiyonu kullanmak için "Liste moduna" geçin. + + + highest + en üst + + + higher + üstün + + + high + üst + + + medium-high + orta üst + + + medium + orta + + + low-medium + az orta + + + low + az + + + lower + daha az + + + lowest + en az + + + (%1 locked) + (%1 kilitlendi) + + + none + hiçbiri + + + yes + evet + + + no + hayır + + + This label turns red, if the transaction size is greater than 1000 bytes. + Ä°ÅŸlem boyutu 1000 bayttan büyükse bu etiket kırmızıya döner. + + + This means a fee of at least %1 per kB is required. + Bu, kB başına en az %1 'lik bir ücret gerektiÄŸi anlamına gelir. + + + Can vary +/- 1 byte per input. + GiriÅŸ başına +/- 1 bayt deÄŸiÅŸebilir. + + + Transactions with higher priority are more likely to get included into a block. + Daha yüksek önceliÄŸe sahip iÅŸlemlerin bir bloÄŸa dahil olma olasılığı daha yüksektir. + + + This label turns red, if the priority is smaller than "medium". + Öncelik "orta" dan küçükse bu etiket kırmızıya döner. + + + This label turns red, if any recipient receives an amount smaller than %1. + Herhangi bir alıcı %1 'den küçük bir miktar alırsa, bu etiket kırmızıya döner. + + + Can vary +/- %1 upiv per input. + Her giriÅŸ için +/- %1 upiv farkedebilir. + + + (no label) + (etiket yok) + + + change from %1 (%2) + %1 'den (%2) deÄŸiÅŸim + + + (change) + (deÄŸiÅŸiklik) + + + + CoinControlPivWidget + + Dialog + Diyalog + + + Transaction Details + Ä°ÅŸlem Detayları + + + PushButton + Butona Basın + + + PIV: + PIV: + + + TextLabel + TextLabel + + + Quantity: + Miktar + + + Fee: + Ãœcret: + + + Amount + Miktar + + + Label + Etiket + + + Address + Adres + + + Type + Yaz + + + Date + Tarih + + + Confirmations + Onaylar + + + CheckBox + CheckBox + + + Bytes: + Bytes: + + + Dust: + Dust + + + Change: + Fark: + + + After Fee: + Ãœcret sonrası: + + + CANCEL + Ä°PTAL + + + OK + TAMAM + + + + ColdStakingWidget + + Form + Form + + + Title + BaÅŸlık + + + TextLabel + TextLabel + + + PushButton + Butona Basın + + + Owner Address (optional, if empty a new address will be created) + Sahip Adresi (opsiyonel, boÅŸ bırakılırsa yeni adres yaratılır) + + + List of delegated balance by address + Delege edilmiÅŸ tutarların adrese göre listesi + + + Total + Toplam + + + Unconfirmed balance will not be shown + Onaylanmanış bakiye gösterilmez + + + No balance delegated + Delege edilmiÅŸ tutar bulunmuyor + + + Cold Staking + SoÄŸuk Stakleme + + + Staker + Stakleyen + + + Delegation + Delegasyon + + + You can delegate your PIVs and let a hot node (24/7 online node) +stake in your behalf, keeping the keys in a secure place offline. + PIV'lerinizi offline olarak güvenli bir yerde anahtarlarınızı saklarken +(24/7 online düğüm) olan bir sıcak düğüm ile adınıza stakeletebilirsiniz. + + + Add owner address + Sahip adresi ekle + + + Delegate or Accept PIV delegation + Delege et veya PIV delegasyonu kabul et + + + Delegate + Delege et + + + Clear All + Hepsini temizle + + + Add the staking address + Stakeleme adresi ekle + + + Delegated balance history + Delege edilmiÅŸ tutar tarihçesi + + + No delegations yet + Henüz bir delegasyon bulunmuyor + + + Total Staking: %1 + Toplam Stakeleme:%1 + + + Error loading delegations: %1 + Delegasyonların yüklenmesinde hata:%1 + + + No contacts available, you can go to the contacts screen and add some there! + Uygun adres bulunmuyor, AL ekranına giderek adres ekleyebilirsin. + + + Cold staking is networkely disabled + SoÄŸuk Stakeleme aÄŸ üzerinde etkin deÄŸil + + + Invalid entry + Geçersiz giriÅŸ + + + Invalid entry, minimum delegable amount is 10 PIV + Geçersiz giriÅŸ, delege edilebilir minimum tutar 10 PIV + + + Owner address invalid + Sahip adresi geçersiz + + + ALERT! + DÄ°KKAT! + + + Delegating to an external owner address! + +The delegated coins will NOT be spendable by this wallet. +Spending these coins will need to be done from the wallet or +device containing the owner address. + +Do you wish to proceed? + Dış bir adrese delege ediliyor! + +Delege edilmiÅŸ koinler bu cüzdan tarafından harcanamaz. +Bu koinler owner adresinin olduÄŸu cüzdan veya cihaz +tarafından harcanabilir. + +Devam etmek istiyor musunuz? + + + Staking address corresponds to this wallet, change it to an external node + Stakeleme adresi bu cüzdana karşılık gelmektedir, dış bir düğüme deÄŸiÅŸtir + + + Cannot create transaction. + Ä°ÅŸlem yaratılamıyor. + + + Coins delegated + Koinler delege edildi + + + You don't have any PIV to select. + SeçebileceÄŸiniz PIV'iniz bulunmuyor + + + URI copied to clipboard + URI panoya kopyalandı + + + Address copied to clipboard + Adres panoya kopyalandı + + + Copy + Kopyala + + + Edit + Güncelle + + + Stake + Stake + + + Blacklist + Karaliste + + + Edit Label + Etiketi Düzenle + + + Copy owner +address + Sahip adresi +kopyala + + + Address copied + Adres kopyalandı + + + Edit Cold Address Label + SoÄŸuk Adresin Etiketini Düzenle + + + Whitelist failed, please check the logs + Beyazliste baÅŸarısız oldu, logları kontrol ediniz + + + staking! + Stakeleniyor! + + + Blacklist failed, please check the logs + Karaliste baÅŸarısız oldu, logları kontrol ediniz + + + blacklisted from staking + Stakeleme için karalisteye alındı + + + Owner address copied + Sahip adresi kopyalandı + + + Edit Owner Address Label + Sahip Adresinin Etiketini Düzenle + + + Address label saved + Adres etiketi kaydedildi + + + Error storing address label + Adres etiketini kaydederken hata oluÅŸtu + + + + ContactDropdownRow + + Form + Form + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + DashboardWidget + + Form + Form + + + Transactions + Ä°ÅŸlemler + + + You can see here the history of your account + Burada hesabınızın geçmiÅŸini görebilirsiniz. + + + Warning + Uyarı + + + No transactions + Ä°ÅŸlem bulunmuyor + + + PushButton + Butona Basın + + + Staking Rewards + Stake ödülleri + + + TextLabel + TextLabel + + + Staking statistics + Stake Ä°statistikleri + + + PIV + PIV + + + zPIV + zPIV + + + Sort by + Sırala + + + Days + Gün + + + Months + Ay + + + Years + Yıl + + + Filter by + Filtrele + + + LabelText + LabelText + + + You can view your account's history + Hesap geçmiÅŸinizde görebilirsiniz + + + Amount of PIV and zPIV staked. + Stake edilmiÅŸ PIV ve zPIV miktarı + + + All + Tümü + + + Received + Alındı + + + Sent + Gönderildi + + + Mined + Mined + + + Minted + Mint edildi + + + MN reward + MN Ödülü + + + To yourself + Kendine + + + Cold stakes + SoÄŸuk Stakeler + + + Hot stakes + Sıcak Stakeler + + + Delegated + Delege edilmiÅŸ + + + Delegations + Delegasyonlar + + + Please wait until the wallet is fully synced to see your correct balance + DoÄŸru bakiyenizi görmek için cüzdanınızın senkronizasyonunun tamamlanmasını bekleyiniz. + + + No transactions yet + Ä°ÅŸlem bulunmuyor + + + How to get PIV or zPIV + PIV veya zPIV nasıl alınır + + + You can verify the staking activity in the status bar at the top right of the wallet. +It will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced. + Cüzdanınızın saÄŸ üst tarafındaki durum çubuÄŸundan stake aktivitelerinizi denetleyebilirsiniz +Cüzdanınız senkronize olduktan ve harcanmamış bakiyeniz yeterli miktarda onaya ulaÅŸtıktan sonra staking otomatik olarak baÅŸlayacaktır. + + + You have no staking rewards + Henüz stake ödülünüz bulunmuyor. + + + No charts library + Grafik kitaplığı yok + + + Loading chart.. + Grafik yükleniyor + + + Error loading chart, invalid show option + Grafik yükleme hatası, geçersiz gösterim seçeneÄŸi + + + Error loading chart, invalid data + Grafik yükleme hatası, geçersiz bilgi + + + Error loading chart: %1 + Grafik yükleme hatası: %1 + + + + DefaultDialog + + Form + Form + + + Transaction Details + Ä°ÅŸlem Detayları + + + Text Label + Etiket Yazısı + + + CANCEL + Ä°PTAL + + + SAVE + KAYDET + + + + DenomGenerationDialog + + Form + Form + + + Transaction Details + Ä°ÅŸlem Detayları + + + PushButton + Butona Basın + + + This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again. + Bu cüzdanınızın kilidini kaldıracaktır, dolayısıyla eriÅŸimi olan herkes cüzdan kapatılana kadar veya tekrar kilitlenene kadar harcama yapabilir. + + + 5000 + 5000 + + + 100 + 100 + + + 10 + 10 + + + 1000 + 1000 + + + 50 + 50 + + + 500 + 500 + + + 5 + 5 + + + 1 + 1 + + + Select All + Tümünü Seç + + + CANCEL + Ä°PTAL + + + SAVE + KAYDET + + + + EditAddressDialog + + Edit Address + Adres Düzenle + + + &Label + &Etiket + + + The label associated with this address list entry + Bu adres listesi giriÅŸiyle iliÅŸkilendirilen etiket + + + &Address + &Adres + + + The address associated with this address list entry. This can only be modified for sending addresses. + Bu adres listesi giriÅŸiyle iliÅŸkili adres. Bu, yalnızca adres göndermek için deÄŸiÅŸtirilebilir. + + + New receiving address + Yeni alıcı adresi + + + New sending address + Yeni gönderen adres + + + Edit receiving address + Alma adresi düzenle + + + Edit sending address + Gönderen adresini düzenle + + + The entered address "%1" is not a valid PIVX address. + Girilen "%1" adresi geçerli bir PIVX adresi deÄŸil. + + + The entered address "%1" is already in the address book. + Girilen "%1" adresi zaten adres defterinde. + + + Could not unlock wallet. + cüzdan kilidi açılamadı. + + + New key generation failed. + Yeni anahtar üretimi baÅŸarısız oldu. + + + + ExpandableButton + + Form + Form + + + + FreespaceChecker + + A new data directory will be created. + Yeni bir veri dizini oluÅŸturulacak + + + name + isim + + + Directory already exists. Add %1 if you intend to create a new directory here. + Dizin zaten var. Burada yeni bir dizin oluÅŸturmak istiyorsanız %1 ekleyin. + + + Path already exists, and is not a directory. + Yol zaten var ve bir dizin deÄŸil. + + + Cannot create data directory here. + Burada veri dizini oluÅŸturulamıyor. + + + + GovernancePage + + Form + Form + + + GOVERNANCE + YÖNETÄ°M + + + Update Proposals + Teklifleri Güncelle + + + Next super block: + Sıradaki süper blok + + + 0 + 0 + + + Blocks to next super block: + Sıradaki süper bloÄŸa kadarki blok sayısı: + + + Days to budget payout (estimate): + Bütçe ödemesine kalan gün (tahmini): + + + Allotted budget: + Ayrılmış Bütçe: + + + Budget left: + Kalan Bütçe: + + + Masternodes count: + Masternode Sayısı: + + + + HelpMessageDialog + + version + versiyon + + + PIVX Core + PIVX CORE + + + (%1-bit) + (%1-bit) + + + About PIVX Core + PIVX Core Hakkında + + + Command-line options + Command-line seçenekleri + + + Usage: + Kullanım: + + + command-line options + Komut-istemi seçenekleri: + + + UI Options: + Kullanıcı arayüzü seçenekleri: + + + Choose data directory on startup (default: %u) + BaÅŸlangıçta veri dizini seçin (varsayılan: %u) + + + Show splash screen on startup (default: %u) + BaÅŸlangıçta açılış ekranı göster (varsayılan: %u) + + + Set language, for example "de_DE" (default: system locale) + Dil ayarla, örneÄŸin "de_DE" (varsayılan: sistem yerel dili) + + + Start minimized + Küçültülmüş olarak baÅŸlat + + + Set SSL root certificates for payment request (default: -system-) + Ödeme talebi için SSL kök sertifikaları belirleyin (default: -system-) + + + OK + TAMAM + + + + Intro + + Welcome + HoÅŸgeldiniz + + + Welcome to PIVX Core. + PIVX Core'a hoÅŸgeldiniz. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Program ilk baÅŸlatıldığında PIVX Core'un verilerini nerede saklayacağını seçebilirsiniz. + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core, PIVX blok zincirinin bir kopyasını indirecek ve depolayacaktır. Bu dizinde en az %1GB veri saklanacak ve zamanla büyüyecektir. Ayrıca cüzdanınız da bu dizinde saklanır. + + + Use the default data directory + Varsayılan veri dizinini kullanınız + + + Use a custom data directory + Özel bir dizin kullan + + + CANCEL + Ä°PTAL + + + OK + TAMAM + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + Hata: Belirtilen veri dizini "%1" oluÅŸturulamıyor. + + + Error + hata + + + %1 GB of free space available + %1 GB boÅŸ alan mevcut + + + (of %1 GB needed) + ( %1 i GB gerekli) + + + + LoadingDialog + + Form + Form + + + TextLabel + TextLabel + + + Loading + Yükleniyor + + + . + . + + + + LockUnlock + + Form + Form + + + Unlock Wallet + Cüzdanın Kilidini Aç + + + Lock Wallet + Cüzdanı Kilitle + + + Staking Only + Sadece Stake için + + + + MNRow + + Form + Form + + + user_masternode + kullanıcı_masternode + + + Address: 88.26.164.88:51474 + Adres: 88.26.164.88:51474 + + + Jan. 19, 2019 + Ocak. 12,2019 + + + + MasterNodeWizardDialog + + Dialog + Diyalog + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + Intro + GiriÅŸ + + + Name + Ä°sim + + + Address + Adres + + + Create New Master Node Controller + Yeni bir Masternode Kontrolörü Yarat + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + <html><head/><body><p>Yeni bir Masternode yaratmak için aÄŸa 10.000 PIV (PIVX birimi) ayırmanız gerekmektedir (buna raÄŸmen koinler hala size aittir ve sahipliÄŸini kororsunuz). </p><p></p><p>Ä°stediÄŸiniz zaman devre dışı bırakabilir ve koinlerinizin kilidini kaldırabilirsiniz.</p></body></html> + + + Make sure you have this amount of coins. + Bu miktarda koininizin olduÄŸundan emin olunuz. + + + Set Master Node’s Name + Masternode'unuzun Adını Belirleyin + + + <html><head/><body><p>A transaction of 10,000 PIV will be made</p><p>to a new empty address in your wallet.</p><p>The Address is labeled under the master node's name.</p></body></html> + <html><head/><body><p>10.000 PIV'lik bir transfer </p><p>yeni ve boÅŸ bir adrese yapılacaktır.</p><p>Adres Masternode'unuz ismi ile etiketlenecektir.</p></body></html> + + + Set Master Node’s IP and port + MasterNode'unuzun IP ve Portunu giriniz + + + Address of the node that must always be online running the actual master node. + Gerçek Masternode'un çalıştığı adres herzaman online olmak zorundadır. + + + Enter IP address + IP adresini girin + + + Enter Port + Port'u girin + + + CANCEL + Ä°PTAL + + + OK + TAMAM + + + e.g user_masternode + örn. kullanıcı_masternode + + + NEXT + Ä°LERÄ° + + + BACK + GERÄ° + + + address label cannot be empty + Adres etiketi boÅŸ olamaz + + + IP or port cannot be empty + IP ve Port boÅŸ olamaz + + + Invalid port number + Geçersiz port numarası + + + Prepare master node failed.. + Masternode hazırlığı baÅŸarısız.. + + + Invalid masternode.conf file + Geçersiz masternode.conf dosyası + + + Error parsing masternode.conf file + masternode.conf dosyası çözümleme hatası + + + Invalid collaterall output index + Geçersiz teminat çıktı endeksi + + + Master node created! + Masternode yaratıldı! + + + masternode.conf file doesn't exists + masternode.conf dosyası bulunamadı + + + The recipient address is not valid, please recheck. + Alıcı adresi geçerli deÄŸil, lütfen tekrar kontrol edin. + + + The amount to pay must be larger than 0. + Ödenecek tutar 0'dan büyük olmalıdır. + + + The amount exceeds your balance. + Miktar, bakiyenizi aşıyor. + + + The total exceeds your balance when the %1 transaction fee is included. + Toplam, %1 iÅŸlem ücreti dahil edildiÄŸinde bakiyenizi aşıyor. + + + Duplicate address found, can only send to each address once per send operation. + Yinelenen adres bulundu, her gönderme iÅŸleminde aynı adres birden fazla girilemez. + + + Transaction creation failed! + Ä°ÅŸlem oluÅŸturulamadı! + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Ä°ÅŸlem reddedildi! Bu, cüzdanındaki koinlerin bir kısmının harcanması durumunda olabilir; mesela, wallet.dat dosyasının bir kopyasını kullandıysanız ve koinlerinizi harcamış fakat cüzdana harcanmış olarak iÅŸaretlenmemiÅŸse ortaya çıkabilir. + + + Error: The wallet was unlocked only to anonymize coins. + Hata: Cüzdan sadece paraları anonimleÅŸtirmek için açıldı. + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + Bir ücret, kB başına %2'nin %1 katından daha yüksektir, delicesine yüksek bir ücret olarak kabul edilir. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Hata: Cüzdan sadece paraları anonimleÅŸtirmek için açıldı. Kilidini açma iÅŸlemi iptal edildi. + + + + MasterNodesWidget + + Form + Form + + + TextLabel + TextLabel + + + No active Master Node yet + Henüz aktif Masternode bulunmuyor + + + PushButton + Butona Basın + + + Masternodes + Masternode'lar + + + Full nodes that incentivize node operators to perform the core consensus functions +and vote on the treasury system receiving a periodic reward. + Düğüm operatörlerinin temel konsensüs fonksiyonlarını teÅŸvik eden tam düğümler hazine sisteminde oy kullanarak düzenli ödüller kazanırlar. + + + Create Masternode Controller + Masternode Kontrolörü Yarat + + + No active Masternode yet + Henüz Aktif Masternode bulunmuyor + + + Start + BaÅŸlat + + + Delete + Sil + + + Info + Bilgi + + + Start Masternode + Masternode'u baÅŸlat + + + Are you sure you want to start masternode %1? + + Masternode %1 'i baÅŸlatmak istediÄŸinize emin misiniz? + + + + Cannot start masternode, the collateral transaction has not been accepted by the network. +Please wait few more minutes. + Masternode baÅŸlatılamadı, teminat transferi henüz aÄŸ tarafından kabul edilmedi +Lütfen birkaç dakika bekleyiniz. + + + Remote Masternode Data + Uzak Masternode Bilgisi + + + You are just about to export the required data to run a Masternode +on a remote server to your clipboard. + + +You will only have to paste the data in the pivx.conf file +of your remote server and start it, then start the Masternode using +this controller wallet (select the Masternode in the list and press "start"). + + Uzak bir sunucuda Masternode çalıştırabilmek için gereken bilgiyi +panoya almak üzeresiniz. + + +Bilgiyi uzak sunucunuzdaki pivx.conf dosyasına yapıştırmanız ve + baÅŸlatmanız gerekecektir, ondan sonra bu kontrol cüzdanını kullanan +Masternodu baÅŸlatın (Listeden Masternodu seçip "baÅŸlat" tuÅŸuna basın). + + + + Masternode exported!, check your clipboard + Masternode bilgisi dışarı alındı! Panoyu kontrol edin + + + Delete Masternode + Masternode'u Sil + + + You are just about to delete Masternode: +%1 + +Are you sure? + Masternode'u silmek üzeresiniz +%1 + +Emin misiniz? + + + Invalid masternode.conf file + Geçersiz masternode.conf dosyası + + + Error parsing masternode.conf file + masternode.conf dosyası çözümleme hatası + + + masternode.conf file doesn't exists + masternode.conf dosyası bulunamadı + + + Not enough balance to create a masternode, 10,000 PIV required. + Masternode yaratmak için yetersiz bakiye, 10,000 PIV gerekmektedir. + + + Error creating masternode + Masternode yaratma hatası + + + + MnInfoDialog + + Form + Form + + + Master Node Information + Masternode Bilgisi + + + Public Key: + Public Key: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Address: + Adres + + + 127.0.0.2:43223 + 127.0.0.2:43223 + + + Collaterall tx id: + Teminat tx id: + + + Output index: + Çıktı Endeksi: + + + 1 Inputs + 1 çıktı + + + Status: + Durum: + + + MISSING + EKSÄ°K + + + Export data to run the Master Node on a remote server + Uzak sunucuda Masternode çalıştırmak için bilgiyi dışarı aktar + + + + MyAddressRow + + Form + Form + + + Savings + Birikimler + + + Jan. 19, 2019 + Ocak. 12,2019 + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + NavMenuWidget + + Form + Form + + + V 1.0.0 + V 1.0.0 + + + v%1 + v%1 + + + + OpenURIDialog + + Open URI + Open URI + + + Open payment request from URI or file + URI veya dosyadan ödeme isteÄŸini aç + + + TextLabel + TextLabel + + + CANCEL + Ä°PTAL + + + OK + TAMAM + + + Select payment request file + Ödeme isteÄŸi dosyasını seçin + + + Select payment request file to open + Açılması gereken ödeme isteÄŸi dosyasını seçin + + + File not found + Dosya bulunamadı + + + Parsed data too large + Ayrıştırılmış bilgi çok büyük + + + Invalid URI, not starting with "pivx" prefix + Geçersiz URI, "pivx" ön adıyla baÅŸlamıyor + + + + OptionButton + + Form + Form + + + TextLabel + TextLabel + + + + OptionsDialog + + Options + Seçenekler + + + &Main + &Main + + + Size of &database cache + & Veritabanı önbellek boyutu + + + MB + MB + + + Number of script &verification threads + Komut dosyası ve doÄŸrulama iÅŸ parçacığı sayısı + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = birçok çekirdeÄŸi serbest bırak) + + + W&allet + Cüzdan + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + DoÄŸrulanmamış deÄŸiÅŸikliÄŸin harcamasını devre dışı bırakırsanız, bir iÅŸlemdeki deÄŸiÅŸiklik<br/>Bu iÅŸlem en az bir onay alıncaya kadar kullanılamaz.<br/>Bu aynı zamanda bakiyenizin nasıl hesaplandığını etkiler. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Yönelticideki PIVX istemci baÄŸlantı noktasını otomatik olarak açın. Bu, yalnızca yönlendiriciniz UPnP'yi destekliyorsa ve etkinleÅŸtirilmiÅŸse çalışır. + + + Accept connections from outside + Dışarıdan baÄŸlantıları kabul et + + + Allow incoming connections + Gelen baÄŸlantılara izin ver + + + &Connect through SOCKS5 proxy (default proxy): + &Connect through SOCKS5 proxy (default proxy): + + + Expert + Uzman + + + Automatically start PIVX after logging in to the system. + Sisteme giriÅŸ yaptıktan sonra otomatik olarak PIVX'i baÅŸlatın. + + + &Start PIVX on system login + & Sistem oturum açma iÅŸleminde PIVX'i baÅŸlat + + + Whether to show coin control features or not. + Para kontrol özelliklerini gösterip göstermeyeceÄŸi. + + + Enable coin &control features + Köşe ve kontrol özelliklerini etkinleÅŸtir + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Tüm alt düğmelerinizi ilk alt sekmede listeleyen ek sekme gösterin<br/>ve ikinci alt sekmesindeki aÄŸdaki tüm masternodları + + + Show Masternodes Tab + Masternode'lar Sekmesini Göster + + + &Spend unconfirmed change + DoÄŸrulanmamış deÄŸiÅŸikliÄŸi harcama + + + &Network + &AÄŸ + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + Kullanıcı arabirimi dili burada ayarlanabilir. Bu ayar, PIVX yeniden baÅŸlatıldıktan sonra geçerli olur. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Dil eksik veya çeviri tamamlanmamış mı? Katkıda bulunan çevirilere yardımcı olun: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Map port using &UPnP + + + Enable automatic minting of PIV units to zPIV + PIV birimlerinin zPIV'e otomatik basımını ektinleÅŸtir + + + Enable zPIV Automint + zPIV Otomatik basımı etkinleÅŸtir + + + Enable automatic zPIV minting from specific addresses + Belirli bir adresten otomatik zPIV minting yapılmasını etkinleÅŸtir + + + Enable Automint Addresses + Automint adreslerini etkinleÅŸtir + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Zerocoin Protokolü üzerinden otomatik olarak zPIV'ye dönüştürülen gelen PIV yüzdesi (dakika: 10%) + + + Percentage of autominted zPIV + OtomatikleÅŸtirilmiÅŸ zPIV yüzdesi + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Bu bölen için yeterli PIV bulunana kadar Zerocoin'e otomatik dönüştürmede kalın + + + Preferred Automint zPIV Denomination + Tercih edilen Automint zPIV Nominal deÄŸeri + + + Stake split threshold: + Stake bölme eÅŸiÄŸi + + + Connect to the PIVX network through a SOCKS5 proxy. + Bir SOCKS5 proxy vasıtasıyla PIVX ağına baÄŸlanın. + + + Proxy &IP: + Proksi &IP: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + Proksinin IP adresi (örn. IPv4: 127.0.0.1 / IPv6: ::1) + + + &Port: + &Port: + + + Port of the proxy (e.g. 9050) + Port of the proxy (e.g. 9050) + + + &Window + &Window + + + Show only a tray icon after minimizing the window. + Pencereyi küçülttükten sonra yalnızca bir tepsi simgesi gösterin. + + + &Minimize to the tray instead of the taskbar + Görev çubuÄŸu yerine tepsiye simge durumuna küçült + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + Pencere kapatıldığında uygulamadan çıkmak yerine simge durumuna küçültün. Bu seçenek etkinleÅŸtirildiÄŸinde, uygulama yalnızca menüden Çık'ı seçtikten sonra kapatılacaktır. + + + M&inimize on close + Kapama tuÅŸuna basınca küçült + + + &Display + &Göster + + + User Interface &language: + Kullanıcı Arayüzü ve dil: + + + User Interface Theme: + Kullanıcı Arabirimi Teması: + + + Unit to show amounts in: + Tutarların gösterileceÄŸi birim: + + + Choose the default subdivision unit to show in the interface and when sending coins. + Koin gönderirken arayüzde görülmesi için varsayılan bölme miktarını seçin. + + + Decimal digits + Ondalık basamak + + + Hide empty balances + BoÅŸ bakiyeleri sakla + + + Hide orphan stakes in transaction lists + Kimsesiz stakeleri iÅŸlemler listesinde gizle + + + Hide orphan stakes + Kimsesiz Stake'leri gizle + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + Ä°ÅŸlemler sekmesinde içerik menüsü öğeleri olarak görünen üçüncü taraf URL'leri (ör. Bir blok araÅŸtırıcısı). URL'deki %s yerine iÅŸlem karması verildi. Birden fazla URL, dikey çubukla | | ile ayrılır. + + + Third party transaction URLs + Üçüncü taraf iÅŸlem URL'leri + + + Active command-line options that override above options: + Yukarıdaki seçenekleri geçersiz kılan etkin komut satırı seçenekleri: + + + Reset all client options to default. + Tüm istemci seçeneklerini varsayılana sıfırlayın. + + + &Reset Options + &Ayarları sıfırla + + + &OK + &OK + + + &Cancel + &Ä°ptal + + + Any + Herhangi + + + default + varsayılan + + + none + hiçbiri + + + Confirm options reset + Seçeneklerin sıfırlanmasını onayla + + + Client restart required to activate changes. + DeÄŸiÅŸiklikleri etkinleÅŸtirmek için programın yeniden baÅŸlatılması gerekiyor. + + + Client will be shutdown, do you want to proceed? + Cüzdan kapanacak, devam etmek istiyor musunuz? + + + This change would require a client restart. + Bu DeÄŸiÅŸiklik cüzdanın yeniden baÅŸlatılmasını gerektirecek. + + + The supplied proxy address is invalid. + Verilen proxy adresi geçersiz. + + + The supplied proxy port is invalid. + Verilen proxy port adresi geçersiz. + + + The supplied proxy settings are invalid. + Verilen proxy seçenekleri geçersiz. + + + + PIVXGUI + + PIVX Core + PIVX CORE + + + Wallet + Cüzdan + + + Node + Düğüm + + + &Show / Hide + Göster/Gizle + + + Show or hide the main Window + Ana pencereyi göster veya gizle + + + E&xit + Çıkış + + + Quit application + Uygulamayı sonlandır + + + PIVX Core client + PIVX Core istemci + + + Error + Hata + + + Warning + Uyarı + + + Information + Bilgi + + + System Message + Sistem Mesajı + + + Sent MultiSend transaction + ÇokluGönderi iÅŸlemi gönderildi + + + Sent transaction + GönderilmiÅŸ iÅŸlem + + + Incoming transaction + Gelen iÅŸlem + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Tarih: %1 +Miktar: %2 +Tip: %3 +Adres: %4 + + + + A fatal error occurred. PIVX can no longer continue safely and will quit. + Onarılamaz bir hata oluÅŸtu. PIVX güvenli bir ÅŸekilde çalışamaz, kapanacaktır. + + + + PWidget + + Wallet locked, you need to unlock it to perform this action + Cüzdan kilitli, bu iÅŸlemi yapabilmek için cüzdanın kilidini açmalısınız. + + + + PaymentServer + + Payment request error + Ödeme isteÄŸi hatası + + + URI handling + URI handling + + + Payment request fetch URL is invalid: %1 + Ödeme isteÄŸi getirme URL'si geçersiz: %1 + + + Payment request file handling + Ödeme isteÄŸi dosyası iÅŸleme + + + Invalid payment address %1 + Geçersiz ödeme adresi %1 + + + Cannot start pivx: click-to-pay handler + Pivx baÅŸlatılamıyor: tıkla ve ödeme iÅŸleyicisi + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URI ayrıştırılamaz! Bunun nedeni, geçersiz bir PIVX adresi veya hatalı biçimlendirilmiÅŸ URI parametrelerinden kaynaklanabilir. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Ödeme talebi dosyası okunamıyor! Buna, geçersiz bir ödeme istek dosyası neden olabilir. + + + Payment request rejected + Ödeme talebi reddedildi + + + Payment request network doesn't match client network. + Ödeme isteÄŸi ağı müşteri ağıyla eÅŸleÅŸmiyor. + + + Payment request has expired. + Ödeme talebi zamanı doldu. + + + Payment request is not initialized. + Ödeme talebi baÅŸlatılmadı. + + + Unverified payment requests to custom payment scripts are unsupported. + Özel ödeme komut dosyalarına yönelik onaylanmamış ödeme istekleri desteklenmiyor. + + + Requested payment amount of %1 is too small (considered dust). + Ä°stenen ödeme tutarı %1 çok küçük (toz olarak kabul edildi). + + + Refund from %1 + %1'den geri ödeme + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Ödeme isteÄŸi %1 çok büyük (%2 bayt, %3 bayta izin verildi). + + + Payment request DoS protection + Ödeme talebi DoS koruması + + + Error communicating with %1: %2 + iletiÅŸim kurulurken hata oluÅŸtu %1: %2 + + + Payment request cannot be parsed! + Ödeme talebi ayrıştırılamıyor! + + + Bad response from server %1 + %1 sunucusundan gelen yanlış yanıt + + + Network request error + AÄŸ isteÄŸi hatası + + + Payment acknowledged + Ödeme kabul edildi + + + + PeerTableModel + + Address/Hostname + Address/Hostname + + + Version + Version + + + Ping Time + Ping Time + + + + PrivacyWidget + + Form + Form + + + Title + BaÅŸlık + + + TextLabel + TextLabel + + + PushButton + Butona Basın + + + No active Master Node yet + Henüz aktif Masternode bulunmuyor + + + Privacy + Gizlilik + + + Convert + Dönüştür + + + Mint + Mint + + + Minting zPIV anonymizes your PIV by removing any +transaction history, making transactions untraceable + zPIV mintleme iÅŸlemi PIV'lerinizin iÅŸlem geçmiÅŸini siler, iÅŸlemleri takip edilemez yapar + + + Mint new zPIV or convert back to PIV + Yeni zPIV mintle veya PIV'e geri dönüştür + + + Last Zerocoin Movements + Son Zerocoin Hareketleri + + + No transactions yet + Ä°ÅŸlem bulunmuyor + + + Mint zPIV + Mint ZPIV + + + Enter amount of PIV to mint into zPIV + zPIV'e mintlenmek için dönüştürülecek PIV miktarını gir + + + Convert back to PIV + PIV'e geri dönüştür + + + Enter amount of zPIV to convert back into PIV + PIV'e geri dönüştürülecek zPIV miktarını gir + + + Zerocoin + Zerocoin + + + zPIV is currently undergoing maintenance + zPIV ÅŸu anda bakımdadır + + + You need to unlock the wallet to be able to %1 zPIV + %1 zPIV yapabilmek için cüzdanınızın kilidini kaldırmalısınız + + + convert + dönüştür + + + mint + mint + + + Invalid value + Geçersiz deÄŸer + + + zPIV minted successfully + zPIV minting baÅŸarılı + + + zPIV converted back to PIV + zPIV PIV'e dönüştürüldü + + + You don't have any PIV to select. + SeçebileceÄŸiniz PIV'iniz bulunmuyor + + + Rescan Mints + Mint'leri tekrar tara + + + Your zerocoin mints are going to be scanned from the blockchain from scratch + Zerocoin mintleriniz sıfırdan blockchain üzerinde taranacaktır + + + Reset Spent Zerocoins + Zerocoin harcamalarını resetle + + + Your zerocoin spends are going to be scanned from the blockchain from scratch + Zerocoin mintleriniz sıfırdan blockchain üzerinde taranacaktır + + + Total %1 + Toplam %1 + + + + ProposalFrame + + Open proposal page in browser + Teklif sayfasını tarayıcıda açın + + + remaining payment(s). + kalan ödeme(ler). + + + Yes: + Evet: + + + Abstain: + Çekimser: + + + No: + Hayır: + + + A proposal URL can be used for phishing, scams and computer viruses. Open this link only if you trust the following URL. + + Bir teklif URL'si ÅŸifre avcılığı, dolandırıcılık, bilgisayar virüsü amaçlarıyla kullanılabilir. Linki sadece URL'ye güveniyorsanız açın. + + + Open link + Link'i aç + + + Copy link + Link'i kopyala + + + Wallet Locked + Cüzdan Kilitlendi + + + You must unlock your wallet to vote. + Oy verebilmek için cüzdanın kilitini açmalısınız. + + + Do you want to vote %1 on + %1 olarak onaylamak istiyor musunuz? + + + using all your masternodes? + tüm Masternode'larınızı kullanarak? + + + Proposal Hash: + Teklif Hash: + + + Proposal URL: + Teklif URL: + + + Confirm Vote + Oyu Onayla + + + Vote Results + Oy Sonuçları + + + + QObject + + Amount + Miktar + + + Enter a PIVX address (e.g. %1) + Gir bir PIVX addres (e.g. %1) + + + %1 d + %1 d + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + AÄž + + + BLOOM + BLOOM + + + ZK_BLOOM + ZK_BLOOM + + + UNKNOWN + BÄ°LÄ°NMEYEN + + + None + Hiçbiri + + + N/A + N/A + + + %1 ms + %1 ms + + + PIVX Core + PIVX CORE + + + Error: Specified data directory "%1" does not exist. + Hata: Belirtilen "%1" dizin bulunmamaktadır. + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + Hata: Konfigürasyon dosyası %1 çözümlenemiyor. Sadece anahtar=deÄŸer sözdizimini kullanın. + + + Error: Invalid combination of -regtest and -testnet. + Hata: Geçersiz -regtest ve -testnet kombinasyonu. + + + Error reading masternode configuration file: %1 + Masternode konfigürasyon dosyası okuma hatası: %1 + + + PIVX Core didn't yet exit safely... + PIVX Core henüz güvenle kapanmadı.. + + + + RPCConsole + + Tools window + Araçlar penceresi + + + &Information + bilgi + + + General + Genel + + + Name + isim + + + Client name + Uygulama adı + + + N/A + N/A + + + Number of connections + baÄŸlantı sayısı + + + &Open + &Açık + + + Startup time + BaÅŸlatma zamanı + + + Network + AÄŸ + + + Last block time + Son Blok Zamanı + + + Debug log file + Hata ayıklama dosyası + + + Build date + Yapım tarihi + + + Current number of blocks + Mevcut Blok Sayısı + + + Client version + Uygulama versionu + + + Using BerkeleyDB version + BerkeleyDB version + + + Block chain + Block chain + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Geçerli veri dizininden PIVX hata ayıklama günlük dosyasını açın. Bu, büyük günlük dosyaları için birkaç saniye sürebilir. + + + Number of Masternodes + Masternodların sayısı + + + Data Directory + Bilgi Dizini + + + Last block hash + Son blok hash + + + &Console + &Konsol + + + Clear console + Temizle konsolu + + + &Network Traffic + &AÄŸ TrafiÄŸi + + + &Clear + &Temizle + + + Totals + Totals + + + Received + Alındı + + + Sent + Gitti + + + &Peers + &Peers + + + Banned peers + EngellenmiÅŸ taraflar + + + Select a peer to view detailed information. + Ayrıntılı bilgi için peer seç. + + + Whitelisted + Güvenli Adres Listesi + + + Direction + Yön + + + Protocol + Protokol + + + Version + Version + + + Services + Servisler + + + Ban Score + Ban Score + + + Connection Time + baÄŸlantı zamanı + + + Last Send + son gönderi + + + Last Receive + son alınan + + + Bytes Sent + Gönderilen Byte + + + Bytes Received + Alınan Byte + + + Ping Time + Ping Time + + + &Wallet Repair + &Cüzdan Tamiri + + + Delete local Blockchain Folders + Yerel Blockchain Klasörlerini Sil + + + Wallet In Use: + Kullanımdaki Cüzdan: + + + Starting Block + BaÅŸlangıç bloÄŸu + + + Synced Headers + Senkronize Edilen BaÅŸlıklar + + + Synced Blocks + Senkronize EdilmiÅŸ Bloklar + + + The duration of a currently outstanding ping. + Mevcut tamamlanmamış ping süresi + + + Ping Wait + Ping Bekleme + + + Time Offset + Zaman Farkı + + + Custom Backup Path: + Özel Yedekleme Yolu: + + + Custom zPIV Backup Path: + Özel zPIV Yedekleme Yolu: + + + Custom Backups Threshold: + Belirli Yedek EÅŸiÄŸi: + + + Salvage wallet + Kurtarma cüzdanı + + + Attempt to recover private keys from a corrupt wallet.dat. + Bozuk bir wallet.dat'tan özel anahtarları kurtarmayı deneyin. + + + Rescan blockchain files + Blockchain dosyalarını tekrar yükleyin + + + Rescan the block chain for missing wallet transactions. + Eksik cüzdan iÅŸlemleri için blockchaini yeniden tarayın + + + Recover transactions 1 + Ä°ÅŸemleri kurtarın 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Blockchainden iÅŸlemleri kurtarın ( meta veri ve hesap sahibi gibi koru) + + + Recover transactions 2 + Ä°ÅŸlemleri kurtar 2 + + + Recover transactions from blockchain (drop meta-data). + Ä°ÅŸlemleri blok zincirini kullanarak kurtarın (meta verileri bırakın). + + + Upgrade wallet format + Cüzdan formatını güncelleyin + + + Rebuild block chain index from current blk000??.dat files. + Blok zinciri dizinini mevcut blk000 ?? dat dosyalarından yeniden oluÅŸtur. + + + -resync: + -yeniden güncelle: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Cüzdan sıfırdan eÅŸleÅŸtirmek için tüm yerel blok zincir klasörlerini siler. + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + AÅŸağıdaki düğmeler cüzdanı onarmak, bozuk blokaj dosyalarıyla ilgili sorunları çözmek veya eksik / eskimiÅŸ iÅŸlemler için komut satırı seçenekleriyle cüzdan yeniden baÅŸlatacaktır. + + + Wallet repair options. + Cüzdan onarım seçenekleri. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Cüzdanı baÅŸlangıçta en yeni formata yükseltin. (Not: Bu, cüzdanın kendisinin güncellemesi deÄŸildir!) + + + Rebuild index + Dizini yeniden oluÅŸtur + + + In: + İçe: + + + Out: + Dışa: + + + Welcome to the PIVX RPC console. + PIVX RPC konsola hoÅŸgeldiniz + + + &Disconnect Node + &Düğümü Kopar + + + Ban Node for + Düğümü egelle + + + 1 &hour + 1 &saat + + + 1 &day + 1 &gün + + + 1 &week + 1 &hafta + + + 1 &year + 1 &yıl + + + &Unban Node + &Düğüm engelini kaldır + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Bu, yerel blok zincir klasörlerini silecek ve cüzdan tüm Blockchain'i sıfırdan senkronize edecektir..<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Bu biraz zaman alacak ve birçok veri indirecektir.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Ä°ÅŸlemleriniz ve bakiyeniz indirme tamamıyle tamamlandıktan sonra tekrar görünür olacaktır.<br /><br /> + + + Do you want to continue?.<br /> + Devam etmek istiyor musunuz?.<br /> + + + Confirm resync Blockchain + Blockchaini resenkronize etmeyi onaylayın + + + Use up and down arrows to navigate history, and %1 to clear screen. + AÅŸağı yukarı tuÅŸlarıyla tarihçede gezebilirsiniz, ekranı temizlemek için %1 + + + Type <b>help</b> for an overview of available commands. + Yazın<b>help</b> mevcut komutaları görmek için + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + DÄ°KKAT: Dolandırıcılar aktif çalışıyor, kullanıcılardan buraya komut girmelerini istiyor ve cüzdanlarını çalıyorlar. Bu konsolu kullanacağınız komutun etkilerini tam olarak anlamadan kullanmayın. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (node id: %1) + + + via %1 + ile %1 + + + never + asla + + + Inbound + Gelen + + + Outbound + Giden + + + Yes + Evet + + + No + Hayır + + + Unknown + Bilinmeyen + + + + ReceiveDialog + + Dialog + Diyalog + + + Transaction Details + Ä°ÅŸlem Detayları + + + PushButton + Butona Basın + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + Ä°PTAL + + + OK + TAMAM + + + + ReceiveWidget + + Form + Form + + + TextLabel + TextLabel + + + No address + Adres bulunmuyor + + + Add Label + Etiket ekle + + + Generate Address + Adres OluÅŸtur + + + Copy + Kopyala + + + Receive + Al + + + Scan the QR code or copy the address to receive PIV. + PIVX almak için QR kodunu okutun veya adresi kopyalayın + + + No address + Adres bulunmuyor + + + No available address, try unlocking the wallet + Adres bulunmuyor, cüzdan kilidini açarak deneyin + + + Error generating address + Adres oluÅŸturma hatası + + + Change Label + Etiketi DeÄŸiÅŸtirin + + + Edit Address Label + Adres Etiketini güncelleyin + + + Address label saved + Adres etiketi kaydedildi + + + Error storing address label + Adres etiketini kaydederken hata oluÅŸtu + + + New address created + Yeni adres oluÅŸturuldu + + + Address copied + Adres kopyalandı + + + URI copied to clipboard + URI panoya kopyalandı + + + Address copied to clipboard + Adres panoya kopyalandı + + + + RecentRequestsTableModel + + Date + Tarih + + + Label + Etiket + + + Message + Mesaj + + + Address + Adres + + + Amount + Miktar + + + (no label) + (etiket yok) + + + (no message) + (mesaj yok) + + + (no amount) + (miktar yok) + + + + RequestDialog + + Dialog + Diyalog + + + New Request Payment + Yeni Ödeme Talebi + + + Lorem ipsum dolor sit amet, consectur cling elit, sed do + Lorem ipsum dolor sit amet, consectur cling elit, sed do + + + Amount + Miktar + + + PIV + PIV + + + TextLabel + TextLabel + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + COPY ADDRESS + ADRES KOPYALA + + + COPY URL + URL KOPYALA + + + CANCEL + Ä°PTAL + + + REQUEST + TALEP ET + + + Instead of only sharing a PIVX address, you can create a Payment Request message which bundles up more information than is contained in just a PIVX address. + PIVX adresi paylaÅŸmak yerine, PIVX adresinden daha fazla bilgi içeren bir Ödeme Talebi oluÅŸturabilirsin. + + + Label + Etiket + + + Enter a label to be saved within the address + Adresin içine kaydedilecek bir etiket belirle + + + Description (optional) + Açıklama (opsiyonel) + + + Add description + Açıklama ekle + + + Error + Hata + + + GENERATE + OLUÅžTUR + + + Creates an address to receive coin delegations and be able to stake them. + Koin delegasyonlarını almak ve stake edebilmek için adres yaratır. + + + New Cold Staking Address + Yeni Stakeleme Adresi + + + + SendChangeAddressDialog + + Dialog + Diyalog + + + Transaction Details + Ä°ÅŸlem Detayları + + + PushButton + Butona Basın + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + Ä°PTAL + + + OK + TAMAM + + + Custom Change Address + Özel fark adresi + + + The remainder of the value resultant from the inputs minus the outputs value goes to the "change" PIVX address + GiriÅŸ ve çıkış deÄŸerleri arasındaki kalan tutar "fark" PIV adresine gider + + + + SendCustomFeeDialog + + Form + Form + + + Transaction Details + Ä°ÅŸlem Detayları + + + Customize the transaction fee at your to your liking, depending on the fee value your transaction will be included or not in the blockchain. + Ä°steÄŸiniz gibi transfer masrafını deÄŸiÅŸtirebilirsiniz, belirlediÄŸiniz deÄŸere göre blockchaine yazılır veya yazılmaz. + + + Recomended + Tavsiye edilir + + + 0.00 KB + 0.00 KB + + + Custom + Özel + + + Per kilobyte + Kilobyte başına + + + CANCEL + Ä°PTAL + + + OK + TAMAM + + + Customize Fee + Masrafı deÄŸiÅŸtir + + + Customize the transaction fee, depending on the fee value your transaction will be included or not in the blockchain. + Ä°steÄŸiniz gibi transfer masrafını deÄŸiÅŸtirebilirsiniz, belirlediÄŸiniz deÄŸere göre blockchaine yazılır veya yazılmaz. + + + Normal + Normal + + + Slow + YavaÅŸ + + + Fast + Hızlı + + + SAVE + KAYDET + + + + SendMultiRow + + Form + Form + + + TextLabel + TextLabel + + + Add address + Adres ekle + + + Add description + Açıklama ekle + + + + SendWidget + + Send + Gönder + + + You can transfer public coins (PIV) or private coins (zPIV) + Açık koin PIV veya gizli koin zPIV transfer edebilirsiniz + + + Select coin type to spend + Harcayacağınız koin tipini seçin + + + Enter a PIVX address or contact label + Bir PIVX adresi veya baÄŸlantı etiketi girin + + + Amount + Miktar + + + Customize fee + Masrafı deÄŸiÅŸtir + + + Clear all + Hepsini temizle + + + Add recipient + Alıcı Ekle + + + Reset to default + Varsayılana konumlandır + + + Total to send + Gönderilecek toplam + + + Send PIV + PIV Gönder + + + Send zPIV + zPIV gönder + + + Total remaining from the selected UTXO + Seçili UTXO'dan kalan toplam + + + Total remaining + Toplam kalan + + + Customize Fee + Masrafı deÄŸiÅŸtir + + + Maximum amount of outputs reached + Maksimum çıktı miktarına ulaşıldı + + + Invalid entry, previous entries must be valid before add a new one + Geçersiz giriÅŸ, yeni giriÅŸ yapabilmek için önceki giriÅŸlerin geçerli olması gerekmektedir. + + + Invalid entry + Geçersiz giriÅŸ + + + No set recipients + Alıcı belirlenmedi + + + Cannot send, wallet locked + Gönderilemez, cüzdan kilitli + + + Cannot create transaction. + Ä°ÅŸlem yaratılamıyor. + + + WARNING: +Transaction spends a cold-stake delegation, voiding it. +These coins will no longer be cold-staked. + UYARI:: +Transfer soÄŸuk stakleme delegasyonunu harcıyor, onu boÅŸaltıyor. +Bu koinler artık soÄŸuk stakelenmeyecektir. + + + Transaction sent + Ödeme gönderildi + + + Spend Zerocoin + Harca Zerocoin + + + zPIV is currently undergoing maintenance. + zPIV halen bakım alıyor. + + + Coin control mint not found + Koin kontrolü min bulunamadı + + + Sending %1 to address %2 + + %1 adresinden %2 adresine gönderiliyor + + + + Sending %1 to addresses: +%2 + %1 adresinden +%2 adreslerine gönderiliyor + + + zPIV transaction sent! + zPIV ödemesi gönderildi + + + Version 1 zPIV require a security level of 100 to successfully spend. + Versiyon 1 olan zPIV'lerin baÅŸarıyla harcanabilmesi için güvenlik seviyesinin 100 olması gerekiyor. + + + Too much inputs ( + Çok fazla girdi ( + + + ) needed. +Maximum allowed: + ) gerekli. +Maksimum bırakılan: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Ya daha yüksek mezhepleri daraltın (daha az girdi gereklidir) veya harcama miktarını azaltın. + + + Address label update failed for address: %1 + %1 adresi için adres etiketi güncellemesi baÅŸarısız oldu + + + Invalid change address + Geçersiz fark adresi + + + Invalid URI + Geçersiz URI + + + Invalid address in URI + URI içinde geçersiz adres + + + Custom Fee %1 + BelirlenmiÅŸ masraf %1 + + + You don't have any PIV to select. + SeçebileceÄŸiniz PIV'iniz bulunmuyor + + + You don't have any zPIV in your balance to select. + Bakiyenizde seçebileceÄŸiniz zPIV'iniz bulunmuyor + + + No contacts available, you can go to the contacts screen and add some there! + Uygun adres bulunmuyor, AL ekranına giderek adres ekleyebilirsin. + + + Save contact + BaÄŸlantıyı kaydet + + + Address field is empty + Adres alanı boÅŸ + + + Invalid address + Geçersiz adres + + + Cannot store your own address as contact + Kendi adresinizi baÄŸlantı adresi olarak kaydedemezsiniz. + + + Update Contact + BaÄŸlantıyı güncelle + + + Create New Contact + Yeni BaÄŸlantı Ekle + + + New Contact Stored + Yeni BaÄŸlantı Kaydedildi + + + Error Storing Contact + BaÄŸlantı Kayıt Hatası + + + + SettingsBackupWallet + + Form + Form + + + TextLabel + TextLabel + + + PushButton + Butona Basın + + + Backup Wallet + Cüzdanı Yedekle + + + Change Wallet Passphrase + Cüzdan Parolasını DeÄŸiÅŸtir + + + Keep your wallet safe doing regular backups, store your backup file externally. +This option creates a wallet.dat file that can be used to recover your whole balance (transactions and addresses) from another device. + Düzenli yedekler alarak cüzdanınızı güvende tutun, yedeklerinizi dışarıda saklayın. +Bu opsiyon tüm bakiyenizi (iÅŸlemleri ve adresleri) kurtarmak için kullanacağınız yeni bir wallet.dat dosyası yaratır . + + + This will decrypt the whole wallet data and encrypt it back with the new passphrase. +Remember to write it down and store it safely, otherwise you might lose access to your funds. + Bu iÅŸlem tüm bilginin ÅŸifresini çözecek ve yeni parola ile ÅŸifreleyecektir. +Paranıza eriÅŸiminizi kaybetmemek için yazmayı ve güvenli bir yerde saklamayı unutmayın. + + + Where + Yer + + + Set a folder location + Bir dosya klasör yeri belirleyin + + + Backup + Yedek + + + Change Passphrase + Parolayı DeÄŸiÅŸtir + + + Backup Wallet + Cüzdanı Yedekle + + + Wallet Data (*.dat) + Wallet Data (*.dat) + + + Backup created + Yedek oluÅŸturuldu + + + Backup creation failed + Yedek oluÅŸturma baÅŸarısız + + + Please select a folder to export the backup first. + YedeÄŸinizi aktarmak için önce bir klasör belirleyin + + + + SettingsBitToolWidget + + Form + Form + + + TextLabel + TextLabel + + + PushButton + Butona Basın + + + Decrypt Address Result + Adres Åžifre Çözüm Sonucu + + + Import Address + Adres içe aktar + + + Clear + temizle + + + BIP38 Tool + BIP38 Aracı + + + Encrypt + Åžifrele + + + Decrypt + Åžifreyi Çöz + + + Encrypted key + ÅžifrelenmiÅŸ anahtar + + + Enter a encrypted key + Bir ÅŸifrelenmiÅŸ anahtar gir + + + Passphrase + Parola + + + Enter a passphrase + Bir Parola gir + + + Decrypted address result + Adres Åžifre Çözüm Sonucu + + + Decrypted Address + Åžifresi Çözülmüş Adres + + + DECRYPT KEY + ŞİFRE ÇÖZME ANAHTARI + + + Enter a PIVX address + Bir PIVX adresi girin + + + Add address + Adres ekle + + + Write a message + Bir mesaj yaz + + + Encrypted Key + ÅžifrelenmiÅŸ Anahtar + + + ENCRYPT + ŞİFRELE + + + CLEAR ALL + TEMÄ°ZLE + + + CLEAR + TEMÄ°ZLE + + + The entered passphrase is invalid. + Girilen ÅŸifre geçersiz. + + + Allowed: 0-9,a-z,A-Z, + Ä°zinli: 0-9,a-z,A-Z, + + + The entered address is invalid. + Girilen adres geçersiz. + + + Please check the address and try again. + Lütfen adresini kontrol edin ve tekrar deneyin. + + + The entered address does not refer to a key. + Girilen adres bir tuÅŸa atıfta bulunmaz. + + + Wallet unlock was cancelled. + Cüzdan kilidi açılması iptal edildi. + + + Private key for the entered address is not available. + Girilen adres için özel anahtar kullanılamıyor. + + + Address encrypted. + Adres ÅŸifrelendi. + + + No addresses available, you can go to the receive screen and add some there! + Uygun adres bulunmuyor, AL ekranına giderek adres ekleyebilirsin. + + + Failed to decrypt. + Åžifre çözme baÅŸarısız oldu. + + + Please check the key and passphrase and try again. + Lütfen anahtarı ve parolayı kontrol edin ve tekrar deneyin + + + Data Not Valid. + Veriler Geçersiz. + + + Please try again. + Lütfen tekrar deneyin. + + + Please wait while key is imported + Anahtar içe aktarılırken lütfen bekleyin + + + Cannot import address, key already held by the wallet + Adres içe aktarılamıyor, anahtar hala cüzdanın içinde + + + Error adding key to the wallet + Cüzdana anahtar ekleme hatası + + + Successfully added pivate key to the wallet + Özel cüzdana anahtar baÅŸarıyla eklendi + + + + SettingsConsoleWidget + + Form + Form + + + TextLabel + TextLabel + + + Console + Konsol + + + Console input + Konsol GiriÅŸi + + + Command Line Options + Komut Satırı Seçenekleri + + + Open Debug File + Hata Ayıklama Dosyasını Aç + + + Cannot open debug file. +Verify that you have installed a predetermined text editor. + Hata ayıklama dosyası açılamadı. +Önceden belirlenmiÅŸ bir text editleme programınız olup olmadığını kontrol ediniz. + + + Welcome to the PIVX RPC console. + PIVX RPC konsola hoÅŸgeldiniz + + + Use up and down arrows to navigate history, and %1 to clear screen. + AÅŸağı yukarı tuÅŸlarıyla tarihçede gezebilirsiniz, ekranı temizlemek için %1 + + + Type <b>help</b> for an overview of available commands. + Yazın<b>help</b> mevcut komutaları görmek için + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + DÄ°KKAT: Dolandırıcılar aktif çalışıyor, kullanıcılardan buraya komut girmelerini istiyor ve cüzdanlarını çalıyorlar. Bu konsolu kullanacağınız komutun etkilerini tam olarak anlamadan kullanmayın. + + + + SettingsDisplayOptionsWidget + + Form + Form + + + TextLabel + TextLabel + + + PushButton + Butona Basın + + + Reset to default + Varsayılana konumlandır + + + Discard changes + DeÄŸiÅŸikliklerden vazgeç + + + Display + Görüntü + + + Customize the display view options + Görünüm ve seçeneklerini belirleyin + + + Language + Dil + + + Unit to show amount + Tutarların gösterileceÄŸi birim: + + + Decimal digits + Ondalık basamak + + + Third party transactions URLs + Üçüncü taraf iÅŸlem URL'si + + + Hide empty balances + BoÅŸ bakiyeleri sakla + + + SAVE + KAYDET + + + default + halihazırda + + + Options reset succeed + Opsiyonları sıfırlama baÅŸarılı + + + + SettingsFaqWidget + + Form + Form + + + TextLabel + TextLabel + + + PushButton + Butona Basın + + + 1) What is PIVX? + 1)PIVX nedir? + + + 2) Why are my PIV unspendable? + 2) PIV'lerim neden harcanabilir deÄŸil? + + + 3) PIVX privacy? What is Zerocoin (zPIV)? + 3)PIVX gizliliÄŸi? Zerocoin (zPIV) nedir? + + + 4) Why are my zPIV unspendable? + 4) zPIV'lerim neden harcanabilir deÄŸil? + + + 5) Why did my wallet convert the balance + into zPIV automatically? + 5)Neden cüzdanım bakiyemi otomatik olarak +zPIV'e dönüştürdü? + + + 6) How do I receive PIV/zPIV? + 6) Nasıl PIV/zPIV alabilirim? + + + 7) How do I stake PIV/zPIV? + 7) Nasıl PIV/zPIV staking yapabilirim? + + + 8) Where I should go if I need support? + 8) Yardıma ihtiyacım olduÄŸunda nereye gitmeliyim? + + + 9) What is a Master Node? + 9) Masternode nedir? + + + 10) What is a Master Node Controller? + 10) Masternode kontrolörü nedir? + + + 1 + 1 + + + What is PIVX? + PIVX Nedir? + + + + <html><head/><body><p align="justify"> + PIVX is a form of digital online money using blockchain technology + that can be easily transferred globally, instantly, and with near + zero fees. PIVX incorporates market leading security & + privacy and is also the first PoS (Proof of Stake) Cryptocurrency + to implement ZeroCoin(zPIV) and Zerocoin staking. + </p><p align="justify"> + PIVX utilizes a Proof of Stake (PoS) consensus system algorithm, + allowing all owners of PIVX to participate in earning block rewards + while securing the network with full node wallets, as well as to + run Masternodes to create and vote on proposals. + </p></body></html> + + + <html><head/><body><p align="justify"> + PIVX blockchain teknolojisini kullanan bir dijital online para birimidir + global olarak anında ve sıfıra yakın ücretlerle transfer edilebilir + PIVX sektördeki en ileri güvenlik ve gizliliÄŸe sahip olmakla birlikte + Zerocoin (zPIV) ve Zerocoin staking özelliklerini + uygulayan ilk PoS (Proof of Stake) Kriptoparadır. + </p><p align="justify"> + PIVX bir Proof of Stake (PoS) konsensüs algoritma sistemi kullanmaktadır, +bu sayede PIVX sahipleri blok ödülü kazanımına katılabilmektedir + ağı diÄŸer tam düğüm sahibi cüzdanlarla birlikte güvenli hale getirirler + ayrıca Masternode oluÅŸturarak tekliflere oy verirler. + </p></body></html> + + + + 2 + 2 + + + Why are my PIV unspendable? + PIV'lerim neden harcanabilir deÄŸil? + + + + <html><head/><body><p align="justify"> + Newly received PIVX requires 6 confirmations on the network + to become eligible for spending which can take ~6 minutes. + </p><p align="justify"> + Your PIVX wallet also needs to be completely synchronized + to see and spend balances on the network. + </p></body></html> + + + <html><head/><body><p align="justify"> + Yeni alınmış PIVX'lerin harcanabilr hale gelmesi için aÄŸdan 6 onay + alması gerekmektedir, bu iÅŸlem yaklaşık olarak 6 dakika sürer. + </p><p align="justify"> + PIVX cüzdanınızın aÄŸdaki bakiyesini görebilmesi ve harcayabilmesi + için tamamen senkronize olması gerekmektedir. + </p></body></html> + + + + 3 + 3 + + + PIVX privacy? What is Zerocoin (zPIV)? + PIVX gizliliÄŸi? Zerocoin (zPIV) nedir? + + + + <html><head/><body><p align="justify"> + zPIV is an optional privacy-centric method of coin mixing on the + PIVX blockchain. Basically all your transactions cannot be tracked + on to any block explorer. You can read more about the technicals in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "PIVX Zerocoin (zPIV) Technical Paper"</a>. + </p></body></html> + + + <html><head/><body><p align="justify"> + zPIV PIVX blockchaini üzerinde koinleri karıştırmak için kullanılan +gizlilik-odaklı opsiyonel bir metoddur. Temel olarak iÅŸlemleriniz + hiçbir tarayıcı tarafından takip edilemez. Teknik detayları + hakkında daha çok bilgi almak için + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "PIVX Zerocoin (zPIV) Teknik Makalesi"</a>. + </p></body></html> + + + + 4 + 4 + + + Why are my zPIV unspendable? + zPIV'lerim neden harcanabilir deÄŸil? + + + + <html><head/><body><p align="justify"> + After minting, zPIV will require 20 confirmations as well as 1 + additional mint of the same denomination on the network to + become eligible for spending. + </p></body></html> + + + <html><head/><body><p align="justify"> + Mint iÅŸlemi sonrasında, zPIV'lerin harcanabilir duruma gelmesi + için 20 onay alması ve kendisiyle aynı + bölüme sahip fazladan 1 mint'e ihtiyaç vardır. + </p></body></html> + + + + 5 + 5 + + + Why did my wallet convert the balance into zPIV automatically? + Neden cüzdanım bakiyemi otomatik olarak zPIV'e dönüştürdü? + + + + <html><head/><body><p align="justify"> + By default the PIVX wallet will convert 10% of your entire PIV + balance to zPIV to assist the network. If you do not wish to + stake zPIV or take advantage of the privacy benefit it brings, + you can disable the automatic minting in your PIVX wallet by + going to Settings->Options and deselecting “Enable zPIV Automintâ€. + If you are not making use of the PIVX-QT or GUI you can simply open + your pivx.conf file and add <i>enablezeromint=0</i> Without the quotation + marks and restart your wallet to disable automint.</p> + </p><p align="justify"> + You can read more about zPIV in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> "PIVX Zerocoin (zPIV) Technical Paper"</a>. + If you would like to keep and stake your zPIV, please read the "How do I stake" + section of the FAQ below. + </p></body></html> + + + <html><head/><body><p align="justify"> + PIVX cüzdanınız aÄŸa destek olmak için varsayılan olarak tüm PIV bakiyenizin 10% 'unu zPIV'e dönüştürecektir. GetirdiÄŸi gizlilik avantajını istemiyor veya zPIV stakelemek istemiyorsanız cüzdanınızın otomint özelliÄŸini Ayarlar->Seçenekler içindeki “zPIV Otomint etkin†seçeneÄŸini deÄŸiÅŸtirerek devredışı bırakabilirsiniz. PIVXQT veya GUI kullanmıyorsanız, pivx.conf dosyası içine <i>enablezeromint=0</i> ifadesini tırnak iÅŸareti olmadan girerek devredışı bırakabilirsiniz. </p> + </p><p align="justify"> + Teknik detayları hakkında daha çok bilgi almak için + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> "PIVX Zerocoin (zPIV) Teknik Makalesi"</a>. + zPIV'lerinizi tutmak ve stakelemek istiyorsanız, lütfen SSS kısmındaki "Nasıl Stake yaparım" +kısmını okuyunuz. + </p></body></html> + + + + 6 + 6 + + + How do I receive PIV/zPIV? + Nasıl PIV/zPIV alabilirim? + + + + <html><head/><body><p align="justify"> + zPIV can be spent and sent to any PIVX address. The receiver will + receive standard PIVX but the origin of the PIVX is anonymized by the zPIV Protocol. + </p><p align="justify"> + If you want more zPIV you will need to mint your balance in the “Privacy†tab. + </p></body></html> + + + <html><head/><body><p align="justify"> + zPIV herhangi bir PIVX adresine gönderilerek harcanabilir. + Alıcı standart PIVX alacaktır fakat PIVX kaynağı +zPIV Protokolü ile anonimleÅŸtirilmiÅŸ olacaktır. + </p><p align="justify"> + Daha fazla zPIV istiyorsanız, "Gizlilik" tabından bakiyenizi mintlemeniz gerekecektir. + </p></body></html> + + + + 7 + 7 + + + How do I stake PIV/zPIV? + Nasıl PIV/zPIV staking yapabilirim? + + + + <html><head/><body><p align="justify"> + To Stake PIVX: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + You must have a balance of PIVX with a minimum of 101 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + <li> + Once all those steps are followed staking should be enabled. + <li> + You can see the status of staking in the wallet by mousing over the package icon in the row on the top left of the wallet interface. There package will be lit up and will state "Staking Enabled" to indicate it is staking. Using the command line interface (pivx-cli); the command <i>getstakingstatus</i> will confirm that staking is active. + </li></ol> + </p><p align="justify"> + To Stake zPIV: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + Your newly minted or existing zPIV balance must have a minimum of 200 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + Staking should now be enabled. + </li></ol> + </p></body></html> + + + <html><head/><body><p align="justify"> + PIVX Staking yapabilmek için: + </p><p align="justify"> + <ol><li> + Cüzdanınızı tamamen senkronize olduÄŸundan ve son versiyonu kullandığınızdan emin olun. + <li> + En az 101 onay almış bir PIVX bakiyeniz olmaldır. + <li> + Cüzdanınız online olmalı, stake ve anonimleÅŸtirme iÅŸlemleri için kilidini açılmış olmalıdır. + <li> + Bu adımlar tamamlanmışsa staking çalışıyor olmalıdır. + <li> + Staking durumunu kontrol etmek için fare imlecini cüzdanın sol üst kısmındaki paket ikonu üzerinde tuttuÄŸunuzda görebilirsiniz. Yaptığını göstermek için paket ikonunun ışığı yanacak ve "Staking aktif" yazacaktır. Komut satırı arayüzünden (pivx-cli); <i>getstakingstatus</i> komutunu çalıştırarak staking'in etkin olduÄŸunu onaylayabilirsiniz. + </li></ol> + </p><p align="justify"> + zPIV Staking yapabilmek için: + </p><p align="justify"> + <ol><li> + Cüzdanınızı tamamen senkronize olduÄŸundan ve son versiyonu kullandığınızdan emin olun. + <li> + En az 200 onay almış yeni oluÅŸturulmuÅŸ veya eskiden bulunan zPIVX bakiyeniz olmaldır. + <li> + Cüzdanınız online olmalı, stake ve anonimleÅŸtirme iÅŸlemleri için kilidini açılmış olmalıdır. + Bu adımlar tamamlanmışsa staking çalışıyor olmalıdır. + </li></ol> + </p></body></html> + + + + 8 + 8 + + + Where I should go if I need support? + Yardıma ihtiyacım olduÄŸunda nereye gitmeliyim? + + + + <html><head/><body><p align="justify"> + We have support channels in most of our official chat groups, for example + <a style='color: #b088ff' href='https://Discord.PIVX.com'> + #support in our Discord</a>. + If you prefer to submit a ticket, One can be + <a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> + our Freshdesk support site</a>. + </p></body></html> + + + <html><head/><body><p align="justify"> + Resmi chat gruplarımızın çoÄŸunun içinde destek kanalları bulunmaktadır, örneÄŸin + <a style='color: #b088ff' href='https://Discord.PIVX.com'> + Discord içinnde #support </a>. + Bir destek talebi açmak isterseniz,bunu + <a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> + Freshdesk destek sitesinden yapabilirsiniz</a>. + </p></body></html> + + + + 9 + 9 + + + What is a Master Node? + Masternode nedir? + + + + <html><head/><body><p align="justify"> + A masternode is a computer running a full node PIVX core wallet with a + requirement of 10,000 PIV secured collateral to provide extra services + to the network and in return, receive a portion of the block reward + regularly. These services include: + </p><p align="justify"> + + <ul> + <li>Instant transactions (SwiftX)</li> + <li>A decentralized governance (Proposal Voting)</li> + <li>A decentralized budgeting system (Treasury)</li> + <li>Validation of transactions within each block</li> + <li>Act as an additional full node in the network</li> + </ul> + + </p><p align="justify"> + For providing such services, masternodes are also paid a certain portion + of reward for each block. This can serve as a passive income to the + masternode owners minus their running cost. + </p><p align="justify"> + + Masternode Perks: + </p><p align="justify"> + <ul> + <li>Participate in PIVX Governance</li> + <li>Earn Masternode Rewards</li> + <li>Commodity option for future sale</li> + <li>Help secure the PIVX network</li> + </ul> + </p><p align="justify"> + + Requirements: + </p><p align="justify"> + <ul> + <li>10,000 PIV per single Masternode instance</li> + <li>Must be stored in a core wallet</li> + <li>Need dedicated IP address</li> + <li>Masternode wallet to remain online</li> + </ul> + </p></body></html> + + + <html><head/><body><p align="justify"> + Tam düğüm PIVX core cüzdanını çalıştıran, gereken 10,000 PIV + teminat bakiyesini barındırarak aÄŸa ekstra hizmetler sunan ve + karşılığında da her blok ödülünden düzenli olarak pay alan bir + bilgisayardır.Bu hizmetler aÅŸağıdaki gibidir: + </p><p align="justify"> + + <ul> + <li>Anlık transferler (SwiftX)</li> + <li>Merkeziyetsiz yönetim (Teklif Onaylama)</li> + <li>Merkeziyetsiz bütçe sistemi (Hazine)</li> + <li>Her blogun içinde iÅŸlem onayı</li> + <li>AÄŸda ek bir düğüm olarak görev yapmak</li> + </ul> + + </p><p align="justify"> + Bu tür hizmetler vermesi ile masternodlar her blok ödülünden belli +bir oranda pay alırlar. Bu masternode sahiplerine +iÅŸletim maliyetleri sonrası pasif bir gelir sunar. + </p><p align="justify"> + + Masternode Avantajları: + </p><p align="justify"> + <ul> + <li>PIVX yönetimine katılın</li> + <li>Masternode Ödülleri kazanın</li> + <li>Ä°lerde satabileceÄŸiniz bir varlık opsiyonu</li> + <li>PIVX ağını güvenliÄŸine destek olun</li> + </ul> + </p><p align="justify"> + + Gereksinimler: + </p><p align="justify"> + <ul> + <li>Her Masternod için ayrı 10,000 PIV + <li>Core cüzdan içinde saklanmalıdır.</li> + <li>Atanmış IP adresi gerekmektedir. </li> + <li>Masternode cüzdanının online olması</li> + </ul> + </p></body></html> + + + + 10 + 10 + + + What is a Master Node Controller? + Masternode Kontrolörü nedir? + + + <html><head/><body><p align="justify">A Masternode Controller wallet is where the 10,000 PIV collateral can reside during a Controller-Remote masternode setup. It is a wallet that can activate the remote masternode wallet/s and allows you to keep your collateral coins offline while the remote masternode remains online. </p></body></html> + <html><head/><body><p align="justify">Masternode Kontrol cüzdanı Masternode Uzaktan-Kontrol kurulumu yapırken içinde 10,000 PIV teminatını bulundurur. Bu cüzdan uzak masternode cüzdan/larını etkinleÅŸtirebilir, ayrıca masternodlarınız online iken teminatınızı baÄŸlantı dışında tutmanıza imkan saÄŸlar. </p></body></html> + + + Frequently Asked Questions + Sıkça Sorulan Sorular + + + You can read more here + Burada daha fazla okuyabilirsiniz + + + Exit + Çıkış + + + + SettingsInformationWidget + + Form + Form + + + TextLabel + TextLabel + + + Network Monitor + AÄŸ Gözlemcisi + + + Information + bilgi + + + General + Genel + + + Client Version: + Uygulama versionu + + + User Agent: + Kullanıcı Aracısı: + + + Using BerkeleyDB version: + BerkeleyDB version + + + Datadir: + Bilgi Dizini: + + + Startup Time: + BaÅŸlatma zamanı + + + Network + AÄŸ + + + Name: + Ä°sim + + + Number Connections: + BaÄŸlantı Sayısı: + + + Blockchain + Blockchain + + + Current Number of Blocks: + Mevcut Blok Sayısı + + + Last Block Time: + Son Blok Zamanı + + + Memory Pool + Hafıza Havuzu + + + Current Number of Transactions: + Mevcut Ä°ÅŸlem Sayısı: + + + Main + Ana + + + Wallet Conf + Cüzdan Konf + + + Backups + Yedekler + + + No information + Bilgi yok + + + Unable to open backups folder + Yedek klasörü açılamadı + + + Unable to open pivx.conf with default application + pivx.conf dosyası uygulama tarafından açılamadı + + + In: + İçe: + + + Out: + Dışa: + + + + SettingsMainOptionsWidget + + Form + Form + + + TextLabel + TextLabel + + + Window + Pencere + + + Customize the application window options + Uygulama Penceresi seçeneklerini deÄŸiÅŸtir + + + CheckBox + CheckBox + + + Reset to default + Varsayılana konumlandır + + + Discard changes + DeÄŸiÅŸikliklerden vazgeç + + + SAVE + KAYDET + + + Main + Ana + + + Size of database cache + Veritabanı cash büyüklüğü + + + Number of script verification threads + Komut onay parça sayısı + + + Start PIVX on system login + Sistem açılışında PIVX'i baÅŸlat + + + Minimize to the tray instead of the taskbar + Taskbar yerine yerine tepsiye küçült + + + Minimize on close + Kapama tuÅŸuna basınca küçült + + + Reset Options + Seçenekleri Resetle + + + You are just about to reset the app's options to the default values. + +Are you sure? + + Uygulamanın seçeneklerini varsayılan deÄŸerlere dönüştürmek üzeresiniz. + +Emin misiniz? + + + + Options reset succeed + Opsiyonları sıfırlama baÅŸarılı + + + + SettingsMultisendDialog + + Form + Form + + + Transaction Details + Ä°ÅŸlem Detayları + + + TextLabel + TextLabel + + + CANCEL + Ä°PTAL + + + SAVE + KAYDET + + + New recipient for multisend + ÇokluGönder için yeni alıcı + + + Label (optional) + Etiket (Opsiyonel) + + + Enter a label to add this address in your address book + Adres defterinize kaydetmek için bir etiket girin + + + Percentage + Yüzde + + + + SettingsMultisendWidget + + Form + Form + + + TextLabel + TextLabel + + + No active Master Node yet + Henüz aktif Masternode bulunmuyor + + + CheckBox + CheckBox + + + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. + ÇokluGönder olgunlaÅŸmış masternode ve staking ödüllerinizin 100% 'üne kadarını diÄŸer PIVX adreslerine otomatik olarak göndermenizi saÄŸlar. + + + Active + aktif + + + Disable + Devre dışı bırak + + + No active recipient yet + Henüz aktif alıcı bulunmuyor + + + Send stakes + Stakeleri gönder + + + Send masternode rewards + Masternode ödüllerini gönder + + + ADD RECIPIENT + ALICI EKLE + + + CLEAR ALL + TEMÄ°ZLE + + + Clear succeed + Temizlik baÅŸarılı + + + Clear all failed, could not locate address in wallet file + Hepsini temizleme iÅŸlemi baÅŸarısız, cüzdan dosyasında adres bulunamadı + + + The entered address: %1 is invalid. +Please check the address and try again. + Girili adres: %1 geçersiz. +Lütfen adresi kontrol ediniz ve tekrar deneyiniz. + + + Invalid percentage, please enter values from 1 to 100. + Geçersiz yüzde, lütfen 1 ile 100 arasında bir deÄŸer girin + + + The total amount of your MultiSend vector is over 100% of your stake reward + MultiSend vectorünüzün toplam miktarı stake ödülünün 100% ünden fazla + + + Error saving MultiSend, failed saving properties to the database. + ÇokluGönder kaydetme hatası, özellikler veritabanına yazılamadı. + + + Unable to activate MultiSend, no available recipients + ÇokluGönder aktive edilemedi, hazırda alıcı bulunmuyor. + + + Unable to activate MultiSend +Check one or both of the check boxes to send on stake and/or masternode rewards + ÇokluGönder aktive edilemedi +Ä°ÅŸaret kuturlarından birini veya ikisini seçerek stake ve/veya masternode ödüllerinden gönderin. + + + MultiSend activated but writing settings to DB failed + Çoklu Gönderim devrede fakat ayarlar veritabanına yazılamadı + + + MultiSend activated + ÇokluGönderi geçerli hale getirildi + + + First multiSend address invalid + Ä°lk ÇokluGönder adresi geçersiz + + + MultiSend deactivated but writing settings to DB failed + Çoklu Gönderim devredışı fakat ayarlar veritabanına yazılamadı + + + MultiSend deactivated + Çoklu Gönderim devredışı + + + + SettingsSignMessageWidgets + + Form + Form + + + TextLabel + TextLabel + + + PushButton + Butona Basın + + + Clear + temizle + + + Sign/Verify Message + Mesaj Ä°mza/Onay + + + Enter a PIVX address or contact label + Bir PIVX adresi veya baÄŸlantı etiketi girin + + + Add address + Adres ekle + + + Sign + Ä°mzala + + + Verify + Onayla + + + Select mode + Modu Seç + + + Message + Mesaj + + + Write a message + Bir mesaj yaz + + + Signature + Ä°mza + + + SIGN + IMZALA + + + CLEAR ALL + TEMÄ°ZLE + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + Sahip olduÄŸunuzu kanıtlamak için adreslerinizle mesaj imzalayabilirsiniz. Kimlik avı saldırıları sizi kimliÄŸini onlara yazmaya kandırmaya çalışabilir, çünkü belirsiz bir ÅŸey imzalamamaya dikkat edin. Kabul ettiÄŸiniz tamamen ayrıntılı ifadeleri yalnızca imzalayın. + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + Ä°mzalı adres, ileti girin (tam olarak satır sonlarını, boÅŸlukları, sekmeleri vs. kopyaladığınızdan emin olun) ve iletiyi doÄŸrulamak için aÅŸağıdaki imzayı yazın. Bir adam-in-the-middle saldırısı tarafından kandırdın önlemek için imzalı mesajın kendisinden daha fazla imza okumamaya dikkat edin. + + + VERIFY + ONAYLA + + + The entered address is invalid. + Girilen adres geçersiz. + + + Please check the address and try again. + Lütfen adresini kontrol edin ve tekrar deneyin. + + + The entered address does not refer to a key. + Girilen adres bir tuÅŸa atıfta bulunmaz. + + + Wallet unlock was cancelled. + Cüzdan kilidi açılması iptal edildi. + + + Private key for the entered address is not available. + Girilen adres için özel anahtar kullanılamıyor. + + + Message signing failed. + Mesaj imzalama baÅŸarısız oldu + + + Message signed. + Mesaj imzalandı + + + The signature could not be decoded. + Ä°mza çözülemedi. + + + Please check the signature and try again. + Lütfen imzayı kontrol edin ve tekrar deneyin. + + + The signature did not match the message digest. + Ä°mza, mesaj özetiyle eÅŸleÅŸmedi. + + + Message verification failed. + Mesaj doÄŸrulaması baÅŸarısız oldu. + + + Message verified. + Mesaj doÄŸrulanmış. + + + No addresses available, you can go to the receive screen and add some there! + Uygun adres bulunmuyor, AL ekranına giderek adres ekleyebilirsin. + + + + SettingsWalletOptionsWidget + + Form + Form + + + TextLabel + TextLabel + + + CheckBox + CheckBox + + + RadioButton + RadioButton + + + Reset to default + Varsayılana konumlandır + + + Discard changes + DeÄŸiÅŸikliklerden vazgeç + + + PushButton + Butona Basın + + + Wallet + cüzdan + + + Customize the internal wallet options + Cüzdan içi opsiyonları özelleÅŸtir + + + Stake split threshold: + Stake bölme eÅŸiÄŸi + + + Spend unconfirmed change + Onaylanmamış tutarı harca + + + Network + AÄŸ + + + Customize the node network options + Düğüm aÄŸ opsiyonlarını özelleÅŸtir + + + Proxy IP: + Proksi IP: + + + Enter proxy IP + Proksi IP'sini gir + + + Port: + Port: + + + Map port using UPnP + UPnP kullanarak proksiyi ayarla + + + Allow incoming connections + Gelen baÄŸlantılara izin ver + + + Connect through SOCKS5 proxy (default proxy): + SOCKS5 proksisi üzerinden baÄŸlan (varsayılan proksi) + + + SAVE + KAYDET + + + Options reset succeed + Opsiyonları sıfırlama baÅŸarılı + + + + SettingsWalletRepairWidget + + Form + Form + + + TextLabel + TextLabel + + + PushButton + Butona Basın + + + Wallet Repair + Cüzdan Onarımı + + + The buttons below will restart the wallet with command-line options to repair this wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. + AÅŸağıdaki düğmeleri kullanarak cüzdanı tekrar baÅŸlattığınızda cüzdan onarımı, bozuk blockchain dosyaları veya eksik/süresi geçmiÅŸ iÅŸlemlerden kaynaklı hataları düzeltmek için komut satırı opsiyonlarıyla açılacaktır. + + + Attempt to recover private keys from a corrupt wallet.dat. + Bozuk bir wallet.dat'tan özel anahtarları kurtarmayı deneyin. + + + Rescan the blockchain for missing wallet transactions. + Eksik cüzdan transferleri için blockchaini tekrar tara. + + + Recover transactions from blockchain (keep-meta-data, e.g. account owner). + Blockchainden iÅŸlemleri kurtarın (meta verileri koru, örn. hesap sahibi) + + + Recover transactions from blockchain (drop meta-data). + Ä°ÅŸlemleri blok zincirden kurtarın (meta verileri bırakın). + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself) + Cüzdanı baÅŸlangıçta en yeni formata yükseltin. (Not: Bu, cüzdanın kendisinin güncellemesi deÄŸildir!) + + + Rebuild blockchain index from current blk000???.dat files. + Blok zinciri dizinini mevcut blk000 ?? dat dosyalarından yeniden oluÅŸtur. + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Cüzdan sıfırdan eÅŸleÅŸtirmek için tüm yerel blok zincir klasörlerini siler. + + + Salvage wallet + Kurtarma cüzdanı + + + Rescan blockchain file + Blockchain dosyasını tekrar tara + + + Recover transactions 1 + Ä°ÅŸemleri kurtarın 1 + + + Recover transactions 2 + Ä°ÅŸlemleri kurtar 2 + + + Upgrade wallet format + Cüzdan formatını güncelleyin + + + Rebuild index + Dizini yeniden oluÅŸtur + + + Delete local blockchain + Yerel Blockchain'i sil + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Bu, yerel blok zincir klasörlerini silecek ve cüzdan tüm Blockchain'i sıfırdan senkronize edecektir..<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + Bu biraz zaman nalacak ve birçok veri indirecektir.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Ä°ÅŸlemleriniz ve bakiyeniz indirme tamamıyle tamamlandıktan sonra tekrar görünür olacaktır.<br /><br /> + + + Do you want to continue?.<br /> + Devam etmek istiyor musunuz?.<br /> + + + Confirm resync Blockchain + Blockchaini resenkronize etmeyi onaylayın + + + + SettingsWidget + + Form + Form + + + TextLabel + TextLabel + + + Wallet Data + Cüzdan Bilgisi + + + Wallet + cüzdan + + + Multisend + Çoklu Gönderim + + + Tools + Araçlar + + + Sign/Verify Message + Mesaj Ä°mza/Onay + + + BIP38 Tool + BIP38 Aracı + + + Options + Seçenekler + + + Main + Ana + + + Display + Görüntü + + + Debug + Hata Ayıklama + + + Information + bilgi + + + Console + Konsol + + + Wallet Repair + Cüzdan Onarımı + + + Help + Yardım + + + FAQ + SSS + + + About PIVX + PIVX Hakkında + + + Settings + Ayarlar + + + Confirm options reset + Seçeneklerin sıfırlanmasını onayla + + + Client restart required to activate changes. + DeÄŸiÅŸiklikleri etkinleÅŸtirmek için istemci yeniden baÅŸlatılması gerekiyor. + + + Client will be shutdown, do you want to proceed? + Cüzdan kapanacak, devam etmek istiyor musunuz? + + + Restart required + Tekrar baÅŸlatma gerekiyor + + + Your wallet needs to be restarted to apply the changes + + DeÄŸiÅŸikliklerin etkinleÅŸmesi için cüzdanınızın tekrar baÅŸlatılması gerekiyor. + + + + Restart Now + Åžimdi Tekrar BaÅŸlatın + + + Restart Later + Sonra Tekrar BaÅŸlatın + + + Options will be applied on next wallet restart + Seçenekler cüzdan tekrar baÅŸlatıldığında uygulanacaktır + + + Options stored + Seçenekler yüklendi + + + Options store failed + Seçenekler yüklenemedi + + + Discard Unsaved Changes + KaydedilmemiÅŸ deÄŸiÅŸikliklerden vazgeç + + + You are just about to discard all of your unsaved options. + +Are you sure? + + Åžu an kaydedilmemiÅŸ tüm deÄŸiÅŸikliklerden vazgeçmek üzeresiniz + +Emin misiniz? + + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core kapanıyor ... + + + Do not shut down the computer until this window disappears. + Bu pencere kaybolmadan Bilgisayarı kapatmayın. + + + + SnackBar + + Form + Form + + + Contact Stored + BaÄŸlantı yüklendi + + + + Splash + + Form + Form + + + Loading… + Yükleniyor... + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX CORE + + + Version %1 + Version %1 + + + The Bitcoin Core developers + The Bitcoin Core developers + + + The Dash Core developers + The Dash Core developers + + + The PIVX Core developers + The PIVX Core developers + + + [testnet] + [testnet] + + + + TooltipMenu + + Form + Form + + + Copy + Kopyala + + + Edit + Güncelle + + + Delete + Sil + + + Last + Son + + + + TopBar + + Form + Form + + + 480.0685 PIV + 480.0685 PIV + + + 1,000 zPIV + 1,000 zPIV + + + Available + Uygun + + + Pending + Beklemede + + + 6.943 PIV + 6.943 PIV + + + Immature + OlgunlaÅŸmamış + + + 10 PIV + 10 PIV + + + 60 zPIV + 60 zPIV + + + 10 zPIV + 10 zPIV + + + Wallet Unlocked for staking + Cüzdan Stake için açıldı + + + Error generating address + Adres oluÅŸturma hatası + + + Address Copied + Adres kopyalandı + + + Automint enabled + Otomatik basım etkin + + + Automint disabled + Otomatik basım kapalı + + + Staking active + Stake etkin + + + Staking not active + Stake kapalı + + + %n active connection(s) + %n aktif baÄŸlantı(lar) mevcut PIVX ağına%n aktif baÄŸlantı(lar) + + + Synchronized + Senkron + + + %n hour(s) + %n saat%n saat + + + %n day(s) + %n gün%n gün + + + %n week(s) + %n hafta%n hafta + + + %1 and %2 + %1 ve %2 + + + %n year(s) + %n yıl%n yıl + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open for %n more block(s) + %n blok daha için açık tut%n blok daha için açık tut + + + Open until %1 + Açık %1 e dek + + + conflicted + çatışmalı + + + %1/offline + %1 / çevrimdışı + + + %1/unconfirmed + %1 / doÄŸrulanmamış + + + %1 confirmations + %1 doÄŸrulama + + + %1/offline (verified via SwiftX) + %1 / çevrimdışı (SwiftX ile doÄŸrulanmış) + + + %1/confirmed (verified via SwiftX) + %1 / doÄŸrulandı (SwiftX ile doÄŸrulandı) + + + %1 confirmations (verified via SwiftX) + %1 doÄŸrulama (SwiftX ile doÄŸrulandı) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1 / çevrimdışı (SwiftX doÄŸrulama iÅŸlemi devam ediyor - %3 imzalardan %2 si) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1 / onaylandı (SwiftX doÄŸrulama iÅŸlemi - %3 imzalardan %2 si) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 doÄŸrulama (SwiftX doÄŸrulama iÅŸlemi - %3 imzalardan %2 si) + + + %1/offline (SwiftX verification failed) + %1 / çevrimdışı (SwiftX doÄŸrulama baÅŸarısız) + + + %1/confirmed (SwiftX verification failed) + %1 / onaylandı (SwiftX doÄŸrulama baÅŸarısız oldu) + + + Status + Durum + + + , has not been successfully broadcast yet + , henüz baÅŸarıyla yayınlanmamış + + + , broadcast through %n node(s) + , %n düğüm üzerinden yayın, %n düğüm üzerinden yayın + + + Date + Tarih + + + Source + Kaynak + + + Generated + OluÅŸturuldu + + + From + Tarafından + + + unknown + Bilinmeyen + + + To + Åžuna + + + own address + Kendi adresin + + + watch-only + sadece-izle + + + label + Etiket + + + Credit + Kredi + + + matures in %n more block(s) + %n blok sonra olgunlaÅŸacak%n blok sonra olgunlaÅŸacak + + + not accepted + kabul edilmez + + + Debit + Debit + + + Total debit + Total debit + + + Total credit + Total Kredi + + + Transaction fee + Ä°ÅŸlem ücreti + + + Net amount + Net miktar + + + Message + Mesaj + + + Comment + Yorum + + + Transaction ID + Ä°ÅŸlem ID si + + + Output index + Çıktı Ä°ndeksi + + + Merchant + Satıcı + + + Debug information + Debug bilgisi + + + Transaction + Ä°ÅŸlem + + + Inputs + Girdiler + + + Amount + Miktar + + + true + true + + + false + false + + + + TransactionTableModel + + Date + Tarih + + + Type + yaz + + + Address + adres + + + Open for %n more block(s) + %n blok daha için açık %n blok daha için açık + + + Open until %1 + Açık %1 e dek + + + Offline + Çevrimdışı + + + Unconfirmed + DoÄŸrulanmamış + + + Confirming (%1 of %2 recommended confirmations) + Teyit ediliyor (%2 onaylamalı onayların %1'i) + + + Confirmed (%1 confirmations) + Onaylandı (%1 doÄŸrulama) + + + Conflicted + Çatışmış + + + Immature (%1 confirmations, will be available after %2) + OlgunlaÅŸmamış (%1 doÄŸrulama, %2'den sonra mevcut olacak) + + + This block was not received by any other nodes and will probably not be accepted! + Bu blok diÄŸer düğümler tarafından alınmadı ve muhtemelen kabul edilmeyecek! + + + Received with + ile Alınmış + + + Masternode Reward + Masternode Ödülü + + + Received from + Tarafından alındı + + + Received via Obfuscation + Åžaşırtma yoluyla Alınan + + + PIV Stake + PIV Stake + + + zPIV Stake + zPIV Stake + + + PIV Cold Stake + PIV SoÄŸuk Stake + + + PIV Stake in behalf of + Yerine PIV stake + + + Stake delegation + Stake delegasyonu + + + Obfuscation Denominate + Åžaşırtmaca denominate + + + Obfuscation Collateral Payment + Soruna Katılma Teminat Ödemesi + + + Obfuscation Make Collateral Inputs + Åžaşırtma yan girdiler yapar + + + Obfuscation Create Denominations + Obfuscation OluÅŸturma Adları + + + Converted PIV to zPIV + PIV'den zPIV'e dönüştürülen + + + Spent zPIV + zPIV Harca + + + Received PIV from zPIV + zPIV'den PIV olarak alınan + + + Minted Change as zPIV from zPIV Spend + zPIV harcamasından kaynaklanan zPIV mint farkı + + + Converted zPIV to PIV + zPIV'den PIV' dönüştürülen + + + Sent to + Gönderilen + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Yetim Blok - OluÅŸturuldu, ancak kabul edilmedi. Bu, varlıklarınızı etkilemez. + + + Payment to yourself + Kendine ödeme + + + Mined + Mined + + + Obfuscated + Åžaşırtıldı + + + watch-only + sadece-izle + + + Anonymous + Anonim + + + No information + Bilgi yok + + + (n/a) + (n/a) + + + Transaction status. Hover over this field to show number of confirmations. + Ä°ÅŸlem Durumu. Teyit sayısını göstermek için imlecinizi bu alanın üzerine getirin. + + + Date and time that the transaction was received. + Ä°ÅŸlemin alındığı tarih ve saat. + + + Type of transaction. + Ä°ÅŸlem Tipi + + + Whether or not a watch-only address is involved in this transaction. + Yalnızca izleme amaçlı adresin bu iÅŸleme dahil edilip edilmediÄŸi. + + + Destination address of transaction. + Ä°ÅŸlemin varış adresi + + + Amount removed from or added to balance. + Bakiye kaldırılan veya dengeye eklenen miktar. + + + + TxDetailDialog + + Form + Form + + + Transaction Details + Ä°ÅŸlem Detayları + + + ID: + ID: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Sending to: + Gönderiliyor: + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + Total amount + Toplam Tutar: + + + 2 PIV + 2 PIV + + + Coin inputs: + Koin girdileri: + + + 1 Inputs + 1 girdi + + + Previous Transaction + Önceki Ä°ÅŸlem + + + Output Index + Çıktı Endeksi + + + Fee: + Ãœcret: + + + 0.0001 PIV + 0.0001 PIV + + + Change address: + DeÄŸiÅŸim Adresi + + + D7VFR83SQbie…BhjcWJtcfip5krte2Z + D7VFR83SQbie…BhjcWJtcfip5krte2Z + + + Confirmations: + Onaylar: + + + 12 + 12 + + + Size: + Büyüklük: + + + 2 kB + 2 kB + + + Date: + Tarih: + + + May 25, 2017 + May 25, 2017 + + + Status: + Durum: + + + Spendable + Harcanabilir + + + TextLabel + TextLabel + + + CANCEL + Ä°PTAL + + + OK + TAMAM + + + Confirm Your Transaction + Ä°ÅŸleminizi Onaylayın + + + SEND + GÖNDER + + + ID copied + ID kopyalandı + + + Unknown + Bilinmeyen + + + + TxRow + + Form + Form + + + Received from Bob + Bob'tan geldi + + + 18/05/18 + 18/05/18 + + + +0.000585 PIV + +0.000585 PIV + + + + WalletModel + + Send Coins + Koinleri göder + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftX yüksek deÄŸerler göndermeyi desteklemiyor. Ä°ÅŸlemler ÅŸu anda %1 PIV ile sınırlıdır. + + + + WalletPasswordDialog + + Dialog + Diyalog + + + TextLabel + TextLabel + + + PushButton + Butona Basın + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + Ä°PTAL + + + OK + TAMAM + + + + WelcomeContentWidget + + Dialog + Diyalog + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + Language + Dil + + + Welcome + HoÅŸgeldiniz + + + Privacy + Gizlilik + + + Masternodes + Masternode'lar + + + Select your language + Dilinizi seçin + + + Welcome to +PIVX Core Wallet + PIVX Core Cüzdanı'na +HoÅŸgeldiniz + + + PIVX is the world’s most innovative Proof of Stake blockchain based technology. Developed by a team of highly experienced developers and cryptographers. + PIVX Proof of Stake tabanlı dünyadaki en yenilikçi blockchain teknolojisidir. Yüksek tecrübeye sahip yazılımcılar ve kriptograflardan oluÅŸan bir ekip tarafından geliÅŸtirilmiÅŸtir. + + + <html><head/><body><p>As our manifesto says: Privacy is a non-negotiable basic human right; it grants users the freedom to share their data whenever and with whomever they want - PIVX believes in self sovereignty.</p></body></html> + <html><head/><body><p>Manifestomuzda yazdığı gibi: Gizlilik, pazarlık yapılamayacak temel bir insan hakkıdır; kullanıcılarına istedikleri zaman ve istedikleri kiÅŸiyle verilerini paylaÅŸma özgürlüğü verir - PIVX özerkliÄŸe inanır.</p></body></html> + + + The masternode network is PIVX's second layer network on top of the blockchain that enables our DAO to provide decentralized governance and a treasury. + Masternode ağı dağıtık yönetim ve hazine yönetimini saÄŸlayan PIVX blockchaini üzerindeki ikinci katmandır. + + + How PIVX respects your privacy? + PIVX gizliliÄŸinize nasıl saygı duyar? + + + What is a Masternode? + Masternode nedir? + + + default + varsayılan + + + + ZPivControlDialog + + Select zPIV to Spend + Harcanacak zPIV'leri seçin + + + Coin Control + Koin kontrolü + + + PushButton + Butona Basın + + + zPiv + zPiv + + + 0.00 + 0.00 + + + Quantity: + Miktar + + + Is Spendable + Harcanabilir + + + 0 + 0 + + + Select/Deselect All + Seç/Çıkar Hepsini + + + Select zPIV Denominations to Spend + Harcanacak zPIV Bölümlerini Seçin + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = tx meta verileri, örneÄŸin hesap sahibi ve ödeme talebi bilgileri, 2 = tx meta verileri bırak) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + JSON-RPC baÄŸlantılarını seçilmiÅŸ kaynaktan izin ver. Geçerli <ip> sadece tek IP için (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). TBu seçenek defalarca kez belirlenebilir. + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Verilen adrese baÄŸlanın ve onu dinleyin. IPv6 için [host]: port gösterimini kullanın + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Verilen adrese ve ona baÄŸlanan beyaz listelere baÄŸlayın. IPv6 için [host]: port gösterimini kullanın + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + JSON-RPC baÄŸlantılarını dinlemek için verilen adrese baÄŸlanın. IPv6 için [host]: port gösterimini kullanın. Bu seçenek birden çok kez belirtilebilir (varsayılan: tüm arabirimlere baÄŸlanır) + + + Calculated accumulator checkpoint is not what is recorded by block index + Hesaplanan akümülatör kontrol noktası, blok indeksiyle kaydedilen kontrol noktası deÄŸildir. + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Veri dizini %s üzerinde bir kilit elde edemiyor. PIVX Core muhtemelen zaten çalışıyor. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Otomatik sonuçlandırılmış bütçe oylama davranışını deÄŸiÅŸtirin. mode = auto: Yalnızca kesin bütçelendirilmiÅŸ bütçeyi, oluÅŸturulan bütçemle eÅŸleÅŸtirmek için oy verin. (dize, varsayılan: otomatik) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Ãœcretsiz iÅŸlemleri belirli aralıklarla sınırla <n>*1000 bytes dakikada (varsayılan: %u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Sistem varsayılan izinleri ile yeni dosyalar oluÅŸtur, 077 i açığa çıkartmak yerine (sadece cüzdan fonksiyonu etkisiz hale getirildiÄŸinde efektiftir.) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Tüm cüzdan iÅŸlemlerini sil ve sadece -rescan on startup komutuyla ilgili kısmımları sadece kurtar + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Blockchain'e kaydedilmiÅŸ tüm zerocoin ve mintleri sil ve tekrar endeksle (0-1, varsayılan: %u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + MIT yazılım lisansı altında dağıtılmıştır, eÅŸlik eden KOPYALAMA dosyasına bakın veya <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic Zerocoin minting from specific addresses (0-1, default: %u) + Belirli bir adresten otomatik zPIV minting yapılmasını etkinleÅŸtir (0-1, varsayılan: %u) + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Her zPIV mintleme sonrası otomatik cüzdan yedeklemesini aktifleÅŸtir (0-1, varsayılan:%u) + + + Enable cold staking functionality (0-1, default: %u). Disabled if staking=0 + SoÄŸuk stakeleme fonksiyonunu etkinleÅŸtirin (0-1, varsayılan: %u). Staking=0 ise etkin deÄŸildir + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + PIV giriÅŸleri için stake fonksiyonunu aç veya kapat (0-1, varsayılan: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + zPIV giriÅŸleri için stake fonksiyonunu aç veya kapat (0-1, varsayılan: %u) + + + Enable spork administration functionality with the appropriate private key. + Uygun private key ile Spork yönetim özelliÄŸine izin verin. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Regresyon test modunu girin, bu bloklar anında çözülebilen özel bir zincir kullanır. + + + Error: Listening for incoming connections failed (listen returned error %s) + Hata: Gelen baÄŸlantıları dinleme baÅŸarısız oldu (dinleme dönmüş hata %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Hata: Transfer izin verilen maksimum transfer büyüklüğünden fazla! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Hata: Desteklenmeyen argüman-socks bulundu. SOCKS versiyonunu ayarlamak artık mümkün deÄŸil, sadece SOCKS5 vekilleri destekleniyor. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Alakalı bir uyarı alındığında komutu çalıştırın veya gerçekten uzun bir çatalı görürüz (cmd'deki %s yerine mesaj gönderilir) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Cüzdan iÅŸlemi deÄŸiÅŸtiÄŸinde komutu yürütün (cmd'deki %s yerine TxID yazılır) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + En iyi blok deÄŸiÅŸtirildiÄŸinde komutu yürütün (cmd'deki %s yerine blok karması verilir) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Bundan daha küçük ücretler (PIV / Kb cinsinden), aktarma için sıfır ücret olarak kabul edilir (varsayılan: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Bundan daha küçük ücretler (PIV / Kb cinsinden), iÅŸlem yaratmada sıfır ücret olarak kabul edilir (varsayılan: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Bellek havuzundan disk günlüğüne her veritabanı aktivitesini temizle<n> megabytes (default: %u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Paytxfee belirlenmemiÅŸse, iÅŸlemlerin ortalama n blokta onaylanmaya baÅŸlaması için yeterli ücret ekleyin (varsayılan: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + Bu modda, -genproclimit, kaç blok üretileceÄŸini hemen kontrol eder. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Yetersiz veya yetersiz teyit edilmiÅŸ para, birkaç dakika bekleyip tekrar deneyebilirsiniz. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Yetersiz miktar için -maxtxfee=<amount>: '%s' (sıkışmış iÅŸlemleri önlemek için en az %s'lik minrelay ücreti olmalıdır) + + + Keep the specified amount available for spending at all times (default: 0) + Belirlenen tutarı her zaman harcamaya hazır durumda tut. (varsayılan:0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Blok kazarken iÅŸlem önceliÄŸini ve kB başına ücretin logunu tut (varsayılan: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + getrawtransaction rpc araması tarafından kullanılan tam iÅŸlem endeksini edin (varsayılan: %u) + + + Maximum average size of an index occurrence in the block spam filter (default: %u) + Blok spam filtresi içinde bir endeks oluÅŸumun ortalama maksimum büyüklüğü (varsayılan: %u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + Bilgi taşıyan iÅŸlemlerden mine edilen ve aktarılan maksimum bilgi büyüklüğü (varsayılan: %u) + + + Maximum size of the list of indexes in the block spam filter (default: %u) + Blok spam filtresi içinde bir endeks listesinin maksimum büyüklüğü (varsayılan: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Tekil cüzdan iÅŸleminde kullanılacak maksimum toplam ücret, çok düşük tutulduÄŸunda büyük transferler iptal edilebilir (varsayılan: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Uyumsuz davranan eÅŸleri tekrar baÄŸlanmaktan saniye cinsinden uzak tutma süresi (varsayılan: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + Gizleme özelliÄŸi gönderilecek tutarın kesin bölümlemelerini kullanır, sadece daha fazla koin anonimleÅŸtirmeniz gerekiyor. + + + Output debugging information (default: %u, supplying <category> is optional) + Hata ayıklama bilgisini dışarı aktar (varsayılan: %u, saÄŸlamak<category> opsiyoneldir) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Adresler azsa eÅŸ adreslerini DNS lookup yoluyla ara (varsayılan: 1 unless -connect) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Her proksi baÄŸlantısınıda tanıtma bilgisini rasgeleleÅŸtir. Bu tor akış izolasyonuna imkan verir (varsayılan: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Ãœcretsiz yada düşük ücretli iÅŸlemlerde yüksek öncelik ara (varsayılan:%u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + Takip/hata ayıklama bilgilerini debug.log dosyası yerine konsola gönder (varsayılan: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Yüksek öncelik/düşük maliyet iÅŸlemlerin maksimum blok büyüklüğünü belirle (varsayılan: %d) + + + Set the number of included blocks to precompute per cycle. (minimum: %d) (maximum: %d) (default: %d) + Her döngüde eklenen blokların ön iÅŸlemeye alınacak sayısını belirle. (minimum: %d) (maksimum: %d) (varsayılan: %d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + Betik onaylama iÅŸlem parça sayısını belirle (%u 'den %d 'ye, 0 = otomatik, <0 = iÅŸlemci çekirdeklerini bırak, varsayılan: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Koin oluÅŸturma etkinleÅŸtirilmiÅŸ ise, iÅŸlem parça sayısını belirle (-1 = tüm iÅŸlemci çekirdekleri, varsayılan: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + BaÅŸarıyla kilitlenmiÅŸ iÅŸlem için N tane onay göster (0-9999, varsayılan: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Bloom filtrelerini kullanarak blok ve iÅŸlem filtrelemesini destekle (varsayılan: %u) + + + The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct + Blok veritabanı gelecek tarihli bir blok barındırıyor . Bu bilgisayar tarihinizin doÄŸru belirlenmemiÅŸ olmasından olabilir. Block veritabanını sadece bilgisayarınızın tarihinde yanlışlık olmadığına emin olduktan sonra tekrar oluÅŸtun. + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + Bu ürün OpenSSL Aracında <https://www.openssl.org/> kullanılmak üzere üretilmiÅŸ OpenSSL projesi tarafından geliÅŸtirmiÅŸ yazılım barındırmaktadır. Kriptografik yazılım Eric Young ve UPnP yazılımı Thomas Bernard tarafından geliÅŸtirilmiÅŸtir. + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + AÄŸ versiyon dizisi toplam uzunluÄŸu(%i) maksimum uzunluÄŸu aşıyor(%i). Yorumların büyüklüğünü veya sayısını azaltın. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Bu bilgisayarda %s 'e baÄŸlanılamıyor. PIVX Core muhtemelen zaten çalışıyor. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Bu iÅŸlem için gereken yeterli bölünmüş gizleme fonu bulunamadı. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + 10000 PIV'e eÅŸit olmayan bu iÅŸlem için gereken yeterli bölünmemiÅŸ gizleme fonu bulunamadı. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + 10000 PIV'e eÅŸit olmayan bu iÅŸlem için yeterli bakiye tespit edilemedi + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + EÅŸlere Tor gizli servisleri üzerinden ulaÅŸmak için ayrı SOCKS5 proksisi kullan (varsayılan: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Uyarı: maxtxfee deÄŸeri çok yüksek ayarlanmış! Bu büyüklükte bir ücret ile ödeme yapılabilir. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Uyarı: paytxfee deÄŸeri çok yüksek ayarlanmış! Bu para gönderirken ödeyeceÄŸiniz transfer ücretidir. + + + Warning: Peers are being disconnected due time differences. Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Uyarı: Zaman farkı sebebiyle eÅŸlerin baÄŸlantısı koptı. Bilgisayarınızın tarih ve saat ayarlarının doÄŸruluÄŸunu kontrol edin! Saatiniz yanlış ise PIVX Core düzgün çalışmayacaktır. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Uyarı: Bilgisayarınızın tarih ve saat ayarlarının doÄŸruluÄŸunu kontrol edin! Saatiniz yanlış ise PIVX Core düzgün çalışmayacaktır. + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Uyarı: AÄŸ tamamen onaylamıyor! Bazı eÅŸler sorun yaşıyor olabilir. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Uyarı: DiÄŸer eÅŸlerle anlaÅŸamıyor gibiyiz.! Sizin yada diÄŸer düğümlerin güncelleme yapması gerekiyor. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Uyarı: wallet.dat dosyası okunurken hata oluÅŸtu. Tüm anahtarlar doÄŸru ÅŸekilde okundu, fakat iÅŸlemler bilgisi veya adres defteri giriÅŸleri eksik veya yanlış olabilir. + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + Uyarı: wallet.dat dosyası bozuk, bilgi kurtarıldı! Orjinal cüzdan wallet.{timestamp}.bak adıyla %s içine kaydedildiÄ° bakiyeniz veya iÅŸlemler yanlış ise yedekten yükleme yapmalısınız. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Verilen netmask veya IP adresinden gelen baÄŸlantıları güvenli listeye ekle. Birden çok defa belirlenebilir. + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + Güvenli liste -whitelist eÅŸleri DoS yasaklı olamaz, önceden mompool içinde olsalar bile iÅŸlemleri herzaman iletilir, geçit için faydalı örnek + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + Konfigürasyonda bir masternodeprivkey belirlemelisiniz.  Lütfen dokümantasyona bakınız. + + + (51472 could be used only on mainnet) + (51472 sadece mainnet üzerinde kullanılabilir) + + + (default: %s) + (default: %s) + + + (default: 1) + (default: 1) + + + (must be 51472 for mainnet) + (mainnet için 51472 olmalıdır) + + + Accept command line and JSON-RPC commands + JSON-RPC ve komut satırı komutlarını kabul et + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Dış baÄŸlantıları kabul et (varsayılan:1 eÄŸer -proxy veya -connect yoksa) + + + Accept public REST requests (default: %u) + Açık REST taleplerini kabul et (varsayılan: %u) + + + Add a node to connect to and attempt to keep the connection open + BaÄŸlanmak için bir düğüm ekle ve baÄŸlantıyı açık tut + + + Adding Wrapped Serials supply... + PaketlenmiÅŸ seri temini ekleniyor... + + + Allow DNS lookups for -addnode, -seednode and -connect + DNS lookup ile -addnode, -seednode ve -connect iÅŸlemlerine izin ver + + + Always query for peer addresses via DNS lookup (default: %u) + EÅŸ adreslerini her zaman DNS lookup yoluyla ara (varsayılan: %u) + + + Append comment to the user agent string + Kullanıcı gereç dizisine yorumu ekle ekle + + + Attempt to recover private keys from a corrupt wallet.dat + Bozuk wallet.dat dosyasından gizli anahtarları kurtar + + + Automatically create Tor hidden service (default: %d) + Tor gizli servislerini otomatik olarak oluÅŸtur (varsayılan: %d) + + + Block creation options: + Blok oluÅŸturma seçenekleri: + + + Calculating missing accumulators... + Eksik toplayıcılar hesaplanıyor... + + + Cannot downgrade wallet + Cüzdan alt versiyona düşürülemiyor + + + Cannot resolve -bind address: '%s' + Bind adres: '%s' çözümlenemiyor + + + Cannot resolve -externalip address: '%s' + Dış IP adresi: '%s' çözümlenemiyor + + + Cannot resolve -whitebind address: '%s' + Whitebind address: '%s' çözümlenemiyor + + + CoinSpend: failed check + KoinHarcama: kontrol baÅŸarısız + + + Connect only to the specified node(s) + Sadece belirtilmiÅŸ düğüm(lere) baÄŸlan + + + Connect through SOCKS5 proxy + SOCKS5 proxy üzerinden baÄŸlan + + + Connect to a node to retrieve peer addresses, and disconnect + EÅŸ adreslerini edinmek için bir düğüme baÄŸlan ve baÄŸlantıyı kopar + + + Connection options: + BaÄŸlantı seçenekleri: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i The Bitcoin Core Developers + + + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i The Dash Core Developers + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i The PIVX Core Developers + + + Corrupted block database detected + Bozuk blok veritabanı tespit edildi + + + Could not parse masternode.conf + masternode.conf çözümlenemedi + + + Couldn't generate the accumulator witness + Toplayıcı tanığı -accumulator witness - oluÅŸturulamadı + + + Debugging/Testing options: + Hata Ayıklama/Test seçenekleri: + + + Delete blockchain folders and resync from scratch + Blok zinciri klasörlerini sil ve sıfırdan senkronize et + + + Disable OS notifications for incoming transactions (default: %u) + Gelen iÅŸlemler için iÅŸletim sistemi uyarılarını devre dışı bırak (varsayılan: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Güvenli modu devre dışı bırak, gerçek bir güvenli mode durumunu üstüne yaz (varsayılan: %u) + + + Discover own IP address (default: 1 when listening and no -externalip) + Kendi IP adresini tespit et (varsayılan:1 dinliyorken ve dış IP yokken) + + + Do not load the wallet and disable wallet RPC calls + Cüzdanı yükleme ve cüzdan RPC aramalarını engelle + + + Do you want to rebuild the block database now? + Blok veritabanını ÅŸimdi tekrar oluÅŸturmak istiyor musunuz? + + + Done loading + Yükleme tamamlandı + + + Enable automatic Zerocoin minting (0-1, default: %u) + zPIV minting yapılmasını etkinleÅŸtir (0-1, varsayılan: %u) + + + Enable precomputation of zPIV spends and stakes (0-1, default %u) + zPIV harcamalarının ve stakelerinin önhesaplamasını etkinleÅŸtir (0-1, varsayılan %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + <address>içindeki hash transfer yayınlamayı etkinleÅŸtir (SwiftX ile kilitlenmiÅŸ) + + + Enable publish raw transaction (locked via SwiftX) in <address> + <address> içindeki ham iÅŸlem yayınlamayı etkinleÅŸtir (SwiftX ile kilitlenmiÅŸ) + + + Enable the client to act as a masternode (0-1, default: %u) + Ä°stemciyi Masternode olarak hareket etmesi için etkinleÅŸtir. (0-1, varsayılan: %u) + + + Error initializing block database + Blok veritabanı baÅŸlatılırken hata oluÅŸtu + + + Error initializing wallet database environment %s! + Cüzdan veritabanı ortamı baÅŸlatılırken hata oluÅŸtu %s! + + + Error loading block database + Blok veritabanı yüklenirken hata oluÅŸtu + + + Error loading wallet.dat + Wallet.dat yüklenirken hata oluÅŸtu + + + Error loading wallet.dat: Wallet corrupted + Wallet.dat yüklenirken hata oluÅŸtu: Cüzdan dosyası bozuk + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Wallet.dat yüklenirken hata oluÅŸtu: Cüzdan daha yeni bir PIVX Core versiyonuna ihtiyaç duyuyor + + + Error opening block database + Block veritabanını açarken hata oluÅŸtu + + + Error reading from database, shutting down. + Veritabanı okunurken hata oluÅŸtu, kapatılıyorç + + + Error writing zerocoinDB to disk + ZerocoinDB diske yazılırken hata oluÅŸtu + + + Error + hata + + + Error: A fatal internal error occured, see debug.log for details + Hata: Düzeltilemez bir hata oluÅŸtu, detaylar için debug.log dosyasına bakınız + + + Error: Disk space is low! + Hata: Disk alanı az + + + Error: Unsupported argument -tor found, use -onion. + Hata: Desteklenmeyen argüman -tor bulundu, onion kullanın. + + + Error: Wallet locked, unable to create transaction! + Hata: Cüzdan kilitli, transfer yaratılamıyor! + + + Failed to calculate accumulator checkpoint + Toplayıcı kontrol noktası hesaplanamadı + + + Failed to listen on any port. Use -listen=0 if you want this. + Port dinleme baÅŸarısız oldu. Bunu istiyorsanız -listen=0 ÅŸeklinde kullanın + + + Failed to parse host:port string + host:port string çözümlenemedi + + + Failed to read block + Blok okuma hatası + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + GönderdiÄŸiniz transfere (PIV/kb cinsinden) bir masraf ekleyin (varsayılan: %s) + + + Force safe mode (default: %u) + Güvenli moda zorla (varsayılan: %u) + + + Generate coins (default: %u) + Koin oluÅŸtur (varsayılan: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + BaÅŸlangıçta kaç tane blok kontrol edilsin (varsayılan: %u, 0 = hepsi) + + + If <category> is not supplied, output all debugging information. + EÄŸer <category> saÄŸlanamazsa, tüm hata ayıklama bilgisini yaz + + + Importing... + İçe aktarılıyor.... + + + Imports blocks from external blk000??.dat file + Blok zinciri dizinini mevcut blk000 ?? dat dosyalarından yeniden oluÅŸtur. + + + Include IP addresses in debug output (default: %u) + Hata ayıklama çıktısında IP adreslerini bulundur (varsayılan: %u) + + + Incorrect or no genesis block found. Wrong datadir for network? + Genesis blok bulunamadı veya yanlış. AÄŸ için yanlış bilgi dizini? + + + Information + bilgi + + + Initialization sanity check failed. PIVX Core is shutting down. + SaÄŸlama kontrolü baÅŸlatımı baÅŸarısız. PIVX Core kapatılıyor. + + + Insufficient funds + Yetersiz bakiye + + + Insufficient funds. + Yetersiz bakiye. + + + Invalid -onion address or hostname: '%s' + Geçersiz onion veya hostname: !%s! + + + Invalid amount for -maxtxfee=<amount>: '%s' + Maxtxfee=<amount>: '%s' için geçersiz tutar + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Minrelaytxfee=<amount>: '%s' için geçersiz tutar + + + Invalid amount for -mintxfee=<amount>: '%s' + Mintxfee=<amount>: '%s' için geçersiz tutar + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Paytxfee=<amount>: '%s' için geçersiz tutar (en az %s olmalıdır) + + + Invalid amount for -paytxfee=<amount>: '%s' + Paytxfee=<amount>: '%s' için geçersiz tutar + + + Invalid amount for -reservebalance=<amount> + Reservebalance=<amount> için geçersiz tutar + + + Invalid amount + Geçersiz miktar + + + Invalid masternodeprivkey. Please see documenation. + Geçersiz masternodeprivkey. Lütfen dokümantasyona bakınız. + + + Invalid netmask specified in -whitelist: '%s' + Whitelist içinde belirtilen geçersiz netmask: '%s' + + + Invalid port detected in masternode.conf + masternode.conf dosyasında geçersiz port tespit edildi + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Otomatik olarak mint edilen Zerocoin yüzdesi (1-100, varsayılan: %u) + + + Recalculating PIV supply... + PIV tedariÄŸi tekrar hesaplanıyor... + + + Recalculating minted ZPIV... + Mint edilmiÅŸ zPIV'ler tekrar hesaplanıyor... + + + Recalculating spent ZPIV... + Harcanmış zPIV'ler tekrar hesaplanıyor... + + + Reindex the PIV and zPIV money supply statistics + PIV ve zPIV para tedarik istatistiklerini tekrar endeksle + + + Reindexing zerocoin database... + Zerocoin veritabanı tekrar endeksleniyor... + + + Reindexing zerocoin failed + Zerocoin tekrar endekslemesi baÅŸarısız + + + Selected coins value is less than payment target + Seçili koinlerin deÄŸeri hedeflenen ödeme tutarından düşük + + + Support the zerocoin light node protocol (default: %u) + Zerocoin light node protocolünü destekle (varsayılan: %u) + + + SwiftX options: + SwiftX seçenekleri: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + Bu ön-sürümdeki bir test programıdır - riski kabullenerek kullanınız - staking ve ticaret uygulamalarında kullanmayın. + + + mints deleted + + mintler silindi + + + + mints updated, + mints güncellendi + + + unconfirmed transactions removed + + DoÄŸrulanmamış iÅŸlemler kaldırıldı + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + PIVX spesifik tüm fonksiyonaliteyi devre dışı bırak (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, varsayılan: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + SwiftX'i etkinleÅŸtir, kilitli iÅŸlemler için doÄŸrulamaları göster (bool, varsayılan: %s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + Ä°ÅŸlem reddedildi! Bu, cüzdanındaki koinlerin bir kısmının harcanması durumunda olabilir; mesela, wallet.dat dosyasının bir kopyasını kullandıysanız ve koinlerinizi harcamış fakat cüzdana harcanmış olarak iÅŸaretlenmemiÅŸse ortaya çıkabilir. + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + Hata: Bu iÅŸlem en az %s kadar bir transfer üzreti gerektirir, sebebi tutar, karmaşıklık veya son alınmış tutar kullanımı olabilir! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + Hata: Desteklenmeyen argüman -checklevel bulundu. Checklevel seviyesi 4 olmalıdır. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + En iyi blok deÄŸiÅŸtirildiÄŸinde ve büyüklüğü blok büyüklüğünü aÅŸtığında komutu çalıştırın (%s block hash tarafından cmd içinde deÄŸiÅŸtiÄŸinde , %d blok büyüklüğü ile) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Eldeki koinlerin içinden harcanmış maksimum sayıdan küçük koin kümesi bulunamadı. + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + Bazı nadir durumlarda 7 koin bulunan bir harcama maksimum izin verilmiÅŸ iÅŸlem büyüklüğü sınırını aÅŸar, lütfen 6 veya daha az koin ile tekrar deneyin + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Otomatik mint edilmiÅŸ Zerocoin için tercih edilen bölümler (1/5/10/50/100/500/1000/5000), tercih yoksa 0. varsayılan: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Otomatik bir zPIV yedek kopyası eklemek için bir yedekleme özel yolu belirleyin. EÄŸer dizin olarak belirlerseniz her yedek zaman damgası adı ile dosyalanır. Dosya olarak belirlerseniz, her yedeklemede üstüne yazar. EÄŸer yedek yolu da belirlenmiÅŸse, 4 yedek oluÅŸur. + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Herhangi bir yedek kopyası eklemek için bir yedekleme özel yolu belirleyin. EÄŸer dizin olarak belirlerseniz her yedek zaman damgası adı ile dosyalanır. Dosya olarak belirlerseniz, her yedeklemede üstüne yazar. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftX en az 6 onaya sahip girdilere ihtiyaç duyar, birkaç dakika bekledikten sonra tekrar deneyin. + + + <category> can be: + <category> olabilir: + + + Attempt to force blockchain corruption recovery + Bozuk blockchaini kurtarmaya zorlama giriÅŸimi + + + Cannot create public spend input + Açık harcama giriÅŸi oluÅŸturulamıyor + + + CoinSpend: Accumulator witness does not verify + KoinHarcama: Toplayıcı ÅŸahidi -Accumulator witness- onaylamıyor + + + Display the stake modifier calculations in the debug.log file. + Stake deÄŸiÅŸtirme hesaplamalarını debug.log dosyası içinde göster. + + + Display verbose coin stake messages in the debug.log file. + Debug.log dosyasının içinde ayrıntılı koin stake mesajlarını göster. + + + Enable publish hash block in <address> + <address>içindeki hash transfer yayınlamayı etkinleÅŸtir + + + Enable publish hash transaction in <address> + <address>içindeki hash transfer yayınlamayı etkinleÅŸtir + + + Enable publish raw block in <address> + <address> içindeki ham blok yayınlamayı etkinleÅŸtir + + + Enable publish raw transaction in <address> + <address> içindeki ham iÅŸlem yayınlamayı etkinleÅŸtir + + + Enable staking functionality (0-1, default: %u) + Stake fonksiyonunu etkinleÅŸtirin (0-1, varsayılan: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Hata: Düzeltilemez bir hata oluÅŸtu, detaylar için debug.log dosyasına bakınız + + + Error: No valid utxo! + Hata: Geçerli utxo yok! + + + Failed to create mint + Mint oluÅŸturulamadı + + + Failed to find Zerocoins in wallet.dat + Wallet.dat dosyasından Zerocoin bulunamadı. + + + Failed to parse public spend + Açık harcama çözümlemesi baÅŸarısız + + + Failed to select a zerocoin + Zerocoin seçimi baÅŸarısız + + + Failed to wipe zerocoinDB + ZerocoinDB silinmesi baÅŸarısız + + + Failed to write coin serial number into wallet + Cüzdana koin seri numarası yazımı baÅŸarısız + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Hafızada en fazla <n> baÄŸlanamaz iÅŸlem tut (varsayılan: %u) + + + Limit size of signature cache to <n> entries (default: %u) + Ä°mza ön bellek büyüklüğü <n> giriÅŸle limitle (varsayılan: %u) + + + Line: %d + Satır: %d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + JSON-RPC baÄŸlantılarını dinle <port> (varsayılan: %u or testnet: %u) + + + Listen for connections on <port> (default: %u or testnet: %u) + BaÄŸlantıalrı dinle <port> (varsayılan: %u or testnet: %u) + + + Loading addresses... + Adresler Yükleniyor... + + + Loading block index... + Blok endeksi yükleniyor... + + + Loading budget cache... + Bütçe ön belleÄŸi yükleniyor... + + + Loading masternode cache... + Masternode ön belleÄŸi yükleniyor... + + + Loading masternode payment cache... + Masternode ödeme ön belleÄŸi yükleniyor... + + + Loading sporks... + Sporklar yükleniyor... + + + Loading wallet... (%3.2f %%) + Cüzdan yükleniyor... (%3.2f%%) + + + Loading wallet... + Cüzdan Yükleniyor... + + + Location of the auth cookie (default: data dir) + Yetki çerez lokasyonu (varsayılan: bilgi dizini) + + + Lock masternodes from masternode configuration file (default: %u) + Masternode'ları masternode konfigürasyon dosyasından kilitle (varsayılan: %u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Lookup(): Geçersiz proxy adresi veya hostname: '%s' + + + Maintain at most <n> connections to peers (default: %u) + EÅŸlerle en fazla <n> baÄŸlantı kur (varsayılan: %u) + + + Masternode options: + Masternode seçenekleri: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + BaÄŸlantı başına maksimum alım ara belleÄŸi, , <n>*1000 bytes (varsayılan: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + BaÄŸlantı başına maksimum gönderim ara belleÄŸi, <n>*1000 bytes (varsayılan: %u) + + + Mint did not make it into blockchain + Mint blockchaine yazılamadı + + + Need to specify a port with -whitebind: '%s' + Whitebind ile belirlenecek bir port gerekiyor: '%s' + + + Node relay options: + Düğüm aktarım seçenekleri: + + + Not enough file descriptors available. + Yeterli dosya tanımlayıcısı bulunmuyor. + + + Number of automatic wallet backups (default: 10) + Otomatik olarak yedeklenmiÅŸ cüzdan sayısı + + + Number of custom location backups to retain (default: %d) + Tutulacak özel lokasyonlu yedek sayısı (varsayılan: %d) + + + Only accept block chain matching built-in checkpoints (default: %u) + Sadece yerleÅŸik checkpointi olan blockchaini kabul et (varsayılan: %u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + AÄŸ içinde sadece düğümlere baÄŸlan <net> (ipv4, ipv6 veya onion) + + + Options: + Seçenekler: + + + Password for JSON-RPC connections + JSON-RPC baÄŸlantıları için ÅŸifre + + + Unable to find transaction containing mint %s + İçinde mint %s bulunan iÅŸlem bulunamadı + + + Unable to find transaction containing mint, txHash: %s + İçinde mint, tcHash %s bulunan iÅŸlem bulunamadı + + + Use block spam filter (default: %u) + Blok spam filtresini kullan (varsayılan: %u) + + + could not get lock on cs_spendcache + cs_spendcache'e kilitlenilemedi + + + isValid(): Invalid -proxy address or hostname: '%s' + Lookup(): Geçersiz proxy adresi veya hostname: '%s' + + + Preparing for resync... + Tekrar taramaya hazırlanılıyor... + + + Need destination or change address because change is not exact + Fark net olmadığı için gönderim adresi veya fark adresi gerekiyor + + + Prepend debug output with timestamp (default: %u) + Hata ayıklama çıktısının başına tarih damgası ekle (varsayılan: %u) + + + Print version and exit + Versiyonu bas ve çık + + + Pubcoin not found in mint tx + Mint tx içinde Pubcoin bulunamadı + + + RPC server options: + RPC sunucu opsiyonları: + + + Randomly drop 1 of every <n> network messages + Her <n> aÄŸ mesajından rasgele 1'ine drop iÅŸlemi yap + + + Randomly fuzz 1 of every <n> network messages + Her <n> aÄŸ mesajından rasgele 1'ine fuzz iÅŸlemi yap + + + Rebuild block chain index from current blk000??.dat files + Blok zinciri dizinini mevcut blk000 ?? dat dosyalarından yeniden oluÅŸtur. + + + Receive and display P2P network alerts (default: %u) + P2P aÄŸ uyarılarını al ve göster (varsayılan:%u) + + + Reindex the accumulator database + Toplayıcı veritabanını tekrar endeksle + + + Relay and mine data carrier transactions (default: %u) + Bilgi taşıyan iÅŸlemleri mine et ve aktar (varsayılan: %u) + + + Relay non-P2SH multisig (default: %u) + P2SH multisig olmayanlarları aktar (varsayılan: %u) + + + Rescan the block chain for missing wallet transactions + Eksik cüzdan transferleri için blockchaini tekrar tara + + + Rescanning... + Yeniden taranıyor... + + + ResetMintZerocoin finished: + ResetMintZerocoin tamamlandı: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin tamamlandı: + + + Run a thread to flush wallet periodically (default: %u) + Cüzdanı periyodik olarak düzenlemek için bir iÅŸlem çalıştır (varsayılan: %u) + + + Run in the background as a daemon and accept commands + Arka planda çalış ve komutları kabul et + + + Send transactions as zero-fee transactions if possible (default: %u) + Mümkünse transferleri sıfır-maliyetli olarak gönder (varsayılan: %u) + + + Session timed out. + Oturum zaman aşımına uÄŸradı + + + Set database cache size in megabytes (%d to %d, default: %d) + Veritabanı ön bellek büyüklüğünü megabyte cinsinden belirle (%d 'den %d 'ye, varsayılan: %d) + + + Set external address:port to get to this masternode (example: %s) + Dış adres belirle: bu masternode ulaÅŸmak için port aç (örnek: %s) + + + Set key pool size to <n> (default: %u) + Anahtar havuz büyüklüğünü belirle <n> (varsayılan: %u) + + + Set maximum block size in bytes (default: %d) + Maksimum blok büyüklüğünü belirle (varsayılan: %d) + + + Set minimum block size in bytes (default: %u) + Minimum blok büyüklüğünü belirle (varsayılan: %u) + + + Set the Maximum reorg depth (default: %u) + Maksimum reorg derinliÄŸini belirle (varsayılan: %u) + + + Set the masternode private key + Masternode gizli anahtarı + + + Set the number of threads to service RPC calls (default: %d) + RPC aramalarına hizmet edecek parça sayısını belirle (varsayılan: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Cüzdan ortamında DB_PRIVATE iÅŸaretinini belirler (varsayılan: %u) + + + Show all debugging options (usage: --help -help-debug) + Tüm hata ayıklama seçeneklerini göster (kullanım: -help hata ayıklama yardımı) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Program baÅŸlatılırken debug.log dosyasını sıkıştır. (varsayılan: 1 debug olmadığında) + + + Signing timed out. + Ä°mzalama zaman aşımına uÄŸradı + + + Signing transaction failed + Ä°ÅŸlem imzalama baÅŸarısız + + + Specify configuration file (default: %s) + Konfigürasyon dosyası belirleyin (varsayılan: %s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + BaÄŸlantı süre dolum deÄŸerini milisaniye cinsinden belirtin (minimu:1, varsayılan: %d) + + + Specify data directory + Bilgi dizini belirleyin + + + Specify masternode configuration file (default: %s) + Masternode konfigürasyon dosyası belirleyin (varsayılan:%s) + + + Specify pid file (default: %s) + pid dosyası belirleyin (varsayılan:%s) + + + Specify wallet file (within data directory) + Cüzdan dosyasını belirleyin (bilgi dizini içinde) + + + Specify your own public address + Herkese açık adresinizi belirleyin + + + Spend Valid + Harcama Geçerli + + + Spend unconfirmed change when sending transactions (default: %u) + Transfer yapılırken onaylanmamış farkları kullan (varsayılan: %u) + + + Staking options: + Staking seçenekleri: + + + Stop running after importing blocks from disk (default: %u) + Disk üzerinden bloklar içer aktarıldıktan sonra çalışmayı durdur (varsayılan: %u) + + + Synchronization failed + EÅŸzamanlama baÅŸarısız oldu + + + Synchronization finished + EÅŸzamanlama tamamlandı + + + Synchronization pending... + EÅŸzamanlama bekleniyor + + + Synchronizing budgets... + Bütçe eÅŸzamanlanıyor.. + + + Synchronizing masternode winners... + Masternode kazananları eÅŸzamanlanıyor.. + + + Synchronizing masternodes... + Masternode'lar eÅŸzamanlanıyor.. + + + Synchronizing sporks... + Sporklar eÅŸzamanlanıyor.. + + + Syncing zPIV wallet... + zPIV cüzdanı eÅŸzamanlanıyor.. + + + The coin spend has been used + Koin harcaması kullanıldı + + + The transaction did not verify + Bu ödeme onaylanmadı + + + This help message + Bu yardım mesajı + + + This is experimental software. + Bu deneysel bir yazılımdır. + + + This is intended for regression testing tools and app development. + Regresyon test araçları ve uygulama geliÅŸtirme amaçlıdır. + + + Threshold for disconnecting misbehaving peers (default: %u) + Uyumsuz davranan eÅŸlerden bağı koparma eÅŸiÄŸi (varsayılan: %u) + + + Too many spends needed + Çok fazla harcama gerekiyor + + + Tor control port password (default: empty) + Tor port kontrol ÅŸifresi (varsayılan: boÅŸ) + + + Tor control port to use if onion listening enabled (default: %s) + Onion dinleme aktifse Tor port kontrol kullanımı (varsayılan: %s) + + + Transaction Created + Ödeme yaratıldı + + + Transaction Mint Started + Mint iÅŸlemi baÅŸlatıldı + + + Transaction amount too small + Ä°ÅŸlem miktarı çok düşük + + + Transaction amounts must be positive + Ödeme tutarı artı bir deÄŸer olmalıdır + + + Transaction too large for fee policy + Masraf kuralları açısından ödeme çok büyük + + + Transaction too large + Ödeme çok büyük + + + Trying to spend an already spent serial #, try again. + Önceden harcanmış bir seri # harcanmaya çalışılıyor, tekrar deneyiniz. + + + Unable to bind to %s on this computer (bind returned error %s) + Bu bilgisayarda %s 'e baÄŸlanılamıyor (baÄŸlantıdan dönen hata %s ) + + + Unable to generate initial key + BaÅŸlangıç anahtarı oluÅŸturulamadı + + + Unable to sign spork message, wrong key? + Spork mesajı imzalanamıyor, yanlış anahtar? + + + Unable to start HTTP server. See debug log for details. + HTTP sunucusu baÅŸlatılamıyor. Detaylar için hata ayıklama loguna bakın. + + + Unknown network specified in -onlynet: '%s' + Onlynet: '%s' içinde belirtilen bilinmeyen aÄŸ + + + Upgrade wallet to latest format + Cüzdanı son formata güncelleyin + + + Use UPnP to map the listening port (default: %u) + Dinleme portunu belirlemek için UPnP kullanın (varsayılan: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Dinleme portunu belirlemek için UPnP kullanın (varsayılan: 1 dinlerken) + + + Use a custom max chain reorganization depth (default: %u) + Özel bir maksimum zincir re-organizasyon derinliÄŸi kullanın (varsayılan: %u) + + + Use the test network + Test ağını kullanın + + + User Agent comment (%s) contains unsafe characters. + Kullanıcı aktör yorumu (%s) güvenli olmayan karakterler içermektedir. + + + Username for JSON-RPC connections + JSON-RPC baÄŸlantısı için kullanıcı adı + + + Value is below the smallest available denomination (= 1) of zPIV + AÅŸağıdaki deÄŸer zPIV'in mümkün olan en küçük bölüm deÄŸeridir (=1) + + + Verifying blocks... + Bloklar doÄŸrulanıyor... + + + Verifying wallet... + Cüzdan doÄŸrulanıyor.. + + + Wallet %s resides outside data directory %s + Cüzdan %s bilgi dizini %s dışında bulunuyor + + + Wallet needed to be rewritten: restart PIVX Core to complete + Cüzdanın tekrar yazılması gerekiyor: tamamlamak için PIVX Core uygulamasını tekrar baÅŸlatın. + + + Wallet options: + Cüzdan seçenekleri: + + + Wallet window title + Cüzdan pencere baÅŸlığı + + + Warning + Uyarı + + + Warning: This version is obsolete, upgrade required! + Uyarı: Bu versiyonun süresi geçmiÅŸtir, yükseltme zorunludur! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + Hata: Desteklenmeyen argüman -benchmark yok sayıldı, -debug=bench kullanın. + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + Hata: Desteklenmeyen argüman -debugnet yok sayıldı, -debug=net kullanın. + + + You don't have enough Zerocoins in your wallet + Cüzdanınızda yeterli miktarda Zerocoin bulunmuyor + + + You need to rebuild the database using -reindex to change -txindex + Tx endeksini deÄŸiÅŸtirmek için veritabanını -reindex kullanarak tekrar oluÅŸturmanız gerekmektedir + + + Zapping all transactions from wallet... + Cüzdandaki tüm iÅŸlemler aranıyor + + + ZeroMQ notification options: + ZeroMQ bildirim seçenekleri: + + + Zerocoin options: + Zerocoin seçenekleri: + + + on startup + BaÅŸlangıçta + + + wallet.dat corrupt, salvage failed + wallte.dat dosyası bozuk, kurtarma baÅŸarız + + + + send + + Form + Form + + + Send + Gönder + + + TextLabel + TextLabel + + + PushButton + Butona Basın + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_uk.ts b/src/qt/locale/pivx_uk.ts new file mode 100644 index 0000000..d71b094 --- /dev/null +++ b/src/qt/locale/pivx_uk.ts @@ -0,0 +1,449 @@ + + + AddNewAddressDialog + + Address + ÐдреÑа + + + + AddNewContactDialog + + + AddressBookPage + + Right-click to edit address or label + ÐатиÑніть правою кнопкою миші, щоб редагувати адреÑу або мітку + + + Create a new address + Створити нову адреÑу + + + &New + Ðовий + + + Copy the currently selected address to the system clipboard + Скопіювати вибрану адреÑу в буфер обміну + + + &Copy + Копіювати + + + Delete the currently selected address from the list + Видалити вибрану адреÑу зі ÑпиÑку + + + &Delete + Видалити + + + Export the data in the current tab to a file + ЕкÑпортуйтувати дані поточної вкладки у файл + + + &Export + ЕкÑпорт + + + C&lose + Закрити + + + Choose the address to send coins to + Виберіть адреÑу надÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¼Ð¾Ð½ÐµÑ‚ + + + Choose the address to receive coins with + Виберіть адреÑу Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¼Ð¾Ð½ÐµÑ‚ + + + C&hoose + Вибір + + + Sending addresses + ÐдреÑа відправки + + + Receiving addresses + ÐдреÑа Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Це ваші PIVX-адреÑи Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ñ–Ð². Завжди перевірÑйте Ñуму та адреÑу одержувача перед відправленнÑм монет. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Це ваші PIVX адреÑи Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ñ–Ð². Ð”Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— транзакції рекомендуєтьÑÑ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовувати нову адреÑу одержувача. + + + &Copy Address + Копіювати адреÑу + + + Copy &Label + Копіювати мітку + + + &Edit + Редагувати + + + Export Address List + ЕкÑортувати ÑпиÑок Ð°Ð´Ñ€ÐµÑ + + + Comma separated file (*.csv) + Файл, розділений комами (*.csv) + + + Exporting Failed + Ðе вдалоÑÑ ÐµÐºÑпортувати + + + There was an error trying to save the address list to %1. Please try again. + Виникла помилка при Ñпробі зберегти ÑпиÑок Ð°Ð´Ñ€ÐµÑ Ñƒ %1. Будь лаÑка, Ñпробуйте ще раз. + + + + AddressLabelRow + + + AddressTableModel + + Label + Мітка + + + Address + ÐдреÑа + + + (no label) + (без міток) + + + + AddressesWidget + + + AskPassphraseDialog + + Passphrase Dialog + Кодове Ñлово + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + Введіть нове кодове Ñлово гамамнцÑ. <br/>Будь лаÑка, викориÑтовуйте кодове Ñлово з <b>деÑÑти Ñ– більше хаотичних Ñимволів</b>, або <b>воÑьми Ñ– більше Ñлів </b>. + + + Encrypt wallet + Шифрувати гаманець + + + This operation needs your wallet passphrase to unlock the wallet. + Ð”Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾ його кодове Ñлово. + + + Unlock wallet + Розблокувати гаманець + + + This operation needs your wallet passphrase to decrypt the wallet. + Ð”Ð»Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ–Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾ його кодове Ñлово. + + + Decrypt wallet + Розшифрувати гаманець + + + Change passphrase + Змінити кодове Ñлово + + + Enter the old and new passphrase to the wallet. + Введіть попереднє Ñ– нове кодове Ñлово гаманцÑ. + + + Confirm wallet encryption + ÐŸÑ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX зараз закриєтьÑÑ, щоб завершити Ð¿Ñ€Ð¾Ñ†ÐµÑ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ. Пам'Ñтайте, що ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ Ð½Ðµ може повніÑÑ‚ÑŽ захиÑтити ваші PIV'и від крадіжки зловмиÑним програмним забезпеченнÑм, що заражає ваш комп'ютер. + + + Are you sure you wish to encrypt your wallet? + Ви впевнені, що хочете зашифрувати Ваш гаманець? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + ПопередженнÑ: Якщо піÑÐ»Ñ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ Ð’Ð¸ <b>загубите кодове Ñлово, то ви втратите вÑÑ– Ваші PIV'и</b>! + + + Wallet encrypted + Гаманець зашифровано + + + + BanTableModel + + + BlockExplorer + + + CSRow + + + ClientModel + + + CoinControlDialog + + (no label) + (без міток) + + + + CoinControlPivWidget + + Label + Мітка + + + Address + ÐдреÑа + + + + ColdStakingWidget + + + ContactDropdownRow + + + DashboardWidget + + + DefaultDialog + + + DenomGenerationDialog + + + EditAddressDialog + + + ExpandableButton + + + FreespaceChecker + + + GovernancePage + + + HelpMessageDialog + + + Intro + + + LoadingDialog + + + LockUnlock + + + MNRow + + + MasterNodeWizardDialog + + Address + ÐдреÑа + + + + MasterNodesWidget + + + MnInfoDialog + + + MyAddressRow + + + NavMenuWidget + + + OpenURIDialog + + + OptionButton + + + OptionsDialog + + + PIVXGUI + + + PWidget + + + PaymentServer + + + PeerTableModel + + + PrivacyWidget + + + ProposalFrame + + + QObject + + + RPCConsole + + + ReceiveDialog + + + ReceiveWidget + + + RecentRequestsTableModel + + Label + Мітка + + + Address + ÐдреÑа + + + (no label) + (без міток) + + + + RequestDialog + + Label + Мітка + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + + SendMultiRow + + + SendWidget + + + SettingsBackupWallet + + + SettingsBitToolWidget + + + SettingsConsoleWidget + + + SettingsDisplayOptionsWidget + + + SettingsFaqWidget + + + SettingsInformationWidget + + + SettingsMainOptionsWidget + + + SettingsMultisendDialog + + + SettingsMultisendWidget + + + SettingsSignMessageWidgets + + + SettingsWalletOptionsWidget + + + SettingsWalletRepairWidget + + + SettingsWidget + + + ShutdownWindow + + + SnackBar + + + Splash + + + SplashScreen + + + TooltipMenu + + + TopBar + + + TrafficGraphWidget + + + TransactionDesc + + + TransactionTableModel + + Address + ÐдреÑа + + + + TxDetailDialog + + + TxRow + + + WalletModel + + + WalletPasswordDialog + + + WelcomeContentWidget + + + ZPivControlDialog + + + pivx-core + + + send + + \ No newline at end of file diff --git a/src/qt/locale/pivx_vi.ts b/src/qt/locale/pivx_vi.ts new file mode 100644 index 0000000..9a75e28 --- /dev/null +++ b/src/qt/locale/pivx_vi.ts @@ -0,0 +1,313 @@ + + + AddNewAddressDialog + + + AddNewContactDialog + + + AddressBookPage + + Right-click to edit address or label + Ấn chuá»™t phải để sá»­a địa chỉ hoặc tên + + + Create a new address + Tạo địa chỉ má»›i + + + &New + Má»›i + + + &Copy + Sao chép + + + Delete the currently selected address from the list + Xóa các địa chỉ được chá»n khá»i danh sách + + + &Delete + Xóa + + + Export the data in the current tab to a file + Xuất dữ liệu của tab hiện tại sang file + + + &Export + Xuất + + + C&lose + Äóng + + + Choose the address to send coins to + Chá»n địa chỉ để gá»­i coin Ä‘i + + + Choose the address to receive coins with + Chá»n địa chỉ để nhận coin vá» + + + C&hoose + Chá»n + + + Sending addresses + Äịa chỉ nhận + + + Receiving addresses + Äịa chỉ gá»­i + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + Äây là địa chỉ ví PIVX của bạn để gá»­i Ä‘i. Luôn luôn kiểm tra số lượng và địa chỉ ví nhận trÆ°á»›c khi gá»­i. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Äây là địa chỉ ví PIVX của bạn để nhận. Bạn nên sá»­ dụng địa chỉ ví nhận má»›i cho má»—i giao dịch + + + + AddressLabelRow + + + AddressTableModel + + + AddressesWidget + + + AskPassphraseDialog + + Unlock wallet + Mở khóa ví + + + + BanTableModel + + + BlockExplorer + + + CSRow + + + ClientModel + + + CoinControlDialog + + + CoinControlPivWidget + + + ColdStakingWidget + + + ContactDropdownRow + + + DashboardWidget + + + DefaultDialog + + + DenomGenerationDialog + + + EditAddressDialog + + + ExpandableButton + + + FreespaceChecker + + + GovernancePage + + + HelpMessageDialog + + + Intro + + + LoadingDialog + + + LockUnlock + + + MNRow + + + MasterNodeWizardDialog + + + MasterNodesWidget + + + MnInfoDialog + + + MyAddressRow + + + NavMenuWidget + + + OpenURIDialog + + + OptionButton + + + OptionsDialog + + + PIVXGUI + + + PWidget + + + PaymentServer + + + PeerTableModel + + + PrivacyWidget + + + ProposalFrame + + + QObject + + + RPCConsole + + + ReceiveDialog + + + ReceiveWidget + + + RecentRequestsTableModel + + + RequestDialog + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + + SendMultiRow + + + SendWidget + + + SettingsBackupWallet + + + SettingsBitToolWidget + + + SettingsConsoleWidget + + + SettingsDisplayOptionsWidget + + + SettingsFaqWidget + + + SettingsInformationWidget + + + SettingsMainOptionsWidget + + + SettingsMultisendDialog + + + SettingsMultisendWidget + + + SettingsSignMessageWidgets + + + SettingsWalletOptionsWidget + + + SettingsWalletRepairWidget + + + SettingsWidget + + + ShutdownWindow + + + SnackBar + + + Splash + + + SplashScreen + + + TooltipMenu + + + TopBar + + + TrafficGraphWidget + + + TransactionDesc + + + TransactionTableModel + + + TxDetailDialog + + + TxRow + + + WalletModel + + + WalletPasswordDialog + + + WelcomeContentWidget + + + ZPivControlDialog + + + pivx-core + + + send + + \ No newline at end of file diff --git a/src/qt/locale/pivx_zh_CN.ts b/src/qt/locale/pivx_zh_CN.ts new file mode 100644 index 0000000..07b7b55 --- /dev/null +++ b/src/qt/locale/pivx_zh_CN.ts @@ -0,0 +1,7536 @@ + + + AddNewAddressDialog + + Dialog + 对è¯æ¡† + + + My Address + æˆ‘çš„åœ°å€ + + + Address + åœ°å€ + + + PushButton + 按钮 + + + CANCEL + 删除 + + + OK + 好的 + + + + AddNewContactDialog + + Dialog + 对è¯æ¡† + + + TextLabel + 文本标签 + + + CANCEL + 删除 + + + OK + 好的 + + + Edit Contact + 编辑è”ç³»æ–¹å¼ + + + Set a label for the selected address + 为所选地å€è®¾ç½®æ ‡ç­¾ + + + Enter a name for the address (e.g Exchange) + 输入地å€çš„å称(例如:交æ¢æ‰€) + + + SAVE + ä¿å­˜ + + + Edit label for the selected address: +%1 + 编辑所选地å€çš„标签: +%1 + + + + AddressBookPage + + Right-click to edit address or label + å³é”®ç‚¹å‡»ç¼–辑地å€æˆ–标签 + + + Create a new address + åˆ›å»ºæ–°çš„åœ°å€ + + + &New + &æ–°åœ°å€ + + + Copy the currently selected address to the system clipboard + å¤åˆ¶å½“å‰åœ°å€è‡³å‰ªè´´æ¿ + + + &Copy + &å¤åˆ¶ + + + Delete the currently selected address from the list + ä»Žåˆ—è¡¨ç§»é™¤è¿™ä¸ªåœ°å€ + + + &Delete + &删除 + + + Export the data in the current tab to a file + 导出当å‰æ•°æ®è‡³æ–‡ä»¶ + + + &Export + &导出 + + + C&lose + C&关闭 + + + Choose the address to send coins to + 选择å‘é€PIVX coinçš„åœ°å€ + + + Choose the address to receive coins with + 选择接收PIVX coinçš„åœ°å€ + + + C&hoose + C&选择 + + + Sending addresses + å‘é€åœ°å€ + + + Receiving addresses + æŽ¥æ”¶åœ°å€ + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + 这是用于å‘é€PIVX的地å€ã€‚在å‘é€PIVX之å‰ï¼Œè¯·è®¤çœŸæ ¸æŸ¥å‘é€é‡‘é¢å’ŒæŽ¥æ”¶åœ°å€ã€‚ + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + 这是用于接收PIVX的钱包地å€ã€‚建议æ¯ä¸€ç¬”交易都使用一个新的钱包地å€ã€‚ + + + &Copy Address + &å¤åˆ¶åœ°å€ + + + Copy &Label + å¤åˆ¶æ ‡ç­¾ + + + &Edit + &编辑 + + + Export Address List + 导出地å€åˆ—表 + + + Comma separated file (*.csv) + å­˜æˆ(.csv)æ ¼å¼ + + + Exporting Failed + 导出失败 + + + There was an error trying to save the address list to %1. Please try again. + å°è¯•å°†åœ°å€åˆ—表ä¿å­˜åˆ° %1时出错。 请å†è¯•ä¸€æ¬¡ã€‚ + + + + AddressLabelRow + + Form + æ¥è‡ª + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + AddressTableModel + + Label + 标签 + + + Address + åœ°å€ + + + Date + 日期 + + + (no label) + 未设置标签 + + + + AddressesWidget + + Form + æ¥è‡ª + + + Send + å‘é€ + + + TextLabel + 文本标签 + + + No active Master Node yet + 暂无活跃主节点 + + + Contact name + è”系人åå­— + + + Enter address + è¾“å…¥åœ°å€ + + + OK + 好的 + + + Contacts + è”系人 + + + You can add a new one in the options menu to the side. + 您å¯ä»¥åœ¨é€‰é¡¹èœå•ä¸­æ·»åŠ ä¸€ä¸ªæ–°çš„到æ—è¾¹ + + + No contacts yet + æš‚æ— è”系人 + + + e.g. John Doe + 例如John Doe + + + Enter a PIVX address + 输入一个PIVXåœ°å€ + + + SAVE + ä¿å­˜ + + + Invalid Contact Address + è”系地å€æ— æ•ˆ + + + Cannot store your own address as contact + 无法ä¿å­˜ä½ çš„è”ç³»åœ°å€ + + + Address already stored, label: %1 + 地å€å·²ä¿å­˜ï¼Œæ ‡ç­¾ï¼š %1 + + + New Contact Stored + æ–°è”系方å¼å·²ä¿å­˜ + + + Error Storing Contact + ä¿å­˜è”系方å¼å‡ºé”™ + + + Contact edited + è”系方å¼å·²ç¼–辑 + + + Contact edit failed + è”系方å¼ç¼–辑失败 + + + Delete Contact + 删除è”ç³»æ–¹å¼ + + + You are just about to remove the contact: + +%1 + +Are you sure? + 你正在移除è”系方å¼: + +%1 + +确定? + + + Contact Deleted + è”系方å¼å·²åˆ é™¤ + + + Error deleting a contact + 删除è”系方å¼å‡ºé”™ + + + Address copied + 地å€å·²å¤åˆ¶ + + + + AskPassphraseDialog + + Passphrase Dialog + 密ç è¾“入框 + + + TextLabel + 文本标签 + + + PushButton + 按钮 + + + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. + 输入一个新的钱包密ç <br/>钱包密ç <b>建议使用10ä½ä»¥ä¸Šçš„éšæœºå­—符</b>,或者<b> 3个以上的å•è¯</b>。并建议有åºä½¿ç”¨å¤§å°å†™å­—æ¯ã€‚ + + + Encrypt wallet + 加密钱包 + + + This operation needs your wallet passphrase to unlock the wallet. + 需è¦æ‚¨è¾“入钱包密ç æ¥è¿›è¡Œè§£é”。 + + + Unlock wallet +for staking + 解é”钱包 +加注 + + + Unlock wallet + 解é”钱包 + + + This operation needs your wallet passphrase to decrypt the wallet. + 需è¦æ‚¨è¾“入钱包密ç æ¥è¿›è¡Œè§£é”。 + + + Decrypt wallet + 解密钱包 + + + Change passphrase + ä¿®æ”¹å¯†ç  + + + Enter the old and new passphrase to the wallet. + è¾“å…¥é’±åŒ…ä¿¡æ—§å¯†ç  + + + Confirm wallet encryption + 确认钱包加密 + + + ENCRYPT + 加密 + + + CANCEL + 删除 + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX将关闭以完æˆåŠ å¯†è¿‡ç¨‹ã€‚但是,仅仅加密您的钱包是ä¸å¤Ÿçš„,因为它并ä¸èƒ½é˜»æ­¢æ¶æ„软件从您的电脑里é¢å·å–PIVs。 + + + Are you sure you wish to encrypt your wallet? + 您确定加密您的钱包å—? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + 注æ„:请妥善ä¿ç®¡å¥½ä½ çš„密ç ï¼Œå› ä¸ºåœ¨åŠ å¯†åŽï¼Œæ²¡æœ‰å¯†ç å°†æ— æ³•æ‰“开钱包。这将会让您<b>æŸå¤±é’±åŒ…中所有的PIV</b>ï¼ + + + Wallet encrypted + 钱包加密 + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + é‡è¦æ示:一旦您开始使用新的加密钱包,以å‰æœªåŠ å¯†çš„钱包备份都将失效。所以在新加密钱包生效åŽè¯·åŠ¡å¿…é‡æ–°å¤‡ä»½æ‚¨çš„钱包。 + + + Wallet encryption failed + 钱包加密失败 + + + OK + 好的 + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + 由于内部错误,钱包加密失败,您的钱包本次加密没有æˆåŠŸã€‚ + + + The supplied passphrases do not match. + 输入的密ç ä¸æ­£ç¡® + + + Wallet unlock failed + 钱包解é”失败 + + + The passphrase entered for the wallet decryption was incorrect. + 为钱包解密输入的密ç ä¸æ­£ç¡®ã€‚ + + + Wallet decryption failed + 钱包解密失败 + + + Wallet passphrase was successfully changed. + 钱包密ç å·²ç»æ›´æ¢ä¸ºæ–°å¯†ç  + + + Warning: The Caps Lock key is on! + 注æ„:键盘目å‰ä¸ºå¤§å†™é”定状æ€ã€‚ + + + + BanTableModel + + IP/Netmask + IP /å­ç½‘æŽ©ç  + + + Banned Until + ç¦æ­¢ç›´è‡³ + + + + BlockExplorer + + Blockchain Explorer + 区å—链æµè§ˆå™¨ + + + Back + 返回 + + + Forward + 下一步 + + + Address / Block / Transaction + 地å€/区å—/交易 + + + Search + æœç´¢ + + + TextLabel + 文本标签 + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + 并ä¸æ˜¾ç¤ºæ‰€æœ‰çš„交易。è¦æŸ¥çœ‹æ‰€æœ‰äº¤æ˜“,您需è¦åœ¨é…置文件(pivx.conf)中设置txindex=1。 + + + + CSRow + + Form + æ¥è‡ª + + + Savings + 存款 + + + 0,00 PIV + 0,00 PIV + + + address + åœ°å€ + + + Not Staking + ä¸å¯åŠ è–ª + + + Own delegation + 自己的代表团 + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + 总数: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / 未知: %5) + + + Network Alert + 网络预警 + + + + CoinControlDialog + + Quantity: + æ•°é‡ï¼š + + + Bytes: + 字节: + + + Fee: + 费用: + + + Coin Selection + å¸é€‰æ‹© + + + Dust: + Dust: + + + Change: + å˜åŒ–: + + + Tree mode + æ ‘æ¨¡å¼ + + + List mode + åˆ—è¡¨æ¨¡å¼ + + + (1 locked) + (1 é”ä½) + + + Amount + é‡‘é¢ + + + Transaction Details + 交易明细 + + + PushButton + 按钮 + + + 0.00 PIV + 0.00 PIV + + + 0 + 0 + + + Select all + 选择钱包 + + + Toggle lock state + 开关é”çŠ¶æ€ + + + Received with label + 标签接收 + + + Received with address + æ”¶åˆ°åœ°å€ + + + After Fee: + 缴费以åŽï¼š + + + OK + OK + + + Date + 日期 + + + Confirmations + 确认 + + + Confirmed + 已确认 + + + Copy address + å¤åˆ¶åœ°å€ + + + Copy label + å¤åˆ¶æ ‡ç­¾ + + + Copy amount + å¤åˆ¶é‡‘é¢ + + + Copy transaction ID + å¤åˆ¶äº¤æ˜“ID + + + Lock unspent + é”定未花费 + + + Unlock unspent + 解é”未花费 + + + Copy quantity + å¤åˆ¶æ•°é‡ + + + Copy fee + å¤åˆ¶è´¹ç”¨ + + + Copy after fee + ç¼´è´¹åŽå¤åˆ¶ + + + Copy bytes + å¤åˆ¶å­—节 + + + Copy priority + å¤åˆ¶ä¼˜å…ˆçº§ + + + Copy dust + å¤åˆ¶dust + + + Copy change + å¤åˆ¶æ›´æ”¹ + + + Unselect all + 全都ä¸é€‰ + + + Please switch to "List mode" to use this function. + 请切æ¢åˆ°â€œåˆ—表模å¼â€ä½¿ç”¨æ­¤åŠŸèƒ½ã€‚ + + + highest + 最高级 + + + higher + 更高级 + + + high + 高级 + + + medium-high + 中高级 + + + medium + 中级 + + + low-medium + 低中级 + + + low + 低级 + + + lower + 更低级 + + + lowest + 最低级 + + + (%1 locked) + (%1å·²é”ä½) + + + none + æ—  + + + yes + 是 + + + no + å¦ + + + This label turns red, if the transaction size is greater than 1000 bytes. + 如果交易大å°å¤§äºŽ1000字节,则此标签å˜ä¸ºçº¢è‰²ã€‚ + + + This means a fee of at least %1 per kB is required. + è¿™æ„味ç€æ¯kB至少需è¦%1的费用。 + + + Can vary +/- 1 byte per input. + æ¯ä¸ªè¾“å…¥å¯ä»¥æµ®åŠ¨+/- 1 字节。 + + + Transactions with higher priority are more likely to get included into a block. + 具有更高优先级的交易更有å¯èƒ½è¢«åŒ…å«åˆ°åŒºå—中。 + + + This label turns red, if the priority is smaller than "medium". + 如果优先级å°äºŽâ€œä¸­çº§â€ï¼Œåˆ™æ­¤æ ‡ç­¾å˜ä¸ºçº¢è‰²ã€‚ + + + This label turns red, if any recipient receives an amount smaller than %1. + 如果任何收件人收到的金é¢å°äºŽ%1,此标签将å˜ä¸ºçº¢è‰²ã€‚ + + + Can vary +/- %1 upiv per input. + æ¯ä¸ªè¾“å…¥å¯ä»¥æµ®åŠ¨+/- %1 upiv。 + + + (no label) + 未设置标签 + + + change from %1 (%2) + 从 %1 (%2)更改 + + + (change) + (更改) + + + + CoinControlPivWidget + + Dialog + 对è¯æ¡† + + + Transaction Details + 交易明细 + + + PushButton + 按钮 + + + PIV: + PIV: + + + TextLabel + 文本标签 + + + Quantity: + æ•°é‡ï¼š + + + Fee: + 费用: + + + Amount + é‡‘é¢ + + + Label + 标签 + + + Address + åœ°å€ + + + Type + 类别 + + + Date + 日期 + + + Confirmations + 确认 + + + CheckBox + 查看列表 + + + Bytes: + 字节: + + + Dust: + Dust: + + + Change: + å˜åŒ–: + + + After Fee: + 缴费以åŽï¼š + + + CANCEL + 删除 + + + OK + OK + + + + ColdStakingWidget + + Form + æ¥è‡ª + + + Title + 抬头 + + + TextLabel + 文本标签 + + + PushButton + 按钮 + + + Owner Address (optional, if empty a new address will be created) + 所有者地å€ï¼ˆå¦‚果为空,将创建一个新地å€ï¼Œå¯é€‰ï¼‰ + + + List of delegated balance by address + 按地å€åˆ’分的委托余é¢æ¸…å• + + + Total + 总数 + + + Unconfirmed balance will not be shown + 未确认的余é¢å°†ä¸ä¼šæ˜¾ç¤º + + + No balance delegated + æ²¡æœ‰ä½£é‡‘ä½™é¢ + + + Cold Staking + 冷堆 + + + Staker + 利益相关者 + + + Delegation + 宪法 + + + You can delegate your PIVs and let a hot node (24/7 online node) +stake in your behalf, keeping the keys in a secure place offline. + 您å¯ä»¥å§”派您的PIV并让热节点(24/7在线节点) +代表您进行放样并将密钥离线ä¿å­˜åœ¨å®‰å…¨çš„ä½ç½®ã€‚ + + + Add owner address + æ·»åŠ åœ°å€ + + + Delegate or Accept PIV delegation + 授予æƒé™æˆ–接å—PIVæƒé™ + + + Delegate + åˆ†é… + + + Clear All + 清除全部 + + + Add the staking address + æ·»åŠ æ”¾æ ·åœ°å€ + + + Delegated balance history + 委托余é¢åŽ†å² + + + No delegations yet + 没有代表团 + + + Total Staking: %1 + 总积累:%1 + + + Error loading delegations: %1 + 加载委托时出错:%1 + + + No contacts available, you can go to the contacts screen and add some there! + 没有å¯ç”¨çš„è”系人,您å¯ä»¥åˆ°è”系人界é¢é‚£é‡Œæ·»åŠ ! + + + Cold staking is networkely disabled + ç¦ç”¨ç½‘络冷积累 + + + Invalid entry + æ¡ç›®æ— æ•ˆ + + + Invalid entry, minimum delegable amount is 10 PIV + 输入无效,最å°å§”托é‡ä¸º10 PIV + + + Owner address invalid + 所有者地å€æ— æ•ˆ + + + ALERT! + è­¦æŠ¥ï¼ + + + Delegating to an external owner address! + +The delegated coins will NOT be spendable by this wallet. +Spending these coins will need to be done from the wallet or +device containing the owner address. + +Do you wish to proceed? + 委托给外部所有者地å€ï¼ + +授æƒçš„硬å¸å°†æ— æ³•åœ¨æ­¤é’±åŒ…中消费。 +花费这些硬å¸éœ€è¦ä»Žé’±åŒ…或 +包å«æ‰€æœ‰è€…地å€çš„设备。 + +你想继续å—? + + + Staking address corresponds to this wallet, change it to an external node + 放样地å€å¯¹åº”于此钱包,将其更改为外部节点 + + + Cannot create transaction. + 无法创建交易 + + + Coins delegated + å§”æ‰˜ç¡¬å¸ + + + You don't have any PIV to select. + 您没有任何PIVå¯é€‰æ‹©ã€‚ + + + URI copied to clipboard + URIå·²ç»å¤åˆ¶åˆ°å‰ªè´´æ¿ + + + Address copied to clipboard + 地å€å·²ç»å¤åˆ¶åˆ°å‰ªè´´æ¿ + + + Copy + å¤åˆ¶ + + + Edit + 编辑 + + + Stake + 赌注 + + + Blacklist + 黑åå• + + + Edit Label + 编辑标签 + + + Copy owner +address + å¤åˆ¶æ‰€æœ‰è€… +åœ°å€ + + + Address copied + 地å€å·²å¤åˆ¶ + + + Edit Cold Address Label + 编辑冷地å€æ ‡ç­¾ + + + Whitelist failed, please check the logs + 白åå•å¤±è´¥ï¼Œè¯·æ£€æŸ¥æ—¥å¿— + + + staking! + æ高 + + + Blacklist failed, please check the logs + 黑åå•å¤±è´¥ï¼Œè¯·æ£€æŸ¥æ—¥å¿— + + + blacklisted from staking + 放样被列入黑åå• + + + Owner address copied + 所有者地å€å·²å¤åˆ¶ + + + Edit Owner Address Label + 编辑所有者地å€æ ‡ç­¾ + + + Address label saved + 地å€æ ‡ç­¾å·²ä¿å­˜ + + + Error storing address label + ä¿å­˜åœ°å€æ ‡ç­¾å‡ºé”™ + + + + ContactDropdownRow + + Form + æ¥è‡ª + + + Bob Allen + Bob Allen + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + DashboardWidget + + Form + æ¥è‡ª + + + Transactions + 交易 + + + You can see here the history of your account + ä½ å¯ä»¥åœ¨è¿™é‡ŒæŸ¥çœ‹ä½ è´¦æˆ·çš„åŽ†å² + + + Warning + æ³¨æ„ + + + No transactions + 无交易 + + + PushButton + 按钮 + + + Staking Rewards + 加注奖励 + + + TextLabel + 文本标签 + + + Staking statistics + åŠ æ³¨æ•°æ® + + + PIV + PIV + + + zPIV + zPIV + + + Sort by + 分类 + + + Days + 天 + + + Months + 月 + + + Years + å¹´ + + + Filter by + 过滤 + + + LabelText + 标签文本 + + + You can view your account's history + 您å¯ä»¥æŸ¥çœ‹æ‚¨çš„å¸æˆ·çš„åŽ†å² + + + Amount of PIV and zPIV staked. + 已加注的PIV å’Œ zPIV é‡‘é¢ + + + All + 所有 + + + Received + 已接收 + + + Sent + å·²å‘é€ + + + Mined + 已挖矿 + + + Minted + å·²é“¸å¸ + + + MN reward + MN奖励 + + + To yourself + 给您自己 + + + Cold stakes + 感冒 + + + Hot stakes + 热æ + + + Delegated + 委托 + + + Delegations + 宪法 + + + Please wait until the wallet is fully synced to see your correct balance + 请等到钱包完全åŒæ­¥åŽå†æŸ¥çœ‹æ‚¨çš„æ­£ç¡®ä½™é¢ + + + No transactions yet + 暂无交易 + + + How to get PIV or zPIV + 如何获å–PIV 或 zPIV + + + You can verify the staking activity in the status bar at the top right of the wallet. +It will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced. + 您å¯ä»¥åœ¨é’±åŒ…å³ä¸Šè§’的状æ€æ ä¸­éªŒè¯åŠ æ³¨æ´»åŠ¨ã€‚ +åªè¦é’±åŒ…有足够的未使用余é¢ï¼Œå¹¶ä¸”钱包已ç»åŒæ­¥ï¼Œå®ƒå°±ä¼šè‡ªåŠ¨å¯åŠ¨ã€‚ + + + You have no staking rewards + 你没有加注奖励 + + + No charts library + 没有图表库 + + + Loading chart.. + 正在下载图表... + + + Error loading chart, invalid show option + 加载图表出错,显示选项无效 + + + Error loading chart, invalid data + 加载图表时出错,数æ®æ— æ•ˆ + + + Error loading chart: %1 + 加载图表出错:%1 + + + + DefaultDialog + + Form + æ¥è‡ª + + + Transaction Details + 交易明细 + + + Text Label + 文本标签 + + + CANCEL + 删除 + + + SAVE + ä¿å­˜ + + + + DenomGenerationDialog + + Form + æ¥è‡ª + + + Transaction Details + 交易明细 + + + PushButton + 按钮 + + + This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again. + 这会完全解é”你的钱包,直到钱包å†æ¬¡å…³é—­æˆ–é”定,ä¸ç„¶è¿™æ ·ä»»ä½•äººéƒ½å¯ä»¥ä½¿ç”¨å®ƒï¼Œ + + + 5000 + 5000 + + + 100 + 100 + + + 10 + 10 + + + 1000 + 1000 + + + 50 + 50 + + + 500 + 500 + + + 5 + 5 + + + 1 + 1 + + + Select All + 选择所有 + + + CANCEL + 删除 + + + SAVE + ä¿å­˜ + + + + EditAddressDialog + + Edit Address + ç¼–è¾‘åœ°å€ + + + &Label + &标签 + + + The label associated with this address list entry + 与该地å€åˆ—表æ¡ç›®ç›¸å…³è”的标签 + + + &Address + &åœ°å€ + + + The address associated with this address list entry. This can only be modified for sending addresses. + 与该地å€åˆ—表æ¡ç›®ç›¸å…³è”的地å€ã€‚ åªèƒ½ä¿®æ”¹å‘é€åœ°å€ã€‚ + + + New receiving address + 新接å—åœ°å€ + + + New sending address + æ–°å‘é€åœ°å€ + + + Edit receiving address + ç¼–è¾‘æŽ¥æ”¶åœ°å€ + + + Edit sending address + 编辑å‘é€åœ°å€ + + + The entered address "%1" is not a valid PIVX address. + 所输入的地å€â€œ%1â€ä¸æ˜¯æœ‰æ•ˆçš„PIVX地å€ã€‚ + + + The entered address "%1" is already in the address book. + 输入的地å€â€œ%1â€å·²ç»å­˜åœ¨é€šè®¯å½•ä¸­ã€‚ + + + Could not unlock wallet. + ä¸èƒ½è§£é”钱包 + + + New key generation failed. + 新密钥生æˆå¤±è´¥ã€‚ + + + + ExpandableButton + + Form + æ¥è‡ª + + + + FreespaceChecker + + A new data directory will be created. + 将创建一个新的数æ®ç›®å½•ã€‚ + + + name + å称 + + + Directory already exists. Add %1 if you intend to create a new directory here. + 目录已ç»å­˜åœ¨ã€‚如果您打算在这里创建一个新目录,请添加%1。 + + + Path already exists, and is not a directory. + 路径已ç»å­˜åœ¨ï¼Œä¸”ä¸æ˜¯ç›®å½•ã€‚ + + + Cannot create data directory here. + 无法在此创建数æ®ç›®å½•ã€‚ + + + + GovernancePage + + Form + æ¥è‡ª + + + GOVERNANCE + æ²»ç† + + + Update Proposals + æ›´æ–°æè®® + + + Next super block: + 下一个超级区å—: + + + 0 + 0 + + + Blocks to next super block: + 区å—到下一个超级区å—: + + + Days to budget payout (estimate): + 预算需è¦å¤©æ•°(预估): + + + Allotted budget: + 分é…预算: + + + Budget left: + 剩余预算: + + + Masternodes count: + 主节点计数: + + + + HelpMessageDialog + + version + 版本 + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-ä½) + + + About PIVX Core + 关于PIVX Core + + + Command-line options + 命令行选 + + + Usage: + 用法: + + + command-line options + 命令行选项 + + + UI Options: + UI 选项: + + + Choose data directory on startup (default: %u) + 在å¯åŠ¨æ—¶é€‰æ‹©æ•°æ®ç›®å½•(默认:%u) + + + Show splash screen on startup (default: %u) + å¯åŠ¨æ—¶æ˜¾ç¤ºå¯åŠ¨ç”»é¢(默认:%u) + + + Set language, for example "de_DE" (default: system locale) + 设置语言,例如“de_DEâ€(默认:系统语言环境) + + + Start minimized + 开始最å°åŒ– + + + Set SSL root certificates for payment request (default: -system-) + 为支付请求设置SSLæ ¹è¯ä¹¦(默认值:-s系统-) + + + OK + OK + + + + Intro + + Welcome + 欢迎 + + + Welcome to PIVX Core. + 欢迎使用 PIVX Core + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + 由于这是该程åºç¬¬ä¸€æ¬¡å¯åŠ¨ï¼Œæ‚¨å¯ä»¥é€‰æ‹©å­˜å‚¨PIVX Core æ•°æ®çš„ä½ç½®ã€‚ + + + PIVX Core will download and store a copy of the PIVX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + PIVX Core将下载并存储PIVX区å—链副本。 至少 %1 GBçš„æ•°æ®å°†å­˜å‚¨åœ¨æ­¤ç›®å½•ä¸­ï¼Œå¹¶ä¸”会éšç€æ—¶é—´çš„推移而增长。 钱包也将存储在此目录中。 + + + Use the default data directory + 使用默认的数æ®ç›®å½• + + + Use a custom data directory + 使用自定义数æ®ç›®å½• + + + CANCEL + 删除 + + + OK + OK + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" cannot be created. + 错误:无法创建指定的数æ®ç›®å½•â€œ%1â€ã€‚ + + + Error + 出错 + + + %1 GB of free space available + %1 GBå¯ç”¨çš„空闲空间 + + + (of %1 GB needed) + (需è¦%1 GB) + + + + LoadingDialog + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + Loading + 正在下载 + + + . + . + + + + LockUnlock + + Form + æ¥è‡ª + + + Unlock Wallet + 解é”钱包 + + + Lock Wallet + é”ä½é’±åŒ… + + + Staking Only + åªå¯¹åŠ æ³¨å¯ç”¨ + + + + MNRow + + Form + æ¥è‡ª + + + user_masternode + 用户_主节点 + + + Address: 88.26.164.88:51474 + 地å€: 88.26.164.88:51474 + + + Jan. 19, 2019 + 2019å¹´1月19æ—¥ + + + + MasterNodeWizardDialog + + Dialog + 对è¯æ¡† + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + Intro + 简介 + + + Name + å称 + + + Address + åœ°å€ + + + Create New Master Node Controller + 创建新的主节点控制器 + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + <html><head/><body><p>创建一个PIVX 主节点,你必须奉献给网络10.000 PIV (PIVXçš„å•ä½)(但是,这些å¸ä»å±žäºŽä½ ï¼Œæ°¸è¿œéƒ½æ˜¯å±žäºŽä½ çš„财产)。</p><p></p><p>ä½ å¯ä»¥åœ¨ä»»ä½•æ—¶å€™å…³é—­è¯¥èŠ‚点并解é”å¸ã€‚</p></body></html> + + + Make sure you have this amount of coins. + ç¡®ä¿ä½ æœ‰è¿™ä¹ˆå¤šå¸ + + + Set Master Node’s Name + 设置主节点å称 + + + <html><head/><body><p>A transaction of 10,000 PIV will be made</p><p>to a new empty address in your wallet.</p><p>The Address is labeled under the master node's name.</p></body></html> + <html><head/><body><p>将进行10,000 PIV的交易</p><p>到您的钱包空地å€</p><p>地å€è¢«æ ‡è®°åœ¨ä¸»èŠ‚点的å称之下</p></body></html> + + + Set Master Node’s IP and port + 设置主节点IPå’Œç«¯å£ + + + Address of the node that must always be online running the actual master node. + 必须始终在线è¿è¡Œå®žé™…主节点的节点的地å€ã€‚ + + + Enter IP address + 输入IP åœ°å€ + + + Enter Port + è¾“å…¥ç«¯å£ + + + CANCEL + 删除 + + + OK + OK + + + e.g user_masternode + 例如 用户_主节点 + + + NEXT + 下一步 + + + BACK + 返回 + + + address label cannot be empty + 地å€æ ‡ç­¾ä¸èƒ½ä¸ºç©º + + + IP or port cannot be empty + IP 或端å£ä¸èƒ½ä¸ºç©º + + + Invalid port number + 端å£æ•°å­—无效 + + + Prepare master node failed.. + 准备主节点失败… + + + Invalid masternode.conf file + 主节点é…置文件无效 + + + Error parsing masternode.conf file + 解æžä¸»èŠ‚点é…置文件出错 + + + Invalid collaterall output index + æ‹…ä¿å“输出指标出错 + + + Master node created! + 主节点已创建 + + + masternode.conf file doesn't exists + 主节点é…置文件ä¸å­˜åœ¨ + + + The recipient address is not valid, please recheck. + 收件人地å€æ— æ•ˆï¼Œè¯·é‡æ–°æ£€æŸ¥ã€‚ + + + The amount to pay must be larger than 0. + 支付金é¢å¿…须大于0 + + + The amount exceeds your balance. + 金é¢è¶…过您的余é¢ã€‚ + + + The total exceeds your balance when the %1 transaction fee is included. + 当包å«%1交易费用时,总é¢è¶…过您的余é¢ã€‚ + + + Duplicate address found, can only send to each address once per send operation. + å‘现é‡å¤åœ°å€ï¼Œæ¯æ¬¡å‘é€æ“作åªèƒ½å‘é€åˆ°æ¯ä¸ªåœ°å€ä¸€æ¬¡ + + + Transaction creation failed! + 交易创建失败 + + + The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + 交易被拒ç»ï¼ å¯èƒ½åœ¨æ‚¨çš„钱包中这些硬å¸å·²ç»èŠ±äº†ï¼Œæ¯”如,您使用了wallet.dat的副本,硬å¸åœ¨å‰¯æœ¬ä¸­è¢«ä½¿ç”¨ï¼Œä½†å¹¶æ²¡æœ‰è¢«æ ‡è®°å°±å¯èƒ½å‘生这ç§æƒ…况。 + + + Error: The wallet was unlocked only to anonymize coins. + 错误:钱包åªå¯¹åŒ¿å硬å¸è§£é”。 + + + A fee %1 times higher than %2 per kB is considered an insanely high fee. + æ¯kB比%2高%1å€çš„费用被认为是高得离谱的费用 + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + 错误:钱包åªå¯¹åŒ¿å硬å¸è§£é”。已å–æ¶ˆè§£é” + + + + MasterNodesWidget + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + No active Master Node yet + 暂无活跃主节点 + + + PushButton + 按钮 + + + Masternodes + 主节点 + + + Full nodes that incentivize node operators to perform the core consensus functions +and vote on the treasury system receiving a periodic reward. + 激励节点æ“作员执行核心一致功能的完整节点 +并对财政部系统定期奖励进行投票。 + + + Create Masternode Controller + 创建主节点控制器 + + + No active Masternode yet + 还没激活主节点 + + + Start + 开始 + + + Delete + 删除 + + + Info + æ¶ˆæ¯ + + + Start Masternode + 开始主节点 + + + Are you sure you want to start masternode %1? + + 您确定è¦å¼€å§‹ä¸»èŠ‚点%1? + + + + Cannot start masternode, the collateral transaction has not been accepted by the network. +Please wait few more minutes. + 无法å¯åŠ¨ä¸»èŠ‚点,抵押å“交易未被网络接å—。 +请å†ç­‰å‡ åˆ†é’Ÿã€‚ + + + Remote Masternode Data + è¿œç¨‹ä¸»èŠ‚ç‚¹æ•°æ® + + + You are just about to export the required data to run a Masternode +on a remote server to your clipboard. + + +You will only have to paste the data in the pivx.conf file +of your remote server and start it, then start the Masternode using +this controller wallet (select the Masternode in the list and press "start"). + + 您正准备导出è¿è¡Œä¸»èŠ‚ç‚¹æ‰€éœ€çš„æ•°æ® +到剪贴æ¿çš„远程æœåŠ¡å™¨ä¸Šã€‚ + + +您åªéœ€å°†æ•°æ®ç²˜è´´åˆ°pivx.conf文件中 +,然åŽä½¿ç”¨ä¸»èŠ‚点å¯åŠ¨å®ƒ +这个控制器钱包(在列表中选择主节点并按“开始â€)。 + + + + Masternode exported!, check your clipboard + 主节点输出!ï¼Œæ£€æŸ¥ä½ çš„å‰ªè´´æ¿ + + + Delete Masternode + 删除主节点 + + + You are just about to delete Masternode: +%1 + +Are you sure? + 您å³å°†åˆ é™¤ä¸»èŠ‚点: +%1 + +确定å—? + + + Invalid masternode.conf file + 主节点é…置文件无效 + + + Error parsing masternode.conf file + 解æžä¸»èŠ‚点é…置文件出错 + + + masternode.conf file doesn't exists + 主节点é…置文件ä¸å­˜åœ¨ + + + Not enough balance to create a masternode, 10,000 PIV required. + 没有足够的余é¢åˆ›å»ºä¸»èŠ‚点,需è¦10,000 PIV。 + + + Error creating masternode + 创建主节点出错 + + + + MnInfoDialog + + Form + æ¥è‡ª + + + Master Node Information + ä¸»èŠ‚ç‚¹æ¶ˆæ¯ + + + Public Key: + 公钥: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Address: + 地å€ï¼š + + + 127.0.0.2:43223 + 127.0.0.2:43223 + + + Collaterall tx id: + 字幕: + + + Output index: + 输出索引: + + + 1 Inputs + 1 输入 + + + Status: + 状æ€ï¼š + + + MISSING + 略过 + + + Export data to run the Master Node on a remote server + 导出数æ®ä»¥åœ¨è¿œç¨‹æœåŠ¡å™¨ä¸Šè¿è¡Œä¸»èŠ‚点 + + + + MyAddressRow + + Form + æ¥è‡ª + + + Savings + 存款 + + + Jan. 19, 2019 + 2019å¹´1月19æ—¥ + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + NavMenuWidget + + Form + æ¥è‡ª + + + V 1.0.0 + V 1.0.0 + + + v%1 + v%1 + + + + OpenURIDialog + + Open URI + å¼€æºURI + + + Open payment request from URI or file + éœ€è¦ ä»ŽURI 或文件打开支付 + + + TextLabel + 文本标签 + + + CANCEL + 删除 + + + OK + OK + + + Select payment request file + 选择支付请求文件 + + + Select payment request file to open + 选择支付请求文件打开 + + + File not found + 文件未找到 + + + Parsed data too large + 解æžçš„æ•°æ®å¤ªå¤§ + + + Invalid URI, not starting with "pivx" prefix + 无效的URI,ä¸æ˜¯ä»¥â€œ pivxâ€å‰ç¼€å¼€å¤´ + + + + OptionButton + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + + OptionsDialog + + Options + 选项 + + + &Main + &主 + + + Size of &database cache + 缓存&database å¤§å° + + + MB + MB + + + Number of script &verification threads + 脚本&验è¯çº¿ç¨‹æ•° + + + (0 = auto, <0 = leave that many cores free) + (0 = 自动, <0 = ä¿ç•™ç©ºé—²çš„内核) + + + W&allet + W&钱包 + + + If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. + 如果您è¦ç¦ç”¨æœªç»ç¡®è®¤å‘é€ï¼Œåœ¨è‡³å°‘有一个确认之å‰<br/>ä¸èƒ½æ›´æ”¹ã€‚<br/>这也将影å“您的余é¢è®¡ç®—。 + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + 自动打开路由器上的PIVX钱包使用的端å£ã€‚ è¿™åªæœ‰å½“您的路由器支æŒUPnP并且该享生效时æ‰æœ‰ç”¨ã€‚ + + + Accept connections from outside + 从外部接å—连接 + + + Allow incoming connections + å…许进æ¥çš„连接 + + + &Connect through SOCKS5 proxy (default proxy): + &使用SOCKS5代ç†ï¼ˆé»˜è®¤ä»£ç†ï¼‰ + + + Expert + 专家 + + + Automatically start PIVX after logging in to the system. + 登录系统åŽè‡ªåŠ¨å¯åŠ¨PIVX。 + + + &Start PIVX on system login + &开机å¯åŠ¨PIVX + + + Whether to show coin control features or not. + 是å¦æ˜¾ç¤ºç¡¬å¸æŽ§åˆ¶åŠŸèƒ½ + + + Enable coin &control features + å¯ç”¨ç¡¬å¸&控制功能 + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + 显示附加的标签,列出所有您的主节点在第一å­åˆ—表上<br/>所有主节点的网络在第二个å­åˆ—表上。 + + + Show Masternodes Tab + æ˜¾ç¤ºä¸»èŠ‚ç‚¹é€‰é¡¹å¡ + + + &Spend unconfirmed change + &花费未ç»è¯å®žçš„å˜åŒ– + + + &Network + &网络 + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + å¯ä»¥åœ¨è¿™é‡Œè®¾ç½®ç”¨æˆ·ç•Œé¢è¯­è¨€ã€‚此设置将在é‡æ–°å¯åŠ¨PIVXåŽç”Ÿæ•ˆã€‚ + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + 语言缺失或翻译ä¸å®Œæ•´?帮助贡献翻译在这里: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + 端å£ä½¿ç”¨&UPnP + + + Enable automatic minting of PIV units to zPIV + å¯åŠ¨è‡ªåŠ¨é“¸é€ PIV到zPIV + + + Enable zPIV Automint + å¯åŠ¨è‡ªåŠ¨é“¸é€ zPIV + + + Enable automatic zPIV minting from specific addresses + å¯ç”¨ä»Žç‰¹å®šåœ°å€è‡ªåŠ¨ç”ŸæˆzPIV + + + Enable Automint Addresses + å¯åŠ¨è‡ªåŠ¨é“¸é€ åœ°å€ + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + 通过零å¸å议自动转æ¢ä¸ºzPIVçš„ä¼ å…¥PIV的百分比(最å°:10%) + + + Percentage of autominted zPIV + 自动铸造的zPIV百分比 + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + 等待自动转æ¢ä¸ºé›¶å¸ï¼Œç›´åˆ°è¶³å¤Ÿçš„PIV为这ç§é¢é¢å¯ç”¨ + + + Preferred Automint zPIV Denomination + 首选自动铸造zPIVé¢é¢ + + + Stake split threshold: + è‚¡æƒåˆ†å‰²é˜ˆå€¼: + + + Connect to the PIVX network through a SOCKS5 proxy. + 通过SOCKS5代ç†è¿žæŽ¥åˆ°PIVX网络。 + + + Proxy &IP: + 代ç†&IP地å€: + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + 代ç†çš„IP地å€(例如IPv4: 127.0.0.1 / IPv6:::1) + + + &Port: + &端å£ï¼š + + + Port of the proxy (e.g. 9050) + 代ç†ç«¯å£(例如9050) + + + &Window + &视窗 + + + Show only a tray icon after minimizing the window. + 在最å°åŒ–窗å£åŽï¼Œåªæ˜¾ç¤ºä¸€ä¸ªæ‰˜ç›˜å›¾æ ‡ã€‚ + + + &Minimize to the tray instead of the taskbar + &最å°åŒ–到托盘而ä¸æ˜¯ä»»åŠ¡æ  + + + Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. + 当窗å£å…³é—­æ—¶ï¼Œæœ€å°åŒ–而ä¸æ˜¯é€€å‡ºåº”用程åºã€‚当å¯ç”¨æ­¤é€‰é¡¹æ—¶ï¼Œåªæœ‰åœ¨èœå•ä¸­é€‰æ‹©QuitåŽåº”用程åºæ‰ä¼šå…³é—­ã€‚ + + + M&inimize on close + M&关闭最å°åŒ– + + + &Display + &显示 + + + User Interface &language: + 选择&语言包 + + + User Interface Theme: + ç•Œé¢ä¸»é¢˜ï¼ˆè¯­è¨€åŒ…): + + + Unit to show amounts in: + 显示金é¢çš„å•ä½: + + + Choose the default subdivision unit to show in the interface and when sending coins. + 选择显示å‘é€PIVX的默认å•ä½ã€‚ + + + Decimal digits + å°æ•°ä½æ•° + + + Hide empty balances + éšè—ç©ºä½™é¢ + + + Hide orphan stakes in transaction lists + 在交易列表中éšè—孤股份 + + + Hide orphan stakes + éšè—孤股份 + + + Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. + 第三方网å€(如区å—æµè§ˆå™¨ä¸­)出现的交易选项å¡ï¼Œä¸Šä¸‹æ–‡èœå•é¡¹ã€‚ 在URL %s 被交易哈希å–代。 多个URL被竖线分隔|。 + + + Third party transaction URLs + 第三方交易URLs + + + Active command-line options that override above options: + 激活上述选项的命令行选项: + + + Reset all client options to default. + 清空当å‰è®¾ç½®ï¼Œæ¢å¤ä¸ºåˆå§‹çŠ¶æ€ + + + &Reset Options + &é‡ç½®é€‰é¡¹ + + + &OK + &OK + + + &Cancel + &å–消 + + + Any + ä»»æ„ + + + default + 默认 + + + none + æ—  + + + Confirm options reset + 确认选项é‡ç½® + + + Client restart required to activate changes. + 钱包é‡å¯åŽä¿®æ”¹æ‰èƒ½ç”Ÿæ•ˆã€‚ + + + Client will be shutdown, do you want to proceed? + 软件将è¦å…³é—­ï¼Œæ‚¨ç¡®å®šå˜›ï¼Ÿ + + + This change would require a client restart. + 修改需è¦é‡å¯é’±åŒ…。 + + + The supplied proxy address is invalid. + æ供的代ç†åœ°å€æ— æ•ˆã€‚ + + + The supplied proxy port is invalid. + 所æ供的代ç†ç«¯å£æ— æ•ˆã€‚ + + + The supplied proxy settings are invalid. + æ供的代ç†è®¾ç½®æ— æ•ˆã€‚ + + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + 钱包 + + + Node + 节点 + + + &Show / Hide + &S显示/éšè— + + + Show or hide the main Window + 显示或éšè—ä¸»çª—å£ + + + E&xit + E&退出 + + + Quit application + 关闭应用 + + + PIVX Core client + PIVX Core 客户端 + + + Error + 出错 + + + Warning + æ³¨æ„ + + + Information + ä¿¡æ¯ + + + System Message + ç³»ç»Ÿæ¶ˆæ¯ + + + Sent MultiSend transaction + å‘é€MultiSend交易 + + + Sent transaction + å‘é€äº¤æ˜“ + + + Incoming transaction + 接收交易 + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + 日期:%1 +金é¢ï¼š%2 +类型:%3 +地å€ï¼š%4 + + + + A fatal error occurred. PIVX can no longer continue safely and will quit. + å‘生了一个致命的错误。PIVXä¸èƒ½ç»§ç»­å®‰å…¨ï¼Œå°†é€€å‡ºã€‚ + + + + PWidget + + Wallet locked, you need to unlock it to perform this action + 钱包已é”定,您需è¦è§£é”它æ¥æ‰§è¡Œæ­¤æ“作 + + + + PaymentServer + + Payment request error + 付款请求出错 + + + URI handling + URI 处ç†å½“中 + + + Payment request fetch URL is invalid: %1 + 支付请求获å–URL无效:%1 + + + Payment request file handling + ä»˜æ¬¾ç”³è¯·æ–‡ä»¶å¤„ç† + + + Invalid payment address %1 + 无效支付地å€%1 + + + Cannot start pivx: click-to-pay handler + 无法å¯åŠ¨pivx:点击支付处ç†ç¨‹åº + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URIä¸èƒ½è¢«è§£æž!è¿™å¯èƒ½æ˜¯ç”±æ— æ•ˆçš„PIVX地å€æˆ–æ ¼å¼é”™è¯¯çš„URIå‚数造æˆçš„。 + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + 无法读å–付款请求文件!è¿™å¯èƒ½æ˜¯ç”±ä¸€ä¸ªæ— æ•ˆçš„支付请求文件引起的。 + + + Payment request rejected + æ”¯ä»˜è¯·æ±‚è¢«æ‹’ç» + + + Payment request network doesn't match client network. + 支付请求网络与客户端网络ä¸åŒ¹é…。 + + + Payment request has expired. + 付款请求已过期。 + + + Payment request is not initialized. + 未åˆå§‹åŒ–付款请求。 + + + Unverified payment requests to custom payment scripts are unsupported. + ä¸æ”¯æŒå¯¹è‡ªå®šä¹‰ä»˜æ¬¾è„šæœ¬çš„未验è¯çš„付款请求。 + + + Requested payment amount of %1 is too small (considered dust). + 请求支付的金é¢%1太å°(基于dust的考虑)。 + + + Refund from %1 + 从%1退款 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + 付款请求%1太大(%2字节,å…许%3字节)。 + + + Payment request DoS protection + 支付请求DoSä¿æŠ¤ + + + Error communicating with %1: %2 + 与%1的通信错误:%2 + + + Payment request cannot be parsed! + 无法解æžä»˜æ¬¾è¯·æ±‚! + + + Bad response from server %1 + æœåŠ¡å™¨%1çš„å“应错误 + + + Network request error + 网络请求错误 + + + Payment acknowledged + 付款确认 + + + + PeerTableModel + + Address/Hostname + 地å€/主机å + + + Version + 版本 + + + Ping Time + Ping时间 + + + + PrivacyWidget + + Form + æ¥è‡ª + + + Title + 抬头 + + + TextLabel + 文本标签 + + + PushButton + 按钮 + + + No active Master Node yet + 暂无活跃主节点 + + + Privacy + éšç§ + + + Convert + è½¬æ¢ + + + Mint + 铸造 + + + Minting zPIV anonymizes your PIV by removing any +transaction history, making transactions untraceable + 铸造zPIV会通过删除任何 +交易历å²åŒ¿å化您的PIV,使交易无法被跟踪 + + + Mint new zPIV or convert back to PIV + 铸造新的zPIV或转æ¢å›žPIV + + + Last Zerocoin Movements + 最åŽé›¶å¸ç§»åŠ¨ + + + No transactions yet + 暂无交易 + + + Mint zPIV + 铸造zPIV + + + Enter amount of PIV to mint into zPIV + 输入一定é‡çš„PIV铸造æˆzPIV + + + Convert back to PIV + 转æ¢å›žPIV + + + Enter amount of zPIV to convert back into PIV + 输入一定é‡çš„zPIV转æ¢å›žPIV + + + Zerocoin + é›¶å¸ + + + zPIV is currently undergoing maintenance + zPIVç›®å‰æ­£åœ¨ç»´æŠ¤ä¸­ + + + You need to unlock the wallet to be able to %1 zPIV + 你需è¦è§£é”钱包æ‰èƒ½%1 zPIV + + + convert + è½¬æ¢ + + + mint + 铸造 + + + Invalid value + 无效值 + + + zPIV minted successfully + zPIV铸造æˆåŠŸ + + + zPIV converted back to PIV + zPIV 转æ¢å›žPIV + + + You don't have any PIV to select. + 您没有任何PIVå¯é€‰æ‹©ã€‚ + + + Rescan Mints + é‡æ–°æ‰«æ铸造 + + + Your zerocoin mints are going to be scanned from the blockchain from scratch + 你的零å¸é“¸é€ å°†ä»Žé›¶åŒºå—链被扫æ + + + Reset Spent Zerocoins + é‡ç½®èŠ±è´¹é›¶å¸ + + + Your zerocoin spends are going to be scanned from the blockchain from scratch + 你的零å¸èŠ±è´¹é“¸é€ å°†ä»Žé›¶åŒºå—链被扫æ + + + Total %1 + 总é¢%1 + + + + ProposalFrame + + Open proposal page in browser + 在æµè§ˆå™¨ä¸­æ‰“å¼€å»ºè®®é¡µé¢ + + + remaining payment(s). + 剩余的付款 + + + Yes: + 是: + + + Abstain: + 弃æƒ: + + + No: + å¦ï¼š + + + A proposal URL can be used for phishing, scams and computer viruses. Open this link only if you trust the following URL. + + æ案URLå¯ç”¨äºŽç½‘络钓鱼ã€è¯ˆéª—和计算机病毒。如果你信任以下URL,æ‰æ‰“开这个链接 + + + + Open link + 打开链接 + + + Copy link + å¤åˆ¶é“¾æŽ¥ + + + Wallet Locked + 钱包已é”ä½ + + + You must unlock your wallet to vote. + 你必须解é”钱包æ‰èƒ½æŠ•ç¥¨ã€‚ + + + Do you want to vote %1 on + 您是å¦è¦å¯¹%1进行投票 + + + using all your masternodes? + 用你所有主节点? + + + Proposal Hash: + æ议哈希: + + + Proposal URL: + æè®®URL: + + + Confirm Vote + 确认投票 + + + Vote Results + 投票结果 + + + + QObject + + Amount + é‡‘é¢ + + + Enter a PIVX address (e.g. %1) + 输入一个 PIVX åœ°å€ (e.g. %1) + + + %1 d + %1 天 + + + %1 h + %1 å°æ—¶ + + + %1 m + %1 分 + + + %1 s + %1 秒 + + + NETWORK + 网络 + + + BLOOM + çˆ†å‘ + + + ZK_BLOOM + ZK_çˆ†å‘ + + + UNKNOWN + 未知 + + + None + æ—  + + + N/A + N/A + + + %1 ms + %1 毫秒 + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" does not exist. + 错误:指定的数æ®ç›®å½•â€œ%1â€ä¸å­˜åœ¨ã€‚ + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + 错误:无法解æžé…置文件:%1。åªä½¿ç”¨key=value语法。 + + + Error: Invalid combination of -regtest and -testnet. + 错误:-regtestå’Œ-testnet的组åˆæ— æ•ˆã€‚ + + + Error reading masternode configuration file: %1 + 读å–主节点é…置文件出错:%1 + + + PIVX Core didn't yet exit safely... + PIVX核心尚未安全退出…… + + + + RPCConsole + + Tools window + å·¥å…·çª—å£ + + + &Information + &Iä¿¡æ¯ + + + General + 总的 + + + Name + å称 + + + Client name + 客户å称 + + + N/A + N/A + + + Number of connections + è¿žæŽ¥æ•°é‡ + + + &Open + &打开 + + + Startup time + 开始时间 + + + Network + 网络 + + + Last block time + 上一个区å—时间 + + + Debug log file + 调试日志文件 + + + Build date + 建立日期 + + + Current number of blocks + 当å‰åŒºå—æ•°é‡ + + + Client version + 客户端版本 + + + Using BerkeleyDB version + 使用BerkeleyDB 版本 + + + Block chain + 区å—链 + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + 从当å‰æ•°æ®ç›®å½•æ‰“å¼€PIVX调试日志文件。对于大型日志文件,这å¯èƒ½éœ€è¦å‡ ç§’钟。 + + + Number of Masternodes + ä¸»èŠ‚ç‚¹æ•°é‡ + + + Data Directory + æ•°æ®ç›®å½• + + + Last block hash + 上一个区å—哈希 + + + &Console + &è°ƒè¯•å° + + + Clear console + æ¸…é™¤æŽ§åˆ¶å° + + + &Network Traffic + &网络æµé‡ + + + &Clear + &清除 + + + Totals + æ€»é¢ + + + Received + 已接收 + + + Sent + å·²å‘é€ + + + &Peers + &并列 + + + Banned peers + ç¦æ­¢åŒè¡Œ + + + Select a peer to view detailed information. + 选择一个对等点æ¥æŸ¥çœ‹è¯¦ç»†ä¿¡æ¯ã€‚ + + + Whitelisted + 白åå• + + + Direction + 导引 + + + Protocol + æè®® + + + Version + 版本 + + + Services + æœåŠ¡ + + + Ban Score + ç¦æ­¢å¾—分 + + + Connection Time + 连接时间 + + + Last Send + 上一次å‘é€ + + + Last Receive + 上一次接收 + + + Bytes Sent + 字节å‘é€ + + + Bytes Received + 字节接收 + + + Ping Time + Ping时间 + + + &Wallet Repair + &ä¿®å¤é’±åŒ… + + + Delete local Blockchain Folders + 删除本地区å—链文件夹 + + + Wallet In Use: + 正在使用钱包: + + + Starting Block + 开始区å—: + + + Synced Headers + åŒæ­¥é¡µçœ‰ + + + Synced Blocks + åŒæ­¥åŒºå— + + + The duration of a currently outstanding ping. + 当å‰æœªå®Œæˆçš„pingçš„æŒç»­æ—¶é—´ã€‚ + + + Ping Wait + ping等待 + + + Time Offset + 时间åç§»é‡ + + + Custom Backup Path: + 自定义备份路径: + + + Custom zPIV Backup Path: + 自定义zPIV备份路径: + + + Custom Backups Threshold: + 自定义备份阈值: + + + Salvage wallet + Salvage 钱包: + + + Attempt to recover private keys from a corrupt wallet.dat. + å°è¯•ä»ŽæŸå的钱包中æ¢å¤ç§é’¥ã€‚ + + + Rescan blockchain files + é‡æ–°æ‰«æ区å—链文件 + + + Rescan the block chain for missing wallet transactions. + é‡æ–°æ‰«æ丢失钱包交易的区å—链。 + + + Recover transactions 1 + æ¢å¤äº¤æ˜“1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + 从区å—链æ¢å¤äº¤æ˜“(ä¿å­˜å…ƒæ•°æ®ï¼Œä¾‹å¦‚å¸æˆ·æ‰€æœ‰è€…)。 + + + Recover transactions 2 + æ¢å¤äº¤æ˜“2 + + + Recover transactions from blockchain (drop meta-data). + 从区å—链æ¢å¤äº¤æ˜“(删除元数æ®)。 + + + Upgrade wallet format + å‡çº§é’±åŒ…æ¨¡å¼ + + + Rebuild block chain index from current blk000??.dat files. + 从当å‰çš„blk000??.dat文件é‡å»ºå—链索引。 + + + -resync: + -é‡æ–°åŒæ­¥: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + 删除所有本地区å—链文件夹,使钱包从零开始åŒæ­¥ã€‚ + + + The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. + 下é¢çš„按钮将é‡æ–°å¯åŠ¨é’±åŒ…与命令行选项修å¤é’±åŒ…,修å¤æŸå区å—链文件或丢失/过时的交易问题。 + + + Wallet repair options. + 钱包修å¤é€‰é¡¹ã€‚ + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + å¯åŠ¨æ—¶å°†é’±åŒ…å‡çº§åˆ°æœ€æ–°æ ¼å¼ã€‚(注æ„:è¿™ä¸æ˜¯é’±åŒ…本身的更新!) + + + Rebuild index + é‡å»ºç´¢å¼• + + + In: + 进: + + + Out: + 出: + + + Welcome to the PIVX RPC console. + 欢迎访问PIVX RPCæŽ§åˆ¶å° + + + &Disconnect Node + &断开连接节点 + + + Ban Node for + ç¦æ­¢èŠ‚点 + + + 1 &hour + 1&å°æ—¶ + + + 1 &day + 1&天 + + + 1 &week + 1&周 + + + 1 &year + 1&å¹´ + + + &Unban Node + 1&中心节点 + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + 这将删除您的本地区å—链文件夹,钱包将从零开始åŒæ­¥å®Œæ•´çš„区å—链。<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + 这需è¦ç›¸å½“多的时间和下载大é‡çš„æ•°æ®ã€‚<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + 下载完æˆåŽå¯ä»¥å†çœ‹åˆ°æ‚¨çš„交易和资金。<br /><br /> + + + Do you want to continue?.<br /> + 您确定继续? + + + Confirm resync Blockchain + 确认é‡æ–°åŒæ­¥åŒºå—链 + + + Use up and down arrows to navigate history, and %1 to clear screen. + 使用å‘上和å‘下箭头导航历å²è®°å½•ï¼Œ%1清除å±å¹•ã€‚ + + + Type <b>help</b> for an overview of available commands. + 键入<b>帮助</b>æ¥æµè§ˆå¯ç”¨å‘½ä»¤ + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + 警告:骗å­ä¸€ç›´æ´»è·ƒï¼Œå‘Šè¯‰ç”¨æˆ·åœ¨è¿™é‡Œè¾“入命令,窃å–他们的钱包内容。在完全ç†è§£å‘½ä»¤çš„åŽæžœä¹‹å‰ï¼Œä¸è¦ä½¿ç”¨æ­¤æŽ§åˆ¶å°ã€‚ + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (节点 id: %1) + + + via %1 + 通过%1 + + + never + ä»Žä¸ + + + Inbound + 入站 + + + Outbound + 出站 + + + Yes + 是 + + + No + å¦ + + + Unknown + 未知 + + + + ReceiveDialog + + Dialog + 对è¯æ¡† + + + Transaction Details + 交易明细 + + + PushButton + 按钮 + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + CANCEL + 删除 + + + OK + OK + + + + ReceiveWidget + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + No address + æ— åœ°å€ + + + Add Label + 添加标签 + + + Generate Address + 生æˆåœ°å€ + + + Copy + å¤åˆ¶ + + + Receive + 接收 + + + Scan the QR code or copy the address to receive PIV. + 扫æ二维ç æˆ–å¤åˆ¶åœ°å€æŽ¥æ”¶PIV + + + No address + æ— åœ°å€ + + + No available address, try unlocking the wallet + 没有å¯ç”¨åœ°å€ï¼Œå°è¯•è§£é”钱包 + + + Error generating address + 生æˆåœ°å€å‡ºé”™ + + + Change Label + 改å˜æ ‡ç­¾ + + + Edit Address Label + 编辑地å€æ ‡ç­¾ + + + Address label saved + 地å€æ ‡ç­¾å·²ä¿å­˜ + + + Error storing address label + ä¿å­˜åœ°å€æ ‡ç­¾å‡ºé”™ + + + New address created + å·²åˆ›å»ºæ–°åœ°å€ + + + Address copied + 地å€å·²å¤åˆ¶ + + + URI copied to clipboard + URIå·²ç»å¤åˆ¶åˆ°å‰ªè´´æ¿ + + + Address copied to clipboard + 地å€å·²ç»å¤åˆ¶åˆ°å‰ªè´´æ¿ + + + + RecentRequestsTableModel + + Date + 日期 + + + Label + 标签 + + + Message + æ¶ˆæ¯ + + + Address + åœ°å€ + + + Amount + é‡‘é¢ + + + (no label) + 未设置标签 + + + (no message) + (没有消æ¯) + + + (no amount) + (无金é¢) + + + + RequestDialog + + Dialog + 对è¯æ¡† + + + New Request Payment + 新支付请求 + + + Lorem ipsum dolor sit amet, consectur cling elit, sed do + Lorem ipsum dolor sit amet, consectur cling elit, sed do + + + Amount + é‡‘é¢ + + + PIV + PIV + + + TextLabel + 文本标签 + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + COPY ADDRESS + å¤åˆ¶åœ°å€ + + + COPY URL + å¤åˆ¶URL + + + CANCEL + 删除 + + + REQUEST + 请求 + + + Instead of only sharing a PIVX address, you can create a Payment Request message which bundles up more information than is contained in just a PIVX address. + 与共享PIVX地å€ä¸åŒï¼Œæ‚¨å¯ä»¥åˆ›å»ºä¸€ä¸ªæ”¯ä»˜è¯·æ±‚消æ¯ï¼Œè¯¥æ¶ˆæ¯åŒ…å«çš„ä¿¡æ¯æ¯”仅包å«PIVX地å€æ‰€åŒ…å«çš„ä¿¡æ¯æ›´å¤šã€‚ + + + Label + 标签 + + + Enter a label to be saved within the address + 输入è¦ä¿å­˜åœ¨åœ°å€ä¸­çš„标签 + + + Description (optional) + 说明书(å¯é€‰) + + + Add description + 添加说明书 + + + Error + 出错 + + + GENERATE + ç”Ÿæˆ + + + Creates an address to receive coin delegations and be able to stake them. + 创建一个地å€ä»¥æŽ¥æ”¶ä»£å¸æŽˆæƒå¹¶å¯ä»¥æ”¾æ ·ã€‚ + + + New Cold Staking Address + æ–°å†·å †åœ°å€ + + + + SendChangeAddressDialog + + Dialog + 对è¯æ¡† + + + Transaction Details + 交易明细 + + + PushButton + 按钮 + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. +   +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + 删除 + + + OK + OK + + + Custom Change Address + è‡ªå®šä¹‰æ›´æ”¹åœ°å€ + + + The remainder of the value resultant from the inputs minus the outputs value goes to the "change" PIVX address + 输入值å‡åŽ»è¾“出值所得的值的其余部分归为“更改â€PIVXåœ°å€ + + + + SendCustomFeeDialog + + Form + æ¥è‡ª + + + Transaction Details + 交易明细 + + + Customize the transaction fee at your to your liking, depending on the fee value your transaction will be included or not in the blockchain. + æ ¹æ®æ‚¨çš„喜好定制交易费用,å–决于您的交易是å¦åŒ…å«åœ¨åŒºå—链中。 + + + Recomended + 已推è + + + 0.00 KB + 0.00 KB + + + Custom + 自定义 + + + Per kilobyte + æ¯åƒå­—节 + + + CANCEL + 删除 + + + OK + OK + + + Customize Fee + 自定义费用 + + + Customize the transaction fee, depending on the fee value your transaction will be included or not in the blockchain. + æ ¹æ®æ‚¨çš„喜好定制交易费用,å–决于您的交易是å¦åŒ…å«åœ¨åŒºå—链中。 + + + Normal + 正常 + + + Slow + 慢速 + + + Fast + 快速 + + + SAVE + ä¿å­˜ + + + + SendMultiRow + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + Add address + æ·»åŠ åœ°å€ + + + Add description + 添加说明书 + + + + SendWidget + + Send + å‘é€ + + + You can transfer public coins (PIV) or private coins (zPIV) + 您å¯ä»¥è½¬æ¢å…¬å…±å¸(PIV)或ç§äººå¸(zPIV) + + + Select coin type to spend + 选择需è¦èŠ±è´¹çš„å¸ç§ç±» + + + Enter a PIVX address or contact label + 输入PIVX地å€æˆ–è”系人标签 + + + Amount + é‡‘é¢ + + + Customize fee + 定制费用 + + + Clear all + 清除所有 + + + Add recipient + 添加接收人 + + + Reset to default + é‡ç½®åˆ°é»˜è®¤å€¼ + + + Total to send + èŠ±è´¹æ€»é‡‘é¢ + + + Send PIV + 花费PIV + + + Send zPIV + 花费zPIV + + + Total remaining from the selected UTXO + 所选UTXO的剩余总数 + + + Total remaining + 总剩余 + + + Customize Fee + 定制费用 + + + Maximum amount of outputs reached + è¾¾åˆ°æœ€å¤§è¾“å‡ºé‡‘é¢ + + + Invalid entry, previous entries must be valid before add a new one + æ¡ç›®æ— æ•ˆï¼Œåœ¨æ·»åŠ æ–°æ¡ç›®ä¹‹å‰ï¼Œå…ˆå‰çš„æ¡ç›®å¿…须有效 + + + Invalid entry + æ¡ç›®æ— æ•ˆ + + + No set recipients + 没有设置收件人 + + + Cannot send, wallet locked + 无法å‘é€ï¼Œé’±åŒ…被é”了 + + + Cannot create transaction. + 无法创建交易 + + + WARNING: +Transaction spends a cold-stake delegation, voiding it. +These coins will no longer be cold-staked. + 警告: +交易花费了冷积累委派,使它无效。 +这些硬å¸å°†ä¸å†è¢«å†·ç§¯ç´¯ã€‚ + + + Transaction sent + 交易已å‘é€ + + + Spend Zerocoin + èŠ±è´¹é›¶å¸ + + + zPIV is currently undergoing maintenance. + zPIVç›®å‰æ­£åœ¨ç»´æŠ¤ä¸­ + + + Coin control mint not found + 硬å¸æŽ§åˆ¶é“¸å¸ä¸å­˜åœ¨ + + + Sending %1 to address %2 + + 正在å‘é€%1 到 地å€%2 + + + + Sending %1 to addresses: +%2 + 正在å‘é€%1到地å€ï¼š +%2 + + + zPIV transaction sent! + zPIV交易已å‘é€ï¼ + + + Version 1 zPIV require a security level of 100 to successfully spend. + 版本1 zPIVè¦æ±‚安全级别为100æ‰èƒ½æˆåŠŸä½¿ç”¨ã€‚ + + + Too much inputs ( + 输入过多( + + + ) needed. +Maximum allowed: + )需è¦ã€‚ +最大é¢é™åˆ¶: + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +è¦ä¹ˆé“¸é€ æ›´é«˜é¢é¢çš„å¸(这样需è¦çš„投入就更少),è¦ä¹ˆå‡å°‘开支。 + + + Address label update failed for address: %1 + 地å€æ ‡ç­¾æ›´æ–°å¤±è´¥çš„地å€:%1 + + + Invalid change address + 更改地å€æ— æ•ˆ + + + Invalid URI + URI无效 + + + Invalid address in URI + URI地å€æ— æ•ˆ + + + Custom Fee %1 + 定制费用%1 + + + You don't have any PIV to select. + 您没有任何PIVå¯ä¾›é€‰æ‹©ã€‚ + + + You don't have any zPIV in your balance to select. + ä½ çš„ä½™é¢ä¸­æ²¡æœ‰zPIVå¯ä¾›é€‰æ‹©ã€‚ + + + No contacts available, you can go to the contacts screen and add some there! + 没有å¯ç”¨çš„è”系人,您å¯ä»¥åˆ°è”系人界é¢é‚£é‡Œæ·»åŠ ! + + + Save contact + ä¿å­˜è”系人 + + + Address field is empty + 地å€å­—段为空 + + + Invalid address + 地å€æ— æ•ˆ + + + Cannot store your own address as contact + 无法ä¿å­˜ä½ çš„è”ç³»åœ°å€ + + + Update Contact + æ›´æ–°è”系人 + + + Create New Contact + 创建新è”系人 + + + New Contact Stored + æ–°è”系方å¼å·²ä¿å­˜ + + + Error Storing Contact + ä¿å­˜è”系方å¼å‡ºé”™ + + + + SettingsBackupWallet + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + PushButton + 按钮 + + + Backup Wallet + 返回钱包 + + + Change Wallet Passphrase + å˜æ›´é’±åŒ…å¯†ç  + + + Keep your wallet safe doing regular backups, store your backup file externally. +This option creates a wallet.dat file that can be used to recover your whole balance (transactions and addresses) from another device. + 定期安全备份您的钱包,在外部设备储存你的备份文件。 +此选项创建一个wallet.dat文件,å¯ç”¨äºŽä»Žå¦ä¸€ä¸ªè®¾å¤‡æ¢å¤æ‚¨çš„全部余é¢(交易和地å€)。 + + + This will decrypt the whole wallet data and encrypt it back with the new passphrase. +Remember to write it down and store it safely, otherwise you might lose access to your funds. + 这将解密整个钱包数æ®ï¼Œå¹¶ä½¿ç”¨æ–°å¯†ç å°†å…¶åŠ å¯†å›žæ¥ã€‚ +请记ä½å°†å…¶å†™ä¸‹å¹¶å®‰å…¨åœ°å­˜å‚¨ï¼Œå¦åˆ™æ‚¨å¯èƒ½æ— æ³•ä½¿ç”¨è¿™ç¬”资金。 + + + Where + 哪里 + + + Set a folder location + 设置文件夹ä½ç½® + + + Backup + 返回 + + + Change Passphrase + æ›´æ”¹å¯†ç  + + + Backup Wallet + 返回钱包 + + + Wallet Data (*.dat) + 钱包数æ®(*.dat) + + + Backup created + 返回创建 + + + Backup creation failed + 备份创建失败 + + + Please select a folder to export the backup first. + 请先选择一个文件夹æ¥å¯¼å‡ºå¤‡ä»½ + + + + SettingsBitToolWidget + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + PushButton + 按钮 + + + Decrypt Address Result + 解密地å€ç»“æžœ + + + Import Address + å¯¼å…¥åœ°å€ + + + Clear + 明确 + + + BIP38 Tool + BIP38工具 + + + Encrypt + 加密 + + + Decrypt + 解密 + + + Encrypted key + 解密钥匙 + + + Enter a encrypted key + 输入解密钥匙 + + + Passphrase + å¯†ç  + + + Enter a passphrase + è¾“å…¥å¯†ç  + + + Decrypted address result + 解密地å€ç»“æžœ + + + Decrypted Address + å·²è§£å¯†åœ°å€ + + + DECRYPT KEY + 解密钥匙 + + + Enter a PIVX address + 输入一个PIVXåœ°å€ + + + Add address + æ·»åŠ åœ°å€ + + + Write a message + å†™å…¥ä¿¡æ¯ + + + Encrypted Key + 加密钥匙 + + + ENCRYPT + 加密 + + + CLEAR ALL + 清除所有 + + + CLEAR + 清除 + + + The entered passphrase is invalid. + 输入的密ç æ— æ•ˆã€‚ + + + Allowed: 0-9,a-z,A-Z, + å…许: 0-9,a-z,A-Z, + + + The entered address is invalid. + 输入的地å€æ— æ•ˆ + + + Please check the address and try again. + 请检查地å€ï¼Œå¹¶é‡æ–°è¾“入。 + + + The entered address does not refer to a key. + 输入的地å€ä¸æ˜¯æŒ‡å¯†é’¥ã€‚ + + + Wallet unlock was cancelled. + 钱包解é”终止。 + + + Private key for the entered address is not available. + 输入地å€çš„ç§é’¥ä¸å¯ç”¨ã€‚ + + + Address encrypted. + 地å€å·²åŠ å¯† + + + No addresses available, you can go to the receive screen and add some there! + 没有å¯ç”¨åœ°å€ï¼Œä½ å¯ä»¥åŽ»æŽ¥æ”¶å±å¹•é‚£é‡Œæ·»åŠ  + + + Failed to decrypt. + 解密失败。 + + + Please check the key and passphrase and try again. + 请检查密钥和密ç çŸ­è¯­ï¼Œç„¶åŽå†è¯•ä¸€æ¬¡ã€‚ + + + Data Not Valid. + 无效数æ®ã€‚ + + + Please try again. + 请å†è¯•ä¸€æ¬¡ã€‚ + + + Please wait while key is imported + 等待key被导入。 + + + Cannot import address, key already held by the wallet + 无法导入地å€ï¼Œé’¥åŒ™å·²è¢«é’±åŒ…æŒæœ‰ + + + Error adding key to the wallet + 添加钥匙到钱包出错 + + + Successfully added pivate key to the wallet + æˆåŠŸæ·»åŠ ç§é’¥åˆ°é’±åŒ… + + + + SettingsConsoleWidget + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + Console + æŽ§åˆ¶å° + + + Console input + 控制å°è¾“å…¥ + + + Command Line Options + 命令行选项 + + + Open Debug File + 打开调试文件 + + + Cannot open debug file. +Verify that you have installed a predetermined text editor. + 无法打开调试文件。 +确认您已ç»å®‰è£…了预定的文本编辑器 + + + Welcome to the PIVX RPC console. + 欢迎访问PIVX RPCæŽ§åˆ¶å° + + + Use up and down arrows to navigate history, and %1 to clear screen. + 使用å‘上和å‘下箭头导航历å²è®°å½•ï¼Œ%1清除å±å¹•ã€‚ + + + Type <b>help</b> for an overview of available commands. + 键入<b>帮助</b>æ¥æµè§ˆå¯ç”¨å‘½ä»¤ + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + 警告:骗å­ä¸€ç›´æ´»è·ƒï¼Œå‘Šè¯‰ç”¨æˆ·åœ¨è¿™é‡Œè¾“入命令,窃å–他们的钱包内容。在完全ç†è§£å‘½ä»¤çš„åŽæžœä¹‹å‰ï¼Œä¸è¦ä½¿ç”¨æ­¤æŽ§åˆ¶å°ã€‚ + + + + SettingsDisplayOptionsWidget + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + PushButton + 按钮 + + + Reset to default + é‡ç½®åˆ°é»˜è®¤å€¼ + + + Discard changes + 放弃更改 + + + Display + 显示 + + + Customize the display view options + 自定义显示视图选项 + + + Language + 语言 + + + Unit to show amount + 金é¢è¡¨ç¤ºå•ä½ + + + Decimal digits + å°æ•°ä½æ•° + + + Third party transactions URLs + 第三方交易URLs + + + Hide empty balances + éšè—ç©ºä½™é¢ + + + SAVE + ä¿å­˜ + + + default + 默认 + + + Options reset succeed + 选项é‡ç½®æˆåŠŸ + + + + SettingsFaqWidget + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + PushButton + 按钮 + + + 1) What is PIVX? + 1)什么是PIVX? + + + 2) Why are my PIV unspendable? + 2) 我的PIV为什么ä¸èƒ½ç”¨ï¼Ÿ + + + 3) PIVX privacy? What is Zerocoin (zPIV)? + 3)PIVX éšç§ï¼Ÿä»€ä¹ˆæ˜¯é›¶å¸(zPIV)? + + + 4) Why are my zPIV unspendable? + 4) 我的zPIV为什么ä¸èƒ½ç”¨ï¼Ÿ + + + 5) Why did my wallet convert the balance + into zPIV automatically? + 5)为什么我的钱包把余é¢è‡ªåŠ¨è½¬æ¢æˆ +zPIV了? + + + 6) How do I receive PIV/zPIV? + 6)如何接收PIV/zPIV? + + + 7) How do I stake PIV/zPIV? + 7)如何加注PIV/zPIV? + + + 8) Where I should go if I need support? + 8)该到哪里寻求帮助? + + + 9) What is a Master Node? + 9)什么是主节点? + + + 10) What is a Master Node Controller? + 10)什么是主节点控制器? + + + 1 + 1 + + + What is PIVX? + PIVX是什么? + + + + <html><head/><body><p align="justify"> + PIVX is a form of digital online money using blockchain technology + that can be easily transferred globally, instantly, and with near + zero fees. PIVX incorporates market leading security & + privacy and is also the first PoS (Proof of Stake) Cryptocurrency + to implement ZeroCoin(zPIV) and Zerocoin staking. + </p><p align="justify"> + PIVX utilizes a Proof of Stake (PoS) consensus system algorithm, + allowing all owners of PIVX to participate in earning block rewards + while securing the network with full node wallets, as well as to + run Masternodes to create and vote on proposals. + </p></body></html> + + +<html><head/><body><p align="justify"> +PIVX是一ç§ä½¿ç”¨åŒºå—é“¾æŠ€æœ¯çš„æ•°å­—åœ¨çº¿è´§å¸ +å…¨çƒèŒƒå›´å†…å¿«æ·äº¤æ˜“,å³æ—¶ï¼ŒåŸºæœ¬ä¸º +零的交易费用。PIVX是市场上领先的安全和 +éšç§åŠ å¯†è´§å¸ï¼Œä¹Ÿæ˜¯ç¬¬ä¸€ä¸ªPoS(è‚¡æƒè¯æ˜Ž)åŠ å¯†è´§å¸ +实现零å¸(zPIV)和零å¸åŠ æ³¨ã€‚ +</p><p align="justify"> +PIVX使用了一个股æƒè¯æ˜Ž(PoS)一致系统算法, +å…许所有PIVX的所有者å‚与赚å–区å—奖励 +åŒæ—¶ä¿æŠ¤ç½‘ç»œä¸Žå®Œæ•´çš„èŠ‚ç‚¹é’±åŒ…ï¼Œä»¥åŠ +è¿è¡Œä¸»èŠ‚点创建和投票æ¥è¿›è¡Œæ案。 + + + 2 + 2 + + + Why are my PIV unspendable? + 我的PIV为什么ä¸èƒ½ç”¨ï¼Ÿ + + + + <html><head/><body><p align="justify"> + Newly received PIVX requires 6 confirmations on the network + to become eligible for spending which can take ~6 minutes. + </p><p align="justify"> + Your PIVX wallet also needs to be completely synchronized + to see and spend balances on the network. + </p></body></html> + + +<html><head/><body><p align="justify"> +接收到的PIVX需è¦ç½‘络上的6个确认 +æ‰èƒ½æˆä¸ºæœ‰èµ„格的花费,å¯ä»¥èŠ±~6分钟。 +</p><p align="justify"> +您的PIVX钱包也需è¦å®Œå…¨åŒæ­¥ +查看网络收支余é¢ã€‚ +</p></body></html> + + + + 3 + 3 + + + PIVX privacy? What is Zerocoin (zPIV)? + PIVX éšç§ï¼Ÿä»€ä¹ˆæ˜¯é›¶å¸(zPIV)? + + + + <html><head/><body><p align="justify"> + zPIV is an optional privacy-centric method of coin mixing on the + PIVX blockchain. Basically all your transactions cannot be tracked + on to any block explorer. You can read more about the technicals in the + <a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + "PIVX Zerocoin (zPIV) Technical Paper"</a>. + </p></body></html> + + +<html><head/><body><p align="justify"> +zPIV是一ç§å¯é€‰çš„以éšç§ä¸ºä¸­å¿ƒçš„éšç§å¸ +它是PIVX区å—链的一员,基本上在任何å—资æºç®¡ç†å™¨ +所有的交易都ä¸èƒ½è¢«è·Ÿè¸ª<a style='color: #b088ff' href='https://PIVX.org/zpiv/'> + +ä½ å¯ä»¥é˜…读更多关于技术方é¢çš„文章</a> + +PIVX零å¸(zPIV)技术文件 +</p></body></html> + + + + 4 + 4 + + + Why are my zPIV unspendable? + 我的PIV为什么ä¸èƒ½ç”¨ï¼Ÿ + + + + <html><head/><body><p align="justify"> + After minting, zPIV will require 20 confirmations as well as 1 + additional mint of the same denomination on the network to + become eligible for spending. + </p></body></html> + + +<html><head/><body><p align="justify"> +铸å¸åŽï¼ŒzPIV将需è¦20个确认和1个确认 +在网络上增加相åŒé¢é¢çš„é“¸å¸ +æ‰å¤Ÿèµ„格消费。 +</p></body></html> + + + 5 + 5 + + + Why did my wallet convert the balance into zPIV automatically? + 为什么我的钱包会自动将余é¢è½¬æ¢æˆzPIV ? + + + 6 + 6 + + + How do I receive PIV/zPIV? + 我怎么接收PIV/zPIV? + + + + <html><head/><body><p align="justify"> + zPIV can be spent and sent to any PIVX address. The receiver will + receive standard PIVX but the origin of the PIVX is anonymized by the zPIV Protocol. + </p><p align="justify"> + If you want more zPIV you will need to mint your balance in the “Privacy†tab. + </p></body></html> + + +<html><head/><body><p align="justify"> +å¯ä»¥ä½¿ç”¨zPIV并将其å‘é€åˆ°ä»»ä½•PIVX地å€ã€‚接收机将 +接收标准的PIVX,但是根æ®zPIVå议,PIVXçš„æ¥æºæ˜¯åŒ¿å的。 +</p><p align="justify"> +如果你想è¦æ›´å¤šçš„zPIV,你将需è¦åœ¨â€œéšç§â€æ ‡ç­¾ä¸Šé“¸é€ ä½ çš„ä½™é¢ã€‚ +</p></body></html> + + + 7 + 7 + + + How do I stake PIV/zPIV? + 我怎么加注PIV/zPIV? + + + + <html><head/><body><p align="justify"> + To Stake PIVX: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + You must have a balance of PIVX with a minimum of 101 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + <li> + Once all those steps are followed staking should be enabled. + <li> + You can see the status of staking in the wallet by mousing over the package icon in the row on the top left of the wallet interface. There package will be lit up and will state "Staking Enabled" to indicate it is staking. Using the command line interface (pivx-cli); the command <i>getstakingstatus</i> will confirm that staking is active. + </li></ol> + </p><p align="justify"> + To Stake zPIV: + </p><p align="justify"> + <ol><li> + Make sure your wallet is completely synchronized and you are using the latest release. + <li> + Your newly minted or existing zPIV balance must have a minimum of 200 confirmations. + <li> + Your wallet must stay online and be unlocked for anonymization and staking purposes. + Staking should now be enabled. + </li></ol> + </p></body></html> + + +<html><head/><body><p align="justify"> +加注PIVX: +</p><p align="justify"> +<ol><li> +ç¡®ä¿ä½ çš„钱包是完全åŒæ­¥çš„,且使用最新版本。 +<li> +您必须有至少101个确认的PIVXä½™é¢ã€‚ +<li> +你的钱包必须在线,并为匿å和加注的目的被解é”。 +<li> +一旦所有这些步骤都éµå¾ªäº†ï¼Œåº”该就å¯ä»¥å¯ç”¨åŠ æ³¨ +<li> +您å¯ä»¥é€šè¿‡å°†é¼ æ ‡ç§»åˆ°é’±åŒ…ç•Œé¢å·¦ä¸Šè§’的行中的package图标上æ¥æŸ¥çœ‹åœ¨é’±åŒ…中进行标记的状æ€ã€‚被点亮,并将状æ€â€œStakingå¯ç”¨â€ï¼Œä»¥è¡¨æ˜Žå®ƒæ˜¯åŠ æ³¨çŠ¶æ€ã€‚使用命令行接å£(pivx-cli);命令getstakingstatus将确认加注是活跃状æ€ã€‚ +</li></ol> +</p><p align="justify"> +加注zPIV:</p><p align="justify"> +<ol><li> +ç¡®ä¿ä½ çš„钱包是完全åŒæ­¥çš„,且使用最新版本 +<li> +您新创建的或现有的zPIVä½™é¢å¿…须至少有200个确认。 +<li> +我们的钱包必须在线,并为匿å和加注的目的被解é”。 +加注现在应该是å¯ç”¨çŠ¶æ€äº†ã€‚ +</li></ol> +</p></body></html> + + + 8 + 8 + + + Where I should go if I need support? + 该到哪里寻求帮助? + + + + <html><head/><body><p align="justify"> + We have support channels in most of our official chat groups, for example + <a style='color: #b088ff' href='https://Discord.PIVX.com'> + #support in our Discord</a>. + If you prefer to submit a ticket, One can be + <a style='color: #b088ff' href='https://PIVX.FreshDesk.com'> + our Freshdesk support site</a>. + </p></body></html> + + +<html><head/><body><p align="justify"> +例如,我们在大多数官方èŠå¤©ç»„中都有支æŒé¢‘é“ +<a style='color: #b088ff' href='https://Discord.PIVX.com'> +#在</a>Discord支æŒæˆ‘们 +如果您想订票<a style='color: #b088ff' href='https://PIVX.FreshDesk.com'>,我们å¯ä»¥ä¸ºæ‚¨æä¾›å‰å°æ”¯æŒ</a> +</p></body></html> + + + 9 + 9 + + + What is a Master Node? + 什么是主节点? + + + + <html><head/><body><p align="justify"> + A masternode is a computer running a full node PIVX core wallet with a + requirement of 10,000 PIV secured collateral to provide extra services + to the network and in return, receive a portion of the block reward + regularly. These services include: + </p><p align="justify"> + + <ul> + <li>Instant transactions (SwiftX)</li> + <li>A decentralized governance (Proposal Voting)</li> + <li>A decentralized budgeting system (Treasury)</li> + <li>Validation of transactions within each block</li> + <li>Act as an additional full node in the network</li> + </ul> + + </p><p align="justify"> + For providing such services, masternodes are also paid a certain portion + of reward for each block. This can serve as a passive income to the + masternode owners minus their running cost. + </p><p align="justify"> + + Masternode Perks: + </p><p align="justify"> + <ul> + <li>Participate in PIVX Governance</li> + <li>Earn Masternode Rewards</li> + <li>Commodity option for future sale</li> + <li>Help secure the PIVX network</li> + </ul> + </p><p align="justify"> + + Requirements: + </p><p align="justify"> + <ul> + <li>10,000 PIV per single Masternode instance</li> + <li>Must be stored in a core wallet</li> + <li>Need dedicated IP address</li> + <li>Masternode wallet to remain online</li> + </ul> + </p></body></html> + + +<html><head/><body><p align="justify"> +主节点是è¿è¡Œå®Œæ•´èŠ‚点PIVX核心钱包的计算机 +需è¦10,000个PIV作抵押以æä¾›é¢å¤–æœåŠ¡ +到网络,会收到一部分的区å—奖励作为定期 +回报 +这些æœåŠ¡åŒ…括: +</p><p align="justify"> + +<ul> +<li>å³æ—¶äº¤æ˜“(SwiftX)</li> +<li>去中心化治ç†(æ案投票)</li> +<li>去中心化预算系统(国库)</li> +<li>验è¯æ¯ä¸ªåŒºå—交易</li> +<li>充当网络中的å¦ä¸€ä¸ªå®Œæ•´èŠ‚点</li> +</ul> + +</p><p align="justify"> +为了æ供这样的æœåŠ¡ï¼Œä¸»èŠ‚点也会为æ¯ä¸€ä¸ªåŒºå— +支付一定的报酬。 +è¿™å¯ä»¥ä½œä¸ºä¸»èŠ‚点所有者å‡åŽ»å…¶è¿è¡Œæˆæœ¬çš„被动收入。 +</p><p align="justify"> +主节点ç¦åˆ©ï¼š +</p><p align="justify"> +<ul> +<li>å‚与PIVXæ²»ç†</li> +<li>èµ¢å–主节点奖励</li> +<li>商å“期货期æƒ</li> +<li>帮助ä¿æŠ¤PIVX网络</li> +</ul> +</p><p align="justify"> + +è¦æ±‚: +</p><p align="justify"> +<ul> +<li>æ¯ä¸ªä¸»èŠ‚点实例有10,000 PIV</li> +<li>必须存储在核心钱包</li> +<li>需è¦ä¸“用IP地å€</li> +主节点钱包ä¿æŒåœ¨çº¿<li> +</ul> +</p></body></html> + + + + + 10 + 10 + + + What is a Master Node Controller? + 什么是主节点控制器? + + + <html><head/><body><p align="justify">A Masternode Controller wallet is where the 10,000 PIV collateral can reside during a Controller-Remote masternode setup. It is a wallet that can activate the remote masternode wallet/s and allows you to keep your collateral coins offline while the remote masternode remains online. </p></body></html> + <html><head/><body><p align="justify">主节点控制器钱包是在控制器-远程主节点设置期间10,000 PIV附属å“å¯ä»¥é©»ç•™çš„地方。这是一个å¯ä»¥æ¿€æ´»è¿œç¨‹ä¸»èŠ‚点钱包的钱包/s,远程主节点ä¿æŒåœ¨çº¿çš„时候,å¯ä»¥è®©ä½ çš„抵押å“硬å¸ç¦»çº¿ã€‚</p></body></html> + + + Frequently Asked Questions + 常è§é—®é¢˜ + + + You can read more here + 查看这里了解更多内容 + + + Exit + 退出 + + + + SettingsInformationWidget + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + Network Monitor + 网络监视器 + + + Information + ä¿¡æ¯ + + + General + 总的 + + + Client Version: + 客户端版本: + + + User Agent: + 客户端代ç†ï¼š + + + Using BerkeleyDB version: + 使用BerkeleyDB 版本 + + + Datadir: + æ•°æ®ç›®å½•: + + + Startup Time: + 开始时间: + + + Network + 网络 + + + Name: + å称: + + + Number Connections: + 连接数é‡ï¼š + + + Blockchain + 区å—链 + + + Current Number of Blocks: + 当å‰åŒºå—æ•°é‡ï¼š + + + Last Block Time: + 上一个区å—时间: + + + Memory Pool + 记忆工具 + + + Current Number of Transactions: + 当å‰äº¤æ˜“æ•°é‡ï¼š + + + Main + 主页 + + + Wallet Conf + 钱包é…ç½® + + + Backups + 返回 + + + No information + æ— ä¿¡æ¯ + + + Unable to open backups folder + 无法打开备份文件夹 + + + Unable to open pivx.conf with default application + 无法使用默认应用程åºæ‰“å¼€pivx.conf + + + In: + 进: + + + Out: + 出: + + + + SettingsMainOptionsWidget + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + Window + çª—å£ + + + Customize the application window options + 自定义应用视图选项 + + + CheckBox + 查看列表 + + + Reset to default + é‡ç½®åˆ°é»˜è®¤å€¼ + + + Discard changes + 放弃更改 + + + SAVE + ä¿å­˜ + + + Main + 主页 + + + Size of database cache + 缓存数æ®åº“çš„å¤§å° + + + Number of script verification threads + 脚本&验è¯çº¿ç¨‹æ•° + + + Start PIVX on system login + 开机å¯åŠ¨PIVX + + + Minimize to the tray instead of the taskbar + 最å°åŒ–到托盘而ä¸æ˜¯ä»»åŠ¡æ  + + + Minimize on close + 关闭最å°åŒ– + + + Reset Options + é‡ç½®é€‰é¡¹ + + + You are just about to reset the app's options to the default values. + +Are you sure? + + 你正在é‡ç½®app选项到åˆå§‹å€¼ + +确定? + + + + Options reset succeed + 选项é‡ç½®æˆåŠŸ + + + + SettingsMultisendDialog + + Form + æ¥è‡ª + + + Transaction Details + 交易明细 + + + TextLabel + 文本标签 + + + CANCEL + 删除 + + + SAVE + ä¿å­˜ + + + New recipient for multisend + 多é‡å‘é€æ–°æŽ¥æ”¶äºº + + + Label (optional) + 标签(å¯é€‰ï¼‰ + + + Enter a label to add this address in your address book + 输入此地å€çš„标签,将其添加到您的地å€åˆ—表中 + + + Percentage + 百分百 + + + + SettingsMultisendWidget + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + No active Master Node yet + 暂无活跃主节点 + + + CheckBox + 查看列表 + + + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. + æˆç†Ÿä»¥åŽï¼Œå¤šé‡èŠ±è´¹å…许您自动å‘é€é«˜è¾¾ 100% çš„è‚¡æƒæˆ–主节点奖励到其他PIVX地å€åˆ—表 + + + Active + 激活 + + + Disable + ä¸å¯ç”¨ + + + No active recipient yet + 还没激活接收人 + + + Send stakes + å‘é€åŠ æ³¨ + + + Send masternode rewards + å‘é€ä¸»èŠ‚点奖励 + + + ADD RECIPIENT + 添加接收人 + + + CLEAR ALL + 清除所有 + + + Clear succeed + 清除æˆåŠŸ + + + Clear all failed, could not locate address in wallet file + æ¸…é™¤æ‰€æœ‰å¤±è´¥ï¼Œæ— æ³•æ‰¾åˆ°é’±åŒ…æ–‡ä»¶ä¸­çš„åœ°å€ + + + The entered address: %1 is invalid. +Please check the address and try again. + 输入的地å€:%1无效。 +请检查地å€ï¼Œç„¶åŽå†è¯•ä¸€æ¬¡ã€‚ + + + Invalid percentage, please enter values from 1 to 100. + 百分比无效,请输入从1到100的值。 + + + Error saving MultiSend, failed saving properties to the database. + ä¿å­˜å¤šé‡å‘é€å‡ºé”™ï¼Œå°†å±žæ€§ä¿å­˜åˆ°æ•°æ®åº“失败 + + + Unable to activate MultiSend, no available recipients + 无法激活多é‡å‘é€ï¼Œæ²¡æœ‰å¯ç”¨çš„收件人 + + + Unable to activate MultiSend +Check one or both of the check boxes to send on stake and/or masternode rewards + 无法激活多é‡å‘é€ +选中一个或两个å¤é€‰æ¡†æ¥å‘é€åŠ æ³¨å’Œ/或主节点奖励 + + + MultiSend activated but writing settings to DB failed + 多é‡å‘é€å·²æ¿€æ´»ï¼Œä½†å°†è®¾ç½®å†™å…¥DB失败 + + + MultiSend activated + 多é‡å‘é€æ¿€æ´» + + + First multiSend address invalid + 第一个多é‡å‘é€åœ°å€æ— æ•ˆ + + + MultiSend deactivated but writing settings to DB failed + 输出å‘é€æœªæ¿€æ´»ï¼Œä½†è®¾ç½®å†™å…¥DB失败 + + + MultiSend deactivated + 多é‡å‘é€æœªæ¿€æ´» + + + + SettingsSignMessageWidgets + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + PushButton + 按钮 + + + Clear + 明确 + + + Sign/Verify Message + 签署/验è¯æ¶ˆæ¯ + + + Enter a PIVX address or contact label + 输入PIVX地å€æˆ–è”系人标签 + + + Add address + æ·»åŠ åœ°å€ + + + Sign + 签署 + + + Verify + éªŒè¯ + + + Select mode + é€‰æ‹©ä»£ç  + + + Message + æ¶ˆæ¯ + + + Write a message + å†™å…¥ä¿¡æ¯ + + + Signature + ç­¾å + + + SIGN + 签署 + + + CLEAR ALL + 清除所有 + + + You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. + 您å¯ä»¥ä½¿ç”¨åœ°å€ç­¾å消æ¯ï¼Œä»¥è¯æ˜Žæ‚¨æ‹¥æœ‰ä»–们。 å°å¿ƒä¸è¦ç­¾å任何您ä¸äº†è§£çš„,因为网络钓鱼攻击å¯èƒ½ä¼šè¯•å›¾æ¬ºéª—您,以让您签å。 åªèƒ½ç­¾ç½²æ‚¨ç†Ÿæ‚‰å¹¶ä¸”了解和åŒæ„的。 + + + Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. + 输入签å地å€ï¼Œæ¶ˆæ¯ï¼ˆç¡®ä¿æ‚¨å‡†ç¡®åœ°å¤åˆ¶æ¢è¡Œç¬¦ï¼Œç©ºæ ¼ï¼Œåˆ¶è¡¨ç¬¦ç­‰ï¼‰å’Œç­¾å以验è¯æ¶ˆæ¯ã€‚注æ„ä¸è¦æ¯”ç­¾å的消æ¯æœ¬èº«æ›´å¤šåœ°é˜…读签å,以é¿å…被中间人的袭击所欺骗。 + + + VERIFY + éªŒè¯ + + + The entered address is invalid. + 输入的地å€æ— æ•ˆ + + + Please check the address and try again. + 请检查地å€ï¼Œå¹¶é‡æ–°è¾“入。 + + + The entered address does not refer to a key. + 输入的地å€ä¸æ˜¯æŒ‡å¯†é’¥ã€‚ + + + Wallet unlock was cancelled. + 钱包解é”终止。 + + + Private key for the entered address is not available. + 输入地å€çš„ç§é’¥ä¸å¯ç”¨ã€‚ + + + Message signing failed. + 消æ¯ç­¾å失败 + + + Message signed. + 消æ¯å·²è¢«ç­¾å + + + The signature could not be decoded. + 无法解ç è¯¥ç­¾å。 + + + Please check the signature and try again. + 请检查签å,并é‡è¯•ã€‚ + + + The signature did not match the message digest. + ç­¾å与消æ¯æ‘˜è¦ä¸ç¬¦ã€‚ + + + Message verification failed. + 消æ¯éªŒè¯å¤±è´¥ã€‚ + + + Message verified. + 消æ¯å·²è¢«éªŒè¯ + + + No addresses available, you can go to the receive screen and add some there! + 没有å¯ç”¨åœ°å€ï¼Œä½ å¯ä»¥åŽ»æŽ¥æ”¶å±å¹•é‚£é‡Œæ·»åŠ  + + + + SettingsWalletOptionsWidget + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + CheckBox + 查看列表 + + + RadioButton + å•é€‰æŒ‰é’® + + + Reset to default + é‡ç½®åˆ°é»˜è®¤å€¼ + + + Discard changes + 放弃更改 + + + PushButton + 按钮 + + + Wallet + 钱包 + + + Customize the internal wallet options + 自定义内部钱包选项 + + + Stake split threshold: + è‚¡æƒåˆ†å‰²é˜ˆå€¼: + + + Spend unconfirmed change + &花费未ç»è¯å®žçš„å˜åŒ– + + + Network + 网络 + + + Customize the node network options + 自定义节点网络选项 + + + Proxy IP: + ä»£ç† IP + + + Enter proxy IP + è¾“å…¥ä»£ç† IP + + + Port: + 端å£ï¼š + + + Map port using UPnP + 端å£ä½¿ç”¨UPnP + + + Allow incoming connections + å…许进æ¥çš„连接 + + + Connect through SOCKS5 proxy (default proxy): + 使用SOCKS5代ç†ï¼ˆé»˜è®¤ä»£ç†ï¼‰ï¼š + + + SAVE + ä¿å­˜ + + + Options reset succeed + 选项é‡ç½®æˆåŠŸ + + + + SettingsWalletRepairWidget + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + PushButton + 按钮 + + + Wallet Repair + é’±åŒ…ä¿®å¤ + + + The buttons below will restart the wallet with command-line options to repair this wallet, fix issues with corrupt blockchain files or missing/obsolete transactions. + 下é¢çš„按钮将用命令行选项é‡æ–°å¯åŠ¨é’±åŒ…æ¥ä¿®å¤è¿™ä¸ªé’±åŒ…,修å¤æŸå的区å—链文件或丢失/过时的交易。 + + + Attempt to recover private keys from a corrupt wallet.dat. + å°è¯•ä»ŽæŸå的钱包中æ¢å¤ç§é’¥ã€‚ + + + Rescan the blockchain for missing wallet transactions. + é‡æ–°æ‰«æ区å—链以查找丢失的钱包交易。 + + + Recover transactions from blockchain (keep-meta-data, e.g. account owner). + 从区å—链æ¢å¤äº¤æ˜“(ä¿å­˜å…ƒæ•°æ®ï¼Œä¾‹å¦‚å¸æˆ·æ‰€æœ‰è€…)。 + + + Recover transactions from blockchain (drop meta-data). + 从区å—链æ¢å¤äº¤æ˜“(删除元数æ®)。 + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself) + å¯åŠ¨æ—¶å°†é’±åŒ…å‡çº§åˆ°æœ€æ–°æ ¼å¼ã€‚(注æ„:è¿™ä¸æ˜¯é’±åŒ…本身的更新) + + + Rebuild blockchain index from current blk000???.dat files. + 从当å‰çš„blk000?? .dat文件é‡å»ºåŒºå—链索引。 + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + 删除所有本地区å—链文件夹,使钱包从零开始åŒæ­¥ã€‚ + + + Salvage wallet + Salvage 钱包: + + + Rescan blockchain file + é‡æ–°æ‰«æ区å—链文件 + + + Recover transactions 1 + æ¢å¤äº¤æ˜“1 + + + Recover transactions 2 + æ¢å¤äº¤æ˜“2 + + + Upgrade wallet format + å‡çº§é’±åŒ…æ¨¡å¼ + + + Rebuild index + é‡å»ºç´¢å¼• + + + Delete local blockchain + 删除本地区å—链 + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + 这将删除您的本地区å—链文件夹,钱包将从零开始åŒæ­¥å®Œæ•´çš„区å—链。<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + 这需è¦ç›¸å½“多的时间和下载大é‡çš„æ•°æ®ã€‚<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + 下载完æˆåŽå¯ä»¥å†çœ‹åˆ°æ‚¨çš„交易和资金。<br /><br /> + + + Do you want to continue?.<br /> + 您确定继续? + + + Confirm resync Blockchain + 确认é‡æ–°åŒæ­¥åŒºå—链 + + + + SettingsWidget + + Form + æ¥è‡ª + + + TextLabel + 文本标签 + + + Wallet Data + é’±åŒ…æ•°æ® + + + Wallet + 钱包 + + + Multisend + 多é‡å‘é€ + + + Tools + 工具 + + + Sign/Verify Message + <div></div> + + + BIP38 Tool + BIP38工具 + + + Options + 选项 + + + Main + 主页 + + + Display + 显示 + + + Debug + 纠错 + + + Information + ä¿¡æ¯ + + + Console + æŽ§åˆ¶å° + + + Wallet Repair + é’±åŒ…ä¿®å¤ + + + Help + 帮助 + + + FAQ + 常è§é—®é¢˜ + + + About PIVX + 关于PIVX + + + Settings + 设置 + + + Confirm options reset + 确认选项é‡ç½® + + + Client restart required to activate changes. + 钱包é‡å¯åŽä¿®æ”¹æ‰èƒ½ç”Ÿæ•ˆã€‚ + + + Client will be shutdown, do you want to proceed? + 软件将è¦å…³é—­ï¼Œæ‚¨ç¡®å®šå˜›ï¼Ÿ + + + Restart required + è¦æ±‚é‡å¯ + + + Your wallet needs to be restarted to apply the changes + + 您的钱包需è¦é‡æ–°å¯åŠ¨æ‰èƒ½åº”用更改 + + + + Restart Now + 现在é‡å¯ + + + Restart Later + ç¨åŽé‡æ–°å¯åŠ¨ + + + Options will be applied on next wallet restart + 下次é‡å¯é’±åŒ…时将应用选项 + + + Options stored + 选项已ä¿å­˜ + + + Options store failed + 选项ä¿å­˜å¤±è´¥ + + + Discard Unsaved Changes + 放弃未ä¿å­˜çš„更改 + + + You are just about to discard all of your unsaved options. + +Are you sure? + + 您å³å°†æ”¾å¼ƒæ‰€æœ‰æœªä¿å­˜çš„选项。 + +你确定? + + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX 核心正在关闭... + + + Do not shut down the computer until this window disappears. + 在此窗å£æ¶ˆå¤±ä¹‹å‰ä¸è¦å…³é—­è®¡ç®—机。 + + + + SnackBar + + Form + æ¥è‡ª + + + Contact Stored + æ–°è”系方å¼å·²ä¿å­˜ + + + + Splash + + Form + æ¥è‡ª + + + Loading… + 正在下载… + + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + 版本%1 + + + The Bitcoin Core developers + 比特å¸æ ¸å¿ƒå¼€å‘者 + + + The Dash Core developers + 达世å¸æ ¸å¿ƒå¼€å‘者 + + + The PIVX Core developers + PIVX 核心开å‘者 + + + [testnet] + [测试网] + + + + TooltipMenu + + Form + æ¥è‡ª + + + Copy + å¤åˆ¶ + + + Edit + 编辑 + + + Delete + 删除 + + + Last + æŒç»­ + + + + TopBar + + Form + æ¥è‡ª + + + 480.0685 PIV + 480.0685 PIV + + + 1,000 zPIV + 1,000 zPIV + + + Available + å¯ç”¨ + + + Pending + 进行当中: + + + 6.943 PIV + 6.943 PIV + + + Immature + ä¸æˆç†Ÿ + + + 10 PIV + 10 PIV + + + 60 zPIV + 60 PIV + + + 10 zPIV + 10 PIV + + + Wallet Unlocked for staking + 解é”钱包加注 + + + Error generating address + 生æˆåœ°å€å‡ºé”™ + + + Address Copied + 地å€å·²å¤åˆ¶ + + + Automint enabled + 自动挖矿å¯ä½¿ç”¨ + + + Automint disabled + 自动挖矿ä¸å¯ä½¿ç”¨ + + + Staking active + 加注激活 + + + Staking not active + 加注没激活 + + + %n active connection(s) + %n激活连接 + + + Synchronized + å·²åŒæ­¥ + + + %n hour(s) + %nå°æ—¶ + + + %n day(s) + %n天 + + + %n week(s) + %n周 + + + %1 and %2 + %1 å’Œ %2 + + + %n year(s) + %nå¹´ + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open for %n more block(s) + 打开%næ›´å¤šåŒºå— + + + Open until %1 + 直到%1æ‰æ‰“å¼€ + + + conflicted + å†²çª + + + %1/offline + %1/线下 + + + %1/unconfirmed + %1/未确认 + + + %1 confirmations + %1确认 + + + %1/offline (verified via SwiftX) + %1/线下(通过SwiftX验è¯ï¼‰ + + + %1/confirmed (verified via SwiftX) + %1/确认(通过SwiftX验è¯ï¼‰ + + + %1 confirmations (verified via SwiftX) + %1/确认(通过SwiftX验è¯ï¼‰ + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/线下(SwiftX验è¯æ­£åœ¨è¿›è¡Œå½“中- %3çš„%2 ç­¾å ) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/确认(SwiftX验è¯æ­£åœ¨è¿›è¡Œå½“中- %3çš„%2 ç­¾å ) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1/确认(SwiftX验è¯æ­£åœ¨è¿›è¡Œå½“中- %3çš„%2 ç­¾å ) + + + %1/offline (SwiftX verification failed) + %1/线下(SwiftX验è¯å¤±è´¥ ) + + + %1/confirmed (SwiftX verification failed) + %1/确认(SwiftX验è¯å¤±è´¥ ) + + + Status + çŠ¶æ€ + + + , has not been successfully broadcast yet + ,尚未æˆåŠŸæ’­å‡º + + + , broadcast through %n node(s) + ,通过%n节点广播 + + + Date + 日期 + + + Source + èµ„æº + + + Generated + å·²ç”Ÿæˆ + + + From + 从 + + + unknown + 未知 + + + To + 到 + + + own address + æ‹¥æœ‰çš„åœ°å€ + + + watch-only + åªè¯» + + + label + 标签 + + + Credit + 信用 + + + matures in %n more block(s) + 在%n多个å—中æˆç†Ÿ + + + not accepted + ä¸æŽ¥å— + + + Debit + 借记 + + + Total debit + å€Ÿè®°æ€»é¢ + + + Total credit + ä¿¡ç”¨æ€»é¢ + + + Transaction fee + 交易费用 + + + Net amount + Netæ•°é‡ + + + Message + æ¶ˆæ¯ + + + Comment + 评论 + + + Transaction ID + 交易 ID + + + Output index + 输出索引 + + + Merchant + 商家 + + + Debug information + çº é”™ä¿¡æ¯ + + + Transaction + 交易 + + + Inputs + 输入 + + + Amount + é‡‘é¢ + + + true + 是 + + + false + å¦ + + + + TransactionTableModel + + Date + 日期 + + + Type + 类别 + + + Address + åœ°å€ + + + Open for %n more block(s) + 打开%næ›´å¤šåŒºå— + + + Open until %1 + 直到%1æ‰æ‰“å¼€ + + + Offline + 线下 + + + Unconfirmed + 未确认 + + + Confirming (%1 of %2 recommended confirmations) + 确认(%2推è确认中的%1) + + + Confirmed (%1 confirmations) + 确认(%1确认) + + + Conflicted + å†²çª + + + Immature (%1 confirmations, will be available after %2) + 未完æˆçš„(%1确认,将在%2之åŽå¯ç”¨) + + + This block was not received by any other nodes and will probably not be accepted! + 此区å—未被任何其他节点接收,å¯èƒ½ä¸ä¼šè¢«æŽ¥å—! + + + Received with + 接收 + + + Masternode Reward + 主节点奖励 + + + Received from + 接收 + + + Received via Obfuscation + 模糊接收 + + + PIV Stake + PIV加注 + + + zPIV Stake + zPIV 加注 + + + PIV Cold Stake + PIV冷饮 + + + PIV Stake in behalf of + PIVæƒç›Šä»£è¡¨ + + + Stake delegation + è‚¡æƒå§”托 + + + Obfuscation Denominate + 模糊命å + + + Obfuscation Collateral Payment + 模糊担ä¿ä»˜æ¬¾ + + + Obfuscation Make Collateral Inputs + 模糊担ä¿è¾“å…¥ + + + Obfuscation Create Denominations + 模糊创建命å + + + Converted PIV to zPIV + 转æ¢PIV为zPIV + + + Spent zPIV + å·²ç»èŠ±è´¹zPIV + + + Received PIV from zPIV + 从zPIV接收PIV + + + Minted Change as zPIV from zPIV Spend + 铸å¸çš„å˜åŒ–,从zPIV花费zPIV + + + Converted zPIV to PIV + 转æ¢PIV为zPIV + + + Sent to + å‘é€ + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + å­¤å„¿å— - 生æˆä½†ä¸è¢«æŽ¥å—。 但这ä¸ä¼šå½±å“你。 + + + Payment to yourself + 支付给您自己 + + + Mined + 已挖矿 + + + Obfuscated + 已模糊 + + + watch-only + åªè¯» + + + Anonymous + 匿å + + + No information + æ— ä¿¡æ¯ + + + (n/a) + (n/a) + + + Transaction status. Hover over this field to show number of confirmations. + 交易状æ€ã€‚将鼠标悬åœåœ¨æ­¤å­—段上,以显示确认的数目。 + + + Date and time that the transaction was received. + 收到交易的日期和时间。 + + + Type of transaction. + 交易类型 + + + Whether or not a watch-only address is involved in this transaction. + 此交易是å¦æ¶‰åŠä»…é™ç›‘视的地å€ã€‚ + + + Destination address of transaction. + 交易的目标地å€ã€‚ + + + Amount removed from or added to balance. + 从余é¢ä¸­å‡åŽ»æˆ–加到余é¢ä¸­çš„é‡‘é¢ + + + + TxDetailDialog + + Form + æ¥è‡ª + + + Transaction Details + 交易明细 + + + ID: + ID: + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + Sending to: + 正在å‘é€åˆ°ï¼š + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + Total amount + æ€»é‡‘é¢ + + + 2 PIV + 2 PIV + + + Coin inputs: + å¸è¾“入: + + + 1 Inputs + 1 输入 + + + Previous Transaction + 过去交易 + + + Output Index + 导出索引 + + + Fee: + 费用: + + + 0.0001 PIV + 0.0001 PIV + + + Change address: + 更改地å€ï¼š + + + D7VFR83SQbie…BhjcWJtcfip5krte2Z + D7VFR83SQbie…BhjcWJtcfip5krte2Z + + + Confirmations: + 确认: + + + 12 + 12 + + + Size: + 大å°ï¼š + + + 2 kB + 2 kB + + + Date: + 日期: + + + May 25, 2017 + 2017å¹´5月25 + + + Status: + 状æ€ï¼š + + + Spendable + å¯ç”¨ + + + TextLabel + 文本标签 + + + CANCEL + 删除 + + + OK + OK + + + Confirm Your Transaction + 确认交易 + + + SEND + å‘é€ + + + ID copied + IDå·²å¤åˆ¶ + + + Unknown + 未知 + + + + TxRow + + Form + æ¥è‡ª + + + Received from Bob + 从Bob接收 + + + 18/05/18 + 18/05/18 + + + +0.000585 PIV + +0.000585 PIV + + + + WalletModel + + Send Coins + å‘é€å¸ + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftXç›®å‰è¿˜ä¸æ”¯æŒå‘é€è¿™ä¹ˆé«˜çš„值。当å‰çš„交易é™åˆ¶ä¸º%1 PIV。 + + + + WalletPasswordDialog + + Dialog + 对è¯æ¡† + + + TextLabel + 文本标签 + + + PushButton + 按钮 + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + CANCEL + 删除 + + + OK + OK + + + + WelcomeContentWidget + + Dialog + 对è¯æ¡† + + + 1 + 1 + + + 2 + 2 + + + 3 + 3 + + + 4 + 4 + + + Language + 语言 + + + Welcome + 欢迎 + + + Privacy + éšç§ + + + Masternodes + 主节点 + + + Select your language + 选择语言 + + + Welcome to +PIVX Core Wallet + 欢迎 +PIVX核心钱包 + + + PIVX is the world’s most innovative Proof of Stake blockchain based technology. Developed by a team of highly experienced developers and cryptographers. + PIVX是世界上最先进的éšç§ä¿æŠ¤æŠ€æœ¯ï¼Œç”±ç»éªŒä¸°å¯Œçš„å¼€å‘人员和密ç ä¸“家开å‘。 + + + <html><head/><body><p>As our manifesto says: Privacy is a non-negotiable basic human right; it grants users the freedom to share their data whenever and with whomever they want - PIVX believes in self sovereignty.</p></body></html> + <html><head/><body><p>正如我们的宣言所说:éšç§æ˜¯ä¸€é¡¹ä¸å®¹å商的基本人æƒ;它赋予用户éšæ—¶éšåœ°ä¸Žä»»ä½•äººå…±äº«æ•°æ®çš„自由——PIVX相信自我主æƒ</p></body></html> + + + The masternode network is PIVX's second layer network on top of the blockchain that enables our DAO to provide decentralized governance and a treasury. + 主节点网络是PIVX在区å—链之上的第二层网络,它使我们的DAO能够æ供去中心的治ç†ã€‚ + + + How PIVX respects your privacy? + PIVX 到底是怎么尊é‡ä½ çš„éšç§çš„? + + + What is a Masternode? + 主节点是什么? + + + default + 默认 + + + + ZPivControlDialog + + Select zPIV to Spend + 选择zPIV 花费 + + + Coin Control + å¸æŽ§åˆ¶ + + + PushButton + 按钮 + + + zPiv + zPiv + + + 0.00 + 0.00 + + + Quantity: + æ•°é‡ï¼š + + + Is Spendable + å¯ç”¨ + + + 0 + 0 + + + Select/Deselect All + 选择ï¼åˆ é™¤æ‰€æœ‰ + + + Select zPIV Denominations to Spend + 选择zPIV é¢é¢èŠ±è´¹ + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 =ä¿ç•™tx元数æ®ï¼Œä¾‹å¦‚å¸æˆ·æ‰€æœ‰è€…和付款请求信æ¯ï¼Œ2 =删除tx元数æ®) + + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + å…许æ¥è‡ªæŒ‡å®šæºçš„JSON-RPC连接。适用于<ip>å•ä¸€IP(如1.2.3.4)ã€ç½‘络/网掩ç (如1.2.3.4/255.255.255.0)或网络/CIDR(如1.2.3.4/24)。å¯ä»¥å¤šæ¬¡æŒ‡å®šæ­¤é€‰é¡¹ + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + 绑定到给定的地å€ï¼Œå¹¶ä¸€ç›´è¿›è¡Œç›‘å¬ã€‚使用[host]: IPv6的端å£ç¬¦å· + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + 绑定到连接它的给定地å€å’Œç™½åå•ã€‚使用[主机]: IPv6的端å£ç¬¦å· + + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + 绑定到给定地å€ç›‘å¬JSON-RPC连接。使用[主机]: IPv6的端å£ç¬¦å·ã€‚å¯ä»¥å¤šæ¬¡æŒ‡å®šæ­¤é€‰é¡¹(默认:绑定到所有接å£) + + + Calculated accumulator checkpoint is not what is recorded by block index + 计算累加器检查点并ä¸æ˜¯å—索引记录的内容 + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + 无法获å–æ•°æ®ç›®å½•%sé”。PIVX核心å¯èƒ½å·²ç»åœ¨è¿è¡Œäº†ã€‚ + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + 改å˜è‡ªåŠ¨å®Œæˆçš„预算投票行为。模å¼=自动:åªå¯¹ä¸Žç”Ÿæˆçš„预算完全匹é…的最终预算进行投票。(字符串,默认:汽车) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + 连续速率é™åˆ¶å…费交易å¯è¾¾<n>æ¯åˆ†é’Ÿ*1000字节(默认:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + 创建系统默认æƒé™æ–°æ–‡ä»¶ï¼Œè€Œä¸æ˜¯ä½¿ç”¨umask 077(仅对ç¦ç”¨é’±åŒ…功能有效) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + 删除所有钱包交易,åªæ¢å¤é‚£äº›éƒ¨åˆ†çš„区å—链-通过å¯åŠ¨æ—¶è¿›è¡Œé‡æ–°æ‰«æ + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + 删除所有已记录到区å—链数æ®åº“的零å¸èŠ±è´¹å’Œé“¸é€ ï¼Œå¹¶é‡æ–°ç´¢å¼•å®ƒä»¬(0-1,默认值:%u) + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + 在MIT软件许å¯ä¸‹å‘布,å‚è§é™„带的文件å¤åˆ¶æˆ–<http://www.opensource.org/licenses/mit-license.php>。 + + + Enable automatic Zerocoin minting from specific addresses (0-1, default: %u) + å¯ç”¨ä»Žç‰¹å®šåœ°å€è‡ªåŠ¨ç”Ÿæˆé›¶å¸(0-1,默认:%u) + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + å¯ç”¨æ¯æ¬¡zPIV生æˆåŽè§¦å‘的自动钱包备份(0-1,默认值:%u) + + + Enable cold staking functionality (0-1, default: %u). Disabled if staking=0 + å¯ç”¨å†·å †å ï¼ˆ0-1,默认值:%u)。 如果累计= 0,则ç¦ç”¨ + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + å¯ç”¨æˆ–ç¦ç”¨PIV输入标记功能(0-1,默认值:%u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + å¯ç”¨æˆ–ç¦ç”¨zPIV输入的标记功能(0-1,默认值:%u) + + + Enable spork administration functionality with the appropriate private key. + 使用适当的ç§é’¥å¯ç”¨spork管ç†åŠŸèƒ½ã€‚ + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + 进入回归测试模å¼ï¼Œè¯¥æ¨¡å¼ä½¿ç”¨ä¸€ä¸ªç‰¹æ®Šçš„链,其中区å—å¯ä»¥ç«‹å³è¢«è§£å†³ã€‚ + + + Error: Listening for incoming connections failed (listen returned error %s) + 错误:监å¬ä¼ å…¥è¿žæŽ¥å¤±è´¥(监å¬è¿”回错误%s) + + + Error: The transaction is larger than the maximum allowed transaction size! + 错误:交易大于交易最大é™åˆ¶å€¼! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + 错误:å‘现ä¸æ”¯æŒçš„å‚æ•°-socks。设置SOCKS版本已ç»ä¸å¯èƒ½äº†ï¼Œåªæ”¯æŒSOCKS5代ç†ã€‚ + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + 在收到相关警报时执行命令,或者看到一个很长的分å‰ï¼ˆcmd中的%s被消æ¯æ›¿æ¢ï¼‰ + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + 当钱包交易更改时执行命令(å°†cmd中的%s替æ¢ä¸ºTxID) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + 当最佳区å—更改时执行命令(cmd中的%s被å—散列替æ¢) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + å°äºŽæ­¤å€¼çš„费用(以PIV/Kb为å•ä½)视为零中继费用(默认值:%s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + å°äºŽæ­¤å€¼çš„费用(以PIV/Kb为å•ä½)被认为是交易创建的零费用(默认值:%s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + æ¯<n>兆字节将数æ®åº“活动从内存池刷新到ç£ç›˜æ—¥å¿—(默认:%u) + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + 如果未设置支付tx费用,则包å«è¶³å¤Ÿçš„费用,以便在n个区å—内平å‡å¼€å§‹ç¡®è®¤äº¤æ˜“(默认值:%u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + 在这ç§æ¨¡å¼ä¸‹ï¼Œgenproclimit控制立å³ç”Ÿæˆçš„区å—çš„æ•°é‡ã€‚ + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + 资金ä¸è¶³æˆ–确认资金ä¸è¶³ï¼Œæ‚¨å¯èƒ½éœ€è¦ç­‰å¾…几分钟,然åŽå†è¯•ä¸€æ¬¡ã€‚ + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + 最大tx费用金é¢æ— æ•ˆ=<amount>:'%s'(必须至少是%s的最å°ä¸­ç»§è´¹ç”¨ï¼Œä»¥é˜²æ­¢äº¤æ˜“中断) + + + Keep the specified amount available for spending at all times (default: 0) + 始终ä¿ç•™æŒ‡å®šçš„支出金é¢(默认值:0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + 区å—挖矿时候的日志交易优先级和æ¯kB的费用(默认值:%u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + 维护一个完整的交易索引,由获å–原始交易 rpc调用使用(默认:%u) + + + Maximum average size of an index occurrence in the block spam filter (default: %u) + 在区å—垃圾邮件过滤器的索引出现的最大平å‡å¤§å°(默认值:%u) + + + Maximum size of data in data carrier transactions we relay and mine (default: %u) + 我们中继和挖掘的数æ®è½½ä½“事务中的最大数æ®å¤§å°(默认值:%u) + + + Maximum size of the list of indexes in the block spam filter (default: %u) + 区å—垃圾邮件过滤器中索引列表的最大值大å°(默认值:%u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + å•ä¸ªé’±åŒ…交易中使用的最大总费用,设置过低å¯èƒ½ä¼šä¸­æ­¢å¤§åž‹äº¤æ˜“(默认值:%s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + 防止行为ä¸ç«¯çš„节点é‡æ–°è¿žæŽ¥çš„秒数(默认值:%u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + 模糊使用精确的金é¢æ¥å‘é€èµ„金,你å¯èƒ½åªéœ€è¦åŒ¿å化更多的å¸å³å¯ã€‚ + + + Output debugging information (default: %u, supplying <category> is optional) + 输出调试信æ¯(默认:%u,<category>å¯é€‰æä¾›) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + 如果地å€ä¸ºä½Žå€¼çš„è¯ï¼Œé€šè¿‡DNS查询端å£åœ°å€(默认:1除éž-连接) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + 为æ¯ä¸ªä»£ç†è¿žæŽ¥éšæœºåˆ†é…凭æ®ã€‚è¿™å¯ç”¨äº†Toræµéš”离(默认:%u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + 需è¦é«˜ä¼˜å…ˆè½¬æŽ¥å…费或低收费交易(默认:%u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + 将跟踪/调试信æ¯å‘é€åˆ°æŽ§åˆ¶å°ï¼Œè€Œä¸æ˜¯debug.log文件(默认值:%u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + 设置高优先级/低费用交易的最大值字节大å°(默认:%d) + + + Set the number of included blocks to precompute per cycle. (minimum: %d) (maximum: %d) (default: %d) + 将包å«çš„区å—çš„æ•°é‡è®¾ç½®ä¸ºæ¯ä¸ªå¾ªçŽ¯é¢„计算。(最å°å€¼:%d)(最大值:%d)(默认值:%d) + + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + 设置脚本验è¯çº¿ç¨‹çš„æ•°é‡(%u为%d, 0 = 自动, <0 =ä¿ç•™å¤šä¸ªå†…核空闲,默认为%d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + 如果å¯ç”¨ï¼Œè®¾ç½®ç”Ÿæˆç¡¬å¸çš„线程数(-1 =所有核心,默认:%d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + 显示一个æˆåŠŸé”定的交易的N个确认(0-9999,默认值:%u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + 支æŒä½¿ç”¨bloom过滤器过滤区å—和交易(默认:%u) + + + The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct + 区å—æ•°æ®åº“包å«ä¸€ä¸ªçœ‹ä¼¼æ¥è‡ªæœªæ¥çš„区å—。有å¯èƒ½å› ä¸ºæ‚¨çš„计算机的日期和时间设置ä¸æ­£ç¡®ã€‚åªæœ‰åœ¨ç¡®å®šè®¡ç®—机的日期和时间正确的情况下,æ‰èƒ½é‡æ–°æž„建区å—æ•°æ®åº“ + + + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. + 本产å“包括OpenSSL项目开å‘的用于OpenSSL Toolkit <https://www.openssl.org/>的软件,以åŠEric Young编写的加密软件和Thomas Bernard编写的UPnP软件。 + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + 网络版本字符串的总长度(%i)超过最大长度(%i)。å‡å°‘任务的数é‡æˆ–大å°ã€‚ + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + 无法绑定到此计算机上的%s。PIVX核心å¯èƒ½å·²ç»åœ¨è¿è¡Œäº†ã€‚ + + + Unable to locate enough Obfuscation denominated funds for this transaction. + 无法为这笔交易找到足够的模糊基金。 + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + 无法找到ä¸ç­‰äºŽ10000 PIV的模糊éžè®¡ä»·åŸºé‡‘æ¥è¿›è¡Œè¿™ç¬”交易。 + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + 无法为这次交易找到ä¸ç­‰äºŽ10000 PIV的足够资金。 + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + 使用å•ç‹¬çš„SOCKS5代ç†é€šè¿‡Toréšè—æœåŠ¡(默认:%s)到达节点 + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + 警告:-最大值tx费用设置得éžå¸¸é«˜!这么大的费用å¯ä»¥åœ¨ä¸€ç¬”交易中支付。 + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + 警告:-支付tx费用设置的éžå¸¸é«˜!这是您å‘é€äº¤æ˜“æ—¶è¦æ”¯ä»˜çš„交易费。 + + + Warning: Peers are being disconnected due time differences. Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + 警告:由于时差,对等连接已断开。 请检查计算机的日期和时间是å¦æ­£ç¡®ï¼ 如果您的时钟错误,PIVX Core将无法正常工作。 + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + 注æ„:请检查您的电脑的日期和时间是å¦æ­£ç¡®ï¼ 如果您的时间设置ä¸æ­£ç¡®ï¼ŒPIVX Core将无法正常工作。 + + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + 警告:网络ä¸å®Œå…¨åŒæ„!一些矿商似乎é‡åˆ°äº†éº»çƒ¦ã€‚ + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + 警告:我们似乎ä¸å®Œå…¨åŒæ„我们端å£!您å¯èƒ½éœ€è¦å‡çº§ï¼Œæˆ–者其他节点å¯èƒ½éœ€è¦å‡çº§ã€‚ + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + 警告:读å–钱包出错。所有键都正确读å–,但交易数æ®æˆ–地å€ç°¿é¡¹å¯èƒ½ä¸¢å¤±æˆ–ä¸æ­£ç¡®ã€‚ + + + Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. + 注æ„:wallet.datæŸå,请æ¢å¤æ•°æ®ï¼åŽŸå§‹wallet.datä¿å­˜ä¸ºé’±åŒ…。{timestamp} .bak in %s; 如果您的余é¢æˆ–交易ä¸æ­£ç¡®ï¼Œæ‚¨åº”该从备份还原。 + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + 从给定的网络掩ç æˆ–IP地å€è¿žæŽ¥çš„白åå•ç«¯å£ã€‚å¯ä»¥å¤šæ¬¡æŒ‡å®šã€‚ + + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway + 白åå•çš„端å£ä¸èƒ½è¢«DoSç¦æ­¢ï¼Œå®ƒä»¬çš„交易一直被中继,å³ä½¿å®ƒä»¬å·²ç»åœ¨å†…存池里é¢ï¼Œè¿™å¯¹ç½‘关很有用 + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + 您必须在é…置中指定一个主节点privkey。有关帮助,请å‚阅文档。 + + + (51472 could be used only on mainnet) + (51472åªå¯åœ¨ç½‘上使用) + + + (default: %s) + (默认: %s) + + + (default: 1) + (默认: 1) + + + (must be 51472 for mainnet) + (主网必须为51472) + + + Accept command line and JSON-RPC commands + 接å—命令行和JSON-RPC命令 + + + Accept connections from outside (default: 1 if no -proxy or -connect) + 接å—外部连接(如果没有-proxy或-connect,默认为1) + + + Accept public REST requests (default: %u) + 接å—公共REST请求(默认:%u) + + + Add a node to connect to and attempt to keep the connection open + 添加è¦è¿žæŽ¥çš„节点并å°è¯•ä¿æŒè¿žæŽ¥æ‰“å¼€ + + + Adding Wrapped Serials supply... + 添加包装的串行供应… + + + Allow DNS lookups for -addnode, -seednode and -connect + å…许DNS查找-addnode, -seednodeå’Œ-connect + + + Always query for peer addresses via DNS lookup (default: %u) + 始终通过DNS查询端å£åœ°å€(默认:%u) + + + Append comment to the user agent string + 将注释附加到用户代ç†å­—符串 + + + Attempt to recover private keys from a corrupt wallet.dat + 试图从æŸå的钱包中æ¢å¤ç§é’¥ + + + Automatically create Tor hidden service (default: %d) + 自动创建Toréšè—æœåŠ¡(默认:%d) + + + Block creation options: + 区å—创建选项: + + + Calculating missing accumulators... + 计算æ¼æŽ‰çš„计算器…… + + + Cannot downgrade wallet + ä¸èƒ½é™çº§é’±åŒ… + + + Cannot resolve -bind address: '%s' + 无法解æž-绑定地å€:'%s' + + + Cannot resolve -externalip address: '%s' + 无法解æž-外部地å€:'%s' + + + Cannot resolve -whitebind address: '%s' + 无法解æž-空白地å€:'%s + + + CoinSpend: failed check + å¸èŠ±è´¹:检查失败 + + + Connect only to the specified node(s) + åªè¿žæŽ¥åˆ°æŒ‡å®šçš„节点() + + + Connect through SOCKS5 proxy + 通过SOCKS5代ç†è¿žæŽ¥ + + + Connect to a node to retrieve peer addresses, and disconnect + 连接到节点以检索端å£åœ°å€ï¼Œç„¶åŽæ–­å¼€è¿žæŽ¥ + + + Connection options: + 连接选项: + + + Copyright (C) 2009-%i The Bitcoin Core Developers + 版æƒæ‰€æœ‰(C) 2009-%i比特å¸æ ¸å¿ƒå¼€å‘者 + + + Copyright (C) 2014-%i The Dash Core Developers + 版æƒæ‰€æœ‰(C) 2014-%i的达世核心开å‘者 + + + Copyright (C) 2015-%i The PIVX Core Developers + 版æƒæ‰€æœ‰(C) 2015-%i PIVX核心开å‘者 + + + Corrupted block database detected + 检测到已æŸå区å—æ•°æ®åº“ + + + Could not parse masternode.conf + 无法解æžä¸»èŠ‚点é…ç½® + + + Couldn't generate the accumulator witness + 无法生æˆç´¯åŠ å™¨è§è¯ + + + Debugging/Testing options: + 调试/测试选项: + + + Delete blockchain folders and resync from scratch + 删除区å—链文件夹,é‡æ–°åŒæ­¥ + + + Disable OS notifications for incoming transactions (default: %u) + ç¦ç”¨OS交易通知(默认:%u) + + + Disable safemode, override a real safe mode event (default: %u) + ç¦ç”¨å®‰å…¨æ¨¡å¼ï¼Œè¦†ç›–一个真正的安全模å¼äº‹ä»¶(默认:%u) + + + Discover own IP address (default: 1 when listening and no -externalip) + å‘现自己的IP地å€(监å¬æ—¶é»˜è®¤ä¸º1,没有-externalip) + + + Do not load the wallet and disable wallet RPC calls + ä¸åŠ è½½é’±åŒ…并ç¦ç”¨é’±åŒ…RPC调用 + + + Do you want to rebuild the block database now? + 现在è¦é‡æ–°æž„建区å—æ•°æ®åº“å—? + + + Done loading + ä¸‹è½½å®Œæˆ + + + Enable automatic Zerocoin minting (0-1, default: %u) + å¯ç”¨è‡ªåŠ¨é›¶å¸é“¸é€ (0-1,默认:%u) + + + Enable precomputation of zPIV spends and stakes (0-1, default %u) + å¯ç”¨é¢„先计算zPIV的花费和加注(0-1,默认%u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + å¯ç”¨<address>å‘布哈希交易(通过SwiftXé”定) + + + Enable publish raw transaction (locked via SwiftX) in <address> + å¯ç”¨<address>å‘布原始交易(通过SwiftXé”定) + + + Enable the client to act as a masternode (0-1, default: %u) + å…许客户端充当主节点(0-1,默认值:%u) + + + Error initializing block database + åˆå§‹åŒ–区å—æ•°æ®åº“出错 + + + Error initializing wallet database environment %s! + åˆå§‹åŒ–钱包数æ®åº“环境%s出错! + + + Error loading block database + 加载区å—æ•°æ®åº“出错 + + + Error loading wallet.dat + 加载钱包.dat错误 + + + Error loading wallet.dat: Wallet corrupted + 加载钱包出错。dat:钱包æŸå + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + 加载的钱包出错。dat: 钱包需è¦æ›´æ–°ç‰ˆæœ¬çš„PIVX核心 + + + Error opening block database + 打开å—æ•°æ®åº“出错 + + + Error reading from database, shutting down. + æ•°æ®åº“读å–出错,正在关闭。 + + + Error writing zerocoinDB to disk + 零å¸ç¼–ç å†™å…¥ç£ç›˜å‡ºé”™ + + + Error + 出错 + + + Error: A fatal internal error occured, see debug.log for details + 错误:出现一个致命的内部错误,详情请å‚阅debug.log + + + Error: Disk space is low! + 错误:ç£ç›˜ç©ºé—´ä¸è¶³! + + + Error: Unsupported argument -tor found, use -onion. + 误:å‘现ä¸æ”¯æŒçš„å‚æ•°-tor,使用-onion。 + + + Error: Wallet locked, unable to create transaction! + 错误:钱包é”定,无法创建交易! + + + Failed to calculate accumulator checkpoint + 计算累加器检查点失败 + + + Failed to listen on any port. Use -listen=0 if you want this. + 监å¬ä»»ä½•ç«¯å£å¤±è´¥ã€‚使用-listen=0å³å¯ã€‚ + + + Failed to parse host:port string + 未能解æž:主机端å£å­—符串 + + + Failed to read block + 读å–区å—失败 + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + 将费用(以PIV/kB为å•ä½)添加到您å‘é€çš„交易中(默认:%s) + + + Force safe mode (default: %u) + 安全模å¼åŽŸåŠ›(默认值:%u) + + + Generate coins (default: %u) + 生æˆå¸(默认值:%u) + + + How many blocks to check at startup (default: %u, 0 = all) + å¯åŠ¨æ—¶æ£€æŸ¥å¤šå°‘区å—(默认值:%u, 0 = 所有) + + + If <category> is not supplied, output all debugging information. + 如果没有æä¾›<category>,则输出所有调试信æ¯ã€‚ + + + Importing... + 正在导入... + + + Imports blocks from external blk000??.dat file + 从外部blk000??.datæ–‡ä»¶å¯¼å…¥åŒºå— + + + Include IP addresses in debug output (default: %u) + 在调试输出中包å«IP地å€(默认:%u) + + + Incorrect or no genesis block found. Wrong datadir for network? + ä¸æ­£ç¡®æˆ–没有找到æºåŒºå—。网络数æ®é”™è¯¯? + + + Information + ä¿¡æ¯ + + + Initialization sanity check failed. PIVX Core is shutting down. + åˆå§‹åŒ–完整性检查失败。PIVX核心快è¦å…³é—­äº†ã€‚ + + + Insufficient funds + 资金ä¸è¶³ + + + Insufficient funds. + 资金ä¸è¶³ + + + Invalid -onion address or hostname: '%s' + 无效的-洋葱地å€æˆ–主机å:'%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + -tx费用最大值fee的无效金é¢=:'%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + -最å°å»¶æ—¶è´¹ç”¨çš„无效金é¢=<amount>:'%s' + + + Invalid amount for -mintxfee=<amount>: '%s' + -最å°tx费用的无效金é¢=:'%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + 支付tx费用金é¢æ— æ•ˆ=:'<amount>%s'(必须至少是%s) + + + Invalid amount for -paytxfee=<amount>: '%s' + 支付tx金é¢æ— æ•ˆ=:'<amount>'%s' + + + Invalid amount for -reservebalance=<amount> + 储蓄金é¢æ— æ•ˆï¼<amount> + + + Invalid amount + 金é¢æ— æ•ˆ + + + Invalid masternodeprivkey. Please see documenation. + 主节点ç§é’¥æ— æ•ˆã€‚请å‚阅文件。 + + + Invalid netmask specified in -whitelist: '%s' + 白åå•ä¸­æŒ‡å®šçš„无效网络掩ç :'%s' + + + Invalid port detected in masternode.conf + 在masternode.confä¸­æ£€æµ‹åˆ°æ— æ•ˆç«¯å£ + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + 自动铸造零å¸çš„百分比(1-100,默认:%u) + + + Recalculating PIV supply... + é‡æ–°è®¡ç®—PIV供应é‡â€¦â€¦ + + + Recalculating minted ZPIV... + é‡æ–°è®¡ç®—铸造ZPIV…… + + + Recalculating spent ZPIV... + é‡æ–°è®¡ç®—ZPIV…… + + + Reindex the PIV and zPIV money supply statistics + é‡æ–°ç´¢å¼•PIVå’ŒzPIVè´§å¸ä¾›åº”ç»Ÿè®¡æ•°æ® + + + Reindexing zerocoin database... + é‡æ–°ç´¢å¼•é›¶å¸æ•°æ®åº“。 + + + Reindexing zerocoin failed + é‡å»ºç´¢å¼•é›¶å¸å¤±è´¥ + + + Selected coins value is less than payment target + 所选择å¸ä»·å€¼ä½ŽäºŽæ”¯ä»˜ç›®æ ‡é‡‘é¢ + + + Support the zerocoin light node protocol (default: %u) + 支æŒé›¶å¸è½»èŠ‚点åè®®(默认:%u) + + + SwiftX options: + SwiftX 选项: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + 这是一个预å‘行测试版本 - 您自己承担风险 - ä¸è¦ç”¨äºŽå•†ä¸šåº”ç”¨ï¼ + + + mints deleted + + 铸造已删除 + + + + mints updated, + 铸造已更新 + + + unconfirmed transactions removed + + 未确认交易已ç»ç§»é™¤ + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + ç¦ç”¨æ‰€æœ‰PIVX特定功能(主节点, 零å¸, SwiftX, budget)(0-1,默认值:%u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + å¯ç”¨SwiftX,显示é”定交易的确认(bool,默认值:%s) + + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + 错误:交易被拒ç»!如果你钱包里的硬å¸å·²ç»èŠ±æŽ‰äº†ï¼Œæ¯”如你用了å¤åˆ¶é’±åŒ…,那么这ç§æƒ…况就会å‘生。 + + + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + 错误:此交易需è¦è‡³å°‘%s的交易费用,因为其数é¢ï¼Œå¤æ‚性,或使用最近收到的资金! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + 错误:ä¸æ”¯æŒå‚æ•°-找到checklevel。Checklevel必须是第4级。 + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + 当最佳区å—å‘生å˜åŒ–且大å°è¶…过时执行命令(cmd中的%s被替æ¢ä¸ºåŒºå—散列,%d是区å—大å°) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + 在æŒæœ‰çš„å¸ä¸­æ‰¾åˆ°å°äºŽæœ€å¤§èŠ±è´¹æ•°çš„å¸é›†å¤±è´¥ + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + 在æžå°‘数情况下,7个硬å¸çš„花费超过了我们的最大å…许交易大å°ï¼Œè¯·é‡è¯•ä½¿ç”¨6ä¸ªæˆ–æ›´å°‘çš„ç¡¬å¸ + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + 自动铸造零å¸çš„首选é¢é¢(1/5/10/50/100/500/1000/5000),0为无å好。默认值: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + 指定自定义备份路径,以添加任何自动zPIV备份的副本。如果将其设置为dir,则æ¯ä¸ªå¤‡ä»½å°†ç”Ÿæˆä¸€ä¸ªæ—¶é—´æˆ³æ–‡ä»¶ã€‚如果设置为文件,将é‡å†™åˆ°è¯¥æ–‡ä»¶çš„æ¯æ¬¡å¤‡ä»½ã€‚如果还设置了备份文件,则会进行4次备份 + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + 指定自定义备份路径去添加任何钱包备份的副本。如果将其设置为dir,则æ¯ä¸ªå¤‡ä»½å°†ç”Ÿæˆä¸€ä¸ªæ—¶é—´æˆ³æ–‡ä»¶ã€‚如果设置为文件,将é‡å†™åˆ°æ¯æ¬¡å¤‡ä»½çš„该文件 + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftXè¦æ±‚输入至少6个确认,您å¯èƒ½éœ€è¦ç­‰å¾…几分钟,然åŽé‡è¯•ã€‚ + + + <category> can be: + <category>å¯ä»¥æ˜¯ï¼š + + + Attempt to force blockchain corruption recovery + å°è¯•å¼ºåˆ¶åŒºå—链è…è´¥æ¢å¤ + + + Cannot create public spend input + ä¸èƒ½åˆ›é€ å…¬å…±èŠ±è´¹æŠ•å…¥ + + + CoinSpend: Accumulator witness does not verify + 投å¸:累加器è§è¯ä¸éªŒè¯ + + + Display the stake modifier calculations in the debug.log file. + 在debug.log文件中显示股æƒä¿®æ”¹å™¨è®¡ç®—。 + + + Display verbose coin stake messages in the debug.log file. + 在debug.log文件中显示详细的投å¸åŠ æ³¨æ¶ˆæ¯ã€‚ + + + Enable publish hash block in <address> + å¯ç”¨<address>å‘å¸ƒæ•£åˆ—åŒºå— + + + Enable publish hash transaction in <address> + å¯ç”¨åœ¨<address>å‘布散列交易 + + + Enable publish raw block in <address> + å¯åœ¨<address>å‘å¸ƒåŽŸå§‹åŒºå— + + + Enable publish raw transaction in <address> + å¯ç”¨åœ¨<address>å‘布原始交易 + + + Enable staking functionality (0-1, default: %u) + å¯ç”¨æ‰“标功能(0-1,默认:%u) + + + Error: A fatal internal error occurred, see debug.log for details + 错误:出现一个致命的内部错误,详情请å‚阅debug.log + + + Error: No valid utxo! + 错误:没有有效的utxo! + + + Failed to create mint + 创建铸造失败 + + + Failed to find Zerocoins in wallet.dat + é’±åŒ…é‡Œæ²¡æ‰¾åˆ°é›¶å¸ + + + Failed to parse public spend + 解æžå…¬å…±èŠ±è´¹å¤±è´¥ + + + Failed to select a zerocoin + 选择零å¸å¤±è´¥ + + + Failed to wipe zerocoinDB + 擦写零å¸DB失败 + + + Failed to write coin serial number into wallet + 硬å¸åºåˆ—å·å†™å…¥é’±åŒ…失败 + + + Keep at most <n> unconnectable transactions in memory (default: %u) + 在内存中ä¿ç•™æœ€å¤š<n>ä¸å¯è¿žæŽ¥çš„交易(默认值:%u) + + + Limit size of signature cache to <n> entries (default: %u) + 将签å缓存的大å°é™åˆ¶ä¸º<n>æ¡ç›®å¤§å°(默认为%u) + + + Line: %d + 行:%d + + + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) + 在<port>(默认:%u或者测试网: %u)监å¬JSON-RPC连接 + + + Listen for connections on <port> (default: %u or testnet: %u) + 在<port>(默认:%u或测试网: %u)监å¬è¿žæŽ¥ + + + Loading addresses... + 正在下载地å€... + + + Loading block index... + 正在下载区å—索引... + + + Loading budget cache... + 正在下载加载预算… + + + Loading masternode cache... + 正在下载主节点缓存... + + + Loading masternode payment cache... + 正在下载主节点支付缓存... + + + Loading sporks... + 正在下载分å‰... + + + Loading wallet... (%3.2f %%) + 站在下载钱包……(%3.2f %%) + + + Loading wallet... + 正在下载钱包…… + + + Location of the auth cookie (default: data dir) + auth cookieçš„ä½ç½®(默认:data dir) + + + Lock masternodes from masternode configuration file (default: %u) + 从主节点é…置文件中é”定主节点(默认:%u) + + + Lookup(): Invalid -proxy address or hostname: '%s' + 查找():无效-代ç†åœ°å€æˆ–主机å:'%s' + + + Maintain at most <n> connections to peers (default: %u) + 最多<n>ä¿æŒä¸Žç«¯å£è¿žæŽ¥(默认值:%u) + + + Masternode options: + 主节点选项: + + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + æ¯ä¸ªè¿žæŽ¥æœ€å¤§æŽ¥æ”¶ç¼“冲区,<n>*1000字节(默认:%u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + æ¯ä¸ªè¿žæŽ¥æœ€å¤§å‘é€ç¼“冲区,<n>*1000字节(默认:%u) + + + Mint did not make it into blockchain + 没有进入区å—链铸造 + + + Need to specify a port with -whitebind: '%s' + 需è¦ä½¿ç”¨-whitebind指定端å£:'%s' + + + Node relay options: + 节点中继选择: + + + Not enough file descriptors available. + å¯ç”¨çš„文件æ述符ä¸è¶³ + + + Number of automatic wallet backups (default: 10) + 钱包自动备份次数(默认为10次) + + + Number of custom location backups to retain (default: %d) + è¦ä¿ç•™çš„自定义ä½ç½®å¤‡ä»½çš„æ•°é‡(默认值:%d) + + + Only accept block chain matching built-in checkpoints (default: %u) + åªæŽ¥å—与内置检查点匹é…的区å—链(默认:%u) + + + Only connect to nodes in network <net> (ipv4, ipv6 or onion) + åªè¿žæŽ¥ç½‘络中的节点(ipv4ã€ipv6或onion) + + + Options: + 选项: + + + Password for JSON-RPC connections + SON-RPCè¿žæŽ¥çš„å¯†ç  + + + Unable to find transaction containing mint %s + 无法找到包å«é“¸é€  %s的交易 + + + Unable to find transaction containing mint, txHash: %s + 无法找到包å«é“¸é€ , tx哈希: %s的交易 + + + Use block spam filter (default: %u) + 使用垃圾邮件过滤器å—(默认:%u) + + + could not get lock on cs_spendcache + 无法é”定cs_spendcache + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid():无效-代ç†åœ°å€æˆ–主机å:'%s' + + + Preparing for resync... + 准备é‡æ–°åŒæ­¥â€¦â€¦ + + + Need destination or change address because change is not exact + 需è¦ç›®çš„地或更改地å€ï¼Œå› ä¸ºæ›´æ”¹ä¸å‡†ç¡® + + + Prepend debug output with timestamp (default: %u) + 在调试输出å‰åŠ ä¸Šæ—¶é—´æˆ³(默认:%u) + + + Print version and exit + 打å°ç‰ˆæœ¬å¹¶é€€å‡º + + + Pubcoin not found in mint tx + 公共å¸æ²¡æœ‰å‘现在铸造tx + + + RPC server options: + RPCæœåŠ¡å™¨é€‰é¡¹: + + + Randomly drop 1 of every <n> network messages + éšæœºåˆ é™¤1æ¯æ¡<n>ç½‘ç»œæ¶ˆæ¯ + + + Randomly fuzz 1 of every <n> network messages + æ¯ä¸ª<n>网络消æ¯çš„éšæœºæ¨¡ç³Š1 + + + Rebuild block chain index from current blk000??.dat files + 从当å‰çš„blk000??.dat文件é‡å»ºå—链索引。 + + + Receive and display P2P network alerts (default: %u) + 接收和显示P2P网络警报(默认:%u) + + + Reindex the accumulator database + é‡æ–°ç´¢å¼•ç´¯åŠ å™¨æ•°æ®åº“ + + + Relay and mine data carrier transactions (default: %u) + 中继和铸造数æ®è½½ä½“交易(默认:%u) + + + Relay non-P2SH multisig (default: %u) + éžp2sh多é‡ç­¾å中继器(默认值:%u) + + + Rescan the block chain for missing wallet transactions + é‡æ–°æ‰«æ丢失钱包交易的区å—链 + + + Rescanning... + é‡æ–°æ‰«æ…… + + + ResetMintZerocoin finished: + é‡ç½®é“¸é€ é›¶å¸å®Œæˆ: + + + ResetSpentZerocoin finished: + é‡ç½®èŠ±è´¹é›¶å¸å®Œæˆï¼š + + + Run a thread to flush wallet periodically (default: %u) + è¿è¡Œä¸€ä¸ªçº¿ç¨‹å®šæœŸåˆ·æ–°é’±åŒ…(默认:%u) + + + Run in the background as a daemon and accept commands + 作为守护进程在åŽå°è¿è¡Œå¹¶æŽ¥å—命令 + + + Send transactions as zero-fee transactions if possible (default: %u) + å¯ä»¥çš„è¯ï¼Œä»¥é›¶è´¹ç”¨æ–¹å¼å‘é€äº¤æ˜“(默认:%u) + + + Session timed out. + 会è¯è¶…时。 + + + Set database cache size in megabytes (%d to %d, default: %d) + 设置数æ®åº“缓存大å°(从%d到%d,默认为%d) + + + Set external address:port to get to this masternode (example: %s) + 设置外部地å€:到达这个主节点的端å£(例如:%s) + + + Set key pool size to <n> (default: %u) + 将密钥池大å°è®¾ç½®ä¸º<n>(默认值:%u) + + + Set maximum block size in bytes (default: %d) + 以字节为å•ä½è®¾ç½®æœ€å¤§åŒºå—大å°(默认:%d) + + + Set minimum block size in bytes (default: %u) + 以字节为å•ä½è®¾ç½®æœ€å°åŒºå—大å°(默认: %u) + + + Set the Maximum reorg depth (default: %u) + 设置最大reorg深度(默认:%u) + + + Set the masternode private key + 设置主节点ç§é’¥ + + + Set the number of threads to service RPC calls (default: %d) + 设置æœåŠ¡RPC调用的线程数(默认:%d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + 在wallet db环境中设置DB_PRIVATE标志(默认值:%u) + + + Show all debugging options (usage: --help -help-debug) + 显示所有调试选项(用法:——help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + 客户端å¯åŠ¨æ—¶æ”¶ç¼©debug.log文件(没有-debug时默认为1) + + + Signing timed out. + 签署超时。 + + + Signing transaction failed + 签署交易失败 + + + Specify configuration file (default: %s) + 指定é…置文件(默认:%s) + + + Specify connection timeout in milliseconds (minimum: 1, default: %d) + 以毫秒为å•ä½æŒ‡å®šè¿žæŽ¥è¶…æ—¶(最å°å€¼:1,默认值:%d) + + + Specify data directory + 指定数æ®ç›®å½• + + + Specify masternode configuration file (default: %s) + 指定主节点é…置文件(默认:%s) + + + Specify pid file (default: %s) + 指定pid文件(默认值:%s) + + + Specify wallet file (within data directory) + 指定钱包文件(在数æ®ç›®å½•ä¸­) + + + Specify your own public address + æŒ‡å®šæ‚¨è‡ªå·±çš„å…¬å…±åœ°å€ + + + Spend Valid + 花费有效 + + + Spend unconfirmed change when sending transactions (default: %u) + å‘é€äº¤æ˜“时花费未确认更改(默认值:%u) + + + Staking options: + 加注选项: + + + Stop running after importing blocks from disk (default: %u) + 从ç£ç›˜å¯¼å…¥åŒºå—åŽåœæ­¢è¿è¡Œ(默认值:%u) + + + Synchronization failed + åŒæ­¥å¤±è´¥ + + + Synchronization finished + åŒæ­¥å·²å®Œæˆ + + + Synchronization pending... + åŒæ­¥ç­‰å¾……… + + + Synchronizing budgets... + 正在åŒæ­¥é¢„ç®—... + + + Synchronizing masternode winners... + 正在åŒæ­¥ä¸»èŠ‚点赢家... + + + Synchronizing masternodes... + 正在åŒæ­¥ä¸»èŠ‚点... + + + Synchronizing sporks... + 正在åŒæ­¥åˆ†å‰... + + + Syncing zPIV wallet... + 正在åŒæ­¥zPIV钱包…… + + + The coin spend has been used + å¸èŠ±è´¹å·²ç»ç”¨å®Œäº† + + + The transaction did not verify + äº¤æ˜“æ²¡æœ‰å¾—åˆ°éªŒè¯ + + + This help message + è¿™ä¸ªå¸®åŠ©ä¿¡æ¯ + + + This is experimental software. + 这是一个实验软件。 + + + This is intended for regression testing tools and app development. + 用于回归测试工具和应用程åºå¼€å‘。 + + + Threshold for disconnecting misbehaving peers (default: %u) + 断开错误的端å£çš„阈值(默认值:%u) + + + Too many spends needed + 太多花费被需求 + + + Tor control port password (default: empty) + Tor控制端å£å¯†ç (默认:空) + + + Tor control port to use if onion listening enabled (default: %s) + 洋葱监å¬å¯ç”¨æ—¶ä½¿ç”¨çš„Tor控制端å£(默认:%s) + + + Transaction Created + 交易已创建 + + + Transaction Mint Started + 交易铸造已ç»å¼€å§‹ + + + Transaction amount too small + 交易金é¢è¿‡å° + + + Transaction amounts must be positive + 交易金é¢å¿…须为正 + + + Transaction too large for fee policy + 对于费用政策æ¥è¯´ï¼Œäº¤æ˜“太大 + + + Transaction too large + 交易过大 + + + Trying to spend an already spent serial #, try again. + å°è¯•ä½¿ç”¨å·²ä½¿ç”¨çš„åºåˆ—å·ï¼Œå†è¯•ä¸€æ¬¡ã€‚ + + + Unable to bind to %s on this computer (bind returned error %s) + 无法绑定到此计算机上的%s(绑定返回的错误%s) + + + Unable to generate initial key + 无法生æˆåˆå§‹å¯†é’¥ + + + Unable to sign spork message, wrong key? + 无法签署的分å‰æ¶ˆæ¯ï¼Œé”™è¯¯çš„关键? + + + Unable to start HTTP server. See debug log for details. + 无法å¯åŠ¨HTTPæœåŠ¡å™¨ã€‚有关详细信æ¯ï¼Œè¯·å‚阅调试日志。 + + + Unknown network specified in -onlynet: '%s' + 在-onlynet中指定的未知网络:'%s' + + + Upgrade wallet to latest format + å‡çº§é’±åŒ…åˆ°æœ€æ–°çš„æ ¼å¼ + + + Use UPnP to map the listening port (default: %u) + 使用UPnP映射监å¬ç«¯å£(默认:%u) + + + Use UPnP to map the listening port (default: 1 when listening) + 使用UPnP映射监å¬ç«¯å£(监å¬æ—¶é»˜è®¤ä¸º1) + + + Use a custom max chain reorganization depth (default: %u) + 使用自定义最大链é‡ç»„深度(默认:%u) + + + Use the test network + 使用测试网络 + + + User Agent comment (%s) contains unsafe characters. + 用户代ç†æ³¨é‡Š(%s)包å«ä¸å®‰å…¨å­—符 + + + Username for JSON-RPC connections + JSON-RPC连接的用户å + + + Value is below the smallest available denomination (= 1) of zPIV + 值å°äºŽzPIV的最å°å¯ç”¨é¢é¢(= 1) + + + Verifying blocks... + 正在验è¯åŒºå—…… + + + Verifying wallet... + 正在验è¯é’±åŒ……… + + + Wallet %s resides outside data directory %s + 钱包%s驻留在数æ®ç›®å½•%s之外 + + + Wallet needed to be rewritten: restart PIVX Core to complete + 钱包需è¦é‡å†™:é‡æ–°å¯åŠ¨PIVXæ ¸å¿ƒå®Œæˆ + + + Wallet options: + 钱包选项: + + + Wallet window title + 钱包窗å£æ ‡é¢˜ + + + Warning + æ³¨æ„ + + + Warning: This version is obsolete, upgrade required! + 警告:此版本已过时,需è¦å‡çº§! + + + Warning: Unsupported argument -benchmark ignored, use -debug=bench. + 警告:ä¸æ”¯æŒçš„argument -benchmark 被忽略,使用-debug=bench。 + + + Warning: Unsupported argument -debugnet ignored, use -debug=net. + 警告:ä¸æ”¯æŒçš„å‚æ•°-debugnet被忽略,使用-debug=net。 + + + You don't have enough Zerocoins in your wallet + ä½ çš„é’±åŒ…é‡Œæ²¡æœ‰è¶³å¤Ÿçš„é›¶å¸ + + + You need to rebuild the database using -reindex to change -txindex + 您需è¦ä½¿ç”¨-reindexæ¥æ›´æ”¹-txindexæ¥é‡æ–°æž„建数æ®åº“ + + + Zapping all transactions from wallet... + 从钱包中删除所有交易… + + + ZeroMQ notification options: + ZeroMQ通知选项: + + + Zerocoin options: + 零å¸é€‰é¡¹ï¼š + + + on startup + å¯åŠ¨ + + + wallet.dat corrupt, salvage failed + wallet.dat æŸå,修å¤å¤±è´¥ + + + + send + + Form + æ¥è‡ª + + + Send + å‘é€ + + + TextLabel + 文本标签 + + + PushButton + 按钮 + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_zh_TW.ts b/src/qt/locale/pivx_zh_TW.ts new file mode 100644 index 0000000..b624bb4 --- /dev/null +++ b/src/qt/locale/pivx_zh_TW.ts @@ -0,0 +1,741 @@ + + + AddNewAddressDialog + + Address + ä½å€ + + + + AddNewContactDialog + + TextLabel + 文字標籤 + + + + AddressBookPage + + Right-click to edit address or label + 點å³éµä¾†ä¿®æ”¹ä½å€æˆ–標記 + + + Create a new address + 產生新ä½å€ + + + &New + &新增 + + + Copy the currently selected address to the system clipboard + 複製目å‰é¸å–çš„ä½å€åˆ°ç³»çµ±å‰ªè²¼ç°¿ + + + &Copy + &刪除 + + + Delete the currently selected address from the list + 刪除列表中已é¸æ“‡çš„ä½å€ + + + &Delete + &刪除 + + + Export the data in the current tab to a file + 匯出目å‰é¢æ¿ä¸­çš„資料 + + + &Export + &匯出 + + + C&lose + &關閉 + + + Choose the address to send coins to + é¸æ“‡è¦åŒ¯å‡ºPIVX幣的ä½å€ + + + Choose the address to receive coins with + é¸æ“‡è¦æŽ¥æ”¶PIVX幣的ä½å€ + + + C&hoose + &é¸å– + + + Sending addresses + é€å‡ºçš„ä½å€ + + + Receiving addresses + 接收的ä½å€ + + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + 這是你用來付款的 PIVX ä½å€, é€å‡ºå‰, 請務必確èªé‡‘é¡åŠæŽ¥æ”¶ä½å€æ˜¯å¦æ­£ç¢º. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + 這是你用來接收款項的 PIVX ä½å€, 建議你æ¯æ¬¡ä»˜æ¬¾éƒ½ä½¿ç”¨æ–°çš„ä½å€. + + + &Copy Address + &æ‹·è²ä½å€ + + + Copy &Label + 複製標記 + + + &Edit + &編輯 + + + Export Address List + 匯出ä½å€åˆ—表 + + + Comma separated file (*.csv) + 逗號å€éš”資料檔 (*.csv) + + + Exporting Failed + 資料匯出有誤 + + + There was an error trying to save the address list to %1. Please try again. + 儲存ä½å€åˆ—表到 %1 時, 發生錯誤, è«‹å†è©¦ä¸€æ¬¡. + + + + AddressLabelRow + + + AddressTableModel + + Label + 標記 + + + Address + ä½å€ + + + (no label) + (沒有標記) + + + + AddressesWidget + + TextLabel + 文字標籤 + + + + AskPassphraseDialog + + Passphrase Dialog + 密碼輸入欄 + + + TextLabel + 文字標籤 + + + Encrypt wallet + 錢包加密 + + + This operation needs your wallet passphrase to unlock the wallet. + 這項æ“作需è¦å…ˆç”¨å¯†ç¢¼è§£éŽ–你的錢包 + + + Unlock wallet + 錢包解鎖 + + + This operation needs your wallet passphrase to decrypt the wallet. + 這項æ“作需è¦ä½ çš„密碼來解密錢包 + + + Decrypt wallet + 錢包解密 + + + Change passphrase + 修改密碼 + + + Enter the old and new passphrase to the wallet. + 請分別輸入錢包的舊密碼與新密碼 + + + Confirm wallet encryption + 錢包確èªåŠ å¯† + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX ç¾åœ¨æœƒé—œé–‰ç¨‹å¼ä¾†è™•ç†åŠ å¯†æµç¨‹, 請注æ„, 僅僅是加密你的錢包並ä¸èƒ½å®Œå…¨ä¿è­·ä½ çš„ PIV 幣被å¯ç–‘軟體或病毒å·èµ°çš„風險. + + + Are you sure you wish to encrypt your wallet? + 確定è¦åŠ å¯†ä½ çš„錢包? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + 請注æ„: 如果你加密了你的錢包但是å»å¿˜è¨˜ä½ è¨­å®šçš„密碼, <b>你將會失去錢包裡的錢(PIV)</b>! + + + Wallet encrypted + 錢包已加密 + + + IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. + é‡è¦: 任何之å‰ä½ æ‰€å‚™ä»½çš„舊錢包檔案應該使用新產生並且有加密的錢包檔案å–代, 為了安全起見, 當你開始使用新錢包後, 您之å‰æ‰€å‚™ä»½çš„未加密舊錢包將會失效. + + + Wallet encryption failed + 錢包加密失敗 + + + Wallet encryption failed due to an internal error. Your wallet was not encrypted. + 錢包加密失敗因為程å¼ä¸Šçš„錯誤, 你的錢包尚未被加密. + + + The supplied passphrases do not match. + 您輸入的密碼ä¸ç¬¦. + + + Wallet unlock failed + 錢包解鎖失敗 + + + The passphrase entered for the wallet decryption was incorrect. + 您輸入的密碼錯誤. + + + Wallet decryption failed + 錢包解密失敗 + + + Wallet passphrase was successfully changed. + 錢包密碼修改æˆåŠŸ + + + Warning: The Caps Lock key is on! + 注æ„: Caps Lock(大寫éµ) 是開啟的. + + + + BanTableModel + + + BlockExplorer + + TextLabel + 文字標籤 + + + + CSRow + + + ClientModel + + + CoinControlDialog + + (no label) + (沒有標記) + + + + CoinControlPivWidget + + TextLabel + 文字標籤 + + + Label + 標記 + + + Address + ä½å€ + + + + ColdStakingWidget + + TextLabel + 文字標籤 + + + + ContactDropdownRow + + + DashboardWidget + + TextLabel + 文字標籤 + + + + DefaultDialog + + + DenomGenerationDialog + + + EditAddressDialog + + + ExpandableButton + + + FreespaceChecker + + + GovernancePage + + + HelpMessageDialog + + PIVX Core + PIVX Core + + + + Intro + + PIVX Core + PIVX Core + + + + LoadingDialog + + TextLabel + 文字標籤 + + + + LockUnlock + + + MNRow + + + MasterNodeWizardDialog + + Address + ä½å€ + + + + MasterNodesWidget + + TextLabel + 文字標籤 + + + + MnInfoDialog + + + MyAddressRow + + + NavMenuWidget + + + OpenURIDialog + + TextLabel + 文字標籤 + + + + OptionButton + + TextLabel + 文字標籤 + + + + OptionsDialog + + + PIVXGUI + + PIVX Core + PIVX Core + + + Wallet + 錢包 + + + Node + 節點 + + + &Show / Hide + &顯示 / éš±è— + + + Show or hide the main Window + 顯示或隱è—主視窗 + + + E&xit + &退出 + + + Quit application + é—œé–‰ç¨‹å¼ + + + PIVX Core client + PIVX Core 客戶端 + + + + PWidget + + + PaymentServer + + + PeerTableModel + + + PrivacyWidget + + TextLabel + 文字標籤 + + + + ProposalFrame + + + QObject + + PIVX Core + PIVX Core + + + + RPCConsole + + &Information + &資訊 + + + + ReceiveDialog + + + ReceiveWidget + + TextLabel + 文字標籤 + + + + RecentRequestsTableModel + + Label + 標記 + + + Address + ä½å€ + + + (no label) + (沒有標記) + + + + RequestDialog + + TextLabel + 文字標籤 + + + Label + 標記 + + + + SendChangeAddressDialog + + + SendCustomFeeDialog + + + SendMultiRow + + TextLabel + 文字標籤 + + + + SendWidget + + + SettingsBackupWallet + + TextLabel + 文字標籤 + + + + SettingsBitToolWidget + + TextLabel + 文字標籤 + + + Import Address + 匯入ä½å€: + + + The entered passphrase is invalid. + 輸入的密碼ä¸ç¬¦åˆè¦å®š + + + Allowed: 0-9,a-z,A-Z, + 僅å…許: 0-9,a-z,A-Z + + + The entered address is invalid. + 輸入的ä½å€ç„¡æ•ˆ + + + Please check the address and try again. + 請檢查ä½å€æ˜¯å¦æ­£ç¢º + + + The entered address does not refer to a key. + 所輸入的ä½å€ä¸¦æ²’有é…å°çš„鑰匙 + + + Wallet unlock was cancelled. + 錢包上鎖已å–消 + + + Private key for the entered address is not available. + 您的ç§é‘°å°è¼¸å…¥çš„ä½å€ç„¡æ•ˆ + + + Failed to decrypt. + 解密失敗 + + + Please check the key and passphrase and try again. + 請確èªéŒ¢åŒ…ç§é‘°çš„密碼是正確的. + + + Data Not Valid. + 資料無效 + + + Please try again. + è«‹å†è©¦ä¸€æ¬¡ + + + Please wait while key is imported + 鑰匙正在匯入中, è«‹ç¨å€™ + + + + SettingsConsoleWidget + + TextLabel + 文字標籤 + + + + SettingsDisplayOptionsWidget + + TextLabel + 文字標籤 + + + + SettingsFaqWidget + + TextLabel + 文字標籤 + + + + SettingsInformationWidget + + TextLabel + 文字標籤 + + + + SettingsMainOptionsWidget + + TextLabel + 文字標籤 + + + + SettingsMultisendDialog + + TextLabel + 文字標籤 + + + + SettingsMultisendWidget + + TextLabel + 文字標籤 + + + + SettingsSignMessageWidgets + + TextLabel + 文字標籤 + + + The entered address is invalid. + 輸入的ä½å€ç„¡æ•ˆ + + + Please check the address and try again. + 請檢查ä½å€æ˜¯å¦æ­£ç¢º + + + The entered address does not refer to a key. + 所輸入的ä½å€ä¸¦æ²’有é…å°çš„鑰匙 + + + Wallet unlock was cancelled. + 錢包上鎖已å–消 + + + Private key for the entered address is not available. + 您的ç§é‘°å°è¼¸å…¥çš„ä½å€ç„¡æ•ˆ + + + + SettingsWalletOptionsWidget + + TextLabel + 文字標籤 + + + Wallet + 錢包 + + + + SettingsWalletRepairWidget + + TextLabel + 文字標籤 + + + + SettingsWidget + + TextLabel + 文字標籤 + + + Wallet + 錢包 + + + + ShutdownWindow + + + SnackBar + + + Splash + + PIVX Core + PIVX Core + + + + SplashScreen + + PIVX Core + PIVX Core + + + + TooltipMenu + + + TopBar + + + TrafficGraphWidget + + + TransactionDesc + + + TransactionTableModel + + Address + ä½å€ + + + + TxDetailDialog + + TextLabel + 文字標籤 + + + + TxRow + + + WalletModel + + + WalletPasswordDialog + + TextLabel + 文字標籤 + + + + WelcomeContentWidget + + + ZPivControlDialog + + + pivx-core + + + send + + TextLabel + 文字標籤 + + + \ No newline at end of file diff --git a/src/qt/pivx.cpp b/src/qt/pivx.cpp new file mode 100644 index 0000000..b1f39df --- /dev/null +++ b/src/qt/pivx.cpp @@ -0,0 +1,695 @@ +// Copyright (c) 2009-2014 The Bitcoin developers +// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2015-2019 The PIVX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#if defined(HAVE_CONFIG_H) +#include "config/pivx-config.h" +#endif + +#include "qt/pivx/pivxgui.h" + +#include "clientmodel.h" +#include "guiconstants.h" +#include "guiutil.h" +#include "intro.h" +#include "net.h" +#include "networkstyle.h" +#include "optionsmodel.h" +#include "qt/pivx/splash.h" +#include "qt/pivx/welcomecontentwidget.h" +#include "utilitydialog.h" +#include "winshutdownmonitor.h" + +#ifdef ENABLE_WALLET +#include "paymentserver.h" +#include "walletmodel.h" +#endif +#include "masternodeconfig.h" + +#include "init.h" +#include "main.h" +#include "rpc/server.h" +#include "guiinterface.h" +#include "util.h" + +#ifdef ENABLE_WALLET +#include "wallet/wallet.h" +#endif + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(QT_STATICPLUGIN) +#include +#if QT_VERSION < 0x050400 +Q_IMPORT_PLUGIN(AccessibleFactory) +#endif +#if defined(QT_QPA_PLATFORM_XCB) +Q_IMPORT_PLUGIN(QXcbIntegrationPlugin); +#elif defined(QT_QPA_PLATFORM_WINDOWS) +Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin); +#elif defined(QT_QPA_PLATFORM_COCOA) +Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin); +#endif +Q_IMPORT_PLUGIN(QSvgPlugin); +Q_IMPORT_PLUGIN(QSvgIconPlugin); +#endif + +// Declare meta types used for QMetaObject::invokeMethod +Q_DECLARE_METATYPE(bool*) +Q_DECLARE_METATYPE(CAmount) + +static void InitMessage(const std::string& message) +{ + LogPrintf("init message: %s\n", message); +} + +/* + Translate string to current locale using Qt. + */ +static std::string Translate(const char* psz) +{ + return QCoreApplication::translate("pivx-core", psz).toStdString(); +} + +static QString GetLangTerritory() +{ + QSettings settings; + // Get desired locale (e.g. "de_DE") + // 1) System default language + QString lang_territory = QLocale::system().name(); + // 2) Language from QSettings + QString lang_territory_qsettings = settings.value("language", "").toString(); + if (!lang_territory_qsettings.isEmpty()) + lang_territory = lang_territory_qsettings; + // 3) -lang command line argument + lang_territory = QString::fromStdString(GetArg("-lang", lang_territory.toStdString())); + return lang_territory; +} + +/** Set up translations */ +static void initTranslations(QTranslator& qtTranslatorBase, QTranslator& qtTranslator, QTranslator& translatorBase, QTranslator& translator) +{ + // Remove old translators + QApplication::removeTranslator(&qtTranslatorBase); + QApplication::removeTranslator(&qtTranslator); + QApplication::removeTranslator(&translatorBase); + QApplication::removeTranslator(&translator); + + // Get desired locale (e.g. "de_DE") + // 1) System default language + QString lang_territory = GetLangTerritory(); + + // Convert to "de" only by truncating "_DE" + QString lang = lang_territory; + lang.truncate(lang_territory.lastIndexOf('_')); + + // Load language files for configured locale: + // - First load the translator for the base language, without territory + // - Then load the more specific locale translator + + // Load e.g. qt_de.qm + if (qtTranslatorBase.load("qt_" + lang, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) + QApplication::installTranslator(&qtTranslatorBase); + + // Load e.g. qt_de_DE.qm + if (qtTranslator.load("qt_" + lang_territory, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) + QApplication::installTranslator(&qtTranslator); + + // Load e.g. bitcoin_de.qm (shortcut "de" needs to be defined in pivx.qrc) + if (translatorBase.load(lang, ":/translations/")) + QApplication::installTranslator(&translatorBase); + + // Load e.g. bitcoin_de_DE.qm (shortcut "de_DE" needs to be defined in pivx.qrc) + if (translator.load(lang_territory, ":/translations/")) + QApplication::installTranslator(&translator); +} + +/* qDebug() message handler --> debug.log */ +void DebugMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg) +{ + Q_UNUSED(context); + const char* category = (type == QtDebugMsg) ? "qt" : NULL; + LogPrint(category, "GUI: %s\n", msg.toStdString()); +} + +/** Class encapsulating PIVX Core startup and shutdown. + * Allows running startup and shutdown in a different thread from the UI thread. + */ +class BitcoinCore : public QObject +{ + Q_OBJECT +public: + explicit BitcoinCore(); + +public slots: + void initialize(); + void shutdown(); + void restart(QStringList args); + +signals: + void initializeResult(int retval); + void shutdownResult(int retval); + void runawayException(const QString& message); + +private: + /// Flag indicating a restart + bool execute_restart; + + /// Pass fatal exception message to UI thread + void handleRunawayException(const std::exception* e); +}; + +/** Main PIVX application object */ +class BitcoinApplication : public QApplication +{ + Q_OBJECT +public: + explicit BitcoinApplication(int& argc, char** argv); + ~BitcoinApplication(); + +#ifdef ENABLE_WALLET + /// Create payment server + void createPaymentServer(); +#endif + /// Create options model + void createOptionsModel(); + /// Create main window + void createWindow(const NetworkStyle* networkStyle); + /// Create splash screen + void createSplashScreen(const NetworkStyle* networkStyle); + + /// Create tutorial screen + bool createTutorialScreen(); + + /// Request core initialization + void requestInitialize(); + /// Request core shutdown + void requestShutdown(); + + /// Get process return value + int getReturnValue() { return returnValue; } + + /// Get window identifier of QMainWindow (PIVXGUI) + WId getMainWinId() const; + +public slots: + void initializeResult(int retval); + void shutdownResult(int retval); + /// Handle runaway exceptions. Shows a message box with the problem and quits the program. + void handleRunawayException(const QString& message); + void updateTranslation(); + +signals: + void requestedInitialize(); + void requestedRestart(QStringList args); + void requestedShutdown(); + void stopThread(); + void splashFinished(QWidget* window); + +private: + QThread* coreThread; + OptionsModel* optionsModel; + ClientModel* clientModel; + PIVXGUI* window; + QTimer* pollShutdownTimer; +#ifdef ENABLE_WALLET + PaymentServer* paymentServer; + WalletModel* walletModel; +#endif + int returnValue; + QTranslator qtTranslatorBase, qtTranslator, translatorBase, translator; + + void startThread(); +}; + +#include "pivx.moc" + +BitcoinCore::BitcoinCore() : QObject() +{ +} + +void BitcoinCore::handleRunawayException(const std::exception* e) +{ + PrintExceptionContinue(e, "Runaway exception"); + emit runawayException(QString::fromStdString(strMiscWarning)); +} + +void BitcoinCore::initialize() +{ + execute_restart = true; + + try { + qDebug() << __func__ << ": Running AppInit2 in thread"; + int rv = AppInit2(); + emit initializeResult(rv); + } catch (const std::exception& e) { + handleRunawayException(&e); + } catch (...) { + handleRunawayException(NULL); + } +} + +void BitcoinCore::restart(QStringList args) +{ + if (execute_restart) { // Only restart 1x, no matter how often a user clicks on a restart-button + execute_restart = false; + try { + qDebug() << __func__ << ": Running Restart in thread"; + Interrupt(); + PrepareShutdown(); + qDebug() << __func__ << ": Shutdown finished"; + emit shutdownResult(1); + CExplicitNetCleanup::callCleanup(); + QProcess::startDetached(QApplication::applicationFilePath(), args); + qDebug() << __func__ << ": Restart initiated..."; + QApplication::quit(); + } catch (const std::exception& e) { + handleRunawayException(&e); + } catch (...) { + handleRunawayException(NULL); + } + } +} + +void BitcoinCore::shutdown() +{ + try { + qDebug() << __func__ << ": Running Shutdown in thread"; + Interrupt(); + Shutdown(); + qDebug() << __func__ << ": Shutdown finished"; + emit shutdownResult(1); + } catch (const std::exception& e) { + handleRunawayException(&e); + } catch (...) { + handleRunawayException(NULL); + } +} + +BitcoinApplication::BitcoinApplication(int& argc, char** argv) : QApplication(argc, argv), + coreThread(0), + optionsModel(0), + clientModel(0), + window(0), + pollShutdownTimer(0), +#ifdef ENABLE_WALLET + paymentServer(0), + walletModel(0), +#endif + returnValue(0) +{ + setQuitOnLastWindowClosed(false); +} + +BitcoinApplication::~BitcoinApplication() +{ + if (coreThread) { + qDebug() << __func__ << ": Stopping thread"; + emit stopThread(); + coreThread->wait(); + qDebug() << __func__ << ": Stopped thread"; + } + + delete window; + window = 0; +#ifdef ENABLE_WALLET + delete paymentServer; + paymentServer = 0; +#endif + // Delete Qt-settings if user clicked on "Reset Options" + QSettings settings; + if (optionsModel && optionsModel->resetSettings) { + settings.clear(); + settings.sync(); + } + delete optionsModel; + optionsModel = 0; +} + +#ifdef ENABLE_WALLET +void BitcoinApplication::createPaymentServer() +{ + paymentServer = new PaymentServer(this); +} +#endif + +void BitcoinApplication::createOptionsModel() +{ + optionsModel = new OptionsModel(); +} + +void BitcoinApplication::createWindow(const NetworkStyle* networkStyle) +{ + window = new PIVXGUI(networkStyle, 0); + + pollShutdownTimer = new QTimer(window); + connect(pollShutdownTimer, SIGNAL(timeout()), window, SLOT(detectShutdown())); + pollShutdownTimer->start(200); +} + +void BitcoinApplication::createSplashScreen(const NetworkStyle* networkStyle) +{ + Splash* splash = new Splash(0, networkStyle); + // We don't hold a direct pointer to the splash screen after creation, so use + // Qt::WA_DeleteOnClose to make sure that the window will be deleted eventually. + splash->setAttribute(Qt::WA_DeleteOnClose); + splash->show(); + connect(this, SIGNAL(splashFinished(QWidget*)), splash, SLOT(slotFinish(QWidget*))); +} + +bool BitcoinApplication::createTutorialScreen() +{ + WelcomeContentWidget* widget = new WelcomeContentWidget(); + + connect(widget, &WelcomeContentWidget::onLanguageSelected, [this](){ + updateTranslation(); + }); + + widget->exec(); + bool ret = widget->isOk; + widget->deleteLater(); + return ret; +} + +void BitcoinApplication::updateTranslation(){ + // Re-initialize translations after change them + initTranslations(this->qtTranslatorBase, this->qtTranslator, this->translatorBase, this->translator); +} + +void BitcoinApplication::startThread() +{ + if (coreThread) + return; + coreThread = new QThread(this); + BitcoinCore* executor = new BitcoinCore(); + executor->moveToThread(coreThread); + + /* communication to and from thread */ + connect(executor, SIGNAL(initializeResult(int)), this, SLOT(initializeResult(int))); + connect(executor, SIGNAL(shutdownResult(int)), this, SLOT(shutdownResult(int))); + connect(executor, SIGNAL(runawayException(QString)), this, SLOT(handleRunawayException(QString))); + connect(this, SIGNAL(requestedInitialize()), executor, SLOT(initialize())); + connect(this, SIGNAL(requestedShutdown()), executor, SLOT(shutdown())); + connect(window, SIGNAL(requestedRestart(QStringList)), executor, SLOT(restart(QStringList))); + /* make sure executor object is deleted in its own thread */ + connect(this, SIGNAL(stopThread()), executor, SLOT(deleteLater())); + connect(this, SIGNAL(stopThread()), coreThread, SLOT(quit())); + + coreThread->start(); +} + +void BitcoinApplication::requestInitialize() +{ + qDebug() << __func__ << ": Requesting initialize"; + startThread(); + emit requestedInitialize(); +} + +void BitcoinApplication::requestShutdown() +{ + qDebug() << __func__ << ": Requesting shutdown"; + startThread(); + window->hide(); + window->setClientModel(0); + pollShutdownTimer->stop(); + +#ifdef ENABLE_WALLET + window->removeAllWallets(); + delete walletModel; + walletModel = 0; +#endif + delete clientModel; + clientModel = 0; + + // Show a simple window indicating shutdown status + ShutdownWindow::showShutdownWindow(window); + + // Request shutdown from core thread + emit requestedShutdown(); +} + +void BitcoinApplication::initializeResult(int retval) +{ + qDebug() << __func__ << ": Initialization result: " << retval; + // Set exit result: 0 if successful, 1 if failure + returnValue = retval ? 0 : 1; + if (retval) { +#ifdef ENABLE_WALLET + PaymentServer::LoadRootCAs(); + paymentServer->setOptionsModel(optionsModel); +#endif + + clientModel = new ClientModel(optionsModel); + window->setClientModel(clientModel); + +#ifdef ENABLE_WALLET + if (pwalletMain) { + walletModel = new WalletModel(pwalletMain, optionsModel); + + window->addWallet(PIVXGUI::DEFAULT_WALLET, walletModel); + window->setCurrentWallet(PIVXGUI::DEFAULT_WALLET); + + connect(walletModel, SIGNAL(coinsSent(CWallet*, SendCoinsRecipient, QByteArray)), + paymentServer, SLOT(fetchPaymentACK(CWallet*, const SendCoinsRecipient&, QByteArray))); + } +#endif + + // If -min option passed, start window minimized. + if (GetBoolArg("-min", false)) { + window->showMinimized(); + } else { + window->show(); + } + emit splashFinished(window); + +#ifdef ENABLE_WALLET + // Now that initialization/startup is done, process any command-line + // PIVX: URIs or payment requests: + connect(paymentServer, SIGNAL(receivedPaymentRequest(SendCoinsRecipient)), + window, SLOT(handlePaymentRequest(SendCoinsRecipient))); + connect(window, SIGNAL(receivedURI(QString)), + paymentServer, SLOT(handleURIOrFile(QString))); + connect(paymentServer, SIGNAL(message(QString, QString, unsigned int)), + window, SLOT(message(QString, QString, unsigned int))); + QTimer::singleShot(100, paymentServer, SLOT(uiReady())); +#endif + } else { + quit(); // Exit main loop + } +} + +void BitcoinApplication::shutdownResult(int retval) +{ + qDebug() << __func__ << ": Shutdown result: " << retval; + quit(); // Exit main loop after shutdown finished +} + +void BitcoinApplication::handleRunawayException(const QString& message) +{ + QMessageBox::critical(0, "Runaway exception", PIVXGUI::tr("A fatal error occurred. PIVX can no longer continue safely and will quit.") + QString("\n\n") + message); + ::exit(1); +} + +WId BitcoinApplication::getMainWinId() const +{ + if (!window) + return 0; + + return window->winId(); +} + +#ifndef BITCOIN_QT_TEST +int main(int argc, char* argv[]) +{ + SetupEnvironment(); + + /// 1. Parse command-line options. These take precedence over anything else. + // Command-line options take precedence: + ParseParameters(argc, argv); + +// Do not refer to data directory yet, this can be overridden by Intro::pickDataDirectory + +/// 2. Basic Qt initialization (not dependent on parameters or configuration) + Q_INIT_RESOURCE(pivx_locale); + Q_INIT_RESOURCE(pivx); + +#if QT_VERSION > 0x050100 + // Generate high-dpi pixmaps + QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); +#endif +#if QT_VERSION >= 0x050600 + QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); +#endif +#ifdef Q_OS_MAC + QApplication::setAttribute(Qt::AA_DontShowIconsInMenus); +#endif + BitcoinApplication app(argc, argv); + + // Register meta types used for QMetaObject::invokeMethod + qRegisterMetaType(); + // Need to pass name here as CAmount is a typedef (see http://qt-project.org/doc/qt-5/qmetatype.html#qRegisterMetaType) + // IMPORTANT if it is no longer a typedef use the normal variant above + qRegisterMetaType("CAmount"); + + /// 3. Application identification + // must be set before OptionsModel is initialized or translations are loaded, + // as it is used to locate QSettings + QApplication::setOrganizationName(QAPP_ORG_NAME); + QApplication::setOrganizationDomain(QAPP_ORG_DOMAIN); + QApplication::setApplicationName(QAPP_APP_NAME_DEFAULT); + GUIUtil::SubstituteFonts(GetLangTerritory()); + + /// 4. Initialization of translations, so that intro dialog is in user's language + // Now that QSettings are accessible, initialize translations + //initTranslations(qtTranslatorBase, qtTranslator, translatorBase, translator); + app.updateTranslation(); + uiInterface.Translate.connect(Translate); + + // Show help message immediately after parsing command-line options (for "-lang") and setting locale, + // but before showing splash screen. + if (mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version")) { + HelpMessageDialog help(NULL, mapArgs.count("-version")); + help.showOrPrint(); + return 1; + } + + /// 5. Now that settings and translations are available, ask user for data directory + // User language is set up: pick a data directory + if (!Intro::pickDataDirectory()) + return 0; + + /// 6. Determine availability of data directory and parse pivx.conf + /// - Do not call GetDataDir(true) before this step finishes + if (!boost::filesystem::is_directory(GetDataDir(false))) { + QMessageBox::critical(0, QObject::tr("PIVX Core"), + QObject::tr("Error: Specified data directory \"%1\" does not exist.").arg(QString::fromStdString(mapArgs["-datadir"]))); + return 1; + } + try { + ReadConfigFile(mapArgs, mapMultiArgs); + } catch (const std::exception& e) { + QMessageBox::critical(0, QObject::tr("PIVX Core"), + QObject::tr("Error: Cannot parse configuration file: %1. Only use key=value syntax.").arg(e.what())); + return 0; + } + + /// 7. Determine network (and switch to network specific options) + // - Do not call Params() before this step + // - Do this after parsing the configuration file, as the network can be switched there + // - QSettings() will use the new application name after this, resulting in network-specific settings + // - Needs to be done before createOptionsModel + + // Check for -testnet or -regtest parameter (Params() calls are only valid after this clause) + if (!SelectParamsFromCommandLine()) { + QMessageBox::critical(0, QObject::tr("PIVX Core"), QObject::tr("Error: Invalid combination of -regtest and -testnet.")); + return 1; + } +#ifdef ENABLE_WALLET + // Parse URIs on command line -- this can affect Params() + PaymentServer::ipcParseCommandLine(argc, argv); +#endif + + QScopedPointer networkStyle(NetworkStyle::instantiate(QString::fromStdString(Params().NetworkIDString()))); + assert(!networkStyle.isNull()); + // Allow for separate UI settings for testnets + QApplication::setApplicationName(networkStyle->getAppName()); + // Re-initialize translations after changing application name (language in network-specific settings can be different) + app.updateTranslation(); + +#ifdef ENABLE_WALLET + /// 7a. parse masternode.conf + std::string strErr; + if (!masternodeConfig.read(strErr)) { + QMessageBox::critical(0, QObject::tr("PIVX Core"), + QObject::tr("Error reading masternode configuration file: %1").arg(strErr.c_str())); + return 0; + } + + /// 8. URI IPC sending + // - Do this early as we don't want to bother initializing if we are just calling IPC + // - Do this *after* setting up the data directory, as the data directory hash is used in the name + // of the server. + // - Do this after creating app and setting up translations, so errors are + // translated properly. + if (PaymentServer::ipcSendCommandLine()) + exit(0); + + // Start up the payment server early, too, so impatient users that click on + // pivx: links repeatedly have their payment requests routed to this process: + app.createPaymentServer(); +#endif + + /// 9. Main GUI initialization + // Install global event filter that makes sure that long tooltips can be word-wrapped + app.installEventFilter(new GUIUtil::ToolTipToRichTextFilter(TOOLTIP_WRAP_THRESHOLD, &app)); +#if defined(Q_OS_WIN) + // Install global event filter for processing Windows session related Windows messages (WM_QUERYENDSESSION and WM_ENDSESSION) + qApp->installNativeEventFilter(new WinShutdownMonitor()); +#endif + // Install qDebug() message handler to route to debug.log + qInstallMessageHandler(DebugMessageHandler); + // Load GUI settings from QSettings + app.createOptionsModel(); + + // Subscribe to global signals from core + uiInterface.InitMessage.connect(InitMessage); + + bool ret = true; +#ifdef ENABLE_WALLET + // Check if the wallet exists or need to be created + std::string strWalletFile = GetArg("-wallet", "wallet.dat"); + std::string strDataDir = GetDataDir().string(); + // Wallet file must be a plain filename without a directory + if (strWalletFile != boost::filesystem::basename(strWalletFile) + boost::filesystem::extension(strWalletFile)){ + throw std::runtime_error(strprintf(_("Wallet %s resides outside data directory %s"), strWalletFile, strDataDir)); + } + + boost::filesystem::path pathBootstrap = GetDataDir() / strWalletFile; + if (!boost::filesystem::exists(pathBootstrap)) { + // wallet doesn't exist, popup tutorial screen. + ret = app.createTutorialScreen(); + } +#endif + if(!ret){ + // wallet not loaded. + return 0; + } + + if (GetBoolArg("-splash", true) && !GetBoolArg("-min", false)) + app.createSplashScreen(networkStyle.data()); + + try { + app.createWindow(networkStyle.data()); + app.requestInitialize(); +#if defined(Q_OS_WIN) + WinShutdownMonitor::registerShutdownBlockReason(QObject::tr("PIVX Core didn't yet exit safely..."), (HWND)app.getMainWinId()); +#endif + app.exec(); + app.requestShutdown(); + app.exec(); + } catch (const std::exception& e) { + PrintExceptionContinue(&e, "Runaway exception"); + app.handleRunawayException(QString::fromStdString(strMiscWarning)); + } catch (...) { + PrintExceptionContinue(NULL, "Runaway exception"); + app.handleRunawayException(QString::fromStdString(strMiscWarning)); + } + return app.getReturnValue(); +} +#endif // BITCOIN_QT_TEST diff --git a/src/qt/pivx.qrc b/src/qt/pivx.qrc new file mode 100644 index 0000000..0aee331 --- /dev/null +++ b/src/qt/pivx.qrc @@ -0,0 +1,324 @@ + + + res/icons/bitcoin.png + res/icons/address-book.png + res/icons/quit.png + res/icons/send.png + res/icons/send_dark.png + res/icons/connect0_16.png + res/icons/connect1_16.png + res/icons/connect2_16.png + res/icons/connect3_16.png + res/icons/connect4_16.png + res/icons/transaction0.png + res/icons/transaction2.png + res/icons/transaction_conflicted.png + res/icons/clock1.png + res/icons/clock2.png + res/icons/clock3.png + res/icons/clock4.png + res/icons/clock5.png + res/icons/eye.png + res/icons/eye_minus.png + res/icons/eye_plus.png + res/icons/configure.png + res/icons/receive.png + res/icons/receive_dark.png + res/icons/privacy.png + res/icons/editpaste.png + res/icons/editcopy.png + res/icons/add.png + res/icons/bitcoin_testnet.png + res/icons/bitcoin_regtest.png + res/icons/edit.png + res/icons/history.png + res/icons/overview.png + res/icons/masternodes.png + res/icons/governance.png + res/icons/governance_dark.png + res/icons/export.png + res/icons/synced.png + res/icons/remove.png + res/icons/ic-transaction-mint.svg + res/icons/ic-transaction-received.svg + res/icons/ic-transaction-sent.svg + res/icons/ic-transaction-staked.svg + res/icons/tx_mined.png + res/icons/tx_input.png + res/icons/tx_output.png + res/icons/tx_inout.png + res/icons/unit_pivx.png + res/icons/unit_mpivx.png + res/icons/unit_upivx.png + res/icons/unit_tpivx.png + res/icons/unit_tmpivx.png + res/icons/unit_tupivx.png + res/icons/lock_closed.png + res/icons/lock_open.png + res/icons/key.png + res/icons/filesave.png + res/icons/qrcode.png + res/icons/debugwindow.png + res/icons/browse.png + res/icons/staking_active.png + res/icons/staking_inactive.png + res/icons/explorer.png + res/icons/yesvote.png + res/icons/novote.png + res/icons/abstainvote.png + res/icons/onion.png + + + res/css/default.css + pivx/res/css/style_dark.css + pivx/res/css/style_light.css + + + res/images/about.png + res/images/pivx_logo_horizontal.png + res/images/downArrow_dark.png + res/images/downArrow_small_dark.png + res/images/downArrow_small.png + res/images/upArrow_small_dark.png + res/images/upArrow_small.png + res/images/leftArrow_small_dark.png + res/images/rightArrow_small_dark.png + res/images/qtreeview_selected.png + res/images/splash.png + res/images/splash_testnet.png + res/images/splash_regtest.png + + + res/movies/spinner-000.png + res/movies/spinner-001.png + res/movies/spinner-002.png + res/movies/spinner-003.png + res/movies/spinner-004.png + res/movies/spinner-005.png + res/movies/spinner-006.png + res/movies/spinner-007.png + res/movies/spinner-008.png + res/movies/spinner-009.png + res/movies/spinner-010.png + res/movies/spinner-011.png + res/movies/spinner-012.png + res/movies/spinner-013.png + res/movies/spinner-014.png + res/movies/spinner-015.png + res/movies/spinner-016.png + res/movies/spinner-017.png + res/movies/spinner-018.png + res/movies/spinner-019.png + res/movies/spinner-020.png + res/movies/spinner-021.png + res/movies/spinner-022.png + res/movies/spinner-023.png + res/movies/spinner-024.png + res/movies/spinner-025.png + res/movies/spinner-026.png + res/movies/spinner-027.png + res/movies/spinner-028.png + res/movies/spinner-029.png + res/movies/spinner-030.png + res/movies/spinner-031.png + res/movies/spinner-032.png + res/movies/spinner-033.png + res/movies/spinner-034.png + + + pivx/res/img/bg-splash.svg + pivx/res/img/bg-splash.png + pivx/res/img/img-logo-pivx.png + pivx/res/img/img-logo-pivx@2x.png + pivx/res/img/img-logo-pivx@3x.png + pivx/res/img/img-nav-logo-pivx.png + pivx/res/img/img-qr-test-big.png + pivx/res/img/img-qr-test.png + pivx/res/img/img-welcome-step1.png + pivx/res/img/img-welcome-step2.png + pivx/res/img/img-welcome-step3.png + pivx/res/img/img-welcome-step4.png + pivx/res/img/bg-multi-number-dark.svg + pivx/res/img/bg-multi-number.svg + pivx/res/img/btn-radio-active.svg + pivx/res/img/btn-radio-off.svg + pivx/res/img/ic-add-label.svg + pivx/res/img/ic-add-liliac.svg + pivx/res/img/ic-add-purple.svg + pivx/res/img/ic-add.svg + pivx/res/img/ic-address-book-grey.svg + pivx/res/img/ic-address-book-white.svg + pivx/res/img/ic-address-book.svg + pivx/res/img/ic-address-send-white.svg + pivx/res/img/ic-address-send.svg + pivx/res/img/ic-arrow-drop-down-white.svg + pivx/res/img/ic-arrow-drop-down.svg + pivx/res/img/ic-arrow-drop-up-white.svg + pivx/res/img/ic-arrow-drop-up.svg + pivx/res/img/ic-arrow-drop-white-down.svg + pivx/res/img/ic-arrow-purple-down.svg + pivx/res/img/ic-arrow-right-white.svg + pivx/res/img/ic-arrow-right.svg + pivx/res/img/ic-arrow-left-white.svg + pivx/res/img/ic-arrow-left.svg + pivx/res/img/ic-arrow-white-left.svg + pivx/res/img/ic-arrow-white-right.svg + pivx/res/img/ic-check-active.svg + pivx/res/img/ic-check-box.svg + pivx/res/img/ic-check-box-liliac-indeterminate.svg + pivx/res/img/ic-check-connect-off.svg + pivx/res/img/ic-check-connect.svg + pivx/res/img/ic-check-dark.svg + pivx/res/img/ic-check-liliac-on.svg + pivx/res/img/ic-check-locked-off.svg + pivx/res/img/ic-check-locked.svg + pivx/res/img/ic-check-mint-off.svg + pivx/res/img/ic-check-mint.svg + pivx/res/img/ic-check-peers-off.svg + pivx/res/img/ic-check-peers.svg + pivx/res/img/ic-check-staking-off.svg + pivx/res/img/ic-check-staking.svg + pivx/res/img/ic-check-sync-off.svg + pivx/res/img/ic-check-sync.svg + pivx/res/img/ic-check-faq.svg + pivx/res/img/ic-check-theme-dark.svg + pivx/res/img/ic-check-theme-light.svg + pivx/res/img/ic-check-white.svg + pivx/res/img/ic-check.svg + pivx/res/img/ic-chevron-left.svg + pivx/res/img/ic-chevron-right.svg + pivx/res/img/ic-clear-liliac.svg + pivx/res/img/ic-clear-purple.svg + pivx/res/img/ic-close-white.svg + pivx/res/img/ic-close.svg + pivx/res/img/ic-coin-piv.svg + pivx/res/img/ic-coin-zpiv.svg + pivx/res/img/ic-combo-box.svg + pivx/res/img/ic-connect.svg + pivx/res/img/ic-copy-liliac.svg + pivx/res/img/ic-copy.svg + pivx/res/img/ic-copy-big.svg + pivx/res/img/ic-copy-big-white.svg + pivx/res/img/ic-exit.svg + pivx/res/img/ic-expand.svg + pivx/res/img/ic-folder.svg + pivx/res/img/ic-label-liliac.svg + pivx/res/img/ic-label.svg + pivx/res/img/ic-menu-hover.svg + pivx/res/img/ic-mint.svg + pivx/res/img/ic-nav-address-active.svg + pivx/res/img/ic-nav-address-hover.svg + pivx/res/img/ic-nav-address.svg + pivx/res/img/ic-nav-dashboard-active.svg + pivx/res/img/ic-nav-dashboard-hover.svg + pivx/res/img/ic-nav-dashboard.svg + pivx/res/img/ic-nav-master-active.svg + pivx/res/img/ic-nav-master-hover.svg + pivx/res/img/ic-nav-master.svg + pivx/res/img/ic-nav-privacy-active.svg + pivx/res/img/ic-nav-privacy-hover.svg + pivx/res/img/ic-nav-privacy.svg + pivx/res/img/ic-nav-receive-active.svg + pivx/res/img/ic-nav-receive-hover.svg + pivx/res/img/ic-nav-receive.svg + pivx/res/img/ic-nav-send-active.svg + pivx/res/img/ic-nav-send-hover.svg + pivx/res/img/ic-nav-send.svg + pivx/res/img/ic-nav-settings-active.svg + pivx/res/img/ic-nav-settings-hover.svg + pivx/res/img/ic-nav-settings.svg + pivx/res/img/ic-radio-liliac-on.svg + pivx/res/img/ic-receive-off.svg + pivx/res/img/ic-receive-on.svg + pivx/res/img/ic-received.svg + pivx/res/img/ic-send.svg + pivx/res/img/ic-submenu-lock.svg + pivx/res/img/ic-submenu-staking.svg + pivx/res/img/ic-submenu-unlock.svg + pivx/res/img/ic-switch-liliac-on.svg + pivx/res/img/ic-switch-off.svg + pivx/res/img/ic-switch-on.svg + pivx/res/img/ic-transaction-warning.svg + pivx/res/img/ic-transaction-mint.svg + pivx/res/img/ic-transaction-received.svg + pivx/res/img/ic-transaction-sent.svg + pivx/res/img/ic-transaction-staked.svg + pivx/res/img/dark/ic-transaction-mint.svg + pivx/res/img/dark/ic-transaction-received.svg + pivx/res/img/dark/ic-transaction-sent.svg + pivx/res/img/dark/ic-transaction-staked.svg + pivx/res/img/ic-transaction-mint-inactive.svg + pivx/res/img/ic-transaction-received-inactive.svg + pivx/res/img/ic-transaction-sent-inactive.svg + pivx/res/img/ic-transaction-staked-inactive.svg + pivx/res/img/dark/ic-transaction-mint-inactive.svg + pivx/res/img/dark/ic-transaction-received-inactive.svg + pivx/res/img/dark/ic-transaction-sent-inactive.svg + pivx/res/img/dark/ic-transaction-staked-inactive.svg + pivx/res/img/ic-unlock-staking.svg + pivx/res/img/ic-update-liliac.svg + pivx/res/img/ic-update.svg + pivx/res/img/ic-wallet-status-locked.svg + pivx/res/img/ic-wallet-status-staking.svg + pivx/res/img/ic-wallet-status-unlocked.svg + pivx/res/img/ic-watch-password-white.svg + pivx/res/img/ic-watch-password.svg + pivx/res/img/img-empty-contacts.svg + pivx/res/img/img-empty-dark-contacts.svg + pivx/res/img/img-empty-dark-error.svg + pivx/res/img/img-empty-dark-masternode.svg + pivx/res/img/img-empty-dark-multisend.svg + pivx/res/img/img-empty-dark-peers.svg + pivx/res/img/img-empty-dark-staking-on.svg + pivx/res/img/img-empty-dark-staking-off.svg + pivx/res/img/img-empty-dark-transactions.svg + pivx/res/img/img-empty-privacy-dark.svg + pivx/res/img/img-empty-error.svg + pivx/res/img/img-empty-masternode.svg + pivx/res/img/img-empty-multisend.svg + pivx/res/img/img-empty-peers.svg + pivx/res/img/img-empty-privacy.svg + pivx/res/img/img-empty-staking-off.svg + pivx/res/img/img-empty-staking-on.svg + pivx/res/img/img-empty-transactions.svg + pivx/res/img/img-nav-logo.svg + pivx/res/img/img-qr.svg + pivx/res/img/ic-contact-arrow-down.svg + pivx/res/img/ic-contact-arrow-down-white.svg + pivx/res/img/ic-arrow-drop-down-purple.svg + pivx/res/img/ic-arrow-drop-up-purple.svg + pivx/res/img/bg-welcome@2x.jpg + pivx/res/img/bg-welcome@3x.jpg + pivx/res/img/img-logo-pivx.svg + pivx/res/img/bg-welcome.svg + pivx/res/img/bg-welcome-container.svg + pivx/res/img/bg-welcome.png + pivx/res/img/bg-welcome-container.png + pivx/res/img/bg-welcome-container@2x.png + pivx/res/img/bg-welcome-container@3x.png + pivx/res/img/bg-dashboard-banner.png + pivx/res/img/ic-check-box-dark-active.svg + pivx/res/img/ic-check-box-indeterminate.svg + pivx/res/img/ic-check-liliac-indeterminate.svg + pivx/res/img/ani-loading-dark.gif + pivx/res/img/ani-loading.gif + pivx/res/img/ic-pending.svg + pivx/res/img/ic-transaction-stake-delegated.svg + pivx/res/img/ic-transaction-stake-delegated-inactive.svg + pivx/res/img/dark/ic-transaction-stake-delegated.svg + pivx/res/img/dark/ic-transaction-stake-delegated-inactive.svg + pivx/res/img/ic-transaction-stake-hot.svg + pivx/res/img/ic-transaction-stake-hot-inactive.svg + pivx/res/img/dark/ic-transaction-stake-hot.svg + pivx/res/img/dark/ic-transaction-stake-hot-inactive.svg + pivx/res/img/ic-transaction-cs-contract.svg + pivx/res/img/dark/ic-transaction-cs-contract.svg + pivx/res/img/dark/ic-transaction-cs-contract-inactive.svg + pivx/res/img/ic-transaction-cs-contract-inactive.svg + pivx/res/img/ic-nav-cold-staking.svg + pivx/res/img/ic-nav-cold-staking-active.svg + pivx/res/img/ic-check-cold-staking.svg + pivx/res/img/ic-check-cold-staking-off.svg + pivx/res/img/ic-check-cold-staking-enabled.svg + + diff --git a/src/qt/pivx/addnewaddressdialog.cpp b/src/qt/pivx/addnewaddressdialog.cpp new file mode 100644 index 0000000..f807624 --- /dev/null +++ b/src/qt/pivx/addnewaddressdialog.cpp @@ -0,0 +1,36 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/addnewaddressdialog.h" +#include "qt/pivx/forms/ui_addnewaddressdialog.h" + +AddNewAddressDialog::AddNewAddressDialog(QWidget *parent) : + QWidget(parent), + ui(new Ui::AddNewAddressDialog) +{ + ui->setupUi(this); + + // Stylesheet + this->setStyleSheet(parent->styleSheet()); + + // Container + + ui->frameContainer->setProperty("cssClass", "container-dialog"); + + // Title + + ui->labelTitle->setText("New Address"); + ui->labelTitle->setProperty("cssClass", "text-title-dialog"); + + // Buttons + + ui->btnCancel->setProperty("cssClass", "btn-dialog-cancel"); + ui->btnSave->setText("SAVE"); + ui->btnSave->setProperty("cssClass", "btn-primary"); +} + +AddNewAddressDialog::~AddNewAddressDialog() +{ + delete ui; +} diff --git a/src/qt/pivx/addnewaddressdialog.h b/src/qt/pivx/addnewaddressdialog.h new file mode 100644 index 0000000..7f3bcc7 --- /dev/null +++ b/src/qt/pivx/addnewaddressdialog.h @@ -0,0 +1,26 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef ADDNEWADDRESSDIALOG_H +#define ADDNEWADDRESSDIALOG_H + +#include + +namespace Ui { +class AddNewAddressDialog; +} + +class AddNewAddressDialog : public QWidget +{ + Q_OBJECT + +public: + explicit AddNewAddressDialog(QWidget *parent = nullptr); + ~AddNewAddressDialog(); + +private: + Ui::AddNewAddressDialog *ui; +}; + +#endif // ADDNEWADDRESSDIALOG_H diff --git a/src/qt/pivx/addnewcontactdialog.cpp b/src/qt/pivx/addnewcontactdialog.cpp new file mode 100644 index 0000000..71f82ac --- /dev/null +++ b/src/qt/pivx/addnewcontactdialog.cpp @@ -0,0 +1,76 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/addnewcontactdialog.h" +#include "qt/pivx/forms/ui_addnewcontactdialog.h" +#include "qt/pivx/qtutils.h" + +AddNewContactDialog::AddNewContactDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::AddNewContactDialog) +{ + ui->setupUi(this); + + // Stylesheet + this->setStyleSheet(parent->styleSheet()); + + ui->frame->setProperty("cssClass", "container-dialog"); + // Title + ui->labelTitle->setText(tr("Edit Contact")); + ui->labelTitle->setProperty("cssClass", "text-title-dialog"); + + ui->labelMessage->setText(tr("Set a label for the selected address")); + ui->labelMessage->setProperty("cssClass", "text-main-grey"); + + // Address + ui->lineEditName->setPlaceholderText(tr("Enter a name for the address (e.g Exchange)")); + initCssEditLine(ui->lineEditName, true); + + // Buttons + ui->btnEsc->setText(""); + ui->btnEsc->setProperty("cssClass", "ic-close"); + + ui->btnCancel->setProperty("cssClass", "btn-dialog-cancel"); + ui->btnOk->setText(tr("SAVE")); + ui->btnOk->setProperty("cssClass", "btn-primary"); + + connect(ui->btnEsc, SIGNAL(clicked()), this, SLOT(close())); + connect(ui->btnCancel, SIGNAL(clicked()), this, SLOT(close())); + connect(ui->btnOk, SIGNAL(clicked()), this, SLOT(ok())); +} + +void AddNewContactDialog::setTexts(QString title, const char* message) { + ui->labelTitle->setText(title); + this->message = message; +} + +void AddNewContactDialog::setData(QString address, QString label){ + ui->labelMessage->setText( + ( + !message ? + tr("Edit label for the selected address:\n%1").arg(address.toUtf8().constData()) : + tr(message).arg(address.toUtf8().constData()) + ) + ); + if (!label.isEmpty()) ui->lineEditName->setText(label); +} + +void AddNewContactDialog::showEvent(QShowEvent *event) +{ + if (ui->lineEditName) ui->lineEditName->setFocus(); +} + +void AddNewContactDialog::ok() { + this->res = true; + accept(); +} + +QString AddNewContactDialog::getLabel(){ + return ui->lineEditName->text(); +} + +AddNewContactDialog::~AddNewContactDialog() +{ + delete ui; +} diff --git a/src/qt/pivx/addnewcontactdialog.h b/src/qt/pivx/addnewcontactdialog.h new file mode 100644 index 0000000..57720cf --- /dev/null +++ b/src/qt/pivx/addnewcontactdialog.h @@ -0,0 +1,36 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef ADDNEWCONTACTDIALOG_H +#define ADDNEWCONTACTDIALOG_H + +#include + +namespace Ui { +class AddNewContactDialog; +} + +class AddNewContactDialog : public QDialog +{ + Q_OBJECT + +public: + explicit AddNewContactDialog(QWidget *parent = nullptr); + ~AddNewContactDialog(); + + void setTexts(QString title, const char* message = nullptr); + void setData(QString address, QString label); + void showEvent(QShowEvent *event) override; + QString getLabel(); + + bool res = false; + +public slots: + void ok(); +private: + Ui::AddNewContactDialog *ui; + const char* message = nullptr; +}; + +#endif // ADDNEWCONTACTDIALOG_H diff --git a/src/qt/pivx/addresseswidget.cpp b/src/qt/pivx/addresseswidget.cpp new file mode 100644 index 0000000..131d66e --- /dev/null +++ b/src/qt/pivx/addresseswidget.cpp @@ -0,0 +1,268 @@ +// Copyright (c) 2019-2020 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/addresseswidget.h" +#include "qt/pivx/forms/ui_addresseswidget.h" +#include "qt/pivx/addresslabelrow.h" +#include "qt/pivx/addnewaddressdialog.h" +#include "qt/pivx/tooltipmenu.h" + +#include "qt/pivx/addnewcontactdialog.h" +#include "qt/pivx/pivxgui.h" +#include "guiutil.h" +#include "qt/pivx/qtutils.h" +#include "walletmodel.h" + +#include +#include + +#define DECORATION_SIZE 60 +#define NUM_ITEMS 3 + +class ContactsHolder : public FurListRow +{ +public: + ContactsHolder(); + + explicit ContactsHolder(bool _isLightTheme) : FurListRow(), isLightTheme(_isLightTheme){} + + AddressLabelRow* createHolder(int pos) override{ + if (!cachedRow) cachedRow = new AddressLabelRow(); + cachedRow->init(isLightTheme, false); + return cachedRow; + } + + void init(QWidget* holder,const QModelIndex &index, bool isHovered, bool isSelected) const override{ + AddressLabelRow* row = static_cast(holder); + + row->updateState(isLightTheme, isHovered, isSelected); + + QString address = index.data(Qt::DisplayRole).toString(); + QModelIndex sibling = index.sibling(index.row(), AddressTableModel::Label); + QString label = sibling.data(Qt::DisplayRole).toString(); + + row->updateView(address, label); + } + + QColor rectColor(bool isHovered, bool isSelected) override{ + return getRowColor(isLightTheme, isHovered, isSelected); + } + + ~ContactsHolder() override{} + + bool isLightTheme; + AddressLabelRow* cachedRow = nullptr; +}; + + +AddressesWidget::AddressesWidget(PIVXGUI* parent) : + PWidget(parent), + ui(new Ui::AddressesWidget) +{ + ui->setupUi(this); + + this->setStyleSheet(parent->styleSheet()); + + delegate = new FurAbstractListItemDelegate( + DECORATION_SIZE, + new ContactsHolder(isLightTheme()), + this + ); + + /* Containers */ + setCssProperty(ui->left, "container"); + ui->left->setContentsMargins(0,20,0,20); + setCssProperty(ui->right, "container-right"); + ui->right->setContentsMargins(20,10,20,20); + setCssProperty(ui->listAddresses, "container"); + + // Title + ui->labelTitle->setText(tr("Contacts")); + ui->labelSubtitle1->setText(tr("You can add a new one in the options menu to the side.")); + setCssTitleScreen(ui->labelTitle); + setCssSubtitleScreen(ui->labelSubtitle1); + + // Change eddress option + ui->btnAddContact->setTitleClassAndText("btn-title-grey", "Add new contact"); + ui->btnAddContact->setSubTitleClassAndText("text-subtitle", "Generate a new address to receive tokens."); + ui->btnAddContact->setRightIconClass("ic-arrow-down"); + + // List Addresses + ui->listAddresses->setItemDelegate(delegate); + ui->listAddresses->setIconSize(QSize(DECORATION_SIZE, DECORATION_SIZE)); + ui->listAddresses->setMinimumHeight(NUM_ITEMS * (DECORATION_SIZE + 2)); + ui->listAddresses->setAttribute(Qt::WA_MacShowFocusRect, false); + ui->listAddresses->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->listAddresses->setUniformItemSizes(true); + + //Empty List + ui->emptyContainer->setVisible(false); + setCssProperty(ui->pushImgEmpty, "img-empty-contacts"); + + ui->labelEmpty->setText(tr("No contacts yet")); + setCssProperty(ui->labelEmpty, "text-empty"); + + // Add Contact + setCssProperty(ui->layoutNewContact, "container-options"); + + // Name + ui->labelName->setText(tr("Contact name")); + setCssProperty(ui->labelName, "text-title"); + ui->lineEditName->setPlaceholderText(tr("e.g. John Doe")); + setCssEditLine(ui->lineEditName, true); + + // Address + ui->labelAddress->setText(tr("Enter PIVX address")); + setCssProperty(ui->labelAddress, "text-title"); + ui->lineEditAddress->setPlaceholderText("e.g. D7VFR83SQbiezrW72hjc…"); + setCssEditLine(ui->lineEditAddress, true); + ui->lineEditAddress->setValidator(new QRegExpValidator(QRegExp("^[A-Za-z0-9]+"), ui->lineEditName)); + + // Buttons + ui->btnSave->setText(tr("SAVE")); + setCssBtnPrimary(ui->btnSave); + + connect(ui->listAddresses, SIGNAL(clicked(QModelIndex)), this, SLOT(handleAddressClicked(QModelIndex))); + connect(ui->btnSave, SIGNAL(clicked()), this, SLOT(onStoreContactClicked())); + connect(ui->btnAddContact, SIGNAL(clicked()), this, SLOT(onAddContactShowHideClicked())); +} + +void AddressesWidget::handleAddressClicked(const QModelIndex &index){ + ui->listAddresses->setCurrentIndex(index); + QRect rect = ui->listAddresses->visualRect(index); + QPoint pos = rect.topRight(); + pos.setX(pos.x() - (DECORATION_SIZE * 2)); + pos.setY(pos.y() + (DECORATION_SIZE)); + + QModelIndex rIndex = filter->mapToSource(index); + + if(!this->menu){ + this->menu = new TooltipMenu(window, this); + connect(this->menu, &TooltipMenu::message, this, &AddressesWidget::message); + connect(this->menu, SIGNAL(onEditClicked()), this, SLOT(onEditClicked())); + connect(this->menu, SIGNAL(onDeleteClicked()), this, SLOT(onDeleteClicked())); + connect(this->menu, SIGNAL(onCopyClicked()), this, SLOT(onCopyClicked())); + }else { + this->menu->hide(); + } + this->index = rIndex; + menu->move(pos); + menu->show(); +} + +void AddressesWidget::loadWalletModel(){ + if(walletModel) { + addressTablemodel = walletModel->getAddressTableModel(); + this->filter = new AddressFilterProxyModel(QStringList({AddressTableModel::Send, AddressTableModel::ColdStakingSend}), this); + this->filter->setSourceModel(addressTablemodel); + ui->listAddresses->setModel(this->filter); + ui->listAddresses->setModelColumn(AddressTableModel::Address); + + updateListView(); + } +} + +void AddressesWidget::updateListView(){ + bool empty = addressTablemodel->sizeSend() == 0; + ui->emptyContainer->setVisible(empty); + ui->listAddresses->setVisible(!empty); +} + +void AddressesWidget::onStoreContactClicked(){ + if (walletModel) { + QString label = ui->lineEditName->text(); + QString address = ui->lineEditAddress->text(); + + if (!walletModel->validateAddress(address)) { + setCssEditLine(ui->lineEditAddress, false, true); + inform(tr("Invalid Contact Address")); + return; + } + + CBitcoinAddress pivAdd = CBitcoinAddress(address.toUtf8().constData()); + if (walletModel->isMine(pivAdd)) { + setCssEditLine(ui->lineEditAddress, false, true); + inform(tr("Cannot store your own address as contact")); + return; + } + + QString storedLabel = walletModel->getAddressTableModel()->labelForAddress(address); + + if(!storedLabel.isEmpty()){ + inform(tr("Address already stored, label: %1").arg("\'"+storedLabel+"\'")); + return; + } + + if (walletModel->updateAddressBookLabels(pivAdd.Get(), label.toUtf8().constData(), + pivAdd.IsStakingAddress() ? AddressBook::AddressBookPurpose::COLD_STAKING_SEND : AddressBook::AddressBookPurpose::SEND) + ) { + ui->lineEditAddress->setText(""); + ui->lineEditName->setText(""); + setCssEditLine(ui->lineEditAddress, true, true); + setCssEditLine(ui->lineEditName, true, true); + + if (ui->emptyContainer->isVisible()) { + ui->emptyContainer->setVisible(false); + ui->listAddresses->setVisible(true); + } + inform(tr("New Contact Stored")); + } else { + inform(tr("Error Storing Contact")); + } + } +} + +void AddressesWidget::onEditClicked(){ + QString address = index.data(Qt::DisplayRole).toString(); + QString currentLabel = index.sibling(index.row(), AddressTableModel::Label).data(Qt::DisplayRole).toString(); + showHideOp(true); + AddNewContactDialog *dialog = new AddNewContactDialog(window); + dialog->setData(address, currentLabel); + if(openDialogWithOpaqueBackground(dialog, window)){ + if(walletModel->updateAddressBookLabels( + CBitcoinAddress(address.toStdString()).Get(), dialog->getLabel().toStdString(), addressTablemodel->purposeForAddress(address.toStdString()))){ + inform(tr("Contact edited")); + }else{ + inform(tr("Contact edit failed")); + } + } + dialog->deleteLater(); +} + +void AddressesWidget::onDeleteClicked(){ + if(walletModel) { + if (ask(tr("Delete Contact"), tr("You are just about to remove the contact:\n\n%1\n\nAre you sure?").arg(index.data(Qt::DisplayRole).toString().toUtf8().constData())) + ) { + if (this->walletModel->getAddressTableModel()->removeRows(index.row(), 1, index)) { + updateListView(); + inform(tr("Contact Deleted")); + } else { + inform(tr("Error deleting a contact")); + } + } + } +} + +void AddressesWidget::onCopyClicked(){ + GUIUtil::setClipboard(index.data(Qt::DisplayRole).toString()); + inform(tr("Address copied")); +} + +void AddressesWidget::onAddContactShowHideClicked(){ + if(!ui->layoutNewContact->isVisible()){ + ui->btnAddContact->setRightIconClass("btn-dropdown", true); + ui->layoutNewContact->setVisible(true); + }else { + ui->btnAddContact->setRightIconClass("ic-arrow", true); + ui->layoutNewContact->setVisible(false); + } +} + +void AddressesWidget::changeTheme(bool isLightTheme, QString& theme){ + static_cast(this->delegate->getRowFactory())->isLightTheme = isLightTheme; +} + +AddressesWidget::~AddressesWidget(){ + delete ui; +} diff --git a/src/qt/pivx/addresseswidget.h b/src/qt/pivx/addresseswidget.h new file mode 100644 index 0000000..7801cce --- /dev/null +++ b/src/qt/pivx/addresseswidget.h @@ -0,0 +1,65 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef ADDRESSESWIDGET_H +#define ADDRESSESWIDGET_H + +#include "qt/pivx/pwidget.h" +#include "addresstablemodel.h" +#include "qt/pivx/tooltipmenu.h" +#include "furabstractlistitemdelegate.h" +#include "qt/pivx/addressfilterproxymodel.h" + +#include + +class AddressViewDelegate; +class TooltipMenu; +class PIVXGUI; +class WalletModel; + +namespace Ui { +class AddressesWidget; +} + +QT_BEGIN_NAMESPACE +class QModelIndex; +QT_END_NAMESPACE + +class AddressesWidget : public PWidget +{ + Q_OBJECT + +public: + explicit AddressesWidget(PIVXGUI* parent); + ~AddressesWidget(); + + void loadWalletModel() override; + void onNewContactClicked(); + +private slots: + void handleAddressClicked(const QModelIndex &index); + void onStoreContactClicked(); + void onEditClicked(); + void onDeleteClicked(); + void onCopyClicked(); + void onAddContactShowHideClicked(); + + void changeTheme(bool isLightTheme, QString &theme) override; +private: + Ui::AddressesWidget *ui; + + FurAbstractListItemDelegate* delegate = nullptr; + AddressTableModel* addressTablemodel = nullptr; + AddressFilterProxyModel *filter = nullptr; + + bool isOnMyAddresses = true; + TooltipMenu* menu = nullptr; + + // Cached index + QModelIndex index; + + void updateListView(); +}; + +#endif // ADDRESSESWIDGET_H diff --git a/src/qt/pivx/addressfilterproxymodel.cpp b/src/qt/pivx/addressfilterproxymodel.cpp new file mode 100644 index 0000000..53c3952 --- /dev/null +++ b/src/qt/pivx/addressfilterproxymodel.cpp @@ -0,0 +1,41 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/addressfilterproxymodel.h" +#include + +bool AddressFilterProxyModel::filterAcceptsRow(int row, const QModelIndex& parent) const +{ + auto model = sourceModel(); + auto label = model->index(row, AddressTableModel::Label, parent); + + auto type = model->data(label, AddressTableModel::TypeRole).toString(); + if (!m_types.contains(type)) + return false; + + auto address = model->index(row, AddressTableModel::Address, parent); + + if (filterRegExp().indexIn(model->data(address).toString()) < 0 && + filterRegExp().indexIn(model->data(label).toString()) < 0) { + return false; + } + + return true; +} + +void AddressFilterProxyModel::setType(const QString& type) +{ + setType(QStringList(type)); +} + +void AddressFilterProxyModel::setType(const QStringList& types) +{ + this->m_types = types; + invalidateFilter(); +} + +int AddressFilterProxyModel::rowCount(const QModelIndex& parent) const +{ + return QSortFilterProxyModel::rowCount(parent); +} diff --git a/src/qt/pivx/addressfilterproxymodel.h b/src/qt/pivx/addressfilterproxymodel.h new file mode 100644 index 0000000..6e8090a --- /dev/null +++ b/src/qt/pivx/addressfilterproxymodel.h @@ -0,0 +1,47 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PIVX_CORE_NEW_GUI_ADDRESSFILTERPROXYMODEL_H +#define PIVX_CORE_NEW_GUI_ADDRESSFILTERPROXYMODEL_H + +#include +#include "addresstablemodel.h" + + +class AddressFilterProxyModel final : public QSortFilterProxyModel +{ + +public: + AddressFilterProxyModel(const QString& type, QObject* parent) + : QSortFilterProxyModel(parent) + , m_types({type}) { + init(); + } + + AddressFilterProxyModel(const QStringList& types, QObject* parent) + : QSortFilterProxyModel(parent) + , m_types(types) { + init(); + } + + void init() { + setDynamicSortFilter(true); + setFilterCaseSensitivity(Qt::CaseInsensitive); + setSortCaseSensitivity(Qt::CaseInsensitive); + } + + int rowCount(const QModelIndex& parent = QModelIndex()) const override; + + void setType(const QString& type); + void setType(const QStringList& types); + +protected: + bool filterAcceptsRow(int row, const QModelIndex& parent) const override; + +private: + QStringList m_types; +}; + + +#endif //PIVX_CORE_NEW_GUI_ADDRESSFILTERPROXYMODEL_H diff --git a/src/qt/pivx/addressholder.cpp b/src/qt/pivx/addressholder.cpp new file mode 100644 index 0000000..9bd168c --- /dev/null +++ b/src/qt/pivx/addressholder.cpp @@ -0,0 +1,19 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/addressholder.h" +#include "qt/pivx/qtutils.h" + +void AddressHolder::init(QWidget* holder,const QModelIndex &index, bool isHovered, bool isSelected) const { + MyAddressRow *row = static_cast(holder); + QString address = index.data(Qt::DisplayRole).toString(); + QString label = index.sibling(index.row(), AddressTableModel::Label).data(Qt::DisplayRole).toString(); + uint time = index.sibling(index.row(), AddressTableModel::Date).data(Qt::DisplayRole).toUInt(); + QString date = (time == 0) ? "" : GUIUtil::dateTimeStr(QDateTime::fromTime_t(time)); + row->updateView(address, label, date); +} + +QColor AddressHolder::rectColor(bool isHovered, bool isSelected) { + return getRowColor(isLightTheme, isHovered, isSelected); +} diff --git a/src/qt/pivx/addressholder.h b/src/qt/pivx/addressholder.h new file mode 100644 index 0000000..d08fb72 --- /dev/null +++ b/src/qt/pivx/addressholder.h @@ -0,0 +1,41 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PIVX_ADDRESSHOLDER_H +#define PIVX_ADDRESSHOLDER_H + +#include +#include +#include "qt/pivx/myaddressrow.h" +#include "qt/pivx/furlistrow.h" +#include "guiutil.h" + + +class AddressHolder : public FurListRow +{ +public: + AddressHolder(); + + explicit AddressHolder(bool _isLightTheme) : FurListRow(), isLightTheme(_isLightTheme){} + + MyAddressRow* createHolder(int pos) override{ + if (!cachedRow) cachedRow = new MyAddressRow(); + return cachedRow; + } + + void init(QWidget* holder,const QModelIndex &index, bool isHovered, bool isSelected) const override; + + QColor rectColor(bool isHovered, bool isSelected) override; + + ~AddressHolder() override { + if (cachedRow) + delete cachedRow; + } + + bool isLightTheme; + MyAddressRow* cachedRow = nullptr; +}; + + +#endif //PIVX_ADDRESSHOLDER_H diff --git a/src/qt/pivx/addresslabelrow.cpp b/src/qt/pivx/addresslabelrow.cpp new file mode 100644 index 0000000..48ef106 --- /dev/null +++ b/src/qt/pivx/addresslabelrow.cpp @@ -0,0 +1,48 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/addresslabelrow.h" +#include "qt/pivx/forms/ui_addresslabelrow.h" + +AddressLabelRow::AddressLabelRow(QWidget *parent) : + QWidget(parent), + ui(new Ui::AddressLabelRow) +{ + ui->setupUi(this); + ui->lblAddress->setProperty("cssClass", "text-list-body1"); + ui->lblLabel->setProperty("cssClass", "text-list-title1"); +} + +void AddressLabelRow::init(bool isLightTheme, bool isHover) { + updateState(isLightTheme, isHover, false); +} + +void AddressLabelRow::updateView(QString address, QString label){ + ui->lblAddress->setText(address); + ui->lblLabel->setText(label); +} + +void AddressLabelRow::updateState(bool isLightTheme, bool isHovered, bool isSelected){ + if(isLightTheme) + ui->lblDivisory->setStyleSheet("background-color:#bababa"); + else + ui->lblDivisory->setStyleSheet("background-color:#40ffffff"); + + ui->btnMenu->setVisible(isHovered); +} + +void AddressLabelRow::enterEvent(QEvent *) { + ui->btnMenu->setVisible(true); + update(); +} + +void AddressLabelRow::leaveEvent(QEvent *) { + ui->btnMenu->setVisible(false); + update(); +} + +AddressLabelRow::~AddressLabelRow() +{ + delete ui; +} diff --git a/src/qt/pivx/addresslabelrow.h b/src/qt/pivx/addresslabelrow.h new file mode 100644 index 0000000..8178002 --- /dev/null +++ b/src/qt/pivx/addresslabelrow.h @@ -0,0 +1,34 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef ADDRESSLABELROW_H +#define ADDRESSLABELROW_H + +#include + +namespace Ui { +class AddressLabelRow; +} + +class AddressLabelRow : public QWidget +{ + Q_OBJECT + +public: + explicit AddressLabelRow(QWidget *parent = nullptr); + ~AddressLabelRow(); + + void init(bool isLightTheme, bool isHover); + + void updateState(bool isLightTheme, bool isHovered, bool isSelected); + void updateView(QString address, QString label); +protected: + virtual void enterEvent(QEvent *); + virtual void leaveEvent(QEvent *); + +private: + Ui::AddressLabelRow *ui; +}; + +#endif // ADDRESSLABELROW_H diff --git a/src/qt/pivx/coincontrolpivwidget.cpp b/src/qt/pivx/coincontrolpivwidget.cpp new file mode 100644 index 0000000..bb67301 --- /dev/null +++ b/src/qt/pivx/coincontrolpivwidget.cpp @@ -0,0 +1,89 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/coincontrolpivwidget.h" +#include "qt/pivx/forms/ui_coincontrolpivwidget.h" + +CoinControlPivWidget::CoinControlPivWidget(QWidget *parent) : + QDialog(parent), + ui(new Ui::CoinControlPivWidget) +{ + ui->setupUi(this); + + // Stylesheet + this->setStyleSheet(parent->styleSheet()); + + // Container + + ui->frameContainer->setProperty("cssClass", "container-dialog"); + ui->layoutAmount->setProperty("cssClass", "container-border-purple"); + ui->layoutAfter->setProperty("cssClass", "container-border-purple"); + ui->layoutBytes->setProperty("cssClass", "container-border-purple"); + ui->layoutChange->setProperty("cssClass", "container-border-purple"); + ui->layoutDust->setProperty("cssClass", "container-border-purple"); + ui->layoutFee->setProperty("cssClass", "container-border-purple"); + ui->layoutQuantity->setProperty("cssClass", "container-border-purple"); + + // Title + + ui->labelTitle->setText("Select PIV Outputs to Spend"); + ui->labelTitle->setProperty("cssClass", "text-title-dialog"); + + // Label Style + + ui->labelTitleAfter->setProperty("cssClass", "text-main-purple"); + ui->labelTitleAmount->setProperty("cssClass", "text-main-purple"); + ui->labelTitleAmount->setText("PIV"); + ui->labelTitleBytes->setProperty("cssClass", "text-main-purple"); + ui->labelTitleBytes->setProperty("cssClass", "text-main-purple"); + ui->labelTitleChange->setProperty("cssClass", "text-main-purple"); + ui->labelTitleType->setProperty("cssClass", "text-main-purple"); + ui->labelTitleConfirmations->setProperty("cssClass", "text-main-purple"); + ui->labelTitleDenom->setProperty("cssClass", "text-main-purple"); + ui->labelTitleDust->setProperty("cssClass", "text-main-purple"); + ui->labelTitleFee->setProperty("cssClass", "text-main-purple"); + ui->labelTitleId->setProperty("cssClass", "text-main-purple"); + ui->labelTitleQuantity->setProperty("cssClass", "text-main-purple"); + ui->labelTitleQuantity->setText("Quantity"); + ui->labelTitleSpen->setProperty("cssClass", "text-main-purple"); + ui->labelTitleVersion->setProperty("cssClass", "text-main-purple"); + + ui->labelValueAfter->setProperty("cssClass", "text-main-purple"); + ui->labelValueAmount->setProperty("cssClass", "text-main-purple"); + ui->labelValueBytes->setProperty("cssClass", "text-main-purple"); + ui->labelValueDust->setProperty("cssClass", "text-main-purple"); + ui->labelValueChange->setProperty("cssClass", "text-main-purple"); + ui->labelValueFee->setProperty("cssClass", "text-main-purple"); + ui->labelValueQuantity->setProperty("cssClass", "text-main-purple"); + + + // Values + + ui->labelValueAfter->setText("0.00 PIV"); + ui->labelValueAmount->setText("0"); + ui->labelValueBytes->setText("0"); + ui->labelValueDust->setText("No"); + ui->labelValueChange->setText("0.00 PIV"); + ui->labelValueFee->setText("0.00 PIV"); + ui->labelValueQuantity->setText("0"); + + // Buttons + + + ui->btnEsc->setText(""); + ui->btnEsc->setProperty("cssClass", "ic-close"); + + ui->btnCancel->setProperty("cssClass", "btn-dialog-cancel"); + ui->btnSave->setText("SAVE"); + ui->btnSave->setProperty("cssClass", "btn-primary"); + + connect(ui->btnEsc, SIGNAL(clicked()), this, SLOT(close())); + connect(ui->btnCancel, SIGNAL(clicked()), this, SLOT(close())); + +} + +CoinControlPivWidget::~CoinControlPivWidget() +{ + delete ui; +} diff --git a/src/qt/pivx/coincontrolpivwidget.h b/src/qt/pivx/coincontrolpivwidget.h new file mode 100644 index 0000000..0a9e86c --- /dev/null +++ b/src/qt/pivx/coincontrolpivwidget.h @@ -0,0 +1,26 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef COINCONTROLPIVWIDGET_H +#define COINCONTROLPIVWIDGET_H + +#include + +namespace Ui { +class CoinControlPivWidget; +} + +class CoinControlPivWidget : public QDialog +{ + Q_OBJECT + +public: + explicit CoinControlPivWidget(QWidget *parent = nullptr); + ~CoinControlPivWidget(); + +private: + Ui::CoinControlPivWidget *ui; +}; + +#endif // COINCONTROLPIVWIDGET_H diff --git a/src/qt/pivx/coldstakingmodel.cpp b/src/qt/pivx/coldstakingmodel.cpp new file mode 100644 index 0000000..a5212f9 --- /dev/null +++ b/src/qt/pivx/coldstakingmodel.cpp @@ -0,0 +1,183 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/coldstakingmodel.h" +#include "uint256.h" +#include "bitcoinunits.h" +#include "guiutil.h" +#include +#include "addressbook.h" + +ColdStakingModel::ColdStakingModel(WalletModel* _model, + TransactionTableModel* _tableModel, + AddressTableModel* _addressTableModel, + QObject *parent) : QAbstractTableModel(parent), model(_model), tableModel(_tableModel), addressTableModel(_addressTableModel), cachedAmount(0){ +} + +void ColdStakingModel::updateCSList() { + refresh(); + QMetaObject::invokeMethod(this, "emitDataSetChanged", Qt::QueuedConnection); +} + +void ColdStakingModel::emitDataSetChanged() { + emit dataChanged(index(0, 0, QModelIndex()), index(cachedDelegations.size(), COLUMN_COUNT, QModelIndex()) ); +} + +void ColdStakingModel::refresh() { + cachedDelegations.clear(); + cachedAmount = 0; + // First get all of the p2cs utxo inside the wallet + std::vector utxoList; + pwalletMain->GetAvailableP2CSCoins(utxoList); + + if (!utxoList.empty()) { + // Loop over each COutput into a CSDelegation + for (const auto& utxo : utxoList) { + + const auto *wtx = utxo.tx; + const QString txId = QString::fromStdString(wtx->GetHash().GetHex()); + const CTxOut& out = wtx->vout[utxo.i]; + + // First parse the cs delegation + CSDelegation delegation; + if (!parseCSDelegation(out, delegation, txId, utxo.i)) + continue; + + // it's spendable only when this wallet has the keys to spend it, a.k.a is the owner + delegation.isSpendable = utxo.fSpendable; + delegation.cachedTotalAmount += out.nValue; + delegation.delegatedUtxo.insert(txId, utxo.i); + + // Now verify if the delegation exists in the cached list + int indexDel = cachedDelegations.indexOf(delegation); + if (indexDel == -1) { + // If it doesn't, let's append it. + cachedDelegations.append(delegation); + } else { + CSDelegation& del = cachedDelegations[indexDel]; + del.delegatedUtxo.unite(delegation.delegatedUtxo); + del.cachedTotalAmount += delegation.cachedTotalAmount; + } + + // add amount to cachedAmount if either: + // - this is a owned delegation + // - this is a staked delegation, and the owner is whitelisted + if (!delegation.isSpendable && !addressTableModel->isWhitelisted(delegation.ownerAddress)) continue; + cachedAmount += delegation.cachedTotalAmount; + } + } +} + +bool ColdStakingModel::parseCSDelegation(const CTxOut& out, CSDelegation& ret, const QString& txId, const int& utxoIndex) { + txnouttype type; + std::vector addresses; + int nRequired; + + if (!ExtractDestinations(out.scriptPubKey, type, addresses, nRequired) || addresses.size() != 2) { + return error("%s : Error extracting P2CS destinations for utxo: %s-%d", + __func__, txId.toStdString(), utxoIndex); + } + + std::string stakingAddressStr = CBitcoinAddress( + addresses[0], + CChainParams::STAKING_ADDRESS + ).ToString(); + + std::string ownerAddressStr = CBitcoinAddress( + addresses[1], + CChainParams::PUBKEY_ADDRESS + ).ToString(); + + ret = CSDelegation(stakingAddressStr, ownerAddressStr); + + return true; +} + +int ColdStakingModel::rowCount(const QModelIndex &parent) const +{ + Q_UNUSED(parent); + return cachedDelegations.size(); +} + +int ColdStakingModel::columnCount(const QModelIndex &parent) const +{ + Q_UNUSED(parent); + return COLUMN_COUNT; +} + + +QVariant ColdStakingModel::data(const QModelIndex &index, int role) const +{ + if(!index.isValid()) + return QVariant(); + + int row = index.row(); + CSDelegation rec = cachedDelegations[row]; + if (role == Qt::DisplayRole || role == Qt::EditRole) { + switch (index.column()) { + case OWNER_ADDRESS: + return QString::fromStdString(rec.ownerAddress); + case OWNER_ADDRESS_LABEL: + return addressTableModel->labelForAddress(QString::fromStdString(rec.ownerAddress)); + case STAKING_ADDRESS: + return QString::fromStdString(rec.stakingAddress); + case STAKING_ADDRESS_LABEL: + return addressTableModel->labelForAddress(QString::fromStdString(rec.stakingAddress)); + case IS_WHITELISTED: + return addressTableModel->purposeForAddress(rec.ownerAddress).compare(AddressBook::AddressBookPurpose::DELEGATOR) == 0; + case IS_WHITELISTED_STRING: + return (addressTableModel->purposeForAddress(rec.ownerAddress) == AddressBook::AddressBookPurpose::DELEGATOR ? "Staking" : "Not staking"); + case TOTAL_STACKEABLE_AMOUNT_STR: + return GUIUtil::formatBalance(rec.cachedTotalAmount); + case TOTAL_STACKEABLE_AMOUNT: + return qint64(rec.cachedTotalAmount); + case IS_RECEIVED_DELEGATION: + return !rec.isSpendable; + } + } + + return QVariant(); +} + +bool ColdStakingModel::whitelist(const QModelIndex& modelIndex) +{ + QString address = modelIndex.data(Qt::DisplayRole).toString(); + if (addressTableModel->isWhitelisted(address.toStdString())) { + return error("trying to whitelist already whitelisted address"); + } + + if (!model->whitelistAddressFromColdStaking(address)) return false; + + // address whitelisted - update cached amount and row data + const int idx = modelIndex.row(); + cachedAmount += cachedDelegations[idx].cachedTotalAmount; + removeRowAndEmitDataChanged(idx); + + return true; +} + +bool ColdStakingModel::blacklist(const QModelIndex& modelIndex) +{ + QString address = modelIndex.data(Qt::DisplayRole).toString(); + if (!addressTableModel->isWhitelisted(address.toStdString())) { + return error("trying to blacklist already blacklisted address"); + } + + if (!model->blacklistAddressFromColdStaking(address)) return false; + + // address blacklisted - update cached amount and row data + const int idx = modelIndex.row(); + cachedAmount -= cachedDelegations[idx].cachedTotalAmount; + removeRowAndEmitDataChanged(idx); + + return true; +} + +void ColdStakingModel::removeRowAndEmitDataChanged(const int idx) +{ + beginRemoveRows(QModelIndex(), idx, idx); + endRemoveRows(); + emit dataChanged(index(idx, 0, QModelIndex()), index(idx, COLUMN_COUNT, QModelIndex()) ); +} + diff --git a/src/qt/pivx/coldstakingmodel.h b/src/qt/pivx/coldstakingmodel.h new file mode 100644 index 0000000..a05c680 --- /dev/null +++ b/src/qt/pivx/coldstakingmodel.h @@ -0,0 +1,92 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef COLDSTAKINGMODEL_H +#define COLDSTAKINGMODEL_H + +#include +#include "amount.h" +#include "transactiontablemodel.h" +#include "addresstablemodel.h" +#include "transactionrecord.h" +#include "walletmodel.h" + +class CSDelegation { +public: + + CSDelegation(){} + CSDelegation(const std::string& _stakingAddress, const std::string& _ownerAddress) : + stakingAddress(_stakingAddress), ownerAddress(_ownerAddress), cachedTotalAmount(0) {} + + std::string stakingAddress; + std::string ownerAddress; + /// Map of txId --> index num for stakeable utxo delegations + QMap delegatedUtxo; + // Sum of all delegations to this owner address + CAmount cachedTotalAmount; + + // coin owner side, set to true if it can be spend + bool isSpendable; + + bool operator==(const CSDelegation& obj) { + return obj.ownerAddress == ownerAddress; + } +}; + +class ColdStakingModel : public QAbstractTableModel +{ + Q_OBJECT + +public: + explicit ColdStakingModel(WalletModel* model, TransactionTableModel* _tableModel, AddressTableModel* _addressTableModel, QObject *parent = nullptr); + ~ColdStakingModel() override { + model = nullptr; + tableModel = nullptr; + addressTableModel = nullptr; + cachedDelegations.clear(); + } + + enum ColumnIndex { + OWNER_ADDRESS = 0, + OWNER_ADDRESS_LABEL = 1, + STAKING_ADDRESS = 2, + STAKING_ADDRESS_LABEL = 3, + IS_WHITELISTED = 4, + IS_WHITELISTED_STRING = 5, + DELEGATED_UTXO_IDS = 6, + TOTAL_STACKEABLE_AMOUNT_STR = 7, + TOTAL_STACKEABLE_AMOUNT = 8, + IS_RECEIVED_DELEGATION = 9, + COLUMN_COUNT = 10 + }; + + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + int columnCount(const QModelIndex &parent = QModelIndex()) const override; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + bool whitelist(const QModelIndex& modelIndex); + bool blacklist(const QModelIndex& index); + void removeRowAndEmitDataChanged(const int idx); + void updateCSList(); + CAmount getTotalAmount() const { return cachedAmount; } + + void refresh(); + +public slots: + void emitDataSetChanged(); + +private: + WalletModel* model = nullptr; + TransactionTableModel* tableModel = nullptr; + AddressTableModel* addressTableModel = nullptr; + + /** + * List with all of the grouped delegations received by this wallet + */ + QList cachedDelegations; + CAmount cachedAmount; + + bool parseCSDelegation(const CTxOut& out, CSDelegation& ret, const QString& txId, const int& utxoIndex); +}; + +#endif // COLDSTAKINGMODEL_H diff --git a/src/qt/pivx/coldstakingwidget.cpp b/src/qt/pivx/coldstakingwidget.cpp new file mode 100644 index 0000000..47db313 --- /dev/null +++ b/src/qt/pivx/coldstakingwidget.cpp @@ -0,0 +1,755 @@ +// Copyright (c) 2019-2020 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/coldstakingwidget.h" +#include "qt/pivx/forms/ui_coldstakingwidget.h" +#include "qt/pivx/qtutils.h" +#include "amount.h" +#include "guiutil.h" +#include "qt/pivx/requestdialog.h" +#include "qt/pivx/tooltipmenu.h" +#include "qt/pivx/furlistrow.h" +#include "qt/pivx/sendconfirmdialog.h" +#include "qt/pivx/addnewcontactdialog.h" +#include "qt/pivx/guitransactionsutils.h" +#include "walletmodel.h" +#include "optionsmodel.h" +#include "coincontroldialog.h" +#include "coincontrol.h" +#include "qt/pivx/csrow.h" + +#define DECORATION_SIZE 70 +#define NUM_ITEMS 3 +#define LOAD_MIN_TIME_INTERVAL 15 +#define REQUEST_LOAD_TASK 1 + + +class CSDelegationHolder : public FurListRow +{ +public: + CSDelegationHolder(); + + explicit CSDelegationHolder(bool _isLightTheme) : FurListRow(), isLightTheme(_isLightTheme){} + + CSRow* createHolder(int pos) override{ + if (!cachedRow) cachedRow = new CSRow(); + return cachedRow; + } + + void init(QWidget* holder,const QModelIndex &index, bool isHovered, bool isSelected) const override{ + CSRow *row = static_cast(holder); + row->updateState(isLightTheme, isHovered, isSelected); + + QString address = index.data(Qt::DisplayRole).toString(); + QString label = index.sibling(index.row(), ColdStakingModel::OWNER_ADDRESS_LABEL).data(Qt::DisplayRole).toString(); + if (label.isEmpty()) { + label = "Address with no label"; + } + bool isWhitelisted = index.sibling(index.row(), ColdStakingModel::IS_WHITELISTED).data(Qt::DisplayRole).toBool(); + QString amountStr = index.sibling(index.row(), ColdStakingModel::TOTAL_STACKEABLE_AMOUNT_STR).data(Qt::DisplayRole).toString(); + bool isReceivedDelegation = index.sibling(index.row(), ColdStakingModel::IS_RECEIVED_DELEGATION).data(Qt::DisplayRole).toBool(); + row->updateView(address, label, isWhitelisted, isReceivedDelegation, amountStr); + row->showMenuButton(isReceivedDelegation); + } + + QColor rectColor(bool isHovered, bool isSelected) override{ + return getRowColor(isLightTheme, isHovered, isSelected); + } + + ~CSDelegationHolder() override { + if (cachedRow) + delete cachedRow; + } + + bool isLightTheme; +private: + CSRow *cachedRow = nullptr; +}; + +ColdStakingWidget::ColdStakingWidget(PIVXGUI* parent) : + PWidget(parent), + ui(new Ui::ColdStakingWidget), + isLoading(false) +{ + ui->setupUi(this); + this->setStyleSheet(parent->styleSheet()); + + /* Containers */ + setCssProperty(ui->left, "container"); + ui->left->setContentsMargins(0,20,0,0); + setCssProperty(ui->right, "container-right"); + ui->right->setContentsMargins(0,10,0,20); + + /* Light Font */ + QFont fontLight; + fontLight.setWeight(QFont::Light); + + /* Title */ + ui->labelTitle->setText(tr("Cold Staking")); + setCssTitleScreen(ui->labelTitle); + ui->labelTitle->setFont(fontLight); + + /* Button Group */ + ui->pushLeft->setText(tr("Staker")); + ui->pushRight->setText(tr("Delegation")); + setCssProperty(ui->pushLeft, "btn-check-left"); + setCssProperty(ui->pushRight, "btn-check-right"); + + /* Subtitle */ + ui->labelSubtitle1->setText(tr("You can delegate your PIVs, letting a hot node (24/7 online node)\nstake on your behalf, while you keep the keys securely offline.")); + setCssSubtitleScreen(ui->labelSubtitle1); + spacerDiv = new QSpacerItem(40, 20, QSizePolicy::Maximum, QSizePolicy::Expanding); + + setCssProperty(ui->labelSubtitleDescription, "text-title"); + ui->lineEditOwnerAddress->setPlaceholderText(tr("Enter owner address")); + btnOwnerContact = ui->lineEditOwnerAddress->addAction(QIcon("://ic-contact-arrow-down"), QLineEdit::TrailingPosition); + setCssProperty(ui->lineEditOwnerAddress, "edit-primary-multi-book"); + ui->lineEditOwnerAddress->setAttribute(Qt::WA_MacShowFocusRect, 0); + setShadow(ui->lineEditOwnerAddress); + + ui->labelSubtitle2->setText(tr("Accept PIV delegation / Delegate PIV")); + setCssSubtitleScreen(ui->labelSubtitle2); + ui->labelSubtitle2->setContentsMargins(0,2,0,0); + + ui->pushButtonSend->setText(tr("Delegate")); + ui->pushButtonClear->setText(tr("Clear All")); + setCssBtnPrimary(ui->pushButtonSend); + setCssBtnSecondary(ui->pushButtonClear); + + connect(ui->pushButtonClear, SIGNAL(clicked()), this, SLOT(clearAll())); + + ui->labelEditTitle->setText(tr("Cold Staking address")); + setCssProperty(ui->labelEditTitle, "text-title"); + sendMultiRow = new SendMultiRow(this); + sendMultiRow->setOnlyStakingAddressAccepted(true); + ((QVBoxLayout*)ui->containerSend->layout())->insertWidget(1, sendMultiRow); + connect(sendMultiRow, &SendMultiRow::onContactsClicked, [this](){ onContactsClicked(false); }); + + // List + ui->labelListHistory->setText(tr("Delegated balance history")); + setCssProperty(ui->labelStakingTotal, "text-title-right"); + setCssProperty(ui->labelListHistory, "text-title"); + setCssProperty(ui->pushImgEmpty, "img-empty-transactions"); + ui->labelEmpty->setText(tr("No delegations yet")); + setCssProperty(ui->labelEmpty, "text-empty"); + + ui->btnCoinControl->setTitleClassAndText("btn-title-grey", "Coin Control"); + ui->btnCoinControl->setSubTitleClassAndText("text-subtitle", "Select PIV outputs to delegate."); + + ui->btnColdStaking->setTitleClassAndText("btn-title-grey", "Create Cold Staking Address"); + ui->btnColdStaking->setSubTitleClassAndText("text-subtitle", "Creates an address to receive delegated coins\nand stake them on their owner's behalf."); + ui->btnColdStaking->layout()->setMargin(0); + + connect(ui->btnCoinControl, SIGNAL(clicked()), this, SLOT(onCoinControlClicked())); + connect(ui->btnColdStaking, SIGNAL(clicked()), this, SLOT(onColdStakeClicked())); + + onDelegateSelected(true); + ui->pushRight->setChecked(true); + connect(ui->pushLeft, &QPushButton::clicked, [this](){onDelegateSelected(false);}); + connect(ui->pushRight, &QPushButton::clicked, [this](){onDelegateSelected(true);}); + + // List + setCssProperty(ui->listView, "container"); + txHolder = new CSDelegationHolder(isLightTheme()); + delegate = new FurAbstractListItemDelegate( + DECORATION_SIZE, + txHolder, + this + ); + + addressHolder = new AddressHolder(isLightTheme()); + addressDelegate = new FurAbstractListItemDelegate( + DECORATION_SIZE, + addressHolder, + this + ); + + ui->listView->setItemDelegate(delegate); + ui->listView->setIconSize(QSize(DECORATION_SIZE, DECORATION_SIZE)); + ui->listView->setMinimumHeight(NUM_ITEMS * (DECORATION_SIZE + 2)); + ui->listView->setAttribute(Qt::WA_MacShowFocusRect, false); + ui->listView->setSelectionBehavior(QAbstractItemView::SelectRows); + + ui->btnMyStakingAddresses->setChecked(true); + ui->listViewStakingAddress->setVisible(false); + + ui->btnMyStakingAddresses->setTitleClassAndText("btn-title-grey", "My Cold Staking Addresses"); + ui->btnMyStakingAddresses->setSubTitleClassAndText("text-subtitle", "List your own cold staking addresses."); + ui->btnMyStakingAddresses->layout()->setMargin(0); + ui->btnMyStakingAddresses->setRightIconClass("ic-arrow"); + + // List Addresses + setCssProperty(ui->listViewStakingAddress, "container"); + ui->listViewStakingAddress->setItemDelegate(addressDelegate); + ui->listViewStakingAddress->setIconSize(QSize(DECORATION_SIZE, DECORATION_SIZE)); + ui->listViewStakingAddress->setMinimumHeight(NUM_ITEMS * (DECORATION_SIZE + 2)); + ui->listViewStakingAddress->setAttribute(Qt::WA_MacShowFocusRect, false); + ui->listViewStakingAddress->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->listViewStakingAddress->setUniformItemSizes(true); + + connect(ui->pushButtonSend, &QPushButton::clicked, this, &ColdStakingWidget::onSendClicked); + connect(btnOwnerContact, &QAction::triggered, [this](){ onContactsClicked(true); }); + connect(ui->listView, SIGNAL(clicked(QModelIndex)), this, SLOT(handleAddressClicked(QModelIndex))); + connect(ui->listViewStakingAddress, SIGNAL(clicked(QModelIndex)), this, SLOT(handleMyColdAddressClicked(QModelIndex))); + connect(ui->btnMyStakingAddresses, SIGNAL(clicked()), this, SLOT(onMyStakingAddressesClicked())); +} + +void ColdStakingWidget::loadWalletModel(){ + if(walletModel) { + sendMultiRow->setWalletModel(walletModel); + txModel = walletModel->getTransactionTableModel(); + csModel = new ColdStakingModel(walletModel, txModel, walletModel->getAddressTableModel(), this); + ui->listView->setModel(csModel); + ui->listView->setModelColumn(ColdStakingModel::OWNER_ADDRESS); + + addressTableModel = walletModel->getAddressTableModel(); + addressesFilter = new AddressFilterProxyModel(AddressTableModel::ColdStaking, this); + addressesFilter->setSourceModel(addressTableModel); + ui->listViewStakingAddress->setModel(addressesFilter); + ui->listViewStakingAddress->setModelColumn(AddressTableModel::Address); + + connect(txModel, &TransactionTableModel::txArrived, this, &ColdStakingWidget::onTxArrived); + + updateDisplayUnit(); + + ui->containerHistoryLabel->setVisible(false); + ui->emptyContainer->setVisible(false); + ui->listView->setVisible(false); + + tryRefreshDelegations(); + } + +} + +void ColdStakingWidget::onTxArrived(const QString& hash, const bool& isCoinStake, const bool& isCSAnyType) { + if (isCSAnyType) { + tryRefreshDelegations(); + } +} + +void ColdStakingWidget::walletSynced(bool sync) { + if (this->isChainSync != sync) { + this->isChainSync = sync; + tryRefreshDelegations(); + } +} + +void ColdStakingWidget::tryRefreshDelegations() { + // Check for min update time to not reload the UI so often if the node is syncing. + int64_t now = GetTime(); + if (lastRefreshTime + LOAD_MIN_TIME_INTERVAL < now) { + lastRefreshTime = now; + refreshDelegations(); + } +} + +bool ColdStakingWidget::refreshDelegations(){ + if (isLoading) return false; + isLoading = true; + return execute(REQUEST_LOAD_TASK); +} + +void ColdStakingWidget::onDelegationsRefreshed() { + isLoading = false; + bool hasDel = csModel->rowCount() > 0; + + updateStakingTotalLabel(); + + // Update list if we are showing that section. + if (!isInDelegation) { + showList(hasDel); + ui->labelStakingTotal->setVisible(hasDel); + } +} + +void ColdStakingWidget::run(int type) { + if (type == REQUEST_LOAD_TASK) { + csModel->updateCSList(); + QMetaObject::invokeMethod(this, "onDelegationsRefreshed", Qt::QueuedConnection); + } +} +void ColdStakingWidget::onError(QString error, int type) { + isLoading = false; + inform(tr("Error loading delegations: %1").arg(error)); +} + +void ColdStakingWidget::onContactsClicked(bool ownerAdd) { + isContactOwnerSelected = ownerAdd; + onContactsClicked(); +} + +void ColdStakingWidget::onContactsClicked(){ + + if(menu && menu->isVisible()){ + menu->hide(); + } + + int contactsSize = isContactOwnerSelected ? walletModel->getAddressTableModel()->sizeRecv() : walletModel->getAddressTableModel()->sizeColdSend(); + if(contactsSize == 0) { + inform(isContactOwnerSelected ? + tr( "No receive addresses available, you can go to the receive screen and create some there!") : + tr("No contacts available, you can go to the contacts screen and add some there!") + ); + return; + } + + int height; + int width; + QPoint pos; + + if (isContactOwnerSelected) { + height = ui->lineEditOwnerAddress->height(); + width = ui->lineEditOwnerAddress->width(); + pos = ui->containerSend->rect().bottomLeft(); + pos.setY((pos.y() + (height - 12) * 3)); + } else { + height = sendMultiRow->getEditHeight(); + width = sendMultiRow->getEditWidth(); + pos = sendMultiRow->getEditLineRect().bottomLeft(); + pos.setY((pos.y() + (height - 14) * 4)); + } + + pos.setX(pos.x() + 40); + height = (contactsSize <= 2) ? height * ( 2 * (contactsSize + 1 )) : height * 4; + + if(!menuContacts){ + menuContacts = new ContactsDropdown( + width, + height, + this + ); + connect(menuContacts, &ContactsDropdown::contactSelected, [this](QString address, QString label){ + if (isContactOwnerSelected) { + ui->lineEditOwnerAddress->setText(address); + } else { + sendMultiRow->setLabel(label); + sendMultiRow->setAddress(address); + } + }); + } + + if(menuContacts->isVisible()){ + menuContacts->hide(); + return; + } + + menuContacts->setWalletModel(walletModel, isContactOwnerSelected ? AddressTableModel::Receive : AddressTableModel::ColdStakingSend); + menuContacts->resizeList(width, height); + menuContacts->setStyleSheet(styleSheet()); + menuContacts->adjustSize(); + menuContacts->move(pos); + menuContacts->show(); +} + +void ColdStakingWidget::onDelegateSelected(bool delegate){ + isInDelegation = delegate; + if (menu && menu->isVisible()) { + menu->hide(); + } + + if (menuAddresses && menuAddresses->isVisible()) { + menuAddresses->hide(); + } + + if(isInDelegation){ + ui->btnCoinControl->setVisible(true); + ui->containerSend->setVisible(true); + ui->containerBtn->setVisible(true); + ui->emptyContainer->setVisible(false); + ui->listView->setVisible(false); + ui->containerHistoryLabel->setVisible(false); + ui->btnColdStaking->setVisible(false); + ui->btnMyStakingAddresses->setVisible(false); + ui->listViewStakingAddress->setVisible(false); + if (ui->rightContainer->count() == 2) + ui->rightContainer->addItem(spacerDiv); + }else{ + ui->btnCoinControl->setVisible(false); + ui->containerSend->setVisible(false); + ui->containerBtn->setVisible(false); + ui->btnColdStaking->setVisible(true); + showList(csModel->rowCount() > 0); + ui->btnMyStakingAddresses->setVisible(true); + ui->listViewStakingAddress->setVisible(false); + } +} + +void ColdStakingWidget::updateDisplayUnit() { + if (walletModel && walletModel->getOptionsModel()) { + nDisplayUnit = walletModel->getOptionsModel()->getDisplayUnit(); + } +} + +void ColdStakingWidget::showList(bool show){ + ui->emptyContainer->setVisible(!show); + ui->listView->setVisible(show); + ui->containerHistoryLabel->setVisible(show); +} + +void ColdStakingWidget::onSendClicked(){ + if (!walletModel || !walletModel->getOptionsModel() || !verifyWalletUnlocked()) + return; + + if (!walletModel->isColdStakingNetworkelyEnabled()) { + inform(tr("Cold staking is networkely disabled")); + return; + } + + if (!sendMultiRow->validate()) { + inform(tr("Invalid entry")); + return; + } + + SendCoinsRecipient dest = sendMultiRow->getValue(); + dest.isP2CS = true; + + // Amount must be >= minColdStakingAmount + const CAmount& minColdStakingAmount = walletModel->getMinColdStakingAmount(); + if (dest.amount < minColdStakingAmount) { + inform(tr("Invalid entry, minimum delegable amount is ") + + BitcoinUnits::formatWithUnit(nDisplayUnit, minColdStakingAmount)); + return; + } + + QString inputOwner = ui->lineEditOwnerAddress->text(); + bool isOwnerEmpty = inputOwner.isEmpty(); + if (!isOwnerEmpty && !walletModel->validateAddress(inputOwner)) { + inform(tr("Owner address invalid")); + return; + } + + + bool isStakingAddressFromThisWallet = walletModel->isMine(dest.address); + bool isOwnerAddressFromThisWallet = isOwnerEmpty; + + if (!isOwnerAddressFromThisWallet) { + isOwnerAddressFromThisWallet = walletModel->isMine(inputOwner); + + // Warn the user if the owner address is not from this wallet + if (!isOwnerAddressFromThisWallet && + !ask(tr("ALERT!"), + tr("Delegating to an external owner address!\n\n" + "The delegated coins will NOT be spendable by this wallet.\nSpending these coins will need to be done from the wallet or\ndevice containing the owner address.\n\n" + "Do you wish to proceed?")) + ) { + return; + } + } + + // Don't try to delegate the balance if both addresses are from this wallet + if (isStakingAddressFromThisWallet && isOwnerAddressFromThisWallet) { + inform(tr("Staking address corresponds to this wallet, change it to an external node")); + return; + } + + dest.ownerAddress = inputOwner; + QList recipients; + recipients.append(dest); + + // Prepare transaction for getting txFee earlier + WalletModelTransaction currentTransaction(recipients); + WalletModel::SendCoinsReturn prepareStatus = walletModel->prepareTransaction(currentTransaction, CoinControlDialog::coinControl); + + // process prepareStatus and on error generate message shown to user + GuiTransactionsUtils::ProcessSendCoinsReturnAndInform( + this, + prepareStatus, + walletModel, + BitcoinUnits::formatWithUnit(nDisplayUnit, currentTransaction.getTransactionFee()), + true + ); + + if (prepareStatus.status != WalletModel::OK) { + inform(tr("Cannot create transaction.")); + return; + } + + showHideOp(true); + TxDetailDialog* dialog = new TxDetailDialog(window); + dialog->setDisplayUnit(nDisplayUnit); + dialog->setData(walletModel, currentTransaction); + dialog->adjustSize(); + openDialogWithOpaqueBackgroundY(dialog, window, 3, 5); + + if(dialog->isConfirm()){ + // now send the prepared transaction + WalletModel::SendCoinsReturn sendStatus = dialog->getStatus(); + // process sendStatus and on error generate message shown to user + GuiTransactionsUtils::ProcessSendCoinsReturnAndInform( + this, + sendStatus, + walletModel + ); + + if (sendStatus.status == WalletModel::OK) { + clearAll(); + inform(tr("Coins delegated")); + } + } + + dialog->deleteLater(); +} + +void ColdStakingWidget::clearAll() { + if (sendMultiRow) sendMultiRow->clear(); + ui->lineEditOwnerAddress->clear(); + if (CoinControlDialog::coinControl) { + CoinControlDialog::coinControl->SetNull(); + ui->btnCoinControl->setActive(false); + } +} + +void ColdStakingWidget::onCoinControlClicked(){ + if(isInDelegation) { + if (walletModel->getBalance() > 0) { + if (!coinControlDialog) { + coinControlDialog = new CoinControlDialog(); + coinControlDialog->setModel(walletModel); + } else { + coinControlDialog->refreshDialog(); + } + coinControlDialog->exec(); + ui->btnCoinControl->setActive(CoinControlDialog::coinControl->HasSelected()); + } else { + inform(tr("You don't have any PIV to select.")); + } + } +} + +void ColdStakingWidget::onColdStakeClicked() { + showAddressGenerationDialog(false); +} + +void ColdStakingWidget::showAddressGenerationDialog(bool isPaymentRequest) { + if(walletModel && !isShowingDialog) { + if (!verifyWalletUnlocked()) return; + isShowingDialog = true; + showHideOp(true); + RequestDialog *dialog = new RequestDialog(window); + dialog->setWalletModel(walletModel); + dialog->setPaymentRequest(isPaymentRequest); + openDialogWithOpaqueBackgroundY(dialog, window, 3.5, 12); + if (dialog->res == 1){ + inform(tr("URI copied to clipboard")); + } else if (dialog->res == 2){ + inform(tr("Address copied to clipboard")); + } + dialog->deleteLater(); + isShowingDialog = false; + } +} + +void ColdStakingWidget::handleMyColdAddressClicked(const QModelIndex &_index) { + + ui->listViewStakingAddress->setCurrentIndex(_index); + + QRect rect = ui->listViewStakingAddress->visualRect(_index); + QPoint pos = rect.topRight(); + pos.setX( parentWidget()->rect().right() - (DECORATION_SIZE * 1.5) ); + pos.setY(pos.y() + (DECORATION_SIZE * 2.5)); + + QModelIndex rIndex = addressesFilter->mapToSource(_index); + + if(!menuAddresses){ + menuAddresses = new TooltipMenu(window, this); + menuAddresses->setEditBtnText(tr("Copy")); + menuAddresses->setDeleteBtnText(tr("Edit")); + menuAddresses->setCopyBtnVisible(false); + menuAddresses->adjustSize(); + connect(menuAddresses, &TooltipMenu::message, this, &AddressesWidget::message); + connect(menuAddresses, SIGNAL(onEditClicked()), this, SLOT(onAddressCopyClicked())); + connect(menuAddresses, SIGNAL(onDeleteClicked()), this, SLOT(onAddressEditClicked())); + }else { + menuAddresses->hide(); + } + + this->addressIndex = rIndex; + + menuAddresses->move(pos); + menuAddresses->show(); +} + +void ColdStakingWidget::handleAddressClicked(const QModelIndex &rIndex) { + + bool isReceivedDelegation = rIndex.sibling(rIndex.row(), ColdStakingModel::IS_RECEIVED_DELEGATION).data(Qt::DisplayRole).toBool(); + + ui->listView->setCurrentIndex(rIndex); + QRect rect = ui->listView->visualRect(rIndex); + QPoint pos = rect.topRight(); + pos.setX(pos.x() - (DECORATION_SIZE * 2)); + pos.setY(pos.y() + (DECORATION_SIZE * 2)); + + if(!this->menu){ + this->menu = new TooltipMenu(window, this); + this->menu->setEditBtnText(tr("Stake")); + this->menu->setDeleteBtnText(tr("Blacklist")); + this->menu->setCopyBtnText(tr("Edit Label")); + this->menu->setLastBtnText(tr("Copy owner\naddress"), 40); + this->menu->setLastBtnVisible(true); + this->menu->setMinimumHeight(157); + this->menu->setFixedHeight(157); + this->menu->setMinimumWidth(125); + connect(this->menu, &TooltipMenu::message, this, &AddressesWidget::message); + connect(this->menu, SIGNAL(onEditClicked()), this, SLOT(onEditClicked())); + connect(this->menu, SIGNAL(onDeleteClicked()), this, SLOT(onDeleteClicked())); + connect(this->menu, SIGNAL(onCopyClicked()), this, SLOT(onLabelClicked())); + connect(this->menu, SIGNAL(onLastClicked()), this, SLOT(onCopyOwnerClicked())); + }else { + this->menu->hide(); + } + + this->index = rIndex; + + if (isReceivedDelegation) { + bool isWhitelisted = rIndex.sibling(rIndex.row(), ColdStakingModel::IS_WHITELISTED).data( + Qt::DisplayRole).toBool(); + this->menu->setDeleteBtnVisible(isWhitelisted); + this->menu->setEditBtnVisible(!isWhitelisted); + this->menu->setCopyBtnVisible(true); + this->menu->setMinimumHeight(157); + } else { + // owner side + this->menu->setDeleteBtnVisible(false); + this->menu->setEditBtnVisible(false); + this->menu->setCopyBtnVisible(false); + this->menu->setMinimumHeight(60); + } + + this->menu->adjustSize(); + + menu->move(pos); + menu->show(); +} + +void ColdStakingWidget::onAddressCopyClicked() { + GUIUtil::setClipboard(addressIndex.data(Qt::DisplayRole).toString()); + inform(tr("Address copied")); +} +void ColdStakingWidget::onAddressEditClicked() { + onLabelClicked( + tr("Edit Cold Address Label"), + addressIndex, + false + ); +} + +void ColdStakingWidget::onEditClicked() { + // whitelist address + if (!csModel->whitelist(index)) { + inform(tr("Whitelist failed, please check the logs")); + return; + } + QString label = index.sibling(index.row(), ColdStakingModel::OWNER_ADDRESS_LABEL).data(Qt::DisplayRole).toString(); + if (label.isEmpty()) { + label = index.data(Qt::DisplayRole).toString(); + } + updateStakingTotalLabel(); + inform(label + tr(" staking!")); +} + +void ColdStakingWidget::onDeleteClicked() { + // blacklist address + if (!csModel->blacklist(index)) { + inform(tr("Blacklist failed, please check the logs")); + return; + } + QString label = index.sibling(index.row(), ColdStakingModel::OWNER_ADDRESS_LABEL).data(Qt::DisplayRole).toString(); + if (label.isEmpty()) { + label = index.data(Qt::DisplayRole).toString(); + } + updateStakingTotalLabel(); + inform(label + tr(" blacklisted from staking")); +} + +void ColdStakingWidget::onCopyClicked() { + // show address info +} + +void ColdStakingWidget::onCopyOwnerClicked() { + QString owner = index.data(Qt::DisplayRole).toString(); + GUIUtil::setClipboard(owner); + inform(tr("Owner address copied")); +} + +void ColdStakingWidget::onLabelClicked(){ + onLabelClicked( + tr("Edit Owner Address Label"), + index, + false + ); +} + +void ColdStakingWidget::onLabelClicked(QString dialogTitle, const QModelIndex &index, const bool& isMyColdStakingAddresses) { + if(walletModel && !isShowingDialog) { + isShowingDialog = true; + showHideOp(true); + AddNewContactDialog *dialog = new AddNewContactDialog(window); + dialog->setTexts(dialogTitle); + QString qAddress = index.data(Qt::DisplayRole).toString(); + dialog->setData(qAddress, walletModel->getAddressTableModel()->labelForAddress(qAddress)); + if (openDialogWithOpaqueBackgroundY(dialog, window, 3.5, 6)) { + QString label = dialog->getLabel(); + std::string stdString = qAddress.toStdString(); + std::string purpose = walletModel->getAddressTableModel()->purposeForAddress(stdString); + const CBitcoinAddress address = CBitcoinAddress(stdString.data()); + if (!label.isEmpty() && walletModel->updateAddressBookLabels( + address.Get(), + label.toUtf8().constData(), + purpose + )) { + if (isMyColdStakingAddresses) { + addressTableModel->notifyChange(index); + } else + csModel->updateCSList(); + inform(tr("Address label saved")); + } else { + inform(tr("Error storing address label")); + } + } + isShowingDialog = false; + } +} + +void ColdStakingWidget::onMyStakingAddressesClicked(){ + bool isVisible = ui->listViewStakingAddress->isVisible(); + if(!isVisible){ + ui->btnMyStakingAddresses->setRightIconClass("btn-dropdown", true); + ui->listViewStakingAddress->setVisible(true); + ui->rightContainer->removeItem(spacerDiv); + ui->listViewStakingAddress->update(); + }else{ + ui->btnMyStakingAddresses->setRightIconClass("ic-arrow", true); + ui->rightContainer->addItem(spacerDiv); + ui->listViewStakingAddress->setVisible(false); + } +} + +void ColdStakingWidget::changeTheme(bool isLightTheme, QString& theme){ + static_cast(delegate->getRowFactory())->isLightTheme = isLightTheme; + static_cast(addressDelegate->getRowFactory())->isLightTheme = isLightTheme; + ui->listView->update(); +} + +void ColdStakingWidget::updateStakingTotalLabel() +{ + const CAmount& total = csModel->getTotalAmount(); + ui->labelStakingTotal->setText(tr("Total Staking: %1").arg( + (total == 0) ? "0.00 PIV" : GUIUtil::formatBalance(total, nDisplayUnit)) + ); +} + +ColdStakingWidget::~ColdStakingWidget(){ + if (sendMultiRow) + delete sendMultiRow; + if (txHolder) + delete txHolder; + if (csModel) + delete csModel; + if (addressHolder) + delete addressHolder; + + ui->rightContainer->removeItem(spacerDiv); + delete spacerDiv; + delete ui; +} diff --git a/src/qt/pivx/coldstakingwidget.h b/src/qt/pivx/coldstakingwidget.h new file mode 100644 index 0000000..6b9582c --- /dev/null +++ b/src/qt/pivx/coldstakingwidget.h @@ -0,0 +1,119 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef COLDSTAKINGWIDGET_H +#define COLDSTAKINGWIDGET_H + +#include "qt/pivx/pwidget.h" +#include "qt/pivx/furabstractlistitemdelegate.h" +#include "qt/pivx/txviewholder.h" +#include "qt/pivx/tooltipmenu.h" +#include "qt/pivx/sendmultirow.h" +#include "qt/pivx/coldstakingmodel.h" +#include "qt/pivx/contactsdropdown.h" +#include "qt/pivx/addressholder.h" +#include "transactiontablemodel.h" +#include "addresstablemodel.h" +#include "addressfilterproxymodel.h" +#include "coincontroldialog.h" + +#include +#include +#include +#include +#include + +class PIVXGUI; +class WalletModel; +class CSDelegationHolder; + +namespace Ui { +class ColdStakingWidget; +} + +QT_BEGIN_NAMESPACE +class QModelIndex; +QT_END_NAMESPACE + +class ColdStakingWidget : public PWidget +{ + Q_OBJECT + +public: + explicit ColdStakingWidget(PIVXGUI* parent); + ~ColdStakingWidget(); + + void loadWalletModel() override; + void run(int type) override; + void onError(QString error, int type) override; + +public slots: + void walletSynced(bool sync); + +private slots: + void changeTheme(bool isLightTheme, QString &theme) override; + void handleAddressClicked(const QModelIndex &index); + void handleMyColdAddressClicked(const QModelIndex &rIndex); + void onCoinControlClicked(); + void onColdStakeClicked(); + void updateDisplayUnit(); + void showList(bool show); + void onSendClicked(); + void onDelegateSelected(bool delegate); + void onEditClicked(); + void onDeleteClicked(); + void onCopyClicked(); + void onCopyOwnerClicked(); + void onAddressCopyClicked(); + void onAddressEditClicked(); + void onTxArrived(const QString& hash, const bool& isCoinStake, const bool& isCSAnyType); + void onContactsClicked(bool ownerAdd); + void clearAll(); + void onLabelClicked(); + void onMyStakingAddressesClicked(); + void onDelegationsRefreshed(); + +private: + Ui::ColdStakingWidget *ui = nullptr; + FurAbstractListItemDelegate *delegate = nullptr; + FurAbstractListItemDelegate *addressDelegate = nullptr; + TransactionTableModel* txModel = nullptr; + AddressHolder* addressHolder = nullptr; + AddressTableModel* addressTableModel = nullptr; + AddressFilterProxyModel *addressesFilter = nullptr; + ColdStakingModel* csModel = nullptr; + CSDelegationHolder *txHolder = nullptr; + CoinControlDialog *coinControlDialog = nullptr; + QAction *btnOwnerContact = nullptr; + QSpacerItem *spacerDiv = nullptr; + + bool isInDelegation = true; + + ContactsDropdown *menuContacts = nullptr; + TooltipMenu* menu = nullptr; + TooltipMenu* menuAddresses = nullptr; + SendMultiRow *sendMultiRow = nullptr; + bool isShowingDialog = false; + bool isChainSync = false; + + bool isContactOwnerSelected; + int64_t lastRefreshTime = 0; + std::atomic isLoading; + + // Cached index + QModelIndex index; + QModelIndex addressIndex; + + + int nDisplayUnit; + + void showAddressGenerationDialog(bool isPaymentRequest); + void onContactsClicked(); + void tryRefreshDelegations(); + bool refreshDelegations(); + void onLabelClicked(QString dialogTitle, const QModelIndex &index, const bool& isMyColdStakingAddresses); + void updateStakingTotalLabel(); +}; + +#endif // COLDSTAKINGWIDGET_H diff --git a/src/qt/pivx/contactdropdownrow.cpp b/src/qt/pivx/contactdropdownrow.cpp new file mode 100644 index 0000000..49942a9 --- /dev/null +++ b/src/qt/pivx/contactdropdownrow.cpp @@ -0,0 +1,33 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/contactdropdownrow.h" +#include "qt/pivx/forms/ui_contactdropdownrow.h" + +ContactDropdownRow::ContactDropdownRow(QWidget *parent) : + QWidget(parent), + ui(new Ui::ContactDropdownRow) +{ + ui->setupUi(this); + ui->lblAddress->setProperty("cssClass", "text-list-contact-body1"); + ui->lblLabel->setProperty("cssClass", "text-list-contact-title1"); +} + +void ContactDropdownRow::init(bool isLightTheme, bool isHover) { + update(isLightTheme, isHover, false); +} + +void ContactDropdownRow::update(bool isLightTheme, bool isHover, bool isSelected){ + ui->lblDivisory->setStyleSheet("background-color:#bababa"); +} + +void ContactDropdownRow::setData(QString address, QString label){ + ui->lblAddress->setText(address); + ui->lblLabel->setText(label); +} + +ContactDropdownRow::~ContactDropdownRow() +{ + delete ui; +} diff --git a/src/qt/pivx/contactdropdownrow.h b/src/qt/pivx/contactdropdownrow.h new file mode 100644 index 0000000..c15460a --- /dev/null +++ b/src/qt/pivx/contactdropdownrow.h @@ -0,0 +1,30 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef CONTACTDROPDOWNROW_H +#define CONTACTDROPDOWNROW_H + +#include + +namespace Ui { +class ContactDropdownRow; +} + +class ContactDropdownRow : public QWidget +{ + Q_OBJECT + +public: + explicit ContactDropdownRow(QWidget *parent = nullptr); + ~ContactDropdownRow(); + + void init(bool isLightTheme, bool isHover); + void update(bool isLightTheme, bool isHover, bool isSelected); + void setData(QString address, QString label); + +private: + Ui::ContactDropdownRow *ui; +}; + +#endif // CONTACTDROPDOWNROW_H diff --git a/src/qt/pivx/contactsdropdown.cpp b/src/qt/pivx/contactsdropdown.cpp new file mode 100644 index 0000000..5bd9da6 --- /dev/null +++ b/src/qt/pivx/contactsdropdown.cpp @@ -0,0 +1,127 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/contactsdropdown.h" + +#include +#include +#include "qt/pivx/addresslabelrow.h" +#include "qt/pivx/contactdropdownrow.h" +#include "qt/pivx/qtutils.h" +#include "qt/pivx/furlistrow.h" +#include "walletmodel.h" +#include "addresstablemodel.h" + +#define DECORATION_SIZE 70 +#define NUM_ITEMS 3 + +class ContViewHolder : public FurListRow +{ +public: + ContViewHolder(); + + explicit ContViewHolder(bool _isLightTheme) : FurListRow(), isLightTheme(_isLightTheme){} + + ContactDropdownRow* createHolder(int pos) override{ + if (!row) row = new ContactDropdownRow(); + row->init(true, false); + return row; + } + + void init(QWidget* holder,const QModelIndex &index, bool isHovered, bool isSelected) const override{ + ContactDropdownRow* row = static_cast(holder); + row->update(isLightTheme, isHovered, isSelected); + QString address = index.data(Qt::DisplayRole).toString(); + QModelIndex sibling = index.sibling(index.row(), AddressTableModel::Label); + QString label = sibling.data(Qt::DisplayRole).toString(); + row->setData(address, label); + } + + QColor rectColor(bool isHovered, bool isSelected) override{ + return getRowColor(isLightTheme, isHovered, isSelected); + } + + ~ContViewHolder() override{} + + bool isLightTheme; + ContactDropdownRow* row = nullptr; +}; + +ContactsDropdown::ContactsDropdown(int minWidth, int minHeight, PWidget *parent) : + PWidget(parent) +{ + + this->setStyleSheet(parent->styleSheet()); + + delegate = new FurAbstractListItemDelegate( + DECORATION_SIZE, + new ContViewHolder(isLightTheme()), + this + ); + + setMinimumWidth(minWidth); + setMinimumHeight(minHeight); + setContentsMargins(0,0,0,0); + setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + + frameList = new QFrame(this); + frameList->setProperty("cssClass", "container-border-light"); + frameList->setContentsMargins(10,10,10,10); + frameList->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + list = new QListView(frameList); + list->setMinimumWidth(minWidth); + list->setProperty("cssClass", "container-border-light"); + list->setItemDelegate(delegate); + list->setIconSize(QSize(DECORATION_SIZE, DECORATION_SIZE)); + list->setMinimumHeight(NUM_ITEMS * (DECORATION_SIZE + 2)); + list->setAttribute(Qt::WA_MacShowFocusRect, false); + list->setSelectionBehavior(QAbstractItemView::SelectRows); + + connect(list, SIGNAL(clicked(QModelIndex)), this, SLOT(handleClick(QModelIndex))); +} + +void ContactsDropdown::setWalletModel(WalletModel* _model, const QString& type){ + if (!model) { + model = _model->getAddressTableModel(); + this->filter = new AddressFilterProxyModel(type, this); + this->filter->setSourceModel(model); + list->setModel(this->filter); + list->setModelColumn(AddressTableModel::Address); + } else { + setType(type); + } +} + +void ContactsDropdown::setType(const QString& type) { + if (filter) + filter->setType(type); +} + +void ContactsDropdown::resizeList(int minWidth, int mintHeight){ + list->setMinimumWidth(minWidth); + setMinimumWidth(minWidth); + setMinimumHeight(mintHeight); + frameList->setMinimumHeight(mintHeight); + frameList->setMinimumWidth(minWidth); + list->setMinimumHeight(mintHeight); + list->resize(mintHeight,mintHeight); + list->adjustSize(); + frameList->resize(minWidth, mintHeight); + resize(minWidth, mintHeight); + adjustSize(); + update(); +} + +void ContactsDropdown::handleClick(const QModelIndex &index){ + QModelIndex rIndex = (filter) ? filter->mapToSource(index) : index; + QString address = rIndex.data(Qt::DisplayRole).toString(); + QModelIndex sibling = rIndex.sibling(rIndex.row(), AddressTableModel::Label); + QString label = sibling.data(Qt::DisplayRole).toString(); + emit contactSelected(address, label); + close(); +} + +void ContactsDropdown::changeTheme(bool isLightTheme, QString& theme){ + static_cast(this->delegate->getRowFactory())->isLightTheme = isLightTheme; +} diff --git a/src/qt/pivx/contactsdropdown.h b/src/qt/pivx/contactsdropdown.h new file mode 100644 index 0000000..6ef01e7 --- /dev/null +++ b/src/qt/pivx/contactsdropdown.h @@ -0,0 +1,49 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef CONTACTSDROPDOWN_H +#define CONTACTSDROPDOWN_H + +#include "addresstablemodel.h" +#include "qt/pivx/pwidget.h" +#include "qt/pivx/contactdropdownrow.h" +#include "qt/pivx/furabstractlistitemdelegate.h" +#include "qt/pivx/addressfilterproxymodel.h" +#include +#include +#include + + +class ContactsViewDelegate; +class ContViewHolder; +class WalletModel; + + +QT_BEGIN_NAMESPACE +class QModelIndex; +QT_END_NAMESPACE + +class ContactsDropdown : public PWidget +{ + Q_OBJECT +public: + explicit ContactsDropdown(int minWidth, int minHeight, PWidget *parent = nullptr); + + void resizeList(int minWidth, int mintHeight); + void setWalletModel(WalletModel* _model, const QString& type); + void setType(const QString& type); + void changeTheme(bool isLightTheme, QString& theme) override; +signals: + void contactSelected(QString address, QString label); +private: + FurAbstractListItemDelegate* delegate = nullptr; + AddressTableModel* model = nullptr; + AddressFilterProxyModel *filter = nullptr; + QListView *list; + QFrame *frameList; +private slots: + void handleClick(const QModelIndex &index); +}; + +#endif // CONTACTSDROPDOWN_H diff --git a/src/qt/pivx/csrow.cpp b/src/qt/pivx/csrow.cpp new file mode 100644 index 0000000..0723860 --- /dev/null +++ b/src/qt/pivx/csrow.cpp @@ -0,0 +1,58 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/csrow.h" +#include "qt/pivx/forms/ui_csrow.h" + +CSRow::CSRow(QWidget *parent) : + QWidget(parent), + ui(new Ui::CSRow) +{ + ui->setupUi(this); + ui->labelName->setProperty("cssClass", "text-list-title1"); + ui->labelAddress->setProperty("cssClass", "text-list-body2"); + ui->labelStaking->setProperty("cssClass", "text-list-caption-medium"); + ui->labelAmount->setProperty("cssClass", "text-list-amount-unconfirmed"); +} + +void CSRow::updateView(const QString& address, const QString& label, bool isStaking, bool isReceivedDelegation, const QString& amount) { + ui->labelName->setText(label); + ui->labelAddress->setText(address); + ui->labelAmount->setText(amount); + + if (isReceivedDelegation) { + ui->labelStaking->setText(tr(isStaking ? "Staking" : "Not staking")); + } else { + ui->labelStaking->setText(tr("Own delegation")); + } +} + +void CSRow::updateState(bool isLightTheme, bool isHovered, bool isSelected) { + ui->lblDivisory->setStyleSheet((isLightTheme) ? "background-color:#bababa" : "background-color:#40ffffff"); + if (fShowMenuButton) { + ui->pushButtonMenu->setVisible(isHovered); + } +} + +void CSRow::showMenuButton(bool show) { + this->fShowMenuButton = show; +} + +void CSRow::enterEvent(QEvent *) { + if (fShowMenuButton) { + ui->pushButtonMenu->setVisible(true); + update(); + } +} + +void CSRow::leaveEvent(QEvent *) { + if (fShowMenuButton) { + ui->pushButtonMenu->setVisible(false); + update(); + } +} + +CSRow::~CSRow(){ + delete ui; +} diff --git a/src/qt/pivx/csrow.h b/src/qt/pivx/csrow.h new file mode 100644 index 0000000..27a6c1f --- /dev/null +++ b/src/qt/pivx/csrow.h @@ -0,0 +1,35 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef CSROW_H +#define CSROW_H + +#include + +namespace Ui { +class CSRow; +} + +class CSRow : public QWidget +{ + Q_OBJECT + +public: + explicit CSRow(QWidget *parent = nullptr); + ~CSRow(); + + void updateView(const QString& address, const QString& label, bool isStaking, bool isReceivedDelegation, const QString& amount); + void updateState(bool isLightTheme, bool isHovered, bool isSelected); + void showMenuButton(bool show); +protected: + virtual void enterEvent(QEvent *); + virtual void leaveEvent(QEvent *); + +private: + Ui::CSRow *ui; + + bool fShowMenuButton = true; +}; + +#endif // CSROW_H diff --git a/src/qt/pivx/dashboardwidget.cpp b/src/qt/pivx/dashboardwidget.cpp new file mode 100644 index 0000000..834aec9 --- /dev/null +++ b/src/qt/pivx/dashboardwidget.cpp @@ -0,0 +1,842 @@ +// Copyright (c) 2019-2020 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/dashboardwidget.h" +#include "qt/pivx/forms/ui_dashboardwidget.h" +#include "qt/pivx/sendconfirmdialog.h" +#include "qt/pivx/txrow.h" +#include "qt/pivx/qtutils.h" +#include "guiutil.h" +#include "walletmodel.h" +#include "clientmodel.h" +#include "optionsmodel.h" +#include "utiltime.h" +#include +#include +#include +#include + +#define DECORATION_SIZE 65 +#define NUM_ITEMS 3 +#define SHOW_EMPTY_CHART_VIEW_THRESHOLD 4000 +#define REQUEST_LOAD_TASK 1 +#define CHART_LOAD_MIN_TIME_INTERVAL 15 + +DashboardWidget::DashboardWidget(PIVXGUI* parent) : + PWidget(parent), + ui(new Ui::DashboardWidget) +{ + ui->setupUi(this); + + txHolder = new TxViewHolder(isLightTheme()); + txViewDelegate = new FurAbstractListItemDelegate( + DECORATION_SIZE, + txHolder, + this + ); + + this->setStyleSheet(parent->styleSheet()); + this->setContentsMargins(0,0,0,0); + + // Containers + setCssProperty({this, ui->left}, "container"); + ui->left->setContentsMargins(0,0,0,0); + setCssProperty(ui->right, "container-right"); + ui->right->setContentsMargins(20,20,20,0); + + // Title + ui->labelTitle2->setText(tr("Staking Rewards")); + setCssTitleScreen(ui->labelTitle); + setCssTitleScreen(ui->labelTitle2); + + /* Subtitle */ + ui->labelSubtitle->setText(tr("You can view your account's history")); + setCssSubtitleScreen(ui->labelSubtitle); + + // Staking Information + ui->labelMessage->setText(tr("Amount of PIV and zPIV staked.")); + setCssSubtitleScreen(ui->labelMessage); + setCssProperty(ui->labelSquarePiv, "square-chart-piv"); + setCssProperty(ui->labelSquarezPiv, "square-chart-zpiv"); + setCssProperty(ui->labelPiv, "text-chart-piv"); + setCssProperty(ui->labelZpiv, "text-chart-zpiv"); + + // Staking Amount + QFont fontBold; + fontBold.setWeight(QFont::Bold); + + setCssProperty(ui->labelChart, "legend-chart"); + + ui->labelAmountZpiv->setText("0 zPIV"); + ui->labelAmountPiv->setText("0 PIV"); + setCssProperty(ui->labelAmountPiv, "text-stake-piv-disable"); + setCssProperty(ui->labelAmountZpiv, "text-stake-zpiv-disable"); + + setCssProperty({ui->pushButtonAll, ui->pushButtonMonth, ui->pushButtonYear}, "btn-check-time"); + setCssProperty({ui->comboBoxMonths, ui->comboBoxYears}, "btn-combo-chart-selected"); + + ui->comboBoxMonths->setView(new QListView()); + ui->comboBoxMonths->setStyleSheet("selection-background-color:transparent; selection-color:transparent;"); + ui->comboBoxYears->setView(new QListView()); + ui->comboBoxYears->setStyleSheet("selection-background-color:transparent; selection-color:transparent;"); + ui->pushButtonYear->setChecked(true); + + setCssProperty(ui->pushButtonChartArrow, "btn-chart-arrow"); + setCssProperty(ui->pushButtonChartRight, "btn-chart-arrow-right"); + + connect(ui->comboBoxYears, SIGNAL(currentIndexChanged(const QString&)), this,SLOT(onChartYearChanged(const QString&))); + + // Sort Transactions + SortEdit* lineEdit = new SortEdit(ui->comboBoxSort); + initComboBox(ui->comboBoxSort, lineEdit); + connect(lineEdit, &SortEdit::Mouse_Pressed, [this](){ui->comboBoxSort->showPopup();}); + ui->comboBoxSort->addItem("Date desc", SortTx::DATE_DESC); + ui->comboBoxSort->addItem("Date asc", SortTx::DATE_ASC); + ui->comboBoxSort->addItem("Amount desc", SortTx::AMOUNT_ASC); + ui->comboBoxSort->addItem("Amount asc", SortTx::AMOUNT_DESC); + connect(ui->comboBoxSort, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(onSortChanged(const QString&))); + + // Sort type + SortEdit* lineEditType = new SortEdit(ui->comboBoxSortType); + initComboBox(ui->comboBoxSortType, lineEditType); + connect(lineEditType, &SortEdit::Mouse_Pressed, [this](){ui->comboBoxSortType->showPopup();}); + + QSettings settings; + ui->comboBoxSortType->addItem(tr("All"), TransactionFilterProxy::ALL_TYPES); + ui->comboBoxSortType->addItem(tr("Received"), TransactionFilterProxy::TYPE(TransactionRecord::RecvWithAddress) | TransactionFilterProxy::TYPE(TransactionRecord::RecvFromOther)); + ui->comboBoxSortType->addItem(tr("Sent"), TransactionFilterProxy::TYPE(TransactionRecord::SendToAddress) | TransactionFilterProxy::TYPE(TransactionRecord::SendToOther)); + ui->comboBoxSortType->addItem(tr("Mined"), TransactionFilterProxy::TYPE(TransactionRecord::Generated)); + ui->comboBoxSortType->addItem(tr("Minted"), TransactionFilterProxy::TYPE(TransactionRecord::StakeMint)); + ui->comboBoxSortType->addItem(tr("MN reward"), TransactionFilterProxy::TYPE(TransactionRecord::MNReward)); + ui->comboBoxSortType->addItem(tr("To yourself"), TransactionFilterProxy::TYPE(TransactionRecord::SendToSelf)); + ui->comboBoxSortType->addItem(tr("Cold stakes"), TransactionFilterProxy::TYPE(TransactionRecord::StakeDelegated)); + ui->comboBoxSortType->addItem(tr("Hot stakes"), TransactionFilterProxy::TYPE(TransactionRecord::StakeHot)); + ui->comboBoxSortType->addItem(tr("Delegated"), TransactionFilterProxy::TYPE(TransactionRecord::P2CSDelegationSent) | TransactionFilterProxy::TYPE(TransactionRecord::P2CSDelegationSentOwner)); + ui->comboBoxSortType->addItem(tr("Delegations"), TransactionFilterProxy::TYPE(TransactionRecord::P2CSDelegation)); + ui->comboBoxSortType->setCurrentIndex(0); + connect(ui->comboBoxSortType, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(onSortTypeChanged(const QString&))); + + // Transactions + setCssProperty(ui->listTransactions, "container"); + ui->listTransactions->setItemDelegate(txViewDelegate); + ui->listTransactions->setIconSize(QSize(DECORATION_SIZE, DECORATION_SIZE)); + ui->listTransactions->setMinimumHeight(NUM_ITEMS * (DECORATION_SIZE + 2)); + ui->listTransactions->setAttribute(Qt::WA_MacShowFocusRect, false); + ui->listTransactions->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->listTransactions->setLayoutMode(QListView::LayoutMode::Batched); + ui->listTransactions->setBatchSize(50); + ui->listTransactions->setUniformItemSizes(true); + + // Sync Warning + ui->layoutWarning->setVisible(true); + ui->lblWarning->setText(tr("Please wait until the wallet is fully synced to see your correct balance")); + setCssProperty(ui->lblWarning, "text-warning"); + setCssProperty(ui->imgWarning, "ic-warning"); + + //Empty List + ui->emptyContainer->setVisible(false); + setCssProperty(ui->pushImgEmpty, "img-empty-transactions"); + + ui->labelEmpty->setText(tr("No transactions yet")); + setCssProperty(ui->labelEmpty, "text-empty"); + setCssProperty(ui->chartContainer, "container-chart"); + setCssProperty(ui->pushImgEmptyChart, "img-empty-staking-on"); + + ui->btnHowTo->setText(tr("How to get PIV or zPIV")); + setCssBtnSecondary(ui->btnHowTo); + + + setCssProperty(ui->labelEmptyChart, "text-empty"); + ui->labelMessageEmpty->setText(tr("You can verify the staking activity in the status bar at the top right of the wallet.\nIt will start automatically as soon as the wallet has enough confirmations on any unspent balances, and the wallet has synced.")); + setCssSubtitleScreen(ui->labelMessageEmpty); + + // Chart State + ui->layoutChart->setVisible(false); + ui->emptyContainerChart->setVisible(true); + setShadow(ui->layoutShadow); + + connect(ui->listTransactions, SIGNAL(clicked(QModelIndex)), this, SLOT(handleTransactionClicked(QModelIndex))); + if (window) + connect(window, SIGNAL(windowResizeEvent(QResizeEvent*)), this, SLOT(windowResizeEvent(QResizeEvent*))); + +bool hasCharts = false; +#ifdef USE_QTCHARTS + hasCharts = true; + isLoading = false; + setChartShow(YEAR); + connect(ui->pushButtonYear, &QPushButton::clicked, [this](){setChartShow(YEAR);}); + connect(ui->pushButtonMonth, &QPushButton::clicked, [this](){setChartShow(MONTH);}); + connect(ui->pushButtonAll, &QPushButton::clicked, [this](){setChartShow(ALL);}); +#endif + + if (hasCharts) { + ui->labelEmptyChart->setText(tr("You have no staking rewards")); + } else { + ui->labelEmptyChart->setText(tr("No charts library")); + } +} + +void DashboardWidget::handleTransactionClicked(const QModelIndex &index){ + + ui->listTransactions->setCurrentIndex(index); + QModelIndex rIndex = filter->mapToSource(index); + + window->showHide(true); + TxDetailDialog *dialog = new TxDetailDialog(window, false); + dialog->setData(walletModel, rIndex); + openDialogWithOpaqueBackgroundY(dialog, window, 3, 17); + + // Back to regular status + ui->listTransactions->scrollTo(index); + ui->listTransactions->clearSelection(); + ui->listTransactions->setFocus(); + dialog->deleteLater(); +} + +void DashboardWidget::loadWalletModel(){ + if (walletModel && walletModel->getOptionsModel()) { + txModel = walletModel->getTransactionTableModel(); + // Set up transaction list + filter = new TransactionFilterProxy(); + filter->setDynamicSortFilter(true); + filter->setSortCaseSensitivity(Qt::CaseInsensitive); + filter->setFilterCaseSensitivity(Qt::CaseInsensitive); + filter->setSortRole(Qt::EditRole); + filter->setSourceModel(txModel); + filter->sort(TransactionTableModel::Date, Qt::DescendingOrder); + txHolder->setFilter(filter); + ui->listTransactions->setModel(filter); + ui->listTransactions->setModelColumn(TransactionTableModel::ToAddress); + + if(txModel->size() == 0){ + ui->emptyContainer->setVisible(true); + ui->listTransactions->setVisible(false); + ui->comboBoxSortType->setVisible(false); + ui->comboBoxSort->setVisible(false); + } + + connect(ui->pushImgEmpty, SIGNAL(clicked()), window, SLOT(openFAQ())); + connect(ui->btnHowTo, SIGNAL(clicked()), window, SLOT(openFAQ())); + connect(txModel, &TransactionTableModel::txArrived, this, &DashboardWidget::onTxArrived); + + // Notification pop-up for new transaction + connect(txModel, SIGNAL(rowsInserted(QModelIndex, int, int)), + this, SLOT(processNewTransaction(QModelIndex, int, int))); +#ifdef USE_QTCHARTS + // chart filter + stakesFilter = new TransactionFilterProxy(); + stakesFilter->setDynamicSortFilter(true); + stakesFilter->setSortCaseSensitivity(Qt::CaseInsensitive); + stakesFilter->setFilterCaseSensitivity(Qt::CaseInsensitive); + stakesFilter->setSortRole(Qt::EditRole); + stakesFilter->setOnlyStakes(true); + stakesFilter->setSourceModel(txModel); + stakesFilter->sort(TransactionTableModel::Date, Qt::AscendingOrder); + hasStakes = stakesFilter->rowCount() > 0; + loadChart(); +#endif + } + // update the display unit, to not use the default ("PIV") + updateDisplayUnit(); +} + +void DashboardWidget::onTxArrived(const QString& hash, const bool& isCoinStake, const bool& isCSAnyType) { + showList(); +#ifdef USE_QTCHARTS + if (isCoinStake) { + // Update value if this is our first stake + if (!hasStakes) + hasStakes = stakesFilter->rowCount() > 0; + tryChartRefresh(); + } +#endif +} + +void DashboardWidget::showList(){ + if (filter->rowCount() == 0){ + ui->emptyContainer->setVisible(true); + ui->listTransactions->setVisible(false); + ui->comboBoxSortType->setVisible(false); + ui->comboBoxSort->setVisible(false); + } else { + ui->emptyContainer->setVisible(false); + ui->listTransactions->setVisible(true); + ui->comboBoxSortType->setVisible(true); + ui->comboBoxSort->setVisible(true); + } +} + +void DashboardWidget::updateDisplayUnit() { + if (walletModel && walletModel->getOptionsModel()) { + nDisplayUnit = walletModel->getOptionsModel()->getDisplayUnit(); + txHolder->setDisplayUnit(nDisplayUnit); + ui->listTransactions->update(); + } +} + +void DashboardWidget::onSortChanged(const QString& value){ + if (!filter) return; + int columnIndex = 0; + Qt::SortOrder order = Qt::DescendingOrder; + if(!value.isNull()) { + switch (ui->comboBoxSort->itemData(ui->comboBoxSort->currentIndex()).toInt()) { + case SortTx::DATE_ASC:{ + columnIndex = TransactionTableModel::Date; + order = Qt::AscendingOrder; + break; + } + case SortTx::DATE_DESC:{ + columnIndex = TransactionTableModel::Date; + break; + } + case SortTx::AMOUNT_ASC:{ + columnIndex = TransactionTableModel::Amount; + order = Qt::AscendingOrder; + break; + } + case SortTx::AMOUNT_DESC:{ + columnIndex = TransactionTableModel::Amount; + break; + } + + } + } + filter->sort(columnIndex, order); + ui->listTransactions->update(); +} + +void DashboardWidget::onSortTypeChanged(const QString& value){ + if (!filter) return; + int filterByType = ui->comboBoxSortType->itemData(ui->comboBoxSortType->currentIndex()).toInt(); + filter->setTypeFilter(filterByType); + ui->listTransactions->update(); + + if (filter->rowCount() == 0){ + ui->emptyContainer->setVisible(true); + ui->listTransactions->setVisible(false); + } else { + showList(); + } + + // Store settings + QSettings settings; + settings.setValue("transactionType", filterByType); +} + +void DashboardWidget::walletSynced(bool sync){ + if (this->isSync != sync) { + this->isSync = sync; + ui->layoutWarning->setVisible(!this->isSync); +#ifdef USE_QTCHARTS + tryChartRefresh(); +#endif + } +} + +void DashboardWidget::changeTheme(bool isLightTheme, QString& theme){ + static_cast(this->txViewDelegate->getRowFactory())->isLightTheme = isLightTheme; +#ifdef USE_QTCHARTS + if (chart) this->changeChartColors(); +#endif +} + +#ifdef USE_QTCHARTS + +void DashboardWidget::tryChartRefresh() { + if (hasStakes) { + // First check that everything was loaded properly. + if (!chart) { + loadChart(); + } else { + // Check for min update time to not reload the UI so often if the node is syncing. + int64_t now = GetTime(); + if (lastRefreshTime + CHART_LOAD_MIN_TIME_INTERVAL < now) { + lastRefreshTime = now; + refreshChart(); + } + } + } +} + +void DashboardWidget::setChartShow(ChartShowType type) { + this->chartShow = type; + if (chartShow == MONTH) { + ui->containerChartArrow->setVisible(true); + } else { + ui->containerChartArrow->setVisible(false); + } + if (isChartInitialized) refreshChart(); +} + +const QStringList monthsNames = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; + +void DashboardWidget::loadChart(){ + if (hasStakes) { + if (!chart) { + showHideEmptyChart(false, false); + initChart(); + QDate currentDate = QDate::currentDate(); + monthFilter = currentDate.month(); + yearFilter = currentDate.year(); + for (int i = 1; i < 13; ++i) ui->comboBoxMonths->addItem(QString(monthsNames[i-1]), QVariant(i)); + ui->comboBoxMonths->setCurrentIndex(monthFilter - 1); + connect(ui->comboBoxMonths, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(onChartMonthChanged(const QString&))); + connect(ui->pushButtonChartArrow, &QPushButton::clicked, [this](){ onChartArrowClicked(true); }); + connect(ui->pushButtonChartRight, &QPushButton::clicked, [this](){ onChartArrowClicked(false); }); + } + refreshChart(); + changeChartColors(); + } else { + showHideEmptyChart(true, false); + } +} + +void DashboardWidget::showHideEmptyChart(bool showEmpty, bool loading, bool forceView) { + if (stakesFilter->rowCount() > SHOW_EMPTY_CHART_VIEW_THRESHOLD || forceView) { + if (ui->emptyContainerChart->isVisible() != showEmpty) { + ui->layoutChart->setVisible(!showEmpty); + ui->emptyContainerChart->setVisible(showEmpty); + } + } + // Enable/Disable sort buttons + bool invLoading = !loading; + ui->comboBoxMonths->setEnabled(invLoading); + ui->comboBoxYears->setEnabled(invLoading); + ui->pushButtonMonth->setEnabled(invLoading); + ui->pushButtonAll->setEnabled(invLoading); + ui->pushButtonYear->setEnabled(invLoading); + ui->labelEmptyChart->setText(loading ? tr("Loading chart..") : tr("You have no staking rewards")); +} + +void DashboardWidget::initChart() { + chart = new QChart(); + axisX = new QBarCategoryAxis(); + axisY = new QValueAxis(); + + // Chart style + chart->legend()->setVisible(false); + chart->legend()->setAlignment(Qt::AlignTop); + chart->layout()->setContentsMargins(0, 0, 0, 0); + chart->setMargins({0, 0, 0, 0}); + chart->setBackgroundRoundness(0); + // Axis + chart->addAxis(axisX, Qt::AlignBottom); + chart->addAxis(axisY, Qt::AlignRight); + chart->setAnimationOptions(QChart::SeriesAnimations); + + chartView = new QChartView(chart); + chartView->setRenderHint(QPainter::Antialiasing); + chartView->setRubberBand( QChartView::HorizontalRubberBand ); + chartView->setContentsMargins(0,0,0,0); + + QHBoxLayout *baseScreensContainer = new QHBoxLayout(this); + baseScreensContainer->setMargin(0); + baseScreensContainer->addWidget(chartView); + ui->chartContainer->setLayout(baseScreensContainer); + ui->chartContainer->setContentsMargins(0,0,0,0); + setCssProperty(ui->chartContainer, "container-chart"); +} + +void DashboardWidget::changeChartColors(){ + QColor gridLineColorX; + QColor linePenColorY; + QColor backgroundColor; + QColor gridY; + if(isLightTheme()){ + gridLineColorX = QColor(255,255,255); + linePenColorY = gridLineColorX; + backgroundColor = linePenColorY; + axisY->setGridLineColor(QColor("#1a000000")); + }else{ + gridY = QColor("#40ffffff"); + axisY->setGridLineColor(gridY); + gridLineColorX = QColor(15,11,22); + linePenColorY = gridLineColorX; + backgroundColor = linePenColorY; + } + + axisX->setGridLineColor(gridLineColorX); + axisY->setLinePenColor(linePenColorY); + chart->setBackgroundBrush(QBrush(backgroundColor)); + if (set0) set0->setBorderColor(gridLineColorX); + if (set1) set1->setBorderColor(gridLineColorX); +} + +void DashboardWidget::updateStakeFilter() { + if (chartShow != ALL) { + bool filterByMonth = false; + if (monthFilter != 0 && chartShow == MONTH) { + filterByMonth = true; + } + if (yearFilter != 0) { + if (filterByMonth) { + QDate monthFirst = QDate(yearFilter, monthFilter, 1); + stakesFilter->setDateRange( + QDateTime(monthFirst), + QDateTime(QDate(yearFilter, monthFilter, monthFirst.daysInMonth())) + ); + } else { + stakesFilter->setDateRange( + QDateTime(QDate(yearFilter, 1, 1)), + QDateTime(QDate(yearFilter, 12, 31)) + ); + } + } else if (filterByMonth) { + QDate currentDate = QDate::currentDate(); + QDate monthFirst = QDate(currentDate.year(), monthFilter, 1); + stakesFilter->setDateRange( + QDateTime(monthFirst), + QDateTime(QDate(currentDate.year(), monthFilter, monthFirst.daysInMonth())) + ); + ui->comboBoxYears->setCurrentText(QString::number(currentDate.year())); + } else { + stakesFilter->clearDateRange(); + } + } else { + stakesFilter->clearDateRange(); + } +} + +// pair PIV, zPIV +const QMap> DashboardWidget::getAmountBy() { + updateStakeFilter(); + const int size = stakesFilter->rowCount(); + QMap> amountBy; + // Get all of the stakes + for (int i = 0; i < size; ++i) { + QModelIndex modelIndex = stakesFilter->index(i, TransactionTableModel::ToAddress); + qint64 amount = llabs(modelIndex.data(TransactionTableModel::AmountRole).toLongLong()); + QDate date = modelIndex.data(TransactionTableModel::DateRole).toDateTime().date(); + bool isPiv = modelIndex.data(TransactionTableModel::TypeRole).toInt() != TransactionRecord::StakeZPIV; + + int time = 0; + switch (chartShow) { + case YEAR: { + time = date.month(); + break; + } + case ALL: { + time = date.year(); + break; + } + case MONTH: { + time = date.day(); + break; + } + default: + inform(tr("Error loading chart, invalid show option")); + return amountBy; + } + if (amountBy.contains(time)) { + if (isPiv) { + amountBy[time].first += amount; + } else + amountBy[time].second += amount; + } else { + if (isPiv) { + amountBy[time] = std::make_pair(amount, 0); + } else { + amountBy[time] = std::make_pair(0, amount); + hasZpivStakes = true; + } + } + } + return amountBy; +} + +bool DashboardWidget::loadChartData(bool withMonthNames) { + + if (chartData) { + delete chartData; + chartData = nullptr; + } + + chartData = new ChartData(); + chartData->amountsByCache = getAmountBy(); // pair PIV, zPIV + + std::pair range = getChartRange(chartData->amountsByCache); + if (range.first == 0 && range.second == 0) { + // Problem loading the chart. + return false; + } + + bool isOrderedByMonth = chartShow == MONTH; + int daysInMonth = QDate(yearFilter, monthFilter, 1).daysInMonth(); + + for (int j = range.first; j < range.second; j++) { + int num = (isOrderedByMonth && j > daysInMonth) ? (j % daysInMonth) : j; + qreal piv = 0; + qreal zpiv = 0; + if (chartData->amountsByCache.contains(num)) { + std::pair pair = chartData->amountsByCache[num]; + piv = (pair.first != 0) ? pair.first / 100000000 : 0; + zpiv = (pair.second != 0) ? pair.second / 100000000 : 0; + chartData->totalPiv += pair.first; + chartData->totalZpiv += pair.second; + } + + chartData->xLabels << ((withMonthNames) ? monthsNames[num - 1] : QString::number(num)); + + chartData->valuesPiv.append(piv); + chartData->valueszPiv.append(zpiv); + + int max = std::max(piv, zpiv); + if (max > chartData->maxValue) { + chartData->maxValue = max; + } + } + + return true; +} + +void DashboardWidget::onChartYearChanged(const QString& yearStr) { + if (isChartInitialized) { + int newYear = yearStr.toInt(); + if (newYear != yearFilter) { + yearFilter = newYear; + refreshChart(); + } + } +} + +void DashboardWidget::onChartMonthChanged(const QString& monthStr) { + if (isChartInitialized) { + int newMonth = ui->comboBoxMonths->currentData().toInt(); + if (newMonth != monthFilter) { + monthFilter = newMonth; + refreshChart(); +#ifndef Q_OS_MAC + // quick hack to re paint the chart view. + chart->removeSeries(series); + chart->addSeries(series); +#endif + } + } +} + +bool DashboardWidget::refreshChart(){ + if (isLoading) return false; + isLoading = true; + isChartMin = width() < 1300; + isChartInitialized = false; + showHideEmptyChart(true, true); + return execute(REQUEST_LOAD_TASK); +} + +void DashboardWidget::onChartRefreshed() { + if (chart) { + if(series){ + series->clear(); + series->detachAxis(axisX); + series->detachAxis(axisY); + } + axisX->clear(); + } + // init sets + set0 = new QBarSet("PIV"); + set1 = new QBarSet("zPIV"); + set0->setColor(QColor(92,75,125)); + set1->setColor(QColor(176,136,255)); + + if(!series) { + series = new QBarSeries(); + chart->addSeries(series); + } + series->attachAxis(axisX); + series->attachAxis(axisY); + + set0->append(chartData->valuesPiv); + set1->append(chartData->valueszPiv); + + // Total + nDisplayUnit = walletModel->getOptionsModel()->getDisplayUnit(); + if (chartData->totalPiv > 0 || chartData->totalZpiv > 0) { + setCssProperty(ui->labelAmountPiv, "text-stake-piv"); + setCssProperty(ui->labelAmountZpiv, "text-stake-zpiv"); + } else { + setCssProperty(ui->labelAmountPiv, "text-stake-piv-disable"); + setCssProperty(ui->labelAmountZpiv, "text-stake-zpiv-disable"); + } + forceUpdateStyle({ui->labelAmountPiv, ui->labelAmountZpiv}); + ui->labelAmountPiv->setText(GUIUtil::formatBalance(chartData->totalPiv, nDisplayUnit)); + ui->labelAmountZpiv->setText(GUIUtil::formatBalance(chartData->totalZpiv, nDisplayUnit, true)); + + series->append(set0); + if(hasZpivStakes) + series->append(set1); + + // bar width + if (chartShow == YEAR) + series->setBarWidth(0.8); + else { + series->setBarWidth(0.3); + } + axisX->append(chartData->xLabels); + axisY->setRange(0, chartData->maxValue); + + // Controllers + switch (chartShow) { + case ALL: { + ui->container_chart_dropboxes->setVisible(false); + break; + } + case YEAR: { + ui->container_chart_dropboxes->setVisible(true); + ui->containerBoxMonths->setVisible(false); + break; + } + case MONTH: { + ui->container_chart_dropboxes->setVisible(true); + ui->containerBoxMonths->setVisible(true); + break; + } + default: break; + } + + // Refresh years filter, first address created is the start + int yearStart = QDateTime::fromTime_t(static_cast(walletModel->getCreationTime())).date().year(); + int currentYear = QDateTime::currentDateTime().date().year(); + + QString selection; + if (ui->comboBoxYears->count() > 0) { + selection = ui->comboBoxYears->currentText(); + isChartInitialized = false; + } + ui->comboBoxYears->clear(); + if (yearStart == currentYear) { + ui->comboBoxYears->addItem(QString::number(currentYear)); + } else { + for (int i = yearStart; i < (currentYear + 1); ++i)ui->comboBoxYears->addItem(QString::number(i)); + } + + if (!selection.isEmpty()) { + ui->comboBoxYears->setCurrentText(selection); + isChartInitialized = true; + } else { + ui->comboBoxYears->setCurrentText(QString::number(currentYear)); + } + + // back to normal + isChartInitialized = true; + showHideEmptyChart(false, false, true); + isLoading = false; +} + +std::pair DashboardWidget::getChartRange(QMap> amountsBy) { + switch (chartShow) { + case YEAR: + return std::make_pair(1, 13); + case ALL: { + QList keys = amountsBy.uniqueKeys(); + if (keys.isEmpty()) { + // This should never happen, ALL means from the beginning of time and if this is called then it must have at least one stake.. + inform(tr("Error loading chart, invalid data")); + return std::make_pair(0, 0); + } + qSort(keys); + return std::make_pair(keys.first(), keys.last() + 1); + } + case MONTH: + return std::make_pair(dayStart, dayStart + 9); + default: + inform(tr("Error loading chart, invalid show option")); + return std::make_pair(0, 0); + } +} + +void DashboardWidget::updateAxisX(const QStringList* args) { + axisX->clear(); + QStringList months; + std::pair range = getChartRange(chartData->amountsByCache); + if (args) { + months = *args; + } else { + for (int i = range.first; i < range.second; i++) months << QString::number(i); + } + axisX->append(months); +} + +void DashboardWidget::onChartArrowClicked(bool goLeft) { + if (goLeft) { + dayStart--; + if (dayStart == 0) { + dayStart = QDate(yearFilter, monthFilter, 1).daysInMonth(); + } + } else { + int dayInMonth = QDate(yearFilter, monthFilter, dayStart).daysInMonth(); + dayStart++; + if (dayStart > dayInMonth) { + dayStart = 1; + } + } + refreshChart(); +} + +void DashboardWidget::windowResizeEvent(QResizeEvent *event){ + if (hasStakes && axisX) { + if (width() > 1300) { + if (isChartMin) { + isChartMin = false; + switch (chartShow) { + case YEAR: { + updateAxisX(&monthsNames); + break; + } + case ALL: break; + case MONTH: { + updateAxisX(); + break; + } + default: + inform(tr("Error loading chart, invalid show option")); + return; + } + chartView->repaint(); + } + } else { + if (!isChartMin) { + updateAxisX(); + isChartMin = true; + } + } + } +} + +#endif + +void DashboardWidget::run(int type) { +#ifdef USE_QTCHARTS + if (type == REQUEST_LOAD_TASK) { + bool withMonthNames = !isChartMin && (chartShow == YEAR); + if (loadChartData(withMonthNames)) + QMetaObject::invokeMethod(this, "onChartRefreshed", Qt::QueuedConnection); + } +#endif +} +void DashboardWidget::onError(QString error, int type) { + inform(tr("Error loading chart: %1").arg(error)); +} + +void DashboardWidget::processNewTransaction(const QModelIndex& parent, int start, int /*end*/) { + // Prevent notifications-spam when initial block download is in progress + if (!walletModel || !clientModel || clientModel->inInitialBlockDownload()) + return; + + if (!txModel || txModel->processingQueuedTransactions()) + return; + + QString date = txModel->index(start, TransactionTableModel::Date, parent).data().toString(); + qint64 amount = txModel->index(start, TransactionTableModel::Amount, parent).data(Qt::EditRole).toULongLong(); + QString type = txModel->index(start, TransactionTableModel::Type, parent).data().toString(); + QString address = txModel->index(start, TransactionTableModel::ToAddress, parent).data().toString(); + + emit incomingTransaction(date, walletModel->getOptionsModel()->getDisplayUnit(), amount, type, address); +} + +DashboardWidget::~DashboardWidget(){ +#ifdef USE_QTCHARTS + delete chart; +#endif + delete ui; +} diff --git a/src/qt/pivx/dashboardwidget.h b/src/qt/pivx/dashboardwidget.h new file mode 100644 index 0000000..8d36358 --- /dev/null +++ b/src/qt/pivx/dashboardwidget.h @@ -0,0 +1,189 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef DASHBOARDWIDGET_H +#define DASHBOARDWIDGET_H + +#include "qt/pivx/pwidget.h" +#include "qt/pivx/furabstractlistitemdelegate.h" +#include "qt/pivx/furlistrow.h" +#include "transactiontablemodel.h" +#include "qt/pivx/txviewholder.h" +#include "transactionfilterproxy.h" + +#include +#include +#include +#include +#include + +#if defined(HAVE_CONFIG_H) +#include "config/pivx-config.h" /* for USE_QTCHARTS */ +#endif + +#ifdef USE_QTCHARTS + +#include +#include +#include +#include +#include +#include + +QT_CHARTS_USE_NAMESPACE + +using namespace QtCharts; + +#endif + +class PIVXGUI; +class WalletModel; + +namespace Ui { +class DashboardWidget; +} + +class SortEdit : public QLineEdit{ + Q_OBJECT +public: + explicit SortEdit(QWidget* parent = nullptr) : QLineEdit(parent){} + + inline void mousePressEvent(QMouseEvent *) override{ + emit Mouse_Pressed(); + } + + ~SortEdit() override{} + +signals: + void Mouse_Pressed(); + +}; + +enum SortTx { + DATE_ASC = 0, + DATE_DESC = 1, + AMOUNT_ASC = 2, + AMOUNT_DESC = 3 +}; + +enum ChartShowType { + ALL, + YEAR, + MONTH, + DAY +}; + +class ChartData { +public: + ChartData() {} + + QMap> amountsByCache; + qreal maxValue = 0; + qint64 totalPiv = 0; + qint64 totalZpiv = 0; + QList valuesPiv; + QList valueszPiv; + QStringList xLabels; +}; + +QT_BEGIN_NAMESPACE +class QModelIndex; +QT_END_NAMESPACE + +class DashboardWidget : public PWidget +{ + Q_OBJECT + +public: + explicit DashboardWidget(PIVXGUI* _window); + ~DashboardWidget(); + + void loadWalletModel() override; + void loadChart(); + + void run(int type) override; + void onError(QString error, int type) override; + +public slots: + void walletSynced(bool isSync); + /** + * Show incoming transaction notification for new transactions. + * The new items are those between start and end inclusive, under the given parent item. + */ + void processNewTransaction(const QModelIndex& parent, int start, int /*end*/); +signals: + /** Notify that a new transaction appeared */ + void incomingTransaction(const QString& date, int unit, const CAmount& amount, const QString& type, const QString& address); +private slots: + void handleTransactionClicked(const QModelIndex &index); + void changeTheme(bool isLightTheme, QString &theme) override; + void onSortChanged(const QString&); + void onSortTypeChanged(const QString& value); + void updateDisplayUnit(); + void showList(); + void onTxArrived(const QString& hash, const bool& isCoinStake, const bool& isCSAnyType); + +#ifdef USE_QTCHARTS + void windowResizeEvent(QResizeEvent *event); + void changeChartColors(); + void onChartYearChanged(const QString&); + void onChartMonthChanged(const QString&); + void onChartArrowClicked(bool goLeft); +#endif + +private: + Ui::DashboardWidget *ui; + FurAbstractListItemDelegate* txViewDelegate; + TransactionFilterProxy* filter; + TxViewHolder* txHolder; + TransactionTableModel* txModel; + int nDisplayUnit = -1; + bool isSync = false; + +#ifdef USE_QTCHARTS + + int64_t lastRefreshTime = 0; + std::atomic isLoading; + + // Chart + TransactionFilterProxy* stakesFilter = nullptr; + bool isChartInitialized = false; + QChartView *chartView = nullptr; + QBarSeries *series = nullptr; + QBarSet *set0 = nullptr; + QBarSet *set1 = nullptr; + + QBarCategoryAxis *axisX = nullptr; + QValueAxis *axisY = nullptr; + + QChart *chart = nullptr; + bool isChartMin = false; + ChartShowType chartShow = YEAR; + int yearFilter = 0; + int monthFilter = 0; + int dayStart = 1; + bool hasZpivStakes = false; + + ChartData* chartData = nullptr; + bool hasStakes = false; + + void initChart(); + void showHideEmptyChart(bool show, bool loading, bool forceView = false); + bool refreshChart(); + void tryChartRefresh(); + void updateStakeFilter(); + const QMap> getAmountBy(); + bool loadChartData(bool withMonthNames); + void updateAxisX(const QStringList *arg = nullptr); + void setChartShow(ChartShowType type); + std::pair getChartRange(QMap> amountsBy); + +private slots: + void onChartRefreshed(); + +#endif + +}; + +#endif // DASHBOARDWIDGET_H diff --git a/src/qt/pivx/defaultdialog.cpp b/src/qt/pivx/defaultdialog.cpp new file mode 100644 index 0000000..a5109d6 --- /dev/null +++ b/src/qt/pivx/defaultdialog.cpp @@ -0,0 +1,56 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/defaultdialog.h" +#include "qt/pivx/forms/ui_defaultdialog.h" +#include "guiutil.h" +DefaultDialog::DefaultDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::DefaultDialog) +{ + ui->setupUi(this); + + // Stylesheet + this->setStyleSheet(parent ? parent->styleSheet() : GUIUtil::loadStyleSheet()); + + // Container + ui->frame->setProperty("cssClass", "container-dialog"); + + // Text + ui->labelTitle->setText("Dialog Title"); + ui->labelTitle->setProperty("cssClass", "text-title-dialog"); + + + ui->labelMessage->setText("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."); + ui->labelMessage->setProperty("cssClass", "text-main-grey"); + + // Buttons + ui->btnEsc->setText(""); + ui->btnEsc->setProperty("cssClass", "ic-close"); + + ui->btnCancel->setProperty("cssClass", "btn-dialog-cancel"); + ui->btnSave->setText("OK"); + ui->btnSave->setProperty("cssClass", "btn-primary"); + + connect(ui->btnEsc, SIGNAL(clicked()), this, SLOT(close())); + connect(ui->btnCancel, SIGNAL(clicked()), this, SLOT(close())); + connect(ui->btnSave, &QPushButton::clicked, [this](){this->isOk = true; accept();}); +} + +void DefaultDialog::setText(QString title, QString message, QString okBtnText, QString cancelBtnText){ + if(!okBtnText.isNull()) ui->btnSave->setText(okBtnText); + if(!cancelBtnText.isNull()){ + ui->btnCancel->setVisible(true); + ui->btnCancel->setText(cancelBtnText); + }else{ + ui->btnCancel->setVisible(false); + } + if(!message.isNull()) ui->labelMessage->setText(message); + if(!title.isNull()) ui->labelTitle->setText(title); +} + +DefaultDialog::~DefaultDialog() +{ + delete ui; +} diff --git a/src/qt/pivx/defaultdialog.h b/src/qt/pivx/defaultdialog.h new file mode 100644 index 0000000..e7dad87 --- /dev/null +++ b/src/qt/pivx/defaultdialog.h @@ -0,0 +1,29 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef DEFAULTDIALOG_H +#define DEFAULTDIALOG_H + +#include + +namespace Ui { +class DefaultDialog; +} + +class DefaultDialog : public QDialog +{ + Q_OBJECT + +public: + explicit DefaultDialog(QWidget *parent = nullptr); + ~DefaultDialog(); + + void setText(QString title = "", QString message = "", QString okBtnText = "", QString cancelBtnText = ""); + + bool isOk = false; +private: + Ui::DefaultDialog *ui; +}; + +#endif // DEFAULTDIALOG_H diff --git a/src/qt/pivx/denomgenerationdialog.cpp b/src/qt/pivx/denomgenerationdialog.cpp new file mode 100644 index 0000000..587004a --- /dev/null +++ b/src/qt/pivx/denomgenerationdialog.cpp @@ -0,0 +1,71 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/denomgenerationdialog.h" +#include "qt/pivx/forms/ui_denomgenerationdialog.h" +#include "QGraphicsDropShadowEffect" + +DenomGenerationDialog::DenomGenerationDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::DenomGenerationDialog) +{ + ui->setupUi(this); + + + // Stylesheet + this->setStyleSheet(parent->styleSheet()); + + // Container + + ui->frame->setProperty("cssClass", "container-dialog"); + + // Text + + ui->labelTitle->setText("Denom Generation"); + ui->labelTitle->setProperty("cssClass", "text-title-dialog"); + + + ui->labelMessage->setText("This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again."); + ui->labelMessage->setProperty("cssClass", "text-main-grey"); + + + /* Check Denom */ + + ui->checkBox5000->setText("5000"); + + ui->checkBox1000->setText("1000"); + + ui->checkBox500->setText("500"); + + ui->checkBox100->setText("100"); + + ui->checkBox50->setText("50"); + + ui->checkBox10->setText("10"); + + ui->checkBox5->setText("5"); + + ui->checkBox1->setText("1"); + + ui->checkBoxAll->setText("Select all"); + + + + // Buttons + + ui->btnEsc->setText(""); + ui->btnEsc->setProperty("cssClass", "ic-close"); + + ui->btnCancel->setProperty("cssClass", "btn-dialog-cancel"); + ui->btnSave->setText("SAVE"); + ui->btnSave->setProperty("cssClass", "btn-primary"); + + connect(ui->btnEsc, SIGNAL(clicked()), this, SLOT(close())); + connect(ui->btnCancel, SIGNAL(clicked()), this, SLOT(close())); +} + +DenomGenerationDialog::~DenomGenerationDialog() +{ + delete ui; +} diff --git a/src/qt/pivx/denomgenerationdialog.h b/src/qt/pivx/denomgenerationdialog.h new file mode 100644 index 0000000..768508a --- /dev/null +++ b/src/qt/pivx/denomgenerationdialog.h @@ -0,0 +1,26 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef DENOMGENERATIONDIALOG_H +#define DENOMGENERATIONDIALOG_H + +#include + +namespace Ui { +class DenomGenerationDialog; +} + +class DenomGenerationDialog : public QDialog +{ + Q_OBJECT + +public: + explicit DenomGenerationDialog(QWidget *parent = nullptr); + ~DenomGenerationDialog(); + +private: + Ui::DenomGenerationDialog *ui; +}; + +#endif // DENOMGENERATIONDIALOG_H diff --git a/src/qt/pivx/expandablebutton.cpp b/src/qt/pivx/expandablebutton.cpp new file mode 100644 index 0000000..a1ffbc1 --- /dev/null +++ b/src/qt/pivx/expandablebutton.cpp @@ -0,0 +1,105 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/expandablebutton.h" +#include "qt/pivx/forms/ui_expandablebutton.h" +#include "qt/pivx/qtutils.h" +#include +#include +#include +#include + +ExpandableButton::ExpandableButton(QWidget *parent) : + QWidget(parent), + ui(new Ui::ExpandableButton), + isAnimating(false) +{ + ui->setupUi(this); + + this->setStyleSheet(parent->styleSheet()); + ui->pushButton->setCheckable(true); + this->layout()->setSizeConstraint(QLayout::SetFixedSize); + + connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(mousePressEvent())); +} + +void ExpandableButton::setButtonClassStyle(const char *name, const QVariant &value, bool forceUpdate){ + ui->pushButton->setProperty(name, value); + if(forceUpdate){ + updateStyle(ui->pushButton); + } +} + +void ExpandableButton::setIcon(QString path){ + ui->pushButton->setIcon(QIcon(path)); +} + +void ExpandableButton::setButtonText(const QString _text){ + this->text = _text; + if(this->isExpanded){ + ui->pushButton->setText(_text); + } +} + +void ExpandableButton::setText2(QString text2) +{ + this->text = text2; + ui->pushButton->setText(text2); +} + +ExpandableButton::~ExpandableButton() +{ + delete ui; +} + +bool ExpandableButton::isChecked(){ + return ui->pushButton->isChecked(); +} + +void ExpandableButton::setChecked(bool check){ + ui->pushButton->setChecked(check); +} + +void ExpandableButton::setSmall() +{ + ui->pushButton->setText(""); + this->setMaximumWidth(36); + this->isExpanded = false; + update(); +} + +void ExpandableButton::setExpanded(){ + this->setMaximumWidth(100); + ui->pushButton->setText(text); + this->isExpanded = true; +} + +void ExpandableButton::enterEvent(QEvent *) { + if(!this->isAnimating){ + setExpanded(); + emit Mouse_Hover(); + } + update(); +} + +void ExpandableButton::leaveEvent(QEvent *) { + if(!keepExpanded){ + this->setSmall(); + } + emit Mouse_HoverLeave(); +} + +void ExpandableButton::mousePressEvent(){ + emit Mouse_Pressed(); +} + +void ExpandableButton::mousePressEvent(QMouseEvent *ev) +{ + emit Mouse_Pressed(); +} + +void ExpandableButton::on_pushButton_clicked(bool checked) +{ + // TODO: Add callback event +} diff --git a/src/qt/pivx/expandablebutton.h b/src/qt/pivx/expandablebutton.h new file mode 100644 index 0000000..9743c56 --- /dev/null +++ b/src/qt/pivx/expandablebutton.h @@ -0,0 +1,73 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef EXPANDABLEBUTTON2_H +#define EXPANDABLEBUTTON2_H + +#include +#include +#include +#include + +#include +#include + +namespace Ui { +class ExpandableButton; +} + +class ExpandableButton : public QWidget +{ + Q_OBJECT + +public: + explicit ExpandableButton(QWidget *parent = nullptr); + ~ExpandableButton(); + + void setButtonClassStyle(const char *name, const QVariant &value, bool forceUpdate = false); + void setButtonText(const QString _text); + void setIcon(QString path); + + bool isChecked(); + void setChecked(bool check); + void setKeepExpanded(bool _keepExpended){ + this->keepExpanded = _keepExpended; + } + void setSmall(); + void setExpanded(); +signals: + void Mouse_Pressed(); + void Mouse_Hover(); + void Mouse_HoverLeave(); + +public slots: + void setText2(QString text2); + + QString getText(){ + return this->text; + } + +protected: + virtual void enterEvent(QEvent *); + virtual void leaveEvent(QEvent *); + + //virtual void mouseMoveEvent(QMouseEvent *ev); + virtual void mousePressEvent(QMouseEvent *ev); + +private slots: + + void on_pushButton_clicked(bool checked); + + void mousePressEvent(); +private: + Ui::ExpandableButton *ui; + QString text; + std::atomic isAnimating; + QPropertyAnimation *animation = nullptr; + bool isExpanded = false; + + bool keepExpanded = false; +}; + +#endif // EXPANDABLEBUTTON2_H diff --git a/src/qt/pivx/forms/addnewaddressdialog.ui b/src/qt/pivx/forms/addnewaddressdialog.ui new file mode 100644 index 0000000..2ffe4f2 --- /dev/null +++ b/src/qt/pivx/forms/addnewaddressdialog.ui @@ -0,0 +1,206 @@ + + + AddNewAddressDialog + + + + 0 + 0 + 500 + 530 + + + + Dialog + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 20 + + + 20 + + + + + My Address + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 260 + 260 + + + + + 260 + 260 + + + + + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 30 + + + + + + + + + + Address + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + PushButton + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + 20 + + + 20 + + + + + + 0 + 50 + + + + Qt::NoFocus + + + CANCEL + + + + + + + + 0 + 50 + + + + Qt::NoFocus + + + OK + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/addnewcontactdialog.ui b/src/qt/pivx/forms/addnewcontactdialog.ui new file mode 100644 index 0000000..14b019a --- /dev/null +++ b/src/qt/pivx/forms/addnewcontactdialog.ui @@ -0,0 +1,279 @@ + + + AddNewContactDialog + + + + 0 + 0 + 600 + 350 + + + + Dialog + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 20 + + + 20 + + + 20 + + + 20 + + + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 50 + + + + + 16777215 + 70 + + + + padding-left:24px; + + + TextLabel + + + Qt::AlignCenter + + + 7 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + Qt::NoFocus + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 40 + + + + + + + + 0 + + + 40 + + + 40 + + + + + TextLabel + + + Qt::AlignCenter + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 40 + + + + + + + + 10 + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 200 + 50 + + + + Qt::NoFocus + + + CANCEL + + + + + + + + 200 + 50 + + + + Qt::NoFocus + + + OK + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/addresseswidget.ui b/src/qt/pivx/forms/addresseswidget.ui new file mode 100644 index 0000000..a75f7cf --- /dev/null +++ b/src/qt/pivx/forms/addresseswidget.ui @@ -0,0 +1,433 @@ + + + AddressesWidget + + + + 0 + 0 + 629 + 406 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + + + 0 + + + 20 + + + 10 + + + + + 5 + + + + + Send + + + + + + + TextLabel + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + true + + + + + + + + 0 + 100 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Vertical + + + + 20 + 20 + + + + + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 30 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 100 + 100 + + + + + 100 + 100 + + + + Qt::NoFocus + + + + + + + 100 + 100 + + + + + + + + + + + N/A + + + Qt::AlignCenter + + + + + + + + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 6 + + + + + + 0 + 50 + + + + + + + + + 0 + + + 0 + + + 10 + + + 0 + + + 20 + + + + + 10 + + + + + Contact name + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 20 + + + + + + + + 10 + + + + + Enter address + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 160 + 50 + + + + Qt::NoFocus + + + OK + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + OptionButton + QWidget +
qt/pivx/optionbutton.h
+ 1 +
+
+ + +
diff --git a/src/qt/pivx/forms/addresslabelrow.ui b/src/qt/pivx/forms/addresslabelrow.ui new file mode 100644 index 0000000..10120a8 --- /dev/null +++ b/src/qt/pivx/forms/addresslabelrow.ui @@ -0,0 +1,140 @@ + + + AddressLabelRow + + + + 0 + 0 + 660 + 60 + + + + + 0 + 60 + + + + Form + + + + 0 + + + 0 + + + 0 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + Bob Allen + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + + + + border:none; background-color:transparent; + + + + + + + ://ic-menu-hover://ic-menu-hover + + + + 24 + 24 + + + + + + + + + + + + 0 + 1 + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + + + + diff --git a/src/qt/pivx/forms/coincontrolpivwidget.ui b/src/qt/pivx/forms/coincontrolpivwidget.ui new file mode 100644 index 0000000..28b0121 --- /dev/null +++ b/src/qt/pivx/forms/coincontrolpivwidget.ui @@ -0,0 +1,536 @@ + + + CoinControlPivWidget + + + + 0 + 0 + 918 + 552 + + + + Dialog + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 30 + + + 20 + + + 30 + + + 20 + + + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + padding-left:24px; + + + Transaction Details + + + Qt::AlignCenter + + + 7 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + PushButton + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + + + + + PIV: + + + + + + + TextLabel + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + + + + Quantity: + + + + + + + TextLabel + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + + + + Fee: + + + + + + + TextLabel + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 15 + + + + + + + + + + Amount + + + Qt::AlignCenter + + + + + + + Label + + + Qt::AlignCenter + + + + + + + Address + + + Qt::AlignCenter + + + + + + + Type + + + Qt::AlignCenter + + + + + + + Date + + + Qt::AlignCenter + + + + + + + Confirmations + + + Qt::AlignCenter + + + + + + + + + + 1 + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 10 + 30 + + + + + + + + + + CheckBox + + + + + + + + + 20 + + + + + + + + Bytes: + + + + + + + TextLabel + + + + + + + + + + + + + Dust: + + + + + + + TextLabel + + + + + + + + + + + + + Change: + + + + + + + TextLabel + + + + + + + + + + + + + After Fee: + + + + + + + TextLabel + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 20 + + + + + + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 200 + 50 + + + + Qt::NoFocus + + + CANCEL + + + + + + + + 200 + 50 + + + + Qt::NoFocus + + + OK + + + + + + + + + + + + + CoinControlTreeWidget + QTreeWidget +
coincontroltreewidget.h
+
+
+ + +
diff --git a/src/qt/pivx/forms/coldstakingwidget.ui b/src/qt/pivx/forms/coldstakingwidget.ui new file mode 100644 index 0000000..7791b70 --- /dev/null +++ b/src/qt/pivx/forms/coldstakingwidget.ui @@ -0,0 +1,817 @@ + + + ColdStakingWidget + + + + 0 + 0 + 629 + 549 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + + + 0 + + + 20 + + + 20 + + + + + + 0 + 0 + + + + + 16777215 + 100 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 5 + + + + + Title + + + + + + + + 16777215 + 16777215 + + + + TextLabel + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 120 + 30 + + + + + 120 + 30 + + + + Qt::NoFocus + + + + + + true + + + true + + + + + + + + 120 + 30 + + + + + 120 + 30 + + + + Qt::NoFocus + + + + + + true + + + true + + + true + + + + + + + + + + TextLabel + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 30 + + + + + + + + + 0 + 50 + + + + + 6 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 16777215 + 30 + + + + padding-left:20px; padding-bottom:3px; + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 9 + + + + + + + + + 4 + + + 20 + + + 0 + + + 20 + + + 0 + + + + + + 16777215 + 20 + + + + margin-bottom:2px; + margin-left:0.05px; + padding:0px; + + + Owner address (optional, if empty a new address will be created) + + + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + + + + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 20 + + + + + + + + + 0 + 50 + + + + + 20 + + + + + Qt::Horizontal + + + + 200 + 20 + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 40 + 20 + + + + + + + + + 200 + 50 + + + + Qt::NoFocus + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + + 200 + 50 + + + + + 200 + 50 + + + + Qt::NoFocus + + + + + + + + + + + + + + + + 0 + + + 20 + + + 0 + + + 20 + + + 0 + + + + + + 100 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + List of delegated balance by address + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Total Staking: + + + + + + + + + + 0 + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + true + + + true + + + + + + + + 0 + 100 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Vertical + + + + 20 + 20 + + + + + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 30 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 100 + 100 + + + + + 100 + 100 + + + + Qt::NoFocus + + + + + + + 100 + 100 + + + + + + + + + + + No balance delegated + + + Qt::AlignCenter + + + + + + + + + + + + + + + + + + + + + 1 + + + 0 + + + 1 + + + 0 + + + + + + 0 + 50 + + + + + 19 + + + 0 + + + 19 + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + true + + + true + + + + + + + + + + + OptionButton + QWidget +
qt/pivx/optionbutton.h
+ 1 +
+
+ + +
diff --git a/src/qt/pivx/forms/contactdropdownrow.ui b/src/qt/pivx/forms/contactdropdownrow.ui new file mode 100644 index 0000000..4f6f935 --- /dev/null +++ b/src/qt/pivx/forms/contactdropdownrow.ui @@ -0,0 +1,118 @@ + + + ContactDropdownRow + + + + 0 + 0 + 660 + 60 + + + + + 0 + 60 + + + + Form + + + + 0 + + + 0 + + + 0 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + 12 + + + 12 + + + + + + + + Bob Allen + + + + + + + + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + + + + + + + + + + 0 + 1 + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + + diff --git a/src/qt/pivx/forms/csrow.ui b/src/qt/pivx/forms/csrow.ui new file mode 100644 index 0000000..03011ae --- /dev/null +++ b/src/qt/pivx/forms/csrow.ui @@ -0,0 +1,209 @@ + + + CSRow + + + + 0 + 0 + 401 + 75 + + + + Form + + + + 0 + + + 20 + + + 10 + + + 20 + + + 0 + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 10 + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + Savings + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 0,00 PIV + + + + + + + + + + + address + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Not Staking + + + + + + + + + + + + + 24 + 24 + + + + + 32 + 32 + + + + Qt::NoFocus + + + border:none; background-color:transparent; + + + + + + + ://ic-menu-hover://ic-menu-hover + + + + 24 + 24 + + + + + + + + + + + + 0 + 1 + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + + diff --git a/src/qt/pivx/forms/dashboardwidget.ui b/src/qt/pivx/forms/dashboardwidget.ui new file mode 100644 index 0000000..088c3d6 --- /dev/null +++ b/src/qt/pivx/forms/dashboardwidget.ui @@ -0,0 +1,1369 @@ + + + DashboardWidget + + + + 0 + 0 + 800 + 595 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + 20 + + + 15 + + + 20 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 5 + + + 5 + + + + + Transactions + + + + + + + You can see here the history of your account + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 100 + 0 + + + + + + + + + 150 + 0 + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 9 + + + 20 + + + 9 + + + 20 + + + 0 + + + + + border:none; + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + border:none; + + + + + + + 24 + 24 + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 12 + 20 + + + + + + + + + + + Warning + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + + + + + 0 + 1 + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + + + + + + + true + + + QAbstractItemView::SelectItems + + + QAbstractItemView::ScrollPerItem + + + + + + + + 0 + 100 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + 20 + + + + + Qt::Vertical + + + + 20 + 20 + + + + + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 30 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 100 + 100 + + + + + 100 + 100 + + + + Qt::NoFocus + + + + + + + 100 + 100 + + + + + + + + + + + No transactions + + + Qt::AlignCenter + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 280 + 50 + + + + Qt::NoFocus + + + + + + + + + + + + + + + + + 200 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + + + 0 + + + + + 5 + + + + + + 0 + 30 + + + + Staking Rewards + + + + + + + TextLabel + + + + + + + + + Qt::Horizontal + + + QSizePolicy::MinimumExpanding + + + + 20 + 20 + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + 0 + + + + + TextLabel + + + Qt::AlignCenter + + + + + + + TextLabel + + + Qt::AlignCenter + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 16 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 190 + + + + + 16777215 + 16777215 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + Staking statistics + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 14 + 14 + + + + + 14 + 14 + + + + + + + + + + + PIV + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + + 14 + 14 + + + + + 14 + 14 + + + + + + + + + + + zPIV + + + + + + + + + + 0 + 150 + + + + #chartContainer{padding:0px; margin:0px;} + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 19 + 0 + + + + + 19 + 16777215 + + + + #widget{ + padding:0px; + margin:0px; +} + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Vertical + + + + 20 + 127 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 19 + 19 + + + + + 19 + 19 + + + + Qt::NoFocus + + + + + + + + + + + + + + 19 + 19 + + + + + 19 + 19 + + + + Qt::NoFocus + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + padding:0px; +margin:0px; + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + + + + + + + + 28 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 80 + + + + + 16777215 + 80 + + + + Sort by + + + + 5 + + + 0 + + + 0 + + + + + + 50 + 35 + + + + + 16777215 + 16777215 + + + + Qt::NoFocus + + + Days + + + true + + + true + + + + + + + + 50 + 35 + + + + + 16777215 + 16777215 + + + + Qt::NoFocus + + + Months + + + true + + + true + + + + + + + + 0 + 0 + + + + + 50 + 35 + + + + + 16777215 + 16777215 + + + + Qt::NoFocus + + + Years + + + true + + + true + + + true + + + + + + + + + + + 55 + 80 + + + + + 16777215 + 80 + + + + Filter by + + + + 5 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 55 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 55 + 0 + + + + + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 40 + 0 + + + + + + + + + + + + + + + + + + + + + 0 + 100 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + 25 + + + + + Qt::Vertical + + + + 20 + 20 + + + + + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 30 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 100 + 100 + + + + + 100 + 100 + + + + Qt::NoFocus + + + + + + + 100 + 100 + + + + + + + + + + + LabelText + + + Qt::AlignCenter + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + #labelMessageEmpty { + padding-left:30px; + padding-right:30px; +} + + + TextLabel + + + Qt::AlignCenter + + + true + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/defaultdialog.ui b/src/qt/pivx/forms/defaultdialog.ui new file mode 100644 index 0000000..3623de6 --- /dev/null +++ b/src/qt/pivx/forms/defaultdialog.ui @@ -0,0 +1,268 @@ + + + DefaultDialog + + + + 0 + 0 + 500 + 350 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 30 + + + 20 + + + 30 + + + 20 + + + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + padding-left:24px; + + + Transaction Details + + + Qt::AlignCenter + + + 7 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + Qt::NoFocus + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 40 + + + + + + + + Text Label + + + Qt::AlignCenter + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 10 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 170 + 50 + + + + + 170 + 16777215 + + + + Qt::NoFocus + + + CANCEL + + + + + + + + 170 + 50 + + + + + 170 + 16777215 + + + + Qt::NoFocus + + + SAVE + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/denomgenerationdialog.ui b/src/qt/pivx/forms/denomgenerationdialog.ui new file mode 100644 index 0000000..3cacba2 --- /dev/null +++ b/src/qt/pivx/forms/denomgenerationdialog.ui @@ -0,0 +1,350 @@ + + + DenomGenerationDialog + + + + 0 + 0 + 500 + 450 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 30 + + + 20 + + + 30 + + + 20 + + + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + padding-left:24px; + + + Transaction Details + + + Qt::AlignCenter + + + 7 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + Qt::NoFocus + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + This will unlock your wallet fully, so that anyone with access to it can spend until the wallet is closed or locked again. + + + Qt::AlignCenter + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 40 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + 40 + + + + + 5000 + + + + + + + 100 + + + + + + + 10 + + + + + + + 1000 + + + + + + + 50 + + + + + + + 500 + + + + + + + 5 + + + + + + + 1 + + + + + + + Select All + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 20 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 50 + + + + Qt::NoFocus + + + CANCEL + + + + + + + + 0 + 50 + + + + Qt::NoFocus + + + SAVE + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/expandablebutton.ui b/src/qt/pivx/forms/expandablebutton.ui new file mode 100644 index 0000000..dc704ee --- /dev/null +++ b/src/qt/pivx/forms/expandablebutton.ui @@ -0,0 +1,82 @@ + + + ExpandableButton + + + + 0 + 0 + 48 + 42 + + + + + 0 + 0 + + + + + 36 + 0 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 36 + 36 + + + + + 36 + 36 + + + + Qt::NoFocus + + + padding-right:5px;padding-left:5px; + + + + + + + 32 + 32 + + + + true + + + + + + + + diff --git a/src/qt/pivx/forms/loadingdialog.ui b/src/qt/pivx/forms/loadingdialog.ui new file mode 100644 index 0000000..6f893a4 --- /dev/null +++ b/src/qt/pivx/forms/loadingdialog.ui @@ -0,0 +1,173 @@ + + + LoadingDialog + + + + 0 + 0 + 800 + 636 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 10 + + + + + + 16777215 + 16777215 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 600 + 600 + + + + + 600 + 600 + + + + TextLabel + + + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Loading + + + Qt::AlignCenter + + + + + + + + 20 + 0 + + + + . + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/lockunlock.ui b/src/qt/pivx/forms/lockunlock.ui new file mode 100644 index 0000000..b2db2f7 --- /dev/null +++ b/src/qt/pivx/forms/lockunlock.ui @@ -0,0 +1,203 @@ + + + LockUnlock + + + + 0 + 0 + 528 + 141 + + + + Form + + + margin:0px; padding:0px; border:none; + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Vertical + + + + 20 + 2 + + + + + + + + + + + 36 + 36 + + + + + 16777215 + 36 + + + + + + + true + + + true + + + true + + + + + + + + + + + + 36 + 36 + + + + + 16777215 + 36 + + + + + + + true + + + true + + + + + + + + + + + + 36 + 36 + + + + + 16777215 + 36 + + + + + + + true + + + true + + + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 2 + + + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/masternodeswidget.ui b/src/qt/pivx/forms/masternodeswidget.ui new file mode 100644 index 0000000..3960c05 --- /dev/null +++ b/src/qt/pivx/forms/masternodeswidget.ui @@ -0,0 +1,388 @@ + + + MasterNodesWidget + + + + 0 + 0 + 629 + 406 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 6 + + + + + 0 + + + 20 + + + + + 5 + + + + + TextLabel + + + + + + + TextLabel + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 40 + + + + + + + + + + + true + + + + + + + + 0 + 100 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Vertical + + + + 20 + 20 + + + + + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 30 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 100 + 100 + + + + + 100 + 100 + + + + Qt::NoFocus + + + + + + + 100 + 100 + + + + + + + + + + + N/A + + + Qt::AlignCenter + + + + + + + + + + + + + 20 + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 40 + 20 + + + + + + + + + 283 + 50 + + + + + 283 + 50 + + + + Qt::NoFocus + + + + + + + + + + + 125 + 50 + + + + Start All + + + + + + + + 125 + 50 + + + + Start Inactive/s + + + + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 6 + + + + + + 0 + 50 + + + + + + + + + 0 + 50 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + OptionButton + QWidget +
qt/pivx/optionbutton.h
+ 1 +
+
+ + +
diff --git a/src/qt/pivx/forms/masternodewizarddialog.ui b/src/qt/pivx/forms/masternodewizarddialog.ui new file mode 100644 index 0000000..814aea3 --- /dev/null +++ b/src/qt/pivx/forms/masternodewizarddialog.ui @@ -0,0 +1,1093 @@ + + + MasterNodeWizardDialog + + + + 0 + 0 + 715 + 602 + + + + Dialog + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 20 + + + 20 + + + + + 0 + + + 20 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 20 + 20 + + + + + 20 + 20 + + + + Qt::NoFocus + + + + + + + + + + + + + 0 + 24 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 100 + 20 + + + + + + + + + 22 + 22 + + + + + 22 + 22 + + + + 0 + + + + + 22 + 22 + + + + + 22 + 22 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 22 + 22 + + + + + 22 + 22 + + + + 1 + + + true + + + true + + + true + + + + + + + + + + + + + 0 + 1 + + + + + 16777215 + 1 + + + + + + + + + + + + + + + 22 + 22 + + + + + 22 + 22 + + + + 0 + + + + + 22 + 22 + + + + + 22 + 22 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 22 + 22 + + + + + 22 + 22 + + + + 2 + + + true + + + false + + + true + + + + + + + + + + + + + 0 + 1 + + + + + 16777215 + 1 + + + + + + + + + + + + + + + 22 + 22 + + + + + 22 + 22 + + + + 0 + + + + + 22 + 22 + + + + + 22 + 22 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 22 + 22 + + + + + 22 + 22 + + + + 3 + + + true + + + false + + + true + + + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 100 + 20 + + + + + + + + + + + true + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + true + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 70 + 20 + + + + + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Qt::NoFocus + + + Intro + + + true + + + true + + + false + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Qt::NoFocus + + + Name + + + true + + + false + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + Qt::NoFocus + + + Address + + + true + + + false + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 70 + 20 + + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 30 + + + + + + + + + 0 + 350 + + + + + 16777215 + 350 + + + + + + 6 + + + 80 + + + 12 + + + 80 + + + 12 + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + Create New Masternode Controller + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + <html><head/><body><p>To create a PIVX Masternode you must dedicate 10.000 PIV (the unit of PIVX) to the network (however, these coins are still yours and will never leave your possession). </p><p></p><p>You can deactivate the node and unlock the coins at any time.</p></body></html> + + + Qt::AlignHCenter|Qt::AlignTop + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 75 + true + + + + Make sure you have this amount of coins. + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + 6 + + + 140 + + + 12 + + + 140 + + + 12 + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + Set Masternode Name + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 40 + + + + + + + + <html><head/><body><p>A transaction of 10,000 PIV will be made</p><p>to a new empty address in your wallet.</p><p>The Address is labeled under the master node's name.</p></body></html> + + + Qt::AlignHCenter|Qt::AlignTop + + + true + + + + + + + + + 6 + + + 140 + + + 12 + + + 140 + + + 12 + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + Set Masternode IP and Port + + + + + + + Address of the node that must always be online running the actual master node. + + + Qt::AlignCenter + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + Enter IP address + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 14 + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 30 + + + + + + + + Enter port + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 14 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 50 + + + + + 180 + 16777215 + + + + Qt::NoFocus + + + CANCEL + + + + + + + + 0 + 50 + + + + + 180 + 16777215 + + + + Qt::NoFocus + + + OK + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/mninfodialog.ui b/src/qt/pivx/forms/mninfodialog.ui new file mode 100644 index 0000000..3c1a2c9 --- /dev/null +++ b/src/qt/pivx/forms/mninfodialog.ui @@ -0,0 +1,625 @@ + + + MnInfoDialog + + + + 0 + 0 + 574 + 700 + + + + + 574 + 530 + + + + Form + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + + + 0 + + + 20 + + + 10 + + + 20 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + padding-left:24px; + + + Masternode Information + + + Qt::AlignCenter + + + 7 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + border:none; + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + + + #scrollArea { +background:transparent; +} + + + Qt::ScrollBarAlwaysOff + + + QAbstractScrollArea::AdjustIgnored + + + true + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + 0 + 0 + 570 + 596 + + + + false + + + #scrollAreaWidgetContents { +background:transparent; +} + + + + 0 + + + QLayout::SetDefaultConstraint + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 16 + + + 0 + + + 16 + + + + + + 0 + + + + + + 16777215 + 16777215 + + + + Public Key: + + + + + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + + + + + + 34 + 34 + + + + + 34 + 34 + + + + Qt::NoFocus + + + + + + + 24 + 24 + + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + 0 + + + 12 + + + + + + 16777215 + 16777215 + + + + Address: + + + + + + + 127.0.0.2:43223 + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + + + + 16777215 + 16777215 + + + + Collaterall tx id: + + + + + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + + + + + + 34 + 34 + + + + + 34 + 34 + + + + Qt::NoFocus + + + + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + 12 + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Output index: + + + + + + + 1 Inputs + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + + + + 16777215 + 16777215 + + + + Status: + + + + + + + MISSING + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + + + padding-top:1px; + + + 0 + + + Export data to run the Masternode on a remote server + + + true + + + 0 + + + + + + + + 34 + 34 + + + + + 34 + 34 + + + + Qt::NoFocus + + + + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/mnrow.ui b/src/qt/pivx/forms/mnrow.ui new file mode 100644 index 0000000..f54417e --- /dev/null +++ b/src/qt/pivx/forms/mnrow.ui @@ -0,0 +1,169 @@ + + + MNRow + + + + 0 + 0 + 475 + 65 + + + + Form + + + + + + + 0 + + + 20 + + + 0 + + + 20 + + + 0 + + + + + border:none; + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + + + border:none;padding:0px; + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + user_masternode + + + + + + + Address: 88.26.164.88:51474 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Jan. 19, 2019 + + + + + + + Qt::NoFocus + + + border:none; background-color:transparent; padding:0px; + + + + + + + :/ic-menu-hover:/ic-menu-hover + + + + 24 + 24 + + + + + + + + + + + + 0 + 1 + + + + + 16777215 + 1 + + + + + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + + diff --git a/src/qt/pivx/forms/myaddressrow.ui b/src/qt/pivx/forms/myaddressrow.ui new file mode 100644 index 0000000..d285bc0 --- /dev/null +++ b/src/qt/pivx/forms/myaddressrow.ui @@ -0,0 +1,74 @@ + + + MyAddressRow + + + + 0 + 0 + 400 + 60 + + + + Form + + + + 0 + + + 20 + + + 10 + + + 20 + + + 20 + + + + + + + Savings + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Jan. 19, 2019 + + + + + + + + + DN6i46dytMPVhV1JMGZFuQBh7BZZ6nNLox + + + + + + + + diff --git a/src/qt/pivx/forms/navmenuwidget.ui b/src/qt/pivx/forms/navmenuwidget.ui new file mode 100644 index 0000000..0832ede --- /dev/null +++ b/src/qt/pivx/forms/navmenuwidget.ui @@ -0,0 +1,401 @@ + + + NavMenuWidget + + + + 0 + 0 + 102 + 786 + + + + Form + + + padding:0px; +border:none; +margin:0px; + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 10 + + + + + + 0 + 120 + + + + Qt::NoFocus + + + + + + + 64 + 64 + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + QScrollBar { +height:0px; + width:0px; +} + +#scrollAreaNav{ +background-color:transparent; +} + + + Qt::ScrollBarAlwaysOff + + + QAbstractScrollArea::AdjustToContents + + + true + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + 0 + 0 + 100 + 640 + + + + + 0 + 0 + + + + + 0 + 0 + + + + false + + + #scrollAreaNavVert{ +background-color:transparent; +} + + + + 0 + + + QLayout::SetDefaultConstraint + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 100 + 80 + + + + + + + + 32 + 32 + + + + true + + + true + + + true + + + + + + + + 100 + 80 + + + + + + + + 32 + 32 + + + + true + + + true + + + + + + + + 100 + 80 + + + + + + + true + + + true + + + + + + + + 100 + 80 + + + + + + + + 32 + 32 + + + + true + + + true + + + + + + + + 100 + 80 + + + + + + + + 32 + 32 + + + + true + + + true + + + + + + + + 100 + 80 + + + + + + + + 32 + 32 + + + + true + + + true + + + + + + + + 100 + 80 + + + + + + + + 32 + 32 + + + + true + + + true + + + + + + + + 100 + 80 + + + + + + + + 32 + 32 + + + + true + + + true + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 20 + + + + + + + + + 16777215 + 60 + + + + V 1.0.0 + + + Qt::AlignBottom|Qt::AlignHCenter + + + + + + + + + + + diff --git a/src/qt/pivx/forms/optionbutton.ui b/src/qt/pivx/forms/optionbutton.ui new file mode 100644 index 0000000..ddde31e --- /dev/null +++ b/src/qt/pivx/forms/optionbutton.ui @@ -0,0 +1,184 @@ + + + OptionButton + + + + 0 + 0 + 563 + 80 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 5 + + + + + 0 + + + + + + 20 + 0 + + + + + 20 + 16777215 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 10 + 10 + + + + + 10 + 10 + + + + + + + + + + + + + + TextLabel + + + + + + + + + TextLabel + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + Qt::NoFocus + + + + + + + 24 + 24 + + + + true + + + false + + + + + + + + + + + diff --git a/src/qt/pivx/forms/privacywidget.ui b/src/qt/pivx/forms/privacywidget.ui new file mode 100644 index 0000000..9a41ec1 --- /dev/null +++ b/src/qt/pivx/forms/privacywidget.ui @@ -0,0 +1,804 @@ + + + PrivacyWidget + + + + 0 + 0 + 629 + 549 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + + + 0 + + + 20 + + + 20 + + + + + 0 + + + + + 5 + + + + + Title + + + + + + + + 16777215 + 16777215 + + + + TextLabel + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 120 + 30 + + + + + 120 + 30 + + + + Qt::NoFocus + + + PushButton + + + true + + + true + + + + + + + + 120 + 30 + + + + + 120 + 30 + + + + Qt::NoFocus + + + PushButton + + + true + + + true + + + true + + + + + + + + + + TextLabel + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + 0 + + + + + 5 + + + + + + 0 + 20 + + + + + 16777215 + 20 + + + + TextLabel + + + + + + + 0 + + + + + + 0 + 50 + + + + 8 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 180 + 50 + + + + Qt::NoFocus + + + PushButton + + + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + 0 + + + 20 + + + + + TextLabel + + + + + + + + + 0 + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + true + + + Qt::NoFocus + + + + + + + + 0 + 100 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Vertical + + + + 20 + 20 + + + + + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 30 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 100 + 100 + + + + + 100 + 100 + + + + Qt::NoFocus + + + + + + + 100 + 100 + + + + + + + + + + + N/A + + + Qt::AlignCenter + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 50 + + + + + + + + + 0 + 50 + + + + + + + + + 0 + 50 + + + + + + + + + 0 + 50 + + + + + + + + + 0 + 50 + + + + + + + + 0 + + + + + + 12 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + TextLabel + + + + + + + TextLabel + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + TextLabel + + + + + + + TextLabel + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + TextLabel + + + + + + + TextLabel + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + TextLabel + + + + + + + TextLabel + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + TextLabel + + + + + + + TextLabel + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + TextLabel + + + + + + + TextLabel + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + TextLabel + + + + + + + TextLabel + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + TextLabel + + + + + + + TextLabel + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + OptionButton + QWidget +
qt/pivx/optionbutton.h
+ 1 +
+
+ + +
diff --git a/src/qt/pivx/forms/receivedialog.ui b/src/qt/pivx/forms/receivedialog.ui new file mode 100644 index 0000000..c5f6b83 --- /dev/null +++ b/src/qt/pivx/forms/receivedialog.ui @@ -0,0 +1,294 @@ + + + ReceiveDialog + + + + 0 + 0 + 600 + 550 + + + + Dialog + + + background:white; + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 30 + + + 20 + + + 30 + + + 20 + + + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + padding-left:24px; + + + Transaction Details + + + Qt::AlignCenter + + + 7 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + Qt::NoFocus + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 260 + 260 + + + + + 260 + 260 + + + + + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 20 + + + + + + + + 20 + + + 20 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 50 + + + + Qt::NoFocus + + + CANCEL + + + + + + + + 0 + 50 + + + + Qt::NoFocus + + + OK + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/receivewidget.ui b/src/qt/pivx/forms/receivewidget.ui new file mode 100644 index 0000000..915a550 --- /dev/null +++ b/src/qt/pivx/forms/receivewidget.ui @@ -0,0 +1,407 @@ + + + ReceiveWidget + + + + 0 + 0 + 629 + 629 + + + + + 0 + 0 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + 0 + + + + + 0 + + + + + 5 + + + + + TextLabel + + + + + + + TextLabel + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 50 + + + + + + + + + 510 + 16777215 + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 260 + 260 + + + + + 260 + 260 + + + + + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 30 + + + + + + + + + 0 + 0 + + + + + + + TextLabel + + + + + + + Qt::Horizontal + + + + 141 + 20 + + + + + + + + TextLabel + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + 0 + 0 + + + + + 300 + 0 + + + + No address + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + + Qt::NoFocus + + + Add Label + + + + + + + Qt::NoFocus + + + Generate Address + + + + + + + Qt::NoFocus + + + Copy + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 20 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + 0 + + + 1 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + 0 + + + 0 + + + + + 6 + + + 19 + + + 19 + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + + OptionButton + QWidget +
qt/pivx/optionbutton.h
+ 1 +
+
+ + +
diff --git a/src/qt/pivx/forms/requestdialog.ui b/src/qt/pivx/forms/requestdialog.ui new file mode 100644 index 0000000..ee0a8c3 --- /dev/null +++ b/src/qt/pivx/forms/requestdialog.ui @@ -0,0 +1,689 @@ + + + RequestDialog + + + + 0 + 0 + 602 + 607 + + + + Dialog + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 30 + + + 20 + + + 30 + + + 0 + + + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + padding-left:24px; + + + New Request Payment + + + Qt::AlignCenter + + + 7 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + Qt::NoFocus + + + + + + + + + + + + + 540 + 0 + + + + + 540 + 16777215 + + + + 0 + + + + + 540 + 0 + + + + + 540 + 16777215 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 30 + + + + + + + + + 400 + 50 + + + + Lorem ipsum dolor sit amet, consectur cling elit, sed do + + + Qt::AlignCenter + + + true + + + + + + + + 9 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 350 + 16 + + + + + 16777215 + 16 + + + + Amount + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + + + + + + 100 + 50 + + + + + 16777215 + 50 + + + + + 0 + + + 0 + + + 0 + + + 10 + + + 0 + + + + + PIV + + + Qt::AlignCenter + + + + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 30 + + + + + + + + 9 + + + + + + 0 + 16 + + + + + 16777215 + 16 + + + + TextLabel + + + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 30 + + + + + + + + 9 + + + + + + 0 + 16 + + + + + 16777215 + 16 + + + + TextLabel + + + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 50 + + + + + + + + + 260 + 260 + + + + + 260 + 260 + + + + + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 30 + + + + + + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 20 + + + + + + + + 20 + + + 20 + + + 20 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 180 + 50 + + + + COPY ADDRESS + + + + + + + + 180 + 50 + + + + COPY URL + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + 20 + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 180 + 50 + + + + Qt::NoFocus + + + CANCEL + + + + + + + + 180 + 50 + + + + Qt::NoFocus + + + REQUEST + + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/send.ui b/src/qt/pivx/forms/send.ui new file mode 100644 index 0000000..3cf37ea --- /dev/null +++ b/src/qt/pivx/forms/send.ui @@ -0,0 +1,809 @@ + + + send + + + + 0 + 0 + 893 + 700 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + + + 0 + + + 20 + + + 20 + + + + + 5 + + + + + Send + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + TextLabel + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 0 + + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 120 + 30 + + + + + 120 + 30 + + + + Qt::NoFocus + + + + + + true + + + true + + + + + + + + 120 + 30 + + + + + 120 + 30 + + + + Qt::NoFocus + + + + + + true + + + true + + + true + + + + + + + + + + TextLabel + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + 0 + + + 10 + + + 0 + + + 20 + + + 0 + + + + + margin-left:8px; + + + TextLabel + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 1 + + + + + + + + TextLabel + + + + + + + + + + 0 + 350 + + + + #scrollArea { + background:transparent; + margin-top:10px; +} + + + Qt::ScrollBarAlwaysOff + + + QAbstractScrollArea::AdjustIgnored + + + true + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + 0 + 0 + 591 + 16 + + + + + 0 + 0 + + + + false + + + #scrollAreaWidgetContents { + background:transparent; + } + + + + 0 + + + QLayout::SetDefaultConstraint + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + 6 + + + 20 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::NoFocus + + + PushButton + + + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 20 + 20 + + + + + + + + Qt::NoFocus + + + Qt::RightToLeft + + + PushButton + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + Qt::NoFocus + + + PushButton + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 16 + + + + + + + + 20 + + + + + 0 + + + 8 + + + + + + 0 + 60 + + + + + 16777215 + 60 + + + + + + 6 + + + 12 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 60 + + + + + 16777215 + 60 + + + + + 0 + + + 20 + + + 10 + + + 20 + + + 10 + + + + + 0 + + + + + TextLabel + + + + + + + TextLabel + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 1 + 0 + + + + + 1 + 16777215 + + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + 0 + + + + + TextLabel + + + + + + + TextLabel + + + + + + + + + + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 40 + 20 + + + + + + + + + 200 + 50 + + + + + 200 + 50 + + + + Qt::NoFocus + + + + + + + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 6 + + + + + + 0 + 50 + + + + + + + + + 0 + 50 + + + + + + + + + 0 + 50 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 200 + 50 + + + + + 200 + 50 + + + + Qt::NoFocus + + + PushButton + + + + + + + + + + + + + + + OptionButton + QWidget +
qt/pivx/optionbutton.h
+ 1 +
+
+ + +
diff --git a/src/qt/pivx/forms/sendchangeaddressdialog.ui b/src/qt/pivx/forms/sendchangeaddressdialog.ui new file mode 100644 index 0000000..92b0473 --- /dev/null +++ b/src/qt/pivx/forms/sendchangeaddressdialog.ui @@ -0,0 +1,278 @@ + + + SendChangeAddressDialog + + + + 0 + 0 + 500 + 400 + + + + Dialog + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 30 + + + 20 + + + 30 + + + 20 + + + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + padding-left:24px; + + + Transaction Details + + + Qt::AlignCenter + + + 7 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + Qt::NoFocus + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 0 + 50 + + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + Qt::AlignCenter + + + true + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + 0 + + + 20 + + + 20 + + + + + + 0 + 50 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + 6 + + + 30 + + + 30 + + + + + + 180 + 50 + + + + Qt::NoFocus + + + CANCEL + + + + + + + + 180 + 50 + + + + Qt::NoFocus + + + OK + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/sendconfirmdialog.ui b/src/qt/pivx/forms/sendconfirmdialog.ui new file mode 100644 index 0000000..9d56310 --- /dev/null +++ b/src/qt/pivx/forms/sendconfirmdialog.ui @@ -0,0 +1,959 @@ + + + TxDetailDialog + + + + 0 + 0 + 574 + 680 + + + + + 0 + 0 + + + + + 574 + 500 + + + + Form + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + + + 0 + + + 20 + + + 10 + + + 20 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + padding-left:24px; + + + Transaction Details + + + Qt::AlignCenter + + + 7 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + Qt::NoFocus + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + + + #scrollArea { +background:transparent; +} + + + Qt::ScrollBarAlwaysOff + + + QAbstractScrollArea::AdjustIgnored + + + true + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + 0 + 0 + 556 + 672 + + + + false + + + #scrollAreaWidgetContents { +background:transparent; +} + + + + 0 + + + QLayout::SetDefaultConstraint + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 16 + + + 0 + + + 16 + + + + + + 0 + + + + + + 16777215 + 16777215 + + + + ID: + + + + + + + 492526e7fa3c810b35016...40a5df85ee227ab00b1156994 + + + + + + + + 34 + 34 + + + + + 34 + 34 + + + + Qt::NoFocus + + + + + + + 24 + 24 + + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + 0 + + + 12 + + + + + + 16777215 + 16777215 + + + + Sending to: + + + + + + + D7VFR83SQbiezrW72hjcWJtcfip5krte2Z + + + + + + + + 34 + 20 + + + + + 38 + 20 + + + + Qt::NoFocus + + + + + + + + + + + + + + + + + 0 + 50 + + + + #outputsScrollArea { +background:transparent; +} + + + true + + + + + 0 + 0 + 522 + 48 + + + + #container_outputs_base { +background:transparent; +} + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + + + + 16777215 + 16777215 + + + + Total amount + + + + + + + 2 PIV + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + 12 + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Coin inputs: + + + + + + + 1 Inputs + + + + + + + + 34 + 20 + + + + Qt::NoFocus + + + + + + + + + + + + + + + + + 0 + 0 + + + + + 0 + 90 + + + + + QLayout::SetMaximumSize + + + 0 + + + + + Previous Transaction + + + + + + + Output Index + + + Qt::AlignCenter + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + + + + 16777215 + 16777215 + + + + Fee: + + + + + + + 0.0001 PIV + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + + + + 16777215 + 16777215 + + + + Change address: + + + + + + + D7VFR83SQbie…BhjcWJtcfip5krte2Z + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + + + + 16777215 + 16777215 + + + + Confirmations: + + + + + + + 12 + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + + + + 16777215 + 16777215 + + + + Size: + + + + + + + 2 kB + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + + + + 16777215 + 16777215 + + + + Date: + + + + + + + May 25, 2017 + + + + + + + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + + + + + + 0 + + + + + + 16777215 + 16777215 + + + + Status: + + + + + + + Spendable + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 10 + + + + + + + + TextLabel + + + Qt::AlignCenter + + + + + + + + + + + + + + + + + + 10 + + + 20 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 200 + 50 + + + + Qt::NoFocus + + + CANCEL + + + + + + + + 200 + 50 + + + + Qt::NoFocus + + + OK + + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/sendcustomfeedialog.ui b/src/qt/pivx/forms/sendcustomfeedialog.ui new file mode 100644 index 0000000..3e04dfe --- /dev/null +++ b/src/qt/pivx/forms/sendcustomfeedialog.ui @@ -0,0 +1,377 @@ + + + SendCustomFeeDialog + + + + 0 + 0 + 600 + 550 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 30 + + + 20 + + + 30 + + + 20 + + + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + padding-left:24px; + + + Transaction Details + + + Qt::AlignCenter + + + 7 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + Customize the transaction fee at your to your liking, depending on the fee value your transaction will be included or not in the blockchain. + + + Qt::AlignCenter + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + + + + 12 + + + 12 + + + + + 5 + + + + + Recomended + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + 0.00 KB + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + 5 + + + + + Custom + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + + + + Per kilobyte + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 180 + 50 + + + + Qt::NoFocus + + + CANCEL + + + + + + + + 180 + 50 + + + + Qt::NoFocus + + + OK + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/sendmultirow.ui b/src/qt/pivx/forms/sendmultirow.ui new file mode 100644 index 0000000..c831b0f --- /dev/null +++ b/src/qt/pivx/forms/sendmultirow.ui @@ -0,0 +1,317 @@ + + + SendMultiRow + + + + 0 + 0 + 493 + 180 + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 20 + + + 5 + + + + + + 0 + 0 + + + + + 0 + 60 + + + + + 16777215 + 85 + + + + + 0 + + + 8 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + + + 0 + 0 + + + + + 0 + 50 + + + + + 16777215 + 55 + + + + + 0 + + + 12 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + 6 + + + + + + 0 + 0 + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + 17 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + 14 + + + 0 + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Qt::NoFocus + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + + 6 + + + 20 + + + 0 + + + 0 + + + 10 + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + margin-bottom:2px; +margin-left:0.05px; +padding:0px; + + + TextLabel + + + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/snackbar.ui b/src/qt/pivx/forms/snackbar.ui new file mode 100644 index 0000000..d5847e5 --- /dev/null +++ b/src/qt/pivx/forms/snackbar.ui @@ -0,0 +1,119 @@ + + + SnackBar + + + + 0 + 0 + 400 + 60 + + + + + 0 + 60 + + + + + 16777215 + 60 + + + + Form + + + + 0 + + + 100 + + + 0 + + + 0 + + + 0 + + + + + + + + + 0 + + + 20 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + padding-left:45px; +font-size: 15px; +color:white; + + + Contact Stored + + + Qt::AlignCenter + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + Qt::NoFocus + + + true + + + + + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/splash.ui b/src/qt/pivx/forms/splash.ui new file mode 100644 index 0000000..f867f38 --- /dev/null +++ b/src/qt/pivx/forms/splash.ui @@ -0,0 +1,266 @@ + + + Splash + + + + 0 + 0 + 768 + 533 + + + + + 768 + 533 + + + + + 16777215 + 700 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 750 + 520 + + + + + + + QFrame::NoFrame + + + QFrame::Plain + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 300 + 100 + + + + + 300 + 100 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 0 + 30 + + + + + 0 + + + 10 + + + 0 + + + 10 + + + 0 + + + + + + 0 + 0 + + + + + 0 + 30 + + + + + 16 + + + + color:white; padding-left:50px; + + + Loading… + + + Qt::AlignHCenter|Qt::AlignTop + + + + + + + + 0 + 30 + + + + + 15 + + + + color:white; padding-top:1px; + + + vX.X.X + + + Qt::AlignHCenter|Qt::AlignTop + + + + + + + + + + + 0 + 8 + + + + + 16777215 + 8 + + + + + 0 + + + 0 + + + 4 + + + 0 + + + 0 + + + + + 24 + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 8 + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/tooltipmenu.ui b/src/qt/pivx/forms/tooltipmenu.ui new file mode 100644 index 0000000..9a1a07d --- /dev/null +++ b/src/qt/pivx/forms/tooltipmenu.ui @@ -0,0 +1,181 @@ + + + TooltipMenu + + + + 0 + 0 + 90 + 110 + + + + + 90 + 110 + + + + + 16777215 + 140 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 10 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 0 + 30 + + + + + 16777215 + 30 + + + + Qt::NoFocus + + + Copy + + + + + + + + 0 + 0 + + + + + 0 + 30 + + + + + 16777215 + 30 + + + + Qt::NoFocus + + + Edit + + + + + + + + 0 + 0 + + + + + 0 + 30 + + + + + 16777215 + 30 + + + + Qt::NoFocus + + + Delete + + + + + + + + 0 + 0 + + + + + 0 + 30 + + + + + 16777215 + 30 + + + + Qt::NoFocus + + + Last + + + + + + + + + + + diff --git a/src/qt/pivx/forms/topbar.ui b/src/qt/pivx/forms/topbar.ui new file mode 100644 index 0000000..6a063b7 --- /dev/null +++ b/src/qt/pivx/forms/topbar.ui @@ -0,0 +1,713 @@ + + + TopBar + + + + 0 + 0 + 734 + 200 + + + + + 0 + 200 + + + + + 16777215 + 200 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 65 + + + + + 0 + + + 14 + + + 0 + + + 14 + + + 0 + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 36 + + + + padding:0px;margin:0px; + + + 480.0685 PIV + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 1 + 30 + + + + + 1 + 30 + + + + background-color:white; +padding:0px; +border:none; + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 0 + 36 + + + + 1,000 zPIV + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 12 + + + 0 + + + + + + 0 + 36 + + + + + 16777215 + 36 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 36 + 36 + + + + + 16777215 + 36 + + + + + + + + + + + + 36 + 36 + + + + + + + + + 36 + 36 + + + + + + + + + 36 + 36 + + + + + + + + + 0 + 0 + + + + + 36 + 0 + + + + + + + + + 36 + 36 + + + + + 16777215 + 36 + + + + + + + + + 36 + 36 + + + + + + + + + + + + + + 0 + 135 + + + + + 10 + + + 0 + + + 10 + + + 10 + + + + + 9 + + + + + 0 + + + 0 + + + 30 + + + + + + + Available + + + + + + + 480.0685 PIV + + + + + + + + + 0 + + + + + + + Pending + + + + + + + 6.943 PIV + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + + + Immature + + + + + + + 10 PIV + + + + + + + + + + + + + + 1 + 100 + + + + + 1 + 16777215 + + + + background-color:white; +padding:0px; +border:none; + + + + + + + + + + 0 + + + 30 + + + + + + + Available + + + + + + + 1,000 zPIV + + + + + + + + + 0 + + + + + + + Pending + + + + + + + 60 zPIV + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + + + Immature + + + + + + + 10 zPIV + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 90 + 110 + + + + + 90 + 110 + + + + + 0 + + + 5 + + + 10 + + + 5 + + + 0 + + + + + + 70 + 70 + + + + + 16777215 + 70 + + + + Qt::NoFocus + + + + + + + 70 + 70 + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 36 + 36 + + + + + 36 + 36 + + + + Qt::NoFocus + + + + + + + + + + + + + + + + + + + + ExpandableButton + QWidget +
qt/pivx/expandablebutton.h
+ 1 +
+ + PFBorderImage + QFrame +
qt/pivx/pfborderimage.h
+ 1 +
+
+ + +
diff --git a/src/qt/pivx/forms/txrow.ui b/src/qt/pivx/forms/txrow.ui new file mode 100644 index 0000000..9a996bf --- /dev/null +++ b/src/qt/pivx/forms/txrow.ui @@ -0,0 +1,180 @@ + + + TxRow + + + + 0 + 0 + 601 + 70 + + + + + 0 + 40 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 9 + + + 20 + + + 9 + + + 20 + + + 0 + + + + + border:none; + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::NoFocus + + + border:none; + + + + + + + 28 + 28 + + + + + + + + 3 + + + 9 + + + + + + + + Received from Bob + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + + + + 18/05/18 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + + + + + +0.000585 PIV + + + + + + + + + + + 0 + 1 + + + + + 16777215 + 1 + + + + background-color:#bababa; + + + + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + + + + + diff --git a/src/qt/pivx/forms/walletpassworddialog.ui b/src/qt/pivx/forms/walletpassworddialog.ui new file mode 100644 index 0000000..03ff015 --- /dev/null +++ b/src/qt/pivx/forms/walletpassworddialog.ui @@ -0,0 +1,418 @@ + + + WalletPasswordDialog + + + + 0 + 0 + 550 + 450 + + + + Dialog + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 30 + + + 20 + + + 30 + + + 20 + + + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + padding-left:24px; + + + TextLabel + + + Qt::AlignCenter + + + 7 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 24 + 24 + + + + + 24 + 24 + + + + Qt::NoFocus + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 0 + 50 + + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim. + + + Qt::AlignCenter + + + true + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + 5 + + + + + + 0 + 20 + + + + + 16777215 + 20 + + + + TextLabel + + + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 30 + + + + + + + + + 5 + + + 1 + + + 1 + + + + + + 0 + 20 + + + + + 16777215 + 20 + + + + TextLabel + + + + + + + + 0 + 50 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + 15 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 180 + 50 + + + + Qt::NoFocus + + + CANCEL + + + + + + + + 180 + 50 + + + + Qt::NoFocus + + + OK + + + + + + + + + + + + + diff --git a/src/qt/pivx/forms/welcomecontentwidget.ui b/src/qt/pivx/forms/welcomecontentwidget.ui new file mode 100644 index 0000000..de335ce --- /dev/null +++ b/src/qt/pivx/forms/welcomecontentwidget.ui @@ -0,0 +1,1190 @@ + + + WelcomeContentWidget + + + + 0 + 0 + 1200 + 750 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 880 + 520 + + + + + 880 + 520 + + + + + 0 + + + 30 + + + 30 + + + + + + 0 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 14 + + + + + + + + 0 + + + 20 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 20 + 20 + + + + + 20 + 20 + + + + + + + + + + + + + + 0 + 24 + + + + + 16777215 + 24 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 140 + 20 + + + + + + + + + 22 + 22 + + + + + 22 + 22 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 22 + 22 + + + + + 22 + 22 + + + + Qt::NoFocus + + + 1 + + + true + + + true + + + true + + + + + + + + + + + 0 + 1 + + + + + 16777215 + 1 + + + + + + + + + + + + + + + 22 + 22 + + + + + 22 + 22 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 22 + 22 + + + + + 22 + 22 + + + + Qt::NoFocus + + + 2 + + + true + + + false + + + true + + + + + + + + + + + 0 + 1 + + + + + 16777215 + 1 + + + + + + + + + + + + + + + 22 + 22 + + + + + 22 + 22 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 22 + 22 + + + + + 22 + 22 + + + + Qt::NoFocus + + + 3 + + + true + + + false + + + true + + + + + + + + + + + 0 + 1 + + + + + 16777215 + 1 + + + + + + + + + + + + + + + 22 + 22 + + + + + 22 + 22 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 22 + 22 + + + + + 22 + 22 + + + + Qt::NoFocus + + + 4 + + + true + + + false + + + true + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 140 + 20 + + + + + + + + + + + true + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + true + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 96 + 20 + + + + + + + + + 110 + 0 + + + + + 100 + 16777215 + + + + Qt::NoFocus + + + Language + + + true + + + true + + + false + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 110 + 0 + + + + + 100 + 16777215 + + + + Qt::NoFocus + + + Welcome + + + true + + + false + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 110 + 0 + + + + + 100 + 16777215 + + + + Qt::NoFocus + + + Privacy + + + true + + + false + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 110 + 0 + + + + + 100 + 16777215 + + + + Qt::NoFocus + + + Masternodes + + + true + + + false + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 96 + 20 + + + + + + + + + + + + + + + + 40 + + + 40 + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 60 + + + + + + + + + + 6 + + + 200 + + + 12 + + + 200 + + + 12 + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 60 + + + + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + Select your language + + + + + + + Qt::Vertical + + + + 20 + 20 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + 40 + + + 40 + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 60 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 16777215 + 60 + + + + padding:1px; + + + Welcome to +PIVX Core Wallet + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 40 + + + + + + + + PIVX is the world’s most innovative Proof of Stake blockchain based technology. Developed by a team of highly experienced developers and cryptographers. + + + Qt::AlignHCenter|Qt::AlignTop + + + true + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + 6 + + + 140 + + + 12 + + + 140 + + + 12 + + + + + Qt::Vertical + + + + 20 + 60 + + + + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + How PIVX respects your privacy? + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + <html><head/><body><p>As our manifesto says: Privacy is a non-negotiable basic human right; it grants users the freedom to share their data whenever and with whomever they want - PIVX believes in self sovereignty.</p></body></html> + + + Qt::AlignHCenter|Qt::AlignTop + + + true + + + + + + + + + 6 + + + 140 + + + 12 + + + 140 + + + 12 + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 60 + + + + + + + + + 0 + 50 + + + + + 16777215 + 50 + + + + What is a Masternode? + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 40 + + + + + + + + The masternode network is PIVX's second layer network on top of the blockchain that enables our DAO to provide decentralized governance and a treasury. + + + Qt::AlignCenter + + + true + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + + + + + + + + + PFBorderImage + QFrame +
qt/pivx/pfborderimage.h
+ 1 +
+
+ + +
diff --git a/src/qt/pivx/furabstractlistitemdelegate.cpp b/src/qt/pivx/furabstractlistitemdelegate.cpp new file mode 100644 index 0000000..98a599f --- /dev/null +++ b/src/qt/pivx/furabstractlistitemdelegate.cpp @@ -0,0 +1,42 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/furabstractlistitemdelegate.h" + +FurAbstractListItemDelegate::FurAbstractListItemDelegate(int _rowHeight, FurListRow<> *_row, QObject *parent) : + QAbstractItemDelegate(parent), rowHeight(_rowHeight), row(_row){} + +void FurAbstractListItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex &index ) const +{ + painter->save(); + + // Status + bool isStateSelected = option.state & QStyle::State_Selected; + bool isStateHovered = option.state & QStyle::State_MouseOver; + + QRect selectedRect = option.rect; + selectedRect.setLeft(0); + painter->fillRect(selectedRect, this->row->rectColor(isStateHovered, isStateSelected)); + + painter->translate(option.rect.topLeft()); + QWidget *row = this->row->createHolder(index.row()); + row->setStyleSheet(qobject_cast(parent())->styleSheet()); + this->row->init(row, index, isStateHovered, isStateSelected); + row->setAttribute(Qt::WA_DontShowOnScreen, true); + row->setGeometry(option.rect); + row->resize(option.rect.width(),option.rect.height()); + row->render(painter, QPoint(), QRegion(), QWidget::DrawChildren ); + + painter->restore(); +} + +FurListRow<>* FurAbstractListItemDelegate::getRowFactory(){ + return this->row; +} + +QSize FurAbstractListItemDelegate::sizeHint(const QStyleOptionViewItem&, const QModelIndex&) const +{ + return QSize(rowHeight, rowHeight); +} diff --git a/src/qt/pivx/furabstractlistitemdelegate.h b/src/qt/pivx/furabstractlistitemdelegate.h new file mode 100644 index 0000000..2b07880 --- /dev/null +++ b/src/qt/pivx/furabstractlistitemdelegate.h @@ -0,0 +1,40 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef FURABSTRACTLISTITEMDELEGATE_H +#define FURABSTRACTLISTITEMDELEGATE_H + +#include "qt/pivx/furlistrow.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE +class QModelIndex; +QT_END_NAMESPACE + +class FurAbstractListItemDelegate : public QAbstractItemDelegate +{ + Q_OBJECT +public: + FurAbstractListItemDelegate(int _rowHeight, FurListRow<>* _row, QObject *parent=nullptr); + + QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; + void paint(QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex &index ) const; + + FurListRow<> *getRowFactory(); +private: + int rowHeight = 0; + FurListRow<>* row = nullptr; + +}; + +#endif // FURABSTRACTLISTITEMDELEGATE_H diff --git a/src/qt/pivx/furlistrow.h b/src/qt/pivx/furlistrow.h new file mode 100644 index 0000000..c288ed2 --- /dev/null +++ b/src/qt/pivx/furlistrow.h @@ -0,0 +1,31 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef FURLISTROW_H +#define FURLISTROW_H + +#include +#include + +template +class FurListRow{ + +public: + FurListRow(){} + virtual inline ~FurListRow(){} + + virtual inline T createHolder(int){ + return nullptr; + } + + virtual inline void init(T, const QModelIndex&, bool isHovered, bool isSelected) const{ + + } + + virtual inline QColor rectColor(bool isHovered, bool isSelected){ + return QColor(); + } +}; + +#endif // FURLISTROW_H diff --git a/src/qt/pivx/guitransactionsutils.cpp b/src/qt/pivx/guitransactionsutils.cpp new file mode 100644 index 0000000..e7de71e --- /dev/null +++ b/src/qt/pivx/guitransactionsutils.cpp @@ -0,0 +1,80 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/guitransactionsutils.h" +#include "bitcoinunits.h" +#include "optionsmodel.h" + +namespace GuiTransactionsUtils { + + QString ProcessSendCoinsReturn(PWidget::Translator *parent, const WalletModel::SendCoinsReturn &sendCoinsReturn, + WalletModel *walletModel, CClientUIInterface::MessageBoxFlags& informType, const QString &msgArg, + bool fPrepare) { + QString retStr; + informType = CClientUIInterface::MSG_WARNING; + // This comment is specific to SendCoinsDialog usage of WalletModel::SendCoinsReturn. + // WalletModel::TransactionCommitFailed is used only in WalletModel::sendCoins() + // all others are used only in WalletModel::prepareTransaction() + switch (sendCoinsReturn.status) { + case WalletModel::InvalidAddress: + retStr = parent->translate("The recipient address is not valid, please recheck."); + break; + case WalletModel::InvalidAmount: + retStr = parent->translate("The amount to pay must be larger than 0."); + break; + case WalletModel::AmountExceedsBalance: + retStr = parent->translate("The amount exceeds your balance."); + break; + case WalletModel::AmountWithFeeExceedsBalance: + retStr = parent->translate( + "The total exceeds your balance when the %1 transaction fee is included.").arg(msgArg); + break; + case WalletModel::DuplicateAddress: + retStr = parent->translate( + "Duplicate address found, can only send to each address once per send operation."); + break; + case WalletModel::TransactionCreationFailed: + retStr = parent->translate("Transaction creation failed!"); + informType = CClientUIInterface::MSG_ERROR; + break; + case WalletModel::TransactionCommitFailed: + retStr = parent->translate( + "The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."); + informType = CClientUIInterface::MSG_ERROR; + break; + case WalletModel::AnonymizeOnlyUnlocked: + // Unlock is only need when the coins are send + if (!fPrepare) { + // Unlock wallet if it wasn't fully unlocked already + walletModel->requestUnlock(AskPassphraseDialog::Context::Unlock_Full, false); + if (walletModel->getEncryptionStatus() != WalletModel::Unlocked) { + retStr = parent->translate( + "Error: The wallet was unlocked for staking only. Unlock canceled."); + } + } else + retStr = parent->translate("Error: The wallet is unlocked for staking only. Fully unlock the wallet to send the transaction."); + break; + case WalletModel::InsaneFee: + retStr = parent->translate( + "A fee %1 times higher than %2 per kB is considered an insanely high fee.").arg(10000).arg( + BitcoinUnits::formatWithUnit(walletModel->getOptionsModel()->getDisplayUnit(), + ::minRelayTxFee.GetFeePerK())); + break; + // included to prevent a compiler warning. + case WalletModel::OK: + default: + return retStr; // No issue + } + + return retStr; + } + + void ProcessSendCoinsReturnAndInform(PWidget* parent, const WalletModel::SendCoinsReturn& sendCoinsReturn, WalletModel* walletModel, const QString& msgArg, bool fPrepare) { + CClientUIInterface::MessageBoxFlags informType; + QString informMsg = ProcessSendCoinsReturn(parent, sendCoinsReturn, walletModel, informType, msgArg, fPrepare); + if (!informMsg.isEmpty()) parent->emitMessage(parent->translate("Send Coins"), informMsg, informType, 0); + } + + +} diff --git a/src/qt/pivx/guitransactionsutils.h b/src/qt/pivx/guitransactionsutils.h new file mode 100644 index 0000000..da5bf06 --- /dev/null +++ b/src/qt/pivx/guitransactionsutils.h @@ -0,0 +1,37 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef FURSZY_PIVX_GUITRANSACTIONSUTILS_H +#define FURSZY_PIVX_GUITRANSACTIONSUTILS_H + +#include "walletmodel.h" +#include "qt/pivx/pwidget.h" + + +namespace GuiTransactionsUtils { + + // Process WalletModel::SendCoinsReturn and generate a pair consisting + // of a message and message flags for use in emit message(). + // Additional parameter msgArg can be used via .arg(msgArg). + QString ProcessSendCoinsReturn( + PWidget::Translator* parent, + const WalletModel::SendCoinsReturn& sendCoinsReturn, + WalletModel* walletModel, + CClientUIInterface::MessageBoxFlags& informType, + const QString& msgArg = QString(), + bool fPrepare = false + ); + + void ProcessSendCoinsReturnAndInform(PWidget* parent, + const WalletModel::SendCoinsReturn& sendCoinsReturn, + WalletModel* walletModel, + const QString& msgArg = QString(), + bool fPrepare = false + ); + + +} + + +#endif //FURSZY_PIVX_GUITRANSACTIONSUTILS_H diff --git a/src/qt/pivx/loadingdialog.cpp b/src/qt/pivx/loadingdialog.cpp new file mode 100644 index 0000000..f3053bf --- /dev/null +++ b/src/qt/pivx/loadingdialog.cpp @@ -0,0 +1,95 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/loadingdialog.h" +#include "qt/pivx/forms/ui_loadingdialog.h" +#include + +void Worker::process(){ + if (runnable) { + try { + runnable->run(type); + } catch (std::exception &e) { + QString errorStr = QString::fromStdString(e.what()); + runnable->onError(errorStr, type); + emit error(errorStr, type); + } catch (...) { + QString errorStr = QString::fromStdString("Unknown error running background task"); + runnable->onError(errorStr, type); + emit error(errorStr, type); + } + } else { + emit error("Null runnable", type); + } + emit finished(); +}; + +LoadingDialog::LoadingDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::LoadingDialog) +{ + ui->setupUi(this); + + this->setStyleSheet(parent->styleSheet()); + + ui->frame->setProperty("cssClass", "container-loading"); + + QMovie *movie = new QMovie("://ani-loading-dark"); + ui->labelMovie->setText(""); + ui->labelMovie->setMovie(movie); + movie->start(); + + ui->labelMessage->setText(tr("Loading")); + ui->labelMessage->setProperty("cssClass", "text-loading"); + ui->labelDots->setProperty("cssClass", "text-loading"); +} + +void LoadingDialog::execute(Runnable *runnable, int type){ + loadingTimer = new QTimer(this); + connect(loadingTimer, SIGNAL(timeout()), this, SLOT(loadingTextChange())); + loadingTimer->start(250); + + QThread* thread = new QThread; + Worker* worker = new Worker(runnable, type); + worker->moveToThread(thread); + connect(thread, SIGNAL (started()), worker, SLOT (process())); + connect(worker, SIGNAL (finished()), thread, SLOT (quit())); + connect(worker, SIGNAL (finished()), worker, SLOT (deleteLater())); + connect(thread, SIGNAL (finished()), thread, SLOT (deleteLater())); + connect(worker, SIGNAL (finished()), this, SLOT (finished())); + thread->start(); +} + +void LoadingDialog::loadingTextChange(){ + if (loading == 4) { + loading = 0; + } else { + loading++; + } + switch (loading) { + case 1: + ui->labelDots->setText(""); + break; + case 2: + ui->labelDots->setText("."); + break; + case 3: + ui->labelDots->setText(".."); + break; + case 4: + ui->labelDots->setText("..."); + break; + } +} + +void LoadingDialog::finished(){ + loadingTimer->stop(); + accept(); + deleteLater(); +} + +LoadingDialog::~LoadingDialog() +{ + delete ui; +} diff --git a/src/qt/pivx/loadingdialog.h b/src/qt/pivx/loadingdialog.h new file mode 100644 index 0000000..efb9851 --- /dev/null +++ b/src/qt/pivx/loadingdialog.h @@ -0,0 +1,58 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef LOADINGDIALOG_H +#define LOADINGDIALOG_H + +#include +#include +#include +#include +#include +#include "qt/pivx/prunnable.h" + +namespace Ui { +class LoadingDialog; +} + +class Worker : public QObject { + Q_OBJECT +public: + Worker(Runnable* runnable, int type):runnable(runnable), type(type){} + ~Worker(){ + runnable = nullptr; + } +public slots: + void process(); +signals: + void finished(); + void error(QString err, int type); + +private: + Runnable* runnable; + int type; +}; + +class LoadingDialog : public QDialog +{ + Q_OBJECT + +public: + explicit LoadingDialog(QWidget *parent = nullptr); + ~LoadingDialog(); + + + void execute(Runnable *runnable, int type); + +public slots: + void finished(); + void loadingTextChange(); + +private: + Ui::LoadingDialog *ui; + QTimer *loadingTimer = nullptr; + int loading = 0; +}; + +#endif // LOADINGDIALOG_H diff --git a/src/qt/pivx/lockunlock.cpp b/src/qt/pivx/lockunlock.cpp new file mode 100644 index 0000000..f604834 --- /dev/null +++ b/src/qt/pivx/lockunlock.cpp @@ -0,0 +1,92 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/lockunlock.h" +#include "qt/pivx/forms/ui_lockunlock.h" + +LockUnlock::LockUnlock(QWidget *parent) : + QWidget(parent), + ui(new Ui::LockUnlock) +{ + ui->setupUi(this); + + // Load css. + this->setStyleSheet(parent->styleSheet()); + + ui->container->setProperty("cssClass", "top-sub-menu"); + + ui->pushButtonUnlocked->setProperty("cssClass", "btn-check-lock-sub-menu-unlocked"); + ui->pushButtonUnlocked->setStyleSheet("padding-left: 34px;"); + ui->pushButtonLocked->setProperty("cssClass", "btn-check-lock-sub-menu-locked"); + ui->pushButtonLocked->setStyleSheet("padding-left: 34px;"); + ui->pushButtonStaking->setProperty("cssClass", "btn-check-lock-sub-menu-staking"); + ui->pushButtonStaking->setStyleSheet("padding-left: 34px;"); + + ui->pushButtonUnlocked->setText(tr("Unlock Wallet")); + ui->pushButtonLocked->setText(tr("Lock Wallet")); + ui->pushButtonStaking->setText(tr("Staking Only")); + + // Connect + connect(ui->pushButtonUnlocked, SIGNAL(clicked()), this, SLOT(onUnlockClicked())); + connect(ui->pushButtonLocked, SIGNAL(clicked()), this, SLOT(onLockClicked())); + connect(ui->pushButtonStaking, SIGNAL(clicked()), this, SLOT(onStakingClicked())); +} + +LockUnlock::~LockUnlock() +{ + delete ui; +} + +void LockUnlock::updateStatus(WalletModel::EncryptionStatus status){ + switch (status){ + case WalletModel::EncryptionStatus::Unlocked: + ui->pushButtonUnlocked->setChecked(true); + ui->pushButtonLocked->setChecked(false); + ui->pushButtonStaking->setChecked(false); + break; + case WalletModel::EncryptionStatus::UnlockedForAnonymizationOnly: + ui->pushButtonUnlocked->setChecked(false); + ui->pushButtonLocked->setChecked(false); + ui->pushButtonStaking->setChecked(true); + break; + case WalletModel::EncryptionStatus::Locked: + ui->pushButtonUnlocked->setChecked(false); + ui->pushButtonLocked->setChecked(true); + ui->pushButtonStaking->setChecked(false); + break; + default: + break; + } +} + +void LockUnlock::onLockClicked(){ + lock = 0; + emit lockClicked(StateClicked::LOCK); +} + +void LockUnlock::onUnlockClicked(){ + lock = 1; + emit lockClicked(StateClicked::UNLOCK); +} + +void LockUnlock::onStakingClicked(){ + lock = 2; + emit lockClicked(StateClicked::UNLOCK_FOR_STAKING); +} + +void LockUnlock::enterEvent(QEvent *) +{ + isOnHover = true; + emit Mouse_Entered(); +} + +void LockUnlock::leaveEvent(QEvent *) +{ + isOnHover = false; + emit Mouse_Leave(); +} + +bool LockUnlock::isHovered(){ + return isOnHover; +} diff --git a/src/qt/pivx/lockunlock.h b/src/qt/pivx/lockunlock.h new file mode 100644 index 0000000..6495294 --- /dev/null +++ b/src/qt/pivx/lockunlock.h @@ -0,0 +1,49 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef LOCKUNLOCK_H +#define LOCKUNLOCK_H + +#include +#include "walletmodel.h" + +namespace Ui { +class LockUnlock; +} + +enum StateClicked{ + LOCK,UNLOCK,UNLOCK_FOR_STAKING +}; + + +class LockUnlock : public QWidget +{ + Q_OBJECT + +public: + explicit LockUnlock(QWidget *parent = nullptr); + ~LockUnlock(); + void updateStatus(WalletModel::EncryptionStatus status); + int lock = 0; + bool isHovered(); +signals: + void Mouse_Entered(); + void Mouse_Leave(); + + void lockClicked(const StateClicked& state); +protected: + virtual void enterEvent(QEvent *); + virtual void leaveEvent(QEvent *); + +public slots: + void onLockClicked(); + void onUnlockClicked(); + void onStakingClicked(); + +private: + Ui::LockUnlock *ui; + bool isOnHover = false; +}; + +#endif // LOCKUNLOCK_H diff --git a/src/qt/pivx/masternodeswidget.cpp b/src/qt/pivx/masternodeswidget.cpp new file mode 100644 index 0000000..bc33272 --- /dev/null +++ b/src/qt/pivx/masternodeswidget.cpp @@ -0,0 +1,458 @@ +// Copyright (c) 2019-2020 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/masternodeswidget.h" +#include "qt/pivx/forms/ui_masternodeswidget.h" +#include "qt/pivx/qtutils.h" +#include "qt/pivx/mnrow.h" +#include "qt/pivx/mninfodialog.h" + +#include "qt/pivx/masternodewizarddialog.h" + +#include "activemasternode.h" +#include "clientmodel.h" +#include "guiutil.h" +#include "init.h" +#include "masternode-sync.h" +#include "masternodeconfig.h" +#include "masternodeman.h" +#include "sync.h" +#include "wallet/wallet.h" +#include "walletmodel.h" +#include "askpassphrasedialog.h" +#include "util.h" +#include "qt/pivx/optionbutton.h" +#include +#include +#include + +#define DECORATION_SIZE 65 +#define NUM_ITEMS 3 +#define REQUEST_START_ALL 1 +#define REQUEST_START_MISSING 2 + +class MNHolder : public FurListRow +{ +public: + MNHolder(); + + explicit MNHolder(bool _isLightTheme) : FurListRow(), isLightTheme(_isLightTheme){} + + MNRow* createHolder(int pos) override{ + if(!cachedRow) cachedRow = new MNRow(); + return cachedRow; + } + + void init(QWidget* holder,const QModelIndex &index, bool isHovered, bool isSelected) const override{ + MNRow* row = static_cast(holder); + QString label = index.data(Qt::DisplayRole).toString(); + QString address = index.sibling(index.row(), MNModel::ADDRESS).data(Qt::DisplayRole).toString(); + QString status = index.sibling(index.row(), MNModel::STATUS).data(Qt::DisplayRole).toString(); + bool wasCollateralAccepted = index.sibling(index.row(), MNModel::WAS_COLLATERAL_ACCEPTED).data(Qt::DisplayRole).toBool(); + row->updateView("Address: " + address, label, status, wasCollateralAccepted); + } + + QColor rectColor(bool isHovered, bool isSelected) override{ + return getRowColor(isLightTheme, isHovered, isSelected); + } + + ~MNHolder() override{} + + bool isLightTheme; + MNRow* cachedRow = nullptr; +}; + +MasterNodesWidget::MasterNodesWidget(PIVXGUI *parent) : + PWidget(parent), + ui(new Ui::MasterNodesWidget), + isLoading(false) +{ + ui->setupUi(this); + + delegate = new FurAbstractListItemDelegate( + DECORATION_SIZE, + new MNHolder(isLightTheme()), + this + ); + mnModel = new MNModel(this); + + this->setStyleSheet(parent->styleSheet()); + + /* Containers */ + setCssProperty(ui->left, "container"); + ui->left->setContentsMargins(0,20,0,20); + setCssProperty(ui->right, "container-right"); + ui->right->setContentsMargins(20,20,20,20); + + /* Light Font */ + QFont fontLight; + fontLight.setWeight(QFont::Light); + + /* Title */ + ui->labelTitle->setText(tr("Masternodes")); + setCssTitleScreen(ui->labelTitle); + ui->labelTitle->setFont(fontLight); + + ui->labelSubtitle1->setText(tr("Full nodes that incentivize node operators to perform the core consensus functions\nand vote on the treasury system receiving a periodic reward.")); + setCssSubtitleScreen(ui->labelSubtitle1); + + /* Buttons */ + ui->pushButtonSave->setText(tr("Create Masternode Controller")); + setCssBtnPrimary(ui->pushButtonSave); + setCssBtnPrimary(ui->pushButtonStartAll); + setCssBtnPrimary(ui->pushButtonStartMissing); + + /* Options */ + ui->btnAbout->setTitleClassAndText("btn-title-grey", "What is a Masternode?"); + ui->btnAbout->setSubTitleClassAndText("text-subtitle", "FAQ explaining what Masternodes are"); + ui->btnAboutController->setTitleClassAndText("btn-title-grey", "What is a Controller?"); + ui->btnAboutController->setSubTitleClassAndText("text-subtitle", "FAQ explaining what is a Masternode Controller"); + + setCssProperty(ui->listMn, "container"); + ui->listMn->setItemDelegate(delegate); + ui->listMn->setIconSize(QSize(DECORATION_SIZE, DECORATION_SIZE)); + ui->listMn->setMinimumHeight(NUM_ITEMS * (DECORATION_SIZE + 2)); + ui->listMn->setAttribute(Qt::WA_MacShowFocusRect, false); + ui->listMn->setSelectionBehavior(QAbstractItemView::SelectRows); + + ui->emptyContainer->setVisible(false); + setCssProperty(ui->pushImgEmpty, "img-empty-master"); + ui->labelEmpty->setText(tr("No active Masternode yet")); + setCssProperty(ui->labelEmpty, "text-empty"); + + connect(ui->pushButtonSave, SIGNAL(clicked()), this, SLOT(onCreateMNClicked())); + connect(ui->pushButtonStartAll, &QPushButton::clicked, [this]() { + onStartAllClicked(REQUEST_START_ALL); + }); + connect(ui->pushButtonStartMissing, &QPushButton::clicked, [this]() { + onStartAllClicked(REQUEST_START_MISSING); + }); + connect(ui->listMn, SIGNAL(clicked(QModelIndex)), this, SLOT(onMNClicked(QModelIndex))); + connect(ui->btnAbout, &OptionButton::clicked, [this](){window->openFAQ(9);}); + connect(ui->btnAboutController, &OptionButton::clicked, [this](){window->openFAQ(10);}); +} + +void MasterNodesWidget::showEvent(QShowEvent *event){ + if (mnModel) mnModel->updateMNList(); + if(!timer) { + timer = new QTimer(this); + connect(timer, &QTimer::timeout, [this]() {mnModel->updateMNList();}); + } + timer->start(30000); +} + +void MasterNodesWidget::hideEvent(QHideEvent *event){ + if(timer) timer->stop(); +} + +void MasterNodesWidget::loadWalletModel(){ + if(walletModel) { + ui->listMn->setModel(mnModel); + ui->listMn->setModelColumn(AddressTableModel::Label); + updateListState(); + } +} + +void MasterNodesWidget::updateListState() { + bool show = mnModel->rowCount() > 0; + ui->listMn->setVisible(show); + ui->emptyContainer->setVisible(!show); + ui->pushButtonStartAll->setVisible(show); +} + +void MasterNodesWidget::onMNClicked(const QModelIndex &index){ + ui->listMn->setCurrentIndex(index); + QRect rect = ui->listMn->visualRect(index); + QPoint pos = rect.topRight(); + pos.setX(pos.x() - (DECORATION_SIZE * 2)); + pos.setY(pos.y() + (DECORATION_SIZE * 1.5)); + if(!this->menu){ + this->menu = new TooltipMenu(window, this); + this->menu->setEditBtnText(tr("Start")); + this->menu->setDeleteBtnText(tr("Delete")); + this->menu->setCopyBtnText(tr("Info")); + connect(this->menu, &TooltipMenu::message, this, &AddressesWidget::message); + connect(this->menu, SIGNAL(onEditClicked()), this, SLOT(onEditMNClicked())); + connect(this->menu, SIGNAL(onDeleteClicked()), this, SLOT(onDeleteMNClicked())); + connect(this->menu, SIGNAL(onCopyClicked()), this, SLOT(onInfoMNClicked())); + this->menu->adjustSize(); + }else { + this->menu->hide(); + } + this->index = index; + menu->move(pos); + menu->show(); + + // Back to regular status + ui->listMn->scrollTo(index); + ui->listMn->clearSelection(); + ui->listMn->setFocus(); +} + +bool MasterNodesWidget::checkMNsNetwork() { + bool isTierTwoSync = mnModel->isMNsNetworkSynced(); + if (!isTierTwoSync) inform(tr("Please wait until the node is fully synced")); + return isTierTwoSync; +} + +void MasterNodesWidget::onEditMNClicked(){ + if(walletModel) { + if (!checkMNsNetwork()) return; + if (index.sibling(index.row(), MNModel::WAS_COLLATERAL_ACCEPTED).data(Qt::DisplayRole).toBool()) { + // Start MN + QString strAlias = this->index.data(Qt::DisplayRole).toString(); + if (ask(tr("Start Masternode"), tr("Are you sure you want to start masternode %1?\n").arg(strAlias))) { + if (!verifyWalletUnlocked()) return; + startAlias(strAlias); + } + }else { + inform(tr("Cannot start masternode, the collateral transaction has not been accepted by the network.\nPlease wait few more minutes.")); + } + } +} + +void MasterNodesWidget::startAlias(QString strAlias) { + QString strStatusHtml; + strStatusHtml += "Alias: " + strAlias + " "; + + for (CMasternodeConfig::CMasternodeEntry mne : masternodeConfig.getEntries()) { + if (mne.getAlias() == strAlias.toStdString()) { + std::string strError; + strStatusHtml += (!startMN(mne, strError)) ? ("failed to start.\nError: " + QString::fromStdString(strError)) : "successfully started."; + break; + } + } + // update UI and notify + updateModelAndInform(strStatusHtml); +} + +void MasterNodesWidget::updateModelAndInform(QString informText) { + mnModel->updateMNList(); + inform(informText); +} + +bool MasterNodesWidget::startMN(CMasternodeConfig::CMasternodeEntry mne, std::string& strError) { + CMasternodeBroadcast mnb; + if (!CMasternodeBroadcast::Create(mne.getIp(), mne.getPrivKey(), mne.getTxHash(), mne.getOutputIndex(), strError, mnb)) + return false; + + mnodeman.UpdateMasternodeList(mnb); + mnb.Relay(); + return true; +} + +void MasterNodesWidget::onStartAllClicked(int type) { + if (!verifyWalletUnlocked()) return; + if (!checkMNsNetwork()) return; + if (isLoading) { + inform(tr("Background task is being executed, please wait")); + } else { + isLoading = true; + if (!execute(type)) { + isLoading = false; + inform(tr("Cannot perform Mastenodes start")); + } + } +} + +bool MasterNodesWidget::startAll(QString& failText, bool onlyMissing) { + int amountOfMnFailed = 0; + int amountOfMnStarted = 0; + for (CMasternodeConfig::CMasternodeEntry mne : masternodeConfig.getEntries()) { + // Check for missing only + QString mnAlias = QString::fromStdString(mne.getAlias()); + if (onlyMissing && !mnModel->isMNInactive(mnAlias)) { + if (!mnModel->isMNActive(mnAlias)) + amountOfMnFailed++; + continue; + } + + std::string strError; + if (!startMN(mne, strError)) { + amountOfMnFailed++; + } else { + amountOfMnStarted++; + } + } + if (amountOfMnFailed > 0) { + failText = tr("%1 Masternodes failed to start, %2 started").arg(amountOfMnFailed).arg(amountOfMnStarted); + return false; + } + return true; +} + +void MasterNodesWidget::run(int type) { + bool isStartMissing = type == REQUEST_START_MISSING; + if (type == REQUEST_START_ALL || isStartMissing) { + QString failText; + QString inform = startAll(failText, isStartMissing) ? tr("All Masternodes started!") : failText; + QMetaObject::invokeMethod(this, "updateModelAndInform", Qt::QueuedConnection, + Q_ARG(QString, inform)); + } + + isLoading = false; +} + +void MasterNodesWidget::onError(QString error, int type) { + if (type == REQUEST_START_ALL) { + QMetaObject::invokeMethod(this, "inform", Qt::QueuedConnection, + Q_ARG(QString, "Error starting all Masternodes")); + } +} + +void MasterNodesWidget::onInfoMNClicked() { + if(!verifyWalletUnlocked()) return; + showHideOp(true); + MnInfoDialog* dialog = new MnInfoDialog(window); + QString label = index.data(Qt::DisplayRole).toString(); + QString address = index.sibling(index.row(), MNModel::ADDRESS).data(Qt::DisplayRole).toString(); + QString status = index.sibling(index.row(), MNModel::STATUS).data(Qt::DisplayRole).toString(); + QString txId = index.sibling(index.row(), MNModel::COLLATERAL_ID).data(Qt::DisplayRole).toString(); + QString outIndex = index.sibling(index.row(), MNModel::COLLATERAL_OUT_INDEX).data(Qt::DisplayRole).toString(); + QString pubKey = index.sibling(index.row(), MNModel::PUB_KEY).data(Qt::DisplayRole).toString(); + dialog->setData(pubKey, label, address, txId, outIndex, status); + dialog->adjustSize(); + showDialog(dialog, 3, 17); + if (dialog->exportMN){ + if (ask(tr("Remote Masternode Data"), + tr("You are just about to export the required data to run a Masternode\non a remote server to your clipboard.\n\n\n" + "You will only have to paste the data in the pivx.conf file\nof your remote server and start it, " + "then start the Masternode using\nthis controller wallet (select the Masternode in the list and press \"start\").\n" + ))) { + // export data + QString exportedMN = "masternode=1\n" + "externalip=" + address.left(address.lastIndexOf(":")) + "\n" + + "masternodeaddr=" + address + + "\n" + + "masternodeprivkey=" + index.sibling(index.row(), MNModel::PRIV_KEY).data(Qt::DisplayRole).toString() + "\n"; + GUIUtil::setClipboard(exportedMN); + inform(tr("Masternode exported!, check your clipboard")); + } + } + + dialog->deleteLater(); +} + +void MasterNodesWidget::onDeleteMNClicked(){ + QString qAliasString = index.data(Qt::DisplayRole).toString(); + std::string aliasToRemove = qAliasString.toStdString(); + + if (!ask(tr("Delete Masternode"), tr("You are just about to delete Masternode:\n%1\n\nAre you sure?").arg(qAliasString))) + return; + + std::string strConfFile = "masternode.conf"; + std::string strDataDir = GetDataDir().string(); + if (strConfFile != boost::filesystem::basename(strConfFile) + boost::filesystem::extension(strConfFile)){ + throw std::runtime_error(strprintf(_("masternode.conf %s resides outside data directory %s"), strConfFile, strDataDir)); + } + + boost::filesystem::path pathBootstrap = GetDataDir() / strConfFile; + if (boost::filesystem::exists(pathBootstrap)) { + boost::filesystem::path pathMasternodeConfigFile = GetMasternodeConfigFile(); + boost::filesystem::ifstream streamConfig(pathMasternodeConfigFile); + + if (!streamConfig.good()) { + inform(tr("Invalid masternode.conf file")); + return; + } + + int lineNumToRemove = -1; + int linenumber = 1; + std::string lineCopy = ""; + for (std::string line; std::getline(streamConfig, line); linenumber++) { + if (line.empty()) continue; + + std::istringstream iss(line); + std::string comment, alias, ip, privKey, txHash, outputIndex; + + if (iss >> comment) { + if (comment.at(0) == '#') continue; + iss.str(line); + iss.clear(); + } + + if (!(iss >> alias >> ip >> privKey >> txHash >> outputIndex)) { + iss.str(line); + iss.clear(); + if (!(iss >> alias >> ip >> privKey >> txHash >> outputIndex)) { + streamConfig.close(); + inform(tr("Error parsing masternode.conf file")); + return; + } + } + + if (aliasToRemove == alias) { + lineNumToRemove = linenumber; + } else + lineCopy += line + "\n"; + + } + + if (lineCopy.size() == 0) { + lineCopy = "# Masternode config file\n" + "# Format: alias IP:port masternodeprivkey collateral_output_txid collateral_output_index\n" + "# Example: mn1 127.0.0.2:51472 93HaYBVUCYjEMeeH1Y4sBGLALQZE1Yc1K64xiqgX37tGBDQL8Xg 2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c 0\n"; + } + + streamConfig.close(); + + if (lineNumToRemove != -1) { + boost::filesystem::path pathConfigFile("masternode_temp.conf"); + if (!pathConfigFile.is_complete()) pathConfigFile = GetDataDir() / pathConfigFile; + FILE* configFile = fopen(pathConfigFile.string().c_str(), "w"); + fwrite(lineCopy.c_str(), std::strlen(lineCopy.c_str()), 1, configFile); + fclose(configFile); + + boost::filesystem::path pathOldConfFile("old_masternode.conf"); + if (!pathOldConfFile.is_complete()) pathOldConfFile = GetDataDir() / pathOldConfFile; + if (boost::filesystem::exists(pathOldConfFile)) { + boost::filesystem::remove(pathOldConfFile); + } + rename(pathMasternodeConfigFile, pathOldConfFile); + + boost::filesystem::path pathNewConfFile("masternode.conf"); + if (!pathNewConfFile.is_complete()) pathNewConfFile = GetDataDir() / pathNewConfFile; + rename(pathConfigFile, pathNewConfFile); + + // Remove alias + masternodeConfig.remove(aliasToRemove); + // Update list + mnModel->removeMn(index); + updateListState(); + } + } else{ + inform(tr("masternode.conf file doesn't exists")); + } +} + +void MasterNodesWidget::onCreateMNClicked(){ + if(verifyWalletUnlocked()) { + if(walletModel->getBalance() <= (COIN * 10000)){ + inform(tr("Not enough balance to create a masternode, 10,000 PIV required.")); + return; + } + showHideOp(true); + MasterNodeWizardDialog *dialog = new MasterNodeWizardDialog(walletModel, window); + if(openDialogWithOpaqueBackgroundY(dialog, window, 5, 7)) { + if (dialog->isOk) { + // Update list + mnModel->addMn(dialog->mnEntry); + updateListState(); + // add mn + inform(dialog->returnStr); + } else { + warn(tr("Error creating masternode"), dialog->returnStr); + } + } + dialog->deleteLater(); + } +} + +void MasterNodesWidget::changeTheme(bool isLightTheme, QString& theme){ + static_cast(this->delegate->getRowFactory())->isLightTheme = isLightTheme; +} + +MasterNodesWidget::~MasterNodesWidget() +{ + delete ui; +} diff --git a/src/qt/pivx/masternodeswidget.h b/src/qt/pivx/masternodeswidget.h new file mode 100644 index 0000000..22bf2c7 --- /dev/null +++ b/src/qt/pivx/masternodeswidget.h @@ -0,0 +1,70 @@ +// Copyright (c) 2019-2020 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef MASTERNODESWIDGET_H +#define MASTERNODESWIDGET_H + +#include +#include "qt/pivx/pwidget.h" +#include "qt/pivx/furabstractlistitemdelegate.h" +#include "qt/pivx/mnmodel.h" +#include "qt/pivx/tooltipmenu.h" +#include +#include + +class PIVXGUI; + +namespace Ui { +class MasterNodesWidget; +} + +QT_BEGIN_NAMESPACE +class QModelIndex; +QT_END_NAMESPACE + +class MasterNodesWidget : public PWidget +{ + Q_OBJECT + +public: + + explicit MasterNodesWidget(PIVXGUI *parent = nullptr); + ~MasterNodesWidget(); + + void loadWalletModel() override; + + void run(int type) override; + void onError(QString error, int type) override; + + void showEvent(QShowEvent *event) override; + void hideEvent(QHideEvent *event) override; + +private slots: + void onCreateMNClicked(); + void onStartAllClicked(int type); + void changeTheme(bool isLightTheme, QString &theme) override; + void onMNClicked(const QModelIndex &index); + void onEditMNClicked(); + void onDeleteMNClicked(); + void onInfoMNClicked(); + void updateListState(); + void updateModelAndInform(QString informText); + +private: + Ui::MasterNodesWidget *ui; + FurAbstractListItemDelegate *delegate; + MNModel *mnModel = nullptr; + TooltipMenu* menu = nullptr; + QModelIndex index; + QTimer *timer = nullptr; + + std::atomic isLoading; + + bool checkMNsNetwork(); + void startAlias(QString strAlias); + bool startAll(QString& failedMN, bool onlyMissing); + bool startMN(CMasternodeConfig::CMasternodeEntry mne, std::string& strError); +}; + +#endif // MASTERNODESWIDGET_H diff --git a/src/qt/pivx/masternodewizarddialog.cpp b/src/qt/pivx/masternodewizarddialog.cpp new file mode 100644 index 0000000..c88ce0a --- /dev/null +++ b/src/qt/pivx/masternodewizarddialog.cpp @@ -0,0 +1,399 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/masternodewizarddialog.h" +#include "qt/pivx/forms/ui_masternodewizarddialog.h" +#include "qt/pivx/qtutils.h" +#include "optionsmodel.h" +#include "pairresult.h" +#include "activemasternode.h" +#include "qt/pivx/guitransactionsutils.h" +#include +#include +#include +#include + +MasterNodeWizardDialog::MasterNodeWizardDialog(WalletModel *model, QWidget *parent) : + QDialog(parent), + ui(new Ui::MasterNodeWizardDialog), + icConfirm1(new QPushButton()), + icConfirm3(new QPushButton()), + icConfirm4(new QPushButton()), + walletModel(model) +{ + ui->setupUi(this); + + this->setStyleSheet(parent->styleSheet()); + setCssProperty(ui->frame, "container-dialog"); + ui->frame->setContentsMargins(10,10,10,10); + + setCssProperty({ui->labelLine1, ui->labelLine3}, "line-purple"); + setCssProperty({ui->groupBoxName, ui->groupContainer}, "container-border"); + setCssProperty({ui->pushNumber1, ui->pushNumber3, ui->pushNumber4}, "btn-number-check"); + setCssProperty({ui->pushName1, ui->pushName3, ui->pushName4}, "btn-name-check"); + + ui->pushNumber1->setEnabled(false); + ui->pushNumber3->setEnabled(false); + ui->pushNumber4->setEnabled(false); + ui->pushName1->setEnabled(false); + ui->pushName3->setEnabled(false); + ui->pushName4->setEnabled(false); + + // Frame 1 + setCssProperty(ui->labelTitle1, "text-title-dialog"); + setCssProperty(ui->labelMessage1a, "text-main-grey"); + setCssProperty(ui->labelMessage1b, "text-main-purple"); + + // Frame 3 + setCssProperty(ui->labelTitle3, "text-title-dialog"); + setCssProperty(ui->labelMessage3, "text-main-grey"); + + ui->lineEditName->setPlaceholderText(tr("e.g user_masternode")); + initCssEditLine(ui->lineEditName); + ui->lineEditName->setValidator(new QRegExpValidator(QRegExp("^[A-Za-z0-9]+"), ui->lineEditName)); + + // Frame 4 + setCssProperty(ui->labelTitle4, "text-title-dialog"); + setCssProperty({ui->labelSubtitleIp, ui->labelSubtitlePort}, "text-title"); + setCssSubtitleScreen(ui->labelSubtitleAddressIp); + + ui->lineEditIpAddress->setPlaceholderText("e.g 18.255.255.255"); + ui->lineEditPort->setPlaceholderText("e.g 51472"); + initCssEditLine(ui->lineEditIpAddress); + initCssEditLine(ui->lineEditPort); + ui->stackedWidget->setCurrentIndex(pos); + ui->lineEditPort->setValidator(new QIntValidator(0, 9999999, ui->lineEditPort)); + if(walletModel->isTestNetwork()){ + ui->lineEditPort->setEnabled(false); + ui->lineEditPort->setText("51474"); + } else { + ui->lineEditPort->setText("51472"); + } + + // Confirm icons + ui->stackedIcon1->addWidget(icConfirm1); + ui->stackedIcon3->addWidget(icConfirm3); + ui->stackedIcon4->addWidget(icConfirm4); + initBtn({icConfirm1, icConfirm3, icConfirm4}); + setCssProperty({icConfirm1, icConfirm3, icConfirm4}, "ic-step-confirm"); + + // Connect btns + setCssBtnPrimary(ui->btnNext); + ui->btnNext->setText(tr("NEXT")); + setCssProperty(ui->btnBack , "btn-dialog-cancel"); + ui->btnBack->setVisible(false); + ui->btnBack->setText(tr("BACK")); + setCssProperty(ui->pushButtonSkip, "ic-close"); + + connect(ui->pushButtonSkip, SIGNAL(clicked()), this, SLOT(close())); + connect(ui->btnNext, SIGNAL(clicked()), this, SLOT(onNextClicked())); + connect(ui->btnBack, SIGNAL(clicked()), this, SLOT(onBackClicked())); +} + +void MasterNodeWizardDialog::showEvent(QShowEvent *event) +{ + if (ui->btnNext) ui->btnNext->setFocus(); +} + +void MasterNodeWizardDialog::onNextClicked(){ + switch(pos){ + case 0:{ + ui->stackedWidget->setCurrentIndex(1); + ui->pushName4->setChecked(false); + ui->pushName3->setChecked(true); + ui->pushName1->setChecked(true); + icConfirm1->setVisible(true); + ui->pushNumber3->setChecked(true); + ui->btnBack->setVisible(true); + ui->lineEditName->setFocus(); + break; + } + case 1:{ + + // No empty names accepted. + if (ui->lineEditName->text().isEmpty()) { + setCssEditLine(ui->lineEditName, false, true); + return; + } + setCssEditLine(ui->lineEditName, true, true); + + ui->stackedWidget->setCurrentIndex(2); + ui->pushName4->setChecked(false); + ui->pushName3->setChecked(true); + ui->pushName1->setChecked(true); + icConfirm3->setVisible(true); + ui->pushNumber4->setChecked(true); + ui->btnBack->setVisible(true); + ui->lineEditIpAddress->setFocus(); + break; + } + case 2:{ + + // No empty address accepted + if (ui->lineEditIpAddress->text().isEmpty()) { + return; + } + + icConfirm4->setVisible(true); + ui->btnBack->setVisible(true); + ui->btnBack->setVisible(true); + isOk = createMN(); + accept(); + } + } + pos++; +} + +bool MasterNodeWizardDialog::createMN(){ + if (walletModel) { + /** + * + 1) generate the mn key. + 2) create the mn address. + 3) send a tx with 10k to that address. + 4) get thereate output. + 5) use those values on the masternode.conf + */ + + // First create the mn key + CKey secret; + secret.MakeNewKey(false); + CBitcoinSecret mnKey = CBitcoinSecret(secret); + std::string mnKeyString = mnKey.ToString(); + + // second create mn address + QString addressLabel = ui->lineEditName->text(); + if (addressLabel.isEmpty()) { + returnStr = tr("address label cannot be empty"); + return false; + } + std::string alias = addressLabel.toStdString(); + + QString addressStr = ui->lineEditIpAddress->text(); + QString portStr = ui->lineEditPort->text(); + if (addressStr.isEmpty() || portStr.isEmpty()) { + returnStr = tr("IP or port cannot be empty"); + return false; + } + // TODO: Validate IP address.. + int portInt = portStr.toInt(); + if (portInt <= 0 && portInt > 999999){ + returnStr = tr("Invalid port number"); + return false; + } + // ip + port + std::string ipAddress = addressStr.toStdString(); + std::string port = portStr.toStdString(); + + // New receive address + CBitcoinAddress address; + PairResult r = walletModel->getNewAddress(address, alias); + + if (!r.result) { + // generate address fail + inform(tr(r.status->c_str())); + return false; + } + + // const QString& addr, const QString& label, const CAmount& amount, const QString& message + SendCoinsRecipient sendCoinsRecipient(QString::fromStdString(address.ToString()), QString::fromStdString(alias), CAmount(10000) * COIN, ""); + + // Send the 10 tx to one of your address + QList recipients; + recipients.append(sendCoinsRecipient); + WalletModelTransaction currentTransaction(recipients); + WalletModel::SendCoinsReturn prepareStatus; + + prepareStatus = walletModel->prepareTransaction(currentTransaction); + + QString returnMsg = "Unknown error"; + // process prepareStatus and on error generate message shown to user + CClientUIInterface::MessageBoxFlags informType; + returnMsg = GuiTransactionsUtils::ProcessSendCoinsReturn( + this, + prepareStatus, + walletModel, + informType, // this flag is not needed + BitcoinUnits::formatWithUnit(walletModel->getOptionsModel()->getDisplayUnit(), + currentTransaction.getTransactionFee()), + true + ); + + if (prepareStatus.status != WalletModel::OK) { + returnStr = tr("Prepare master node failed.\n\n%1\n").arg(returnMsg); + return false; + } + + WalletModel::SendCoinsReturn sendStatus = walletModel->sendCoins(currentTransaction); + // process sendStatus and on error generate message shown to user + returnMsg = GuiTransactionsUtils::ProcessSendCoinsReturn( + this, + sendStatus, + walletModel, + informType + ); + + if (sendStatus.status == WalletModel::OK) { + // now change the conf + std::string strConfFile = "masternode.conf"; + std::string strDataDir = GetDataDir().string(); + if (strConfFile != boost::filesystem::basename(strConfFile) + boost::filesystem::extension(strConfFile)){ + throw std::runtime_error(strprintf(_("masternode.conf %s resides outside data directory %s"), strConfFile, strDataDir)); + } + + boost::filesystem::path pathBootstrap = GetDataDir() / strConfFile; + if (boost::filesystem::exists(pathBootstrap)) { + boost::filesystem::path pathMasternodeConfigFile = GetMasternodeConfigFile(); + boost::filesystem::ifstream streamConfig(pathMasternodeConfigFile); + + if (!streamConfig.good()) { + returnStr = tr("Invalid masternode.conf file"); + return false; + } + + int linenumber = 1; + std::string lineCopy = ""; + for (std::string line; std::getline(streamConfig, line); linenumber++) { + if (line.empty()) continue; + + std::istringstream iss(line); + std::string comment, alias, ip, privKey, txHash, outputIndex; + + if (iss >> comment) { + if (comment.at(0) == '#') continue; + iss.str(line); + iss.clear(); + } + + if (!(iss >> alias >> ip >> privKey >> txHash >> outputIndex)) { + iss.str(line); + iss.clear(); + if (!(iss >> alias >> ip >> privKey >> txHash >> outputIndex)) { + streamConfig.close(); + returnStr = tr("Error parsing masternode.conf file"); + return false; + } + } + lineCopy += line + "\n"; + } + + if (lineCopy.size() == 0) { + lineCopy = "# Masternode config file\n" + "# Format: alias IP:port masternodeprivkey collateral_output_txid collateral_output_index\n" + "# Example: mn1 127.0.0.2:51472 93HaYBVUCYjEMeeH1Y4sBGLALQZE1Yc1K64xiqgX37tGBDQL8Xg 2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c 0" + "#"; + } + lineCopy += "\n"; + + streamConfig.close(); + + CWalletTx* walletTx = currentTransaction.getTransaction(); + std::string txID = walletTx->GetHash().GetHex(); + int indexOut = -1; + for (int i=0; i < (int)walletTx->vout.size(); i++){ + CTxOut& out = walletTx->vout[i]; + if (out.nValue == 10000 * COIN){ + indexOut = i; + } + } + if (indexOut == -1) { + returnStr = tr("Invalid collateral output index"); + return false; + } + std::string indexOutStr = std::to_string(indexOut); + + // Check IP address type + QHostAddress hostAddress(addressStr); + QAbstractSocket::NetworkLayerProtocol layerProtocol = hostAddress.protocol(); + if (layerProtocol == QAbstractSocket::IPv6Protocol) { + ipAddress = "["+ipAddress+"]"; + } + + boost::filesystem::path pathConfigFile("masternode_temp.conf"); + if (!pathConfigFile.is_complete()) pathConfigFile = GetDataDir() / pathConfigFile; + FILE* configFile = fopen(pathConfigFile.string().c_str(), "w"); + lineCopy += alias+" "+ipAddress+":"+port+" "+mnKeyString+" "+txID+" "+indexOutStr+"\n"; + fwrite(lineCopy.c_str(), std::strlen(lineCopy.c_str()), 1, configFile); + fclose(configFile); + + boost::filesystem::path pathOldConfFile("old_masternode.conf"); + if (!pathOldConfFile.is_complete()) pathOldConfFile = GetDataDir() / pathOldConfFile; + if (boost::filesystem::exists(pathOldConfFile)) { + boost::filesystem::remove(pathOldConfFile); + } + rename(pathMasternodeConfigFile, pathOldConfFile); + + boost::filesystem::path pathNewConfFile("masternode.conf"); + if (!pathNewConfFile.is_complete()) pathNewConfFile = GetDataDir() / pathNewConfFile; + rename(pathConfigFile, pathNewConfFile); + + mnEntry = masternodeConfig.add(alias, ipAddress+":"+port, mnKeyString, txID, indexOutStr); + + returnStr = tr("Master node created!"); + return true; + } else{ + returnStr = tr("masternode.conf file doesn't exists"); + } + } else { + returnStr = tr("Cannot send collateral transaction.\n\n%1").arg(returnMsg); + } + } + return false; +} + +void MasterNodeWizardDialog::onBackClicked(){ + if (pos == 0) return; + pos--; + switch(pos){ + case 0:{ + ui->stackedWidget->setCurrentIndex(0); + ui->btnNext->setFocus(); + ui->pushNumber1->setChecked(true); + ui->pushNumber4->setChecked(false); + ui->pushNumber3->setChecked(false); + ui->pushName4->setChecked(false); + ui->pushName3->setChecked(false); + ui->pushName1->setChecked(true); + icConfirm1->setVisible(false); + ui->btnBack->setVisible(false); + break; + } + case 1:{ + ui->stackedWidget->setCurrentIndex(1); + ui->lineEditName->setFocus(); + ui->pushNumber4->setChecked(false); + ui->pushNumber3->setChecked(true); + ui->pushName4->setChecked(false); + ui->pushName3->setChecked(true); + icConfirm3->setVisible(false); + + break; + } + } +} + +void MasterNodeWizardDialog::inform(QString text){ + if (!snackBar) + snackBar = new SnackBar(nullptr, this); + snackBar->setText(text); + snackBar->resize(this->width(), snackBar->height()); + openDialog(snackBar, this); +} + +QSize BUTTON_SIZE = QSize(22, 22); +void MasterNodeWizardDialog::initBtn(std::initializer_list args){ + for (QPushButton* btn : args) { + btn->setMinimumSize(BUTTON_SIZE); + btn->setMaximumSize(BUTTON_SIZE); + btn->move(0, 0); + btn->show(); + btn->raise(); + btn->setVisible(false); + } +} + +MasterNodeWizardDialog::~MasterNodeWizardDialog(){ + if(snackBar) delete snackBar; + delete ui; +} diff --git a/src/qt/pivx/masternodewizarddialog.h b/src/qt/pivx/masternodewizarddialog.h new file mode 100644 index 0000000..9fb4d3f --- /dev/null +++ b/src/qt/pivx/masternodewizarddialog.h @@ -0,0 +1,52 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef MASTERNODEWIZARDDIALOG_H +#define MASTERNODEWIZARDDIALOG_H + +#include +#include "walletmodel.h" +#include "qt/pivx/snackbar.h" +#include "masternodeconfig.h" +#include "qt/pivx/pwidget.h" + +class WalletModel; + +namespace Ui { +class MasterNodeWizardDialog; +class QPushButton; +} + +class MasterNodeWizardDialog : public QDialog, public PWidget::Translator +{ + Q_OBJECT + +public: + explicit MasterNodeWizardDialog(WalletModel *walletMode, QWidget *parent = nullptr); + ~MasterNodeWizardDialog(); + void showEvent(QShowEvent *event) override; + QString translate(const char *msg) override { return tr(msg); } + + QString returnStr = ""; + bool isOk = false; + CMasternodeConfig::CMasternodeEntry* mnEntry = nullptr; + +private slots: + void onNextClicked(); + void onBackClicked(); +private: + Ui::MasterNodeWizardDialog *ui; + QPushButton* icConfirm1; + QPushButton* icConfirm3; + QPushButton* icConfirm4; + SnackBar *snackBar = nullptr; + int pos = 0; + + WalletModel *walletModel = nullptr; + bool createMN(); + void inform(QString text); + void initBtn(std::initializer_list args); +}; + +#endif // MASTERNODEWIZARDDIALOG_H diff --git a/src/qt/pivx/mninfodialog.cpp b/src/qt/pivx/mninfodialog.cpp new file mode 100644 index 0000000..61aa5aa --- /dev/null +++ b/src/qt/pivx/mninfodialog.cpp @@ -0,0 +1,66 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/mninfodialog.h" +#include "qt/pivx/forms/ui_mninfodialog.h" +#include "walletmodel.h" +#include "wallet/wallet.h" +#include "guiutil.h" +#include "qt/pivx/qtutils.h" +#include + +MnInfoDialog::MnInfoDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::MnInfoDialog) +{ + ui->setupUi(this); + this->setStyleSheet(parent->styleSheet()); + setCssProperty(ui->frame, "container-dialog"); + setCssProperty(ui->labelTitle, "text-title-dialog"); + setCssTextBodyDialog({ui->labelAmount, ui->labelSend, ui->labelInputs, ui->labelFee, ui->labelId}); + setCssProperty({ui->labelDivider1, ui->labelDivider4, ui->labelDivider6, ui->labelDivider7, ui->labelDivider8, ui->labelDivider9}, "container-divider"); + setCssTextBodyDialog({ui->textAmount, ui->textAddress, ui->textInputs, ui->textStatus, ui->textId, ui->textExport}); + setCssProperty({ui->pushCopy, ui->pushCopyId, ui->pushExport}, "ic-copy-big"); + setCssProperty(ui->btnEsc, "ic-close"); + connect(ui->btnEsc, SIGNAL(clicked()), this, SLOT(closeDialog())); + connect(ui->pushCopy, &QPushButton::clicked, [this](){ copyInform(pubKey, "Masternode public key copied"); }); + connect(ui->pushCopyId, &QPushButton::clicked, [this](){ copyInform(txId, "Collateral tx id copied"); }); + connect(ui->pushExport, &QPushButton::clicked, [this](){ exportMN = true; accept(); }); +} + +void MnInfoDialog::setData(QString pubKey, QString name, QString address, QString txId, QString outputIndex, QString status){ + this->pubKey = pubKey; + this->txId = txId; + QString shortPubKey = pubKey; + QString shortTxId = txId; + if(shortPubKey.length() > 20) { + shortPubKey = shortPubKey.left(13) + "..." + shortPubKey.right(13); + } + if(shortTxId.length() > 20) { + shortTxId = shortTxId.left(12) + "..." + shortTxId.right(12); + } + ui->textId->setText(shortPubKey); + ui->textAddress->setText(address); + ui->textAmount->setText(shortTxId); + ui->textInputs->setText(outputIndex); + ui->textStatus->setText(status); +} + +void MnInfoDialog::copyInform(QString& copyStr, QString message){ + GUIUtil::setClipboard(copyStr); + if(!snackBar) snackBar = new SnackBar(nullptr, this); + snackBar->setText(tr(message.toStdString().c_str())); + snackBar->resize(this->width(), snackBar->height()); + openDialog(snackBar, this); +} + +void MnInfoDialog::closeDialog(){ + if(snackBar && snackBar->isVisible()) snackBar->hide(); + close(); +} + +MnInfoDialog::~MnInfoDialog(){ + if(snackBar) delete snackBar; + delete ui; +} diff --git a/src/qt/pivx/mninfodialog.h b/src/qt/pivx/mninfodialog.h new file mode 100644 index 0000000..b5850ae --- /dev/null +++ b/src/qt/pivx/mninfodialog.h @@ -0,0 +1,43 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef MNINFODIALOG_H +#define MNINFODIALOG_H + +#include +#include "qt/pivx/snackbar.h" + +class WalletModel; + +namespace Ui { +class MnInfoDialog; +} + +class MnInfoDialog : public QDialog +{ + Q_OBJECT + +public: + explicit MnInfoDialog(QWidget *parent = nullptr); + ~MnInfoDialog(); + + bool exportMN = false; + + void setData(QString privKey, QString name, QString address, QString txId, QString outputIndex, QString status); + +public slots: + void closeDialog(); + +private: + Ui::MnInfoDialog *ui; + SnackBar *snackBar = nullptr; + int nDisplayUnit = 0; + WalletModel *model = nullptr; + QString txId; + QString pubKey; + + void copyInform(QString& copyStr, QString message); +}; + +#endif // MNINFODIALOG_H diff --git a/src/qt/pivx/mnmodel.cpp b/src/qt/pivx/mnmodel.cpp new file mode 100644 index 0000000..708c91b --- /dev/null +++ b/src/qt/pivx/mnmodel.cpp @@ -0,0 +1,172 @@ +// Copyright (c) 2019-2020 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/mnmodel.h" +#include "masternode-sync.h" +#include "masternodeman.h" +#include "activemasternode.h" +#include "sync.h" +#include "uint256.h" +#include "wallet/wallet.h" + +MNModel::MNModel(QObject *parent) : QAbstractTableModel(parent){ + updateMNList(); +} + +void MNModel::updateMNList(){ + int end = nodes.size(); + nodes.clear(); + collateralTxAccepted.clear(); + for (CMasternodeConfig::CMasternodeEntry mne : masternodeConfig.getEntries()) { + int nIndex; + if(!mne.castOutputIndex(nIndex)) + continue; + + uint256 txHash(mne.getTxHash()); + CTxIn txIn(txHash, uint32_t(nIndex)); + CMasternode* pmn = mnodeman.Find(txIn); + if (!pmn){ + pmn = new CMasternode(); + pmn->vin = txIn; + pmn->activeState = CMasternode::MASTERNODE_MISSING; + } + nodes.insert(QString::fromStdString(mne.getAlias()), std::make_pair(QString::fromStdString(mne.getIp()), pmn)); + if(pwalletMain) { + bool txAccepted = false; + { + LOCK2(cs_main, pwalletMain->cs_wallet); + const CWalletTx *walletTx = pwalletMain->GetWalletTx(txHash); + if (walletTx && walletTx->GetDepthInMainChain() > 0) { + txAccepted = true; + } + } + collateralTxAccepted.insert(mne.getTxHash(), txAccepted); + } + } + emit dataChanged(index(0, 0, QModelIndex()), index(end, 5, QModelIndex()) ); +} + +int MNModel::rowCount(const QModelIndex &parent) const +{ + if (parent.isValid()) + return 0; + return nodes.size(); +} + +int MNModel::columnCount(const QModelIndex &parent) const +{ + if (parent.isValid()) + return 0; + return 6; +} + + +QVariant MNModel::data(const QModelIndex &index, int role) const +{ + if(!index.isValid()) + return QVariant(); + + // rec could be null, always verify it. + CMasternode* rec = static_cast(index.internalPointer()); + bool isAvailable = rec; + int row = index.row(); + if (role == Qt::DisplayRole || role == Qt::EditRole) { + switch (index.column()) { + case ALIAS: + return nodes.uniqueKeys().value(row); + case ADDRESS: + return nodes.values().value(row).first; + case PUB_KEY: + return (isAvailable) ? QString::fromStdString(nodes.values().value(row).second->pubKeyMasternode.GetHash().GetHex()) : "Not available"; + case COLLATERAL_ID: + return (isAvailable) ? QString::fromStdString(rec->vin.prevout.hash.GetHex()) : "Not available"; + case COLLATERAL_OUT_INDEX: + return (isAvailable) ? QString::number(rec->vin.prevout.n) : "Not available"; + case STATUS: { + std::pair pair = nodes.values().value(row); + return (pair.second) ? QString::fromStdString(pair.second->Status()) : "MISSING"; + } + case PRIV_KEY: { + for (CMasternodeConfig::CMasternodeEntry mne : masternodeConfig.getEntries()) { + if (mne.getTxHash().compare(rec->vin.prevout.hash.GetHex()) == 0){ + return QString::fromStdString(mne.getPrivKey()); + } + } + return "Not available"; + } + case WAS_COLLATERAL_ACCEPTED:{ + if (!isAvailable) return false; + std::string txHash = rec->vin.prevout.hash.GetHex(); + if(!collateralTxAccepted.value(txHash)){ + bool txAccepted = false; + { + LOCK2(cs_main, pwalletMain->cs_wallet); + const CWalletTx *walletTx = pwalletMain->GetWalletTx(rec->vin.prevout.hash); + txAccepted = walletTx && walletTx->GetDepthInMainChain() > 0; + } + return txAccepted; + } + return true; + } + } + } + return QVariant(); +} + +QModelIndex MNModel::index(int row, int column, const QModelIndex& parent) const +{ + Q_UNUSED(parent); + std::pair pair = nodes.values().value(row); + CMasternode* data = pair.second; + if (data) { + return createIndex(row, column, data); + } else if (!pair.first.isEmpty()){ + return createIndex(row, column, nullptr); + } else { + return QModelIndex(); + } +} + + +bool MNModel::removeMn(const QModelIndex& modelIndex) { + QString alias = modelIndex.data(Qt::DisplayRole).toString(); + int idx = modelIndex.row(); + beginRemoveRows(QModelIndex(), idx, idx); + nodes.take(alias); + endRemoveRows(); + emit dataChanged(index(idx, 0, QModelIndex()), index(idx, 5, QModelIndex()) ); + return true; +} + +bool MNModel::addMn(CMasternodeConfig::CMasternodeEntry* mne){ + beginInsertRows(QModelIndex(), nodes.size(), nodes.size()); + int nIndex; + if(!mne->castOutputIndex(nIndex)) + return false; + + CMasternode* pmn = mnodeman.Find(CTxIn(uint256S(mne->getTxHash()), uint32_t(nIndex))); + nodes.insert(QString::fromStdString(mne->getAlias()), std::make_pair(QString::fromStdString(mne->getIp()), pmn)); + endInsertRows(); + return true; +} + +int MNModel::getMNState(QString mnAlias) { + QMap>::const_iterator it = nodes.find(mnAlias); + if (it != nodes.end()) return it.value().second->activeState; + throw std::runtime_error(std::string("Masternode alias not found")); +} + +bool MNModel::isMNInactive(QString mnAlias) { + int activeState = getMNState(mnAlias); + return activeState == CMasternode::MASTERNODE_MISSING || activeState == CMasternode::MASTERNODE_EXPIRED || activeState == CMasternode::MASTERNODE_REMOVE; +} + +bool MNModel::isMNActive(QString mnAlias) { + int activeState = getMNState(mnAlias); + return activeState == CMasternode::MASTERNODE_PRE_ENABLED || activeState == CMasternode::MASTERNODE_ENABLED; +} + +bool MNModel::isMNsNetworkSynced() { + return masternodeSync.IsSynced(); +} \ No newline at end of file diff --git a/src/qt/pivx/mnmodel.h b/src/qt/pivx/mnmodel.h new file mode 100644 index 0000000..fed2383 --- /dev/null +++ b/src/qt/pivx/mnmodel.h @@ -0,0 +1,60 @@ +// Copyright (c) 2019-2020 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef MNMODEL_H +#define MNMODEL_H + +#include +#include "masternode.h" +#include "masternodeconfig.h" + +class MNModel : public QAbstractTableModel +{ + Q_OBJECT + +public: + explicit MNModel(QObject *parent = nullptr); + ~MNModel() override { + nodes.clear(); + collateralTxAccepted.clear(); + } + + enum ColumnIndex { + ALIAS = 0, /**< User specified MN alias */ + ADDRESS = 1, /**< Node address */ + PROTO_VERSION = 2, /**< Node protocol version */ + STATUS = 3, /**< Node status */ + ACTIVE_TIMESTAMP = 4, /**< */ + PUB_KEY = 5, + COLLATERAL_ID = 6, + COLLATERAL_OUT_INDEX = 7, + PRIV_KEY = 8, + WAS_COLLATERAL_ACCEPTED = 9 + }; + + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + int columnCount(const QModelIndex &parent = QModelIndex()) const override; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + QModelIndex index(int row, int column, const QModelIndex& parent) const override; + bool removeMn(const QModelIndex& index); + bool addMn(CMasternodeConfig::CMasternodeEntry* entry); + void updateMNList(); + + + bool isMNsNetworkSynced(); + // Returns the MN activeState field. + int getMNState(QString alias); + // Checks if the masternode is inactive + bool isMNInactive(QString mnAlias); + // Masternode is active if it's in PRE_ENABLED OR ENABLED state + bool isMNActive(QString mnAlias); + + +private: + // alias mn node ---> pair + QMap> nodes; + QMap collateralTxAccepted; +}; + +#endif // MNMODEL_H diff --git a/src/qt/pivx/mnrow.cpp b/src/qt/pivx/mnrow.cpp new file mode 100644 index 0000000..3612700 --- /dev/null +++ b/src/qt/pivx/mnrow.cpp @@ -0,0 +1,33 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/mnrow.h" +#include "qt/pivx/forms/ui_mnrow.h" +#include "qt/pivx/qtutils.h" + +MNRow::MNRow(QWidget *parent) : + QWidget(parent), + ui(new Ui::MNRow) +{ + ui->setupUi(this); + setCssProperty(ui->labelAddress, "text-list-body2"); + setCssProperty(ui->labelName, "text-list-title1"); + setCssProperty(ui->labelDate, "text-list-caption-medium"); + ui->lblDivisory->setStyleSheet("background-color:#bababa;"); +} + +void MNRow::updateView(QString address, QString label, QString status, bool wasCollateralAccepted){ + ui->labelName->setText(label); + ui->labelAddress->setText(address); + ui->labelDate->setText("Status: " + status); + if (!wasCollateralAccepted){ + ui->labelDate->setText("Status: Collateral tx not found"); + } else { + ui->labelDate->setText("Status: " + status); + } +} + +MNRow::~MNRow(){ + delete ui; +} diff --git a/src/qt/pivx/mnrow.h b/src/qt/pivx/mnrow.h new file mode 100644 index 0000000..7bebba7 --- /dev/null +++ b/src/qt/pivx/mnrow.h @@ -0,0 +1,30 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef MNROW_H +#define MNROW_H + +#include + +namespace Ui { +class MNRow; +} + +class MNRow : public QWidget +{ + Q_OBJECT + +public: + explicit MNRow(QWidget *parent = nullptr); + ~MNRow(); + + void updateView(QString address, QString label, QString status, bool wasCollateralAccepted); + +signals: + void onMenuClicked(); +private: + Ui::MNRow *ui; +}; + +#endif // MNROW_H diff --git a/src/qt/pivx/myaddressrow.cpp b/src/qt/pivx/myaddressrow.cpp new file mode 100644 index 0000000..a9739f3 --- /dev/null +++ b/src/qt/pivx/myaddressrow.cpp @@ -0,0 +1,31 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/myaddressrow.h" +#include "qt/pivx/forms/ui_myaddressrow.h" + +MyAddressRow::MyAddressRow(QWidget *parent) : + QWidget(parent), + ui(new Ui::MyAddressRow) +{ + ui->setupUi(this); + ui->labelName->setProperty("cssClass", "text-list-title1"); + ui->labelAddress->setProperty("cssClass", "text-list-body2"); + ui->labelDate->setProperty("cssClass", "text-list-caption"); +} + +void MyAddressRow::updateView(QString address, QString label, QString date){ + ui->labelName->setText(label); + ui->labelAddress->setText(address); + if (date.isEmpty()){ + ui->labelDate->setVisible(false); + } else { + ui->labelDate->setVisible(true); + ui->labelDate->setText(date); + } +} + +MyAddressRow::~MyAddressRow(){ + delete ui; +} diff --git a/src/qt/pivx/myaddressrow.h b/src/qt/pivx/myaddressrow.h new file mode 100644 index 0000000..90bd078 --- /dev/null +++ b/src/qt/pivx/myaddressrow.h @@ -0,0 +1,28 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef MYADDRESSROW_H +#define MYADDRESSROW_H + +#include + +namespace Ui { +class MyAddressRow; +} + +class MyAddressRow : public QWidget +{ + Q_OBJECT + +public: + explicit MyAddressRow(QWidget *parent = nullptr); + ~MyAddressRow(); + + void updateView(QString address, QString label, QString date); + +private: + Ui::MyAddressRow *ui; +}; + +#endif // MYADDRESSROW_H diff --git a/src/qt/pivx/navmenuwidget.cpp b/src/qt/pivx/navmenuwidget.cpp new file mode 100644 index 0000000..6909ee5 --- /dev/null +++ b/src/qt/pivx/navmenuwidget.cpp @@ -0,0 +1,189 @@ +// Copyright (c) 2019-2020 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/navmenuwidget.h" +#include "qt/pivx/forms/ui_navmenuwidget.h" +#include "qt/pivx/pivxgui.h" +#include "qt/pivx/qtutils.h" +#include "clientversion.h" +#include "optionsmodel.h" +#include + +NavMenuWidget::NavMenuWidget(PIVXGUI *mainWindow, QWidget *parent) : + PWidget(mainWindow, parent), + ui(new Ui::NavMenuWidget) +{ + ui->setupUi(this); + this->setFixedWidth(100); + setCssProperty(ui->navContainer_2, "container-nav"); + setCssProperty(ui->imgLogo, "img-nav-logo"); + + // App version + ui->labelVersion->setText(QString(tr("v%1")).arg(QString::fromStdString(FormatVersionFriendly()))); + ui->labelVersion->setProperty("cssClass", "text-title-white"); + + // Buttons + ui->btnDashboard->setProperty("name", "dash"); + ui->btnDashboard->setText("HOME\n"); + ui->btnDashboard->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + + ui->btnSend->setProperty("name", "send"); + ui->btnSend->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + ui->btnSend->setText("SEND\n"); + + ui->btnAddress->setProperty("name", "address"); + ui->btnAddress->setText("CONTACTS\n"); + ui->btnAddress->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + + ui->btnPrivacy->setProperty("name", "privacy"); + ui->btnPrivacy->setText("PRIVACY\n"); + ui->btnPrivacy->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + + ui->btnMaster->setProperty("name", "master"); + ui->btnMaster->setText("MASTER\r\nNODES"); + ui->btnMaster->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + + ui->btnColdStaking->setProperty("name", "cold-staking"); + ui->btnColdStaking->setText("COLD\r\nSTAKING"); + ui->btnColdStaking->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + + ui->btnSettings->setProperty("name", "settings"); + ui->btnSettings->setText("SETTINGS\n"); + ui->btnSettings->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + + ui->btnReceive->setProperty("name", "receive"); + ui->btnReceive->setText("RECEIVE\n"); + ui->btnReceive->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + + btns = {ui->btnDashboard, ui->btnSend, ui->btnReceive, ui->btnAddress, ui->btnPrivacy, ui->btnMaster, ui->btnColdStaking, ui->btnSettings, ui->btnColdStaking}; + onNavSelected(ui->btnDashboard, true); + + ui->scrollAreaNav->setWidgetResizable(true); + + QSizePolicy scrollAreaPolicy = ui->scrollAreaNav->sizePolicy(); + scrollAreaPolicy.setVerticalStretch(1); + ui->scrollAreaNav->setSizePolicy(scrollAreaPolicy); + + QSizePolicy scrollVertPolicy = ui->scrollAreaNavVert->sizePolicy(); + scrollVertPolicy.setVerticalStretch(1); + ui->scrollAreaNavVert->setSizePolicy(scrollVertPolicy); + + connectActions(); +} + +void NavMenuWidget::loadWalletModel() { + if (walletModel && walletModel->getOptionsModel()) { + ui->btnColdStaking->setVisible(walletModel->getOptionsModel()->isColdStakingScreenEnabled()); + } +} + +/** + * Actions + */ +void NavMenuWidget::connectActions() { + connect(ui->btnDashboard,SIGNAL(clicked()),this, SLOT(onDashboardClicked())); + connect(ui->btnSend,SIGNAL(clicked()),this, SLOT(onSendClicked())); + connect(ui->btnAddress,SIGNAL(clicked()),this, SLOT(onAddressClicked())); + connect(ui->btnPrivacy,SIGNAL(clicked()),this, SLOT(onPrivacyClicked())); + connect(ui->btnMaster,SIGNAL(clicked()),this, SLOT(onMasterNodesClicked())); + connect(ui->btnSettings,SIGNAL(clicked()),this, SLOT(onSettingsClicked())); + connect(ui->btnReceive,SIGNAL(clicked()),this, SLOT(onReceiveClicked())); + connect(ui->btnColdStaking,SIGNAL(clicked()),this, SLOT(onColdStakingClicked())); + + ui->btnDashboard->setShortcut(QKeySequence(SHORT_KEY + Qt::Key_1)); + ui->btnSend->setShortcut(QKeySequence(SHORT_KEY + Qt::Key_2)); + ui->btnReceive->setShortcut(QKeySequence(SHORT_KEY + Qt::Key_3)); + ui->btnAddress->setShortcut(QKeySequence(SHORT_KEY + Qt::Key_4)); + ui->btnPrivacy->setShortcut(QKeySequence(SHORT_KEY + Qt::Key_5)); + ui->btnMaster->setShortcut(QKeySequence(SHORT_KEY + Qt::Key_6)); + ui->btnColdStaking->setShortcut(QKeySequence(SHORT_KEY + Qt::Key_7)); + ui->btnSettings->setShortcut(QKeySequence(SHORT_KEY + Qt::Key_8)); +} + +void NavMenuWidget::onSendClicked(){ + window->goToSend(); + onNavSelected(ui->btnSend); +} + +void NavMenuWidget::onDashboardClicked(){ + window->goToDashboard(); + onNavSelected(ui->btnDashboard); +} + +void NavMenuWidget::onAddressClicked(){ + window->goToAddresses(); + onNavSelected(ui->btnAddress); +} + + +void NavMenuWidget::onPrivacyClicked(){ + window->goToPrivacy(); + onNavSelected(ui->btnPrivacy); +} + +void NavMenuWidget::onMasterNodesClicked(){ + window->goToMasterNodes(); + onNavSelected(ui->btnMaster); +} + +void NavMenuWidget::onColdStakingClicked() { + window->goToColdStaking(); + onNavSelected(ui->btnColdStaking); +} + +void NavMenuWidget::onSettingsClicked(){ + window->goToSettings(); + onNavSelected(ui->btnSettings); +} + +void NavMenuWidget::onReceiveClicked(){ + window->goToReceive(); + onNavSelected(ui->btnReceive); +} + +void NavMenuWidget::onNavSelected(QWidget* active, bool startup) { + QString start = "btn-nav-"; + foreach (QWidget* w, btns) { + QString clazz = start + w->property("name").toString(); + if (w == active) { + clazz += "-active"; + } + setCssProperty(w, clazz); + } + if (!startup) updateButtonStyles(); +} + +void NavMenuWidget::selectSettings() { + onSettingsClicked(); +} + +void NavMenuWidget::onShowHideColdStakingChanged(bool show) { + ui->btnColdStaking->setVisible(show); + if (show) + ui->scrollAreaNav->verticalScrollBar()->setValue(ui->btnColdStaking->y()); +} + +void NavMenuWidget::showEvent(QShowEvent *event) { + if (!init) { + init = true; + ui->scrollAreaNav->verticalScrollBar()->setValue(ui->btnDashboard->y()); + } +} + +void NavMenuWidget::updateButtonStyles(){ + forceUpdateStyle({ + ui->btnDashboard, + ui->btnSend, + ui->btnAddress, + ui->btnPrivacy, + ui->btnMaster, + ui->btnSettings, + ui->btnReceive, + ui->btnColdStaking + }); +} + +NavMenuWidget::~NavMenuWidget(){ + delete ui; +} diff --git a/src/qt/pivx/navmenuwidget.h b/src/qt/pivx/navmenuwidget.h new file mode 100644 index 0000000..cbb34f8 --- /dev/null +++ b/src/qt/pivx/navmenuwidget.h @@ -0,0 +1,52 @@ +// Copyright (c) 2019-2020 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef NAVMENUWIDGET_H +#define NAVMENUWIDGET_H + +#include +#include "qt/pivx/pwidget.h" + +class PIVXGUI; + +namespace Ui { +class NavMenuWidget; +} + +class NavMenuWidget : public PWidget +{ + Q_OBJECT + +public: + explicit NavMenuWidget(PIVXGUI* mainWindow, QWidget *parent = nullptr); + ~NavMenuWidget(); + + void loadWalletModel() override; + virtual void showEvent(QShowEvent *event) override; + +public slots: + void selectSettings(); + void onShowHideColdStakingChanged(bool show); + +private slots: + void onSendClicked(); + void onDashboardClicked(); + void onPrivacyClicked(); + void onAddressClicked(); + void onMasterNodesClicked(); + void onColdStakingClicked(); + void onSettingsClicked(); + void onReceiveClicked(); + void updateButtonStyles(); +private: + Ui::NavMenuWidget *ui; + QList btns; + + void connectActions(); + void onNavSelected(QWidget* active, bool startup = false); + + bool init = false; +}; + +#endif // NAVMENUWIDGET_H diff --git a/src/qt/pivx/optionbutton.cpp b/src/qt/pivx/optionbutton.cpp new file mode 100644 index 0000000..9fa124b --- /dev/null +++ b/src/qt/pivx/optionbutton.cpp @@ -0,0 +1,71 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/optionbutton.h" +#include "qt/pivx/forms/ui_optionbutton.h" +#include "qt/pivx/qtutils.h" +#include + +OptionButton::OptionButton(QWidget *parent) : + QWidget(parent), + ui(new Ui::OptionButton) +{ + ui->setupUi(this); + setCssProperty(ui->labelArrow3, "ic-arrow"); + setCssProperty(ui->layoutOptions2, "container-options"); + ui->layoutOptions2->setContentsMargins(0,10,10,10); + setCssProperty(ui->labelCircle, "btn-options-indicator"); + connect(ui->labelArrow3, &QPushButton::clicked, [this](){setChecked(!ui->labelArrow3->isChecked());}); + setActive(false); +} + +OptionButton::~OptionButton(){ + delete ui; +} + +void OptionButton::setTitleClassAndText(QString className, QString text){ + ui->labelTitleChange->setText(text); + setCssProperty(ui->labelTitleChange, className); +} + +void OptionButton::setTitleText(QString text){ + ui->labelTitleChange->setText(text); +} + +void OptionButton::setSubTitleClassAndText(QString className, QString text){ + ui->labelSubtitleChange->setText(text); + setCssProperty(ui->labelSubtitleChange, className); +} + +void OptionButton::setRightIconClass(QString className, bool forceUpdate){ + setCssProperty(ui->labelArrow3, className); + if(forceUpdate) updateStyle(ui->labelArrow3); +} + +void OptionButton::setRightIcon(QPixmap icon){ + //ui->labelArrow3->setPixmap(icon); +} + +void OptionButton::setActive(bool isActive){ + if (isActive) { + ui->layoutCircle->setVisible(true); + setCssProperty(ui->labelTitleChange, "btn-title-purple"); + updateStyle(ui->labelTitleChange); + } else { + ui->layoutCircle->setVisible(false); + setCssProperty(ui->labelTitleChange, "btn-title-grey"); + updateStyle(ui->labelTitleChange); + } +} + +void OptionButton::setChecked(bool checked){ + ui->labelArrow3->setChecked(checked); + emit clicked(); +} + +void OptionButton::mousePressEvent(QMouseEvent *qevent){ + if (qevent->button() == Qt::LeftButton){ + setChecked(!ui->labelArrow3->isChecked()); + } +} diff --git a/src/qt/pivx/optionbutton.h b/src/qt/pivx/optionbutton.h new file mode 100644 index 0000000..c177d8c --- /dev/null +++ b/src/qt/pivx/optionbutton.h @@ -0,0 +1,39 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef OPTIONBUTTON_H +#define OPTIONBUTTON_H + +#include + +namespace Ui { +class OptionButton; +} + +class OptionButton : public QWidget +{ + Q_OBJECT + +public: + explicit OptionButton(QWidget *parent = nullptr); + ~OptionButton(); + + void setSubTitleClassAndText(QString className, QString text); + void setTitleClassAndText(QString className, QString text); + void setTitleText(QString text); + void setRightIconClass(QString className, bool forceUpdate = false); + void setRightIcon(QPixmap icon); + void setActive(bool); + void setChecked(bool checked); +signals: + void clicked(); + +protected: + virtual void mousePressEvent(QMouseEvent *qevent); + +private: + Ui::OptionButton *ui; +}; + +#endif // OPTIONBUTTON_H diff --git a/src/qt/pivx/pfborderimage.h b/src/qt/pivx/pfborderimage.h new file mode 100644 index 0000000..9b2f00a --- /dev/null +++ b/src/qt/pivx/pfborderimage.h @@ -0,0 +1,55 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PIVX_PFBorderImage_H +#define PIVX_PFBorderImage_H + +#include +#include +#include +#include + +class PFBorderImage : public QFrame +{ + Q_OBJECT + +public: + PFBorderImage(QWidget *parent = nullptr) : QFrame(parent) {}; + ~PFBorderImage() {}; + +#if defined(Q_OS_MAC) + + void load(QString path) { + if (img.isNull() && !path.isNull()) img = QPixmap(path); + } + +protected: + + void paintEvent(QPaintEvent *event) override { + QSize currentSize = size(); + if (cachedSize != currentSize && checkSize(currentSize)) { + cachedSize = currentSize; + scaledImg = img.scaled(cachedSize); + } + QPainter painter(this); + painter.drawPixmap(0, 0, scaledImg); + QWidget::paintEvent(event); + } + + bool checkSize(QSize currentSize) { + // Do not scale the image if the window change are imperceptible for the human's eye. + int pixelatedImageValue = 50; + return (currentSize.width() > cachedSize.width() + pixelatedImageValue) || (currentSize.width() < cachedSize.width() - pixelatedImageValue) + || (currentSize.height() > cachedSize.height() + pixelatedImageValue) || (currentSize.height() < cachedSize.height() - pixelatedImageValue); + } + + QPixmap img; + QPixmap scaledImg; + QSize cachedSize; + +#endif + +}; + +#endif //PIVX_PFBorderImage_H diff --git a/src/qt/pivx/pivxgui.cpp b/src/qt/pivx/pivxgui.cpp new file mode 100644 index 0000000..be0bac4 --- /dev/null +++ b/src/qt/pivx/pivxgui.cpp @@ -0,0 +1,670 @@ +// Copyright (c) 2019-2020 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/pivxgui.h" + +#ifdef Q_OS_MAC +#include "macdockiconhandler.h" +#endif + +#include "qt/guiutil.h" +#include "clientmodel.h" +#include "optionsmodel.h" +#include "networkstyle.h" +#include "notificator.h" +#include "guiinterface.h" +#include "qt/pivx/qtutils.h" +#include "qt/pivx/defaultdialog.h" +#include "qt/pivx/settings/settingsfaqwidget.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "util.h" + +#define BASE_WINDOW_WIDTH 1200 +#define BASE_WINDOW_HEIGHT 740 +#define BASE_WINDOW_MIN_HEIGHT 620 +#define BASE_WINDOW_MIN_WIDTH 1100 + + +const QString PIVXGUI::DEFAULT_WALLET = "~Default"; + +PIVXGUI::PIVXGUI(const NetworkStyle* networkStyle, QWidget* parent) : + QMainWindow(parent), + clientModel(0){ + + /* Open CSS when configured */ + this->setStyleSheet(GUIUtil::loadStyleSheet()); + this->setMinimumSize(BASE_WINDOW_MIN_WIDTH, BASE_WINDOW_MIN_HEIGHT); + + + // Adapt screen size + QRect rec = QApplication::desktop()->screenGeometry(); + int adaptedHeight = (rec.height() < BASE_WINDOW_HEIGHT) ? BASE_WINDOW_MIN_HEIGHT : BASE_WINDOW_HEIGHT; + int adaptedWidth = (rec.width() < BASE_WINDOW_WIDTH) ? BASE_WINDOW_MIN_WIDTH : BASE_WINDOW_WIDTH; + GUIUtil::restoreWindowGeometry( + "nWindow", + QSize(adaptedWidth, adaptedHeight), + this + ); + +#ifdef ENABLE_WALLET + /* if compiled with wallet support, -disablewallet can still disable the wallet */ + enableWallet = !GetBoolArg("-disablewallet", false); +#else + enableWallet = false; +#endif // ENABLE_WALLET + + QString windowTitle = QString::fromStdString(GetArg("-windowtitle", "")); + if (windowTitle.isEmpty()) { + windowTitle = tr("PIVX Core") + " - "; + windowTitle += ((enableWallet) ? tr("Wallet") : tr("Node")); + } + windowTitle += " " + networkStyle->getTitleAddText(); + setWindowTitle(windowTitle); + +#ifndef Q_OS_MAC + QApplication::setWindowIcon(networkStyle->getAppIcon()); + setWindowIcon(networkStyle->getAppIcon()); +#else + MacDockIconHandler::instance()->setIcon(networkStyle->getAppIcon()); +#endif + +#ifdef ENABLE_WALLET + // Create wallet frame + if(enableWallet){ + + QFrame* centralWidget = new QFrame(this); + this->setMinimumWidth(BASE_WINDOW_MIN_WIDTH); + this->setMinimumHeight(BASE_WINDOW_MIN_HEIGHT); + QHBoxLayout* centralWidgetLayouot = new QHBoxLayout(); + centralWidget->setLayout(centralWidgetLayouot); + centralWidgetLayouot->setContentsMargins(0,0,0,0); + centralWidgetLayouot->setSpacing(0); + + centralWidget->setProperty("cssClass", "container"); + centralWidget->setStyleSheet("padding:0px; border:none; margin:0px;"); + + // First the nav + navMenu = new NavMenuWidget(this); + centralWidgetLayouot->addWidget(navMenu); + + this->setCentralWidget(centralWidget); + this->setContentsMargins(0,0,0,0); + + QFrame *container = new QFrame(centralWidget); + container->setContentsMargins(0,0,0,0); + centralWidgetLayouot->addWidget(container); + + // Then topbar + the stackedWidget + QVBoxLayout *baseScreensContainer = new QVBoxLayout(this); + baseScreensContainer->setMargin(0); + baseScreensContainer->setSpacing(0); + baseScreensContainer->setContentsMargins(0,0,0,0); + container->setLayout(baseScreensContainer); + + // Insert the topbar + topBar = new TopBar(this); + topBar->setContentsMargins(0,0,0,0); + baseScreensContainer->addWidget(topBar); + + // Now stacked widget + stackedContainer = new QStackedWidget(this); + QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + stackedContainer->setSizePolicy(sizePolicy); + stackedContainer->setContentsMargins(0,0,0,0); + baseScreensContainer->addWidget(stackedContainer); + + // Init + dashboard = new DashboardWidget(this); + sendWidget = new SendWidget(this); + receiveWidget = new ReceiveWidget(this); + addressesWidget = new AddressesWidget(this); + privacyWidget = new PrivacyWidget(this); + masterNodesWidget = new MasterNodesWidget(this); + coldStakingWidget = new ColdStakingWidget(this); + settingsWidget = new SettingsWidget(this); + + // Add to parent + stackedContainer->addWidget(dashboard); + stackedContainer->addWidget(sendWidget); + stackedContainer->addWidget(receiveWidget); + stackedContainer->addWidget(addressesWidget); + stackedContainer->addWidget(privacyWidget); + stackedContainer->addWidget(masterNodesWidget); + stackedContainer->addWidget(coldStakingWidget); + stackedContainer->addWidget(settingsWidget); + stackedContainer->setCurrentWidget(dashboard); + + } else +#endif + { + // When compiled without wallet or -disablewallet is provided, + // the central widget is the rpc console. + rpcConsole = new RPCConsole(enableWallet ? this : 0); + setCentralWidget(rpcConsole); + } + + // Create actions for the toolbar, menu bar and tray/dock icon + createActions(networkStyle); + + // Create system tray icon and notification + createTrayIcon(networkStyle); + + // Connect events + connectActions(); + + // TODO: Add event filter?? + // // Install event filter to be able to catch status tip events (QEvent::StatusTip) + // this->installEventFilter(this); + + // Subscribe to notifications from core + subscribeToCoreSignals(); + +} + +void PIVXGUI::createActions(const NetworkStyle* networkStyle){ + toggleHideAction = new QAction(networkStyle->getAppIcon(), tr("&Show / Hide"), this); + toggleHideAction->setStatusTip(tr("Show or hide the main Window")); + + quitAction = new QAction(QIcon(":/icons/quit"), tr("E&xit"), this); + quitAction->setStatusTip(tr("Quit application")); + quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q)); + quitAction->setMenuRole(QAction::QuitRole); + + connect(toggleHideAction, SIGNAL(triggered()), this, SLOT(toggleHidden())); + connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); +} + +/** + * Here add every event connection + */ +void PIVXGUI::connectActions() { + QShortcut *consoleShort = new QShortcut(this); + consoleShort->setKey(QKeySequence(SHORT_KEY + Qt::Key_C)); + connect(consoleShort, &QShortcut::activated, [this](){ + navMenu->selectSettings(); + settingsWidget->showDebugConsole(); + goToSettings(); + }); + connect(topBar, &TopBar::showHide, this, &PIVXGUI::showHide); + connect(topBar, &TopBar::themeChanged, this, &PIVXGUI::changeTheme); + connect(topBar, &TopBar::onShowHideColdStakingChanged, navMenu, &NavMenuWidget::onShowHideColdStakingChanged); + connect(settingsWidget, &SettingsWidget::showHide, this, &PIVXGUI::showHide); + connect(sendWidget, &SendWidget::showHide, this, &PIVXGUI::showHide); + connect(receiveWidget, &ReceiveWidget::showHide, this, &PIVXGUI::showHide); + connect(addressesWidget, &AddressesWidget::showHide, this, &PIVXGUI::showHide); + connect(privacyWidget, &PrivacyWidget::showHide, this, &PIVXGUI::showHide); + connect(masterNodesWidget, &MasterNodesWidget::showHide, this, &PIVXGUI::showHide); + connect(masterNodesWidget, &MasterNodesWidget::execDialog, this, &PIVXGUI::execDialog); + connect(coldStakingWidget, &ColdStakingWidget::showHide, this, &PIVXGUI::showHide); + connect(coldStakingWidget, &ColdStakingWidget::execDialog, this, &PIVXGUI::execDialog); + connect(settingsWidget, &SettingsWidget::execDialog, this, &PIVXGUI::execDialog); +} + + +void PIVXGUI::createTrayIcon(const NetworkStyle* networkStyle) { +#ifndef Q_OS_MAC + trayIcon = new QSystemTrayIcon(this); + QString toolTip = tr("PIVX Core client") + " " + networkStyle->getTitleAddText(); + trayIcon->setToolTip(toolTip); + trayIcon->setIcon(networkStyle->getAppIcon()); + trayIcon->hide(); +#endif + notificator = new Notificator(QApplication::applicationName(), trayIcon, this); +} + +// +PIVXGUI::~PIVXGUI() { + // Unsubscribe from notifications from core + unsubscribeFromCoreSignals(); + + GUIUtil::saveWindowGeometry("nWindow", this); + if (trayIcon) // Hide tray icon, as deleting will let it linger until quit (on Ubuntu) + trayIcon->hide(); +#ifdef Q_OS_MAC + MacDockIconHandler::cleanup(); +#endif +} + + +/** Get restart command-line parameters and request restart */ +void PIVXGUI::handleRestart(QStringList args){ + if (!ShutdownRequested()) + emit requestedRestart(args); +} + + +void PIVXGUI::setClientModel(ClientModel* clientModel) { + this->clientModel = clientModel; + if(this->clientModel) { + + // Create system tray menu (or setup the dock menu) that late to prevent users from calling actions, + // while the client has not yet fully loaded + createTrayIconMenu(); + + topBar->setClientModel(clientModel); + dashboard->setClientModel(clientModel); + sendWidget->setClientModel(clientModel); + settingsWidget->setClientModel(clientModel); + + // Receive and report messages from client model + connect(clientModel, SIGNAL(message(QString, QString, unsigned int)), this, SLOT(message(QString, QString, unsigned int))); + connect(topBar, SIGNAL(walletSynced(bool)), dashboard, SLOT(walletSynced(bool))); + connect(topBar, SIGNAL(walletSynced(bool)), coldStakingWidget, SLOT(walletSynced(bool))); + + // Get restart command-line parameters and handle restart + connect(settingsWidget, &SettingsWidget::handleRestart, [this](QStringList arg){handleRestart(arg);}); + + if (rpcConsole) { + rpcConsole->setClientModel(clientModel); + } + + if (trayIcon) { + trayIcon->show(); + } + } else { + // Disable possibility to show main window via action + toggleHideAction->setEnabled(false); + if (trayIconMenu) { + // Disable context menu on tray icon + trayIconMenu->clear(); + } + } +} + +void PIVXGUI::createTrayIconMenu() { +#ifndef Q_OS_MAC + // return if trayIcon is unset (only on non-Mac OSes) + if (!trayIcon) + return; + + trayIconMenu = new QMenu(this); + trayIcon->setContextMenu(trayIconMenu); + + connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), + this, SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason))); +#else + // Note: On Mac, the dock icon is used to provide the tray's functionality. + MacDockIconHandler* dockIconHandler = MacDockIconHandler::instance(); + dockIconHandler->setMainWindow((QMainWindow*)this); + trayIconMenu = dockIconHandler->dockMenu(); +#endif + + // Configuration of the tray icon (or dock icon) icon menu + trayIconMenu->addAction(toggleHideAction); + trayIconMenu->addSeparator(); + +#ifndef Q_OS_MAC // This is built-in on Mac + trayIconMenu->addSeparator(); + trayIconMenu->addAction(quitAction); +#endif +} + +#ifndef Q_OS_MAC +void PIVXGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason) +{ + if (reason == QSystemTrayIcon::Trigger) { + // Click on system tray icon triggers show/hide of the main window + toggleHidden(); + } +} +#endif + +void PIVXGUI::changeEvent(QEvent* e) +{ + QMainWindow::changeEvent(e); +#ifndef Q_OS_MAC // Ignored on Mac + if (e->type() == QEvent::WindowStateChange) { + if (clientModel && clientModel->getOptionsModel() && clientModel->getOptionsModel()->getMinimizeToTray()) { + QWindowStateChangeEvent* wsevt = static_cast(e); + if (!(wsevt->oldState() & Qt::WindowMinimized) && isMinimized()) { + QTimer::singleShot(0, this, SLOT(hide())); + e->ignore(); + } + } + } +#endif +} + +void PIVXGUI::closeEvent(QCloseEvent* event) +{ +#ifndef Q_OS_MAC // Ignored on Mac + if (clientModel && clientModel->getOptionsModel()) { + if (!clientModel->getOptionsModel()->getMinimizeOnClose()) { + QApplication::quit(); + } + } +#endif + QMainWindow::closeEvent(event); +} + + +void PIVXGUI::messageInfo(const QString& text){ + if(!this->snackBar) this->snackBar = new SnackBar(this, this); + this->snackBar->setText(text); + this->snackBar->resize(this->width(), snackBar->height()); + openDialog(this->snackBar, this); +} + + +void PIVXGUI::message(const QString& title, const QString& message, unsigned int style, bool* ret) { + QString strTitle = tr("PIVX Core"); // default title + // Default to information icon + int nNotifyIcon = Notificator::Information; + + QString msgType; + + // Prefer supplied title over style based title + if (!title.isEmpty()) { + msgType = title; + } else { + switch (style) { + case CClientUIInterface::MSG_ERROR: + msgType = tr("Error"); + break; + case CClientUIInterface::MSG_WARNING: + msgType = tr("Warning"); + break; + case CClientUIInterface::MSG_INFORMATION: + msgType = tr("Information"); + break; + default: + msgType = tr("System Message"); + break; + } + } + + // Check for error/warning icon + if (style & CClientUIInterface::ICON_ERROR) { + nNotifyIcon = Notificator::Critical; + } else if (style & CClientUIInterface::ICON_WARNING) { + nNotifyIcon = Notificator::Warning; + } + + // Display message + if (style & CClientUIInterface::MODAL) { + // Check for buttons, use OK as default, if none was supplied + int r = 0; + showNormalIfMinimized(); + if(style & CClientUIInterface::BTN_MASK){ + r = openStandardDialog( + (title.isEmpty() ? strTitle : title), message, "OK", "CANCEL" + ); + }else{ + r = openStandardDialog((title.isEmpty() ? strTitle : title), message, "OK"); + } + if (ret != NULL) + *ret = r; + } else if(style & CClientUIInterface::MSG_INFORMATION_SNACK){ + messageInfo(message); + }else { + // Append title to "PIVX - " + if (!msgType.isEmpty()) + strTitle += " - " + msgType; + notificator->notify((Notificator::Class) nNotifyIcon, strTitle, message); + } +} + +bool PIVXGUI::openStandardDialog(QString title, QString body, QString okBtn, QString cancelBtn){ + DefaultDialog *dialog; + if (isVisible()) { + showHide(true); + dialog = new DefaultDialog(this); + dialog->setText(title, body, okBtn, cancelBtn); + dialog->adjustSize(); + openDialogWithOpaqueBackground(dialog, this); + } else { + dialog = new DefaultDialog(); + dialog->setText(title, body, okBtn); + dialog->setWindowTitle(tr("PIVX Core")); + dialog->adjustSize(); + dialog->raise(); + dialog->exec(); + } + bool ret = dialog->isOk; + dialog->deleteLater(); + return ret; +} + + +void PIVXGUI::showNormalIfMinimized(bool fToggleHidden) { + if (!clientModel) + return; + // activateWindow() (sometimes) helps with keyboard focus on Windows + if (isHidden()) { + show(); + activateWindow(); + } else if (isMinimized()) { + showNormal(); + activateWindow(); + } else if (GUIUtil::isObscured(this)) { + raise(); + activateWindow(); + } else if (fToggleHidden) + hide(); +} + +void PIVXGUI::toggleHidden() { + showNormalIfMinimized(true); +} + +void PIVXGUI::detectShutdown() { + if (ShutdownRequested()) { + if (rpcConsole) + rpcConsole->hide(); + qApp->quit(); + } +} + +void PIVXGUI::goToDashboard(){ + if(stackedContainer->currentWidget() != dashboard){ + stackedContainer->setCurrentWidget(dashboard); + topBar->showBottom(); + } +} + +void PIVXGUI::goToSend(){ + showTop(sendWidget); +} + +void PIVXGUI::goToAddresses(){ + showTop(addressesWidget); +} + +void PIVXGUI::goToPrivacy(){ + showTop(privacyWidget); +} + +void PIVXGUI::goToMasterNodes(){ + showTop(masterNodesWidget); +} + +void PIVXGUI::goToColdStaking(){ + showTop(coldStakingWidget); +} + +void PIVXGUI::goToSettings(){ + showTop(settingsWidget); +} + +void PIVXGUI::goToReceive(){ + showTop(receiveWidget); +} + +void PIVXGUI::showTop(QWidget* view){ + if(stackedContainer->currentWidget() != view){ + stackedContainer->setCurrentWidget(view); + topBar->showTop(); + } +} + +void PIVXGUI::changeTheme(bool isLightTheme){ + + QString css = GUIUtil::loadStyleSheet(); + this->setStyleSheet(css); + + // Notify + emit themeChanged(isLightTheme, css); + + // Update style + updateStyle(this); +} + +void PIVXGUI::resizeEvent(QResizeEvent* event){ + // Parent.. + QMainWindow::resizeEvent(event); + // background + showHide(opEnabled); + // Notify + emit windowResizeEvent(event); +} + +bool PIVXGUI::execDialog(QDialog *dialog, int xDiv, int yDiv){ + return openDialogWithOpaqueBackgroundY(dialog, this); +} + +void PIVXGUI::showHide(bool show){ + if(!op) op = new QLabel(this); + if(!show){ + op->setVisible(false); + opEnabled = false; + }else{ + QColor bg("#000000"); + bg.setAlpha(200); + if(!isLightTheme()){ + bg = QColor("#00000000"); + bg.setAlpha(150); + } + + QPalette palette; + palette.setColor(QPalette::Window, bg); + op->setAutoFillBackground(true); + op->setPalette(palette); + op->setWindowFlags(Qt::CustomizeWindowHint); + op->move(0,0); + op->show(); + op->activateWindow(); + op->resize(width(), height()); + op->setVisible(true); + opEnabled = true; + } +} + +int PIVXGUI::getNavWidth(){ + return this->navMenu->width(); +} + +void PIVXGUI::openFAQ(int section){ + showHide(true); + SettingsFaqWidget* dialog = new SettingsFaqWidget(this); + if (section > 0) dialog->setSection(section); + openDialogWithOpaqueBackgroundFullScreen(dialog, this); + dialog->deleteLater(); +} + + +#ifdef ENABLE_WALLET +bool PIVXGUI::addWallet(const QString& name, WalletModel* walletModel) +{ + // Single wallet supported for now.. + if(!stackedContainer || !clientModel || !walletModel) + return false; + + // set the model for every view + navMenu->setWalletModel(walletModel); + dashboard->setWalletModel(walletModel); + topBar->setWalletModel(walletModel); + receiveWidget->setWalletModel(walletModel); + sendWidget->setWalletModel(walletModel); + addressesWidget->setWalletModel(walletModel); + privacyWidget->setWalletModel(walletModel); + masterNodesWidget->setWalletModel(walletModel); + coldStakingWidget->setWalletModel(walletModel); + settingsWidget->setWalletModel(walletModel); + + // Connect actions.. + connect(privacyWidget, &PrivacyWidget::message, this, &PIVXGUI::message); + connect(masterNodesWidget, &MasterNodesWidget::message, this, &PIVXGUI::message); + connect(coldStakingWidget, &MasterNodesWidget::message, this, &PIVXGUI::message); + connect(topBar, &TopBar::message, this, &PIVXGUI::message); + connect(sendWidget, &SendWidget::message,this, &PIVXGUI::message); + connect(receiveWidget, &ReceiveWidget::message,this, &PIVXGUI::message); + connect(addressesWidget, &AddressesWidget::message,this, &PIVXGUI::message); + connect(settingsWidget, &SettingsWidget::message, this, &PIVXGUI::message); + + // Pass through transaction notifications + connect(dashboard, SIGNAL(incomingTransaction(QString, int, CAmount, QString, QString)), this, SLOT(incomingTransaction(QString, int, CAmount, QString, QString))); + + return true; +} + +bool PIVXGUI::setCurrentWallet(const QString& name) { + // Single wallet supported. + return true; +} + +void PIVXGUI::removeAllWallets() { + // Single wallet supported. +} + +void PIVXGUI::incomingTransaction(const QString& date, int unit, const CAmount& amount, const QString& type, const QString& address) { + // Only send notifications when not disabled + if(!bdisableSystemnotifications){ + // On new transaction, make an info balloon + message((amount) < 0 ? (pwalletMain->fMultiSendNotify == true ? tr("Sent MultiSend transaction") : tr("Sent transaction")) : tr("Incoming transaction"), + tr("Date: %1\n" + "Amount: %2\n" + "Type: %3\n" + "Address: %4\n") + .arg(date) + .arg(BitcoinUnits::formatWithUnit(unit, amount, true)) + .arg(type) + .arg(address), + CClientUIInterface::MSG_INFORMATION); + + pwalletMain->fMultiSendNotify = false; + } +} + +#endif // ENABLE_WALLET + + +static bool ThreadSafeMessageBox(PIVXGUI* gui, const std::string& message, const std::string& caption, unsigned int style) +{ + bool modal = (style & CClientUIInterface::MODAL); + // The SECURE flag has no effect in the Qt GUI. + // bool secure = (style & CClientUIInterface::SECURE); + style &= ~CClientUIInterface::SECURE; + bool ret = false; + std::cout << "thread safe box: " << message << std::endl; + // In case of modal message, use blocking connection to wait for user to click a button + QMetaObject::invokeMethod(gui, "message", + modal ? GUIUtil::blockingGUIThreadConnection() : Qt::QueuedConnection, + Q_ARG(QString, QString::fromStdString(caption)), + Q_ARG(QString, QString::fromStdString(message)), + Q_ARG(unsigned int, style), + Q_ARG(bool*, &ret)); + return ret; +} + + +void PIVXGUI::subscribeToCoreSignals() +{ + // Connect signals to client + uiInterface.ThreadSafeMessageBox.connect(boost::bind(ThreadSafeMessageBox, this, _1, _2, _3)); +} + +void PIVXGUI::unsubscribeFromCoreSignals() +{ + // Disconnect signals from client + uiInterface.ThreadSafeMessageBox.disconnect(boost::bind(ThreadSafeMessageBox, this, _1, _2, _3)); +} diff --git a/src/qt/pivx/pivxgui.h b/src/qt/pivx/pivxgui.h new file mode 100644 index 0000000..8b88615 --- /dev/null +++ b/src/qt/pivx/pivxgui.h @@ -0,0 +1,189 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PIVX_CORE_NEW_GUI_PIVXGUI_H +#define PIVX_CORE_NEW_GUI_PIVXGUI_H + +#if defined(HAVE_CONFIG_H) +#include "config/pivx-config.h" +#endif + +#include +#include +#include +#include + +#include "qt/pivx/navmenuwidget.h" +#include "qt/pivx/topbar.h" +#include "qt/pivx/dashboardwidget.h" +#include "qt/pivx/send.h" +#include "qt/pivx/receivewidget.h" +#include "qt/pivx/addresseswidget.h" +#include "qt/pivx/privacywidget.h" +#include "qt/pivx/coldstakingwidget.h" +#include "qt/pivx/masternodeswidget.h" +#include "qt/pivx/snackbar.h" +#include "qt/pivx/settings/settingswidget.h" +#include "qt/rpcconsole.h" + + +class ClientModel; +class NetworkStyle; +class Notificator; +class WalletModel; + + +/** + PIVX GUI main class. This class represents the main window of the PIVX UI. It communicates with both the client and + wallet models to give the user an up-to-date view of the current core state. +*/ +class PIVXGUI : public QMainWindow +{ + Q_OBJECT + +public: + static const QString DEFAULT_WALLET; + + explicit PIVXGUI(const NetworkStyle* networkStyle, QWidget* parent = 0); + ~PIVXGUI(); + + /** Set the client model. + The client model represents the part of the core that communicates with the P2P network, and is wallet-agnostic. + */ + void setClientModel(ClientModel* clientModel); + + + void resizeEvent(QResizeEvent *event) override; + void showHide(bool show); + int getNavWidth(); +signals: + void themeChanged(bool isLightTheme, QString& theme); + void windowResizeEvent(QResizeEvent* event); +public slots: + void changeTheme(bool isLightTheme); + void goToDashboard(); + void goToSend(); + void goToReceive(); + void goToAddresses(); + void goToPrivacy(); + void goToMasterNodes(); + void goToColdStaking(); + void goToSettings(); + + void connectActions(); + + /** Get restart command-line parameters and request restart */ + void handleRestart(QStringList args); + + /** Notify the user of an event from the core network or transaction handling code. + @param[in] title the message box / notification title + @param[in] message the displayed text + @param[in] style modality and style definitions (icon and used buttons - buttons only for message boxes) + @see CClientUIInterface::MessageBoxFlags + @param[in] ret pointer to a bool that will be modified to whether Ok was clicked (modal only) + */ + void message(const QString& title, const QString& message, unsigned int style, bool* ret = nullptr); + void messageInfo(const QString& message); + bool execDialog(QDialog *dialog, int xDiv = 3, int yDiv = 5); + /** Open FAQ dialog **/ + void openFAQ(int section = 0); + + /** Show incoming transaction notification for new transactions. */ + void incomingTransaction(const QString& date, int unit, const CAmount& amount, const QString& type, const QString& address); +#ifdef ENABLE_WALLET + /** Set the wallet model. + The wallet model represents a bitcoin wallet, and offers access to the list of transactions, address book and sending + functionality. + */ + bool addWallet(const QString& name, WalletModel* walletModel); + bool setCurrentWallet(const QString& name); + void removeAllWallets(); +#endif // ENABLE_WALLET + +protected: + + void changeEvent(QEvent* e) override; + void closeEvent(QCloseEvent* event) override; + + /* + void dragEnterEvent(QDragEnterEvent* event); + void dropEvent(QDropEvent* event); + bool eventFilter(QObject* object, QEvent* event); + */ + +private: + bool enableWallet; + ClientModel* clientModel = nullptr; + + // Actions + QAction* quitAction = nullptr; + QAction* toggleHideAction = nullptr; + + + // Frame + NavMenuWidget *navMenu = nullptr; + TopBar *topBar = nullptr; + QStackedWidget *stackedContainer = nullptr; + + DashboardWidget *dashboard = nullptr; + SendWidget *sendWidget = nullptr; + ReceiveWidget *receiveWidget = nullptr; + AddressesWidget *addressesWidget = nullptr; + PrivacyWidget *privacyWidget = nullptr; + MasterNodesWidget *masterNodesWidget = nullptr; + ColdStakingWidget *coldStakingWidget = nullptr; + SettingsWidget* settingsWidget = nullptr; + + SnackBar *snackBar = nullptr; + + RPCConsole* rpcConsole = nullptr; + + // + QSystemTrayIcon* trayIcon = nullptr; + QMenu* trayIconMenu = nullptr; + Notificator* notificator = nullptr; + + QLabel *op = nullptr; + bool opEnabled = false; + + /** Create the main UI actions. */ + void createActions(const NetworkStyle* networkStyle); + /** Create system tray icon and notification */ + void createTrayIcon(const NetworkStyle* networkStyle); + /** Create system tray menu (or setup the dock menu) */ + void createTrayIconMenu(); + + void showTop(QWidget *view); + bool openStandardDialog(QString title = "", QString body = "", QString okBtn = "OK", QString cancelBtn = "CANCEL"); + + /** Connect core signals to GUI client */ + void subscribeToCoreSignals(); + /** Disconnect core signals from GUI client */ + void unsubscribeFromCoreSignals(); + +private slots: + /** Show window if hidden, unminimize when minimized, rise when obscured or show if hidden and fToggleHidden is true */ + void showNormalIfMinimized(bool fToggleHidden = false); + + /** Simply calls showNormalIfMinimized(true) for use in SLOT() macro */ + void toggleHidden(); + + /** called by a timer to check if fRequestShutdown has been set **/ + void detectShutdown(); + +#ifndef Q_OS_MAC + /** Handle tray icon clicked */ + void trayIconActivated(QSystemTrayIcon::ActivationReason reason); +#endif + +signals: + /** Signal raised when a URI was entered or dragged to the GUI */ + void receivedURI(const QString& uri); + /** Restart handling */ + void requestedRestart(QStringList args); + +}; + + +#endif //PIVX_CORE_NEW_GUI_PIVXGUI_H diff --git a/src/qt/pivx/privacywidget.cpp b/src/qt/pivx/privacywidget.cpp new file mode 100644 index 0000000..8793bab --- /dev/null +++ b/src/qt/pivx/privacywidget.cpp @@ -0,0 +1,449 @@ +// Copyright (c) 2019-2020 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/privacywidget.h" +#include "qt/pivx/forms/ui_privacywidget.h" +#include "qt/pivx/qtutils.h" +#include "guiutil.h" +#include "qt/pivx/denomgenerationdialog.h" +#include "qt/pivx/txviewholder.h" +#include "walletmodel.h" +#include "optionsmodel.h" +#include "coincontroldialog.h" +#include "coincontrol.h" +#include "zpiv/accumulators.h" + +#define DECORATION_SIZE 65 +#define NUM_ITEMS 3 + +PrivacyWidget::PrivacyWidget(PIVXGUI* parent) : + PWidget(parent), + ui(new Ui::PrivacyWidget) +{ + ui->setupUi(this); + this->setStyleSheet(parent->styleSheet()); + + /* Containers */ + setCssProperty(ui->left, "container"); + ui->left->setContentsMargins(0,20,0,0); + setCssProperty(ui->right, "container-right"); + ui->right->setContentsMargins(20,10,20,20); + + /* Light Font */ + QFont fontLight; + fontLight.setWeight(QFont::Light); + + /* Title */ + ui->labelTitle->setText(tr("Privacy")); + setCssTitleScreen(ui->labelTitle); + ui->labelTitle->setFont(fontLight); + + /* Button Group */ + ui->pushLeft->setText(tr("Convert")); + setCssProperty(ui->pushLeft, "btn-check-left"); + ui->pushRight->setText(tr("Mint")); + setCssProperty(ui->pushRight, "btn-check-right"); + + /* Subtitle */ + ui->labelSubtitle1->setText(tr("Minting zPIV anonymizes your PIV by removing any\ntransaction history, making transactions untraceable ")); + setCssSubtitleScreen(ui->labelSubtitle1); + + ui->labelSubtitle2->setText(tr("Mint new zPIV or convert back to PIV")); + setCssSubtitleScreen(ui->labelSubtitle2); + ui->labelSubtitle2->setContentsMargins(0,2,0,0); + setCssProperty(ui->labelSubtitleAmount, "text-title"); + + ui->lineEditAmount->setPlaceholderText("0.00 PIV "); + ui->lineEditAmount->setValidator(new QRegExpValidator(QRegExp("[0-9]+"))); + initCssEditLine(ui->lineEditAmount); + + /* Denom */ + ui->labelTitleDenom1->setText("Denom. with value 1:"); + setCssProperty(ui->labelTitleDenom1, "text-subtitle"); + ui->labelValueDenom1->setText("0x1 = 0 zPIV"); + setCssProperty(ui->labelValueDenom1, "text-body2"); + + ui->labelTitleDenom5->setText("Denom. with value 5:"); + setCssProperty(ui->labelTitleDenom5, "text-subtitle"); + ui->labelValueDenom5->setText("0x5 = 0 zPIV"); + setCssProperty(ui->labelValueDenom5, "text-body2"); + + ui->labelTitleDenom10->setText("Denom. with value 10:"); + setCssProperty(ui->labelTitleDenom10, "text-subtitle"); + ui->labelValueDenom10->setText("0x10 = 0 zPIV"); + setCssProperty(ui->labelValueDenom10, "text-body2"); + + ui->labelTitleDenom50->setText("Denom. with value 50:"); + setCssProperty(ui->labelTitleDenom50, "text-subtitle"); + ui->labelValueDenom50->setText("0x50 = 0 zPIV"); + setCssProperty(ui->labelValueDenom50, "text-body2"); + + ui->labelTitleDenom100->setText("Denom. with value 100:"); + setCssProperty(ui->labelTitleDenom100, "text-subtitle"); + ui->labelValueDenom100->setText("0x100 = 0 zPIV"); + setCssProperty(ui->labelValueDenom100, "text-body2"); + + ui->labelTitleDenom500->setText("Denom. with value 500:"); + setCssProperty(ui->labelTitleDenom500, "text-subtitle"); + ui->labelValueDenom500->setText("0x500 = 0 zPIV"); + setCssProperty(ui->labelValueDenom500, "text-body2"); + + ui->labelTitleDenom1000->setText("Denom. with value 1000:"); + setCssProperty(ui->labelTitleDenom1000, "text-subtitle"); + ui->labelValueDenom1000->setText("0x1000 = 0 zPIV"); + setCssProperty(ui->labelValueDenom1000, "text-body2"); + + ui->labelTitleDenom5000->setText("Denom. with value 5000:"); + setCssProperty(ui->labelTitleDenom5000, "text-subtitle"); + ui->labelValueDenom5000->setText("0x5000 = 0 zPIV"); + setCssProperty(ui->labelValueDenom5000, "text-body2"); + + ui->layoutDenom->setVisible(false); + + // List + ui->labelListHistory->setText(tr("Last zPIV Movements")); + setCssProperty(ui->labelListHistory, "text-title"); + + //ui->emptyContainer->setVisible(false); + setCssProperty(ui->pushImgEmpty, "img-empty-privacy"); + ui->labelEmpty->setText(tr("No transactions yet")); + setCssProperty(ui->labelEmpty, "text-empty"); + + // Buttons + setCssBtnPrimary(ui->pushButtonSave); + + // Only Convert to PIV enabled. + ui->containerViewPrivacyChecks->setVisible(false); + onMintSelected(false); + + ui->btnTotalzPIV->setTitleClassAndText("btn-title-grey", "Total 0 zPIV"); + ui->btnTotalzPIV->setSubTitleClassAndText("text-subtitle", "Show denominations of zPIV owned."); + ui->btnTotalzPIV->setRightIconClass("ic-arrow"); + + ui->btnCoinControl->setTitleClassAndText("btn-title-grey", "Coin Control"); + ui->btnCoinControl->setSubTitleClassAndText("text-subtitle", "Select PIV outputs to mint into zPIV."); + + ui->btnDenomGeneration->setTitleClassAndText("btn-title-grey", "Denom Generation"); + ui->btnDenomGeneration->setSubTitleClassAndText("text-subtitle", "Select the denomination of the coins."); + ui->btnDenomGeneration->setVisible(false); + + ui->btnRescanMints->setTitleClassAndText("btn-title-grey", "Rescan Mints"); + ui->btnRescanMints->setSubTitleClassAndText("text-subtitle", "Find mints in the blockchain."); + + ui->btnResetZerocoin->setTitleClassAndText("btn-title-grey", "Reset Spent zPIV"); + ui->btnResetZerocoin->setSubTitleClassAndText("text-subtitle", "Reset zerocoin database."); + + connect(ui->btnTotalzPIV, SIGNAL(clicked()), this, SLOT(onTotalZpivClicked())); + connect(ui->btnCoinControl, SIGNAL(clicked()), this, SLOT(onCoinControlClicked())); + connect(ui->btnDenomGeneration, SIGNAL(clicked()), this, SLOT(onDenomClicked())); + connect(ui->btnRescanMints, SIGNAL(clicked()), this, SLOT(onRescanMintsClicked())); + connect(ui->btnResetZerocoin, SIGNAL(clicked()), this, SLOT(onResetZeroClicked())); + + ui->pushRight->setChecked(true); + connect(ui->pushLeft, &QPushButton::clicked, [this](){onMintSelected(false);}); + connect(ui->pushRight, &QPushButton::clicked, [this](){onMintSelected(true);}); + + // List + setCssProperty(ui->listView, "container"); + txHolder = new TxViewHolder(isLightTheme()); + delegate = new FurAbstractListItemDelegate( + DECORATION_SIZE, + txHolder, + this + ); + + ui->listView->setItemDelegate(delegate); + ui->listView->setIconSize(QSize(DECORATION_SIZE, DECORATION_SIZE)); + ui->listView->setMinimumHeight(NUM_ITEMS * (DECORATION_SIZE + 2)); + ui->listView->setAttribute(Qt::WA_MacShowFocusRect, false); + ui->listView->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->listView->setLayoutMode(QListView::LayoutMode::Batched); + ui->listView->setBatchSize(30); + ui->listView->setUniformItemSizes(true); +} + +void PrivacyWidget::loadWalletModel(){ + if(walletModel) { + txModel = walletModel->getTransactionTableModel(); + // Set up transaction list + filter = new TransactionFilterProxy(); + filter->setDynamicSortFilter(true); + filter->setSortCaseSensitivity(Qt::CaseInsensitive); + filter->setFilterCaseSensitivity(Qt::CaseInsensitive); + filter->setSortRole(Qt::EditRole); + filter->setShowZcTxes(true); + filter->setSourceModel(txModel); + filter->sort(TransactionTableModel::Date, Qt::DescendingOrder); + txHolder->setDisplayUnit(walletModel->getOptionsModel()->getDisplayUnit()); + txHolder->setFilter(filter); + ui->listView->setModel(filter); + + updateDisplayUnit(); + updateDenomsSupply(); + + if (!txModel->hasZcTxes()) { + ui->emptyContainer->setVisible(true); + ui->listView->setVisible(false); + }else{ + showList(); + } + + connect(ui->pushButtonSave, SIGNAL(clicked()), this, SLOT(onSendClicked())); + } + +} + +void PrivacyWidget::onMintSelected(bool isMint){ + QString btnText; + if(isMint){ + btnText = tr("Mint zPIV"); + ui->btnCoinControl->setVisible(true); + ui->labelSubtitleAmount->setText(tr("Enter amount of PIV to mint into zPIV")); + }else{ + btnText = tr("Convert back to PIV"); + ui->btnCoinControl->setVisible(false); + ui->labelSubtitleAmount->setText(tr("Enter amount of zPIV to convert back into PIV")); + } + ui->pushButtonSave->setText(btnText); +} + +void PrivacyWidget::updateDisplayUnit() { + if (walletModel && walletModel->getOptionsModel()) { + nDisplayUnit = walletModel->getOptionsModel()->getDisplayUnit(); + + txHolder->setDisplayUnit(nDisplayUnit); + ui->listView->update(); + } +} + +void PrivacyWidget::showList(){ + ui->emptyContainer->setVisible(false); + ui->listView->setVisible(true); +} + +void PrivacyWidget::onTotalZpivClicked(){ + bool isVisible = ui->layoutDenom->isVisible(); + if(!isVisible){ + ui->layoutDenom->setVisible(true); + ui->btnTotalzPIV->setRightIconClass("btn-dropdown", true); + }else{ + ui->layoutDenom->setVisible(false); + ui->btnTotalzPIV->setRightIconClass("ic-arrow", true); + } +} + +void PrivacyWidget::onSendClicked(){ + if (!walletModel || !walletModel->getOptionsModel()) + return; + + if(sporkManager.IsSporkActive(SPORK_16_ZEROCOIN_MAINTENANCE_MODE)) { + warn(tr("Zerocoin"), tr("zPIV is currently undergoing maintenance")); + return; + } + + // Only convert enabled. + bool isConvert = true;// ui->pushLeft->isChecked(); + + if(!GUIUtil::requestUnlock(walletModel, AskPassphraseDialog::Context::Mint_zPIV, true)){ + inform(tr("You need to unlock the wallet to be able to %1 zPIV").arg(isConvert ? tr("convert") : tr("mint"))); + return; + } + + bool isValid = true; + CAmount value = GUIUtil::parseValue( + ui->lineEditAmount->text(), + walletModel->getOptionsModel()->getDisplayUnit(), + &isValid + ); + + if (!isValid || value <= 0) { + setCssEditLine(ui->lineEditAmount, false, true); + inform(tr("Invalid value")); + return; + } + + setCssEditLine(ui->lineEditAmount, true, true); + if(isConvert){ + spend(value); + }else{ + mint(value); + } +} + +void PrivacyWidget::mint(CAmount value){ + std::string strError; + if(!walletModel->mintCoins(value, CoinControlDialog::coinControl, strError)){ + inform(tr(strError.data())); + }else{ + // Mint succeed + inform(tr("zPIV minted successfully")); + // clear + ui->lineEditAmount->clear(); + } +} + +void PrivacyWidget::spend(CAmount value){ + CZerocoinSpendReceipt receipt; + std::vector selectedMints; + bool mintChange = false; + bool minimizeChange = false; + + if(!walletModel->convertBackZpiv( + value, + selectedMints, + mintChange, + minimizeChange, + receipt + )){ + inform(receipt.GetStatusMessage().data()); + }else{ + // Spend succeed + inform(tr("zPIV converted back to PIV")); + // clear + ui->lineEditAmount->clear(); + } +} + + +void PrivacyWidget::onCoinControlClicked(){ + if(ui->pushRight->isChecked()) { + if (walletModel->getBalance() > 0) { + if (!coinControlDialog) { + coinControlDialog = new CoinControlDialog(); + coinControlDialog->setModel(walletModel); + } else { + coinControlDialog->refreshDialog(); + } + coinControlDialog->exec(); + ui->btnCoinControl->setActive(CoinControlDialog::coinControl->HasSelected()); + } else { + inform(tr("You don't have any PIV to select.")); + } + } +} + +void PrivacyWidget::onDenomClicked(){ + showHideOp(true); + DenomGenerationDialog* dialog = new DenomGenerationDialog(window); + openDialogWithOpaqueBackgroundY(dialog, window, 4.5, 5); +} + +void PrivacyWidget::onRescanMintsClicked(){ + if (ask(tr("Rescan Mints"), + tr("Your zerocoin mints are going to be scanned from the blockchain from scratch")) + ){ + std::string strResetMintResult = walletModel->resetMintZerocoin(); + inform(QString::fromStdString(strResetMintResult)); + } +} + +void PrivacyWidget::onResetZeroClicked(){ + if (ask(tr("Reset Spent zPIV"), + tr("Your zerocoin spends are going to be scanned from the blockchain from scratch")) + ){ + std::string strResetMintResult = walletModel->resetSpentZerocoin(); + inform(QString::fromStdString(strResetMintResult)); + } +} + +void PrivacyWidget::updateDenomsSupply(){ + std::map mapDenomBalances; + std::map mapUnconfirmed; + std::map mapImmature; + for (const auto& denom : libzerocoin::zerocoinDenomList){ + mapDenomBalances.insert(std::make_pair(denom, 0)); + mapUnconfirmed.insert(std::make_pair(denom, 0)); + mapImmature.insert(std::make_pair(denom, 0)); + } + + std::set vMints; + walletModel->listZerocoinMints(vMints, true, false, true, true); + + std::map mapMaturityHeights = GetMintMaturityHeight(); + for (auto& meta : vMints){ + // All denominations + mapDenomBalances.at(meta.denom)++; + + if (!meta.nHeight || chainActive.Height() - meta.nHeight <= Params().Zerocoin_MintRequiredConfirmations()) { + // All unconfirmed denominations + mapUnconfirmed.at(meta.denom)++; + } else { + if (meta.denom == libzerocoin::CoinDenomination::ZQ_ERROR) { + mapImmature.at(meta.denom)++; + } else if (meta.nHeight >= mapMaturityHeights.at(meta.denom)) { + mapImmature.at(meta.denom)++; + } + } + } + + int64_t nCoins = 0; + int64_t nSumPerCoin = 0; + int64_t nUnconfirmed = 0; + int64_t nImmature = 0; + QString strDenomStats, strUnconfirmed = ""; + + for (const auto& denom : libzerocoin::zerocoinDenomList) { + nCoins = libzerocoin::ZerocoinDenominationToInt(denom); + nSumPerCoin = nCoins * mapDenomBalances.at(denom); + nUnconfirmed = mapUnconfirmed.at(denom); + nImmature = mapImmature.at(denom); + + strUnconfirmed = ""; + if (nUnconfirmed) { + strUnconfirmed += QString::number(nUnconfirmed) + QString(" unconf. "); + } + if(nImmature) { + strUnconfirmed += QString::number(nImmature) + QString(" immature "); + } + if(nImmature || nUnconfirmed) { + strUnconfirmed = QString("( ") + strUnconfirmed + QString(") "); + } + + strDenomStats = strUnconfirmed + QString::number(mapDenomBalances.at(denom)) + " x " + + QString::number(nCoins) + " = " + + QString::number(nSumPerCoin) + " zPIV "; + + switch (nCoins) { + case libzerocoin::CoinDenomination::ZQ_ONE: + ui->labelValueDenom1->setText(strDenomStats); + break; + case libzerocoin::CoinDenomination::ZQ_FIVE: + ui->labelValueDenom5->setText(strDenomStats); + break; + case libzerocoin::CoinDenomination::ZQ_TEN: + ui->labelValueDenom10->setText(strDenomStats); + break; + case libzerocoin::CoinDenomination::ZQ_FIFTY: + ui->labelValueDenom50->setText(strDenomStats); + break; + case libzerocoin::CoinDenomination::ZQ_ONE_HUNDRED: + ui->labelValueDenom100->setText(strDenomStats); + break; + case libzerocoin::CoinDenomination::ZQ_FIVE_HUNDRED: + ui->labelValueDenom500->setText(strDenomStats); + break; + case libzerocoin::CoinDenomination::ZQ_ONE_THOUSAND: + ui->labelValueDenom1000->setText(strDenomStats); + break; + case libzerocoin::CoinDenomination::ZQ_FIVE_THOUSAND: + ui->labelValueDenom5000->setText(strDenomStats); + break; + default: + // Error Case: don't update display + break; + } + } + + CAmount matureZerocoinBalance = walletModel->getZerocoinBalance() - walletModel->getUnconfirmedZerocoinBalance() - walletModel->getImmatureZerocoinBalance(); + ui->btnTotalzPIV->setTitleText(tr("Total %1").arg(GUIUtil::formatBalance(matureZerocoinBalance, nDisplayUnit, true))); +} + +void PrivacyWidget::changeTheme(bool isLightTheme, QString& theme){ + static_cast(this->delegate->getRowFactory())->isLightTheme = isLightTheme; + ui->listView->update(); +} + +PrivacyWidget::~PrivacyWidget(){ + delete ui; +} diff --git a/src/qt/pivx/privacywidget.h b/src/qt/pivx/privacywidget.h new file mode 100644 index 0000000..b0cf3a9 --- /dev/null +++ b/src/qt/pivx/privacywidget.h @@ -0,0 +1,64 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PRIVACYWIDGET_H +#define PRIVACYWIDGET_H + +#include "qt/pivx/pwidget.h" +#include "qt/pivx/furabstractlistitemdelegate.h" +#include "qt/pivx/txviewholder.h" +#include "transactiontablemodel.h" +#include "transactionfilterproxy.h" +#include "coincontroldialog.h" + +#include +#include + +class PIVXGUI; +class WalletModel; + +namespace Ui { +class PrivacyWidget; +} + +QT_BEGIN_NAMESPACE +class QModelIndex; +QT_END_NAMESPACE + +class PrivacyWidget : public PWidget +{ + Q_OBJECT + +public: + explicit PrivacyWidget(PIVXGUI* parent); + ~PrivacyWidget(); + + void loadWalletModel() override; +private slots: + void changeTheme(bool isLightTheme, QString &theme) override; + void onCoinControlClicked(); + void onDenomClicked(); + void onRescanMintsClicked(); + void onResetZeroClicked(); + void onTotalZpivClicked(); + void updateDisplayUnit(); + void showList(); + void onSendClicked(); + void onMintSelected(bool isMint); + +private: + Ui::PrivacyWidget *ui; + FurAbstractListItemDelegate *delegate = nullptr; + TransactionTableModel* txModel = nullptr; + TxViewHolder *txHolder = nullptr; + TransactionFilterProxy* filter = nullptr; + CoinControlDialog *coinControlDialog = nullptr; + + int nDisplayUnit; + void mint(CAmount value); + void spend(CAmount value); + void updateDenomsSupply(); +}; + +#endif // PRIVACYWIDGET_H diff --git a/src/qt/pivx/prunnable.h b/src/qt/pivx/prunnable.h new file mode 100644 index 0000000..8b2adb9 --- /dev/null +++ b/src/qt/pivx/prunnable.h @@ -0,0 +1,14 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PIVX_CORE_NEW_GUI_PRUNNABLE_H +#define PIVX_CORE_NEW_GUI_PRUNNABLE_H + +class Runnable { +public: + virtual void run(int type) = 0; + virtual void onError(QString error, int type) = 0; +}; + +#endif //PIVX_CORE_NEW_GUI_PRUNNABLE_H diff --git a/src/qt/pivx/pwidget.cpp b/src/qt/pivx/pwidget.cpp new file mode 100644 index 0000000..98bfd0f --- /dev/null +++ b/src/qt/pivx/pwidget.cpp @@ -0,0 +1,127 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/pwidget.h" +#include "qt/pivx/qtutils.h" +#include "qt/pivx/loadingdialog.h" +#include +#include + +PWidget::PWidget(PIVXGUI* _window, QWidget *parent) : QWidget((parent) ? parent : _window), window(_window){init();} +PWidget::PWidget(PWidget* parent) : QWidget(parent), window(parent->getWindow()){init();} + +void PWidget::init() { + if(window) + connect(window, SIGNAL(themeChanged(bool, QString&)), this, SLOT(onChangeTheme(bool, QString&))); +} + +void PWidget::setClientModel(ClientModel* model){ + this->clientModel = model; + loadClientModel(); +} + +void PWidget::setWalletModel(WalletModel* model){ + this->walletModel = model; + loadWalletModel(); +} + +void PWidget::onChangeTheme(bool isLightTheme, QString& theme){ + this->setStyleSheet(theme); + changeTheme(isLightTheme, theme); + updateStyle(this); +} + +void PWidget::showHideOp(bool show){ + emit showHide(show); +} + +void PWidget::inform(const QString& message){ + emitMessage("", message, CClientUIInterface::MSG_INFORMATION_SNACK); +} + +void PWidget::warn(const QString& title, const QString& message){ + emitMessage(title, message, CClientUIInterface::MSG_ERROR); +} + +bool PWidget::ask(const QString& title, const QString& message){ + bool ret = false; + emitMessage(title, message, CClientUIInterface::MSG_INFORMATION | CClientUIInterface::BTN_MASK | CClientUIInterface::MODAL, &ret); + return ret; +} + +void PWidget::showDialog(QDialog *dlg, int xDiv, int yDiv){ + emit execDialog(dlg, xDiv, yDiv); +} + +void PWidget::emitMessage(const QString& title, const QString& body, unsigned int style, bool* ret){ + emit message(title, body, style, ret); +} + +class WorkerTask : public QRunnable { + +public: + WorkerTask(QPointer worker) { + this->worker = worker; + } + + ~WorkerTask() { + if (!worker.isNull()) worker.clear(); + } + + void run() override { + if (!worker.isNull()) worker.data()->process(); + } + + QPointer worker; +}; + +bool PWidget::execute(int type){ + if (task.isNull()) { + Worker* worker = new Worker(this, type); + connect(worker, SIGNAL (error(QString, int)), this, SLOT (errorString(QString, int))); + + WorkerTask* workerTask = new WorkerTask(QPointer(worker)); + workerTask->setAutoDelete(false); + task = QSharedPointer(workerTask); + } + QThreadPool::globalInstance()->start(task.data()); + return true; +} + +bool PWidget::verifyWalletUnlocked(){ + if (!walletModel->isWalletUnlocked()) { + inform(tr("Wallet locked, you need to unlock it to perform this action")); + return false; + } + return true; +} + +void PWidget::errorString(QString error, int type) { + onError(error, type); +} + + +//////////////////////////////////////////////////////////////// +//////////////////Override methods////////////////////////////// +//////////////////////////////////////////////////////////////// + + +void PWidget::loadClientModel(){ + // override +} + +void PWidget::loadWalletModel(){ + // override +} + +void PWidget::changeTheme(bool isLightTheme, QString& theme){ + // override +} + +void PWidget::run(int type) { + // override +} +void PWidget::onError(QString error, int type) { + // override +} diff --git a/src/qt/pivx/pwidget.h b/src/qt/pivx/pwidget.h new file mode 100644 index 0000000..6fe185f --- /dev/null +++ b/src/qt/pivx/pwidget.h @@ -0,0 +1,82 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef PWIDGET_H +#define PWIDGET_H + +#include +#include +#include +#include "qt/pivx/prunnable.h" + +class PIVXGUI; +class ClientModel; +class WalletModel; +class WorkerTask; + +namespace Ui { +class PWidget; +} + +class Translator +{ +public: + virtual QString translate(const char *msg) = 0; +}; + +class PWidget : public QWidget, public Runnable, public Translator +{ + Q_OBJECT +public: + explicit PWidget(PIVXGUI* _window = nullptr, QWidget *parent = nullptr); + explicit PWidget(PWidget *parent = nullptr); + + void setClientModel(ClientModel* model); + void setWalletModel(WalletModel* model); + + PIVXGUI* getWindow() { return this->window; } + + void run(int type) override; + void onError(QString error, int type) override; + + void inform(const QString& message); + void emitMessage(const QString& title, const QString& message, unsigned int style, bool* ret = nullptr); + + QString translate(const char *msg) override { return tr(msg); } + +signals: + void message(const QString& title, const QString& body, unsigned int style, bool* ret = nullptr); + void showHide(bool show); + bool execDialog(QDialog *dialog, int xDiv = 3, int yDiv = 5); + +protected slots: + virtual void changeTheme(bool isLightTheme, QString &theme); + void onChangeTheme(bool isLightTheme, QString &theme); + +protected: + PIVXGUI* window = nullptr; + ClientModel* clientModel = nullptr; + WalletModel* walletModel = nullptr; + + virtual void loadClientModel(); + virtual void loadWalletModel(); + + void showHideOp(bool show); + bool execute(int type); + void warn(const QString& title, const QString& message); + bool ask(const QString& title, const QString& message); + void showDialog(QDialog *dialog, int xDiv = 3, int yDiv = 5); + + bool verifyWalletUnlocked(); + +private: + QSharedPointer task; + + void init(); +private slots: + void errorString(QString, int); + +}; + +#endif // PWIDGET_H diff --git a/src/qt/pivx/qtutils.cpp b/src/qt/pivx/qtutils.cpp new file mode 100644 index 0000000..327f2b6 --- /dev/null +++ b/src/qt/pivx/qtutils.cpp @@ -0,0 +1,259 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/qtutils.h" + +#include "qt/pivx/snackbar.h" +#include "qrencode.h" +#include "guiconstants.h" + +#include +#include +#include +#include + +Qt::Modifier SHORT_KEY +#ifdef Q_OS_MAC + = Qt::CTRL; +#else + = Qt::ALT; +#endif + +// Open dialog at the bottom +bool openDialog(QDialog *widget, QWidget *gui){ + widget->setWindowFlags(Qt::CustomizeWindowHint); + widget->setAttribute(Qt::WA_TranslucentBackground, true); + QPropertyAnimation* animation = new QPropertyAnimation(widget, "pos"); + animation->setDuration(300); + animation->setStartValue(QPoint(0, gui->height())); + animation->setEndValue(QPoint(0, gui->height() - widget->height())); + animation->setEasingCurve(QEasingCurve::OutQuad); + animation->start(QAbstractAnimation::DeleteWhenStopped); + widget->activateWindow(); + widget->raise(); + return widget->exec(); +} + +void closeDialog(QDialog *widget, PIVXGUI *gui){ + widget->setWindowFlags(Qt::CustomizeWindowHint); + widget->setAttribute(Qt::WA_TranslucentBackground, true); + QPropertyAnimation* animation = new QPropertyAnimation(widget, "pos"); + animation->setDuration(300); + animation->setStartValue(widget->pos()); + animation->setEndValue(QPoint(0, gui->height() + 100)); + animation->setEasingCurve(QEasingCurve::OutQuad); + animation->start(QAbstractAnimation::DeleteWhenStopped); +} + +void openDialogFullScreen(QWidget *parent, QWidget * dialog){ + dialog->setWindowFlags(Qt::CustomizeWindowHint); + dialog->move(0, 0); + dialog->show(); + dialog->activateWindow(); + dialog->resize(parent->width(),parent->height()); +} + +bool openDialogWithOpaqueBackgroundY(QDialog *widget, PIVXGUI *gui, double posX, int posY){ + widget->setWindowFlags(Qt::CustomizeWindowHint); + widget->setAttribute(Qt::WA_TranslucentBackground, true); + QPropertyAnimation* animation = new QPropertyAnimation(widget, "pos"); + animation->setDuration(300); + int xPos = gui->width() / posX ; + animation->setStartValue(QPoint(xPos, gui->height())); + animation->setEndValue(QPoint(xPos, gui->height() / posY));//- (gui->height()) / posY )); + animation->setEasingCurve(QEasingCurve::OutQuad); + animation->start(QAbstractAnimation::DeleteWhenStopped); + widget->activateWindow(); + bool res = widget->exec(); + gui->showHide(false); + return res; +} + +bool openDialogWithOpaqueBackground(QDialog *widget, PIVXGUI *gui, double posX){ + return openDialogWithOpaqueBackgroundY(widget, gui, posX, 5); +} + +bool openDialogWithOpaqueBackgroundFullScreen(QDialog *widget, PIVXGUI *gui){ + widget->setWindowFlags(Qt::CustomizeWindowHint); + widget->setAttribute(Qt::WA_TranslucentBackground, true); + + widget->activateWindow(); + widget->resize(gui->width(),gui->height()); + + QPropertyAnimation* animation = new QPropertyAnimation(widget, "pos"); + animation->setDuration(300); + int xPos = 0; + animation->setStartValue(QPoint(xPos, gui->height())); + animation->setEndValue(QPoint(xPos, 0)); + animation->setEasingCurve(QEasingCurve::OutQuad); + animation->start(QAbstractAnimation::DeleteWhenStopped); + widget->activateWindow(); + bool res = widget->exec(); + gui->showHide(false); + return res; +} + +QPixmap encodeToQr(QString str, QString &errorStr, QColor qrColor){ + if (!str.isEmpty()) { + // limit URI length + if (str.length() > MAX_URI_LENGTH) { + errorStr = "Resulting URI too long, try to reduce the text for label / message."; + return QPixmap(); + } else { + QRcode* code = QRcode_encodeString(str.toUtf8().constData(), 0, QR_ECLEVEL_L, QR_MODE_8, 1); + if (!code) { + errorStr = "Error encoding URI into QR Code."; + return QPixmap(); + } + QImage myImage = QImage(code->width + 8, code->width + 8, QImage::Format_RGB32); + myImage.fill(0xffffff); + unsigned char* p = code->data; + for (int y = 0; y < code->width; y++) { + for (int x = 0; x < code->width; x++) { + myImage.setPixel(x + 4, y + 4, ((*p & 1) ? qrColor.rgb() : 0xffffff)); + p++; + } + } + QRcode_free(code); + return QPixmap::fromImage(myImage); + } + } + return QPixmap(); +} + +void setupSettings(QSettings *settings){ + if(!settings->contains("lightTheme")){ + settings->setValue("lightTheme", true); + } +} + +QSettings *settings = nullptr; + +QSettings* getSettings(){ + if(!settings){ + settings = new QSettings(); + // Setup initial values if them are not there + setupSettings(settings); + } + + return settings; +} + +bool isLightTheme(){ + return getSettings()->value("lightTheme", true).toBool(); +} + +void setTheme(bool isLight){ + QSettings* settings = getSettings(); + settings->setValue("theme", isLight ? "default" : "default-dark"); + settings->setValue("lightTheme", isLight); +} + + +// Style + +void updateStyle(QWidget* widget){ + widget->style()->unpolish(widget); + widget->style()->polish(widget); + widget->update(); +} + + +QColor getRowColor(bool isLightTheme, bool isHovered, bool isSelected){ + if(isLightTheme){ + if (isSelected) { + return QColor("#25b088ff"); + }else if(isHovered){ + return QColor("#25bababa"); + } else{ + return QColor("#ffffff"); + } + }else{ + if (isSelected) { + return QColor("#25b088ff"); + }else if(isHovered){ + return QColor("#25bababa"); + } else{ + return QColor("#0f0b16"); + } + } +} + +void initComboBox(QComboBox* combo, QLineEdit* lineEdit){ + setCssProperty(combo, "btn-combo"); + combo->setEditable(true); + if (lineEdit) { + lineEdit->setReadOnly(true); + lineEdit->setAlignment(Qt::AlignRight); + combo->setLineEdit(lineEdit); + } + combo->setStyleSheet("selection-background-color:transparent; selection-color:transparent;"); + combo->setView(new QListView()); +} + +void initCssEditLine(QLineEdit *edit, bool isDialog){ + if (isDialog) setCssEditLineDialog(edit, true, false); + else setCssEditLine(edit, true, false); + setShadow(edit); + edit->setAttribute(Qt::WA_MacShowFocusRect, 0); +} + +void setCssEditLine(QLineEdit *edit, bool isValid, bool forceUpdate){ + setCssProperty(edit, isValid ? "edit-primary" : "edit-primary-error", forceUpdate); +} + +void setCssEditLineDialog(QLineEdit *edit, bool isValid, bool forceUpdate){ + setCssProperty(edit, isValid ? "edit-primary-dialog" : "edit-primary-dialog-error", forceUpdate); +} + +void setShadow(QWidget *edit){ + QGraphicsDropShadowEffect* shadowEffect = new QGraphicsDropShadowEffect(); + shadowEffect->setColor(QColor(0, 0, 0, 22)); + shadowEffect->setXOffset(0); + shadowEffect->setYOffset(3); + shadowEffect->setBlurRadius(6); + edit->setGraphicsEffect(shadowEffect); +} + +void setCssBtnPrimary(QPushButton *btn, bool forceUpdate){ + setCssProperty(btn, "btn-primary", forceUpdate); +} + +void setCssBtnSecondary(QPushButton *btn, bool forceUpdate){ + setCssProperty(btn, "btn-secundary", forceUpdate); +} + +void setCssTextBodyDialog(std::initializer_list args){ + foreach (QWidget* w, args) { setCssTextBodyDialog(w); } +} + +void setCssTextBodyDialog(QWidget* widget) { + setCssProperty(widget, "text-body1-dialog", false); +} + +void setCssTitleScreen(QLabel* label) { + setCssProperty(label, "text-title-screen", false); +} + +void setCssSubtitleScreen(QWidget* wid) { + setCssProperty(wid, "text-subtitle", false); +} + +void setCssProperty(std::initializer_list args, QString value){ + foreach (QWidget* w, args) { setCssProperty(w, value); } +} + +void setCssProperty(QWidget *wid, QString value, bool forceUpdate){ + wid->setProperty("cssClass", value); + forceUpdateStyle(wid, forceUpdate); +} + +void forceUpdateStyle(QWidget *widget, bool forceUpdate){ + if(forceUpdate) + updateStyle(widget); +} + +void forceUpdateStyle(std::initializer_list args){ + foreach (QWidget* w, args) { forceUpdateStyle(w, true); } +} diff --git a/src/qt/pivx/qtutils.h b/src/qt/pivx/qtutils.h new file mode 100644 index 0000000..b3148dd --- /dev/null +++ b/src/qt/pivx/qtutils.h @@ -0,0 +1,72 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef QTUTILS_H +#define QTUTILS_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "qt/pivx/pivxgui.h" + +// Repair parameters +const QString SALVAGEWALLET("-salvagewallet"); +const QString RESCAN("-rescan"); +const QString ZAPTXES1("-zapwallettxes=1"); +const QString ZAPTXES2("-zapwallettxes=2"); +const QString UPGRADEWALLET("-upgradewallet"); +const QString REINDEX("-reindex"); +const QString RESYNC("-resync"); + +extern Qt::Modifier SHORT_KEY; + +bool openDialog(QDialog *widget, QWidget *gui); +void closeDialog(QDialog *widget, PIVXGUI *gui); +void openDialogFullScreen(QWidget *parent, QWidget * dialog); +bool openDialogWithOpaqueBackgroundY(QDialog *widget, PIVXGUI *gui, double posX = 3, int posY = 5); +bool openDialogWithOpaqueBackground(QDialog *widget, PIVXGUI *gui, double posX = 3); +bool openDialogWithOpaqueBackgroundFullScreen(QDialog *widget, PIVXGUI *gui); + +// +QPixmap encodeToQr(QString str, QString &errorStr, QColor qrColor = Qt::black); + +// Helpers +void updateStyle(QWidget* widget); +QColor getRowColor(bool isLightTheme, bool isHovered, bool isSelected); + +// Settings +QSettings* getSettings(); +void setupSettings(QSettings *settings); + +bool isLightTheme(); +void setTheme(bool isLight); + +void initComboBox(QComboBox* combo, QLineEdit* lineEdit = nullptr); + +void initCssEditLine(QLineEdit *edit, bool isDialog = false); +void setCssEditLine(QLineEdit *edit, bool isValid, bool forceUpdate = false); +void setCssEditLineDialog(QLineEdit *edit, bool isValid, bool forceUpdate = false); +void setShadow(QWidget *edit); + +void setCssBtnPrimary(QPushButton *btn, bool forceUpdate = false); +void setCssBtnSecondary(QPushButton *btn, bool forceUpdate = false); +void setCssTitleScreen(QLabel* label); +void setCssSubtitleScreen(QWidget* wid); +void setCssTextBodyDialog(std::initializer_list args); +void setCssTextBodyDialog(QWidget* widget); +void setCssProperty(std::initializer_list args, QString value); +void setCssProperty(QWidget *wid, QString value, bool forceUpdate = false); +void forceUpdateStyle(QWidget *widget, bool forceUpdate); +void forceUpdateStyle(std::initializer_list args); + +#endif // QTUTILS_H diff --git a/src/qt/pivx/receivedialog.cpp b/src/qt/pivx/receivedialog.cpp new file mode 100644 index 0000000..228f8e3 --- /dev/null +++ b/src/qt/pivx/receivedialog.cpp @@ -0,0 +1,81 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/receivedialog.h" +#include "qt/pivx/forms/ui_receivedialog.h" +#include "qt/pivx/qtutils.h" +#include "walletmodel.h" +#include + +ReceiveDialog::ReceiveDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::ReceiveDialog) +{ + ui->setupUi(this); + // Stylesheet + this->setStyleSheet(parent->styleSheet()); + + ui->frameContainer->setProperty("cssClass", "container-dialog"); + ui->frameContainer->setContentsMargins(10,10,10,10); + + + // Title + + ui->labelTitle->setText("My Address"); + ui->labelTitle->setProperty("cssClass", "text-title-dialog"); + + // Address + + ui->labelAddress->setText("D7VFR83SQbiezrW72hjcWJtcfip5krte2Z"); + ui->labelAddress->setProperty("cssClass", "label-address-box"); + + // QR image + + QPixmap pixmap(":/res/img/img-qr-test-big.png"); + ui->labelQrImg->setPixmap(pixmap.scaled( + ui->labelQrImg->width(), + ui->labelQrImg->height(), + Qt::KeepAspectRatio) + ); + + + // Buttons + ui->btnEsc->setText(""); + ui->btnEsc->setProperty("cssClass", "ic-close"); + + ui->btnCancel->setProperty("cssClass", "btn-dialog-cancel"); + ui->btnSave->setText("COPY"); + ui->btnSave->setProperty("cssClass", "btn-primary"); + ui->btnCancel->setVisible(false); + + + connect(ui->btnEsc, SIGNAL(clicked()), this, SLOT(close())); + connect(ui->btnSave, SIGNAL(clicked()), this, SLOT(onCopy())); +} + +void ReceiveDialog::updateQr(QString address){ + if(!info) info = new SendCoinsRecipient(); + info->address = address; + QString uri = GUIUtil::formatBitcoinURI(*info); + ui->labelQrImg->setText(""); + ui->labelAddress->setText(address); + QString error; + QPixmap pixmap = encodeToQr(uri, error); + if(!pixmap.isNull()){ + qrImage = &pixmap; + ui->labelQrImg->setPixmap(qrImage->scaled(ui->labelQrImg->width(), ui->labelQrImg->height())); + }else{ + ui->labelQrImg->setText(!error.isEmpty() ? error : "Error encoding address"); + } +} + +void ReceiveDialog::onCopy(){ + GUIUtil::setClipboard(info->address); + accept(); +} + +ReceiveDialog::~ReceiveDialog() +{ + delete ui; +} diff --git a/src/qt/pivx/receivedialog.h b/src/qt/pivx/receivedialog.h new file mode 100644 index 0000000..a9e54c6 --- /dev/null +++ b/src/qt/pivx/receivedialog.h @@ -0,0 +1,35 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef RECEIVEDIALOG_H +#define RECEIVEDIALOG_H + +#include +#include + +class SendCoinsRecipient; + +namespace Ui { +class ReceiveDialog; +} + +class ReceiveDialog : public QDialog +{ + Q_OBJECT + +public: + explicit ReceiveDialog(QWidget *parent = nullptr); + ~ReceiveDialog(); + + void updateQr(QString address); + +private slots: + void onCopy(); +private: + Ui::ReceiveDialog *ui; + QPixmap *qrImage; + SendCoinsRecipient *info = nullptr; +}; + +#endif // RECEIVEDIALOG_H diff --git a/src/qt/pivx/receivewidget.cpp b/src/qt/pivx/receivewidget.cpp new file mode 100644 index 0000000..c9c5e23 --- /dev/null +++ b/src/qt/pivx/receivewidget.cpp @@ -0,0 +1,277 @@ +// Copyright (c) 2019-2020 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/receivewidget.h" +#include "qt/pivx/forms/ui_receivewidget.h" +#include "qt/pivx/requestdialog.h" +#include "qt/pivx/addnewcontactdialog.h" +#include "qt/pivx/qtutils.h" +#include "qt/pivx/myaddressrow.h" +#include "qt/pivx/furlistrow.h" +#include "qt/pivx/addressholder.h" +#include "walletmodel.h" +#include "guiutil.h" +#include "pairresult.h" + +#include +#include +#include + +#define DECORATION_SIZE 70 +#define NUM_ITEMS 3 + +ReceiveWidget::ReceiveWidget(PIVXGUI* parent) : + PWidget(parent), + ui(new Ui::ReceiveWidget) +{ + ui->setupUi(this); + this->setStyleSheet(parent->styleSheet()); + + delegate = new FurAbstractListItemDelegate( + DECORATION_SIZE, + new AddressHolder(isLightTheme()), + this + ); + + // Containers + setCssProperty(ui->left, "container"); + ui->left->setContentsMargins(20,20,20,20); + setCssProperty(ui->right, "container-right"); + ui->right->setContentsMargins(0,9,0,0); + + // Title + ui->labelTitle->setText(tr("Receive")); + ui->labelSubtitle1->setText(tr("Scan the QR code or copy the address to receive PIV.")); + setCssTitleScreen(ui->labelTitle); + setCssSubtitleScreen(ui->labelSubtitle1); + + // Address + ui->labelAddress->setText(tr("No address ")); + setCssProperty(ui->labelAddress, "label-address-box"); + + ui->labelDate->setText("Dec. 19, 2018"); + setCssSubtitleScreen(ui->labelDate); + ui->labelLabel->setText(""); + setCssSubtitleScreen(ui->labelLabel); + + // Options + ui->btnMyAddresses->setTitleClassAndText("btn-title-grey", "My Addresses"); + ui->btnMyAddresses->setSubTitleClassAndText("text-subtitle", "List your own addresses."); + ui->btnMyAddresses->layout()->setMargin(0); + ui->btnMyAddresses->setRightIconClass("ic-arrow"); + + ui->btnRequest->setTitleClassAndText("btn-title-grey", "Create Request"); + ui->btnRequest->setSubTitleClassAndText("text-subtitle", "Request payment with a fixed amount."); + ui->btnRequest->layout()->setMargin(0); + + ui->pushButtonLabel->setText(tr("Add Label")); + ui->pushButtonLabel->setLayoutDirection(Qt::RightToLeft); + setCssProperty(ui->pushButtonLabel, "btn-secundary-label"); + + ui->pushButtonNewAddress->setText(tr("Generate Address")); + ui->pushButtonNewAddress->setLayoutDirection(Qt::RightToLeft); + setCssProperty(ui->pushButtonNewAddress, "btn-secundary-new-address"); + + ui->pushButtonCopy->setText(tr("Copy")); + ui->pushButtonCopy->setLayoutDirection(Qt::RightToLeft); + setCssProperty(ui->pushButtonCopy, "btn-secundary-copy"); + + // List Addresses + setCssProperty(ui->listViewAddress, "container"); + ui->listViewAddress->setItemDelegate(delegate); + ui->listViewAddress->setIconSize(QSize(DECORATION_SIZE, DECORATION_SIZE)); + ui->listViewAddress->setMinimumHeight(NUM_ITEMS * (DECORATION_SIZE + 2)); + ui->listViewAddress->setAttribute(Qt::WA_MacShowFocusRect, false); + ui->listViewAddress->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->listViewAddress->setUniformItemSizes(true); + + spacer = new QSpacerItem(40, 20, QSizePolicy::Maximum, QSizePolicy::Expanding); + ui->btnMyAddresses->setChecked(true); + ui->container_right->addItem(spacer); + ui->listViewAddress->setVisible(false); + + // Connect + connect(ui->pushButtonLabel, SIGNAL(clicked()), this, SLOT(onLabelClicked())); + connect(ui->pushButtonCopy, SIGNAL(clicked()), this, SLOT(onCopyClicked())); + connect(ui->pushButtonNewAddress, SIGNAL(clicked()), this, SLOT(onNewAddressClicked())); + connect(ui->listViewAddress, SIGNAL(clicked(QModelIndex)), this, SLOT(handleAddressClicked(QModelIndex))); + connect(ui->btnRequest, SIGNAL(clicked()), this, SLOT(onRequestClicked())); + connect(ui->btnMyAddresses, SIGNAL(clicked()), this, SLOT(onMyAddressesClicked())); +} + +void ReceiveWidget::loadWalletModel(){ + if(walletModel) { + this->addressTableModel = walletModel->getAddressTableModel(); + this->filter = new AddressFilterProxyModel(AddressTableModel::Receive, this); + this->filter->setSourceModel(addressTableModel); + ui->listViewAddress->setModel(this->filter); + ui->listViewAddress->setModelColumn(AddressTableModel::Address); + + if(!info) info = new SendCoinsRecipient(); + refreshView(); + + // data change + connect(this->addressTableModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(refreshView())); + } +} + +void ReceiveWidget::refreshView(QString refreshAddress){ + try { + QString latestAddress = (refreshAddress.isEmpty()) ? this->addressTableModel->getAddressToShow() : refreshAddress; + if (latestAddress.isEmpty()) { // new default address + CBitcoinAddress newAddress; + PairResult r = walletModel->getNewAddress(newAddress, "Default"); + // Check for generation errors + if (!r.result) { + ui->labelQrImg->setText(tr("No available address, try unlocking the wallet")); + inform(tr("Error generating address")); + return; + } + latestAddress = QString::fromStdString(newAddress.ToString()); + } + ui->labelAddress->setText(latestAddress); + int64_t time = walletModel->getKeyCreationTime(CBitcoinAddress(latestAddress.toStdString())); + ui->labelDate->setText(GUIUtil::dateTimeStr(QDateTime::fromTime_t(static_cast(time)))); + updateQr(latestAddress); + updateLabel(); + } catch (const std::runtime_error& error){ + ui->labelQrImg->setText(tr("No available address, try unlocking the wallet")); + inform(tr("Error generating address")); + } +} + +void ReceiveWidget::updateLabel(){ + if(!info->address.isEmpty()) { + // Check if address label exists + QString label = addressTableModel->labelForAddress(info->address); + if (!label.isEmpty()) { + ui->labelLabel->setVisible(true); + ui->labelLabel->setText(label); + ui->pushButtonLabel->setText(tr("Edit Label")); + }else{ + ui->labelLabel->setVisible(false); + } + } +} + +void ReceiveWidget::updateQr(QString address){ + info->address = address; + QString uri = GUIUtil::formatBitcoinURI(*info); + ui->labelQrImg->setText(""); + + QString error; + QColor qrColor("#382d4d"); + QPixmap pixmap = encodeToQr(uri, error, qrColor); + if(!pixmap.isNull()){ + qrImage = &pixmap; + ui->labelQrImg->setPixmap(qrImage->scaled(ui->labelQrImg->width(), ui->labelQrImg->height())); + }else{ + ui->labelQrImg->setText(!error.isEmpty() ? error : "Error encoding address"); + } +} + +void ReceiveWidget::handleAddressClicked(const QModelIndex &index){ + QModelIndex rIndex = filter->mapToSource(index); + refreshView(rIndex.data(Qt::DisplayRole).toString()); +} + +void ReceiveWidget::onLabelClicked(){ + if(walletModel && !isShowingDialog) { + isShowingDialog = true; + showHideOp(true); + AddNewContactDialog *dialog = new AddNewContactDialog(window); + dialog->setTexts(tr("Edit Address Label")); + dialog->setData(info->address, addressTableModel->labelForAddress(info->address)); + if (openDialogWithOpaqueBackgroundY(dialog, window, 3.5, 6)) { + QString label = dialog->getLabel(); + const CBitcoinAddress address = CBitcoinAddress(info->address.toUtf8().constData()); + if (!label.isEmpty() && walletModel->updateAddressBookLabels( + address.Get(), + label.toUtf8().constData(), + AddressBook::AddressBookPurpose::RECEIVE + ) + ) { + // update label status (icon color) + updateLabel(); + inform(tr("Address label saved")); + } else { + inform(tr("Error storing address label")); + } + } + isShowingDialog = false; + } +} + +void ReceiveWidget::onNewAddressClicked(){ + try { + if (!verifyWalletUnlocked()) return; + CBitcoinAddress address; + PairResult r = walletModel->getNewAddress(address, ""); + + // Check for validity + if(!r.result) { + inform(r.status->c_str()); + return; + } + + updateQr(QString::fromStdString(address.ToString())); + ui->labelAddress->setText(!info->address.isEmpty() ? info->address : tr("No address")); + updateLabel(); + inform(tr("New address created")); + } catch (const std::runtime_error& error){ + // Error generating address + inform("Error generating address"); + } +} + +void ReceiveWidget::onCopyClicked(){ + GUIUtil::setClipboard(info->address); + inform(tr("Address copied")); +} + + +void ReceiveWidget::onRequestClicked(){ + showAddressGenerationDialog(true); +} + +void ReceiveWidget::showAddressGenerationDialog(bool isPaymentRequest) { + if(walletModel && !isShowingDialog) { + if (!verifyWalletUnlocked()) return; + isShowingDialog = true; + showHideOp(true); + RequestDialog *dialog = new RequestDialog(window); + dialog->setWalletModel(walletModel); + dialog->setPaymentRequest(isPaymentRequest); + openDialogWithOpaqueBackgroundY(dialog, window, 3.5, 12); + if (dialog->res == 1){ + inform(tr("URI copied to clipboard")); + } else if (dialog->res == 2){ + inform(tr("Address copied to clipboard")); + } + dialog->deleteLater(); + isShowingDialog = false; + } +} + +void ReceiveWidget::onMyAddressesClicked(){ + bool isVisible = ui->listViewAddress->isVisible(); + if(!isVisible){ + ui->btnMyAddresses->setRightIconClass("btn-dropdown", true); + ui->listViewAddress->setVisible(true); + ui->container_right->removeItem(spacer); + ui->listViewAddress->update(); + }else{ + ui->btnMyAddresses->setRightIconClass("ic-arrow", true); + ui->container_right->addItem(spacer); + ui->listViewAddress->setVisible(false); + } +} + +void ReceiveWidget::changeTheme(bool isLightTheme, QString& theme){ + static_cast(this->delegate->getRowFactory())->isLightTheme = isLightTheme; +} + +ReceiveWidget::~ReceiveWidget(){ + delete ui; +} diff --git a/src/qt/pivx/receivewidget.h b/src/qt/pivx/receivewidget.h new file mode 100644 index 0000000..0a661a5 --- /dev/null +++ b/src/qt/pivx/receivewidget.h @@ -0,0 +1,71 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef RECEIVEWIDGET_H +#define RECEIVEWIDGET_H + +#include "qt/pivx/pwidget.h" +#include "addresstablemodel.h" +#include "qt/pivx/furabstractlistitemdelegate.h" +#include "qt/pivx/addressfilterproxymodel.h" + +#include +#include +#include + +class PIVXGUI; +class SendCoinsRecipient; + +namespace Ui { +class ReceiveWidget; +} + +QT_BEGIN_NAMESPACE +class QModelIndex; +QT_END_NAMESPACE + +class ReceiveWidget : public PWidget +{ + Q_OBJECT + +public: + explicit ReceiveWidget(PIVXGUI* parent); + ~ReceiveWidget(); + + void loadWalletModel() override; + +public slots: + void onRequestClicked(); + void onMyAddressesClicked(); + void onNewAddressClicked(); + +private slots: + void changeTheme(bool isLightTheme, QString &theme) override ; + void onLabelClicked(); + void onCopyClicked(); + void refreshView(QString refreshAddress = QString()); + void handleAddressClicked(const QModelIndex &index); +private: + Ui::ReceiveWidget *ui; + + FurAbstractListItemDelegate *delegate; + AddressTableModel* addressTableModel = nullptr; + AddressFilterProxyModel *filter = nullptr; + + QSpacerItem *spacer = nullptr; + + // Cached last address + SendCoinsRecipient *info = nullptr; + // Cached qr + QPixmap *qrImage = nullptr; + + void updateQr(QString address); + void updateLabel(); + void showAddressGenerationDialog(bool isPaymentRequest); + + bool isShowingDialog = false; + +}; + +#endif // RECEIVEWIDGET_H diff --git a/src/qt/pivx/requestdialog.cpp b/src/qt/pivx/requestdialog.cpp new file mode 100644 index 0000000..f13a65a --- /dev/null +++ b/src/qt/pivx/requestdialog.cpp @@ -0,0 +1,197 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "qt/pivx/requestdialog.h" +#include "qt/pivx/forms/ui_requestdialog.h" +#include + +#include "qt/pivx/qtutils.h" +#include "guiutil.h" +#include "amount.h" +#include "pairresult.h" +#include "optionsmodel.h" + +RequestDialog::RequestDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::RequestDialog) +{ + ui->setupUi(this); + + this->setStyleSheet(parent->styleSheet()); + setCssProperty(ui->frame, "container-dialog"); + + // Text + ui->labelTitle->setText(tr("New Payment Request")); + setCssProperty(ui->labelTitle, "text-title-dialog"); + + ui->labelMessage->setText(tr("Instead of sharing only a PIVX address, you can create a payment request, bundling up more information.")); + setCssProperty(ui->labelMessage, "text-main-grey"); + + // Combo Coins + setCssProperty(ui->comboBoxCoin, "btn-combo-coins"); + setCssProperty(ui->comboContainer, "container-purple"); + + // Label + ui->labelSubtitleLabel->setText(tr("Label")); + setCssProperty(ui->labelSubtitleLabel, "text-title2-dialog"); + ui->lineEditLabel->setPlaceholderText(tr("Enter a label for the address")); + setCssEditLineDialog(ui->lineEditLabel, true); + + // Amount + ui->labelSubtitleAmount->setText(tr("Amount")); + setCssProperty(ui->labelSubtitleAmount, "text-title2-dialog"); + ui->lineEditAmount->setPlaceholderText("0.00 PIV"); + setCssEditLineDialog(ui->lineEditAmount, true); + GUIUtil::setupAmountWidget(ui->lineEditAmount, this); + + // Description + ui->labelSubtitleDescription->setText(tr("Description (optional)")); + setCssProperty(ui->labelSubtitleDescription, "text-title2-dialog"); + + ui->lineEditDescription->setPlaceholderText(tr("Enter description")); + setCssEditLineDialog(ui->lineEditDescription, true); + + // Stack + ui->stack->setCurrentIndex(pos); + // Request QR Page + // Address + ui->labelAddress->setText(tr("Error")); + setCssProperty(ui->labelAddress, "text-main-grey-big"); + + // Buttons + setCssProperty(ui->btnEsc, "ic-close"); + setCssProperty(ui->btnCancel, "btn-dialog-cancel"); + ui->btnSave->setText(tr("GENERATE")); + setCssBtnPrimary(ui->btnSave); + setCssBtnPrimary(ui->btnCopyAddress); + setCssBtnPrimary(ui->btnCopyUrl); + + connect(ui->btnCancel, SIGNAL(clicked()), this, SLOT(close())); + connect(ui->btnEsc, SIGNAL(clicked()), this, SLOT(close())); + connect(ui->btnSave, SIGNAL(clicked()), this, SLOT(onNextClicked())); + // TODO: Change copy address for save image (the method is already implemented in other class called exportQr or something like that) + connect(ui->btnCopyAddress, SIGNAL(clicked()), this, SLOT(onCopyClicked())); + connect(ui->btnCopyUrl, SIGNAL(clicked()), this, SLOT(onCopyUriClicked())); +} + +void RequestDialog::setWalletModel(WalletModel *model){ + this->walletModel = model; +} + +void RequestDialog::setPaymentRequest(bool isPaymentRequest) { + this->isPaymentRequest = isPaymentRequest; + if (!this->isPaymentRequest) { + ui->labelMessage->setText(tr("Creates an address to receive coin delegations and be able to stake them.")); + ui->labelTitle->setText(tr("New Cold Staking Address")); + ui->labelSubtitleAmount->setText(tr("Amount (optional)")); + } +} + +void RequestDialog::onNextClicked(){ + if(walletModel) { + + QString labelStr = ui->lineEditLabel->text(); + + //Amount + int displayUnit = walletModel->getOptionsModel()->getDisplayUnit(); + bool isValueValid = true; + CAmount value = (ui->lineEditAmount->text().isEmpty() ? + 0 : + GUIUtil::parseValue(ui->lineEditAmount->text(), displayUnit, &isValueValid) + ); + + if (!this->isPaymentRequest) { + // Add specific checks for cold staking address creation + if (labelStr.isEmpty()) { + inform("Address label cannot be empty"); + return; + } + } + + if (value < 0 || !isValueValid) { + inform("Invalid amount"); + return; + } + + info = new SendCoinsRecipient(); + info->label = labelStr; + info->amount = value; + info->message = ui->lineEditDescription->text(); + + // address + std::string label = info->label.isEmpty() ? "" : info->label.toStdString(); + QString title; + + CBitcoinAddress address; + PairResult r(false); + if (this->isPaymentRequest) { + r = walletModel->getNewAddress(address, label); + title = "Request for " + BitcoinUnits::format(displayUnit, value, false, BitcoinUnits::separatorAlways) + " PIV"; + } else { + r = walletModel->getNewStakingAddress(address, label); + title = "Cold Staking Address Generated"; + } + + if (!r.result) { + // TODO: notify user about this error + close(); + return; + } + + info->address = QString::fromStdString(address.ToString()); + ui->labelTitle->setText(title); + + updateQr(info->address); + ui->labelAddress->setText(info->address); + ui->buttonsStack->setVisible(false); + pos = 1; + ui->stack->setCurrentIndex(pos); + } +} + +void RequestDialog::onCopyClicked(){ + if(info) { + GUIUtil::setClipboard(info->address); + res = 2; + accept(); + } +} + +void RequestDialog::onCopyUriClicked(){ + if(info) { + GUIUtil::setClipboard(GUIUtil::formatBitcoinURI(*info)); + res = 1; + accept(); + } +} + +void RequestDialog::showEvent(QShowEvent *event) +{ + if (ui->lineEditAmount) ui->lineEditAmount->setFocus(); +} + +void RequestDialog::updateQr(QString str){ + QString uri = GUIUtil::formatBitcoinURI(*info); + ui->labelQrImg->setText(""); + QString error; + QPixmap pixmap = encodeToQr(uri, error); + if(!pixmap.isNull()){ + qrImage = &pixmap; + ui->labelQrImg->setPixmap(qrImage->scaled(ui->labelQrImg->width(), ui->labelQrImg->height())); + }else{ + ui->labelQrImg->setText(!error.isEmpty() ? error : "Error encoding address"); + } +} + +void RequestDialog::inform(QString text){ + if (!snackBar) + snackBar = new SnackBar(nullptr, this); + snackBar->setText(text); + snackBar->resize(this->width(), snackBar->height()); + openDialog(snackBar, this); +} + +RequestDialog::~RequestDialog(){ + delete ui; +} diff --git a/src/qt/pivx/requestdialog.h b/src/qt/pivx/requestdialog.h new file mode 100644 index 0000000..9c542f4 --- /dev/null +++ b/src/qt/pivx/requestdialog.h @@ -0,0 +1,53 @@ +// Copyright (c) 2019 The PIVX developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef REQUESTDIALOG_H +#define REQUESTDIALOG_H + +#include +#include +#include "walletmodel.h" +#include "qt/pivx/snackbar.h" + +class WalletModel; +class PIVXGUI; + +namespace Ui { +class RequestDialog; +} + +class RequestDialog : public QDialog +{ + Q_OBJECT + +public: + explicit RequestDialog(QWidget *parent = nullptr); + ~RequestDialog(); + + void setWalletModel(WalletModel *model); + void setPaymentRequest(bool isPaymentRequest); + void showEvent(QShowEvent *event) override; + int res = -1; + +private slots: + void onNextClicked(); + void onCopyClicked(); + void onCopyUriClicked(); + +private: + Ui::RequestDialog *ui; + int pos = 0; + bool isPaymentRequest = true; + WalletModel *walletModel; + SnackBar *snackBar = nullptr; + // Cached last address + SendCoinsRecipient *info = nullptr; + + QPixmap *qrImage = nullptr; + + void updateQr(QString str); + void inform(QString text); +}; + +#endif // REQUESTDIALOG_H diff --git a/src/qt/pivx/res/css/style_dark.css b/src/qt/pivx/res/css/style_dark.css new file mode 100644 index 0000000..7aa1b5d --- /dev/null +++ b/src/qt/pivx/res/css/style_dark.css @@ -0,0 +1,3287 @@ +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH CONTAINER +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container"] { + background-color:#0f0b16; +} + +*[cssClass="container-border"] { + background-color:#0f0b16; + border: 1px solid #0f0b16; +} + +*[cssClass="container-border-light"] { + background-color:#0f0b16; + border: 1px solid #33FFFFFF; + border-radius:2px; +} + +*[cssClass="container_right"] { + background-color:#0f0b16; + border-left: 1px solid #33FFFFFF; +} + +*[cssClass="container-right"] { + background-color:#0f0b16; + border-left: 1px solid #33FFFFFF; +} + +*[cssClass="container-square"] { + background-color:#0f0b16; + border: 1px solid #33FFFFFF; +} + +*[cssClass="container-options"] { + background-color:#0f0b16; + border-bottom: 1px solid #bababa; +} + +*[cssClass="container-divider"] { + background-color:#B3FFFFFF; +} + +*[cssClass="container-purple"] { + background-color:#5c4b7d; + border: 0; +} + +*[cssClass="container-border-purple"] { + background-color:#0f0b16; + border: 1px solid #5c4b7d; + border-radius:2px; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH NAVIGATION +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container-nav"] { + background-color: qlineargradient(y1:0, y2: 1, stop: 0 #0f0b16, stop: 1 #4f3c74); +} + +QPushButton[cssClass="img-nav-logo"] { + qproperty-icon: url("://img-nav-logo"); + qproperty-iconSize: 49px 60px; +} + +*[cssClass="btn-nav-receive"] { + qproperty-icon: url("://ic-nav-receive") off, + url("://ic-nav-receive-active") on; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-receive"]:checked { + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-receive"]:checked:hover { + background-color: #0f0b16; + color: #B088FF; +} + +*[cssClass="btn-nav-receive"]:hover { + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-receive-active"] { + qproperty-icon:url("://ic-nav-receive-active") ; + qproperty-iconSize: 24px 40px; + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +!############# Cold staking Nav + ################################*/ + +*[cssClass="btn-nav-cold-staking"] { + qproperty-icon: url("://ic-nav-cold-staking") off, + url("://ic-nav-cold-staking-active") on; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-cold-staking"]:checked { + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-cold-staking"]:checked:hover { + background-color: #0f0b16; + color: #B088FF; +} + +*[cssClass="btn-nav-cold-staking"]:hover { + qproperty-icon: url("://ic-nav-cold-staking-hover"); + qproperty-iconSize: 24px 40px; + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-cold-staking-active"] { + qproperty-icon:url("://ic-nav-cold-staking-active") ; + qproperty-iconSize: 24px 40px; + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +!############# + ################################*/ + +/******************* +******cold staking top bar********* + ********************/ + +QPushButton[cssClass="btn-check-cold-staking"] { + qproperty-icon: url("://ic-check-cold-staking"); + qproperty-iconSize: 24px 24px; + color:#ffffff; + background-color:#505c4b7d; + border-bottom:2px solid #5C4B7D; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-cold-staking-inactive"] { + qproperty-icon: url("://ic-check-cold-staking-off"); + qproperty-iconSize: 24px 24px; + color:#B3FFFFFF; + background-color:#405c4b7d; + border-bottom:2px solid #5C4B7D; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-cold-staking-checked"] { + qproperty-icon: url("://ic-check-cold-staking-enabled"); + qproperty-iconSize: 24px 24px; + background-color:#505c4b7d; + color:#ffffff; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-cold-staking-unchecked"] { + qproperty-icon: url("://ic-check-cold-staking-enabled"); + qproperty-iconSize: 24px 24px; + color:#B3FFFFFF; + background-color:#405c4b7d; + border-bottom:2px solid #5C4B7D; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-cold-staking"]:checked { + qproperty-icon: url("://ic-check-cold-staking-enabled"); + qproperty-iconSize: 24px 24px; + background-color:#505c4b7d; + color:#ffffff; + border-bottom:2px solid #b088ff; +} + +/******************* +******end cold staking********* + ********************/ + +*[cssClass="btn-nav-settings"] { + qproperty-icon: url("://ic-nav-settings") off, + url("://ic-nav-settings-active") on; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-settings"]:checked { + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-settings"]:checked:hover { + background-color: #0f0b16; + color: #B088FF; +} + +*[cssClass="btn-nav-settings"]:hover { + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-settings-active"] { + qproperty-icon:url("://ic-nav-settings-active") ; + qproperty-iconSize: 24px 40px; + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-dash"] { + qproperty-icon: url("://ic-nav-dashboard") off, + url("://ic-nav-dashboard-active") on ; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-dash"]:checked { + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-dash"]:checked:hover { + background-color: #0f0b16; + color: #B088FF; +} + + +*[cssClass="btn-nav-dash"]:hover { + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-dash-active"] { + qproperty-icon:url("://ic-nav-dashboard-active"); + qproperty-iconSize: 24px 40px; + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-send"] { + qproperty-icon: url("://ic-nav-send") off, + url("://ic-nav-send") on ; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-send"]:checked { + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-send"]:checked:hover { + background-color: #0f0b16; + color: #B088FF; +} + +*[cssClass="btn-nav-send"]:hover { + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-send-active"] { + qproperty-icon:url("://ic-nav-send-active") ; + qproperty-iconSize: 24px 40px; + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-address"] { + qproperty-icon: url("://ic-nav-address") off, + url("://ic-nav-address-active") on ; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-address"]:checked { + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-address"]:checked:hover { + background-color: #0f0b16; + color: #B088FF; +} + +*[cssClass="btn-nav-address"]:hover { + background-color: #1A000000; + color: #938da5; +} + + +*[cssClass="btn-nav-address-active"] { + qproperty-icon:url("://ic-nav-address-active") ; + qproperty-iconSize: 24px 40px; + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-privacy"] { + qproperty-icon: url("://ic-nav-privacy") off, + url("//ic-nav-privacy-active") on ; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-privacy"]:checked { + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-privacy"]:checked:hover { + background-color: #0f0b16; + color: #B088FF; +} + +*[cssClass="btn-nav-privacy"]:hover { + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-privacy-active"] { + qproperty-icon:url("://ic-nav-privacy-active") ; + qproperty-iconSize: 24px 40px; + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-master"] { + qproperty-icon: url("://ic-nav-master") off, + url("://ic-nav-master-active") on; + qproperty-iconSize: 24px 30px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-master"]:checked { + qproperty-icon: url("://ic-nav-master-active"); + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-master"]:checked:hover { + background-color: #0f0b16; + color: #B088FF; +} + +*[cssClass="btn-nav-master"]:hover { + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-master-active"] { + qproperty-icon:url("://ic-nav-master-active"); + qproperty-iconSize: 24px 30px; + background-color: #0f0b16; + font-size:14px; + color: #B088FF; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH TOP BAR +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container-top"] { + background-color:#000000; + border-image: url("://bg-dashboard-banner") 0 0 0 0 stretch stretch; +} + +*[cssClass="container-topbar-no-image"] { + background-color:#000000; +} + +*[cssClass="text-title-topbar"] { + color:#a3a3a4; + font-size:16px; + font-weight: ligther; +} + +*[cssClass="amount-topbar"] { + color:#FFFFFF; + font-size:35px; +} + +*[cssClass="amount-small-topbar"] { + color:#FFFFFF; + font-size:22px; +} + +*[cssClass="container-qr"] { + border-radius: 2px; + background-color: #bb241a3c; +} + +QPushButton[cssClass="btn-qr"] { + qproperty-icon: url("://ic-arrow-drop-down-white"); + qproperty-iconSize: 24px 24px; + background-color:transparent; +} + +*[cssClass="sync-status"] { + background-color:#505c4b7d; + color:#FFFFFF; + border-bottom:2px solid #b088ff; + padding-right:10px; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-faq"] { + qproperty-icon: url("://ic-check-faq"); + qproperty-iconSize: 24px 24px; + background-color:#505c4b7d; + color:#FFFFFF; + padding-right:6px; + padding-left:6px; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-faq-inactive"] { + qproperty-icon: url("://ic-check-faq") ; + qproperty-iconSize: 24px 24px; + background-color:#505c4b7d; + color:#FFFFFF; + padding-right:6px; + padding-left:6px; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-faq"]:checked { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-sync"] { + qproperty-icon: url("://ic-check-sync"); + qproperty-iconSize: 24px 24px; + background-color:#505c4b7d; + color:#FFFFFF; + padding-right:6px; + padding-left:6px; + border-bottom:2px solid #505c4b7d; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-sync-inactive"] { + qproperty-icon: url("://ic-check-sync-off") ; + qproperty-iconSize: 24px 24px; + background-color:#505c4b7d; + color:#FFFFFF; + padding-right:6px; + padding-left:6px; + border-bottom:2px solid #505c4b7d; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-sync"]:checked { + background-color:#505c4b7d; + border-bottom:2px solid #505c4b7d; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-mint"] { + qproperty-icon: url("://ic-check-mint") ; + qproperty-iconSize: 24px 24px; + background-color:#405c4b7d; + color:#FFFFFF; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-mint-inactive"] { + qproperty-icon: url("://ic-check-mint-off") ; + qproperty-iconSize: 24px 24px; + background-color:#405c4b7d; + color:#B3FFFFFF; + border-bottom:2px solid #5C4B7D; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-mint"]:checked { + background-color:#505c4b7d; + color:#ffffff; + border-bottom:2px solid #b088ff; +} + + +QPushButton[cssClass="btn-check-stack"] { + qproperty-icon: url("://ic-check-staking"); + qproperty-iconSize: 24px 24px; + color:#ffffff; + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-stack-inactive"] { + qproperty-icon: url("://ic-check-staking-off"); + qproperty-iconSize: 24px 24px; + color:#B3FFFFFF; + background-color:#405c4b7d; + border-bottom:2px solid #5C4B7D; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-stack"]:checked { + background-color:#505c4b7d; + color:#ffffff; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-connect"] { + qproperty-icon: url("://ic-check-connect") ; + qproperty-iconSize: 24px 24px; + color:#ffffff; + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-connect-inactive"] { + qproperty-icon: url("://ic-check-connect-off"); + qproperty-iconSize: 24px 24px; + color:#B3FFFFFF; + background-color:#405c4b7d; + border-bottom:2px solid #5C4B7D; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-connect"]:checked { + background-color:#505c4b7d; + color:#ffffff; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-status-lock"] { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + qproperty-icon: url("://ic-wallet-status-locked") off, + url("://ic-wallet-status-locked") on ; + qproperty-iconSize: 24px 24px; + color:#ffffff; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-status-unlock"] { + background-color:#405c4b7d; + border-bottom:2px solid #5C4B7D; + qproperty-icon: url("://ic-wallet-status-unlocked") off, + url("://ic-wallet-status-unlocked") on ; + qproperty-iconSize: 24px 24px; + color:#B3FFFFFF; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-status-staking"] { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + qproperty-icon: url("://ic-wallet-status-staking") off, + url("://ic-wallet-status-staking") on ; + qproperty-iconSize: 24px 24px; + color:#ffffff; + border-radius:2px; +} + + + +QPushButton[cssClass="btn-check-text"] { + color:#7f7c87; + background-color:#372A4C; + font-size:18px; + border-bottom:2px solid #5C4B7D; +} + +QPushButton[cssClass="btn-check-text"]:checked { + color:#FFFFFF; + background-color:#5c4b7d; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-text-theme"] { + color:#FFFFFF; + background-color:#405c4b7d; + font-size:18px; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-text-theme"]:checked { + color:#FFFFFF; + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-theme"] { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + qproperty-icon: url("://ic-check-theme-dark") off, + url("://ic-check-theme-light") on ; + qproperty-iconSize: 24px 24px; + color:white; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-theme-dark"] { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + qproperty-icon: url("://ic-check-theme-dark") off, + url("://ic-check-theme-dark") on ; + qproperty-iconSize: 24px 24px; + color:white; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-theme-light"] { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + qproperty-icon: url("://ic-check-theme-light") off, + url("://ic-check-theme-light") on ; + qproperty-iconSize: 24px 24px; + color:white; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-theme"]:checked { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-peers"] { + qproperty-icon: url("://ic-check-peers") ; + qproperty-iconSize: 24px 24px; + color:#FFFFFF; + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-peers"]:checked { + background-color:#505c4b7d; + color:#FFFFFF; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-peers-inactive"] { + qproperty-icon: url("://ic-check-peers-off"); + qproperty-iconSize: 24px 24px; + color:#B3FFFFFF; + background-color:#405c4b7d; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + + + +QPushButton[cssClass="btn-check-lock-sub-menu-unlocked"] { + background-image: url("://ic-submenu-unlock"); + background-position:left center; + background-repeat:no-repeat; + background-color: transparent; + text-align: left; + padding-left: 30px; + color:#B3FFFFFF; + border-bottom:0px; + border-radius:0px; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-unlocked"]:checked { + background-color:#50b088ff; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-unlocked"]:hover { + color:#FFFFFF; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-locked"] { + background-image: url("://ic-submenu-lock"); + background-position:left center; + background-repeat:no-repeat; + background-color: transparent; + text-align: left; + padding-left: 30px; + color:#B3FFFFFF; + border-bottom:0px; + border-radius:0px; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-locked"]:checked { + background-color:#50b088ff; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-locked"]:hover { + color:#FFFFFF; +} + + +QPushButton[cssClass="btn-check-lock-sub-menu-staking"] { + background-image: url("://ic-submenu-staking"); + background-position:left center; + background-repeat:no-repeat; + background-color: transparent; + text-align: left; + padding-left: 30px; + color:#B3FFFFFF; + border-bottom:0px; + border-radius:0px; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-staking"]:checked { + background-color:#50b088ff; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-staking"]:hover { + color:#FFFFFF; +} + + +*[cssClass="top-sub-menu"] { + background-color:#4C425F; +} + + +*[cssClass="top-sub-menu-text"] { + color:#B3FFFFFF; +} + +QProgressBar[cssClass="progress-sync"] { + border: 0; + background-color: transparent; +} + +QProgressBar[cssClass="progress-sync"]::chunk:horizontal { + background: qlineargradient(x1: 0, + y1: 0.5, + x2: 1, + y2: 0.5, + stop: 0 #b088ff, + stop: 1 #b088ff, + stop: 2 #b088ff,); +} + + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH LISTS ELEMENTS +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="text-list-title-purple"] { + color:#b088ff; + font-size:20px; +} + +*[cssClass="text-list-title1"] { + color:#b088ff; + font-size:16px; +} + +*[cssClass="text-list-contact-title1"] { + color:#5c4b7d; + font-size:16px; +} + +*[cssClass="text-list-title1"] { + color:#5c4b7d; + font-size:16px; +} + +*[cssClass="text-list-body1-purple"] { + color:#b088ff; + font-size:14px; +} + +*[cssClass="text-list-body1"] { + color:#E6FFFFFF; + font-size:16px; +} + +*[cssClass="text-list-body-unconfirmed"] { + color:#B6B6B6; + font-size:16px; +} + +*[cssClass="text-list-body2"] { + color:#ffffff; + font-size:15.5px; +} + +*[cssClass="text-list-contact-body1"] { + color:#ffffff; + font-size:16px; +} + + +*[cssClass="text-list-body1-grey"] { + color:#E6FFFFFF; + font-size:16px; +} + +*[cssClass="text-list-body2-grey"] { + color:#E6FFFFFF; + font-size:14px; +} + +*[cssClass="text-list-caption"] { + color:#B3FFFFFF; + font-size:12px; +} + +*[cssClass="text-list-caption-medium"] { + color:#B3FFFFFF; + font-size:14px; +} + +*[cssClass="text-list-caption-medium-green"] { + color:#008d36; + font-size:14px; +} + +*[cssClass="text-list-caption-unconfirmed"] { + color:#B6B6B6; +} + +*[cssClass="text-list-caption-grey"] { + color:#FFFFFF; + font-size:12px; +} + + +*[cssClass="text-list-amount-receive"] { + color:#008d36; + font-size:16px; +} + + +*[cssClass="text-list-amount-send"] { + color:#f84444; + font-size:16px; +} + +*[cssClass="text-list-amount-unconfirmed"] { + color:#B6B6B6; + font-size:16px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH TEXT +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="text-title-screen"] { + color:#b088ff; + font-size:22px; +} + +*[cssClass="text-title-dialog"] { + color:#5c4b7d; + font-size:22px; +} + +*[cssClass="text-title"] { + color:#b088ff; + font-size:16px; +} + +*[cssClass="text-title-right"] { + color:#b088ff; + font-size:14px; +} + +*[cssClass="text-title-white"] { + color:#FFFFFF; + font-size:16px; +} + +*[cssClass="text-content-white"] { + color:#FFFFFF; + font-size:16px; +} + +*[cssClass="btn-title-grey"] { + color:#FFFFFF; + font-size:22px; +} + +*[cssClass="btn-title-purple"] { + color:#5c4b7d; + font-size:22px; +} + +*[cssClass="btn-subtitle-grey"] { + color:#FFFFFF; + font-size:17px; +} + +*[cssClass="text-subtitle"] { + color:#B3FFFFFF; + font-size:14px; +} + +*[cssClass="text-body2-grey"] { + color:#707070; + font-size:14px; +} + + +*[cssClass="text-body1"] { + color:#FFFFFF; + font-size:17px; +} + +*[cssClass="text-body2"] { + color:#FFFFFF; + font-size:14px; +} + +*[cssClass="text-main-light"] { + color:#B3FFFFFF; + font-size:17px; +} + +*[cssClass="text-main-grey"] { + color:#FFFFFF; + font-size:17px; +} + + +*[cssClass="text-main-settings"] { + color:#FFFFFF; + font-size:18px; +} + +*[cssClass="text-main-purple"] { + color:#b088ff; + font-size:17px; +} + +*[cssClass="text-title-purple"] { + color:#5c4b7d; + font-size:22px; +} + +*[cssClass="text-main-grey-big"] { + color:#FFFFFF; + font-size:24px; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH BUTTONS +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +#groupBox { + background-color:transparent; + border-radius:0; +} + +*[cssClass="group-box"] { + background-color:transparent; + border-radius:0; +} + +QGroupBox::title { + color:#b088ff; + font-size:16px; + padding-bottom:9px; +} + +QPushButton[cssClass="btn-watch-password"] { + background: url("://ic-watch-password-white"); + background-repeat:no-repeat; + background-position:center; + background-color: transparent; + border:0; +} + + +QPushButton[cssClass="btn-menu"] { + qproperty-icon: url("://ic-menu-hover") off, + url("://ic-menu-hover") on ; + qproperty-iconSize: 24px 24px; +} + +QPushButton[cssClass="btn-dropdown"] { + qproperty-icon: url("://ic-arrow-drop-down-white") off, + url("://ic-arrow-drop-down-white") on ; + qproperty-iconSize: 24px 24px; +} + +QPushButton[cssClass="btn-dropdown"]:checked { + qproperty-icon: url("://ic-arrow-drop-up") off, + url("://ic-arrow-drop-up") on ; + qproperty-iconSize: 24px 24px; +} + +QPushButton[cssClass="btn-switch"] { + background-image: url("://ic-switch-off"); + background-position:right center; + background-repeat:no-repeat; + background-color:#0f0b16; + font-size:18px; + text-align:left; + color: #bababa; +} + +QPushButton[cssClass="btn-switch"]:checked { + background-image: url("://ic-switch-liliac-on"); + background-position:right center; + background-repeat:no-repeat; + background-color:#0f0b16; + text-align:left; + font-size:18px; + color: #b088ff; +} + +QPushButton[cssClass="btn-check"] { + border: 1px solid #5c4b7d; + background-color:#0f0b16; + padding:4px; + font-size:18px; + color: #707070; + border-radius: 2px; +} + +QPushButton[cssClass="btn-check"]:hover { + border: 1px solid #5c4b7d; + background-color:#0f0b16; + font-size:18px; + padding:4px; + color: #707070; + border-radius: 2px; +} + +QPushButton[cssClass="btn-check"]:pressed { + border: 1px solid #5c4b7d; + background-color:#0f0b16; + font-size:18px; + padding:4px; + color: #707070; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-check-right"] { + border: 1px solid #5c4b7d; + background-color:#0f0b16; + font-size:18px; + color: #707070; + border-top-right-radius:2px; + border-bottom-right-radius:2px; +} + + +QPushButton[cssClass="btn-check-right"]:hover { + border: 1px solid #b088ff; + background-color:#0f0b16; + font-size:18px; + color: #707070; + border-top-right-radius:2px; + border-bottom-right-radius:2px; +} + +QPushButton[cssClass="btn-check-right"]:pressed { + border: 1px solid #5c4b7d; + background-color:#4Db088ff; + font-size:18px; + color: #707070; + border-top-right-radius:2px; + border-bottom-right-radius:2px; +} + + +QPushButton[cssClass="btn-check-right"]:checked { + border: 1px solid #5c4b7d; + background-color:#5c4b7d; + font-size:18px; + color: #FFFFFF; + border-top-right-radius:2px; + border-bottom-right-radius:2px; +} + +QPushButton[cssClass="btn-check-right"]:checked:hover { + border: 1px solid #886fb7; + background-color:#886fb7; + font-size:18px; + padding:4px; + color: #FFFFFF; + border-top-right-radius:2px; + border-bottom-right-radius:2px; +} + +QPushButton[cssClass="btn-check-right"]:checked:pressed { + border: 1px solid #20192e; + background-color:#20192e; + font-size:18px; + padding:4px; + color: #b088ff; + border-top-right-radius:2px; + border-bottom-right-radius:2px; +} + + +QPushButton[cssClass="btn-check-left"] { + border: 1px solid #5c4b7d; + background-color:#0f0b16; + font-size:18px; + color: #707070; + border-top-left-radius:2px; + border-bottom-left-radius:2px; +} + + +QPushButton[cssClass="btn-check-left"]:hover { + border: 1px solid #b088ff; + background-color:#0f0b16; + font-size:18px; + color: #707070; + border-top-left-radius:2px; + border-bottom-left-radius:2px; +} + +QPushButton[cssClass="btn-check-left"]:pressed { + border: 1px solid #5c4b7d; + background-color:#4Db088ff; + font-size:18px; + color: #707070; + border-top-left-radius:2px; + border-bottom-left-radius:2px; +} + + +QPushButton[cssClass="btn-check-left"]:checked { + border: 1px solid #5c4b7d; + background-color:#5c4b7d; + font-size:18px; + color: #FFFFFF; + border-top-left-radius:2px; + border-bottom-left-radius:2px; +} + +QPushButton[cssClass="btn-check-left"]:checked:hover { + border: 1px solid #886fb7; + background-color:#886fb7; + font-size:18px; + padding:4px; + color: #FFFFFF; + border-top-left-radius:2px; + border-bottom-left-radius:2px; +} + +QPushButton[cssClass="btn-check-left"]:checked:pressed { + border: 1px solid #1c122e; + background-color:#1c122e; + font-size:18px; + padding:4px; + color: #b088ff; + border-top-left-radius:2px; + border-bottom-left-radius:2px; +} + + +QPushButton[cssClass="btn-check"]:checked { + border: 1px solid #5c4b7d; + background-color:#5c4b7d; + padding:4px; + font-size:18px; + color: #FFFFFF; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-check"]:checked:hover { + border: 1px solid #5c4b7d; + background-color:#5c4b7d; + font-size:18px; + padding:4px; + color: #FFFFFF; + border-radius: 2px; +} + +QPushButton[cssClass="btn-check"]:checked:pressed { + border: 1px solid #44375f; + background-color:#5c4b7d; + font-size:18px; + padding:4px 10px; + color: #FFFFFF; + border-radius: 2px; +} + +QPushButton[cssClass="btn-check"]:unchecked { + border: 1px solid #5c4b7d; + background-color:#0f0b16; + font-size:18px; + padding:4px; + color: #707070; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-primary"] { + border: 1px solid #5c4b7d; + background-color:#5c4b7d; + font-size:18px; + padding:4px 10px; + color: #FFFFFF; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-primary"]:hover { + border: 1px solid #44375f; + background-color:#44375f; + font-size:18px; + padding:4px 10px; + color: #FFFFFF; + border-radius: 2px; +} + +QPushButton[cssClass="btn-primary"]:pressed { + border: 1px solid #1c122e; + background-color:#1c122e; + font-size:18px; + padding:4px 10px; + color: #b088ff; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-secundary"] { + border: 1px solid #5c4b7d; + background-color:#0f0b16; + font-size:18px; + padding:4px 10px; + color: #b088ff; + border-radius: 2px; +} + +QPushButton[cssClass="btn-secundary"]:hover { + border: 1px solid #b088ff; + background-color:#0f0b16; + font-size:18px; + padding:4px 10px; + color: #b088ff; + border-radius: 2px; +} + +QPushButton[cssClass="btn-secundary"]:pressed { + border: 1px solid #b088ff; + background-color:#4Db088ff; + font-size:18px; + padding:4px 10px; + color: #b088ff; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-edit-primary"] { + border: 1px solid #bababa; + background-color:#0f0b16; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #FFFFFF; + text-align:left; +} + +QPushButton[cssClass="btn-edit-primary-folder"] { + border: 1px solid #bababa; + background-image: url("://ic-folder"); + background-position:right center; + background-repeat:no-repeat; + background-color:#0f0b16; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #FFFFFF; + text-align:left; +} + +*[cssClass="edit-primary-book"] { + border: 1px solid #bababa; + background-image: url("://ic-address-book-white"); + background-position:right center; + background-repeat:no-repeat; + background-color:#0f0b16; + font-size:16px; + border-radius: 2px; + padding:8px; + padding-right: 34px; + color: #FFFFFF; + text-align:left; +} + + +QLineEdit[cssClass="edit-primary-book"]:focus { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-book"]:focus:hover { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-book"]:hover { + border: 1px solid #FFFFFF; +} + +*[cssClass="edit-primary-book-error"] { + border: 1px solid #f84444; + background-image: url("://ic-address_book_grey"); + background-position:right center; + background-repeat:no-repeat; + background-color:#0f0b16; + font-size:16px; + border-radius: 2px; + padding:8px; + padding-right: 34px; + color: #FFFFFF; + text-align:left; +} + +*[cssClass="edit-primary-multi-book"] { + border: 1px solid #bababa; + background-image: url("://ic-address-send-white"); + background-position:right center; + background-repeat:no-repeat; + background-color:#0f0b16; + font-size:18px; + border-radius: 2px; + padding:8px; + padding-right: 12px; + padding-left:12px; + color: #FFFFFF; + text-align:left; +} + +QLineEdit[cssClass="edit-primary-multi-book"]:focus { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-multi-book"]:focus:hover { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-multi-book"]:hover { + border: 1px solid #FFFFFF; +} + +*[cssClass="edit-primary-multi-book-error"] { + border: 1px solid #f84444; + background-image: url("://ic-address-send-white"); + background-position:right center; + background-repeat:no-repeat; + background-color:#0f0b16; + font-size:17px; + border-radius: 2px; + padding:8px; + padding-right: 12px; + padding-left:12px; + color: #FFFFFF; + text-align:left; +} + + +*[cssClass="edit-primary-book-send"] { + border: 1px solid #bababa; + background-image: url("://ic-address-send-white"); + background-position:right center; + background-repeat:no-repeat; + background-color:#0f0b16; + font-size:18px; + border-radius: 2px; + padding:8px; + padding-right: 12px; + padding-left: 12px; + color: #FFFFFF; + text-align:left; +} + +QLineEdit[cssClass="edit-primary-book-send"]:focus { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-book-send"]:focus:hover { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-book-send"]:hover { + border: 1px solid #FFFFFF; +} + +*[cssClass="edit-primary-book-send-error"] { + border: 1px solid #f84444; + background-image: url("://ic-address-send-white"); + background-position:right center; + background-repeat:no-repeat; + background-color:#0f0b16; + font-size:18px; + border-radius: 2px; + padding:8px; + padding-right: 60px; + color: #FFFFFF; + text-align:left; +} + + +QPushButton[cssClass="btn-secundary-clear"] { + qproperty-icon: url("://ic-clear-liliac") off, + url("://ic-clear-liliac") on ; + qproperty-iconSize: 30px 22px; + border: 1px solid #5c4b7d; + background-color:#0f0b16; + font-size:18px; + padding-top:4px; + padding-left:0px; + padding-bottom:4px; + padding-right:6px; + color: #b088ff; + border-radius: 2px; +} + +QPushButton[cssClass="btn-secundary-clear"]:hover { + border: 1px solid #b088ff; + background-color:#0f0b16; +} + +QPushButton[cssClass="btn-secundary-clear"]:pressed { + border: 1px solid #b088ff; + background-color:#4Db088ff; +} + +QPushButton[cssClass="btn-secundary-new-address"] { + qproperty-icon: url("://ic-update-liliac") off, + url("://ic-update-liliac") on ; + qproperty-iconSize: 30px 30px; + border: 1px solid #5c4b7d; + background-color:#0f0b16; + font-size:18px; + padding-top:4px; + padding-left:6px; + padding-bottom:4px; + padding-right:6px; + color: #b088ff; + border-radius: 2px; +} + +QPushButton[cssClass="btn-secundary-new-address"]:hover { + border: 1px solid #b088ff; + background-color:#0f0b16; +} + +QPushButton[cssClass="btn-secundary-new-address"]:pressed { + border: 1px solid #b088ff; + background-color:#4Db088ff; +} + +QPushButton[cssClass="btn-secundary-label"] { + qproperty-icon: url("://ic-label-liliac") off, + url("://ic-label-liliac") on ; + qproperty-iconSize: 30px 30px; + border: 1px solid #5c4b7d; + background-color:#0f0b16; + font-size:18px; + padding-top:4px; + padding-left:6px; + padding-bottom:4px; + padding-right:6px; + color: #b088ff; + border-radius: 2px; +} + +QPushButton[cssClass="btn-secundary-label"]:hover { + border: 1px solid #b088ff; + background-color:#0f0b16; +} + +QPushButton[cssClass="btn-secundary-label"]:pressed { + border: 1px solid #b088ff; + background-color:#4Db088ff; +} + +QPushButton[cssClass="btn-secundary-copy"] { + qproperty-icon: url("://ic-copy-liliac") off, + url("://ic-copy-liliac") on ; + qproperty-iconSize: 30px 30px; + border: 1px solid #5c4b7d; + background-color:#0f0b16; + font-size:18px; + padding-top:4px; + padding-left:6px; + padding-bottom:4px; + padding-right:6px; + color: #b088ff; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-secundary-copy"]:hover { + border: 1px solid #b088ff; + background-color:#0f0b16; +} + +QPushButton[cssClass="btn-secundary-copy"]:pressed { + border: 1px solid #b088ff; + background-color:#4Db088ff; +} + + +QPushButton[cssClass="btn-secundary-add"] { + background-image: url("://ic-add-liliac"); + background-position:right center; + background-repeat:no-repeat; + border: 1px solid #5c4b7d; + background-color:#0f0b16; + font-size:18px; + padding-top:4px; + padding-left:6px; + padding-bottom:4px; + padding-right:30px; + color: #b088ff; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-secundary-add"]:hover { + border: 1px solid #b088ff; + background-color:#0f0b16; +} + +QPushButton[cssClass="btn-secundary-add"]:pressed { + border: 1px solid #b088ff; + background-color:#4Db088ff; +} + + +QPushButton[cssClass="btn-text-primary"] { + border: 0; + background-color:#0f0b16; + font-size:18px; + padding-top:4px; + padding-left:4px; + padding-bottom:4px; + padding-right:4px; + color: #b088ff; +} + +QPushButton[cssClass="btn-text-primary"]:hover { + color: #5c4b7d; +} + +QPushButton[cssClass="btn-text-primary"]:pressed { + color: #b088ff; +} + + + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH LINE EDIT +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="edit-primary"] { + border: 1px solid #bababa; + background-color:#0f0b16; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #FFFFFF; +} + +*[cssClass="edit-primary"]:focus { + border: 1px solid #b088ff; +} + +*[cssClass="edit-primary"]:focus:hover { + border: 1px solid #b088ff; +} + +*[cssClass="edit-primary"]:hover { + border: 1px solid #FFFFFF; +} + +*[cssClass="edit-primary-disabled"] { + border: 1px solid #33ffffff; + background-color:#0f0b16; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #FFFFFF; +} + + +*[cssClass="edit-primary-error"] { + border: 1px solid #f84444; + background-color:#0f0b16; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #FFFFFF; +} + +QPushButton[cssClass="btn-expand"] { + background-image: url("://ic-expand"); + background-position:center; + background-repeat:no-repeat; + background-color:#0f0b16; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SPLASH +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container-splash"] { + background-color:transparent; + background-image: url("://bg-splash-png"); +} + +*[cssClass="img-splash-logo"] { + qproperty-icon: url("://img-logo-pivx"); + qproperty-iconSize: 300px 100px; + border:0; + background-color:transparent; +} + +*[cssClass="bg-progress"] { + border-top:2px solid #b088ff ; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + background-color:transparent; +} + +QProgressBar[cssClass="progress-splash"]::chunk:horizontal { + background: qlineargradient(x1: 0, + y1: 0.5, + x2: 1, + y2: 0.5, + stop: 0 #80211a2f, + stop: 1 #80b088ff, + stop: 2 #80211a2f,); + margin-right: 2px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH DASHBOARD +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + + +*[cssClass="text-warning"] { + color:#f84444; + font-size:16px; +} + +*[cssClass="text-violet-warning"] { + color: #877B9F;; + font-size:13px; +} + +*[cssClass="ic-warning"] { + qproperty-icon: url("://ic-transaction-warning") off, + url("://ic-transaction-warning") on ; + qproperty-iconSize: 24px 24px; +} + + +*[cssClass="text-amount-grey"] { + color:#FFFFFF; + font-size:20px; +} + +*[cssClass="text-stake-piv"] { + color:#5c4b7d; + font-size:16px; + padding:10px; + border-bottom: 5px solid #5c4b7d; +} + +*[cssClass="text-stake-piv-disable"] { + color:#69656F; + font-size:16px; + padding:10px; + border-bottom: 5px solid #69656F; +} + +*[cssClass="text-stake-zpiv"] { + color:#b088ff; + font-size:16px; + padding:10px; + border-bottom: 5px solid #b088ff; +} + +*[cssClass="text-stake-zpiv-disable"] { + color:#423E4A; + font-size:16px; + padding:10px; + border-bottom: 5px solid #423E4A; +} + +*[cssClass="legend-chart"] { + color:#FFFFFF; + font-size:16px; +} + +*[cssClass="text-chart-zpiv"] { + color:#b088ff; + font-size:16px; + padding-left:4px; +} + +*[cssClass="text-chart-piv"] { + color:#5c4b7d; + font-size:16px; + padding-left:4px; +} + +*[cssClass="square-chart-zpiv"] { + background-color:#b088ff; + border:none; +} + +*[cssClass="square-chart-piv"] { + background-color:#5c4b7d; + border:none; +} + +*[cssClass="text-amount-grey-big"] { + color:#FFFFFF; + font-size:26px; +} + + +*[cssClass="container-chart"] { + background-color:#0f0b16; +} + +QPushButton[cssClass="btn-chart-arrow"] { + qproperty-icon: url("://ic-arrow-left-white") ; + qproperty-iconSize: 12px 12px; + background-color: transparent; + border:0px; + border-radius:2px; +} + +QPushButton[cssClass="btn-chart-arrow"]:hover { + background-color: #5c4b7d; +} + +QPushButton[cssClass="btn-chart-arrow"]:pressed { + background-color:#20192e; +} + +QPushButton[cssClass="btn-chart-arrow-right"] { + qproperty-icon: url("://ic-arrow-right-white") ; + qproperty-iconSize: 12px 12px; + background-color: transparent; + border:0px; + border-radius:2px; +} + +QPushButton[cssClass="btn-chart-arrow-right"]:hover { + background-color: #5c4b7d; +} + +QPushButton[cssClass="btn-chart-arrow-right"]:pressed { + background-color:#20192e; +} + +QComboBox[cssClass="btn-combo-secundary"] { + background-color:#0f0b16; + padding:6px 12px 6px 6px; + font-size:16px; + border:1px solid #bababa; + color: #707070; + text-align: right; + border-radius:2px; +} + +QComboBox[cssClass="btn-combo-secundary"]::down-arrow { + image: url("://ic-arrow-drop-down-purple"); + width: 24px; + height: 24px; +} + +QComboBox[cssClass="btn-combo-chart"] { + background-color:#0f0b16; + padding:6px 12px 6px 6px; + font-size:16px; + border:1px solid #bababa; + color: #707070; + text-align: right; + border-radius:2px; +} + +QComboBox[cssClass="btn-combo-chart"]::down-arrow { + image: url("://ic-arrow-drop-down"); + width: 24px; + height: 24px; +} + + +QComboBox[cssClass="btn-combo-chart-selected"] { + background-color:#B35c4b7d; + padding:6px 12px 6px 6px; + font-size:16px; + border:1px solid #B35c4b7d; + color: #FFFFFF; + text-align: right; + border-radius:2px; +} + +QComboBox[cssClass="btn-combo-chart-selected"]::down-arrow { + image: url("://ic-arrow-drop-down-white"); + width: 24px; + padding-right: 10px; + height: 24px; +} + +QComboBox[cssClass="btn-combo-chart-selected"]:on { + padding-top: 10px; + padding-left: 10px; + background-color: #B35c4b7d; +} + +QComboBox[cssClass="btn-combo-chart-selected"]:disabled { + background-color:#20192e; + padding:6px 12px 6px 6px; + font-size:16px; + border:1px solid #5c4b7d; + color: #FFFFFF; + text-align: right; + border-radius:2px; +} + +QComboBox::drop-down { + border-width: 0px; +} + +QComboBox::down-arrow { + image: url(noimg); border-width: 0px; +} + +QPushButton[cssClass="btn-check-time"] { + background-color:#0f0b16; + font-size:14px; + color: #707070; + padding:4px; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-time"]:checked { + background-color:#5c4b7d; + border-radius:2px; + font-size:14px; + padding:4px; + color: #FFFFFF; +} + +QPushButton[cssClass="btn-check-time"]:hover { + background-color:#B35c4b7d; + border-radius:2px; + font-size:14px; + padding:4px; + color: #FFFFFF; +} + +QPushButton[cssClass="btn-check-time"]:pressed { + background-color:#20192e; + border-radius:2px; + font-size:14px; + padding:4px; + color: #b088ff; +} + +QPushButton[cssClass="btn-check-time"]:disabled { + background-color:#20192e; + border-radius:2px; + font-size:14px; + padding:4px; + color: #FFFFFF; + border:1px solid #5c4b7d; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH CHECKBOX +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +QCheckBox { + spacing: 5px; + font-size:18px; + color:#FFFFFF; +} + +QCheckBox:checked { + spacing: 5px; + font-size:18px; + color:#b088ff; +} + +QCheckBox::indicator { + width: 24px; + height: 24px; +} + +QCheckBox::indicator:unchecked { + image: url("://ic-check-box"); +} + +QCheckBox::indicator:checked { + image: url("://ic-check-liliac-on"); +} + + +QCheckBox[cssClass="btn-watch-password"] { + spacing: 5px; + font-size:18px; + color:transparent; +} + + +QCheckBox[cssClass="btn-watch-password"]::indicator:unchecked { + image: url("://ic-watch-password-white"); +} + +QCheckBox[cssClass="btn-watch-password"]::indicator:checked { + image: url("://ic-watch-password-white"); +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH REQUEST DIALOG +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +QComboBox[cssClass="btn-combo-coins"] { + background-color:#5c4b7d; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #5c4b7d; + color: #FFFFFF; +} + +QLabel[cssClass="btn-combo-coins"] { + background-color:#5c4b7d; + padding:10px 10px 10px 10px; + font-size:16px; + border:1px solid #5c4b7d; + color: #FFFFFF; +} + +QComboBox[cssClass="btn-combo-coins"]::down-arrow { + image: url("://ic-arrow-drop-white-down"); + padding-right: 10px; + height: 16px; + width: 16px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH RECEIVE +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="label-address-box"] { + color:#FFFFFF; + background-color: #26b088ff; + font-size:22px; + padding:10px 10px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SPIN BOX +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +QSpinBox[cssClass="btn-spin-box"] { + background-color:#0f0b16; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #bababa; + color: #707070; + selection-background-color: #5c4b7d; + selection-color: #FFFFFF; +} + + +QSpinBox[cssClass="btn-spin-box"]::up-button { + image: url("://ic-arrow-drop-up-purple"); + subcontrol-position: top right; width: 20px; height: 20px; + border: 0px; + padding:0px; + margin:0px 5px 0px 0px; +} + +QSpinBox[cssClass="btn-spin-box"]::down-button { + image: url("://ic-arrow-drop-down-purple"); + subcontrol-position: bottom right; width: 20px; height: 20px; + border: 0px; + padding:0px; + margin:0px 5px 0px 0px; +} + + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH COMBO BOX +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + + +QComboBox[cssClass="btn-combo"] { + background-color:#0f0b16; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #0f0b16; + color: #707070; + text-align: right; +} + +QComboBox[cssClass="btn-combo"]::down-arrow { + image: url("://ic-arrow-drop-down"); + width: 24px; + height: 24px; +} + +QComboBox[cssClass="btn-combo-edit"] { + background-color:#0f0b16; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #0f0b16; + color: #ffffff; + text-align: right; +} + +QComboBox[cssClass="btn-combo-edit"]::down-arrow { + image: url("://ic-arrow-drop-down-white"); + width: 24px; + height: 24px; +} + + +QComboBox[cssClass="btn-combo-options"] { + background-color:#0f0b16; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #0f0b16; + color: #707070; + text-align: right; +} + +QComboBox[cssClass="btn-combo-options"]::down-arrow { + image: url("://ic-arrow-drop-down"); + width: 24px; + height: 24px; +} + + +QComboBox { + background-color:transparent; + padding-right:20px; + font-size:16px; + color: #707070; + border-radius:0px; + border: 0px; +} + +QComboBox QFrame { border: 0px solid transparent; border-radius:0px;} + +QComboBox:on { /* shift the text when the popup opens */ + padding-top: 10px; + padding-left: 10px; + background-color: transparent; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + subcontrol-position: center right; + width: 15px; + right:3px; + border-top-right-radius: 0px; /* same radius as the QComboBox */ + border-bottom-right-radius: 0px; + border-radius:0px; + background:none; +} + +QComboBox::down-arrow { + image: url("://ic-arrow-drop-down"); + width: 24px; + height: 24px; +} + +QComboBox::down-arrow:on { /* shift the arrow when popup is open */ + top: 1px; + left: 1px; +} + +QComboBox:item { + color: #707070; + font-size:18px; +} + +QComboBox QAbstractItemView { + margin:0px; + min-width: 150px; + border-radius:0px; + font-size:16px; + outline: 0px; +} + +QComboBox::selected:item { border: none; outline: 0px; } + +QComboBox QAbstractItemView::item { + margin:0px; + background-color: #FFFFFF; + padding:10px 20px; + font-size:16px; + color: #707070; + border-radius:0px; + outline: 0px; +} +QComboBox QAbstractItemView::item:selected { + background-color: #d8d5e0; + padding:10px 20px; + font-size:16px; + margin:0px; + color: #5c4b7d; + border-radius:0px; + outline: 0px; +} + +QComboBox QAbstractItemView QPushButton{ + border:0px; + outline: 0px; +} + +QComboBox QAbstractItemView::item:selected QPushButton:hover{ + border:0px; + outline: 0px; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH RADIO BUTTON +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ +QRadioButton:checked { + color: #b088ff; + font-size:20px; +} + +QRadioButton:unchecked { + color: #bababa; + font-size:20px; +} + +QRadioButton { + color: #bababa; + font-size:20px; + spacing:20px; +} + +QRadioButton::indicator { + width: 26px; + height: 26px; +} + +QRadioButton::indicator:checked { + background: url("://ic-radio-liliac-on"); + background-repeat:no-repeat; + background-position:center; +} + +QRadioButton::indicator:unchecked { + background: url("://btn-radio-off"); + background-repeat:no-repeat; + background-position:center; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SCROLL BAR +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +QScrollBar:vertical { + border: 0px solid #bababa; + background:#0f0b16; + width:7px; + margin: 0px 0px 0px 0px; +} + + +QScrollBar::handle:vertical { + background: #5c4b7d; + min-height: 10px; +} + +QScrollBar::add-line:vertical { + background: #0f0b16; + height: 0px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} +QScrollBar::sub-line:vertical { + background: #0f0b16; + height: 0 px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + height: 0px; +} + + +QScrollBar::right-arrow:horizontal, QScrollBar::left-arrow:horizontal +{ + border: none; + background: none; + color: none; +} + +QScrollBar::top-arrow:horizontal, QScrollBar::bottom-arrow:horizontal +{ + border: none; + background: none; + color: none; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH DIALOG MASTER NODE +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="line-purple"] { + background-color:#5c4b7d; +} + + +QPushButton[cssClass="btn-number-check"] { + border: 1px solid #5c4b7d; + background-color:transparent; + font-size:14px; + border-radius:11px; + color: #807b8a; +} + +QPushButton[cssClass="btn-number-check"]:checked { + border: 1px solid #b088ff; + background-color:#b088ff; + font-size:14px; + border-radius:11px; + color: #5c4b7d; +} + +QPushButton[cssClass="btn-name-check"] { + background-color: transparent; + border:none; + font-size:20px; + color: #807b8a; +} + +QPushButton[cssClass="btn-name-check"]:checked { + background-color:transparent; + border:none; + font-size:20px; + color: #b088ff; +} + + +QPushButton[cssClass="ic-step-confirm"] { + background-image: url("://ic-check-white"); + background-position:center; + background-repeat:no-repeat; + border: 1px solid #6C529D; + border-radius:11px; + background-color:#6C529D; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SEND +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container-coin-type"] { + background-color:#0f0b16; + border: 1px solid #bababa; + border-radius: 2px; +} + + +*[cssClass="coin-icon-piv"] { + qproperty-icon: url("://ic-coin-piv") off, + url("://ic-coin-piv") on ; + qproperty-iconSize: 24px 24px; + background-color: #FFFFFF; + border: 2px solid #0f0b16; + border-radius: 12px; +} + +*[cssClass="coin-icon-zpiv"] { + qproperty-icon: url("://ic-coin-zpiv") off, + url("://ic-coin-zpiv") on ; + qproperty-iconSize: 24px 24px; + background-position:center; + background-repeat:no-repeat; + background-color: #FFFFFF; + border: 2px solid #0f0b16; + border-radius: 12px; +} + + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH Dialog +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container-dialog"] { + background-color:#0f0b16; + border-radius: 2px; + border:1px solid #b088ff; +} + + +*[cssClass="text-title-dialog"] { + color:#b088ff; + font-size:22px; +} + +*[cssClass="text-title2-dialog"] { + color:#b088ff; + font-size:16px; +} + +*[cssClass="text-title1-dialog"] { + color:#b088ff; + font-size:22px; +} + + +*[cssClass="text-body1-dialog"] { + color:#B3FFFFFF; + font-size:18px; +} + +*[cssClass="text-body2-dialog"] { + color:#B3FFFFFF; + font-size:15px; +} + +*[cssClass="text-body3-dialog"] { + color:#B3FFFFFF; + font-size:17px; +} + +QDialogButtonBox QPushButton { + border: 1px solid #5c4b7d; + background-color:#5c4b7d; + font-size:18px; + padding:4px 10px; + color: #FFFFFF; + +} + +QPushButton[cssClass="btn-dialog-cancel"] { + border: 0; + background-color:transparent; + font-size:18px; + padding:4px 10px; + color: #bababa; + border-radius: 2px; +} + + +QLineEdit[cssClass="edit-primary-dialog"] { + border: 1px solid #bababa; + background-color:#0f0b16; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #FFFFFF; +} + +QLineEdit[cssClass="edit-primary-dialog"]:focus { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-dialog"]:focus:hover { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-dialog"]:hover { + border: 1px solid #FFFFFF; +} + +QLineEdit[cssClass="edit-primary-dialog-error"] { + border: 1px solid #f84444; + background-color:#0f0b16; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #FFFFFF; +} + +QLabel[cssClass="label-subtitle-dialog"] { + background-color:#0f0b16; + font-size:16px; + color: #B088FF; + padding-top: 10px; + padding-bottom: 10px; +} + +QComboBox[cssClass="btn-combo-dialog"] { + background-color:#0f0b16; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #0f0b16; + color: #B088FF; + text-align: right; +} + +QComboBox[cssClass="btn-combo-dialog"]::down-arrow { + image: url("://ic-arrow-drop-down-white"); + width: 24px; + height: 24px; + padding-top: 1px; +} + + +QComboBox[cssClass="btn-combo-edit-dialog"] { + background-color:#0f0b16; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #bababa; + color: #B088FF; + text-align: right; +} + +QComboBox[cssClass="btn-combo-edit-dialog"]::down-arrow { + image: url("://ic-arrow-drop-down-white"); + width: 24px; + height: 24px; + padding-right: 12px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SETTINGS +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +QPushButton[cssClass="btn-settings-check"] { + background-image: url("://ic-arrow-drop-down-white"); + background-position:right center; + background-repeat:no-repeat; + background-color: #0f0b16; + border:none; + border-bottom:1px solid #bababa; + font-size:20px; + color: #707070; + text-align:left; +} + +QPushButton[cssClass="btn-settings-check"]:checked { + background-image: url("://ic-arrow-drop-up-white"); + background-position:right center; + background-repeat:no-repeat; + background-color:#0f0b16; + border:none; + border-bottom:1px solid #0f0b16; + font-size:20px; + color: #707070; + text-align:left; +} + +QPushButton[cssClass="btn-settings-options"] { + background-color: rgba(92, 75, 125, 0.2); + border:none; + font-size:20px; + color: rgba(255, 255, 255, 0.7); + padding:0 20px; + text-align:left; +} + +QPushButton[cssClass="btn-settings-options"]:checked { + background-color:#5c4b7d; + border:none; + font-size:20px; + color: #FFFFFF; + padding:0 20px; + text-align:left; +} + +QPushButton[cssClass="btn-settings-options"]:hover { + background-color: rgba(135, 123, 159, 0.7); + border:none; + font-size:20px; + color: #FFFFFF; + padding:0 20px; + text-align:left; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH Icons +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + + +*[cssClass="ic-close-white"] { + qproperty-icon: url("://ic-close-white") off, + url("://ic-close-white") on ; + qproperty-iconSize: 24px 24px; + +} + +*[cssClass="ic-arrow"] { + qproperty-icon: url("://ic-arrow-right-white") off, + url("://ic-arrow-right-white") on ; + qproperty-iconSize: 24px 24px; +} + +*[cssClass="ic-arrow-down"] { + qproperty-icon: url("://ic-arrow-drop-down-white") off, + url("://ic-arrow-drop-down-white") on ; + qproperty-iconSize: 24px 24px; + background-color: transparent; + border:none; +} + + + +*[cssClass="ic-copy"] { + qproperty-icon: url("://ic-copy-liliac") off, + url("://ic-copy-liliac") on ; + qproperty-iconSize: 24px 24px; + background-color: transparent; + border:none; +} + +*[cssClass="ic-copy-big"] { + qproperty-icon: url("://ic-copy-big-white") off, + url("://ic-copy-big-white") on ; + qproperty-iconSize: 24px 24px; + background-color: transparent; + border:none; +} + +*[cssClass="ic-close"] { + qproperty-icon: url("://ic-close-white"); + qproperty-iconSize: 24px 24px; + background-color: transparent; + border:none; +} + +*[cssClass="layout-arrow"] { + background: url("://ic-arrow-right-white"); + background-repeat:no-repeat; + background-position:right center; +} + + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH FAQ +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="text-title-faq"] { + color:#b088ff; + font-size:26px; +} + + +*[cssClass="container-faq-buttons"] { + background:transparent; + border:1px solid #b088ff; + border-radius: 5px; +} + +*[cssClass="text-subtitle-faq"] { + color:#FFFFFF; + font-size:22px; +} + +*[cssClass="text-content-faq"] { + color:#FFFFFF; + font-size:18px; +} + +*[cssClass="container-number-faq"] { + color:#FFFFFF; + background-color: #5c4b7d; + font-size:14px; + border-radius: 2px; +} + + + +QPushButton[cssClass="btn-faq-exit"] { + background: url("://ic-exit"); + background-repeat:no-repeat; + background-position:right center; + background-color:transparent; + border:none; + padding:0 30px 0 0; + font-size:18px; + color: #CCFFFFFF; + text-align:left; +} + +QPushButton[cssClass="btn-faq-web"] { + background-color:transparent; + border:none; + font-size:16px; + color: #b088ff; + text-align:left; +} + + + +QPushButton[cssClass="btn-faq-options"] { + background-color:transparent; + border:none; + font-size:18px; + color: #FFFFFF; + padding:0 20px; + text-align:left; +} + +QPushButton[cssClass="btn-faq-options"]:checked { + background-color: rgba(176 ,136 ,255, 0.2); + border:none; + font-size:18px; + color: #FFFFFF; + padding:0 20px; + text-align:left; +} + + +#scrollAreaFaq QScrollBar:vertical { + border: 0px solid #bababa; + background:#0f0b16; + width:4px; + margin: 0px 0px 0px 0px; +} + + +#scrollAreaFaq QScrollBar::handle:vertical { + background: #5c4b7d; + min-height: 0px; +} + +#scrollAreaFaq QScrollBar::add-line:vertical { + background: #0f0b16; + height: 0px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +#scrollAreaFaq QScrollBar::sub-line:vertical { + background: #0f0b16; + height: 0 px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +#scrollAreaFaq QScrollBar::add-page:vertical, #scrollAreaFaq QScrollBar::sub-page:vertical { + height: 0px; +} + + +#scrollAreaFaq QScrollBar::right-arrow:horizontal, #scrollAreaFaq QScrollBar::left-arrow:horizontal +{ + border: none; + background: none; + color: none; +} + +#scrollAreaFa QScrollBar::top-arrow:horizontal, #scrollAreaFa QScrollBar::bottom-arrow:horizontal +{ + border: none; + background: none; + color: none; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH WELCOME +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +QPushButton[cssClass="btn-close-white"] { + background: url("://ic-close-white"); + background-repeat:no-repeat; + background-position:center; + background-color:transparent; +} + +QPushButton[cssClass="ic-step-confirm-welcome"] { + background-image: url("://ic-check-white"); + background-position:center; + background-repeat:no-repeat; + border: 1px solid #6C529D; + border-radius:11px; + background-color:#6C529D; +} + +*[cssClass="text-title-welcome"] { + color:#FFFFFF; + font-size:26px; +} + +*[cssClass="text-main-white"] { + color:#FFFFFF; + font-size:20px; +} + + +*[cssClass="container-welcome"] { + background-color: #000000; + border-image: url("://bg-welcome") 0 0 0 0 stretch stretch; +} + +*[cssClass="container-welcome-no-image"] { + background-color:#000000; +} + +*[cssClass="container-welcome-box"] { + background-color:transparent; + border: 1px solid transparent; +} + + +*[cssClass="line-welcome"] { + background-color: #807b8a; +} + +*[cssClass="container-welcome-stack"] { + background-image: url("://bg-welcome-container-png"); + background-position:center; + background-repeat:no-repeat; + background-color: transparent; + border: 1px solid #b088ff; + border-radius: 4px; +} + +*[cssClass="container-welcome-step1"] { + background-image: url("://img-welcome-step1"); + background-position:left bottom; + background-repeat:no-repeat; + background-color: transparent; +} + +*[cssClass="container-welcome-step2"] { + background-image: url("://img-welcome-step2"); + background-position:left bottom; + background-repeat:no-repeat; + background-color: transparent; +} + +*[cssClass="container-welcome-step3"] { + background-image: url("://img-welcome-step3"); + background-position:left bottom; + background-repeat:no-repeat; + background-color: transparent; +} + +*[cssClass="container-welcome-step4"] { + background-image: url("://img-welcome-step4"); + background-position:left bottom; + background-repeat:no-repeat; + background-color: transparent; +} + +QComboBox[cssClass="btn-combo-welcome"] { + background-color:#171022; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #b088ff; + color: #FFFFFF; +} + + +QComboBox[cssClass="btn-combo-welcome"]::down-arrow { + image: url("://ic-arrow-purple-down"); + width: 42px; + height: 42px; +} + +QPushButton[cssClass="btn-welcome-back"] { + background: url("://ic-arrow-white-left"); + background-repeat:no-repeat; + background-position:center; + border: 0px; + background-color:#5c4b7d; + color: #5c4b7d; +} + +QPushButton[cssClass="btn-welcome-next"] { + background: url("://ic-arrow-white-right"); + background-repeat:no-repeat; + background-position:center; + border: 0; + background-color: #5c4b7d; + color: #5c4b7d; +} + + +QPushButton[cssClass="btn-welcome-number-check"] { + border: 1px solid #5c4b7d; + background-color:transparent; + font-size:14px; + border-radius:11px; + color: #807b8a; +} + +QPushButton[cssClass="btn-welcome-number-check"]:checked { + border: 1px solid #b088ff; + background-color:#b088ff; + font-size:14px; + border-radius:11px; + color: #5c4b7d; +} + +QPushButton[cssClass="btn-welcome-name-check"] { + background-color: transparent; + border:none; + font-size:20px; + color: #807b8a; +} + +QPushButton[cssClass="btn-welcome-name-check"]:checked { + background-color:transparent; + border:none; + font-size:20px; + color: #b088ff; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH Tooltip +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +QToolTip { + color: white; + background-color: #b088ff; + border: none; + padding:4px; + border-radius:3px; + text-align: center; + qproperty-alignment: AlignVCenter; + min-height: 25px; + min-width: 40px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH ROW LIST +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container-list-menu"]{ + background-color:white; + border-radius:2px; + padding:15px; + border: 1px solid #bababa; +} + +*[cssClass="btn-list-menu"]{ + border: 0; + background-color:#FFFFFF; + font-size:16px; + color: #707070; +} + +*[cssClass="btn-list-menu"]:hover{ + color: #5c4b7d; +} + + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH EMPTY LIST +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="text-empty"]{ + color: #B3FFFFFF; + font-size: 18px; +} + + +*[cssClass="img-empty-master"] { + qproperty-icon: url("://img-empty-dark-masternode"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +*[cssClass="img-empty-transactions"] { + qproperty-icon: url("://img-empty-dark-transactions"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +*[cssClass="img-empty-peers"] { + qproperty-icon: url("://img-empty-dark-peers"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +*[cssClass="img-empty-contacts"] { + qproperty-icon: url("://img-empty-dark-contacts"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + + +*[cssClass="img-empty-error"] { + qproperty-icon: url("://img-empty-dark-error"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +*[cssClass="img-empty-multisend"] { + qproperty-icon: url("://img-empty-dark-multisend"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +*[cssClass="img-empty-staking-on"] { + qproperty-icon: url("://img-empty-dark-staking-on"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + + +*[cssClass="img-empty-staking-off"] { + qproperty-icon: url("://img-empty-dark-staking-off"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + + +*[cssClass="img-empty-privacy"] { + qproperty-icon: url("://img-empty-dark-privacy"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH TREE WIDGET +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +#treeWidget { + border:1px solid #5c4b7d; + background-color:#0f0b16;; + background-position:center; + background-repeat:no-repeat; + selection-background-color:#33b088ff; + selection-color: white; + font-size:14px; + border-radius:0px; + color: #FFFFFF; +} + +#treeWidget::indicator:first:checked{ + image: url("://ic-check-box-dark-active"); +} +#treeWidget::indicator:middle:checked{ + image: url("://ic-check-box-dark-active"); +} + +#treeWidget::indicator { + width: 24px; + height: 24px; +} + +#treeWidget::indicator:indeterminate { + image: url("://ic-check-box-liliac-indeterminate"); +} + +#treeWidget::indicator:unchecked { + image: url("://ic-check-box"); +} + +#treeWidget::indicator:checked { + image: url("://ic-check-box-dark-active"); +} + +#treeWidget::item { + border:none; + border-bottom: 1px solid #40ffffff; + border-radius:0px; + color: #ffffff; + padding-top: 6px; + padding-bottom: 6px; + background-color:#0f0b16; +} + +#treeWidget::branch:closed:has-children:!has-siblings { + border-image: none; + background-color:#0f0b16; + image: url("://ic-arrow-drop-up"); + border-bottom: 1px solid #40ffffff; +} + +#treeWidget::branch:closed:has-children:has-siblings { + border-image: none; + background-color:#0f0b16; + image: url("://ic-arrow-drop-up"); + border-bottom: 1px solid #40ffffff; +} + + +#treeWidget::branch:open:has-children:!has-siblings, +#treeWidget::branch:open:has-children:has-siblings { + border-image: none; + image: url("://ic-arrow-drop-down"); + border-bottom: 1px solid #40ffffff; +} + +#treeWidget::item:hover { + border:none; + border-bottom: 1px solid #40ffffff; + border-radius:0px; + color: #ffffff; + background-color:#26bababa; +} + +#treeWidget::item:selected { + border:none; + border-bottom: 1px solid #40ffffff; + border-radius:0px; + color: #ffffff; + background-color:#33b088ff; +} + + +#treeWidget::item:hover:selected { + border:none; + border-bottom: 1px solid #40ffffff; + border-radius:0px; + color: #ffffff; + background-color:#33b088ff; +} + + +#treeWidget::branch { + background-color: #0f0b16; + selection-background-color:#33b088ff; +} + +#treeWidget::branch:selected { + background-color:#33b088ff; +} + +#treeWidget::branch:!selected { + background-color:#33b088ff; +} + +#treeWidget::branch:hover { + background-color:#260f0b16; +} + +#treeWidget::branch:!has-children { + background-color: #0f0b16; +} + +QHeaderView::section { + background-color: #5c4b7d; + color: #FFFFFF; + padding-top: 6px; + padding-bottom: 6px; + font-size:14px; + border:0px solid #5c4b7d; +} + + +*[cssClass="table-tree"] { + border:0; + background-color:#0f0b16; + background-position:center; + background-repeat:no-repeat; + font-size:14px; + border-radius:0px; + color: #ffffff; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SEND MULTI +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +QPushButton[cssClass="ic-multi-number"] { + border:0; + background-color:transparent; + background-image: url("://bg-multi-number-dark"); + background-position:center; + background-repeat:no-repeat; + font-size:12px; + border-radius:12px; + color: #B088FF; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH OPTION BUTTON +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +*[cssClass="btn-options-indicator"]{ + border:0px ; + background:#5c4b7d; + border-radius: 5px; +} + + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SNACK BAR +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +*[cssClass="container-snackbar"]{ + background-color:#382d4d; + border-top:2px solid #b088ff; +} + +*[cssClass="text-snackbar"]{ + color:#FFFFFF; + font-size:20px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH LOADING +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH + */ + +*[cssClass="container-loading"]{ + background-color:#BF000000; +} + +*[cssClass="text-loading"]{ + color:#ffffff; + font-size:20px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH INTRO +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH + */ + +*[cssClass="text-intro-white"] { + color:#FFFFFF; + font-size:16px; +} + + +QPushButton[cssClass="btn-dots-welcome"] { + border: 1px solid #b088ff; + background-color:#b088ff; + font-size:18px; + padding:8px; + color: #FFFFFF; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-dots-welcome"]:hover { + border: 1px solid #b088ff; + background-color:#44375f; + font-size:18px; + padding:8px; + color: #FFFFFF; + border-radius: 2px; +} + +QPushButton[cssClass="btn-dots-welcome"]:pressed { + border: 1px solid #b088ff; + background-color:#44375f; + font-size:18px; + padding:8px; + color: #b088ff; + border-radius: 2px; +} + +*[cssClass="edit-primary-welcome"] { + border:1px solid #b088ff; + border-right: 0px; + background-color:#171022; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #FFFFFF; +} + +*[cssClass="edit-primary-welcome"]:focus { + border: 1px solid #b088ff; + border-right: 0px; +} + +*[cssClass="edit-primary-welcome"]:focus:hover { + border: 1px solid #b088ff; + border-right: 0px; +} + +*[cssClass="edit-primary-welcome"]:hover { + border: 1px solid #b088ff; + border-right: 0px; +} + +*[cssClass="edit-primary-welcome-disabled"] { + border:1px solid #33ffffff; + border-right: 0px; + background-color:#171022; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #66FFFFFF; +} + +QRadioButton[cssClass="radio-welcome"]:checked { + color: #b088ff; + font-size:20px; +} + +QRadioButton[cssClass="radio-welcome"]:unchecked { + color: #bababa; + font-size:20px; +} + +QRadioButton[cssClass="radio-welcome"] { + color: #bababa; + font-size:20px; + spacing:20px; +} + +QRadioButton[cssClass="radio-welcome"]::indicator { + width: 26px; + height: 26px; +} + +QRadioButton[cssClass="radio-welcome"]::indicator:checked { + background: url("://ic-radio-liliac-on"); + background-repeat:no-repeat; + background-position:center; +} + +QRadioButton[cssClass="radio-welcome"]::indicator:unchecked { + background: url("://btn-radio-off"); + background-repeat:no-repeat; + background-position:center; +} diff --git a/src/qt/pivx/res/css/style_light.css b/src/qt/pivx/res/css/style_light.css new file mode 100644 index 0000000..312bfc4 --- /dev/null +++ b/src/qt/pivx/res/css/style_light.css @@ -0,0 +1,3284 @@ +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH CONTAINER +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container"] { + background-color:#FFFFFF; +} + +*[cssClass="container-border"] { + background-color:#FFFFFF; + border: 1px solid #FFFFFF; +} + +*[cssClass="container-border-light"] { + background-color:#FFFFFF; + border: 1px solid #bababa; + border-radius:2px; +} + +*[cssClass="container_right"] { + background-color:#FFFFFF; + border-left: 1px solid #bababa; +} + +*[cssClass="container-right"] { + background-color:#FFFFFF; + border-left: 1px solid #bababa; +} + +*[cssClass="container-square"] { + background-color:#FFFFFF; + border: 1px solid #bababa; +} + +*[cssClass="container-options"] { + background-color:#FFFFFF; + border-bottom: 1px solid #bababa; +} + +*[cssClass="container-divider"] { + background-color:#bababa; +} + +*[cssClass="container-purple"] { + background-color:#5c4b7d; + border: 0; +} + +*[cssClass="container-border-purple"] { + background-color:#FFFFFF; + border: 1px solid #5c4b7d; + border-radius:2px; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH NAVIGATION +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container-nav"] { + background-color: qlineargradient(y1:0, y2: 1, stop: 0 #5c4b7d, stop: 1 #41365a); +} + +QPushButton[cssClass="img-nav-logo"] { + qproperty-icon: url("://img-nav-logo"); + qproperty-iconSize: 49px 60px; +} + +*[cssClass="btn-nav-receive"] { + qproperty-icon: url("://ic-nav-receive") off, + url("://ic-nav-receive-active") on; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-receive"]:checked { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-receive"]:checked:hover { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + color: #B088FF; +} + +*[cssClass="btn-nav-receive"]:hover { + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-receive-active"] { + qproperty-icon:url("://ic-nav-receive-active") ; + qproperty-iconSize: 24px 40px; + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +!############# Cold staking + ################################*/ + +*[cssClass="btn-nav-cold-staking"] { + qproperty-icon: url("://ic-nav-cold-staking") off, + url("://ic-nav-cold-staking-active") on; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-cold-staking"]:checked { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-cold-staking"]:checked:hover { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + color: #B088FF; +} + +*[cssClass="btn-nav-cold-staking"]:hover { + qproperty-icon: url("://ic-nav-cold-staking-hover"); + qproperty-iconSize: 24px 40px; + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-cold-staking-active"] { + qproperty-icon:url("://ic-nav-cold-staking-active") ; + qproperty-iconSize: 24px 40px; + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +!############# + ################################*/ + +*[cssClass="btn-nav-settings"] { + qproperty-icon: url("://ic-nav-settings") off, + url("://ic-nav-settings-active") on; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-settings"]:checked { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-settings"]:checked:hover { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + color: #B088FF; +} + +*[cssClass="btn-nav-settings"]:hover { + qproperty-icon: url("://ic-nav-settings-hover"); + qproperty-iconSize: 24px 40px; + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-settings-active"] { + qproperty-icon:url("://ic-nav-settings-active") ; + qproperty-iconSize: 24px 40px; + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-dash"] { + qproperty-icon: url("://ic-nav-dashboard") off, + url("://ic-nav-dashboard-active") on ; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-dash"]:checked { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-dash"]:checked:hover { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + color: #B088FF; +} + + +*[cssClass="btn-nav-dash"]:hover { + qproperty-icon: url("://ic-nav-dashboard-hover"); + qproperty-iconSize: 24px 40px; + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-dash-active"] { + qproperty-icon:url("://ic-nav-dashboard-active"); + qproperty-iconSize: 24px 40px; + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-send"] { + qproperty-icon: url("://ic-nav-send") off, + url("://ic-nav-send") on ; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-send"]:checked { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-send"]:checked:hover { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + color: #B088FF; +} + +*[cssClass="btn-nav-send"]:hover { + qproperty-icon: url("://ic-nav-send-hover"); + qproperty-iconSize: 24px 40px; + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-send-active"] { + qproperty-icon:url("://ic-nav-send-active") ; + qproperty-iconSize: 24px 40px; + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-address"] { + qproperty-icon: url("://ic-nav-address") off, + url("://ic-nav-address-active") on ; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-address"]:checked { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-address"]:checked:hover { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + color: #B088FF; +} + +*[cssClass="btn-nav-address"]:hover { + qproperty-icon: url("://ic-nav-address-hover"); + qproperty-iconSize: 24px 40px; + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-address-active"] { + qproperty-icon:url("://ic-nav-address-active") ; + qproperty-iconSize: 24px 40px; + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-privacy"] { + qproperty-icon: url("://ic-nav-privacy") off, + url("//ic-nav-privacy-active") on ; + qproperty-iconSize: 24px 40px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-privacy"]:checked { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-privacy"]:checked:hover { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + color: #B088FF; +} + +*[cssClass="btn-nav-privacy"]:hover { + qproperty-icon: url("://ic-nav-privacy-hover"); + qproperty-iconSize: 24px 40px; + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-privacy-active"] { + qproperty-icon:url("://ic-nav-privacy-active") ; + qproperty-iconSize: 24px 40px; + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-master"] { + qproperty-icon: url("://ic-nav-master") off, + url("://ic-nav-master-active") on; + qproperty-iconSize: 24px 30px; + background-color:transparent; + font-size:14px; + color: #938da5; +} + +*[cssClass="btn-nav-master"]:checked { + qproperty-icon: url("://ic-nav-master-active"); + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +*[cssClass="btn-nav-master"]:checked:hover { + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + color: #B088FF; +} + +*[cssClass="btn-nav-master"]:hover { + qproperty-icon: url("://ic-nav-master-hover"); + qproperty-iconSize: 24px 30px; + background-color: #1A000000; + color: #938da5; +} + +*[cssClass="btn-nav-master-active"] { + qproperty-icon:url("://ic-nav-master-active"); + qproperty-iconSize: 24px 30px; + background-color: qlineargradient(x1:0, x2: 1, stop: 0 #3c2559, stop: 1 #1f162b); + font-size:14px; + color: #B088FF; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH TOP BAR +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container-top"] { + background-color:#000000; + border-image: url("://bg-dashboard-banner") 0 0 0 0 stretch stretch; +} + +*[cssClass="container-topbar-no-image"] { + background-color:#000000; +} + +*[cssClass="text-title-topbar"] { + color:#a3a3a4; + font-size:16px; + font-weight: ligther; +} + +*[cssClass="amount-topbar"] { + color:#FFFFFF; + font-size:35px; +} + +*[cssClass="amount-small-topbar"] { + color:#FFFFFF; + font-size:22px; +} + +*[cssClass="container-qr"] { + border-radius: 2px; + background-color: #bb241a3c; +} + +QPushButton[cssClass="btn-qr"] { + qproperty-icon: url("://ic-arrow-drop-down-white"); + qproperty-iconSize: 24px 24px; + background-color:transparent; +} + +*[cssClass="sync-status"] { + background-color:#505c4b7d; + color:#FFFFFF; + border-bottom:2px solid #b088ff; + padding-right:10px; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-faq"] { + qproperty-icon: url("://ic-check-faq"); + qproperty-iconSize: 24px 24px; + background-color:#505c4b7d; + color:#FFFFFF; + padding-right:6px; + padding-left:6px; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-faq-inactive"] { + qproperty-icon: url("://ic-check-faq") ; + qproperty-iconSize: 24px 24px; + background-color:#505c4b7d; + color:#FFFFFF; + padding-right:6px; + padding-left:6px; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-faq"]:checked { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-sync"] { + qproperty-icon: url("://ic-check-sync"); + qproperty-iconSize: 24px 24px; + background-color:#505c4b7d; + color:#FFFFFF; + padding-right:6px; + padding-left:6px; + border-bottom:2px solid #505c4b7d; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-sync-inactive"] { + qproperty-icon: url("://ic-check-sync-off") ; + qproperty-iconSize: 24px 24px; + background-color:#505c4b7d; + color:#FFFFFF; + padding-right:6px; + padding-left:6px; + border-bottom:2px solid #505c4b7d; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-sync"]:checked { + background-color:#505c4b7d; + border-bottom:2px solid #505c4b7d; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-mint"] { + qproperty-icon: url("://ic-check-mint") ; + qproperty-iconSize: 24px 24px; + background-color:#405c4b7d; + color:#FFFFFF; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-mint-inactive"] { + qproperty-icon: url("://ic-check-mint-off") ; + qproperty-iconSize: 24px 24px; + background-color:#405c4b7d; + color:#B3FFFFFF; + border-bottom:2px solid #5C4B7D; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-mint"]:checked { + background-color:#505c4b7d; + color:#ffffff; + border-bottom:2px solid #b088ff; +} + + +QPushButton[cssClass="btn-check-stack"] { + qproperty-icon: url("://ic-check-staking"); + qproperty-iconSize: 24px 24px; + color:#ffffff; + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-stack-inactive"] { + qproperty-icon: url("://ic-check-staking-off"); + qproperty-iconSize: 24px 24px; + color:#B3FFFFFF; + background-color:#405c4b7d; + border-bottom:2px solid #5C4B7D; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-stack"]:checked { + background-color:#505c4b7d; + color:#ffffff; + border-bottom:2px solid #b088ff; +} + +/******************* +******cold staking********* + ********************/ + +QPushButton[cssClass="btn-check-cold-staking"] { + qproperty-icon: url("://ic-check-cold-staking"); + qproperty-iconSize: 24px 24px; + color:#ffffff; + background-color:#505c4b7d; + border-bottom:2px solid #5C4B7D; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-cold-staking-inactive"] { + qproperty-icon: url("://ic-check-cold-staking-off"); + qproperty-iconSize: 24px 24px; + color:#B3FFFFFF; + background-color:#405c4b7d; + border-bottom:2px solid #5C4B7D; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-cold-staking-checked"] { + qproperty-icon: url("://ic-check-cold-staking-enabled"); + qproperty-iconSize: 24px 24px; + background-color:#505c4b7d; + color:#ffffff; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-cold-staking-unchecked"] { + qproperty-icon: url("://ic-check-cold-staking-enabled"); + qproperty-iconSize: 24px 24px; + color:#B3FFFFFF; + background-color:#405c4b7d; + border-bottom:2px solid #5C4B7D; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-cold-staking"]:checked { + qproperty-icon: url("://ic-check-cold-staking-enabled"); + qproperty-iconSize: 24px 24px; + background-color:#505c4b7d; + color:#ffffff; + border-bottom:2px solid #b088ff; +} + +/******************* +******end cold staking********* + ********************/ + +QPushButton[cssClass="btn-check-connect"] { + qproperty-icon: url("://ic-check-connect") ; + qproperty-iconSize: 24px 24px; + color:#ffffff; + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-connect-inactive"] { + qproperty-icon: url("://ic-check-connect-off"); + qproperty-iconSize: 24px 24px; + color:#B3FFFFFF; + background-color:#405c4b7d; + border-bottom:2px solid #5C4B7D; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-connect"]:checked { + background-color:#505c4b7d; + color:#ffffff; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-status-lock"] { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + qproperty-icon: url("://ic-wallet-status-locked") off, + url("://ic-wallet-status-locked") on ; + qproperty-iconSize: 24px 24px; + color:#ffffff; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-status-unlock"] { + background-color:#405c4b7d; + border-bottom:2px solid #5C4B7D; + qproperty-icon: url("://ic-wallet-status-unlocked") off, + url("://ic-wallet-status-unlocked") on ; + qproperty-iconSize: 24px 24px; + color:#B3FFFFFF; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-status-staking"] { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + qproperty-icon: url("://ic-wallet-status-staking") off, + url("://ic-wallet-status-staking") on ; + qproperty-iconSize: 24px 24px; + color:#ffffff; + border-radius:2px; +} + + + +QPushButton[cssClass="btn-check-text"] { + color:#7f7c87; + background-color:#372A4C; + font-size:18px; + border-bottom:2px solid #5C4B7D; +} + +QPushButton[cssClass="btn-check-text"]:checked { + color:#FFFFFF; + background-color:#5c4b7d; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-text-theme"] { + color:#FFFFFF; + background-color:#405c4b7d; + font-size:18px; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-text-theme"]:checked { + color:#FFFFFF; + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-theme"] { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + qproperty-icon: url("://ic-check-theme-dark") off, + url("://ic-check-theme-light") on ; + qproperty-iconSize: 24px 24px; + color:white; + border-radius:2px; +} + + +QPushButton[cssClass="btn-check-theme-dark"] { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + qproperty-icon: url("://ic-check-theme-dark") off, + url("://ic-check-theme-dark") on ; + qproperty-iconSize: 24px 24px; + color:white; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-theme-light"] { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + qproperty-icon: url("://ic-check-theme-light") off, + url("://ic-check-theme-light") on ; + qproperty-iconSize: 24px 24px; + color:white; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-theme"]:checked { + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-peers"] { + qproperty-icon: url("://ic-check-peers") ; + qproperty-iconSize: 24px 24px; + color:#FFFFFF; + background-color:#505c4b7d; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + +QPushButton[cssClass="btn-check-peers"]:checked { + background-color:#505c4b7d; + color:#FFFFFF; + border-bottom:2px solid #b088ff; +} + +QPushButton[cssClass="btn-check-peers-inactive"] { + qproperty-icon: url("://ic-check-peers-off"); + qproperty-iconSize: 24px 24px; + color:#B3FFFFFF; + background-color:#405c4b7d; + border-bottom:2px solid #b088ff; + border-radius:2px; +} + + + +QPushButton[cssClass="btn-check-lock-sub-menu-unlocked"] { + background-image: url("://ic-submenu-unlock"); + background-position:left center; + background-repeat:no-repeat; + background-color: transparent; + text-align: left; + padding-left: 30px; + color:#B3FFFFFF; + border-bottom:0px; + border-radius:0px; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-unlocked"]:checked { + background-color:#50b088ff; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-unlocked"]:hover { + color:#FFFFFF; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-locked"] { + background-image: url("://ic-submenu-lock"); + background-position:left center; + background-repeat:no-repeat; + background-color: transparent; + text-align: left; + padding-left: 30px; + color:#B3FFFFFF; + border-bottom:0px; + border-radius:0px; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-locked"]:checked { + background-color:#50b088ff; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-locked"]:hover { + color:#FFFFFF; +} + + +QPushButton[cssClass="btn-check-lock-sub-menu-staking"] { + background-image: url("://ic-submenu-staking"); + background-position:left center; + background-repeat:no-repeat; + background-color: transparent; + text-align: left; + padding-left: 30px; + color:#B3FFFFFF; + border-bottom:0px; + border-radius:0px; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-staking"]:checked { + background-color:#50b088ff; +} + +QPushButton[cssClass="btn-check-lock-sub-menu-staking"]:hover { + color:#FFFFFF; +} + + +*[cssClass="top-sub-menu"] { + background-color:#4C425F; +} + + +*[cssClass="top-sub-menu-text"] { + color:#B3FFFFFF; +} + +QProgressBar[cssClass="progress-sync"] { + border: 0; + background-color: transparent; +} + +QProgressBar[cssClass="progress-sync"]::chunk:horizontal { + background: qlineargradient(x1: 0, + y1: 0.5, + x2: 1, + y2: 0.5, + stop: 0 #b088ff, + stop: 1 #b088ff, + stop: 2 #b088ff,); +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH LISTS ELEMENTS +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="text-list-title-purple"] { + color:#5c4b7d; + font-size:20px; +} + +*[cssClass="text-list-contact-title1"] { + color:#5c4b7d; + font-size:16px; +} + +*[cssClass="text-list-title1"] { + color:#5c4b7d; + font-size:16px; +} + +*[cssClass="text-list-body1-purple"] { + color:#5c4b7d; + font-size:14px; +} + +*[cssClass="text-list-body1"] { + color:#707070; + font-size:16px; +} + +*[cssClass="text-list-body-unconfirmed"] { + color:#B6B6B6; + font-size:16px; +} + +*[cssClass="text-list-body2"] { + color:#707070; + font-size:15.5px; +} + +*[cssClass="text-list-contact-body1"] { + color:#707070; + font-size:16px; +} + + +*[cssClass="text-list-body1-grey"] { + color:#707070; + font-size:16px; +} + +*[cssClass="text-list-body2-grey"] { + color:#707070; + font-size:14px; +} + +*[cssClass="text-list-caption"] { + color:#bababa; + font-size:12px; +} + +*[cssClass="text-list-caption-medium"] { + color:#bababa; + font-size:14px; +} + +*[cssClass="text-list-caption-medium-green"] { + color:#008d36; + font-size:14px; +} + +*[cssClass="text-list-caption-unconfirmed"] { + color:#B6B6B6; +} + +*[cssClass="text-list-caption-grey"] { + color:#707070; + font-size:12px; +} + + +*[cssClass="text-list-amount-receive"] { + color:#008d36; + font-size:16px; +} + + +*[cssClass="text-list-amount-send"] { + color:#f84444; + font-size:16px; +} + +*[cssClass="text-list-amount-unconfirmed"] { + color:#B6B6B6; + font-size:16px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH TEXT +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="text-title-screen"] { + color:#5c4b7d; + font-size:22px; +} + +*[cssClass="text-title-dialog"] { + color:#5c4b7d; + font-size:22px; +} + +*[cssClass="text-title"] { + color:#5c4b7d; + font-size:16px; +} + +*[cssClass="text-title-right"] { + color:#5c4b7d; + font-size:14px; +} + +*[cssClass="text-title-white"] { + color:#FFFFFF; + font-size:16px; +} + +*[cssClass="text-content-white"] { + color:#FFFFFF; + font-size:16px; +} + +*[cssClass="btn-title-grey"] { + color:#707070; + font-size:22px; +} + +*[cssClass="btn-title-purple"] { + color:#5c4b7d; + font-size:22px; +} + +*[cssClass="btn-subtitle-grey"] { + color:#707070; + font-size:17px; +} + +*[cssClass="text-subtitle"] { + color:#bababa; + font-size:14px; +} + +*[cssClass="text-body2-grey"] { + color:#707070; + font-size:14px; +} + + +*[cssClass="text-body1"] { + color:#707070; + font-size:17px; +} + +*[cssClass="text-body2"] { + color:#707070; + font-size:14px; +} + +*[cssClass="text-main-light"] { + color:#bababa; + font-size:17px; +} + +*[cssClass="text-main-grey"] { + color:#707070; + font-size:17px; +} + +*[cssClass="text-main-settings"] { + color:#707070; + font-size:18px; +} + +*[cssClass="text-main-purple"] { + color:#5c4b7d; + font-size:17px; +} + +*[cssClass="text-title-purple"] { + color:#5c4b7d; + font-size:22px; +} + +*[cssClass="text-main-grey-big"] { + color:#707070; + font-size:24px; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH BUTTONS +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +#groupBox { + background-color:transparent; + border-radius:0; +} + +*[cssClass="group-box"] { + background-color:transparent; + border-radius:0; +} + + +QGroupBox::title { + color:#5c4b7d; + font-size:16px; + padding-bottom:9px; +} + + +QPushButton[cssClass="btn-menu"] { + qproperty-icon: url("://ic-menu-hover") off, + url("://ic-menu-hover") on ; + qproperty-iconSize: 24px 24px; +} + +QPushButton[cssClass="btn-dropdown"] { + qproperty-icon: url("://ic-arrow-drop-down") off, + url("://ic-arrow-drop-down") on ; + qproperty-iconSize: 24px 24px; +} + +QPushButton[cssClass="btn-dropdown"]:checked { + qproperty-icon: url("://ic-arrow-drop-up") off, + url("://ic-arrow-drop-up") on ; + qproperty-iconSize: 24px 24px; +} + +QPushButton[cssClass="btn-switch"] { + background-image: url("://ic-switch-off"); + background-position:right center; + background-repeat:no-repeat; + background-color:#FFFFFF; + font-size:18px; + text-align:left; + color: #bababa; +} + +QPushButton[cssClass="btn-switch"]:checked { + background-image: url("://ic-switch-on"); + background-position:right center; + background-repeat:no-repeat; + background-color:#FFFFFF; + text-align:left; + font-size:18px; + color: #5c4b7d; +} + +QPushButton[cssClass="btn-check"] { + border: 1px solid #335c4b7d; + background-color:#FFFFFF; + padding:4px; + font-size:18px; + color: #707070; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-check"]:hover { + border: 1px solid #5c4b7d; + background-color:#FFFFFF; + font-size:18px; + padding:4px; + color: #5c4b7d; + border-radius: 2px; +} + +QPushButton[cssClass="btn-check"]:pressed { + border: 1px solid #5c4b7d; + background-color:#1A5c4b7d; + font-size:18px; + padding:4px; + color: #5c4b7d; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-check-right"] { + border: 1px solid #335c4b7d; + background-color:#FFFFFF; + font-size:18px; + color: #707070; + border-top-right-radius:2px; + border-bottom-right-radius:2px; +} + + +QPushButton[cssClass="btn-check-right"]:hover { + border: 1px solid #5c4b7d; + background-color:#FFFFFF; + font-size:18px; + color: #707070; + border-top-right-radius:2px; + border-bottom-right-radius:2px; +} + +QPushButton[cssClass="btn-check-right"]:pressed { + border: 1px solid #5c4b7d; + background-color:#1A5c4b7d; + font-size:18px; + color: #707070; + border-top-right-radius:2px; + border-bottom-right-radius:2px; +} + + +QPushButton[cssClass="btn-check-right"]:checked { + border: 1px solid #5c4b7d; + background-color:#5c4b7d; + font-size:18px; + color: #FFFFFF; + border-top-right-radius:2px; + border-bottom-right-radius:2px; +} + +QPushButton[cssClass="btn-check-right"]:checked:hover { + border: 1px solid #5c4b7d; + background-color:#33284d; + font-size:18px; + padding:4px; + color: #FFFFFF; + border-top-right-radius:2px; + border-bottom-right-radius:2px; +} + +QPushButton[cssClass="btn-check-right"]:checked:pressed { + border: 1px solid #20192e; + background-color:#20192e; + font-size:18px; + padding:4px; + color: #b088ff; + border-top-right-radius:2px; + border-bottom-right-radius:2px; +} + + +QPushButton[cssClass="btn-check-left"] { + border: 1px solid #335c4b7d; + background-color:#FFFFFF; + font-size:18px; + color: #707070; + border-top-left-radius:2px; + border-bottom-left-radius:2px; +} + + +QPushButton[cssClass="btn-check-left"]:hover { + border: 1px solid #5c4b7d; + background-color:#FFFFFF; + font-size:18px; + color: #707070; + border-top-left-radius:2px; + border-bottom-left-radius:2px; +} + +QPushButton[cssClass="btn-check-left"]:pressed { + border: 1px solid #5c4b7d; + background-color:#1A5c4b7d; + font-size:18px; + color: #707070; + border-top-left-radius:2px; + border-bottom-left-radius:2px; +} + + +QPushButton[cssClass="btn-check-left"]:checked { + border: 1px solid #5c4b7d; + background-color:#5c4b7d; + font-size:18px; + color: #FFFFFF; + border-top-left-radius:2px; + border-bottom-left-radius:2px; +} + +QPushButton[cssClass="btn-check-left"]:checked:hover { + border: 1px solid #5c4b7d; + background-color:#33284d; + font-size:18px; + padding:4px; + color: #FFFFFF; + border-top-left-radius:2px; + border-bottom-left-radius:2px; +} + +QPushButton[cssClass="btn-check-left"]:checked:pressed { + border: 1px solid #20192e; + background-color:#20192e; + font-size:18px; + padding:4px; + color: #b088ff; + border-top-left-radius:2px; + border-bottom-left-radius:2px; +} + + +QPushButton[cssClass="btn-check"]:checked { + border: 1px solid #335c4b7d; + background-color:#5c4b7d; + padding:4px; + font-size:18px; + color: #FFFFFF; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-check"]:checked:hover { + border: 1px solid #5c4b7d; + background-color:#44375f; + font-size:18px; + padding:4px; + color: #FFFFFF; + border-radius: 2px; +} + +QPushButton[cssClass="btn-check"]:checked:pressed { + border: 1px solid #44375f; + background-color:#44375f; + font-size:18px; + padding:4px 10px; + color: #b088ff; + border-radius: 2px; +} + +QPushButton[cssClass="btn-check"]:unchecked { + border: 1px solid #335c4b7d; + background-color:#ffffff; + padding:4px; + font-size:18px; + color: #707070; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-primary"] { + border: 1px solid #5c4b7d; + background-color:#5c4b7d; + font-size:18px; + padding:4px 10px; + color: #FFFFFF; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-primary"]:hover { + border: 1px solid #5c4b7d; + background-color:#44375f; + font-size:18px; + padding:4px 10px; + color: #FFFFFF; + border-radius: 2px; +} + +QPushButton[cssClass="btn-primary"]:pressed { + border: 1px solid #44375f; + background-color:#44375f; + font-size:18px; + padding:4px 10px; + color: #b088ff; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-secundary"] { + border: 1px solid #335c4b7d; + background-color:#FFFFFF; + font-size:18px; + padding:4px 10px; + color: #5c4b7d; + border-radius: 2px; +} + +QPushButton[cssClass="btn-secundary"]:hover { + border: 1px solid #5c4b7d; + background-color:#FFFFFF; + font-size:18px; + padding:4px 10px; + color: #5c4b7d; + border-radius: 2px; +} + +QPushButton[cssClass="btn-secundary"]:pressed { + border: 1px solid #5c4b7d; + background-color:#1A5c4b7d; + font-size:18px; + padding:4px 10px; + color: #5c4b7d; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-edit-primary"] { + border: 1px solid #bababa; + background-color:#ffffff; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #707070; + text-align:left; +} + +QPushButton[cssClass="btn-edit-primary-folder"] { + border: 1px solid #bababa; + background-image: url("://ic-folder"); + background-position:right center; + background-repeat:no-repeat; + background-color:#ffffff; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #707070; + text-align:left; +} + +*[cssClass="edit-primary-book"] { + border: 1px solid #bababa; + background-image: url("://ic-address_book_grey"); + background-position:right center; + background-repeat:no-repeat; + background-color:#ffffff; + font-size:18px; + border-radius: 2px; + padding:8px; + padding-right: 34px; + color: #707070; + text-align:left; +} + +QLineEdit { + selection-background-color: #5c4b7d; + selection-color: white; +} + +QLineEdit[cssClass="edit-primary-book"]:focus { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-book"]:focus:hover { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-book"]:hover { + border: 1px solid #707070; +} + +*[cssClass="edit-primary-book-error"] { + border: 1px solid #f84444; + background-image: url("://ic-address_book_grey"); + background-position:right center; + background-repeat:no-repeat; + background-color:#ffffff; + font-size:18px; + border-radius: 2px; + padding:8px; + padding-right: 34px; + color: #707070; + text-align:left; +} + +*[cssClass="edit-primary-multi-book"] { + border: 1px solid #bababa; + background-image: url("://ic-address-send"); + background-position:right center; + background-repeat:no-repeat; + background-color:#ffffff; + font-size:18px; + border-radius: 2px; + padding:8px; + padding-right: 12px; + padding-left: 12px; + color: #707070; + text-align:left; +} + +QLineEdit[cssClass="edit-primary-multi-book"]:focus { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-multi-book"]:focus:hover { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-multi-book"]:hover { + border: 1px solid #707070; +} + +*[cssClass="edit-primary-multi-book-error"] { + border: 1px solid #f84444; + background-image: url("://ic-address-send"); + background-position:right center; + background-repeat:no-repeat; + background-color:#ffffff; + font-size:18px; + border-radius: 2px; + padding:8px; + padding-right: 12px; + padding-left: 12px; + color: #707070; + text-align:left; +} + +*[cssClass="edit-primary-book-send"] { + border: 1px solid #bababa; + background-image: url("://ic-address-send"); + background-position:right center; + background-repeat:no-repeat; + background-color:#ffffff; + font-size:18px; + border-radius: 2px; + padding:8px; + padding-right: 12px; + padding-left: 12px; + color: #707070; + text-align:left; +} + +QLineEdit[cssClass="edit-primary-book-send"]:focus { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-book-send"]:focus:hover { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-book-send"]:hover { + border: 1px solid #707070; +} + +*[cssClass="edit-primary-book-send-error"] { + border: 1px solid #f84444; + background-image: url("://ic-address-send"); + background-position:right center; + background-repeat:no-repeat; + background-color:#ffffff; + font-size:18px; + border-radius: 2px; + padding:8px; + padding-right: 60px; + color: #707070; + text-align:left; +} + + +QPushButton[cssClass="btn-secundary-clear"] { + qproperty-icon: url("://ic-clear-purple") off, + url("://ic-clear-purple") on ; + qproperty-iconSize: 24px 24px; + border: 1px solid #335c4b7d; + background-color:#FFFFFF; + font-size:18px; + padding-top:4px; + padding-left:6px; + padding-bottom:4px; + padding-right:6px; + color: #5c4b7d; + border-radius: 2px; +} + +QPushButton[cssClass="btn-secundary-clear"]:hover { + border: 1px solid #5c4b7d; + background-color:#FFFFFF; +} + +QPushButton[cssClass="btn-secundary-clear"]:pressed { + border: 1px solid #5c4b7d; + background-color:#1A5c4b7d; +} + +QPushButton[cssClass="btn-secundary-new-address"] { + qproperty-icon: url("://ic-update") off, + url("://ic-update") on ; + qproperty-iconSize: 30px 30px; + border: 1px solid #335c4b7d; + background-color:#FFFFFF; + font-size:18px; + padding-top:4px; + padding-left:6px; + padding-bottom:4px; + padding-right:6px; + color: #5c4b7d; + border-radius: 2px; +} + +QPushButton[cssClass="btn-secundary-new-address"]:hover { + border: 1px solid #5c4b7d; + background-color:#FFFFFF; +} + +QPushButton[cssClass="btn-secundary-new-address"]:pressed { + border: 1px solid #5c4b7d; + background-color:#1A5c4b7d; +} + +QPushButton[cssClass="btn-secundary-label"] { + qproperty-icon: url("://ic-label") off, + url("://ic-label") on ; + qproperty-iconSize: 30px 30px; + border: 1px solid #335c4b7d; + background-color:#FFFFFF; + font-size:18px; + padding-top:4px; + padding-left:6px; + padding-bottom:4px; + padding-right:10px; + color: #5c4b7d; + border-radius: 2px; +} + +QPushButton[cssClass="btn-secundary-label"]:hover { + border: 1px solid #5c4b7d; + background-color:#FFFFFF; +} + +QPushButton[cssClass="btn-secundary-label"]:pressed { + border: 1px solid #5c4b7d; + background-color:#1A5c4b7d; +} + +QPushButton[cssClass="btn-secundary-copy"] { + qproperty-icon: url("://ic-copy") off, + url("://ic-copy") on ; + qproperty-iconSize: 30px 30px; + border: 1px solid #335c4b7d; + background-color:#FFFFFF; + font-size:18px; + padding-top:4px; + padding-left:6px; + padding-bottom:4px; + padding-right:6px; + color: #5c4b7d; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-secundary-copy"]:hover { + border: 1px solid #5c4b7d; + background-color:#FFFFFF; +} + +QPushButton[cssClass="btn-secundary-copy"]:pressed { + border: 1px solid #5c4b7d; + background-color:#1A5c4b7d; +} + + +QPushButton[cssClass="btn-secundary-add"] { + background-image: url("://ic-add-purple"); + background-position:right center; + background-repeat:no-repeat; + border: 1px solid #335c4b7d; + background-color:#FFFFFF; + font-size:18px; + padding-top:4px; + padding-left:6px; + padding-bottom:4px; + padding-right:30px; + color: #5c4b7d; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-secundary-add"]:hover { + border: 1px solid #5c4b7d; + background-color:#FFFFFF; +} + +QPushButton[cssClass="btn-secundary-add"]:pressed { + border: 1px solid #5c4b7d; + background-color:#1A5c4b7d; +} + + +QPushButton[cssClass="btn-text-primary"] { + border: 0; + background-color:#FFFFFF; + font-size:18px; + padding-top:4px; + padding-left:4px; + padding-bottom:4px; + padding-right:4px; + color: #5c4b7d; +} + + +QPushButton[cssClass="btn-text-primary"]:hover { + color: #44375f; +} + +QPushButton[cssClass="btn-text-primary"]:pressed { + color: #575756; +} + + + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH LINE EDIT +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="edit-primary"] { + border: 1px solid #bababa; + background-color:#ffffff; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #707070; +} + +*[cssClass="edit-primary"]:focus { + border: 1px solid #b088ff; +} + +*[cssClass="edit-primary"]:focus:hover { + border: 1px solid #b088ff; +} + +*[cssClass="edit-primary"]:hover { + border: 1px solid #707070; +} + +*[cssClass="edit-primary-disabled"] { + border: 1px solid #33ffffff; + background-color:#0f0b16; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #FFFFFF; +} + +*[cssClass="edit-primary-error"] { + border: 1px solid #f84444; + background-color:#ffffff; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #707070; +} + +QPushButton[cssClass="btn-expand"] { + background-image: url("://ic-expand"); + background-position:center; + background-repeat:no-repeat; + background-color:#FFFFFF; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SPLASH +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container-splash"] { + background-color:transparent; + background-image: url("://bg-splash-png"); +} + +*[cssClass="img-splash-logo"] { + qproperty-icon: url("://img-logo-pivx"); + qproperty-iconSize: 300px 100px; + border:0; + background-color:transparent; +} + +*[cssClass="bg-progress"] { + border-top:2px solid #b088ff ; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + background-color:transparent; +} + +QProgressBar[cssClass="progress-splash"]::chunk:horizontal { + background: qlineargradient(x1: 0, + y1: 0.5, + x2: 1, + y2: 0.5, + stop: 0 #80211a2f, + stop: 1 #80b088ff, + stop: 2 #80211a2f,); + margin-right: 2px; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH DASHBOARD +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + + +*[cssClass="text-warning"] { + color:#f84444; + font-size:16px; +} + +*[cssClass="text-violet-warning"] { + color: #877B9F;; + font-size:13px; +} + +*[cssClass="ic-warning"] { + qproperty-icon: url("://ic-transaction-warning") off, + url("://ic-transaction-warning") on ; + qproperty-iconSize: 24px 24px; +} + + +*[cssClass="text-amount-grey"] { + color:#707070; + font-size:20px; +} + +*[cssClass="text-stake-piv"] { + color:#5c4b7d; + font-size:16px; + padding:10px; + border-bottom: 5px solid #5c4b7d; +} + +*[cssClass="text-stake-piv-disable"] { + color:#d7d5da; + font-size:16px; + padding:10px; + border-bottom: 5px solid #bbb8c0; +} + +*[cssClass="text-stake-zpiv"] { + color:#b088ff; + font-size:16px; + padding:10px; + border-bottom: 5px solid #b088ff; +} + +*[cssClass="text-stake-zpiv-disable"] { + color:#d7d5da; + font-size:16px; + padding:10px; + border-bottom: 5px solid #d7d5da; +} + +*[cssClass="legend-chart"] { + color:#707070; + font-size:16px; +} + +*[cssClass="text-chart-zpiv"] { + color:#b088ff; + font-size:16px; + padding-left:4px; +} + +*[cssClass="text-chart-piv"] { + color:#5c4b7d; + font-size:16px; + padding-left:4px; +} + +*[cssClass="square-chart-zpiv"] { + background-color:#b088ff; + border:none; +} + +*[cssClass="square-chart-piv"] { + background-color:#5c4b7d; + border:none; +} + +*[cssClass="text-amount-grey-big"] { + color:#707070; + font-size:26px; +} + + +*[cssClass="container-chart"] { + background-color:#e8e7ee; +} + +QPushButton[cssClass="btn-chart-arrow"] { + qproperty-icon: url("://ic-arrow-left") ; + qproperty-iconSize: 12px 12px; + background-color: transparent; + border:0px; + border-radius:2px; +} + +QPushButton[cssClass="btn-chart-arrow"]:hover { + background-color: #B35c4b7d; +} + +QPushButton[cssClass="btn-chart-arrow"]:pressed { + background-color:#20192e; +} + +QPushButton[cssClass="btn-chart-arrow-right"] { + qproperty-icon: url("://ic-arrow-right") ; + qproperty-iconSize: 12px 12px; + background-color: transparent; + border:0px; + border-radius:2px; +} + +QPushButton[cssClass="btn-chart-arrow-right"]:hover { + background-color: #B35c4b7d; +} + +QPushButton[cssClass="btn-chart-arrow-right"]:pressed { + background-color:#20192e; +} + +QComboBox[cssClass="btn-combo-secundary"] { + background-color:#ffffff; + padding:6px 12px 6px 6px; + font-size:16px; + border:1px solid #5c4b7d; + color: #5c4b7d; + text-align: right; + border-radius: 2px; +} + +QComboBox[cssClass="btn-combo-secundary"]::down-arrow { + image: url("://ic-arrow-drop-down-purple"); + width: 24px; + height: 24px; +} + + +QComboBox[cssClass="btn-combo-chart"] { + background-color:#ffffff; + padding:6px 12px 6px 6px; + font-size:16px; + border:1px solid #ffffff; + color: #bababa; + text-align: right; + border-radius: 2px; +} + +QComboBox[cssClass="btn-combo-chart"]::down-arrow { + image: url("://ic-arrow-drop-down"); + width: 24px; + height: 24px; +} + + +QComboBox[cssClass="btn-combo-chart-selected"] { + background-color:#5c4b7d; + padding:6px 12px 6px 6px; + font-size:16px; + border:1px solid #5c4b7d; + color: #FFFFFF; + text-align: right; + border-radius: 2px; +} + +QComboBox[cssClass="btn-combo-chart-selected"]::down-arrow { + image: url("://ic-arrow-drop-down-white"); + width: 24px; + padding-right: 10px; + height: 24px; +} + +QComboBox[cssClass="btn-combo-chart-selected"]:on { + padding-top: 10px; + padding-left: 10px; + background-color: #5c4b7d; +} + +QComboBox[cssClass="btn-combo-chart-selected"]:disabled { + background-color:#20192e; + padding:6px 12px 6px 6px; + font-size:16px; + border:1px solid #5c4b7d; + color: #FFFFFF; + text-align: right; + border-radius: 2px; +} + +QComboBox::drop-down { + border-width: 0px; +} + +QComboBox::down-arrow { + image: url(noimg); border-width: 0px; +} + +QPushButton[cssClass="btn-check-time"] { + background-color:#FFFFFF; + font-size:14px; + color: #707070; + padding:4px; + border-radius: 2px; +} + +QPushButton[cssClass="btn-check-time"]:checked { + background-color:#5c4b7d; + border-radius:2px; + font-size:14px; + padding:4px; + color: #FFFFFF; +} + +QPushButton[cssClass="btn-check-time"]:hover { + background-color:#44375f; + border-radius:2px; + font-size:14px; + padding:4px; + color: #FFFFFF; +} + +QPushButton[cssClass="btn-check-time"]:pressed { + background-color:#20192e; + border-radius:2px; + font-size:14px; + padding:4px; + color: #b088ff; +} + +QPushButton[cssClass="btn-check-time"]:disabled { + background-color:#20192e; + font-size:14px; + color: #FFFFFF; + padding:4px; + border:1px solid #5c4b7d; + border-radius: 2px; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH CHECKBOX +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +QCheckBox { + spacing: 5px; + font-size:18px; + color:#707070; +} + +QCheckBox:checked { + spacing: 5px; + font-size:18px; + color:#5c4b7d; +} + +QCheckBox::indicator { + width: 24px; + height: 24px; +} + +QCheckBox::indicator:unchecked { + image: url("://ic-check-box"); +} + +QCheckBox::indicator:checked { + image: url("://ic-check-active"); +} + + +QCheckBox[cssClass="btn-watch-password"] { + spacing: 5px; + font-size:18px; + color:transparent; +} + + +QCheckBox[cssClass="btn-watch-password"]::indicator:unchecked { + image: url("://ic-watch-password"); +} + +QCheckBox[cssClass="btn-watch-password"]::indicator:checked { + image: url("://ic-watch-password"); +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH REQUEST DIALOG +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +QComboBox[cssClass="btn-combo-coins"] { + background-color:#5c4b7d; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #5c4b7d; + color: #FFFFFF; +} + +QLabel[cssClass="btn-combo-coins"] { + background-color:#5c4b7d; + padding:10px 10px 10px 10px; + font-size:16px; + border:1px solid #5c4b7d; + color: #FFFFFF; +} + +QComboBox[cssClass="btn-combo-coins"]::down-arrow { + image: url("://ic-arrow-drop-white-down"); + padding-right: 10px; + height: 16px; + width: 16px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH RECEIVE +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="label-address-box"] { + color:#707070; + background-color: #f2f2f2; + font-size:22px; + padding:10px 10px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SPIN BOX +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +QSpinBox[cssClass="btn-spin-box"] { + background-color:#FFFFFF; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #bababa; + color: #5c4b7d; + selection-background-color: #5c4b7d; + selection-color: #FFFFFF; +} + + +QSpinBox[cssClass="btn-spin-box"]::up-button { + image: url("://ic-arrow-drop-up-purple"); + subcontrol-position: top right; width: 20px; height: 20px; + border: 0px; + padding:0px; + margin:0px 5px 0px 0px; +} + +QSpinBox[cssClass="btn-spin-box"]::down-button { + image: url("://ic-arrow-drop-down-purple"); + subcontrol-position: bottom right; width: 20px; height: 20px; + border: 0px; + padding:0px; + margin:0px 5px 0px 0px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH COMBO BOX +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + + +QComboBox[cssClass="btn-combo"] { + background-color:#ffffff; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #ffffff; + color: #707070; + text-align: right; +} + +QComboBox[cssClass="btn-combo"]::down-arrow { + image: url("://ic-arrow-drop-down"); + width: 24px; + height: 24px; +} + +QComboBox[cssClass="btn-combo-edit"] { + background-color:#ffffff; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #ffffff; + color: #5c4b7d; + text-align: right; +} + +QComboBox[cssClass="btn-combo-edit"]::down-arrow { + image: url("://ic-arrow-drop-down-purple"); + width: 24px; + height: 24px; +} + + +QComboBox[cssClass="btn-combo-options"] { + background-color:#ffffff; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #ffffff; + color: #5c4b7d; + text-align: right; +} + +QComboBox[cssClass="btn-combo-options"]::down-arrow { + image: url("://ic-arrow-drop-down"); + width: 24px; + height: 24px; +} + + +QComboBox { + background-color:transparent; + padding-right:20px; + font-size:16px; + color: #707070; + border-radius:0px; + border: 0px; +} + +QComboBox QFrame { border: 0px solid #bababa; border-radius:0px;} + +QComboBox:on { /* shift the text when the popup opens */ + padding-top: 10px; + padding-left: 10px; + background-color: transparent; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + subcontrol-position: center right; + width: 15px; + right:3px; + border-top-right-radius: 0px; /* same radius as the QComboBox */ + border-bottom-right-radius: 0px; + border-radius:0px; + background:none; +} + +QComboBox::down-arrow { + image: url("://ic-arrow-drop-down"); + width: 24px; + height: 24px; +} + +QComboBox::down-arrow:on { /* shift the arrow when popup is open */ + top: 1px; + left: 1px; +} + +QComboBox:item { + color: #707070; + font-size:18px; + outline: 0px; +} + +QComboBox QAbstractItemView { + margin:0px; + min-width: 150px; + border-radius:0px; + font-size:16px; + outline: 0px; +} + +QComboBox::selected:item { border: none; outline: 0px; } + +QComboBox QAbstractItemView::item { + margin:0px; + background-color: #FFFFFF; + padding:10px 20px; + font-size:16px; + color: #707070; + border-radius:0px; + border:0px; + outline: 0px; +} +QComboBox QAbstractItemView::item:selected { + background-color: #d8d5e0; + padding:10px 20px; + font-size:16px; + margin:0px; + color: #5c4b7d; + border-radius:0px; + border:none; + outline: 0px; +} + +QComboBox QAbstractItemView QPushButton{ + border:0px; + outline: 0px; +} + +QComboBox QAbstractItemView::item:selected QPushButton:hover{ + border:0px; + outline: 0px; +} +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH RADIO BUTTON +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ +QRadioButton:checked { + color: #5c4b7d; + font-size:20px; +} + +QRadioButton:unchecked { + color: #bababa; + font-size:20px; +} + +QRadioButton { + color: #bababa; + font-size:20px; + spacing:10px; +} + +QRadioButton::indicator { + width: 26px; + height: 26px; +} + +QRadioButton::indicator:checked { + background: url("://btn-radio-active"); + background-repeat:no-repeat; + background-position:center; +} + +QRadioButton::indicator:unchecked { + background: url("://btn-radio-off"); + background-repeat:no-repeat; + background-position:center; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SCROLL BAR +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +QScrollBar:vertical { + border: 0px solid #bababa; + background:white; + width:7px; + margin: 0px 0px 0px 0px; +} + + +QScrollBar::handle:vertical { + background: #bababa; + min-height: 10px; +} + +QScrollBar::add-line:vertical { + background: #bababa; + height: 0px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} +QScrollBar::sub-line:vertical { + background: #bababa; + height: 0 px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + height: 0px; +} + + +QScrollBar::right-arrow:horizontal, QScrollBar::left-arrow:horizontal +{ + border: none; + background: none; + color: none; +} + +QScrollBar::top-arrow:horizontal, QScrollBar::bottom-arrow:horizontal +{ + border: none; + background: none; + color: none; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH DIALOG MASTER NODE +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="line-purple"] { + background-color:#5c4b7d; +} + +QPushButton[cssClass="btn-number-check"] { + border: 1px solid #5c4b7d; + background-color:#FFFFFF; + font-size:14px; + border-radius:11px; + color: #5c4b7d; +} + +QPushButton[cssClass="btn-number-check"]:checked { + border: 1px solid #5c4b7d; + background-color:#5c4b7d; + font-size:14px; + border-radius:11px; + color: #FFFFFF; +} + +QPushButton[cssClass="btn-name-check"] { + background-color: #FFFFFF; + border:none; + font-size:20px; + color: rgba(92, 75, 125, 0.5); +} + +QPushButton[cssClass="btn-name-check"]:checked { + background-color:#FFFFFF; + border:none; + font-size:20px; + color: #5c4b7d; +} + +QPushButton[cssClass="ic-step-confirm"] { + background-image: url("://ic-check-white"); + background-position:center; + background-repeat:no-repeat; + border-radius:11px; + border: 1px solid #bababa; + background-color:#bababa; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SEND +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container-coin-type"] { + background-color:#FFFFFF; + border: 1px solid #bababa; + border-radius: 2px; +} + + +*[cssClass="coin-icon-piv"] { + qproperty-icon: url("://ic-coin-piv") off, + url("://ic-coin-piv") on ; + qproperty-iconSize: 24px 24px; + background-color: #FFFFFF; + border: 2px solid #FFFFFF; + border-radius: 12px; +} + +*[cssClass="coin-icon-zpiv"] { + qproperty-icon: url("://ic-coin-zpiv") off, + url("://ic-coin-zpiv") on ; + qproperty-iconSize: 24px 24px; + background-position:center; + background-repeat:no-repeat; + background-color: #FFFFFF; + border: 2px solid #FFFFFF; + border-radius: 12px; +} + + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH Dialog +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container-dialog"] { + background-color:#FFFFFF; + border-radius: 2px; +} + +*[cssClass="text-title2-dialog"] { + color:#5c4b7d; + font-size:16px; +} + +*[cssClass="text-title1-dialog"] { + color:#707070; + font-size:22px; +} + + +*[cssClass="text-body1-dialog"] { + color:#707070; + font-size:18px; +} + +*[cssClass="text-body2-dialog"] { + color:#707070; + font-size:15px; +} + +*[cssClass="text-body3-dialog"] { + color:#707070; + font-size:17px; +} + +QDialogButtonBox QPushButton { + border: 1px solid #5c4b7d; + background-color:#5c4b7d; + font-size:18px; + padding:4px 10px; + color: #FFFFFF; + +} + +QPushButton[cssClass="btn-dialog-cancel"] { + border: 0; + background-color:transparent; + font-size:18px; + padding:4px 10px; + color: #bababa; + border-radius: 2px; +} + + +QLineEdit[cssClass="edit-primary-dialog"] { + border: 1px solid #bababa; + background-color:#ffffff; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #707070; +} + +QLineEdit[cssClass="edit-primary-dialog"]:focus { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-dialog"]:focus:hover { + border: 1px solid #b088ff; +} + +QLineEdit[cssClass="edit-primary-dialog"]:hover { + border: 1px solid #707070; +} + +QLineEdit[cssClass="edit-primary-dialog-error"] { + border: 1px solid #f84444; + background-color:#ffffff; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #707070; +} + + +QComboBox[cssClass="btn-combo-edit-dialog"] { + background-color:#ffffff; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #bababa; + color: #5c4b7d; + text-align: right; +} + +QComboBox[cssClass="btn-combo-edit-dialog"]::down-arrow { + image: url("://ic-arrow-drop-down"); + width: 24px; + height: 24px; + padding-right: 12px; +} + +QComboBox[cssClass="btn-combo-dialog"] { + background-color:#ffffff; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #ffffff; + color: #5c4b7d; + text-align: right; +} + +QComboBox[cssClass="btn-combo-dialog"]::down-arrow { + image: url("://ic-arrow-drop-down"); + width: 24px; + height: 24px; + padding-top: 1px; +} + +QLabel[cssClass="label-subtitle-dialog"] { + background-color:#ffffff; + font-size:16px; + color: #5c4b7d; + padding-top: 10px; + padding-bottom: 10px; +} + + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SETTINGS +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +QPushButton[cssClass="btn-settings-check"] { + background-image: url("://ic-arrow-drop-down"); + background-position:right center; + background-repeat:no-repeat; + background-color: #FFFFFF; + border:none; + border-bottom:1px solid #bababa; + font-size:20px; + color: #707070; + text-align:left; +} + +QPushButton[cssClass="btn-settings-check"]:checked { + background-image: url("://ic-arrow-drop-up"); + background-position:right center; + background-repeat:no-repeat; + background-color:#FFFFFF; + border:none; + border-bottom:1px solid #FFFFFF; + font-size:20px; + color: #707070; + text-align:left; +} + +QPushButton[cssClass="btn-settings-options"] { + background-color: rgba(92, 75, 125, 0.1); + border:none; + font-size:20px; + color: #707070; + padding:0 20px; + text-align:left; +} + +QPushButton[cssClass="btn-settings-options"]:checked { + background-color:#877B9F; + border:none; + font-size:20px; + color: #FFFFFF; + padding:0 20px; + text-align:left; +} + +QPushButton[cssClass="btn-settings-options"]:hover { + background-color: rgba(135, 123, 159, 0.7); + border:none; + font-size:20px; + color: #FFFFFF; + padding:0 20px; + text-align:left; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH Icons +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + + +*[cssClass="ic-close-white"] { + qproperty-icon: url("://ic-close-white") off, + url("://ic-close-white") on ; + qproperty-iconSize: 24px 24px; + +} + +*[cssClass="ic-arrow"] { + qproperty-icon: url("://ic-arrow-right") off, + url("://ic-arrow-right") on ; + qproperty-iconSize: 24px 24px; +} + +QPushButton[cssClass="ic-arrow"]:checked{ + qproperty-icon: url("://ic-arrow-drop-down") off, + url("://ic-arrow-drop-down") on ; + qproperty-iconSize: 24px 24px; +} + +*[cssClass="ic-arrow-down"] { + qproperty-icon: url("://ic-arrow-drop-down") off, + url("://ic-arrow-drop-down") on ; + qproperty-iconSize: 24px 24px; + background-color: transparent; + border:none; +} + +*[cssClass="ic-copy"] { + qproperty-icon: url("://ic-copy") off, + url("://ic-copy") on ; + qproperty-iconSize: 24px 24px; + background-color: transparent; + border:none; +} + +*[cssClass="ic-copy-big"] { + qproperty-icon: url("://ic-copy-big") off, + url("://ic-copy-big") on ; + qproperty-iconSize: 24px 24px; + background-color: transparent; + border:none; +} + +*[cssClass="ic-close"] { + qproperty-icon: url("://ic-close") off, + url("://ic-close") on ; + qproperty-iconSize: 24px 24px; + background-color: transparent; + border:none; +} + +*[cssClass="layout-arrow"] { + background: url("://ic-arrow-right"); + background-repeat:no-repeat; + background-position:right center; +} + + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH FAQ +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="text-title-faq"] { + color:#b088ff; + font-size:26px; +} + + +*[cssClass="container-faq-buttons"] { + background:transparent; + border:1px solid #b088ff; + border-radius: 5px; +} + +*[cssClass="text-subtitle-faq"] { + color:#FFFFFF; + font-size:22px; +} + +*[cssClass="text-content-faq"] { + color:#FFFFFF; + font-size:18px; +} + +*[cssClass="container-number-faq"] { + color:#FFFFFF; + background-color: #5c4b7d; + font-size:14px; + border-radius: 2px; +} + + + +QPushButton[cssClass="btn-faq-exit"] { + background: url("://ic-exit"); + background-repeat:no-repeat; + background-position:right center; + background-color:transparent; + border:none; + padding:0 30px 0 0; + font-size:18px; + color: #CCFFFFFF; + text-align:left; +} + +QPushButton[cssClass="btn-faq-web"] { + background-color:transparent; + border:none; + font-size:16px; + color: #b088ff; + text-align:left; +} + + + +QPushButton[cssClass="btn-faq-options"] { + background-color:transparent; + border:none; + font-size:18px; + color: #FFFFFF; + padding:0 20px; + text-align:left; +} + +QPushButton[cssClass="btn-faq-options"]:checked { + background-color: rgba(176 ,136 ,255, 0.2); + border:none; + font-size:18px; + color: #FFFFFF; + padding:0 20px; + text-align:left; +} + + +#scrollAreaFaq QScrollBar:vertical { + border: 0px solid #bababa; + background:#0f0b16; + width:4px; + margin: 0px 0px 0px 0px; +} + + +#scrollAreaFaq QScrollBar::handle:vertical { + background: #5c4b7d; + min-height: 0px; +} + +#scrollAreaFaq QScrollBar::add-line:vertical { + background: #0f0b16; + height: 0px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +#scrollAreaFaq QScrollBar::sub-line:vertical { + background: #0f0b16; + height: 0 px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +#scrollAreaFaq QScrollBar::add-page:vertical, #scrollAreaFaq QScrollBar::sub-page:vertical { + height: 0px; +} + + +#scrollAreaFaq QScrollBar::right-arrow:horizontal, #scrollAreaFaq QScrollBar::left-arrow:horizontal +{ + border: none; + background: none; + color: none; +} + +#scrollAreaFa QScrollBar::top-arrow:horizontal, #scrollAreaFa QScrollBar::bottom-arrow:horizontal +{ + border: none; + background: none; + color: none; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH WELCOME +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +QPushButton[cssClass="btn-close-white"] { + background: url("://ic-close-white"); + background-repeat:no-repeat; + background-position:center; + background-color:transparent; +} + +QPushButton[cssClass="ic-step-confirm-welcome"] { + background-image: url("://ic-check-white"); + background-position:center; + background-repeat:no-repeat; + border: 1px solid #6C529D; + border-radius:11px; + background-color:#6C529D; +} + +*[cssClass="text-title-welcome"] { + color:#FFFFFF; + font-size:26px; +} + +*[cssClass="text-main-white"] { + color:#FFFFFF; + font-size:20px; +} + + +*[cssClass="container-welcome"] { + background-color: #000000; + border-image: url("://bg-welcome") 0 0 0 0 stretch stretch; +} + +*[cssClass="container-welcome-no-image"] { + background-color:#000000; +} + +*[cssClass="container-welcome-box"] { + background-color:transparent; + border: 1px solid transparent; +} + + +*[cssClass="line-welcome"] { + background-color: #807b8a; +} + +*[cssClass="container-welcome-stack"] { + background-image: url("://bg-welcome-container-png"); + background-position:center; + background-repeat:no-repeat; + background-color: transparent; + border: 1px solid #b088ff; + border-radius: 4px; +} + +*[cssClass="container-welcome-step1"] { + background-image: url("://img-welcome-step1"); + background-position:left bottom; + background-repeat:no-repeat; + background-color: transparent; +} + +*[cssClass="container-welcome-step2"] { + background-image: url("://img-welcome-step2"); + background-position:left bottom; + background-repeat:no-repeat; + background-color: transparent; +} + +*[cssClass="container-welcome-step3"] { + background-image: url("://img-welcome-step3"); + background-position:left bottom; + background-repeat:no-repeat; + background-color: transparent; +} + +*[cssClass="container-welcome-step4"] { + background-image: url("://img-welcome-step4"); + background-position:left bottom; + background-repeat:no-repeat; + background-color: transparent; +} + +QComboBox[cssClass="btn-combo-welcome"] { + background-color:#171022; + padding:10px 20px 10px 10px; + font-size:16px; + border:1px solid #b088ff; + color: #FFFFFF; +} + +QComboBox[cssClass="btn-combo-welcome"]::down-arrow { + image: url("://ic-arrow-purple-down"); + width: 42px; + height: 42px; +} + +QPushButton[cssClass="btn-welcome-back"] { + background: url("://ic-arrow-white-left"); + background-repeat:no-repeat; + background-position:center; + border: 0px; + background-color:#5c4b7d; + color: #5c4b7d; +} + +QPushButton[cssClass="btn-welcome-next"] { + background: url("://ic-arrow-white-right"); + background-repeat:no-repeat; + background-position:center; + border: 0; + background-color:#5c4b7d; + color: #5c4b7d; +} + + +QPushButton[cssClass="btn-welcome-number-check"] { + border: 1px solid #5c4b7d; + background-color:transparent; + font-size:14px; + border-radius:11px; + color: #807b8a; +} + +QPushButton[cssClass="btn-welcome-number-check"]:checked { + border: 1px solid #b088ff; + background-color:#b088ff; + font-size:14px; + border-radius:11px; + color: #5c4b7d; +} + +QPushButton[cssClass="btn-welcome-name-check"] { + background-color: transparent; + border:none; + font-size:20px; + color: #807b8a; +} + +QPushButton[cssClass="btn-welcome-name-check"]:checked { + background-color:transparent; + border:none; + font-size:20px; + color: #b088ff; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH Tooltip +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +QToolTip { + color: white; + background-color: #b088ff; + border: none; + padding:4px; + border-radius:3px; + text-align: center; + qproperty-alignment: AlignVCenter; + min-height: 25px; + min-width: 40px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH ROW LIST +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="container-list-menu"]{ + background-color:white; + border-radius:2px; + padding:15px; + border: 1px solid #bababa; +} + +*[cssClass="btn-list-menu"]{ + border: 0; + background-color:#FFFFFF; + font-size:16px; + color: #707070; +} + +*[cssClass="btn-list-menu"]:hover{ + color: #5c4b7d; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH EMPTY LIST +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +*[cssClass="text-empty"]{ + color: #707070; + font-size: 18px; +} + + +*[cssClass="img-empty-master"] { + qproperty-icon: url("://img-empty-masternode"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +*[cssClass="img-empty-transactions"] { + qproperty-icon: url("://img-empty-transactions"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +*[cssClass="img-empty-peers"] { + qproperty-icon: url("://img-empty-peers"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +*[cssClass="img-empty-contacts"] { + qproperty-icon: url("://img-empty-contacts"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + + +*[cssClass="img-empty-error"] { + qproperty-icon: url("://img-empty-error"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +*[cssClass="img-empty-multisend"] { + qproperty-icon: url("://img-empty-multisend"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +*[cssClass="img-empty-staking-on"] { + qproperty-icon: url("://img-empty-staking-on"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + + +*[cssClass="img-empty-staking-off"] { + qproperty-icon: url("://img-empty-staking-off"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +*[cssClass="img-empty-privacy"] { + qproperty-icon: url("://img-empty-privacy"); + qproperty-iconSize: 100px 100px; + background-color: transparent; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH TREE WIDGET +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + +#treeWidget { + border:1px solid #5c4b7d; + background-color:#FFFFFF; + background-position:center; + background-repeat:no-repeat; + selection-background-color:#33b088ff; + selection-color: white; + font-size:14px; + border-radius:0px; + color: #707070; +} + +#treeWidget::indicator:first:checked{ + image: url("://ic-check-active"); +} +#treeWidget::indicator:middle:checked{ + image: url("://ic-check-active"); +} + +#treeWidget::indicator { + width: 24px; + height: 24px; +} + +#treeWidget::indicator:indeterminate { + image: url("://ic-check-box-indeterminate"); +} + +#treeWidget::indicator:unchecked { + image: url("://ic-check-box"); +} + +#treeWidget::indicator:checked { + image: url("://ic-check-active"); +} + +#treeWidget::item { + border:none; + border-bottom: 1px solid #bababa; + border-radius:0px; + color: #707070; + padding-top: 6px; + padding-bottom: 6px; + background-color:rgba(255,255,255,100); +} + +#treeWidget::branch:closed:has-children:!has-siblings { + border-image: none; + background-color:rgba(255,255,255,100); + image: url("://ic-arrow-drop-up"); + border-bottom: 1px solid #bababa; +} + +#treeWidget::branch:closed:has-children:has-siblings { + border-image: none; + background-color:rgba(255,255,255,100); + image: url("://ic-arrow-drop-up"); + border-bottom: 1px solid #bababa; +} + + +#treeWidget::branch:open:has-children:!has-siblings, +#treeWidget::branch:open:has-children:has-siblings { + border-image: none; + image: url("://ic-arrow-drop-down"); + border-bottom: 1px solid #bababa; +} + +#treeWidget::item:hover { + border:none; + border-bottom: 1px solid #bababa; + border-radius:0px; + color: #707070; + background-color:#26bababa; +} + +#treeWidget::item:selected { + border:none; + border-bottom: 1px solid #bababa; + border-radius:0px; + color: #707070; + background-color:#33b088ff; +} + + +#treeWidget::item:hover:selected { + border:none; + border-bottom: 1px solid #bababa; + border-radius:0px; + color: #707070; + background-color:#33b088ff; +} + + +#treeWidget::branch { + background-color: #FFFFFF; + selection-background-color:#33b088ff; +} + +#treeWidget::branch:selected { + background-color:#33b088ff; +} + +#treeWidget::branch:!selected { + background-color:#33b088ff; +} + +#treeWidget::branch:hover { + background-color:#26bababa; +} + +#treeWidget::branch:!has-children { + background-color: #FFFFFF; +} + +QHeaderView::section { + background-color: #5c4b7d; + color: #FFFFFF; + padding-top: 6px; + padding-bottom: 6px; + font-size:14px; + border:0px solid #5c4b7d; +} + + +*[cssClass="table-tree"] { + border:0; + background-color:#FFFFFF; + background-position:center; + background-repeat:no-repeat; + font-size:14px; + border-radius:0px; + color: #707070; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SEND MULTI +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +QPushButton[cssClass="ic-multi-number"] { + border:0; + background-color:transparent; + background-image: url("://bg-multi-number"); + background-position:center; + background-repeat:no-repeat; + font-size:12px; + border-radius:12px; + color: #5c4b7d; +} + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH OPTION BUTTON +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +*[cssClass="btn-options-indicator"]{ + border:0px ; + background:#5c4b7d; + border-radius: 5px; +} + + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH SNACK BAR +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/ + + +*[cssClass="container-snackbar"]{ + background-color:#382d4d; + border-top:2px solid #b088ff; +} + +*[cssClass="text-snackbar"]{ + color:#FFFFFF; + font-size:20px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH LOADING +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH + */ + +*[cssClass="container-loading"]{ + background-color:#BF000000; +} + +*[cssClass="text-loading"]{ + color:#ffffff; + font-size:20px; +} + + +/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +HH INTRO +HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH + */ + +*[cssClass="text-intro-white"] { + color:#FFFFFF; + font-size:16px; +} + +QPushButton[cssClass="btn-dots-welcome"] { + border: 1px solid #b088ff; + background-color:#b088ff; + font-size:18px; + padding:8px; + color: #FFFFFF; + border-radius: 2px; +} + + +QPushButton[cssClass="btn-dots-welcome"]:hover { + border: 1px solid #b088ff; + background-color:#44375f; + font-size:18px; + padding:8px; + color: #FFFFFF; + border-radius: 2px; +} + +QPushButton[cssClass="btn-dots-welcome"]:pressed { + border: 1px solid #b088ff; + background-color:#44375f; + font-size:18px; + padding:8px; + color: #b088ff; + border-radius: 2px; +} + +*[cssClass="edit-primary-welcome"] { + border:1px solid #b088ff; + border-right: 0px; + background-color:#171022; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #FFFFFF; +} + +*[cssClass="edit-primary-welcome"]:focus { + border: 1px solid #b088ff; + border-right: 0px; +} + +*[cssClass="edit-primary-welcome"]:focus:hover { + border: 1px solid #b088ff; + border-right: 0px; +} + +*[cssClass="edit-primary-welcome"]:hover { + border: 1px solid #b088ff; + border-right: 0px; +} + +*[cssClass="edit-primary-welcome-disabled"] { + border:1px solid #33ffffff; + border-right: 0px; + background-color:#171022; + font-size:18px; + border-radius: 2px; + padding:8px; + color: #66FFFFFF; +} + +QRadioButton[cssClass="radio-welcome"]:checked { + color: #b088ff; + font-size:20px; +} + +QRadioButton[cssClass="radio-welcome"]:unchecked { + color: #bababa; + font-size:20px; +} + +QRadioButton[cssClass="radio-welcome"] { + color: #bababa; + font-size:20px; + spacing:20px; +} + +QRadioButton[cssClass="radio-welcome"]::indicator { + width: 26px; + height: 26px; +} + +QRadioButton[cssClass="radio-welcome"]::indicator:checked { + background: url("://ic-radio-liliac-on"); + background-repeat:no-repeat; + background-position:center; +} + +QRadioButton[cssClass="radio-welcome"]::indicator:unchecked { + background: url("://btn-radio-off"); + background-repeat:no-repeat; + background-position:center; +} \ No newline at end of file diff --git a/src/qt/pivx/res/img/ani-loading-dark.gif b/src/qt/pivx/res/img/ani-loading-dark.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8c0e075402fcda3a20528ea62f1c86801956291 GIT binary patch literal 206152 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
rH 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%0AkJ(;Jz&-#tWBV&@?S{DA__v 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 literal 0 HcmV?d00001 diff --git a/src/qt/pivx/res/img/bg-dashboard-banner.png b/src/qt/pivx/res/img/bg-dashboard-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..e4073619ef9d747ec1775a46efc5a823ba87b0e2 GIT binary patch literal 144661 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%0D~b~pJ|#O+ zJ&})ojGbudFGk$#h-&NX5BZ35E*}-#sT0=7`?`E?mz-`AuIyOpxVCR5$3`G;;Mccq zvt&Po?oA)*i*9_B-^bgf44>`bOP7pH9K-vl4>KlMkIuX!U-Yl6>Hnr@9*CE{@{2b# zWAr=dA|A-AjQLvgdX%Znq2b*m!Bc5UTdGfL%AGBq;phDVU%uGV$OwfTFNoy=2i^KM zj$irk8mkoty0_!|xAMYQ!wmiSi=lC+OrsoANtQtePop_54X)xXd;?PZwT_1OyQO?1 z3peBI-|~31U48t}zv9q&bmFRfq`S(;nu(Xvk9~UVQ@LKf?$>#z39)Dvu|DJln)GRW z?0x&nN7Uzwe)#78r*vL(A;ZR_909HUFZd4CO}aKU4kT8fw#;%CCRO$`yh>COZ7ow| zbp+^01U=|0=QM;e2+IbYOZD4N@0PcZk1v_8THEg!UuMEede#1w@KuSKK<4Q>_BBC# zJwqf#CvN4JDNR6rcK_Joq6Ci4mmrBC2X-osqQFZlY(nw)D+BG6*kZx^l~)RTN_kyaIbe8--47wGH19meZ{A<_#@vg#8jWp$mr>FZKOLr zJPxkgpJt5%yYg~Hr^Lx+~58V-G1Hf8_S~v6`)=f3kO%{Esy|-xY_xZJdpQkERKa)36mY42#BXRNS@X zeSJ`7PS5_^<$MDU zw}$(E1N%lp#{69qTa3iqc7-?AkNJD@+l(umXsn2B(tV#`MD~(0Kd8^Zy_!8WXZx3X z5;LeNdA&3d1=B0uX@c53Rm`Ks-|fm@x*=hqnk!NDa-u>xyU;5tpJB0i#?mIly5quo zo}Kz1+o_GC%2q)tmyd=j&r;X(3UuZ*^V8|#%^(XN3(Gj-o4w3OMAW>*h0%rQ`gCT~ zHTN||__oEDIHY%$Pv7!)et4vX-&)jQpykTqS2(XcOQ#{k9ufgowrvDqy1^q1 zHu0B!vEd7GaF#!pagd4MmS$|*ecC*fp!**}^lkdBfYoL?Lw6(KSFmp^|NQBz|C}&$ z21oR{ULY~Shxbyf`Xm=3-|TJ<=yL3^nZoKM|E#*VmB(d@>Efnu-~NufOiTrS-GRbJey|25>ee_U|yU4xEXzYh_q2D>_DJwv2K6-<5KK%|vZmD~pLtgPUV( zdWrxljEjG zx|{14txS&k)()hICk)Z|8B8JRq6z|ax^ySRT`iXM;8({QmA2xS4D*VWf3qLsZY_(; zEHA^cSypUZ;X$4;GkZ>-@%MFR|H+YQS8~s2a$OcfIe5a%bSlgAj7}w3N`H&mk+#o= zqZ@W!q^c2gmb6Sm*)vNTzNIVvowylYn{JYSbrz8HR{n}F>g6AQCy*Cq9Hkppd~@FN z!T-2V{O$pV3qSAJpZg2XXw{2K2r(QHV2 zS6`bL=E<*oMQr0A^8XF90?3byp=GSkXqgg%o3@S=bsWWe z<#C)|pP=}?{>D19*vYAP#|IdD<>RaR=TvOtrf}}cduF`A*)xZ?HPs=8E$;nGQRDo~ zoC`wg3uuD{vO@h*l79MknwaiBA(+B!;z=PrL}zHYh~|F&19}MUf1+`mi8-gz`Uy%>FHjRi);B^-6k^gI>D;dwiC+RMZ{d5 zZvp5xOst>_#MF6EFpX{C4~MoAhT=sQT|6kzJV~Dg$^zoD7@OiE9`E>n7lo#j z*B7*1A^}u9G&ri-F~x`hV_=z5o)zx;WQVScfh08ZiiSa7<-Fy**+HA}Dcy~QF4=M9 zTi~bS%cOLmKSmsAkKXqkrBZ`5Y6yG>xLqmB&=C^Evvg zHa0FL3!IPkL$-OQ;jdCAAO0-*#+N65e&yG3I20psQKbzl^>^lF4z<3hy|Db@E|Ykn zsi${tGtX8o8$MjJHZlHvD{Z9qWiA^*3JH%37+ab0jJyVIRmW zC5buw(39hf@W%u&t@2=-Py}Y)c*g$9*xQeq(+g zDJT_jI%}TjaWn_3RC;qCn7_v)MQ%S=AKNh3BNYlZPVkKPAz#2qAFDT&qW>JR&?n;^ zDX@q21F;1)`MwP(T_26!H(3{i6*2W^k;+#!uf&6A%y7S@fd;$zR6Q=Su`7;~CB75n zwr{N>?&J9iFLPw=yznfcC}6;_Uu8BK2Y+@3kTqB-E1+r^i84s_2Hlm*P&h>NdzZE{^(q$*!cW9PIdxbXW&Z*v6i_O@f&z`KwaJR?!7Aj(g&)Cjy z5q1q~{fW(zFZM`|U&&Ms^!rl#b1hB@tXM@AYXcsEp`ZE%l74l}c)07}`yc!~v3bEN zeH<(O+6xzdeA&TWE`F33z>?-}7GG?kQGamP2)}YeXJrmNQuOpS=fc7|Y@n}4yXm|@ zs>L-?AtMo(@p#Zs^_yk!n;zeC)7*)xi1}HKSG>*jyFbs3_K*3woc&Vb4orQ{IY<3H z)}00Z7Q;^G?bpg6(+s5bHvAlt-cx&3U2A$*hH!Equjw)p1k>53iR_X-Lhv!b?#hj^ zWd69AbPf!YHPMlxNwLIipOM8!`ie2I`73QyGdnj;7zSJJNSo#4rR$M0O0Mumz8!ov zOGMYV51Q*UBDcJFDaq+Z@iV0~&ohqfv}M!%tQ{NG{S-d)=@Qm=2{}`17I;;m1!Lhk z-!Lh>9#r)3izB`f8HpGou6f0!0PF*q?$ZRQ;&W%(l@FS|ZYd9Dduer!3FpM(5dxEoXV# zA1z8o?XLw^juHr0{q7p^K?)SXpBf(@ggIjiTkS8l&IX+`<{NdZI6Q|yJ8MT`=^5SV z6G_l9Hs5c55`UURPmMpPgm0^)-~1>IJP6-r**P$t=d<706p}w|d^i}Sw);`-7YfnW z|Ml1Z^_RKxt#FPf97<%oqAZgvG{aUxJT9p5m}^qr)eE90{K6m!R==kOkpC z-}hs;q5oPb_s*nEKGur94b+m-;VSA5u`b5#^C)r5Zv!m|$Cy8lt6h6~uNBcgw@+)T zZs2SE;FdD*GU%oOxYnDhAOB7ht+%nmTHoR`j}O_K=(+2!>VUfm^H+|DoOYjGPFQ_= zXa3w4qgph_c}oVzF5WJ_Zc?fgHy+|z>^Tk3-Gu&+TVJqKU(V8U zH_zpl>7)=C%1TV;-`X&71}#b$w9?TBeV+@ma6epq?WDw=$u~E7*pM)z=cQ<7jt?Y$ zX0S<%7AphQZ*@z0x)YSIN|b?h91sBDFmF8)oRuAaxjme;Z4l6+aWPTkf2(S#Y?&;2 zKl@G5m5pchns}BvS_L*`d+XMs`xgRcEr^WD31@9@^=~-NY?HV%8tO(LsFRIhCA_zv zd1$lx5@~z>9PJqO^gai!9lppb2Kok=wcp5}{Wkh3*UjXpOnh0k>W*jnei;iw%|ddB zKrbKlJ>o4&hWFAOaQu!BQ=kMww)H@}5}~oS)He*;QpWKTNeIr{R}1pJX^O?q8n5Yr zTpjqAkB)u;rP6nu+hWuDBL2v#ST=NSbHr$0+_f^=u-3M3!~6|l*gg8_I1XI-XYK#B zR*%+XyRYM~CO!!3f%b)R0IDr*ow8W1x zs`(xbG#*QvalBCZo`80%RAbqxRr&Yf2`bMn|FJRzJkNwYf@uBwyZ%AinK!t zpP%oYCek#twvj1DAupD1ETg2^kdJe3$Jlj7FX|m@U9}}v0+xfx^jqohx_5=a4(CE+@XZ&Y%W>~hTkrKd{U~2f0TG0ptD$$^g z{K?Y*`qEaU|8q1fWm-#6q)xTN45OyXBWs;5+;pI1ZG!2cG?- z_B%sxNyw1MLM&e4={&=t4tnuqnp}5=k$L*`O$YSMo}1}4A&Vj(a6)F*_ZG$i91L?+ zIdJ&(WaWKIEFW^#M2fI${hm{aZ}kHKzwGt5QKunrA65vvN9>2eegGqWAh>jXrwT=e zo&NRb|FthTVs8HO#peERHhc%dnsg z45t%WIZNNR)`5N?@+@r>bH8||RFK&bvH;>Sfbd_wGscO2(?78hN57mp@-0@MwaIG) zmWHihW4>0rB=OI1hYl~Xe(pHeH)?6KvdQfWDI~TwR2+vMaI`wgay>Or{H*UZ@jFbo zQ_Yn0_jI|oMQJ<-yo$99IEKBfE|3Hk8bnK9ajWGX*u-GrAPsv+Bz-nF8V7#oQ(2K7pHNe~J>- zSBq~ARDUL59<$Lt@rydx*-!0ro?Z$xXKlEnTaWm<+^E;JJ<%~=sdJW@)7Re~yv`4I zkwQQ$m4jW-|xr|+O*KW&-{Zp)L+p(eE1RVg^Vws|FZX&#INJXcs3zE z*%rjD0Or=o@06YW2LZR{E$tf;M8?@15Cain7$K*e@ZtAa)LbLe0P$`p~rqNk? z%T^dj%P*$@U1cAS(oMMXcgIpP(qUGoG7X{1@19rK=laQdQO%{vHfnQvPW}4Qcgwto zuj{cs4z8?TNB0%yvHqUEg}=N`WRyr@+eDMe$B+BukBpRLj-DS%l;bi}xG49X_^9<)_sFR*L@7VS#y(RNic<;pNbyXjK zBIw?!><`B7ePzm+n|`dP-YuPY2pNC<`ES2#qxB;$AZQT#3E{7d)1-TSoZJ4eLCa={ zeu9+pFMh`dcc>T-3nX78wS}D_8kGwG*pKXgZLZ`pi1^}#3!BPq5G(*4iNabD%fcoh zF5hBqc5#<~oYnwF9q^HVv>{!E)I`B9(yW-RmCyD#&;cvGd*xE0UzmV+i1wy|ewJg@ zWz2uHp5r>G^%pdWKC{-T_1!hi-5SOKHVu(JMt6tB0HJkaSJ5))r}%eIGbV6Vt_vtj z*LpMkW8Y~~#t=8ywQGu(RNoqh>g|GAJ0Wo{bsP2;A+pZelX|x|2L3HsE8t*xEy_WzQr`DfDvftPg5PID@oh$*egw zh#1r%cn7m{ zbe&;|kGd_{huD~-&hacBTzT_%aR6{;f*tlp6B$YTlw=ihqXVGj;Dip}o*k<1FbAGi zr?}QY)R2V}I<%H(6fLFBC|g_2$E93fbB*8fzPQt5SDR*g&+)0?>P{2UHGc;ESv#H8 z_0ry-lPdP*GQ zBzJ85>+An9`x{aAh0-~us&9>nZ)BPK)p9(}!VZw4@5ifO{+%YosQsg-bKGkU&04{m`PIsJYt?4Zh^`@wDKwLIQOB6mml#eO z=p>K#iCp6|CIudRehoCi8nsfskA`dgq+5|Fn9FnHyCfY5Mo$gZC)xWliJqB9Rzli! zRnu~ZzfrG{RW2KH9OOAmbUWw3%1Aq0Mw2GRo}0icF*iabo?PX3m;fRdc=xq{jeK7N zqX%?GD8cQD2&B|wpgNMynf2MU8Uq{_OL4>^s$~2`194>fDDhJ7)uDO|pjIC?#{vnE zToY->#Shh8mT;jH;==AV#>3CG;v4>1(kJ*VVf5Q*Lov-+zzQYov=*J=A4;Rcs24z# zW&Lt`B`9u5w21;th>G4BpS1E|x|J?#g}PTR%uVV-mL2Pw?6DUr^+UzvE#@bQ)ox+8 z>3*Sv=pPbm*la$o4*6c^Oh?&H?1)FSGc3`p&$ZJ|Nrbub#i*<3#_}on+Y2=&o(bBa zIpc42#CGl-ttO|={hcZI(+f87B9he`Z6@KaMy3>#v#7Q?f!M23SyV(rF7Vt z?S2LLKlUijzwMWCVk6=Vk^bbH1$NfUTfJ}j<1XRT=%e8z?|-f_4R8PLB=-ef%u~o@ zCh?0idnv5v4fAkV3^6zHt2p&?#_nA3U)`~C$@cl%?`#1f#=iJ6N74_-+XZKlLwukE zAANbW0{&#b@)N$C*tuf*h0FaHjeHI|^WZOR;8gW-TpDdZZ+rUBk3Q&2(P`=Xt-rcn zb&_fQN^@@LjsC5UvRqFM6hF^9O&CM0&C-uopz|{aHoBdRTLp+SpD{X0_2kqzyN#;} zWiGlKKa9_klyP>_gu-|TPkLy~AL-8W;t__+6xt(2s7g(?R8+U=A zNfvCnv2ZZ`<2GG1#}=bA2k3U&nHH;t6|GAN7@K~3nL#rd*u|XBrk{=~vn+NfueBzk z4RvAHflmeL9IZt`MM|~DBsx6WMpgd=J1a}or%8YD-zh~@qAzl21*JFGUO*B)-FYw0 zjxhSeNiEGpO1WtUSO$Q1Zgg#FMRkF4(* z-N>0~55h;{pENHUUZX!T`9F4d$?ie>akmEh8QL_l&Q;l|Z@DP;3j=?YhRCpgtPY0* zu21}e4&{cyT`&BiO+LW>hT!rjO#Kyx1n2XvgS5i$-~Tq5JyyouO z@S|t^aiv=O`zAal>>Va2!@_TB{1^md{?{-&;x=?AwrS5etc;{rsm!wUZ>MQx&@*a# zN$LN>ft^oJZ3T8{tY9Bw6+hBx#xJJbcbZ72Jj1vm5B!m>?w-Uy=2O)qDep|G7De(I z)uF?Ja45c~S7WZ@a4YhZYd#t4gG_dvOU<_A^dRbO*^iJZ8RwpO+(e&qEf7xj9=5@y z>o!9soGD-zUQ5gweZm_y9Br5?BS4&3M3jQU`` zbXWh@$QC~uh*pE1biO{b;JO;lpo#D!Si&>SFQbfH1E1@f3&l_z?a%?QntJwcyGjn( zzM?XCRX^F`mh3-=g3GmqapS`Cv?|M=_;&_B@{jp5Uh2m7S(WuTA00)#^q(;|^W&DDyB*lUZV^w!M_f%Rh9c;8 z+n6yP+Wes`kNr%U&+2Xvo5x4YrF*LE`tTf$+3C-(|Koi%=E-yVzBY8o;{xk|RlI)r z{MlZ4YIl#A6U)@x=4hXD%NHsLDfwQWwY+WAFrPX}smz<^XoL>_J{4%oI)RtbW<3k* z1E=QqdDKxluR)l692EHB`AwV$jQBtn`NDp0u{=ukfx_P)it*;`Gm0c$@@K5?^TcTW z^tC@vZmTb;lb@&!j(UvuEEZu5vYg9;Oyh}nRj?2P|?a3<>Rcj!BtvH&M5~z%fhRV{N7U?bETP%6gNm00-kz6Kdjy)lpsrnMk9AJnhC}0TRvdZ-E%Lnq z2JdIRL@PNvXX!HZ|H`UHuLUF^c456TTEqk`b^Dzrc;YWxGP_6IiPFni29gb!)t=(4 zc=?BlnpHpq^rpeTwkh4yrp7kbO0!Gvge`zNr;$##LG7&Gor_ zmOi7UZiYX@$z|{maz3o2*vm9ZkMc*EEBPZIc%nV4liaJb_mCQ+xphl>BmiP@eg|D5 zI!Q`zo#&+JpiPGwWmZ;|oUGN(I^U3KUXA}lDr6m1B2xB z@(~sS?_a>G4J8U+e#9X;qx>t`;*0iW-2VFI-~OYayni6(rZqM`Nxx=huqRFa$k>}R< zuc^tJ+(T@-?($)iT6l-Y+O~}Uv{`7n!w==2U84k~=E=5u1rqcpN8hB=~}%2tkin zfZ4+5;g(oy9JYc@V73Tx518;=wnmY%ECLyfK#QmmzwA((sCs{WPb*&b~5!`eFhP)hof+aX%_+jP(rSUaEDbyn99ltTKoA4NSoE1XMn%}Cx> zCZDyp#9N!2G`=BG-AZ_Fubf`dugYg~#x{5qADlDZS$&o*-dwh_Bh$=q#h2++c6OEy zXEf(^Opc5tIZoAUtn~R1J{Lc!jj>T}BfWH(UoME?B8-{1cBJ5#LG58f?8 zdbP$XWQJ4Xq}YNCx4T#%I{AdW!WUX!oQ|R9l7Yr%&hnwqe$R6}x;1WYeT1!Q^_8r# zfu3uR91AOnzfw8gaSsx!q>H;KBN=g=d<=opw6dOt%2sEY4nw#<_MIm5bJIlqA0EazA z6ED(^0e_j>HQu;~(8Q zhPNE7*#XisBP*Cy=bJ!AKsnmi0~;7LdhlB9Iz`LjSqE6riV2=fBOO$q&m(QFTctC$ zXwGC*8du+}r~R>|9OCux!VmhDmW5Bmr?d1Cj>_+!X&FA~*7UoN<0i(%>m$rh@N~X- zjVYZrj?Y+AqBzbmAV1@=J8g#!qSv`oa+2Alo3MIc8u{httjmlymx(8rJ(h0Et=C~b zrir*h5A_@LBlvbF>c=A|w+pctddNRJ@};vZnVm-*Y3}KlmwO z>wq>wj($1Eq^;VJ9(Y~+%B@utj^RJD+5v`bZTQ_K8sb{5rKlGcS!a%zWX<7vSUC^s z_-2pQGava_RvN zw=zUB>Uc>ROw_k%6+S(+71*Kv`ObHmxE>p!q1h?xoorC1_GaM&C7lsZhsp{r&(V}m@?g+DTX)d7t^}Ce2UW- zLTAXnh&qOVFUCyQzzj~PTo=x6Z-hr-g9uV|2%+RVH6s&xbQNOm z&S9rCm9E!(4&r3+HvSGgWkR38R|iYgZ%gjU3V+fbgJ+vwsaR#rtTv$9*0P%nY(+ew@N)zfB2F3PWBj0rY6ZJ14lac3s)g^Qc|d zMjd=OA?;nYDxv@YKmbWZK~ym(1VhnEw}I?|EcU$bxb{|=SA1+5`wDSE*;xKQeeWax zc-ssB%^sj5jzUH)9Y;wx>i1Qvn{j)C} zax7fvpC?Dg@o3RtTKY1JFv<6>tSk1d#hGM-T}_`Ww}+g#SF^h}2pPby$=QM@A3R zLG7ga)fqaq?TY4=<)6AuJ34?Ihj+2S7MPUT=O1%CR;e|1^}wEN|JufLk2bj)TUiSLsUuJKqv;M<4^_`cp+QDPAPF4C9 zW#Kz~VD+}i@kgPhj$`F}x44W`U&~z~Ji?3iL{o0m`zw4$i87y2m8#B)6!yA7IoC{t3SLK2k*K{l({js zPO=x#{ zU-3x>)OT!)d0MFIGGqIxet9m8b^f}eLIH)vimV6mr4p&a?MzLSs@|UTeqd7S z+0xNh&PDIU#mvvNBmW;gz?7~#7&9G~e3O2$W9O)k^0#C!m3l|TZUd;3y+a3KqRVVx zoRx{^(KDFY_Gj(OSa)<1-#cu)qsOzf*b!f}@as4_6#vT4`YdxJFDV7#%jd7QnZafN zecLW<>^&jsJG?t2HaZxW7-#wLPLcSfyyn4w{?G=>fBue_vVzSz$HyE?-#L))7g(my z7bY76`;Y&eut~K4*ck61vDHKxFkMH#Ktj4UgYHN^r)3i^7Rt?Xd=hukob&!JwZzN4 zFX0}uJh$s(2qRZ+v$5{?$fvI0?+cn)rD=8?Cqx_lmi|7>^}bMoD*6_wo(BK6y0Kok zANNj^+}@#=bU-)FKC?JGS^~%F2szxzo2|dvfDjsP&3r1Ko&B0`R`EnxTu1HzoUgM- zKaTkw39q2}7`ZvNcC{wr;M?bA{>;?sySoxcy6T(VfCC^2bv9Qh04m-nXyBVwk7c%D z(m(-jre_z7Y%Q+=O}54NIEHGA1;_KzQCOmC{4t5QK~EH?MjAWylHJf2Dc=C->qh*l zs}#T!QoCpMMUVoj$AO^&3|xIS_!a_s(muy((GEEGr8&#=4-3U;tD)L`W)gHBs(+p= z3u7L?njNLoT~=(FkuA&MZ<|5e@ixU{AYw4TKOhM%jS2Jp9|E?-hj?CoHYM;%d@E|= zhHrGTyuNSbnsu5V0`&tSc5oM!pI4pHYvWIrM|!8dGEaiKFmwW#(^C@ zvg{w5))EaZu&deeWAu^^(t|voM~;lK;up5j`hW4P=&#D3;fGi4alR1DS};y9Z2ufb z_)|Y6JnB^YkyY@VyVPd0gu5~RVbh_MR$A|LYA5DtjjQy%R_=F|lyykREgKs}2_H|3 zdn?J$-JQt-AbfhVgnL-)REE;Z748 zoeB^BCd2!x_qSGtWJV4zDFcA?g`H1NZ3TAJey^om6nB520c*xzlrtRG-j3*F0ZGXe zpJa95g-*0%-7zm~tj2&-?npY6NWSzLst;M3AN;!qVYHF~p5B47^61 zHf7MPWXOJhgvDra&q10dKb`v^S&4mVx%9jOowWvjQn@F{m@Tzz06qH388XViaW|`r zAK~8RKd1LD_W^BGV-Iy^0eY_Hv^KYM*ABU{x(4lGI-XM1>DiONE~jzF^pp+5P&1V! zeK9Zi04Nt#Q;wgrP&P|D*`@sJ&+ajURp9A-B}sguJL6LwJfu1QT1OrRG<^Rk3%KLq z&oAxn67+~TiAPwze2Gm`d73&lL42gP!dZW6cTtoLb07S|!ir;;LtK=^VRYrL4mNug z4Q(M_$ZnjpDFRDuXW1Pmwkc8jv&ByCAHK0~vYBV4;|+0}q##Q|uz1epZbJOxWIWv9 zcbNR*c08g!t)CA?e=d6}od*_xYX6#}j`IQe+$Y54bVb=Xjh4hXaK=Bw6~3PtBW8n1 zBFgx#0rp~}?6$PzSeLT9n2Vkleh3k24S4t{PqyF$VHqDwW^(GOCj^V4j?Z-FZvA}7 zHkDy^(o)6CbH>lUTr!l3xeRn$eHnU%NIj@oqsHU$*0LX#x-VDlgDrC}&6IcFW4f`- zJuu^BUSHFSyplW&&|M`Z{;xHS>8*eI!TyJ(M(!Eir2zZ-`;g$z|~P zril#zu`Fl}klDhRRwp%UiHL`RM0B`Ta{X*lB~g0gG;IhpzF7)R1!mL>qw15`B$p!p z31bn#q;#TR6t0MEh_DN5!_n?~hB}ClpFk_VlJ1#LY1CWQv(Sh(Gps_?1?@@1%>q<1 zA3cwQ_dbp(Z@Rh(>D@tvi^l`VM9?QFSu}W_mpS+KD z1@F2q^zUiFHS*Iab&@X&2J{J^$*u|QBSqz&(bAfSehOr3t6qTGb5-9{-?LlTe{}H$ zB2gFqo5`h2ygFw+R5s(ybU7`aT=trD*b-QZtG<1u=e`bOy!UuVy}cJ7i|Z)1svlX< zf3!jQkv8X{Im%%8Am;NUop8w?fpBIUxWYc-2fyLh@x9!6Rc(NGlxO(^)aY*^>wKmo zG{KJ^lOa>AFiYH9eC zZ1)I?8RSyz4>9`f8;}0VE0y`TOz<9;u>QZp-rR^0S-Ir3X}S|KM+Tl(UUm)4oGTZ_Cv%S-#ZRoQ44$t;;$kA7n zT#eeTg<4}A<_7bT#-c36eQj*JvE=QO0ZO{HX73&z@G!<=iIYp5{)jUjWG7SJ`k!lXF_yk&o=}saO9DhqH8i9PQnl_(|_BskfjP)uTUHRPiEIGlfSf>R}f;e2L+Ag;;rx52f{}OXab| z_>4Yv=n(HeA)TqY(Bjtr*i1qCS!?#3$J{?`m{{>3q9aticZE-9kjULMNFNWYvtoZ7 zXsr58^IyLFd1&X~)YKnfR$kK+cM)GGGDctYZ)hGr*Z}oSO~jPBbcTi$=WX*F2JEQn`p9_Zc zp1yljf|hN{@0}F^d(UUeoZ84DCH7623{+ZU~DA!=RBN@r*!R#|E%?Lfwvzbh>#A_Ow2qG;7+u=h&N z1@u&6_*+#bfraGvf@C9A;RdW%~QGZPb+taGKrYF7<#(U2>PR|^Etp&|d%)KUl2L&O4InSAKp;?SqZYz|B zJ3LzZj32O>?An*a;_#^ zg4Q6@rpcKA91uayg+7d0C^1;*BESL9VCHq;9lXJUfDiI)VRX@9=fKyc(wH+xA2Lz) zj=yeCve|uD1+BHneo#>6G9X%8RX}U(zzkPg`fLKVI=%&b{}DPRH&l_MP2^>75S11K zqS(fURQGKrghOl{aRTjqf6OUb^*y2@G6EsTLe*yk zAM)7-sxrnv`m$`+?Mfc~-H&q0yf0Je2Lip`9<5q)WISu22Xg{ZUcsKK)Lva==K5Er z@7s8YH-os3vS$MqSATx}w-NJ&3!|Hr_#CZ^EjbHRcKeks! z+ua2^Vkr;|i}K&r{=gc<8Tlwsq;rg@rSnt?wqNqkfsB*Ht~P z_u$z};=xjs25#gW$&&V)SH2-4nXzQk^@d6dr>#ADefoOOu|A1GVp4g;K^tE~;xqZx z(vri|5RbppB;;xJ$1HY#N`l+5TxRJ8uiq4X&*1FU%vvcN4GmnqCjq#ncwP| zd^9+WK;)?#>sd7AgYSBHHgW%uPMjH$l((#3kOk6A_DTjpJnFfmwF*hpS+rwbm$Zv@6Pu{Y>nCyy>%l*!c^YLF?0#I zW7Gxhv3)wB9ruwo;?V6)l*F#v$jST=?J~q`iY?)GIQTQgT!MdLQvF2(=RIgOm$Y}TAp(CABKBEHJjE!2GR^3JeFLpQSGsXl8|Jbx zow0Lzq+8{)j4OWXNBxx-ukuyi%5jyTPb_hIvP145_dqc#AiDTO%+4_s$BJv=tjbkC zo}nKxMjGWk_)11{a-H;6*`4#K16ZYz(%7JW=#%%!AgT6RYmo3eqPYzt-q zkM>2~kuUS)bm+@i^VgsMPkH$!^Nx)?cDIN0^IzGb)4HP=hZk}Sw7S7JyHkSa-s8O| z^%ZPY0pZtzF@Zc(v?Df4@*`7diLOCX$eecl2P)nXV!w{#Un-ey76)t$tq%F}Qdidm zl(-W|c<{p;K9gsVM|sd{Jf!wJE3Ooq!udVVpa1x3cQA2BDR-C3JCEA>EdO1(*D-Mu zQGwuW7OR6nF+NeLXg2~SZ;I;4<@-TkPjtvd4`h8NB{&Dh@A*y>`6s?uUXL0FS9!tr zvOWU^Pcb&qdG=_tABd_TKpl2 z`?Bw>aWH{?GOll~B1kgu<2_%pnMJFJ%cs&(hBn(r8I$B6Ujl40>q&u#j>Ke`6>l8m zAiE z1=FO*-7Dj*t)X6PESF=2Y&fU^SF&GIUNm%vuDyvLp$vVK+l)n%W>8oGgp?PjIIoqF z^<|lzIm|*QjoiJztzDa(dkE*$;7k9Wl9;mFy$=J;KqY=0rr^-ICw)_nM$l0luI!Do zqtKQG4x}D=7;ud+w@uwRAs}oFnEUiZA>;9wL$Ld=AJD<;+<+0U&Ij;RF!H7`1FpC*!WG-)y(C6zYvzGOZmmOku2 zzbr4OU!g?8b5Z2YLQ5+qUm;~5!$)Y>VV@^c4&y+ssU;6JjsHl-w zMj3s?O8CL2;7nVC`{*b2l}vs}-__>;a4aajqf|)2(2q6e@AOWSqxHKbF;3@A2tt92 z+N(q3$=Gx&K5*3vE1Fy`{9Kmx%;n(jVeeB4f2N1(-hKX&vd?XMY<)nVEdL!|v7__3 z%wz2{{+WgNDc++>Cbbo#{uPac%@^l%OsS}|*c0MOQuvT4EhNrIw7ih;rYcmKvLN_L zXh>)W3l4F&(vq@o(6LuG^UZs`t70H#K~w3BM>Ygm$W}cX`nP8js|HxlR=&ebHlw~M z)8v@~q}MfkjmDA-V$h(u)lg~4%;#yU?8TlOK?0FyxBq0BS4_x+KI^gK5$&p8<-Po{ z#RQl^C2fSn3+>GzddzegUiwjgnoi;I=PqOji3ksH^0%tF5#z!(Yx%&XgaMF8%C*zS_o#=QQO-uV3x)n7{4Li@1}63)pg4 z!roG{y;%YuAFT2XlCs%-ceA8O_i>%~rCd$9iX8eFbNUzV8cB17@V@)YUb%}SbYupJ z1?F+X6D(|r!%_r^noGrYcDjXv@40E6F`0hW#RNTd6mQ*6xfd3c`s(auS0 zw^yhVU48q_N9^bIj(SXq?W7d69OzB@S9_;Pi&N&wY_pp+ z`GdXkM^rO}^d(0&`AIda4Gh)myn`*;)p;cgomr)2<>&DS<&}j^`emALKPzTOL|i}zs!g_o53 zZg-4)vwzUCL35NAKiM1eEgLFEA)<)@pXZrJY8}KiBe8L|VnO8!L}34F!-zV?9eVvY z{X!0#bXrL*yqaD4{xpsC%rSPv2k{gSD^)aJsovw+CmbC0RCw60}; zzjvDK_)~re+Bnh7Wog9F7$?GCn9{uVIG;SXuQ_UlMY9_xtP*Y} z?hd${uuHOP+mfP0bg>=Zxc5dUS-E_D;ocKT&sL$76hq7Nc3w$~u=IWXAYst4LVwcPmBkFvL_=;1phDFEcsksyy_3duE;lX<~8~9lWn+Av$mhUZM7%1wmRl=Vx2xgr1&4_{bs-16EAYLdXwfq zEecUSYz6rJ`+ow%wTx(U3;8pU7kI~W8d826KqJJ?J~o;_#&6X(N$YmKbGK`g^6RF) zeEACp)wXY5{UDnz)_rluN7H3|)eUi}IEO0YzR(jYw0~o_y!DtIlUDzV!~1~)6=@QB zfxo&-d!h9ns)g~TSIaI__z*rd-I8#q z;1VZ^tF=wnTGS3}b+lBY#W8=79ITOb?Klt2k>l^V6iE=D@;Xxv0{Fc~qWJGQ z*A1zeBfPz9!~8&}L|i|k0Aq;{G6v=GJc(t;A2v&#kvZix`QBfLN{>k@E)I{`mF~`K zTd~+$aCj-=E00y5dQ?VCDyfeze6Z`ENA-A|FFMZBFJ0(fP4;)R0PB&q?G(Br@D}ZU zdl9MO!)pQ9eD4mDYfSYNDDV4*car?|C%=qivywrzyI0R8OKOBWIrufR@j^uI`WwI8 znPYypU(#VnSlxj!av{YZH#M=O|1o|xM?#lI9WR>gW0sfDI!_^smb1T@5Sa!b8m^Lk z;Tu-N9}KWGd>@wwC5WTGZ?R58SHnPFKvtRm*rv~a)A7aLU&4Va7Vh`@AN6OPs)pvZ z_M<&bcO%qXFw*o*Y*zLKKgu+ho8y;)ah<;tjq%PMVwzYV&5^ND!A0G#{7w_Kao?xI zb9j%nOLoC(gX!QU3z|o+7g-a^!z1P@Uu`&Hblj8r9(#{aeMItmjNROxtTVLdV&mJjh{ z+EICDvCCK^38>_31FvaSThn0_Cc|2M zx{gryZOc9~BRs7z-{X1yrYPqQm>GB1zp`9D$9xjD?qv3!v=+%`n_6pM%69fGt#*Wy zbullmc=0d$){x(?w6ZH}r(M2e`Xl8Y>yfcYX7D%W`XkmH%bdj}q&1GQ>B@o6vVG;h z53DOd8y;aw$A-IaxtZY}>vcb4XMjzqWZkPm~-S1Ey^m!dWItT@;n6u-|&M}`v=?y%C z$#3=9^pNuvyrmuHiT4eSRz`0=LQe~_+OQ>-VF#IU&?KDkJYF<_7;Qpk1+4_Am@7f> zEFRYnG}#{_3#CHx$r0Rgu@U~+q$$2T=R5XG|C!8D`%&A1{NhV>Hn?6nQYfkeuQfnjWpvFW$fC;vE5MIc?lgE{yuF^e-xO_PRX0fF3jdRhf>Dd6y{X>vtO%oE|m40hd>k?Qm$KlO2cFwl0wZ0`) zHe5~6BR*lt-fSzxH5OQ;zUP*f$sk z4%8&{(poZpZWyFn6+LV$aA!$O=Lf<#XZ-x*7xSK{Z4G3!^t|0lw%k@zDq7hslqs$L4;@_MdkY*}WJGD_LV-Vh)zmnca9C+O3*# zj62@POUgYM{DiNOMSd254TI0X}Vmm?Yc(IV>u6tYtjoY#=ud(zlPBZwIVGxOw^?F zl};5eXA6-zxEC}-#5mP?UmpQjFQ2k5U4_i?9 zrx7O3obZufl_|%>tA<NN1HdT;B6=H_YG9 z|F$z5J=hucf)|oiVqG8{Zfnw*;ub+TWPr)I%fov%d4hKvjT_AlJs zRP(LGgBbtLhsKJ09P4-8*Y!|%XXj~roCyr=b(ZnDfy`d#tmYlf1p%YJ^%3A>pRecW z`WL)02j)9Xkmdb?k5!F1U)P%UwBCU4Q@IXO=D=UHO0(?Ouw(7Q3cIcX!7aWaADbp# zvX`)%T06{MY-@y8GOVe8t=0W7ffZU4?n^RhsmE9qXT`mjZZ+-yG)j~LKi+FVk=--i zaRy<>EHi3*|N3J#;j1#{ip}Ki7@sqF>7ZwKy}Q;8x93n2qaV{-zO~?n>M>HHft_$S zB8|LYwxLC`SDu&HRzZeBLyrdHfgc)M7dA`=#FHxEIhn#g%qS}TB(ro5P?M|!OO)2> zAX~t#K%^>RaEcrU*5B#ivo;zeIkJGnxZxY>Fwhu9&{R ziI%^7rG!;)M={xBOO1_zsl4jbOmn_Bj%8h7U)~HlkA{4ZpGOkn zk<7&F3pfjcb%=N;o&`a?8Fxinh*naTt;9`1*qi2w+_2TbECf`Z*nd+3{>EJA@pJcc z3|jl!2LL;=?mHS8?;k$=^~e9RJ4abktZ>55ak=MjFzhZ0|H)od2AeBi<&;lr1>ZM1 zOcgqrX=roJh7p%DY5_Q6k$-+yi7!Z9%5}zz>dX#&^^J|DupAt&*=(@HhdxL!-=aU{ zxGC4K6$w#A@qiK5nvRpZNWupNhBuUDeupGei-KZ;*Wy_arQsiNda~!25ci1fKfvKP zaIszw3%1tTQZ=NT$d}LK_}3!C`^>;OYm7|Ez0@L$VtlY+`b$64#N3caOLr5o#YwYV zYCI|Whf>Bf&Wod1ZqNGQ+q`9Ph;tv{IOlS(^fKCzn%<@Op8A=~7gPL+pIS%Vi>;44 zkO#4&K0Y!e;uK@@i0@9@kC@xX{(gfElamn8A--ub^o)zy^lS?lAEegolW2kSiQC>h z(1!STHXoExNhPSglT5(2sIrZg82r*3sYorlHMA`t6Z&}(`F!M*LI2#|?1*g55*cY- z4xdJ!*St_MFX9uPj|;o7ac}~`Fq6`|9rEqn6edN)DC=)IWqD-bX%VuedhRkBJyv3x zmIz79TNSfG_#qn@3(fK~?Rm1iym`X-w14P96Js^U@l5B`o<70=G2d}=$Cn9rAoxPD zIQ&|;S8*~QxwX zngG)7D$E37MLa7SHda?(B6N&SPJ*iJve=HDkw3urha) z_!i57DtE->pL|1un!J+iw{Q7tM8WTXJ`QGRY~WuUD%siBJes3tIgg5og|rt|OcPCS zil&C&l<@fzzmQ|jDa1dcpBLuG&g{z<-cIUrW!w;HSsoCYi7o>Uj2bfoxm7J5HZ1J0 z7h{ewyzjvI`dDNgF|=iAU2C{bQO>2PZhY0w&(fDU)3Pj+-TrGSn|rB)=qg!vE_Y17 zVMV^ux7Q-2Ai#ZBLf0Z;Jb3nNe2lXP5p2M0Y(Gn?o!rBQm|z*x8RDsSjE}mzLl5Up zWYnDE5O1i88Iz+-pus$%)2+yIFai1`Xyx49A)AyHUUDcFOd$ux2R@Cr#Y(8tA}qAV ztBiN6byFjV5Mi5RXn)A$9Q7JE>ue@zGN1;yIp z>ZYr0Y?6GB9UZ|Pp8Z1>ZlSg@rzwIwfd17sO9FodVJ#(0@)v^pT-G}|ijHILm3ILN zPyDmS6sT0}rL5tfbcYGCd$JtzSWauoJ~Tg7jrsf?kDPa?o$DjzWyVe3jsALHHJy20 z*lC7m9xK8qeM73N@p@uZ1hXpCyc!J_&ztjbBBOCl=v*5mM* zCMyMs4{%d#R{{g=86o_*ct{`Y=%oAP$_m0i-bwI%KhdDSmGqjHZCG<0QQhGqhD&Wb z8_v;ny@!*(v%_Yv62Eio6;=xVs(C@XFR=hAB%gm(HV2M!Wsj0t+_;FFU;k1FUyPm9 zTrED?Qp38@tT4mkljvlTq44Pke=HK>(3y^n+f@$}VbL31@@WEHc;8!scEI>+EtIey zYW$4xLZP*hg+6$jDAY3X7R-{VbPQ}k9Ryq|UhsoIa5XU?tD{O9$uZlitFRQkR>Ox+ z*6w(&J)<;CQR}%jNn0g2CNo?g;?@oZc6GM(%~cHr`I-AKmpkTHs3^7#3ghIb`i`zW zFuDnEOZe3=8h)d#Md5UAQ|~eE%`1(@@k0C7+8?9#zMf;~D?W@c;-OqxOP09-e_I%P zRsk%=d(XJ8eb-lK>Kh-;M{E8ws>W^QGyC|bKCAkSLA+;qQL%=CPg(NO?q@j zL8k8%ivOyA;txFfJaUA3-_|sa^rlPw$ROg-S@fXJuV?ME#C;0MoD*7$pb_bcE#SyE z$oQld?825X*XK+d?<5(z)5WrmJQLB_ zu&^Rq;-b@w)(4W)d1AawIM;awb!5XHT_f#Ik1@}e>#i9U*k|(a!vpu;8f)AhxlifK zT;B>U8az$_l;bvz3E)9RaCf3ci?@v~-c};(`g4ZGk7`5DW}EV*NlEds8h{8>PIO>= zI>gsnqEp2WPuplgZB{*Kdxfg`5{no#;aC~q5zZ6cOcVg51KT4>JK(@3Hk-(y+hYSH zcrFfekDpXc#q0}>T>LbbDZccN@7hk%#377BWAKlLB34H1`Ku5Vw}lt-(!V_HmT44a64atJ}*@W^a9{FxNT zh;Q49z1SGm9_h+`rFd$3Nb_O`A-<02y3k7?O5Xv%#i0Nqm-Y4Xi&~B8qU{w)ZeB4N zSlPMubFWywjdH@PTR%qln7 znB;4=TLRLIJCt1bqLtRS@i-k4ViymSt zncw~VWM2pKIP{_V<=q}PL`H|SJ|F3-zjipL5jrYRaux%W$FgU428KJVHI{dL=X4nq zgOIWJYdq5g&t!XenPWF@TdM-OfSr?6LK{C;u!oTHLUfllv&4fAR zGWcqrTUa?GM~wX9Y;D?X@$};vEA}r^G5Gw|eG$D`7O|VLkqLYYbsj|tQpM&|!&Mt+ z?2|obSXoYGmnrdBS?XG8_kLJKN=Q2QC#O)lk;#3DA>ab^TO)AC3#J|EyCsa<^q(sO;pHXLIbZHa6N-np%+ zS{Fzbxgm9>F07+G5YHMsQ_XhX36|viSnhB^{s=!KP*#48^y_wvlIL~lJhC(ESNVv4 z)~etyTFRK3Tdq>}`F9oJZTLtu4*9NnP|siSOWO;_+|eiKkq*j_=)DrljJ>j}3^1%I z`Ty4+|BB~?_;u==eO1M-Hg?Tn^Wn2h9-ziNQ@&{(QR~bD*K6j*xBG@w_$tF&pGB)^WW(4N!GM`jEI8tp_CT&MMW+ zzEBqbvb}G-QS-lxk-6Qg%8YRHe49El^^VA-}8Zs*C#GF%OI@I|~kk&j3H(=l%<%KuIC1LX3? zq=wyW45tH&fnMtLUw(+`1IkWC_LCWQVq`V6!-~0}BTW^}S)5~jdju~BXKl-*I1^Gl zoot5eeGb7ZzGW4!S$_R|+go?VPtU<&VS2~Lvsmw~`;}XivpPTG3$m+x-_fOGC8M_0 z`6V`jhrWiPoTA@9+gBj|uniL*|GY_OQ^P9o3@KF&qwTZ(6fhh8yg^d_#2u{T*tM?$ z^PDj|*Z|mJ(jIy2CBFo5HwxE2uF+gmc=+olvn{R}@P%h=mhg3B*%2+9R|^Atai>f4 zgRcR~X3JVC_~O+fX&8Pdsbbnf+lfbI_4PDWb^T{=98s1{>cgZ z&&QeNeV79>7T2y6!bS+ykK| z4|Hsdx7KFoYJ#&*#h6U_468pfO5dWI} zBmFD>n44PfN?yFpCgt<=7C@}8cJAXOy@KEA$A{)eaEo`98zb&0YiPVlp2nImWzW$W z-tkQfdZmlGyuIo8^T{?#?8^DoHYc><;q7TGAfY}XPEV{eY|ghYz}N=H#}8lapW1b9 z7BZiNJ(F9F$xF(E{0s!y!m~_1`goHcC5sHS@4Frpdvd$u*(MJ<>UFI^x_+jw1Q8!F zMPG{EZI&e7brD(m#8xJ5OK=5NLmXwfGd6DwjqSf%-S1}l{D=EIkDQtEy8f#lcBset z$5FjQc`N!fJB;hGX~BQ&&p3v!`bWMphdg>nujYZkk*(23tnYueXPU6SXHL+ejgqmx z%d)z8A%WrC$D^#V1|C(>Exc?8DWOPmeaW^c?!vfw=Vaq=r5UTWy;tdFHne`++uP^3 z^bymD@fikOwKw)^7A;75-z9PSb{ygh(Iv@kALolD=YqIZ8rj8_-|bDdR+O!5|#pG%0;?kSs)o72V-QS4pRfMl7a< zhBXpg_}Elg9T6iKnUbfjSczPsX|p6V%YsL=V5bIX#vIGbI25KSKBKVs5*=Hy+v9X% zxS41+CgD;0JyQ5vQ@f8W}xJMmog z`O*0BHs%llR1TiKkn0&Um&KpY;APp|_F84eGW{sOMt!2AFWZ~xuVu>-j_f+q8~z+2 z{g^i8y*+ud#`C=}FU%vdy@BGjkon7DQ4vu(m ze6!j6e1KkA9X`c6gK4Qf*P~%&IqXm_`&?#kN}loAQ zP;etT@em(}Y=f}pp|Q0Ao!f=W&#U8UHwRvbwKg=sedN%*ILhV?l9mFti8b`cDA(#9 ztyaBIk}bsNXE^TLG57UVKSo{GBcKersww!G7hT7osP*+tJnyqU&o3kFl$N=v#%2Y- zlfA6G4ByOuBmaEEBxH%Cq8XM}!>uI-w%W6{cPbOi2ZMz-ZaIM|Z+3ukNUMAM6f~n- z8*PdWg(|5z{qRj{SD{>Rh7|)lkFeU{`Som<{Px~qkeaE%&Ot)`L$fdzB+Qv8d;AwNkie{Es`0>?yGvrO5@5t%+^wcqvQYxB_{AB%#D^k&)ol$2CHb~v zp+COy6U+agV{|u&<4G z@iX?W*tX`ARS_N4z}DCXoAQr%rU~=O^y@-${NybA#da2>%&#?C-Yii$mQ7`SkOH>H zPfRlA5P$g_N8Gt|)`j%F$lc?{8oypWW@_(DNf_B5Yo1`C>C&-d zEMReMy@d1-(`4p6K_24zS8`?!V9oRaOq0sU@7%`g&Yold7#eiIYcpcRT-FKdF5pXn zM#L;%w=|NM!bcWW+261cJI6uoCLlRQUcfAVbf<}H^&#c45sRI<4bQYJ$6K`p@q>fr ztr-hBeATCYi{?sdwl)p1=)-0ftiwgOO0EmF&pn@3PT@tP!>`=ad5!#XYQ|SN>wme1 zhR~wfXmiQ9obgW2&L}UZuxP=CYjzMb4#kkN57lA3j%a1%RXHCM2*1%GJ6{dnRu=9# zcj}pQ3m2WsA>N%qPv z)$b{fu@n=**<4Hi2ETM3>uUMX^JTj9!$DbXLH}&ONWwEg;!|PE`^1h7+2?rclNelS z!(-Dzb|c62i9fE7ez_2<%a#5nBnAn;WJ_~9A?Ip)9A*ShjGflv0V z6P~%E2UGTZt%gd!ewUc7?kaI^v#(xfL&)n}f7}@u-KnN+EYAjAaA4)?5S_EiE54aV41Sj5y=@uw-H*gQ39bfy zSXUnR^|c<+H7k#sYmx_C3Cyh}?d*6Bdjsk9Uekt&40%Ry>n*qGYJuU4H<`lO2et?<<}Xg!bZX3(w%D_UmV6L?Lm&>avQcZv6u7UIurCN@ zwsI}weP+7Hf!lEd>VOS3mYGDY(K?wc6~`^|R{rkskGkiEUp0E5Y^QwfIjmORtYUO; z-}=HU`HU?Z=N&!sJX#(f@|xdZJEq%8a*>66rv{LY>IBi^8CPbDw5=vaO@-cNGdZW1eAL;T4bY zN6e8f{*iB2KjLR9-{pz$KKeTbMO#$P^rZf%&pcdP`uPFA`$xpUkUY1`mVoD?u()0| zx~QC+|4KyoRK{j}xO0S_l?1wSfANfy@AYdT5vyiTAjDl4Ep}W2o4;PMuj2e=%-7b6`=Rf^A#|`Ke;E{A6edQYx5i+e|JqoHsFO24{Fx@6w|KbkCsJV7+WTjGc``Os&1;I`*@oNMazL*wXOX>V~_>pRPLdVbgYD}9aTbK)RME)8#)o4`rQ?H}f& zTUaaRf~VLlBf641v2|=7!Vt~FSQ%wj^|WDL0yAEruwqqG9ifPbCfN?U~ z{K~9H zwA#iy4}y7YZic;G9yd(@IE&9+C9jPq{WVS^yzqR*PU+m`2PTLon=@n6w>gPeth9Q( zNzDj9vb3$Gn0c%iqct29&h>$zjRT_f*`8hU^yyER^^J!O1o~p*@KfCm;sLI{ z5mCmU-%aAbZel+{d~!`hH%B}K7NtA;*-EjyU+iJBaur(?3(mSWuMnQ?>nw52ZjQx= zJbZ27_^U3i$1P)xFkXAGJ|D4=##-5yTkn^#H#T~jZ1bVfeyv!-7A8TaeA^QJD=g66qh0IvG`_?VH$(GS`* zVY0~c#ONv9NKQPyuz|bvYtMsJYlAblSKNsUPUAHOSsaw(*Blr0@TWs-P1W=HY@;Oe z-m|DlW?LHdZmDfR+?CAykJ&Q!WyU-zqfc4TdgMq#ZORbUubszvL{djNAfDAZ;w2AO z94EAu;xjTdaGho^vVvHk;pc#v{V{> zUIv~kYN{*C&s~UxwY!0#)InMKl#r1YY;p#~nKfF1k724|M0sYsw!CXAKc4wL7@9@U$*p}W<0CI3Qz$@g*Fai7x_pVxUqajx&@;E1o| zL@eE+(r?YWiO`y?6d%}iq^@#4&-8gaYU^{H5!3h2*xo6BgUV>%SbqbRhmbL@xEmX` z7+W!3B}TmFF+#ueeB$rVYd(1$eWx0d>Tiwf_k5-an>Sj@$_v?+?NZzBEZ*F{yR*cz zu}|SFmdaQnYZCcFab?d1u{U9PnJxH#DOjEDS?B!-J|bZTuxX1&O;k7(gsr{D;PiRmqQwky*TYJ2(9V zl*9g_k-W06F_C2)k%x1CDIU&bFRwQ#h2GFV>y^H{XSdhj!tQIh@@e$-Ot<8m4|lGq z+rqB&R~^hp-AYCA+rphTfW6XrDp(jg+0}*YDv&Vc+anX_BEJN?4AbS8GM&|#N! zy)6?ls5$b|1e{D=T|XzL%LKR6!~Xrlm#4pMUGQYKqk|6_$~A6-R%LCCpbubRRSxIP z0_JYdjl3#z+!&yIWk)en{C2sdQRdg;8ehBbq-=i3T#&_^^Hy~3M3IiK_E5^8vvy#O z0lK7xc>Nr>J9$}f6;J)Z`S>oFtBAh}A797evgo%ZRem-G=xXY%ya(Q&pWA(!qP zXWV1^Sihs|8tDvtx22M;E zZJ`pA1fRIH#GxF6R15jm);qGJ)4OVmPk#en1EusnV2j)tV{ea)>(wr5;OB`5`y(-$ zf>xRVA`VxwJfwB|RT>4b zDm?Q1qVf`t2tox8VH-fQZHE^5v}}(RZK`_g7O~=) z7##-BIGChgK(H&A#=PgJFa83r)0@vF`gE3vdRb@D&(DD!c`toPg}=OEjj@s2gerfc zt~UaC3?ZBAl3bnfX|!MCGV^n7HeL&2*3UCdbjM@k?(v8_GF(^xunm)ZaK}cAuWWAm zk^8&+`UPd;5i!D+hQ!?`d=-W^eWF|W&|tFsaX`;!uh@&@Gtzu*61=P!5ktm*de+XR zMPfD5yjj7hPw28zY?jzs$NsTd!>{Ae?rrq10|jpd^FrYCwCgqZ6{{?^*!{7)J(mP!8r6=B~r953qy>Yz9{?sU2+VTd( zRmNpCHiP8qR32ON=+(J@}K zRP&zvXmk^m8%FFtpRu}zguZe^JE|nY{FaXq|N6BkqeOYent9GCvh9+vLtlnz-=o?tdf_Ky@genv8RT;;H`3_V%LJS zK6cJ=aD+Ti9)tX_*)VBn@%`PlY4U0DU1J8b0*xWw+VcSP(_RkJ^}6+VZH_S+k%)`loMf$Vja&*rl^LiG-Bm))4v<1CAlk zbocFNHJ7W#%-rs8>c5%eQ3`!w0a6?Ub7KS}x(Kn50>9S!g3EcJi6EPLTn`j?4W?a)&+XY}}WcgdQL5p@{ z^lMA;$R|xhHaR`B_mC`pkn=P1*txXJT?5xsbm8%JoU>kI)se5j*we zLa*Cq8Dn<-GmgkX`u4Nm@wD&RRnGiOG1^=HGg*1v7P548^!>ndjh^dfYVZ>Y{u%-@ zk^3veB1P`oamE+it5@|vj4N%L__E|cKiqEd$irmmkZqjye$d$3nnlRDU?VL`*-vn@ z$iXt-HG-~{iLD2k6?u4S-flblG8oJZJhpgaOtWKK6sf-ky079OMfOjay- zdMh-r6`a0xT|2f4!6caj5EntixHyF%U1<2Y&b~z&N+UC1v>~Tl5q#!S-wd}i@hlAOq+20 z4VTsBC-jx$RE| zG>j|H*rnJtd$OqVo75xmz?ZI`uOwzB9+W+ar*@{-ONZI=$sVft<;$OLS6u7OHcwpM zUT|0*yUo;Ob3gCUPD~>1@aYu>v%v!gSPr@nbYdda_$IoA`L0{qu|HVolHQ$NrN+13bOL!G~A^hIw&!6q* zgv$qO_`izIkB&g!qq8+f>F&!*tlZ~w7;wY$nrdJXwD#z7&+`?&?` z%m;No)_m%P@J2PHWj{7h)*W!%sR1_|5ItsTaFD>OI1K2)U)aPIqZsbvLpEiu@y?QH z^X(s>8#3>C*^NJE8#q>W4J;R`z3#qtK|Ha%jy(zRv}iqOIijPLM0x!)m*K1v4Xmji zI?7^9cv_o+bqjOHY=FXk$i9n0ll!SpE<$YCE^e4uz-+Mh6W55zu%Aq=GH)L!CQAG&}s%11oV%7#UblacITbA-*7_)1T-8#e;}GUL&r1GdcZ zj1K-_uor$A=No>x6A*(NJ7-&HfApArHx)4lx;~f4S%VuxU3mbP*Vy+BC-kWmwV-sYQ$?t1 zVA0Cqu^Dv5LROspS-NKHdcLbQ#ZsS~XF0v`^_bQEg2Sw^MV@TX17h75;%mIZB~B6Z z@YV6lj%B{hT>Q~aKWPGV%FUM+?GD#aB8OW0P2h*vTc4RvR-qntC?;l)Z=OY)UhgQw zPhsAX>v`LousiX0|H@{Y_qC6?h9w=|7u*R(-zq3-eDJ*LU(p!nZcmrHy`sA@tNcDV ziWBDV^vs$;=b0VZD%qcDSIg+hx<;(AzQdKD;#Xb#nj2If&ypMI>w262*XqruemhSB#^=G=CZ3*ROxu&Dt>+F#nVLjPN*Q0rj8>BgW8Z z@saj@TaPI|c^i6toz5E5s_=*Yn1k}2CP+_rn)twF{P*^92i!Op$YcDKU9!mMRhebP z@lF!W58~H3zIwx~*&ic*%+o#3Sq=Mzqw|@}zMc5A2<-W;wVc_LLOB4+hQ7ZBrbX4V zB#jBKg?k-{(>nD^q0@ftV9aDa$^&v$^%KQZ(+Q1eMt^eIwR~dW8sAFCh&k3B&t$J1ZF0HB{~BE8qnRfQr)PTD zS5Y7z;C=g@)0`iMk9??fEB)5wT?PJ@D_9EjK z!m?}8R7s;^%9R)~%%*>Q`Iq&lJx`2rU>gZO3fyd4V3rRL zq#Rq>{9x%>H&)!o{T##{pSCx#J-CL0$w919}VNp7sr+UO`@KI{_8ttBf~vn zO>Wx9Aolg3=Z}06{%`LlANxK)?WN9*y)6}+cF%F6zykQ@(0Ezq9jb~PZpWL&mW#X+b=fN2yFuV|H+3D(Az{YjYF~KnHWya%2%S^34e!;gST2zh;rfia1th*?V^`Xjt+fEO)#7U8q@;u5FD!O5xpt2L~N8 z@ZetIRIO>QfUiz9CO1rdp?G-p{%op-*0CzBBYja|_1Kx$i%7Ue=TIBA4%Y5`K)f-9RXcJA`7SV&uap8!q@qjh4KfSFqjSNxUy9 zUfwWyiIP!PlUW23SLJRCH*Im}fZCWic_YQevhjiKcWE$)3%Sg1G);$i=p)8gU`a>M z?ro_l-fXdeYx-46Y>pXYH&c6TeCD5g!C$zAH*$}4e*;(+tRXw<3M&J3l%DJ89T8@( zOfmdXV5}Q^y)&frS^ZQjLwUJ)UOR6AW_;~=HT0kHn3$ifE$ZfRSwK%JE)awjtYMS- zh_l*r`2y@iEYgdx^a@D*r9MzztKAccm|KWSm}=9ikaf|%_m6(*eHuSz~9K`kPRMv-En|IFmU)oMTd93XG<>_DkDtY=tdfg1A$7+e>8vmD~Z z!>{Kyfr41`6Imy)3Gr{+q%cqFj*dq{3`mu-o$|rFTMmk;DsnwXZYU=zc`D@mm95TX zCd3B@=NJ>{FHGR;ION%w9lx+k?_zq(%uqMhyWD!fqOm_3J}vg_lCS@s$AdL7M&?bE z*#PXzVQ4Qo`@ohOoT8?3S4fU!svcO@tOmz*`B==>6_ z*ObjZGVe^ACMaWEz^K3s7g*V|%4=dg`%Hkd=0I5U3Y{}D$GI4~f+upUUkschWPPn1 zV>s%R$;n5L?|Rs*8RIcacbtUHk0SSSkNVo9T&vA}9CEMePqsw*GQMb;PvzW}Wz>Fl z4w?6iXtU@wv@*6C#KZw#ay*)**DHa~hR7d({8t+(Ho5Sr{%5{J;}Z>@?GC#F+9m^+ zGVV%g<879?>(98bB4|qkNqCM+bS(@Wm?I;k~%(E8SoZ7rtVXbIjo*xHuk@o|> zff88pJe4++k{fJd_1D33t-m_QmnRiw%=qxAX}g4^OpEb>eDXoP%c^kmE!K zeqiwlRNyr1jMq;(!iASV>uOslaK(%_(?+xZY@cxO>Ys*1)oHwF5(2$|7Hf+ero)AobxeLbKx-+SUbs1~4 zlufDPVP@Nw`JOwQTIWZ2^C=B9w`McSyl>1u&lfW?;xXHQuJ>2xXyYqFWg|dIl3nAC z4#z=P<5XNTjj>W&tzemB`R#o-7}Ds$AGS!go#k4EZB3gJ_DYIj*(A^W z9c}6q7!2cpU#KA9E$02G-fy4?liGqt6@Vw-q152v}-5K zvVWut2>LhMq~tn6l%-qkT33_Xo-aa}vNxT48^O4#1qf$6yBqz`pRk6!ih zAFT%pklr7}PR(%-6`Ky>)$W z&-p$|Di22bTh&K>V|~=i^_H9^&;Mh0m*~*ASKZInmE>5`kJ}>z&R24$kKL^I3P#r1oBS^CJi@mP>XmczPZC*WPKZ9!H7 z1y6P(yJA}tx0<#MQ#RSSe9L38VWMu3;+zoBYyng52#G~d@Wq-N!xKac zn6MwZ`(h9bkI)dW;U64Pr?fm`6>4l;KCbu?DA*P8D0LQG#N$lg(umNTEzQ^)k%=6i z{#~0WG=7x>EZ)0AaVf;wztBhCPVk>oA#D}M$!n!;32VH)s8O8QcZAwMLx1%A;I{r# z?!*{iT$2+yUmI_av#QycOYB>J;n}z+d)$ViLgS>ht#oIaDKPw47G`>1zK+++MJ>kg z=m&iuT%9GI+tgQTyL!$TJDCw1JF+dSc3}xW^GG(+#Q(l$k|rlkB%AERmb2;RiVrP? z4-)lF9Ut}DHPoIB@#V{ZyMyvE`yJ+#J21#WyXNxsh(2D;XxihAKl$2n7LKpnfl`!k z9`!(DL%{b9e2zyd_Y3uQ^u1=X-Zb+|C(SB1-F!{RHcWg}uh$>J3vTN{S9S44I@jzr zhHQg-*n(QK8rAPQ*|z?E4Lsg$hWFYfvY3AQ&-4Ga zHHnSy69c{7L|C!5O%tp_kiQlYd~ahGp7~IG&iH0YQDkt;A#N9o4f}tjA8xmJv=Ij# zGVstM8>R8+?D^3|k61x2e7h`J~TH$sGE$C}c+an_O4&MIuNiCYizh5B}kZxUOP0Fm9?1v6VKgOETjF-?yKp zC8;qtrYMd5j=v>Fqo0pin~eFvMRNRBuDHE1-r99}n5@fW6(O_e)&Q@gb*5kAP_fS; zQ(LA{?&;`V>mKD=9lLwK+}|Y(qmSRaV4PAO7FqU*dA8kuXQSZsb~f#~r1<#rmbSY# zS>n;M+3C5@7FTrIINxOC>{F({W!ZIdM~uF6Bilw^+DDpr$Mc9awm)8v zq-gfmfwP1Rd*M0ZbLq^tOyZ>uh!GoPj`eH-s$A$Lr~dr%zn$HG;l;0|vou=~nycMc zpI44-$3DM8g{ju3aPv&Ev%aOBU#?Leus+yrCg^TPzn1%WL7nL`KgQ>-fXh5M=M0-P zUtK1woc(u-yK65+&xXs%5ig3z{e&&eH&-yg;tMJZj-B-Z*1-7NR{i-UHm4s)^5<~B zU;Uo-J|m<*YCrenSF80`(Yzh;Ix4tU{cS%X?BmHHdk{uiRikyERtXBi;T%y zhRu@P)RkAV9m9ELnZddqo{K-kA)T8IlM(a$qMSP+mp|#N03}i5V&CxLod-RO0zR>l zUYjNs0r4HI3gzkLG7JjGT*y@RWr69)aO#+1@uE=m0xW>|*rErq<9;FB5E@r2*}~s8E9t{;AIg%Wo-F+l?J!Jlb11y%2YoT*U50f7u!vCNV~c&pPfui*ueQH;j4ho*ePU`f+xh8$RMm zLcQ{Au0^0ZkX} z(Q(k2mimb+aAVQu43E6TjNC~wgzz)RF*DG&qb<4pcG(=!pbc#K+mK{S?H^;o3gubj zeB)AySKmub=Zao!H(B>jqp^woQl*c4;-8NC&{Ct}pZn`^B165SD!1YT&%W>a5!3Va zZ57xHv_*T9!B({LcXS}P=Ft#kn^Jc=_}w1`&L#1iyH4Tqf&k(mMxj$lzg&#|Q3cBpfvOC2YM}3oN!We0erw*v#`@YIHRrXR)+enXY zw>bOsYBSO5i{Fz_5ai3I`IMafZP&z>L!Pi$=4XU?lY!Z*ac&^@>@zL0fPd`N*akp!z zZKiM__4S)=7U4pg9|El~SR1(f3w`(!{Nhu409o6`!!b*|!WsnIrYQRSj#m50W9<9( zReg@4x@Y`^YI)Z$qkB zQUKuPXyex^Mq=Khk7HheBjk10NR8+!c?7!1Tl_YJyPYvp{W3DVP@ zCO%={AWz|uPtp_o0EebVmtCSneU?{yfA0BWE|E{+L(l)?YoovSEW+Qr`OwEG>yJoX z!Rs;Z*&N*7@1%zkKi&7PWt zG~jD-u;W`)Bqt+Un0%6S32WQ=K>H1C3j+XXN-42K{b9$(*XVP*5EN7SK6WgKFUI*b z9kO`28A{@W-69#p`1G;QapheSJ1CBbk4)GH@UPHB>ehZCm%L&*!~&edXg;x)c)fp* z5ktjMXSXc9Sf662+X&BSC3k&UyKRd2VJyxIn*{)gc_|XCU^(wjwb%~M*v6r=&riaw zz8wG@G=P{}I}JkmDN4`pj)Zp{e1{nSav3 zgNTU%F^U)~PQPXp@Z!$#~cJ}#umd+H`D~S2# zgv+ay2L71q;?Vq{`s%E?WE{UM-Zc%K9MKc&O_SiruW-A?We!u@H(x_v3WY?{SuseY z8%1KFc-#xU1%VUh{hFfJBEyE@6hr(0ijhe_74D=Y9jJ((`v(c!?} zPbB^;FK%BB&CQ9!S4YU0HcJLB1oZ+={7NSTZT4205r667I?y?GS^-|!fPK8pqHVRi zy|&3@MjZzZ&_D3=_qLlQMDxH9IfL!qVIs71*a-|+@I@O@x*nf~*Gl01Y=i!eN3;pyPbF1F$=uVT*W-`}`Y{M!K*g#+tzP;g!d?^NYr;J6z zvu!XmpO7=6*^0gBiuTwrl3yL*vJ!F1QCYHGC5AB*HTj_n$vWl)^Y_0}q8?$f= zM(17$4`l1R9ixJmjsstlNiS*3Cq8C^yF%B($hyHmS6gt^L}@0toPR=5I(z~i3B#n` z!~kW<7iW)~nM>O9CMI;x_Lt9tice==MqnmDpYeF%e&IxI?p@S8$LD@72Ru zDlP(gAZ~7X-LkB>;6qE~8n4=K#IG2pyzw@tUcg>DCB$XpyA$)c!!q|u59lNh_$w1! z4pkYx?{4p?Q1eHlUypC~w+VM8^?65ppps+UiDLjk9o9LKV~z8U9iwdLqlQI;uBADS zn1*zJY<)>=E4kEsyLg6|+ppMn+kl4!yn`=Dk8{ZwclDz9#`Yr>%;=13$;S0`Eg>G} zaJ#$Y%YT*YR!h*x6Zo19)W#f*>viC%O&fVT-SPDt>@C!RGHB8Y=)V9T3WgJioRUaT8z!{qsIAEvRH6Z$i6#9~G7xn5EOy+zz2Wa|my0nNYe zN7Rh=^;`Ry)|cq}m1IBL^Gk>ieMauw?TNemcVlygKemq}w2i*Iny>MX`bVjjcWOD7 zh@ZC=ubmk~wki2HKOt;j6;B0+qhWyykC7SQZM+t2qjQN`wk7rJBD!Qio?j+cO0UvZBTwxxGhf%KPIPm$f|&B!D6?q z#(;-LfD|Oob5hXhvEd;;c=TsQJElo6$n`ZASuyEAjJUK%LoQoO` zXNQZt4-E7E#WT(=Yu=SP+%21wzHvftoByRZW1L}<1*e91T;fIGBCp@Z{FW=~@0A|f z!bqM!5_5_8LXK>vldCJGIq;2|2e(8oo@FC($YW{}AD_7~&M#?fA}ibxXBBUFV?(xZ zn@jnbHNwcUxvchlKJw*EHsg%ttFqbuY>Ue7^FhqA9?6WhT&-tYMj2seeefK~j2KZ@ zj_cgGmcDv6M@IK~&6T~4RoRz!?Be?L(SD-!54*eM%hJ|*H;CmaH+6jFSt0d^>u~ru z=6$xGwkNZcXM@OAkhyNAul$g|c73Kh{VR1g_pagx?b+@``RE_87_&boDC`oy{Ec~l zd0e()e3ZT93m}V%HYD6XY!5qq-#!C*g#Mf$L?(MN?4Xr#+#&sIW zeKY%bWBN}z=*y?imZ#n~cIT=&-!lAKB#7o)9xuhe>(5J}@byvrFK(LBepx zXJ0qixZo>dfB*e|k^&W_xkO0Uy{fQ}oW@r-pBjYLx%!~8&1c95Mlbt15$!S8KKUIm z7-;|D58Gqz$#O{}%>EpD$@D8n&!;(1lJY_IpXvN^+gktM^Q*tcFwZMfuj3%` zfE0tL9GD$Q;P!Cm8%pQ`zAS5?dtp234yjj8^ zi`za)Bt*su2O@t8Rlv82O>HbH`T-2u>OeN+g&AB%wj(X5TU7)h1{q<~?_Q7*cppF(*~l?`!dv|J02~PZnoY`=o%I?gydmJiA8{$%wW9d=+Xgk3 zvD=V$G0ZmXcpA#Ogj~i6uIRrk(Z+@57Ft^d=3WM`@n@9#W!V>)Sxb*qeW)xHG_EWg zmwq-3wR1i?;-SCRZ!frrVJp{!YBQGBoanX7uAX|}kH6V9A2#-ldW1jvExwUH+VR%) zQNQeJdRreu8~GdGOG9u|4d!xtKdkP3`v& zJpZHkXeayJ#SbXF>5pG^frKm@oB8?<)o6Cj_YDf;|G)+#HkdAb9mS=o+rMtZg$6rh zTfD($qvo4GG&Wk}wZ`2Hi`mS!bH4t^8)*{;7Qvw-N`9pjX*w5|o!%rTw%Q)yYHtB& zPEh)J&-fpLoMR?mq#R>k1o3!gJLKtxUNF Swbe%e0000 + + + Top BarTheme Copy + Created with Sketch. + + + + + \ No newline at end of file diff --git a/src/qt/pivx/res/img/bg-multi-number.svg b/src/qt/pivx/res/img/bg-multi-number.svg new file mode 100644 index 0000000..d0d6d6a --- /dev/null +++ b/src/qt/pivx/res/img/bg-multi-number.svg @@ -0,0 +1,10 @@ + + + + Top BarTheme Copy + Created with Sketch. + + + + + \ No newline at end of file diff --git a/src/qt/pivx/res/img/bg-splash.png b/src/qt/pivx/res/img/bg-splash.png new file mode 100644 index 0000000000000000000000000000000000000000..c2712088428ab2947ac597ed685de02806594b65 GIT binary patch literal 239635 zcmagFV{m3sw=NpnR>$@mCmq{K$F_|(cG9tJvt!$~)3I$^x4(V%KIiH8eL>GBq^ua2zw`{fEM`RM7xx$jR~;+uJf4{zrz<-PYkB8U%z_z}>;n z*xD3GY-DO~X~#!;-O)ozY-z$rs?ILQEaxC%YGEnq>13+xDX(JeX>H7HLMp&d%Hl&{Lr#%c#NNr2n4OV>!5F~G zMa;>~2w>;tVqv2vW?=?!Ffns80oWLr0X)pyJj?*%|9(jSS#vTm<53b7|8HCWc6_83 zK%fH;6O)^p8>1U5qrHq7WNLrA|n5(7ALWsp|Pdie|Y~%?|*x1>SXC^ zY9j7rZ%h1N`QfqrzkJ~0VBuyL7G@V^V+Dw_vx+ct1DH9Pxy8hVS=hOmS=dSc8)Nc+ z#r*$^VftsB=|9E%zl!@mtbZNzAM$^<>c7qZZgx|2_A0<7J{~l11TM zj(Y?kFjsF(Kt|H}T#%2Ki5K-RRv(gn{4Eb}B7s+|9;y^S7yH-#9fKVKcW9rt)?2cJ z?8E)7H=4&Ev*vA8j`{0BWkfuB`2&y7p6kUon{)1Wp}QB^BhVtB~6~ zi`;_S_xrlWZy=dePBo)`A@{kKx8S~)p@;8V{D44TE)CJ@+lB5c40PI8ay9pn{TbPAO}@Jy^%iY4?+=fG z2fQy|U+5%GaSwNZk2%2yj9q=>NY8Z7%r#MqJ@cjtz+}`oe7~a)m|k)_xGEZX=ygY5 zT*~s@I(kj~&Gy9|b&oePhX>YL`kCwJ`_{8=cAdhZpLx8mf)lfO&rDE<*DNWcOc^B` zV#WW?W*@-MF+;a0Iag!L;!3dNjV#bMc`Tsd_qd;Yrz?W+3;X2>DuFTRZ@}?0f&EA* z)Y@&;+lt%Dm^bJ;CgpXT&+6S*3qO+y*g$I#oA0t9*-S8JW+(OyZ~8Pzdy=HK9)SWn zwowtQ>Bb~>>1{vp!iJoT)VE*|_WlQ9ykE+8wm2rU-$FGU=%)8M^>WMyLQiNZ?vJjV zpKQlq+p8}#^%1)t*`ZqyX9IFAcU-vb_`H>4c&;s9?T=n5*GI=PCr1q)zW!B2SjS&C z#o%efiXueUn@SHN6?Pvp@9+{J9o-{bQB31ZQ73i+*uFtbvx6X1_v6O{;P}@9e7;{d zFWga~SXo)zTz&=3WIHIx+sOLeogddIu|UC%o-aau8tFn-x<mk=eVfND0S594nrQl#t3)q%`K+_g@;A`M4yYJS62B@6nOBx!aE@W2 zy$MGglVBxY_7Gf;>!BuF=buI$uO6Tp!$yL?co3WTX*C2$NGZ(F!e6}OstBIpgDxBa zdb{WYOm@H|t()!|SgIr5_)>J6!IFpRkNcg>+hr~;q-`Y>0#mb?_-h;-P&=yOrTYT! zj&VrEATPp*Th*!P9U`uHVf~N8nIOOGTW(23^ z^q64%7=5?fltAh{<}$FlP)EtNm%HRz!g6fb~jNs;d@Xb zy)D!;eM!E?!Bb=I$kpuUdfS!dcdYI`H8X81_3Kso*z@Ok3%vh}KZ$JFEyIg{DF<#2 za*#pZ?;S2S3>-)gV~Fum9}NN0H8e_?QK~Rh^D>jJU%Pi##mBP{AUQqAixsfS7)dqe zux2?+!LTiQRJS zgde?CFSlHTxq7MZZSYK!hvqlDPT%YJt?B-XcX!=$LfI5_=>YebghZ&-uk5<@6LxZYm#(DCfS_2{{p04wW1AnW5s0(`Asv3nZAp#zg`yuj zqp$b%>h#hNIAK1L{Rqja-*yu*zt$IU%fy>;M3%!rx6tA1fj!%C2E;TN<$;47%+5_} z=t~Lgn~r1Ri_i;4@NlkY$+tdD0R~#;d88qbD`11rfA@ZYe~S1_%f<5P;86U57{eY| zx1grI`2~}DwQ=2&Bt1DP31bjM;liVDcN#ab^{RN>@q~^r12wMDKa%K>8tq)rsxl}3 z3hluYAy~Xu7$8FP7JuAZ1mpF}HN~Y>zQqBi&||Sw$<^KT%w|ry>+yh?j_zcMs~QM_ zy~pyjtK%HGbi4)gJ$Zg2z*m?N7tNS`QVa2Iv#nQ9?ofCCV<)!}9?LK;^|ara`O-o4 zh~nmuYZD4+j@;kcgC;5ezyg;IC#f=@porrC)vfO#Q1Bh>`M1OL1;?zDvqVlLQNi!RCk> z7TXBmCMp_49dXZkA{y6yaoAJ@PkLH|T zs5+k$&Sja+RiwS>&)Xdh)L<6AK(oU&rp}==el1Fj*X$6+rOUT3xuMWCTyv#8`up;u zpp<)8S1f$}z+<5j%)|A5N2(@*Mo3T4M&X`WDL>&wD9FAEM7qIsWAor(UK;{hhD*(8 z+ml2%x@SBedq)lkszVy+wb?5Qjdl3|HHQ%g%)dfye>goSt}yH~EkUX1s!d7ZnJ}w@1qyz+noMYb0~U`G znZ(Z_X6~|Of!qR`!k0b$QhT|-=} zhPE8`Ojf}MTB^m>PzA&mZjJd47eh%q7Hbmk%7Rb_CmTIkRU(9eI}f+WT0B}dDi&79 zaRcw&T-dS6Y2srmVtS{~lmima6(S<40oU5@P9G~0mSxM1XIg;>#uDBlG|lY(@+=*- z^g%!ZF-R3g7(T&|%&EAvZYSR4V(~N*cVSC;gt{abriV9`G;}5Cd_|#TO;?NP`BQW)CWP&mytz!6&N@ zzoz2kFn__$_tIn;lIyVTj+TJYo}Cw+gIdBBCIUPC?HJIh)unl=79u*v`r7JN(eVNo zp*WzJ*-#J)7HDFWK%D{z<4eCpNQd2574IyZ6DXorsR>B;A}+&0Ati*B{?h658ddKg zL9dFBpM99XgApd?kRdH%F~3u7<-CO5oB~q9uwzRDRb$$Uwxl6t^&$u|V(ou`ZA#QM zvbWn(Klj3d{RZa5ID1Get`SK{0xtWRIEg6^>$- zp-j`Pj^SWrBnzTGY2TzWvvyPX3#pC~L3*@{k`~Vl5_pmVzPGVJX}@SbA>6F*xi}56 zGoT<-oo^$eNCAl937E0_KZ6~=9|%*hH-CV>MWYh)4}CITk_*}826pt zD%ystiQNT$emIgksgs)i2$7WZZ&%4VrYk@+-? z*zZIO6!maoHX4sAkTX;t=FdRsL}y#JB0xNPFkaN_NpH!Q-qiO&+Jq^O$18+K@$=1$ zN;|R^a-cG^_m`2;`RHj7u;V+f7CFAGJ$kuLC4t71z99>o_LhHJX9CYNW?Oaa-aDKf zSV6&DsP-1QPU4R#SOY_E@;x^AhoPR+v0!9KFvAh0TsI8YB6X$|(;@PJn)O;>gF?OUWh9Bh3m$mgAx?ZrzwP>(a6J2YVx;)wUkb~JOR^5qtHMD9rB_9&tF7k zHX|aof)xc3L#X21pD%?tO!WgOZJ(;vd5(drgIuh-2L#PFlqLU%&`ma|zdC8*>NNP{w42PnRrZ@}S_hszt#Q zoz&J#hsYm2NDTA^%#L1K$%PIK@Co>iqk}OD;L#Z)waDQLK_=1^os0R(dVGcbCxWo@ zUHr^qbzy zI$S)w1(m7;3(_H4YQ}+n$(Dl{1{g5#(FU8S4wLlS`GS8M5kYom!x7XVjw=8pk%0@n?-c>for?hJT)#9Jb|EIVFHM zWJ8VMoLD}a`)}UwZiimIQ)DD)d@)`YhF-1v>k_?(ZifDCS!5}Y=tiTup4oebz|8(V zLHb3?pf@3bIwCO2kewyOY8ME3&Xi56aqZ~-g@mBhN@5|*#$2Fi;X^ylRX8`@41aty z|Db)}G2BtT`cxsZE~o*md_=WHRf^?2Q1Kv`Zf+%lBL2qh?hbiMi^ZO)6~=MIh*lpN;e zX}$sMbvM??K!?=v!9wR!m!S>6m2ilOm1T055ImEXCHi%Ts5P-z! z;QC+y1CvhIm*Av0;HTlHv2+q2uR0?|6`#znidCX_^*2VXHQ(T>lK=R|qobMjD1sN( z*z5FX;JvLM$CDrR)sxyej57=wH=25iPT%REQCi=uyFIhLl}EVRJp|d{iL$v`G(X2= zpkt;yF^_*5z_GX+krgab)r_pq2M+D9GA>bFH@W523jBPo^O{6E}Lncv0MASK-oE?+Ag!o2NFu2XJR z5r=~KSqKiiEK_A#ItjG*RVkPs=VpD^8o#l?kg-FtVg0nrzaljYJFu|hbwmtS0?4Ac zuo-!Ld<}l-RK2Ci_b(tV8|4v*{j?qQFFMN}An%04OHqMoc~77<>XAxw?$Nk1E9#fB zXg#bKaK;&4ep-3&ey+0N_P>hx&dPps4CD|OQ22_4a;^C~pSVpImhQ~(2_N|~#fkB8 z_TKQZ8Bm5{-1~Rr>Y@@SfEFaiPb{pqyWzSsuK!FD6e^Y3S)l(@+uyl*ypi>{LU-V| z9EEO4nPlVzl|TMzA}ESe=R0-wL-?5E(_g;zZ6#mE^~xdCgK2CUL7g~}qy^mC(Xm(l z!+8+KM6h<1XZ^4(!YQbrwRUJqX6UqbKa)~a*!bU?ypjTKD!5@9HjS1+0UAW3g%Jpb zBp(g1dN6K;AqO|g>!0mXtu!+}4v8Vg>@SCAs%=>;IScjJe~>j`W8o?KO$t2v7Ss)= z1KQ>h(LV|add^!MR6$H~8r5*>z{+23O4UZ3U6o4q!=;mP;P>ezTY28~$`AQOq_tekv&D$X={P3}ap@m9Ipj=a83V zv}%3P$kMj=X>0rt)Q~5Sw-b>lVwE>USFb<}T)maTX>66^G*Ou)enG4PYr`1$ zD{Ul}OmSaRWhdYvFVAl3PvLxp)GU`}=&!cnhKy{iBjErLhG~q>yOU7>J%(R!^r0gj zXgfPF9+epNIjeFk(^nDi#JRrMBKY_s)-cN(7l8I-7i<|fmG&uEgp)v1*Ax4y^a9e5 z&K67DwP^1BMBqAuk9~|NSE}b=4VRUFMC5yZf0iRQ_A<12bvygOujNHU$&-K4V{95h z^qxcdZ7)obC(SCd-ZaDkkDr^)z^!|_VHWO38TTKQ)bUNjnAD<#^osSZ6kbIpZROYB zF=-a8YFz!n!oO=Y;F0c4b(7QfikXCHeogEpQ3qrzI@chy?$to{2@k$BndJ2GM(U&u zSOUOIS|N3L&7Y~;(J0!7G!rjO){=D6F~p^3J5ii*n?@-be~P7)WlR$*A{YEBI5lbo z=!so5cV}?gOgzPVa7k(jzR0G=Eh>2iAZ-QRAv_YPsS?x72E7UGyV@fYFGZn!(G!9_1Z- z*et8jgWKQpN)#mK#KaQdl&QSzLihr#mEC;XA{jJfRe{zsU++QH4u{24gv>8H?yqB2x)t!d_EEFc2Hb9JiAUpL}Sst|n zM^XiM5L?g2m#;hkjd?{7KhDu+rg{R)*Z%77oWiE1BEng+ z;=PxNz2|n>h|ZRe-G^gh^;~38`eYuXR06i|Z+gW(?J)!GP z%l$)xeC{p2?Mi5&q@yT|n35^~nMbNvywFp-{-Qr-LBzlzT_+azEG zR5)eb0b5n%SEksFe+f^@oQJLJr1B}4H3nrErMU913Kf))39LY5ITpFWK{r$)5EFZs zgYVHm{(e_pGejE*BS+VD<7Sa@M&239SUz7m@hWP+>=4H{p&KS8DS^uqkVoE?0!Aqa z?}As!O9%lzoHY)qq(+~^4yg%dMjA@|)GeaHAx05n>4D-kXgae~CjD@?4w8S-@vhvl z&Z1z_y!LT@5Y8ef(Z_Hqogb%<_NrEFolS4%aY|}0SFAug;Bwk_jO-@7{7Jz?(%`97 zaB4ESz^dtQTl9!}A)xDnfS+@tNg0l$#&jS}(e<*BzQl0AU2R-NFt+af$91pbka!t0~b3Zb59s*jflPM)WWuBWNM?#MV zs(q}4m1RbmAaABK!f&T@zHs~M@;GM;IEf-pEwcl4tg)J{0_MrB2>gs?vXaYc!(g!1 z@G5EKVoCTKflqcWOeI^nXDcG~J*U%m>5eim8smE(yqHYLF@LyxkC1l7ss%Y^QfbT( z4&`w7-K(Z^|kBaEFRs_0vokS}XNpOHh>m^fn1^_47_!Ze)X5uOR(pre!tM z9dfnx_c_rFJdQcI>}n8wZGjtxcAg0wN=d#MXOyvptu)tUVBRP(%}Rzs(h!t@k*(}l zp#GO^YdPdRHYS3OZ0!)j&l(tkZDDn(Ze@(i{`S6*u}+Khc8r!IFRGuwaIBQ#@;bFC zMoUe`c>6mrs3=;>X$#ctkzT`@*RGk>(I{9+{J!@y0mJHGsVsRwEK_Go@0po@$`%#D zT&vM|xG|?bW13Vnvz7WLCP#DiNxGJZwQqhH+;N5NdAA)Nnvj*vHvd?!adyon)E5oD z?A-V~OtKnJ4n~_y0TV4 zjN$mg*M8~9_sh$T$1*<+Jm!XpKUcqD~!X@ zG+gXEay|KY`>gO?^()^<$AoARHyoMmtfM`=F9#pfWwZB!#-WML5a$^53y+I+l|469 zBPlQyVep*t%(&(m)r=Mq(MOi21uJ)+Y+z#XP#MRBdrR3y1~jFkoES#Y*iMM8ztS^o zJKzUuz1gWev$+9i+rKn7?C{&TD5NA8Ltx-k%TT3@tjUJ6qVv+0c?>z!M`FxXiWZMj zzyqzNavFm!R`2BrUsfLju^m-PQ5Fjda^y;F{PuJhCowCx11UkPX_ZK1#Js>=5r5K^Qrhz z*dCq?bxYsAnjYL4YMX|Q3xaqXrx+VY?7qEU8DD}fRqQS&u(o;!fk0zg%%T@ z*++r$5^tqriIa3G402J?K1&N#AGw{Kocq0{EGVfNVkRAW)`z0lkRY-bGrW?1K@-V9z<#As1(|eRh9jqcAZzn5V=iHb%)KGW$slRy zIQ!2(S`-fjHv8k+YG|WwRU@p0{eZ@DZ5cGBdQY1koke zW`pM{7dONmP?L5a8**H~Yj1=$u&74d?huakU(68O<1#j-8lDj~d!`U^Drpf)srru= zrI#TIj-1xR%3xsz!Awi#%BiERm8XrLB&D$J0~LzeE&#ULaY=H-@8+kBJMg59Z7tSm z2g^)256u9_p4x|mOa#g_JQgbhD9b-+?T5iF`{z?wSP*@Gyi@rVRN`D>K)r0vH1cw$ z)FA}vtiLYSsSstt*0l4XQX~Uj|o@COUNS!{;X7*3EWB zSy_yLAjdDun4Os?*+?MDa27TCX4f?FXPe0t=h3Y zhT`ZjQyS;QrI6xvbtiHXl0}ybx&76DkA6Vv)0%c5d+`J904uqxs+u-W9wDgOlVS|J z^K}UhIZ?aeQP`?no4tF9xWoYqHJOA%=-0TRo=KWNt&d0_HwzC`;sEE8Fvbr&`->6+ z;*ZC}g=U8(C9?AnnAzdcG>|`>#PwHcZ)Z+4%)*xu1tM8#4ikcU@4lhmw zNCSaZror1PERJn9`O0BoLZSKR`mUD?-5%sm;R@L|TvDmm(YMzEpeqlOn@vp{;1l@5 z!l2j&J>1vk3`iQ+%x;gb9nGnE=BR}N;!kF{n9+bXf}gMJ4ZLVxLReXzxHue z(IQ(;0yCv08A|^=g4iTaOz0$yxBbzhDduBZ;z_)z9MB)+<+X$}kfo%jZ6D=NkqxU~ zb(I5Yd=n-4y6Xt;`MTO_l-gAjgu3;iVH&b(tItJ*Gb~J?flaSVLz3ox8UE(1{?Wr) zD|vg=Y61m1A~=U*+im4p>EY~_qX-GjrEXP$0iE2+CnA%5=XcS6)#Sxbm>WAFBig{< zON)|yW5^nz=4b#5b7s8kQuDs4yl{cPy=bKN*5mbX-`$7Yz_SXq)ByKwne><-;)X=c z)Xxx!9dfSCoJH@Ljr&>IZ@DCOpbTn(7K1TDWk-rz>a~}$UNDz!Ozr5JH-SSx#BFmH zj9b|BctuM2EiU=tWcVt$xorR{ek7WS<|?*QCq?ELA4!(w`EU{t=6kc_`yqC!x#bc%1zZV=SZpjt0d#wyeA+=No5`uCJMr z*^}-dZWK3s^r%4L$f~R~PdUL)5SsT?X zRP_#}Vk|>Oj>uH{Q1Qs|6+xcqER)<8pn6l_N&x!i5V04mJg}%Y=2qo_)kQ_pXF}#@ zfLcaxwhh!n;{J^je{^m%e$t{1+Z3+tEgIZIN#&dg!Cyw%lU@AMchWx=;d+SLBYACJ z88Pzg8*eI_?mMOq1Vso{9Ci$@P zGA(vkOK;Ol%Gu~ERp4NT z6_cfA7s7vi?_6l5sMBF&khcCXArI)XqSb4SWoW9C@3?X{`#!{b z&_w~1%4rwu#r+LVnR_s(fK3QHypP_I*ej+mvzZ{TXrMfFe;qW7fy#FUAJDPK5xBya zABR-~k5L`e0`B}T%F_64Ric<#%&KT5?0-Hx_5^Lz8LVFIgxfZ|Z*NT??r7>r-v6-)!eX?!l~FS8^EQ^Uqb_8jKBCh zTHHUKO*SDlZ=ir&b{MC`He&kU02K|@BdKZ>gH?aQBj`O?QRL&j*rO?|jvG_Ff7M%C zBe|U_IlBloc-Ll@+{AvOAXDpDy6gHUswcrcU&yRoFo;KisV+;~Jx=^~C0hq%DxXyO z&B+L{;4*HIP83Mn1WKMF1fRMjxpM={>AFp5%vjHK#2Csfkkh8cemG2N86 z`I~|)aYQvJMg;dyTXCZUJl`#`wPX33(&iGLp$yVe{%E^fJ%d;PO0ZXv)nYE$UG{Ky zeQ*?JeeN-Y&oz3+bdVhj&YeTJ5_8-faoXJp-jKj4DvKoP4rOR;#o7Aaq<_8du-1d-^x?h?*5bgmAF9G=5%uJtTe+vQGcL^~c|b%D#1&yE>a#9%v|RHxj6$aD$Sr z31J3~CQ7!X@_G^;==?$;g!?N_e?7fW!Yk839zp4@H>9+?&>=1`O|>`nA< zgh>r{%JSV;(~B5>1|MPRURRn5Ki!X_O0(6V(SbRM7SAOD??~Ko-&9JqH>el6duhXY z3yH%|C=tu0s4R2Ly9*GUco;Tygp$zYbd*apgI9#+P_msY643Ibc{fl%+bNIAQhzdD z7&~Nex>bOjq#)j$gDOH%cg?}Hh$(DK2ZZp3GIn$+gQARPJW;kXPAm?Q!pf-aHjf7$ ze+9cop#6qan^5-t&__PfGnc&Xf^a1Tp?&v-mP>pIGq{vH|8YCj%Kc`xe6ju%l!onO zgj$oE3DftTgfcCNc`OsSJuE zB>qBY*mcIkgF*?Pp2^TknAU*_4Y*~}mNpm$gao=*c(gJ3eBCv{Cb&r|!=K5$8Cq$T`| zmX2;DGZpvg2R*C^@s;v11HYP`a>;eBg~ROkKmf0ao5ne=xobytCNlJ7f&?J2&wGn{ zoVxlHQ>Fm+1ZNXD(_^01^*s?PZEIm9(K*w#15nb}hWfG82Dhy~l|7V5m0O)b8u?;& zO@SE7zPt=Yo6l}Dhx?f_YkCVY)4odanJDToEhN>%MBo$wtvE>Jmb+tb+^b={jw2vW zx7zp=O(2K|!Y-j}&{+|aGuNH_LTNT@4$g4ivMe<31)-I;Oe)q}l0^b+qId)UY=)g5 zrQR4%2#k|dNCdEkE$b*bcyCo}^y~fpn&Hu@Y4Et%w5}L1&>)yop()kizr({m!~?BW z8LtWtv6RC~@j3*P86KF5Gg>ty$lUN4KYon^A|~d1uccKoxecCYO0VTaR#-|0aq9fW zc2yp2|NL+0{*L24F=p8*y(feDFeJ+(K97h;Mk0^RPE8ewU1@Y`qWU5OdJ0~yU7wCVFYz4!8#WMtXyDTxi@Yd8(lU(%!pX6BF@^r_xyOV zI2`IANhu7vY7BmHiWb$XCXt2FjUrS+3<*W439$;g+m)N)WnDumf{=^jZN6*_9$Q7d z)aty`dxE@*6vUx|tUTe<=@f;8p?9vJAs<*rKz+fEk0WACCbru)-@}*&Mb>XWJ4m4J z7ar_4ATlNU#}4gIV`mk4pFE7s_ZG5*rHm$C?ijW*@ZZfII~~1_TX!fX(`)XWksJb; z;*FtCYYJ&lk$iYL;gyF39 z^L)ssT~xidOff*7Bs9zgdTKZ`w+m|SGkEGGkuY1M4?74;T^vE3T&h@1HXekZd+$$g zHqb*?3Oc9jeq9uJbiIQelsu%6PM46I7!5x&ri53?cZn^^St*IZQBus*!sLJr@t0Wu z8$J)?hl*aaQ-Q=n$IW37Qo;@f=g%#g_`UR&3H4zlr^vI^AvP`j*uTigLE%x@yHlr% z)G64V`LrfsYE?pzE*0-^W$`B=Ny1)|^(NRPg781=IJ$Na35a#TI_;OBkn!u!sIccB zTjwpo8lBBGIeW6fAk@2%F%$yRjASS)we4{ss|INeg@0YKp!Bn*Pnm*N++|~{;4kb- zV{UY_9`g&Fo(_G0^lo+%%H37esj0q5**iPa^%jek3(&el7iCdXvzGo48I%>)+L?%sg@K-p*0qgCT)Dp|}r@8mxx1uh$;1Zaz zEpY~T*^k^`jj!K(`eS24;Glm{oYn|6rl+RR?8-KcUuMHvqboeffMI5VqplJ)RQQyT zdOdb_L1qmQ=0-Dgd(#VSUc7V5wOO(z(`&e|wYjy)$1r`9O5ri*=~=L}K(ydgK{{mdCpEqICz#P3Kc=X;ank3#azNmJoX@1NpS~t$|tBp!mis zgH3PZ<&MMiTvP7>)%LUPDY}WYs2MP}xa88xDS07f$|E#1VfY@dvD)V4pJEOHM~0M=h< zeSf=16g9>C$Dz_W#e~rd<~`3i#QfAy@)|l_n+ug>gcM2A=q|#NC9p1wh0kxb&IE++ zrlSqG7}_hiP}Ijn_tH-V>q8BMHhGt76%dQ}={zHXhXn}(r85hO5J)Bab^l$`Vgpm@ zk)kGN<34@NvU$^Wf2n=P$$*|lgI?RdBiv67zt>JZXd9w>5?Ov^x|QU2K>YIq!-ogp z#E@9MkQwo7Eq0I&G8*JV{Sf5P7S72lfIyi4BIk)H^F{+WceK&NQ=9GJuU1Gm%WuV9 z1YQ>8??OhL(yc|45NxHMnhU!w#-@&Y#rX6pp1M{)SNx_zV`LKWi@%4mip|;a;8h(a z-=EYdm@rVLYZXi#zH)yl*SvG=mhjhaQE2J*m(Jru%xo*aFw*X_+gZD?ZeFg2YM=I_ z2XofEUg1>D^}D#=H$Up<$*z9`p1hlc=xcE#@&)d3v8Udp9rFU#Z(SH2H^>EfP(O(| zO3o7>%pi&2Hn`5%=7k&=!A?076#-U20wC_(7cZAB$}kRgp@Pp!|HVPCmgkMK^?FvE zUM2D=<@C28C*Dw9lxOG4ub;bW-b>>6E%I#@(gtG|YlDw?r{!I6mjuYQ%_mT)g=*&Y zqPAN-6xsTS{w7CqN875o{tND-*{yqvL@q4-ZPk$UzlPC7@o(r23p_TKBwulym;(-R z>s?nTt84x`gH@Z_72N#0v`NiYNiF=njEE;QlH=iSOJRvBJ_I@v#QH|5Xn`Db(o<6V z@b8Gk1xXeVIB`CrL=D?=C2#h%C+zp-t2N^C8`BAC2!xu9m=EK704GG^ zdtLIf(0v2N1{Vom*9G^3Mq?wVWH{qM&$wCqDzpr=n)oBBn-8$L#@=V%sdc@TMtuwt zM2`Ao(?YrJZ$5fi5TTC1FqMd#DQv;~OghG0N)b+bx4HS@KFzTD1oewF`F43e*=YWl ztFpyTuC`!tL61oMw3Cej<}ytrQclBr_BO&{vM?V#Q*UK<4o_0q`a@lqr3?L39S?v+ zd$PQ9;Bd1ONt=_;zHpayLR?H_mKRP8j{z=@OrJ;u7RDt>7~z;SY|i&J9$^itIyMib zvvzAeCK2yTYNRO1f7=Ky3R8b5fiY)c;Dx%*^@7~zrA{M2368WD_bWK|V^F>*3##CO zx(>z?!e#K3pWJ?L+zF@g7Y=yo7#OP@7h_Gei{>a~hyPnq(L&Baje z2B+hKRsF^ZU%SjHy$1NUIcnANb%=<2Kh+4UgTu+L&abl&4g3jN-%3;Tc`KtPi{+5b zG``1`{B&T3ksQ5+Cl`&Sgw_rpkn3eP--n#(6~%68;hFOT4<(wuI> z8Rz7$bNP1nZ0KiM91s`oz;c2C!oc`^_tG?57YMt<0+8r$~e*z$wcD@ z&fU|;;07XBEw|@?3iwT{7RJoHm_n(NuMy<2bv~;;+hF$nn1!h@+@mZ{lkO>}oV;Xs=#MmAgPNAI>jMFPC)_H|&i=s(corN=# z2^!`$HZ78H*wfxE{f;-znbj%A5lSbmqd%pOpui8%Mj1PJd+CeN$!?SIfp(ql>u(^o$pc^gPkqPfL0Si_c>=k zG7L&ijLYU;{W_4nsE>lL{BXWhSxi(;O&Ok1WI+gGr%rL2i!LcYH&!In$3LXp;TdhE z31(JFmDKhRV-P}PK64q8+&VAs)tCF4&l5@rmm-KURSnJf%e+9-OHi)6-HIE=MkE)) z!0k%c(_oStTT3hax=fD*3Bgfbh}_qjSy?Ar=FzU@H#AYeQarN<1qHwaQlRp0NGBb! zc3RrxicEhIQr?BZ&2b`vf|$U`~y=wU{l#-X% zJ$ejKW3^9wVs2z0iS@Gzt+y)+Rkao2vKYgZOTUWRr>x46F|45~Sh9nipifHOe%S}L z@uX?n71tZSM%R{VCJs8{Z>s6BaT=%P$+RZJ3X%>bGou(0(xmc=j5GGYqYz&k7z?;- zH(xUGa5F~8Z6KeZ2EdmgFKNDhkqWApra0``5OPnG%FI)Jcho0g1=0 zGeN)~iio|ZKf+<*oJ5`pzBeDBscL3J>bz!r^XJW)O}&F{7^BjaBRRO+msJ2t-` zslJ}iZ_k%gznxFIBc~Hlc(6lV6ArOFf1TEiSCU#s+qwI=^o2Ity6&5MAT`~`3&@}z zo*qTNJ4rq+i}|mNRy|e)nTT|j90^N#73tvo*b~kv-m>9l-_=^}d_cjTB};mX_$kr! zgfNn?4Vzba3{sp@7l#bWabRxKnD{;biG66_JXwz<8sC6wz^ZuOVITK8y`#(rfEMx1 z8z~I#{D4@>!~=SnJh5pvW-y(_%>^0u7mT)wrNCsATb6D_O(i(J;}4kU`BK{Df3&pL zW`7E!!K5ZzR<@8MLT&)yQTVTL`ZQ{o=MJXQV>fo9is^A zLVCQ-JBB}wfLvpsSCN|RM2dugg&J7Ly0)V{vn*V^LyMZHPYzOGR-^%|xmmR58Us-< z?qT0AVBdy8e>J49{S9VaR32h+e`fULFL2JF&B zg~0?V+$pzCq6H1df#ornE$Dq5EE58CGj{6B;WmPidjNEH0AvQ5;zvz5-eddWkNtms z*!?;FO|3AN&U8q>x%H}omS74wsMvS?VT^?O{xBZ#K$1{FWuPE&D|n+-!)V%Zhr~lO z85GdY`}vLkx+O5Wsj&O>@JAaS76YIZmk35fF{lw(3-#I*FETGQ@G%)JCBdzEn0=j2 z>1<5Q0B3`st=Dd58@~8)b4Y34$y*+x^}q6Q7SsGU!Ei0}i^Cdd|2GbGXfC5iy0G4u zI9P=6r3B)Xgnr3Byhh(PR0C4mQDWjy(I4DAhKNzZi@^PTl5Bd_?y{jCoU&%pSZVLN z1whu}B}s%&AqKdt)-@Yvy;QFyFweB>DBq%FMU=fYp<6R}Rk z9^kANc#t*- zHZai%@$}5Wq3d79w`$xj25#IIvtTc#iBNXdB(Ir!0CZIVBu&D)R}e!*&bBcsY1^mW zADF|O*c>$+#|qVE6)YEz@87IB@UXj+6{ zc^7S%*H1cvfeJ$`oiZ*s!1DB60T+K-0HpP0QMcvw5}M}m;Xm8Zrj|Wl3bmQIpC?{x z90o;z)DTn80Z5uX!bBJ8y=bV&G7KYbnx-TYW^AE3TX|`qu-H^UG@dY)BE!qRU9J{6 z%wmsa-KU5fY&#M?;sIPsHTHrC*ob?xY|2>pi$blQO!I?Dw9uecSG=nlO;SIzGy*_W zAL|A_54AU23a)?2HO21?XR>O z7xN9R(8g|oByq&u_dcc|m4yOCi%1*MO*5=yI!n$PSeqmu^UNuH^Q5bRfrFy0w!xV` z5GF!;y2p8}%!gN0Qo4;28A*yGFbj7LN*?t2A$a4=3 z$sG-o7$<3oHnw1{Lx41p=hMX_o_T**oaxLWR(XYV9Tt-Nzy;a4Ttz<|yLe!Yh#f1O(c`y|lP zc%)^-a=9|4ICCE-aSyaDi%aVmON=K$pdewKcro`(6l|nlA^-v?4Ql8xX`82yyN}J7 z9_S$*Chu!XGj51Ix50y`3|qY-k$(*n@@!C}MhM{7PKR-WBHaqF5CTTOd5$EO?yU6b z=^!*&N7nem#J`?YM&{|X{J zp}!0bQtk>77h5QD6_Pd@egq8BFcib}Dla}j3;!ttKxVf6HJBVu)hDlN)FdL}qWGZG z&#<(T$w#{~{u_^iL6inX6_8BPy;y2!c3Q=+$>Wp@$*MXk`=rb?+PRT&dLL&ypm4LD z+`B}DG!|p9hLmiOLu**Ya`LoE`at>&5*tS*Rg7`wZ9)N}Rriv>l?YglhgutR6PUZ8 z1h!J;{cQsv7)k`_#|1#9m{D{yE-W5|+qi(?HLYY&7I#GjvDDN#<#P{0&&1ijK0$yC zYf%NOva+0ilGYe?5DdH)xxGu07&mDXSf4+#7a&)}x?wnsryY<7r<~zl&}2U;JKqDK zD+8da1}~sW;vyJXfk@1|@c6X<{OR$(C=wzQql3GUex5{G>+lOTv}Rq+IP}Ni`EWe+ z@d!9Xw&8UJVVB<^2zSVu{eO=V*mwXu>>i&UsO?U|M(<|L$-Kxsu!|d=R;VNkv$@z#q6P)c! zPx8%&hd=h@%f@;C?0uCa!BV_rf>95q5lYMs!fOlw>j6h)!98KV&u;Z2o4cfz*#yydtK4noE?R;cp_3ay6!f=P{svaj{yQ{~Es@;dS3U?RI;X)1B>xxaFgAM|u`Q z3^-@sSkmDY;4}CT9@=*Q^zdio4zK6qx0mkA@%S34ksi~I>M93%?&5M0*CM{@!@?wn zhIovw8=^dV;#vesk%e^8)YHeEH4{*^hvswINTP9dwT{>M4!R|o5@vofNqj?q&W=`u!iai#yCSb9UkPoJ;I5|Vo3pLVn?wqu84U_ zPW6HKWzDa-lm4&+W_ua@6}}3?my4pGyo6!+c`+NT$i~QuiUb3}!?@-;e)2wjX-;KLgvvKOeszj$gXrRrtIbNQrKr!xSA=`yrrw$#JR3;@Gi3W@*IwxPrRV$|t&ap~RCKBI^UyNb1_1M6DdIM=$+*EVwri zwKOs~>*qxZ@hy-;G=hV&-D%B>V`AD>o(>7A%GE9{c8DmB+CCK3I+qYHz-fXr)3%{U zkJxD-X`dUpZzA{ws|ueVXskn^_zvMvC6GuDFBKS}R~)0m53~riLhv z*Vw>A7((a980hG#ZF@lUwQ5^xB88+qX|`^B@Mxlr%>$b|i0=TtC-J0&Y~S z?$OURGnS2@Q6H%7Q6Ad;c!0Ofu6_8h|07Z`)E~O9&)v7f;koM%s7`TMJonVqr#wzf z>UNWIANo@B9Hf^l3cZ)#lDG@wPao|8OHYbtWhoZkrORzqF~=phgv4*t)u1c{NvW~S z#XZaM8|p(`3nf-^2Hi*2(dB5%*Le!;+(XO#%uq{z>H9b}WkS`xNz54IK1z_n(&=UM zvM~UoK_PL-Q3Y3zK-CC&1rkgm078uYv3ouqzc*p`@$obJ;eg8`rb+HH>3f{8x-5l! zQiL=qh?K5gg36G14+Uf~inKA$sO+jEaSv)-9B{f<)qS8sxeX>CfU*lPt12cbG7c37 zkLF-SlQ$Z(sT5A|!a)hnq+dW=S<~$2!#LrON1ogi)^iL5I!ZCc9NgT8 zavP;9S=I9|#YACdC!uGi1SKX0pwX)8aAf?o&q7^-GtqOFh)P7QPXa>Y^@~5Ob-m%* zp_fq~+biVj#|1zaae$<~EsHX}0S%h<$U&KH%>U`Vw|btegVWxV+n33vcFh+dK$FXe z5(Xja+&rtcMGsDj(Qb7-Q_B^eZZ)1b^1$59ngmhC`O@t6e%HnQ7z2sS3@X1Ru0b+& z>VU&=cp18*e|^~P$4%S;pDzsd@X-}SLCouj0K|J0?45EX20k=vjC=^YW<1ma>91fj z>~{|zhyU)M`W~OVj)V|j`tRLvaI9RX@SM^$MK`Vp0O*+P&2HSB#JH`OPV+e33Q%3p zk>5oty)JgD5mD`~tO4O$IW0XmJ~JL-tO?{cbMzoHE}Bo!#yh;na&#RB*V#V&rOZ|(TNiIS|PnL;dRFQIoz#g*Ve_Ti{tFjYH zPQ$NF2B*TYR;4;+SP#Mz8ZUvj@NUXexi#$x3UdS3W3EK&E3V{69J+v(OC3xqZ$6{52zT>Z@4QaR?>b;*&a9a zIBe(IMGFru0xzMsHG}JvYdfNHbrvFjPq; z0BYJO<8JmcydFa!t0^vuHRJtCPS+!wCrI}z8!P>li>E&-=&9z3)^40f)!LP$kal3= z`3%~(ODuRF!hY|bVtb^$n+~)7&>ct%vHSiyys*NMlNKm`?p)dA1t>>=6I=xIIgt>e zvQi+%+68+|WXOeKtAcTcbI_agm`cV6F!`Y*waE#EOdy|Z)cMng;)rsI-7yB@w3f1` zH=A37Z=1)xZzu%!soa${X)vov#K9UZE!OavO=XrOML+!@UAYJ31;mwjL99|zFRL~CNwHfjB)l*yuc$E7Qb+7_5ZIx=uIhybBnfcMFs zooCdpY)dszQl66RMHo+Rdp?%MTqdZmRnTIReqcb0RG&y{2g2IG^4O%Z7n(j0huqBa zktmVM(6sJ2Xn>?xC_)J=+Qb!B6e%eXYg`t2=E=+$oEITZfy=5$z-I|Wua6?IB54%1 z8)WH##WUT?YmrUB=uxOlqP%|z4W~^@E;KOmBcFuB<{#?!ebQxHEe|6h+tFAX~}1H79Y=q4DjGieh`tU_wbK$@!>HdKH&>`d-@w<}?3SK?r~TctV=q zsskq*|AH^?k{i5B8N8h(+C(&&MBc&KPuVYE)mk@lnIg}58>{hy6h5OAHHX$zUa+Jcgr9hSxv zY^&Xm5#;zjhcP+mz8B{{~-bkvl{V6(E{Lp5gz7(Na|UxQB!2#@;%g{LG= z-(VqsNGYOslV>a<`PrNkPj>-N$w>=dq#FI?%9xkZW`G^A8sJJDX8!3|>I2DNr6{H> z0hc`i(4aL%I!)A8gX(OntDh88SuJJ1`Kd*{NYdzPRFp`Q0auo^mh^!nl~{0?UuXOA z9#Gu>FG_;GdGs?i$gR_eADG8us*_Hlosy2{-zEa&;Wiz6+6j@nLe4rfitrrY>A}tB zw`YZWv&{n$dl-Lvh`#Ab0;ZFMaHB$+nr1~Li?rdfKgMBvZRmHqX5WT~08IePws1C9 z=+k1qLp#?NsWJNtS+AF-txyQJF^f*iTw@AHw2y(|xwe7Ou*3Jbw>`x_#z2Ug1Tpqx zlyU6)mu@(8{p)e)ko{Ttts|a0U9Ae5Fd?&gM3}@WoHsvX2z*@ zXQ}iKid=BJZ=Xc3F74&{XC_5#Ea#&J?|j@1bVRbAOA$=pSgF%UKTB9mt5xzD?`JV%NsaDc0X?yvQHUub zaYL>`SuX;0zc4e=Vhf%`Kh{7^7%&W3V9GK@DuZDRZdV5C9O$@(Ie--ceL7Xft#4JK z5vG`Id|*)o)p{4(2%0o36#b|9vW3lPU^$ooa?&Ot7&au81WSfE0MYW3ECVPy&IEq- z))imG_c>U%*o{A(1*Jvbn!zJj(+5h$9K_Or12^Jk%~&ktXML<+H~_kNIJLOaelXj5 z4f1hyx9}SU`EGsu&QtcdeV(b<9WGv5u|5FSKBFdS<%Se{^U00ohv-X-Kq{2biPFTT z8@hqQptv$I%H+&J#s|htu4mbp!_hzQnx|d+K*GB-s#Ut4d-QXYRA*N4ocu6a?>2IM zLmB(r2`_mtL#$&kLA;@z{B+!r6Og0Q72pR4S>5!6dt(u?hon%|AT@ zZ6WkHnXzyhpSW(b7ZL@;Y}g1)2SV=is!|KZ{N^KEv^Rpq6M?j&te-J(Y+|u7lp3T$ z`Bz+#NN<_G44C9kO?DECW`z{}AiC6dPhpR@UfyMF0#{lZr(xpyIHT&Jo!bTv?{cu7 z5f=P_7-%aJxo!RHY~L|_!yvw?f+mb#wns|MC1+lpncSC=%JPpDYT{){049RY^}zWO zf5NE)4{nSH87~l0-C%6{F`60rNMxQlCcN=>Oidk+%t*cpL~aNV4fO$K9kSwe*YvJfStUKY@9lt#PzYXl!_pQ>1v5HFE zc+QoWVYw#=r`Q6-q~(Z(6sHv-g|wF|d}n}i#ZInXIf0m0Fhna}6#zpYNi8ZACP9G9 z*I&`CPA1;vKDn9(piRZ%(o;N3!C6(+nxvd_eIRH3wlP7jX8nlL3^T`IlAVYaHw(Y8 z6t}yXKF}2Q%m(e!9Hf@GxOs4I>jSw>iJ(+AY|cJd-+Oz;_ofq_9e3jmZ)v(`EK2&h zU*_nO8u((+9ofUxh4ldF;xSalvA(A`Har}=i=9TU=_AAQ~msU5fY-)rgy&S%OZT|Pq@IP&6BX{oDpy26B zVGU8_bp&Q<5z%z{v=7cOX2^DCv)vdL1S$(tq$Go{rA-Qff@>mlF8Av}>KiA+)Xb75 zl2#yb8B8%jBD577Jyqz|jyq*aV+N(YAW8_??S%?$zBYnUp&iH$j^o6NY+D}`lai8B z{@e(a0#K5w@)862DUBNE+hbXwHVsXwvF1Wk>I*9;P*w9z3@xqZO0`WUFwP-~Q~E&8 zy2D_*y$R0N0a`?W-r|J%E~-!`*U~wm_xqKO(k0X-F5G_AO$rKE4_cA6xNY;YtH#IN zEu><92EV8%LpW=E5d_}PqMw|sAST*7Sx=2Q+Yq~9pe$brcPp9Jj%U`gnI;%yOe&Sfr$ttjeiIkC&ABbcEloY@iVsy28Y4fJ5XyI#5cJ{AIwZbs}X+-^$s zNjL9>OTL$)u_^AK1xi6p;GX;8sb@R1WJ>Q6aV@GO*05yV zN?0Cs*Mmrci<^1nJgQq^b;R=iIBPnnnwo7@Sk9QJ=}ofF%MaVoqL~6Imaq`1i$wFY%d#FHs7q%qLs( z)(zy!UEBZQ&2Azl@xx-EM3i(zk+W9QfqDJq=ZFBIcH~ORlG>e23>_^7x*=fIg)%#LZ-66iPzWLJ2BLuUh<(D4O+KY6v`xfI+56Y~?g<>K=u8)R6FOH1do~Rz-wct$ zBPxLfma1+-;Agf&F`;0#j;IzDD#4CoAv-In2ul^K@jx2q%lEH`FR!m(yWw?=!L8;s zIFaQOfx#H(A-H5tEwqmhAF2K&2kwe(nZPA%@yh@Zop}S5^)Pnvcv_~VQuQiDXUL+ zdPqN0mOq5CjojdxGdx}Mxg2A%1Oy>dP^+a+Zw=w1-b9rk?mdg117_1j04o7m>lY-p z^s4oqs_l4D2h=UZV#>5BN3k362{>6WftHfk5P4Lnk6k_4eR+0Iy)0Bw5K_F7^Y%hh z(Xb*w3y%$215_F$hu}Q->{Y_g!vNz*(lY6}Z{H|kATbUF?W~-rV5+v)Cn;&b83Cd~ z^3?PHiuFi#Z?P2bbQ+Ll+B#n#8;xW>nK z2z}c$yA~eDGt&8nbA5q;72rXKcio_0sv;)-m=dDK+!TbM(*J#sDu5=qj#>?|BUDHm zv!c>uxe1NpUT(By_o-0QjypWO9=|`o{_Al3cH{=~F(To^GMzV?8?TkXWZLg{A9l^t z7}>A{wL_ezzea5KaTsHqt|QymNEI%!eT_%1;&l;|%uLnAkD2BArp$Qqb?9EceEc{jrtoj9@hT7XCa zACeT75lj5|ss=SHfn_U;R2z&jVMSP)d9(bE(yFsZkjeOP9OAX3o)V0K8@-5|9gV>U z)++DWU^b4Mr)ngMuGIMAAky1TRe8g@E>BXKCIQhTXOpJWJg{zl+UE0<5Fqyxoh&h* z!Z!~lZZb$%1ltQ0sl@>0ZR6n+w(nLpU0jHUsMlTni(pRsUy^s5go4~6%Zgjvqf31^ z4Y{NCJ+VH;ggkD~(n)okNFhB1Qk_3Een%ybW*^8y$`?RdEis(06Ylk|pEBJe)|)D%1uLc4!>-2X{|J1I5$WW}&>4AAuMUyfhDy!^B4Uj`=rb5(A&UBJ?M@k4m) z%AOUpJgR$KRP+x`CDyLeYQenE zN2%7KnYEuiLVg>UZ^;kqVT*ZTt!aL+}iaxJqypTs|xXIcv+w zMGXv4n&fCIY5&HqCmq+FLaQrT5&oPy6k-mu?j(ScXVKKWO_vJXQ!@Ts55Y}$lA zEkAY*u309YCE{{(T&jXilto=(`EW%EY-^(b9&q<8^!teb&>K`}-}eF` zcO-%$#oKw^jX)q*8Rwjwa!PzIq`FceEWw+ws3ubO_Ur1?Hc?4S*mcQ|yILSl=+Jkh z`8Lc}8qPPZI$x(9G2(0I4u}4w4PywjYnxp|IimOPte<}WI(xdSAC8?4S^p&!9@qiE zyfXOo;3%f{H;1AdnOnyC;dmtFz;7?dFUQ!Co{AHFPN9cDVO?~V{5O&#So`7eGuMN_ zYukTZ`C+Qi5YPJfRlOSWx}9YiiF2D>IBvSv6^MI3yncE9-{AL;HdMZoF=Ro>7C=>fmA9T2dKN1WP4z&6uvzNds-MWjutez6iGxmQOkH=HX_st@)zq zUi(OlXJaD+Sxi>ykBGWRG|Wld9aMsq(6y!642}MrXg+AFV6d4uK@6SBT=JeU%h58TI+{+I=Op1#)+E%xhL-BkAIaD|5S;40(Ra z&N&7R`}WahIHbHk&q!+-B0^H^Uk=}>%S_)W<4jjmn=i$?mw@&$CwTt)`p>`;5{v7o zDEXC&re*QM15_w_ZitwLJFs+FInG5a;P!l?6_FtIzRG&N+wjm*7&QLBEmZu|d4&ld z_Cl1ROiz0|;l4m_mX|Ej0kJF(LFz_M&5Gz!5N*;Y{TOX@-OJ1I<@Gp59xpxXQ>U8R$NXV*S`*#8MSN#e%Ob3Ts!@OtRJ#;UD-WnX>&=z3BJdnSvF z9jz+ATPu43RPeKzbm=oF?W1b}i!6!_m2hINiZz3$57*lrHz%dE?Zl()gKkBm-tiYoUjewRai7l%R;E9+IzL_P(s>@UtnB z24jX{m4fL~Gt;P0myC`dx_SIoL{Yk|U^X#L#akP~xNAUm-f3+&Vs<%Q2{3R{PW>q) z=*7_dM``oC5AXwL-L;#=yT9b2P&co|pLyQGC6lVmAF#-ZQ!f~tc!xU65-^pNgGi{i zjo4x{9%hFlb{MhrNq{MI3@gDNnFo=cUVQD~bquiDu-i4e5cVEO3z)E{!~vsSy{!$g+j-ePvcFEPZf=ArS%fB_+(+wN!k7*63Mv82cN(tSVnhjSDQf5O1V?%V4>TfhJK z_?e{kmbYb0K@X^brJBlPf$+~=0@J&AOqewkXN(phQv`*RI0#_@h;X0=fdtzIVg(J# zRPjYILEHl)(lQ3?N5Z9m;;dCV)ro`z$<#bTEbqO5Se!-*;0G3B5QnXCy7o+~2_le# zi7!-rV4|ay?{8Y<&VX~NcE!Rti2bOYP=69$ghHkW25{Y)N$;97LvL-7%Whp%S%aTq_|w{5*GAQ7M#tmpSNLZW+Q;1|SAZgQks4CpwHI|5&<=NR8q0AO zIn^hghBV3lRiaNQDemagvc)9*oY4_3sdyt50k>$g@K1WrRD2`JD0&X98owI|A|HuR zcn$h9o=aW#Qgp;y24s9*Uoeg*=USl#DgA~ZE_dSMN^OnQJBG#pbA=jq#bL)9-7ho- zi@VTfE`*{QV2VYIxJ2DcWuE4@MYF6m_B5D(O<@@aCQXt=3sgJQ`qKv1Z+GBVkCR0P zv?m*rUjhO8OUFHFI)M8v3Vc&{M-ZdEpK|3_d?;ic3s`XPJDaFvW=YA*hWD^Q0ZA`!Uxa!z}j2BvgphWlWw0 zwFFjfknam^{++|1>0C5^!$8lBJhKkR=R^PfIJ|N}1iTV0hH*-e>l~|Vj-e09B7l$9 z+PlFtP68}^w$uCV!{eu?&rR4Z6~1z7sX1u)==#^=w?p^Lz7xOZl%T76?Y@6|{XfCC zyXMj5SaZHVYdsjeH+P7bQI*0zVUnaJ9}MN<72fX!ug+_+dD=0A8Tp`-nXAv_n~4oH zgKGvjW<4IvR26#m#5E42h!`v7#aJ`}T4f>g>i7WvAh)B=d$x~Uw!O$mDbn9eI_;7kP(Ykh(ry087%q3M}O$GT>g?cAMl(uZIgkl+d$+*3*M-gzE={W9|IGTb7^91$yb1#1lT@v z{IRa6lyB%&xLWCqOe=@J19$BDXST7Y#<5-8d(u=49)spLD!6aIW$k&WWTx+5Z<%v7 z8j=2ms9-~PIDUU22Z@(19?3zKZJ`(nq_)AHDx^_7tph7UF+3w8CA$8_d9aBPrd)F)b zwxGU{V=6`>o�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 + + + + + + + + + + + + + + diff --git a/src/qt/pivx/res/img/bg-welcome-container.jpg b/src/qt/pivx/res/img/bg-welcome-container.jpg new file mode 100644 index 0000000000000000000000000000000000000000..74cc45f65e86f33a460a46bfe577d99c63f35e7b GIT binary patch literal 63089 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 z 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 literal 0 HcmV?d00001 diff --git a/src/qt/pivx/res/img/bg-welcome-container.png b/src/qt/pivx/res/img/bg-welcome-container.png new file mode 100644 index 0000000000000000000000000000000000000000..465dab021ca6185c12d207de10ec571fc3cde70c GIT binary patch literal 202707 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 literal 0 HcmV?d00001 diff --git a/src/qt/pivx/res/img/bg-welcome-container.svg b/src/qt/pivx/res/img/bg-welcome-container.svg new file mode 100644 index 0000000..e1df088 --- /dev/null +++ b/src/qt/pivx/res/img/bg-welcome-container.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + diff --git a/src/qt/pivx/res/img/bg-welcome-container@2x.png b/src/qt/pivx/res/img/bg-welcome-container@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..66d91506fb03e42b98b14ca9e16040d1b4054d03 GIT binary patch literal 763729 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�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�T@eH$8eb^QfMc;yCKl`k7|qtV zv%gp0mFkp|>Ed)!WuRniPTZ(#Fs39MECs^sMbm=UX0a z^l1usA0!@}7S7?B2^yigocBschF;o+4K8pZ*UfVTkV~mCOZ&%9i4(bfb{#_NPAB6< zipiq!-Hjh{VdI_&{%@!bLq*kGF?-)t%j1EEv5Fezr`+EI+_|!N6PBpe!j;KSD>p`Y z=yLatdqzFSUzDv2hk<`wZlwV~3ICNVzx2io{^`^VqD*D^6^g9GRE`&zsn zbsb;Yq6YA_-cw?wI+Q_RdSO<5hkmCe^R~n=^F>N>`4SmI`aha>ng}cJjSHFEMVw-1 zK4)16a^eMEtr??)A@`=6UDAi+!Czc3qo&`K7bDVTv2;&Nx*$RgfZr}*&V{eFj}0r! zS^d0FQ$jY9zpay+W{LN9mdjDr9QZcnuN8{oWnbxLX+hx{s$*8qWfhze!=|_{*-wyH z6Ze}DuU19J1J`@cA(cQmM1J1sTG5;^9Aix+=ZNL&m>1o)J4x4mVrdlbNd?m2NS$m- z?C6ki!iT_-(h$>UxC5jKd|vclE#?`t3h?D4=4*qYs4R zoW5L}2+ATK&1DA07dgj*m1!_>8X644{`Z)RousoOSW!r<3%foGwc^op8^^|Uz_!H{_%35Je4v?q1L?6tY{7|35<~N z+eCJ3Kjb~hW$StCI4oV!o0!>n)=1fXDn#~*)6O%)(IOB9){;tL z9ahoQOdu{i%jEkyc!~}?26pS0>#?U6-FZKEsf%;i2}DEOD;g*)e<@b^9dq&?IN4uy zprG@IeX;{@vC%71Ehf<*T%qtweAHqIQ>Q=fnkz5ds2I-mJI_t4%|e4{#Z_i}RG!cZ1qVfP&g~K>0X){)cdI`-)U(I7 zb7VL#Rn$`v@7=1u5YI>4%wFc|k%-Y_-oXki%D_5^;>83;SzjtLT|%|HAq70<*>`ww zz;5hT>Q0LS=jg)wT?Cr^g@B*RB!`8s^9XS}k;~JM10QKhdoIkv{~a+1ma zScn>`xVIZX4mnLRiLK66&P&v|UHR`isbL{4yHeRxOFyFOx~p52$I=ewoXhOK@dKf$ zm6miC@MPP`i{>Cbro`AaKkcjbt6c7Zsi&u)tse&Yy%LdHc#GAnJM1DWm!hFrO1+!8 z0siyJeqkBpMo^CMmNYrsqumH9k-x2rf)HpvdYAk5KLX^=!~rhm%6LScJa8?pVYO#n z!x>f1M#u?&VypDDvEwM*zo-ay^fI!g#mS! z7KmpBp!w?*#SJw zOZTp9jiQDUx1KoA0bAKPBTIl9>&@ni^uK&|{bh-k7D#v)4;HGlr{eHqxzQqL`Z4Zbj2 zZ@?t?HD`xFJ?4p*YcANZdC}_3Ul=9G5+$fJo-q%3!!n|c%@VS?Iu^R-Q z?>t^R@S?lSx%=@YWk%3)pRocgD@^c3iQ30%d00(Q6coZ-5c}5tn*UXqrnE=gNudId z@^W}CdP?i*Gb>KkNcn{KpW+T~`E<}{|5%Pz8!Jwzcw^+$uu&qrF3gF?7OcLm%+HG@ z4oiG}sODB>H_oADC-$1FE$zAN__T!&>BA=$X6=BURK~FggnQkoVFhp0|6nJeiIE z=5IQ6##G6kc1>ekv%zNTvPONp*T-eOD*rLP{NhK^?%#HVCtQT(nxm#{Zl_A%mT$)r zES@0~^a zYyPFr3y>sotP%<(Ji;GZkLHst)gC2o%W&j#P<+40dCb{SrH+Y^8N#hEP<#jBRI-=K zWWDP}!4vXUkVodEuNL{SSbsHY)QT+ZcJQ1U1ibG%d!3>cza!53J`rcOr|-*8)mcAk zREdItapd<}Dc?iN5Z8Wjbf9dAD3m6KvRNKT?O4vbKR+MatG32{%I^p3c0iHKybz^$ zGR;{LD2Oe(=P%2g_X`{b`~IP%k*)bxeN!0^JTKViG7KAajyVa z&oj~iLv8=%v`nN(^kWOyL-%UmP$o_fZS=xw-)-3rkr3G3^KO?AV$d04_~)G(M z2|_+qs*8+RMMnC(V#>W}jZ9^y;PQx_z25tkV$p0X3+gg?GNB^C*l_pgaNIgO>e&?} zMC#)nL33$ zQ14;WVycqs~#SObNvdg3CkHtPDFEy-4ka3Y|he?dS2H8Kx zC^{$6xaST$Ht61BYXg+;X1?VsM<10dR(CgDENOB*{2$naEJ-f5SXjA=dYn3j)te0( zsA2)JP}3!HIRBtp6{8@vFrgIuz4Lk|sN73b;$_A{HYI6bZ;NC9$;o=$vV_yJ7>^W? zO;ng?A54JIXL+umI=YDBhG@rY2v#Xb3Q>K> z@dmf{-0y`ki%)Zj5RH0WBF-!Np!QzH5h;H83v5|@;n(6evlJP@yDSNSqWGjTt*q}6y<0ar>)nH|D@~#f+^l@4=@)8*5{Kbti~1y6#kOZJ$nJ-Gzt6G@N)t&L%+C#4x5hk@Py^6p0oI3teTOMPO6$^CA81zL8spze_X@Y4LH^e z8;;d0q)_#qG?GU8b({^y+F_Bs&dz&|ppTyO{i)37E7+Oe={1E7E!Cv(Zyh(i?Bly1 z|E9!RobH;;7QCXCGA)4H+@8^KSl(ZRV-I1j~~$(Vias~HKq;Q56!3)b(L{<`alek9bE*)n2I2l z#p7(dSC9p7ln=uu>2%>8hnhk-BGL_{~%mqDG9SznbK1I9*)vB1EjtX1!DG zigNT6mS{+fdSmqn6livB6rUsy#cQxg`c}HvM~9*6aO+g+-9^l9ET|a_OqP9DY09A9 zq)&M0cYJu*xp%1A^IjeR^0Sq}<;tLz6symOcp!e$A2P(T$c)>{j)}V98qLo>a##54 z-fXh$deC=ewmzsgpUQ-CesSp*j?j{Zd_nVTN?XND?-{piyl)wUv@1xsFJ;Zo3I@1~ zqp4DjCgMlN%Xv)<**VYJ_(UrkN3UBwX6@FREhxGR@{ZRTJb+`>Ewq>mU29JSj~bf~ z770CeRtK?<1(yj(h#K7e90nLxfIW+LH25X-b{7rQ^+lU1mK2qcUR0yry*}Mw$C_cL zBZFLoQY9Jk8`HKqn6~9Mz;E9djaK%Md(BQl>qEDqOjN07SD&;`WLm8WOaPR4;@XAp zcB}rVGbn(Jlsw@72Kz6u0NP+29Eb$BO_F zsa<0YTMM6B)R29gO(ClhbSoEsbe7&B$$P6$$8~9e)EVguK{k*WW(~|nFT|;$=bE3l zD%+_7u5L3-KI$l9j`4(;^eS%&@qVrF#v*Y|;zDMl9#ZX2|7@)uXg?Vm&oR{5YG!?% zA*X$tps4C~duj^uXNxmpe;(U|2wjd0?jroauK_Gp6Ph`_nq^IDZxiEgZ9u^0QFV;V zc@y3n03jdEezWNVCtp+bfm;Q#dY(~diVJIy8_(IJq+l7{dG695&2SHg7BI3MC2^vg zr&O;Xz*Jq+J4+1r$E@%e3I`DXxFnBU+*MaowJUaZjC@J7d2k3+N#C=fR-TqffGkm4 ztanTP)YERuXc%r^R$M!T`3SZGf|^om|nV z16%rS8(aEKapZGF<0G5<=F1iNO=bXQ%z+Z1B#%sG;ADS7xqm6oMAIeNg%CRo6z=Tn zL;YzJLA84zcUD^SOCGss8Ybs}5Ghas!C-s#l^VVt5 zraE!dpRA`N;-%5^qI@hS!&LH1GL^r$Mn1O8`1~KKg=# zmFDULW3Qi=#P0?=k)nHFK>4KMMTx)#FmcF`_){?B{2#GdN(^;no5DxZmMMP|NnFzE z3JYssCJ1>az8rhZs9{B8DXQ}$%z!C{72(}XbWZQ%$-;5!5qA+#JG`bb$l)oYm4_1F zYU5w)FNdlk$I5CVjMOB)cx;G(#z0@R-rwZ?blPtLLVCfdh~ZMpihENdI9|XX(rAAm zmGl?VBiB~7?RNq(iOys&e=b1rRDepG|qBqMLKNi9g zU3`a-53uVdduG`7oK-gJm)&+J)K52{&O7AdJL(pVsyagz0DUv_xNClnADcJ%slNUD zzArbNLxfX4{(M-R?W%MAr&+Hbq^^Ylz6=HRnZ^DFq%0#wm)~K3*Pyq=ajkLT+NHNo ztq18p`oNy&$M*khc{X%!_Lj%$u6xd~0#E_B?%n8YGmTK65J5S(FLnY*equo6*DYhF ze$Q4jR4&(h7-VwSBD$<2T#ipcKnQM7_U;YjHx(jWsqU1}ZRrCsq+LGS{Oj~Q=JUY- zz99V_)%*?QJev|r^?+oO$CgZfWC?-RHud*=PY!+eKBl85906hc@X)y-a3Yy8nN$LQ z@0Ja`<#r)$^1zrv0LGN(hi!hdK;W~<17G3)iQ&jN!rvPjvGwYRFq*ySDZ4B%r7>Eu zd%u&q2tF8@5g0N0_Ii!R;gYQU-_av%YuQA=%&=~j+jUA^}afw8MM8pz`SwJ6d zuaAv9m>ivdj^H`~nBwK_fGO^AeBo77Q^gIJ>84Wc89ZpR!lpf$&r`>PjJ|(#gWeDL zI|0X2(#-wA(em`K5dWGLi#HAS>aAav>0>mcw1wULX9zk2d2&7WefOusc7{PCrkR)?eI{o`wd!=WkyBHozXmRudVCt3ED?qihN^Ah<8t% zDHhM$Xu8kSGykP7=)s}c@ky&AZkENDVYV(O$bG%K^=^>QF0pa9iX|S#qh&fh6$MXl zmJDNURLSjjwXsy z>oMN?3rnWh{c6B=^<>lv*+CS0$*)68O;qlSAMeVDvRXhfTgg(@)zIw$PljCYU?PGG znrdM(g>`oEAOA!(SF*Z*y>_$FC#xC*@ZyC+Y_*%AbMrX53z;{CR^A)&QD(e4dIC{M zz2qBKX!XK*BgK5o9UShX+f!DxD|ovHAbf9qIQ1oLgO6$)=cx-o7> z(O-<0ZaWP4LPDiIm&!rMCeTZ!TcNXFH>DcM zMj>8S#&n@3_RNE}ih;#jcZU_>YTIv5NFV+>}-%@Fs3FG)4 zm+N<4=lMCu`}J%cH$4l&8s47!daNYoqEhyBb<8?y;O$@e?vW9J_6YBQ%hjfgOH=p+ zQf~$eN4!lCinpp#QK~SV_ z+$kY;`1YN=D$S5+?rCeTq7;MiGcr_X$r9e=(&OU2r7x2#)T0GmMT+5h(Jh=dT zJ|ogfFaXP%*KHMyQ4;3;0#!y;0b_j5FoH%j=SE7zP59!E6U7#CqL@NX zl&gKDq0(hdIb*L>g}0wnQSwIs8Fg}3Cz_F-*f&O@YZu_{*Ze_dO`I26QlwShT+}=h23o$A69DhfMFXj&U{r0(qZV#mb}Ek!wOi+(Wxplsq5+#WRPlNH zyND8O#hKHp!Lv0CRU$=U#{p|0V*b5$ddM95tb|7PPYi_2(oG&Yo?5i|!@M^@W+C6Q8)2XQCkw5&w!e?{RVuu{w1Ui< z5*gn#`ZannA>F z1lXNoQ5_%}T!5_);%Vi`R|3M*eUdj+hAP08Y7{4Df6`0Cd=u5Tsat~?#1It=ifn|w{M6STH%p}$wJik$TC?R)J znx#5TYWai8qTb9nLehs>A{K-XzizP4I3m9EvN>&vzZlhVZ8ZM(z_>Px&sO26sgM*b z6?w1D@6iNZL#i;?UGJICR>jfZ7{YV}i|qXdz2ACgS}v$Knb(y;kPx%yt_;yqs>?hI zu%+&7;&s-1dC+4!r+c}Lg8k!4&i4Y2@m$wwJX;p|sF&T$**c+nfnunc%KF(1`>C{f zMB+s$RbImhhts$5MeA5XW4iMA9htdUbn0*wqL`XrF0X61mdXf|<(#itLy`{&I(YIE zyf%mVSu!innjjNk4sx9pcAN~e(!c)#UU6Hg>2xe)uu`2k4otF4p=>8V_SWex(y2?s-LS90>Dnj+D zbP@ri6GbV`=Jfi)y$de=FOnU|pVmNc`#MW&rs2C%X7=3WXa&Mc<1kT-JJU5WH|Vwl z0zNgCTp(z&gCJQ74DG|qlRR3z;d_!s{XH}M=|@6B%`y4Pt8$4~vHtuUaG&f~7~A$+A_xL%7GODnJ?x zTuL@4b1^Mi3toc~^L?EknXg4Mgx8$JM)&7^MYig4)2k+d^HbstsMYi<2;+mIQMOZM zPbr`mHu$B}%>FuE^YYvt;5i}VH5+I}erQI*lg>D<_-w>#s?!hhoE)XZN{}8JOu6jP zX$VQ$kz(5>wYhO<3EXYoE#3%t$4;wm^Hs{#lMYb^yyFEbaEQM$(V4^aM@tx7Tk|nr z*=`FkM!kSNV6Tyt-h!InOa3#t}dqxV*J9YvG(b2&uYDYEx?!-3Yie32DzNsGdYw`AS_ z`UQnZ*{ZxVcphh>G$`jO^0x|LNA44Q0P2@8HwRSlhl#S#Dz;9W2%H{W)4p zvH3E)7A4lOul~s8q2`yYRRQJ6r!V+MbOqL4DL+s|lg}J<0Q%r99fh0N^KfUc>9_=Z zEt9W&DA#p2zs-7Gq(+LSAqo>MpI0hJ3W?C!__*f#8Wz#|9ya%2~bctr>q$>|mbmz@8ah z49vg}MqWQtEjc0Fpw&qJ(mO)%I3lq3{}$N5G;?}`MR>DX5xAzk)dMl;{iUqU@ne{i z@6-TWyzO;)Fr*WL>*V6l($;KFrvK*dE{1e>$n!Yh<-uAml5N|+R!xEvW1#m?m3I2t z&<(pb#607)*n_OZFT6+*i*xwns~hfeI92O(l91g$)u=02z|aTdyrmfuEezS|;Iwm{ z<&SRG3?G;B2+y>eH9qaKtQiPm%zkT+I#w!I#{20NR06AszAUhs7{H(I12=h|Vzu(B z5+(WT?bJp$o*h^JxU8#l^pkaxgK>g*?V8DNGVbR+~Gm%htiTg zD&zOKIcrcI(!g~T3TGQ=Vmw*|8|<7Q@9@s6;EB#lW2@ett&wkdnc(Q7K@}6+l{a&C z#hpuzgfW@iV-J>`CitUC=h}?ml^#vh*X-s4;#Ua5$)##XNWy9d!m=8i)V!WcOcZP$KD08@03R0qX(o~A?;zW3Gy`vIkxrSie*r|3A5|;sPjFGW4uYb*Lkm~Ir&RSo%R|j8YdS?CeJHdN)*bi+tIRZ;OKjT=V5>#_bj$ZMx z+@D-C0+et1@3uWe;U!QPTMV3n02}(51Bm%v@lWZ`L0XfY`C}*bdLzQ-SK++hjPUvX zc^POyITmxV+ApLYe6n(buW5z{!koEX(?h#FY92KI<@5JR)$+T!Gt=-hS7uM2`z0@x z4sQ*30~HmzQ}Bww~@F;}&-w5_PZu%|1!_w+P$G zQ?>n*ZM-L#1@yL4@76!s^&lF8cv^GxmyWQH)rK7^FyaA#{!&4yF#l}T@Yd^B7jMfN zS|3T;p#aI9MR{HQmT?suA-{LwvQK@WsL%j@^RPcChe(u1%G4#BFj`H)Z3h$~=hofR zQOw-_R*#wz=?Hfg?9x#unpbHx5b>DEb3IjMUcdT?FOYmouHu#!-8ke;iuU0b(rM53 zYy`INFK0YL#SV92p9WfAw;uiYG#0-5kL`QkU0fg6KnK{q)!|Z0Ym#jA3ixYu?Q|Vf zycmgMIDp1dH|Q}j{HIf*$<45&vHJ!AZpbT$!Mp&8o<5$%rkj#kxN|oj=15r||Ca>- zV|vLPvmoUVJ$k>1EK20wmnD~m%Br5R+U_;qn1?^__e86Rbzoe}Nwe+sSeZdvFYn#2 z@q;;kWEAPofvq6a(?J6tbZu5+o_F#dt#QtlBv49-GJq~VDUk15Wd82)FkP0Uxki}?lU)kns_9ILZGB%+VMJ}pHq3MW^Br1^ ziyz7N)2G{cLpB%#GYxn9s@ZZ*qZ0f8pskcX`k`j`7gIOw0o+*bU7NlFu>h=OEqqPrF|JSRlLA^|vkE!Q5XLUH*7g6kMp_S-Rs`5$G{M$g+H} z?K5Ak0B*`AV`lcwsL#}WhglZw#h1Qm3ZsBN7Zqe)*Qpn$7or(eJ)Bhl-0m7s4sE(n zLDV7!`qsbmPhcagHHZ@XT}y5K|B{j7t?=Ja7R!-#Nga#*H`c3wPBl^9FhSFd-NXI~ ze>5GMo9&BlFiiqBWKu%4?hkxz?ell8M1Xx$H`H$})^%coJcGv%CZsZLW_nMaoF zF&Se90aghcSCS1i`lpe))=5TR?TJ77l|FiO%UooCt)+4e$QCpkN#| zu@OHoZs{Z@Ukq8P!ci7w(L;-UH8{#$G^|ePUf~oazM80%k~^$E_LF%6 z*IvsQLNnXO3bgeI$j+{)=Shsv4mS0z(9~6m_{+Z;4=1$dO{{5^5xxc@y(?uXzm}Yt z{iZQ4$XA@raHMKPU zCnmWnVF{n|IqFBy*rnZ-m8Y@uMza7kev!2lRv5uMDda9Sy!G#7W)sx%ukt*MmRbNTf zCBHyl8A|F4Q2ugZ2@iJ>n4Ztztbf2U4SvxczE4=k1*?e67ZwkRL6?j?_ROR z*4bF6i7Ih6R0(a8Xo`#X?gmr5KW-Dtu5aB&v4ri+RIImhSV;s;XABgg7=l8S_pX)X zEw@PT@mB=r3g63|P{~%Fz#0PBI5fYn%=V|w%Yl*zX#0NhI9oh!z47KBIS5u1Ujkjc zBBW$Zk}59!Sn;0BpIfflxL0Us%iHgw$eDqmIz!xGqW_+Qk`C8Gj}a-bBn2!S#gX9- zt@^9>8unQdAfjP}W6xoKd!y(&;_)S;Nl;)fv@98ore(4mR3@d#zy~|dRegQAErF*i z-SqETG7xExs^>qi4#HP!WSN0`POQ_nVvU@V9wlq+Y+VKcy{9iDaH>Xp* zyR}^8@b?2JX!Wp{rEpnoQ*>tOPwibL_lRf5lL1s;Rq6vU!N⩔-m0Ri(oY|PKhqp zagZJCRZ?4ytafA=X+#&MC+B0k3|=>>j%&I2j!Tc2q%9EfAHv zl8Ch`kXXJz(tW!9w(a^WF{v~PU57G`S)^EZG4u~9awT&zh-Qh;EZ7`7%({@YcCWYIM4(Ip*7 zMA16F`-%-;OOy|Ad6q11uH>;S%QIN}VFvUusUf!nJ|=-Scr2Ncv63{_a*Efl5;=(u zZl``nz#;CN&e}r9Wux++nifOU^)dV8Yxu$~YP0QOL#o&(mZQIZ7e(v#t=s%`knn81 z;ZEkgC|mJ~XDg3*DRfiYha|`Bu{_z)P@j8CcS>pJ(BH0TKH_eDn1Ie2rtdvh7# z8Fe36L>6km`3BtO9ob{7wv}(l6qN~i44BNlt^L(TYcqnweZ{^mm@p(hs#HT#HB zTn%adigRpl9M^P?g4!W+dtQ~#Rph&ra7uu0{I^YC$^h)2)m^7RG}o^K}{L zJ+`;&=v>-VfF((<<;B#NyQ3KULIT4XLG+6V_P$f^Xvx!KTxMisc5X<9^ubgrZ|H6Y zy{ax2mnpK7S7w!>d`iPppjr6L)z4z4H1&~)J0`Z1U7DE<&NwCaWV{xDVbCz>OYSs( z?K*aVojOIVMhp2}*65a1DPn>|qfiw~ z%h;>O$`2^}^Pk|p78yQPKkFth=F%hE_TBj+)98oy;@RU#+ykU*vqrSK!c>RIpPb_5 zTa*4b(vbKh_g`q9^}*@oMqL@hTU*PTAE?VEC6@G=QD9vq#fBE7;+X^UY-IG{Hd6~5{^I9>OfC4~d zm}zSbY6j!d5;jI9+J43mzO$bjtnQ87r!Auro_h$GVB6LsHQHHI?Dl$z9wtCu#XSo} z19WFujLOjQ#nh^?Z_J;UFWHJS>O8TQD~1ym`%Z!)?|j{1jVnSeVpMDqwxT(a=dyl~ z;PGS$l9_OXdqJOt9GW$sdusvYj<&Bml(pf`}vIsaMK`3`j!VE>~xmsFx-m-5XQML4Z=8S$WYmu zrI`|U%XJw#W3u`=wsu=&Vj(&Ti6va;Qv26BNhQjymEb(>MXC4_AOIn*v}l3UycU$2 zKj&eT*98YlcJiV_neo4IoJSa1X25N=$t?RWRjGN7WWzgdJX?1qJKro@6YPC=Z!wGP zDywYre_2kp+23JjOXToavaUJ~;e8Rwqft}uRGjvfI$?KP=XhWvva<69?% z8(4878@3*uyHVcDzNS?x?XLl?*hCiT{z&2jUG9B_xf|XK+Ru}tZ`MUc&^HKcy-|sG zYxm>no@7;dztQ1f%T3n-@kA1*_s!%}ENtW_HRZd*wky&;%O7Jgc`TFDxj|o5xA&)< zGPq&gX?wVsEQ-rN99?7$vjb=3XIXYuk4$#kr}~7)u+1137L(6Vl2AvVEkcjJ-La=g zTUBHyTL15sdFRf$k!<9*%)N-$=*}^ny?9(NOe)nth9`^^rpLoTh0P>~?ItbtND{VTAE7-J{_IE4$ z352~8k7yQ-k+HR0&hjWA&BShvYg7ejx27$rtJo{AR%vrZH+;{_kM?yn8a3+F^xqK3 z^PqR6h971S#}?+@tv&A$LpjLXhMGp!q5c!PjOm0zXd#;VDlWFMioD7U%qMzW0?K$b z!LS4l^MShrDfG)hckn~Nnjw$LLm$L8m_9(%gCUooKd-k6Y!&2BOYg{9O%!NOS z7sH|HLpC`@h*7X|OBPH$+YsL$`lQrqeo$$GxBF$v@Hw<&{|C)&Bwu-=@Aq zlVvx-kOC#5lLMYS6to-@TPwqHEKnvHg1#RWtGyrhAy*U>CE2RBe&jJq?C-U2d9p8e zucUOU!LDsRTy-c%2}D#$`JW8kC~RGtN4;;V-q950Tl@xzCMnSSiF)a9 z>AvUKb*0LIzua3LAKH|Dqp7yyJF(@$9mLc7STnkdH^w{=b=kKa`;_3HKtJ1^z0yhm z-sxv0D}zwsi;e{UdfY63=m^D!o%(l2TW z9wxK8eNzU48&&iOk(i)X8s?iCCAZg83Z~u|%uIJj@1ZPKWq`VSGWBuO*0kMl;~fWP zAJ$WLltJoAOjM%eH*m>>9{K12se5UtE2ZB@0iiZ%$8?Weslig*rZ&62f2miN5;Rox z3iT>j%+K=?AVs)@e5AA^Uzz7MO?xLuFxWsQd?^aG+pB!z&2bN{|3_BF0@f1hjz!8B5Y9`w-|hj zSy;vK# z9t%n2U4=vwRA?E}f|705b&&I*|Coj8gxGwiW|7RM?t*V~5epGTcnL8=e-O|H#e1-j z{=IPR(KVd9Px4QUr`s)Jgl6}86>Wh5qqY{tn%Bx@Dfo47y$tWl3-dXu2`MJ8JjhYN zrqQv=6}MKx)%b+KTcqZlcgTQR`^uxED6hPjkSfl}RvW-S$wrLE)nK#n(sW*O6DrPa z=?Sj_wpV4xrCdQvV<&b^e)lTr%J-3pyW=xLtBEyNPivn*r@u^thGW!fPy%K+10pS| zERn8>X|a(3g9hLH(0_XFrZ&2DMhVo}%{3o?pS5AU+3P#TW5MB+ZBH zQP<7Hns;8^;|_YE(P?^6&NA9?9YNx)8K?E>GKa%|Y;tTxBoUgM)GDfZPe3-hlOX%}w_m3%iG@GhLCv?7*Nlpdx@r7vG1e?#djEHv>t&nRCP z{ulgXOYg`AG^-mTU2jgYhICd=^~}%Tps;+rym!Re3pD8!Rj_#fy-Skxb<2wPqV7|i zQ1yQf^uhh0;HMA(PqL7=K-jWy65XpI@z`p|Nf5N8is=w%IvzRq^DAZ*9p28`zjk{w zD8RIy9vWwbY~|SweJJ6-9~t%mt7ifP+wc#+HQ;CjuYz z!jk^ApBj_My$!rv8Wi5~rh3XGy@w)}x!4Ot^HgK!egdHU;GPW8ej*mgOMyyFEvWa^VkYMJi#D>&2pT?8m-$JNf#f`9?VjK%;hNr5T`69;(Y|LnzyF%Iy}7Bo zAyly`O{-KzH2pJ~Pt+?rq6Fpe7Z-rI_62R~IM>(v_deQG(}edTC=EAd62*i>ti*{3^!3 zgVlu;W?Uc~$zIjF_(YiqLtzsuEp5s|awS@1SU7j;7OZ--LKpwl56Py-%n|J$wnLWw%Q8f^tnE z;FhgLj5D0P^$~*Ln%1_v2?vBEJk6tJ?&K-=M9r5h2Bx!rG^$W^F!I>3&y2G3KruO_ z;$~=iar&^Lu2a_R1!;ST;8v+iI$vknnql^&yy*%=x~9h1b_6_M3+_NYlq2mC?lh!9nwjJ?u$9RB8~5}6PYLW*@FSG0fMvQcGvTA_RXyB`7Z zu=$b2^F2TLZ-kiBX9qVWUz6J%<(D;S#_dOrP4DYzm;LH-Q^JRo&MA+R@Nt`AUE6dB zSKy?3{#N@u5WYXB%4Jm@cyz5I&uAW&&QpiML>wj`|FhzYRS?x;L--S!CiOfKut!i|G{4%*M>yyf&rO*M;pVJVShm6(vDJ%FsMq7_Iluu*jm*9z9c< z8kpX9uF*Yp~>m}a@cY2A1DEqDx6V{8huCE*Ym#IGLJKwo$ zZ0~GKjX4V1+9n0h(Yr@h4m=aDB{x`P^gOw~ z32V^ZE}|!!&g{{I7~_{g>E=t;?u%?b=5ur)3{ZUp3qEl=zp>|C?TlNbpRg6~q4^TD zYtv!cI&5K|B#zN3h_dQaSYD>DG#M_wrAcursx zAQ$S3cm5i3F6*|Q`&sZqlX(*y>+N(-Jgu$hn$d~x7 z6W+V%Ru>p#KpJ21rL>6pIPZv3T$$&%s(okN4x;e!l;~??W*UYaFqVrYKw7n|m&>ia zU5BrF31b|CRx+5EvhG>uzbg-jmzYmyeVM*Zq{##C z!C|SW>osEFGfB%gbSB}Z(rv$DX-ohnbiw1O4ZstEI;(#V^_gm03SicGX-i#j(J zToax7^t;;f9JYmM*So=pB8gwFHN?#kGozOJ%<-`utBK65Fy}$wCtUSiNqq(YtK}@z z?9##9Lkd;HHwtfmrE>(bCL%1aA+i39N4Qx{>)l%yBcD(4zFr{D+I!(0vF5xB|GCvq zY8#fR0VqTib)F}7S&_7jx7%J9G+x|`Z|~u$zy{2Oma0XPaZtLmKzN6BP%W48MMND(I zi2jPRP=r43-_7s>Xnmg93I}DOGal-h)q>+JGNj>*z(xY+4O5ny|Ci4s(*tPVCbWoy z%af_i^}TFR}jEgeML*Rp)(XCGLZ2*{`rT z)GWL1J3-LPuzqekrO&g;MQb-)?{cA7fw3~zt~dc5!NqvF)BOs zR5Qms^2W+x=je~3a#Fkm*5Cfujic7UgcSg}3WMI2wz~wAGk@%`-T4w1b)#qKoS;~? zkrc^B>#zIoai_zJo_^jx_LuW#nS0CG%8LD<>E0+Zz<7rBix#U*3hU2I^v36>X}9zb ziF(P{4)v^0=Dr91i``UZNycXG=Kc8H6}o?RmRq-5GJbe{`{e7ohr2Q1fzB>zh$9{n z$=nEKduR*)%MlkWjqPQ&a)T;EQJKAm49fl^vK;S977Si1b*JIK`S&HRf~*cdqwP&q z>cBJW4c!R7UazPM6Ut}KX@WDRT0i#y_XG5yx#fQ-R`J>dzq0v|=3dfwvmGIxKmIcR zp4}|)0|AFKnB2@L1$gE(8`UfMU?0FLGc~1TcoP*G?xne;Q3Z-f6oKqmSu64p zd9{>X*NBWK04E{mVlJ|&|Bg+yx9mW#MlID}ENNQ%#jgx~i03osRxg%SI$kOQm|8qf zA7ziK(CKq^)Zt`wDS-}fCvP|#y|)W4bZ?iM8keclH0xw_&Q29Ge`fS}qWOR}tL-n- zt=W8JaUae|pJm2=T2-B&Z;^h?Zi_5S*P0t5xHNY!UExpZCf5R#ZeGX$bhd7#DG$_bk7<&-Pa~v4;q+A@ynn|09=wAGOLwU8pByJKFu4YP~`Y3EsSwXof=wN5WyXY)3|9>HKcU= zL~fkqyHr^}1<&dAgU2TF^yANspzMDY`q}F4#f1mTrah_|T?wfXD>kX@4s9wpBLAcA z=unLR3xmbVzkK`*Rzo}Jmb3}rZogf+GN>=C2UZ;P97lA-XOzNrp33M~u|P=r0{_V< z;Io;_*G^KTzxZew7a52bwG9X7FpxCsm5>80kU zrxSIK9IKNhcgRmP^G`ock;bJAw5nkKO&CA5?ytBVxDbkDYR$h~3_SPm!&ZE@EPEq# z5?aYe(+itE7sm}MOdKtL=A@;(00eRSQNo{e@q+)P{oX0Q@H_Mnt=7=wug)GAiy@;N z`Pf&o{V}_RPZ$jCP-0xNa)gvX6HbMnA^5(qH|tBEBuQJcr+*K0FP0-@wi*egUz zsP{+J#bJ*0DEmCOhy71P%Y!!%sp@`DOwJ0Qtp)COn;@ydJZ5JAlRLs+r(b=7F@T=I z-?%pHy^`GVTba@^C9cc{C6@0`49~JT*-!Isd}VmtlhN}9vJ9@Px98&yB|5nAxP#!l z><9>Kc4WqhCMouxu-io?*}jyUvqeYkIu&`^5Rgq=_Re>Wohma7Z|V{h??o?uS2Slj)0f0wVy+iO^qFViy+ zms^kxQu9|%-rTeB364nRKPNiM>C@6z9``ik8YPocOAV@44R)|!`-Hkk^wfQEa;IfV z7HCS2CT}E&-TugFeS8r2I8%ljoE_xa``_fH2*0&@44Kb)R5CQbGxbm-MXuBc*iAlX zLUt1bJJjjcM~457Cgm%_hOhU%`y`4wGO6_rd-jWj`Ag#wJA%MuUsfb@we5j>DEI}! z!rSVt$`~9FhHu?yjUOYZ@PRDWS zgQoYLOE0Fmful#KF}no4i{$ll^AQpmdUj$yPaP|7(ymVb?p%rIyrfQjI}w$Bax%+% zVyORt&2X>bebPZZO-ZX`71Kki)&YRh_EG+OL^r%x5GKUzVHJ<+dWUalcMMt$$0s$? z`J0j(H)yCn?g@N>cjmf#-}Sjw9e_&tYYw!1XNs|Zf@P!Ge<;haE&V|>KOOB%u}R9H}Blh(X(^b3ZmSYPNVQ$E7<+O{gO79|K68YE`clVuOaY9+E|EU7HY%Oesw4 z-H(w#109PRQ@N*l=updPtKTH(P^l~mN671+m4yzK7bm`}$2dMlANfwAkvFy6XgqmS zJxrpbiW%qEXgK8Z^t!rK*Ws*^ZXb{o`ek$~qiLZ=Cr@kaQK_k)FKz`sm4sk5+()Ec(s>z}`V_+2fYcw_u4h6Ah zx>9dq5E^x#kp&9m?%#{Uic7>?LG%EA?Ig*Nsl1B%KD1~=3`gB3xKXH@ZSGK|J$?K< zWF{d3{m&+8`;`oJ2J%m$QnHl!v#5XRH;$oSHE_)UlpcTe$ol~M)yMnic_Qy)tdbwF zR4l3C^peg}_<}S>YTN$@^nG<9OnXinJqTO;Y_6icp{WsZu0Uq~YQ}cj0|k(+Or{VZ z_EcVl=0ff>nSoHjb(=w#Mx?zvZT?pYTztg}2z*k~?-RjC(jM+xN=9jtilgv$a@7wy z=0snahZOD&2G!1}8rN>ijYVXdwyXX+W}(!iw@c+Ksk6A)@9=HMymFl=F)Co1L{PG9 zNmYRw3Az4zU;MVx76DV&6q!x7z-XGuSl@<*no)yN8G zpw^PyZ=f7@iL>y?P-9m6aY(X6ZTV(n93KPdYBu{w0QEhUF&UbGd`BII`o4{c(=&YH z!*wvycgQbxQx&S?xoaJsc38^&;rjvECc!R9$tLZk9qtO{8(IQ8cZJ4(rEH~_K+m*z zfxI#s9ZEFeVH|iR%vWKGOARX7Ff5aXTHJu&1Xl{P=8XOQ=C{yQpk>?QqOyZNx%`)D zA|ErWbP#Ui!SoMrmh^Gm(SLwp6zmMR_h+IfmXEw)eP8>_^UcI#Bak%1W_wQk#o0!P z+}8B@w3UYlEo$>kHqc%qCg*ptV^aVK7DRG}UmVXNL4=-KF_vwi6(PvoMcoEenecpjOFkNT!xo#SySER%iViMfPPxcc~|VhI+cw z{!4xCdvh}M6wIq3E>HM9DWEHZ#z16Wndgm8>b{$dx86IgB&Z8QD}bp9IX(Syb%RG8 z;le2Ow8zYAG_gHPa=cR9OAUbW?zC3n%7H|%{XuiyM5D?{5jWUS)xyd=?mu1%i}^u) zNjP|alI}Sjn}o0R@5;nEmUz9=Xt_M{Gud5FD$AmKs$!&iz?oVt zRm;`mZY|rAyc4DSI(Z$%#$hzQ&vd_}bY18Ej>|OXlz0NQTV*`yY?4^n_UaqfptL@R z8(;XtAMm@6VdQnoT?0JsW@CbC)hP-miti0tYVH-PP-foqPe`7v{x1KHeLK2Uu*g7x zSg=q_`o;x10Ml!;Vz z)3dr#DPBi@M&S1Y6*Q&D=wcLqfV(sIk9-Z%Vj|Z<Jq zSUEg48GCgye7a0EzEvq8SzcX=3trnGf;R#>&WuAa+Ou>!#3Wzs^`A_RK*mI|H()Q< zc{-6{{nch%icUpf!e4BPGb1<-`$YDwSV}qs(NP)f^X$jco^PUn>n|Q~s2pW3iG?f& z2i>!Df9oI(QA~y;LBuTT2_2v-02 ztL>vRs-0H*c76FTe~QyziWn6653<|A1(n1NQEw)6ga|U=$9XL)9k3c;i59UW(_(iu zVNS4`oODP?aD-H|s$X(kY+#6mbr;;KS0XCK&zW!eU;Nb9WN}iU+I!OUp@%(%-pikZB?{JY78c}T;@#8%9-wJXH*chT_{!(%m`S8u`UXWhkl;<+2PJ_^4Ce*$Bn_$$jcq{O zWH5#ohe8=opIDWu{NO_3#yxzapx{z0BMwU1G^Ht3|BoB9i*Ir7E}52RTMMv@;O*a&N{i zi0TUJMdCVs{F|QC9t!zYRjK`y(1lqG8$y79``GRc&kHHfg7=p|M(yw_TI<@L0CN`kk?HQY9D4y@(c?jOU6U@ zJdN|G(7E*)^M02rF(wDa?yPLh-E7b%(h0SRSUpzGG$;@}JcOsKB1{<`yV4lDxf^g- z>g{&d3ZF5J0N9GD_xMecB)i(SbibxjVQTYBsy-9~jwI9IB{L1z$*)C#6$;{}4cyN> zQg|vK{S2^N|LgHhQG#rcmSiSfZnr;f^AIudqD)x|YuGp~Akhls0>*3{UcvY2IU%facE;GvNQ$iFv@j~tgiKWq;gxq-YPdcc;y?Q4BjKI7=Zr)|ah9DZ=i zW_ASZx22A(U3>@~p9t zYOxf~+j83dbBYIp*UYtl46(Q&`aF_=nC71VrWfl!Za>6hiwa2sIGaZ-2>;1Smi;Fy z32+T1Qx%9Vje2|gFQvPrH|iLS^mY#XI7b5{5+7aL7o9I+h9vJK{6FAQWN-9Qbm(gV zw(*sJ?owG zG3gkp7uY}$@)~4ZHJb2!7z9uL0+tZDxuenH2jiv1Yu5Hl|1W|Yyy_cXoQJ9=!~sl6 z7;uCb+T-$?ew(C9Gw2d9>*(M`%XAIbO|M{J2YkZ=JHS01;0w_XbR;szcJYps5&b}& zLV@$=_@eFo-vcnptO70J4WLBC#5FL=XK11~hnV9&312PchU8~R*nmJp7if=eE}(4W zhu?W!78y~nrGwj7l!qeR9D{two$V{e_|7g499Y_F@wRSb*R%++1fBk~!=Kgup@ndVfJQaF<_MV;rB`YH`ee~I6 z3Q>a_Xt4CVx;S(aAwM=Q`2GM-{%LG@AAC}E-{h;8Ll3*#ludlk&Ge7SZK5Owl=VqE zn6mA6)JdEc}fk_Be74{1m)4z@Ah4}S282Z>vS35LB85~8yNLE5s?XoIj0j^vqL z`?-5SBzTj*a#wM9{#N=tNTR5m3drEm;xxpqs)|c%6tFp}m-PA*6lYy`$fkod@YrFx zWL9C-R{9V}#S7Z@o?bsCRebZekFj9aA&*aolWHsByfpord#G%`2Lw0*12M10N-}+S z@gMH)bKUvAJ3MZJq2S3_7R0v!;lra+$0n2T(5UQKA=&%k+7L}ZvZy(p4J(D z$kWwjW+*Kd3Bojxg*6phAJ_U>W|mT=!oD+_@da^3l%HqFeS+~U!~Q_lj{(TCQJy)R z9dqgxL-=Zc)zAp9e*qlNHv$RTCugNgfju1-?@ys}FOfEvU2e`Pg1w~!Rl(=CTaq$J zM0U`v_v-*th|i%W5n_JM4l_17y5x87jtvdZo+Lp~DKvaR?+6W^%(_Z{=0EJ$8h%jV zPf)f~w;&-zh+aVgfdsu#?&M!-v5p-YbLSGC$+em$3oLbT?8RhGP6WA1{)bWRjzN{eO z!#3ba`?*$@2QiY4kn&)3*1W$g#M#LbKp%x;2}tl!s3LcTM+-|*wD40tSR1=tZ`hS+ zoi?xhu0G!j`XXf1vC8%4d_mWIXAoHk7xpTFP|d#rV(n;&K(msM;;&~E%YUz6rQ}7z z@xgg#rmqqEq0Iwur7}h^dGTYte zc$7dmyscWwo|`~;D!db34yxAGx(y62Tck)Uj16XjY>fe!H4#ac;RNE z5EMxL7&3`f;!2*bcDTkD3Nzg5zg7QO7=+m|>UCZQ=8&qU$}{_@tE=_jR!qMz+lx7l zQkfy%x)t95QEJDn5lj2#Sm!)h*(->g2)gkoO+c5E`0zx*rSf_~l_dOTw~r6@Y;@1j zu}&Vm9<$=t9vYdmK68a@`y^9s;^|rU7~w*1#?XNnn8|K0-=zcyO56`W6oanzGZ^aw zR1$`FsjtI-VNzYpR!9h7v=tA;#Mw1d&+#sD1@-Vn7HDd@9( z^&_}3T>Jbb#}6rp*$Dnif!b4_yC6yPA6wtUmn!dA3*?DF!w`$}d*r>7s*VPipiYjt zeGo%{|MZ#b52y@jvu;)mZmr%uAp`NZy_Wm4F%?)hPLp9@pd7q(+vdy7$C5?0NuBwC zcHEuIb}Y0$wWZ%VV}n7&N{zz(Z&0#*9@_#;@GbAf&w^lkzTo8OPY?_uQ0!>8{dfU1oXzXs}s*worwMx0YSEi9+4`m0t;U{sf>FatC{<@fJaf6T-2`azMx z5BB~+U*sZB&({ZJwjdFt`OL=dJ+8-*w)W^~CB~(3ksSOh_nEKgWHqO)s}cx%iR{5E zUJy2JU6PIIdfCqT)|}loB3q_0nUxnhXJX#kws>X1?DxO|Z=bkalYmmzFC_ad&{j8x zd>PrLvbouB=%XIe(ettUU_j}@wbjqZg+$JICrp~=EI&9lP;{z*Exflla>HF}IL-nw zvd+2SpiR)l9XI@~LLoH-v->~3zS1hcf1y&f8smW*mC#Ez2YyOuzd&7Cj1KM1)SfSs zKGhg(MLi~ZgFg`)K;X>>>QPc&anQ>Hjkp;6qn#}~f!g<|0m4cpODPO4)=|-SH*OUj)T)eF^t5_A?tpF#^7BpgT<^2#ZQ8L< zC-`Aa#?GDNJ~KVs96(MRpBhB3FIUx@%bk7~o8S_w7e`MQ!d3*z-To?Qh#f-Yhy6Os_`T*JW!PGLHt@qGTv#h&yfG zqk!hR6|e!1ilpc%Agf!xonQl7UlOqOon%~lJIHAo3&1j?1Zz^qGuB)c0;h3&t(SG^ znPX%X(OT@h0;fWq|M0$bC2v?}i&bFRTv;qg)OaxnW3&pD3EWM@_?feqoEGVNcI58~ ztJGfL(f*3M1OGryy}wMXxf#S9i>HUy%>Is^YfuGWj68&!Y1;m}_eW%wmhpx6QV)vf zU&p)b(=wC`esM7qeqV-BHd-aZnuA+VqI?Ce()%`?4l-N%HQLCLoM*j>Q_i)0Q-_)# zdC+vrMTs_&hP#2lr6)=uOXQHWs8gbkdsx?tE^rugUJsUha{pGDL6muXAb9Wla%^$; z0gw5QpQ61L`Y+S+rcX9+`5@ao<)`^@W)O3YY>uqYWxjPE(WW{kD*Edls}tA~ere2d zgh~!ACdfay_oU+RZC90K+;>7ne$v=yUP1Z)q3S*S+5Wr#|94xXs#a-jQL4H~RclLX z>oU5uMp8v}s69iXwRfntsF9+|yR}EnP@`y#*lGqr#0nyU4Bwabx~|{n_aEdYPbcTx zACJd5o7&S}M7&QcK){Y|3VXY2Tj_2(N^SXrQ9I$}@y zxE2mH?p8hJCwqM+M{tl4)9c)tDox9g_#R3z7MPq_W+Q3QU9npFM?WFSPM6u2T5wlp zZZ{#qMr6x>KyC_T-P3@Z1IHESj~~KcBxbL@lc7t6UT*JP6F_f_P3L8&4(5%q4q3KM zf4=~o9`V!F%RwJaa6I)?JD@RaK4WVV)(7P`I7r@1TrzZfJjvDI#%Mb{kbqY`2W*+L z#E$8{q?E#U6Pn|~hl3*5eou**uFZVk`;t_HdSi0*VVv+bQ{r`=k??P|ZNKG66SW43 zBxin~UbkDy-JQ68_Iz|_`m=Cygkz04HZ)x72WP$hcVG`sp?#QI0n(eSpI}hmk1+V% z9^869@bqO5Eitryey|jt_A3@v&f7a)$@P4gHF;8D8A`O6>^gGEU}u1l^Vp6XuJ z9$sJ<&&uIm7G^oo#Jw8wH{G+ovS1^l`3+<|i}5P&R&|lzdNTuy8S<}N>aP>H9j_cc z2Y~WVm zus%s6wGSZ=&i4|>=%06Q$lo6O3N=4R@6TLV+<@kgd(g;a?sI~p_Gt&B*Ck9>Q;op$ zwy;2)5sq+5yR}xr5i^ET!pLHuN_r1qUE>~*Zie1#|1G7v69G!XR@(X7JqoV%pQqC% zrvzvszE}7f2x-EV4_97A`}vx6oW@`Yqf(RNt9u2`Eqc>A(zAUSv=yB(ZY-=5S@ik@ zttMe_99;t+2X_V3uAj;jx!&DdoiVU`>Lw4k(n!TjuZN&`XabG7xZ6e5UB0*w9(lsX z{tQ-nPLi+U>Jt6r!LNjM*Wj1a+5&e{{hU@)-#M30Qo~SD1zfey=l;73;1nE~IpJG& zo3TzOPW<2l7vLgB`Ew0Uy+! zwKf8=Y3_NuhbbMKFwFP6rz5zJV{}&FUgJ}l_UIYB7O>%h92d#uF8@o~Jz&14xK7&A#(OrBStt+5z68ynYQW#-A@sOne z;uY6_#*n~8yyK06AUeI?kQ`MqCcw?UZzHG_)?BF|M!}`J@X}=MdLf3wVXV`A;aF8g zin^dFIfdX6Xc^dQ*Ghk(^~)|$rK$%0WLJdgFF6`_tU9ASokVBUMKsJn7aa@G<$I&GYu8UIb&o@e4XDQ7VV;QyszX z!T+7@x+FpEz{Vp(0cdAa$Rs3HUMNRM;TRSM%a8yxxX_Xx`!|JIRS z5toadFLU3ytcz1aL>#sbO1^*j1F_cx`TgXZ5-M(nJt=XfQ-I;xUQ!=uuMU45>p~!)fb;vH?eJesKfROSZv54X=Bi+uVj9@ z;;QDo>Ci3?bYAqy&)N+J<#HPz=@t_GXGjU~PzUuF^!f2KEZYk<5uBPUERttskB@EH!TnTh(dNV#opkDN|UFm{E9X6zZX>b|F>hhg*8Y zzg`(5vdq(4DrW1BSI=FG9D(#-E0WD?W~yIZ8J&QZqya}+Dcf1XTbx|Rpz{Nb^9Ofv zD<4nz1t@fOWXAV>Bdcv>m8;N9Hxp6%)N~@LiQ_;);p%4AE}fxd=@-ef8DIz==dVM# zEPG{BJsJ?;%tA(n->T#gh6+xSj2L~p^MUL~b`r#60zDt_nH|}c6zHWpE;O|(*Kvv~ zbuYp}V==VgdV@z)pTgilY%?N^{?kiCaY50mL9F_$b^om~lnqI{E5TyxqCV}zFnK&}_07I~r$4-7RiGn%1ram!ywTot44}=*@ zHAC9&gMU9n{1W)(8U~Jm(_3xE+BKwd_7u{_=xL6lGIyBbt(DPR5P^;H!>3gA9ED9a<<6>9h9ebPIMpjK@#>aYH3SX4;-tvG&K`xDBaxFhn zwfL3JO6U#!JX;EKqJwwc(wQ`&O9fgOATGJl*nDF_$NKqcn!NrEexr6|8e1#Qsb)mn zZRlI>c`a^6^wM01ILt!jLy+1GQB3dhY^tqHH^+XZjuZ%^2>*Vo0818b3oJ2$9f6-M z%{Kr3t?buVT8Ed=NtY~*fOpO9hsutI`)g^MqBEq@$4L&k@^Vt2glc@MPPs}So$RA2 z#UT=SaE$j*RhM~A$0r<;6ah~7{ zi>yO685fzhd9_{aw<08Y5E!C+T}zfAWpx@oAX zrodx49}m?S&reufPF@nu)3263wwS-j{)x}MJ<zD(ml9 z81lREP>6tII5@nb_);Ubb!4H~sICt-5x)u-`vJ9F&D3B3p3R3%iB>*ebTyE*yH@hdd=##30B2h%U0n{P}<<}&oR)P4N@ zxYOUbFAkd)qIID87Ftj0%y3iceg1f`jYjtubJ$I_bm3KMY5$#c8b_kP zVdO2rTpuxGqKW8{VmXH!cp zmsbCsLh%B$pFGRZdaL++7LJ->u3o8vcF^xto~pC{sqwzkGuT*^uZVqe4Xbna`ztOf zkS`f`QD9Hd5b;nfA6Iu)tDl#~g;IxV2MS_~?L5+@%YYt4(rtniB+}~<{7$&IlW4P3?TupNXki*7Z_4r5xKi?#rJRxcMtz9gVxLSwgmR6zWOd zL_YmYg!fyD>Vug`jClG0>ze$Izx*Y3^cekgUJl-9v-F>^9dQXi0rI=bRz>DBGh`7t zMY(oT8Sk0BU!BF!VS!gUpLTQ3d?O49j)4e=R)G@zqJagw_VRPm<}K2#Iis4<(%nn& zZxWTncAhgt>`S)e$H!Pvof4pRwIZpBA}x3kBo8wZh8L4(v>jZ=Y!#%!CzRz8|1MRK zKi=r`GIPzT=<$!GR#icBKuAp7vb*VF7jo(%`qF7+P*hJYuYpC<-dUu0!*Js$*9#@n z13v=dfN6tCLC|-Ntm+i{P8EeyraOFdOu_ajTa4XTas46eOrX~5bjmgFiqH4lW~YXcig*$7jQ=OEkE!Omr)x*2n{n6dmRh!(G-x1Xs) z&F{EG&h_6E-7Bw&#&5LXC&$E=whr^AwXzu@HxVOaLJv;4M;sA(I1>2%%~}LeBdUVn zK8SYf{?-m@@r_AEZLF(FL_`fD?bU)v8N2G=`_73$=(N~#05 z_reNsw3|#+mfPCBjQIvvqt&{!9-#{?QFHN`!zIr~7*Zu-OVs5a=i{ysYd~-YrIaY79=5TPS zTfna|Fz$`r?9$Ga54QkFtt}oX;Q8%Q^?~EUZs!WAy-Pr&g;6xCrE2(`$VzbNBaeDR z3hDYF={Km7%pPL9h7N)5CfClM;2U-{0RG@-TgRcQ372GwOa>kGJFecnUWfD%m>N|M zKlP&Os6K->Ue`KDK7^RwNPD#>9O&fp`%s()$*b&Jg{e30DB+Ce#s?bEevmZI*A|S? zpE0BPVrmbtD`jz>VQ0ogEFk>@Xq>QrV?~nj*}h%AoxqZYrN`la>4!`HUf!c)vak1CK-z9BQb&&5lX|<^R1q$}24x_P!IC)Fl<_huw_XR;%%$-L!tntbQ zF4-m<9?BaOb*A)@a+M`IM3SV(e5aKT8m_2mG+CkNjz&z~3|aN*mv{cST}gn3+NB!2 z-6f&q2(|Qi2EA}|eLJ{;D3MIWyo^65S=am0!b{lz`vTJ*1UmwUb1+y|L4W- zU2ZV@Ac&;V09;U*sE#O|g~~jLgSy4rge{c0FSVM$ z^|a9r0sD>RdmP3gM(r(~`dvj4w>svDd3SI8(tJys6%0R&GmSVc9k*TG$}j56 zu5>=+1aLa_ByWyKEDz62=#DERI-O#^eZ54TC*ixS$(-AB3+HFIIyx-@z2dDH{kS&i|#lg0}Fy-{hLw9ZSULvDFx zqDoEsckZhKy>y59K}Q3Dp*r{A=CJ$IcE=+wi$(bb%kezEF#c#4wN^vM`v>Y}G5!zI<3dVwFK@AadX@CYE`sZX^yzK>a-*(FC|{VFB0bes&B?Ru zLv9@3s_1Tkpm|4z$24RFGTeJ9rtff4%8~Ylr%^kr$hDvEoqzcs*5^amA`OH^uM6in zwdpAo&w*8jl$*b~a-Sd1B?wG$VlVFXbR799jN?4kLt!+gC*6(V%D#3uY(7ADAc(5) z_(lx=*VZr(JJ@v}?ehls0w`h}S$c ziytJs`Tq7|{%uxU@{%DU#!sGMh}CbU8#n|=7F{mp1zzNHIg8&*8|WoC=i^|zN;W>; zI?qkvnxFj5^1{T8ZF*^8`|8 z&XwUP1jc(lwlR>gcENs}PLUJ@Uh&QNAT0Q3fe+@nq)0$m$0qxHT?B1bDr&zZQ?dUk z$;Z7~_?Favyhh*VYnJ|)fm;ae+KGrySCD+9#sH-YX%1iej2ZFuZa7M~2_~iX+3ha6 zygM1O_{;M5OsF3MT0m~Cg|zazMiXO!mmOJcRoi-lN@)7FqfsCzg<#n`)-|*?3-}#H zF11?FI&Olp8@5C@4{w!G0D8Z<&Iw8 zuj0$n*trPFG_G$4lmbJbA-4XqXua_XWg6Z;2b3YdanfotZOMKWO8l{MPqWGlg{$g1 zvf585{zjyk6h_}w468zQsRI3N4_8 zQn(sizAY``p;Pj{XK7r;f2#Af%xe!A%31eYo(ZJB@1o@i-T3mq+AQ+U6}$bquCZS! zC}3N;Q!3MTpX7!2?Zof^t`X`}c(0c-WCJMB2{JLdVzb@b5k_>f>p*YU^MMz82VO8c zFG&EmSC+f`v$Kul4Z!RPj)umNYS+rbU;SHa)G*IIf0Ua!S-+-!U0P;+V?Zo)~ zJy{oArHFxL;m6NITrXVE<$NLO?B~RlrH_j(oy#D78oo12W-~Rb^`gZ;l?4M(FFL70 zaR9o`+CaxvcWdZmD_cdn>+~dLiu+r|A8VGc+z}5L{8<%FGueDc5*(zh11ZMvdP|!L zk^z;rV^_Xmw{x;MJLE~bN;o{K8g@w%+qQ%ZsoC(KuMT_=IAnx*o^!sse*42a z&Y4!X^(HMWhN0!$MEAg}=pJ!5EMa`@N?*6tzSYD2Y3JO^we+K7G0GiWfnqpc=zZMyDp_3FvT zQNYj8byZ8U2AyVlp+(D2Sz{?M0}$Qc9ISr85Y1L8G>VOoZFy2mj$eg^QeTYqAJ1TC zv4?ZvfCGB*R~Bmxc+j9t*l{+GBx=%&g0V!ALjB3k`FH1;+Op8$3eAhJs&_4a2cY68E>UovZZCJ6#=hio5QnNt9Ps513%g2@A9 z-1@dCI5013Qu!QlXuc%o41yyq>HNbo=c3dF4rLcf?8>!Q$Ie_lXIsaM=BuO4ZJe2s zPx~aOXAEwVn)<^=;5;Imwy4S7tA;N$XKMO^MwNI1oB#bu^_O|H5_uwH$ zE3zrJHo*AU?(_j&w^|K<+1B7ELf|vGP<<4Ic|@-A|=wfnlx8M zkK*Wed95*J&Cf+`XDijG5pJ>aIH-&$g5P71E3XK&aRE$>>}%YvPeEs!k+RzOYLpIC z1S){upFHS4BLrY;sr>WbG>3RZyku~p&i5&A%-2?`&Kf?8Xs-XH_UmX&a_b=>aOW`n z8B!H^;S{_|P)h4YQG5Ej0GdYb4Sh)&+z8$^Vhsf}>~`cl!|)T! zE+BTs*2bk(4+jwJS#63(9Y97dH5B9A3dNVT0{Kb=1X!WjAFKCzLmTyPV4#ZUJ6=1v zFiQU;H+tlxPGT7EJQ$8@#I}`gGDsoXRM0Du>3^=@09X->tpE6x3v~BROrYLZ^Ow2H zLb-9l2XmDgu`q9h`%KA6_HrZknEYkvqien`qJh&_rjKVA`iE{lAJkzzwob;Y5-ByN zzx+88II%aqZg1Xpy`SqjLCG?NpWs#GFO+-qdIkCub1( zR_g*}mhk*nT0aZWV}Bpn67B1noVmF)MEHP2z87;#UIXl`>^AJs;lq6;ygn@ld(Uq) z=tt-S781Q+Uvus5Xkg)kEXe$yoofl{u?NMDQc4K`5h17?S=_4O{8Pz+olsNmkD;m& zVb_JVWg6PUnXE9LF6|X8Qh!SCuHJZhoOLeXWtW#PgoFn&;&B|kS1`XQC^2+WM7*R|7Nxe(u=vC)=BLXi|1fyBDGsj>UQYJZVM>hjaUTZLIR6Ze z00;@FbFBL+e+iow1Kr2fb(=s;;z#Xl7_~sb@5_31{dF6B@weuX`4&m1tD#}=A2j4f z^j{KELpLg4-}YdY+28~ZtM#@KgvGzQKum{zE;F+M;`j7dJXi80AG=@mMzj0|eINNn zZx_~G@je`Fd!S8KKFY2?AX`!r^ZK8PIM?IL-m4xZRJ-{3g@ zgk5l3Ep23l7HbXq7xe(Mz2uh}_1)vtwfdr-b1|37Ax8V!dEP(rH9x5anFa^L^R5Eo z4Ce(dbi0;%K5Ncftrx7rqxxJLtu&cM7t9db3+lV&hkF#R1HO~q=@mRcsVR8Tnk_r7 z@Q-wX`nOP;{^czfgc~bU_y>ufv1T2!u)G((*OY!sCl;8{&Rr=uVG&g(HN3pEKQ>|> zMZ9x^$gFbY-o+rhKFZ0+Rxmk8;w$>$bx3ZxV}t9?3Vr;U0i@JQd>N) zJE?zb&V0%7ePh3Nl(4nQvSZMcK}~xP@+2~0nA2(D$w{5tVK)vELy-OGB?T(3C-N(9 z8U&q9JUmzhhT7%WS+eS!eo7!}wTy~FfAb!IwR40|O#jeH%0LbC^e^_EA>D?&k?n_% z(TGO$2;p_j-W!{eT3BjHWsZ0&5dnxWo&Q&ac`;ppdcwkK3u-iK!FMgrV2z(Vz>n_J zko7Ac4E`?-c_-?2j`c;jAl!1i0nis=v~JzYQfaA^4XuZilqH?oFsvP|hv27b1gsgC zyUwXMCk07@6Jxhn?P5TsUJXBl-LZu}4v6Z7#tC|1256lru|ZZg1=L1_|HRD=6y>oG zn~Hg^ui=`QJL7Oo_a!sa}2bF6!mQ$GPI`=Duem5L>jHv3gs-afJ<+Ub9aB9d9$K29eNP;+!5cpmLfjn~JY zF$1i#6HWJ}#*-gTRc{3LzVdZ(vNl{@=%i~><|KQx} zA+@i@l$n2b3x8)phI@rB(?<@C*^Zdx2RbdOaU{>}U%39aq=;+AJppn_AC{0zU1t}s z;a(9{j0`v&G_3b~zew*~wYA*SmCt9j`ZD6%IC}B_DbrW7?%F>Dp!=X9>f4=xmbmbJ z-CX7R+RVqjFTz8qpLAeZ)*AsaG@>!R&d+A)kSLb=W~?t(^ITp!qdis z>q-?~xAA+iyl{Snqm0&tkYFpXsR76UnIf-n_!ChXF>RbosNZrJYnHmWSSE#P-1mhf zoZNb``+4)dyPj>T`#m(FWA8_^|2V+08(u~T%^u?aimFKAg5>84*LMHn;k zcAH249CKkl9-;tWSe*MF(gdvVJ3q9tZmc?g;CSC2|2yw#ik|3ru9dKc?YQuzqVvr1 znnvCg|J+ftFy*HuM?}YhlhNC5Dg86woXR{eY2!2S`;(+kaIW#xLr$r#X0jUb$IJUx zQ;$bM1Es@`WY;H^G?PKS&xxMnJjXx^(3PDt#95(QkIbz*VNvIge1SB5=0yzX&O4^J zlbx)^HU3BYDo_Zm;X5tu%>%{m9VR|8XxdRftXLAjNuD5ZH-S#-Hh;NsrDi_+uZGd0 zpldxH_ig)MIGEUZu~z)Lh!-^npR19tpCMecoDgqJ#^$9JvaU zQ>;Ki3VVm;dHFJ+I_s~;1nR715iwrkA*X-RkDUa92+<0XtKmC9@lGsH@BG8Fzcl?E zQ||6=WdN_;bR9$uS^N*qwp1me34KOr^S0N{-Zi%m=$K?`Hp{&}Yx^Ka z3#~L9>nTDRY7?g(6D143qj=TzHEFB~;IhAYjl5B2@Zox28~~OvYYR=0Sg%Hp%e@_HarGLomEv93ml%bz3!^G+eRr^F+uG!3c-ie^ zue^wP0jI$EsbliAo3Nto(Js>n4J$RCo1uU%6PWW?b@Zb3Zl$GRv6T!fivT1W*;3Wm_sT@UU(g+(;@1H zOFqkAeO=YqRFrZT*!w90N>AveUB~h_Z6U%MBcugwu;?7EQyI5e%DSgs5_rAxt;g#b z$62g6d3WT`Uz)>_3kytQT~*g}ZsA{K(aML7 zArRgd{w!qnAE-UKrbNu?_1ead&?))|Gev5z-A#$bCv!%bimNG4P#F=H4%nW(YmDf) z_tVdPtEst~PPA!LvzoJHaemf<{U5Uk&M%MMlE_z76!eqa@p-KY@_in=_7GYK_RRKu ziJgrm>JVJU9u5Now3P!yj&G!v?C7 zE8_oTC)vC#Fe*a^2FQ2a7EYwA+M{I6xB#L0+xCvx@f;}!AT#DLO$n-JnV8pD;MFBn z37~>&X+rlkbs?;fen!Ga>KeQF2meuj|7&|!@9KT*4yDAVRBJC9po-l77VrhRjn)X< zIy}DI@NHE8#;`+!=czWoiFfGXAVAa%X+@yb{)0-=NMYm%%c}kk1dKTEXG)i9O#0`Kk#(Pxz?RNNT_{Z-I^Sd{ zbs08htE=3Wy>9$TePq9Q7s=~;H1L|$J_P=mvdjIbHO-rk>vHuizCb|JtcCoDL9{i=zLh=T;iKrWyBxKBuUdixG+ zaqk()|LFeXdxDW=f4s}j0#CYJ9l~thdUl%=%eXr5d3?BT+qQnvbV=KJreg=)o*YMv z?UZgs{Sd2MR{h9*gW_c=Po>pWc(>BC-~#{n4MJG4&W760LB-VPr@F?6Jo{A&q2fgW zmcmGoM*30Yi~0RYas`+qGg}QBvRbUcIa2FpON=Lpd-shYCrWVZYN0|b_0o)FIN{nv z4lC+<*_vO1ik}JNMj-5P*sunPNCd1QsJg6aAy05+!YWY6J$wkencv8N^ zW*Iu#r-N*;9-Tsa9Up*Pz)_#Go}?`wtrM!}cuSw{XXE9bCwOQZ*jNX?<^fzIe+zjc z<)mml_y^y)yy&B}nunz8;(ma0q<=ey%OGy(8X7Q;ECI%m{C(pHxVHt;;SGH}JNe#Z zk?xR{`Y$BP1Tl_DwfyMC1dJmhdM-PaY?p^6nJ~(-(eH-LeJj}ayXZ7!?`2qf@k!0v<@y0n;b%xCBt-Imr>rH#2-*U@jN~K(VzksUy2^##E zQMABP`<^Pib+R={1UaW=js)RVDQ-dTEIU~eyE7YBghG~<97fO&q?oY%ezcphRzo3IH=3SeYzM2J zFf$_>c~yhKHsi5?>#uh31jk$a_Or+R?35iMvUlP60H7$mN2`N%=o=XiaY-HtKw{Ew z*#)gMUB4G3v^tAQiNgu%d>|d*N2?+%!|W`_O`K!Twfn?yQ|R*nFvMB1sJ_%@Us@_) z`ojSb&~g~!b1T!4O-M$}9?H6^8b#31gO*Wrft8b@HApIeN@B8pY3jc$QBQ>lGy-Q4 zJj*Jp`f8|EPvDqQ#e>^P7&EO9r}nlhL7r02KLtDEfEtd!5#kFRm*miX$3bg8)cKc| zjDF|((gO^bBO}G){{tq!Qu&Gk*BdW1*Bh+|bwo19rNz$KY(_BLu@OVm06h;=e-|*< zTg3r5|HP={t{ZaR&Mz*lYFA=uCOkkT0yXRpq$5Y~I_kUa`8#zicc4bx$Jf^^r+Dz< z`s}k6&3v3pi;2#@_{mO-Pq*qTx91oSXpQmPX$xVJiHdpIvQ~%#Ko;k_%f3%a`&37* z-Ny5V6U&>W8Ny(kHo>0_9GG8gw60KXi+u5QFQKxH_*A9K2o|`c`fd8scTd@UiD$ds z6xDmH7k6}DsEkzE!cZ_Ph>Y)3mY|6Mr<;LGvVr6trG=4`f)}x%BOC66uT5uZ$17Z0 z!~en)^#2c@EGyKkDFyzIo;&~=%w z*$f{#@3OgRsEb`zVrF10X7#w|KPaFVrW&b7qcX>dr#UV-tKEsR_bwG(PYrtupx9Q#k=2oDARq2;7oDN zP?tIoQ~Ag62eQ&s$;yyo+*19zJMp9O40(cv? zs0XACsLGQQY)Iyau zCiay|j@bA@Si43v;QJefb35&PB_uW}vC-5I^t)kI(@gW}Pinh+Vuvcd62TdKu{bA- zJ3!dx#*r@F9y|TmHDQ@E%lq!^NaX@J`o$JCQZIyPYNqwEc8VYt%wISrU4ElJ>2N|` zzMa!kS7>K6AXaYHrhs<%@h1G&FT(js%al+Pw#0XUR5=M0bHK$X2uXH`!4pQR{X9dO zBbl6@uulRMnzx=RcjRMb>tkyC9OSbuJKK4}>kuFlS_6FyL2aU=5Dj@T@RjSF`}XYj z%?F~AQcyy<>2OZ_V7rIm!kji5HN!uvoNww;lfgd|=8E}(nRDaz2#tQuOa4nh=|(Y% zd1VbZ)3PSGo!-xBxJ!Af4Vo^=!!l@PWWE5dS9tY(|KF0Om3vHpcD-TQGuXziRl{gl zM`#C6Ugz(;8A}irWr*F}O&J+27;Y%zkB$CYzY7N&Gnt#FyCQg1FYA4J^7f?Q&tu(x zeSmw%k3VYVroX0qM`|3Mc1z1+4e!$vT`L=8Pb`-RMHoyC7$0?PQK6Sk96Q$rs$JA0 z_;?2vecH-5)!Q@l17c*7a|m+@TUIygJzex0zKCS%JFAieTK}Fe%T)I! z&UQ6Wuk<++Xdx|9b13kxYfj}$e53E+JFn^2xqOi(VGtD*(0Tili(LeY8htSN zg59(o-mPk9O8-NYIDr;s;NG=XpyRi$oqVY-s zOFm|WeZ*PNVXo^am+;Q-_{nV{9Q4r&H2ca5KFmR5LAkHp%?CHIGj(z%Es$IR^|fBO z>UGy9ZNvjI4yy=#JqsA7Iwjv4sX&L#3(vv%FwgKQbH78}UWiE6VkSrbW4_DR%h z%i_K+6N@ssL8MuHLcIBFnXjFSTxj3IuMad8Etvbh?FmP~w+)aK-3RzK;hJZF(Z4Ty z^YvRFt(Z_t;yC94ez^?MZ$K5-0B}lGTu-RyuMu;zXi9~c3gJeC7t*XIwc=5 zRq_BX781cu=OwM)1DH3FAeJ65Q#`f9)qBcIQ0wEE#o>*TxIZR9%CTOjKjxA=Jvy>2 zExgGhYS~H1ecX1=ieaRk8Fk73HLum2xu31Kk{eo>7+P~?xBcRxdJpaIXP-Q=#XEExm1OCV@k>@O`zV#%g+L@u$>ulmiErLw*9?h@9|reo3< zFFB^M?dv!W$!Den75gI3eiF6iTkF_yW5u93Zf?%RVW~O|+3OKdZ;h=+LYRyBB#!tb z1yFJtPITk0;hM)$lO36SEz=z=!E^P0vNoTyAB8Nn+=S5r>id9=QHL(G?&ckPJoOw; zI_>NFSU%6DhA#gLh?YIT35qa2i7&D7%tffg7mJ z5c8P5sG@&f*zP2U>`e(DGPd`{4Xjs~Xh@bQ&RrQwNAo>P!C+eTZ9y|-OVqklXt)>rTt@BQp@Mob4foP~19vZmEj#ixYIi-0BoEs@A zF-$1PFa)fXqOCvM(uC845k+Yui3F*^$KnM=#vja1Qxh^zWGpy-R(`q6bAlEtR(+F= z^qF(o+O*^1o#XM94~AxZaZg!Ktbs{Wbh&uQsP`HgGW^M?rfXY-x6`8}B8mGTLf2{U zvoNWXDu=gdx0uBm4GXO?8kx&rs(?glo9>ldgODG8yYF{@yYH6iMv8piuC7WxMXc9u zwnPV}G1ZIm*zZmhqIhYIbr->Xn+{q;y*f?v<5IPCPTnfZ1m0TAzj0<02A9KulUja{ zycalUV7BUfz?HMVcEEbgiTwGIa9s*-65Hnx+jkpK!(q|L8-ar55Kotu0LD})W&(Wf zd_&+6<*uBMo#b`|(R{3CxuZtF_xQz2a{)n|oG=Y{sL1IpdPu?xjA0V$rt-uUz~0)8 zS#KOpfh@FjUz5)U?5!jF_SR^}jt%b@P*Ot?t$V)uJ9E~5R;mIs8w$k7azSO!G$^}7 z)DlJDMd88QDJ6MXyBQ=|ar8^zBRZ`NO&B$D0*f4=J+WRvhB&;Ymo=x>B~J3OR_+P( zSW^#zRZEBK~y z-ne1_1E&rK1U7u~z8j-PVJY2O)T0b?n5VkKDKokM;_2t&h!d~eSI5GDc#ZUXWJR^? z{)^@%IwYw!*DXq{WK<3T2bK)+UQpkxK^vgRS-bH;zkUJ*m(7_8I z*IXh?;#j(>gw5IrY)%H1wF(HFxR$n$OS;Sd;u2@a zefXVSn8{jz_^BDjqrHxn89j~GGBqEyQ_Gdxqqz0H)+opMbo!kM$Z78eyxNxp16r~f z-fD}aCs!6L_g)RTs9o$Z^>u|MU+pytYgay2E>-{NZ;wp^MLa(|u;W^%Kg;ZY zdJb;^v?NQ)rVbbF^@@Py?Lss2JY6N z3PUlT%`E9+&oW)PU+kNhF&(9C$7$h+xEh!KtwGX^_bXZO^%ov{`fwmB*0AJ1-?^Wv z>E6^8iz?jDLnb5tmxo-!f>=&;aT=m`w*rpEmA8c6Gdwk?%x7%j#l8=| zC9Kb*?wLxGbD$Q#@xrApfTGihjA9NpNc=T#hob~f&T&>8AMZdPJfhilAC%IapL#}1 z8=vSgxUqdb+6^+A0|oz?&)V~ldv`U@p<&FVynhFAg(daN6D^912IkJJs?^CY`m4x6c3f~ zd9Wk2XKgC5ar#U12M#LdlHIEjX2^`ZCO9~5KVCDZZ^1JWy7f2tD6TK+eDM$5Hrb9v zL~gSp{c`rsZ#-~Uec${%>Q~0b^%U;9e;YQ2IAWsO9fR69LAElWu$|+w!w|__Q1eY6 zAo*w>Vj;~jZsA_|LoB(ehYxG}IK9^yC0$GMS zl0o`+fX4Gea~z%aJs4=J*S-RiqI>!#jqh$&03h6W(QXekt{S5I|^f{#8g*&7b3svB_YF>&FV(g z#!V*Nr?CQ4yhhq*|Dimje(eXwUPgT~9!&Q?JSVZq?e}?C0A!b5NhpGp2Q9LDKPsD^ zR-H*f-KTmpQ`fRKxr;bSZ}6Qsx9gbqHD=JpfUil99m%Ny66e!Jo5FS$`%P7{nJ3~_ zVgvp}YgQ>V{O%Zxin{?BNy#Ch@cx;=0K+w>Ncrf5TOQf)*wno-`$FwJM2@<)p?FVO-{?|@& z_nE%iL+!#26v^?P&)i(ackz1Fh|ZrD;WZ+Pymd6YDvw;G@B2!EUsV?>dJ>vmuoU>-gAO8QP5@4+eLySW z<^Dx}dysDIMyERzXX_WHK33Gc=urrSGh*xj2OvoEk%rVqp-s*Az7dOc2no+VB3i_e zx+Gz*b($E8)DPJ72yY-yXnYQRkm*`p&>O&$NULflmD{LIQD`U zGrP0hH-1YSDzU^beYbp&G6f?zdHzE!rffto`;&M0k!;tlV!jSDw ztjT`~W?|=jZ5g{SvI_)r_p^|in!{v|`Ub}VB4Ef(TC&Ym;a1rrG;aJWQI0sG4uXT1kH*5N&`g=sOXWzP=E33vfl z=2k|qLF|NW0E@ugU)<#%>2>Z!MvBG;>X1IyIbPk)<|F^k*r$Gu)ayl|;Q-mzT2lui zk*+S>@X>KFBT#QxxW+u~8*JnF4%ysKnz^9`(%+Jq<9zOVYWHi|y83CKr z^8b0{!haq)6cBL4WE*biC%zq0QUSIN4`wp;`vJ0z{yRCk0+ZuCh6gY?&Un27CP$?q z+=b?8sUJ5`CK{7}M4T86#ZBe@hk8Dl+JH29=+99D(!XE*y)x3ORudlx1MZRt)(`;w z0xJBpWItqZ66dZDP1p4C$T$Fz8$>hB(46a#kFQ(LzULK0@_Lr1NICv2ktWoTmKswT z>HJ%XbTDNB_S?3_CztziORSoH?eX6iiZs?0w{V+os*12bPrIH?y8FL?M8homE9A8I z+vMS~Vf<(X51&p!^UFv3LCJ0t;SsHY%m8OIASa1WPnrk-Qj)8lj{|APdG3Qe>}97r zjXnOm3jh#xVz}Y$Y~EZ%3NS{_*E)Z>FfPwm_aCbXJWentcsE16%sg+?d@a~Htj-E{ zL62>#xqWLL)-G zgRHc!o?Xy6N##nbYG_P3R4J=u971kuy)YE`V^~)%o@?n*+QB0Y0ys~H^x}+9 zaMOt$2F@Ybv^BDxcKGw~?gG&Y`^vZgCm?XMYRx}5K{4WrSkw;t$mD~nKW;!Th;Ia= zyMZZS;Tbp3yV8M1 zJU@Fuw)tT?Ww%Xt&Z12|)DEzO9k@eRO|OdkZRBR{vhcY?R^T_Tq3w>9+y7(hT^yP2 z|NsBaDyL8mIZUZ2l~b29OF49qLv^Jbh7>wD<$Tx{ay~4bB!>~9oO5Q#Svf3cIkT9V z(`+*~o8NP~-tW)#`TjnCgV&xOkNe|(zun&}Gp#JXk-=I1zNuB@{;px!<6O#hm#h5W zR`k+0D)iZ^w;(+pEq`X(uRmt#Bg<}2!XF#TYL)JVs{~8C2bPZx$$h!Z2&&Q0!0U*r znI18!y&rbqnFE-{G27EPRko@;k;MNi2QnxFTj953+XP?H4!>as&s0Q9fVJdzJb8N=AEr%YH6;>OZMqZQH)Y z3{#(oN14_7G^zPl6KankE9%|tx)6%SQ51&IDh|jfp73aMYJl@Qyn0VVGH{v#xtkFz z=f47Xx~}p{WT1R4A-3rXY}v22$K_JpzG?L{=aqB808=~nY0f@mxKkY!H|o8OHIJJowlLOC>(PWxd*$l+$t;CDcUnv~te5-+yn%7iO7ms>LG=yrrDEna`Xl{tEs+#;mI) zPro$&Sx=Q)5+&6Vke>JUz*9Hb#_p4oY_Y_n&QSN<^{)QP{CBpQXC#py!^mH&0YGgO zbzNmfD_CEXzGCzxXYi^^wOkx7mV;#28oNJXRIsiVRiCtj^Gtv>+1j%w-yQy)Cb)V; zeJFk1#*gA1!=B6sk(CBcj@P302mcw%mHrva8-wx2@@;lWsBn#)M3wO3FKpM~i9fEv z;QzP=)gaSj5nooqC6qOW?YJP`!yDXwm!hL&4yIoyS}J1uVAzO;#9X>cr2&d)lU69(Qp)}E;NDpt67{y#1FwEg zO|O7L$g`w9;LN63AG~|(Z)sfB)uRfO*3D`k9J< zqB{QMkR$zG5)wmT|J@o@O5Q8DMaB@Lif@f7yLHZpSV!sY@ z_f2VArFs=F*@-)Kx2__Jld(c$O)Y(K)IfcQGX9yM)YFXs-!LlpqDy=TrG9`<=Tu~chbWndan1$>&j_5r`^nk>Q8u=anDL$~GHBojQoo_pOVJm27jQ z?o{k-m=KM=aB)F2(l_j>OOsmD7~FlU#*AjV!OH!5&8qG=L1f)^q+ifkX4?ci69*_# zVYE;NGDmbwptc}gXW9QUeu}Cc{($KFE5;%wZf(gjaQBaB`u=pCy*4nhEqixxlrO$A z`PSsBN0W++!u6Da@Oy(=mw}Us^Sj+p11V)gySBn%RJh-a(v7=X^Ce^DL@h5T2gluU z{=yPuf7AfD=iIO}I9}Ke|7t*Lq*U_kCHS(yP3PPfu|tU=1+`oy;fI8wm#cnRj6NFs zuaD67b`$lB(3sv>>wf+zti0N#>fi1Wj))QYstmio13tR5FP;}Zy$&!<9+ zaMaGR%5tM`Bg5~U4++%~D)r=K3-5JN8ohPTjS}p&3doJ|0Z&)Nn~T{}cOJ{2RswBz z_}&A}JhK-unvNJ?__mKVz{Q1AyK(HxPT??I9gs;TG%{wUF$pPju>f<2XG+TiTy zw^h-7){?Gz=I}Xh2x|D=So_xlu^5@WPNo3-6U3AWuJS}TkKF$LWM^FiG*ln*;gAXT zFTeUw$8n{n-s`*-gHZzoOuGNWC&jE`@ z1h;s+5)uY2zFqB`VqOglgJDttCgtK;mo)b&e-Ht5?!iat&FzEk5Bv;jDC}{ZF}+s% znPn2ixOoU37CvXv9< z?cn>u&suMN(SvTM8tNXG^w?J?Yzd9f+FbLiNn=`MroYQdv-|Pez*y(|vFrY{7~fvj zxvI{`9O4%Mvq!8xP@=WeYW&tYzzikmQw3oMBRRweSxHI5AQ}AZu!}C?xNw>T+b;ME z06wy+(snN|CHn3vcriU#J2gm;5cYk46y_Xrw9Pu2b1ZCS-5JOzTET6>u)EgXdZ9g0 z^RJwX-EVW2)IzkS_bN@^ay`AdziwWSXz4Kb(EfEn8$+y>{QI#to5T}yqD@EdY|9^| zJMCXexA1R;E`vQAcTv^0fj{5Dj>`5W*bCFGhq%R;IEc?++p)^ae9i?y2*)ndLN4fkgxY{{yr%V}+iuep{h&}$ z5B77dZcA0$#D!_{rvYK6TACG7-`>^w(~# z`*|Z}pYRUIZ+O%MHg3(AtlrJ7Aq@vKDVV-RmF*}7_deEuF)LG$Y>}VnZ8b>-z@5n% zlqxNoc~UwTJ@V?|Z^DLJWISex8ZgtliR5nbyzTh(u3H|;5NZ<0aDP6WSB=sgX|8k| zXjI4B!n6sq1T-ZmRHOLu8D`L7M3#iRv zv8oEeO+}H1g#I7l zn)>K1o=@?swT~!D{p?%L5-&L(p#*EWG*kDc?qJ#T`>#WoIWT}t3voWGp&WXnHr50q zZ$&p7S&I=r)DBicKg^H``>tsX6KsR%0#KvR$OR5Otv zu!ADwwI?5a6!l)p6QG}KmCDz!0N$!Ube>G7*iwz;q|T^#JX5sln|dv!z+~gfox9NT zLG{Rw6-G_JJ+b&!<@ZA)7n{*Lfdky0VI)_DeCgKR4(NbO5|PhTSxS-dN^lQ#JLJpf z*xp^9-zuN8+(nx=uQXw&yJ_)CvuK`y+{ z0wPKZeUL&qMjU*G`6psolZ}q5P20Q;ecN)J$vW(#*NUr9PPqh>F7zf>lpF`F=_Pn<;z4*}W55T|0Sn|H12dx4)w!{c&&?%&3g zru9DuOux^|@ezm*i;-yWXvt)s(Q`b$y)E*za?z z6LyGLODDFAQ0anDqIS5sEoagGwg1CJsG2)}YM#sQ?y^FVN3Pv_E#M;rBg?BEb+(W2 zIk^1*j#yeuQtCmJ6HHk{bPYJcT}W8!i^q|JJJlB=h3rLmXhZ0zO6J^L_xEHF%Ig1V z<%o5?I(hN^x^kd8q@K|uK|Q`TSRrr+ZKsK#@cT;9E!g?uC%4}6>0zIfpIPJEi0`Pe z0fxKYTnsclfb#@W%XjH`gPqW+6UoAt{P@;(jG^vIZn;OV@cpm6Wo56{eSPfd;hJyu z3GF5pb~j2Vs8njou(}Fp>89c6{8(_DqQxR1VC*Q6Hta-U zuYoc|Q?*F6FTZBo7<*&Z3>VnF79cjfBzv@j%9&vT^p$Y7zVe^U<;K?kKXZ8xm2N{w zpX3;O|9p7x9q%8({69o0+rBVOp{jeGKr-K!SB`akb-8A&_^Iwugqvojd*HLD^RrdX zqd;S+b9%ux6~3`Z6v0V>6%?0>I*)Z2H@#4kJ#jA-?X%=ok34IGR9**riu$6;|M&@U z+37E6Y|aS)QkBzUZT zhzAbh#bmm{WfSULKD=P<>h@58~7l zv^X>&VHbp}OXFVwB&y5=wDjt=vxvW-TD88M1@H4U%an637;?*&8=TLKP~M21K(x+j z;P&gRr%DZ&QsSn*jK2f2VvB+QP1OTYyhkv)t6g3Oo9J%p+VZiLCikMtq=pg#bU43^ z1^5t0KLp)C&!!3vT{;^C2c|+5HPXLLg@-zioy%2nti1d(g39$;sw5}A>0tL^;6~9g z{-guW_OXDrCQ+g@^P~{CWnB)zds$hk^9K}+%<48Vi_zdy7oe@H^IF!Gb(;{QDZ%kMU_}&aTGcc30jFKdH!+oorpPsOe#jaY?BpZfaXKw_&fJ zxZPXT&Uek;g%VFq#IcUnB|-38D{9@G8mGi1gUgMcu?>Z*gD&e$;VI(7d10MjzX&Yf z-!ha|!D$K=?X+HnruoEo94aV1*?wgd2kMxri=T)}1TF2lpnEH!sCGKR$WQC5Qd&zZfoo@7_e?&fi0 z22a%qD~`Qp=A1RHL*fGc!ROy1{xz%1*!4)`vseSZ-4Ee!H;oA+>wAyw=e_UMVBT@- zq5=TGq`;WI^S2Sk6N0#Dr?}Z034cgcC#-Cji~2c_mw|C8RPjd_cP*nSrWDy*m+q$e zd2DcQjR&8Ai!%;mFiy>*s%jCur_h{Q+1j*6M2_V+z=3s2+dcNh2@Et}t%m4tX?;cz zf+kS_ttHo|;1he|JMD;h$m8YJ4?8%F?1B!a`d{?@hgaqCKfEew+Kt?s$+9nQX)Ze# z^C}Gdlgiu<9BXg^a>Rpt(b*eF8mFg+m(h+pt>p8VAvO^?5ndr$hzS0f0uz+gy>*){ zp;tg=^*q&}^sx?9K)8!^c97J3yS+nW?NT8lVcTNpS+Pw+0S~(j%vG%jeIQ7Pa2(9- z6g?QEFfB1;&sCB02a*KVZb0+P`=FPl^BGcLY!Bd1OYy^IClz@8pDE4c$+d4=`9g&5 zN7P5ER;%aK6q%*WnN14Dh{Dh0Fm{12EQYsx9w8;B+$!-8?EIQpQE478E zj32~c5Y0(Kq)}R6tfJ9N(6Odms#;9`bBC6?YIPZ5}dsuBZ_M8oh zD8=zZFin2AXRSc3aRKIW%RZ`P;teP)M#jqe7- z_GQMnh?B1CDM0Lg5hjmlK));QEZRD@v@A}TqBG=tk|@@c-}Jj!>?2PgwCrQEeU!Xi z>r(dSjm_^hm50vX*D%sPD7W`mJX0$j*fj6O#J$^mc0%i#wc;nEyRmf7>_kgzo{DOh z!>La->xHlVgQ{{K_FNTy0@x4$)t$B-csO`X?u&u?7%7gVdM+st-N3o?z%|!Vw9{6z z7o5qER!=3nMKZ`Q_(|J`A;G6}*LOUQ>1@~;j+X!(I?c(`9j$+n!+Z-ksVM!dw`17FpX>pAkV!bPAje@yGda9itG<+0?~p5qe%xzsd7 z5UC7g>!WBWWv|PMeDwH)<&X*NO$fY4`@>ptbvgFY;H>bNH`GYeMGyPdKUe_z&ig;91y* zGF!)iuJ1nF6Qrdbm+Ri)s*F>Ga;pKF9@^t=eNg}7JU;wvdx$1o`;!Zh%}sVOg4NfH zii(_39nj5p;cGnXi+_h~Uc*F~Vuee2K9J5|C6FUXHDmMpG_H87U7O66X-G74rpymY zi$;B0<~aN4kkmJjLq0&9B-5-{RJ#M`-K}Hs_<)L<#~i!cx4q&`+g@?r8MgkiZC=sT zt8N=qS?CHGHWoh(OGf^_25-vbew@}-x601<6>y8YdQX&y(ju}Se%DbQ>{sOK4QaL5 z`&+ifd|{lU=n`2)X6y}(%S)Kj;1_jX(Zl*BZFaM7m(^6G^p{w?l~2(~ga2`LhDyy9 zhkPa9<(F&`rkS&SvZ~vDkwn_8w?cMrYv->2NHGcjuN0$;Dgy8MJNA37bbH`0We@P4 z8&K7Z>Hp1a{&~-}x8HLaHr2OD%-3K-j%h1cE|LBSO+k=SZG?jBhFgIGmael z8-FfRC_v;J-5-qSLIYT*?~1Fi`5#X|bYWP3peUW8K!~}$EyUD^325j5+u`MpPHsj? zGXut$fZhmCD#h4Or%}Wu=-PYE3{p#}TT=4|X4qscS>v`e2#yQzm z(KkHv411^a!aHW(+eq*CF$TTR)ZG{GyWK|I2s;`Ty1eQX{)M_KAP)Ano{^@O4*zF} ziTeY)0v<#bKIY}Cq^mC~ODmOt2k}4^aMhxS1(;G0jHqj|+qo)CABZVn7ar&%7nSDt zG!sx}m%m#(KcTN__B*Lty+L>Yc;7v{Kd39T$46ET-45|X^^9CVj125?vh`y8N{QPk zcA?Z^vKowFf6u!IEBSF{t&(fW;)e(3=K&nNCyE{&zR0k5vHPU7F+B9ZN^$emPR-1! z`~Hn2c65_TgVkVtQr@RNok=84Kb3&ljR7N~4oB7BBLFE;X*CzHI5@8159jiGy#Aj2 z(Y+h}`c`#Plo;^2eAM=fj<`IQyD8HFVr?B*0n?n!T?SiY@phJ>IruBiouBPNqHX#A zAKi>Be_VI4r648ckd00VD%{aznHx{uj&Js2!oC@=++2FCb%r z;#Dl0c(vr(*9(YOkG6K^O}Mh(_iav!zzg||KdlT_|7vAm6R#kH_vTa51nwXk!F9+k z*re453@*KH?6=(rI1-sXabn(@7{LphkCI~U=pW8rjM}}G1DmHSa1*crdX>NZf!@f+ zu$5>cUWYD?T1dA!f(z#<*f-Tt!p|~`okS_lMxdiNDb?gsPiUw3pYqs+WD78~Xb{79 zw_utz<`_ka>j`cc5s%nP@g9Y2C>8w*8dKeUGwoW(nmHr^@x{3W;q(OPF#I?AcH*HU z(+~4Fsk|M^hy`BdcSd&rEg5JriK2zeW+A5)0-pVvm~4yk86SnFankwvx7ffd4&X~1 zpxe~+;o7l&`OF}*nbxJdsraKcHlEHBaGQx0EJq@0DnV&m{VlWNUVx`JTNyR7;eg7DpM8HZnT^( z6vh_y8)O#0u4+Y`VK(4TXs!CH!RX{m@+m3g_aY$1sdI`A-yEt>sFg?L1+^$co}P36 zFwsy{6F0FBAohXVMFO~8fKetW)>P;t!NYRf@Ujn>6CI({IFX@;+S-G+w%v&sV0rnZ z1(``on%=04JO9ygKD{*?^rrM{?yat{&Lop{`%tyrgY1MwMlLMKkfot#wGKx&o^mnB)*ONO!J7G7;XrG2QxUVN=yi#83RjVMo*U)fCf~z z@6UX0QQhZ&Zfp#(;c`-v>J4JMxp=hG^mdk8?_IYyYoe?Z_^Cck+2Ib_%j`N*= zFDcN*KZa7-NI&|U!A`YtFm_leA%fBbx`3gD1XqF>r1j{aARczR9*duYyip46=v7PM zlhwMb^3*@q{|{z@t*VNbz^XGwJ_}Z-ss=ax@)DR@wNY~p>YKJUQ~ag{HK3(CbQY0!GEBf-~+yCZSYM) zeyGj~-7f7%t&0$~#F5mrBe&%WcPH-Rtm7-7JiARBGX7-kqje>o@cGppF?-vNvLf=r*K~jh4XVN+Czc3iG;D2ONMAnx@SC zv=8ZU)6yQqW=9#yRY^A)w}8kG>-fD@pOB|2fDWC`%`?O^e>{3$I${_|Ev}Q_!RuXq zfO6p27)3JNm~=vg>LTWFxIZ~8@rU%6$qM;8mo7Yz(o=R$1;a*DD`AlcqxrHFIP2N2 zChX3gg16V}!fjJ*x45fne|F{~R$Itv8{Ky#3{eRGk$w=u&r!=(P`1t6FU{a07{&fZ z+P4#_pPlUNwpIn^Z}O=7s98(3{kGLtkKCLOe!SK+pklj_r8FKv0=O;3L zVlJE5Xg?F%FXh%T5unf!)!OYe`~WxBk9UdQf0q{+cAgm1W*=XGQ2ZIIA%(^+KlDjCMrsl>WYLYf(Mk?^QMNzuU zj!T&GfVhNT%EfQjgc<`*T>K}!$v=K<+n^|G{J#u}mt9LDe)-#Lu}!##s~OF$Xkf*)FAdrJgO}KZf($2PJR97EW)i&Ze7aJLg&^v@c-jr3%U@r{+R1t# zGU3^szH3fmMQvivp)Y>7+>*#i)f=hC`w8<6?P-A zZA`B@8-_Us8ThL}qt5y_^jwl|vw_8W59@|pz7*x7s<{4fVI)hdw)6;!;6664|J`SP zi`)At|L&o~SgmIXW>Ff=_x>B@l)v&I2_^i(mATI?i}0}M(gnST;(+PKxDUG>Pfnlc z+-wV5_X;uz^7VfS4o5@~1%j!}pZPBeD{hO8!ny`fSlw5<($fGsBj*5 zr3m7j(hG?QONYFq{*|?}h8XyIN;g4RBbp zS{dY`v?UI-H1XjY%QVRHP=rI9?h@ydRfDoNqL~L&Y_1ce5H~^A4W(R!1pY1dnbaJT zTRzx%Vp&Db%fLp!Gt!}{cH;+@209(!RN9Y$eyKWRL=!SyRm0q_k)zjW7Qkqcb$B7;HiRC8 z5=U~%URrNx;gsD$Vd1@>!|qx!?B!DvBquKM;A$>;ile;omlm^(4m&i6Qu%P)Da2EQ z@w<({*WLGYNP6Wf&WxDV>aV4jt2tUij62!-rx-0wbil#`+=f2-W%Nd)Qp&sa-}snU z)^U~>He{X5;1i>vHYR>jL!A$27?^{}N zGYL2nrO`k^L|hVk+*5yDY^?bqB3hD<^}>XSloJv(Nj=oE>G&Ao zRBc2KZ1}x(iFlbALs~zE;{I5-gmpNPS5$Spy}>~9Z(a>X#*)=VWz{5pP3@Hl>P^pg zSvyaiZRNy34TcSp)w(%6e;d_$D#cz`2}ey(MnA>_6E4;>BZNqvMzp|`>hK7XR!}^2 zbIFu+QYqJky>n96#iYI;x1N;^TBVO{4D$&1Rk_X!MO=`s9)1F!tNmQ1bC^chQF`55 zE}|@oeCen(iz*ganIKVy8)#+K;PkKUk2A4XiaR?M0B95U(o?Lv;m;&fcDLkVil7S6 z#ak5b0PKThw3k>2`!33cVhKUsiSL@P)R!ANWT;itIR&-p3!@4F2QD}f72{kK&PXuc zw@1RYWNDk5@7JI4mc&fP#?4qCGtb@i1HoJCaigHG<*d($9q>VXuZ;LMQmgmv-c}tk ztBJT$VnUBV72va139Q4cV#K*t;A|n*NcC457oq9z)7f^!pWj6~3og3rEb`{RX!Z}? zl`>>j71=~UMw~-&JW^t{6aY!(x98{AZFLDQp26aOL66^2PZ!L2S){d}4jR(b&N++f z=AfU9PNW1|k$@HC*b?f}0H5js3M(8TL!% zYSQP6=cQ!QjQqG-FEcwfvl)Lv6l}`<|I59qhCpp8iNp{|x*2Ybr zZT81(&Hk8Kdpsl3+c&Kho%yt8(_m6vU$!L_c_a#8ucFx4E7UgjN?s@FU<+E(lMnon zfiLHhr;zDQ-@d8@tKVDVpm6P6%cDgDW7P+fk1qZUBQ0NHadv80^1tUlH6G`n=>Xsf z=~M+5IEDnBuHEzfov6XhJ2Ys?Bxf*#-g7NZdFsHc9XrEb$I-_IUdtgVzu+4pSLM9z zSh>4M)QYn`Z5y$niB(b!ijtz@Q6NIR0xaii=&U%O)TED_f7PNPi@OmVezsvP>QnS7 zj7MWdWurXK%?@P>tDYfyO%Uuo^J@Y0jRU$`L{hu-?rvR6vHulJ2N8xXz;X=#))qhZ zR>Vl8o$(<5^&K;lFoq{^xKyGWlG#;Ku1s00=Y**MS~6+lX!L8B15yXW4;C(mEwwt? zUgKIm4*kGYK(g@fit0%O78m0#vuqZAxpR2Q(<4i$U!&bx^RCzar}vGzc@oJt2``*@ z>Ui+#X2BX0kP~ManUoW)sX<>a1SQ<4Y{smAp3g!mIZyX$nW$Vkc-+>K_E^as zb3Bsf!Y0nX^*5DnVqm_gQ9VcSVQ1-BWh)pzJKZZL_?} zykCQ0*KPI*?PHbkWPD&o-Dv)nWC}sex@)jX$3C(bG^ow8J&GlqX&3CfS&x4?CN0K9 zup#1jc$lS zf1}|e*aqD6W_N(xXy$Zr!`>$2bo;)1ubf}LM|IJzi^w1}FKvYHI&MCj zSNyB{eZk9wsUxV>p<}vv{RbXN_(d7e{j1NuR=uE5k0L3tVV#jmEyl*+^qHYIYd+rfFA~;o`~pZ zGtH$&g&#zJm(d($yYhlX`pj)m6FnUQ+1S4sJAF^_a#B&vfa&3Q%FX`Mna{@TGeIHf?2;ztCb{gy|$(j&F7vmVAqN75Y zO)KZSc6UM+QvNtw(3RHn$gLW7TFBhYbTH89F4BCET0Gm>erQM_%Q37I$Ox~r%{!`8 z`>~Ezwdli0FKhtL^!Ri%Lp5If{jWC`9l-GdA^^yDP1k{zGRiK!G+R&}M`P~S_Fn%I zyrc(rx4?AyBmrB?6exfoxp?eWzvmJqvslqRZTm~VMYN!OS67`Ad_&7V{nT*kP z3`eILz!N0f8N0`1c*eDu3t{{T>>x!=&w*k%RqU~1V#!PGLtaaK1RS#dHwof?{8PXj|ObvFYDOUa4ES16CS(u z4|Awys*w8A2n+Rr>S3hy^=dxP?yX(2+K*uwWI)s##^bMUhde?3B?x(Pn~%yhZnzzP z{3~PX9`F3%C@l25U(eTT+zVlIw&;h|5QS$h*QGZYia$F|AXlXiw37?-p+b&U$N-*$ zEidEwp6vQU%uklyDq^X4fNWed-z&C0{+6RRYa+o(e?RE#w!5WC+qP~si=dvA_&gbL zrN}{TUm9!~?1@<6bxV@Gkcn#9-_7;b6I}H(>*1v5^SuZgQrD7iw?628Fz9Olw@&S) zl|hq?@}B}(*mSSeHjI4rBwoCkb8EkSQV};SBT8_Lqesw}2|DP{%J@7sZ8F-w5WZT~ zAvA`f{8qm;CgsskrE(t*(47ZA?S4C@?Z&d#?3F)@v|1zko)P1e_%&H5{io~lsY9aC zgK)Ri+GZNL5pmn^=-erKjN!H94ktp88zF0Ar6oG$7G-shfJzqBv0Q9v=^pK`wOnQs zr#4*}Y0&((<4{)F$@aDpoZW?}Sv%O4kCk(y-Sfxn9*7@4nXm5{|AP#lpZFEt66OA8 z^O>gnUE<_V7G1g~wL4nr;>jyvS5oy(z2vWMJ%hX*ylHJ3E2TZek;K`8wxPt6b*Xh* zvzqBs@$gFtiS#T8_ts}Ri?424Z0FC(cM1&1%`_<+^qK6(^}u(5O1{KtBmI5 zovpkikkYkP0ep(QmvpNEwG&3leqJ&Wb}QM3sj@7?p&4%NAW9qz5MqXh0CYGgfw%%8 zQ%vcn)@!obp3;m)vw1&Yu}s%XMiak=RJA-<~q*bN@wRCFRSWI+1ZA8z8Y7 z3tE-N!oxgkmPWjtzvfW{3U~>{yx*~IH_@SfCXj^XXNX+Ug$)0X2D)CS8el(%1YcN9 z&#apIl&PFjR%IFuEpIHtR$8hAKr*g7`;vo4Rn22g@g}=1W!qa}q)l2);e?@3@4uez z-pcpsKG7L zzwBSE0JoNMvwN(ivz*(>EpWw;Dld!K!J0YXmVMRW+wLIUb$GaIVXJVvYMp*)lqat+ zrI73Ryqg4ej{Y&V38mbI@dO4f@)1P=3>#{=K=r^`>C(KUVC*in^!0BudthGgskRcl z)S#w2emAGI)_A)Ao%Smu^S+v| zJ)PIAH?(h#t|15u*@sDA5b!liFGPFlBPxtilErHe6c?Y3haL=D6vO6EvoUo@T-_CmZdG+WprG_SF6XGB75x|;Dx-OYw;5RemM#`Zm)51TAR$A|y2vKH4fySh!z~+0gee;O#MGoF z81zF=Wp2{l&Uw?Bl#Vx zv_`6YmGJW0m}S4%9ui&4iGDTx*=sjdJ}kHPZ`lN?J1P*R2)`x7ecZ4z^|rh8E|G}8 zHLsdU`$YAI6}&2M)Nm;!|C@Y<;cP zdj`B4H(pF6F8WnzEpHFFsm-)BBBC&%yvyFfj#bszHG-%~G3nI1 z9dgTW#cupB#dhI315zMByd_EcOxL1~%ttm}c3oNDDO+{#%3(H$R^0Zk)^8{6CHl=V zS&wNJdUce_Gc~#fWHWP`>U-oN*Wb?&h&9N%>Xbv%y9fu1oD; zZ6gfV`^$a{Z} zrzBmvKna$CjaKVih-lFD+Kb^H-P4wGO5$$;Dps*H{n9!&gBn9yJ+m?VCWnqeZ8iyz z!HTHOEh@QJEqw(rf)2onqR3b0f~q#F+^QhS(xee`#jF;cpK}P!oxdbBz!%t6*q`RK zQsUxqIlRMGRN*f*Gv7pwWDmF@^TYs6pT)R?^A{z&qs6bkr=n&&{jO5O<1O)dPSZbj zTzkMiXoegiYrzP67n24O=TmU*^wILu1&acV0#+cQ)Tk#QPiR51POYIgVShWz6{j;1 z+fpR+v93zv996*W{`18p5~Wsc%U@+Zl37cg>;`4?u^Yf;F36wlIZ@HMu}grZ*0*-o zz#Z;EKgJt@da-2uTYntUFl(7T#;1Y;4G={a)e5Zz#yTi(S{ZYq-`304*`A$nOUd0}NY09CIG6f9 z=fL-d`wW)8N>4J;5ZT()BD}@&4|p5}j+|6)<#uDtw{Sdz!~1D0UaWEyHhqnSbBo~_ zulPjTeBsFRXlf?Y~fiJt5 zPZ0P2o$-s)<8CG=a=X;{-FB%lM4|bf)X^XCtU1gThZ6yTzmp>j6taY`iUi8c=KR(uz{b*btTsm!k8{?%Me@U1=Lj{0RO#{Vp8&=F08o@Dt%X6<5xa5ZW_# zv>nc5(KSr?R)@vIEY@vR#&~Y4sZCyv##r`}GBUa)eG2k(=NEEd1+{__I3?^ba$R$< z^O^(umyj@?;d1TzR}Yc-C&Fb|6RMIm{l-%j$+6v@QWfq#TSpY#F}Yd0#tNKj&!juK zJd~~-P@RN|6>gQdbZ*Wg?h!I*y|u~z(6U?(eZljS-QsYAVftX2eUiHz#abSr!e0+w zhb-9rPD6CX&3LOTif3Ig8ayI!Eu)TBjw{-+aidNpi}sSr{|OGCpTAR^zTxyC+W#JG z-Z*ff^)2G@m}D@$`n8ixqsYMfkm$u`nm|u=m04_KMdz6BtSWuER)jsJyKQ+FFu&nK zv~S}Lp?2HS`OcCh(eeZx5}pUQK_CC__nwd;D!u(vFgU@H^6?z64+8cru=lP_!RtFJ zvWaZR`CkPW>!o~#lG;>Y*3cU65 z`M$SwO&(5%Z}}_l!drk|-T|e2ZCI{rtrx<6=W6C)077Gv^!UaGt6u!-q?*CrxOmmq zTRxWQ&FqzQyEHAT9S-!yMmI$fgzE9pIpCNbiPVI6o`oMSSsnV zcEnsUV^zuC{4NKKRAJs@;BQ`g$_U%7E-5NDa${xk+jZkQV#{E1&ke%!_#loSrx*UJ z1?F2UvvBI7+`>zb`VA>jxMyATHZjZjr1eT$8F}T~XM{en*8dbG&=>K$z$D;0Y^A{I zy8;jsk9KAPj95yH(4J&95d2h>GHO}X-q2IYi@j!1{TJ=^oSknHvP^H`3Wwx^<0$B@ zszd}{Q&rrD<<}1!{Yilx&d?>DU;Xsm=>p;j)|YSMwZBXkazbuQcEi88%wJs3s@5#F zTYZTkEs;|2d1fQryie--e^>xR>F{69)LV2{v>@P+XD7u+)BQ6=9sFL`p8LJ8g{S>I zMP-l|_ZL$)jJo4f>V&BVVKJbmHeI{90VemENB15%)m=fOR%x7fCA)C+H`7u zasNr8J39z!KED>1P4(eHuRF<82?sq3G8i~Y?RTO{DC3Ph|KHaB4-#&Pe`Z;NlLW=? zTw%h>{iGP!w7DFi+I~#;G}*m}QZ$KIgD(xf8>A4fNzW^(e_XzrC%SM!G%QSsk2P+S zvGdaPE3@KXJNfX3df|!&R3?4ddWF{idY*pds&Q-BNPgK%gFLp%Vj|%l=7-p%wOB&H zE`VyfeyK!@{E^%}p+qFDS#~(}1TSWz1ns6xRB}9@{;Y?m>+=8;%PIVq-`A-RSS@Rc zqtXI;aR6RhaRAi60Gp!dK%$32qq!W;?}>KRZZhc%jA#E9U9LE$jVQ7kMdTinfmvW`de0(DE4BxFBW3|ol4F(fR9f7$;4F&krR=&Hq@Yrr!4U#-Oh`A2K% z5H0Z02A%aea(AJ*DyY_7E#gw5Vq^h~>Pmq+fw_-RXhc3TW1?*l05y;_#PE3Fy56em z=sy8pJ0u1C2gIHl#VkH!r$FUk>!zrfaZ}Cf_TjfifIo4Jcp`>F`f4qSh;eos?81A! z|LIl#_Qu0A$M$sr>xvTd!Pp6Av`Mw$(#dXJSjEyWLFf~!Y@|(>j2zU+?2Uo2eP1t?-0+-M?wa?BhR0uMJ+*~Ji*^m zRP{7EBJ3my#|i1pH6Us7c3HaFWjUcMw&PIwlHI$w7Jt#bPCw4g`j53CN9)3)2|m}} z1SMVVs2Nss&O#eOiZSfSvk3C2i?7_m-EaS>En#%cb8m<%ky%eiLXxR{D@)IkbY0h~ zo52YTp#_OBu;kEgb~_$-S98EP3J=)K-)&15UUOGrwFBmAn-0d**-#Q$mll4G$>pjL z?uYhp+#Dyp<(BiPAcD|zs*s_~yO(+9k_#s{%aknh~wQZDMw z_F{zDv%9^|nv8Ltpu?&tTXey#Ol}Bp6)AQ}fu%IPoMS&XF){om&E3)f0Ubc1V>r!)x z=d@VK>%m7!+_5A;AYZTRZlq)SM91p(DO{wGMkh-RwFshdLG>oSBcm@^klIkXh_74Yi@LIrhcw+)0# ztQDFGreG}%^`gY%bg4CLt%c0|=sVz+Ce%NM&m(={4GWP3h%K+|E`xRDwN1+~Pz$5P zjBXk6fB0Cb=HA4&s)xU9-aFmn^l$N38mG9A0=`y)o?yAMQmd>N8DxpAe;*-cDmR{; z?;_htIADZuQ{l`kCV6wY$}QO%Q@fOY$@HsZP0Q?i3Z@*yoqOS?I6}?q!L+20axwxy zM0_;o5p257jMUq4QXZN;;;XE=>7TL0ZfMi-+|cy&#J0YLO_RbD+j4Lj>`r9(LsmcC zT&~TK)-1;N{fOkK^@U+KF1?Y0#^M@2o8W5yS+>MtV8z}<0hL+5G?=q_Ld97rID#pd z^b5D#Y6(e3oY8K<^x>tFU*8%qqVyRB<=4>N|7ea>l*{U zR@BI&d!G)z6TmgFYAYe}upaMyaafO6lvgVlmSw6Z3;uH7Ug_iW4FWqa_t6@_3JTPf z>l4RT1U6n3NcFJ{(ZuDa?_3aErwH>vAP;!CCq?{m|76Uc%;zcboxDIDryXmkmyo*B zYhV|`B}9}c{J5K{igExOsL6C##OH6}A2t{*zq*ABui_Fof1#F>9=`vwBsGYX4zq{1}5QiYwBwK0s}MtSKUS!pNi9O)4AOMM9U*T{T;1EnY0M=P2bifJbCOjjk>PyS)v~f?3)k-MVhrJ%PiW?vCrUBz8bzRpUgMewY1@Z z?<)r?D(^9HG0vsws?%R#ArpY%ZZf@;ccNdv` z?RFD+@Wcd2@8<~}x`Xug(-00{`5|e?#T<4dHWBJV-2Lmwh8nw6eEcVVFGo{~O6#RI zuB<0I4;hntdy>{a98b#0I_5Wjw;-nuQghy`>hngnZ`y~Cg(@K4X%FI^bT@)zTdIWl z?H$QTS`^W_43(wb=G&{Wpmvw#msO zkRshQ6@q-Z9<)7%wBGHaKGD4e_*r+@4VvjpU2MA#_WJab$bQ0Pmrrv#(|f7HysJTl?ffqL1Ld~t|riprLz zP?v!7^%1JxF7xt>(kbT|N8==Xn4BFRsf7g#Zk2H=chb6E&>vc<3?O;FyFEAM8~h8H zQ!07K?CQ|+Jx_WrHe8Vl<^9P#z>xBD84y{7CZsm!f@yXZjO+F*IZg!0Rr31b;Mcx2_P+v3iO)n&ahiuEcY=iHQ%rC3 zQ|)=T`zqO17B%RU#9vinyoTC@86w&v7|ifl+xvXXVIBV>=0 z7BWLdnThO^k)y24V{Z-)P8`SKEWg*$y`S&r`}_U=25+zPdOgSEiOgHvr~_?Lf$`J; zcXQBW_Ayv7ZxWl&>A{`~u%BJO&T#bo)_hNQ=&kjFpAZOrfgW>Cqzb@cpw{INIAw+T>RTk*4NACS=a?}gI&MZM> zOe}AC+8Pj0iovw%k#duObYcBMj8?6}`_h*!%{7-fkWqNKEK0pjwK>-Pmp$cCP!6Si zYrMMK^tOqlFqBWHn_?(84Su^pT3mPMw%sATne5L~W;w1D9<+rJ?r~i^g0id8PjcUe zOAQxHU)>&ywO)wy;jj%i#pwf>9FKN|{p$&!-sql~lmr}=2Pa^BFeW7Rpv)C7(E&eR z)Mw!;(Z%}(Vskp0_Lb+%Jg+0AGmd==iu_@d?0-*d`=WXz-bW9mw} zYE!IVyFpjn+9zOpBDQ_C%~bLB(T*=D?ZU1ph9*^5{Ft^$_}n+Rq3`(@`{AL9GA-S+ z7~Qy^PmHgi*r)&An$jabgm<~A!tgSyeNr^Z2(y-y)kv_CT#Rdv@!}sHE-4ro#T4_F zCptx^Wg;g(7+}g`ZZxnIl>wsR=I$SG0kn-V|4rlJU;LqcLN2}_!nq0|^&3P`!_#@+ znQ5+E$qy*?y`2C@tlqa=a$LQ>Xuu?ILhs%D#x2LnVaZWKCZ*Bx(M$G^65_$8y+e(r z`cJdf%VYa|MCbQ##``1=14U&}s%EMS<=eZsQtO&V$j!e&Ru$7)T7SMpOkHKvqcxg~ zoR*am>oMh>>oRt8)h|3pChpn5PV`R*ctFY zxd8tYJ5S3Dz8Yre7kXX+iBf1=VPUii>Arw2G*|HXM!?CN+axbQvgI$UTXC0>9HOfn zMu!HRV;|tFWjZf;xMdV=AQFd;YpoSf$%Af#afPK%MXd;T#>9rX4JqeFIqXENQ5Woj z%(TZa7bs|L+rRC5w&t}XaGGe_u}p|ceVzE!Jj!~Ef1by(h{86S$IJ{;Etou>>fGfX zK+9&lQd}vnV`0W?Bxg61W$7K40#JsHyudfzZ1s~JZnBZ4HrCyh5ffv&Y4=?1$KrAd zozqI|H$8^rX0w@s9CN5H?(nw(=|OAkt0*}F4$JtUWXHXRsu05JZIfC>JD;uQAB_pZDN#&>rr6iR zeJiu%a{x5%p{&Ptd%^C5(jRu#-a5d}N=p7jqS=euxouON&%kC=(F+vlFOOcXR?3Yk> zgzYWNWbEmwdMTU?+GV!|CTHUh(lpQiK4RGhnr^TxBDaM( z@O=)w7m&t2uU%*%XHyLx`sa3*z<@H&|JXGE)tujKy*2&$l05E?Mvk^%>|Eu@vlwu_ zUJMF<)akWZjrcsa?@`kW01_hNIrc{20udR+iM(Fy*js0jcqWzGg*CAme{|r~SM7aH z@zZ(Ew|3-`XC9l=6FlEbXZCIny%m?SLKk(NdKd4_nD*F{(aeS3ZP3tvsez@8>$`35 z%e73RU0N^E2G-9Qj$GuvYwF`x5qLfJa~|&SU^{6FJw;5)33@Fu=DsbKOp>mXqg-1@ zlZ5s`zH}C2yjZ;leoVt7c;$gz?fH-v)5bzMUp zd3?iJg$Og+qWJX`4V-8E$MNZ?7-f8JB_^4H>8k(od${L_`T>~Us)2R~jCiN#>z^7~ z%SQOWhv(($Jf{;oBM{>0gyE-mDO}JeZsVu6d1CeZaFQ2#z>!TYCq%M21hzjHo)+vs z*tz}+1U#MwcP_AZ{kpPDMCs>f*7aW4RKh!q-jgdJ^2a4dD07KEy_Nx=Fqs^%|dx=dMTJ}*K+14%J9}|!1aBXCKgQP&&mVXI5@2TiKHBh<3UW#pWc>}$k|Dyxb1yJ zHO%L0zXrvbcY)oiunmE$>eFtL880~Ey$OyRI&<>(_klZ#w&&(2=ef_}|0pC7zZ#&B zJUmWQzA!5V4HoY92@`5pST3l|8uxz`UfmN%IIDErkjVy^Lh8+cDRhg&qXOP(2yN7w zE~dKeFw4H58R@6%A51L5aZ%rcKqlMa)o#?jhJ~?LIR|8&v+066!wP<4#z#w_QLwSv~EY}JMX7Zk* z@9wgoxC}PeoKmp5*BRCQZUhcE`XF*e8BZc3`>%AHy!Lu8*3~tK?m{19vGhF$_^#@d zESJo2aZd-FIFQ>4%-aS9PG?L@1 z%eoqqyCZsUt;?M}k6LuO_;zrixn6 z3g~~EA;#u*fo=H9@G|G(;B_^ij%cZ7p1SYI8zi~fRWJfT&4Ju2D~S}0?*~X~&dS~O zDn85VRTU-Y(xLiuw<$5hOZCtFxo{hs%tV6iN64BKDz`KU^6|tHAWonQIa$Cg*zE(7 zY5=<-zl$9)q6&pH?u~ptWk%|mqNE((jOr`N@8iFiWBt@z;ZrXF+8){fg}I9LmvyR3 z7_ZIs2KpWUFB`cX<<11}2CKi1bDreL1tD4+lm;^iVO*!aAgKv}aPFDR8?xMKs3xpI z+QOyZjI`J1uOoeWueV2P75tY(a!>@%e_onbwL7Bb7im|}spum9c2f)Rp<9o|v16^C zbQlO8G)Of@XXEn*(~JQAjpbvjCkf6 zpFfx+Tnz#j@l%lwarzTNCb&@akxrZ%DQq|{^{$I-I(ZLJ1l`)Oyxy|XIuyKp+ZpZG z5?gZ6_0~dWgOuhWFqy2wVonHGCFTS^H&vf4{Z4Vq^1qDebPsB~JbIr+&N6?G7wQ}- zh1Dc|9bTAmM$}B8cWsVlu1kB@2RL4NYx)e&GVbm1<$n63Y`Gjcx{dH@b79rmtW|`1 zq^cy&xt$?9q}UNtxKnUeT`I^&8TYeAeBZuHxK@R>Sga_G~PyIYG z?$i0z3pgCMvgUH#M?(693cAxHQzO-d8p=aB5w|~T(rhO7!0>|1GQ987ov>0jpUN@R zU3|u@TeGi$*k$f8)|XDh_y)_R3P^ct{|Z@L zAYVtLci>sjhod{H3H?z1@`6_*V|-yINsiY6ankaYLCa$lv6leoo+-Gmb0m$0^Oe09 zqMr8Zr2BhOMcW;0U6d>AKeAF-Z#){wR#P4Fj&t76Tc5Dp{ExuRU-QcKmGyT)!d}LP zQXi6EE|FMH{uUNMO%GT=ayCC9W{6d~N^d0E8jo2S97hZ&6~ap`%DpF<>DIc!{ZlM! z=f~s^!=6m2-#Z8ZX#H*mlPJKlwu5IKK%4txB%gkrzWfRIFP ztGBjoC%eFnK>o8NN=#{~3c@-8E8#VU*#0PX;XGrYx~Yw;R3EMp5In^OQQB||n#k!l zaF8i#2|H6~eZlRDufr>jnkf|}QJr4`*|U=Nbx$Beg-U%oU`V;HnF=!FLg0I!7QN(v zwAYu4e_)XE`(58KTA1fY$vFUg+UFtFRE+&P?_a5X(60d&^ZM3vTT%Nz_GY9xOH*M* z4)dhdVtj(r7|gn(=mOiU{ERxbF%;fi~yrQTa{ua#^gj zH?_igwAK)d3MNJPnifQ z*Xj2HuoXI%uvYuLYL3$8wO!1#*q#H`&7{*&-m48YwP|!6=Z0Z7D-f)GdU28o+7ZCg z+*MWlsLtMrb=o^g4(u2`qgkk;mBcrQ&k$;!zPzky4%@5#DktgN0z9f(R<)@!zsc4a zz$pZ;KQXZ5hEPgj!L%-Xu&PUmHEKKoxC48n+IbgmJ`=pQ*=`CI8COkle(Ry`e+rqH zjYY;k2!V+dol`~-tnG0==l89p$w)(cc9*PX1!AZ9_jD>*kBl+3g4d;$@g^%`3r9xP zaU7BsUb;l|S{qj9WlHQ^6HajUR?XGlz3)>Yghz$wJRlo_42vQ-uaTo$m8RRlk(cFu zbby;m<#{zbSIhxCHX_%o|I+Ypx6xCLGsU-W{6)T^&Df=WO(>~wtVggTH2GitUy^q`3b zynNX(Ihm{INUe4>_U!E%Aw_XUtBJ@=*ETrh>0QHn_Igvzqrp|i0w=P5|8Uz^_M2%N zd!oENJEPQ|W}MW{IP?dgg$b3e)s-u3bY1+Ly=%F6D#W5W2mtwO==1RM`Y89V4BELN z=`Kid20*Pus0!92c{!FidOpibRCe5?aDZ}tusH-y4S#)HBKH6#49H8W+`_Ym@Zqyo zslvaZbEbeHf9mn?&2KVv7oQ(Y|HHWhV2pEiL?d8DCeH`ts98aL~yz3-v={cnZ? z8vWmmlpcwXt@N-x#@*V^B2N5Cv0TGX9mFs%$vyni;fucfnkVjBl+iubAm>jo$Qk=@ zMWVf?L`lWUdi{->ssA6x=PrS8Uj4$D4D1wqubOEN@}lDhIgmeu{OfMzR zxB_%mZqy-Lo6PuE-unTY?z3aV!3`?UXV31^ORB+EVb0^ksHSiSI@4FYW;OXs zu6BYN9!TVj1&%}XnBCn|R-C}vl+o1o8J9_E#R<1yCaz6-H}FX?B>C?*z+23vTDq|| zA<}OqE0_(1KZPM5TfIR7wgwLh1ILXWpEus%SBy{T^l`1@;78|kec96!iV3iWI2xQ? zY*mRAM%?0e3DY<_@>LISYq_+p`VP|F9+Z(F+T5Gm604kFh#VfSb#C%iS!wFSi=fli z*5YH%s4%(g4kxH1R{fxd$63^HHu%SRnC=32?>imsOh=VZB~?&mB#;AouIuxLt>WB zosHzJirAYgL$G0vPBs`K!_F&g?no@UedTE&M*bn*`xD4t@9(4Roa+Ct#G>Gz4k<}p zR#I7<-gFrllfNPM0E_w?1M^kX>h`!*xVQ>idnH3Sg&lq7K1R5x+-S~_KfR}B%2iS! zD4@+au15tV;GlTdHs5ubV*~MecSlw8Wp<~&Cv4QE!7jAa-7D<*JWT2(4X(2~5|-n_ zU^x@PTh`Wb39eZ6j?TL-4PV8P;*bivFP+m0q9!E1F(RXi&&XfJB2uH@ptb_o$k_-B-pz%uL(%Jz*=cT8$rC0vibm1H71E2Q8$e&OU#3DJe3Y^nbNn5GBtIK=;exk47 z=&7-UH`c8^x?LJ8vj1}I~w#NCLOYtb{&T^qD;XO^4DqX~$KX3enMM5;- zyX6n07A#9@nQ!t?Y65o^P~pTfK>5c(zpH1mV(C3XKT6!LMlg1)c;p$&%XH?Y6Mf<& zN5|A+S`Of!uW2?@++J^q10eY;#TTY|uPPNrl~-7NTde=WwbF6l^0w(MM4Ul+*}d#n zNvp(EPXBLcaD?kyO{!mHg;VHaNc;g7|orT<$mjs&mWzi#z?z zdJkMVNrhJ(`osT~@vkRT-fNr}LkA2RMAB)lcQ{6`ORzhwtC?%M1VrL8yB%oOTGXFg z`}?-(wHCwkjs>6CM~!GFP~i0LcZ)`7$i=RnlqgxA#7(kNh<(%ZR=<}k?nJj$pu&wz z)@J<5O@C#N*dXZ2CPbNSyOE|GTDmjXD?HG^=$q?6T9~jIle=b4l;)x*L)A*7K`bdb zK8pE(L632Ms=fZT(AWG(gd-6VjRKqr$iMe`7n%2Y%nGj*sk)tbE5e zJo!y+o2|-tT>Y2Hk4BJ9DUoW%mv35E-Sx67rK1hZe>+^8GkDcbXNfSAT{Q6<={!5j zDi3)UIFRRFaQxB94R%iP6 zw;SAlun#D2!+}B$u_&oO;CeX=Em{S{Wn+WPt;iL9+JQ@df%94a$4!U|LLi5!Wn%1r z(jFsx=tENv6OuJv(Eko!S7vfu|G2SyJx?(zhdN zlhP{!9X;Wq*;mGdfRK=e|EDvCa%HxI)6ka&z#g<5Z^z;$SPe$h; zMc>?7)CW&KIhX(eT~hCoK8Ywf_Dj}LF$v)3sguaZA?UDZMSIn&XfN8+E4djIgZ9ZZQ;-VY1- zE`4r2Y*$fS4EOmJ*Zfy=sWykNVydV#?++=+q!e`PDrg1OBMYKZED8HWTLNOk=Z!)z z>W3f6pGtqI6=vf2m7<0H(&!pQBZg2>f5L`=iZ|2tCl_HqrV5t_3M4Z@>rE%QULVEP zv2@$S&2q^-lX_5z)6@(qTvP#9&*GfD1%0$^uH4o7qhdwQrMTLqA5gPi1uNqssEPP^ z>ov`u&l@*|%V`H?Of74yu2o$c7v&pW2q7P{Y`f-j{%0i+VFoL|^(*eTOK-Rpc<5%d z61cN^ZU+^*tx>qPrnY`n)iOL&4TH)3KMK>s2##`_TLFzaY*fB5_J5OxwISR4&cA~J zSeDz(euaMba7f=Q-4NHlnasPoqW?EiUukLarm`ydK^<4);CJxQeJ55VUG;Tgb`q(= zKll;Sc^ritR6#fe^MdpY=;Z@s*13a?tourkE~$I^wK6g<*4Di?kIB!Xm-l1Qu)`}{ zPFb{1DGT=`kl#sN#fo=MV|})Qn`i<^fQ=;sh-(DDTdd5$t++0!xQ{w=e+h^e2noo4V;0r?gATk+Mo)5M342e14yfc zgY|c42OmAviWwhrLp0H5BqQsd*6A)B32^CG($wQ)@El< zk)Fi`t82%o-A7tYwmicv{^V7DL4GZ3h>4@zYPz`z@74>ZrHXF6i@<^qmc5W1dEt`M zqU!0m!Vdn_{0YiF_1%x!G8hRK&e)C6MyY>v7mT4YgJFaa_PM5G0dWv3^=AO*v!3nl zTc;#Zqxt?WZ*NO~VlrW-N64EGuDYYW^d@z*@(g-{EpeZu_4HGq)tR8t+x|EO&~2k= zp@e2I+}R(~|NVv2*o`xzY0I0Z@9w{o7f26D`c;FC1Sp|n{w~Fhw;=_HmkO5YpCurb z=T_f1tzH-Ec((cxyhKOf{oA31@&G}RXKY<%vH>pV%+<=o1w*>u>EvItlWPHumU@P} zJ9)|;|Es$EPlY1rl>eEF;d94R%<>n`=?vi|EFnB!w<4^h?}CbFSWd9$1Soh8Nj2sF zr{JlTEwN{2+n$wP5p)58!U-{;0gj2IBIm6X@_5!q(DWUv1tJV>!M7CL$M(^rTRE5`E5&CL~j>qJ_5{1W6* zd$)D%oWi0#BzqplW_sHz_Q*x5=zMdEyho5xzh@IjKRQh4q+K}Z{pCe>h{w7D^YCRm4vh$58^Bz*qP z-kSly?XHz{3wX=+vPE|9stuH|;X3LAgQP_uhF}U#qjEb-<3MGPqG}M6<`ZVp9#Z)S z(Ix4A+BU(<+H8V^IYS1Pez??l4s7V@EgY5P?dG<5kA7hBp1ni(_@MXp2Sl&cQo8S? z_~b&{bBmS%L8Rf-T30p-$5CJ=16Q<%Y=Awz%kYK8vC~ z(12eJ*A-Qx0~R?|lm*Zl4PofG!4+#~h^^<~dj7I0Un<}xkAEj)iOEZxAY{Axw-Rte z9Wd~&UHLLDEUgg&v_`2f`SRw)F+nFRLAj9S`6p-G5+-(b{dtHUL8H*XIzpEQJUem~ zgG2REqHc#u2PtmmiR4o|U_NY#3tFxw{`)|u&jCp+pCoonl> z#NW9)BU!80YgB^dR%i>dgB@5OzL>b*!B=(74Fy#i6NUtE{QHVn{fU1fwr>B_nZIu; zB`n+c~KqeK(=QS0@zk^%-$8T(kn zSuHhVU|TDg)1Uh_UF5~js2DG5Lc5;ON-Il#A?D!i$`!GDUYYo~T6ImVddZ;)=X#_L zK91vT11v2wz|!g^MUvbaVfqtCFIs7uyyl@2+mYfSvBVUv(Td-7X`uKC+3h4h?vQNnp zZs#u+izdeO_{tUOiLx^yd#nB6wOKyb{fjpFdx5-e$Etmn8NZA*UcBl-5vjgB-W0Yj z52vui7v<3ul1L&N4U)D(IR;A;`@v^ElEb(0!N2nEgTCQ1ytfUJC`M+`iK9L`TZ9h1 zBCeYN81loV4GlOf%IW=N7XdX7kxn$Zmtd1E+$RUpExq_@Ix{Yo$tFbE%Ti_u>J^v^pfU&?8X)axm> zZETP0zU~CM9Cn9p6#3*aEbXb)Y;-}t7hj9<#}Nr?xY5B=Nwj+2TY;x@zJ}(Ifd0a% zos--5o#wW#q;V6Os%)4!E)!(5$$ml}7^WZ(kab!dXEnfzw|HnOb&N+-{PcJ6e~*ZH zf;`zUThY_eNsyZJCEBQ0$~)b!r-zt^P+em{7C?Yjc|Q5j%J6$qiK0Fz3|aFo*jbz2 zj8ggHqGupdb8>9Mvq)?e5v}FAG;{N94QLJ7Ll3Hwe6S>)Wl$HoR+btW#jQHFaCG4l?&_z^ z?tbTfZ^4UNKexn;Rwdm9IIqF`vGnT3khtGG!MA@iZYPYs5C7<7vXRXDM}2{0P)7so z`=?orP%Z%Kr~26=Z1(7MKE!f&b+d28kR1aeOy#iS%Hsx+<6}xGS0#+7*fNLjR{^V3Vjcg@n+LWd+wM-v(Tqv%^>`0r>~b_k;tct?ZCBB8{;K!T;TpKFF78AD1RWBrHp1zoY!di= zQ@nFUitwGB*}&Lxg~RLiEvR(NB7ypnXckQ@>E}BAB6W`Afkw~aQ3}KR1og+>J7U2T zRBoQPl8C)(%N7IdB6GpHBNZHSR3!A_hzOKr58I@of3tc4MwGL3&|YQsN0{gLXZhR*P#e=Cp6~c}P|% zZB(!R#O$7PR7h)ae)7|Q919w9U=xhmagBX!q1tOCy#({{tGl@%YJK?l*%FF&{o$@aK(PM00 zoZsdSI^!>X>-f{S*nY^p3&BWJosKAy(zFg_Dk((2ch}oRv{2lx@f;47)=w8gG-KyN zYPH4Hk4gKIrw{+z=0{~kiB`e;L*}FDic34;@-{v}V@`2_jcgfQ(jw%&fEmUXRQXM$ zyWK(d#mL}qX2snfVrTqG)Y;cz4gAAz0vqnx`m&0l0u2`t!q5dAN+{|v#cA8+}L-53HdWZZpSnVBGc!sq^SEbDq}lo+zzKr z4yaqQfH?E!;}Fc^hrZ61{=x!g%GK9io~R)YP04Tzg3W0nGox$W>fWjFz4OKAj&&ca z`nppFWe5q~Yl_#p8UBHpUy7 z)(gkGw0U)fvHB9fXHug?E1{RvBI>Yu~t7qnC`5TM7VgQTLZj)GhDIZOow1 zRS2&$1)SG+YT8LhV~I%!u(O`*ba~ zt&;)oGezK^1^Zs){9CM?Q&24;+zdTsqW$PLTL)G&WSF;syN}P}>D_^GRpK<)=*=oa z>ciEV74P~>d{eW}{^B~-Z`MQ)LEP4Vb}lsD zrTPu@g39###LJ*k?RrG;BDJj=V3bZ5|6;Oz=Yl<6BJ2eq7TeGk`Gch}=ND`xFOJU% zp8w!IzbeD=3D(dXfd63)f(R_AR@0ZlbI#(Pfio&g(S|*s*q?gnZHSq+1+SLx-!5SF z^aXe9pXMi|Q6FKVVY0`_JeD1FC%*6^72NAXd#fh=*0;rF0t)dwAcn(C$*ifPH2W9I zXvTJOBF8#Gz!_XsmKuqYWoh^KZ4beK;PP^Y>sEW~i8-~qP#*PgeUV};tLeGVbR-M} z6x(YBSH!nPN!~#l#_L@LrN$fMDJ>!(oXT}yn!>>|OSs z!9}a%>sY#CbOTtP5S@6SBV@k8NxG4=l2>r$e)&Vt))`on^gK0F32m|>zhr=bB4a(` zdV8bf_f~@U&*6Ns>qc!ZF>080tO&g}9mcpK645Q04qE*2l{qfeh34sdZ=aVK0Gnh< z)ANWQ&_^pLer6VUx!~v$Sx%ygt;UQKFBlv&afi_(rGHADiMRx?@HsBF9b7$3OR*h_ zBkrY8V*gQCGQGE0Eui+tTyJxiMS=S{%x3TDzkOe)&Hc2*PM|ApWdaemf~OekVBjWM z?6cQ-RioJiYLlaHP@;UZ-&x6Jq+SJ+o~duG6L@aDK6#`_<(4f;hl96$Je?Ix9C+XJ zV+XwQL3qvyW#>1;f(yyjOrPK~@w7x<(YFP{`J9B0g%pcSu{o@1v!!tLNArDcnW~?z zijlbOZl#HX;O+Twr|KqfU=8G3x@=jpIm;1x`0{7f_jf$2nN`V^%<11(Gul( z@R@h(GLCQK%S8u>cz}c-4@B&@O#gOW&P{8ovXoOL1AnMfkzjkCcLzJ^bMj2k1MQwmpXB~9g!=zw2vv;9G0Y(ki&vsF zKl2{c7334TH_khnGu#l#oTIC3UKz%No!TEdf{Yozki`JzSiX~cc|VwgyGc0}&>h4Y z@8oGD@k<#%ZIT*`8Y_)Gp(pW2)0iwth1F3uc?vqprH`QUTJ*9fQO@V8*cU?$&&x&= z5Kc2Ies;)rL{~-!v|o<-oMq-8+V#zT5&uKy#$u*b5i&(`kP@YG*AACH3@CFv)3MRqB$Z9OAG@f%_B{%HRxuucc5#}mUta)XxFcz;%k8{bMtk&*>vI}umpk}ha4hftz_EaLZ^-iQ zp+)9BQm6#TqpA|THn>tNkopIg?zfq>wCx16_%iwzpP%8a{Vv0(wS0R?{9VF5NGibU z%j9U-(%07)nrcwxYdbWkKYeO=OFU(d*vwij?`;xcm?IfBU^{2-UJ}4hc^OalF{KZ8uCct3VC9-Cx>;K_n zO=?Dn%+@)&<%6(2HZS(4#}=xgoa8%K9gr}VA3!4QwPOk55k$^x=BbEyVB{|`Sr|AQ zb$pM_pi(};u}YZS?qrwe>E`d$xucp~|3@_$H3$jX-L(~MVPX$W+(1Xn!vc-J7$bLX z*$!Pwug4d%3Tz7ny6u^#d8f&&pvq%~3L6PF!3}YX&MDf5tyiE|cv~{+OUra-3iZYj zZ*Fi%*B*Iw9WHYxNUp0SW@{!ij5|dw`H{RI9co!V6uQt9#Elx?Q$$#vkUH2h9)Cql z`}4EsE>)WE`<9tVnq$vkFem*`;qq#&z`um74DKl!=b-cA1=qO^IkOENwNFoqlHL@) zezr$(CGoLk%DFf`*1e;ibd@kQ=e9YZK2L4C zg5A@c@+1PhiB+X72Qc@tgJ+B11%-MH=J{>JGsFA@V~65Uj>rK4fbx8JMYcm3Gj$|I zlsjj_n5wS?!*l{ISy2k=PTi_JM{PLc#>qx0D}u<(3(s_FN*sx_GQFj1B60-}Q>w z5)TZQV>C6dmm2??Pm~adJ1()WWiNv3JoN(eOl3;5i_^k`rZ8kj4fpcA5;g*y-W~Z) ze9HZOAjQl zbGU~V;%I?mH@8jS%j)~xbkY(bdb?ZQW)7nizz4R2$g0<)@0D1@?z3=CqS)J}EvOm% z%K|v$iYR$#1Gye) zPO8D2tV$=GkUeGFcEumoK}@6GZR-^J6Gv1j0k)5}QdK?Uv^YdA-zef6?0XP6H+^3x)*;uwZC72lPT~54 zJbWCG-OfU+sKY~z#&=mB^+%+FtM;YI#P@bl>OB0ZX?$Vt+{xUj8O23?iJyFW2of!M4k0+V#uJS$3zSr!Q#O+`GOu$X3>|3MXxQ0 z=scxk-!5Cr3p%TfRi5(=H2U|jQGPJT4DyG?>v8VgHbt*)=vZ6U#S4C|wSsD${4mak z|0jJ&v2Wf60GB<$ojuORh&_R5HinmKV_Y{=`-t51WrSmc90@bYG6ES8~M>WkrGYa+o?s|L6Q+TZ`!&Z=hYCQSv z_B~ZFf+bd?PY%dY>MN+ao`T;@uJg{P-w4=$AMvNwdECF9|EF>nTXPXc?e-&ix`W2o zO07IU!noQ^VobsH^DOi_}#2hXO){sCyvs=vhr{G_0|~TwqTW| zAZQz}{R0Cr+YUaknEpK<_)@;^6T!5L+!Dt!oUeAga`(u{d5{3|@tI?z=nkF07Q7uPd~9lNJdNDL)`e)+IRi1SR^q9EWL2B3%1 z7Tg#q?Q4+v%U|AvkFV0P+hQvky^F^bm(yk1xb{YvcPjfnZ(esbmwK1+C06CM{gD1l z(I&>WGfeGgjfbZPG+`HF^>~qlZqw~i=`h~R*M0+?d-E_;av!h33r%-MQRFrk7J9&c zn(lJI4#SgGw{PRSX*4_$aY{Dd&L2Nt)rK|OZt(;qc4tHX#_*ix(|Ng#cFfzAhVuPI#eE8fph%6j;uIAW{pyH_(EIF%Bo-X`17%S zB853?HjU90N*x|OV48~H3IZ#m7UAXJD-#P^SHDf97}qcf@tv>8fuX91z{@Xq;(i@S zY&kW#g?t15cpinx*d2|uhT8;7g-U7|ACQ#f3+b=AO$a838iX86@3g8xYO+?|lt%dO zF1LDyS%uXa-yY3({BeBKbL7OuknqMjqmp>x@WIy>ZBg+bomn$)F0?a_f2neRwTjc4 z7OFl&t1fn`dn&(pzv8_D%2yIs16fzvo$sz(<kpEPLe(~X;mnb*-FLYzM zU^x)MK2Ht1;TxLG@~@{atKY`l#sjCvE)LvXI8Pkx+^8%JT^WLfiFu~fd_Qar zo|i)R#zY2KCnsZ>$@K!ji3f#|cH)`3kRKf0_9^*Br z!ByoavVevd{DzZSaM2#zV2D0HpsmB@kD3nje2A8A2b^Y^Wf@6mN`>tQ*oz;D3ZqA0 zs2;Z{&nv~Q_FA@1Xck!I>^95N+$=%ItnhEuyF_=NpCN3iT#QQ=R`IVTtd0N{xmfyb z6M$7ATwuWZF5PBVVxh<#01>e~%1u?v3=k22yiv?14HIL;kgns}Lbqnoj;5VO^Ds?5 za$7~B`i9(Gn13X5V?1$?k|RkZrU5t>Q!QZCdQd7o)!|EH=)J{=Wi(mhV(oAEug=G# zEH6K^+k4v%-}q-Sg;zU~!jZ&^kzWQea>l22qu-I1f478%6l#tSx<^4bT26HtFR6a7 zujFLknB`-ks&N2~b)jh|bcl0%?d@Upr=-8`pGSVa|hiRjJ7L&+}Bz^)xDRRa=s5@C{@Tm)RxRq31#<(*TQwC<_TJ+reV_BxptB z9dyV$b87nOCCxs}-N+Ig8 zQiytoWs2DELvB~umvf}>X&zg;YOsUH@;u!yWC&}#MGXkCc+lABuXl65Z=hY+8a{rv>u9P1 zktj@@i@3vx?hgRmi9IBGi`9GNj*s&)^KdIe2QFzsuAQX%>9=XV59ZGMCDLg=CWo2N z?lXPl@O2Kg*b!1%B^i$}fc~}1U>Y<$3s4(|sbGBhH8HVps z2GoQ$60?7r-czW&neHEYBpqnpLh$@)!2&{Ez*N08XiBK~OwNtmr0tXHz7SPwY)2JE z%csutj;oG>!Eud0(OSMQC%z_lr7eA{sV$m9)-BjBJzGFNyZ(!qFeUZ4l&FYtkyPmb zLn*2NsRCJVr(R-!V6AP+7pR_2eb_Xr1v<)(vpVxud%ZmL(}s16wOvAEwGw2!d>AD$ zNUn|BuIt+zduyCkcL8$^k>p|@1we@Zi;VRKU_Xg8YBG%C(CQYTE1YL_uR;sYTUBpN zrpOH+Ecd*B5u+~hNblNFSrX6ST)12K0xZ$CSHjzJo597b^SN$`kzQEXeB#@8Xl;jo zc;Kh)$~9nPz9uX8Tv9iNfgD!XMjO}PY;`ggYpCa}{^!KEM+cPGSYZ{3J;W6;ws6Oa z$-i!7=)Cp&e#-l{jGZNgLsN{z_Hw&8WDB)5ikP>{1vj1Na%4N55?R6(ZggCyB3O8H z0~lMq`|yEgtMzHBu6ktrq7Z6ZM^d7zGU5HEby`Npjr&`3vzb^wzm1^6x3Iy8Ynmuv z;%EJqeSP*ngsg8@#4YEx^``~FYgE(@ePoA|rOD!Cg&|EPhVUpq06^rMJnfRQ>>%aY zUsd$#=auO;jv{39G+&vWKzDM!q`vC_Lef>E*ukgt$-HCAiac9tBP3|BFmcU0`b4nqXOV(3c(>$^BLu3FD`g#l)srn5?!i>lOEI8aFGm za&^+;(1WvOVDc^eAm-mYjWeGxW`Xr69jKsCqP)mWd8lSW6Bm53qR7u>Boq1e54!od zd)}wqC{kXXRvTCca+~7WeIxF23-ubtBaNPs#H`Nr`$~zMXK@c*OFC$^^LRoUxX1*B z66p3fcRT0q<&P-yycVr(NMXwewqh#7RJq}-J}Afuz2_~IxeQ?i5XT6dkKJH7o2zk) zx!%C_*=Ra3RKIH9^l^J$FW)}tN?X-KkEga*U<}4-3G_jJ%*r&v`JNr9Ju9Ki!ziyX z*d%5Q3jzvh zKnzH#NDNk)e5;|Js;TwLI!!q$otNgOf3y}gL`9XJ&^~(lpZ3ID3)BV`lj)Ph^v54V zW7;sKpTUg#x&<-kf7AASW?_X`L6w#5 zu{X{z_-~D0fr~c+@g!T=$gQ&AozopiFH9i4l%#Gz7u@xCK7QgB<9b@sAoP=|Qx0kd zhrS|Q&p{i>*ga2|FG`91>Fu=iEy@?G=c|6}e>-SJzD}#Go1^K~Az^1QU%zwF^f9VQXZ-vc zg3?TjvtkI<9+yntZSM5sE*<~$4=}6i4=`)mS>qgdj(+2~aI*2qXozK(6bi)5r|2M) z$O2}uf-8sr39f|ye}gNiCznnjVkQh|qVN>i;VpCC43&eZ;!7MrHn$VG;Wh=$C_c=2 z*ts~bdUjX2fMT3>GxA~<7fra$oyE@jRjjD>h6oFaJKJvxil6`6F*M6+N~OERR1k z?R*c23nEBXQbj0SyPxxezV8S@-@lCj!sZu;-%Q{AyEU8OudzzKtQXDnrgz?a7Jk%1M^mx zFoJf`=i2F1w6e2iCqyp&g0}z~3kT*;3G^-Ou>AcBbILOzi75jQO$aNkQlqRQB+_*{ zV7#Izc)*m@v`Ib)j3(B$0y=h$zj*kkqnmC zsYB3{9DEBn7T|nu1$AIwS)nq0gLo6sk`!wj@sSv z=S3AR<;Q0w2|dQmAtIk@FjePBdv%+u5~54thTrgy0-*!$6V#ISfAL!0m<;hNuqLlL zhlgQ28pf{`k*SJ~eAfsI#!4Tn+c9%eYQMo7oc{`QU;_jZ5$bD@qE<@W`XC6bNPLhU zD+Z3y=b5TgdVsPe0~j24k)1TG{!~EGtQk1ypps1Miu-fZd>XfC z`k`*4dr_{eVHI=GcvS^*%sZ3^nL>icTf;=<{s(0q*o_khOK_I==v0TyH{}hOP&eOd zxAxV6Z+|FT?*E}|1;w7Ib*5nN*f&=C9L~@RTlMoNwvko(OhEdOi!4rZd3g3?Z7V^S z!FxJ4_)sbA%(jiz@2OPNpq-vS?uR$EjyE-J_&V=n$a#tr<$WIwgD!aE5$RuKweSwekAB;J`S%5Xmls!Vn%2viPGO`X%=E1QKj^ljpN3YlW_5I=d zH@Lf<+v9q>UN6_LG&*GV64qG%l(ZTr@Yb0sz|s|+_R+PPdy+c;lK$e%=>pAs^K{E~ ze~nm?Hfv1#`@CY3jDM@z6JX8L*pf3c>6y4Qk{SOc$u(7ZqD{?ANT06)=SmCt*nWueo-3$o=G}Wr(Lp$% zJ=`4|5#6RQKG+@ov?i>(VnJaIWZE4|b9dP6B2>~zIQ(o)iu0{#jllUjW#G2e%G0<| zr0oeao5noV#}(%MBMMzS(shWScWt-bD;?Fajm@a$JoVdMm>& zj4rDLFha1xfq_hukl_SY&}VOs@(TC zFDiPQSm=7%?c^>o(u&_ue}g*A#yxKGn;Fw=GG*iD@My3@{plK^A@w8+R#I&lRSS&; zL4Saf8!8+sY-kJL`p4i&VXPr$UN*DT#OQ>0fbX@!CFg(Y4nSMR{ht+Q760rI%YKkP zEtcyU$p<`&Hp-9X;!Ez*vKxDg=kY?w(k7P6KFlUa9aDm2Y`E-u6mBvgJKOP-agYjA zhjRgRl0_o)4a|0Z%!6=W=Fhp+Xm<2Kt#VShQDP$ISV|Y)lbsEYGZcI}e_ZTlnw!i4 zTFX#*ipr##Y$sp8)Uc5E6$25mL)C`$G~Prp|a zk}&HUaF*mCfe7%vWmtbkUx#fGkD5}v7&|13O7lGVQY;xG0C;k~vU);7#Gk0LvL~Ke z+|)WRxpMOBY}#*{Q)R|+McFIxj5dwf9XRthjW<8k!cpD%lB!j7a?5$E{X>`Ko5JZ> zqB?N&uV=Vt2Xysj-IB`@=Z0rP;J4@=mUe)&a5<$(4L!6q$=l2Vt+D&X3LGq!uYcNR zCG^Wu*f)$&BzyW(pAjV>-pzKx8A7KKvLNVgHO?HXC1|B6(i=!+xsx;sYUWPkjJE#D zF?+_;BZ%ef)v3fctt~Lv_VST2U_*>3`?wS%(5OQ`F$PIKGA&w1t=wiTJW^AnW(B^z zodwZuDRiduK>~EF)w0`f))nR01Syxm{r0Ha7MyGq^fem^yL>>~LY=ofplvDqrENU{ zw5>H*Jn>Wiy_Jb3UHvL!{3POkR>ZtIX_)O(-}5@bjCVqS#x4-H{kikKKQ7!8SAEZY zL62?(08TBT^nt-7$0oG|xF(@zg>CL1zVuAC4UqwV@0;!e;83bb90vT)jK#K$g+W`K zH3Hl9^Ip<8!teRx@##vwH(ma8=vJ=3hRq8j#jXqua$!3-vy)Y*Q*K>^IPx4qrwAH+ zjA@1<{S>cDcic|U9k*w1yA~#t>jB}>Y;;`4OX=r|+|BKznEkzwg8QIn*|^ViV^YWb z$e}wABw?-6O2*LWmA&dR#m5vnxB1;^tB6=|C*3)5U}kwv9s5zvP>^)@Xw#L)%X|z< zQyF~aV4%|rDY`)#G!&cWgO{!dIcbJEeAK({0N?VLC}-nrRtromySkmIVu5TyP6+co zv3`bRk(+DiAp2+AOC0>Nk&IiwHCbBn{#ei%W(WNM;md`@Yoeo8g>0L}5Vrp>q?~ST z(d)#UZzTBv#_haKPRys+SG~-4NW^@vwjk`CmSB-;0G%_8;h~BiwVtBrG`v-P^fN@?{ zziS9Eiq{Wh8CjYXY*wvW!61=yox85d(ZY!5!jkK&5c+#x7k_^D;p9i_DNo7oS3n>6 zN=Z6x=qMY&mPZ@?QQIAV6Z92@v*(aM_grTvA?lIS7ynlS!MprKf|%JpDAin-w)vN} z9TKbbi-p=#=t)n8J~A2s7bHDrp9%j#?ST=YlLOYZ=Mhcw ztemuEBDDRfuVrjD7Q5Ry?LU~Xx+OGvWMN|e=0Z~-JC_Y%Z@CYm{i;f}nx%HgnN7^# z$&j;9#p62Gul@fPRA?|p=~sQldYnm*wthbLbqQ@sdylkKE2yB~O!FD$*+X&Hax?@h zf>Ja7^JO}b$elU3)#$zvy?%ND`2(Nu^(4r~9UPK$R|y&UffnraI}-id^uD}h72WlM zw2}YP+A}*b;!?qL+LcPbBpD<;2ONt=MX<3atY%@{)INb0+vUO=9xZg@Epzs+-P$|j zU#-q+3C1nElDb{(8nhBWP{SaXj8aMN;&TvY$olFiawKYY{l-;%`Q4O)qFNbUK$p{% zj~+fl4SQR@Tibo|$;Sfdh5trE*#D)1!j?)TLfKt9@`tFE=-xrway!!s1BtM`! z-lbb#6qD#cu1V!?z3mv#X#x|8RC282F8;@*fVR)*PcQe>$)#h;{SPqZ&i=KG&#EYn zl{9IzPU{cElxW)SC)eUSrxxNz*R=AxuOFt&-emik348dC5bAh;x3^{7+#MgmCC(XU zmY;Hlw0Wv{X7cqVA*V@^MN&L@b&jHQ5TH1}@y$l5cPR?M5b(ThZ#*d)KM{XnT{``VW=hL+^fE^0noT$@MoNmw ziC<6=e(vKZ$2EUp&aqn6H^=+|KoMYYftl;|K^etrx_nuR9o@|JX8U7$VbG9VdF0EG zj(-Y0-?g%yn_BM=v>VTgMeuVz=HMcU`w1bNc|jcoOvk`Wh$FwMHEc$md?NN$6f-6E z8`R+K^nlw2&Hrnt1|_*a%Gq5f?PBODX4RkaOMFgou{-Hi%t@Fkk!A9#Ic*_8+`5jDTEj>-dp8Zv{U2Bx!8u2N{ zH{RcjG%m5!#;_zX(DWK|TE2M~DMtiNjC6)*K6xeM>M$&k&q#7RJVgPGlDG6{@1A`U zcq@+e5xgSMa%1wVK5BqEQeJ#TyIn?hExqgxL|%vbM4$X~yY@FIk-Kl?gyj%G@AE_= z8sVu&_(KHoM<&Us+&d(I<6PFtR>MQ)g0tC04M;+aV@L3s*{Xiad%vmD zTj4IS;WVz6{5Ly_^V$6;rJmpwGEN4`T3K*Nl?Us?rVth03gt3KSv`IAnhuX4ARLM_ z>!}QNBL^MMN3=WCG{4=3QG$G`YCJTR5;xw?(*FU@{dwEfY*Y=0_iE^?qBnRH`B9|_ z*~>CyZE3h(DyRZAP0Ro_2N7;@oXGYP`_$K|0p-rsw&Sgt2^-1vtj65qH{C={^XSn~ zF~M5_10FM6>urO{%OfgMan<>ycDUKg>Qcz!<; zBwr6ONH7P+E>vm)r+G>m*ZmZ_(;Ok(`-;l_z|LG?JEXN=)3h9u!So18`hW-+WR*6rI}r5SkHLE1%3E;*DJGa>!4? zN~}r^_$WvqSFB&`!7{d@tJC2F+8EG10<4UtG+)yvt*!rbzBYVhZ|Gczc@IoqWa8nk z32uVKC&3ha>bi4MHpNCB66y?EDH@I3b=0R&apwB%I~c7BLp`3dI?FKWbWc6>9H^#J znNO{D+PWb>vaoO)`o*WCYDVP7HA%CcLm$^Uisen@wRY!R@?+ln*$}8TC1vr*!NN8& zD(btw(Lf7wbv&}_(7a%X0DwRLD^Grkv+Wq6{7{C~r7 zq~+LnSj%RCbSocm{CcH`s!iVw&aV*2X4znCcZDweqZ27|gktlE+qVg`>#6xcVNP=s z<5n9*Q51T^xqImM$_ixlri?+uZXybu=lNu3FYN>g=lNOhu2K%h+_y00zD%2aR<<`k zhv}h)z&G#)vqmkk1+m_TBiTMP>twSP1dLOj4d^f9o6@t*4n_(^O%8416$_qZlptjxS0#8#Iq^JGH%tp;*hq^weuCU#>n2_Rma^u>YW) ze{_vc+CRAWwm1I8N*+6RX|LEz!41i4UZAI@ zGlYIZS_YPvkPp;HLJP65`yq-V5aJZe+c)a#%o=kq+e9rM`Dcp^#xEp;$Lvpk%&kY$ zSjn@}XEsG2W=)gY3s8orM%gp>aoW@7$;6XGb3CM#$?vo;u~YD@=w4y7=q&+1I3lPu z)G?jZmOAj`_lE-=-3#dGvXv%BW6Il$2U`=aBG;6-jCG?fVT%PYhjt_L*f!&DS-*7hzPYP7GA8UILuCZr))Irn_JCW z1p^8ZeLmm$v-(x2N{ty!8DEO#&UCBvPfvM-Fsy4Oclz-&lwrO5!a+rItKDRCiJCcx z2L&G~{>3#SNMuqZYVNPQO(RuJi9Q$b@I3$iy044M-Dw?9k=0jl(aa>A|H!e6ZM@CP zpeZhjjrioHgnc~8G{G2NYM3Cl6-ExPHJ15|ukx|Uj-3kj)7{WYcVxMc?=YfXc7fl< ztyWX%$2qb^S`1Pqe{7tukgRJ=XKf__)|MPz1(7xRp{p4i`euO1?V|E=@x6iVPYDiV zrjX0X5A%}aR>o;;ExGIw72dMH^O0`?_69>jy2@1TtL-K>J)6F-Yx9)L9Ol1P$5!oF zma*TaFeZaL;B0kgG}LB*6VgrJs|Jq!*+;Gj4DWnP9@u@bkUg0(9VCAgZ%30JPvM&v zzF~p)iNNLuLwQ1j>yF^36gf7-e52pA)DG$qS~jjpz3MN~JPAY=mR3-w^2qxlDK^wE z?m=%eGj8_Dm0#E{1|7P<@|D5fVM~M_Zk9o1$U0E}TwQ}@teNkE91t++zMa2`vXBx? zU=zon{3AF{dF%x$l(Yt_ZAdS0w$4;GrEr{IyC#yfg8ArvZ0#Dn)p>T0DWW4DW>9?% zlLG#j4u90|UGr)ubk2ud946C){22aP%mwmQsDVZY0-j8lSJqOj2JQ}o?wm(QPe9Do zWPpZvAGplhLylNH=-gfI0r#Ot{tm#K3u63iUiS2!td!#J?|Z8pdJ_If$4u@*ay?c_ zFXo?%`a*oLsm*#1_`b5tm0UeBsYcmp*Cyy}%Z@ALU*&3DRHN=q$giFOO)~*p2!~Rk zT?GS^N4r(8`|Ns7%6;1@Q9M1)EDBsN|Au)0*NYAH{JSe6`22#7teppgN@hmGtCGrf z=Z@U@Ts)btyX%(W=q=D`zcfswZH?v)y!SLO>aWjCqKKjC6`v}{?;j3%HTU2g*8@>+ zL8mpuzil)l!xta9x6U1Ql0-FlrSHOPowf+#59GDBRb(!t{=u)Q$i;|9;zvB1KA^3X zMwA+J*t~Q%o=Z#cGUB7^n#4I)%h7ke-(DOH=kD`N%RZ)DcjV*Tequ(WH#m`csDF|l zSBD3}?t3X*4jx%O=a=M`=d^T^uCvHZ7$rsc4LfyS;FjY4G;5 zY>Mi(H>t?1xNz59v*&9Y?L*5n_NglK=1cFQi+K;=Q=LjNZk&v+RK(u56Qp+8&w8gz zAbQv*n}=0L$X#~YLqA`fti+bqMiJTI$lRQs%PM|CW0xTao2=s zp2nv4Eg{EcEZ;}(<%TNAd*eSRYnonhYiw%9g>ipj-qU#fXBF6Tf8O5D=v**hrHokV zIPb|A9v(M;j=R3TuKuNIYEYvQY~Ydu7PmaFKKrFCX!QuRsf3ZrH{OmTLKNq$zr@ry z8m72Ct>uJgDtBVGJ~0g^`9E|Fx#BQiTXhR0XkX53HYRB3wt#!%c3*}~-Kr_!#r6(#5_mreCHDwB$ zZsbrkto~S|tA&^?&KWdaeaX2lX?fvzu2g`N{PU#fH+vW60Awo;^fdn#>P4l%tkQy} zi*ml~d3}qnICJLL_t4-_tJ5JTS*z4cPe?AVilkqSW{dT2mZY;2t$97RK^a9HH#&9V zU>(8g9k_I%q{+Xl_Wq~XgdJZXmru4U-S9=MUiGT4`%2pQHAuFJb$|SF{P1=4yJ?eV z2m6TT*oOQUhoylrZ3EU;|CZ;;${mrgwZE>#O`l*Ekx4G80J>#yXOe4&8g^WNU3i?u zDN^8N#@NIHx)j31kzYFw=p(?Zh>+tpTT-yh1gC4k4A}KKRd}h}G^qL9_v2j@Kkf3- z&)Vmz!m4<3m-oUBatN%~v(d)=2g7^YC?Vd+YX(mD3h(bB_KCCLLr(Bx|L@JKn@%rrPe?y+Q{#nrAYEP&5rllCv+8t(rux=R z$JIeiTmP)zWl3K6xwfTFfY_3iaQ1|In)0#<3Ky;=dzJo}RcHFrO07&zS)VHZa`i-> zo7bq#A+C7t(ck$8Lp<0mtS&h=)l|`66Db63uX$(<9w4iWKA zXAkQCN#QjG%F1iqNB^mV)9OR-@UmRZV}h(cK09NL7(>pQ4Z*hs7Jo`I=DYz9y)igY zLO_n~b*MUgGVUm+h8M^3Av_L<`1Mn+>D=yGSY^$xx&!Wimbxx9g(RDR=4PgfbS~1= zrdU#S$1Kpwnap;JSC!IJ9>7~=s2gszzbRlX9(bjDBmIt5HE=4vO-^O~caia{Ng-v> zwe%s$x1%v!_Z9@5{F;25ckocQkZ|;AEaZyp8dd|FDSyGi^+CsIg+eo*!IMpDkpOkt zH*mq<3%}@aYJ6cK(D4KH6#T=v!^CfzP(}9NbK=L+l+1gAXYh;t)DnJM8aFz;PyV!Pvrj~;>IzEr z%6588j~*r9ezWw;Y}X70)yK8T86~%I6-&ARq3L5!U%s>Q!gmRXrz0D=Qx{kNwM4}H zJnrYzD#l`>lEh%tS=wV!Xdo{;NBrVQ#sv*j`|74p?oWSTrkuKwTm#$Pxepyu*?*?a zU@KhhB;LzHzG;@b+PE>Ev=q4=>xp$*t|Q$7Dy3)QhM6^R;jOO-&bxxTPl<^V%aJQb zW@vMBiZuoO{SP79)S_`Zb<4HZ76mS!Sl6_zyJGXz(Pv_pu746)IBx^pd=9dn2|hL@ zF1Jz}w)=PIR!xmKo(VX9IlOiT*02noI=)o~8^0hje?ILmb*pSDbGC3OgcIY|W3H_% zoUXZCvQpMmpzBtVsmN0i*LyEUuXc=Gm!NmLaa!A76zQS^Qx z^_X9`A9c-bae}o4)#z1DJZ(^X-0vNN z|6|AxKVOiHi;bV^-~eXD`*SdXjnY0Nu(O1x-#;c1>k!Y?ve(Hqc6-iu)a_&Jyw~&p zbifTA%yEKNBV8vrL2WYEw4}&pFmd63*1I=p|kyx z^|30x|CLH$4j$WGxYiNRS~FkFiZz4}2qo`3Ch)^=txqki%4r$^mm(26yPhd|z<_ zAr39`o-qYv7h^b6-|zBhm#y{bN|gLfs+a1Rn7JTY zuns>Sr7d>Hv_D1MT2aPy+*t2R)h}{?!EO=vz%6GHzVo!8tHLvp4Upd@OicB&umpG|7Av%<*FyOow+ z90mV-W0iX9N+$fTd;}aCubJlMR6$VPjy>p5-bi|DXHBf~UMe?eHY`@15AuR^8C~o? zZ3CMW&@=Tc8ELqh7nc|XqMlnl?_w(*)RZLj zeeYP|z);+k4^$IH&wJn-Q~W={&;LKwBG19X9$`!To1F%)?OwGTuCrh+30MA;oqd+1q~Wue!nE z=TqHhU^bgzIvgG9&C<=T8}!=0z6N$5AZ_}HIpy?^Obs~@VQy{@hbfzv!Z_0$YEoA( zD_jtEk=J<>fM>a@x}CR{{$uI-{?kG)4pO*}I792s(agZL+TSBWsr~&4NJG*k|5g32 z=G^?sil$pkHz7&|ZY8}q`#luy&yM)%{q_BPYcW{!T~~o?NOC%@ zB6pBoz*BcBQX6PD1iwm3>6qRn=2q2wkH!t2GKTZQS#4A+s?*%ADm1KbK)W`5T>28Y z_<-opL-?AwO5DuF+Z%l)KdLE&coe2dmxb+QEWDClZpdsUy-Nfio_kRKii4I4TLxoq z;|})omy-&I=x-gf)wkEa-G-QY7Fv78vUNz}xbSmZ-=++z9=%CR^<(Tfu$@Qn1Tz^o zHF=zZvgc2AND?m+n|y6dfH1x_f8;Iu8BUEP{Z|qpk2qU4J>;LGXG90hM(C&GxPV-i{R9G2lg(7DOZ<|$@ z>G5BfWzOVoYIgEQ_Bb-LE)%Fzrfl-Y^VtI2(4FMfnt)izfibJ1`b{50T88=0($<{I zKW_M$4kj%)x!4DXqE9w$8fI~pzTnu;U(Lnl@)}(kn*-YIJ z_&x7w-?6&qxBBhl5D-^X29JN^pzIsQaW;vK?H@%Tn_Q>-13tsm=dFD4i>(MH4O5UM za&(y!8m|R^7z{YbG1VpZ!<^nNH8a zgC5VPpL#79jjp)F?((8~XE8h;o6;lBDTJx&B1}l#ya_`dCGu$FepFaCIh@m`dPMab zD`YjK!1nsmmm?O6Z;JbVl=wf&rZ99oOIq0+zeqIb$}%hUrR;TTf986e)+O_)@sa-J zwA(Egg%&hcH7UA!F|da{@& z5#rdNTVi~vSaaSc#3m=v*4~aCdVqNbk6!x}dr#ur3Gi6Didk`d;1hHqx{=&deYH>H z%zn_`NYtfY7$8~haq_zu9ZRls8UWp%m`$OxB9m-44!%Q=TP^5}D)UsI9q-!8;a){X z(lr-Q(z5sO0c_}ue4Gqy%H_R5?2^b+m3&Cc=MBRV%6EI`E2Nd(@8D++Q|;Fv`G06F zE|h-{NljH1J~>h%bdGo{^@ERiAf8`;RIMH}4LLBIBA>p+2Ue zvA*;>zc!@WY~-h!RG`^2{Jd5~9&sEOdn2y9FklXm+5DQ3gz67h@6e%PImzv*X2NZ znE~LT0zk)oFiVgVI~mX2&K98L67IpE%{HMlz;x~^SZMYV#_*T56>c@c`uwI>4gAcT zP{@fK?i~-p1;w!=#Ya9g-^~CF3(MvHWx_e^x)$h5gu9#lclx(-{RM3uasr?&jzi=* z?;5j#S% zfxu49)?E&={7v~1r0~50|E3SP;IeOeb>rxp=r8O#th0)m0|eJGb3`*Qhk~rg z-!@+DO~$O(^c8@Dt*v=Cm52I*Zao?NZfx7WkPYd+*c)3%V|=pWQ^f9wo~d)6U7(JG z$sY$>G(7o7#y5yanehXdEfVj-ce2*NN#c@Q@5nM6@h#G*IwI&PnwLpo)w8nx1N|%t zxH_92N%KD1*9x(({#@NQ&hWGtenhs30l5ZejXvPNZ+?|UvC>5e9I6|niCH^`tn9r~ zIZK5Lx4rWJRi^ePE4G=n=hXZ4h?6I$H0Y$Qx(LhxX^Xk5dr)OD#|=0aInG%E=i&~J zhN4tdLk?W>I}9xEhkGt{3HIo3Stw7t^maNXzfxByc%wccB1o5DeiA$CaDz$7j|z7J zkbjI0E<=ibZMK10T!cEI{<8*;bTRACMa&9uIcB<>di=S{;jZhGsoHw=?aehu4!62R z4_r!$dp^VhEV=<`Z)J87*kx05LWm)8YCOtw8Kp|kOG8N(lU*pQrI6?P=+9k7r|7=` z)PPvn6xiltN5MAlnxrle=?64N9%3>Mm!^%Rt z+`qw^x!`)cq3V_6yASF-Dz9|7Dxqwg9U=hmmCj5rff)3@S&3uQ} z@bZSk*~a3u9XpIK78*)E5M&|;eX{cqy9s_8pEu<=O-=VJHUtLlF+CH_3wHs*=zIez zd|ulPM_eL8mWGn1_W*@J=gm&@Hm^y|i?$t~>9K zmZ{UfU&cn(MU@!1eraHAYZ5ogs?6TS$>@^16{9Z|Z}%&T=6Qwx=DANB2)U;gcZ&Xf z$_KlOg-@of(y`~{6F4U6oQ>=K2SMqvOl4vf!R4WB=-K0>P&@mzuJZkK$lz(Lezjrt z8$bjAGkB40u3O@wPdN%fct!#pJK-L_jc`l zR|fbWw&2c4`yOfu0LuL#o5#>Mn?!cQxL^)xl?OphC(OD5zr_|PjU-T8@h2wa`dA9k z)f-A4+>?O5|5jhID-&R8d&6BFXpBocqQa!M;C8=e$&>no74B{7o?Xhv!BEgJCtfzt z3a&*wDWG8vw57VLLbaVAEL%xEsp9`#7_xb?S-aNO7c-&#&(s)r-gy&)!%p5(;WO5z z{#6Ctw7JSLq2m@4FY6XG_Cpr-Z|hfW?#>oh%hG4MU>xNWH~I9*EZWic;-H%7v{dxH z2IA@kf5Sj;KMitYz*D~=3{Q&X28N(MCN{0)YMar0-^d4DG>(*sseXp6<`202>*_d% z$@*6q$#!fJ1y1>3ma8Q`saxB=58$#7iHsdKuwB?~ddMPUggkGG+_>z z?0R2V%X(wU2YIQhmu8c@s$sM{hb4=7{BdH}kpE=?v^Xm#$B?^{kiL2v7j8n#R^%L( zE5s{EeeYqyG#k@g?!{lV9-4d{iP1&JuzQsrx>KgMkR{ zH4oYB!6ieJwz`37mjoi?oLI74xp)1gO&Tx#v~STA?vfNce`+q$Y9Ko-sV}zPZSL`;I(r=p7VBFPc*VpR05Q z#$K1{zt_;hgKMa%2H8F1%G4X7gg8$G80A0xF`#O$NF9uFoPF|M=?n3hGa8F8yX7o^ zkX|#x6#Ao1m8gb}S_NSLlj)dcoGt&8CqGkSwI6#eYGODf82&@Fq{W~nZ1wQ4t{Tia2zP7#RkrL_~BpcmSYd&`@Q)nWp7x90HT3^(5nPLr#58oA87z-^>5rq8V^VFZav$5 zzf?M^&(k|*bx&pxx>(@vaNyfA@cSAs2?Gq=m~O_?=qqdeE9HKx-cv3O{<0;|Sn%9O z=WkJ1vF8oA8N>B`%a?qL!jt94@A@Yf)j(TF6(8XkpuvoNG830cNsu7riM@H@R%dy7 zLf4#&?o+I7QK;EYwlvMf4iav`SLJT@`6|8V-JRGyUcc?!RU!Y>EwE#ltXm99D=M~q zGNQ{Hj(jP1-EMLB2?kEZW8IT$N|SCRyhkQxkx6jfOaBnwq3GJ$RJqOgQ4??!4dp+x z+-jn9S}6}z!he9@%DD^-x&R;=U#BT1IXsl1>piw;f84_r+>Mr6(83G9r-Vj{c6_hr z%{9iTse$g{1Ul27{*mer^q3g>n$CF(+A*@1w=K?yZRh~#tw z234S+jez-l_zeB*KW_g4-}la5r$svB8C(KfM@JD8?zDH{J5_&jhrX)7EPpA}j;NY| zgHcFUPK1%+&XmfgEVOsc+P5><(>>j;YNvfD@u_zw(*IsbM^}&Sr1V*l|Onvw7|1l?X^GLO!ViB7KX_X?!Ng8rakG;j6 zSXa_xL~eiJc6Owha2S)*pKblGS;X>6h4(k(SWk^f3w}f&eQwkbg(scWy~Dcmm1%AJ+zoCoc&!c5Q|Re zA|h3oCOmxb5yUt9S!Uv-96k`(*n66w#qg1ZXqk98-0j&YQFQFCj2m>9cjq$o759^v z*?#%fo9N?B>shg7wf!gE4HG#gCnH|bQ=)+nGS0vF zE2DOYk>m{5d~_Ceunf*Nnbcl?w4E?A;w)PIVKZA{aW&Z@1s3UqlJ2L&xX8QO0aKrc?$w_! zD7lx)c#6Q6uuCtk2{7gxPg!jj-ayi?<61^z?4!QRT6RpPgk7Fv+YDF3{06M=rB7RU;v>x!##t4lBw zb`_N99a<-nigx*k1OzntY!3psSE5il?fBUI{UCxV^^sO>Lz?Oh*+oVezvukC$Jn(R zm_W83ug31dy;EpazUTIa0Pin(xsl$JQvmjPaNQ?obxz*3mm6QOsnxAs$rKEz%kV_j z_@8fYi}ikBaVmDB_t(YrTVt+OWsR?r`ODYoDvRzfl2Og4%@y~$8#$)jM84n&2cvq} zXHFNIr!fCyPRxb{j(q(c(B)VvW*I3>*gVWQ3{W#DZqt5u_WIE=t;V!3{?C2~q^f=E zuik#r6-u^F{FQQb^#J`@Sni&!6S8#ucoUe*WHIv8JUtYGrs`sW!hZc%n>o z*Zi*eWJSw;$mOK5Ut^onYd~0me}ZS6+ssz&J-wyW1pv+?WWD0F6GlRdd|SV5hL1z) z{Ejzn-GVM;Q~D$EYqVWmeS6FA1bs445_;E^P+_VRgtm0ccz8Nxaxd(I*=#v+mN zJd*PZd}&8(_Rkp-j*B(DFK)tEW-X=A>U$?uD#`3Z8SEdj_b~AS@yFrMRXD$<%5L;A z3v@+h?1o?bIP@+(K==;%W-XNI-#C`y(MYD=VJmR|u?*`tu&zJ>`~>9Ssz>S0m5r)W z4NS-n>@__ZRF8jZ|7yXp6b=3FbfH{A5!AxDP!SBFE0~9l?0@D(CDpF0&BLwkmV4@( z9x!a5!O~xZ%&6Of4sZ7;H_vf884`2D ze8WEIuguv1`X^4mlwX&eQa*KGXuW^IP2$=f;lt1mJN7uSna8a~F1_be<;VEdc-#BdCQl z0<~~KRnym=RPZ~3>KZZRN^dKcBwh=eZl5eE(Ce{^3;b&f$_Q33Y}77Yzj4VkI|iwz z0j=?~DR(C>i*ATYsd(2}gslhq2_IVc0m7X|f5V*w3}cT{KgZD}aQlf6uVn#J$*Wc% zm6(l7`%tE9CR9GDi*QS^6x~TmZ}8mtv@8V$WEQ>ZR^R`~eej9oTI5-2`4Xo!Z_DiXt;E zh0Ro#%@X$MJo23KyHQlnnP}{>-1<_au6INA4R?@h>g%XrHe{C5{b$f<`#Ijw5gpgl zGUd6jT$;$k6-Dl(fNI-ug^#kl)WX!x%(KJD__O9xNmvsi+bAjvaF636h`TdX(ZMNGR>u0Y5sW7d3T>*~ zyBzi3u%{2DeaB`06AObL>dt)Nx>5NC=OL?qr>49#yiTTsU({5fxmWrI+H52QPYu=H>tRFEYutskmkN-|?SS*lV3Eitr=eP9@Avc&<1+&_5 zWwIn^Gx0HWxSiT;Vk63@u|U?jA?^s}10!PnfpVe&sgVCN_@1KWLZMg}W!%}8q5j-@ z=q@y;Z}Tr{e<)zb+pNVHXeZxMipm$~Jakr%v+f#C$G1-U7}Wu4s};M-2IBme9>Weq@?*jx^1q?U;XmHyb|Bf87;ZjyFLe$$%aQxm8rdy!^4xm|IU$70+51``;&(K#k z`&N3^(p?RfV`M1Ky6IP%S&p7XZvM zSW^CdDrA-(Oeh&k;n|@xxRe54pYV=9U~qlgzmw{w#4dS}&fpR=mj{i`j}UVzF7gcU zXqg?XYO~euBN{NTu%SeU9~!2joI-}&8S|*JmwN7k9R)xXkBcxDuyEG>_1H>&aHR_N zoXT{Iy#4Kq*`^)5XVu#Gk0@ADW>C)mI|hNF9wEHX(>l_%ee7dDT^VPGP8F~>yn)@% zp*n3!n+$f-`wvgQW%q58E)(IJ_FBiePAX28e>JuJ;uEZ^Xu5S(SZQUK`@x*D#kWPT zZw8S2X*r^fo=K#WUZ$!U%+;)J<{@`YBQj z`*|ZE0tHRHw&o71Ow@5#y}e!rj$oJE&=c$7z-~+Blvm-e-AK`=Xxpp+`k~O;`nF(a zmY4A$zTmQhC+d;I_ZNmpdsJ`pQ^5siGrA(~{Z|pEt0%Fe@Og&F0kov0j=C@kd|Dcd zRv$PKb7qZDDf~Gz!PJn|i=cKw_Z_QevY`E`;c++wCHFAk9qu;P(BVxI+@DhVok zQHsl6nA)bpTeB~!C_!%OsS2pEaVT-UT)&_Zq3AXuxR{>Xy>5!s?k=Ig92THwYH*5((*{b!Tjq_DE`^{5Ie|kU!QBvfD zb;8ycI)-1-(Y5Bgx=rvvGSMy{qXN$}sn$2+5=05MP^KOCe3P|Ue%^YXWO-#`8#?zr z#^<%_Z30F8m*o1dQI32glcJYg8 z+MDrI1M`Q$w>Ib>mh6+?8jf|jsr=+-h+naa`}gJbnk()h7cM5*+W)*q{eqx`M#ZlF z3kfYel%4%jfgmEdC{(<^m%%T?nj& zY}FJMavK4_z{a+I-+)SXUMB+&;%ULlrg5v*CDv?Z}d!GEd7G(xj>k5>m(!sH+hf<#b)mwwAsu>r4(gz z-ZbWLHerfDl)Hpo@FY=C)6z`c548mB(?eXxfg5pR z#Ux|5uFkeZH+^E$%b>P&XSVDcE^QQamHx&Qk&63o_u@{Zov{67$st9q!Cs3?UAsc` zclPjcO|e7lF-qXMkTj}KA?jT%B3Fk@@WdAkbb7fY^q+D3bl^o?PXb=VC32KcO&f0Z z(%CfE=prSAioz_u`)P#Kp9)Q9<=x--YgswUShhsS;8>(<;NQ>A98PU!jBJ&e<>{Sg z93P0u=WMNNRo8gj!^bE>iq{Vui8%A%JT{v*D3=D~q%Wzn8YkNtpKZCCMXuET!!8yrFD*2(9$5s`S%u{#O7Vn>sQJ1!rM;0OPh(JL} zr5!FofMZV!YtQ+Px{ROq#=f-fym?Kxv&0E~G#{7J)nk$db7Z;w&^eoYU9I(rdm7{$ zR+NL)MT^1`#_h+PMH_8#c_RU)`hQHfUbg29Iu3FZau#^hA8(O!J9=-DB36(8upPQY zC@kuhy6TU-@nqVYW$r`p&mP4=zM^``+VA0kP$g;s--rHej`(kngegMCj*HOQ)*V;) zifcAoLGFgsFh}hA!HQn(n!EE7QT!F34?f&MW@7idyf3q-+8@R`xm!`ug|lS48@Fvg zlO3yt=ejJa4xK*ha(saNBL}lpdvRSql;RdJoL`lq4rwRs*^YQsE+u;nOrPr zE3aDpmHkBIAmwT1upEIIYNm+gQ37`|Ztp3(pW(6`J z6jXPK$1r5T_6k^BqIciyZoHbWWgj1xu@?C0oWiLITOfv9fln(;JQQ22N|LD$DO9H` zRDREVdvAZLg+aspYy`o+PW7%U(9@GQNcqjQ`xW4~uu#o+-M>SeWl~NUZq74}NMYfA zo8>wPc?0-ZcC)7+6iDP5ej8UWB(v{*qgR23c|SzaZHe8!f)&Q!53K>2rCMfAX2CKu zR(>3+S=-&%H}&cm%q}=oSg%#uO2c<@G5d}RT}NAqF?qYk)-H7 z(rU(4zc{~NUg1|1){nEe$iMrR8R_ShbodiRt*QKS*)Ki^kqk~Hx-|aSvpgj0%~9l( z)=QcO;S8O?H4`BO%(%RuNz3)&Lw|U|^LrKaQVO7sr@uI6G@{-wV2{0(W_bZz~C0}A%8yL2?kASYwFPwEm8}EqUw(DoCOW6>p6i?Q7 zv3p$vp-aRDW^12xuE&N%n=%nWDi1FZAL|Fj3-`R7ZHI@NiN~K#d`h5JcX8F8Hy`sj zh07&l9`o+pNxmE*9OIk48CHD9{~7l#Q~GdF?mwNfr_cC_EN>R~>h;ja+*cESs2od= zrhxO9t;yaZK;FNsv@x~U8S$>KD0`o;KF`jW_lB>UJEv*ohr@xtWqmT4c@hAxsSvyj z#f80l;nG4FWWX(az-gZQe;$|Xvm(9XN;Ab2q-C65z`z;{8 zpgI!#(F*AZuB!dczX&ec!F8x$Y+u4I-ZnX#k~J=cyV7q{;IstXi%~&sR=+D0X);*e z%^a%n54VhaWXjG(-^q#qTCJXuyN_8l_y?##HPklOF5u5*?`Yc?c}K%x^^N>;Y3f}} zZr>y>6xFZQxaQ{GtV`VPZhcxky$bpgxd@s2hFXG!8|g5Sm@OsO^2zz*uX04Tv~SwC;eAVNQPg2R{_*6ibs*Wr7rtHi0jQGis;YkarzaG));y0x;K8hRSurI451c@lGLyUiD_jrkGz#l-7vm1O)_-2P{1~2-4Zw5W1j{>$=XTQfotB(tKTqG? z8|{8?myki}6Mt6Qt8o0|=2y;tO~KA?!jC(nR+b11Esz64%k`S;HV3f^vbl`)7svkT zY7nac%Hr`5J6-43{{f$$JonUVvu%>{Kkzx?G+iZ!Jh~G$D7@X{*OC|WSOG#*xvtp& zvFB`1O%FNU^6O(Ic}cfB5)Qs?^$eqz5`t<^??-7adO!0U>@R3Af(q%cWmpEV8!}TMx{O zFDufV#6R1d@s{{q2M!`MW_NdOOTGMAa_=>S{tGzp$kOW zs4y-k#^%NcvqVo(MbRQyPOH}q#XZD3R$X#WURQyWMCFS9%zNY%3A}L`LMBM`tD!ZR zhAF8a(%iRqmZSc(5P!&y$X?(zd#69H-}{tYX=o$t4`MxJN9&k(7_0hVuF^sHljp&K zb8-1D(%H7cyWV}pglH82QI9a$b!flH$$SN{0LM_vBM z%bx32Xw-H=Mu_C=9`{XIqpwoJ7)c2fB%K8MKt*eu*mrd4Jfbnk43t{n$;;C3{geCO z5&NR6iX7LP%{F^?t7^M33mk6?*_Q!2rEeD4x2~_4|Ejh;1xmELn|7uvDVE?cq~4Sn ze8FbjO|9(9UcEr@N!%$Bp4Px>I+rMxW6~T4GNGbHYS9Zt#ryS+KMlvewC_0YgD=(~ z=KsgnpZG)hK5X3hr^TM^k!?h!Qic{}o5)r|Qc;!(6_qvHSjG~vo3u%mv6LlSvW78s z%D$7`*v4Qm7>pUuIr@C>`}@0p&+GXU)a7(t$9cTpM^<&{{jC<9Dy<-GHtheODgq`h zY%(Iib_S-sa-CMF>SaoaXl#Cw58b`o zy*25F20E6KkNNmrXkE6odp_(T4Aw0|D3Y$#ZW{PkbNCv@1G!0K>#2Y(l6{B>V_)~t zQW9kz!^*dp#{jVUC+haVPSP(j2LZm}ctMHN?M&fkq9@UgXB_R}YQk~*Z(TRPGdRX3 zN7Sw!`~&#e8CQaW%fW1{i^#|bEJteGAg{++&Es3e^XU{PJ$ZWxLl0b960lDa(u+Y^ zmtI&5L~R+uI+}m@bw=$rn0ByHQZ)LR))hJ!L-qtskvXpSUEi*+y=uA~c(B*6SQ=#N zYXX}p;CjBjyGIbb!<$&{{*hlE(&}G5Lv@@S8S_bc7IAxn|5??z{EUi(xv>38^A68* z_(vNH3s(u4PxNKUs*eD5?l}w+evZx70S>v*sQ*o2YW4S1 zn1=1215ppFn2l;*JV;|)JMX0+4NTxMMECVXT5XoYXP0-b-MDS#4+nGS0zz+03jEM_ zh@n0j_Ul3sTE-3jc#*J8fu4({CBUXw2c#_EGZlLIRQc?gu^!9`t2rrIMRaVpPpvh( z-Tqt5Ekt@~`Wa?vd%LwDF)rUDE?RFgV(X4dB=nRwrYrZRY+-Tx^;}h2%mETYGc?wd zBhzWX5c9og)LErkRioMQj0NI>W+mTKl_!ZOF(+No(i@k09$fdRANnKit~Py5V8C#k z*>ts0#>l%jV)ryozi2nDR=Kh4_m-5;IpZHsF`M!IKWDAE#TZ!EYnE3hlizhfKy^bB zU(fmb)SfnIW~mW~TtP+PwjppXv%AGsTe%$tXwXtH4tLbyW7C(Vmv)3jg6a@>l%YTc z{g#P1P_h}*3Ysf#t*0ycK0LS#0gwgZrjRP*y!_*9=b&;&lI*aSE7!2{y?L0i8{>7` z_<>l&qm_3KFZXMabyfu zp~z1qP~zzH{#v5LA&{*TZb-h7T65TVX#Fvb{$&{`x6CFKd5Xz6kUb zm-n71?+}|0>ASsMe|uZe(A;+Zk2J&cQQIE#;ET7PlpZ$Gk%dR?(XHpJyiI`W7aS(* z(8yce_l48>l|dX+I>tD3ugGb%%N;&w)A@o1v%HR2JYs6F9jJ6vDCunDtT4x&s{Prx z9Ih|;Qw7(-Y@D*SQPRRal|KeE*vR~C9Ut~H4^F(>@-x(Nc)f`!KJiqU;aQb7spRWY zw9uh_q~F48eSFw9bG@K8lZWLY1gfLX-BxguMpWy-Sm20gLV7xpx zwksO3T37aeaM1hm6>gw`sPZZn){g}{pMQCxlU059;Nx`Ef`yJ+=xP36)B+M#@@w14 zeSkEh9PlYo`t|mRJl>i-W|-<4df1r0*>Z-kl&8EJ2C7;NnVyy~Cs6@x9j9=U(EFo} zbgn~%k$V!gTHgRBs{JT48LyBC`tb@Ezg5WilVMy**kd5ojNE@;XClg7>2E|aR9&e ze14rX_BCc9D8$3h`AfAK2d7nCcXSkotpC1}t8}B+S)QaqM1J`2za?QiBX(E9%3SPD z&%Qdxb{0_$Kat${$^%Emh&@(S$}uJ{@wv8i0&StZnSR|Frq+$q=5i zDF5gtLSweca>LQSNj%Rq`L)oMH&_A3E^63^zmVwPNT!ou{iFh#^8$_)YzzMO{-FN_ zmvH+@6|N|%o+KvE%w}F|_2EgNXAuN;wU+gtv^GYGI8oBOC3f?5p;>wj-Gw7KQ|QvO z!#uTRN%VVEMP;KS1uu6cwDi|uVlP1@AVmB)-j>QB_asXnc+nO1_B$?*)wnRVvkw9J zPh{qzUn@~;UmAU$eE7!#5t_4~xR)gib}+o+$6Ez2qufpiN?@5PQsU{bQDoMY0GHY- zaHaIOqB!?&MbUDP;h19jOh-%7LNM)EcX;e?u9mI|)}g`g{0QY0W^y`eW9NpTer)9n zp>%BNXhyRxVVSEwv*FuCjuL?MK^4y;NuEFS zJDnP{ZnJ2;9@KudFKf}BUc0L;P~_LZ>!`6hLIxVHd_4cs1nxlB(BHb^imlU-!Rpiu zbIzO~rgL=&>M#;5uV^)F?OSaqiE-GJo96aWTIP~4$U}?w#Q%1@Gxp7{almV}W)}m$ zG`5j#zrUlnl-(w>%2ja{9i)p~_v}F$ImX$1d`=2#YVh=&hj(?1&!^YFlWy)&8<61o zHeOU>|G0YFXDEHHf?%{Tz*j=n+V;&}ExeGZV-JeCH+0Qy%(Is7%*j_wdPBc&9I&Wz z6c^);^z3)3k1yw^Mj}-+45}*D)H(FfdFv^(RGuYd=K`ZrF%fN5*AvI=XYVvO9;Zi% zE1ge76(-JSP+Y5Vlv*zY{bJRudHlpTZSxD|OV8Q(ZB^+9zf<*M=bv1CP6m=D$ABD< z0qDV~;LUtAvt_%dJO{<_hC5R+JCCj|45&eE%&#T~@v&U6W4I|~AoCg!7`_8W^$$bh z-Bo_L$M!i6;gFz|0K8FhM`I3m z>;qGepMvoP)OXH|>v5)k=3@tb!Z<|7WVJtWJ0>E!VDxOp4k1WqM!}7$&MeEm8$GJ| z1~g1$Kbcvp5ODl`C-K{LO4cF>;5owbPXS8$ZvY>$b#Z4IWRmWB6)~De4r5@cTQx0u ztFxg-wW{Y0JrmXo;~nS0((?#wX;3?hcTWuA3RFjf#-|9T=m2`5EJvTZ0Li=MLt5ox zvrzUZnk`3oe&CO4r|pqL9$QYGUo+sYJb1TZn|Qa+rJ1mgvZE@#FaxpYogv#<8v(bL z7eo1BUR9~1Ji@iSi3sC-KPCCF5K%XWt+#Z~*3`|Xp*?>V{7x>|gvDEu?b5H_-p^o=zi=1AD<9e-JTE}w7K@^c?Tmp^Vd)4IQcW#xqnZRHAU`fpK zVQiEAF_{3*n#9pDr8H4}uV18TiPg8ak$*h?yS9T;IK_ z#wXe(Rq^cRzIN-uU+q?DNgG${ti+G6RFMV_>9h4qTwpg;%2oBt1#a2_A-XPiK;q10 zs06TX8P^RDxnr_u$H5a$7rJaqi0cjd1q3tBMxhWF*(pEL9P-J~Vqbv_p?u-D*1>j8 zgKYbDXmm2z5p{ZSa*Ji)nV98!K1*mPl9eeJ__ripH4rr97vF=c)aRH;xt#?Bc*XH- zP?9h8>)tGvUfBXSsVh(ZaUL_I=<2VahyTCyTXX-d-`diI#)K}j;2GHAL$X|9J(jQ3 zF3iEiNAIXucGAMnwuersY^2onqW?um=k2nylp0dyhO3}FNk=(j2(D(G!vmOSPTE1O>Gmg|!&DcZ<)cy@6MZj_ z|BYg#w?fg$np6d`77^gzXi|hXAw@ZLSg2s_YzwvZMTjJuUqP^L&~2IHc!Kb2)J1+? zP(waW8s7eoek%s(x2~V@3&OsR(eE|D%cC7jFsSw|C#2y#f4!dcjOm%Tv$y+Gr}d4N}N z9SM=`p7k3-XufH#i zXy=;D9XB6e7QQO`cU2Uai>!9}r=26uFvP)Br+$IpF>gIBID>TeDk9A*u;Hht!u-e{ z6NYzB$MM6_t+1kBdt9R#^vLnB8n9dldF1u8T>LZK%{Fyk(Q{$&fMAgBR72;}@K@TJFC{m;@UIO$*1l8Dc*0~(s2i?D3LajPI zhDR$5)GUw15wt1nUMCHw@Mhl;aV01q21rX%9L?FeB0?mx4ei^xF#C3{u)r$tGq_%` zwSjE@uSn5M5;Nw$;ZAK)Uf;d#6xvy^ql;t34H$L~ zE?b(lB+^QqKmh5n575PuThiER&D!dn-}^&s6~UjUq}lobZoL-=meN#T+8DGo%@LzA zBZO2R)oHh|xe1fTS7^IB{D#sSUDmyRod7j^H97+A+4dA)&>puPCM*7VZK-G?OHib6 zy40>Fc|v0K>BwmOJ~FC|&iHR&G?V> zc!{6}cI%_m71{XMZo#QIv9P1^t%S35xl8@^Bi+8BzPs1F#26EAA$UpS()<2P=`TaS z8Ms}|@4!jG46kXpq+VJt=2U7@RCWaK>e<>y$H8anE&c~vv4Ux=8#s_}*0=adb1FMy z|KBq9xUv8lgr27F+MCvNSe;jY9tm8x?Adn-AkE4FF}O{>hC157@k@ zCpE}g@LLP`UiA#OKRr*=z5Bts0d$m!<8_rsE!{tahFC7Dub$4gfltLl9MyNv&6;2-&nw>BBh?~ZLJ$Dbn} zhkS$_jL$T!l(_HpJ#TPxMQ9}_J~6Kw`Lh1Z(g@b@>7!{2?KF$&@u>I}ny9T1aG|F$ zllJeBa8z$$P#uVy6VdE3RsHlN=S6`Mgv*%3*Z2>`r5fl^fQ&Am%Bb=-FG8IyH*D;M z@J7)DhB(llv@iRA5OVQb)isquUr#gF3v1Y~&Oh@$+cNaAE!L)gw;ByK@cQ}9d-^(F z(gNB&qnhm&{SJJqQn>c3yoqzf6Zg3%rGy#UsHOZ2JUKhrL3px}LW%s8=*m`AC__1_ z>cqCoiC*Kon@Vq!0`8Z3Blnuwk8hRAFOC~YnV)a^6^JlfRlm|uPM7^JO>2WthSfum zN0~75MN(2!=nlf>Zgul-0@E!P6e2$jn2VUGt-aT1wZ>&tj>~gyXu!&ebAZ;@<9wmM z3|23TMs@SE9A+VIt6QHXSW~Z4*7z>Bp>OZTabb1kda)(`NIeHy1nbK#$PIT8MCRJu zn&G^MUg-8cNB*}3R({+r&vRDcQnj`+#ToQtxVx1RdZ}LV-40C=2X4;&^(-oj37$i) z&sUl7>*x@cV}icFnV1U_U%y7rAF=r6{d&wEYhu}sFmCm_s*nb_h3+u1jr$0L%CB9~ zJHFBKKaQ?C4kqe7N!$*wa~*raJ2N&3tk71B=5G-Afby`a@wD~Yvh^Ovt@_9$9#^sNUw)u+Cc4s9`Y$^@jQ4y$@~cEr(=~(?z>?R~6BwW`0%43g8M4spFa!ZekZ5RtzrQZOC0bRT9)$q~v$=SzWE(0wrUtN1<` z`b688_!|R*nPWR2sL*STk7w_Vg!wWe&v2}XCM8v=|BHm0LTnNUK%uED&}3*gBne$V3?vv?%6KPuWF zi7BIbj;e4p&;T7w_^k^JU8L~UOCU`@+C3zA%IQB3c05fs<$9e#Placxr$UD?N7GS9 zV*FYXi$!X?X}r&8{spOpy=WK3(b)}*1U*X^6&ZG0q89cy-GNQ3?QT@w)|}|utxUO> zxp~K74br6c3RKlIQ5H}eCHF=~esbH%faZ4Eaidy^F~S)iZ4Y~tb9;#n&8kw9ED6Tv z7=RPkgMU$muA&2fQ+C2aKtbS%k3y|d((#gDvc_dOGKxMx$2NLK-_-H1;ANnM?pp-# zb97Sr<99h%&0PdR|0{~$z@B06h6HeFeyI0OtfZyw1$%#~y^hhIP6vT{7jG*}?B-#9 z4Qj2AZ^`vrN6c;uT~$js+F@h&xi%8`U3e-rLQO1Ko>_PefVI)#fl7_d9HK}A)BZW0 zI_s-o=U^K_pKf{eg~Se)TSBe$!E#GoXq;Hi@52}2pFd*@|Bs}LXA}M?CHTptMAEIg z%0=*%rDxp3c;I+amxZ-o z)uF;)tbm(1gWDmLb^kxb0~Li~PKr$MRi@E0tnKBEBDGDmSD_ksg_`7JmDpn%rT>$* zd>x>tEgwki-}dNek=nKFY>x5*-zFDn3-A>xXIN?*g5M4mC`1k||9gI)OasPqRP*{V z;8`@<4v4${Qx2 zE~(lpt`4r+p{)ZhcS|13r}t=g{}SC-yPPF_;mES@$q&z{9|#rEJ4d>yy>e?+km+;@ z@1U0dWV3I645fkLN5i@N_v387z{%x46RawbufDeVB_1fbQjo+*Io_#TL7L5j7Rr16 zuwZL%z=L)vK8%En^Y_^EL+VtB zqDz`=p35p<1u$|E$_%!qN_wx~k^=>p?Y4d;kgcrpyH_})LlsLDn2F#mCH}YMk39Wt zM29V{WlKxmq18*udVEKR(=C+AxRi~E8sG0ZMxZc)1}in~9Z5uaBDz|(kw#q@2!9}~OGFA}0Tk6GSnKky6Cz0Ei+hK~?^igP$ixRIP%kc!#@?yf%f!S{~ z9#n)2&w*I#4~OpE7G&YT2UnT-x31>A4{hy-$ubs*Uf)*v-4Inbuec6^sv46F%omFh z8KB*nOounSWI^8eZv%Bvbx^IZ7I5RXmkmS^CHwm}Ui`ZLAft!}4f!pD*4tim8HUQJ z4uHDLeyx$K=6`TdjbWj3Or7T};_#x(sN{>g*l{fR4^++!jY?(vi0tLK9|h*l6DC|| zp(yV%|FAZ|_TLBJk}>e&B)8N5>bX+yWyu-Iw_SCP8?z{XzRrEbZD-5sg*B7vsQe!> zd*vE|AJSfx1NZ7pLe5$i+qsonk07^Mz6P#a9Gvt3cLX=iU^1nzxHo8@{eJ8p<}B8y z$-mQ`YO89Q*9#rYjOT;hTtDrp9IZm=>u)V7$1oD?-#kwGCn zhZBwI_eCc(C~W(=%6?dGdvtc3tGM8Z_(HepxN}>C+{@H+$|YHgv#v6SfUKxepV{!Q ztmq2ICaGkh5D{kAhw3=vi`ZrW_cR2B(tP!WC?w}v`2EZ`?c0{3TCImI`M6(v zpVjO6j7H_VrESO(gI@IN9#$4_!`7-FBHh0?V(w;}EL94HBO||(yjr&E3;y`i1zr41 zXiAUD*4}=wvcfe9f|XQSLm;Sk{mJMz{2Cwj@8uD7bSUVrp6kVEuUlAb!C1wrPkxYU zr(e}HXs9QQ!92YF6`POJe1bZRuARG(z`9@OvKz)fwRusx?8~b9g#usYaJ5dHhzMGa zxboJKMS>f}TJ5Jr#udvHjUmsIPcf35KKoW*f!=g<9@l_h9Zz<>JtprhBw`OTME*X^ zZ}h)S#>tWQs`Xwap08gdCb-`1&{ZwV=p?dhH6(zT{EKSuxK&{0K1*lmJEl#er!4Kr zVNL)d1yPLSm2h=lpC_Cg%9TmVb$8wJmXcsY5u{hXCt#0uUj~}!_`=dQkGtZPP2vcu z{O3h2I*eGb6M(1t&uM;q;D+Q+XckN)b*;EvHiG`FCkOqmsVq60vto)%Omg3l-myKH z`C=_*otAQhl=VYI(p8=E&Z5`mad(wtzg&sB#l8Qy0F)Dcu80t_7%#5xl{2+D@LG;O$H^d@5bb9HU4#Uje$?jM=jQN zc2=h|)h}dz8XugF_X_t%cLBGeO*KbH&4qCObX}~H&=Fy`ODSQ#EzX24jSTOT?hn0e zt>oZWsud04HxOm_=I7~wd1S%aJ>5pBR~n+TgHs2=XXmj?hkps|MQ29Ma2mz}#i9iC zPjy)8gOTsGf6-BG&qU5x|9#4TspxxrsgyuSFb>pPCTI8qj6b=3px@$hZtp+z`uL{- zhL2Inoj#EYz$O}ZZT5x{VHPNha1UE(PWcV!p6_H>;YFg}qOv}~*MLrjp5=|2= z#)fhm#51}KQGUjlu1Qr&um4yWa8(}VxljcFB+UAc#aK#cc>j(e=4-p793@#p|KM<| zk%=r;tKYd2MSt`a=8^ACZ&xO8h`jm8TC=j20Njhmi@@a&*bzOmTU;{)8ESIz-hE0K z9Q&m3$QObbwbjPV$8W4ePN3XQ?WPNLTl!wqGam&k!;RU+x&w?M+goM^njBJzM{smG zSFdxcUtJ67)!HDDukj#Zl5HVrjgk9qz0x4yj+!*<2FSTP#I!P=cly zpt8W73-J60lE2*HI;JOg_I-2>Ik$sEnT45gJMtnw|9=7&=Dso*aJI;TzB=%r_sj&k zwbY%w#>(5Qg+d@#_VoW_L4V>}Pn=^4D)P|>Qc>;GK$Tnazn`6STP~Y?i&eM7)uN4! zjj=y}J6v1csKd*Klp9Z1UfBP-xVE_^+?EO~=rCYGUy;35c!Ez*h_ABeMt;UbO&BKG zeQASer-7@xdeirmsKD+Q^auqyykK-P*11ur zX1vt#vR$$8IgIeLU}($)Q9a{b>q{PYaU)J|Ohoyd+|`r+HcU0^CA#A#K3~KALw%*B zgvoel2IedDzBv2D>+HAts&vo)0J)7?38>Obp*|V(!7cJeK3mDM$C@LHj>ctrgc!Dg9m<0uQ3qgs zKTkM<`+kW1Qb!RiK|&{aUia0+raK8iv;M2H-PGdQT0ADo+YGI2{TeT>FN29RJGPvrfmH3ZPXYotG5Us!B&$(}H zS^2C%cE4ot$s7zqBLWaZ9fwj=x;0TTP;Lq2_?w`UpAF8ab7+9R3l)gB(A(E6*W#0T zjM3JrbnzCrIVK(FIF}GBm0SZ>Szk zX+nC9<{w3MvoRZxnS6U(A}q%0YLUHR9;AADLY^2;|In<_J>p9zrscOvOLic^UOv%T zRr12akJJYaTi9I-ZY+Pbf&9@Qwj6&EzW&y=@H$<9PR~|I=p~>)ueN}U`q;H@^f&Eb z>VgevEOGvL>g_k9_n1^;#*N?OA~{yg0eZwKYCpB0QV4-6ZmY?+P_Fqz&f(m4qfPJ< z_%BUB>~Aq|Q8E3esk0b|D91 z;<1sx)w2~&7Ce!!gCtA-MxZlZb05oSoCwzq+mLyt{KMqCJ=4#sC*R-MnkH8<}fyEoZ%0 z>x{J*l=^3Wv7;!yr10p6LWsv-OUonW@k{+4=X){hp%XD1^hdg4XY^@tFk1thj$CNW zGI+Rq6E)1&{if1t|0 z@XpmOEh9^*wCNVuPmB_5hDVm}&x8Vf?kSAl_qyb?Ed93@+(`r|!^82P6ORqRj79oz zZE4AvP`l)A)lgmwS&x=<&{v#Dr!R7;ajH}xYeCQBx!$cJwhq#FLZL}dGWL^|*r2Ah zSBj98o_Bi_Ni^;~mb7C#BAh?*kW)$;MlyT;hHU*fLz-Xk328>@%%}vhKa1OuVoGRk zx`B%u?;Z51xLo@vT+8|4VBc^XB5cuG^=Q|naE?%8AmHK{;SXUCJCaF_@t++pNQn>D z_}goVJCma>{+i!4F>6@_G`o~`r$T(VW6~*WmyRi#9LxSa^Yx+y#bugYJLzT_mhGcswABY|nT$8tXKzr|a(6G=Zcd1N;4RVqYI zN1hzW%+sf}l#qI-p?qT_BTbP)!p}n zplJE)J>Xa5i#Gn6TT04{3f@e&G(9r2%)Uf1L`g&;Khz~da$pD>^6D9$7W60N8MNcq z!tT0qI7-cz=d;Y^Gy`08#ezFzNy@IaH-9_Z4Qv314bsGE`56VmRSEi9o0JN(94#9sE;CgI{URIFCLx_*YAc{@Nx`kQq-o2) zDg?5ghR7XX@IBrbHVur(3#(`)uwW(=hu7&lF9t-nT;2wG6P{D`Eyyqv6%l;Z804D z;b^$?aBk}Bz79QEqo2I@QuXwk(8F>KK*u#U)IYk>b@=x9rfK@G?WQ##1vuQ}ow!cQ zbpY!`+CdqY>{iKI686DNckSm^qL$=1=HhT%$#p;;>WlRw7DEs@JNb%tn<)yF+7^RH z^_>(+u}vywf6w{s3`2e?%n{tQb$dj6!*^A$x1u&DXpquFlN!=KTrR0yy~yMaWK%SQmd&>LwJf+s}sVu^`NaV z=~R)o`OSNgQ^C~99eMAY?`)I0>o1XyMBc;PAvDY;YIy3*|1Wir+#_J zy;8t`eGupXAY}>Du%=d_qe9#QEAT&g8du+%HBtBA@<$h{3PoiOV^{F%Su9sGq9OqxTSEU>`{iwpS^9W-jQh12$7jeEL2XLG*j zR*Pdx!h6RMBqlia#y<|aOg@=iFV-0jl&-`luXSFYq6WRYeCKljbAAz>r9PoN6(4(` z%j1{{0cR(X)Xz6956efCo{z5kvNT4#FRz64>8PjH#0pS}UCO5VX27zj$SN1u?nZUN zvKYEFWmn%h-Ouj>RzZxrbV0{xX|$Ze;$ypOvwLVXNVSn11G#rUu~jAOwnrkLtpcEbTSd&J7)ZPnL(n zaxZ^hK59~e_q15gA`bUD>`%_ETbIZC-cvqRrF9wlwLRaRv-z5frFo>T2|baCuGZyU zXGrv&+7P#2tz3%$Ge$-#WvIu#p0wh;K6a0yz0gSBdP-i@5BsHiI_BFGTSNl1sBw(vfj3Kga2eQrRNYae)^R&Ep@?wqi2`D7qH|1q;WOruQY&O zTpTA5x1~xve~O85$!g-sHlrHI&M4ehuc&QwQx{izzC8)liizzGZiSsKucdP#v)5zQ zoXWM|bWPv`M$7p4nRu7QeZs2@Sp5nfYzKPp@o(qqal3sgm|?h6w;nGMU$aeYwn`x8 z3%I2mk2b!|^5e!W*VoP$s%uEYY&Z8BZ%VTCc*xrFVmAfh;!_KY#_H{Q9*@V@k^CeASr zGhlf}lZn&0V2ti5JS_zs^Wa{`3A3K3=cP*cmpgR7`328vLfsD2qN8DcM6r%+3RAtB8t4CB>d(by}oKkx7h87KkOCphgT=dbaU?`ynN$CNz0xY%zP)AJXbOL|A<=Z;&~ z1kArA*1?zZS9AFD$0;8uVQ#BcipdKAH*!;bm0t1V1C#N2;$$z{{!mVGGjmtfpWi`{ z!8V2?3iBs-*UCORw%>>|{^(G+YwF!V(H!S&rj8N<4wiMbWj1x^XRGVk@;VHbxJ<#L z4VuW`42GS1bGMJdiHTE=m@+>?RaQ>UySv(*R-~l%VC=yn^@ot&ujs=;Zh)d@ziF04 z3_vAeIq)yA4kA0bFQx9nz8oSG?Ml5Sk6se#!$k_m2}Hd4DH66FYH`T&kBaqZ-fWj_3WhRUYUI~Ro z3egAYM!aqi`L(J*qIyG}P`7T9A*Jdy7OryEJFkw9u}49kC%0*P?nWB&>$q3G8q*1W6w4x~XQ;JX{jPaTLeq{Ydd27X*I9{v z2DK^3b!^J^#HksD3vXjzm*%_^;1Kzw+PfV%+8L!_6wiD987fR%%**DWdC2yf)B4w` z!blI``Ra^5{DK!H0Bv@Cw)ZOaUd36M?*zT$Rnm%w<+`X?T3cNDw%*{6{{**M zl#=IN;nD9l#MH#sNg?en)y#8jt?sIb3s3z#&~{bri(R&n3r42yAuOCfaidIoD=hKI z0AfxQAHl!GJzV6r;a2r$HV}HDks3WV@WUzrNRVQH76yZcuG^$;vXuzka5jN|@4F6W zMcGBg3xw7kQe1N0wN;7nq*H{_6=vt&MZfXy54ISb|F9HP{7)Ep%UbPW(t`g9iWCqD zd?wZo_v$0LA2QJq(OB=&@TiKn)|k7}FF@)Q4OjPbcA%Y*#nO&ibC8ONF2J&VszH zrbq5F{P&?nQMs?JeZjy%W?mj#S2P^mV^HbPePnENMk}E=BTIBd+a0uO??YQ#X)hkv zXZla>rFL;iCO@aRAd2}997R+)-iGb$>{6iH??k!ZCZ!%4AU*H!3@fP+VYS05i#`ny zlT#WQa-rsI$j)cbvvzOQ?yEl=NS@p(=Z(wfxpjt9Z`dJy*B+o?N)|4Fu`W}Yhy0^qyz@DRf zFB7$w9I~Z8X0uMaX-ab}`ON`x(6AD=@`pQ>-?8#Zxe^;;2sulEJMf+{zw#tvQ>lFXuut|--32Ch-*RTMCP@k6{PSR#KL1u(ocq9U>{%)1d ziT7=X&w@EdXVl8qhArYe^@4n!qdghIP`@Qi0W4_@?N+b3f08Z3`>F3$V7|*sBp^g* zg%M*qFHCqGFDJ4$zR26LtBhwBYJsiSFy`Ayeq%^>3{L)7>38AG$HE%=)aVt6e*Q}T zU=~cBYz}zR(+6D4Rpw8#ic)U4uas3nWDW|47K;vYkc%6NEf!1BP;v~8Om2BpXgA%p zE;amOC@inyrMb-_&dnmzOF^`r+6*ri}Ddn^5JdR)ZBWpfw9GcLGa@etnsFMHvjT%K$N?L zG=EWd@NrhFwqI(xp^Oa*+iY)lL$<@|MVJE7XgN<_2+IR^k1F(1at2OvwO9k1ttwId zvc{*Xuj_$iAkf=AwD6H`C%2B|EAi|2xwYr8-R_z{Ib>l%sP~29=qJ0*-ZS5%P;b7S z`HmJ$bP13jRa|+_>6fmFD@lU^!m7&C?`p4Vkgpz~3w62O zu5m>7oY++U{>d=5H1i&tJoj$rR)=AF{ny;$9do(-P52jl;=@s56@)Jcigx_er1{CkRNaB?Q!+uBnBvWCoQ zr3)2cf@Q0DqhnEr?)kc?m%y{U2lAP_Ot2N#Ck}R`m)?1D0pGI)l~bXIZ#C_5r$JtN z_k^uE_D4N?q=BznI+z9%>!y+C_a$Fy<6qH|8e?nFW=CHK*%2P$kGXEs!KLMKl(<;% z-ma1wtLlj@88X=E==z~i6{ULL{rmCC9D*bDrjRIqp4{zgXE}rdGQN+02Ya1u?VA8H z)f{j5`C$74;;}b%np{%^147@`IM>5H>g6ckMor`=GQrlZ((uKD<6ItLXJVXt zV^2k|iCvLbe4a|2c4S*c@85#CKc)R6rKtX=G?K}QPcWf+gp)<`$M z_tjqFtr`A6DXXPqS zlH~>5)FIIW{fT>?!eP$7MTsHZ{k!qGKMJdCosl7OLW#|eSC_$@*R}eu8In&)_axrG zVGf~$PF>iV^m)m2drBI3BSSmapyo?u%0L~z)H5WeTugM8rzgA8$}m*7rcG&fcb z8FV%Ll7rG$(K8#Z(inEEs$E;5vO6bAl@d+-Hp<-uAHS*;qXW&~tLYDa^NX)+SHAQG z&q^gG*iT>ZTdL+zULIHRx<^w!4<|IU8I%vT&3T_*=E98pA{Vy#z8n?4pbHplK7p>v zxCa9&XsA82I{eUO+MNWRI}`ckDd$oR_~*^9&#lDT|B-Hwm>=Hyiik1jt>|Hj>#y9Y z)tFMY?_{wJ*d>?9DV$PmZ@M_wWH7re6p z<5mu#*aVgn)gY6xP1YNl)UbRN{jH{h8#COF%ke^^Z!9QoXUe5nrHf8`p=E7FH^2p| zdnE>HL5!d3xR`3dLb`gKVpCp4cxvF$7lQfT&osz?V771NtSX*?rDcx`mXVJ#4~JM#m|t7O!c^YPM%P3ex}*+~I~O2}*HUcJ$}RUWG}sN#u3 zxbmyeuBWA%Y)i3Cb>}&ezm9siQ^wACncyD_#ENo5Sj;7D<*{g)yYnUD?SD=)#WXUC zT-){Vx=}uq!qcgK^5r!q_4|`_y0qR9vW!!RF2=na=x}Z;3AFPv~J!!L;C(LTyXNkX^$57`nrFaLR2iP9SNU1E^a1D;PTsr)=FTdxcqSKfJMF6j&+U&DOsGu}MY^7Cy} zkNAD(9v?gDhtc+O#C#bp<>5Tg!aT|b@l3-%AfBObDHBdVdz7hf{8D|$8}QZN%~zDV z*ml|zUmz3g30ls@W8+&7+(u@dY3;eQx)qOAM)8_ROZRxvM`BzVY>PW>Perk6rrs^r z{y}+Hn*NS62<5$D65}x{V@lr0%rOi3 z7T<0mR13wwz{yKhz@s+)Pt@uG?Zox+q2UpSO85@t^zcnb`hL2`fcenxCK`{Zm0z0& z^|_EGgQk|#-gEDaA>S!J9-HZfk^bJXv*&b6ACPh}Q`9OyO_*O=Jh$Vt<->{h%w0Vt z2ELTlmp;c7@#_WNFoaU$D(3A95S#g)m)Lp#W{xe!tzEIVs*ofNYkxVKZ^B^9z}Iw; z)a0xn6EovIci&*P22cs4?X$i>n~|>sEMVyMS6)SV`vtL|;>_~2u}9r_8t+!RP;neG zT2({_%U|nQlp8@A_pU?FIeAKli<)ib>Je`l%}V}RE@@VCXgFHvPnJ6B?d?kh`gVe@ z50Fv+NZO#jDluyf5j1>F9nd){9>t>QzvJH7rVnQYqWIH75>oaimN#ANJ1N&zLveIa#`=%=*{9A7&#?^0y`Nt=kX+&5BV7a9m@s`KduT?hVvum=47 z0->yjO~mVoQ$3_>0|{D8I^?E=`R$w0CA53j--|6WgkvYd*bD7Ng$K~v9LvMlPHUdF zw2vYe`LQS6=MxM(>Ku}?l*Zw*3$J!W^2HdxN3edD(CPCD6nKk7@fL#)VkcTvpzrNL2ybLpVf1{iG=U+DtzF-{g?a6MOrNc zHdUaOejK?IDZ$>eHupr{tE-%|GaU8&!03ybn%lVkdA5TNlcj1)(9)lx%X5-=jX!Tu zb=f%>DplE13C*$cZi9=go6E80VPh&E+2ZJHA^Y)^!g(n9=HfA$RAOaRJU?c-pv&WO z$45R~QOQhLeQCKm^7B4tssuPwwv5BNG5R_I5%hB;Bb7gYczEn9Hddph;p)$gOE5=8 zXPEBZlyXW}_$4(-VfJFNH;)_xt=95uA#W0+s`Q49)87p0)=>{3n+@jw(xxnQ zDkr#>vF<^4xA`Nu?b_9q!mmNVe8E3f-l1Y-p`rXN7)V;BXbmsKK*WvSf{mY*Db_#FvpNv~2fk>qi z<&9N~75}ZAz$V85?=b8#YVyuN#gh+j7>?7))74VdUU?1Iy?)#B@?A%K#d&!+RFUG^)_9Nv9Pb1w+dV_7Y-k3x`i=Q)X6Ww3%szxUr;h*x$rv zR=fP$7Qpd#s^TcYf}^ubZk8hcT=Zb2_)n3jX#bI#jAI zEc#+^kegL@d=1gJi5E(IKBMWQ(=L&;%fCN+H%7m191njX$ffuoQG#HZ8$UR`Htr-D zrr4@u8QA&@8YQxG3%&drul!?H0W!0CNy}Whm({FOC`)YdVoe$289-=Y5h_wRNj zWC;;dRN5tltXV>vB^6m_EQuCm%Q~a%vP{}kma#=4OR~mHc4Zm+&R{UZU@#anW5)L} zyk773=li{`<2tUNuH(4=gN~!S=iDFX{XB1HAd;UWmDsXtC-nTx%@yoRG!-zH#yui~Z7t?SICNIi@S=roA0-z$Es`IR#h#Ch`gQ zZAkK?@gS79jQZ52e19-pW+QNY3ShuKT$-zUW9x@uW58OtVdl#LdQ)|t?Bde=gB~Az z$@Mo>)b}_lfM=^~l}h5WZ|e0_mP5gYLr@iTb+MT@*H{$sPRek{NG(NDGUv?%M|`-a`%Cm-^iKLI(v-+$0-71rJ6T~ zY|l8ha`ZfZp3P@qHyi}Lr<~PbNWGb4>Klo;eD({OC4BHrY;I1p6Z9QymasDH-P_=^ z^BvcRfU9%Oe6zv~s%VG=Wo7Bs@W8{rD4Hec0<4MknLwPK9cJDp+0GH*uXt;Y8&acV z0(mq~?-=UGEBL|BFnX5@D?ycAd^-|=z__6I;1B8|N&=^Bawwh^0!e}=I4J!elJnVG z%}vrAT_i+A-B&%}g!HN@?VDjV?~uj?=2gY!W>QaMqw)5Vlx-}|jl)p`k^a2ie|N6VI_ku9%gA?y$33xz2d9JSBCK2=L>h1YmMuvAv$?wb~bY zc=eLelIfL`tq~#MI}bIyb8VTlqw)#y5bH<5y2}E`@Zs&#Czq>2^Pb*3Y;(5n@YnY^ zy(s%_Av7L6XtUR5W$Bhi^U%SKB^`$vFla$VPZ5$YACuqPlhILLqPVlwRmA7#xO&%fk{_sJd&ExHIiiroKhJl~9!%8cld{QVwwLawF+x<( zUn{0wiq=2xvAFwc_+CwZ86ke4WL5|@>(o`ueU?2NzhG9MrhatXQ#`7caRaB&S##v> zXIMd7%KF+%nK(6B5uY%aZa~?jjX?6=uevq!Z6Z5E?ffGGGR3?5zf|d5jv3>QLR-HC zCsamPg#o*T;2;fZc7!3es5}vcve-x66=t6XwJrHr+TAjQt(e$+xGw);6ty5a0%AT$ z?~SHi&L{_lx-IQhQM}D4RXHch2Z_S1j30Ph_XHzA)cun?%84I#V zxbV~E-Fy0-6#906N~%2n11J9^UF-IqYU8$njhSkr)Nfcw+?UDN4~#M;+~W-<+e}HFDIz1pdeRiDgTY2TmT;x(oT}|@yMd%q`PfX;{O3=~WhLdDqtL(cznm)5 zao|7L03g~+)fE(4{X)K6!6J)4v>>m7JwCOHJ@`mv1`gIJ=<#~P$N$kU#Fw)hioYhY z6%S}mjveJT>U92B*V((g&#tfs30eHtIahbU&-qp!9rSlBx${vGq^}8+El0(Jfn@wc zyMAI_GLbPS(Y_YDH$!GwgmBPD4e90iSM=wZWbW^yV*!C{vjo*Ph_^#;}QcIQc6#O`70d-Z$xG9esi%IYanv;>nFV(KeRl*m;{LZ z+ysRs==@}Z!boI_B82l$t$&@0?RU^mEolr9_een{!UFQnIKBI;bPMyN@`J>|@?K*s zwK`@`IweLTOZS9!A13ue-nd&_ql}Hvam3i=)Hqz13$$0Y)kja`dNut9;l7XgvM4PbaV|=6xW`lQGCDj|FrT^ zVKTjcUP9URo0WpH(jZ_g02@41MpDuDnN@pS8V)S**@LMs*fTH8DOFgLI6U)c6Afm$ z(&7^v^GE)T5YABaln3a7Y&h8PM>AbclVd?`RP|o@edGMf#JzdP|;y3PFSm6UzH@SIs9a%P~HtlQN7zW(x)y;D&&qJ!0b zQeq5{y-U2B7)eF0bcT!gpM8oop*)3ZC#x`1MP8P2S&!*!0C0b2+{pn zUi^vd^(r`B#BU;fapwgY%$euJAr~?y?Z^!&2!U!EuATFHcV+C}Dra_useLVnFC_C%bKkEj9Wu9kWfn_lKH&Ia7cUa9B}!lIkH4F zZsuVZyXCRcB9GGRUbwWOsn~9+VCFlJOt(IAnE!0T;ji|PI}1A>-_OE_t=6wb*RUa}c72#w&pHji95Z=w zM7~C;Nq1y(_!Eicr~R_U8(foF6(!O6fl|_E80;^7aMCHu8R?}aig~WxHzje&X3{G_ z_7#C^k8Y%hcMQ}XGc=}xI@8+qilodRx3E-8NF{XYxu46>h+-Xx;PZR=Jvhwul5b>B)l5>vVm5$*?czsu_M)wP_FHyl?jN-jnLn*^9_8X$lQ^p= zC9QM39wt8Yo!kt5lW@ze4c!lwEXNlR;hy$GaLh)f;`$$$(2`f5;UGVaRW*SoH|_~!LW`es~pY&B9Q5&2hG?aU4Me0vO=O68oT6=!<)*8_E-jIpo|6Akq=+Nk}cl6(4EElwcKFomx(q82h6>U~$rNAY-i9dOWIk%6Hm;%jkw|5&q%~u7iD<}sO5WtY34(lm^(EI=E>^GE zTh1kVQvdX%t|_z9?Pu&kd@)?LDS9`%uAl|Egk)Bz*RyHusrw3MO}kpxe*;##aoYu~ zYTo2s_>;kk+_hOC+MKxq<6X;!{`Dm*5^w8#%5<-q8YB6f@|{`kpici?g=UX-H><6Nub@7&$lea0^Y~{+NqC%nKf}MF@|iC7<(eZJHwy$lUK-U4ZmI6MqF+wR4m!DD3m zHD8-_1o)3BsaEcZ-xkju-O#u-`33tRWVV2pB6+Y=Hc~>F&^dfQQBU{!jmC8;6jpTQ zi}Gpq;J3^4CG54Y=2LAY1%s6asFapgl>H=I3u+5E#8UC{pCPYI;dA+${${cZ{k1g_ z&#mB*eO{sLzixdK2VIQxIo1fP-%BJb1?@GX;_c&Db4Wbu z_x`;2?c0SLEYcHwi>$;0)TDdU1X$46!P+VL~ zi5e}8cuVgh{$@&3U>-Hi70%I7hYmc8$2fY_a(x{@NI>W6s&5<`;Va0EVlbCCoi@C{ zX=BWnOM33#dgJHtoY57wV#&R$px?#?yHeOwcUzGM;tmzFs@Z5!N6EC;xOEdG<@lK! zyFJI8=080I&I5}BzQ97c9vM?ScHR5erA+g6y9qM;CM7PAv~q#{y+=}2-|f&QeCo}z zUbN^xr?e|%F?x=wJFyc3d^Ww9fJS6%)mh(wFWH`6z-9yet7fn6OziOeWm@uzHc#ez zaM8QoAbv4x`*nStngAWbMs8eR1w(P@S}L!6aru?0skpj*{rh4zfYHX1lX=w#UYw>b z>9#v&SAY6@H8q~CPyWs&f&5LE&E4g`j0Jv@+>6<}Sg_*=<i4GUYTrIX{%sYC6I1IlnTd{${Zl*25z{x5%IPHTZ?j zy|2Hsb$amz;i!QrmuC}os*rievI#OU(E0(7mdH75r=XdS?sbKF~% zYK}0be%7$Zvd$w9+Ky)h#51n0L$RCc{ESxblDsSoYuE<$Xs6nw0H?#8TKkAN0EaD> z7<^#9QvaO$ex$|l8zuhi*yY%_zZEC~qEo%znW(mwyUdWd4-L0Izw*1x2S4E)^1wS6 z+3gM7HWi&F4??Xf+^h60xrUNZBgn|b-Ifymt)&E%j3aVJdNU&dtnaijpE+NGRd zf(G5MqRcBX6ER9X( zu0JRE>)&l>=k1EsdE=U}?(TD+kY*ygA_Dd?L#KkqJrgd2<^F@`n^~d>vFf7K7+*1G zRr%RBfunZOJ8divz%g}SWxLgC^t(2XvUWi?<3J9as3WAYv$g4JJhNb@aaIqiG4^qfpuG?1PHl($`>l^~?z&70I@s-d&}l+E(EzOVd7@1M zhdv;EBdqw8r#`MM{(rX%LC$E~5^J$p|~R&AssyVt+Q zr=ui%d!ghK!ox|^@z@t-lDznKn1VS;k(1+S>Tbb1JF<1K|8d85yhXxrD1X4dc78K(LpOQYBvXTvnc*v#JCa*(*roYWg$Y_R3?{k0V{y zm^`|PZPARrRPWBRg*8VNzAtAniWc?`67A#kE81y%EwT-1d<9a&knmE=v50>EZq8#z ztH;#GqZFsl^d9gzJFB0&4yhco4tG?1GYou;Bx z^mZQ}*pr#5b#QT~;Zg4^uX;z=_W4_>4Iup5_ZTqrS~#wfR{YM;IVELRY(E=cAwCS1 z(g{fp7kpFw&+Ie7>>d07JJIu1-bJ(Bi zQ?JFierdz@iN-8S*R$O8pr~g6X%O=46rLBD&zf0OeSjGY_a?mz>82|U{`XC*wl(~A zqK3J$cUKAiXIVxB!6NmaeXAs+)~WNU~&G|L5HV6 zufY>`20vW6Kbf1^y#5zHQOaaq=sWS=^)tfW@2tuNu-7J$TY1MB?*C6h4!eP@K}k4E zR&V{5Y+7sT{~_cM5)DFGU)1+*wRN!0*mdT$aS{Le9~;^GIjo?yWHEzpI~>CjXCh)EJbMKTx}D}0yA zTRNf%4X*9A7rul^O8h3E=nPxE(H1rQu1v0FF1g`JO(VqThnlfup-YwOhDpv{hgs)G zY?nEbBsT(kKwRosn5L{rVzXyWm#JzFw*u@|)m|W|Bsg>925=q%K6a2iBwMqmZHN31 zdu2qDk zQ)MR!kk`lFaHn8SpioZXH(ql4rs=_XP>(gs0z!@rKXdXA)Q>|{j%*9u#&equ!{_^rp$XxF!i&UJO6Z+wOfrTz_2D;5ce&2fLRL;6VF*+# zH~tlbNq>&JO~`hV%-6h6+*QBR_fXhQyqPsm`9>VIwRnVRF`=>)>%IOOy*k&!t{Y1Y zb&rW%VQ)91D^DhPV)8b+kpKALa@s%r|OKZxu2A|Di`jO;u4sGjo&gfo%#8>(W#g2Scym@JNQ@`vE zgZYC_AL}JJA6??Qqks-Q=j-2lAR89ibm3d~VOD;25O0vhc32L6b7OK zGta5^v!Ri^1^W>L8xB$QWWI(QD`FH4q@6YhNDY zbWh0f^WgZu2Ypba`>4`ut=tmbndb%7X&NVMZX{lseJuy4kzdEVvvx`yVQ)7G-EjTw zdds@8U%4Bc-``s5?$Xy+2$hVLLcs3My`dR>423+%rlW!5tm!7)>ah4JNsz)5fa|Yq zzx#Uc6}ghqV;%;5@kzRs`;_;>OaEEt;hW-3$2$#K)1QB3u?&EV{G%0W6SSC8pSwsO z4d{*Z^wyW@I6&5C@TM7l?PNLBDkOiID(c|bbeRnehG(w~yo7jHV7JVa$P35k@<=37 zWg&$rKn;V=Ptf{T5nz=s0iGLwJO3DK9m>OpR#boV&m)|0p0>3ckJzpoW`_8}{)pjZ zFD|%U;?vFy*2cq3Zw=yc4_5^Fu*uS+BTx4WHIexzH*+DTptl<2LN;xbrM_T)Ke>L- z)TP{&%^l<0#cPYU-32@cww}++HpcQ+d&B8kd>HG1yhBc3`l*J~PWE~kn9gyGONzTDQiSW1&y7&dAW;?Dx6$UhqyCFv}mR>}(p54Y#+HS=iofodaTj z&~fx_D=UoKFlq4vhR=Q%iiZcdYk;Yh+BXyWsfe6tYeD?GZR~UuT}C8zsT306;q{3Z z>G3XfzaV>;A%ii8_(=Fvw1v<;mg6Y`PR}ib8WBFK%{w&Bo|hJO`aS*|@eceaH^`Fw9T#qE};4vwmC`s^o;Sq3nyrWaFkd}3X{ceTpkfheQ(L{nP%8wDm?}8ToY?Z3%Zok+80E;bg8nh>5hXiHO_Y{>@)$d~~L|;D-HM|4Z@$Z@xFL zy>!qp;2%7l(p-~u>T$5Fe=S|q2y%W|{IkfbURU!6%yB-R#5Ag+lfKgOVj!obW4$l` zPp#YgE22t|Mr9{#T+*!stashid3kmS@E_qu&l5O_Gi+eR#PsvnseS=Mch950!s~>3fB2hq%Kh_23Rr=!MNm51b0~_+?*9BLJT1 zpwGCx?F7GIZX|+?ry(NzbYy*M%k;=kd|Zcz(4C!G08_?g?8U7YSYWV8lB`Vnt(O^} zIA^6zHgg!(Q*b1^to~Bhw@%A$;}ZYA$dd(vumXBh6PMF=U_>T@*X~aqGZ|B3JlPo>gAI zU)@|aoe%n5!M(8hhbfx%1L~{flG;T3rysMP`?{^3Q_}&k^+`1&B6{ z5sz3;O@ODEIB7g``MQ#@x~-CboI<9JO z0*}4CQC<3%CLuR-)06Ej3;4%d7NriaZ(5?-r#Zh5xR2qy&V35JR%Ktu@hO)7&Qm_v z>(o*8uA{7)OyC*|>Wy%2^IEz~nt1xZ87b-E!__c>zJ27Uq-b21e{Lz9j#_@p zcnHsLH`maV5n~%Fja=SN9jUrIZl93YLhEdND8_mrEjzPwwO@*!<&(ltLxZ}oGdbPe z@leYE6vpw7YVf+K(s5@w;a#}P)(#dNvpd(jr^I^ym21d$m%o$aop1?Be+zJTpxJKO zu9P%?&FL4K-pW+U9y86@?Wz7n{hf^tA?+ncu&S-1Iru0wm+zIA6`xJ88dz1DKCGw_ z7tq?2vLp{76EX>|DRFl(8F(h#h51uomwf~73%q< zqO<$f@HbYVf&3!v2z+t)`wix|*ZVU4CV2_vV+K$SDX;LGQHml#0`ia04 z(7BMB?Jnd`ONi}!<*0M9>mb>R^N>~!#2sh>@Ug2?v(lW0gqs@(%3450fte(>yK>NHoAZ zoV`9O)A`OZdo%Z%QlopHabV<>LJVW~0qasQ=tAw1(q8RaA9*w= z0xa%pZ#reSbEhlSLBs~79%%=rk`n@za5XkS4d7u7r5Cfkz5D(gu>8(!tcaJYHn`3F8Paag{HM=KZG zdFTcsj}vp8NLO8pT5)TC4sIS>g_~Zn<9|h4;nuDA-?2Jy>SLHc1W1DqGJC@pFRyx{ z`@isf`dYG$XH5UjcJ7hs^j^Uo+!yAimd5A*_I|2Cc4K)h+`p8ZWV>W@zbAS2mUj^sz z<}#<5&Gn$p>rvXpT-<8Q^!z`|sq_VHNlZI0Ky?5`J^g#Can`ADcH6C<$6a_4wTx|jl8<7xUbHU19(Vy2HMsf)%vv+YB zc#0o>GwYf*!!0nB81KX?xp|xGSoG z>~RP1YaZrHFM9N2W8p_J80!?!#Dsp@^qCR%!ocjT;~J$@ENYRRbS0NhBb}TgU7Cy@ zk>`lW)|ZqY8$OoI@MtgkVHldvz%lVe?((F|IsPyy{7zq*-royCC|6v&%|vXTJ8t%NGdJO@f$A7G z>PQhWz#IYfRdP>U1i-T*?mK?!DQb!DY$$UkrNHBxRd>LK6xBsKb%wJ1B~vwQa6|I@^3Bv^{7Q6r8m~W(Y=<;^uXCGk zCSCXW8joLtoQ`6BHK24-E(i}S^$FeNwKeY(medNwK3G?*)RAb5#Czx?euu4cU<8nl1#v_+Od4MH5UDTe%pTb8KdH=lFvyD`*dICnn4Yp1Kf4sv}%ps5l z*)-H}OF`;4RDw%|@{$#AAL)A-*mBb7_+O4sR{x2+Zu)6L1nzA4C!rd8OVX^iwadB~ zEs+et1L}P|>^aYQedi2URD{$~UlsC`C}opjm8jZIdz@5f?U6~ehFyv_JMd>ZRj(jB zgX)=^yLC9{o}J!5_=06^=SIBDq0Zmo9eRD-QLGpG4Df694S*x|z#U%BZm3DQ&_n>F zX3Imj?5*K~ zJbdkXYQUDl-h>$#_yp-I8q@%1Rg(SP#J!3|E#yXglGpNX-c4>n zO%P`d>GG+;Gaj9wp#VT>dj0g^)#^M_#{Gg1CL{9rgOWIyN>Fpf`$V04I|ifdj&PN< ziB)voAU?Jrry|=O=P8%rbA#`DsngdX$tjCZR;ncisI89jS`Tca=(V!Ch&ojDx0YG? zPBZ)*+bx;963hH!2mCYoZhF3HiD1Mh?#-TWdg1B&1c;WWs2gH+?11a|o%J=#bjsqZ z;j(9g$7(!AbRs)@N>^SQPajPYnfGw-=$=KmN);HF2Mk1;>^Ly~WTDfpMZDsCOZCIA zV+fk#;P=>A@0wCM`gSDFX*u8vY7@ZMI+M_=A^aF~LH%Tcw#O4Lv%Y7+I2Ye*q%<^( zD)RLA8c09I72{7hv15NKq;TP0FGrJQN0y_?m2!>!i>1}PMX)WYT_F{#3GTI1L5sbF zV@oZn>8c6ctC+FYOXzhk$J?C}3&EQ=)_=b4kaiFS2}T|MgU!@A2qu)RwfFx|tzG#) zTKmLFe&h`g$qat3Fau{JxY3alm4G$(59{QlbcaYFRny8SbxUccttom8up4Baj zK?&FH(JWY(G@k#)EBXU8OXelhWZ7SL!=P+XuIk^_9`9@!@aNZ*_EPr?noo&@DLiYZ zA|b>n7&V|?Qwq>zc<;G#b}78H;jo^`ozEuyPJiRy;V6~)K?@%9{r5F=PR{Vf#!4e4 z(_rK8p*P~?lrXxepi4+VCP{vZkEFXrC{m+llx9xNM8gXW3_}zsQ)!P-Q{;MXR6D9R z03h`Ssaz^otls0Ez?>FRR}SIRy1(uqi#wu5hkr~G=6Q$}=b)ZF7a}(p3 zp^@${^J7e2AJq{PU)GvD0K%~j3c2hR{*%|X2VbI(e-w}`nBpnqwD5lFWNu8|cPWy# zw@!Rk7!T($L;~0R@yfVT?Vhj;`sGSvxg#Gq6zM;nx&5AW8siY>9tDJHsK|xlFeMJ1G9>5!b2;fJ~u)*+gS?_WGCweF|Jt6PN)@fj$ zm(PF+t4vHK1n3>FS_=r<|8_k3>#qK(kC4|BgwE8ccOt@;N3PD^<*J-@_Dl~srl}Xg z&nNgUiM|N3P;qa2v9T+W8W%lcMo>)!VvMWOn>Y*qGM6cOgnBLde%!>jP5@mM6t5KxgbJV~WCzc9 z8^V3HaHqSt8E`+GkVb|C{CXqk{a(q`7XG*f?v@D~2eP+)PyV}IEhf8t0hYGZurBEZ zSlObx&d25_W_DnlzbOg;v*G?} z;@yL!v=WQTW|9+4l=tRTcZKEt*Wn+5ae9&dwJ=~Kd1nH4LlyC}1xZiy^m^Wu=JV%b z$oa?c#sF;;A&t)@kSyiRUH?t!Tdg&ShTy$Gf~q~9twZKwx};0QKsZEL-lMg|tEL%w z%@Kp*PaWUmXn+)LTN5BX{93k508zgp(_`;^AjgVL%7@ej9nrI}whCgL%`T|T6koIm za;GjvIq|$E1GOo~#HxW~s!i?9{gtJzK|PuiX^*fa_%x_0ELsnM$m$oRSz?D_8SD0P>Ji*V`|!bo3Ib z{FbE#Y=A#_mDjNN-89=V34SK&T57SQyp>Jk&p@?ua7WNZj)wOEZDtc z*)yb_*c*7_C6Qoa(e&eIMRlx5re|qDn<Dla*YvHHkd$u?R zKRtglNAsTdmiGL)u2Hz?ChLP@B^`X)jhR7p+}ZG>#ctLj(2UUqsNM$e8Eo|f8E2GQ<)$p_Pw?{oi|{5*M9w6m_7Z@}H>!;X}ECuysjq!;$_F;ujnX)#%F zCLIB(98tM({6XX~om>i*`B>3b|MEV;0nbdoGW8XY)} z1V`3$BF{Cjcjp75+wYZV3$hbH{U71S!&E?xRL)yXy>Za7`r31afbZtLl$tQ*fAi^< zM&tXE?$(CvEn%rA|4Swt`dL>-zpJR-_nI@SU0VowFb%T*LjxumI12QJ#thgTzV9N( zeaAIb2V+r|`yCqz>E|pFYmQuf16#4Ea%wd2$1kk+vz{m2dA{)Wk#F+p_MX(8>5QG9 zT*a{524X3@sZYU=(*9$;SQ|T2t{a9v=)^OA}79#@kPfa z%F(-~(|Vht&uZ;=h)lP>wsA$M@{{#%?&q6aGM)c&$!=#pH~BZ~ssS{pRiM*Un5_Bv zyBS=B;L)Pz&b?^VZhDP148O?udA|1NdH;W`G;fkWfDB+)SsC=B&38y$q=Da%^m?s9 z=#vU}mw_fL+xX&KbgSuL1;90x;@EmkROdiX)ipyf2egMGba`W!?VqFB2Km03l-`EF zd-!7eczjFRF8BO-2m^^;29L=hF#me`S4dj2PnZ8b|0fZ3_^hGl@7K%&CJFp4USm#= zGu64i2Q4M_58~C{dMqc$x6SooKd{xBhT5~>gYR$c1Qf|@5Vc&-A061I6&TYG#T_ck zJoaU%-GB5=d+H^@hjG|@e^RT)^JMWPvG-i{XxoUm)q~Hzy*-E1CxwOq%p72n@#(En zgEzZY+i{H7_ZVI$2AsJwxt!|s{{gCD8-)K0s_CZ20H@epn25e)Erd^8P_&Kl_8bUca~Z1IN0TfDnR?sh)EhwUhhMsepr=T(jQMuiQ)&Y#;p2f*uZP2xb6g*WU0w z<}t<%av2eT*;hORTW)!DYf>+j*Zv-5>Z(sY0t&%v`UlJx>>OTTA6S12A&o^Ce9BxH zptgIhFb?I!kY9O4g`I0%i--PY*7_O|k{g<|u5xNDe9Uz?w9>VR-lWwiLIH0Q>!!f8 z?LYCGIlsh87H=0-U9BKm&uwP?a&>EsPOww3D%QRNAj#?FM;WgEyYeUZ6z!RflMRgp?Z(FDC>yu zHBTGnB+|CqmHz$?Ga}DDLvb|KwbQ*Yl6W^5Himv@Bnl0&c;60C$}7I3YM0)SUa; zb~Q_~a{b)(7QLMK1ud>D2$pS?$wNug_yZi*52e9UxH}{EZpJ{^0n?uJgwEl$o_`f^&iAzkjt>U6*13E^K0>+y!AKXvx zwRv^L+^t~OPUb8jbEGOIAX8owu2>cN4h~>^-$cgSS5n12P7a*gD>3af=p_g9wp>8B zUCWE_`B$JpZwfRQts>W59$C`w3L01+%ZYT|b$G1CkFd((s!Sfm(_-pd*AeHm8G2=K z6zhs?)DYTBcTmgpSmSZ;qWx=+k~C88!G;ROHNMoS>!F0b{cuAY=qD1#0v1c#UrraG z9h5&|v80&dUuVr70aS8o;7IFzXxqRXv-(5=#IxX#2;Y=L9rwTlV?!`&SbfA?V?eYx zH=RS&M8}G|atNt6`iE@|6E_sN&V>Z=6|E0bL1T*=>X)RNh!+a{fL`w6A>aK6s`%H> zwe|W-=!zo?Yg2lw=O=c1nuHxmSXGIv3UI#__S#CN9*FnTN$V8BA+z| zcwf)+o%)02RtUB$<3!oEh%n6uE1m^_cWwzvZf!!Nl+n?U{<&D&`7ezxoTn^?k4lp` zB2{;=UHoe5Q}eYk?qYk&<2%Q<$dcnl|AQ=P9}xiz@8!!s5iW&5YL94)=XzDIC`48p zmKm%)$0@=27PsY&xh*qhngWxW4QsH{UFJaGW`o2Cljf~o{WHYdMFiDky8}l{Mz$Sr z90sg-mRF@v;*rX`V#XzF#fRRn4zb)2QUPnbg!w$_@%nl zYN(9tb6|I5wcR)*UXkWg(p-uz`p%(PK};`U&_`ygVf)R)eYw*;Zy)VBkVAg!H!M_n zba=MymnSv$(Llo6#wDU@t00$8`?YB{Zm(&UiPt%{?P#&qv1jpXM3E*d4vqWRJmR)X zvNIgmpm8tGsz()7%LpHB;l3HtKiF4m=0z{ffo(ky|f?4_FrvvjZ{LthC z>odwvV#Qx}*71rmb@u7(uKYlRo^B4_U|A42ID4{G4Y)~C&Afszzu8vq9p@M!R|;9I z_s;r-o;_nuRsW*)7N)nA@g@F)hM%Mkl=$f}Ygjx#49~a+p3>O+hXy0ok=Fi{p3XU* z@SC1|jv!aXbLQtsbB;_#{fY{VaCb&+uxUA!Wk_KUy5iANI9W)1-(d^;f${Q}=}&q` zoze2QNV<^s0Y5)Ym!bSraVkAEKzvD&UQ$YkEHp4{FU`#|p%kYLo8{;K^9>(S*=lYY zKe8Cx=4nnPG3+%Uk9Fv)7Sfl)FDekPDAGSo-+ZY^y(v%L)_6TI@gMLQ?!Vx%6OwXl z@YwI`SWGgo4BPOF%?Mth^LQ`9b=_hN zz&@jb%qlHM;Eaic#5jv;c0{|azT(vrpd>BT4+$h>{dceFC%*nU?uM>`oRkV@XQXJV*kVbWz@L& z^D{&v=S!HLXnd`IZ(cD!`vqzbUZ9Qa7pMg_jB>-GDI46ue5@8r{|96&XCuq{wv9Qe zfcPjS4h;j3&jZh2FwbFdBLi%_*#3xCY?Bl@C#}dp$7120w;9beW-G9IW^Y{vK){#K)74t0UxFIRRhGWkoJuA@;s}yFL z*A~9~nI@I&4>^&O(7Ref=~}w>L`s9t<=?34 z*cWKnKI`J^??Af@>}n3PnC{ctVs6@c>aRadap=~}j6q*ap^n>;aJzvFd+JDVLFC5uQUqH~AD-EJ^*EpkU9yqplavMYcheYCy#CSUHhjEu zsWRQ;`xSR6SXL&Izu}{(o3 z|H1@R9q2b$r=350>D~h%tR&Zc3DEcM++x`QSlz0+j66JvQ2)1hv7Y4JNSLwt?Kzk= zlEI1Q^*M;<3x2^)BL2t8%gzGl6_6RdX~}P}Qz;pz+ja}|wj5Z_V~VXS_az=JtFnJj zMM}F`VONU?-WH>bh_i5g9c)o^K0Td(?Mom>VFQn!%tZWmi^@yF6Rz=vw`(y z1Jf8fXw}a?{>vGd0SLrVziU)0`#Ic;0^L!u-vQO|m+#o%Q#n#sj5rPx!K#+k0mX9I zeY>fmi;9%pmc74KGI>ljRVrb1+Nt@$qwB3WlIW!yQOa4WS8kdVT{!+zmnxYppOb|7 zYyho~zDDB5pR#*dzDSRo(@TU*Zx|{8z5Hoh52PnN3iTbtutTT)kFj5!zAL@y5v0dw zabf$382RkH+<(|%vS3}by@!jNC77S(rkBVcU7Cjt2HxPho9)jAHX2;DTC2tNjgm}R zU}bDR$;QHKB&-u^YgaT@cBsJSx%s>gZs6~i6$g2#NEvK_>9?fCW4D{P?c9A(IyY9k zI@?r9m`9$57Nn2*{!g7pZyb8}d+rbCoNu@Twma&dm2vzM)>2kCVQfTb-4DlL>U}$5KVXkHlSsX3Xga+O-??MsCD$7mg({%5Q$v0*&Wfjl z_}!V#>)UCt(NXu=;Sm6LN3^tKGl5#DdMvPzC@+eHbh*?XD#2rZmBGgW6fi#~p=#AK`hf{TaXyR4a z9jXu^7I6TMmN$)A`u{wPbRi@)Mh_Vo_lQa_F?Y+FiVOdT7~rnau~X@7IKwOu9T@l! z-`iN!SJeo`$*x%huEBu6tAHr0YeRKhaQZv47|ASb6htD7iwWybJ=4~9wnB|IzUaBp zvoqCI%S;(Uk{dtyIA-$6r_#azSM(NpabfVQ`aM@ZnVept*;Nhk4jf`sUnGo-n|@s0 zY48a8Z{E~{I$PJ`cObQBDh)axo1F=qyNfRDcE|lC(6gQBbVBvzxGYGxTQUqOhU9+TJDclTSl<>zw5Bi%RpHvm@TVwt3c|Eq(S1t z#DC_`*=`%bqXa@JxO!G+&AU5)EJoE=Hf-la*s(*JYlCZ5z`uA;0{9m*SGJeZs*)+F zoB?LA^ydM$0n5%_rS4Vo)?dYwHV5S(uBF{SP_-D?#tQFqoX;dSw8nZKBz&m>}(fx#}YV_E*aS$ba}THV^Cn-RHSe z*|U1E6J4JPf`qPEI@&lVL?T*CWBb7urDXbj7~HfOvnVQF;q9Fb8k@3YYR;cBgBbC) zwgt43pfiJ4x3%udl-T`qGTH>4R9x5kC#ARnd3-T^ef?u1FzpI~Ejz~E}AfmZAF9+alki*o;EW$+s-8^jz$*=2{YoEsfk0WZ5Y$vcwN=S*W`wn z$CwzE4Rq&;zY+i48_irRuP^A@QvCZhZq1Lse$D_IFyfIu1~?n6M=8PU-lakE3ht`< z^X|gnUKp$7fOr}5#SdgPFd4qf-lzcATd3m_?*jWSZyMPDx$_m95&Bq4QVK-DIr9%` zqE)G-N9QQ=ak$IKi<4)v>fa09<^Ub5@XqI7(V-A8fxWNmDgr|fiU1ogF>bg7x;3yO zlBG3Q)$`kRg2jFhij<4>s6cx9zx}ioawLYt2~&O8_R;k#zV*MU>r0yvYmem}QInC3 z0I~I+*>^aZs9aUD!P`~kE=^Y!2pjjz-ur9;2^FHCH>8&tHmFND9|ya=IsuF^CX_HD zd7}8I3Nq`x*)w`gJ3Yj8uFL|t`T~<7;mpa!lv%938;H(K%)?UC79qGGh3q+qzZqzf z9eQITXE8UlINMs$jVV2L0ZJaAWL0|bjURp*tVp~0{eI)VM>1Wz zsF6N3XS_J=&ienkm*tx>$_QArQf0kFU#`j38X6bXXO5hy@?$)VKH{3o+=$?e-F{&r zsgkr)o*jQmDUciGpYInU^pOkw)%c0X$Ix=?w^zH5SqDy!5+ds41l-Y3wPf-#5 zjO4gy*KTkQrNjT~VV#~pjpR82K~fm>jAI?*v4la*d<#lIeFq#hjT~5!F-uR@`H!vG?728nApQb9oJMUq`-CBLVdOMergijwD z9fFUvoom70_xl7FxPcOeJA$a)68&N9k;+rrn+FWEpKN~&x-#Fr+PChiHKLy46zk{^ zj-$8wBepR^_+}?q7knnA6L5Z|QUCDndmn_e+JjAKmYrXi7ogYp=jt8ux|iRKi8+Z0 zfsz{7e9!LplxJIZtum`~X&%q}_R>O=6rd?5PnjAApj=E76N^B?^x4wAZ^Dd*7_k2& zyjf4{p+=;ZxPFAa!@u}ch)*L`ocWKq64ZC~FE2*TB-}7`=6}MaD(PE)t9e{hVDZ?e z8eY^QX`g&)u>5RR1k2CNp{pgo!`I^WEN`FXxzN0EUcYyH0qbty<=X1R2;wYi8r5k2 z0MKCk?}cXA{uOteMqG*-`6A#?^?vPsx)wx^y041rV7miXudUH8TvBa-H^)bNiQ}*2heJ`|A1k z!|kL!H}dv1*-1jhSH3k5o4T&kThelZrChc{0V+lpW*LNbPlR(7*PUX8j{bivSi4X< zzb4Vg^$_ID8~{P`V%C3<%9jyu1&7KvlH+cXCt^(_s;$)y#du${30a|kb^WfBnKfCb#cdymKNngpRXNp!y2`ziP@;a79mmzZQba5XLJbO<6O} z;lCk#H9_U?E@9=hj zEnE>FES(=R+pcsq?AQuCYRdS;XG9?Pbba&R?NN?;pdy`g2NY_{jB886!yE$!g2)0> zLmNaSKi6c?c0l1!h=I_WuiA&J%aZ8#P63Zcn{Z*hp!lpHx71{xcs#3*k8D7L5E5%V zzL>krA^Xy0d#Bb?_6<#?$!*-0z3r<^cm_OQBZ|F`59KXwK4z?M7RcVHKd9QyelET~ zX60&r|0WdFvfW_00X_%~WWPw;oTtjGWHo0io~hWo9(wNi4AXfgRx4$@Xo5_wYY4dF z%}Gjc%Vra{AC2l-uUhFm!9AFq*?kZ7;M~{wzDkW=M$e&IN^}08>CuM0m+$1Cv?PTQ z2aoW^yvKW?x_opg73ZZ@(tZa`#T}dLY$NWE`Mp}Z%@r(WUC+nQ76)30ex!8L`AoDKxjVaSSMF<^ClKA>KPWci#YX z2Y}Bd`>A1^U`a8!{}JDp4I-LRjowEMg=h6QIlR&v%~6y*#zg=XTRUUxo&um^Jr=4f z%FyG?xR%3}RhAzwD+=v|Gy3+j#P(+Uzc^>7EjfvZnWHVcw7rysKg;XLZHJT!!cd zTj`i#pY5N|9rSk7xO}0R6B<(~hzG)7g7h9dLpxwocxlh5$DhLHy5#IE0yk{j7L~a-qPG~ddrh2MsPC`$DeVzk-ApTDQN_3?5O$%T+Ze<1j`gmc;iLIJiq8gT zJ(AgtobBA5Sjb=@+41=?AmJ=(=+*oh71Br-a=%CuO>Ms8m=5wwf~u93P6~&#t4$Ei zbb7dX*|_k>m?t7P8?-{lf$|>l<~=Cj2A)Syz%8Wuupr?U)R5Y&bFv#op^pBnKT|84 zRT|XCMFL#0we+?Ii@!k?^(heI_089kuJd;xWr3Hz%$Pi=ZR#!kWqR~(YF@pPn>AH7 zbsaHy^;11g=8tPoQmNz0-JkZA_}SnV!v`x~>T#39H}aqn^l=`go*-S9zo9)Eg&nLi z;<0T(sk?Kj<_-nffQZt>6okZ|$J67c*%J@bhaB1?XC9vR6EmYn*BK_ALp8l{J#x5( zy#K)4y$YNmiEH)xL&=NjnF6=c9g$lv4WxTR8A6s1?}%?k$o3UM)fYEtS5(*Shu`Qt z&40r|7GS4k7F|8 z916V#tFqdcP%-2k+(z)JvkwefJUm(;da|T(#7*6hQH*(yRm(HTtW^&1NSz^lg@o^l)QBu`3<|y#N;GUHR zg!#Fxr20&F`$M`%hiuQUn^k_yU6yemQL}PQg#I;`Eo014_2XF8nd(Uy)bk@`$Kcb@ zS@n!X1#eV2Qi9Kr6M0cZZEJ9N(a{?l10GqWrPf;T*9}_7;1pT%qc2?K1jhS~lhH%eMP4DxGb!j?%Jpb-Ayt1+JPA6VSxkvz6!p>gL^wt`GLGu71rdbT6KB;Njs1 zNT(Pj4GGtx;~BC!#Z~Z8p*#+UHp+wI zf~1DOaw#d@(RP{C?a}CR+DmnQ9Q!N6FRV%MQuEpsxo_%(_Z;*;@ld=ljk|?I7hL&! zdH+I>su|2m9hK4UrM|dcEz{{G267(1_Bse2dh(L$X*uIL>ix0WX}-B1YYBn>E!NJ7 zB-*cD3v+pg{PPC$MbvA2@B0*?&2fpH~o8`>+i6*6`cwp2>h@wXmDMm@Xji{>A! zHTDu8R<_)9Oi1Ue>U|CAi*o zOm$0_#j|k}+TO^CXBEmHd>r5QMEm8%PKdrr-ztZgpZV>`ZT62$zJVQEBnQZ4XQgdA z*nUf*8hUqYk|q`RFGX6EWmA3xKS_3p^Ja^q&6A%xCersa;!ue6{sx9S9-;Hbs zCrkpN?mhJt{5NhpljP4{4{R>z%ryW-rNypA3#gm$(wj9^b>%|1*^h4gh75-2c#QvP zZ+pR0myBb+mpz~VLd?olP5nh5#tN0#6H-eg?mN>21>;}~ct!5H?0&k67Jn}-qvH9O zLGz0ah4JL(EeW^96~B4E{9b7^WVt{6K*N#^7Zl6uX9trbBpQfr#iK(roci@%Qx)R|WLR<4^1!t}{F-VNBu`B}+w}l&_}?aG zq-q2<(MdA4%@3A5(dOUi+w9rTR(&U}Q)IK!te`Q`@lL=jljGjEQp!7}u+9*auOIEb z>{o9D90e?j9?tXnfwD9Xt(Go!0NXgZh@1)>W~fcW9% z@-Peg)UGy{F5_ca(BJG_cT-yQd$XZeWo#a7f_!b!cj81wObtT`qduWfvK3ZiCmkTW zRL&LkS`p1bWb)|P#8`mRd8u>1Ng_z@=Dj3@Uc@^pZ=U;*ImW#;dh-CkuHhPJ0cV?j zvn?j|cuk1g*_<9#XZZTRxBUA4#kgkf(1xpi_Stxl#qQ?((p9X5YIh7V9AZ#o!uAaY zqk&jYdYWxl*pUZaf^1>#geB~{c~J$n#DnG-!*j-WrB5d9JEZ5w&)id=4q3iV0%E56 zainDSZNS2=gQfAy_}lfka`LQX+tuQ=K`OLtW*Q__>kL+V8>$0z;l-#pU;iC|7>~dX z1%6-7HAeZ*~n79WOKFj1FAm8AxXz+C}PWJi)^*p4xDIU?4_DYfzumrlL+nT}o z_HFr}9<3boUAD^1Jvy=}vR7F8jaJ+x9HleF)n+p(sDooRMvCNx_HDkxJIFsOff50` z>jh2{ixr6_%TqjGi!4;hQ?N!zFICbWO)=fi+rnuu|~ zePuFnW47eVk=2J4PRTt^c+cP_dISDv<%B6<%2eQgV2Ob-Fmuf>#0zj&-^2OT7!|H{ zu9c-JOau2IP1s9EqPZ(7F(aMwL$&N^wip$?bEVJb1>7l2PAw2dJgqls6O=2-S_SzH z1yJrf&{d)k7+tfN_Qz)6XShadr8^Qk)^!!Mv4(&))<5`tpA!8?X+!K!Y_()nL~B3{ zyJxb{{}IF1Y2JWbW;k)_`;)`GM#=bzrMCu_tEvZ%`m5E8`9hZBSI`la>)qgtKW?V& z3J>TQdKk^SRNC9&H@1vE=i6pezC{Kj{GkSRbNiq5djpGgj1F3wiB`hSb%4Vyp0w{C z*a`AWw_Z1MNX!1?(8`t5oJdiQ;*Ge)3}`+ng=Tvk)FT}Es#7(k_jhAfo`m*P{P$o* z#L4X^UYI$K$aUB?d&e>MT|b;c424)CWw7_83_wHHj*X*+kF&;#GuNYlR*!J)ti$_`D2Z(y6KSqkCUDPVoz z#~Xnj{=Nfx|FFY^F!}43nf|BxDdeOpusiy^j`|PmUHELOP$jVACv7rQ+IW)UINA?x z@48<5oKg4p{KujF*cw{P4(eJ-B5tXJKd7%GPkCq=sU0vqmDO`XzqXEXZVY8TNz}`)zT)aVi*G@I30%Y6>j17 zn|s#t^@)|&KaAP??}?fr_aH3e?&Uit_J27W{44q69KreDylzp?n%7PL&Fk}btTrQZ zQxX#x*C;0yMa80F&G$n><09@`QiRk#?mi*L+&!M_9#fWt2!?*D>&TY(f z`3N_E*Padmv9a$$Y5eCseC;Od?a~P%Sed{D)~G@}4&4M2PTDQ;(@%Ws z+q4Mq)yj7w$TNRC?MJJaQ!e{;js20#7`VA41kcAENyJ$PsvX>euhNI6q@nkpA63Qc z)&^%J*tyQp17;s8W3uQU-OS%E@oRTy+6>HW-iD^V@GPIVU)uEz@$A=MUd0xj8@L4b zLD?m(7@2*oU6s>?vwn?1r@zPL>n8IOs_q zsnxeZGWD{oHpdXqW{Pt?5Gs^D%0AOD;&rtO5u|=i7oys2B?$XQYt4UkQyU_AZ&?-S zG8x%(f6_)aR{f-CQMoNsm?>tu*V$hQEM;au9#aVLfVBg8J{&>Wzdzf&?VE%x9D4vI zKecPS$WM5-+M+T&r;f$tQtr%O=P(b_@k({@{Ox zKVBbxr1N{#s_yqaj*to}w3{5}I$R%GynAU2NBqDTz3`YCdOkk=MXvu8&0&J!w`#VZ z(gphwWdj*=ze=;5!nn4QW?(5tdey|;e&y!Uf-0l?MR5)SujexmKPIW%IyYjJvs9kG zdH8(j{=pK@>#sTCj;!;IIPi11vu31)CrqdiXi+at`G z(5Ze5d-_;ZrJh;QF<_SQn$-9$)RZ*rGeLeYbnGMbz`KjXg0I?&xTK9K3(9e2=YSFH z_}9<8>EFCPrG`xRG^>f$v`$?NU?{Exsv&a)77914bA$JE-}$_b+bwxs#NV%53A7sk`bafRRLGG$bN7>$5lBq)cK*UOD|O zAGoR5=%-X#5TIp0ubNr7`#t$a-l4mbcZVoHtyImz=pMl%A8HbHN5egJVDj}(cc|87lq$Q%zfymwzYUaO~c{4aXR445FbF7RzSz;6jN#ONOY7TsyZ`S92x06>1O z@3IfH^x6OLIY`u5E=IbdK};%(XTxyC3*Vrqf}5{t!j=;S*Zp zY%Vf6l1_&w>PLR<=GOi>3Ty#qJuayX1`JcDiM#w~E5a4ErVUhcTU`Fk39C&KH61i-w&ZszJ*tA2OFk2FsZB zvdgzGln?tz{Cp>ntY{u)Wv2A4yotzxDT-?fkR6wCIt(?UH2Fz$1Jt9Eh^cX3>KR@# zwUh13Nb2W(Md`;h24jXN+e?9nk5G z{qe8hVk%4O85=^#q@Zs&;essYi_4 z8;;}0_Im{vah5bF)qNjmC}{m4LkV%HTX?Z>rq^(x%_}~!;@$9y0J*UCudl?A*5sqC z#7M15S9J+`O&_OH7O31C`{=@BvA}Rs#LCyfS9`U$0&YmW;@_I9xc5oF(EEXkF|L|P zg&o*`y)dqieB<_Bc}uLU6DB7>u6Mz!w6r{#ERHJE6YZe=K2i){Xrl>ZRkfT3Y7fQ5 zG!%xKXVTYin+;&EaqJ6vM1L>zA@QHOxER0+oSGW|-`e<>t;<|{7X9?qjk*j%*AWXk z`A#)XYKuCQ@1vV6;pLs(P+>dem?|HuVNwWg%$Tt7&>-x~@x-cxinOfR$E#1v_#_ho zekoHD96rN_Hd4BpN&A}ksRxnxR=1URn7Fd8jH|0&*oOj=2u;)b$zgW4z{&}4cbU?* zj8ra2uO2VftUjV@hf?5|oe) zQf*dX2B*rZ=1w$kWxCqf&+AieeYQy2){yXT*cv$kH%iB^I4{T$<)jX-eOYfH8;lYS z#U76HqoOR&H^a>B9cxRywQe(o$JsII>CIOg7t@FvH8Za7fx<{QBGWdm@!Y{K4~kf* z9hH)%#pZFR?0-M!E#mR082Aj>=A`^PRdn-ja?UE?rK5z7Xe~k59tzsGrkmHUt~u6L zaZ9v2o^y@+sdG-hF^9yR>s9()uD}4?>+Y9@YhQ2k+p^$DEJdA6%uY0nHS7Zx$i!Jf zM_qo+ssPX5FM28}twIRc@IWn~c?v6R&_k2GhMh>ctEXiv-c3?Sho__^Hs8;mpmh>u zV-Pl7?VAxC9;;(nw{Tq{qh;g6zXj?u5mQ$+r;!G;G9pr)V-t9}sI2s)ozCp_WYEp= z+y9g~r;>XyK48`kZWg{alIdeLc6F+gn%?7AIU&o?-D3mc)^a!<5xP*+kdcI!;6Kz( zZTb)XYntx9t!rNuw}W{!5ZBWLhO+TTwsSHA+PBa0+P(OmR;j11hT<9i)5}KV!-YT2i3>nEyC#C-2hKSR9sQaNHAT;pPp;$+f7 zPguNLzNmAx+u|A0KLS{>8AD?VJO7~H@e}>C+3V9VxMNRWDuA;)N>`g^2z(WYtH({m zW#=2$n=vyI>f*Avdhgd=8TTbE8OY~=f`Yb_MXS~__(-beME^Lco3tr~TpOpdpr&cy zA$kisoH^L_>+R&_Kxap-s;RbpPTGntVdz4?&Eu#0IK$cID8WOq6<%f&P_zo--fqtN z1^u$>bS{apm0#8s#-JYXwb05k6(iu?v%OnX>$Y7M_g}nd$#{SC){xIzdAdZhim*mE z^Tn0#yMdLxw7@vyN3cY1_ho9JHs z>>2mhitDDs3EckMnqRvqbg1-9S{gRMin#RX$=Tr5o*}TZPs8L@ly!F}U{|U`-KI02&x@ za6k#w`cRnqE03XPe?#|Zy@QS_SJbrsUf_?^a6t7N9NG&V@`$z_*W@h%_q%^&Qd^P* zt^O`}mKME_dV%~S$bB0Tkao&oc{m;YPE+jR0qFztJ;+J-zhnV@f1Y%u7ccD&+Go%O zcy0%wB|px3W+g|OytMk7eAhsu0175{mgaI~#n~}m#GJfkbh zX$?$IytP^4$s~Rym^I9hHt+GTq=OaYcsG#=#&wz%-!HHGE=%UnHA1T~FiIA)y=}QJ zqa0aWINYY=g^Oo}P3?2Nn{>L;mjnn(5Uw7qz{*PEJFP){Ib{A#dVJaVk(d@Df_f%S zVGEk*WPltEPFY69;Br70yLNUnb*_dO^APrQ??@`!neBWlW&i~{79g9 z-{0!%R&j|mu#Y1P#(blEw^41sh}YNM>lEQGImhxx7GdJMcAHXu;jjS>qEy5E{)5$g z$ZsT1)EKHfYq5XRL7@Kdphm%K>Nm8<(_2| zvfG|PK3yWjw$ERyYY9Ij({FmTLSuK90y;J-;TjqH6N+QYp{z>>6F9 z)pp1C-+>WPySW~-xy3y2)5|Pi6Y5a%zGrfzwhCTzufVLjoNxo3XlW!E_80*fxAlx*Eh|}w?+1{b@heBUc&kNcgJ!;NJ5a};7Dqe zZ}Zcj3iUx=%k@leH=inW&L|TlvLq)+H==)BKX$!9{wbRd1$GE3Ly%Ar1knFV7yPxUdEZ()ue8g{5?ne<3E zM*xhe`KQ3x!OXW+kUD>^GG4w3_f)pW?tRE!erV)gN@Eo9{1skVSj7mkyldJx9U^=Y757^R6(n%S)0-}ca10if_!JhVvw1( z_`00IINOTQ5GF<)SZJoGh9r`1zdZf}+>}E51FAU6^Uc|)0-9opniHyonO;C>&)~O$ zOk5@(N9M1xFpqnwN!xbkb#s2f0Zp%OQtM}_=6WOz ztvjBuBu-M#g4!rw;Vp8WqC(#n6`-8AadkaCjW8hYCa&GDzZj9YH3jmiyT_rukyPKB z%;d1Wrt*i2xuiK7D@_=_c1k7RSkp_miH7aQnN}@g_E}WRC4=kC+OfQ@^?Ut^$nmhm z%g;_pii-J!S9;~6HT@w9=vq{x68Ev6=L%Lks!nQ@2bzFTHCx!Coti^)uDy0(pJ%jP z+T^4P&=mc$zIxu=eryBkQ(GwhEeq&;l+1d`WRWvcsMb&Rdvf+sDtT;@~!W$ zRx9+xTv)N(zS$5qQGpbi(X-$hKkapPz1V7qRW8Fr7bG4P>%6=m)8QqRjau=}R%7_5 zhhMsJsF&kjc9UDP`gjaY7;n2?JRM%!S^{sV16A0P2Ds9eThMkR)RWiUR@&!&1$K%K ztFGUHe3X4ETyY;JZHe^8RulU)ug`^W%)|Gk@oC&bTBNPC;aIA9;Yed_nF4y$2C7*6 zC$k&}yN!43=EWNa9`mx7R$ZeBq;(0%xgQnP!0SK7ekJ(t+luJb0h^_j>xjqW zLS8=Rw_vT%`7AA_(2AUh4If!=yW|-WT4DECJA}dYSjHl9P6-tznQrWTsqCGI*7P5= z&ac~VUd}Z)ex-WDSn?C2+J? zjNy8+Yste)_hKvzwVD(nP>oD>gWK=daI>#&6?BkjPp2KG4VmXUTR}OhjUC@2e?49g z*01vA+_mw);tS2Y`rc>J1-QyqB+7Xam_Cl7oBmd#@nGoT04o*dcy{d?t^qR!U6ZR2 zGu`P&1*hA7W0L+yA2OwCupqTY2H|e4PKx&gpqHK~;{(V5E7O*fQu`EqkcIi)uT~&= zjmYYY%Xd@T{714}JWUKoTLPnSfi?sah-AULZwfvH@#BZy$<*yF)^>HbzGyY{H|%uz zxSQIVG?U9MHkH8B6kpE}ZQjQgp^)j} z^Cer_1|MhMw$4^Rz7+YI&K!vgYj-0}RQ1J@4}F-`;`Wxu{@L=bjtR1Q00K)(Z3(E` z<9BcynCs4RP4CJrLt~a(D6%=eo`p8y9?9XPUmojNq;eV|IZu7jA2=dWlSFOEXU`Am z7oe`CBaORmC$_m9G21F{3arEUMoHX)iM0Lz5WGw}|BrZ_DZS1mj$)eUQnl)a z4}wO8_kJ!fRnjCmBhldOpZB(4?EkW`FJ#}y85$EU61(Giak{vfY61dB71i3D@>*9i z%XisGiWB)wjdiUn*^fLqF*Byx8l*EMSZ$ti^io=lsa`! z=pLngv3qY9?{LaK{Z<2w5nL!==`GnDzlG(pqU3M#^9ZF~3&dFl*oY=3Y~hmpnjCcY zuog!VRNrLwl9zJRp~d%%CodkpB~NeyYa>~b*{IR6!JFXx-x3K53p+9xf=1Y!S;*Fe zZdWl`4vh+HNdJlk8y9;!E$R~cw}8PY1%mvueW4cU2M`yG4|sw_5 z34{S5*!!<|LgEKw;Qal#o`<$WNwTu1_5;g|zt~t`hO?*?J5@52Zjr1$BjZD2a^jhH zm=BeWZsHzNYRfmGD8lHl;q4>7lwU@W8UGd@oK#sX3u_MRy-myEY$?Ns|(G5^U@GCMc;BJ|% z{rOPNSF4uF(o|*Bq{K54!smw;w$fZWB*)y)ei)t$lT=v**Pe93_O)Gy5`rQ?eK9TI z-c2>ZGzeb~slUG+NFN6D6h7&}#n5w5Osa$r$%j3AL2R2HSR6YNxA!OqNlCA%Nv=hM z1rlpnx+l9`LOYWx>>+vJ%Ny+ZIR6E5c3mq>wzK2FRtqon7*N-7%64zz!0PpYIz+Yr z)A}V9wI%lHSD8GWfUOXsH8WH{P9m=z!Cp)oh zuKF2H>~`!I7hV0p6gX9I?*-!P87uv1iFC()C%>#-Z}1i_xvG9vn-pddEW^J~jA$Z@ zN#is2TQ;jXvvRzL;_hmQyN4ku@&+LD(2}q4!;oXr<4b0ueZhE~3R~eJTeQ4X;MpbY zWIGo<*s}q7L>M`%VUC0n-l>a*Ra95^ap6s>kJ2LlG@=uwiqf8}H#Sv0A_pUz(90ZY zIx1RnW>2zem-UXN&hmG0qiLFmj zfydVZcZztvja9z8iDsNOjI?+W`#I3IL9E2QCAD|Q#)9IHs zz#geiZ){&rqFgXz;pHqNLx?&fK*Y6k9(UKu>+n_z<~~+*a$-!i+~kF)=Bioe^$slW z{Uq5|JiUKj>L;cISFQbG4Zv~hw2lURthIk09^vZ}0+(f~ zclvn*4Dg(eA3N~VW$h1iY}8Xcmi53#@0@t@Crt>R{-AD!sc~6Io0Hr#a~r%(9hhGA zMmSt#p3@*NLvbxX*Cpw&>r3wb?@!Ny$!4{Ci|Yz>0U0V@qL8HB+XNiGH+*0gA1>n6 zNt^`4gAz9`LS)j&FPSZr&XBlJ!u0+h7JrfGpCR|V!4^>5%Klz%x2)$CA;w#hwAwht zvysAoBs5%rGd;_z2j9-%W*RPLWN#cn|py5Y!DK`v+%j)lfl_Zfc0Fq+m}>cgFDJ5EPyHNDCQ#kFnkBjP0|3&Z_dm(yvm4%XuYPrj z3b?6V$3k;GA?kOM5s!09?*1p3YAZ}_Ub!k-yn^WVo2S|k?P9}aHtaXLNMz(S{3L43 zdk*0^p1jXjx7~R}KWk$qJ8gp|OdDJ3~k00HraVuNVXPk`r)F*TTX{6mxjn^6<}9-7&Kqu z3Dr9A#nP97dK0WIQaYaC{MN-Ts;;?Qjw{w|Ool~RbgQm2sL&uVdtIuO`^m<{rXInZqSiTp8<4XcHMvJM$Z`G_3FES+~ zA&a;eVf96zR|8?36;LAr{iSeX!aVR|+1Bwp!FlOhdf9WrRB5H&P43HvS=3Nz7W3=% z(4!Q;)^>^id7paf!pGCQ5N1<#OL?j++}G?&F?sN+T5(rvPqUBPE)X4LWmBUZ-g<=F zcbXPvN4lOuu8P_I>E+sQO5xZMUQFHHK^3ZkT|HbD$&k0+d6(`7@6zqK5rdNFK~KJH zn?GyA4G;M_pujXEhTnt#9A*$;hp7jhF`N~?3HdT2HhS*;)m7Ke5 zQ01m&I>>qSx0>K7bC|BQ{JouaNFNLFO||YKPil&d~2p1xoz%)mshqGraAz8q_TF>nwZL ziuW-)eWs=>=*okr=RtH&wu`iES|qdhyXPAJ)AW#>a;H7limIjn<u{B3Sqi+O#IYpIvk1gYufeu~I~`ckV3s>s7D>kj4`Do``|J`8c1Rh##mHPEPJ zbsBU)NS)*hg-)Yq_ftk^FxI(8-L|=WUmsA2pk)PFecy!oL_{&!%j3W3CTpe_Ul0e@ z-IhlA(1_WA>@h-Cf8elNBirrY@MBupo6iulaD#~VTVY9a;D&d+p%23rWhS%hDar2@ zyt+rzAx+vL|JKCNJPXtA#e#tGKWdd~se{XWPI|2gRefVSCCd9ITeU#-Zir*8j*ZGB zJ;L&ZcTlk7QN!UWXg7m1+%Vj4JZs~VUn*ED#a-&z4v5jHtotWEf^UG$9--gAm)=5! z{?i`$Yn%Bf67i71F5+#|KA1TppXpOu=5W~(uXt#rQ(00_Xr>T$8871|yYYOad`J_0 z+&jZ_^>HFXZau+u%>LYars$0orb+5xB{8xTr;P4Z5 z@a_2`--9oo*U3l^5KquV)-%b*Siae6W_*3~Od4hW>ghW{Jiy?+w0>=?9Gh{q*T-7% zNLycTpo@^5P%RXcI(#hOX@zu1zl+^Rq6&BMcGxdQENLtl5MS93aGW^2;dId8?}b`l zR{{io{F-Q2TUL;OomOravSy90#R#@5(xFd?xNxSt(Y-Y%c*YZh<<~|XZ1Tzx06L+C zDryG+2FwBEzaG6o1HOfcKAQRQkZ+nN&cQRnhq!LVb@uHBFN#~Le;aTIY42Arop0Gx z%{g#Vor?CEi-qlf5@il;3)1FDV|l!)iN`X9&zb@v%ys07#hg$!s{-}y`I5-fkGN_m z+P?w;2{s`Rt4PQ}3udL&bynFP=-&c4)Hc4i-}V|Uk2BT^WQIfmrMZF$Y%u#{s69uZ zM#-fAtN_7VIgI~g)57BQ`&za0jht%L;skm|%kH-Q9uuB z(tV@aY(((Gh7L|C{k3n+?LwTdT2+s+U|`leFt8aI84IrX2|K(#N~z1F!cfAoR+2W) z3~bG6ee{R)^s@XA&JX!#$oTH$zUL>}_qA>A@%UlJA$xAy<_JBo(fFtdyzx}(8Po-M zXSzp2A25Eo#RWA+nAYzn#;m^6aK)V(D;wvZ%SlY82G(yfCp$D%0>KLPT>}W+dL46R z#jd%6POLwXq?ukJRRh}krn7_1~6dPDm}NHPUAR@Cgx=dqxV)$!2V!-y^4Ug zUigwT5c+H7CvSQ?!NMzDY(F`Q!me+B0h=+QJ`36*(J=qM*hK=+)!#z)yw9+xmAS<# z0P3NvhM|05co0h!KVCrp_EtQpYRJ5c(x^gQ*lOds$;Pt1%zz2quBAnxQ`X_blL86n zDr|qDXYrglDZx`fV5#Hy%F4S`6MgtHm;bC2Fu;U8vFg*JVPl2t)Khbq8ksACUb~Pe zpvTZAgPDT*SznmNV-PQyAmYtU!-_8U6R*E>+zV-Pi}eL&u}PXCksS`s_>ub*jw0U}8KZ)h6ETu$FJSJNU|nV%B|{|{S#{nvE+xc}pqAfO_Rpdw5{K~aaIG((Uw z0I^W%P((VVwkh2cLFq=|Qc}7*l$eBsG@}QMF<@+C@HvNG&)55VyM6xvemi;G&K>9d zxF2ZO0K4lGLZpxyv>0p{l8-EI6@^U?rFC7l-R#72pB?ApxQbrv3?IMvzD2U=q;cxz zdbJ(5#%|FSE;{!5ciI>}btR4t9e_1j6+VsT!OZzA*t6d*OgvO7_~ng;K>4v4+DqF{86abzQtc_w3jQ*mm2lM1?I*8}XvW5sL7hCd2_@~t>FvRKI5F-lL}+Kn6n>Hz4PNcIWThDw*Y0ryvL z`-aT^2v3nD|J%Yjo<5W?GAkr)Zm%l%Ur(DQWezE*L-Zq^Vw1kzup+lzTRUwQD3@p^Jm)F zYeXJjE4~JlO_kglToi6zSbTF2&t5wE=3lmgPC}5QUcEa|f5||L(BF(X*s0ot)X%H? zdelrA{%_jE#x1?@b8H!T(^>G7PO&FGtt(EJQ4ogU+1t@;GTK$My1KqW=||jI5V@~} z4q2T^S*HN^I?V*ei{b9!!MU6hcr=u5e;3AyO1R!VWEf|dlE0a@cWwVA{41Zua2+xv z{7C-I9WUQVZJr-G)5G%}IL`jsZ*4j9oK>_EcH^Wv(?#NAB?~JV9lMO*O$`U35O6pcgUq=VH(`c0F1j6h?40t)aZZzWt=^J*(w?UL zX)zbt0#2fl0!qJU0Uo_d6u4KwiAOSok|L*ve=3x}Wp=I*W+TtY$ zU_27p)9Z{CgXe9JL65gromH#@i+D6NfG?NbOayiJkwE%Y&htt3GM^I|)EyOl=m^(l z5)0*PD5l z897*G8r2BN@P`E6GEp2_^zSC+(0LhDH6V(TSMz&`IDb1g@-psYM)&pVx(k=T_rJ)g zR|_~uAfbrZa$;0{do`?wui<#ps@`nRPLN?W6$>*(SoPO_v9|^JqZ``mMZ3xha(QwM zF|uT_34mT{EZ1j4>E{YHDJjYI+E92(zRkGk(!`D@uF$y1*msfH>J-Pvu&O02rTe8) z^iA3KXg8VE0?uJ>+@|E$a%{@hLqgvM@z$x?(LM0DE}SH3?DO%n-{yycj$ELh+4A7f z!4kF-v||}Z!(i1q%ztK38I2=vZqoz*dTJ9952E&r-;D>SK4J+eO;tF=(9RQ^&w zm#qlFC>E!bpZ?|c<1V({aY^W8+7(X)?8|I%+ZABx4ZzMHeRQ-{51ZZYMO6)RjpcmO zdHTlt`jfm>kfNFDJc>wd47)7WM_yDhaeZ$$nl2AVGlU&CefGx?wqm|$5jZQpQKx}# zzP9+rve=stWp$^-^qN2dn;6Ok=^ZR#`wv&xF?k!@M1mIPI2Q+|@r~KuW`PE}`M#oc2y-y+4@$~qM z+M(={9?bYIT}o(MN2m+p7H6|hdhCg|f%t}ZV!1tsuOZ|8m9)@*S@r*QOI?tNHWem9 zE1*~ac|r*)mQ&V|uVVxEmH_6KbH46;(GfM!7;`GGR}$k%)6;r8)H7Bo@%6!W!xxt5 zU70x4{&NBN4|<+j?HEnc3gS>Ka9=1J)G>^qa0z1?XZdO zaitPmKl4NAuk)!39)Eh^31e>s2Bp=(ah>TNJPiTsk%#A`m?UC_Inp+L0t!}QgIbm( zlo@x8p8jYzrK=d1HXsO1@DlHDMiE%_uW1`XysTT%i(p69qZT*-&IA-QnJT>t@O?@0r%vNK$~7+#B0Tx zaI}Zx=r2~rKi3&bH1Eo4C1SAZ>2lVzc@Oi}y}h&9do_tG1P>uav7z?**4T=HZaaQ- z<18XBqWtKi;8wkj8#C32zr17k#bMM*l6Kb)*OwNrtt#yaQOdR~4kT&4ZmVtb>b0YFM9nSz`K5O@e zciYmEiTX}Z`%wXQGg`pTX7t#_{^3qxJ=4xcM4CN-VV;xFR|z~bLVpTL0AiOG5uAQ= zU=gSgId1f0KPbPyW|nL{8vF&+We%!#T$uW^OJQOR81Yp`;tP%Or*M5GUMKk6(~&5G z4~qlIAl+rwdy#P;>Xuo0r~O4sN#E~u3OC7`s;E93#O5Pf<+$(~JQ}+x%!Ko|N#QFZ zH4YGVb8^s{E5nUc@`I!TF{2Gd422#l+)@h;ejI34<6ODb&ez_%^U6|&H=ubbtyG*&^uN<$Xu3s$ZPh{Nyw<8yvB??zP@1ql1@IDKwY#s=vVL66`VX#OK#FRJV*$8bNDXPu=Jp1t%%nE z5K1Q*t_inB<)%X?EE{sT@$+yC&xfRUsV*#ux-}B^I8h`jVSR6`o%JaX+xt^{hqBy* zs)i>SE)!gzFH{Zfc9ZhSh08+{d%($F>xWP`jYx@f`3r)HM|fYnzt;T4cogK3?%?6e zb7^i^I=X&bY_8Jt>OOpnq31%l3QFFecM;|<5$q6 zN78vl?3Hj_n3S95DQ*|Ddksux+%hkfr|531Tp#LuvZihAnLo1q)a1+rb92Ri6lBs- zWPf)=S<4Womh~a73KyE_G^A?r&lKu_V;Az)*ZZsEM!d^NiADsdMx~LY_4#O!jMZQ_ zm+n`d1q=A(7yB0oz5pu||C;9(5HoF=2}!`n{J#}b!lPp@{`4s`3qEgETe$7l5{i>) zz%Tx{=XXAIU>mJbjjY(~$ztt7GlMR5-z!D!qZ3{iMRxVi^}Y0=6_e`cP}Otf#GzvF zrKfJYqla2O%*dC&%>P18vtDcf9lUiX^0+!@(8K$Dm3OYA38xaWB>qsoEngoiUJO%* zrh80B@Rr0w@t~UI{{1^LBCedB%cCm?u4XK9=P&SR_TO)pWPSny> zzh4XgSEDZc*&w&haUcsDz`CB=Qd^knY8SbA;(a)4H3(&fcY-ETI*ayrz3$NmUkev^ zK{g5Y9jW&kfZYH@SmDDyrek?q*M1k(%O|k^*E5}BMhC@L{Oa~j`pbm1bP#V;DGi2N z@K8Pb&|iA0@qH2JOy9iY>^-hI=Rf(UYI<8qejvYg!s862N2k6HG?knc&$Kx!eP+8J z>v%qg#)EBk93~&et)53d@~uI(;uVV6INU?ixO%ug`_i^$G^YD*HL+D)J@mQYG9+3u zxNoNxu3u8*#cV30;fJzN6%9|Xs+jGL zNgtxWw&!?>TNTvr0H2|JvA5*@BWKV5dOrF-G>0jnDP&6+)ZdPieDTT(jL>%yYQ zj|3_B%mffTmViTE=9hPT_^s|wO?p+u8O+8r_cH18tQFom!#FB&eCooo7Gkz{Yd@X0 zH%CR!rE0vBqMm#0Lw$TjMg}oy*=nHmf%H9t-CXyy_y%JOO@Wm6t65{SO22aj<_hZ- z+YYxQZ=IWBIS+)@;BJ5CQr(r)h=S~(BG!jZ*3U8+H%?+yi07Vomw%4ggsIFbLmwus zxMq-Z9}+(9Twr*OC=vCSG`XU{A)&U`?6#l9*Xo#*#y2-<2K)i;7}+H}V5k=I=5%W; zNZ)P119qn)u~}e=7`4SPw|DPNPV_7AUMK>)CMJUkm&3ZGxz2>T8ld$VUzL|r0~+P2 z`qz^}0Y~sTfJ=ZH+EftK%~6;t<>2}%U_p|+(|(xh*L4JfmuaL|>3W`YK+%kkcDujJ z+_{EO#~b6|=xdSfrH%~qhKd7H(59$m?ap@fhG|-HZ z=i88tD$Ljh4TZ{Gk4oKwp%(+ZbM^D)Gfx@Je4E$UW0<9C)Nwk}JMg0R>kpoDXfGM0 zQMgE*I00er6?!94Pt(9m<{sk_4)nqGrhIWu@ywV;t-GF1qDyfCng&AFjWrUBFaKZv zbh5Cd`Ty;oPP#^IO5R$1nWUjyl95>7$gQ)x;&R9*o}~G<%(V!Cb1)V0RJm8cfi z@fNB#cAQnK;hi`w59ArYfEbTe=s8?X5#L;8=UBnk5;)FrA1(QN`eq@(S^CTenD&{e zD}!6aAAJ#bII@@Y%7(ttD+gZt>Va?au1(pk#^)nxh%dcG0P^hxqef+=D>g|`Z`?9( zfwjOwjfRq$4_tO;a`E$`7RASIFlD{WBp+CNTq##pbalMopyjdIKfwj2g?DSqjZscd z7A($KR{BOr95X^TpTD^oxGnjusKyc;zUBSf#=~{keqU(o&9q zhDFLc57O3UTVwk*L9!~Z*<;>)c6^#N5h(!FFr^U<3%;;NxI4zN{2r$AGL2TH*=3-l zgm3q!;GgJNCLNa(Vhcw3+HtCY$)C z1GcwD)qrl}jwYe6dcGMkQ8(|;86pQBn5LX&I+5?dx1E>B&+egamPz3Iz|O<&noQ$+ zyAI#*`{mu61b;JeRU!rI*}L1~HnZ&9)eg7;^)aPp6=s5-D~BPfGg$6P+4*_bh%I}% zRz{o6pbGCCUoKCjE1?GUkGm*RfC z15)NQgl{s#1;mdu{?S6JyAxEEs;HzRDcNszk5Kf%&D}_8{fQtnXWVm~AcK%ms!btW zWs^62JNkeD$07!d5SgC6>DG@Om7zKg0VY2orFFbaoqDZ(hTi%I$dNR zcAjLkJeMoZG&Uv~6;4qdxO)DivAp-tFR8H-?5yFlR&OF~=ljHB8;dR+>`L8%<}7{+ zOs+QzjbWy{RCrHQSY{qyj4;T?p?19@aFHNh&!DaX05&8>+wEceV)k5=2Y-bNQuSr$ z#|g)4lNXER3yUTex@#Jeu?t2}OT*SH6We?Cz%9l`&(i&X#7-k0iK;%5rj(-Fik>0Sv|XRcIxumCBR2!oB}-bBTAx;>1`&)^5u&9Q=1EoMrv)$v z?K|+rZtX*|Z)B!u`eE}>3qBd7iTXbtc1Z1}~At-g|kJz?mK;#OMoKnf!* ze33cw>Hu_{{10?&(2T|C0Y_vicK)Wk{XT_sn#lgau6_}f2kw>Ok4GV~!RjR?#{!U3d zJD$luq`crFNh?LQ(6&kY8%P1v1||@G?__Xaa_ZvpM*Yv=-4^5NwDPYv?|>DVZW+Ea z1k0K}t;`Nr)bK|6?HEVs0$98|?CX`ZNuX)Hc0uUUbHBpwY~LZ%823sWo}Sh2g;=*s z22&(B$JQ-eolY``Le<)&V-NG_+Y5xNsbgQzznZA-U$aZEXjgHtfvth}?PP=%y8HDw zspkFp=n*hyV&13%Zf66eR>fvlaHNY{D=UZkrNa7x&bbo5m%o~>uptP5JtScBLf+g= z_ zN_~S0JpquDaiD_K3oRhVc+{qfL+`P2S@@cJzpE(8jXL23xe`h}u-PSAfqMxzYb2{j zh1#m{M9ZYA^h)%mGQaKW@Z|r37dtP*823}yT0S%}6vt6F+ej?UgNs0Sx>w~D0c7s%E0x1 z9RDwPu_1GxIG;TD>a>6hJ*w&MMgd)yzbn2j^{v_XY22psLt=W0Zfu{9dt@0YHfB}k zUmZR2edF)W#bAx#n)ReoM!06KiOtj3V;Z}QpZbHLHiT24kwnE+H?ooW4h2u4YD9Lm zq)jZ;ibr$Y9MX1Zij22n3U6eP_Ns=P$iHGQ&4pPW^g{6C44dVQ_F^MDmsWM#wYZmv zbkuLsawfx4<1X@d3vh6 z^*>>)s_HwN;z?Fh%10A5_7oX*RqJN4$6A^DXUXyja|to&qG3&wVy|A!>^d1lP=U*_ z7L^K!Rt~hEW<{I4J_$K=_uom9jyp$vYCFSBhbNc(uqtfUVeW~R7Tzrw zMx#Ge`{FHu)=!w*P>Kis1Mp-(yqDV5iDJn>2GdO|-X$-KFJs(|7m^hF?9G_L579nP z;5_;myGk~ChE*kM$3d%ZlSk6rR>AYq_5t)rWvluQCwP1_`st8F@%cT>^6{)t+63$C zMrmfmO_x6SomDcwhEeq3^xjcJ2Yy{RWKx=fPv^=r_ZS%UwYvuSmsR!qb;0+^mL<(B zjW+hVkiy0Eq3@v}eiY+~d!DIhc_aK4s{06a)#dyZFo+db5iiYRJ?=f`8XseTw3RpAk{xVk^RQuGGTY_7bX~$8 z9N>%MhVI@*b!5i+PC^M=m%2s?tK-PoJ&q(M5V=FQV;N&jPU|i1`Q6G?M%d|6f*kOF zWM8R2X;*g2pDX)`)lVkVcCt3V4TnS#>>E!sZa_)Ncs5LF;P=ks zw8$Nh1F5s^Zyy=hxc9ZchPgYKL30efz}5W$n;cVtTQC#jq|40Kn)vB^`z$mrEM4*1 zyCJ$CWLgTdTQ@^K6Z{_?BgPM!dnB1-AFgi&Skqy&RLWQEh*!~n~cy52ofX!C+ zc6QfTaC<-0<_qg%xBp$BU^JWQnl+aXWHIom@4J?-nkWQ_fI}!PhiT`|HmRSyR;4G#HD^R%cm)L`ezL;oQOLw4)yA_V4dwbSkm7>W?j;shx`(?kZ{>71^D#xCp@^2c5? zK2=&nUf~@ZaaIHjBu;oRX-6}tET(Fd5DC_-L49ed(QQBtb=C1_XSaf@LZxvQhM@YT zWyTuD>z{qn)_rs|mcMD!wAi5JZY~>STR4NlE=hw2?*4%XaAJxgpqE#-S9D)5)`LMF zKj1G~4SbHXI-5If4)i@oO|9|X>3vWu2=CW>laA-8r7+Q zLH}LNN5=~s^C9>K1!s5D;@s~7rkv%#n9 zSf-cv&6f-tv!WItcNcw8s{zhGS6|I$z8hZZFCPO~Fj9;m(}4v{Jy|o%1vpISleZ^$ z(wJx^JtH}XI#ALJH7c<)lXu*boyP=vO9jEIlv1u5vwXSrOXIqt8n39n0HsQ}P3kNk zKX4^NpB&N`s8*ZB)rF5x~NlA($ zyTs7r0WPIntY1{kk|k^<;;mN@Rc&PmKtA+Mcw6^KnA>uI8S3`G+U~P1NQ{kjL12o^s8CD@$W_ zG{H2az!F2_c^i~43Y3_hE?Rs}8G++HanW01=KTd?;nZvCeTi=d+0?J@@kt#@S1L(~ z3}-RT*QF{gSwFEHDmU1d+52B4Q>)##yR29&5V){uL@wP`uO^vW@L;sFUN3 zg{@TL20(Q+)$69mmZ$6}E9fq{Ahoy_xm2o}mEDK>uiuk3j<*{C*l&#*K|uV*9>eE^ z&E!T_UnBSRDA<$5z4ro3WecCVb4b0(fPBPac>XxRj??U=(xe&L-ksl16t)+dE6qrd z#XBXXi*@fi+!#Lv!A!q4v^IvHEwcN{M+h^lTw@l}vvu~WA!28CC002eYp(}xP-p8M z+B=V+C(lZ0)PRGoMc8@Ub*x)!q*ky6SOr)oHMYvKZdnQ0wXzi-r|`EjT@h{3H=Sn* zWTCJwdTWZ#Pug-e(WO^#`KTPg1M$!*z1_UkbY2p;+2q68!OaH9dR>gcgX&#c8}*Lp z(^Z7Rl*m7rSBWgNbX{(+T_A}q2H79#lCw&_{$8xV0u0i$ktFL*ucse$I7);OyHmIS z=l}9PGe84o2QJ3vwx*dJu{0hm zXI{gbcki@3`A$O4UJS7-iG}XDA^c~z2riztlkJ_>z~u=JeL^X0K@Cza_hkqSpU$~Q zAKA|`9x>_!rPLml{4F6Q8oV9}yaHt<*$jvM*Upx-e%_U>-XUe8*7ysfntXQyyZ~mp zqwb8upIT}^*xqRDuk8J7;!SXLZ~dl)CK`#>+C4w$S@Zv!TUS5EOGw}Q1pBu8IYNSY zzd*+E5uNxu+qMh2u@L-i>0Ha+f^%#ys0*9j<`{@ihM{1r-Il{Q{o1!TNd+7nS|#g% zk6AnWKBcLsHgfV@GA;@19{<5(F#ZCM5WVdaZ7Vlpem5S~MwJD&A6@l2or1N>Lw!bc z05ryQg%$B^NUsEN0u$09dTqB+ovx=1M3Y)pJ{$F5Pm0a(7mmxEyKm}Uitwbhl%5A- ztmYN;ZnMlnZKmDP-VmS(IY4CkmeUxx4~ZWb9McZBQ_ZRNi)0n)kf`Mo z^GYZU4GE>+zf-K7_qy#!+-zCpKcDnAZ)xZ=T^WZ&_V(UlUUq#f9LpXY@k026G{KiN z=!R^1h%x>-l1BRttG>Tjul_MGyhId6Fs?xE^U|wDDM@6gmfg|OJ8O<(TO9AL7! zt^~X;^toQRGp0}+0AakU@oQ*Hk-TZc_b;Y}lhXsEYQL7Rf1^PI>dY;3YW#^mDUQ!( zw~h{30k{rNSD%>DG?dCLmHCU|Sgxy6nJ`Sg=MJzNkl&y-exxuFOC#1?B$YH~E&xlZ z(vA~~WwIBa%lnP ztd5C8cIaGkJiJjaON~+BN+1W)i3d9?a z&iF4OWpr2+(@TGrr-dRqJ&2ZfHYXkmP8;8tb$I*P7p#@xT#Ng-%6RMF;r+Ko!<=u` z-!KziYMf;RAM*V@C?m%W0g}1%u<$i`;Nztq)Y4T&ga~;5f&qTL^rB$5uilC7={Nzm z&N58vKc5LlX&>~uUEaSXR3T^>QiG>WCB1_y2f*ZkFFr4jK7D4FNbur#JyvAOD#+=CkBn5m_@-t#xtX@MkjZ7#W# zf2fvjJaw|1*j=IRDZ9n;QM69|y5dFL9qEuE%Hu=P_hn;;r2M%M)??Un;}5GndEs3P z*+ct**E-&8I4f*FqY5GQ;kkpQRgJ7wP?{^|>?M`9?X!y-yNyY!;Z&$2DYOwyi!?v;WH5KEpndx5{3Y0%Fui6i(DdokS z_;Sf+s)im6E;aE(`4lGEZ#RJ8J}}DzanqtTYp~-U_^58k399A+WekAC6lsu{dcW)* za|mzHC+HT#%RQAxv(7hX0n^^|hlGq&1ecksGoXNNN%xs)q0=z`Y&+Z5KYWjQ%zeiE{YII!=1T#^LxC_83-Ihc@G_2fLz6GOHabO9slj^@=!Nc<4XNI3qS`;(M3R?y03kw})&SpPoU*)SJn|z~ho0 zH9mq!^k2af$3`8aT`Ly$?n`GnD$Dze9!fe~76+_Ii15C~+s1>;zY)3hn~y;pBW-nU zZO$8524=6WcqL*PPnFN4qbeLqUSF{DPbsz*g@8A%NLL-$fdp=#VIB97J(s(%yWhD|hAZCGKt_Uq2 z#xU5(n`t6V>~ulIvHxcnusp5x^s@Cp1FWUuC-F({jvY`V!TmbkfKI?|cO)*t|M{eI z9QL{JRhr0@XKTX2C}j%+!k7?I1uA?}W`Ffe(TX>&LFG(FYA@3Q3UloJ8tT(j^^u1& zaFm!br$FPeW$%OMSF<@P$#L%lbO3q0UVz{RPZS2-{)kkLt()3Rg%u zXG$^4i36AlRTD_BhlA|kzL|#Sgp@G$y8W?&k}S-c&Md!a2l{fGQ$AFtw_8=TBX>}% zNLXNqw?$g9;8poy<~L=~!7#Bv{o0kGVBVVO!ZmpzogK6;6;-3Cq)}`IYpWs>{t%E4 ztU!;W60{F)W9|o2T;Kif_C#%!G=6nm=gX4mY2RAgN<;W~tjA$_sv{rF{Ak~ z@{-sbM&i)e8ecw%{eLd7POq2tw~U<)X{dmwcEyVDxFnR-_dtf{o^qzJSRcF$i5OsM zKOYawj~Ul@bSNL&;Z+$5d6Jjk%w2;i#4fN_@A(Hxy?%eHWk*l7LuxG*Ld3@6T&e!$ zEh+0QUR~`fU~{9I;_s@OD({j~19_#b(89Zg33@)*JJt^yHh;PrvyEPCxHSnf4=)U@ zp89@Gtv)qB198R5pwCcC6*(M(?qCeOsbRsdF+Mg>y=cCkS;Cdy^L@1flL^z>N`kBC-fs2Vx>vJgp;E56;k;6d^U1I10+{u^6Y(`0_0f%YkD{ejIoF{bxj#ivY(crhEvMrS!De(}qJBB0a)RA= zaTlw~C0X*BmI9Bw?-u1?_&)~#~; z(Kqs~e38_khKFHwPKjcM>$OyqjMU1Awasrh;g=ZQXG*E`XO0L=(obug`UhPVx$kZG z*8pY{UAvsn7oRNL=c>0x+6DggUE0FHrIq2muiagE4%D$lqGHM$FXI99r5J@PJ)s8_YVASXa=$an`2IuJ2vxn9{ouMz z4}p#W6m2U^XuU9kE);(Qbe+-*(ouxUC6cDMcAszx3IhtKAF>K@MWAc_er@o`3z>c( zpc8wQiI>Qq)85yYDSsn_J`-~#M}M>&h(*wcp+Dg=b{q;HP=57GFEz|(tb?;k-)^SC zu6@hi#;n4*T^*a5Y<6CG1iJ;Hb=;A5nW4j(y|=%G!nDcH&@`?wSjBwbita*WgL}tN zP~WfcfT5&k!XRg))s#*g%!?X<(vcdk#;$1eEbHATIN_DXh8g^sIrS4>MtOy@vo8)kXebA;| zTh#ZVQZ>`O)t;l1667B;!r;a-t04Y}2f4lP&_2(>ANac?*WuU`sc%2B4=**eIR^q? z46$RnQ%sw!+EagyZPbxoP#Lt8faH$G^#(Ktz?ocNnOp>%)KSwzx?M+U=8Rshc~Q=` z*K_dj1GLw&j7uj59ts?$q*Kh7bD1D`mlt*`(gITN%=Dz(Td?}g)SXnCjT+J)#F3?Q zN^Qhz*U7F%iAbxOX7w?-y1dZv&i_B{`k>qwto|?fY24b0gSVtMVh&tH5>%8dPLYh3 ze%QpvxKdZE`T{iCe=#1{^lwvdj9QgGF0e=p06o+FrJBTfkhruH$RU+TP_gdZnV4?U zT=cs)6}=-fIm^$uYU~J49%f5qTI)C6jKQcb`QcWX_!!EnJo`hJjpv}CWlDQG{UwWc z|04ne-Gn`_uwAm(3oDJ!L6WO_0x3UU?|Z&5=$H9AN-#;o;ze+uZ%KT&H5Q>#Gbpr*(tSlcM?@+tmk%6s9t%v z(r+@W=H-)_hL#5^H)W-enBDUccP!2ocDu_66?~^GXe+7l-i8>jJCl`<_7@a^2UpnH zhuHApWroAA5#d25>HcfdTw#&8BMXqRq)+5vnML9mdt3r#@{Mo7FtmUPH9v=Q=s}I1 z@_!AskP3Kn&)k?;X3&+W8*G=*p=FBWF+r*m2$io_`<^F3?@wKq%K2wyNJUy)@uQ=h zx)4+JEsHr<`Yb<*w$lyUREDa$pW&M^%O{feCQw#thQ^U|mPV%U7Fb_MU3VOJGC1^S z|L&3IjLBjceKdZ+h0uMud+v- zVLN;2f-bk!_3y>sc#FlymhL=zgmh@X%Y^1ze&L_>%24@bpp>MYzpJDe{VMZ^Ezsr& z%bx07el2aku#rH%kQ56Pc>nZnyg=McpzI=tz}kD{azx=B%TOR3n8vC>#7YJ`e@E=#dkH51{3UqrjlsoJucmKHSCc?R z58yIK_Hbeo=OlCO!7~zrpn;_u4FVf1D4BDdcA>xc=;+n;JeX&FdQ4^l|LdVOqYx*V zJ;_gm!}D%cPkZzs)x-$aGQJCfs)xiAf@!b}%0?Gmkn_(C=uGYU;BXrAZEIQqM4LGd zskjDg)u^83L)V&>ZmQ;Dv^O#I*JfkdIp}MW05ao|NI>+KKkcYH1w0bZ3MzcB*fVFP zxG%k8?Db@Q>i*Gu&6i#TK4yBLV{e5ly&*oOkziIGp0`~qyoZdJz4;61#NI_UoF{N= zhZRKDwC@V!#fS+Kt#aglDa|ZwR!(MK3Oi_|CK-J&{>rzKxg~7o4^}on0BPsJ{Fu1%1W8;+Vh|4V9AG z0lt!cM00CpP+`bJb`elXeJx1%#_9>64Msp2ch}IVJsErD1KfDl6J}CPJOcWBpRmb- zmgaRT8$52IcUj3J~KZA6gU7GO&Ut58J#m=V2L!Zk1?NPLf#zb!amfF$;1^0xLq_+#$L8%bM-p9M*69i}&JdI~=kr3;<${6d$&T{V-%IALybE!mkQZ&VsH+q^!GuM9$ofFij5DtHelf zh(|PlLl1XkYb8M_C%heYS%J8kA8)EyF0&rFYLX$v zvxsxA*L)I%&xzf8Xc2!&gL+vC5Rm%ap^$kjyrhl~M;?|^J?6w%wEML?34fy6W8d#C z+{NQZ?y`BszvG0#-=Tz!zWO6FLycb}9ssDdAD*G**HEJVR=(P%pI|G$wRF_A{w5Sk z?A|7tY_`{I2HoK@77ht~u%K7XX(FEEbQ6V{eybWl)H+q)|0{n&4WjkW45VKqrTm4g zkxRT|iVI!bpq%vq-kj?a&@{<6b_A2{U?WOif$=+#lGm%im)~{YVqeolfz1;BHfXCV z;QWs`;bULRB;M|h8S&jni2`IdNowTwVKi%llADc?I zDBxf;*qE1mhtA++@TL2QzGFlnW1hgWuS_>9YlVbOdL%}9{~m2!{1cK^al zW+SXMHy`tNpzE%>6M0W!h2et|!B71=4_lYy(8%)a1bP)U_Z3qMK_RYDZ>azN;pLk} z!R`mhOQ9B(olsq@vtA&PX`demaxuYF-U@m?0rHr9H_zej(Gy`=&bz$aPu!P5Q`v`MLy7rM{-R(j2y6aC6Lo&;shfw6x2<^le-ks3@%wQ2Nv;!Yy z6&u6vI*L}xiMRpz4eTbMh&AD!t`D+q7Ri*_un&4O9nd8cFLYB;fz(=Toi8HQSP}kU-$dmT55_iU(@n zNl2)Y4n)?^m#A5MWwLbqVD0n>)3^qNW7l?*y+yIBnQ!lMRrqTr{_832wh>b|M;z_< zKiai`2c|UlS7;46(Q38PJ5gQM*kmUhDtoNQVIV}MoPZLi_VFRI)1urj6W zUh;-M86>>upWv|y^)1c5lM(+&5`cEztbw`oz1KP6sJ_>SW~ z_3{BuW`ZE<)#`Nv?1Z6#l%?|?B%>a?2}><6pp6i~tVdfbtP09Tuz-%thID6B(pyKp zvUk#Qzd*&DJ?yG#ij!~B4N^lMzg^^_N2p85Mf3;hRGFUsS~Y|Ln=;SWV(jN+w3quI zu`LVB6%Ofq<+Uj5?{|k(LdSBJheY{85d$ovd>&^GzUJuqeIKP`N`lMJumBF2zuoDO zJmz+Nn3ezcr9!7M6ne{f@b;i?b9*9hlCKNQ2=ATT@UB1BWB^GcVd!-L`Bg!u{$#A8 zDS9yoCl_+k{NyiVRR7nH925>r6TZ#^5@Xco#TZ!(6PwBm<(f#zF1nBP79}27z(CLl zD_WBtbqz!eSPGJkO(*M8B;n-Akyq3l@uNNq41{Zt`{HCT%-zg@ovlL=$Mq*d6u+WL zl?_FEziNtumqyJe$ZC+hs1q{{<4Z@92BY?;5a1!{xrmYoef8PmTM3G=v)?j~zgFc8 z@d^dMOwVPKPPST^y|FhQLh&>qXol+7)H9OyGB%nfH&>x@SNH97mR>6B8UVtQ_G0S8 z%V||Ouhk!K-)@-g@qG(zBbt1LA}eGFjE+2~W6QtHtbMsfZ&(Q@EgM&qZAENbn3f(o z2w*I7QSzI020ZW`zdsXrG*dNc$s=JgfIkFGY*cJQgHkrf(#N^Ze9Cjp@E5IJS!lgW zt7uGZv{$|1#(m%$EZ;WLP(DKK&hmIRG)WG(bwB>ozUA$sFPz2HteDJ#^cW*0N&RX! z;)CdBJRr$eT+`~_O}C+_%5;70toFFLz)%yBww;Sq5R5 zQTRj;Y{^jJd!TFw<-f6KH_36Y)*|Vt(g+Nzj$J^^!5#pC22H*WdZlOPMCw147w3CU z$d9TL7tZi+YabdTv9WX1?jJL}@0?$B5hcvHB6+@UzJexRKLo_}**eUcY3Q9I-gpG-&?@J+_!N2NYkPK=Jh) z31-?SjClK$-zzI_=KRxD+<&(qrF0cM8mS-E{`1{dAFZpmKahMu%heeo`B!#mVdlI2!h3(!KK(!Q30@5W*2NW$| zB&6`ha~e8xND#hItnUQE++qFe2O{juVjeKGnKps%J0#l{c?#M?Qqj=!t<+ zxum_|`86dlk(3lEW(B9MQ*)~2v2(|xI3#t~f3$SF_m}LBlG3@t?QKMj_H^ID{E*(! zdt)pgfBxqJFc$n;dAYnVbm-Yl+oUxI)s=CMH*^YnF-tX-PaSSwnM@CI3vU4{Udj7~J`53l(i_36C2RJjG`(DSLAU+0=lMJ(^d z6-WXIW}5{G)L+)Mxh{`TM9{dKIM_1fvpU!^y+j^5crA)-qvebzP{&S!UTHI;xgx`0 zz2Q=`eMBgMZqNJ>*|Uiz513gwXqM)OsxapTPgq{>wjR$Vm+{-8@nJmiUw=gI7bCM1xu=OE_FzYrC!>1vku6)AGD(~jGN7l7d=Ijzz=W7M`d(U6KqfcbsYP@z) z{*25Xv)uYDO>hV5NqfMwn5bI2_v8@NgH-WNk4u=S zrc)Ai&*`$Hh%EK>%0o+D=lAz~oOwJJkSM6_Tw}=+$Qx}41eJ&BU)2r*b&jzak47M9 z5A)LqztsOk~-1o+K|G+U^Zdc}-^ZVp-0j&2! zd^iayfMX|FzW$qqR~mOf$53nn{0oRjeMQ&EpJlu(08kot650b_3{;-V_q;pF44J}i z6U2hM>sGPFIb7L()NoK|?WJfHAimgbzo7_oI6!E3Z0Sw>$M= z%xi@BDe)t+XKc;!KxO4P47PrkR*IqZdK=y~Cq_S6XxQcKs6=!)u?L2Qy@FsGQfeDW zrvPyB-_dPp4=_Qd4LIq59XlrPX12n72|v2@kKVL`WUpUkTg`dF+p7l3V8)vj00ay# z>TcrwoW{>UJC8b6cZH)5d^(=`7v1HIs=b`pv_u~3l7HhDy2OnWj2&b91hBHxCydUp zZy{o$L9tP=+DQ9=HKN{gB0K*ktdMtk?3(MQ+ujZDwmD9X8^4Ua+@${p0Vd{l1Ia}m z+@`HdPyDkkz4irva1;hN#zLyFF(Uk5Lef!Yvh>VCq3!>UOUvrPD{o9`Hsw zVIQ7uJLY5Pru!-@S`!8yiU=#789NA1*RhkR_uZprk@MeBmt8y9RBPsP^^e>?DD+xm zc5s~AD3y#VM+YmsO!P0WP<(hmMNF!&Tw198^;Vad} z9Ekvx)Ovw`)+~bm!qmsk>#%6ca!JI)mx4>mOMg#()E{6vhnfu{7bG_3x43(&HlMB? z5g?QqZA6-9v3ZzPsTXRF&x2!cxHog)j`hp%0X_oMkEtQ>l=0lY7mK_Z$gQRHiKLCm zZr1S#)az}&Tt~asoW&lcefMRP2xr0~*XYlkxqLcU_RK|tVlz$sR<3BM>8K44)(HcJ zUdhI(n*u?L6~7%&3TUp!Uw{TOVbR>su2Z*&bu}g<;y7r=lsb)9tKe=*Zc)LF-M*ad zp_RczG-0Ze2e$K|{IpTmAt1&iaXTzPclEMc6+%*%pAYdq56%XzZkEaSM92X7S{+6p zWw^cN=mWOX@Rl#`m-g#1A_KNJKC8yPA$q^;(^%_Rm}%^@#jM8PTC3e|*C#W-vF7Jn z8Hm~Kqd$cy7^DZz)7e_atFK9KK2=6uUng^baty8tR-9TLXLp~Z4lH@la%s`W_TG;H zExajcum_bl$ePA_17{fGL=Lf_OItQa>aEV&s`m%(^QP2F)bqjDA3f#4B}^(ol7_(p zW?!hxdr2V0g(6Bcsg^@?yAnhCInYomX140hhvGdW;=4(wpE9EXOaAW?7&iRRd$pIW z?5FM{Sjh$!^HMEFL2aV5%7Yf-$QZoiGRPh{R)m!EKk2B=z*ZkzNd-LYSL z?JhTUQq)(*={~tuG?xZ6ziRIumx6)HV^70fxO*H?2yx<@mQu+U#W#AcVMh8mzDc3! z3w``ZyDaGPX#Xh0AHJjF6}FX=X%&-|_^5vnt$$$|OP?Hzo8qNyHQwHrVH5eiQ?GWZ zkn=A$4!F(>#@i}R+y`pWl)X?IDdsD}WS8XjB5=Eiy21xGs9eQ|#Lo{&I5|+S9;8xFIn%Y?4EVs95FB4&vk%0tynr`?rRx- z`yh0_zaNKF{*p5MC6nfN%HyJxn z+f{gJ&r&-9(KpJ6iIIyjOA}v5H7ZY%>~SiJO~?fW9%zOHoR8(ds8)-t@DK6R_nP`0 z@D4H&U4Fz9^@T2-4cSNwBo*_rur;7fYtb^YbI~C3OGSZhI;pcf1vWHVmME!w_oYSt za%MKaCFN~Xx3i}a#!~d?i$GSGQM=BBV=lUa zW@UqINp>D{oEo3;$B|>X^#v%4di>piN_hHIh7S!Vn*h+5u8|n0d;`s78 z&{PvP%OjZIuo=;d{QV;gU(cIxA$w8W-K6L+Agru)GD+;8=! z8?pqdsGIDSIet$6sxa%JZRm~3mgoGoZB=tDhDp;8c4hL&86#qfa}HcI?PL6Eq~`;L zWt}zm5Rt^Zzej(LbgAyuv{Se8{*#=C2!7rnqm3H;i@ad4;c=&!ax!6^@}}*e4XGGB zmevxV%Psxgt9w6=N;2B@q3l*)Hg=307W{s*TTaoq`{audDYsQt(+{r7pQ1D4IU&mc zKb-DjeB%9`wP=$@tCa|?Wf)~5LW6DFWY_ha7@)5sk{JwHrCH6ZYq_EY$K28aILfgP z_KrdO(_Q=-bbTPjQh(kU+aiD`md0hwJss=e7b|`}FmL}DyccDSjTa`!S0!M56jmjZzy=U7c-z79QD?((0@o8Dyz`ZUgm=POiNkNrrx&)RKhXxK z;DU}9yYb!R-0xRMNM!v5dhL-!rXJfq@2zf58_NFsf zOv^o#f4_;xS;0f0!tuoGX+4u;;LUVo6fWuUvD$LTBlqa}Gn1)S!wp+M%_{af(ly}( z_fg@6-BOI5s$xdoqI%DF1xZ8fBdtmEEP`|8i4g;ROoxPo9|u8DVWH70=|oP2%I8G4 z(X?M~KyG@+ySyua{JWBO@1f+tBl2Uxv(h(x53!+qtNnxI2C&zdarC*uQ`)E=;tmDA zB?x02b2=;2VA!_vp?dLtb~6niNF!e^+kP8HkK+0AAxzeC50^E zIkY+>k&8I=P^wXWaV8z@m1xIv^vCG-PUr_EUs-P$g`jKNrkOh4gP~N3n#QIyAl3vIH#@&pUyJG6rxOsz=qbz|lW&e4I z$33zSvT4+&WC)l&(*Qbl#B~!1Cc94wgSWtlpa5Wx#@5hU-V4pDP+Pt7GRkQ4f#ecd z4g2jcv0rrPKy~_qm>UZWt805l0QAMuMl@wOH;L{6*KGB`{`SazTM#R6jrzs3G`oq=(mvN8^zlE?)>M(z zh3leC%c}=zAb`oVeT#I-Fsz_l`aQALzI98ekBj1S*egNecFkRejl^NFuHJnd6P=p> z)n*K^U#$376FZJj1IzUqNv%k}!-eI+9+QCn(&-oN`Ko!p)a7;yKEf79e2w(oGfs3) zb#|#`z$X1QjR&jg^PJHVYT~5brTmggrD_-K+?$#SsK*~6=f-)7Ft36 z==|bZQ)^ki=*z?pn+EifB&|%ro>Udy{lr|YP$6|8+i7O^9QL0sV?PKMQ{#Z%)Mfgs zf~$M_PHVHi(4)*n?66ZDllA$+Us6Xnrk=kb=68KuRBhaV&`0A)Q8@H*=h&17kvabm zNh?1&^u1CIErsP3y#@3N)^RPkTQAU5C zI`-_|wZB<5gLYjdoQ;u)XOrdU!zSgy8sk@&4*PfaOF3ttWvRY|sVDA&z-Xer0}2_3 zY6x))GsLV&hAOM zznJ|Ys!ma1I$tSmp~|ZfA`0mJK^;-AE(Sc74Aoi4C>A>K?bQpX0shGoN|l1;Fz`zh zEKL0uuRx7P(>Dv(w`NA9j2fX%jDP%Fg$V8J=+5x{U!?B0;Oh4J3P6r0y5W#1xE&Nt zYX+zvC6GWfU_XlaTwY~j6~Ji7?pktSKZtoquCa#Pc%T!rQub&&%I);HhR|j^>Gj5I z)oX2sos+8ea_c4m|C(USR!dekwRITS@)Mn z!u%UD3oAv4hce%q0G7x~%}T#y<;nZc+i#5P#S!BfT-m^D>W11i6Dn;w^!`niS+Gvt z7+TJ>L`lf7N^{8{@KNN)bQNnOsnX-CNE7~do|X!$ zT{oVlHa)5MUYB^pT(wrI{bbFJNgI_G(_P_*Oi?$aW7;J^@~HL{t2Vm4Xt2@l*Iy}@ zZnHb&ysEaS<2Nl!>+!0ny9&~=vnB8_f?K*f=W8d6USx}bP2FZ=?IF=Ic7*Gmr|lYh z5OH_f4$#;qcIDdJw;d{aIc-l@%h@`v7^e{4^d$f!0ceRv?lyD>bA4l!Q_YzsFai=% zJb)ElWj=aalESO%^Z2Kn^lockBeNXPhHXo{RydQk3-};wFz1b}uc6l{yiVQ= z@+TR4hD^*HpifBg+-4BE282hpJ?_3&d9@!Ojm`$51d11g(dP; zq0cTP6w9Zz1t2`TXgl#V^)&sUmonghSyKfZ?*5#5HDu%jumeO$ah-S3*6*x~() zY7A<}DIlkRr-$50j&Ys5{g1@n3{eky5>ikN!b`u>u4b>2-77 zYKZ(7Amp&WI|uGOsSGg6tNtLw1#;3DpglTNokn&!hPdD+^1OONT#5DnmSh+~Ne0lr zXeF6{|0(1jh&qKlvP7BAigse*z-*8|4i2@Jqu)G(0FRdvwgwjt9==Y9{L5y^jEYS* z`-1?3>m_WdBC98V?oUq_wS0ihy?uG5C>-mQN~Y{Is7Z4ft;m|v7N^d+%Mh%o41Kbs z+K5i}?yXANC{I%^IQ@HqM-^8wZ$z8t(}&mJ@c2`OuM++ib#YK&G-P#WZf7gnF#tVw z=`mec?dv~-(^(G;d|s2-#1ic%xdA!?p2u)iX-FETJ<16MeyXOzerJ%`&*v*LsWb$Y zyy0%xvKu%YxZ44ql_Z`$5+sCg%eO5qlRuCpYvu}FXTI#-V-01QlT&TPKZM_rlvR1! z!m{-|mEiGZurS_zZ2spzFqt)Eo)J&90Ek{&F93#bh5%{G0|~D6-(0Tb?W~u!9=vc> zc4RO+0qdOVskB3^JiH?3I@V$RAhx9ckkskXWk>Ggf4^$0UVpS;A;0 z?z*Yq7v!X~6~d>)er+GIF4eyIRITDxHH)e0l+pe2J2>9OAF_9hFbWShHAefKtMoiP zp*+6tPadz2aXrgcFJz>b;dU=^7x)NpR(B;XOy#@3UcX0bZ2n!)4GNH!q44|UJwwSU z>6h{cKnf3r0p>h{$|%?J$Gwc$4ZdCYNWOF&INF8%5Le((Y+5UpH3g!X0y4Yom!Qi9 zD{f-1KJ0t)KmaLifu)&!!O1q=9krbY4@@mb&8%s6oZIzlM+|eff64U}1HK*f(SH{x zKAM=A-%(SbuY0Sm5^Auk%B;F&a9XFIt;~Zm_eYOlp1x0}l}JVo_YN`2?i{M3UFM}b z)i>hH-IX_b9m2Rf!Lin|*Y7Ko>^nK^?)D127*pK-5WpO8Z0Fm7C zgj3zcK&l8R!B|p_izxV4K!7Tbo~Z+$`Rb)ZD#fJQMQ@$PsEbF~fYtZ4UQkYxjsikp zjo!wHP>Z}VhApX?2k2D_sTHf5oSg&g8f1RlfjoBfZ^|o#lsqg@c0z=~iuiUpg{8H6 z5a4>H+cr48LkfGF*zWY_FW(u(YAsc`0~aK{jUX@(oM^5d8sRbO)A9SRPy^^|>pguU zIa}RZK#a#izwD_j<<K~&KjG=80B=Wuc+gwj9KiCUTUmdfI^_Ck(j5%YUkpdsFa#1xH59J|Y$@=AKvNxj43>b;$oA_EIe;zyAn_klnLBDT0sn&u|_n$yU zB-ybx?a-VRmbH6sn*U|M*?X0J4%bAW zPErmqqvVqOW;*}OjtF+? zW~JV4U(+^*oySLu(Zt7g`T1*u59`VwEWO27;>qc5N1`4s-VFGvcsvIyNpWy0?FDmF zIor-7A4un|B17+V=sj_dV?IYRAFe~)7!{TT`EnTwmCI+dS+*40^-fN@-HA8WiNE>7 z%?VEvSL$bDd|&~?xxW)J6s5!^rSVh=`;J++(oVTwYyF~uhR2>-5;FZ6i!3v^8#k+ z_BBvo&*JS@%&k~5YY6Gm^0MtR-)Y|NV4QmRvoc|$dy!7I1Q*}=p`+;9H7cg_wrpae z*2KQSn%o6~8F%2?a0{*{$gJrT6KA}Oe`(e~@3d*FJYGDKX-Ch^N19rpUR#_t`G3w@3rLKLnDpvf5*K3yF#Q=DCIk()z z*YZha-Z4-VNISEn?lscU+uc7zyUGV0R5a;jrFmom#z3Mw8Ag0i8Q353x_isNQ!U3x zkU7aIzg9QieB@~~NE~N;)dE{h(BJ}p4hkFxR2sU!8b9@F_znvQoB_sP6J3tp3B&NN zx*T2ah*QfrD12FO?M zW?fJ$Xy+<%MimJ1Mz1y-gI82hl92MZHpv!%1!Jk2Hk8;Zg7XH+6%`l-nFb~ zUc);IOP&|n)fxgNajVB^|C;-_vMvbo1=gCW#{**@p5l*34E#CZz{u=!Q5(VYNu5$J51YKR;A@I+-m z`6SL=IlW%DWzX1^)nab0=7$kewyj4PGpoe}VC(&-yPQx8 zQ@81xYxHPPyeOmvG2H6`Q>8ZM05AU(|K!_z1x=7g{U!rA7^nG3t1+-Tg-VXE0tU+Z znlNEipK$GgS>NVZ!x#K1fsZpF8heK0I~>;-%#G*Fs=T$)uVYKI#blVfXH~<+w^NfA zS+0tRArobzL*ly+zML=}H{JUN{Z)h4ROAU8nW{*huFqrFf)lmMgN~QALF4PLup_LD zFKg%&IS*bcHPRUV4Rw1Xx$vH)C}r4&;35JF;vJj{dUf9ep^|&ZNAv^w=s7Y!-D`P= z5QP2d$B-j3e}3|z;t8uMU(ug8ZMqVz5uPZk-q|F;l+}id~04~x9Ml7>(6`?`=YM=ei=U&xqPhhTov7W%Ji@= zGt=ypqx>yHgMAA7$~Hv7!?mNG*xuiV$tO5}@8;nB4xmT`0)RhyiH<~DQeV`aZo)N@}24xu@n5Of{RF-?VAQ+dv87{rI9>Zp6o#<9Q++pR6VeWHlxq7=GffDc7$rM%G1Z$005|NWTu}VqmP< zg?a#AKYo~pX?XR(AnlK^l=Za&%3*An7SkmFWVh*saNRsOAqereaUtESo*MB36s^i!D_gYxIO~ zhE8?Wxv(#6(hcjI?r98k8^8y-4s;un!U@||q`6UT(V-m2PJ){hTuLiHf+`LEh?VnC z4brJMGAFt3^xsPM>(jr8v~}otN9j%+*8T6!6nSwj#YlVoks^rTNiLOuqd|+{dHD&z zf;#^NRM(U32t-F7=eVBqqctze^;Ye3cv-)KsRli}$PU&xjmb33|0z-loNobezEwu& zpGYa3aWj(#hJmnoHnxvn!null!YARw5=?F;;FW1kCYa1UcaWF1Gfh>53k_R`0z7sI z_@XbSsDV5CIFf(kS~u7K0Kl4ZCc1h<5`b&t3yZAoA@|TCWdbY#pia+WELq(<+8+qr zfivQkU`$2WYq@Dc2Q~A~pJwYE&-JkCuTU71oKBzgsr19B;%f^RNESY?Q{Z@qo9z9+ zFe%!;o216LdH2JXtoN_idS&E_VF!OJE}Szlj3&G^`HUTQuw-8?Y4Td-@_tGdOc{B| zB`n+Ps#=o1qxE|O6{#ihU70s>^w^R`-soB#!Jjq%-|}Owj4}NszP&fkj`oe7QTgdj z|3Kij3IPY2F@CpzN~zY2_bO=hD*N+-Vf7Klyc`}G0R7sTys5yeQVyc`%i?)_4|O{C z&$kBEFV{NRAQST(9Ndtsak2y()c4+O-DwvY z!UQzDgrVmM}&CG#}MQTzjhC@_^=Jd_v2YZT&yB$19_Ocf-Pt_K|*JkU$*< zseXYR4{AL^#ILQi#M?JWZ`$8EU-jI(pLgQMxi&xcrw7NF2rqkI+f9==itHN${(*jp zxoy8XZJd)yKU%sbhQhP)#>C_T=PATphXQBsD9UXI3dKAx^+Ek}a@0!E@{bNocwe~* zANyD$Y2ZLN{;$tTV`2@$12|d0rG`C+pzFc{fJ^Om`KeL(RxF|s;2huBF0{Bkxk6pz z&>F2`^6b%Rq9_a9+&fjhiRDIB_wKm!&AcG{y#%Y$br%ye@6$(?uz8R2xCZXJiM7$$ zL6k3b=ge^3(ItHQLTrhJ_hS3uk4B-1U~)0?wD0!`SVg-4NieX*KS)o}@=`(bT%a$b%!(@V;W;H$A%VH%0yH zH-%1k+qJ|rOQh{kt>@WOPjJWQ*q5pXbA+8ziC;BAO+acZc&ER3(~`X5`Mtzru%p4b zu5wG0r26!#+cRTH1uI`-^6uL;2AznVk3x&h)V@**yD-+ql6L_sfWv@3j1@ZLWnLt~ zz%=t6Xi(=Y2LSQu3xQ6Dj4%NGdOY|uxb^U)`^`YTOpoa`Z*jY3@kl>Z23yygKP|BR zule4qwvay|%o**Tqe{u{JPxOiVRf*5Q~yj)^{UMby?zR@S(U>T&60iGr-TzyLf(lW ztVf?wy}V#C$HQkp>?sVwWbatX75NcoN}DO$P&2N{xN)J&juPsQd-%J&pUH8S1>xl**_Ow8Bg6 zc&K+jo=|p+{mQ0prPQ&5u^CS)1&ap(7s>fhxXeWPT}j!BYP}CG@BO8^ku!L01QfX^ zQNB-)5<+&1z{)yK`zgNH;>cDo5QS;E&$^3NXP~CFywdT<_a=Vs@_~W!;KJvuex#28 z*doL~`_bAt5UO8K-_D(7x8eV6tbZh^M#hmzTdJRL}Vx;!50JH{L8bS8;T_Io0B z_=R14Mg0t=b_s_Xi&7|1bju>=Tx};0P_B!c3ydKC+kI?7f$pOt*xyMlsDgLZ204Q#f^t-zgsf_%X7wHVz+hwol&74V2lwuRF>G&Tn%U0rRMcg&uyO&>4RiS$ zNfdHTY65D3zB20u5{!_bt;SE$#1ks&H8|GE-fzC*uv97eoSYO z92a{zcK&ZzCr{AZKG~-xU~gA;>%NtOYKuyZFuNY%i^+B?K*IdYJvG;8qL&fPKu&gu zn%eaplk`mU+ulFyn9P2vEM4f)(uso(p2oX@STuN5HB~DJ5&sX5nBnwin+uzu`{l(0 zt9)2~MX^X!%4lI4oOJT{6J8BI-fJT%l?0N>;A4QWRTPqEag_Zp2TU6eUYBUQQ^7lu z#@&@8rpbH%tWNFo$2QoVrSf@uL`S_(&e+q;r$dx9-lgdsY*1)Trf;5-B)RAZAeRzy zqVrd}G=OyAZyL(c#b<%K?mur2gh@b{u7K)#bHhU+l`Gs=+P27!Re6_gLw+X-)?n37 zD?PU4RY6LPImRRWzq4jD%Q1<4u2Z%*WcF-sLi*EYfC4*Em6d+fP(Ry_e0<6P(JMVP z>D)RMN19i=mj{mqmfseqt2y0ONqW1gY*#p?_@jsW2@jl#`hgo-V3?A!gUG~t%DM%D z&dik)pXHT0yJp~ynbDWx>&mTfFvcC0_y~<)!dyM@7KATwnHl z0V-f=-`SFnSq_-8T_sVmTd)rmnEwhkw5!KZIHJtjGX$~;Xz{)e9pr*VhdzGjO`?6@ zL(BCS%(;bNj));bewE$hY6?NwVicNltMGY@H zHMs%nz*CUJ$RAE2L8e&z?yks@$8#UszZvi7!wwz2+?cZ_iOEAJNAu63&_208Q8po5 zUo@&EW5qYb&-1>+_lS=UK2BB`%YLO-q0`H-312<}Ue7=)X3N+qXV3Hrr*(+pMdZw}*zVVPYjuDju>VB#-$ChL3s9C0t}8gU$_Pd1 z2WZl!+SyO2CjHywJI9!UO&@aWJU>XEG9Ko83_kCnL%rriyOOKH*+_m8UDRGtC)$-I z5B|ja%yCzuP}S^Dz~((N*_E&Pa7$Ncs{GEWtZP-F@3r4!)JQ_>AI9XZVQVr_o<5~@ z5pzYfe?iDgk3ZTyuG*1+k13>R!k3u}hU31|%DlhfzQK8Sjt=m03&J zcCEl6_<*fSLjxJAHs-=I>L4MWMSOswO=p@JFVC43yQ#K1XPnc4$uESyhOH`|v72|r zubS7&BQL82O;r3wUnuF^%EZjxl1o=`iXnF!?*Xw!YIsV{R$llMgH0Vd@Ht;9Q@PAO4P{3Cw+M8@P!x>YTi4KrA9uR_c(z5ii;g%?Ba z(?7pKgCt4EmL6l(hwM58-OB9>8Cfe6QVUv@;h9LACgOgPRy&Qwpl_5eCar{K;E(t;Lss4sbnaM(9#z05riH*r$`yH9Y z{p3ZPOBgflupa4lhoS5w!l@Dz!V0wJ(pugLyqH@`YKYOFpEi#pSC`s3X?~%lFAoTx zJ&vLrJ$W^)d_z(g1_QX+!$~dw&DRGO%@KCZYM?&=+{fxVQio=1*$+Gc6$1DC`26;3 zrR;d$r9u~*2yoS#2%A9|JvUpm0kx+Kul;7p`<-Myvw>1_mP zwEukR|F_Zf_m8wodl9&_yTclW#Wa=^RxWgId~SCGqCoTvuK6MA1F;;{>vj3G zkw`%e*qvZc<*y!uru2$;0-R$c(;UrFifU}w9Ze^8Z#B9i&9-7EpHgsd7xsAcrf%J; z!fa(XZlo=Q%K#fl;x9^^_LIsMd8C>wkZ5)?YPy-M(ow$aQU!cTSkXAL_Q$(FWrBjA zRWF=hV9Jc@XD(WT$X{}s8Wvj7} zgyS==3#Y6vT(b{(^y<<$S)~96RY;WX<4{5;vtgbhM*&RFLmQRvNJ)?$)?WzqyY+KG zpx#SG#F0E!n}^BYI}kv6Lv40jV|9K{YEC_lXsyGQre6aT_65EgDi3E%6NnqXYtk7; zqU+U_;{_MFz0?Y(sf@G`re+W)&|cnIUIsf-v7f@6&3DTJvLs^Rah=-VPzu8e#&`*| zF&^beBo6%Cd3&FH#?Ad1nRc1hy>XRUARdmQ#p+q4we;hNY@e|!4ckhJk$(}N zVv;6=WiPx@5RDl}A8~O1CU|VfNUVWJ+lveP#buEl!cR*Q@X-{DuYyY-yic=y4gUaQ zmNy&qA|6VP3Z^!e>i_Ocy`b{rJzPi0MRn?B2G#Nc375(3R~O`m{`vgsEs;}1%;Jgi53+EBAE(x@a zd-yxDc&`sRka?MStzRQIbx2i3@6{Tr^I4PF0~-```=;uvLkX)N+p9^9jWS$}N?M(- z7u}0Um8Dc`Cdr7sEgRElrdfg`Rc_v&D5P+r_z&8v@RT5RGwx(;VUpaR%%zf<{Ba?K z3k&H@+u607Il1Qc8DDZ1hC*mDAwFCz$pHlEmaLD;zuA8SV?p0++nBvcFB<2IBXja2 zM?&Kh&-!^ACJg8DSY^Fd8K^BCvY1?LoM2#+{^>_-n#{Pzl5RJ|ma14bmTj)#r zynF>qko1j#T8~W^HQ6gXJ$nzx-X7oLQqjq?MUMwi{4!=UHAl62W>K-d%31l9dpALyQ%@1t6s~)7BVL_mz%9;MQ=;r-3f&1UIH~UXlGnT z>3-S*%`yJ3k*W2I2S8$a$LPO&_58R$VBTD`t-^_c-27ZH%dzv6}WY)rV zs!}-HwpbxJZ+KPLg>PeWS}YO_F-yQB!?Glk%mgEF!4NdQIur9@br$gCLEB@qt?6MD2k01=dL47r2P`XSKJJ90_85 zmlAB7Vv);7iccUyzjr=)&#X!Q)H_HNA==vpvbO)@j0v6ibbomMj_uhdqKB``V zajI$9Uz8eCT#GtBC(+*K?A>OBi(OBMR0x-Fdm0bI#p5xLI%i!hv2??QoNG0F&?_k= zbsl;p9b4;MPjS>|wA4}SK%Szj!Ww>kArH4iOT^`i_~f5>&J94_&0 zruhGAx-7OgV6v^h?cL$2>@gi?-97;B=2zC5Aih`SzC9zz5R<(guu}S3t~rraqlPU1 z2EH2b2k*r}!+V|4US_qgU4^S^^lpb)fb!f9vDU<0|=Og%c z`?J!5qVPrXk2z3Tr-kH3WHy{YQT0=Q=WOa15RoJLh$YC+$I(oByjM;~o#Ksm%KsD~ zGZIY?jHSEoeDJo`-?{aN91}Mtp>PG*4fRqCSQ)b;g0fB^(0?|iIvrN7n0`@&YJFAVfB4bdXEWmrgW{z0gn>vz1 zOo1jwRQXrTO9$>MjYY~n#Is_CQD0doGwzl%8!ldfW06hrxXx&MV-zze5Y{uZg1J-RVz!n#j#~{7zrZB81>iT#wol;+% zip%!)92?oI$|UK6kp{zC;m6>@v~PH z8@^!by7wbG&!%vzRaNIr{np6op1-QE%fN%_kR+GGqT=5pF3$Q+6kK=-GQ{6|r$CWQ zNja-p^#bb@$J_Qirn4FY)#JD6m%!8Khq@!dT>HDDurNa|H}B_eD1Ucg4wx_JvO0$_ z{WP=ONu6-Nk62ekKZmV(q_dE9Jsu55(o;(hRZZsSDv1-ymL4GpM#3d;10(||+@c+gtr4^R?O+^U?04PnC;}~iQLFdl>EJW{+ zyvqxqU!5JjOWry=$()Jre7EC5=hU1wWKO_8SLGH@{^!++jyuNh+$E$M``yxGN2M2* zU@Pql^v>fB<31auGZbovyKZai3{0 zSDnAt!)&}&zPshQ$R6d(AV1yc zJ?PBe_fT2{cktw#o;fjzzH4>GYYBmkyWifq#4oMOckdzJ?a4D&o!u)EQ2+oh>FGnka*M8v3I0PN}oDUnF3DJ87 zdkVk_Gc3Xy9Yrjt%>|z{4N(8#V0o`K;JJegua}jGoA=|l2GH`AQm4Ao&vjR(98CH% zbcINt;Hz)9yIH3BD~9n*5X6fC;!J}N`?Q~PwurQ9mB3i4+oOI=qTS)X6U9bSqY=MD zouPJa2%?b`PI-3bGVXk5I+U~+S`b6A?L=f}GueB}(Z!*C=l+fECad8V7Czh@7?932 z$e;9nCu7}%`GZ%VHe7h^9Jg$)m@gv`MLK|4yYVzN^|bHit6Q*7s3Hzf&HW(pJG^p^ z`Xmtsprpl%8w!t0I<$dKfDO_KTrsk-c$GWQ>Q1wlMmOiSh5b*!a-(BSLkN>YqjxFw z3$jf%{e$lsC0-&f9feN2hh62_u3Vf5KDjEKdh>HoE?dLRuY^n+WwzTvUN?>k^=0EV z^&qIa_<_JZY47!s=usm0zAwUMI?Zx2 z+t?s-XNkR+@>=xL9cOBAn$TqNd~v2o%(|Cqncf(t4r}ZDW^E1T?7(L^3HZ{hEM0W% ziFt}#&v^l;j#1SRP5!uj4aEK*U+_J0m^!MHB3QNbw`r)!dphW-@Bh-=R``dd{+T_^ ztNG@oo~W0w!#Cc$Sqz+r2#h&PVAvb$AZ{o8+Diy#K5e^8+Uf+qG!vIrUvwEGuFA7G zwOTy@PyH=H3Ay#pmW;0ZGQM3~HU>x&vv+bjiJ!R6)swA3o@m$d-zR>lt{M;Uw)e#Z;WBNb zxR)f;2MR4+wMPfX^SA=l8)c*?ay>3B2`$t|%xt{^++BuK8%kB5nHB@$%ZmgN(4O?2 ztO()Rut<$b*^E+EUfKZkRYxM`0^r*WJNymbp;0MFRH~pvC31K(S}IiISPE&=jXw9{R<o?i7_$KE519yIWc>e|ju{6r!MMv&s!)7hJt@rbw3>bT=ZA z{3ODhS?1+n2^g7PP?muWC&w7&Tlvi!HE^nbQOLV0IokfHKX{paoQ{Td`W$un5 zIPf>2Cn83K?6uUhPhYSkd)1?x7gq+b+*0HF^U{qvf_PkrHdo4$xWZh6%|lu4+er73 zS%wRjWmi|WG1nF+(|AYiCIe(Lw~{~A?)twV^drv-rTE{tp!DgKlih`wiZi-nqFLo!$2 zx-{wQc0o183?C>%4+@RMYw?fhwEGs^aC52fd!Atxo?rUtuYT(H6lmvqMR~M49=_aB z$Z_}K*~E|u^c+B9xc>{|rE<{^Xv={vmpJ{>90Rfx#>{hq`@Z{WwpLUVSR!#Y5E&L* z>H^jE#dumWn=SH{WA+gm(%lA8yTdb?T4O6VVC2ecF!JZn}11#8P zduQ9W3KA~N*ZvgV`5*ylGi>m~gtAG@DYPFA>cvDrH{v>-Jrc8;zwKr!E4>~fho&ZM zg141HGf%q_+VbKn89a;jJH&|}E3diew#$+E*IgjT^=b7F*bDT;oRd#Z$kAePX&$>d zG@CCn=6&0{fE6J5j0U3{tAWx~C+_;$x58URHKXLVtReJAVflPa{@SZLO3kjhfj4TG z%C#fb2|=gzN`TO`gUtvZBgsQ_{p40xmeWV(-soNvo4Z98z(rT!3GQb_F2;JVid`7l zGm1DEKLYQ@yPvi0Q=Z3>+9eF6wO%$Ch-vg*g5h{K&&#c9dw`t5C5T1azWPd>v~ zB7}~ZJ-a+o8!XK+l!WC4c?q?&szb{g6_NXs5(?%;U3+a7gR`IKnNq>PC_*3{W+SqU z3k!5JxD+sydp3bFa^9XdfA%=xv%uW7o^6@c&8C8Vy4T0eQ@WfI_xJi@7AfInHLG{G zePjz%zI&)h)Lp8v4uyD(k7ztbAhdJ2$6i69uPU@jZLpL0#Gck@88Ci;aM~dpaO-Mu zqZc3u#y|8?$rD#c0QB7%*AbN7j10fcC5NhsWd2ZR{r9O&^Yryz#c7A})W=Ej%efBV zVkuky*(`n}nJ`{(ahyFIFxAh-b(JcEx1#=X&(O7emQz89$l?9pbBBLI9 zDzXMoMJxKdl3P9yv+fsJzuI-4n=$c9#*r~2P;R++u4qLzyz*jp{oX+xRAASU_HG}b z`I5&h+#-^;%?j5}@Xl|CBHT{vlYdlAv~Tujc$%lj##jCJPTNYSSd4+wZH;A~`KGyk z85x7Ji3L>k)H;t>EgOLA72kB!up*l@J_$IEzUki zT7Z`uL@iD@13|ZQFh=mC@GQfL?s?ka3e-pkw{`x`x;NWil&VwC4qY0}Kv!Dm=ZvhQ z5K?!WEP%-F7HHYx=D}y&f9_l>h!S%-=N5LcgZ?I`)?%Dvy#vcQy-^KE!>W@ufUlI7 zDn55%Ax#bFsAJO;q5xUMZIyAJF+Y4)RkB6Vsnht%@z_eki4sSZQ&-VXKX(W@ z-evC>nY;C(TyjQ= z*R~nRBVY22bU46#{78G?C#eNeV<@;?vc zyeB%3-JWSEj}q0Kx*tH^Wan!s!t)EqBtN&b_>b?g z$MpoE>BRtw%Vay46Rq|iMB|upEB3tgWbW=xcUHDIo%ZOH`Pi zrfPwu#X-9)Ugvy1A(lzY2KA275n(%t;q0kasnp{~;~EdQdq^*QZPAg6{BfY@bV0$` zD}ay25l=pEngLApbiK@j>#%JsDd5|Idl#3F z+@;4L-ij!cRxrKWYc3r|7t4m(aZ{(s*HvS)eK@|9SD9JaPa2J0MA@r-cy?F$X~Tuy zz*~8EKuy1l^A(5d=~cMNehC<*9x|#e)*gxt`*QdzzDy~Cp_(n8Wub1TLPJ^q#z}{e ziSqwVTTDUPLUT2G{j~JC%|2Caob2a34hnfZ?t=;`d=HvFp`l1o!r-(h|I$-5HgOdI z(?`+{AWv={1QTyoE8jhNe_5&>QAyE-rX-!)SCSTbvINYGGtthtg=8X-Pz!nit)}G@ zFLew3u_0HP$Gz^7h@t#*%c877UnXm-lgL%TzsvWxL!#*Yibr!3TCyMZj(>53{U6HC zyRE6bZP%lSfCz{*5g`gHD$+y+=_rB)DPuuJLK8uyN-s%NL^_eN0MdJrD%H@WqaeMv z&^v?>AS9&h-wMvm`#k&If9!AI;jvh`*L`2tc{=m3>1#vB{Qz=x)M3;s4N0n6VmPx- zE3;NrFdBHhYK$z>Xy+Nj2~|OHctK(f&9zv1b%Ea{O|kUIt95TJY3E_S@r5d4o9A`c z4iGUBSi*fw5#|#^LMGBS9zc(N@Jl?Fs~_Bg^ws=ZWR^_AA`Kn$g9takbmHY6nm#QL z=tURMPNPXM+3Lzi6DzT1H11VS<6I*1NCs_d{Oju5QP$Nb;kLu!-RSN(aT{Dv-*)O& zQgF{D!A1keiR^gyQyYkaC{<0AwVIfaP|c&s_wdvWSL#jRw7s-!{7tseJwuPLfp^;t zoo#pE8v@5G6xP+sK^vSa7kTjISKHj?jFXPin(-L;_QZ(g60u%Iq00BDhALJuEmRrB zwHjB4*Im!_Y`scfZo-7Yw){66AX*uUYgIcPzg`*FerBf|3anmt{up8UX^|4Oq2SBU zW}FCE>6mf!;(dE(!_sYx178-O8 z=c|6tFYmiGVv8=>JBwAr8%-v7`T!q3;e2&ncesA;5 zT%=9ta@|AFC_?bsHx}l36$8|Z{y~$`Hvd#psz^0EMSbQ-k=nryiqb{rg7{NUd}WJH z%JA%wK5oACI!C@o?Fx9v{lFC;iY2N+u|&)K%)qxE0~y{MzRtsVeaUX!8G}h1=V0ko zccXa8FqUw7;QRCU(?BpW_0}cHW!x<5p8VLGh@%An^&&YUW9PoG0|6L?3Zh2rcmL+3 zv;O9!Lur<(`5#%I!~X{-{Yl;F(mw6nxUp(Q4-0javwO&5wrRFwN^JB^e+Vy)|XIDz8^%QT{(1Ulh!Ve&&8x78{4-?G}&*mbZM z&+f53>;3A$AQL~rn$~j@*y@PYRj3cj+5b+W&pZ8 z>2F+6d5fJ|`&&ROX2(d{ThA603U}$;E`#HuCcm}@T?YU6K~I?>H^A11$?vFzE*`Cz zb%9X`)CJrChQ~82Lr)#%Cza9uOnd5a#QsgmP83(m9=}4%w@dtxU?Sx#Py4+^4?q~w z`@_Y{dN^D&UG5A4vpOrv)}f?QE^4zNCkEL+<4{`Hg>a&8+pY2iSfN&DFVi>;RGj+~ zhq8*>H3;CFbFg|BsQ-(M3a!v@z?vOT#=2kk_iXUGIy>b${Or!qkG6&AFp&=+iVKM{ zQjl6PmsaO1BgOSk@TzTw6jO83{EIl{mla7t7cLWzDWgh~a1vCV4d|rrX`s?MAAsgV zchv|g2*k49A2XS&-*^L0F5~oZ3#xzf_Ci3uTXM@W?8`a}}Ldrt{!8ZeE z!irrID;p^E>+;WyFG&<)hd?*Ev~LrKQ zD19G57YR)QbP-3xW+52A_kQxtb$?_#W#tth?;b;?9BXcb>74c3OF?L6-hSIOZx0V2->Mg5=&UujYV zJv2}{@|Z4wEuQ{M=iHM@b8BOi5(MfhVNXN;*EZ#sCl_ikpJI<^8POEQzyQ((2NQOd z^51=LPOFN)$ucAK9!r<2r;vNj?CtW`HzYO^YP;k1x}bqQow}8t1QLijf4Lc_S^7a* zM)ux1*&OGvbwD$bmd7mMJ|+oAg5TFhg2!bI2z?$)Y`ut|7x8bJ`f~Njp~)&yIV(z` ziI#w7Y^_BINFJ6H*DnUP#S(vp`Ytu^>Z|IjT==o!sn#C7P<4ivw`Fis2EJa{r@dmB z7UlYgcpZ=haZwZKufySQYCTRPEWY`K%Is66?-e{nCU6Y&$4>_@p|+N}pE^@9c^{Dz zwl1n7jnLSQgU0TiI$Z0WEyEDnRcSkW)y6`xF)*C4EshazRrz>q5xs9X*lw=>bb{5cd!fGx+xUc_-w+AZnM$i+wHZcT=(FVGWy^DjnXIJEYmCmLTwb!wu%+0Kl_ zh4{G*YJNUoACn#@Yi~pXIL(?Xxw)CkqnpkxvxE-49FwFRznIELr5pu7QGdC8PLFL!8!xjArp@SxCHRNw#Wf&V9H<>wFhQGZ1S8190)cZhoIwPgR z>kTDq?Rvekk|YO3T0;s%dIQ2Cr09I~&A$;{dyB?MMe5ED?Mi>!EpC8r0Q7YC(APlp z@MwI`-EMAJuTu~cEJNh2hPp~z2YW?Z;QjgC2v$^aMMDAH&bbI<@)nCbD5Iw`s>~A!6JwYa*Gu@VGxi66vLCSZ+88wSyQ0myRu!XK@O@Up_& z%;moEfzkW!0bqf$_|v@`hVX_~DEV|YjkYrQ9k++_U~OoqRH_cvhEI0!LDgdF`6a`; zKRo8AA?jV*EA+Ehu3xL5XCC*iMCe9uJzQLQ@t9qR;7L5xT-iN zfMzlKP~6JMQ)4)@_M9N@$?ytW7P@Ec|5~U>p|Z-f@n=2EMuzXvd)#L%)k3r#3$N;A z5L!h@a{0Nh{!(N5)A2^jW)%Fd%6NX_;%=bc6`>Vg722jpEh|5og~I?OzkTy2Sv~23 zYU05VoqY5jS&h9I}pss4Wf6h&PqmYUOPQlQhY<9KjSLCt7Xx1O7eQWYE-LIiC0;1IQGTLWfxD9&U;O$D(_r9kS&8;5+d4&ExKc9YQAP(V&8X# zL%2E|-~9N%UX+gVxctaFPM*ApV}POl*F#j~*z{{x+H~c>JcFT*!L|L!wgs5Fp~cG> zR;hk)OvMb$-w=Y-bx$cX0qGBd-Uc-aso2)aaJUzaeEJ2njKF)*#_(Pk*{pX)hbN=? zVi%>EF*UFB@J<@)qUM2~CJL}(dQj*iD>{v>fm@C4MX{Cu>@IL1TKG;WZ?AK?dAQyS zqbB-3CGF%B!k>?>DDxce$hWB*QSm{nw4n*P?%cWgUrMNN8Sna^fz)Mr^R#e>2yh+h zBRL!s-HSbXZ4S4_;`aF0$zE3J{v8w}$Rq|Qo|FkKslWNqRRen8%OzgYfP1^Ls+QWn z>rLEbHa<+>dG;k9kAv8XcW^|&SCjF8=983=$=`8XXi#rxhCMZ>2%L46(F1sPfR7fU z=9y?wzpI*2U-?~sdFH5)h^wE%9e*!PoE~JsKtDZdkm~5WqIcH+d{eXJv$)TFj8Z6* zZ?7kCnPX#a`E#q}&RK#Om!#kIp+#~X*JXfjXboaSxyEn8%1wp_4cBTgy_H>ItPlFi z;-r^l5=@v}@)c^No3mSOkkqcC5>aLlCKLhqG?|5+WygG8)wocuvvq=nQBmfAH zE7sG$=Di{qnVVqCR4xuuukUs!fj&%o92CcV|1<2udHh@~YOGmdZ{;!QeLuTbLzJS` zO^d%tz+JoC&eQF7`QXc3_m)Qg$Wz-to*?hv!#B#@26H^@c&ZB@c=2BX6lu^9{S03G z?2;`4Citl}z~!pkY)*&iZs_sf102#kr8={(sw)Rp!nnc_^`P&6@6FxAhI2Gc)rW3q zZn#U`Pa%Z9_EPlvKZhc)Y!u;a)~;|j)Qfg5h-xDSg9=FW7(H~t=tV6VJnXkK7ll5# zMzmjW6cEyP95>WQn9N&TP+efCynZSEuV^k%b(gpEKHkDCG_@CMiB1QAmMEmi*jdIL z=%M3P3Sca|oQx~xwZJMp2;Kj^&Kp3a8Gx=JRlx1p{5 zx8KT;bW)70)}M)|4!)UM8Vq|MrfzubgT5U`@&I4Gonjeo(`E&BZscaUIwMg7nJs zbFM^&=+2cKDUpKRb8kE|0Yd3#8w5_N>@<%?rB;*U995^rmciOxVltSO>WCFf#f;`p zOCJ(EY`3das7I|-`<`myXP*$TbAJX21XKe{m;!>|ci_!;pIDvzHw-iNYbOjN#%6ZR zppNbO9ymS%{W|h!n?UTGooJ-^CwtqzsD-!$2F42sHZ}9#piPahOFG6s6C6ZUB(_8R zZpHV%3=!e>V`n?kQQifb()|{PO-xovj@?IS`lW~O5D$sQa76a12&*q?6QDUeE_?lw#3rP)aP=DI;~)Ukj6$T z2?0PUIX>$8=mqId#~2+Wk=9$k`pD%1h;}ToB_wtXidhT)gpNqPmbpN=K2jc_ zM^qnTWz_$3FS<1}duF!#o=3dK%Ct@!_9eI027)&6<5AqU`i_0?ggVH7f&= zfsfeJ)daqM2`)vu%X|*ob+9g;7&lpblKrKBH{|;x!Mf%f6 zw=!sIx30R9Jini{`FAsO^u6Obt$f+<=uO54Ecz%H@;PYzUqj;h+acsG-(Rfd6S6R7 zIgQxxU*%(VqQp7RU+f3NP#|JK4Z&}L4UMP@ab7O;yz&QO5AnkgkM3`Jk>3x+fuwD9 z5Z2|%=~A!JnPkJZz2D667+LgD+$S7ufYI=#q%xQmW*!{@ZUuB&bSXOj@oYFixQJ2u z8{gs}9WSF6diCq4(`StPLIxZw3&nWOyOr-d5^$eOrI+|K2wuq9@d3NP=((G;uTmqb z;YDa&96<)A6!RFh_?TLOzx4hOQAc^_fOygsGl1^WcHKu1N_A(hhpZS$=t7}K2>Z>+ zq|i-8vzUs|x2iP~A|DA%ir>eF_0??Lwz%#)AFHx2e#~30MB_FE@+vyFY*#R{|n)!!kooNwQ!S>stK2Rt2Qr7=ym>5p4bu-yVDr5DP-f0 zXe|y2E{KzEOq*2Mm}PT`d+D+6LD}APeWVyh&ZKFco&@dxR?k02K!nk?#}5Ly1Uc?o z*q7^UA)?Psl{Ns^Rr&dIqtnXU!<#`K)Oew#EH87-rKy&O6aeZn8sBwy=#sa^Kh^)O z7*>`As>JI?Z;?CS-Gt5tmzVyEEUE7Ox?n5H(nxjR9y#Qa-`Omqs|q+>28N2@2ihBc z4i%znUYM^PvyK@U;9XfpblD9<)lklwiqK-S2r1=-6&B$_BWIJ}bVclm1E@3z$lb|K zP>s$7H_;Yva~EZo@gH{VC3)sA6lqcLer>Gum#XJ$pd~6D`<^Ed#z0F?TdA6v#Tdw> z1RsP+6B5MC?; zuWLu@O=lE+2~{hc*l=54$@0}`q9=I>Aac!EICNTLbe-d^v z@5vZFXCirxT>|7<;72(HFAk68DxO~KdwSFi8qsf`HLViS-}X11&*^_7bi-KM0QDd|E6>gjgmlwpXG=4QcHWn}M{2^x z?rYaya8G*=*Q?eBhxu&dY~p=wqe7KvAuF}4?Hry18H8o0$B1BT%(>h*1FP54wf88+!c;+R{VJ$!w%)Y*cyMZ-PX+%SNg|PuWis<+{Bmr}!!yJXJ+| zmqyK^z>I!XAQzCs4T;S%t?L-%INWJaV$T(53(1EYDFs+j6`-7M(xLsq-LakH&?}vF zxPf~y)bA2HV3wod@{-bewh(qix=5-QnbYQ2AoU<_+hN3^^WZLQ-WxZRXQd%^FccL2 zml1O0gy>swXJWNtl0ECRL1@uCOjp1)e&^eT=|3O8G0PC6eufC{KA6qyst(`d172q50j@OhTC?YTb%&;#lJ_BUz}cLJ#59V=;=X|?vS@GbDwepCqU~CxUMB_Byn(p zQ)yDp&5%uGBAOqb>!yoewls13I$97P{9p_IX?DgHi zR04jPR1(ph%WRF8v)!23uPzsj9Q?lNfIQbqwV=p@h`K=i)5Q}e$^wT?hJFWLNKA2u z>OGU<69Nd$j*@p!Vy(459UBAPPiofG+G@@xOrt$GH!fApIyN5zSw^C_2$pRp%h+Te zAS;_oRE8gx5D6{benj>0dK|9D{KO23yWD5QUHD0laLekMOQ%$k~ z-pOlEzj|{X`buTKDl2|`mwUa1>b@thm9c{@T+KRDM~tm9z21ViItTsVx4N_UDW!#5 z&U4`&po8&DP8jTEl**^P2F%p65R|ndcS)hGc^)kD`inEG2Z)?{JuBVXG zj+zW(KwY5aB%fLqj^7XY!ege<>_9(H$sF_Zi9_i<+MU;HpxxwM&@(a~k@HYKcV*ZE z*7x-aV+a4A`q5Ji{pg=+KDuPeZ~f>$6FVwNsQpsUtZl-2twb!wmdmx{c3X)p3w$#> z5{F|Sn8bc7nLPEpOZo%V4|B|RCV%yHhr3LkKySUWkO=bm2N7K|Cc|qf4PY4I$zHcz zLEk@Ff`OA3yx}HxSujVvUw*0JS0SG&lFIvb`6E1ac8D;$t)+Mh8?G%x$$$9<>&&F} z^AeAminN{EjO5UZxbhUVW3{(8lCEjoTYcf8cj50AUAdYbhUjx}A-=J|uF!5J&Fd$a z!F49(^)yu$g>1{_G^h`UhGcY@L<({WV6x)Quo^;{WW_pGZ0X&G9Q6N%-uMxpsC#lTc$%yTexS-gsuN`k%wmcmox+wM*ubGn9fo->#^aH40q=1jKXs*&Gz|PQG z!oI}?K)N&zimZqM->xR&pN=SK8bM~e!RL1#^joKVxd%&W-NtW_Wat$Kx}(YTWSz&2 zU>b)ji@oSC$QnTgIoh+I!;e|S9DoLL!H(#oa!A)h%N>;({KU37?^B5M}qrX2_n zd3oruPoID78yD?2LKNC=@p%QrT8`}p;3cI7cu%3w+`2B0qZuf5eFq4o?#_^VL08ng z`>M81S>Jko#KgJ(0AHwF$f@e>qU`eH43fG^wA=X2K9MZcQUtldy)o))oX^j zLuoIf!CD3zMN(k&>w>^mzUKO6OXUOA(zMXq`E zIlj)TrE&MFGmzY!>uMatBJhan5Ui4O$?f|x1^Rt|Y58IO-7w!W3`wo-2IPRgAm<;rpKV|%e`ZfXA2wjMj+21< z<#|L&L2jJ5w~_3=1_c|jrOOQiqYhAx_ZwZw5SzcmrTRdx2J4)Jx$BUc@g;6KK547D z_}6ZDgz(DJw^%6J*bSnMDJrn}=;4Wl=ns%PBO^$}Vj?~~%45O(MU_tDEW`xRYFpv! zNl^_Y3^`EqpWmrQ`llW;!OE|dMFMB3+uk?W`Q!5^#;G1>AP|NjzLQr+^b7veAMB@j z*2F!{s=lr~GMP)OP<#9yBB)RJG6?FV8S$upPxBw;aHRGHLP#pw)pg=^-}u z5^k&VW25d;(Iz>>-s1f=)Xj)CY9d+(rTNj9Bbs<{RMV<>6ATVKdmR_7j8$_B_Bl`5X<{=G^%+U;+X5gIA;9`A+ho zNv9&%*1Vs~q0WBUvWRGKg;-ucP_K0#QA0>u9oorS$!yyKXA5Oa$|rtImso05#=`WO zw#nS?_wO@5_NiSt5Wc_HSZsKl&d!KCW_5mp;*K3q+%Z$^9;YJkBeC;7TzqV+t^D_w zs@MIqCM8Dfx}F1VjKw7F`*es4Zil08yP>uQJVQ30(SUM-n^mcG-gp$Cz>ts-V5TtycFJ=F2B z4SmI2IVwM`B!)O*yE>-{1$(ulpiF@Qg`r78L7F6-R!8l1X^+ZrF}xVuS!4wl)r)<0 zr>tc5rYGyk^dONw&j<6?N8CVFDQQm{+a0$0+#rH;Zkm5S=k1zizzHCQ;DOq7wR=n8 zgB|!2P*WMN(AFY?Q{iJNPJ*2l}<9%)uJ$Nu~zKj0r z2?+-M1f;9akNWG#2)D889Tm9It`;Hv-p2(o-{nR|5>c+}FDHv88Yq`8>6zrw+&YuM~EpqGvGAoYz7TdW= zE58GB#Co&a@=DHd-dj_|UDsLJ14MPN?FPesId6-m2XZQ?`K0nE$DPipVVs3A<(-~r zrw>&Cv`%BetL~iCYKY%X=X90at3C?$lJr1}!vO+oIjd)_?8?-_(0`{Od8pb6MXIgE z>or@CaWL$0Dy6i>HZ#c0gcvy&9LPwu8G@8RYaIR&cib039y!cGa;ybCB7 z=$=A9d)Jqn{)ZgA&TTw5KM7SBfYJNuHq*LyS9Z=O*|eepIPM~<-1C+G1M0O?sUF2j z+*G-U>&(q_sVzf^m#Ij!p3rdKsK2+DU z>q8URP~z|VE4;_Gy|-&`wX6tIy+@1dnyobUK*SYeUQ(W5o^8Aq9>ld;-)zb{{`Fk0 zwe3h6Y$>irMtFSy@o;Pz#Ak?htGrNr=KhAUbM!_&v3BWN!BA##`zyQp;s<*_G-gu` zG2Gzn`Y&Gn2%q7eJmKyu{kN4DXOh1RP!l!F%`m7LwmSh~{%7#!*u`g<=y}tVadO`- zoD;Q|m0GG~87CpU%k|a}lY5I4uY+z;%qcqKeUJM#_E>M9)z~9b}k}Nzq)qf(XI4(j-Pswdz>4^4k(Ou?N6J z|NNDLX=m-OY!+5$6S{&lEipBrV`1pU@JJ>Nyx*rm3r`Muzh@Stl4?s!m?GDS(iGOl z@A4q-d-l-_0oK39O0=eT**4=uEHvt_9>c4ZFurHYdDs7#cmZ!JA6vnzVBiFwx+#+c zV2-g+MnYjou1U~6WpA#Lh|OsUK{VE$R9|WUQ@vj>Rr%PkC=7$BcR4JZ#K2*Aiwe)U z1P!tPoR{g9WR_5EI#zaVOmXGq-<~9_pQVma$Fd>#fgrqgd0xff2b|!fyLGGnrZpyB z%i)nrX;ms~S3BS$0D2oYZeQO2Xo(EJv?%WGU@o6-oCQ8^m41?hbnv~Ne;6oLWL3$j zTJ@rt4+Ln>jJX61uU33NsrNYB7Fi3(yKwjCOHit&3XC|6gX>1BP|wILy2JfEg-KD} zN%cU9aGG8J${`p)9#OE2vb9{rRqTh@$Mfg9`($je2@BX*fjTFqgT*0Zt>YVpO)dDt zn<_K&NLSnCA?0aFeBZ#_4ExR)$@<+10+*eN28 z$1LSnNJFt2X^?*j^COpNeTs7VYvKE;Eh<#ln4*>)HLF+L_cTz?)7&_t)r%5c=@Ffy zN6k18jC1L1E5YoleyApT53@^>Hfo)mz4|h9`AB8{$mqDTlk#q7_e%Rj+O;Vv4xY;d zR03{$*u|u6Si}`#NX?TXQl_E>wJ{?L454GK0x5zZipa%9lFED1H~*Ah6KcH9^D~9> zUb;Gl>pL+jn?ajSz^ZZ=wUEP5`&Aa73O&i(4Q3Su=^;cw7_Qj)eWjdr9US_Q1<@KN z4&x!vEBtnrU)MqRB{LuG7bOY^@m_!r*u@I&-a?w5;0H(8kL>3Mnk zCJjUNxY;K(%Gu88={`r=?`&;=%}aQoYw`e!>odT%aH2JEH9YcH?Ua_cm7>7 z1sO;XDv;bEdVyj!(fZ;os|=!Dx#*l-wJXz^^Ao&xuqe=DZQEaDeiIa@N{xA+*}zFJ zXxAR7IN`T3Jn>yS)6eVxV`kZmen~7eIXa|VTclfxOpF_FM^&9&PCv8=DyNKGP4?g9 zI%C+-+iM!Fr#_*IzRAJ!qlkLp}`2HP<%zuaYR!3HioF7-lc~+S8TGiJU z>wk!4J|?2`JQzFRK?)>xr-9sW$Pmc=9;2?%0x8{n+*hxpEj~iKpK?JK-8!}VbQo8Y zRwL%Z=zJ3<;Lp}s%c*H6@^G$n*<#mw-EJ%AWNK?6xjK}pd{2RA9LJ$`_-MEFwHfxW z75QTa+lZl+dPEd)5LW&zwyG9j>&gJOj_}c-Inxc7SK^0zyNz9(uznA*jS7vonOs!i z`JiwbwQj1kkklAa+Wo5)tq4S5kne8eXL-At_~=^7cnx-V^lkGw1KuBg2!Bh!HzKKu zfb*YKCbXf%Z4fDZM&*wVKy}lN?E*V6tZU)_tf--2Cp)-f-tz^*HfP6`i!gvGe?_2= zi_n|Grc3nay=anfpy=THINn*N!#>Bo1E<=QtMxX^?0Of^`dlMyMwB2OW3$5fGL>z{ z$_*nHZ@P?HTwSmcc4v`c!(unV*kUkw`dU|#=mP@ybY(g?A1-^%e;2Y41ZmzV zc)f`jXZZ^Pz`UEmhP}y)2LyrRyTM^qyISYntWgxnERroI3G|ZM+S$J3j>FU-3)rkG zq9H7l%M!LAO!8;uq4fiK@=?xkmlwbL)B(p*@o%tgw{3W~U*!h;$99G|d6==CNn38n ziQVF;XIER`#wneF{n+pL(CBOMWfj%NQ)hmJZv-T`P?xzz5xZcmTu-xmFG0vI*d|NBma?tB(2HHv*eHB4XeB8{nE<{pc^PD)jw?RLm-e_4@fYcSVk7qIBNR7oct^eI&e` zu<{7~6IEO%=hL)lsHqpDhjxi;VXyFW44x^r^O*B^zRU;YJVEL%RrV`FYgOIo2@VXT zx^u4=^Ni~_Um*4NdO3q15VuZj*m7H;jfM>lr}Z0BjV#`~{lt2IAdfLuRvi;4zWfl@ zonoSMbeHjg+rx_|Mhsb#F2nPt@mI(*xu+r9-I{lbKog%!i%Wq};|;^3l)-*8VF;j( z>|!4}vWwH5qPsPE3M;TdAKaS@bFNwQb9rnzCWbH6l#D9Bwfe$LNsYd}ZY)0`hW|@{ zHbVurxcy|s3WR2+t|KQ)|HY_(1PMui5!m|0W6<`NkWe|i_)I8u?z&yb;ikB`0Q`#A z>W@$GP9iJEp%qwflym;&dFIn#nacdIEwb%;_5S-IC425)lT{P660zBqCOcMCx^-gZ z(@;2}*{T@vPk^n5U%f2Q_x!Wz zTXoS%k^nN4l{Y}QT-Jl*O)QMP)q=ysg{!uD20BszTi1Xv#U*rgj1 zeU+0HAFBQ&wQp5qyDy1<@~jd`@kvIDBuVYtl84G1zs_?Zg1&aQy^dNVzqpGA?%p~t zzmtkFMAN-1{{{D2b9oqaQC@kS@tK@D1Or!C#sVM`~sAB`+ z)X5JPE!y?K4nBO-JK5<)&@4d{LXmb@=p0#pA=k!k|Mx1Um%VSgu4>L&DCbSMQPRFm zu?F8s1fxie+b_DahEd^4QD0OhD4sraWy8@Lh^Wt}!;t+p`58Vi+xSo2>(l*eV#`4esc<|W90r&9~zo_9R@zmue7dx*k5 z2R0@pp1DxDR>CCXR4%u;@9SJozt&4J8y^ML)&&g-H330%7mXc5Cq85*!dquNW(!oX6Rg!Y8zMjD+HBQ z`E1tiuN`J?{1@_7&Je85yKqHBtbD=$<3!PA*J~K{1PqJrA^h;b zo4+Mr#dan9vFl&s1Yo~EL3=Bbwmt#OZBY-s$?J>6Zvc{okO)Jpf5*Cqaa$NL-YA;q;QERvO3_0F3$1$M6FGsLio4PvvY zc7T81y2Q|P58zuD&UUF)2&$~-1hVy}{q#R>D{H#IRX8Df9nhG9(0d~vPF93{AY6== z8va783?i7#s`pK2EtMzm!Irf2!*($sH7xCg%AqZ{v9t>?)Ud#T4l+`jfys29lTd9Gbs4 zYhe!DrCLevA3xW~<{?!CE3MWe#9ry~7?hB;hCb!ktpgroYxwYCzIWRH6X+H5UqG*5 z+PL6Ww@k^jw`Ch!-uIf^&-7c;Ib!RH3c|1Bnxedo6DDL;0J$!CoXJ=P@s;n?h)@{Y z+ewe=Kx^;`8tk~~RL1~&%|c+W*}uVFWUk+KA2e!K5l5^^tsULqr9RNzv<@+J@1V4@8fZBTY~R< zlBjIrp6FFSH24p=uEc-+I}Th_eLcV;viaM0d6CUsU@Wh=azyI5vu0^EPTE0741aL^ zV=LG;HEGj`>4;}=aZJYgtJf~DXqmMc%dOds zHaX~jvtJ4ztXCVkn|SN##dCWY@y46CONe)mv_-AbM6895F_Wem81f6gHgl{7>sy9n)gJQO z6KMWaw}oW1S*-GLfMO)F^z4ZZo0f}h;{w@6q2KG28jfu*?N_1_`&?fCSF@B8bnSds zZqCiPDUtQ4xBg}@z9R>s^V?~ok-V)h@z2;I28ZP-w7tf0xJZhd?(x@Kq^ibna6TGr zo7FDo6{%+*;;wqqy;{3GUdkm=?o{6Cm7pm}s0xNVFF1Ur8m~&*3p+YSbV3VnStFkKjwQY~%c-_GO8ju0Jk3xVNt=A8MA)%j6n$tB!5x z!q(YUqGi|OVQygL$*Oe`(!6zz9)T($fci93xWYs^V{KSjgj?sm`a-xl zrn?L#y)Ml*#A3~w+WFxC)1t_w#UvuTNOV8PGs8ud-j2{0w7s{>-C{n_NXiey3vgUQ z;=42_!Y;WB%cM_lX|I2M`Ols7cgr-LhGvZ90F&d6b(=Ux3$t?P zxF}!}BaX++IJR!5n&iKvE;zVW$>0ur7s9|B+lYem7~9eSXnLcOBYcRpjH#K`k)C$ff&^EqQEx4zB2sZxxo z*2RQty*U?sJ?LuFa5$UXu4zYmdfqT39xe92jT%uy!>R--^+xF{9HZ{=H;L6$8NC+q zlPiwEKAKhRAhv^%MlU&7rQy172sAqO#%x_nC#Njp;opQzqS=dLzTQ3}J9hrK_QKHy zq3)VUa5zrk5O#3F+8j(j7-*6mE`sX0#VPR+U>T(?s~rbMh)17{HYVX7iARIxQq1v+ zI z@Ws!GM|qeDZhq6+i7hr*UX9(|JdHj-5)P1~H57bcW6$Qa?ov30yFVsPp}yd53GOf% z+o`72&2JiCw`&le4;G(`8J2PY8UUl=D~_~F*!Y!?YZU`Sr}7|Cm)cnZzZ?u9yx)gW z#N*VI_hcm1ufoXi^1;rhJNuOFmTmc;H;}3GIW`TAfvL2}k&S#?R=3c*po&*5;d*{R-0R2TBW^_ z(!x~v>SpC>WGCA;pQC@++&%*claBv$f$}VfYb{4p_i|KA(l_o_nP3+12E=%KUm%DwD^q;H|U?`hd^jkKH#X$9*q?M>rgeb-hea@Zqu0##mX^F-%Omk@ z_`5Ypt`vR41*c1r(XX7w171qf7~Q0VsD@C^@2zwdWMMt~cCCw>YqR*-tVR8qPZx8V zk^A1Qp#3AP)|-QjPyZF*TcN&Y72B>bF!74?Ee|*O=}Iz6aR!L##JfzuKdoGku~eDt zHzitFQ>IJHw&_&+QkF~Z>Q90gCOSYbBC;L?ceE)#5{^|iJ)ZqIH)9U*j28o52T2h2{MK*mc_I()37vXrSKEu>q^&V+RZ3OT=KGcdX+=0^ z-i-&b>CVP(Z9Yq#p*rou_%jZ_vn>zBtH1Dgg03|7W-_GH%`WTkC9~`XZ4kA5+SW*d z81=)}&zZenH2WrR><77)tRc0v8syj`hd5@fxJ!C>u#LE1$RobRnAha!Hc3ogr*!9g zlH;L0n*b7B{aIn}M5T?>7T2K-GpethD+AUgCRg`-yX4bHicXvHKxXr{=?Ow^{vx(~ z*YKr#)WDWMa{KQxKR&WPPBM#bP70MfSvdnKNAq7IE&(ak>BSKNT=>TIM5%p1ALp(H z&K$xxL>$14?ohg%YiRYAb>rn99Cz-TDKOtO%~lqdc>$gSc~bshg%GJBZ?NT%l8%kno}<^A39QvP}u8$+-$~j5b1Y!mMDm4ZQ9>VRvJL&+_+IWaK;g* zkMY+4$Y^HMSoV=6=#>pb9qsn9>L1_naJ@rSdl{SI^UAs8@9y$I7hNWbDOU}3*yjj{ zf?wv?a8NeAA)VPweiU5*ns<#2o=^JuV_Ewr3@fZ-7S|ECE9DN)x?NfTTjAPsr7Nv= zr1L5Q&W!x&Oe#QU%&b$pq z7Vd};xR{hAKw&rpdC$@K`kubr0Z*=qwVe zF#iPLUe;wxrUXuoG4#HXs7>E{|~s6U^gdRAs5;FRzO+^kMF6;AJ} z5!U~P1;p2SK1=R2-vX7Rx3{+U&((yI6tjgyoK?vdb|I+L74hkUxM?T8@aq?bTC&aqG`&UK5daP9SSl6izz9hh2+&*ry=rs7(IAc&pvU zU+V?Ejq$LxJSgEZsZtPE0(wZJN^8=S$t=@<3aC6wSlQJ?ipmbDsGf>_Is+wLdO4_0 z6Ri?9Gj6^^4iKvD?z^f(B&82vllXSlM`;tIFhJZ0-`%n0elGW1)ay$yX+CdX6PL~$ zr;19oHLOG!E2XKAFHiuWq?Mv9qrwv<@RQ@GZw2IB3dGSy{eyY8*uK1#NyrmOr+88Q zS!OPE&nxFPN(S9`1;$YiZ}H)9=F6yT)qAccvt`DuKHKIZqm3i?py%I!BaZ*rGiBzd zo*>UllUd0-`jJNSg-ssXdTagXJ3%$2;9>`n$JO?l%Us#dX~Nf8J$=YK2YzqfmOUPo zMUk*icPX+u7Gh@3GFm?a}k&oLr2ssBg9YjZ_br>IJ$l=i`PdQps2NLR z)S`UxxU6~=_fF{)WLt!PXIqL|Ele2MmUpcIRqg|em#Iv(A+T*9&EzQIXBJZN^kL{{ zpluSKqm0+8G;y4|S}sl#h#+6NgY}3NvEdzDShyvfS=LrHeeB}ucd%di?AA^ z_-on_Kw0&F=I_YDcRKvj7s?p>l@rqGbK!%Bm{u0-G6e}eU zR_8KhecEaO8y!{z>elbhotmqQc*#}gG?}juo7)`2Ut$?$VfreUc#G6}jZ0fdSuyN| z$en(-p>=1<@ybu>mOVqeJ^@icHelA>Uq}PN7M|r$$C#j8Yd)>PG{Om$J$&6)(fhvB z&N?T#IH`@?<}Ckab-2nybb*f)Xrff!*LG2dO`=4LV@ekKMs)`S_3$-B3h2O1@#6<_ePN%gm+C`X#ZW$;1(((&n@dp_wHc6N+=1{E31Zk zp7z|P`Y2h~ioJ=j+-NduJBi~^JlphGnf@B>^wr>?T5p^G%$}$Cf?CrM!cp}0lkQ3d z$-hgd;{UIe3#~Ie1gu>CNjAp*E}Yi6CreCa5bWw z`;|bd5z8I6;LbzcPkx8$lGpr}gPM}Ym(Hq?4{`!Xqn>AJ9PrjjT_3Wob_h*NAz7on zrQA*ClKXBwPusq{<%!GF%g5!LoZ3!@eI+ErIwR-Xs-oYx$m*H-V*Rtk8i?+D@?r7|eAKy?%8gdDc}$5yBF7})BTsjp8(!2U*kvG?#IvG0~shYOK~*MmAgoz39- zH15Rp?JZMdRl-4su^$k3I_bmrJr+&mdAv6+v3(lI8VeVvWX)Me!dEGFH>Kyj-Zc5Z zQxyjmwOmp?jgGMQcndZzxGN8v-c%P&tTx%`%yEmMy0I$bA4ThvEeF?81=oExo|Gm& z)s5RWz1&5W755a`m9z%o)obAKtydwf_6}RUgB%k#1Z&o9^iqS(`demkvt;*Z+owUi zuRN~r?OTnGn_1Kl-lwDtvKH}g;36uDGQERd``!DuL{WG|EpNiW|&=qli^dHdE;(2w#w%7aFtRdBdvX<(dku(^rV>djocl)`VE#z;uAGa z(T9kuG<>b1U5DleLhCeZ@~oWa_$%vqrgA^EArqh`l_vvw421n+9_BMaXa0&|WLdEJu?}~@bUlbc18H*XOb+MEE;Wwj4q+8T>S0q457mU=t z)Hru{6+H+_TB<}`M&LcMyr^_b7u|;6(|vU=_i)Vjle?4i%z>>AlMhccC96%$u7A@r zycaABU%2fnTThDtR#MSoY*dHVRH2hkQhdIOKWKdr70ZW|qOC&xEc|A@#23&MEPbU% zac!PlHFtGA<2zr74U2I7kSPFuu?azX3@U@a+oLw?tGKr<>^KQ|`HTK?$}q3h5f+xI zFh$lR4KUUpp_?m>&BPkK{?&jG{TOpl1P|ByKYYE3H`MO~_TMIO(`#nC}_xC*K`4609&VBCp zbzj%(mGAuMtT6PgDy|q-0?ec#5J3jiT$Dt{PT`vNe8L@@V~5|JIU(g&emggofA87x ze*Ws>GUVFE+Z;;*g^L~A3n+nB|WZRo^##TYe<$U|$d&bKz(7bfol68D=y~yF%!%W`3qKU^~tYOut2{Lu4 z1n})QC;|9y4|L^Ju-TooA5jSsNFd8l?OopP=FqziiFdVB4Yl^$*V;V*1V=X8X>!P4 z#4q6OV)YeSNOdk;4XC*Yl7Abg93K?&Jo@MFaQ=L)~@=H6@=tSKcW#C-#&c>+ z^}%9zwTrjEA(AyEHP1QGN0xk_@P_-l591{wPx)K*;*pOgc)5X|ha%d{cTl~BtT}5& zga;J;_CIyD-G4}@y1UGrd@@2|PM^!!y{kMval7r(p^J7b%JeHHX)PxUqJ1?tknUzw z(uM1HQyIR3qnorZ@ao!3vH~@i*cS00JMKMkXuIco!JB?dx*bUdGlX!^bkQ^-L?f2n zg3q8P&EH{skLMVLRlx3eQzQ?(zB@TN{??olG`Y;QiP$YOnEZei_7)e(3t zZ}4MwQr-8)KxroR$?;}lL5#r2tv|w#bKS10uH=GJ3;LY!W~l`VWx_xxgIBK;;_mY< z%2T~0zrbdU;m6ZNH%2ba8(JkciL3o0bD$H&c`jgm>a_)WbxC0UELh)Q>u%iDvhPTw zK)kCQ9p7>NE8SN?u5ucK*cj@9@8&U8Og{j z2mQwD!;gR88GTW;jWmlG+jZ*aq52hQA1ygFwulE2daJbcSrk?Fe9Lm|)Z|E#2rG

W6Qe>6&Fx8owxUmV3|WkT4%g4n=cpv0o3<9!*gbNl zC0hlVl~1|E}uvnt1<1NLVj?pL?D z6r_GAkF}^c8br4PW`K%Bb-|W#hQ+Ykqd8Uhet2KG)|J^u?uXEd&mM6&TqObB>2$H^ zG2fCE(e6Lahmpluw1c^WH*D>>ufaf`PBW>N^YEy&1u=}fc6Ig{VJXEO{lpMsJ9*9S zYu%ctYXT+UU!A=aWvX<#f#$a1y61WVN%GPz2uYgjif_E-SV3|Qh zy*7QfD|`v;O4$iUYq3P-IW_qL82iYmv@ASieaK>MEKh}q1hdla@1g38P1npmK+LuF14)rj73<8+7Y{GT98B>#u!GZeW z+4H5grw5qV;haxZ67#^a^xath$(q7_OGb~qU_&q|3lATE?IYFP#s-b4>paUu40;?@ ztBa){ztOWM5J#MJ&JwaC*#88dpcO8I!$c2@?BLHfhgD`O^=^#|K2tJR5U||Ap=0h% z0mG7DXkRCrdnNpUpMmKO$9fm0ddRtu`P`?XxBI)$L$EjZ*hIZnef+Y(>t2e)56r zV*mNcpP!3b6g|3gt!q7G9jhtP5M!R#;P!4On)f67zHSCfiqR1FPJR5}O%Y5=O-S1j zXzKnVez8Yg3D)X>(?Z0BT4R43KyxDa>x1?NE)&oAM7I@oiBIZ15IMp48eu;gt#Jc& zKIk=mneMi&r@MzGO4q~vu}aOg8Mjcs-{-JPZeHDzGAq#s2c$D1ui%8aZ|No>AaQse zeHh)R{h>5Ru@5sjxR;N9_#{iUFpLZ!`LoBbpv;q(CdWi@NhAFUwB~B(ysCAFqZ{tkp^#)Pd%R7eE3y z4|Xz*X4|IcT&>R$E^d}t@-_}_XvkgjUy7m#=$C}@OPh4)U%s@Yjq$&SPM<2*rFl$| z$5>j?(j~!zYh0rz!`7rKo72Z+H_DJ_MNei|FThevk zq$c=UNP5Q92|)EalQjlJN1g2*#yY{p6=wL4W+0*1WEoNSPE)7sF!E~-;J8wkoxu@|X zDb)h)vxSI9CL2r+xTuO-h3a(8dM8T@(4>bQ?)-rLl9$^H-})#_ym98| z#`s>)Y0=NR*fO+Oa#Dr2~nb#c?5^-3@B^^3Sh@5tO% zFai2oYS)C~I_W)UR%jee7v7!hffND!>WBYK^B1#@_=OLoH>#H4gA>5ikJkqz7?28f z_)kaHr7b$aC)tnc(q7IsXjfZ!qLx#+$8xO~C1d`Zu>j7|KN(Ae%6;O$84F>8L0Ug1 z9Bt)f_p&1Qh0K7hUf}Di65Zl_SiZ`VScd+dm5m^rL%oXn_!$l4W!(>Z8}V(PN7%Fl zlo6ew94Fz{)V$riU@`5g`Hl2MD1S8ntT`A~Tyigqi3;(yZF+3>;jQaJ%RbGrH@rQr zZ~p%7yyc2qAJ&lRF$R4(k{XXGd*}MT`Y;+w?ckV^4xGw$%prAQ z(s@?r?LmCEQ%CS&rlEZ4mC{JBFWGp%&7xvdwc2>bq)#Qm^Mz*-5Wb{iV%rMJMEYyK z>dn+;Pas^cflBVALmJ>>Xrzd@2V69XwzVd_*#YQC@wYzMd$i87%ICtshhc}%hTf8z zG%8>|Th2C(j_xr2*t)R-D^;s><@}`yb_RTpMdH>I zUUK}q9nh%`tkKV4zX2WqR2HAVs(_|MMLDWK9Np;3c-OHr{CFd>MwN@$Aer!Jy>g^^ z0C9-i@@4&J?P(rCA%L;F+215otGqH%kSm`a-W`;8145WKYvPv9)n^+Q0kPs(ohda_06!lXVdG5P>@4yzF#4X_HV|9g{e}~~u6r+E`SB&Q?WfN& zIKSd0;ollHMWIAv(gu zzRllNy7Hp)Jhwhm1T9Oq=aCuci?z9nH1S^x*mJWLr0Dk{=w?24>b_>NNf~NC5PR)Z zywN}d9y{Zfy}L(onX?szw>**U=Kf!K|ASV)4$$hBf1}m^P0<;*q^FpF+^eLqI%JGo zWwPA1k>BEpE((WeQ8XCICyLliYR#(MRz5}fr6wcgY;t}tw;K;qSz1AWLb-*rz4*1QH*}`S zzT5Zw7k}XcS7t?MbTbIssPEmggXa5gX+=~9rjsfUH{dgg5s;%&tO)x-JS- zUg`u+b~xHrev?wXb=VZ1iI$KV;kv=iG6)#5PkH8>%h^%{HB1g!sDI>RxFJHn&2}b4cv&96HkYQel$y3>Jpb>CF&_A7L&Cg1|do7OrQEuWzL z3i)&Qf0R37EUNteT%ddLM^?1*JU&S} zUuF23$YCU?El$7apnaqp{zzaIs{x`0LWQ0tLgeOQJPQ7I~M z2ySmx;qcxKWsjTig}6px?m|O5b#v%npYU3G@34{Hg$awY<_FW6r%3K1iUyT_f67Ae z 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

cb3xHPp}%==^YCl6y4wh#}-xA^@K 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 z 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 literal 0 HcmV?d00001 diff --git a/src/qt/pivx/res/img/bg-welcome-container@3x.png b/src/qt/pivx/res/img/bg-welcome-container@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..74faed88bd88adea31a7fb54ac20c29f989b0623 GIT binary patch literal 1313130 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�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

m7;uOPHX9V*-EV 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�oI3*{lknGg3JmpybLcn3Vm>g_B(9Pn~Z=>hDowk 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

-*K57n1|yXcQ^ww@sVNMli9d;W2n~X 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

fR<_y610OiMUhR8_N z$D;Lq!LzXqME9HFkIuyBG4@urV%P4l?}I?M(Ay?2bRm37@;ydWMO^dkC8 zL$PdZQT)2>1d5|Z3&?`RtMVsn6-?G&ThQX`AxrF>kzFq}P+c=gbW(k43%gEBb#skE zRycb-<;(Zo98WTrl)F}PSFiW?=}J71RwQk}CphM+%97J^_<0%r>gV@o^<$s;lK#gU zG};}~z3~48F?|1DAciCEubmtJfE&C2gJNhiQYssN^N1Sy`UhDo%DDEVL&*<^1B?ur+9}+9kjtqMR{>OX! z{_ec+hT)1z9G;BRDek7Ts7zq@9#j&1*H#_p)i{1*9Pz^LhLZO#(pNSZst5D8Uj*wX zA6U!+rQfeWK2)PDdui+@T|>!lk4QpPy$$x|^Yf_HGYg0mm&_(LG+y zAMjPxdtJ(fM$15V%1=e~2wDSg2^l=?T4%Ok~`WtTF)0$ zSh8-A`|on9plz~Z{#so9ZPMOa~Mfme&zF6-zzeje(0Wy&!K<*nC+sx`m5M1 zjxYQHC{FNi`O~2CA6ZY8&#f;EAAP0b6B6jpV&=IlgLo0dyndHV1@8`Ne|M)|CF6oD zu3&`N_vMMG>M<-Rby;A^QZsQJwv@tyDXNWTFpU!ACQ(S3pF;Z$AS(6MF1wUwIB1aCwYU>Y}z$474~7diAS)#A@_Rv0;v zcv5Eo;J7`*z4mC*8fbSPQXUzvwMHJySwq^#0;K)^|3cb7ZndDFwy(lYz^jq^J>-6T z8za3`@Z)G{jvuEfy5Wti^pS_4Ir4*#vEOpHlONB3V9K?#wzI^(NzW zS>2@S;#k!^tSQnT@%Tvc(cz!$4`mlB?%LC|`pTk^h4UX@7%lz<3(sZM;^c&IV*sm_ z&6rv?0x#ARyGbV?ycLryhz81*XBv$;4d z(&>6JK-H?fWHAbtwG={kOz{UPVP{{2C+@LDN%V2?qI;3g%o5iecAE3ek4%?!MRigj zo*$N|2J~JG-A!_)XhFmKB;R2Nw!U6gd}q5W>Q@}YfSEi+FmTdo+WCw%h?e zJFOhtHEvUdsfG1=(^M(e&D#=`3l-a1iI=C6GmExcOMksvv5egSZ z%=S_=6yztqaPxcg#`T8vVltwBUMXO3G!ytM;J?||RG7=LH;`Pf$&W(iP|IUY;@U=Zn>G)}RP%eEa{;jF3HFWLPgsxT*nZM6by?8t% z-8-2t?C}dFOL~LDs<#yEei0JM6hxQIWt9)c@H4RU`(^ozh5)yQR)-6}TWF5WEvsEb z5y9phIxj`62|9gq#7gzZ+`Gs{{~qlpbyz#eS(SJX_Oyas!OV4iTg0l)ES|$3u@%U* zX)2!>w4aObBQK3@E~J*91lX-DU)k>gpEc>gP ziX}vLdib~Jr+h*7LrB76c2URSA_aF0n&X@RqDb(WM6XciKkY<)pq)te^K6_P#Xg-- zJmS!c{attJ*6`sw0wV&R(~7gFHA|yZ%5$)mNuAxyM3QeuqN&*=<8^SYU;pqy9OHF8 z=!amcgMJ8ll-3NW3ZFk}WLz_|(sA+a&DmW5t9CpF7G?QuRLA(;VNeipLKX`OBC4MO zNlgP(u?B4zZ=H|XOzJ+BHvuJO8=F0`4s~wiVV0)O{;Yedy~9qrZBKTx{*RikroB^NA2LQ5&+K90=QG(4xw`E8ue2bdD{TlTw}__))BY;5duLVejq8oc8i2-4~)=T53JA$?({wv?U`|)a09*Mz48P!m@TkU_5UB5oj<*4r_>d|k< zc*~p#uH^0*4&G4F;)=#z;-Jv#LSv=|)+v|Dn`3FOSIduUs`f|Zc@Jn^7tl-|l`hDb z*oj~H>1H}yvu-nKzun#zBz>cDXiA3CoFs3y+%}0=Tp2Y!Y7-aY6(P+A0wi)7aPc2~ zgTIBngkP65+aSlgxY_Kb$16wGys(f4-7(3j-=SF!5gv#m$*vVmI&Q0IkGH2chUBP@ z;zZQD@v7;5P6BT<7n0AsK6?4>0b&xBF&&3Buon(PR<%o21mt&X4jIMUx?$=)Uc4{j zi-FBpBl1x1fnSTPom?B8)3B;oswDCOAa$-*-a*~)^X$8%K6XW90Q*`FX`1-UtKYF( zCDW_s;c%^g-lyym-sR)442E2!112K11v-U$jkG})+-{%3%9oklJTs?>rE^DCUL!4q zsZx~UBA%!+Nq-6MJf*kfxdV|U?-ROK;aUri!|uY&t!8Ze>D@%!cd&M5FlajouS>(l zc-&|i1ZKS~VAj*WvS2rFrs%^E(CBF|!g>fEB4LJM{PdDSqu7D!prcQ&DctFyeIw5n zw&o0X55L8c*&E4^p{we?n^AIovFwWCD5C3K%*e+t^*QP^f#GWOfx~g(Eb@_na4;A9hnO|PAmB%^1I!39S zKaQf|ua8o4l)xIuvM$}u)1%g2>!`k;`DoDi%ua1J*l8liEwd8JrG*PYK1a2%vWwl5 zm3|2sbpPyY9k>u|{qr3rnL35O^(hL#Q)R@z>=nAv1}S4OG!7al6>ZlRB2(T)`|CYk zW$*GHtn?4GjnUI^dH-{_-jC=bl-!eE58JUT(r1D*I6L<35b(i*zj!x-2lr!H0)(md zaJ*tASqc+3HWr+5)N#V0f=ju=GNp>kUiE3O&~R1~7I^E8%|p;a`$cOZ)lhxTtj1+u z?{cb^{bhu}mk+BlY+CF%EgldY$PJr0ubCf4u^o^fYXcLE(|WNg7qBcYv~Pb|Y`SBx zd1;HU?yrvA`ekqFXD6`Ij|b4k-nFAnKUT(LMu!a${NNIiP+0oT4d7F+l7a?nYi{+n zE$@G?k4LTuja}~lP;S;iF_En;Q(OA@GY`4CdB>i|5z?}3u90O2ikbd!B|ONYf_YPU zSL%-UuQDU_c=>tmrmbXgAl3aJ})}$07L)Qj#fqKl4*yidb6& zM=*8ErDqpETvM#Afc9V>26OE4pt$u*B~_5Oc#y z6Ul(Ul1Hl3-j!p#4A>_M{bHM|!|!I!q-_|ZkCcgV$0ivDRhs?5ghpTsCl}r3Fp6d( z{TxX$o2gai1d{ur>NVNk_dYkZcM2SJi;jK?sWPvI9p)O$P%6{#-vu!K_X%RFTjBB| zObtJyXVFD!A_dCdHp(gQ%@Ss{Gjr}t8HAwFnQ`GQDJPdQky6)b-Hbd}XI9>9btGEZ z8`%{;!kwVh0Tb&M$#E(1nvY7Eas8%``%Tl(8BJ86_PKSUtmDqXo$}EQCqomCxH{pH zKd0ozJvepVTW|<+cc4?S$$>4HFIlm`i{}OsvnY_5EkBHi91y6p<&1ID%Bu8^C}J}J z^}f?j9Zwp6#7dk-Nq7r8{6>*q6CX}0vV3(C_xvddKP+gsi)DTmwF#PbcC#qf`8dqU z&Wmv+;;nRc#p5_)?u)HGFLFw1K{eX!#PKa9i?0?da`kjv50i|%%rK|W*J&-+F#|BY zx0FZ)*lwv&Z~Naz!s!RB%@-QV?0|y-cpkV}ZjU;um|olT-beNER-fsGV*`#jPE2dz z7k51=&UC3b$(9A+;Sg7qL}?78rv(0P_2Fy`7?u_<@<%K+I!WWnGziT zd%h{k&F&w*(nq=~Uu-;2oU`1{VD9v#7axuua$ z2OcL_9sdZ)UV$G&nOu$;-TLYfh?R%P-bpZ&4JU1XLu?!8t*Tbsi1U?++h0$7cD4+3 zN1P3HBj|(~^i)wEI%g02fNXideg7@BbCyRo6%aLtbZ?}FF^oRBw_}TF#YhQrQ=^G; z+dg9-dqN6y;?!^HqnDra{osCgF+91&XYvj@hGj^@L)YF87Ql?V4}5Hoi&{2Dxb}`V zo7T`hZIWLdoyrFdEM6n~80I;$K1T9~@p?raYft@tb{V@^llP4NeunO zZ&t2M<`lMUKI(0k5F`Fx@>R@$@9igz5dTHA4ygX}Gp>4w1p?o`8`7J$F87|hT_nt9 z0<7xPRZMtF&YW4K(&RRZ(UznK_CbRtGnMt+_@|6*z3!_)p4-C3V0iM`n4|a7W2Xelxi6)0nL>B?#T9+w$|*h843Qez>IB8ts_* za4&CsKx7Fez3k@d9spKNX-GHvK|Dd8JdiB(%B<{O%>|!~y~t@2HNFkYm{m&71YJhc zHAaK_mJ8kc|hNzJNonWy)dnA#xb^|Zvuay?s62bqw!+qb}X@I zJCBk$tf8M~>+gy(-Z^*#3l|?ZALEToMLs`YLza5f4|`L(vWTBSE^iP#q|f+D!zL3* zb*MqD`Wp7DENSzRH|blxuc>?XckGJB50ynR^Db!5I@w$axf0PmKVP{;M9)>J7uG^U z=vfX)IL$2)@9Bp9qqRgh=&xY)h|?dFcn*M0a(8*{K*;#0T$M9D(yBB5dd(jm@{fSR zBmhIEAfGTxAibgqA{Po7d()031AXuNtG%b&xJm~NZ)z+S$j%=;2k#yGMEG%%e0dTy z8U>EYev5eHZjgHL324a7wU>9(N%2xU`y)Os#dA!^53j5@CFV9^Zh9eo?310mU9wIT z%3)eU79XvpIvbv~GJ|I`Y2yhaSS1$clN2*_R^#CFWOXU$ggL|1?Zdb1NLaS~)LxRl z>!S*q67h3m`17kRl7vD!DFwB!8Mh37e_I$ggigvEcgk7;q*Z2+f+NDEMY`|e_c|B< z62Ez(cHz!#?z;qjS)%3@go&1=V{a0L#`_oDNv#cyZr>7?}GjoLbDK%1k8^I?t|SM zeu5Hlfs$T#^dvK528Sb@=`{e&Mq0(a9pdT^W&D@P9}jN2wktvFvCidtw*`D(n!C8} z{?GGw^awiz`r@*MP1S)*9MZ&!S~Ml6jp@C*>=yKxLsD?`cgkwifL*Jk_(k;AJi8J<#J15e!Te#KdAK>>)jtg3b$~0`>Kv|KY zLS+no71+Psj4%jpqM3`}WCT=y-zAfEjrA6e%88zlOT9}{{e^w(>_8l8#F~zzA(|WL4v949xZvBma%SD2nk5%&eA!gS zl;ZosQj*W#8g<@caQ@gQS!eiZ)>vFn%graX7s?WhNg}_1V|?r#<{u3mJUdAK@qq8| zbk~)`5s~*|R<@k`5syu=sDZ3xD(k^bF*?0sot5_`x>Se7CE27|ZKud(G{=)>S+Z;{ zWTcuZ&6GVQZoTQW-IcZ)AyGTwEBiefRV^XL=`A$&530-Jccm^3maB86*S)w9ZYNLT z>aV3WJA|JN%Z%O6p?76(9PtpfG2AN61+_*)!4?HOo85M?C%+0G5r~>!2kUpWR7#>| z`zOF^C|Rh*tr}(QJNQVh_91JzfYBIB>{Dx;>M-6~*ke5>J?OKAokaz*>s1}FHI zGCs6yij`&e^H2!6(C~27$v2Bhztgx)P#EtS-w44fa3k-v@A{PeVrx5B`aD~9PDJzt z6eG#Fv2qtMRkx@7bFls(Sm}<6>Qv0idajnW&#jwY^q;y(4sYpRw(`2xR|a(4EP63O z=SuKCqv5%O`#a5twj12imD_t@`a4+d4xOA`8b_;P@i`(_7L=OV^={)`b~M`w9F*>tw=Z z*%D%083WnGgjBS=Ai`X??5*5MNmRwNTgJ;d{r51+1@}%5YFuSyr^LOPeZvA>Du!K% zsB%)qVZjCou;L||@hJE9NYl5XfBL*D=5mX7x~DbmS#-ij1kWRHAaQ7eZT2MUz;McR z3leR1h3z5-^T~L>V8ruk92GhzfP@2?1O5WF}B(uCMqMZbe#+vVT7I z*tkh{n#J>CeMy(1ij-jH$N}TWa(pC!NuzEHdkD@W6_KVo4B#d<{HFs@whK7Mw5Meml0%bmIgFo$i||h zPYqMcjg>8C!_zmM8Dp{0Pb&KK4vEif3v*q9pGDczVj4Wlj!I2<V9k zvYYp-zWz2`NK$ohtnhD;Kqtb6V#wG*a~;VtvZGd1uegU}Y>t#psMbGWp)j+-*5P6!Poz?p7Rl+!ZT4K=hvdRcj!j1_plysa(YfH@7j5`%#yfhE0`mB1EOb$q3VA=#veJ`zXm-=2nVufi zYJ7hYF4ytVm{GXt?*wC0s!l9%TC(` zI?eVC4lzx(;RVD*-kg2V_P-qK7E4!LK60wOayD(ms>UU_1zFP4 zt~|#_takVjfr}iWJJtg#_wv@kD_IAaWgSMBp zT-E*6K3~uBPLO`QYM?0YGmV}oTYQ4x85&m=U^czRZTp#b2H#MBFM`sdT(@wNvz`cf zt|S)WWZM__7|;ALq!DlJhPjt?HK!idR~#c3hyL^;&cC5RHe*zC&9sNqWlPg{Vodhs zK2$V#{vVN!2}C-~nn(w1n8UTfd3DdZD>KOom{Pcp^H^ksFv38ViK6d}ttc%c9q!nQC1e#|Kg z+$vC82;G{2-(!2%9yGQLNoP}3t$f>ba*s-3GAoy(Qc5O$ytDE{A1z*l5N?atv~0fm zE;^vVO&Z4jJeq%<0P8^#FB&xIMge8+4AD589owd$T6`4vl^oFdTWK+FP0XNMV{DmT!E=E@2QZz!Kj5S|VniIaxf36z9S1{u^Tni-R^ z6;4)tlQnOV`cIb|#AX)jdL1!*WNPsE<&%%)(}EJ?m7Y1SYGpI0h9I4}Hsj3IL;zIv zZ~3@TK7Fsk;+X^}?O8+NJks=^Gu$ z3wsGO7~ZL5o8o{YY1=*I{IfShLJ1B#dd)+225qQp!7v6&;AN{nz0Ej^jmQQ4c1(2F zSQgoLZF}qB4#kN%%ktZdni*9uk_0)=KmUW`%xX@zk?ZvO$M1`Ke|f+3d{xHi?$x2y z*n3cY0(su}0n2MZK*Bwvb`*Zm@B#F^xo|^dD&?U4={&(kiNL&%JKYak{2EYP zaCs56HWS4=Gd!jlB2GhP(A*Y*-M0{69v%mc-Axw*=&clj$p=;0kAZvaBhb2bGWpK2 zzo7@tf`F{E^+Sz!N(P=$(4asv8o!kkUex0JE(X3r*%-E0d|T~1lS?w3rCf8xw9naO zwW+Xx>Ed+}r>}yZmWSc41?IQ;6!Fpi6ZXH-bN~)w(@w|HGpJi!A+A8Tb8_^#Z{wSb zivl7&`9R{B;37k`X)ac9`?oTRB;+xVJLcZGf|-wg6~_*IJHXW-ozXx212z%@jNsq* z$M3LZ9k7sa%Xah1WZid3Lb57h^VxH8*XnwLJC0H!hcpR=Q)M{bOB=)f}n{*Xe@#e}-U%2)_TW znf!fN?%_yZqC~lOk2M$Thc7lo_#?L%8(eW4v-`rl?N`~-v!va_R+-yd|CNnD9Npap zGY>ZBqJt;W*o^WVnoVi4$~Nx)5BTSNigzf{;2kb6yPSPE2&FlQn73%DUVq@W5q@|# z^g?HOTKC@P<3EwWf0yL?81>6`)8~*bc77L@9imjhe(j~Ft;(&PFFAR$ zVH_OMsB2dcLN}Q21Sh!uL+Cgmcnc+6yLf?--B1GS0>8G%A_3^j*aP?W9Pm6AWIl0p zO_nRe0C_Hn7nV4ZXY>V0_Mn<2}Pyez*?XW8uH(raGji4x7-Uv$D;BgQ3tzMo@Yje%STrI?`& z+J3ms>?7-;UiD_$ehJu~$HZ6$+1xH&Um9mzA|_()Hhz)#y$oq=a2<&2>2vuT?BrrI zh})!PO+&YjV+=u7#Wj6YB#@1INL&y_Kcfg$MTgccWzAeV)%6UScF~~F!6J+2FmYru z$A774Nh7dg*NsmzSC3*Q9;8Jd+}5q{fE76M?aNuejUR6|=A>GDgRF2iPLAD9z z(&;arC~h}-U!;EvbN*tNX{+9RZmf&a{CF`Ip1g`I0vnwyQ}){zz3X}R>9#g!}#xX=LNPWDC;F0VXrMFz_zX@HD%3-t1E?rL0 zOqa8c^17vSs%Lc!i{pJWS7dEM{jAds&b!ZPnJZ(|KSl$Lm4Zm^cJjsF`OZg98Sc8b zp6?YeJH`3z$UWK%JHgkxi76*N*7WXCMqVLWbZ!>fA;S9{1y`F5&NJA?qZ}?8s#E(a zt?-zR|85_-I^F+Lclfv)$uu8N;ZTz(xjpvA9|zjUOYDAJ1qN4cO8J&oozP|~>XyAJ zR!am&aW~aHqF()ba@ie|{K;*#ts)%RPqF3NY?65h1Uu$?bD6>H#n%k8vbX5&3fFe> z7uSh<*CtX!*U#P6ctc#+92k9_Wjpmp_Eul}CJL#^>NCijGtn1Z`N7`UB-?XaVkCZ@ zX{1krl4FW~)I)=Fw867U(ySvZB_Lf({w0g3_ZskYwWaYtn5g%UaEt=)C3}nqxxW*>4Q%?;2?J%CTbeG~Bhz z*W(x8t#BQ76g!+8WOG;yOlZMk+I3S~8} zXa3XOG_LseZZH3{=(oNo#PE>RqJ}lVw6|OdG)2h^qNdWfc5?9M;H`@Lt@`J!0&K3P z_Gy$UDKi1=DnZT0pi3-7e&SGUThUgCVww4e;pzGAG*SzTP?)y2OJlgdcUX32`($cs zkK3yqUmF7XXI4!QsU>bJX62{R{yBGryQv$_4sw?l0(oBOJ?8}8K1qI56afmyf%5Iu zT@{W!9pi;PmS0%J4VZD{26AHgZBeH`!58Skf(zXL@c&)YXNtG-pR7aK<%r|LEr4;bt{m!W0! zo4}~=xP^43p7ydE&>KT|T$gwyyZi0X60Y~l4nRg5pB(~CmCW4m;?hn;1!xgtc_o&# z2v3CD^UIH*h1}^yUfqx3yD16L1B@HU%wQN=N2>i5v??c63(iR_Sy%x*Wu z4WY!7|MNE8Y?lG510H8h9>fWT zY`1v*e8tyXhyej5*AzCLKY5t)^2BbHVGctXL+)E;2#vrI=745bdUJ;T$ipu}>BqSM zBpMW`?cZ3{6zEQ&ttK!ov}2@HL$Lwcuoo%bdj3?#9=>=WtapTU|4x!1=ti~~_cgkW z+d#OfduEp8U}>;KEpDk1%zKGq|P72)g|uUp8=u?i(eK&kH%dkg4@| zY~1(ep55LI6_MmqHP#%p2oFEKOlemuPGXDCv+HL5SrzDNINt#I+*87jELd_8N0Dsj7=}Hkav@oZBuqW zB*C@m*b0COHi6^RUVLAH`J?WlAGNW0bv5oKp0pUHKYD=#(B3A^0@uSbwDzZ|#E70B zfWQb#y(lOW+gC9cPLEi%1;s|a`+u3F6jS~RZ|v)a?;H5`1L)>6$kI)sSbEXM$azq* z*A{GFFdzl}eBOVuB)bY1ou=-<+?ZTG?q@JHI2L{Oah>LMA$UX@_XD?Z_Q4_yH0^C^ zfBs`G&UM%$cXi5(n2zZhdy5Px1ty^ zW`+n|)ONu^Cug1^_VqZ#NPWk;90r#mrG*KHT~8_mMFxgk=`yq{;$P9=sVR+Ac#qHx z$53!o?jo~yHOj560oJ$j~EOfc|PbU7Oz-g)Ft4vAgWY+UvVl0B= zfN5jqSWYn-e(cMZD4VK<@2$)@IpO{2cDF9i-+bwyfA{1e*_6PWm3aiR3LavT=t=XJq(l};p0JFHVh#iC-j!>aub zP1~+tm6T{kM(>e)50a7VaR7|7eG3t|=8e7aG{x8@bU0c+h3Gvgwp(TP^_7l-Hs@@l z{pG?q?>cW;2svE1YSA;5yTq|4ik(0$PQ~Fc$uoJ)mdU&|htDOw^FG_IUC7=JPOk>f ze;c_0J#KFPt4qa<-wlE6zHZNJXN&$n!p_7W>h|y3S9_!s3fU@&R+X}wNt8;Nv{AN% zO15Mf!z^t=_Ecn<2^A7jBI}f0ma&t;#9%NOV=!j*oHOeBUDxlvU-$DDR4<**@A>{5 z@8d&$=3Na9a#nh6{8Bk0nO_RB1F9f9ka#FA`E&s4Okm%*S2i1RX8#V_+OgZBxk)1) zm0=O6vgEbZ$nKotIf;i=T$)jbmc`-PO7>>R^V2CnU$+mkIH=bGLlKM z>dg@JW&6F^eE~zKb?@ILwNNy(YGJcj!?Cg5F+cNHHE#!K&xiV&%eY^#0S|6O0S7$; zDL@QJQ@8R8fYUoq{Y~g`JIs@3D}2G$BZSV0&(tl{c(Nj}tLCm(ah1QlF;<<6XT&)6 zn68lxN>t}0Pkib-i2d4?Vx~*7S)+w9eyCAqe-p0sg*Y#{d7P#4Nl+oN#~zfOZ&EgT zF&UtsgZ|`(eF~i3{oq+NwWyF3G+FEC;6{{Z)o>3Po5$eZ&pCCt_$X2FLsFHoDTa^n&rQ^#=m^nStM_3EWmIZ6@pRKq6dX%GEi-lvD)VC`-SunGy=avg1Z zMfHkXANb8(fIGPmo$aSSX07lTdsO}RaHw&47q6fNW?t)yGLCWdqU@b$cvSf~N9I9w zNH}UQ_srC&$6yieQko$&0_;mh)JAdEkF|{T^k3`BS6x?Nc{8boy4S~|*9^0EgtehP z&=HUe!RYr{VGApiaL@rpBHp)4D@(T$EV2+4?=(sP*v}>Jz`$1G&g>FX4M@=-2kB;4 zqkYwS_lHqfWn5a2{Kf?<4B~?zV;BJIveT-qXmthf_eh%MyB^MM+mmz7y1H{BkRL_y zX(%2`$NPb9Gka5?7=8U19d_^E7CwbhhS!s}9!%uGJm3IuUGT8Vy654mLtxCOi({ITTrcYmHRc znmQFyV=u;5w_Jb8j>&gVj?f)l-5>}WJ}{n>EMCw|)Sh}D3H;3LI*OBb^nFp*a`i;J z9&m7z1*%mEu#HLNl0?9k*L??g_PlVWvacSpsRD()@*qt#ar9MY`A80~W^h6O-uA9ZqYKG3 zQ$gA4r{Rmc9d*>QbyKYVIV`e0yH7AIS{~1+dX2e$p{heOy?bXXxs@O_bMNlYe20@Y zkj3*t=eOXlqDO}so~h=F`3Ugu%L6Q3c3TTJed=8CNB2!R-@2K;q}?ugOmacM6cfTj z#&8*x%^{;F(Q6LH1c^S;C8U6ZRkAJnL^_+qlbHM7z%D7nl}u@>i`pBcE_Qb60g$2F zj)!@mvVY&DOJ6Dr?~%B}fpbOqIE z&mPbQ^79GKR)?o70~+DmPSGFnegOtNmlgX#a}C$-2{7nA-NEND$WfL{zc% z_w}*g?gii}K!Fgv0IOo0SxA`IzQA-ZoMcgj31Z$|@}7G?ajS{KR)H6CDxF-0hX?x& zUFGiVr79h6nI{*ENnk2u@?x*!EOGL@PImyFTDN;j-z?dQmKgDAq-D^V&aQof23wpW zj!YP_mP=jAolJO%yTbN~3V~;t;I+@Gt- z8>KEc-IWQjGi)5E&PS|21)>CUyYt3>aytU{GuX6X83&E*K1NNn_~Ef;d_lW8aN~=f zv}mWNsJ+4O?;ynwKXqn36urRNbWbCR;JXeIM4*&Im@^7{5GCWFdrZ{0>e(G^&V*;dBvR`YA=163eXs5(T{4B^?nWujUJ_Jv>e{CW9Kw+_1kS5VNE%MT8sKT z3wHW2_U!sSf28jlL)Q#NM5t@XbI)ePG z4egd^djMibJovsk^LAe>aK5oQw9VsNq^oa*1sE1dC=ql+-YKc)?iWPd2bW)=?Ve~E zB{c1SrEDf$gE}%^&{NU^&(MK6i;uTDXP)i!K!`ufI4P^jZoGJfshvjFs@C(*TKB^& z^z26dB`a01ePWQie}erM#N9R%gU*sZ>MU3K1YdBLwnPywCn93+KxFM`UYfjf^JVMw z*B+iI0~nCcY-{Vl1w3i{o;q4}Z}Aa+cFT!m{Nr|u={BP)5PG)><5H&&98>kt%&{|W z1;go71C{*G=uRLhUeHztpL&-nDKyjIyH$0l$`}&rXxm8L4hG1(tytFLEvZ+d4Q}mI z*gJIA-m<{!D;qM&;jErEwIOfoEHKwMF?=37t}!Lq<>d>p_<~sb>c&Hg&!KlO4sN~f z+F!ib$zw2*{QPEST!W@A;VA}Ria~IPSPJg=KmIGY6NYsv$+wpEOrp>gij!{lAXALI z_wE|>a8HL((UaWbeBSf20{TuUZuI!qFF{Dgl=92LI+N!V>SBsmX6>g{GuhE=;X7{Z zo{}H8oVERE5MlY+rztd26sp%eEHbkx_6@Z~H$+0ZY4PC?aWd(Ay|O5i(-|?WBAgB> zNrsPE5#Qebu!3i9k7y-LIj zVpr&R{q0o1|75N_`@loZFjd&2)y~N`vXA&>tQ+@(BUZC;pF`7=Uqi{g8xLvmn-afy zk6G^z0H9}*;9Cz&UBR~=*%?ol;+=lb{%mp>prV`^6yXG|45-+uc>P4}ffJiY4v!g~+!n|a9 zeV_rcdbyPGgIxl>&>Nr^((NRr@Gg&4=uN#?VacloTx%&v)?fTzF$W%Ve-VK9s^Va@kQ9tAKHMF4m}1uye0jrBR;bs zlAgK{cwWU0jj$wlD3jv6m7>&G99LsdCfHb>Tm3ODLA4{*rK&{1FLG)2ZH~N#%8R?d1Eo5?FI@^f_O{2-&;s z=>>?xTYAV}M^a}uM6?$s6COso*fuft8_@l~Ce2{K630f?IzN97R|hqHHUKbN9*F!XGM5pCMM@NPYSc*CUU1O_BM7%vjGayheTF2jAbvy;g7MXZr0M} zK-QH6P26~IN<_aJWORV=sl6la0avK6f1e$NJ%}ZfIUBF|b65755NJ;N=54o($}%{$ zbD3RQKV|`}dMf_LjZLsSwZLw{#lk)xX=%A= zB->b?-EJ=Vo`s6lzDYcgYj-vZ8>i6o1HCss?I$Nf|EgAyZX=1lWKidp&mD(gvixYrR?Z>+mx`_hd_T z6Cuiu{gw1Pr#o#_lHBm=_Xeca3Y#_RXweh>D6j#kXFg^;^{Yh!X6ARyjYmqRh0a;v z^~%`JuBCz@()7A6dhE~A+ezIKAn1PA?88?vw)v8MndHHX{UAD6wyJF9`H)9o-YSgh z!iyjCHJ73~^_!2}_^aE{Yfyp4A1pZk!sjwdnv?%IO4{%x*`cw%nT;=tMY$A^a{edP z{R&Xsdn=rkFJg&prhG$ z0e{0+&J{wpPYO6RT)2EkBRmPbhxVe!+3^zwepl7=5I+IQ&HqDkGXso=d-0@6!6%%z z`KbDKi2~c2Xfb`(KH`XAH97yOA!&WL#%R6va*brL04ayoeF~+=4l9o>(HEdT`n0W> z(F0@RwS*>;k>6l(WLX~KQ~I$8N?_wBOONAUI&;p&7M4LA`$}t$ia*%e&Fhz68 zJRY-caZq*OD)iMmu%|7_!~4m^{v0{{3A}R-H!S?=DiS-aOr=##wtqyh@=$yDZX#pp&$0 zmX)N{r6VvmM7h?ejD-a#{x8U!?OC;V3eK_Rxf}e;;^c$sHd_$;X0^IU6t*j@->$wY zmMU}8dx9Ze^@|PlEa~q&Ep^}Qx%(cqRjK%=x+1_1`F z6H}uq-^N~{6_WyHg#qI$^%;rMTOapCzI46D+l7vr-t{1tKWJ|MXtc;91riq*87ai) z1mQNo=LGX1@EB6f<;@xT+?(_6`5>^NMrf0}`U>6$wfa^%W+2-Ef+~ ztyE!RrVKx6|-ZGUkj;V!et$ zd^edk)t=u}4|a&LiDgDS5OObU#+2w&-%LYo|6D*d2(+Ad{-pT0sOL`3)+WyFPIw}w z)C&Tm+1!apt$fOSdd6aS{O8NC^)DGtSi}XJLF)+On1=vk0PuPG*=DB2LN6{Y1bIy+ zP(Eh`bK%OOBA&JI4fSMIr$G0O%VrWlIl^jgy~6%=Hb?AJH7phPde66CG=&T1vDavI zAiK+6&l@P|9M*sKARpfV1H1QlKLg|B+_=l9vMW~ZIzlf!H}{=;6q)H^6bnnb(xXF? zt5-Jg9#kp49Q9-LZ>GDMGaIe?G;DmqVmZ7Avcc@0BQXlj;Dhyht=~qNZ{qACh|*om z+(x&V564v;`;J3vqQ)l}l85>9pKf}t!xST#zGE~7m2bq8f-5gQiu4U3gKp}+Q@iV} zA&jzNBH>f0`@sp%fUO5JTtDi%GT>)P;`8(huXS=^=Do zNSXBZhm=WU&M2!iLiG-NqC>q-Ykvc8$e*Qnifdem71Z)Bp51qRv!~4SlY zt9#2re5&-}$YFa|BN4eZvX#T@px$rXqDbcQr-G1u;}PU^gCM;rjjk$=Egg(sDF9G~ zw%ZAhnB{0OhV3>XC+fca)}O9kKf*En6Do)NIlGuRG7PNx{nGqT#t>#Q!A)-|Y*2eY zn2`RdjKo&gSw%0_O0SL~C&q2K`-K9)I_V{_PL{cH@Fs9bPLjdD-G&ixCk7W4Jov;z zZTe^af#q^50?ofkKbDFkOf7HSdLpTtMK!Bf(~RCaP~&V@QkIV^x=4h472HxW!A0Wc z{}<#fi+`pwcywtPizH62NXdJu@tB;iB1F6c#vMNOHM`iHzqidSVC&^gf?RyeUg}_* zf(4xO<@DQZGVlG9;VkXB`CkV4hG~02A@&Fldjb{xu}f>Zy23xXv1TeDd)B4~YM@{S z7LCPt&@Qq1A4qd=bwQ&1*P;DSt>%}*`h%c_cI)=8FuTqjRKP}t=$~S8dXCa!aL?f; zLFRD~B@6kqgayd?cfaa}$}3%1oQjC{WqEVHMQIJB~z&ps635OqWo)Y*Ii0@g2!NKB%2@jUw3IBl;@)j{8G3?I=16b2T1C~COQPnG)L>r(F zb*p2(xa&pG9G;l?mHFZcG^9=>i)I)bxKmHD?k1NJ%-fl*y9Ww-NTeR?Ms2~-@-Ujd zvE$I>Z4MX#t=W$eo3H47n(5}wmUCq+F+=z3^A$97=UG8F?((d~;=pQ?H6FAE~c5C8AE6B0a?no{}rZ>=3aVu9Ub+*Vs~W0l-}5p?F8_VvkQ z5}MV5{Yc_{x8)MaY67xO%?jWQ{rE^7Xbq>I#_038%Lw86x|n(v+Qt3sgOc5bHi@El zn1DS=o2Eo!2FPqgG_N#bB*ZG4O+_UkSO6PpnvUI-O$>tI-RizNOdcgATR!zjVb3Wh zSP0qg?=JE>9U)`eECL#}_T!h>Z*R|>ZMI*+XEGMGtNG?6IP@%AOhm0;d@_MfbGsIN zyg`uReRSR1D*B%@_S&J&#Cvnz`OU-n$||R&y!Rc>2UQx`K?+?#k9g!cyhr@tpC4zeE~aW@&NP~uRF&& z!LQeH@BlB~{P!r1Acg9P~0IFN^51A@Oe%u1gyRhLFz`L3D@L^ZJ?mcdM|KmJSs=SXeQi`aK@ z!pd+sly8uJa8o!Z8_aA)@b~FK#e8kfsp7Yb=XeL-&hARuk#qV@+FRk!_8wT2#A<94 zfxemw;6ju-O@L28xxv)x&t)Z|a9{^&Ol^Pr^o?2K*kGJnKqbE*0CqLCR0%K*JQM6h zjQN|g=-5$%N3Cra6+gSJyB;-qAo}U&8V}*<_7CVCdnzfPq#Enh^>t`tS~07l!vb@% z# z#eV*L#H-i7sIF>Loxs0*JuZc-rjdWCOwl*_VHPN+L=ZSQw1fXB9tS7k-z-jT!xPBZ zbxP)=iXN%pMp{0*=ht6~dtR4AsE+~gT}>%-A_^H*Bf{34lsQ{8G=WOPTQt`ku&XL< zMvLD=->_2Lw%XTzC6Ebqr?%jdtPYzb9>_HQr$X9ee-KTs z_?Si%nJh9<%n93rYG?*{2nPU8$)*wq%}-Aveth%-6$|)Yn#({2CLpEzh9hheN-k z|0Q7nco2xhU5UA8Oh(7<ulM!kYDXp3**=HZoSRdnB<8(^C)9=dF45_b7F`!sre!z=Qsd z?ucYnM)P}E6Ri8CT+KK4ux~NUcvLjEwZc;=oSmgf^QR%P{l%BUQuD&}-k3aZWUxt<7G1tw!rjeym9t#tNz(@VMs z*Si#B&eT?S+O8<^w7R+NUb2Sl^+yJiGurF%m6h-Ky6E>gOGa=|Ho6?3)F^rTQ@_B; z%B#AX2%M~P+R?ztY5+Tavez?@e+vbiteOf6y9~@;x0x{s4-T)Q^{ZBSj845X8FQ+G zrd#A^gC1-pqdGcT`H|?!6kWd)K~@}DF`OjvabhS(cg$mBDD8A^cAtlxHP}b-rA~tz z#m5>sB}~^8u&mE5b{?W@g>AUVl9dw}8E_m*B97}Gr^GT3Jmc2cNI8OWH#+&9Vs@6< zs{brZd;YH-IKxHctF%Xgg?%i@U!U3@*c}A>W8siPaztBh#21~t;|7ne1^R4$j%~&{ z02>!qf$)S$!2}``e{DOOS{Fm<$FGl4(&9291q8M^sb5i4=$+}UEnBk?UEk=9}tJ{>O4kQ9`e!C2Nj))FQx@$o!k z^^`WLN1%SH&WCRp6S+uujfgL0T4JcXSZ{-pHCn<2UWPL>aVI39r@RfVUo;!={o6TL z7Ylr)DvM4gS`~9=jHJH^Z={9cLE|C;KQ_!RyAGS9h$a z&(*#j!eoxT!Civ{P?^qTtl>cWyX-fV+Ug_fy|+@SZRindaAZ`};1i76bW6UZ#a}y* zfGN|db&vVky1BwO>~)+Hb!5;hJ;^&Z8K3roMCcTx5lhJ3I$P{qt0qVzK%?(J7Zhep zgsQ^WB+qO~C*5KA)6C)4&XMDvFdotWHCxinT6f0GxVtU=UzP^dafP&^EC#Qg8~~~m z(q&hxUcoa)V(4@2>Y|${`=bP&2B}_w>@Kpa_4F*$Tl?q~Ja|@YNRN?n#z2osUZ2H7JS@2uSr{D9GE_OmA9rMC^0m^il z6@O)QMawpU_pWrt>*#eKV@N~+M#jx@f@dAz$6x;%tSZTx|LvFUtA#z0;USwZ)dYTaQ2P zDp?_OWE(d;f(CdZYvz`D>ePx8f-Qb!AQ^WWL|nB}9RyAD-AMuz{5{8E=~FMEk{@@S zZ}u8-t&~=4F%@g8H@hP~nzXFJvE`X*4r#f}&Jw_`mT=wp;vp$su-`3?rjRq1z!Ah| zn5!|Sq;KYTR+l}6Z(ke|%xL$^^zL#!ybZp_dakWomm#q02gqVx4YPT-QQd-%yT9)! zmIy{ZryyjqQQc{CC36dUYwXfwsSDXQBiAR%=G=!kk&`sCgz*HI!BxEev40yYyU<`$e35N_+DD9_oYfE zB7q-)ygZh^i2UBzmJyJxf29Iuz&i(`hiDJlMNVmIs3L7BVS}8miew|F(kUSg?rD=B z9e&iM_5thg&XI73KGjrOuN6wJNNiaF0@1Ix!a0<3j)5&I{_<8e4^J+}#hnI}!%tY6 z@rchpb+II9TdKr0sd@FXij#=>pvWU%Y)bSR14<4-c)Z>HkyK6`DmUvKRykP<8i#GR zX%9g0Wq3kj$aJmEdVw^E%hwu@8AHgb)ASA92R+r%c*2CZycv3Q`*{C!V+7h}t-u-1 z|C8l;_L`*7R3d$Udyn^reD{0+C=srIs!YO#5A(Hp^=g?ujnXM%@D{y zB#hO-^Gju|>rHIFa>IU26^JtpTKXCUaGh$K*|h;|0#hP{LD~H>sa(^a_su*zDyt zq4eXQLBmf(bnyx_I7I#ox_}fC6C5IxaIU1+Y0FSpdw~lI6k}Z|SH4PS;{!W!wKTm$ z3cv0USZ^sg`8X_pt25`hC+%17Rk`7d9PR2dbJ8I@OWdW(X5`Kk1i&7U`QfY7f|sv< zy&)fe-z*O5fym4t7cO2RqPJ!g_;`VeEPC9`ZOPDZZpS#pSTLiV-(1XYMEqgEr-eNV zdKd}kaopoXz!KjIG?6+m@L<|B{MnXss(P!F{HS=}iTfX>JZ)<{8e9a92B*h&)67+Y zGh?vVz`Bt%ux4C7Eu%q+49a~ZAF#nMYa!(DbkT-qRXz_)2G)aYVa9SjZYOFE+(rHV zu(HyN!vQAJfqX2Wz)6s24=Nqx9%Vm;m7u%)oE{xgo>w2*5%D;}hkVJXvtD6EX#a!HZ=b+-pnWe$uQC5ry*jj; zTP8*S;mNr{68af3kE`fYRT(#KoMef-va%Ju4lbiZNW-J!Rp&x3WVCo>dIizSrfd(Z6yQ|A0dj^FQDaEKV%v-nNr+G@qf87&p=_ zJaac#bKY8sVkR>_?w5ssaN{X2#zCK`Wsf8PmoWtd4Q&r^meR@I z>Hs9#-UHab27_N&pD8?pOEx~wsz0Avzc)BO?S?>2wS4Li`b|^Pd z{F3-j%t(Q68aDBd2!239VEk^;h7EQZE))F2?h0Wu`tRi$jINKlZo1X4(y>l1JDKov z-X|=yI`;U6aAC`0thm|A6eftqmv)?Q4g&o@gH4EQfMPnA#g4;$!lto3{NptS)9nwz zR$G_D0LYq$)==CV)AUn~deP&B=H{76&c!|xeRCe?S}{&F1gODpEx&bny0Ff=F=;Xi zE^NtizX1uC4+SMjYxLbI__mW(dbLLK(4L@5^1*vCmBYc_nG5m^XQUw$SZ7kTlam`|Izs%1QiM!q{pY`PNj!&Td zy6~E?Ommv(4!t>wjBZ6R2lkrhjZ&&7e&7&PJXZ2O|Lnr!9n zLc8Z#feynj#jLx63og-`T@=+;A%O*jtiZk7LiF&2xIHSDuZs0PC^cLqUySxa-|5%_it#+!BBbQi`@7gBav=x^*TJ6EL6qGN(^!8Ie@4O(*^T1yW z0Lz(}DwgUbAi5aYCqL|QWg#S&N>zONA?tuO)7 z3RJ2G;)^}+VI8eiTgz?>>~;uZl#wpLG5F+9ZqxOa@=fFQ zJLuYB8v;18$7ME5L+~ur8F~$`buQNLAaur|^JX8iNso=)iosP2)R1si9hJ>ng`ZjH z4`iy(BdcNgLNr`5N3rBZ)KM9IXO#Iy?@NBOdCy2pbOgWr?MLz`Fsg2&p4ZAelSrV zSEbwIQfp13Ic2YBF54S;WHny4ru|Q4!@WLL9>!SUY^WtGtGf|R{H^_ku|%8ihnFP% zLUc54WO9PWxNalZeQri?efjK=?Fnzp75^b6&r#TtnyaB;P_Lx^K}7w5Ty@>&bDIQi z)jnDui#0rkyOqG&uHJ%Ned4_7uGD`a62Ej7!L8-@w`CRYS``q)&pf9!N7^0h<%1R4 zxh$*zDAA7l0v=L~=oO6}dfxBDZ)raNnEPJ1dI{7Cm~E$>o++Ns_K@-K@guR2Be`Re zti!;zTF7xKb%Tz{zfJiW4jXlqRd~CgBdeL6_7o$}+KTUD%+$Xpj8l;~fjs=yLcJ7) zWaa2 zqhDQN9b-g%spmwj?BIRuj$A3Fjx@3dt@XcF-FG)J7db_-#TO=ZtXcmB<}kX~+m2kL zyPJia46;3nO(rE#Io$=CA?X~CMy>bo`df|cA#UZprEH>MO0`nal_(96tiO|q^Kk32 z$nkr<`Hrq1KfFMopgMd9TT^(BK#`*H*r1~`1dP6|yBnDqW3eXvRVCdj`Bw+NGcQEa zg!uRcJQc|AW|-{9&sE4d($-f zY1xtRBsTIb!Vl#%7`G|lWLB8zuTiC%9!|v^jW;qtN&V&YVamW3t8dZTj!xj<{4?`j zC<*#au!eNtyz8T_JMpkQ7aN>CGuX^xGWA@a-||?9V!%A^JPHz6!zUh1Vra*(K9RCl zby$9* z93z(sv1*KJ|hdMzGUw0mta;g1V|CW)*-E!4N!&a&K0t1%wL{#vb(M*EM7 zC9_lmt;J^@$pCVF*><;CVhM3Q!p&=?wL$vz#`hwpwc_UW25{3V64B5KEvbdua*~Fb z%g_EwUfwF23{6_R^KR-2M_AC^YfO}o)O+|hspnzer5+AeW!#X4WwsYU z`ve^pFzvh{6E)b}eKnES_Po>22(4yv?-zpJ#3 z>n&`*){`x3AG_9C^bUgkvvBXND|>QcX*C#ulhNRlK^dvW5kdyGHC4_cC|s^CxlJN&@tzo&y||}PON!ec7%4; zYK@#K4*#ZNLu*@W%f^`tf~QpTgK4d6^PJ$6gW@6_ z{ROaTDQR0@32+ym{YaGbSq^N{39Uj@ya;*{pL75evrQ)=MSje$6%r8oL+G(D;55ks zp@YRMeW$iN|0Q%_@`kj97t&Us{q{2{HXhFd%a&a2YD}e7b#3dRK=x1k*ixn>6xgL;~CN1Se##**sG=7diu6K~c_(ja|T zoIv|o8?(-YabVpYnay)J7VOS1<_3uFF^$R=O}?Z5RPA?PBgrFrC5?{yWJuTC2dsIdF2yi`3_v?&+3k~WulcC@` z9?@i7c_8u0{XnnIN}UzlQ&-~C$Dp>Md>Qu&BbgKT3+Y9R=b=@7_hpqrVpZc+YfmDR zzRv|jSQ~GZ?4CbY57Xf3)(Qd%+WP1uF}?d48{L2a94NWqJQwn{%LOlH9}6ixL#EK< z0RF)HIZu#`S@SzYlYMpjl<><<43q?4cyC4*3YBT{|5vnEVm-H3(TFiL;|a~9+Z{jB z(f@B$eA}MQ%m3pZiV%#QJ~iqc2eG*AYBLwTn|X(PdXU>*?twNk-%K)oF~{q~)a?l-l^Pz!%1?nxV5R{j7K{IOap%_+s2??) zC*1bP8Qz~>Q_g@i2>7x>zdbo-FEzbt`>JtA_%i44W|Gh1l7$t_ozep6I_*G%_orzq z4Eg@|$x|4Et10hlS9Dx{qXRB)i7EdZ(nArSWqb!~(gCFRv9D#fSv7g!wlCZm9kv<3U@X_j&0g+bZb8^Z?>S_ z4g>QowXl$%e!TdG@VJ)XuVC_`_;Rcr9`STU)eeEbQt}j=c%Bfvjx3?w8BSIO3I#eR zGqp=e9fpO|)`9ZgZ;1 zw2V;Z1ypxb#J||Qhe9^*+1&LqwdecY;;cQNP3?+?KL)-b?a~pYZ=kczPnNN!ZJB2s z`^z|_k^~w|C42sh%Ok-xQ-pcqDY6f2%5BGS0 zU~ftyLz@P1W>J1B&8m<)rTOz3OP-bV(Rrqt%m8TRJ7dOS|@1q z->$pAEfDW#~4TIvHX3eL@fs7S2`6zu)uYRvE&1JC~@u*iuiZf?=Fi6EndKYE-ek~ z?oM92FXmc!^y{ns^GaOFg~D4 zVovq46-?T?(+PV@>#6SRl4{d8sgBg$2i;N{@WdQJK05Bg+tq-;p0eX$62*Bgi=t;> zmod#F$)C3)L2K!5355NS9-{0e&*(g$F80o_Tr;)e1e;UA_*(@Vf{1-dk%q-zE&)2TB3$Nzd{u#8Fq{N{TEvJoLv4u^xEjbSMe0^Od zh#7anSV75C{c(CbBzzxiBEV=k?V&#smhf9${3pT-2NB*#(DFP*P35!MUt9Oi#4q`a z|4#Ahd>A^X$6xv4q+P@Ml<8W}A0Eni`r|%y`hVl_;$DA^{`a}TjKhfpc9fj8Lb#e4-wAgRp?9@y1NUYOy)HmDv-MOdKZxaRz0ZNp~ny!Lf zaO~5X>1+N9Bq~M&1ZJRyfMpeAck=;KXUsw8G$8R%9Re7+X&B*YD zhn4Fajh4qVE50(zp;9F^#8E-HwzZ-nuzu#|=7zSb@{~0l<_19<{X0v*VS2-Segdm= zAJ>w<>pRUwcs+fvb#COM!19n*0YoY$mm+);$=UGw z1M6+<(>|O-Wi+51-%3Wh9Z?c&tDxwgRyBKbt1{4Y<;~-LG?%WDqnHz@&ASLWHZ(c{ zXjlY6x>Kx)qkm1`{qODx|K{Od>0afIQm)3VVjL#wEqJvVsdRwl8=xwCLpHZw|yUM z-)a1mdEwbn^RvfT;!ZnvgvlFWw3&~ZRN>p})?)^1AYtx@yLMdmK9f1%nF zaNd4LJW$*eq6ui$74B0Azs{dthvJ(nphOb2mB5U->a0?V>^|AKcMvLW#Rn(sM{!y)Wgcm9!e;dxJ}#*zBSrcJu9l%dw`rS z<~8ZXw5}7-{g4*ke8xGOpngT|*M8LfopY3$Syev{e z;2rVogUsrJq^j?BtDY79e?NdN25$8~s-@BhQ}koU**P}f~VW25hJYf2)_Ja-(ZphWmy zb9|C}agtJIQ9SlJ+e4AHIHECsjhFSv94j6t~8teOoa@WHL8wiqy|^7rA;;dQ^Y4&3ed^<6)x^%Uhh% z`_ITWQI({@6Q*^gCW0?H<31&{PD>|fFuff|DvA9Z`=%}sfYU%Fo#)o@+l_KYeUxy> z`^n}hXvlmEgQEazpZ)pU?GW-dZaDS#T_mBDd4`^N42$)wiK_X6hYbC1__lZW9)Tezlrgh%NJc{Rw{sHiJna=?l_syM=m5=I?$5&5bC>sxHxS z?eKvus>EzOcKR2Hy1(9o489b~S=A`bKiACemZQn|1fGrSCtdGRpLts3J|`*cq_2YX zfOz4rRkBq^tKQrTW&iyYq7Dx-zO3inDS6t7VewqEaiZuy2gh=H=0j{gi!QNrbd;|r zQVQ(Tl33>il=yF-aVaxhFQWDEl%QC_3y3`H^F!w#zrE&qacUa~7xHSw(x4r}aG^F0 z^rg|nb@wg(RG3qP+~hr50HZ0_g9l-rJF^%6s50Zl|Y{rsyXWXi(C+l4E4 z?;jd>!^zKcp1(`Slk{PHxovlKaIy-JQ~{=au8ZK2(ct(_&(V(RC8tfwN|zV?P}cyX>Ov-u!s zF5wSA!FA-T@){N=D=XX3>w;59x(Dg!P3|_1f8-njRWfq2bfMvCXUg_MMEa-r&Act5 zyiS-xQ2+A1Kk~6JYaCdTC6m*>uM#(93K|#X1)OkByKrZp6ab2x2LV>^C8Y8IQ1mpO zJA2Je@@F;%Rq`CR_PS1k@_{X z^DGdviu^;&db<6=a)Fq28WUP;!g+bS)LI`j)*S(p=MR{?thtMIOU8#8_S18Hd;XEz zd16V`Nxmam0y6JUbk}4~b5-AQ=EGc0y7%P+W36Kr!fh1~gxe|#?6Ws(Znl6{@Bjk52uP1eB}V+>}P?fZPq=sY{$pU?MmeXrwtTt8iZLdVg|>oxbs z{eHX67EUXrIM;}bw;1IEB`u2e6sff6^dFHH&WlVQ-YvVN8j{d+gpy&xj7sy0Op8uPR_8 zZ^S#$7rs{ii^+4*6)0 zv^d5vc(#fLX*5(OQl!1x(Q&jI8m-R(4-!z((^_yeO?Xs;O(#iE6dttv!*8Hx#>oD(R8ae?-?=! z&rm!k(NPx-IuHIO_Q?+yv+BXyiSjn{S+KuY8AO{D`4sk`e9tez$Dh5#o?TiSXGLGD zh3<1;{58Me3I^+XPGjb@Lpf8KV6ol}MGq3}i{Ra4)^MRKnr}-Iqhy~k3tnL}8M&2z zXmlw?9)na##tyac4ws+1FFYM7O^0GSsQ`!473$)cphhY3=bDwaN!^V|pC>h`fzZ#T z^3pPD6F4Pd3mQL9FJW2dkYw$v&_nafU~}NF#@+idt)Lv9|3^Ugl1zo|bS1e-QnbNW z(H@mCV0l@b+Mapm8Qt9R|SR8gAp>&yOzWAzG*JKb&Inp^RWEWSz}4BJ^l&F`B;8`zo5_C@nZ|&+3)%f zC!3m^@!nTpIM>*t;Vkn3&{R&fT4$n8l{pNYL=s3Y56lE)Jn8`_!uHf7g=az6dR2y1 z)X~ye#-wfcN%VwTy)ROLN<;;_KnrLWm{RWBpRa0mI2@k3t+r=l$*XH;wYtk5-OzcZ zCSZ3a1|!*sg?O%@`wE_|H;_?@x3Vp@=pwFIwozULt+#g@?Nf3jAoHgRG^$uC*N3E+XHPKCv34|D?i3~VDIDOw=agX}#UG2; zb>)5a@pc$gQo$Ie^)4=z4JnoQWLK+#9~B3lG1BtoZ`r>K(;_#Dp~mz8)=N%3euH2| z4#0YOPnFRYk{>=n1Y}|{fO?F()ps5~k>Ig}odiG#&dj-3r4DQMlsT_BezD{Xm38b-T*2@V|4Vz< zJ8xdu^}vJfZF@qOZ+I*6)B2=XFx(@JTh(OANUV+oUDt)~$0*Qn0Q)rnJx2U4yD~&$ zJWLn?nZGkVqdwa%CJOcEVX2JjeMk8npXAC<^b(5w_-K9}1p<;;1VJ*3KGalWtG@Js z*m`&i^E}#gnJa`M>QP^wF+Pii#!WE$9)gOJrkP+v6{B*d&wPdw=H7U>=Y1-qQnH`~ zGre#Yo{nRJ#9S+)$&vTITWU-?NVw^|=2v`NxZFD(Ow0O?`hjyU2B0=B`6`-*JfqCe zyacO;KJ;F+ly<5l!YQEX(8VJ`2((iPD>HJCk}O|9g7AR)d2J&PXoSScAl_Zc=TZW= zE0M}%SFqMD<@U zQ9g@AKa0ouHZsj?j(cuO3IQsMN#@6qGnG@|v_t_ouPK4?lMUI)AJDmY$jG zpzClm3iIW&EBd{l(nKs*PrM;wEn)|vvA`C5W!rg{8M+o>d)a5$@weOkatYc{7JisjvAK~dg@pA)P^-Hg z%k*?axtBY2$Y+e;_fKpG<@`Qsr5al6dxnjv2Td`Js^)dXyV+R~ell-(3vXR}k;PM=^AaEd@fP2i< zPDE?}y2iN!{O)@~>(Kw89ay}2xQ9$zVyn~_#WKZitk#bQW3aH^ zg)&MzDxTJ9m9YZ2n7Lzf+Mi+oT>1`s6sfwv*Uj$HxL(BV{3KA&K&*^VD<}CeH3scW81~s%c8Ibf1*ZajN$R_H9Td>~y z?QP7qq;pDQi59-y#EZqeemFo$LL-X=WVfO9o=@AtJt_e7xDc-WD{f9Yd?xnii7zME zVy^SZMGjr)7ltmX+VG6^1pDZk3PTgnSPxJZycEZ9*N%b_EweaK^R)MGqC@0W!}y32 z@BRQ1T~cGMhWLn>`z6;t1PvCt;%o`x^p5&W1>;kbm+yNriwPTxrC`JXPz#z+jSN2+ zzcl-s1UP+YUXg7^*u~Y(;yo+To)21e26c&CM8Iqx3=;f~WkUv7uG^ZwEV7TMgjrrcs{Kpnb_?W9L` z_Kh0Irr85F%Af>UBn!95T`|G|$D*e*xpy;q)zB|cgInh`quKe#T)*Z&6zaDJ$0GHl zyb2%i^)~h4gD>yv?J@Xz&hp%A#%FeNth?}Y+Iu?J> znzNvf(6e(lEsWmh9S|`35T<`j$MR!MQ?DV|Fv5Rk9t>+jLGC2C} zKR~R6|1Tic{bM3)B9vA@-S2ge%`1{=E`$>?@)mpV<~4X^{y0zTsIIj=%6dLK*VdQh z$>t;WjZrLxQrIS+6!c%`43l84PEj65;mpN-5*iUEdPa4TUsceO`HXe)7h=!7qG?Bz z&0EKE+blkuvpYiZ2o1$_vMVFCIO;R{5w79Pm1!l5^mj=H;)|{O@~%Ca$kJ;l`75nc z<0?m5lu{2Utbb*mJjiB0W`sZTTEu$@>1?IeU&w8^GDfYm6|?nScl@r}*RB#TLKyP{ zNm;a7+miL(b8N%+H~7eHJcwkt9N*Z-H^2ODGgx}cUhL)xl(ha7C_(DWFp5F&FCVRD zR8d*@=jaZ8 z#4ZKue?!ZPe_vgd2gDAd)}hWG`6%OHt@}l~P6F~M9o`Fhlv02LQH zy4yU)C=VogewUSz*G*Tak!^=JZzjz-wIlQRIi3A%v`80P1{{#&hsyGuT-s!Ly*k#P zy*gXhCK2Ai&)bJ_>jU{hH9Nrja!iqc3`=;4$eJ`DBjBHtF8J;7U!?*^?t``LKCqVc z3*s|bnSZpuAqYwgDM^OF&c`D%(3!Az<9NXhTcvp5$h`m@iJN^i2gluAwD9Ar&9ljG zQ`I|_fI+E_>j-?ZOmW1QQOI(PO7Uul4CI`jPIlo4+ilac z>3z@}>pJ?Z$E{D>CZR*+uTF{{5S<%dh3a*?PG8+GLr+bdx%fb*tYcI$gU;Lh0eMpN zFTB3(Vu$D69i(q1CVQ~m1zU1CLE5mH(~G1Xl#2~my+@dwJX^4=`0nw9b;QLUja{=v zp!fto3m0uJJv9!VrzOS^u$9=NC)Qo~kV=NYc%@jvj;qY~K@GNTh<&tAGq=8fY)9M< zh=!@IyAdVROkj2V=UVnP3PcM(%fdmlusvFxirSUJ1yu$x}n) zbU?mTzf$C3o7|oV#94+X&J}w_n>V118<4r8frc+i@}aE$LGO0MOFKIC^GMb*$|IYX zzgmCfsI}2=eG;n=FwNlUIgmf;G4Ll5z;-sux(zq=^riK7Hu$J3SKBgwM?%ne_2^lWK^nC#>r?zcOMy|>7M;K>pS z@g7R{TTAOa$a=4->Tcdv3U72!h*x{5z(5@!UGU0RebG|Vsd5NrwdD8DV!)J(T)|+c$_>^~ zR*&baXsqyc_Z4NJ`QXy4Y>5t8Lvy1(?@mx_SMEb39lYvvxfYR0?{Jd-4#{Q(?fn5P znyIa@@kG2g_KU}c;K`jvn=dR|Wb|2gCE~&$J?5vP`pU!AZbEV2;Lx$DmFD-FwS#+! zH9rA8YojQeQ#Tj(2ujcmdy{a~WH0cu~sAf?%R9555GqRRD3!v$QodgM>Q{6=$DBf~aBk-9NPbTm0Oj9$k{33t@BgS3##+N|9l31n~t^~ zyqJ|SN&gz}mtKXKP($#ifdi)~1FEyAJURDmsN28=I5)v`Vm&vF{OTeR6>v;jqwEQR zMVplYkwedY*xZng9?Fq!c5xY4>S5=##`Z~`L_t9QY$xkUfk!L-*6uY{a0?u3OuDCs z?qpXqSbJ@U-AAHg!MC8XgeFvjU_vzrRY427EdN^j-yfZjfc$VgnBBZ&Lbsqa-GxKS zC3U-sW>6K^nN#VS8p~1IqqYB#o~Ti7%0QDfF&0knK(>Aor0>imC4(}nmQk<$+F66l zeUz3b*dop)OZXO5xoVd74QkYP_u}Ew50PUs?L$o^Jos_Z;OG4qdIbIY^x-ET6E9#b z-Mxk`?k zS>)SZN5FV^syPsR4y*qTM>QVqQ?9#}ehwMLS^jggXwRcfA6Gr>Nf8Qe#@8t9&RCp4 z#!<2X!V7&D#+~+Eoi5z-j9HSO?gu{q!epPMF6{nfO)T{JkQTt`ldz)>yDNNL5d|oD zIjj?Oo`315H~ws@|63n?4=~PF6Obwz;rvxnBjnNyKpC2ZoTOOcQpn4xN#z{n$5Xo8 zqwzrY*Vw5#n@R=G&J1{VP#}1aoe1V$#AkM;JuT-lo;Ve_3Qbn8jqL+auhs@eR2@j6 zXs|bPQbcQt6sB>0ry@IE2~R#CuSVi9QbzTa%bt#&noqsUriGGN57lj!X!={A_I=N z6>2Z3r)eaUL#9HB#M?);m=_poWWVA`19yr?-B_a^c&27y$l;K8J3X`yOj`SYAP@cO zw9c>1N|O5G+)vn^e=N;0e&{v;FDzOAhA#)6-bOTKUoD6$+o_jW@+dUxe(Lmig1sqf zerrQmCp&0y{Qhqp`d(aSH6e-aL7-?bS4Q0^bIARshlg8N%a`!^co7x>j9fVeg;NfS z5I=0aFSlQ6S@mz*A3vS|J-3{L^hnaUUjiO+xvKyn(4Y8g*#bOjV0(z$nw^gaOXc#1 zO8$8>8G<*{sUqobwqx2?Ri}dTDsNtlf4&f|ny3;Ew^k{Sf^u*n8K*NFyDGJv3}2nn zYz3y6oh^}^Lq`L;Kp!GpT#CuoQ)z<`5Sk&Cmba+glhMyr;CgYOm-lZ51fMo(efD>( zSK&hM1I;}CZ!7D$);i6ZhE34C_MJ`4!E){E_hP&~t%j{qlSuXH_Q*LH_?=Z2jn}Gx z?}vIsg*-Pp6jYq|-`t)_?=3lV={Rd@{U_@15%7>*CA)CG6ZTyi98Xks!XBEE(r@Sn zpU-%e`LLog=JjT4DBlAkCjO`3cIZ>^uE<}5ivGGsbK{tZ+*TAa$63kBx(Csh;shF= zwPm>}!$rbsiz%suSTV^xnx3{R!)bK_ax?-@5E4soPNS%!d63BvQTw%ciq0Xve~F3u z)F8M_hk}j`Zlx9`N(Ps;GJ2zvf>~F(=FX+UdP!&4hCb3Ic-1lY5z8yo&33;$q%I=$ z454UmO8`9Pv$oM0g=Rtv0rX*Y7Uqp!P^4QJ>Z2CO(2|r zLuJUZg95$8p(l|vtq9a~;idk^Q_h<2&ll0PZq5>cZb{q^3!BmBDV;5RtXBITv3%_4 zZD{f3#9MXDASe^u%iTm zKlFM1b4AMa4ac1+i#|cj1k~22BQG-imZ+_=HcQmjbx#ag-QQYdI!3&?ZJwR3C212I z##at$%!B(8fiGDa3i&NrBB5*?PLR-|Z6&!qCe!y>GC%I7>o2Uzy5w5@tjCq}&rhib zyR?+PcMN$+W??H$dG92aMNFzV9%~vp;BpT*DH2*WBRruW1d|@Q2=ea8$io>(E5cKCrI;xpb7dGM? zA9kwW`?R_Bc*gu2mn*0h$`NB?v*UwS$4hPlcna4wl$}^cLA{z42O}k!ZnYsoPtL}` zR|Y2^EL{6}>AmQaC6?D)_G~q#wG{Z!^WBqBBpeHs$3G_hPooMVDj{PdVkUE-1S{#{ z+&AXe77IG!1T!5@H6A39t81^kwvWGvQO6E>EJ|o1#hxEBWVG@W2{nm9CSS)j)%`zY zWHD)XZjq^tl)n;=;@Ld5t#IM0(51 zj3%xW_+JS|N=|n0IFT30w!l2wdqy}|q-?yP8@3HL+*^t}DophMwWt+XMC%XnvX^)c zhJVwcn6nqgj?Okk8r1a6od1i~J&73*(N*TzG||p`*(wu>Hdg#u#RU{%j_{#y0Z1)w z+4_t;l(reHP-gbH0@czfdYc=^T=%67Vhj#9528`J+Ehn!Nh79SClx-P8*&aRYjVqQ zlCdPyfF*0J>p9;%jhKdL6j4Dp@~2z&vpdeBgnD zY~eG~d}6D@_i)6QxiKljNd?z-lZDgs(%gh{umK^DR3-U&yq*|148>#yf{WcB~ zTmT)QFrpX4eEz(c4_9hkx|k6beebqNLEiDbk1QlLq{;t^_*DBfCIns|?BfDY`Z7Rw zSeOl(U%zUK11s7H*~$hJmMczX8;xD$I`~gn@w>b37o9xakp3*xs zw}+tH1BH7uDBN2~Ya8wvV1i|sE=JxzOmcsTC@JvWo2fa zzAxp$qcpLPF`nQco`!f@<^<{gu6KlaS>|Bzo9+i>$y$TfP(XBH5z*sRS+Q*ct$Jpx zq|qB-9^8{zP5nVoYiQnH1{sljUcF;;v#FJ&Cby9Da6sO1;*CT7&;&DwLXr5IG?gWJ zIjeYzo5XIoP}4ip@<1E+Q>H?!OJQhPKM_-EhQzre<#7NudC;-b=Q*h|6=>@!+Fusm zAu-6PX3>$*A;&o6Lz4xCgcX?#hyI`}>eu37eHj|JY}JI}iX%e9=nvS85&T252)$sCzmGeo4d0<^AiA1xN>m--Hr}Q-fEJr!_BX40~Qx z!(6TLU^d&W-L#{uEDC#~rgy|Kapr~8ttT}A;GSn*rS3>J?|5weiy`lQsM$O(7rCy+ z_p4n315DB-hS&$)lbn8X`$zk}&bcL%FYeCl>B@ir56%%79^fJ2k-gH&z1vo0>@12F zohoTv%p(*SzR6t%R_QuQu&ARRRcuflx>8EN72K;_n%796HAhqVQgp9Xilzb<3Y8km=v;n3@@+BSsbMjJ$~|8HT=xvgE$}OtB1ZJzY7Q-hbeJ z1FiprUCwm~-8wIouV>XgwPh#SNOS*LNn7AWC;FFZaYeB!UA)i-sX9(=3R_~I>2M~? z*U}$-pH^I9GfTBXG{6BS2}fU7HUMK)w1~S)=P7{sEclQEh4Ag4ve%Jm1K{_P?q7+^ zUXIGjI`u;R2Gp=~LcZ`=t7^Z>qfQ2Hz=IO;JsqXH^NCnlA;;fVrZhKeW1#WwN52%Gd=quR0mbnYi zIFa16#i_EXKY*=jzk#h~%#07wC(vs@dT@vIMIk@!rfNj4X~YkXwked~y=7GYaGh1P zo`6^L-a*SgWZSW1;1Q_y!k~ADXLGKOeUjW0yyNcr+M!2fSA738{_Vd&Mhe9xxVKoW zxjayoss5A(Rl&!MC0q>GNp|+BcZ+4iLKknxgm17|^dI-S+@jNlj@IUqO2F5gZrO2;fTgRtyrJEVw=YZn!7oVo3AUvZ66K*(?tv+X$!hv?Ho4c;HV+0t~)KJ(Sg%D z&yJi*wJbnkBly(TAcRrQ(%f&2o~P!tAV3gN8x(HZ_B>#LyvcaQrK8hTGfm&mw)O;`s;Hh@Gu* z-4-n-aZA#+sB2X3ggZqJY89Et0U)x&~^Z9#iO{!TX+&c z#RpBF+L?m`Rmm^HL_( z8Bb18>-4fonr-P-{|&j3Q-@}mZvP=e|4%Y2w2z(4QP#O$dIJ_P1lvAm;bcY8nF!}Y zkCW2B_@E&7pOMCz>VMpS5TEt+j!B2M?*N0MjuuXQ*6MMW@jw&rph&Y|jj|JqzG?4| z;`hQ!KM!nQj6H{qETt^RluLk5xe+Sl&YT#(d%I-Goyij~&1AuVcxe}`XPdjJ|KMD4 z^*)K=$NQ9fM_k1>Q5S)zY#0ZjSzo(fIi7@N0G`A6J5fqP@q75&+0UXR)Zq6CLQgl_ z{p^h>+cwb?O$&`f-<)(C>X{ZpHQ5holoxYlJd1_TR^@e#iy?Ja>A$oPvTn7f1$Cg8 zko=>mHz27aaC-wZZ)4ZLf`I$pnYKk(qwA#j3Hnpjmuj?gseSZwjb?H~MQGk#DNEmZ z-C$=!sn^0c&8sf9nH0`#_ovk{DQ-xh zBn@h?DUYYZgki?JHuM)c?KOY>s||6(*;-WEBUt?dr2wB{xzn9C;Ge27yY@xidY(;TeoSRb6<<1)@fMu8BpRd`pO2zx&sV8jdbh{3ShLx{U}D=`!)(%u#aMtk*@Er6PNC{{K+lqS)7NndVgL{vULn5#E^8G+H_GL! zj3RADJFD%34#e%USP);i0f1Sp>DB~=MATw^Eo5`9^O->&;V6aGb5V^y*Syt7ja~0i zI{?ZkXYT%uXQeta-Ukxck98J%qI&!;w~Mx{`6HeK#c$2{F`{rBs{^$(IWLSaTjR@$ z3JhZ={wg(@9&3P#swdNUPt;?f#syk%;1&E|;J-^;+4pwap!JRKXm=M1l)FV@Ongp{ zYITQJtMiP1y3;lRD*ibKj$hkM%aOXid;DzATbrlQ?;<_$yNL1^FqqMWtKRyG0!9um zpwstpIP-m5B5|6pNxrcnxq7H1G(~A;D>u|zfG#aj zBjntgF3-};U)a{QcFnWTc-MtNjN5IkVXrM~TE0b*I09D4{c~p!U>ONcM)p+-r+;;z zY3mLbF>jWHu|<>g=OKRuq;Xz?HdwQdvCW;}@F^t@I8NcfFg^Yum(4akkE~h>neh zda4gBw=Eme&MvQE&GK$-MC1{YRs$9p{bXTJ`k>H2fz$Uco7W!FnKE=!Ra}A@h~%dK z|3-3`{jl8>$^XNV-2O5JgIG^E6v=JQ+X-2e45#*q-K{pf@jey~ir-x`=XYc}&f}+7 z9rt$o*2^fS7#otammRhefvR-ydzrSyp`Y=A%gdwY7s?*%I2pRZRAA%$Hb&nF5*I z!I%1)4_~Ev*w#$P!ZGH_9ztK|m`x6myw)8nTy8$H08A$A)+|jXvY%v?tpE0O9T@nL z&z$Ud=#yv+2C>dnr+6qXepBeb*1BbmgYnVfwo`yoV;V>#0iK=TyCOAmd67ZMa$CZy z9Xi)1#37iSOyE8#_oa?d)@IYDB<-6$!1gy5P@tGVfrS*U#C3D3neEV>wRbcS@ptXc zReFxQ=JaY;#VI1hI0#QsKM}*hd>+>!|EqB2FSyQTZP!{;bZO>cW&W8pA%rxa z(CD(HKHu{a*vL?&_|X^lz?0)Nz1`5r!$z~F-HLXu*5x;SbswOwCi+jn!?VzB^giK8 znBMXybUo%xmS4=)cN??U?mZ~8zvoGgu89KwGcE_)&w$nwndFyKZNR|^0rpSn_XQ0V5{lWi@UacexfrWYYI1ry-hLGTmk@~wm zuA-A)?+%gDN3^=$d>Qr_bHpRo+rEg-uH4(BZkp&e2)_E) z5_~mlHpHWgVhHh9xuCY{@8^j85H>md2GXA&Y^8br&0u}w5)V5~?$$YaiTmZVmD#+R zfWNZ85L92y+SMUmc{N=^?=hGjLCbQCQOqta*dM|6zSn;L1ltg>LHS!`NcF6o6HWj4 zWwDq|nIVIxGiw}07Pg)Gza@`L@8$mHHZ0|F)*z3|-&(Ncn0&Y-h6D0A+N=bq-0|&6 zZf&B6u6Nt3klkbji`&gk9;2de5sb&CD2dQ7p_9VGVi{LtF4Y566qUK5-Ncf|YEXor zC)tIZdFCTG=h;Y7f9hs?OYN$8?O-@oWw}tFS^mRHR-G64g7e6tU`?>?#K8DL$wW%4 zOMFYol-M}g3zxgd1gi{-{n?Z__2{8j`Dq-Nq4j+{?byWLi@Sk#OlkOI(FOEk%$>%PGai85vTZKR?I;^LbUo$k``yvs@;t|jk8_Xsx3<}P zlo4bU@uYh!2)lYYqv_}7l+0gALGKbsU}3IgWZMv_>b_h@P6+kYfW&r`DFF#6$ztd|N z%podWNlyA;vuEK`3y2KD-Zp^ z{8?e(FZnz}&f>U6g|Vr$;d%A2+PE>3pBGC6*4vI`Fi10z4&shx%NK5#u8>{l2GQ8hEOh-@YS&ARj}@!uPYTFxUH(2sJN|yYaLtP@113J8kWkQ4p~ec z^Gf1{ayutDJm*Wk;KSfAMjCLw#&0@iHA1!P~}60 zrV02#1wvS@Zifi*YNK2%(~A7D@eRsn*s{)cQh82h1Yq@F1${YfUkfUAJK6J>*Wk9A zlR)NBEUA`rhT!p^FjXF$VTTyN6Y3slG)>EYk$T`5C0CY(m2rn z2G`Y#{V%7S*%yDrx?G`wQtP80I2yRAd52MY)$@NuO~^B2sqV zj0vB<=lafIZa~=oU6I%c!|~`>1WEeWtEI})R-spZnlCp*Ltl3g0G!3cZ|$69FGKXY zh+#B9n0?ZGEPBvWc3ybZ5`8QB+M&sUOiA@j`&8hhtLMW_(6|1D{RUCo;s32D4k%@T zd+h%`iYv>D?Ef@ICoX~%`(prs9aJ;`Z>Q|r3Y5(soKPi|p4!KRK+e96xZu>~U=5K~ z{r@DZ8ajyc==q#d!;etqM-6eAztf{Yl{vfc&%j7Q1V#$hfzahfM6QKcv3JY^-)LHT zkTd~G;#MvtaeaR#aRGlPalQ`YcT;ej4B+njF}IY&IWud1C`dE6xg)0|>7=TZI|px8 z#+&RLI<#|<$xGs11F-6wS>K9S%IPLc<8JFMlu8w|t`} z-AB9NTuq@5+ELO+6}T_I^wZg;dX;jGgYrOr9`Tw4^C#}T;e6R4fvCo`EqK&q={C^I zU}7!6k09Ez!!QwLL`i2BS9*lrHOX3Fo^$Ub#{+p^yC;+$q|cH#;t)r50=#@~?Dd=~ ztrb@4^7Xp~?3b@`wm#5rq4l79%DxuJM7;Y?8pH5n9o1EIR*B`8aDn^#>B)F;i?Gr5 zjaraUt;g^9Kse6%8KwYYGPu641W@7^NjE6eTvapIQmEdOBkQg5?Um8Q1O{aOs|m1d{H%z50J`FXm}^n;zQV%w6SB;iLT?Te}# z6WCt#Dih#*+e;yBlj{)UXndV@uUMPt%ahjFX6^KTKRE7qK?_1m&+DD|I+{tQ)z*S z*KyQlQLmkGdm`@;ZBx#=k>ltwpyG2N_9McbI?CCB^}?m)lNF*A1{c&g096eB(c0G! zP0n#DQ*4kwDGxHse61PO0{U)`%e zY>a)TdctOX?@;2f;gkquOLBs2NrLp~F-vo=KEGX~ePWSAaAddImb^j4+sy(4-P=y) zbY9w-y2>Hb?E&Kge$iT}FHm?&`xK%i+CAg=Bh*p&(vhf9w~Xn6!Pe=e!X!%>0zLO^ z(RsGOj|slyt;Ed@{@d}x9o(MG=_mK4zO=}3mw zmC}7OPGa$_X8N@TH~Di^zhwA$dcegKB&jzLxL91H0W6eELNqziUxzGP{>@m0;0(;c zMOa?pxiZtYkL+11HJ$0Q7D$u`#?rmupLVy<+=X5cb4Pglyd%B-?UiNE51GM^Ij-#i zkUfWw)?(#+#Xj=``rZLvz0ofe=xi|0OdMt$hBb#&nqdo`wU)Sf(F4gB!|F`RN zzZnfxD+z`PayLUzrq=~C`n&=uyi3u$#?lF}nBO_JH?lcz9WbE-^;jEw)7)BEE;)?y zz)?nkuvs`Yv{+bA zxkUpEm2eB|Jxp1bc!`~2Fmo$I1pH`$6rF<|FiLZvlk9hKxKRtSvvW@qMensJ~gu7F;n?rs&M#ikWP(U*uprkf4_| zs?Xdo3E_dj6E-eiah|sFbjR9~U>YUr_tof9pGf>%q{AUuc#$T66<@h!6+_;pB&&K$ zDOLgvh)c;x)oXtjfWmMHTT%x_t+{&Uhk{OJr2)J?tyM>bs$@#UfY;Opfl@a6>*6E^ z;Y2S{N}YNJJ8O~rCg1;$lhK1Cf1iwOFE^X z9pGM>mYie@E&Ft4cK6G6sR$wepfQ|sRSJssj6Qk74GFU)AO>ZrxMHcYZhd2) z8;oEHxcLGG9sU)%jdK_9S(Ft^7uHuo1XT23j>`3R#9`7Cuf6>eoB=>oO<>;u5uG11 zhG1-1g_!Go_#rlc0ZWkCup>!J7W@iYQjT4LrOq*6szcTZIq`PAK=yBFU z=%#Db{%p9nRb|8^P$Kc6-en8gJgD~%MIO{!|G-OnUW0auk}Ifn&juOC(=~Zqpg)V; z{#UjIN@lJATp&PTz;Cbk#ysmgQkdLx8I%<)DcHu&d9P5kV$Lnyw};IamEGstF7RvI zmF!}|f#Nx;(Ru3@uKJtm6UYGIL>hHMbDb(wR)lY#Q$?)S_mlPzzTPKkg%Zc%ulQeO zYc%H1R&obaSqbcYdvp#g1a%%CR)DywX=s;yOk^{o(nK7PRr{5PA0O|Pa_H}8R?o&r zsoRddI(dfnXzjs}R7&d{vX0Z$vAZ#%$%tDJAB~++wP5=yNC!1v-v@s<2K5x&WK7tx z){BE~=;~T6#65{oO4VJJ7PnrXUE~fB?J{`xDKw9s(;RUl}yG^t8%I5*m{jd(3(?KOrh<$cKOd}vvUk5C04X-%GR~`DRcav;@l-roGYzCxMPoxr^rV(qXggT zxkr9AkH%1_X1o$A;_=K8?E~TSHAOD3F4rUM;9y&x|LkwDDv%14ryScRyAO&J>d+95w!nqA6kOF1%Mwf5EUlt9#%feWSm?3b3xv%(s7W#*yBeEpTLC3+3-;A zRIw}E2a9I`BT`wW;CC>9*f@33LSaPMUpFYsjnmLKS1(5)uy~r5;}FJMvIKwkFZ|_B z(vRYt!K6GaIg+4$`Rd-ZF+}C7q##KkrgDzP-v<0gKh42x0KbB;sh{jWA=QrK--}2kH6Cs2o<|$y z{aP$Nu_5Y&?zlvl;=8E{t}q|du#1Oj*bi0Zcs$5^Fm>zHiD1RRH-Z;xr@=$@K?P z83~4%Ul6zMV;A@FkIiHq@ban8QJ=bsv&XS!T_2j)3C1`4k_UrWe-m?y?t_totY_mp zjzc=62pVzYfLuD+{Da)AC{&kA8l`Nb&>rYs&wtwJYyq}q-ikL_gkt$0S)sr*O=P3n;&Hs|21d{G49_?F{}TPBL1>@L&uK7RG7@f@0V zx$P)pp`8sOA;W(oA;n%$p4S!>)-+9^efePKYT-oCI;i=N;^??~|tEP}g*PMiQbvf>f_^BJ( z*f>%7iA*3xKr0bs5d!FjOSS_j&^**bfu=H-`7gw4hDt`8Qi%_)s$Z-P3_b~lLMYb$uA zV0&)h4Obeb`>mGw$&5Q+P#ejJJ!wre=g}JuSSE0_z-=?K6PKUM1T9n>^$sxD(<5fU zHl9v?*P4O~!puze?Y>bz3-ArG9L^TzB$K&%8qeI4)fhoR_F^J6Zy(o?h?0c~h$4#zi%Un=14S}gTJVZcu%j?WylDFxvCE!qB{!|-H6 zTcGCioGxz8u^G6M4(91!)thzj7ZQK`cZ?^asq=iYV3!4^!?hA6V#W_5T%0m)N}_=w zGkRKZ8*U|h_x4sy4zEM?N4Qoj)UxhewZ!4azmal zvaFfn(xEf4!>`dMvy4!!eEH})7HD{{t&AK><*`=B-aw5Y2MLNK#9AHY@>r{j&U0cA zYgL&0RplSps=j%g;j@V<{_@oUrwVrF*i5G}vmw(QsL9|4NOoXnuEt7QL{?=u=hkEX z=rZ8eYmw_*z+K7Rm5*_dKt@CN*lJ|^kV^@g62Yt0>3MD1lZuY*WNMFkKtGS-w!W5~ zOvy6>Ud75n3-uT;6}Tr=b;VrSsKpv&Jbw0GtLWB~_D|JmO6~rK%KC|S7GwS}pVOzm zUsw_)y~w1P7RD?20wAR0#ppEu!7R-2&H#Yf7+d_Y+UQo>v(2;{`gN3{t?+a0#fhCU zD7P|&mQJ6oL^$9 zK_Q+jkX_qi=)$}27|iTPi8SKF9l97PRfZaPXGuQ+UAxUg1mjvc0s2Bm_y{=B;+4N)z=<}U3~Wgc7ZQzO zx!0A_xw05c$#ah8Ntb&Z$({c1bESA>lncX2K3Yts_FLnwqavX3unoekHVR-^avRv= z$?MvCe-l^FFA-NO@eNesH0aow`A)o}9qg+?%u)MJ4ack!%lr!@_v9}8Oi zY@BXKvNjqhG1JBp@@{bb{6IPh=X=igFX)`<+}s}b>+O2IT&IfKy*O7T zyhP}P!Of=|e8{~{xx*M%;M?!`=qo6lWrb<)1TPBUZJY=b{Y03J( zNFTjsT&-u`?G{V>29!3B>iALf|AW)uO{`2PtX&H|Pd4u(Uxq*A@7(k?I6|{RKg~5J zYN@Y?MwBcibEraVY>iD{ohz0oA`0S^jrlXZC!=NX9L+AhE+H&Qd{Aw2v=*frA9m)` z8tedhh_%{G3BBi&8d6}o+q$x=TlxJZ1~WVj9-=nPOI;>Q$KJ^-4fI>jf<3F*l*P|L zpC_zog%PPD0E^-1r}@-Zh&yz@=MmInHUyv)DfX{YB=vtvky8G%6bS&Sa%fzeBeTkH ztkPywQ}2yv()~z0CkDJ*y!x*kuXUMo0Rj?LR=4V8VV3J64>bR-a)J231kPM17JQt=ScuN?6qlGj^V=!3&JRc}{q5h%S{SQEfaRjl8U<+;L26m@n^)3nPQ0}J&d$YAZ?y*{r z7o>`A3+)D8QtyMVpj^xd8eTnwkEFXd+ANl6PM(8JL?b!EU8372S7-~s6$;#T#C?Zd(>Mvr4`0V=KeFsS!C^Dh z&0?o~$4%CLETIGTXxiA_nDILg_f6TqP5xjZ1@#x{gpcgIlr)sgXy&^u5Ry@UU$ue^ z#$VtN^#P}Yd$*-5toPgoQ{OB6w{Mp)(DH&$hqkv=2&0@lI-dn$GOs(@a*}O6_kg@a zrOycL60R-a#Ro4t){BsyhL=GErq!5iM9G1-wq84$1oSvlb>Y8H71;O2;bCu1nj9a+ zI$Q=EY6rjl9}czH|ENduJ@fy#9%+LNxk@%(zQUs~$03~5Zw8M3kcw-dH`o_hp`d@c zy*CJ5dqySnyAx)P{PzGK(PQ_Js2kpd0mLNeT|i8NJ3hCuLCHfLzdfUd6at>hoJblY z60%LFM-^{W_9g_m+5)U%4ms)I<)^3+!Q2>%B})4`U{vkgfI_M>8&3eZ;{SU*)%5?) zQ{{Av{r^1G|1a`X4+xJKe=8sNU|O$<$V>u$yWorM{!OGgkiG(e>D{!ggRo(_i}^2H z)njjJ{@>@SDkY)K6|z147VuDv!*gLTDS@G&KwC~;qMDPJsOzrV&nRGlfO>PcDqPUfuwuNAHx#-;;6 z;y3=NPhCD9zd=7drCkiBz_(7q8*Z;H>ptsYO)l8aQ7tx}NBIFM699`VBOsnMLmrHe zRqq3^`E&VenCb;L`v-LX3c1AsrN00tnz%0^yX<7XNz9l7hodTMAV<#7XsI*9$<_g( zJuw&u_+8f}#2qm!{k}fLM96f!h-7KqqP#_`Q~ff7((PtnTUUXoHXo*=>QX}8fwIeW zHGsTee;qZsm5b~m20#iNZ?luy0lVYo@=2&O>InSE$dpW9cpiFj-`iTUc9HvFSP6L`t9v;Ep8JH&bA9`- zek95!FFU;QFU3x$)o)U?HHL7i3WiAxd!A$lJLe+Q&pJbD)TnP_yx;MY`G;SJV(cp& z9{1rW3LiaB&vO4y+=W0lVU2}E1i#&$;(cEDz;UN~jx}gO+FM`=eitL1;xqb(MXaBz z|3V_=HgQQS{-pf|!+Trse=@wSI1KL{e>1$rHW=P3nZUvsFd_3f7^1=JrhAM1c^Dy5 zTizM`Rpp|!8$R~=<6?*e>yN3fGRo57w-~_Hx~v-pbX&4z;Xl7&)Qc)GsJVhSes6R# z9&nTdi3XmD8{r? z;6emQT^LB#_Zs`xgEzz&Ps8&{eW zh&}=&$K%WU0gl}fNItAkhB_RUQmD35TY3@_tGaN`tSne+wGNkpw z#huoZfXP{QTZ`NVFkoJ*?Ev0E+eMy$ubqvktc#o!MQ;sRv>qynGob=iE~7uw=>Qmr zF?a*=@+K803He$)U)?(wzn%73LU!z((!XtW6%xKj7^kF;cT|-GG2;?&!K!xXHf)da z1`LvvKXcXUhxll&nNa?3jQM#mH1@hF4S`MoGA`S%>Ps6&>y*!>uZbB(7BKfdi3BS8 z;8a_jVs@Ph-}LN+91u47-lvn%bYK0)1mnK=#iwf>Az__&hsESc=izZ{SGnGD+(N|N z76Qiq*}U>xV%{IE+y=Hn&XRF9K3+PIOxq@XvpjXiC-u&x+z`g$XhQDI zAP-KBi}KNj+toR2rs~oqBP4=SQl7oPPql9oUc7;b1llKn(%6rW0Vt4|)@?s) zQaIbWu=5DC^6arOo=XEFq%lGaxHI45InL~NZsU_rSdA905jcu=Q} z>{vn8#(OBJi06k%O#6MhxyQAqki}@=D7&-W7k#afHFWzOwx4O1p{qE1YfI@Pf}*d+ z0Ay341J8*Qj)%ZFuJ4l+j8rkBICw$0Z@Ic+cJ@O~V-5_ZzmkZH`|9t;wAB|~LioOZ zPTvCyay_(*^zvQCbdfFT*V3?|NhW+;0n?~=RA~|Ev58`!(pm$-Rto8m2|467Q(6`r zG!35Ey-;_^t>@V6qDCPo#;f1m(m8+a0EaM^L~ zDr#vdlv|d-n9p57UV%jkcF^v0LW{F^j^J}o&e*Q0>H(W7Zb?>=`71sroWlyj^u05I z=+?jO{L>t3p%rEHg0jZqdiO}dNeloOcRVnv>&bi2e7tA6%AI9*4XEndSt`N@>vZ5C zSD72g)yn{K^)lD)qb$GY{>p#1BXKs?zGA8%L&rh-`d{T^LVf~&FvcDz&5_EP%AWI? z6}CD+_1N`|>ahYU4&$}I*thFEL3u9sW#F~IFSmQ<8{@;d0RkZiWcWdrF04qN|3WbrJ;A*d>+vk(23>_7l|Wy@g#iySDp3SSZZ z{>sFO-)(WM!Fc}r%izz70Vahhzj60Bb?_RjCZd3h`bN&dlc~x&G7h;w)Z01GpeuGVOlVTZq> zvP)f(Mx*+#QBTL^lFt&=9XrXVbeka~u(^f4qdi6buEnSYxjWMu_>F|@n*Fu}cXPC3 z`a9%K{mzbH8~ng0AZVT(>KzIi?mdc;zf2G2O?EGUWAWZ!I-nC?A`-=bju$olh~h_L zAEFxf+Y1!Z5<#CIb^_3#4bM=+uUF;FNk0}Fgj(Kyqhw$+ZvLO%a4y9R66s)pZtbWa zXSDQmoOA#cTzW$VM`Qq!!@Cb~6~q@N`8S3&sWr5oU3+t9TySJMs8?& zVgSo7!00bcFQler1KPl63C(RE;v_BR#Q0u50y{3gPLLI(0Kf*$4foJRBb}`F32#w< ztb1_+#vG5DNV>4Hz&Gl1_0~e_5{%KR74MS_G?0O*Mz7@pY=B1BUDu~#g`DA&{M#v1 z9EI={*RrYX8N&0!S=20y+lIqvSo`3a9ehA~HqKrLG?W?Spt+AraS6qo46V00;IJcf z2pw!_d$H1<^tqejh6=0G(_^!RsCH{ndL#;Q+b8Mg&$sOx%i8wyP!@`4=SV2g-Uq4& zL;5;6pw*yXwR>6En;RUvrfNO{^PN^D^BSk!kF&`f10IPCMDTwKf;uJ`uII=VrnDP< zA|WzRhAkf2Glx4><1PhTq+GIhE`znHy}A2uXn1W7%94Xb+1-G+OPmC5xM`?JTilts zv4!X$biOC?#s;6%e`gXd*)Xr3~#m1`G2ui3p`3ezP!+a6)SNG++%*I9jDi*(<I1K*pn-#}fsGY+**tD8@-hD-r9 z&W9__Ko>HIs}nQGYn`&f(j`FmxuD>6S+r;TA2tKFvi}^NXn9K`K*`@d zj5LY6SWMp|5>U@wpLgnQDTYpFd-MICCy_J5ZLQMYO_qzKym%Q+aPjcjWhhI#JC4cga5U!C%^=qMqXDx{NoNgd{HzZ9KWK*ysbT}| zP>GXEA#GGB0Zo4g|7rTGz5g=u(piMkX%!XI;Qg$#nfsODhrUWI|6DeYI>Xh&@3k3c z`lm;!a#Ob8^eFkYhbm5P9CiDjeDhGzl)YXfL2C-XW)CE7H-W~isqL$y3GFG~Xih@? zKaNl5nD;XCX%DIed$#^ql?3HbV-|L^LeFxl(WPr!*7ubJC$!fwZaom+xIk?~{Pzo# zvac{ZZ|U~v&5*i^Ec-YY*Yp%%$S8nh!Dj}b!?j?|cWnQM1JrsDAtZxSjV>IBoa1*U z2Y^}!ZU>$q>-%3BJ=4M|M-Mo;p`IK5*A}I9;7ieK4BTiy^b=Y~L;D#7pR2srQ0C|D z_uTxkW$R!xr>9I=qRiZVkuwgwSUMyFPkA>^K2 zo)Zbe{1?Il_Hbu)dgBDctjUc!%)t(IcyR8yhTxMMq<~r5g z?#O-dHJB3jl{$&0DIQ2?j>o5UGlRECUkglu`0HYo_VLc(4$2Z+mCfnTgn{=sV_EMQ zo*)0RkeiiW5pm2=`g%o2Tk%23uO7;D-{-m@1n^ym!{7lS@Ku#3N6e7j6f9g z^pnNyl#klBPbyl=RAcuRZy|8j+o4WY?hw$ibmMR8!@s-#dVhI!^6(zuv|XSB??fch zNE_j>&Eh`@T~d{h)%5IiIG!r`21wj?;whn!YlMhL8C1vy-WU)BaR6`+xJAKE{ic7o z23nxxu(NgeuufvW)yoP+Ytbr;)x00;va+4CVvg?lhPYxSnG3+dy=J}gQIw33;M^b7 zcxN7#ZekD*Ea-bf49RlxWT$rA%YA@=AuTt3appAy5HQ};{d`4sE|9&OTWRT>9_JHY z`u^$?SC5S{Bu>-GSim-pgn|O!<(UH4ry?E2?YeIj8dYnvPg%=$$^7x}5&rh?B{F{O zOk3g?Jw`}aI-pWfd*D0q?Z%S}3p}~l|E_bsp^L^H!5L?h`$@Xp&C8ei|1yw=?JtFj zy9%KN%62r%!sZ=j`G^l{;dg6@8g|$HB7L7Mi8Dw^1k!64kS+=V7-11e`cWDo+7D8C zCYyrVa~C@_4+Jq9hXd@^ z4{#nSDiTZOMB%l*QKrYrknJK6$0zFy$^x|e;`~0wTV>gNudWL!HAu=A$4oV z4g^wTm=(PV)#3kE0Y4cx8+i}C{zS0L_FSmd8Qu^s0D|#G6MEf-5a{8P2ANKfp39@< zX9Rx&c&s=%-^Q(zR&pQ0Zq9F1`vpWBpfaJtRGx`z!yo(_k$pA7PV1H+olxZg!&}S! ze0VI+dTa>XXX}A2(Xldso~{&n;%ff+^i4IR3l>yU!h!8?7B7)DikCKc;Tz59|2x+H zxPvy8$1ft_Md&^PYcjxxXo$<6)=7TFsGD0-2YcG6s9E*>&>_DMYNCmk^x(Q?0j#8E z1H#Z5_#0;+sS6|sfjq_uzqnERmj7r;{~r8a%Q4$)#-}1w0{?C)=ea(9+KH-bNmp3u z`)Ll1G{;k@xBG+rnzLf`;825%K5x(!^IWjKo1`5)Rl}vptPwzkN4awP(G^gxx_jyb zeKNde-4Ocox!B_#vwK)LpbzZM^>ys^)t+NOwCR=b(@x~dBl+>v_=5ScasAFwh7I|C zCl?UE&C@2O2f!<&0}n!WQ|aiHa1(v5><8R|HgQd4mub$^<$gffS-S4I@4^fss zYQGok`QTltZ$G2iUx6qlIR&QbS#O|e0L$Lt?2zQ0ag6t4temc)MKwFc5D@|L&w!Jh zm(|hB{!a5Zk`HoS9ZuV%Nt&UJMtJZ``U#RKr|&AwbwU<(AL|IA8zrvV&~vlB>}l8f)7Rc`b+AAJx zv{(45!>j0Xm>Cg(C@FNZmN^wspfdtw*e%B{0gdTE1o!635B+f}Jy(JXc+N-Lq(j%N z<`6)`GwyY?^>^ll2hVh%j~mu$gUFZ)3# zJC)VAXvqU~F*&wI9?i4Gl`ma2k$yBPb`9S;s}T?#9FmMxUR+u1zBHVBuh!{16#v10 zTr%eP-V!L|O$moDNkd9*ysxMMVzyg$>fOo~5&piQ$04@5!}5P<#CJqZt@+@}=6w~x z_QPGJEd{PffUz=7&u{YIFvwo(lO?$jKe`XR=33-jtzOg*k5x=xMXRFee053Wg9bF}kI5gx|PHiQl;wx93SH2UX z&FZJL4Bnp5k+&&?qpe3Bz}r+1*Te%8T0(l3b1>*8iQLB)-IpAXgvlxYZj!4;-3mMj zaQQtZ%;AV3ivJWb*ssXtD==j5>#RDrS`218bW}52G*i8yjsPYiNZkRGxg9T{HBB+2 ze5=(w!v_H_6@eKnpgx@t!uMW6r}$+hrzbG~`7|;lVVbiUfT_LD6}&FlOrCAh^4nuU(piz zn$aLH%XhM0_cXEBOL9ZHc3W!beL$SCD}Hi(xa;$c*&MY=JMs&hIhoW;)~eB}=&21n zY^zX`por^MSALtN=3w`Gy=*>C4tqqhDlG+6dwH@i9`ZJqzhW)+SLx-Q;<9(3UX~!E zwp4}ayQTITFhplZ5-^|6g6y&`i;~F{{^H)R9Y(gM9R&=~o;Yd68ljP=F{Noy1@q52 z6mlsmFSBmGIHw-JCcQ%K1RYpYb51Lo1OcFnWt2o(*(doDvYp|pjsk&_Cm5rEZpzC#PppskWBi8=fm;*{@bTZ9K-!@pi3`CQf_Bhs1sUgaxLf( zgREPCbKNoZQatTS>_Yz~e{8%tkm*kw+DUm>t3cQ35?p2NXzp2HQOUO4mSEAW<=2#+ z&e{(;L1nWPMF91xB)gW5X@Om3w&(~O1jR4eq}CeM7|ztLgY)lsp=V);T@2fK^fKmU z&3H*0G}dc-e1O}I9|0ZcY?WB;`t8C<<|-0#=ck!&hkf!J`albrYTM!8C}#r59k(BR zI0ab}x2R@^Bd)S{-~L38WU15?c_g+S%Jog-`K7#!sqtO{K$XnSu@uE7-Gt?&-_dIr zAQv1>G49v@T>NhFBl$+n^j8_rQ)9j7X4ayH(We2_Yq)zMN;t3QA-0qovjhj4*0-M{ zg_sv67>Ho%9)EHfR#x8gZHw4)5S2Mvs5ud_LXd zVF###3K(UdVo!i;SbO@{W`j#=?t3r?{mC#o8(&= zwJ7EHCEPox6B6|Sz^Be=kU&v-ev01hk-XDQ9SBkx$y4s5{KC?gpUp2ZL=wn79H%EC!%^1z(8vG%v0%~(( zn3_c#Wl>J=9%W6){qPoeUKGr1Ecj=#NjrbO|Fnq)P; zR1$?@E%&_c|7=O9WK95ubXxkj{qg3N#4#z?jCb&yAw&iw}?I(`fz^h zndJWTr;vJO$j`QBf`#_1f<6)gc>er7?3w<5r#fdnCF5 zvV?}Keb6&XGHvgl@uB`1pW_~{u8@hr`!DbNp{cBpQC7`JdxjGQ&3ri}e@DO(Wtbrj znZT11x*~2Chc!TZ2Xo!pNlU3z%-qrGX1%$4f|l4LeJ9jL^wU2ReLhj`#uRGDR&*^v zCHR#0C5gN#EyJYNe2(i+*c!fD7BuT4`R(k)=Y$UhRey`YI z@FjL?KItstV(vZ*dNe6)DoY_~X%Arf+j*7GsB~T~t&oK*!ttRsvc+xtm9}BlbzxO; zQvkJJQ!h4_+H`^GD1zSPUG?yV?+b$SVyo{l3AjFs3LRa6DYg-FKy zfP1ZNsQ4-OYFXFM8yuR>$#p5`F4)3#=|^ZEBEKRm(5m3MhP$Do>!$ZTL&UrU z9q`SyXBLidw$IpJx2s&^J3rONmp&)%-$KMlCrB)vRRba6`pGug1_;3G6f+B~ z^g@w_OJ6wc&<7iGU{75~6Q?h%Z9jbOr0D?{;d9Y65vTLw*DZIT$o&J*XSmmdCl@fv zF!v;?Yk$;A(PzvjC|?^|M$Ps03F>^Ed8R+5gm&-V{v`RCz>v^!{X4j|nP=JvllI%z zuG$jr*`doY^H5*O-MK_TyIS@2@P%)LQALKw%m72II~#M%w@UJ|rw14^r>5rAkHxt~O7sK@rRQ!aLS@^1@Hv6qOZ_D1Y8YQnQ^o; z*H<_Ticzflt1{bIxON)<7C|1lkW>rnMXdClm3Qh?%nroB^zIC~#16E+bj8DW-&~p1 z$V(bF>MmQr;=~i;w5!;HtK)|4YwmwQDkqn~-m=;SM!pB5R`D8j$)_Qpc?>kp?m!QKnX z73(GSdqQ4{lTU9fBrl-_x(07Ze%|guoi99d(*Z(35NH?jz1C^Q3?!1YfJCfwkP^qt z2sld54=n);pl1D4gIsiRl)J#tY9x{W#B>W9b~WwqFFTUm7sXieCl=^C@mKCQSXde7 ztFB-OI^b3eR5BSlfYxB2_8$t>jvfX!QnSacb*S=B@tnpWyQ!$zlZ}TmYWpof^SBAr zxFC6zocJ=3%0mK#V~xm{wlan{OZ8`zj-2$wyAaMT6a{_64g~$O#E_eNNQ|#IQKm|a zAHkIHN`l|N7)hv+7r@8lc_aI$ZOc@aa@Ad1vU`$6`0khEXmaop)99Z@UPD?rr1Yq? z^6Zd%@OW&$U+8M%2b2tdOSzZS;;)A%qn;>r?Rb*Mx5sEJkivj|KU!(NZaM!2Cz6vI z(~o|buU(PD061_pYRMz3S>kFlYr_E-R;ga^WXo}cO*G|a|EztG?E@a_lWj64H%1Rz*NuF*Y zXRyL!%P}I}GM4gaQbY%!1qxkxIerM-{h?5{>*zz2qNbg$Bn6EW+-}6re1Ql*O?|ni zYC=}&Dh7dXRe4n_a)DUQlB}x__ZKdVgD@2S-c61L8D!Fng`7bkg(W$w7no1vZ)v&$ zDJtZVZUKY46grO_-u(i-hTq~2zmP&^84uf{yURXk=Ou|?yqRD(c68vf8I849?qkU6 z3~&^XtYC%zZ0F!#1BjKNJ)IlIKx3J?ij-~3aQU#)eoww_cYsScN%u={=|kvCs!!O8 z+`7eZH+WO)wVg9Rfutd;I1T#mcPZ3wwNYcQSKSx_FIJ@Lq>^Rll{E2(M^DKtaL>8! z_THU$53QVyPlHSC`c)I@1eQ5#;5~8r!VxrcZ=e7(3R4V-fs48CUVdNDugUa`x6Gna zcFZ0701KPgosd3JA{}llvDb_s+>wZ2c?(!~U6m~G;D=oFJ%2OFv=7ZxX2$i?Dv0+o zJ}hW6fR_=aQjHe>Fz&wDdgxV6Xq@>ju+ZwS+!&v!4|^>v(Ze4rDI6^j^t>T{X=`2G z42qf*5*OMsn<@3$DD+;opU~q21o62Lf#=M%F}V}V3&M1d0?6Dg=RY5IpG2?^-PXS6 zQh@)sL%u$QoO?03IL4&^F4P&vQO(}EvLh3n<<4Xc6anMdn@Bd-#WuoH9ezitN2*l|BiFO}F4H_>%JD9rKX^@kZ0;Mq?r}#3+*}$@VNFZ!1tbx z;mo$q{%_qvb!PobRlZ7X^`-8o1tM_8r?~l8~FRrPP^gR`W?(^(4i~-*3&7Y_a1X6 zpv!9`sp^FDW83<1$7Y!$IQ0Wd_3DBq0ez5Zh?iZ{T=-Ta9 z3Duv9UH!UM_rw+ZZM#=*Wg{?kY720*`gU~ccIEg^@mmt5`-z>h31Z%gd(BE&s_!mi zD<8L~MD*5fZm5UdZSHG3S3vDaQSq~gFU@>Aj@XK~C<)=OmL&GeG$i$Q3$&=E!S|<5 z2}3`ocJ984a!Uw|j&t&t1BY2WXvaJk1zt6UjaR}Ig>oXru>f`=Jz=mil1kk%w|nq> z>LBR+QaIXViLk%c47dZw4r!rWrPsXh-eg2#2a{XJ)+9iYM+*}9gVKhFAH%dDh$0jPhm3ywzXTkLPHEss)R)vJLQ zZbG zwU-44;Wu7U$Zv|!F|zJm`$7Jt>7g?J-bQl2>5gBN(0+JpYZC%HrfhfM30K}ydcsde z#7rMuMFQz6wN0kY_HI<4c zc%4gWRZx-gw~<(N;3GL1{DXaMw28@WfIKzPS@Q*GxKK~$TX7HNvbHC>+RVH^rlt`? z@h&X6BquTYQtRejBJ1(h8#p4CQ`rP0&B2BlKZzn{fy>OOiQHo1EIUokF7wj+GuX#! zJ0-oRm!c4o#54kAdg|>uFkRTP5sA^!6>eu=5=G<<$cw=(cb7)Yw-?@bLTDJb80>i3 ze$G0&#@4ssWd9d+j~`mw?oH6Og+j)#(Gf=cI!POAi{fl&8DbCwBTlcCrX5k-)m80@ zid0nU9^L7V$JE7WJwR;VXwDdzjxLVzbLsYcH8Klo22qm~Qu=4_BSQqUSD<0 z+bY!U0uado5665LxniY>q2Ubh)yHy``3d|+P3SYuB7-+N{KZkw8~(R4LV)6#)Ww$( zuW;_bi0!zNA0KQb+$U5N<@j}Yr((1#=Xo`Wt*YDtXz#mR=1x8lu3y!yWDch2&C^)+> zC?|bF=i8ckp^5J>+jSjrP*a_GEKtlDaepd_|2SYhnQwRhku8^Mw=U3ayY2K79PJ(; zN}xJ?q~GIbyuP#suk>@LQ*m-H=jSy>N#>5I0+to~>jQPBA1!*xqn=+e?yP7DEx_Wb zH&?*eyA)gKBWYW-=?$LI>DWbF)jUc>B)Y$JiZz_R< zjl&1O7RpZlDtRP}OA{3a%oVMqy|6cWOrI#`ey@H0Sh+rBTRv;s^CLj&diBT&!F9E< z-XJY7?+98Iw-U0e-wLj1nk!ywU%HPF8c#uTO=H&3-oR(yXD_Lh!H1V)^_1$jsXQj_ zdHsv)mmbVMTPRUwyRs;)>}XOSy*Ix*_R7#Ejf0=K8PM1ML7_D}9fvyKh@r9edv*&_CZ znoq8$CJY2qQh4tKX8gL+9#h{tc(l0I_!OeOq+e5dd-Lp==i|?Qu1!D<`}X-Ef8g^E zK9*VxP9+X)3KL;ve%My|N4`3SuNZ_>yL2TUt+hj9V)BXB`U>sY^-gS^1=`0&KH@+D zISAfK)}v4R6x8aDj?%M|fuCl&k`;a#5cW#LP9)>04ThRhJF*{bFk{tSHTg(hoiTBH zMu6x?)ki+Z`-Cz30_I=o{i-E7&_9imK>o@Hba-*m5 zR97!78_A`R*0RHJlm`{kJ$>#VP*NWvak32m7^DPjCKBslaBL+%A2sl%kdEr}plG&u z(PyhHwxSuhx-R9)+FZAKE9A&DOz+rrS{@Ja86Avl5sR398pp0(Ji^ba(BHc8;U{zs z5F}841PRVs^3God-cDwczxxfRTesb1+KLtM8zF30mJh+Uvbe~y@0{pz|C01BZ%TSH zfTUNo*P_^I;3O*GYPzqMFoz z;mi$jb8hUpg(<+?ka{(o$IKmZ=LQKsMi)~KE-ZI(zg|jBFdt9`1415ao#r<8Ha=E4 zfj(eJJihH%XYdX)53Cp1`w3*-D)AIbs<9k4GekeJUzVPx7is)SWJEWq6=iF27AW_$CkmFK?4lG+LuNHjNZEd?a zSr+JT0#_K1I(yK@0BCIgQxJmX-va%(o(FzEi#8T-m&omYoJzI${c9Gra)1bjeOt+0 z1-MA8zPED25yc_J&bNn>sx7KdCattRxb30TcMPwG3ivU%;By@2GSV3! zo29xuImkx(C=lkK*b~!odTx$qqup!Z*VPqQM8zt7QOhPpMNo#H(xue7TB#Xc={Mps zi*FuwRBp@lvD8?+Vwv0FH}5|+AAGIE=xZS=Jh94G%h00wqyAL3h5FLfeu^)=@skJs zmoRBr=g^6X*hIf)fx%T*2^OS4i=k-JcIPaGUEVLShq%ud(wxtr0DaGt(JuS&!5vMQ z;=SaZdP;|`k`LeLB;$JS7iw(jkBF}@V{1^UyzyKa)|KI4#kTwgH)agmB|~2BvNBxX zqN)WmxWxx}kO})up0jsoF`CF}N=sm7T%!IuCO%?mrZx|kcJt9pkNYoF4r1&1kQ(11zsGqezfMq1(Yk^t)YwD==&lZ7`G%|RIoWymvET-FN#qgLd@y% z}+qF;ajmkt#A8napc{{6_R|Fd#@Q1lX>yyUZ`= z6vt-=3?bKHFrM)raWek^N>c0~C4qkFeMOx3CA8Nq($8 zOk1G3Su7ZEwY5yB0s^0ZqkRg(pzTHtzo}e%thi|5hYHM(xpeHf{ zfPPMx%c8O1G{Pudzruh?Sj`~4%WH)uP=pd$^h%&m%4$o&<5$x?vzKDI@`g#wB$Unf z+Lay?o7~^EPG)NH>tc3PNwN=XxNe4)(*ufDiVxlHSW@A1?m+nCgZm9aP0tE(Lqyqd z<>m1@)k})P3Fh;rDgc>$S)C6hiC!SmqASVl%^@){d4%mM{Gl3(Nc7|>2*Y0V> zv2m?KDia-e{tb>x&(%sH3|CvD5AVdw>YDPbs0E~?EO0@CjNg6+NvL*}j~%FcY|q0G zM$8g5meBUpi*W0{QAR4h)RC(nWwev8D;t-J=dQEP3(p&_h2~XG(I#5ks&%Y8A>bO1 z9xNA6rkI0A?K~_)9Ln5UKbM|F@K>+>tXkY%*w!ia(&Kw6vS7kUkvFf z38SCoA(>Zro|3-!Kx%~wOC9>K`sS6Y?K$vyF*Lb?a!__|ecM#-aoe3X)s~XXD>k#VRx@!S&Z6e$TQCQX}i~iF3mZ- zk83ub2{!m!=93g?)$o8@3H)E5k%8`432=C2Iv9su_^uNanS zlLUwr%#7JIeRx=Nzn(B(F6k@Xs?P=rm6cG4tHdRllYR+tDICY5ze9u4jg+1T{LT*e zNDQh*IevH99>15aWTM})rc<}vW04O0voq=hhP3Sh{BCX6=#@y*rc%-s{@rq(aEJ{F z-Fow}I7;~8Z(#%ueEzdE;~u?J!&!ny-Fpq$>Rl2@uk&9ZNr>|?KYQ+WSvVn72uF0p zW0nl86O}qh6}mUWb}w-5P{5V@pD(^#X2x4MV!Cf0=l*`*R8EGGh+q*zF_GHTP}7?R zNqPQ$ttO@Lvk3#mwD2e~R~tPS8l_fns4`?d^d~b3zYG)&?t1LYqHG9#z!%@e>$FUh zFZ&_~ z?PaJv4=kH|OD&H36_t%q2nqzX$3(@uAu1Hl0jr5ePxB|Qxw6U6(M=uVN1J?VAE+rd z-iQ5I#DXLlPm9{Z9}y8`cwA#zRk_;!gpU6%W`5q0G6u^NTMSH)nBZ$lu6)MY%mc(% zwSXk(oo=mCMT6kUz)x3nDYsRI6({7PIRk_N&(d;#`=^_ax^%%3GXTe5k)m~13SBWg zl@9EtfV*ic42uDO)77sJh&Q55Q&3;-r$pLFffi?_4*0fjE&oESP)v- zZp@#W-s#`}Eeufzbcg<@}9XoGm?Uw*~GpY!w8Mv`SMAFW=FX{d#8+p6%fz~%&W;s$?6GKxYET;6p^`|Buz0+f1Ypd+Ec{M52>l79Je;&w+LrbL(l}$_ zjarl|LupQAy)@pd)JFJe$=dQmjYo26dR#ZF(YHtp+A%Uv9=$m@CDeUr{b0d2SU~@M zxYIm!3R(1dVZo28DTF$W?RHD!ZkzBi(rkazJkUQ6gr-{pSMICAbEzNLg?deI8WTM| z@%;Cpxf=nh9!&;&RbzJKl*U0cx(({ofl`~$4f9AU4yqoWBOztyAS}<;qCU$s%OG2$ zpU>yaqz%nV)*FTmeRid(&Ur}2iOl=G_q;WF2)l9}I5o9J2WsLfSK9ksru3QbD|hJ~ zYYf)C6HCx#>=t!LC{Gv^n~JSp8M|zQj)uU>ikx+8QJRW#SI6j7dD=J~{IF_Y#>NV& z^Qx~8Kn5IIauQt!p4>teOXjq8j-&?+4+gC9bmP<%m=63LC@6-A#RW?>x?OgdPx%QU z4WGGvcvZmf`S(um>eqXeT1vfw>S71*iyzlRB`wQs&)GHwh{cf3X9ag?M=zVxki2qp zbmE4L*Uk~jm(73;WaRfv_duE$wq-bi#Q*a*l;Gbx0UU8-u{-SQN6X`_qWlPn=$IpK}9EOE<2re^4_teUllu)q^f0#jpP}awRVas6a}oG{9dd6v&#}J zVEIsL-YO!83C{K>s2%p@h$>8n{pop|v&*!R_-7p>?!%n-QgpRMj-b$2oJ+59 za_GLI67KhYgijb!7$Wa`h1X0?zBetJVKY9(cq01Oi)pn}R9JXe6J22e8EF7Iv zK;Eq7yq!uc8EF9q7fxmd!B1KFb@)*cF(2mUAuD#?FdbNygK1} zXe5oJj!X6+db59~m(A+|*b8B(H8RwsSt8a(X)3tupn!zPUuKAGvfN4Fg}@iuQxN9A zq?WYY8PJ71Q~klk&nMLd=Svw7#RaB3WS*hwo+=5xuJKdbCSb|pyL9Ul z+Ei|1jyKW>=|9z5bENWyrFUInTrj^v>e+79Jj}`T62cTAvpD(t_b4$uzlfeF%)Vw? zVks%`O+m0-!lg^x-a&4DFnU5cu$j?j=P9X~O_xYl#`u983?rkirl;|tQ8OU& zw{S~^9mn6q$C=B;Lh7zpEknJ>jL)A+93?y?SB#}ISY3>uM?uea<1zy#WVuIM;6pCF z-?md$$i^ie$SZX2mE#LqYCxH^O3dN#FHKv6)?_aW-j(?bn-Q;a>;3+GzTY3ee}T)z#o8 z|6XfS$KG9@z%9pJUwG(xu%1$O_#tJsnZ=C@o#{BcRDSci7ZyraN|w-=A3`6QOmjDW ztg=hZQR`DPCN2pnbH~q+1ZgF@@gk+*=^Z1O3W_u1-%3`tA*~0`C|R7$-B1w|3xx*$ zD#F4KRzISDto(E{`kN{#QS*sr&^I2=r0UsK@&QJTF~YQV6L>%Mte4e^o`S3CRHElJ z(BUqqHQ=yCg2T4cI2I6&9{w^+Hx>VqXd8NKzZ9JceexyL#R0i&jh#y5mKe`m&g5tf ze;GK8Kb*UTPbhnZM8f<|?bVx8<8A#U#+XlsM_F;vp9kjUCP6l#4c<>_#MLm1sw6rq zGUVh{^)#uck<{^;ovf}acJ^%oC5Yeq)fm(fQT?E{(8~cXZ_KXyV)EI#-8rqO*P-PL zH<@`CBf=)<{9MYmUatS(=X2f`W18}wHa0~kH5z|)-^BhoQnKWXv4Dep@OM!Dtow=A zJyU0T(f7|;Tj)PaVUkeVw_`2q)ZCkyw&W7YrZs~O*C%B^- zx`P9z=y!LsR#@IX%T#<{B;Pid1P!Aaw}rAsl7C^=rMLeuETwiv_**ElH+su%bYU+4 zezWk+iHBUZ%|p*cu9E?abUyxGE{O6>L{cmio}>Gv%q|v6;S*603cYy*{-%0k+cPP& z{d;3GHj`X?8?P-6q*kKAKni>b$_=i8z65m^zXW5zL~8KX$gfJiJ56ssk2R)~1jw|hQ z=m=SVFfM3=ds1cWPar4958(?j#YE3EaTOOU!TS@q3>UR;biB34(zgs z;)BdeKcqrMUBJS2zSv??4nm36FnnDU6Pg?bCgBZkM+^&Yya~k&keluxr}12=@)( zEYsw{u-BJ;b3gqWE}%^}Zhn>!Qc=Q%4w&i^aKLubPc^DDY5pyF_$pFJSn`sp(U3e- z*MWpnS|*BKtWxrmQu-OJ5_nX7tv_a{sI~(WsE{$*GnFv=+=cx8rDw(bpi7#Snq`W% z5~KYTRxB7hYJXK7CzTjMRjAnxM6(I>E0`}On48s9x;IN-fzosP2}tYwf0=6Sp{OxVxk3H<*W58#$;o#bm|6Tozt6eWR=2aX+=`=DXR<3nn)U;! z1Zp7HTCOWsfS1-4RQ8g#GsQ#r6q{YnbWBfP-$L78zxG!TUva5D%0fkh#}@K_f**hX z;xy3CdzCTcwA`%Ml6BYaE=NZYWOot8@f|IpzjiMLL*KB{im!%shw`kJfTu*0$za$G z(_lfEtlYI&L~p(E*9Ud%9)}3lJd{=p$bCocfvFn5QTFUU1Xy$B@aeaT!^88+gL9AU zzmb>t=$-#Fkb)+^fQ+t40JPt$lZEdVa|=D~GO6u~xYNb!eju*Mb@VgJM)>Jj&yKn% zTKysXp4eDs8(-!Z>*Q}or`-tVzpSf>Ej+gQ6)y@&EiJ^z;{yH3%M-Z$`hvKg z=&Grd)sud)rSW8NK0axJW%iZ05Mx+}YNGAF?cX>B!&R)&ovno6Bx)(+Why7`7FyrM znceo5z6Z2_Uj`KGX&-H3q3it|HOEek>h+$#ak3@ahfz~D=lq~|RCz?lI(&%nSxqMz zC#Z(rU!24dXh&Nz+Jw}Js_`~8^~tZjYd_x?nB-78;cw{OP0r2tFW&9UwN9l zqX#VYlgrrTnR0$wN^t&|z6P9OZHfFwmA9QM#2-g%e1}QXAq5_Oj!7kTh7)a zxPOt%L!nnIy|lvX5u`(lPOh>o4Z@uCZe-RbB>4w@07lx|y>GBm>ksHv_5}8#AQpWm zbj)4_zUp;b(9{2vwZ(Tji=WT=X2Hvpx@^0YrQ{IljCunXV}-3JW!>mMcj)o210!_4 z?#B}oIsm1;8~Q*up6W^4ZP_6ZZLk?)?_K$phS^R|1eU2Ck2FnC8A28480EH z9qdWF=VygfR$aB@(%#y-8RT}LZ`aov%ld+FP7eWgE zi5y%3oBIkx&dWtf*9i+}Z%50wLHF0Hm;o*FoS!R-^^Ven?V_l&{@_Y}Q&_|MJvO%` z6nkt;LaC+MJ1OijZXPhvTJ)6z6YWNyk-3q4AEKTKz6v;@mUdi?Vegv0h!UD;xvln( zR`Rb2lMI(}3E7AZ7Y;8CHgGwhK{TwGRQ6jaYo8L+AGR8G4Fy3U;qM@Dg|w%#W&a?o zi@y78MIviZ7v@@_DETwYZsd+B(fiBS+1Kx)WNPZwO%_iTo-KKT4K^NntR|F*+9eEy zKC>Tl|6tO3HAR9DLsT5visUxWIs9+#Ug&XiLrR87u+9| zzoI-e)Iok)f+!!87F4x;CgYFkoIOgRz}=n712A&*J(xb>Gre`s-kFNlzVp(rBzf zY;t~UoD=Y9ZZ5)>@V2-(MaJeU@oFRx0Ky6pPJtZ&ubx%_P;~z?;# zrM)GGBEbZhctN(aL@?lv!G3hSy_@lYeiHKp(fei$i!I{c&|;*1 zPO8tNh&|v>4{P&)?~1qcK71JY!YidkUXSBYPvb>JF0arMHaUVJ0#NN=dfwrBk-p5WDB)-R!^ir?S zBHj)cE~vS9{g{f7s$}Re9 zIeVSk+!No1pn0L4@2K|t!RQs2-P%m!rPp%4MjiV;+gOj$@t+)F63k5UK4fyK_x9Q< zr+#`3v=kZ{p{Us&B6wN#kbB3FDfQ2b+x*{XKD#r9z{UM!aCTI*Uo=b%^4m2y$@N1h zCn(2%tSXY(NVeZG&JB8VwbE|TXCnv%+c%vM27*o#F^&R1>ZJ-}W+K^sloTA3%H7_O z!LQRmE#Erxb>&|U^gDEx1?nm$OW(Als z{8Rzpmsx(I#^pGFmx`uXu2ED~y+uqQcuASAo%IZ9ijf?txiqJLCgX&t6-vlaxc6ht z=WN@KUSv0pl-kXIl7q$5(q9~BNA&zyK=e0{E#KWxYd9ehWVQJ>$GCE|+*uPRiXCuh~&wz7?& z)Zyg!3;;-^AoJ`pM7~-b{sztT9Z4OpGdHx1i?=dn6WAiu~ z{@2Ap8}HUwtE`>cN-w?g!Dy=JXYH!A1F0XFr06a=_J*rz4ygW+^9wRC+r>k)wfaCT zv+uHMk*EVEsdLpCvwobV=bkT8{(p(RsBYB(vtGV15w!hTB9NT_x_pM#K1{e>chGnM zpnZpKBO6Qx{e8$beIDP?i=?b9_r$2}XamW)yHx#I4?7hQ6cfHXCeQc%eT>!(;I9df zQ7Y_0PzyX{B-vH5BBu1mz`@`VrcqYX{X91nR!I~f(I24m<_zKFZY8l8qlm5iXn80R z6v5N-(VgwlTq7iB^d>k`X%!(^V{FMw*RbfpOJ^~!+)pYqZM)AHr_zW-ZU43%ZI5g> zQTCmmAyRh2EOH*ht=(FD)lN)?l;Hu7u9Wj`EBP>yRptRx(c$>Tey@5`&q%rB6S~%< zvTEuIrwL4`Wb_KTh_8$>MmFjfe}TT~f&R}V*73PGw0ZLC5RPxWdZY8S+vfMQ*^oIA znI4w{-36YPh2m%8(x$*8ye&7Na}`IovXuqHQ#M`i=FffGZjxFCMwuYv+VKWrDO>YG|V-ee-551m)zd!VZ zSUNB2yAVr%=%*?~laKnNHg>wP3kD$UXKLi)^O55u#)v@B@r9nctlKv9K zcQt``%CJ<-w}6{*)4}%)Q|ZZ3-8Trj;{pY&Ko0j{`ACs+gWlSbd4jx5##)JjJ1U}i z+?5-^`M+5{vaq%ti2$!AQ{`Th{z5polrYev$y1QZNEjpKAB#!Se`rc*TdGIL_G!IF zHOzj86`6*-&dPqDpPgX*Aohc1w=GYsLgk6aBY>#c(XW?vBpwVCn@8yz1F8#FK% zdNk!Z=qJo<&tV#(`M;sQT)P{eBJ+xfs~k0~!!&+a1F-KcH^bNf<>`vZjfX$R8RCQ| zN%&gI)3;ri(;CUqo^}%~|4@-5>2jKH!b`gixAL#(y|eDw{=quq)ka;-;4p<{c_GB+ zLmiTs6}BtVuKT#y1e7AjcJ$Dp&Y{DCf||mhM6ZMRBkF?ni1Pi?lybH%Awx+~2=--D zKH~#!8c!WZu0v8ltAopYuHNW0?Y5+uJ{$6B1?Qq^E0aeJ*g19uR#7LU`zq2nCZHMB z{NAYozeUhTnlanMj6#rSc*X6+d%FRP#34rat&4+MlTaUFnO``_?WkMjGzWkq{l!YZ zk$de^HWNFN0Dd#TF8G0b;X!%^fVyzoR}d z`$bY;39fyC(1{@<2%Y#n{MF;VjwmYSXK{S>(ot~Eq1?c%C+fgBM z!lXD)^<@{Hpl_X$RV!##SHORK4@STzN3gnn6MXTSsDI(-{1WEXu8;Qgek5ahu>dbM z6)fp*`ePl$PK2u8oo6BRkY5`_=B{Pz(p20ew)kQa)rvshhPqKnQAr=uchUq%~X<`G}*Hs@JDlp zwNib=-&C+E=K5zt&mC5;``+z9ho>>SZ!gv9ADC(9f4`0v>pzxfnMnJLeTi8a&J1Ab z%fo|`(s+C0DTZ8QjXQ%I9PMc%A6t*uEjPW#r(C(0hlGxl&sAr-EeBVD$RA^AB(sv% z&hG_%soHYZO_h8fMteRzhmo9@SXqBZt8V+a1I%(1#Wr!uVIIi(OKU4xtKpzYY?oZ{ zv9fZN!~$wEsSMedW4eOT}sybuT02osyW? z^NG=J>qsv&iuF=FAv&!0;MnAKV(>Y?EX-dAvly1*f-GjAb?v8d5*#)PiT(-NuEyv=FQlyLxj*PuDf@NgB6xt6^ElX zu^FkT=>YNPPmw)WX%IlsP$#rUxFd(tC&Wi@1-ovk)}LJyZqgecZM$;C_XBHL2bXTp z9W(?nUQemzqCev3Fz`pPh5m>{-Z)+dxlYR8gk$yQWlhIGB;}m2m)t383Y6oX9D+pO_7~HHLjl zSq@{sTYWG5BFrxT(09q?ZAsuQ_D=X!JT>sgilY}pf#Equ^zfAdZgOY=&5WyY3XUfl zmc=ot#;B9q(n@2UM&5V8iy2`1%`u4QGY34M{v(~MnF~6kdP1f z`LtjDd?W|#fxn%-CN0NTrSWo_^?bIX92VgSpmW=Sjj-L}qX&pg3<99CreY6`x40fH zUU0xqry2HZ(z7_a^*1-l$opevh{-|5^$>!T4~9_2Q_J3n#4@mCxBs3%5$FkBsn67v zpO70*vh#>a2ndl)w>xuQj#gdvDn2A`F>C-`sP=93eCdbNp$C*jq2g|?&y*>+l`ahG z$q#H$7FKrMVGrKLH6@(so-5Zqs}^rsJ~D&=srbG(h#p+HnoE@4%AvzXO*Q&Q0%BHb zow7O>)p+od(S4ytVy?w%ZR8l{rcfhsX(npA_08kwkA|^lZ%?kATZb{dHOJ2*m3Sw- zP-jG09buV7{#zo^Wud@}!*4-n6U`LX)reRWo|TqO#%N1Mn-^Ehl}{96e&M0QZrP%W zg?lK|I~5VX-y~P=UDwMCP;%!GAlg8G&6?K}c~iM2b58~eOrL_ORi0`5DUvt%tXtXV zQQWJG^ue>{yyn8?ZUGUCAGD+>m@qvj>% zebkb1MbRJAa7SX%#Idum>K3n7+107a+>W^x*lWQ&a*Q*c1JBw`G8);j_uvb#brZ(; zI4m_PyBwAmW3KN-KJc^1^RK&0Uu`aercWAR`gG~v)2Gu$5{*F{jzUYMehVesd4w{o z1z8-S_|NpFsVmDALF88p=1NJ% z4_gFZ{$-SqxfCn-)g`L<0yY|aG6{~Yv2*Ee=fkS=Dv2u;Hq2Z|xgW~_W2XdKd=0XU z+ZpgQGT3#HQM8v)acP4%*vDJXd&*N)WOsk$hs%7#m$JBp2|8aHAs5t4)_U*D96nME zKJ%bFd?}EQ*|PuD-$-MjuShTbsD%mo(6n{uif=s7g1TO?q)fcK4ukTJ{%5+&%;a7b zqz1dfNj6N+Z}+FaNvXv~FC(YOQ=x6}i*kv53qr8(l?(R}Sb^%E&$!KkQV7X0)jHpC zyv>V%Th69nlN1D=D?yv2zVz9=rEHY)zt9`1C*HhflliX*t?0lTcCf+)Y3x=g#q+rx zxIA(K40aV{h^j{kAQhj3gU8Z`#mCa$)cH&mFRK38?2+>I5ByXXHYeIo?9uBMti9Sd zljNs=pikOCFLDpM!C&EoSvZ;*W!OmwDugfd09Vw=0c##dB+72@Ju!1HP=z=2LqwWb zPu!w@@j>x2XKQ2TzGQ46wWJ4DyIWy32Z`P)&SM@?hOl*QJm%qfhnE^%ns@JB1^nEF z{p%X1Qt`hXN6YDJIAtn9=-Y9J$-!I+?o2`GTi5YCq7?JP(@V%J*9SDEq{0vfYO)Hb z3|0h+1pBB(Z9k~ObH)KJi$QlZRmR2z-Lwu3I)V3TX}{)!)gP))M50L?fFxU-Yg z2m4AFSo8aK#4Px(!~INJlM6$Cixv)51E>Rpgs^enB#sNTz%&L`IOHkqR6s`V5+3Vwy`7qFzrfGF9|$V zCWk>!v~DNpbd=kn01zu>QHuC9yr~OI&G&LC7#nPCEG&dxN`&xW!HWEY5}b)a97Z<4 zi_dBqHO>Gd+?IK?p8<-Velupsv&p-opL&|t5@?0;JP6E2yQ-1>!(SO{rlx|G<+#yb z`ID9=SXzz#yS2>Wo0-Y-=mV`R(-zJJD*qby1l3~c3sbR>d{IqPTp4wY;y<(Z8~Ixx zUC~xB8W1xd%e=HQ^*P3IxlA;1W38PF(R-e<+5Y_2J=bd@f~4iS^$+bdl*i|%a&U?+ zWs>`qyLl<(h?%eKMh+C=t^G93wL~oxVICgjhB)=3Weg~~B!9xPoR;TG=oz)cp}5ub zea|H?DJjN$TCn~KNoBuyPK}4B@hU%9&t3LXx?ELCd={8u8F8IAW7!^-2IM*RT(>S* zf6xXkBG^69Id9bIDwtL>+c1iDj1`SRo_mg;2S+D=>z3V;;R~byyWS3D`-e9>v&Gu# z7!@v|S`RjCge~%XB0q$=T^#o?4qjVUfP?KIDX)%K(Yh|%XF0y^n}Uau8jN!ova(dh zT*g|O*XnNzy_YSjjQu_WzTV{yKN_kx-tNm%fmK97jRrk5}*{$-Uhbn}L_coAt z_nHSj4t{aSdG(H7pQaJ$3W|WPAgf(bXRJe4fRZ3aC7=#HS8?VOjiL`~@7pdiTQ##2 zC}&3a#$kpJasX;n?VdGveU8~r)EmZLqY0Z&TDSv$1Lcr6;sv+be-EZ_vd$MjQT8GW z-tW<)88xHe;{}D^;*`)E!h~VXY&+C^_nJE@P6h?2@nvKwOVG#N;su}Uk}i$r!)l}b z+#2|%F_Z%A{nqqp!#HW(7T@lwa7=DfIeY|2BffVx{0lQmwF-aR%Qk!poLB3GrNPz6 z(Vrpy68>I4r18bgAK9UD7MDV$&vdh01fVsD3ch#Q*zjyLV~IT%eABU4KiQ6$c>_97 zr09A_qXxn(6&#@^BCDDHE(!MlXu*(SmG-@$lpCudvCI@2&)x(FX^dyC`#E(Uf349* zr{XY>$fALc>&CJFzLjdzy?p;3CN+obn3bRL;4Or@W6w-1(y^CH8-XtZH9(y$r=FG;~sWayWlVipAQlG~CQEewQpaAA4_n z&W)nDL=lEi_#*pIwVHygX~RqvZG zb`o%WL0m34NQx;}+&Y+ zz2#mpxf};BBllOsQf=*;&s_BN=p6Rb9=W20oZ(9qTafEYf*R=W{JgQXom|=rDM_eO z$d^MD>tMtj1Hn?_k3JU(%V6hsRLXP7Qkjj6z;SJorEwqC=S;6_hg~ccNcQ##YK%EK zJmh_uGsuD3hrGfEp0Mq8IlSThu<~{rC#HJT+AWwRZ!$$JZjbvH6l+4FN%6R zT?l4L+h>=KlHJCS`Fwm7^i6Ujs=Mx5O`C@twnA!HeKj=>S95I7w}`pBkS6TnVy94p zRTREQx(jho&#F$E;|c{r=Ngk;Z5<(1n00#o~w=K#pdR#1tgp4k2L+mVi5-% zuatZ829dt0fw*!>FH;pv>Fp7v=f$B#BxSCSYuw165v}r&VqpNHxYW9WCyc^hFJrW% zPe0xbEG)Z|t-_!vJnE}WZq~|8-TWX|;FA#OPJuoyJeslDo*N6+bqs7AVy*Bms}hcs zu4i&pTEI+czy#yhW$O`uXwYMldjYiPV6koQ(NKi5Xf@F(_4`Fcr{GL)S&{Oe!IFE+ z^;a{lC|EDeDqT2O>O`Ezq{#Kki%nH-_p8ha**Uvw_>nzG#wC3EZ64rDyk{j0H(!Pm)u_%t_md0IU25k zqp?wp6?BX_Gv8a&cjaAO$}=0Yx{9Da=99o@@0d}M!N$}eRnM`(p^8)9ak|X71vbc* z_g+DHzvKEB7M$`)Sof;kG6>ktJ^ITb0or#P%tm^O` z9Cx4;*)THJHnIQ|5-%1u-d*UH z-9t#fRZivs0zt*k*dRTkl7mJbE5jnDS3tK1^2w-e{CkE>4r9vXAFyA5@njptRG zv{s=uLls^8|60+Nlf#9wv6wuB(zobzF2b_k{4=|?jAD|>ll8zWn|}<#bHZ2k^_>0H zuT_5~Uy7v#%|>1D&cG?3h5Nq>p#&MQVIu0YAaq3nl53?Qf+=en*66K_RAjR zL%OhAAC_2qcYx7SUDfqIXgphWj9{~q53;)_|CQa*lpFXrO#*$N>yPMC(XEn!tK|?XPG)>89EkbLC9Fd}|_2r=P)OyA2AehDY zLDcQZ2EEtlQz88})0A<;37uec8RdA$DYQ6S>Dk6a=7ms58*#*2bkQ5}&^op-zhKcC z;rA!LlVNt-vLC;bru9w;%@N^D`e4JNIikCpYCibDZZoaS_WL%K!L04aTHu@VIVCvD zvh6IWM`#auBj$gqEo5jO3&*{>*zseDBgxhUNg1qa-VH(s*OU}>ub1Y*D~wxh!mJ=( z&n~k?KT?~@J>VFKb4`h#^fFxj1)_+$AerT=UNRXP*>2dsrwk{f`wd%b-+pQCvQvY> zbbk$ty?soPWyEH$i5EjkcW3V%X4lApL-p;pOWHbg`;~dEsTB}t4&&y{*5;z#2F=9G zrArk-Uf9I{@WSQ>zJb3gjqbS<K_cH1mXqeo$`^m@?+=dE=K)V+z?{ob?D(4&7+uik z-{z-!@1>W?!_XQk%Gifw{Dsp=T+_|Wt>QncfiB|Jd8{ylm=m1^MwXRvm#lh|P68j_ zeHsPi5Y76qMAHM$<}r{7_I)0BV@D4{L_`yaXp`X60Hz`t}6 z1C8lGeKeO5k3??x_$2ZQnm3-5u!ub@Y<*R}{4y}`CDUGvVekI)-M2BF$uN37J<+1Z zH(fJZ-h&>(KqcLCpBl{6PS#yFwLZ8rA&WavX`w|%(6h4k{px+E&|#LyQB1?rv(>i^ z2Acq31VD&3V6QjY7>iM8HhC#O{qbKC&*Pi!2Ry&!Xw_7PBHCPEXveY_!*ItM1N65@ zD9`g8h2O=n-DP!LWSYw!RF;u^`TL3ME4?an{QWA{QI?L)8VM2?-tjZ%uJa8qQTglM zcbHHSBpgVqvBL>fyu%0P6TLT&|0r2qxg@>!%tcji@B>9KPJOjPZRHV3UrX(UGs%Bl9Y@<4VAk1#R&KX0m!%BNYm@Wb zmI~uM^;Rv+numVpYg5miuXm^?#eghGNbrm*M)}w7S@!#rZpI$~@M8Qzw@*jle!p>4p&!O?xklG%I7B zH^+cmdXs_!AHe||?BvDDcUeLmR8=U?ETk@yD>coY#dzYN12<04y z{-lUY&Ws-u_Mhr($RYg^kbxzc-Pj8Mb&%JJcHHD&L|kU3Im{66!xGFR(7U;I-EHKW zdP13CUC_gbfE)vS>H#(Fb-p{z@d&Dncvr7oZ&V~#TNpj;sPhHxl@}}t3XA^R|4H6t3+@(BRJ#rqlVh>WuR@^kW zuuZV}+UiID^J~vyd0ny1;xSs0u5dLnS{`hZk{&n+*~1KgJ*;(~IoKve&Xb$is_ixau&(uY~y5^ z)9%e!LO7mV*xmdyiA%N#i-n%3L~y`dY?yYPf*dknUDaCNpCDx*(r5BNu*f+&l>H{q zF#mSgsGs5%F8j!l#g!a3|FzECe+Y@*}up#{J z|Fe>NZ}xSTgMcaS$Ldhxdi=_N&S(qSr-1(EhS_ei!v!c}9piJ?yjd}nA}?ptM5fyH z9TXhM@;s=Wuu`yp?=qmVWXh+De|8p&z+@NMv_B(L^yrJ6}9^xI;$nUwJlqXR6 z_GwgW^yZzZ&0WnZO&PZot=iWPP>f$$vwU2~yDNVHU4-F7nWQSpJ}J)~&!1m$?XnbR zclwf`oeOC!8&jnSEQXVDG|c$u;Do{hb>rI|G}VPaPFM?(7bvA8YsF=2dn``6nbtW- zM|K|G^#$Va{(H!TW6f@u9lgLgjs4z#>G-pxkGq&=PT~PUfgp}hHH|Pq=WFqp3poe_ zjO6O2KiY5i&efVwA%ZA}CO5CkUbVN3dl|bMR%rV1Rhy!6ia5rlV{DT6wV?JRYjcQb zAFI93u-^j`7>Of)RL(OsQtO{a3HqM)XGo^$MOK|G+g4c;WDxN&RMNZESVJ)%;vM)< zI{tGVRM1UK4X`d&`b0d;Hcz3E?nP30+6L%gvqRI(k~@~JaD(E!mP5+BvR8*=jOzri z{5_P5|D<_Z1f4`+-UB+=^qT*d4t9n1jQ~IrJuoU=2&Vd_wUu`$di1Edw2X6wj{=-ez6%f+{!=8FUXl@%t!2CPHeTO+p^dK*oC*IvM#{W{_==RhJf8xE5QZ~?Q$u+{1 z5T|}wae}FlcAJic$RVJEZJSr^e?*Ra_Vu1ZT;z##X47b^T5R?V4%+*9M zgv!oatq8#9mJVgD{G~59XakjVp~j#v%3D3xW#dZ&?pMUL(LJ~>V1-m|YMjh|7>^D3 z`^sAk{dbh-@;k~qDp*9qfm<*2%IgIKdeJP%8#o5=T`e)o<-2iVt@ekc2m}#)otCj-taShg9AGTIgvq1JS-{y8FLVTcDOj8-8H=dl2iPC4lK_AheUzMXg&GRWY~bY%(N+y(7BQ z-TY97uFQt5IMY0l0qT3}8`ICm1aD1n?Cf__?Xvgd4f3PEh4A?|@|7dJxKpv1(`;MB zE!P|FkXf%4fOsEiAvQJXO_-Y?z=M@e22(THpdt7|?)6XzCn|sZ(*TT797=ZFGsGva zf2=Uvq{_|jZ7pDR8+Zgw4)GL`cBEg?XCCIN_av}4Oqy^nDN=cRn6Ay7V@Ub=WWUMv z3Ne&~#sP=&Vfdyq!7n-oIx0v;uNH)=m7yJ^BO?-*Tn>EudG`$K$LoNQe$Rmy(sG(t zHfj&&13mCj`~x)AFkt4#(Cc48Du^-45bsogFug;B{*&IFJPFdfvX)I!`f^LDna^7{qK@BHI?v}H5LI9w zW89l!L9e3+*^kfkSA#35se_lG0Rw+{8?RPm3o6%b5}YMxc6sIJC5;6I_r|=|r_j78 z#O2?gX$vkW5tS)UBN;+O+&kFL_|RNv7zi6aE8qX*26KK&R=xHB(Iell0J|4;HxM!` zF9LY^8ZY&DBDFU4@y3dTJ#s8d#X620xRQ`h*KVsWyC*Nvu`fz$n848Lbw~Og0Ge__ z4tOKoiuI6h?p__Bs35j*x?|lBK2k5jbBZ#zZL&qCD1HIlNoVOMQ(G`isx$J@2_)}_ zqPvF*d)70AeWeu8vnBrw=z|G0dl{!P`VRnY#Qy3N5O@ciMFvxTO_OiT~6C(J4N!42+x zHmO73ZyaG1^`GVlDkZEG_rgib6-iHk+$)l~C@`QMj|%ji2%tX$r7)>^xJv$1izCu(+ep06o1NvpE_mow6e>^WTKR}k)*t666-R7|Gyu<{Gs)0* zfkR}f??TIj$mOyxV;5k0LD}>`=l`I?chaS4GIz;lAi<-}bL+k!(`(ICB2Otb0$F7U z1cqm}-*Bc&C1$V;aESaomc}tEB37hnOh$qii77_U<#CSi4Qx7|tlO}`$2~;^?avIX zv9V*d(57l^T9}p_0@FJEh3Z#JHqS1vk$*3tBy@i}y1r!}0k`?l3W;0tf5j6xsuk^t zu0FhxmrYa%5%(Em{Msc!#@d#UX@69FbcDD+s@F&u^qvXX&ZGJ^Yh!d zUq*i?4vV(e&J3_j^C+-Iyau)i&D@>I8O_B3xw&;Jvch}O8{$Oe2+HbzO z_>W%$in%LO(d6w;9(@H{9`D=kj z0aRJq&3V8w`>T+=q2i*y#?Ou_RTZy3LO#EP>G%!~M6XVequjDgdC-}i=C_$N%u`8~ z>;~9FJ)0yl_EVygA=v$c&Fe(Pu2f*;mJk?6s`*8jI=qed5akK3AS!HKh zDCw1WceiIt!tZ4?1vVFv58afAHbAMTk_R4--CfN%tNx%z+Ow(OUVlsbptagD(K~&2 z+PpBc>sgfH5t_PaCDFpH1E+Ka&f~E;`W{gmEa1 zU>|4xnJIOHnNncfe!8KDz180?h;lQ22guH9gXz+RBOVTu=CX0dZlf zLR@NgFcb*NTfE$b(pPa;q4ZU(&j{%quM)Towu(3}c6^3Ecl`RG_r?<;Yo;S-qT2!{ zsO)PbEi;sGL_6&Ny7#5j#Q+61egD}_LvN%k9k{P&h|#xYHCiakCI+1k9aauMeu1oh z4yJ_Zd1D$6DfFNZyDrDvlY%4-*b|V*%lp3m;{pILC6oglI9Gtp=y5D9m3d08gaCYc zpP?=Ap+{<7DslI75XU8Fa1?Q4n}`^(x5O0cL&J7LA5&PN})LRyqD z1E|*g0l8Mx5;!o%%Ua%0O^a7k(o4a2kS{s~z%)e@FRZ_y`eZ_0_v%_$6Pf}qA@B~X zTRV%Y=l3Har{4d#lg_-*M|95Olv)wtL7y|4i~_$@m;Cukx4dzo0QRsu*Cv9$;u5j3XX-=|@7pDbiRpp@+wpaW zGQ7cf_Emss-?r7v?beyK^Dk@^BQHg{@BYc*?k+*|x27m~n`*-$0j#k9cYECXj}UCD zg9L5w5u9`e*{k!0*D`se`xv*`R-P0PwRO7?KL_R{#5Py zy@FSvn>@i=Nr(@95^XQ1_uh5eCOv!omk=L9NrCY!4@IkpDRF#@LU-R5-IUp)j{tjTXmeXfUuS)JkHne{ai?doZ@a~$7#QdBmtQuaq6ykB z^47pETxzz`a&^B~!WfGQ2vUms%ct(sFlM^HoVPa*+Qu+%!xe?6Xi?R#602yUYB z{v{Go1x)sar=_c&jZrz|`Dn2&VM*!TzDLp?7TmRa*-=)7e7RH3*}G>w)tG8K|FzEP zKK#6(iZ^x4;Igu(-CF6HL!(RK!3Bb2628a0SNZUw8Yk+a%9k>`_f#9DQiKv^Y>F~9 zbzGUbHliUA5{_$}mdW5g{00WIi#4Tw#rznOa`1zkj!qw0n{qZ8qU|^r!yDYYY>b#M zrboWM>HgoDa6?d=MSPv+%JJHHyO|R!ZHJYitlnR8MTzPHC zH3Tu>Uj7}^i;Q?QeDPdy0+3OTeJF; znT_)1O=t7s?wWGFoAq+_5F`g`NM@JTS(nft1CbH1!RaQ$wXx*{xQR3;xzXI?^Ne8X zNqlPzu_!iIa2VsxwapJ1@|-&p1}#NfYuQO|@6UJ`I2bhxuTKEbPzqeC9J!&hwhcb@ zFfaw^^jt^wN^W)$pfP!D;{5c&6A*R}@@>J|CX)skyC%wxE&^@j4YYgaHxT~PxC?%$ z@7}OS_%3>@$1_o!K&&V(v65G7WCGi!s$wE*cNlAfJC=lg>|N+$h0>b$MZz=^g1n#Z zAAKLzacl-pD8W1&WwJ|x6|8+CdO%8N@93AJ|5d&B9H|rAyr5sXBnc1u0jN9e(FKQ1 zkjw$kkYUX;)y}yicQKVQ{Uy~Vyj|gKYxe2o^FvS*U|_``_6P+qxU5YXY?%D|BUn8{ zLc`}(&e`eD66@hMi&34kYH2tHeJ^H&&yBby1+4w)P*$h@udEK-MvXULVQd1YokE0j zZztp_MSrQL=~KX}cNp@zf_tdKWll+@8JPwftT?2+3c|qy|H^j^#T`g|h*qeHu$uBU zUsGta>ACu)JjTCvHz8l$A&nf%-0Y^jxVy;_l2JkmqH1FY_EO8&pmZ+IbQdH6rHIK;{|L8~I=v=bG^lNq_4_k1Hu(<64>03zkJ^p+L#?Lyttk zN9|N)u{>aK;28OH_KcmH8#&glq4>kIU>jqC*7#3a)V z7moMMfYo0l8F47uc0Tm&6~9Iwf44^Y!2%oU)HB)R+W4a6RUYWYE^sr0)CofwGbR)0 zq@A{pokZO@f_!V*)OY9MJ>wN`&wScgwzX=@$NxjuyZAHx|NsB5>QyR5k|?K2rGrQZ zB({`ODI=BSu!N*Aaz1QJ$k{51a#&GOij?zd5f)-OpN%bsVP@EQ`#q-KpU?aE{r-Oc zL0sIsKOeXI?RLE_c|CoHbKu`+zl(g2wRma+nS02AG_k7ja1i%XCcBOK>~R>>1LX=2 zAzOFxjdlcXza2|3|D7S_jQ}Mx$eor}G+Tp-9sH2TjtZCT4$ax&ZsT|-pq6LEATiqv zXH+svoKjIC-?Qo;Hcx8Iw z9Appg{hd=^xK6$~F`b;UeZfSzn>{Apvo&1y93`bi`-ox96WJ;KaJ4&T`?L9bP>(0~ zhdH1bKR)l*U5cS@l^)@8Q5_t--l3BNGW99xR5MttcOnZmuAA^I92SMNFWH`$TuI79 z=v`UOc~!i|a#VAqmLOZRROdlbF!_va)M!n;8-o7k!&F>0p7(YQckYi(h`Icd`0y3)Msz-^ z+Q=Q@a8Om6Xv=cb+e&KmNN1Q4;C-ze?gQOVATXO$q@p*7el$YVb6>LBTNk)24#G+A z&bUMa8>_^t$m+_+pX&GnK${=FWRVEI>$D_{dXZPqy# zygbx<7qTRKjrz#F1^js0c2S@LV8(F>-Kd!;L6iTLmvrzjA6eraH;(*xZ|ZF)V(d5V zO!|6!EJ0e-e|GpM6YrJ|6Nk@98y{|L=YA4Yq!_c6stCE(>GuqAxZd>KszF7UYkv;1NKsj6dEFV>hl{{TDTe9K@|!N(YQ>>TmD zAUnou6z!#WJ*qwcx;vc1Ecqg8lG%>WyBP%Tu3JiW z$h5i5Nn*%1dd{*Zmy{^HkdZ~EDh|eE7UrV6JZ$CllA^?!ob~a~YPP}jIT}h)mX3#^ zpT3Trp)stK4fv^W4#@{y*U~_UbhDq*o!n!77U^zKX|s?}#_)JNc4D1{yoJUK#5Ml4 ze5X;<-ztZ^oGCh&sy6<@cc}il+U!%^>h?i{B3W|s({${Q<`4O={k9)JLHoBE#%Ahv zRZitumPUha1`Ngxr|wb(5#PyaSr}()o+PLcB)PglAYic5|U~UC%y`@h_H zEU0*6o;y$hZ*)&gXBRQ)?1&JF1=)!KN2Ni>F*Kc3}0-rqdYlrkG1 z9$07X`^x)PH6jw;tj|d+n^Wy^`-RD-S^79QNAn*o=K8uI^6w2wMcS$zCuA=rR~+}u zAwF!P@he1Jl&$Ts;ulh=dJ_unD3nq#ymTo~Vgy)x=6C5Au@yVbjI0YE2dC912e>tw z1cYW3%-+L^tZq-s|Xh=>o06KgS0UfSjv$CxK z(4pt5-YgYHs1?5wvlw4?)O<~2h4&CC=Rp5>nqulgmBqSDSAY9+0h0Qct*vUFWVZOx zfURM?6LL$;^(6_iip<(o7QWLzh|?J|c9;CjZ`M8|aI z0@B1)CVQku7__)*|A^}T`>h447U$J8&Q#iS&T-^vn7-NhgOUVM{~slKDGcU%um;Abm5u;iay@9Ol6@w((;7ss@eb zdF}gN`%{0bWNiln!vdVWoVr!t(i_s+5qk{RN zIU0C?C^PKVPo3f@dxVy^bCXo;ENaXS4bGvOYjY}wm=Ar%NBn8}tM`TWa1YL>_JY+U zAhKhQ&Aw3?ehKSO8-MNjXi#-dyZ4|(Du*^Et;%9xWY~-1$87JNBW(3dlmq5>T|0@S zG31eM;0W*3&Gd{@9kKR4Dj?TMfw~SNv1jD#0n)f?k5$AH6{1CZo*YAzVV#u7$OpED zFVz#+ArZ!b^HA5Gq95m>L(>^yD#<}e1*Q?+mBh|a4afw2Pb#V)^+);Y{eEY=9~0e* z=Bg|cRHw!#7{#K(Gnu#CWoA)1eVJQ~hkZa7Kn_BI%rF{e&$_gJp=mrt={d?~seiBn z+>BC{-x~3(^#zT15AntxWN)XL)6he=VWD?c?Bm}jT(^^R20og)pwpY#zghROM{oGp z4Swu`>&lG>UD4LmSZ(DR7yS||r)CM|#amX|#e&_vLN}!Yz@7;=i zfzJ9j{_6&-Ow|sGAdcZveRbewMNk3$2P<$|C7m^u_d*M}7_3646U6c+z3xFDHc;xd zo*!3#(95mVtPz;6)v(0R3ME$6G!Y`(#K(^#D38?|AbwRWdE?0Uyv23j!$v4LuIDf` zlD1VeI2YOHY47PwH}_$Z{_^i+)cU&)n%lj2YL~sFX_x&3A$u@}WXzE;S3VKBf6CR7 zJ9y8gTd^zZ%UIb!0?kO%Nm$17MQg~<_vVTI22(jACUQ1>vSo|LT1q2^uDhz+b=kn; z*7XS~?~+%Tbq7$E6I8@b{od>=E0ZF*=R3S7arfOQmS4PQBF(_iKo5DXy~RvKX!V*J z^V#Md_C)NGx{+o|^;ehSZbC!P%B(n|Xv%PC%$Ls|8qe4djLg#Yko z&p;tAIYY&Gu|HBGpw{_%%J~JroA>{e`AHW&3);+RWPm?T**sq?2_8pVy@`WF-tC@N zSY_KihNq3rC~=3KsFzc{2jy2v0)?9$xQd|PqK?~I6ZXwS6h(@D zl@hjY-eQ&G1}coXR1oB+Tn_#dY~r+t6Y4_y$BGryJ#1eIW3vff%N|Eyqt0hk74 z$?G*&Y47o?zR+!9g_*~cYrT~dIG?m&CF0dAyUrg)Vt((7TtZUJbZ^^eam@7g0Z9Lv zTi8aR$yLy(51)3X8yG_Wh9=PBw(QN!5Lu7o4Q6eWkdQ0d%8NV1a;H!e882nb~ZMpJH}EX6TX~TZ~VP`C@lRz1YbmQhhQVX?jrua^_6}Du3so|KB#fQ@%;1v9?M-lu2+$oYyn&*>(LDui8|)`ic5h6c@AI%~vdleX%-sJL&`+ML zRBF#YtT^o;T@78_X7xUAR&;*FVTotU7S2m1<8#48T^(Vh8wZZV2aywBp zQzYw&@?9N%@la7|%)UMRW$v3VNJUEVG(fS+DyqrHS-*DtI3$A}Mr}RfGkf7o#!=1t z&PRO;kTvs#_P=XAU;xFM`Uk~Yye#16|E?r~dg#R!6szqDiuEu+u|CIF>xp@suCm_) zP^>_4fU*1miuJ~SP^=o4QgOV=*yRNs+zI8hC! z&E%U6tADv3e~$mshSK#u-8-D)&)4r?a!B^JsF}%#=e;37vgVQK7fKAP9zR;(ea&~q z^0)_;)H^?-wG(Z5C$7*QnfnZH*F&gD68d9OsB`U)_Pk^U$H!xO`4LG61v=ANuaDm1 zZp{2I6l(@Rv8Js=&)2p62gN!lLb1wbd6FToN8VB5R5k7`IG+--+)FNn$g4fL{h*v) zA#CJ#ELqp#8_W_(F`jX3*Uvt%^Ao>eTq5Ib9P7MteAen|{m&BRC>Ty+dd;OOSW`uL z#NMXFUpTJEowN?u8`u2SvbT9Czy^D4<8y^8k0pR&ox<)Wb|E7!e_XKG4l0>yxn{LN z5AcCEyyOozMsb*|x6|j8r7U<^o0L>T{dZmXftT3xogAQGX**+OGSM)7k7v759#{ZM z$Wt-E&!8K#MUfO&FdJFB%W-34J`N?072dd?9jL{-i-XX5nE(VQ(-n}{nHrU(W8l1-SSsxaq-B7H1Z|pau&wr%nZXrvM79xcK zsGS#74}}GF;g4mO5$#knY45{hVd;~d%2kw)zlsHYSgM&JW^K_1#r;uD9@ig5w>P>f zYSNr-_4qX@+>BcIPL`7AIe@r(B;iKX64{_JWH!7)Nfzu_vhi@B=}#wqoy)Fp9#BhLv@J0hx)r1hVEUI4SSz|bIU@w8 zt_Esk3|UrxJ$B5`)HGwoE`DxKK*l73p0FVL$1b9E}= zM-Qj?{V`lYPL&gBPaDpPQ&Y+(Du08r%jZ904U_!zE>py?&vDMzsIs%k*pXcMo9-i( z!e#cs@o^HR?wP86CmUIuH(Zg!;lJ77vg9+LsOjAfJ5Ie#eCsR-S)FW{o#!L$9#QPR z6s(|(|1jr24mb_d64Qqot=vIaqSVI@RZ){Owzrjes2s13jlVUm+U=b$aB(cInL!`a z(MHARL=s{GJ*>0~1?xG{55P9MhVGm!mv~Ed0vFe-RWEl5)w1681ir2WA9)XQjxJ% zW&a>V^)X-rxklzmSc?Ec8qPjM^^trJ*_Hk!sco>lKY&%Bg6#HH3VJek{Ccv9nbs#1 z_^b;|F>Pc|lzIbCDn3*eSm^{NX;miRqwW>>sB?$ofzEB5UpX0gM0ma2?~~!HK~di5 zyUJrf%hRUL-!_ZU8IhP-lETp3Hsgx$smI!i;V#iG;(>EDo$POe-<2osHEP=-#v%N! zIgG9sDh6a?59?kO-~XLhL!YV=%vs|kvRfrMNL3CH>FYJ)^LNFg@$hRQDeLS|vdkhHK@n&?e!aerdw zu7lfh!f@{&6v@}Amzua^3hGwyG<`)ELRiFEw3$Q1;C?lf$ zThxx4(H4+1%KR*@=ryerSB<6Q{8TZQ7TsJ=|HKis6(nbkoP+i469;839(m3zY^w1JVOJKlU5I_jWA&}~`ztI@HSA;rYgY?FM&UyfbL!Of4y+o%iooVHN~>yi>0H|gB% z!h?Rz0R{_1hMmqu;es)kJUv+&2GlPVF6>6}@GO~#%N5MvpOb_Tru4BM2(muL?zOHU z`CD>HqO|HM(7!ZXjX$L!@obF8%*{pby^mHN99lx#@xTk_fTx(xz-PR9^DZGlL4 z+|hSUHKBm3F^w;i*BtvZJR`E2XblwjZ3@V~r>{~EBA-JPl zJYNa8K?1GuWw2=0_-!NmiN*%!WCv*mW-r4_*lN!B!X@3+6qGT;f~K3od(k zvg8V6Ym7{bv6Ms|lV2ulx8V+i<2Pb8qPH%zb6+dhzJl{B>4nNhk6xa2uluKjxhHFP zJ|u5)d|ztRfmCgl_%@B*rx~~%;ajHfN{yYLc3tlmfJPqwKn;JAww+#A)rbC~-xekD z<7~rw2O!PS|IKFG^!MbEzhPous#G#(Cp-|MC^;+>M9FC;pg27-IHMjbJUg$4kRBIn zmyb!BIBxpz{)?ZWI9+1w(rS%8(xD4Y^D>!(d@@)(7`A$}uOc6#6@*z%@ap6%y?4(U zcoqgbK1wRTkH9gNfELq<+IYHA%u>?mB9rIHI}NpbSM9sUspW-Sr|f*ah_0%))nZIi z_4=ai3mEP}Z@K>rLB|77>;6AwIZ=^jio}diF&XH`fljl<0c!uhlH7A0N=ha!OI;D# z8c!`sU><44)5(FLL~9}%3(B2~;k)Mh{nesH%jVb<{#sC5#;{b?3esD`f|!#E&s1Bx zpkVgbalG_1$vK(}aX>UX38)2Rdp;~fc5sInJ)&Upj1|**#^yA1Tw>T3vG$L;4dp1E zq-a(ffMiksu*+-6VgAj#g+B|;^^Rn(O(HV=c58;~%(^)nflv6hf~Xe1dG&$YF;UwK z+=RKFHB{em`x|ttLBb0{Eve$$rN=jk{2o#@IVV#hr_q+yR2uLhls3ADs(~Lh(w$W~ zpk=-PT7fZ~vKq19FkrIa$r|P|BUKJvDrV&?`jQIH5{1DLcCrr}eg2xVK z-`>p<8>@lclrw{YdEkpalP>YQOn#mh32cJD0-NgHzXIDwZp@Mt~c!rE)iP zWFtD^&w^o86$%aU3E=Y?1lbxBagOY;yAi6!^B` z-T<5WS7v+bQB@$8tLnVN<2FvFp>w)g4A{2qyV$P$6UVW^&A?~+{2$#2?G1|+zPvOV z2X&c;*Av;b!Hx<2&yGp2Y@9-2r|%QR-;H-I8Njc!@Z~i45i;4KdaIYTV!_whAN7Dh z@YsV}Q4ieyqaLWvm2M|UVp9vS=#M{gK*`^Y)61?^TLFbw-M36(|M#y7QrQU`b*8Zh z#tJa?v}nW3K@4j^u?u+KknSr>b>}mN0>SMEcQ3qG$G2iD*pA7xd7%$eYVIh_O6}2)r zI(dVewbI}+#&2E*8R-B# z*%GP?b{eMp@PQ8>XZkUvxHaD$`!ywjt%*wEq^gfXfzbKLf;XqhP|W zrKA?85`81D6w@h}IHH|3gOMk+9fW{h7Jjy<^=QxHFbaF6&7KU7q$fx73c;Nx42EVb zMRjxMq@qJ>N>{{aNm;&|axxv>aemqzl0DSbbYc!iJaavRDGRlE0t1-t;u2oH&(XQz zM(kf#>9?^-ovc{X6z1;8T(r|(FCCGvvy?%=04bz z)_YL5AH9=-Yyk{Za2y5ima5neG@I|9ue=e(Bq~AQ3taR&1kaRLcqHn+-+H-+mYW-s znDNIz3(E}GwaXR32nLs(bT^4ybD;xIq0sZO|jYm>>BWT&D=@at$=I9Tt&7jLS zRIt6`LCoCeyJgrkwXWfQvk^PO-4lb-oI?1^;F)+rl^Fsxh4;=tX4X+8m7Z_hbQhQ& zVU=^`@as*~k#{+1&m~egR9bT{bJ{_Yc>;9ES_RK$-}x*VvUG6z;K;yIrXq}>d9%tU z``U!nXgd*q66ykpeHu@MyXlYgybZPP_+3-Uk*^4ul=?}b5la1sVLwd0xzW<)t7YoL zFyeYzL32qb13Y1;OuiY}A+gK+kaP1*A!C8C z*bp`B;q4lvD9FWur4aS%91g8>D74ZRlqo_?(^{s<)Sa&ow@w(WeK*&KF8TCt=z}ok z!53I1J=pK|MCdU(WR77w(@o6Rd;a{Y{no3uaG!;cS*$9^G!Q1mu(|V=q@?HQ1wjS& zipd6WthV`;Gk-6l3e;iZF-7x9vtI@0L#MC&vvSGtdn|rYD@KG**u^Cr{m_PlKMs1V z=tZh}CuLbbCF}gSR9RPP<9izusjTl1(!JA<%HL-zuPABDKuH63gEEC@J^t|*l6|99 zCmQI|vnyr;>#(MKU$Gnv`)a%=mwdQ{|46^a82!<@|1d95S=vP3k$C4g_Y-S&gv+K; zQih;Gwn6b6Hy4MiN=N#OI62XCThE`xu|LsN8wx~@9jY9i;ZZ7J80GtMFX16nP6I zBlHJWz^B*0J^r^BVf-j5UwTJy+CQEl>k5!&&m26Jq6W(6`kuG7&|L2EEf&C|mUVtf zoqCzPTjCAyi;kWT`yrbG57wE>w#0Q$4AU~&Izv*x8a+XhSb?7+Khkw=JTuL_>tz|t zpgjI|bLt4@VxbxY=4{-~v`(dAI(2Xg_MbgR8uVsXIrMrzb8VIX1-tmB?KvI6^TnZc zHJocX6jt#!I}OydAX9Mb`o0dFR}KYaXim`immsN2juTi@qyTbnQmYNS5c=w(9zv<~b!C)NlTQ)O zX&9!{&SjR|2Zp!(GV%G0)h4HWR>92?op!7g3$fdrKWHnnq{_zNL-15V?xjf0>? zcGJx+>`3UfE&G0F zi%A(O#EuvUaxD?KX<2_i<;)k&RJv$PAhjbAct`roUJnuQMh7^77N50+fI zkXfHiOSoQEa3u3Kt-1~YCE5wVFJTX8TQS&cpk^_D60}9^YPa9B!}Wh9G+#wB#-BZI z!m;ijpmk-^pJw(hV3N7s#23c$9?4M`z8&^jn|%z0b)YkhMC#f3sH&!(i)oxxPg+&) z73GX`b?4ayAf^i8*M`iErLe&Q;v8)Q3rOwNrOBhGHhDUwZTeAt4c0Aho8u=K_`{sr zB)I$lx%|5ApzWTy5bhv%-@`_#zP1qDLZQW$TT{&A!k@FO!BeZ&cH(PkiFsPJ&o3Fj z8TYJs*TG(t7*b}#uN0B#S~NuetV{iNZf%6j$4YLd0i}Su6Y>CwdXtn!c*Q-7>ks(d!?{nX_VxK`43ufzr%d`s0v?mazJa`OfCh zehpue&n2g4+qn``mTq6&UlQ)`^*Gvnkn%0iyLp`rATPM>cA?{3t{r4%F zW#K>ES#E$BehuL_1{0k z;CXyn<$n}3NJR~CZ0{xTuK6PcfB~v15}yf)q@25Hh#{ewn} zOYAFXh2*x^45TE?zV|oX8)?Xd~HAK z#J3JT-HRaO?GnlYkf6yyt2p>JSEg#h0=R>oiB2+AuB zwnc>Pe=If#H{BPH)$1W<`7!H~e0~1<+kD|D4ep;ej&39RBiY)$C-VQk-n0`$E|GL* z`$y2EhoTjsY4&#$O=5P?Wbm^a8+FGOK%VYA*O{?XH$mDlI5g8#%$Nvwtbv-78Ko=p zqxO>Dw}wp34RL!$3*-JoxlI?G7HFd?h)|HDd#HDvCT>HNT)W?Zr22&1D0qsds`Xwn z3ozq<3NYkX5QvIXt>WVvZi{4Z$Zg9X<8w;qOx%9JvyJPx&FX{gOF4WRaeBb-SXf`F&^G zmWr~{er2)AQQql&@F5~ztF-pGxZjwAvL$$<{~Dy=j|u7h9*5n>UH8X(zGAYMXjd(v zjl~HQ_FM4#nOUiYI5-g0dJQc8S5SL>BD?Cp zK!y(Q@#?O-HfDbB(uoL>%OG)s;^ha^<5fDSEF8gP+X4Rok_vbM@&3&&zciK~POeRf zMeR=G`deL3US-1@7$GQjN#T(&LulUTwLmi9Ga1B{KaZjj(}3RrTh3dkC$*QXSKiAp zNu~4-{_z{U|6{>M7d3?xAtKV|n5HhLyWedJeYr}uw}m@@DQ?{nUi0^F#@_#I3{gnY z;Nck31+N`$JSi+VyvI-41^YdN`Eoj&e~)J!N-{)4z8u4%42*p|CI`5#(NakN*WbsF z?hrJooK5xssnmj+V7NvmNTm{Y@LbkVmtQZP%}|-UZtIT;2ERjN%TsW}(eCI2gcc3_c7p-b1c`+-^#pN}$R-x!PWR`fGE)sd3RNemNk|FN`s37FLD1!2Q0gW|5)9=u2|jtMChJjrd`m- z=jQAD`a0c?jReDLs;$ODWS20)-vc7(NawkuUi3a=`jsA_vo?IbaFZAEYo3=H9pU_A zH}7}OYuy0fyQ?$x-tv?VNE0&ft&7*%cRzcAgWj7BfQ~uG4w`@-us4AYeFvfzjh*8b z%qk8qz?E{UUL)L3V;Hn6UC`xzCQSl>5Ow_DPPHJR4Mt>B?{BEr|?Xg;X@o`t>L^Y;T!D}E+$R90jm zrPajha{vvCqL=?+Ft#F^z72ffP0&(Rq2ok?R~B$#BYoJa_zJAWOG}65I*!9wklgyQ z=}6C|zXIG)p#U-eLG}1=3>Yj{ny%)FhX)juE0sBP@qupiMoX*cy#M!+$E$ygp&D(b zz>UGq%H7UFm0g+v{nvX$uAL{Mc{)OhVHXOWD+z=K^3lt{T_6&v$3A?Q5e2*z`l}Jz z2-|^1ZtxkV)Z$o((_vI4WtZLb`#6zd=k|n^Nx9zb!N1;X_`;8QNeBEO657;@30jT; zSvrhX&CsM`vy}QB&_+qg_jV|NbdT4_DjY7&Pdf0iMGg4{bn2;WnG9Z+UzB}zs4N_- z5$rC__DbuNbMx;gZ{FIOD%knwK1yv8epj8KQj`xbfc10}tf%7+;KK9wiG)}wrex-w zTe{mFV2ukTA!WqA0SXBX)fMDoRTg3IP>y`93IOBmu!cw2iz zI~Q!b^2Tyrpg?W;rTV;*?9dr#;t0`?IGtzufQ~vKj7KBLbqDIz9&LLJQyYx6@Um0| z#gqkOYYsrG>Dj&r2z>Aes4e0k(6BUlF)6>l&6J0?SN;CqW=i`%&6KtN)3TF?NS1<= z>A;H7`bi#%dCABs>SJET;OO3i4-0F*T$_kd?fFizsxn8P%b}gUH6bN9@dt%9`C44Z zUM#YptGf~xZzh(lCpwQB-JEupavj;%b6CsnT!v_%k{VOaN+iT#z(h@*rha<6qF_^L zP5I2}#5J-u=u^g-9p1`DRyh#3o05YtRmZj7@;hXrJ-S^94@1SC_2J*vbJ(BBwA3mR zdEPV=7(In^D(PrP)%O8b(Scs?DSlQma{;ElMO z%+E%cv&7<`c{f;L1i%n>rLP%Ab=UdD<#C9%1A^40P6Vp1dr7tW>A6MI4w+`U)=Gw>`R&1 z8CibYQI~}qo?+)`PHyt59CkzvstAshW_%zQhur-rn610Z*B2accbKfo*siB~Gq+Vw zrOn1ypAR{8?kqj-SYXxs4ufZj7*S7o-@jR>V?n^~y_2s`sN|lFq^Ym54i0s|wKK{w zSyer@VH>o}yq(Nr5uNaW$qy#)h%^SQ<42 zOOkU4P!YTl$=Tp!3JEfd_OHAK`w4Adp(gyvGt8dLfCKC)6LdwegGUr%U-=_@8_iCM zM28QJ*<|wQ%5o|gZHPe`WPG6~8d&!TiKE5DRYJqnQ%H4C5;0A4y141ajywNI$|jC6 zbd6NGFvl8r<&o;4(3+BSc!h$jPzw|^jT)s)6%3M9diV?3w8-Vtj~B=;I?-Y^S-=XH z6Focy6J_hF)R+0kr@wOa*riORlc2Hal~OjO<8bHmS^JVI<%@pJ>|-Oqr{LeHQSHJ~ z-+Oz@7;HBz5oAjwzA|KJ$>OP#5_wVF@_w_7LGmf=((>D=4e@7m&{miX`ip?~b19k1 z_HbLhV-QC!uT)HEOA&liU@^w`X%4hN+fHRCSZdxN&e2(zCB19axc}eKX zkt)`ROBWqam7$+1=jsZBXf<&lqq^A?XIJ(6IwdAw1-p~jnOTjSW3R<6nk`-fuw@2h zan-t!w?_@rwbS6RS5L3|KEXp!O#7L3;ya|mk%Ef7UrIlO0VW3{;AavB$PR02f|oAM zW#=8i<)SLYZnN)zoLw_aOe1n)l@bUCd3=;po)+3d3ms6{^i{7#ig%;L{Ri)LqdVyB z;gef<8b?300M(ANUj#k9sFD@kqVZ!F0_v-`?ef>eJ%&-p`d=PU__e3&4q!P9Dx%`CVNo8iuJ%bVhY-osaKabLPzlR zmasnUfuAU_qL?TkdhcVxMy@Gk1FXOGiUC1zFsst==`RF|3cS~cMg6Y2jmjR#{)I|e zet^90EY9i>aazwI50Vh--A?}_-4**2uC6F|&S!}JUf+#iHRYFn`)yMhHrM@ahQG{=Bfw^Iv*^W^cuO|%dUyS&CWR3>J!dcN9KcxJR3z#1cOKG^WDftWacUWz!#0~XX` z%i!`Lg}YHtPiYuT@dc3OPn-Ak@|msBk0FNUpWoY>XRB3xQ(PTY8wOcE{eVCp^!j`R zYKNL~BtrGk3GvL4*K>hawsAKBIWH#&`LAWT%cq}3H`)XK!vgr~sqnyW{*+9qW+wH> zJ$%e(JqYaC_jJqnjJp)>$m~SO$uuDXatr+)jU{SU>-oxv=YDnJ$wR|X?EG-J_|GL! z=a!?OU1UZ)$-6(bk8$1#bB;0nXHkWJ=^inmYkhz{=YBXRttsveb8->Ap?-ijR4{l$ zv2XQ6k;s(8J%!o${gUGq&nPjAt&|%7m;%(l z351wgH41j5FEL?%A-B4TJ{Ppmu#67)hfv$HL{m^3jDXg(;-|Ivvgq%*Udh<)bza~d zMXQl#n)Uu+pq`ia>pazf9oQ|;D3_kS+m!C#4dJ66k2y)c()xA!6@$RJ>s+(-RqdWI zqb_66U8zk!bVeB)+Bl;#(Mr26DpKA7ij=Jl78LjgMMcU)O&F>Im$I34n0~$m8YH|> zZ3TLipVV1{9%b*<_s{N}U2hsBSX+@fmSa}hwg3k^iFQnL*pR4Kp;Ygy#Kr7y3@a=CSJkgWhz$f)#Q@9L)`s`i-`tsqq7}(yftB%5~o{x>;I7k zha`YJ#WRSldE8yg?DI=L49)<0O5I>eAaDRvWYmK!Ylp4X2&z6af`PbyB>4ND!Ma}A z0wg>>K|_aT8!}{)jmm4KR+|ia_aH4W7gAi3JZ%!+Y$ok*v3;SD`4l9-V~KL5UN@L1 z`|CgV)@2(1q0Ietz}dgg3s9E(KOAtE|2p76{yQKnZG9~;!09>sAGcPoCrbgl7hO=s zQk(2TODy%0{f39(nz!$kE!5d7VIoaUAB8p?LGAqDW0JFfw8^TO(Fh`}p8{XZsq@#8 zI)l+Y94d$fZ9^z{A9H<13UbU=>yUqPq*-I?8oOr6wx^YwMlQ4zqY&SZ?w&3a8R3qz z%eS}`wIz~I!=6_{fBfX__?@>^< zb3s#4N{#i22>*D-YB|xxwQ+0E-ksM z6(RnL;O`SFWR2Me#i=20M}==khgh1K+aao?;#Po|!x{8yhWd54*gV4>@Zs-om0xH( z^O=Rgj9_;IAQmIU29Th$M zYVK5o?E9SE5kcUJbV5-I(zfP)I^KJR@oLQ}Zy6o)r4G;o7BjJLc5>j&VhQatKHokw zRA&x@&HE%Vy`H-+jO48vn*(%w%2zD>zVNrlxF(?dvSZY4+@D$sU(IO8KP-#;_HPho z*T)2%C?xctgG;9P9(z118<2zT_jDk@!-?4IT``%fODM=$RSu=T*L9*^MR)hcP1J;3YLPMu{;4X_R?d5GZs^HZJ zzrNe&D*61&z&6&>1K;a=e>I*Y7V)+(HS@q(7KHAuKT9B^A2F*{^`lEGG~Tp~1wC0$ z?$h3~?4Gtdd3V;)O*#*}&raSB*qy9{I>sa3!pg2BSHW>s&tR&C2WCpyunQ>%jM>-m z1(P9JT}QqPSqoZyeQPS)!{D?}eaGctZHo0jRFC{e+@ttP^h@%SJl+jmuiwDOiyrqc?8(~Z?g~L%e z@Glj)o63FtZLcYB@BN`Z_yQthykcq!akom4ID;yf3#>Kc$rcR(aZf)?EyN)OZmU<$ z2FE6fzQdQWtvgPV>h(6Bn!sc);-=4WRWBomwwsZHzytV|_|Pdx8^MoxCy8?8H;J|Gb+DMH=NL`+#utl#YKF^#l$RuC+$4qFl<5{9`{VMO>Ebpr2b4Lo{ zv8Mm7guyp^lL#LP_d-rCtO_)3lEzQqWh>Xi&s^DnzA^x1y?5tNOOEq)M15wTFy(#W&rvr z%i!Yg+J{D#Cf>25`@^CiMr=O)nWj4RP9%`$1A%-$t-VI7LY=q|AhFQr#akLbj45z< zzt9Kxq@Y&s&0V39$=Q5aEX~x>q{{$AS&^Qe(rm?sFyHHVmSa5m^F^OP66zk^mcAi! zX)N<$MF{CmTBW@>R>H0f{>TQiK3j zxsr`_XDm~dln(7uyQw(B+^CBl?wwzyKryK(4?=oG!F4iUg?gcZJnjjcFxniyH6r2R zLeN5qXncOHLT1|R9;%4ddB&FiFPof^+YZ5mLyhK?5qM#GmT?f}RF&OZ@d_kX zw~xV!gYE;*8G-mcAFYU7Hu5S)P;RZ!%yV0x}WJKF&{)W(nz8XZml}+z3Unaap{@MZqm&4^ouTtr4}%B*?m_FXgo3`h#K1`kPI?zvJv zH>T*(thM^c-;8RlS(o>U|A)07Dm#rjx3(L-6(9IzXrG4CMQSW6AmwIV+}eA5+MgP| z|D2V~ei(Cf9{LymR^rB&)<$;9odK4H?Z}fPlYQSd?|JfHpKmzsk>yE*ic%({?1N{) zkG8w0TU=xZ@Zv1AFI8_^^5jsvHBt~a)@MvZt~Y%79BaLd+oo{N;o3n^2;nnbzn7nb zeAXCX{~b1so1U>-6AOPfhM3zWn|kyd0CEpY@>xb#yMTcAT}N;E(@o#6=>KRBBkOuo zQWS41dYFvM!Fgv|NdeN2&hNks8aC{gQp#De2d(JhZzT46r};|}hwy_$pcuE;e#B$}@@eUPP+hcOCiw*M+XbF}W;%CYQoG2d{U?0) z^R#izYwEqsM*z)f1p3A?TI@vs7%xjM=y?rDu#y0kHDE2*{ z@=tw#)IySbOqmn7Dy=o>UD|@4>9vhmo=Cobj9wiH$CrEW?fRw?tOH7TL&%XOvpH;@K24<|!!`hi z7zkLjKQv+FRw&F<%68vLQ&|}xdozs;l=yy}kZdTk3RLMGXoQv8y!fraJ{7mTh%A_g zPeYr(PAvH{k4Z}{DaaTA$Fn;`s$o0 zSW3)AGb@ew4dq+o>-#g$wD;u_4pp~MmBf=xg>@O3vf{fQkJ0Wic>%`&`F(Nvx`UkQng|c$NS^`j_Z96fA@RIg zjdBpO5?+DBVLUv;T~&)Zp;^|v=ic}`xIhKtPWVGVErm&>zzxa|O_^V4vkHdWGkdJv zhhR_j`EQYfj5pz|^BGKwu=lc{WDm|~Lw?k8-$X>Me9aricf{UesdP{SbU~z?{-nLyUFRJ! zJ)p-V-XMl9t-OBbJ5v?EHS0b#>=pPV?X{#)0AQD6)A04Wq(GjxF=GXI!#@xS(9lurO`^(9b!X^HjGEC5w zyG4huqu60_%>n1ZF$o4prv)y`hkY7gA=7XW3rb70646J-#f4Rv3)q@B(&wI^d=eb< zg)mkgB4OCgU!LC}9awZ2+>uTy7jwr|=Ma$;n)vO>ui}bx51T&2l%%rU58td7Wmc&g zD-}g%tJ>&_pjupt-Z(%U(UiKmVP60!Mu6sHoz*F{UyW+I~Zh4a#l1uJ5mj+~nD?mng zUwU34DC&C3(Qn$mNMy}BoU-0W*&BM!_kWCQ4yz+eCsMEyA-b0umm~~M-N2IaK_O+F z;s?34H--N^48zSQElUyiL9Nlv(td9ZgN^OvFyC~dmEw2XF_Nh*vmHE+AB_MDasWMg zSo>a}(_wy}rmuCM34M2TNz(iVquUf}K6=s0U3{yXsjBT0OTTpKv5a?%v1AkcTbx0< zKxsUH0*DF!;=D)T3iFpx>LSePlC$6hf>IWEKhQyTvT5+S&!#&lS^e2Z?U7E55oF06 zwk}}hO4}1;O3R}MOd~Vw7027Fy#E#3fL%24y=E!@k>%EdK2F;z{exH-ygIplVRg|U zkuOs?IA--{F=;F)lK)3i0LR)f!$^3brkxj*&3R7s#}CJEfhWjCnew#E{{1IirG?%sz-!45n#8H^3(L^6jiLw#qF z$3X@HypI5y1kG*CVQ?zpig~D)wyF++@P<`jNqr<@L`#ab5`vfxwwI*iEAu}E6PAcy z4n?PlpYZ$q|FHMw|4{$`|8FZwSyEA!sT3kavW}TV6xAe2WeZ6Xl65dMr7T%1mC7K*UTSF-fb;`0HqvM1QO><)^>H!Fo&CImU_*y|xUpNscC<4T~k+K9+ z&edeaf$-cJl6!3Dp}A~16p2)_)rErLtDQw~+0=%o`Fz{mL`NWCjHL#2x!DtMF?kd6 zD>pcw9$TiF`O}QhKJVYnxe>mUFXNH2cB=OaMdBFX@v?OL)m-4SE-{syFj zwis_+zUpp#)EDF4$~Oxsb9J2s0jm)0r>Wk7Eg26R;Q@}dj_rjFTMtyXjR065Y7vhp zJBFqZb(#X{X_rUd=ulR_dsgfZwPWwha96L9-XR!_=FL_5VEs5}Aaz}>xSo=^-;d|s zazl!>ak=q@cR0FX!oWqT|7N|-3FMg3UP9)rRNx+ar~SX*W4EU%pT%TA>l^4FqTa&| zERoGvB9I;8Rju;*1OOK+`Z}Z;XdK7bP#4V8%bh+!*T+W(`NGj2H*fuYwtL;Mde3?I zDR7gm21R6v$s7WXNk{(|$E1fAqUa2v4yQGk!uh{21&1}a_oM%JU1AO=ts$gvCFP2=&0+ID+?bIewT`k&w3`v~TIC6+a)1gQsgv;V;< zG)4Z!DI8SW3Y?Sp8H$CBe}D=`f|c+Y0DSt!@yuBmnHLRw=Z!bbU8sCN7mqigiW=5m znZ9eVF5Q)i<%V_|k84b4zJgoBi*I#J3!a?#lyG5___*1U4i@;xWAIbpd|*5(J~%Jg_+B!t1{%&uv)isdPQYzy-k<+-+F41zvhn_*G*>77V5m|(kt2Z5^K%L zJ1}e)F0xzimPH-PJCCUr9l~_aYC8nL>L*?m7H%-ze5^I*Ntur{mZ^v+eda!w`Kn}X zYq}@HJ5fb7oN$wy#ynGtB%e7H>q0!$S2TM~4A_^pZLt*Go>jMyIKta251O<60Awk2 zyG4%hGvFc2>U-Zn=196@w+7e6!Li_rZ3J&&+%vyGFd$84;Prf{8iZTOKyJLWA_x9WpXU_zS zq}8TqCV5|%M+}`=_{KFvb}c*#QQaHbN&Z<`SD~8M1yAPQMtsX~O;1!1I)!e%CfB0R znyQ<%3q^?*_NKYqjDzw7U9W|% zOV!f)t^T(2KvWOxrs$AcX(k=nB92FI&!Yd(A6qr#=x2#)EkKS?CU(6z zY;c-4SDNl=j&{G^vuDhz*az%s>#gyDE1?9~hFT6}eMYT|c6r1QS0@B|chz6zp)9WF z@JD@Qvzfac9!HhH(A~ktnIb@VPat7G1ZJYj=rg({6f9$D4Db}v5+3|x3Y;Ah##>pz9!#-&quz>P}y)(c3PU33s>p zrIB{v#1EjI00k1~UMZIO!_m;6p4Gjugh@MVSpVXL(wZkcaLp5LNp@WB`K`a}Wy`H% z)ltExUc26iRW&*yfP8o}Skj~-eu1A4XPK5|twVpN0?-1ifM&?mxoE68)G712gYqN9 zFuCT#>805NYJdO^1&YWMoIn1th+Nh}>x;CAwJ5Y#M6bFJLAF>PCGJ7LDb0jF>nIJF z@o**ot3D8L@wa3OnoBl)Uj9v~%m#?4d^=t!6X0iFBEOOqr&n`Yy)C<2U_GnRKMLnu zIHft~*>~T6@%PIC$|&bnba-Q2VTY7q5y0PyGqEd4SD`KH1kDDv+dLQI+yy)jMV|bk zh{>dlj(qsfM#>@v)y||~B1CVZLBKbjZx-U;v(gZPTBNwmJr|9-jBUl5{?C{28)EdtHCXO{ggWm_IxUz~T0p?rP$PlTu)! z9zZ>W7f=t;?TZ;2)tLqLvR^E|$6=w5@;*OfGNj!`0+1vn7vvNs@Jids3iSj*U~ z&dA@cB%ElnF31ggp4!8%18g)*0|1mt3E4M2w1m%gR3jFP`AdKEMWk(kTxOW3cbvTV zaOXac=`Gh^i$7ar3;O{&UXDxraO<-F$~d1l=kZKpucXumXP&!BYZYp%Pf#q?D8fhU z!FZW3=N)J9#B>7=eV|UkIvTdH)!*AaGD<3P;M7o`mrT0RZ?v(Uh`EP>fQF9h=sEuf z4l>XVBH38bcU0Lg<#XrfuncT;2j}`oGcUSp1+-Fe8*$1zkOrVixXGfocLGTzd8M@Z z$)j8;piwXEQ(8q9Er!sPphZ11{RI&8xJScKPsX<>%o+mK;jLYHTyM|+kn`I8|H^p+ zke-L=hUN?Vo;46dIZph%#S_OktM(2k@IV=elfddz$Q*2jVxGqolOQ3sTAxi&}xm0;V= zP_fS4>U1l=WeTE)BWnSF(`PSzh15RvPi(2$@&02zd=B9KNTiO1)8b31A)-5Q%#SCa zyKYv^(N7R#UcuLE!Ja?8M73SRF4S^WZv?Iw{Re|CtP{=zXeH37EY|U9DPBRmW5IRF z2zAC{fbK&@Aa#*LuqiOhbVSw^M;Vvn^JkOtkRiDMdLh+pMR|n#C1VID$noeqKesYyV%cQgOlYSTjGjI@#I;dS91WH?-xjqxC?+LylsHw0ac` z%=ms$aQ4VyRS^QJ6ndp>VWnI9E9#hrp>?eC^`4W(Nau)&)Kko(JO}!8(HbJvX!4BaNRjA6WI5VOUz)uBVqe*V@6v3uCp5pkW>W$|UgMwdt=<^|6z2 z?6b6eAHDwK7&$&kSQWo5nNMRV*Wk3=uS)h9E8QNg4<*PotngtBd35WU4k=h0 z>}?BUv1L3%n2h+S>q{{uW=w!T8)TV%GPq@Xyhn+23d_GV`6_$4RizK;iob3oKYj2< z{iBpY4`7EJXr+IpBwv*kV_9&_^2nA$;E6vv7Ywx7hpBD_BE~5;+u<)SD`|;XsUoL)YeGrIHfbbDOF!<=1UnUtS zgUe0gfik6xU!k!*hTjC~xZdnzl0?DgI?iI*&Y^JipfnrQkGT_=Y?hGXR@=V&G9ibezN%+!*OJ+2~!4Jna+Q zpt14R{RQ3F&pZK&r|u6HI}pXMG!i%;RL&^RZ`(X1nAS>^`%TSU(ALcleX?}H?`i=x z*%Gx(W^Rz6N=TGV;3cvSzm|MI#GT8F8WKS-&Zjh5*H~@+f}VseAS1g`g{q)&esSez z+`qo@7nTnFTLWBCrdhk+Nn5XW{Un?C^`j_?y}zgyG^*9`?AOO#ssO$r;mVHBlZ`5O zYce6zOZM2J5Vk>O%2-mI`lZ@T0RIn_b;z| zyD_GW-C4WNdGuZ~yxSIIF8^24`?jF(u#)Dmp9ExSxse|%oHS^Ykhp*FsFPvO>DTn) z`)^kf=%G_LUjh?US0!{lRdw`tWu1O~gvX>lE9F`E=&h(1-*)R>&#bU<{RQ_RjTh`k zmM^`c%vn|b1vXf68S0Zq{{xXK2WF=RI2yZFH9rJir7^(iU@(zD+6#S@cRSTU|67g) zJnbx+d@Y68Ih28}h+YZI0YLb9C~psX?a?;f`pZ#Zx?Z|URZCHzbW1th+ZR0D{$n{% zd0NhYkV_Tize8ns=*S!e3X9e;W2_lnq*7x~-))y|wunu<4eSD2iKbOyN=nB|_lp)p`@}b>W5Pq)m z=lZ%N9voYDj=qKz{)A6ERAzB_8v@8&>_M_P{FSK@ygop-JjNEoFFe!9N?>aWt!y|d zh`#&7hL55%7q)?CZ8@B`jNA@xFkmo0@BkuEZmQo$N7~VlB5-%h{SY3fccrIR@!~ug z9SM8Z(WOHJ{CDJ=gO!HwgO0@{gcHxSayc^g6L8Gy>B5GiNZL}QHMDg-6S#q4q1;O~ z8;dM+Q3^4W1$rv$+wF1Hv$hJ*pDSLM40TiGST7l^&~o0e0EN1F8j!^gUF?hyIVACs z2`o(HDm$Vc`fTZeiVC$|PAGcFJN8z2JDRnSKvY=lX!<5)BX;Q6FNK6JTq_{Nzs^m? z+jqX6qXOx4PbJ0>YOV8?6>UHCxhlv2sHt3YK3F;(#-syaElF>*9a8U62GE+|@NzFX zxQFCjg`z(C@@w(xgl(Y6%WfjM2lA&X{vxnHO^DBFE!F|QX6VZBBDf^2I;P}Hcd4P8 z>=InAtHs!+;Gw>49l6r?C!f__H07O7w;xtGmCs63Nl0QI##>lKT5y&F$0;G!xsfqB zdBXB}mi8YOB@+-@_QF86HiM!ft(0zQeDQaNxC;`5WqN*YlTDqdP-Or!#8z*^E?qSO zsu5ZFbBZZ!4$D?gq*0f&+aCWVGHlz`CH?M%bM5sTi&NG}jwAtXtRfs40-oM!*ziPE z2>HePATyw5(ySM@6^us$dBCKc<2|9;mLtm05Mgoykw@6IJhl;f0Nw=uHPB9Pg*7#X zrk$$PFX@6Hwrqo>JzI@$Q&v7s8)5v>7S-azQhWYBL&!y`BIki*e7W{*H-C`3uXRo~ zkV8N^tss=Hrcjd-a;a{*=eit?F>t!LdHxO5^qGzGv~Z!FHo|TG3-YS$TdW+^Gz2&y zK!#AnbCe5mc`^SnR$_k~57vj@a3S*FqW=op9${}{iIy$R>xBVuN1_m+oe*|#|KGfA zZbG}v1TG!?+cV{LulHnL=fhyVJeNMQ{PsPSL~y{smHX?LrZUQ??k67Kn|BG-=0Bk#X-J@lc9b2m>Pr`(d;N7y7q0ivQl%6zN19$*#6gmkEh>+=nH z1Arlqm|24iOkS=@V3bwp@S7ymRb{eE{i8W7({a7;PFEsm0Iu!~mF82~L=`d(&X~$~ zn6PYg(sO2RnZr^~wb#3Jtr^B|6=niS+nT>gTfOrUprp!8nf|R5_V;hB89E2d4&%%x zJwA~|Yku8FuCAUaJutaw#rCNp94gVlzI?T{-In2=BC&5-fETSGW2%{|BsY z>Ki5+K-FO$`f?RvS+dN?pVgbHCFmbfjuWy9EJ;zx$GlxJz_;C;uQF2GtEPC4v+g5uf|dUD5uIMw z^UQ1*=JqU7&gmRbZ5j|z*A$uWW;V0xRxe;Z`b+uKbbWYqq#Ljksnc3MCB5dp2KXpI zbm?m>Ke{Ao>d@&4ssZ4d()Cu?aVI!Wof`iI)sf03GAOb#UwnJulro(awB$E*_~dWONynX@5ggOY~9UE`xLcDgFs}g**P*$ zCvm}ZUWSa}rarE!y!1PA*=i%bR9=^afBs-}OI+YUTCad`y7ZlU4t$5})M^Yk3Z0x( zr8@M9euZcMF4^10qIW5=m(Dr|YCh+R*<4(6X4sQNK@Ldr4g}=+TbI~gjc;5D1 zsHRmc%j0fkNQi27MHsj-D7x1MsNFmF61_-u)wS$`8e_h&gg#vxA5qJqCd3j$*q?^M zKmNJiuAiR>#K%8uyT_5Y?a_ft2M$^z~0f za}~{%BIZWep!bo43uxVrOz001AmM>{BZ>0Ce7q3gybF4L(7CvS8T7Ls5y6o6@k6gs zQb&^5*RZ1gazLvQaiB0T1@#Mcd#I|IQU&1dd(wA)6^uW9pR@~*#p$4c0x#|N0N}x` z{naw>?_;EaI-7Z^nZo{iryYpjnjR>yAD}#3`M_W{C0&q%aWeY>$V1W^cbdhq5%R2TYgktY8k!bYmyvPMO9%8(T#met7Qs@{Q&3TAE>5TmV!c|uDm z)ed)h5P%17mCx*k8p>XbqZqC+yZM+DnX;zU%HxaAFE)zrC`S18d|Qg_ot?uYpQcSW zRH_e-FI*Gi3SvsXF(-q0rqdxka5*cC&dc!N$@*V@fm7|dKC>}&&<^kGfmENin9%)w9Kx7C9Xy5j*NB(4oOq`s-oVdx;>8}xX#8z# zq{X~xYq&4zzxnX2n!>?pMwR-_9~mSewUmYpcQ;oHw&5Umn0G#*1^4mI;l)n3>L2eM zwtlF+f(4yLbKnJLA<{q)u+7?%y8Q)p5>~*0xD(oZn3Jmx5s6xygQ}HimZbW0J0yggL-pcu;vu09rT<}z2s%S*j|*G6M&e5K9%C&aq<)Bd__S{~PRul@%^(Vh)UK~aZCoG7 z14y!`vd(tvGyG~QOF74aC1TrTRwe1=!o=h2jbR+dY}&tdMug{*%SeIj#XG+~_dt(i zC_LI$Lu6~uDbCW~P{YpRI(TGY|uB?N+y3kQsUU^x8IqLK}6N%MvNU0_*+X=xYvvY9J8pq zo3SZ()%{-TTmg~pgFV4`k+94XXC9i9%B^;>?54a6`WMjMT!#~Q_YRh+q9OPG9(AE( z8Tps+0QkV4kk=WhfBs>l0(>sFfr0~og;k=-WJU7w)}Jsrig!mv5%ezjoQ@6}06nS$ zphy18LtHg78H!x{j$=o+Rvc$1sCz$-Gt8Hk4VsoKf{iLInu-1cNYzVqTS6#L=;hfM zn*Pxum>t)?PG}CLdT<<>okG6qBly_xuXCr2g&oh z*pxmUm^H~Kq?(-aYjBfz-T2=HI__x7HdEw1*nyTb{5W1gwlX#}1l zx$MG@d$UeQNtk=icYfQGkkN~G>_Ov+@1N*X(>LWY%om7wtM%@PYir#RsVr(Gb`6%Q z0T{ryFG`dAe`6%iY-t^M3iPa0i>zTF`L4D%tLK)x4ckeX$8vgKae(@Wh=hgU5!)wM zSTLqi93?m+ubX&kelMHNwIA|yJAW3qDgmq^dhNB?3kOQ%8GQ+dj4u?R#S~3K)HPEw z4sn6mG3Rqr03KvCD+--20q>6=R9L)WGAO>Pc`~eQH;}JbH-fh*_Fo*#OL)a`U%xx)2r7G8E!O0?j3U_qI8JD!h2&E$@zn+foZqwptVJ(iiKm1= zjXfW^z(@hO<$(R}A51Dx>q-=|CsLm``+vQl$I#l0+z;f?pDPu&92+Xh*hctR{j z1F>1Y{hMzRqMXvtq1x}AR%kYiVoub{9Da6r}z=`R?@0jpm-#u=GjCZgGJSFAXqfsrfW4XeE zTP1-*Q?tu=Kh3P#w2O%gy&;RUsmjF4EEL!GXNXJRw^P-rbwBN$M> zkr5Infrlx%1*!*dEjwcuF9YEF?YP=gLN@At*?dP)okub`ei`*R*NtJ$auveJRRIIW z!Q-0e%@$)cm7HdEJWg@nBD=LjVh}1(5+6`}h~$60Oi&}c(LNa9#}g9|5;Rf~+Id+A zkid_An|;%MDD92pzfDGa)|!l3ny+%1t0laA8wksIU?8dFDBP)6!w0$sc>u^mmYJfM z{R{H`FV~roiKnJbDgp@YaZep;fv-Bc1`hH(ErZuF!P*Ou@5t+6bn;1xm6K!Aw{Vwn zOf&aKC#=u;Wu(~w(ERKH%Y%!9{B9P2t~v@f)99T0m=V0*o9rsF7Or5=KV_~m8v!5Q z*0}N=m_ zowYtqUNp-Ak=|6r?x1Mp1v_J@)$ywJf|l<{F-y8riVnAyd;-%QzVN*@LD8GPA4U8z z^*mketq)y}VRR#8X?GqgwgKKda&H{QtQG$J=!z^*LM{(`M=a6Uu6v!(7}`_)f6iLv zBk*M>sSEGo*Ae(@jE7HqKtl`uZJoI5P&(?7(@hBNn`^y$M`2Tj{zEpE$1Bl? zJ^F1}C5`8#n=L>~fO)*}w@!Hirr7^J=*}pDPxwB3^ajmk<5pH2!8ujY*4VO?l$%9X%fe~A+z%J zfwCO6Ar$V{YK_hOX^6^Xv)BvAmqtgKlScRY#&iMmcxJrr!G{0J&^~cI#oL%93o)}? zTa^Ny1l{KzxUM|WEI@#Ki?;&qpHm;!p#0SM5Y>rt!deMb7xeJnC04o1B(+yCGza%u1lQJX3pBa*wL%K7;^;eaQ(G2Kvamhsf4!p!+Bh zyBXl72#Bv}Esm|NPvK}Poch7@^E8^qB&4;&wroOQFbrrgBV_C&zFhFbGVwG z*Bm)1rm~){57K=uLEauV(52pCTmPnPGV_&xRV09Tn6Bb`#6Nh<6G9fVDqaD*nu}jh z<>Iv)4*uKx_mECgj^0l5ZZV_N3pYAeuPV?xdU9FkmSsrk$0n^9FlUGDtvmVcuj-ow z7SuUo`Vr_X(%uN?<7rp}n}N3y!06PtGCjPscl^TwSdrGYZS-l<4KuMZOA#XxpS8%I zNl_-O)xmaaxNPQ)D4q7ZtjgGK3#0&r77omb7RdIytYy+qdr4A6ZeEFUH5c>ug*4{l zVnhOHe}K9p4Q%vpA?RoZ`)a{#rECW%b5X+rS(U&Cf$!miz_CLi$0OJp(akR1FcsR@ zwdF~4dxUHEkrz)2FHSrk0kKyABGFOgKe5`@KvjO_(Lb2h^~$3hL1bO#d!X~E;$l8m z#}V~rd_?>q8SZT+Fqr>1SP5d!Sd=Y^sVW;f8e42I_5L`dL0}Mtn+k;iF?9`ZAf~=x zIGdI5D)iug>Jdu|*ZC(VfHX-Zavd7fnFU1T6}b!|sW()zz8Wa-aTD(+8?P~2Gd8}S zI0NvH;`qc?@yhGopi7yaRgU6mYl&Jxh0@idyE+U;fO)FmrFG4b&*ZZmG@f(9&rd(T zdk~8~O=**cz+V8oRvzuak+X#v<}>w!y!MPEM;~u2k_x=QzWn&$L91O1e?RsY?WJs= ztvATaA%7fr3^@amBCS0e_6yecTDb9XSDB&^>oC*x34%DY`t2mOf?S3E!@@``pBn`>^VEx-D%{ID9EBO=?iN*y7s~M zxyJT=<_gt2FO6UDpZq{^#4r1yjA88uckKfKZllBZ>r%~F&OMP6BV?6NC)!<-B7@Vq zE|PJAu6JK!Gb+y~TrnL0Wph3y%wcZ0`;KQ_+Fb60r-#(tV22jiH8C@Fz8AC~;t~>^ z31yy+c2t+hey~}M#j0UsbIEW*AW5%MJ*JMRrEf_ zzUt)cDBj7`Gya{!#i=`0x1Ag|*PmFmkRih4P|hhFzv`q5jO_Vyi!DOLZbRij5>0uY z1J7umd8ash@oZ+?!xv1)o86MgLX<(&PG;3zmn){1*y*tj4f|wxQ@hwZuAj*5GM$UX z;oko=(el~jgI_gV9Z8Oqfuh28C(pvtvZgbH5|5_6He#RoXvQ~QjSLsZJGDQ`S4(OK zmpc#?D>9IoKEGph_CBp_?`t)-HNR>qN5AnWS5VV!-@M`Jogvt}#|BC*X5#LK=!g=lkFywmbF*Jn=$g}Cl5uOo|M;)X*wltD=(ei z7hKoxno2Bb?V?tL=k`^Pxzv)|S;eaR=;fR_uBH)f*+ClhOF4>nH~mm^Qz;~@+ zd3>H7BFyPco9iP((puYK6vU*;;lqv*C?&ubA+kk!)3&4STaZ^y-8kqMn0jJ{?Vs5Q z8h!(!OpN+|-C29r?hz7JNoXN_|58^XYN^A{T&=E;P70|m{+*C?EnYfGF!T7Py<`bz z(f*{g8aSvGn6I{y#}}O)Te6ni{J$(&t5Hh562BPfDW)X@6s-bSBNYsqELK%A zIHqaD$m{Rd!_EWd#`}}W7i9+xEy;ZsTtX9wg{Z4K>Pt_z+EzH0XZB8HF6*CNAqa!F zd+Q?FdIl&{0NGIAE|`FUT^zEpk(qzUo9W#uD}d@zp(WA_D) zO_ey_m7gnTnIW>O5F=TbhJpzr?#gk7R~AEdD_p{pkyNpTrXt2UDVFtHghR?wqPvAp zQN`WrLRrnmh(Tzb)YaO156gXUJTD{J?;V@3&A(uryS6w+bLFK4r-5=!;b1ShUuQmQ zJaRY{EQ~&kO)>GjHR^CTo@V;&mA3AqFB=eGvU*O3W5cqyAwH+1wN583sSk?=&yD%A zl&X__6zx%lt4ElhBR`?9y|8vz-5T$EhUIe8w9!qVFfEDgOIrn9n2pdx+ znT38pm`OGe>p{)WmNK#Vdi0c&^|uQm_df8LK}Eikv;3V-nq3a*t<@1VKtj%3IlrKO z*zpQe{Npt#YNTEK?8%P;dfp=6Wg1WqjRZ?F7#qkmy?Ew)gqmEW=h5qLZ_)#=+-Cob z3?6n9Wnn@jz856-$-&8)rqE~cOW-!)>FH~%A-I{GIX1Tcw*>s@iub&wLg1gJ{zFe3 z8C#%;*o`M2X%KO*bZYC%PRg);E$k&mYF)j@(;N z_A=Z6zTE6HnXREGvQ5c>5%JT(vr=sP7EarTUC#-Iyh{UHM@xTlRr_Hu_BB8dO7NV# zh7&GsqtFWjIfp;Y8h4BHzQlWLw1rndw)03TuSb3^3~QMVkEZ;(W+f#CSr4XO_Nb&a~>Fd|W>&l>IX7ihN;4of9JlV^c zXK2?7?F_L(S#R{2xc@O(vZ7AlK`M0+*4esPJ>g%;{Txl$UG{oo_%QBZPAU0^I}tiF z<&}*MOsJ|vuhL~(_O4n))qNX)@0PX9ceF>&zCRN5g%Z31_c`9S?|yIAAKiVzv+yhS zuMscjYFgC&5e60P9xShFOwU5}<^5H+aToT-Qi03jwZ5|Q4Wu+q-Hz%usq&1hv(i|g z(GSzP5-?B78yMH^61g6T^ENC!mE$o-x|@eJyH3Wl`bM+u9>s4Y8flLYV0?ClA!1>e)bBRGz5mqNBZBP3cTZZ)}BsPOrm!C z$`%z!=SsU$M(oP1{+!6+)E&7BZ`#ygYAby@ypDF*3&bcusXj)8MxPCQ89xnwwYAnd z;v{=Cl(H~5e{Oz-W~p?79@AF&37G@pzg#BuYcJQRrq6l9rlE~CoFW|pm_ukGrFB?9 zw1Y*yNen#qA@_%1HXHqdF?{U2CG-vEURaAk4HkNI^@g6hZ?<8jqMBLJugX}H7Y2Z# za#KR5q2lr7ne4DgL+rIuYnj6zf<{2wL%*x0_e&|oZh{5b{Xr+vxf9&eTHneFMjeR!GcrY&sGcr(jRvW|5fR`7<`2u6636&RBW7 zR+bLr>Vl>%IBWYGUTh*+YGwIqrUAV(9=(bzfgy3foV!D^e`T8>hR?X`yPL_~FD(p~zJIGdk}UN5Nd(mcUuJ{6 z%sK6Cji9qEkf6?;+_slRz(--^mFBnfOgE?oX@zAwgp)lJZq9b-J7#wKy=~VLdO7J< z%#Y+Uq+>cEi&RcDFaa;BAa@nUvXB}(i)iGa7dgB8NRhKr0Y*YMb$z@Bi>Q~(zWHtt zcGv~oHUNG_?qM4)gS~l!5}wDhLp4wD7+mUV2Fq>{reF4D+ns)WlX1=mxwS^LluO6h z-k7^V=z2HzOl`iZZh%W2YdneCZPRjqd+73G9znSQk zkoaRE^kJUpDwX5M^iL5H-nD{!xmIR$Qg5%68Faa3N`f>}2IVt+F>hodx9p}yuC%g4k`+FP zWoMbRNw#kt4ZNy&vV*(dII!SSjN+AZtaqm;ZAkC#aPU;OkhMo>Mv}Kc+Yg%lz|cWD zUss#KX;i5eE5&xIPjrz_jy4PEPkd|G2W!Td9-nDm?}um ziwrl*!<{bdIwbLg_w`#UO&HzB6Ngf;< zC~@@+Ddx1J=Gh0j5#Mpa`cJvfMUv7=sfkwfo;{J{(}Rg!yR$aa4+{P9!t0qr})!|VpL&qw|GGpN1j zpp=I9*a#sout9~gh$>m=QIH8!Vc|jJ3&rwyeWS(BU*bD-GGyW_6{u_W-!zHZ7{`G?eO?F*aV+fk5%W@l0ZFBNHEA2q36Np&Gt3&|UDxAdFg zS=avD9;!r!EVT}qeQ8}S-;{mF3AY<#c{89@60##o&(k@Y>y6mG933*XO25!eBfv0z zkXENF=D-5A;~d_Vv9Birm#RPwdXkV2?VPFvsSP*w+}s3Jvnzt+ z?5DA}%LYYAQpQJV1v?EXaEWiMRnEO{XyiQ>H3x0SvrIKd{%jjO3l55*Zn-qCQZ7#r zV`26&@6MHT3@Q>TaF&;IX<4UPoAy?aW~Pv;CH0S&FVSwSUyIA^?i|B$@A z7dYvMhPPY-W80^9y)L_hZ?oN8JCW4!*-5o7`8^8;jSF2!{#Z3FkUIpUmBVKTpG$L9 z(z9ghwVml+p8b1t8oXeF!BaxqFy-EgMT^eQSHtc5gNzYLXTE^QIdGF>3^1*0p9DP@z zK)p0lW;leXs%qoi*p;ki)H|&cPtEit&16!l@BMTPhXr%X>7|^y7rz%TOKPzsTN3iLNVOMA1YznQD_E^~+$ z-;fWz-2n$clx}uba)y7FR?pQG$3~b$U+Os;bcGR1^a+_!Z1m>q4|qU-s5j_8smbAT z#tN$uxh^LINDmbCuZSW?tU8X{c!3mCc+yl5|4Z%;6z6&C{Z_%rn9-g`-b5e0u}|Ze z(;p4bMutE2l=(p;r_hsVMBr2IH4FI7bI*XJk3E@LAn!IUGdLDuvro(=7H+7=jVXbz z4#5^28c-(pt7((q+eFezXym8@^g_>{C%`6HcH`>7hkrKMlAb-=J4dpCm?Qg*s3pD$ z>Gy)Udc9=Xx8P~T!=oXG+N$Sq%hVJk6nKla=RY(buH3YD+3EWmB7SmfT2O(*T?i0@ zkv3Ep3(Z0ZoHH3f`FW1{ZwClQ7mq*-WOT$tFOC=->{I-uEU2Ixb5uy~ZTPW#b-I(Np{oyaq{gI26rn7N+0)f`HaEulxZ0cpj%p62HN z*heYbuOtpdQtb3b@0|C1bQ0~z7<&M2&qe68xBSqtM`)A3QxjL|LUN@{FgF2poc6Xhx-Qk|zdOF%Tj}s!YVtdjY=KA9^PYyj&{(`M* z-0s2 zWMt0bvfKt?)$|fS+;8VK{f__q1j$^tjn0i5+=fOQg+IMB(fvPYcd0$+kXefvLMN2h zwY#KG$w$Tx{y(7I`TpP0?r{HGv^xZ#-Erj~QBsVlT_v{$$t#ttmMyLL5Ks1z>;v5F z@aVD!`?YV79GO#dd2dSsLn_HxDpQPExV8cG8$CVm*|X4nm~_B(Bo$?{`{qWd@_}z+ z6_suK0=N}jB+>i76a0M_^m-zkPUfDP&sf>_an}IEWN02eP2a2HFt^;P33YJR^Ex00 zJd#o@rmF58$Kao#zYqd^=TT{ISqDNZG`>@F?xkF6N%O>lvRQ|M)#C>j!8))rLoVoe zA{^50ZhI-<+O4p8$M4^Lks}f;s?+ZKdOTv)wfdIx-Ia1gQt1r3XJ>=c2fvc1D)blA z5nJi)teMr6nQFpWdk@@lR9ZqTEYw7)oF0Md#6XlMd$(|AKYoCNU#sQZVS#phzuY{ z+xn@V9HhR2rn1KLHsd=)A}O-vNlGQTG)*42F_&o5%UWN7jydc?QWQ0PQzLQU@ZYK` z7nT@aC~)pUKYVK03Y$q(&C2M7KiUdf=0=X9}q7IWTiK`*w4V1q2=93!WFEc-1N^00f7FjqzkGqHXW(GDb=O$d6L&} z=E}};p%TxG?PRl&Xvm*<^KHP>lrH4APtL4YEZI8FW9%Y>EqgcEM8hq<6i>Y_N(7HF zn7b`C>aow*ms-u9jXG6<9_W?epSf)zx2C_YWr!Z1{1LDlG#mq)@Vq#`lH zjc<;1WLy$u&o~hSy+3FNNDRnR+1-7Bd(Zm*={t4(*T?r5LHF;rZSRylRKp)3Q+;=;g=57zx7ag-g7#(vGNqVSDU+cHghkuQv!En)?-(?OPqSUejc%f zuw0by2})Z?girQF!qhQ8F?M}ulGMf+U*&;QnSgudfmw>$9P1qA{OUpl^%`{Y$VySH zIqG9e0p}yWdQqD_eTqL}yG?sQVNl5>VPdsb%uaK!l%f;FAsRpZ|y3~}5qwtI! zqbOg8PTS4(>Z?ST0ob4q3-OHz%QX4y$={u@?HRj*RYD`<7E?q)?#i;iq-A5u*xcQi zGD2ex%f)k1cH1)UDDA-iYkE{~2ClaK_eY8?cB{v*&SA!SlfR7Cj6hL-Mu`QpziA63BKE|bD1IBel! zbS}MM8)^^v+TyQcb6B(P@YbErBxslJLz)xN0V5$#v{;{1>X>^oFd1|mrEr!QT3Bk2 z#BP*QMv||ZxwxEB_a&ce77eP;4Q}%GU3nALP)6<7s1_K@08;Iu-nnj&c= za8t&(`?@k``6XsA?IXLJ=Nj@GHtMtg)6LyqPiZ--4EUe*S>=*$xOWT3j;lEwn#;pZ zoVo7u6Fz8wS0-{o6WP9I-IRxUw?nTtk<^kbL!J(UoB}t+tn9vG4aZT#B0;F!z z_F`@xAa&2SK;wPCi>`hd9e2okk(sZ~|G0D7GN|8}m2r>wLa*OGg^tU?-5}l5nLNBw z5UZq0GIuk+Qn8rOi1*a|ew}d7;VKyzG!g#QHsrmkk}L2qWoQmdLY_AY`BwY%`q{?Z zTDJ41GgMh_{`_JTH=c-?1U0^)3GmKD68W?vicRg)X_ICZ?5 z#Vx4WMS@?_)UzF>h=Kv)io}U!eOi;ONw~S4q;l8cg5)wiPglKPdnL4en1zRADKnGWeEKm1x4>;`qAn(oJp>Y5A@7GJIP$ZRP zOA<+xvM*B+l_F`kRgwzHZkUC#uhAk|CQDJaWM8KRV;?)&27|GWG0YgVeXpTj%jf(4 zd_Uj&xbNTYzhI6z=D6m0J!`Lgfi9dzmo3|NFE-&0S_r_JOV0t;;E^OBI! zmj=w$R&|rd3@fZ8Z%#ly!FGhGuU%A#Y+{Rsm(}WAWzs_`Y{Br!m0+fNT+!#q3pJm~ zv1&|c)*;of_qXcAKd(vJ$73VQyNPXJ{>-k>gvO*Ecf|LNsmKDKB!RS>&eAG4?~v~l8wMmfKitR= zjY96nD%Gp$Y^^*;s3UH88F@u+p&-midGC%x-x5guy(U(&qQZ#0q&8HcJ0#gsdawhH zvgkI$+P{@(gmBiNEpD`##TTQPXE&|BoE#;W9=T&P@Q1bJ5)LpSB55R}3QLC)N{;$+KeOk%Rc;DR`3j}S%`JI>v@bl?TN`k4uxk9rQ)kb8g=nW zdh~kEWv<9QO0&8|Mc+~-_d2eUb<22{vyY$BXg|5|b3!CRrHYIlM8+b;JagwPJ?4*1 z^Tr*WLw_q6+FW&-OBaKO@!>8F=Q9=kxsvzgubBS%@oOvo>}vulik4@ks4LmO5RoMO zpt6T(OI-apRwO`WNben^JFuc+eG=7I4b4-cgqRwUf=|r;pm0;e)MG#*lLjpcq2w8>d|o2p9$1jJu-(nUZ-A<^@wdb+O>b{w zs%H{l=uf^hSM~Ob6tO?+?XCw65|H@xnIW<+ofSz)aV~D1z?&w8qSbOJ)`m*b%p*F) zLFsu2-02*u*V?aB`24}dizy8Q%W;5qAZM~Jm>A#d4(7vef5USTook6Vr?!sACz&Xr z6;K3At9fmuG$qRlF=UTr_v@tBuxG0$Fc5l(2ry))5jopMib>dwEz`p<>MfdI%sro3 zV05dm?pqQm@qt(pZ7ARJRH3^eJT_&OHc=TPY^Yt6-))68aZb9{jR+ z%d|5c+5f53ow2Udm9Oh`n?JpPiT&2;!rJS1wCn%3I^9+D&T!|8`c(S>LzZAVQ7^~+ zwu(~EurRZbqRf-ufUBYI^tMPK97aCXZ@jI>usO4bYXrC zcknIyZE*hqH7C=_GHJ0^ZnI!7=b0t&7%Jv|}dzMOrFH@utqd@T6XW1~Xg=(zc(xjqn)6+Q@59N}6i z@ml-gJ2h?P(OOp?G4h0Sv*8pgZ1qu`GTM0%gSSkoCL4%66~M$L;@T`f7?LW+L_0rf zuzs2hJj|$a4mt^6RSga`VGTdN;2?=)+Urg&miG~X0GwbZ0Xe~ zn{Rw{Bb@vTdYJ08@G4uvW+Z@qPShA*`ORwoO?KrUOiEQ$79pjDX?tE*ou7?Q56HNj zp@9MJ5fr#bCRA#^AxdYJV`|nZ@s@ngY#M+HZ$P(1QZG8PV9cC)~6 zPFD~KSvTIBr03nHWO_Jb{N-zcq(kau74eC4&?%ZQaA5zI@Yq>N&+ciQrtx2cr^K9wmqos|)*(jN4qs^=@B&hJMxI+orPD<|?8dX@z5T*0pccBvgo5bq$T0TYeE- z#J;qS49VTFM&Fw79I9~{IH|23Ao%&<=Yf-iQg{qQ`FkGH10IVtuZ;afs!JeAEU){=5OpS zm5r8skUz93!v!~ETBs39s;aH!0%PhqAO3(tI0_?;xGcWeJ8K#zX}wtS-%EM&B%eF^ zVsU;0ogRzxfsC++$FX`XgRbUS!Hj2g>Q1kd;#lU8)M&IF>BVzfH>oN^a_0-fQK!An zD0`pwPMyT!QSczmM~Qz?Laz5&R<}gaK!Ib(K!A=12i{&mM{bzM2q1)z#s`dcLMR&% zGf1M^H6QO%d-J4jw;;Et1R0N^u1~u*G$d)Z5QA_TaIo0rWdQq!vE}5X-T|Hr6mY?JdY(qjvtp?BB zaB#T4VTXFHz{2t=NzHcU-kx-I;~;KcA2blStA1ma91;_4cij-_ENYa9+d7o18;c-D?~^H{ovI0&lR~z{Fb3iSk+?5>Ed^vl1-4E&mm+~3FP!NW z7vgP=&wh3c>*`(a7QoZ~^I*<^(Wm}uW|ss3?g2MmqwOBA({?K|Q}5G%WFv5TS1z#- zR7%w+LdTipT>m<|Yq43dQRnbeJ%Ol-mRSZkIuAHU=bnDJq)oqUKDGaR;%3c@-p!xK ze5Bwcw1)0fw%@2Ilkj;-&@+Ml=>0{EeyxmwPOKuYOmFMV706~&VaeNdr9OxmjotIZ z3-Ch|UHI9c^&QDP;QUH9swpf)ge0U~oOPlN=0V3hZ;rgU3iqxg9Bbl`hyZ^$r~uV zbFgKQ67+#ik3wg;-`X(h_YpMk8W4T}7N_I988f+ua0Bp{eaUKFc11(uCChE(ljOT<){Po2Cx_R{F_j-lBPVw0 z(zxOmC+k1-pbw-y^2AZ35t>5QiV|_sL*YfnKxB-2W8kP%4 zR&~95`*6l7N}R_%c~vhFQpm-B zI!OE$-LJ^Tl=yU8WkDI(9DlvDM@bKJy;V#>66*St4Il_He05S|_?L zQywGEX--c$WuoDzgtFXebvM&VC8@RPw<$m$ryW8-rcJ!<-%aYVeH_4^q=PQ*!cM)+&=+N&A65)2ewGOP z;!sz{IZCSS-^Quw3pLBS_fcZ@FPwJCkAQjwE2OTCeUnKY17lY__e21vcE@d9pX;u= zvE1ea`(`*g9y#$*JH3|L-nYUe&tY<5zTG=1@D6gvc{IO&fX_z_gkrS99frDk@G5b0 zH-1GUQ^(@NP#`ds_9YHOIr~!Zu(NC%0=xm}YzRR;Al&q6Q1g_0Uj#-{OSeu-*q`X@ z0OR5a4|CtCTOLyAaQVg46;6Go=r+12R4=ibz!%QDrg_V`9eONnAAE7Y8(-=EUl^HI1_!H;r z<*xWWkTCP=lp5{Q9lN#p8d=#mp7hD1Ip|C6*EO8s@4>WRX^LU4Fy)G zxz0^DqWx6u9ilL}#_e`*XSq~~>W1jMA}1600_K;^dh+JC(W-x4LWYdnxNUbh%GXe0M{vBM_u;yqLlg=}=~6yuR^HVK@bo)SX*Vp18b z4iG_`Tgxj4?K-b6EULZfrng={tIy(NUmDJIl$_<=sA&MShC{Sgf_u_ua!;ZJ($@x& z6&r^AsOpvl0u^k|c0?IRmFM#RA9T8Pa1P-nxeb+C5PCe|{B>3yVn#KtPr*r5Dbsbf z(Rnjd>dlZ&>+YB0yW?)h<@PoBTCeC!NH;Cl-t2HZ64T{cIS9NXYjx~VQiPS~yiAup zO*c#vgD7XUtn?}sKs5mO&GI3{C!zY7RG+ayW+$33nbOY$Bq|nqV1tcyTzXkfI=$H} zIlcYKvR^sVg3GW13L8)Vs43vqr_N45jM8sI3vgBy@$<^!mjxZIXDNUTNQ5Rr$N2ZB z?m!ExHl9x9-jp^WEO%3S;UGUQe*e4*zxF=#Z-vgNPPy#%Z-p-E|E$mrX{gK#J1XQZ zY5&6J5`}(YbKQ6U#^w;eu(_g`9DvOMAKzIP)o(bZ6QMP=I@87xy%YeukhSQ%3$P2K z=pJ&=Q~MDPy`Uu+>0`o?& zGQi>`^IzM~`gsv>&U~%yt4MO*Dz(3+OF0-F-1*Kr<=XQU*ISspcQx9jkB3kX=_$x2 zqfzJJ%SU-T^=-c@!4fd$vvgvsd|q>vrK0Xjl}(5sAHq+p6NIBE9$h+^D2*1lq6yXjIE9e}h~uw^=(gX3Oggod{K|&jc`Zy2XyJol>>UQqxeXP+3kHWm>1ly7A-w z$BM1(fn!gq=kQwW0j6P(Kg;T!XMZW?!b~k~*VP+I$V8t553ov!&~{O^d+6DBe90$6 zkM~^LU(P*+b>&PQ250I>9!W|&oMhC8`y<&p;&7|?x;OOhZ*RyRctZoe5X@1oBZ)RW zn`$!0BGoMis4wu?X7s#Tw}5vDQz5lobh2%#Z^)E?D!Y z9a**PWkqfrgt*QP>5Q^EsIM(WS5Hf2W8F_gB(Bc3m+L6S_o`a3nRedVn-(odXY%|V z(cugz&6XwRDxOpu3zL-N^MCiH={7Ki-lrd>BshJ3?8?YTy;&C(0{T{1-|zP+4og3J zS$zDscK#2WUYJFlj~BvT?BLK78uQS6)C{}{q27HEJ1Q&HIO~trBcF&lQ%39eEo!31%BWRBvV3MoEIbvO?&m2dqW2o;~ zwMXYQbTnG@lQ{m+W^E_@T;&!)?fCO^Z;kP;uwRwz+>qzJNuzgJhuN15Qbz7CpcLyL>Tgqt zDjZ|%DBVNHrhGqhr50z8DcI{(M>`ru`CI<&=BJCOTGa^`To zdziM$d>8@zv&NrIh}@!k_@xV};^c|qUE*bx&5{7N&lfH~OhWVl+- z5Lt4|WyWot6_FnJV}?xn4?jsYxgaf$x0*})K*-NS86X-_KCy{D+r~S{YhuDezN9Kj zS`a7fJRg8uCE72mOOEmSe-FPD0=xb-#TbBe^u3i|w?fvzZA2RYx7h%s%SGuIFoViQ zAYH^GoBm|37SKX$OQZKJ?8fmV_o6xAb{2fG+b)~7P69RjCV}GmsFstDGvZrHBCYyQ zfBCWh`0Q$Ck^FZh*y*4|I15%BkMzgovK6o#SuVi3%zIYbx-{yRZXC)9vIG~$){n+> z^(dD#-YvIu;;3@Dzf`$O`bQ)-PaCLm6?HXrPW~xUUCCi$H6_+I^)Gh2t;0a6cNp69 zv<4W1k*4_?dQfuic0KX*>NkQFRI99U>Fj$(i!-ADhX4iDH-T$!p`R>Qmal|vpbr{v_=egpr z6*3OXQ9r^f^woB-xAQ?WZp%%}8w(D~JkO7N;&;SKrwN~gGSqp7vK~bBnQoa8A?FvZ z7?c}Kmmwjg;ps^|1sM`KZ#~Ql8eN7O>8(j0o%%id8X_=30Y@#qOW8%Zxm zC-n^t4oe)*-rScPK36`~^F>B#AD3?5f!U96|sHtXubt3&C#>B>2OQ55~^mZF+ zA}&2%EJmRyZ=yW?#iZoQhfM551qJRhT~#*vSv%2Z2lr=V%md9$%jewSkw3ZKx82`X zdeqpUdIhRID!UW5s?AQcgCou-3Agv?s$!^avCBr+AD}Tss1jGYiv;{##@*g)fy;i$ zaCFJn&19x}gR4i}bMlf#4r%z%6Lu1pfVSuMVYwI}%q?Ug>-2F^*b@g?AC5i9m1?P6 z6XuAAJ56WAzOMO3UvgYTmj#z~!{P}yULI@r<^QZfdl$6l9RZi3`sIm|3I-w@BO`Zu zL8Z3J!~)EOkG4&ERpKW0WqO*xgw?ZqGs04811~%_9)vAV#*d-2UL)?Ft6f%AazACr z6yWapz9P?8^^?_Y_(_2BFxu=n~yeN-*3_vG-@@+Q{%cb)>fD zSl4S6Pm(A>(t`=!zyiEaJ_r;w>Z-c&$4TOwljkBdt5;M`=v~*r7Aci7wrG`~bj7=9 zcYk!os_CHHxRcSslWVr?A8|*Uf$eHFwrkmv9O7=25>I{}yc$G&=&X1jZ?T2@W7jBe<}{$ZIm0O%#ft#vDVTkwxLCc@vEE1lv#t7> z*`7abAo<_rVA65YE!*wUv#YZYhh{6UMChFpp_&GDkx3vQxVy1`k7QZc$umqFoD~5` z-5o{mW()qdkSK#cx+*eBd7-fnJB!%^-h0RuA4Dg&3Z)fayyq(`ncy=I_h4S+D0N$o zCg>8T=LTUeJ?m(l&-fhtDmFdrG4;UW+b)^IC@(Ra*1{3l+~Zmh^RFRId!20(!h@kU zFhcn&upoK&IMz@NMADwsKs^U-9Z3-s4WKD#ArQz+RL8OChasld_nfA)Bp?4tC@627`8Bb=(CJfE8{(6|FLO%-#G8^mm1JlY^I>5#JFu#*nED0|yQz%n?`ZQL6&$k*zG zB8zrUDw!=tM|CJHbe$wcAn*VrI$lLAMzzyLJlmIFY>b5|hf(;d$eZ~ODyXKoDz2l2D?NNfk z`Rfd*sQeErIxzm9p2z8|90a)|e^`~h4ZNoEIfUlQD?I@2c}7*i#|$A1X>I=U(zWLrM? zLVNR64iDIq$`}j)epA(MD2(Y(2n*26xE0Fw5-Sq_K!OWZA8jSC4AF6)tOM~^oye}F z7>+KjlxSjohogI=_B9?lAQD}>(c4cP62W*4q1M_e94HFm51ze?5H|a>c4f%vhD}8{ zv<~y|TL1k~5v>bIT*=GB}y$_q}6oZ_jiU=+ukp7l$rIx#6->p{6%?5=IYwqEOhTfhyo7=j;Fr|G(6SN(A;1jQku=FnOMm z|A-dD<=v_sd?1lj(4^TOhJfBW725Pr{KvZucPtg9X2#&~C>yJaJP<*`6iM`5{-V5C zV$%>=wiS-~l#B?3hyM|C1b=m|*90UePAIl)TZ-=ydXVJCBR_9ZzBssc_uD!cVl_sU z3Vl<4;eP*^>dGFQHTiB87Rp#Inds?AT1`!oOTZtwy|bFiJ7GJwIvzB|k?}~K92NYy zDW%lKg!a&a_%_$zcHqd@tuhV;vd;9cQOt)TS?oi`X+pMNRj)+qXgepBDq68agBp6}{AU2J&g!z$=u=EGrPT9^y;%>X>w+!CvWE#ECRlbRKkH6sF zP}1s@6k3MS6-Se`H+EG?~s|&UeDyYyK2i!RA=D-dV5{7nqKjenER0-nFa}MWl=Jy$Z|}7?>lxsoQ2! z0jgX<^@1f>nt}u>FJ0>60>5!a0kHYPF*afk*Zv zm(D$3X87EiG$T)LE{?^e9`!5JrTPQ~V_dI<91Lg5vs-WO98JqDTW+3~0PPLxdr^Yk zSMWY3oadlKrV={p8muGn`hP8Ohyw)`-IL3!QZc@5Rj7krrxCz%rxE`i`I% z*MBN+(85;B_RT!dy|TL*y%O^1HBwHR^u%mu+s-c^#Bc_R-wDJ^9nzs1ZWZ8!d9QHv zz4YMFL#%)-wX2AY=Tz~`=Z$%lfp2o4t{LM;SsS)$eipCUtd7DuHwCG=k<`IX)v&P~ zovMr%*6rK?@c{v)_>73bYRUoY`JzYV&sL8kt%ql!T@wGHzQJhmV=!OxOJ;+)b~!Rz z-2LLR)i=3d_XzcyTF9w8?5+=1fIV!aP@rq&4YbBDs;~|Pw0p57^5QIa%WAY=xOPa@ zzDvP-(BU}xLmBbi`)8S4Xmvu0ai1jjiIMas*}d#f5z8v<)2uO0NLJ^Kg#k>uc8~az zIWe1oS5QDWSZzZ-(Y0PgpCV#a$275yb#*iasZdc5*{gU>*G>k=C7ohS1%!HWJf&l3 z&#HxvLF?m=zoSWZUWq;vJ~gt*dQ)k~1VZXON8)F2YR>$|OGX*08+lWGh4y^cu{dHjWrq&VVtBLb91RK#Rpiq1Z>$A%vYL%%`*t=7Gmo-d^6szuvfV8Z0xUbD= z8)h8@2MNw|@>VCJ)BtU#Mf^c|_V_NcBV#qnO#?Zf_atoGG2E$BhcdO2NDxoFYnTvd z5(zREfp*r##2Ht$XhQ+lL1*d@)t=!J_?2BpkpKbz*($yJeo`y~Ji!F|Qr#orpSK6# zuHuBbcb}R_e~$mgddqJ8X$jF8bX=xerMP6x?8wDQm$2cY6~mCJ6H@L%jHZ+ZL~diQ zV^RvO;kp$;!z#~L=#9$gclC|;PpkIstSU`Muue_m$(gAgl9D~-7+k5Kl7)_ zY6IY2CuHwM`bqp%kupb>?=%tB4(3)0LHWy=j6(|%CWVBc%p*>;di(@^j_>GxWOysz zIj6nIqPdNCrTM64$DDxiWXjm1J3Zoqyc0oEUS8x>H+a>ORfqmUAdpe`$TD4@UxZ$1 zlCFROqcdQ+qKut9eCw#skRmMV`F-|vU3okph-9gr&nx^;IAT|E|HQd*(~7X-3@ciY z^3E_ttW-+i1uj#CvK=A`YqM-GzRDi6w5IyW*8R9ukP-QATp`AR)8J5d{JWCb@w3hv z+4vi+cavVCRym8-DZkHQVc0w7ytOO;eTzd&lKGr7=RKMK0E#R6wTFO9x0%|hB?$u^ z(?77*Upa>idefY`yHEIX50hR$uC;72A2s-7P|jR{(2&@WbZ1UhF|R>y_fgfpzU}e{ zlGaC;y~r%yOusDE?Fu$iVNZ^7)`&2{Jc_`>_E&aAPga;uV^))AwHD7^ncZ&iMoU3a z2-Ep&K>SG;@SniNkg2(LF-#@2YUYWHc;-|Rw6?!w_)B7zRlyZS@g_GZU&uP*MMvTr z)hC5GT6#t9jga!Fp@PcB7I@&|6pa85TZ58UFFDNJyyn#YP+?Z`*X#W|KCL;p8)7m9 zcnQ@jb44o&nw!s}7C4W9{T#=BhNe@{wpqAEPEH7*rPX!s_?ckL>C0FQehp zUz`(-8E z&$w)t($cjqPc$0bN(P6C7c_tt=yvvf0u<>D?uU=j=q~1f>6MIXVnDOYy-j5*7uh$F z=Zdyegn&%obcALSy;84Q8t8yhjU`0kj-y)0NZI=HemaQW$UDORe*_8fD)Cz zAI}-r$)4h$;==y!@PfM`A?t_e;v!bOA945LeP}6=&g&v@Gqm;o69q zHCbtx8GH`2tylxb$&Q57FZ+hXQ(d027dO=?Q-w7-(0Kikdlx9{xxn_{xj=Ey>7`wL zCTw~e&@9f`!H(od{@aZ@1X)J@lpsGneMeXrwMIX1r_gSVd`EM(j_kZBz zEry{9I>mi>ISab2e?|`D%&mecDHH&>X4kfTTb)$1S$PSLFRlWqvHHZC1UcOOuL z{j?i!eURAuI$R4V>Ec^JKs*ZX9pBnka?AJ> zp@Yb9iI4j4Y8|3z8BRg1mRlc?{N*27n}OFlE!M>fj*<=!W{yG-R(L(jow!DZSEz02 zX9#AY=n|^+MzNUnY7K0)qE`LqK8!m=gVk5DM!d$k3?8!7)FF+L;G+4yVdKrU<@5hT zy~9l%o30Shtuao%Ie1&_;CZ|F5*KiuCPRtvZba2`SZ&Bt-N@r>`3p~-M1A(zAR}x) zwVqR!rzh+_Uq3~50O1Sv1e1K0dP(u8Z~Fu0GY=o2S(K1V2$>7pc=KUN>}edKek$E{ z@|p5OTycrcpe?ig&psmP8kx^v4qc;y>2ykTW`iDmsO;p+Cm-UOfK(4+-2{6h_70s!XUS3BvZ_{`*jk0V1Lu zy1d(o5HqgO?_Ei9ZL3{u*et!o)sAllaKl`&4VX|dLRHQ2Ms=6BRvvE2-M2E*?IiiS z!nj?$UcG170unA1y?>jEf^9uo-BA&q|k4N`YNaJ z0c0NC89{Cfa*>CV-JZG-M`+}TjfGGgdE4Vg6D1bFAE+j_oM+zDT!cr!jzHIvPl)_C|} znPa5|3``{(9j6rdB@VOK5rt)e&dDBhj^R)1MIqIR^=6@FS6+L!)i56;Wy1t13jFwD zSA%OmKQMVOq_!t^;=cnCP}A08QgZ4&*r{A0R8+vd^pH!A zd3B#M>#!r8^u4*WN1U3Sim$upCz~iV!CoZU&8P0db&^u5@*el#LLl?=zZTB;hP2zgGr*Vc)jG1#Wx z13h(oE~w-gMzMdWC}v3Y*r3|X76~ub?NPx4XiaRmBEeJl5e7MNXv`6M$QR>D$CJ2E zxp{u?BWvK2lWq~Y8Xqdz6FW)a1EVECUP~%cvH5H_J_*U(+5?`TMg7Sw;Z%np75`zN1Qz3T$pwGkNiK2YU^pn7eq7qi40e&AU9ukI3Tua!d zkI6bT2H?Lv91!wfW5}zVJeb{YJqOK(u(Ql1(V(>myQylFsI-U=u{_C2lfxd-qQq7F zLDI>|4C-!*zAyN|55)ATQXk#Y{~Y`H*#8NVvejxbvH@ z?z@L@x2V_^9nyq!T8?_q=P?=>S14+UTIJv}wE@ztvMYujq~+Crzq&5X&*F13#0^EX zy9BGcp?I%(!|iD?Vz@av7sg3B1@(=ISES)wGaSBkoRciXe)4J1_iELrdZy)n0M~NV=0?2{~<1zHkoy+ zJMIxA^gyC>Ax8@wMe-a{PIuq>jNjkA)ITehO4W&kl4|!m3ybx8KLBb)9p372|MJN* zH~3*umwpW8?ro&Z?Vtz$*)Bv4DxztJq>?`|EB=cL_>Q9j?*4wDO>h4$L&CX*^aYVz z@?3^2FTsm%4|iVGF(vz%s?+q-^snR7I5WE>qfMX{Z^lFzEK`Y|f=-!3$=8Kma$Vdf zpSrwh?GpGuLN5?UXS`2M#%en@bN`J5-w$_iV z>G-M{KjZrR!aqP*1c7!k*YVWPJJCGfkzL&_v;dP?q`w}{ZF+d#z|v+pgrI|HWc}mn zR|r#v;C?qjY`^ob8rOMxux01NKU#^4Y1~T2711aojF4I5vdS7D)jetZ3 z*&Lgf%V~oc4j>2|lsL0^1hJzf0oYc7))yLQ$#zMnCthEzwJ*j2?KSzuKfv<;lE8hU z(lF*eVaiG2{@7CKOMF)6G@KfZy@hq3zrgXYT-S?M&I!z+V@#U9Kbdin(6BGDsNBZ! zf?;@Q2w2$h#=6B(?LHhAt0&bu#>upD9(44vx460o4wQYUq6&}th_&kQ~P0^}{uW@DlIp~8FE<0x3NrNPP z>+N#-;nuZ8WOuw!s$eIgV=WP|H5Y!F69!t(cjG>5< z)xByuAl5F*wxlLf@6b=F<)I&5VH%btK&UrLY8F*%)uturZj2Ukq;a0K@ef%;(3AWl zKewN{TpC}O8dN%8LcbGl|71Y-6Ym>Hko2I#q#)mMtPy&RGY7=1?v3E@#81R9uCRS% zvpUjkWHWMdHV2h7U$hEWGS%pI4_PJ(F<@xP|9@$L$p1H5pof-VInAV#3=QHjPN&Kq4ttn_(*W z#?um>rQv->8$Eem8fOve;>&nas7I$mxV%_g9HY3Yv9Bz>736j2fl-Y6NN_>U2F@7# z^j5zg`Ui=zdEZRdPf;gu6YOxtPRdA%>I8L%%+-~+ z>O(Q?xK)9z+W>nJtiUc+L3%_|gYX`2F}x6D$POQ<@>Z{YbLT>X+x=VOp^uz+Kh% z`jX?;od$nOKG%m|QkSiDB3fsBcITvM$;lY}t zkgmBS{O;z9I~twWU9Dzv*6?*@!wSV5`hzY{F{kp%lP|A1f4DSd{4+M(@%2qQiP4I? z1SxhFuPj=Na@?R~7AcQ{C<2Q!an^URhd4vdxi_QvrS^ee#Q|SP?xI&ve3Vv>GCp0N|ykKgnMf zJoiiV_o+>=w;5QD9M1LBTYN<#(<{A~u*Hc{4Ntv5xgIY^t?=qY=KTPru5a2;8{A!M zUip8aG<7)JIs3%) zAGKc!9UoZ%Iz0&kNck_E6KW{3!S^BGT0ocf4U$|ppw#4$8?mhS({oG+X?(}O{KwrDaEk5`ee+pR zwH81zrT^}bn5hOG5~Y+R;>k;kLI|;*e*ehYF3>b?C={g~%Td%_3aOx|MATAf73@=h z1N@=9m#Se!kcdMNV*6nS-g!X^oF;JnCjSf9&e!}1Z8C&w`On`y`9GDs zT1{ZUbufUb5m+3s>R($nzOvr*T3i3Grq{ZcGsaWxQz5cZ#Qrzj79ij;#hY|BB`Cgz9c&Q#}Nr=q(5l&68VUKn=Y6QYJ%N*YdyEGwY>Iw+Mt?Nr_^$W$KzyC zW_(1WZ;j*%&>R8yzt0il!U{vx?vU(NCxTUbEs=Ut%g^Ah{E4dC8}w>!F{(*`CzI^x z)t7oWO(6Vm9@)zOtb`}mT>1<=%fS@{qU4^HL$38_yFSWcx!-XeQQDo5@WlJ(LUxhc zGj-hEP7&6EruYGC^)1ze!*06rQKQ<$H(Qnttqr30x1{VNn(toY6A54ED>OX*t@hY*(pW zPdW|Ho+Kgm5Uf^$pHj)XcmH^B)t84+@}zn7^P?v6VYgusD^4tGtu*3d!Tbz0zYwvS zH;2wgxG)Xf@hdFT$7KE?fIPAh_dWYjx@DhSQzZRV_r^S0?GBQ7%Uf8=^pj)rm{wMmAXt?1Y zQ;tG*^U__L`R49)s!@8DJ!^kl^E-F(&@-F4KFdO_Ls1o)Z+`ZYZRFf*b zm}iWU+k2U1IVLwfYOeroe`SnG_3Bn|qm4T<@)CNYMTa#WK zT|C8OvJ!Y<3I8TNT6;%S$0TTX-3}2S<~%j?k6v;2Wew%3*zQ_KG4^QXw_MmW*1?qd zX*OT@HiZF`?aGv%0WYOwgFjol1YtN?5Gka!yY#4P&$WryXt&gLrrSAlNTg?w zVZkk4C<~H=q^r9Tc^4~dSrANyEF;-_dAsPSE2%V~#n85mQR;EUg7d^obyM@@PM*?p zT~$%x)dz;w!niYD0H9?q{LTDDP4jqj%qRw@K##D!;{;+`q1Xi6_ua+6x?Pq2E{6Dz z-L4Cze$WSp>8WoLjY7-2Km6aSdi_e~&X8pGBeV4NeaQmz2;Ai?=P--dSN)if>E;LJ z?mha=P8%JTQk56y{(zsV&|H`+uQO^)K8o7cE|&J=^ijvHTE5Ad&p@^7{~+y6+E^Jz z(!X$|JuJ!ULo93>f1@9oRaq=WJc3RxsW(|K8}Gv^0e3eOXnT#nwY?V%5R)3>=k(`c zE)f054sME^npd6a!&4DFHKoPAioRSASQh3y;X80htInXVyOmY7t(FR%qlVt!$%g>; zmlM)WU)H7MG@mYJdUkWLzw{W?dJP!pcn!W@FYf#cLNE4Kx{5cw^$!UBo&(Nv;^Vk9 zW=>n++tR$>8algi1hlUJAPGY^>Fp=Fu+U`LYazDRygu`R#W-B|75YDuF9# zmlj2BsrbQw+>>KiP`~p0US5O>P8@xpax1K(%g)t`uB*YBKR1$EbV4e!I*z@KJOv+W z*VaKFYX$tQ%bf)OND}!0GHbQ9icRC;#zA@>CH+6;&`q2kJqtQFfKHzc`xP@}9MGPT zRBof+o{;UMxFo_Q@mCYr z8sj&$1M&70DZ{k^-vh`9Thjz^imt3Z)U;R%4ZU9X_RFAw!7%xF#!1-QY-u?&v5j2z-V6^+J>J|NcUg zZu-!w;&jM&jUmob;tYbimR5=_qzTV(kgLT~2+MG@NnE{bs6a}^uE1<}do#~}3n$8J~H zf9-Znl|W)K;Lf=BrR!)ZRQ{LN;Ah5~U|R zIDc;Jc&5=cU6Ok3JNq9dR(2i;n?Gew*w+O(EAOw3%3Ip(_3rWiqU`Penf~AZ{|f0` zQXwZxl1@n{l(SVTl`>M1(+y0yb&kKc{)^LyVDkL~g zs#1?JJ1-=lBBM>BgTt(5xFJ06x6gf$dbt;x%3_blY- zkJo+wKfHY^B5z;4$lJH?D*PWg?_WzN;O#r`|LW~~AGEhwJx8Y-_Wz{lRi@dgGIX)& zw%9?Rq9_?9^q6Kt-|VHYyskli{?P*2W7Ebf56$o7q@GZ@$vcFgrGLDidT~Tre`c8N z3vdyL5FqGD-G0t>#(6;9AkSzRR+GA*vSyWUL{0vPf>!OsH)lJVAEFJEOV~WiR|8u>I+h|V^uFLa9M?)A}HWir8 zV1Tuc?je5St{bg+bETG=WWxY*Yd|RGeUm1&v_9`iPY%;R(P-j9cT@hpG(LHh5XzlTOS1^G3^S;lb{A8{Xpbd1zQAR z!Q}{+ZlgYvTh6559{*}6S5lQfr@z>$-^t*8!X5mbxZEY?UChgZmSp2jNix&>Q?n9$ zSCV!<2w#F#A_h!@-M7cJRz!4hfS2bs>M$DEjXuO6)x6t(&*Yo78a`8*rm}M=R;7;` zXt3cZaH?x~ylWR}ui2@trf}|tlg;AL7jY}^u+ZI~p~}qRUD12L_0fw7B6`2&|G|s! zH7zX2p8vl8<|(|6I>&GO5~I?6_4OBz#3rf;pI)2mDzf`U{PF(<6=5g5$R4Mrbr7M< z+_2i?^ZRD2_<-s9Z1~5&nXU-Hbe(@v{*+)j5qd=#aC(i$Bt)n07t1fs{krL{>N5X_ zUPJ}NMbg)8f6-HD%#`Q=k8FjEG&bx2rR9}94b{K2$gb5uW z`*WA>qGQ1sfa0(?-FQbQ;8|X+_Q4- zdZ){G9aIUmBoq>!+*ez%Vaa1&8Sy7?=~S4Xon*P<{5`Pgx?V^yPfVb`5Ih)}+x^;b zr1_phPT}O6U)j|ezA1WYBcaXA!=+5>TKAL^BY8h+IMHz82G%nE`5=%Rb^c2&eujP2=dG7}P^Ql}9K zg5dd&GG;e+=11Bu>#gBwd|DAb$LEW<$ZsM-6K|&w*Pr$Wm~j#76%*`_E{gToC@nm!jFy|?QR)PH2}NG>B}0mKC!2Qg-Qv|CeyFL!27Ywetj zPIvB#-L_!TvF7r9)9GVd3-e8vfM62gKeROrD?Ikdk>6!pWQC*YAyIIllC@fK=0e%@ z=NS|!=;88ufy_lp+cp6Y&`bbX^R4>)ra{vCHN7wE?h0Q-?;Sa{-5EE(l|UuA8{3(m zAYi_UP?dAQ2P@row9SA~1&$A?e-fDv{OLyKc`c-sQft?$l#3hIc1!Y^h;p8;sif+a zU6bOV7X^sIFSxY7TAgd&B|Ch%&VRK!j^Q)Avx!yoeGAXb_R;g0x9K(Uq0LY8c3Gl3Ev7#&%7g83gl2d+?Bc)aP|% zJ4&+O4dS)Xwj}i`AF;)z4dolxd^qOo@q0IsiAt3j69ogJf?{(64c(Apk5K^SKaE9b zhIGT!is6BOZ=-V9q6-dz;?Gqb`gz+F%3@y9b_P^WiXu{wo&rBY0iwm^w~Kt-;t8~A zKz;7c-`9#`ii4~TDW?uHeQ^hN>Rmj2huH0L^$CEmAXKAIHFv9|>haDFrfq8vMc;pE zKiPP8CAJ)Z#s3{4nv1T~s)!VsiKKv2<|IW=;rLa zG)dZ~V|_}t*a=}XY%!ptEY7s{(fzP5gyAx7OmznvIoJMEy>WChVNQGTYNGbNYK)!S zu*REpTua1fx;Z5?Fn&lOw;RnlFah^4u2pjHCvN4;ytG%Swl(|#;WD&i)99YZCFauB zLYqXc^9^P|Uwg^jz<4Ge@E+D1NVu5BYOQpd;SyEb4`bz$(c;;JQrZvbW{xWk5L{Zk zq~f05r}`!Ip9f?@zTsYQFdsAPR5ehEElzQXQFk4T#}U9=iPm`*dggl{Ba^<_fBfXl zAC}Q4)E+X#ZqZ-RO~$pc@O$iuA3nlBejl%unQ>g|E!bBn32N~k4Pm#(5?s;TI_@pH z(LuJ}0~sG(Ls%gIQA8)*p>T;ayhNP;=7X(DFw%_6Z%qbdEa-|3I%qiIld=N&Fs)S< z%4W(gNK;%>rxbLpx0btJ7~4I9WyIs>jwh76vBuJWX8Pca_P_5=FP$FzV&YCqszY4iL|1Yyx9BBqcTA%euVB;2}Kg)VX- zrNfb=Wr$37#cv$#XQZK%L6NW9q&~S@;(|bg-`uh2lfw0ed5p|;H(hgtdAwW7_Yk@M z6YJjUvoFxHcmivW2yg?8hZtYgtKXkICbe*_Rbe+I26Gp`d>2vOZf7@76!U(1W5bD5 z`?6Sgg*h1+R+ZjbmDHo_*~CF4`B!-M&#V zM{6CgPAim!@k2zhX~+Er$`Awud(o%hByV`P2vq?+bb??Hnw-$c6Tc{T^X)hxrTAyL z*s8uOx#HJxzd-(D(A;-VQJa&e%Usz7w5T9>O|j6Q`h#O!xxxhT>gd+rz`YT2evZ<2 zh2?=^_)RJh@0xT&qy!QOgwxDO1SDRzf* zAk@RH`uPGZ^Vh^1&0Uo9UKf7}-kwx{zswrib!|tQ#2ZX}N90u}15>974eif!JMA1p zSEV>KWu^Kdg&N$h+YhG&{UR%^CFT_n1En^KRm>)AtX?7|C5lK%ISO#}JGz-QRqw+R zk;1M&`PSV*AO?=B;yt1xfR=K?&dlE$q|~JM>4ITvj;(n&DL_|9;>%Q2YaiCPlJu}| zpEDo4p}h5iOVlyCMyBUl+S_h+q8&1-HhhKpbfd+t2$QW1R`Y|i4IkrCUhg>Bxmh^% z3SySt2CH>9e*eP)XlM^qkB#^1Gj4CqBv`(S=(gPT>50P8@o)O_()3!NCd;=NGw+(- z$9o83Ztf&B-MSncBU!p4@#UB|58=mAShFiyiqj9r!c%;af#39|4HU2CDL7) zRp-r5S|L>#Ff!QtWb``EwzM01D|H4RuuW6&M9WoEg<3Uyf<`BivV3s&`Ej%N=6oHk zEz4p!PlIVS3~scjeOYnTm;_YuhC_22S1H`>zf4ymzh^Cj-{n>Z|3*8Z1={1o$6;CD zEF?avE~Lxp{#?VvoaRmn?6ijfzus0*r^S#lY0V3$H@OZBf6c(~XQO#P3wj{b^mKX* zzra375uf2w3Cj^0s44rwf&`)c;Itmp(pIUtIG&OG<=X|FvF^vPlE5Spne|k!o7NlW z1(A73ULwd&w4%3sPJ&)5RypsY?{OHtkc!lA+J0uduvlg9<+ks-Y+FhJAxbKc-s@pf z_XhL+5D33(_S(Y5_7|+3hWNa*n*Wep;0=AJ&Ub!1f-YK%z`Qn z8^k_Q*d9G@q~IUHb)n*T_>rlSzDi<9hmx_IJo73VHz%k9j`T4_IUU&fL2@FBBuASl z)YuIOvgzjP0Cnjj*m`z(I$f9(WmnmBqKd}uI*FlZRq5XkmuTzV(Od}#vfsE@F%(~I zK#;|PymrqXI3W)2&KheoF^MqYBO)^1Q)m@=w5w&w8f)NoPeaf8)zv%bFKSI#&%R{J z+d1@pTOG6Q-p%Cbr)+pO_tpYD0WdGqV z&>}k6)L`?4{M7CgglVeA27r(aLb@v|=;U)l_5kka?+7?j6xUv|#&7sK^sTH+J6Zjf z=XJLf_T5Fi_iB~L<3Gygn8Lv@-8&emH?ux-FP!RSZmB90{vu>y6&S^xO9%u<#0;VIk+I;|Cf0$%j1qM}l$hM;!rO=sy$Ik?W< zdn$mP`yx+?7(mTvRUc}?7p zAo-x}D)On)d67Dh`fY0$(}G5vj13xh#KdwwcHbuc0@-liKkHk6abv)w2X`J+VI`1K zb1kb}4z9Urr`o(!Qn9*HRZ2#6%UVrB4+yQw_6g>HTvgt?Tn1sF;i#u7U)jEB^l(LW zrJFu2J@&|N%8<14>zvmC3xZuzLGI+~LdYJfo z85~>2dZhzv?T$D;I&7t!m6Bi^fazl}Z*_-Ut#xF73D^{AgM;51tD)_ChxwB1!g(3h z5*fYC=VtQb7&h4zlFjk{(7YagcGzA2qdx3|CKlRE@MF4K$Tx*3sglWl(790*6s2!| z%NCE@RNBt;@qVG&|0FwsSyJosd}TAvaX@F)*~2Y8;KbGpS~K`yHAGhP_`CFlIioywm_Y%rD=#i}-Ph zS8!T+H5omewiUrt$Qm5{G(c?l?D^dEpgkUx&W=E$X(4)^qA|}`PG~euy!pI2#FgaG95|nK#1z(9D@z`UU-kCW;o5^o}$AO1TPnpG-I6>Lbw5-<1Tp7bTA^S6R;N z(v@nD;hpBn|7l3OYQ7sooNk`qp2mCXm$U=v7cyvzyhf`Oc+D)G%%h6~jk#xmG^mGq zvE0AR+!@^CORRSqd$PfaFU5~23yu%Hx`LvRa=;Nyo)3pm^d?lfZ@KF}Jld0}9&&&j z$;}yU)eW4p*gZcfbGx{!R**8PczlGQ5$%2a;uB52OnUS&2l$Z^Q5buApu>VHL~`(t zcaJ6#GOo`Izk0}?erWbaS$Xe!nK7oS!%;tdCgu(kL_hL}wOyC2#o^a_|2KI-2%-ksN#qp7&K7eqJCG$k>$+A4H z{5L7&)@O5Uq@cx4{KAwng<;rRi87rI6LI|>8+3L>0uOp(MZ{OIwZdxLh3x>uJ^ zlYFk|ko?N$HF8*)GcHqo5_OEyD?>Ib;}we?e+~I$xAemx*DJsvHOC40GF??p&bLj$ zt&PPnbWy1(SK}RoGiwRZPHj!8k>HiQgQyEyI4Z3ugs2WpxmD)nUuc1azA~aH*kLBA zZII^}4_w0LJgRzfp`apXknr-%lRZzGWd`@eK2t7PIQ(=hV4a%Hl-_-v$U)L2X&9Z>o}Um2`7f(ln{p?mbS$l;O2XmF=^HEZ9*fZ=thok5Sih`8alkI(w1lY zW?rNc8hbAg_fle`&N(gnj{ktZHa@*whIZKxt8><0cXqA4!~{72>G;npZwf$W4<_H_ z!sjcK$cycaifDB=&QzynyqEPGfOvU3mbU-yfTjzfN2py|_qQiur8wp>Pbi{}fgA88jmML2?z) zB^>%2RgX?U%nzT7J)Sf3=Fed~te9K*-t1USlgrlw5>ED8TKU(9bAN70pMg^Snm7*% z?D{oyfEiYXnZ_P=Qm--{Ap}5iwpcfnDaLop*Q=*?lywyBMZdml&9@K_h%B@Zn>b23 zv&8c=?la#wE$^f3F^BSx?C_hIk$ZObwB}q9&uMJ&XxNDoT%~u8;QV%FnmnuZ^}$x< zYJx032>3A{P1-ug=9p2B>iZDRB%My!;sPe7y|2K;blBS630bo*)<6(iv#LF;Znng0 z9(*2^zMrmEx)SFW;k4NITF7CaYX=Rcl_~dmwSh+I$E4$j>8C}e z^PWk6EEFaaROqcOJV!I(UzMnq|C#KmOkP#`sU0`h&KIx~J&^d)3EKn5WXUoO0Zw%| zoi>A?9-4MV_e(lR!NvnP?%)?2BZp&o3|(~U@Mq(Piq2JnH4ududGC%4bkLz4ee~Uf z7lo#w6FC`PM)6|w%UH;ygaf`F&x$ARJ@@fG&98BS5W)nMOhfo+Wa=qD-rZVm>esTadM+U^cWE=gp!ljBGe>Bt(!rhYKkR}|AHjO2PbU}B=N(C|KGwL5t}AAWn6kbTEMI=I z9edolhJe{|t_u;dv3j>)$2@8lohkp}mu;=bo0d)GYm#kozbxpc(ct^)xx>d$=DYjD z%Li*^PSd}BF~WiTCn&YdvHO$91?5*qr@la%q#$~eew$LPa?-qK;p}*y8txTbSMsg$ZEcCvZ=-U~d&SvTTq+ z*{@AgaiT`l6*51Qw3np!I&;zRo$NF-rDA9wO-Ct-BMx!4Yih>|78J`*z=x8hWow;J zWGmp0It&_?@xI7d7|Pafw`GCb34#M<<_)ME#g3^xm&CJzr@an@# z3*N8Np;fZE+8WoLZb&EK;&<2|M+K|WXh_m?z?uC_33uV&;@Gxm#F#Uq@Q&*^URLX` zI54^V&5{@TGtxLZH4pb4Vcjorgu-dBD zQU1rFzF94M_3i7P1Zk3Wb!tHyN}i1XZ79?raF4*=pq9&THg;1bYD7O1DR)MD4;ZSt z;X=}itp+n`|%1$Ph;v0IS5d!D%f1}EZ&ewifBa7je9o*>>l?s*y(rF zCm^Z2uLP`l^Oi?+sj7Gk)E*U%V#yjQIH?H>f8z1GX+iioAl0$1IjAhJ;W`e40IC>~ z>`^Vg`PA}VW|4{eZd_Ks788_w)@!yF&A3Nr_dP)zwLdd05ZEo|T-q`9zi4%raifB| zeh<<@=+VQ5T#YSsb89N|GoHjM^{DG9rv(SQ0hMk(V3~T5w1^z*NX#tWd)dGkL3Get zv)kat*s--K38gM@DE5td0f+^tl8td*nl^?UmVWY9T1;+wuaf18}cy12w`wZ17=z6D8 zTg2DZS5=jG6anr8cS0o1W&KB*J7mqQc<$qMe|6xVQtevHs#y!ZE{?Y-i+vVcEMQ7+ z8VRZzVY8~lB!{&koxDBqX@s`@BVqMb%|bU74tJrJG^z9Fi=R#YMqe@mpm ze^?KgBHUEyXYK!1NSixMdO)o$cy%g{tudwROFE;H?VgP+6`hbzN=%p|1Q6mgY<$;NInb{IKpq!jfrXUq(btU zBq!kyij?x}HH|NX>qa;c>so|4{Iv=`RR4(sx@(k*?w58rAT6<2%dz0s`xXLJ=D*r= zUAO7_u{#?o2N?RDh>eufBi5&ci^bxoQaEosYgXpMwF#;v$y~WUNTZ>K`S8%>!1VzW zuPq-A%`+)B6=3xF<-`3Yb7rNVzUJN6;VV|HD}ASDe(&tJGq!NdA|EcsI-P_-=ABH| zVO5U>q~OU_^qtrDp|+KyRyayq$W(crzoS3&y5LI! z^8o&g&8wqr1qNdZ(Yq!dw8d};#qil<-@b8QHNvEl)#qJ-l8~j0;?_ub5b(+5ejU^x9w0(hWmmX`ll-I_a0V{S~H1zc2t5?oNq@8Px zOoq%GuXR1eTnUy$bR*B7|5_3OTI~MSUrb{OTEFSTkK#hLxj<0JOBG$70d2b<+b_-c z`F!kl9qhM^SO?~dVc2*iI*Iw#Xqzg-Brk^d){-?Uer>Gv#icCdg|l`$&ScEjV!94a z1$Tz5OxxadbVR>zL}_MIW_!z^)~j_JtE#)_(QyiX*Loons9p|q#pv>V9;+4je^*5E z1nzmi-@q&WI7eqlz-^|4%nL`-%|_eRN9i{Gh_>UKNyrf$UO;HBXx0vy9 zfLh^-W4x;nqmYx_I{#5ak%9o~$?0jZJ>mz17F;}~-@P>OXbiP1kA1G~N!AgL3V@3M zw4HWs;_>$KVMCcgF&}COTD*z<;jlxn)2T(mI?m9V_Y7YTwL{hq=7P?{tqzO}E#=Ci z)?@U~!zM7NCM@YPg~SGuvpawP?+W1}t4_ag>gBvl@mQ@^zCyRSilJISHf^L*pU&!7bxbo7rvxn>~j_V|6?(sp&+Srp(@vnzO+ z|UbD1V+spCcd;O?!WAye#g){T7W;ygr3$imUNfT!f zlIG%LhvYq8jtr%tC46k{HcsiD5p2_7Grp7vvWY=_FqCbaR`5}tna4}DOC>28*KIdF zY_?c%Pl}!CKugHGa6*Ifc+G{L2~le@Y)<#^MlHSAZXEZH{=00o9p6`0atFKmj3N9- zW7q%h;Ur%a!i}4#})fLmKNEMrD&k&05>-9HN=n|$TUS4(Yas%2%TSOfc5 zV5B>keAZVU;T5*g+Hcc&l;(tv?E?O3OiT@hQR`CKf`{|=bM<|tBv}7Io@@=2(>JG-+=c$`Af3{<*N3%^_KRf4P>id z;wup)O>A`}(-SB{y^*r$2Ip1ElrER@kO{N$6CsdKhV}5H?IIBD9;)n@c`tp@*HXhD3Trr}rQ*`d*Y{3n*bO(6#H{{UaQl8%8nX!x@|} zA`a}b_8*kfmBldb?ih$)Ou%Or2{t<8gNcL{Qd&bZ_FLnCZRofaJ01wz_iBF5)0ISn zj}ac^YJ3KRk3UcG%$0Lg=>vX*pMJ{o259Oz1 zd5}ohb`EQ&WHhqEr5N7`+lt{#wL4=+eDv$$(+~7f-wPT^tB=5fd4&Yq1pN<)$s&<2 zZ^mWz>aMc8)-!w9o2$dk+7M$0k_VyPsDDWai*#ctE=`-UEm-f#$0$u*`v%PGqLG9< z?3{`*j=ST&*))eAXG1pfPuvJ@#MIIeZB<9!h_DZW2kO+ajF-*E%h$73mv>hlaD}RD zPYr)iqMC*aU0Je)w5r`$GO+@GPdV5_M12^NqT(TJmljIF`Z7XDzqYZ`O`=?CX*}l1 z)Lm0o5;qksZf%{NC|4LM6P@-rXvu@sD_VQ^2XIxC3g^`_TL?h2m#I(YsT!jmm(1%w(m}4%C0pjpMfrtcK9OxdQ3a?Vow)P{EI)hty;n}76iN5QW#%#U z0N2Hc2lD|BE-X?aMby{fc8}ztGN?_g%UTDj%$a?)y$zgfat&E-@%|$p@f{A+ON*eB zn374aPNvbrGtb#|qbE+X=+Y(vrTp1TCIKe=oPcURlcf6l&R3C?oq70*S+K(Ct(6%j zoAa|(U3>-d7gwO=y?HkUH7`}bEOZsp=ifg2Dkr--D@wt%Jeut$LDUxH+DchwiJo>@O`9V7Pg#_73%uevq^!N9%HJ%u%;?wwYtWKzftGaLIJgb^>Fo27 zd)ED0DdCLypk}9z*!X})>g$H&{!tG00s)B3!`|#i>IJAsN#~siDD_N?Fp23^I!XVD zZ=Rz(=S_km=fXZi+~iqADu10wJ7{x%`2zGIt%6G*R$YUKLBr8(U%trsa~MF0a-}J) zAYPF4Yr)71Z+_^ThR$b0-jDS6j@bh(PT9f~;XzAU%RYkn%0`{QLVzci^kM%%`?@KN z25gpW`~J%1t+!$kWp=@tI7KKb@Y;Rc7{&U!R@HXH%VCWEp)0-q z-x_3HTK^apM603xh^`2Lb#R(F3LN9lyi)5qh-sYjmTDUD{Wh3sz)jt6gUNIgg2Vkw z6JBDRS24^D{jR)YM5gjv=!p8x)Y3n2@~CgMCmc7=O2qvVtN_Orh>r7@KooL%AE5sW z6<}RWP1EiQx?O=`i{JSbzikpucfdTCcfe(C~emaz|Qw(O{ZwmzSH%p{_lYhSH!5Q%aQk1I>Y})R9tCqTP_#V`yhr zooF|Ni!lGj)~(hcj(=>P2|8fkE-)VqZBf^@ovW$W8;9rebmQW7Y`HiL2JLRx} zdB&=OksKP5UeDaXz$5+LpX`1B+&+iA=Xz@2gRq}Un5L=oqYm$}GZp%%@XZ&P%svBx z;0?U{>{NfN%c}BPbUQAPXr(-vx<#|y=1jzhUbMlu!gQG}6U<31bKGA_JJL2ctbK$B z6ZHF36NK>(<9A)|6R<;{i1koy14=h4daIMjwgS=k6B5Yh{kY7pD>$pvRj#%9e|6e-DATWMmZ_0KAq|Jn+Z`=%vw(Dld4 z2imc!J(kimD0_?HC8`|q6`zZ757Pxje97(@e(Asw#0rtLO*9xUsM~b<^tOclRd(Fp+Um$7UE6+F6VtvQEa`&s6~q^1Nq@C)r$(R0GQEDP4q1 z*;i}OnhUEpxr_hv`ZHo~U2Gixh|t1d^Q0}c1OJXt6CoXm=|^ZG<8~Nwv6|C$_O8D1 z%$#`9nuvBvbT635xni>gIJ0~N%Kq^7j7JsfQ%dPSbm`D%Y31Mb#dl${fW0nwLfs$!VH|eDvty3vtYz=?xTvDsEnCmt@2KxeimV>W8 zu8P{Ws0Dj+Is_&Y9*#g|%{&rOzqmGZ@8)%uf9$G)K(FELSX}goUf>HU^B=y)YGJ?n=Qk1T zyMLpHH=WXK0XhfAlxs%TOgV&a*gLIskh~V@J$#@Y=Hz z%|g>25@&ZnS|v~TOQ%O#F6Wd|b*iZm0ep9Q;WquN8+$XMHMO)IjSH1ZuFydozD;`? zOplAxY*x3<{W2SR$K+sEmZwdm!5n=azzYH>y zej@tA{lEie;oD0o=a_IH>&+Fs^puR%pA3cK7Wz^&Tcdaz-ml48k%G-ScPA{~Po zRfzeFSrb7N$KDTeQtg4?md&II&DhC^W|Y(Uc6T z$~-BhO9drbA1(GqfMCx*vR+VavlRxH=*9n(gyS_xcfWZU~Fd>@H>QGLwC{K84{lVrA@fkJ&4^*5VRMaHeCs$ z8Qekb8$4-XIv}zy)IJm>o9dEP-tdU{$iV%fcU;puiRuKQF0n7ZRTZNs()9v4!w6~} zo1SsEfT{#;*4e9m(ep;?xrHO@yQqHauh_}1u~Dn$U2)E2`;yg2DS64B_xSKT-K4lY zT4$BAi0gIOcxtWM%Vyn-`NgSu1s$nY+xa-Ad(HWvww0zIT&ktWn{>OFKFvVrjAKh? z?rXk%ku5OWkd#$|O{s|3Q0Gmz$N%C50x3L`IjIWU{PyZbJIdpx`}^h;1~mvJyVZY3{8K*f@Da&A7g5 zbWc@!Eh&@fSH=Bopi!P$shi6SBksMK$`P(0FB7A^(0CSVZ}9NK&51S1!B*sU#=f9j z=GTD0iuq&q_I|5Be?&M5;e9#;L^(2kJ!{|NMJh&1^zLJ5uATC87Mi4hjjR5FP`UMF zBR+CCtu$gtsVhdCO0p9fQ=*w(zpkob;X@_p4kIA_N{A zkweb41nCbGa*&;v6X0weI_iHHt#Y1$&XDi$w+dL6btE6Lq~E1IwzEnc887P9gx&z= z1tkRgnFr1Xo!1JPzVxWwc_0-I&?#Du(0A$r*H@nEv6UbHj!lCu`G0K-r)8^s{7z=f zUt>09rNUH{ilcf}6SfUhuXCwB8U(G$qZZ^lw?Hpa*7yc-?RA|>&u zrcy$GCQT0kRoc4qZq;%o$=8tdQYZ@z-+?hy!I1hEUpD*fdwVJLR6eG)^%<>hmW&PV zddb7M{+00{AfzI!`R895F9=_$C2rKsII;K$V`o+GN(Ua*9iqjN$VP`BJmvM*vf%d< zzN=hvWPqt`P}vCsW78Mp?G{PPWjPr4h;LUXVk9n2{k${7G`~9Dr+!~nCRzV@QvyB( zcou?IThqp9Uy2ZWX9to08J;Y9UMq0FDyiN`_|>D6q;7cfms~Tq&WF;)Af`}Drwl(g zv~oXN8`?=JPR0-VAvySI5!SVf?;tCRly*$8@DSw_pR!D%n^J@o0XO5XV8#4!-I;5w zgs7!vbklJ97$xd$z~inh6B5S+dHjY2?B5N^d8r|#JZ`g* zygqr`PMcH5olW2tJIQ=stuXu7|){-_Cq(P`*nv|OdfO^go z6;jRNzNPjw3+zCOk}}6od(BSXFAA?aqK(qCedR(cZj&Eb8%x{KjI&s*S;Qf?6Nbh( zAsgBcQqf-YCJU3TvdEtk-f>#Ya?;O_}d#M~Oh7*g$bj{3khadbiMBPe~fIXw{TP1kTfU*~kY}FWJSLI9w^&t8i zK5NU6r*jmBuI z&=jRkQ;t5boJ_VpL;vt)cQdirb(O15oK?57ysk1+nhA9Tv1d` zeYcg*e_mR^0;jiQ%foz)_~(rIGB8X@hu@tWeRKwNBow3VHRM$+B^>%(y8SyvVG&;J z6t51E)9CO$~N#xXvPiiP{at zZ2#@67061w&{lj|(fVee&D_cS?V}QS)&o7-(QZ5?b51y-zDJX>`fv#6c4dt3;}^c8 zPycLZ0SV;F*s)Rd4_gtOfaTqSUZJ5ST#My`N(a8Fq-+j-{`D5*Jf8;E~UfC98$}(theZSBl+~9o!s)5+|>noGd3_Q&9~^GQuJB=wS?{v zbUFC~@=82EBnkvQ9Y5%q{GuFxTnVS89OgF2^b=uT<$qxAOpk)NjAqi$T(50@-pmt8 zT?nM>#BQ2w4l>ExEu!ek_hc; zB&AhAPEaD3tFHvpQzbB}MvkCyA$#t>F2Zqt`Fzc<@}T)B#$t}yg|$i4UcQTiC71XP z7?vaA=XPE~{-a7{Dx0^MBdB3rL0G)J62|&FUGUdjr|`d<>ku#-XHC{^8h;OX;?2$S z8q*#H7ahN!ScJ$62Bsi9!Tj;NEyA+`tCaeZ?RB>+A@}r(DbE#s2j%YQH9{YpltiVm zmQj2axuL8RI_SaT(DxU;If`-exY-nC*7cvo1nlXY#9b(3B70A(SX*puO8SgzGOH&D zb9|@NB7XNF*r-|`VJPe3z23sU9e_zC4)us$t@f~hNUl#9zDZO(3(pHCfXuY=vx&ww zfC90jeM6Pf&$b#_r95ZIKAow=SI7dYjzio7_DWZi9`c0biiVqmM{3!HimM^t=k8lQ z2gek^VK=A`pjC)4>h+d%hpv8LZSWjjdgbLxJnDaijkKucgbXP8GOe18Kui$=FiXGl zS*pTy9Q`HJcOH8^V_n79F98NNe#z6C&Q~|;$a+saICoB=#0QPmfZi)mLJot%pl-9qX z)63oOP4}JxLb(nlegNt;)1@~*1HXd{0C()PQ#(BeQL1lCS^Hb{;~4tw7&-sO2We;F zje!23j6VvoqYc@>70RQ-;zI}M7RivwNW#yVrB!V$uPp&c5Vt4boL@<)JN$V29wrz< zBK)2$UR!rvhvpUIL|)k}M15(dk(?6xN3TniKlk$;ZdUmvKV`{}J@k7qHuq7-BaZNBJ#wa0hfDe+F#IZgc!pE>@a!vYjIJH`PG&WLp9-B4_HD zR%Q0o%E=XEzeWT=5>aMO|5tj5Z_qh#kv|%Y8hqsJNLJnxhy*T&(CF^9q#YmnH0@NH zuSW+j3Ia9;85w{VD0TnMpO8pVc))(!VOe((1tn`jfAb8pse&dP9t;WszARG#2z9v;Xk9cbNUe8vi`RB*l z->CP%mr7yzo)g?}#&}tKU`Y2>p{vPqVwlxTk&stc3l?FGW?GDf#;P8GN!N6 zY&0Nh6|e z77R+C@9GVWMSXPz)nie4m=lYBG-EXV6JQ_;7T?j#uGHw5JHv4d(w8+O0bXV?qC8Kf zAx{GPBSo`(*Fwp1;C={+@Hm1{q=ldxA#*aD%m)CX)v&+o%nhga2iLH|F5E&c2Wg(r zsSlq}6oJJ|i`|4UMtypGoKdu1$zA^>cj&K2$Z%jH-P7)}{SWM)DDH)Xx(mnn;tTl3t68K9746mnTN$CT)X-3Xl z!9TSf$0AuJ4`taCF9wut_}SuwC_sHgPnG}G$ElmQTqw}Is7wg%4SS|N6d^_52@Ky0 zI*~xlGedUxkVtx`_2>5?G@?UKN6?~@5QnNP2MRb5cMoVv%$DCqt|JZcYsD%FNT$-1 zoFOZEY1z~jG!MTwXj$RSC(79EPv^B7T})hPt>^UyWa=XKtC)Dt3b@p-nKQ4pT2^M- z1^-Cg4D59j+8Y-ru-65q{&2`cl!dncD92pE4CUbob}bpMF9XijP;zFw1Fcz!PrHko zqZlB)$x{C=QPXIiF+^c9r&^&zP*H0~W=_Rb485%yAOyl?MUo!HMOmpWtLY=TkrA@k zpo8?7rK>-^;|6)|y8^H#?<556d@GPX`e^IJ;+O?R7b7I_*xefpHEj1!#SsWKv z##KV8@HGy@g_0 z2?OXlx&shIU3`brvnR}Z&7X^JoSeQ*R~QSn0}EzKe>THpy}!sp(WfB|GNm1_zO<9R zwn}o~&>`eZ762crpu>U`?;TZ_X+w?jm%o>Zd_cG3n>>#Gry7fIl+O1<_Gv#{K1AxA z{8q$LDz)I4l=nxMg!C_f);6sn`IKk6w_PKaYj{@cbXco*)=V4)*~q1J zFCEsVBsy{*VZz3r(&$x&&q`Q^T7J`=I4S;6=3nRU?s!@6u&QpNY$YN8(FYRprA}#R z$977F21)UoGQf$rCW6te{ZlgJozs3Sb|+oG0&-Y6KMA{8d}5x$ZLz<$MGG1#RSkz~ z&JLCfdg!kDXy}kqpIho60&29QEN_=qu1JGuMC6uP4@>!RNk|~BkxDM!&szT`XQKu5 zSs-1C7Wkx#uG7N2JOs{8hu>V=Q7#A&nra8{<_H6ob1BUh;fL4wgvXiFHeo6M)^4NI~n!_CKv7U6=MP z{z8L=*6W1dhJ#%)?-*|k4HqA{PiQQ&-8`Xau-J8MLLuO8Ei?%1z-3-Px~GAL#s~oK zVi${yubfh33}!rOl0pqUdz*gVf9hU3_Ka z#&ckn6gl3%Bwmd6JXk>Z+uQ)qyGF0v=tS=VLH$*p@r*r1;OzkISAoC5Y&ZjE5|WCP zxY|v(4iICq)(gMWDncoE(COk5 zXL43=9v=C2*xyFk;{$)&IJ-y?&Vdn-tS*$d90^}mRn$foE81}7k4G4dj(m?7APA` zBx8-EJChAoorN0L{Q%Og5L1!{ ztdk@r+buG~vR`I~ln_1hmti4hW4ZJit}Q9YPq%4nc~cB)BhvT$I^H)JF@!XT4L%He zJGqu6IlHKHbok6OR7n&|9wSNn;pK?rmIHmzOa$1(v=P^_aLR+;mg-}`*2V$PaSsar zl6z}4!SvAKVxjj`{01+#!KO4FcD3PKDcfDz4# zmB|d)h2DD$4e1vpi{5&cpEsIcj1ekB;L7Q(>);1m5 zT`_1J?-sGt98yph#08&4W6ynGpIdk(D8VMzU-bA-3D$ZGA?Q_V$lor2A3~`l&JNG2 zY25(R4P+^@oXdQqmoz}}29{Ag{g-H<+VOPVtw_(oY*XLVGnTRS{KN;kAP7&9+i)oY zF5=T~=*>ZD<=M||K;F%9)N#YtA_CWB>fl$T4WNQFVE6&1&?_jMhkqMFC?Y?}bUs$t zv?#0OY#OirD$`SE2)OdRg&`w6Rt$c7Qiw}E15B6(&*HfqPU)dNv=raBXyg!Ke5gQp z)LRG{wVwc9d@0UYraWE7Cu}V~1=a&6T}t;)VG{ZUmlT>IB5Z+KYUScxSuT>NSEUSq zDpHQv8I-jE31=oPBjKLQNO-gW3CD5S&JPoXa@nqEj1}KTaQNz$AAGK7cj5{8uu8)$ zw?*9tEqab`dU9k@V+gjUaa*y~LuG%egttQ7-(=n~RlP1Vm!#L=7j|1~;@CnB}` z#nCSQsOu&}&p`NwdUx!oqukKEp1GS%;~83u=?SH68aM2dRW*MuynYyR>Cx=P^*lW@ z_5VuqgazZJy`EFKfgepiE17<&h)!%~W_{Y)8y0C>Sxr6YP$Of={)Q(KqL z_7N;`jG8zrfLw)0METJP-<-k>iA90E!6%kQDfWWC{^It+D12gVF6Ux(sdl58Xoa&A zx8qIcXNVftakun|M>Iq~pDqea&2;Hezprv13#UH?SvAu#9K~sRYSy zW@TvG2CKl-q2}7T6;>fk`{PzFHzJfNofLVn!~HMc!0on0oaK^|(=t(KALUK_ikHnqUeQf^lwN5ueDvAJ+woE`AA$DCoa7e zKb`Z&Gfd~I#x|F2M)RK{%k@>?PP1gvlfS}D`8QG9zLnRp3@!Zy`GY;*_Lfn^bd9qA z#$9zQgC?Ti%O`GM`k$I;N>v0(EBX9N7f^bk9@!X#*yM?D(6+*dYFECdRx?RL(!PhZCPB~vjAV@jBx(<$%_UbQ5{=}P*oSx3rolQ5z{}?YKrj8(A zymGUpF{I5|M-nFDU6#S}Quq~|8-y^k=J+P)$n&*@$I5j}}Et5s=GhaM#A9Co_Y zi(WZdVFKHbO#*x$cCJDAV`KWkgzNYX;>X0k-JCh})MiV~5!c0!x4UQ`=$i!VWNP4r zwc7m$RcHRbz;-BoxH)Q3W@>M6yGnUcu6r7@wtV$5pYjrK>0+W%cRW}2Jo#-8(`jJ&r5MPbGUSOb z!d>)csYDy9^z<$-`{1VXrD-0-rtyQ(uwTmiz`g&PMExnxZotk%t3eG=#S#&$zfGB= zce}Ot&%UNrSNE|+rdH2e5?Gd-hJvBVIyaQn(RwZbB;Wc6BtJ0xuOXEApCQz6mu?+Z zw?+9)`p`eE*_MgV++Jwkb*>+4cZp(H!co_IymTTsMJ|g15Eg1&^NXR=E*kOuxL0`+ zrL|KZq6wkZnTeH@t)IZAe|SQ(>+Ng~kj>AhAx21yDI`CQ=obBL;sYf_u&ODp-pvlx zfSNqoW13e1n^`WS9~pZh&yi2E3FUkofP5H)>xLJ@!)IZ*1teuYc5`BVwz&Mb5m@mV ztw=E&k$(q4qE9ZehUI_3_aTzT#yBAB+txbCUq;L+_<=?@t%It0W46MB_vZgd9U}ZJ zxf-X}XQ80CpOSL)&f~6Si_lr;wGfO(7bKl2{N}%{4lD{-)b0k_e}vkL(c@r}%c67) za%g_P30TgP?k!8)PHN9UsZvnbaxf8N_>EyVv5&=jnBPC-(rD*%;X3kbuF~1H ztpj08raVwWf539CS1&{76?1=Tv1E7t$^bR={X&$L61wk*Wzbc&C$dH}!W8e51;$f1 zpdjz7nUG&zhwSZcggS{oitj^QzqVo6FnTSMt7P zru<)dUpe7ld0)=uiW-%d5SVr0&`7!4?)bOkNv8!EA3Jg{{Gtz+d59HJOg%nS4+CZt zec3WAUzaPp{TEdZy;`feaY{siJz zq5;5-x-~nIpr0Yg`^;<d;r z%>1Q3J6h?L0!yg!?z%R&pzbpx2|t&FXV$SY?rd8hwsVXqB4;|8&V9XMXc;e0kr*v$ zJ$BWM;Ld;Vg^?rw8h6j$tm|YG(9IV>d=*?|YIFss>xT>Ai<(yWBDdrlw-4ar2H&#* z_!7;w@3Jp~SJAVzqrs}q=dww8jpNJVtAaJCIoi%(4;o# zR_UAr*OOrM6uO9;Ya3Ock^8ZE{C28Gai|)_v{`!8v0|scG9EY#qF7qyIg@--(@W%pSV`G-wv4KBD z4G^H4syT=|44iLuJGCfZ_{j#+1OH8ZJl|XU8-9A724v&GWd|M;an5E}^sDr8JY_54 zg+F{cO@@8v^bOf_)EYxrxr}}{2_kiFJgoAYoV-bJ<=y=7L&)co0i_o4ONy@Z{?rdH z0gU|lZ0a?-_=_v~c>)2{!4BQjiZP!GM%qPBx9$00e0! z63iP9hftRj26mcX`51b&FnuCgib}p&S*g*x_ zXvjsi&w|iz>hM!^TCqmYJZmo5peBWRmr(p z*rf!_sC78q0J`KhOqrziAtTkhi>pl0hvfoNnhY6sc;X=s527Fs^ccy4KduDcp~j`x zw!XNtRr^*FLG4bhN3LNlVpLEWyd*dOajx*Q1}2SU7Gl91HuI!)9>^y)+9W77}ur`}|HYeFYJ6J>ui z+sUpra*ZopP^@(z*mlr=~ac=;ys?Tl3$gg{cgOthhm)X^v(F*zPAi* zN2On>IZQA`{ibp$(ghkn%{f*(nJGcD&@j728y!)*Hq;v7F?%r_Thy})@;6?tJcamy z!qkmpNq!%EU+8u`&1+Lknh1TmEPc3C3DaVn#3!Fl-qI;=s>c{|)f;$0m@oLC4Yr^C zZ??RfThkG_aAikvt-$29jP3!sB)0^4C21IKe!z7&i{VEbK~hrzWRzUoC=01#o)T-f z?vOrVZ33E4hZ| zT3@$)DL*Gm$X|{C-QFhj+{Z6Q!-dnNAicp^+`BvK*R55Q_=;B|Fm-TmY3`i z>`UJe8_(x&q7FX#IGrN55d?poJ106HCsGuaI?Eb^?6PN_fIy`JehEQaF5@a6ox2G> zodW(Li=-eG#j=p_P8`uJ*B6|tcG*D>HJ)~pYVF3f(`&Nz zTecs6FOgHnF-}+a857h9|5V#OmurOb;-37}hYZj(2tRWg45OecSp<-^{*G%>*8R=4 z|KZ*0nNBfvm%Y&BgZ1S^p$A??=CboBKz=vw=@BmBCIxKB03-inL(Xh1$2BbQo9%xW z{kQ(1#CvioghKTteBU}<{T1y3cU1PWx~-Bf~Gv;7;?Rl@b83AS0Xe1{k$zHy*qC>?X*4fV1U z5)7oe<_R&{`oUKO4fepZ8%|7Wv;x3NQ0Z7j8cYlT}o9@?=8ViD_gM5|L=M6`o)&i;C;D>#(>tko7{8% z{~F+Kd(+wf?AosHX!1DqO`Zf7fmD(WQAu8tXvL9!xe6c=vLI?O?II-j4+>>P*cGcR zMF@9DeAbgz?TZ`_gYJ+)Z4%*g{Us_TT`+z>%+<(S;n}wo`W0fwZcBNF-97Pxrfpyy zn3cvW;wc1qM$yp441G9d-hiNQR7>gnkr+dCYZaFRP#15=A?{v`Qi- zFO0;HO!a-EP9V9jzj>(4teM4=&Rx*SozP>Tczs z?&ykio1W`c=4`OA2@&oc3{9iixaeV8i-Sa~VaEz*O+yZnil)o6_^+;=8BE^%aIem2 z1JfbC6coNmlWzq~(P6+8Ep(Pnfobl!ljUxC+bnf$Y+5G1By@{CWE{=pb#?ycMWB6HAXqY2h5F3(NC( zdHx7&Bkid9lJP#bwtGpQ&tLAq>ecrpqIM}tYowa$83T)o3LgC)dY@GEM$6k{*IFI; zMP~AOD8uTAYhHz+rPdigIq<*z(oB=vS_zF;s>bt`pRSw0}zX~_?C zl$Hjk;_&DobtYm4#Xp^VEmWkH)!-?{_3{yZV|o2%y|Vuu>!-50{v|s;(mz)`1|849nUMLsRAT{G9?J z#3A@ZR!wibZwCXEaQ%P38!&pOas~7-zDvM2gB89u*JO|N6|&B4z|RRI`+E-@?0aO9=PBhA`fXlm5#mYO-RPNfSKsO)fSR>Npk^iM9P~uH zYavew*jN4^_BHw8ANCdGra|`G< zhQ~*`bj@XzsX!tAiua1O48MMeT!vruZMt3L8ot!pNjIC_XjS8e-6m|(c+f@AkrJ74 zv!b@sM5DXPQd=)(ZNDTaJK2bpC|6y3-sn)J=g#$ns;Cj91Wnv40zs?elAA@AgKO<` zPb#llXt7N7<)8SDEAhL|#ok zX_>9h{Nvb@55Vit`^*?vPOagJ-}@7&R=IrN#Sn4Z?{x@#fcX@IJ5*8hBM?zpMgAl^mDxn0GA0 zu1#0&8artpS_vE?wbGs+OFsU@ZV<@+IyA@SSJun0!!yun4~ak7N^X}jTFoS9dX?9` zlW(s6RV=g88GQEh*a&SRVNzLel)`2|zpmdOe-V2*IuH%1tBE~rz!WC~GsN`&Pml-1 zcD6U4QScG(WW!QxJ@DhaX}EY2Msc;n~v|RX<9$;@xi^{B^)x#M&5EU$WfDoe5Cbvaz#T zPw1V{*$}#JO^Yr4r2k)Rj)k&1@I+7E0J->z7H@_w;yLguD0%8J*&Q1igrRA2O zQX|puz{9HO{ZgeqKwWl(TwZ~{)8@TqX%kCTN$-yTZYa|+yG15x-6~k}6`XCy4_-x` z+K{ft`E$&o-Yx+{(lRrj?40;!XeWF;&DoPd3 z(+EHH%G`H0Reer-3)69kh#ZmtZdO&)(HO%t#u&xs4$xEK7tGvtV?Ioa&PUB}8vw}O z%w;xA_(v_MHo6zJ^?y36zf9{bIm%_s3o00Fa4oF_cMi$R!CfBJ z1>)h%$^R0Ww|tO{Rt}PtFVPBbkN2k*2$pij7yYY>ktX;qYUmNnYn>-y4!5iP^Qb#L z_4it?2#=kMGhDytq%FJmDT>Jp?G%ss^@5Y+;(gw57eR22M3%d^KQCAEI2}%E039!H zy|r>5nNGM#ZU3JICtZOsTu^YD3L!?P-hDE8@PiU)7JTrt^LT*_V>Y{qeOxe6ak!@^ z2*W{qm-YR5e6e=$7-(O(B?7@pvS6D<*ViYQvu|K{hoLJ_&)ux1=llP5vm#LEAS!M@ z%qd`z!#t$cuUd|6g%`_}7>ET?xD#&887A#X9n0>|V3H#q($v2*S|HzI<&qbd=(9C+sns{IIm=oIC?-zmld?49eOsFF)7D#4_-8gZ%Ppr} ztM<>5xDSmm8ukI_t!9KzL`AXILhtD|5Ab+|XU2ECLM5nMUayzqRe80R$ld4ep9h8P`J z`F=wtMJqXb>a)2(5qx`E{)fB|dH#{)i6i|#6HMpfiky=+f=lQDz9mY-US(Q}(#6HQ z7a+kkv<-!Y3{eCd1P3~=_o4hh*OqSf@IGVb5fAPnBkJ;9w0rponJ?c(SsP-DNPE{F z4#$Tc_<7K`jvrNW2m5F7v$Fm$BR>6-5=smYZJCukP zwvXiEgwqpOhQ3ce^wE}{4=+i4rTjfVDt1lNltoXSCaKWBn{L)*UxdUI&l8z9txE}M z8>`76@eamN3B&$VQR@p_ueSlWel6TpF{bbA;zY$C9|U2UcHOW-yG|&6`?L$z#=@iG z5l){!dGcKr%?8)cu)5%76h$=3H6iQTnFAB+RUW9j4Z)(di;+v#N5;{Ub6GvO&AAg= zn1;_O2uo@mw`PN|vU7;ZV^GLiUbwUg1K7(6+>AS~Wr%h;$2jJmv$_r4Z>V-mTa;+m zCAK;y>zWlj{=UBlfv$OY4c2u}pVi@`7de&_zV-!Q7$rPgh8$mTBRMlVhqAoLx^DbD z?~CO%nmOl_-hW5j%}|ydaDX(H&(6Z&vBrt@j9P6SIf*yVH){qhRrgk0Wq@nRk>>)L zg&%HR-}ugb!c7{;ieef;#y5W#WOX=;t15}JPbY$#A6vMdEt+*|^O$wHNbFKCNg@cu zD!t2^B2G9)WWU@?>eAE3T{_W>`_8zvtf(N^X_))nQ-37k`u|A6Z3R_~f3Jf1j|Re;@Q(%pe9pxRqPkN@K2R05RR0he znudW&;Cz2~Sw7G8__VMs9KWfdComq!jqNH);6UxD83;atn)~VgSZ)cI5+Xv<_hy1p z#%`#(?+3r;48niQ!v7!6)$%Rhu)=@b_@B{Vr`HkVOi}Ce^04vXbXY@}$a1atU z{}3<#vD>zM^tzt(#o^b304Uc%2UZp~JO0jce`#1ub-S8Zwj{vH53rK8ES9nIZp5|d z0T_VySiZIze+&63O~7z<9pOzAM0ndMn^5{@e0JMJkpL~P8i#Iq$M}kz>%_9zoGZo& ztHoq40qM$!*wy2XJ;c-wWnEj92g@HzN!~!bLUgMH_M%Fb@wFZ!d*d$vD^lZCTwY}o z3R-e(k;&EbY*YD@G-4_Ls;J{iVO24QT-}2#{^Z}qX+)wg(ybIj2#+Q8oV;l?XK4T)v}4|8Z);; zMrKwd5ueUHTPd~AQR-}Ui0NQz`x*H-NtrK@R60HtNGfxK_LNKCawb-^;@A!I%8;9{ z7k;wG%Co%eN(UZyYmaeR+%)vPmtww?n>nKT$Tz6R(A>hL)4Lr;5f{3n4&FU1N<@)J zSWwmw1!WBz9XsRjROOEze4|1Ppc~fkF3f&@g<9Zs!9HA^>mK{11X#T$_4F|{TR~4_ z<>i+=7spl$y3(sG3r&T`&Tg}ZS$eE>)q+krwl_2|3MZ+P_yxJf<8b7|#jEtU7ttUZ z{}c5!MPt%8#BS$r0l~N-&HVX07NK?1%}xE+$?AnUCtl0-C@*wY3Zgy}h2OHm=#<4M zU_+KF=ZBZLrpb!aXD4iIy}$Z~puU2##)=ifFclDcKbv_w&n+)rlDc}v9sa#IYs2hT z$Evj>B!5Xy+%zO$M1m|S0AfKX{zvrM`>RgirnFQwNhJC6Zx``iJ{c_{DnHfUKTmXE zr=A{FfjrGZT&+VHt=AJMU!Oh3j_}w~`ak{vMUwXmyNfX%qP0~6oH#+_*7~^AQp0|| z!U0h$tYXj1ZgoNU0J-hY?FF%T35dlhE*q`jN~yvRdc0jKUzlyUMK}22^H@jJW>jF} z*Bes%Ke|^hR%Ql_9kRLv$qo$@p>(CLKH_X652*7KA6vs3N1*&aE5k*gL;#*vfR!9|s`F23cCQ;*)0C?-7Ia+s&EpSMO={fg}oSGgNZJlM4~ zLJwRDz&LSKhV>1iN{_?7)s;i?n1`ox=31O80r_g389@nFU8@}3X^ELS)+5)?`AKOl z@e(*8#+G8_!@nP?U&9_mh4fOpisOkp+yLv!ql^ADr@v{Z?V{HvGb1}*8P*RifWDw> zi5=rv+mJ^Jt6T*`<95(qavsme?k8Vc0EJtD|I3elT@%P4B4eUwlu5TvoVjGR*x9Hh zb9Wf1kuUzyx_&hibMn7)^3_WnJl);HXMk-1Y+zv?!EOQ}1QZA%z=Zz5WqwebRmq@w z?$U)MGn?775Fx%n&Bd>pHOC!Cv-0qUZE#RbL)#vuh#Zf5)e(V8bVg?-&D6)2vW(cb>HcDw(<2HF;(KUk$;yJV}3r zE64qdE05UOu6Eid{=Co?;wXFk+Cb12BH{n#g>d{opG{+eWlJ~TYl|KKoEj8$?$5|} z6^uO@O@gggyLzZk_!sLLo1%%KH1L;|$t!!7j3!E7em?|B#kNj5)Y9)V+{&P2pp_{U zMB@RlQnbMCI&oY3F-E{URN4`D2JCHCHyfkLCfGJAto`Jdejs^evcwgHcOV@fSWd?i z9fy3dwAosKL3J~+!gZU4%h>s=bb+iCqE_3HQT^_ zfc!hW6GGBSvd}jx<&EM&jdfmQZ}-#yp&re8W&K|TNt-0{AG0fA=6oHFotF`BfZCAh z$?p-m7jo{t25qYN2mq}1p?6%L70;bsQeE1B+#0 z3=0Qk5~8&TQSx6}*VG8GOiAby5-5?SJ(UJYlpVg1@L}r#)p>9u>LqD1ydEi_LJYR!kFikS3+y3+Eq2O{IIlp=LI~5?T zBZ9DQ_SU@i;qemoOdy-yn|TV}jktfc4@r*|DeZ(g`WN>XfRT~`z*$4KEGxz7+o!V; zr&4@MeHvmsE0|CH0|*kOzUVjM=c||ETiR{U{gi-cglW}(W54*A11Q!@H98yHA3~Ww z1DH!~;DHCoJ((@dVgmtyY{3xYknYSviMNnqYWQ}O7?zI^NfFMxarl= zdXLLVigGVW_j*lx?Da@5AQxt2aB}>Zvvj-5pD^TK{dm3leMUbVtMHBMRqy5C0)F)(@2_HbFS3IsqMay+WzK&Jcs#P zm!7QiON>8^v(G9y)fPW9P)i?^uz>Yu6lF{py?~Vd-UfZvcDR!^Ax**d_v3#SaTKUB z?;`KL(I0?mt_@1s*bpEN2oG}oJsVcbfDq{*KfPEY;9^X9)$?*o_L+AxG*6iu>xvr# zf3AWqX;g^SO?Kx8&{0%ch_#H((^9NkLa+<<5QCXQ_Z?MzMY@)lwdT&35|^CLYQ<9h$Vts$*}R}z41zLF5rv)Y`I3j}CdL`#*$tHK$e#ms zEvY>b?DI?d9522)zL~*2#d~qh{EMqdm(cC`$-+Z<%zNWl9OeS*Tz|i(8!0vKsKh&_ z`s?nBNyUpnICp-^r*s$buYVbw-=-|?aJx+I?5GG(LY(kl)#;14TBYOrtpC16OOpx2 z2M1O!vFWeo$Jf`{FS@6qa1&b0g5D=$iD$)nb+VkJj8Vm|ugYrQ+!-`9#TSj!W>X(Q zJEOaQaRvjg$n272u_0GDEsS?I140Kw;P-d%t|w>{(7HIjlrf@n(8E9&V|RrryQ288$8*Ueq*q#hS|#p*htVZbOFIyN9Gnvspad z^^$PzL48CS#58ENQ7hy^*4v&=uJW1(c4}*oJG1uAa5ZJ;%|a)PlFI*bO?sRJZTreS zM^c_v`hnSdPdmH}{i(VHd%gcrr2XqL?zcnAt-)7MNZ&(CSq>~bo=qn0E)kM1MZ(@F z6_2>1D8ut9>S5=1YGNxzlfIPL);M|ie~gPSYYcxX;K!;@`mFM>wUUJw+hvHPsk`1noH-Y~KX;etkGRE_Fg-0$oBn*+?t{@4_W zwDMvN>?zL@uc-4R^31MoCF6qUkbL_bGV`{vlMywgs=A^_UVYn**TF8I1G7cGWwJT< z7P<4D1ElSdS#b^pE+!$mm2NG%T8-YTp!o}r@lS?JP@^uEBt^}=zKh_mwkL2{wKm_g z8J16lX>n)esq2Z=1ggx{r21zT_Jc&QX|tv@4@cfQf#BF!Uk{OVc=*ED{LbL%AtLp1 zt7{P^7JJ>K;`gAtfi!`?3F9udk-!m8v=2L;%w88<)n6pBE3ZeMojS zMedpcyIdA`7dI>KZZ+|=1sMf7WQ&X3F7%QZoD+_Oba9SzV9K`ZMA%;(7r!)98@s0$ z?b-LsEEART*bYCuU-JjOdr$Qz)EC-&N|h*XBe#{dQ9LJ}s`3!{n^~`W-kS}GXAV#e zG{38T&L5b0jQCwgCsqI8=vFCn;)Eh3s&5SWXI~unQqkf)E8pF`P?hOf!86#7*juW! zW?MkAo`oyyX(tZVn^Td?BkC^9Ag4**Da~Z%)Ps5DQTu;A`i89J^eaV>uTXuxbhP)_ zt&7}6JBh9<@Y>zbRDkZ#WiT?vOU&Y-JoZ>w3wH6+)=Fd)qy|RoK7F-j(W*p>3b%vq z)yq{g{9P~QI5zW*S8LzjAI+WbIi}T8SoN`DLY;7J&j+X9V~$vq;rkX0CBNEb@>1GX z7P0{osy(HsuU2TN+pB3dSXvp1JZ z$$`^FdZ;MZQ4J)qWyFruSmg#*Y#7C}pE$&_ebK%p_6v3U_Kf+6YEhsm7jOe*Mz$hSKNaAhC_s z!adtwfF|%Je#c3omyHBTaWV+VnObr#59Ml4>7N#s>=!cP>fNuJqr@qZUx<|U>32fDVK#ZpuZ5*}O-)4BHuuNAq_y&#Tx@&bRipA3 zpSTSvE6n{U4!yM}ha`3L@E%NO&DUMqVUrxstPv3f=($DHeso^7*9~vyruD60v)QR2 z2X>p!XH-4O{G-QV=BO&v+F#T8%X;I~^^082j!ngCh#TWOun}a)O`6QOAtilQC;gS% z*_|cFwuyA~zc%kC+^I0b&IF{baVaT@i5w=#w%R{4zIEN($FINj+^)(xcEhvA1h@W~ zVNI_TWAE963x)m|P5i4*M9T2R5JXxAVah#kX{ZMJS<7k{Wk{Yh`<{hUv;HktR(!fE zfvl#dFei!Z&|=j3>N;;yc*^)Ho$M-+A2UVoSEIyXUen)+CcQ3`h3(ErSj3%4&Jv;%Q+Kn4KtV^SLKDY)dsmJzu|58tld|(2x?jWCkFmOv zd7oK|jE?ML21Ix-!Hi$euwmEA_c)f^xW4l-A~X9qmNXfW54R&pp$CUoefKb89dIV6 zxgSU}&w9ikOm|Ls>8Y!iP&$?MlKwHpMTXR-RJZlY=5kEwEP4xDubn?+f3ZooiCmPK zYXLizJjOwGa3rWd(-+vAw5M6llLVy&2Ge z$+znbIBLIh$_1FGd$IzlLUhSrkCd-EfcrrBCBHDXJ!w|*&pWVoj;e~H_Kwl7;yqYH zFl6iS{#`VbXpwE-RyVsDUH+TXk(B8Qh&z!$B|p~MrctP(WgS)qjXYCqNrwr95*Kjc zDPG!T6VB{JZyCX@MIo9s(=F^ToTdl+OYk4s{k8wj_BZwL)#tV#ZFTY+*aqB^{_F{Q zxu+#QBRPyYeOQ5hC}d6Y8LSq;tR8p>{HL~2q8pVrn<24Ek0Ssgx~{N@I%F9OBdAu zIX{0saKmO+2bN1RmaO~y)U2uV4nw^E=N9{E-zC(xzO`T`V-fN zO|tApsL`YlX47%~WyT)X!;qT^6Aw@AS|n=m7BgWVPwF3g=l6v=#);$No(B7ctvAv{ zCDtpNvhC(LaboV)wV3Ho(C8Z@_oiniX_?KD$Cf5~nMwt3-g>Y8l{Mja)HVHiIZujp zh?!L*L(I5%*#V0>ec~CXXx+#|orE|M6=xDHhWd-%L8Yj-IQ5BD`9Kioaxd-@P4<3A zLQJ>CZ;zXSH=TUoUckM|$HqTjn~cp?h$7kE;;#`^(J?obQ%o`B*S6mdn(W2r;{&&t z%b6*Lrb)OEJ{=BR6n9OQn;4qJkniaCO(*-TO~{H1W>}3R;|X6gQnC*gu-Okb<}Bv3 zKg^I>f04tezaN3xj&OWZci0HngoZCA4i)z#u=O5WCa)hj5W7~&sKNnTCzKadJ@7Kc zo-@uVH-_>IT@Kx$oP6$Ui4r^oe`|HC#z10wpYJvBu7}0GU%HWl7dO%V7zNh4Oll%E zCU3yjBh=99=Lye>xupmMI>I0KTb+~WTwF;>H zauWPKapP{u z*hGUfOybljDe#!E3903M@M{$QJ}v4R!Y=E5GQrdMY!0V#z5I$Eo|^95VSsy|yq|9R z9c-1-!s8zHkd$SLH>{&U1J8$~9d-7{@+G@TVm(bCW#j8Sm0!{?a_PbqbjitimZCWA ztnb8zXVn}I3%VCx{D4p)0sEnwxhiE%~&!v(e@cwC<;$L-Tr(La$1C( zCYfdCjn&dWcy*$T_M2Y94U&0~qp`V+5gP`Apn{D3Ul3R`c`$T7AJX=LqUtu6P*dq?JF~~YJ>hEV8$hncMuN@x5)V@TogmcCO{_S`*r9+RUN58>1u*^jt# zjeDeYDzZz~v!Mx$=eeyI)C}6^oDkEdWePS%+9ly5c;_(;a}s6=wihQs!yP; z6T4byx6}4@d(BVw&)5qMR35rX_X>_cFG57cR=&Vi@nx|QINasC-R6RiFS{Y7eI89* zRj2)~O-+c$YZ897D<;_BH||mJG5>Pu);Rc)Co2!(%-e)btt}JH6Ur?s3`)O}XLl8B zI_ev>r{zYjib2VIq{6UvD(_PxU-9(D6Q_3+N5M=agD+Fz(mn%*Fb-U6PmK%WuU3qA zKgp8+6jQm61bLcF>IcWo)ci#G%>3CQgLChZlGPBT={qF5S$+}U{z?#K_y>40Vo*Xa zLw<*P*17ZzE-b-SPS|wL-vSK-?J>NrO*~ri%T#cI&#NtxvtS$43t*eEag{Tvm>G1B zrG0@Ll&x_~b{A`urAd%C3pYR&v!m4hBH22r#VD+rhf6_kkt@*!3oWC5L(HHOasw&qt@2X z)l2L$;h5b=>71s6(hC}YrII}&_$8=q_8pk%kAX7*vDG?imgCnGq`*57i*13R=;l4j z60$lREecNC&z5$)T5yet)N2jYowWTpXjeulY<-VEJZ7F&>uoA}4}P@7X-J-?3bKv) zCB)<98|+m#SAlyKPi4J`ltAJdcO&sCD)(#Nm`abGNTU%{=tf;=AOe!#@6WW7OAIV) zi8@h6oZ=Y|RZYiu7X6g|;m)-gfYoPnhq@_*jV=0Xa&sUWpOQql8_A1_*4<4^b600e zVniv@wn2=*=dIF8P@1A>9tdd(i-SBMyfm&VIL``hzlZ(WTJ(FIr0|Ekl^?ZxcUMbvi_k>koO_|EaCpB^cnoFHtya(HQD z|o5}d~ddJvwQKoiwNz{Y}9&>_Uqr;qHDv2-@sYVM;o7|x>@$vY5Ga)8Z z-LBxv>#X2dT?sW}N2B_A9>`|%U6hpnhq8C^XZrvD|2v6NB$ecxicSjGWE3L=K77OC^OBiE@gZ*;aDMan8fA7>2Q#nb~IB_c`@?AAXn5=Xd#j|A*ao zf84LP!}HqC#va($r0#g(NCg*u4P4L)orq}u!Tw%ul_xNhJrLzC!(3iN8eo%M3X>-* zAMQ}_uWB<`n6v`qFbrhO+ut?uhK zB0F}4A2~pZQ^OI%mxumP!c5L@ps^fP4lWmL@D7VvYMR!CJ7Sb(C84#pU$lO`Yp*M( zZ-IlR(Mgq0Cqs6VXCCfY@FlD~RKw}evv{RTN-Hyyl6RMuTf+&<-$QjWE!OU?O+WA$ z`Usngt27Aal`dzj?XRK*RibX71lnoXqC{=Hf{SGrG*ME4d+W$p$FYT7bw?G`@6GSS zvU8T4=d&`f`*}kJD8qB|gxsU8n>_j3KQc8qEj!=ShQaD{9=FU-Je1nmaA{NKcr8C8 zVAF3vNao}^DH@y2Uk#D{OhwU3AoF~*TkRltf_C(J^@|AqRFnorUia6=oX(9LI9%Lv z$jTU~q-2OS!geulc{|Y*x3c8Q;^aPCWM3INg$0Se?~U&GRvFk5%7Pt%yGQ($Gymw$ zp*_pG56COUO)RjP+JjWl$C3+kHJ)v>nYSzpO5@aELjKn)4pk{XQ;t{04!PsW)--6O zAszS_kpmi?XMtwAF$sYoY#ZX)dd^Zy|mZtTTE;Swe&?Joc^Tx64U)>_~|D;U>A1|C_z=8Bs)1> z`$no#zzy}6)g)5^<5_FKBMR%~EN_@-7-}?q*>UG6Q~E_%$M<4Or>P@HF}ds!xKiPF zN+EZAXk~?X>#0Q{W4*TV-x>!oVVB80$LG>*8Ss|P;o1PV2q3ma?3N|7r7Kh3Fz&?H z?kojccA%RiKmXvB7w9+_jwU&ISO2)n@PfMvfO9LEv}nW8FjEQQ?Oqgar4HT!Mf_53 zd>=PR@X$|Vbst3hSL4^PDF6QFiGuA0NHjw8k*_8!H>V75!#?4IL43S2RD}&uI4??r z-vwrf^~eWxT@b5velt#EcK*AjgrSk0RIHvGTLpCesU-#UaEF{fJkG7t$t*6Ob?4{g zeZEMbzMr`=NRb{WC&Yqf86*6z!ynpKyi;MO@_RzPt`0!DoNKr*+VIPJSx| zjiDJ5rWXVcQ8&V>oZrz1V0!s#J(Kd}T!pdI03la>gm`;pd|=-T^ad*D@Sphs4l5-Z z%Azm!e*6lld`?2i+iBaC_Y-Ql)atal>IezV&f(mH^^dug?n7UzCzuCn46l49Rx8!*Uh*j=15lx%_9{eVDCxvVhF*(HMr7iMZwkd# z4^te_H`92l@bK)8?ShJSqvu>{bcVoQWY!-Z?mU$K}WmR@ak6x!yc< zM@#ig-^g_=Rb?fY=@`Npy< z!VY>N(sos^su}x~U$HZ8l!9DI`Bd>9|E4?>qdVF-Uh{Lm$LNI@$QGKxTrTD7Gss1y z>}3gB_oqYUc(Ag(8Gm2#l?bb6_XNk4CjHaFjF%ikv60ItA~6qAku5#rQmgILEnuVv zF5Wv{6r)|W!v8>w6*7$GUxR1SBP$Iqv1F^x&ncAGKlOIp0RYCJMcilPC$Y@R7ybTi zcb{91U*Z0JUynoP98mc2vqdLU>+a^2VvDedv+{~huJ5mrEZD#|c6y8{w7RV@*lVbs z?l*XtzpqX`KW7aH3i1GK;XY~esx|-kSQIc&IwA+bg-SoLfr%CA_1C`I-2@EgW z5O1&;>m5(#r)&TJgae=I&&mNfP^opG+F?rf=9{m9_n)NbbbW-p!>5aMbIChQCpn_4 z6EE4z;<%b@_$~a=ntx=gh6UiV`s{o3c87a2?Nj-0WU-*C6!aj!fY*`~C+AIL+zJ zZtN=TtXc^|(=U}+HPz~}5#+bk__o8qeb+%g0&{_X_#_pTi@V9VtCy!n#A)4(i8IXq zL99fLpUawJN!9ywxACT7MPSJnbQ;&UgVLKfFV-_3rm9_xA>1fTa14bTJG684l)PbM z*dp&jXsIu#H|O}kXYNa`=RB`;bW?K?zAN~>?V(%K$NC9$18$#17qyRg9YF)JgRS~l z3LXs3B@gx|5J_x`On$QTDa?3;n42@~XXCngs_TZXW|BAPBFj0Nn5hU28k)v2B|cn1 zV>^znNm&^)RhUzdIkmf)%&EBauqpjf&HJ5?O#K4Sx6A!3DgXAia#g`i^P3WxKl+_y z;=K53p%8T-c@w)?r>m*eezIX*cf~A=x-TMf_A#1YEC3c%z&dTmzd>69(ia1cz`+fp z1Taor#^a;aJr8L;Ug@GDF8(p}lRo&>vx_HhOfzVk`n(aN-48B{L!LT(<9yNAU#6+G z8|rH)Wz)3hK2VC@JO2#{f6a}rt@MRq0*n<+)4K|(alW{?l~Wng&Rb934b={?)@v1H)v`8k6&`u_j|&wKzt;FkXcfh5xS0h#{? z6sS<9&|TJ#@yF;}y`VXYLNV`YH&T6^`$&t@Z2A*R*4A@E^~$d9&PrG+Hf)X#{fMnj zSUueT_dqqm3l+h#UA(p_ zOk)uAHmd zVA=qxuml0kamB7$BT(~97VqBw{_5LIsB*Tp+klOJ!p9hsc^~S^v-8 zQ1jFzrWu@zYonzuYq(ko(m{34M+m&X4}0V_%D3gL_lZzw!pyLHVXiM4aK#ylR)|7| zvST4M)Tr;)MtiG%fkJ>lIqFr>ex8BH&(}VAk!0~yHeRNtIz1zNk^RM{9pm!C$7a8xzSD*u1CUMsQrJ#syR~fCbar z!3jiM8EP~?z8_Q~Pm1 zxw`*x3T4ioW-E%Xcul8Fyj6SzX2W+Ynev9GXN`qBit}(~iaGQaXT<+zb+ai<2XTsU zU1d5a17&ScJi3>B88BM-O2F)8?jCbv+HL7Ws7HNR$j==0TIFwGEBS?vRXsVRMRGQc zOIoQ^)!i{Z>*^(9b2oE-uddrO&^V4kss-pe?5X;#5ozQ*=Z)n7=n7z_Y-zXR#$ob` zv-2vk2^B5sk>!x68CRKW1UzefzchJp4YCWg>iQG*2PT6vBUk? zD^C=2LoBawzVZO#=On`g6f#dYhv2UUbl9;hnO;HRn0g^2o5x?kc6khaND~NWcx)|9rFz z^a+fQ56U*bcW!vEdn5tsKg@W^Xmwj$ovOu=6EZ%qHgE4mFwtvZBHSHgjV@#%dC}>u zIRW(&Mm<9PYToqQk6b@X9D5<-<7`xfIV(Qj6GMZTZ!)i9*3$cHpdY7xe9w3HKlCK$5V8&O%9f_|%s@3c=;tkq!5NuEz)`wA9L-8l!m{@C;T0m66q`G`^$7Wime z^r%CTsWb7=Uc=9Mz_waRk#cY^*go^5 zmZQQ!-c0Y1WN!O3sg|+=aP81`rSI%lVx($B1_DbD@au$V?vvW~<>BQC#YkDJ+uPYA z=Z>G~w)ibnSph=T2$%;$L2=mI=-Y#3aF zfnqDdHLo!eZ`RB8lORUEx75pNHC3ox*w=bOUxm|Ga^izG?)O|Ph9;}6YA9bnL7uE4 z7*bFqqR-?id5!C}84&7ULTBcYOjfDYi^%anzm#8d#;4}OQb>`(^EFQCp@Mq75zc)K z9%E%WVrM1a*be}RS5GtM|69^@w{2V79ODl${W-+bWmtcYtXu|~_GPBdJQ z(|ICuIJ3eoqzHbsP|ei`S?!6(hA*|VhhDoiZI?VDb)ty||Ee?9dOntAgmE*_dB(iM z(+^J{l$*uIFZM7T_blK$^_sy4r{EiQ=Y{vy8)U&VK&0)NRkyRiYM5Pjy7_Y8=V}bw zO`o#p#mMf*0KQAroe4=-9La8yVTYGgcSqv{30kz`@F(K`JI+u*1V|x-U%r1#ivfy z+WCYrNLKdX1rnZiYVg!YbgWaztCUee(vI8$?l&u^=Md~dEn&8Ti7vTRAD3Y}J+|{$ zOkzsahKjIxI+~!F4re73wO8UAIb>^Y@^Ptu;iTr$K0sRPZYlArhxYxEwkvD)QAk6T7|Hl{tExc<0mE_$}=WQ{`X_f zZN$x|56Xj;_k*z&PuFgwhKnhGYiclh8d832j`+1J{0tEX`F?@>Nezl}Q~X|qxW|9; z6i3aPskBK5iUA5@Q7ED8cc1;fNshU1w&_4`gUHfvzu#lS(>$j|)@<0~cYup6gm%6) zKUhmqo7wMjj}w}jm%oy^G`Gz4+wLSb0=STx1fzG19;8dYo_QX4_$0o$CB|UXB&4k6 z4W`?G2lse3(^_5Lq2jfEL=+H9QS){iFwej7UbHKzb)NrnAk!CzmAr~#gzc%3Kv6pP zk#9AIY)m{@G^MwPcvjbp;rlM)1qNq*#u4#2!j_{B{AhmycR|ExnumMk*;ADeW`&3! zY0xl=P5`x#43Sf6Oc{VdD9x^H$(HW9mj)0B948FFKDK8G9a0Ru^*Fa=ng2c5cF)X#3?t1B!$B}UD*nlh zTfDBX1hBzl>kxTC(rKez+2+AYH$`fpwHh2wuG-s{YJ)X>cf3d?&{aVQ_Mm7H-iMMC zihHIcTcgeQ#cM~ODr}Xn*|5LGY8nC$_-|X1qiQz`SU)h?^K#AJKX+u+jA^1P^UPG= z1;3U}eeA_E={@Vx1LJFD)*jQuz{O>{i$7t~B}4hOQPx$|jbM9pRA+@1royJl36V72 zB@}nJB#eE1P=13~P9{k|fM3Fd5V~hVz-;3m$cS4kBQI2m$~ck$#c2Q4Lq9QLXS&RW zAn|UKB474-cw&TnFO*=Fjot4vUmk#y^^q57M|2pgLwl`W#Zk9_S;H3U3m#y}4YGA{ zF5lK^J!hCdQC@v;3z5JJumYCQUaz;1)0$=@U}ngm6L`~Jt|XON3-~4Ef_Q%wqMR_> z_AE#COh=}4oMgrOoW;C$83x;+%BGB2Y0Iiy`;pEV@#(Ncik7dPdii;XE1YQc#QCY! zY)^1Bel9FaekyfvU_MxQ9fiFZU|xD2q61_cNX|h!`V9RF?a%bm9yszxxpH7*R>pF| z0}oF6YPf=rjDcH;2=z9)z;fh85bM*(+9nE;?<6x*b_7jv+IF@W(nc{7~Cw@3G zR|;4}Uw}n)i-jYlq=HqALS}p7Au}&1HP0{}OZ zlJo9L?$4R#mh=erO3r+!eFzScL@-rwz~)>P;8+7=x=V*tw$N4p4e6n};6l^k{VNNH zx4Q20Gs5y5-BwRh*S9U5uYRGP9@tS&%PwPc$%+#Tr}liIz0E*f=TtoxA_r&jo580- z*GWsk?vH?V39qc+sVesjiAR4{%%L}zSmt9B8$zC+?W|2!|Hp=|vSvfy4Pb|>zof?H z%(J{5A7-4e2UB9*yu=;M$he4Xror0euz|^;B>H!h9^Ob1rGK!M(HVY`=>LcWD&R}H zJ(JH+_X;Know9(eBKnbj3`YCqIq@SzW>D`4ne z_R#9K)GhEi8@RJnY;5MspHy1jif$?>*s%=es00v)3sHP9Z~wUVz!mNf`rkqvO-aPWn>Oo$jL9uSS@VwN@;+_3bz#X zpDo4d=S6LB_DR^WS?kWd(D*YqzEKwRV>{Ut%O5g+g~-{-F74j(@TuBu*91aSU$B6$ zHEPNJ)SW$X6yKcE@XvnoQZWj0^S?2r`kRj3uQgPe{1e`SutOY5%{`2!a8rau<+?NLeFPis%# zPKzm}pN22~+k%c3oq52sC7lI?+8w+7=W3ewyEH+RV4kk-9cPkQ;)MRM$`OmBT7G%Tx;Wr2#~v zDqjELAGpBQ-;G7xp;hH29%@Ibx@|<~lVyQ*v@t`8Xh^^X+!+J>=g5N}{#s4Hq+FL_ z$t_yFdc4R{XT${UW7NdweF#%)n#@{qj7bmV=`3AZydoI@zHn$}cVBjn_Xt=yO&r@8 zFn&oTW`1o26-^x#t{^9lwUu{KR^a~Qz(rJ3P!ag6d>*+Qb9bEk)(5dRNe41yz5XG0 z^8No2=#UZyI(DM|w@La+xc7Ld_K=qJ>Oj^iX1~OCq2GaMNB7Z!%~gAGt98HS7iBJe z&u*&T4!{MgHMr0M6TNV^=yE1+CrCZ;U>Y`smB%+m%ofng;ADNeq6sTuc5oC?_Nk)G zI~rO`EmUp&em!i*CIhI>ROw&79jImRx_v~XleqX{>3we=k3tZjUoeCWZ`TDgc+A!T zB&9Nu)nPa<8MI^Jx!nXoGXj#Q#GGT=DW6-4I4ju`)v(Yza);T)pl_+c?8B<1e}*<= zaSO#r7EWdHZ0+99)Wq0>0@+WK#V020A1w#{Y@$4PFqXBxe9GR`p%UpH@q((EKgDFN zFC%mqtJzDYxxX;nLDpxzn;wu!Am!^Fm>`dCKC*uEowOTob@iI4S!d_*v2ho*;7@AS;^x~ zqX??r{LygmHO5atzDC9UmG80LpC(mznO6|SKh}y4Jw6}|aWI3|LL3>yZKC8YSyxHh z_>rv2j=Qb>l37=xeXsGZa9!am50H}>24@i##M4->y9Mt}##M|48^GW65xYZaiZ+57 zXhM)Xx79COG4V51f01zwiMz$?j^BLmPCqDV&klBT+@;st1GBASxOC3yj5RXhRUqHt zT|BdEO-D*>QKzBM%L7&e_S_nw8`daU*8rCc<>L>nilno{XjBI6 zBzydZoB`C7!MIotN0GIz1YR_Vv2l^ZVysVhhQbMuGR;i>Oh;=V@bNg5-OMoONjjr> zx+^>&dN0yB-vqm49T_C~3oYkE{07tnn6I(9Er&KtRnm?o7)xp@j51dGX_almCNQ5` z;R-^33RAOzAHh<-WEo>$@DCH5AQKjRk#-Q+VKI70wr?|A0oTY4r2c|Pz zA=-C}JWK0K;g*4ZYe=}Lt!sNIt+|1v$K{oAz%NYx4!xIapXe-qJ(R!e%H6_{Em!0l ziROTQl(YM)jq-6cVx6}AhvZPk>S_2_z&>F=NxPnl>fEC2O6S~F`)~$!Uxo>#C2+(S;aG`jUZx;Er!oTHLu=hUu;dw5OmX=O*%S)S}($-S`uQ+|44G-raQoMw?}Mo)j!{L{ph=%ST^9VNW4!vLPc!%Alj z+mJ%D>$$_E=o0`(D5KR>qDn1K{^#IOf%H>@(2bW4<1ZUCuRLc#Fh%37bJJ(`%<)cc z#+@WQ9G}BeIsmh44hA)uOgw#cSmo8Cn#%{<-$o(IzgEy_jTL6ZmI)KRSzCB90{@n> zl!whcu77CtKvkhDMpE&e>&A|4274>MslQkVAy8p4ZeNnJ7)m5#vMPH%v8pgCu!{PL zE(CMW*!En*BwqB>AtEFQEKk}tA@sfKQKGh}BLjRMhlF=LhC#IZ2#12PDMn7l8i)u1 zH)g+t&{j@cIj;pphZ~!>{;}f8Xvp6-60mp^^u==ePyWWWgvJ2i#4Bl1;7o2ME;%*h9gP(l!V*&vDE`7;5 z3y2!t{9mJn^4j*_QkH|1(k)a=a+0?X=qeiL_*~Cz$3060%wLnN-TtBKH{<6(rCS3R zLU(hjL6JZViuP{lyIanRw-_&%hSNirFKbpE2eX>Dx3y#)OYyiRazd(hXQ7%pw>g>T zDG4aFA)C_0`o5wCUbYZ#ya(4+uol>O%uK^57IygJy}YZ5Pno6|Vxb_Lbko;B++B=2vgRQYHQ2aU#b)9hRqFL*eExHyPw$2+ z@G5>**6h7*YM%o48jHySt|TC^fdc{?3lWW;ya%Z$OUyCgNU{Y6Y(l&@xq;38h)?3G z&sOx;4jP|Q(DRbgyP9(Gt$`<;*l2y97}6cj=J0nxy1}392vT(ejC1$yz$%IzSe_v~ z9p)9JWc?@!@zEQkSRnV-U9+S^_g@i1eI`re`ykX~fT7W}aegQSZ9wP8L#mmB5k)Z6 znt2FFLKW37gz1h=lEI&s#*7j$w8sm3PUtxZzBy)CsNSqSO=W*xkZ$2MdA|_wjk41_ z-bXF@q0&R$&^klb5$$?tw$MDZM(kuKR|@rfYi(jJxKeEya;>5IRyat<*X_I3fL$Z$ zH*-kk95^*3!HLxhB-tFiRg`!Ed*aAt5?)43bRSNM+YvfpAbO(b;7sxf{F=cvXsaRl zMax@`Cof#Fe&N)H+=uztI=yTprnJmOSZS*>D-}J3M)MC2r-R-!``Q_VJP1x;e)$ zcM0_1e>ZC?q0bFDx&kfQ#t@G#eZ)g*~IAoq8Hl1Kv`&PGHm_`RrJRqE{)M z3;iy52*jYSnRmG;NV7NpiSM2izV?o6(4fp5?ug}o+}3ST3jjR|0Q67*(0iM+Q~Mhb zf^wDd_fWqmslV#Kdx7d-Jx$@7_a~zth-OQJj_d}HJ0Ma9GUSVdK0M1=m@UNGEoiQj-$UN9_ai*9$dD) z?zFCAPs@0B@vHNRG^jh#q8SMTGb8$E@fy5{lXWG!vk#ebgL@N02%cy;zKx^m`VpDM z?OTn9%Hz+i+j#8P!3{3Eiwvm(&yUoE(|C&@VMHS(D5dNg4Vb2z;3FY(SZ(;<$F$)m zC~8W3`UB*RZwG_Wd#Fob=3Sa#^${;=$Y1F!um6nlP?v(yA?w-1}>;wS3W$^@>id+>@ z6ZnhN=6nyi%2u0rTZ}wo((a9<)uMtj*R3dsy&pR?7D3a=5dRhPmF|L_Z*5F%LcM1U zaasEbJC>8FZ-cIaF2D8fD8B%mJUa7h1X-&YwlW$_ppfmvwqE4{4!wO=k~%{xJoGQb zH^5D_HFJ80z=SVj+YfpKuyRD)WM`6!dHt%+#DnEgk^3#{_(mx2)A*<@*ub=M`_yxO z(y3BH9#Io#W@dBoE~{y}$dRr4-VmSHiMKEw+|=La|H86zVi#h&%Qm*^lNPg*--?p= zD~qE0;k;d&z{`~yu>5ESYZ1N}?WeJ_&j9<|t@j5;6iRslZauRWNSF7fNXMaon~7F! zn~Su2qjg4=&>O@DHs9#<2bf+F8`?U}B~e}xcRQSK`e-UjXcRRU08iCJ00nfm7>@a4rk1)I|`ag$vy=Jn)!veRJ z6(s3vngOibu^cbCzLBr3IIpz0vYVIoiS4rTZ=@%KL*FMJ3rXl{2vREGNH9=bOHjth zr4j$E*YudZKz8@mhl-O#O5rWNhLsPX-;wxo3c*J!N|=5!emdpY&Y0dx{1pVU1RjKY zH+SfWe+VCGz|wmH1fD2Igc%wqqM_iM9>84Qiv0kX^8g1C7o;EL+~NZ*c_@2qSo5_F1I=>UqkivOu8lLp(L+LrV8XL;2 zjG#v#6@1MgJ70D(R1i+?mJ?f?P2T5fI87~Y7%j<(-KVg+>@-Y)2%rh{rtON~E+ao& zith$6IcEgGA68UEi92QN;x)FICEv%{jO9yG){C!CwDXes#e^ z_YR$UrG|f(Nk9R$>6yZBwMkWn{i(TVQ+^l{c=b)z(Kg=(8akpyt2}qLja8 z+2(GfOL{2Qqp+Yu>$%pXccQEep6F*lk~~{f_E7MHE&*Ia9o@YPL11{B|DI zjta=pJ>d%X7qC{Pf%>qHKK|Pk_v^8jNYyDV&`CBlTATH1c$VqTwRJ31-32u5c`D2} zQj$5@w%4ty#->F5LNQnB&wV6%JJX8Au*n?xw2&&Q=!}cw()jM6lvzl#TH_@TIKgTl zbrh+3ed+0gIhngh+J1zd9wz8I_48<2MHU@qyb3}q(Pnu=$MfIC657lQ(_EdcWO6^I z=$&=xvD&BeA~Qp0l?q*ii)z5GQB^PWk0lSb7~sXr*awtQ=S=ZB>w3iA&2-XRo8i6( zgx*$9)mOXq_I)!yql9C(^-pW6@^6tM@_aP=A19IrfWQS1a|2{0+Lz=)Yz+JYX2yl8 zW?l0666!YC87?}y<{8JuYd+pvUWI@PAe~`M=w}W~ZF;#|_<8qHB?u6BzeBfF@eF|h zy6q3Ea!IXMB~v~kmaHe&c{HqWph`k7UZwr<<;jn~c&v2v5Z*p|Iu7@HoQ^zF*Ub*t z4loL7hN~bk*g;aY1;{cD`n1Lj6i>N(I9_WwQZxbw@)vKOwFl&_EOUbCK|YU)v%-Y} zQ!Ma-Zz%*YOTwW3n$Llnoc#KwNW6CUb*aCA{A=3Qc#nw?rF5%H<`~B_YUa%QG_-J( zbbwK+@g7KdY&6!CaWQ7^NMkZqV8(M{4SR1oCi6vC+#m@h8Bvrc4%%;(AdFvF*7%Un z3`?$=!lu<9Ev>vdRyk)~8Gm}VfJ(blIRt*Px^(ncAplx0yR*_Pqojsyui(6t2Bw zFgJB85xOMlX1V9;XfI?qqpv--y7cii{7LZKu=7M&wV)Og!D}H~7X^TxooF$XK4UOq zK%SisL%#&FP1tPusBtF0hqZ^&y`1uXvT1q4#X(z11bmN%$K^6Yz2FA)-$Z`1-=-p=q+|b;RWfzewn5 zD^|w?r_sKucHoifNiia0SXFU^_?Y$rG>6bUiq45F?dv3YB@HZaslE zvfP6U`NPVu`}We01$U^u)aPY0IgANWf;{hpnMgnE#Bx`gdx5{tfL@6o*p1e(Gwk3+ zm$@7yk(TEY>Wi(a1tJ-d)kC3j3AFtQ@50o&X4Cuw>XYF7FJQO%KhD<+5zPW^7-tiO z=N@t9v`j=|MLcaw_Z)UI%czhs!@9~MCck?-!{9=h^UH|=g}wF$fwWI4m$UCfeVkFu zx$oOQ1MYF1$Q*N~F5Lg;7~A&L^QzHpQ7fi3}F!xr!RRa)NF-}+|Va|Gtf>N{C zAp~t_QT>gwC$;bHCvVwhvI3*mAF9X!j30pX^ZmS9U%Swu7t}`IHW|g?-Y-%zEro@4 zTG={1a2&?`u0J|$RCK?fBlP3ZRtM3CtE3Khwol&=nJ`l&hiankZC`tp)*D|F1Bk^>4Rpe$QKhBkj* zsoym|R~zphW34!*5nhdTxpB~1=?jW`eBI8!Rm{}E`J>)aa5d&keZ^8U6MaUS zlJ%7Esm4wrQ>%sRUSzy19sIEp_yHRw%hP0Zr>)UagLl|&BZ-SdMfb2Q44S{kpO^8s zW(N-))f9#4ReMi%tuI|w#w_z*V3GZo%9B9Hj#^FxLR}t#R=>?XE~6LYo?5WJyZjc-`SSjKTMcjSZQzIBSxW50x+~kP8I0+ubZWGtKOt{IB%| z*p5oA@}oxAdxeH8v_oXt)oHsWorS@teO9Jro3W?ofY;znEr+K1s>na#!K-UQ+=u^Y zQ^HA`w<-}P;FANlWzEGsofACGb$;w6$Qe3)Y@zojH6V{uZr^x=hF@l)qnP#nh7(Cy zfpuf=g8Fyl?4@`<`H5S6fEYfr^L5J|8I@wni6+$TP|ES!{r5)Y3xoQ+pTo(6K^vYw zF+6kVHfj5Z(SB#ZA^{88f-@kbihovS|rI3+d#P6i{^YEgPPa@?62D-{xO^X9F?1I=Sy%Y(r)P1uHoV4~-+;e-xhjVoNlJ8xi^ouurrJ!f<&HS4@mfPO{T2oah zW4)T`Ju~aW(+~cq9BD0|`+M3ZWvst^HoKCm-3&XSTvxt@$|OgpY=|DJfPGj2GVf|Q zEO{62y6kH!1@QYN72~G?AFs$dXvSjlU*ETC)r9h%Tpc~?P!InI`20NYJifg}QUdt6 zp>!(6(KN2(hn%OqQ{%{1Q-?NZvt6kkMln}}Z^W^c_GJep;EgyIZ}Fw_(9@Gw(~aGC z04@sVvmZn|#yp_?V!XH<(6{h$qdcJ#*6*}O`d(AL{^z^zZ+o6IImxe#EMG^mRo>}# zw;&U}Q>JpK1jO!<79<#7?G+AmxLDR&bjDjd61YXW%<{F;F`#K;@tGuWM$CcsX1#U$ z2Gsbeu9}uF*Pc5=EgHdXr~tCMr>7y@+$1niHj$>gfBxPn>KL1`-Lx!70bqkEKtmFm zCk@F;LKklRm&*@EiQ56Vk$UKt-qJE8zWyFF%vckq0H|@11ZrHGdqN?cgu}HRw<^t-mbG>m$5tA=Kpq@`wP+FPJxb67$6T4_Wqu%x8xTE zT{Af9abcC;xX_Q3IMq(gqMioU7^$vGG~3{m#u9EeTbn9ko53ZS{@tUlPQ>;d(iUcP ziDqgi@(gQtQ_1_qBfyMQbjw>Bk|54>jr=0;HMVTDqh>#Mp7Kv~Ct6K1QY3C|ikd~4 z)Yqg$G7;W_y707|dFGVDH3cT%_rt=9BG5${EE8KYyma+yQNW9B(oXP*3n{TU;9CYt z>q%^XH`?K`?RNpMdB8Bkc1$%Z|8tEJHjICi@c^yo@e7kl3!0@~L*_nRV01W6I|Kv|bZN^aYq z{4#Zg0GeN4R5Jr~B%MUH^R$?|nSecMntAU6Ca4wniOnn31&70p8ShN)K{-DR-d57o z8g4;Ra^iq(Hf(;=zWA4$mIx39pX(nfH|4&HkE;4$+<-olpgX)eHZKsKu?qP6fI|!s zgEx=a>`eh#%)`Pg()^* zd+Lg#%+yDp&7U9dDkISFQS%NA?NW_$tg3{#&}1Ha{hu0%Q^7w0qZ#P5{EdnPv5^U+ z`Vq+kAAlCW>w6Bg{k(PdJgK^^_^5KGvPrDw^y>eoN8$r5C}cagnw_GhEU zFFG%ixj|qtAslozc&3!x1FhL(oKnG;$+)QYY784l>Z!=X zEiE2Ju>?!mKvz;d3|z2cy=CRx9%{}U+JAqM`8=`^zl}>2{oKSpJs_dUx^GbgIG54^ zPzcDxY_+LoD_n^EH|Mn)TAzhIlU2qvm8&G)vQW>W)UWkQ5H<{Q+b9MGfP1z8Z$j9y z)-3T)S&IPpIRF9PoV5V&11vt-;v%cnR&474&-n$N$$4ldEcSbnw7Azn80B!dr=ao? zlzDx}*^i}3?^|75&dNyr+X?9Dno%iM;j?|HLB}Okc{{X285lE)N-VZ$iU4%c;#phr z)qqoMCTwT6q=ZNVQYEk@kjHN1=9S|WCd*be_KWPdIX86V^SVc-R*&z>(P0P-=kK>;40lrbx$^!TXGGy!Z&GM!81G*rfc?^x0N-16~95+(fv0>Cl zPHADH>JYpX^@_g{j9!g=ItsUk5I}p2{^5nUSBCU3h6sVIUDJP;&&K>$`7ATkxJU5f z+QH#ekqpz&hOC}^$F-`KJXkNo?t^m;GoUHXRW8UaRk>Z*kpv{9_AjLayj{U3L2UC0 z(@enmcQp-93`ly%z^BJ({&G+PmX>>N`mBaoACKXXifd?F@Ka(LcBC~0btCWno&`o3Y7emu-yXcQMJiWE)%bg8Ze{zwa_ zf4aZ9)xoVn=1=|XNYGmSEWq0Tsh=Ht+Y|^IsTplJ+fXSu8k$il)1FL*7&tF`Mdyt5hh0CDLAD>>Am zC+pC48lJbYu4=)%_V`0N+|>3)dkbB@-gNCUA1zjmUV5L=?_@Fgqm<20)%65I$3e;p zwcO;VPmBDvqr%eJ=c}FXtMOyraU|W&m`;BOl0@cBzA?A}&Ra90 z#{ir#a=cLGsS3ipi-Ii4`h}~Abu-pQ>i zIR;PAnQJ}6sm~}VB**F(9BhvQqW?~)Ve7jtdrI3SGBw2BQW+^-tR}n{Q1Lb{H1=zD}&kxAiDdAOx^)oW-gYkeN5&{elqapAF{V0cR z&G@kZMn}jVo75JYq#|kgCQwHgC51-1O@an}I?Q0$KKcLwP1mS;?Qr-|P9r-IXB-sGlt$ksE zqr=$&1_HY_Qau49_u9ybyy$IZ9rDGh?jI5>#JMskPjAEJCg+Oj(>=>2!ft1~$lStW zWDc6IkZpj#G)Yvv*N(q9%{_?NPyGNe_^UFSuF&<6L2a{kuhkAG2RR5Aw?f)1dFP*A zXQu{Q4joFw>9gw(G)MG!zm<>{M98|29T$eCip`z23@NFJ2u7UC8zWM~<-!X*j{*$7 zqIgB4MC?t-&dGn(WD29ZQ}CTA1DSiA-g-{hUo#-US&L~T)U!5uE(ZYr?HUHCuQa{s zdl5iMCak6);=Cj&-IE-CDfS}f00rn0V^z%uO<7)MCAdvJ7Xfm-8+XP?0?jRmN9Fc~ zuEL;UBCws508aREf86+AH~(Ka&-eZL;qwplgG-Oy z@6X%)cDvrr{ztt?bZA(!y8RFYf7N7HKbm$2!1r|?=}w}ufQ~U%C8^f1Fj|nII(C6` zB0}lkkO{q(dd}{djD5gI0BqWA-CmmjihxglUpVVcIkAX)oKpVZTb6e*Ur2T&x#w<} z?zGRc*O(sf@QoX0kmlNbdiu3t<+=@pv5o&NuZoNe&|b!NIJ?`ZTE zYj|9&JNcSXFfiZiRh2qrN}TiFuL}G{>4|C5Z~GKUDJ%Xjx8yG(3)7ZvCkGk@$0=s^ zVBpclN68-T`3G{CMy&3e*gMmHfFy{}TkOb@KsUmf-^<`xHMDcGz)kq*4u&A$v5oTt zTP%SraF&$cbY>rN;VFe^dGFR5Zl#s|OKsBRvxVC2ye4Vu>4P}U&R?Mu#WIZkOp8Nd zlWb1_EHTVOX0w5}bf^hwrV?vg>l5c&b8t|E7t-K9I3$)-&U11PlaK$ymzYV|@xYi7 zA44l~344GEOmcssOz?QNjlLFJvnNS!1+&;JxCNs>K z&DE=l0h;?kdG8bV0li(ixb1O@G@7OLklk>K0GULiGlb!DX zHSj>#g{i!UJY=rwZ)A%HL6iX{SvQ|43HdDq4v)hE6+yCU70rWt{%a2;#b=leu45*$emj{w7No@aDL~+()N0!cqd)uf1$D zrY*bW`x7iK_*QZ|z)5fJai+Jlx-_EI)`Ux{zMFU~`;lOR^pqkFZBGAdV>>%dz?&U^ z{y+3U`rG)mz_(a<<4)#o^K7?vulHf=kO{zaE9s42kxc2B0?18&w{QZM+zY;}mk-El zlTT@BGM_K^hIspVhU?|APcITk&jl7-0Oldy_pv+O<{i0AE9$Q)$2(^;khp+GBZi^I zeuFlh0w?m_1Svq_VPk=GVrzKa|0xIp(L_4{>g+BypSI$_u9*6_B1mEMXJ-iZzcO0F z`t}z9n?K!h31(>hU4N94-8#y2k@io|-K%p9YgHWL$N8nE`i=%_q#pOf3uADVa7IyH z4ldpsbW?4PR)WM!$Y{G0J#Qdx+$THAZk0y%`SoA5&zJ}c24F~k6-$(k127~xn!Ycm z#vty^!?1*fxcL1E0ngu90RPi8P~z9@U_UUdS2*4ZK7W~8Fq1(J+xc3MMvTt0z}Vl; zL90&rTn*`gJ_FIzh^dL-#55UKlLx%mQeQvn4Q(Ec&pzdmH%>et-oKdoo8|22q-Z@IVPOV%*((d;a&EXqasCo;CW?jk z;2jR`Z*NXYJ0C4Jyc>v90ZO2*m(z)(-85r0lIoOYX5JjvE-4g%U;^SrprV&Svj}q5 zFAx;d)u#Oupy^2=mF?ips{5FPd4PAo+6+-xE<;>y0)23^u#tbcqP>^7z**grHdHCW zsejhOeH=pqHbEelX!l>AU=7SN3Q43-vp%*3K_eZ01D(kN?krI74RFT*?(D3$F{}E- zD^moL*+_k`B&3hKprfSdE1&NtSO^m}p2PkTcng7Ly|rN)INYY<`$=C%Wy$qa~a>_z4@3$sSqeKVB;Dii8`KtQx&|h z8^7Chz0o6ST?Q}T^UGd>{?FXc_L@74@IQ_70GMyN)W_}r@zzJc=wP|m$8Ev@lGvdHP49;!>K$y5CMolP5L=nU8+Ij)gZdsYM7WOC(lOJl3Ap~k4`ETgurkrn+aNvc9B6}S8N`@uqYV;H=Wao+%u;qCd^nR%a^qD}IfA9!vpWk@%cer6+8$2mpI z1(F88)R%#qan}Uu>!zohVkmZGTcw~r&7M^OWcEG5DNS<3%H#y{lZjFO+IZ)_9&}AX z`@y}mS-#k^_~!Wo2QL7C+0Iir`%}rhdA;W&l0ek=T~pcl{4IMOXJrA6{a)j$UpBn4 zP3lQEqoWhB?Op_&b~9Cmt)hXq9XI>mh&{YMo9PfSKh!IjXZ+Xh=Mczk@J z>%n$q!!hoTmNZ2Rcr2apqGb>++xb@6MDDSs051#cY6MK}bEBW@V+8Id;z`cg%J;9D z=i>p8-;#I#8p{y;HU0s$GQ2w)otj(r?3mR&+QBizl3T3fYk%;nPnzGU9UAGMUql^D zDfOFIn|ZMuoUWF$-s-U~u!FdIFPpMxRsm`u&9cbZ&$ptwa>qB*_>)x0F;Q;8iuwko zj*m!(j?)gTMA&LO{b%8uj@`w@9-amry0Ob)7Wqag)<2+&D{STKdCc`pJ@(;4-+vW+ z2oOm?YmN~LKTj}i_xesJ2moYfc}|V-VZBX@r7QAW;Q1vjzT@0N<%D1s!AkipS?WLa zJG&dFE<7hR`SK2PJ*syjhdjLid9eM?I1853abl}~uN{#76$8@0dcd7yneC9O9U)a` zy786}b89PWqay`z8O`TZU&8f*3sZ48;X z_T2CkXidv2TyIY2f#kHpJF?we2;j&yn9B;G^RP9`ktI(vg##pmk;$l1m;XZz?AcBZ zeO6{owwEueYcUbPl7jY}o$V-~JKfSbLEHc1w;q@X4doqX18I8l5!yTc4nr?NhYp^! zk0kEl|G>=9TkICy2iPP87WXgS@^!(LzWo3z6VYfuJjk85i@bLATp{IX4=}}EGtZ!e zHSkOLLz^mRYi|ZA{=b$}`J|j_1+J2Z@J{tN(+-*ZT4=gL3Jo?UuegC+$VNb?0z={q zNI~Km$YSc%^cp>uX$O>jEL}ssT9wdkiLg4h6X0cDk2hGWx7M$A68#GRSV&NDCA`P9 zzxlRAQCq}snln&N6)#W)MW+8`f?+v7xnz!F%_2{81Czc@|4z{t@36;M$xt!~U4U?I z0AS9W0|s@$0?OaTWdBSqj(X##+EwRy>02u+=c~QLg8#E7?${2}Wa`CtvTr;7cDu7) z#v2;+UsVENWN}0?XELiw!;j=fGjWG`KALBi9ao4Kl%J_>w^X%8#h{ zmi`pD-2qQ7O?W;+%mxdXasj71qdWT>z#p@oz^#*;@c_^frb{EBK5JVuJ z7>DFWp^DL&O+j#Ah6Mw6EZZdj?ROgS$K$C`xCwX(2WRk* zTCEh@xb|$hN9>w-S@hy>V1+SIQ04NO)Uj^HXzx8R>I5-Mq$vD$yN^A8N1kJj?ya7$ z)Xa;G=i?fH>AU;1BERs_nu(47+B*AR|&^ zIdjt&q}jS(9pA1;9{1K))!wsle4E2xZ>n;mk)Nj$&w^$==U{>$2@UI+5I7I8@1{;x z{fUy0scovC*bP_bEiW_c`0uw*6^cZToG5P7UazX!X${~rNs};}CgKmd>wt7MEruZ7)tidEmd{+EGP?A*T zgr4-F)$hDL6vw*uNdQ<;*Wt`L?j!0q3V04}msGD_a(4L*M`!*Aj($eaPt_D^VZPKR z@xNzCb5=idr_ zM{BUnE2*%jLzzCo}hP-UaN@29#H_Z^>Lk zW#OVOz;mInBNIy|0DtZe6yVRbLyC<2W;#ogr9TXI82{Do6yVHF znc>0zzOr@2%mk9Q^xJZ==A;H#E;JL*46Y2#!|~W|u4^Lf>P038@=74KLpya_VCR66 zfdVOX%dBdBU(=<{w%5;4^>44&<{;K8Z%N#D~GLW?;NC6^BQfLJLa=ps&@>%OB&OOqJg zp3(u37g?Vi8Y;r6-`2_%dQavht}E^TWmVu|mYIOby$XB{zFzQ#_h7yBl{bpak_J@4 zra51v&P6#F^F9ueiu&>62?S>fd|KtLvnnRhiTIy;^YNQ9on)AbGe5M=-u=U!oibud zZVM|pYQCpADsdEuUy0}ADGFwkd?Rs}uNB}dv~|Y?;>=sR_AAMhbtbxrd$r=iOBQy~ zA`w~1D*RVt;%WXRJDEs#aNX~WhzGMPAlcKJ`T#j^_E|Lck>B*I#X0un|GhNP@MVkf zp|FP@Fh^moc}7&ceRUNUPa#-wHh$KuTz5cvzB{2q zFY{l1#UG+yl}-Ho)Jcv+R@Gs7vRJ&=BNDD#W4ol!G2p{$T^Y12_k|%4>o)*o^caAQu4tyP7a*gvIX{G~RiB6(tkOSPQEKhZB3V~tvSl|wH z{f|4avMR3R+HcBd%2fbmi<*j`Nb#yFu{$r4C_V1eE4%f>x>xnXr=MB3a+7RgzR9tlhLCeiJe@-=J>O0^`PdTLRInFb` zipy2&qpWlfqUc(A+Rdt>FR$T<%R`XMpreiv@1)PPqbD3w> zoN-)SDL!B^b>;ijAA*khTW|vH)I^mw$*d`u6{&qI8sr?vf4akgt!Vx%uO-P-S@V9` z<6US#&^UQ}Z`sXDGSm-Y$B~65{UVm5yI!)S!6W85MzJVsXQjAq3vm>=Z4?7GfA(~{ z8>;{18uUGEY$6qC*PglU()u1z8&T~8d3H)_OE*d7O`NdOw&p|Uj@=O1(h<#+yR2eQ zFrAL&i6sX14&p}-Buwpe6kj7u*%Vi`@BgO9^WBK38~Rd)+^s*fDGbq7l=C9KjxP)T z5T0hFScr-L$g5bXV8_-)JEdHj#V5oDa1W{U2c9=`>k)#K3Wj!MhN zMx7b6)j>Jgnf#)+D}xl-t2UF6{i!RG<0LUq!A}#C_3q5rjUl_IHcCp{P0A8C2DIwv z=f_hgx)}wrq5Z*6^O#h)0Jnr2n#w4bEv!sXiq^}zNR1T{fG^XG95tQn5>c@tg z&~%%25R1hTZSm&~SpcT@C@0q>J;UXIHnsghCm&JN& z{~a4qU~|%7-$EI0%^qhM&5LtE0wAV&W+pRlHneQEKT|zf)2pb)94mD#ZX+bkx-A^iBXqW?JlFz-e?M%Ll-`8-3?bY$-+8UzbE}zb6gUeQ>s3` zI0!XPBgA*fKHp;zs5fl)HR0((@hLm^=9Ju~Q;e0JcH|5Mio8M5tX@-zv0F>@8+6PI zkIk`o*3xf}{xE*raCR<(>5sVEv9m15|pr!0(KA%f9_|Xb} z<$LU%^1&=FXpg*RHPjH`Uw{DqMSo-dnXs7ts$BJ}XFEK8O)Uo!3aWEFHNSk|DKya% zD73ecp-tE&xT4rcwuU>?VX0-S2Meam45-|SlMOrjLZr@MSIZNF#hd!Ai8Fjjkg)H< zlVCYzSPyqu28ZpoOE&TDQUc?a-8IL9I!6+(zrzpH#6xM@Y>q`ujq>>E+Xu%Y(FDI+ zT@{9_2f`!C&vs$_P|b4#DHhMZuX<(9eVO0zSh;b6VjlFitoiJ?5xc39Wr|Muwlbdk zVf*SP>?ziPC9V6fcJ^_#?~Y&gYdwpO;#1?fS{wg*lp=ixv%K{P?^;sh7szd`8Sidr zQB74xf~m^(54e+OqzsoA)pmL46j*a6%YN!DnuME0Q01t;bNy%~l&I^Ftw&SA8|&lm zPGWSuAU$kTyll+`U-`a;?{3{Sktq?O9#@if3iBmG(cR>fwc(@N=cJuz3-w$X6 z!{CL4BbrPxohr6RO)NM4@3X(6AXUfe01yW9eykbUDBc7a#Bj_Yvo~Y!qY&T8&%pWK z%`AU!qC!|b#~{M=9cU&J>_(zYy117ZER1iQ2v+;Fsdp}jcNih!q*ALn)gw+aXjvNt zC$vga^WpK^K#S;^SkXa<`qbuKrc}z%nOkojGD75_w_>X?R=x{>LE{zAEc7i8gl890eLMEjn{ zoOxzZX-M0@8s2(-LK`7f%Ctwb5lR4k*x2MZ4ym&JY;_ zV`jcTztUU~E3TI&qUlp&RxzXYdfRyrODh*hMgd2R~yt zld{BNtVFYODVo#|58f-Bz8wVp-t@U(cB32r?Mo6m@wMMBGp?k&y)kE@kgaE_JtT>) z6TP)~EU(nT`q`8wRQ=9kiT4MJK4>ke&|Zx`Np~of=DGo2Ts;HTxvw^&evTWHR5Zn` zr_-K7=FLf}HnPA!oEcj8x6U0*@L_$PLifJB^sj=d4=g`7|7!n4P-pESChyH_M)RfypLp%$5%72-xnR!*l4*UZG+ez z+3!9=o=={E0tNPqjSAH908JARQNXVyz`5Lex!B#DS;)du$k^`^D$gXWMuDQ_j!jj^ zgc?JT@)ARXRUaQ%Co8wJ@ALywATH=mC8$?>-pz#9_`38Col|-KB-KqXOP^f*iu9S8@ zsvd*IXSBuBZ@oMnN7=TQ{qs@-EkN%FzJlZF{0asG7<6JHEFR_o&X>;?nbG9!OkpIf z>ejx#Crmq{cJxcix4?7R%0iNxTHD|&yLdIqL}krz)?zE z>u=1C)4)V!z_oPk;4)H$Lh7uB-@^6S-5jV1V0QLkBNlsot)D691euGetq$5<~2Le(6nTzYcM5h|+&i z`s~%g068~1Q>#@`Zkund`cA)O;qB(v3HCu=XM>8pZmrn{HGR>1en&b)TyAn|3smBM znh|NHbF012!_sY`O56)K9C943-pDR>FI_5sA@Qlv5B!tImT1z3Lc$g#XD|^Y#1gK} zFm6rkR{Wo_#9KO>tkF;4Dg{$BDq#K7OmKryy5_2WCo%vt@HB=$jHDPXyvq~iT%!Zm zypU>*?7W8^kKRZ;jVSg5LD`>|3Fn9zbJhN-=g0X^2{`MUlN>Dr$!HcP3a%MeF9hI- z(}s5Jv)ZV3A$nG=d-GyO90NaqXI|Gt$6fMfS<$tZ*_Tk7Z~}B=3RgsF(b^c0YNyWwD!ABH z1jGQT15)j+1lIm=ews@vl61$;Hb=SL;G*9WgwManjmn0~%?w%Je&VRdTqBTe;z z423IsTi)Q2gQ`aBrJHU%<5Ci~MN<{kzA*f`V_(h3OM>%N8bvMi67IwW#$z6BU`1L7 z!6RLb?>St1L7t!e^_#UB^y>VWdLu+p?MEdX<)t7GyU)cu;JT2Tbjv=MZ9N^_2%RJg zwJu=;6jZ_?$Y*tXwuGgSdCtPTT|t{}hwgVeQ*2Y?F-Zmpwltc_4=K;T{>XsTeS&#Z zqh}eY&DwlWWo;l7bxfY9hL3qs6i(aSdnCszb!IacXr-4`eoUFOWM^`m8>L|g-3h@f z!qo-kMT&(zWo_x2y(XKgcCJ5v%{I|B+-(o1){c}P-YdR#ssnllbJ_Pqn*-k!l`z-uv6TmL;IWzO@PMFeV`!d)co7dTL=rkM2DS+I?Nc znlt!BDlej8fdSu@5u*>EFG|sH$HUfe(8au|vtWrzNnHM1b9o0KWo*Jeb6Kj)K)mjQ zeld9j60?X4ay9(ghZHbuQ_t=%--P%vhI4aLmj1+syj>}Bw&pys<253ZU8hSUI2>e3%{x8 zL_qrbzXKb$K7VUu&Gf?0d3kIB)f{jCmE&=}ykp1ISzJvB`ZA=2me^sitapWTeX8G` zX<`S;7OZz!-#+@`t#gvu%qk~Z-|k3_BP8qn^Pw2)BQFAG(_vX5BO~NvQ$-uCw;=YQ zm9@a}SkCbVda8}Z!z!B!lH~MVz7s&P9hrHtyI>A3t+H4j1W;`0w`xt}C}Q&LQ93c> zj_wa|67TkP_t+ zpAAqN%IGngvx*ceV2D4FaTkuwnwFT3T~uHLpGJVN_m= zdSykdYAQ8wH@^u=U{mM}uHyLL^rNHKW1xSLV@r6X%q83Wd1nUO$#tSU&p(F`t{tbb zPrLNmneU&k#8`jtWF%gGSDqi(R@K*&ywM{zG)YbMJuWT_l;ilVMe_<57DDT#dL#4b zM@@#dwZwNdv4D1h<}-Up)VEqGXm+GrN!W>=4ryUk@9oYVvX$K{ehbu>-sw3G8}fQi zQHc5$kX>+#tp)<;!hMK|*`5hw6A@;9*YQ{pfGXn9od13<0oRcw06^1NbF`0TFF zO<4GA+X2bJgd7}#|Y|(v{#0a#xu~=#$e8-_5J3}&!p{@%C zYb2|YuNDAqvxVD#difA3rF4ov?TbMcRw!sB3hJi3%hE~v54EW3Ubh0}{4O$nyApPP(6*)irrE-4&-=*^8G93DLhM zd4hwmiws)Z8ZvlrC03&EWusq(q6M}7Y%RM@nQ_4+?FLqB=6sajTIA zE2v?GkA@S7nCTYlF%`N#dM*J3+pqGxD15&DuaCLVdoAJh>kM0Mrz?|DgoYZInzgwa zQlJH<-r$YYEA5n-dr|b#j~A8MVlkES{pUTLGn|P}KD7D`^&GMShI8h(b^}xmJP8$n z>fqJe`$q3)p6vBxxq?KZ>2IW{KJb z?fpuX%?`cn#@e!L>=TR%42aijzDI8C8LR(Itar7S+_4r5oKpt>$Qr1r)od99hes(;GVI{1#}1pq0%Vv&6p3!-P6Bd8DFwJ&A0MPNa(98&|wL>XM-ZjA`}F|NM_zi0#F zv!g4`mgTB9|HA^n0z~KxHYWbJa_7AI0vAIz3-Wm2$$Nm;o5HE<*ScCl^Z9ApH8qiO zD$i|}rp|7W?9h}azId;bB2XNrH6iLzb1J!WZ@-(Rgyqro`-Lq>_W+8WuCM%Vs^V)= zKyUzX>Y9?)>b4_EfoT#_`E>(&2QyQSF}7b*GkHAVyZdt_SKAy*exQm+^WHfS{*s<8 z>xFunqrq3}{B}!wzYp&I(nJ_?gBXy!o%hd%TJdv_0u7HZJ&X8|`(16`*Wdx#hezTW(V(jy*qy9=qvy0An5e>k>yqyHc19dqxVmmc| z@l77R*imf)MDedSL+!Gm)p(p_`vbw1kqle8<145IhaIJ@79aFFg1$V4eT?gvTh|*d z0(wIt^OW(;bl)le6@*|gZR+AaxM3EtkM^a1WMdWV_`>-P=p1haevyxOOu^CA&fB66 zJl;T<+jHPsr-yQrT}32SUOGj*{O$lTOipSpB#e?>2Td(>jI>akF>Hs`e9S;dl(d9; z6<@KN;>USIv~<|MN{E6eEd}aR#*;LEi%g5DFJ>Ji@At`(%(6*kybu|GsdHnPw?Jq3 zOL6BsL-O?$d(i>tyFLDN_Jk$oJRsPSk!XAFbv+t-l(VkcCEE!!JLycDQrGgqi5M2$ z`>vGdxztVB&f9>hj1aGKU<)*=t zSIAm3+f|hy(JPl$P2#G9xb$@#j0X$Re=~&zXyEnUL-m>~{CMmv;ivxs*&2_BW*{r` zuXY(mE9H`VWahGx;EG?+b3!Ap&h6y`O2f0LX+&+irYhXw_fF@(%ON1onJad5f5C2G zt@8rby0?P0PD99Be%fH2Slizewi@<^YRO+0{&jtix_inZ z0OVj+%9mfjTXNnO2Z=l$MLo1YNpdDqPyn(P)~5X^|I^yx^HbW5c@JaiA~prys15p# z%2pJu$}8aYzaiZrG%pYGL785)liASAO_?&i%KYo=EaUdXPql zOROEy&FE2C8P+{V*~j9*k?D?*q|_;OORf`hyOE$sbVD4&4|g4SKP{ClLwU?K_TV)> zYedMGrTW{%hb~>6-bq~Cp!G#e^#(nqP6@-yPWi&4$l9RpcKjCaN)>00w3o!3ffs6E z^6os~K8wpazs{!sj!jJ9*c8+#0vpmenp)l}7q^8Wvr$wPv{*PVOE;*BD`Io36WtzD#I-*49h1M|L!zU~s+k=C#Y|9t z?T-nQ{0P6Rmq&*8?xSCsl;3{adqD}t17(JvuLiWc)!G(IpSiyuBH`q!CnjseU!lVk z&nv{+S?V$J>3KKm`CdfmG+Pe3M32^paD@NR>j10l_66{o3d|oJJ0v5h8(1%;@dG>; z$g1LY=h5ujNtMd{rIAEmN7=6T`f%cVljVx#G8@R?-!bz_U~4Vz%@mJiQbMUJth-j! z_&VQ0&N-B$U?$^q*?S+p_*nGOQ(bbj$lREZmxwk+*lRrpq*bY`G_ zY*$HMA8XwEV+?B(h{BW!anL^#J;U3>4b0L%2qPeOH}Z1S&RuZwwx-s%)GiWUR1SiQ zri}m6TS{8)`%&GbE%kDrU&PJ`$bzWTn!TtjbqTpxe_xrk7eG9f6OP{4F;>}F>F8J~ z5Xj>yje!0sCC?5|VbJ+Xd2UL1Bm1MB>J2xy-N)C|x+H}^HF4Zy=$-~kMvuj&ZyaHK z)%vaB)rQQkL0BS;_U-fFRZ=7G8C)4f7hH0I+8jO_`@rN3;v&(IOHyNnQl}pq4iKWoN5Q=G1BVSx_PU={7 zd!V$_wt7KQ3|Y^L^yZ_^!w9k9GSUl z`!D4#iMe}aW|=6f&=~rfEuF`1_9OH=(J&n+LeZ7uXW&3BS>Q)k#l5m?xtE+YF+4NG zn5D4{IH(v<9bzy(Xg2-$OK7y&&j22Nb$DE!@4B(+-8b8j8w!u!Ho>pc8YW>#n{@BxvSfHQRPHpcgHj_~%wX&8c2oyc+p#pd2y=#x(*8#73WSgT;?K!dLjL??`d*XhxGRY!hf2 z=g?Hd#7s%zjtrhL@YQ}@m|LP)9tItXyBc)*DGmr`So zF7=cx_rP6YhX5Ndqubi{vh)eM!zbXrm!vStelh0eCZ=^D{`_sXBHSP&?eY4ArPi%&g0wT;AUwrhz17wl+6k3fW1iOVBsK&(%?Ll{SLK;u-Um=r5gDzk{+sMDA zj-0x*Hb1Wk^vHuQFuv^e2Wcf#J!L5m5%`X{lz{uyG&E84L4{;@!S7`t9}1DYOMHN@;1<*Hx>oL(&2UGRC# zsaaF~oU7QydyQ=6GB>#R;e&*>w9;>!@VDPhYgDjq`u!H7N%qNOz>&$tShD#mHG&1x zS?a#u8*z7@*l-i00d*;HbLoHC2u+2Jxu=FYS57l~&!G*(j5Ol_dhq@K#_9h~GiCVKQs?NZt_nD^#l_2hi z@|)!jPJ1`PYN}nHJmZ~S-t=f%3nk}pd!Jq z>>b8q@xh#DPR_e{8Fu%+#k$?lv-<(Uy$%jgAm-FZhFjO*pj>7zQ)BJSu#)7nfobS^ME69QEvq5 z(iIXV(?INz;ilOga6C+T9P=?}F0l8?F4It#7lTch>S}?`w|RB&nSRb#Ek_Nw+vb&q z#P1@we7gOjVWPOy%?i&r<_kto7<57U)u#1h+dRzW7DT}9$$71XMITV`|Nb6N$x_Z^Nh1Qcwf~503^lroECP2t9luoJY`;C>wQFOo+vDgfE9~`Yra@VT~n+ zFvKWbUq8OoC|25Y_wp$y=xlLYN&5T?G=*lN&=JPHUkA$GmrI4g3VSQeyPfv zt=lTdAo?X*gS8g3^HT@{U(qgFOwF$%o6-^|P^s#8dkJ|}Qs^)e*#BYxu>$qFZ}Mxr z$SXI@TZ#K60KRs~jtumV-W~$G59{a$^>0Dk1vL#YKVV-(k;T~2Kxfs;$vo42w<8V- zPZlMaUP~Q|#^C3Vhi#b4ps;@!8_k_1GzB^Y-6e_;n1#OH+qzbi+n@j6%n>%FI*4@v zP~b<8qkE9k=Z!C9>tE9Mbv&Yb+RM$^0rY&%23IO}Mxx#mn!aaLGE4<4wdIk+h#%vN zOVaUR3{6&E!?(e+OpR6`4qKaa+6ir;IV?Pnz}1B7DUzhUO#;dOCA2L(IRK;?Ofy+s zvFW2J2GoM8N=^G6r*zDZEP#+pV9s}L=)j))LUdW$a@e_FW>3k4ybvtsL$wHOPkjud zd`y4j19Rg$^Zexg_oThBQ%{&-s8Ha3>w`jNvqRnkUsOml?bwXR2m{`OM0eCe$I-kW zGGflIO!me4?50}1;9(|HLMndk3^wA`coyn*SRP{h61$jqL|x(u*dpL9v19OwKRpE@ zq6GUY{-?OAfqAMjKX8-{hZerP+Q$G=Mjx?P`_objpbAq*+YkKOyB*?51}U>XPVwi9 zKF;OM;c`6H`=lHF6@W2?cS}KBMncA;E5Y#fUL9}9%Xbb=8s_6lhnLqEzo&mrPo?d# z41Rd68s`^x+XrVoCnPFgiA(pUs9xLQEBkDvvxV{t+@JPbFR_>hBg!*KyOV#xe%T+& z6v%!MWT}cocJL0$=8FN1eZc;wCD{L*wh!rc`zMQY<+%OdssWjT0>~5swR0%0bt`|9 zt@&@Q0=VVY32wQcobLb7_laG<(HLiv zElb}GixMrGv-+w(;2Z8JpLmMA5m^I>k3(B1`p-`JzK{^TG4yt2<1 z&8+D&54Me3iv)ZlHfYAc8~LWM8Zi$M%JlGE^apr*D47tYE~P1 zk9$u{zQzJuwBp~TDF@kscx`qh(%YV`F_UWtO*g#0*LU3@p)N5!Q=QP<12eR0(fu?Hx*P5895IXBSbl)|qo?9N>a%hM@UhO3xJRZ1^5%J7~hV8h=8P^49{_NSG8ttFI~&|6H^TSR<_89G*EbbMvx{ zElERD_)FdhZ%>}`%*U$x-kepu-Cb1cTIM_S^xw;;-%|GzZt~>9P}tMD-Rhv29nxa> zU$i(rkLDJVq?W~b zzx{8>RV`-1>LTt~_k@b}{7X=QJNwZc?_l{3QBC2ucd5fs{xac|V00y4@g(l+^JPv% zyY=#+_LRW9GT4B!+hMONMVO4lIhvR@-3*-mtyl0}wGZMbrJ_z!{xB6I=|kFgl7Y_H zed}f7C+~p|BcX5cfE&tYIi9i6cHsXb?alw8Zu|J}vlS__6lH7IN+>&1QCdw>AzP(F zvc=eECfT#4jk1iWNFrIY%t$gyjD0s_%h<;ljM?wwGjyKkbzR?kc|7j_zz>c&j?e4; zd_CWK;+U^KB5wC{B?db#KwJdK{U~Kx*kz+d8B^XG9whhAnt zgn4O3%pp=XAk5Pn)-5rwyUo}8cf@UHPSq;znfyXZ;iC}HL~4N)MkE!1@2DbY5&4_M zt=CfZaTMU6c(k&!!bB}4DJG}`aC<*u8{f_}CGz75b2AejFUS$M3VUKDqe7l;vlt#S zP1PUY@oD?E+?B@t+gENX8Wu_(heiL!B6{ZULk~SUr}BuU;19-GoW$v&RF_<|@XiE* z@IY(n6^V4oh0!^CO2SWB_s~vyeXZGnA&~j)ZcvLp>-||?YFcl9+iUmN=*vLyyf& zc`+JU#s%EOqwAMAYT>@Is>gW63(EJZU*^Qy$YIA_aR+QkADr|YAC(@6o8Rq+Km9I) z!Js-K@221u{DVB@+rlIwoB&wfv){8?Zb-*=4Q?HV96#F|_-;4U*=RfS2w2rE&C)aKm4*W>qZC}tWbj~V{UtBI@0i#fk# zqV9x8D0AlSB#Wq0m5!2s3n)u`DWp1$9;tefVjg|Fuwe?dVC-t9fUiqbGO@nV3kFpS z_4(i^-Il;UI-%yO$9u*(pj$kjDO4fFwN4O710;E{7WK@7Gltu;r9|;6i@}(3TLJfN zG3N+oqXCAI?G)!oRGa9~wG1Uc&8O!k;#n0Y6zi{NUhMQc{-vQ}9`gCI6`8-Yio%m%RG?WEW+Ora+Q9w$Y&JN}Rl6+Hy zX2Z(005Hlfg8-wW05B@H>x@5H5K$hw-orCUQJ|zz?t}J`mCplRoi`onUNvVB=%_+j z)9rmwdHC(&47Vf^p>VrK z?&`t#9>|>1!L;%Wq0leG$9`_N0&B{Md_zZ->j7@2N~co!87B-$j5kFsy_fcvm+Q0d z1}C~pVlz0yi@GOU2UbJWgvgB}Tvwky|I1zhD53VZ}&#=%YT4V-j^=+y#qe zNSlI@z&BBabtN)C7Eb$-15%pGE=LDlt4Yo>Y8>&kdvlY7>;SO2)DZagIk-#bpz4Xv z7U$$7*h~bC{%In92j#AfA-%v%``7rSuf%*%L{@&sA`F$rUg-L3H%Z{3GQ)Jsy>H## zL4II6)dw()`aDrlI`}xJo#oJXXQKIUe%w$|73&sHe%~nOEpJI7Ec&O-FEZ8zA86R) z**(V90?4aH%~WgONBJvex$L1*YP$@S2#AMjhWR2{dKjzPdVnATE3Z69aNvwa(pxK?MQ%Y_+$Zf z6_`r-bV%eU6U6UdnW=bqEd;UQ8F7^0&er$k#`rF@%vap2vRx8QkYqHzQsR3ru|I8-UedPsAym5Y>3G<)V|+|PDXMe zt6Es9X4^b;+^#bDchh#5C6xL7j^DJ0KbeAnqfBTrbx<{~+_S^HsOPsyybC1A58obe&}*Hc_YIaHb*i~4$LFgLHWj7lG-*>Wxv{mf1L(91 zqc-6CW|#7;PPq7K!@zpgGiwn&E_%X>6z&1BugY%{)37mi zhhlv|3(Abpge;@TjvnAeKiKEC>PqLRLO(f@%VWR!EceD>hbG+1KU#-!lr}^wVAJ~* zTPxUwYb@}2=)mQN-5&6;J7O{&N629PV$Ng|xCQ)-ZxhJ)xU5Fw0YC1&I=_6&ispkgLm7Os~J`{7ath(A7Ro4=dAGH}JfD8#9 z&IjpvK+#n7roV)K4Q>ZOd1l!J@jBGuRjAC<&q+K-c&|Qg0nk@^0lxu7@|NLT9=kOA zd_q!vWW~+vQl}~>Q70ykv$7Pk&0Z4v%VY0=6^a^uv7tj}(M3xB^wu``KQSLPiAulj zM@N;VPJXKWYXDw|xDP%{8(>whUA1*f{2!7vFW6ztkMYzRpjO7l`GCj+luLDrvLmA}@(+BE1LFfca@8<7b9BIlgH%HUc1j^3MM%5xOZyW0}nz&3WE#no6 z8J%*Ds(U=DFtizVfvTI?vavtMG{csK>`R zU|+Qzs~~oE@#}$r-`th&doC!9MJ#AvQ*26`_wRPD_!txuZF`{n$D8@w9uwPv$~o+H ze1}-YCo2jOpyV^E!(@q@Y9DcrZLcO&Zw44F-M|IEu=SE*PNIQx7(?LjXpOt1LVrNa zkh!SBXtR5#Qi{N>hXdIFoI_P3rB43ZHPGy$a z`FtsUHWs&#bakfdO<5Bq!l~TW@90W(^{Y41(c+wA*ZqK7PZRTECvK-EMnvefye8O~ z=uKh-WCsbsUQZu&6@DoC{mWwq+|-VG~hDx?%OF-FQQiCJ1Y9y1TnqJgPV{9up{LFC@i;I@#hjca-99%j-%WS zhcioDl=KvOW+H3Ug7xoGPC}`}|I_#hGWoDcT?^_gq1gB!PBY?-ltF4P^ zd$k^ZQc%Wu)ryz4mQTwOlxnqBHEf+%hl8Q6{P()gvCTR@jJG4jrtvT?Yv@Zu@!U3{ zc!l&>D!|AeZ(1tlQb4NL$cl^)6i{(nl&s&ApF^X1!_V1iFEbC0D*xBG+SQgT;D%BNFN2c3nJ$(q>zn z96M@Kt~X`nI&tww{H=-~ZxEOs6Z?VcIqbH4LY&;T@9rOcX`{m_^|ZnnbQ}_`k%S? zZnYyxUzAhPDR@4A^-m`wXnc$hOxUkXL5u9Z2=pukGfz)=uZfy3j9G_nL15*|!Qz3# zg6`Hk8$KTDYr<|U&0L;9>HkVGepyH!J%!Y&4Dt7LSgoXS!g7s%Y_2lfgZrMN6({n} zDj+N;)wm0=-<6C` zZv}19o;Y`McahF)EW<q=l3YB1k}LDYc`A%RCR{7!~)(rX0jxz->eZ{f^XqTEy$JyQohcA-7J zWs_V^Pe~iN(x!LUo7*Sb*hyYwhH06e3aeEu@=yPE+IA^$ zSOG4kkKXoS=^P3ds3s%74lH7B5 z9fbD>gSJiGB&dUH0a1M*e&DwTiC09m-O@#h7t|8!DAHNw79JSLXq1c zKmS}`h`{{eXV_=_;`p;Kb>~)qDT%r5Ya>^fzXWL>hR$6XtKGPEc?Z?5jy&Vj1oeZI z42Js2@FROR`WEzL4 zj?k6&3H-AA*0B`O%7BKtyY+v`d(p{Z9-bf8OOiE6xP;tHgYyZ_8Y^qQqGWozYYmwq zGqg1dYT51YJeFjm&DV{n0a=ME~kaJcIa?Zy7M-x{+CnM}Lj@CKk zZMM|UXqY*7gi|JpwCQ;QP8TIWAn*xhW+K5=So@V(ys04UTFGsz27t=ewgKmCt!@7S zan3{izW(G@$XDL7fSNc98f&Js#}B}wOzcY@@mA$&ol)A~i+VNJ0_J>D_@%;|gm~6>KPL8+ zRabw^1nNG!5WxrhR7bF;h_SghPsw!W^E-sW5~}v4B~%sqQcsdMzwB?#=)MU^ln7ev zVL_{ruLDwxF{U^APIm+Z6uBH06~1Dx?Ec$Y+_rN@j+s=5iA4Qa3>^Ki{*o5-F=gUf z;kOkE&-vhlwfku^aa_;D! zdfL$SI?v3z7}X}+P00h|h)fRhBk6x*y`(}pb%!p6l%7)-GEJ`+baQZ~{mJwTggI+g^|*mg>wO?VvJoq9l{BgIq}YMPJp-~yHEjX%G_IM?{jB+2TkdO9?{k5i_n$SFfU^tX%U(f zlfc~T6YlM}NP@SXqqmsNVbg95Ar-Z%GFDjLlKnAB%{Xv&%W5L&4N-e$; zBK!CWpHXeMNFMs{=96)`B-DJ;Xlo)Ur+c+pE`GbelMwAJw(sGwX3Oek-@vdFs;_*R zQD0pLk!zm|wjaIdmySF2P634FPA{vaK+|;6M$@SH=dlSijZ@d-pDT8e>_q>Ns-j;h zDpi4$LcDbbv_!yZ0RuWq7=Mu^H;p5?$tGpIJnoCIsaKfXqXbhsb1;LlSYVjZhUOELSg2x`vp|(R+?@Ijh+l( z2~gbt5($YZur?8}eTm*<(U@Pn@C+-=C$(S?o;UmIUoR<_N5VC#^U!yY?J4%W7$Vp+ zm3g}tubmCbxX!urh{Q(~^qx%PwL>O*ZznGwpSiLg{_)YCOrm*DZvzXba#E%{?&Ny9 z>9v-Qa6TY{7=o#O{t*W#PkgFEout_{jMAle?<`F%9I^lB${`99eZ!99SrIkv4ycKZ z2WscWNYXx%!0^v2&ZO6`?SZT9ByFT3<;MT~Qk;r_N zgWu+NhpY0+llX*a3<^+jo2X@YY7fh6S|Me4Is<%CNxmHR$w_@qM-X=J{G#LVKCGoc zIrHq+7kmlrAR6S@b-&`-hPmj4+N2y)IQXmbm&#Eu22N!r$0nrL`D-@bQ2}o za}Av4pa-(ODaXj^#);-0?WxBqKe|qJoTFGD57n>Te16TQ?JJ;Y?`#)h7T6zryBewx0z|e7D&gWsi%q|) zyf0h$aCpI9@5aONyE*_lFYUJfc%kn;E~>i$93tEq+mFBe4@!s$i5u-b4zBgax3T;J zloWiu)Wh5xGmnD&`~Kv6oZFG}zxisGKEO)Moc0GJT?ZiKqXQw|?#{`z2^kON(-j2I z$1;>J`Z{RMYCjtCJiQT7siF@0xDDj830^-Y5th)@r%dTtc-ruKksA%u8iYzwyAOuy zO=TSASu8ms^l*llm(Hyqv?01Xou$Iow z%7|ZE@83vSCr2aa&2yu0%A57YV|U{yJzpAx$HG!_N2l8QK4PAK9!Vs!!EEXM5Migc zVCa2a+s-#ZAsZbU-KPN?EPP4}P8xa@yI~a{D`)Vr@?Rx^w~Y1KQo}A9UF)o$pjt-V zqA_AV+Kn`}J&8~1wdK#pDdcnZShKJG_{QK3Gb80)U;{$6fnPpjxn*9cITZb!2G0m%o-$R&zg)p zO+o+U_QFS+=#|+@NAqlK>9CDC(XIg3yP+8cpQp^%=PL)n7k|*Y6NoSA4$05-J&7S{ zdI5f8&T{)%#Nnn=!c=Cy+jT$N$#OlN#qeImO~$fYFG3{jBX;?T&B+>6oaV#RIz5uf z)Pj2LOXrs^p_cB@FIYQG0lmS+O8She|25_ci2HQU}h_`}hmW3e9g zmUmZSo_(~1(o$2gYOwVVRJ~<@>aEV`fn7UDA+F|~`OXrr|JrtIv#40@qey1iwAkN< z2){3L0rvnXnl`~@+AQSgp>mhHPv#)dd+UrUt@hGAwjQ7w(qx9Sri1N#@ce$-mgUpr zM``qgL06I=J35x4xBqCW$IV{t+vRvIIh>k)W{cPHeICJj(b`(z+9p$OY%EFQxmr&S zI`3J`A(zRY^5bh(QkMs{8~B6T36Cs#MP-oNw`uo8qR?F;Mf+Y9*B5?X69hl3lC@}e#hzk4fiM`Lt#_(li{%RemKsN(Ips(e(MY6o%= zq zQ%V0ro6i>>e;LY2nYkJkvBB+82QZ}1r_f|Rg13>0=5 z7vnV_OfbRawW`aWSUlmHMgLM+&w3A?vQ|qA<$quZZ4qn9`S^{DFE04gYo5d)3yhCq z?3wPV2WFO=x^}PiVi!)%;`j4)5ua^br>w}9e$Df4I$*KXzWx--1yG5~CsUl~HQ|y` z1ymdFv;9}YEPK|665h|my=yk{O}7(++8br=NQHb@QQ>>+BD~ue>zO)scx~e2Ebh zm`jKu+0zHAr^AXxKDvKoTF1ZCxvVJdy5wAORqTfU1|9cNvPAM?d&=yES$M>P#6F9* zbhw-ES3UlvT37p3x)c9KD8?vIOewvZ{LcvMgco;R?K+09s zv5#D&agYQ!Bad4G*ONY{?l_VP#eBOM7ANkdF*Y(*gVVGG8@+Y>7i?59(gR?lcf4iT z=<4_19y^yNPrv`5=I5U)!>tRUm`~49Ua1&5NBev*T5pb983n>fbKNGc%E-b&BcWYs z$J+Pb{83)X$6`zIu8`CSKDDj-AAXPj@#JfWIeoA8uo3+k=AbF~SLU9&jyad*q1mo1lH}Ny{Mwwu~r>I??yEvkXow2JWPVB^>Rma9>2;7+k@NuX#|r) zzMSjro2-LGU{Mdw(WMq#l5KCt_*f^=3E6~ev{RHOH>9*TnZkuw45wOGBr$*l7~QtHR7owsh~f^7e@Xo-a@S2eP+g{v_**!U~^_ zGWXY!7I6`oYSb z=O)0!0sHRa^eSe8`lBf0ir2cXv{zH|W3eeb1J*vIvfXwBa-MIkY?xtXf77Lk2A?bG zDTxsI_8R>f$-kC1i6*jy-?(TX-zauZI3ybewNt>&luWS^Xy0DyGnhYd`!X>9w{SfmWDpow} z`@_Zhe)&0m@q-lu@yH6Zp2vttrm#XZu!2>lFPsUO{#t5vVlgk3B$65plzLYS018kV z`$T~Sb{@Vu4$d`zIPuYpCENq5zTbctJ%ZfBIQ4d^wJmPR_fDRicQ+1>J@P!} zXA+{}$cQ_G1zy`7bd{M{4!DmzcFhe7)ETbaL4s!_t6~u?wKU zfc`Z%cHs5}%l9saK>?06%+RUfG=TEEPZ|d1Icv#kQhtm6xxn)OxJP|D_ADJd@;q@~ z-TVcIA5u1w53Y@cn(x@y(!f~Ic8>>bcWCD1+@#=l<@0l}<=Xsbw~K$!to0A!w2Ee< zFH**?Ho2*?fv^em-fwj=nBBp(uh4>^q`Q->aoU~p+i{J>t#>zM)E&VgQl4!ohwOUC zB)wv*F&p=I98q^1p%c;ijVpbl)nf6X zkZ&K#upjj@{PbhZ6X&-G>q#|8Q%?d zJd(je9u|NVt^G$Laq|U`NcaV9flgEo*wB$*qvly*3r(EBi9*Y8Bv;Nc9Qi)jn^k5& zQQ5`#7eDS?EGl>wh>Ji9@fM^IL^v@cL1B$4cGc7gzO_iFt^Ewh7x?xFvOM!$ElUID z72!-A-M0A?cZ(uLMYhtN*fGWr4w?hKr!g<&RB0Mw+Gq}xHMmGz+VTX?y4}D$s`T+9M4o8$u;HjJYs46JB%!0J*(}}N)Yi*}KNwx*x zsjOjy&PW$fu&8Z53(6VTGu(Y*jFYdi-(PiJS68ci;C9zt>dm2J(&8Qpc-}Xoua@QK zzVTwxT>8_Q{_|rfN=CsZd$?tR88bhgsxvx$Ua21FmDe(K9wIdiW1f0ZEd<8&O-(;aUsiYx5I` zPfH2JA9fJaJAd7g7Q?-7gF9aIxgeX$FH;o7??K_$ij?LIC{x-A};A7&*!?!Y4 z!L9=hIf)ahSJPu2#?t-x(0Ie;id5JVC=Rkbh;HTj@#_~~FsHv~$sf)8>d>3f;S=QG z+&KyjYNZQ+?P*X5_3HSTpgu7jA$AB-=rIj4&UsHzPhwNDeQ`h~Zua=4=%-CGYo3co z^^HUK&J)Z&DE;O|s)bkNUs!sJ(M?pw5DGBB`t`&!sb=uyv9-GT z`u>mOL(}Ikej|BD4lUH_EyN0CDc*@t|9MM|&$RyA4}pUG5DgESVs9tigh_*r+n7W>rO-yRd06q2#ZbB1?NfdI7$Ny!wK|%&;<4mNR=l@K2J|Glf@DhuM3kp=C6lV~dV&Nsxmw z`@pTLBfRC$q2UhD2Mj23-XZx{Fht>rT_ua{!YnzXsWRwBprwXB(lynPR;Yc(weW0W{CHq{)p;uP8dA-yB z2RDSyA=TrHrhlkbx6ycGE)J0wnQ>^wW}>U5i<6HC@-;uEM;iQD);jxx?T5*Sa)pXY zgKhlyj+n|1?{Ldj*S}G`6RJQ8`A43YEn#tVq&i@WIIX7SJN#UL==jm#{xA2F6`R|& z^c&7WHrHyt&Go518lI>?{;`AhM_>eRy7vsJj=ZhAgyXHyS*FCf#KlM>&UeeI=l*ro z(Uf9hxqb3wWAUG~(5Zy027r9Scn4p00-tr|}EF z*g+N+GQ!%}uCCmm^L!^nVBPAi&YqmsO+c>X+1VxhcB?x%F;Tz8P#86ZNavgs+G zsyK>GsIw%3&l6YdKIF6RFPL9;KPVoo9R(k0N4dvJ)UnazYM=rux*`QJ54uat!&(Ip z+CiW=2lRSK2Rx8v_@7bq_@B5VW04Tn`fB3&aaW)?m2V#gTOJa!1{}Dq# znE2^`W8$0PcWp}jeBQ~icZlIFDxr)40d)lVhs%3C>vOmiw=(0&jTo01$qDqR?f+-D zYwUg{x{wf-b?3kAuGobONveZZL(_lTUB4<=WhgU@8WA^T?qkRczzRn2ywKnApM~3P z;>|Tk_6VjK-Fs-+uO~8aluwFFIy5Ler9BQG3_+WBesJEDwPD3gNw<{%ch~`NhjDXW zq>1-HWSMbJJe1juo6%G~D>_JZ#Cg*P;CLCa#bRyqzMeaW=?s-&<;(5tZ{>vSEcm}E z+k&i4(gl=l113D_aYJ5Af%ymtcdh^SLwqb98Vlp}2GNM==9Nq>*|z$y(&`n{2;j^T zx2>aGn~`Oi=}X}h1YaC$S3H1^<`i;G>~C|PA?WY>P;ihpAY?~_VOcG~wFHFDDZU}% zqp2r)_Bq`@Cf>Q<@J@8eVR%S1g9e1jV{+?Z+vlmAw)ZV(<1djy<`6NlG)VHQoz8<4 zGL z2INtjLz*@m(a7agtYhz+Ui%C3B|9WvbZMrn$KvpNPrb=|V8@GM&mYMN;`eQde|7yB zl}HF59in>+gEdd}XeX-=-3yoWZj?uVr|)R3_#eNkvqIdHD|*b;c%(QTlOx~^J~DN! zHU6F0xz3S}w{Fk{mRE41V!??z7t^>eRry1;{|nb$uKLp__L80_>l_g_T$8ynB5FN< zLi>ZTb9VN{!3V2O=WQ_q2?K!g!2PrY<(ZS zNZt{4`;jT7ckx)2RKI3jE0>-o=FFuTeUH<9s@7<11UIW*H_mKvXcshH`g~RF+{l`o z;Gyxe7ip3Vr;_%Lx)kQ$Bc`p(Bc}7P@k!10*>C}XLw8oV#Z2#m?c>(ls!g4`u5@7T zYGAqtknAm*z`NI0%L2*X!?m&oM=HKa&@E@)c=U1R`xUQPO-qOe(CY(aSVn8&foIR_ zM(}|fDghk%@B4N(q_DCx&UFFfAeb~AU_OZrnl_*~=`0D2Dl-P-%cmV}Z_i8IgZJaB z9uM&=wCDNeEZJ6M#-9~aY zx_PvYV|s5nzH?7$J5e&e&i(QT z{Qo3}SPC3eu|okdq%8{2CV0S%um5jmoK<5#S=y+)`7m#b)U?`a=A~R$;_f!WtpA9I z2KV+7b;^_2jnae#@>8xUYkO4#=C9U?&dwvy_nAf`A^q_ z<>Zc`ca*1J|54a1Xb%Bn^y8G@6~fM?x$VcEo?QQ%5SNEJSNnFcEdKOr{p1BS<9#KEI^M+OTgQ*%YjQUcZ#6SJ_#;~e_BwefwlleSc0Fg`*Upbn0)B+yYk2RS zJCMD)pZ?yau6v|7(P(58uz3zH1s9g|$=da~zLDieP-*CF(eSG2xEYDfgjL4Vh!gD6 zExwMLcY(qP-^=vJEZ4bZezg_^do=(;h`w9V|H1hmj(`o!ny zE08}MbnGoOdhMV1?`VM9wp!@(4W<<;+gZOiXs-ZUM!yt^zubKtl>&Joh9EBlySe!c zczWzJCNw=3qeJdyM&ELzx# z%ax?y=aIiqo$c=$niU7Oz$^rWRV+o$;2nqe)Wan!JyXey49*fbHoW3?lJScI$H^4puaQ2%jgH95#jb@t6Xc!}~|B|0#lv zK|mr{6dBX(-MCx4HxTkcgeMjr$8_UW7B<+#E(%5Lby*ArLWuU0*X_S^wWvA^TrXmH}-=xg`e684(_*Mfo&UzVe0ypeUmGQ$WdH!fU5ZS?*cMoXD!Dyox z|29F4MU?IrTU}c(;ec7cv|WZRYby0oBKhc~bIQ6cQ@*`}8Hui?^U`Z{)lz^149-fr z>pebwH7x5u0d5Gy;IEO|r)>A$1gO~!}9raqGAzjhSQ zS|?+F8u=D}BD17lRF#9`9;+$ofV5b%wlnG%{rhNTYvd7)%j$;_>zwq4*LCs%Xo5-5 zUd43w!-hRrdP}M3&|kuor{bq+Jzx>W0in@i5~~*RirP!s(-B0QfuXKtGQXO~4AFnk zynp5YZB&6mySynys(5t_s9kJ0b>N2dCd}r6+i0lAlp4L^lMPuv=Bs_VavK_MlAEXm zs+0J|5)vbPb9GM$2)$oc^yUUlr#vxnFQru+r&zx{@Qf^1ev~d|rxmJXd^uzg*ou}6 zD~>xN8xm*g){5dFZ6zoN-pb*M7yQvyhH|4$EtdnqugASj@oLTRTSaSp&&-&nf1`AT zXd9NV1KVa&{RVv-Px;CA>%NvC+JyI9=Q3opQTGO|Hx-|_ImD?HB)KY^TbvZ z_Z3tFnN)78$PO#KIeO`CT3Xp;z)sMcoF<44#fwzvbzkXt#CpODt8}kqeH~nB|Jo5J z0wfSyBUxE;fVU)-TI&t5D>?w>?U>)mc6N zwm@t`b#?d`ZUDTvI6@k`71)CVTZc3L57SyYmCH?<0hYatqJJfMz-WP0^laZLhLduq z0Jvy09d-UMv2~vwoE?@8gf=%ZmNqx>A=eE!hw_NVlN|rYCki+M#2F(t^83bA0z3zP z55K&*X~6(2=fZQhFr4lL%!zEkA3sF*&Bl`!%bnkM`jeu;=;?d;@#H~6t5Aa6R6*@} zyNvGNShKQ;{MW9J*l5}omK-l9$RgQ(Vl8c>IbuQFo|wJ`7d5n)bZ`}ZqTljiKH^@# zhcbS{RJS+O5DWxIq|2%U1s})37n!KIq6QtIl~#B=$v!Yv_Zd9c{?)PExqtPY=*62U z>trWJsL8l>yl}icVS)o~Z4$JOAD#X$N-s7pF6gCtit@eYuO|eLjGEJ@kFeLICqeSp z8|h2(*Ck5tAW{6uDG5(`gPa)oGdRcfT~6T}-mTIjpcnc&mGiOuEoi?Gvm8}aEV14n zO)-hwn=7=M5@KsyfOrfE{7C`^UfMHIvv#r1^-t?!|7h#6Hesd*Skkl(TGI5MjlzSC z7|;6b0r>cfW4Qkg=&EnnGbH~JFJtKR%@S?wv#;_N3(ek@(w|}U#-@LWP9MwdX+ODS zAs4Ms>icN4d+5R*uv^Bf;u&R~DoeI&#kBj@khiOwFgNb;hqKCX)T`Pw+8#Q3%lBJF z1>lv}wEW7eWjHN8^5((nrn#495Hm!K;O5D1TUTaOr6y?VgbE$K#L}6ab$cd%cah~H zLYWi0bmW#a3;$sJ%uptu8PbAS2a%-(PGD*@6ZZR5ia@u8Z}{QI>X8ZB$}?b6E1ZJ8 zxnzMgEcwR*o8AC=wvmhCPSB2-l-ZU?O3@GWZ#Y}ceMrTZ3_OhIi7aNs=s@weNY~_1 zfQJVtNySh;41W^<#lV+8{vfR-W{FGfKmdr>-#?XIN(%JQ*P<9MS1uqAL{FGL&iO|P z0c<~GU}tSJ<(aK)6u`vC8`svas$*#SMEe5{P0)IsLWScpB#z)gSl$3;X16$XSp=a! z-m&Jo!7-aPuPO~zH*YmTcObw0do2bSEalZCj{4=|FdyezVgWhy|6+l)xvd`reP$n3 zbLj!&TC0{!PsItb@)DcpScmb#_m{(JLQoUWsPbe4Se~0|+_UEG`Hc%l#)pC1DG3*L zy#GEw=e#x*Gb}ZDIZpAZ~!@U6|_5o00 zFPnuFuq`J|yoD@mL8pli=(WEmP;#h=HNU-;7F{K5I zbDg2rfH~1co@GU%f`kW_XQBA~xyZ0D*xOXLZMD2oQlbXA4Co+GPa)}R58WCCug95s zOte!}erzr{rCpQ}5ZJU{#bkNkMy*knSTe|ub^>jdfU!hgOjG&GGt;a_CCP&@qp(pc+yK({GBzMuQH;(?2=i6aB)aDU%-`9d9kYI`r?L@8Gf#;=h8v zbN_3A{r?^GT}3#o-oJ{}z2Bi=dBvd9E#K|RAzC3ro|j5BLr0mREQ-#$XCOmY_!CO_ zB_d?!rE2B>gc4JUnzyUJ)bz#CuFbLwogukiKotj4!7|H>b}q~HF89jkl9&^pvw~Sg zU$6XCta)FzdnxGy?>^9Kas~vs^H!cl`Lv#RS)18uLuwW5;AEHjo`-^Kd;-tjg2n9# zhat*&Ct2^`Ldr__tY{!AT5nDHTLrNULd-QEn5>KD08#lTU)w&BOHn;ix{B=|CNXYA zqkI&!#7PI^G^ccB=&W~<5&`wYLqKF>uKwID(E!%D4}<7jlr}<*Ek0oKM8@pC1eX^pFZ<((PefQ| zPK5K3++7l84bc?;|Pd3`Lxz{3=e8@@?<$+9Y`Twg16#$@CKtMj$Gh%xRhj(m7(1R3C3 zk!+vrcROw_vF35bT1?CQ`}KA|ZO~x(hi6S9z0M6Ao~QpPv5>|xc6k~z4ePn;TW1ub zL)zT)?z{doxS?r!bi`KP=H%0|w+4_u+Zm}9hAy1NLbLvpJb&DcT*g$6ov%g99jNoZ znH2V^dB`@Ea~Y)!bYWcZ`$B_vVZa&u>_%oOpQy+oT{T~wQkk@PDf~FgQi0)rZAOh% z5nVc#(tVPmcukUgPp6}YDXCs@EBP^;8cIuRNZZ!D?OZWt z*%PfOgi<(qIk-nk~C`+3I)D`QUl*1)Z29;I0cg>})lZ z0`##%N+xK5#*9Nmo%T)nU)8}@cwFs)MZIz5U1>f83P5+>W4QM(!I$4-1>daMkKzxr z6#k9|5r3jV3O^bIYvCCR)SX~0e032((81p(jhF@M*ar4Hptk(8qHt*e)E4h7`DAE8 zAyfX%rB&LBH6KlD{Q0|Vg8ZDNo~a)1%w2Yz10X5h*KJWKW#~vWLk~&gFDX2DIoTP^ zuy$cT4ahT-tkI?w^fmI;GR7p2d8#(*%>2=%HBi6H?vDdWOXJD!tndIU3=QD1DaiF- zw(3)vrbE#i?tg2OnqDZ03iq+=1uO|^JuZlO9?^X)12d<8I(9rwDmN2|jTJQjlDljByBZ9t+GPrT2aVc;`Tuk`?0tgOPB>} z0=7SBuSfjz&DT0y(Ca%k&bM2asB_um%`=%uk?TvL248qIF1axM-W_*qXT?jf{_?!+ z;z)JLG$sPPA6=E=EFVG@C=O*!P94L2@+fg>E#d3ZDxVk*_#88i=`kAf-vV!*@8E|T z3E*_)P;Dh9<`KMAAdys0k+5Ay?OdQ|)e5^~odt3$U{WT_d!Rh!!5%2Wf9!!OhFb7^ ztHe~eP3JYz-o3lut^E2~d`OTFpNs!C3a?)`44tsm`_zXxk9+beLVrD<7`fPUgDW6i zV6vlzjMqg*+vx?QUL&}`B2RtqK5@GSgi>jV%jKv$tu^ll6XKP`cpVC?{FuXU{Ip}h zR;a+CTxhQihpoD_UM-;mV<5Dv>R7wdrALi7qF`T39z`56@x8kUEVA~0TV#*^W0CE% z?~FGpPdK^!O;)eRw6+&4{O}E&t!<+39;O(_HnD6$SMi1T9U;{egcnr5v7>_}jal<;AJr?`Pmp}3j7l>(=|SN_H*f#oIe`*67 zWEpqt_kNE#PBftZNTd(0OU4Pce;X%&!DZPv(Ge&2z+Hab*@&!*y2?&?vA>`(*X^IN z8xvR0)~ypoOM4D#cZznSpGefw$CQsQ~-HP}a{U{#0K((*!3<;`-@x!#~i zMmGID*&=9bwJ$LEOW`RD(Kq|CAz2J$2hg7jqWyyI=xVh`jQwTiUk?^w9*;jgvzqzL zov_UXlF6cD@?2+_5wT!g9QuDT_9pI7zi17Y*iHI7S*SFk_q{QrZXq2PP}|f5Bw){s&A} z@NlTTR?e~VBjfRFu}m)gxAL`LTu9eGjt|fhR54wrk_j;<{)# zU`{y5l|mxJ;vQlqBe!pR55JlYW?W}N?~dt3D=mZCO{X3zY*QBo*OxqZ*TDP83|GI4 zZW?jl9?=M`U!J=v>gB;(vDd|)n$R};qq^Y0C7FG zu^o#i3))WPw7g&xs7U$dmXqN?vn#j|Fx@>En2X<^akAu-zKx)Pfwq234kKf(ArStE z8*r2TFvM4ceuGE`(7sKhnR)U0T(ch#N_NvS2qmla2PG>{v%oLZ0Z2ErD9_Ij=L~_s zIuB3PC{>>chyoy4v{&j?9r>-R&He#Syr!G~wExEdAFswhEe45verzCr(-#RgefzzG ztf5WcC$#frM9gU3*7wwBiab)#ABFDIkK+$NeNUYRsmJDwduT)NlG>J^%a+K@ttP#KMw8cUtj8dzwOfR8N64mCBG^LgJO&m7b zru)sWxwZ@6<@%vS@gxHiJl8Ud+UHI)vcu}Jb}}<+ewjax2-TU)6Phh8Mf8h#2zXVU zTK=Y+1n3gMs<@VAZza7G((+o_k@8=(+MAI@usuo(*8TT_A~p0>$M>yODp&pCuYFe; z)`S7i!SHF5=yd*RYD`erX2jhHqC}HioqAb_&)l@WeTKE-$>`Ts-KT&jJBXmiAq6ac z*xhToqARHRi7Y%#*){}rrU0#v4V@zz9f(2WmUkwO^gqyno`H86$%f-^v{_8x5(wy_ zKWbcw)6JGl_;Z?Uh3YyVJ$GJ^SlCH)J`-`-ZpCX279^^6#yY4Zj*3SthKPwy?@(Ri z?knj+E`u)-tF&t+0c)b}VBlQ!r|B^71Kt@&i)i^B_%0X*-|si_whD?8-#RpEP&nCx znFRu%r@nisr|uYz276ON&XdK9E4~`64{^{TD&|A`o-IQAGFzxbpbNEFmZ5R8HnH7v zO1fo!7jr}DCRq2MAaRzb@nnu&X?1)nMsR>AtdQTTM>GM~)5@Xql|l>Q`k^ZR1{o}T z?QK%&1b@XhJ@yFEXvqSP4w@qYR6g%%91c!UzV!_R@w=n%GzG2=^kxK zuBv7H3p#=0sizG)9J z|7^MI)d2Ud4cb%O&s9ptQAn(mDcKixvkud>`)kke>t$)AiMW1YgVD*mAE&iQ!R8YT zf#IZAry};Ttuq$VPBJ=ee)n1qq8m2TjkPs30*0S$RC_;`F^lxP6XAP8a6kE@_%89Q zEKx>#>XV{0`$>P5a+)X5AQp%)nAS0~>(AM}AOXH?b5j8ZYT%+l0~e%<=oXCW^<3%^ z;?^g24g-nH62tH8q2VjRHsWhmi(Z6tI{ls**rhs$u*MYeCDtxW66-^HlQ99*lVu0G ze5Nc);!=Ma?Ra;08h5QHVV*zt+J3@hEB@7c)F#heUx24$@C7+u%abdu81xD$`#Jvl z*Ld797`FeSq{8p-UO&)#_B+4A*8ko-^Sv*_I1DAp@hM$%jv~&kxicO?zG5f0q?4K= z!#C|G6vSiO{J*hoI1?R`!}Y-y$jJjLV1M5DkZR8s+Vo!gfp3~EIEkBh;DpnP;eO0VR((au7KBmy&T=x8-kQw_(#l( zG3*&-LF5tj>s!Wnq+zKwHGMWY$GjolZ*&0XF6-`#-c)0!ulyZ0|T`kT%h1OTJ$9(dbN$1gah1?$IbP?81k$qeKlb7RneeYh1nc%IC z!36Z`&*Z2ni)MU)rHqWq04vZ5VN0qL`S`YA{MW8-gN#IQw4B`W`<4I|7Hisr)5vhV zRi6c0R(~wsdv^kknbOrVu~2c6(PaaX$L7pQ-!w*Dix&BZ1iiv3z-%rSzrJ09y?hgS zIW-`l`!&_}S;76Dj=CuzzcG?rvzCU zr_GcWkL)N>AFxDL92pt$mZ!Ir4RYK>Fzq`AxGV=ur*FrGH<`Jy>BxcCee+%ynUmya zt>rgOIIgUlU*eh$ey*_OJXG}FGH8Av_v&5K4%EwjYb(`fW1{xHlV!($&HnXuw9Fx% z=l;}eS~=kw5LifJInTcin(!~yH$~B=8`!_0M35VdHEP_Y(&;-YBz+#<2$~t|%ek^$ zu)rzHb3?t#rPLzUgwjObtX1I40Xz46H(mIfq`nXG`>D1Fe}5&P7G)BB@nl6pwvO13 zsY(1nn8auWZ(pk}$%U48Tc{u3y(?;O-N5rBY10+~#g&2m=^C!UEG1QQ{u%PMHmSVs z0^v324l2V83~~to-K?>XZUNu9b=#_ol^`J8{Bm-C+MkFJi$eoTFWa)$i7)9bcPUWp zf$5HBoJ@LERt|paymvl`-6uAm;+rFz(afZXDi*K|?|Jt0;M!hfxD(-k`w|xVuD~?K zKdwetJs|9}drH9!JBDZ6zkefjtm(thnJimnmP@Z7S89I5D$bJDO>N*Gv;fF4^1rX#N1oZsh%0kw*V6Xi{U;qf64X)cg|4 zx_IkXgJ@9UZ!`$|6Agx)tk_Ngvt^Q-Nh(BbzWc36Dd36=D*d^EBq49@>c+q=CIXvy zXI4L(K0Ewk1=A^XLJ9P8fdKLT#1Y3_TaB=85gJ_ofOwtc%eP*rI4BxCRd?mtmzP&v zUmP3|4bp6Gk)Qc6H4bDrQXf5^YRb>H@fCjT zD3`0uGXtA+?)Dja?jLf8qIN<^gDdx|xfcw=Hw$t5w9yT`)t8E+;bDR35dBDn@v!|g z96T?paeQiZQ^?n8ep`^?OD@mbukfhCn*S0MDZH`JGF8gRoJxW3ByZdBMVR!y(yHg; zGJ{Rmmp`iaUo5p_qUPEY`QYX{fT5UP_X6m~5)2AaYviY~enC;5@Q#ID3+8#C(_UA3 zBN|{K)&?S31zuUu>MsRmJu62>Q03y9=63Fxu&`_Hc@&AfZaW%R8l^Awzc{4kkY&HH z8GwTBafElAx*k{$Jx4swX{e5G6f7Yyo7t~QFQExIcLFKDQaS*)whtIvB< zVQ$SSV^#b(Eq=2U#P1Y)q6Znv_z=HXdn5G^(SEZRZf5=lAbu9E6GU8yZ zKyH=uy|m7GE$b3>;+(>K`*P8%e`0q;6W+XqLL_<332ko(YIiXV3&s$mv!);(`obq8 zH=zN-(a(4QC)na{sZb527Iv5UEq9|ST;g>FJ5t@wpv6`C5%fW9g`_d7qox*hb`07Y z!Nn9uP=&t#CVbjJw)r=Awzvn9bP$svNk`_;sSlu*TgtEHUWI&8lzNd$P0>}ajn3~% zWBiC!S{{kn6=Lf5Y3AU(!0w{`?rzo9liR##d;qN{QSkV?6G^T3CmL8v88;sW`|+Cm zzIWe#{vP*B)g}6DQk#25^q@VFotC6qHaXnv83PTa1sktenzK3w2Z z)^Q<&BsHH^j+=JMdI*FNTF2_xr*-}z(8iCMq@rR!>b^A1J_5`gI&J7`@dZQxQGop_ zIT&!!u{9G>*x^uIVG}_!!R%<!CA+VgBCSZNBE-u6)eazcJt? zEu{;+vAS3LxMrS|0$0AY*RCxo=r=|L<;G{w269)Nh%_&8(^`vNk3wNzr%9T-?4@6Ot$)@WG_kP9HJC- z;rI~R8|DB)`>{7+Y#HCHTZ&BBOXz`Bx$I}6-jT_S)d{sL4Z@BoOnf68UDORk|Mu<^gbKUmB!DWDp?F|3&b!*Y zjXjX&z_XjdB@RNef#08(DCs@sudZE40%B1s@BOQ;mZ-OtbD@cG9i*4Sgg~Hl&RU~Y z$tHtN-)Gp936qxJjWDu z^0;W9t9cloEo%~)+xVb*<7Efi(sn}Uz56IwSmvLtB|{5Y^qu#7HS6y+=+wJWc^ zzVR+ry1X~vPO0^^c}-kwnc3wABvKY2$^<(n6hC+%o42tRve4Gad8`cGuI_Lau`-g zkkl(aYTrHL!pF|)%aT{|J=m7$j8;f2+NAt~&;nnNkH7Ocu9j18IDOMG4xVwK>e2fx z_TF2K6{xzmiAjrRDz!h!XfjYFH4MD|ye9N`!M}zwOwv>w5n(~N{TX6t^~x;&+wa8N zkLJ!nw>+Q41I7w|0ZgOYP>XJPuqy0Ju#$DsTi8rgzb#N;Z2Kgms&)bS4Rx0F zh9Clus56uEVJfunqTjTZOX0JNjh}5UAg34RPAIMA3>9=~Dj5eCPPeR0$?o&o>vhDu zC_TH3QB<3MMUZb9{e*YlHDCeGrx?9_DvGJz&(Tczf=W{Zf{sDnl*K`c+GKSejL-#_53w&6f+1;RFt;|cLAI3rG` zR$H?&Moy%1{djJ7!esOV5KWK}X z7j{+T2P6GQyUOt)wi3z-L6iYNfd5ucu>l#z=vh6qRqR`B zWnYqIsPx?YqKqVG&y*S~xRU+^e+R+NjOE3P+@CyL?^DEZsvDbQve(yDYgq#&wh&Sk zBX^X2f_w&-)kJ~@S-?5}qbzovMX}ubCS@{4&5ggJr3xj5#Pk+dwi?m4N8O}C4YOY5 zOcS+?o0VcP-!7wDn@CH5!gl9g1W-@4{G*;CUF{|tT&T2A*tYx&`^vAtekBQ99Xnho z{?ziFQw{@97vhhMFgI&YMehe&k1ch;?J;P2PktN|hQi9xEyds?$^^l&V|BZOtd;?U z#Ux~-z2r%=>4_b_^JSe&^Ud~F7fcd3nA*lHGa z`oM&@jk4<`B8^5!n=?%S7(hpvvE0%AfJ|f)+X^&yH|Wn6g&(4}rXY;bbmskv)gQaf zKe&lyBfH4?`!q&6wHf0|EFFF!zJ#Q7A(lYC$V1(&Be2Itn%QdvY%?4RgI1t@hVAT= zu!GZgn_@H%-gK~CZN$@^WM)l?uQ9LCipU#l{Um+(2peKqm;it}RgEEP{$r-|G+a(x zYUCnfi+1t2xzIkznaky2A!+WQ7C-n4jIzv*N)mN0`fYj(I7{;}n0;OyE*;gkE&&>? z+7N#0xQlirZGr47ta}r?7`p%HYG8EC+gU%8%=P)yXl@UmES|ie_`NNFy_z#)Zs7hr z;2bY$;)h>9>h{3T;P%f7Vup#KZVE-nW1H@I+RY^tyeTe=9dwD5yX^zCrk^yP!e@`|w&5AuuV1U1xJoa6KKl`?v_z zqmK5u&&j(6JizbfSFcV5i6qMa9AK1w&vnjc^(`Asr5+U5lMl&K211Ti?emhOFSq$J zTlVGQ27m)x@PS^74>KpB*J7kY7pn#amLd%Z8sMb}gxS*E1qSWZDA83%v~j(_cE+Wk zed510j+hAdStuQO$0<`-3=FPqv-Io_me#*I9i(3xPT;Y@A;ID>_z>uS9Ru^{~aIf6Z=XRG~%- zzW`-L-+`U=%%0G_Wmuc)LS>5J_MqcPz8ov&y{V6PsOr~i6D^l|8kVe>+;CQ4FwE}P z-thKY4l=V~j0~qpt(#;zz84ARK$x?ND=*?$YRipwRf4t#b%GXwCc9nvY;=%yUIWHi7?g0vgoazmJR-D?C6LYtFUQBMuEhVD+@` z6_ZJ1R!XtTBbip_0T@4|H>1i`M)>Uun#_!DV;p(Rwx1yS+c3f}=>0k*Pj1oU=J2wc zp&kA;--3KRNA#XfH)_VVG~D*U{h4(IYRLn-EoFX3XWL)CZ3Z!GuLy90>`g!#TPvUO zR+cZVzZA^?>BhxFL)o5S&Q)2i$hO@g?54sq4y=nqJ1(FOr77`4m0MB=w7p!T0NTEB-$r7~dcY zG=r*l6WHgs`eEs9&-}IPYuOKTXv^bMMHcQv+)=CGqhlQ8CTWFhwU3-Z-sQ^bkfOvs z)68CS_<pBKxRLMX_ zl?poZbu!F=459Y)@VEVPD0tOZ@+K&Mk0Vabf-SBt<$=08 zl&6Ky)BJMHTltoPzd9-ux^bPrcACZy0D)e!(d4+$n^p2_8?Fz`>aEUuVfh7<1rPVo zb3mm7^#^8Kdt3mxx3vBc%{1m?XW?{JU-)ixwQ~;Fxbk+04FK8B{ei}0?o}~CV+SSoM;15cu6RQ|INDLn#xxv=1!e@ zNz8JnFFnQyjWY&f3qAW5I>PC^kngpSEHSs~p`bz+TgXpwG!)jOzG3Y$gKN`D0+&23FxtG%)4d7)r^-%zUjX)=J4L5K~g&DFl00ZhJB;b(=v)}1>n-F2F4pjcaIrDPZZ)O04 z29~tn>De%PdNOcFuVsdsZOjC&Wy=nmR;jUhRHEvEZX=+0JIpn;5ln{6quqkk9Ybf= zrJi0^8aZcYvi}D_*jl;qM%RwTyw@^DU3tyM8!Z;)_uzMhd{@Yt(7=&|?F2;bO-(6H zr&PVynm#p=hk95iTG79kA$h#_3}dVu*txb_Z=#;I@eWf(qQ8?8A05+ESFN_((M&qOTDGDV?ExU_~G{|U^po{GDs&kFWjHl{ls z2jY1UyN8KN2o>Ovt%5Upgg8qNqPpCI?LS?xd$X$;ouk$~;cAVsD z#*CTGge!yZ0f>TuP`2egqarSnBg?{z^{q*6kf$I5z3YJ9h^i9J5N6HYy#H0mThA0p zXf^WqDQ5YxdurzJpv4e=`@9|4+ux!5_v;IGYa3_FJCaYI9lVLpV%kjv&NpY2tb3Um zxR)?);9h#QCpUDQR;FQ}bbeFi7zD7*joTM?^&^14$O(# zlNb6~j<0o_O%$a?@$cVT^^~r;wMH!cj(BDWV6X_$GGb?ow;&0v4M0n(*}0!$<_d<$ z(9I;E%NErgfKSg$$lwa;5w43z>>6WJk#yl91x`@4Q@GW~Kh`QOZ1tQ2@2brr!FH1y zAlQ~5zxu^_X`|I(ndT|sjZ>e}Q^G6oRktx|J7;#Otx0L-XLWuB$i8hpneIYv1X4909~{L*!C9 zrDO$mBda3_-Hx@3_FA2CWZX4v-TgV;Nab&&YN<4x*-KrNoK$FEvK0Nx4C2igGwkc? z7yQ5-^$pxnkg00kYSkniC7Uvo=n8#!71w&ki|of>)yVJ}AyiZ;3yz z-KG4Mnc-YK;UNl-sv6}(Y)Lr8eeTyq8pcfE&4v9rO(Z-S&H5^M-Si4cLl2%qrx;vZ zRQi6}5sj!e(F>w#d;s!!BIq}{ok{&yQV4%UYV>=Vi+K|SnLZ|zX(c|q&YD`i#iX!e zDJf(y-qs6GSKJW9q*L8H)(0I2CQ@C1!$`S7F17iSzz6om1_&#^VXR6nkNv$Yns(;Q z$#bg){6mVUS&bT=^>I8&r(GZ>eDxvtTLa?hh4?RDmMNBECnA&H992^W!`{>glH#1Y}b^P;fKwW?JwGn0Tl3J1M4kW)^Nbeyu zQ}%ZuIFt3veN4U1qCYN0=Tuo2HrPBFgcXzidGB31UsWy~v{_#%RyK+&4YhJ*ymtrD zL0DL;7gBPwAU9s9og;IajRNTP0Y(-2Dxe0Mh6@Bg*?>0Mx>t34suc5QrnN}K(CM_h zpUVSRR+;+VPZNey_jxrWn{4mh%|24E6v-0?ZYs!$SW zsV)a+VsqJc;`@H-Zc#&w^Hd>n}4-|Bw{kDj+9v)-8M z_$Anb#M+k>-|$tlkvwIr?*=fC(u zL&bne5%K)1bg+geC-rtYmXBNq54|dPj$`t^dh^_1*q*&Ag}J>xpz1E;4H4JDFPuLg zSx+brNtQHf`>#?C+w?<%J=5{tlajHFN61p;#l-!dZDe97k%#VM$;PR=TG=O=`ewrR z*_=D#&Vxhl*EaK(ozOb6fh9RS>n}6XUW=lCR`is(@-1&_ zOyc%6R>U%s_@veFBiaiTJH^V^r)oH}b=)V*F4PSAUPsYKZ{k0xtFDLqiD6F0=m+e5 z@7#-H?qc6p9>%&*WzgNI)!6j(qioqwZjC(8+I zGHD;#=YMQb=%Wb3$4~Zb#hd>@*#^${{u^a`+`G}7gIFNQJNbTZZq% zxZPd%5(WJBv}5EeHo)o&Y8PjWJ>A0*bwM_5Z8(T%+g4>Yc)L{mJ0Pq-MHq7h5Kun& z?|%CjNC!c?9ew2rAHKN~z&C}?DUu@=b&4vnR4qc&5(jOa9go1sKjaF0iv0lnu*AQR zp)KReR<9}a&-`MkdTj85#j1Xj<@sGG2y9wxWv{?dIE9X_W$E?-r81h;Sy6E{mQ zVR@Cij~$gBpOHdEL*jyW%5;34GhD5Dj!{%fl8o8%IbYhZBK{F?;%Hpaw$Zm?rafio zR~g>-_OB%DW!Fs%Q_cIsDC{R3&ur6Fr5B0Z7aKW#+X(t`uLcj_UpP`@4D~LG@m8G` zPiD=1?cX#OnBA5e!G2*dWIqDao5yd3otlFMT-{arS5@0&ww8sre*va9Hri8fu5Lr1 zEOCKEzOi}!*47VaF_1g)$(TO?pY6dD5~zCkhuqyg7FGk!HNG%=ahd3MQ=41Y6^D-; z&%&DqZQ1CuvzEl%K3@rI@w^LK7wY40*kdXz-IKgNl(LjT-pQh~W@fb+J9_N#N}#gR zASW+uEOhF+EGD`l>?ZGkFB+O*oeEA;QH>Bk-iGua%#^9O{p7a(lDDm|*ylBa(_Sxh zz9qJdO{=o%0_HC#Xg1mjx?ZNKe}|?e$LTv})I18o((%$t7XG#Hk7X*E87U;82GP6~oSao-X>yF6Nax1MKT zeEt;5AhdwpR|6yvpkoF$MIbaZe)MrBe#NLI7+~E>=MS(l7ors&Lj&TRilo_!yiQK( znm44qJ7(mdjr|ZND#pS$zb(-W$bAVQ0K7OT#bS4Zk%?UywIBp7J@dT_)C5Cn?iJ7H zia{4R#A%pou)%)p%Bwil8Fc1rNgQ%s1`E=MwLdjH{=#ep|D_|fnz&8MvI7C&BFq+> zPnv>f(Qftr8VPlOr!7mT317_OwlESkrliSZFXv;ly8#X3VN&|NKmtM`!%Df0G~Jjd zl2pr)Pteb6neHfaN-83nP%=El)C}6>?w#=U?zpaZ)83px)*c)17AUxH`y{OLbiHv( zl^$;uwtIg|-iSX+m*Be%HHOo{Tl!}DrGowVKC&koD5*+@vy#!1o21C|s4J4jo`=3) zkorI#RRi_FfpIpSOO<-QcTMKN8TSo|2Nt$hbaAexITJkRE+&EFr2Ts$qh*lQ5vx{2 z;8~&hJN&o6?PN8`xZ%c~)Vucd5UD|R)LoH&hKJyDY`?F1FakB0?&n6|L9;o5p+7iN z9H?qxfB6JQ%bps~#@|XOP9vD*v7z5l86VjD0PEBho@`DMS3&{ynI0`G1kjrLL5B$z z9X|b*i=VQXT8#+DZaAwkb%s;U^2RePS&?3ERJskZr<^HMi4&pGkyMWvOJXc5GGPXF z^nULn`HNESn_?I9i8Sm$=A8kBulnBhX~#!455!yZ4E>HK&Bz`!0Z3b~bk{=eWtnIw zps*aGNyQ?kJ}W{21?x_e&52~t{cNVFfMx!|jh(3LNyn2iVjU1$*v4VwCunD&GW*zu z8gv%_WWC0mede#I+Q3#(Z#1e2#$BrE$ZrLYzRrz@OI_^rP;W55m8YXtVzwBSq_qJ! zhBE*+0XPPz;)czO*{o*~Mk@d|AMv#-%~yCR@e9rezgCvEdQ?!L{VMTbt^Y?^GItZG zv_E;zfGX{ju>e{G9rw|Kv7J7d#8IEK!b$%egqpZOQia*)UNgxYdWNRV1SSong4wVv zT~=GQCmt9S11nZUTnRjRWaL@F2-(hQa}}2OTuM~v#vlwmk&)J7&4CT`<%tX}dqx_v z$jyXv4~VK3ss*sFS^BPP#9r!)Z&}6O9K04ZyN1&tU`oB>Lheiq1*h#Iou9X z%N*-cgDbD?V?v9~x~pvD-efex?iSg_P#|Cdg{LuH3wM>E5`coARD z&5G!E)P~ZPsN5d4lSQtj>67=7mfvJLZU7EiVLgCoyi+j-jmoXpJnYAserD<3qQSb3 z5P-r!eSD)#FU21+CmyJhUrow~H-7e9`!HHHJhyR~%zJTc(nW-eNT%+VitG%?W>8E@ zw4`=!4m*5|^C)})r0bh{cPN~HR#4wVfGk$o(q309*2;jr<8W-v;B)!CTsF-Md@hQ} zA=<3@DW4XN^L9e{S~r*2MI}cpm6$va#Xke2+cFF8&kxDdyU3H}Ii4%W`(_v!;a-ze zndb`h`7h}J-L&n-;SHp8prT&_-WvQ^1l|%Db?>mZp+ym|)H6G~X2pNu8JWi(5?0Qk z+G*`(c##iKIWW+{Q8@$#@ouUA$-A|C0k3OjDDn#za63}t&V@&R5gCh7UzTw0(L(iG zbO_S9t{XF`Jbjo+-UfKLb8V&J68uTki}u%Lvwlhl^DZ0-dA4G2{Wn3)NDxijg`$ae znx(ANnFT|s@a9uVNi{Mx+dig!%sCabK3R#7^WsyRk2U7``kh9G_lJ~cn6h=+^LG*s zM4bT|)q&(nfnl$;{x_!DP23p)gf(X<;?oY5$kWzm%ykLMi@~|<1=!M}72av}@&`~XNQN; zSFZW;zCkJwNJUTHWL&Z`>dIejmE95`8iW$)6JYka?ox3keyVK^iJ4PJN#+Bhn{Rn+ zu2M-$iSvmGtQceFP!~@V(7rjyZ3W6IsM6jFmi8-z@$Xxmdv+Qu*RS6PeK+kNHz(tt zzGWNAQU>{L_UcS&_m>nr7hTi^M`tw8H++bm@6W~t{rZ6&gsK%C6U)BLgDzm+LG0(n z1LO{UFFl%bw9|I&fsNjlLol|5?j7y9Zj%ws(BwPlJ**kpgpb0FW>M=7kh6TsG1Qbs ze+3-lq#m}1pOV+$e1LoOCesmJ-tu!+D{B-LT(G5k*zY->Z>n-zT`|^m!z-1vja5(S zBEDw&#?X&(b~vIEx`Z}0?dEN}tv-m3iCLev-p>x#NOL@%tuVL&9)Uk9Cjvrporza$ zVQmA_ZfU+P`@=|5+rlrC*LfGZf9>A#62QT+Do zG06J{Xx~@a*@X95GYoIN1rsTMb?A0_$-kXWhsUmKFo$j@CIj3~kBhH|WH z_}@JqZtUb7WKEp&{AP{)p}hK>`6z2ORIaE)RAXDvXrbORSMrrlNAC>5qT-zHa^BSL zK011+_CS z_kQz_7T}LyRBmiw8K0=LCxKdfUOHyZ4hl$g6|BN@Di zz(u~N8EIePuMMY9N^5_z-!GTZ4J6tVfIO2l@rQq_EKj-`lJppszg}aGtZ7{NJFV(M zh|fqm*1cri^t-vzxC^K{CP9Y`)(3tgZtdk*pg>=+YW--+mg2=gUA2~v!IgsfJ``_b zSY4cKX*ZJJu{yXNP}#lWd>5kD%esKA;R1`eA3tVOr`#93%Q3{_IV3%bl$kzZkaT*@ z{Q9oCNNslKiNeOxz)m;3GMGqdi;O{*`UTr!hwU^6%q8s87I#)blxOpu0^{3sQ~-p3F>yXY5B2p1~U>!y3~i0bu1$-9{qQb++@GA#g<-uFIqPj zP%l~$$q;oW2khg=kY0aeviX9LWjVWlvjNoO5!!CepZ(x_(=PLwVN{NBQCLq$PvE8Y z_3y-^i}UC0@2yGm-8hjk1D5eSW?LREw%8rz36pqGT{79z3-M-(r`4zRjy~mZVVnK8 z5j7_I-1!^AqGQapsbQlQDPTX?_pgz@X9998GIO^UOw{wc6;R#>x)pTPqae$xvQi#% z7>oN?DKoVjG~%^br`p$kDADAt*xuP;G>UjgAW!rqBo&FANf(ufC|KiQFL~+ko-Um| zhX9;*BPs%?E1P44#7CnEN&{c=vEBkY1Jk5sxg(6~+&qx^4eP;Y4KB0=9+nmS7D-Az}^t$RfrG zbMNTTK~WK2rF+W2l{9Kb0#TT8Y2N8#T&lkg5dT)+cexH<2S~UGK*H7JlW@U^mypT- zy2`%|G*)JRHC8j8z0FGh?grj&4p&N7uXQ?1Zvhh02h?lxavjd^+ENl=zTe%ZVcPak+3&Kt5XIu)4 zI@3ZaR#-zmvoFr2X2SN)+4yU07lq;J5CRb!mf2&fFcvYVZLQq)V%E9)r5)Kzx0snY z@uyFbo~wA4S<$z$aYOm@kGU4dPl|C8{RkH5Xrw>p&zrDO@`UR)^>*!{q7dD^(1Y+N z>X1AkSg38=cGUy|S#yLWD1Jq=X$9cm9-Io=hSrP59hUtFjuoltihHTiF9hayqjpvN z_?V`(0^bw@$8Z)l2Ke>>X1Qo%jILRC5A zLw19@k=%W3KnZlRN;GQn94b_PU$?h2+qQ7MKg(0AS11&2OR(Z`dVey26(L;xR;dkeW$6BSnk@9O8P*__!Ta;9q)-Cv)Y7vOk^#%axqGM-yG1399K0W)@%e6y!Z9tuZ4mFuEt#zW( zfxWryfsjm4h=qs)e0H(jUc#dTBCau~AD2r&7DkhpH*!wD+`6kTWx2-4+xPiya*UuY zFo6x$m^EJI8rNI3)CsQxT%Oa3GopDRnTGwKZ9DTP1gxHx2Cb#jA$R4B!=etigpobd zvt#Dk2K9281RS`preUB~UJ3Wpfq=N%`Y$P1By=Zr-Pn%#?kO!-G<|6N7UT#1Ws;3< z&O=R?!rOO%W-j@Bu7h3Q_IGhgTikq@ijx67unl_FykB#x-z8OP*!y0!4Nj=v2~%!8 ze$Jq;Zi@?cD?&x)#hYYA6ZTf1b^GRbO3}q?;h*RWFCKwR}5Q=9zaQR{lftpHy}!xT1=_f1l0kHMeJ}5uaJ2?{ZtRoX7_mTmuYb| zXyZgwTHINTtQ_>I72n*LlvF38D4Ek^1PIgSfH3VtiXPEEX&`-%`z6Q-jb+3!8Ox7t zF{9mS8aR6mbceRHHZr$pTJxKLW&1a%#*)4ZW|ySJrqA{}JrA&}!Q#(MY5Pioy)Vhf zQbL&4#|ISGIZi0<5Yl7Ki$@n=SH@gvaUY`$n-4lDXt_Dq17&ILd=BVURK(vX;DGL} z(w`JC=RjP^GSYy`b8|nt?Bb%e(i11>hR~^!R#H`2p@tnW(tdI~V?~`s;Ck>Rtfw?@ zi?!@HTCIGt@4wi%;B5V2<4)Xh=Nv932AqQ&!K@E00sg($(xMCQgW%$Acb!2eztq0_ z9=sf?v{P!l@06B9Xk7189i-*__aH7i#p<#5HcRGOUijJ(wEd-jzqkbJri`#Y zRBRWSlMB8?bPNW`Ao22jcaXAE9LlnFKH4z|j1Rt0$gbd5jTxY-h){}i%x^XR$p%sU zY;X~dyU^+T_NnL}$<-Y2)hJUfzfn8(n$?WW|FRGB4?lM0my`N|8)W{1Vk7w(ywUBfmV22CppqOVg3p z45iy$!pVjt>!gEjxryUnYm<)*Rq1Zl9%&ie3qH4W@oLmT<{Ra)vUv39ClhyQQTVtM zW5F^P+7X$9IXDi1W`*aKgQ+2_HD#Nf9w4gsxU9Q%byjcp0G<6APL(^Y8QEdQ+Wra< zZ!YE*(?-0{UbQ$izewDP?mxh;Ej7!R9N{4X#NfUck>UMf96l~j~@dHE1~uq=;29duyRGL z?GdO~UVr5SI@M~JC0Vf+Hi&x1)jd}3R(cMTCqFod2CWJ)>ZT%Ok%%1|;iTIV|a!yG-TM7?rZboceF$~HLYwxd(5dis9xyGk48(7}jb z?s|3#3-?Ns@UdIxtWy5B2#^kRz;^vfM<;zn_=}97%1#Qd@zx7B7gitP`13ERo=Qtf zLcB<89h+T1Rh=Bb5uZa$-1jjfs8~n^9LHJ%M8KkhL}A{0Xczwv5?4pyP+Gk-Z9%&H zGg!e|?AKo8_iN#hvL1g3eUPVwzK!yDKB^f*UAv8OY7G0Km(f&jwU=M)lixLhj+@(?0kCtrs*c-G)E#A4{jqKfOf;}rt>;PsYDGiP}# zt!tOV-JR0xG0#Q;5*JV`LSq&w7VD8GXMM!HQo$AVNrEstKG~I5YQWY55)ttptivlq z#cK8Y@?yuy9C`S!oj}mz?jq~&5`M?H;x8;6n8W!9|3rCUY3x(}@Au2%6!)%H8wed?{ zBEx<{lrS8G-;23jM!5)l^u>sA<9$ zSR5d>AH9~R1P}_F9&bGN;xcPXlR5a;Lot;fXwvb!4FAlhp!JXBbz}vjv!*JbqYi$q zNfUh=j*W0`(w8fFN~D9T-#+=x6LOEXf%a?=zdcJoQ?2TIV{D`6;JgZ|GSW{MR1M?y z&ts2`$B(gSrgSS;Ea{+~+ew1Fb;Sbg9-QHWL%*`3BPt$j)4|o@J!aeL9I5{e* zZMjf|R`op~27<)?(K;`0wsb#>w6Hnt(|#;Q_?4Gl@%bN5G%6(}E1EN=G|AXLLv5*+ z7a4Ioo_gR`MVGegIm+SCc!eGZo~?N?zfQra`Zmc;20;AGp^bkL7xw4~%P*`_(h67m zz#uAQ!z$ZEjjZ?$Z3&}bJr6vwJ=7qL0bh5pAd-70P^Kf)BT6abr5&Fi7_wgubYa*J zJ@dBOckwm$Y$y}tV=h#GD@&BH>#i$qS_6bwCM);cY7p1%uUa!5@=r{^QBw!j%Gb@9*=`&eUY!*1iv_v)L_akOgb9CcIhJz0K${3#bYp^#bP`0QT z&U@6Df5|{nXyrQSo_Y|h-@Z}-h8lH#HRjJ9x!k9nuRHv=p;Dc_Ag0+_<_wSny8&{b z?=L_!OSrMZzt5)k1rzn`Sx{ljS1IPLfl0PEl%!`&=F2t_aH`GUoF7)0?b&PEdib>L z<#mVy*6-C}D*P2gl{Z=gD&usq}Eo8AYDG6)>Bjz>R*%dLbXZC`1f zJhgB?t*GF-C1+o8`ebDi0dKPQH4Z)Bm+=ffRG{R_K2AQP%d5pMeouin-yA6&pm7`j zRZkLMto^Zn6)6wGizkG|Hqu7KbZ?>?$jLr-X7JC=w_5j!X>~?~A}VdWD)2f~)R)m_ z%6e9ZCmtNEqHNVkwFcaK*qkUjj&*9b_TB)|Mql~)GHZO7vCsj94S`~tC8iY@z}`r) zafbg=?GIy~^(O}ey;@|Z|BbPb6-=6xao-3kG)IRs%TTDXU>1Ayn#bacCIiTRw>qp+ zoTVR4-hx(!1$@BDaIslC!)}uqmFT>K?Pa31p%)XX`x%8PQf%3{1jlXsam_?9KX}$l z(*nMx@H`febgB5^-%>-Pa%lc#+{e+XYjPW(?~9u7K~OUb5UEDs&|6LLYfA41{NZ(>ktCBX~&TEGaQ4+cDteTx_a}&Fs#H$=jh>! zK?+qT;{c7xk_i+(ET)k%{^KDmeZg{$jNYj5q9=R5HxDR+JfDXcvy zly&)icHEpHxXWDa9{MVN5A$b&9`EIand%guc<1S)jLnV*Q!rvD^4rB8$PCk*fgkHQ z)doripLwKAzG!;c?|1+DJB~ci_(1zsXpJyDxXLh`eE6ywlUceH2nI!n&LVFO-%wgK z+7KVpx!YA|SYib;yBeK3B>KT8+Gtzd6EW@Cl}F4I;MGL$PIb!(=swHv5gTCrMF?JF zt9rD7^QPfARi#JVvBl}7hd5B3;+9ubOr^&bu5X@&sJCjb1i=LpL0YVX3+Mcm=5piax-Mmq*wCHzFS5mdGjAL7H800d7c5zExt{jQ ztr;EIc88AQZ3z3tSPSYwz5Hdh0iWBNhJUfk>}E zc_0_c1Dj6XVvFJW;nNI>y>=%n3Y*OT?h6m<;@1mKd~@I9RUT z1{Iql^R3#T^XJZ7+^GR!naLMmuBFi#i0C_t>!<5kDdY_%okOH++e*9hQ}(?gcAI9C z#F!;8$d0AQ-g5g$(7$5c94T{FPIDd>!^}>$-Ph>z z`F`&E@wML-Vcer|XMVDdqGc&>1klT3z0=r!>( zMDE`wA{smq1-;o-|AqlGO+XmX(77OZ9=s5F;M>1ki?tUb$5-HAu*H0 zbbqH#F)h?x22W_!F+jTJ8Ch!u{F37UFpma{w3EL?yPvZ}PH$ z{r>zyCY+6!W+j zt^b}AI>u>Jayhmj)H!H%;+}=-&`Us74rwli2SrehXLLw(ffjyM=$>wu3{35bj{a9( zDJO@-yWm4{bt7$&}Zr2TI1${5)u}Gn41+ZyNMc3H0e8 zE{}F$MTS4H4KJMg$_#Wv9bv2X&Q;0ILD-(ZzgVCTbWp#>SjkM=fKgQNfP|>J_j`|# z&(y(ReS5TGekm>Rbx5M3^kIVDLVr%nfy$n-Hy9ERb5?UJnTNP={=slQMg9%d$)W9) z4S4#47gzUWgh(uk&Sr>D@Zc6P(b{Dz>?0vQNNL|eX*WxkUC-kxUzd@0j$WF|_|#!& z%AM|;jlFYP6zn%Ds~652zzEi*rn84!Ec>7L>y_&>54!X6fltQ&<^y?qSqh=NsrzPi z-5((6YmTNzfvKN=K!W|NYxn4h3?0vTO(w@^@GTyc@Jsu94Aw9g#ndD2LCu;6F{7sV zNUg})^W+x0v>$Uz=H>v&^aMoL!Pc_HOsS%lz066v0w-{$Ep_b|SGk;=_t1Kw8oR6> z6PpaK4p<)EoZEYDg)vP`8pjBy@QVbF<-MlbAf8X0ylYFpkXErl?qFDewG7|e4A{lGM8B))Xy z@(e97=V<&ne?*Mdp9$+|*BFuSf<#oYoU5YQyR(dzS0jRe%vsEvCYimjiAkoN`)8WO zL~mIeOq0ywc%6KnMOoj@jq~j zo>bUH?vF3Q_5b&N{7dux}tQ{*YEgE8tZa>4sJH~U-B*e1Lin}nsg!(++T?stO)?z4%T0a z?PmW~2`6aXbmW^PLPb_1`&r~tZh`TW2n#N3bf%&!8Il-h;{B=3mK@9QMaJL~ODYPW zJU5H_U_k;$P9S1lxk$eNtHbF9cqwGUisj9I=&=>pqef&$H~T-(TPy<8!xjq}9a*gA zyA0N|u-I#{97YL9Vmt}h)~{t7E^_kar^(s*0G>KHDP5gi@jjt5Ci>wvdpoSS^k=fx z_iz;mnapa==Un4p9Ui_~=>e?*8MRK0dxK|EUyyp*lIbRUd!^lF|9iOJg`Rjj+mtZI z{b;sDBdYQ^&(Om3{~YlG5Sg7n;1}PRL&aC47<@RG!JhI~O+yUfldMlOYL8D`-to(b z{PZx4X!)@l!j~0L^ZnY}dDPpPK%wl54S}n$&U(#mE|A>M)jsUrN1VF4SE1Fb8vT0$ zyDM(wi0eiGk&%8Yz2#CQqNQoJ2>TKpJ?3}59*@#%HDXl+w-SpTyh03WZBa9{;#4QX zUs5N?2YS6ceba#*5B2-Qyz7}l2J>a2PXr^5qq42U zz)+4^m7dr$u;^WAvARftTSdq0st636=Ioz-6N~TJG3l5#<1TV-C{t3}egWCqhd+nC zHE=)!+~A-W@&z9R7iRx|UW3<0myl}16GSW$;(Sl2WkT(s`gLylV5+>V%p9oR9}U?k z^O8)F<|0#)QRU%!Z!ZuPM_*EVTulN%pdBCt(|KMN#w=ocAFqE;>!?dJ^rEtUag;-z zQ|386I?1Kq*a6!rDMM%OXPi&Tgw}e6-1?gCAnzQt=#MyZA3nPbwo;26!B%P@3x8}F zy6`_D6Eu@Gb7Buo*mY5lqVW5CVTdxXdw(4Crd+X-{5FA!e$W>bqVT;VW<%&@$AUa? zwwA%!ve1gzPugx8aNaA5C=L(XJ;&WJn?Yh(4^2jtqk@-A7oic_m9~j*+5kwfUE-;8 zZSwr(`#HX%l%$MvF|3@^k(s};Cr9UMJD>6q0O@S7sHV?KZpKE?_F84$Tw~z=Jyz87T#3P> z8ygruX-X9<>KiWh@=UGoB}cNwk& zUeePNPlLZOlKz&0gL~r-GClY`Dc|ApxDTCR{D5WzTQ0(DE`9YdX#`-Vp(fSI4{3aB z{Y6V&fAP)2c%VdOqb|^TH-jCm+0V%DWnMd#+=>g*Io!>iD0!rap5X?@-zlxR1-%)W zj|UGFZZI4EzYB!C9WCuKc?ygYPa`siZ?yaDll7*g);gqc{tV`>R_j>Rdl`2<2Ux%S zv-321PaPd>4zeqwWrGET2#!U{_C~Ps7%VM6S~PzrE%`}N;m1-Xs0ib^I1hl^38nc$ zTVcjU_u=@mRr>8lWr7u6mE4}}6;!<)Z;TIUDfLIK6MouL3|GC+RCQqmzJE=CB zeHVYwcL``4<0G1@v8O`@0SZb~bi1IGh22n=5l=;4= z>>iY^JJPmMZvdusK1#Z5ezqd}SQy~+9_WzFJgjE`l{Wb7_1@lo_gAHD*y-9CT@+r55(Si>Uzl<|H)?!aCt6+=DSxR4O6n9{VvOmxi zRa8?fo*w@sD(+G`Cd5o6=VJjW^JMhcI=_6~ORS!$Q%ZkBg}iXaTBs0+ ziHv;2orS11F|lDo(SOhuC6Y52m;3dVes#vKn z{@^8F>?+3^Ik)}7WIe6CxV`oz;>pq^L-496Y0@wCLsE2k{d%iJ$jW|5(e`@Umczv8 zk01PtCHkCm>An=V!Hnu4s@1>EVSArH`rgI4%lb}u&OnNChMo9nJ|L|+to%QRVm_`usvWc zfJb##c(fLOS0^W?Vc&&Pmev*76Xc{ZT;@Dm{l%X*vEe` zxsMCl?mP<6{n@`t$>pJCcm{KJs&eWW9Sj+ZQ2u0r^64Y&$-heC$yhh=bPTe`vH^Io zI{M!veD{f!Q(@VM2-hm;6S~)CJS5APtD3F8m-NIS>sINwIDhX0jll}p^U|75o+fjr^zts+V&>0)XS(O^>W;p{b_JvEO)`??H9RSf@kdryhZSU&q{w8 z@3DcyLLmYtcA;nbDzGV~R%44J+Ww{u4@ zy@9<)XWA|Rt-H#gezb{zR3$WWENTwltLJU}Tzs`1hBW|Z4IN!E_M@t&Q=a-SEO$(w z*v9((IEpoZB9=-Ox`3~;+(+8QHCMKj27)cS({o_+O?|3k0kj#Qwv_?-$8Oc0;$3vo z%xw{LRwBC|luVMg@U1&oOyBh&zbqR|;y4luwRfQJJ0b0q5>qWbx{4>ArVj;EqFLf}tRqek4d7hAX@X?x(2>M%)wH2+U zb~bBpm5?j8n=C6FfaJvsgO*js-^@pk&9-{E$L%ku_FiRC?+5vK(*>Pu(2Sj0N*Lmw zZbt+!JT0&2PFpf&NlfaEM)1;wohtDbG1Ra$3N}dJP(LHJo9jpi-4gZ(pJccDB=T;* z5q4;paeR;o=8-DxN*An7>7}#(%BrH+ZQARJtvih}N?Gj}bHDQazYE6G)mmXAciYC1 zlNP*=u_I5bKQpdA-`?c%!DmoggnZd|$Zjpb@h*HBRv>@Xv77{$*muk9k=y@odBcGb z?cOZ8o-y907I;JYM3 ztl5zIp7Q$MIG6dv?7gStE4&)Uv~G#x#7_DW*{A*KRSUBlBNV2U-NktEL#?!vpl$yP z|9@oZzWUa2^dxe-?m1 zRBBDWx0mgVDQ9hGE$VcncFwqkp4`FGb-WfHvBP`Y?j;>&+P6>Er63$PwMY!ndUfQ@ zE$z0dwdCQyB;DnNx-`c;XI2NgR3D#gH z<)!d9d9lOFkNf$bb*5O;8{kMPfsjJ0zUfD#Zbp{3YP;A74Y)iDmT3hOTlaYrTb5NS zX=OCEwyg?rqd&g9Xga>0LbAv5?a;uyNV{Ax1@CGMII`fty4vP z64XU$1Wkv9(s?#nL$DGh<+~(U)*{Q#s!jv=docmP-vjJcgl5{O`-ajINo6JSd~5Lc zzY4w-pVbgI{}y`AHT>LWaZdS%1Q((L-sX$+oXEMnMoG>NuC9GQJEOb?I!D?-wFd4*6Vz*c_~qzIBitXgZ`;>Mbbay1)cICimMl_0 zAt?0YJ5rd0b0xOMJ)>k~Mqm|1qd`&7Q$`DY2uJ+sa!llMLb6hp^z==pbk4Z|H~J`a zt&{A;@{01isNB_vJ?h;#IyQU=XD z5ob*V!$W_ng@+`#*{55$_Sv5g#r|xn_ zNV{9GEOui&3}>v1)}?Ac(D+sh&`!1{O{X=>p8UbuK^2q9n7+o9W1c_Mv+puURm@CP zW}i4UY_}BnhyzLb!3?|<`&me5-R|n2RvlS#YOnJB&<8?H@24u;aIfioAKQ!pyo_wo z0v2dd`uA()%<*_MOW_VL+%uB}fI3prZvo}a*^S4z7cNKEqPu%6}>Y)twZD_p^4;sJn#hK z_AWkhr#ODyp3x=I-;87<@FmxkJ?C4|xS)iTLHU&_`Url0G0SU#?G417ekZ6!#H&}8 zP;SViawRXmwUWwn9gz>4+xF^_=uz0pvfw}ZzRTaK$kF7xTs{Xyvy<^33-X9loAK%F z$8&)=?55)z)p^Ba=;(5oH1(ZF9O!+;3%(yf;C#9q>d14N68yxky)}<8RuNxeeuNWL zCqnkr-=qhSNU)?Pb2zKjshKogvPyVroifoA^#7Nz3&My`z0&TY2vpeL4kgqqfR~`J z#;TJzN7(%KGBqMomW@@RWj25Y%GPYGu5m*_B^O2h5grJY?zTSZ&@ zUp_VM=zDdo2Y0i=5?pi7Hv04xTJQ!<;_+KTzva)B1^p^C-B;O4i`2n&x(v=A$iy|9GU(B2iUsHgWn)LeS};kPaeu)R)s3k@dftTb!|VXIzS^S zMi9Jj|K$D&!pIA>sST~18?cXEFXcx^&c302hmJbGBr_0ZO4I23FWU-DY{%0UK5;xf zj-pl(yRUp$EZaf62%mxGoY?Ws0R{R`XT``LQiHQsN~}LdkO+C-)B|;BG{If5%!`;u z?}CS?zGBgDLz2bPF!i(jFW+SUK_`-kJw)TdMfHh={NmHgc z>Tu&3e~H z+sDJf5B+~}@IpKs{9oCTvWq7>f>0HF+C$Q;$@=@7QhTMU0KUDf1I8a$Gl`abp={=A zhMtPxKJ=2QXyBgP>&~lFBChf#7Ub&w%cH5&=_`xXvp&Ruc)=bX(k%G%>naW6SGQi_ z&|GA8R0-z1rVeblIj(!EQ#UzDWpSG3gbz$-%iO@?a5MJVSn{wqYhK&hxGmg*b24uVb5a z;PQf2( zOl<#fGDs_?M0!b#m88XdY2%EdD&T;3JGP%GSpCZQ51w(@C{{14ZRDQyc8H=c-zA1S z7-ogh`pL*eZ4uaJC$4X{@AsFxcq3feTk7do3Ct)28L!kbZ9d#yQ>KzqSpUg?mi?Lr z<)F@p$ul>@`)aiLnHpr@N^+GsJ-g7_<>Gyx*(3(pWBWRptMNeZH{aBN=ZCs4rdV*V zc`$OaVrM3Liu;WueJh{lvKCnYz}xTTvT|t1c;#LBuSTDBLdj?OB?fJyeHiuBhEK+o zax;?G7doE`k!hyH*T}@Dh_`CXvpr*8Awwl;)}cHBrRr3py)pyD7_GLQ7xXm}=a!oq zJ@XwW9`BR;7*MD@b-;uoV!2W8VDH6 z5P{BBB#Bcq+YFc zzyB36T_K8#gb$NX$(7qN?Ox5q4e`u0WR-pN(y8j0w6M-s`W~Oh@(_>?@AKn_?;6Yu zLH~g2GOPORA0K*$*Y(ES38ryUP=-D3515Q}9lG!wGe>q3;mj~67EJ{#A@M>mb6NX~ zH<7V{Y+cTQSNr|?;G?z=tyoxUJmX>PXZ$*ggDSB>)n{i-g2aiJw7YG~MHlTq`QLI% zp77yoCG5UcB5^_BE=h~8!4Sa777bdAuVMWTO3Pg)eMiYN)PY0ovj_S5`WYX}^3U@< zvLsg=(Fk78=;9u(jT*>`))L=Z=Og!#X{RhQ8F~rkXeafw=WH0dw8c^g=ldc(n4N*L%u#Dqa=akRa{v#&PJ^ zkzM}*qc4(H-ng>*!{2--%|<^cm3VgoHEh`iF;<-*GH-JB4~^-c`}XU7JHEDYcpcUJ z#v7uklY1n^`!~!{J|$|iM5Nz`G|~>lok7idpZaSLB)K0qSYkJgK)F%K+*L zk2m@$3SJ+5<8@sxRMBjH)6DZ~m!0Z&jO`C5oM+iqE;B%j`2bRBJWIik8f#&wymQOm z5nR1WNUNCEZ|?3%)|dX=MB83Z?ZS$8C#0Vf@IB0aa@QFM10{|X$k8kDm8jq7)&9VU zcEw3Y6Vf8FuohRmO924uNgeZjJ{555s911#bI*(!qWd9FwZ#K!#>x6saj!H1^+^Y@ z@(l<7r9mVQ$SLPkSnK{F%8BTd5_6=Cvpb}~CJ)jb z0naovG8zzfdEhjtBel>eN;o2KQqha>9Q5eB)3BdQ#IhT)J;bt>?2|qs_=jhpJWyL3V#LuZb%&Jv!Zv06M?PIJ** z)?0vwe`c+kBz|CnkyXfT<->YnU@B;{HNbmx=uLj15@jV6CN1zMtn}W6fxY7+;qY?m z`->hnr*#g?j;Ry#c3vlcw@X_JXzMA0X1;x;E^uxvw1nQwPAIhxcoImN))7eUE>z_t zat-#1n%Gspef^~2h|FP!R$uX8+{)>wLpKNc#h)7oZOsiu6mcW{8%Yi1jc{doDd*Nu z|BqMgielJ5lu^TDkJMEZh0Zm{4<=b0%UV=1K~~1{Tl0F&nU;2fPqB|Z2-e(0)McCd z3NITZF2Bt??r#C~e!BVjMg&ovatBnJX?=2MsZrEeHL6iXv_+u`=kVpLnA}mJBK!jV z%dCj0M65~H70Dj8+i9cvU^a4uU)mQH2=PibQy3nr)bHKDp=eGpy_MF59h1K{-l??I ze-+*Jh4xd~Xh}0nFtP3?y-h{WqwCQX>Dix&fUDL_-ijSJMoPFDSMT!L;p{s<0{7i= zuaK11;+x&pnWl$I>^5%-x?eJ%!tguZ*iZk0xvrN-C4s}GZ~f(j4Q#;Wwv#xHl|<9U zWP2LCoe4VBgkl}uhAcU;L44iTpE5!xO};TJ58<1F2IWc4ijXUe2~KHDepVSYi2b45 z30qzG1&jF*&0hoOK2To~!}Mz8!#wNmEk2&xNf-BtOJoavR8*$DP)bkT89p&ow+aqW z^P<`xos=zp(*FTRpjS$Uel&g4P>9de=!j;}nEcf1N(XMoWW!`tBc$nNg8W3uNw7T=8t?xHdi8O9y$1>n-T((z4Dqccl_NVLppxF#m;!>C23wf6* zzC<;%ebavmIF2DN0t5%*(8V+JPEj71Cru0VF11UtnlUf04AyAX20krN%{S*JDnJHT zQ5yp;i7=yA%nK_&7CFcL^2a&4QB(9l8!^jK--DYy-0xHKlkn{;OypfQ;;GhRYR3w- zWbxn$ezNv=$3ahwMdoEQc!0B05U}sJ+&*>B_I7cN4@W`5woBeU-Udwr$H!W8;Di)oE8Rn z0BTDoGzzw0^MSid;W6gHF^@fJOny4EHrDBYk|*VKOy^dakYoVZMRk6?%M4hl2QG@R zA%v|;*sN4AF5zT|v7GW2JN~$eJ!*+S{w{pL!)_$3o~?@^7os$X=BQ^UWIeI$)&N-) zA)4UaEjmBA+4;-?sV!rThk?2{QTnTaO4|Vc-l#1G-~IbW61K(-D+KoKmK>VYEkI6j zSIxQuxAs6}b~+-YY8$Tkamouvgy#DSqrsJh_uNlySvZ=@X(79~vB!Wh3)WB&*dCUH zD}nrcIx8}#@; zdemp8zD6D+U;ZgiA;DYUV-2cke4Yfo~imgt(pV@0@N* zjX*0OyW>>zzVK?#!U3Qw!X1K!bsk*YZ;uV0zR)y?ZiPKTgiCq^$GX{cJLDgW%9;wQ z-9|-6EOt`a$IUuI3g3q$u%_;2p@d^Q+^%Ah+R9sLf#KesE8@@yeArY8!ZV+{|5WV! zi{%z&zfirdh22M`J8Cst`ruWW8(X$vIr9gFdaFDuTK{|_A!}j^WsiMRH3N5-xBy=# z?mY5?JbQ|I2kRHX?uHnpe4&Cgu<59YN%n#I9(TNBvIQ*YYFxh~xVEfhJwrTK51N<< zMJ!QWUD1MH#!;hTlTrIeYquu{W3ad~9nr(a{?dIDIpJe>D{{>oPw-xdiavW4IQt$; zbAA$@QME9uZBnB z2*jy4yd?=f5GCr4YG~jsxiM&KpB$)6MwVAk|1ZLe5XYq{-))kL;SKYdULhB8Uvb^> zi*G0^B_}|nF@dlb)f~&z80tYd*F7P4kr_KePI^Z62C$uNcGp(*4=dg`meATgt5!{c z&OxT0G45o2=wzbKRKDBM_lu*t#F?al0pu-Xzm;ehukpgyC5nEVH>eapdG-VtXM11J z#*Xa6PIj{oeuth$KA-$BW~E)IU2=syLHkt2+4+_XnGfeSjoGeDKcm#oL+mR}-Tyr3 zoB~`uudy@Q?JvNHt7$R~zn?ouw(HWIX(8Geng5{LCzrY@sDX^IPGQ2CU~>%hVY-M< zANK4?5y-rc-icEWE(|v0IzmFB^ZlvDYF0y0onFuZw=MIzdaz39xErDhvHVp4v-Vs> z!|^XTZuG1xXj>5eAMXmj(zsO&oHWDH++LN(8_*;2v$9nt_8pvesm#VCY+R(qarb-- zPFLEVJiHwr&HOVEaFNu(;FHV`ZJ=JOx)K+Z!PV_yi^|WUy^i7PjuEo|f^I67Z4C?Q(_yI`r{O9=0{^Dee!CCjDwgLevM z&&RztJSsWFmmOkxdd#0t-odj7c~9$t!%}J+f=wncOvMF(Lo+43rNBJ(R$h^;o59|6 zbZfes`BbTrRXEAx1?NW6qWJZza6Zz--`+YN71he=93^wqcWmOh_3V(*1a_Zgbu-fM z3x?MDM(}Xab=Y#ime_+zzSr+&)%VAlIzIF1+0}!NoWzr@C}iqc^(g~gSQ@z2qI}<* zGHoEcl&(v5dCQ0qy=WCf5*E}I#q^kyHs+UJ@g`5Y*nW)nVI5&MD}nIT=#o}DP<9rL zR`NI))3m&=F_qcz`Qg!rz)6E6%_Xl~>QeeaqLeTUi|$~B;mX2~J1^Z3-4RKPn7YZ; zjA}7xzjuqq8WdeliyY%Hs|v%MbREB|E7*^oG+)u&E-7qpL3dZTASV83!s{_M4En+$?p+v?7aj{ZdHlMHGA3C3{%i|R_Tach7G4Dk(Nqa(M#lc z`x)vM>u#Gd5t=xup0ae~{*&$!JkGg^Y-v~yXplC&J(jqGlGY{n3$*7m;6&w3ChVSt z&N}J%_D&^|$DfwK|4AK$vPP?+Cn<|`xGhlg<*`aD&!hpM;v(X!(Fe)Ul0K{HedzCYOKBJVibQ_KY1mAB~-3aBa&^&Og&>)l2H(M;T=Oga8|xb zZ$V7hB853r?3Lc;!aBEQ<0_r^hII`!fFcS6MmPFK2~tMTS8DQI7(DUq42Q!bb$~+R zevT~KtElZTF|vQfZ^3^}_gF%p_M4TE%g;)@Lv z`kZumK1vId{QRgr>Tw=}?^FJ+K#^X;v8nqjt?a7Mv9Q+h+1l5vi;qgk#lIIcQ>?G5 zbZeN{6uS;K*yN^_56|iPROXhNXAkG3o(+Rt7j=sl$D=rn# zu5&^7>hcNB+~HoE4E8nD(URUHc_laPFQ{FE|N6)V-(}4{j47tW9=?vHYrRT|Ue{kS zk0{u5hr-jt7F0K!G9NtjoT4>bzD`Z52i}N4MR9k$>FvQpo-Ga6>k^rTTj^a&;(eTj zQp@3qigSt+f0`NtJI8VpdMX}n&yu}!(+ib($@+{fx`p3{ zPQ3d;7g-;3!*1Wg5sMKRd30T=VhoE!;~{&S2muQA^r?H;uWCnM5TDipYDu=vA=Sl< z0hf5V0RUhtJ{Ik9j7t5r=VW>Wrq>mvG~^Pu^@cqk_3*J7lQDJhmaG78$%v4@Z^_$x zz1d#XsNYqzqw5jXK@frcAd-a~sVFGhvB&}pM7xkN@psNb*b1^=wTq-5ct+;2xcI`2ouYEz6p+~wG9S1)UQOHRPGu_8;Bjtm{fsxM?JE$fDVHzz{V%xJY-z{L^XLG<&pu#}vYK{w72F%; zg8hMpC1Bk*?X1-oXfkXSIr4Cns6zOW$fc)R4h{tQ15!tfd^Qt{jZL`|z7sB;x{$Es zx?u2iTb28m#(jApD<+GnX}(>#2mTY5LWY=mr5qH&FQ&bsOTzeZ5wuk5Oj09G{E9(O5!71Xn4L!e4 za-uPFG`tQg*<#PQuJQNj^6PRsM>e{9m)J{XjU+vWJ=IEn(;H;mg=P*ul+d`cY$oHg ztn~Jl`+V^+@^U%u?BSEu-ibuVGonq4v=V#iK1f=k0AH&goxj8KNLTJD09`Y2XH z^k$~iNIB*zyOg4M#6sS?%FTCc&YszDiyAV^>rN7D^)7?Iu#s2GoKrt3@u^L`jL)~&ro|=#jmU!$RM#=+$5)bD;qeIHH4r%{iiAnkTWj4=M_EOM$I8Q03^1ir%9_U?BWJ|ZzL#uxuTw%t_A4Qu1~ij*VE-6b zReF+=KRMMW@m7T1oveOzl!5F;CnkgeTE}TA$-Mf&`=4})iSdPRBSmx`Xl0W3)|>Xd zjh)4}v)=SVL&6Njd-WnVz&t22aVq-TH~R0)+{p+zcc3n>I&WfXcD+vH-pb|u86DN| z*%C^*ldWDEfZ(`+qs5h6>imc@2)isKaS7uzrJocQPmgtu2{c{B$=|I0v%I01bxZf? z;1Ski@1#>sDSmxMVrCpc!*e9Sh1)p@bNaI~K=ULLSH6@Yp8NtQsVdclG^v6|*?j0v z3AlrUdO-LwZRAC5#+TIoFtgX!or?xxQpQAgX3j|BDqdhHA%JYf7~<0{$dfp;ZcyjJ zV)K1W=}BlI6t4nrKiY0nr#D#?*Pe=#MFr8{+r%mkzh1B+8V3yk8e_(s6ugNC7yyT9 z@AoXHuCRY)4)*AJ>HOZ0(~R5uU!JBD>bq&vY=Wvjwyf}@&%-n&>ern|73s3ChA@!0 zc3NNN*s1HB{r(%fK{w~bd{d~@H^W2|i~y;!6P{KK*9>LR>|BTM33n(><&RbaTG`ab z)-VmLPvy2Az{Zt{dYseT-*LEAebLm-?&}2C zT+WbqI4Z;Q#(1vMnPb^9WpkVi@#o=khU{9f)R1H>nz($-f?pP}r8XHYe6+?qQC!B< zf$y*r#{QUo(-CQ=Mm1mXjOd=S@&u z%|#`PaXVz^?1BLw`^Caxt7b5dSCM>tWqL>M!j$#l#*NRxO67PpPqg1L<5vyaS=hH3 z`G+e}g+;LIq30j@%qA+#|5j64w|B!M<+e@fqB5AmEw=)@1HMR9>E6d_g!ZC5tjbGM z2mSNreifE0VKK8*-r)ivM!E;(@|ZM#2T?<7__kw{7*M-3$Qd@+?#X8V>|=di8*BXP z|9W7j?TL4!yG@)1!aB>j8R;#xHz%h!`r{1j+uj&FVZ%Yd@dU)nDC-G7T&PXz6*&Ap+aKt%pySON1pY3@n|Cp9^!a8Bc` zG`GmX*U;e)M!#8Q7}smmoVTRe3;TUO;s<~XNC`+#h=AU!zjsWc)`}Rm^p!igQaN;V zHalvvDkh$>P>vZLe+r59k#R{L{kq|{!&tCI=cT&9poTrW(t_L*eeKre_MRT#NKMct z0nS7J+Mz%;do$I)R-P>@WgmMkWZG)twZLiAw1y#6sb+)F#veaPEYBe&19ZIjv>(a$ zi+#ZPt6HcC|I<_LNR8MvAME2;-fqa^0YFBCSF0KNH;0+uf$>IN$-Gh5>G@>bmA0IR zUHjQb)T+e}KAcQ3WK44$)J6&mycD_P3fxV66pD8Md?*R|T<;xUW$M`uuM|&qCRpsc{^>nCH(|v-NBgAxw8*wx!B*n6ZBKbw zss`vBrm~8h5s8+6!A4g-GFXK57bCXVfOezJ;$Al0PCr*!icE zU7wDA1kVz?Bc~iJ7iaS>9KScp#Gw6p(+I7CQTF#inEEZK_PLjNdHuv&y03W9VbB^F ztd+An1m}xi1l%YMdu^h>2uPUhrA>W41$judHi|C3fwGmlu#`*YWzlY-Q zsoU%Ww$wAV?`vH%<;Gy_;-Of>%(*Wa1y$(BD(QdSu*ax{y%}-^gRorzE-8M@Dk$pO zsEJ*@cDNSCeXkE|R-vt5y2&j^w}moPS&{#qZ?IqCh^W>cpNj(&(-yB`T}r!|ZPt=* zXy66ynQgBPgV5mEXmh+J7b{b!=MAYx35E{aW7rmq-uI_q8UR|GP}Zt`f}tC@Ru(rd4vV)hh7(+GJy!Q&#eiTbr~x+-zVvKI;8 z#!uTl)yYx6tk@aE;;ULR5!n5Np~Sq~5MCJo`q49$s0}ab+fJ7e!5;ljr(wX9|9Zdt z=J9jAyRT+*O`c;4$Syw5-eaBx|53jgGyH zc|+uVf~n76kSsN4#t9Zc`sHTBhT8YDZe>qC53wU87k>LdyH%ji)OIDgq+MA%X%pcu z3*QMqugp(}$g@msmxY`^zT!UHTy#}=xeMg+ML|^YT!7@K$OZa9w%}v~N2za83Cx$< zr3)I?dOzK|qks}@=Gh%6d9(+U8&H=6eU1GR}k{Ls_C_4D=BI_R=yO^zp4IXp0`MS=` z>v?^K!3%LA^AZ9>o(3z!@r3+~1l1=ApLeCsLJY`WV9qOz8Fg_Q%y~(a!qUNUYEDxpi(5ScKEgS3)FigjqX-bj7N7cqsqMyvT15{&TEmr=U8Re(t=u1 zkshvneM0ay+Z}xov8d_@Fz5A|H|JIH3XS#E3jZUiMKwKgNqp8!oYd*NwZAY#bx!t;Hp*`~u4GXWr?_{?s$E6G=<29)0%X>f z*~cCSG(`KU=UdlfYZk2w0NbN1r5DV3v3YY|FMJ;A^%BCGpm6QR8>l}@)0T@2Q}jKR zRkTMe;*@wF<$NkgD!K%EcDXnd#`@<{WOZklKCIl*ZAPFQ4UhT}+shVxeT1Xa81du0 zB;fnLsE*X_b1DFs?adjBvB&MGUz{iUnb!Dy0hL-0KTsSkM9fT*vZ5`TF66o)zVM` zfbaXfAISGR@s0`MtcWi{O^Dv-|X@PG6Vg?0#9c zD;KOU>6!k?f{N(IwI_Aj-=PJj^kxeG;zvnE@x^d1bcH^cPK8A4sVA;Bq9reFwfBw^ zn<_Ur(4ZNvv8R=qAG&&jVGM5vd;B4NZ&mr%cP_%F>P%LqdYS-~$2dTcE@lAy6x{Q- z(&#c!1~)$tC(PJlRLH&*@+U2cvS59!s}T$90)p}CC$JzQ6}Wb)TKv0qpN#P1ZZ2f& zE$tSbMnfn_S4i0UMTX3yHM+0z@nNk>GG%H74y%(MwwCU0`9QQ{G%GG?A<;3@kg*V^APQ4#4>M(GPF+vXQg}8 zzT-V(LRTCxet*A~PZ6$OHORoKmxK9_O^#TjR2^XcQ)1f;6)A7$B~i$yt(7mU?{M7* zZ%FO=)T&mrJQpXnNiR~%rIU~brhW958L8_KMl`TX!Aw}W*+H$U=fW&T_N zb7Lb9@!OaOeCPMbNfoonsLLzWA46X%Y|0q9i+XU}ZPQRam9|am02XwihXd185fy;( zdqHk1kMS$i@>C$xt$21sxbloIsBRL_!|^PMwJ$Ntl#bvTkV4u}RiqMN466k#&E@r%F0Fy7X9VhVzwxj|Ix9H(AJz%7n4Sc4`%H z#s1X|FX$9Zn+xYrozefX#B3neTy<9mTeQQrK`Ev=^mDHTBW_Otq_co@LNd^O<@&IJ zTmfO#5?evmwD!k;ng3dS+5A#e*u!b3keTz4AY`AC{Y^BLoN-GJ@O{dX>Jk~NN?}#OH-&wB?(BGN1423x)%9hkL}$;c!Hkf}t+-0K z&k77nYuNPhtR6mNDWc^*wfspMKip`fHEr?9qf=a+%Ljz{I{a1seH*47JqZ⪙34u z>R)jPDSW%tLU&D>S5)Z;7(_nyKr}^K*UvFm+OVfwJ=+U|46^MdwH_e9X^0C1OTl3D zR-yqUp7{H7Qz4vB@-yKiDu57X-hr-#=2vzp0aYGC@nA%-D$;iw>n^C?o+^%X7y`pY zPUs`U1(?a63t6Mc#b6N_Q>InZ3fc5>S1IA;U`^dK?g8^TdB14J%a1@V+-viXTsQ{g z!c?#8D1p*4FhptgJCJzj7<{A>-%qO&yNG8v-IEf&p#uUP!Cy|uh;N~4M_zhFEueMBB})d zzjA21>N~600Wk`QA`X~b68nb*KoqYs`RQZc61eJ!eYrq(8vF(AlTYf+woF!dKSnXs z{PEiH56Qn8o!m(Da_m&M8NwopaM~QW($5)PAI!nGGjK6(Bb3I<@||Ic2QD+v=TY{? zJmKSGySlYho`uqf^8OjGD%lwT`Dp&|TRWou3aDjlo9BE;UpfLPA6%dHt^2&4qy+Yn zdg65)2LYzpqbqZ(7wH+P;>I zIlc|@66mFhlNi+2^xnQ-i9UVevVY}`KbE*H|H>N{l_n@Jy0bJ3Ydmp~b*}R3+QZN! z`x#jO3efy(d*!U!UT&zp41vG47wXKwyB*A59EqyJf7Fd6h52qZr44&G)+^uOx7Zes zzq6rkA0M=xL8^WX(P!K-lFmeu`aFnmTuF#G8k{b{gEM-Yyy&qjRSjnola)Lzr$#-- z4y4ZSk!&I!QIlAbXMO^y`UsNVb*lZ3#6gDx3eL$#l1n`lPQNWyP3;A#dW%Bp*>qm2 zK0c}*{5tSkOmAEcC<^+8H`Q8+!8Jerp5!w#+Z_ByKV=Tc8+RDGs@U_^r2X_ZM~v&V z_Z-S?T5BH9L(|)?LOnvrZv{9BZmLm1#URho$f*UV7S)J4k-uHx0V6UXNKdZu%wt0D z9HMZgzLFpAdb2TTz~}i~CXN4;P2uyN{Gp?8@og9er;BEJ%kKYS?@ipHY~%m$BB>OG zLbjr!&5*Jik!U5iN+lGPRJQEP%w)-uEvb}kl8O)&*%|vN%h=bL80!oMgE9MaUZcDF zzJK5E^ZWtN@%tOD<2=sudVgN;*N4Ntyo?QRy6|KsF!HD`U#VtA@wu;FOiEbe*Sf&- z*E!aF6;%WV#<^i6xT15S`Y9oY)38#y9Ar9c?wprx+d$uJc2h>rUaSR#8-h9ukNB0_ z#@Z*UOO&P%9)p(7uAHH?2l@vQM-0yWT@e|W_IBS_qz@w#hlUnlj{2eR(a?j%WgJw#2FIHpLFIP04gnD1CeHkZqk zh@x_5=Up*iz6{9v)1^!8ns%~Nt+n86VFtU6pd7I;I{Pth=|!Mz;33g-vIKKudMgO! zd!*%t{IyI)O8T9Jzk(;?E2fxs9EjyXS2I)G6aQqkWjiDx~$0*>sLlc6(8?SZaa=W?mN*q=VdtH6$lXc+uBTf*uv=IomN8 zuq8HuzY=2VSqs~!UMFqHXCwb6I!7BZy8J9R?)I5N4yq$%5D-C$d zL+;;cBVg-mnUz!}Z+h!mL<&A6Zl)7vW)X&6$OU5^QD?`&X}``S{(E+KCtY^^grg*A zuUrFf#D-8@Ixu_~B`*tvzm{kAG;9Xbk`}w*eJ-#0ALq^y2ek>AL06Nx>&jnw6oeln z3)8AY{4(4M5HqendUrp(cilIsV&V+Gc<9>FQ7~Dar*l`oa_7pLa;9DL;(I$*!+O-Y z>#8H!H)TPlkv}p20)6~wk8J&FOrPdy?fe4l!(fpCMB9+fF8?$wl>RDQ3xW~LmmVn( z8%tXZ$cA`nLO5cLrYcA@D*b+HBfX+;PM$+3G3$+=eP1H_iobZ=XgOB5ru|zVd06;5 ztQl;9VCfY;XTMr9Q-N_$*v0h4l%1Hf_bF7e=8qkV?fmk!wM{Uad>`^5h~fZ4FHz&i zY)TN(g(Gd*AMH^0#Cj>uL|NfvkJ#l*DAAZD--a0a@deZ9kLZTRcS`E9cOGVV8G_A8 zE7!xE5JtMm!&jxHo2|(0_k!jhM9a-{i>%I$>c42zdaAIWD zyF3?ruKW(@7r6ob!La-7==Ow;pAMK|K*W66WJQwnoP~8i#@bw8S+JDi_fh%T6ZX^6 z;dcIwoeq5`dZZWH>C`YnSUQh3(w6T7awAU)r2j=(xJUnq4)63_E-%~WM`rh1DR3Dn zNn~G)mS%T1?N%eeHZYXrONDSs8MWudn7en-tp3y$sn4~#_QX#TnE?Pv#Hbfi`S+i}kMu6R&leaiMugI1KmlU8( z-rDQ5<&q6j&yp1LV}?PFMAxFe8~3A$K|#e}PooR9qB^C|d!)2ly*MUkxmPa_PJ*b! zX4emzS7QXI)`~CN3fpA3xqKX+s$nK2fZo|2F3#B5$fCHh`yrNIgXNBz{+1pzyEkub z34P`+Do=)=0C+?kjG!^zH?fgN6nDzn$~adb`N-}$i3hUAl1E8koNS}36xD-& zQAoa248QBfvJzjqjW80ARHrG&Qi~QHC}1zRnZ=nKw<^U5fRmC=?aj_aaq)9~ZEWC$SF}h`cxk_U$ZMKzJAq`Z(&6k`Lix}`^ z24g*Kno8Z7N)bSXP59`&r=)dthu^N-m=qGuyEwNcjqg6etwIu{83&23Q_t+?E-fUl z=7q-8%bGGf_Y|btv|c?qnm3i6?4i?JTY53s;`bQLszW3%ON+{|J4!%&XufpCLce=E z{V{<$#nhoq(UCh89O&t!#Gl3%exVbcD2G(c9-X6MbNlBbW-v<~oz%kCE%Z@xi@&8- z?2dX(kP%jV-t2hQ?g;!CCVQzgT53Pa#$>uOC>rF0L49k9DJA|L22%zyNPjI{yyMt2 z&WYC<9@gWC$nqti)~@?LYuRQM`oLBPuAUi0`^B#3y2 z&qp>In1OfToz5R0{hKVsu$(17)VVdDMuNb`;_$om)}gTqi#z0lVw0%uR;6Xm!V~0C#Q38Laehv<2zWH>cQ8#Qbk(% z{ba)ajJyUabD8G#(&-|G!7}*+_jOSCDgXA<5a;{kEJFCTE+TK}CE7ds>)SL**`7AF z183&lRHn;vQ~Yxn_gX^Rr>JmR@-VckQs;nBpUMbz;H#$hT$yIDK>_0KF1J3X zmQVTG%Dto(3tOGzeaH#)Pt>pG@CyCpuk$UZyMw4ZZ%K} z|Dt~@5J)nV-Shk=3>o-|0>3vf++S$;-Uoz)p!Q`Qm`Ppm1GTS<)_4>seo3FPzDMt^ zSj`9r41DqK)-)DBVQa<^W>%r@s-+i52(gn^2kK)TrnN7{oUu@w(E4EG$R7}~czHYm zwJ_p#z$p#S*HJBsErW(CG4+$P7TiqlN~P97 z{V|*DGP}`2Z;t!W2Mk`gX=$DpZLcYFw-7M_Z39c2UC_FIuLoLOc}YTHvT^A2XgXa= zeyWA0*spSsIP9$4r+BPCd$+=PTi7f07!P!$|7%*9jvDdvFN6-P%SX zoZ7fVmAVi+bQE^R_tuN{hwaBb<2@5L>zLfb!C;g6B46qw!{k%+e*b9d0bS zd%j)UJ0%GFqwxyOdMc(6i&z()z&`EYzF;~;_LWEZF|!24k4G*@eJcpb3dTMy5c^O& zvAWKZ*5zMqI_NpM-a3bRNBX^p!_A~T$9CtzgoUf<^mD}z?mM0Y(NO-@Zn^qtIvs*H zB84tc{{nNc!&cr;WYH~@+le2CvE7`v=cYfw%nmA=fY%{WYfmN8ZqN1!x_0o!VjD@H z%AzP8=deE2fX7V}qV>1+kqH?y)@0(EmnR(L7YCO$e^&X9Xq?sq_yrPUMSTUM+(iPNV#KI7$T);Eg;F$YQ|T(cNB3 zQ0PQ#r7wO*N-|Wf!`srJnU~bQ8a#6TV_D90Ph}3e8{`_lV?)=^ZW&s!Tev{I^Zx?W zr_8sFVF6I@wZ@}=x;&!f$%D_$_+Q`fp%n&lboQ7Z4*tYIb}3@R`c+}ahDOR(rHZ$! zvo2_qT>jJ7G);-bjbRE}Cm~YgGZs}X}%Ai(Mo-g_Zf#$ zh_RhKFQ>%pHXRxC&}pr^o%401dLTqD9QsCXC@e^i3& zm+o|TK>KV~NvemA5&z%ENT&h1w9+3nJmF8QjCiE>1NAZGRn*KSG(|kCiMr|G_HGC} z)~j1)yz^1Oj-`=682@f6H^)W^pYIY%z9_qWW%K;@w`upSA6Fl>IK(T6x#LVC)Fjfxe;aWsi% z_Z*=h_b%Kpi*&7&XiDKf)TzaN99~tt7CjBmkLZXtzn{3t7hGg##W_4+)U_Tozw{7h zbJVw7;{im!?hG>>l#qs>ih_;eGu$Ho=^^QI+O=i;}N(u1p8CYLuZ*NH#30~2F%|-aN z=*;_@@r$ta2i=CYMQTNRtJgczlMF)dSB1snAaD!PNoU? z$%2r1!7}Tfb;!d$((^;Iu*S^&H}qQDtDbIEcOp;*eaKn8&CrOezg|0ZPKu)n`pR4H zw8+L$AZlLStT)SXN9N|Ww&E^4uN!>iPF`S+eqryh@>(`Nuh7-}$-Xd(KIR?R8ak6F z{-2DHogQBp9;NHDQ`&n{W@cbtvU_w>%Ki$hS7`;I_g4Wi0lZ~1Et~6fmGG-5@l~UmVby@GVle}>*n7LR>S{X0FY{gN`L(d!;R^v2W1RKh;rkyfp4jiPtoicc zx|?^t)q#nJ-PRL^20s8gpAxt<(2$jdaYe%Q$znqI; zH0#Vu;j~`Oi5yf0{1a;tR}{sv`mR|Y_S*r#=~OWQHjtRZNYkZ1^DXG2qWp+nl>j{b zu_Bx~O10uxUEaZ7T;JvGUM5UfJIh6N16TXXQB=W2S0>j0z@E{*WEErB>&%J7{P{yJQo5#(B%HzhJ&H}tWm$zYpBkHU3F^F z-09YhrIc!!AoeKpkek(-g&5Loj}3kF6Yd_#9;z>c3K)10da7Gx;@ewNdmpv56uF;S zS=QX{r94~x9UlNnU^iRV{3(H1jVU!*$kIx4Ma;$>*E-C+a;~ z6nSSlDlfQVD$kd3@2{*&3US>2a@kT!nP2)3svwh~*KHSVX5VceoLc$bPV&7uke0BY z+bJs_|d6TAxQ?bn@d)S!(JEA`zk(|W|H}jet|C(MV0t<-n?kUW>0^EGWh+o z&^g;vM;6eYyimTa&z81#@WldN#@@#mQOe%o%1V9)TczYdUT84EYkLp5)rNsQ(_>89 zZFxfW<#vUKT01tk)~HAB$c~~S*2~NU^}L#VIOTTJ3cXm7fJʦni{(mOSxHUls;UH+KFY-Ed=GPBb+0(x2~9 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�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

IHoK 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­=_-*fQzU(ty76q%X1M8f5SDi{m@C2{7t=-4~OT> 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

wO-Us^RUK^5C{G{`e?(D%wgg(;A>WGK?9z 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

`5_}`P^^XGudc$hfMhlNm|CH50}>IujW7K+VL!< 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

xSxkF|vl2MUnD=>XAGDY++zgcHkmtvLfK$vvq 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%0A_HHDZgS5x-9c-G&f6M=$Ep2?VY8 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

    ;IQY zIxuUmp4KsvyTvX9OboWa?*p^&_rCrY<@0s8-3Jet088L55P?%{#84kH~@ zNOFHT-@dN3L;HEF>S&X>@AU1TL?VIXgI^4^N2@sKojDwb5EY^7PVc;PybvIHIQGN7 z?Kx!3YvjiU=KILs4qV_h=_c9<@*ei3jTJxq_h3?jkF1Efz<FNh0KU>!n z_3XSv@ky;J(h1!<+ty zY-d-8XG&z@FPo!$6mMvPmL1o7vH8>2Gx|TPnVYW2Ka%}_hiBy1#GqTh<3BW%OKfI& zY!*;D9OYHIpLH6t-SD8w?8!8}R@45+H!;*dkL`DPM1|=t|AM^Z-WTv3f51;GjNZ*Q#csG`%24U0D=wR(5_LCL2z1{w zH^FtZ#Ym7ngimXtPiIJ9MD$Ey-23Y%X0ztrxzs&o$^ls)A=*Du-@V8ueGqy;qEU5T zx-A!az_>}T14bmlEvGSmiu)dr2Vc6`p|p#9Yhn&NhNC46uife@Ei^9TmuGB!w$s}| zaa}ZvQb|^2ieF17!RmB7xq)@E?PMLp7HE*$+Z%pCMUG7&Lp{)hGaPb7HOXvD4tq@P zYI-m~wCw>D1&Nw;EAqGYr@F`NJuONk9hw*CrK6j-U<+FEpw1;_x0Htt|52KlpvS)3y%*I|H1Rv%9gO2zV zh~K6(FrgEZaLVqC!9g*rQ|-&;cCg8|TKR)Yulb4&Les#+pE#DHIDtI=&qOVLUCX+P z`&T{1<4s!R%bM4DIo{#kRwTsIY9>Rz$o63#TWWQZnbfI%_wo8NIqKz!O$q<>}ea$2aW{%P%FyBKMuKXTtE5EmEiW>w_vxtb*43 z3*SAnRJh9XQq(syuwN!OJAb1hZNK`oj24l)_*h7^6-+|gAU2rb@kcOw+(b@uzsZo1fna1M# z#!JJ^wx{1b75LPj6>ZubRAlkQL#!s`D9xY&cZ*~!-$vdRR4MY@fdns;gxjudOpGRZ z_P@K$S!q=}<)(CQe7C&Kz|DSvCBFJ_(Fd&|`ajkISNaLwAA*1NN4X;72M~ zF^in_-ldw8jvQUKKm`7GoY%s7OUxMv&%VD z=QO_794l^0;gS2W?NiZyhIf!I4MaR#;y3iwF~??V_G7CHy?FWD?vyrtmv}#ws300E z5MO?z#r-FxLA-f=s+_Mz%qkmOG042Uf(_{)>yaH!LKm|+PH}}q>gKd3LzlSRjK3@r z}PwaLWU%^bp6dm;J@Xx^CuHn#M78Ny*$NKQ+e$(=C0(e1mTTF<b2AO)OOiI4M! z$6lPor=8wg{PH1^0~F(3^)Zk6rBJb)y;0-;f^{EO*(9R#InqAhZ1&?{qFR8}&$x-M{GB|HiW^H5d#a~2I!7CQ%njv__7 z6b|nl^(DJK9;$gH?Q8YVZKqnnV-%`9u&XhaNTfJZ7LZ+yEzJ3;KudkptiO!pg=#QG z&QjG*1KQ8b6r%K(*@38UWR@SSC%2j9-Ic?f1tF|8dl&*!h{3SYm9Q8l*x^p#>8CNFNYcCIVvgBVb>WAsT3l}c6m=pF|(1AG;{7QP(G1pj_l(>bBDtY#5K_vdTYKlI4@8lB@)02wd~47|Ap zTlKuKX8bv0?%yncGillJ0@(x9e}KzR38Oz*@D!pUN9uxJZ!y;143igk@YrIs`o#+IHy z)g}uG0&zIgPIF96!HBY}OMGIt23%0-ckPD?jiHPAcE(%x>v0ds)B=mNO**&hJ-OwC zZ67IFk)GA;`-N_Jl~sbNZH%odC1TR-b6w}aO2|>40EA=a*2tX?z=IXT0>bbc!%C7v zUBgsfa@VLFVf8*L*1`W_nfR-syhQcU56_=O4c}A;eM;%_PpZQ+Dq#S-FgT`|#}K+k6N`vqs$r+l>>!;L=n zQ<@#&bcBo+wHRABCA`Zcq8$7|q`I7o(+*dEL^@-ZHTS@bEY1r;BD z(|E`t89!ucm_7a*K`g{hpBBVFguD(H+(xUaq1(;iHu|jq3Y-sI2nD+yT;erII0g=j zRFZ8vUb@y0ta=(X#K8Lsb2{zP%?SSMkaRcGuQ@G8;(j#17o^$46@F7lj)&;=qCfKR zVK6S@tD2!vwk|7z+`AM>Z?~aVZ|Q*~LSMcBxcH;8tMcUGS}~WyKNj@KXc|`wM}1XD ziDZAH^z9PdM?SX|r-11y`=wU3N66T7^bQi`%dhzx+{`GX@HaJ|EXSDI*QZ|4o86`5 zT@|wwjxQbdov_wg-TKO$U0)b)?}~l5n80?}(*gV{|mjGlDCJ zxj^~%nYt+2-C`b^#baqg;Ujw^ANP*C&|0#_-Mt-`fBD#B@9ifRiOZmy50O3%yP3UB(hUwHSNRgH1}nDnn5B8#33M z%lbgFp=W|Rbj6M>)7Pfjjoa0yzV=yGKEeS>?kn0H`T9yrr5FYnHJ&tHmi#kBv1oj_ z+3yEDJY2xhj)1NNKa_x@U6Vji103y9bOVu+YKOLE;KT;R_Gu%4WavMMt#!uZoRa?l zcvoQdXt|yAoERUV8?uKowKn%_+9POcgnA)Ulc&2zq#)qkZ*yyRzd;o)n@^3`7P$S+ zFAkyWcmQGudnRkFm*kuc~K39iBFMzFm2RG#fP-SIJ$GUJwYyD~|71WPTKIO{$Vp9@6$QdsK#^ zBQA#W`VGI2>c!5-v&9-h3()YDuw3a5=hPGK?Q@J_R@?Beoq)AHil1TB4C$}3wx5J+ zJhw6TD<62~C%O7=U4pUM;dle3f+Byt+cjO35O>2x)8q*k-d)9h0W4lCQ>I#_x_oYQ zs{>=UO=9`ti+o?MP?m%drb=}YRD!k)H)xuHQ>h`1w_GL^@*zBnpJ9Rju zB`d5YYeNb35e9*eDC%WD!29WSd2cl3a{J7b9yrxXnBV{;-W(gwy*>%8IfXR8fR7Bz zo~dYbe!4nO{qE9f9ox?6<$G|hEc%?-yj1tdMC*;r`$K8a4bonMZlzR;opbOl0WvKPngJ)jl6)8KYrSk&fM7ckm()&Bvw1x>Jm}gZq|CbTP*aTzxGi$+Z;+fYB%J$=|tQ3K%*=}aj3r1eRz8Pd+U z|EzP;$IlA+v0ZKEIW^GPrQiid+H{c?dleC1)H8NWXDDP&ThIeBkeUs|s2!({OqlnW z9#ooPYkcuBMw^A?nFXfFwma8BR*$GdS;0k)`wWMG!QvKe)J0_>svi`eTd{Swm_2Z^ zP4s8-CbYM-f1V>;G{h?=s{gs4hV~uKpiSsjKYiaGh`7~)5Ay5Zq_wOT)+W9!g}9{j zKY-oF5{J6E-#mkRjq@jE{uZAH#zh0&9Y*|xg1G!ABO@g|N4%Ib+=y~Z1?A0|=^8^# zBji1k_H?t%kn6mVdn(iHBV#G;#yLlo)!aU=KWy{b~;t(ER?q?uX{Aw z@B+RR)K~3i3wKC|*c%WW-3gl<@Ib~2a)>ytPcu8VOz4Ld&qEVQic~Igqi&bn>!eL~ z47NVONMm_ft)9}FKp?wbn954iy!i#0#@t+s0FDbx;I64~vd)A&`P+z7wNd*;MX|46 z<{#QXJl$Z^&nR0eyu-4IOLd*hW-JT1E>N@|qx$ZvwCw`>-lze0_r%u0P?kOxF`U)0 zlU)UM$bijugZKwdtR2Tl0ETjKpRqR@L zz%619;G2S;GjHWG$KT!ahCdX`etTP8B><%s*1`+F=P6=h+Rr zOSsBkMgOq@F49*tH&-ax?QQ}7^digPKk!5;(?xg7>S>iyb`cNnKfFELM*|Aqql8pz zOk0Hd0)gI%Gt2#7H_wPE5gebIjUAWR1o=&b9(zN~^Blr^p&f>0>*j!($em@-p@ZR7 z97f7iPkXV`^I{plwA`qtIR-4YSr_Hk`9ge{$t`wN)(z#Z;@Dh^Uz91{)7?JxU9xja z+TxJ`-Ya7mNrH4*(ApvRHDCY~of-}drfnMB&s{rPI+57B0$!=ReJU{(@y@SSU#WX1 zjl(-@LtmW|@*G(tABg4rJf{#xqM=Y9b>p!B)Z0)K3v9GA`_*kn82ML+carMX1#|yT zY4}3$;Xy0RM}O!qjBbe(B)x-!s5uF3H=OtJ8+z= zvl+B!I2g3q8v`#bplNIDJi9`hn_#Mc0KLK!0^P%H^6XceWqT6PJ!D+* z#|o5N&#^y~Eq~?tN>1fvw>GH#lA@6F5*?2LBEGR0 zAmRr2)G1M__CteQxxOqHZgbm0dF8Q_8GS3KL~`DtpX%qmt%ye4yZPf#rI$>AwpsIt zFJeW2i2u$Q1$gCu)Zwgqd`1P8s&8SHkDX@bM2lowu$n}0eKJy;!;TxbtqV>*9X1}Q zXz~m4DbV26oWMlesnFl9N3DD8PIvAX5YZ)z%f)T5UL^cW=%P-HqE~?DsV$33N=`A_ zcDI;qxzzhSdds)wHfBz8v#)dYqU|l$QnPl?LC+`s+01e?_#SnnA()@PUO<9;(%NeN zrld1|F$<|TI0bt7sq~C_*fO=Nd=SzRJ++u+D0RD8NspSe7bdut8c9x(#zy^P-PeqK28x0z4oVH7uOR!0@?Fz(7O&Ns9744<+z{dgeFd-~2{ zonF)?@>IG6)peogm5#2AH@8lR-!uP*Rhrp&J|v?g$Ad$6T#a=|#IGk>Yqtg<`>lM? zM%=}e#4e{>m=&B23e!i?W5(ZwqFn7z=_{enT2)S5zdikoPN;z27U=RC7=nCRFx!H;L@7t*yk)PumfQ~+Wfs$lTUp&bC!b6V~q*~nlYPum|>8HE$8<^-Fa*Q2>j z;`ve7w9B70%%eojc?Y=`6*pujxT9Tk{cb-QNz4CYdVQZC;D7c#K@TV;I7BgdwSI`t z8N^Y=T(dgr_U*P&tPrC0Fo@>ga1DBsWK3J(8a{9G9=yqGUfDaU&o=U!hKpY;1xM3A z+*%mN!v7ZPZFE6=44&=e$*nZJ)B%5@yQSZbd$fJmK~dLI^^mc2tz4B6`2y-s>SRL7 z2nEJAJft>Cz4$E9i@)yP3iRSD z0=+oppZ{AguHKYZNoviFrlT&AdesU`g+Fw#5sw3`<@-M(6o6Qq@hmnj!uK#q zkn$kd@(w;c5H8k`bn0+=KAo8MR9$&t*wE*dM|$<2(3H7Al7dUh%YFg+P+z+$gi!IY z0I@0MkC(%WCPP>ByPn4Lexe|xH#kY`KShE_WK9TL5l#-h*0gbV$3FLVcf9-S`Nh~o8+Y&-f)(KHgR#YTeWa@xm+@-?>J zxc_g{_&W*v^&VbN7n9i&cIbmj#45=lZ-%29yoU9h9knc<6io2{E&D+~sf6Z_Oa>0u z@;4Jb0e7dnpV$Mv9Nwl=ibCJG8C8dFrE|QoPU_54E2p$N0BAfT_nO0@G zz@t(}VZFB*oy0sWw9_$`7w9SrH;NCP1rzpvug$% zkxH*5vegUhRi&vI;{mc+dqgqotPg%0x%T6z`Xrr`*ve2n$6*$Vg?N=y{UDw1N+P2I z+D~$#{Z#6Nv~EG#IF}@hBjjZZIdfj$FGSTGo zx4fo1FWCW-tA$bTR*Pj?69MMPPP|t4_+}?uk#Q2PvG_Dj1rJz6U;jWK^y1g*{Rk!v_9>)>$m8KjI}Yg@nOmepR72M`}h{yZhrHC2cGKxkhM4l*STH4 z$-va0A9%yv_`{MJjDB z#r8~`KMen$#f|Bhl;x#s>S zWM=cfG8rT2ea5BOYy*yyk!LM<{jEK64_J)ioXaTGePLAc_CeDTP=&$1Y4RiG?9Trtq)2HweppN<^=RJmkUu_K=5-M)o?^HwzNkcY2m^X**jg#uTx> zF|S$^IVb(9%yz|(v~u=74Xv@Cyt=3rB!SBh7I_p)P%EqEyK~3z*|gk+TvIH~W|*WO zI_B}?c|j|Njd@l#^hWAN#+oTfKTIeVGU&wJQ@+`Yu5PPX`(&NV(Rtnx{Vr_PvjS)R zf}eZADfPI%Kd)zlA|BaSb98lQAv(6o z7bZk!&IPPGmBY)TtDj5GFaS1)8;6J#HCvWvOb$_->9eqOa8YR|eJfimMp9<+l zyjxN=u~Co_2S5;KJX}i=nN?7t$*i~+6~n7U<@&Yk45uC5a2ljC*1Pn8REEK}!4at` zx_C|iGl`JmORpGVZAJ-!*tcp{s#E1Ggn~G9M)LH=nR@obM)>SEv_3yyTX2rNBaL?E zXp@hi&qfV#ea)RfprA+8t2V7mC=4=GF3jOzdftcU1-L#Ygl#zO+z}xD3CI(9Pvbb} z6s~gh&x5334R!7OgLeGi)UEkP`L+SApK7M$4`1A!+yUmb^@qq^^h>ej^K~itOjKOY4m^$8M2G?`@r!^VG+j^q-8z04Rh9c{e~p_!}`pj9Xle zHpf$49=tv@V0^r_Jbg4iU{@k_*|u?qtg24&n=6-NFa~|;oN0f; z5tW=Er$0vj1BPf3fgyf{j)A}vt`zP?K8>!>e_b5gp1shiPAw?ecYl^UAzqv96}^8$9Lr zR>%3(XdC{H{7%eT+}iOhnABs$SKKOXl_UlFZgotKun_YEk!%G@G75@c!LsNZGA&<+ zj!+6t8gSTc!OZ?{tLLrVQxf!$Do41|yFmDzCwI15MAah1BUh$k?@t~9)z7q96lOgk zUC^y0UJ~#DM?F&bT0LeE&butzt@X?1_f?F`!3avwnef-JX)+3PI4Q$53d5+>aC zDl(vtE63wojm#x%66$3_p35_Uv%Ef?zf$!sbmCoFVyH2(A86;SBZ9<#fL~XQG|qvE zIz-T!zXm)`P%Jkn+J3B21-klb=Lcr0l+pALJ- z|8S6n;(EvYEIAh)>>8=iwB=@GNB(*0@nV!_g>`8H8DIEQB>R1DdDhD|y%8cR#xRIx zTu7DGsVjNm5^&Lxt9{9(PGU$*_T4A3Qk{xE+_0*9{iMR4V&Qm3vXk9Dd|y|GCqYdF>OAE`Q7b?CQ25AAk;(C z{?U=Xi<78qjU(y&)T53;C6ZRrCCdJHEIHZxxmJ_SlJ~dqb0U6SpI5RmqK^!yr_hVA zr_gG{TXD;`cB@s3oaUqE!kszskE3U#=oeGGlWFFRz!s1qa}A(gNpm_yoq9^m|G6UQ zH(~FI{nHKnLz7+8p*Ty#5Gtu`g>n}~@c9r43|u2(uj+K=Pl;(i3iUG@nL5Bpw7V!x2QuSb~lkhamccWO*f@DX^= zdrbdi-S03HC8d}iML!e^VnS13>@GCIYM5X5m$+d?P$UmX;*XSS}6u{jQ4A zh23UGh78@`2Wi=`2awy(@qg>~J88&t3U5o_-o}c{oLgGBR4u_@;~MSw;v&L%KYnPl=2_H zAMk2#g~Y+dP2GRQ!L??MH^u%D2Z==J2wcHwT0dLmIeHcy&=P#>!Z#4%2){c~>Z;~< z2_RVr9Hg#rDG5Y4Tnng=mansR5NYg>MMGgL?^IA-MFyr12WnXC`UBzdo z^r&{;^uau$24=NIh7NYk5f5Mtby?q1kV9GRX183feu-4o@WrHToG7qs_^)e~t=$h@ z0ih6$WjrswT6&&r<-S!V8Nl|&TMNQ3tHd69sM+4UOl=Q^efZYg;`)(S-gwcw@DKhq z(YO<4NLP=0Q-zD3tG=PYgdj)bJ^qRr0|wQbJ^y-^7^VB?vPvUP`@S_NSH$TEw+h>Y zwqGC|%X#(5K88)#NwP!+k=t2zb%nU#!e4z|L->>FVH~VG69xLXI>zwBgTb0Pz4i

    x>p`KJfUt{K6!m(4-|atFyKWVIy|__>(rZU!@iB&8K$L^N&f#%z{>yv z{_w}WB403Gz6d2BmIovN$36gX#EuegqjuVj*<~Ku)-2%+4HPRz$^Q`WD&nM&e5wcuScQGv9dkDtghh4BlOQY^AWx*Jmj%*qCIfM_*Qj4<-|Zj(BNT$nrK0*jEOrKgdG&Z z>k}+O94{oW_+y{!1{a7|3bNYJ%=x9Ul1t6!KCpC-{oqpc-!yGY|53!=X0xr~lyXtY z?dnIZ8oxLLO1(=4z=B2|-fD`So0&70ECPUcH>YD)$V3`S|GI`>Mrm;Oo8r`HS!(%) zHH_9fw%{szz{N`^)DoqK>SwiQuDFqvB?D)qeR&NR(^~$5nw~NxXfRvT+4zTu^68}# zRWAay^U{G{uBNRlW!V82y7w#EBW+4yEO~@vlH7Af8CrFz*Sicb{nrKBwfA8M0qajaPeP5cegpVX9;49BddV{GthM4%rMg+_yKXDxTDTkn>A; zJy?$LVUa!r94`GvOkBOSIJT)l>0M-i;sciLJH?hk>whuuI&%zsCJ!`AYLdcX+3QJ0 zqV*`(3=3e+EUSJ)TmQhiDe~;CIL|D%a> zQRt%oVfxiJmm>~1hFR{!Lo?>6!lehY4Kr*>^u3^L+=9*Rddx>ZR{BnQao9LXZ9GhS z%byStK=7HuRbR#5B6)WY&(|7NY=|^l$B<<83-G`1t{J-I6~^URju;L5PL3?o|IgXi z9S(3`1eXK%MYmR_n>nN4Q_>epjt#E7!VkDFOc-@h-sw0_CUkE_6r-a}%-@f6C3ueU zW|N7#zgy40A71UnRh9JBZr{)EB77pwKv7+nj5E zxLIz4vIDDZ$?8LlZRug%0NQ>3q3I8_Tje;R^edR{pV)>0s784xbT7%zv{`~>_B!|s zeJOyzQ~!m)du0`Qjtr^g0$8_{?81q%yy`327qZOGeaGXg?+-m0-rHT8^Im7Sa6;Fp zeOA3W&(LpbL30~-@c^=hl%RM!NA%WjO6TKpkMdg9D!X{~MWsRc;&mG-!eUtVWJ{3= zY{cvM9@O;0QPr58#(#%~mF7PYJF8}t&TFr(X7dUG%vvlu+H-nXgtk&Ab&^o$-%hB- zcyzB67M;u+iurb|`-U}`dCEeQFR;*Ri2n~! zSjLH69j|jxbp*-|>AS_xjf2ko^1LBhVxg(GoCdqu17_n&Std|<#1nZw zXk~%ja8M2ph$ocosH!gMD>OWY`1kR`kMkbxKl@iyr7!fzO67i>dt~)_FSQwpHYGbN zz=wSvrOWmE|H6?qx747d`X`ln{!dM9iyIMgl%|zG{@h4AdMx@{CW7P!v5MoJv5k_s zL;P#^^KaCx{*E$0Ss2jope&5Ky%W&yk3RtV{VG(+s`#7&ykhq(DX;@(>-W2bef9r! z4}mW?MU3srcI^1-)_Vc%dPnZq9ex}={3rJ5Y(5xy`AkF0toWR!bf;1r=HtV7IETE0VXlJS9}bDcpU7 z4PihEoQ35mFbP-O@;Y@&Tn?OLMUJ%XtJ~KA@Z1PRQYQz+ES9iOcQR#f8^K8LEf2Sv z_v*b}9B2Gj!F=HedorJJgYNST8h0TT&N6(jKDu|fhA1;s&(@x~koi zyLpm}vG_wkXWL;e0N2vm&cD+_hii>x8a0@b%GV`Kle(4z1J>RO|88dmm!8K3B$LlX zQYabzIKp1o3F*PuW33bX(HL3YlU}W;D_t|)%QjS~9Z9(6y=lWYR7>?e=5ax`3cZ;| z7Pbbbj7jQQJ^OSDXYZN&ZggCYbpXG?;A_2RCwmR6Tpz%?!D zKD<8LjiXrf%4TQkB-FHhR-$94a#)6qpQs@^)7c4t{M`)G*@D+LAMZ(|# zfM&$ig5`_RS7dNp-@*vbZNeq}xturKZOIWwj^ZbjzrDnrRLQ^gEHsLETwO|cVJ#B6 znx;>5pdbEV#c|Y5ak9qS>`zKPs2bsMAHKD;@&+=K?^I{^Gr!!<(hA>N%x>z=szFQe zjF(S*`xO}D)X(^CyNyyyne$+AX(}TVOXH5luE7qbEm(-zB;JI<(IT4iJ-#4L% z^A3~HPFQo3=U;_m*h^iX$M^alxaYY-fGL*Zm=@o0LyKsy3GiH0dt=7mJrg!Sxy3w~ zNmqz%=ci={KBh&gcb9wr!3zh!jS&5w0iMCZs^`F7s{wR2{XehtJho?u;GLtvLdr zy3vMv)T*QFi=G!LaZ0@nUvhp9t&~pqp?&DoGL(J+yR9%unl;ND^HsWK<=Io4r!fr{ zTye?tT~FUzNHuggn48#Yy|xeIu=V82M#dMe->PpQT`HpS(=)$doIt{5uV{=R&b!Iku^(p2g1OZ1yb`(IN^mCQO`4W3ZF{fm7? z#n}LB^_{1FQa!I$v~U!;DhgD%3{UryoInYXBzsb zf#GE*^aV-AF2=6M}n`s%cMVz5=%RcJ)@P~ zP)6|)G)nNBBF)g-R+FE68N{2!_DCR&A~_cNVRk8<>ba%AOw@0tzQ9$nZl7*XPOS#& zT4dnVk^7RwT?CJ#iQGQ1wRxw03P?(Y`R8N7U=EXnPy?|lT#_dNsY1 zo08off1uuF!_Q7vrQlOImqYFH^4OWOx}- z@4SFuNAuivCZ;h*t>oZZ*(&Z|9;od$bpf&|DCD$%XRdCzc=`%HC&29_LTUUnn6keo zhmxfky5#M(Vn2+V6DO38!uGmss%$8jj>xehwS^Rh_2*k0ZY-0Ei-Y!W$IpK8Kwm~o zs|8{2l_wirKxI`4n@1@TYfD=$o1mT7vR}M zOV9hlKE!szxs56v8_uT6=R=1Gf^(%MaIP|LgACz!@OOPelv`EHeh@m_2EP47(%b$3 zgJ=K@j;F3?97`XDEmX$!=j`k&Dm)XoeeaT7=;QAR!pb`rsnbQh3EfKPXho9D&nkrH z`u{ESlN_dhXMS~0qub^2hvH1=U*il(7%JhTf6m8%abk-KN z6d24ujLk;!nu#I!TNz5HDl+fb=x6YuVpd$!3k)91dPW?7F{R?vT7KBIStsHXMvk8> zkL1cmtqe(A#tPXlLPa-Rpe>=RMSE)@1}gkNyXmQeP<{JsK=5>z!z|vfv>z5r{uQrt z``N)#yppU<*F1$7=h|B5u_W$|b6W581L-x4rMMIak?)~y(6xn*ko*GMW%_Q{&2p4a zU)V~Q_V!l_4K4O#LDp#e`8ugT}LH%L! z{AY?XdY_I}Zln+`zdKZfdKQzYyGITkK{O$+C|xUvX4-jSsy8 zYxO$bsdmbb?<=0)((BWV1o6X1CxBOuDtaoNvurCIT@1(KatM8|;fasjn+kUY&^x|% zemn9^?YVn@PUU#ngNCs2_@nFHK%^JKT$Bz6Ew7z6Z#dxy63eG2?-;j;%tyn}rhZdS zo*7DB2L{;~T$cLUyD)&=LX^7~CyI=)veb34Fr5s$Uj%w1o}f1(nNc}B^5Cd$yXr4< zvS)j z?Lx%YSFF6Aa^paZk?#9ydPF*J$tN0&Vfk{xsz?3HLChZ81R7PgIywvB7Ny^R+A$>` zbwv`HMQk-1$SlT7Gohu6T_XuA9!o7=-CJzJQ!eFkb@Od{9i`5uJjwy3VOCVZ$40ST z7m0NjJE|T>J*vMZ0tp^Z+ShxwKA1n98u7*gh}5AGmCx_j6Ilo1+tW1B4ZiErZGGly zj%1)TQ^A2ju$3#Tt-2_00k?A3^gS$CUG;QMx3uQ~(xl5zp;6)(ID5<89DAWV@eE7g z-~94Qa}=P4e`gT?GcSmK;Hckdhn4VxD~9d2U}jbUvDs7sGpvJ!`hN)XEX^t`EjMMn zAI2ELryP~e+<)&FvX2~ZmM?1O+69#U;7fCu+S03;otMb96J@Ulyaz~wZS!{v-*XK7 zMxO4prItm@j0R@;MTApP;4|;VxXAab*Hp+&Pg^8x!)d!86ni4-tvdW@k%te?W0QjV z9dX5Zn@wW>C2dhg>t+k%5}!W2JW2&ti{i6>kA?8w0EI2q#aeK&M?JRhA?o5>!4Z(S zKM6XIT3`heDYuQ?EVRxk$jYHSuExk2LMVGZ*u1z(>|sC6^}dgeQm(b7kMp5czRrkR z2zdh$@fLj4gL^5m>ttMqXTJTrNl>Ie`&3sY2XJmfR}{SLeOsf0JR(4jrMNJQU*_^2!!+6J>g97 zW@;gmg%esv=l>(jbN-s(^sg|_HcMmC-Lhiju`k3;QS z;GJq(Pp$?{$N!S(z5ZVky>NQnrgsRI%=J~hW{x+)o9jQV{N$U{9OmS{FY!vh;UtqL ze6j|6OK=^uhd18>aK(F{e3YsnDI8QC$xxsNK&H7s4{Wglf!=vZpr`qN1HJzn=>7jX z(A%G_;_(>XsQ>cQ4lf-I+{4`pN{?Ae1>;VIi0})Izu5^-3Lx2Edu~1v0&Fm=aGJmo zIO-7jpjs<}2yyHem>y0=8(96vp4Ict?;hrLaj&b$iKZ8Sf#$dz2%S*I1r|OP{F*m5 zH_R=x7t=-rIyuuXVrkbDg6mSCw85(f?10;_6Y{};u)*W+uwkO?;l8QHBzpb|WsmY> z9nuWgj3jI*T`(6mY*+6cPI(HEwfD_O<_qI4}G>?dsjnb z)~?rysQn}iZN5Ydqud}3#!D~f#4z1@A0aV}?Lgb?I&5VIBW{DL^c$_(A(&TX3Zg$r zmA#gnH#Vf@x*M)lEWHKn%3;^uB_79K;oZ5V=Z63qTcN+B#UVfCq^IbznUq~;JwsZ4 zo@x&rgvIKAx3j&M@mFk!$_L&SVcGbozvMEiD;mi`#U+}?B0{AIWxNRZ_jHBHLoxa} zs`XB@f-FXnV$A)Gu@p<0#j;9V@9%E0xfI6}{?WufT=aLL*%aHII7a1C4BrqW0J|uT z3<%S#qRY2pdkf#B@=T|l<*vyM4~Nq0!W`*>QlDNVbR%hZF4cS==h%|5adelf(wPMa zmHXZIu+x4%SCDxqy}FvRLx3kw<>-9`A9+-Y)YMPEP5zlhE$$3f@weFwl46=x=`Cw; zF9D@3Xo+BMfFbV9D?ng)1q`7N*&9*pu3q6~H(Z?sEPiNishx`_=V$S92u3Y}JbmVF!_dSLj zff`|fNmG?Ms@#uI%Xg7ew8B=V>4oMkAs%p5YK$Mcu0Zz-_U*@8(&<&}{?b1#t%NJj ze9U;3^(~x4-<6(sPX8KJSHp;_g>yTZLSy|@iKAZX>mB@bHpQ){R0$zj%;jp*yS|$cWDA5#X>Vv1%zpU3*|ZhOfU%XC z8{$G@i@AnybFHKyj0Jf)RJKYLrh#G8N#U(3qg9`dD%1hfI&hdFs>4yD()vlMRKK^Q zTP0A^q(*HZu=*>qJa$2?z% z$5L*;GMlE1qw;bOS3l2RIeb!ec${WlejN9stt8@tbDVr3FTHU&m^+Xh9+~~nlmT<6 z4sU!&z0~DcNv$#YpIT%45o+m-`#0?^2M_Oq0VoO6S3=pU4-IkQSj6wIz8|qhaZ}8V z+uI)Ciw>rMrBoB^t`^z>`BIP*jcEb9@06_{0?nL?NhafU-bGmcvT>R=DBe5G`tO}6 zI_18j=I??q1#MlhuG9I5a(~-3o&3W(n(pG*zZhN=uD{2oGj52Hr~C-LR{9h5*o%cb zb&^|v$wK%XdN+wYOs$p6*wfL-(SzhPLP{s&ysJncI0IV3sNBy&zwRtzEGJ0r#5DHj zn&;~*jXBH=c(>o>f}+BbiQ{{tFD}At?b1fLaOC_5w=zKO-T~FKoSh-7-<1QCJe~wR zM&Q%4M6F{LvJZRKN^9)EX5g{MV%%DIEY7Z3kC&s1Y*T4!7vPD3fVn>-qc z{ICy_^y1^wCNsM&Q?mK-^zdHy_t|UH+FN87>ZaCo33kL$D2`p)=_+ybOG0gg?a}2{ zw?E!5FEn~1x3$i+z(Ni+Ux6vbm#>+!B7aFM{nqP|xQLgue;WC`KXdsTN97XxhZ`Xe zAf4{KpZ7*+Q3n0pDmT#Z$4tL#^jG!5u-xLO`Q8#WOda>2Ka%YiMsJ9ThfdG0i0e_) zBSlYb2=Ve1x8^5bJ2|Nb+m@(G&d-#fvvBlI;)17SkcJyEo#=!SkmK!HO)-LtA}@qw z{H_ISIslJthZiPBv&x@L>7iY(%v#WO-BG~iW@Eegc{VS}3X(%qYQPF$J4A~=<>F~S z%azkqx1AMS0A$|_K6&TX4JUF|1_yU5%hpcrMT}e%TYjIAEBXo9VZh9ZyXvREaLcD* z81Mj+qja`1l9VC|S#0KYuT{!EPnGIO29zsx*PtvP8-F`Cl$M5t(!B6dRpFAj zAu_w7$bf!NRE%BgeZY3M^GENA^h2cOJu$AVA@J}Nd^m#S*zToY{}kZ%BHug7(2O=1 zxWdSePWy-U%&y>Y?uMh7Le!K{0GG8ed)v%Q=EB4_i zFtCOSWgITZKF*44i8|Uk@o*i?A-`)qM=cXIXk2p48d+z*X}wZsPDHs~zY=h5!Xk(| zq&JLNy(CLdoIxO6q4g(?=0h*D>enaynCF$QgpoJKk18-_KSt-Vc&t)gOGJT0 zXkm-WdFem4*3Y7TB2!^JZ$fMJZp>x%kxhdvzwR7E{iB06=RY^jLMZK(zXrXmRi~(a zn?6z}3s!P`trx}a2>NwopC|GiO;9Mgs}`4vCo;M_BxMk)-@#Lz<+>iPT1uKU+;%`_(s=qNG;g+`(Q|=vJ8SiBWeFCM*n=vaer?t-JXN!mw&7>^h>gKx zox0VVfD^EF^LNM4L7Kp?)bkEj2Xl%z^3ndce(Cj`ercEr^h;`3N;v27dOU?)7P?>( z@Uzwt@BO+*Q}B1*Z~1&jLK%G^&_X_=G1|)Z!rq!u#6sM?wPr@31!C44jyWP;u-0H^ z93&HwP%_~)mrVE!=?@hi=UjvP0@LQuW8G4H^tBZ1+MLV!Z2O!S6Drrfp;DS9I>2<@ zf0#a1@xDil4bES=2fcBZ2fIoSV`Q3V=*k!(6B7v>0!lN~3t#nn--L^NsdbE}r^9S$&E5U~vyJVazEx5Ex>#T@q}y z;YK5$MH)`WLL|ako&UGOT2gyBk%{ht$8&bnm&UCnMiottem@JHDSP5gRuy!nT-|NQ z-15GZIs=xExx@aWWf6IeNy?H%NOGK?Inu9|vjq!495c>K9^+mg3!d(h1Rn>erT_5Oc6Xx`_Ws{>v!C}%bs$ze% znmbS4O7+6&b*}x$Tz?x!i@u}p?X9Ho?G|Y{%ctxV09_=KbgG^#@1I7Zwur}zt_yek z^79AnV5w_YaiJ3$AwXww0aieyHypKxMcg~DdO4H+b!XR4+?jle+DgOECEyF%fpv3G zt7pkQHj?~eP?waNaaq9Oj3z64cDt$lIY-igG%fy9>%HCA(B*=8yUz=(}cuI6m?$Pg(h;R0k-xRl8ba58090_iy8`r$2$U9{pQ?O4+V`*7Arxo@L z=zS6_CV;I}8l1QYpFVS`v9Fleo#JkIwJ{KwtqwFT$g+#7^Oc+-SWaXw#&R%HSd;46 zhnNl@J|j>OZz);}DD4_cpMl0K}m5YH(`p2JeQ zH5J1~9he(o%J`lAw}Gvr^$}Q<82!DF5|3G3C341jzfE?;sVcdbLZHI zzgr%&4a_YPT(8l;)0T+*F@C{@2U{&D>ik+%@F(5NT%GRG)*qBtHAlwAL0Z80&Y37M zuq6;Ur_-QrJryccp$Ev24<=6jGp=L!E11*i;~tvX{nWL3H9_04z?LkW`gDaBgLEZ) z{_8iV_X6VdVjT4yEooYcN~>?LnO$b&2U@|{f$JJm*)I5w#(v#+PTi(N6sbRjUAB0m zWabo{7hAbY+3bgfTWcDP?I}ilQ2Vgv+wUS3Svx1PLzl*W7_tw(K-sH2ht}cemPlgh z#UN)jkIK5{*j{AOb#i4X^qVOzy1q4sv2M2$s+a#5Ir~<%W&F0>eRNsi0H{&Pg=ee` z6AJ@I&-5?zgD09-Va{15HzTr-Dt8CVg5QRhdw*jE!BV0NflDin7g zAbb9eW>XomaokR`jx$y!NjBscJ}>X*@u#c$rGH2?X6WB=gs*F+SQ(1WyK@ZMR`Ac( zTBf2;NK<2+UwH9p6AMOv^hK6y`4)qX2AJV>m-^*mhEUfQ71u)Q+SZ+K2*zV{KS?(j zM{8lxxv&n#^?QHZ71NpL4t3v;33Qp}U!E%0M;PzZF`R1p(fZSeSXQ!#G9KTv?qhq4 z!a`GROMs%QgB8ksw=%Sq$pAjuX7lUg{k6}koWN=&emtod#C;8i%N=Lvi3CzERJ?C2 z!yUqPQ}_(>jK8`m=bDmpo;sTEr*{EiXmf?IFD^;t%|L0JQ?Orh^iCwV#CH#GF6skF ztnCbl&?CYWkxdLWQ=c5{oq6Iz;jyeFg%VnL(%I zGtiN4He)IW4-2|=Raso0wmZAYtsosU45bxd!!JlHzKtG>(HQSH4*Uxt69nB;Q^a+| zSlZrh*NHs2-|XHJ(p(J~ennDP6n+OwtC9^YHf(-8U)HG#dvx>XgA_@|%^H-JZ4aw{deEJDF=V`+WqV*>e_8YF>a~WcA!%?Duv*OMsb+D1OhN zK)1vDCuz3AQDU!E=4~HA_HrB?Ady)NpRO4N-0A>1HzDL%)MFPbPew6RrL}EWS`rT6 z$9hRj2samlQ{`>R&{B+(-3ud>GWdM|i(3A~lxd|Xj|n0T;IGU%{B_$tN_NXyZn$47 zytRy+G?6p=a*jA}`3~MsUj^+Q=1&-vDFOaDoxImd9A2>vI7a54Ij-+{D8xrndXNMyx^RM zXmJl-rp5Cbh`fK7RRbEo8^rT2`T?{0OEWgC02?_2+-3Eh?WW*kiRkA5i+}YQ`tNf~ zGkf7ISetELurIQ1ul+0{CuIqR9QCoHH<@Bv|JcGH_5d8RElJET1wj66WFMRK$6LX! z;=@`;;ahqiPmoD(xF??3>tg`<`koaCemm%`{|N9S9Q$eL2WelX%WPME%$(ELt|4G7 zZyJVJj_vfO8nFPp_xaGW^*IqbWpSA%NF)ceea{Jz@jXhT^)g5GMOsV52Spo?C#(d0 z>Aq588h$$o4yIv`y&ib3Dhd}kI?o2O@=dwp=Q8M|9r_INx57BDZo6Pc!>Uhh05%s|3eNrE5nExEr%VTmD>09!m0v&eY1!Z%QIVetf;{9|-nSEXQS;EBow8ZT%X z^?EzO(qwo8<}I+8olIN)tM#x|oWXw^Mx}gtzIb793yZmQuyGjI0)ztRxxds??zm>0 zfg%Z8$X{!n{o?!q5~)UA0dhcZr~&+IF(4x@jJ0^V;}ws_uIIC+!-l19N#0WwInWKe zfV%cL635zkta3^4M$Te_Q~SxyTRz8abwe?9cWQ1R8sb{7~(O*-L5J=dOb95Zir z@&r3kj>I};L}%Mu4J@YYLqo8UE$*MH?-dCr0SX-B!k2F5nhBAp++(NFmk_#iyF0(A zQhrZL9u6JPQJD~^EEFezR-!kw#p)I`iUJqa?@<&=GK%^P?0|E_sDr1x*u_hLIIxAY z5f2y%H|k+#)~Ys5QaD>2(3Ao8V&GFw7e&J*<0vrS1>-1?Q=mroDV7VK=hXSX2&O9+ zt=sQs`D}n%cf|*(zkjW4;<^2pP;bS{;RM2jH)YFUbqcMEIa^4npJzWbrwO#2(*)K9 zp(E{QGRVN)CocI)` z397%KmRKDuu#lUUBP-sH{x9|l;ES$FfsUB{^Wj&^HxwbPae-rLtqu+KBXMoQ1&fPC zYp;BcW9|STpZib`7h7wa5~f(y^~YE-`Kp3w?AJtJCdGt;iw|kBZ;#(u1HJ=u{`n3p zbpy?M(~YaPL7YU8Ry2-4Q8E`LT`I-hjRE0*Iy*H&lJ;n5P0?m5ccr$5bX8Ve*ZZoE~V^c0=zi7Tk7}Jrlj57*SIhgd) zkF_BETRVSwqDf;@!m+5$GG_Q&!grdV_bdI!A_K%eSc(fbl4^LNVp8-w1k{}i0heRG zO~xt_VihY@C1SHtP1|WQ`zqm>Ubi@mUi!6@e7m3BG`gvalNK#?(*>WV{7PxGwY(S& zM`jzyi^ous};Wo7k=E&T6n5#1pQ1Y&SP~BFj$Tc}Ej9+GTZMCb0pd63;D1 z2c^B$L5*I#7c2}((ya1HVh<0WS^nkWu02VX4A4>Vdv2L#9A+MnOleq znZ9$qu3jaLvCebrC*>dEDQKIRw7e4dDKch}V#;_k&P?GhxZ8qOz0mPTB0}`pE;#__ z+hQ(}MNf4f=Rd4{=0??=(MI(ikNE?kCn7l$dsXamvKw~sC7*zK=6O5K;uRYQt4^@d zi$Bry0YX73DntZ2@GotG5Q?hEMsYSp$wKrKoUElY8ZD%F=w$gEflijbp=A%-oewP0 z;_LXx`(84iL&tOTF#Z=5kE$!<9|WYc$8A?K2GJO~0)JuN28qGx*|S&Oq4@PWgu2ygB#M|F*vQQU7r z_b>qv`n`diZatoz_+;!}`i{X*dDDkp%w&58d1e7kU`eClytV??zIPdVuK*pXW9ClTmQ1Kd*F3$Nr5D@w~p<*+Xk9^y7o!H>r!k80#6~ zm;ly9|7w<8YMroe{lUi$eUmZwqZoX6`=Jy^n9ZSyMm4N|P#L4Ggy?oJteGlDnofc* zs)#!}5M6p;Q71jA?VHjcUxk^(S7A=q`Pylo1-vjn-XJf=j?!oGpJuS%iq1Sdh3u5p z30%_OB~~7h`tE~&b0SLL%MRGFD=75FZ?dY@&WAw-f@f*5%drH5r}iV z{TM*c?hs~^l8UCeUuTXP*H{)C#Fm7k6EVnV_QkD;;sbD~TW_!mgo3qf6wJk@k3lf3 z`ctpZySIO8QFEL2)0wib!q-MEX#o*Z$f5~1o*w1#emVCUBHZm(*+>t<0~navJ6m38 z4gmv`_i{8!EZ*#Qn#Kavk#9r15?d4cQ&H6p8E~2Hmt1BMQZ(GX@1@+!voSe%ck9u_ zafeud|2@H`v9oGa#91SK8)y(m8_N%i3k=swQ>hN+{m>Tn(zhvol5`QDI6Ygd7v`xi=wfX_ce-8aa1Ri!DmxT`A zwED~2B01p=oginw4Sx&IJe<5=H&VcbhDwyDlLoIRe7T<@bsXwTFW&DXUfd4jHAT(@-UV!vn zcS=$4j%09X%LS>u-^4>Q8ny$iIS@vxSSe-pPAaC~^1IpwOPiN|m+j~3^b!a?%C$8z z9zn24*tNd-&4@Q~FQ%=*in~@d*I~fJR4~*3#vS}PD+=7`(Nl&cM6&|a(l;p;>R_MJ1(26>Vstm?_H1KR+0-CLERE- zMOtCYu;^9``bPeaXP!l9PnYQHOhV14#iy=e23$!ApH^!DfAlGx*|A`~eY4-0$|Oq( z0C=}g&CiOsqI>vdMQQMGIQ{EEi&?$yl}%?uDGEI!`&G1;`Na5p%VPs1+pUZ%x4|)Z zxIiG)7FE9P(8lABld-XyW zKHywatca=&kmv$+=H*iFt4fwx`Tf1j3Y@1_%aNQG;iGk9;=lKX{G+O<&Q^kbY)Yl1 zkh%AqT(w7_V#lR?pr!&Qm|X!xB0@`8S&y|Ul}Mw(S!zovoA#MoW`+MhbiMsQ)BpSb zU#SQ=NzQUsR4O8=oNtx0O3}IGWHFKyi8>3k9%?)mra z_YH5$8!<}gZpo9-La%wh1jJ_jDF66v@%=WeY@xJIcnJQ+IYJEW3jyKVc8#cX@d+&ZLIDT!+>Y)qel8dea zzP4)k7~rq9=4*=)2!qJ0$Vp|vpp{|MGvk#s6;`ZqJz4ehJCs!T5O62IB2d;1Wm-T2 zF3F9lTmFqVZWvGnSlWg!C0&*y-M%9JY|7JTzFf<_Q?||4UZL&t?zZ^8Jq;MHvSKI4tG;Ncl$-1dMF`SSiBU z%Phui^v$8QV7LxbAa6UnMMmHdND~QS&?Y%L{d=ofM9>`N}zJ3%+DXX_{dwNiM^cmwYx@i&Zq4ugnkZzp4lLy#V(d3|}+lv%vuD#~0jl zi~uoK$@*1-L<2{bxqLbD(EPr4LtU8R*2)P`MR)9Y;}QXO|NXD4;<+oXcuCeUZVM1< z3Pf3L0HQ<0au@eui?2~PDmBTY)9jDl>Hv8k+4@`VBwIP#L2(AHRe@-O-j%=b-&&Ft z76st6K%UY6RRRGQTb;UpldMKwwhq(YcXDZya^YnWK0%P9%*&M9!fRPpE`PJE_9cX0 zTGFRoMn)AaXdQC}s9FQbY?$AG=&P7yYk?(2NGQaB5vGfY>cDZVsh_wzFBX?hE#^(x z#{I$38~kB)z^zypwz$IC7;rID7-pB<+7kLivd9>W(g1%&_SXMnWs5^47SAjn#un&s zCz)T~c_y?AmREtN+<&DTJ_Nj!zMuEVRF(MGgd#V_8@+bm!A^2^Lc0AvD=d9Z*nE3u z*{zTPkWsN?^CW#&j-t^~%weD@t1g^pgIvkE6w*XQ~ElM0X%Ec`tAyzvg9oh-mKR0tkY6^xh{RVLxs{ z6aS+u2UpXE7w2>~loiFphmVBb026%2EX%X?`<47o{w~NE#C~1rDaRPMuBC-E2VZi> zezf7m4}9u<)LQqA(;{?bm19(bA~-Jl-`RKb(II}MfL!`&7<5dKXJrrE#&cJJu#n(U zm)Z?0%>8SF6ngE%gVjGg%FPMO2fLiN6QnIt;a@^K=-RuGm<+P%N#Xj+UE7j?TsYC~ zD$tj)}9Kf}T)!QEehbkfN?9jTp^gWWXKPUh*lD9p(`2(GsAxS`-)f zj=9uE+kk=`U8tO9c zi}xvP9&2g4*|)45n_zSKO;Zpw&ZBB&)sOoSTyOT^l`3%P@k4h;0~!7(Hca%07hm<9 zxE)kTcJ8#Z2PILsFF5H5qeL2L*n115q%$aX#%^+@ulNhMa+2vP;|Fqq=sHWj0@t~2 zO=|xqcJVUMBrf;c1qV$!=_DKW5I zBNuSB6`V~030Jp-v#GlWd?-!Sy2H)$sstsfSfmq*aDMMrygn@xWm*%82+Wp7iS<9o z3z8n;D;HBMOwk(V<2<=5CD)`M4>Cf+ym0XF{)4fN1O*NBp*j5Jbgn#OSPcf{eilmbYv$iD z(p?Zu&D8x-ih$iYIWAJyJg2c?e?7XWJf*!tcswwcjSSBbe~p zGbi#^Ki)&oi!Pov_MJHyG?F!HHo9meUmj!2d2~O@^5#8G_cdvT7&H_WiptAxgi z{%OR=4KQ6)5PyWo}iBQ%-(;&5l6<+I#9E!q*^%TrU_<0GSb zS8YYXV%E03a>mQycI;fBF4NfV$wYmqFYW=j!q&6x0I630!;JGaSV>hlO zT|_^ErGz6*kr*1w+TM{ykslzCuN>>pf)m<=PX&G9-<;W~o)*da+@ECAcoBG5@6O66 ze=YjG?=0Oe;VyAjqFa%AG=Zc!FzXbg2Bcucx%WcKxEI+sAJbO|GDvg7ByC~nxz!S> zvateA){B{ELeDNz4>E!QV}gl zk3bECrF?jq^^2@P;vT`eXx*rk*eYw?TGoUFu;_*%eO!xV@2&)zsfk=9$1mx%HwH*+IX6`@vsY*ep7AxkNAPT&qf6-;G^4qPg#m;(y&#m{ zyeItf(ynLAPJpYDF68H{q-lTm=-;IDY&oq*g^p+zZKMokSMD*ttOy;K*&M`oBOp?H zBZ8KD#)7S$MvcujhEE$rRs49#+V*H`AA0V!=a(S+sL;w+gyLr$Thc`#`GD z&pEY20YR7KsgqgcSp{}?Xe6m0Z>XDr3v6p#mtWcd2dlLN0d*>r?J$;L5B(FBAhLnvh_ za$F*|d6-8nIy@{7N^B61Xf%}^8Kn6xs|>_!njwswHNe0Oi+${Ykb~)9zB1_>9_s87 zex`VZgv7^Fc7&EwyguPGne8T{E6()p5n)&rlGgvC_4vbp*A|D5(RB0gbMbQl=kwQp zjSu~DNyDuoVRQ?JIF~?rs8e7(8+Xp`GiQHgR*&amJO4@$M(@>^F~Y9qEPnYNc&hX! zbNH&k!xt*ywugJ}kqzC=D)Ams5xTvrpr_3F3eL!~S!u{wl`PPv6A+AAb4E-!-qzQY ztZJjuc`GP|Zn$rDY6wR{4%_hz-2N8VPL1xnx;Q*57r9Y0g&zNjQi zoE#fcAij5*|BiQQwXha)Bfw8!sZSyI`Ckei*)2vAly+_##!^;9o#oqify3$#*mNDd z;dFJ!*o*zp*4ET~`p;Gw?1ud+d5`yOe{5pSvg|UV{Dd2-r@)i%psJ-Xb^xzLFa_#M|IW8sI9jdss$$!a;!D9Y?~znvDeFoO0i zjL^&h@~^0x0kz*snS?7z_gvhI9!%_Tutq}+3b&aaT^v=IBnFLmRe~vDcVI}PGE|2w zC8_2E?~&@q17M}|#q(n5Qb`i)#p)2HbmBV>Be(Ih|IMYdM-Dp!%%CdG)Ai1E2s~*= zSbJi-#}e)~btShTOBt!dKmVlqk=fBE8F$7#lER=%=`+{f0zz02V|J{QcI^nFUSZ|& zLw@A8S^OJe{#=grLfoxSl}Lw)<-Uxi_vS-xKf|`1$e*#)U!wmo2fbGzZGQSVU`~O= zyfAH^y3KgtfuN8`qJDApXlSz9>KVH@PqISHH4IG&bS4M7rF-kBeboHchBLz^8?+FI z+Lpb=2lr6i29;rzD&`H>3)(_iY7*agKFuc=IlfTvxsd4|&HgtJA6GkyTT7z?Y?7M% zx`Xhz{apVaOwjdNll}snO?+jC9VPLuN1W58e9j_(Y-6C$7xF2GateCBVvYJ-$7BY9RaWYv%r81z#vQ-}a~6_n zzS+tfRn3>L9Lr6#bwhlr1u7|QftGTcWYn=8i&YnCq;yWanUi7O3W238we;Gu0QvbLkUVNe<6{n6-OF_gY~}f=w*RJ^05l$*ED}? z-k8uDJTQM@tXF&L?R(Vk-z_%8L&4E4^pA7;slud+pc{p<4v=olumODh{@b<;u>XWM z>@4&p|G_@@{_09DopotBr(yU4L#Z&^2FUM0q;$c$wmeU=Egfbeexe*APH8+OaJ(ud zyYHPE-^D)eF3*X&Ch}&iUA_m@l;Bsts?alX2jiS|NjOuZxyKNRzJsrAg$Hoq_0dn@ zfddAa$oyWq=EdiEHa2$-We1N()7TcMN$=5u$ZslIJ~MnZanKn2HqZ1&XbL4g6!?m? zS{L8qrxs12j8&ME+FZ%D&Oux|ZZUK*C^(z+;;0?yOHb1eJL~gj&YyhPu1tVkR;%ZQ zf&zq5!stZLTE@Ui;|`x(u^S(YMXCh{om*t|anqF6!jgUiP3s=M?0ExT9Pd&Hx9WhoXNFe$-`@0YBU8 zm+#gcbYBu&7X8)A^-c-_Z_{G3*LXD5X8N$8Svis7W)cwTrOV$}%@rXvFLiahVL-d; z`O~h#K)$*y|J|;5NvDhXZmH?!^Nrxd(UpxV;4mW3ztJRi$y?-piQN$>-^J9uxNrV$ z+No2*sCfsz6DI-lxYZ>s<756zL99*=C4)(*m$shMGSkaXf$qMMf<-Rx^Jv(6Tq12i z`@s6?-y8$fKjk&p^~2bR5@PZMQ8Hvnbz!9vN%0QR2>$G}CIdW%$(P*lG-gmC!I!R; zY;-LM@)GgZ6^Hu5C4O}jd_6MXckP+_>O*e)x%JlBX2Rm(Ymy^Qr1cgx_vWTQm>fL( zsKtJ)eI@R|!uQb@xVmpGEFUxmc7zOgz=TZhq#@9wKg+wQFIEu^rxkk%>(JYrX2;f{ zQ?((@Wxz49X+f7F&4D7VnoE>(;h7VUPIlZbZdBF%w_%qD>|EqZXxrksnHpd!;)`g5uF{y!b(mCIs6pH`&XTg+FTB zkE?DrYbc%$HIOi}qx<%aREhnS0ErIF{mXa3MTbGC;Qa$0PL!njePLoFhCo+BEQg)p z4e%P5EF7kxYZfOSYB4rsHc&Y$45ONp{i18 zpp)s`7xHKWEns1l_xwR2_c%j_8IQeRnHuC=XH)AvUVazUzut%BLS=D2kft!&?~ZMj z3;#I(lZ-2hbf(0JZjGcF-*qe#i6Z&+Kf!&$c!SLpBlgtk2a~D>07DvB3a1FMoluI~ zk~&q;0R$T?oEo0G{+7UTn*J3t{re!4m^bPL;dilqchi}_LuZbd+jZDE_s{@|CauZi zU1xG(M9k`<9|YWlypmKyc-8QDZk+sCMJCWCCyPz(^(Hwr7>;=b$8x^V+uLjd+yem1 z+WycXR!bvpD&pt-+WfTT60X9cC-LYgPHym~OX7)MGjv%JsSI_l96G=J7I^YK>Bi4= z@KUJ5D&(oe-3u2v8{Zmm$&EjD7!e7FBkMfVUQrBIr z^A`O8>4UYif!=hBb;lH0AVrS_ZKHeeFPFjKZc0MYkW+!a$_%QNzs z);z!1Ie_ZX=0nS|L%LJv!<)F4zA7KLl>$SQrj^HmlxsvJeFjx$#Mr*bI9~q{N9;ZL^hYyb9$j`^T4?VSK>*L88}RQ&UMMwnL604P@*F>C}OX+y^U;#X=K%%6;oa_ss*fMUyey z6U}#!KBS7KifG+2p=j0+h`zk?flx%GA#<^tI4t#zMN&qRul-8*?)WzS7c z9{Rp&6X#>W0r;p?ynj~B{^J9LhO8Gd{V0(SQ{|KUNow4%yQN@zc?_Ir2c(9uuOJ=X z$1S#bHoLz@gwQkfylFm4m;Hy@QH+~c;ig!9m;EP%ooU{C-gVB znx^gtLP}u2yX{0Spnrj1y0+c0KDV&ZL4#(}R`%SpSc*y@&t|SH6?v6utAhRG!fV?2 zCu2B)t(OA!9ShM+e~YthAfz&lSdETxf&XbrcRY$$9{5zPH6>@DDWNctf~J&-n<+S% zbcNZzN*;^WSbp_qcq+6V1cxVofy(R@Msz8lly*Nnb3C*ReQxZjy!a8GuJ|B~;+CQe zI~xzw)|Fe89LY^iNQ0Z}X&hfW@OKFf1chxeurPeBH-5yBvYR^}-P8-e!1j2u0{Xe+ zNT3C?lxjKy5cWM4s21M&n#pb9RR=`)(?b>p3JMi{%ou$q*!>wdiocxaR z(Po4+)zl0+=1!#y`=L3JfhnJu=P!27^Nd`6R>Om;%QkxBsh67kYFEF}K72*nZpM~V z?s@%23M?|mxLIPn7cOEKJ%=xZzE7LNEwsmZSt9un-6w2!4@8RvZaX%^m;wd&N40}T z{nBcmu)aGxlOq>1QVXUIhEjLFI$Y6H^c+HG$>^8xO%JEv$U^b=+{4iCNi`9n=B>E0 zl$$KxYn2U(!)%iYoFM{rcgNS(ou^pn=mmwhUOdN-EI;_kdc3i1LtqdCE?wW{O5)+@ zRp?cps%+Iv9s7WkaKbn#^C*YR8Y;k1gyJq5(%u8X=*`rV*MgIr#)-_nbUiPg+V`J`r9&ECYv`+#Ia33GpSilVjvo`b^|z@oaw!zR+SocHDw~F>8Gf zkia7u6g<+zj!%1;B`V5-UWR8RP-=Va3FSI*oeYRu@%pLYusjky%E!`1^_+%K>}qFl zC3-3T;M7HkY_x~l15$b=U_P7mwzVIg`hBVMh2FJC{Oa<}I3m3O!$LDNg41msIoWG1 z>e_MHlj}qI;c>=IJRu7aO9Hd9xB$gQIBTk@8P9b6@`}p;n1RK0vrny6)OG{>oZn(y zBUC=!m~x49>Bep%Yo|<{xO@@CByyABsTUZ9oG)YRY@M~Vu>$tJaWO2;ZWF@c zNZy&0eRAQzC{>@NH}TWP2qm7lbTIpNk-A7ZnX%Ln&RPEKC>M`5vI4nIAwSf?A`E=+w19S*+x0lu$li2}RPHEB%0K=EteMnzm0ee7(M|Mn^oV-5M{n*0KEm zyJMM~oVUU6H#5H5ev`AL>YlkbU@y@b^OP0c$rGl^R4#4GJUhJPeR+JfMspPHD)qfN zVo)|%KRGjZ9ykSS9w`ng{i3_)@jjhWlb4%17!;m>h6fE~}-Gkd1xG-fqgc zM#B``3$SYuhA!9k8S3w!iQkgc>@1==cchw$B`!*_fc6IBB@p7??jM~;HW?e>mPMi%ue@;~>$Y5Mx_v1aa`!noNJbx88_7%km63rMcXB_)#0k`w(NJ8{Xb*QzW zV0gkCrBbsHaa?Bjl!U4z008XA>-Mjw34CYaZ8=j-8Po1Js?B!@2B!)i&s|BzIme0Z z=chi@mQg{OD-v|2ZXZ-8O5jT76u}Y?&m}?fd)PP>C+nY@YJ2R(51+w3Q!VkWeM1pV zA+j1m(OoQuKxDqHtwF#Zl@Le};v+c8%htcfc1@B{GhkjS)3L`%q*B8~n{V-T+|v`M z)vsbN8WQs+%c037S~CyP-9ev=GS#xjhf;G{Ek}$1=Cu*s0CIg?9TsH(C|60x|UR8{rqC=;yDzBVxMr;sXa(5^69i zg99v%uwiDWrN_%45JHt8V3EX z2&U5-oLKG^=X}!=mOUTvon2tay}jj*jRshC&x)=3-;qq`+cTC87N}t_CQf6$H`l)e zPkH=wVXbhKn`Ot96?gRhAV1B%o-0yATdAl#LIQziUt5lO#wFS*OhJ5_c(EaKasI&q zhT_s9O0|T4bo}6_)g&qRrc`ax{OTRMOAZcO}g?Kj#fDEt>tBGimpfBIaCjCQIIW4$4OeV@;;d zGwYYlhFCHhR6fF++^3g#Iv#rB0PhUyOk;={n%_8Uq}`+>BRS9F>{}u<&?I>tGBE7c zH8rn{JHGI)F<1NKW6)WoIDSOiH@hb={4OWqRN`MT&*gu`JVAKr8v-f?b?YJCxwqgewJ;;D z=L>Ociau3Ej`X*?skm>JwM9bsDRcB9%?P zs^>C<9I3Tfh=dD?&;#2XWd1OUR+<+TCtPSZu@o?yp$VPd0`IY$dyX%2DkCq^gnmdf z8(G$Ker37=cPrD61AC`@O&QtvDehQE-NfT1jfDJ_5R$=?0mI*{3>?`1L2EiI-?s$R zL5drSguTf=3;*3?w}8Z$i;VvCheIAJ&LU&a_J-uSWokvb{+X71YtPO8)$yK(zI5?t zDazo9{�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

    =A03pu?ww7d@ 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