From 8bb5edc1c9054d835ef79c9f1ab3e021b0693303 Mon Sep 17 00:00:00 2001
From: Matt Corallo <matt@bluematt.me>
Date: Sat, 26 Mar 2011 13:01:27 +0100
Subject: [PATCH] Allow UPnP mapping when USE_UPNP is defined and miniupnpc is
 installed at build time(statically linked).

Thanks joepie91 for the translation of the new copyright notices into Dutch.
Thanks sipa for the translation of the new copyright notices into French.
Thanks megu for the translation of the new copyright notices into Spanish.
Thanks justmoon/Blitzboom for the translation of the new copyright notices into German.
Thanks Joozero for the translation of the new copyright notices into Italian.
Remaining translations were provided by Google Translate.
---
 build-msw.txt                    |  25 +++++--
 build-osx.txt                    |  45 ++++++++++-
 build-unix.txt                   |  18 ++++-
 db.cpp                           |   4 +-
 init.cpp                         |  18 +++++
 locale/de/LC_MESSAGES/bitcoin.mo | Bin 16112 -> 16242 bytes
 locale/de/LC_MESSAGES/bitcoin.po |   7 +-
 locale/es/LC_MESSAGES/bitcoin.mo | Bin 15977 -> 16064 bytes
 locale/es/LC_MESSAGES/bitcoin.po |   4 +-
 locale/fr/LC_MESSAGES/bitcoin.mo | Bin 15765 -> 15859 bytes
 locale/fr/LC_MESSAGES/bitcoin.po |   4 +-
 locale/it/LC_MESSAGES/bitcoin.mo | Bin 15639 -> 15725 bytes
 locale/it/LC_MESSAGES/bitcoin.po |   6 +-
 locale/nl/LC_MESSAGES/bitcoin.mo | Bin 15505 -> 15598 bytes
 locale/nl/LC_MESSAGES/bitcoin.po |   5 +-
 locale/pt/LC_MESSAGES/bitcoin.mo | Bin 15680 -> 15767 bytes
 locale/pt/LC_MESSAGES/bitcoin.po |   5 +-
 locale/ru/LC_MESSAGES/bitcoin.mo | Bin 21624 -> 21763 bytes
 locale/ru/LC_MESSAGES/bitcoin.po |   4 +-
 main.cpp                         |   8 ++
 main.h                           |   6 ++
 makefile.mingw                   |  13 +++-
 makefile.osx                     |   7 ++
 makefile.unix                    |  15 +++-
 net.cpp                          | 124 ++++++++++++++++++++++++++++++-
 net.h                            |   1 +
 ui.cpp                           |  11 +++
 uibase.cpp                       |   5 +-
 uibase.h                         |   1 +
 uiproject.fbp                    |  58 ++++++++++++++-
 30 files changed, 362 insertions(+), 32 deletions(-)

diff --git a/build-msw.txt b/build-msw.txt
index deba805d5..a28c7ef85 100644
--- a/build-msw.txt
+++ b/build-msw.txt
@@ -3,7 +3,8 @@ Distributed under the MIT/X11 software license, see the accompanying
 file license.txt or http://www.opensource.org/licenses/mit-license.php.
 This product includes software developed by the OpenSSL Project for use in
 the OpenSSL Toolkit (http://www.openssl.org/).  This product includes
-cryptographic software written by Eric Young (eay@cryptsoft.com).
+cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
+software written by Thomas Bernard.
 
 
 WINDOWS BUILD NOTES
@@ -25,23 +26,26 @@ Dependencies
 ------------
 Libraries you need to download separately and build:
 
-                default path  download
-wxWidgets       \wxwidgets-2.9.1-mgw   http://www.wxwidgets.org/downloads/
-OpenSSL         \openssl-1.0.0c-mgw    http://www.openssl.org/source/
-Berkeley DB     \db-4.7.25.NC-mgw      http://www.oracle.com/technology/software/products/berkeley-db/index.html
-Boost           \boost-1.43.0-mgw      http://www.boost.org/users/download/
+                default path               download
+wxWidgets       \wxwidgets-2.9.1-mgw       http://www.wxwidgets.org/downloads/
+OpenSSL         \openssl-1.0.0c-mgw        http://www.openssl.org/source/
+Berkeley DB     \db-4.7.25.NC-mgw          http://www.oracle.com/technology/software/products/berkeley-db/index.html
+Boost           \boost-1.43.0-mgw          http://www.boost.org/users/download/
+miniupnpc       \upnpc-exe-win32-20110215  http://miniupnp.tuxfamily.org/files/
 
 Their licenses:
 wxWidgets      LGPL 2.1 with very liberal exceptions
 OpenSSL        Old BSD license with the problematic advertising requirement
 Berkeley DB    New BSD license with additional requirement that linked software must be free open source
 Boost          MIT-like license
+miniupnpc      New (3-clause) BSD license
 
 Versions used in this release:
 wxWidgets    2.9.1
 OpenSSL      1.0.0c
 Berkeley DB  4.7.25.NC
 Boost        1.43.0
+miniupnpc    1.5-20110215
 
 
 Notes
@@ -90,6 +94,15 @@ Note:
 building with boost 1.45.0 failed because of boost ticket 4614, 4258
 builds fine with boost 1.43.0
 
+MiniUPnPc
+---------
+Building miniupnpc failed on Windows Server 2003, thus it is expected that a binary copy will be used.
+See http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=642
+UPnP support is optional, make with USE_UPNP= to disable it.
+
+Get upnpc-exe-win32-20110215.zip and unzip it to \upnpc-exe-win32-20110215
+Get miniupnpc-1.5.20110215.tar.gz and copy *.h to \upnpc-exe-win32-20110215\miniupnpc
+
 Bitcoin
 -------
 DOS prompt:
diff --git a/build-osx.txt b/build-osx.txt
index 2f8b53321..a67a3be2e 100644
--- a/build-osx.txt
+++ b/build-osx.txt
@@ -3,7 +3,8 @@ Distributed under the MIT/X11 software license, see the accompanying
 file license.txt or http://www.opensource.org/licenses/mit-license.php.
 This product includes software developed by the OpenSSL Project for use in
 the OpenSSL Toolkit (http://www.openssl.org/).  This product includes
-cryptographic software written by Eric Young (eay@cryptsoft.com).
+cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
+software written by Thomas Bernard.
 
 
 Mac OS X build instructions
@@ -108,11 +109,51 @@ file lib/libcrypto.a
 
 output should look like this:
 
-ib/libcrypto.a: Mach-O universal binary with 2 architectures
+lib/libcrypto.a: Mach-O universal binary with 2 architectures
 lib/libcrypto.a (for architecture i386):	current ar archive random library
 lib/libcrypto.a (for architecture x86_64):	current ar archive random library
 
 
+miniupnpc
+---------
+
+The process for miniupnpc (optional) is similar to that of OpenSSL.
+
+Download from http://miniupnp.tuxfamily.org/files/.
+
+cd ~/bitcoin/deps
+tar xvf ~/Downloads/miniupnpc-1.5.tar
+mv miniupnpc-1.5 miniupnpc-1.5-x86_64
+tar xvf ~/Downloads/miniupnpc-1.5.tar
+mv miniupnpc-1.5 miniupnpc-1.5-i386
+# build x86_64 (64 bit intel) binary
+cd miniupnpc-1.5-x86_64
+export CFLAGS="-arch x86_64"
+export LDFLAGS="-arch x86_64"
+export PREFIX="/Users/macuser/bitcoin/deps"
+make && make install
+# build i386 (32 bit intel) binary
+cd miniupnpc-1.5-i386
+export CFLAGS="-arch i386"
+export LDFLAGS="-arch i386"
+export PREFIX="/Users/macuser/bitcoin/deps"
+make
+
+# combine the libs
+cd ~/bitcoin/deps
+lipo -arch i386 miniupnpc-1.5-i386/libminiupnpc.a -arch x86_64 miniupnpc-1.5-x86_64/libminiupnpc.a -o lib/libminiupnpc.a -create
+
+Verify your binaries
+
+file lib/libminiupnpc.a
+
+output should look like this:
+
+lib/libminiupnpc.a: Mach-O universal binary with 2 architectures
+lib/libminiupnpc.a (for architecture i386):	current ar archive random library
+lib/libminiupnpc.a (for architecture x86_64):	current ar archive random library
+
+
 Berkeley DB
 -----------
 
diff --git a/build-unix.txt b/build-unix.txt
index 27a457066..b959f1a2d 100644
--- a/build-unix.txt
+++ b/build-unix.txt
@@ -3,7 +3,8 @@ Distributed under the MIT/X11 software license, see the accompanying
 file license.txt or http://www.opensource.org/licenses/mit-license.php.
 This product includes software developed by the OpenSSL Project for use in
 the OpenSSL Toolkit (http://www.openssl.org/).  This product includes
-cryptographic software written by Eric Young (eay@cryptsoft.com).
+cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
+software written by Thomas Bernard.
 
 
 UNIX BUILD NOTES
@@ -36,10 +37,15 @@ You need to download wxWidgets from http://www.wxwidgets.org/downloads/
 and build it yourself.  See the build instructions and configure parameters
 below.
 
+Requires miniupnpc for UPnP port mapping.  To compile with UPnP support,
+install miniupnpc and compile after setting USE_UPNP.  It can be downloaded
+from http://miniupnp.tuxfamily.org/files/.  
+
 Licenses of statically linked libraries:
 wxWidgets      LGPL 2.1 with very liberal exceptions
 Berkeley DB    New BSD license with additional requirement that linked software must be free open source
 Boost          MIT-like license
+miniupnpc      New (3-clause) BSD license
 
 Versions used in this release:
 GCC          4.3.3
@@ -47,6 +53,7 @@ OpenSSL      0.9.8g
 wxWidgets    2.9.0
 Berkeley DB  4.7.25.NC
 Boost        1.37
+miniupnpc    1.5
 
 
 Notes
@@ -73,6 +80,15 @@ make install
 ldconfig
 
 
+miniupnpc
+---------
+tar -xzvf miniupnpc-1.5.tar.gz
+cd miniupnpc-1.5
+make
+sudo su
+make install
+
+
 Berkeley DB
 -----------
 You need Berkeley DB 4.7.  Don't use 4.8, the database/log0000* files
diff --git a/db.cpp b/db.cpp
index aaa997be2..82205363d 100644
--- a/db.cpp
+++ b/db.cpp
@@ -790,7 +790,7 @@ bool CWalletDB::LoadWallet()
                 if (strKey == "fMinimizeOnClose")   ssValue >> fMinimizeOnClose;
                 if (strKey == "fUseProxy")          ssValue >> fUseProxy;
                 if (strKey == "addrProxy")          ssValue >> addrProxy;
-
+                if (fHaveUPnP && strKey == "fUseUPnP")           ssValue >> fUseUPnP;
             }
         }
         pcursor->close();
@@ -807,6 +807,8 @@ bool CWalletDB::LoadWallet()
     printf("fMinimizeOnClose = %d\n", fMinimizeOnClose);
     printf("fUseProxy = %d\n", fUseProxy);
     printf("addrProxy = %s\n", addrProxy.ToString().c_str());
+    if (fHaveUPnP)
+        printf("fUseUPnP = %d\n", fUseUPnP);
 
 
     // Upgrade
diff --git a/init.cpp b/init.cpp
index 8c70ba2eb..903ef4c5c 100644
--- a/init.cpp
+++ b/init.cpp
@@ -157,6 +157,13 @@ bool AppInit2(int argc, char* argv[])
             "  -addnode=<ip>    \t  "   + _("Add a node to connect to\n") +
             "  -connect=<ip>    \t\t  " + _("Connect only to the specified node\n") +
             "  -nolisten        \t  "   + _("Don't accept connections from outside\n") +
+#ifdef USE_UPNP
+#if USE_UPNP
+            "  -noupnp          \t  "   + _("Don't attempt to use UPnP to map the listening port\n") +
+#else
+            "  -upnp            \t  "   + _("Attempt to use UPnP to map the listening port\n") +
+#endif
+#endif
             "  -paytxfee=<amt>  \t  "   + _("Fee per KB to add to transactions you send\n") +
 #ifdef GUI
             "  -server          \t\t  " + _("Accept command line and JSON-RPC commands\n") +
@@ -449,6 +456,17 @@ bool AppInit2(int argc, char* argv[])
             wxMessageBox(_("Warning: -paytxfee is set very high.  This is the transaction fee you will pay if you send a transaction."), "Bitcoin", wxOK | wxICON_EXCLAMATION);
     }
 
+    if (fHaveUPnP)
+    {
+#if USE_UPNP
+    if (GetBoolArg("-noupnp"))
+        fUseUPnP = false;
+#else
+    if (GetBoolArg("-upnp"))
+        fUseUPnP = true;
+#endif
+    }
+
     //
     // Create the main window and start the node
     //
diff --git a/locale/de/LC_MESSAGES/bitcoin.mo b/locale/de/LC_MESSAGES/bitcoin.mo
index eb0ca5ddf360c07a8c6e080806eb82546fe7953e..5d5ec90e2363b3229f5698b0d1ba0cf2e3fb8257 100644
GIT binary patch
delta 2378
zcmZA1e@xX?7{~F4n^)mp;Hq#%A@O>l0`!_Lqr{Y9nK~13V!>F^4K51EWgvtr@m5rd
zHFJ_{YqWmYW~H-?oQ2gNWnx)s*|Kb_k=SV2BC9{zDtmwS{r=U)c%5_jo^zh(Ip;9e
zeR=B}TRe%OB(rZb%(BdEZ_sQ!9>sC^0eW!={rDO3W8b*rzhWx=KXEd8rkF)Bh?B4j
zr(-Y9#C<peKgJ38(-ceCIU2t)uv&j0ihP_l)d^%V2Iw!v6kLY|Sd0AFc78SBi&#Y>
z$<v%bqS<CFX&tCQp1^c`4wdKu<WoDAop3Vzj)7|#7{Ofh=QtH8!esi_yZxI{6<CC-
z$XfJZEvf?dVH$Q~IrgA3{Q{N1dDMC%sK9<n&`@MokW;YqtIdirjD=W@KI}nF+=<HU
z8B}Esq85H1Rgn{@?}t$vU&4v_2P!}>=b^t(MICV>kA@;HK$WH#HK81J7iv)x8t_$Y
z!!wvenNHv(Jd1}pSZ&Z7GP@o7F@_iLBV54+(1wAqbHtfQ!U<d8G;9@81dE~q=*CRk
zi8`yjsFJ;h%Iq{M<8!EaV@Q&gn&%v0A(qi!jykd(sLH*7SK$%#vA-Rqp#_h-o<eQ(
z74GIzjiM^_;5B9ouordfKSYwUGpNijqmIJMMbdf!R6h$9=uA{%CFsSK7+`-}Lqi`%
zQ42S_{mrO_A3+7Q2X*Q8q3+56YTgj)ZhY?c&m*T~BW~YwopZ-haXjNWr~ty4(82}o
zA4*WAE<<fpgDUNM)TQh}WiW^e^d#zTeC_rxpf2+m>KR`_9+c%5m{A-nMI{tN?Yp^v
z`m2OH7?20B2v4Ch{0mk3v_fZM4r=2$sJpQc6>tUWH8i0De*jg1$5HcNMy>ZIF2v(F
z0X;?3Um5t=RUZUVkrtvBT8;X!29vQ4RgsOT47Q^-einWB8m`8}n1bF}&UgT4)6Yh|
zvSsMU+60a7xn#|#OR_TJWLS?nqc+rsUG8`fYJpv-fL=kB^bm4S?HI;!)E&QTj+0Om
zlC<qYPQ?aM^AkVNxQzgQMnyh%uGtOv5GsJTP?-**D)A|@wta~@ThBbRtvDTzuueZJ
zkxCZP(X^nBY8xuhe$>3zkxC})6B;_xAMr-~9f`#X=Q{yZp-OuX>K{lW>K(^X^BzMF
z?nb@yJ?{8^Y^47-D$_8FYn@p*5sNWH?|&JMAOkh1$l7o*K8Yl0Cs7msMlCdfr=UAB
z5mlLD)cA7b#n~Fvk!?oJdlWP9DGcIXOv883ulGMhBNNY}F4rikRO4=P-fI@7)6d1z
z7{Oa8^*?x#ehL4T#xPXkWHyN_zLb6#x8Md0^Zi9s1(O$X&oB)W+PIpA&Mc0)B->Dt
z9zvbr5bAObqrUf29^LM2%*A}vcemmUyc_lYyRimeLaq0&Yi6l4zo?YYHF3T>P>#A}
zRjAV5TiWOImnZG-tM=!44>Di_5BqDAl2#22r#_vW5{ky_L+dKy6@6vFV0z_-)|Tj|
z(2`htJlbAA&>38wp4r~o6szlqtf-IN8EfCv*cvYh`TE|?YYE&Djj!*Fu8&13W6_q9
w&_F@{^U3pko$h*(wXF>uUD5W~>`*M;(bZVj9NX9ty1z9Z`rjr)vkNEx2irpwiU0rr

delta 2262
zcmXZd4@^~M7{~GFLLi<CSLC01)f7<ST10~U(TuGo4QlDsEpuil85`@*(rIpp9@JTL
zZn2;m3p25;G!|1YPF&`6i4)hR#e|%ern96-T${9|q2Hh9Y|PI&?>+DPKF{+$=lIX&
z+nWy5$GEKlvrDOF<IHSBx>-Cn;v@J8#$hW4u?_jNZ~XD^F_HToOu;@}g#$PiU&t_<
zj4Ln`H{ulh3`gO28Rl9)7u^gj)DJ{44gW?3k}}?G3{Jq&7{OdDME>j*{;9$B_%exH
zMg>w7He*SvKm}5TAzXt>v;ikzOW5@?JjB2Z2D<Q3yn?F02qs|cMDIQkNzTTiDw2aS
zScuxV7?ZFP7vNG<reC5G=s>O4g$nGX%Y`EAMNYx4VKEM41oI}DIk*%xu^N@x8>q@`
zMJ?Qfs>m+X^M_FzpTJ~1g9`AX|N9^+LHA!S6!AS&X&eqr6S7c8P>5P^F7C&2JdZ<o
z22W6~UfjXKYJ(M1&7Q+|@O3<b-8h*B(1zDhM|=}W*tMiAFY`<!X)8hnun5zz8g*71
zP$l~imDv}ljN4K3P9ZtiRn!swkI&$wZ12ckMOAJc#^O$N*xwqt(1M@(?nQ0%HNF)v
zJBF&z%;{!xuoTtxYmp?(MP=TGI*LxzddL0y)2KktqY@jyIQ$RCu>Zr()5K&tPz#4q
z_c^GAXQ2X`k7~M?P`y%(dhT6RZ#4M#JCM_{X8-;ms>i;?csz>=;74?|aKHb<0IJlt
zQ5!iqUTHH>O<91-pcWNq9jZ6p_wSof8-0#C;|}BnvR))vyM;<9E!RsZCztxGgmV~>
z%W)=dLS?uQRr+J7iDyw8|AOj`KT!eS$A{mEh!=PSRe>VZ{3WRMR^d~)9!KH92=!M6
zNBsv*p(6bmRe=%zL5HXkxKBYf+eB35N>CeDqJztDA+E;J*y)cS$H%$vLA_<esP#kc
zW0Z*|3!|E(ho_X`HPjgmp&q>Bj|cL+1wyERW}qsQkMyZMi*I9%KYjs~&`l&43q3(!
zVJT|9yON9f1W=2Lyd$4?9!F3C6g=r=T8b*!^T=AZ7<IM{xEWjVh!UCQCGt~&cQk*Y
zjw+5t6=)bWFAu4tYZY85<JDM%Ymiv%D^vh|=-_442jmabdpwAm7dzYg1Sg|D&8evI
z2-adTD$_lvb@pR2c4DgD|86cc@ggd+AuL0OXh_N`Q4{M>3vEZ0^aE56bo%3`kr&6#
zp^j`AH7|x&Cl!-09WyZrOE9SSznqIST!d<_8dRyaVmy9~A>4)MupQ@7>Ww94H@NRA
z<(0+Ve4Uh8<6PFnJy?&wV;0Z9M(eAB@6F@CX55LcHty#_%{Pc@lDMb6Nb^yzS2?P=
zs!-2wLv?ox>QlQH_1sCEf|pS5|6N>;Qz@r1ulH?2&EHqX<C=KLANT>)WPPa8{#w@T
v1Q!H4nwJH$)eH7wbW5-*5NMD7miSRZv@N|N)I5^?X0&eF?u2M%UL@rK$1(N5

diff --git a/locale/de/LC_MESSAGES/bitcoin.po b/locale/de/LC_MESSAGES/bitcoin.po
index 058a3ce9b..33b32d17e 100644
--- a/locale/de/LC_MESSAGES/bitcoin.po
+++ b/locale/de/LC_MESSAGES/bitcoin.po
@@ -1,9 +1,11 @@
 # DataWraith <DataWraith@web.de>, 2010.
 msgid ""
 msgstr ""
+"Project-Id-Version: \n"
 "POT-Creation-Date: 2010-05-26 22:02-0000\n"
 "PO-Revision-Date: 2010-06-03 13:11+0200\n"
 "Last-Translator: DataWraith\n"
+"Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -707,7 +709,7 @@ msgid ""
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Copyright (c) 2009-2010 Bitcoin Developers\n"
 "\n"
@@ -718,7 +720,8 @@ msgstr ""
 "\n"
 "Dieses Produkt enthält Software, die vom OpenSSL-Projekt zur Nutzung im\n"
 "OpenSSL Toolkit (http://www.openssl.org/) geschrieben wurde sowie\n"
-"kryptographische Software von Eric Young (eay@cryptsoft.com)."
+"kryptographische Software von Eric Young (eay@cryptsoft.com)\n"
+"und UPnP-Software, entwickelt von Thomas Bernard."
 
 #: ../../../uibase.cpp:619
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
diff --git a/locale/es/LC_MESSAGES/bitcoin.mo b/locale/es/LC_MESSAGES/bitcoin.mo
index 0677b6b5ca68014c23d52f50fea1ac2c14cb602c..234acbd011a6f04047117c236f18a12dc2363e5f 100644
GIT binary patch
delta 2442
zcmZA2drZ}39LMqJ;1LdRxWr8q%%7A90ihy<7_wNh8C_UODw97>Tn1KL4j5z8{gPUl
zNm)3e$W}{T7Meus0<_LbrdzJss7xyhmM+wqwpF8M>;38X`%C|MJ<snvm+$j^zK_go
z3vEBTH_SfnF(x6|n0dySGbzS|<L~IjS)7aiVl;Xg#84BD`ksk?%*6y;g#o-1ufrp_
z5JR{a&*CC9sm4Trm1=BribfV6?$HnPjkyu3P=Rd4INXMjxEr&uADLo4#zy=WH*%1&
z1<pYR(wu;fBC(rKQ30L7SiFS9V*W|9|KHOjraLFfLk%dvOf1Liu^E+-o#?|}x8IM-
z$RH|1!x)Aip)wM}7@WkraSC<vWu!$1Dz<58!E#iDm8bw}F%ciaB779H@qLWKDb&16
zs1yEy%9NjIwQxErLz$@gWvF?NU@`7M1!9lVh^O%hD&k4h!1JgRUqPMVPgKghT%g9M
zqpm0qHGU-?!ZQ34XYd4$TC9nWQ2<(hLxwRGxCI;7-we~3;KRHdoDF|K)xb0=0}*s&
z8ggwW9~D3)CgEn}`b|43gHNMQwhtBH0o1%9B>UzBau#zAZ)1PsUE<tf1uB)BaSnE%
zPS%B5u*Y>5YNO}zaf)s~DxmD8PO3{#8EZ!cW}|B4MO2Nvjk=;S3}=5cK|>3kMBUk0
zoQr><p4U~>gs3d%&XZ96g?KYAMa{n-6-bk7H!6@_sDlik4_`-;Zidi~pz#F_4LF59
zoJKERL@jt3l}b;xG2Dvrp#sQ7T|p75$SP6A+k*=HIn=yYQ2QKke?N>YX~wh3|4JI?
z_+a6Jo1B!bMnztYTCfgz+9rs)%U;aKL#O~xqsCo8y@FX(sv~op@yV{sQNQ1XTE8}j
z{PS|mgM3g5pTZS5==MKHi~dg-iJn}iMxs%#Ap@1l67*p$>ZFZszXf%rU8o}7gW6|5
zYQ6Vt8kICcs0I9a&JW4BivA*0$~Pe|%529N+=t^7-&?4nZ6Y1o*hbaPlc?19Vl?hW
z1@Nl-{asY%>@gau(vuj(^QZ+kEpwhp8|sA5qJ{6EHk!nr@jG0Lq2<&AhLb+kP65Va
zG3sFJQ0v@_T7N6nvcK6)qlS}QK)uVg6oiVZ9u-)(+wVgy_y(#LK19{RSEvmxV*<`%
z7WxaFKRSh|RBu3y3!pNy1=IEZ+uZ@rU>H9PU@{J(ifR}uFoaqlf>Mvdc+|pa7>7$x
z;|o#qZ^zYGgT!R|QS&}St@91e*ZcpGh9=Is1AMnQCr`uzzUQHS51?wI4Yk0VsEmxb
z9z)&r*QhI+a=*`DCjGxL2^aGRKp7}P+fSpE#tV1{p2le$#c_6%T_w()t>8Gf(qD&-
z_ym4{zoHgA$dCMIXbz*UXcD#IZ>X!CQ|eq<2I^|pl#+jo#zsD*U^nUndr(F6vODlK
zwCInyevj4kucA_Y-x}vRHlyb6Kpm{t?Z1S|$U)TeJA#xP|N45O%RN<n6Vb;#J4br`
zbso?9zAG^o`-)@zBfrERi^#PCE%jD)RZErC(c0MA6$mz1UBTwg&W0B2fo^MkQ|rTl
m4y(K&*b)fVj|`>MrRG@O*NkuIsAEQ})z%ukc0yc!P27J0+#VMI

delta 2351
zcmXZddrX#P7{~GJ<sh#wC*c(kG<hL24jE7hVxW0|rmWDZ*hnlA*mOFltEC(Cn8D_B
zdFW*_r++xybS*QLaN#=ehjh@Hoh+J)wz-VC%tPxBwXN^3`{AF@eLv5AxbEw|o|nOn
z(e~rrG2Z@wS$c+9mYE&PG#i6oVjP~wc>DnqaTpnD*Zt@BF^Rq=r$aI}V+7N1D?WnV
zn1?4Z7k|P8{5#7$`-R3s9@Oi_1hXkPCEEqE08{BN!m;=&7T_9Ws70|2kK#)lB%I?8
zvUZ{is1u3NdQbr!!xS7uwzLZqJu~Lo4Ib#Efk|#a0#2o$iIcG!m5~(~#Ad(029=TZ
zs0?*s4DLZ?q#Kj*2)>B@sFTN$79A+bqoD;eQ4!{%A}qr&K8NMF6bo?&hOi$sZxD6D
zZ%~=KhFbVGDns{C^TV7%^A_R^T!sq7+eu>_jlHOdkDvygMxA&Fb%L{~lntZC-$vC+
zfD6_5Aij@b{0=|EuW@I@>_=Qq0cic=e6w1dg{|ywT{MPxa1*uRiAP-xoI+*blJ8&0
zEm<rDq5yJnJeH!aum+XES5PP0fC_LkYTgzk`*r|{-3D+D``a)L-C@pSE|sMiOaFP)
z$?8xGHu$bYZPbRH6x}9NK>t!ON_EQPE@L&Qz?PuaUx%uZcTiWf3&*g(?W3Uu52Ehu
zB*x=8)aUg*YQhNW&j0ZHckoI24^Z=q3S1ynzAvDzZYAm<YcYs#BFVNb=q1oNL_-5U
zz#yK&IQ#;2vNNbuUPNxeE~5fcMd}JdsFUZSinjq3cq?k&M$|r={r7JpOW5v0^8XBt
z0Uku~7Aj?_MK1C})Pfbrr){;UyKKf1>_7$hA!^*`sITBWD%Dp|<41kti{1M?RA$PG
z$v<C+&E|np*o05vdcWU`5&9qFSiFe(+^(X&hJR40OnJg(t_*e3nSOsR>PqWS#oU70
zXA^3@?H-Lf8r>MgYyOK-tfYSrmGWuR+)w9XROB0Q55?!90!kwt+PDB!JEf@9mt!JU
zqXJmqKW{>1&TFBel)r%+aTjXAm{RwdWTQ?v10(n{YNK|%j-6P8tIN!Y)jmSi&Se~j
zzo8Cx7q!j<)cTW2bCbUR=`<QSNfh;6-g?><RWgO4!17T=R)tz{F{&0`L)~o$YJ+{4
zj=iYj>c>1BL8aQJyKx~@X2Lj0-+vAb4XD5voP!xSA5~P1Sc|Js8y&|G4xr|p!BqSf
zHGTv$@K1aeW6SOTBA<<#_d04F53}|CZ=<1!z5aj`dO`nFBpLRz|2|aVY9br8z!FqO
zR`{+%-Su0jE86Zqe-Ee9KZN7)EGh$6(MzK7JB=Q^hri+u{zII`)=Fn&rn|FCSjF?Z
z*oGw>?-SgMTCkp%{1{pT=3qN&!yeSt9z|W*In)7fRFVG(jX<^AARl#tN>mZmpaw3)
z2)6ik;WGM%QK^22S(rY{%`ZY7tlaO<LuI5M({MRba{NWNCe95kjSeM#6|lZ{lU4-+
b+oE@pZw40iT}io+&^Mg9YC>OINn`4Nv9k9)

diff --git a/locale/es/LC_MESSAGES/bitcoin.po b/locale/es/LC_MESSAGES/bitcoin.po
index d5ad2ee91..0617ab4b4 100644
--- a/locale/es/LC_MESSAGES/bitcoin.po
+++ b/locale/es/LC_MESSAGES/bitcoin.po
@@ -734,7 +734,7 @@ msgid ""
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Copyright (c) 2009-2010 Bitcoin Developers\n"
 "\n"
@@ -745,7 +745,7 @@ msgstr ""
 "\n"
 "Este producto incluye software desarrollado por OpenSSL Project para su uso en el\n"
 "OpenSSL Toolkit (http://www.openssl.org/) y software criptografico escrito por \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) y UPnP software escrito por Thomas Bernard."
 
 #: ../../../uibase.cpp:613
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
diff --git a/locale/fr/LC_MESSAGES/bitcoin.mo b/locale/fr/LC_MESSAGES/bitcoin.mo
index 6e97eff7d121a9f9aff8d2dfd3d04671ff1c94c5..f4d669b4c01b4cda7742b30dc9737d88b8befe43 100644
GIT binary patch
delta 2316
zcmY+_e@vBC9LMo5=oOHkf)|idE<pk+_yfT-aas#?i>?;A=304`3$g%}%PNEM<R7fH
zGFP|KSz2pzjS6hiQrjGvV_K||K_x|zBiBq@zs8oMW$zEq^H19yuXE0Q&N<)j_nhbQ
zO50y;@3+S~=VQzUGR(5fEb2F#f$!pUJb^wuiHUdy`Pir4_!uV9zk=!bCx+0MX*LV%
zaW3w~JUocGcpBqyB-0%GhQ?(Eg8G6e3NRtt4WtxP>6c>y-h)LLL_YQ;f9mi>e27H;
zMg_7t$BZSd78OVvrr>^5qOao|{2<41GyH;q`3wx>Je)*TAm<jdc+5rhi;yI(1XYo{
zF&2ZUjqk@~4C8$mL1p?0DuK^X>kXp<``)3U$bLgk!T!YxOuyBv7&qcfjG!iVpfY;~
zRhgrxg?msHIfZ(D5Vi3rrr}Sh04Kcf<2e^4<YdrL#M!9Q%tuXFgSrbr)Ph^E3qyDj
z6DiXL9K|6##=&ZXy#cc-d>+F%g#EaZ3!n{eVgXLSZ7N~Mirt1)BFWokQ~*sl8#_>E
z6-AY-8<klf>iP3XQZ|k{I?Fd(2f3)D3ZW|Y1Wv;jPzk++aoj&UGSwghoZ0|GT&6zM
z(d6B3wj7tB0tusTv4dLp4b*cVq5|vp{2X<pU!elIiaxxFIx-&@E{^>zm4*hgJoB)K
z{z6nGYET=5y?!g|$U0G(L_Lq<0{UHEe;D<8j-l?(byNTosK6)D(Lj2k89`Y#Dv&j(
zOgG@YxE*!bj-zgUAI9MTYT+SNfTLK9*N|&sezMRJm7%^5qSko?byUqo)L*6C&%h$=
zMrHghD#L522{%w1C$PHigdcV03s4KMM}5Bqxdyf!^;{?F2o9qX?7=u3M(s0NO#OB1
ze`SD+X+G+w2MRqGV?6y8sEVvbm2N94usx{f_hA)2>-8^sUP2}IBT{WkUg#dlavbB1
zt#fFo6nQ1?LTgd4$p)N()u_yBP^H|43aB0Rx^<!gKZI@g5$boKqSW0uh)d|VBOmML
zkLHhJE&(`KXl!G^$5XoHb*KPdLuL9VCg4d_3D2T7_!%EVTWWTIg&I)-{j<!iXlj|;
zFZ5i6{HR(rYW_}SUB~v(P-&j?JmG#}BdAEnaT;DnU8>(v6-go5Sj<7aUUN|al;Hzd
zg*uwUs07|Zy$$c7Uh~tKuJ?a{hBEyDb%qnjaoOr}_j1*v7J3|YS311$S5XTeLtWzI
zn1NrS-l}obMptn*PNEV@t8nMd!CCBY`84#CSdPkID{6rzRKyYN!KX2cQZHU%_BH+W
zcd!Z0Tj|b=UBz7beyqpc_zPY_9qG9{-QSf9m_z>$bd*ujYB%Eo%%mSgWm1QFot{EX
zID)FgDX;%Aa_sgUsshQC?*IQ1)Vc@Ik8h*qok1O4zt<nE<n7fLBMhiim!mgk24mid
zZcNPgb<?-rJ&BLT#8meVCcPY=5C}Eb1|HnhyeYcW?@y`OxvMD@3EUNKX%4m2_J;ir
vXDthaTLZP>NT6|7eZ!81aARcZ@xZyR9W4#5k-+XyOW^<0N_)>P8czEUr3?$>

delta 2236
zcmXZceP~s69LMqRy>s5X2d7^5;KSV1>vUVq(%Rb85lXp4=ST~h8hVv^At{>vRX01S
zSou`gwM0ZkQ8q*8)oZ9|%n+qfv22zO)TqE(Ng~6bvWNF)zXM~h^ZVU%e!uU-@0|X`
zhl$i1L2pmM?28d*MP?Q+FdK{>4#KxF6Srax?m+%*uRov0T*hZHf|oIdy*M0a6q=32
zMjVf;u@tvs2#*z-XV<v+go!5oKok@4CMuBNNVB1sg;_WX%Q1@l*?j)3!WMjiM7~4?
zQa0L*C9M_}NE7B^43+4sI11k#?YRsOGBJsXb}YeeR0V#=F!uZ72S{=j7~?8Zgh9qp
z)W(x=2-e{OY(QoD5h{UwsP)=Wft~QUP-GX8F4#9%gSW8)#}=DqV*~2Jg{aJypenNl
zweSX1MYf^tKaAQqg~RX+D!?xP_Zz4Ly`Q;I#CK4o`3v<xgvO}_QPhH!cm%8QYy2KR
z#}wu2!PjW4HfS7YHV2nu3%21U9Kr$6hCQejUq=%5>>qbw!zY-Lw3VR(n1%Vc5Y?+V
zs$}a?nI%#8??Ga=)2P;6#aY;oYE^aARcsz+FkXR5XcdOo-&zMQ$N&d6z*v9{P_4O7
zxR2wYG8af4>J%?RwPG#mzAdQ0cKaScwe$!okWVoadr&Rw#Sr`3PyWPjzW1@5`TtOr
zDCcBqgF4js8C1)fQJKVj*I*^%b^f>=^?IgJXXgTDVizj#ZuB&9n+x``JE+JalU=68
zIG=G1>acA@eFu^l!u_a)+fV_fumU@g<6(WM7KO-0zeiE)OhdJ5b~*J|DPv4LjO$Su
zcAzrsL_P2oYU7)zGtr0Y`M;=z$FQq@uSD8zHK_ZVQ7w1{mEZ;pVLNJ{R0Z|dssD@#
z&Y|`CH~j6JK|RCF=b#Q@KB{z6P=P&-TJU+CgD?8yL%v5*iJd}<Yd@e`5`KuUA7`w<
z<3gpl$X#0KN7QTbD-OoHsLcLAl`>f60xChhZj(`gPsao<MSTaZBahfUd=yKj5HvRN
zPYJz=r3B!;!^LtY+8%MIJj~q+pdOX!Y|O%DR0&t2HrR}-@gTm>LU~hNK>Mb-ik?6P
z*yVcz`FPr0)brVo4Xo=~lna%n%J(_<gC$UrZo&+F4|S+MKvg7#K|GIoy*g1Fev6Cn
z7gR-O^6n~ur!W^6pkDJO7}5LxG8fA9EmRM8A#Ji-n1@-_ZlRH=voa1fUyE9}0d<I<
z#Sz$wdaE{}Hrk5$xEGbsNz`-a^gH|8B`)+yyoSo)0cwGvH7?=;>|i_rizxLK{El(o
z6MQ@HLalr5P@UOg#-}lkk?EWxd>z%&mKpB5@)D{QN%WLa2N%ltG8W=JR3_n>?sY0g
zJ@6!|q>KIW3Z(6}4po8U7{hMVx>M_2Yv!V!TZU>~+#j#4r;z#~!Gub+G5Ke9Q{Y%~
hZcbDMu*P(2&ayz@<Mfr>o#FJ3f~7_2(yFV&{s&<0?S%jU

diff --git a/locale/fr/LC_MESSAGES/bitcoin.po b/locale/fr/LC_MESSAGES/bitcoin.po
index 5bc28575e..b173364c0 100644
--- a/locale/fr/LC_MESSAGES/bitcoin.po
+++ b/locale/fr/LC_MESSAGES/bitcoin.po
@@ -739,7 +739,7 @@ msgid ""
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Copyright (c) 2009-2010 Bitcoin Developers\n"
 "\n"
@@ -750,7 +750,7 @@ msgstr ""
 "\n"
 "Ce produit comprend des composants logiciels développés pour le Projet OpenSSL \n"
 "OpenSSL Toolkit (http://www.openssl.org/) ainsi que des composants cryptographiques \n"
-"écrits par Eric Young (eay@cryptsoft.com)."
+"écrits par Eric Young (eay@cryptsoft.com) et des logiciels UPnP écrits par Thomas Bernard.."
 
 #: ../../../uibase.cpp:613
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
diff --git a/locale/it/LC_MESSAGES/bitcoin.mo b/locale/it/LC_MESSAGES/bitcoin.mo
index 706386487fe981fe2368ac1ac102cea35d211171..93470180374ed067441d74f63f21ccd783d23bc4 100644
GIT binary patch
delta 2324
zcmZA2drZ}39LMo56qmz6Amnh7vXdkpNP})DkS+|VMhGm?#I3U<mvRf3aF~~fGe;}6
zjjfTnwlKq1b2MvXE{NeD-H^7(>5Ns2#j+^V%C0Nh>iyw4f3-1R&-1%H&-e2Dj)(VN
z-uqThY-BRV?2E-_S!Q<3XBLm+crCt*aX5)y{22MO&!X3V!er*ZV>-rWnuXAZ*WoU_
z0T19!_&VN*Q<#9?XIjK&7+m2(t!@y-&6tzz0$GQt%r~G18!&)D<j?l=Pb<EH50gk@
zjteBT#Ec~^j0)sgOu<1^qHiFN+WSi)F2h+a<a6NyE=6yyt3V+pGB1kG*Ptq}7FCgl
zFcyQT3T($k*o_;p50&XzR05x)*1LcT>~e&GBKsHVf~8z<R)Wj00JmZi_Mu+vM`d;x
zRhbj0g-@X>avJsg9BSiBn1;Wh0*s>{x}S||aU_p{A`YNRQ-XS7BkC*!Q7^ROaomY#
zFqbl&#!Gk(PtsUzaKLX?g)d<XevKdC0~`Qtn7YihI0H#IVx?|iHAoRGgbLtE%)owB
zua2QgHi63Q6I8}CsP}$GlC<PJ*TMp<V17TUWd~7}JBruf+nB`uHqJl`ei(Hcwb7^8
z%c1%X6~Lp*%~s<+RK><n0ZgJc_zHC<{y?=VmII~Mcv0*5Pyw#Mc&x-!_P1&VdT<-+
z#g^#29rZQrMlC#uIxELf3yz|m{|MEhbJ6)M60^<YLI5k=eILeg-H)npK1Q_QY6kIG
zg|yLXP#d<PTCfLKVm~VL@#y_2Q~>8u@6Sf>e}fAASETKh9dPq9)S(Tc_U#Bze{I;y
z1$hK-!BeORFQPWQih9vg-~!7*eWuHi^JtZ*1-GLru@hD59@G!ii>Sl-8mcm5=)o@w
zsJ}`%&jo#cf8i=zROlWk#{}jZFcE7|J>QIaz614sA12`;tjD9M=YNS_zly40JlUxt
zcc8wuh6saqIAm?eZ;u7oT^rtu`dq3}rL99RZb7xA3DwKpsLXm%hx9po9EVXGWZ&vC
zE=Iaxn~?KqJ*WU9Lkv6wFpRZaI9Wt=7+359D8&@!>u{k0$lA6URf(rCjDr|ro%GvW
zK;he6LeHQ+yCGEIW2n|lJ0tc317(uPt`xyiP(3QcBzz?54pc?Ls7&{uDl&kv_%iA<
z9KtjlMYUoIRngo#T}$&&iLAm5eg7p47IUE*wLlQpV>c?(QB)w`qF%g$%HVHQWwP#a
z3+JP*7o!ec4eI$uR6tGW!!RoFgP6en_5uSva0GR#-^6sBMpb4Gb^7P=J^T}6DD^o1
zQOq!(;8#f=TH{LIR%-Sj^Zob)p2r`tzRdmd-Ba!otHg*h?_{7JJ&pPd2QdRDP>1L&
z=HkWZJpOK%!BW(Fg{ZSofdOnpKlb4kd==HQe^Ae5u66GhttDTTwww#H3RSXtR0SFb
zJl@)v;eoB*ytot0ZDgM}7!y-7GMD^(qQ@U<Z}vCTwbu<)_<Sjw9_wfeb@|t~bhd{&
rn@75R+p-G%EerSkT^+6AU7^kve^*oIj&Qic-yHJ)@A)$;?@Rj+9=QY-

delta 2258
zcmXZceN0t#9LMqR<w3ajf*_zgh#+8cuLUXyrPvIei3>H|7`Zg&ZR%RJWzlqKo$9}4
z4i$Tts2kO6#(W5L(jW&JiEU1&O$OBvA2unm{zzF;uJ^}tHpc7xe&?Lu@B8pOceLTt
zh7&uYoMxZdFR5nfX0~;**#vCF82kidu^EHdg8bQ0Z~iPMFg}kdcojF`2u{N1rkG8`
z^_Yj-F&7VF9DX;&9P8(zmx)!nK@>A^6ctEHhFKD3q94N;!cyeV*70u>zKt)C$gikC
z%CgK@(yCB_)Zs+jf=cu~%*4;K95=%@CT23xfjKyYs=z~x$LOi<H~~q{CZQ@)h*4OI
z+PEAOaXGHUT2!WoQ3)JFt=EAHtjFO(kzGN$VAru6?_(H?vdscmi+VAF%IsBCWj;VH
zycboG1E}Xup*HTuWb8u)IN;sCgG$gD<3bVtiz-ckhUtZTR0~Q`3ogJTxD+qppV)`p
zl<Nw9NMp6Z`srrR;v2XTPh&4m;{a&G8>klFMiO=`G2hKR4@ug}PywvQG>o8nwG~ye
zJ*dpSKxN#DdhZ7$2fK!9;eS|(*#&OPUP4u_9;0z52H4*kxzK|9JwHcn^fkWgGwVVH
zQ1O`AlUReQ*e+B6&8RbR5_KkiLbd8Dsx?EX^+r$uj-x7@!GTL+f6L`U56(utINuvD
zMwO}>weS|yS$PMw;76$E520H0l{aofVzy3v6o7Ys1Y?>18&%;4=xD)Up&L;a(niZe
zZCHtF!3ul=BdE+9z554I0UW^z*yi2;78Uq8q|J868&3?mhqe^8?~)Mp*M@7DkZ<DS
zxEB@S8PtXsQK$VkRA8g19{+=!L(2%e3znlQu@qJ6=TSdUucHoU1FAB+(2w7QslQ6u
z$%H<?3s{81-UCUq+_RC1@yzF;dOi#F{1VjrwHUxxa5dJWp8wICzlf^fAgUs9WT~$$
z>~OK0Lsp6W*4Sm9io;RV=W-8K+6So2eMG00B%*qmkIF2Bj}9rm#<&Kx!S|?)2azt=
zL*)F~%wjh{r<w~t0o0&=g6n4U&Es)Y05?#*x{b<c3|Yf$j$4UhtY^3kH?U3@DxjPa
zH=((x&#oF3_{*r)Y;$$&V=k0Q8&U-8Kt+5L0~k*<G8Gk24l2_ER7IY~C|r*E46892
zBdAuqg{o*Ts^=F_iS%QdzW-}nq%v_2wSa$~*<#E^Wg0;Rup9MaGb)2GQI+XIEquwF
zAH)R4W2on2%G`hwQS0ZR0-uL*>~GI-p@^$cr+O`>;5Jlcc489l!L!(cK1#i@oGch`
z=2uBBdde+%`h2RuxCFPOgLiQpqw)6zZen-QQRdkdZja`mKEq|0hMQ4`Xa`Qkect#4
zDuX^$Z+}L86@Op|V-}iC$0Dr7m6(Z#QO|Xw-XB;<zAEi4CgfkJl8vJ(5YyxjuJRpg
oS{p1-A#6qa`@uS&ueE(RVPAZE%j6f+eZ@@&Dl*y^6%{A{52^6*IRF3v

diff --git a/locale/it/LC_MESSAGES/bitcoin.po b/locale/it/LC_MESSAGES/bitcoin.po
index 2b6f45deb..cf13239a1 100644
--- a/locale/it/LC_MESSAGES/bitcoin.po
+++ b/locale/it/LC_MESSAGES/bitcoin.po
@@ -705,7 +705,7 @@ msgid ""
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Copyright (c) 2009-2010 Bitcoin Developers\n"
 "\n"
@@ -714,9 +714,9 @@ msgstr ""
 "Distribuito sotto la licenza software MIT/X11, guarda il file license.txt\n"
 "incluso oppure su http://www.opensource.org/licenses/mit-license.php.\n"
 "\n"
-"Questo prodoto include software sviluppato dal progetto OpenSSL per\n"
+"Questo prodotto include software sviluppato dal progetto OpenSSL per\n"
 "l'uso del (http://www.openssl.org/) e il software criptografico scritto\n"
-"da Eric Young (eay@cryptsoft.com)."
+"da Eric Young (eay@cryptsoft.com) e UPnP software scritto da Thomas Bernard."
 
 #: ../../../uibase.cpp:619
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
diff --git a/locale/nl/LC_MESSAGES/bitcoin.mo b/locale/nl/LC_MESSAGES/bitcoin.mo
index 8b1e6a50f6863172e58e2d2eae44b7c07b25b11c..11a547e411c66c81576f0e073cc4fbe78827d8b4 100644
GIT binary patch
delta 2339
zcmZA2eN0t#9LMqRr9ikK5Ar0Wa(OZ+3JK6MY8Z}jw+h^dxy1^IOGfLWmrDe0-9M^{
zwp<SVr;%F}rj^PfE&nisd|)`24yPu$a!s3IxiXzrTfIL!=bze`uXBFq{C>ah!|z<T
z^!?g58jgw_^O#Mfnq`{VrgXCy9L76w7e?bAjK|NAKl{oZKZ6O}e~0t%3bx|kn1at_
zm@UM$n2Vb+2S;%Zp3Ja_o#o;j1NC}96a{GWoj?jPiQ5v4!zwJoTIA2V_@@I0a5afs
zLj_WoZN`%JG%An~CgSU;L<cboKhBOg86II^F$2eO5&n*<K+0Wav6z9n&q0#20#rqo
zV-(h+HumFOY{n<C6P4)!R089u^^T(gJ00OdkzGc*U^j3n#w{=_#%lCpCu(93DzjHn
zmDz?`cm!3Ey{PvmQ5#QVGR~j^yy`yx2bEC7OM?_~5~?%{Q4=arXQ39g;1jqDSK~>H
zqD+%Gjng<pW3|CrA9L_E4B!+V!6h63ZFmz4@Gm6ci23rI%qx)Otqv7HJEma|s#lv(
zCHnxC*?v^UU!vxnMUt}Xs1_#Yo2|f7RLj<(Dz^de!0qT|e;ejP3+{H^huY{MwtCFI
zLA9u?&}mIID!^V;00XG^-$R{=F;uG#p(-+onm>c8=+CIu{f1ulHxDOIB~Eb7L?8Eg
zsEuk+3pb)RYC&xfLbYx^YW_x4CAOkI%Td>ZsQ0HZ8mCbKe2WncT;W2cyM~&WaJO^#
zvQUSy2DMQ?YNG+vf`jh;5GunD@gCfds?0@Hum40H?wlegp>ot&TUkW?^<pyv4`2^!
zp`EUuqc%Q@3hXrMOk6|-d=r&PDxZqp%SSC-hI-$RdftTOW*w-6-@-T?ET;Y{@w*I^
z;2xZVGp;{kEcdg>PlEk{Iz&mNsSOvST2q0KVl~EL#2w#=d@!~Rb%@7Mft|q1oUQYE
zQ45Z<dkmgKMfknzB~0Lc7M1xe^y1w6obmanGf{|PT!uRBpCC)y1m2IoAX9AtH`>RK
zmoU=6MGY5AOU-DL^`in9MwM<SD#I^u2_8m1b-RJDU^;{Q$Ye7rkd^dNfi__hzUbbs
zM+Npas**d9eIho_#k~w1L-pu7s^r<_&c^wuAC6Mg!WF0%`7sJtp-S6`3N(oI*pJF|
z3bo!TR3*=&0{sco^!?xFB9(!}3bRKr50z;Ps?=LhJsm>zat9{jVbp@tn2SHS<588)
zcnYR5z6h0hxjXJht=EL9`u<zENX9VgYj^_{`F7L>Be)koMfI$WZ}KYEEpx1V(3zk2
zkn@XIjy*i@!D*aDt#@cSUj`mURp1szbojgvJ3Y-s^=t(ykX5M9tP|(q22?5EL7jp3
zF$=%OBD{cw7*pl^w_JkSXb@H55!CzxsLD=MarQNEf&oQ%233g*gSWl)o{t9o@%hoa
zxwo-(@y~iZkB^;7cr&)d*BWg1J=G9w@O5`}gnL^<0bg(Eg>X0!^tJW*8rO8a)Y|QP
sED#E|hT6xP(_=ErihVr$?~LaI-OsHF1zrvWz3p9Hq5n^7D=AI>7b;v9ApigX

delta 2244
zcmXZde@Inl9LMqR)vjKzW;SnWH*e*tb#peYT&q?_RMMqL*cb&_VWc;Mfen+S;xr3#
z#$wKGtdwG`uwPEYWMjkGFU$I)+A3SYMo<xy8w_R5{_6eV9FShmdCob{^ZoIh+dp+p
zb)7W{PK(d%Ql?p!nQa_rmV~u93iqHN>oFA@kU#s%n?H?dTzBFd*n{PG8^_|D@n#WR
zj=8uQC*yuh#^dA7vHJ|pGEu4<L@^ETq5>JgF=*LlDUg9t3?qNGjDISz4A+s!WmF(J
zVKbJr0#qO+n2zg^B`uB<&<Q(khKHGWi-}`639q6m@Dv01+`Aq^lC%F&6-l3HmVjZ@
z#t|Hig}4TbQJH>@O5khMddE<Kopcx|vY(MI*mazTf8tCG<(LJr81-TdmDvZV%2c5i
zu0vI1AL{v5)W&U?fgPv-FL?Lwpb~WcVxWj0qe}BH>V*^<rxt`!3+Cb}%*Wd}fc@A;
zx$a;!jnxLrr%-NOixqej`*0KoKpWmbwfGj2uw%pSzyfcYk+kKY0+^2>jG=n95mmCC
zsLUEs8Gng-?+g;VT|>3-2`<INscy?wpenZ>6Y&!avcJ_b(1M?Oeumnp3Cn$E-=kXO
zpYFCMgbHvKDu6Q7^E*&y;sB~u&8UjBqTcU7RrFU>>-sRr{&r6TeB}88r*QorYNISp
zrWTH(HY!4GP=ab*DeC<Vs7h=_eU|$@n^4amML)Ko0%%7^6Fm%6y342+AE6H4->Acw
zHN)L#4Qit@)PiyEx*C<?F3iJ5RAstRy}pS$+(W2@lB4cf%Z^fiJy^)Z9E_nB+U<D|
zmEjRoU?)*$q8k<P4OAx2P|v+Y9b!Mx>-h-kejbvGEkq?;jwu+QN&OYkb|&(%9+R=d
z^G6JD-HUwk){i<wk5L=GLbWD9+Qk^c6#Ni1zXADBtO|9A51<134!b#9KR67u;1+gI
z!d<8c>pdGVjq5|G%v&&so!<N}s58-zHTV$q164Z9ZAAsX!}S-)E$c<?Gl);o8Dg-E
z!2_P6Jr*f&16YA7-6~Wj>#-2yI2pgio%j<fliA!<AkSvIfsWu9uG8tO0-uBmY%Z#j
zF(gsPwlH{`iEXGJeS<1_4{GD9s2`5sQ48HiwP+9%a2QqEm#F8*&UODUiJ&t57`0vv
zrr{n`pp6*P_utAOlZkV<82eC}CKkD+E<*Km396Sd)FF+d7Ocfw+~>`o@aE5Bi1~}C
z%m=*rLDYI9n5pkS@m=pbM|}-ZROCxh8?3|*{0P-EKi}jazVQ6xJ@@^-`R*^?0Pf&^
z_5$~(`4DQo%?oK0R-r1;f{qSfI|KFf3aV#MP=O4iKC{v9yT4?4s8TLQJzs(<eI-V5
zFHXl(Sc$h#8_iqfR(K`q{W8=cu2{s`*F-fFim(p#Iqq#936}cWn`5a{IU{DPySArp
X^7&48{g!qx(A6+5DXXhDzaZl^z*6p%

diff --git a/locale/nl/LC_MESSAGES/bitcoin.po b/locale/nl/LC_MESSAGES/bitcoin.po
index f44b94cc5..2e30388db 100644
--- a/locale/nl/LC_MESSAGES/bitcoin.po
+++ b/locale/nl/LC_MESSAGES/bitcoin.po
@@ -706,7 +706,7 @@ msgid ""
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Copyright (c) 2009-2011 Bitcoin-ontwikkelaars\n"
 "\n"
@@ -717,7 +717,8 @@ msgstr ""
 "\n"
 "Dit product bevat software ontwikkeld door het OpenSSL project for gebruik \n"
 "in de OpenSSL Toolkit (http://www.openssl.org/), en cryptografische \n"
-"software geschreven door Eric Young (eay@cryptsoft.com)."
+"software geschreven door Eric Young (eay@cryptsoft.com)) en UPnP software geschreven\n"
+"door Thomas Bernard."
 
 #: ../../../uibase.cpp:619
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
diff --git a/locale/pt/LC_MESSAGES/bitcoin.mo b/locale/pt/LC_MESSAGES/bitcoin.mo
index 7c662c15406aa356736341ff740a6f0098a6390b..20e100f578d4effd13e14dfd43061c9b24b2be25 100644
GIT binary patch
delta 2325
zcmZA2duY{V9LMqRmb+iuc68qI>{6ahZIU{5m&&4C#kNB>YY~n!cb03k*)CX?{2C+D
z1_~~i;6|5?LW&_QsaT0wIc=>h(NRG%lrA(eAq9ml?~l*#ui&uP^E~JG+`ixM@9fyl
zffo<I6zfgInEjM(HqXq417`6!j&txh#^D5};1u$)AN=vlm`eXDW?}4Hvj_(8R@{M$
zaS!I<ySM~TVFLa>*F2l1afN|eeZeUTael5l$laJh{{c+GIt*b0^0D3gX~wtk2`-X2
z-yI~fz>FoW3w4k_OvfSAMc+prwJ#QU?uI`za0dey@it6Z=ps;ziS$eS{yJ0yDp3*H
zgt6Fwia;Z#VK>%bFY2b>qb~3xYQ2l7gI)4y=w$yQS+Mj)W~G>qMOcr?*o&ID7j?4%
zRAfd`3m-*A<Rt3(8PvwJn2CR(4j4y1^nETW#a;mooj8OFO(|+Z4XPFzP!pQ*5I%>e
zaUo$kiL-bHkC0exuqSBtAP!;_FW{H>5CxzOGxA-EbC3&rw%#?Y8VQ0$PzTtBIk*><
zt6@~gK1JQ^ThxuGQS<&pE@`O+E`>$7fqoS#Wv`(k_a@$gA7V25+c*s^c*6G^)JEs<
zX^QGM<kA+t-E0lEp>jWhl#3lkZ7}JN&!AFu2^GO>sP+Cv9XNwR(|8Ee*xyQMD2J7(
zi5vZX7@1>FqH5%2)W-Wzp+1O8%_wUA$Ef+Aqu!#g{r(lyyc?+J;+MKqWTL0s2WZ4&
z0S2)cweTaT6l}&yY(*X95Nh5>sCg$a0jK=&vsgs`0;;IfLM|nFsCoCIink_2{1v(_
z4BUKQQ4{-6Av=PaFoCLxv#6W@f;!lBR7lgAqy?9v)>(^+K#f1%i8@Fx^05K_B;jX8
z#9v=bGN6g)QSbjX)Xf6L?q-WHk$xen7+0VUxY4&BwO}hgjNPc`kNM-LkQcztAa!b2
zQAL~UEi=1Jk*!7*Q{f6X@gCIcQiTd_H7bX7s0c(b4!cm1*@=ooA3l#Gr~@v()1|Zo
z6_GIN0NtnydIxCyO5+WD9A7PQKe6Xg8z!!FDab)h$VU}r5h?|>*osY9&P7i9<EeMK
z3+16wT!A|Hqo|ulou2j3&`pPssMy=M9H&qrz2Q4&m3uB7^`2*=zF&#4ScclD64P-L
zK7);@R7_zqo<q%>!7RQ1f6&Ng;2+ciS*xi~3?cPpEvSk6Q40;BektEUZFCg1;1nvy
z)0l?WQO_r=aqDNIYOE0TU$Yz&^!``T$igrxM_W+`+KmeNAZFq)euW=k7NPb^*#P&i
zbsk*j4mPr$HF@q6Y{9rPeiN`A^_HwEcl+Fro{DB04V|n9RU8K}fa9p5{0@USi@IT2
zg}XrsE}>t6O372G`7fYqWDvLDanwF}{D^41GE@ZWDtXxysz!fcJF41up{n<l{-l)J
znD_eYQwrin>DyRON<&Oc_1H}6>xoIhNLy2|F5DLG-w+6-Keny?*+^&bzGz2Vq@!u9
qJFt1)vgGK^?}MG~&0RYp9noO4b8AOSS9@@Kdq?np6DF5;XZ{BeTLLry

delta 2252
zcmXZceN0t#9LMqR1rfLp=DmuFh~R}3P)J3n#Adi4%#gXcs4Zk!=88Y6Ezz`g%=Jh1
zFjt~B(J8v=$jPib#7Z}u()2c3=2mKMrfAAWEC0xcNv!v$-`Vc&>zv;`zlZO`xjQ!W
zu0Qf_iq{@6`)!=rL^E5PWi}eO;3(XVY1ob->_9$t*dITIVeZdj41d9wa1f)oWP({P
zHsLhffO)tZ)A7Uv^XykH`WR@?51gV9|3n=mHp%QE%*ISC#v&|7KK3GCui_efo<J_6
z4pK4Mj3uoOb&zHpgKwb%-H6%v#bnP#_%#F5890Vh@d_#fBbb4yIqp7;1ZPoHMrL3N
zmZLVV#0W0NrPzpy^Z+V=F4TI*PzO8daiNo)N2*}guoCZJF_um-3t}T`;!0FxEvU?F
zLM{9`DkHm4&v&CX?!~cq26e!T{_jJm0KL0h=)}XQ)C4J*Cd5%CC`T<gA3L!If5N};
z4EB<)^SGJ9YJ;YHvs!!;S78tKVJ;1z4F^yqzJ&zrStRZvpN0f&6{rI&!|}KhRjakA
zlzoPZY(FaEL#TPDkr?cER0;pZYMfHwO11)(xwkPDKgJ;Y+ZHag;7;FtsExkF)d92P
zNU&D;Fo(lMsM@bX+QU9T^~4^3yc<=jlc)?PQR|&U9eBVWAI1p#TPmHW8b(nQbNu^4
z<QXeN^~iG6#xJ8%{RXNun^5yVMa|!VO7UL*z7I9;N7QqdP^Gwzo@zhH#b~^X`8a}F
zIB$k4K?y#={X*11-b2m%1T}9brelXc-igKB_n?~kDyk&^_`i=Ya?KkrBL7O=Tn1E|
zI@H8wRLVA^Hfl%pL?<fpZ&AI`k4ot^)Z6d?wN8jdlz}*E{Atud8j+8+@Rf<%ipjrz
z*u#J(CQv6$q9Pl_bo?7L@E)oe110W&IliTs$@oHi1{b5AZ}Z1@BMol{k-oIEsHPqA
zxHwIdWz2NV)IZBjyoIXKZPWqoplUdR%0RHx{c+`@GE;!c#5`Pw^{5PfkNJ23m67|X
z157P*0eaP3++?5*8*%m{?l1O3)P`SS1W%wc@&l?Ve@2zy9=2d)wpkT{yn`C=p5p>a
zqDp)Nb?^tM$j8k6U(ZUoP^7g;GHeMFq_v__y5ILO>bV}&dw$#>zlbT^51=;s1J$I%
z_&SElT}E3m$i0VJ_alty{cq!990LbY3w(!9;yI+BEH=+gtU}ea7WGfrfZAv^YQa`i
zjW?n)wh#6E5!CwMpn9wy!+0Ij_5R=HB8K--H40a_33E^>uR+!LSxjOR#z=KhB^zMX
zqt2%ua|f$`oO1HqDtryQ@Dxs(@7{*XsC|aeQ`1DN+{sE%%~6e6_zLPDZawDXHdKU1
zQ4w6gJiLJ_N!kK8KaT2=8eD-bsC|;C^#)M$M;7q1DODl<T{Mu5>h|dv#j>rLp@u-$
i))ztrY1~?U;{8x_AaE#gHQbhw=*W6*Vj^C;X6%1yC-K$*

diff --git a/locale/pt/LC_MESSAGES/bitcoin.po b/locale/pt/LC_MESSAGES/bitcoin.po
index f37fef20f..9bf193e19 100644
--- a/locale/pt/LC_MESSAGES/bitcoin.po
+++ b/locale/pt/LC_MESSAGES/bitcoin.po
@@ -705,7 +705,7 @@ msgid ""
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Copyright (c) 2009-2010 Bitcoin Developers\n"
 "\n"
@@ -716,7 +716,8 @@ msgstr ""
 "http://www.opensource.org/licenses/mit-license.php.\n"
 "Este producto inclui software desenvolvido pelo projecto OpenSSL, para \n"
 "ser utilizado no OpenSSL Toolkit (http://www.openssl.org) e software de \n"
-"criptografia desenvolvido por Eric Young (eay@cryptsoft.com)."
+"criptografia desenvolvido por Eric Young (eay@cryptsoft.com)\n"
+"e UPnP software escrito por Thomas Bernard."
 
 #: ../../../uibase.cpp:619
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
diff --git a/locale/ru/LC_MESSAGES/bitcoin.mo b/locale/ru/LC_MESSAGES/bitcoin.mo
index 4af3e0dfa08f0155df59f1d7ee736d7d3fade128..b44c10ad47263ed7130b28abb929ee457524bafe 100644
GIT binary patch
delta 2580
zcmZA2e@s<n9LMqRMG+Oa0wR*29#ldN1%HzU6oOiq0!nH&>^gp=O|Yv@E%m~jri(>+
zb4702vYa{pkZzh<p_Qg<%`P*uhBJSx)rz8-C0p5ge>(TCrn|56oO_<<`99z8_gs1o
zdbS?&9C;-waL!}qA7nPz%%=0v2P?2QF2QK5!dR?E9<|kx``a;&aWf`iEBf#-CZadh
zY$!UIfdx1mpTrn!OtpYr=3)mo=Ie`l%tql6R3Mjd0A9g<*oC9<Ph^S>A7WOEdAOK^
z>_hgpo-{Y0gmkkM#v@SyO-C=z#Y|k99&jf#af3Cj6?NiJ<iQhoFXQt#47*X8@p7!b
zI1n{XM`b1hm8oeMg)>o^nT7GV1m|HLDg(y?T<B!&s0GiXBJDs$dJ_lYEu4ydh++)p
zV}Gne&GVy9`Wz}_yHM-CiPP~gDq}yO)=?caKQN68rMw6gQ5_~=11j=H)Pq6PN%x{o
zvL7d58!F}BqvqX3mCoz9^9JENj2#T)=Xf6X&=42d->OHr8|958O?**`HMk4UVh<)`
zJ5efti^zZbh7V=tZp1_iO4%(F705%Vc@?PA)}b=ngbFZ-Y3y&WbMXc@j^PSiM8PSu
zeT<v&D(=E3vRD+mQMH~h+D-Xv?8UeWm8s>ZOs<N!4z=-Stf5I;P=WqI9p|#YC609$
zs=|qk*P$Lbh&ss`?2ngFHNA$a^-t)a=RSAC5vUW7MFm)hI(a23fCg0Nnviy~0~k<^
z&v4=3Wz>Wo)CNh}Zi>gCnkXODTpLh<?LY<8ic0BzBw2O{^;`$$;dNACL&llqU=Gf~
zW#h=dn&%)lV(~O8(l1c8y&CZr7BKEJ-u;~@LDsb0n2(>JPOQ~+fD|OVmW!Ol9>>YJ
z9rfG?sC_ze$iFta$&GltgE~QUF7GgAqb5|NCOnJUpcz$?16YM^sFEd2a8I0#`o0Er
ze>Li$&8UFiLhW}Wz=fLSH|&c&NW+_lMo<%GqDoYR30R4BSc`FZA#%SHXEW}KIC+vA
z$R<?4M{z5^NME9QU;#e@njhG}g*M)Xiugs;My;sS9YU4nYt%wFPz(Hxn=pekDPwz)
zD%n}&4E8&cOv|JJyjY1XbbmGOWPJPn|K6s6ZK1Q&Jf~3$ox>scD=x-<GpHjj$2JV&
z9!^s7fLqh+G)5NpQwq)aDX{`ncl(ex+5*TFdmEM6>!{v|eozMv@XB$a4fAmpE=En*
zhss1J4#X~0p!yNu6}A}E$#Stb7NRyR#uQwM+pr0h*_a~tEl5I*vv4T;+e9uhunb3_
zAD7^6RM&Q6B95BrE-)39>QYomHewP6u?!EOQhx^@!>nTW&+Zm{l<{8F!Mad?f9x(7
z+BmJmJ!t`^GOj>v^fdag71a}ep-PoSy3|DTPysB(D34h^zJ$-vk;NGGu<Ptc+{`qW
z@*BeQ`%B4xI~VD5&B}SO6V*K9=D8_ahRn5<sEyx41$+(l+&`$y<j!|%TZE$+*P;S{
z0ae-)I3B;kWcKMrnm%QmTE57A&##o5eaDUD3bKK>QC)g#fxEz_g>I@}#c1xgp=$g-
zDgzfHcA_@?G5Bq4si!QM8F$XJGx$r~3{NOHCO*w`GE@>D>+viMmV18=zUGY!%^7ee
zCfo7VS38wu^<~bQhT663ef}C}y?@2pwKet5@{P{Iry5rI);L8q{(7IkIutkf<gh#^
zeB7N7KGo3}ZV!j}JQDtpe;;WSZg-$9e6*t}e2UNK!$<kzct=a{<tc-b^!5K1{cOs+
G!~O+B(OT93

delta 2453
zcmXZedrZ}39LMqR0ZfF$Q7!_40xF`UfPoTnG9%Dp5S&wh=B&X?h%LI{3dhLfR?J~@
z8kn<W&Dj`{Z5hX6QgdwNC8MPabJ!m?^0I2W8f4jK>;36>HsSR=zw>*3-^=s-4!-e`
z>+cU;#}9-B4!g`+=b9y%nTKEZVHQSU4$i=QjK(75Rx1l#-;8eN^%#dO*nqn*7AJ85
zPUAw1OEyc#RX7uCk}Y7D8EoM~wLX|<mWgko5*fhRcpPWp2rk3($P$~vMs%l`ZK9Cv
zNGuymbrQOUiOl~(CFGgU4`$#J%$px@7SwWqXITrX;@zPe_hJ_FUQEMLRA(kJ5^sj)
zzoR<yC#qA?lpTgisLrHd4CY`JdQlzN6JVgqx=|18MP=HD%5(_h@eCH?70kw1vWY@3
zYTX7@rPZj8HKLyT8W!U&RL8zRJ!c%XJ`l}@sO5>MjJ!ApOHrBEpl)nJRo;rKqzwzO
z6V>vQsC5@nTQ`YX_X`f-G+w~>GtAE6OB{&riEl-VoIviyRKW-7xD6ZeG>%~cc9W$N
z=tut9$NW-fE{430Y_r`(B{G){*19az)_PH$twkl+gsH^07a1Jk!X9kK<!m_HXz$?b
zIEdZ2a;aGfj-vK@#xkensTj^YA60Q7s*@!l%Ta;-xQ#=)6_x1M>|-VI?K%VPUH<+2
zU^(iB4pb$FFbW577M?)ee+o135-Q*wRK@?I5{zH&RGy7WpcHA2)gs5p+A*L#KExmc
zkD*#Mh6->4)#7`oLlnEhIb4;f#I~RkYC*NM4QZC`L><CDEW*!FiQUFL49_up91C*j
zzYb3a7ozb1D$^sVz=I*r;KR(XU^ULmHRD;<jBD{As^W1}0ly+mwFsh-yXE34+>E+!
zA1Y2?9{pFKAuhz=H>e6G@Ikbd&VnM;f+|#idW^z$d=@)VTXqdqu|42?z6N!@3{_}7
zD&ZZdc%KItXz#wlNE|~Byj?;a!n>#~O5|Y7!E9{8Vszut(DhI7G3Fy7BMY2Fe5i!G
zFq3bj4<z$*tDW_MTMQKVA5=x*d^;$R2i3ZC)Yep>9<&klfLE{s52892PrKM1D@Jm*
z=aDAbd+5RQxR296fnCg-*ZluB1#F6e4$o>%m>%>Hrr=iGggcS0+GYF{BfVyasbm<n
zr*#~RrT7-|RboNZ>HYzEqiq_w)l$|uovlNiopy}U``^z%0S9pdev4X=@QBk1AI39p
zKqdMr@(NoAs<J+ez!Ru|CovJPVkh1~b+)6#c?))<=DoOp_}0&0A)ZE6a1)=#s7IX&
zpTk(@@1kC#W2jb-ptj^T#$jZsnGaJ@t$zXQuou&D3ZKCEGN-Tx)ZZU#Wv~eMqbd!e
z{#cwv1^Nja(6in-6ECB-suy(#M^On}z%ZBD&$u6N(9SY!<7Jm$mOGtsRqzIIe{u!=
zKgHl}F8H~@SLqy{qok=8jU#L9D(Wz1S2=rIi#lZ6QJv|-#W;kS_#-NDeOYL0b1@go
zF@ZQcaFqF8-$v&>_xlOLg)Y2@%}+X~wCO450e_%c?XGeDe~^XR;}xh5l!o-70zT6-
z5nbV`=~?1F>k9VVa(i9FJ=rm-E(@-YiFUcVdi<W>T)yDi+273!79|a*1^tDCY5xIw
CXBaX7

diff --git a/locale/ru/LC_MESSAGES/bitcoin.po b/locale/ru/LC_MESSAGES/bitcoin.po
index 1b893bfc4..5a87259c9 100644
--- a/locale/ru/LC_MESSAGES/bitcoin.po
+++ b/locale/ru/LC_MESSAGES/bitcoin.po
@@ -769,7 +769,7 @@ msgid ""
 "\n"
 "This product includes software developed by the OpenSSL Project for use in the \n"
 "OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
 msgstr ""
 "Все права защищены (c) 2009-2010 Bitcoin Developers\n"
 "\n"
@@ -780,7 +780,7 @@ msgstr ""
 "\n"
 "Этот продукт включает ПО, разработанное проектом OpenSSL для использования в\n"
 "OpenSSL Toolkit (http://www.openssl.org/), и криптографическое ПО, написанное\n"
-"Eric Young (eay@cryptsoft.com)."
+"Eric Young (eay@cryptsoft.com) и UPnP программного обеспечения, написанного Thomas Bernard."
 
 #: ../../../uibase.cpp:613
 msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
diff --git a/main.cpp b/main.cpp
index bfc45af28..c45f85837 100644
--- a/main.cpp
+++ b/main.cpp
@@ -65,6 +65,14 @@ int fLimitProcessors = false;
 int nLimitProcessors = 1;
 int fMinimizeToTray = true;
 int fMinimizeOnClose = true;
+#ifdef USE_UPNP
+#if USE_UPNP
+int fUseUPnP = true;
+#else
+int fUseUPnP = false;
+#endif
+#endif
+
 
 
 
diff --git a/main.h b/main.h
index e9d0c0031..71fbdfd3a 100644
--- a/main.h
+++ b/main.h
@@ -22,6 +22,11 @@ static const int64 CENT = 1000000;
 static const int64 MAX_MONEY = 21000000 * COIN;
 inline bool MoneyRange(int64 nValue) { return (nValue >= 0 && nValue <= MAX_MONEY); }
 static const int COINBASE_MATURITY = 100;
+#ifdef USE_UPNP
+static const int fHaveUPnP = true;
+#else
+static const int fHaveUPnP = false;
+#endif
 
 
 
@@ -55,6 +60,7 @@ extern int fLimitProcessors;
 extern int nLimitProcessors;
 extern int fMinimizeToTray;
 extern int fMinimizeOnClose;
+extern int fUseUPnP;
 
 
 
diff --git a/makefile.mingw b/makefile.mingw
index 6b849f93f..1969ecc97 100644
--- a/makefile.mingw
+++ b/makefile.mingw
@@ -2,6 +2,7 @@
 # Distributed under the MIT/X11 software license, see the accompanying
 # file license.txt or http://www.opensource.org/licenses/mit-license.php.
 
+USE_UPNP:=0
 
 INCLUDEPATHS= \
  -I"C:\boost-1.43.0-mgw" \
@@ -25,8 +26,7 @@ LIBS= \
  -l boost_program_options-mgw45-mt-s-1_43 \
  -l boost_thread-mgw45-mt-s-1_43 \
  -l db_cxx \
- -l eay32 \
- -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l ole32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l shlwapi
+ -l eay32
 
 DEFS=-DWIN32 -D__WXMSW__ -D_WINDOWS -DNOPCH
 DEBUGFLAGS=-g -D__WXDEBUG__
@@ -34,6 +34,15 @@ CFLAGS=-mthreads -O2 -w -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(I
 HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
     script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
 
+ifdef USE_UPNP
+ INCLUDEPATHS += -I"C:\upnpc-exe-win32-20110215"
+ LIBPATHS += -L"C:\upnpc-exe-win32-20110215"
+ LIBS += -l miniupnpc -l iphlpapi
+ DEFS += -DSTATICLIB -DUSE_UPNP=$(USE_UPNP)
+endif
+
+LIBS += -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l ole32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l shlwapi
+
 OBJS= \
     obj/util.o \
     obj/script.o \
diff --git a/makefile.osx b/makefile.osx
index 5c1ca6fba..4836ea3f4 100644
--- a/makefile.osx
+++ b/makefile.osx
@@ -16,6 +16,8 @@ LIBPATHS= \
 
 WXLIBS=$(shell $(DEPSDIR)/bin/wx-config --libs --static)
 
+USE_UPNP:=0
+
 LIBS= -dead_strip \
  $(DEPSDIR)/lib/libdb_cxx-4.8.a \
  $(DEPSDIR)/lib/libboost_system.a \
@@ -44,6 +46,11 @@ OBJS= \
     obj/init.o \
     cryptopp/obj/sha.o \
     cryptopp/obj/cpu.o
+
+ifdef USE_UPNP
+	LIBS += $(DEPSDIR)/lib/libminiupnpc.a
+	DEFS += -DUSE_UPNP=$(USE_UPNP)
+endif
 	
 
 all: bitcoin
diff --git a/makefile.unix b/makefile.unix
index d306f746d..61b925e3b 100644
--- a/makefile.unix
+++ b/makefile.unix
@@ -8,6 +8,10 @@ WXINCLUDEPATHS=$(shell wx-config --cxxflags)
 
 WXLIBS=$(shell wx-config --libs)
 
+USE_UPNP:=0
+
+DEFS=-DNOPCH -DFOURWAYSSE2 -DUSE_SSL
+
 # for boost 1.37, add -mt to the boost libraries
 LIBS= \
  -Wl,-Bstatic \
@@ -17,13 +21,20 @@ LIBS= \
    -l boost_thread \
    -l db_cxx \
    -l ssl \
-   -l crypto \
+   -l crypto
+
+ifdef USE_UPNP
+	LIBS += -l miniupnpc
+	DEFS += -DUSE_UPNP=$(USE_UPNP)
+endif
+
+LIBS+= \
  -Wl,-Bdynamic \
    -l gthread-2.0 \
    -l z \
    -l dl
 
-DEFS=-DNOPCH -DFOURWAYSSE2 -DUSE_SSL
+
 DEBUGFLAGS=-g -D__WXDEBUG__
 CXXFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS)
 HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
diff --git a/net.cpp b/net.cpp
index 372402f51..2e8d4f48a 100644
--- a/net.cpp
+++ b/net.cpp
@@ -4,11 +4,21 @@
 
 #include "headers.h"
 
+#ifdef USE_UPNP
+#include <miniupnpc/miniwget.h>
+#include <miniupnpc/miniupnpc.h>
+#include <miniupnpc/upnpcommands.h>
+#include <miniupnpc/upnperrors.h>
+#endif
+
 static const int MAX_OUTBOUND_CONNECTIONS = 8;
 
 void ThreadMessageHandler2(void* parg);
 void ThreadSocketHandler2(void* parg);
 void ThreadOpenConnections2(void* parg);
+#ifdef USE_UPNP
+void ThreadMapPort2(void* parg);
+#endif
 bool OpenNetworkConnection(const CAddress& addrConnect);
 
 
@@ -857,6 +867,109 @@ void ThreadSocketHandler2(void* parg)
 
 
 
+#ifdef USE_UPNP
+void ThreadMapPort(void* parg)
+{
+    IMPLEMENT_RANDOMIZE_STACK(ThreadMapPort(parg));
+    try
+    {
+        vnThreadsRunning[5]++;
+        ThreadMapPort2(parg);
+        vnThreadsRunning[5]--;
+    }
+    catch (std::exception& e) {
+        vnThreadsRunning[5]--;
+        PrintException(&e, "ThreadMapPort()");
+    } catch (...) {
+        vnThreadsRunning[5]--;
+        PrintException(NULL, "ThreadMapPort()");
+    }
+    printf("ThreadMapPort exiting\n");
+}
+
+void ThreadMapPort2(void* parg)
+{
+    printf("ThreadMapPort started\n");
+
+    char port[6];
+    sprintf(port, "%d", ntohs(GetDefaultPort()));
+
+    const char * rootdescurl = 0;
+    const char * multicastif = 0;
+    const char * minissdpdpath = 0;
+    struct UPNPDev * devlist = 0;
+    char lanaddr[64];
+
+    devlist = upnpDiscover(2000, multicastif, minissdpdpath, 0);
+
+    struct UPNPUrls urls;
+    struct IGDdatas data;
+    int r;
+
+    if (UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr)) == 1)
+    {
+        char intClient[16];
+        char intPort[6];
+
+#ifndef __WXMSW__
+        r = UPNP_AddPortMapping(urls.controlURL, data.first.servicetype,
+	                        port, port, lanaddr, 0, "TCP", 0);
+#else
+        r = UPNP_AddPortMapping(urls.controlURL, data.first.servicetype,
+	                        port, port, lanaddr, 0, "TCP", 0, "0");
+#endif
+        if(r!=UPNPCOMMAND_SUCCESS)
+            printf("AddPortMapping(%s, %s, %s) failed with code %d (%s)\n",
+                port, port, lanaddr, r, strupnperror(r));
+        else
+            printf("UPnP Port Mapping successful.\n");
+        loop {
+            if (fShutdown || !fUseUPnP)
+            {
+                r = UPNP_DeletePortMapping(urls.controlURL, data.first.servicetype, port, "TCP", 0);
+                printf("UPNP_DeletePortMapping() returned : %d\n", r);
+                freeUPNPDevlist(devlist); devlist = 0;
+                FreeUPNPUrls(&urls);
+                return;
+            }
+            Sleep(2000);
+        }
+    } else {
+        printf("No valid UPnP IGDs found\n");
+        freeUPNPDevlist(devlist); devlist = 0;
+        FreeUPNPUrls(&urls);
+        loop {
+            if (fShutdown)
+                return;
+            Sleep(2000);
+        }
+    }
+}
+
+void MapPort(bool fMapPort)
+{
+    if (fUseUPnP != fMapPort)
+    {
+        fUseUPnP = fMapPort;
+        CWalletDB().WriteSetting("fUseUPnP", fUseUPnP);
+    }
+    if (fUseUPnP && vnThreadsRunning[5] < 1)
+    {
+        if (!CreateThread(ThreadMapPort, NULL))
+            printf("Error: ThreadMapPort(ThreadMapPort) failed\n");
+    }
+}
+#endif
+
+
+
+
+
+
+
+
+
+
 static const char *strDNSSeed[] = {
     "bitseed.xf2.org",
 };
@@ -1409,6 +1522,10 @@ void StartNode(void* parg)
     // Start threads
     //
 
+    // Map ports with UPnP
+    if (fHaveUPnP)
+        MapPort(fUseUPnP);
+
     // Get addresses from IRC and advertise ours
     if (!CreateThread(ThreadIRCSeed, NULL))
         printf("Error: CreateThread(ThreadIRCSeed) failed\n");
@@ -1434,7 +1551,11 @@ bool StopNode()
     fShutdown = true;
     nTransactionsUpdated++;
     int64 nStart = GetTime();
-    while (vnThreadsRunning[0] > 0 || vnThreadsRunning[2] > 0 || vnThreadsRunning[3] > 0 || vnThreadsRunning[4] > 0)
+    while (vnThreadsRunning[0] > 0 || vnThreadsRunning[2] > 0 || vnThreadsRunning[3] > 0 || vnThreadsRunning[4] > 0
+#ifdef USE_UPNP
+        || vnThreadsRunning[5] > 0
+#endif
+    )
     {
         if (GetTime() - nStart > 20)
             break;
@@ -1445,6 +1566,7 @@ bool StopNode()
     if (vnThreadsRunning[2] > 0) printf("ThreadMessageHandler still running\n");
     if (vnThreadsRunning[3] > 0) printf("ThreadBitcoinMiner still running\n");
     if (vnThreadsRunning[4] > 0) printf("ThreadRPCServer still running\n");
+    if (fHaveUPnP && vnThreadsRunning[5] > 0) printf("ThreadMapPort still running\n");
     while (vnThreadsRunning[2] > 0 || vnThreadsRunning[4] > 0)
         Sleep(20);
     Sleep(50);
diff --git a/net.h b/net.h
index 7d4974fd0..b3bd74da4 100644
--- a/net.h
+++ b/net.h
@@ -30,6 +30,7 @@ CNode* FindNode(unsigned int ip);
 CNode* ConnectNode(CAddress addrConnect, int64 nTimeout=0);
 void AbandonRequests(void (*fn)(void*, CDataStream&), void* param1);
 bool AnySubscribed(unsigned int nChannel);
+void MapPort(bool fMapPort);
 void DNSAddressSeed();
 bool BindListenPort(string& strError=REF(string()));
 void StartNode(void* parg);
diff --git a/ui.cpp b/ui.cpp
index fafd3893c..2d5594d2e 100644
--- a/ui.cpp
+++ b/ui.cpp
@@ -1665,6 +1665,10 @@ COptionsDialog::COptionsDialog(wxWindow* parent) : COptionsDialogBase(parent)
     m_checkBoxStartOnSystemStartup->SetValue(fTmpStartOnSystemStartup = GetStartOnSystemStartup());
     m_checkBoxMinimizeToTray->SetValue(fMinimizeToTray);
     m_checkBoxMinimizeOnClose->SetValue(fMinimizeOnClose);
+    if (fHaveUPnP)
+        m_checkBoxUseUPnP->SetValue(fUseUPnP);
+    else
+        m_checkBoxUseUPnP->Enable(false);
     m_checkBoxUseProxy->SetValue(fUseProxy);
     m_textCtrlProxyIP->Enable(fUseProxy);
     m_textCtrlProxyPort->Enable(fUseProxy);
@@ -1784,6 +1788,13 @@ void COptionsDialog::OnButtonApply(wxCommandEvent& event)
         walletdb.WriteSetting("fMinimizeOnClose", fMinimizeOnClose);
     }
 
+    if (fHaveUPnP && fUseUPnP != m_checkBoxUseUPnP->GetValue())
+    {
+        fUseUPnP = m_checkBoxUseUPnP->GetValue();
+        walletdb.WriteSetting("fUseUPnP", fUseUPnP);
+        MapPort(fUseUPnP);
+    }
+
     fUseProxy = m_checkBoxUseProxy->GetValue();
     walletdb.WriteSetting("fUseProxy", fUseProxy);
 
diff --git a/uibase.cpp b/uibase.cpp
index f3ff3bf1e..41be5d752 100644
--- a/uibase.cpp
+++ b/uibase.cpp
@@ -371,6 +371,9 @@ COptionsDialogBase::COptionsDialogBase( wxWindow* parent, wxWindowID id, const w
 	m_checkBoxMinimizeToTray = new wxCheckBox( m_panelMain, wxID_ANY, _("&Minimize to the tray instead of the taskbar"), wxDefaultPosition, wxDefaultSize, 0 );
 	bSizer69->Add( m_checkBoxMinimizeToTray, 0, wxALL, 5 );
 	
+	m_checkBoxUseUPnP = new wxCheckBox( m_panelMain, wxID_ANY, _("Map port using &UPnP"), wxDefaultPosition, wxDefaultSize, 0 );
+	bSizer69->Add( m_checkBoxUseUPnP, 0, wxALL, 5 );
+	
 	m_checkBoxMinimizeOnClose = new wxCheckBox( m_panelMain, wxID_ANY, _("M&inimize to the tray on close"), wxDefaultPosition, wxDefaultSize, 0 );
 	bSizer69->Add( m_checkBoxMinimizeOnClose, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 	
@@ -544,7 +547,7 @@ CAboutDialogBase::CAboutDialogBase( wxWindow* parent, wxWindowID id, const wxStr
 	
 	bSizer631->Add( 0, 4, 0, wxEXPAND, 5 );
 	
-	m_staticTextMain = new wxStaticText( this, wxID_ANY, _("Copyright (c) 2009-2011 Bitcoin Developers\n\nThis is experimental software.\n\nDistributed under the MIT/X11 software license, see the accompanying file \nlicense.txt or http://www.opensource.org/licenses/mit-license.php.\n\nThis product includes software developed by the OpenSSL Project for use in the \nOpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \nEric Young (eay@cryptsoft.com)."), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticTextMain = new wxStaticText( this, wxID_ANY, _("Copyright (c) 2009-2011 Bitcoin Developers\n\nThis is experimental software.\n\nDistributed under the MIT/X11 software license, see the accompanying file \nlicense.txt or http://www.opensource.org/licenses/mit-license.php.\n\nThis product includes software developed by the OpenSSL Project for use in the \nOpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \nEric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticTextMain->Wrap( -1 );
 	bSizer631->Add( m_staticTextMain, 0, wxALL, 5 );
 	
diff --git a/uibase.h b/uibase.h
index eff5bd6bf..c5da8f508 100644
--- a/uibase.h
+++ b/uibase.h
@@ -170,6 +170,7 @@ class COptionsDialogBase : public wxDialog
 		wxStaticText* m_staticText35;
 		wxCheckBox* m_checkBoxStartOnSystemStartup;
 		wxCheckBox* m_checkBoxMinimizeToTray;
+		wxCheckBox* m_checkBoxUseUPnP;
 		wxCheckBox* m_checkBoxMinimizeOnClose;
 		wxCheckBox* m_checkBoxUseProxy;
 		
diff --git a/uiproject.fbp b/uiproject.fbp
index f54fdc2ba..d55566eef 100644
--- a/uiproject.fbp
+++ b/uiproject.fbp
@@ -2122,6 +2122,62 @@
                                                         <event name="OnUpdateUI"></event>
                                                     </object>
                                                 </object>
+                                                <object class="sizeritem" expanded="1">
+                                                    <property name="border">5</property>
+                                                    <property name="flag">wxALL</property>
+                                                    <property name="proportion">0</property>
+                                                    <object class="wxCheckBox" expanded="1">
+                                                        <property name="bg"></property>
+                                                        <property name="checked">0</property>
+                                                        <property name="context_help"></property>
+                                                        <property name="enabled">1</property>
+                                                        <property name="fg"></property>
+                                                        <property name="font"></property>
+                                                        <property name="hidden">0</property>
+                                                        <property name="id">wxID_ANY</property>
+                                                        <property name="label">Map port using &amp;UPnP</property>
+                                                        <property name="maximum_size"></property>
+                                                        <property name="minimum_size"></property>
+                                                        <property name="name">m_checkBoxUseUPnP</property>
+                                                        <property name="permission">protected</property>
+                                                        <property name="pos"></property>
+                                                        <property name="size"></property>
+                                                        <property name="style"></property>
+                                                        <property name="subclass"></property>
+                                                        <property name="tooltip"></property>
+                                                        <property name="validator_data_type"></property>
+                                                        <property name="validator_style">wxFILTER_NONE</property>
+                                                        <property name="validator_type">wxDefaultValidator</property>
+                                                        <property name="validator_variable"></property>
+                                                        <property name="window_extra_style"></property>
+                                                        <property name="window_name"></property>
+                                                        <property name="window_style"></property>
+                                                        <event name="OnChar"></event>
+                                                        <event name="OnCheckBox"></event>
+                                                        <event name="OnEnterWindow"></event>
+                                                        <event name="OnEraseBackground"></event>
+                                                        <event name="OnKeyDown"></event>
+                                                        <event name="OnKeyUp"></event>
+                                                        <event name="OnKillFocus"></event>
+                                                        <event name="OnLeaveWindow"></event>
+                                                        <event name="OnLeftDClick"></event>
+                                                        <event name="OnLeftDown"></event>
+                                                        <event name="OnLeftUp"></event>
+                                                        <event name="OnMiddleDClick"></event>
+                                                        <event name="OnMiddleDown"></event>
+                                                        <event name="OnMiddleUp"></event>
+                                                        <event name="OnMotion"></event>
+                                                        <event name="OnMouseEvents"></event>
+                                                        <event name="OnMouseWheel"></event>
+                                                        <event name="OnPaint"></event>
+                                                        <event name="OnRightDClick"></event>
+                                                        <event name="OnRightDown"></event>
+                                                        <event name="OnRightUp"></event>
+                                                        <event name="OnSetFocus"></event>
+                                                        <event name="OnSize"></event>
+                                                        <event name="OnUpdateUI"></event>
+                                                    </object>
+                                                </object>
                                                 <object class="sizeritem" expanded="1">
                                                     <property name="border">5</property>
                                                     <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
@@ -3345,7 +3401,7 @@
                                                 <property name="font"></property>
                                                 <property name="hidden">0</property>
                                                 <property name="id">wxID_ANY</property>
-                                                <property name="label">Copyright (c) 2009-2011 Bitcoin Developers&#x0A;&#x0A;This is experimental software.&#x0A;&#x0A;Distributed under the MIT/X11 software license, see the accompanying file &#x0A;license.txt or http://www.opensource.org/licenses/mit-license.php.&#x0A;&#x0A;This product includes software developed by the OpenSSL Project for use in the &#x0A;OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by &#x0A;Eric Young (eay@cryptsoft.com).</property>
+                                                <property name="label">Copyright (c) 2009-2011 Bitcoin Developers&#x0A;&#x0A;This is experimental software.&#x0A;&#x0A;Distributed under the MIT/X11 software license, see the accompanying file &#x0A;license.txt or http://www.opensource.org/licenses/mit-license.php.&#x0A;&#x0A;This product includes software developed by the OpenSSL Project for use in the &#x0A;OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by &#x0A;Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</property>
                                                 <property name="maximum_size"></property>
                                                 <property name="minimum_size"></property>
                                                 <property name="name">m_staticTextMain</property>