From cassidyno@gmail.com Mon Jun 6 17:13:09 2022 From: damian To: sr-users-es@lists.kamailio.org Subject: Re: [SR-Users-ES] Consulta =?utf-8?q?Envi=C3=B3?= de comando en forma remota Date: Mon, 06 Jun 2022 12:12:53 -0300 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1394401481==" --===============1394401481== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Gente, ya se encuentra funcionando, muchas gracias por toda la colaboraci=C3=B3n. La conf. qued=C3=B3 de la siguiente manera, por si alguno le interesa. disable_tcp=3Dno tcp_accept_no_cl=3Dyes listen=3Dtcp:eth0:8080 listen=3Dudp:eth0:5060 listen=3Dudp:127.0.0.1:5060 #####Modulos para Request Reload mtree##### loadmodule "xhttp.so" loadmodule "jsonrpcs.so" #sudo apt-get install kamailio-json-modules# loadmodule "json.so" ####### event_route[xhttp:request] { if!(dst_port=3D=3D8080) { xlog("L_NOTICE", "[XHTTP:REQUEST] $si FORBIDDEN! ***\n"); exit; } if(src_ip!=3D192.168.224.184) { xhttp_reply("403", "Forbidden", "text/html", "Not allowed from $si"); xlog("L_NOTICE", "[XHTTP:REQUEST] NOT ALLOWED FROM $si! ***\n"); exit; } if ($hu =3D~ "^/mtree") { $var(dbmtree) =3D$(rb{json.parse,db}); xlog("L_NOTICE", "[XHTTP:REQUEST] $si:$sp - db: $var(dbmtree) ACCEPTED ***\n"); $var(json_rpc)=3D'{"jsonrpc": "2.0", "method": "mtree.reload", "id": "$var(dbmtree)"}'; jsonrpc_exec($var(json_rpc)); xlog("L_NOTICE","jsonrpc response code: $jsonrpl(code) - the body is: $jsonrpl(body)\n"); xhttp_reply("200", "Forbidden", "text/html", "OK - [$si:$sp - db: $var(dbmtree)]"); } else { xhttp_reply("200", "OK", "text/html", "Wrong URL $hu"); xlog("L_NOTICE", "[XHTTP:REQUEST] WRONG URL $hu! ***\n"); } return; } Saludos. El lun, 6 jun 2022 a las 9:49, damian () escribi=C3=B3: > Disculpen, encontr=C3=A9 el error porque el que no levantaba el puerto 8080, > Tenia en el archivo de configuraci=C3=B3n disable_tcp=3Dyes. > Ire por el camino del Request y ver=C3=A9 si me funciona. > > Saludos. > > El lun, 6 jun 2022 a las 9:41, damian () escribi=C3= =B3: > >> Eh intentado lo del event_route[xhttp:request] pero no logro que Kamailio >> escuche el puerto que configuro (80, 8080 o cualquier puerto que defina) >> para enviar el request via http. >> >> >> Tengo configurado: >> listen=3Dtcp:eth0:8080 >> listen=3Dudp:eth0:5060 >> >> Resultado. >> >> Listening on >> udp: 172.x.x.x:5060 >> udp: 127.0.0.1:5060 >> Aliases: >> udp: localhost:5060 >> udp: LAB-SERVER:5060 >> >> Solo me escucha el 5060. >> >> El s=C3=A1b, 4 jun 2022 a las 12:55, Jose Fco. Irles Dur=C3=A1 () >> escribi=C3=B3: >> >>> Otra opci=C3=B3n es que hagas un GET a un path espec=C3=ADfico en >>> el event_route[xhttp:request] y ah=C3=AD ejecutes lo que quieras, como por >>> ejemplo un script local para hacer lo que quieras. >>> >>> El s=C3=A1b, 4 jun 2022 a las 15:13, Joel Serrano () >>> escribi=C3=B3: >>> >>>> Tambi=C3=A9n puedes usar el propio jsonrpcs_exec() y hacer el reload des= de >>>> la config cuando te de la gana. >>>> >>>> On Fri, Jun 3, 2022 at 15:15 David Villasmil < >>>> david.villasmil.work(a)gmail.com> wrote: >>>> >>>>> Eso lo puedes hacer con un archivo de texto simple. Kamailio puede >>>>> monitorizar el archivo y recargarlo autom=C3=A1ticamente. >>>>> Si no, puedes hacer un un timer que dispare un trigger y recargarlo. >>>>> >>>>> On Fri, 3 Jun 2022 at 20:38, damian wrote: >>>>> >>>>>> Hola, buenas tardes. >>>>>> Tengo una duda, espero que puedan orientarme o ayudarme. >>>>>> Tengo montado un Sistema de Redirect Server con Kamailio, funcionando >>>>>> OK. >>>>>> Este server lee una tabla que sale de un MYSQL y con el modulo mtree >>>>>> la cargo en memoria. >>>>>> Cuando hago modificaicones en la DB refresco los datos en memoria con >>>>>> el comando: kamcmd mtree.reload mytabla. >>>>>> >>>>>> Ahora bien, hay alguna forma de que haga este reload en forma remota. >>>>>> es decir, no tener que conectarme al server por ssh y tirar el comando >>>>>> localmente. >>>>>> Hay alguna posibilidad de que kamailio este escuchando y hacerle el >>>>>> request de reload? >>>>>> Si lo hay, cuentan con algun ejemplo que puede utilizar de referencia? >>>>>> >>>>>> Saludos. >>>>>> _______________________________________________ >>>>>> sr-users-es mailing list >>>>>> sr-users-es(a)lists.kamailio.org >>>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users-es >>>>>> >>>>> -- >>>>> Regards, >>>>> >>>>> David Villasmil >>>>> email: david.villasmil.work(a)gmail.com >>>>> phone: +34669448337 >>>>> _______________________________________________ >>>>> sr-users-es mailing list >>>>> sr-users-es(a)lists.kamailio.org >>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users-es >>>>> >>>> _______________________________________________ >>>> sr-users-es mailing list >>>> sr-users-es(a)lists.kamailio.org >>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users-es >>>> >>> >>> >>> -- >>> Jose Fco. Irles Dur=C3=A1 >>> _______________________________________________ >>> sr-users-es mailing list >>> sr-users-es(a)lists.kamailio.org >>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users-es >>> >> --===============1394401481== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGRpdiBkaXI9Imx0ciI+PGRpdj5HZW50ZSzCoDwvZGl2PjxkaXY+eWEgc2UgZW5jdWVudHJhIGZ1 bmNpb25hbmRvLCBtdWNoYXMgZ3JhY2lhcyBwb3IgdG9kYSBsYSBjb2xhYm9yYWNpw7NuLjwvZGl2 PjxkaXY+PGJyPjwvZGl2PjxkaXY+TGEgY29uZi4gcXVlZMOzIGRlIGxhIHNpZ3VpZW50ZSBtYW5l cmEsIHBvciBzaSBhbGd1bm8gbGUgaW50ZXJlc2EuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5k aXNhYmxlX3RjcD1ubzxicj50Y3BfYWNjZXB0X25vX2NsPXllczxicj48YnI+bGlzdGVuPXRjcDpl dGgwOjgwODA8YnI+bGlzdGVuPXVkcDpldGgwOjUwNjA8YnI+bGlzdGVuPXVkcDo8YSBocmVmPSJo dHRwOi8vMTI3LjAuMC4xOjUwNjAiPjEyNy4wLjAuMTo1MDYwPC9hPjxicj48L2Rpdj48ZGl2Pjxi cj48L2Rpdj48ZGl2PiMjIyMjTW9kdWxvcyBwYXJhIFJlcXVlc3QgUmVsb2FkIG10cmVlIyMjIyM8 YnI+bG9hZG1vZHVsZSAmcXVvdDt4aHR0cC5zbyZxdW90Ozxicj5sb2FkbW9kdWxlICZxdW90O2pz b25ycGNzLnNvJnF1b3Q7PGJyPiNzdWRvIGFwdC1nZXQgaW5zdGFsbCBrYW1haWxpby1qc29uLW1v ZHVsZXMjPGJyPmxvYWRtb2R1bGUgJnF1b3Q7anNvbi5zbyZxdW90Ozxicj4jIyMjIyMjPGJyPjwv ZGl2PjxkaXY+PGJyPjwvZGl2PmV2ZW50X3JvdXRlW3hodHRwOnJlcXVlc3RdIHs8YnI+wqAgaWYh KGRzdF9wb3J0PT04MDgwKSB7PGJyPsKgIMKgIHhsb2coJnF1b3Q7TF9OT1RJQ0UmcXVvdDssICZx dW90O1tYSFRUUDpSRVFVRVNUXSAkc2kgRk9SQklEREVOISAqKipcbiZxdW90Oyk7PGJyPsKgIMKg IGV4aXQ7PGJyPsKgIH08YnI+wqAgaWYoc3JjX2lwIT0xOTIuMTY4LjIyNC4xODQpIHs8YnI+wqAg wqAgwqAgwqAgeGh0dHBfcmVwbHkoJnF1b3Q7NDAzJnF1b3Q7LCAmcXVvdDtGb3JiaWRkZW4mcXVv dDssICZxdW90O3RleHQvaHRtbCZxdW90Oyw8YnI+wqAgwqAgwqAgwqAgwqAgwqAgJnF1b3Q7Jmx0 O2h0bWwmZ3Q7Jmx0O2JvZHkmZ3Q7Tm90IGFsbG93ZWQgZnJvbSAkc2kmbHQ7L2JvZHkmZ3Q7Jmx0 Oy9odG1sJmd0OyZxdW90Oyk7PGJyPsKgIMKgIMKgIMKgIHhsb2coJnF1b3Q7TF9OT1RJQ0UmcXVv dDssICZxdW90O1tYSFRUUDpSRVFVRVNUXSBOT1QgQUxMT1dFRCBGUk9NICRzaSEgKioqXG4mcXVv dDspOzxicj7CoCDCoCDCoCDCoCBleGl0Ozxicj4JfTxicj7CoCDCoCBpZiAoJGh1ID1+ICZxdW90 O14vbXRyZWUmcXVvdDspIHs8YnI+wqAgwqAgCSR2YXIoZGJtdHJlZSkgPSQocmJ7anNvbi5wYXJz ZSxkYn0pOzxicj7CoCDCoCDCoCDCoCB4bG9nKCZxdW90O0xfTk9USUNFJnF1b3Q7LCAmcXVvdDtb WEhUVFA6UkVRVUVTVF0gJHNpOiRzcCDCoC0gZGI6ICR2YXIoZGJtdHJlZSkgQUNDRVBURUQgKioq XG4mcXVvdDspOzxicj7CoCDCoCDCoCDCoCAkdmFyKGpzb25fcnBjKT0mIzM5O3smcXVvdDtqc29u cnBjJnF1b3Q7OiAmcXVvdDsyLjAmcXVvdDssICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7bXRy ZWUucmVsb2FkJnF1b3Q7LCAmcXVvdDtpZCZxdW90OzogJnF1b3Q7JHZhcihkYm10cmVlKSZxdW90 O30mIzM5Ozs8YnI+wqAgwqAgwqAgwqAganNvbnJwY19leGVjKCR2YXIoanNvbl9ycGMpKTs8YnI+ wqAgwqAgwqAgwqAgeGxvZygmcXVvdDtMX05PVElDRSZxdW90OywmcXVvdDtqc29ucnBjIHJlc3Bv bnNlIGNvZGU6ICRqc29ucnBsKGNvZGUpIC0gdGhlIGJvZHkgaXM6ICRqc29ucnBsKGJvZHkpXG4m cXVvdDspOzxicj7CoCDCoCDCoCDCoCB4aHR0cF9yZXBseSgmcXVvdDsyMDAmcXVvdDssICZxdW90 O0ZvcmJpZGRlbiZxdW90OywgJnF1b3Q7dGV4dC9odG1sJnF1b3Q7LDxicj7CoCDCoCDCoCDCoCDC oCDCoCAmcXVvdDsmbHQ7aHRtbCZndDsmbHQ7Ym9keSZndDtPSyAtIFskc2k6JHNwIMKgLSBkYjog JHZhcihkYm10cmVlKV0mbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0OyZxdW90Oyk7PGJyPsKgIMKg IMKgIMKgIDxicj4JfSBlbHNlIHs8YnI+wqAgwqAgwqAgwqAgeGh0dHBfcmVwbHkoJnF1b3Q7MjAw JnF1b3Q7LCAmcXVvdDtPSyZxdW90OywgJnF1b3Q7dGV4dC9odG1sJnF1b3Q7LDxicj7CoCDCoCDC oCDCoCDCoCDCoCAmcXVvdDsmbHQ7aHRtbCZndDsmbHQ7Ym9keSZndDtXcm9uZyBVUkwgJGh1Jmx0 Oy9ib2R5Jmd0OyZsdDsvaHRtbCZndDsmcXVvdDspOzxicj7CoCDCoCDCoCDCoCB4bG9nKCZxdW90 O0xfTk9USUNFJnF1b3Q7LCAmcXVvdDtbWEhUVFA6UkVRVUVTVF0gV1JPTkcgVVJMICRodSEgKioq XG4mcXVvdDspOzxicj7CoCDCoCB9PGJyPsKgIMKgIHJldHVybjs8YnI+fTxicj48ZGl2Pjxicj48 L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlNhbHVkb3MuPC9kaXY+PC9kaXY+PGJyPjxkaXYgY2xh c3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+RWwgbHVu LCA2IGp1biAyMDIyIGEgbGFzIDk6NDksIGRhbWlhbiAoJmx0OzxhIGhyZWY9Im1haWx0bzpjYXNz aWR5bm9AZ21haWwuY29tIj5jYXNzaWR5bm9AZ21haWwuY29tPC9hPiZndDspIGVzY3JpYmnDszo8 YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBw eCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3Bh ZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIiPjxkaXY+RGlzY3VscGVuLCBlbmNvbnRyw6kg ZWwgZXJyb3IgcG9ycXVlIGVsIHF1ZSBubyBsZXZhbnRhYmEgZWwgcHVlcnRvIDgwODAsIDxicj48 L2Rpdj48ZGl2PlRlbmlhIGVuIGVsIGFyY2hpdm8gZGUgY29uZmlndXJhY2nDs24gZGlzYWJsZV90 Y3A9eWVzLjwvZGl2PjxkaXY+SXJlIHBvciBlbCBjYW1pbm8gZGVsIFJlcXVlc3QgeSB2ZXLDqSBz aSBtZSBmdW5jaW9uYS48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+U2FsdWRv cy48YnI+PC9kaXY+PC9kaXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0i bHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+RWwgbHVuLCA2IGp1biAyMDIyIGEgbGFzIDk6NDEsIGRh bWlhbiAoJmx0OzxhIGhyZWY9Im1haWx0bzpjYXNzaWR5bm9AZ21haWwuY29tIiB0YXJnZXQ9Il9i bGFuayI+Y2Fzc2lkeW5vQGdtYWlsLmNvbTwvYT4mZ3Q7KSBlc2NyaWJpw7M6PGJyPjwvZGl2Pjxi bG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAw LjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6 MWV4Ij48ZGl2IGRpcj0ibHRyIj48ZGl2PkVoIGludGVudGFkbyBsbyBkZWwgZXZlbnRfcm91dGVb eGh0dHA6cmVxdWVzdF0gIHBlcm8gbm8gbG9ncm8gcXVlIEthbWFpbGlvIGVzY3VjaGUgZWwgcHVl cnRvIHF1ZSBjb25maWd1cm8gKDgwLCA4MDgwIG8gY3VhbHF1aWVyIHB1ZXJ0byBxdWUgZGVmaW5h KcKgIHBhcmEgZW52aWFyIGVsIHJlcXVlc3QgdmlhIGh0dHAuPC9kaXY+PGRpdj48YnI+PC9kaXY+ PGRpdj48YnI+PC9kaXY+PGRpdj5UZW5nbyBjb25maWd1cmFkbzo8L2Rpdj48ZGl2Pmxpc3Rlbj10 Y3A6ZXRoMDo4MDgwPGJyPmxpc3Rlbj11ZHA6ZXRoMDo1MDYwPC9kaXY+PGRpdj48YnI+PC9kaXY+ PGRpdj5SZXN1bHRhZG8uPGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+TGlzdGVuaW5nIG9u IDxicj7CoCDCoCDCoCDCoCDCoCDCoCDCoHVkcDogMTcyLngueC54OjUwNjA8YnI+wqAgwqAgwqAg wqAgwqAgwqAgwqB1ZHA6IDxhIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6NTA2MCIgdGFyZ2V0PSJf YmxhbmsiPjEyNy4wLjAuMTo1MDYwPC9hPjxicj5BbGlhc2VzOiA8YnI+wqAgwqAgwqAgwqAgwqAg wqAgwqB1ZHA6IGxvY2FsaG9zdDo1MDYwPGJyPsKgIMKgIMKgIMKgIMKgIMKgIMKgdWRwOiBMQUIt U0VSVkVSOjUwNjA8YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5Tb2xvIG1lIGVzY3VjaGEg ZWwgNTA2MC48YnI+PC9kaXY+PC9kaXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2 IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+RWwgc8OhYiwgNCBqdW4gMjAyMiBhIGxhcyAx Mjo1NSwgSm9zZSBGY28uIElybGVzIER1csOhICgmbHQ7PGEgaHJlZj0ibWFpbHRvOmpvc2VmdUBn bWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5qb3NlZnVAZ21haWwuY29tPC9hPiZndDspIGVzY3Jp YmnDszo8YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFy Z2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwy MDQpO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIiPk90cmEgb3BjacOzbiBlcyBxdWUg aGFnYXMgdW4gR0VUIGEgdW4gcGF0aCBlc3BlY8OtZmljbyBlbiBlbMKgZXZlbnRfcm91dGVbeGh0 dHA6cmVxdWVzdF0geSBhaMOtIGVqZWN1dGVzIGxvIHF1ZSBxdWllcmFzLCBjb21vIHBvciBlamVt cGxvIHVuIHNjcmlwdCBsb2NhbCBwYXJhIGhhY2VyIGxvIHF1ZSBxdWllcmFzLjwvZGl2Pjxicj48 ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGRpdiBkaXI9Imx0ciIgY2xhc3M9ImdtYWlsX2F0dHIi PkVsIHPDoWIsIDQganVuIDIwMjIgYSBsYXMgMTU6MTMsIEpvZWwgU2VycmFubyAoJmx0OzxhIGhy ZWY9Im1haWx0bzpqb2VsQHRleHRwbHVzLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmpvZWxAdGV4dHBs dXMuY29tPC9hPiZndDspIGVzY3JpYmnDszo8YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9Imdt YWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFw eCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJhdXRv Ij5UYW1iacOpbiBwdWVkZXMgdXNhciBlbCBwcm9waW8ganNvbnJwY3NfZXhlYygpIHkgaGFjZXIg ZWwgcmVsb2FkIGRlc2RlIGxhIGNvbmZpZyBjdWFuZG8gdGUgZGUgbGEgZ2FuYS7CoDwvZGl2Pjxk aXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21h aWxfYXR0ciI+T24gRnJpLCBKdW4gMywgMjAyMiBhdCAxNToxNSBEYXZpZCBWaWxsYXNtaWwgJmx0 OzxhIGhyZWY9Im1haWx0bzpkYXZpZC52aWxsYXNtaWwud29ya0BnbWFpbC5jb20iIHRhcmdldD0i X2JsYW5rIj5kYXZpZC52aWxsYXNtaWwud29ya0BnbWFpbC5jb208L2E+Jmd0OyB3cm90ZTo8YnI+ PC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAw cHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRp bmctbGVmdDoxZXgiPjxkaXYgZGlyPSJhdXRvIj5Fc28gbG8gcHVlZGVzIGhhY2VyIGNvbiB1biBh cmNoaXZvIGRlIHRleHRvIHNpbXBsZS4gS2FtYWlsaW8gcHVlZGUgbW9uaXRvcml6YXIgZWwgYXJj aGl2byB5IHJlY2FyZ2FybG8gYXV0b23DoXRpY2FtZW50ZS48L2Rpdj48ZGl2IGRpcj0iYXV0byI+ U2kgbm8sIHB1ZWRlcyBoYWNlciB1biB1biB0aW1lciBxdWUgZGlzcGFyZSB1biB0cmlnZ2VyIHkg cmVjYXJnYXJsby48L2Rpdj48ZGl2Pjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGRpdiBk aXI9Imx0ciIgY2xhc3M9ImdtYWlsX2F0dHIiPk9uIEZyaSwgMyBKdW4gMjAyMiBhdCAyMDozOCwg ZGFtaWFuICZsdDs8YSBocmVmPSJtYWlsdG86Y2Fzc2lkeW5vQGdtYWlsLmNvbSIgdGFyZ2V0PSJf YmxhbmsiPmNhc3NpZHlub0BnbWFpbC5jb208L2E+Jmd0OyB3cm90ZTo8YnI+PC9kaXY+PGJsb2Nr cXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4 O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgi PjxkaXYgZGlyPSJsdHIiPjxkaXY+SG9sYSwgYnVlbmFzIHRhcmRlcy48YnI+PC9kaXY+PGRpdj5U ZW5nbyB1bmEgZHVkYSwgZXNwZXJvIHF1ZSBwdWVkYW4gb3JpZW50YXJtZSBvIGF5dWRhcm1lLjxi cj48L2Rpdj48ZGl2PlRlbmdvIG1vbnRhZG8gdW4gU2lzdGVtYSBkZSBSZWRpcmVjdCBTZXJ2ZXIg Y29uIEthbWFpbGlvLCBmdW5jaW9uYW5kbyBPSy48YnI+PC9kaXY+PGRpdj5Fc3RlIHNlcnZlciBs ZWUgdW5hIHRhYmxhIHF1ZSBzYWxlIGRlIHVuIE1ZU1FMIHkgY29uIGVsIG1vZHVsbyBtdHJlZSBs YSBjYXJnbyBlbiBtZW1vcmlhLjwvZGl2PjxkaXY+Q3VhbmRvIGhhZ28gbW9kaWZpY2FpY29uZXMg ZW4gbGEgREIgcmVmcmVzY28gbG9zIGRhdG9zIGVuIG1lbW9yaWEgY29uIGVsIGNvbWFuZG86IGth bWNtZCBtdHJlZS5yZWxvYWQgbXl0YWJsYS48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkFob3Jh CiBiaWVuLCBoYXkgYWxndW5hIGZvcm1hIGRlIHF1ZSBoYWdhIGVzdGUgcmVsb2FkIGVuIGZvcm1h IHJlbW90YS4gZXMgCmRlY2lyLCBubyB0ZW5lciBxdWUgY29uZWN0YXJtZSBhbCBzZXJ2ZXIgcG9y IHNzaCB5IHRpcmFyIGVsIGNvbWFuZG8gCmxvY2FsbWVudGUuPC9kaXY+PGRpdj5IYXkgYWxndW5h IHBvc2liaWxpZGFkIGRlIHF1ZSBrYW1haWxpbyBlc3RlIGVzY3VjaGFuZG8geSBoYWNlcmxlIGVs IHJlcXVlc3QgZGUgcmVsb2FkPzwvZGl2PjxkaXY+U2kgbG8gaGF5LCBjdWVudGFuIGNvbiBhbGd1 biBlamVtcGxvIHF1ZSBwdWVkZSB1dGlsaXphciBkZSByZWZlcmVuY2lhPzwvZGl2PjxkaXY+PGJy PjwvZGl2PjxkaXY+U2FsdWRvcy48L2Rpdj48L2Rpdj4KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX188YnI+CnNyLXVzZXJzLWVzIG1haWxpbmcgbGlzdDxicj4K PGEgaHJlZj0ibWFpbHRvOnNyLXVzZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9yZyIgdGFyZ2V0PSJf YmxhbmsiPnNyLXVzZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9yZzwvYT48YnI+CjxhIGhyZWY9Imh0 dHBzOi8vbGlzdHMua2FtYWlsaW8ub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9zci11c2Vy cy1lcyIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9saXN0cy5rYW1h aWxpby5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3NyLXVzZXJzLWVzPC9hPjxicj4KPC9i bG9ja3F1b3RlPjwvZGl2PjwvZGl2Pi0tIDxicj48ZGl2IGRpcj0ibHRyIj48ZGl2IGRpcj0ibHRy Ij48ZGl2PlJlZ2FyZHMsPC9kaXY+PGRpdj48YnI+PC9kaXY+RGF2aWQgVmlsbGFzbWlsPGRpdj5l bWFpbDogPGEgaHJlZj0ibWFpbHRvOmRhdmlkLnZpbGxhc21pbC53b3JrQGdtYWlsLmNvbSIgdGFy Z2V0PSJfYmxhbmsiPmRhdmlkLnZpbGxhc21pbC53b3JrQGdtYWlsLmNvbTwvYT48L2Rpdj48ZGl2 PnBob25lOiArMzQ2Njk0NDgzMzc8L2Rpdj48L2Rpdj48L2Rpdj4KX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+CnNyLXVzZXJzLWVzIG1haWxpbmcgbGlz dDxicj4KPGEgaHJlZj0ibWFpbHRvOnNyLXVzZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9yZyIgdGFy Z2V0PSJfYmxhbmsiPnNyLXVzZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9yZzwvYT48YnI+CjxhIGhy ZWY9Imh0dHBzOi8vbGlzdHMua2FtYWlsaW8ub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9z ci11c2Vycy1lcyIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9saXN0 cy5rYW1haWxpby5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3NyLXVzZXJzLWVzPC9hPjxi cj4KPC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXzxicj4Kc3ItdXNlcnMtZXMgbWFpbGluZyBsaXN0PGJyPgo8YSBo cmVmPSJtYWlsdG86c3ItdXNlcnMtZXNAbGlzdHMua2FtYWlsaW8ub3JnIiB0YXJnZXQ9Il9ibGFu ayI+c3ItdXNlcnMtZXNAbGlzdHMua2FtYWlsaW8ub3JnPC9hPjxicj4KPGEgaHJlZj0iaHR0cHM6 Ly9saXN0cy5rYW1haWxpby5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3NyLXVzZXJzLWVz IiByZWw9Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2xpc3RzLmthbWFpbGlv Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vc3ItdXNlcnMtZXM8L2E+PGJyPgo8L2Jsb2Nr cXVvdGU+PC9kaXY+PGJyIGNsZWFyPSJhbGwiPjxkaXY+PGJyPjwvZGl2Pi0tIDxicj48ZGl2IGRp cj0ibHRyIj5Kb3NlIEZjby4gSXJsZXMgRHVyw6E8L2Rpdj4KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX188YnI+CnNyLXVzZXJzLWVzIG1haWxpbmcgbGlzdDxi cj4KPGEgaHJlZj0ibWFpbHRvOnNyLXVzZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9yZyIgdGFyZ2V0 PSJfYmxhbmsiPnNyLXVzZXJzLWVzQGxpc3RzLmthbWFpbGlvLm9yZzwvYT48YnI+CjxhIGhyZWY9 Imh0dHBzOi8vbGlzdHMua2FtYWlsaW8ub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9zci11 c2Vycy1lcyIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9saXN0cy5r YW1haWxpby5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3NyLXVzZXJzLWVzPC9hPjxicj4K PC9ibG9ja3F1b3RlPjwvZGl2Pgo8L2Jsb2NrcXVvdGU+PC9kaXY+CjwvYmxvY2txdW90ZT48L2Rp dj4K --===============1394401481==--