From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 80852C433ED for ; Mon, 19 Apr 2021 03:32:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3EB7961104 for ; Mon, 19 Apr 2021 03:32:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232714AbhDSDc4 (ORCPT ); Sun, 18 Apr 2021 23:32:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42800 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232317AbhDSDc4 (ORCPT ); Sun, 18 Apr 2021 23:32:56 -0400 Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83B5CC06174A for ; Sun, 18 Apr 2021 20:32:26 -0700 (PDT) Received: by mail-pj1-x1033.google.com with SMTP id ot17-20020a17090b3b51b0290109c9ac3c34so19520426pjb.4 for ; Sun, 18 Apr 2021 20:32:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=VRRiM2eRz6+uJHnLnprmwoiOEMP9tpLEQZT39MvFt3k=; b=RiLNYjxAJHZfgtphrNe5fKu6OOT13KmecnPI7ZZ/Dd9TnWp9fMTNEmtADWfTktbTCf WpdqUNaHbtpAMK1zPGn8GvOntKRqRZ+4suY7AnAVnWS+kRwTrQ5O4egFlyLrKlAiri/w WzlKhBi/vB+sSXzHT0TwcudG08A0SAHkhS13S9p53n+sOImN0EbX585gmnv4bhTHj8xj E55rlkt4Bhg5hrjYKD4jXCfcVKIxZ0U9g473bx3mJS8aMuBl3AC9rrlnkTCc6NC5CsWE 2vpOYdzKaD9fvqkTdQ4PVMH1La3cvZOFMnLsoTcOxX2wvvvBvC4lg4u06bmxfndlkn4a xVgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=VRRiM2eRz6+uJHnLnprmwoiOEMP9tpLEQZT39MvFt3k=; b=ct0z7Pdt5TrVxOF6jYoC2GLEb9z24UvT6TRciJ5O+HSzUNQPv0le0flS32UgLMuwwD eA1pTDT/hhFKwX7F6JXT7MdrfQsmgeSaAR35AsgwPwpatcpnRdHf7MYWlSm5TIhxN/pW uJ1AocgnhdqCQCh3cYhSSxfN1pMc07siY8ucgJApIXI2O54On8uH2gIR10dK2SXryWyg QuFTqgBKLAD7Ptd6/9unNv2FQhkxsy0Jk+gLFHO/Auy5dOoCVyuZ3Q3jpOtCwm3urEmV pMRzS+bo3SVSbBEMKWvxgSVdgHis2e/dnrFsMv9HA1Eubj5DTc6kNfVLmfc1NcJCxBwR WnIg== X-Gm-Message-State: AOAM531SPci1cjrPpNn0G7RbN92xLpAygNElfyin6CVh3p6j9bKHn6Ex 4SBaoEN2ONu0tHAwBqMPtibLsYR6SDNlLl3qlkHUcikpgYo= X-Google-Smtp-Source: ABdhPJwubptww8slAPI5mr9pUpGf8fCOCckwDtr9gQT7zGX+09rWw1x8tzz97QiEe5CSYdi48ZqPL7Z3mWbyorXP+PY= X-Received: by 2002:a17:90a:f40a:: with SMTP id ch10mr21907184pjb.62.1618803145096; Sun, 18 Apr 2021 20:32:25 -0700 (PDT) MIME-Version: 1.0 References: <26979ff9c52fe352f117204b3c5b939e4fe0c58d.1618761749.git.bobwxc@email.cn> In-Reply-To: <26979ff9c52fe352f117204b3c5b939e4fe0c58d.1618761749.git.bobwxc@email.cn> From: teng sterling Date: Mon, 19 Apr 2021 11:32:15 +0800 Message-ID: Subject: Re: [PATCH 1/2] docs/zh_CN: Add translation zh_CN/kernel-hacking/locking.rst To: Wu XiangCheng Cc: Alex Shi , Jonathan Corbet , Yanteng Si , linux-doc@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-doc@vger.kernel.org V3UgWGlhbmdDaGVuZyA8Ym9id3hjQGVtYWlsLmNuPiDkuo4yMDIx5bm0NOaciDE55pel5ZGo5LiA IOS4iuWNiDEyOjEx5YaZ6YGT77yaDQo+DQo+IEFkZCBhIG5ldyB0cmFuc2xhdGlvbg0KPiAgIERv Y3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2tlcm5lbC1oYWNraW5nL2xvY2tpbmcucnN0 DQo+IGFuZCBsaW5rIGl0IHRvIHpoX0NOL2tlcm5lbC1oYWNraW5nL2luZGV4LnJzdA0KPg0KPiBT aWduZWQtb2ZmLWJ5OiBXdSBYaWFuZ0NoZW5nIDxib2J3eGNAZW1haWwuY24+DQo+IC0tLQ0KPiAg Li4uL3poX0NOL2tlcm5lbC1oYWNraW5nL2luZGV4LnJzdCAgICAgICAgICAgIHwgICAgNSArLQ0K PiAgLi4uL3poX0NOL2tlcm5lbC1oYWNraW5nL2xvY2tpbmcucnN0ICAgICAgICAgIHwgMTI0OSAr KysrKysrKysrKysrKysrKw0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMjUwIGluc2VydGlvbnMoKyks IDQgZGVsZXRpb25zKC0pDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi90cmFu c2xhdGlvbnMvemhfQ04va2VybmVsLWhhY2tpbmcvbG9ja2luZy5yc3QNCj4NCj4gZGlmZiAtLWdp dCBhL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2tlcm5lbC1oYWNraW5nL2luZGV4 LnJzdCBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2tlcm5lbC1oYWNraW5nL2lu ZGV4LnJzdA0KPiBpbmRleCBkZjUzMGRlMjI3OGQuLjIzMDQzOWFlMjFkZSAxMDA2NDQNCj4gLS0t IGEvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04va2VybmVsLWhhY2tpbmcvaW5kZXgu cnN0DQo+ICsrKyBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2tlcm5lbC1oYWNr aW5nL2luZGV4LnJzdA0KPiBAQCAtMTYsNyArMTYsNCBAQA0KPiAgICAgOm1heGRlcHRoOiAyDQo+ DQo+ICAgICBoYWNraW5nDQo+IC0NCj4gLVRPRE8NCj4gLQ0KPiAtLSBsb2NraW5nDQo+ICsgICBs b2NraW5nDQo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9r ZXJuZWwtaGFja2luZy9sb2NraW5nLnJzdCBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3po X0NOL2tlcm5lbC1oYWNraW5nL2xvY2tpbmcucnN0DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ IGluZGV4IDAwMDAwMDAwMDAwMC4uNjZmMTQ0ZTQ4ZDBjDQo+IC0tLSAvZGV2L251bGwNCj4gKysr IGIvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04va2VybmVsLWhhY2tpbmcvbG9ja2lu Zy5yc3QNCj4gQEAgLTAsMCArMSwxMjQ5IEBADQo+ICsuLiBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMA0KPiArDQo+ICsuLiBpbmNsdWRlOjogLi4vZGlzY2xhaW1lci16aF9DTi5yc3QN Cj4gKw0KPiArOk9yaWdpbmFsOiBEb2N1bWVudGF0aW9uL2tlcm5lbC1oYWNraW5nL2xvY2tpbmcu cnN0DQo+ICsNCj4gKzror5HogIU6DQo+ICsNCj4gKyDlkLTmg7PmiJAgV3UgWGlhbmdDaGVuZyA8 Ym9id3hjQGVtYWlsLmNuPg0KPiArDQo+ICsuLiBfa2VybmVsX2hhY2tpbmdfbG9ja196aDoNCj4g Kw0KPiArPT09PT09PT09PQ0KPiAr6ZSB5pON5L2c5oyH5YyXDQo+ICs9PT09PT09PT09DQrmjIfl jJcgLT4g5oyH5Y2X77yfDQpJIHRoaW5rIGtlcm5lbCBkb2N1bWVudHMgYXJlIHB1YmxpY2F0aW9u cywgYW5kIHRoZSB3b3JkcyB1c2VkIGhlcmUgYXJlDQpub3QgZm9ybWFsLCBlc3BlY2lhbGx5IHRo ZSB0aXRsZS4NCuKAneaMh+WMl+KAnOWSjOKAneaMh+WNl+KAnOWcqOivjeS5ieS4iuacieetieWQ jOeahOWcsOaWue+8jOKAneaMh+WNl+KAnOi+g+S4uuato+W8j+OAgeS4peiCg+S4lOS9v+eUqOiM g+WbtOW5v+azm++8jOKAneaMh+WMl+KAnOi+g+S4uui9u+advumaj+aEj+OAgg0K5oiR5Lus5bqU 6K+l5Zyo5LiN5ZCM55qE5Zy65ZCI5L2/55So5LiN5ZCM55qE6K+N44CC6K+m5oOF6K+35Y+C6ZiF 77yaDQpbMV3mnY7lvrfpvpku4oCc5oyH5YyX4oCd5LiO4oCc5oyH5Y2X4oCdW0pdLuivreaWh+W7 uuiuviwyMDAzKDA1KTo0MC4NClsyXeeJm+a0pemrmOmYtuWPjOivreivjeWFuA0KWzFd5byg6bmP LuaMh+WNl+mSiOS4uuS7gOS5iOS4jeWPq+aMh+WMl+mSiFtKXS7mlbDlrablpKfkuJbnlYwo5bCP 5a2m5LiJ5Zub5bm057qn6YCC55SoKSwyMDExKDAzKToyMC4NCj4gKw0KPiArOkF1dGhvcjogUnVz dHkgUnVzc2VsbA0KPiArDQo+ICvliY3oqIANCj4gKz09PT0NCj4gKw0KPiAr5qyi6L+O5p2l5Yiw UnVzdHnnmoTkuI3pnaDosLHlhoXmoLjplIHmk43kvZzpl67popjmjIfljZfjgILmnKzmlofmoaPm j4/ov7DkuoZMaW51eOWGheaguDIuNueJiOacrOeahOmUgeezu+e7n+OAgg0KPiArDQo+ICvpmo/n nYBMaW51eOWGheaguOS4rei2hee6v+eoi+WSjOaKouWNoOeahOW5v+azm+WPr+eUqO+8jOi/m+ih jOWGheaguOe8lueoi+eahOavj+S4quS6uumDvemcgOimgeS6huino1NNUA0KPiAr77yIU3ltbWV0 cmljYWwgTXVsdGktUHJvY2Vzc2luZ++8jOWvueensOWkmuWkhOeQhu+8ieeahOW5tuWPkeS4jumU geeahOWfuuacrOWOn+eQhuOAgg0KPiArDQo+ICvlubblj5Hpl67popgNCj4gKz09PT09PT09DQo+ ICsNCj4gKyrvvIjlpoLmnpzmgqjnn6XpgZPku4DkuYjmmK/nq57mgIFbUmFjZSBDb25kaXRpb25d 77yM6K+36Lez6L+H44CC77yJKg0KZGVsZXRlICoNCj4gKw0KPiAr5Zyo5pmu6YCa56iL5bqP5Lit 77yM5Y+v5Lul5oyJ5aaC5LiL5pa55byP6YCS5aKe6K6h5pWw5Zmo77yaDQo+ICsNCj4gKzo6DQo+ ICsNCj4gKyAgICAgICAgICB2ZXJ5X2ltcG9ydGFudF9jb3VudCsrOw0KPiArDQo+ICsNCj4gK+S7 peS4i+aYr+S7luS7rOmihOacn+S8muWPkeeUn+eahO+8mg0KPiArDQo+ICsuLiB0YWJsZTo6IOmi hOacn+e7k+aenA0KPiArDQo+ICsgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArICB8IOWunuS+iyAx ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IOWunuS+iyAyICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8DQo+ICsgICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0r PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kw0KPiArICB8IOivu+WPliB2ZXJ5 X2ltcG9ydGFudF9jb3VudCAoNSkgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfA0KPiArICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgfCDliqAgMSAoNikgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fA0KPiArICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgfCDlhpnlm54gdmVyeV9pbXBvcnRhbnRf Y291bnQgKDYpICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4g KyAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IOivu+WPliB2ZXJ5X2ltcG9ydGFudF9jb3VudCAoNikgICAgICB8DQo+ICsgICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKw0KPiArICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCDliqAgMSAoNykgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsgICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKw0KPiArICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCDl hpnlm54gdmVyeV9pbXBvcnRhbnRfY291bnQgKDcpICAgICAgfA0KPiArICArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsNCnZlcnlfaW1wb3J0YW50X2NvdW50IElzIG5vdCBhIGZpbGUgb3Igc3RvcmFnZSBoYXJk d2FyZSwgaXQgaXMganVzdCBhDQp2YXJpYWJsZSBpbiBhIHByb2dyYW0gc2VnbWVudCwgc28gaXQg c2hvdWxkIGJlIHRyYW5zbGF0ZWQgYXPvvJoNCnJlYWQgLT4g6K+7DQp3cml0ZSAtPiDlhpkNCj4g Kw0KPiAr5Lul5LiL5piv5Y+v6IO95Lya5Y+R55Sf55qE77yaDQo+ICsNCj4gKy4uIHRhYmxlOjog 5Y+v6IO955qE57uT5p6cDQo+ICsNCj4gKyAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsgIHwg5a6e 5L6LIDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg5a6e5L6LIDIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwNCj4gKyAgKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rDQo+ICsgIHwg6K+75Y+W IHZlcnlfaW1wb3J0YW50X2NvdW50ICg1KSAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8DQo+ICsgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCDor7vlj5YgdmVyeV9pbXBvcnRhbnRfY291bnQgKDUp ICAgICAgfA0KPiArICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgfCDliqAgMSAoNikgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fA0KPiArICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwg5YqgIDEgKDYpICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiAr ICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgfCDlhpnlm54gdmVyeV9pbXBvcnRhbnRfY291bnQg KDYpICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKyAgKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rDQo+ICsgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IOWGmeWbniB2ZXJ5X2ltcG9ydGFudF9jb3VudCAoNikgICAgICB8DQo+ICsgICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKw0K4oCd6K+74oCcIGFuZCAi5YaZ4oCdDQo+ICsNCj4gKw0KPiAr56ue5LqJ5oCB 5Yq/5LiO5Li055WM5Yy65Z+fDQrnq57mgIHvvJ8g56ue5LqJ5oCB5Yq/77yfDQpQbGVhc2UgYmUg Y29uc2lzdGVudA0KPiArLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gK+i/meenjemHjeWPoOS8 muWvvOiHtOe7k+aenOWPluWGs+S6juWkmuS4quS7u+WKoeeahOebuOWvueaXtumXtO+8jOensOS4 uuernuS6ieaAgeWKv++8iFJhY2UgQ29uZGl0aW9u77yMDQpBcHBlYXJlZCBmb3IgdGhlIHRoaXJk IHRpbWUNCmRlbGV0ZSAoKQ0KPiAr56ue5oCB77yJ44CC5YyF5ZCr5bm25Y+R6Zeu6aKY55qE5Luj 56CB5q6156ew5Li65Li055WM5Yy65Z+f77yIQ3JpdGljYWwgUmVnaW9u77yJ44CC54m55Yir5piv 5LuOTGludXgNCj4gK+W8gOWni+WcqFNNUOacuuWZqOS4iui/kOihjOS7peadpe+8jOWug+S7rOaI kOS4uuWGheaguOiuvuiuoeWSjOWunueOsOS4reeahOS4u+imgemXrumimOS5i+S4gOOAgg0KPiAr DQo+ICvmiqLljaDvvIhQcmVlbXB0aW9u77yJ5Y+v5Lul5Lqn55Sf55u45ZCM55qE5pWI5p6c77yM 5Y2z5L2/5Y+q5pyJ5LiA5LiqQ1BV77ya6YCa6L+H5Zyo5YWz6ZSu5Yy65Z+f5oqi5Y2g5LiA5Liq DQrlhbPplK7ljLrln5/vvJ/kuLTnlYzljLrln5/vvIhDcml0aWNhbCBSZWdpb27vvInvvJ8NClBs ZWFzZSBiZSBjb25zaXN0ZW50DQo+ICvku7vliqHvvIzlsLHkvJrlh7rnjrDkuIDmoLfnmoTnq57k uonmnaHku7bjgILlnKjov5nnp43mg4XlhrXkuIvvvIzmiqLljaDnmoTnur/nqIvlj6/og73kvJro v5DooYzlhbPplK7ljLrln5/mnKzouqvjgIINCj4gKw0KPiAr6Kej5Yaz5pa55qGI5piv6K+G5Yir 6L+Z5Lqb5ZCM5q2l6K6/6Zeu5L2V5pe25Y+R55Sf77yM5bm25L2/55So6ZSB5p2l56Gu5L+d5Lu7 5oSP5pe25Yi75Y+q5pyJ5LiA5Liq5a6e5L6L5Y+v5Lul6L+bDQo+ICvlhaXlhbPplK7ljLrln5/j gIJMaW51eOWGheaguOS4reacieiuuOWkmuWPi+WlveeahOWOn+ivreWPr+S7peW4ruWKqeaCqOWB muWIsOi/meS4gOeCueOAguS5n+acieS4gOS6m+S4jeWlveS9v+eahA0KPiAr5Y6f6K+t77yM5LiN 6L+H5oiR5Lya5YGH6KOF5LuW5Lus5LiN5a2Y5Zyo44CCDQo+ICsNClRoZXJlJ3MgYSB0aHJlYWQg Y2FsbGVkIEh1bmdyeSwgd2hpY2ggcHJlZW1wdGlvbnMgbWUuICB+Pl88fg0KVGhlIGFmdGVybm9v biBjb250aW51ZXPjgIINCj4gK0xpbnV45YaF5qC455qE6ZSB5pON5L2cDQo+ICs9PT09PT09PT09 PT09PT09PQ0KPiArDQo+ICvlpoLmnpzpnZ7opoHmiJHnu5nkvaDlhbPkuo7plIHnmoTlu7rorq7v vIzpgqPlsLHmmK8qKuS/neaMgeeugOWNlSoq44CCDQo+ICsNCj4gK+S4jeimgei9u+aYk+W8leWF peaWsOmUgeOAgg0KPiArDQo+ICvkuKTnp43kuLvopoHnmoTlhoXmoLjplIHvvJroh6rml4vplIHl kozkupLmlqXplIENCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4g K+WGheaguOmUgeS4u+imgeacieS4pOenjeexu+Wei+OAgg0KPiArDQo+ICvmnIDln7rmnKznmoTn sbvlnovmmK/oh6rml4vplIHvvIhzcGlubG9ja++8jCBgYGluY2x1ZGUvYXNtL3NwaW5sb2NrLmhg YCDvvInvvIzov5nmmK/kuIDkuKrpnZ7luLgNCj4gK+eugOWNleeahOWNleaMgeacieiAhemUge+8 muWmguaenOaXoOazleiOt+W+l+iHquaXi+mUge+8jOWImee7p+e7reWwneivle+8iOiHquaXi++8 ieebtOWIsOWPr+S7peOAguiHquaXi+mUgemdnuW4uA0KPiAr5bCP5LiU5b+r6YCf77yM5Y+v5Lul 5Zyo5Lu75L2V5Zyw5pa55L2/55So44CCDQo+ICsNCj4gK+esrOS6jOenjeexu+Wei+aYr+S6kuaW pemUge+8iG11dGV477yMIGBgaW5jbHVkZS9saW51eC9tdXRleC5oYGAg77yJ77ya5a6D57G75Ly8 5LqO6Ieq5peL6ZSB77yM5L2GDQo+ICvmmK/mgqjlj6/ku6XpmLvmraLmjIHmnInkupLmlqXplIHj gILlpoLmnpzml6Dms5XliqDkuIrkupLmlqXplIHvvIzliJnku7vliqHlsIbmjILotbfvvIzlubbl nKjph4rmlL7kupLmlqXplIHml7booqsNCj4gK+WUpOmGkuOAgui/meaEj+WRs+edgENQVeWPr+S7 peWcqOaCqOetieW+heaXtuaJp+ihjOWFtuS7luaTjeS9nOOAguWcqOW+iOWkmuaDheWGteS4i++8 jOS9oOaXoOazleedoeecoO+8iOingQ0KPiArYOS7juS4reaWreS4reiwg+eUqOWTquS6m+WHveaV sOaYr+WuieWFqOeahO+8n2BfIO+8ie+8jOatpOaXtuW/hemhu+aUueeUqOiHquaXi+mUgeOAgg0K PiArDQo+ICvov5nkuKTnp43plIHpg73kuI3mmK/pgJLlvZLnmoTvvJror7flj4LpmIUgYOatu+mU ge+8muWFpemXqOS4jui/m+mYtmBfIOOAgg0KPiArDQo+ICvplIHlkozljZXlpITnkIblmajlhoXm oLgNCj4gKy0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiAr5a+55LqO57yW6K+R5pe25pyq5ZCv55So IGBgQ09ORklHX1NNUGBgIOWSjCBgYENPTkZJR19QUkVFTVBUYGAg55qE5YaF5qC477yM6Ieq5peL 6ZSB5qC55pys5LiN5a2Y5Zyo44CCDQo+ICvov5nmmK/kuIDkuKrlvojlpb3nmoTorr7orqHlhrPn rZbvvJrlvZPmsqHmnInlhbbku5bov5vnqIvlj6/ku6XlkIzml7bov5DooYzml7bvvIzplIHlsLHm sqHmnInlrZjlnKjmhI/kuYnkuobjgIINCj4gKw0KPiAr5aaC5p6c57yW6K+R5YaF5qC45pe25pyq 5ZCv55SoIGBgQ09ORklHX1NNUGBgIO+8jOS9huaYr+WQr+eUqOS6hiBgYENPTkZJR19QUkVFTVBU YGAg77yM6YKj5LmI6Ieq5peLDQo+ICvplIHlj6rkvJrnpoHnlKjmiqLljaDvvIzov5notrPku6Xp mLLmraLku7vkvZXnq57kuonjgILlnKjlpKflpJrmlbDmg4XlhrXkuIvvvIzmiJHku6zlj6/ku6Xl sIbmiqLljaDmnYPop4bkuLrnrYnlkIzkuo4NCj4gK1NNUO+8jOiAjOS4jeW/heWNleeLrOaLheW/ g+Wug+OAgg0KPiArDQo+ICvmgqjlupTor6Xlp4vnu4jlnKjlkK/nlKggYGBDT05GSUdfU01QYGAg 5ZKMIGBgQ09ORklHX1BSRUVNUFRgYCDnmoTmg4XlhrXkuIvmtYvor5XplIHku6PnoIHvvIzljbPk vb8NCj4gK+aCqOayoeaciVNNUOa1i+ivleiuvuWkh++8jOWboOS4uui/meS7jeeEtuiDveaNleiO t+afkOS6m+exu+Wei+eahOmUgee8uumZt+OAgg0KPiArDQo+ICvkupLmlqXplIHku43nhLblrZjl nKjvvIzlm6DkuLrlroPku6zmmK/lnKjnlKjmiLfkuIrkuIvmlofkuYvpl7Tov5vooYzlkIzmraXm iYDlv4XpnIDnmoTvvIzmiJHku6zlsIblnKjkuIvpnaLnnIvliLDjgIINCj4gKw0KPiAr5LuF5Zyo 55So5oi35LiK5LiL5paH5Lit55qE6ZSB5pON5L2cDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gKw0KPiAr5aaC5p6c5oKo5pyJ5LiA5Liq5Y+q6IO95LuO55So5oi35LiK5LiL5paH6K6/ 6Zeu55qE5pWw5o2u57uT5p6E77yM6YKj5LmI5Y+v5Lul5L2/55So5LiA5Liq566A5Y2V55qE5LqS 5pal6ZSB77yIDQo+ICtgYGluY2x1ZGUvbGludXgvbXV0ZXguaGBgIO+8ieadpeS/neaKpOWug+OA gui/meaYr+acgOeugOWNleeahOaDheW9ou+8muWIneWni+WMluS6kuaWpemUgeOAgueEtuWQjuiw g+eUqA0KPiArbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCnmnaXojrflj5bkupLmlqXplIHvvIzm iJbosIPnlKhtdXRleF91bmxvY2soKeadpemHiuaUvuWug+OAgui/mOacieS4gOS4qg0KPiAr5bqU 6YG/5YWN5L2/55So55qEbXV0ZXhfbG9jaygp77yM5Zug5Li65b2T5pS25Yiw5L+h5Y+35pe25a6D 5LiN5Lya6L+U5Zue44CCDQo+ICsNCj4gK+ekuuS+i++8miBgYG5ldC9uZXRmaWx0ZXIvbmZfc29j a29wdC5jYGAg5YWB6K645L2/55SobmZfcmVnaXN0ZXJfc29ja29wdCgp5rOo5YaM5paw55qEDQo+ ICtzZXRzb2Nrb3B0KCnlkoxnZXRzb2Nrb3B0KCkg6LCD55So44CC5rOo5YaM5ZKM5Y+W5raI5rOo 5YaM5LuF5Zyo5qih5Z2X5Yqg6L295ZKM5Y246L295pe277yI5Lul5Y+K5byV5a+8DQo+ICvml7bv vIzlnKjmsqHmnInlubblj5HnmoTmg4XlhrXkuIvvvInlrozmiJDvvIzlubbkuJTms6jlhozliJfo oajku4XnlKjkuo7mnKrnn6XnmoRzZXRzb2Nrb3B0KCnmiJYNCj4gK2dldHNvY2tvcHQoKeezu+e7 n+iwg+eUqOOAgiBgYG5mX3NvY2tvcHRfbXV0ZXhgYCDpnZ7luLjpgILlkIjnlKjmnaXkv53miqTm raTmg4XlhrXvvIzlsKTlhbbmmK/lm6DkuLoNCj4gK3NldHNvY2tvcHTlkoxnZXRzb2Nrb3B06LCD 55So5Y+v6IO95Lya552h55yg44CCDQo+ICsNCj4gK+eUqOaIt+S4iuS4i+aWh+WSjOi9r+S4reaW reS5i+mXtOeahOmUgeaTjeS9nA0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ ICsNCj4gK+WmguaenOi9r+S4reaWre+8iHNvZnRpcnHvvInpnIDopoHkuI7nlKjmiLfkuIrkuIvm loflhbHkuqvmlbDmja7vvIzliJnkvJrkuqfnlJ/kuKTkuKrpl67popjjgILpppblhYjvvIzlvZPl iY0NCj4gK+eUqOaIt+S4iuS4i+aWh+WPr+S7peiiq+i9r+S4reaWreS4reaWre+8m+WFtuasoe+8 jOWFs+mUruWMuuWfn+WPr+S7peS7juWPpuS4gOS4qkNQVei/m+WFpeOAguatpOaXtuW6lOW9k+S9 v+eUqA0KPiArc3Bpbl9sb2NrX2JoKCnvvIggYGBpbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmhgYCDv vInjgILlroPnpoHnlKjmraRDUFXkuIrnmoTova/kuK3mlq3vvIznhLblkI4NCj4gK+iOt+WPlumU geOAgnNwaW5fdW5sb2NrX2JoKCnmiafooYznm7jlj43nmoTmk43kvZzvvIjigJxfYmjigJ3lkI7n vIDmmK/lr7nigJzkuIvljYrpg6hbQm90dG9tIEhhbHZlc13igJ0NCj4gK+eahOWOhuWPsuaAp+W8 leeUqO+8jOi/meaYr+i9r+S4reaWreeahOaXp+WQjeensOOAguWug+WunumZheS4iuW6lOivpeii q+ensOS4unNwaW5fbG9ja19zb2Z0aXJxKCnvvInjgIINCj4gKw0KPiAr6K+35rOo5oSP77yM5oKo 5Lmf5Y+v5Lul5Zyo5q2k5aSE5L2/55SoIHNwaW5fbG9ja19pcnEoKeaIlnNwaW5fbG9ja19pcnFz YXZlKCnvvIzlroPku6zlj6/ku6XlgZzmraINCj4gK+ehrOS4reaWre+8jOivt+WPgumYhSBg56Gs 5Lit5pat5LiK5LiL5paHYF8g44CCDQo+ICsNCj4gK+i/meWvuVVQ5Lmf6Z2e5bi45pyJ5pWI77ya 6Ieq5peL6ZSB5raI5aSx77yM6L+Z5Liq5a6P5Lya55u05o6l5Y+Y5oiQbG9jYWxfYmhfZGlzYWJs ZSgp77yIDQo+ICtgYGluY2x1ZGUvbGludXgvaW50ZXJydXB0LmhgYCDvvInvvIzkv53miqTmgqjk uI3lj5fmraPlnKjov5DooYznmoTova/kuK3mlq3nmoTlvbHlk43jgIINCj4gKw0KPiAr55So5oi3 5LiK5LiL5paH5ZKM5a2Q5Lu75Yqh5LmL6Ze055qE6ZSB5pON5L2cDQo+ICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiAr6L+Z5LiO5LiK6Z2i55qE5a6M5YWo55u45ZCM77yM 5Zug5Li65a2Q5Lu75Yqh77yIVGFza2xldO+8ieWunumZheS4iuaYr+S7jui9r+S4reaWrei/kOih jOeahOOAgg0KPiArDQo+ICvnlKjmiLfkuIrkuIvmloflkozorqHml7blmajkuYvpl7TnmoTplIHm k43kvZwNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICvov5nkuZ/k uI7kuIrpnaLlrozlhajnm7jlkIzvvIzlm6DkuLrorqHml7blmajlrp7pmYXkuIrkuZ/mmK/ku47o va/kuK3mlq3ov5DooYznmoTjgIINCj4gK+S7jumUgeeahOinkuW6puadpeeci++8jOWtkOS7u+WK oeWSjOiuoeaXtuWZqOaYr+ebuOWQjOeahOOAgg0KPiArDQo+ICvlrZDku7vliqEv6K6h5pe25Zmo 5LmL6Ze055qE6ZSB5pON5L2cDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4g K+acieaXtu+8jOS4gOS4quWtkOS7u+WKoeaIluiuoeaXtuWZqOWPr+iDveW4jOacm+S4juWPpuS4 gOS4quWtkOS7u+WKoeaIluiuoeaXtuWZqOWFseS6q+aVsOaNruOAgg0KPiArDQo+ICvnm7jlkIzn moTlrZDku7vliqEv6K6h5pe25ZmoDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK+eU seS6juWtkOS7u+WKoeawuOi/nOS4jeS8muWQjOaXtuWcqOS4pOS4qkNQVeS4iui/kOihjO+8jOWb oOatpOaCqOS4jeW/heaLheW/g+aCqOeahOWtkOS7u+WKoeaYr+WPr+mHjeWFpeeahA0KPiAr77yI 5LiA5LiL6L+Q6KGM5Lik5qyh77yJ77yM5Y2z5L2/5piv5ZyoU01Q5LiK44CCDQo+ICsNCj4gK+S4 jeWQjOeahOWtkOS7u+WKoS/orqHml7blmagNCj4gK35+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0K PiAr5aaC5p6c5Y+m5LiA5Liq5a2Q5Lu75YqhL+iuoeaXtuWZqOW4jOacm+S4juaCqOeahOWtkOS7 u+WKoeaIluiuoeaXtuWZqOWFseS6q+aVsOaNru+8jOWImeaCqOmcgOimgeS9v+eUqA0KPiArdXNl IHNwaW5fbG9jaygp5ZKMc3Bpbl91bmxvY2soKeiwg+eUqOOAgui/memHjOaXoOmcgOS9v+eUqHNw aW5fbG9ja19iaCgp77yM5Zug5Li65oKo5bey57uP5ZyoDQo+ICvkuIDkuKrlrZDku7vliqHkuK3v vIzlubbkuJTkuI3kvJrmnInlj6bkuIDkuKrlnKjlkIzkuIDkuKpDUFXkuIrov5DooYzjgIINCj4g Kw0KPiAr6L2v5Lit5pat5LmL6Ze055qE6ZSB5pON5L2cDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0N Cj4gKw0KPiAr6L2v5Lit5pat5bi45bi45Y+v6IO95biM5pyb5LiO6Ieq5bex5oiW5a2Q5Lu75Yqh L+iuoeaXtuWZqOWFseS6q+aVsOaNruOAgg0KPiArDQo+ICvnm7jlkIznmoTova/kuK3mlq0NCj4g K35+fn5+fn5+fn5+fg0KPiArDQo+ICvlkIzmoLfnmoTova/kuK3mlq3lj6/ku6XlnKjlhbbku5ZD UFXkuIrov5DooYzvvJrmgqjlj6/ku6Xkvb/nlKjpgJBDUFXmlbDnu4TvvIjlj4Lop4EgYOmAkENQ VeaVsOaNrmBfIO+8ieadpQ0KPiAr6I635b6X5pu05aW955qE5oCn6IO944CC5aaC5p6c5oKo5omT 566X5L2/55So6L2v5Lit5pat77yM6YKj5LmI5oKo5Y+v6IO96Z2e5bi45YWz5b+D5Y+v5Ly457yp 5oCn6IO977yM6Laz5Lul5aSE55CGDQo+ICvpop3lpJbnmoTlpI3mnYLmgKfjgIINCj4gKw0KPiAr 5a+55LqO5YWx5Lqr5pWw5o2u77yM5oKo6ZyA6KaB5L2/55Soc3Bpbl9sb2NrKCnlkoxzcGluX3Vu bG9jaygp44CCDQo+ICsNCj4gK+S4jeWQjOeahOi9r+S4reaWrQ0KPiArfn5+fn5+fn5+fn5+DQo+ ICsNCj4gK+WvueS6juWFseS6q+aVsOaNru+8jOaCqOmcgOimgeS9v+eUqHNwaW5fbG9jaygp5ZKM c3Bpbl91bmxvY2soKe+8jOaXoOiuuuaYr+iuoeaXtuWZqOOAgeWtkOS7u+WKoeOAgQ0KPiAr55u4 5ZCML+S4jeWQjOeahOi9r+S4reaWreaIluWPpuS4gOS4qui9r+S4reaWre+8muWug+S7rOS4reea hOS7u+S9leS4gOS4qumDveWPr+S7peWcqOS4jeWQjOeahENQVeS4iui/kOihjOOAgg0KPiArDQo+ ICvnoazkuK3mlq3kuIrkuIvmlocNCj4gKz09PT09PT09PT09PQ0KPiArDQo+ICvnoazku7bkuK3m lq3pgJrluLjkuI7lrZDku7vliqHmiJbova/kuK3mlq3pgJrkv6HjgILov5nluLjluLjmtonlj4rl iLDlsIblt6XkvZzmlL7lhaXpmJ/liJfkuK3vvIznhLblkI7ova/kuK3mlq3kvJoNCj4gK+WwhuWF tuWPluWHuuOAgg0KPiArDQo+ICvnoazkuK3mlq3lkozova/kuK3mlq0v5a2Q5Lu75Yqh5LmL6Ze0 55qE6ZSB5pON5L2cDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0K PiAr5aaC5p6c56Gs5Lu25Lit5pat5aSE55CG56iL5bqP6ZyA6KaB5LiO6L2v5Lit5pat5YWx5Lqr 5pWw5o2u77yM5YiZ5pyJ5Lik5Liq6Zeu6aKY44CC6aaW5YWI77yM6YCa6L+H56Gs5Lu25Lit5pat DQo+ICvlj6/ku6XkuK3mlq3ova/kuK3mlq3lpITnkIbvvJvlhbbmrKHvvIzpgJrov4flj6bkuIBD UFXkuIrnmoTnoazku7bkuK3mlq3lj6/ku6Xov5vlhaXlhbPplK7ljLrln5/jgILmraTml7blupQN Cj4gK+S9v+eUqHNwaW5fbG9ja19pcnEoKeOAguWug+WumuS5ieS4uuemgeeUqOivpUNQVeS4iuea hOS4reaWre+8jOeEtuWQjuiOt+WPlumUgeOAgnNwaW5fdW5sb2NrX2lycSgpDQo+ICvmiafooYzn m7jlj43nmoTmk43kvZzjgIINCj4gKw0KPiAr5Lit5pat5aSE55CG56iL5bqP5peg6ZyA5L2/55So c3Bpbl9sb2NrX2lycSgp77yM5Zug5Li65Zyo5Lit5pat5aSE55CG56iL5bqP6L+Q6KGM5pe26L2v 5Lit5pat5LiN6IO96L+Q6KGM77yaDQo+ICvlroPlj6/ku6Xkvb/nlKhzcGluX2xvY2soKe+8jOS8 mueojeW+ruW/q+S4gOeCueOAguWUr+S4gOeahOS+i+WkluaYr++8jOWmguaenOS4jeWQjOeahOeh rOS7tuS4reaWreWkhOeQhueoi+W6jw0KPiAr5L2/55So55u45ZCM55qE6ZSB77yac3Bpbl9sb2Nr X2lycSgp5bCG6Zi75q2i5a6D5Lit5pat5oiR5Lus44CCDQo+ICsNCj4gK+i/meWvuVVQ5Lmf6Z2e 5bi45pyJ5pWI77ya6Ieq5peL6ZSB5raI5aSx77yM6L+Z5Liq5a6P5Lya55u05o6l5Y+Y5oiQbG9j YWxfaXJxX2Rpc2FibGUoKe+8iA0KPiArYGBpbmNsdWRlL2FzbS9zbXAuaGBgIO+8ie+8jOWug+S/ neaKpOaCqOS4jeWPl+i9r+S4reaWrS/lrZDku7vliqEv5LiL5Y2K6YOo6L+Q6KGM55qE5b2x5ZON 44CCDQo+ICsNCj4gK3NwaW5fbG9ja19pcnFzYXZlKCnvvIggYGBpbmNsdWRlL2xpbnV4L3NwaW5s b2NrLmhgYCDvvInmmK/kuIDkuKrlj5jkvZPvvIzlroPkvJrlnKjkuIDkuKoNCj4gK+agh+W/l+Wt l+S4reS/neWtmOS4reaWreaYr+aJk+W8gOi/mOaYr+WFs+mXre+8jOatpOagh+W/l+Wtl+Wwhuii q+S8oOmAkue7mXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoKeOAgg0KPiAr6L+Z5oSP5ZGz552A5Y+v 5Lul5Zyo56Gs5Lit5pat5aSE55CG56iL5bqP77yI5Lit5pat5bey57uP5YWz6Zet5pe277yJ5ZKM 6L2v5Lit5pat77yI6ZyA6KaB56aB55So5Lit5pat77yJ5Lit5L2/55SoDQo+ICvnm7jlkIznmoTk u6PnoIHjgIINCj4gKw0KPiAr6K+35rOo5oSP77yM6L2v5Lit5pat77yI5Lul5Y+K5YW25Lqn55Sf 55qE5a2Q5Lu75Yqh5ZKM6K6h5pe25Zmo77yJ5piv5Zyo56Gs5Lu25Lit5pat6L+U5Zue5pe26L+Q 6KGM55qE77yM5Zug5q2kDQo+ICtzcGluX2xvY2tfaXJxKCnkuZ/kvJrlgZzmraLov5nkupvmk43k vZzjgILku47ov5nkuKrmhI/kuYnkuIror7TvvIxzcGluX2xvY2tfaXJxc2F2ZSgp5piv5pyA6YCa 55So44CBDQo+ICvmnIDlvLrlpKfnmoTplIHmk43kvZzlh73mlbDjgIINCj4gKw0KPiAr5Lik5Liq 56Gs5Lit5pat5aSE55CG5Zmo5LmL6Ze055qE6ZSB5pON5L2cDQo+ICstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ICsNCj4gK+WcqOS4pOS4quS4reaWreWkhOeQhueoi+W6j+S5i+mXtOWF seS6q+aVsOaNruaYr+W+iOWwkeingeeahO+8jOS9huaYr+WmguaenOi/meagt+WBmu+8jOWImeW6 lOivpeS9v+eUqA0KPiArc3Bpbl9sb2NrX2lycXNhdmUoKSDvvJrmmK/lkKblnKjkuK3mlq3lpITn kIbnqIvluo/lhoXpg6jnpoHnlKjmiYDmnInkuK3mlq3lj5blhrPkuo7nibnlrprkvZPns7vnu5Pm noTjgIINCj4gKw0KPiAr6ZSB5pON5L2c6YCf5p+l6KGoDQo+ICs9PT09PT09PT09PT0NCj4gKw0K PiArUGV0ZSBaYWl0Y2V257uZ5Ye65LqG5Lul5LiL5oC757uT77yaDQo+ICsNCj4gKy0gIOWmguae nOaCqOWkhOS6jui/m+eoi+S4iuS4i+aWh++8iOS7u+S9leezu+e7n+iwg+eUqO+8ieS4re+8jOW5 tuS4lOW4jOacm+WKoOmUgeaOkumZpOWFtuS7lui/m+eoi++8jOivt+S9v+eUqA0KPiArICAg5LqS 5pal6ZSB44CC5oKo5Y+v5Lul5oyB5pyJ5LqS5pal6ZSB5bm25LyR55yg77yIIGBgY29weV9mcm9t X3VzZXIqKClgYCDmiJYNCj4gKyAgIGBga21hbGxvYyh4LEdGUF9LRVJORUwpYGAg77yJ44CCDQo+ ICsNCj4gKy0gIOWQpuWIme+8iOWNs+aVsOaNruWPr+WcqOS4reaWreS4reiiq+iuv+mXru+8ieiv t+S9v+eUqHNwaW5fbG9ja19pcnFzYXZlKCnlkowNCj4gKyAgIHNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoKeOAgg0KPiArDQo+ICstICDpgb/lhY3lnKjotoXov4c16KGM5Luj56CB5ZKM5Lu75L2V5Ye9 5pWw6LCD55So5Lit5L2/55So6Ieq5peL6ZSB77yIcmVhZGIoKeS5i+exu+eahOiuv+mXruWZqOmZ pOWklu+8ieOAgg0KPiArDQo+ICvmnIDkvY7opoHmsYLooagNCj4gKy0tLS0tLS0tLS0NCj4gKw0K PiAr5LiL6KGo5YiX5Ye65LqG5LiN5ZCM5LiK5LiL5paH5LmL6Ze055qEICoq5pyA5L2OKiog6ZSB 5pON5L2c6KaB5rGC44CC5Zyo5p+Q5Lqb5oOF5Ya15LiL77yM5ZCM5LiA5LiK5LiL5paH5LiA5qyh DQo+ICvlj6rog73lnKjkuIDkuKpDUFXkuIrov5DooYzvvIzlm6DmraTor6XkuIrkuIvmlofml6Dp nIDliqDplIHvvIjkvovlpoLvvIznibnlrprnur/nqIvkuIDmrKHlj6rog73lnKjkuIDkuKpDUFXk uIoNCj4gK+i/kOihjO+8jOS9huWmguaenOWug+mcgOimgeS4juWPpuS4gOS4que6v+eoi+WFseS6 q+aVsOaNru+8jOWImemcgOimgeWKoOmUge+8ieOAgg0KPiArDQo+ICvorrDkvY/kuIrpnaLnmoTl u7rorq7vvJrmgqjmgLvmmK/lj6/ku6Xkvb/nlKhzcGluX2xvY2tfaXJxc2F2ZSgp77yM5a6D5piv 5omA5pyJ5YW25LuW6Ieq5peL6ZSB5Y6f6K+t55qE6LaF6ZuG44CCDQo+ICsNCj4gKy4uIHRhYmxl Ojog6ZSB5pON5L2c6KaB5rGC6KGoDQo+ICsNCj4gKyAgPT09PT09PT09PT09PT0gPT09PT09PT09 PT09PSA9PT09PT09PT09PT09ID09PT09PT09PSA9PT09PT09PT0gPT09PT09PT09ID09PT09PT09 PSA9PT09PT09ID09PT09PT0gPT09PT09PT09PT09PT0gPT09PT09PT09PT09PT0NCj4gKyAgICAg ICAgICAgICAgICAg5Lit5pat5aSE55CG56iL5bqPQSDkuK3mlq3lpITnkIbnqIvluo9CIOi9r+S4 reaWrUEgICDova/kuK3mlq1CICAg5a2Q5Lu75YqhQSAgIOWtkOS7u+WKoUIgICDorqHml7blmahB IOiuoeaXtuWZqEIg55So5oi35LiK5LiL5paHQSAgICDnlKjmiLfkuIrkuIvmlodCDQo+ICsgID09 PT09PT09PT09PT09ID09PT09PT09PT09PT0gPT09PT09PT09PT09PSA9PT09PT09PT0gPT09PT09 PT09ID09PT09PT09PSA9PT09PT09PT0gPT09PT09PSA9PT09PT09ID09PT09PT09PT09PT09ID09 PT09PT09PT09PT09DQo+ICsgIOS4reaWreWkhOeQhueoi+W6j0EgIE5vbmUNCj4gKyAg5Lit5pat 5aSE55CG56iL5bqPQiAgU0xJUyAgICAgICAgICBOb25lDQo+ICsgIOi9r+S4reaWrUEgICAgICAg IFNMSSAgICAgICAgICAgU0xJICAgICAgICAgICBTTA0KPiArICDova/kuK3mlq1CICAgICAgICBT TEkgICAgICAgICAgIFNMSSAgICAgICAgICAgU0wgICAgICAgIFNMDQo+ICsgIOWtkOS7u+WKoUEg ICAgICAgIFNMSSAgICAgICAgICAgU0xJICAgICAgICAgICBTTCAgICAgICAgU0wgICAgICAgIE5v bmUNCj4gKyAg5a2Q5Lu75YqhQiAgICAgICAgU0xJICAgICAgICAgICBTTEkgICAgICAgICAgIFNM ICAgICAgICBTTCAgICAgICAgU0wgICAgICAgIE5vbmUNCj4gKyAg6K6h5pe25ZmoQSAgICAgICAg U0xJICAgICAgICAgICBTTEkgICAgICAgICAgIFNMICAgICAgICBTTCAgICAgICAgU0wgICAgICAg IFNMICAgICAgICBOb25lDQo+ICsgIOiuoeaXtuWZqEIgICAgICAgIFNMSSAgICAgICAgICAgU0xJ ICAgICAgICAgICBTTCAgICAgICAgU0wgICAgICAgIFNMICAgICAgICBTTCAgICAgICAgU0wgICAg ICBOb25lDQo+ICsgIOeUqOaIt+S4iuS4i+aWh0EgICAgU0xJICAgICAgICAgICBTTEkgICAgICAg ICAgIFNMQkggICAgICBTTEJIICAgICAgU0xCSCAgICAgIFNMQkggICAgICBTTEJIICAgIFNMQkgg ICAgTm9uZQ0KPiArICDnlKjmiLfkuIrkuIvmlodCICAgIFNMSSAgICAgICAgICAgU0xJICAgICAg ICAgICBTTEJIICAgICAgU0xCSCAgICAgIFNMQkggICAgICBTTEJIICAgICAgU0xCSCAgICBTTEJI ICAgIE1MSSAgICAgICAgICAgIE5vbmUNCj4gKyAgPT09PT09PT09PT09PT0gPT09PT09PT09PT09 PSA9PT09PT09PT09PT09ID09PT09PT09PSA9PT09PT09PT0gPT09PT09PT09ID09PT09PT09PSA9 PT09PT09ID09PT09PT0gPT09PT09PT09PT09PT0gPT09PT09PT09PT09PT0NCj4gKw0KPiArLi4g dGFibGU6OiDplIHmk43kvZzopoHmsYLooagg5rOo6YeKDQo+ICsNCj4gKyAgKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsgIHwgU0xJUyAgIHwgc3Bpbl9sb2NrX2ly cXNhdmUgICAgICAgICAgfA0KPiArICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsNCj4gKyAgfCBTTEkgICAgfCBzcGluX2xvY2tfaXJxICAgICAgICAgICAgICB8DQo+ICsg ICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArICB8IFNMICAgICB8 IHNwaW5fbG9jayAgICAgICAgICAgICAgICAgIHwNCj4gKyAgKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsgIHwgU0xCSCAgIHwgc3Bpbl9sb2NrX2JoICAgICAgICAg ICAgICAgfA0KPiArICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4g KyAgfCBNTEkgICAgfCBtdXRleF9sb2NrX2ludGVycnVwdGlibGUgICB8DQo+ICsgICstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArDQo+ICvor5XplIHvvIh0cnlsb2Nr 77yJ5Ye95pWwDQo+ICs9PT09PT09PT09PT09PT09PT09DQo+ICsNCj4gK+i/meS6m+WHveaVsOWP quWwneivleiOt+WPluS4gOasoemUge+8jOW5tueri+WNs+i/lOWbnuS4gOS4quWAvOivtOaYjuiO t+WPlumUgeaIkOWKn+aIluWksei0peOAguWmguaenOS9oOaXoOmcgA0KPiAr6K6/6Zeu5Y+X5YW2 5LuW57q/56iL5oyB5pyJ55qE6ZSB5L+d5oqk55qE5pWw5o2u77yM5Y+v5Lul5L2/55So5a6D5Lus 44CC5aaC5p6c6ZyA6KaB6K6/6Zeu5Y+X6ZSB5L+d5oqk55qE5pWw5o2u77yMDQo+ICvliJnlupTn qI3lkI7ojrflj5bplIHjgIINCj4gKw0KPiArc3Bpbl90cnlsb2NrKCnkuI3kvJroh6rml4vvvIzk vYboi6XlnKjpppbmrKHlsJ3or5Xml7bojrflvpfoh6rml4vplIHliJnov5Tlm57pnZ7pm7bvvIzl kKbliJnov5Tlm57pm7bjgILmraQNCj4gK+WHveaVsOWPr+S7peWDj3NwaW5fbG9jaygp5LiA5qC3 5Zyo5omA5pyJ5LiK5LiL5paH5Lit5L2/55So77ya5oKo5b+F6aG756aB55So5Y+v6IO95Lit5pat 5oKo5bm26I635Y+W6Ieq5peL6ZSBDQo+ICvnmoTkuIrkuIvmlofjgIINCj4gKw0KPiArbXV0ZXhf dHJ5bG9jaygp5LiN5Lya5oyC6LW35Lu75Yqh77yM5L2G6Iul5YW25Zyo6aaW5qyh5bCd6K+V5pe2 6I635b6X5LqS5pal6ZSB77yM5YiZ6L+U5Zue6Z2e6Zu277yM5ZCm5YiZDQo+ICvov5Tlm57pm7bj gILlsL3nrqHmnKrkvJHnnKDvvIzkvYbmraTlip/og73lnKjnoazku7bmiJbova/ku7bkuK3mlq3k uIrkuIvmlofkuK3ml6Dms5Xlronlhajkvb/nlKjjgIINCj4gKw0KPiAr5bi46KeB5L6L5a2QDQo+ ICs9PT09PT09PQ0KPiArDQo+ICvorqnmiJHku6zmnaXnnIvkuIDkuKrnroDljZXnmoTkvovlrZDv vJrkuIDkuKrmlbDlrZfliLDlkI3np7DmmKDlsITnmoTnvJPlrZjjgIINCj4gK+e8k+WtmOiusOW9 leavj+S4quWvueixoeeahOS9v+eUqOmikeeOh++8jOW9k+e8k+WtmOa7oeS6huaXtu+8jOaKm+WH uuacgOWwkeS9v+eUqOeahOWvueixoeOAgg0KPiArDQo+ICvlrozlhajlnKjnlKjmiLfkuIrkuIvm lofkuK0NCj4gKy0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICvlr7nkuo7nrKzkuIDkuKrnpLrk vovvvIzmiJHku6zlgYforr7miYDmnInmk43kvZzpg73lnKjnlKjmiLfkuIrkuIvmlofkuK3vvIjl jbPmnaXoh6rns7vnu5/osIPnlKjvvInvvIzlm6DmraTmiJHku6wNCj4gK+WPr+S7peS8keecoOOA gui/meaEj+WRs+edgOaIkeS7rOWPr+S7peS9v+eUqOS6kuaWpemUgeadpeS/neaKpOe8k+WtmOWS jOWFtuS4reeahOaJgOacieWvueixoeOAguS7o+eggeWmguS4izo6DQo+ICsNCj4gKyAgICAjaW5j bHVkZSA8bGludXgvbGlzdC5oPg0KPiArICAgICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQo+ICsg ICAgI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPg0KPiArICAgICNpbmNsdWRlIDxsaW51eC9tdXRl eC5oPg0KPiArICAgICNpbmNsdWRlIDxhc20vZXJybm8uaD4NCj4gKw0KPiArICAgIHN0cnVjdCBv YmplY3QNCj4gKyAgICB7DQo+ICsgICAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7DQo+ ICsgICAgICAgICAgICBpbnQgaWQ7DQo+ICsgICAgICAgICAgICBjaGFyIG5hbWVbMzJdOw0KPiAr ICAgICAgICAgICAgaW50IHBvcHVsYXJpdHk7DQo+ICsgICAgfTsNCj4gKw0KPiArICAgIC8qIFBy b3RlY3RzIHRoZSBjYWNoZSwgY2FjaGVfbnVtLCBhbmQgdGhlIG9iamVjdHMgd2l0aGluIGl0ICov DQo+ICsgICAgc3RhdGljIERFRklORV9NVVRFWChjYWNoZV9sb2NrKTsNCj4gKyAgICBzdGF0aWMg TElTVF9IRUFEKGNhY2hlKTsNCj4gKyAgICBzdGF0aWMgdW5zaWduZWQgaW50IGNhY2hlX251bSA9 IDA7DQo+ICsgICAgI2RlZmluZSBNQVhfQ0FDSEVfU0laRSAxMA0KPiArDQo+ICsgICAgLyogTXVz dCBiZSBob2xkaW5nIGNhY2hlX2xvY2sgKi8NCj4gKyAgICBzdGF0aWMgc3RydWN0IG9iamVjdCAq X19jYWNoZV9maW5kKGludCBpZCkNCj4gKyAgICB7DQo+ICsgICAgICAgICAgICBzdHJ1Y3Qgb2Jq ZWN0ICppOw0KPiArDQo+ICsgICAgICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGksICZjYWNo ZSwgbGlzdCkNCj4gKyAgICAgICAgICAgICAgICAgICAgaWYgKGktPmlkID09IGlkKSB7DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaS0+cG9wdWxhcml0eSsrOw0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBpOw0KPiArICAgICAgICAgICAgICAgICAgICB9DQo+ ICsgICAgICAgICAgICByZXR1cm4gTlVMTDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICAvKiBNdXN0 IGJlIGhvbGRpbmcgY2FjaGVfbG9jayAqLw0KPiArICAgIHN0YXRpYyB2b2lkIF9fY2FjaGVfZGVs ZXRlKHN0cnVjdCBvYmplY3QgKm9iaikNCj4gKyAgICB7DQo+ICsgICAgICAgICAgICBCVUdfT04o IW9iaik7DQo+ICsgICAgICAgICAgICBsaXN0X2RlbCgmb2JqLT5saXN0KTsNCj4gKyAgICAgICAg ICAgIGtmcmVlKG9iaik7DQo+ICsgICAgICAgICAgICBjYWNoZV9udW0tLTsNCj4gKyAgICB9DQo+ ICsNCj4gKyAgICAvKiBNdXN0IGJlIGhvbGRpbmcgY2FjaGVfbG9jayAqLw0KPiArICAgIHN0YXRp YyB2b2lkIF9fY2FjaGVfYWRkKHN0cnVjdCBvYmplY3QgKm9iaikNCj4gKyAgICB7DQo+ICsgICAg ICAgICAgICBsaXN0X2FkZCgmb2JqLT5saXN0LCAmY2FjaGUpOw0KPiArICAgICAgICAgICAgaWYg KCsrY2FjaGVfbnVtID4gTUFYX0NBQ0hFX1NJWkUpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAg c3RydWN0IG9iamVjdCAqaSwgKm91dGNhc3QgPSBOVUxMOw0KPiArICAgICAgICAgICAgICAgICAg ICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGksICZjYWNoZSwgbGlzdCkgew0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICghb3V0Y2FzdCB8fCBpLT5wb3B1bGFyaXR5IDwgb3V0Y2FzdC0+ cG9wdWxhcml0eSkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGNh c3QgPSBpOw0KPiArICAgICAgICAgICAgICAgICAgICB9DQo+ICsgICAgICAgICAgICAgICAgICAg IF9fY2FjaGVfZGVsZXRlKG91dGNhc3QpOw0KPiArICAgICAgICAgICAgfQ0KPiArICAgIH0NCj4g Kw0KPiArICAgIGludCBjYWNoZV9hZGQoaW50IGlkLCBjb25zdCBjaGFyICpuYW1lKQ0KPiArICAg IHsNCj4gKyAgICAgICAgICAgIHN0cnVjdCBvYmplY3QgKm9iajsNCj4gKw0KPiArICAgICAgICAg ICAgaWYgKChvYmogPSBrbWFsbG9jKHNpemVvZigqb2JqKSwgR0ZQX0tFUk5FTCkpID09IE5VTEwp DQo+ICsgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiArDQo+ICsgICAgICAg ICAgICBzdHJzY3B5KG9iai0+bmFtZSwgbmFtZSwgc2l6ZW9mKG9iai0+bmFtZSkpOw0KPiArICAg ICAgICAgICAgb2JqLT5pZCA9IGlkOw0KPiArICAgICAgICAgICAgb2JqLT5wb3B1bGFyaXR5ID0g MDsNCj4gKw0KPiArICAgICAgICAgICAgbXV0ZXhfbG9jaygmY2FjaGVfbG9jayk7DQo+ICsgICAg ICAgICAgICBfX2NhY2hlX2FkZChvYmopOw0KPiArICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZj YWNoZV9sb2NrKTsNCj4gKyAgICAgICAgICAgIHJldHVybiAwOw0KPiArICAgIH0NCj4gKw0KPiAr ICAgIHZvaWQgY2FjaGVfZGVsZXRlKGludCBpZCkNCj4gKyAgICB7DQo+ICsgICAgICAgICAgICBt dXRleF9sb2NrKCZjYWNoZV9sb2NrKTsNCj4gKyAgICAgICAgICAgIF9fY2FjaGVfZGVsZXRlKF9f Y2FjaGVfZmluZChpZCkpOw0KPiArICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZjYWNoZV9sb2Nr KTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBpbnQgY2FjaGVfZmluZChpbnQgaWQsIGNoYXIgKm5h bWUpDQo+ICsgICAgew0KPiArICAgICAgICAgICAgc3RydWN0IG9iamVjdCAqb2JqOw0KPiArICAg ICAgICAgICAgaW50IHJldCA9IC1FTk9FTlQ7DQo+ICsNCj4gKyAgICAgICAgICAgIG11dGV4X2xv Y2soJmNhY2hlX2xvY2spOw0KPiArICAgICAgICAgICAgb2JqID0gX19jYWNoZV9maW5kKGlkKTsN Cj4gKyAgICAgICAgICAgIGlmIChvYmopIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgcmV0ID0g MDsNCj4gKyAgICAgICAgICAgICAgICAgICAgc3RyY3B5KG5hbWUsIG9iai0+bmFtZSk7DQo+ICsg ICAgICAgICAgICB9DQo+ICsgICAgICAgICAgICBtdXRleF91bmxvY2soJmNhY2hlX2xvY2spOw0K PiArICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gKyAgICB9DQo+ICsNCj4gK+ivt+azqOaEj++8 jOWcqOa3u+WKoOOAgeWIoOmZpOaIluafpeaJvue8k+WtmOaXtu+8jOaIkeS7rOWni+e7iOehruS/ neaLpeaciWNhY2hlX2xvY2vnvJPlrZjplIHvvJrnvJPlrZjln7rnoYANCj4gK+e7k+aehOacrOi6 q+WSjOWvueixoeeahOWGheWuuemDveWPl+WIsOmUgeeahOS/neaKpOOAguacrOS+i+S4rei/meW+ iOWuueaYk++8jOWboOS4uuaIkeS7rOS4uueUqOaIt+WkjeWItuaVsOaNru+8jA0KPiAr5LiN5Lya 6K6p5LuW5Lus55u05o6l6K6/6Zeu5a+56LGh44CCDQo+ICsNCj4gK+i/memHjOacieS4gOS4quWw j++8iOS5n+aYr+W4uOingeeahO+8ieS8mOWMlu+8muWcqGNhY2hlX2FkZCgp5Lit77yM5oiR5Lus 5Zyo6I635Y+W6ZSB5LmL5YmN6K6+572u5a+56LGh55qEDQo+ICvlrZfmrrXjgILov5nmmK/lronl hajnmoTvvIzlm6DkuLrlnKjmiJHku6zlsIblroPmlL7lhaXnvJPlrZjkuYvliY3vvIzlhbbku5bk urrml6Dms5Xorr/pl67lroPjgIINCj4gKw0KPiAr5LuO5Lit5pat5LiK5LiL5paH6K6/6ZeuDQo+ ICstLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gK+eOsOWcqOiAg+iZkeWPr+S7peS7juS4reaWreS4 iuS4i+aWh+iwg+eUqGNhY2hlX2ZpbmQoKeeahOaDheWGte+8muWPr+S7peaYr+ehrOS4reaWreaI lui9r+S4reaWreOAgg0KPiAr5L6L5aaC5LuO57yT5a2Y5Lit5Yig6Zmk5a+56LGh55qE6K6h5pe2 5Zmo44CCDQo+ICsNCj4gK+S4i+mdouS7peagh+WHhuihpeS4geagvOW8j+aYvuekuuS6huabtOaU ue+8miBgYC1gYCDmmK/liKDpmaTnmoTooYzvvIzogIwgYGArYGAg5piv5aKe5Yqg55qE6KGM44CC DQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICAtLS0gY2FjaGUuYy51c2VyY29udGV4dCAyMDAzLTEy LTA5IDEzOjU4OjU0LjAwMDAwMDAwMCArMTEwMA0KPiArICAgICsrKyBjYWNoZS5jLmludGVycnVw dCAgIDIwMDMtMTItMDkgMTQ6MDc6NDkuMDAwMDAwMDAwICsxMTAwDQo+ICsgICAgQEAgLTEyLDcg KzEyLDcgQEANCj4gKyAgICAgICAgICAgICBpbnQgcG9wdWxhcml0eTsNCj4gKyAgICAgfTsNCj4g Kw0KPiArICAgIC1zdGF0aWMgREVGSU5FX01VVEVYKGNhY2hlX2xvY2spOw0KPiArICAgICtzdGF0 aWMgREVGSU5FX1NQSU5MT0NLKGNhY2hlX2xvY2spOw0KPiArICAgICBzdGF0aWMgTElTVF9IRUFE KGNhY2hlKTsNCj4gKyAgICAgc3RhdGljIHVuc2lnbmVkIGludCBjYWNoZV9udW0gPSAwOw0KPiAr ICAgICAjZGVmaW5lIE1BWF9DQUNIRV9TSVpFIDEwDQo+ICsgICAgQEAgLTU1LDYgKzU1LDcgQEAN Cj4gKyAgICAgaW50IGNhY2hlX2FkZChpbnQgaWQsIGNvbnN0IGNoYXIgKm5hbWUpDQo+ICsgICAg IHsNCj4gKyAgICAgICAgICAgICBzdHJ1Y3Qgb2JqZWN0ICpvYmo7DQo+ICsgICAgKyAgICAgICAg dW5zaWduZWQgbG9uZyBmbGFnczsNCj4gKw0KPiArICAgICAgICAgICAgIGlmICgob2JqID0ga21h bGxvYyhzaXplb2YoKm9iaiksIEdGUF9LRVJORUwpKSA9PSBOVUxMKQ0KPiArICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ICsgICAgQEAgLTYzLDMwICs2NCwzMyBAQA0KPiAr ICAgICAgICAgICAgIG9iai0+aWQgPSBpZDsNCj4gKyAgICAgICAgICAgICBvYmotPnBvcHVsYXJp dHkgPSAwOw0KPiArDQo+ICsgICAgLSAgICAgICAgbXV0ZXhfbG9jaygmY2FjaGVfbG9jayk7DQo+ ICsgICAgKyAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmNhY2hlX2xvY2ssIGZsYWdzKTsNCj4g KyAgICAgICAgICAgICBfX2NhY2hlX2FkZChvYmopOw0KPiArICAgIC0gICAgICAgIG11dGV4X3Vu bG9jaygmY2FjaGVfbG9jayk7DQo+ICsgICAgKyAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmY2FjaGVfbG9jaywgZmxhZ3MpOw0KPiArICAgICAgICAgICAgIHJldHVybiAwOw0KPiArICAg ICB9DQo+ICsNCj4gKyAgICAgdm9pZCBjYWNoZV9kZWxldGUoaW50IGlkKQ0KPiArICAgICB7DQo+ ICsgICAgLSAgICAgICAgbXV0ZXhfbG9jaygmY2FjaGVfbG9jayk7DQo+ICsgICAgKyAgICAgICAg dW5zaWduZWQgbG9uZyBmbGFnczsNCj4gKyAgICArDQo+ICsgICAgKyAgICAgICAgc3Bpbl9sb2Nr X2lycXNhdmUoJmNhY2hlX2xvY2ssIGZsYWdzKTsNCj4gKyAgICAgICAgICAgICBfX2NhY2hlX2Rl bGV0ZShfX2NhY2hlX2ZpbmQoaWQpKTsNCj4gKyAgICAtICAgICAgICBtdXRleF91bmxvY2soJmNh Y2hlX2xvY2spOw0KPiArICAgICsgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNhY2hl X2xvY2ssIGZsYWdzKTsNCj4gKyAgICAgfQ0KPiArDQo+ICsgICAgIGludCBjYWNoZV9maW5kKGlu dCBpZCwgY2hhciAqbmFtZSkNCj4gKyAgICAgew0KPiArICAgICAgICAgICAgIHN0cnVjdCBvYmpl Y3QgKm9iajsNCj4gKyAgICAgICAgICAgICBpbnQgcmV0ID0gLUVOT0VOVDsNCj4gKyAgICArICAg ICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOw0KPiArDQo+ICsgICAgLSAgICAgICAgbXV0ZXhfbG9j aygmY2FjaGVfbG9jayk7DQo+ICsgICAgKyAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmNhY2hl X2xvY2ssIGZsYWdzKTsNCj4gKyAgICAgICAgICAgICBvYmogPSBfX2NhY2hlX2ZpbmQoaWQpOw0K PiArICAgICAgICAgICAgIGlmIChvYmopIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgIHJldCA9 IDA7DQo+ICsgICAgICAgICAgICAgICAgICAgICBzdHJjcHkobmFtZSwgb2JqLT5uYW1lKTsNCj4g KyAgICAgICAgICAgICB9DQo+ICsgICAgLSAgICAgICAgbXV0ZXhfdW5sb2NrKCZjYWNoZV9sb2Nr KTsNCj4gKyAgICArICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjYWNoZV9sb2NrLCBm bGFncyk7DQo+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gKyAgICAgfQ0KPiArDQo+ICvo r7fms6jmhI/vvIzoi6XkuK3mlq3miZPlvIDvvIxzcGluX2xvY2tfaXJxc2F2ZSgp5Lya5bCG5YW2 5YWz6Zet77yM5ZCm5YiZ5LuA5LmI5Lmf5LiN5YGa77yI5aaC5p6c5oiR5LusDQo+ICvlt7Lnu4/l nKjkuK3mlq3lpITnkIbnqIvluo/kuK3vvInvvIzlm6DmraTov5nkupvlh73mlbDlj6/ku6Xku47k u7vkvZXkuIrkuIvmloflronlhajosIPnlKjjgIINCj4gKw0KPiAr5LiN5bm455qE5piv77yMY2Fj aGVfYWRkKCnkvb/nlKggYGBHRlBfS0VSTkVMYGAg5qCH5b+X6LCD55Soa21hbGxvYygp77yM6L+Z 5Y+q5Zyo55So5oi35LiK5LiL5paHDQo+ICvkuK3mmK/lkIjms5XnmoTjgILmiJHlgYforr5jYWNo ZV9hZGQoKeS7jeeEtuWPquWcqOeUqOaIt+S4iuS4i+aWh+S4reiwg+eUqO+8jOWQpuWImei/meW6 lOivpeaIkOS4ug0KPiArY2FjaGVfYWRkKCnnmoTlj4LmlbDjgIINCj4gKw0KPiAr5pq06Zyy5LqO 5q2k5paH5Lu25LmL5aSW55qE5a+56LGhDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsN Cj4gK+WmguaenOaIkeS7rOeahOWvueixoeWMheWQq+abtOWkmueahOS/oeaBr++8jOmCo+S5iOWP quWwhuS/oeaBr+WkjeWItui/m+WkjeWItuWHuuWPr+iDveaYr+S4jeWkn+eahO+8muS+i+Wmgu+8 jA0KPiAr5Luj56CB55qE5YW25LuW6YOo5YiG5Y+v6IO95biM5pyb5L+d55WZ5oyH5ZCR6L+Z5Lqb 5a+56LGh55qE5oyH6ZKI77yM6ICM5LiN5piv5q+P5qyh6YO95p+l5om+aWTjgILov5nlsLHkuqfn lJ/kuoYNCj4gK+S4pOS4qumXrumimOOAgg0KPiArDQo+ICvnrKzkuIDkuKrpl67popjmmK/miJHk u6zkvb/nlKggYGBjYWNoZV9sb2NrYGAg5p2l5L+d5oqk5a+56LGh77ya6L+Z6ZyA6KaB5L2/5a6D 5oiQ5Li66Z2e6Z2Z5oCB55qE77yM5Lul5L6/DQo+ICvku6PnoIHnmoTlhbbkvZnpg6jliIblj6/k u6Xkvb/nlKjlroPjgILov5nkvb/lvpfliqDplIHlj5jlvpfmm7TliqDmo5jmiYvvvIzlm6DkuLrl roPkuI3lho3mmK/lhajlnKjkuIDlpITjgIINCj4gKw0KPiAr56ys5LqM5Liq6Zeu6aKY5piv55Sf 5ZG95ZGo5pyf6Zeu6aKY77ya5aaC5p6c5Y+m5LiA5Liq57uT5p6E5L+d55WZ5LiA5Liq5oyH5ZCR 5a+56LGh55qE5oyH6ZKI77yM5a6D5Y+v6IO95biM5pyb6K+lDQo+ICvmjIfpkojkv53mjIHmnInm lYjjgILkvYbov5nlj6rog73lnKjmgqjmjIHmnInplIHml7bkv53or4HmnInmlYjvvIzlkKbliJnm nInkurrlj6/og73kvJrosIPnlKhjYWNoZV9kZWxldGUoKe+8jA0KPiAr5oiW5pu057Of55qE5piv 5re75Yqg5LqG5Y+m5LiA5Liq6YeN5paw5L2/55So55u45ZCM5Zyw5Z2A55qE5a+56LGh44CCDQo+ ICsNCj4gK+WboOS4uuWPquacieS4gOaKiumUge+8jOS9oOS4jeiDveawuOi/nOaMgeacieWug++8 mui/meS8muWvvOiHtOWIq+S6uuayoeazleWujOaIkOWFtuS7luW3peS9nOOAgg0KPiArDQo+ICvm raTpl67popjnmoTop6PlhrPmlrnmoYjmmK/kvb/nlKjlvJXnlKjorqHmlbDvvJrmr4/kuKrmnInm jIflkJHlr7nosaHnmoTmjIfpkojnmoTnqIvluo/lnKjnrKzkuIDmrKHlvpfliLDlr7nosaHml7YN Cj4gK+mDveS8muWinuWKoOW8leeUqOiuoeaVsO+8jOiAjOWcqOWkhOeQhuWujOWvueixoeaXtuS8 muWHj+WwkeW8leeUqOiuoeaVsOOAguW9k+W8leeUqOiuoeaVsOW9kumbtuaXtu+8jOWvueixoeWw seaYrw0KPiAr5pyq5L2/55So55qE5LiU5Y+v5Lul6KKr5Yig6Zmk44CCDQo+ICsNCj4gK+S7o+eg geWmguS4izo6DQo+ICsNCj4gKyAgICAtLS0gY2FjaGUuYy5pbnRlcnJ1cHQgICAyMDAzLTEyLTA5 IDE0OjI1OjQzLjAwMDAwMDAwMCArMTEwMA0KPiArICAgICsrKyBjYWNoZS5jLnJlZmNudCAgMjAw My0xMi0wOSAxNDozMzowNS4wMDAwMDAwMDAgKzExMDANCj4gKyAgICBAQCAtNyw2ICs3LDcgQEAN Cj4gKyAgICAgc3RydWN0IG9iamVjdA0KPiArICAgICB7DQo+ICsgICAgICAgICAgICAgc3RydWN0 IGxpc3RfaGVhZCBsaXN0Ow0KPiArICAgICsgICAgICAgIHVuc2lnbmVkIGludCByZWZjbnQ7DQo+ ICsgICAgICAgICAgICAgaW50IGlkOw0KPiArICAgICAgICAgICAgIGNoYXIgbmFtZVszMl07DQo+ ICsgICAgICAgICAgICAgaW50IHBvcHVsYXJpdHk7DQo+ICsgICAgQEAgLTE3LDYgKzE4LDM1IEBA DQo+ICsgICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgY2FjaGVfbnVtID0gMDsNCj4gKyAgICAgI2Rl ZmluZSBNQVhfQ0FDSEVfU0laRSAxMA0KPiArDQo+ICsgICAgK3N0YXRpYyB2b2lkIF9fb2JqZWN0 X3B1dChzdHJ1Y3Qgb2JqZWN0ICpvYmopDQo+ICsgICAgK3sNCj4gKyAgICArICAgICAgICBpZiAo LS1vYmotPnJlZmNudCA9PSAwKQ0KPiArICAgICsgICAgICAgICAgICAgICAga2ZyZWUob2JqKTsN Cj4gKyAgICArfQ0KPiArICAgICsNCj4gKyAgICArc3RhdGljIHZvaWQgX19vYmplY3RfZ2V0KHN0 cnVjdCBvYmplY3QgKm9iaikNCj4gKyAgICArew0KPiArICAgICsgICAgICAgIG9iai0+cmVmY250 Kys7DQo+ICsgICAgK30NCj4gKyAgICArDQo+ICsgICAgK3ZvaWQgb2JqZWN0X3B1dChzdHJ1Y3Qg b2JqZWN0ICpvYmopDQo+ICsgICAgK3sNCj4gKyAgICArICAgICAgICB1bnNpZ25lZCBsb25nIGZs YWdzOw0KPiArICAgICsNCj4gKyAgICArICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmY2FjaGVf bG9jaywgZmxhZ3MpOw0KPiArICAgICsgICAgICAgIF9fb2JqZWN0X3B1dChvYmopOw0KPiArICAg ICsgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNhY2hlX2xvY2ssIGZsYWdzKTsNCj4g KyAgICArfQ0KPiArICAgICsNCj4gKyAgICArdm9pZCBvYmplY3RfZ2V0KHN0cnVjdCBvYmplY3Qg Km9iaikNCj4gKyAgICArew0KPiArICAgICsgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ ICsgICAgKw0KPiArICAgICsgICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZjYWNoZV9sb2NrLCBm bGFncyk7DQo+ICsgICAgKyAgICAgICAgX19vYmplY3RfZ2V0KG9iaik7DQo+ICsgICAgKyAgICAg ICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2FjaGVfbG9jaywgZmxhZ3MpOw0KPiArICAgICt9 DQo+ICsgICAgKw0KPiArICAgICAvKiBNdXN0IGJlIGhvbGRpbmcgY2FjaGVfbG9jayAqLw0KPiAr ICAgICBzdGF0aWMgc3RydWN0IG9iamVjdCAqX19jYWNoZV9maW5kKGludCBpZCkNCj4gKyAgICAg ew0KPiArICAgIEBAIC0zNSw2ICs2NSw3IEBADQo+ICsgICAgIHsNCj4gKyAgICAgICAgICAgICBC VUdfT04oIW9iaik7DQo+ICsgICAgICAgICAgICAgbGlzdF9kZWwoJm9iai0+bGlzdCk7DQo+ICsg ICAgKyAgICAgICAgX19vYmplY3RfcHV0KG9iaik7DQo+ICsgICAgICAgICAgICAgY2FjaGVfbnVt LS07DQo+ICsgICAgIH0NCj4gKw0KPiArICAgIEBAIC02Myw2ICs5NCw3IEBADQo+ICsgICAgICAg ICAgICAgc3Ryc2NweShvYmotPm5hbWUsIG5hbWUsIHNpemVvZihvYmotPm5hbWUpKTsNCj4gKyAg ICAgICAgICAgICBvYmotPmlkID0gaWQ7DQo+ICsgICAgICAgICAgICAgb2JqLT5wb3B1bGFyaXR5 ID0gMDsNCj4gKyAgICArICAgICAgICBvYmotPnJlZmNudCA9IDE7IC8qIFRoZSBjYWNoZSBob2xk cyBhIHJlZmVyZW5jZSAqLw0KPiArDQo+ICsgICAgICAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUo JmNhY2hlX2xvY2ssIGZsYWdzKTsNCj4gKyAgICAgICAgICAgICBfX2NhY2hlX2FkZChvYmopOw0K PiArICAgIEBAIC03OSwxOCArMTExLDE1IEBADQo+ICsgICAgICAgICAgICAgc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmY2FjaGVfbG9jaywgZmxhZ3MpOw0KPiArICAgICB9DQo+ICsNCj4gKyAgICAt aW50IGNhY2hlX2ZpbmQoaW50IGlkLCBjaGFyICpuYW1lKQ0KPiArICAgICtzdHJ1Y3Qgb2JqZWN0 ICpjYWNoZV9maW5kKGludCBpZCkNCj4gKyAgICAgew0KPiArICAgICAgICAgICAgIHN0cnVjdCBv YmplY3QgKm9iajsNCj4gKyAgICAtICAgICAgICBpbnQgcmV0ID0gLUVOT0VOVDsNCj4gKyAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOw0KPiArDQo+ICsgICAgICAgICAgICAgc3Bpbl9s b2NrX2lycXNhdmUoJmNhY2hlX2xvY2ssIGZsYWdzKTsNCj4gKyAgICAgICAgICAgICBvYmogPSBf X2NhY2hlX2ZpbmQoaWQpOw0KPiArICAgIC0gICAgICAgIGlmIChvYmopIHsNCj4gKyAgICAtICAg ICAgICAgICAgICAgIHJldCA9IDA7DQo+ICsgICAgLSAgICAgICAgICAgICAgICBzdHJjcHkobmFt ZSwgb2JqLT5uYW1lKTsNCj4gKyAgICAtICAgICAgICB9DQo+ICsgICAgKyAgICAgICAgaWYgKG9i aikNCj4gKyAgICArICAgICAgICAgICAgICAgIF9fb2JqZWN0X2dldChvYmopOw0KPiArICAgICAg ICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNhY2hlX2xvY2ssIGZsYWdzKTsNCj4gKyAg ICAtICAgICAgICByZXR1cm4gcmV0Ow0KPiArICAgICsgICAgICAgIHJldHVybiBvYmo7DQo+ICsg ICAgIH0NCj4gKw0KPiAr5oiR5Lus5bCG5byV55So6K6h5pWw5bCB6KOF6L+b5qCH5YeG55qE4oCc Z2V04oCd5ZKM4oCccHV04oCd5Ye95pWw5Lit44CC546w5Zyo5oiR5Lus5Y+v5Lul5LuOY2FjaGVf ZmluZCgp6L+U5ZueDQo+ICvlr7nosaHmnKzouqvvvIzov5nmoLflgZrnmoTlpb3lpITmmK/nlKjm iLfnjrDlnKjlj6/ku6XlnKjmjIHmnInlr7nosaHml7bkvJHnnKDvvIjkvovlpoLnlKhjb3B5X3Rv X3VzZXIoKeWwhg0KPiArbmFtZeWkjeWItuWIsHVzZXJzcGFjZe+8ieOAgg0KPiArDQo+ICvpnIDo poHms6jmhI/nmoTlj6bkuIDngrnmmK/vvIzlupTkuLrmjIflkJHlr7nosaHnmoTmr4/kuKrmjIfp kojkv53nlZnkuIDkuKrlvJXnlKjvvJrlm6DmraTlvZPpppbmrKHmj5LlhaXnvJPlrZjml7bvvIwN Cj4gK+W8leeUqOiuoeaVsOW9k+aYrzHjgILlnKjmn5DkupvniYjmnKzkuK3vvIzmoYbmnrbkuI3l jaDnlKjlvJXnlKjorqHmlbDvvIzkvYblroPku6zmm7TlpI3mnYLjgIINCj4gKw0KPiAr5a+55byV 55So6K6h5pWw5L2/55So5Y6f5a2Q5pON5L2cDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ ICsNCj4gK+WcqOWunui3teS4re+8jDpjOnR5cGU6YGF0b21pY190YCDpgJrluLjooqvnlKjkuo7l vJXnlKjorqHmlbDjgIIgYGBpbmNsdWRlL2FzbS9hdG9taWMuaGBgIOS4rQ0KPiAr5a6a5LmJ5LqG 6K645aSa5Y6f5a2Q5pON5L2c77ya6L+Z5Lqb5pON5L2c5Y+v5Lul5L+d6K+B5Zyo57O757uf5omA 5pyJQ1BV5Lit55qE5Y6f5a2Q5Y+v6KeB5oCn77yM5Zug5q2k5LiN6ZyA6KaB6ZSB44CCDQo+ICvo v5nkvb/lroPmr5Tkvb/nlKjoh6rml4vplIHmm7TnroDljZXvvIzlsL3nrqHlr7nkuo7ku7vkvZXp nZ7nkJDnoo7nmoTkuovmg4XvvIzkvb/nlKjoh6rml4vplIHmm7TmuIXmpZrjgILnlKgNCj4gK2F0 b21pY19pbmMoKeWSjGF0b21pY19kZWNfYW5kX3Rlc3QoKeadpeS7o+abv+agh+WHhueahOmAkuWi nuWSjOmAkuWHj+i/kOeul+espu+8jOWwseaXoOmcgOS9v+eUqOmUgQ0KPiAr5p2l5L+d5oqk5byV 55So6K6h5pWw5pys6Lqr5LqG44CCDQo+ICsNCj4gKzo6DQo+ICsNCj4gKyAgICAtLS0gY2FjaGUu Yy5yZWZjbnQgIDIwMDMtMTItMDkgMTU6MDA6MzUuMDAwMDAwMDAwICsxMTAwDQo+ICsgICAgKysr IGNhY2hlLmMucmVmY250LWF0b21pYyAgIDIwMDMtMTItMTEgMTU6NDk6NDIuMDAwMDAwMDAwICsx MTAwDQo+ICsgICAgQEAgLTcsNyArNyw3IEBADQo+ICsgICAgIHN0cnVjdCBvYmplY3QNCj4gKyAg ICAgew0KPiArICAgICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsNCj4gKyAgICAtICAg ICAgICB1bnNpZ25lZCBpbnQgcmVmY250Ow0KPiArICAgICsgICAgICAgIGF0b21pY190IHJlZmNu dDsNCj4gKyAgICAgICAgICAgICBpbnQgaWQ7DQo+ICsgICAgICAgICAgICAgY2hhciBuYW1lWzMy XTsNCj4gKyAgICAgICAgICAgICBpbnQgcG9wdWxhcml0eTsNCj4gKyAgICBAQCAtMTgsMzMgKzE4 LDE1IEBADQo+ICsgICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgY2FjaGVfbnVtID0gMDsNCj4gKyAg ICAgI2RlZmluZSBNQVhfQ0FDSEVfU0laRSAxMA0KPiArDQo+ICsgICAgLXN0YXRpYyB2b2lkIF9f b2JqZWN0X3B1dChzdHJ1Y3Qgb2JqZWN0ICpvYmopDQo+ICsgICAgLXsNCj4gKyAgICAtICAgICAg ICBpZiAoLS1vYmotPnJlZmNudCA9PSAwKQ0KPiArICAgIC0gICAgICAgICAgICAgICAga2ZyZWUo b2JqKTsNCj4gKyAgICAtfQ0KPiArICAgIC0NCj4gKyAgICAtc3RhdGljIHZvaWQgX19vYmplY3Rf Z2V0KHN0cnVjdCBvYmplY3QgKm9iaikNCj4gKyAgICAtew0KPiArICAgIC0gICAgICAgIG9iai0+ cmVmY250Kys7DQo+ICsgICAgLX0NCj4gKyAgICAtDQo+ICsgICAgIHZvaWQgb2JqZWN0X3B1dChz dHJ1Y3Qgb2JqZWN0ICpvYmopDQo+ICsgICAgIHsNCj4gKyAgICAtICAgICAgICB1bnNpZ25lZCBs b25nIGZsYWdzOw0KPiArICAgIC0NCj4gKyAgICAtICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgm Y2FjaGVfbG9jaywgZmxhZ3MpOw0KPiArICAgIC0gICAgICAgIF9fb2JqZWN0X3B1dChvYmopOw0K PiArICAgIC0gICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNhY2hlX2xvY2ssIGZsYWdz KTsNCj4gKyAgICArICAgICAgICBpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmb2JqLT5yZWZjbnQp KQ0KPiArICAgICsgICAgICAgICAgICAgICAga2ZyZWUob2JqKTsNCj4gKyAgICAgfQ0KPiArDQo+ ICsgICAgIHZvaWQgb2JqZWN0X2dldChzdHJ1Y3Qgb2JqZWN0ICpvYmopDQo+ICsgICAgIHsNCj4g KyAgICAtICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOw0KPiArICAgIC0NCj4gKyAgICAtICAg ICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmY2FjaGVfbG9jaywgZmxhZ3MpOw0KPiArICAgIC0gICAg ICAgIF9fb2JqZWN0X2dldChvYmopOw0KPiArICAgIC0gICAgICAgIHNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmNhY2hlX2xvY2ssIGZsYWdzKTsNCj4gKyAgICArICAgICAgICBhdG9taWNfaW5jKCZv YmotPnJlZmNudCk7DQo+ICsgICAgIH0NCj4gKw0KPiArICAgICAvKiBNdXN0IGJlIGhvbGRpbmcg Y2FjaGVfbG9jayAqLw0KPiArICAgIEBAIC02NSw3ICs0Nyw3IEBADQo+ICsgICAgIHsNCj4gKyAg ICAgICAgICAgICBCVUdfT04oIW9iaik7DQo+ICsgICAgICAgICAgICAgbGlzdF9kZWwoJm9iai0+ bGlzdCk7DQo+ICsgICAgLSAgICAgICAgX19vYmplY3RfcHV0KG9iaik7DQo+ICsgICAgKyAgICAg ICAgb2JqZWN0X3B1dChvYmopOw0KPiArICAgICAgICAgICAgIGNhY2hlX251bS0tOw0KPiArICAg ICB9DQo+ICsNCj4gKyAgICBAQCAtOTQsNyArNzYsNyBAQA0KPiArICAgICAgICAgICAgIHN0cnNj cHkob2JqLT5uYW1lLCBuYW1lLCBzaXplb2Yob2JqLT5uYW1lKSk7DQo+ICsgICAgICAgICAgICAg b2JqLT5pZCA9IGlkOw0KPiArICAgICAgICAgICAgIG9iai0+cG9wdWxhcml0eSA9IDA7DQo+ICsg ICAgLSAgICAgICAgb2JqLT5yZWZjbnQgPSAxOyAvKiBUaGUgY2FjaGUgaG9sZHMgYSByZWZlcmVu Y2UgKi8NCj4gKyAgICArICAgICAgICBhdG9taWNfc2V0KCZvYmotPnJlZmNudCwgMSk7IC8qIFRo ZSBjYWNoZSBob2xkcyBhIHJlZmVyZW5jZSAqLw0KPiArDQo+ICsgICAgICAgICAgICAgc3Bpbl9s b2NrX2lycXNhdmUoJmNhY2hlX2xvY2ssIGZsYWdzKTsNCj4gKyAgICAgICAgICAgICBfX2NhY2hl X2FkZChvYmopOw0KPiArICAgIEBAIC0xMTksNyArMTAxLDcgQEANCj4gKyAgICAgICAgICAgICBz cGluX2xvY2tfaXJxc2F2ZSgmY2FjaGVfbG9jaywgZmxhZ3MpOw0KPiArICAgICAgICAgICAgIG9i aiA9IF9fY2FjaGVfZmluZChpZCk7DQo+ICsgICAgICAgICAgICAgaWYgKG9iaikNCj4gKyAgICAt ICAgICAgICAgICAgICAgIF9fb2JqZWN0X2dldChvYmopOw0KPiArICAgICsgICAgICAgICAgICAg ICAgb2JqZWN0X2dldChvYmopOw0KPiArICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmNhY2hlX2xvY2ssIGZsYWdzKTsNCj4gKyAgICAgICAgICAgICByZXR1cm4gb2JqOw0KPiAr ICAgICB9DQo+ICsNCj4gK+S/neaKpOWvueixoeacrOi6qw0KPiArLS0tLS0tLS0tLS0tDQo+ICsN Cj4gK+WcqOi/meS6m+ekuuS+i+S4re+8jOaIkeS7rOWBh+iuvuWvueixoe+8iOW8leeUqOiuoeaV sOmZpOWklu+8ieWcqOWIm+W7uuWQjuS7juacquabtOaUueOAguWmguaenOaIkeS7rOaDs+abtOaU uQ0KPiAr5ZCN56ew77yM5YiZ5pyJ5LiJ56eN5Y+v6IO977yaDQo+ICsNCj4gKy0gIOaCqOWPr+S7 peS9vyBgYGNhY2hlX2xvY2tgYCDmiJDkuLrpnZ7pnZnmgIHnmoTvvIzlubblkYror4nkurrku6zl nKjmm7TmlLnku7vkvZXlr7nosaHnmoTlkI3np7DkuYvliY0NCj4gKyAgIOiOt+WPluivpemUgeOA gg0KPiArDQo+ICstICDmgqjlj6/ku6Xmj5DkvpvkuIDkuKpjYWNoZV9vYmpfcmVuYW1lKCnlh73m lbDmnaXojrflj5bmraTplIHlubbmm7TmlLnosIPnlKjogIXnmoTlkI3np7DvvIzlubblkYror4kN Cj4gKyAgIOaJgOacieS6uuS9v+eUqOivpeWHveaVsOOAgg0KPiArDQo+ICstICDmgqjlj6/ku6Xk vb8gYGBjYWNoZV9sb2NrYGAg5LuF5L+d5oqk57yT5a2Y5pys6Lqr77yM5bm25L2/55So5Y+m5LiA 5Liq6ZSB5p2l5L+d5oqk5ZCN56ew44CCDQo+ICsNCj4gK+eQhuiuuuS4iuadpeivtO+8jOWPr+S7 peS9v+mUgeeahOeykuW6pueyvue7huWIsOavj+S4gOS4quWtl+auteOAgeavj+S4gOS4quWvueix oeOAgg0KPiAr5a6e6ZmF5LiK77yM5pyA5bi46KeB55qE5Y+Y5L2T5piv77yaDQo+ICsNCj4gKy0g IOS4gOS4qumUgeS/neaKpOWfuuehgOe7k+aehO+8iOacrOS+i+S4reeahCBgYGNhY2hlYGAg57yT 5a2Y5YiX6KGo77yJ5ZKM5omA5pyJ5a+56LGh44CC6L+Z5bCx5piv5oiR5LusDQo+ICsgICDnjrDl nKjmiYDlgZrnmoTjgIINCj4gKw0KPiArLSAg5LiA5Liq6ZSB5L+d5oqk5Z+656GA57uT5p6E77yI 5YyF5ous5a+56LGh5Lit55qE5YiX6KGo5oyH6ZKI77yJ77yM5LiA5Liq6ZSB5L+d5oqk5a+56LGh 5Lit55qE5YW25L2Z6YOo5YiG44CCDQo+ICsNCj4gKy0gIOWkmuS4qumUgeadpeS/neaKpOWfuueh gOiuvuaWve+8iOS+i+Wmgu+8jOavj+S4quWTiOW4jOmTvuS4gOS4qumUge+8ie+8jOWPr+iDveav j+S4quWvueixoemDveacieS4gOS4quWNleeLrA0KPiArICAg55qE6ZSB44CCDQo+ICsNCj4gK+S7 peS4i+aYr+KAnOavj+S4quWvueixoeS4gOS4qumUgeKAneeahOWunueOsO+8mg0KPiArDQo+ICs6 Og0KPiArDQo+ICsgICAgLS0tIGNhY2hlLmMucmVmY250LWF0b21pYyAgIDIwMDMtMTItMTEgMTU6 NTA6NTQuMDAwMDAwMDAwICsxMTAwDQo+ICsgICAgKysrIGNhY2hlLmMucGVyb2JqZWN0bG9jayAg IDIwMDMtMTItMTEgMTc6MTU6MDMuMDAwMDAwMDAwICsxMTAwDQo+ICsgICAgQEAgLTYsMTEgKzYs MTcgQEANCj4gKw0KPiArICAgICBzdHJ1Y3Qgb2JqZWN0DQo+ICsgICAgIHsNCj4gKyAgICArICAg ICAgICAvKiBUaGVzZSB0d28gcHJvdGVjdGVkIGJ5IGNhY2hlX2xvY2suICovDQo+ICsgICAgICAg ICAgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0Ow0KPiArICAgICsgICAgICAgIGludCBwb3B1bGFy aXR5Ow0KPiArICAgICsNCj4gKyAgICAgICAgICAgICBhdG9taWNfdCByZWZjbnQ7DQo+ICsgICAg Kw0KPiArICAgICsgICAgICAgIC8qIERvZXNuJ3QgY2hhbmdlIG9uY2UgY3JlYXRlZC4gKi8NCj4g KyAgICAgICAgICAgICBpbnQgaWQ7DQo+ICsgICAgKw0KPiArICAgICsgICAgICAgIHNwaW5sb2Nr X3QgbG9jazsgLyogUHJvdGVjdHMgdGhlIG5hbWUgKi8NCj4gKyAgICAgICAgICAgICBjaGFyIG5h bWVbMzJdOw0KPiArICAgIC0gICAgICAgIGludCBwb3B1bGFyaXR5Ow0KPiArICAgICB9Ow0KPiAr DQo+ICsgICAgIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soY2FjaGVfbG9jayk7DQo+ICsgICAgQEAg LTc3LDYgKzg0LDcgQEANCj4gKyAgICAgICAgICAgICBvYmotPmlkID0gaWQ7DQo+ICsgICAgICAg ICAgICAgb2JqLT5wb3B1bGFyaXR5ID0gMDsNCj4gKyAgICAgICAgICAgICBhdG9taWNfc2V0KCZv YmotPnJlZmNudCwgMSk7IC8qIFRoZSBjYWNoZSBob2xkcyBhIHJlZmVyZW5jZSAqLw0KPiArICAg ICsgICAgICAgIHNwaW5fbG9ja19pbml0KCZvYmotPmxvY2spOw0KPiArDQo+ICsgICAgICAgICAg ICAgc3Bpbl9sb2NrX2lycXNhdmUoJmNhY2hlX2xvY2ssIGZsYWdzKTsNCj4gKyAgICAgICAgICAg ICBfX2NhY2hlX2FkZChvYmopOw0KPiArDQo+ICvms6jmhI/vvIzmiJHkvb/nlKggYGBjYWNoZV9s b2NrYGAg5p2l5L+d5oqk5rS76LeD5bqm6K6h5pWw77yM6ICM5LiN5piv6YCQ5a+56LGh6ZSB77ya 6L+Z5piv5Zug5Li65a6D77yI5YOPDQo+ICvlr7nosaHkuK3nmoQgOmM6dHlwZTpgc3RydWN0IGxp c3RfaGVhZCA8bGlzdF9oZWFkPmAg77yJ5Zyo6YC76L6R5LiK5piv5Z+656GA57uT5p6E55qE5LiA 6YOo5YiG44CCDQo+ICvov5nmoLflsLHkuI3pnIDopoHlnKjlr7vmib7mnIDkuI3mtLvot4PnmoTl r7nosaHml7bojrflj5ZfX2NhY2hlX2FkZCgp5Lit5q+P5Liq5a+56LGh55qE6ZSB44CCDQo+ICsN Cj4gK+aIkei/mOS9v2lk5oiQ5ZGY5Li65LiN5Y+v5pu05pS577yM6L+Z5qC35bCx5peg6ZyA5LiA 5LiA6I635Y+WX19jYWNoZV9maW5kKCnkuK3nmoTlr7nosaHplIHmnaXmo4Dmn6VpZO+8mg0KPiAr 5a+56LGh6ZSB5Y+q55Sx5biM5pyb6K+75Y+W5oiW5YaZ5YWl5ZCN56ew5a2X5q6155qE6LCD55So 6ICF5L2/55So44CCDQo+ICsNCj4gK+i/mOimgeazqOaEj++8jOaIkea3u+WKoOS6huS4gOS4quaP j+i/sOWTquS6m+aVsOaNruWPl+WTquS6m+mUgeeahOS/neaKpOeahOazqOmHiuOAgui/meS4gOeC uemdnuW4uOmHjeimge+8jOWboOS4ug0KPiAr5a6D5o+P6L+w5LqG5Luj56CB6L+Q6KGM5pe255qE 6KGM5Li677yM5bm25LiU5b6I6Zq+55u05o6l55yL5Ye65p2l44CC5q2j5aaCQWxhbiBDb3jmiYDo r7TvvIzigJzlr7nmlbDmja7liqDplIHvvIwNCj4gK+iAjOS4jeaYr+S7o+eggeKAneOAgg0KPiAr DQo+ICvluLjop4Hpl67popgNCj4gKz09PT09PT09DQo+ICsNCj4gK+atu+mUge+8muWFpemXqOS4 jui/m+mYtg0KPiArLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICvkuIDmrrXku6PnoIHor5Xlm77k uKTmrKHojrflj5blkIzkuIDoh6rml4vplIHkvJrlr7zoh7TplJnor6/vvJrlroPlsIbmsLjov5zo h6rml4vvvIznrYnlvoXplIHooqvph4rmlL7vvIjoh6rml4vplIHjgIENCj4gK+ivu+WGmemUgVty d2xvY2tzXeWSjOS6kuaWpemUgeWcqExpbnV45Lit5LiN5piv6YCS5b2S55qE77yJ44CC6L+Z6K+K 5pat6LW35p2l5b6I566A5Y2V55CQ56KO77ya5LiN5piv5LiA5LiqDQo+ICvigJzmiJHmg7Pkuobl jYHlpKnljYHlpJzigKbigKbigJ3nmoTpl67popjjgIINCj4gKw0KPiAr5a+55LqO56iN5b6u5aSN 5p2C5LiA54K555qE5oOF5Ya177yM5YGH6K6+5oKo5pyJ5LiA5Liq55Sx6L2v5Lit5pat5ZKM55So 5oi35LiK5LiL5paH5YWx5Lqr55qE5Yy65Z+f44CC5aaC5p6c5oKo6LCD55SoDQo+ICtzcGluX2xv Y2soKeadpeS/neaKpOWug++8jOmCo+S5iOW9k+i9r+S4reaWreaMgeaciemUgeaXtu+8jOeUqOaI t+S4iuS4i+aWh+WPr+iDveS8muiiq+S4reaWre+8jOeEtuWQjui9r+S4reaWrQ0KPiAr5Lya5LiA 55u05peL6L2s5Lul6K+V5Zu+6I635Y+W5ZCM5LiA6ZSB44CCDQo+ICsNCj4gK+i/meS4pOenjeaD heWGtemDveensOS4uuatu+mUge+8jOWmguS4iuaJgOekuu+8jOWNs+S9v+WPquacieS4gOS4qkNQ VeS5n+S8muWPkeeUn+atu+mUge+8iOWwveeuoeWcqFVQ57yW6K+R5Lit5LiNDQo+ICvmmK/ov5nm oLfvvIzlm6DkuLrlnKggYGBDT05GSUdfU01QID0gbmBgIOeahOWGheaguOe8luivkeS4re+8jOiH quaXi+mUgeS8mua2iOWkseOAguS4jei/h+esrOS6jOS4quekuuS+i+S4rQ0KPiAr5LuN54S25Lya 5Ye6546w5pWw5o2u5o2f5Z2P77yJ44CCDQo+ICsNCj4gK+i/meenjeWujOWFqOmUgeWumuW+iOWu ueaYk+iviuaWre+8muWcqFNNUOiuoeeul+acuuS4iuWPkeeUn+i/meenjeaDheWGteaXtu+8jOec i+mXqOeLl+iuoeaXtuWZqOaIluW8gOWQrw0KPiArYGBERUJVR19TUElOTE9DS2BgIOiuvue9ru+8 iCBgYGluY2x1ZGUvbGludXgvc3BpbmxvY2suaGBgIO+8iee8luivkeS8mueri+WNs+aYvuekuuWH uuadpeOAgg0KPiArDQo+ICvmm7TlpI3mnYLnmoTkuIDnp43mg4XlhrXmmK/miYDosJPnmoTigJzo h7Tlkb3mi6XmirHvvIhkZWFkbHkgZW1icmFjZe+8ieKAne+8jOWQjOaXtua2ieWPiuS4pOS4quaI luWkmuS4qumUgeOAgg0KPiAr5YGH6K6+5oKo5pyJ5LiA5Liq5ZOI5biM6KGo77ya6KGo5Lit55qE 5q+P5Liq5p2h55uu6YO95piv5LiA5Liq6Ieq5peL6ZSB5ZKM5LiA5Liq5ZOI5biM5a+56LGh6ZO+ 44CC5Zyo6L2v5Lit5patDQo+ICvlpITnkIbnqIvluo/kuK3vvIzmnInml7bpnIDopoHlsIblr7no saHku47lk4jluIzkuK3nmoTkuIDkuKrkvY3nva7mm7TmlLnkuLrlj6bkuIDkuKrkvY3nva7vvJro jrflj5bml6flk4jluIzpk77nmoQNCj4gK+iHquaXi+mUgeWSjOaWsOWTiOW4jOmTvueahOiHquaX i+mUge+8jOeEtuWQjuS7juaXp+WTiOW4jOmTvuS4reWIoOmZpOWvueixoe+8jOW5tuWwhuWFtuaP kuWFpeaWsOaVo+WIl+mTvuS4reOAgg0KPiArDQo+ICvov5nph4zmnInkuKTkuKrpl67popjjgILp ppblhYjvvIzlpoLmnpzmgqjnmoTku6PnoIHor5Xlm77lsIblr7nosaHnp7vliqjliLDlkIzkuIDk uKrpk77kuK3vvIzlroPlsIblnKjkuKTmrKHlsJ3or5UNCj4gK+mUgeWumuWvueixoeaXtuS4juiH qui6q+atu+mUgeOAguWFtuasoe+8jOWmguaenOWPpuS4gOS4qkNQVeS4iueahOWQjOS4gOS4qui9 r+S4reaWreato+ivleWbvuWPjeWQkeenu+WKqOWPpuS4gOS4qg0KPiAr5a+56LGh77yM5YiZ5Y+v 6IO95Y+R55Sf5Lul5LiL5oOF5Ya177yaDQo+ICsNCj4gKy4uIHRhYmxlOjog57uT5p6c6KGoDQo+ ICsNCj4gKyAgKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAg fCBDUFUgMSAgICAgICAgICAgICB8IENQVSAyICAgICAgICAgICAgIHwNCj4gKyAgKz09PT09PT09 PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PSsNCj4gKyAgfCDojrflj5bplIFBIC0+IE9L ICAgICB8IOiOt+WPlumUgUIgLT4gT0sgICAgIHwNCj4gKyAgKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgfCDojrflj5bplIFCIC0+IOiHquaXiyAgIHwg6I63 5Y+W6ZSBQSAtPiDoh6rml4sgICB8DQo+ICsgICstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rDQo+ICsNCj4gK+S4pOS4qkNQVeWwhuawuOi/nOiHquaXi++8jOetieW+heWP puS4gOS4quaUvuW8g+mUgeOAguWmguaenOi/meeci+i1t+adpeWDj+S6i+aVheOAgemXu+i1t+ad peWDj+S6i+aVheOAgeaEn+iniQ0KPiAr6LW35p2l5Lmf5YOP5LqL5pWF77yM6YKj5Y2B6Laz5piv 5Liq5LqL5pWF44CCDQo+ICsNCj4gK+mYsuatouWHuueOsOatu+mUgQ0KPiArLS0tLS0tLS0tLS0t DQo+ICsNCj4gK+aVmeenkeS5puS8muWRiuivieS9oO+8jOWmguaenOS9oOaAu+aYr+aMieeFp+Wb uuWumumhuuW6j+WKoOmUge+8jOmCo+awuOi/nOS4jeS8muWHuueOsOatu+mUgeOAgg0KPiAr5L2G 5a6e6Le15Lya5ZGK6K+J5oKo77yM6L+Z56eN5pa55rOV5rKh5pyJ5omp5bGV5oCn77ya5b2T5Yib 5bu65LiA5Liq5paw6ZSB5pe277yM5oiR5a+55YaF5qC455qE55CG6Kej56iL5bqm5bCaDQo+ICvm l6Dms5Xnoa7lrprlroPlnKg1MDAw57qn6ZSB5bGC5qyh57uT5p6E5Lit55qE5L2N572u44CCDQo+ ICsNCj4gK+acgOWlveeahOmUgeaYr+e7j+i/h+WwgeijheeahO+8muWug+S7rOS7juS4jeaatOmc suWcqOWktOaWh+S7tuS4re+8jOS5n+S7juS4jeiiq+WvueWQjOS4gOaWh+S7tuWklueahOWkjead guWHveaVsA0KPiAr55qE6LCD55So5omA5oyB5pyJ44CC5oKo5Y+v5Lul6YCa6K+76L+Z5q615Luj 56CB5bm255yL5Yiw5a6D5rC46L+c5LiN5Lya5q276ZSB77yM5Zug5Li65a6D5Zyo5oyB5pyJ5p+Q 5Liq6ZSB5pe25LuO5LiNDQo+ICvlsJ3or5Xojrflj5blj6bkuIDkuKrlkIzmoLfnmoTplIHjgILk vb/nlKjkvaDku6PnoIHnmoTkurrnlJroh7PkuI3pnIDopoHnn6XpgZPkvaDlnKjkvb/nlKjplIHj gIINCj4gKw0KPiAr5b2T5oKo5o+Q5L6b5Zue6LCD5oiW6ZKp5a2Q5pe277yM5Lya5Ye6546w5LiA 5Liq57uP5YW455qE6Zeu6aKY77ya5aaC5p6c5oKo5Zyo5oyB5pyJ6ZSB55qE5oOF5Ya15LiL6LCD 55So6L+Z5LqbDQo+ICvlm57osIPmiJbpkqnlrZDvvIzmgqjlsIbpnaLkuLTigJznroDljZXnmoTm rbvplIHigJ3miJbigJzoh7Tlkb3mi6XmirHigJ3vvIjosIHnn6XpgZPlm57osIPkvJrlgZrku4Dk uYjvvJ/vvInjgILorrDkvY/vvIwNCj4gK+WFtuS7lueoi+W6j+WRmOmDveaYr+adpeaQnuS9oOea hO+8jOaJgOS7peS4jeimgei/meagt+WBmuOAgg0KPiArDQo+ICvov4fliIbpmLLmraLmrbvplIEN Cj4gK35+fn5+fn5+fn5+fg0KPiArDQo+ICvmrbvplIHmmK/kuKrpl67popjvvIzkvYbmsqHmnInm lbDmja7mjZ/lnY/pgqPkuYjkuKXph43jgILojrflj5bor7vplIHjgIHmkJzntKLliJfooajjgIHm ib7kuI3liLDmiYDpnIDlhoXlrrnjgIENCj4gK+aUvuW8g+ivu+mUgeOAgeiOt+WPluWGmemUgeS7 peWPiuaPkuWFpeWvueixoei/meS6m+aTjeS9nOeahOS7o+eggeaYr+WFt+acieernuS6ieadoeS7 tueahOOAgg0KPiArDQo+ICvlpoLmnpzkvaDlsJrmnKrmuIXmpZrljp/lm6DvvIzor7fkuI3opoHo vbvmmJPmlLnliqjku6PnoIHjgIINCj4gKw0KPiAr56ue5LqJ6K6h5pe25Zmo77ya5YaF5qC455qE 56m66ZeyDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gK+iuoeaXtuWZqOS8muWH uueOsOWFtueJueacieeahOernuS6iemXrumimOOAguivleaDs+S4gOS4quWvueixoembhuWQiO+8 iOWIl+ihqOOAgeaVo+WIl+etie+8ie+8jOWFtuS4reavj+S4quWvueixoQ0KPiAr6YO95pyJ5LiA 5Liq6K6h5pe25Zmo77yM6K+l6K6h5pe25Zmo5bCG6ZSA5q+B5a6D44CCDQo+ICsNCj4gK+Wmguae nOimgemUgOavgeaVtOS4qumbhuWQiO+8iOS+i+WmguWcqOWIoOmZpOaooeWdl+aXtu+8ie+8jOWP r+S7peaJp+ihjOS7peS4i+aTjeS9nDo6DQo+ICsNCj4gKyAgICAgICAgICAgIC8qIOi/meauteS7 o+eggeW+iOezn+ezle+8muWmguaenOaDheWGteWGjeezn+S4gOeCueeCue+8jA0KPiArICAgICAg ICAgICAg5a6D5bCG5L2/55So5YyI54mZ5Yip56ym5Y+377yISFVOR0FSSUFOIE5PVEFUSU9O77yJ Ki8NCj4gKyAgICAgICAgICAgIHNwaW5fbG9ja19iaCgmbGlzdF9sb2NrKTsNCj4gKw0KPiArICAg ICAgICAgICAgd2hpbGUgKGxpc3QpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZv byAqbmV4dCA9IGxpc3QtPm5leHQ7DQo+ICsgICAgICAgICAgICAgICAgICAgIGRlbF90aW1lcigm bGlzdC0+dGltZXIpOw0KPiArICAgICAgICAgICAgICAgICAgICBrZnJlZShsaXN0KTsNCj4gKyAg ICAgICAgICAgICAgICAgICAgbGlzdCA9IG5leHQ7DQo+ICsgICAgICAgICAgICB9DQo+ICsNCj4g KyAgICAgICAgICAgIHNwaW5fdW5sb2NrX2JoKCZsaXN0X2xvY2spOw0KPiArDQo+ICsNCj4gK+i/ mei/n+aXqeS8muWcqFNNUOS4iuW0qea6g++8jOWboOS4uuS4gOS4quiuoeaXtuWZqOWPr+iDveWc qHNwaW5fbG9ja19iaCgp5LmL5YmN5Yia5Yia5YWz6Zet77yM5a6D5Y+q5LyaDQo+ICvlnKjmiJHk u6xzcGluX3VubG9ja19iaCgp5LmL5ZCO6I635b6X6ZSB77yM54S25ZCO5bCd6K+V6YeK5pS+ICoq 5bey57uP6YeK5pS+5LqG55qEKiog5YWD57Sg44CCDQo+ICsNCj4gK+i/meWPr+S7pemAmui/h+aj gOafpWRlbF90aW1lcigp55qE57uT5p6c5p2l6YG/5YWN77ya5aaC5p6c5a6D6L+U5ZueMe+8jOWI meihqOekuuiuoeaXtuWZqOW3suiiq+WIoOmZpOOAgg0KPiAr5aaC5p6c5Li6MO+8jO+8iOWcqOac rOS+i+S4re+8ieWImeihqOekuuWug+W9k+WJjeato+WcqOi/kOihjO+8jOWboOatpOaIkeS7rOWP r+S7pei/meagt+WBmjo6DQo+ICsNCj4gKyAgICAgICAgICAgIHJldHJ5Og0KPiArICAgICAgICAg ICAgICAgICAgICBzcGluX2xvY2tfYmgoJmxpc3RfbG9jayk7DQo+ICsNCj4gKyAgICAgICAgICAg ICAgICAgICAgd2hpbGUgKGxpc3QpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgZm9vICpuZXh0ID0gbGlzdC0+bmV4dDsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoIWRlbF90aW1lcigmbGlzdC0+dGltZXIpKSB7DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiBHaXZlIHRpbWVyIGEgY2hhbmNlIHRvIGRlbGV0ZSB0aGlz ICovDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGluX3VubG9ja19i aCgmbGlzdF9sb2NrKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdv dG8gcmV0cnk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGtmcmVlKGxpc3QpOw0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpc3QgPSBuZXh0Ow0KPiArICAgICAgICAgICAgICAgICAgICB9DQo+ICsNCj4gKyAg ICAgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2tfYmgoJmxpc3RfbG9jayk7DQo+ICsNCj4gKw0K PiAr5Y+m5LiA5Liq5bi46KeB6Zeu6aKY5piv6KaB5Yig6Zmk5Lya6YeN5ZCv6Ieq5bex55qE6K6h 5pe25Zmo77yI6K6h5pe25Zmo5Ye95pWw5pyr5bC+6LCD55So5LqGYWRkX3RpbWVyKCnvvInjgIIN Cj4gK+i/meaYr+S4gOenjeW+iOW4uOingeeahOWuueaYk+W8leWPkeernuS6ieeahOaDheWGte+8 jOW6lOivpeS9v+eUqGRlbF90aW1lcl9zeW5jKCkNCj4gK++8iCBgYGluY2x1ZGUvbGludXgvdGlt ZXIuaGBgIO+8ieadpeWkhOeQhuOAguWug+i/lOWbnuaIkeS7rOacgOe7iOmYu+atouiuoeaXtuWZ qOmHjeaWsOa3u+WKoOiHqui6qw0KPiAr5LmL5YmN5b+F6aG75Yig6Zmk55qE5qyh5pWw44CCDQo+ ICsNCj4gK+mUgeaTjeS9nOmAn+W6pg0KPiArPT09PT09PT09PQ0KPiArDQo+ICvlnKjogIPomZHm n5DkupvmiafooYzplIHmk43kvZzku6PnoIHnmoTpgJ/luqbml7bvvIzkuLvopoHmnInkuInkuKrp l67popjlgLzlvpfms6jmhI/jgILpppblhYjmmK/lubblj5HmgKfvvJrlvZPmn5ANCj4gK+WHveaV sOaMgeaciemUgeaXtu+8jOacieWkmuWwkeS6i+aDheimgeetieW+heOAguWFtuasoeaYr+WunumZ heiOt+WPluWSjOmHiuaUvumdnuernuS6iemUgeaJgOmcgOeahOaXtumXtOOAguesrOS4iQ0KPiAr 5piv5L2/55So5pu05bCR5oiW5pu05pm66IO955qE6ZSB44CC6L+Z6YeM5oiR5YGH6K6+6ZSB5L2/ 55So5b6X55u45b2T6aKR57mB77yM5ZCm5YiZ5oKo5bCx5LiN5aSq5Lya5YWz5b+D5pWI546H44CC DQo+ICsNCj4gK+W5tuWPkeaAp+WPluWGs+S6jumAmuW4uOmUgeiiq+aMgeacieeahOaXtumXtO+8 muaCqOW6lOivpeagueaNrumcgOimgeaMgeaciemUge+8jOS4jeWPr+aXoOerr+iOt+WPluOAguWc qGNhY2hlDQo+ICvnpLrkvovkuK3vvIzmiJHku6zmgLvmmK/lnKjkuI3mjIHmnInplIHnmoTmg4Xl hrXkuIvliJvlu7rlr7nosaHvvIzlj6rmnInkuYvlkI7lh4blpIflsIblhbbmj5LlhaXliJfooajm l7bmiY3ojrflj5bplIHjgIINCj4gKw0KPiAr6I635Y+W5pe26Ze05Y+W5Yaz5LqO6ZSB5pON5L2c 5a+5566h57q/77yIcGlwZWxpbmXvvInpgKDmiJDnmoTnoLTlnY/nqIvluqbvvIjnrqHnur/mmoLl gZzvvInku6Xlj4ror6VDUFXmnIDlkI4NCj4gK+S4gOS4quiOt+WPlumUgeeahOWPr+iDveaAp++8 iOWNs+ivpUNQVeeahOmUgee8k+WtmOaYr+WQpueDre+8ie+8muWcqOWFt+acieabtOWkmkNQVeea hOacuuWZqOS4iu+8jOi/meenjeWPr+iDveaApw0KPiAr5LiL6ZmN5b6X5b6I5b+r44CC5LulNzAw TUh6IEludGVsIFBlbnRpdW0gSUlJ5Li65L6L77ya5LiA5p2h5oyH5Luk5aSn57qm6ZyA6KaBMC43 bnPvvIzkuIDkuKrljp/lrZDlop4NCj4gK+WKoOWkp+e6pumcgOimgTU4bnPvvIzkuIDkuKpDUFXk uIrng63nvJPlrZjnmoTplIHpnIDopoExNjBuc++8jOS7juWPpuS4gOS4qkNQVeS8oOi+k+e8k+Wt mOe6v+mcgOimgemineWklueahA0KPiArMTcw5YiwMzYwbnPvvIjov5nkupvmlbDmja7mnaXoh6pQ YXVsIE1jS2VubmV555qEIGBMaW51eCBKb3VybmFsIFJDVSDmlofnq6ANCj4gKzxodHRwOi8vd3d3 LmxpbnV4am91cm5hbC5jb20vYXJ0aWNsZS5waHA/c2lkPTY5OTM+YF8g77yJ44CCDQo+ICsNCj4g K+i/meS4pOS4quebruagh+aYr+WGsueqgeeahO+8mue8qeefremUgeeahOaMgeacieaXtumXtOWP r+S7pemAmui/h+WwhumUgeWIhuaIkOWHoOS4qumDqOWIhuadpeWujOaIkOeahO+8iOS+i+Wmgg0K PiAr5pyA5ZCO55qE6YCQ5a+56LGh6ZSB56S65L6L77yJ77yM5L2G5piv6L+Z5Lya5aKe5Yqg6ZSB 6I635Y+W5pON5L2c55qE5pWw6YeP77yM5LiU57uT5p6c6YCa5bi45q+U5oyB5pyJ5LiA5Liq6ZSB 5oWi44CCDQo+ICvov5nkuZ/mmK/mj5DlgKHnroDljZXplIHmk43kvZznmoTlj6bkuIDkuKrljp/l m6DjgIINCj4gKw0KPiAr56ys5LiJ5Liq6Zeu6aKY5aaC5LiL77ya5pyJ5LiA5Lqb5pa55rOV5Y+v 5Lul5YeP5bCR6ZyA6KaB5omn6KGM55qE6ZSB5pON5L2c5pWw6YeP44CCDQo+ICsNCj4gK+ivuy/l hpnplIHlj5jkvZMNCj4gKy0tLS0tLS0tLS0tDQo+ICsNCj4gK+iHquaXi+mUgeWSjOS6kuaWpemU gemDveacieivuy/lhpnlj5jkvZPvvJogYGByd2xvY2tfdGBgIOWSjCA6Yzp0eXBlOmBzdHJ1Y3Qg cndfc2VtYXBob3JlDQo+ICs8cndfc2VtYXBob3JlPmAg44CC6L+Z5bCG5pON5L2c5YiG5Li65Lik 57G777ya6K+75ZKM5YaZ44CC5aaC5p6c5Y+q6K+75Y+W5pWw5o2u77yM5YiZ5Y+v5Lul6I635b6X 6K+76ZSB77ybDQo+ICvkvYbopoHlhpnlhaXmlbDmja7vvIzliJnpnIDopoHlhpnplIHjgILor7vp lIHlj6/nlLHlpJrkurrmjIHmnInvvIzkvYblhpnplIHmjIHmnInogIXlv4XpobvllK/kuIDjgIIN Cj4gKw0KPiAr5aaC5p6c5oKo55qE5Luj56CB6K+7L+WGmeWZqOa4heaZsOWIhuemu++8iOWwseWD j+aIkeS7rOeahOe8k+WtmOS7o+eggemCo+agt++8ie+8jOW5tuS4lOmUgeeUseivu+WGmeWZqOaM geacieebuOW9kw0KPiAr6ZW/55qE5pe26Ze077yM6YKj5LmI5L2/55So6L+Z5Lqb6ZSB5Lya5pyJ 5omA5biu5Yqp44CC5LiN6L+H5a6D5Lus5q+U5pmu6YCa6ZSB56iN5oWi77yM5Zug5q2k5Zyo5a6e 6Le15LitDQo+ICtgYHJ3bG9ja190YGAg6YCa5bi45LiN5YC85b6X5L2/55So44CCDQo+ICsNCj4g K+mBv+WFjeWKoOmUge+8muivuy3lpI3liLYt5pu05pawDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+ICsNCj4gK+acieS4gOenjeeJueauiueahOivuy/lhpnplIHlrprmlrnms5Xnp7DkuLro r7st5aSN5Yi2LeabtOaWsO+8iFJlYWQgQ29weSBVcGRhdGXvvIxSQ1XvvInjgILkvb/nlKhSQ1Xv vIwNCj4gK+ivu+WPlueoi+W6j+WPr+S7peWujOWFqOmBv+WFjeS9v+eUqOmUge+8muWboOS4uuaI keS7rOacn+acm+e8k+WtmOeahOivu+WPlumikeeOh+avlOabtOaWsOmikeeOh+mrmO+8iOWQpuWI mee8k+WtmA0KPiAr5piv5rWq6LS55pe26Ze077yJ77yM5omA5Lul5a6D6YCC55So6L+Z56eN5LyY 5YyW44CCDQo+ICsNCj4gK+mCo+aIkeS7rOWmguS9leaRhuiEseivu+mUgeWRou+8n+aRhuiEseiv u+mUgeaEj+WRs+edgOWGmeeoi+W6j+WPr+iDveS8muabtOaUueivu+eoi+W6j+S4i+mdoueahOWI l+ihqOOAgui/meWunumZhQ0KPiAr5LiK6Z2e5bi4566A5Y2V77ya5aaC5p6c5YaZ56iL5bqP6Z2e 5bi45bCP5b+D5Zyw5re75Yqg5YWD57Sg77yM5oiR5Lus5Y+v5Lul5Zyo5re75Yqg5YWD57Sg5pe2 6K+75Y+W6ZO+6KGo44CCDQo+ICvkvovlpoLvvIzlkJHlkI3kuLogYGBsaXN0YGAg55qE5Y2V6ZO+ 6KGo5re75YqgIGBgbmV3YGAgOjoNCj4gKw0KPiArICAgICAgICAgICAgbmV3LT5uZXh0ID0gbGlz dC0+bmV4dDsNCj4gKyAgICAgICAgICAgIHdtYigpOw0KPiArICAgICAgICAgICAgbGlzdC0+bmV4 dCA9IG5ldzsNCj4gKw0KPiArDQo+ICt3bWIoKeaYr+S4gOS4quWGmeWGheWtmOWxj+manO+8iHdy aXRlIG1lbW9yeSBiYXJyaWVy77yJ44CC5a6D56Gu5L+d56ys5LiA5Liq5pON5L2c77yI6K6+572u 5paw5YWD57Sg55qEDQo+ICtgYG5leHRgYCDmjIfpkojvvInmmK/lrozmlbTnmoTvvIzlubbkuJTl nKjnrKzkuozkuKrmk43kvZzvvIjlsIbmlrDlhYPntKDmlL7lhaXliJfooajvvInkuYvliY3miYDm nIlDUFXpg73lj68NCj4gK+ingeOAgui/meS4gOeCueW+iOmHjeimge+8jOWboOS4uueOsOS7o+e8 luivkeWZqOWSjOeOsOS7o0NQVemDveWPr+S7peWvueaMh+S7pOmHjeaWsOaOkuW6j++8iOmZpOmd nuWPpuacieivtOaYju+8ie+8mg0KPiAr5oiR5Lus5biM5pyb6K+75Y+W56iL5bqP6KaB5LmI5qC5 5pys55yL5LiN5Yiw5paw5YWD57Sg77yM6KaB5LmI55yL5YiwIGBgbmV4dGBgIOaMh+mSiOato+eh ruaMh+WQkeWIl+ihqOWFtuS9mQ0KPiAr6YOo5YiG55qE5paw5YWD57Sg44CCDQo+ICsNCj4gK+W5 uOi/kOeahOaYr++8jOWvueS6juagh+WHhueahCA6Yzp0eXBlOmBzdHJ1Y3QgbGlzdF9oZWFkIDxs aXN0X2hlYWQ+YCDliJfooajmnInkuIDkuKrlh73mlbDlj6/ku6UNCj4gK+WBmuWIsOi/meS4gOeC ue+8mmxpc3RfYWRkX3JjdSgp77yIIGBgaW5jbHVkZS9saW51eC9saXN0LmhgYCDvvInjgIINCj4g Kw0KPiArRm9ydHVuYXRlbHksIHRoZXJlIGlzIGEgZnVuY3Rpb24gdG8gZG8gdGhpcyBmb3Igc3Rh bmRhcmQNCj4gKzpjOnR5cGU6YHN0cnVjdCBsaXN0X2hlYWQgPGxpc3RfaGVhZD5gIGxpc3RzOg0K PiArbGlzdF9hZGRfcmN1KCkgKGBgaW5jbHVkZS9saW51eC9saXN0LmhgYCkuDQo+ICsNCj4gK+S7 juWIl+ihqOS4reWIoOmZpOWFg+e0oOabtOeugOWNle+8muaIkeS7rOWwhuaMh+WQkeaXp+WFg+e0 oOeahOaMh+mSiOabv+aNouS4uuaMh+WQkeWFtuWQjue7reWFg+e0oOeahOaMh+mSiO+8jOivu+WP lg0KPiAr56iL5bqP6KaB5LmI5Y+v5Lul55yL5Yiw5a6D77yM6KaB5LmI6Lez6L+H5a6D44CCDQo+ ICsNCj4gKzo6DQo+ICsNCj4gKyAgICAgICAgICAgIGxpc3QtPm5leHQgPSBvbGQtPm5leHQ7DQo+ ICsNCj4gK2xpc3RfZGVsX3JjdSgp77yIIGBgaW5jbHVkZS9saW51eC9saXN0LmhgYCDvvInlh73m lbDlj6/ku6XlgZrov5nkuKrvvIjmma7pgJrniYjmnKzkvJrmr5LljJbml6cNCj4gK+Wvueixoe+8 jOi/meaYr+aIkeS7rOS4jeW4jOacm+eahO+8ieOAgg0KPiArDQo+ICvor7vlj5bnqIvluo/kuZ/l v4XpobvlsI/lv4PvvJrkuIDkuptDUFXlj6/ku6Xmn6XnnIsgYGBuZXh0YGAg5oyH6ZKI77yM5Lul 5L6/5bC95pep5byA5aeL6K+75Y+W5LiL5LiA5Liq5YWD57SgDQo+ICvnmoTlhoXlrrnvvIzkvYbl vZMgYGBuZXh0YGAg5oyH6ZKI5Zyo5YW25ZCO5pu05pS55pe277yM5peg5rOV5Y+R546w5Yiw6aKE 6K+755qE5YaF5a655piv6ZSZ6K+v55qE44CC5ZCM5qC377yMDQo+ICtsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3JjdSgp77yIIGBgaW5jbHVkZS9saW51eC9saXN0LmhgYCDvvInlj6/ku6XluK7liqnmgqjj gILlvZPnhLbvvIzlhpnlhaUNCj4gK+eoi+W6j+WPr+S7peWPquS9v+eUqGxpc3RfZm9yX2VhY2hf ZW50cnkoKe+8jOWboOS4uuS4jeiDveWQjOaXtuacieS4pOS4quWGmeWFpeeoi+W6j+OAgg0KPiAr DQo+ICvmnIDlkI7kuIDkuKrpmr7popjmmK/vvJrmiJHku6zku4DkuYjml7blgJnmiY3og73nnJ/m raPplIDmr4Hnp7vpmaTnmoTlhYPntKDvvJ/orrDkvY/vvIzor7vlj5bnqIvluo/lj6/og73mraPl nKjliJfooagNCj4gK+S4reivu+WIsOi/meS4quWFg+e0oO+8muWmguaenOmHiuaUvui/meS4quWF g+e0oOW5tuS4lCBgYG5leHRgYCDmjIfpkojlj5HnlJ/lj5jljJbvvIzor7vlj5bnqIvluo/lsLHk vJrot7Pov5sNCj4gK+Weg+WcvuWghuW5tuW0qea6g+OAguaIkeS7rOmcgOimgeetieWIsOmBjeWO huWIl+ihqOeahOaJgOacieivu+WPlueoi+W6j+mDveWujOaIkOS6huaJjeWPr+S7peWIoOmZpOWF g+e0oOOAguWPr+S9v+eUqA0KPiArY2FsbF9yY3UoKeazqOWGjOS4gOS4quWbnuiwg++8jOS4gOaX puaJgOaciemihOWFiOWtmOWcqOeahOivu+WPlueoi+W6j+mDveWujOaIkO+8jOWbnuiwg+WwseS8 mumUgOavgeivpeWvueixoeOAgg0KPiAr5oiW6ICF77yMc3luY2hyb25pemVfcmN1KCnlj6/ku6Xn lKjkuo7pmLvmraLph4rmlL7nm7TliLDmiYDmnInpooTlhYjlrZjlnKjnmoTor7vlj5bnqIvluo/l rozmiJDjgIINCj4gKw0KPiAr6YKj5LmI6K+7LeWkjeWIti3mm7TmlrDlpoLkvZXnn6XpgZPor7vl j5bnqIvluo/kvZXml7blrozmiJDvvJ/mlrnms5XmmK/vvJrpppblhYjvvIzor7vlj5bnqIvluo/m gLvmmK/pgY3ljoYNCj4gK3JjdV9yZWFkX2xvY2soKS9yY3VfcmVhZF91bmxvY2soKeWvueS4reea hOWIl+ihqO+8mui/meebtOaOpeemgeeUqOS6huaKouWNoO+8jOS7peS9v+ivu+WPlueoi+W6jw0K PiAr5Zyo6K+75Y+W5YiX6KGo5pe25LiN5Lya5LyR55yg44CCDQo+ICsNCj4gK+eEtuWQjlJDVeet ieW+heavj+S4qkNQVeiHs+WwkeS8keecoOS4gOasoe+8mueUseS6juivu+WPlueoi+W6j+aXoOaz leS8keecoO+8jOi/meagt+aIkeS7rOWwseefpemBk+WcqOWIoOmZpOi/h+eoiw0KPiAr5Lit6YGN 5Y6G5YiX6KGo55qE5omA5pyJ6K+75Y+W56iL5bqP6YO95bey57uP5a6M5oiQ77yM5bm25LiU6Kem 5Y+R5Zue6LCD44CC55yf5q2j55qE6K+7LeWkjeWIti3mm7TmlrDku6PnoIHmr5Tov5kNCj4gK+ab tOS8mOWMluS6huS4gOeCue+8jOS9huWfuuacrOWOn+eQhuebuOWQjOOAgg0KPiArDQo+ICs6Og0K PiArDQo+ICsgICAgLS0tIGNhY2hlLmMucGVyb2JqZWN0bG9jayAgIDIwMDMtMTItMTEgMTc6MTU6 MDMuMDAwMDAwMDAwICsxMTAwDQo+ICsgICAgKysrIGNhY2hlLmMucmN1cGRhdGUgICAgMjAwMy0x Mi0xMSAxNzo1NToxNC4wMDAwMDAwMDAgKzExMDANCj4gKyAgICBAQCAtMSwxNSArMSwxOCBAQA0K PiArICAgICAjaW5jbHVkZSA8bGludXgvbGlzdC5oPg0KPiArICAgICAjaW5jbHVkZSA8bGludXgv c2xhYi5oPg0KPiArICAgICAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+DQo+ICsgICAgKyNpbmNs dWRlIDxsaW51eC9yY3VwZGF0ZS5oPg0KPiArICAgICAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4N Cj4gKyAgICAgI2luY2x1ZGUgPGFzbS9lcnJuby5oPg0KPiArDQo+ICsgICAgIHN0cnVjdCBvYmpl Y3QNCj4gKyAgICAgew0KPiArICAgIC0gICAgICAgIC8qIFRoZXNlIHR3byBwcm90ZWN0ZWQgYnkg Y2FjaGVfbG9jay4gKi8NCj4gKyAgICArICAgICAgICAvKiBUaGlzIGlzIHByb3RlY3RlZCBieSBS Q1UgKi8NCj4gKyAgICAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7DQo+ICsgICAgICAg ICAgICAgaW50IHBvcHVsYXJpdHk7DQo+ICsNCj4gKyAgICArICAgICAgICBzdHJ1Y3QgcmN1X2hl YWQgcmN1Ow0KPiArICAgICsNCj4gKyAgICAgICAgICAgICBhdG9taWNfdCByZWZjbnQ7DQo+ICsN Cj4gKyAgICAgICAgICAgICAvKiBEb2Vzbid0IGNoYW5nZSBvbmNlIGNyZWF0ZWQuICovDQo+ICsg ICAgQEAgLTQwLDcgKzQzLDcgQEANCj4gKyAgICAgew0KPiArICAgICAgICAgICAgIHN0cnVjdCBv YmplY3QgKmk7DQo+ICsNCj4gKyAgICAtICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGksICZj YWNoZSwgbGlzdCkgew0KPiArICAgICsgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KGks ICZjYWNoZSwgbGlzdCkgew0KPiArICAgICAgICAgICAgICAgICAgICAgaWYgKGktPmlkID09IGlk KSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGktPnBvcHVsYXJpdHkrKzsNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7DQo+ICsgICAgQEAgLTQ5LDE5 ICs1MiwyNSBAQA0KPiArICAgICAgICAgICAgIHJldHVybiBOVUxMOw0KPiArICAgICB9DQo+ICsN Cj4gKyAgICArLyogRmluYWwgZGlzY2FyZCBkb25lIG9uY2Ugd2Uga25vdyBubyByZWFkZXJzIGFy ZSBsb29raW5nLiAqLw0KPiArICAgICtzdGF0aWMgdm9pZCBjYWNoZV9kZWxldGVfcmN1KHZvaWQg KmFyZykNCj4gKyAgICArew0KPiArICAgICsgICAgICAgIG9iamVjdF9wdXQoYXJnKTsNCj4gKyAg ICArfQ0KPiArICAgICsNCj4gKyAgICAgLyogTXVzdCBiZSBob2xkaW5nIGNhY2hlX2xvY2sgKi8N Cj4gKyAgICAgc3RhdGljIHZvaWQgX19jYWNoZV9kZWxldGUoc3RydWN0IG9iamVjdCAqb2JqKQ0K PiArICAgICB7DQo+ICsgICAgICAgICAgICAgQlVHX09OKCFvYmopOw0KPiArICAgIC0gICAgICAg IGxpc3RfZGVsKCZvYmotPmxpc3QpOw0KPiArICAgIC0gICAgICAgIG9iamVjdF9wdXQob2JqKTsN Cj4gKyAgICArICAgICAgICBsaXN0X2RlbF9yY3UoJm9iai0+bGlzdCk7DQo+ICsgICAgICAgICAg ICAgY2FjaGVfbnVtLS07DQo+ICsgICAgKyAgICAgICAgY2FsbF9yY3UoJm9iai0+cmN1LCBjYWNo ZV9kZWxldGVfcmN1KTsNCj4gKyAgICAgfQ0KPiArDQo+ICsgICAgIC8qIE11c3QgYmUgaG9sZGlu ZyBjYWNoZV9sb2NrICovDQo+ICsgICAgIHN0YXRpYyB2b2lkIF9fY2FjaGVfYWRkKHN0cnVjdCBv YmplY3QgKm9iaikNCj4gKyAgICAgew0KPiArICAgIC0gICAgICAgIGxpc3RfYWRkKCZvYmotPmxp c3QsICZjYWNoZSk7DQo+ICsgICAgKyAgICAgICAgbGlzdF9hZGRfcmN1KCZvYmotPmxpc3QsICZj YWNoZSk7DQo+ICsgICAgICAgICAgICAgaWYgKCsrY2FjaGVfbnVtID4gTUFYX0NBQ0hFX1NJWkUp IHsNCj4gKyAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBvYmplY3QgKmksICpvdXRjYXN0ID0g TlVMTDsNCj4gKyAgICAgICAgICAgICAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoaSwgJmNh Y2hlLCBsaXN0KSB7DQo+ICsgICAgQEAgLTEwNCwxMiArMTE0LDExIEBADQo+ICsgICAgIHN0cnVj dCBvYmplY3QgKmNhY2hlX2ZpbmQoaW50IGlkKQ0KPiArICAgICB7DQo+ICsgICAgICAgICAgICAg c3RydWN0IG9iamVjdCAqb2JqOw0KPiArICAgIC0gICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7 DQo+ICsNCj4gKyAgICAtICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmY2FjaGVfbG9jaywgZmxh Z3MpOw0KPiArICAgICsgICAgICAgIHJjdV9yZWFkX2xvY2soKTsNCj4gKyAgICAgICAgICAgICBv YmogPSBfX2NhY2hlX2ZpbmQoaWQpOw0KPiArICAgICAgICAgICAgIGlmIChvYmopDQo+ICsgICAg ICAgICAgICAgICAgICAgICBvYmplY3RfZ2V0KG9iaik7DQo+ICsgICAgLSAgICAgICAgc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmY2FjaGVfbG9jaywgZmxhZ3MpOw0KPiArICAgICsgICAgICAgIHJj dV9yZWFkX3VubG9jaygpOw0KPiArICAgICAgICAgICAgIHJldHVybiBvYmo7DQo+ICsgICAgIH0N Cj4gKw0KPiAr6K+35rOo5oSP77yM6K+75Y+W56iL5bqP5bCG5pu05pS5X19jYWNoZV9maW5kKCnk uK3nmoTmtLvot4PmiJDlkZjvvIznjrDlnKjlroPkuI3mjIHmnInplIHjgILkuIDnp43op6PlhrPm lrnmoYgNCj4gK+aYr+iuqeWFtuaIkOS4uiBgYGF0b21pY190YGAg77yM5L2G5a+55LqO6L+Z56eN 55So5rOV77yM5oiR5Lus5bm25LiN55yf5q2j5YWz5b+D56ue5LqJ77ya6L+R5Ly855qE57uT5p6c 5bCxDQo+ICvotrPlpJ/kuobvvIzmiYDku6XmiJHmsqHmnInmm7TmlLnlroPjgIINCj4gKw0KPiAr 57uT5p6c5pivY2FjaGVfZmluZO+8iOS4jemcgOimgeS4juS7u+S9leWFtuS7luWHveaVsOWQjOat pe+8jOWboOatpOWcqFNNUOS4iueahOmAn+W6puWHoOS5juS4juWcqFVQ5LiK55qE6YCfDQo+ICvl uqbkuIDmoLflv6vjgIINCj4gKw0KPiAr6L+Y5pyJ5LiA5Liq5Y+v5Lul6L+b5LiA5q2l5LyY5YyW 55qE54K577ya6L+Y6K6w5b6X5oiR5Lus5Y6f5p2l55qE57yT5a2Y5Luj56CB5ZCX77yM5rKh5pyJ 5byV55So6K6h5pWw77yM6LCD55So6ICFDQo+ICvlnKjkvb/nlKjlr7nosaHml7bnm7TmjqXmjIHm nInplIHvvJ/ov5nku43nhLbmmK/lj6/og73nmoTvvJrlpoLmnpzmgqjmjIHmnInplIHvvIzmsqHm nInkurrlj6/ku6XliKDpmaTlr7nosaHvvIzov5nmoLcNCj4gK+aCqOWwseS4jemcgOimgeiOt+WP luW5tuaUvue9ruW8leeUqOiuoeaVsOOAgg0KPiArDQo+ICvnjrDlnKjvvIznlLHkuo5SQ1XkuK3n moTigJzor7vlj5bplIHigJ3lj6rmmK/npoHnlKjkuobmiqLljaDvvIzmiYDku6XlnKjosIPnlKhj YWNoZV9maW5kKCnlkoxvYmplY3RfcHV0KCkNCj4gK+S5i+mXtOWni+e7iOemgeeUqOS6huaKouWN oOeahOiwg+eUqOiAheS4jemcgOimgeWunumZheiOt+WPluWSjOaUvue9ruW8leeUqOiuoeaVsO+8 muaIkeS7rOWPr+S7pemAmui/h+S9v+WFtuaIkOS4ug0KPiAr6Z2e6Z2Z5oCB5p2l5pq06ZyyX19j YWNoZV9maW5kKCnvvIzov5nmoLfnmoTosIPnlKjogIXlj6/ku6Xnm7TmjqXosIPnlKjjgIINCj4g Kw0KPiAr6L+Z5qC355qE5aW95aSE5piv5byV55So6K6h5pWw5LiN5Lya6KKr5YaZ5YWl77ya5a+5 6LGh5LiN5Lya5Lul5Lu75L2V5pa55byP5pu05pS577yM6L+Z5ZyoU01Q5py65Zmo5LiK55Sx5LqO 57yT5a2YDQo+ICvogIzlv6vlvpflpJrjgIINCj4gKw0KPiAr6YCQQ1BV5pWw5o2uDQo+ICstLS0t LS0tLS0NCj4gKw0KPiAr5Y+m5LiA56eN6KKr5bm/5rOb5L2/55So55qE6YG/5YWN6ZSB55qE5oqA 5pyv5piv5Li65q+P5LiqQ1BV5aSN5Yi25L+h5oGv44CC5L6L5aaC77yM5aaC5p6c5oKo5oOz5L+d 5oyB5LiA5Liq5bi46KeBDQo+ICvmnaHku7bnmoTorqHmlbDvvIzlj6/ku6Xkvb/nlKjoh6rml4vp lIHlkozljZXkuKrorqHmlbDlmajjgILlj4jlpb3lj4jnroDljZXjgIINCj4gKw0KPiAr5aaC5p6c 6YCf5bqm5aSq5oWi77yI6YCa5bi45LiN5Lya77yM5L2G5piv5aaC5p6c5L2g5pyJ5LiA5Y+w6Z2e 5bi45aSn55qE5py65Zmo5Y+v5Lul5rWL6K+V5bCx5Lya5Y+R546w6L+Z56eN5oOF5Ya177yJ77yM DQo+ICvkvaDlj6/ku6XkuLrmr4/kuKpDUFXkvb/nlKjkuIDkuKrorqHmlbDlmajvvIzpgqPkuYjl roPku6zpg73kuI3pnIDopoHni6zljaDplIHjgILor7flj4Lop4FERUZJTkVfUEVSX0NQVSgp77yM DQo+ICtnZXRfY3B1X3Zhcigp5ZKMcHV0X2NwdV92YXIoKe+8iCBgYGluY2x1ZGUvbGludXgvcGVy Y3B1LmhgYCDvvInjgIINCj4gKw0KPiAr5a+55LqO566A5Y2V55qE6YCQQ1BV6K6h5pWw5Zmo77yM IGBgbG9jYWxfdGBgIOexu+Wei+OAgWNwdV9sb2NhbF9pbmMoKeWSjOebuOWFs+WHveaVsOeJueWI q+acieeUqO+8jA0KPiAr5a6D5Lus5Zyo5p+Q5Lqb5L2T57O757uT5p6E77yIIGBg5YyF5ousL2Fz bS9sb2NhbC5oYGAg77yJ5LiK5q+U566A5Y2V5Luj56CB5pu05pyJ5pWI44CCDQo+ICsNCj4gK+iv t+azqOaEj++8jOWmguaenOS4jeW8leWFpeabtOWkmumUge+8jOWwseayoeacieeugOWNleOAgeWP r+mdoOeahOaWueazleadpeiOt+WPluatpOexu+iuoeaVsOWZqOeahOeyvuehruWAvOOAgg0KPiAr 5LiN6L+H5a+55LqO5p+Q5Lqb55So6YCU5p2l6K+077yM6L+Z5bm25LiN5piv6Zeu6aKY44CCDQo+ ICsNCj4gK+S4u+imgeeUseS4reaWreWkhOeQhueoi+W6j+S9v+eUqOeahOaVsOaNrg0KPiArLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICvlpoLmnpzmgLvmmK/ku47lkIzkuIDk uKrkuK3mlq3lpITnkIbnqIvluo/kuK3orr/pl67mlbDmja7vvIzliJnmoLnmnKzkuI3pnIDopoHp lIHvvJrlhoXmoLjlt7Lnu4/kv53or4HkuK3mlq3lpITnkIYNCj4gK+eoi+W6j+S4jeS8muWcqOWk muS4qkNQVeS4iuWQjOaXtui/kOihjOOAgg0KPiArDQo+ICtNYW5mcmVkIFNwcmF1bOaMh+WHuuaC qOS7jeeEtuWPr+S7pei/meagt+WBmu+8jOWNs+S9v+aVsOaNruWBtuWwlOWcqOeUqOaIt+S4iuS4 i+aWh+aIlui9r+S4reaWrS/lrZDku7vliqHkuK0NCj4gK+iuv+mXruOAguS4reaWreWkhOeQhueo i+W6j+S4jeS9v+eUqOmUge+8jOaJgOacieWFtuS7luiuv+mXrumDveaYr+i/meagt+i/m+ihjOea hDo6DQo+ICsNCj4gKyAgICAgICAgc3Bpbl9sb2NrKCZsb2NrKTsNCj4gKyAgICAgICAgZGlzYWJs ZV9pcnEoaXJxKTsNCj4gKyAgICAgICAgLi4uDQo+ICsgICAgICAgIGVuYWJsZV9pcnEoaXJxKTsN Cj4gKyAgICAgICAgc3Bpbl91bmxvY2soJmxvY2spOw0KPiArDQo+ICtkaXNhYmxlX2lycSgp5Lya 6Zi75q2i5Lit5pat5aSE55CG56iL5bqP6L+Q6KGM77yI5aaC5p6c5a6D5b2T5YmN5q2j5Zyo5YW2 5LuWQ1BV5LiK6L+Q6KGM77yM5YiZ562J5b6F5a6DDQo+ICvlrozmiJDvvInjgILoh6rml4vplIHk vJrpmLvmraLku7vkvZXlhbbku5borr/pl67lkIzml7blj5HnlJ/jgILlvZPnhLbvvIzov5nmr5Tl jZXkuKpzcGluX2xvY2tfaXJxKCnosIPnlKgNCj4gK+imgeaFou+8jOaJgOS7peWPquacieWcqOi/ meenjeiuv+mXruW+iOWwkeWPkeeUn+aXtuaJjeacieaEj+S5ieOAgg0KPiArDQo+ICvku47kuK3m lq3kuK3osIPnlKjlk6rkupvlh73mlbDmmK/lronlhajnmoTvvJ8NCj4gKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KPiArDQo+ICsNCj4gK+WGheaguOS8keecoOS4reeahOiuuOWkmuWH veaVsO+8iOWNs2NhbGwgc2NoZWR1bGUoKe+8iemDveaYr+ebtOaOpeaIlumXtOaOpeeahO+8muWc qOaMgeacieiHquaXi+mUgeaIluemgeeUqA0KPiAr5oqi5Y2g55qE5oOF5Ya15LiL77yM5rC46L+c 5LiN6IO96LCD55So5a6D5Lus44CC6L+Z5Lmf5oSP5ZGz552A5oKo6ZyA6KaB5aSE5LqO55So5oi3 5LiK5LiL5paH5Lit77ya5LuO5Lit5pat6LCD55SoDQo+ICvlroPku6zmmK/kuI3lhYHorrjnmoTj gIINCj4gKw0KPiAr5LiA5Lqb5LyR55yg55qE5Ye95pWwDQo+ICstLS0tLS0tLS0tLS0tLQ0KPiAr DQo+ICvkuIvpnaLliJflh7rkuobmnIDluLjop4HnmoTkuIDkupvvvIzkvYbmmK/mgqjpgJrluLjl v4XpobvpmIXor7vku6PnoIHmiY3og73noa7lrprlhbbku5bosIPnlKjmmK/lkKblronlhajjgILl poLmnpwNCj4gK+WFtuS7luiwg+eUqOWug+eahOeoi+W6j+mDveWPr+S7peS8keecoO+8jOS9oOWP r+iDveS5n+WPr+S7peS8keecoOOAgueJueWIq+aYr++8jOazqOWGjOWSjOazqOmUgOWHveaVsOmA muW4uOacn+acmw0KPiAr5LuO55So5oi35LiK5LiL5paH6LCD55So77yM5bm25LiU5Y+v5Lul5LyR 55yg44CCDQo+ICsNCj4gKy0gIOiuv+mXrueUqOaIt+epuumXtO+8mg0KPiArDQo+ICsgICAtICBj b3B5X2Zyb21fdXNlcigpDQo+ICsNCj4gKyAgIC0gIGNvcHlfdG9fdXNlcigpDQo+ICsNCj4gKyAg IC0gIGdldF91c2VyKCkNCj4gKw0KPiArICAgLSAgcHV0X3VzZXIoKQ0KPiArDQo+ICstICA6Yzpm dW5jOmBrbWFsbG9jKEdQX0tFUk5FTCkgPGttYWxsb2M+YA0KPiArDQo+ICstICBtdXRleF9sb2Nr X2ludGVycnVwdGlibGUoKSDlkowgbXV0ZXhfbG9jaygpDQo+ICsNCj4gKyAgIG11dGV4X3RyeWxv Y2soKeS4jeS8keecoO+8m+S9huaYr++8jOS4jeiDveWcqOS4reaWreS4iuS4i+aWh+S4reS9v+eU qOWug++8jOWboOS4uuWug+eahOWunueOsOWvueatpOS4jQ0KPiArICAg5a6J5YWo44CCbXV0ZXhf dW5sb2NrKCnkuZ/kuI3kvJrkvJHnnKDvvJvlroPkuZ/kuI3og73lnKjkuK3mlq3kuIrkuIvmlofk uK3kvb/nlKjvvIzlm6DkuLrkupLmlqXplIHlv4XpobsNCj4gKyAgIOeUseiOt+WPluWug+eahOWQ jOS4gOS4quS7u+WKoemHiuaUvuOAgg0KPiArDQo+ICvkuIDkupvkuI3kvJHnnKDnmoTlh73mlbAN Cj4gKy0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiAr5pyJ5Lqb5Ye95pWw5Y+v5Lul5LuO5Lu75L2V 5LiK5LiL5paH6LCD55So77yM5oiW6ICF5oyB5pyJ5Yeg5LmO5Lu75L2V6ZSB44CCDQo+ICsNCj4g Ky0gIHByaW50aygpDQo+ICsNCj4gKy0gIGtmcmVlKCkNCj4gKw0KPiArLSAgYWRkX3RpbWVyKCkg 5ZKMIGRlbF90aW1lcigpDQo+ICsNCj4gK+S6kuaWpemUgUFQSeWPguiAgw0KPiArPT09PT09PT09 PT09PT09PT09PQ0KPiArDQo+ICsuLiBrZXJuZWwtZG9jOjogaW5jbHVkZS9saW51eC9tdXRleC5o DQo+ICsgICA6aW50ZXJuYWw6DQo+ICsNCj4gKy4uIGtlcm5lbC1kb2M6OiBrZXJuZWwvbG9ja2lu Zy9tdXRleC5jDQo+ICsgICA6ZXhwb3J0Og0KPiArDQo+ICvlv6vpgJ/nlKjmiLfnqbrpl7TkupLm lqXplIHvvIhGdXRleO+8iUFQSeWPguiAgw0KPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KPiArDQo+ICsq6K+R5rOo77yaRnV0ZXjvvIxGYXN0IFVzZXJzcGFjZSBNdXRleCoN Cj4gKw0KPiArLi4ga2VybmVsLWRvYzo6IGtlcm5lbC9mdXRleC5jDQo+ICsgICA6aW50ZXJuYWw6 DQo+ICsNCj4gK+i/m+S4gOatpemYheivu+i1hOaWmQ0KPiArPT09PT09PT09PT09PT0NCj4gKw0K PiArLSAgRG9jdW1lbnRhdGlvbi9sb2NraW5nL3NwaW5sb2Nrcy5yc3Qg77yaTGludXMgVG9ydmFs ZHPnmoToh6rml4vplIHmlZnnqIvjgIINCj4gKw0KPiArLSAg44CK546w5Luj5L2T57O757uT5p6E 5LiK55qEVU5JWOezu+e7n+KAlOKAlOWGheaguOeoi+W6j+WRmOeahFNNUOWSjENhY2hpbmfmioDm nK/jgIsNCj4gKw0KPiArICAgKlVuaXggU3lzdGVtcyBmb3IgTW9kZXJuIEFyY2hpdGVjdHVyZXM6 IFN5bW1ldHJpYyBNdWx0aXByb2Nlc3NpbmcgYW5kDQo+ICsgICBDYWNoaW5nIGZvciBLZXJuZWwg UHJvZ3JhbW1lcnMqDQo+ICsNCj4gKyAgIEN1cnQgU2NoaW1tZWzlr7nlhoXmoLjnuqfplIHnmoTk uIrkvbPku4vnu43vvIjkuI3mmK/kuLpMaW51eOe8luWGmeeahO+8jOS9huaYr+WHoOS5juaJgOac ieeahOS4nOilvw0KPiArICAg6YO96YCC55So77yJ44CC6L+Z5pys5Lmm5piv5piC6LS155qE77yM 5L2G6Iqx54K56ZKx5Y675pCe5oeCU01Q6ZSB5a6a57ud5a+55LiN5LqP44CCDQo+ICsNCj4gKyAg IOOAkOiLseaWh+WOn+eJiCBJU0JOIDAyMDE2MzMzODjjgJENCj4gKyAgIOOAkOS4reivkeacrCBJ U0JOIDctMTU1LTEwODc2LTUg5Lq65rCR6YKu55S15Ye654mI56S+44CRDQo+ICsNCj4gK+iHtOiw og0KPiArPT09PQ0KPiArDQo+ICvmhJ/osKJUZWxzYSBHd3lubmXluK7liqlEb2NCb29raW5n44CB 5pW055CG5ZKM5re75Yqg5qC85byP44CCDQo+ICsNCj4gK+aEn+iwok1hcnRpbiBQb29s77yMUGhp bGlwcCBSdW1wZu+8jFN0ZXBoZW4gUm90aHdlbGzvvIxQYXVsIE1hY2tlcnJhc++8jA0KPiArUnVl ZGkgQXNjaHdhbmRlbu+8jEFsYW4gQ29477yMTWFuZnJlZCBTcHJhdWzvvIxUaW0gV2F1Z2jvvIxQ ZXRlIFphaXRjZXbvvIwNCj4gK0phbWVzTW9ycmlz77yMUm9iZXJ0IExvdmXvvIxQYXVsIE1jS2Vu bmV577yMSm9obiBBc2hieeeahOagoeWvueOAgeabtOato+OAgeivhOiuuuOAgg0KPiArDQo+ICvm hJ/osKLlj43lr7nlm6LkvZPmsqHmnInlvbHlk43mraTmlofmoaPjgIINCj4gKw0KPiAr5pyv6K+t 6KGoDQo+ICs9PT09PT0NCj4gKw0KPiAr5oqi5Y2gIHByZWVtcHRpb24NCj4gKyAg5ZyoMi4154mI 5pys5LmL5YmN77yM5oiW6ICF5b2TIGBgQ09ORklHX1BSRUVNUFRgYCDmnKrorr7nva7ml7bvvIzl hoXmoLjph4znlKjmiLfkuIrkuIvmlofkuK3nmoTov5vnqIsNCj4gKyAg5LiN5Lya55u45LqS5oqi 5Y2g77yI5Y2z5Zyo5pS+5byDQ1BV5LmL5YmN77yM6Zmk5LqG5Lit5pat5LmL5aSW77yM5oKo5LiA 55u05oul5pyJ6K+lQ1BV77yJ44CCMi41LjTniYjmnKzkuK0NCj4gKyAg5aKe5Yqg55qEIGBgQ09O RklHX1BSRUVNUFRgYCDmlLnlj5jkuobmraTmnLrliLbvvJrlnKjnlKjmiLfkuIrkuIvmlofkuK3v vIzmm7Tpq5jkvJjlhYjnuqfnmoTku7vliqHlj68NCj4gKyAg5Lul4oCc5YiH5YWl4oCd77ya6Ieq 5peL6ZSB6KKr5pu05pS55Li656aB55So5oqi5Y2g77yM5Y2z5L2/5piv5ZyoVVDkuIrjgIINCj4g Kw0KPiAr5LiL5Y2K6YOoIGJoDQo+ICsgICpbQm90dG9tIEhhbGZdKiDnlLHkuo7ljoblj7Lljp/l m6DvvIzluKbmnInigJxfYmjigJ3nmoTlh73mlbDnjrDlnKjpgJrluLjmjIfku7vkvZXova/ku7bk uK3mlq3vvIzkvovlpoINCj4gKyAgc3Bpbl9sb2NrX2JoKCnkvJrpmLvmraLlvZPliY1DUFXkuIrn moTku7vkvZXova/ku7bkuK3mlq3jgILkuIvljYrpg6jlt7LooqvlvIPnlKjvvIzmnIDnu4jlsIbo oqvlrZDku7vliqENCj4gKyAg5Y+W5Luj44CC5Lu75L2V5pe25YCZ5Y+q5pyJ5LiA5Liq5LiL5Y2K 6YOo5Lya5Zyo6L+Q6KGM44CCDQo+ICsNCj4gK+ehrO+8iOS7tu+8ieS4reaWrSBIYXJkd2FyZSBJ bnRlcnJ1cHQgLyBIYXJkd2FyZSBJUlENCj4gKyAg56Gs5Lu25Lit5pat6K+35rGC44CCaW5faXJx KCnlnKjnoazku7bkuK3mlq3lpITnkIbnqIvluo/kuK3ov5Tlm550cnVl44CCDQo+ICsNCj4gK+S4 reaWreS4iuS4i+aWhyBJbnRlcnJ1cHQgQ29udGV4dA0KPiArICDpnZ7nlKjmiLfkuIrkuIvmlofv vJrlpITnkIbnoazku7bkuK3mlq3miJbova/ku7bkuK3mlq3jgILnlLHov5Tlm550cnVl55qEaW5f aW50ZXJydXB0KCnlro/mjIfnpLrjgIINCj4gKw0KPiAr5a+556ew5aSa5aSE55CG5ZmoIFNNUA0K PiArICAqW1N5bW1ldHJpYyBNdWx0aS1Qcm9jZXNzb3JdKiDkuLrlpJpDUFXmnLrlmajnvJbor5Hn moTlhoXmoLjvvIggYGBDT05GSUdfU01QPXlgYCDvvInjgIINCj4gKw0KPiAr6L2v77yI5Lu277yJ 5Lit5patIFNvZnR3YXJlIEludGVycnVwdCAvIHNvZnRpcnENCj4gKyAg6L2v5Lu25Lit5pat5aSE 55CG56iL5bqP44CCaW5faXJxKCnov5Tlm55mYWxzZe+8m2luX3NvZnRpcnEoKei/lOWbnnRydWXj gIINCj4gKyAg5a2Q5Lu75Yqh5ZKM6L2v5Lit5pat6YO95bGe5LqO4oCc6L2v5Lu25Lit5pat4oCd 55qE6IyD55W044CCDQo+ICsNCj4gKyAg5Lil5qC85p2l6K+077yM6L2v5Lit5pat5piv5pyA5aSa MzLkuKrmnprkuL7ova/ku7bkuK3mlq3kuYvkuIDvvIzlj6/ku6XlkIzml7blnKjlpJrkuKpDUFXk uIrov5DooYzjgIINCj4gKyAg5pyJ5pe25Lmf55So5p2l5oyH5a2Q5Lu75Yqh77yI5Y2z5omA5pyJ 6L2v5Lu25Lit5pat77yJ44CCDQo+ICsNCj4gK+WtkOS7u+WKoSB0YXNrbGV0DQo+ICsgIOS4gOen jeWPr+WKqOaAgeazqOWGjOeahOi9r+S7tuS4reaWre+8jOS/neivgeS4gOasoeWPquiDveWcqOS4 gOS4qkNQVeS4iui/kOihjOOAgg0KPiArDQo+ICvorqHml7blmaggdGltZXINCj4gKyAg5LiA56eN 5Y+v5Yqo5oCB5rOo5YaM55qE6L2v5Lu25Lit5pat77yM5Zyo57uZ5a6a5pe26Ze077yI5oiW5o6l 6L+R57uZ5a6a5pe26Ze077yJ6L+Q6KGM44CCDQo+ICsgIOi/kOihjOaXtu+8jOWug+WwseWDj+S4 gOS4quWtkOS7u+WKoe+8iOWunumZheS4iu+8jOWug+S7rOaYr+S7jiBgYFRJTUVSX1NPRlRJUlFg YCDosIPnlKjnmoTvvInjgIINCj4gKw0KPiAr5Y2V5aSE55CG5ZmoIFVQDQo+ICsgICpbVW5pLVBy b2Nlc3Nvcl0qIOmdnlNNUO+8iCBgYENPTkZJR19TTVA9bmBgIO+8ieOAgg0KPiArDQo+ICvnlKjm iLfkuIrkuIvmlocgVXNlciBDb250ZXh0DQo+ICsgIOS7o+ihqOeJueWumui/m+eoi++8iOWNs+ez u+e7n+iwg+eUqOaIlumZt+mYsVt0cmFwXe+8ieaIluWGheaguOe6v+eoi+aJp+ihjOeahOWGheag uOOAguaCqOWPr+S7peeUqA0KPiArICBgYGN1cnJlbnRgYCDlro/mnaXliKTmlq3lk6rkuKrov5vn qIvvvInjgILkuI3opoHkuI7nlKjmiLfnqbrpl7Tmt7fmt4bjgILlj6/ooqvova/ku7bmiJbnoazk u7bkuK3mlq3kuK3mlq3jgIINCj4gKw0KPiAr55So5oi356m66Ze0IFVzZXJzcGFjZQ0KPiArICDl nKjlhoXmoLjlpJbmiafooYzoh6rlt7Hku6PnoIHnmoTov5vnqIvjgIINCj4gLS0NCj4gMi4yMC4x DQo+DQo=