<?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>49882</bug_id>
          
          <creation_ts>2010-11-21 09:39:00 -0800</creation_ts>
          <short_desc>Use WTF_ARRAY_LENGTH in WebCore directory</short_desc>
          <delta_ts>2010-11-21 16:10:58 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>312122</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-21 09:39:00 -0800</bug_when>
    <thetext>see patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312123</commentid>
    <comment_count>1</comment_count>
      <attachid>74507</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-21 09:41:40 -0800</bug_when>
    <thetext>Created attachment 74507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312126</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-21 09:48:21 -0800</bug_when>
    <thetext>Attachment 74507 did not build on gtk:
Build output: http://queues.webkit.org/results/6274043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312127</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-11-21 09:53:18 -0800</bug_when>
    <thetext>Attachment 74507 did not build on qt:
Build output: http://queues.webkit.org/results/6246088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312128</commentid>
    <comment_count>4</comment_count>
      <attachid>74508</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-21 09:53:22 -0800</bug_when>
    <thetext>Created attachment 74508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312129</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-21 09:53:51 -0800</bug_when>
    <thetext>Attachment 74507 did not build on mac:
Build output: http://queues.webkit.org/results/6246089</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312130</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-21 09:56:05 -0800</bug_when>
    <thetext>Attachment 74507 did not build on chromium:
Build output: http://queues.webkit.org/results/6128104</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312131</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-21 09:58:12 -0800</bug_when>
    <thetext>Attachment 74508 did not build on gtk:
Build output: http://queues.webkit.org/results/6217127</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312132</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-11-21 10:02:27 -0800</bug_when>
    <thetext>Attachment 74507 did not build on win:
Build output: http://queues.webkit.org/results/6118106</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312134</commentid>
    <comment_count>9</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-11-21 10:04:08 -0800</bug_when>
    <thetext>Attachment 74508 did not build on qt:
Build output: http://queues.webkit.org/results/6144106</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312135</commentid>
    <comment_count>10</comment_count>
      <attachid>74509</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-21 10:05:34 -0800</bug_when>
    <thetext>Created attachment 74509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312136</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-21 10:07:50 -0800</bug_when>
    <thetext>Attachment 74508 did not build on chromium:
Build output: http://queues.webkit.org/results/6257080</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312137</commentid>
    <comment_count>12</comment_count>
      <attachid>74510</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-21 10:10:39 -0800</bug_when>
    <thetext>Created attachment 74510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312138</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-21 10:13:24 -0800</bug_when>
    <thetext>Attachment 74507 did not build on chromium:
Build output: http://queues.webkit.org/results/6164119</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312142</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-21 10:35:39 -0800</bug_when>
    <thetext>Attachment 74508 did not build on chromium:
Build output: http://queues.webkit.org/results/6141110</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312175</commentid>
    <comment_count>15</comment_count>
      <attachid>74510</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-11-21 15:44:36 -0800</bug_when>
    <thetext>Comment on attachment 74510
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=74510&amp;action=review

&gt; WebCore/html/canvas/WebGLBuffer.cpp:182
&gt; +    size_t numEntries = WTF_ARRAY_LENGTH(m_maxIndexCache);
&gt; +    for (size_t i = 0; i &lt; numEntries; ++i)

We don&apos;t need numEntries variable here. Please fix this before landing:
for (size_t i = 0; i &lt; WTF_ARRAY_LENGTH(m_maxIndexCache); ++i)

Otherwise LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312178</commentid>
    <comment_count>16</comment_count>
      <attachid>74510</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-21 15:47:54 -0800</bug_when>
    <thetext>Comment on attachment 74510
Patch

(In reply to comment #15)
&gt; (From update of attachment 74510 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74510&amp;action=review
&gt; 
&gt; &gt; WebCore/html/canvas/WebGLBuffer.cpp:182
&gt; &gt; +    size_t numEntries = WTF_ARRAY_LENGTH(m_maxIndexCache);
&gt; &gt; +    for (size_t i = 0; i &lt; numEntries; ++i)
&gt; 
&gt; We don&apos;t need numEntries variable here. Please fix this before landing:
&gt; for (size_t i = 0; i &lt; WTF_ARRAY_LENGTH(m_maxIndexCache); ++i)
&gt; 
&gt; Otherwise LGTM.
I removed numEntries in a first version, but the compiled said NO ;-)
It&apos;s used in http://trac.webkit.org/browser/trunk/WebCore/html/canvas/WebGLBuffer.cpp?rev=68424#L190.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312179</commentid>
    <comment_count>17</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-11-21 15:52:21 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; I removed numEntries in a first version, but the compiled said NO ;-)
&gt; It&apos;s used in http://trac.webkit.org/browser/trunk/WebCore/html/canvas/WebGLBuffer.cpp?rev=68424#L190.

Ooops, you&apos;re right. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312180</commentid>
    <comment_count>18</comment_count>
      <attachid>74510</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-21 16:10:51 -0800</bug_when>
    <thetext>Comment on attachment 74510
Patch

Clearing flags on attachment: 74510

Committed r72500: &lt;http://trac.webkit.org/changeset/72500&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312181</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-21 16:10:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74507</attachid>
            <date>2010-11-21 09:41:40 -0800</date>
            <delta_ts>2010-11-21 09:53:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49882.patch</filename>
            <type>text/plain</type>
            <size>34155</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjhjZTg1Ni4uZTk3Yjg3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxMC0xMS0yMiAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgV1RGX0FSUkFZX0xFTkdUSCBpbiBXZWJDb3JlIGRpcmVj
dG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk4
ODIKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVBUklBUm9sZU1hcCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW06CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93
QmFzZTo6SlNET01XaW5kb3dCYXNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToK
KyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAg
KiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUFu
aW1hdGlvblNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVHJh
bnNpdGlvblNob3J0aGFuZCk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aW5pdFNob3J0aGFuZE1hcCk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAg
ICAgICAqIGRvbS9FeGNlcHRpb25Db2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldEV4Y2Vw
dGlvbkNvZGVEZXNjcmlwdGlvbik6CisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6cmVtb3ZlSW1wbGlj
aXRseVN0eWxlZEVsZW1lbnQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcDoK
KyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0cmlTdGF0
ZU9mU3R5bGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVDb21tYW5kTWFwKToKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFj
Y3VtdWxhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZENoYXJhY3RlcnNSZXBsYWNp
bmdFbnRpdGllcyk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xCdWZmZXI6OmdldENhY2hlZE1heEluZGV4KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMQnVmZmVyOjpzZXRDYWNoZWRNYXhJbmRleCk6CisgICAgICAgICogbG9h
ZGVyL0ZUUERpcmVjdG9yeVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZU9uZUZU
UExpbmUpOgorICAgICAgICAqIG1hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRlRnJvbUVsZW1lbnQpOgor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YWRkU2hvcnRoYW5kUHJvcGVydGllcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpo
YXNWYWxpZEF2Z0NoYXJXaWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNw
cDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpwYXJzZUFuZFNraXBUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnBhcnNlVmlld1NwZWMpOgorICAgICAgICAqIHN2
Zy9TVkdab29tQW5kUGFuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1pvb21BbmRQYW46OnBh
cnNlWm9vbUFuZFBhbik6CisgICAgICAgICogeG1sL1hQYXRoRnVuY3Rpb25zLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhQYXRoOjpjcmVhdGVGdW5jdGlvbk1hcCk6CisgICAgICAgICogeG1sL1hQ
YXRoUGFyc2VyLmNwcDoKKwogMjAxMC0xMS0yMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBDc2FiYSBPc3p0cm9nb27DoWMuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAg
Yi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggY2Fm
MTJkYy4uMzI3YTczNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcApAQCAtOTM3LDkgKzkzNyw4IEBAIHN0YXRpYyBBUklBUm9sZU1hcCogY3JlYXRl
QVJJQVJvbGVNYXAoKQogICAgICAgICB7ICJ0cmVlaXRlbSIsIFRyZWVJdGVtUm9sZSB9CiAgICAg
fTsKICAgICBBUklBUm9sZU1hcCogcm9sZU1hcCA9IG5ldyBBUklBUm9sZU1hcDsKLSAgICAKLSAg
ICBjb25zdCB1bnNpZ25lZCBudW1Sb2xlcyA9IHNpemVvZihyb2xlcykgLyBzaXplb2Yocm9sZXNb
MF0pOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1Sb2xlczsgKytpKQorCisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKHJvbGVzKTsgKytpKQogICAg
ICAgICByb2xlTWFwLT5zZXQocm9sZXNbaV0uYXJpYVJvbGUsIHJvbGVzW2ldLndlYmNvcmVSb2xl
KTsKICAgICByZXR1cm4gcm9sZU1hcDsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0gYi9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCmluZGV4IDk3NjAzODIuLmI0
NThjMWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIubW0KKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlci5tbQpAQCAtMTE3OSw5ICsxMTc5LDggQEAgc3RhdGljIGNvbnN0
IEFjY2Vzc2liaWxpdHlSb2xlTWFwJiBjcmVhdGVBY2Nlc3NpYmlsaXR5Um9sZU1hcCgpCiAgICAg
ICAgIHsgTGlzdEl0ZW1Sb2xlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfQogICAgIH07CiAg
ICAgQWNjZXNzaWJpbGl0eVJvbGVNYXAmIHJvbGVNYXAgPSAqbmV3IEFjY2Vzc2liaWxpdHlSb2xl
TWFwOwotICAgIAotICAgIGNvbnN0IHVuc2lnbmVkIG51bVJvbGVzID0gc2l6ZW9mKHJvbGVzKSAv
IHNpemVvZihyb2xlc1swXSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bVJvbGVz
OyArK2kpCisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgocm9s
ZXMpOyArK2kpCiAgICAgICAgIHJvbGVNYXAuc2V0KHJvbGVzW2ldLnZhbHVlLCByb2xlc1tpXS5z
dHJpbmcpOwogICAgIHJldHVybiByb2xlTWFwOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCmluZGV4IGE3MmVjZTYuLmFkNGUyZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgSlNET01XaW5kb3dCYXNlOjpK
U0RPTVdpbmRvd0Jhc2UoTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFBh
c3NSZWYKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKElkZW50aWZpZXIoZ2xvYmFsRXhlYygp
LCAid2luZG93IiksIGQoKS0+c2hlbGwsIERvbnREZWxldGUgfCBSZWFkT25seSkKICAgICB9Owog
ICAgIAotICAgIGFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFscywgc2l6ZW9mKHN0YXRpY0ds
b2JhbHMpIC8gc2l6ZW9mKEdsb2JhbFByb3BlcnR5SW5mbykpOworICAgIGFkZFN0YXRpY0dsb2Jh
bHMoc3RhdGljR2xvYmFscywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CiB9CiAK
IHZvaWQgSlNET01XaW5kb3dCYXNlOjp1cGRhdGVEb2N1bWVudCgpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA5MDM0MWI4Li42ZWE2MWJjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBi
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTE5MTYsNyAr
MTkxNiw3IEBAIEVORAogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwogc3RhdGlj
IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3RUZW1wbGF0ZT4gQ29uZmlndXJlU2hhZG93T2JqZWN0
VGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdFRlbXBsYXRlPiB0ZW1wbCkKIHsKLSAg
ICBiYXRjaENvbmZpZ3VyZUF0dHJpYnV0ZXModGVtcGwsIHY4OjpIYW5kbGU8djg6Ok9iamVjdFRl
bXBsYXRlPigpLCBzaGFkb3dBdHRycywgc2l6ZW9mKHNoYWRvd0F0dHJzKSAvIHNpemVvZigqc2hh
ZG93QXR0cnMpKTsKKyAgICBiYXRjaENvbmZpZ3VyZUF0dHJpYnV0ZXModGVtcGwsIHY4OjpIYW5k
bGU8djg6Ok9iamVjdFRlbXBsYXRlPigpLCBzaGFkb3dBdHRycywgV1RGX0FSUkFZX0xFTkdUSChz
aGFkb3dBdHRycykpOwogCiAgICAgLy8gSW5zdGFsbCBhIHNlY3VyaXR5IGhhbmRsZXIgd2l0aCBW
OC4KICAgICB0ZW1wbC0+U2V0QWNjZXNzQ2hlY2tDYWxsYmFja3MoVjhET01XaW5kb3c6Om5hbWVk
U2VjdXJpdHlDaGVjaywgVjhET01XaW5kb3c6OmluZGV4ZWRTZWN1cml0eUNoZWNrLCB2ODo6RXh0
ZXJuYWw6OldyYXAoJlY4RE9NV2luZG93OjppbmZvKSk7CkBAIC0xOTQ4LDcgKzE5NDgsNyBAQCBF
TkQKICAgICAjIFNldCB1cCBvdXIgYXR0cmlidXRlcyBpZiB3ZSBoYXZlIHRoZW0KICAgICBpZiAo
JGhhc19hdHRyaWJ1dGVzKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7Ci0g
ICAgICAgICR7aW50ZXJmYWNlTmFtZX1BdHRycywgc2l6ZW9mKCR7aW50ZXJmYWNlTmFtZX1BdHRy
cykgLyBzaXplb2YoKiR7aW50ZXJmYWNlTmFtZX1BdHRycyksCisgICAgICAgICR7aW50ZXJmYWNl
TmFtZX1BdHRycywgV1RGX0FSUkFZX0xFTkdUSCgke2ludGVyZmFjZU5hbWV9QXR0cnMpLAogRU5E
CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKQEAgLTE5
NTgsNyArMTk1OCw3IEBAIEVORAogCiAgICAgaWYgKCRoYXNfY2FsbGJhY2tzKSB7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7Ci0gICAgICAgICR7aW50ZXJmYWNlTmFtZX1DYWxs
YmFja3MsIHNpemVvZigke2ludGVyZmFjZU5hbWV9Q2FsbGJhY2tzKSAvIHNpemVvZigqJHtpbnRl
cmZhY2VOYW1lfUNhbGxiYWNrcykpOworICAgICAgICAke2ludGVyZmFjZU5hbWV9Q2FsbGJhY2tz
LCBXVEZfQVJSQVlfTEVOR1RIKCR7aW50ZXJmYWNlTmFtZX1DYWxsYmFja3MpKTsKIEVORAogICAg
IH0gZWxzZSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CkBAIC0yMDk2LDcg
KzIwOTYsNyBAQCBFTkQKIAogICAgIGlmICgkaGFzX2NvbnN0YW50cykgewogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgPDxFTkQpOwotICAgIGJhdGNoQ29uZmlndXJlQ29uc3RhbnRzKGRlc2Ms
IHByb3RvLCAke2ludGVyZmFjZU5hbWV9Q29uc3RzLCBzaXplb2YoJHtpbnRlcmZhY2VOYW1lfUNv
bnN0cykgLyBzaXplb2YoKiR7aW50ZXJmYWNlTmFtZX1Db25zdHMpKTsKKyAgICBiYXRjaENvbmZp
Z3VyZUNvbnN0YW50cyhkZXNjLCBwcm90bywgJHtpbnRlcmZhY2VOYW1lfUNvbnN0cywgV1RGX0FS
UkFZX0xFTkdUSCgke2ludGVyZmFjZU5hbWV9Q29uc3RzKSk7CiBFTkQKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IGUzZDky
NGEuLmM0YTc2YWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcApAQCAtMTI1Myw4ICsxMjUzLDggQEAgQ09NUElMRV9BU1NFUlQoMHgxYWJjID09
IFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzE0LCBUZXN0T2JqRW51bUNPTlNUX1ZBTFVFXzE0SXNXcm8K
IHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhU
ZXN0T2JqVGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2Mp
CiB7CiAgICAgdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+IGRlZmF1bHRTaWduYXR1cmUgPSBjb25m
aWd1cmVUZW1wbGF0ZShkZXNjLCAiVGVzdE9iaiIsIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlv
blRlbXBsYXRlPigpLCBWOFRlc3RPYmo6OmludGVybmFsRmllbGRDb3VudCwKLSAgICAgICAgVGVz
dE9iakF0dHJzLCBzaXplb2YoVGVzdE9iakF0dHJzKSAvIHNpemVvZigqVGVzdE9iakF0dHJzKSwK
LSAgICAgICAgVGVzdE9iakNhbGxiYWNrcywgc2l6ZW9mKFRlc3RPYmpDYWxsYmFja3MpIC8gc2l6
ZW9mKCpUZXN0T2JqQ2FsbGJhY2tzKSk7CisgICAgICAgIFRlc3RPYmpBdHRycywgV1RGX0FSUkFZ
X0xFTkdUSChUZXN0T2JqQXR0cnMpLAorICAgICAgICBUZXN0T2JqQ2FsbGJhY2tzLCBXVEZfQVJS
QVlfTEVOR1RIKFRlc3RPYmpDYWxsYmFja3MpKTsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdFRl
bXBsYXRlPiBpbnN0YW5jZSA9IGRlc2MtPkluc3RhbmNlVGVtcGxhdGUoKTsKICAgICB2ODo6TG9j
YWw8djg6Ok9iamVjdFRlbXBsYXRlPiBwcm90byA9IGRlc2MtPlByb3RvdHlwZVRlbXBsYXRlKCk7
CiAgICAgCkBAIC0xMzEyLDcgKzEzMTIsNyBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1
bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKHY4OjpQZXJzaQogICAg
ICAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5ldygiZW5hYmxlZEF0UnVudGltZU1ldGhvZDEi
KSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqSW50ZXJuYWw6OmVuYWJsZWRBdFJ1
bnRpbWVNZXRob2QxQ2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCBkZWZhdWx0U2ln
bmF0dXJlKSk7CiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZlYXR1cmVOYW1lRW5h
YmxlZCgpKQogICAgICAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5ldygiZW5hYmxlZEF0UnVu
dGltZU1ldGhvZDIiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqSW50ZXJuYWw6
OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigp
LCBkZWZhdWx0U2lnbmF0dXJlKSk7Ci0gICAgYmF0Y2hDb25maWd1cmVDb25zdGFudHMoZGVzYywg
cHJvdG8sIFRlc3RPYmpDb25zdHMsIHNpemVvZihUZXN0T2JqQ29uc3RzKSAvIHNpemVvZigqVGVz
dE9iakNvbnN0cykpOworICAgIGJhdGNoQ29uZmlndXJlQ29uc3RhbnRzKGRlc2MsIHByb3RvLCBU
ZXN0T2JqQ29uc3RzLCBXVEZfQVJSQVlfTEVOR1RIKFRlc3RPYmpDb25zdHMpKTsKIAogICAgIC8v
IEN1c3RvbSB0b1N0cmluZyB0ZW1wbGF0ZQogICAgIGRlc2MtPlNldChnZXRUb1N0cmluZ05hbWUo
KSwgZ2V0VG9TdHJpbmdUZW1wbGF0ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCmluZGV4IGNkY2QzZDYuLmM4MDQ2OTQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRp
YyBjb25zdCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAjZW5kaWYKIH07CiAKLWNvbnN0
IHVuc2lnbmVkIG51bUNvbXB1dGVkUHJvcGVydGllcyA9IHNpemVvZihjb21wdXRlZFByb3BlcnRp
ZXMpIC8gc2l6ZW9mKGNvbXB1dGVkUHJvcGVydGllc1swXSk7Citjb25zdCB1bnNpZ25lZCBudW1D
b21wdXRlZFByb3BlcnRpZXMgPSBXVEZfQVJSQVlfTEVOR1RIKGNvbXB1dGVkUHJvcGVydGllcyk7
CiAKIHN0YXRpYyBpbnQgdmFsdWVGb3JSZXBlYXRSdWxlKGludCBydWxlKQogewpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwIGIvV2ViQ29yZS9j
c3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDQ3ODA5YzIuLjA5NjU1YWUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAor
KysgYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTE0Miw4
ICsxNDIsNyBAQCBTdHJpbmcgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5
VmFsdWUoaW50IHByb3BlcnR5SUQpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tQ29sb3IsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTU1Byb3BlcnR5Qm9yZGVyTGVmdENv
bG9yIH19OwogICAgICAgICAgICAgU3RyaW5nIHJlczsKLSAgICAgICAgICAgIGNvbnN0IGludCBu
cnByb3BzID0gc2l6ZW9mKHByb3BlcnRpZXMpIC8gc2l6ZW9mKHByb3BlcnRpZXNbMF0pOwotICAg
ICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBucnByb3BzOyArK2kpIHsKKyAgICAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChwcm9wZXJ0aWVzKTsgKytp
KSB7CiAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0Q29tbW9uVmFsdWUocHJvcGVy
dGllc1tpXSwgNCk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSkgewogICAg
ICAgICAgICAgICAgICAgICBpZiAoIXJlcy5pc051bGwoKSkKQEAgLTc1OCw3ICs3NTcsNyBAQCBz
dGF0aWMgY29uc3QgaW50IGJsb2NrUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5V2lk
b3dzCiB9OwogCi1jb25zdCB1bnNpZ25lZCBudW1CbG9ja1Byb3BlcnRpZXMgPSBzaXplb2YoYmxv
Y2tQcm9wZXJ0aWVzKSAvIHNpemVvZihibG9ja1Byb3BlcnRpZXNbMF0pOworY29uc3QgdW5zaWdu
ZWQgbnVtQmxvY2tQcm9wZXJ0aWVzID0gV1RGX0FSUkFZX0xFTkdUSChibG9ja1Byb3BlcnRpZXMp
OwogCiBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbjo6Y29weUJsb2NrUHJvcGVydGllcygpIGNvbnN0CiB7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApp
bmRleCA4MzYxMTNlLi43YjM0ZWY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTIwMDIsNyArMjAwMiw3IEBA
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblNob3J0aGFuZChib29sIGltcG9ydGFudCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRp
b25JdGVyYXRpb25Db3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJv
cGVydHlXZWJraXRBbmltYXRpb25EaXJlY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRmlsbE1vZGUgfTsKLSAgICBjb25zdCBp
bnQgbnVtUHJvcGVydGllcyA9IHNpemVvZihwcm9wZXJ0aWVzKSAvIHNpemVvZihwcm9wZXJ0aWVz
WzBdKTsKKyAgICBjb25zdCBpbnQgbnVtUHJvcGVydGllcyA9IFdURl9BUlJBWV9MRU5HVEgocHJv
cGVydGllcyk7CiAKICAgICBTaG9ydGhhbmRTY29wZSBzY29wZSh0aGlzLCBDU1NQcm9wZXJ0eVdl
YmtpdEFuaW1hdGlvbik7CiAKQEAgLTIwNjAsNyArMjA2MCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZVRyYW5zaXRpb25TaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uRHVyYXRpb24sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uVGlt
aW5nRnVuY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlX
ZWJraXRUcmFuc2l0aW9uRGVsYXkgfTsKLSAgICBjb25zdCBpbnQgbnVtUHJvcGVydGllcyA9IHNp
emVvZihwcm9wZXJ0aWVzKSAvIHNpemVvZihwcm9wZXJ0aWVzWzBdKTsKKyAgICBjb25zdCBpbnQg
bnVtUHJvcGVydGllcyA9IFdURl9BUlJBWV9MRU5HVEgocHJvcGVydGllcyk7CiAKICAgICBTaG9y
dGhhbmRTY29wZSBzY29wZSh0aGlzLCBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb24pOwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcCBiL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwCmluZGV4IGFjY2EwMzYuLjRkZjVkNjIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwCisrKyBiL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwCkBAIC0zMiw3ICszMiw3IEBAIHR5cGVkZWYgSGFz
aE1hcDxpbnQsIENTU1Byb3BlcnR5TG9uZ2hhbmQ+IFNob3J0aGFuZE1hcDsKIHN0YXRpYyB2b2lk
IGluaXRTaG9ydGhhbmRNYXAoU2hvcnRoYW5kTWFwJiBzaG9ydGhhbmRNYXApCiB7CiAgICAgI2Rl
ZmluZSBTRVRfU0hPUlRIQU5EX01BUF9FTlRSWShtYXAsIHByb3BJRCwgYXJyYXkpIFwKLSAgICAg
ICAgbWFwLnNldChwcm9wSUQsIENTU1Byb3BlcnR5TG9uZ2hhbmQoYXJyYXksIHNpemVvZihhcnJh
eSkgLyBzaXplb2YoYXJyYXlbMF0pKSkKKyAgICAgICAgbWFwLnNldChwcm9wSUQsIENTU1Byb3Bl
cnR5TG9uZ2hhbmQoYXJyYXksIFdURl9BUlJBWV9MRU5HVEgoYXJyYXkpKSkKIAogICAgIC8vIEZJ
WE1FOiBUaGUgJ2ZvbnQnIHByb3BlcnR5IGhhcyAic2hvcnRoYW5kIG5hdHVyZSIgYnV0IGlzIG5v
dCBwYXJzZWQgYXMgYSBzaG9ydGhhbmQuCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA0MGYwNzhmLi4zYjRiOTA4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC01NjcsOSArNTY3LDggQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAg
ICAgY2xlYXJBWE9iamVjdENhY2hlKCk7CiAKICAgICBtX2RlY29kZXIgPSAwOwotICAgIAotICAg
IHVuc2lnbmVkIGNvdW50ID0gc2l6ZW9mKG1fbmFtZUNvbGxlY3Rpb25JbmZvKSAvIHNpemVvZiht
X25hbWVDb2xsZWN0aW9uSW5mb1swXSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNv
dW50OyBpKyspCisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgo
bV9uYW1lQ29sbGVjdGlvbkluZm8pOyArK2kpCiAgICAgICAgIGRlbGV0ZUFsbFZhbHVlcyhtX25h
bWVDb2xsZWN0aW9uSW5mb1tpXSk7CiAKICAgICBpZiAobV9zdHlsZVNoZWV0cykKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwIGIvV2ViQ29yZS9kb20vRXhjZXB0aW9u
Q29kZS5jcHAKaW5kZXggZjA0OGZlNS4uYWQ0ZmI2ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
RXhjZXB0aW9uQ29kZS5jcHAKKysrIGIvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAKQEAg
LTIyNyw3ICsyMjcsNyBAQCB2b2lkIGdldEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihFeGNlcHRp
b25Db2RlIGVjLCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24mIGRlcwogICAgICAgICBjb2RlIC09
IFJhbmdlRXhjZXB0aW9uOjpSYW5nZUV4Y2VwdGlvbk9mZnNldDsKICAgICAgICAgbmFtZVRhYmxl
ID0gcmFuZ2VFeGNlcHRpb25OYW1lczsKICAgICAgICAgZGVzY3JpcHRpb25UYWJsZSA9IHJhbmdl
RXhjZXB0aW9uRGVzY3JpcHRpb25zOwotICAgICAgICBuYW1lVGFibGVTaXplID0gc2l6ZW9mKHJh
bmdlRXhjZXB0aW9uTmFtZXMpIC8gc2l6ZW9mKHJhbmdlRXhjZXB0aW9uTmFtZXNbMF0pOworICAg
ICAgICBuYW1lVGFibGVTaXplID0gV1RGX0FSUkFZX0xFTkdUSChyYW5nZUV4Y2VwdGlvbk5hbWVz
KTsKICAgICAgICAgbmFtZVRhYmxlT2Zmc2V0ID0gUmFuZ2VFeGNlcHRpb246OkJBRF9CT1VOREFS
WVBPSU5UU19FUlI7CiAgICAgfSBlbHNlIGlmIChjb2RlID49IEV2ZW50RXhjZXB0aW9uOjpFdmVu
dEV4Y2VwdGlvbk9mZnNldCAmJiBjb2RlIDw9IEV2ZW50RXhjZXB0aW9uOjpFdmVudEV4Y2VwdGlv
bk1heCkgewogICAgICAgICB0eXBlID0gRXZlbnRFeGNlcHRpb25UeXBlOwpAQCAtMjM1LDcgKzIz
NSw3IEBAIHZvaWQgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMs
IEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiYgZGVzCiAgICAgICAgIGNvZGUgLT0gRXZlbnRFeGNl
cHRpb246OkV2ZW50RXhjZXB0aW9uT2Zmc2V0OwogICAgICAgICBuYW1lVGFibGUgPSBldmVudEV4
Y2VwdGlvbk5hbWVzOwogICAgICAgICBkZXNjcmlwdGlvblRhYmxlID0gZXZlbnRFeGNlcHRpb25E
ZXNjcmlwdGlvbnM7Ci0gICAgICAgIG5hbWVUYWJsZVNpemUgPSBzaXplb2YoZXZlbnRFeGNlcHRp
b25OYW1lcykgLyBzaXplb2YoZXZlbnRFeGNlcHRpb25OYW1lc1swXSk7CisgICAgICAgIG5hbWVU
YWJsZVNpemUgPSBXVEZfQVJSQVlfTEVOR1RIKGV2ZW50RXhjZXB0aW9uTmFtZXMpOwogICAgICAg
ICBuYW1lVGFibGVPZmZzZXQgPSBFdmVudEV4Y2VwdGlvbjo6VU5TUEVDSUZJRURfRVZFTlRfVFlQ
RV9FUlI7CiAgICAgfSBlbHNlIGlmIChjb2RlID49IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjpY
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk9mZnNldCAmJiBjb2RlIDw9IFhNTEh0dHBSZXF1ZXN0RXhj
ZXB0aW9uOjpYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk1heCkgewogICAgICAgICB0eXBlID0gWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb25UeXBlOwpAQCAtMjQzLDcgKzI0Myw3IEBAIHZvaWQgZ2V0RXhj
ZXB0aW9uQ29kZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGVEZXNj
cmlwdGlvbiYgZGVzCiAgICAgICAgIGNvZGUgLT0gWE1MSHR0cFJlcXVlc3RFeGNlcHRpb246OlhN
TEh0dHBSZXF1ZXN0RXhjZXB0aW9uT2Zmc2V0OwogICAgICAgICBuYW1lVGFibGUgPSB4bWxIdHRw
UmVxdWVzdEV4Y2VwdGlvbk5hbWVzOwogICAgICAgICBkZXNjcmlwdGlvblRhYmxlID0geG1sSHR0
cFJlcXVlc3RFeGNlcHRpb25EZXNjcmlwdGlvbnM7Ci0gICAgICAgIG5hbWVUYWJsZVNpemUgPSBz
aXplb2YoeG1sSHR0cFJlcXVlc3RFeGNlcHRpb25OYW1lcykgLyBzaXplb2YoeG1sSHR0cFJlcXVl
c3RFeGNlcHRpb25OYW1lc1swXSk7CisgICAgICAgIG5hbWVUYWJsZVNpemUgPSBXVEZfQVJSQVlf
TEVOR1RIKHhtbEh0dHBSZXF1ZXN0RXhjZXB0aW9uTmFtZXMpOwogICAgICAgICAvLyBYTUxIdHRw
UmVxdWVzdCBleGNlcHRpb24gY29kZXMgc3RhcnQgd2l0aCAxMDEgYW5kIHdlIGRvbid0IHdhbnQg
MTAwIGVtcHR5IGVsZW1lbnRzIGluIHRoZSBuYW1lIGFycmF5CiAgICAgICAgIG5hbWVUYWJsZU9m
ZnNldCA9IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjpORVRXT1JLX0VSUjsKICNpZiBFTkFCTEUo
WFBBVEgpCkBAIC0yNTMsNyArMjUzLDcgQEAgdm9pZCBnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRp
b24oRXhjZXB0aW9uQ29kZSBlYywgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uJiBkZXMKICAgICAg
ICAgY29kZSAtPSBYUGF0aEV4Y2VwdGlvbjo6WFBhdGhFeGNlcHRpb25PZmZzZXQ7CiAgICAgICAg
IG5hbWVUYWJsZSA9IHhwYXRoRXhjZXB0aW9uTmFtZXM7CiAgICAgICAgIGRlc2NyaXB0aW9uVGFi
bGUgPSB4cGF0aEV4Y2VwdGlvbkRlc2NyaXB0aW9uczsKLSAgICAgICAgbmFtZVRhYmxlU2l6ZSA9
IHNpemVvZih4cGF0aEV4Y2VwdGlvbk5hbWVzKSAvIHNpemVvZih4cGF0aEV4Y2VwdGlvbk5hbWVz
WzBdKTsKKyAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IFdURl9BUlJBWV9MRU5HVEgoeHBhdGhFeGNl
cHRpb25OYW1lcyk7CiAgICAgICAgIC8vIFhQYXRoIGV4Y2VwdGlvbiBjb2RlcyBzdGFydCB3aXRo
IDUxIGFuZCB3ZSBkb24ndCB3YW50IDUxIGVtcHR5IGVsZW1lbnRzIGluIHRoZSBuYW1lIGFycmF5
CiAgICAgICAgIG5hbWVUYWJsZU9mZnNldCA9IFhQYXRoRXhjZXB0aW9uOjpJTlZBTElEX0VYUFJF
U1NJT05fRVJSOwogI2VuZGlmCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBnZXRFeGNlcHRpb25D
b2RlRGVzY3JpcHRpb24oRXhjZXB0aW9uQ29kZSBlYywgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9u
JiBkZXMKICAgICAgICAgY29kZSAtPSBTVkdFeGNlcHRpb246OlNWR0V4Y2VwdGlvbk9mZnNldDsK
ICAgICAgICAgbmFtZVRhYmxlID0gc3ZnRXhjZXB0aW9uTmFtZXM7CiAgICAgICAgIGRlc2NyaXB0
aW9uVGFibGUgPSBzdmdFeGNlcHRpb25EZXNjcmlwdGlvbnM7Ci0gICAgICAgIG5hbWVUYWJsZVNp
emUgPSBzaXplb2Yoc3ZnRXhjZXB0aW9uTmFtZXMpIC8gc2l6ZW9mKHN2Z0V4Y2VwdGlvbk5hbWVz
WzBdKTsKKyAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IFdURl9BUlJBWV9MRU5HVEgoc3ZnRXhjZXB0
aW9uTmFtZXMpOwogICAgICAgICBuYW1lVGFibGVPZmZzZXQgPSBTVkdFeGNlcHRpb246OlNWR19X
Uk9OR19UWVBFX0VSUjsKICNlbmRpZgogI2lmIEVOQUJMRShEQVRBQkFTRSkKQEAgLTI3NCw3ICsy
NzQsNyBAQCB2b2lkIGdldEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihFeGNlcHRpb25Db2RlIGVj
LCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24mIGRlcwogICAgICAgICBjb2RlIC09IFNRTEV4Y2Vw
dGlvbjo6U1FMRXhjZXB0aW9uT2Zmc2V0OwogICAgICAgICBuYW1lVGFibGUgPSBzcWxFeGNlcHRp
b25OYW1lczsKICAgICAgICAgZGVzY3JpcHRpb25UYWJsZSA9IHNxbEV4Y2VwdGlvbkRlc2NyaXB0
aW9uczsKLSAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IHNpemVvZihzcWxFeGNlcHRpb25OYW1lcykg
LyBzaXplb2Yoc3FsRXhjZXB0aW9uTmFtZXNbMF0pOworICAgICAgICBuYW1lVGFibGVTaXplID0g
V1RGX0FSUkFZX0xFTkdUSChzcWxFeGNlcHRpb25OYW1lcyk7CiAgICAgICAgIG5hbWVUYWJsZU9m
ZnNldCA9IFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CiAjZW5kaWYKICNpZiBFTkFCTEUoQkxP
QikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQpAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgZ2V0RXhj
ZXB0aW9uQ29kZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGVEZXNj
cmlwdGlvbiYgZGVzCiAgICAgICAgIGNvZGUgLT0gRmlsZUV4Y2VwdGlvbjo6RmlsZUV4Y2VwdGlv
bk9mZnNldDsKICAgICAgICAgbmFtZVRhYmxlID0gZmlsZUV4Y2VwdGlvbk5hbWVzOwogICAgICAg
ICBkZXNjcmlwdGlvblRhYmxlID0gZmlsZUV4Y2VwdGlvbkRlc2NyaXB0aW9uczsKLSAgICAgICAg
bmFtZVRhYmxlU2l6ZSA9IHNpemVvZihmaWxlRXhjZXB0aW9uTmFtZXMpIC8gc2l6ZW9mKGZpbGVF
eGNlcHRpb25OYW1lc1swXSk7CisgICAgICAgIG5hbWVUYWJsZVNpemUgPSBXVEZfQVJSQVlfTEVO
R1RIKGZpbGVFeGNlcHRpb25OYW1lcyk7CiAgICAgICAgIG5hbWVUYWJsZU9mZnNldCA9IEZpbGVF
eGNlcHRpb246Ok5PVF9GT1VORF9FUlI7CiAjZW5kaWYKICAgICB9IGVsc2UgewpAQCAtMjkyLDcg
KzI5Miw3IEBAIHZvaWQgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUg
ZWMsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiYgZGVzCiAgICAgICAgIHR5cGVOYW1lID0gIkRP
TSI7CiAgICAgICAgIG5hbWVUYWJsZSA9IGV4Y2VwdGlvbk5hbWVzOwogICAgICAgICBkZXNjcmlw
dGlvblRhYmxlID0gZXhjZXB0aW9uRGVzY3JpcHRpb25zOwotICAgICAgICBuYW1lVGFibGVTaXpl
ID0gc2l6ZW9mKGV4Y2VwdGlvbk5hbWVzKSAvIHNpemVvZihleGNlcHRpb25OYW1lc1swXSk7Cisg
ICAgICAgIG5hbWVUYWJsZVNpemUgPSBXVEZfQVJSQVlfTEVOR1RIKGV4Y2VwdGlvbk5hbWVzKTsK
ICAgICAgICAgbmFtZVRhYmxlT2Zmc2V0ID0gSU5ERVhfU0laRV9FUlI7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvV2ViQ29yZS9l
ZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCBjNGFhYWM4Li5jNDNhNTc0IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTEyNDIsNyArMTI0Miw3IEBAIGJv
b2wgQXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUltcGxpY2l0bHlTdHlsZWRFbGVtZW50KENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uCiAgICAgLy8gQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb2Vz
IG5vdCBzdXBwb3J0IHN0eWxlUHVzaGVkRG93biB3aGVuIG1vZGUgPT0gUmVtb3ZlTm9uZSBiZWNh
dXNlIG9mIGVhcmx5IGV4aXQuCiAgICAgQVNTRVJUKCFleHRyYWN0ZWRTdHlsZSB8fCBtb2RlICE9
IFJlbW92ZU5vbmUpOwogICAgIGJvb2wgcmVtb3ZlZCA9IGZhbHNlOwotICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgc2l6ZW9mKEhUTUxFcXVpdmFsZW50cykgLyBzaXplb2YoSFRNTEVxdWl2YWxl
bnQpOyBpKyspIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgo
SFRNTEVxdWl2YWxlbnRzKTsgKytpKSB7CiAgICAgICAgIGNvbnN0IEhUTUxFcXVpdmFsZW50JiBl
cXVpdmFsZW50ID0gSFRNTEVxdWl2YWxlbnRzW2ldOwogICAgICAgICBBU1NFUlQoZXF1aXZhbGVu
dC5lbGVtZW50IHx8IGVxdWl2YWxlbnQuYXR0cmlidXRlKTsKICAgICAgICAgaWYgKChleHRyYWN0
ZWRTdHlsZSAmJiBlcXVpdmFsZW50LnB1c2hEb3duVHlwZSA9PSBTaG91bGROb3RCZVB1c2hlZERv
d24pCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcCBiL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDlkYTMzN2YuLjRhNTVkYWQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCisrKyBiL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nU3R5bGUuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyBjb25zdCBpbnQg
ZWRpdGluZ1N0eWxlUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0
cm9rZUNvbG9yLAogICAgIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZVdpZHRoLAogfTsKLXNp
emVfdCBudW1FZGl0aW5nU3R5bGVQcm9wZXJ0aWVzID0gc2l6ZW9mKGVkaXRpbmdTdHlsZVByb3Bl
cnRpZXMpIC8gc2l6ZW9mKGVkaXRpbmdTdHlsZVByb3BlcnRpZXNbMF0pOworc2l6ZV90IG51bUVk
aXRpbmdTdHlsZVByb3BlcnRpZXMgPSBXVEZfQVJSQVlfTEVOR1RIKGVkaXRpbmdTdHlsZVByb3Bl
cnRpZXMpOwogCiBzdGF0aWMgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4g
Y29weUVkaXRpbmdQcm9wZXJ0aWVzKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKQogewpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAppbmRleCBhYWQ4NzJjLi4xNWJhZDcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtOTI5LDcg
KzkyOSw3IEBAIHN0YXRpYyBUcmlTdGF0ZSB0cmlTdGF0ZU9mU3R5bGUoQ1NTU3R5bGVEZWNsYXJh
dGlvbiogZGVzaXJlZFN0eWxlLCBDU1NTdHlsZURlY2xhCiAgICAgUmVmUHRyPENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uPiBkaWZmID0gZ2V0UHJvcGVydGllc05vdEluKGRlc2lyZWRTdHlsZSwg
c3R5bGVUb0NvbXBhcmUpOwogCiAgICAgaWYgKGlnbm9yZVRleHRPbmx5UHJvcGVydGllcykKLSAg
ICAgICAgZGlmZi0+cmVtb3ZlUHJvcGVydGllc0luU2V0KHRleHRPbmx5UHJvcGVydGllcywgc2l6
ZW9mKHRleHRPbmx5UHJvcGVydGllcykgLyBzaXplb2YodGV4dE9ubHlQcm9wZXJ0aWVzWzBdKSk7
CisgICAgICAgIGRpZmYtPnJlbW92ZVByb3BlcnRpZXNJblNldCh0ZXh0T25seVByb3BlcnRpZXMs
IFdURl9BUlJBWV9MRU5HVEgodGV4dE9ubHlQcm9wZXJ0aWVzKSk7CiAKICAgICBpZiAoIWRpZmYt
Pmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gVHJ1ZVRyaVN0YXRlOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNv
bW1hbmQuY3BwCmluZGV4IGUzZWEzN2UuLmFiODM4MTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFu
ZC5jcHAKQEAgLTE1NTYsOCArMTU1Niw3IEBAIHN0YXRpYyBjb25zdCBDb21tYW5kTWFwJiBjcmVh
dGVDb21tYW5kTWFwKCkKIAogICAgIENvbW1hbmRNYXAmIGNvbW1hbmRNYXAgPSAqbmV3IENvbW1h
bmRNYXA7CiAKLSAgICBjb25zdCB1bnNpZ25lZCBudW1Db21tYW5kcyA9IHNpemVvZihjb21tYW5k
cykgLyBzaXplb2YoY29tbWFuZHNbMF0pOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBu
dW1Db21tYW5kczsgaSsrKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlf
TEVOR1RIKGNvbW1hbmRzKTsgKytpKSB7CiAgICAgICAgIEFTU0VSVCghY29tbWFuZE1hcC5nZXQo
Y29tbWFuZHNbaV0ubmFtZSkpOwogICAgICAgICBjb21tYW5kTWFwLnNldChjb21tYW5kc1tpXS5u
YW1lLCAmY29tbWFuZHNbaV0uY29tbWFuZCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9l
ZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1
bXVsYXRvci5jcHAKaW5kZXggYTcwMTE4OS4uZjZkYmQ4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9l
ZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvTWFya3Vw
QWNjdW11bGF0b3IuY3BwCkBAIC02MCw4ICs2MCw4IEBAIHZvaWQgYXBwZW5kQ2hhcmFjdGVyc1Jl
cGxhY2luZ0VudGl0aWVzKFZlY3RvcjxVQ2hhcj4mIG91dCwgY29uc3QgVUNoYXIqIGNvbnRlbnQs
CiAgICAgfTsKIAogICAgIHNpemVfdCBwb3NpdGlvbkFmdGVyTGFzdEVudGl0eSA9IDA7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICBmb3IgKHNpemVf
dCBtID0gMDsgbSA8IHNpemVvZihlbnRpdHlNYXBzKSAvIHNpemVvZihFbnRpdHlEZXNjcmlwdGlv
bik7IG0rKykgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgZm9yIChzaXplX3QgbSA9IDA7IG0gPCBXVEZfQVJSQVlfTEVOR1RIKGVudGl0eU1hcHMp
OyArK20pIHsKICAgICAgICAgICAgIGlmIChjb250ZW50W2ldID09IGVudGl0eU1hcHNbbV0uZW50
aXR5ICYmIGVudGl0eU1hcHNbbV0ubWFzayAmIGVudGl0eU1hc2spIHsKICAgICAgICAgICAgICAg
ICBvdXQuYXBwZW5kKGNvbnRlbnQgKyBwb3NpdGlvbkFmdGVyTGFzdEVudGl0eSwgaSAtIHBvc2l0
aW9uQWZ0ZXJMYXN0RW50aXR5KTsKICAgICAgICAgICAgICAgICBhcHBlbmQob3V0LCBlbnRpdHlN
YXBzW21dLnJlZmVyZW5jZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
QnVmZmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCmluZGV4IDk5
ZDljYWQuLjA3ZjAwZmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZm
ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCkBAIC0xNzAs
MjEgKzE3MCwyMSBAQCB1bnNpZ25lZCBXZWJHTEJ1ZmZlcjo6Ynl0ZUxlbmd0aCgpIGNvbnN0CiAK
IGxvbmcgV2ViR0xCdWZmZXI6OmdldENhY2hlZE1heEluZGV4KHVuc2lnbmVkIGxvbmcgdHlwZSkK
IHsKLSAgICBzaXplX3QgbnVtRW50cmllcyA9IHNpemVvZihtX21heEluZGV4Q2FjaGUpIC8gc2l6
ZW9mKE1heEluZGV4Q2FjaGVFbnRyeSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1F
bnRyaWVzOyBpKyspCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RI
KG1fbWF4SW5kZXhDYWNoZSk7ICsraSkgewogICAgICAgICBpZiAobV9tYXhJbmRleENhY2hlW2ld
LnR5cGUgPT0gdHlwZSkKICAgICAgICAgICAgIHJldHVybiBtX21heEluZGV4Q2FjaGVbaV0ubWF4
SW5kZXg7CisgICAgfQogICAgIHJldHVybiAtMTsKIH0KIAogdm9pZCBXZWJHTEJ1ZmZlcjo6c2V0
Q2FjaGVkTWF4SW5kZXgodW5zaWduZWQgbG9uZyB0eXBlLCBsb25nIHZhbHVlKQogewotICAgIGlu
dCBudW1FbnRyaWVzID0gc2l6ZW9mKG1fbWF4SW5kZXhDYWNoZSkgLyBzaXplb2YoTWF4SW5kZXhD
YWNoZUVudHJ5KTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUVudHJpZXM7IGkrKykKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgobV9tYXhJbmRleENhY2hl
KTsgKytpKSB7CiAgICAgICAgIGlmIChtX21heEluZGV4Q2FjaGVbaV0udHlwZSA9PSB0eXBlKSB7
CiAgICAgICAgICAgICBtX21heEluZGV4Q2FjaGVbaV0ubWF4SW5kZXggPSB2YWx1ZTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgIH0KICAgICBtX21heEluZGV4Q2FjaGVbbV9u
ZXh0QXZhaWxhYmxlQ2FjaGVFbnRyeV0udHlwZSA9IHR5cGU7CiAgICAgbV9tYXhJbmRleENhY2hl
W21fbmV4dEF2YWlsYWJsZUNhY2hlRW50cnldLm1heEluZGV4ID0gdmFsdWU7CiAgICAgbV9uZXh0
QXZhaWxhYmxlQ2FjaGVFbnRyeSA9IChtX25leHRBdmFpbGFibGVDYWNoZUVudHJ5ICsgMSkgJSBu
dW1FbnRyaWVzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2Vy
LmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeVBhcnNlci5jcHAKaW5kZXggZjZhNzRk
ZS4uNmEwNWM0YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2Vy
LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlQYXJzZXIuY3BwCkBAIC0xMTcs
NyArMTE3LDcgQEAgRlRQRW50cnlUeXBlIHBhcnNlT25lRlRQTGluZShjb25zdCBjaGFyKiBsaW5l
LCBMaXN0U3RhdGUmIHN0YXRlLCBMaXN0UmVzdWx0JiByZXMKICAgewogICAgIHN0YXRpYyBjb25z
dCBjaGFyICptb250aF9uYW1lcyA9ICJKYW5GZWJNYXJBcHJNYXlKdW5KdWxBdWdTZXBPY3ROb3ZE
ZWMiOwogICAgIGNvbnN0IGNoYXIgKnRva2Vuc1sxNl07IC8qIDE2IGlzIG1vcmUgdGhhbiBlbm91
Z2ggKi8KLSAgICB1bnNpZ25lZCBpbnQgdG9rbGVuWyhzaXplb2YodG9rZW5zKS9zaXplb2YodG9r
ZW5zWzBdKSldOworICAgIHVuc2lnbmVkIGludCB0b2tsZW5bV1RGX0FSUkFZX0xFTkdUSCh0b2tl
bnMpXTsKICAgICB1bnNpZ25lZCBpbnQgbGluZWxlbl9zYW5zX3dzcDsgIC8vIGxpbmUgbGVuZ3Ro
IHNhbnMgd2hpdGVzcGFjZQogICAgIHVuc2lnbmVkIGludCBudW10b2tzID0gMDsKICAgICB1bnNp
Z25lZCBpbnQgdG9rbWFya2VyID0gMDsgLyogZXh0cmEgaW5mbyBmb3IgbHN0eWxlIGhhbmRsZXIg
Ki8KQEAgLTEzMyw3ICsxMzMsNyBAQCBGVFBFbnRyeVR5cGUgcGFyc2VPbmVGVFBMaW5lKGNvbnN0
IGNoYXIqIGxpbmUsIExpc3RTdGF0ZSYgc3RhdGUsIExpc3RSZXN1bHQmIHJlcwogICAgIH0KIAog
ICAgIHVuc2lnbmVkIGludCBwb3MgPSAwOwotICAgIHdoaWxlIChwb3MgPCBsaW5lbGVuICYmIG51
bXRva3MgPCAoc2l6ZW9mKHRva2Vucykvc2l6ZW9mKHRva2Vuc1swXSkpICkKKyAgICB3aGlsZSAo
cG9zIDwgbGluZWxlbiAmJiBudW10b2tzIDwgV1RGX0FSUkFZX0xFTkdUSCh0b2tlbnMpKQogICAg
IHsKICAgICAgIHdoaWxlIChwb3MgPCBsaW5lbGVuICYmIAogICAgICAgICAgICAgKGxpbmVbcG9z
XSA9PSAnICcgfHwgbGluZVtwb3NdID09ICdcdCcgfHwgbGluZVtwb3NdID09ICdccicpKQpAQCAt
MTU2LDcgKzE1Niw3IEBAIEZUUEVudHJ5VHlwZSBwYXJzZU9uZUZUUExpbmUoY29uc3QgY2hhciog
bGluZSwgTGlzdFN0YXRlJiBzdGF0ZSwgTGlzdFJlc3VsdCYgcmVzCiAgICAgICByZXR1cm4gUGFy
c2luZ0ZhaWxlZChzdGF0ZSk7CiAKICAgICBsaW5lbGVuX3NhbnNfd3NwID0gJih0b2tlbnNbbnVt
dG9rcy0xXVt0b2tsZW5bbnVtdG9rcy0xXV0pIC0gdG9rZW5zWzBdOwotICAgIGlmIChudW10b2tz
ID09IChzaXplb2YodG9rZW5zKS9zaXplb2YodG9rZW5zWzBdKSkgKQorICAgIGlmIChudW10b2tz
ID09IFdURl9BUlJBWV9MRU5HVEgodG9rZW5zKSkKICAgICB7CiAgICAgICBwb3MgPSBsaW5lbGVu
OwogICAgICAgd2hpbGUgKHBvcyA+IDAgJiYgKGxpbmVbcG9zLTFdID09ICcgJyB8fCBsaW5lW3Bv
cy0xXSA9PSAnXHQnKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbWF0aG1sL1JlbmRlck1hdGhNTE9w
ZXJhdG9yLmNwcCBiL1dlYkNvcmUvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcAppbmRl
eCA3MmM5OTdiLi5iY2Y5MGVjIDEwMDY0NAotLS0gYS9XZWJDb3JlL21hdGhtbC9SZW5kZXJNYXRo
TUxPcGVyYXRvci5jcHAKKysrIGIvV2ViQ29yZS9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3Iu
Y3BwCkBAIC0xNjIsOCArMTYyLDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRl
RnJvbUVsZW1lbnQoKQogICAgIAogICAgIC8vIENoZWNrIGZvciBhIHN0cmV0Y2hhYmxlIGNoYXJh
Y3Rlci4KICAgICBpZiAoIXN0cmV0Y2hEaXNhYmxlZCAmJiBmaXJzdENoYXIpIHsKLSAgICAgICAg
Y29uc3QgaW50IG1heEluZGV4ID0gc2l6ZW9mKHN0cmV0Y2h5Q2hhcmFjdGVycykgLyBzaXplb2Yo
c3RyZXRjaHlDaGFyYWN0ZXJzWzBdKTsKLSAgICAgICAgZm9yIChpbmRleCsrOyBpbmRleCA8IG1h
eEluZGV4OyBpbmRleCsrKSB7CisgICAgICAgIGZvciAoaW5kZXgrKzsgaW5kZXggPCBXVEZfQVJS
QVlfTEVOR1RIKHN0cmV0Y2h5Q2hhcmFjdGVycyk7IGluZGV4KyspIHsKICAgICAgICAgICAgIGlm
IChzdHJldGNoeUNoYXJhY3RlcnNbaW5kZXhdLmNoYXJhY3RlciA9PSBmaXJzdENoYXIpIHsKICAg
ICAgICAgICAgICAgICBpc1N0cmV0Y2h5ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCmluZGV4IGFkNTI1N2UuLjY2
MTcyZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAtNzQ0
LDcgKzc0NCw3IEBAIHN0YXRpYyB2b2lkIGFkZFNob3J0aGFuZFByb3BlcnRpZXMoKQogICAgICAg
ICBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpbgogICAgIH07CiAKLSAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2l6ZW9mKGFuaW1hdGFibGVTaG9ydGhhbmRQcm9wZXJ0aWVzKSAv
IHNpemVvZihhbmltYXRhYmxlU2hvcnRoYW5kUHJvcGVydGllc1swXSk7ICsraSkgeworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChhbmltYXRhYmxlU2hvcnRoYW5k
UHJvcGVydGllcyk7ICsraSkgewogICAgICAgICBpbnQgcHJvcGVydHlJRCA9IGFuaW1hdGFibGVT
aG9ydGhhbmRQcm9wZXJ0aWVzW2ldOwogICAgICAgICBDU1NQcm9wZXJ0eUxvbmdoYW5kIGxvbmdo
YW5kID0gbG9uZ2hhbmRGb3JQcm9wZXJ0eShwcm9wZXJ0eUlEKTsKICAgICAgICAgaWYgKGxvbmdo
YW5kLmxlbmd0aCgpID4gMCkKQEAgLTc1Nyw3ICs3NTcsNyBAQCBzdGF0aWMgdm9pZCBhZGRTaG9y
dGhhbmRQcm9wZXJ0aWVzKCkKICAgICAgICAgQ1NTUHJvcGVydHlGb250V2VpZ2h0CiAgICAgfTsK
IAotICAgIENTU1Byb3BlcnR5TG9uZ2hhbmQgZm9udExvbmdoYW5kKGFuaW1hdGFibGVGb250UHJv
cGVydGllcywgc2l6ZW9mKGFuaW1hdGFibGVGb250UHJvcGVydGllcykgLyBzaXplb2YoYW5pbWF0
YWJsZUZvbnRQcm9wZXJ0aWVzWzBdKSk7CisgICAgQ1NTUHJvcGVydHlMb25naGFuZCBmb250TG9u
Z2hhbmQoYW5pbWF0YWJsZUZvbnRQcm9wZXJ0aWVzLCBXVEZfQVJSQVlfTEVOR1RIKGFuaW1hdGFi
bGVGb250UHJvcGVydGllcykpOwogICAgIGFkZFByb3BlcnR5V3JhcHBlcihDU1NQcm9wZXJ0eUZv
bnQsIG5ldyBTaG9ydGhhbmRQcm9wZXJ0eVdyYXBwZXIoQ1NTUHJvcGVydHlGb250LCBmb250TG9u
Z2hhbmQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2wuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCmluZGV4
IDliOWU1MWEuLjIwNDBmMTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5j
cHAKQEAgLTQ5MCwxMSArNDkwLDExIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmb250RmFtaWxpZXNX
aXRoSW52YWxpZENoYXJXaWR0aFtdID0gewogYm9vbCBSZW5kZXJUZXh0Q29udHJvbDo6aGFzVmFs
aWRBdmdDaGFyV2lkdGgoQXRvbWljU3RyaW5nIGZhbWlseSkKIHsKICAgICBzdGF0aWMgSGFzaFNl
dDxBdG9taWNTdHJpbmc+KiBmb250RmFtaWxpZXNXaXRoSW52YWxpZENoYXJXaWR0aE1hcCA9IDA7
Ci0gICAgCisKICAgICBpZiAoIWZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldpZHRoTWFwKSB7
CiAgICAgICAgIGZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldpZHRoTWFwID0gbmV3IEhhc2hT
ZXQ8QXRvbWljU3RyaW5nPjsKLSAgICAgICAgCi0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzaXplb2YoZm9udEZhbWlsaWVzV2l0aEludmFsaWRDaGFyV2lkdGgpIC8gc2l6ZW9mKGZv
bnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldpZHRoWzBdKTsgaSsrKQorCisgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChmb250RmFtaWxpZXNXaXRoSW52YWxp
ZENoYXJXaWR0aCk7ICsraSkKICAgICAgICAgICAgIGZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hh
cldpZHRoTWFwLT5hZGQoQXRvbWljU3RyaW5nKGZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldp
ZHRoW2ldKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19s
aW5lcy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAKaW5kZXggYzZjMWRk
ZC4uZjM2OTFiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3Bw
CisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcApAQCAtMTE0LDggKzExNCw3
IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFzY2lpTGluZUJyZWFrVGFibGVbXVsoYXNj
aWlMaW5lQnJlYWtUYWJsZUxhc3RDaGFyIC0KICN1bmRlZiBESQogI3VuZGVmIEFMCiAKLUNPTVBJ
TEVfQVNTRVJUKHNpemVvZihhc2NpaUxpbmVCcmVha1RhYmxlKSAvIHNpemVvZihhc2NpaUxpbmVC
cmVha1RhYmxlWzBdKSA9PSBhc2NpaUxpbmVCcmVha1RhYmxlTGFzdENoYXIgLSBhc2NpaUxpbmVC
cmVha1RhYmxlRmlyc3RDaGFyICsgMSwKLSAgICAgICAgVGVzdExpbmVCcmVha1RhYmxlQ29uc2lz
dGVuY3kpOworQ09NUElMRV9BU1NFUlQoV1RGX0FSUkFZX0xFTkdUSChhc2NpaUxpbmVCcmVha1Rh
YmxlKSA9PSBhc2NpaUxpbmVCcmVha1RhYmxlTGFzdENoYXIgLSBhc2NpaUxpbmVCcmVha1RhYmxl
Rmlyc3RDaGFyICsgMSwgVGVzdExpbmVCcmVha1RhYmxlQ29uc2lzdGVuY3kpOwogCiBzdGF0aWMg
aW5saW5lIGJvb2wgc2hvdWxkQnJlYWtBZnRlcihVQ2hhciBjaCwgVUNoYXIgbmV4dENoKQogewpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHAgYi9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcAppbmRleCAwMDZiYjk0Li5lNjM3ZTdjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdU
cmFuc2Zvcm1hYmxlLmNwcApAQCAtMTQzLDI1ICsxNDMsMjUgQEAgc3RhdGljIGlubGluZSBib29s
IHBhcnNlQW5kU2tpcFR5cGUoY29uc3QgVUNoYXIqJiBjdXJyVHJhbnNmb3JtLCBjb25zdCBVQ2hh
ciogZW4KIHsKICAgICBpZiAoY3VyclRyYW5zZm9ybSA+PSBlbmQpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKKwogICAgIGlmICgqY3VyclRyYW5zZm9ybSA9PSAncycpIHsKLSAgICAgICAg
aWYgKHNraXBTdHJpbmcoY3VyclRyYW5zZm9ybSwgZW5kLCBza2V3WERlc2MsIHNpemVvZihza2V3
WERlc2MpIC8gc2l6ZW9mKFVDaGFyKSkpCisgICAgICAgIGlmIChza2lwU3RyaW5nKGN1cnJUcmFu
c2Zvcm0sIGVuZCwgc2tld1hEZXNjLCBXVEZfQVJSQVlfTEVOR1RIKHNrZXdYRGVzYykpKQogICAg
ICAgICAgICAgdHlwZSA9IFNWR1RyYW5zZm9ybTo6U1ZHX1RSQU5TRk9STV9TS0VXWDsKLSAgICAg
ICAgZWxzZSBpZiAoc2tpcFN0cmluZyhjdXJyVHJhbnNmb3JtLCBlbmQsIHNrZXdZRGVzYywgc2l6
ZW9mKHNrZXdZRGVzYykgLyBzaXplb2YoVUNoYXIpKSkKKyAgICAgICAgZWxzZSBpZiAoc2tpcFN0
cmluZyhjdXJyVHJhbnNmb3JtLCBlbmQsIHNrZXdZRGVzYywgV1RGX0FSUkFZX0xFTkdUSChza2V3
WURlc2MpKSkKICAgICAgICAgICAgIHR5cGUgPSBTVkdUcmFuc2Zvcm06OlNWR19UUkFOU0ZPUk1f
U0tFV1k7Ci0gICAgICAgIGVsc2UgaWYgKHNraXBTdHJpbmcoY3VyclRyYW5zZm9ybSwgZW5kLCBz
Y2FsZURlc2MsIHNpemVvZihzY2FsZURlc2MpIC8gc2l6ZW9mKFVDaGFyKSkpCisgICAgICAgIGVs
c2UgaWYgKHNraXBTdHJpbmcoY3VyclRyYW5zZm9ybSwgZW5kLCBzY2FsZURlc2MsIFdURl9BUlJB
WV9MRU5HVEgoc2NhbGVEZXNjKSkpCiAgICAgICAgICAgICB0eXBlID0gU1ZHVHJhbnNmb3JtOjpT
VkdfVFJBTlNGT1JNX1NDQUxFOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfSBlbHNlIGlmIChza2lwU3RyaW5nKGN1cnJUcmFuc2Zvcm0sIGVuZCwgdHJhbnNs
YXRlRGVzYywgc2l6ZW9mKHRyYW5zbGF0ZURlc2MpIC8gc2l6ZW9mKFVDaGFyKSkpCisgICAgfSBl
bHNlIGlmIChza2lwU3RyaW5nKGN1cnJUcmFuc2Zvcm0sIGVuZCwgdHJhbnNsYXRlRGVzYywgV1RG
X0FSUkFZX0xFTkdUSCh0cmFuc2xhdGVEZXNjKSkpCiAgICAgICAgIHR5cGUgPSBTVkdUcmFuc2Zv
cm06OlNWR19UUkFOU0ZPUk1fVFJBTlNMQVRFOwotICAgIGVsc2UgaWYgKHNraXBTdHJpbmcoY3Vy
clRyYW5zZm9ybSwgZW5kLCByb3RhdGVEZXNjLCBzaXplb2Yocm90YXRlRGVzYykgLyBzaXplb2Yo
VUNoYXIpKSkKKyAgICBlbHNlIGlmIChza2lwU3RyaW5nKGN1cnJUcmFuc2Zvcm0sIGVuZCwgcm90
YXRlRGVzYywgV1RGX0FSUkFZX0xFTkdUSChyb3RhdGVEZXNjKSkpCiAgICAgICAgIHR5cGUgPSBT
VkdUcmFuc2Zvcm06OlNWR19UUkFOU0ZPUk1fUk9UQVRFOwotICAgIGVsc2UgaWYgKHNraXBTdHJp
bmcoY3VyclRyYW5zZm9ybSwgZW5kLCBtYXRyaXhEZXNjLCBzaXplb2YobWF0cml4RGVzYykgLyBz
aXplb2YoVUNoYXIpKSkKKyAgICBlbHNlIGlmIChza2lwU3RyaW5nKGN1cnJUcmFuc2Zvcm0sIGVu
ZCwgbWF0cml4RGVzYywgV1RGX0FSUkFZX0xFTkdUSChtYXRyaXhEZXNjKSkpCiAgICAgICAgIHR5
cGUgPSBTVkdUcmFuc2Zvcm06OlNWR19UUkFOU0ZPUk1fTUFUUklYOwotICAgIGVsc2UgCisgICAg
ZWxzZQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwIGIvV2ViQ29yZS9zdmcv
U1ZHVmlld1NwZWMuY3BwCmluZGV4IGQ2YmFkZTMuLmEwYTY4M2IgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAK
QEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3BlYyhjb25zdCBT
dHJpbmcmIHZpZXdTcGVjKQogICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIXNraXBTdHJpbmcoY3VyclZpZXdTcGVjLCBlbmQsIHN2
Z1ZpZXdTcGVjLCBzaXplb2Yoc3ZnVmlld1NwZWMpIC8gc2l6ZW9mKFVDaGFyKSkpCisgICAgaWYg
KCFza2lwU3RyaW5nKGN1cnJWaWV3U3BlYywgZW5kLCBzdmdWaWV3U3BlYywgV1RGX0FSUkFZX0xF
TkdUSChzdmdWaWV3U3BlYykpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoY3Vy
clZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcoJyApCkBAIC05MCw3ICs5MCw3
IEBAIGJvb2wgU1ZHVmlld1NwZWM6OnBhcnNlVmlld1NwZWMoY29uc3QgU3RyaW5nJiB2aWV3U3Bl
YykKIAogICAgIHdoaWxlIChjdXJyVmlld1NwZWMgPCBlbmQgJiYgKmN1cnJWaWV3U3BlYyAhPSAn
KScpIHsKICAgICAgICAgaWYgKCpjdXJyVmlld1NwZWMgPT0gJ3YnKSB7Ci0gICAgICAgICAgICBp
ZiAoc2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVuZCwgdmlld0JveFNwZWMsIHNpemVvZih2aWV3
Qm94U3BlYykgLyBzaXplb2YoVUNoYXIpKSkgeworICAgICAgICAgICAgaWYgKHNraXBTdHJpbmco
Y3VyclZpZXdTcGVjLCBlbmQsIHZpZXdCb3hTcGVjLCBXVEZfQVJSQVlfTEVOR1RIKHZpZXdCb3hT
cGVjKSkpIHsKICAgICAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3Vy
clZpZXdTcGVjICE9ICcoJykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgICAgIGN1cnJWaWV3U3BlYysrOwpAQCAtMTAxLDcgKzEwMSw3IEBAIGJvb2wgU1ZH
Vmlld1NwZWM6OnBhcnNlVmlld1NwZWMoY29uc3QgU3RyaW5nJiB2aWV3U3BlYykKICAgICAgICAg
ICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcpJykK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIGN1cnJW
aWV3U3BlYysrOwotICAgICAgICAgICAgfSBlbHNlIGlmIChza2lwU3RyaW5nKGN1cnJWaWV3U3Bl
YywgZW5kLCB2aWV3VGFyZ2V0U3BlYywgc2l6ZW9mKHZpZXdUYXJnZXRTcGVjKSAvIHNpemVvZihV
Q2hhcikpKSB7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNraXBTdHJpbmcoY3VyclZpZXdTcGVj
LCBlbmQsIHZpZXdUYXJnZXRTcGVjLCBXVEZfQVJSQVlfTEVOR1RIKHZpZXdUYXJnZXRTcGVjKSkp
IHsKICAgICAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdT
cGVjICE9ICcoJykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgICAgIGNvbnN0IFVDaGFyKiB2aWV3VGFyZ2V0U3RhcnQgPSArK2N1cnJWaWV3U3BlYzsKQEAg
LTExNCw3ICsxMTQsNyBAQCBib29sIFNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKGNvbnN0IFN0
cmluZyYgdmlld1NwZWMpCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0gZWxzZSBpZiAoKmN1cnJWaWV3U3BlYyA9PSAneicpIHsKLSAg
ICAgICAgICAgIGlmICghc2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVuZCwgem9vbUFuZFBhblNw
ZWMsIHNpemVvZih6b29tQW5kUGFuU3BlYykgLyBzaXplb2YoVUNoYXIpKSkKKyAgICAgICAgICAg
IGlmICghc2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVuZCwgem9vbUFuZFBhblNwZWMsIFdURl9B
UlJBWV9MRU5HVEgoem9vbUFuZFBhblNwZWMpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVj
ICE9ICcoJykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMjUsNyArMTI1LDcg
QEAgYm9vbCBTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3BlYyhjb25zdCBTdHJpbmcmIHZpZXdTcGVj
KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGN1cnJWaWV3U3Bl
YysrOwogICAgICAgICB9IGVsc2UgaWYgKCpjdXJyVmlld1NwZWMgPT0gJ3AnKSB7Ci0gICAgICAg
ICAgICBpZiAoIXNraXBTdHJpbmcoY3VyclZpZXdTcGVjLCBlbmQsIHByZXNlcnZlQXNwZWN0UmF0
aW9TcGVjLCBzaXplb2YocHJlc2VydmVBc3BlY3RSYXRpb1NwZWMpIC8gc2l6ZW9mKFVDaGFyKSkp
CisgICAgICAgICAgICBpZiAoIXNraXBTdHJpbmcoY3VyclZpZXdTcGVjLCBlbmQsIHByZXNlcnZl
QXNwZWN0UmF0aW9TcGVjLCBXVEZfQVJSQVlfTEVOR1RIKHByZXNlcnZlQXNwZWN0UmF0aW9TcGVj
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKGN1cnJW
aWV3U3BlYyA+PSBlbmQgfHwgKmN1cnJWaWV3U3BlYyAhPSAnKCcpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMTM4LDcgKzEzOCw3IEBAIGJvb2wgU1ZHVmlld1NwZWM6OnBhcnNl
Vmlld1NwZWMoY29uc3QgU3RyaW5nJiB2aWV3U3BlYykKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKICAgICAgICAgfSBlbHNlIGlmICgq
Y3VyclZpZXdTcGVjID09ICd0JykgewotICAgICAgICAgICAgaWYgKCFza2lwU3RyaW5nKGN1cnJW
aWV3U3BlYywgZW5kLCB0cmFuc2Zvcm1TcGVjLCBzaXplb2YodHJhbnNmb3JtU3BlYykgLyBzaXpl
b2YoVUNoYXIpKSkKKyAgICAgICAgICAgIGlmICghc2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVu
ZCwgdHJhbnNmb3JtU3BlYywgV1RGX0FSUkFZX0xFTkdUSCh0cmFuc2Zvcm1TcGVjKSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKGN1cnJWaWV3U3BlYyA+
PSBlbmQgfHwgKmN1cnJWaWV3U3BlYyAhPSAnKCcpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHWm9vbUFuZFBhbi5jcHAgYi9XZWJDb3Jl
L3N2Zy9TVkdab29tQW5kUGFuLmNwcAppbmRleCA5M2FiM2FkLi4zNmQ0YTYwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N2Zy9TVkdab29tQW5kUGFuLmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdab29t
QW5kUGFuLmNwcApAQCAtNTYsOSArNTYsOSBAQCBzdGF0aWMgY29uc3QgVUNoYXIgbWFnbmlmeVtd
ID0gIHsnbScsICdhJywgJ2cnLCAnbicsICdpJywgJ2YnLCAneSd9OwogCiBib29sIFNWR1pvb21B
bmRQYW46OnBhcnNlWm9vbUFuZFBhbihjb25zdCBVQ2hhciomIHN0YXJ0LCBjb25zdCBVQ2hhciog
ZW5kKQogewotICAgIGlmIChza2lwU3RyaW5nKHN0YXJ0LCBlbmQsIGRpc2FibGUsIHNpemVvZihk
aXNhYmxlKSAvIHNpemVvZihVQ2hhcikpKQorICAgIGlmIChza2lwU3RyaW5nKHN0YXJ0LCBlbmQs
IGRpc2FibGUsIFdURl9BUlJBWV9MRU5HVEgoZGlzYWJsZSkpKQogICAgICAgICBzZXRab29tQW5k
UGFuKFNWR19aT09NQU5EUEFOX0RJU0FCTEUpOwotICAgIGVsc2UgaWYgKHNraXBTdHJpbmcoc3Rh
cnQsIGVuZCwgbWFnbmlmeSwgc2l6ZW9mKG1hZ25pZnkpIC8gc2l6ZW9mKFVDaGFyKSkpCisgICAg
ZWxzZSBpZiAoc2tpcFN0cmluZyhzdGFydCwgZW5kLCBtYWduaWZ5LCBXVEZfQVJSQVlfTEVOR1RI
KG1hZ25pZnkpKSkKICAgICAgICAgc2V0Wm9vbUFuZFBhbihTVkdfWk9PTUFORFBBTl9NQUdOSUZZ
KTsKICAgICBlbHNlCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
eG1sL1hQYXRoRnVuY3Rpb25zLmNwcCBiL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcApp
bmRleCA4YjRlNzIwLi4yMDkxYWNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0
aW9ucy5jcHAKKysrIGIvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCkBAIC03MDgsMTAg
KzcwOCw5IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZUZ1bmN0aW9uTWFwKCkKICAgICAgICAgeyAidHJh
bnNsYXRlIiwgeyAmY3JlYXRlRnVuVHJhbnNsYXRlLCAzIH0gfSwKICAgICAgICAgeyAidHJ1ZSIs
IHsgJmNyZWF0ZUZ1blRydWUsIDAgfSB9LAogICAgIH07Ci0gICAgY29uc3QgdW5zaWduZWQgaW50
IG51bUZ1bmN0aW9ucyA9IHNpemVvZihmdW5jdGlvbnMpIC8gc2l6ZW9mKGZ1bmN0aW9uc1swXSk7
CiAKICAgICBmdW5jdGlvbk1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgRnVuY3Rpb25SZWM+Owot
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1GdW5jdGlvbnM7ICsraSkKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoZnVuY3Rpb25zKTsgKytpKQogICAg
ICAgICBmdW5jdGlvbk1hcC0+c2V0KGZ1bmN0aW9uc1tpXS5uYW1lLCBmdW5jdGlvbnNbaV0uZnVu
Y3Rpb24pOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YUGF0aFBhcnNlci5jcHAgYi9X
ZWJDb3JlL3htbC9YUGF0aFBhcnNlci5jcHAKaW5kZXggYzI0MmE1Yy4uOGU0NjNjZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS94bWwvWFBhdGhQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUveG1sL1hQYXRo
UGFyc2VyLmNwcApAQCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgdm9pZCBzZXRVcEF4aXNOYW1lc01h
cChBeGlzTmFtZXNNYXAmIGF4aXNOYW1lcykKICAgICAgICAgeyAicHJlY2VkaW5nLXNpYmxpbmci
LCBTdGVwOjpQcmVjZWRpbmdTaWJsaW5nQXhpcyB9LAogICAgICAgICB7ICJzZWxmIiwgU3RlcDo6
U2VsZkF4aXMgfQogICAgIH07Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemVvZihh
eGlzTmFtZUxpc3QpIC8gc2l6ZW9mKGF4aXNOYW1lTGlzdFswXSk7ICsraSkKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoYXhpc05hbWVMaXN0KTsgKytpKQogICAg
ICAgICBheGlzTmFtZXMuc2V0KGF4aXNOYW1lTGlzdFtpXS5uYW1lLCBheGlzTmFtZUxpc3RbaV0u
YXhpcyk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74508</attachid>
            <date>2010-11-21 09:53:22 -0800</date>
            <delta_ts>2010-11-21 10:05:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49882.patch</filename>
            <type>text/plain</type>
            <size>33551</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjhjZTg1Ni4uOTczZTg3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxMC0xMS0yMiAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgV1RGX0FSUkFZX0xFTkdUSCBpbiBXZWJDb3JlIGRpcmVj
dG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk4
ODIKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVBUklBUm9sZU1hcCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW06CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93
QmFzZTo6SlNET01XaW5kb3dCYXNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToK
KyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAg
KiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUFu
aW1hdGlvblNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVHJh
bnNpdGlvblNob3J0aGFuZCk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aW5pdFNob3J0aGFuZE1hcCk6CisgICAgICAgICogZG9tL0V4
Y2VwdGlvbkNvZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RXhjZXB0aW9uQ29kZURlc2Ny
aXB0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpyZW1vdmVJbXBsaWNpdGx5U3R5bGVkRWxl
bWVudCk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAqIGVk
aXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyaVN0YXRlT2ZTdHlsZSk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZUNvbW1hbmRNYXApOgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzKToK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTEJ1ZmZlcjo6Z2V0Q2FjaGVkTWF4SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xCdWZmZXI6OnNldENhY2hlZE1heEluZGV4KToKKyAgICAgICAgKiBsb2FkZXIvRlRQRGlyZWN0
b3J5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlT25lRlRQTGluZSk6CisgICAg
ICAgICogbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck1hdGhNTE9wZXJhdG9yOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGRTaG9y
dGhhbmRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6Omhhc1ZhbGlkQXZnQ2hh
cldpZHRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwOgorICAgICAgICAq
IHN2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlQW5kU2tp
cFR5cGUpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3BlYyk6CisgICAgICAgICogc3ZnL1NWR1pvb21BbmRQ
YW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHWm9vbUFuZFBhbjo6cGFyc2Vab29tQW5kUGFu
KToKKyAgICAgICAgKiB4bWwvWFBhdGhGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
WFBhdGg6OmNyZWF0ZUZ1bmN0aW9uTWFwKToKKyAgICAgICAgKiB4bWwvWFBhdGhQYXJzZXIuY3Bw
OgorCiAyMDEwLTExLTIxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCBjYWYxMmRjLi4zMjdhNzM2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBA
IC05MzcsOSArOTM3LDggQEAgc3RhdGljIEFSSUFSb2xlTWFwKiBjcmVhdGVBUklBUm9sZU1hcCgp
CiAgICAgICAgIHsgInRyZWVpdGVtIiwgVHJlZUl0ZW1Sb2xlIH0KICAgICB9OwogICAgIEFSSUFS
b2xlTWFwKiByb2xlTWFwID0gbmV3IEFSSUFSb2xlTWFwOwotICAgIAotICAgIGNvbnN0IHVuc2ln
bmVkIG51bVJvbGVzID0gc2l6ZW9mKHJvbGVzKSAvIHNpemVvZihyb2xlc1swXSk7Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bVJvbGVzOyArK2kpCisKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgocm9sZXMpOyArK2kpCiAgICAgICAgIHJvbGVNYXAt
PnNldChyb2xlc1tpXS5hcmlhUm9sZSwgcm9sZXNbaV0ud2ViY29yZVJvbGUpOwogICAgIHJldHVy
biByb2xlTWFwOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbSBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0KaW5kZXggOTc2MDM4Mi4uYjQ1OGMxZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ci5tbQorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyLm1tCkBAIC0xMTc5LDkgKzExNzksOCBAQCBzdGF0aWMgY29uc3QgQWNjZXNzaWJpbGl0
eVJvbGVNYXAmIGNyZWF0ZUFjY2Vzc2liaWxpdHlSb2xlTWFwKCkKICAgICAgICAgeyBMaXN0SXRl
bVJvbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9CiAgICAgfTsKICAgICBBY2Nlc3NpYmls
aXR5Um9sZU1hcCYgcm9sZU1hcCA9ICpuZXcgQWNjZXNzaWJpbGl0eVJvbGVNYXA7Ci0gICAgCi0g
ICAgY29uc3QgdW5zaWduZWQgbnVtUm9sZXMgPSBzaXplb2Yocm9sZXMpIC8gc2l6ZW9mKHJvbGVz
WzBdKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtUm9sZXM7ICsraSkKKworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChyb2xlcyk7ICsraSkKICAg
ICAgICAgcm9sZU1hcC5zZXQocm9sZXNbaV0udmFsdWUsIHJvbGVzW2ldLnN0cmluZyk7CiAgICAg
cmV0dXJuIHJvbGVNYXA7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAK
aW5kZXggYTcyZWNlNi4uYWQ0ZTJmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmNwcApAQCAtNjAsNyArNjAsNyBAQCBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFz
ZShOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgUGFzc1JlZgogICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8oSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJ3aW5kb3ciKSwg
ZCgpLT5zaGVsbCwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KQogICAgIH07CiAgICAgCi0gICAgYWRk
U3RhdGljR2xvYmFscyhzdGF0aWNHbG9iYWxzLCBzaXplb2Yoc3RhdGljR2xvYmFscykgLyBzaXpl
b2YoR2xvYmFsUHJvcGVydHlJbmZvKSk7CisgICAgYWRkU3RhdGljR2xvYmFscyhzdGF0aWNHbG9i
YWxzLCBXVEZfQVJSQVlfTEVOR1RIKHN0YXRpY0dsb2JhbHMpKTsKIH0KIAogdm9pZCBKU0RPTVdp
bmRvd0Jhc2U6OnVwZGF0ZURvY3VtZW50KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtCmluZGV4IDkwMzQxYjguLjZlYTYxYmMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTkxNiw3ICsxOTE2LDcgQEAgRU5E
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CiBzdGF0aWMgdjg6OlBlcnNpc3Rl
bnQ8djg6Ok9iamVjdFRlbXBsYXRlPiBDb25maWd1cmVTaGFkb3dPYmplY3RUZW1wbGF0ZSh2ODo6
UGVyc2lzdGVudDx2ODo6T2JqZWN0VGVtcGxhdGU+IHRlbXBsKQogewotICAgIGJhdGNoQ29uZmln
dXJlQXR0cmlidXRlcyh0ZW1wbCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+KCksIHNo
YWRvd0F0dHJzLCBzaXplb2Yoc2hhZG93QXR0cnMpIC8gc2l6ZW9mKCpzaGFkb3dBdHRycykpOwor
ICAgIGJhdGNoQ29uZmlndXJlQXR0cmlidXRlcyh0ZW1wbCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
VGVtcGxhdGU+KCksIHNoYWRvd0F0dHJzLCBXVEZfQVJSQVlfTEVOR1RIKHNoYWRvd0F0dHJzKSk7
CiAKICAgICAvLyBJbnN0YWxsIGEgc2VjdXJpdHkgaGFuZGxlciB3aXRoIFY4LgogICAgIHRlbXBs
LT5TZXRBY2Nlc3NDaGVja0NhbGxiYWNrcyhWOERPTVdpbmRvdzo6bmFtZWRTZWN1cml0eUNoZWNr
LCBWOERPTVdpbmRvdzo6aW5kZXhlZFNlY3VyaXR5Q2hlY2ssIHY4OjpFeHRlcm5hbDo6V3JhcCgm
VjhET01XaW5kb3c6OmluZm8pKTsKQEAgLTE5NDgsNyArMTk0OCw3IEBAIEVORAogICAgICMgU2V0
IHVwIG91ciBhdHRyaWJ1dGVzIGlmIHdlIGhhdmUgdGhlbQogICAgIGlmICgkaGFzX2F0dHJpYnV0
ZXMpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICAgICAgJHtpbnRl
cmZhY2VOYW1lfUF0dHJzLCBzaXplb2YoJHtpbnRlcmZhY2VOYW1lfUF0dHJzKSAvIHNpemVvZigq
JHtpbnRlcmZhY2VOYW1lfUF0dHJzKSwKKyAgICAgICAgJHtpbnRlcmZhY2VOYW1lfUF0dHJzLCBX
VEZfQVJSQVlfTEVOR1RIKCR7aW50ZXJmYWNlTmFtZX1BdHRycyksCiBFTkQKICAgICB9IGVsc2Ug
ewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwpAQCAtMTk1OCw3ICsxOTU4LDcg
QEAgRU5ECiAKICAgICBpZiAoJGhhc19jYWxsYmFja3MpIHsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsIDw8RU5EKTsKLSAgICAgICAgJHtpbnRlcmZhY2VOYW1lfUNhbGxiYWNrcywgc2l6ZW9m
KCR7aW50ZXJmYWNlTmFtZX1DYWxsYmFja3MpIC8gc2l6ZW9mKCoke2ludGVyZmFjZU5hbWV9Q2Fs
bGJhY2tzKSk7CisgICAgICAgICR7aW50ZXJmYWNlTmFtZX1DYWxsYmFja3MsIFdURl9BUlJBWV9M
RU5HVEgoJHtpbnRlcmZhY2VOYW1lfUNhbGxiYWNrcykpOwogRU5ECiAgICAgfSBlbHNlIHsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKQEAgLTIwOTYsNyArMjA5Niw3IEBAIEVO
RAogCiAgICAgaWYgKCRoYXNfY29uc3RhbnRzKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCA8PEVORCk7Ci0gICAgYmF0Y2hDb25maWd1cmVDb25zdGFudHMoZGVzYywgcHJvdG8sICR7aW50
ZXJmYWNlTmFtZX1Db25zdHMsIHNpemVvZigke2ludGVyZmFjZU5hbWV9Q29uc3RzKSAvIHNpemVv
ZigqJHtpbnRlcmZhY2VOYW1lfUNvbnN0cykpOworICAgIGJhdGNoQ29uZmlndXJlQ29uc3RhbnRz
KGRlc2MsIHByb3RvLCAke2ludGVyZmFjZU5hbWV9Q29uc3RzLCBXVEZfQVJSQVlfTEVOR1RIKCR7
aW50ZXJmYWNlTmFtZX1Db25zdHMpKTsKIEVORAogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggZTNkOTI0YS4uYzRhNzZhYyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNw
cAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBA
IC0xMjUzLDggKzEyNTMsOCBAQCBDT01QSUxFX0FTU0VSVCgweDFhYmMgPT0gVGVzdE9iajo6Q09O
U1RfVkFMVUVfMTQsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVfMTRJc1dybwogc3RhdGljIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0
ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYykKIHsKICAgICB2ODo6
TG9jYWw8djg6OlNpZ25hdHVyZT4gZGVmYXVsdFNpZ25hdHVyZSA9IGNvbmZpZ3VyZVRlbXBsYXRl
KGRlc2MsICJUZXN0T2JqIiwgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCks
IFY4VGVzdE9iajo6aW50ZXJuYWxGaWVsZENvdW50LAotICAgICAgICBUZXN0T2JqQXR0cnMsIHNp
emVvZihUZXN0T2JqQXR0cnMpIC8gc2l6ZW9mKCpUZXN0T2JqQXR0cnMpLAotICAgICAgICBUZXN0
T2JqQ2FsbGJhY2tzLCBzaXplb2YoVGVzdE9iakNhbGxiYWNrcykgLyBzaXplb2YoKlRlc3RPYmpD
YWxsYmFja3MpKTsKKyAgICAgICAgVGVzdE9iakF0dHJzLCBXVEZfQVJSQVlfTEVOR1RIKFRlc3RP
YmpBdHRycyksCisgICAgICAgIFRlc3RPYmpDYWxsYmFja3MsIFdURl9BUlJBWV9MRU5HVEgoVGVz
dE9iakNhbGxiYWNrcykpOwogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxhdGU+IGluc3Rh
bmNlID0gZGVzYy0+SW5zdGFuY2VUZW1wbGF0ZSgpOwogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0
VGVtcGxhdGU+IHByb3RvID0gZGVzYy0+UHJvdG90eXBlVGVtcGxhdGUoKTsKICAgICAKQEAgLTEz
MTIsNyArMTMxMiw3IEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0
ZT4gQ29uZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUodjg6OlBlcnNpCiAgICAgICAgIHByb3RvLT5T
ZXQodjg6OlN0cmluZzo6TmV3KCJlbmFibGVkQXRSdW50aW1lTWV0aG9kMSIpLCB2ODo6RnVuY3Rp
b25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpJbnRlcm5hbDo6ZW5hYmxlZEF0UnVudGltZU1ldGhvZDFD
YWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCksIGRlZmF1bHRTaWduYXR1cmUpKTsKICAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZmVhdHVyZU5hbWVFbmFibGVkKCkpCiAgICAg
ICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3KCJlbmFibGVkQXRSdW50aW1lTWV0aG9kMiIp
LCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpJbnRlcm5hbDo6ZW5hYmxlZEF0UnVu
dGltZU1ldGhvZDJDYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCksIGRlZmF1bHRTaWdu
YXR1cmUpKTsKLSAgICBiYXRjaENvbmZpZ3VyZUNvbnN0YW50cyhkZXNjLCBwcm90bywgVGVzdE9i
akNvbnN0cywgc2l6ZW9mKFRlc3RPYmpDb25zdHMpIC8gc2l6ZW9mKCpUZXN0T2JqQ29uc3RzKSk7
CisgICAgYmF0Y2hDb25maWd1cmVDb25zdGFudHMoZGVzYywgcHJvdG8sIFRlc3RPYmpDb25zdHMs
IFdURl9BUlJBWV9MRU5HVEgoVGVzdE9iakNvbnN0cykpOwogCiAgICAgLy8gQ3VzdG9tIHRvU3Ry
aW5nIHRlbXBsYXRlCiAgICAgZGVzYy0+U2V0KGdldFRvU3RyaW5nTmFtZSgpLCBnZXRUb1N0cmlu
Z1RlbXBsYXRlKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcCBiL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKaW5kZXggY2RjZDNkNi4uYzgwNDY5NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yNzIsNyArMjcyLDcgQEAgc3RhdGljIGNvbnN0IGludCBj
b21wdXRlZFByb3BlcnRpZXNbXSA9IHsKICNlbmRpZgogfTsKIAotY29uc3QgdW5zaWduZWQgbnVt
Q29tcHV0ZWRQcm9wZXJ0aWVzID0gc2l6ZW9mKGNvbXB1dGVkUHJvcGVydGllcykgLyBzaXplb2Yo
Y29tcHV0ZWRQcm9wZXJ0aWVzWzBdKTsKK2NvbnN0IHVuc2lnbmVkIG51bUNvbXB1dGVkUHJvcGVy
dGllcyA9IFdURl9BUlJBWV9MRU5HVEgoY29tcHV0ZWRQcm9wZXJ0aWVzKTsKIAogc3RhdGljIGlu
dCB2YWx1ZUZvclJlcGVhdFJ1bGUoaW50IHJ1bGUpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nz
cy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNDc4MDljMi4uMDk2NTVhZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUv
Y3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTQyLDggKzE0Miw3IEBAIFN0
cmluZyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1ZShpbnQgcHJv
cGVydHlJRCkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21Db2xvciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3IgfX07CiAgICAg
ICAgICAgICBTdHJpbmcgcmVzOwotICAgICAgICAgICAgY29uc3QgaW50IG5ycHJvcHMgPSBzaXpl
b2YocHJvcGVydGllcykgLyBzaXplb2YocHJvcGVydGllc1swXSk7Ci0gICAgICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IG5ycHJvcHM7ICsraSkgeworICAgICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKHByb3BlcnRpZXMpOyArK2kpIHsKICAgICAgICAg
ICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRDb21tb25WYWx1ZShwcm9wZXJ0aWVzW2ldLCA0KTsK
ICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmICghcmVzLmlzTnVsbCgpKQpAQCAtNzU4LDcgKzc1Nyw3IEBAIHN0YXRpYyBjb25zdCBp
bnQgYmxvY2tQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlXaWRvd3MKIH07CiAKLWNv
bnN0IHVuc2lnbmVkIG51bUJsb2NrUHJvcGVydGllcyA9IHNpemVvZihibG9ja1Byb3BlcnRpZXMp
IC8gc2l6ZW9mKGJsb2NrUHJvcGVydGllc1swXSk7Citjb25zdCB1bnNpZ25lZCBudW1CbG9ja1By
b3BlcnRpZXMgPSBXVEZfQVJSQVlfTEVOR1RIKGJsb2NrUHJvcGVydGllcyk7CiAKIFBhc3NSZWZQ
dHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
Ojpjb3B5QmxvY2tQcm9wZXJ0aWVzKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDgzNjExM2Uu
LjdiMzRlZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMjAwMiw3ICsyMDAyLDcgQEAgYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlQW5pbWF0aW9uU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNv
dW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1NQcm9wZXJ0eVdlYmtpdEFu
aW1hdGlvbkRpcmVjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJv
cGVydHlXZWJraXRBbmltYXRpb25GaWxsTW9kZSB9OwotICAgIGNvbnN0IGludCBudW1Qcm9wZXJ0
aWVzID0gc2l6ZW9mKHByb3BlcnRpZXMpIC8gc2l6ZW9mKHByb3BlcnRpZXNbMF0pOworICAgIGNv
bnN0IGludCBudW1Qcm9wZXJ0aWVzID0gV1RGX0FSUkFZX0xFTkdUSChwcm9wZXJ0aWVzKTsKIAog
ICAgIFNob3J0aGFuZFNjb3BlIHNjb3BlKHRoaXMsIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9u
KTsKIApAQCAtMjA2MCw3ICsyMDYwLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVHJhbnNpdGlv
blNob3J0aGFuZChib29sIGltcG9ydGFudCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25EdXJhdGlvbiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRp
b25EZWxheSB9OwotICAgIGNvbnN0IGludCBudW1Qcm9wZXJ0aWVzID0gc2l6ZW9mKHByb3BlcnRp
ZXMpIC8gc2l6ZW9mKHByb3BlcnRpZXNbMF0pOworICAgIGNvbnN0IGludCBudW1Qcm9wZXJ0aWVz
ID0gV1RGX0FSUkFZX0xFTkdUSChwcm9wZXJ0aWVzKTsKIAogICAgIFNob3J0aGFuZFNjb3BlIHNj
b3BlKHRoaXMsIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbik7CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dHlMb25naGFuZC5jcHAKaW5kZXggYWNjYTAzNi4uNGRmNWQ2MiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dHlMb25naGFuZC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgdHlwZWRlZiBIYXNoTWFwPGludCwgQ1NT
UHJvcGVydHlMb25naGFuZD4gU2hvcnRoYW5kTWFwOwogc3RhdGljIHZvaWQgaW5pdFNob3J0aGFu
ZE1hcChTaG9ydGhhbmRNYXAmIHNob3J0aGFuZE1hcCkKIHsKICAgICAjZGVmaW5lIFNFVF9TSE9S
VEhBTkRfTUFQX0VOVFJZKG1hcCwgcHJvcElELCBhcnJheSkgXAotICAgICAgICBtYXAuc2V0KHBy
b3BJRCwgQ1NTUHJvcGVydHlMb25naGFuZChhcnJheSwgc2l6ZW9mKGFycmF5KSAvIHNpemVvZihh
cnJheVswXSkpKQorICAgICAgICBtYXAuc2V0KHByb3BJRCwgQ1NTUHJvcGVydHlMb25naGFuZChh
cnJheSwgV1RGX0FSUkFZX0xFTkdUSChhcnJheSkpKQogCiAgICAgLy8gRklYTUU6IFRoZSAnZm9u
dCcgcHJvcGVydHkgaGFzICJzaG9ydGhhbmQgbmF0dXJlIiBidXQgaXMgbm90IHBhcnNlZCBhcyBh
IHNob3J0aGFuZC4KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAg
Yi9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmNwcAppbmRleCBmMDQ4ZmU1Li5hZDRmYjZmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmNwcAorKysgYi9XZWJDb3JlL2Rv
bS9FeGNlcHRpb25Db2RlLmNwcApAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgZ2V0RXhjZXB0aW9u
Q29kZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlv
biYgZGVzCiAgICAgICAgIGNvZGUgLT0gUmFuZ2VFeGNlcHRpb246OlJhbmdlRXhjZXB0aW9uT2Zm
c2V0OwogICAgICAgICBuYW1lVGFibGUgPSByYW5nZUV4Y2VwdGlvbk5hbWVzOwogICAgICAgICBk
ZXNjcmlwdGlvblRhYmxlID0gcmFuZ2VFeGNlcHRpb25EZXNjcmlwdGlvbnM7Ci0gICAgICAgIG5h
bWVUYWJsZVNpemUgPSBzaXplb2YocmFuZ2VFeGNlcHRpb25OYW1lcykgLyBzaXplb2YocmFuZ2VF
eGNlcHRpb25OYW1lc1swXSk7CisgICAgICAgIG5hbWVUYWJsZVNpemUgPSBXVEZfQVJSQVlfTEVO
R1RIKHJhbmdlRXhjZXB0aW9uTmFtZXMpOwogICAgICAgICBuYW1lVGFibGVPZmZzZXQgPSBSYW5n
ZUV4Y2VwdGlvbjo6QkFEX0JPVU5EQVJZUE9JTlRTX0VSUjsKICAgICB9IGVsc2UgaWYgKGNvZGUg
Pj0gRXZlbnRFeGNlcHRpb246OkV2ZW50RXhjZXB0aW9uT2Zmc2V0ICYmIGNvZGUgPD0gRXZlbnRF
eGNlcHRpb246OkV2ZW50RXhjZXB0aW9uTWF4KSB7CiAgICAgICAgIHR5cGUgPSBFdmVudEV4Y2Vw
dGlvblR5cGU7CkBAIC0yMzUsNyArMjM1LDcgQEAgdm9pZCBnZXRFeGNlcHRpb25Db2RlRGVzY3Jp
cHRpb24oRXhjZXB0aW9uQ29kZSBlYywgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uJiBkZXMKICAg
ICAgICAgY29kZSAtPSBFdmVudEV4Y2VwdGlvbjo6RXZlbnRFeGNlcHRpb25PZmZzZXQ7CiAgICAg
ICAgIG5hbWVUYWJsZSA9IGV2ZW50RXhjZXB0aW9uTmFtZXM7CiAgICAgICAgIGRlc2NyaXB0aW9u
VGFibGUgPSBldmVudEV4Y2VwdGlvbkRlc2NyaXB0aW9uczsKLSAgICAgICAgbmFtZVRhYmxlU2l6
ZSA9IHNpemVvZihldmVudEV4Y2VwdGlvbk5hbWVzKSAvIHNpemVvZihldmVudEV4Y2VwdGlvbk5h
bWVzWzBdKTsKKyAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IFdURl9BUlJBWV9MRU5HVEgoZXZlbnRF
eGNlcHRpb25OYW1lcyk7CiAgICAgICAgIG5hbWVUYWJsZU9mZnNldCA9IEV2ZW50RXhjZXB0aW9u
OjpVTlNQRUNJRklFRF9FVkVOVF9UWVBFX0VSUjsKICAgICB9IGVsc2UgaWYgKGNvZGUgPj0gWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb246OlhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uT2Zmc2V0ICYmIGNv
ZGUgPD0gWE1MSHR0cFJlcXVlc3RFeGNlcHRpb246OlhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uTWF4
KSB7CiAgICAgICAgIHR5cGUgPSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvblR5cGU7CkBAIC0yNDMs
NyArMjQzLDcgQEAgdm9pZCBnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oRXhjZXB0aW9uQ29k
ZSBlYywgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uJiBkZXMKICAgICAgICAgY29kZSAtPSBYTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbjo6WE1MSHR0cFJlcXVlc3RFeGNlcHRpb25PZmZzZXQ7CiAgICAg
ICAgIG5hbWVUYWJsZSA9IHhtbEh0dHBSZXF1ZXN0RXhjZXB0aW9uTmFtZXM7CiAgICAgICAgIGRl
c2NyaXB0aW9uVGFibGUgPSB4bWxIdHRwUmVxdWVzdEV4Y2VwdGlvbkRlc2NyaXB0aW9uczsKLSAg
ICAgICAgbmFtZVRhYmxlU2l6ZSA9IHNpemVvZih4bWxIdHRwUmVxdWVzdEV4Y2VwdGlvbk5hbWVz
KSAvIHNpemVvZih4bWxIdHRwUmVxdWVzdEV4Y2VwdGlvbk5hbWVzWzBdKTsKKyAgICAgICAgbmFt
ZVRhYmxlU2l6ZSA9IFdURl9BUlJBWV9MRU5HVEgoeG1sSHR0cFJlcXVlc3RFeGNlcHRpb25OYW1l
cyk7CiAgICAgICAgIC8vIFhNTEh0dHBSZXF1ZXN0IGV4Y2VwdGlvbiBjb2RlcyBzdGFydCB3aXRo
IDEwMSBhbmQgd2UgZG9uJ3Qgd2FudCAxMDAgZW1wdHkgZWxlbWVudHMgaW4gdGhlIG5hbWUgYXJy
YXkKICAgICAgICAgbmFtZVRhYmxlT2Zmc2V0ID0gWE1MSHR0cFJlcXVlc3RFeGNlcHRpb246Ok5F
VFdPUktfRVJSOwogI2lmIEVOQUJMRShYUEFUSCkKQEAgLTI1Myw3ICsyNTMsNyBAQCB2b2lkIGdl
dEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihFeGNlcHRpb25Db2RlIGVjLCBFeGNlcHRpb25Db2Rl
RGVzY3JpcHRpb24mIGRlcwogICAgICAgICBjb2RlIC09IFhQYXRoRXhjZXB0aW9uOjpYUGF0aEV4
Y2VwdGlvbk9mZnNldDsKICAgICAgICAgbmFtZVRhYmxlID0geHBhdGhFeGNlcHRpb25OYW1lczsK
ICAgICAgICAgZGVzY3JpcHRpb25UYWJsZSA9IHhwYXRoRXhjZXB0aW9uRGVzY3JpcHRpb25zOwot
ICAgICAgICBuYW1lVGFibGVTaXplID0gc2l6ZW9mKHhwYXRoRXhjZXB0aW9uTmFtZXMpIC8gc2l6
ZW9mKHhwYXRoRXhjZXB0aW9uTmFtZXNbMF0pOworICAgICAgICBuYW1lVGFibGVTaXplID0gV1RG
X0FSUkFZX0xFTkdUSCh4cGF0aEV4Y2VwdGlvbk5hbWVzKTsKICAgICAgICAgLy8gWFBhdGggZXhj
ZXB0aW9uIGNvZGVzIHN0YXJ0IHdpdGggNTEgYW5kIHdlIGRvbid0IHdhbnQgNTEgZW1wdHkgZWxl
bWVudHMgaW4gdGhlIG5hbWUgYXJyYXkKICAgICAgICAgbmFtZVRhYmxlT2Zmc2V0ID0gWFBhdGhF
eGNlcHRpb246OklOVkFMSURfRVhQUkVTU0lPTl9FUlI7CiAjZW5kaWYKQEAgLTI2NCw3ICsyNjQs
NyBAQCB2b2lkIGdldEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihFeGNlcHRpb25Db2RlIGVjLCBF
eGNlcHRpb25Db2RlRGVzY3JpcHRpb24mIGRlcwogICAgICAgICBjb2RlIC09IFNWR0V4Y2VwdGlv
bjo6U1ZHRXhjZXB0aW9uT2Zmc2V0OwogICAgICAgICBuYW1lVGFibGUgPSBzdmdFeGNlcHRpb25O
YW1lczsKICAgICAgICAgZGVzY3JpcHRpb25UYWJsZSA9IHN2Z0V4Y2VwdGlvbkRlc2NyaXB0aW9u
czsKLSAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IHNpemVvZihzdmdFeGNlcHRpb25OYW1lcykgLyBz
aXplb2Yoc3ZnRXhjZXB0aW9uTmFtZXNbMF0pOworICAgICAgICBuYW1lVGFibGVTaXplID0gV1RG
X0FSUkFZX0xFTkdUSChzdmdFeGNlcHRpb25OYW1lcyk7CiAgICAgICAgIG5hbWVUYWJsZU9mZnNl
dCA9IFNWR0V4Y2VwdGlvbjo6U1ZHX1dST05HX1RZUEVfRVJSOwogI2VuZGlmCiAjaWYgRU5BQkxF
KERBVEFCQVNFKQpAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgZ2V0RXhjZXB0aW9uQ29kZURlc2Ny
aXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiYgZGVzCiAg
ICAgICAgIGNvZGUgLT0gU1FMRXhjZXB0aW9uOjpTUUxFeGNlcHRpb25PZmZzZXQ7CiAgICAgICAg
IG5hbWVUYWJsZSA9IHNxbEV4Y2VwdGlvbk5hbWVzOwogICAgICAgICBkZXNjcmlwdGlvblRhYmxl
ID0gc3FsRXhjZXB0aW9uRGVzY3JpcHRpb25zOwotICAgICAgICBuYW1lVGFibGVTaXplID0gc2l6
ZW9mKHNxbEV4Y2VwdGlvbk5hbWVzKSAvIHNpemVvZihzcWxFeGNlcHRpb25OYW1lc1swXSk7Cisg
ICAgICAgIG5hbWVUYWJsZVNpemUgPSBXVEZfQVJSQVlfTEVOR1RIKHNxbEV4Y2VwdGlvbk5hbWVz
KTsKICAgICAgICAgbmFtZVRhYmxlT2Zmc2V0ID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsK
ICNlbmRpZgogI2lmIEVOQUJMRShCTE9CKSB8fCBFTkFCTEUoRklMRV9TWVNURU0pCkBAIC0yODQs
NyArMjg0LDcgQEAgdm9pZCBnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oRXhjZXB0aW9uQ29k
ZSBlYywgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uJiBkZXMKICAgICAgICAgY29kZSAtPSBGaWxl
RXhjZXB0aW9uOjpGaWxlRXhjZXB0aW9uT2Zmc2V0OwogICAgICAgICBuYW1lVGFibGUgPSBmaWxl
RXhjZXB0aW9uTmFtZXM7CiAgICAgICAgIGRlc2NyaXB0aW9uVGFibGUgPSBmaWxlRXhjZXB0aW9u
RGVzY3JpcHRpb25zOwotICAgICAgICBuYW1lVGFibGVTaXplID0gc2l6ZW9mKGZpbGVFeGNlcHRp
b25OYW1lcykgLyBzaXplb2YoZmlsZUV4Y2VwdGlvbk5hbWVzWzBdKTsKKyAgICAgICAgbmFtZVRh
YmxlU2l6ZSA9IFdURl9BUlJBWV9MRU5HVEgoZmlsZUV4Y2VwdGlvbk5hbWVzKTsKICAgICAgICAg
bmFtZVRhYmxlT2Zmc2V0ID0gRmlsZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUjsKICNlbmRpZgog
ICAgIH0gZWxzZSB7CkBAIC0yOTIsNyArMjkyLDcgQEAgdm9pZCBnZXRFeGNlcHRpb25Db2RlRGVz
Y3JpcHRpb24oRXhjZXB0aW9uQ29kZSBlYywgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uJiBkZXMK
ICAgICAgICAgdHlwZU5hbWUgPSAiRE9NIjsKICAgICAgICAgbmFtZVRhYmxlID0gZXhjZXB0aW9u
TmFtZXM7CiAgICAgICAgIGRlc2NyaXB0aW9uVGFibGUgPSBleGNlcHRpb25EZXNjcmlwdGlvbnM7
Ci0gICAgICAgIG5hbWVUYWJsZVNpemUgPSBzaXplb2YoZXhjZXB0aW9uTmFtZXMpIC8gc2l6ZW9m
KGV4Y2VwdGlvbk5hbWVzWzBdKTsKKyAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IFdURl9BUlJBWV9M
RU5HVEgoZXhjZXB0aW9uTmFtZXMpOwogICAgICAgICBuYW1lVGFibGVPZmZzZXQgPSBJTkRFWF9T
SVpFX0VSUjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxl
Q29tbWFuZC5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCmluZGV4
IGM0YWFhYzguLmM0M2E1NzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxl
Q29tbWFuZC5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApA
QCAtMTI0Miw3ICsxMjQyLDcgQEAgYm9vbCBBcHBseVN0eWxlQ29tbWFuZDo6cmVtb3ZlSW1wbGlj
aXRseVN0eWxlZEVsZW1lbnQoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24KICAgICAvLyBDdXJy
ZW50IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHN1cHBvcnQgc3R5bGVQdXNoZWREb3duIHdoZW4g
bW9kZSA9PSBSZW1vdmVOb25lIGJlY2F1c2Ugb2YgZWFybHkgZXhpdC4KICAgICBBU1NFUlQoIWV4
dHJhY3RlZFN0eWxlIHx8IG1vZGUgIT0gUmVtb3ZlTm9uZSk7CiAgICAgYm9vbCByZW1vdmVkID0g
ZmFsc2U7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YoSFRNTEVxdWl2YWxlbnRz
KSAvIHNpemVvZihIVE1MRXF1aXZhbGVudCk7IGkrKykgeworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgV1RGX0FSUkFZX0xFTkdUSChIVE1MRXF1aXZhbGVudHMpOyArK2kpIHsKICAgICAgICAg
Y29uc3QgSFRNTEVxdWl2YWxlbnQmIGVxdWl2YWxlbnQgPSBIVE1MRXF1aXZhbGVudHNbaV07CiAg
ICAgICAgIEFTU0VSVChlcXVpdmFsZW50LmVsZW1lbnQgfHwgZXF1aXZhbGVudC5hdHRyaWJ1dGUp
OwogICAgICAgICBpZiAoKGV4dHJhY3RlZFN0eWxlICYmIGVxdWl2YWxlbnQucHVzaERvd25UeXBl
ID09IFNob3VsZE5vdEJlUHVzaGVkRG93bikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nU3R5bGUuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKaW5kZXgg
OWRhMzM3Zi4uNGE1NWRhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTY1LDcgKzY1
LDcgQEAgc3RhdGljIGNvbnN0IGludCBlZGl0aW5nU3R5bGVQcm9wZXJ0aWVzW10gPSB7CiAgICAg
Q1NTUHJvcGVydHlXZWJraXRUZXh0U3Ryb2tlQ29sb3IsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRU
ZXh0U3Ryb2tlV2lkdGgsCiB9Owotc2l6ZV90IG51bUVkaXRpbmdTdHlsZVByb3BlcnRpZXMgPSBz
aXplb2YoZWRpdGluZ1N0eWxlUHJvcGVydGllcykgLyBzaXplb2YoZWRpdGluZ1N0eWxlUHJvcGVy
dGllc1swXSk7CitzaXplX3QgbnVtRWRpdGluZ1N0eWxlUHJvcGVydGllcyA9IFdURl9BUlJBWV9M
RU5HVEgoZWRpdGluZ1N0eWxlUHJvcGVydGllcyk7CiAKIHN0YXRpYyBQYXNzUmVmUHRyPENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uPiBjb3B5RWRpdGluZ1Byb3BlcnRpZXMoQ1NTU3R5bGVEZWNs
YXJhdGlvbiogc3R5bGUpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGFhZDg3MmMuLjE1YmFkNzAgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCkBAIC05MjksNyArOTI5LDcgQEAgc3RhdGljIFRyaVN0YXRlIHRyaVN0YXRl
T2ZTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBkZXNpcmVkU3R5bGUsIENTU1N0eWxlRGVjbGEK
ICAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IGRpZmYgPSBnZXRQcm9wZXJ0
aWVzTm90SW4oZGVzaXJlZFN0eWxlLCBzdHlsZVRvQ29tcGFyZSk7CiAKICAgICBpZiAoaWdub3Jl
VGV4dE9ubHlQcm9wZXJ0aWVzKQotICAgICAgICBkaWZmLT5yZW1vdmVQcm9wZXJ0aWVzSW5TZXQo
dGV4dE9ubHlQcm9wZXJ0aWVzLCBzaXplb2YodGV4dE9ubHlQcm9wZXJ0aWVzKSAvIHNpemVvZih0
ZXh0T25seVByb3BlcnRpZXNbMF0pKTsKKyAgICAgICAgZGlmZi0+cmVtb3ZlUHJvcGVydGllc0lu
U2V0KHRleHRPbmx5UHJvcGVydGllcywgV1RGX0FSUkFZX0xFTkdUSCh0ZXh0T25seVByb3BlcnRp
ZXMpKTsKIAogICAgIGlmICghZGlmZi0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBUcnVlVHJp
U3RhdGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgYi9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggZTNlYTM3ZS4uYWI4MzgxNyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAtMTU1Niw4ICsxNTU2LDcgQEAgc3RhdGlj
IGNvbnN0IENvbW1hbmRNYXAmIGNyZWF0ZUNvbW1hbmRNYXAoKQogCiAgICAgQ29tbWFuZE1hcCYg
Y29tbWFuZE1hcCA9ICpuZXcgQ29tbWFuZE1hcDsKIAotICAgIGNvbnN0IHVuc2lnbmVkIG51bUNv
bW1hbmRzID0gc2l6ZW9mKGNvbW1hbmRzKSAvIHNpemVvZihjb21tYW5kc1swXSk7Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUNvbW1hbmRzOyBpKyspIHsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoY29tbWFuZHMpOyArK2kpIHsKICAgICAgICAg
QVNTRVJUKCFjb21tYW5kTWFwLmdldChjb21tYW5kc1tpXS5uYW1lKSk7CiAgICAgICAgIGNvbW1h
bmRNYXAuc2V0KGNvbW1hbmRzW2ldLm5hbWUsICZjb21tYW5kc1tpXS5jb21tYW5kKTsKICAgICB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvV2Vi
Q29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCBhNzAxMTg5Li5mNmRiZDhi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBi
L1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTYwLDggKzYwLDggQEAg
dm9pZCBhcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5nRW50aXRpZXMoVmVjdG9yPFVDaGFyPiYgb3V0
LCBjb25zdCBVQ2hhciogY29udGVudCwKICAgICB9OwogCiAgICAgc2l6ZV90IHBvc2l0aW9uQWZ0
ZXJMYXN0RW50aXR5ID0gMDsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IG0gPSAwOyBtIDwgc2l6ZW9mKGVudGl0eU1hcHMpIC8g
c2l6ZW9mKEVudGl0eURlc2NyaXB0aW9uKTsgbSsrKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBmb3IgKHNpemVfdCBtID0gMDsgbSA8IFdURl9B
UlJBWV9MRU5HVEgoZW50aXR5TWFwcyk7ICsrbSkgewogICAgICAgICAgICAgaWYgKGNvbnRlbnRb
aV0gPT0gZW50aXR5TWFwc1ttXS5lbnRpdHkgJiYgZW50aXR5TWFwc1ttXS5tYXNrICYgZW50aXR5
TWFzaykgewogICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoY29udGVudCArIHBvc2l0aW9uQWZ0
ZXJMYXN0RW50aXR5LCBpIC0gcG9zaXRpb25BZnRlckxhc3RFbnRpdHkpOwogICAgICAgICAgICAg
ICAgIGFwcGVuZChvdXQsIGVudGl0eU1hcHNbbV0ucmVmZXJlbmNlKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEJ1ZmZlci5jcHAKaW5kZXggOTlkOWNhZC4uMDdmMDBmZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEJ1ZmZlci5jcHAKQEAgLTE3MCwyMSArMTcwLDIxIEBAIHVuc2lnbmVkIFdlYkdMQnVmZmVy
OjpieXRlTGVuZ3RoKCkgY29uc3QKIAogbG9uZyBXZWJHTEJ1ZmZlcjo6Z2V0Q2FjaGVkTWF4SW5k
ZXgodW5zaWduZWQgbG9uZyB0eXBlKQogewotICAgIHNpemVfdCBudW1FbnRyaWVzID0gc2l6ZW9m
KG1fbWF4SW5kZXhDYWNoZSkgLyBzaXplb2YoTWF4SW5kZXhDYWNoZUVudHJ5KTsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG51bUVudHJpZXM7IGkrKykKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IFdURl9BUlJBWV9MRU5HVEgobV9tYXhJbmRleENhY2hlKTsgKytpKSB7CiAgICAgICAg
IGlmIChtX21heEluZGV4Q2FjaGVbaV0udHlwZSA9PSB0eXBlKQogICAgICAgICAgICAgcmV0dXJu
IG1fbWF4SW5kZXhDYWNoZVtpXS5tYXhJbmRleDsKKyAgICB9CiAgICAgcmV0dXJuIC0xOwogfQog
CiB2b2lkIFdlYkdMQnVmZmVyOjpzZXRDYWNoZWRNYXhJbmRleCh1bnNpZ25lZCBsb25nIHR5cGUs
IGxvbmcgdmFsdWUpCiB7Ci0gICAgaW50IG51bUVudHJpZXMgPSBzaXplb2YobV9tYXhJbmRleENh
Y2hlKSAvIHNpemVvZihNYXhJbmRleENhY2hlRW50cnkpOwotICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbnVtRW50cmllczsgaSsrKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZ
X0xFTkdUSChtX21heEluZGV4Q2FjaGUpOyArK2kpIHsKICAgICAgICAgaWYgKG1fbWF4SW5kZXhD
YWNoZVtpXS50eXBlID09IHR5cGUpIHsKICAgICAgICAgICAgIG1fbWF4SW5kZXhDYWNoZVtpXS5t
YXhJbmRleCA9IHZhbHVlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgfQog
ICAgIG1fbWF4SW5kZXhDYWNoZVttX25leHRBdmFpbGFibGVDYWNoZUVudHJ5XS50eXBlID0gdHlw
ZTsKICAgICBtX21heEluZGV4Q2FjaGVbbV9uZXh0QXZhaWxhYmxlQ2FjaGVFbnRyeV0ubWF4SW5k
ZXggPSB2YWx1ZTsKICAgICBtX25leHRBdmFpbGFibGVDYWNoZUVudHJ5ID0gKG1fbmV4dEF2YWls
YWJsZUNhY2hlRW50cnkgKyAxKSAlIG51bUVudHJpZXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xv
YWRlci9GVFBEaXJlY3RvcnlQYXJzZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5
UGFyc2VyLmNwcAppbmRleCBmNmE3NGRlLi42YTA1YzRjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xv
YWRlci9GVFBEaXJlY3RvcnlQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVj
dG9yeVBhcnNlci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBGVFBFbnRyeVR5cGUgcGFyc2VPbmVG
VFBMaW5lKGNvbnN0IGNoYXIqIGxpbmUsIExpc3RTdGF0ZSYgc3RhdGUsIExpc3RSZXN1bHQmIHJl
cwogICB7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIgKm1vbnRoX25hbWVzID0gIkphbkZlYk1hckFw
ck1heUp1bkp1bEF1Z1NlcE9jdE5vdkRlYyI7CiAgICAgY29uc3QgY2hhciAqdG9rZW5zWzE2XTsg
LyogMTYgaXMgbW9yZSB0aGFuIGVub3VnaCAqLwotICAgIHVuc2lnbmVkIGludCB0b2tsZW5bKHNp
emVvZih0b2tlbnMpL3NpemVvZih0b2tlbnNbMF0pKV07CisgICAgdW5zaWduZWQgaW50IHRva2xl
bltXVEZfQVJSQVlfTEVOR1RIKHRva2VucyldOwogICAgIHVuc2lnbmVkIGludCBsaW5lbGVuX3Nh
bnNfd3NwOyAgLy8gbGluZSBsZW5ndGggc2FucyB3aGl0ZXNwYWNlCiAgICAgdW5zaWduZWQgaW50
IG51bXRva3MgPSAwOwogICAgIHVuc2lnbmVkIGludCB0b2ttYXJrZXIgPSAwOyAvKiBleHRyYSBp
bmZvIGZvciBsc3R5bGUgaGFuZGxlciAqLwpAQCAtMTMzLDcgKzEzMyw3IEBAIEZUUEVudHJ5VHlw
ZSBwYXJzZU9uZUZUUExpbmUoY29uc3QgY2hhciogbGluZSwgTGlzdFN0YXRlJiBzdGF0ZSwgTGlz
dFJlc3VsdCYgcmVzCiAgICAgfQogCiAgICAgdW5zaWduZWQgaW50IHBvcyA9IDA7Ci0gICAgd2hp
bGUgKHBvcyA8IGxpbmVsZW4gJiYgbnVtdG9rcyA8IChzaXplb2YodG9rZW5zKS9zaXplb2YodG9r
ZW5zWzBdKSkgKQorICAgIHdoaWxlIChwb3MgPCBsaW5lbGVuICYmIG51bXRva3MgPCBXVEZfQVJS
QVlfTEVOR1RIKHRva2VucykpCiAgICAgewogICAgICAgd2hpbGUgKHBvcyA8IGxpbmVsZW4gJiYg
CiAgICAgICAgICAgICAobGluZVtwb3NdID09ICcgJyB8fCBsaW5lW3Bvc10gPT0gJ1x0JyB8fCBs
aW5lW3Bvc10gPT0gJ1xyJykpCkBAIC0xNTYsNyArMTU2LDcgQEAgRlRQRW50cnlUeXBlIHBhcnNl
T25lRlRQTGluZShjb25zdCBjaGFyKiBsaW5lLCBMaXN0U3RhdGUmIHN0YXRlLCBMaXN0UmVzdWx0
JiByZXMKICAgICAgIHJldHVybiBQYXJzaW5nRmFpbGVkKHN0YXRlKTsKIAogICAgIGxpbmVsZW5f
c2Fuc193c3AgPSAmKHRva2Vuc1tudW10b2tzLTFdW3Rva2xlbltudW10b2tzLTFdXSkgLSB0b2tl
bnNbMF07Ci0gICAgaWYgKG51bXRva3MgPT0gKHNpemVvZih0b2tlbnMpL3NpemVvZih0b2tlbnNb
MF0pKSApCisgICAgaWYgKG51bXRva3MgPT0gV1RGX0FSUkFZX0xFTkdUSCh0b2tlbnMpKQogICAg
IHsKICAgICAgIHBvcyA9IGxpbmVsZW47CiAgICAgICB3aGlsZSAocG9zID4gMCAmJiAobGluZVtw
b3MtMV0gPT0gJyAnIHx8IGxpbmVbcG9zLTFdID09ICdcdCcpKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwIGIvV2ViQ29yZS9tYXRobWwvUmVuZGVy
TWF0aE1MT3BlcmF0b3IuY3BwCmluZGV4IDcyYzk5N2IuLmJjZjkwZWMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcAorKysgYi9XZWJDb3JlL21hdGht
bC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAKQEAgLTE2Miw4ICsxNjIsNyBAQCB2b2lkIFJlbmRl
ck1hdGhNTE9wZXJhdG9yOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgCiAgICAgLy8gQ2hlY2sg
Zm9yIGEgc3RyZXRjaGFibGUgY2hhcmFjdGVyLgogICAgIGlmICghc3RyZXRjaERpc2FibGVkICYm
IGZpcnN0Q2hhcikgewotICAgICAgICBjb25zdCBpbnQgbWF4SW5kZXggPSBzaXplb2Yoc3RyZXRj
aHlDaGFyYWN0ZXJzKSAvIHNpemVvZihzdHJldGNoeUNoYXJhY3RlcnNbMF0pOwotICAgICAgICBm
b3IgKGluZGV4Kys7IGluZGV4IDwgbWF4SW5kZXg7IGluZGV4KyspIHsKKyAgICAgICAgZm9yIChp
bmRleCsrOyBpbmRleCA8IFdURl9BUlJBWV9MRU5HVEgoc3RyZXRjaHlDaGFyYWN0ZXJzKTsgaW5k
ZXgrKykgewogICAgICAgICAgICAgaWYgKHN0cmV0Y2h5Q2hhcmFjdGVyc1tpbmRleF0uY2hhcmFj
dGVyID09IGZpcnN0Q2hhcikgewogICAgICAgICAgICAgICAgIGlzU3RyZXRjaHkgPSB0cnVlOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25CYXNlLmNwcCBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFz
ZS5jcHAKaW5kZXggYWQ1MjU3ZS4uNjYxNzJmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkJhc2UuY3BwCkBAIC03NDQsNyArNzQ0LDcgQEAgc3RhdGljIHZvaWQgYWRkU2hvcnRo
YW5kUHJvcGVydGllcygpCiAgICAgICAgIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2lu
CiAgICAgfTsKIAotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplb2YoYW5pbWF0YWJs
ZVNob3J0aGFuZFByb3BlcnRpZXMpIC8gc2l6ZW9mKGFuaW1hdGFibGVTaG9ydGhhbmRQcm9wZXJ0
aWVzWzBdKTsgKytpKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVO
R1RIKGFuaW1hdGFibGVTaG9ydGhhbmRQcm9wZXJ0aWVzKTsgKytpKSB7CiAgICAgICAgIGludCBw
cm9wZXJ0eUlEID0gYW5pbWF0YWJsZVNob3J0aGFuZFByb3BlcnRpZXNbaV07CiAgICAgICAgIENT
U1Byb3BlcnR5TG9uZ2hhbmQgbG9uZ2hhbmQgPSBsb25naGFuZEZvclByb3BlcnR5KHByb3BlcnR5
SUQpOwogICAgICAgICBpZiAobG9uZ2hhbmQubGVuZ3RoKCkgPiAwKQpAQCAtNzU3LDcgKzc1Nyw3
IEBAIHN0YXRpYyB2b2lkIGFkZFNob3J0aGFuZFByb3BlcnRpZXMoKQogICAgICAgICBDU1NQcm9w
ZXJ0eUZvbnRXZWlnaHQKICAgICB9OwogCi0gICAgQ1NTUHJvcGVydHlMb25naGFuZCBmb250TG9u
Z2hhbmQoYW5pbWF0YWJsZUZvbnRQcm9wZXJ0aWVzLCBzaXplb2YoYW5pbWF0YWJsZUZvbnRQcm9w
ZXJ0aWVzKSAvIHNpemVvZihhbmltYXRhYmxlRm9udFByb3BlcnRpZXNbMF0pKTsKKyAgICBDU1NQ
cm9wZXJ0eUxvbmdoYW5kIGZvbnRMb25naGFuZChhbmltYXRhYmxlRm9udFByb3BlcnRpZXMsIFdU
Rl9BUlJBWV9MRU5HVEgoYW5pbWF0YWJsZUZvbnRQcm9wZXJ0aWVzKSk7CiAgICAgYWRkUHJvcGVy
dHlXcmFwcGVyKENTU1Byb3BlcnR5Rm9udCwgbmV3IFNob3J0aGFuZFByb3BlcnR5V3JhcHBlcihD
U1NQcm9wZXJ0eUZvbnQsIGZvbnRMb25naGFuZCkpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbC5jcHAKaW5kZXggOWI5ZTUxYS4uMjA0MGYxMCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sLmNwcApAQCAtNDkwLDExICs0OTAsMTEgQEAgc3RhdGljIGNv
bnN0IGNoYXIqIGZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldpZHRoW10gPSB7CiBib29sIFJl
bmRlclRleHRDb250cm9sOjpoYXNWYWxpZEF2Z0NoYXJXaWR0aChBdG9taWNTdHJpbmcgZmFtaWx5
KQogewogICAgIHN0YXRpYyBIYXNoU2V0PEF0b21pY1N0cmluZz4qIGZvbnRGYW1pbGllc1dpdGhJ
bnZhbGlkQ2hhcldpZHRoTWFwID0gMDsKLSAgICAKKwogICAgIGlmICghZm9udEZhbWlsaWVzV2l0
aEludmFsaWRDaGFyV2lkdGhNYXApIHsKICAgICAgICAgZm9udEZhbWlsaWVzV2l0aEludmFsaWRD
aGFyV2lkdGhNYXAgPSBuZXcgSGFzaFNldDxBdG9taWNTdHJpbmc+OwotICAgICAgICAKLSAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemVvZihmb250RmFtaWxpZXNXaXRoSW52YWxp
ZENoYXJXaWR0aCkgLyBzaXplb2YoZm9udEZhbWlsaWVzV2l0aEludmFsaWRDaGFyV2lkdGhbMF0p
OyBpKyspCisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RI
KGZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldpZHRoKTsgKytpKQogICAgICAgICAgICAgZm9u
dEZhbWlsaWVzV2l0aEludmFsaWRDaGFyV2lkdGhNYXAtPmFkZChBdG9taWNTdHJpbmcoZm9udEZh
bWlsaWVzV2l0aEludmFsaWRDaGFyV2lkdGhbaV0pKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFr
X2xpbmVzLmNwcAppbmRleCBjNmMxZGRkLi5mMzY5MWJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9icmVha19saW5lcy5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGlu
ZXMuY3BwCkBAIC0xMTQsOCArMTE0LDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYXNj
aWlMaW5lQnJlYWtUYWJsZVtdWyhhc2NpaUxpbmVCcmVha1RhYmxlTGFzdENoYXIgLQogI3VuZGVm
IERJCiAjdW5kZWYgQUwKIAotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKGFzY2lpTGluZUJyZWFrVGFi
bGUpIC8gc2l6ZW9mKGFzY2lpTGluZUJyZWFrVGFibGVbMF0pID09IGFzY2lpTGluZUJyZWFrVGFi
bGVMYXN0Q2hhciAtIGFzY2lpTGluZUJyZWFrVGFibGVGaXJzdENoYXIgKyAxLAotICAgICAgICBU
ZXN0TGluZUJyZWFrVGFibGVDb25zaXN0ZW5jeSk7CitDT01QSUxFX0FTU0VSVChXVEZfQVJSQVlf
TEVOR1RIKGFzY2lpTGluZUJyZWFrVGFibGUpID09IGFzY2lpTGluZUJyZWFrVGFibGVMYXN0Q2hh
ciAtIGFzY2lpTGluZUJyZWFrVGFibGVGaXJzdENoYXIgKyAxLCBUZXN0TGluZUJyZWFrVGFibGVD
b25zaXN0ZW5jeSk7CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRCcmVha0FmdGVyKFVDaGFy
IGNoLCBVQ2hhciBuZXh0Q2gpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zv
cm1hYmxlLmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCmluZGV4IDAwNmJi
OTQuLmU2MzdlN2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3Bw
CisrKyBiL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCkBAIC0xNDMsMjUgKzE0Mywy
NSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGFyc2VBbmRTa2lwVHlwZShjb25zdCBVQ2hhciomIGN1
cnJUcmFuc2Zvcm0sIGNvbnN0IFVDaGFyKiBlbgogewogICAgIGlmIChjdXJyVHJhbnNmb3JtID49
IGVuZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAorCiAgICAgaWYgKCpjdXJyVHJhbnNm
b3JtID09ICdzJykgewotICAgICAgICBpZiAoc2tpcFN0cmluZyhjdXJyVHJhbnNmb3JtLCBlbmQs
IHNrZXdYRGVzYywgc2l6ZW9mKHNrZXdYRGVzYykgLyBzaXplb2YoVUNoYXIpKSkKKyAgICAgICAg
aWYgKHNraXBTdHJpbmcoY3VyclRyYW5zZm9ybSwgZW5kLCBza2V3WERlc2MsIFdURl9BUlJBWV9M
RU5HVEgoc2tld1hEZXNjKSkpCiAgICAgICAgICAgICB0eXBlID0gU1ZHVHJhbnNmb3JtOjpTVkdf
VFJBTlNGT1JNX1NLRVdYOwotICAgICAgICBlbHNlIGlmIChza2lwU3RyaW5nKGN1cnJUcmFuc2Zv
cm0sIGVuZCwgc2tld1lEZXNjLCBzaXplb2Yoc2tld1lEZXNjKSAvIHNpemVvZihVQ2hhcikpKQor
ICAgICAgICBlbHNlIGlmIChza2lwU3RyaW5nKGN1cnJUcmFuc2Zvcm0sIGVuZCwgc2tld1lEZXNj
LCBXVEZfQVJSQVlfTEVOR1RIKHNrZXdZRGVzYykpKQogICAgICAgICAgICAgdHlwZSA9IFNWR1Ry
YW5zZm9ybTo6U1ZHX1RSQU5TRk9STV9TS0VXWTsKLSAgICAgICAgZWxzZSBpZiAoc2tpcFN0cmlu
ZyhjdXJyVHJhbnNmb3JtLCBlbmQsIHNjYWxlRGVzYywgc2l6ZW9mKHNjYWxlRGVzYykgLyBzaXpl
b2YoVUNoYXIpKSkKKyAgICAgICAgZWxzZSBpZiAoc2tpcFN0cmluZyhjdXJyVHJhbnNmb3JtLCBl
bmQsIHNjYWxlRGVzYywgV1RGX0FSUkFZX0xFTkdUSChzY2FsZURlc2MpKSkKICAgICAgICAgICAg
IHR5cGUgPSBTVkdUcmFuc2Zvcm06OlNWR19UUkFOU0ZPUk1fU0NBTEU7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9IGVsc2UgaWYgKHNraXBTdHJpbmcoY3Vy
clRyYW5zZm9ybSwgZW5kLCB0cmFuc2xhdGVEZXNjLCBzaXplb2YodHJhbnNsYXRlRGVzYykgLyBz
aXplb2YoVUNoYXIpKSkKKyAgICB9IGVsc2UgaWYgKHNraXBTdHJpbmcoY3VyclRyYW5zZm9ybSwg
ZW5kLCB0cmFuc2xhdGVEZXNjLCBXVEZfQVJSQVlfTEVOR1RIKHRyYW5zbGF0ZURlc2MpKSkKICAg
ICAgICAgdHlwZSA9IFNWR1RyYW5zZm9ybTo6U1ZHX1RSQU5TRk9STV9UUkFOU0xBVEU7Ci0gICAg
ZWxzZSBpZiAoc2tpcFN0cmluZyhjdXJyVHJhbnNmb3JtLCBlbmQsIHJvdGF0ZURlc2MsIHNpemVv
Zihyb3RhdGVEZXNjKSAvIHNpemVvZihVQ2hhcikpKQorICAgIGVsc2UgaWYgKHNraXBTdHJpbmco
Y3VyclRyYW5zZm9ybSwgZW5kLCByb3RhdGVEZXNjLCBXVEZfQVJSQVlfTEVOR1RIKHJvdGF0ZURl
c2MpKSkKICAgICAgICAgdHlwZSA9IFNWR1RyYW5zZm9ybTo6U1ZHX1RSQU5TRk9STV9ST1RBVEU7
Ci0gICAgZWxzZSBpZiAoc2tpcFN0cmluZyhjdXJyVHJhbnNmb3JtLCBlbmQsIG1hdHJpeERlc2Ms
IHNpemVvZihtYXRyaXhEZXNjKSAvIHNpemVvZihVQ2hhcikpKQorICAgIGVsc2UgaWYgKHNraXBT
dHJpbmcoY3VyclRyYW5zZm9ybSwgZW5kLCBtYXRyaXhEZXNjLCBXVEZfQVJSQVlfTEVOR1RIKG1h
dHJpeERlc2MpKSkKICAgICAgICAgdHlwZSA9IFNWR1RyYW5zZm9ybTo6U1ZHX1RSQU5TRk9STV9N
QVRSSVg7Ci0gICAgZWxzZSAKKyAgICBlbHNlCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAK
KwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdWaWV3
U3BlYy5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKaW5kZXggZDZiYWRlMy4uYTBh
NjgzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCisrKyBiL1dlYkNv
cmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcApAQCAtODEsNyArODEsNyBAQCBib29sIFNWR1ZpZXdTcGVj
OjpwYXJzZVZpZXdTcGVjKGNvbnN0IFN0cmluZyYgdmlld1NwZWMpCiAgICAgaWYgKGN1cnJWaWV3
U3BlYyA+PSBlbmQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghc2tpcFN0cmlu
ZyhjdXJyVmlld1NwZWMsIGVuZCwgc3ZnVmlld1NwZWMsIHNpemVvZihzdmdWaWV3U3BlYykgLyBz
aXplb2YoVUNoYXIpKSkKKyAgICBpZiAoIXNraXBTdHJpbmcoY3VyclZpZXdTcGVjLCBlbmQsIHN2
Z1ZpZXdTcGVjLCBXVEZfQVJSQVlfTEVOR1RIKHN2Z1ZpZXdTcGVjKSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMg
IT0gJygnICkKQEAgLTkwLDcgKzkwLDcgQEAgYm9vbCBTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3Bl
Yyhjb25zdCBTdHJpbmcmIHZpZXdTcGVjKQogCiAgICAgd2hpbGUgKGN1cnJWaWV3U3BlYyA8IGVu
ZCAmJiAqY3VyclZpZXdTcGVjICE9ICcpJykgewogICAgICAgICBpZiAoKmN1cnJWaWV3U3BlYyA9
PSAndicpIHsKLSAgICAgICAgICAgIGlmIChza2lwU3RyaW5nKGN1cnJWaWV3U3BlYywgZW5kLCB2
aWV3Qm94U3BlYywgc2l6ZW9mKHZpZXdCb3hTcGVjKSAvIHNpemVvZihVQ2hhcikpKSB7CisgICAg
ICAgICAgICBpZiAoc2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVuZCwgdmlld0JveFNwZWMsIFdU
Rl9BUlJBWV9MRU5HVEgodmlld0JveFNwZWMpKSkgewogICAgICAgICAgICAgICAgIGlmIChjdXJy
Vmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0gJygnKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgY3VyclZpZXdTcGVjKys7CkBAIC0x
MDEsNyArMTAxLDcgQEAgYm9vbCBTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3BlYyhjb25zdCBTdHJp
bmcmIHZpZXdTcGVjKQogICAgICAgICAgICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8
ICpjdXJyVmlld1NwZWMgIT0gJyknKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICAgICAgY3VyclZpZXdTcGVjKys7Ci0gICAgICAgICAgICB9IGVsc2UgaWYg
KHNraXBTdHJpbmcoY3VyclZpZXdTcGVjLCBlbmQsIHZpZXdUYXJnZXRTcGVjLCBzaXplb2Yodmll
d1RhcmdldFNwZWMpIC8gc2l6ZW9mKFVDaGFyKSkpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
c2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVuZCwgdmlld1RhcmdldFNwZWMsIFdURl9BUlJBWV9M
RU5HVEgodmlld1RhcmdldFNwZWMpKSkgewogICAgICAgICAgICAgICAgIGlmIChjdXJyVmlld1Nw
ZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0gJygnKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIqIHZpZXdUYXJnZXRTdGFy
dCA9ICsrY3VyclZpZXdTcGVjOwpAQCAtMTE0LDcgKzExNCw3IEBAIGJvb2wgU1ZHVmlld1NwZWM6
OnBhcnNlVmlld1NwZWMoY29uc3QgU3RyaW5nJiB2aWV3U3BlYykKICAgICAgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfSBlbHNlIGlmICgqY3Vy
clZpZXdTcGVjID09ICd6JykgewotICAgICAgICAgICAgaWYgKCFza2lwU3RyaW5nKGN1cnJWaWV3
U3BlYywgZW5kLCB6b29tQW5kUGFuU3BlYywgc2l6ZW9mKHpvb21BbmRQYW5TcGVjKSAvIHNpemVv
ZihVQ2hhcikpKQorICAgICAgICAgICAgaWYgKCFza2lwU3RyaW5nKGN1cnJWaWV3U3BlYywgZW5k
LCB6b29tQW5kUGFuU3BlYywgV1RGX0FSUkFZX0xFTkdUSCh6b29tQW5kUGFuU3BlYykpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmIChjdXJyVmlld1NwZWMg
Pj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0gJygnKQogICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTEyNSw3ICsxMjUsNyBAQCBib29sIFNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVj
KGNvbnN0IFN0cmluZyYgdmlld1NwZWMpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgY3VyclZpZXdTcGVjKys7CiAgICAgICAgIH0gZWxzZSBpZiAoKmN1cnJWaWV3
U3BlYyA9PSAncCcpIHsKLSAgICAgICAgICAgIGlmICghc2tpcFN0cmluZyhjdXJyVmlld1NwZWMs
IGVuZCwgcHJlc2VydmVBc3BlY3RSYXRpb1NwZWMsIHNpemVvZihwcmVzZXJ2ZUFzcGVjdFJhdGlv
U3BlYykgLyBzaXplb2YoVUNoYXIpKSkKKyAgICAgICAgICAgIGlmICghc2tpcFN0cmluZyhjdXJy
Vmlld1NwZWMsIGVuZCwgcHJlc2VydmVBc3BlY3RSYXRpb1NwZWMsIFdURl9BUlJBWV9MRU5HVEgo
cHJlc2VydmVBc3BlY3RSYXRpb1NwZWMpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9
ICcoJykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzgsNyArMTM4LDcgQEAg
Ym9vbCBTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3BlYyhjb25zdCBTdHJpbmcmIHZpZXdTcGVjKQog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGN1cnJWaWV3U3BlYysr
OwogICAgICAgICB9IGVsc2UgaWYgKCpjdXJyVmlld1NwZWMgPT0gJ3QnKSB7Ci0gICAgICAgICAg
ICBpZiAoIXNraXBTdHJpbmcoY3VyclZpZXdTcGVjLCBlbmQsIHRyYW5zZm9ybVNwZWMsIHNpemVv
Zih0cmFuc2Zvcm1TcGVjKSAvIHNpemVvZihVQ2hhcikpKQorICAgICAgICAgICAgaWYgKCFza2lw
U3RyaW5nKGN1cnJWaWV3U3BlYywgZW5kLCB0cmFuc2Zvcm1TcGVjLCBXVEZfQVJSQVlfTEVOR1RI
KHRyYW5zZm9ybVNwZWMpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcoJykKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkda
b29tQW5kUGFuLmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1pvb21BbmRQYW4uY3BwCmluZGV4IDkzYWIz
YWQuLjM2ZDRhNjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1pvb21BbmRQYW4uY3BwCisr
KyBiL1dlYkNvcmUvc3ZnL1NWR1pvb21BbmRQYW4uY3BwCkBAIC01Niw5ICs1Niw5IEBAIHN0YXRp
YyBjb25zdCBVQ2hhciBtYWduaWZ5W10gPSAgeydtJywgJ2EnLCAnZycsICduJywgJ2knLCAnZics
ICd5J307CiAKIGJvb2wgU1ZHWm9vbUFuZFBhbjo6cGFyc2Vab29tQW5kUGFuKGNvbnN0IFVDaGFy
KiYgc3RhcnQsIGNvbnN0IFVDaGFyKiBlbmQpCiB7Ci0gICAgaWYgKHNraXBTdHJpbmcoc3RhcnQs
IGVuZCwgZGlzYWJsZSwgc2l6ZW9mKGRpc2FibGUpIC8gc2l6ZW9mKFVDaGFyKSkpCisgICAgaWYg
KHNraXBTdHJpbmcoc3RhcnQsIGVuZCwgZGlzYWJsZSwgV1RGX0FSUkFZX0xFTkdUSChkaXNhYmxl
KSkpCiAgICAgICAgIHNldFpvb21BbmRQYW4oU1ZHX1pPT01BTkRQQU5fRElTQUJMRSk7Ci0gICAg
ZWxzZSBpZiAoc2tpcFN0cmluZyhzdGFydCwgZW5kLCBtYWduaWZ5LCBzaXplb2YobWFnbmlmeSkg
LyBzaXplb2YoVUNoYXIpKSkKKyAgICBlbHNlIGlmIChza2lwU3RyaW5nKHN0YXJ0LCBlbmQsIG1h
Z25pZnksIFdURl9BUlJBWV9MRU5HVEgobWFnbmlmeSkpKQogICAgICAgICBzZXRab29tQW5kUGFu
KFNWR19aT09NQU5EUEFOX01BR05JRlkpOwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwIGIvV2ViQ29yZS94
bWwvWFBhdGhGdW5jdGlvbnMuY3BwCmluZGV4IDhiNGU3MjAuLjIwOTFhY2EgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcAorKysgYi9XZWJDb3JlL3htbC9YUGF0aEZ1
bmN0aW9ucy5jcHAKQEAgLTcwOCwxMCArNzA4LDkgQEAgc3RhdGljIHZvaWQgY3JlYXRlRnVuY3Rp
b25NYXAoKQogICAgICAgICB7ICJ0cmFuc2xhdGUiLCB7ICZjcmVhdGVGdW5UcmFuc2xhdGUsIDMg
fSB9LAogICAgICAgICB7ICJ0cnVlIiwgeyAmY3JlYXRlRnVuVHJ1ZSwgMCB9IH0sCiAgICAgfTsK
LSAgICBjb25zdCB1bnNpZ25lZCBpbnQgbnVtRnVuY3Rpb25zID0gc2l6ZW9mKGZ1bmN0aW9ucykg
LyBzaXplb2YoZnVuY3Rpb25zWzBdKTsKIAogICAgIGZ1bmN0aW9uTWFwID0gbmV3IEhhc2hNYXA8
U3RyaW5nLCBGdW5jdGlvblJlYz47Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUZ1
bmN0aW9uczsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdU
SChmdW5jdGlvbnMpOyArK2kpCiAgICAgICAgIGZ1bmN0aW9uTWFwLT5zZXQoZnVuY3Rpb25zW2ld
Lm5hbWUsIGZ1bmN0aW9uc1tpXS5mdW5jdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
eG1sL1hQYXRoUGFyc2VyLmNwcCBiL1dlYkNvcmUveG1sL1hQYXRoUGFyc2VyLmNwcAppbmRleCBj
MjQyYTVjLi44ZTQ2M2NkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YUGF0aFBhcnNlci5jcHAK
KysrIGIvV2ViQ29yZS94bWwvWFBhdGhQYXJzZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIHN0YXRp
YyB2b2lkIHNldFVwQXhpc05hbWVzTWFwKEF4aXNOYW1lc01hcCYgYXhpc05hbWVzKQogICAgICAg
ICB7ICJwcmVjZWRpbmctc2libGluZyIsIFN0ZXA6OlByZWNlZGluZ1NpYmxpbmdBeGlzIH0sCiAg
ICAgICAgIHsgInNlbGYiLCBTdGVwOjpTZWxmQXhpcyB9CiAgICAgfTsKLSAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgc2l6ZW9mKGF4aXNOYW1lTGlzdCkgLyBzaXplb2YoYXhpc05hbWVMaXN0
WzBdKTsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChh
eGlzTmFtZUxpc3QpOyArK2kpCiAgICAgICAgIGF4aXNOYW1lcy5zZXQoYXhpc05hbWVMaXN0W2ld
Lm5hbWUsIGF4aXNOYW1lTGlzdFtpXS5heGlzKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74509</attachid>
            <date>2010-11-21 10:05:34 -0800</date>
            <delta_ts>2010-11-21 10:10:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49882.patch</filename>
            <type>text/plain</type>
            <size>32257</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjhjZTg1Ni4uMjgzNDliMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxMC0xMS0yMiAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgV1RGX0FSUkFZX0xFTkdUSCBpbiBXZWJDb3JlIGRpcmVj
dG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk4
ODIKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVBUklBUm9sZU1hcCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFz
ZTo6SlNET01XaW5kb3dCYXNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToKKyAg
ICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKiBj
c3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAqIGNz
cy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUFuaW1h
dGlvblNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVHJhbnNp
dGlvblNob3J0aGFuZCk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6aW5pdFNob3J0aGFuZE1hcCk6CisgICAgICAgICogZG9tL0V4Y2Vw
dGlvbkNvZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0
aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpyZW1vdmVJbXBsaWNpdGx5U3R5bGVkRWxlbWVu
dCk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyaVN0YXRlT2ZTdHlsZSk6CisgICAg
ICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUNvbW1hbmRNYXApOgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6YXBwZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzKToKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTEJ1ZmZlcjo6Z2V0Q2FjaGVkTWF4SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xC
dWZmZXI6OnNldENhY2hlZE1heEluZGV4KToKKyAgICAgICAgKiBsb2FkZXIvRlRQRGlyZWN0b3J5
UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlT25lRlRQTGluZSk6CisgICAgICAg
ICogbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck1hdGhNTE9wZXJhdG9yOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGFnZS9h
bmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGRTaG9ydGhh
bmRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6Omhhc1ZhbGlkQXZnQ2hhcldp
ZHRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwOgorICAgICAgICAqIHN2
Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlQW5kU2tpcFR5
cGUpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdWaWV3U3BlYzo6cGFyc2VWaWV3U3BlYyk6CisgICAgICAgICogc3ZnL1NWR1pvb21BbmRQYW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHWm9vbUFuZFBhbjo6cGFyc2Vab29tQW5kUGFuKToK
KyAgICAgICAgKiB4bWwvWFBhdGhGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBh
dGg6OmNyZWF0ZUZ1bmN0aW9uTWFwKToKKyAgICAgICAgKiB4bWwvWFBhdGhQYXJzZXIuY3BwOgor
CiAyMDEwLTExLTIxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCBjYWYxMmRjLi4zMjdhNzM2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
KysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC05
MzcsOSArOTM3LDggQEAgc3RhdGljIEFSSUFSb2xlTWFwKiBjcmVhdGVBUklBUm9sZU1hcCgpCiAg
ICAgICAgIHsgInRyZWVpdGVtIiwgVHJlZUl0ZW1Sb2xlIH0KICAgICB9OwogICAgIEFSSUFSb2xl
TWFwKiByb2xlTWFwID0gbmV3IEFSSUFSb2xlTWFwOwotICAgIAotICAgIGNvbnN0IHVuc2lnbmVk
IG51bVJvbGVzID0gc2l6ZW9mKHJvbGVzKSAvIHNpemVvZihyb2xlc1swXSk7Ci0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG51bVJvbGVzOyArK2kpCisKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IFdURl9BUlJBWV9MRU5HVEgocm9sZXMpOyArK2kpCiAgICAgICAgIHJvbGVNYXAtPnNl
dChyb2xlc1tpXS5hcmlhUm9sZSwgcm9sZXNbaV0ud2ViY29yZVJvbGUpOwogICAgIHJldHVybiBy
b2xlTWFwOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IGE3
MmVjZTYuLmFkNGUyZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAK
QEAgLTYwLDcgKzYwLDcgQEAgSlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UoTm9uTnVs
bFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFBhc3NSZWYKICAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAid2luZG93IiksIGQoKS0+c2hl
bGwsIERvbnREZWxldGUgfCBSZWFkT25seSkKICAgICB9OwogICAgIAotICAgIGFkZFN0YXRpY0ds
b2JhbHMoc3RhdGljR2xvYmFscywgc2l6ZW9mKHN0YXRpY0dsb2JhbHMpIC8gc2l6ZW9mKEdsb2Jh
bFByb3BlcnR5SW5mbykpOworICAgIGFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFscywgV1RG
X0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3dCYXNl
Ojp1cGRhdGVEb2N1bWVudCgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQppbmRleCA5MDM0MWI4Li42ZWE2MWJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTE5MTYsNyArMTkxNiw3IEBAIEVORAogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwogc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpP
YmplY3RUZW1wbGF0ZT4gQ29uZmlndXJlU2hhZG93T2JqZWN0VGVtcGxhdGUodjg6OlBlcnNpc3Rl
bnQ8djg6Ok9iamVjdFRlbXBsYXRlPiB0ZW1wbCkKIHsKLSAgICBiYXRjaENvbmZpZ3VyZUF0dHJp
YnV0ZXModGVtcGwsIHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPigpLCBzaGFkb3dBdHRy
cywgc2l6ZW9mKHNoYWRvd0F0dHJzKSAvIHNpemVvZigqc2hhZG93QXR0cnMpKTsKKyAgICBiYXRj
aENvbmZpZ3VyZUF0dHJpYnV0ZXModGVtcGwsIHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRl
PigpLCBzaGFkb3dBdHRycywgV1RGX0FSUkFZX0xFTkdUSChzaGFkb3dBdHRycykpOwogCiAgICAg
Ly8gSW5zdGFsbCBhIHNlY3VyaXR5IGhhbmRsZXIgd2l0aCBWOC4KICAgICB0ZW1wbC0+U2V0QWNj
ZXNzQ2hlY2tDYWxsYmFja3MoVjhET01XaW5kb3c6Om5hbWVkU2VjdXJpdHlDaGVjaywgVjhET01X
aW5kb3c6OmluZGV4ZWRTZWN1cml0eUNoZWNrLCB2ODo6RXh0ZXJuYWw6OldyYXAoJlY4RE9NV2lu
ZG93OjppbmZvKSk7CkBAIC0xOTQ4LDcgKzE5NDgsNyBAQCBFTkQKICAgICAjIFNldCB1cCBvdXIg
YXR0cmlidXRlcyBpZiB3ZSBoYXZlIHRoZW0KICAgICBpZiAoJGhhc19hdHRyaWJ1dGVzKSB7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7Ci0gICAgICAgICR7aW50ZXJmYWNlTmFt
ZX1BdHRycywgc2l6ZW9mKCR7aW50ZXJmYWNlTmFtZX1BdHRycykgLyBzaXplb2YoKiR7aW50ZXJm
YWNlTmFtZX1BdHRycyksCisgICAgICAgICR7aW50ZXJmYWNlTmFtZX1BdHRycywgV1RGX0FSUkFZ
X0xFTkdUSCgke2ludGVyZmFjZU5hbWV9QXR0cnMpLAogRU5ECiAgICAgfSBlbHNlIHsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKQEAgLTE5NTgsNyArMTk1OCw3IEBAIEVORAog
CiAgICAgaWYgKCRoYXNfY2FsbGJhY2tzKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8
PEVORCk7Ci0gICAgICAgICR7aW50ZXJmYWNlTmFtZX1DYWxsYmFja3MsIHNpemVvZigke2ludGVy
ZmFjZU5hbWV9Q2FsbGJhY2tzKSAvIHNpemVvZigqJHtpbnRlcmZhY2VOYW1lfUNhbGxiYWNrcykp
OworICAgICAgICAke2ludGVyZmFjZU5hbWV9Q2FsbGJhY2tzLCBXVEZfQVJSQVlfTEVOR1RIKCR7
aW50ZXJmYWNlTmFtZX1DYWxsYmFja3MpKTsKIEVORAogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCA8PEVORCk7CkBAIC0yMDk2LDcgKzIwOTYsNyBAQCBFTkQKIAogICAg
IGlmICgkaGFzX2NvbnN0YW50cykgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQp
OwotICAgIGJhdGNoQ29uZmlndXJlQ29uc3RhbnRzKGRlc2MsIHByb3RvLCAke2ludGVyZmFjZU5h
bWV9Q29uc3RzLCBzaXplb2YoJHtpbnRlcmZhY2VOYW1lfUNvbnN0cykgLyBzaXplb2YoKiR7aW50
ZXJmYWNlTmFtZX1Db25zdHMpKTsKKyAgICBiYXRjaENvbmZpZ3VyZUNvbnN0YW50cyhkZXNjLCBw
cm90bywgJHtpbnRlcmZhY2VOYW1lfUNvbnN0cywgV1RGX0FSUkFZX0xFTkdUSCgke2ludGVyZmFj
ZU5hbWV9Q29uc3RzKSk7CiBFTkQKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IGUzZDkyNGEuLmM0YTc2YWMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMTI1Myw4
ICsxMjUzLDggQEAgQ09NUElMRV9BU1NFUlQoMHgxYWJjID09IFRlc3RPYmo6OkNPTlNUX1ZBTFVF
XzE0LCBUZXN0T2JqRW51bUNPTlNUX1ZBTFVFXzE0SXNXcm8KIHN0YXRpYyB2ODo6UGVyc2lzdGVu
dDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUodjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MpCiB7CiAgICAgdjg6OkxvY2FsPHY4
OjpTaWduYXR1cmU+IGRlZmF1bHRTaWduYXR1cmUgPSBjb25maWd1cmVUZW1wbGF0ZShkZXNjLCAi
VGVzdE9iaiIsIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RP
Ymo6OmludGVybmFsRmllbGRDb3VudCwKLSAgICAgICAgVGVzdE9iakF0dHJzLCBzaXplb2YoVGVz
dE9iakF0dHJzKSAvIHNpemVvZigqVGVzdE9iakF0dHJzKSwKLSAgICAgICAgVGVzdE9iakNhbGxi
YWNrcywgc2l6ZW9mKFRlc3RPYmpDYWxsYmFja3MpIC8gc2l6ZW9mKCpUZXN0T2JqQ2FsbGJhY2tz
KSk7CisgICAgICAgIFRlc3RPYmpBdHRycywgV1RGX0FSUkFZX0xFTkdUSChUZXN0T2JqQXR0cnMp
LAorICAgICAgICBUZXN0T2JqQ2FsbGJhY2tzLCBXVEZfQVJSQVlfTEVOR1RIKFRlc3RPYmpDYWxs
YmFja3MpKTsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdFRlbXBsYXRlPiBpbnN0YW5jZSA9IGRl
c2MtPkluc3RhbmNlVGVtcGxhdGUoKTsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdFRlbXBsYXRl
PiBwcm90byA9IGRlc2MtPlByb3RvdHlwZVRlbXBsYXRlKCk7CiAgICAgCkBAIC0xMzEyLDcgKzEz
MTIsNyBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZp
Z3VyZVY4VGVzdE9ialRlbXBsYXRlKHY4OjpQZXJzaQogICAgICAgICBwcm90by0+U2V0KHY4OjpT
dHJpbmc6Ok5ldygiZW5hYmxlZEF0UnVudGltZU1ldGhvZDEiKSwgdjg6OkZ1bmN0aW9uVGVtcGxh
dGU6Ok5ldyhUZXN0T2JqSW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2ss
IHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCBkZWZhdWx0U2lnbmF0dXJlKSk7CiAgICAgaWYgKFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZlYXR1cmVOYW1lRW5hYmxlZCgpKQogICAgICAgICBwcm90
by0+U2V0KHY4OjpTdHJpbmc6Ok5ldygiZW5hYmxlZEF0UnVudGltZU1ldGhvZDIiKSwgdjg6OkZ1
bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqSW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRo
b2QyQ2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCBkZWZhdWx0U2lnbmF0dXJlKSk7
Ci0gICAgYmF0Y2hDb25maWd1cmVDb25zdGFudHMoZGVzYywgcHJvdG8sIFRlc3RPYmpDb25zdHMs
IHNpemVvZihUZXN0T2JqQ29uc3RzKSAvIHNpemVvZigqVGVzdE9iakNvbnN0cykpOworICAgIGJh
dGNoQ29uZmlndXJlQ29uc3RhbnRzKGRlc2MsIHByb3RvLCBUZXN0T2JqQ29uc3RzLCBXVEZfQVJS
QVlfTEVOR1RIKFRlc3RPYmpDb25zdHMpKTsKIAogICAgIC8vIEN1c3RvbSB0b1N0cmluZyB0ZW1w
bGF0ZQogICAgIGRlc2MtPlNldChnZXRUb1N0cmluZ05hbWUoKSwgZ2V0VG9TdHJpbmdUZW1wbGF0
ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4
IGNkY2QzZDYuLmM4MDQ2OTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcApAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBjb25zdCBpbnQgY29tcHV0ZWRQ
cm9wZXJ0aWVzW10gPSB7CiAjZW5kaWYKIH07CiAKLWNvbnN0IHVuc2lnbmVkIG51bUNvbXB1dGVk
UHJvcGVydGllcyA9IHNpemVvZihjb21wdXRlZFByb3BlcnRpZXMpIC8gc2l6ZW9mKGNvbXB1dGVk
UHJvcGVydGllc1swXSk7Citjb25zdCB1bnNpZ25lZCBudW1Db21wdXRlZFByb3BlcnRpZXMgPSBX
VEZfQVJSQVlfTEVOR1RIKGNvbXB1dGVkUHJvcGVydGllcyk7CiAKIHN0YXRpYyBpbnQgdmFsdWVG
b3JSZXBlYXRSdWxlKGludCBydWxlKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24uY3BwCmluZGV4IDQ3ODA5YzIuLjA5NjU1YWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Y3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTE0Miw4ICsxNDIsNyBAQCBTdHJpbmcgQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5VmFsdWUoaW50IHByb3BlcnR5SUQp
IGNvbnN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTU1By
b3BlcnR5Qm9yZGVyQm90dG9tQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yIH19OwogICAgICAgICAgICAg
U3RyaW5nIHJlczsKLSAgICAgICAgICAgIGNvbnN0IGludCBucnByb3BzID0gc2l6ZW9mKHByb3Bl
cnRpZXMpIC8gc2l6ZW9mKHByb3BlcnRpZXNbMF0pOwotICAgICAgICAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBucnByb3BzOyArK2kpIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgV1RGX0FSUkFZX0xFTkdUSChwcm9wZXJ0aWVzKTsgKytpKSB7CiAgICAgICAgICAgICAgICAg
U3RyaW5nIHZhbHVlID0gZ2V0Q29tbW9uVmFsdWUocHJvcGVydGllc1tpXSwgNCk7CiAgICAgICAg
ICAgICAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAo
IXJlcy5pc051bGwoKSkKQEAgLTc1OCw3ICs3NTcsNyBAQCBzdGF0aWMgY29uc3QgaW50IGJsb2Nr
UHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5V2lkb3dzCiB9OwogCi1jb25zdCB1bnNp
Z25lZCBudW1CbG9ja1Byb3BlcnRpZXMgPSBzaXplb2YoYmxvY2tQcm9wZXJ0aWVzKSAvIHNpemVv
ZihibG9ja1Byb3BlcnRpZXNbMF0pOworY29uc3QgdW5zaWduZWQgbnVtQmxvY2tQcm9wZXJ0aWVz
ID0gV1RGX0FSUkFZX0xFTkdUSChibG9ja1Byb3BlcnRpZXMpOwogCiBQYXNzUmVmUHRyPENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uPiBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y29weUJs
b2NrUHJvcGVydGllcygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA4MzYxMTNlLi43YjM0ZWY3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKQEAgLTIwMDIsNyArMjAwMiw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZUFuaW1hdGlvblNob3J0aGFuZChib29sIGltcG9ydGFudCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25E
aXJlY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTU1Byb3BlcnR5V2Vi
a2l0QW5pbWF0aW9uRmlsbE1vZGUgfTsKLSAgICBjb25zdCBpbnQgbnVtUHJvcGVydGllcyA9IHNp
emVvZihwcm9wZXJ0aWVzKSAvIHNpemVvZihwcm9wZXJ0aWVzWzBdKTsKKyAgICBjb25zdCBpbnQg
bnVtUHJvcGVydGllcyA9IFdURl9BUlJBWV9MRU5HVEgocHJvcGVydGllcyk7CiAKICAgICBTaG9y
dGhhbmRTY29wZSBzY29wZSh0aGlzLCBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbik7CiAKQEAg
LTIwNjAsNyArMjA2MCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVRyYW5zaXRpb25TaG9ydGhh
bmQoYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJv
cGVydHlXZWJraXRUcmFuc2l0aW9uRHVyYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb24sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uRGVsYXkg
fTsKLSAgICBjb25zdCBpbnQgbnVtUHJvcGVydGllcyA9IHNpemVvZihwcm9wZXJ0aWVzKSAvIHNp
emVvZihwcm9wZXJ0aWVzWzBdKTsKKyAgICBjb25zdCBpbnQgbnVtUHJvcGVydGllcyA9IFdURl9B
UlJBWV9MRU5HVEgocHJvcGVydGllcyk7CiAKICAgICBTaG9ydGhhbmRTY29wZSBzY29wZSh0aGlz
LCBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb24pOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TG9uZ2hh
bmQuY3BwCmluZGV4IGFjY2EwMzYuLjRkZjVkNjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5TG9uZ2hhbmQuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TG9uZ2hh
bmQuY3BwCkBAIC0zMiw3ICszMiw3IEBAIHR5cGVkZWYgSGFzaE1hcDxpbnQsIENTU1Byb3BlcnR5
TG9uZ2hhbmQ+IFNob3J0aGFuZE1hcDsKIHN0YXRpYyB2b2lkIGluaXRTaG9ydGhhbmRNYXAoU2hv
cnRoYW5kTWFwJiBzaG9ydGhhbmRNYXApCiB7CiAgICAgI2RlZmluZSBTRVRfU0hPUlRIQU5EX01B
UF9FTlRSWShtYXAsIHByb3BJRCwgYXJyYXkpIFwKLSAgICAgICAgbWFwLnNldChwcm9wSUQsIENT
U1Byb3BlcnR5TG9uZ2hhbmQoYXJyYXksIHNpemVvZihhcnJheSkgLyBzaXplb2YoYXJyYXlbMF0p
KSkKKyAgICAgICAgbWFwLnNldChwcm9wSUQsIENTU1Byb3BlcnR5TG9uZ2hhbmQoYXJyYXksIFdU
Rl9BUlJBWV9MRU5HVEgoYXJyYXkpKSkKIAogICAgIC8vIEZJWE1FOiBUaGUgJ2ZvbnQnIHByb3Bl
cnR5IGhhcyAic2hvcnRoYW5kIG5hdHVyZSIgYnV0IGlzIG5vdCBwYXJzZWQgYXMgYSBzaG9ydGhh
bmQuCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwIGIvV2ViQ29y
ZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAKaW5kZXggZjA0OGZlNS4uYWQ0ZmI2ZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAKKysrIGIvV2ViQ29yZS9kb20vRXhjZXB0
aW9uQ29kZS5jcHAKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIGdldEV4Y2VwdGlvbkNvZGVEZXNj
cmlwdGlvbihFeGNlcHRpb25Db2RlIGVjLCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24mIGRlcwog
ICAgICAgICBjb2RlIC09IFJhbmdlRXhjZXB0aW9uOjpSYW5nZUV4Y2VwdGlvbk9mZnNldDsKICAg
ICAgICAgbmFtZVRhYmxlID0gcmFuZ2VFeGNlcHRpb25OYW1lczsKICAgICAgICAgZGVzY3JpcHRp
b25UYWJsZSA9IHJhbmdlRXhjZXB0aW9uRGVzY3JpcHRpb25zOwotICAgICAgICBuYW1lVGFibGVT
aXplID0gc2l6ZW9mKHJhbmdlRXhjZXB0aW9uTmFtZXMpIC8gc2l6ZW9mKHJhbmdlRXhjZXB0aW9u
TmFtZXNbMF0pOworICAgICAgICBuYW1lVGFibGVTaXplID0gV1RGX0FSUkFZX0xFTkdUSChyYW5n
ZUV4Y2VwdGlvbk5hbWVzKTsKICAgICAgICAgbmFtZVRhYmxlT2Zmc2V0ID0gUmFuZ2VFeGNlcHRp
b246OkJBRF9CT1VOREFSWVBPSU5UU19FUlI7CiAgICAgfSBlbHNlIGlmIChjb2RlID49IEV2ZW50
RXhjZXB0aW9uOjpFdmVudEV4Y2VwdGlvbk9mZnNldCAmJiBjb2RlIDw9IEV2ZW50RXhjZXB0aW9u
OjpFdmVudEV4Y2VwdGlvbk1heCkgewogICAgICAgICB0eXBlID0gRXZlbnRFeGNlcHRpb25UeXBl
OwpAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKEV4
Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiYgZGVzCiAgICAgICAgIGNv
ZGUgLT0gRXZlbnRFeGNlcHRpb246OkV2ZW50RXhjZXB0aW9uT2Zmc2V0OwogICAgICAgICBuYW1l
VGFibGUgPSBldmVudEV4Y2VwdGlvbk5hbWVzOwogICAgICAgICBkZXNjcmlwdGlvblRhYmxlID0g
ZXZlbnRFeGNlcHRpb25EZXNjcmlwdGlvbnM7Ci0gICAgICAgIG5hbWVUYWJsZVNpemUgPSBzaXpl
b2YoZXZlbnRFeGNlcHRpb25OYW1lcykgLyBzaXplb2YoZXZlbnRFeGNlcHRpb25OYW1lc1swXSk7
CisgICAgICAgIG5hbWVUYWJsZVNpemUgPSBXVEZfQVJSQVlfTEVOR1RIKGV2ZW50RXhjZXB0aW9u
TmFtZXMpOwogICAgICAgICBuYW1lVGFibGVPZmZzZXQgPSBFdmVudEV4Y2VwdGlvbjo6VU5TUEVD
SUZJRURfRVZFTlRfVFlQRV9FUlI7CiAgICAgfSBlbHNlIGlmIChjb2RlID49IFhNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uOjpYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk9mZnNldCAmJiBjb2RlIDw9IFhN
TEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjpYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk1heCkgewogICAg
ICAgICB0eXBlID0gWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25UeXBlOwpAQCAtMjQzLDcgKzI0Myw3
IEBAIHZvaWQgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiYgZGVzCiAgICAgICAgIGNvZGUgLT0gWE1MSHR0cFJlcXVl
c3RFeGNlcHRpb246OlhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uT2Zmc2V0OwogICAgICAgICBuYW1l
VGFibGUgPSB4bWxIdHRwUmVxdWVzdEV4Y2VwdGlvbk5hbWVzOwogICAgICAgICBkZXNjcmlwdGlv
blRhYmxlID0geG1sSHR0cFJlcXVlc3RFeGNlcHRpb25EZXNjcmlwdGlvbnM7Ci0gICAgICAgIG5h
bWVUYWJsZVNpemUgPSBzaXplb2YoeG1sSHR0cFJlcXVlc3RFeGNlcHRpb25OYW1lcykgLyBzaXpl
b2YoeG1sSHR0cFJlcXVlc3RFeGNlcHRpb25OYW1lc1swXSk7CisgICAgICAgIG5hbWVUYWJsZVNp
emUgPSBXVEZfQVJSQVlfTEVOR1RIKHhtbEh0dHBSZXF1ZXN0RXhjZXB0aW9uTmFtZXMpOwogICAg
ICAgICAvLyBYTUxIdHRwUmVxdWVzdCBleGNlcHRpb24gY29kZXMgc3RhcnQgd2l0aCAxMDEgYW5k
IHdlIGRvbid0IHdhbnQgMTAwIGVtcHR5IGVsZW1lbnRzIGluIHRoZSBuYW1lIGFycmF5CiAgICAg
ICAgIG5hbWVUYWJsZU9mZnNldCA9IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjpORVRXT1JLX0VS
UjsKICNpZiBFTkFCTEUoWFBBVEgpCkBAIC0yNTMsNyArMjUzLDcgQEAgdm9pZCBnZXRFeGNlcHRp
b25Db2RlRGVzY3JpcHRpb24oRXhjZXB0aW9uQ29kZSBlYywgRXhjZXB0aW9uQ29kZURlc2NyaXB0
aW9uJiBkZXMKICAgICAgICAgY29kZSAtPSBYUGF0aEV4Y2VwdGlvbjo6WFBhdGhFeGNlcHRpb25P
ZmZzZXQ7CiAgICAgICAgIG5hbWVUYWJsZSA9IHhwYXRoRXhjZXB0aW9uTmFtZXM7CiAgICAgICAg
IGRlc2NyaXB0aW9uVGFibGUgPSB4cGF0aEV4Y2VwdGlvbkRlc2NyaXB0aW9uczsKLSAgICAgICAg
bmFtZVRhYmxlU2l6ZSA9IHNpemVvZih4cGF0aEV4Y2VwdGlvbk5hbWVzKSAvIHNpemVvZih4cGF0
aEV4Y2VwdGlvbk5hbWVzWzBdKTsKKyAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IFdURl9BUlJBWV9M
RU5HVEgoeHBhdGhFeGNlcHRpb25OYW1lcyk7CiAgICAgICAgIC8vIFhQYXRoIGV4Y2VwdGlvbiBj
b2RlcyBzdGFydCB3aXRoIDUxIGFuZCB3ZSBkb24ndCB3YW50IDUxIGVtcHR5IGVsZW1lbnRzIGlu
IHRoZSBuYW1lIGFycmF5CiAgICAgICAgIG5hbWVUYWJsZU9mZnNldCA9IFhQYXRoRXhjZXB0aW9u
OjpJTlZBTElEX0VYUFJFU1NJT05fRVJSOwogI2VuZGlmCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9p
ZCBnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oRXhjZXB0aW9uQ29kZSBlYywgRXhjZXB0aW9u
Q29kZURlc2NyaXB0aW9uJiBkZXMKICAgICAgICAgY29kZSAtPSBTVkdFeGNlcHRpb246OlNWR0V4
Y2VwdGlvbk9mZnNldDsKICAgICAgICAgbmFtZVRhYmxlID0gc3ZnRXhjZXB0aW9uTmFtZXM7CiAg
ICAgICAgIGRlc2NyaXB0aW9uVGFibGUgPSBzdmdFeGNlcHRpb25EZXNjcmlwdGlvbnM7Ci0gICAg
ICAgIG5hbWVUYWJsZVNpemUgPSBzaXplb2Yoc3ZnRXhjZXB0aW9uTmFtZXMpIC8gc2l6ZW9mKHN2
Z0V4Y2VwdGlvbk5hbWVzWzBdKTsKKyAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IFdURl9BUlJBWV9M
RU5HVEgoc3ZnRXhjZXB0aW9uTmFtZXMpOwogICAgICAgICBuYW1lVGFibGVPZmZzZXQgPSBTVkdF
eGNlcHRpb246OlNWR19XUk9OR19UWVBFX0VSUjsKICNlbmRpZgogI2lmIEVOQUJMRShEQVRBQkFT
RSkKQEAgLTI3NCw3ICsyNzQsNyBAQCB2b2lkIGdldEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihF
eGNlcHRpb25Db2RlIGVjLCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24mIGRlcwogICAgICAgICBj
b2RlIC09IFNRTEV4Y2VwdGlvbjo6U1FMRXhjZXB0aW9uT2Zmc2V0OwogICAgICAgICBuYW1lVGFi
bGUgPSBzcWxFeGNlcHRpb25OYW1lczsKICAgICAgICAgZGVzY3JpcHRpb25UYWJsZSA9IHNxbEV4
Y2VwdGlvbkRlc2NyaXB0aW9uczsKLSAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IHNpemVvZihzcWxF
eGNlcHRpb25OYW1lcykgLyBzaXplb2Yoc3FsRXhjZXB0aW9uTmFtZXNbMF0pOworICAgICAgICBu
YW1lVGFibGVTaXplID0gV1RGX0FSUkFZX0xFTkdUSChzcWxFeGNlcHRpb25OYW1lcyk7CiAgICAg
ICAgIG5hbWVUYWJsZU9mZnNldCA9IFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQpAQCAtMjg0LDcgKzI4NCw3
IEBAIHZvaWQgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiYgZGVzCiAgICAgICAgIGNvZGUgLT0gRmlsZUV4Y2VwdGlv
bjo6RmlsZUV4Y2VwdGlvbk9mZnNldDsKICAgICAgICAgbmFtZVRhYmxlID0gZmlsZUV4Y2VwdGlv
bk5hbWVzOwogICAgICAgICBkZXNjcmlwdGlvblRhYmxlID0gZmlsZUV4Y2VwdGlvbkRlc2NyaXB0
aW9uczsKLSAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IHNpemVvZihmaWxlRXhjZXB0aW9uTmFtZXMp
IC8gc2l6ZW9mKGZpbGVFeGNlcHRpb25OYW1lc1swXSk7CisgICAgICAgIG5hbWVUYWJsZVNpemUg
PSBXVEZfQVJSQVlfTEVOR1RIKGZpbGVFeGNlcHRpb25OYW1lcyk7CiAgICAgICAgIG5hbWVUYWJs
ZU9mZnNldCA9IEZpbGVFeGNlcHRpb246Ok5PVF9GT1VORF9FUlI7CiAjZW5kaWYKICAgICB9IGVs
c2UgewpAQCAtMjkyLDcgKzI5Miw3IEBAIHZvaWQgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9u
KEV4Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiYgZGVzCiAgICAgICAg
IHR5cGVOYW1lID0gIkRPTSI7CiAgICAgICAgIG5hbWVUYWJsZSA9IGV4Y2VwdGlvbk5hbWVzOwog
ICAgICAgICBkZXNjcmlwdGlvblRhYmxlID0gZXhjZXB0aW9uRGVzY3JpcHRpb25zOwotICAgICAg
ICBuYW1lVGFibGVTaXplID0gc2l6ZW9mKGV4Y2VwdGlvbk5hbWVzKSAvIHNpemVvZihleGNlcHRp
b25OYW1lc1swXSk7CisgICAgICAgIG5hbWVUYWJsZVNpemUgPSBXVEZfQVJSQVlfTEVOR1RIKGV4
Y2VwdGlvbk5hbWVzKTsKICAgICAgICAgbmFtZVRhYmxlT2Zmc2V0ID0gSU5ERVhfU0laRV9FUlI7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQu
Y3BwIGIvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCBjNGFhYWM4
Li5jNDNhNTc0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQu
Y3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTEyNDIs
NyArMTI0Miw3IEBAIGJvb2wgQXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUltcGxpY2l0bHlTdHls
ZWRFbGVtZW50KENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uCiAgICAgLy8gQ3VycmVudCBpbXBs
ZW1lbnRhdGlvbiBkb2VzIG5vdCBzdXBwb3J0IHN0eWxlUHVzaGVkRG93biB3aGVuIG1vZGUgPT0g
UmVtb3ZlTm9uZSBiZWNhdXNlIG9mIGVhcmx5IGV4aXQuCiAgICAgQVNTRVJUKCFleHRyYWN0ZWRT
dHlsZSB8fCBtb2RlICE9IFJlbW92ZU5vbmUpOwogICAgIGJvb2wgcmVtb3ZlZCA9IGZhbHNlOwot
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKEhUTUxFcXVpdmFsZW50cykgLyBzaXpl
b2YoSFRNTEVxdWl2YWxlbnQpOyBpKyspIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdU
Rl9BUlJBWV9MRU5HVEgoSFRNTEVxdWl2YWxlbnRzKTsgKytpKSB7CiAgICAgICAgIGNvbnN0IEhU
TUxFcXVpdmFsZW50JiBlcXVpdmFsZW50ID0gSFRNTEVxdWl2YWxlbnRzW2ldOwogICAgICAgICBB
U1NFUlQoZXF1aXZhbGVudC5lbGVtZW50IHx8IGVxdWl2YWxlbnQuYXR0cmlidXRlKTsKICAgICAg
ICAgaWYgKChleHRyYWN0ZWRTdHlsZSAmJiBlcXVpdmFsZW50LnB1c2hEb3duVHlwZSA9PSBTaG91
bGROb3RCZVB1c2hlZERvd24pCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0
eWxlLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDlkYTMzN2Yu
LjRhNTVkYWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCisr
KyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHN0
YXRpYyBjb25zdCBpbnQgZWRpdGluZ1N0eWxlUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3Bl
cnR5V2Via2l0VGV4dFN0cm9rZUNvbG9yLAogICAgIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9r
ZVdpZHRoLAogfTsKLXNpemVfdCBudW1FZGl0aW5nU3R5bGVQcm9wZXJ0aWVzID0gc2l6ZW9mKGVk
aXRpbmdTdHlsZVByb3BlcnRpZXMpIC8gc2l6ZW9mKGVkaXRpbmdTdHlsZVByb3BlcnRpZXNbMF0p
Oworc2l6ZV90IG51bUVkaXRpbmdTdHlsZVByb3BlcnRpZXMgPSBXVEZfQVJSQVlfTEVOR1RIKGVk
aXRpbmdTdHlsZVByb3BlcnRpZXMpOwogCiBzdGF0aWMgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbj4gY29weUVkaXRpbmdQcm9wZXJ0aWVzKENTU1N0eWxlRGVjbGFyYXRpb24q
IHN0eWxlKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBhYWQ4NzJjLi4xNWJhZDcwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcApAQCAtOTI5LDcgKzkyOSw3IEBAIHN0YXRpYyBUcmlTdGF0ZSB0cmlTdGF0ZU9mU3R5bGUo
Q1NTU3R5bGVEZWNsYXJhdGlvbiogZGVzaXJlZFN0eWxlLCBDU1NTdHlsZURlY2xhCiAgICAgUmVm
UHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBkaWZmID0gZ2V0UHJvcGVydGllc05vdElu
KGRlc2lyZWRTdHlsZSwgc3R5bGVUb0NvbXBhcmUpOwogCiAgICAgaWYgKGlnbm9yZVRleHRPbmx5
UHJvcGVydGllcykKLSAgICAgICAgZGlmZi0+cmVtb3ZlUHJvcGVydGllc0luU2V0KHRleHRPbmx5
UHJvcGVydGllcywgc2l6ZW9mKHRleHRPbmx5UHJvcGVydGllcykgLyBzaXplb2YodGV4dE9ubHlQ
cm9wZXJ0aWVzWzBdKSk7CisgICAgICAgIGRpZmYtPnJlbW92ZVByb3BlcnRpZXNJblNldCh0ZXh0
T25seVByb3BlcnRpZXMsIFdURl9BUlJBWV9MRU5HVEgodGV4dE9ubHlQcm9wZXJ0aWVzKSk7CiAK
ICAgICBpZiAoIWRpZmYtPmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gVHJ1ZVRyaVN0YXRlOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IGUzZWEzN2UuLmFiODM4MTcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTE1NTYsOCArMTU1Niw3IEBAIHN0YXRpYyBjb25zdCBD
b21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWFwKCkKIAogICAgIENvbW1hbmRNYXAmIGNvbW1hbmRN
YXAgPSAqbmV3IENvbW1hbmRNYXA7CiAKLSAgICBjb25zdCB1bnNpZ25lZCBudW1Db21tYW5kcyA9
IHNpemVvZihjb21tYW5kcykgLyBzaXplb2YoY29tbWFuZHNbMF0pOwotICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBudW1Db21tYW5kczsgaSsrKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGNvbW1hbmRzKTsgKytpKSB7CiAgICAgICAgIEFTU0VSVCgh
Y29tbWFuZE1hcC5nZXQoY29tbWFuZHNbaV0ubmFtZSkpOwogICAgICAgICBjb21tYW5kTWFwLnNl
dChjb21tYW5kc1tpXS5uYW1lLCAmY29tbWFuZHNbaV0uY29tbWFuZCk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1dlYkNvcmUvZWRp
dGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKaW5kZXggYTcwMTE4OS4uZjZkYmQ4YiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAorKysgYi9XZWJDb3Jl
L2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC02MCw4ICs2MCw4IEBAIHZvaWQgYXBw
ZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzKFZlY3RvcjxVQ2hhcj4mIG91dCwgY29uc3Qg
VUNoYXIqIGNvbnRlbnQsCiAgICAgfTsKIAogICAgIHNpemVfdCBwb3NpdGlvbkFmdGVyTGFzdEVu
dGl0eSA9IDA7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAg
ICAgICBmb3IgKHNpemVfdCBtID0gMDsgbSA8IHNpemVvZihlbnRpdHlNYXBzKSAvIHNpemVvZihF
bnRpdHlEZXNjcmlwdGlvbik7IG0rKykgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgZm9yIChzaXplX3QgbSA9IDA7IG0gPCBXVEZfQVJSQVlfTEVO
R1RIKGVudGl0eU1hcHMpOyArK20pIHsKICAgICAgICAgICAgIGlmIChjb250ZW50W2ldID09IGVu
dGl0eU1hcHNbbV0uZW50aXR5ICYmIGVudGl0eU1hcHNbbV0ubWFzayAmIGVudGl0eU1hc2spIHsK
ICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGNvbnRlbnQgKyBwb3NpdGlvbkFmdGVyTGFzdEVu
dGl0eSwgaSAtIHBvc2l0aW9uQWZ0ZXJMYXN0RW50aXR5KTsKICAgICAgICAgICAgICAgICBhcHBl
bmQob3V0LCBlbnRpdHlNYXBzW21dLnJlZmVyZW5jZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZm
ZXIuY3BwCmluZGV4IDk5ZDljYWQuLjM2ZWYwNDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xCdWZmZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZm
ZXIuY3BwCkBAIC0xNzAsOCArMTcwLDcgQEAgdW5zaWduZWQgV2ViR0xCdWZmZXI6OmJ5dGVMZW5n
dGgoKSBjb25zdAogCiBsb25nIFdlYkdMQnVmZmVyOjpnZXRDYWNoZWRNYXhJbmRleCh1bnNpZ25l
ZCBsb25nIHR5cGUpCiB7Ci0gICAgc2l6ZV90IG51bUVudHJpZXMgPSBzaXplb2YobV9tYXhJbmRl
eENhY2hlKSAvIHNpemVvZihNYXhJbmRleENhY2hlRW50cnkpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbnVtRW50cmllczsgaSsrKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RG
X0FSUkFZX0xFTkdUSChtX21heEluZGV4Q2FjaGUpOyArK2kpCiAgICAgICAgIGlmIChtX21heElu
ZGV4Q2FjaGVbaV0udHlwZSA9PSB0eXBlKQogICAgICAgICAgICAgcmV0dXJuIG1fbWF4SW5kZXhD
YWNoZVtpXS5tYXhJbmRleDsKICAgICByZXR1cm4gLTE7CkBAIC0xNzksOCArMTc4LDggQEAgbG9u
ZyBXZWJHTEJ1ZmZlcjo6Z2V0Q2FjaGVkTWF4SW5kZXgodW5zaWduZWQgbG9uZyB0eXBlKQogCiB2
b2lkIFdlYkdMQnVmZmVyOjpzZXRDYWNoZWRNYXhJbmRleCh1bnNpZ25lZCBsb25nIHR5cGUsIGxv
bmcgdmFsdWUpCiB7Ci0gICAgaW50IG51bUVudHJpZXMgPSBzaXplb2YobV9tYXhJbmRleENhY2hl
KSAvIHNpemVvZihNYXhJbmRleENhY2hlRW50cnkpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
bnVtRW50cmllczsgaSsrKQorICAgIHNpemVfdCBudW1FbnRyaWVzID0gV1RGX0FSUkFZX0xFTkdU
SChtX21heEluZGV4Q2FjaGUpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtRW50cmll
czsgKytpKQogICAgICAgICBpZiAobV9tYXhJbmRleENhY2hlW2ldLnR5cGUgPT0gdHlwZSkgewog
ICAgICAgICAgICAgbV9tYXhJbmRleENhY2hlW2ldLm1heEluZGV4ID0gdmFsdWU7CiAgICAgICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlQYXJz
ZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2VyLmNwcAppbmRleCBmNmE3
NGRlLi42YTA1YzRjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlQYXJz
ZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeVBhcnNlci5jcHAKQEAgLTEx
Nyw3ICsxMTcsNyBAQCBGVFBFbnRyeVR5cGUgcGFyc2VPbmVGVFBMaW5lKGNvbnN0IGNoYXIqIGxp
bmUsIExpc3RTdGF0ZSYgc3RhdGUsIExpc3RSZXN1bHQmIHJlcwogICB7CiAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKm1vbnRoX25hbWVzID0gIkphbkZlYk1hckFwck1heUp1bkp1bEF1Z1NlcE9jdE5v
dkRlYyI7CiAgICAgY29uc3QgY2hhciAqdG9rZW5zWzE2XTsgLyogMTYgaXMgbW9yZSB0aGFuIGVu
b3VnaCAqLwotICAgIHVuc2lnbmVkIGludCB0b2tsZW5bKHNpemVvZih0b2tlbnMpL3NpemVvZih0
b2tlbnNbMF0pKV07CisgICAgdW5zaWduZWQgaW50IHRva2xlbltXVEZfQVJSQVlfTEVOR1RIKHRv
a2VucyldOwogICAgIHVuc2lnbmVkIGludCBsaW5lbGVuX3NhbnNfd3NwOyAgLy8gbGluZSBsZW5n
dGggc2FucyB3aGl0ZXNwYWNlCiAgICAgdW5zaWduZWQgaW50IG51bXRva3MgPSAwOwogICAgIHVu
c2lnbmVkIGludCB0b2ttYXJrZXIgPSAwOyAvKiBleHRyYSBpbmZvIGZvciBsc3R5bGUgaGFuZGxl
ciAqLwpAQCAtMTMzLDcgKzEzMyw3IEBAIEZUUEVudHJ5VHlwZSBwYXJzZU9uZUZUUExpbmUoY29u
c3QgY2hhciogbGluZSwgTGlzdFN0YXRlJiBzdGF0ZSwgTGlzdFJlc3VsdCYgcmVzCiAgICAgfQog
CiAgICAgdW5zaWduZWQgaW50IHBvcyA9IDA7Ci0gICAgd2hpbGUgKHBvcyA8IGxpbmVsZW4gJiYg
bnVtdG9rcyA8IChzaXplb2YodG9rZW5zKS9zaXplb2YodG9rZW5zWzBdKSkgKQorICAgIHdoaWxl
IChwb3MgPCBsaW5lbGVuICYmIG51bXRva3MgPCBXVEZfQVJSQVlfTEVOR1RIKHRva2VucykpCiAg
ICAgewogICAgICAgd2hpbGUgKHBvcyA8IGxpbmVsZW4gJiYgCiAgICAgICAgICAgICAobGluZVtw
b3NdID09ICcgJyB8fCBsaW5lW3Bvc10gPT0gJ1x0JyB8fCBsaW5lW3Bvc10gPT0gJ1xyJykpCkBA
IC0xNTYsNyArMTU2LDcgQEAgRlRQRW50cnlUeXBlIHBhcnNlT25lRlRQTGluZShjb25zdCBjaGFy
KiBsaW5lLCBMaXN0U3RhdGUmIHN0YXRlLCBMaXN0UmVzdWx0JiByZXMKICAgICAgIHJldHVybiBQ
YXJzaW5nRmFpbGVkKHN0YXRlKTsKIAogICAgIGxpbmVsZW5fc2Fuc193c3AgPSAmKHRva2Vuc1tu
dW10b2tzLTFdW3Rva2xlbltudW10b2tzLTFdXSkgLSB0b2tlbnNbMF07Ci0gICAgaWYgKG51bXRv
a3MgPT0gKHNpemVvZih0b2tlbnMpL3NpemVvZih0b2tlbnNbMF0pKSApCisgICAgaWYgKG51bXRv
a3MgPT0gV1RGX0FSUkFZX0xFTkdUSCh0b2tlbnMpKQogICAgIHsKICAgICAgIHBvcyA9IGxpbmVs
ZW47CiAgICAgICB3aGlsZSAocG9zID4gMCAmJiAobGluZVtwb3MtMV0gPT0gJyAnIHx8IGxpbmVb
cG9zLTFdID09ICdcdCcpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9tYXRobWwvUmVuZGVyTWF0aE1M
T3BlcmF0b3IuY3BwIGIvV2ViQ29yZS9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCmlu
ZGV4IDcyYzk5N2IuLjdmMDM5YjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbWF0aG1sL1JlbmRlck1h
dGhNTE9wZXJhdG9yLmNwcAorKysgYi9XZWJDb3JlL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRv
ci5jcHAKQEAgLTE2Miw3ICsxNjIsNyBAQCB2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjp1cGRh
dGVGcm9tRWxlbWVudCgpCiAgICAgCiAgICAgLy8gQ2hlY2sgZm9yIGEgc3RyZXRjaGFibGUgY2hh
cmFjdGVyLgogICAgIGlmICghc3RyZXRjaERpc2FibGVkICYmIGZpcnN0Q2hhcikgewotICAgICAg
ICBjb25zdCBpbnQgbWF4SW5kZXggPSBzaXplb2Yoc3RyZXRjaHlDaGFyYWN0ZXJzKSAvIHNpemVv
ZihzdHJldGNoeUNoYXJhY3RlcnNbMF0pOworICAgICAgICBjb25zdCBpbnQgbWF4SW5kZXggPSBX
VEZfQVJSQVlfTEVOR1RIKHN0cmV0Y2h5Q2hhcmFjdGVycyk7CiAgICAgICAgIGZvciAoaW5kZXgr
KzsgaW5kZXggPCBtYXhJbmRleDsgaW5kZXgrKykgewogICAgICAgICAgICAgaWYgKHN0cmV0Y2h5
Q2hhcmFjdGVyc1tpbmRleF0uY2hhcmFjdGVyID09IGZpcnN0Q2hhcikgewogICAgICAgICAgICAg
ICAgIGlzU3RyZXRjaHkgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25CYXNlLmNwcCBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFz
ZS5jcHAKaW5kZXggYWQ1MjU3ZS4uNjYxNzJmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkJhc2UuY3BwCkBAIC03NDQsNyArNzQ0LDcgQEAgc3RhdGljIHZvaWQgYWRkU2hvcnRo
YW5kUHJvcGVydGllcygpCiAgICAgICAgIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2lu
CiAgICAgfTsKIAotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplb2YoYW5pbWF0YWJs
ZVNob3J0aGFuZFByb3BlcnRpZXMpIC8gc2l6ZW9mKGFuaW1hdGFibGVTaG9ydGhhbmRQcm9wZXJ0
aWVzWzBdKTsgKytpKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVO
R1RIKGFuaW1hdGFibGVTaG9ydGhhbmRQcm9wZXJ0aWVzKTsgKytpKSB7CiAgICAgICAgIGludCBw
cm9wZXJ0eUlEID0gYW5pbWF0YWJsZVNob3J0aGFuZFByb3BlcnRpZXNbaV07CiAgICAgICAgIENT
U1Byb3BlcnR5TG9uZ2hhbmQgbG9uZ2hhbmQgPSBsb25naGFuZEZvclByb3BlcnR5KHByb3BlcnR5
SUQpOwogICAgICAgICBpZiAobG9uZ2hhbmQubGVuZ3RoKCkgPiAwKQpAQCAtNzU3LDcgKzc1Nyw3
IEBAIHN0YXRpYyB2b2lkIGFkZFNob3J0aGFuZFByb3BlcnRpZXMoKQogICAgICAgICBDU1NQcm9w
ZXJ0eUZvbnRXZWlnaHQKICAgICB9OwogCi0gICAgQ1NTUHJvcGVydHlMb25naGFuZCBmb250TG9u
Z2hhbmQoYW5pbWF0YWJsZUZvbnRQcm9wZXJ0aWVzLCBzaXplb2YoYW5pbWF0YWJsZUZvbnRQcm9w
ZXJ0aWVzKSAvIHNpemVvZihhbmltYXRhYmxlRm9udFByb3BlcnRpZXNbMF0pKTsKKyAgICBDU1NQ
cm9wZXJ0eUxvbmdoYW5kIGZvbnRMb25naGFuZChhbmltYXRhYmxlRm9udFByb3BlcnRpZXMsIFdU
Rl9BUlJBWV9MRU5HVEgoYW5pbWF0YWJsZUZvbnRQcm9wZXJ0aWVzKSk7CiAgICAgYWRkUHJvcGVy
dHlXcmFwcGVyKENTU1Byb3BlcnR5Rm9udCwgbmV3IFNob3J0aGFuZFByb3BlcnR5V3JhcHBlcihD
U1NQcm9wZXJ0eUZvbnQsIGZvbnRMb25naGFuZCkpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbC5jcHAKaW5kZXggOWI5ZTUxYS4uMjA0MGYxMCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sLmNwcApAQCAtNDkwLDExICs0OTAsMTEgQEAgc3RhdGljIGNv
bnN0IGNoYXIqIGZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldpZHRoW10gPSB7CiBib29sIFJl
bmRlclRleHRDb250cm9sOjpoYXNWYWxpZEF2Z0NoYXJXaWR0aChBdG9taWNTdHJpbmcgZmFtaWx5
KQogewogICAgIHN0YXRpYyBIYXNoU2V0PEF0b21pY1N0cmluZz4qIGZvbnRGYW1pbGllc1dpdGhJ
bnZhbGlkQ2hhcldpZHRoTWFwID0gMDsKLSAgICAKKwogICAgIGlmICghZm9udEZhbWlsaWVzV2l0
aEludmFsaWRDaGFyV2lkdGhNYXApIHsKICAgICAgICAgZm9udEZhbWlsaWVzV2l0aEludmFsaWRD
aGFyV2lkdGhNYXAgPSBuZXcgSGFzaFNldDxBdG9taWNTdHJpbmc+OwotICAgICAgICAKLSAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemVvZihmb250RmFtaWxpZXNXaXRoSW52YWxp
ZENoYXJXaWR0aCkgLyBzaXplb2YoZm9udEZhbWlsaWVzV2l0aEludmFsaWRDaGFyV2lkdGhbMF0p
OyBpKyspCisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RI
KGZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldpZHRoKTsgKytpKQogICAgICAgICAgICAgZm9u
dEZhbWlsaWVzV2l0aEludmFsaWRDaGFyV2lkdGhNYXAtPmFkZChBdG9taWNTdHJpbmcoZm9udEZh
bWlsaWVzV2l0aEludmFsaWRDaGFyV2lkdGhbaV0pKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFr
X2xpbmVzLmNwcAppbmRleCBjNmMxZGRkLi42YWMzYjZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9icmVha19saW5lcy5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGlu
ZXMuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDaGFyYWN0ZXJOYW1lcy5oIgog
I2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPENvcmVTZXJ2aWNlcy9Db3JlU2Vy
dmljZXMuaD4KQEAgLTExNCw4ICsxMTUsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBh
c2NpaUxpbmVCcmVha1RhYmxlW11bKGFzY2lpTGluZUJyZWFrVGFibGVMYXN0Q2hhciAtCiAjdW5k
ZWYgREkKICN1bmRlZiBBTAogCi1DT01QSUxFX0FTU0VSVChzaXplb2YoYXNjaWlMaW5lQnJlYWtU
YWJsZSkgLyBzaXplb2YoYXNjaWlMaW5lQnJlYWtUYWJsZVswXSkgPT0gYXNjaWlMaW5lQnJlYWtU
YWJsZUxhc3RDaGFyIC0gYXNjaWlMaW5lQnJlYWtUYWJsZUZpcnN0Q2hhciArIDEsCi0gICAgICAg
IFRlc3RMaW5lQnJlYWtUYWJsZUNvbnNpc3RlbmN5KTsKK0NPTVBJTEVfQVNTRVJUKFdURl9BUlJB
WV9MRU5HVEgoYXNjaWlMaW5lQnJlYWtUYWJsZSkgPT0gYXNjaWlMaW5lQnJlYWtUYWJsZUxhc3RD
aGFyIC0gYXNjaWlMaW5lQnJlYWtUYWJsZUZpcnN0Q2hhciArIDEsIFRlc3RMaW5lQnJlYWtUYWJs
ZUNvbnNpc3RlbmN5KTsKIAogc3RhdGljIGlubGluZSBib29sIHNob3VsZEJyZWFrQWZ0ZXIoVUNo
YXIgY2gsIFVDaGFyIG5leHRDaCkKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1RyYW5z
Zm9ybWFibGUuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHAKaW5kZXggMDA2
YmI5NC4uZTYzN2U3YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5j
cHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHAKQEAgLTE0MywyNSArMTQz
LDI1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXJzZUFuZFNraXBUeXBlKGNvbnN0IFVDaGFyKiYg
Y3VyclRyYW5zZm9ybSwgY29uc3QgVUNoYXIqIGVuCiB7CiAgICAgaWYgKGN1cnJUcmFuc2Zvcm0g
Pj0gZW5kKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBpZiAoKmN1cnJUcmFu
c2Zvcm0gPT0gJ3MnKSB7Ci0gICAgICAgIGlmIChza2lwU3RyaW5nKGN1cnJUcmFuc2Zvcm0sIGVu
ZCwgc2tld1hEZXNjLCBzaXplb2Yoc2tld1hEZXNjKSAvIHNpemVvZihVQ2hhcikpKQorICAgICAg
ICBpZiAoc2tpcFN0cmluZyhjdXJyVHJhbnNmb3JtLCBlbmQsIHNrZXdYRGVzYywgV1RGX0FSUkFZ
X0xFTkdUSChza2V3WERlc2MpKSkKICAgICAgICAgICAgIHR5cGUgPSBTVkdUcmFuc2Zvcm06OlNW
R19UUkFOU0ZPUk1fU0tFV1g7Ci0gICAgICAgIGVsc2UgaWYgKHNraXBTdHJpbmcoY3VyclRyYW5z
Zm9ybSwgZW5kLCBza2V3WURlc2MsIHNpemVvZihza2V3WURlc2MpIC8gc2l6ZW9mKFVDaGFyKSkp
CisgICAgICAgIGVsc2UgaWYgKHNraXBTdHJpbmcoY3VyclRyYW5zZm9ybSwgZW5kLCBza2V3WURl
c2MsIFdURl9BUlJBWV9MRU5HVEgoc2tld1lEZXNjKSkpCiAgICAgICAgICAgICB0eXBlID0gU1ZH
VHJhbnNmb3JtOjpTVkdfVFJBTlNGT1JNX1NLRVdZOwotICAgICAgICBlbHNlIGlmIChza2lwU3Ry
aW5nKGN1cnJUcmFuc2Zvcm0sIGVuZCwgc2NhbGVEZXNjLCBzaXplb2Yoc2NhbGVEZXNjKSAvIHNp
emVvZihVQ2hhcikpKQorICAgICAgICBlbHNlIGlmIChza2lwU3RyaW5nKGN1cnJUcmFuc2Zvcm0s
IGVuZCwgc2NhbGVEZXNjLCBXVEZfQVJSQVlfTEVOR1RIKHNjYWxlRGVzYykpKQogICAgICAgICAg
ICAgdHlwZSA9IFNWR1RyYW5zZm9ybTo6U1ZHX1RSQU5TRk9STV9TQ0FMRTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0gZWxzZSBpZiAoc2tpcFN0cmluZyhj
dXJyVHJhbnNmb3JtLCBlbmQsIHRyYW5zbGF0ZURlc2MsIHNpemVvZih0cmFuc2xhdGVEZXNjKSAv
IHNpemVvZihVQ2hhcikpKQorICAgIH0gZWxzZSBpZiAoc2tpcFN0cmluZyhjdXJyVHJhbnNmb3Jt
LCBlbmQsIHRyYW5zbGF0ZURlc2MsIFdURl9BUlJBWV9MRU5HVEgodHJhbnNsYXRlRGVzYykpKQog
ICAgICAgICB0eXBlID0gU1ZHVHJhbnNmb3JtOjpTVkdfVFJBTlNGT1JNX1RSQU5TTEFURTsKLSAg
ICBlbHNlIGlmIChza2lwU3RyaW5nKGN1cnJUcmFuc2Zvcm0sIGVuZCwgcm90YXRlRGVzYywgc2l6
ZW9mKHJvdGF0ZURlc2MpIC8gc2l6ZW9mKFVDaGFyKSkpCisgICAgZWxzZSBpZiAoc2tpcFN0cmlu
ZyhjdXJyVHJhbnNmb3JtLCBlbmQsIHJvdGF0ZURlc2MsIFdURl9BUlJBWV9MRU5HVEgocm90YXRl
RGVzYykpKQogICAgICAgICB0eXBlID0gU1ZHVHJhbnNmb3JtOjpTVkdfVFJBTlNGT1JNX1JPVEFU
RTsKLSAgICBlbHNlIGlmIChza2lwU3RyaW5nKGN1cnJUcmFuc2Zvcm0sIGVuZCwgbWF0cml4RGVz
Yywgc2l6ZW9mKG1hdHJpeERlc2MpIC8gc2l6ZW9mKFVDaGFyKSkpCisgICAgZWxzZSBpZiAoc2tp
cFN0cmluZyhjdXJyVHJhbnNmb3JtLCBlbmQsIG1hdHJpeERlc2MsIFdURl9BUlJBWV9MRU5HVEgo
bWF0cml4RGVzYykpKQogICAgICAgICB0eXBlID0gU1ZHVHJhbnNmb3JtOjpTVkdfVFJBTlNGT1JN
X01BVFJJWDsKLSAgICBlbHNlIAorICAgIGVsc2UKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IAorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1Zp
ZXdTcGVjLmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAppbmRleCBkNmJhZGUzLi5h
MGE2ODNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKKysrIGIvV2Vi
Q29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCkBAIC04MSw3ICs4MSw3IEBAIGJvb2wgU1ZHVmlld1Nw
ZWM6OnBhcnNlVmlld1NwZWMoY29uc3QgU3RyaW5nJiB2aWV3U3BlYykKICAgICBpZiAoY3VyclZp
ZXdTcGVjID49IGVuZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFza2lwU3Ry
aW5nKGN1cnJWaWV3U3BlYywgZW5kLCBzdmdWaWV3U3BlYywgc2l6ZW9mKHN2Z1ZpZXdTcGVjKSAv
IHNpemVvZihVQ2hhcikpKQorICAgIGlmICghc2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVuZCwg
c3ZnVmlld1NwZWMsIFdURl9BUlJBWV9MRU5HVEgoc3ZnVmlld1NwZWMpKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBlbmQgfHwgKmN1cnJWaWV3U3Bl
YyAhPSAnKCcgKQpAQCAtOTAsNyArOTAsNyBAQCBib29sIFNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdT
cGVjKGNvbnN0IFN0cmluZyYgdmlld1NwZWMpCiAKICAgICB3aGlsZSAoY3VyclZpZXdTcGVjIDwg
ZW5kICYmICpjdXJyVmlld1NwZWMgIT0gJyknKSB7CiAgICAgICAgIGlmICgqY3VyclZpZXdTcGVj
ID09ICd2JykgewotICAgICAgICAgICAgaWYgKHNraXBTdHJpbmcoY3VyclZpZXdTcGVjLCBlbmQs
IHZpZXdCb3hTcGVjLCBzaXplb2Yodmlld0JveFNwZWMpIC8gc2l6ZW9mKFVDaGFyKSkpIHsKKyAg
ICAgICAgICAgIGlmIChza2lwU3RyaW5nKGN1cnJWaWV3U3BlYywgZW5kLCB2aWV3Qm94U3BlYywg
V1RGX0FSUkFZX0xFTkdUSCh2aWV3Qm94U3BlYykpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGN1
cnJWaWV3U3BlYyA+PSBlbmQgfHwgKmN1cnJWaWV3U3BlYyAhPSAnKCcpCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKQEAg
LTEwMSw3ICsxMDEsNyBAQCBib29sIFNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKGNvbnN0IFN0
cmluZyYgdmlld1NwZWMpCiAgICAgICAgICAgICAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBlbmQg
fHwgKmN1cnJWaWV3U3BlYyAhPSAnKScpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAoc2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVuZCwgdmlld1RhcmdldFNwZWMsIHNpemVvZih2
aWV3VGFyZ2V0U3BlYykgLyBzaXplb2YoVUNoYXIpKSkgeworICAgICAgICAgICAgfSBlbHNlIGlm
IChza2lwU3RyaW5nKGN1cnJWaWV3U3BlYywgZW5kLCB2aWV3VGFyZ2V0U3BlYywgV1RGX0FSUkFZ
X0xFTkdUSCh2aWV3VGFyZ2V0U3BlYykpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGN1cnJWaWV3
U3BlYyA+PSBlbmQgfHwgKmN1cnJWaWV3U3BlYyAhPSAnKCcpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciogdmlld1RhcmdldFN0
YXJ0ID0gKytjdXJyVmlld1NwZWM7CkBAIC0xMTQsNyArMTE0LDcgQEAgYm9vbCBTVkdWaWV3U3Bl
Yzo6cGFyc2VWaWV3U3BlYyhjb25zdCBTdHJpbmcmIHZpZXdTcGVjKQogICAgICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9IGVsc2UgaWYgKCpj
dXJyVmlld1NwZWMgPT0gJ3onKSB7Ci0gICAgICAgICAgICBpZiAoIXNraXBTdHJpbmcoY3VyclZp
ZXdTcGVjLCBlbmQsIHpvb21BbmRQYW5TcGVjLCBzaXplb2Yoem9vbUFuZFBhblNwZWMpIC8gc2l6
ZW9mKFVDaGFyKSkpCisgICAgICAgICAgICBpZiAoIXNraXBTdHJpbmcoY3VyclZpZXdTcGVjLCBl
bmQsIHpvb21BbmRQYW5TcGVjLCBXVEZfQVJSQVlfTEVOR1RIKHpvb21BbmRQYW5TcGVjKSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKGN1cnJWaWV3U3Bl
YyA+PSBlbmQgfHwgKmN1cnJWaWV3U3BlYyAhPSAnKCcpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTI1LDcgKzEyNSw3IEBAIGJvb2wgU1ZHVmlld1NwZWM6OnBhcnNlVmlld1Nw
ZWMoY29uc3QgU3RyaW5nJiB2aWV3U3BlYykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKICAgICAgICAgfSBlbHNlIGlmICgqY3VyclZp
ZXdTcGVjID09ICdwJykgewotICAgICAgICAgICAgaWYgKCFza2lwU3RyaW5nKGN1cnJWaWV3U3Bl
YywgZW5kLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvU3BlYywgc2l6ZW9mKHByZXNlcnZlQXNwZWN0UmF0
aW9TcGVjKSAvIHNpemVvZihVQ2hhcikpKQorICAgICAgICAgICAgaWYgKCFza2lwU3RyaW5nKGN1
cnJWaWV3U3BlYywgZW5kLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvU3BlYywgV1RGX0FSUkFZX0xFTkdU
SChwcmVzZXJ2ZUFzcGVjdFJhdGlvU3BlYykpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMg
IT0gJygnKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzOCw3ICsxMzgsNyBA
QCBib29sIFNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKGNvbnN0IFN0cmluZyYgdmlld1NwZWMp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY3VyclZpZXdTcGVj
Kys7CiAgICAgICAgIH0gZWxzZSBpZiAoKmN1cnJWaWV3U3BlYyA9PSAndCcpIHsKLSAgICAgICAg
ICAgIGlmICghc2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVuZCwgdHJhbnNmb3JtU3BlYywgc2l6
ZW9mKHRyYW5zZm9ybVNwZWMpIC8gc2l6ZW9mKFVDaGFyKSkpCisgICAgICAgICAgICBpZiAoIXNr
aXBTdHJpbmcoY3VyclZpZXdTcGVjLCBlbmQsIHRyYW5zZm9ybVNwZWMsIFdURl9BUlJBWV9MRU5H
VEgodHJhbnNmb3JtU3BlYykpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0gJygnKQog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NW
R1pvb21BbmRQYW4uY3BwIGIvV2ViQ29yZS9zdmcvU1ZHWm9vbUFuZFBhbi5jcHAKaW5kZXggOTNh
YjNhZC4uMzZkNGE2MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHWm9vbUFuZFBhbi5jcHAK
KysrIGIvV2ViQ29yZS9zdmcvU1ZHWm9vbUFuZFBhbi5jcHAKQEAgLTU2LDkgKzU2LDkgQEAgc3Rh
dGljIGNvbnN0IFVDaGFyIG1hZ25pZnlbXSA9ICB7J20nLCAnYScsICdnJywgJ24nLCAnaScsICdm
JywgJ3knfTsKIAogYm9vbCBTVkdab29tQW5kUGFuOjpwYXJzZVpvb21BbmRQYW4oY29uc3QgVUNo
YXIqJiBzdGFydCwgY29uc3QgVUNoYXIqIGVuZCkKIHsKLSAgICBpZiAoc2tpcFN0cmluZyhzdGFy
dCwgZW5kLCBkaXNhYmxlLCBzaXplb2YoZGlzYWJsZSkgLyBzaXplb2YoVUNoYXIpKSkKKyAgICBp
ZiAoc2tpcFN0cmluZyhzdGFydCwgZW5kLCBkaXNhYmxlLCBXVEZfQVJSQVlfTEVOR1RIKGRpc2Fi
bGUpKSkKICAgICAgICAgc2V0Wm9vbUFuZFBhbihTVkdfWk9PTUFORFBBTl9ESVNBQkxFKTsKLSAg
ICBlbHNlIGlmIChza2lwU3RyaW5nKHN0YXJ0LCBlbmQsIG1hZ25pZnksIHNpemVvZihtYWduaWZ5
KSAvIHNpemVvZihVQ2hhcikpKQorICAgIGVsc2UgaWYgKHNraXBTdHJpbmcoc3RhcnQsIGVuZCwg
bWFnbmlmeSwgV1RGX0FSUkFZX0xFTkdUSChtYWduaWZ5KSkpCiAgICAgICAgIHNldFpvb21BbmRQ
YW4oU1ZHX1pPT01BTkRQQU5fTUFHTklGWSk7CiAgICAgZWxzZQogICAgICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAgYi9XZWJDb3Jl
L3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKaW5kZXggOGI0ZTcyMC4uMjA5MWFjYSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCisrKyBiL1dlYkNvcmUveG1sL1hQYXRo
RnVuY3Rpb25zLmNwcApAQCAtNzA4LDEwICs3MDgsOSBAQCBzdGF0aWMgdm9pZCBjcmVhdGVGdW5j
dGlvbk1hcCgpCiAgICAgICAgIHsgInRyYW5zbGF0ZSIsIHsgJmNyZWF0ZUZ1blRyYW5zbGF0ZSwg
MyB9IH0sCiAgICAgICAgIHsgInRydWUiLCB7ICZjcmVhdGVGdW5UcnVlLCAwIH0gfSwKICAgICB9
OwotICAgIGNvbnN0IHVuc2lnbmVkIGludCBudW1GdW5jdGlvbnMgPSBzaXplb2YoZnVuY3Rpb25z
KSAvIHNpemVvZihmdW5jdGlvbnNbMF0pOwogCiAgICAgZnVuY3Rpb25NYXAgPSBuZXcgSGFzaE1h
cDxTdHJpbmcsIEZ1bmN0aW9uUmVjPjsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVt
RnVuY3Rpb25zOyArK2kpCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVO
R1RIKGZ1bmN0aW9ucyk7ICsraSkKICAgICAgICAgZnVuY3Rpb25NYXAtPnNldChmdW5jdGlvbnNb
aV0ubmFtZSwgZnVuY3Rpb25zW2ldLmZ1bmN0aW9uKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS94bWwvWFBhdGhQYXJzZXIuY3BwIGIvV2ViQ29yZS94bWwvWFBhdGhQYXJzZXIuY3BwCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74510</attachid>
            <date>2010-11-21 10:10:39 -0800</date>
            <delta_ts>2010-11-21 16:10:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49882.patch</filename>
            <type>text/plain</type>
            <size>32154</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjhjZTg1Ni4uY2VhZjkwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxMC0xMS0yMiAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgV1RGX0FSUkFZX0xFTkdUSCBpbiBXZWJDb3JlIGRpcmVj
dG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk4
ODIKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVBUklBUm9sZU1hcCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFz
ZTo6SlNET01XaW5kb3dCYXNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToKKyAg
ICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKiBj
c3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAqIGNz
cy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUFuaW1h
dGlvblNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVHJhbnNp
dGlvblNob3J0aGFuZCk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6aW5pdFNob3J0aGFuZE1hcCk6CisgICAgICAgICogZG9tL0V4Y2Vw
dGlvbkNvZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0
aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpyZW1vdmVJbXBsaWNpdGx5U3R5bGVkRWxlbWVu
dCk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyaVN0YXRlT2ZTdHlsZSk6CisgICAg
ICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUNvbW1hbmRNYXApOgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6YXBwZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzKToKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTEJ1ZmZlcjo6Z2V0Q2FjaGVkTWF4SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xC
dWZmZXI6OnNldENhY2hlZE1heEluZGV4KToKKyAgICAgICAgKiBsb2FkZXIvRlRQRGlyZWN0b3J5
UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlT25lRlRQTGluZSk6CisgICAgICAg
ICogbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck1hdGhNTE9wZXJhdG9yOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGFnZS9h
bmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGRTaG9ydGhh
bmRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6Omhhc1ZhbGlkQXZnQ2hhcldp
ZHRoKToKKyAgICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwOgorICAgICAgICAqIHN2
Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlQW5kU2tpcFR5
cGUpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdWaWV3U3BlYzo6cGFyc2VWaWV3U3BlYyk6CisgICAgICAgICogc3ZnL1NWR1pvb21BbmRQYW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHWm9vbUFuZFBhbjo6cGFyc2Vab29tQW5kUGFuKToK
KyAgICAgICAgKiB4bWwvWFBhdGhGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBh
dGg6OmNyZWF0ZUZ1bmN0aW9uTWFwKToKKwogMjAxMC0xMS0yMSAgUGF0cmljayBHYW5zdGVyZXIg
IDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBDc2FiYSBPc3p0cm9n
b27DoWMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
aW5kZXggY2FmMTJkYy4uMzI3YTczNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtOTM3LDkgKzkzNyw4IEBAIHN0YXRpYyBBUklBUm9sZU1h
cCogY3JlYXRlQVJJQVJvbGVNYXAoKQogICAgICAgICB7ICJ0cmVlaXRlbSIsIFRyZWVJdGVtUm9s
ZSB9CiAgICAgfTsKICAgICBBUklBUm9sZU1hcCogcm9sZU1hcCA9IG5ldyBBUklBUm9sZU1hcDsK
LSAgICAKLSAgICBjb25zdCB1bnNpZ25lZCBudW1Sb2xlcyA9IHNpemVvZihyb2xlcykgLyBzaXpl
b2Yocm9sZXNbMF0pOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1Sb2xlczsgKytp
KQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKHJvbGVzKTsg
KytpKQogICAgICAgICByb2xlTWFwLT5zZXQocm9sZXNbaV0uYXJpYVJvbGUsIHJvbGVzW2ldLndl
YmNvcmVSb2xlKTsKICAgICByZXR1cm4gcm9sZU1hcDsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmNwcAppbmRleCBhNzJlY2U2Li5hZDRlMmY3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC02MCw3ICs2MCw3IEBAIEpTRE9NV2luZG93QmFz
ZTo6SlNET01XaW5kb3dCYXNlKE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJl
LCBQYXNzUmVmCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGdsb2JhbEV4
ZWMoKSwgIndpbmRvdyIpLCBkKCktPnNoZWxsLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpCiAgICAg
fTsKICAgICAKLSAgICBhZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIHNpemVvZihzdGF0
aWNHbG9iYWxzKSAvIHNpemVvZihHbG9iYWxQcm9wZXJ0eUluZm8pKTsKKyAgICBhZGRTdGF0aWNH
bG9iYWxzKHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOwog
fQogCiB2b2lkIEpTRE9NV2luZG93QmFzZTo6dXBkYXRlRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggOTAzNDFiOC4uNmVhNjFiYyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0xOTE2
LDcgKzE5MTYsNyBAQCBFTkQKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIHN0
YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0VGVtcGxhdGU+IENvbmZpZ3VyZVNoYWRvd09i
amVjdFRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3RUZW1wbGF0ZT4gdGVtcGwpCiB7
Ci0gICAgYmF0Y2hDb25maWd1cmVBdHRyaWJ1dGVzKHRlbXBsLCB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3RUZW1wbGF0ZT4oKSwgc2hhZG93QXR0cnMsIHNpemVvZihzaGFkb3dBdHRycykgLyBzaXplb2Yo
KnNoYWRvd0F0dHJzKSk7CisgICAgYmF0Y2hDb25maWd1cmVBdHRyaWJ1dGVzKHRlbXBsLCB2ODo6
SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4oKSwgc2hhZG93QXR0cnMsIFdURl9BUlJBWV9MRU5H
VEgoc2hhZG93QXR0cnMpKTsKIAogICAgIC8vIEluc3RhbGwgYSBzZWN1cml0eSBoYW5kbGVyIHdp
dGggVjguCiAgICAgdGVtcGwtPlNldEFjY2Vzc0NoZWNrQ2FsbGJhY2tzKFY4RE9NV2luZG93Ojpu
YW1lZFNlY3VyaXR5Q2hlY2ssIFY4RE9NV2luZG93OjppbmRleGVkU2VjdXJpdHlDaGVjaywgdjg6
OkV4dGVybmFsOjpXcmFwKCZWOERPTVdpbmRvdzo6aW5mbykpOwpAQCAtMTk0OCw3ICsxOTQ4LDcg
QEAgRU5ECiAgICAgIyBTZXQgdXAgb3VyIGF0dHJpYnV0ZXMgaWYgd2UgaGF2ZSB0aGVtCiAgICAg
aWYgKCRoYXNfYXR0cmlidXRlcykgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQp
OwotICAgICAgICAke2ludGVyZmFjZU5hbWV9QXR0cnMsIHNpemVvZigke2ludGVyZmFjZU5hbWV9
QXR0cnMpIC8gc2l6ZW9mKCoke2ludGVyZmFjZU5hbWV9QXR0cnMpLAorICAgICAgICAke2ludGVy
ZmFjZU5hbWV9QXR0cnMsIFdURl9BUlJBWV9MRU5HVEgoJHtpbnRlcmZhY2VOYW1lfUF0dHJzKSwK
IEVORAogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CkBA
IC0xOTU4LDcgKzE5NTgsNyBAQCBFTkQKIAogICAgIGlmICgkaGFzX2NhbGxiYWNrcykgewogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwotICAgICAgICAke2ludGVyZmFjZU5hbWV9
Q2FsbGJhY2tzLCBzaXplb2YoJHtpbnRlcmZhY2VOYW1lfUNhbGxiYWNrcykgLyBzaXplb2YoKiR7
aW50ZXJmYWNlTmFtZX1DYWxsYmFja3MpKTsKKyAgICAgICAgJHtpbnRlcmZhY2VOYW1lfUNhbGxi
YWNrcywgV1RGX0FSUkFZX0xFTkdUSCgke2ludGVyZmFjZU5hbWV9Q2FsbGJhY2tzKSk7CiBFTkQK
ICAgICB9IGVsc2UgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwpAQCAtMjA5
Niw3ICsyMDk2LDcgQEAgRU5ECiAKICAgICBpZiAoJGhhc19jb25zdGFudHMpIHsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICBiYXRjaENvbmZpZ3VyZUNvbnN0YW50cyhk
ZXNjLCBwcm90bywgJHtpbnRlcmZhY2VOYW1lfUNvbnN0cywgc2l6ZW9mKCR7aW50ZXJmYWNlTmFt
ZX1Db25zdHMpIC8gc2l6ZW9mKCoke2ludGVyZmFjZU5hbWV9Q29uc3RzKSk7CisgICAgYmF0Y2hD
b25maWd1cmVDb25zdGFudHMoZGVzYywgcHJvdG8sICR7aW50ZXJmYWNlTmFtZX1Db25zdHMsIFdU
Rl9BUlJBWV9MRU5HVEgoJHtpbnRlcmZhY2VOYW1lfUNvbnN0cykpOwogRU5ECiAgICAgfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCBl
M2Q5MjRhLi5jNGE3NmFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHAKQEAgLTEyNTMsOCArMTI1Myw4IEBAIENPTVBJTEVfQVNTRVJUKDB4MWFi
YyA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xNCwgVGVzdE9iakVudW1DT05TVF9WQUxVRV8xNElz
V3JvCiBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3Vy
ZVY4VGVzdE9ialRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBk
ZXNjKQogewogICAgIHY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBkZWZhdWx0U2lnbmF0dXJlID0g
Y29uZmlndXJlVGVtcGxhdGUoZGVzYywgIlRlc3RPYmoiLCB2ODo6UGVyc2lzdGVudDx2ODo6RnVu
Y3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjppbnRlcm5hbEZpZWxkQ291bnQsCi0gICAgICAg
IFRlc3RPYmpBdHRycywgc2l6ZW9mKFRlc3RPYmpBdHRycykgLyBzaXplb2YoKlRlc3RPYmpBdHRy
cyksCi0gICAgICAgIFRlc3RPYmpDYWxsYmFja3MsIHNpemVvZihUZXN0T2JqQ2FsbGJhY2tzKSAv
IHNpemVvZigqVGVzdE9iakNhbGxiYWNrcykpOworICAgICAgICBUZXN0T2JqQXR0cnMsIFdURl9B
UlJBWV9MRU5HVEgoVGVzdE9iakF0dHJzKSwKKyAgICAgICAgVGVzdE9iakNhbGxiYWNrcywgV1RG
X0FSUkFZX0xFTkdUSChUZXN0T2JqQ2FsbGJhY2tzKSk7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmpl
Y3RUZW1wbGF0ZT4gaW5zdGFuY2UgPSBkZXNjLT5JbnN0YW5jZVRlbXBsYXRlKCk7CiAgICAgdjg6
OkxvY2FsPHY4OjpPYmplY3RUZW1wbGF0ZT4gcHJvdG8gPSBkZXNjLT5Qcm90b3R5cGVUZW1wbGF0
ZSgpOwogICAgIApAQCAtMTMxMiw3ICsxMzEyLDcgQEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4
OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZSh2ODo6UGVyc2kK
ICAgICAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXcoImVuYWJsZWRBdFJ1bnRpbWVNZXRo
b2QxIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9iakludGVybmFsOjplbmFibGVk
QXRSdW50aW1lTWV0aG9kMUNhbGxiYWNrLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKSwgZGVmYXVs
dFNpZ25hdHVyZSkpOwogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpmZWF0dXJlTmFt
ZUVuYWJsZWQoKSkKICAgICAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXcoImVuYWJsZWRB
dFJ1bnRpbWVNZXRob2QyIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9iakludGVy
bmFsOjplbmFibGVkQXRSdW50aW1lTWV0aG9kMkNhbGxiYWNrLCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4oKSwgZGVmYXVsdFNpZ25hdHVyZSkpOwotICAgIGJhdGNoQ29uZmlndXJlQ29uc3RhbnRzKGRl
c2MsIHByb3RvLCBUZXN0T2JqQ29uc3RzLCBzaXplb2YoVGVzdE9iakNvbnN0cykgLyBzaXplb2Yo
KlRlc3RPYmpDb25zdHMpKTsKKyAgICBiYXRjaENvbmZpZ3VyZUNvbnN0YW50cyhkZXNjLCBwcm90
bywgVGVzdE9iakNvbnN0cywgV1RGX0FSUkFZX0xFTkdUSChUZXN0T2JqQ29uc3RzKSk7CiAKICAg
ICAvLyBDdXN0b20gdG9TdHJpbmcgdGVtcGxhdGUKICAgICBkZXNjLT5TZXQoZ2V0VG9TdHJpbmdO
YW1lKCksIGdldFRvU3RyaW5nVGVtcGxhdGUoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBjZGNkM2Q2Li5jODA0Njk0IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTI3Miw3ICsyNzIsNyBAQCBz
dGF0aWMgY29uc3QgaW50IGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogI2VuZGlmCiB9OwogCi1j
b25zdCB1bnNpZ25lZCBudW1Db21wdXRlZFByb3BlcnRpZXMgPSBzaXplb2YoY29tcHV0ZWRQcm9w
ZXJ0aWVzKSAvIHNpemVvZihjb21wdXRlZFByb3BlcnRpZXNbMF0pOworY29uc3QgdW5zaWduZWQg
bnVtQ29tcHV0ZWRQcm9wZXJ0aWVzID0gV1RGX0FSUkFZX0xFTkdUSChjb21wdXRlZFByb3BlcnRp
ZXMpOwogCiBzdGF0aWMgaW50IHZhbHVlRm9yUmVwZWF0UnVsZShpbnQgcnVsZSkKIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1dlYkNv
cmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA0NzgwOWMyLi4wOTY1
NWFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5j
cHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0x
NDIsOCArMTQyLDcgQEAgU3RyaW5nIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9w
ZXJ0eVZhbHVlKGludCBwcm9wZXJ0eUlEKSBjb25zdAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNvbG9yLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1NQcm9wZXJ0eUJvcmRlckxl
ZnRDb2xvciB9fTsKICAgICAgICAgICAgIFN0cmluZyByZXM7Ci0gICAgICAgICAgICBjb25zdCBp
bnQgbnJwcm9wcyA9IHNpemVvZihwcm9wZXJ0aWVzKSAvIHNpemVvZihwcm9wZXJ0aWVzWzBdKTsK
LSAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnJwcm9wczsgKytpKSB7CisgICAgICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgocHJvcGVydGllcyk7
ICsraSkgewogICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGdldENvbW1vblZhbHVlKHBy
b3BlcnRpZXNbaV0sIDQpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUuaXNOdWxsKCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXMuaXNOdWxsKCkpCkBAIC03NTgsNyArNzU3LDcg
QEAgc3RhdGljIGNvbnN0IGludCBibG9ja1Byb3BlcnRpZXNbXSA9IHsKICAgICBDU1NQcm9wZXJ0
eVdpZG93cwogfTsKIAotY29uc3QgdW5zaWduZWQgbnVtQmxvY2tQcm9wZXJ0aWVzID0gc2l6ZW9m
KGJsb2NrUHJvcGVydGllcykgLyBzaXplb2YoYmxvY2tQcm9wZXJ0aWVzWzBdKTsKK2NvbnN0IHVu
c2lnbmVkIG51bUJsb2NrUHJvcGVydGllcyA9IFdURl9BUlJBWV9MRU5HVEgoYmxvY2tQcm9wZXJ0
aWVzKTsKIAogUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb246OmNvcHlCbG9ja1Byb3BlcnRpZXMoKSBjb25zdAogewpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKaW5kZXggODM2MTEzZS4uN2IzNGVmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0yMDAyLDcgKzIwMDIs
NyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VBbmltYXRpb25TaG9ydGhhbmQoYm9vbCBpbXBvcnRh
bnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTU1Byb3BlcnR5V2Via2l0QW5p
bWF0aW9uSXRlcmF0aW9uQ291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENT
U1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGlyZWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkZpbGxNb2RlIH07Ci0gICAgY29u
c3QgaW50IG51bVByb3BlcnRpZXMgPSBzaXplb2YocHJvcGVydGllcykgLyBzaXplb2YocHJvcGVy
dGllc1swXSk7CisgICAgY29uc3QgaW50IG51bVByb3BlcnRpZXMgPSBXVEZfQVJSQVlfTEVOR1RI
KHByb3BlcnRpZXMpOwogCiAgICAgU2hvcnRoYW5kU2NvcGUgc2NvcGUodGhpcywgQ1NTUHJvcGVy
dHlXZWJraXRBbmltYXRpb24pOwogCkBAIC0yMDYwLDcgKzIwNjAsNyBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VUcmFuc2l0aW9uU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlv
blRpbWluZ0Z1bmN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTU1Byb3Bl
cnR5V2Via2l0VHJhbnNpdGlvbkRlbGF5IH07Ci0gICAgY29uc3QgaW50IG51bVByb3BlcnRpZXMg
PSBzaXplb2YocHJvcGVydGllcykgLyBzaXplb2YocHJvcGVydGllc1swXSk7CisgICAgY29uc3Qg
aW50IG51bVByb3BlcnRpZXMgPSBXVEZfQVJSQVlfTEVOR1RIKHByb3BlcnRpZXMpOwogCiAgICAg
U2hvcnRoYW5kU2NvcGUgc2NvcGUodGhpcywgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uKTsK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAgYi9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcAppbmRleCBhY2NhMDM2Li40ZGY1ZDYyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcAorKysgYi9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcApAQCAtMzIsNyArMzIsNyBAQCB0eXBlZGVm
IEhhc2hNYXA8aW50LCBDU1NQcm9wZXJ0eUxvbmdoYW5kPiBTaG9ydGhhbmRNYXA7CiBzdGF0aWMg
dm9pZCBpbml0U2hvcnRoYW5kTWFwKFNob3J0aGFuZE1hcCYgc2hvcnRoYW5kTWFwKQogewogICAg
ICNkZWZpbmUgU0VUX1NIT1JUSEFORF9NQVBfRU5UUlkobWFwLCBwcm9wSUQsIGFycmF5KSBcCi0g
ICAgICAgIG1hcC5zZXQocHJvcElELCBDU1NQcm9wZXJ0eUxvbmdoYW5kKGFycmF5LCBzaXplb2Yo
YXJyYXkpIC8gc2l6ZW9mKGFycmF5WzBdKSkpCisgICAgICAgIG1hcC5zZXQocHJvcElELCBDU1NQ
cm9wZXJ0eUxvbmdoYW5kKGFycmF5LCBXVEZfQVJSQVlfTEVOR1RIKGFycmF5KSkpCiAKICAgICAv
LyBGSVhNRTogVGhlICdmb250JyBwcm9wZXJ0eSBoYXMgInNob3J0aGFuZCBuYXR1cmUiIGJ1dCBp
cyBub3QgcGFyc2VkIGFzIGEgc2hvcnRoYW5kLgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9F
eGNlcHRpb25Db2RlLmNwcCBiL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwCmluZGV4IGYw
NDhmZTUuLmFkNGZiNmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3Bw
CisrKyBiL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwCkBAIC0yMjcsNyArMjI3LDcgQEAg
dm9pZCBnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oRXhjZXB0aW9uQ29kZSBlYywgRXhjZXB0
aW9uQ29kZURlc2NyaXB0aW9uJiBkZXMKICAgICAgICAgY29kZSAtPSBSYW5nZUV4Y2VwdGlvbjo6
UmFuZ2VFeGNlcHRpb25PZmZzZXQ7CiAgICAgICAgIG5hbWVUYWJsZSA9IHJhbmdlRXhjZXB0aW9u
TmFtZXM7CiAgICAgICAgIGRlc2NyaXB0aW9uVGFibGUgPSByYW5nZUV4Y2VwdGlvbkRlc2NyaXB0
aW9uczsKLSAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IHNpemVvZihyYW5nZUV4Y2VwdGlvbk5hbWVz
KSAvIHNpemVvZihyYW5nZUV4Y2VwdGlvbk5hbWVzWzBdKTsKKyAgICAgICAgbmFtZVRhYmxlU2l6
ZSA9IFdURl9BUlJBWV9MRU5HVEgocmFuZ2VFeGNlcHRpb25OYW1lcyk7CiAgICAgICAgIG5hbWVU
YWJsZU9mZnNldCA9IFJhbmdlRXhjZXB0aW9uOjpCQURfQk9VTkRBUllQT0lOVFNfRVJSOwogICAg
IH0gZWxzZSBpZiAoY29kZSA+PSBFdmVudEV4Y2VwdGlvbjo6RXZlbnRFeGNlcHRpb25PZmZzZXQg
JiYgY29kZSA8PSBFdmVudEV4Y2VwdGlvbjo6RXZlbnRFeGNlcHRpb25NYXgpIHsKICAgICAgICAg
dHlwZSA9IEV2ZW50RXhjZXB0aW9uVHlwZTsKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIGdldEV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihFeGNlcHRpb25Db2RlIGVjLCBFeGNlcHRpb25Db2RlRGVz
Y3JpcHRpb24mIGRlcwogICAgICAgICBjb2RlIC09IEV2ZW50RXhjZXB0aW9uOjpFdmVudEV4Y2Vw
dGlvbk9mZnNldDsKICAgICAgICAgbmFtZVRhYmxlID0gZXZlbnRFeGNlcHRpb25OYW1lczsKICAg
ICAgICAgZGVzY3JpcHRpb25UYWJsZSA9IGV2ZW50RXhjZXB0aW9uRGVzY3JpcHRpb25zOwotICAg
ICAgICBuYW1lVGFibGVTaXplID0gc2l6ZW9mKGV2ZW50RXhjZXB0aW9uTmFtZXMpIC8gc2l6ZW9m
KGV2ZW50RXhjZXB0aW9uTmFtZXNbMF0pOworICAgICAgICBuYW1lVGFibGVTaXplID0gV1RGX0FS
UkFZX0xFTkdUSChldmVudEV4Y2VwdGlvbk5hbWVzKTsKICAgICAgICAgbmFtZVRhYmxlT2Zmc2V0
ID0gRXZlbnRFeGNlcHRpb246OlVOU1BFQ0lGSUVEX0VWRU5UX1RZUEVfRVJSOwogICAgIH0gZWxz
ZSBpZiAoY29kZSA+PSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6WE1MSHR0cFJlcXVlc3RFeGNl
cHRpb25PZmZzZXQgJiYgY29kZSA8PSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6WE1MSHR0cFJl
cXVlc3RFeGNlcHRpb25NYXgpIHsKICAgICAgICAgdHlwZSA9IFhNTEh0dHBSZXF1ZXN0RXhjZXB0
aW9uVHlwZTsKQEAgLTI0Myw3ICsyNDMsNyBAQCB2b2lkIGdldEV4Y2VwdGlvbkNvZGVEZXNjcmlw
dGlvbihFeGNlcHRpb25Db2RlIGVjLCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24mIGRlcwogICAg
ICAgICBjb2RlIC09IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjpYTUxIdHRwUmVxdWVzdEV4Y2Vw
dGlvbk9mZnNldDsKICAgICAgICAgbmFtZVRhYmxlID0geG1sSHR0cFJlcXVlc3RFeGNlcHRpb25O
YW1lczsKICAgICAgICAgZGVzY3JpcHRpb25UYWJsZSA9IHhtbEh0dHBSZXF1ZXN0RXhjZXB0aW9u
RGVzY3JpcHRpb25zOwotICAgICAgICBuYW1lVGFibGVTaXplID0gc2l6ZW9mKHhtbEh0dHBSZXF1
ZXN0RXhjZXB0aW9uTmFtZXMpIC8gc2l6ZW9mKHhtbEh0dHBSZXF1ZXN0RXhjZXB0aW9uTmFtZXNb
MF0pOworICAgICAgICBuYW1lVGFibGVTaXplID0gV1RGX0FSUkFZX0xFTkdUSCh4bWxIdHRwUmVx
dWVzdEV4Y2VwdGlvbk5hbWVzKTsKICAgICAgICAgLy8gWE1MSHR0cFJlcXVlc3QgZXhjZXB0aW9u
IGNvZGVzIHN0YXJ0IHdpdGggMTAxIGFuZCB3ZSBkb24ndCB3YW50IDEwMCBlbXB0eSBlbGVtZW50
cyBpbiB0aGUgbmFtZSBhcnJheQogICAgICAgICBuYW1lVGFibGVPZmZzZXQgPSBYTUxIdHRwUmVx
dWVzdEV4Y2VwdGlvbjo6TkVUV09SS19FUlI7CiAjaWYgRU5BQkxFKFhQQVRIKQpAQCAtMjUzLDcg
KzI1Myw3IEBAIHZvaWQgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUg
ZWMsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiYgZGVzCiAgICAgICAgIGNvZGUgLT0gWFBhdGhF
eGNlcHRpb246OlhQYXRoRXhjZXB0aW9uT2Zmc2V0OwogICAgICAgICBuYW1lVGFibGUgPSB4cGF0
aEV4Y2VwdGlvbk5hbWVzOwogICAgICAgICBkZXNjcmlwdGlvblRhYmxlID0geHBhdGhFeGNlcHRp
b25EZXNjcmlwdGlvbnM7Ci0gICAgICAgIG5hbWVUYWJsZVNpemUgPSBzaXplb2YoeHBhdGhFeGNl
cHRpb25OYW1lcykgLyBzaXplb2YoeHBhdGhFeGNlcHRpb25OYW1lc1swXSk7CisgICAgICAgIG5h
bWVUYWJsZVNpemUgPSBXVEZfQVJSQVlfTEVOR1RIKHhwYXRoRXhjZXB0aW9uTmFtZXMpOwogICAg
ICAgICAvLyBYUGF0aCBleGNlcHRpb24gY29kZXMgc3RhcnQgd2l0aCA1MSBhbmQgd2UgZG9uJ3Qg
d2FudCA1MSBlbXB0eSBlbGVtZW50cyBpbiB0aGUgbmFtZSBhcnJheQogICAgICAgICBuYW1lVGFi
bGVPZmZzZXQgPSBYUGF0aEV4Y2VwdGlvbjo6SU5WQUxJRF9FWFBSRVNTSU9OX0VSUjsKICNlbmRp
ZgpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKEV4
Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiYgZGVzCiAgICAgICAgIGNv
ZGUgLT0gU1ZHRXhjZXB0aW9uOjpTVkdFeGNlcHRpb25PZmZzZXQ7CiAgICAgICAgIG5hbWVUYWJs
ZSA9IHN2Z0V4Y2VwdGlvbk5hbWVzOwogICAgICAgICBkZXNjcmlwdGlvblRhYmxlID0gc3ZnRXhj
ZXB0aW9uRGVzY3JpcHRpb25zOwotICAgICAgICBuYW1lVGFibGVTaXplID0gc2l6ZW9mKHN2Z0V4
Y2VwdGlvbk5hbWVzKSAvIHNpemVvZihzdmdFeGNlcHRpb25OYW1lc1swXSk7CisgICAgICAgIG5h
bWVUYWJsZVNpemUgPSBXVEZfQVJSQVlfTEVOR1RIKHN2Z0V4Y2VwdGlvbk5hbWVzKTsKICAgICAg
ICAgbmFtZVRhYmxlT2Zmc2V0ID0gU1ZHRXhjZXB0aW9uOjpTVkdfV1JPTkdfVFlQRV9FUlI7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoREFUQUJBU0UpCkBAIC0yNzQsNyArMjc0LDcgQEAgdm9pZCBnZXRF
eGNlcHRpb25Db2RlRGVzY3JpcHRpb24oRXhjZXB0aW9uQ29kZSBlYywgRXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uJiBkZXMKICAgICAgICAgY29kZSAtPSBTUUxFeGNlcHRpb246OlNRTEV4Y2VwdGlv
bk9mZnNldDsKICAgICAgICAgbmFtZVRhYmxlID0gc3FsRXhjZXB0aW9uTmFtZXM7CiAgICAgICAg
IGRlc2NyaXB0aW9uVGFibGUgPSBzcWxFeGNlcHRpb25EZXNjcmlwdGlvbnM7Ci0gICAgICAgIG5h
bWVUYWJsZVNpemUgPSBzaXplb2Yoc3FsRXhjZXB0aW9uTmFtZXMpIC8gc2l6ZW9mKHNxbEV4Y2Vw
dGlvbk5hbWVzWzBdKTsKKyAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IFdURl9BUlJBWV9MRU5HVEgo
c3FsRXhjZXB0aW9uTmFtZXMpOwogICAgICAgICBuYW1lVGFibGVPZmZzZXQgPSBTUUxFeGNlcHRp
b246OlVOS05PV05fRVJSOwogI2VuZGlmCiAjaWYgRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxF
X1NZU1RFTSkKQEAgLTI4NCw3ICsyODQsNyBAQCB2b2lkIGdldEV4Y2VwdGlvbkNvZGVEZXNjcmlw
dGlvbihFeGNlcHRpb25Db2RlIGVjLCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24mIGRlcwogICAg
ICAgICBjb2RlIC09IEZpbGVFeGNlcHRpb246OkZpbGVFeGNlcHRpb25PZmZzZXQ7CiAgICAgICAg
IG5hbWVUYWJsZSA9IGZpbGVFeGNlcHRpb25OYW1lczsKICAgICAgICAgZGVzY3JpcHRpb25UYWJs
ZSA9IGZpbGVFeGNlcHRpb25EZXNjcmlwdGlvbnM7Ci0gICAgICAgIG5hbWVUYWJsZVNpemUgPSBz
aXplb2YoZmlsZUV4Y2VwdGlvbk5hbWVzKSAvIHNpemVvZihmaWxlRXhjZXB0aW9uTmFtZXNbMF0p
OworICAgICAgICBuYW1lVGFibGVTaXplID0gV1RGX0FSUkFZX0xFTkdUSChmaWxlRXhjZXB0aW9u
TmFtZXMpOwogICAgICAgICBuYW1lVGFibGVPZmZzZXQgPSBGaWxlRXhjZXB0aW9uOjpOT1RfRk9V
TkRfRVJSOwogI2VuZGlmCiAgICAgfSBlbHNlIHsKQEAgLTI5Miw3ICsyOTIsNyBAQCB2b2lkIGdl
dEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihFeGNlcHRpb25Db2RlIGVjLCBFeGNlcHRpb25Db2Rl
RGVzY3JpcHRpb24mIGRlcwogICAgICAgICB0eXBlTmFtZSA9ICJET00iOwogICAgICAgICBuYW1l
VGFibGUgPSBleGNlcHRpb25OYW1lczsKICAgICAgICAgZGVzY3JpcHRpb25UYWJsZSA9IGV4Y2Vw
dGlvbkRlc2NyaXB0aW9uczsKLSAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IHNpemVvZihleGNlcHRp
b25OYW1lcykgLyBzaXplb2YoZXhjZXB0aW9uTmFtZXNbMF0pOworICAgICAgICBuYW1lVGFibGVT
aXplID0gV1RGX0FSUkFZX0xFTkdUSChleGNlcHRpb25OYW1lcyk7CiAgICAgICAgIG5hbWVUYWJs
ZU9mZnNldCA9IElOREVYX1NJWkVfRVJSOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9l
ZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxl
Q29tbWFuZC5jcHAKaW5kZXggYzRhYWFjOC4uYzQzYTU3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9l
ZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuY3BwCkBAIC0xMjQyLDcgKzEyNDIsNyBAQCBib29sIEFwcGx5U3R5bGVDb21t
YW5kOjpyZW1vdmVJbXBsaWNpdGx5U3R5bGVkRWxlbWVudChDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbgogICAgIC8vIEN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9lcyBub3Qgc3VwcG9ydCBzdHls
ZVB1c2hlZERvd24gd2hlbiBtb2RlID09IFJlbW92ZU5vbmUgYmVjYXVzZSBvZiBlYXJseSBleGl0
LgogICAgIEFTU0VSVCghZXh0cmFjdGVkU3R5bGUgfHwgbW9kZSAhPSBSZW1vdmVOb25lKTsKICAg
ICBib29sIHJlbW92ZWQgPSBmYWxzZTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVv
ZihIVE1MRXF1aXZhbGVudHMpIC8gc2l6ZW9mKEhUTUxFcXVpdmFsZW50KTsgaSsrKSB7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKEhUTUxFcXVpdmFsZW50cyk7
ICsraSkgewogICAgICAgICBjb25zdCBIVE1MRXF1aXZhbGVudCYgZXF1aXZhbGVudCA9IEhUTUxF
cXVpdmFsZW50c1tpXTsKICAgICAgICAgQVNTRVJUKGVxdWl2YWxlbnQuZWxlbWVudCB8fCBlcXVp
dmFsZW50LmF0dHJpYnV0ZSk7CiAgICAgICAgIGlmICgoZXh0cmFjdGVkU3R5bGUgJiYgZXF1aXZh
bGVudC5wdXNoRG93blR5cGUgPT0gU2hvdWxkTm90QmVQdXNoZWREb3duKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Z1N0eWxlLmNwcAppbmRleCA5ZGEzMzdmLi40YTU1ZGFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxl
LmNwcApAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgY29uc3QgaW50IGVkaXRpbmdTdHlsZVByb3Bl
cnRpZXNbXSA9IHsKICAgICBDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VDb2xvciwKICAgICBD
U1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VXaWR0aCwKIH07Ci1zaXplX3QgbnVtRWRpdGluZ1N0
eWxlUHJvcGVydGllcyA9IHNpemVvZihlZGl0aW5nU3R5bGVQcm9wZXJ0aWVzKSAvIHNpemVvZihl
ZGl0aW5nU3R5bGVQcm9wZXJ0aWVzWzBdKTsKK3NpemVfdCBudW1FZGl0aW5nU3R5bGVQcm9wZXJ0
aWVzID0gV1RGX0FSUkFZX0xFTkdUSChlZGl0aW5nU3R5bGVQcm9wZXJ0aWVzKTsKIAogc3RhdGlj
IFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IGNvcHlFZGl0aW5nUHJvcGVy
dGllcyhDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggYWFk
ODcyYy4uMTViYWQ3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysr
IGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTkyOSw3ICs5MjksNyBAQCBzdGF0aWMg
VHJpU3RhdGUgdHJpU3RhdGVPZlN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qIGRlc2lyZWRTdHls
ZSwgQ1NTU3R5bGVEZWNsYQogICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4g
ZGlmZiA9IGdldFByb3BlcnRpZXNOb3RJbihkZXNpcmVkU3R5bGUsIHN0eWxlVG9Db21wYXJlKTsK
IAogICAgIGlmIChpZ25vcmVUZXh0T25seVByb3BlcnRpZXMpCi0gICAgICAgIGRpZmYtPnJlbW92
ZVByb3BlcnRpZXNJblNldCh0ZXh0T25seVByb3BlcnRpZXMsIHNpemVvZih0ZXh0T25seVByb3Bl
cnRpZXMpIC8gc2l6ZW9mKHRleHRPbmx5UHJvcGVydGllc1swXSkpOworICAgICAgICBkaWZmLT5y
ZW1vdmVQcm9wZXJ0aWVzSW5TZXQodGV4dE9ubHlQcm9wZXJ0aWVzLCBXVEZfQVJSQVlfTEVOR1RI
KHRleHRPbmx5UHJvcGVydGllcykpOwogCiAgICAgaWYgKCFkaWZmLT5sZW5ndGgoKSkKICAgICAg
ICAgcmV0dXJuIFRydWVUcmlTdGF0ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3JDb21tYW5kLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAppbmRleCBl
M2VhMzdlLi5hYjgzODE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFu
ZC5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0xNTU2LDgg
KzE1NTYsNyBAQCBzdGF0aWMgY29uc3QgQ29tbWFuZE1hcCYgY3JlYXRlQ29tbWFuZE1hcCgpCiAK
ICAgICBDb21tYW5kTWFwJiBjb21tYW5kTWFwID0gKm5ldyBDb21tYW5kTWFwOwogCi0gICAgY29u
c3QgdW5zaWduZWQgbnVtQ29tbWFuZHMgPSBzaXplb2YoY29tbWFuZHMpIC8gc2l6ZW9mKGNvbW1h
bmRzWzBdKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtQ29tbWFuZHM7IGkrKykg
eworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChjb21tYW5kcyk7
ICsraSkgewogICAgICAgICBBU1NFUlQoIWNvbW1hbmRNYXAuZ2V0KGNvbW1hbmRzW2ldLm5hbWUp
KTsKICAgICAgICAgY29tbWFuZE1hcC5zZXQoY29tbWFuZHNbaV0ubmFtZSwgJmNvbW1hbmRzW2ld
LmNvbW1hbmQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1
bXVsYXRvci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4
IGE3MDExODkuLmY2ZGJkOGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1
bXVsYXRvci5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcApA
QCAtNjAsOCArNjAsOCBAQCB2b2lkIGFwcGVuZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGllcyhW
ZWN0b3I8VUNoYXI+JiBvdXQsIGNvbnN0IFVDaGFyKiBjb250ZW50LAogICAgIH07CiAKICAgICBz
aXplX3QgcG9zaXRpb25BZnRlckxhc3RFbnRpdHkgPSAwOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgZm9yIChzaXplX3QgbSA9IDA7IG0gPCBzaXpl
b2YoZW50aXR5TWFwcykgLyBzaXplb2YoRW50aXR5RGVzY3JpcHRpb24pOyBtKyspIHsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIGZvciAoc2l6ZV90
IG0gPSAwOyBtIDwgV1RGX0FSUkFZX0xFTkdUSChlbnRpdHlNYXBzKTsgKyttKSB7CiAgICAgICAg
ICAgICBpZiAoY29udGVudFtpXSA9PSBlbnRpdHlNYXBzW21dLmVudGl0eSAmJiBlbnRpdHlNYXBz
W21dLm1hc2sgJiBlbnRpdHlNYXNrKSB7CiAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChjb250
ZW50ICsgcG9zaXRpb25BZnRlckxhc3RFbnRpdHksIGkgLSBwb3NpdGlvbkFmdGVyTGFzdEVudGl0
eSk7CiAgICAgICAgICAgICAgICAgYXBwZW5kKG91dCwgZW50aXR5TWFwc1ttXS5yZWZlcmVuY2Up
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAgYi9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcAppbmRleCA5OWQ5Y2FkLi4zNmVmMDQ4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcApAQCAtMTcwLDggKzE3MCw3IEBAIHVuc2ln
bmVkIFdlYkdMQnVmZmVyOjpieXRlTGVuZ3RoKCkgY29uc3QKIAogbG9uZyBXZWJHTEJ1ZmZlcjo6
Z2V0Q2FjaGVkTWF4SW5kZXgodW5zaWduZWQgbG9uZyB0eXBlKQogewotICAgIHNpemVfdCBudW1F
bnRyaWVzID0gc2l6ZW9mKG1fbWF4SW5kZXhDYWNoZSkgLyBzaXplb2YoTWF4SW5kZXhDYWNoZUVu
dHJ5KTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUVudHJpZXM7IGkrKykKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgobV9tYXhJbmRleENhY2hlKTsg
KytpKQogICAgICAgICBpZiAobV9tYXhJbmRleENhY2hlW2ldLnR5cGUgPT0gdHlwZSkKICAgICAg
ICAgICAgIHJldHVybiBtX21heEluZGV4Q2FjaGVbaV0ubWF4SW5kZXg7CiAgICAgcmV0dXJuIC0x
OwpAQCAtMTc5LDggKzE3OCw4IEBAIGxvbmcgV2ViR0xCdWZmZXI6OmdldENhY2hlZE1heEluZGV4
KHVuc2lnbmVkIGxvbmcgdHlwZSkKIAogdm9pZCBXZWJHTEJ1ZmZlcjo6c2V0Q2FjaGVkTWF4SW5k
ZXgodW5zaWduZWQgbG9uZyB0eXBlLCBsb25nIHZhbHVlKQogewotICAgIGludCBudW1FbnRyaWVz
ID0gc2l6ZW9mKG1fbWF4SW5kZXhDYWNoZSkgLyBzaXplb2YoTWF4SW5kZXhDYWNoZUVudHJ5KTsK
LSAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUVudHJpZXM7IGkrKykKKyAgICBzaXplX3QgbnVt
RW50cmllcyA9IFdURl9BUlJBWV9MRU5HVEgobV9tYXhJbmRleENhY2hlKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG51bUVudHJpZXM7ICsraSkKICAgICAgICAgaWYgKG1fbWF4SW5kZXhD
YWNoZVtpXS50eXBlID09IHR5cGUpIHsKICAgICAgICAgICAgIG1fbWF4SW5kZXhDYWNoZVtpXS5t
YXhJbmRleCA9IHZhbHVlOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9sb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2VyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVj
dG9yeVBhcnNlci5jcHAKaW5kZXggZjZhNzRkZS4uNmEwNWM0YyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9sb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GVFBE
aXJlY3RvcnlQYXJzZXIuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgRlRQRW50cnlUeXBlIHBhcnNl
T25lRlRQTGluZShjb25zdCBjaGFyKiBsaW5lLCBMaXN0U3RhdGUmIHN0YXRlLCBMaXN0UmVzdWx0
JiByZXMKICAgewogICAgIHN0YXRpYyBjb25zdCBjaGFyICptb250aF9uYW1lcyA9ICJKYW5GZWJN
YXJBcHJNYXlKdW5KdWxBdWdTZXBPY3ROb3ZEZWMiOwogICAgIGNvbnN0IGNoYXIgKnRva2Vuc1sx
Nl07IC8qIDE2IGlzIG1vcmUgdGhhbiBlbm91Z2ggKi8KLSAgICB1bnNpZ25lZCBpbnQgdG9rbGVu
WyhzaXplb2YodG9rZW5zKS9zaXplb2YodG9rZW5zWzBdKSldOworICAgIHVuc2lnbmVkIGludCB0
b2tsZW5bV1RGX0FSUkFZX0xFTkdUSCh0b2tlbnMpXTsKICAgICB1bnNpZ25lZCBpbnQgbGluZWxl
bl9zYW5zX3dzcDsgIC8vIGxpbmUgbGVuZ3RoIHNhbnMgd2hpdGVzcGFjZQogICAgIHVuc2lnbmVk
IGludCBudW10b2tzID0gMDsKICAgICB1bnNpZ25lZCBpbnQgdG9rbWFya2VyID0gMDsgLyogZXh0
cmEgaW5mbyBmb3IgbHN0eWxlIGhhbmRsZXIgKi8KQEAgLTEzMyw3ICsxMzMsNyBAQCBGVFBFbnRy
eVR5cGUgcGFyc2VPbmVGVFBMaW5lKGNvbnN0IGNoYXIqIGxpbmUsIExpc3RTdGF0ZSYgc3RhdGUs
IExpc3RSZXN1bHQmIHJlcwogICAgIH0KIAogICAgIHVuc2lnbmVkIGludCBwb3MgPSAwOwotICAg
IHdoaWxlIChwb3MgPCBsaW5lbGVuICYmIG51bXRva3MgPCAoc2l6ZW9mKHRva2Vucykvc2l6ZW9m
KHRva2Vuc1swXSkpICkKKyAgICB3aGlsZSAocG9zIDwgbGluZWxlbiAmJiBudW10b2tzIDwgV1RG
X0FSUkFZX0xFTkdUSCh0b2tlbnMpKQogICAgIHsKICAgICAgIHdoaWxlIChwb3MgPCBsaW5lbGVu
ICYmIAogICAgICAgICAgICAgKGxpbmVbcG9zXSA9PSAnICcgfHwgbGluZVtwb3NdID09ICdcdCcg
fHwgbGluZVtwb3NdID09ICdccicpKQpAQCAtMTU2LDcgKzE1Niw3IEBAIEZUUEVudHJ5VHlwZSBw
YXJzZU9uZUZUUExpbmUoY29uc3QgY2hhciogbGluZSwgTGlzdFN0YXRlJiBzdGF0ZSwgTGlzdFJl
c3VsdCYgcmVzCiAgICAgICByZXR1cm4gUGFyc2luZ0ZhaWxlZChzdGF0ZSk7CiAKICAgICBsaW5l
bGVuX3NhbnNfd3NwID0gJih0b2tlbnNbbnVtdG9rcy0xXVt0b2tsZW5bbnVtdG9rcy0xXV0pIC0g
dG9rZW5zWzBdOwotICAgIGlmIChudW10b2tzID09IChzaXplb2YodG9rZW5zKS9zaXplb2YodG9r
ZW5zWzBdKSkgKQorICAgIGlmIChudW10b2tzID09IFdURl9BUlJBWV9MRU5HVEgodG9rZW5zKSkK
ICAgICB7CiAgICAgICBwb3MgPSBsaW5lbGVuOwogICAgICAgd2hpbGUgKHBvcyA+IDAgJiYgKGxp
bmVbcG9zLTFdID09ICcgJyB8fCBsaW5lW3Bvcy0xXSA9PSAnXHQnKSkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcCBiL1dlYkNvcmUvbWF0aG1sL1Jl
bmRlck1hdGhNTE9wZXJhdG9yLmNwcAppbmRleCA3MmM5OTdiLi43ZjAzOWI5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAKKysrIGIvV2ViQ29yZS9t
YXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCkBAIC0xNjIsNyArMTYyLDcgQEAgdm9pZCBS
ZW5kZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgIAogICAgIC8vIENo
ZWNrIGZvciBhIHN0cmV0Y2hhYmxlIGNoYXJhY3Rlci4KICAgICBpZiAoIXN0cmV0Y2hEaXNhYmxl
ZCAmJiBmaXJzdENoYXIpIHsKLSAgICAgICAgY29uc3QgaW50IG1heEluZGV4ID0gc2l6ZW9mKHN0
cmV0Y2h5Q2hhcmFjdGVycykgLyBzaXplb2Yoc3RyZXRjaHlDaGFyYWN0ZXJzWzBdKTsKKyAgICAg
ICAgY29uc3QgaW50IG1heEluZGV4ID0gV1RGX0FSUkFZX0xFTkdUSChzdHJldGNoeUNoYXJhY3Rl
cnMpOwogICAgICAgICBmb3IgKGluZGV4Kys7IGluZGV4IDwgbWF4SW5kZXg7IGluZGV4KyspIHsK
ICAgICAgICAgICAgIGlmIChzdHJldGNoeUNoYXJhY3RlcnNbaW5kZXhdLmNoYXJhY3RlciA9PSBm
aXJzdENoYXIpIHsKICAgICAgICAgICAgICAgICBpc1N0cmV0Y2h5ID0gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCmluZGV4IGFkNTI1N2UuLjY2MTcyZjcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKKysrIGIv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAtNzQ0LDcgKzc0NCw3
IEBAIHN0YXRpYyB2b2lkIGFkZFNob3J0aGFuZFByb3BlcnRpZXMoKQogICAgICAgICBDU1NQcm9w
ZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpbgogICAgIH07CiAKLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgc2l6ZW9mKGFuaW1hdGFibGVTaG9ydGhhbmRQcm9wZXJ0aWVzKSAvIHNpemVvZihh
bmltYXRhYmxlU2hvcnRoYW5kUHJvcGVydGllc1swXSk7ICsraSkgeworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChhbmltYXRhYmxlU2hvcnRoYW5kUHJvcGVydGll
cyk7ICsraSkgewogICAgICAgICBpbnQgcHJvcGVydHlJRCA9IGFuaW1hdGFibGVTaG9ydGhhbmRQ
cm9wZXJ0aWVzW2ldOwogICAgICAgICBDU1NQcm9wZXJ0eUxvbmdoYW5kIGxvbmdoYW5kID0gbG9u
Z2hhbmRGb3JQcm9wZXJ0eShwcm9wZXJ0eUlEKTsKICAgICAgICAgaWYgKGxvbmdoYW5kLmxlbmd0
aCgpID4gMCkKQEAgLTc1Nyw3ICs3NTcsNyBAQCBzdGF0aWMgdm9pZCBhZGRTaG9ydGhhbmRQcm9w
ZXJ0aWVzKCkKICAgICAgICAgQ1NTUHJvcGVydHlGb250V2VpZ2h0CiAgICAgfTsKIAotICAgIENT
U1Byb3BlcnR5TG9uZ2hhbmQgZm9udExvbmdoYW5kKGFuaW1hdGFibGVGb250UHJvcGVydGllcywg
c2l6ZW9mKGFuaW1hdGFibGVGb250UHJvcGVydGllcykgLyBzaXplb2YoYW5pbWF0YWJsZUZvbnRQ
cm9wZXJ0aWVzWzBdKSk7CisgICAgQ1NTUHJvcGVydHlMb25naGFuZCBmb250TG9uZ2hhbmQoYW5p
bWF0YWJsZUZvbnRQcm9wZXJ0aWVzLCBXVEZfQVJSQVlfTEVOR1RIKGFuaW1hdGFibGVGb250UHJv
cGVydGllcykpOwogICAgIGFkZFByb3BlcnR5V3JhcHBlcihDU1NQcm9wZXJ0eUZvbnQsIG5ldyBT
aG9ydGhhbmRQcm9wZXJ0eVdyYXBwZXIoQ1NTUHJvcGVydHlGb250LCBmb250TG9uZ2hhbmQpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3Bw
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCmluZGV4IDliOWU1MWEu
LjIwNDBmMTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTQ5
MCwxMSArNDkwLDExIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmb250RmFtaWxpZXNXaXRoSW52YWxp
ZENoYXJXaWR0aFtdID0gewogYm9vbCBSZW5kZXJUZXh0Q29udHJvbDo6aGFzVmFsaWRBdmdDaGFy
V2lkdGgoQXRvbWljU3RyaW5nIGZhbWlseSkKIHsKICAgICBzdGF0aWMgSGFzaFNldDxBdG9taWNT
dHJpbmc+KiBmb250RmFtaWxpZXNXaXRoSW52YWxpZENoYXJXaWR0aE1hcCA9IDA7Ci0gICAgCisK
ICAgICBpZiAoIWZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldpZHRoTWFwKSB7CiAgICAgICAg
IGZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldpZHRoTWFwID0gbmV3IEhhc2hTZXQ8QXRvbWlj
U3RyaW5nPjsKLSAgICAgICAgCi0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXpl
b2YoZm9udEZhbWlsaWVzV2l0aEludmFsaWRDaGFyV2lkdGgpIC8gc2l6ZW9mKGZvbnRGYW1pbGll
c1dpdGhJbnZhbGlkQ2hhcldpZHRoWzBdKTsgaSsrKQorCisgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChmb250RmFtaWxpZXNXaXRoSW52YWxpZENoYXJXaWR0
aCk7ICsraSkKICAgICAgICAgICAgIGZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldpZHRoTWFw
LT5hZGQoQXRvbWljU3RyaW5nKGZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldpZHRoW2ldKSk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAg
Yi9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAKaW5kZXggYzZjMWRkZC4uNmFjM2I2
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5j
bHVkZSAiQ2hhcmFjdGVyTmFtZXMuaCIKICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgor
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNs
dWRlIDxDb3JlU2VydmljZXMvQ29yZVNlcnZpY2VzLmg+CkBAIC0xMTQsOCArMTE1LDcgQEAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYXNjaWlMaW5lQnJlYWtUYWJsZVtdWyhhc2NpaUxpbmVC
cmVha1RhYmxlTGFzdENoYXIgLQogI3VuZGVmIERJCiAjdW5kZWYgQUwKIAotQ09NUElMRV9BU1NF
UlQoc2l6ZW9mKGFzY2lpTGluZUJyZWFrVGFibGUpIC8gc2l6ZW9mKGFzY2lpTGluZUJyZWFrVGFi
bGVbMF0pID09IGFzY2lpTGluZUJyZWFrVGFibGVMYXN0Q2hhciAtIGFzY2lpTGluZUJyZWFrVGFi
bGVGaXJzdENoYXIgKyAxLAotICAgICAgICBUZXN0TGluZUJyZWFrVGFibGVDb25zaXN0ZW5jeSk7
CitDT01QSUxFX0FTU0VSVChXVEZfQVJSQVlfTEVOR1RIKGFzY2lpTGluZUJyZWFrVGFibGUpID09
IGFzY2lpTGluZUJyZWFrVGFibGVMYXN0Q2hhciAtIGFzY2lpTGluZUJyZWFrVGFibGVGaXJzdENo
YXIgKyAxLCBUZXN0TGluZUJyZWFrVGFibGVDb25zaXN0ZW5jeSk7CiAKIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzaG91bGRCcmVha0FmdGVyKFVDaGFyIGNoLCBVQ2hhciBuZXh0Q2gpCiB7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1Ry
YW5zZm9ybWFibGUuY3BwCmluZGV4IDAwNmJiOTQuLmU2MzdlN2MgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bWFibGUuY3BwCkBAIC0xNDMsMjUgKzE0MywyNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGFyc2VB
bmRTa2lwVHlwZShjb25zdCBVQ2hhciomIGN1cnJUcmFuc2Zvcm0sIGNvbnN0IFVDaGFyKiBlbgog
ewogICAgIGlmIChjdXJyVHJhbnNmb3JtID49IGVuZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIAorCiAgICAgaWYgKCpjdXJyVHJhbnNmb3JtID09ICdzJykgewotICAgICAgICBpZiAoc2tp
cFN0cmluZyhjdXJyVHJhbnNmb3JtLCBlbmQsIHNrZXdYRGVzYywgc2l6ZW9mKHNrZXdYRGVzYykg
LyBzaXplb2YoVUNoYXIpKSkKKyAgICAgICAgaWYgKHNraXBTdHJpbmcoY3VyclRyYW5zZm9ybSwg
ZW5kLCBza2V3WERlc2MsIFdURl9BUlJBWV9MRU5HVEgoc2tld1hEZXNjKSkpCiAgICAgICAgICAg
ICB0eXBlID0gU1ZHVHJhbnNmb3JtOjpTVkdfVFJBTlNGT1JNX1NLRVdYOwotICAgICAgICBlbHNl
IGlmIChza2lwU3RyaW5nKGN1cnJUcmFuc2Zvcm0sIGVuZCwgc2tld1lEZXNjLCBzaXplb2Yoc2tl
d1lEZXNjKSAvIHNpemVvZihVQ2hhcikpKQorICAgICAgICBlbHNlIGlmIChza2lwU3RyaW5nKGN1
cnJUcmFuc2Zvcm0sIGVuZCwgc2tld1lEZXNjLCBXVEZfQVJSQVlfTEVOR1RIKHNrZXdZRGVzYykp
KQogICAgICAgICAgICAgdHlwZSA9IFNWR1RyYW5zZm9ybTo6U1ZHX1RSQU5TRk9STV9TS0VXWTsK
LSAgICAgICAgZWxzZSBpZiAoc2tpcFN0cmluZyhjdXJyVHJhbnNmb3JtLCBlbmQsIHNjYWxlRGVz
Yywgc2l6ZW9mKHNjYWxlRGVzYykgLyBzaXplb2YoVUNoYXIpKSkKKyAgICAgICAgZWxzZSBpZiAo
c2tpcFN0cmluZyhjdXJyVHJhbnNmb3JtLCBlbmQsIHNjYWxlRGVzYywgV1RGX0FSUkFZX0xFTkdU
SChzY2FsZURlc2MpKSkKICAgICAgICAgICAgIHR5cGUgPSBTVkdUcmFuc2Zvcm06OlNWR19UUkFO
U0ZPUk1fU0NBTEU7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9IGVsc2UgaWYgKHNraXBTdHJpbmcoY3VyclRyYW5zZm9ybSwgZW5kLCB0cmFuc2xhdGVEZXNj
LCBzaXplb2YodHJhbnNsYXRlRGVzYykgLyBzaXplb2YoVUNoYXIpKSkKKyAgICB9IGVsc2UgaWYg
KHNraXBTdHJpbmcoY3VyclRyYW5zZm9ybSwgZW5kLCB0cmFuc2xhdGVEZXNjLCBXVEZfQVJSQVlf
TEVOR1RIKHRyYW5zbGF0ZURlc2MpKSkKICAgICAgICAgdHlwZSA9IFNWR1RyYW5zZm9ybTo6U1ZH
X1RSQU5TRk9STV9UUkFOU0xBVEU7Ci0gICAgZWxzZSBpZiAoc2tpcFN0cmluZyhjdXJyVHJhbnNm
b3JtLCBlbmQsIHJvdGF0ZURlc2MsIHNpemVvZihyb3RhdGVEZXNjKSAvIHNpemVvZihVQ2hhcikp
KQorICAgIGVsc2UgaWYgKHNraXBTdHJpbmcoY3VyclRyYW5zZm9ybSwgZW5kLCByb3RhdGVEZXNj
LCBXVEZfQVJSQVlfTEVOR1RIKHJvdGF0ZURlc2MpKSkKICAgICAgICAgdHlwZSA9IFNWR1RyYW5z
Zm9ybTo6U1ZHX1RSQU5TRk9STV9ST1RBVEU7Ci0gICAgZWxzZSBpZiAoc2tpcFN0cmluZyhjdXJy
VHJhbnNmb3JtLCBlbmQsIG1hdHJpeERlc2MsIHNpemVvZihtYXRyaXhEZXNjKSAvIHNpemVvZihV
Q2hhcikpKQorICAgIGVsc2UgaWYgKHNraXBTdHJpbmcoY3VyclRyYW5zZm9ybSwgZW5kLCBtYXRy
aXhEZXNjLCBXVEZfQVJSQVlfTEVOR1RIKG1hdHJpeERlc2MpKSkKICAgICAgICAgdHlwZSA9IFNW
R1RyYW5zZm9ybTo6U1ZHX1RSQU5TRk9STV9NQVRSSVg7Ci0gICAgZWxzZSAKKyAgICBlbHNlCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdWaWV3
U3BlYy5jcHAKaW5kZXggZDZiYWRlMy4uYTBhNjgzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcv
U1ZHVmlld1NwZWMuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcApAQCAtODEs
NyArODEsNyBAQCBib29sIFNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKGNvbnN0IFN0cmluZyYg
dmlld1NwZWMpCiAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBlbmQpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmICghc2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVuZCwgc3ZnVmlld1Nw
ZWMsIHNpemVvZihzdmdWaWV3U3BlYykgLyBzaXplb2YoVUNoYXIpKSkKKyAgICBpZiAoIXNraXBT
dHJpbmcoY3VyclZpZXdTcGVjLCBlbmQsIHN2Z1ZpZXdTcGVjLCBXVEZfQVJSQVlfTEVOR1RIKHN2
Z1ZpZXdTcGVjKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChjdXJyVmlld1Nw
ZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0gJygnICkKQEAgLTkwLDcgKzkwLDcgQEAgYm9v
bCBTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3BlYyhjb25zdCBTdHJpbmcmIHZpZXdTcGVjKQogCiAg
ICAgd2hpbGUgKGN1cnJWaWV3U3BlYyA8IGVuZCAmJiAqY3VyclZpZXdTcGVjICE9ICcpJykgewog
ICAgICAgICBpZiAoKmN1cnJWaWV3U3BlYyA9PSAndicpIHsKLSAgICAgICAgICAgIGlmIChza2lw
U3RyaW5nKGN1cnJWaWV3U3BlYywgZW5kLCB2aWV3Qm94U3BlYywgc2l6ZW9mKHZpZXdCb3hTcGVj
KSAvIHNpemVvZihVQ2hhcikpKSB7CisgICAgICAgICAgICBpZiAoc2tpcFN0cmluZyhjdXJyVmll
d1NwZWMsIGVuZCwgdmlld0JveFNwZWMsIFdURl9BUlJBWV9MRU5HVEgodmlld0JveFNwZWMpKSkg
ewogICAgICAgICAgICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1Nw
ZWMgIT0gJygnKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICAgICAgY3VyclZpZXdTcGVjKys7CkBAIC0xMDEsNyArMTAxLDcgQEAgYm9vbCBTVkdWaWV3U3Bl
Yzo6cGFyc2VWaWV3U3BlYyhjb25zdCBTdHJpbmcmIHZpZXdTcGVjKQogICAgICAgICAgICAgICAg
IGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0gJyknKQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgY3VyclZpZXdTcGVj
Kys7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHNraXBTdHJpbmcoY3VyclZpZXdTcGVjLCBlbmQs
IHZpZXdUYXJnZXRTcGVjLCBzaXplb2Yodmlld1RhcmdldFNwZWMpIC8gc2l6ZW9mKFVDaGFyKSkp
IHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVuZCwg
dmlld1RhcmdldFNwZWMsIFdURl9BUlJBWV9MRU5HVEgodmlld1RhcmdldFNwZWMpKSkgewogICAg
ICAgICAgICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0g
JygnKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAg
Y29uc3QgVUNoYXIqIHZpZXdUYXJnZXRTdGFydCA9ICsrY3VyclZpZXdTcGVjOwpAQCAtMTE0LDcg
KzExNCw3IEBAIGJvb2wgU1ZHVmlld1NwZWM6OnBhcnNlVmlld1NwZWMoY29uc3QgU3RyaW5nJiB2
aWV3U3BlYykKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfSBlbHNlIGlmICgqY3VyclZpZXdTcGVjID09ICd6JykgewotICAgICAgICAg
ICAgaWYgKCFza2lwU3RyaW5nKGN1cnJWaWV3U3BlYywgZW5kLCB6b29tQW5kUGFuU3BlYywgc2l6
ZW9mKHpvb21BbmRQYW5TcGVjKSAvIHNpemVvZihVQ2hhcikpKQorICAgICAgICAgICAgaWYgKCFz
a2lwU3RyaW5nKGN1cnJWaWV3U3BlYywgZW5kLCB6b29tQW5kUGFuU3BlYywgV1RGX0FSUkFZX0xF
TkdUSCh6b29tQW5kUGFuU3BlYykpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0gJygn
KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEyNSw3ICsxMjUsNyBAQCBib29s
IFNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKGNvbnN0IFN0cmluZyYgdmlld1NwZWMpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY3VyclZpZXdTcGVjKys7CiAg
ICAgICAgIH0gZWxzZSBpZiAoKmN1cnJWaWV3U3BlYyA9PSAncCcpIHsKLSAgICAgICAgICAgIGlm
ICghc2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVuZCwgcHJlc2VydmVBc3BlY3RSYXRpb1NwZWMs
IHNpemVvZihwcmVzZXJ2ZUFzcGVjdFJhdGlvU3BlYykgLyBzaXplb2YoVUNoYXIpKSkKKyAgICAg
ICAgICAgIGlmICghc2tpcFN0cmluZyhjdXJyVmlld1NwZWMsIGVuZCwgcHJlc2VydmVBc3BlY3RS
YXRpb1NwZWMsIFdURl9BUlJBWV9MRU5HVEgocHJlc2VydmVBc3BlY3RSYXRpb1NwZWMpKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVj
ID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcoJykKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0xMzgsNyArMTM4LDcgQEAgYm9vbCBTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3Bl
Yyhjb25zdCBTdHJpbmcmIHZpZXdTcGVjKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgIGN1cnJWaWV3U3BlYysrOwogICAgICAgICB9IGVsc2UgaWYgKCpjdXJyVmll
d1NwZWMgPT0gJ3QnKSB7Ci0gICAgICAgICAgICBpZiAoIXNraXBTdHJpbmcoY3VyclZpZXdTcGVj
LCBlbmQsIHRyYW5zZm9ybVNwZWMsIHNpemVvZih0cmFuc2Zvcm1TcGVjKSAvIHNpemVvZihVQ2hh
cikpKQorICAgICAgICAgICAgaWYgKCFza2lwU3RyaW5nKGN1cnJWaWV3U3BlYywgZW5kLCB0cmFu
c2Zvcm1TcGVjLCBXVEZfQVJSQVlfTEVOR1RIKHRyYW5zZm9ybVNwZWMpKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8
fCAqY3VyclZpZXdTcGVjICE9ICcoJykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdab29tQW5kUGFuLmNwcCBiL1dlYkNvcmUvc3ZnL1NW
R1pvb21BbmRQYW4uY3BwCmluZGV4IDkzYWIzYWQuLjM2ZDRhNjAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvc3ZnL1NWR1pvb21BbmRQYW4uY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1pvb21BbmRQYW4u
Y3BwCkBAIC01Niw5ICs1Niw5IEBAIHN0YXRpYyBjb25zdCBVQ2hhciBtYWduaWZ5W10gPSAgeydt
JywgJ2EnLCAnZycsICduJywgJ2knLCAnZicsICd5J307CiAKIGJvb2wgU1ZHWm9vbUFuZFBhbjo6
cGFyc2Vab29tQW5kUGFuKGNvbnN0IFVDaGFyKiYgc3RhcnQsIGNvbnN0IFVDaGFyKiBlbmQpCiB7
Ci0gICAgaWYgKHNraXBTdHJpbmcoc3RhcnQsIGVuZCwgZGlzYWJsZSwgc2l6ZW9mKGRpc2FibGUp
IC8gc2l6ZW9mKFVDaGFyKSkpCisgICAgaWYgKHNraXBTdHJpbmcoc3RhcnQsIGVuZCwgZGlzYWJs
ZSwgV1RGX0FSUkFZX0xFTkdUSChkaXNhYmxlKSkpCiAgICAgICAgIHNldFpvb21BbmRQYW4oU1ZH
X1pPT01BTkRQQU5fRElTQUJMRSk7Ci0gICAgZWxzZSBpZiAoc2tpcFN0cmluZyhzdGFydCwgZW5k
LCBtYWduaWZ5LCBzaXplb2YobWFnbmlmeSkgLyBzaXplb2YoVUNoYXIpKSkKKyAgICBlbHNlIGlm
IChza2lwU3RyaW5nKHN0YXJ0LCBlbmQsIG1hZ25pZnksIFdURl9BUlJBWV9MRU5HVEgobWFnbmlm
eSkpKQogICAgICAgICBzZXRab29tQW5kUGFuKFNWR19aT09NQU5EUEFOX01BR05JRlkpOwogICAg
IGVsc2UKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWFBh
dGhGdW5jdGlvbnMuY3BwIGIvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCmluZGV4IDhi
NGU3MjAuLjIwOTFhY2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNw
cAorKysgYi9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKQEAgLTcwOCwxMCArNzA4LDkg
QEAgc3RhdGljIHZvaWQgY3JlYXRlRnVuY3Rpb25NYXAoKQogICAgICAgICB7ICJ0cmFuc2xhdGUi
LCB7ICZjcmVhdGVGdW5UcmFuc2xhdGUsIDMgfSB9LAogICAgICAgICB7ICJ0cnVlIiwgeyAmY3Jl
YXRlRnVuVHJ1ZSwgMCB9IH0sCiAgICAgfTsKLSAgICBjb25zdCB1bnNpZ25lZCBpbnQgbnVtRnVu
Y3Rpb25zID0gc2l6ZW9mKGZ1bmN0aW9ucykgLyBzaXplb2YoZnVuY3Rpb25zWzBdKTsKIAogICAg
IGZ1bmN0aW9uTWFwID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBGdW5jdGlvblJlYz47Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUZ1bmN0aW9uczsgKytpKQorICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChmdW5jdGlvbnMpOyArK2kpCiAgICAgICAgIGZ1
bmN0aW9uTWFwLT5zZXQoZnVuY3Rpb25zW2ldLm5hbWUsIGZ1bmN0aW9uc1tpXS5mdW5jdGlvbik7
CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>