<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>49067</bug_id>
          
          <creation_ts>2010-11-05 05:42:35 -0700</creation_ts>
          <short_desc>Convert SVGPoint/SVGPointList to the new SVGPropertyTearOff concept</short_desc>
          <delta_ts>2010-11-08 13:10:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>47905</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>krit</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>305237</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-05 05:42:35 -0700</bug_when>
    <thetext>Convert SVGPoint/SVGPointList to the new SVGPropertyTearOff concept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305238</commentid>
    <comment_count>1</comment_count>
      <attachid>73057</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-05 05:43:51 -0700</bug_when>
    <thetext>Created attachment 73057
Patch

Uploading a preliminary patch, yet missing the LayoutTests/ changes, and the ChangeLogs.
I only want to get some early EWS results, as I&apos;m leaving soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305240</commentid>
    <comment_count>2</comment_count>
      <attachid>73058</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-05 06:06:17 -0700</bug_when>
    <thetext>Created attachment 73058
Patch v2

Updated to trunk, now the patch should apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305259</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-05 07:10:43 -0700</bug_when>
    <thetext>Attachment 73058 did not build on chromium:
Build output: http://queues.webkit.org/results/5352001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305284</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-11-05 08:16:30 -0700</bug_when>
    <thetext>I thought you have a chromium build on your machine, why does every first patch of yours fail on chromium? ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305572</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-05 15:13:48 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I thought you have a chromium build on your machine, why does every first patch of yours fail on chromium? ;-)

I don&apos;t test every patch on chromium unless I&apos;m adding new functionality, like StrictTypeChecking etc. that was not implemented on Chromium and had to be tested. If this patch compiles, it will work on V8, as the code is 1:1 equal to JSC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305695</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-05 19:01:15 -0700</bug_when>
    <thetext>Attachment 73058 did not build on chromium:
Build output: http://queues.webkit.org/results/5295018</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306053</commentid>
    <comment_count>7</comment_count>
      <attachid>73222</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-08 01:15:46 -0800</bug_when>
    <thetext>Created attachment 73222
Patch v3

Complete patch including ChangeLogs and LayoutTests changes. Only difference to &quot;Patch v2&quot; are CodeGeneratorV8.pm changes, to make it build on chromium/v8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306089</commentid>
    <comment_count>8</comment_count>
      <attachid>73222</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-11-08 05:17:51 -0800</bug_when>
    <thetext>Comment on attachment 73222
Patch v3

r=me. The solution with SVGAnimatedPoints is still a bit sad. We should discuss it on www-svg to change it in the Spec as well. Maybe we can move it into SVG1.1se? Anyway, it doesn&apos;t block this patch since it doesn&apos;t affect anything on the user side, with the exception that it runs faster. Please update the win proj file before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306092</commentid>
    <comment_count>9</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-08 05:44:24 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 73222 [details])
&gt; r=me. The solution with SVGAnimatedPoints is still a bit sad. We should discuss it on www-svg to change it in the Spec as well. Maybe we can move it into SVG1.1se? Anyway, it doesn&apos;t block this patch since it doesn&apos;t affect anything on the user side, with the exception that it runs faster. Please update the win proj file before landing.

Synced the vcproj to trunk before landing, now it should work as expected.
Thanks for the review!

Landed in r71512.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306095</commentid>
    <comment_count>10</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-08 06:00:40 -0800</bug_when>
    <thetext>Trying to fix windows build in r71514. A warning was produced.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306185</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-11-08 10:17:35 -0800</bug_when>
    <thetext>@@ -21385,7 +21372,6 @@
 			isa = PBXProject;
 			buildConfigurationList = 149C284308902B11008A9EFC /* Build configuration list for PBXProject &quot;WebCore&quot; */;
 			compatibilityVersion = &quot;Xcode 2.4&quot;;
-			developmentRegion = English;
 			hasScannedForEncodings = 1;
 			knownRegions = (

Please update to Xcode 3.2.4 so this change does not happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306312</commentid>
    <comment_count>12</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-08 13:10:54 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; @@ -21385,7 +21372,6 @@
&gt;              isa = PBXProject;
&gt;              buildConfigurationList = 149C284308902B11008A9EFC /* Build configuration list for PBXProject &quot;WebCore&quot; */;
&gt;              compatibilityVersion = &quot;Xcode 2.4&quot;;
&gt; -            developmentRegion = English;
&gt;              hasScannedForEncodings = 1;
&gt;              knownRegions = (
&gt; 
&gt; Please update to Xcode 3.2.4 so this change does not happen.

Aww, I&apos;m sorry, forgot to remove the offending line :(
AFAIK there&apos;s no XCode 3.2.4 for Leopard, which is still my main dev platform?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73057</attachid>
            <date>2010-11-05 05:43:51 -0700</date>
            <delta_ts>2010-11-05 06:06:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>SVGPointListRewrite.diff</filename>
            <type>text/plain</type>
            <size>70889</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawkocmV2aXNpb24gNzEzMzgp
CisrKyBXZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCSh3b3JraW5nIGNvcHkp
CkBAIC01MDMsNyArNTAzLDYgQEAgR0VOICs9IFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRp
bmdzL1Y4U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmlu
ZGluZ3MvVjhTVkdBbmltYXRlZE51bWJlci5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRp
bmdzL1Y4U1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAotICAgICQoaW50ZXJtZWRpYXRlcykvYmlu
ZGluZ3MvVjhTVkdBbmltYXRlZFBvaW50cy5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRp
bmdzL1Y4U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggXAogICAgICQoaW50ZXJtZWRp
YXRlcykvYmluZGluZ3MvVjhTVkdBbmltYXRlZFJlY3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVz
KS9iaW5kaW5ncy9WOFNWR0FuaW1hdGVkU3RyaW5nLmggXApJbmRleDogV2ViQ29yZS9BbmRyb2lk
Lm1rCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQW5kcm9pZC5tawkocmV2aXNpb24gNzEzMzgpCisr
KyBXZWJDb3JlL0FuZHJvaWQubWsJKHdvcmtpbmcgY29weSkKQEAgLTg2MCw3ICs4NjAsNiBAQCBM
T0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlzdmcvU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQuY3BwIFwKIAlzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwK
IAlzdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAgXAotCXN2Zy9TVkdBbmltYXRlZFBvaW50cy5j
cHAgXAogCXN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcCBcCiAJc3ZnL1NWR0NpcmNsZUVsZW1l
bnQuY3BwIFwKIAlzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlL0NN
YWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlz
aW9uIDcxMzM4KQorKysgV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
OTksNyArOTksNiBAQCBTRVQoV2ViQ29yZV9JRExfSU5DTFVERVMKIFNFVChXZWJDb3JlX0lETF9Q
VVJFX0ZJTEVTCiAgICAgc3ZnL0VsZW1lbnRUaW1lQ29udHJvbC5pZGwKICAgICBzdmcvU1ZHQW5p
bWF0ZWRQYXRoRGF0YS5pZGwKLSAgICBzdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaWRsCiAgICAgc3Zn
L1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaWRsCiAgICAgc3ZnL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5pZGwKICAgICBzdmcvU1ZHRml0VG9WaWV3Qm94LmlkbApA
QCAtMTc3Miw3ICsxNzcxLDYgQEAgSUYgKEVOQUJMRV9TVkcpCiAgICAgICAgIHN2Zy9TVkdBbmlt
YXRlTW90aW9uRWxlbWVudC5jcHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVt
ZW50LmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAKLSAgICAgICAgc3Zn
L1NWR0FuaW1hdGVkUG9pbnRzLmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5j
cHAKICAgICAgICAgc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCiAgICAgICAgIHN2Zy9TVkdDbGlw
UGF0aEVsZW1lbnQuY3BwCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA3MTMzOCkKKysr
IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMzI5LDcgKzMy
OSw2IEBAIERPTV9DTEFTU0VTID0gXAogICAgIFNWR0FuaW1hdGVkTnVtYmVyIFwKICAgICBTVkdB
bmltYXRlZE51bWJlckxpc3QgXAogICAgIFNWR0FuaW1hdGVkUGF0aERhdGEgXAotICAgIFNWR0Fu
aW1hdGVkUG9pbnRzIFwKICAgICBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gXAogICAg
IFNWR0FuaW1hdGVkUmVjdCBcCiAgICAgU1ZHQW5pbWF0ZWRTdHJpbmcgXApJbmRleDogV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShy
ZXZpc2lvbiA3MTMzOCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkK
QEAgLTMwNDMsNiArMzA0Myw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaCBcCiAJV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdQcm9wZXJ0eVRyYWl0cy5oIFwKIAlXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRp
Y0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBcCisJV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0
aWNQcm9wZXJ0eVRlYXJPZmYuaCBcCiAJV2ViQ29yZS9zdmcvUmFkaWFsR3JhZGllbnRBdHRyaWJ1
dGVzLmggXAogCVdlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuaCBcCkBAIC0zMDYyLDggKzMwNjMsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5oIFwKIAlXZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFBhdGhEYXRhLmNwcCBcCiAJV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5o
IFwKLQlXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5jcHAgXAotCVdlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUG9pbnRzLmggXAogCVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIFwKIAlXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuaCBcCiAJV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaCBcCkBAIC00MTcyLDcgKzQxNzEsNiBAQCB3ZWJjb3JlX2J1
aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTVkdBbmltYXRlZE51
bWJlckxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTVkdBbmltYXRlZFBhdGhEYXRh
LmggXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTVkdBbmltYXRlZFBvaW50cy5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpby5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU1ZHQW5pbWF0ZWRSZWN0LmNwcCBc
CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUub3JkZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLm9yZGVyCShyZXZpc2lvbiA3MTMzOCkKKysrIFdlYkNvcmUvV2ViQ29yZS5vcmRlcgkod29y
a2luZyBjb3B5KQpAQCAtMjY0OTksNyArMjY0OTksNiBAQCBfX1pON1dlYkNvcmVMMTZ0cmFuc2Zv
cm1MaXN0Rm9yRVBOU18xMFNWCiBfX1pON1dlYkNvcmVMMTlwb2x5bGluZUNvbnN0cnVjdG9yRVJL
TlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFYgogX19aTjdXZWJDb3JlMThTVkdQb2x5
bGluZUVsZW1lbnRDMUVSS05TXzEzUXVhbGlmaWVkTmFtZUVQTlNfOERvY3VtZW50RQogX19aTjdX
ZWJDb3JlMTRTVkdQb2x5RWxlbWVudEMyRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1l
bnRFCi1fX1pON1dlYkNvcmUxN1NWR0FuaW1hdGVkUG9pbnRzQzJFdgogX19aTjdXZWJDb3JlMTRT
VkdQb2x5RWxlbWVudDE5c3ZnQXR0cmlidXRlQ2hhbmdlZEVSS05TXzEzUXVhbGlmaWVkTmFtZUUK
IF9fWk43V2ViQ29yZTE0U1ZHUG9seUVsZW1lbnQyMHBhcnNlTWFwcGVkQXR0cmlidXRlRVBOU18x
NU1hcHBlZEF0dHJpYnV0ZUUKIF9fWk5LN1dlYkNvcmUxNFNWR1BvbHlFbGVtZW50NnBvaW50c0V2
CkBAIC0yNjY1NSw3ICsyNjY1NCw2IEBAIF9fWk43V2ViQ29yZTE4U1ZHUG9seWxpbmVFbGVtZW50
RDBFdgogX19aTjdXZWJDb3JlMTRTVkdQb2x5RWxlbWVudEQyRXYKIF9fWk43V2ViQ29yZTEyU1ZH
UG9pbnRMaXN0RDBFdgogX19aTjNXVEY2VmVjdG9ySU5TXzZSZWZQdHJJTjdXZWJDb3JlMTRTVkdQ
T0RMaXN0SXRlbUlOUzJfMTBGbG9hdFBvaW50RUVFRUVMbTBFRTZzaHJpbmtFbQotX19aTjdXZWJD
b3JlMTdTVkdBbmltYXRlZFBvaW50c0QyRXYKIF9fWlRobjhfTjdXZWJDb3JlMTdTVkdQb2x5Z29u
RWxlbWVudEQwRXYKIF9fWk43V2ViQ29yZTE3U1ZHUG9seWdvbkVsZW1lbnREMEV2CiBfX1pUaG44
X043V2ViQ29yZTE1U1ZHSW1hZ2VFbGVtZW50RDBFdgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBy
bwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA3MTMzOCkKKysr
IFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTIzNzAsNiArMjM3MCw3IEBA
IEhFQURFUlMgKz0gXAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oIFwK
ICAgICBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oIFwKICAgICBzdmcvcHJvcGVy
dGllcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmggXAorICAgIHN2Zy9wcm9wZXJ0aWVz
L1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oIFwKICAgICBzdmcvU1ZHQUVsZW1lbnQuaCBcCiAg
ICAgc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oIFwKICAgICBzdmcvU1ZHQW5nbGUuaCBcCkBAIC0y
MzgzLDcgKzIzODQsNiBAQCBIRUFERVJTICs9IFwKICAgICBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIu
aCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5oIFwKICAgICBzdmcvU1ZHQW5pbWF0
ZWRQYXRoRGF0YS5oIFwKLSAgICBzdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaCBcCiAgICAgc3ZnL1NW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZWRSZWN0
LmggXAogICAgIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5oIFwKQEAgLTMzOTgsNyArMzM5OCw2IEBA
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICBzdmcvU1ZHQW5nbGUu
Y3BwIFwKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKICAgICAgICAg
c3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuY3BwIFwKLSAgICAgICAgc3ZnL1NWR0FuaW1hdGVkUG9p
bnRzLmNwcCBcCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAgXAogICAgICAgICBz
dmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIFwKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oJKHJldmlzaW9uIDcxMzM4KQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNjE2NzIsMTAgKzYxNjcyLDYgQEAKIAkJCQk+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0FuaW1h
dGVkUG9pbnRzLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxzdmdcU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiDQogCQkJCT4N
CiAJCQk8L0ZpbGU+DQpAQCAtNjI3NTgsNiArNjI3NTQsMTAgQEAKIAkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxzdmdccHJvcGVydGllc1xTVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgiDQogCQkJ
CQk+DQogCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3Zn
XHByb3BlcnRpZXNcU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgiDQorCQkJCQk+DQorCQkJCTwv
RmlsZT4NCiAJCQk8L0ZpbHRlcj4NCiAJCTwvRmlsdGVyPg0KIAkJPEZpbHRlcg0KSW5kZXg6IFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3MTMzOCkK
KysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC03Myw2ICs3Myw3IEBACiAJCTA4MTA3NjQ0MTI4Mjg1NTYwMDdDNjNCQSAvKiBTVkdM
aXN0UHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA4MTA3NjQzMTI4Mjg1NTYwMDdDNjNCQSAvKiBTVkdMaXN0UHJvcGVydHkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwODEwOTNEQjEyNTVG
MEU3MDBFRDlEMjkgLyogU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MTA5M0Q5MTI1NUYwRTcw
MEVEOUQyOSAvKiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwICovOyB9OwogCQkw
ODEwOTNEQzEyNTVGMEU3MDBFRDlEMjkgLyogU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODEwOTNE
QTEyNTVGMEU3MDBFRDlEMjkgLyogU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmggKi87
IH07CisJCTA4MTNBNEVBMTI4NDEzMjYwMDk5MjUxMSAvKiBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJP
ZmYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MTNB
NEU5MTI4NDEzMjYwMDk5MjUxMSAvKiBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwODE2NjhEMzEyNTYw
M0JGMDA2RjI1REUgLyogU1ZHVGV4dENodW5rQnVpbGRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODE2NjhEMTEyNTYwM0JGMDA2RjI1REUgLyog
U1ZHVGV4dENodW5rQnVpbGRlci5jcHAgKi87IH07CiAJCTA4MTY2OEQ0MTI1NjAzQkYwMDZGMjVE
RSAvKiBTVkdUZXh0Q2h1bmtCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwODE2NjhEMjEyNTYwM0JGMDA2RjI1REUgLyogU1ZHVGV4dENodW5r
QnVpbGRlci5oICovOyB9OwogCQkwODE2NjhEOTEyNTYwM0Q1MDA2RjI1REUgLyogU1ZHVGV4dExh
eW91dEVuZ2luZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwODE2NjhENzEyNTYwM0Q1MDA2RjI1REUgLyogU1ZHVGV4dExheW91dEVuZ2luZS5jcHAg
Ki87IH07CkBAIC0yMTM5LDcgKzIxNDAsNiBAQAogCQk4NUFDQUJCMDBBOUNBRjgwMDA2NzFFOTAg
LyogRE9NRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1QUNBQkFFMEE5Q0FGODAwMDY3MUU5MCAvKiBET01Eb2N1bWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTg1QUNBQkIxMEE5Q0FGODAwMDY3MUU5
MCAvKiBET01Eb2N1bWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1QUNBQkFGMEE5Q0FGODAwMDY3MUU5MCAvKiBET01Eb2N1bWVudC5tbSAqLzsg
fTsKIAkJODVBQ0VGMEMwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUGF0aERhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNFRjA2
MEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFBhdGhEYXRhLmggKi87IH07Ci0JCTg1
QUNFRjBEMEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFBvaW50cy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBQ0VGMDcwQUNEQ0NDRjAw
MTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUG9pbnRzLmggKi87IH07CiAJCTg1QUNFRjBFMEFDREND
Q0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNFRjA4MEFDRENDQ0Yw
MDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLzsgfTsKIAkJ
ODVBQ0VGMEYwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpby5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
QUNFRjA5MEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW8ubW0gKi87IH07CiAJCTg1QUNFRjEwMEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUFDRUYwQTBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHUHJlc2VydmVBc3BlY3RSYXRp
by5oICovOyB9OwpAQCAtMzE2Miw3ICszMTYyLDYgQEAKIAkJQTgwRTdFOUYwQTFBODNFMzAwN0ZC
OEM1IC8qIEpTSFRNTEJ1dHRvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTk1MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxCdXR0
b25FbGVtZW50LmggKi87IH07CiAJCUE4MEU3RUEwMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxC
dXR0b25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4MEU3RTk2MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxCdXR0b25FbGVtZW50LmNw
cCAqLzsgfTsKIAkJQTgwRjNBNTAwQ0NEQTJBMjAwMkREOTkwIC8qIERPTVNWR0ZFVHVyYnVsZW5j
ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1MDJBQjNFMEFENDM4QzAwMDM3ODU0MCAvKiBET01TVkdGRVR1cmJ1bGVuY2VFbGVtZW50Lmgg
Ki87IH07Ci0JCUE4MEYzQTVBMENDREEyRUQwMDJERDk5MCAvKiBET01TVkdBbmltYXRlZFBvaW50
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBQ0VG
MDcwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUG9pbnRzLmggKi87IH07CiAJCUE4
MEYzQTY0MENDREEyRkMwMDJERDk5MCAvKiBET01TVkdMaW5lRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDOUEyRkQwQUQ3RTk0MjAwRkJG
RjFFIC8qIERPTVNWR0xpbmVFbGVtZW50LmggKi87IH07CiAJCUE4MEYzQTZCMENDREEzMEEwMDJE
RDk5MCAvKiBET01TVkdQYXRoU2VnTGluZXRvQWJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUNFMUEyRDBBREFDNDczMDAzQkJERUEgLyogRE9NU1ZH
UGF0aFNlZ0xpbmV0b0Ficy5oICovOyB9OwogCQlBODBGM0E3NTBDQ0RBMzE4MDAyREQ5OTAgLyog
RE9NU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1Q0UxQTI1MEFEQUM0NzMwMDNCQkRFQSAvKiBET01T
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5oICovOyB9OwpAQCAtMzI3MSw3ICszMjcwLDYg
QEAKIAkJQTgwRjNCOTEwQ0NEQ0UyNDAwMkREOTkwIC8qIERPTVNWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODUwMkFCMkMwQUQ0MzhDMDAwMzc4NTQwIC8qIERPTVNWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudC5oICovOyB9OwogCQlBODBGM0I5MjBDQ0RDRTI0MDAyREQ5OTAgLyogRE9NU1ZH
UGFpbnRJbnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThFNTQ0NDAwQ0E5RDFDMTAwOTdEMDlCIC8qIERPTVNWR1Bh
aW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJQTgwRjNCOTMwQ0NEQ0UyNDAwMkREOTkwIC8qIERPTVNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzSW50ZXJuYWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RTU0NDIwMENBOUQx
QzEwMDk3RDA5QiAvKiBET01TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Fic0ludGVybmFsLmgg
Ki87IH07Ci0JCUE4MEYzQjk0MENDRENFMjQwMDJERDk5MCAvKiBET01TVkdBbmltYXRlZFBvaW50
cy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODVBQ0VGMDcwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUG9pbnRz
LmggKi87IH07CiAJCUE4MEYzQjk1MENDRENFMjQwMDJERDk5MCAvKiBET01TVkdQYXRoU2VnTGlu
ZXRvQWJzLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUNFMUEyRDBBREFDNDczMDAzQkJERUEgLyogRE9NU1ZHUGF0aFNlZ0xp
bmV0b0Ficy5oICovOyB9OwogCQlBODBGM0I5NjBDQ0RDRTI0MDAyREQ5OTAgLyogRE9NU1ZHTnVt
YmVySW50ZXJuYWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4RTU0NDMzMENBOUQxQzEwMDk3RDA5QiAvKiBET01TVkdOdW1i
ZXJJbnRlcm5hbC5oICovOyB9OwogCQlBODBGM0I5NzBDQ0RDRTI0MDAyREQ5OTAgLyogRE9NU1ZH
QW5pbWF0ZWRBbmdsZUludGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEU1NDRCRjBDQTlEMUMyMDA5N0QwOUIgLyog
RE9NU1ZHQW5pbWF0ZWRBbmdsZUludGVybmFsLmggKi87IH07CkBAIC0zOTYzLDggKzM5NjEsNiBA
QAogCQlCMjIyNzk3QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc3RTQw
RDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCAqLzsgfTsKIAkJQjIy
Mjc5ODQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc3RUUwRDAwQkYxRjAw
NzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuY3BwICovOyB9OwogCQlCMjIyNzk4NTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc3RUYwRDAwQkYxRjAwNzFCNzgyIC8qIFNW
R0FuaW1hdGVkUGF0aERhdGEuaCAqLzsgfTsKLQkJQjIyMjc5ODcwRDAwQkYyMjAwNzFCNzgyIC8q
IFNWR0FuaW1hdGVkUG9pbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyMjI3N0YxMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBvaW50
cy5jcHAgKi87IH07Ci0JCUIyMjI3OTg4MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBv
aW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIy
Mjc3RjIwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUG9pbnRzLmggKi87IH07CiAJCUIy
MjI3OThGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzdGOTBEMDBCRjFGMDA3
MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwICovOyB9OwogCQlCMjIyNzk5MDBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3N0ZBMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmlt
YXRlRWxlbWVudC5oICovOyB9OwogCQlCMjIyNzk5MjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjIyMjc3RkMwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmNwcCAqLzsgfTsKQEAgLTU4MDcsNyArNTgwMyw2IEBACiAJCQkJQThGNDZBQUYwQ0Iy
MEE5RDAwM0E5NjcwIC8qIERPTVNWR0FuaW1hdGVkTnVtYmVyTGlzdC5oIGluIENvcHkgR2VuZXJh
dGVkIEhlYWRlcnMgKi8sCiAJCQkJQTgwRjNCNzAwQ0NEQ0UyNDAwMkREOTkwIC8qIERPTVNWR0Fu
aW1hdGVkTnVtYmVyTGlzdEludGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywK
IAkJCQlBOEY0NkE5MDBDQjIwQTlEMDAzQTk2NzAgLyogRE9NU1ZHQW5pbWF0ZWRQYXRoRGF0YS5o
IGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJQTgwRjNCOTQwQ0NEQ0UyNDAwMkRE
OTkwIC8qIERPTVNWR0FuaW1hdGVkUG9pbnRzLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAq
LywKIAkJCQlBOEY0NkIyRTBDQjIwQTlEMDAzQTk2NzAgLyogRE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQlBODBGM0I3
RTBDQ0RDRTI0MDAyREQ5OTAgLyogRE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvSW50
ZXJuYWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCUE4RjQ2QjFCMENCMjBB
OUQwMDNBOTY3MCAvKiBET01TVkdBbmltYXRlZFJlY3QuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFk
ZXJzICovLApAQCAtNjExMCw2ICs2MTA1LDcgQEAKIAkJMDgxMDc2NDMxMjgyODU1NjAwN0M2M0JB
IC8qIFNWR0xpc3RQcm9wZXJ0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdMaXN0UHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgxMDkzRDkx
MjU1RjBFNzAwRUQ5RDI5IC8qIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdUZXh0TGF5b3V0QXR0cmlidXRl
c0J1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODEwOTNEQTEyNTVG
MEU3MDBFRDlEMjkgLyogU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwODEzQTRFOTEyODQxMzI2MDA5OTI1MTEg
LyogU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwODE2NjhEMTEyNTYwM0JGMDA2RjI1REUgLyogU1ZHVGV4dENodW5rQnVpbGRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdUZXh0Q2h1bmtCdWls
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgxNjY4RDIxMjU2MDNCRjAw
NkYyNURFIC8qIFNWR1RleHRDaHVua0J1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1ZHVGV4dENodW5rQnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwODE2NjhENzEyNTYwM0Q1MDA2RjI1REUgLyogU1ZHVGV4dExheW91dEVuZ2luZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdUZXh0TGF5b3V0RW5naW5l
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgyODUsNyArODI4MSw2IEBACiAJ
CTg1QUNBQkFFMEE5Q0FGODAwMDY3MUU5MCAvKiBET01Eb2N1bWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODVBQ0FCQUYwQTlDQUY4MDAwNjcxRTkwIC8qIERPTURvY3VtZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTURvY3VtZW50Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUFDRUYwNjBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9N
U1ZHQW5pbWF0ZWRQYXRoRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4
NUFDRUYwNzBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQb2ludHMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0FuaW1hdGVkUG9pbnRzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1QUNFRjA4MEFDRENDQ0YwMDEyMTRGRiAvKiBET01T
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERPTVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NUFDRUYwOTBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERPTVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVBQ0VGMEEwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERPTVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTk4MjAsOSArOTgxNSw2IEBACiAJCUIyMjI3N0VFMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdB
bmltYXRlZFBhdGhEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdBbmltYXRlZFBhdGhEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QjIyMjc3RUYwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUGF0aERhdGEuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjIyMjc3RjAwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0Fu
aW1hdGVkUGF0aERhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlZFBh
dGhEYXRhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjIyMjc3RjEwRDAwQkYx
RjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUIyMjI3N0YyMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBvaW50
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQb2ludHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjIyMjc3RjMwRDAwQkYxRjAwNzFCNzgy
IC8qIFNWR0FuaW1hdGVkUG9pbnRzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHQW5p
bWF0ZWRQb2ludHMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjIyNzdGNDBE
MDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjIyMjc3RjUwRDAwQkYxRjAwNzFCNzgyIC8q
IFNWR0FuaW1hdGVkUmVjdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0FuaW1hdGVk
UmVjdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMjI3N0Y2MEQwMEJGMUYw
MDcxQjc4MiAvKiBTVkdBbmltYXRlZFN0cmluZy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFNWR0FuaW1hdGVkU3RyaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
NzgxLDYgKzExNzczLDcgQEAKIAkJCQkwODhBMEUwMjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJv
cGVydHlUZWFyT2ZmLmggKi8sCiAJCQkJMDg4QTBFMDMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1By
b3BlcnR5VHJhaXRzLmggKi8sCiAJCQkJMDg4MEY3MEQxMjgyQjQ2RDAwOTQ4NTA1IC8qIFNWR1N0
YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCAqLywKKwkJCQkwODEzQTRFOTEyODQxMzI2MDA5OTI1
MTEgLyogU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHBy
b3BlcnRpZXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTM1MzYsNyArMTM1Mjks
NiBAQAogCQkJCUE4RTU0NEIxMENBOUQxQzIwMDk3RDA5QiAvKiBET01TVkdBbmltYXRlZE51bWJl
ckxpc3RJbnRlcm5hbC5oICovLAogCQkJCUE4RTU0NEIwMENBOUQxQzIwMDk3RDA5QiAvKiBET01T
VkdBbmltYXRlZFBhdGhEYXRhLmggKi8sCiAJCQkJODVBQ0VGMDYwQUNEQ0NDRjAwMTIxNEZGIC8q
IERPTVNWR0FuaW1hdGVkUGF0aERhdGEuaCAqLywKLQkJCQk4NUFDRUYwNzBBQ0RDQ0NGMDAxMjE0
RkYgLyogRE9NU1ZHQW5pbWF0ZWRQb2ludHMuaCAqLywKIAkJCQk4NUFDRUYwODBBQ0RDQ0NGMDAx
MjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggKi8sCiAJCQkJODVB
Q0VGMDkwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
by5tbSAqLywKIAkJCQlBOEU1NDRBRDBDQTlEMUMyMDA5N0QwOUIgLyogRE9NU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvSW50ZXJuYWwuaCAqLywKQEAgLTE2MDU5LDkgKzE2MDUxLDYgQEAK
IAkJCQlCMjIyNzdFRTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAg
Ki8sCiAJCQkJQjIyMjc3RUYwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEu
aCAqLywKIAkJCQlCMjIyNzdGMDBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0
YS5pZGwgKi8sCi0JCQkJQjIyMjc3RjEwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUG9p
bnRzLmNwcCAqLywKLQkJCQlCMjIyNzdGMjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQ
b2ludHMuaCAqLywKLQkJCQlCMjIyNzdGMzBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQ
b2ludHMuaWRsICovLAogCQkJCTA4RkUwQkM0MTI3RTJBQzEwMDBDNEZCNSAvKiBTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLywKIAkJCQlCMjIyNzdGNDBEMDBCRjFGMDA3MUI3ODIg
LyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLywKIAkJCQkwOEM4NTlCRjEy
NzQ1NzUzMDBBNTcyOEQgLyogU1ZHQW5pbWF0ZWRSZWN0LmggKi8sCkBAIC0xOTA0OCw4ICsxOTAz
Nyw2IEBACiAJCQkJQThFNTQ1QUYwQ0E5RDFDMjAwOTdEMDlCIC8qIERPTVNWR0FuaW1hdGVkTnVt
YmVyTGlzdEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUFDRUYwQzBBQ0RDQ0NGMDAx
MjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThF
NTQ1QUUwQ0E5RDFDMjAwOTdEMDlCIC8qIERPTVNWR0FuaW1hdGVkUGF0aERhdGEuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTg1QUNFRjBEMEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFBv
aW50cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgwRjNBNUEwQ0NEQTJFRDAwMkREOTkwIC8qIERP
TVNWR0FuaW1hdGVkUG9pbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUFDRUYwRTBBQ0RDQ0NG
MDAxMjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NUFDRUYxODBBQ0RDRDFBMDAxMjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RTU0NUFCMENB
OUQxQzIwMDk3RDA5QiAvKiBET01TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9JbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDg2MSw3ICsyMDg0OCw2IEBACiAJCQkJMDhCMzVCMTMx
MjdCNkE3QzAwNTMxNEREIC8qIFNWR0FuaW1hdGVkTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwOEIzNUIxNzEyN0I2QTg4MDA1MzE0REQgLyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjIyNzk4NTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQ
YXRoRGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjIyMjc5ODgwRDAwQkYyMjAwNzFCNzgyIC8q
IFNWR0FuaW1hdGVkUG9pbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEZFMEJDNTEyN0UyQUMx
MDAwQzRGQjUgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODhBMEUwNTEyNkVGMURCMDA5NzhGN0EgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMDYxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0FuaW1h
dGVkUHJvcGVydHlEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTI5MCw2ICsyMTI3
Niw3IEBACiAJCQkJNkU2N0QyQTcxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5H
TC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2N0QyQTkxMjgwRThCRDAwODc1OEY3IC8qIEV4dGVu
c2lvbnMzRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGNkYxRUUxMjdGNzBCMTAwNTVDQjA2IC8q
IFdlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwODEzQTRFQTEyODQxMzI2
MDA5OTI1MTEgLyogU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTIxMzQ5LDcgKzIxMzM2LDYgQEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZp
Z3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3Vy
YXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5
VmVyc2lvbiA9ICJYY29kZSAyLjQiOwotCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwog
CQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJ
RW5nbGlzaCwKQEAgLTIzNDg1LDcgKzIzNDcxLDYgQEAKIAkJCQlCMjIyNzk3NjBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHQW5nbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5NzkwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjIyMjc5ODQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQjIyMjc5ODcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVk
UG9pbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3OThGMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdBbmltYXRlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzk5MjBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjIyMjc5OTQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVNW
Ry5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01TVkcuaAkocmV2aXNp
b24gNzEzMzgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NU1ZHLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDcgKzM5LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHQW5pbWF0ZWROdW1i
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHQW5pbWF0ZWROdW1iZXJMaXN0Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RPTVNWR0FuaW1hdGVkUGF0aERhdGEuaD4KLSNpbXBvcnQgPFdlYkNvcmUv
RE9NU1ZHQW5pbWF0ZWRQb2ludHMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0FuaW1hdGVkUmVj
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdBbmltYXRlZFN0cmluZy5oPgpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHJldmlzaW9uIDcxMzM4KQor
KysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHdvcmtpbmcgY29w
eSkKQEAgLTUxLDcgKzUxLDcgQEAgbXkgJW51bWVyaWNUeXBlSGFzaCA9ICgiaW50IiA9PiAxLCAi
c2hvcgogbXkgJXByaW1pdGl2ZVR5cGVIYXNoID0gKCAiYm9vbGVhbiIgPT4gMSwgInZvaWQiID0+
IDEsICJEYXRlIiA9PiAxKTsKIAogbXkgJXBvZFR5cGVIYXNoID0gKCJTVkdUcmFuc2Zvcm0iID0+
IDEpOwotbXkgJXBvZFR5cGVzV2l0aFdyaXRhYmxlUHJvcGVydGllc0hhc2ggPSAoIlNWR01hdHJp
eCIgPT4gMSwgIlNWR1BvaW50IiA9PiAxKTsKK215ICVwb2RUeXBlc1dpdGhXcml0YWJsZVByb3Bl
cnRpZXNIYXNoID0gKCJTVkdNYXRyaXgiID0+IDEpOwogbXkgJXN0cmluZ1R5cGVIYXNoID0gKCJE
T01TdHJpbmciID0+IDEsICJBdG9taWNTdHJpbmciID0+IDEpOwogCiBteSAlbm9uUG9pbnRlclR5
cGVIYXNoID0gKCJET01UaW1lU3RhbXAiID0+IDEsICJDb21wYXJlSG93IiA9PiAxLCAiU1ZHUGFp
bnRUeXBlIiA9PiAxKTsKQEAgLTc3LDE3ICs3NywyMyBAQCBteSAlc3ZnQXR0cmlidXRlc0luSFRN
TEhhc2ggPSAoImNsYXNzIiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9ubW91
c2V1cCIgPT4gMSwgIm9ucmVzaXplIiA9PiAxLCAib25zY3JvbGwiID0+IDEsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIm9udW5sb2FkIiA9PiAxKTsKIAotbXkgJXN2Z05hdGl2ZVR5
cGUgPSAoCitteSAlc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmID0gKAogICAgICJTVkdBbmdsZSIgPT4g
IlNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZT4iLAogICAgICJTVkdMZW5ndGgiID0+ICJTVkdQ
cm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoPiIsCiAgICAgIlNWR0xlbmd0aExpc3QiID0+ICJTVkdM
aXN0UHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aExpc3Q+IiwKICAgICAiU1ZHTnVtYmVyIiA9PiAi
U1ZHUHJvcGVydHlUZWFyT2ZmPGZsb2F0PiIsCiAgICAgIlNWR051bWJlckxpc3QiID0+ICJTVkdM
aXN0UHJvcGVydHlUZWFyT2ZmPFNWR051bWJlckxpc3Q+IiwKKyAgICAiU1ZHUG9pbnQiID0+ICJT
VkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4iLAorICAgICJTVkdQb2ludExpc3QiID0+ICJT
VkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50TGlzdD4iLAogICAgICJTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvIiA9PiAiU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+
IiwKICAgICAiU1ZHUmVjdCIgPT4gIlNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFJlY3Q+IiwKICAg
ICAiU1ZHU3RyaW5nTGlzdCIgPT4gIlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHU3Ry
aW5nTGlzdD4iCiApOwogCitteSAlc3ZnVHlwZVdpdGhXcml0YWJsZVByb3BlcnRpZXNOZWVkaW5n
VGVhck9mZiA9ICgKKyAgICAiU1ZHUG9pbnQiID0+IDEKKyk7CisKICMgQ2FjaGUgb2YgSURMIGZp
bGUgcGF0aG5hbWVzLgogbXkgJGlkbEZpbGVzOwogCkBAIC0zNzMsNyArMzc5LDE2IEBAIHN1YiBJ
c1NWR1R5cGVOZWVkaW5nVGVhck9mZgogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKICAgICBteSAk
dHlwZSA9IHNoaWZ0OwogCi0gICAgcmV0dXJuIDEgaWYgZXhpc3RzICRzdmdOYXRpdmVUeXBleyR0
eXBlfTsKKyAgICByZXR1cm4gMSBpZiBleGlzdHMgJHN2Z1R5cGVOZWVkaW5nVGVhck9mZnskdHlw
ZX07CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBJc1NWR1R5cGVXaXRoV3JpdGFibGVQcm9wZXJ0
aWVzTmVlZGluZ1RlYXJPZmYKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHR5
cGUgPSBzaGlmdDsKKworICAgIHJldHVybiAxIGlmICRzdmdUeXBlV2l0aFdyaXRhYmxlUHJvcGVy
dGllc05lZWRpbmdUZWFyT2ZmeyR0eXBlfTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMzgyLDcg
KzM5Nyw3IEBAIHN1YiBHZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYKICAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKIAotICAgIHJldHVybiAkc3ZnTmF0aXZlVHlw
ZXskdHlwZX0gaWYgZXhpc3RzICRzdmdOYXRpdmVUeXBleyR0eXBlfTsKKyAgICByZXR1cm4gJHN2
Z1R5cGVOZWVkaW5nVGVhck9mZnskdHlwZX0gaWYgZXhpc3RzICRzdmdUeXBlTmVlZGluZ1RlYXJP
ZmZ7JHR5cGV9OwogICAgIHJldHVybiB1bmRlZjsKIH0KIApAQCAtMzkxLDE5ICs0MDYsMTkgQEAg
c3ViIEdldFNWR1dyYXBwZWRUeXBlTmVlZGluZ1RlYXJPZmYKICAgICBteSAkb2JqZWN0ID0gc2hp
ZnQ7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKIAotICAgIG15ICRzdmdOYXRpdmVUeXBlID0gJG9i
amVjdC0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCR0eXBlKTsKLSAgICByZXR1cm4gJHN2Z05h
dGl2ZVR5cGUgaWYgbm90ICRzdmdOYXRpdmVUeXBlOworICAgIG15ICRzdmdUeXBlTmVlZGluZ1Rl
YXJPZmYgPSAkb2JqZWN0LT5HZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHR5cGUpOworICAgIHJl
dHVybiAkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmIGlmIG5vdCAkc3ZnVHlwZU5lZWRpbmdUZWFyT2Zm
OwogCi0gICAgaWYgKCRzdmdOYXRpdmVUeXBlID1+IC9TVkdQcm9wZXJ0eVRlYXJPZmYvKSB7Ci0g
ICAgICAgICRzdmdOYXRpdmVUeXBlID1+IHMvU1ZHUHJvcGVydHlUZWFyT2ZmPC8vOwotICAgIH0g
ZWxzaWYgKCRzdmdOYXRpdmVUeXBlID1+IC9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLykgewotICAg
ICAgICAkc3ZnTmF0aXZlVHlwZSA9fiBzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8Ly87Ci0gICAg
fSBlbHNpZiAoJHN2Z05hdGl2ZVR5cGUgPX4gL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYv
KSB7Ci0gICAgICAgICRzdmdOYXRpdmVUeXBlID1+IHMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVh
ck9mZjwvLzsKKyAgICBpZiAoJHN2Z1R5cGVOZWVkaW5nVGVhck9mZiA9fiAvU1ZHUHJvcGVydHlU
ZWFyT2ZmLykgeworICAgICAgICAkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmID1+IHMvU1ZHUHJvcGVy
dHlUZWFyT2ZmPC8vOworICAgIH0gZWxzaWYgKCRzdmdUeXBlTmVlZGluZ1RlYXJPZmYgPX4gL1NW
R0xpc3RQcm9wZXJ0eVRlYXJPZmYvKSB7CisgICAgICAgICRzdmdUeXBlTmVlZGluZ1RlYXJPZmYg
PX4gcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmPC8vOworICAgIH0gZWxzaWYgKCRzdmdUeXBlTmVl
ZGluZ1RlYXJPZmYgPX4gL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYvKSB7CisgICAgICAg
ICRzdmdUeXBlTmVlZGluZ1RlYXJPZmYgPX4gcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2Zm
PC8vOwogICAgIH0KIAotICAgICRzdmdOYXRpdmVUeXBlID1+IHMvPi8vOwotICAgIHJldHVybiAk
c3ZnTmF0aXZlVHlwZTsKKyAgICAkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmID1+IHMvPi8vOworICAg
IHJldHVybiAkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmOwogfQogCiAjIEZJWE1FOiBUaGlzIG1ldGhv
ZCB3aWxsIGdvIGF3YXkgb25jZSBhbGwgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZl
cnRlZCB0byB0aGUgbmV3IHNjaGVtZS4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gNzEzMzgpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0yNDU2LDggKzI0
NTYsNiBAQCBteSAlbmF0aXZlVHlwZSA9ICgKICAgICAiSURCS2V5IiA9PiAiUmVmUHRyPElEQktl
eT4iLAogICAgICJTVkdNYXRyaXgiID0+ICJBZmZpbmVUcmFuc2Zvcm0iLAogICAgICJTVkdQYWlu
dFR5cGUiID0+ICJTVkdQYWludDo6U1ZHUGFpbnRUeXBlIiwKLSAgICAiU1ZHUG9pbnQiID0+ICJG
bG9hdFBvaW50IiwKLSAgICAiU1ZHUmVjdCIgPT4gIkZsb2F0UmVjdCIsCiAgICAgIlNWR1RyYW5z
Zm9ybSIgPT4gIlNWR1RyYW5zZm9ybSIsCiAgICAgImJvb2xlYW4iID0+ICJib29sIiwKICAgICAi
ZG91YmxlIiA9PiAiZG91YmxlIiwKQEAgLTI1NTYsOCArMjU1NCw2IEBAIHN1YiBKU1ZhbHVlVG9O
YXRpdmUKICAgICAgICAgcmV0dXJuICJjcmVhdGVJREJLZXlGcm9tVmFsdWUoZXhlYywgJHZhbHVl
KSI7CiAgICAgfQogCi0gICAgJGltcGxJbmNsdWRlc3siRmxvYXRQb2ludC5oIn0gPSAxIGlmICR0
eXBlIGVxICJTVkdQb2ludCI7Ci0gICAgJGltcGxJbmNsdWRlc3siRmxvYXRSZWN0LmgifSA9IDEg
aWYgJHR5cGUgZXEgIlNWR1JlY3QiOwogICAgICRpbXBsSW5jbHVkZXN7IkhUTUxPcHRpb25FbGVt
ZW50LmgifSA9IDEgaWYgJHR5cGUgZXEgIkhUTUxPcHRpb25FbGVtZW50IjsKICAgICAkaW1wbElu
Y2x1ZGVzeyJKU0N1c3RvbVZvaWRDYWxsYmFjay5oIn0gPSAxIGlmICR0eXBlIGVxICJWb2lkQ2Fs
bGJhY2siOwogICAgICRpbXBsSW5jbHVkZXN7IkV2ZW50LmgifSA9IDEgaWYgJHR5cGUgZXEgIkV2
ZW50IjsKQEAgLTI2ODAsMTAgKzI2NzYsMTkgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAg
ICAkdmFsdWUgPSAic3RhdGljX2Nhc3Q8IiAuIEdldE5hdGl2ZVR5cGUoJHR5cGUpIC4gIj4oJHZh
bHVlKSI7CiAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFy
T2ZmKCR0eXBlKSBhbmQgbm90ICRpbXBsQ2xhc3NOYW1lID1+IC9MaXN0JC8pIHsKICAgICAgICAg
bXkgJHRlYXJPZmZUeXBlID0gJGNvZGVHZW5lcmF0b3ItPkdldFNWR1R5cGVOZWVkaW5nVGVhck9m
ZigkdHlwZSk7Ci0gICAgICAgIGlmICgkdGVhck9mZlR5cGUgPX4gL1NWR1N0YXRpY0xpc3RQcm9w
ZXJ0eVRlYXJPZmYvKSB7CisgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlV2l0
aFdyaXRhYmxlUHJvcGVydGllc05lZWRpbmdUZWFyT2ZmKCR0eXBlKSBhbmQgJGluRnVuY3Rpb25D
YWxsIGVxIDAgYW5kIG5vdCBkZWZpbmVkICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJJbW11dGFibGUifSkgeworICAgICAgICAgICAgJHRlYXJPZmZUeXBlID1+IHMvU1ZHUHJvcGVy
dHlUZWFyT2ZmPC9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8JGltcGxDbGFzc05hbWUsIC87Cisg
ICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCJ9ID0g
MTsKKworICAgICAgICAgICAgbXkgJGdldHRlciA9ICR2YWx1ZTsKKyAgICAgICAgICAgICRnZXR0
ZXIgPX4gcy9pbXAtPi8vOworICAgICAgICAgICAgJGdldHRlciA9fiBzL1woXCkvLzsKKyAgICAg
ICAgICAgIG15ICR1cGRhdGVyID0gInVwZGF0ZSIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkZ2V0dGVyKTsKKyAgICAgICAgICAgICR2YWx1ZSA9ICIke3RlYXJPZmZUeXBlfTo6Y3JlYXRl
KGltcCwgJHZhbHVlLCAmJHtpbXBsQ2xhc3NOYW1lfTo6JHVwZGF0ZXIpIjsKKyAgICAgICAgfSBl
bHNpZiAoJHRlYXJPZmZUeXBlID1+IC9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLykgewog
ICAgICAgICAgICAgbXkgJGV4dHJhSW1wID0gIkdldE93bmVyRWxlbWVudEZvclR5cGU8JGltcGxD
bGFzc05hbWUsIElzRGVyaXZlZEZyb21TVkdFbGVtZW50PCRpbXBsQ2xhc3NOYW1lPjo6dmFsdWU+
Ojpvd25lckVsZW1lbnQoaW1wKSwgIjsKICAgICAgICAgICAgICR2YWx1ZSA9ICIke3RlYXJPZmZU
eXBlfTo6Y3JlYXRlKCRleHRyYUltcCR2YWx1ZSkiOwotICAgICAgICB9IGVsc2UgeworICAgICAg
ICB9IGVsc2lmIChub3QgJHRlYXJPZmZUeXBlID1+IC9TVkdQb2ludExpc3QvKSB7CiAgICAgICAg
ICAgICAkdmFsdWUgPSAiJHt0ZWFyT2ZmVHlwZX06OmNyZWF0ZSgkdmFsdWUpIjsKICAgICAgICAg
fQogICAgIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2Jq
Qy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ck9iakMucG0JKHJldmlzaW9uIDcxMzM4KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JPYmpDLnBtCSh3b3JraW5nIGNvcHkpCkBAIC01OSw4ICs1OSw3IEBAIG15IEBk
ZXBzQ29udGVudCA9ICgpOwogbXkgJXByb3RvY29sVHlwZUhhc2ggPSAoIlhQYXRoTlNSZXNvbHZl
ciIgPT4gMSwgIkV2ZW50TGlzdGVuZXIiID0+IDEsICJFdmVudFRhcmdldCIgPT4gMSwgIk5vZGVG
aWx0ZXIiID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAiU1ZHTG9jYXRhYmxlIiA9PiAx
LCAiU1ZHVHJhbnNmb3JtYWJsZSIgPT4gMSwgIlNWR1N0eWxhYmxlIiA9PiAxLCAiU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIiA9PiAxLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgICJTVkdUZXN0cyIgPT4gMSwgIlNWR0xhbmdTcGFjZSIgPT4gMSwgIlNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQiID0+IDEsICJTVkdVUklSZWZlcmVuY2UiID0+IDEsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAiU1ZHWm9vbUFuZFBhbiIgPT4gMSwgIlNWR0ZpdFRvVmlld0JveCIgPT4g
MSwgIlNWR0FuaW1hdGVkUGF0aERhdGEiID0+IDEsICJTVkdBbmltYXRlZFBvaW50cyIgPT4gMSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJFbGVtZW50VGltZUNvbnRyb2wiID0+IDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgIlNWR1pvb21BbmRQYW4iID0+IDEsICJTVkdGaXRUb1ZpZXdC
b3giID0+IDEsICJTVkdBbmltYXRlZFBhdGhEYXRhIiA9PiAxLCAiRWxlbWVudFRpbWVDb250cm9s
IiA9PiAxKTsKIG15ICVuYXRpdmVPYmpDVHlwZUhhc2ggPSAoIlVSTCIgPT4gMSwgIkNvbG9yIiA9
PiAxKTsKIAogIyBGSVhNRTogdGhpcyBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCBhIGZ1bmN0aW9u
IHRoYXQgcmVjdXJzZXMgdXAgdGhlIHRyZWUKQEAgLTcxLDcgKzcwLDcgQEAgbXkgJWJhc2VUeXBl
SGFzaCA9ICgiT2JqZWN0IiA9PiAxLCAiTm9kZQogICAgICAgICAgICAgICAgICAgICAiTm9kZUl0
ZXJhdG9yIiA9PiAxLCAiVHJlZVdhbGtlciIgPT4gMSwgIkFic3RyYWN0VmlldyIgPT4gMSwgIkJs
b2IiID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICJTVkdBbmdsZSIgPT4gMSwgIlNWR0FuaW1h
dGVkQW5nbGUiID0+IDEsICJTVkdBbmltYXRlZEJvb2xlYW4iID0+IDEsICJTVkdBbmltYXRlZEVu
dW1lcmF0aW9uIiA9PiAxLAogICAgICAgICAgICAgICAgICAgICAiU1ZHQW5pbWF0ZWRJbnRlZ2Vy
IiA9PiAxLCAiU1ZHQW5pbWF0ZWRMZW5ndGgiID0+IDEsICJTVkdBbmltYXRlZExlbmd0aExpc3Qi
ID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICJTVkdBbmltYXRlZE51bWJlciIgPT4gMSwgIlNW
R0FuaW1hdGVkTnVtYmVyTGlzdCIgPT4gMSwgIlNWR0FuaW1hdGVkUG9pbnRzIiA9PiAxLAorICAg
ICAgICAgICAgICAgICAgICAiU1ZHQW5pbWF0ZWROdW1iZXIiID0+IDEsICJTVkdBbmltYXRlZE51
bWJlckxpc3QiID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICJTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW8iID0+IDEsICJTVkdBbmltYXRlZFJlY3QiID0+IDEsICJTVkdBbmltYXRlZFN0
cmluZyIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlz
dCIgPT4gMSwgIlNWR0xlbmd0aCIgPT4gMSwgIlNWR0xlbmd0aExpc3QiID0+IDEsICJTVkdNYXRy
aXgiID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICJTVkdOdW1iZXIiID0+IDEsICJTVkdOdW1i
ZXJMaXN0IiA9PiAxLCAiU1ZHUGF0aFNlZyIgPT4gMSwgIlNWR1BhdGhTZWdMaXN0IiA9PiAxLCAi
U1ZHUG9pbnQiID0+IDEsCkBAIC02MDAsMTIgKzU5OSw2IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5
cGUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICgkdHlwZSBlcSAiU1ZHUG9pbnQi
KSB7Ci0gICAgICAgICRpbXBsSW5jbHVkZXN7IkZsb2F0UG9pbnQuaCJ9ID0gMTsKLSAgICAgICAg
JGltcGxJbmNsdWRlc3siRE9NU1ZHUG9pbnRJbnRlcm5hbC5oIn0gPSAxOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCiAgICAgaWYgKCR0eXBlIGVxICJTVkdNYXRyaXgiKSB7CiAgICAgICAgICRp
bXBsSW5jbHVkZXN7IkFmZmluZVRyYW5zZm9ybS5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1
ZGVzeyJET01TVkdNYXRyaXhJbnRlcm5hbC5oIn0gPSAxOwpAQCAtMTMxNywxNSArMTMxMCwzMCBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICRnZXR0ZXJDb250
ZW50SGVhZCA9ICIkZ2V0dGVyQ29udGVudEhlYWQiOwogICAgICAgICAgICAgICAgICRnZXR0ZXJD
b250ZW50VGFpbCAuPSAiLT50b1N0cmluZygpIjsgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICB9IGVsc2lmIChDb252ZXJzaW9uTmVlZGVkKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSkp
IHsKLSAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdU
ZWFyT2ZmKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSkgYW5kIG5vdCAkaW1wbENsYXNzTmFt
ZSA9fiAvTGlzdCQvKSB7Ci0gICAgICAgICAgICAgICAgICAgIG15ICRpZGxUeXBlV2l0aE5hbWVz
cGFjZSA9IEdldFNWR1R5cGVXaXRoTmFtZXNwYWNlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlw
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgkaWRsVHlwZVdpdGhOYW1lc3BhY2UgPX4gL1NW
R1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYvKSB7CisgICAgICAgICAgICAgICAgbXkgJHR5cGUg
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgICAgICAgICAgaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZigkdHlwZSkgYW5kIG5vdCAkaW1wbENs
YXNzTmFtZSA9fiAvTGlzdCQvKSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRpZGxUeXBlV2l0
aE5hbWVzcGFjZSA9IEdldFNWR1R5cGVXaXRoTmFtZXNwYWNlKCR0eXBlKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVXaXRoV3JpdGFibGVQcm9wZXJ0
aWVzTmVlZGluZ1RlYXJPZmYoJHR5cGUpIGFuZCBub3QgZGVmaW5lZCAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbW11dGFibGUifSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgJGlkbFR5cGVXaXRoTmFtZXNwYWNlID1+IHMvU1ZHUHJvcGVydHlUZWFyT2Zm
PC9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8JGltcGxDbGFzc05hbWVXaXRoTmFtZXNwYWNlLCAv
OworICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siU1ZHU3RhdGljUHJvcGVy
dHlUZWFyT2ZmLmgifSA9IDE7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIG15ICRnZXR0ZXIg
PSAkZ2V0dGVyQ29udGVudEhlYWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyID1+
IHMvSU1QTC0+Ly87CisgICAgICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyID1+IHMvXCgvLzsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG15ICR1cGRhdGVyID0gInVwZGF0ZSIgLiAkY29kZUdl
bmVyYXRvci0+V0tfdWNmaXJzdCgkZ2V0dGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICRn
ZXR0ZXJDb250ZW50SGVhZCA9ICJraXQoV1RGOjpnZXRQdHIoJHtpZGxUeXBlV2l0aE5hbWVzcGFj
ZX06OmNyZWF0ZShJTVBMLCAkZ2V0dGVyQ29udGVudEhlYWQkZ2V0dGVyQ29udGVudFRhaWwsICYk
e2ltcGxDbGFzc05hbWVXaXRoTmFtZXNwYWNlfTo6JHVwZGF0ZXIiOworICAgICAgICAgICAgICAg
ICAgICAgICAgJGdldHRlckNvbnRlbnRUYWlsIC49ICIpKSI7CisgICAgICAgICAgICAgICAgICAg
IH0gZWxzaWYgKCRpZGxUeXBlV2l0aE5hbWVzcGFjZSA9fiAvU1ZHU3RhdGljTGlzdFByb3BlcnR5
VGVhck9mZi8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRleHRyYUltcCA9ICJXZWJD
b3JlOjpHZXRPd25lckVsZW1lbnRGb3JUeXBlPCRpbXBsQ2xhc3NOYW1lV2l0aE5hbWVzcGFjZSwg
V2ViQ29yZTo6SXNEZXJpdmVkRnJvbVNWR0VsZW1lbnQ8JGltcGxDbGFzc05hbWVXaXRoTmFtZXNw
YWNlPjo6dmFsdWU+Ojpvd25lckVsZW1lbnQoSU1QTCksICI7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAia2l0KFdURjo6Z2V0UHRyKCR7aWRsVHlwZVdpdGhO
YW1lc3BhY2V9OjpjcmVhdGUoJGV4dHJhSW1wJGdldHRlckNvbnRlbnRIZWFkIjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50VGFpbCAuPSAiKSkpIjsKKyAgICAgICAgICAg
ICAgICAgICAgfSBlbHNpZiAoJGlkbFR5cGVXaXRoTmFtZXNwYWNlID1+IC9TVkdQb2ludExpc3Qv
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAia2l0KFdU
Rjo6Z2V0UHRyKCRnZXR0ZXJDb250ZW50SGVhZCI7CisgICAgICAgICAgICAgICAgICAgICAgICAk
Z2V0dGVyQ29udGVudFRhaWwgLj0gIikpIjsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICJraXQoV1RGOjpn
ZXRQdHIoJHtpZGxUeXBlV2l0aE5hbWVzcGFjZX06OmNyZWF0ZSgkZ2V0dGVyQ29udGVudEhlYWQi
OworICAgICAgICAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRUYWlsIC49ICIpKSkiOwog
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50
VGFpbCAuPSAiKSkpIjsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAia2l0KFdURjo6Z2V0UHRyKCRnZXR0ZXJDb250ZW50
SGVhZCI7CiAgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50VGFpbCAuPSAiKSkiOwpA
QCAtMTQxNiw3ICsxNDI0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJTVBMLT5jb21taXRD
aGFuZ2UoKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgJGV4Y2VwdGlvblJhaXNlT25FcnJvclxuIik7CiAgICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgSU1QTC0+Y29tbWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIElNUEwtPmNvbW1pdENoYW5nZSgpO1xuIik7CiAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2lmICgkc3ZnTGlzdFByb3BlcnR5
VHlwZSkgewogICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAiJGdldHRl
ckV4cHJlc3Npb25QcmVmaXgiOwpAQCAtMTU3OCw3ICsxNTg2LDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KIAogICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKICAgICAg
ICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgJHN2Z1Byb3BlcnR5VHlwZSYg
cG9kSW1wbCA9IElNUEwtPnByb3BlcnR5UmVmZXJlbmNlKCk7XG4iKTsKLSAgICAgICAgICAgICAg
ICAkY29udGVudCA9ICJwb2RJbXBsLiRjb250ZW50O1xuICAgIElNUEwtPmNvbW1pdENoYW5nZSgp
IjsgCisgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAicG9kSW1wbC4kY29udGVudCI7IAogICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAkY29udGVudCA9ICRjYWxsZXIgLiAi
LT4kY29udGVudCI7CiAgICAgICAgICAgICB9CkBAIC0xNjAyLDkgKzE2MTAsMTQgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBpZiAoJHJhaXNlc0V4Y2VwdGlv
bnMpIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICRl
eGNlcHRpb25Jbml0XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250
ZW50LCAiICAgICRjb250ZW50O1xuIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgkc3ZnUHJv
cGVydHlUeXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRl
bnQsICIgICAgaWYgKCFlYylcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAZnVu
Y3Rpb25Db250ZW50LCAiICAgICAgICBJTVBMLT5jb21taXRDaGFuZ2UoKTtcbiIpOworICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVu
dCwgIiAgICAkZXhjZXB0aW9uUmFpc2VPbkVycm9yXG4iKTsKICAgICAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgJGNv
bnRlbnQ7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAi
ICAgIElNUEwtPmNvbW1pdENoYW5nZSgpXG4iKSBpZiAkc3ZnUHJvcGVydHlUeXBlOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzaWYgKGRlZmluZWQgJG5lZWRzQ3VzdG9teyJO
b2RlVG9SZXR1cm4ifSkgewogICAgICAgICAgICAgICAgICMgU3BlY2lhbCBjYXNlIHRoZSBpbnNl
cnRCZWZvcmUsIHJlcGxhY2VDaGlsZCwgcmVtb3ZlQ2hpbGQgCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHJldmlzaW9uIDcxMzM4KQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQpA
QCAtOTI4LDEwICs5MjgsMTkgQEAgRU5ECiAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklz
U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRhdHRyVHlwZSkgYW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9
fiAvTGlzdCQvKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlY4JGF0dHJUeXBlLmgifSA9IDE7
CiAgICAgICAgIG15ICR0ZWFyT2ZmVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdUeXBlTmVl
ZGluZ1RlYXJPZmYoJGF0dHJUeXBlKTsKLSAgICAgICAgaWYgKCR0ZWFyT2ZmVHlwZSA9fiAvU1ZH
U3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi8pIHsKKyAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jc1NWR1R5cGVXaXRoV3JpdGFibGVQcm9wZXJ0aWVzTmVlZGluZ1RlYXJPZmYoJGF0dHJUeXBl
KSBhbmQgbm90IGRlZmluZWQgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSW1tdXRhYmxlIn0pIHsKKyAgICAgICAgICAgICR0ZWFyT2ZmVHlwZSA9fiBzL1NWR1By
b3BlcnR5VGVhck9mZjwvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmPCRpbXBsQ2xhc3NOYW1lLCAv
OworICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgi
fSA9IDE7CisKKyAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAkcmVzdWx0OworICAgICAgICAgICAg
JGdldHRlciA9fiBzL2ltcC0+Ly87CisgICAgICAgICAgICAkZ2V0dGVyID1+IHMvXChcKS8vOwor
ICAgICAgICAgICAgbXkgJHVwZGF0ZXIgPSAidXBkYXRlIiAuICRjb2RlR2VuZXJhdG9yLT5XS191
Y2ZpcnN0KCRnZXR0ZXIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAg
ICByZXR1cm4gdG9WOChXVEY6OmdldFB0cigke3RlYXJPZmZUeXBlfTo6Y3JlYXRlKGltcCwgJHJl
c3VsdCwgJiR7aW1wbENsYXNzTmFtZX06OiR1cGRhdGVyKSkpO1xuIik7CisgICAgICAgIH0gZWxz
aWYgKCR0ZWFyT2ZmVHlwZSA9fiAvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi8pIHsKICAg
ICAgICAgICAgIG15ICRleHRyYUltcCA9ICJHZXRPd25lckVsZW1lbnRGb3JUeXBlPCRpbXBsQ2xh
c3NOYW1lLCBJc0Rlcml2ZWRGcm9tU1ZHRWxlbWVudDwkaW1wbENsYXNzTmFtZT46OnZhbHVlPjo6
b3duZXJFbGVtZW50KGltcCksICI7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xz
LCAiICAgIHJldHVybiB0b1Y4KFdURjo6Z2V0UHRyKCR7dGVhck9mZlR5cGV9OjpjcmVhdGUoJGV4
dHJhSW1wJHJlc3VsdCkpKTtcbiIpOwotICAgICAgICB9IGVsc2UgeworICAgICAgICB9IGVsc2lm
IChub3QgJHRlYXJPZmZUeXBlID1+IC9TVkdQb2ludExpc3QvKSB7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiB0b1Y4KFdURjo6Z2V0UHRyKCR7dGVhck9m
ZlR5cGV9OjpjcmVhdGUoJHJlc3VsdCkpKTtcbiIpOwogICAgICAgICB9CiAgICAgfSBlbHNpZiAo
JGF0dHJJc1BvZFR5cGUpIHsKQEAgLTI2NzcsNyArMjY4Niw2IEBAIHN1YiBHZXROYXRpdmVUeXBl
Rm9yQ29udmVyc2lvbnMKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKICAgICBteSAkdHlwZSA9
IHNoaWZ0OwogCi0gICAgJHR5cGUgPSAiRmxvYXRQb2ludCIgaWYgJHR5cGUgZXEgIlNWR1BvaW50
IjsKICAgICAkdHlwZSA9ICJBZmZpbmVUcmFuc2Zvcm0iIGlmICR0eXBlIGVxICJTVkdNYXRyaXgi
OwogICAgICR0eXBlID0gIlY4U1ZHUE9EVHlwZVdyYXBwZXI8JHR5cGU+IiBpZiAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJQT0RUeXBlIn07CiAgICAgJHR5cGUgPSAkY29kZUdlbmVy
YXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCR0eXBlKSBpZiAkY29kZUdlbmVyYXRvci0+
SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHR5cGUpOyAKQEAgLTI5NDcsNyArMjk1NSw2IEBAIHN1
YiBJc1JlZlB0clR5cGUKICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQiOwogICAg
IHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKICAgICByZXR1cm4gMCBpZiAk
dHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOwotICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJTVkdB
bmltYXRlZFBvaW50cyI7CiAKICAgICByZXR1cm4gMTsKIH0KQEAgLTI5ODAsNyArMjk4Nyw2IEBA
IHN1YiBHZXROYXRpdmVUeXBlCiAgICAgcmV0dXJuICJib29sIiBpZiAkdHlwZSBlcSAiYm9vbGVh
biI7CiAgICAgcmV0dXJuICJTdHJpbmciIGlmICR0eXBlIGVxICJET01TdHJpbmciOwogICAgIHJl
dHVybiAiUmFuZ2U6OkNvbXBhcmVIb3ciIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKLSAgICBy
ZXR1cm4gIkZsb2F0UG9pbnQiIGlmICR0eXBlIGVxICJTVkdQb2ludCI7CiAgICAgcmV0dXJuICJB
ZmZpbmVUcmFuc2Zvcm0iIGlmICR0eXBlIGVxICJTVkdNYXRyaXgiOwogICAgIHJldHVybiAiU1ZH
VHJhbnNmb3JtIiBpZiAkdHlwZSBlcSAiU1ZHVHJhbnNmb3JtIjsKICAgICByZXR1cm4gIlNWR1Bh
aW50OjpTVkdQYWludFR5cGUiIGlmICR0eXBlIGVxICJTVkdQYWludFR5cGUiOwpAQCAtMzAzMyw3
ICszMDM5LDYgQEAgc3ViIEJhc2ljVHlwZUNhbkZhaWxDb252ZXJzaW9uCiAgICAgbXkgJHR5cGUg
PSBHZXRUeXBlRnJvbVNpZ25hdHVyZSgkc2lnbmF0dXJlKTsKIAogICAgIHJldHVybiAxIGlmICR0
eXBlIGVxICJTVkdNYXRyaXgiOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJTVkdQb2ludCI7
CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIlNWR1RyYW5zZm9ybSI7CiAgICAgcmV0dXJuIDA7
CiB9CkBAIC0zMDk2LDEwICszMTAxLDYgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICAk
aW1wbEluY2x1ZGVzeyJGbG9hdFJlY3QuaCJ9ID0gMTsKICAgICB9CiAKLSAgICBpZiAoJHR5cGUg
ZXEgIlNWR1BvaW50IikgewotICAgICAgICAkaW1wbEluY2x1ZGVzeyJGbG9hdFBvaW50LmgifSA9
IDE7Ci0gICAgfQotCiAgICAgIyBEZWZhdWx0LCBhc3N1bWUgYXV0b2dlbmVyYXRlZCB0eXBlIGNv
bnZlcnNpb24gcm91dGluZXMKICAgICBpZiAoJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgewogICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJWOE5vZGUuaCJ9ID0gMTsKQEAgLTM0OTEsNyArMzQ5Miw2IEBA
IHN1YiBJc1NWR0xpc3RUeXBlTmVlZGluZ1NwZWNpYWxIYW5kbGluZwogewogICAgIG15ICRjbGFz
c05hbWUgPSBzaGlmdDsKIAotICAgIHJldHVybiAxIGlmICRjbGFzc05hbWUgZXEgIlNWR1BvaW50
TGlzdCI7CiAgICAgcmV0dXJuIDEgaWYgJGNsYXNzTmFtZSBlcSAiU1ZHVHJhbnNmb3JtTGlzdCI7
CiAKICAgICByZXR1cm4gMDsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRlclRyZWVB
c1RleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRlclRyZWVB
c1RleHQuY3BwCShyZXZpc2lvbiA3MTMzOCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRl
clRyZWVBc1RleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTEsNyArNDExLDcgQEAgc3RhdGlj
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbQogICAgICAgICB3cml0ZU5hbWVWYWx1
ZVBhaXIodHMsICJyIiwgZWxlbWVudC0+cigpLnZhbHVlKGVsZW1lbnQpKTsKICAgICB9IGVsc2Ug
aWYgKHN2Z0VsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBvbHlnb25UYWcpIHx8IHN2Z0Vs
ZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBvbHlsaW5lVGFnKSkgewogICAgICAgICBTVkdQ
b2x5RWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR1BvbHlFbGVtZW50Kj4oc3ZnRWxl
bWVudCk7Ci0gICAgICAgIHdyaXRlTmFtZUFuZFF1b3RlZFZhbHVlKHRzLCAicG9pbnRzIiwgZWxl
bWVudC0+cG9pbnRzKCktPnZhbHVlQXNTdHJpbmcoKSk7CisgICAgICAgIHdyaXRlTmFtZUFuZFF1
b3RlZFZhbHVlKHRzLCAicG9pbnRzIiwgZWxlbWVudC0+cG9pbnRMaXN0KCkudmFsdWVBc1N0cmlu
ZygpKTsKICAgICB9IGVsc2UgaWYgKHN2Z0VsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBh
dGhUYWcpKSB7CiAgICAgICAgIFNWR1BhdGhFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8
U1ZHUGF0aEVsZW1lbnQqPihzdmdFbGVtZW50KTsKICAgICAgICAgU3RyaW5nIHBhdGhTdHJpbmc7
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdmcvU1ZHQWxsSW5PbmUuY3BwCShyZXZpc2lvbiA3MTMzOCkKKysrIFdlYkNvcmUvc3ZnL1NW
R0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUg
IlNWR0FuZ2xlLmNwcCIKICNpbmNsdWRlICJTVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZFBhdGhEYXRhLmNwcCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFBv
aW50cy5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNW
R0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5jcHAiCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA3
MTMzOCkKKysrIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTcwLDEyICsxNzAsMTIgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRl
QW5pbWF0ZQogICAgICAgICBlbHNlIGlmIChwZXJjZW50YWdlID09IDEuZikKICAgICAgICAgICAg
IHJlc3VsdHMtPm1fYW5pbWF0ZWRQb2ludHMgPSBtX3RvUG9pbnRzOwogICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgIGlmIChtX2Zyb21Qb2ludHMgJiYgbV90b1BvaW50cykKLSAgICAgICAgICAg
ICAgICByZXN1bHRzLT5tX2FuaW1hdGVkUG9pbnRzID0gU1ZHUG9pbnRMaXN0OjpjcmVhdGVBbmlt
YXRlZChtX2Zyb21Qb2ludHMuZ2V0KCksIG1fdG9Qb2ludHMuZ2V0KCksIHBlcmNlbnRhZ2UpOwor
ICAgICAgICAgICAgaWYgKCFtX2Zyb21Qb2ludHMuaXNFbXB0eSgpICYmICFtX3RvUG9pbnRzLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgICAgICBTVkdQb2ludExpc3Q6OmNyZWF0ZUFuaW1hdGVkKG1f
ZnJvbVBvaW50cywgbV90b1BvaW50cywgcmVzdWx0cy0+bV9hbmltYXRlZFBvaW50cywgcGVyY2Vu
dGFnZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmVzdWx0cy0+bV9hbmlt
YXRlZFBvaW50cy5jbGVhcigpOwogICAgICAgICAgICAgLy8gRmFsbCBiYWNrIHRvIGRpc2NyZXRl
IGFuaW1hdGlvbiBpZiB0aGUgcG9pbnRzIGFyZSBub3QgY29tcGF0aWJsZQotICAgICAgICAgICAg
aWYgKCFyZXN1bHRzLT5tX2FuaW1hdGVkUG9pbnRzKQorICAgICAgICAgICAgaWYgKHJlc3VsdHMt
Pm1fYW5pbWF0ZWRQb2ludHMuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJlc3VsdHMtPm1f
YW5pbWF0ZWRQb2ludHMgPSAoKGFuaW1hdGlvbk1vZGUgPT0gRnJvbVRvQW5pbWF0aW9uICYmIHBl
cmNlbnRhZ2UgPiAwLjVmKSB8fCBhbmltYXRpb25Nb2RlID09IFRvQW5pbWF0aW9uIHx8IHBlcmNl
bnRhZ2UgPT0gMS4wZikgCiAgICAgICAgICAgICAgICAgICAgID8gbV90b1BvaW50cyA6IG1fZnJv
bVBvaW50czsKICAgICAgICAgfQpAQCAtMjE1LDE0ICsyMTUsMTIgQEAgYm9vbCBTVkdBbmltYXRl
RWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAogICAgICAgICBtX2Zyb21QYXRoLmNsZWFyKCk7CiAg
ICAgICAgIG1fdG9QYXRoLmNsZWFyKCk7CiAgICAgfSBlbHNlIGlmIChtX3Byb3BlcnR5VHlwZSA9
PSBQb2ludHNQcm9wZXJ0eSkgewotICAgICAgICBtX2Zyb21Qb2ludHMgPSBTVkdQb2ludExpc3Q6
OmNyZWF0ZShTVkdOYW1lczo6cG9pbnRzQXR0cik7Ci0gICAgICAgIGlmIChwb2ludHNMaXN0RnJv
bVNWR0RhdGEobV9mcm9tUG9pbnRzLmdldCgpLCBmcm9tU3RyaW5nKSkgewotICAgICAgICAgICAg
bV90b1BvaW50cyA9IFNWR1BvaW50TGlzdDo6Y3JlYXRlKFNWR05hbWVzOjpwb2ludHNBdHRyKTsK
LSAgICAgICAgICAgIGlmIChwb2ludHNMaXN0RnJvbVNWR0RhdGEobV90b1BvaW50cy5nZXQoKSwg
dG9TdHJpbmcpKQorICAgICAgICBtX2Zyb21Qb2ludHMuY2xlYXIoKTsKKyAgICAgICAgaWYgKHBv
aW50c0xpc3RGcm9tU1ZHRGF0YShtX2Zyb21Qb2ludHMsIGZyb21TdHJpbmcpKSB7CisgICAgICAg
ICAgICBtX3RvUG9pbnRzLmNsZWFyKCk7CisgICAgICAgICAgICBpZiAocG9pbnRzTGlzdEZyb21T
VkdEYXRhKG1fdG9Qb2ludHMsIHRvU3RyaW5nKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQotICAgICAgICBtX2Zyb21Qb2ludHMuY2xlYXIoKTsKLSAgICAgICAgbV90
b1BvaW50cy5jbGVhcigpOwogICAgIH0KICAgICBtX2Zyb21TdHJpbmcgPSBmcm9tU3RyaW5nOwog
ICAgIG1fdG9TdHJpbmcgPSB0b1N0cmluZzsKQEAgLTI5OSwxMiArMjk3LDkgQEAgdm9pZCBTVkdB
bmltYXRlRWxlbWVudDo6YXBwbHlSZXN1bHRzVG9UYQogICAgICAgICAgICAgU1ZHUGF0aFBhcnNl
ckZhY3RvcnkqIGZhY3RvcnkgPSBTVkdQYXRoUGFyc2VyRmFjdG9yeTo6c2VsZigpOwogICAgICAg
ICAgICAgZmFjdG9yeS0+YnVpbGRTdHJpbmdGcm9tQnl0ZVN0cmVhbShtX2FuaW1hdGVkUGF0aFBv
aW50ZXIsIHZhbHVlVG9BcHBseSwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIH0KLSAgICB9
IGVsc2UgaWYgKG1fcHJvcGVydHlUeXBlID09IFBvaW50c1Byb3BlcnR5KSB7Ci0gICAgICAgIGlm
ICghbV9hbmltYXRlZFBvaW50cyB8fCAhbV9hbmltYXRlZFBvaW50cy0+bnVtYmVyT2ZJdGVtcygp
KQotICAgICAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFN0cmluZzsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFBvaW50cy0+dmFsdWVB
c1N0cmluZygpOwotICAgIH0gZWxzZQorICAgIH0gZWxzZSBpZiAobV9wcm9wZXJ0eVR5cGUgPT0g
UG9pbnRzUHJvcGVydHkpCisgICAgICAgIHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0ZWRQb2ludHMu
aXNFbXB0eSgpID8gbV9hbmltYXRlZFN0cmluZyA6IG1fYW5pbWF0ZWRQb2ludHMudmFsdWVBc1N0
cmluZygpOworICAgIGVsc2UKICAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFN0cmlu
ZzsKICAgICAKICAgICBzZXRUYXJnZXRBdHRyaWJ1dGVBbmltYXRlZFZhbHVlKHZhbHVlVG9BcHBs
eSk7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgJKHJldmlzaW9uIDcxMzM4KQorKysgV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTIgKzI3
LDEyIEBACiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJTVkdBbmltYXRpb25FbGVtZW50
LmgiCiAjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0uaCIKKyNpbmNsdWRlICJTVkdQb2ludExp
c3QuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgIGNsYXNzIFNWR1BhdGhTZWdMaXN0OwotICAgIGNsYXNzIFNWR1BvaW50TGlzdDsKIAogICAg
IGNsYXNzIFNWR0FuaW1hdGVFbGVtZW50IDogcHVibGljIFNWR0FuaW1hdGlvbkVsZW1lbnQgewog
ICAgIHB1YmxpYzoKQEAgLTY5LDkgKzY5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBPd25QdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IG1fdG9QYXRoOwogICAgICAgICBPd25QdHI8U1ZH
UGF0aEJ5dGVTdHJlYW0+IG1fYW5pbWF0ZWRQYXRoOwogICAgICAgICBTVkdQYXRoQnl0ZVN0cmVh
bSogbV9hbmltYXRlZFBhdGhQb2ludGVyOwotICAgICAgICBSZWZQdHI8U1ZHUG9pbnRMaXN0PiBt
X2Zyb21Qb2ludHM7Ci0gICAgICAgIFJlZlB0cjxTVkdQb2ludExpc3Q+IG1fdG9Qb2ludHM7Ci0g
ICAgICAgIFJlZlB0cjxTVkdQb2ludExpc3Q+IG1fYW5pbWF0ZWRQb2ludHM7CisgICAgICAgIFNW
R1BvaW50TGlzdCBtX2Zyb21Qb2ludHM7CisgICAgICAgIFNWR1BvaW50TGlzdCBtX3RvUG9pbnRz
OworICAgICAgICBTVkdQb2ludExpc3QgbV9hbmltYXRlZFBvaW50czsKICAgICB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuY3BwCShyZXZp
c2lvbiA3MTMzOCkKKysrIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSArMCwwIEBACi0vLyBUaGlzIGZpbGUgaXMgbm93IGludGVudGlvbmFsbHkg
ZW1wdHkuIERlbGV0ZSBpdCBhZnRlciByZW1vdmluZyBpdCBmcm9tIGFsbCB0aGUgYnVpbGQgc3lz
dGVtcyBhbmQgcHJvamVjdCBmaWxlcy4KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUG9p
bnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaAkocmV2
aXNpb24gNzEzMzgpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+Ci0gKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiBT
VkdBbmltYXRlZFBvaW50c19oCi0jZGVmaW5lIFNWR0FuaW1hdGVkUG9pbnRzX2gKLQotI2lmIEVO
QUJMRShTVkcpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIFNWR1BvaW50TGlz
dDsKLQotICAgIGNsYXNzIFNWR0FuaW1hdGVkUG9pbnRzIHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IHZpcnR1YWwgflNWR0FuaW1hdGVkUG9pbnRzKCkgeyB9Ci0KLSAgICAgICAgLy8gJ1NWR0FuaW1h
dGVkUG9pbnRzJyBmdW5jdGlvbnMKLSAgICAgICAgdmlydHVhbCBTVkdQb2ludExpc3QqIHBvaW50
cygpIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBTVkdQb2ludExpc3QqIGFuaW1hdGVkUG9p
bnRzKCkgY29uc3QgPSAwOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShTVkcpCi0jZW5kaWYKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkUG9pbnRzLmlkbAkocmV2aXNpb24gNzEzMzgpCisrKyBXZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFBvaW50cy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzMgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi1tb2R1bGUgc3ZnIHsK
LQotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHLCBPYmpDUHJvdG9jb2wsIE9taXRDb25z
dHJ1Y3Rvcl0gU1ZHQW5pbWF0ZWRQb2ludHMgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHUG9pbnRMaXN0ICAgcG9pbnRzOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9p
bnRMaXN0ICAgYW5pbWF0ZWRQb2ludHM7Ci0gICAgfTsKLQotfQpJbmRleDogV2ViQ29yZS9zdmcv
U1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXJz
ZXJVdGlsaXRpZXMuY3BwCShyZXZpc2lvbiA3MTMzOCkKKysrIFdlYkNvcmUvc3ZnL1NWR1BhcnNl
clV0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDkgKzI2LDcgQEAKICNpbmNsdWRl
ICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKLSNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlNWR1BvaW50TGlzdC5oIgogI2luY2x1ZGUgPHd0
Zi9BU0NJSUNUeXBlLmg+CiAKQEAgLTE2Nyw3ICsxNjUsNyBAQCBib29sIHBhcnNlTnVtYmVyT3B0
aW9uYWxOdW1iZXIoY29uc3QgU3RyCiAgICAgcmV0dXJuIGN1ciA9PSBlbmQ7CiB9CiAKLWJvb2wg
cG9pbnRzTGlzdEZyb21TVkdEYXRhKFNWR1BvaW50TGlzdCogcG9pbnRzTGlzdCwgY29uc3QgU3Ry
aW5nJiBwb2ludHMpCitib29sIHBvaW50c0xpc3RGcm9tU1ZHRGF0YShTVkdQb2ludExpc3QmIHBv
aW50c0xpc3QsIGNvbnN0IFN0cmluZyYgcG9pbnRzKQogewogICAgIGlmIChwb2ludHMuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE5NSw4ICsxOTMsNyBAQCBib29sIHBvaW50
c0xpc3RGcm9tU1ZHRGF0YShTVkdQb2ludExpc3QqCiAgICAgICAgIH0KICAgICAgICAgc2tpcE9w
dGlvbmFsU3BhY2VzKGN1ciwgZW5kKTsKIAotICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICAgICAgcG9pbnRzTGlzdC0+YXBwZW5kSXRlbShGbG9hdFBvaW50KHhQb3MsIHlQb3MpLCBl
Yyk7CisgICAgICAgIHBvaW50c0xpc3QuYXBwZW5kKEZsb2F0UG9pbnQoeFBvcywgeVBvcykpOwog
ICAgIH0KICAgICByZXR1cm4gY3VyID09IGVuZCAmJiAhZGVsaW1QYXJzZWQ7CiB9CkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaAkocmV2aXNpb24gNzEzMzgpCisrKyBXZWJDb3JlL3N2Zy9T
VkdQYXJzZXJVdGlsaXRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHJldHVybiBwdHIgPCBlbmQ7CiAgICAgfQogCi0gICAg
Ym9vbCBwb2ludHNMaXN0RnJvbVNWR0RhdGEoU1ZHUG9pbnRMaXN0KiBwb2ludHNMaXN0LCBjb25z
dCBTdHJpbmcmIHBvaW50cyk7CisgICAgYm9vbCBwb2ludHNMaXN0RnJvbVNWR0RhdGEoU1ZHUG9p
bnRMaXN0JiBwb2ludHNMaXN0LCBjb25zdCBTdHJpbmcmIHBvaW50cyk7CiAgICAgVmVjdG9yPFN0
cmluZz4gcGFyc2VEZWxpbWl0ZWRTdHJpbmcoY29uc3QgU3RyaW5nJiBpbnB1dCwgY29uc3QgY2hh
ciBzZXBlcmF0b3IpOwogICAgIGJvb2wgcGFyc2VLZXJuaW5nVW5pY29kZVN0cmluZyhjb25zdCBT
dHJpbmcmIGlucHV0LCBVbmljb2RlUmFuZ2VzJiwgSGFzaFNldDxTdHJpbmc+JiBzdHJpbmdMaXN0
KTsKICAgICBib29sIHBhcnNlR2x5cGhOYW1lKGNvbnN0IFN0cmluZyYgaW5wdXQsIEhhc2hTZXQ8
U3RyaW5nPiYgdmFsdWVzKTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BvaW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQb2ludC5pZGwJKHJldmlzaW9uIDcxMzM4KQorKysgV2Vi
Q29yZS9zdmcvU1ZHUG9pbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw5ICsyMiw5IEBACiAK
IG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkcsIFBPRFR5cGU9
RmxvYXRQb2ludF0gU1ZHUG9pbnQgewotICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeDsKLSAgICAg
ICAgYXR0cmlidXRlIGZsb2F0IHk7CisgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNW
R1BvaW50IHsKKyAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHg7
CisgICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB5OwogCiAgICAg
ICAgIFNWR1BvaW50IG1hdHJpeFRyYW5zZm9ybShpbiBTVkdNYXRyaXggbWF0cml4KTsKICAgICB9
OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCShyZXZpc2lvbiA3MTMzOCkKKysrIFdlYkNvcmUvc3Zn
L1NWR1BvaW50TGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDMyICsyMiwyNyBAQAogCiAj
aWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdQb2ludExpc3QuaCIKLSNpbmNsdWRlICJTVkdQ
YXRoU2VnTGlzdC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAK
LVNWR1BvaW50TGlzdDo6U1ZHUG9pbnRMaXN0KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUpCi0gICAgOiBTVkdQT0RMaXN0PEZsb2F0UG9pbnQ+KGF0dHJpYnV0ZU5hbWUpCi17Ci19
CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBTVkdQb2ludExpc3Q6OnZhbHVlQXNTdHJp
bmcoKSBjb25zdAogewotICAgIFN0cmluZyByZXN1bHQ7CisgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgZm9yICh1bnNpZ25lZCBpbnQg
aSA9IDA7IGkgPCBudW1iZXJPZkl0ZW1zKCk7ICsraSkgeworICAgIHVuc2lnbmVkIHNpemUgPSB0
aGlzLT5zaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewog
ICAgICAgICBpZiAoaSA+IDApCi0gICAgICAgICAgICByZXN1bHQgKz0gIiAiOwotCi0gICAgICAg
IEZsb2F0UG9pbnQgcG9pbnQgPSBnZXRJdGVtKGksIGVjKTsKLSAgICAgICAgQVNTRVJUKGVjID09
IDApOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiAiKTsgLy8gRklYTUU6IFNob3VsZG4n
dCB3ZSB1c2UgY29tbWFzIHRvIHNlcGVyYXRlPwogCi0gICAgICAgIHJlc3VsdCArPSBTdHJpbmc6
OmZvcm1hdCgiJS42bGcgJS42bGciLCBwb2ludC54KCksIHBvaW50LnkoKSk7CisgICAgICAgIGNv
bnN0IEZsb2F0UG9pbnQmIHBvaW50ID0gYXQoaSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1h
a2VTdHJpbmcoU3RyaW5nOjpudW1iZXIocG9pbnQueCgpKSwgJyAnLCBTdHJpbmc6Om51bWJlcihw
b2ludC55KCkpKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOwogfQogCiBmbG9hdCBpbmxpbmUgYWRqdXN0QW5pbWF0ZWRWYWx1ZShm
bG9hdCBmcm9tLCBmbG9hdCB0bywgZmxvYXQgcHJvZ3Jlc3MpCkBAIC01NSwyNyArNTAsMTkgQEAg
ZmxvYXQgaW5saW5lIGFkanVzdEFuaW1hdGVkVmFsdWUoZmxvYXQgZgogICAgIHJldHVybiAodG8g
LSBmcm9tKSAqIHByb2dyZXNzICsgZnJvbTsKIH0KIAotUGFzc1JlZlB0cjxTVkdQb2ludExpc3Q+
IFNWR1BvaW50TGlzdDo6Y3JlYXRlQW5pbWF0ZWQoY29uc3QgU1ZHUG9pbnRMaXN0KiBmcm9tTGlz
dCwgY29uc3QgU1ZHUG9pbnRMaXN0KiB0b0xpc3QsIGZsb2F0IHByb2dyZXNzKQorYm9vbCBTVkdQ
b2ludExpc3Q6OmNyZWF0ZUFuaW1hdGVkKGNvbnN0IFNWR1BvaW50TGlzdCYgZnJvbUxpc3QsIGNv
bnN0IFNWR1BvaW50TGlzdCYgdG9MaXN0LCBTVkdQb2ludExpc3QmIHJlc3VsdExpc3QsIGZsb2F0
IHByb2dyZXNzKQogewotICAgIHVuc2lnbmVkIGl0ZW1Db3VudCA9IGZyb21MaXN0LT5udW1iZXJP
Zkl0ZW1zKCk7Ci0gICAgaWYgKCFpdGVtQ291bnQgfHwgaXRlbUNvdW50ICE9IHRvTGlzdC0+bnVt
YmVyT2ZJdGVtcygpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBSZWZQdHI8U1ZHUG9pbnRMaXN0
PiByZXN1bHQgPSBjcmVhdGUoZnJvbUxpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpOwot
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHVuc2lnbmVkIGl0ZW1Db3VudCA9IGZyb21M
aXN0LnNpemUoKTsKKyAgICBpZiAoIWl0ZW1Db3VudCB8fCBpdGVtQ291bnQgIT0gdG9MaXN0LnNp
emUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4g
PCBpdGVtQ291bnQ7ICsrbikgewotICAgICAgICBGbG9hdFBvaW50IGZyb20gPSBmcm9tTGlzdC0+
Z2V0SXRlbShuLCBlYyk7Ci0gICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAwOwot
ICAgICAgICBGbG9hdFBvaW50IHRvID0gdG9MaXN0LT5nZXRJdGVtKG4sIGVjKTsKLSAgICAgICAg
aWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQm
IGZyb20gPSBmcm9tTGlzdC5hdChuKTsKKyAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgdG8gPSB0
b0xpc3QuYXQobik7CiAgICAgICAgIEZsb2F0UG9pbnQgc2VnbWVudCA9IEZsb2F0UG9pbnQoYWRq
dXN0QW5pbWF0ZWRWYWx1ZShmcm9tLngoKSwgdG8ueCgpLCBwcm9ncmVzcyksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRqdXN0QW5pbWF0ZWRWYWx1ZShmcm9tLnko
KSwgdG8ueSgpLCBwcm9ncmVzcykpOwotICAgICAgICByZXN1bHQtPmFwcGVuZEl0ZW0oc2VnbWVu
dCwgZWMpOwotICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmVzdWx0TGlzdC5hcHBlbmQoc2VnbWVudCk7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQucmVs
ZWFzZSgpOworICAgIHJldHVybiB0cnVlOwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQ
b2ludExpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAkocmV2
aXNpb24gNzEzMzgpCisrKyBXZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMjIsMjQgKzIyLDIyIEBACiAjZGVmaW5lIFNWR1BvaW50TGlzdF9oCiAKICNpZiBFTkFC
TEUoU1ZHKQotI2luY2x1ZGUgIlNWR0xpc3QuaCIKLSNpbmNsdWRlICJGbG9hdFBvaW50LmgiCi0j
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNs
YXNzIFNWR1BvaW50TGlzdCA6IHB1YmxpYyBTVkdQT0RMaXN0PEZsb2F0UG9pbnQ+IHsKLSAgICBw
dWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BvaW50TGlzdD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
VkdQb2ludExpc3QoYXR0cmlidXRlTmFtZSkpOyB9CitjbGFzcyBGbG9hdFBvaW50OwogCi0gICAg
ICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CitjbGFzcyBTVkdQb2ludExpc3QgOiBw
dWJsaWMgVmVjdG9yPEZsb2F0UG9pbnQ+IHsKK3B1YmxpYzoKKyAgICBTVkdQb2ludExpc3QoKSB7
IH0KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQb2ludExpc3Q+IGNyZWF0ZUFuaW1h
dGVkKGNvbnN0IFNWR1BvaW50TGlzdCogZnJvbUxpc3QsIGNvbnN0IFNWR1BvaW50TGlzdCogdG9M
aXN0LCBmbG9hdCBwcm9ncmVzcyk7CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdDsK
IAotICAgIHByaXZhdGU6Ci0gICAgICAgIFNWR1BvaW50TGlzdChjb25zdCBRdWFsaWZpZWROYW1l
Jik7Ci0gICAgfTsKKyAgICBzdGF0aWMgYm9vbCBjcmVhdGVBbmltYXRlZChjb25zdCBTVkdQb2lu
dExpc3QmIGZyb21MaXN0LCBjb25zdCBTVkdQb2ludExpc3QmIHRvTGlzdCwgU1ZHUG9pbnRMaXN0
JiByZXN1bHRMaXN0LCBmbG9hdCBwcm9ncmVzcyk7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKHJldmlzaW9uIDcxMzM4KQorKysgV2Vi
Q29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwyOSArMzks
MTggQEAgU1ZHUG9seUVsZW1lbnQ6OlNWR1BvbHlFbGVtZW50KGNvbnN0IFF1YQogewogfQogCi1T
VkdQb2ludExpc3QqIFNWR1BvbHlFbGVtZW50Ojpwb2ludHMoKSBjb25zdAotewotICAgIGlmICgh
bV9wb2ludHMpCi0gICAgICAgIG1fcG9pbnRzID0gU1ZHUG9pbnRMaXN0OjpjcmVhdGUoU1ZHTmFt
ZXM6OnBvaW50c0F0dHIpOwotCi0gICAgcmV0dXJuIG1fcG9pbnRzLmdldCgpOwotfQotCi1TVkdQ
b2ludExpc3QqIFNWR1BvbHlFbGVtZW50OjphbmltYXRlZFBvaW50cygpIGNvbnN0Ci17Ci0gICAg
Ly8gRklYTUUhCi0gICAgcmV0dXJuIDA7Ci19Ci0KIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIHZhbHVlID0gYXR0ci0+dmFsdWUoKTsKICAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05h
bWVzOjpwb2ludHNBdHRyKSB7Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAg
ICBwb2ludHMoKS0+Y2xlYXIoZWMpOwotCi0gICAgICAgIGlmICghcG9pbnRzTGlzdEZyb21TVkdE
YXRhKHBvaW50cygpLCB2YWx1ZSkpCisgICAgICAgIFNWR1BvaW50TGlzdCBuZXdMaXN0OworICAg
ICAgICBpZiAoIXBvaW50c0xpc3RGcm9tU1ZHRGF0YShuZXdMaXN0LCB2YWx1ZSkpCiAgICAgICAg
ICAgICBkb2N1bWVudCgpLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnJlcG9ydEVycm9yKCJQcm9i
bGVtIHBhcnNpbmcgcG9pbnRzPVwiIiArIHZhbHVlICsgIlwiIik7CisKKyAgICAgICAgaWYgKFNW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3Q+KiBsaXN0ID0gbV9hbmlt
YXRhYmxlUG9pbnRzTGlzdC5nZXQoKSkKKyAgICAgICAgICAgIGxpc3QtPmRldGFjaExpc3RXcmFw
cGVycyhuZXdMaXN0LnNpemUoKSk7CisKKyAgICAgICAgbV9wb2ludHMudmFsdWUgPSBuZXdMaXN0
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChTVkdUZXN0czo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoYXR0cikpCiAgICAgICAgICAgICByZXR1cm47CkBAIC03NywxMCArNjYsNiBAQCB2b2lkIFNW
R1BvbHlFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkCiB7CiAgICAgU1ZHU3R5bGVkVHJhbnNm
b3JtYWJsZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogCi0gICAgLy8g
VGhlIHBvaW50cyBwcm9wZXJ0eSBpcyBub3QgYSByZWd1bGFyIFNWR0FuaW1hdGVkUHJvcGVydHks
IHN0aWxsIHdlIHVzZSB0aGUgc2FtZSBTVkc8LT5YTUwgRE9NIHN5bmNocm9uaXphdGlvbiBmcmFt
ZXdvcmsuCi0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpwb2ludHNBdHRyKQotICAgICAg
ICBpbnZhbGlkYXRlU1ZHQXR0cmlidXRlcygpOwotCiAgICAgUmVuZGVyU1ZHUGF0aCogcmVuZGVy
ZXIgPSBzdGF0aWNfY2FzdDxSZW5kZXJTVkdQYXRoKj4odGhpcy0+cmVuZGVyZXIoKSk7CiAgICAg
aWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwpAQCAtMTA5LDE0ICs5NCw0NCBAQCB2b2lk
IFNWR1BvbHlFbGVtZW50OjpzeW5jaHJvbml6ZVByb3BlcnR5CiAKICAgICBpZiAoYXR0ck5hbWUg
PT0gYW55UU5hbWUoKSkgewogICAgICAgICBzeW5jaHJvbml6ZUV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQoKTsKLSAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVN5bmNocm9uaXplcjx0cnVlPjo6
c3luY2hyb25pemUodGhpcywgU1ZHTmFtZXM6OnBvaW50c0F0dHIsIHBvaW50cygpLT52YWx1ZUFz
U3RyaW5nKCkpOworICAgICAgICBzeW5jaHJvbml6ZVBvaW50cygpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmlzS25vd25B
dHRyaWJ1dGUoYXR0ck5hbWUpKQogICAgICAgICBzeW5jaHJvbml6ZUV4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQoKTsKICAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6cG9pbnRzQXR0
cikKLSAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVN5bmNocm9uaXplcjx0cnVlPjo6c3luY2hy
b25pemUodGhpcywgYXR0ck5hbWUsIHBvaW50cygpLT52YWx1ZUFzU3RyaW5nKCkpOworICAgICAg
ICBzeW5jaHJvbml6ZVBvaW50cygpOworfQorCit2b2lkIFNWR1BvbHlFbGVtZW50OjpzeW5jaHJv
bml6ZVBvaW50cygpCit7CisgICAgaWYgKCFtX3BvaW50cy5zaG91bGRTeW5jaHJvbml6ZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVN5bmNocm9uaXplcjx0cnVl
Pjo6c3luY2hyb25pemUodGhpcywgU1ZHTmFtZXM6OnBvaW50c0F0dHIsIG1fcG9pbnRzLnZhbHVl
LnZhbHVlQXNTdHJpbmcoKSk7Cit9CisKK1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRM
aXN0PiogU1ZHUG9seUVsZW1lbnQ6OnBvaW50cygpCit7CisgICAgaWYgKCFtX2FuaW1hdGFibGVQ
b2ludHNMaXN0KSB7CisgICAgICAgIG1fcG9pbnRzLnNob3VsZFN5bmNocm9uaXplID0gdHJ1ZTsK
KyAgICAgICAgbV9hbmltYXRhYmxlUG9pbnRzTGlzdCA9IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxv
b2t1cE9yQ3JlYXRlV3JhcHBlcjxTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9p
bnRMaXN0PiAsIFNWR1BvaW50TGlzdD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh0aGlzLCBTVkdOYW1lczo6cG9pbnRzQXR0ciwgU1ZHTmFtZXM6OnBvaW50c0F0dHIubG9jYWxO
YW1lKCksIG1fcG9pbnRzLnZhbHVlKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
U1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3Q+Kj4obV9hbmltYXRhYmxlUG9pbnRz
TGlzdC0+YmFzZVZhbCgpKTsKK30KKworU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQb2ludExp
c3Q+KiBTVkdQb2x5RWxlbWVudDo6YW5pbWF0ZWRQb2ludHMoKQoreworICAgIGlmICghbV9hbmlt
YXRhYmxlUG9pbnRzTGlzdCkgeworICAgICAgICBtX3BvaW50cy5zaG91bGRTeW5jaHJvbml6ZSA9
IHRydWU7CisgICAgICAgIG1fYW5pbWF0YWJsZVBvaW50c0xpc3QgPSBTVkdBbmltYXRlZFByb3Bl
cnR5Ojpsb29rdXBPckNyZWF0ZVdyYXBwZXI8U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
PFNWR1BvaW50TGlzdD4gLCBTVkdQb2ludExpc3Q+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAodGhpcywgU1ZHTmFtZXM6OnBvaW50c0F0dHIsIFNWR05hbWVzOjpwb2ludHNBdHRy
LmxvY2FsTmFtZSgpLCBtX3BvaW50cy52YWx1ZSk7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0Pio+KG1fYW5pbWF0YWJs
ZVBvaW50c0xpc3QtPmFuaW1WYWwoKSk7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1Bv
bHlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuaAko
cmV2aXNpb24gNzEzMzgpCisrKyBXZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMiw0MSArMjIsNDYgQEAKICNkZWZpbmUgU1ZHUG9seUVsZW1lbnRfaAogCiAj
aWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdBbmltYXRlZFBvaW50cy5oIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlLmgiCisjaW5jbHVkZSAiU1ZH
UG9pbnRMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJTVkdUZXN0cy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFz
cyBTVkdQb2x5RWxlbWVudCA6ICBwdWJsaWMgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1Rlc3RzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdMYW5nU3BhY2UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0FuaW1hdGVkUG9pbnRzIHsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIHZpcnR1YWwgU1ZHUG9pbnRMaXN0KiBwb2ludHMoKSBjb25zdDsKLSAgICAg
ICAgdmlydHVhbCBTVkdQb2ludExpc3QqIGFuaW1hdGVkUG9pbnRzKCkgY29uc3Q7Ci0KLSAgICBw
cm90ZWN0ZWQ6Ci0gICAgICAgIFNWR1BvbHlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29sIGlzVmFsaWQo
KSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9Ci0KLSAgICAgICAgdmlydHVh
bCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOyAKLSAgICAgICAgdmlydHVh
bCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgICAg
ICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVQcm9wZXJ0eShjb25zdCBRdWFsaWZpZWROYW1lJik7
CitjbGFzcyBTVkdQb2x5RWxlbWVudCA6IHB1YmxpYyBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxl
bWVudAorICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZHVGVzdHMKKyAgICAgICAgICAg
ICAgICAgICAgICwgcHVibGljIFNWR0xhbmdTcGFjZQorICAgICAgICAgICAgICAgICAgICAgLCBw
dWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CitwdWJsaWM6CisgICAgU1ZHTGlz
dFByb3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3Q+KiBwb2ludHMoKTsKKyAgICBTVkdMaXN0UHJv
cGVydHlUZWFyT2ZmPFNWR1BvaW50TGlzdD4qIGFuaW1hdGVkUG9pbnRzKCk7CiAKLSAgICAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzTWFya2VycygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAg
ICBTVkdQb2ludExpc3QmIHBvaW50TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9pbnRzLnZhbHVl
OyB9CiAKLSAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBE
RUNMQVJFX0FOSU1BVEVEX1NUQVRJQ19QUk9QRVJUWV9ORVcoU1ZHUG9seUVsZW1lbnQsIFNWR05h
bWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0ciwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKK3Byb3RlY3RlZDoKKyAgICBT
VkdQb2x5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgICAg
ICBtdXRhYmxlIFJlZlB0cjxTVkdQb2ludExpc3Q+IG1fcG9pbnRzOwotICAgIH07Citwcml2YXRl
OgorICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6Omlz
VmFsaWQoKTsgfQorCisgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSopOyAKKyAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJik7CisgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUHJvcGVydHkoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOworCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTWFya2VycygpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQKKyAgICBERUNMQVJFX0FOSU1BVEVEX1NUQVRJQ19QUk9QRVJUWV9ORVcoU1ZHUG9seUVsZW1l
bnQsIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0ciwgYm9vbCwgRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKworICAgIHZv
aWQgc3luY2hyb25pemVQb2ludHMoKTsKKworcHJvdGVjdGVkOgorICAgIG11dGFibGUgU1ZHU3lu
Y2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5PFNWR1BvaW50TGlzdD4gbV9wb2ludHM7CisgICAg
UmVmUHRyPFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3Q+ID4gbV9h
bmltYXRhYmxlUG9pbnRzTGlzdDsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmNwcAkocmV2aXNpb24gNzEzMzgpCisrKyBXZWJDb3Jl
L3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDYg
QEAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR1BvbHlnb25FbGVtZW50LmgiCiAKLSNp
bmNsdWRlICJTVkdQb2ludExpc3QuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbmxpbmUg
U1ZHUG9seWdvbkVsZW1lbnQ6OlNWR1BvbHlnb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTQxLDE1ICszOSwxNSBAQCB2b2lkIFNW
R1BvbHlnb25FbGVtZW50Ojp0b1BhdGhEYXRhKFBhdGgmCiB7CiAgICAgQVNTRVJUKHBhdGguaXNF
bXB0eSgpKTsKIAotICAgIGludCBsZW4gPSBwb2ludHMoKS0+bnVtYmVyT2ZJdGVtcygpOwotICAg
IGlmIChsZW4gPCAxKQorICAgIFNWR1BvaW50TGlzdCYgcG9pbnRzID0gcG9pbnRMaXN0KCk7Cisg
ICAgaWYgKHBvaW50cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKLSAgICBwYXRoLm1vdmVUbyhwb2ludHMoKS0+Z2V0SXRlbSgwLCBl
YykpOwogCi0gICAgZm9yIChpbnQgaSA9IDE7IGkgPCBsZW47ICsraSkKLSAgICAgICAgcGF0aC5h
ZGRMaW5lVG8ocG9pbnRzKCktPmdldEl0ZW0oaSwgZWMpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2lu
dHMuZmlyc3QoKSk7CisKKyAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICBwYXRoLmFkZExpbmVU
byhwb2ludHMuYXQoaSkpOwogCiAgICAgcGF0aC5jbG9zZVN1YnBhdGgoKTsKIH0KSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdQb2x5Z29uRWxlbWVudC5pZGwJKHJldmlzaW9uIDcxMzM4KQorKysgV2ViQ29yZS9zdmcv
U1ZHUG9seWdvbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCw5IEBAIG1v
ZHVsZSBzdmcgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNWR0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1N0eWxhYmxlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Ry
YW5zZm9ybWFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU1ZHQW5pbWF0ZWRQb2ludHMgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1RyYW5zZm9ybWFibGUgeworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHUG9pbnRMaXN0IHBvaW50czsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNWR1BvaW50TGlzdCBhbmltYXRlZFBvaW50czsKICAgICB9OwogCiB9CkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5jcHAJKHJldmlzaW9uIDcxMzM4KQorKysgV2ViQ29yZS9z
dmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsNiBA
QAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHUG9seWxpbmVFbGVtZW50LmgiCiAKLSNp
bmNsdWRlICJTVkdQb2ludExpc3QuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbmxpbmUg
U1ZHUG9seWxpbmVFbGVtZW50OjpTVkdQb2x5bGluZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtNDEsMTUgKzM5LDE1IEBAIHZvaWQg
U1ZHUG9seWxpbmVFbGVtZW50Ojp0b1BhdGhEYXRhKFBhdGgKIHsKICAgICBBU1NFUlQocGF0aC5p
c0VtcHR5KCkpOwogCi0gICAgaW50IGxlbiA9IHBvaW50cygpLT5udW1iZXJPZkl0ZW1zKCk7Ci0g
ICAgaWYgKGxlbiA8IDEpCisgICAgU1ZHUG9pbnRMaXN0JiBwb2ludHMgPSBwb2ludExpc3QoKTsK
KyAgICBpZiAocG9pbnRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7Ci0gICAgcGF0aC5tb3ZlVG8ocG9pbnRzKCktPmdldEl0ZW0oMCwgZWMp
KTsKKyAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3QoKSk7CiAKLSAgICBmb3IgKGludCBpID0g
MTsgaSA8IGxlbjsgKytpKQotICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMoKS0+Z2V0SXRl
bShpLCBlYykpOworICAgIHVuc2lnbmVkIHNpemUgPSBwb2ludHMuc2l6ZSgpOworICAgIGZvciAo
dW5zaWduZWQgaSA9IDE7IGkgPCBzaXplOyArK2kpCisgICAgICAgIHBhdGguYWRkTGluZVRvKHBv
aW50cy5hdChpKSk7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmlkbAko
cmV2aXNpb24gNzEzMzgpCisrKyBXZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCw5IEBAIG1vZHVsZSBzdmcgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNWR1N0eWxhYmxlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdBbmltYXRl
ZFBvaW50cyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNWR1RyYW5zZm9ybWFibGUgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
UG9pbnRMaXN0IHBvaW50czsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50TGlz
dCBhbmltYXRlZFBvaW50czsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTVkdF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAko
cmV2aXNpb24gNzEzMzgpCisrKyBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEzLDE0ICsyMTMsMTQgQEAgdm9pZCBTVkdTVkdFbGVtZW50OjpzZXRDdXJy
ZW50U2NhbGUoZmxvYQogICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFu
ZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKG9iamVjdCk7CiB9CiAKLUZsb2F0UG9pbnQgU1ZH
U1ZHRWxlbWVudDo6Y3VycmVudFRyYW5zbGF0ZSgpIGNvbnN0Cit2b2lkIFNWR1NWR0VsZW1lbnQ6
OnNldEN1cnJlbnRUcmFuc2xhdGUoY29uc3QgRmxvYXRQb2ludCYgdHJhbnNsYXRpb24pCiB7Ci0g
ICAgcmV0dXJuIG1fdHJhbnNsYXRpb247CisgICAgbV90cmFuc2xhdGlvbiA9IHRyYW5zbGF0aW9u
OworICAgIHVwZGF0ZUN1cnJlbnRUcmFuc2xhdGUoKTsKIH0KIAotdm9pZCBTVkdTVkdFbGVtZW50
OjpzZXRDdXJyZW50VHJhbnNsYXRlKGNvbnN0IEZsb2F0UG9pbnQgJnRyYW5zbGF0aW9uKQordm9p
ZCBTVkdTVkdFbGVtZW50Ojp1cGRhdGVDdXJyZW50VHJhbnNsYXRlKCkKIHsKLSAgICBtX3RyYW5z
bGF0aW9uID0gdHJhbnNsYXRpb247CiAgICAgaWYgKFJlbmRlck9iamVjdCogb2JqZWN0ID0gcmVu
ZGVyZXIoKSkKICAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCh0cnVlKTsKIApJbmRleDog
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R1NWR0VsZW1lbnQuaAkocmV2aXNpb24gNzEzMzgpCisrKyBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDkgKzc4LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgZmxvYXQgY3VycmVudFNjYWxlKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0
Q3VycmVudFNjYWxlKGZsb2F0IHNjYWxlKTsKIAotICAgICAgICBGbG9hdFBvaW50IGN1cnJlbnRU
cmFuc2xhdGUoKSBjb25zdDsKKyAgICAgICAgRmxvYXRQb2ludCYgY3VycmVudFRyYW5zbGF0ZSgp
IHsgcmV0dXJuIG1fdHJhbnNsYXRpb247IH0KICAgICAgICAgdm9pZCBzZXRDdXJyZW50VHJhbnNs
YXRlKGNvbnN0IEZsb2F0UG9pbnQmKTsKLSAgICAgICAgCisKKyAgICAgICAgLy8gT25seSB1c2Vk
IGZyb20gdGhlIGJpbmRpbmdzLgorICAgICAgICB2b2lkIHVwZGF0ZUN1cnJlbnRUcmFuc2xhdGUo
KTsKKwogICAgICAgICBTTUlMVGltZUNvbnRhaW5lciogdGltZUNvbnRhaW5lcigpIGNvbnN0IHsg
cmV0dXJuIG1fdGltZUNvbnRhaW5lci5nZXQoKTsgfQogICAgICAgICAKICAgICAgICAgdm9pZCBw
YXVzZUFuaW1hdGlvbnMoKTsKSW5kZXg6IFdlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gNzE0MDkpCisrKyBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIGNs
YXNzIFNWR1Byb3BlcnR5VGVhck9mZiA6IHB1YmxpYyBTVkdQcm8KIHB1YmxpYzoKICAgICB0eXBl
ZGVmIFNWR1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+IFNlbGY7CiAKLSAgICAvLyBVc2Vk
IGZvciBbU1ZHQW5pbWF0ZWRQcm9wZXJ0eV0gdHlwZXMgKGZvciBleGFtcGxlOiBTVkdBbmltYXRl
ZExlbmd0aDo6YmFzZVZhbCgpKS4KKyAgICAvLyBVc2VkIGZvciBjaGlsZCB0eXBlcyAoYmFzZVZh
bC9hbmltVmFsKSBvZiBhIFNWR0FuaW1hdGVkKiBwcm9wZXJ0eSAoZm9yIGV4YW1wbGU6IFNWR0Fu
aW1hdGVkTGVuZ3RoOjpiYXNlVmFsKCkpLgogICAgIC8vIEFsc28gdXNlZCBmb3IgbGlzdCB0ZWFy
IG9mZnMgKGZvciBleGFtcGxlOiB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApKS4KICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTZWxmPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQogICAgIHsKQEAg
LTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlbGYo
YW5pbWF0ZWRQcm9wZXJ0eSwgdmFsdWUpKTsKICAgICB9CiAKLSAgICAvLyBVc2VkIGZvciBub24t
YW5pbWF0ZWQgUE9EIHR5cGVzIChmb3IgZXhhbXBsZTogU1ZHTGVuZ3RoKS4KKyAgICAvLyBVc2Vk
IGZvciBub24tYW5pbWF0ZWQgUE9EIHR5cGVzIChmb3IgZXhhbXBsZTogU1ZHU1ZHRWxlbWVudDo6
Y3JlYXRlU1ZHTGVuZ3RoKCkpLgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlbGY+IGNyZWF0ZShj
b25zdCBQcm9wZXJ0eVR5cGUmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU2VsZihpbml0aWFsVmFsdWUpKTsKQEAgLTgyLDE0ICs4MiwxNCBAQCBwdWJs
aWM6CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IDA7CiAgICAgfQogCi0gICAgdm9pZCBj
b21taXRDaGFuZ2UoKQorICAgIHZpcnR1YWwgdm9pZCBjb21taXRDaGFuZ2UoKQogICAgIHsKICAg
ICAgICAgaWYgKCFtX2FuaW1hdGVkUHJvcGVydHkgfHwgbV92YWx1ZUlzQ29weSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5jb21taXRDaGFuZ2UoKTsK
ICAgICB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgU1ZHUHJvcGVydHlUZWFyT2ZmKFNW
R0FuaW1hdGVkUHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHksIFByb3BlcnR5VHlwZSYgdmFsdWUp
CiAgICAgICAgIDogbV9hbmltYXRlZFByb3BlcnR5KGFuaW1hdGVkUHJvcGVydHkpCiAgICAgICAg
ICwgbV92YWx1ZSgmdmFsdWUpCkluZGV4OiBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5VHJhaXRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eVRyYWl0cy5oCShyZXZpc2lvbiA3MTQwOSkKKysrIFdlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlUcmFpdHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIlNWR0xlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aExpc3QuaCIKICNpbmNsdWRl
ICJTVkdOdW1iZXJMaXN0LmgiCisjaW5jbHVkZSAiU1ZHUG9pbnRMaXN0LmgiCiAjaW5jbHVkZSAi
U1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIgogI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3QuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC0xMjMsNiArMTI0LDEyIEBAIHN0
cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdTdHJpbmdMaXN0PiAKICAgICB0eXBlZGVmIFN0cmlu
ZyBMaXN0SXRlbVR5cGU7CiB9OwogCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFp
dHM8U1ZHUG9pbnRMaXN0PiB7CisgICAgc3RhdGljIFNWR1BvaW50TGlzdCBpbml0aWFsVmFsdWUo
KSB7IHJldHVybiBTVkdQb2ludExpc3QoKTsgfQorICAgIHR5cGVkZWYgRmxvYXRQb2ludCBMaXN0
SXRlbVR5cGU7Cit9OworCiB9CiAKICNlbmRpZgpJbmRleDogV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90
aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBTVkdTdGF0aWNQ
cm9wZXJ0eVRlYXJPZmZfaAorI2RlZmluZSBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmZfaAorCisj
aWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRlYXJPZmYuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb250ZXh0RWxlbWVudCwgdHlwZW5h
bWUgUHJvcGVydHlUeXBlPgorY2xhc3MgU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmIDogcHVibGlj
IFNWR1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVm
IFNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZjxDb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlPiBT
ZWxmOworICAgIHR5cGVkZWYgdm9pZCAoQ29udGV4dEVsZW1lbnQ6OipVcGRhdGVNZXRob2QpKCk7
CisKKyAgICAvLyBVc2VkIGZvciBub24tYW5pbWF0ZWQgUE9EIHR5cGVzIHRoYXQgYXJlIG5vdCBh
c3NvY2lhdGVkIHdpdGggYSBTVkdBbmltYXRlZFByb3BlcnR5IG9iamVjdCwgbm9yIHdpdGggYSBY
TUwgRE9NIGF0dHJpYnV0ZQorICAgIC8vIChmb3IgZXhhbXBsZTogU1ZHU1ZHRWxlbWVudDo6Y3Vy
cmVudFRyYW5zbGF0ZSkuCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VsZj4gY3JlYXRlKENvbnRl
eHRFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZSwgVXBkYXRlTWV0
aG9kIHVwZGF0ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VsZihjb250ZXh0RWxlbWVudCwgdmFsdWUsIHVwZGF0
ZSkpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBjb21taXRDaGFuZ2UoKSB7IChtX2NvbnRl
eHRFbGVtZW50LmdldCgpLT4qbV91cGRhdGUpKCk7IH0KKworcHJpdmF0ZToKKyAgICBTVkdTdGF0
aWNQcm9wZXJ0eVRlYXJPZmYoQ29udGV4dEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0
eVR5cGUmIHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQorICAgICAgICA6IFNWR1Byb3BlcnR5
VGVhck9mZjxQcm9wZXJ0eVR5cGU+KDAsIHZhbHVlKQorICAgICAgICAsIG1fY29udGV4dEVsZW1l
bnQoY29udGV4dEVsZW1lbnQpCisgICAgICAgICwgbV91cGRhdGUodXBkYXRlKQorICAgIHsKKyAg
ICB9CisKKyAgICBSZWZQdHI8Q29udGV4dEVsZW1lbnQ+IG1fY29udGV4dEVsZW1lbnQ7CisgICAg
VXBkYXRlTWV0aG9kIG1fdXBkYXRlOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykK
KyNlbmRpZiAvLyBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmZfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73058</attachid>
            <date>2010-11-05 06:06:17 -0700</date>
            <delta_ts>2010-11-08 01:15:46 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>SVGPointListRewrite.diff</filename>
            <type>text/plain</type>
            <size>78597</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawkocmV2aXNpb24gNzE0MTAp
CisrKyBXZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCSh3b3JraW5nIGNvcHkp
CkBAIC01MDQsNyArNTA0LDYgQEAgR0VOICs9IFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRp
bmdzL1Y4U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmlu
ZGluZ3MvVjhTVkdBbmltYXRlZE51bWJlci5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRp
bmdzL1Y4U1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAotICAgICQoaW50ZXJtZWRpYXRlcykvYmlu
ZGluZ3MvVjhTVkdBbmltYXRlZFBvaW50cy5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRp
bmdzL1Y4U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggXAogICAgICQoaW50ZXJtZWRp
YXRlcykvYmluZGluZ3MvVjhTVkdBbmltYXRlZFJlY3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVz
KS9iaW5kaW5ncy9WOFNWR0FuaW1hdGVkU3RyaW5nLmggXApJbmRleDogV2ViQ29yZS9BbmRyb2lk
Lm1rCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQW5kcm9pZC5tawkocmV2aXNpb24gNzE0MTApCisr
KyBXZWJDb3JlL0FuZHJvaWQubWsJKHdvcmtpbmcgY29weSkKQEAgLTg2MSw3ICs4NjEsNiBAQCBM
T0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlzdmcvU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQuY3BwIFwKIAlzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwK
IAlzdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAgXAotCXN2Zy9TVkdBbmltYXRlZFBvaW50cy5j
cHAgXAogCXN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcCBcCiAJc3ZnL1NWR0NpcmNsZUVsZW1l
bnQuY3BwIFwKIAlzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlL0NN
YWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlz
aW9uIDcxNDEwKQorKysgV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
OTksNyArOTksNiBAQCBTRVQoV2ViQ29yZV9JRExfSU5DTFVERVMKIFNFVChXZWJDb3JlX0lETF9Q
VVJFX0ZJTEVTCiAgICAgc3ZnL0VsZW1lbnRUaW1lQ29udHJvbC5pZGwKICAgICBzdmcvU1ZHQW5p
bWF0ZWRQYXRoRGF0YS5pZGwKLSAgICBzdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaWRsCiAgICAgc3Zn
L1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaWRsCiAgICAgc3ZnL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5pZGwKICAgICBzdmcvU1ZHRml0VG9WaWV3Qm94LmlkbApA
QCAtMTc3NSw3ICsxNzc0LDYgQEAgSUYgKEVOQUJMRV9TVkcpCiAgICAgICAgIHN2Zy9TVkdBbmlt
YXRlTW90aW9uRWxlbWVudC5jcHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVt
ZW50LmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAKLSAgICAgICAgc3Zn
L1NWR0FuaW1hdGVkUG9pbnRzLmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5j
cHAKICAgICAgICAgc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCiAgICAgICAgIHN2Zy9TVkdDbGlw
UGF0aEVsZW1lbnQuY3BwCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA3MTQxMCkKKysr
IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMzMwLDcgKzMz
MCw2IEBAIERPTV9DTEFTU0VTID0gXAogICAgIFNWR0FuaW1hdGVkTnVtYmVyIFwKICAgICBTVkdB
bmltYXRlZE51bWJlckxpc3QgXAogICAgIFNWR0FuaW1hdGVkUGF0aERhdGEgXAotICAgIFNWR0Fu
aW1hdGVkUG9pbnRzIFwKICAgICBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gXAogICAg
IFNWR0FuaW1hdGVkUmVjdCBcCiAgICAgU1ZHQW5pbWF0ZWRTdHJpbmcgXApJbmRleDogV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShy
ZXZpc2lvbiA3MTQxMCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkK
QEAgLTMwNDksNiArMzA0OSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaCBcCiAJV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdQcm9wZXJ0eVRyYWl0cy5oIFwKIAlXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRp
Y0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBcCisJV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0
aWNQcm9wZXJ0eVRlYXJPZmYuaCBcCiAJV2ViQ29yZS9zdmcvUmFkaWFsR3JhZGllbnRBdHRyaWJ1
dGVzLmggXAogCVdlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuaCBcCkBAIC0zMDY4LDggKzMwNjksNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5oIFwKIAlXZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFBhdGhEYXRhLmNwcCBcCiAJV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5o
IFwKLQlXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5jcHAgXAotCVdlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUG9pbnRzLmggXAogCVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIFwKIAlXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuaCBcCiAJV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaCBcCkBAIC00MTc4LDcgKzQxNzcsNiBAQCB3ZWJjb3JlX2J1
aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTVkdBbmltYXRlZE51
bWJlckxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTVkdBbmltYXRlZFBhdGhEYXRh
LmggXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTVkdBbmltYXRlZFBvaW50cy5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpby5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU1ZHQW5pbWF0ZWRSZWN0LmNwcCBc
CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNv
cmUuZ3lwaQkocmV2aXNpb24gNzE0MTApCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2lu
ZyBjb3B5KQpAQCAtMzI2LDcgKzMyNiw2IEBACiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVk
TnVtYmVyLmlkbCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5pZGwn
LAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFBhdGhEYXRhLmlkbCcsCi0gICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmlkbCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGwnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRl
ZFJlY3QuaWRsJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsJywKQEAg
LTM5NzMsNiArMzk3Miw3IEBACiAgICAgICAgICAgICAnc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlUZWFyT2ZmLmgnLAogICAgICAgICAgICAgJ3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJh
aXRzLmgnLAogICAgICAgICAgICAgJ3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0
eVRlYXJPZmYuaCcsCisgICAgICAgICAgICAnc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVy
dHlUZWFyT2ZmLmgnLAogICAgICAgICAgICAgJ3N2Zy9Db2xvckRpc3RhbmNlLmNwcCcsCiAgICAg
ICAgICAgICAnc3ZnL0NvbG9yRGlzdGFuY2UuaCcsCiAgICAgICAgICAgICAnc3ZnL0RlcHJlY2F0
ZWRTVkdBbmltYXRlZFByb3BlcnR5LmgnLApAQCAtNDAwOCw4ICs0MDA4LDYgQEAKICAgICAgICAg
ICAgICdzdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdB
bmltYXRlZFBhdGhEYXRhLmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkUGF0aERh
dGEuaCcsCi0gICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmNwcCcsCi0gICAgICAg
ICAgICAnc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVk
UmVjdC5oJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaCcsCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUub3JkZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CShyZXZpc2lvbiA3MTQxMCkKKysrIFdlYkNvcmUvV2ViQ29yZS5vcmRlcgkod29ya2luZyBjb3B5
KQpAQCAtMjY0OTksNyArMjY0OTksNiBAQCBfX1pON1dlYkNvcmVMMTZ0cmFuc2Zvcm1MaXN0Rm9y
RVBOU18xMFNWCiBfX1pON1dlYkNvcmVMMTlwb2x5bGluZUNvbnN0cnVjdG9yRVJLTlNfMTNRdWFs
aWZpZWROYW1lRVBOU184RG9jdW1lbnRFYgogX19aTjdXZWJDb3JlMThTVkdQb2x5bGluZUVsZW1l
bnRDMUVSS05TXzEzUXVhbGlmaWVkTmFtZUVQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlMTRT
VkdQb2x5RWxlbWVudEMyRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFCi1fX1pO
N1dlYkNvcmUxN1NWR0FuaW1hdGVkUG9pbnRzQzJFdgogX19aTjdXZWJDb3JlMTRTVkdQb2x5RWxl
bWVudDE5c3ZnQXR0cmlidXRlQ2hhbmdlZEVSS05TXzEzUXVhbGlmaWVkTmFtZUUKIF9fWk43V2Vi
Q29yZTE0U1ZHUG9seUVsZW1lbnQyMHBhcnNlTWFwcGVkQXR0cmlidXRlRVBOU18xNU1hcHBlZEF0
dHJpYnV0ZUUKIF9fWk5LN1dlYkNvcmUxNFNWR1BvbHlFbGVtZW50NnBvaW50c0V2CkBAIC0yNjY1
NSw3ICsyNjY1NCw2IEBAIF9fWk43V2ViQ29yZTE4U1ZHUG9seWxpbmVFbGVtZW50RDBFdgogX19a
TjdXZWJDb3JlMTRTVkdQb2x5RWxlbWVudEQyRXYKIF9fWk43V2ViQ29yZTEyU1ZHUG9pbnRMaXN0
RDBFdgogX19aTjNXVEY2VmVjdG9ySU5TXzZSZWZQdHJJTjdXZWJDb3JlMTRTVkdQT0RMaXN0SXRl
bUlOUzJfMTBGbG9hdFBvaW50RUVFRUVMbTBFRTZzaHJpbmtFbQotX19aTjdXZWJDb3JlMTdTVkdB
bmltYXRlZFBvaW50c0QyRXYKIF9fWlRobjhfTjdXZWJDb3JlMTdTVkdQb2x5Z29uRWxlbWVudEQw
RXYKIF9fWk43V2ViQ29yZTE3U1ZHUG9seWdvbkVsZW1lbnREMEV2CiBfX1pUaG44X043V2ViQ29y
ZTE1U1ZHSW1hZ2VFbGVtZW50RDBFdgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA3MTQxMCkKKysrIFdlYkNvcmUv
V2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTIzNzUsNiArMjM3NSw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oIFwKICAgICBzdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oIFwKICAgICBzdmcvcHJvcGVydGllcy9TVkdT
dGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmggXAorICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRp
Y1Byb3BlcnR5VGVhck9mZi5oIFwKICAgICBzdmcvU1ZHQUVsZW1lbnQuaCBcCiAgICAgc3ZnL1NW
R0FsdEdseXBoRWxlbWVudC5oIFwKICAgICBzdmcvU1ZHQW5nbGUuaCBcCkBAIC0yMzg4LDcgKzIz
ODksNiBAQCBIRUFERVJTICs9IFwKICAgICBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuaCBcCiAgICAg
c3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0
YS5oIFwKLSAgICBzdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpby5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZWRSZWN0LmggXAogICAg
IHN2Zy9TVkdBbmltYXRlZFN0cmluZy5oIFwKQEAgLTM0MDMsNyArMzQwMyw2IEBAIGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICBzdmcvU1ZHQW5nbGUuY3BwIFwKICAg
ICAgICAgc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKICAgICAgICAgc3ZnL1NWR0Fu
aW1hdGVkUGF0aERhdGEuY3BwIFwKLSAgICAgICAgc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmNwcCBc
CiAgICAgICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAgXAogICAgICAgICBzdmcvU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQuY3BwIFwKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1F
bGVtZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJl
dmlzaW9uIDcxNDEwKQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagko
d29ya2luZyBjb3B5KQpAQCAtNjE3OTIsMTAgKzYxNzkyLDYgQEAKIAkJCQk+DQogCQkJPC9GaWxl
Pg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0FuaW1hdGVkUG9pbnRz
LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxzdmdcU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiDQogCQkJCT4NCiAJCQk8L0Zp
bGU+DQpAQCAtNjI4NzgsNiArNjI4NzQsMTAgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdc
cHJvcGVydGllc1xTVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgiDQogCQkJCQk+DQogCQkJ
CTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXHByb3BlcnRp
ZXNcU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCiAJ
CQk8L0ZpbHRlcj4NCiAJCTwvRmlsdGVyPg0KIAkJPEZpbHRlcg0KSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3MTQxMCkKKysrIFdlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC03
Myw2ICs3Myw3IEBACiAJCTA4MTA3NjQ0MTI4Mjg1NTYwMDdDNjNCQSAvKiBTVkdMaXN0UHJvcGVy
dHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MTA3
NjQzMTI4Mjg1NTYwMDdDNjNCQSAvKiBTVkdMaXN0UHJvcGVydHkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwODEwOTNEQjEyNTVGMEU3MDBFRDlE
MjkgLyogU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MTA5M0Q5MTI1NUYwRTcwMEVEOUQyOSAv
KiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwICovOyB9OwogCQkwODEwOTNEQzEy
NTVGMEU3MDBFRDlEMjkgLyogU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODEwOTNEQTEyNTVGMEU3
MDBFRDlEMjkgLyogU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmggKi87IH07CisJCTA4
MTNBNEVBMTI4NDEzMjYwMDk5MjUxMSAvKiBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MTNBNEU5MTI4NDEz
MjYwMDk5MjUxMSAvKiBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwODE2NjhEMzEyNTYwM0JGMDA2RjI1
REUgLyogU1ZHVGV4dENodW5rQnVpbGRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODE2NjhEMTEyNTYwM0JGMDA2RjI1REUgLyogU1ZHVGV4dENo
dW5rQnVpbGRlci5jcHAgKi87IH07CiAJCTA4MTY2OEQ0MTI1NjAzQkYwMDZGMjVERSAvKiBTVkdU
ZXh0Q2h1bmtCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwODE2NjhEMjEyNTYwM0JGMDA2RjI1REUgLyogU1ZHVGV4dENodW5rQnVpbGRlci5o
ICovOyB9OwogCQkwODE2NjhEOTEyNTYwM0Q1MDA2RjI1REUgLyogU1ZHVGV4dExheW91dEVuZ2lu
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODE2
NjhENzEyNTYwM0Q1MDA2RjI1REUgLyogU1ZHVGV4dExheW91dEVuZ2luZS5jcHAgKi87IH07CkBA
IC0yMTQ0LDcgKzIxNDUsNiBAQAogCQk4NUFDQUJCMDBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9j
dW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
QUNBQkFFMEE5Q0FGODAwMDY3MUU5MCAvKiBET01Eb2N1bWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTg1QUNBQkIxMEE5Q0FGODAwMDY3MUU5MCAvKiBET01E
b2N1bWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1QUNBQkFGMEE5Q0FGODAwMDY3MUU5MCAvKiBET01Eb2N1bWVudC5tbSAqLzsgfTsKIAkJODVB
Q0VGMEMwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUGF0aERhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNFRjA2MEFDRENDQ0Yw
MDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFBhdGhEYXRhLmggKi87IH07Ci0JCTg1QUNFRjBEMEFD
RENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFBvaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBQ0VGMDcwQUNEQ0NDRjAwMTIxNEZGIC8q
IERPTVNWR0FuaW1hdGVkUG9pbnRzLmggKi87IH07CiAJCTg1QUNFRjBFMEFDRENDQ0YwMDEyMTRG
RiAvKiBET01TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNFRjA4MEFDRENDQ0YwMDEyMTRGRiAv
KiBET01TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLzsgfTsKIAkJODVBQ0VGMEYw
QUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNFRjA5MEFD
RENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8ubW0gKi87
IH07CiAJCTg1QUNFRjEwMEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUFD
RUYwQTBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oICovOyB9
OwpAQCAtMzE2Nyw3ICszMTY3LDYgQEAKIAkJQTgwRTdFOUYwQTFBODNFMzAwN0ZCOEM1IC8qIEpT
SFRNTEJ1dHRvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MEU3RTk1MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxCdXR0b25FbGVtZW50
LmggKi87IH07CiAJCUE4MEU3RUEwMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxCdXR0b25FbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
MEU3RTk2MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxCdXR0b25FbGVtZW50LmNwcCAqLzsgfTsK
IAkJQTgwRjNBNTAwQ0NEQTJBMjAwMkREOTkwIC8qIERPTVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDJBQjNF
MEFENDM4QzAwMDM3ODU0MCAvKiBET01TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmggKi87IH07Ci0J
CUE4MEYzQTVBMENDREEyRUQwMDJERDk5MCAvKiBET01TVkdBbmltYXRlZFBvaW50cy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBQ0VGMDcwQUNEQ0ND
RjAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUG9pbnRzLmggKi87IH07CiAJCUE4MEYzQTY0MEND
REEyRkMwMDJERDk5MCAvKiBET01TVkdMaW5lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDOUEyRkQwQUQ3RTk0MjAwRkJGRjFFIC8qIERP
TVNWR0xpbmVFbGVtZW50LmggKi87IH07CiAJCUE4MEYzQTZCMENDREEzMEEwMDJERDk5MCAvKiBE
T01TVkdQYXRoU2VnTGluZXRvQWJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUNFMUEyRDBBREFDNDczMDAzQkJERUEgLyogRE9NU1ZHUGF0aFNlZ0xp
bmV0b0Ficy5oICovOyB9OwogCQlBODBGM0E3NTBDQ0RBMzE4MDAyREQ5OTAgLyogRE9NU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1Q0UxQTI1MEFEQUM0NzMwMDNCQkRFQSAvKiBET01TVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY0Ficy5oICovOyB9OwpAQCAtMzI3Niw3ICszMjc1LDYgQEAKIAkJQTgw
RjNCOTEwQ0NEQ0UyNDAwMkREOTkwIC8qIERPTVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oIGlu
IENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODUwMkFCMkMwQUQ0MzhDMDAwMzc4NTQwIC8qIERPTVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dC5oICovOyB9OwogCQlBODBGM0I5MjBDQ0RDRTI0MDAyREQ5OTAgLyogRE9NU1ZHUGFpbnRJbnRl
cm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThFNTQ0NDAwQ0E5RDFDMTAwOTdEMDlCIC8qIERPTVNWR1BhaW50SW50ZXJu
YWwuaCAqLzsgfTsKIAkJQTgwRjNCOTMwQ0NEQ0UyNDAwMkREOTkwIC8qIERPTVNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljQWJzSW50ZXJuYWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RTU0NDIwMENBOUQxQzEwMDk3RDA5
QiAvKiBET01TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Fic0ludGVybmFsLmggKi87IH07Ci0J
CUE4MEYzQjk0MENDRENFMjQwMDJERDk5MCAvKiBET01TVkdBbmltYXRlZFBvaW50cy5oIGluIENv
cHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVBQ0VGMDcwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUG9pbnRzLmggKi87IH07
CiAJCUE4MEYzQjk1MENDRENFMjQwMDJERDk5MCAvKiBET01TVkdQYXRoU2VnTGluZXRvQWJzLmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUNFMUEyRDBBREFDNDczMDAzQkJERUEgLyogRE9NU1ZHUGF0aFNlZ0xpbmV0b0Ficy5o
ICovOyB9OwogCQlBODBGM0I5NjBDQ0RDRTI0MDAyREQ5OTAgLyogRE9NU1ZHTnVtYmVySW50ZXJu
YWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4RTU0NDMzMENBOUQxQzEwMDk3RDA5QiAvKiBET01TVkdOdW1iZXJJbnRlcm5h
bC5oICovOyB9OwogCQlBODBGM0I5NzBDQ0RDRTI0MDAyREQ5OTAgLyogRE9NU1ZHQW5pbWF0ZWRB
bmdsZUludGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEU1NDRCRjBDQTlEMUMyMDA5N0QwOUIgLyogRE9NU1ZHQW5p
bWF0ZWRBbmdsZUludGVybmFsLmggKi87IH07CkBAIC0zOTY4LDggKzM5NjYsNiBAQAogCQlCMjIy
Nzk3QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc3RTQwRDAwQkYxRjAw
NzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCAqLzsgfTsKIAkJQjIyMjc5ODQwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc3RUUwRDAwQkYxRjAwNzFCNzgyIC8q
IFNWR0FuaW1hdGVkUGF0aERhdGEuY3BwICovOyB9OwogCQlCMjIyNzk4NTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjIyMjc3RUYwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVk
UGF0aERhdGEuaCAqLzsgfTsKLQkJQjIyMjc5ODcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVkUG9pbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyMjI3N0YxMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBvaW50cy5jcHAgKi87
IH07Ci0JCUIyMjI3OTg4MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBvaW50cy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc3RjIwRDAw
QkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUG9pbnRzLmggKi87IH07CiAJCUIyMjI3OThGMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzdGOTBEMDBCRjFGMDA3MUI3ODIgLyog
U1ZHQW5pbWF0ZUVsZW1lbnQuY3BwICovOyB9OwogCQlCMjIyNzk5MDBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyMjI3N0ZBMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVu
dC5oICovOyB9OwogCQlCMjIyNzk5MjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZU1vdGlv
bkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjIyMjc3RkMwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNw
cCAqLzsgfTsKQEAgLTU4MTMsNyArNTgwOSw2IEBACiAJCQkJQThGNDZBQUYwQ0IyMEE5RDAwM0E5
NjcwIC8qIERPTVNWR0FuaW1hdGVkTnVtYmVyTGlzdC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRl
cnMgKi8sCiAJCQkJQTgwRjNCNzAwQ0NEQ0UyNDAwMkREOTkwIC8qIERPTVNWR0FuaW1hdGVkTnVt
YmVyTGlzdEludGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQlBOEY0
NkE5MDBDQjIwQTlEMDAzQTk2NzAgLyogRE9NU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oIGluIENvcHkg
R2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJQTgwRjNCOTQwQ0NEQ0UyNDAwMkREOTkwIC8qIERP
TVNWR0FuaW1hdGVkUG9pbnRzLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQlB
OEY0NkIyRTBDQjIwQTlEMDAzQTk2NzAgLyogRE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQlBODBGM0I3RTBDQ0RDRTI0
MDAyREQ5OTAgLyogRE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvSW50ZXJuYWwuaCBp
biBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCUE4RjQ2QjFCMENCMjBBOUQwMDNBOTY3
MCAvKiBET01TVkdBbmltYXRlZFJlY3QuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLApA
QCAtNjExNiw2ICs2MTExLDcgQEAKIAkJMDgxMDc2NDMxMjgyODU1NjAwN0M2M0JBIC8qIFNWR0xp
c3RQcm9wZXJ0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdMaXN0UHJv
cGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgxMDkzRDkxMjU1RjBFNzAw
RUQ5RDI5IC8qIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODEwOTNEQTEyNTVGMEU3MDBFRDlE
MjkgLyogU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwODEzQTRFOTEyODQxMzI2MDA5OTI1MTEgLyogU1ZHU3Rh
dGljUHJvcGVydHlUZWFyT2ZmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
ODE2NjhEMTEyNTYwM0JGMDA2RjI1REUgLyogU1ZHVGV4dENodW5rQnVpbGRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdUZXh0Q2h1bmtCdWlsZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgxNjY4RDIxMjU2MDNCRjAwNkYyNURFIC8q
IFNWR1RleHRDaHVua0J1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U1ZHVGV4dENodW5rQnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODE2
NjhENzEyNTYwM0Q1MDA2RjI1REUgLyogU1ZHVGV4dExheW91dEVuZ2luZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdUZXh0TGF5b3V0RW5naW5lLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgyOTcsNyArODI5Myw2IEBACiAJCTg1QUNBQkFF
MEE5Q0FGODAwMDY3MUU5MCAvKiBET01Eb2N1bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODVBQ0FCQUYwQTlDQUY4MDAwNjcxRTkwIC8qIERPTURvY3VtZW50Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTURvY3VtZW50Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NUFDRUYwNjBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHQW5pbWF0
ZWRQYXRoRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHQW5p
bWF0ZWRQYXRoRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NUFDRUYwNzBB
Q0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0FuaW1hdGVkUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg1QUNFRjA4MEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERPTVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4NUFDRUYwOTBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODVBQ0VGMEEwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk4MzIs
OSArOTgyNyw2IEBACiAJCUIyMjI3N0VFMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBh
dGhEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmlt
YXRlZFBhdGhEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjIyMjc3RUYw
RDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUGF0aERhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQjIyMjc3RjAwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0
aERhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlZFBhdGhEYXRhLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjIyMjc3RjEwRDAwQkYxRjAwNzFCNzgy
IC8qIFNWR0FuaW1hdGVkUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTVkdBbmltYXRlZFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUIyMjI3N0YyMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBvaW50cy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQb2ludHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjIyMjc3RjMwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0Fu
aW1hdGVkUG9pbnRzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHQW5pbWF0ZWRQb2lu
dHMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjIyNzdGNDBEMDBCRjFGMDA3
MUI3ODIgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjIyMjc3RjUwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVkUmVjdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0FuaW1hdGVkUmVjdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMjI3N0Y2MEQwMEJGMUYwMDcxQjc4MiAv
KiBTVkdBbmltYXRlZFN0cmluZy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0FuaW1h
dGVkU3RyaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNzk0LDYgKzEx
Nzg2LDcgQEAKIAkJCQkwODhBMEUwMjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFy
T2ZmLmggKi8sCiAJCQkJMDg4QTBFMDMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VHJh
aXRzLmggKi8sCiAJCQkJMDg4MEY3MEQxMjgyQjQ2RDAwOTQ4NTA1IC8qIFNWR1N0YXRpY0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaCAqLywKKwkJCQkwODEzQTRFOTEyODQxMzI2MDA5OTI1MTEgLyogU1ZH
U3RhdGljUHJvcGVydHlUZWFyT2ZmLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHByb3BlcnRpZXM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTM1NDksNyArMTM1NDIsNiBAQAogCQkJ
CUE4RTU0NEIxMENBOUQxQzIwMDk3RDA5QiAvKiBET01TVkdBbmltYXRlZE51bWJlckxpc3RJbnRl
cm5hbC5oICovLAogCQkJCUE4RTU0NEIwMENBOUQxQzIwMDk3RDA5QiAvKiBET01TVkdBbmltYXRl
ZFBhdGhEYXRhLmggKi8sCiAJCQkJODVBQ0VGMDYwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0Fu
aW1hdGVkUGF0aERhdGEuaCAqLywKLQkJCQk4NUFDRUYwNzBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9N
U1ZHQW5pbWF0ZWRQb2ludHMuaCAqLywKIAkJCQk4NUFDRUYwODBBQ0RDQ0NGMDAxMjE0RkYgLyog
RE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggKi8sCiAJCQkJODVBQ0VGMDkwQUNE
Q0NDRjAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5tbSAqLywK
IAkJCQlBOEU1NDRBRDBDQTlEMUMyMDA5N0QwOUIgLyogRE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvSW50ZXJuYWwuaCAqLywKQEAgLTE2MDc4LDkgKzE2MDcwLDYgQEAKIAkJCQlCMjIy
NzdFRTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAgKi8sCiAJCQkJ
QjIyMjc3RUYwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuaCAqLywKIAkJ
CQlCMjIyNzdGMDBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGwgKi8s
Ci0JCQkJQjIyMjc3RjEwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUG9pbnRzLmNwcCAq
LywKLQkJCQlCMjIyNzdGMjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQb2ludHMuaCAq
LywKLQkJCQlCMjIyNzdGMzBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQb2ludHMuaWRs
ICovLAogCQkJCTA4RkUwQkM0MTI3RTJBQzEwMDBDNEZCNSAvKiBTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW8uaCAqLywKIAkJCQlCMjIyNzdGNDBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLywKIAkJCQkwOEM4NTlCRjEyNzQ1NzUzMDBB
NTcyOEQgLyogU1ZHQW5pbWF0ZWRSZWN0LmggKi8sCkBAIC0xNjYwOSw3ICsxNjU5OCw2IEBACiAJ
CUIyQTAxNTkxMEFGNkNENTMwMDZCQ0UwRSAvKiBncmFwaGljcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNkU2N0QyQTgxMjgwRThCRDAwODc1OEY3IC8q
IEV4dGVuc2lvbnMzRC5oICovLAogCQkJCUIyNzUzNTI5MEIwNTM4MTQwMDJDRTY0RiAvKiBjZyAq
LywKIAkJCQlCNTMyMEQ2ODEyMkEyNEU5MDAyRDE0NDAgLyogY29jb2EgKi8sCiAJCQkJQTc1RThC
N0YwRTFERTJCMDAwN0YyNDgxIC8qIGZpbHRlcnMgKi8sCkBAIC0xNjYyNiw2ICsxNjYxNCw3IEBA
CiAJCQkJQjI3NTM1MzkwQjA1MzgxNDAwMkNFNjRGIC8qIENvbG9yLmggKi8sCiAJCQkJOTM4MkRG
NTcxMEE4RDVDOTAwOTI1NjUyIC8qIENvbG9yU3BhY2UuaCAqLywKIAkJCQlBOENCNDEwMjBFODVC
OEE1MDAzMkM0RjAgLyogRGFzaEFycmF5LmggKi8sCisJCQkJNkU2N0QyQTgxMjgwRThCRDAwODc1
OEY3IC8qIEV4dGVuc2lvbnMzRC5oICovLAogCQkJCUIyNzUzNTNBMEIwNTM4MTQwMDJDRTY0RiAv
KiBGbG9hdFBvaW50LmNwcCAqLywKIAkJCQlCMjc1MzUzQjBCMDUzODE0MDAyQ0U2NEYgLyogRmxv
YXRQb2ludC5oICovLAogCQkJCUIyRTI3QzlEMEIwRjJCMDkwMEYxN0M3QiAvKiBGbG9hdFBvaW50
M0QuY3BwICovLApAQCAtMTg2MjQsNiArMTg2MTMsNyBAQAogCQkJCUQ4QjYxNTJGMTAzMjQ5NTEw
MEM4NTU0QSAvKiBDb29raWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTIwODgyMDlCRDQ1RTkw
MEYyMDM4RCAvKiBDb29raWVKYXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFNkZENDg4MEY2NzZF
NTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjhBNkE2RDUx
MjdCMzM4RDAwODY3M0JBIC8qIENvcnJlY3Rpb25QYW5lbEluZm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4MEU2RDA0MEExOTg5Q0EwMDdGQjhDNSAvKiBDb3VudGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzVFQjk3OTBFODIwNjkyMDBCMjU5NjUgLyogQ291bnRlckNvbnRlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNUVCOTUxMEU4MjA1NkIwMEIyNTk2NSAvKiBDb3VudGVyRGlyZWN0aXZl
cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xOTA2OCw4ICsxOTA1OCw2IEBACiAJCQkJQThFNTQ1QUYw
Q0E5RDFDMjAwOTdEMDlCIC8qIERPTVNWR0FuaW1hdGVkTnVtYmVyTGlzdEludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NUFDRUYwQzBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHQW5pbWF0
ZWRQYXRoRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFNTQ1QUUwQ0E5RDFDMjAwOTdEMDlC
IC8qIERPTVNWR0FuaW1hdGVkUGF0aERhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1QUNFRjBE
MEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFBvaW50cy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQTgwRjNBNUEwQ0NEQTJFRDAwMkREOTkwIC8qIERPTVNWR0FuaW1hdGVkUG9pbnRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NUFDRUYwRTBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUFDRUYxODBB
Q0RDRDFBMDAxMjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RTU0NUFCMENBOUQxQzIwMDk3RDA5QiAvKiBET01T
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xOTU1OCw2ICsxOTU0Niw4IEBACiAJCQkJQkM2MEQ4RjMwRDJBMTFFMDAwQjk5MThGIC8qIEV4
Y2VwdGlvbkJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUZCQ0YyMDlCQTE0M0IwMEUyMzBC
MSAvKiBFeGNlcHRpb25Db2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDhBRkRBNTBBRjU4MzYw
MDA4Q0M3MDAgLyogRXhjZXB0aW9uSGFuZGxlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTZFNjdE
MkE5MTI4MEU4QkQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTZFNjdEMkE3MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3NUU4Qjg5MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNzVFOEI4QjBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTc1RThCOEQwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9u
ZW50VHJhbnNmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjA4ODMsNyArMjA4NzMsNiBAQAogCQkJ
CTA4QjM1QjEzMTI3QjZBN0MwMDUzMTRERCAvKiBTVkdBbmltYXRlZE51bWJlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDhCMzVCMTcxMjdCNkE4ODAwNTMxNEREIC8qIFNWR0FuaW1hdGVkTnVtYmVy
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5ODUwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R0FuaW1hdGVkUGF0aERhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCUIyMjI3OTg4MEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdBbmltYXRlZFBvaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhGRTBC
QzUxMjdFMkFDMTAwMEM0RkI1IC8qIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMDUxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0FuaW1hdGVk
UHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEEwRTA2MTI2RUYxREIwMDk3OEY3QSAv
KiBTVkdBbmltYXRlZFByb3BlcnR5RGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjEw
MzYsNiArMjEwMjUsNyBAQAogCQkJCTA4REFCOUMzMTEwM0Q5QzEwMDNFN0FCQSAvKiBTVkdTaGFk
b3dUcmVlRWxlbWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QUZEMDEwMERBRjMzNTUwMEY1
RjU1QyAvKiBTVkdTTUlMRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4MEY3MEUxMjgy
QjQ2RDAwOTQ4NTA1IC8qIFNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTA4MTNBNEVBMTI4NDEzMjYwMDk5MjUxMSAvKiBTVkdTdGF0aWNQcm9wZXJ0eVRl
YXJPZmYuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUE5MEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdTdG9wRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBQUMwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1N0cmluZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUFGMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdTdHlsYWJsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTE4NSw2ICsy
MTE3NSw3IEBACiAJCQkJQTdEMjBGNkQxMDdGNDM4QjAwQTgwMzkyIC8qIFdlYkdMQWN0aXZlSW5m
by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlDN0I5QzkxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdM
QnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTRFOTFBRjEwRjdGQjMxMDBBMjc3OUMgLyog
V2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNGNkYxRUUxMjdG
NzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
OUM3QjlDRjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDlGRkJGM0YxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIuaCBp
biBIZWFkZXJzICovLApAQCAtMjEzMDksMTAgKzIxMzAwLDYgQEAKIAkJCQk5M0YxOTlFRDA4MjQ1
RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFCRTUx
MkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTdERDREODcwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICov
LAotCQkJCTZFNjdEMkE3MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuaCBp
biBIZWFkZXJzICovLAotCQkJCTZFNjdEMkE5MTI4MEU4QkQwMDg3NThGNyAvKiBFeHRlbnNpb25z
M0QuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJH
TENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjhBNkE2RDUxMjdCMzM4RDAwODY3
M0JBIC8qIENvcnJlY3Rpb25QYW5lbEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjEzNzIsNyAr
MjEzNTksNiBAQAogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSAxNDlDMjg0MzA4OTAyQjExMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhQcm9qZWN0ICJXZWJDb3JlIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0g
Ilhjb2RlIDIuNCI7Ci0JCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2Fu
bmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApA
QCAtMjIxOTksNiArMjIxODUsNyBAQAogCQkJCUJDNjBEOEYyMEQyQTExRTAwMEI5OTE4RiAvKiBF
eGNlcHRpb25CYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzODMxQjU3MEQwODdENjAwMEU1
Qzk4NCAvKiBFeGNlcHRpb25Db2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0OEFGREE2MEFG
NTgzNjAwMDhDQzcwMCAvKiBFeGNlcHRpb25IYW5kbGVycy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTZFNjdEMkE2MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRy
aXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8qIEZF
Q29tcG9uZW50VHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMzUxMSw3ICsyMzQ5OCw2
IEBACiAJCQkJQjIyMjc5NzYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuZ2xlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyMjI3OTc5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlQ29sb3JF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3OTg0MEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdBbmltYXRlZFBhdGhEYXRhLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUIyMjI3OTg3MEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBvaW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCMjIyNzk4RjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjIyMjc5OTIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3OTk0MEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIz
NzYzLDYgKzIzNzQ5LDcgQEAKIAkJCQlCQzZEQURGQTBBMTk2MDJCMDBFNUNEMTQgLyogV2ViRm9u
dENhY2hlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlDN0I5QzgxMDQyRDMyRjAwMDlENDQ3IC8q
IFdlYkdMQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNEU5MUFFMTBGN0ZCMzEwMEEy
Nzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkz
RjZGMUVEMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0OUM3QjlDRTEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk2RTQ3RTY2MDEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xH
ZXRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RkZCRjQwMTFDOTNFRTMwMDZBNzExOCAv
KiBXZWJHTExheWVyLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yMzg3OCw4ICsyMzg2NSw2IEBACiAJ
CQkJOTNGMTlCMDUwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29k
ZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdERDREODYwRkRGNEQ2RTAwRUNGOUE0IC8q
IFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNkU2N0QyQTYxMjgwRThBNDAwODc1
OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5M0Y2RjFF
RDEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NU1ZHLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTVNWRy5oCShyZXZpc2lvbiA3MTQxMCkKKysrIFdlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01TVkcuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNiBAQAog
I2ltcG9ydCA8V2ViQ29yZS9ET01TVkdBbmltYXRlZE51bWJlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9ET01TVkdBbmltYXRlZE51bWJlckxpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHQW5p
bWF0ZWRQYXRoRGF0YS5oPgotI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdBbmltYXRlZFBvaW50cy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9ET01TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHQW5pbWF0ZWRSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0RPTVNWR0FuaW1hdGVkU3RyaW5nLmg+CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvci5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvci5wbQkocmV2aXNpb24gNzE0MTApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbQkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBt
eSAlbnVtZXJpY1R5cGVIYXNoID0gKCJpbnQiID0+IDEsICJzaG9yCiBteSAlcHJpbWl0aXZlVHlw
ZUhhc2ggPSAoICJib29sZWFuIiA9PiAxLCAidm9pZCIgPT4gMSwgIkRhdGUiID0+IDEpOwogCiBt
eSAlcG9kVHlwZUhhc2ggPSAoIlNWR1RyYW5zZm9ybSIgPT4gMSk7Ci1teSAlcG9kVHlwZXNXaXRo
V3JpdGFibGVQcm9wZXJ0aWVzSGFzaCA9ICgiU1ZHTWF0cml4IiA9PiAxLCAiU1ZHUG9pbnQiID0+
IDEpOworbXkgJXBvZFR5cGVzV2l0aFdyaXRhYmxlUHJvcGVydGllc0hhc2ggPSAoIlNWR01hdHJp
eCIgPT4gMSk7CiBteSAlc3RyaW5nVHlwZUhhc2ggPSAoIkRPTVN0cmluZyIgPT4gMSwgIkF0b21p
Y1N0cmluZyIgPT4gMSk7CiAKIG15ICVub25Qb2ludGVyVHlwZUhhc2ggPSAoIkRPTVRpbWVTdGFt
cCIgPT4gMSwgIkNvbXBhcmVIb3ciID0+IDEsICJTVkdQYWludFR5cGUiID0+IDEpOwpAQCAtNzcs
MTcgKzc3LDIzIEBAIG15ICVzdmdBdHRyaWJ1dGVzSW5IVE1MSGFzaCA9ICgiY2xhc3MiID0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25tb3VzZXVwIiA9PiAxLCAib25yZXNpemUi
ID0+IDEsICJvbnNjcm9sbCIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
b251bmxvYWQiID0+IDEpOwogCi1teSAlc3ZnTmF0aXZlVHlwZSA9ICgKK215ICVzdmdUeXBlTmVl
ZGluZ1RlYXJPZmYgPSAoCiAgICAgIlNWR0FuZ2xlIiA9PiAiU1ZHUHJvcGVydHlUZWFyT2ZmPFNW
R0FuZ2xlPiIsCiAgICAgIlNWR0xlbmd0aCIgPT4gIlNWR1Byb3BlcnR5VGVhck9mZjxTVkdMZW5n
dGg+IiwKICAgICAiU1ZHTGVuZ3RoTGlzdCIgPT4gIlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZH
TGVuZ3RoTGlzdD4iLAogICAgICJTVkdOdW1iZXIiID0+ICJTVkdQcm9wZXJ0eVRlYXJPZmY8Zmxv
YXQ+IiwKICAgICAiU1ZHTnVtYmVyTGlzdCIgPT4gIlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZH
TnVtYmVyTGlzdD4iLAorICAgICJTVkdQb2ludCIgPT4gIlNWR1Byb3BlcnR5VGVhck9mZjxGbG9h
dFBvaW50PiIsCisgICAgIlNWR1BvaW50TGlzdCIgPT4gIlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8
U1ZHUG9pbnRMaXN0PiIsCiAgICAgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8iID0+ICJTVkdQcm9w
ZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4iLAogICAgICJTVkdSZWN0IiA9PiAi
U1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UmVjdD4iLAogICAgICJTVkdTdHJpbmdMaXN0IiA9PiAi
U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZjxTVkdTdHJpbmdMaXN0PiIKICk7CiAKK215ICVz
dmdUeXBlV2l0aFdyaXRhYmxlUHJvcGVydGllc05lZWRpbmdUZWFyT2ZmID0gKAorICAgICJTVkdQ
b2ludCIgPT4gMQorKTsKKwogIyBDYWNoZSBvZiBJREwgZmlsZSBwYXRobmFtZXMuCiBteSAkaWRs
RmlsZXM7CiAKQEAgLTM3Myw3ICszNzksMTYgQEAgc3ViIElzU1ZHVHlwZU5lZWRpbmdUZWFyT2Zm
CiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwogICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKLSAgICBy
ZXR1cm4gMSBpZiBleGlzdHMgJHN2Z05hdGl2ZVR5cGV7JHR5cGV9OworICAgIHJldHVybiAxIGlm
IGV4aXN0cyAkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmeyR0eXBlfTsKKyAgICByZXR1cm4gMDsKK30K
Kworc3ViIElzU1ZHVHlwZVdpdGhXcml0YWJsZVByb3BlcnRpZXNOZWVkaW5nVGVhck9mZgorewor
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgcmV0
dXJuIDEgaWYgJHN2Z1R5cGVXaXRoV3JpdGFibGVQcm9wZXJ0aWVzTmVlZGluZ1RlYXJPZmZ7JHR5
cGV9OwogICAgIHJldHVybiAwOwogfQogCkBAIC0zODIsNyArMzk3LDcgQEAgc3ViIEdldFNWR1R5
cGVOZWVkaW5nVGVhck9mZgogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKICAgICBteSAkdHlwZSA9
IHNoaWZ0OwogCi0gICAgcmV0dXJuICRzdmdOYXRpdmVUeXBleyR0eXBlfSBpZiBleGlzdHMgJHN2
Z05hdGl2ZVR5cGV7JHR5cGV9OworICAgIHJldHVybiAkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmeyR0
eXBlfSBpZiBleGlzdHMgJHN2Z1R5cGVOZWVkaW5nVGVhck9mZnskdHlwZX07CiAgICAgcmV0dXJu
IHVuZGVmOwogfQogCkBAIC0zOTEsMTkgKzQwNiwxOSBAQCBzdWIgR2V0U1ZHV3JhcHBlZFR5cGVO
ZWVkaW5nVGVhck9mZgogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKICAgICBteSAkdHlwZSA9IHNo
aWZ0OwogCi0gICAgbXkgJHN2Z05hdGl2ZVR5cGUgPSAkb2JqZWN0LT5HZXRTVkdUeXBlTmVlZGlu
Z1RlYXJPZmYoJHR5cGUpOwotICAgIHJldHVybiAkc3ZnTmF0aXZlVHlwZSBpZiBub3QgJHN2Z05h
dGl2ZVR5cGU7CisgICAgbXkgJHN2Z1R5cGVOZWVkaW5nVGVhck9mZiA9ICRvYmplY3QtPkdldFNW
R1R5cGVOZWVkaW5nVGVhck9mZigkdHlwZSk7CisgICAgcmV0dXJuICRzdmdUeXBlTmVlZGluZ1Rl
YXJPZmYgaWYgbm90ICRzdmdUeXBlTmVlZGluZ1RlYXJPZmY7CiAKLSAgICBpZiAoJHN2Z05hdGl2
ZVR5cGUgPX4gL1NWR1Byb3BlcnR5VGVhck9mZi8pIHsKLSAgICAgICAgJHN2Z05hdGl2ZVR5cGUg
PX4gcy9TVkdQcm9wZXJ0eVRlYXJPZmY8Ly87Ci0gICAgfSBlbHNpZiAoJHN2Z05hdGl2ZVR5cGUg
PX4gL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYvKSB7Ci0gICAgICAgICRzdmdOYXRpdmVUeXBlID1+
IHMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZjwvLzsKLSAgICB9IGVsc2lmICgkc3ZnTmF0aXZlVHlw
ZSA9fiAvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi8pIHsKLSAgICAgICAgJHN2Z05hdGl2
ZVR5cGUgPX4gcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmPC8vOworICAgIGlmICgkc3Zn
VHlwZU5lZWRpbmdUZWFyT2ZmID1+IC9TVkdQcm9wZXJ0eVRlYXJPZmYvKSB7CisgICAgICAgICRz
dmdUeXBlTmVlZGluZ1RlYXJPZmYgPX4gcy9TVkdQcm9wZXJ0eVRlYXJPZmY8Ly87CisgICAgfSBl
bHNpZiAoJHN2Z1R5cGVOZWVkaW5nVGVhck9mZiA9fiAvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi8p
IHsKKyAgICAgICAgJHN2Z1R5cGVOZWVkaW5nVGVhck9mZiA9fiBzL1NWR0xpc3RQcm9wZXJ0eVRl
YXJPZmY8Ly87CisgICAgfSBlbHNpZiAoJHN2Z1R5cGVOZWVkaW5nVGVhck9mZiA9fiAvU1ZHU3Rh
dGljTGlzdFByb3BlcnR5VGVhck9mZi8pIHsKKyAgICAgICAgJHN2Z1R5cGVOZWVkaW5nVGVhck9m
ZiA9fiBzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmY8Ly87CiAgICAgfQogCi0gICAgJHN2
Z05hdGl2ZVR5cGUgPX4gcy8+Ly87Ci0gICAgcmV0dXJuICRzdmdOYXRpdmVUeXBlOworICAgICRz
dmdUeXBlTmVlZGluZ1RlYXJPZmYgPX4gcy8+Ly87CisgICAgcmV0dXJuICRzdmdUeXBlTmVlZGlu
Z1RlYXJPZmY7CiB9CiAKICMgRklYTUU6IFRoaXMgbWV0aG9kIHdpbGwgZ28gYXdheSBvbmNlIGFs
bCBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBhcmUgY29udmVydGVkIHRvIHRoZSBuZXcgc2NoZW1l
LgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShy
ZXZpc2lvbiA3MTQxMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTI0NTYsOCArMjQ1Niw2IEBAIG15ICVuYXRpdmVUeXBl
ID0gKAogICAgICJJREJLZXkiID0+ICJSZWZQdHI8SURCS2V5PiIsCiAgICAgIlNWR01hdHJpeCIg
PT4gIkFmZmluZVRyYW5zZm9ybSIsCiAgICAgIlNWR1BhaW50VHlwZSIgPT4gIlNWR1BhaW50OjpT
VkdQYWludFR5cGUiLAotICAgICJTVkdQb2ludCIgPT4gIkZsb2F0UG9pbnQiLAotICAgICJTVkdS
ZWN0IiA9PiAiRmxvYXRSZWN0IiwKICAgICAiU1ZHVHJhbnNmb3JtIiA9PiAiU1ZHVHJhbnNmb3Jt
IiwKICAgICAiYm9vbGVhbiIgPT4gImJvb2wiLAogICAgICJkb3VibGUiID0+ICJkb3VibGUiLApA
QCAtMjU1Niw4ICsyNTU0LDYgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICByZXR1cm4g
ImNyZWF0ZUlEQktleUZyb21WYWx1ZShleGVjLCAkdmFsdWUpIjsKICAgICB9CiAKLSAgICAkaW1w
bEluY2x1ZGVzeyJGbG9hdFBvaW50LmgifSA9IDEgaWYgJHR5cGUgZXEgIlNWR1BvaW50IjsKLSAg
ICAkaW1wbEluY2x1ZGVzeyJGbG9hdFJlY3QuaCJ9ID0gMSBpZiAkdHlwZSBlcSAiU1ZHUmVjdCI7
CiAgICAgJGltcGxJbmNsdWRlc3siSFRNTE9wdGlvbkVsZW1lbnQuaCJ9ID0gMSBpZiAkdHlwZSBl
cSAiSFRNTE9wdGlvbkVsZW1lbnQiOwogICAgICRpbXBsSW5jbHVkZXN7IkpTQ3VzdG9tVm9pZENh
bGxiYWNrLmgifSA9IDEgaWYgJHR5cGUgZXEgIlZvaWRDYWxsYmFjayI7CiAgICAgJGltcGxJbmNs
dWRlc3siRXZlbnQuaCJ9ID0gMSBpZiAkdHlwZSBlcSAiRXZlbnQiOwpAQCAtMjY4MCwxMCArMjY3
NiwxOSBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAgICAgICAgICR2YWx1ZSA9ICJzdGF0aWNfY2Fz
dDwiIC4gR2V0TmF0aXZlVHlwZSgkdHlwZSkgLiAiPigkdmFsdWUpIjsKICAgICB9IGVsc2lmICgk
Y29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHR5cGUpIGFuZCBub3QgJGlt
cGxDbGFzc05hbWUgPX4gL0xpc3QkLykgewogICAgICAgICBteSAkdGVhck9mZlR5cGUgPSAkY29k
ZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCR0eXBlKTsKLSAgICAgICAgaWYg
KCR0ZWFyT2ZmVHlwZSA9fiAvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi8pIHsKKyAgICAg
ICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVXaXRoV3JpdGFibGVQcm9wZXJ0aWVzTmVl
ZGluZ1RlYXJPZmYoJHR5cGUpIGFuZCAkaW5GdW5jdGlvbkNhbGwgZXEgMCBhbmQgbm90IGRlZmlu
ZWQgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltbXV0YWJsZSJ9KSB7CisgICAg
ICAgICAgICAkdGVhck9mZlR5cGUgPX4gcy9TVkdQcm9wZXJ0eVRlYXJPZmY8L1NWR1N0YXRpY1By
b3BlcnR5VGVhck9mZjwkaW1wbENsYXNzTmFtZSwgLzsKKyAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IlNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oIn0gPSAxOworCisgICAgICAgICAgICBteSAk
Z2V0dGVyID0gJHZhbHVlOworICAgICAgICAgICAgJGdldHRlciA9fiBzL2ltcC0+Ly87CisgICAg
ICAgICAgICAkZ2V0dGVyID1+IHMvXChcKS8vOworICAgICAgICAgICAgbXkgJHVwZGF0ZXIgPSAi
dXBkYXRlIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRnZXR0ZXIpOworICAgICAgICAg
ICAgJHZhbHVlID0gIiR7dGVhck9mZlR5cGV9OjpjcmVhdGUoaW1wLCAkdmFsdWUsICYke2ltcGxD
bGFzc05hbWV9OjokdXBkYXRlcikiOworICAgICAgICB9IGVsc2lmICgkdGVhck9mZlR5cGUgPX4g
L1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYvKSB7CiAgICAgICAgICAgICBteSAkZXh0cmFJ
bXAgPSAiR2V0T3duZXJFbGVtZW50Rm9yVHlwZTwkaW1wbENsYXNzTmFtZSwgSXNEZXJpdmVkRnJv
bVNWR0VsZW1lbnQ8JGltcGxDbGFzc05hbWU+Ojp2YWx1ZT46Om93bmVyRWxlbWVudChpbXApLCAi
OwogICAgICAgICAgICAgJHZhbHVlID0gIiR7dGVhck9mZlR5cGV9OjpjcmVhdGUoJGV4dHJhSW1w
JHZhbHVlKSI7Ci0gICAgICAgIH0gZWxzZSB7CisgICAgICAgIH0gZWxzaWYgKG5vdCAkdGVhck9m
ZlR5cGUgPX4gL1NWR1BvaW50TGlzdC8pIHsKICAgICAgICAgICAgICR2YWx1ZSA9ICIke3RlYXJP
ZmZUeXBlfTo6Y3JlYXRlKCR2YWx1ZSkiOwogICAgICAgICB9CiAgICAgfQpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkocmV2aXNpb24gNzE0
MTApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0JKHdv
cmtpbmcgY29weSkKQEAgLTU5LDggKzU5LDcgQEAgbXkgQGRlcHNDb250ZW50ID0gKCk7CiBteSAl
cHJvdG9jb2xUeXBlSGFzaCA9ICgiWFBhdGhOU1Jlc29sdmVyIiA9PiAxLCAiRXZlbnRMaXN0ZW5l
ciIgPT4gMSwgIkV2ZW50VGFyZ2V0IiA9PiAxLCAiTm9kZUZpbHRlciIgPT4gMSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICJTVkdMb2NhdGFibGUiID0+IDEsICJTVkdUcmFuc2Zvcm1hYmxlIiA9
PiAxLCAiU1ZHU3R5bGFibGUiID0+IDEsICJTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMiID0+IDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgIlNWR1Rlc3RzIiA9PiAxLCAi
U1ZHTGFuZ1NwYWNlIiA9PiAxLCAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCIgPT4gMSwg
IlNWR1VSSVJlZmVyZW5jZSIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJTVkdab29t
QW5kUGFuIiA9PiAxLCAiU1ZHRml0VG9WaWV3Qm94IiA9PiAxLCAiU1ZHQW5pbWF0ZWRQYXRoRGF0
YSIgPT4gMSwgIlNWR0FuaW1hdGVkUG9pbnRzIiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIkVsZW1lbnRUaW1lQ29udHJvbCIgPT4gMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAi
U1ZHWm9vbUFuZFBhbiIgPT4gMSwgIlNWR0ZpdFRvVmlld0JveCIgPT4gMSwgIlNWR0FuaW1hdGVk
UGF0aERhdGEiID0+IDEsICJFbGVtZW50VGltZUNvbnRyb2wiID0+IDEpOwogbXkgJW5hdGl2ZU9i
akNUeXBlSGFzaCA9ICgiVVJMIiA9PiAxLCAiQ29sb3IiID0+IDEpOwogCiAjIEZJWE1FOiB0aGlz
IHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIGEgZnVuY3Rpb24gdGhhdCByZWN1cnNlcyB1cCB0aGUg
dHJlZQpAQCAtNzEsNyArNzAsNyBAQCBteSAlYmFzZVR5cGVIYXNoID0gKCJPYmplY3QiID0+IDEs
ICJOb2RlCiAgICAgICAgICAgICAgICAgICAgICJOb2RlSXRlcmF0b3IiID0+IDEsICJUcmVlV2Fs
a2VyIiA9PiAxLCAiQWJzdHJhY3RWaWV3IiA9PiAxLCAiQmxvYiIgPT4gMSwKICAgICAgICAgICAg
ICAgICAgICAgIlNWR0FuZ2xlIiA9PiAxLCAiU1ZHQW5pbWF0ZWRBbmdsZSIgPT4gMSwgIlNWR0Fu
aW1hdGVkQm9vbGVhbiIgPT4gMSwgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24iID0+IDEsCiAgICAg
ICAgICAgICAgICAgICAgICJTVkdBbmltYXRlZEludGVnZXIiID0+IDEsICJTVkdBbmltYXRlZExl
bmd0aCIgPT4gMSwgIlNWR0FuaW1hdGVkTGVuZ3RoTGlzdCIgPT4gMSwKLSAgICAgICAgICAgICAg
ICAgICAgIlNWR0FuaW1hdGVkTnVtYmVyIiA9PiAxLCAiU1ZHQW5pbWF0ZWROdW1iZXJMaXN0IiA9
PiAxLCAiU1ZHQW5pbWF0ZWRQb2ludHMiID0+IDEsCisgICAgICAgICAgICAgICAgICAgICJTVkdB
bmltYXRlZE51bWJlciIgPT4gMSwgIlNWR0FuaW1hdGVkTnVtYmVyTGlzdCIgPT4gMSwKICAgICAg
ICAgICAgICAgICAgICAgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyIgPT4gMSwgIlNW
R0FuaW1hdGVkUmVjdCIgPT4gMSwgIlNWR0FuaW1hdGVkU3RyaW5nIiA9PiAxLAogICAgICAgICAg
ICAgICAgICAgICAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0IiA9PiAxLCAiU1ZHTGVuZ3RoIiA9
PiAxLCAiU1ZHTGVuZ3RoTGlzdCIgPT4gMSwgIlNWR01hdHJpeCIgPT4gMSwKICAgICAgICAgICAg
ICAgICAgICAgIlNWR051bWJlciIgPT4gMSwgIlNWR051bWJlckxpc3QiID0+IDEsICJTVkdQYXRo
U2VnIiA9PiAxLCAiU1ZHUGF0aFNlZ0xpc3QiID0+IDEsICJTVkdQb2ludCIgPT4gMSwKQEAgLTYw
MCwxMiArNTk5LDYgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaWYgKCR0eXBlIGVxICJTVkdQb2ludCIpIHsKLSAgICAgICAgJGltcGxJbmNs
dWRlc3siRmxvYXRQb2ludC5oIn0gPSAxOwotICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01TVkdQ
b2ludEludGVybmFsLmgifSA9IDE7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBpZiAo
JHR5cGUgZXEgIlNWR01hdHJpeCIpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siQWZmaW5lVHJh
bnNmb3JtLmgifSA9IDE7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkRPTVNWR01hdHJpeEludGVy
bmFsLmgifSA9IDE7CkBAIC0xMzE3LDE1ICsxMzEwLDMwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRIZWFkID0gIiRnZXR0ZXJDb250
ZW50SGVhZCI7CiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRUYWlsIC49ICItPnRvU3Ry
aW5nKCkiOyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIH0gZWxzaWYgKENvbnZlcnNpb25O
ZWVkZWQoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKSkgewotICAgICAgICAgICAgICAgIGlm
ICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT50eXBlKSBhbmQgbm90ICRpbXBsQ2xhc3NOYW1lID1+IC9MaXN0JC8pIHsKLSAgICAg
ICAgICAgICAgICAgICAgbXkgJGlkbFR5cGVXaXRoTmFtZXNwYWNlID0gR2V0U1ZHVHlwZVdpdGhO
YW1lc3BhY2UoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKCRpZGxUeXBlV2l0aE5hbWVzcGFjZSA9fiAvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVh
ck9mZi8pIHsKKyAgICAgICAgICAgICAgICBteSAkdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZTsKKyAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5l
ZWRpbmdUZWFyT2ZmKCR0eXBlKSBhbmQgbm90ICRpbXBsQ2xhc3NOYW1lID1+IC9MaXN0JC8pIHsK
KyAgICAgICAgICAgICAgICAgICAgbXkgJGlkbFR5cGVXaXRoTmFtZXNwYWNlID0gR2V0U1ZHVHlw
ZVdpdGhOYW1lc3BhY2UoJHR5cGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5l
cmF0b3ItPklzU1ZHVHlwZVdpdGhXcml0YWJsZVByb3BlcnRpZXNOZWVkaW5nVGVhck9mZigkdHlw
ZSkgYW5kIG5vdCBkZWZpbmVkICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkltbXV0YWJsZSJ9KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkaWRsVHlwZVdp
dGhOYW1lc3BhY2UgPX4gcy9TVkdQcm9wZXJ0eVRlYXJPZmY8L1NWR1N0YXRpY1Byb3BlcnR5VGVh
ck9mZjwkaW1wbENsYXNzTmFtZVdpdGhOYW1lc3BhY2UsIC87CisgICAgICAgICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCJ9ID0gMTsKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGdldHRlciA9ICRnZXR0ZXJDb250ZW50SGVhZDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICRnZXR0ZXIgPX4gcy9JTVBMLT4vLzsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICRnZXR0ZXIgPX4gcy9cKC8vOworICAgICAgICAgICAgICAgICAgICAg
ICAgbXkgJHVwZGF0ZXIgPSAidXBkYXRlIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRn
ZXR0ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRIZWFkID0gImtp
dChXVEY6OmdldFB0cigke2lkbFR5cGVXaXRoTmFtZXNwYWNlfTo6Y3JlYXRlKElNUEwsICRnZXR0
ZXJDb250ZW50SGVhZCRnZXR0ZXJDb250ZW50VGFpbCwgJiR7aW1wbENsYXNzTmFtZVdpdGhOYW1l
c3BhY2V9OjokdXBkYXRlciI7CisgICAgICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVu
dFRhaWwgLj0gIikpIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGlkbFR5cGVXaXRo
TmFtZXNwYWNlID1+IC9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLykgewogICAgICAgICAg
ICAgICAgICAgICAgICAgbXkgJGV4dHJhSW1wID0gIldlYkNvcmU6OkdldE93bmVyRWxlbWVudEZv
clR5cGU8JGltcGxDbGFzc05hbWVXaXRoTmFtZXNwYWNlLCBXZWJDb3JlOjpJc0Rlcml2ZWRGcm9t
U1ZHRWxlbWVudDwkaW1wbENsYXNzTmFtZVdpdGhOYW1lc3BhY2U+Ojp2YWx1ZT46Om93bmVyRWxl
bWVudChJTVBMKSwgIjsKICAgICAgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVh
ZCA9ICJraXQoV1RGOjpnZXRQdHIoJHtpZGxUeXBlV2l0aE5hbWVzcGFjZX06OmNyZWF0ZSgkZXh0
cmFJbXAkZ2V0dGVyQ29udGVudEhlYWQiOworICAgICAgICAgICAgICAgICAgICAgICAgJGdldHRl
ckNvbnRlbnRUYWlsIC49ICIpKSkiOworICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkaWRs
VHlwZVdpdGhOYW1lc3BhY2UgPX4gL1NWR1BvaW50TGlzdC8pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICJraXQoV1RGOjpnZXRQdHIoJGdldHRlckNvbnRl
bnRIZWFkIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50VGFpbCAuPSAi
KSkiOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAg
ICAgJGdldHRlckNvbnRlbnRIZWFkID0gImtpdChXVEY6OmdldFB0cigke2lkbFR5cGVXaXRoTmFt
ZXNwYWNlfTo6Y3JlYXRlKCRnZXR0ZXJDb250ZW50SGVhZCI7CisgICAgICAgICAgICAgICAgICAg
ICAgICAkZ2V0dGVyQ29udGVudFRhaWwgLj0gIikpKSI7CiAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRUYWlsIC49ICIpKSkiOwogICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVh
ZCA9ICJraXQoV1RGOjpnZXRQdHIoJGdldHRlckNvbnRlbnRIZWFkIjsKICAgICAgICAgICAgICAg
ICAgICAgJGdldHRlckNvbnRlbnRUYWlsIC49ICIpKSI7CkBAIC0xNDE2LDcgKzE0MjQsNyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIElNUEwtPmNvbW1pdENoYW5nZSgpO1xuIik7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkZXhjZXB0aW9uUmFpc2VP
bkVycm9yXG4iKTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJTVBMLT5jb21taXRDaGFuZ2Uo
KTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
SU1QTC0+Y29tbWl0Q2hhbmdlKCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIH0gZWxzaWYgKCRzdmdMaXN0UHJvcGVydHlUeXBlKSB7CiAgICAgICAgICAgICAg
ICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICIkZ2V0dGVyRXhwcmVzc2lvblByZWZpeCI7CkBA
IC0xNTc4LDcgKzE1ODYsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAg
ICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewogICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0
aW9uQ29udGVudCwgIiAgICAkc3ZnUHJvcGVydHlUeXBlJiBwb2RJbXBsID0gSU1QTC0+cHJvcGVy
dHlSZWZlcmVuY2UoKTtcbiIpOwotICAgICAgICAgICAgICAgICRjb250ZW50ID0gInBvZEltcGwu
JGNvbnRlbnQ7XG4gICAgSU1QTC0+Y29tbWl0Q2hhbmdlKCkiOyAKKyAgICAgICAgICAgICAgICAk
Y29udGVudCA9ICJwb2RJbXBsLiRjb250ZW50IjsgCiAgICAgICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgICAgICRjb250ZW50ID0gJGNhbGxlciAuICItPiRjb250ZW50IjsKICAgICAgICAg
ICAgIH0KQEAgLTE2MDIsOSArMTYxMCwxNCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgICAgIGlmICgkcmFpc2VzRXhjZXB0aW9ucykgewogICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgJGV4Y2VwdGlvbkluaXRcbiIpOwogICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgJGNvbnRlbnQ7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICBpZiAoIWVjKVxuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgICAg
IElNUEwtPmNvbW1pdENoYW5nZSgpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICRleGNlcHRpb25SYWlz
ZU9uRXJyb3JcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAkY29udGVudDtcbiIpOworICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgSU1QTC0+Y29tbWl0Q2hhbmdl
KClcbiIpIGlmICRzdmdQcm9wZXJ0eVR5cGU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfSBlbHNpZiAoZGVmaW5lZCAkbmVlZHNDdXN0b217Ik5vZGVUb1JldHVybiJ9KSB7CiAgICAg
ICAgICAgICAgICAgIyBTcGVjaWFsIGNhc2UgdGhlIGluc2VydEJlZm9yZSwgcmVwbGFjZUNoaWxk
LCByZW1vdmVDaGlsZCAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQkocmV2aXNpb24gNzE0MTApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtCSh3b3JraW5nIGNvcHkpCkBAIC05MzAsMTAgKzkzMCwxOSBAQCBF
TkQKICAgICAgICAgJGltcGxJbmNsdWRlc3siVjgkYXR0clR5cGUuaCJ9ID0gMTsKICAgICAgICAg
JGltcGxJbmNsdWRlc3siU1ZHUHJvcGVydHlUZWFyT2ZmLmgifSA9IDE7CiAgICAgICAgIG15ICR0
ZWFyT2ZmVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGF0
dHJUeXBlKTsKLSAgICAgICAgaWYgKCR0ZWFyT2ZmVHlwZSA9fiAvU1ZHU3RhdGljTGlzdFByb3Bl
cnR5VGVhck9mZi8pIHsKKyAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVXaXRo
V3JpdGFibGVQcm9wZXJ0aWVzTmVlZGluZ1RlYXJPZmYoJGF0dHJUeXBlKSBhbmQgbm90IGRlZmlu
ZWQgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1tdXRhYmxl
In0pIHsKKyAgICAgICAgICAgICR0ZWFyT2ZmVHlwZSA9fiBzL1NWR1Byb3BlcnR5VGVhck9mZjwv
U1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmPCRpbXBsQ2xhc3NOYW1lLCAvOworICAgICAgICAgICAg
JGltcGxJbmNsdWRlc3siU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgifSA9IDE7CisKKyAgICAg
ICAgICAgIG15ICRnZXR0ZXIgPSAkcmVzdWx0OworICAgICAgICAgICAgJGdldHRlciA9fiBzL2lt
cC0+Ly87CisgICAgICAgICAgICAkZ2V0dGVyID1+IHMvXChcKS8vOworICAgICAgICAgICAgbXkg
JHVwZGF0ZXIgPSAidXBkYXRlIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRnZXR0ZXIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1cm4gdG9WOChX
VEY6OmdldFB0cigke3RlYXJPZmZUeXBlfTo6Y3JlYXRlKGltcCwgJHJlc3VsdCwgJiR7aW1wbENs
YXNzTmFtZX06OiR1cGRhdGVyKSkpO1xuIik7CisgICAgICAgIH0gZWxzaWYgKCR0ZWFyT2ZmVHlw
ZSA9fiAvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi8pIHsKICAgICAgICAgICAgIG15ICRl
eHRyYUltcCA9ICJHZXRPd25lckVsZW1lbnRGb3JUeXBlPCRpbXBsQ2xhc3NOYW1lLCBJc0Rlcml2
ZWRGcm9tU1ZHRWxlbWVudDwkaW1wbENsYXNzTmFtZT46OnZhbHVlPjo6b3duZXJFbGVtZW50KGlt
cCksICI7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiB0
b1Y4KFdURjo6Z2V0UHRyKCR7dGVhck9mZlR5cGV9OjpjcmVhdGUoJGV4dHJhSW1wJHJlc3VsdCkp
KTtcbiIpOwotICAgICAgICB9IGVsc2UgeworICAgICAgICB9IGVsc2lmIChub3QgJHRlYXJPZmZU
eXBlID1+IC9TVkdQb2ludExpc3QvKSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERl
Y2xzLCAiICAgIHJldHVybiB0b1Y4KFdURjo6Z2V0UHRyKCR7dGVhck9mZlR5cGV9OjpjcmVhdGUo
JHJlc3VsdCkpKTtcbiIpOwogICAgICAgICB9CiAgICAgfSBlbHNpZiAoJGF0dHJJc1BvZFR5cGUp
IHsKQEAgLTI2NzksNyArMjY4OCw2IEBAIHN1YiBHZXROYXRpdmVUeXBlRm9yQ29udmVyc2lvbnMK
ICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwogCi0gICAg
JHR5cGUgPSAiRmxvYXRQb2ludCIgaWYgJHR5cGUgZXEgIlNWR1BvaW50IjsKICAgICAkdHlwZSA9
ICJBZmZpbmVUcmFuc2Zvcm0iIGlmICR0eXBlIGVxICJTVkdNYXRyaXgiOwogICAgICR0eXBlID0g
IlY4U1ZHUE9EVHlwZVdyYXBwZXI8JHR5cGU+IiBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJQT0RUeXBlIn07CiAgICAgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlw
ZU5lZWRpbmdUZWFyT2ZmKCR0eXBlKSBpZiAkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGlu
Z1RlYXJPZmYoJHR5cGUpOyAKQEAgLTI5NDksNyArMjk1Nyw2IEBAIHN1YiBJc1JlZlB0clR5cGUK
ICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQiOwogICAgIHJldHVybiAwIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQgc2hvcnQiOwotICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJTVkdBbmltYXRlZFBvaW50cyI7
CiAKICAgICByZXR1cm4gMTsKIH0KQEAgLTI5ODIsNyArMjk4OSw2IEBAIHN1YiBHZXROYXRpdmVU
eXBlCiAgICAgcmV0dXJuICJib29sIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CiAgICAgcmV0dXJu
ICJTdHJpbmciIGlmICR0eXBlIGVxICJET01TdHJpbmciOwogICAgIHJldHVybiAiUmFuZ2U6OkNv
bXBhcmVIb3ciIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKLSAgICByZXR1cm4gIkZsb2F0UG9p
bnQiIGlmICR0eXBlIGVxICJTVkdQb2ludCI7CiAgICAgcmV0dXJuICJBZmZpbmVUcmFuc2Zvcm0i
IGlmICR0eXBlIGVxICJTVkdNYXRyaXgiOwogICAgIHJldHVybiAiU1ZHVHJhbnNmb3JtIiBpZiAk
dHlwZSBlcSAiU1ZHVHJhbnNmb3JtIjsKICAgICByZXR1cm4gIlNWR1BhaW50OjpTVkdQYWludFR5
cGUiIGlmICR0eXBlIGVxICJTVkdQYWludFR5cGUiOwpAQCAtMzAzNSw3ICszMDQxLDYgQEAgc3Vi
IEJhc2ljVHlwZUNhbkZhaWxDb252ZXJzaW9uCiAgICAgbXkgJHR5cGUgPSBHZXRUeXBlRnJvbVNp
Z25hdHVyZSgkc2lnbmF0dXJlKTsKIAogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJTVkdNYXRy
aXgiOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJTVkdQb2ludCI7CiAgICAgcmV0dXJuIDEg
aWYgJHR5cGUgZXEgIlNWR1RyYW5zZm9ybSI7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0zMDk4LDEw
ICszMTAzLDYgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICAkaW1wbEluY2x1ZGVzeyJG
bG9hdFJlY3QuaCJ9ID0gMTsKICAgICB9CiAKLSAgICBpZiAoJHR5cGUgZXEgIlNWR1BvaW50Iikg
ewotICAgICAgICAkaW1wbEluY2x1ZGVzeyJGbG9hdFBvaW50LmgifSA9IDE7Ci0gICAgfQotCiAg
ICAgIyBEZWZhdWx0LCBhc3N1bWUgYXV0b2dlbmVyYXRlZCB0eXBlIGNvbnZlcnNpb24gcm91dGlu
ZXMKICAgICBpZiAoJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgewogICAgICAgICAkaW1wbEluY2x1
ZGVzeyJWOE5vZGUuaCJ9ID0gMTsKQEAgLTM0OTMsNyArMzQ5NCw2IEBAIHN1YiBJc1NWR0xpc3RU
eXBlTmVlZGluZ1NwZWNpYWxIYW5kbGluZwogewogICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsK
IAotICAgIHJldHVybiAxIGlmICRjbGFzc05hbWUgZXEgIlNWR1BvaW50TGlzdCI7CiAgICAgcmV0
dXJuIDEgaWYgJGNsYXNzTmFtZSBlcSAiU1ZHVHJhbnNmb3JtTGlzdCI7CiAKICAgICByZXR1cm4g
MDsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCShyZXZp
c2lvbiA3MTQxMCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRlclRyZWVBc1RleHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00MTEsNyArNDExLDcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbQogICAgICAgICB3cml0ZU5hbWVWYWx1ZVBhaXIodHMsICJyIiwg
ZWxlbWVudC0+cigpLnZhbHVlKGVsZW1lbnQpKTsKICAgICB9IGVsc2UgaWYgKHN2Z0VsZW1lbnQt
Pmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBvbHlnb25UYWcpIHx8IHN2Z0VsZW1lbnQtPmhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnBvbHlsaW5lVGFnKSkgewogICAgICAgICBTVkdQb2x5RWxlbWVudCogZWxl
bWVudCA9IHN0YXRpY19jYXN0PFNWR1BvbHlFbGVtZW50Kj4oc3ZnRWxlbWVudCk7Ci0gICAgICAg
IHdyaXRlTmFtZUFuZFF1b3RlZFZhbHVlKHRzLCAicG9pbnRzIiwgZWxlbWVudC0+cG9pbnRzKCkt
PnZhbHVlQXNTdHJpbmcoKSk7CisgICAgICAgIHdyaXRlTmFtZUFuZFF1b3RlZFZhbHVlKHRzLCAi
cG9pbnRzIiwgZWxlbWVudC0+cG9pbnRMaXN0KCkudmFsdWVBc1N0cmluZygpKTsKICAgICB9IGVs
c2UgaWYgKHN2Z0VsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBhdGhUYWcpKSB7CiAgICAg
ICAgIFNWR1BhdGhFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEVsZW1lbnQq
PihzdmdFbGVtZW50KTsKICAgICAgICAgU3RyaW5nIHBhdGhTdHJpbmc7CkluZGV4OiBXZWJDb3Jl
L3N2Zy9TVkdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQWxsSW5P
bmUuY3BwCShyZXZpc2lvbiA3MTQxMCkKKysrIFdlYkNvcmUvc3ZnL1NWR0FsbEluT25lLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIlNWR0FuZ2xlLmNwcCIK
ICNpbmNsdWRlICJTVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlZFBhdGhEYXRhLmNwcCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFBvaW50cy5jcHAiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAiCklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA3MTQxMCkKKysrIFdlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcwLDEyICsx
NzAsMTIgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZQogICAgICAg
ICBlbHNlIGlmIChwZXJjZW50YWdlID09IDEuZikKICAgICAgICAgICAgIHJlc3VsdHMtPm1fYW5p
bWF0ZWRQb2ludHMgPSBtX3RvUG9pbnRzOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlm
IChtX2Zyb21Qb2ludHMgJiYgbV90b1BvaW50cykKLSAgICAgICAgICAgICAgICByZXN1bHRzLT5t
X2FuaW1hdGVkUG9pbnRzID0gU1ZHUG9pbnRMaXN0OjpjcmVhdGVBbmltYXRlZChtX2Zyb21Qb2lu
dHMuZ2V0KCksIG1fdG9Qb2ludHMuZ2V0KCksIHBlcmNlbnRhZ2UpOworICAgICAgICAgICAgaWYg
KCFtX2Zyb21Qb2ludHMuaXNFbXB0eSgpICYmICFtX3RvUG9pbnRzLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgICAgICBTVkdQb2ludExpc3Q6OmNyZWF0ZUFuaW1hdGVkKG1fZnJvbVBvaW50cywgbV90
b1BvaW50cywgcmVzdWx0cy0+bV9hbmltYXRlZFBvaW50cywgcGVyY2VudGFnZSk7CiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmVzdWx0cy0+bV9hbmltYXRlZFBvaW50cy5jbGVh
cigpOwogICAgICAgICAgICAgLy8gRmFsbCBiYWNrIHRvIGRpc2NyZXRlIGFuaW1hdGlvbiBpZiB0
aGUgcG9pbnRzIGFyZSBub3QgY29tcGF0aWJsZQotICAgICAgICAgICAgaWYgKCFyZXN1bHRzLT5t
X2FuaW1hdGVkUG9pbnRzKQorICAgICAgICAgICAgaWYgKHJlc3VsdHMtPm1fYW5pbWF0ZWRQb2lu
dHMuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJlc3VsdHMtPm1fYW5pbWF0ZWRQb2ludHMg
PSAoKGFuaW1hdGlvbk1vZGUgPT0gRnJvbVRvQW5pbWF0aW9uICYmIHBlcmNlbnRhZ2UgPiAwLjVm
KSB8fCBhbmltYXRpb25Nb2RlID09IFRvQW5pbWF0aW9uIHx8IHBlcmNlbnRhZ2UgPT0gMS4wZikg
CiAgICAgICAgICAgICAgICAgICAgID8gbV90b1BvaW50cyA6IG1fZnJvbVBvaW50czsKICAgICAg
ICAgfQpAQCAtMjE1LDE0ICsyMTUsMTIgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3Vs
YXRlRnJvbUFuZAogICAgICAgICBtX2Zyb21QYXRoLmNsZWFyKCk7CiAgICAgICAgIG1fdG9QYXRo
LmNsZWFyKCk7CiAgICAgfSBlbHNlIGlmIChtX3Byb3BlcnR5VHlwZSA9PSBQb2ludHNQcm9wZXJ0
eSkgewotICAgICAgICBtX2Zyb21Qb2ludHMgPSBTVkdQb2ludExpc3Q6OmNyZWF0ZShTVkdOYW1l
czo6cG9pbnRzQXR0cik7Ci0gICAgICAgIGlmIChwb2ludHNMaXN0RnJvbVNWR0RhdGEobV9mcm9t
UG9pbnRzLmdldCgpLCBmcm9tU3RyaW5nKSkgewotICAgICAgICAgICAgbV90b1BvaW50cyA9IFNW
R1BvaW50TGlzdDo6Y3JlYXRlKFNWR05hbWVzOjpwb2ludHNBdHRyKTsKLSAgICAgICAgICAgIGlm
IChwb2ludHNMaXN0RnJvbVNWR0RhdGEobV90b1BvaW50cy5nZXQoKSwgdG9TdHJpbmcpKQorICAg
ICAgICBtX2Zyb21Qb2ludHMuY2xlYXIoKTsKKyAgICAgICAgaWYgKHBvaW50c0xpc3RGcm9tU1ZH
RGF0YShtX2Zyb21Qb2ludHMsIGZyb21TdHJpbmcpKSB7CisgICAgICAgICAgICBtX3RvUG9pbnRz
LmNsZWFyKCk7CisgICAgICAgICAgICBpZiAocG9pbnRzTGlzdEZyb21TVkdEYXRhKG1fdG9Qb2lu
dHMsIHRvU3RyaW5nKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQot
ICAgICAgICBtX2Zyb21Qb2ludHMuY2xlYXIoKTsKLSAgICAgICAgbV90b1BvaW50cy5jbGVhcigp
OwogICAgIH0KICAgICBtX2Zyb21TdHJpbmcgPSBmcm9tU3RyaW5nOwogICAgIG1fdG9TdHJpbmcg
PSB0b1N0cmluZzsKQEAgLTI5OSwxMiArMjk3LDkgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6
YXBwbHlSZXN1bHRzVG9UYQogICAgICAgICAgICAgU1ZHUGF0aFBhcnNlckZhY3RvcnkqIGZhY3Rv
cnkgPSBTVkdQYXRoUGFyc2VyRmFjdG9yeTo6c2VsZigpOwogICAgICAgICAgICAgZmFjdG9yeS0+
YnVpbGRTdHJpbmdGcm9tQnl0ZVN0cmVhbShtX2FuaW1hdGVkUGF0aFBvaW50ZXIsIHZhbHVlVG9B
cHBseSwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG1fcHJv
cGVydHlUeXBlID09IFBvaW50c1Byb3BlcnR5KSB7Ci0gICAgICAgIGlmICghbV9hbmltYXRlZFBv
aW50cyB8fCAhbV9hbmltYXRlZFBvaW50cy0+bnVtYmVyT2ZJdGVtcygpKQotICAgICAgICAgICAg
dmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFN0cmluZzsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFBvaW50cy0+dmFsdWVBc1N0cmluZygpOwotICAg
IH0gZWxzZQorICAgIH0gZWxzZSBpZiAobV9wcm9wZXJ0eVR5cGUgPT0gUG9pbnRzUHJvcGVydHkp
CisgICAgICAgIHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0ZWRQb2ludHMuaXNFbXB0eSgpID8gbV9h
bmltYXRlZFN0cmluZyA6IG1fYW5pbWF0ZWRQb2ludHMudmFsdWVBc1N0cmluZygpOworICAgIGVs
c2UKICAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFN0cmluZzsKICAgICAKICAgICBz
ZXRUYXJnZXRBdHRyaWJ1dGVBbmltYXRlZFZhbHVlKHZhbHVlVG9BcHBseSk7CkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVFbGVtZW50LmgJKHJldmlzaW9uIDcxNDEwKQorKysgV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTIgKzI3LDEyIEBACiAjaW5jbHVk
ZSAiQ29sb3IuaCIKICNpbmNsdWRlICJTVkdBbmltYXRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAi
U1ZHUGF0aEJ5dGVTdHJlYW0uaCIKKyNpbmNsdWRlICJTVkdQb2ludExpc3QuaCIKICNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNWR1Bh
dGhTZWdMaXN0OwotICAgIGNsYXNzIFNWR1BvaW50TGlzdDsKIAogICAgIGNsYXNzIFNWR0FuaW1h
dGVFbGVtZW50IDogcHVibGljIFNWR0FuaW1hdGlvbkVsZW1lbnQgewogICAgIHB1YmxpYzoKQEAg
LTY5LDkgKzY5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBPd25QdHI8U1ZHUGF0
aEJ5dGVTdHJlYW0+IG1fdG9QYXRoOwogICAgICAgICBPd25QdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+
IG1fYW5pbWF0ZWRQYXRoOwogICAgICAgICBTVkdQYXRoQnl0ZVN0cmVhbSogbV9hbmltYXRlZFBh
dGhQb2ludGVyOwotICAgICAgICBSZWZQdHI8U1ZHUG9pbnRMaXN0PiBtX2Zyb21Qb2ludHM7Ci0g
ICAgICAgIFJlZlB0cjxTVkdQb2ludExpc3Q+IG1fdG9Qb2ludHM7Ci0gICAgICAgIFJlZlB0cjxT
VkdQb2ludExpc3Q+IG1fYW5pbWF0ZWRQb2ludHM7CisgICAgICAgIFNWR1BvaW50TGlzdCBtX2Zy
b21Qb2ludHM7CisgICAgICAgIFNWR1BvaW50TGlzdCBtX3RvUG9pbnRzOworICAgICAgICBTVkdQ
b2ludExpc3QgbV9hbmltYXRlZFBvaW50czsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuY3BwCShyZXZpc2lvbiA3MTQxMCkKKysr
IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSAr
MCwwIEBACi0vLyBUaGlzIGZpbGUgaXMgbm93IGludGVudGlvbmFsbHkgZW1wdHkuIERlbGV0ZSBp
dCBhZnRlciByZW1vdmluZyBpdCBmcm9tIGFsbCB0aGUgYnVpbGQgc3lzdGVtcyBhbmQgcHJvamVj
dCBmaWxlcy4KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaAkocmV2aXNpb24gNzE0MTApCisr
KyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ0
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiBTVkdBbmltYXRlZFBvaW50
c19oCi0jZGVmaW5lIFNWR0FuaW1hdGVkUG9pbnRzX2gKLQotI2lmIEVOQUJMRShTVkcpCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIFNWR1BvaW50TGlzdDsKLQotICAgIGNsYXNz
IFNWR0FuaW1hdGVkUG9pbnRzIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgflNWR0Fu
aW1hdGVkUG9pbnRzKCkgeyB9Ci0KLSAgICAgICAgLy8gJ1NWR0FuaW1hdGVkUG9pbnRzJyBmdW5j
dGlvbnMKLSAgICAgICAgdmlydHVhbCBTVkdQb2ludExpc3QqIHBvaW50cygpIGNvbnN0ID0gMDsK
LSAgICAgICAgdmlydHVhbCBTVkdQb2ludExpc3QqIGFuaW1hdGVkUG9pbnRzKCkgY29uc3QgPSAw
OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShT
VkcpCi0jZW5kaWYKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRQb2ludHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUG9p
bnRzLmlkbAkocmV2aXNpb24gNzE0MTApCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50
cy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi1tb2R1bGUgc3ZnIHsKLQotICAgIGludGVyZmFj
ZSBbQ29uZGl0aW9uYWw9U1ZHLCBPYmpDUHJvdG9jb2wsIE9taXRDb25zdHJ1Y3Rvcl0gU1ZHQW5p
bWF0ZWRQb2ludHMgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9pbnRMaXN0ICAg
cG9pbnRzOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9pbnRMaXN0ICAgYW5pbWF0
ZWRQb2ludHM7Ci0gICAgfTsKLQotfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0
aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3Bw
CShyZXZpc2lvbiA3MTQxMCkKKysrIFdlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDkgKzI2LDcgQEAKICNpbmNsdWRlICJTVkdQYXJzZXJVdGls
aXRpZXMuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZS5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgogI2luY2x1ZGUgIlNWR1BvaW50TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+
CiAKQEAgLTE2Nyw3ICsxNjUsNyBAQCBib29sIHBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoY29u
c3QgU3RyCiAgICAgcmV0dXJuIGN1ciA9PSBlbmQ7CiB9CiAKLWJvb2wgcG9pbnRzTGlzdEZyb21T
VkdEYXRhKFNWR1BvaW50TGlzdCogcG9pbnRzTGlzdCwgY29uc3QgU3RyaW5nJiBwb2ludHMpCiti
b29sIHBvaW50c0xpc3RGcm9tU1ZHRGF0YShTVkdQb2ludExpc3QmIHBvaW50c0xpc3QsIGNvbnN0
IFN0cmluZyYgcG9pbnRzKQogewogICAgIGlmIChwb2ludHMuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTE5NSw4ICsxOTMsNyBAQCBib29sIHBvaW50c0xpc3RGcm9tU1ZHRGF0
YShTVkdQb2ludExpc3QqCiAgICAgICAgIH0KICAgICAgICAgc2tpcE9wdGlvbmFsU3BhY2VzKGN1
ciwgZW5kKTsKIAotICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgcG9pbnRz
TGlzdC0+YXBwZW5kSXRlbShGbG9hdFBvaW50KHhQb3MsIHlQb3MpLCBlYyk7CisgICAgICAgIHBv
aW50c0xpc3QuYXBwZW5kKEZsb2F0UG9pbnQoeFBvcywgeVBvcykpOwogICAgIH0KICAgICByZXR1
cm4gY3VyID09IGVuZCAmJiAhZGVsaW1QYXJzZWQ7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQ
YXJzZXJVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGls
aXRpZXMuaAkocmV2aXNpb24gNzE0MTApCisrKyBXZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRp
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHJldHVybiBwdHIgPCBlbmQ7CiAgICAgfQogCi0gICAgYm9vbCBwb2ludHNMaXN0
RnJvbVNWR0RhdGEoU1ZHUG9pbnRMaXN0KiBwb2ludHNMaXN0LCBjb25zdCBTdHJpbmcmIHBvaW50
cyk7CisgICAgYm9vbCBwb2ludHNMaXN0RnJvbVNWR0RhdGEoU1ZHUG9pbnRMaXN0JiBwb2ludHNM
aXN0LCBjb25zdCBTdHJpbmcmIHBvaW50cyk7CiAgICAgVmVjdG9yPFN0cmluZz4gcGFyc2VEZWxp
bWl0ZWRTdHJpbmcoY29uc3QgU3RyaW5nJiBpbnB1dCwgY29uc3QgY2hhciBzZXBlcmF0b3IpOwog
ICAgIGJvb2wgcGFyc2VLZXJuaW5nVW5pY29kZVN0cmluZyhjb25zdCBTdHJpbmcmIGlucHV0LCBV
bmljb2RlUmFuZ2VzJiwgSGFzaFNldDxTdHJpbmc+JiBzdHJpbmdMaXN0KTsKICAgICBib29sIHBh
cnNlR2x5cGhOYW1lKGNvbnN0IFN0cmluZyYgaW5wdXQsIEhhc2hTZXQ8U3RyaW5nPiYgdmFsdWVz
KTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BvaW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3N2Zy9TVkdQb2ludC5pZGwJKHJldmlzaW9uIDcxNDEwKQorKysgV2ViQ29yZS9zdmcvU1ZHUG9p
bnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw5ICsyMiw5IEBACiAKIG1vZHVsZSBzdmcgewog
Ci0gICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkcsIFBPRFR5cGU9RmxvYXRQb2ludF0gU1ZH
UG9pbnQgewotICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeDsKLSAgICAgICAgYXR0cmlidXRlIGZs
b2F0IHk7CisgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR1BvaW50IHsKKyAgICAg
ICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHg7CisgICAgICAgIGF0dHJp
YnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB5OwogCiAgICAgICAgIFNWR1BvaW50IG1h
dHJpeFRyYW5zZm9ybShpbiBTVkdNYXRyaXggbWF0cml4KTsKICAgICB9OwpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHUG9pbnRMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQb2lu
dExpc3QuY3BwCShyZXZpc2lvbiA3MTQxMCkKKysrIFdlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDMyICsyMiwyNyBAQAogCiAjaWYgRU5BQkxFKFNWRykK
ICNpbmNsdWRlICJTVkdQb2ludExpc3QuaCIKLSNpbmNsdWRlICJTVkdQYXRoU2VnTGlzdC5oIgot
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNs
dWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAKLVNWR1BvaW50TGlzdDo6
U1ZHUG9pbnRMaXN0KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCi0gICAgOiBT
VkdQT0RMaXN0PEZsb2F0UG9pbnQ+KGF0dHJpYnV0ZU5hbWUpCi17Ci19CituYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFN0cmluZyBTVkdQb2ludExpc3Q6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogewot
ICAgIFN0cmluZyByZXN1bHQ7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogCi0gICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBudW1i
ZXJPZkl0ZW1zKCk7ICsraSkgeworICAgIHVuc2lnbmVkIHNpemUgPSB0aGlzLT5zaXplKCk7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBpZiAoaSA+
IDApCi0gICAgICAgICAgICByZXN1bHQgKz0gIiAiOwotCi0gICAgICAgIEZsb2F0UG9pbnQgcG9p
bnQgPSBnZXRJdGVtKGksIGVjKTsKLSAgICAgICAgQVNTRVJUKGVjID09IDApOworICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIiAiKTsgLy8gRklYTUU6IFNob3VsZG4ndCB3ZSB1c2UgY29tbWFz
IHRvIHNlcGVyYXRlPwogCi0gICAgICAgIHJlc3VsdCArPSBTdHJpbmc6OmZvcm1hdCgiJS42bGcg
JS42bGciLCBwb2ludC54KCksIHBvaW50LnkoKSk7CisgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50ID0gYXQoaSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1ha2VTdHJpbmcoU3RyaW5n
OjpudW1iZXIocG9pbnQueCgpKSwgJyAnLCBTdHJpbmc6Om51bWJlcihwb2ludC55KCkpKSk7CiAg
ICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OwogfQogCiBmbG9hdCBpbmxpbmUgYWRqdXN0QW5pbWF0ZWRWYWx1ZShmbG9hdCBmcm9tLCBmbG9h
dCB0bywgZmxvYXQgcHJvZ3Jlc3MpCkBAIC01NSwyNyArNTAsMTkgQEAgZmxvYXQgaW5saW5lIGFk
anVzdEFuaW1hdGVkVmFsdWUoZmxvYXQgZgogICAgIHJldHVybiAodG8gLSBmcm9tKSAqIHByb2dy
ZXNzICsgZnJvbTsKIH0KIAotUGFzc1JlZlB0cjxTVkdQb2ludExpc3Q+IFNWR1BvaW50TGlzdDo6
Y3JlYXRlQW5pbWF0ZWQoY29uc3QgU1ZHUG9pbnRMaXN0KiBmcm9tTGlzdCwgY29uc3QgU1ZHUG9p
bnRMaXN0KiB0b0xpc3QsIGZsb2F0IHByb2dyZXNzKQorYm9vbCBTVkdQb2ludExpc3Q6OmNyZWF0
ZUFuaW1hdGVkKGNvbnN0IFNWR1BvaW50TGlzdCYgZnJvbUxpc3QsIGNvbnN0IFNWR1BvaW50TGlz
dCYgdG9MaXN0LCBTVkdQb2ludExpc3QmIHJlc3VsdExpc3QsIGZsb2F0IHByb2dyZXNzKQogewot
ICAgIHVuc2lnbmVkIGl0ZW1Db3VudCA9IGZyb21MaXN0LT5udW1iZXJPZkl0ZW1zKCk7Ci0gICAg
aWYgKCFpdGVtQ291bnQgfHwgaXRlbUNvdW50ICE9IHRvTGlzdC0+bnVtYmVyT2ZJdGVtcygpKQot
ICAgICAgICByZXR1cm4gMDsKLSAgICBSZWZQdHI8U1ZHUG9pbnRMaXN0PiByZXN1bHQgPSBjcmVh
dGUoZnJvbUxpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkpOwotICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOworICAgIHVuc2lnbmVkIGl0ZW1Db3VudCA9IGZyb21MaXN0LnNpemUoKTsKKyAg
ICBpZiAoIWl0ZW1Db3VudCB8fCBpdGVtQ291bnQgIT0gdG9MaXN0LnNpemUoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBpdGVtQ291bnQ7ICsr
bikgewotICAgICAgICBGbG9hdFBvaW50IGZyb20gPSBmcm9tTGlzdC0+Z2V0SXRlbShuLCBlYyk7
Ci0gICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBGbG9hdFBv
aW50IHRvID0gdG9MaXN0LT5nZXRJdGVtKG4sIGVjKTsKLSAgICAgICAgaWYgKGVjKQotICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIGZyb20gPSBmcm9tTGlz
dC5hdChuKTsKKyAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgdG8gPSB0b0xpc3QuYXQobik7CiAg
ICAgICAgIEZsb2F0UG9pbnQgc2VnbWVudCA9IEZsb2F0UG9pbnQoYWRqdXN0QW5pbWF0ZWRWYWx1
ZShmcm9tLngoKSwgdG8ueCgpLCBwcm9ncmVzcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWRqdXN0QW5pbWF0ZWRWYWx1ZShmcm9tLnkoKSwgdG8ueSgpLCBwcm9n
cmVzcykpOwotICAgICAgICByZXN1bHQtPmFwcGVuZEl0ZW0oc2VnbWVudCwgZWMpOwotICAgICAg
ICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmVzdWx0TGlzdC5hcHBl
bmQoc2VnbWVudCk7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOworICAgIHJl
dHVybiB0cnVlOwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAkocmV2aXNpb24gNzE0MTApCisr
KyBXZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjQgKzIy
LDIyIEBACiAjZGVmaW5lIFNWR1BvaW50TGlzdF9oCiAKICNpZiBFTkFCTEUoU1ZHKQotI2luY2x1
ZGUgIlNWR0xpc3QuaCIKLSNpbmNsdWRlICJGbG9hdFBvaW50LmgiCi0jaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgIlF1YWxpZmll
ZE5hbWUuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFNWR1BvaW50TGlz
dCA6IHB1YmxpYyBTVkdQT0RMaXN0PEZsb2F0UG9pbnQ+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BvaW50TGlzdD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdQb2ludExpc3QoYXR0
cmlidXRlTmFtZSkpOyB9CitjbGFzcyBGbG9hdFBvaW50OwogCi0gICAgICAgIFN0cmluZyB2YWx1
ZUFzU3RyaW5nKCkgY29uc3Q7CitjbGFzcyBTVkdQb2ludExpc3QgOiBwdWJsaWMgVmVjdG9yPEZs
b2F0UG9pbnQ+IHsKK3B1YmxpYzoKKyAgICBTVkdQb2ludExpc3QoKSB7IH0KIAotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdQb2ludExpc3Q+IGNyZWF0ZUFuaW1hdGVkKGNvbnN0IFNWR1Bv
aW50TGlzdCogZnJvbUxpc3QsIGNvbnN0IFNWR1BvaW50TGlzdCogdG9MaXN0LCBmbG9hdCBwcm9n
cmVzcyk7CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdDsKIAotICAgIHByaXZhdGU6
Ci0gICAgICAgIFNWR1BvaW50TGlzdChjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgfTsKKyAg
ICBzdGF0aWMgYm9vbCBjcmVhdGVBbmltYXRlZChjb25zdCBTVkdQb2ludExpc3QmIGZyb21MaXN0
LCBjb25zdCBTVkdQb2ludExpc3QmIHRvTGlzdCwgU1ZHUG9pbnRMaXN0JiByZXN1bHRMaXN0LCBm
bG9hdCBwcm9ncmVzcyk7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9T
VkdQb2x5RWxlbWVudC5jcHAJKHJldmlzaW9uIDcxNDEwKQorKysgV2ViQ29yZS9zdmcvU1ZHUG9s
eUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwyOSArMzksMTggQEAgU1ZHUG9seUVs
ZW1lbnQ6OlNWR1BvbHlFbGVtZW50KGNvbnN0IFF1YQogewogfQogCi1TVkdQb2ludExpc3QqIFNW
R1BvbHlFbGVtZW50Ojpwb2ludHMoKSBjb25zdAotewotICAgIGlmICghbV9wb2ludHMpCi0gICAg
ICAgIG1fcG9pbnRzID0gU1ZHUG9pbnRMaXN0OjpjcmVhdGUoU1ZHTmFtZXM6OnBvaW50c0F0dHIp
OwotCi0gICAgcmV0dXJuIG1fcG9pbnRzLmdldCgpOwotfQotCi1TVkdQb2ludExpc3QqIFNWR1Bv
bHlFbGVtZW50OjphbmltYXRlZFBvaW50cygpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUUhCi0gICAg
cmV0dXJuIDA7Ci19Ci0KIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlID0gYXR0
ci0+dmFsdWUoKTsKICAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpwb2ludHNBdHRy
KSB7Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBwb2ludHMoKS0+Y2xl
YXIoZWMpOwotCi0gICAgICAgIGlmICghcG9pbnRzTGlzdEZyb21TVkdEYXRhKHBvaW50cygpLCB2
YWx1ZSkpCisgICAgICAgIFNWR1BvaW50TGlzdCBuZXdMaXN0OworICAgICAgICBpZiAoIXBvaW50
c0xpc3RGcm9tU1ZHRGF0YShuZXdMaXN0LCB2YWx1ZSkpCiAgICAgICAgICAgICBkb2N1bWVudCgp
LT5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnJlcG9ydEVycm9yKCJQcm9ibGVtIHBhcnNpbmcgcG9p
bnRzPVwiIiArIHZhbHVlICsgIlwiIik7CisKKyAgICAgICAgaWYgKFNWR0FuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3Q+KiBsaXN0ID0gbV9hbmltYXRhYmxlUG9pbnRzTGlz
dC5nZXQoKSkKKyAgICAgICAgICAgIGxpc3QtPmRldGFjaExpc3RXcmFwcGVycyhuZXdMaXN0LnNp
emUoKSk7CisKKyAgICAgICAgbV9wb2ludHMudmFsdWUgPSBuZXdMaXN0OwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGlmIChTVkdUZXN0czo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCiAgICAg
ICAgICAgICByZXR1cm47CkBAIC03NywxMCArNjYsNiBAQCB2b2lkIFNWR1BvbHlFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkCiB7CiAgICAgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogCi0gICAgLy8gVGhlIHBvaW50cyBwcm9w
ZXJ0eSBpcyBub3QgYSByZWd1bGFyIFNWR0FuaW1hdGVkUHJvcGVydHksIHN0aWxsIHdlIHVzZSB0
aGUgc2FtZSBTVkc8LT5YTUwgRE9NIHN5bmNocm9uaXphdGlvbiBmcmFtZXdvcmsuCi0gICAgaWYg
KGF0dHJOYW1lID09IFNWR05hbWVzOjpwb2ludHNBdHRyKQotICAgICAgICBpbnZhbGlkYXRlU1ZH
QXR0cmlidXRlcygpOwotCiAgICAgUmVuZGVyU1ZHUGF0aCogcmVuZGVyZXIgPSBzdGF0aWNfY2Fz
dDxSZW5kZXJTVkdQYXRoKj4odGhpcy0+cmVuZGVyZXIoKSk7CiAgICAgaWYgKCFyZW5kZXJlcikK
ICAgICAgICAgcmV0dXJuOwpAQCAtMTA5LDE0ICs5NCw0NCBAQCB2b2lkIFNWR1BvbHlFbGVtZW50
OjpzeW5jaHJvbml6ZVByb3BlcnR5CiAKICAgICBpZiAoYXR0ck5hbWUgPT0gYW55UU5hbWUoKSkg
ewogICAgICAgICBzeW5jaHJvbml6ZUV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQoKTsKLSAgICAg
ICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVN5bmNocm9uaXplcjx0cnVlPjo6c3luY2hyb25pemUodGhp
cywgU1ZHTmFtZXM6OnBvaW50c0F0dHIsIHBvaW50cygpLT52YWx1ZUFzU3RyaW5nKCkpOworICAg
ICAgICBzeW5jaHJvbml6ZVBvaW50cygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
aWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5h
bWUpKQogICAgICAgICBzeW5jaHJvbml6ZUV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQoKTsKICAg
ICBlbHNlIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6cG9pbnRzQXR0cikKLSAgICAgICAgU1ZH
QW5pbWF0ZWRQcm9wZXJ0eVN5bmNocm9uaXplcjx0cnVlPjo6c3luY2hyb25pemUodGhpcywgYXR0
ck5hbWUsIHBvaW50cygpLT52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICBzeW5jaHJvbml6ZVBv
aW50cygpOworfQorCit2b2lkIFNWR1BvbHlFbGVtZW50OjpzeW5jaHJvbml6ZVBvaW50cygpCit7
CisgICAgaWYgKCFtX3BvaW50cy5zaG91bGRTeW5jaHJvbml6ZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVN5bmNocm9uaXplcjx0cnVlPjo6c3luY2hyb25pemUo
dGhpcywgU1ZHTmFtZXM6OnBvaW50c0F0dHIsIG1fcG9pbnRzLnZhbHVlLnZhbHVlQXNTdHJpbmco
KSk7Cit9CisKK1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0PiogU1ZHUG9seUVs
ZW1lbnQ6OnBvaW50cygpCit7CisgICAgaWYgKCFtX2FuaW1hdGFibGVQb2ludHNMaXN0KSB7Cisg
ICAgICAgIG1fcG9pbnRzLnNob3VsZFN5bmNocm9uaXplID0gdHJ1ZTsKKyAgICAgICAgbV9hbmlt
YXRhYmxlUG9pbnRzTGlzdCA9IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cE9yQ3JlYXRlV3Jh
cHBlcjxTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0PiAsIFNWR1Bv
aW50TGlzdD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLCBTVkdOYW1l
czo6cG9pbnRzQXR0ciwgU1ZHTmFtZXM6OnBvaW50c0F0dHIubG9jYWxOYW1lKCksIG1fcG9pbnRz
LnZhbHVlKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdQb2ludExpc3Q+Kj4obV9hbmltYXRhYmxlUG9pbnRzTGlzdC0+YmFzZVZhbCgp
KTsKK30KKworU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3Q+KiBTVkdQb2x5RWxl
bWVudDo6YW5pbWF0ZWRQb2ludHMoKQoreworICAgIGlmICghbV9hbmltYXRhYmxlUG9pbnRzTGlz
dCkgeworICAgICAgICBtX3BvaW50cy5zaG91bGRTeW5jaHJvbml6ZSA9IHRydWU7CisgICAgICAg
IG1fYW5pbWF0YWJsZVBvaW50c0xpc3QgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBPckNy
ZWF0ZVdyYXBwZXI8U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50TGlzdD4g
LCBTVkdQb2ludExpc3Q+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcywg
U1ZHTmFtZXM6OnBvaW50c0F0dHIsIFNWR05hbWVzOjpwb2ludHNBdHRyLmxvY2FsTmFtZSgpLCBt
X3BvaW50cy52YWx1ZSk7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR0xpc3RQ
cm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0Pio+KG1fYW5pbWF0YWJsZVBvaW50c0xpc3QtPmFu
aW1WYWwoKSk7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuaAkocmV2aXNpb24gNzE0MTAp
CisrKyBXZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw0
MSArMjIsNDYgQEAKICNkZWZpbmUgU1ZHUG9seUVsZW1lbnRfaAogCiAjaWYgRU5BQkxFKFNWRykK
LSNpbmNsdWRlICJTVkdBbmltYXRlZFBvaW50cy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJv
cGVydHlNYWNyb3MuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgi
CiAjaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlLmgiCisjaW5jbHVkZSAiU1ZHUG9pbnRMaXN0LmgiCiAj
aW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdU
ZXN0cy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBTVkdQb2x5RWxlbWVu
dCA6ICBwdWJsaWMgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVibGljIFNWR1Rlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1YmxpYyBTVkdMYW5nU3BhY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVi
bGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVibGljIFNWR0FuaW1hdGVkUG9pbnRzIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZp
cnR1YWwgU1ZHUG9pbnRMaXN0KiBwb2ludHMoKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBTVkdQ
b2ludExpc3QqIGFuaW1hdGVkUG9pbnRzKCkgY29uc3Q7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAg
ICAgIFNWR1BvbHlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwotCi0g
ICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVy
biBTVkdUZXN0czo6aXNWYWxpZCgpOyB9Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFw
cGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOyAKLSAgICAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
c3luY2hyb25pemVQcm9wZXJ0eShjb25zdCBRdWFsaWZpZWROYW1lJik7CitjbGFzcyBTVkdQb2x5
RWxlbWVudCA6IHB1YmxpYyBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudAorICAgICAgICAg
ICAgICAgICAgICAgLCBwdWJsaWMgU1ZHVGVzdHMKKyAgICAgICAgICAgICAgICAgICAgICwgcHVi
bGljIFNWR0xhbmdTcGFjZQorICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCB7CitwdWJsaWM6CisgICAgU1ZHTGlzdFByb3BlcnR5VGVhck9m
ZjxTVkdQb2ludExpc3Q+KiBwb2ludHMoKTsKKyAgICBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNW
R1BvaW50TGlzdD4qIGFuaW1hdGVkUG9pbnRzKCk7CiAKLSAgICAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzTWFya2VycygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICBTVkdQb2ludExpc3Qm
IHBvaW50TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9pbnRzLnZhbHVlOyB9CiAKLSAgICAgICAg
Ly8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBERUNMQVJFX0FOSU1BVEVE
X1NUQVRJQ19QUk9QRVJUWV9ORVcoU1ZHUG9seUVsZW1lbnQsIFNWR05hbWVzOjpleHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkQXR0ciwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKK3Byb3RlY3RlZDoKKyAgICBTVkdQb2x5RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgICAgICBtdXRhYmxlIFJlZlB0
cjxTVkdQb2ludExpc3Q+IG1fcG9pbnRzOwotICAgIH07Citwcml2YXRlOgorICAgIHZpcnR1YWwg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQorCisg
ICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOyAKKyAgICB2
aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7Cisg
ICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUHJvcGVydHkoY29uc3QgUXVhbGlmaWVkTmFtZSYp
OworCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTWFya2VycygpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKworICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKKyAgICBERUNMQVJF
X0FOSU1BVEVEX1NUQVRJQ19QUk9QRVJUWV9ORVcoU1ZHUG9seUVsZW1lbnQsIFNWR05hbWVzOjpl
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0ciwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKworICAgIHZvaWQgc3luY2hyb25pemVQ
b2ludHMoKTsKKworcHJvdGVjdGVkOgorICAgIG11dGFibGUgU1ZHU3luY2hyb25pemFibGVBbmlt
YXRlZFByb3BlcnR5PFNWR1BvaW50TGlzdD4gbV9wb2ludHM7CisgICAgUmVmUHRyPFNWR0FuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3Q+ID4gbV9hbmltYXRhYmxlUG9pbnRz
TGlzdDsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogV2ViQ29yZS9zdmcv
U1ZHUG9seWdvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BvbHln
b25FbGVtZW50LmNwcAkocmV2aXNpb24gNzE0MTApCisrKyBXZWJDb3JlL3N2Zy9TVkdQb2x5Z29u
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDYgQEAKICNpZiBFTkFCTEUo
U1ZHKQogI2luY2x1ZGUgIlNWR1BvbHlnb25FbGVtZW50LmgiCiAKLSNpbmNsdWRlICJTVkdQb2lu
dExpc3QuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbmxpbmUgU1ZHUG9seWdvbkVsZW1l
bnQ6OlNWR1BvbHlnb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50KiBkb2N1bWVudCkKQEAgLTQxLDE1ICszOSwxNSBAQCB2b2lkIFNWR1BvbHlnb25FbGVtZW50
Ojp0b1BhdGhEYXRhKFBhdGgmCiB7CiAgICAgQVNTRVJUKHBhdGguaXNFbXB0eSgpKTsKIAotICAg
IGludCBsZW4gPSBwb2ludHMoKS0+bnVtYmVyT2ZJdGVtcygpOwotICAgIGlmIChsZW4gPCAxKQor
ICAgIFNWR1BvaW50TGlzdCYgcG9pbnRzID0gcG9pbnRMaXN0KCk7CisgICAgaWYgKHBvaW50cy5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKLSAgICBwYXRoLm1vdmVUbyhwb2ludHMoKS0+Z2V0SXRlbSgwLCBlYykpOwogCi0gICAgZm9y
IChpbnQgaSA9IDE7IGkgPCBsZW47ICsraSkKLSAgICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRz
KCktPmdldEl0ZW0oaSwgZWMpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3QoKSk7CisK
KyAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAxOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXQoaSkp
OwogCiAgICAgcGF0aC5jbG9zZVN1YnBhdGgoKTsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1Bv
bHlnb25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxl
bWVudC5pZGwJKHJldmlzaW9uIDcxNDEwKQorKysgV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1l
bnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCw5IEBAIG1vZHVsZSBzdmcgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdT
cGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1N0eWxhYmxlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1RyYW5zZm9ybWFibGUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHQW5p
bWF0ZWRQb2ludHMgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNWR1RyYW5zZm9ybWFibGUgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHUG9pbnRMaXN0IHBvaW50czsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50
TGlzdCBhbmltYXRlZFBvaW50czsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQ
b2x5bGluZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BvbHlsaW5l
RWxlbWVudC5jcHAJKHJldmlzaW9uIDcxNDEwKQorKysgV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsNiBAQAogI2lmIEVOQUJMRShT
VkcpCiAjaW5jbHVkZSAiU1ZHUG9seWxpbmVFbGVtZW50LmgiCiAKLSNpbmNsdWRlICJTVkdQb2lu
dExpc3QuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbmxpbmUgU1ZHUG9seWxpbmVFbGVt
ZW50OjpTVkdQb2x5bGluZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqIGRvY3VtZW50KQpAQCAtNDEsMTUgKzM5LDE1IEBAIHZvaWQgU1ZHUG9seWxpbmVFbGVt
ZW50Ojp0b1BhdGhEYXRhKFBhdGgKIHsKICAgICBBU1NFUlQocGF0aC5pc0VtcHR5KCkpOwogCi0g
ICAgaW50IGxlbiA9IHBvaW50cygpLT5udW1iZXJPZkl0ZW1zKCk7Ci0gICAgaWYgKGxlbiA8IDEp
CisgICAgU1ZHUG9pbnRMaXN0JiBwb2ludHMgPSBwb2ludExpc3QoKTsKKyAgICBpZiAocG9pbnRz
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgcGF0aC5tb3ZlVG8ocG9pbnRzKCktPmdldEl0ZW0oMCwgZWMpKTsKKyAgICBwYXRoLm1v
dmVUbyhwb2ludHMuZmlyc3QoKSk7CiAKLSAgICBmb3IgKGludCBpID0gMTsgaSA8IGxlbjsgKytp
KQotICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMoKS0+Z2V0SXRlbShpLCBlYykpOworICAg
IHVuc2lnbmVkIHNpemUgPSBwb2ludHMuc2l6ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDE7
IGkgPCBzaXplOyArK2kpCisgICAgICAgIHBhdGguYWRkTGluZVRvKHBvaW50cy5hdChpKSk7CiB9
CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmlkbAkocmV2aXNpb24gNzE0MTAp
CisrKyBXZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw4ICszMCw5IEBAIG1vZHVsZSBzdmcgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNWR1N0eWxhYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdBbmltYXRlZFBvaW50cyB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1RyYW5z
Zm9ybWFibGUgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9pbnRMaXN0IHBvaW50
czsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50TGlzdCBhbmltYXRlZFBvaW50
czsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkocmV2aXNpb24gNzE0MTAp
CisrKyBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEz
LDE0ICsyMTMsMTQgQEAgdm9pZCBTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50U2NhbGUoZmxvYQog
ICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNl
SW52YWxpZGF0aW9uKG9iamVjdCk7CiB9CiAKLUZsb2F0UG9pbnQgU1ZHU1ZHRWxlbWVudDo6Y3Vy
cmVudFRyYW5zbGF0ZSgpIGNvbnN0Cit2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRUcmFu
c2xhdGUoY29uc3QgRmxvYXRQb2ludCYgdHJhbnNsYXRpb24pCiB7Ci0gICAgcmV0dXJuIG1fdHJh
bnNsYXRpb247CisgICAgbV90cmFuc2xhdGlvbiA9IHRyYW5zbGF0aW9uOworICAgIHVwZGF0ZUN1
cnJlbnRUcmFuc2xhdGUoKTsKIH0KIAotdm9pZCBTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50VHJh
bnNsYXRlKGNvbnN0IEZsb2F0UG9pbnQgJnRyYW5zbGF0aW9uKQordm9pZCBTVkdTVkdFbGVtZW50
Ojp1cGRhdGVDdXJyZW50VHJhbnNsYXRlKCkKIHsKLSAgICBtX3RyYW5zbGF0aW9uID0gdHJhbnNs
YXRpb247CiAgICAgaWYgKFJlbmRlck9iamVjdCogb2JqZWN0ID0gcmVuZGVyZXIoKSkKICAgICAg
ICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCh0cnVlKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZH
U1ZHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAko
cmV2aXNpb24gNzE0MTApCisrKyBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc4LDkgKzc4LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxv
YXQgY3VycmVudFNjYWxlKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0Q3VycmVudFNjYWxlKGZs
b2F0IHNjYWxlKTsKIAotICAgICAgICBGbG9hdFBvaW50IGN1cnJlbnRUcmFuc2xhdGUoKSBjb25z
dDsKKyAgICAgICAgRmxvYXRQb2ludCYgY3VycmVudFRyYW5zbGF0ZSgpIHsgcmV0dXJuIG1fdHJh
bnNsYXRpb247IH0KICAgICAgICAgdm9pZCBzZXRDdXJyZW50VHJhbnNsYXRlKGNvbnN0IEZsb2F0
UG9pbnQmKTsKLSAgICAgICAgCisKKyAgICAgICAgLy8gT25seSB1c2VkIGZyb20gdGhlIGJpbmRp
bmdzLgorICAgICAgICB2b2lkIHVwZGF0ZUN1cnJlbnRUcmFuc2xhdGUoKTsKKwogICAgICAgICBT
TUlMVGltZUNvbnRhaW5lciogdGltZUNvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fdGltZUNv
bnRhaW5lci5nZXQoKTsgfQogICAgICAgICAKICAgICAgICAgdm9pZCBwYXVzZUFuaW1hdGlvbnMo
KTsKSW5kZXg6IFdlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAko
cmV2aXNpb24gNzE0MTApCisrKyBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVh
ck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFNWR1Byb3BlcnR5
VGVhck9mZiA6IHB1YmxpYyBTVkdQcm8KIHB1YmxpYzoKICAgICB0eXBlZGVmIFNWR1Byb3BlcnR5
VGVhck9mZjxQcm9wZXJ0eVR5cGU+IFNlbGY7CiAKLSAgICAvLyBVc2VkIGZvciBbU1ZHQW5pbWF0
ZWRQcm9wZXJ0eV0gdHlwZXMgKGZvciBleGFtcGxlOiBTVkdBbmltYXRlZExlbmd0aDo6YmFzZVZh
bCgpKS4KKyAgICAvLyBVc2VkIGZvciBjaGlsZCB0eXBlcyAoYmFzZVZhbC9hbmltVmFsKSBvZiBh
IFNWR0FuaW1hdGVkKiBwcm9wZXJ0eSAoZm9yIGV4YW1wbGU6IFNWR0FuaW1hdGVkTGVuZ3RoOjpi
YXNlVmFsKCkpLgogICAgIC8vIEFsc28gdXNlZCBmb3IgbGlzdCB0ZWFyIG9mZnMgKGZvciBleGFt
cGxlOiB0ZXh0LnguYmFzZVZhbC5nZXRJdGVtKDApKS4KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
ZWxmPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQogICAgIHsKQEAgLTQwLDcgKzQwLDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlbGYoYW5pbWF0ZWRQcm9wZXJ0
eSwgdmFsdWUpKTsKICAgICB9CiAKLSAgICAvLyBVc2VkIGZvciBub24tYW5pbWF0ZWQgUE9EIHR5
cGVzIChmb3IgZXhhbXBsZTogU1ZHTGVuZ3RoKS4KKyAgICAvLyBVc2VkIGZvciBub24tYW5pbWF0
ZWQgUE9EIHR5cGVzIChmb3IgZXhhbXBsZTogU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHTGVuZ3Ro
KCkpLgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlbGY+IGNyZWF0ZShjb25zdCBQcm9wZXJ0eVR5
cGUmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Vs
Zihpbml0aWFsVmFsdWUpKTsKQEAgLTgyLDE0ICs4MiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIG1f
YW5pbWF0ZWRQcm9wZXJ0eSA9IDA7CiAgICAgfQogCi0gICAgdm9pZCBjb21taXRDaGFuZ2UoKQor
ICAgIHZpcnR1YWwgdm9pZCBjb21taXRDaGFuZ2UoKQogICAgIHsKICAgICAgICAgaWYgKCFtX2Fu
aW1hdGVkUHJvcGVydHkgfHwgbV92YWx1ZUlzQ29weSkKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5jb21taXRDaGFuZ2UoKTsKICAgICB9CiAKLXByaXZh
dGU6Citwcm90ZWN0ZWQ6CiAgICAgU1ZHUHJvcGVydHlUZWFyT2ZmKFNWR0FuaW1hdGVkUHJvcGVy
dHkqIGFuaW1hdGVkUHJvcGVydHksIFByb3BlcnR5VHlwZSYgdmFsdWUpCiAgICAgICAgIDogbV9h
bmltYXRlZFByb3BlcnR5KGFuaW1hdGVkUHJvcGVydHkpCiAgICAgICAgICwgbV92YWx1ZSgmdmFs
dWUpCkluZGV4OiBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCShy
ZXZpc2lvbiA3MTQxMCkKKysrIFdlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFp
dHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlNWR0xlbmd0
aC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aExpc3QuaCIKICNpbmNsdWRlICJTVkdOdW1iZXJMaXN0
LmgiCisjaW5jbHVkZSAiU1ZHUG9pbnRMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIgogI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3QuaCIKICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC0xMjMsNiArMTI0LDEyIEBAIHN0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdTdHJpbmdMaXN0PiAKICAgICB0eXBlZGVmIFN0cmluZyBMaXN0SXRlbVR5cGU7
CiB9OwogCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0
PiB7CisgICAgc3RhdGljIFNWR1BvaW50TGlzdCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBTVkdQ
b2ludExpc3QoKTsgfQorICAgIHR5cGVkZWYgRmxvYXRQb2ludCBMaXN0SXRlbVR5cGU7Cit9Owor
CiB9CiAKICNlbmRpZgpJbmRleDogV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9w
ZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0
YXRpY1Byb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAx
MC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmZf
aAorI2RlZmluZSBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmZfaAorCisjaWYgRU5BQkxFKFNWRykK
KyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRlYXJPZmYuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb250ZXh0RWxlbWVudCwgdHlwZW5hbWUgUHJvcGVydHlUeXBl
PgorY2xhc3MgU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmIDogcHVibGljIFNWR1Byb3BlcnR5VGVh
ck9mZjxQcm9wZXJ0eVR5cGU+IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIFNWR1N0YXRpY1Byb3Bl
cnR5VGVhck9mZjxDb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlPiBTZWxmOworICAgIHR5cGVk
ZWYgdm9pZCAoQ29udGV4dEVsZW1lbnQ6OipVcGRhdGVNZXRob2QpKCk7CisKKyAgICAvLyBVc2Vk
IGZvciBub24tYW5pbWF0ZWQgUE9EIHR5cGVzIHRoYXQgYXJlIG5vdCBhc3NvY2lhdGVkIHdpdGgg
YSBTVkdBbmltYXRlZFByb3BlcnR5IG9iamVjdCwgbm9yIHdpdGggYSBYTUwgRE9NIGF0dHJpYnV0
ZQorICAgIC8vIChmb3IgZXhhbXBsZTogU1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRyYW5zbGF0ZSku
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VsZj4gY3JlYXRlKENvbnRleHRFbGVtZW50KiBjb250
ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKKyAg
ICB7CisgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU2VsZihjb250ZXh0RWxlbWVudCwgdmFsdWUsIHVwZGF0ZSkpOworICAgIH0KKwor
ICAgIHZpcnR1YWwgdm9pZCBjb21taXRDaGFuZ2UoKSB7IChtX2NvbnRleHRFbGVtZW50LmdldCgp
LT4qbV91cGRhdGUpKCk7IH0KKworcHJpdmF0ZToKKyAgICBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJP
ZmYoQ29udGV4dEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZhbHVlLCBV
cGRhdGVNZXRob2QgdXBkYXRlKQorICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0
eVR5cGU+KDAsIHZhbHVlKQorICAgICAgICAsIG1fY29udGV4dEVsZW1lbnQoY29udGV4dEVsZW1l
bnQpCisgICAgICAgICwgbV91cGRhdGUodXBkYXRlKQorICAgIHsKKyAgICB9CisKKyAgICBSZWZQ
dHI8Q29udGV4dEVsZW1lbnQ+IG1fY29udGV4dEVsZW1lbnQ7CisgICAgVXBkYXRlTWV0aG9kIG1f
dXBkYXRlOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykKKyNlbmRpZiAvLyBTVkdT
dGF0aWNQcm9wZXJ0eVRlYXJPZmZfaApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNlLXBy
b3BlcnR5LXN5bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDcxNDEw
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNlLXByb3BlcnR5LXN5
bmNocm9uaXphdGlvbi1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCAr
MSw1IEBACiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTogRXJyb3I6IFByb2JsZW0gcGFyc2luZyBw
b2ludHM9IjAiCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogRXJyb3I6IFByb2JsZW0gcGFyc2lu
ZyBwb2ludHM9IjAiCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMApJbmRleDog
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wb2x5bGluZS1wb2ludHMtY3Jhc2gtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vcG9seWxpbmUtcG9pbnRzLWNy
YXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNzE0MTApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL3BvbHlsaW5lLXBvaW50cy1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEgKzEsMiBAQAorQ2F1Z2h0IGV4Y2VwdGlvbjogRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBE
T00gRXhjZXB0aW9uIDE3CiBQQVNTRUQgLS0gV2ViS2l0IGRpZCBub3QgY3Jhc2ghCkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BvbHlsaW5lLXBvaW50cy1jcmFzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vcG9seWxpbmUtcG9pbnRzLWNyYXNoLmh0bWwJ
KHJldmlzaW9uIDcxNDEwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wb2x5bGluZS1wb2lu
dHMtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDEwIEBAIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwogCiB2YXIgcG9seWxpbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIiwgInBvbHlsaW5lIik7Ci1wb2x5bGluZS5wb2ludHMuYXBwZW5k
SXRlbShudWxsKTsKK3RyeSB7CisgICAgcG9seWxpbmUucG9pbnRzLmFwcGVuZEl0ZW0obnVsbCk7
Cit9IGNhdGNoIChlKSB7CisgICAgZG9jdW1lbnQud3JpdGUoIkNhdWdodCBleGNlcHRpb246ICIg
KyBlICsgIjxicj4iKTsKK30KIGRvY3VtZW50LndyaXRlKCJQQVNTRUQgLS0gV2ViS2l0IGRpZCBu
b3QgY3Jhc2ghIikKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2RvbS9wb2ludHMt
cGFyc2VyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS9wb2ludHMtcGFy
c2VyLmh0bWwJKHJldmlzaW9uIDcxNDEwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2RvbS9wb2ludHMt
cGFyc2VyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gcGFy
c2VQb2ludHMoc3RyLCByZXN1bHQpCiAgICAgaWYgKHBvaW50cyA9PT0gcmVzdWx0KSB7CiAgICAg
ICAgIHRlc3RQYXNzZWQoIiciICsgcG9pbnRzICsgIicgaXMgJyIgKyByZXN1bHQgKyAiJyIpOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoIiciICsgc3RyaW5nICsgIicgc2hvdWxk
IGJlICciICsgcmVzdWx0ICsgIicsIGJ1dCBpcyAnIiArIHBvaW50cyArICInIik7CisgICAgICAg
IHRlc3RGYWlsZWQoIiciICsgc3RyICsgIicgc2hvdWxkIGJlICciICsgcmVzdWx0ICsgIicsIGJ1
dCBpcyAnIiArIHBvaW50cyArICInIik7CiAgICAgfQogICAgIGRlYnVnKCIiKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73222</attachid>
            <date>2010-11-08 01:15:46 -0800</date>
            <delta_ts>2010-11-08 05:17:51 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>SVGPointListRewrite.diff</filename>
            <type>text/plain</type>
            <size>87880</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTUwMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODggQEAKKzIwMTAtMTEtMDggIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ29udmVydCBTVkdQb2ludC9TVkdQb2ludExpc3QgdG8gdGhlIG5ldyBTVkdQcm9wZXJ0
eVRlYXJPZmYgY29uY2VwdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDkwNjcKKworICAgICAgICBSZW1vdmUgU1ZHQW5pbWF0ZWRQb2ludHMgaW50ZXJm
YWNlLCBub3QgcmVhY2hhYmxlIHRocm91Z2ggYmluZGluZ3MgYW55d2F5LCBpdCB3YXMganVzdCBh
bm90aGVyIE1JIGludGVyZmFjZSwgdGhhdAorICAgICAgICBub3cgaGFzIGJlZW4gaW50ZWdyYXRl
ZCBpbnRvIFNWR1BvbHlsaW5lRWxlbWVudC9TVkdQb2x5Z29uRWxlbWVudCwgc2ltcGxmeWluZyB0
aGUgZ2VuZXJhdGlvbiBhbmQgYXZvaWRpbmcgdmlydHVhbAorICAgICAgICBjYWxscyBpbiBTVkdQ
b2x5bGluZUVsZW1lbnQvU1ZHUG9seWdvbkVsZW1lbnQuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBu
ZWVkIHRvIHVzZSBtYW51YWwgWE1MIDwtPiBTVkcgRE9NIHN5bmNocm9uaXphdGlvbi4gVGhlIHBv
aW50cy9hbmltYXRlZFBvaW50cyBtZXRob2RzIG5vdyBjcmVhdGUKKyAgICAgICAgU1ZHTGlzdFBy
b3BlcnR5VGVhck9mZnMsIHRodXMgdXNpbmcgdGhlIHNhbWUgc3luY2hyb25pemF0aW9uL2V4cG9z
ZS10by1iaW5kaW5ncyBjb25jZXB0IGxpa2UgYWxsIG90aGVyCisgICAgICAgIGFuaW1hdGVkIHBy
b3BlcnRpZXMuCisKKyAgICAgICAgQ29udmVydCBTVkdQb2ludC9TVkdQb2ludExpc3QgdG8gdXNl
IHRoZSBuZXcgU1ZHUHJvcGVydHlUZWFyT2ZmIGNvbmNlcHQsIGFkYXB0ZWQgYWxsIGNvZGUsIGFz
IFNWR1BvaW50TGlzdAorICAgICAgICBpcyBub3cgYSBwbGFpbiBWZWN0b3I8RmxvYXRQb2ludD4u
IEVuYWJsZSBTdHJpY3RUeXBlQ2hlY2tpbmcgZm9yIFNWR1BvaW50LgorCisgICAgICAgIFRlc3Q6
IHN2Zy9kb20vU1ZHUG9pbnQuaHRtbAorCisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLnY4Ymlu
ZGluZ3MubWs6IFJlbW92ZSBTVkdBbmltYXRlZFBvaW50cyAoYW5kIElETCBnZW5lcmF0aW9uKS4K
KyAgICAgICAgKiBBbmRyb2lkLm1rOiBEaXR0by4KKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDog
RGl0dG8uCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogRGl0dG8uCisgICAgICAgICog
R05VbWFrZWZpbGUuYW06IERpdHRvLiBBZGQgU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmggdG8g
YnVpbGQuCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
Lm9yZGVyOiBSZW1vdmUgU1ZHQW5pbWF0ZWRQb2ludHMgc3ltYm9scy4KKyAgICAgICAgKiBXZWJD
b3JlLnBybzogUmVtb3ZlIFNWR0FuaW1hdGVkUG9pbnRzIChhbmQgSURMIGdlbmVyYXRpb24pLiBB
ZGQgU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmggdG8gYnVpbGQuCisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01T
VkcuaDogUmVtb3ZlIERPTVNWR0FuaW1hdGVkUG9pbnRzIGluY2x1ZGUuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtOiBBZGFwdCBjb2RlIGNvbnZlcnRpbmcgU1ZH
UG9pbnQvU1ZHUG9pbnRMaXN0IHRvIHVzZSB0aGUgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiBjb25j
ZXB0cy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbTogRGl0
dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbTogRGl0
dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06IERpdHRv
LgorICAgICAgICAqIHJlbmRlcmluZy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcDogQWRhcHQgZm9y
IFNWR1BvbHlFbGVtZW50IEFQSSBjaGFuZ2UsIHVzZSBwb2ludExpc3QoKSBpbnN0ZWFkIG9mIHBv
aW50cygpICh3aGljaCBpcyBvbmx5IHVzZWQgZm9yIGJpbmRpbmdzIG5vdykuCisgICAgICAgIChX
ZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBzdmcvU1ZHQWxsSW5PbmUuY3BwOiBSZW1v
dmUgU1ZHQW5pbWF0ZWRQb2ludHMuY3BwLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlRWxlbWVu
dC5jcHA6IEFkYXB0IGZvciBTVkdQb2ludExpc3QgQVBJIGNoYW5nZSwgaXQncyBub3QgcmVmY291
bnRlZCBhbnltb3JlLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6
OmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
RWxlbWVudDo6YXBwbHlSZXN1bHRzVG9UYXJnZXQpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRl
RWxlbWVudC5oOiAgRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIHN2
Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwOiBBZGFwdCBmb3IgU1ZHUG9pbnRMaXN0IEFQSSBjaGFu
Z2UsIGl0J3Mgbm90IHJlZmNvdW50ZWQgYW55bW9yZS4KKyAgICAgICAgKFdlYkNvcmU6OnBvaW50
c0xpc3RGcm9tU1ZHRGF0YSk6CisgICAgICAgICogc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5oOiBE
aXR0by4KKyAgICAgICAgKiBzdmcvU1ZHUG9pbnQuaWRsOiBSZW1vdmUgUE9EVHlwZSBtYXJrZXIs
IGFuZCBhZGQgU3RyaWN0VHlwZUNoZWNraW5nIGZvciB4L3kgYXR0cmlidXRlcy4KKyAgICAgICAg
KiBzdmcvU1ZHUG9pbnRMaXN0LmNwcDogU1ZHUG9pbnRMaXN0IGlzIG5vdyBhIHBsYWluIFZlY3Rv
cjxGbG9hdFBvaW50PiwgcmV3cml0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50TGlzdDo6
dmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OmNyZWF0ZUFu
aW1hdGVkKToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0Lmg6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpTVkdQb2ludExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdQ
b2x5RWxlbWVudC5jcHA6IFJlbW92ZSBtYW51YWwgU1ZHIDwtPiBYTUwgRE9NIHN5bmNocm9uaXph
dGlvbi4gTm93IGhhbmRsZXMgdGhyb3VnaCB0aGUgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYg
Y29uY2VwdC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6c3luY2hyb25pemVQ
cm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6c3luY2hyb25pemVQ
b2ludHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnBvaW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6YW5pbWF0ZWRQb2ludHMpOgorICAgICAgICAq
IHN2Zy9TVkdQb2x5RWxlbWVudC5oOiBSZWluZGVudGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UG9seUVsZW1lbnQ6OnBvaW50TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVu
dDo6aXNWYWxpZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6c3VwcG9ydHNN
YXJrZXJzKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seWdvbkVsZW1lbnQuY3BwOiBBZGFwdCBmb3Ig
U1ZHUG9pbnRMaXN0IEFQSSBjaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5Z29uRWxl
bWVudDo6dG9QYXRoRGF0YSk6CisgICAgICAgICogc3ZnL1NWR1BvbHlnb25FbGVtZW50LmlkbDog
UmVtb3ZlIFNWR0FuaW1hdGVkUG9pbnRzIGluaGVyaXRhbmNlLgorICAgICAgICAqIHN2Zy9TVkdQ
b2x5bGluZUVsZW1lbnQuY3BwOiBBZGFwdCBmb3IgU1ZHUG9pbnRMaXN0IEFQSSBjaGFuZ2UuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdQb2x5bGluZUVsZW1lbnQ6OnRvUGF0aERhdGEpOgorICAgICAg
ICAqIHN2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaWRsOiBSZW1vdmUgU1ZHQW5pbWF0ZWRQb2ludHMg
aW5oZXJpdGFuY2UuCisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6c2V0Q3VycmVudFRyYW5zbGF0ZSk6IFVzZSB1cGRhdGVD
dXJyZW50VHJhbnNsYXRlKCkuCisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50Ojp1cGRh
dGVDdXJyZW50VHJhbnNsYXRlKTogQWRkZWQsIG9ubHkgdXNlZCBieSB0aGUgYmluZGluZ3MsIGFm
dGVyIGNoYW5naW5nIGEgdmFsdWUgb2YgU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmIG9iamVjdC4K
KyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZH
RWxlbWVudDo6Y3VycmVudFRyYW5zbGF0ZSk6IFJldHVybiByZWZlcmVuY2UgdG8gbV90cmFuc2xh
dGlvbi4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaDogTWFk
ZSBjb25zdHJ1Y3RvcnMgcHJvdGVjdGVkLCBhcyBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYgaW5o
ZXJpdHMgZnJvbSBpdC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6Y29t
bWl0Q2hhbmdlKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5o
OiBBZGQgU1ZHUG9pbnRMaXN0IGhhbmRpbmcuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
U3RhdGljUHJvcGVydHlUZWFyT2ZmLmg6IEFkZGVkLiBVc2VkIGZvciBTVkdQcm9wZXJ0eSB0eXBl
cyByZXR1cm5lZCBieSBhdHRyaWJ1dGVzLCB0aGF0IGFyZSBub3QgYXNzb2NpYXRlZCB3aXRoIGEg
U1ZHQW5pbWF0ZWRQcm9wZXJ0eS4gKFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRUcmFuc2xhdGUpLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpjb21taXRDaGFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpTVkdTdGF0aWNQcm9w
ZXJ0eVRlYXJPZmYpOgorCiAyMDEwLTExLTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIFJlbW92ZSBzb21lIHVubmVlZGVkIGluY2x1ZGVz
LgpJbmRleDogV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCShyZXZpc2lvbiA3MTUw
MSkKKysrIFdlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsJKHdvcmtpbmcgY29w
eSkKQEAgLTUwNCw3ICs1MDQsNiBAQCBHRU4gKz0gXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmlu
ZGluZ3MvVjhTVkdBbmltYXRlZExlbmd0aExpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9i
aW5kaW5ncy9WOFNWR0FuaW1hdGVkTnVtYmVyLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmlu
ZGluZ3MvVjhTVkdBbmltYXRlZE51bWJlckxpc3QuaCBcCi0gICAgJChpbnRlcm1lZGlhdGVzKS9i
aW5kaW5ncy9WOFNWR0FuaW1hdGVkUG9pbnRzLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmlu
ZGluZ3MvVjhTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCiAgICAgJChpbnRlcm1l
ZGlhdGVzKS9iaW5kaW5ncy9WOFNWR0FuaW1hdGVkUmVjdC5oIFwKICAgICAkKGludGVybWVkaWF0
ZXMpL2JpbmRpbmdzL1Y4U1ZHQW5pbWF0ZWRTdHJpbmcuaCBcCkluZGV4OiBXZWJDb3JlL0FuZHJv
aWQubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9BbmRyb2lkLm1rCShyZXZpc2lvbiA3MTUwMSkK
KysrIFdlYkNvcmUvQW5kcm9pZC5tawkod29ya2luZyBjb3B5KQpAQCAtODYzLDcgKzg2Myw2IEBA
IExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXN2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAgXAogCXN2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAg
XAogCXN2Zy9TVkdBbmltYXRlZFBhdGhEYXRhLmNwcCBcCi0Jc3ZnL1NWR0FuaW1hdGVkUG9pbnRz
LmNwcCBcCiAJc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwIFwKIAlzdmcvU1ZHQ2lyY2xlRWxl
bWVudC5jcHAgXAogCXN2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwIFwKSW5kZXg6IFdlYkNvcmUv
Q01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2
aXNpb24gNzE1MDEpCisrKyBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xMDAsNyArMTAwLDYgQEAgU0VUKFdlYkNvcmVfSURMX0lOQ0xVREVTCiBTRVQoV2ViQ29yZV9J
RExfUFVSRV9GSUxFUwogICAgIHN2Zy9FbGVtZW50VGltZUNvbnRyb2wuaWRsCiAgICAgc3ZnL1NW
R0FuaW1hdGVkUGF0aERhdGEuaWRsCi0gICAgc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmlkbAogICAg
IHN2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmlkbAogICAgIHN2Zy9TVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaWRsCiAgICAgc3ZnL1NWR0ZpdFRvVmlld0JveC5p
ZGwKQEAgLTE3NzgsNyArMTc3Nyw2IEBAIElGIChFTkFCTEVfU1ZHKQogICAgICAgICBzdmcvU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5jcHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuY3BwCi0gICAgICAg
IHN2Zy9TVkdBbmltYXRlZFBvaW50cy5jcHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGlvbkVsZW1l
bnQuY3BwCiAgICAgICAgIHN2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAogICAgICAgICBzdmcvU1ZH
Q2xpcFBhdGhFbGVtZW50LmNwcApJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gNzE1MDEp
CisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTMzMCw3
ICszMzAsNiBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBTVkdBbmltYXRlZE51bWJlciBcCiAgICAg
U1ZHQW5pbWF0ZWROdW1iZXJMaXN0IFwKICAgICBTVkdBbmltYXRlZFBhdGhEYXRhIFwKLSAgICBT
VkdBbmltYXRlZFBvaW50cyBcCiAgICAgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIFwK
ICAgICBTVkdBbmltYXRlZFJlY3QgXAogICAgIFNWR0FuaW1hdGVkU3RyaW5nIFwKSW5kZXg6IFdl
YkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQkocmV2aXNpb24gNzE1MDEpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNv
cHkpCkBAIC0zMDUyLDYgKzMwNTIsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmggXAogCVdlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaCBcCiAJV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdT
dGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmggXAorCVdlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
U3RhdGljUHJvcGVydHlUZWFyT2ZmLmggXAogCVdlYkNvcmUvc3ZnL1JhZGlhbEdyYWRpZW50QXR0
cmlidXRlcy5oIFwKIAlXZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAgXAogCVdlYkNvcmUvc3Zn
L1NWR0FFbGVtZW50LmggXApAQCAtMzA3MSw4ICszMDcyLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaCBcCiAJV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAgXAogCVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aERh
dGEuaCBcCi0JV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuY3BwIFwKLQlXZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFBvaW50cy5oIFwKIAlXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW8uaCBcCiAJV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmggXAogCVdlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmggXApAQCAtNDE4MSw3ICs0MTgwLDYgQEAgd2ViY29y
ZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU1ZHQW5pbWF0
ZWROdW1iZXJMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NWR0FuaW1hdGVk
TnVtYmVyTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU1ZHQW5pbWF0ZWRQYXRo
RGF0YS5oIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU1ZHQW5pbWF0ZWRQb2ludHMuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
by5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW8uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NWR0FuaW1hdGVkUmVjdC5j
cHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHJldmlzaW9uIDcxNTAxKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdv
cmtpbmcgY29weSkKQEAgLTMyNiw3ICszMjYsNiBAQAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmlt
YXRlZE51bWJlci5pZGwnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3Qu
aWRsJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGwnLAotICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmltYXRlZFBvaW50cy5pZGwnLAogICAgICAgICAgICAgJ3N2Zy9TVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5p
bWF0ZWRSZWN0LmlkbCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmlkbCcs
CkBAIC0zOTc1LDYgKzM5NzQsNyBAQAogICAgICAgICAgICAgJ3N2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5VGVhck9mZi5oJywKICAgICAgICAgICAgICdzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eVRyYWl0cy5oJywKICAgICAgICAgICAgICdzdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJv
cGVydHlUZWFyT2ZmLmgnLAorICAgICAgICAgICAgJ3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1By
b3BlcnR5VGVhck9mZi5oJywKICAgICAgICAgICAgICdzdmcvQ29sb3JEaXN0YW5jZS5jcHAnLAog
ICAgICAgICAgICAgJ3N2Zy9Db2xvckRpc3RhbmNlLmgnLAogICAgICAgICAgICAgJ3N2Zy9EZXBy
ZWNhdGVkU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oJywKQEAgLTQwMTAsOCArNDAxMCw2IEBACiAgICAg
ICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5oJywKICAgICAgICAgICAgICdzdmcv
U1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFBh
dGhEYXRhLmgnLAotICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFBvaW50cy5jcHAnLAotICAg
ICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFBvaW50cy5oJywKICAgICAgICAgICAgICdzdmcvU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmlt
YXRlZFJlY3QuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmgnLApJbmRl
eDogV2ViQ29yZS9XZWJDb3JlLm9yZGVyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5v
cmRlcgkocmV2aXNpb24gNzE1MDEpCisrKyBXZWJDb3JlL1dlYkNvcmUub3JkZXIJKHdvcmtpbmcg
Y29weSkKQEAgLTI2NDk5LDcgKzI2NDk5LDYgQEAgX19aTjdXZWJDb3JlTDE2dHJhbnNmb3JtTGlz
dEZvckVQTlNfMTBTVgogX19aTjdXZWJDb3JlTDE5cG9seWxpbmVDb25zdHJ1Y3RvckVSS05TXzEz
UXVhbGlmaWVkTmFtZUVQTlNfOERvY3VtZW50RWIKIF9fWk43V2ViQ29yZTE4U1ZHUG9seWxpbmVF
bGVtZW50QzFFUktOU18xM1F1YWxpZmllZE5hbWVFUE5TXzhEb2N1bWVudEUKIF9fWk43V2ViQ29y
ZTE0U1ZHUG9seUVsZW1lbnRDMkVSS05TXzEzUXVhbGlmaWVkTmFtZUVQTlNfOERvY3VtZW50RQot
X19aTjdXZWJDb3JlMTdTVkdBbmltYXRlZFBvaW50c0MyRXYKIF9fWk43V2ViQ29yZTE0U1ZHUG9s
eUVsZW1lbnQxOXN2Z0F0dHJpYnV0ZUNoYW5nZWRFUktOU18xM1F1YWxpZmllZE5hbWVFCiBfX1pO
N1dlYkNvcmUxNFNWR1BvbHlFbGVtZW50MjBwYXJzZU1hcHBlZEF0dHJpYnV0ZUVQTlNfMTVNYXBw
ZWRBdHRyaWJ1dGVFCiBfX1pOSzdXZWJDb3JlMTRTVkdQb2x5RWxlbWVudDZwb2ludHNFdgpAQCAt
MjY2NTUsNyArMjY2NTQsNiBAQCBfX1pON1dlYkNvcmUxOFNWR1BvbHlsaW5lRWxlbWVudEQwRXYK
IF9fWk43V2ViQ29yZTE0U1ZHUG9seUVsZW1lbnREMkV2CiBfX1pON1dlYkNvcmUxMlNWR1BvaW50
TGlzdEQwRXYKIF9fWk4zV1RGNlZlY3RvcklOU182UmVmUHRySU43V2ViQ29yZTE0U1ZHUE9ETGlz
dEl0ZW1JTlMyXzEwRmxvYXRQb2ludEVFRUVFTG0wRUU2c2hyaW5rRW0KLV9fWk43V2ViQ29yZTE3
U1ZHQW5pbWF0ZWRQb2ludHNEMkV2CiBfX1pUaG44X043V2ViQ29yZTE3U1ZHUG9seWdvbkVsZW1l
bnREMEV2CiBfX1pON1dlYkNvcmUxN1NWR1BvbHlnb25FbGVtZW50RDBFdgogX19aVGhuOF9ON1dl
YkNvcmUxNVNWR0ltYWdlRWxlbWVudEQwRXYKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gNzE1MDEpCisrKyBXZWJD
b3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yMzc4LDYgKzIzNzgsNyBAQCBIRUFE
RVJTICs9IFwKICAgICBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaCBcCiAgICAg
c3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaCBcCiAgICAgc3ZnL3Byb3BlcnRpZXMv
U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oIFwKKyAgICBzdmcvcHJvcGVydGllcy9TVkdT
dGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCBcCiAgICAgc3ZnL1NWR0FFbGVtZW50LmggXAogICAgIHN2
Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaCBcCiAgICAgc3ZnL1NWR0FuZ2xlLmggXApAQCAtMjM5MSw3
ICsyMzkyLDYgQEAgSEVBREVSUyArPSBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmggXAog
ICAgIHN2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkUGF0
aERhdGEuaCBcCi0gICAgc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmggXAogICAgIHN2Zy9TVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkUmVjdC5oIFwK
ICAgICBzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaCBcCkBAIC0zNDA2LDcgKzM0MDYsNiBAQCBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAgICAgc3ZnL1NWR0FuZ2xlLmNwcCBc
CiAgICAgICAgIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCBcCiAgICAgICAgIHN2Zy9T
VkdBbmltYXRlZFBhdGhEYXRhLmNwcCBcCi0gICAgICAgIHN2Zy9TVkdBbmltYXRlZFBvaW50cy5j
cHAgXAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIFwKICAgICAgICAgc3ZnL1NW
R0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCBcCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudC5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CShyZXZpc2lvbiA3MTUwMSkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oJKHdvcmtpbmcgY29weSkKQEAgLTYxODUyLDEwICs2MTg1Miw2IEBACiAJCQkJPg0KIAkJCTwv
RmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdBbmltYXRlZFBv
aW50cy5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cc3ZnXFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KQEAgLTYyOTM4LDYgKzYyOTM0LDEwIEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
c3ZnXHByb3BlcnRpZXNcU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oIg0KIAkJCQkJPg0K
IAkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xwcm9w
ZXJ0aWVzXFNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+
DQogCQkJPC9GaWx0ZXI+DQogCQk8L0ZpbHRlcj4NCiAJCTxGaWx0ZXINCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzE1MDEpCisrKyBX
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtNzMsNiArNzMsNyBAQAogCQkwODEwNzY0NDEyODI4NTU2MDA3QzYzQkEgLyogU1ZHTGlzdFBy
b3BlcnR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
ODEwNzY0MzEyODI4NTU2MDA3QzYzQkEgLyogU1ZHTGlzdFByb3BlcnR5LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDgxMDkzREIxMjU1RjBFNzAw
RUQ5RDI5IC8qIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODEwOTNEOTEyNTVGMEU3MDBFRDlE
MjkgLyogU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcCAqLzsgfTsKIAkJMDgxMDkz
REMxMjU1RjBFNzAwRUQ5RDI5IC8qIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgxMDkzREExMjU1
RjBFNzAwRUQ5RDI5IC8qIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5oICovOyB9Owor
CQkwODEzQTRFQTEyODQxMzI2MDA5OTI1MTEgLyogU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODEzQTRFOTEy
ODQxMzI2MDA5OTI1MTEgLyogU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDgxNjY4RDMxMjU2MDNCRjAw
NkYyNURFIC8qIFNWR1RleHRDaHVua0J1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgxNjY4RDExMjU2MDNCRjAwNkYyNURFIC8qIFNWR1Rl
eHRDaHVua0J1aWxkZXIuY3BwICovOyB9OwogCQkwODE2NjhENDEyNTYwM0JGMDA2RjI1REUgLyog
U1ZHVGV4dENodW5rQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDgxNjY4RDIxMjU2MDNCRjAwNkYyNURFIC8qIFNWR1RleHRDaHVua0J1aWxk
ZXIuaCAqLzsgfTsKIAkJMDgxNjY4RDkxMjU2MDNENTAwNkYyNURFIC8qIFNWR1RleHRMYXlvdXRF
bmdpbmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDgxNjY4RDcxMjU2MDNENTAwNkYyNURFIC8qIFNWR1RleHRMYXlvdXRFbmdpbmUuY3BwICovOyB9
OwpAQCAtMjE0NCw3ICsyMTQ1LDYgQEAKIAkJODVBQ0FCQjAwQTlDQUY4MDAwNjcxRTkwIC8qIERP
TURvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NUFDQUJBRTBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9jdW1lbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQk4NUFDQUJCMTBBOUNBRjgwMDA2NzFFOTAgLyog
RE9NRG9jdW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUFDQUJBRjBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9jdW1lbnQubW0gKi87IH07CiAJ
CTg1QUNFRjBDMEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFBhdGhEYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUFDRUYwNjBBQ0RD
Q0NGMDAxMjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oICovOyB9OwotCQk4NUFDRUYw
RDBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQb2ludHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNFRjA3MEFDRENDQ0YwMDEyMTRG
RiAvKiBET01TVkdBbmltYXRlZFBvaW50cy5oICovOyB9OwogCQk4NUFDRUYwRTBBQ0RDQ0NGMDAx
MjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUFDRUYwODBBQ0RDQ0NGMDAxMjE0
RkYgLyogRE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggKi87IH07CiAJCTg1QUNF
RjBGMEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUFDRUYw
OTBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLm1t
ICovOyB9OwogCQk4NUFDRUYxMDBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVBQ0VGMEEwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCAq
LzsgfTsKQEAgLTMxNjksNyArMzE2OSw2IEBACiAJCUE4MEU3RTlGMEExQTgzRTMwMDdGQjhDNSAv
KiBKU0hUTUxCdXR0b25FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBODBFN0U5NTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxl
bWVudC5oICovOyB9OwogCQlBODBFN0VBMDBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9u
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODBFN0U5NjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxlbWVudC5jcHAgKi87
IH07CiAJCUE4MEYzQTUwMENDREEyQTIwMDJERDk5MCAvKiBET01TVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAy
QUIzRTBBRDQzOEMwMDAzNzg1NDAgLyogRE9NU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oICovOyB9
OwotCQlBODBGM0E1QTBDQ0RBMkVEMDAyREQ5OTAgLyogRE9NU1ZHQW5pbWF0ZWRQb2ludHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNFRjA3MEFD
RENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFBvaW50cy5oICovOyB9OwogCQlBODBGM0E2
NDBDQ0RBMkZDMDAyREQ5OTAgLyogRE9NU1ZHTGluZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzlBMkZEMEFEN0U5NDIwMEZCRkYxRSAv
KiBET01TVkdMaW5lRWxlbWVudC5oICovOyB9OwogCQlBODBGM0E2QjBDQ0RBMzBBMDAyREQ5OTAg
LyogRE9NU1ZHUGF0aFNlZ0xpbmV0b0Ficy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODVDRTFBMkQwQURBQzQ3MzAwM0JCREVBIC8qIERPTVNWR1BhdGhT
ZWdMaW5ldG9BYnMuaCAqLzsgfTsKIAkJQTgwRjNBNzUwQ0NEQTMxODAwMkREOTkwIC8qIERPTVNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUNFMUEyNTBBREFDNDczMDAzQkJERUEgLyogRE9NU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMuaCAqLzsgfTsKQEAgLTMyNzgsNyArMzI3Nyw2IEBACiAJ
CUE4MEYzQjkxMENDRENFMjQwMDJERDk5MCAvKiBET01TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQu
aCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1MDJBQjJDMEFENDM4QzAwMDM3ODU0MCAvKiBET01TVkdGRUdhdXNzaWFuQmx1ckVs
ZW1lbnQuaCAqLzsgfTsKIAkJQTgwRjNCOTIwQ0NEQ0UyNDAwMkREOTkwIC8qIERPTVNWR1BhaW50
SW50ZXJuYWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4RTU0NDQwMENBOUQxQzEwMDk3RDA5QiAvKiBET01TVkdQYWludElu
dGVybmFsLmggKi87IH07CiAJCUE4MEYzQjkzMENDRENFMjQwMDJERDk5MCAvKiBET01TVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY0Fic0ludGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEU1NDQyMDBDQTlEMUMxMDA5
N0QwOUIgLyogRE9NU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnNJbnRlcm5hbC5oICovOyB9
OwotCQlBODBGM0I5NDBDQ0RDRTI0MDAyREQ5OTAgLyogRE9NU1ZHQW5pbWF0ZWRQb2ludHMuaCBp
biBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1QUNFRjA3MEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFBvaW50cy5oICov
OyB9OwogCQlBODBGM0I5NTBDQ0RDRTI0MDAyREQ5OTAgLyogRE9NU1ZHUGF0aFNlZ0xpbmV0b0Fi
cy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODVDRTFBMkQwQURBQzQ3MzAwM0JCREVBIC8qIERPTVNWR1BhdGhTZWdMaW5ldG9B
YnMuaCAqLzsgfTsKIAkJQTgwRjNCOTYwQ0NEQ0UyNDAwMkREOTkwIC8qIERPTVNWR051bWJlcklu
dGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEU1NDQzMzBDQTlEMUMxMDA5N0QwOUIgLyogRE9NU1ZHTnVtYmVySW50
ZXJuYWwuaCAqLzsgfTsKIAkJQTgwRjNCOTcwQ0NEQ0UyNDAwMkREOTkwIC8qIERPTVNWR0FuaW1h
dGVkQW5nbGVJbnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFNTQ0QkYwQ0E5RDFDMjAwOTdEMDlCIC8qIERPTVNW
R0FuaW1hdGVkQW5nbGVJbnRlcm5hbC5oICovOyB9OwpAQCAtMzk3MCw4ICszOTY4LDYgQEAKIAkJ
QjIyMjc5N0EwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3N0U0MEQwMEJG
MUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlQ29sb3JFbGVtZW50LmggKi87IH07CiAJCUIyMjI3OTg0
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3N0VFMEQwMEJGMUYwMDcxQjc4
MiAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmNwcCAqLzsgfTsKIAkJQjIyMjc5ODUwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3N0VGMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmlt
YXRlZFBhdGhEYXRhLmggKi87IH07Ci0JCUIyMjI3OTg3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdB
bmltYXRlZFBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjIyNzdGMTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQb2ludHMuY3Bw
ICovOyB9OwotCQlCMjIyNzk4ODBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQb2ludHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3N0Yy
MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBvaW50cy5oICovOyB9OwogCQlCMjIyNzk4
RjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc3RjkwRDAwQkYxRjAwNzFCNzgy
IC8qIFNWR0FuaW1hdGVFbGVtZW50LmNwcCAqLzsgfTsKIAkJQjIyMjc5OTAwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR0FuaW1hdGVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzdGQTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVs
ZW1lbnQuaCAqLzsgfTsKIAkJQjIyMjc5OTIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVN
b3Rpb25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyMjI3N0ZDMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlTW90aW9uRWxlbWVu
dC5jcHAgKi87IH07CkBAIC01ODE1LDcgKzU4MTEsNiBAQAogCQkJCUE4RjQ2QUFGMENCMjBBOUQw
MDNBOTY3MCAvKiBET01TVkdBbmltYXRlZE51bWJlckxpc3QuaCBpbiBDb3B5IEdlbmVyYXRlZCBI
ZWFkZXJzICovLAogCQkJCUE4MEYzQjcwMENDRENFMjQwMDJERDk5MCAvKiBET01TVkdBbmltYXRl
ZE51bWJlckxpc3RJbnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJ
QThGNDZBOTAwQ0IyMEE5RDAwM0E5NjcwIC8qIERPTVNWR0FuaW1hdGVkUGF0aERhdGEuaCBpbiBD
b3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJCUE4MEYzQjk0MENDRENFMjQwMDJERDk5MCAv
KiBET01TVkdBbmltYXRlZFBvaW50cy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJ
CQkJQThGNDZCMkUwQ0IyMEE5RDAwM0E5NjcwIC8qIERPTVNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJQTgwRjNCN0UwQ0NE
Q0UyNDAwMkREOTkwIC8qIERPTVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0ludGVybmFs
LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQlBOEY0NkIxQjBDQjIwQTlEMDAz
QTk2NzAgLyogRE9NU1ZHQW5pbWF0ZWRSZWN0LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAq
LywKQEAgLTYxMTgsNiArNjExMyw3IEBACiAJCTA4MTA3NjQzMTI4Mjg1NTYwMDdDNjNCQSAvKiBT
VkdMaXN0UHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTGlz
dFByb3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4MTA5M0Q5MTI1NUYw
RTcwMEVEOUQyOSAvKiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWls
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgxMDkzREExMjU1RjBFNzAw
RUQ5RDI5IC8qIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDgxM0E0RTkxMjg0MTMyNjAwOTkyNTExIC8qIFNW
R1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDgxNjY4RDExMjU2MDNCRjAwNkYyNURFIC8qIFNWR1RleHRDaHVua0J1aWxkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHVGV4dENodW5rQnVpbGRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4MTY2OEQyMTI1NjAzQkYwMDZGMjVE
RSAvKiBTVkdUZXh0Q2h1bmtCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNWR1RleHRDaHVua0J1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDgxNjY4RDcxMjU2MDNENTAwNkYyNURFIC8qIFNWR1RleHRMYXlvdXRFbmdpbmUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHVGV4dExheW91dEVuZ2luZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04Mjk5LDcgKzgyOTUsNiBAQAogCQk4NUFD
QUJBRTBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9jdW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTURvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg1QUNBQkFGMEE5Q0FGODAwMDY3MUU5MCAvKiBET01Eb2N1bWVudC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Eb2N1bWVudC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVBQ0VGMDYwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0Fu
aW1hdGVkUGF0aERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNW
R0FuaW1hdGVkUGF0aERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVBQ0VG
MDcwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUG9pbnRzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01TVkdBbmltYXRlZFBvaW50cy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NUFDRUYwODBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODVBQ0VGMDkwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBET01TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8ubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg1QUNFRjBBMEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01T
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05
ODM2LDkgKzk4MzEsNiBAQAogCQlCMjIyNzdFRTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0
ZWRQYXRoRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZH
QW5pbWF0ZWRQYXRoRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMjI3
N0VGMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFBhdGhEYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUIyMjI3N0YwMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRl
ZFBhdGhEYXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHQW5pbWF0ZWRQYXRoRGF0
YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyMjI3N0YxMEQwMEJGMUYwMDcx
Qjc4MiAvKiBTVkdBbmltYXRlZFBvaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlCMjIyNzdGMjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQb2ludHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUG9pbnRzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyMjI3N0YzMEQwMEJGMUYwMDcxQjc4MiAvKiBT
VkdBbmltYXRlZFBvaW50cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0FuaW1hdGVk
UG9pbnRzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjIyMjc3RjQwRDAwQkYx
RjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMjI3N0Y1MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdB
bmltYXRlZFJlY3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlZFJlY3Qu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjIyNzdGNjBEMDBCRjFGMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdB
bmltYXRlZFN0cmluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTc5Nyw2
ICsxMTc4OSw3IEBACiAJCQkJMDg4QTBFMDIxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5
VGVhck9mZi5oICovLAogCQkJCTA4OEEwRTAzMTI2RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9wZXJ0
eVRyYWl0cy5oICovLAogCQkJCTA4ODBGNzBEMTI4MkI0NkQwMDk0ODUwNSAvKiBTVkdTdGF0aWNM
aXN0UHJvcGVydHlUZWFyT2ZmLmggKi8sCisJCQkJMDgxM0E0RTkxMjg0MTMyNjAwOTkyNTExIC8q
IFNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oICovLAogCQkJKTsKIAkJCXBhdGggPSBwcm9wZXJ0
aWVzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEzNTUyLDcgKzEzNTQ1LDYgQEAK
IAkJCQlBOEU1NDRCMTBDQTlEMUMyMDA5N0QwOUIgLyogRE9NU1ZHQW5pbWF0ZWROdW1iZXJMaXN0
SW50ZXJuYWwuaCAqLywKIAkJCQlBOEU1NDRCMDBDQTlEMUMyMDA5N0QwOUIgLyogRE9NU1ZHQW5p
bWF0ZWRQYXRoRGF0YS5oICovLAogCQkJCTg1QUNFRjA2MEFDRENDQ0YwMDEyMTRGRiAvKiBET01T
VkdBbmltYXRlZFBhdGhEYXRhLmggKi8sCi0JCQkJODVBQ0VGMDcwQUNEQ0NDRjAwMTIxNEZGIC8q
IERPTVNWR0FuaW1hdGVkUG9pbnRzLmggKi8sCiAJCQkJODVBQ0VGMDgwQUNEQ0NDRjAwMTIxNEZG
IC8qIERPTVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oICovLAogCQkJCTg1QUNFRjA5
MEFDRENDQ0YwMDEyMTRGRiAvKiBET01TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8ubW0g
Ki8sCiAJCQkJQThFNTQ0QUQwQ0E5RDFDMjAwOTdEMDlCIC8qIERPTVNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpb0ludGVybmFsLmggKi8sCkBAIC0xNjExMiw5ICsxNjEwNCw2IEBACiAJCQkJ
QjIyMjc3RUUwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuY3BwICovLAog
CQkJCUIyMjI3N0VGMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmggKi8s
CiAJCQkJQjIyMjc3RjAwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuaWRs
ICovLAotCQkJCUIyMjI3N0YxMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBvaW50cy5j
cHAgKi8sCi0JCQkJQjIyMjc3RjIwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUG9pbnRz
LmggKi8sCi0JCQkJQjIyMjc3RjMwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUG9pbnRz
LmlkbCAqLywKIAkJCQkwOEZFMEJDNDEyN0UyQUMxMDAwQzRGQjUgLyogU1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLmggKi8sCiAJCQkJQjIyMjc3RjQwRDAwQkYxRjAwNzFCNzgyIC8qIFNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGwgKi8sCiAJCQkJMDhDODU5QkYxMjc0NTc1
MzAwQTU3MjhEIC8qIFNWR0FuaW1hdGVkUmVjdC5oICovLApAQCAtMTY2NDMsNyArMTY2MzIsNiBA
QAogCQlCMkEwMTU5MTBBRjZDRDUzMDA2QkNFMEUgLyogZ3JhcGhpY3MgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTZFNjdEMkE4MTI4MEU4QkQwMDg3NThG
NyAvKiBFeHRlbnNpb25zM0QuaCAqLywKIAkJCQlCMjc1MzUyOTBCMDUzODE0MDAyQ0U2NEYgLyog
Y2cgKi8sCiAJCQkJQjUzMjBENjgxMjJBMjRFOTAwMkQxNDQwIC8qIGNvY29hICovLAogCQkJCUE3
NUU4QjdGMEUxREUyQjAwMDdGMjQ4MSAvKiBmaWx0ZXJzICovLApAQCAtMTY2NjAsNiArMTY2NDgs
NyBAQAogCQkJCUIyNzUzNTM5MEIwNTM4MTQwMDJDRTY0RiAvKiBDb2xvci5oICovLAogCQkJCTkz
ODJERjU3MTBBOEQ1QzkwMDkyNTY1MiAvKiBDb2xvclNwYWNlLmggKi8sCiAJCQkJQThDQjQxMDIw
RTg1QjhBNTAwMzJDNEYwIC8qIERhc2hBcnJheS5oICovLAorCQkJCTZFNjdEMkE4MTI4MEU4QkQw
MDg3NThGNyAvKiBFeHRlbnNpb25zM0QuaCAqLywKIAkJCQlCMjc1MzUzQTBCMDUzODE0MDAyQ0U2
NEYgLyogRmxvYXRQb2ludC5jcHAgKi8sCiAJCQkJQjI3NTM1M0IwQjA1MzgxNDAwMkNFNjRGIC8q
IEZsb2F0UG9pbnQuaCAqLywKIAkJCQlCMkUyN0M5RDBCMEYyQjA5MDBGMTdDN0IgLyogRmxvYXRQ
b2ludDNELmNwcCAqLywKQEAgLTE4NjM2LDYgKzE4NjI1LDcgQEAKIAkJCQlEOEI2MTUyRjEwMzI0
OTUxMDBDODU1NEEgLyogQ29va2llLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzUyMDg4MjA5QkQ0
NUU5MDBGMjAzOEQgLyogQ29va2llSmFyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTZGRDQ4ODBG
Njc2RTU3MDAwOTI4NzMgLyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUI4QTZB
NkQ1MTI3QjMzOEQwMDg2NzNCQSAvKiBDb3JyZWN0aW9uUGFuZWxJbmZvLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODBFNkQwNDBBMTk4OUNBMDA3RkI4QzUgLyogQ291bnRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1RUI5NzkwRTgyMDY5MjAwQjI1OTY1IC8qIENvdW50ZXJDb250ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzVFQjk1MTBFODIwNTZCMDBCMjU5NjUgLyogQ291bnRlckRpcmVj
dGl2ZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTkwODAsOCArMTkwNzAsNiBAQAogCQkJCUE4RTU0
NUFGMENBOUQxQzIwMDk3RDA5QiAvKiBET01TVkdBbmltYXRlZE51bWJlckxpc3RJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODVBQ0VGMEMwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNWR0Fu
aW1hdGVkUGF0aERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RTU0NUFFMENBOUQxQzIwMDk3
RDA5QiAvKiBET01TVkdBbmltYXRlZFBhdGhEYXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUFD
RUYwRDBBQ0RDQ0NGMDAxMjE0RkYgLyogRE9NU1ZHQW5pbWF0ZWRQb2ludHMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUE4MEYzQTVBMENDREEyRUQwMDJERDk5MCAvKiBET01TVkdBbmltYXRlZFBvaW50
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVBQ0VGMEUwQUNEQ0NDRjAwMTIxNEZGIC8qIERPTVNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVBQ0VG
MTgwQUNEQ0QxQTAwMTIxNEZGIC8qIERPTVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0lu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEU1NDVBQjBDQTlEMUMyMDA5N0QwOUIgLyog
RE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LApAQCAtMTk1NzEsNiArMTk1NTksOCBAQAogCQkJCUJDNjBEOEYzMEQyQTExRTAwMEI5OTE4RiAv
KiBFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVGQkNGMjA5QkExNDNCMDBF
MjMwQjEgLyogRXhjZXB0aW9uQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ4QUZEQTUwQUY1
ODM2MDAwOENDNzAwIC8qIEV4Y2VwdGlvbkhhbmRsZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQk2
RTY3RDJBOTEyODBFOEJEMDA4NzU4RjcgLyogRXh0ZW5zaW9uczNELmggaW4gSGVhZGVycyAqLywK
KwkJCQk2RTY3RDJBNzEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9uczNET3BlbkdMLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNzVFOEI4OTBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTc1RThCOEIwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRy
aXguaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NUU4QjhEMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNv
bXBvbmVudFRyYW5zZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTIwODk2LDcgKzIwODg2LDYgQEAK
IAkJCQkwOEIzNUIxMzEyN0I2QTdDMDA1MzE0REQgLyogU1ZHQW5pbWF0ZWROdW1iZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4QjM1QjE3MTI3QjZBODgwMDUzMTRERCAvKiBTVkdBbmltYXRlZE51
bWJlckxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTg1MEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdBbmltYXRlZFBhdGhEYXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMjIyNzk4ODBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQb2ludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
RkUwQkM1MTI3RTJBQzEwMDBDNEZCNSAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8u
aCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEEwRTA1MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdBbmlt
YXRlZFByb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUwNjEyNkVGMURCMDA5NzhG
N0EgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLywKQEAg
LTIxMDQ5LDYgKzIxMDM4LDcgQEAKIAkJCQkwOERBQjlDMzExMDNEOUMxMDAzRTdBQkEgLyogU1ZH
U2hhZG93VHJlZUVsZW1lbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEFGRDAxMDBEQUYzMzU1
MDBGNUY1NUMgLyogU1ZHU01JTEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4ODBGNzBF
MTI4MkI0NkQwMDk0ODUwNSAvKiBTVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwODEzQTRFQTEyODQxMzI2MDA5OTI1MTEgLyogU1ZHU3RhdGljUHJvcGVy
dHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FBOTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHU3RvcEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUFDMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdTdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FBRjBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHU3R5bGFibGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjExOTgs
NiArMjExODgsNyBAQAogCQkJCUE3RDIwRjZEMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2
ZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUM5MTA0MkQzMkYwMDA5RDQ0NyAvKiBX
ZWJHTEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlD
IC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRjZGMUVF
MTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDlDN0I5Q0YxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uaCBp
biBIZWFkZXJzICovLAogCQkJCTQ5RkZCRjNGMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVy
LmggaW4gSGVhZGVycyAqLywKQEAgLTIxMzIyLDEwICsyMTMxMyw2IEBACiAJCQkJOTNGMTk5RUQw
ODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
QkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk2RTY3RDJBNzEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9uczNET3BlbkdM
LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RTY3RDJBOTEyODBFOEJEMDA4NzU4RjcgLyogRXh0ZW5z
aW9uczNELmggaW4gSGVhZGVycyAqLywKLQkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyog
V2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUI4QTZBNkQ1MTI3QjMzOEQw
MDg2NzNCQSAvKiBDb3JyZWN0aW9uUGFuZWxJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIxMzg1
LDcgKzIxMzcyLDYgQEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRp
b25MaXN0ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24g
bGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lv
biA9ICJYY29kZSAyLjQiOwotCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFz
U2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlz
aCwKQEAgLTIyMjEzLDYgKzIyMTk5LDcgQEAKIAkJCQlCQzYwRDhGMjBEMkExMUUwMDBCOTkxOEYg
LyogRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzgzMUI1NzBEMDg3RDYw
MDBFNUM5ODQgLyogRXhjZXB0aW9uQ29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDhBRkRB
NjBBRjU4MzYwMDA4Q0M3MDAgLyogRXhjZXB0aW9uSGFuZGxlcnMubW0gaW4gU291cmNlcyAqLywK
KwkJCQk2RTY3RDJBNjEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9uczNET3BlbkdMLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE3NUU4Qjg4MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4QjhBMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9y
TWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4QjhDMEUxREUyRDYwMDdGMjQ4MSAv
KiBGRUNvbXBvbmVudFRyYW5zZmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjM1MjUsNyArMjM1
MTIsNiBAQAogCQkJCUIyMjI3OTc2MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmdsZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMjIyNzk3OTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzk4NDBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCMjIyNzk4
NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjIyMjc5OEYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyMjI3OTkyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzk5NDBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yMzc3Nyw2ICsyMzc2Myw3IEBACiAJCQkJQkM2REFERkEwQTE5NjAyQjAwRTVDRDE0IC8qIFdl
YkZvbnRDYWNoZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUM4MTA0MkQzMkYwMDA5RDQ0
NyAvKiBXZWJHTEJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2RTRFOTFBRTEwRjdGQjMx
MDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5M0Y2RjFFRDEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDlDN0I5Q0UxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU0N0U2NjAxMEI3OTQ0QjAwQjE4NkM4IC8qIFdl
YkdMR2V0SW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUZGQkY0MDExQzkzRUUzMDA2QTcx
MTggLyogV2ViR0xMYXllci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjM4OTIsOCArMjM4NzksNiBA
QAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yTGlieHNsdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVu
aWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3REQ0RDg2MEZERjRENkUwMEVDRjlB
NCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZFNjdEMkE2MTI4MEU4QTQw
MDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNG
NkYxRUQxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVNWRy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01TVkcuaAkocmV2aXNpb24gNzE1MDEpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NU1ZHLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYg
QEAKICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHQW5pbWF0ZWROdW1iZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRE9NU1ZHQW5pbWF0ZWROdW1iZXJMaXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNW
R0FuaW1hdGVkUGF0aERhdGEuaD4KLSNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHQW5pbWF0ZWRQb2lu
dHMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVNWR0FuaW1hdGVkUmVjdC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9ET01TVkdBbmltYXRlZFN0cmluZy5oPgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3IucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3IucG0JKHJldmlzaW9uIDcxNTAxKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcg
QEAgbXkgJW51bWVyaWNUeXBlSGFzaCA9ICgiaW50IiA9PiAxLCAic2hvcgogbXkgJXByaW1pdGl2
ZVR5cGVIYXNoID0gKCAiYm9vbGVhbiIgPT4gMSwgInZvaWQiID0+IDEsICJEYXRlIiA9PiAxKTsK
IAogbXkgJXBvZFR5cGVIYXNoID0gKCJTVkdUcmFuc2Zvcm0iID0+IDEpOwotbXkgJXBvZFR5cGVz
V2l0aFdyaXRhYmxlUHJvcGVydGllc0hhc2ggPSAoIlNWR01hdHJpeCIgPT4gMSwgIlNWR1BvaW50
IiA9PiAxKTsKK215ICVwb2RUeXBlc1dpdGhXcml0YWJsZVByb3BlcnRpZXNIYXNoID0gKCJTVkdN
YXRyaXgiID0+IDEpOwogbXkgJXN0cmluZ1R5cGVIYXNoID0gKCJET01TdHJpbmciID0+IDEsICJB
dG9taWNTdHJpbmciID0+IDEpOwogCiBteSAlbm9uUG9pbnRlclR5cGVIYXNoID0gKCJET01UaW1l
U3RhbXAiID0+IDEsICJDb21wYXJlSG93IiA9PiAxLCAiU1ZHUGFpbnRUeXBlIiA9PiAxKTsKQEAg
LTc3LDE3ICs3NywyMyBAQCBteSAlc3ZnQXR0cmlidXRlc0luSFRNTEhhc2ggPSAoImNsYXNzIiA9
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9ubW91c2V1cCIgPT4gMSwgIm9ucmVz
aXplIiA9PiAxLCAib25zY3JvbGwiID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIm9udW5sb2FkIiA9PiAxKTsKIAotbXkgJXN2Z05hdGl2ZVR5cGUgPSAoCitteSAlc3ZnVHlw
ZU5lZWRpbmdUZWFyT2ZmID0gKAogICAgICJTVkdBbmdsZSIgPT4gIlNWR1Byb3BlcnR5VGVhck9m
ZjxTVkdBbmdsZT4iLAogICAgICJTVkdMZW5ndGgiID0+ICJTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZH
TGVuZ3RoPiIsCiAgICAgIlNWR0xlbmd0aExpc3QiID0+ICJTVkdMaXN0UHJvcGVydHlUZWFyT2Zm
PFNWR0xlbmd0aExpc3Q+IiwKICAgICAiU1ZHTnVtYmVyIiA9PiAiU1ZHUHJvcGVydHlUZWFyT2Zm
PGZsb2F0PiIsCiAgICAgIlNWR051bWJlckxpc3QiID0+ICJTVkdMaXN0UHJvcGVydHlUZWFyT2Zm
PFNWR051bWJlckxpc3Q+IiwKKyAgICAiU1ZHUG9pbnQiID0+ICJTVkdQcm9wZXJ0eVRlYXJPZmY8
RmxvYXRQb2ludD4iLAorICAgICJTVkdQb2ludExpc3QiID0+ICJTVkdMaXN0UHJvcGVydHlUZWFy
T2ZmPFNWR1BvaW50TGlzdD4iLAogICAgICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIiA9PiAiU1ZH
UHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IiwKICAgICAiU1ZHUmVjdCIg
PT4gIlNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFJlY3Q+IiwKICAgICAiU1ZHU3RyaW5nTGlzdCIg
PT4gIlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHU3RyaW5nTGlzdD4iCiApOwogCitt
eSAlc3ZnVHlwZVdpdGhXcml0YWJsZVByb3BlcnRpZXNOZWVkaW5nVGVhck9mZiA9ICgKKyAgICAi
U1ZHUG9pbnQiID0+IDEKKyk7CisKICMgQ2FjaGUgb2YgSURMIGZpbGUgcGF0aG5hbWVzLgogbXkg
JGlkbEZpbGVzOwogCkBAIC0zNzMsNyArMzc5LDE2IEBAIHN1YiBJc1NWR1R5cGVOZWVkaW5nVGVh
ck9mZgogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwogCi0g
ICAgcmV0dXJuIDEgaWYgZXhpc3RzICRzdmdOYXRpdmVUeXBleyR0eXBlfTsKKyAgICByZXR1cm4g
MSBpZiBleGlzdHMgJHN2Z1R5cGVOZWVkaW5nVGVhck9mZnskdHlwZX07CisgICAgcmV0dXJuIDA7
Cit9CisKK3N1YiBJc1NWR1R5cGVXaXRoV3JpdGFibGVQcm9wZXJ0aWVzTmVlZGluZ1RlYXJPZmYK
K3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAg
IHJldHVybiAxIGlmICRzdmdUeXBlV2l0aFdyaXRhYmxlUHJvcGVydGllc05lZWRpbmdUZWFyT2Zm
eyR0eXBlfTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMzgyLDcgKzM5Nyw3IEBAIHN1YiBHZXRT
VkdUeXBlTmVlZGluZ1RlYXJPZmYKICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CiAgICAgbXkgJHR5
cGUgPSBzaGlmdDsKIAotICAgIHJldHVybiAkc3ZnTmF0aXZlVHlwZXskdHlwZX0gaWYgZXhpc3Rz
ICRzdmdOYXRpdmVUeXBleyR0eXBlfTsKKyAgICByZXR1cm4gJHN2Z1R5cGVOZWVkaW5nVGVhck9m
ZnskdHlwZX0gaWYgZXhpc3RzICRzdmdUeXBlTmVlZGluZ1RlYXJPZmZ7JHR5cGV9OwogICAgIHJl
dHVybiB1bmRlZjsKIH0KIApAQCAtMzkxLDE5ICs0MDYsMTkgQEAgc3ViIEdldFNWR1dyYXBwZWRU
eXBlTmVlZGluZ1RlYXJPZmYKICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CiAgICAgbXkgJHR5cGUg
PSBzaGlmdDsKIAotICAgIG15ICRzdmdOYXRpdmVUeXBlID0gJG9iamVjdC0+R2V0U1ZHVHlwZU5l
ZWRpbmdUZWFyT2ZmKCR0eXBlKTsKLSAgICByZXR1cm4gJHN2Z05hdGl2ZVR5cGUgaWYgbm90ICRz
dmdOYXRpdmVUeXBlOworICAgIG15ICRzdmdUeXBlTmVlZGluZ1RlYXJPZmYgPSAkb2JqZWN0LT5H
ZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHR5cGUpOworICAgIHJldHVybiAkc3ZnVHlwZU5lZWRp
bmdUZWFyT2ZmIGlmIG5vdCAkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmOwogCi0gICAgaWYgKCRzdmdO
YXRpdmVUeXBlID1+IC9TVkdQcm9wZXJ0eVRlYXJPZmYvKSB7Ci0gICAgICAgICRzdmdOYXRpdmVU
eXBlID1+IHMvU1ZHUHJvcGVydHlUZWFyT2ZmPC8vOwotICAgIH0gZWxzaWYgKCRzdmdOYXRpdmVU
eXBlID1+IC9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLykgewotICAgICAgICAkc3ZnTmF0aXZlVHlw
ZSA9fiBzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8Ly87Ci0gICAgfSBlbHNpZiAoJHN2Z05hdGl2
ZVR5cGUgPX4gL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYvKSB7Ci0gICAgICAgICRzdmdO
YXRpdmVUeXBlID1+IHMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZjwvLzsKKyAgICBpZiAo
JHN2Z1R5cGVOZWVkaW5nVGVhck9mZiA9fiAvU1ZHUHJvcGVydHlUZWFyT2ZmLykgeworICAgICAg
ICAkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmID1+IHMvU1ZHUHJvcGVydHlUZWFyT2ZmPC8vOworICAg
IH0gZWxzaWYgKCRzdmdUeXBlTmVlZGluZ1RlYXJPZmYgPX4gL1NWR0xpc3RQcm9wZXJ0eVRlYXJP
ZmYvKSB7CisgICAgICAgICRzdmdUeXBlTmVlZGluZ1RlYXJPZmYgPX4gcy9TVkdMaXN0UHJvcGVy
dHlUZWFyT2ZmPC8vOworICAgIH0gZWxzaWYgKCRzdmdUeXBlTmVlZGluZ1RlYXJPZmYgPX4gL1NW
R1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYvKSB7CisgICAgICAgICRzdmdUeXBlTmVlZGluZ1Rl
YXJPZmYgPX4gcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmPC8vOwogICAgIH0KIAotICAg
ICRzdmdOYXRpdmVUeXBlID1+IHMvPi8vOwotICAgIHJldHVybiAkc3ZnTmF0aXZlVHlwZTsKKyAg
ICAkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmID1+IHMvPi8vOworICAgIHJldHVybiAkc3ZnVHlwZU5l
ZWRpbmdUZWFyT2ZmOwogfQogCiAjIEZJWE1FOiBUaGlzIG1ldGhvZCB3aWxsIGdvIGF3YXkgb25j
ZSBhbGwgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRlZCB0byB0aGUgbmV3IHNj
aGVtZS4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQkocmV2aXNpb24gNzE1MDEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0yNDU2LDggKzI0NTYsNiBAQCBteSAlbmF0aXZl
VHlwZSA9ICgKICAgICAiSURCS2V5IiA9PiAiUmVmUHRyPElEQktleT4iLAogICAgICJTVkdNYXRy
aXgiID0+ICJBZmZpbmVUcmFuc2Zvcm0iLAogICAgICJTVkdQYWludFR5cGUiID0+ICJTVkdQYWlu
dDo6U1ZHUGFpbnRUeXBlIiwKLSAgICAiU1ZHUG9pbnQiID0+ICJGbG9hdFBvaW50IiwKLSAgICAi
U1ZHUmVjdCIgPT4gIkZsb2F0UmVjdCIsCiAgICAgIlNWR1RyYW5zZm9ybSIgPT4gIlNWR1RyYW5z
Zm9ybSIsCiAgICAgImJvb2xlYW4iID0+ICJib29sIiwKICAgICAiZG91YmxlIiA9PiAiZG91Ymxl
IiwKQEAgLTI1NTYsOCArMjU1NCw2IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICAgICAgcmV0
dXJuICJjcmVhdGVJREJLZXlGcm9tVmFsdWUoZXhlYywgJHZhbHVlKSI7CiAgICAgfQogCi0gICAg
JGltcGxJbmNsdWRlc3siRmxvYXRQb2ludC5oIn0gPSAxIGlmICR0eXBlIGVxICJTVkdQb2ludCI7
Ci0gICAgJGltcGxJbmNsdWRlc3siRmxvYXRSZWN0LmgifSA9IDEgaWYgJHR5cGUgZXEgIlNWR1Jl
Y3QiOwogICAgICRpbXBsSW5jbHVkZXN7IkhUTUxPcHRpb25FbGVtZW50LmgifSA9IDEgaWYgJHR5
cGUgZXEgIkhUTUxPcHRpb25FbGVtZW50IjsKICAgICAkaW1wbEluY2x1ZGVzeyJKU0N1c3RvbVZv
aWRDYWxsYmFjay5oIn0gPSAxIGlmICR0eXBlIGVxICJWb2lkQ2FsbGJhY2siOwogICAgICRpbXBs
SW5jbHVkZXN7IkV2ZW50LmgifSA9IDEgaWYgJHR5cGUgZXEgIkV2ZW50IjsKQEAgLTI2ODAsMTAg
KzI2NzYsMTkgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAgICAkdmFsdWUgPSAic3RhdGlj
X2Nhc3Q8IiAuIEdldE5hdGl2ZVR5cGUoJHR5cGUpIC4gIj4oJHZhbHVlKSI7CiAgICAgfSBlbHNp
ZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCR0eXBlKSBhbmQgbm90
ICRpbXBsQ2xhc3NOYW1lID1+IC9MaXN0JC8pIHsKICAgICAgICAgbXkgJHRlYXJPZmZUeXBlID0g
JGNvZGVHZW5lcmF0b3ItPkdldFNWR1R5cGVOZWVkaW5nVGVhck9mZigkdHlwZSk7Ci0gICAgICAg
IGlmICgkdGVhck9mZlR5cGUgPX4gL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYvKSB7Cisg
ICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlV2l0aFdyaXRhYmxlUHJvcGVydGll
c05lZWRpbmdUZWFyT2ZmKCR0eXBlKSBhbmQgJGluRnVuY3Rpb25DYWxsIGVxIDAgYW5kIG5vdCBk
ZWZpbmVkICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbW11dGFibGUifSkgewor
ICAgICAgICAgICAgJHRlYXJPZmZUeXBlID1+IHMvU1ZHUHJvcGVydHlUZWFyT2ZmPC9TVkdTdGF0
aWNQcm9wZXJ0eVRlYXJPZmY8JGltcGxDbGFzc05hbWUsIC87CisgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCJ9ID0gMTsKKworICAgICAgICAgICAg
bXkgJGdldHRlciA9ICR2YWx1ZTsKKyAgICAgICAgICAgICRnZXR0ZXIgPX4gcy9pbXAtPi8vOwor
ICAgICAgICAgICAgJGdldHRlciA9fiBzL1woXCkvLzsKKyAgICAgICAgICAgIG15ICR1cGRhdGVy
ID0gInVwZGF0ZSIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkZ2V0dGVyKTsKKyAgICAg
ICAgICAgICR2YWx1ZSA9ICIke3RlYXJPZmZUeXBlfTo6Y3JlYXRlKGltcCwgJHZhbHVlLCAmJHtp
bXBsQ2xhc3NOYW1lfTo6JHVwZGF0ZXIpIjsKKyAgICAgICAgfSBlbHNpZiAoJHRlYXJPZmZUeXBl
ID1+IC9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLykgewogICAgICAgICAgICAgbXkgJGV4
dHJhSW1wID0gIkdldE93bmVyRWxlbWVudEZvclR5cGU8JGltcGxDbGFzc05hbWUsIElzRGVyaXZl
ZEZyb21TVkdFbGVtZW50PCRpbXBsQ2xhc3NOYW1lPjo6dmFsdWU+Ojpvd25lckVsZW1lbnQoaW1w
KSwgIjsKICAgICAgICAgICAgICR2YWx1ZSA9ICIke3RlYXJPZmZUeXBlfTo6Y3JlYXRlKCRleHRy
YUltcCR2YWx1ZSkiOwotICAgICAgICB9IGVsc2UgeworICAgICAgICB9IGVsc2lmIChub3QgJHRl
YXJPZmZUeXBlID1+IC9TVkdQb2ludExpc3QvKSB7CiAgICAgICAgICAgICAkdmFsdWUgPSAiJHt0
ZWFyT2ZmVHlwZX06OmNyZWF0ZSgkdmFsdWUpIjsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0JKHJldmlzaW9u
IDcxNTAxKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBt
CSh3b3JraW5nIGNvcHkpCkBAIC01OSw4ICs1OSw3IEBAIG15IEBkZXBzQ29udGVudCA9ICgpOwog
bXkgJXByb3RvY29sVHlwZUhhc2ggPSAoIlhQYXRoTlNSZXNvbHZlciIgPT4gMSwgIkV2ZW50TGlz
dGVuZXIiID0+IDEsICJFdmVudFRhcmdldCIgPT4gMSwgIk5vZGVGaWx0ZXIiID0+IDEsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAiU1ZHTG9jYXRhYmxlIiA9PiAxLCAiU1ZHVHJhbnNmb3JtYWJs
ZSIgPT4gMSwgIlNWR1N0eWxhYmxlIiA9PiAxLCAiU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzIiA9PiAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICJTVkdUZXN0cyIgPT4g
MSwgIlNWR0xhbmdTcGFjZSIgPT4gMSwgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiID0+
IDEsICJTVkdVUklSZWZlcmVuY2UiID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAiU1ZH
Wm9vbUFuZFBhbiIgPT4gMSwgIlNWR0ZpdFRvVmlld0JveCIgPT4gMSwgIlNWR0FuaW1hdGVkUGF0
aERhdGEiID0+IDEsICJTVkdBbmltYXRlZFBvaW50cyIgPT4gMSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJFbGVtZW50VGltZUNvbnRyb2wiID0+IDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgIlNWR1pvb21BbmRQYW4iID0+IDEsICJTVkdGaXRUb1ZpZXdCb3giID0+IDEsICJTVkdBbmlt
YXRlZFBhdGhEYXRhIiA9PiAxLCAiRWxlbWVudFRpbWVDb250cm9sIiA9PiAxKTsKIG15ICVuYXRp
dmVPYmpDVHlwZUhhc2ggPSAoIlVSTCIgPT4gMSwgIkNvbG9yIiA9PiAxKTsKIAogIyBGSVhNRTog
dGhpcyBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCBhIGZ1bmN0aW9uIHRoYXQgcmVjdXJzZXMgdXAg
dGhlIHRyZWUKQEAgLTcxLDcgKzcwLDcgQEAgbXkgJWJhc2VUeXBlSGFzaCA9ICgiT2JqZWN0IiA9
PiAxLCAiTm9kZQogICAgICAgICAgICAgICAgICAgICAiTm9kZUl0ZXJhdG9yIiA9PiAxLCAiVHJl
ZVdhbGtlciIgPT4gMSwgIkFic3RyYWN0VmlldyIgPT4gMSwgIkJsb2IiID0+IDEsCiAgICAgICAg
ICAgICAgICAgICAgICJTVkdBbmdsZSIgPT4gMSwgIlNWR0FuaW1hdGVkQW5nbGUiID0+IDEsICJT
VkdBbmltYXRlZEJvb2xlYW4iID0+IDEsICJTVkdBbmltYXRlZEVudW1lcmF0aW9uIiA9PiAxLAog
ICAgICAgICAgICAgICAgICAgICAiU1ZHQW5pbWF0ZWRJbnRlZ2VyIiA9PiAxLCAiU1ZHQW5pbWF0
ZWRMZW5ndGgiID0+IDEsICJTVkdBbmltYXRlZExlbmd0aExpc3QiID0+IDEsCi0gICAgICAgICAg
ICAgICAgICAgICJTVkdBbmltYXRlZE51bWJlciIgPT4gMSwgIlNWR0FuaW1hdGVkTnVtYmVyTGlz
dCIgPT4gMSwgIlNWR0FuaW1hdGVkUG9pbnRzIiA9PiAxLAorICAgICAgICAgICAgICAgICAgICAi
U1ZHQW5pbWF0ZWROdW1iZXIiID0+IDEsICJTVkdBbmltYXRlZE51bWJlckxpc3QiID0+IDEsCiAg
ICAgICAgICAgICAgICAgICAgICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8iID0+IDEs
ICJTVkdBbmltYXRlZFJlY3QiID0+IDEsICJTVkdBbmltYXRlZFN0cmluZyIgPT4gMSwKICAgICAg
ICAgICAgICAgICAgICAgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCIgPT4gMSwgIlNWR0xlbmd0
aCIgPT4gMSwgIlNWR0xlbmd0aExpc3QiID0+IDEsICJTVkdNYXRyaXgiID0+IDEsCiAgICAgICAg
ICAgICAgICAgICAgICJTVkdOdW1iZXIiID0+IDEsICJTVkdOdW1iZXJMaXN0IiA9PiAxLCAiU1ZH
UGF0aFNlZyIgPT4gMSwgIlNWR1BhdGhTZWdMaXN0IiA9PiAxLCAiU1ZHUG9pbnQiID0+IDEsCkBA
IC02MDAsMTIgKzU5OSw2IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGlmICgkdHlwZSBlcSAiU1ZHUG9pbnQiKSB7Ci0gICAgICAgICRpbXBs
SW5jbHVkZXN7IkZsb2F0UG9pbnQuaCJ9ID0gMTsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siRE9N
U1ZHUG9pbnRJbnRlcm5hbC5oIn0gPSAxOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAg
aWYgKCR0eXBlIGVxICJTVkdNYXRyaXgiKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkFmZmlu
ZVRyYW5zZm9ybS5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01TVkdNYXRyaXhJ
bnRlcm5hbC5oIn0gPSAxOwpAQCAtMTMxNywxNSArMTMxMCwzMCBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICIkZ2V0dGVy
Q29udGVudEhlYWQiOwogICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50VGFpbCAuPSAiLT50
b1N0cmluZygpIjsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICB9IGVsc2lmIChDb252ZXJz
aW9uTmVlZGVkKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSkpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+dHlwZSkgYW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQvKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIG15ICRpZGxUeXBlV2l0aE5hbWVzcGFjZSA9IEdldFNWR1R5cGVX
aXRoTmFtZXNwYWNlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmICgkaWRsVHlwZVdpdGhOYW1lc3BhY2UgPX4gL1NWR1N0YXRpY0xpc3RQcm9wZXJ0
eVRlYXJPZmYvKSB7CisgICAgICAgICAgICAgICAgbXkgJHR5cGUgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPnR5cGU7CisgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5
cGVOZWVkaW5nVGVhck9mZigkdHlwZSkgYW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQv
KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRpZGxUeXBlV2l0aE5hbWVzcGFjZSA9IEdldFNW
R1R5cGVXaXRoTmFtZXNwYWNlKCR0eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc1NWR1R5cGVXaXRoV3JpdGFibGVQcm9wZXJ0aWVzTmVlZGluZ1RlYXJPZmYo
JHR5cGUpIGFuZCBub3QgZGVmaW5lZCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJJbW11dGFibGUifSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJGlkbFR5
cGVXaXRoTmFtZXNwYWNlID1+IHMvU1ZHUHJvcGVydHlUZWFyT2ZmPC9TVkdTdGF0aWNQcm9wZXJ0
eVRlYXJPZmY8JGltcGxDbGFzc05hbWVXaXRoTmFtZXNwYWNlLCAvOworICAgICAgICAgICAgICAg
ICAgICAgICAgJGltcGxJbmNsdWRlc3siU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgifSA9IDE7
CisKKyAgICAgICAgICAgICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAkZ2V0dGVyQ29udGVudEhl
YWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyID1+IHMvSU1QTC0+Ly87CisgICAg
ICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyID1+IHMvXCgvLzsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG15ICR1cGRhdGVyID0gInVwZGF0ZSIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkZ2V0dGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9
ICJraXQoV1RGOjpnZXRQdHIoJHtpZGxUeXBlV2l0aE5hbWVzcGFjZX06OmNyZWF0ZShJTVBMLCAk
Z2V0dGVyQ29udGVudEhlYWQkZ2V0dGVyQ29udGVudFRhaWwsICYke2ltcGxDbGFzc05hbWVXaXRo
TmFtZXNwYWNlfTo6JHVwZGF0ZXIiOworICAgICAgICAgICAgICAgICAgICAgICAgJGdldHRlckNv
bnRlbnRUYWlsIC49ICIpKSI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRpZGxUeXBl
V2l0aE5hbWVzcGFjZSA9fiAvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi8pIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIG15ICRleHRyYUltcCA9ICJXZWJDb3JlOjpHZXRPd25lckVsZW1l
bnRGb3JUeXBlPCRpbXBsQ2xhc3NOYW1lV2l0aE5hbWVzcGFjZSwgV2ViQ29yZTo6SXNEZXJpdmVk
RnJvbVNWR0VsZW1lbnQ8JGltcGxDbGFzc05hbWVXaXRoTmFtZXNwYWNlPjo6dmFsdWU+Ojpvd25l
ckVsZW1lbnQoSU1QTCksICI7CiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVu
dEhlYWQgPSAia2l0KFdURjo6Z2V0UHRyKCR7aWRsVHlwZVdpdGhOYW1lc3BhY2V9OjpjcmVhdGUo
JGV4dHJhSW1wJGdldHRlckNvbnRlbnRIZWFkIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRn
ZXR0ZXJDb250ZW50VGFpbCAuPSAiKSkpIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAo
JGlkbFR5cGVXaXRoTmFtZXNwYWNlID1+IC9TVkdQb2ludExpc3QvKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAia2l0KFdURjo6Z2V0UHRyKCRnZXR0ZXJD
b250ZW50SGVhZCI7CisgICAgICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudFRhaWwg
Lj0gIikpIjsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICJraXQoV1RGOjpnZXRQdHIoJHtpZGxUeXBlV2l0
aE5hbWVzcGFjZX06OmNyZWF0ZSgkZ2V0dGVyQ29udGVudEhlYWQiOworICAgICAgICAgICAgICAg
ICAgICAgICAgJGdldHRlckNvbnRlbnRUYWlsIC49ICIpKSkiOwogICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50VGFpbCAuPSAiKSkpIjsKICAg
ICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVu
dEhlYWQgPSAia2l0KFdURjo6Z2V0UHRyKCRnZXR0ZXJDb250ZW50SGVhZCI7CiAgICAgICAgICAg
ICAgICAgICAgICRnZXR0ZXJDb250ZW50VGFpbCAuPSAiKSkiOwpAQCAtMTQxNiw3ICsxNDI0LDcg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICBJTVBMLT5jb21taXRDaGFuZ2UoKTtcbiIpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGV4Y2VwdGlvblJh
aXNlT25FcnJvclxuIik7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSU1QTC0+Y29tbWl0Q2hh
bmdlKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIElNUEwtPmNvbW1pdENoYW5nZSgpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICB9IGVsc2lmICgkc3ZnTGlzdFByb3BlcnR5VHlwZSkgewogICAgICAgICAg
ICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAiJGdldHRlckV4cHJlc3Npb25QcmVmaXgi
OwpAQCAtMTU3OCw3ICsxNTg2LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAg
ICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKICAgICAgICAgICAgICAgICBwdXNoKEBm
dW5jdGlvbkNvbnRlbnQsICIgICAgJHN2Z1Byb3BlcnR5VHlwZSYgcG9kSW1wbCA9IElNUEwtPnBy
b3BlcnR5UmVmZXJlbmNlKCk7XG4iKTsKLSAgICAgICAgICAgICAgICAkY29udGVudCA9ICJwb2RJ
bXBsLiRjb250ZW50O1xuICAgIElNUEwtPmNvbW1pdENoYW5nZSgpIjsgCisgICAgICAgICAgICAg
ICAgJGNvbnRlbnQgPSAicG9kSW1wbC4kY29udGVudCI7IAogICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICAkY29udGVudCA9ICRjYWxsZXIgLiAiLT4kY29udGVudCI7CiAgICAg
ICAgICAgICB9CkBAIC0xNjAyLDkgKzE2MTAsMTQgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KICAgICAgICAgICAgICAgICBpZiAoJHJhaXNlc0V4Y2VwdGlvbnMpIHsKICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICRleGNlcHRpb25Jbml0XG4iKTsK
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICRjb250ZW50
O1xuIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgkc3ZnUHJvcGVydHlUeXBlKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgaWYgKCFlYylc
biIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAg
ICAgICBJTVBMLT5jb21taXRDaGFuZ2UoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAkZXhjZXB0aW9u
UmFpc2VPbkVycm9yXG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgJGNvbnRlbnQ7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgIElNUEwtPmNvbW1pdENo
YW5nZSgpXG4iKSBpZiAkc3ZnUHJvcGVydHlUeXBlOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0gZWxzaWYgKGRlZmluZWQgJG5lZWRzQ3VzdG9teyJOb2RlVG9SZXR1cm4ifSkgewog
ICAgICAgICAgICAgICAgICMgU3BlY2lhbCBjYXNlIHRoZSBpbnNlcnRCZWZvcmUsIHJlcGxhY2VD
aGlsZCwgcmVtb3ZlQ2hpbGQgCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0JKHJldmlzaW9uIDcxNTAxKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtMjI4LDYgKzIyOCw3IEBA
IHN1YiBHZXRTVkdQcm9wZXJ0eVR5cGVzCiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlNWR0FuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIn0gPSAxOwogICAgIH0KIAorICAgICRzdmdQcm9wZXJ0
eVR5cGUgPSAiU1ZHUG9pbnQiIGlmICRzdmdQcm9wZXJ0eVR5cGUgZXEgIkZsb2F0UG9pbnQiOwog
ICAgIHJldHVybiAoJHN2Z1Byb3BlcnR5VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUsICRzdmdO
YXRpdmVUeXBlKTsKIH0KIApAQCAtOTMwLDkgKzkzMSwyMCBAQCBFTkQKICAgICAgICAgJGltcGxJ
bmNsdWRlc3siVjgkYXR0clR5cGUuaCJ9ID0gMTsKICAgICAgICAgJGltcGxJbmNsdWRlc3siU1ZH
UHJvcGVydHlUZWFyT2ZmLmgifSA9IDE7CiAgICAgICAgIG15ICR0ZWFyT2ZmVHlwZSA9ICRjb2Rl
R2VuZXJhdG9yLT5HZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGF0dHJUeXBlKTsKLSAgICAgICAg
aWYgKCR0ZWFyT2ZmVHlwZSA9fiAvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi8pIHsKKyAg
ICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVXaXRoV3JpdGFibGVQcm9wZXJ0aWVz
TmVlZGluZ1RlYXJPZmYoJGF0dHJUeXBlKSBhbmQgbm90IGRlZmluZWQgJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1tdXRhYmxlIn0pIHsKKyAgICAgICAgICAg
ICR0ZWFyT2ZmVHlwZSA9fiBzL1NWR1Byb3BlcnR5VGVhck9mZjwvU1ZHU3RhdGljUHJvcGVydHlU
ZWFyT2ZmPCRpbXBsQ2xhc3NOYW1lLCAvOworICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siU1ZH
U3RhdGljUHJvcGVydHlUZWFyT2ZmLmgifSA9IDE7CisKKyAgICAgICAgICAgIG15ICRnZXR0ZXIg
PSAkcmVzdWx0OworICAgICAgICAgICAgJGdldHRlciA9fiBzL2ltcC0+Ly87CisgICAgICAgICAg
ICAkZ2V0dGVyID1+IHMvXChcKS8vOworICAgICAgICAgICAgbXkgJHVwZGF0ZXIgPSAidXBkYXRl
IiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRnZXR0ZXIpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1cm4gdG9WOChXVEY6OmdldFB0cigke3RlYXJP
ZmZUeXBlfTo6Y3JlYXRlKGltcCwgJHJlc3VsdCwgJiR7aW1wbENsYXNzTmFtZX06OiR1cGRhdGVy
KSkpO1xuIik7CisgICAgICAgIH0gZWxzaWYgKCR0ZWFyT2ZmVHlwZSA9fiAvU1ZHU3RhdGljTGlz
dFByb3BlcnR5VGVhck9mZi8pIHsKICAgICAgICAgICAgIG15ICRleHRyYUltcCA9ICJHZXRPd25l
ckVsZW1lbnRGb3JUeXBlPCRpbXBsQ2xhc3NOYW1lLCBJc0Rlcml2ZWRGcm9tU1ZHRWxlbWVudDwk
aW1wbENsYXNzTmFtZT46OnZhbHVlPjo6b3duZXJFbGVtZW50KGltcCksICI7CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiB0b1Y4KFdURjo6Z2V0UHRyKCR7
dGVhck9mZlR5cGV9OjpjcmVhdGUoJGV4dHJhSW1wJHJlc3VsdCkpKTtcbiIpOworICAgICAgICB9
IGVsc2lmICgkdGVhck9mZlR5cGUgPX4gL1NWR1BvaW50TGlzdC8pIHsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJuIHRvVjgoV1RGOjpnZXRQdHIoJHJlc3Vs
dCkpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dERlY2xzLCAiICAgIHJldHVybiB0b1Y4KFdURjo6Z2V0UHRyKCR7dGVhck9mZlR5cGV9OjpjcmVh
dGUoJHJlc3VsdCkpKTtcbiIpOwogICAgICAgICB9CkBAIC0yNjc5LDcgKzI2OTEsNiBAQCBzdWIg
R2V0TmF0aXZlVHlwZUZvckNvbnZlcnNpb25zCiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CiAg
ICAgbXkgJHR5cGUgPSBzaGlmdDsKIAotICAgICR0eXBlID0gIkZsb2F0UG9pbnQiIGlmICR0eXBl
IGVxICJTVkdQb2ludCI7CiAgICAgJHR5cGUgPSAiQWZmaW5lVHJhbnNmb3JtIiBpZiAkdHlwZSBl
cSAiU1ZHTWF0cml4IjsKICAgICAkdHlwZSA9ICJWOFNWR1BPRFR5cGVXcmFwcGVyPCR0eXBlPiIg
aWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUE9EVHlwZSJ9OwogICAgICR0eXBl
ID0gJGNvZGVHZW5lcmF0b3ItPkdldFNWR1R5cGVOZWVkaW5nVGVhck9mZigkdHlwZSkgaWYgJGNv
ZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCR0eXBlKTsgCkBAIC0yOTQ5LDcg
KzI5NjAsNiBAQCBzdWIgSXNSZWZQdHJUeXBlCiAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVu
c2lnbmVkIjsKICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CiAgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKLSAgICByZXR1cm4gMCBpZiAk
dHlwZSBlcSAiU1ZHQW5pbWF0ZWRQb2ludHMiOwogCiAgICAgcmV0dXJuIDE7CiB9CkBAIC0yOTgy
LDcgKzI5OTIsNiBAQCBzdWIgR2V0TmF0aXZlVHlwZQogICAgIHJldHVybiAiYm9vbCIgaWYgJHR5
cGUgZXEgImJvb2xlYW4iOwogICAgIHJldHVybiAiU3RyaW5nIiBpZiAkdHlwZSBlcSAiRE9NU3Ry
aW5nIjsKICAgICByZXR1cm4gIlJhbmdlOjpDb21wYXJlSG93IiBpZiAkdHlwZSBlcSAiQ29tcGFy
ZUhvdyI7Ci0gICAgcmV0dXJuICJGbG9hdFBvaW50IiBpZiAkdHlwZSBlcSAiU1ZHUG9pbnQiOwog
ICAgIHJldHVybiAiQWZmaW5lVHJhbnNmb3JtIiBpZiAkdHlwZSBlcSAiU1ZHTWF0cml4IjsKICAg
ICByZXR1cm4gIlNWR1RyYW5zZm9ybSIgaWYgJHR5cGUgZXEgIlNWR1RyYW5zZm9ybSI7CiAgICAg
cmV0dXJuICJTVkdQYWludDo6U1ZHUGFpbnRUeXBlIiBpZiAkdHlwZSBlcSAiU1ZHUGFpbnRUeXBl
IjsKQEAgLTMwMzUsNyArMzA0NCw2IEBAIHN1YiBCYXNpY1R5cGVDYW5GYWlsQ29udmVyc2lvbgog
ICAgIG15ICR0eXBlID0gR2V0VHlwZUZyb21TaWduYXR1cmUoJHNpZ25hdHVyZSk7CiAKICAgICBy
ZXR1cm4gMSBpZiAkdHlwZSBlcSAiU1ZHTWF0cml4IjsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBl
cSAiU1ZHUG9pbnQiOwogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJTVkdUcmFuc2Zvcm0iOwog
ICAgIHJldHVybiAwOwogfQpAQCAtMzA5OCwxMCArMzEwNiw2IEBAIHN1YiBKU1ZhbHVlVG9OYXRp
dmUKICAgICAgICAgJGltcGxJbmNsdWRlc3siRmxvYXRSZWN0LmgifSA9IDE7CiAgICAgfQogCi0g
ICAgaWYgKCR0eXBlIGVxICJTVkdQb2ludCIpIHsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siRmxv
YXRQb2ludC5oIn0gPSAxOwotICAgIH0KLQogICAgICMgRGVmYXVsdCwgYXNzdW1lIGF1dG9nZW5l
cmF0ZWQgdHlwZSBjb252ZXJzaW9uIHJvdXRpbmVzCiAgICAgaWYgKCR0eXBlIGVxICJFdmVudFRh
cmdldCIpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siVjhOb2RlLmgifSA9IDE7CkBAIC0zNDkz
LDcgKzM0OTcsNiBAQCBzdWIgSXNTVkdMaXN0VHlwZU5lZWRpbmdTcGVjaWFsSGFuZGxpbmcKIHsK
ICAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gMSBpZiAkY2xhc3NOYW1l
IGVxICJTVkdQb2ludExpc3QiOwogICAgIHJldHVybiAxIGlmICRjbGFzc05hbWUgZXEgIlNWR1Ry
YW5zZm9ybUxpc3QiOwogCiAgICAgcmV0dXJuIDA7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9T
VkdSZW5kZXJUcmVlQXNUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9T
VkdSZW5kZXJUcmVlQXNUZXh0LmNwcAkocmV2aXNpb24gNzE1MDEpCisrKyBXZWJDb3JlL3JlbmRl
cmluZy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDExLDcgKzQx
MSw3IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0KICAgICAgICAg
d3JpdGVOYW1lVmFsdWVQYWlyKHRzLCAiciIsIGVsZW1lbnQtPnIoKS52YWx1ZShlbGVtZW50KSk7
CiAgICAgfSBlbHNlIGlmIChzdmdFbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpwb2x5Z29u
VGFnKSB8fCBzdmdFbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpwb2x5bGluZVRhZykpIHsK
ICAgICAgICAgU1ZHUG9seUVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdQb2x5RWxl
bWVudCo+KHN2Z0VsZW1lbnQpOwotICAgICAgICB3cml0ZU5hbWVBbmRRdW90ZWRWYWx1ZSh0cywg
InBvaW50cyIsIGVsZW1lbnQtPnBvaW50cygpLT52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICB3
cml0ZU5hbWVBbmRRdW90ZWRWYWx1ZSh0cywgInBvaW50cyIsIGVsZW1lbnQtPnBvaW50TGlzdCgp
LnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfSBlbHNlIGlmIChzdmdFbGVtZW50LT5oYXNUYWdOYW1l
KFNWR05hbWVzOjpwYXRoVGFnKSkgewogICAgICAgICBTVkdQYXRoRWxlbWVudCogZWxlbWVudCA9
IHN0YXRpY19jYXN0PFNWR1BhdGhFbGVtZW50Kj4oc3ZnRWxlbWVudCk7CiAgICAgICAgIFN0cmlu
ZyBwYXRoU3RyaW5nOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FsbEluT25lLmNwcAkocmV2aXNpb24gNzE1MDEpCisrKyBX
ZWJDb3JlL3N2Zy9TVkdBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYg
QEAKICNpbmNsdWRlICJTVkdBbmdsZS5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUNvbG9yRWxl
bWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQYXRoRGF0YS5jcHAiCi0jaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRQb2ludHMuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmNwcCIK
ICNpbmNsdWRlICJTVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIgpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNw
cAkocmV2aXNpb24gNzE1MDEpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3MCwxMiArMTcwLDEyIEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1l
bnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgZWxzZSBpZiAocGVyY2VudGFnZSA9PSAxLmYp
CiAgICAgICAgICAgICByZXN1bHRzLT5tX2FuaW1hdGVkUG9pbnRzID0gbV90b1BvaW50czsKICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAobV9mcm9tUG9pbnRzICYmIG1fdG9Qb2ludHMp
Ci0gICAgICAgICAgICAgICAgcmVzdWx0cy0+bV9hbmltYXRlZFBvaW50cyA9IFNWR1BvaW50TGlz
dDo6Y3JlYXRlQW5pbWF0ZWQobV9mcm9tUG9pbnRzLmdldCgpLCBtX3RvUG9pbnRzLmdldCgpLCBw
ZXJjZW50YWdlKTsKKyAgICAgICAgICAgIGlmICghbV9mcm9tUG9pbnRzLmlzRW1wdHkoKSAmJiAh
bV90b1BvaW50cy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgU1ZHUG9pbnRMaXN0OjpjcmVh
dGVBbmltYXRlZChtX2Zyb21Qb2ludHMsIG1fdG9Qb2ludHMsIHJlc3VsdHMtPm1fYW5pbWF0ZWRQ
b2ludHMsIHBlcmNlbnRhZ2UpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJl
c3VsdHMtPm1fYW5pbWF0ZWRQb2ludHMuY2xlYXIoKTsKICAgICAgICAgICAgIC8vIEZhbGwgYmFj
ayB0byBkaXNjcmV0ZSBhbmltYXRpb24gaWYgdGhlIHBvaW50cyBhcmUgbm90IGNvbXBhdGlibGUK
LSAgICAgICAgICAgIGlmICghcmVzdWx0cy0+bV9hbmltYXRlZFBvaW50cykKKyAgICAgICAgICAg
IGlmIChyZXN1bHRzLT5tX2FuaW1hdGVkUG9pbnRzLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAg
ICByZXN1bHRzLT5tX2FuaW1hdGVkUG9pbnRzID0gKChhbmltYXRpb25Nb2RlID09IEZyb21Ub0Fu
aW1hdGlvbiAmJiBwZXJjZW50YWdlID4gMC41ZikgfHwgYW5pbWF0aW9uTW9kZSA9PSBUb0FuaW1h
dGlvbiB8fCBwZXJjZW50YWdlID09IDEuMGYpIAogICAgICAgICAgICAgICAgICAgICA/IG1fdG9Q
b2ludHMgOiBtX2Zyb21Qb2ludHM7CiAgICAgICAgIH0KQEAgLTIxNSwxNCArMjE1LDEyIEBAIGJv
b2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmQKICAgICAgICAgbV9mcm9tUGF0
aC5jbGVhcigpOwogICAgICAgICBtX3RvUGF0aC5jbGVhcigpOwogICAgIH0gZWxzZSBpZiAobV9w
cm9wZXJ0eVR5cGUgPT0gUG9pbnRzUHJvcGVydHkpIHsKLSAgICAgICAgbV9mcm9tUG9pbnRzID0g
U1ZHUG9pbnRMaXN0OjpjcmVhdGUoU1ZHTmFtZXM6OnBvaW50c0F0dHIpOwotICAgICAgICBpZiAo
cG9pbnRzTGlzdEZyb21TVkdEYXRhKG1fZnJvbVBvaW50cy5nZXQoKSwgZnJvbVN0cmluZykpIHsK
LSAgICAgICAgICAgIG1fdG9Qb2ludHMgPSBTVkdQb2ludExpc3Q6OmNyZWF0ZShTVkdOYW1lczo6
cG9pbnRzQXR0cik7Ci0gICAgICAgICAgICBpZiAocG9pbnRzTGlzdEZyb21TVkdEYXRhKG1fdG9Q
b2ludHMuZ2V0KCksIHRvU3RyaW5nKSkKKyAgICAgICAgbV9mcm9tUG9pbnRzLmNsZWFyKCk7Cisg
ICAgICAgIGlmIChwb2ludHNMaXN0RnJvbVNWR0RhdGEobV9mcm9tUG9pbnRzLCBmcm9tU3RyaW5n
KSkgeworICAgICAgICAgICAgbV90b1BvaW50cy5jbGVhcigpOworICAgICAgICAgICAgaWYgKHBv
aW50c0xpc3RGcm9tU1ZHRGF0YShtX3RvUG9pbnRzLCB0b1N0cmluZykpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KLSAgICAgICAgbV9mcm9tUG9pbnRzLmNsZWFyKCk7
Ci0gICAgICAgIG1fdG9Qb2ludHMuY2xlYXIoKTsKICAgICB9CiAgICAgbV9mcm9tU3RyaW5nID0g
ZnJvbVN0cmluZzsKICAgICBtX3RvU3RyaW5nID0gdG9TdHJpbmc7CkBAIC0yOTksMTIgKzI5Nyw5
IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFwcGx5UmVzdWx0c1RvVGEKICAgICAgICAgICAg
IFNWR1BhdGhQYXJzZXJGYWN0b3J5KiBmYWN0b3J5ID0gU1ZHUGF0aFBhcnNlckZhY3Rvcnk6OnNl
bGYoKTsKICAgICAgICAgICAgIGZhY3RvcnktPmJ1aWxkU3RyaW5nRnJvbUJ5dGVTdHJlYW0obV9h
bmltYXRlZFBhdGhQb2ludGVyLCB2YWx1ZVRvQXBwbHksIFVuYWx0ZXJlZFBhcnNpbmcpOwogICAg
ICAgICB9Ci0gICAgfSBlbHNlIGlmIChtX3Byb3BlcnR5VHlwZSA9PSBQb2ludHNQcm9wZXJ0eSkg
ewotICAgICAgICBpZiAoIW1fYW5pbWF0ZWRQb2ludHMgfHwgIW1fYW5pbWF0ZWRQb2ludHMtPm51
bWJlck9mSXRlbXMoKSkKLSAgICAgICAgICAgIHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0ZWRTdHJp
bmc7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0ZWRQ
b2ludHMtPnZhbHVlQXNTdHJpbmcoKTsKLSAgICB9IGVsc2UKKyAgICB9IGVsc2UgaWYgKG1fcHJv
cGVydHlUeXBlID09IFBvaW50c1Byb3BlcnR5KQorICAgICAgICB2YWx1ZVRvQXBwbHkgPSBtX2Fu
aW1hdGVkUG9pbnRzLmlzRW1wdHkoKSA/IG1fYW5pbWF0ZWRTdHJpbmcgOiBtX2FuaW1hdGVkUG9p
bnRzLnZhbHVlQXNTdHJpbmcoKTsKKyAgICBlbHNlCiAgICAgICAgIHZhbHVlVG9BcHBseSA9IG1f
YW5pbWF0ZWRTdHJpbmc7CiAgICAgCiAgICAgc2V0VGFyZ2V0QXR0cmlidXRlQW5pbWF0ZWRWYWx1
ZSh2YWx1ZVRvQXBwbHkpOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCShyZXZpc2lvbiA3
MTUwMSkKKysrIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDEyICsyNywxMiBAQAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFtLmgiCisjaW5jbHVk
ZSAiU1ZHUG9pbnRMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICBjbGFzcyBTVkdQYXRoU2VnTGlzdDsKLSAgICBjbGFzcyBTVkdQb2lu
dExpc3Q7CiAKICAgICBjbGFzcyBTVkdBbmltYXRlRWxlbWVudCA6IHB1YmxpYyBTVkdBbmltYXRp
b25FbGVtZW50IHsKICAgICBwdWJsaWM6CkBAIC02OSw5ICs2OSw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgT3duUHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBtX3RvUGF0aDsKICAgICAg
ICAgT3duUHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBtX2FuaW1hdGVkUGF0aDsKICAgICAgICAgU1ZH
UGF0aEJ5dGVTdHJlYW0qIG1fYW5pbWF0ZWRQYXRoUG9pbnRlcjsKLSAgICAgICAgUmVmUHRyPFNW
R1BvaW50TGlzdD4gbV9mcm9tUG9pbnRzOwotICAgICAgICBSZWZQdHI8U1ZHUG9pbnRMaXN0PiBt
X3RvUG9pbnRzOwotICAgICAgICBSZWZQdHI8U1ZHUG9pbnRMaXN0PiBtX2FuaW1hdGVkUG9pbnRz
OworICAgICAgICBTVkdQb2ludExpc3QgbV9mcm9tUG9pbnRzOworICAgICAgICBTVkdQb2ludExp
c3QgbV90b1BvaW50czsKKyAgICAgICAgU1ZHUG9pbnRMaXN0IG1fYW5pbWF0ZWRQb2ludHM7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRQb2ludHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUG9p
bnRzLmNwcAkocmV2aXNpb24gNzE1MDEpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEgKzAsMCBAQAotLy8gVGhpcyBmaWxlIGlzIG5vdyBp
bnRlbnRpb25hbGx5IGVtcHR5LiBEZWxldGUgaXQgYWZ0ZXIgcmVtb3ZpbmcgaXQgZnJvbSBhbGwg
dGhlIGJ1aWxkIHN5c3RlbXMgYW5kIHByb2plY3QgZmlsZXMuCkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFBvaW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
UG9pbnRzLmgJKHJldmlzaW9uIDcxNTAxKQorKysgV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2lu
dHMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3Jn
PgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICov
Ci0KLSNpZm5kZWYgU1ZHQW5pbWF0ZWRQb2ludHNfaAotI2RlZmluZSBTVkdBbmltYXRlZFBvaW50
c19oCi0KLSNpZiBFTkFCTEUoU1ZHKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFz
cyBTVkdQb2ludExpc3Q7Ci0KLSAgICBjbGFzcyBTVkdBbmltYXRlZFBvaW50cyB7Ci0gICAgcHVi
bGljOgotICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFBvaW50cygpIHsgfQotCi0gICAgICAg
IC8vICdTVkdBbmltYXRlZFBvaW50cycgZnVuY3Rpb25zCi0gICAgICAgIHZpcnR1YWwgU1ZHUG9p
bnRMaXN0KiBwb2ludHMoKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgU1ZHUG9pbnRMaXN0
KiBhbmltYXRlZFBvaW50cygpIGNvbnN0ID0gMDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1ZHKQotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5v
ZXQKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5pZGwJKHJldmlzaW9uIDcxNTAxKQorKysg
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMz
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQot
bW9kdWxlIHN2ZyB7Ci0KLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWRywgT2JqQ1Byb3Rv
Y29sLCBPbWl0Q29uc3RydWN0b3JdIFNWR0FuaW1hdGVkUG9pbnRzIHsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFNWR1BvaW50TGlzdCAgIHBvaW50czsKLSAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNWR1BvaW50TGlzdCAgIGFuaW1hdGVkUG9pbnRzOwotICAgIH07Ci0KLX0KSW5kZXg6
IFdlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAkocmV2aXNpb24gNzE1MDEpCisrKyBXZWJDb3Jl
L3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw5ICsyNiw3
IEBACiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCiAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50Lmgi
Ci0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTVkdQb2ludExpc3QuaCIK
ICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgogCkBAIC0xNjcsNyArMTY1LDcgQEAgYm9vbCBw
YXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0IFN0cgogICAgIHJldHVybiBjdXIgPT0gZW5k
OwogfQogCi1ib29sIHBvaW50c0xpc3RGcm9tU1ZHRGF0YShTVkdQb2ludExpc3QqIHBvaW50c0xp
c3QsIGNvbnN0IFN0cmluZyYgcG9pbnRzKQorYm9vbCBwb2ludHNMaXN0RnJvbVNWR0RhdGEoU1ZH
UG9pbnRMaXN0JiBwb2ludHNMaXN0LCBjb25zdCBTdHJpbmcmIHBvaW50cykKIHsKICAgICBpZiAo
cG9pbnRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xOTUsOCArMTkzLDcg
QEAgYm9vbCBwb2ludHNMaXN0RnJvbVNWR0RhdGEoU1ZHUG9pbnRMaXN0KgogICAgICAgICB9CiAg
ICAgICAgIHNraXBPcHRpb25hbFNwYWNlcyhjdXIsIGVuZCk7CiAKLSAgICAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgICAgIHBvaW50c0xpc3QtPmFwcGVuZEl0ZW0oRmxvYXRQb2ludCh4
UG9zLCB5UG9zKSwgZWMpOworICAgICAgICBwb2ludHNMaXN0LmFwcGVuZChGbG9hdFBvaW50KHhQ
b3MsIHlQb3MpKTsKICAgICB9CiAgICAgcmV0dXJuIGN1ciA9PSBlbmQgJiYgIWRlbGltUGFyc2Vk
OwogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJKHJldmlzaW9uIDcxNTAxKQorKysg
V2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcg
KzYzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICByZXR1cm4gcHRyIDwgZW5kOwog
ICAgIH0KIAotICAgIGJvb2wgcG9pbnRzTGlzdEZyb21TVkdEYXRhKFNWR1BvaW50TGlzdCogcG9p
bnRzTGlzdCwgY29uc3QgU3RyaW5nJiBwb2ludHMpOworICAgIGJvb2wgcG9pbnRzTGlzdEZyb21T
VkdEYXRhKFNWR1BvaW50TGlzdCYgcG9pbnRzTGlzdCwgY29uc3QgU3RyaW5nJiBwb2ludHMpOwog
ICAgIFZlY3RvcjxTdHJpbmc+IHBhcnNlRGVsaW1pdGVkU3RyaW5nKGNvbnN0IFN0cmluZyYgaW5w
dXQsIGNvbnN0IGNoYXIgc2VwZXJhdG9yKTsKICAgICBib29sIHBhcnNlS2VybmluZ1VuaWNvZGVT
dHJpbmcoY29uc3QgU3RyaW5nJiBpbnB1dCwgVW5pY29kZVJhbmdlcyYsIEhhc2hTZXQ8U3RyaW5n
PiYgc3RyaW5nTGlzdCk7CiAgICAgYm9vbCBwYXJzZUdseXBoTmFtZShjb25zdCBTdHJpbmcmIGlu
cHV0LCBIYXNoU2V0PFN0cmluZz4mIHZhbHVlcyk7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQb2lu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaWRsCShyZXZpc2lvbiA3
MTUwMSkKKysrIFdlYkNvcmUvc3ZnL1NWR1BvaW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjIs
OSArMjIsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9
U1ZHLCBQT0RUeXBlPUZsb2F0UG9pbnRdIFNWR1BvaW50IHsKLSAgICAgICAgYXR0cmlidXRlIGZs
b2F0IHg7Ci0gICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB5OworICAgIGludGVyZmFjZSBbQ29uZGl0
aW9uYWw9U1ZHXSBTVkdQb2ludCB7CisgICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNr
aW5nXSBmbG9hdCB4OworICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxv
YXQgeTsKIAogICAgICAgICBTVkdQb2ludCBtYXRyaXhUcmFuc2Zvcm0oaW4gU1ZHTWF0cml4IG1h
dHJpeCk7CiAgICAgfTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmNwcAkocmV2aXNpb24gNzE1MDEpCisr
KyBXZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwzMiAr
MjIsMjcgQEAKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHUG9pbnRMaXN0LmgiCi0j
aW5jbHVkZSAiU1ZHUGF0aFNlZ0xpc3QuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgog
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZS5oPgogCi1TVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdChjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lKQotICAgIDogU1ZHUE9ETGlzdDxGbG9hdFBvaW50PihhdHRyaWJ1
dGVOYW1lKQotewotfQorbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdHJpbmcgU1ZHUG9pbnRMaXN0
Ojp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKIHsKLSAgICBTdHJpbmcgcmVzdWx0OworICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKIAotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGZvciAo
dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbnVtYmVyT2ZJdGVtcygpOyArK2kpIHsKKyAgICB1bnNp
Z25lZCBzaXplID0gdGhpcy0+c2l6ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBz
aXplOyArK2kpIHsKICAgICAgICAgaWYgKGkgPiAwKQotICAgICAgICAgICAgcmVzdWx0ICs9ICIg
IjsKLQotICAgICAgICBGbG9hdFBvaW50IHBvaW50ID0gZ2V0SXRlbShpLCBlYyk7Ci0gICAgICAg
IEFTU0VSVChlYyA9PSAwKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgIik7IC8vIEZJ
WE1FOiBTaG91bGRuJ3Qgd2UgdXNlIGNvbW1hcyB0byBzZXBlcmF0ZT8KIAotICAgICAgICByZXN1
bHQgKz0gU3RyaW5nOjpmb3JtYXQoIiUuNmxnICUuNmxnIiwgcG9pbnQueCgpLCBwb2ludC55KCkp
OworICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwb2ludCA9IGF0KGkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZChtYWtlU3RyaW5nKFN0cmluZzo6bnVtYmVyKHBvaW50LngoKSksICcgJywgU3Ry
aW5nOjpudW1iZXIocG9pbnQueSgpKSkpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KIAogZmxvYXQgaW5saW5lIGFkanVzdEFu
aW1hdGVkVmFsdWUoZmxvYXQgZnJvbSwgZmxvYXQgdG8sIGZsb2F0IHByb2dyZXNzKQpAQCAtNTUs
MjcgKzUwLDE5IEBAIGZsb2F0IGlubGluZSBhZGp1c3RBbmltYXRlZFZhbHVlKGZsb2F0IGYKICAg
ICByZXR1cm4gKHRvIC0gZnJvbSkgKiBwcm9ncmVzcyArIGZyb207CiB9CiAKLVBhc3NSZWZQdHI8
U1ZHUG9pbnRMaXN0PiBTVkdQb2ludExpc3Q6OmNyZWF0ZUFuaW1hdGVkKGNvbnN0IFNWR1BvaW50
TGlzdCogZnJvbUxpc3QsIGNvbnN0IFNWR1BvaW50TGlzdCogdG9MaXN0LCBmbG9hdCBwcm9ncmVz
cykKK2Jvb2wgU1ZHUG9pbnRMaXN0OjpjcmVhdGVBbmltYXRlZChjb25zdCBTVkdQb2ludExpc3Qm
IGZyb21MaXN0LCBjb25zdCBTVkdQb2ludExpc3QmIHRvTGlzdCwgU1ZHUG9pbnRMaXN0JiByZXN1
bHRMaXN0LCBmbG9hdCBwcm9ncmVzcykKIHsKLSAgICB1bnNpZ25lZCBpdGVtQ291bnQgPSBmcm9t
TGlzdC0+bnVtYmVyT2ZJdGVtcygpOwotICAgIGlmICghaXRlbUNvdW50IHx8IGl0ZW1Db3VudCAh
PSB0b0xpc3QtPm51bWJlck9mSXRlbXMoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgUmVmUHRy
PFNWR1BvaW50TGlzdD4gcmVzdWx0ID0gY3JlYXRlKGZyb21MaXN0LT5hc3NvY2lhdGVkQXR0cmli
dXRlTmFtZSgpKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICB1bnNpZ25lZCBpdGVt
Q291bnQgPSBmcm9tTGlzdC5zaXplKCk7CisgICAgaWYgKCFpdGVtQ291bnQgfHwgaXRlbUNvdW50
ICE9IHRvTGlzdC5zaXplKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBmb3IgKHVuc2ln
bmVkIG4gPSAwOyBuIDwgaXRlbUNvdW50OyArK24pIHsKLSAgICAgICAgRmxvYXRQb2ludCBmcm9t
ID0gZnJvbUxpc3QtPmdldEl0ZW0obiwgZWMpOwotICAgICAgICBpZiAoZWMpCi0gICAgICAgICAg
ICByZXR1cm4gMDsKLSAgICAgICAgRmxvYXRQb2ludCB0byA9IHRvTGlzdC0+Z2V0SXRlbShuLCBl
Yyk7Ci0gICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBjb25z
dCBGbG9hdFBvaW50JiBmcm9tID0gZnJvbUxpc3QuYXQobik7CisgICAgICAgIGNvbnN0IEZsb2F0
UG9pbnQmIHRvID0gdG9MaXN0LmF0KG4pOwogICAgICAgICBGbG9hdFBvaW50IHNlZ21lbnQgPSBG
bG9hdFBvaW50KGFkanVzdEFuaW1hdGVkVmFsdWUoZnJvbS54KCksIHRvLngoKSwgcHJvZ3Jlc3Mp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkanVzdEFuaW1hdGVk
VmFsdWUoZnJvbS55KCksIHRvLnkoKSwgcHJvZ3Jlc3MpKTsKLSAgICAgICAgcmVzdWx0LT5hcHBl
bmRJdGVtKHNlZ21lbnQsIGVjKTsKLSAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJlc3VsdExpc3QuYXBwZW5kKHNlZ21lbnQpOwogICAgIH0KLSAgICByZXR1
cm4gcmVzdWx0LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfQpJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUG9p
bnRMaXN0LmgJKHJldmlzaW9uIDcxNTAxKQorKysgV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDI0ICsyMiwyMiBAQAogI2RlZmluZSBTVkdQb2ludExpc3Rf
aAogCiAjaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdMaXN0LmgiCi0jaW5jbHVkZSAiRmxv
YXRQb2ludC5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLSAgICBjbGFzcyBTVkdQb2ludExpc3QgOiBwdWJsaWMgU1ZHUE9ETGlzdDxGbG9hdFBv
aW50PiB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQb2ludExp
c3Q+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgU1ZHUG9pbnRMaXN0KGF0dHJpYnV0ZU5hbWUpKTsgfQorY2xhc3MgRmxvYXRQ
b2ludDsKIAotICAgICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0OworY2xhc3MgU1ZH
UG9pbnRMaXN0IDogcHVibGljIFZlY3RvcjxGbG9hdFBvaW50PiB7CitwdWJsaWM6CisgICAgU1ZH
UG9pbnRMaXN0KCkgeyB9CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUG9pbnRMaXN0
PiBjcmVhdGVBbmltYXRlZChjb25zdCBTVkdQb2ludExpc3QqIGZyb21MaXN0LCBjb25zdCBTVkdQ
b2ludExpc3QqIHRvTGlzdCwgZmxvYXQgcHJvZ3Jlc3MpOworICAgIFN0cmluZyB2YWx1ZUFzU3Ry
aW5nKCkgY29uc3Q7CiAKLSAgICBwcml2YXRlOgotICAgICAgICBTVkdQb2ludExpc3QoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOwotICAgIH07CisgICAgc3RhdGljIGJvb2wgY3JlYXRlQW5pbWF0ZWQo
Y29uc3QgU1ZHUG9pbnRMaXN0JiBmcm9tTGlzdCwgY29uc3QgU1ZHUG9pbnRMaXN0JiB0b0xpc3Qs
IFNWR1BvaW50TGlzdCYgcmVzdWx0TGlzdCwgZmxvYXQgcHJvZ3Jlc3MpOworfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCShyZXZpc2lvbiA3
MTUwMSkKKysrIFdlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzksMjkgKzM5LDE4IEBAIFNWR1BvbHlFbGVtZW50OjpTVkdQb2x5RWxlbWVudChjb25zdCBR
dWEKIHsKIH0KIAotU1ZHUG9pbnRMaXN0KiBTVkdQb2x5RWxlbWVudDo6cG9pbnRzKCkgY29uc3QK
LXsKLSAgICBpZiAoIW1fcG9pbnRzKQotICAgICAgICBtX3BvaW50cyA9IFNWR1BvaW50TGlzdDo6
Y3JlYXRlKFNWR05hbWVzOjpwb2ludHNBdHRyKTsKLQotICAgIHJldHVybiBtX3BvaW50cy5nZXQo
KTsKLX0KLQotU1ZHUG9pbnRMaXN0KiBTVkdQb2x5RWxlbWVudDo6YW5pbWF0ZWRQb2ludHMoKSBj
b25zdAotewotICAgIC8vIEZJWE1FIQotICAgIHJldHVybiAwOwotfQotCiB2b2lkIFNWR1BvbHlF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9IGF0dHItPnZhbHVlKCk7CiAgICAgaWYgKGF0dHItPm5h
bWUoKSA9PSBTVkdOYW1lczo6cG9pbnRzQXR0cikgewotICAgICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKLSAgICAgICAgcG9pbnRzKCktPmNsZWFyKGVjKTsKLQotICAgICAgICBpZiAoIXBvaW50
c0xpc3RGcm9tU1ZHRGF0YShwb2ludHMoKSwgdmFsdWUpKQorICAgICAgICBTVkdQb2ludExpc3Qg
bmV3TGlzdDsKKyAgICAgICAgaWYgKCFwb2ludHNMaXN0RnJvbVNWR0RhdGEobmV3TGlzdCwgdmFs
dWUpKQogICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5yZXBv
cnRFcnJvcigiUHJvYmxlbSBwYXJzaW5nIHBvaW50cz1cIiIgKyB2YWx1ZSArICJcIiIpOworCisg
ICAgICAgIGlmIChTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0Piog
bGlzdCA9IG1fYW5pbWF0YWJsZVBvaW50c0xpc3QuZ2V0KCkpCisgICAgICAgICAgICBsaXN0LT5k
ZXRhY2hMaXN0V3JhcHBlcnMobmV3TGlzdC5zaXplKCkpOworCisgICAgICAgIG1fcG9pbnRzLnZh
bHVlID0gbmV3TGlzdDsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoU1ZHVGVzdHM6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNzcsMTAgKzY2
LDYgQEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZAogewogICAgIFNW
R1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1l
KTsKIAotICAgIC8vIFRoZSBwb2ludHMgcHJvcGVydHkgaXMgbm90IGEgcmVndWxhciBTVkdBbmlt
YXRlZFByb3BlcnR5LCBzdGlsbCB3ZSB1c2UgdGhlIHNhbWUgU1ZHPC0+WE1MIERPTSBzeW5jaHJv
bml6YXRpb24gZnJhbWV3b3JrLgotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6cG9pbnRz
QXR0cikKLSAgICAgICAgaW52YWxpZGF0ZVNWR0F0dHJpYnV0ZXMoKTsKLQogICAgIFJlbmRlclNW
R1BhdGgqIHJlbmRlcmVyID0gc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHUGF0aCo+KHRoaXMtPnJlbmRl
cmVyKCkpOwogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTEwOSwxNCAr
OTQsNDQgQEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6c3luY2hyb25pemVQcm9wZXJ0eQogCiAgICAg
aWYgKGF0dHJOYW1lID09IGFueVFOYW1lKCkpIHsKICAgICAgICAgc3luY2hyb25pemVFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkKCk7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHlTeW5jaHJv
bml6ZXI8dHJ1ZT46OnN5bmNocm9uaXplKHRoaXMsIFNWR05hbWVzOjpwb2ludHNBdHRyLCBwb2lu
dHMoKS0+dmFsdWVBc1N0cmluZygpKTsKKyAgICAgICAgc3luY2hyb25pemVQb2ludHMoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkOjppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkKICAgICAgICAgc3luY2hyb25pemVFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkKCk7CiAgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6OnBvaW50c0F0dHIpCi0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHlTeW5jaHJvbml6ZXI8
dHJ1ZT46OnN5bmNocm9uaXplKHRoaXMsIGF0dHJOYW1lLCBwb2ludHMoKS0+dmFsdWVBc1N0cmlu
ZygpKTsKKyAgICAgICAgc3luY2hyb25pemVQb2ludHMoKTsKK30KKwordm9pZCBTVkdQb2x5RWxl
bWVudDo6c3luY2hyb25pemVQb2ludHMoKQoreworICAgIGlmICghbV9wb2ludHMuc2hvdWxkU3lu
Y2hyb25pemUpCisgICAgICAgIHJldHVybjsKKworICAgIFNWR0FuaW1hdGVkUHJvcGVydHlTeW5j
aHJvbml6ZXI8dHJ1ZT46OnN5bmNocm9uaXplKHRoaXMsIFNWR05hbWVzOjpwb2ludHNBdHRyLCBt
X3BvaW50cy52YWx1ZS52YWx1ZUFzU3RyaW5nKCkpOworfQorCitTVkdMaXN0UHJvcGVydHlUZWFy
T2ZmPFNWR1BvaW50TGlzdD4qIFNWR1BvbHlFbGVtZW50Ojpwb2ludHMoKQoreworICAgIGlmICgh
bV9hbmltYXRhYmxlUG9pbnRzTGlzdCkgeworICAgICAgICBtX3BvaW50cy5zaG91bGRTeW5jaHJv
bml6ZSA9IHRydWU7CisgICAgICAgIG1fYW5pbWF0YWJsZVBvaW50c0xpc3QgPSBTVkdBbmltYXRl
ZFByb3BlcnR5Ojpsb29rdXBPckNyZWF0ZVdyYXBwZXI8U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmPFNWR1BvaW50TGlzdD4gLCBTVkdQb2ludExpc3Q+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAodGhpcywgU1ZHTmFtZXM6OnBvaW50c0F0dHIsIFNWR05hbWVzOjpwb2lu
dHNBdHRyLmxvY2FsTmFtZSgpLCBtX3BvaW50cy52YWx1ZSk7CisgICAgfQorCisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0Pio+KG1fYW5p
bWF0YWJsZVBvaW50c0xpc3QtPmJhc2VWYWwoKSk7Cit9CisKK1NWR0xpc3RQcm9wZXJ0eVRlYXJP
ZmY8U1ZHUG9pbnRMaXN0PiogU1ZHUG9seUVsZW1lbnQ6OmFuaW1hdGVkUG9pbnRzKCkKK3sKKyAg
ICBpZiAoIW1fYW5pbWF0YWJsZVBvaW50c0xpc3QpIHsKKyAgICAgICAgbV9wb2ludHMuc2hvdWxk
U3luY2hyb25pemUgPSB0cnVlOworICAgICAgICBtX2FuaW1hdGFibGVQb2ludHNMaXN0ID0gU1ZH
QW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyPFNWR0FuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3Q+ICwgU1ZHUG9pbnRMaXN0PgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHRoaXMsIFNWR05hbWVzOjpwb2ludHNBdHRyLCBTVkdOYW1l
czo6cG9pbnRzQXR0ci5sb2NhbE5hbWUoKSwgbV9wb2ludHMudmFsdWUpOworICAgIH0KKworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50TGlzdD4q
PihtX2FuaW1hdGFibGVQb2ludHNMaXN0LT5hbmltVmFsKCkpOwogfQogCiB9CkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1Bv
bHlFbGVtZW50LmgJKHJldmlzaW9uIDcxNTAxKQorKysgV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNDEgKzIyLDQ2IEBACiAjZGVmaW5lIFNWR1BvbHlF
bGVtZW50X2gKIAogI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQb2ludHMu
aCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgiCiAjaW5jbHVkZSAiU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0xhbmdTcGFjZS5oIgor
I2luY2x1ZGUgIlNWR1BvaW50TGlzdC5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHVGVzdHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0gICAgY2xhc3MgU1ZHUG9seUVsZW1lbnQgOiAgcHVibGljIFNWR1N0eWxlZFRyYW5zZm9y
bWFibGVFbGVtZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdUZXN0
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHTGFuZ1NwYWNlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdBbmltYXRlZFBvaW50
cyB7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIFNWR1BvaW50TGlzdCogcG9pbnRzKCkg
Y29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHUG9pbnRMaXN0KiBhbmltYXRlZFBvaW50cygpIGNv
bnN0OwotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICBTVkdQb2x5RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQotCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsgCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUHJvcGVydHkoY29uc3QgUXVh
bGlmaWVkTmFtZSYpOworY2xhc3MgU1ZHUG9seUVsZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFNWR1Rlc3Rz
CisgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTVkdMYW5nU3BhY2UKKyAgICAgICAgICAg
ICAgICAgICAgICwgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgeworcHVibGlj
OgorICAgIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0PiogcG9pbnRzKCk7Cisg
ICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3Q+KiBhbmltYXRlZFBvaW50cygp
OwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01hcmtlcnMoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CisgICAgU1ZHUG9pbnRMaXN0JiBwb2ludExpc3QoKSBjb25zdCB7IHJldHVybiBt
X3BvaW50cy52YWx1ZTsgfQogCi0gICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQKLSAgICAgICAgREVDTEFSRV9BTklNQVRFRF9TVEFUSUNfUFJPUEVSVFlfTkVXKFNWR1BvbHlF
bGVtZW50LCBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHIsIGJvb2wsIEV4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCitwcm90
ZWN0ZWQ6CisgICAgU1ZHUG9seUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CiAKLSAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHUG9pbnRMaXN0PiBtX3BvaW50czsKLSAg
ICB9OworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJu
IFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0
dHJpYnV0ZShBdHRyaWJ1dGUqKTsgCisgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOworICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVBy
b3BlcnR5KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKKworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c01hcmtlcnMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICAvLyBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkCisgICAgREVDTEFSRV9BTklNQVRFRF9TVEFUSUNfUFJPUEVSVFlfTkVX
KFNWR1BvbHlFbGVtZW50LCBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHIs
IGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQpCisKKyAgICB2b2lkIHN5bmNocm9uaXplUG9pbnRzKCk7CisKK3Byb3RlY3RlZDoKKyAgICBt
dXRhYmxlIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eTxTVkdQb2ludExpc3Q+IG1f
cG9pbnRzOworICAgIFJlZlB0cjxTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9p
bnRMaXN0PiA+IG1fYW5pbWF0YWJsZVBvaW50c0xpc3Q7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5jcHAJKHJldmlzaW9uIDcxNTAx
KQorKysgV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMyw4ICsyMyw2IEBACiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdQb2x5Z29uRWxl
bWVudC5oIgogCi0jaW5jbHVkZSAiU1ZHUG9pbnRMaXN0LmgiCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogaW5saW5lIFNWR1BvbHlnb25FbGVtZW50OjpTVkdQb2x5Z29uRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCkBAIC00MSwxNSArMzks
MTUgQEAgdm9pZCBTVkdQb2x5Z29uRWxlbWVudDo6dG9QYXRoRGF0YShQYXRoJgogewogICAgIEFT
U0VSVChwYXRoLmlzRW1wdHkoKSk7CiAKLSAgICBpbnQgbGVuID0gcG9pbnRzKCktPm51bWJlck9m
SXRlbXMoKTsKLSAgICBpZiAobGVuIDwgMSkKKyAgICBTVkdQb2ludExpc3QmIHBvaW50cyA9IHBv
aW50TGlzdCgpOworICAgIGlmIChwb2ludHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgcGF0aC5tb3ZlVG8ocG9pbnRzKCkt
PmdldEl0ZW0oMCwgZWMpKTsKIAotICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbGVuOyArK2kpCi0g
ICAgICAgIHBhdGguYWRkTGluZVRvKHBvaW50cygpLT5nZXRJdGVtKGksIGVjKSk7CisgICAgcGF0
aC5tb3ZlVG8ocG9pbnRzLmZpcnN0KCkpOworCisgICAgdW5zaWduZWQgc2l6ZSA9IHBvaW50cy5z
aXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IHNpemU7ICsraSkKKyAgICAgICAg
cGF0aC5hZGRMaW5lVG8ocG9pbnRzLmF0KGkpKTsKIAogICAgIHBhdGguY2xvc2VTdWJwYXRoKCk7
CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiA3MTUwMSkKKysr
IFdlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAs
OCArMzAsOSBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
VkdTdHlsYWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNWR0FuaW1hdGVkUG9pbnRzIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlIHsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50TGlzdCBwb2ludHM7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQb2ludExpc3QgYW5pbWF0ZWRQb2ludHM7CiAgICAgfTsK
IAogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA3MTUwMSkK
KysrIFdlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIzLDggKzIzLDYgQEAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR1BvbHlsaW5lRWxl
bWVudC5oIgogCi0jaW5jbHVkZSAiU1ZHUG9pbnRMaXN0LmgiCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogaW5saW5lIFNWR1BvbHlsaW5lRWxlbWVudDo6U1ZHUG9seWxpbmVFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTQxLDE1ICsz
OSwxNSBAQCB2b2lkIFNWR1BvbHlsaW5lRWxlbWVudDo6dG9QYXRoRGF0YShQYXRoCiB7CiAgICAg
QVNTRVJUKHBhdGguaXNFbXB0eSgpKTsKIAotICAgIGludCBsZW4gPSBwb2ludHMoKS0+bnVtYmVy
T2ZJdGVtcygpOwotICAgIGlmIChsZW4gPCAxKQorICAgIFNWR1BvaW50TGlzdCYgcG9pbnRzID0g
cG9pbnRMaXN0KCk7CisgICAgaWYgKHBvaW50cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIHBhdGgubW92ZVRvKHBvaW50cygpLT5n
ZXRJdGVtKDAsIGVjKSk7CisgICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZpcnN0KCkpOwogCi0gICAg
Zm9yIChpbnQgaSA9IDE7IGkgPCBsZW47ICsraSkKLSAgICAgICAgcGF0aC5hZGRMaW5lVG8ocG9p
bnRzKCktPmdldEl0ZW0oaSwgZWMpKTsKKyAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRzLnNpemUo
KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICBwYXRo
LmFkZExpbmVUbyhwb2ludHMuYXQoaSkpOwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQ
b2x5bGluZUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BvbHlsaW5l
RWxlbWVudC5pZGwJKHJldmlzaW9uIDcxNTAxKQorKysgV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVF
bGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsOSBAQCBtb2R1bGUgc3ZnIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZH
TGFuZ1NwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdTdHlsYWJsZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVHJhbnNmb3Jt
YWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU1ZHQW5pbWF0ZWRQb2ludHMgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlIHsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFNWR1BvaW50TGlzdCBwb2ludHM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdQb2ludExpc3QgYW5pbWF0ZWRQb2ludHM7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU1ZH
RWxlbWVudC5jcHAJKHJldmlzaW9uIDcxNTAxKQorKysgV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMywxNCArMjEzLDE0IEBAIHZvaWQgU1ZHU1ZHRWxl
bWVudDo6c2V0Q3VycmVudFNjYWxlKGZsb2EKICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1h
cmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbihvYmplY3QpOwogfQogCi1G
bG9hdFBvaW50IFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRUcmFuc2xhdGUoKSBjb25zdAordm9pZCBT
VkdTVkdFbGVtZW50OjpzZXRDdXJyZW50VHJhbnNsYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHRyYW5z
bGF0aW9uKQogewotICAgIHJldHVybiBtX3RyYW5zbGF0aW9uOworICAgIG1fdHJhbnNsYXRpb24g
PSB0cmFuc2xhdGlvbjsKKyAgICB1cGRhdGVDdXJyZW50VHJhbnNsYXRlKCk7CiB9CiAKLXZvaWQg
U1ZHU1ZHRWxlbWVudDo6c2V0Q3VycmVudFRyYW5zbGF0ZShjb25zdCBGbG9hdFBvaW50ICZ0cmFu
c2xhdGlvbikKK3ZvaWQgU1ZHU1ZHRWxlbWVudDo6dXBkYXRlQ3VycmVudFRyYW5zbGF0ZSgpCiB7
Ci0gICAgbV90cmFuc2xhdGlvbiA9IHRyYW5zbGF0aW9uOwogICAgIGlmIChSZW5kZXJPYmplY3Qq
IG9iamVjdCA9IHJlbmRlcmVyKCkpCiAgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQodHJ1
ZSk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHJldmlzaW9uIDcxNTAxKQorKysgV2ViQ29yZS9z
dmcvU1ZHU1ZHRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCw5ICs3OCwxMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGZsb2F0IGN1cnJlbnRTY2FsZSgpIGNvbnN0OwogICAg
ICAgICB2b2lkIHNldEN1cnJlbnRTY2FsZShmbG9hdCBzY2FsZSk7CiAKLSAgICAgICAgRmxvYXRQ
b2ludCBjdXJyZW50VHJhbnNsYXRlKCkgY29uc3Q7CisgICAgICAgIEZsb2F0UG9pbnQmIGN1cnJl
bnRUcmFuc2xhdGUoKSB7IHJldHVybiBtX3RyYW5zbGF0aW9uOyB9CiAgICAgICAgIHZvaWQgc2V0
Q3VycmVudFRyYW5zbGF0ZShjb25zdCBGbG9hdFBvaW50Jik7Ci0gICAgICAgIAorCisgICAgICAg
IC8vIE9ubHkgdXNlZCBmcm9tIHRoZSBiaW5kaW5ncy4KKyAgICAgICAgdm9pZCB1cGRhdGVDdXJy
ZW50VHJhbnNsYXRlKCk7CisKICAgICAgICAgU01JTFRpbWVDb250YWluZXIqIHRpbWVDb250YWlu
ZXIoKSBjb25zdCB7IHJldHVybiBtX3RpbWVDb250YWluZXIuZ2V0KCk7IH0KICAgICAgICAgCiAg
ICAgICAgIHZvaWQgcGF1c2VBbmltYXRpb25zKCk7CkluZGV4OiBXZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDcxNTAxKQorKysgV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NyArMzIsNyBAQCBjbGFzcyBTVkdQcm9wZXJ0eVRlYXJPZmYgOiBwdWJsaWMgU1ZHUHJvCiBwdWJs
aWM6CiAgICAgdHlwZWRlZiBTVkdQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPiBTZWxmOwog
Ci0gICAgLy8gVXNlZCBmb3IgW1NWR0FuaW1hdGVkUHJvcGVydHldIHR5cGVzIChmb3IgZXhhbXBs
ZTogU1ZHQW5pbWF0ZWRMZW5ndGg6OmJhc2VWYWwoKSkuCisgICAgLy8gVXNlZCBmb3IgY2hpbGQg
dHlwZXMgKGJhc2VWYWwvYW5pbVZhbCkgb2YgYSBTVkdBbmltYXRlZCogcHJvcGVydHkgKGZvciBl
eGFtcGxlOiBTVkdBbmltYXRlZExlbmd0aDo6YmFzZVZhbCgpKS4KICAgICAvLyBBbHNvIHVzZWQg
Zm9yIGxpc3QgdGVhciBvZmZzIChmb3IgZXhhbXBsZTogdGV4dC54LmJhc2VWYWwuZ2V0SXRlbSgw
KSkuCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VsZj4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVy
dHkqIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSwgUHJvcGVydHlUeXBlJiB2YWx1
ZSkKICAgICB7CkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTZWxmKGFuaW1hdGVkUHJvcGVydHksIHZhbHVlKSk7CiAgICAgfQogCi0gICAgLy8g
VXNlZCBmb3Igbm9uLWFuaW1hdGVkIFBPRCB0eXBlcyAoZm9yIGV4YW1wbGU6IFNWR0xlbmd0aCku
CisgICAgLy8gVXNlZCBmb3Igbm9uLWFuaW1hdGVkIFBPRCB0eXBlcyAoZm9yIGV4YW1wbGU6IFNW
R1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR0xlbmd0aCgpKS4KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
ZWxmPiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBlJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlbGYoaW5pdGlhbFZhbHVlKSk7CkBAIC04MiwxNCAr
ODIsMTQgQEAgcHVibGljOgogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSAwOwogICAgIH0K
IAotICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkKKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q2hhbmdl
KCkKICAgICB7CiAgICAgICAgIGlmICghbV9hbmltYXRlZFByb3BlcnR5IHx8IG1fdmFsdWVJc0Nv
cHkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29t
bWl0Q2hhbmdlKCk7CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIFNWR1Byb3Bl
cnR5VGVhck9mZihTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5LCBQcm9wZXJ0
eVR5cGUmIHZhbHVlKQogICAgICAgICA6IG1fYW5pbWF0ZWRQcm9wZXJ0eShhbmltYXRlZFByb3Bl
cnR5KQogICAgICAgICAsIG1fdmFsdWUoJnZhbHVlKQpJbmRleDogV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAkocmV2aXNpb24gNzE1MDEpCisrKyBXZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYg
KzI3LDcgQEAKICNpbmNsdWRlICJTVkdMZW5ndGguaCIKICNpbmNsdWRlICJTVkdMZW5ndGhMaXN0
LmgiCiAjaW5jbHVkZSAiU1ZHTnVtYmVyTGlzdC5oIgorI2luY2x1ZGUgIlNWR1BvaW50TGlzdC5o
IgogI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCIKICNpbmNsdWRlICJTVkdTdHJp
bmdMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtMTIzLDYg
KzEyNCwxMiBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHU3RyaW5nTGlzdD4gCiAgICAg
dHlwZWRlZiBTdHJpbmcgTGlzdEl0ZW1UeXBlOwogfTsKIAordGVtcGxhdGU8Pgorc3RydWN0IFNW
R1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdD4geworICAgIHN0YXRpYyBTVkdQb2ludExpc3Qg
aW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gU1ZHUG9pbnRMaXN0KCk7IH0KKyAgICB0eXBlZGVmIEZs
b2F0UG9pbnQgTGlzdEl0ZW1UeXBlOworfTsKKwogfQogCiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2Zm
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5k
ZWYgU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmX2gKKyNkZWZpbmUgU1ZHU3RhdGljUHJvcGVydHlU
ZWFyT2ZmX2gKKworI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUZWFyT2Zm
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgQ29udGV4dEVs
ZW1lbnQsIHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR1N0YXRpY1Byb3BlcnR5VGVh
ck9mZiA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPiB7CitwdWJsaWM6
CisgICAgdHlwZWRlZiBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8Q29udGV4dEVsZW1lbnQsIFBy
b3BlcnR5VHlwZT4gU2VsZjsKKyAgICB0eXBlZGVmIHZvaWQgKENvbnRleHRFbGVtZW50OjoqVXBk
YXRlTWV0aG9kKSgpOworCisgICAgLy8gVXNlZCBmb3Igbm9uLWFuaW1hdGVkIFBPRCB0eXBlcyB0
aGF0IGFyZSBub3QgYXNzb2NpYXRlZCB3aXRoIGEgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSBvYmplY3Qs
IG5vciB3aXRoIGEgWE1MIERPTSBhdHRyaWJ1dGUKKyAgICAvLyAoZm9yIGV4YW1wbGU6IFNWR1NW
R0VsZW1lbnQ6OmN1cnJlbnRUcmFuc2xhdGUpLgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlbGY+
IGNyZWF0ZShDb250ZXh0RWxlbWVudCogY29udGV4dEVsZW1lbnQsIFByb3BlcnR5VHlwZSYgdmFs
dWUsIFVwZGF0ZU1ldGhvZCB1cGRhdGUpCisgICAgeworICAgICAgICBBU1NFUlQoY29udGV4dEVs
ZW1lbnQpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlbGYoY29udGV4dEVsZW1lbnQs
IHZhbHVlLCB1cGRhdGUpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q2hhbmdl
KCkgeyAobV9jb250ZXh0RWxlbWVudC5nZXQoKS0+Km1fdXBkYXRlKSgpOyB9CisKK3ByaXZhdGU6
CisgICAgU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmKENvbnRleHRFbGVtZW50KiBjb250ZXh0RWxl
bWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKKyAgICAgICAg
OiBTVkdQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPigwLCB2YWx1ZSkKKyAgICAgICAgLCBt
X2NvbnRleHRFbGVtZW50KGNvbnRleHRFbGVtZW50KQorICAgICAgICAsIG1fdXBkYXRlKHVwZGF0
ZSkKKyAgICB7CisgICAgfQorCisgICAgUmVmUHRyPENvbnRleHRFbGVtZW50PiBtX2NvbnRleHRF
bGVtZW50OworICAgIFVwZGF0ZU1ldGhvZCBtX3VwZGF0ZTsKK307CisKK30KKworI2VuZGlmIC8v
IEVOQUJMRShTVkcpCisjZW5kaWYgLy8gU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmX2gKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDcxNTAxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTEtMDggIE5pa29sYXMgWmltbWVybWFubiAgPG56
aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ29udmVydCBTVkdQb2ludC9TVkdQb2ludExpc3QgdG8gdGhlIG5ldyBTVkdQ
cm9wZXJ0eVRlYXJPZmYgY29uY2VwdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDkwNjcKKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9t
L3VzZS1wcm9wZXJ0eS1zeW5jaHJvbml6YXRpb24tY3Jhc2gtZXhwZWN0ZWQudHh0OiBDbG9uZWQg
PHBvbHlsaW5lPiBub3cgcmVwb3J0cyBwYXJzaW5nIHByb2JsZW1zIGFzIHdlbGwuCisgICAgICAg
ICogc3ZnL2N1c3RvbS9wb2x5bGluZS1wb2ludHMtY3Jhc2gtZXhwZWN0ZWQudHh0OiBVcGRhdGUg
ZXhwZWN0YXRpb24uCisgICAgICAgICogc3ZnL2N1c3RvbS9wb2x5bGluZS1wb2ludHMtY3Jhc2gu
aHRtbDogYXBwZW5kSXRlbShudWxsKSBub3cgdGhyb3dzLCBjYXRjaCBleGNlcHRpb24uCisgICAg
ICAgICogc3ZnL2RvbS9wb2ludHMtcGFyc2VyLmh0bWw6IEZpeCBmYWlsdXJlIHJlcG9ydGluZywg
dXNlIGNvcnJlY3QgdmFyaWFibGUgbmFtZS4KKwogMjAxMC0xMS0wNyAgRnVtaXRvc2hpIFVrYWkg
IDx1a2FpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCB1cGRhdGluZyBDaHJv
bWl1bSBleHBlY3RhdGlvbnMuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1
c3RvbS91c2UtcHJvcGVydHktc3luY2hyb25pemF0aW9uLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2UtcHJvcGVy
dHktc3luY2hyb25pemF0aW9uLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNzE1MDEpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2UtcHJvcGVydHktc3luY2hy
b25pemF0aW9uLWNyYXNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDUg
QEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSA1OiBFcnJvcjogUHJvYmxlbSBwYXJzaW5nIHBvaW50
cz0iMCIKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBFcnJvcjogUHJvYmxlbSBwYXJzaW5nIHBv
aW50cz0iMCIKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3BvbHlsaW5lLXBvaW50cy1jcmFzaC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wb2x5bGluZS1wb2ludHMtY3Jhc2gt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3MTUwMSkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20v
cG9seWxpbmUtcG9pbnRzLWNyYXNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSAr
MSwyIEBACitDYXVnaHQgZXhjZXB0aW9uOiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBF
eGNlcHRpb24gMTcKIFBBU1NFRCAtLSBXZWJLaXQgZGlkIG5vdCBjcmFzaCEKSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9jdXN0b20vcG9seWxpbmUtcG9pbnRzLWNyYXNoLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wb2x5bGluZS1wb2ludHMtY3Jhc2guaHRtbAkocmV2
aXNpb24gNzE1MDEpCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BvbHlsaW5lLXBvaW50cy1j
cmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsMTAgQEAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CiAKIHZhciBwb2x5bGluZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53
My5vcmcvMjAwMC9zdmciLCAicG9seWxpbmUiKTsKLXBvbHlsaW5lLnBvaW50cy5hcHBlbmRJdGVt
KG51bGwpOwordHJ5IHsKKyAgICBwb2x5bGluZS5wb2ludHMuYXBwZW5kSXRlbShudWxsKTsKK30g
Y2F0Y2ggKGUpIHsKKyAgICBkb2N1bWVudC53cml0ZSgiQ2F1Z2h0IGV4Y2VwdGlvbjogIiArIGUg
KyAiPGJyPiIpOworfQogZG9jdW1lbnQud3JpdGUoIlBBU1NFRCAtLSBXZWJLaXQgZGlkIG5vdCBj
cmFzaCEiKQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1BvaW50LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1BvaW50LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9kb20vU1ZHUG9pbnQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI1IEBACitUaGlzIHRlc3QgY2hl
Y2tzIHRoZSBTVkdQb2ludCBBUEkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKwor
Q2hlY2sgaW5pdGlhbCBwb2ludCB2YWx1ZXMKK1BBU1MgcG9pbnQueCBpcyAwCitQQVNTIHBvaW50
LnkgaXMgMAorCitDaGVjayBhc3NpZ25pbmcgcG9pbnRzCitQQVNTIHBvaW50LnggPSAxMDAgaXMg
MTAwCitQQVNTIHBvaW50LnkgPSAyMDAgaXMgMjAwCisKK0NoZWNrIGFzc2lnbmluZyBpbnZhbGlk
IHBvaW50cworUEFTUyBwb2ludC54ID0gcG9pbnQgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KK1BBU1MgcG9pbnQueSA9IG51bGwgaXMgbnVsbAorCitDaGVjayB0aGF0IHRo
ZSBwb2ludCBpcyBzdGlsbCBjb250YWluaW5nIHRoZSBjb3JyZWN0IHZhbHVlcworUEFTUyBwb2lu
dC54IGlzIDEwMAorUEFTUyBwb2ludC55IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1Bv
aW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdQb2ludC5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdQb2ludC5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9TVkdQb2ludC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9kb20v
cG9pbnRzLXBhcnNlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9kb20vcG9p
bnRzLXBhcnNlci5odG1sCShyZXZpc2lvbiA3MTUwMSkKKysrIExheW91dFRlc3RzL3N2Zy9kb20v
cG9pbnRzLXBhcnNlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0
aW9uIHBhcnNlUG9pbnRzKHN0ciwgcmVzdWx0KQogICAgIGlmIChwb2ludHMgPT09IHJlc3VsdCkg
ewogICAgICAgICB0ZXN0UGFzc2VkKCInIiArIHBvaW50cyArICInIGlzICciICsgcmVzdWx0ICsg
IiciKTsKICAgICB9IGVsc2UgewotICAgICAgICB0ZXN0RmFpbGVkKCInIiArIHN0cmluZyArICIn
IHNob3VsZCBiZSAnIiArIHJlc3VsdCArICInLCBidXQgaXMgJyIgKyBwb2ludHMgKyAiJyIpOwor
ICAgICAgICB0ZXN0RmFpbGVkKCInIiArIHN0ciArICInIHNob3VsZCBiZSAnIiArIHJlc3VsdCAr
ICInLCBidXQgaXMgJyIgKyBwb2ludHMgKyAiJyIpOwogICAgIH0KICAgICBkZWJ1ZygiIik7CiB9
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL3NjcmlwdC10ZXN0cy9TVkdQb2ludC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZG9tL3NjcmlwdC10ZXN0cy9TVkdQb2ludC5qcwko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9kb20vc2NyaXB0LXRlc3RzL1NWR1BvaW50
LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IGNoZWNrcyB0aGUgU1ZHUG9pbnQgQVBJIik7CisKK3ZhciBzdmdFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsICJzdmciKTsKK3Zh
ciBwb2ludCA9IHN2Z0VsZW1lbnQuY3JlYXRlU1ZHUG9pbnQoKTsKKworZGVidWcoIiIpOworZGVi
dWcoIkNoZWNrIGluaXRpYWwgcG9pbnQgdmFsdWVzIik7CitzaG91bGRCZSgicG9pbnQueCIsICIw
Iik7CitzaG91bGRCZSgicG9pbnQueSIsICIwIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVj
ayBhc3NpZ25pbmcgcG9pbnRzIik7CitzaG91bGRCZSgicG9pbnQueCA9IDEwMCIsICIxMDAiKTsK
K3Nob3VsZEJlKCJwb2ludC55ID0gMjAwIiwgIjIwMCIpOworCitkZWJ1ZygiIik7CitkZWJ1Zygi
Q2hlY2sgYXNzaWduaW5nIGludmFsaWQgcG9pbnRzIik7CitzaG91bGRUaHJvdygicG9pbnQueCA9
IHBvaW50Iik7CitzaG91bGRCZU51bGwoInBvaW50LnkgPSBudWxsIik7CisKK2RlYnVnKCIiKTsK
K2RlYnVnKCJDaGVjayB0aGF0IHRoZSBwb2ludCBpcyBzdGlsbCBjb250YWluaW5nIHRoZSBjb3Jy
ZWN0IHZhbHVlcyIpOworc2hvdWxkQmUoInBvaW50LngiLCAiMTAwIik7CitzaG91bGRCZSgicG9p
bnQueSIsICIwIik7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="63608"
          type_id="1"
          status="+"
          setter="krit"
    />
          </attachment>
      

    </bug>

</bugzilla>