<?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>47034</bug_id>
          
          <creation_ts>2010-10-01 17:51:38 -0700</creation_ts>
          <short_desc>gl-teximage.html fails on chromium webkit mac bot</short_desc>
          <delta_ts>2010-10-19 12:16:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>46947</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>288612</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-01 17:51:38 -0700</bug_when>
    <thetext>Below is the diff (for the 16-bit image test):

-PASS pixel 128, 8 should be within 10 units of 15, 121, 0, 255 was 15, 121, 0, 255
+FAIL pixel 128, 8 should be within 10 units of 15, 121, 0, 255 was 73, 177, 0, 255

I guess there is some difference between Leopard and SnowLeopard image decoding, because on my local SnowLeopard the test runs fine, but the bot is Leopard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294991</commentid>
    <comment_count>1</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-15 16:11:32 -0700</bug_when>
    <thetext>It turns out to be an endian issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294996</commentid>
    <comment_count>2</comment_count>
      <attachid>70914</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-15 16:18:48 -0700</bug_when>
    <thetext>Created attachment 70914
patch

Tested on Vangelis&apos;s laptop which is a Leopard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294997</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-15 16:21:15 -0700</bug_when>
    <thetext>Attachment 70914 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/graphics/GraphicsContext3D.cpp:45:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295020</commentid>
    <comment_count>4</comment_count>
      <attachid>70921</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-15 16:58:58 -0700</bug_when>
    <thetext>Created attachment 70921
revised patch: fixed the style issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295023</commentid>
    <comment_count>5</comment_count>
      <attachid>70923</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-15 17:02:00 -0700</bug_when>
    <thetext>Created attachment 70923
revised patch: remove some temporary code I added for debugging (forgot to remove them)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295031</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-15 17:12:43 -0700</bug_when>
    <thetext>Attachment 70914 did not build on chromium:
Build output: http://queues.webkit.org/results/4396055</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295099</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-15 19:21:13 -0700</bug_when>
    <thetext>Attachment 70923 did not build on chromium:
Build output: http://queues.webkit.org/results/4469051</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295585</commentid>
    <comment_count>8</comment_count>
      <attachid>71050</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-18 10:11:08 -0700</bug_when>
    <thetext>Created attachment 71050
revised patch: fixed the skia port compile error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295612</commentid>
    <comment_count>9</comment_count>
      <attachid>71050</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-10-18 10:54:21 -0700</bug_when>
    <thetext>Comment on attachment 71050
revised patch: fixed the skia port compile error

There are two issues with this code as written. One is that it does not properly handle the case where the machine&apos;s native byte order is big endian rather than little endian. The second and more significant is that it unnecessarily complicates the code for a relatively rare case of 16-bit PNGs with byte order opposite of the machine&apos;s native byte order. The endianness switch does not need to be passed all the way down to the unpacking routine. Instead, another few unpacking routines for 16-bit source values can be added like unpackR16ToRGBA8Swapped, where that would be used if the source byte order was big endian and the native machine&apos;s byte order is little endian. A run-time test can be added to packPixels to determine whether the machine is big or little endian. &quot;uint16_t tempValue = 1; if (reinterpret_cast&lt;uint8_t*&gt;(&amp;tempValue)[0] == 1) { /* little endian */ } else { /* big endian */ }&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295783</commentid>
    <comment_count>10</comment_count>
      <attachid>71091</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-18 15:13:36 -0700</bug_when>
    <thetext>Created attachment 71091
revised patch: responding to kbr&apos;s review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296309</commentid>
    <comment_count>11</comment_count>
      <attachid>71091</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-10-19 11:39:01 -0700</bug_when>
    <thetext>Comment on attachment 71091
revised patch: responding to kbr&apos;s review

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

This looks better. I note that it looks like there was a preexisting bug in the calls to computeIncrementParameters for the 16-bit-per-pixel formats. It would be worth adding an assert in computeIncrementParameters of the form &quot;ASSERT(!(bytesPerPixel % elementSizeInBytes))&quot;.

&gt; WebCore/platform/graphics/cg/GraphicsContext3DCG.cpp:76
&gt; +    bool srcByteOrder16Big;

I don&apos;t think the compiler is going to be able to figure out that this is always initialized before use. Please initialize it to false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296325</commentid>
    <comment_count>12</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-19 12:16:31 -0700</bug_when>
    <thetext>Committed r70073: &lt;http://trac.webkit.org/changeset/70073&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70914</attachid>
            <date>2010-10-15 16:18:48 -0700</date>
            <delta_ts>2010-10-15 16:58:58 -0700</delta_ts>
            <desc>patch</desc>
            <filename>png16.patch</filename>
            <type>text/plain</type>
            <size>42413</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTg5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMTAtMTUgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnbC10ZXhp
bWFnZS5odG1sIGZhaWxzIG9uIGNocm9taXVtIHdlYmtpdCBtYWMgYm90CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzAzNAorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOiBBZGQgcGFyYW1ldGVyIG9mIGJ5
dGUgb3JkZXIuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0Q29sb3IxNlRvOCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdFRleHR1cmVEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRvVW5wYWNraW5nQW5kUGFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpk
b1BhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhl
bHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cu
Y3BwOiBBZGRpbmcgY29kZSB0byBoYW5kbGUgYnl0ZSBvcmRlci4KKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorCiAyMDEwLTEwLTE1ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUgUGV0
ZXJzb24uCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmNwcAkocmV2aXNpb24gNjk4MDYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTEgKzM1LDE3IEBA
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKIAorI2luY2x1ZGUg
PHd0Zi9VbnVzZWRQYXJhbS5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB1aW50
OF90IGNvbnZlcnRDb2xvcjE2VG84KHVpbnQxNl90IHZhbHVlKQorc3RhdGljIHVpbnQ4X3QgY29u
dmVydENvbG9yMTZUbzgodWludDE2X3QgdmFsdWUsIGJvb2wgYnl0ZU9yZGVyQmlnKQogewotICAg
IHJldHVybiB2YWx1ZSA+PiA4OworICAgIHVpbnQ4X3QqIHZhbHVlOCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8dWludDhfdCo+KCZ2YWx1ZSk7CisgICAgaWYgKGJ5dGVPcmRlckJpZykKKyAgICAgICAgcmV0
dXJuIHZhbHVlOFswXTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiB2YWx1ZThbMV07CiB9CiAK
IFBhc3NSZWZQdHI8RHJhd2luZ0J1ZmZlcj4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZURyYXdp
bmdCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSkKQEAgLTEzMSw2ICsxMzcsNyBAQCBib29sIEdy
YXBoaWNzQ29udGV4dDNEOjpleHRyYWN0SW1hZ2VEYXRhCiAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLAogICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgIDAs
CisgICAgICAgICAgICAgICAgICAgIGZhbHNlLAogICAgICAgICAgICAgICAgICAgICBmb3JtYXQs
CiAgICAgICAgICAgICAgICAgICAgIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgIHByZW11bHRp
cGx5QWxwaGEgPyBrQWxwaGFEb1ByZW11bHRpcGx5IDoga0FscGhhRG9Ob3RoaW5nLApAQCAtMjA2
LDcgKzIxMyw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmV4dHJhY3RUZXh0dXJlRGEKIAog
ICAgIGlmICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4ocGl4ZWxzKSwK
ICAgICAgICAgICAgICAgICAgICAgc291cmNlRGF0YUZvcm1hdCwKLSAgICAgICAgICAgICAgICAg
ICAgd2lkdGgsIGhlaWdodCwgdW5wYWNrQWxpZ25tZW50LAorICAgICAgICAgICAgICAgICAgICB3
aWR0aCwgaGVpZ2h0LCB1bnBhY2tBbGlnbm1lbnQsIGZhbHNlLAogICAgICAgICAgICAgICAgICAg
ICBmb3JtYXQsIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgIChwcmVtdWx0aXBseUFscGhhID8g
a0FscGhhRG9QcmVtdWx0aXBseSA6IGtBbHBoYURvTm90aGluZyksCiAgICAgICAgICAgICAgICAg
ICAgIGRhdGEuZGF0YSgpKSkKQEAgLTI1MCw3MiArMjU3LDc3IEBAIG5hbWVzcGFjZSB7CiAvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIC8vIFBpeGVsIHVucGFja2luZyByb3V0aW5lcy4KIAotdm9pZCB1bnBhY2tS
R0JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikK
K3ZvaWQgdW5wYWNrUkdCQThUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCog
ZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcpCiB7CisgICAgVU5VU0VEX1BB
UkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsw
XTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJjZVsxXTsKICAgICBkZXN0aW5hdGlvblsyXSA9
IHNvdXJjZVsyXTsKICAgICBkZXN0aW5hdGlvblszXSA9IHNvdXJjZVszXTsKIH0KIAotdm9pZCB1
bnBhY2tSR0JBMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uKQordm9pZCB1bnBhY2tSR0JBMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2Us
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQogewotICAg
IGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKLSAgICBkZXN0
aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7Ci0gICAgZGVzdGluYXRp
b25bMl0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMl0pOwotICAgIGRlc3RpbmF0aW9uWzNd
ID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzNdKTsKKyAgICBkZXN0aW5hdGlvblswXSA9IGNv
bnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRl
c3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdLCBzb3VyY2VCeXRlT3Jk
ZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2Vb
Ml0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRD
b2xvcjE2VG84KHNvdXJjZVszXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOwogfQogCi12b2lkIHVu
cGFja1JHQjhUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRp
b24pCit2b2lkIHVucGFja1JHQjhUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcpCiB7CisgICAgVU5VU0VE
X1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJj
ZVswXTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJjZVsxXTsKICAgICBkZXN0aW5hdGlvblsy
XSA9IHNvdXJjZVsyXTsKICAgICBkZXN0aW5hdGlvblszXSA9IDB4RkY7CiB9CiAKLXZvaWQgdW5w
YWNrUkdCMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0
aW9uKQordm9pZCB1bnBhY2tSR0IxNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWlu
dDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcpCiB7Ci0gICAgZGVz
dGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOwotICAgIGRlc3RpbmF0
aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdKTsKLSAgICBkZXN0aW5hdGlvblsy
XSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsyXSk7CisgICAgZGVzdGluYXRpb25bMF0gPSBj
b252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBk
ZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSwgc291cmNlQnl0ZU9y
ZGVyMTZCaWcpOworICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNl
WzJdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CiAgICAgZGVzdGluYXRpb25bM10gPSAweEZGOwog
fQogCi12b2lkIHVucGFja0FSR0I4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tBUkdCOFRvUkdCQTgoY29uc3QgdWludDhfdCog
c291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykK
IHsKKyAgICBVTlVTRURfUEFSQU0oc291cmNlQnl0ZU9yZGVyMTZCaWcpOwogICAgIGRlc3RpbmF0
aW9uWzBdID0gc291cmNlWzFdOwogICAgIGRlc3RpbmF0aW9uWzFdID0gc291cmNlWzJdOwogICAg
IGRlc3RpbmF0aW9uWzJdID0gc291cmNlWzNdOwogICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNl
WzBdOwogfQogCi12b2lkIHVucGFja0FSR0IxNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja0FSR0IxNlRvUkdCQTgoY29uc3Qg
dWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9y
ZGVyMTZCaWcpCiB7Ci0gICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMV0pOwotICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzJd
KTsKLSAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVszXSk7Ci0g
ICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOworICAgIGRl
c3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdLCBzb3VyY2VCeXRlT3Jk
ZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2Vb
Ml0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRD
b2xvcjE2VG84KHNvdXJjZVszXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRlc3RpbmF0
aW9uWzNdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdLCBzb3VyY2VCeXRlT3JkZXIxNkJp
Zyk7CiB9CiAKLXZvaWQgdW5wYWNrQkdSQThUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwg
dWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja0JHUkE4VG9SR0JBOChjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2
QmlnKQogeworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CiAgICAgZGVz
dGluYXRpb25bMF0gPSBzb3VyY2VbMl07CiAgICAgZGVzdGluYXRpb25bMV0gPSBzb3VyY2VbMV07
CiAgICAgZGVzdGluYXRpb25bMl0gPSBzb3VyY2VbMF07CiAgICAgZGVzdGluYXRpb25bM10gPSBz
b3VyY2VbM107CiB9CiAKLXZvaWQgdW5wYWNrQkdSQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCog
c291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrQkdSQTE2VG9SR0JBOChj
b25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3VyY2VC
eXRlT3JkZXIxNkJpZykKIHsKLSAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVsyXSk7Ci0gICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMV0pOwotICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBd
KTsKLSAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVszXSk7Cisg
ICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMl0sIHNvdXJjZUJ5
dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNv
dXJjZVsxXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRlc3RpbmF0aW9uWzJdID0gY29u
dmVydENvbG9yMTZUbzgoc291cmNlWzBdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CisgICAgZGVz
dGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbM10sIHNvdXJjZUJ5dGVPcmRl
cjE2QmlnKTsKIH0KIAotdm9pZCB1bnBhY2tSR0JBNTU1MVRvUkdCQTgoY29uc3QgdWludDE2X3Qq
IHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja1JHQkE1NTUxVG9SR0JB
OChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3Vy
Y2VCeXRlT3JkZXIxNkJpZykKIHsKKyAgICBVTlVTRURfUEFSQU0oc291cmNlQnl0ZU9yZGVyMTZC
aWcpOwogICAgIHVpbnQxNl90IHBhY2tlZFZhbHVlID0gc291cmNlWzBdOwogICAgIHVpbnQ4X3Qg
ciA9IHBhY2tlZFZhbHVlID4+IDExOwogICAgIHVpbnQ4X3QgZyA9IChwYWNrZWRWYWx1ZSA+PiA2
KSAmIDB4MUY7CkBAIC0zMjYsOCArMzM4LDkgQEAgdm9pZCB1bnBhY2tSR0JBNTU1MVRvUkdCQTgo
Y29uc3QgdWludDE2XwogICAgIGRlc3RpbmF0aW9uWzNdID0gKHBhY2tlZFZhbHVlICYgMHgxKSA/
IDB4RkYgOiAweDA7CiB9CiAKLXZvaWQgdW5wYWNrUkdCQTQ0NDRUb1JHQkE4KGNvbnN0IHVpbnQx
Nl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tSR0JBNDQ0NFRv
UkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wg
c291cmNlQnl0ZU9yZGVyMTZCaWcpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRl
cjE2QmlnKTsKICAgICB1aW50MTZfdCBwYWNrZWRWYWx1ZSA9IHNvdXJjZVswXTsKICAgICB1aW50
OF90IHIgPSBwYWNrZWRWYWx1ZSA+PiAxMjsKICAgICB1aW50OF90IGcgPSAocGFja2VkVmFsdWUg
Pj4gOCkgJiAweDBGOwpAQCAtMzM5LDggKzM1Miw5IEBAIHZvaWQgdW5wYWNrUkdCQTQ0NDRUb1JH
QkE4KGNvbnN0IHVpbnQxNl8KICAgICBkZXN0aW5hdGlvblszXSA9IGEgPDwgNCB8IGE7CiB9CiAK
LXZvaWQgdW5wYWNrUkdCNTY1VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUkdCNTY1VG9SR0JBOChjb25zdCB1aW50MTZfdCog
c291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykK
IHsKKyAgICBVTlVTRURfUEFSQU0oc291cmNlQnl0ZU9yZGVyMTZCaWcpOwogICAgIHVpbnQxNl90
IHBhY2tlZFZhbHVlID0gc291cmNlWzBdOwogICAgIHVpbnQ4X3QgciA9IHBhY2tlZFZhbHVlID4+
IDExOwogICAgIHVpbnQ4X3QgZyA9IChwYWNrZWRWYWx1ZSA+PiA1KSAmIDB4M0Y7CkBAIC0zNTEs
NjggKzM2NSw3MiBAQCB2b2lkIHVucGFja1JHQjU2NVRvUkdCQTgoY29uc3QgdWludDE2X3QqCiAg
ICAgZGVzdGluYXRpb25bM10gPSAweEZGOwogfQogCi12b2lkIHVucGFja1I4VG9SR0JBOChjb25z
dCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tSOFRv
UkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgYm9vbCBz
b3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKKyAgICBVTlVTRURfUEFSQU0oc291cmNlQnl0ZU9yZGVy
MTZCaWcpOwogICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwogICAgIGRlc3RpbmF0aW9u
WzFdID0gc291cmNlWzBdOwogICAgIGRlc3RpbmF0aW9uWzJdID0gc291cmNlWzBdOwogICAgIGRl
c3RpbmF0aW9uWzNdID0gMHhGRjsKIH0KIAotdm9pZCB1bnBhY2tSMTZUb1JHQkE4KGNvbnN0IHVp
bnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tSMTZUb1JH
QkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNv
dXJjZUJ5dGVPcmRlcjE2QmlnKQogewotICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9y
MTZUbzgoc291cmNlWzBdKTsKLSAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVswXSk7Ci0gICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMF0pOworICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBd
LCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29s
b3IxNlRvOChzb3VyY2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlv
blsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcp
OwogICAgIGRlc3RpbmF0aW9uWzNdID0gMHhGRjsKIH0KIAotdm9pZCB1bnBhY2tSQThUb1JHQkE4
KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFj
a1JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwg
Ym9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKKyAgICBVTlVTRURfUEFSQU0oc291cmNlQnl0
ZU9yZGVyMTZCaWcpOwogICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwogICAgIGRlc3Rp
bmF0aW9uWzFdID0gc291cmNlWzBdOwogICAgIGRlc3RpbmF0aW9uWzJdID0gc291cmNlWzBdOwog
ICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzFdOwogfQogCi12b2lkIHVucGFja1JBMTZUb1JH
QkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1
bnBhY2tSQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKLSAgICBkZXN0aW5hdGlvblswXSA9
IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7Ci0gICAgZGVzdGluYXRpb25bMV0gPSBjb252
ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOwotICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENv
bG9yMTZUbzgoc291cmNlWzBdKTsKLSAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xvcjE2
VG84KHNvdXJjZVsxXSk7CisgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRvOChz
b3VyY2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsxXSA9IGNv
bnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRl
c3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdLCBzb3VyY2VCeXRlT3Jk
ZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2Vb
MV0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKIH0KIAotdm9pZCB1bnBhY2tBUjhUb1JHQkE4KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja0FS
OFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgYm9v
bCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKKyAgICBVTlVTRURfUEFSQU0oc291cmNlQnl0ZU9y
ZGVyMTZCaWcpOwogICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzFdOwogICAgIGRlc3RpbmF0
aW9uWzFdID0gc291cmNlWzFdOwogICAgIGRlc3RpbmF0aW9uWzJdID0gc291cmNlWzFdOwogICAg
IGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzBdOwogfQogCi12b2lkIHVucGFja0FSMTZUb1JHQkE4
KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBh
Y2tBUjE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
biwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKLSAgICBkZXN0aW5hdGlvblswXSA9IGNv
bnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7Ci0gICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0
Q29sb3IxNlRvOChzb3VyY2VbMV0pOwotICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9y
MTZUbzgoc291cmNlWzFdKTsKLSAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVswXSk7CisgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMV0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVsxXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRlc3Rp
bmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdLCBzb3VyY2VCeXRlT3JkZXIx
NkJpZyk7CisgICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0s
IHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKIH0KIAotdm9pZCB1bnBhY2tBOFRvUkdCQTgoY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrQThUb1JH
QkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291
cmNlQnl0ZU9yZGVyMTZCaWcpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2
QmlnKTsKICAgICBkZXN0aW5hdGlvblswXSA9IDB4MDsKICAgICBkZXN0aW5hdGlvblsxXSA9IDB4
MDsKICAgICBkZXN0aW5hdGlvblsyXSA9IDB4MDsKICAgICBkZXN0aW5hdGlvblszXSA9IHNvdXJj
ZVswXTsKIH0KIAotdm9pZCB1bnBhY2tBMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2Us
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tBMTZUb1JHQkE4KGNvbnN0IHVpbnQx
Nl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2
QmlnKQogewogICAgIGRlc3RpbmF0aW9uWzBdID0gMHgwOwogICAgIGRlc3RpbmF0aW9uWzFdID0g
MHgwOwogICAgIGRlc3RpbmF0aW9uWzJdID0gMHgwOwotICAgIGRlc3RpbmF0aW9uWzNdID0gY29u
dmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRD
b2xvcjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOwogfQogCiAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KQEAgLTYzMywxMyArNjUxLDE0IEBAIHZvaWQgcGFja1JHQkE4VG9VbnNpZ25lZFNo
b3J0NTY1VW5tdWx0aXAKIC8vIGlzIG5vdCBpbiBSR0JBOCBmb3JtYXQsIG9yIHRoZSB1bnBhY2sg
YWxpZ25tZW50IHNwZWNpZmllcyB0aGF0IHJvd3MKIC8vIGFyZSBub3QgdGlnaHRseSBwYWNrZWQu
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEZXN0VHlwZSwKLSAgICAg
ICAgIHZvaWQgdW5wYWNraW5nRnVuYyhjb25zdCBTb3VyY2VUeXBlKiwgdWludDhfdCopLAorICAg
ICAgICAgdm9pZCB1bnBhY2tpbmdGdW5jKGNvbnN0IFNvdXJjZVR5cGUqLCB1aW50OF90KiwgYm9v
bCksCiAgICAgICAgICB2b2lkIHBhY2tpbmdGdW5jKGNvbnN0IHVpbnQ4X3QqLCBEZXN0VHlwZSop
Pgogc3RhdGljIHZvaWQgZG9VbnBhY2tpbmdBbmRQYWNraW5nKGNvbnN0IFNvdXJjZVR5cGUqIHNv
dXJjZURhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50
IHdpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBo
ZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHNv
dXJjZUVsZW1lbnRzUGVyUGl4ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUm93LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRGVzdFR5cGUqIGRlc3RpbmF0aW9uRGF0YSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZGVzdGluYXRpb25FbGVtZW50c1Bl
clBpeGVsKQogewpAQCAtNjQ4LDcgKzY2Nyw3IEBAIHN0YXRpYyB2b2lkIGRvVW5wYWNraW5nQW5k
UGFja2luZyhjb25zdCAKICAgICAgICAgY29uc3QgU291cmNlVHlwZSogZW5kUG9pbnRlciA9IHNv
dXJjZURhdGEgKyBudW1FbGVtZW50czsKICAgICAgICAgdWludDhfdCB0ZW1wb3JhcnlSR0JBRGF0
YVs0XTsKICAgICAgICAgd2hpbGUgKHNvdXJjZURhdGEgPCBlbmRQb2ludGVyKSB7Ci0gICAgICAg
ICAgICB1bnBhY2tpbmdGdW5jKHNvdXJjZURhdGEsIHRlbXBvcmFyeVJHQkFEYXRhKTsKKyAgICAg
ICAgICAgIHVucGFja2luZ0Z1bmMoc291cmNlRGF0YSwgdGVtcG9yYXJ5UkdCQURhdGEsIHNvdXJj
ZUJ5dGVPcmRlcjE2QmlnKTsKICAgICAgICAgICAgIHBhY2tpbmdGdW5jKHRlbXBvcmFyeVJHQkFE
YXRhLCBkZXN0aW5hdGlvbkRhdGEpOwogICAgICAgICAgICAgc291cmNlRGF0YSArPSBzb3VyY2VF
bGVtZW50c1BlclBpeGVsOwogICAgICAgICAgICAgZGVzdGluYXRpb25EYXRhICs9IGRlc3RpbmF0
aW9uRWxlbWVudHNQZXJQaXhlbDsKQEAgLTY1OCw3ICs2NzcsNyBAQCBzdGF0aWMgdm9pZCBkb1Vu
cGFja2luZ0FuZFBhY2tpbmcoY29uc3QgCiAgICAgICAgIGZvciAodW5zaWduZWQgaW50IHkgPSAw
OyB5IDwgaGVpZ2h0OyArK3kpIHsKICAgICAgICAgICAgIGNvbnN0IFNvdXJjZVR5cGUqIGN1cnJl
bnRTb3VyY2UgPSBzb3VyY2VEYXRhOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgeCA9
IDA7IHggPCB3aWR0aDsgKyt4KSB7Ci0gICAgICAgICAgICAgICAgdW5wYWNraW5nRnVuYyhjdXJy
ZW50U291cmNlLCB0ZW1wb3JhcnlSR0JBRGF0YSk7CisgICAgICAgICAgICAgICAgdW5wYWNraW5n
RnVuYyhjdXJyZW50U291cmNlLCB0ZW1wb3JhcnlSR0JBRGF0YSwgc291cmNlQnl0ZU9yZGVyMTZC
aWcpOwogICAgICAgICAgICAgICAgIHBhY2tpbmdGdW5jKHRlbXBvcmFyeVJHQkFEYXRhLCBkZXN0
aW5hdGlvbkRhdGEpOwogICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgKz0gc291cmNlRWxl
bWVudHNQZXJQaXhlbDsKICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkRhdGEgKz0gZGVzdGlu
YXRpb25FbGVtZW50c1BlclBpeGVsOwpAQCAtNjk4LDYgKzcxNyw3IEBAIHN0YXRpYyB2b2lkIGRv
UGFja2luZyhjb25zdCB2b2lkKiBzb3VyY2UKICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhlaWdodCwK
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlVW5wYWNrQWxpZ25tZW50
LAorICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcsCiAgICAg
ICAgICAgICAgICAgICAgICAgRGVzdFR5cGUqIGRlc3RpbmF0aW9uRGF0YSwKICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBpbnQgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKQogewpA
QCAtNzE1LDExNiArNzM1LDExNiBAQCBzdGF0aWMgdm9pZCBkb1BhY2tpbmcoY29uc3Qgdm9pZCog
c291cmNlCiAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25EYXRhICs9IGRlc3RpbmF0aW9uRWxl
bWVudHNQZXJQaXhlbDsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrUkdCQThU
b1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURh
dGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwor
ICAgICAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBh
Y2tSR0JBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4o
c291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJj
ZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBk
ZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkdCQTE2OiB7
CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVt
ZW50c1BlclJvdzsKLSAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4o
d2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
ICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1
aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQkExNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0
aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRh
LCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBjb21wdXRlSW5jcmVtZW50
UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDgsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNv
dXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAgICAgIGRv
VW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQkExNlRvUkdC
QTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEp
LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1Bl
clJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25F
bGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0I4OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBz
b3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKICAgICAgICAgY29t
cHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDMsIHNvdXJjZVVucGFja0Fs
aWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7
Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNr
UkdCOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291
cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVs
ZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhl
bCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5w
YWNrUkdCOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4o
c291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJj
ZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBk
ZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQjE2OiB7CiAgICAgICAgIHVu
c2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsK
LSAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDMsIHNv
dXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVt
ZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVz
dFR5cGUsIHVucGFja1JHQjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0
IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9u
RWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVp
bnQxNl90Pih3aWR0aCwgNiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQ
YWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkdCMTZUb1JHQkE4LCBwYWNraW5nRnVu
Yz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdo
dCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5
dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhl
bCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpr
U291cmNlRm9ybWF0QVJHQjg6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRz
UGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50
UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9V
bnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tBUkdCOFRvUkdCQTgs
IHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdp
ZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93
LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAg
IGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrQVJHQjhUb1JH
QkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEp
LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1Bl
clJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25F
bGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRBUkdCMTY6IHsKICAgICAgICAgdW5zaWduZWQgaW50
IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBj
b21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNr
QWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93
KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5w
YWNrQVJHQjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90
Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNv
dXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQ
ZXJQaXhlbCk7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3
aWR0aCwgOCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwg
JnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVp
bnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQVJHQjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRp
Y19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIx
NkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZv
cm1hdEJHUkE4OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVs
LCBzb3VyY2VFbGVtZW50c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRl
cnM8dWludDhfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1l
bnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5n
QW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrQkdSQThUb1JHQkE4LCBwYWNraW5n
RnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVp
Z2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGlu
YXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBkb1VucGFj
a2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0JHUkE4VG9SR0JBOCwgcGFj
a2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgs
IGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNv
dXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQ
ZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjprU291cmNlRm9ybWF0QkdSQTE2OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VF
bGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKLSAgICAgICAgY29tcHV0ZUlu
Y3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVu
dCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAg
ICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja0JHUkEx
NlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJj
ZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVt
ZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwp
OworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDgs
IHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VF
bGVtZW50c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwg
RGVzdFR5cGUsIHVucGFja0JHUkExNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxj
b25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50
c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRl
c3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0JB
NTU1MTogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291
cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVp
bnQxNl90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQ
YWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkdCQTU1NTFUb1JHQkE4LCBwYWNraW5n
RnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhl
aWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3Rp
bmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgZG9VbnBh
Y2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkdCQTU1NTFUb1JHQkE4
LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwg
d2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJS
b3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxl
bWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjprU291cmNlRm9ybWF0UkdCQTQ0NDQ6IHsKICAgICAgICAgdW5zaWduZWQgaW50
IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBj
b21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDIsIHNvdXJjZVVucGFj
a0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJv
dyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVu
cGFja1JHQkE0NDQ0VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQx
Nl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
IHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVu
dHNQZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVz
dFR5cGUsIHVucGFja1JHQkE0NDQ0VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNv
bnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRz
UGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVz
dGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQjU2
NTogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNl
RWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQx
Nl90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNr
aW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkdCNTY1VG9SR0JBOCwgcGFja2luZ0Z1bmM+
KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQs
IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlv
bkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5n
QW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQjU2NVRvUkdCQTgsIHBhY2tp
bmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwg
aGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291
cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1Bl
clBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OmtTb3VyY2VGb3JtYXRSODogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVu
dHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1l
bnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAxLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZz
b3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBk
b1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1I4VG9SR0JBOCwg
cGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lk
dGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3cs
IGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAg
ZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tSOFRvUkdCQTgs
IHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdp
ZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93
LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1l
bnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6a1NvdXJjZUZvcm1hdFIxNjogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNl
RWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAgICAgIGNvbXB1dGVJ
bmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAxLCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAg
ICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSMTZU
b1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VE
YXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVu
dHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsK
KyAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDE2X3Q+KHdpZHRoLCAyLCBz
b3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxl
bWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERl
c3RUeXBlLCB1bnBhY2tSMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3Qg
dWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5h
dGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkE4OiB7CiAg
ICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lk
dGgsIDIsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZz
b3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50
OF90LCBEZXN0VHlwZSwgdW5wYWNrUkE4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0
PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVu
dHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGlu
YXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVp
bnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tSQThUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nh
c3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVt
ZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcs
IGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRS
QTE2OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3Vy
Y2VFbGVtZW50c1BlclJvdzsKLSAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWlu
dDhfdD4od2lkdGgsIDIsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFj
a2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JBMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4o
c3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwg
c291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9u
RGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgY29tcHV0ZUluY3Jl
bWVudFBhcmFtZXRlcnM8dWludDE2X3Q+KHdpZHRoLCA0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQs
ICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAg
ICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSQTE2VG9S
R0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0
YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRz
UGVyUm93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlv
bkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEFSODogewogICAgICAgICB1bnNpZ25lZCBpbnQg
c291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNv
bXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tB
bGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cp
OwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFj
a0FSOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291
cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVs
ZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhl
bCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5w
YWNrQVI4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihz
b3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNl
RWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRl
c3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QVIxNjogewogICAgICAgICB1bnNp
Z25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0g
ICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAyLCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVu
dHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RU
eXBlLCB1bnBhY2tBUjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVp
bnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4
ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxl
bWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQx
Nl90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNr
aW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQVIxNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihz
dGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBz
b3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9y
ZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3Vy
Y2VGb3JtYXRBODogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhl
bCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0
ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAxLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVt
ZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2lu
Z0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0E4VG9SR0JBOCwgcGFja2luZ0Z1
bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdo
dCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0
aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgZG9VbnBhY2tp
bmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tBOFRvUkdCQTgsIHBhY2tpbmdG
dW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWln
aHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VC
eXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4
ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
a1NvdXJjZUZvcm1hdEExNjogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQ
YXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAxLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3Vy
Y2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1Vu
cGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tBMTZUb1JHQkE4LCBw
YWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lk
dGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3cs
IGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAg
Y29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDE2X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBh
Y2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJS
b3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1
bnBhY2tBMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3Qq
Pihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291
cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEs
IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICB9CkBAIC04MzUsNiArODU1LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVs
cyhjb25zdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg
d2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBo
ZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBz
b3VyY2VVbnBhY2tBbGlnbm1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGludCBkZXN0aW5hdGlvbkZvcm1hdCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRlc3RpbmF0aW9uVHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxwaGFPcCBhbHBoYU9wLApAQCAtODUyLDEzICs4
NzMsMTMgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyhjb25zdAogICAgICAg
ICBjYXNlIFJHQjoKICAgICAgICAgICAgIHN3aXRjaCAoYWxwaGFPcCkgewogICAgICAgICAgICAg
Y2FzZSBrQWxwaGFEb05vdGhpbmc6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3Qs
IHBhY2tSR0JBOFRvUkdCOD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhl
aWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMyk7CisgICAgICAgICAg
ICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCOD4oc291cmNlRGF0YSwgc291
cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3Vy
Y2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDMpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAgICAgICAgICAg
IGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQjhQcmVtdWx0aXBseT4oc291cmNlRGF0
YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50
LCBkZXN0aW5hdGlvbiwgMyk7CisgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBh
Y2tSR0JBOFRvUkdCOFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3
aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2Qmln
LCBkZXN0aW5hdGlvbiwgMyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIGtBbHBoYURvVW5tdWx0aXBseToKLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhf
dCwgcGFja1JHQkE4VG9SR0I4VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1h
dCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMyk7
CisgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCOFVubXVs
dGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJj
ZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uLCAzKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFr
OwpAQCAtODY2LDEzICs4ODcsMTMgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVs
cyhjb25zdAogICAgICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgICAgICBjYXNl
IGtBbHBoYURvTm90aGluZzoKICAgICAgICAgICAgICAgICBBU1NFUlQoc291cmNlRGF0YUZvcm1h
dCAhPSBrU291cmNlRm9ybWF0UkdCQTggfHwgc291cmNlVW5wYWNrQWxpZ25tZW50ID4gNCk7IC8v
IEhhbmRsZWQgYWJvdmUgd2l0aCBmYXN0IGNhc2UuCi0gICAgICAgICAgICAgICAgZG9QYWNraW5n
PHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQTg+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQs
IHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDQpOwor
ICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQkE4Pihzb3Vy
Y2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGln
bm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgNCk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIGtBbHBoYURvUHJlbXVsdGlwbHk6Ci0gICAg
ICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQThQcmVtdWx0aXBs
eT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5w
YWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgNCk7CisgICAgICAgICAgICAgICAgZG9QYWNraW5n
PHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQThQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNl
RGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VC
eXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6Ci0gICAgICAgICAgICAgICAgZG9Q
YWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQThVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBz
b3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRl
c3RpbmF0aW9uLCA0KTsKKyAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JH
QkE4VG9SR0JBOFVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRo
LCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRl
c3RpbmF0aW9uLCA0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04ODIsNyArOTAz
LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyhjb25zdAogICAgICAgICAg
ICAgLy8gRnJvbSB0aGUgZGVza3RvcCBPcGVuR0wgY29udmVyc2lvbiBydWxlcyAoT3BlbkdMIDIu
MQogICAgICAgICAgICAgLy8gc3BlY2lmaWNhdGlvbiwgVGFibGUgMy4xNSksIHRoZSBhbHBoYSBj
aGFubmVsIGlzIGNob3NlbgogICAgICAgICAgICAgLy8gZnJvbSB0aGUgUkdCQSBkYXRhLgotICAg
ICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvQTg+KHNvdXJjZURhdGEsIHNv
dXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVz
dGluYXRpb24sIDEpOworICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRv
QTg+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVu
cGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uLCAxKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIExVTUlOQU5DRToKICAgICAgICAgICAgIC8v
IEZyb20gdGhlIGRlc2t0b3AgT3BlbkdMIGNvbnZlcnNpb24gcnVsZXMgKE9wZW5HTCAyLjEKQEAg
LTg5MCwxMyArOTExLDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29u
c3QKICAgICAgICAgICAgIC8vIGZyb20gdGhlIFJHQkEgZGF0YS4KICAgICAgICAgICAgIHN3aXRj
aCAoYWxwaGFPcCkgewogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb05vdGhpbmc6Ci0gICAgICAg
ICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUjg+KHNvdXJjZURhdGEsIHNv
dXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVz
dGluYXRpb24sIDEpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdC
QThUb1I4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIGtBbHBoYURvUHJlbXVs
dGlwbHk6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUjhQ
cmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
c291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CisgICAgICAgICAgICAgICAg
ZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUjhQcmVtdWx0aXBseT4oc291cmNlRGF0YSwg
c291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBz
b3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6Ci0gICAgICAgICAgICAg
ICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUjhVbm11bHRpcGx5Pihzb3VyY2VEYXRh
LCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQs
IGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFj
a1JHQkE4VG9SOFVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRo
LCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRl
c3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtOTA2LDEzICs5MjcsMTMgQEAgYm9vbCBHcmFwaGljc0NvbnRl
eHQzRDo6cGFja1BpeGVscyhjb25zdAogICAgICAgICAgICAgLy8gYXJlIGNob3NlbiBmcm9tIHRo
ZSBSR0JBIGRhdGEuCiAgICAgICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsKICAgICAgICAgICAg
IGNhc2Uga0FscGhhRG9Ob3RoaW5nOgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90
LCBwYWNrUkdCQThUb1JBOD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhl
aWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMik7CisgICAgICAgICAg
ICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkE4Pihzb3VyY2VEYXRhLCBzb3Vy
Y2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJj
ZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMik7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBjYXNlIGtBbHBoYURvUHJlbXVsdGlwbHk6Ci0gICAgICAgICAgICAgICAg
ZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkE4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEs
IHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwg
ZGVzdGluYXRpb24sIDIpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNr
UkdCQThUb1JBOFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBk
ZXN0aW5hdGlvbiwgMik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IGtBbHBoYURvVW5tdWx0aXBseToKLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwg
cGFja1JHQkE4VG9SQThVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3
aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAyKTsKKyAg
ICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SQThVbm11bHRpcGx5
Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBh
Y2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMik7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAg
LTkyMywxMyArOTQ0LDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29u
c3QKICAgICAgICAgdWludDE2X3QqIGRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8dWludDE2X3Qq
PihkZXN0aW5hdGlvbkRhdGEpOwogICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsKICAgICAgICAg
Y2FzZSBrQWxwaGFEb05vdGhpbmc6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBh
Y2tSR0JBOFRvVW5zaWduZWRTaG9ydDQ0NDQ+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQs
IHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDEpOwor
ICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ0
NDQ0Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VV
bnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgotICAg
ICAgICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ0NDQ0
UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQs
IHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgZG9Q
YWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ0NDQ0UHJlbXVsdGlwbHk+
KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFj
a0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIGtBbHBoYURvVW5tdWx0aXBseToKLSAgICAgICAg
ICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NFVubXVs
dGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJj
ZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgZG9QYWNraW5n
PHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ0NDQ0VW5tdWx0aXBseT4oc291cmNl
RGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25t
ZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC05MzgsMTMgKzk1OSwxMyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0CiAgICAgICAgIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiA9IHN0YXRpY19jYXN0PHVpbnQxNl90Kj4oZGVzdGluYXRpb25EYXRhKTsK
ICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgIGNhc2Uga0FscGhhRG9Ob3RoaW5n
OgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hv
cnQ1NTUxPihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2lu
Zzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTU1MT4oc291cmNlRGF0YSwgc291
cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3Vy
Y2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAgICAgICAgICAgIGRvUGFja2luZzx1
aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTU1MVByZW11bHRpcGx5Pihzb3VyY2VE
YXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFj
a1JHQkE4VG9VbnNpZ25lZFNob3J0NTU1MVByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VE
YXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5
dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2
X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTFVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBz
b3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRl
c3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4
VG9VbnNpZ25lZFNob3J0NTU1MVVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3Jt
YXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVy
MTZCaWcsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGJyZWFrOwpAQCAtOTUzLDEzICs5NzQsMTMgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQz
RDo6cGFja1BpeGVscyhjb25zdAogICAgICAgICB1aW50MTZfdCogZGVzdGluYXRpb24gPSBzdGF0
aWNfY2FzdDx1aW50MTZfdCo+KGRlc3RpbmF0aW9uRGF0YSk7CiAgICAgICAgIHN3aXRjaCAoYWxw
aGFPcCkgewogICAgICAgICBjYXNlIGtBbHBoYURvTm90aGluZzoKLSAgICAgICAgICAgIGRvUGFj
a2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTY1Pihzb3VyY2VEYXRhLCBz
b3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRl
c3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4
VG9VbnNpZ25lZFNob3J0NTY1Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwg
aGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0
aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBrQWxwaGFEb1By
ZW11bHRpcGx5OgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vu
c2lnbmVkU2hvcnQ1NjVQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwg
d2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7Cisg
ICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU2
NVByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0
LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlv
biwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVsdGlw
bHk6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRT
aG9ydDU2NVVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBo
ZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAg
ICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVVbm11bHRp
cGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VV
bnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBicmVhazsKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDY5
ODA2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04MzgsNiArODM4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VVbnBhY2tB
bGlnbm1lbnQsCisgICAgICAgICAgICAgICAgICAgIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcs
CiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBkZXN0aW5hdGlvbkZvcm1hdCwKICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRlc3RpbmF0aW9uVHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgQWxwaGFPcCBhbHBoYU9wLApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCShyZXZpc2lvbiA2OTgw
NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDkgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQz
RDo6Z2V0SW1hZ2VEYXRhKEltYQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGJpdHNQ
ZXJQaXhlbCAlIGJpdHNQZXJDb21wb25lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBj
b25zdCBDR0Zsb2F0KiBkZWNvZGUgPSBDR0ltYWdlR2V0RGVjb2RlKGNnSW1hZ2UpOworICAgIGlm
ICghZGVjb2RlKQorICAgICAgICBkZWNvZGUgPSAwOwogICAgIHNpemVfdCBjb21wb25lbnRzUGVy
UGl4ZWwgPSBiaXRzUGVyUGl4ZWwgLyBiaXRzUGVyQ29tcG9uZW50OwogICAgIFNvdXJjZURhdGFG
b3JtYXQgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0JBODsKICAgICBBbHBoYU9wIG5l
ZWRlZEFscGhhT3AgPSBrQWxwaGFEb05vdGhpbmc7CkBAIC0yNDgsNyArMjUxLDI3IEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWEKICAgICAgICAgd2hpbGUgKGJ5dGVz
UGVyUm93ICUgc3JjVW5wYWNrQWxpZ25tZW50KQogICAgICAgICAgICAgKytzcmNVbnBhY2tBbGln
bm1lbnQ7CiAgICAgfQotICAgIGJvb2wgcnQgPSBwYWNrUGl4ZWxzKHJnYmEsIHNyY0RhdGFGb3Jt
YXQsIHdpZHRoLCBoZWlnaHQsIHNyY1VucGFja0FsaWdubWVudCwKKyAgICBib29sIHNyY0J5dGVP
cmRlcjE2QmlnOworICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDE2KSB7CisgICAgICAgIENH
Qml0bWFwSW5mbyBiaXRJbmZvID0gQ0dJbWFnZUdldEJpdG1hcEluZm8oY2dJbWFnZSk7CisgICAg
ICAgIHN3aXRjaCAoYml0SW5mbyAmIGtDR0JpdG1hcEJ5dGVPcmRlck1hc2spIHsKKyAgICAgICAg
Y2FzZSBrQ0dCaXRtYXBCeXRlT3JkZXIxNkJpZzoKKyAgICAgICAgICAgIHNyY0J5dGVPcmRlcjE2
QmlnID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGtDR0JpdG1hcEJ5
dGVPcmRlcjE2TGl0dGxlOgorICAgICAgICAgICAgc3JjQnl0ZU9yZGVyMTZCaWcgPSBmYWxzZTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlckRlZmF1
bHQ6CisgICAgICAgICAgICAvLyBTZWVtcyBsaWtlIEJ5dGVPcmRlckRlZmF1bHQgaXMgb25seSBy
ZXR1cm5lZCBmb3IgTWFjT1MgZWFybGllciB0aGFuIDEwLjYuNCwKKyAgICAgICAgICAgIC8vIGFu
ZCBzbyBmYXIgd2Ugb25seSBlbmNvdW50ZXJlZCBCeXRlT3JkZXIxNkJpZyBvbiB0aGVtLgorICAg
ICAgICAgICAgLy8gSXQgd291bGQgYmUgbmljZSBpZiB3ZSBoYXZlIGEgbWVjaGFuaXNtIHRvIHF1
ZXJ5IHRoZSBkZWZhdWx0IGJ5dGUgb3JkZXIuCisgICAgICAgICAgICBzcmNCeXRlT3JkZXIxNkJp
ZyA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBib29sIHJ0ID0gcGFja1Bp
eGVscyhyZ2JhLCBzcmNEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzcmNVbnBhY2tBbGlnbm1l
bnQsIHNyY0J5dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCwg
dHlwZSwgbmVlZGVkQWxwaGFPcCwgb3V0cHV0VmVjdG9yLmRhdGEoKSk7CiAgICAgcmV0dXJuIHJ0
OwogfQo=
</data>
<flag name="commit-queue"
          id="60850"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70921</attachid>
            <date>2010-10-15 16:58:58 -0700</date>
            <delta_ts>2010-10-15 17:02:00 -0700</delta_ts>
            <desc>revised patch: fixed the style issue</desc>
            <filename>png16.patch</filename>
            <type>text/plain</type>
            <size>42399</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTg5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMTAtMTUgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnbC10ZXhp
bWFnZS5odG1sIGZhaWxzIG9uIGNocm9taXVtIHdlYmtpdCBtYWMgYm90CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzAzNAorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOiBBZGQgcGFyYW1ldGVyIG9mIGJ5
dGUgb3JkZXIuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0Q29sb3IxNlRvOCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdFRleHR1cmVEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRvVW5wYWNraW5nQW5kUGFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpk
b1BhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhl
bHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cu
Y3BwOiBBZGRpbmcgY29kZSB0byBoYW5kbGUgYnl0ZSBvcmRlci4KKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorCiAyMDEwLTEwLTE1ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUgUGV0
ZXJzb24uCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmNwcAkocmV2aXNpb24gNjk4MDYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTEgKzM1LDE2IEBA
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKIAorI2luY2x1ZGUg
PHd0Zi9VbnVzZWRQYXJhbS5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB1aW50
OF90IGNvbnZlcnRDb2xvcjE2VG84KHVpbnQxNl90IHZhbHVlKQorc3RhdGljIHVpbnQ4X3QgY29u
dmVydENvbG9yMTZUbzgodWludDE2X3QgdmFsdWUsIGJvb2wgYnl0ZU9yZGVyQmlnKQogewotICAg
IHJldHVybiB2YWx1ZSA+PiA4OworICAgIHVpbnQ4X3QqIHZhbHVlOCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8dWludDhfdCo+KCZ2YWx1ZSk7CisgICAgaWYgKGJ5dGVPcmRlckJpZykKKyAgICAgICAgcmV0
dXJuIHZhbHVlOFswXTsKKyAgICByZXR1cm4gdmFsdWU4WzFdOwogfQogCiBQYXNzUmVmUHRyPERy
YXdpbmdCdWZmZXI+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVEcmF3aW5nQnVmZmVyKGNvbnN0
IEludFNpemUmIHNpemUpCkBAIC0xMzEsNiArMTM2LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQz
RDo6ZXh0cmFjdEltYWdlRGF0YQogICAgICAgICAgICAgICAgICAgICB3aWR0aCwKICAgICAgICAg
ICAgICAgICAgICAgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAg
ICAgICAgICBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LAogICAgICAgICAgICAg
ICAgICAgICB0eXBlLAogICAgICAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhID8ga0Fs
cGhhRG9QcmVtdWx0aXBseSA6IGtBbHBoYURvTm90aGluZywKQEAgLTIwNiw3ICsyMTIsNyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhCiAKICAgICBpZiAoIXBhY2tQ
aXhlbHMoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHBpeGVscyksCiAgICAgICAgICAgICAg
ICAgICAgIHNvdXJjZURhdGFGb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgIHdpZHRoLCBoZWln
aHQsIHVucGFja0FsaWdubWVudCwKKyAgICAgICAgICAgICAgICAgICAgd2lkdGgsIGhlaWdodCwg
dW5wYWNrQWxpZ25tZW50LCBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCB0eXBl
LAogICAgICAgICAgICAgICAgICAgICAocHJlbXVsdGlwbHlBbHBoYSA/IGtBbHBoYURvUHJlbXVs
dGlwbHkgOiBrQWxwaGFEb05vdGhpbmcpLAogICAgICAgICAgICAgICAgICAgICBkYXRhLmRhdGEo
KSkpCkBAIC0yNTAsNzIgKzI1Niw3NyBAQCBuYW1lc3BhY2UgewogLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAv
LyBQaXhlbCB1bnBhY2tpbmcgcm91dGluZXMuCiAKLXZvaWQgdW5wYWNrUkdCQThUb1JHQkE4KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja1JH
QkE4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBi
b29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQogeworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VCeXRl
T3JkZXIxNkJpZyk7CiAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CiAgICAgZGVzdGlu
YXRpb25bMV0gPSBzb3VyY2VbMV07CiAgICAgZGVzdGluYXRpb25bMl0gPSBzb3VyY2VbMl07CiAg
ICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbM107CiB9CiAKLXZvaWQgdW5wYWNrUkdCQTE2VG9S
R0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQg
dW5wYWNrUkdCQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKLSAgICBkZXN0aW5hdGlvblsw
XSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7Ci0gICAgZGVzdGluYXRpb25bMV0gPSBj
b252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0pOwotICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVy
dENvbG9yMTZUbzgoc291cmNlWzJdKTsKLSAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xv
cjE2VG84KHNvdXJjZVszXSk7CisgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRv
OChzb3VyY2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsxXSA9
IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAg
IGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzJdLCBzb3VyY2VCeXRl
T3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbM10sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKIH0KIAotdm9pZCB1bnBhY2tSR0I4VG9SR0JB
OChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBh
Y2tSR0I4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQogeworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VC
eXRlT3JkZXIxNkJpZyk7CiAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CiAgICAgZGVz
dGluYXRpb25bMV0gPSBzb3VyY2VbMV07CiAgICAgZGVzdGluYXRpb25bMl0gPSBzb3VyY2VbMl07
CiAgICAgZGVzdGluYXRpb25bM10gPSAweEZGOwogfQogCi12b2lkIHVucGFja1JHQjE2VG9SR0JB
OChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5w
YWNrUkdCMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0
aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQogewotICAgIGRlc3RpbmF0aW9uWzBdID0g
Y29udmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKLSAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7Ci0gICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29s
b3IxNlRvOChzb3VyY2VbMl0pOworICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZU
bzgoc291cmNlWzBdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMV0g
PSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAg
ICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsyXSwgc291cmNlQnl0
ZU9yZGVyMTZCaWcpOwogICAgIGRlc3RpbmF0aW9uWzNdID0gMHhGRjsKIH0KIAotdm9pZCB1bnBh
Y2tBUkdCOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
bikKK3ZvaWQgdW5wYWNrQVJHQjhUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcpCiB7CisgICAgVU5VU0VE
X1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJj
ZVsxXTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJjZVsyXTsKICAgICBkZXN0aW5hdGlvblsy
XSA9IHNvdXJjZVszXTsKICAgICBkZXN0aW5hdGlvblszXSA9IHNvdXJjZVswXTsKIH0KIAotdm9p
ZCB1bnBhY2tBUkdCMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uKQordm9pZCB1bnBhY2tBUkdCMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQogewot
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdKTsKLSAgICBk
ZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsyXSk7Ci0gICAgZGVzdGlu
YXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbM10pOwotICAgIGRlc3RpbmF0aW9u
WzNdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0aW5hdGlvblswXSA9
IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAg
IGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzJdLCBzb3VyY2VCeXRl
T3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbM10sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOwogfQogCi12b2lk
IHVucGFja0JHUkE4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uKQordm9pZCB1bnBhY2tCR1JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKKyAgICBV
TlVTRURfUEFSQU0oc291cmNlQnl0ZU9yZGVyMTZCaWcpOwogICAgIGRlc3RpbmF0aW9uWzBdID0g
c291cmNlWzJdOwogICAgIGRlc3RpbmF0aW9uWzFdID0gc291cmNlWzFdOwogICAgIGRlc3RpbmF0
aW9uWzJdID0gc291cmNlWzBdOwogICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzNdOwogfQog
Ci12b2lkIHVucGFja0JHUkExNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja0JHUkExNlRvUkdCQTgoY29uc3QgdWludDE2X3Qq
IHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcp
CiB7Ci0gICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMl0pOwot
ICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdKTsKLSAgICBk
ZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7Ci0gICAgZGVzdGlu
YXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbM10pOworICAgIGRlc3RpbmF0aW9u
WzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzJdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7
CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0sIHNvdXJj
ZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRlc3RpbmF0aW9uWzNdID0g
Y29udmVydENvbG9yMTZUbzgoc291cmNlWzNdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CiB9CiAK
LXZvaWQgdW5wYWNrUkdCQTU1NTFUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tSR0JBNTU1MVRvUkdCQTgoY29uc3QgdWludDE2
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZC
aWcpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICB1aW50
MTZfdCBwYWNrZWRWYWx1ZSA9IHNvdXJjZVswXTsKICAgICB1aW50OF90IHIgPSBwYWNrZWRWYWx1
ZSA+PiAxMTsKICAgICB1aW50OF90IGcgPSAocGFja2VkVmFsdWUgPj4gNikgJiAweDFGOwpAQCAt
MzI2LDggKzMzNyw5IEBAIHZvaWQgdW5wYWNrUkdCQTU1NTFUb1JHQkE4KGNvbnN0IHVpbnQxNl8K
ICAgICBkZXN0aW5hdGlvblszXSA9IChwYWNrZWRWYWx1ZSAmIDB4MSkgPyAweEZGIDogMHgwOwog
fQogCi12b2lkIHVucGFja1JHQkE0NDQ0VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUkdCQTQ0NDRUb1JHQkE4KGNvbnN0IHVp
bnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRl
cjE2QmlnKQogeworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CiAgICAg
dWludDE2X3QgcGFja2VkVmFsdWUgPSBzb3VyY2VbMF07CiAgICAgdWludDhfdCByID0gcGFja2Vk
VmFsdWUgPj4gMTI7CiAgICAgdWludDhfdCBnID0gKHBhY2tlZFZhbHVlID4+IDgpICYgMHgwRjsK
QEAgLTMzOSw4ICszNTEsOSBAQCB2b2lkIHVucGFja1JHQkE0NDQ0VG9SR0JBOChjb25zdCB1aW50
MTZfCiAgICAgZGVzdGluYXRpb25bM10gPSBhIDw8IDQgfCBhOwogfQogCi12b2lkIHVucGFja1JH
QjU2NVRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24p
Cit2b2lkIHVucGFja1JHQjU2NVRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcpCiB7CisgICAgVU5VU0VE
X1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICB1aW50MTZfdCBwYWNrZWRWYWx1ZSA9
IHNvdXJjZVswXTsKICAgICB1aW50OF90IHIgPSBwYWNrZWRWYWx1ZSA+PiAxMTsKICAgICB1aW50
OF90IGcgPSAocGFja2VkVmFsdWUgPj4gNSkgJiAweDNGOwpAQCAtMzUxLDY4ICszNjQsNzIgQEAg
dm9pZCB1bnBhY2tSR0I1NjVUb1JHQkE4KGNvbnN0IHVpbnQxNl90KgogICAgIGRlc3RpbmF0aW9u
WzNdID0gMHhGRjsKIH0KIAotdm9pZCB1bnBhY2tSOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291
cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUjhUb1JHQkE4KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVy
MTZCaWcpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBk
ZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJjZVsw
XTsKICAgICBkZXN0aW5hdGlvblsyXSA9IHNvdXJjZVswXTsKICAgICBkZXN0aW5hdGlvblszXSA9
IDB4RkY7CiB9CiAKLXZvaWQgdW5wYWNrUjE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUjE2VG9SR0JBOChjb25zdCB1aW50
MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIx
NkJpZykKIHsKLSAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsw
XSk7Ci0gICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOwot
ICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKKyAgICBk
ZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9y
ZGVyMTZCaWcpOworICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNl
WzBdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0
Q29sb3IxNlRvOChzb3VyY2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBkZXN0aW5h
dGlvblszXSA9IDB4RkY7CiB9CiAKLXZvaWQgdW5wYWNrUkE4VG9SR0JBOChjb25zdCB1aW50OF90
KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tSQThUb1JHQkE4KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0
ZU9yZGVyMTZCaWcpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsK
ICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNv
dXJjZVswXTsKICAgICBkZXN0aW5hdGlvblsyXSA9IHNvdXJjZVswXTsKICAgICBkZXN0aW5hdGlv
blszXSA9IHNvdXJjZVsxXTsKIH0KIAotdm9pZCB1bnBhY2tSQTE2VG9SR0JBOChjb25zdCB1aW50
MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUkExNlRvUkdC
QTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291
cmNlQnl0ZU9yZGVyMTZCaWcpCiB7Ci0gICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3Ix
NlRvOChzb3VyY2VbMF0pOwotICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgo
c291cmNlWzBdKTsKLSAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJj
ZVswXSk7Ci0gICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0p
OworICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdLCBzb3Vy
Y2VCeXRlT3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRv
OChzb3VyY2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9
IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAg
IGRlc3RpbmF0aW9uWzNdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdLCBzb3VyY2VCeXRl
T3JkZXIxNkJpZyk7CiB9CiAKLXZvaWQgdW5wYWNrQVI4VG9SR0JBOChjb25zdCB1aW50OF90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tBUjhUb1JHQkE4KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9y
ZGVyMTZCaWcpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAg
ICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsxXTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJj
ZVsxXTsKICAgICBkZXN0aW5hdGlvblsyXSA9IHNvdXJjZVsxXTsKICAgICBkZXN0aW5hdGlvblsz
XSA9IHNvdXJjZVswXTsKIH0KIAotdm9pZCB1bnBhY2tBUjE2VG9SR0JBOChjb25zdCB1aW50MTZf
dCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrQVIxNlRvUkdCQTgo
Y29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNl
Qnl0ZU9yZGVyMTZCaWcpCiB7Ci0gICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRv
OChzb3VyY2VbMV0pOwotICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291
cmNlWzFdKTsKLSAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsx
XSk7Ci0gICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOwor
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdLCBzb3VyY2VC
eXRlT3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChz
b3VyY2VbMV0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNv
bnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRl
c3RpbmF0aW9uWzNdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdLCBzb3VyY2VCeXRlT3Jk
ZXIxNkJpZyk7CiB9CiAKLXZvaWQgdW5wYWNrQThUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja0E4VG9SR0JBOChjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2
QmlnKQogeworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CiAgICAgZGVz
dGluYXRpb25bMF0gPSAweDA7CiAgICAgZGVzdGluYXRpb25bMV0gPSAweDA7CiAgICAgZGVzdGlu
YXRpb25bMl0gPSAweDA7CiAgICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbMF07CiB9CiAKLXZv
aWQgdW5wYWNrQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbikKK3ZvaWQgdW5wYWNrQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKICAgICBk
ZXN0aW5hdGlvblswXSA9IDB4MDsKICAgICBkZXN0aW5hdGlvblsxXSA9IDB4MDsKICAgICBkZXN0
aW5hdGlvblsyXSA9IDB4MDsKLSAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVswXSk7CisgICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKIH0KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC02
MzMsMTMgKzY1MCwxNCBAQCB2b2lkIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU2NVVubXVsdGlw
CiAvLyBpcyBub3QgaW4gUkdCQTggZm9ybWF0LCBvciB0aGUgdW5wYWNrIGFsaWdubWVudCBzcGVj
aWZpZXMgdGhhdCByb3dzCiAvLyBhcmUgbm90IHRpZ2h0bHkgcGFja2VkLgogdGVtcGxhdGU8dHlw
ZW5hbWUgU291cmNlVHlwZSwgdHlwZW5hbWUgRGVzdFR5cGUsCi0gICAgICAgICB2b2lkIHVucGFj
a2luZ0Z1bmMoY29uc3QgU291cmNlVHlwZSosIHVpbnQ4X3QqKSwKKyAgICAgICAgIHZvaWQgdW5w
YWNraW5nRnVuYyhjb25zdCBTb3VyY2VUeXBlKiwgdWludDhfdCosIGJvb2wpLAogICAgICAgICAg
dm9pZCBwYWNraW5nRnVuYyhjb25zdCB1aW50OF90KiwgRGVzdFR5cGUqKT4KIHN0YXRpYyB2b2lk
IGRvVW5wYWNraW5nQW5kUGFja2luZyhjb25zdCBTb3VyY2VUeXBlKiBzb3VyY2VEYXRhLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB3aWR0aCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1Bl
clBpeGVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBz
b3VyY2VFbGVtZW50c1BlclJvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERlc3RUeXBlKiBkZXN0aW5hdGlvbkRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCkKIHsKQEAg
LTY0OCw3ICs2NjYsNyBAQCBzdGF0aWMgdm9pZCBkb1VucGFja2luZ0FuZFBhY2tpbmcoY29uc3Qg
CiAgICAgICAgIGNvbnN0IFNvdXJjZVR5cGUqIGVuZFBvaW50ZXIgPSBzb3VyY2VEYXRhICsgbnVt
RWxlbWVudHM7CiAgICAgICAgIHVpbnQ4X3QgdGVtcG9yYXJ5UkdCQURhdGFbNF07CiAgICAgICAg
IHdoaWxlIChzb3VyY2VEYXRhIDwgZW5kUG9pbnRlcikgewotICAgICAgICAgICAgdW5wYWNraW5n
RnVuYyhzb3VyY2VEYXRhLCB0ZW1wb3JhcnlSR0JBRGF0YSk7CisgICAgICAgICAgICB1bnBhY2tp
bmdGdW5jKHNvdXJjZURhdGEsIHRlbXBvcmFyeVJHQkFEYXRhLCBzb3VyY2VCeXRlT3JkZXIxNkJp
Zyk7CiAgICAgICAgICAgICBwYWNraW5nRnVuYyh0ZW1wb3JhcnlSR0JBRGF0YSwgZGVzdGluYXRp
b25EYXRhKTsKICAgICAgICAgICAgIHNvdXJjZURhdGEgKz0gc291cmNlRWxlbWVudHNQZXJQaXhl
bDsKICAgICAgICAgICAgIGRlc3RpbmF0aW9uRGF0YSArPSBkZXN0aW5hdGlvbkVsZW1lbnRzUGVy
UGl4ZWw7CkBAIC02NTgsNyArNjc2LDcgQEAgc3RhdGljIHZvaWQgZG9VbnBhY2tpbmdBbmRQYWNr
aW5nKGNvbnN0IAogICAgICAgICBmb3IgKHVuc2lnbmVkIGludCB5ID0gMDsgeSA8IGhlaWdodDsg
Kyt5KSB7CiAgICAgICAgICAgICBjb25zdCBTb3VyY2VUeXBlKiBjdXJyZW50U291cmNlID0gc291
cmNlRGF0YTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW50IHggPSAwOyB4IDwgd2lkdGg7
ICsreCkgewotICAgICAgICAgICAgICAgIHVucGFja2luZ0Z1bmMoY3VycmVudFNvdXJjZSwgdGVt
cG9yYXJ5UkdCQURhdGEpOworICAgICAgICAgICAgICAgIHVucGFja2luZ0Z1bmMoY3VycmVudFNv
dXJjZSwgdGVtcG9yYXJ5UkdCQURhdGEsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICAgICAg
ICAgICAgICBwYWNraW5nRnVuYyh0ZW1wb3JhcnlSR0JBRGF0YSwgZGVzdGluYXRpb25EYXRhKTsK
ICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlICs9IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWw7
CiAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25EYXRhICs9IGRlc3RpbmF0aW9uRWxlbWVudHNQ
ZXJQaXhlbDsKQEAgLTY5OCw2ICs3MTYsNyBAQCBzdGF0aWMgdm9pZCBkb1BhY2tpbmcoY29uc3Qg
dm9pZCogc291cmNlCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHdpZHRoLAog
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoZWlnaHQsCiAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZVVucGFja0FsaWdubWVudCwKKyAgICAgICAgICAg
ICAgICAgICAgICBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAgICAgICAg
ICAgIERlc3RUeXBlKiBkZXN0aW5hdGlvbkRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCkKIHsKQEAgLTcxNSwxMTYgKzcz
NCwxMTYgQEAgc3RhdGljIHZvaWQgZG9QYWNraW5nKGNvbnN0IHZvaWQqIHNvdXJjZQogICAgICAg
ICAgICAgICAgIGRlc3RpbmF0aW9uRGF0YSArPSBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWw7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb1VucGFja2lu
Z0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JHQkE4VG9SR0JBOCwgcGFja2lu
Z0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhl
aWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3Rp
bmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgICAgIGRv
VW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrUkdCQThUb1JHQkE4
LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3
aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJv
dywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVt
ZW50c1BlclBpeGVsKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQkExNjogewogICAgICAgICB1bnNp
Z25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0g
ICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCA0LCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVu
dHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RU
eXBlLCB1bnBhY2tSR0JBMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3Qg
dWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25F
bGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWlu
dDE2X3Q+KHdpZHRoLCA4LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1Bl
clBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBh
Y2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0JBMTZUb1JHQkE4LCBwYWNraW5nRnVu
Yz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdo
dCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5
dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhl
bCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpr
U291cmNlRm9ybWF0UkdCODogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQ
YXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAzLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3Vy
Y2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1Vu
cGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JHQjhUb1JHQkE4LCBw
YWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywg
ZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBk
b1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JHQjhUb1JHQkE4
LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3
aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJv
dywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVt
ZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0IxNjogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAgICAgIGNvbXB1
dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAzLCBzb3VyY2VVbnBhY2tBbGln
bm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwot
ICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tS
R0IxNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNv
dXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VF
bGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4
ZWwpOworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgs
IDYsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3Vy
Y2VFbGVtZW50c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZf
dCwgRGVzdFR5cGUsIHVucGFja1JHQjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0
PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1l
bnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywg
ZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEFS
R0I4OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3Vy
Y2VFbGVtZW50c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWlu
dDhfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFj
a2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrQVJHQjhUb1JHQkE4LCBwYWNraW5nRnVuYz4o
c3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBz
b3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25E
YXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBkb1VucGFja2luZ0Fu
ZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0FSR0I4VG9SR0JBOCwgcGFja2luZ0Z1
bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdo
dCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5
dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhl
bCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpr
U291cmNlRm9ybWF0QVJHQjE2OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50
c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKLSAgICAgICAgY29tcHV0ZUluY3JlbWVu
dFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNv
dXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRv
VW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja0FSR0IxNlRvUkdC
QTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEp
LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1Bl
clJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAg
ICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDgsIHNvdXJj
ZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50
c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5
cGUsIHVucGFja0FSR0IxNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1
aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0
aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRCR1JBODogewog
ICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVu
dHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdp
ZHRoLCA0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAm
c291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWlu
dDhfdCwgRGVzdFR5cGUsIHVucGFja0JHUkE4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVz
dGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5n
PHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tCR1JBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0
aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIx
NkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZv
cm1hdEJHUkExNjogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhl
bCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0
ZXJzPHVpbnQ4X3Q+KHdpZHRoLCA0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVt
ZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2lu
Z0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tCR1JBMTZUb1JHQkE4LCBwYWNr
aW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgs
IGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRl
c3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgY29t
cHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDE2X3Q+KHdpZHRoLCA4LCBzb3VyY2VVbnBhY2tB
bGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cp
OworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBh
Y2tCR1JBMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3Qq
Pihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291
cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEs
IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkdCQTU1NTE6IHsKICAgICAg
ICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVy
Um93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgs
IDIsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3Vy
Y2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZf
dCwgRGVzdFR5cGUsIHVucGFja1JHQkE1NTUxVG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVs
ZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRl
c3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2lu
Zzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQkE1NTUxVG9SR0JBOCwgcGFja2luZ0Z1bmM+
KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQs
IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRl
T3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwp
OwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1Nv
dXJjZUZvcm1hdFJHQkE0NDQ0OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50
c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVu
dFBhcmFtZXRlcnM8dWludDE2X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZz
b3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBk
b1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0JBNDQ0NFRv
UkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURh
dGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwor
ICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tS
R0JBNDQ0NFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+
KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3Vy
Y2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwg
ZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0I1NjU6IHsKICAgICAgICAg
dW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93
OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDIs
IHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VF
bGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwg
RGVzdFR5cGUsIHVucGFja1JHQjU2NVRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxj
b25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50
c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5h
dGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWlu
dDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0I1NjVUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGlj
X2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNl
RWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2
QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9y
bWF0Ujg6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNv
dXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1
aW50OF90Pih3aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQ
YWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tSOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihz
dGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNv
dXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRh
dGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5k
UGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrUjhUb1JHQkE4LCBwYWNraW5nRnVuYz4o
c3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBz
b3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9y
ZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3Vy
Y2VGb3JtYXRSMTY6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4
ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1l
dGVyczx1aW50OF90Pih3aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tp
bmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUjE2VG9SR0JBOCwgcGFja2lu
Z0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBo
ZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0
aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1
dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxp
Z25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsK
KyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNr
UjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291
cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVs
ZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0
aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJBODogewogICAgICAgICB1bnNpZ25l
ZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAg
ICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAyLCBzb3VyY2VV
bnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQ
ZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUs
IHVucGFja1JBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90
Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNv
dXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQ
ZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlw
ZSwgdW5wYWNrUkE4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4
X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwg
c291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRh
dGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkExNjogewogICAgICAg
ICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJS
b3c7Ci0gICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAy
LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNl
RWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3Qs
IERlc3RUeXBlLCB1bnBhY2tSQTE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNv
bnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRz
UGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0
aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJz
PHVpbnQxNl90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVu
dHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdB
bmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkExNlRvUkdCQTgsIHBhY2tpbmdG
dW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVp
Z2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNl
Qnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBp
eGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OmtTb3VyY2VGb3JtYXRBUjg6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRz
UGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50
UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9V
bnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tBUjhUb1JHQkE4LCBw
YWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywg
ZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBk
b1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0FSOFRvUkdCQTgs
IHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdp
ZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93
LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1l
bnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6a1NvdXJjZUZvcm1hdEFSMTY6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBjb21wdXRl
SW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25t
ZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAg
ICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQVIx
NlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJj
ZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVt
ZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwp
OworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDQs
IHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VF
bGVtZW50c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwg
RGVzdFR5cGUsIHVucGFja0FSMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0
aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QTg6IHsK
ICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1l
bnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3
aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwg
JnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVp
bnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2Fz
dDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1l
bnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3Rp
bmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1
aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrQThUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nh
c3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVt
ZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcs
IGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRB
MTY6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJj
ZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50
OF90Pih3aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNr
aW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQTE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0
YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNv
dXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRh
dGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1dGVJbmNyZW1l
bnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAm
c291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAg
ZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQTE2VG9SR0JB
OCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSks
IHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVy
Um93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVs
ZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgfQpAQCAtODM1LDYg
Kzg1NCw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHdpZHRoLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlVW5wYWNrQWxp
Z25tZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNvdXJjZUJ5
dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgZGVzdGluYXRpb25Gb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBkZXN0aW5hdGlvblR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFscGhhT3AgYWxwaGFPcCwKQEAgLTg1MiwxMyArODcyLDEzIEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAgY2FzZSBSR0I6CiAg
ICAgICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsKICAgICAgICAgICAgIGNhc2Uga0FscGhhRG9O
b3RoaW5nOgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JH
Qjg+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVu
cGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDMpOworICAgICAgICAgICAgICAgIGRvUGFja2lu
Zzx1aW50OF90LCBwYWNrUkdCQThUb1JHQjg+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQs
IHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZC
aWcsIGRlc3RpbmF0aW9uLCAzKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWlu
dDhfdCwgcGFja1JHQkE4VG9SR0I4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFG
b3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24s
IDMpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQjhQ
cmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
c291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24s
IDMpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1Vu
bXVsdGlwbHk6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRv
UkdCOFVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWln
aHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDMpOworICAgICAgICAgICAg
ICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQjhVbm11bHRpcGx5Pihzb3VyY2VE
YXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMyk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTg2NiwxMyAr
ODg2LDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAg
ICAgICAgIHN3aXRjaCAoYWxwaGFPcCkgewogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb05vdGhp
bmc6CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNvdXJjZURhdGFGb3JtYXQgIT0ga1NvdXJjZUZv
cm1hdFJHQkE4IHx8IHNvdXJjZVVucGFja0FsaWdubWVudCA+IDQpOyAvLyBIYW5kbGVkIGFib3Zl
IHdpdGggZmFzdCBjYXNlLgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNr
UkdCQThUb1JHQkE4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0
LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCA0KTsKKyAgICAgICAgICAgICAg
ICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SR0JBOD4oc291cmNlRGF0YSwgc291cmNl
RGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VC
eXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRv
UGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQkE4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEs
IHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwg
ZGVzdGluYXRpb24sIDQpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNr
UkdCQThUb1JHQkE4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdp
ZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZCaWcs
IGRlc3RpbmF0aW9uLCA0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2Uga0FscGhhRG9Vbm11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90
LCBwYWNrUkdCQThUb1JHQkE4VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1h
dCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgNCk7
CisgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQThVbm11
bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgNCk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODgyLDcgKzkwMiw3IEBAIGJvb2wgR3Jh
cGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAgICAgIC8vIEZyb20gdGhl
IGRlc2t0b3AgT3BlbkdMIGNvbnZlcnNpb24gcnVsZXMgKE9wZW5HTCAyLjEKICAgICAgICAgICAg
IC8vIHNwZWNpZmljYXRpb24sIFRhYmxlIDMuMTUpLCB0aGUgYWxwaGEgY2hhbm5lbCBpcyBjaG9z
ZW4KICAgICAgICAgICAgIC8vIGZyb20gdGhlIFJHQkEgZGF0YS4KLSAgICAgICAgICAgIGRvUGFj
a2luZzx1aW50OF90LCBwYWNrUkdCQThUb0E4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0
LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsK
KyAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb0E4Pihzb3VyY2VEYXRh
LCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQs
IHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBMVU1JTkFOQ0U6CiAgICAgICAgICAgICAvLyBGcm9tIHRoZSBkZXNr
dG9wIE9wZW5HTCBjb252ZXJzaW9uIHJ1bGVzIChPcGVuR0wgMi4xCkBAIC04OTAsMTMgKzkxMCwx
MyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0CiAgICAgICAgICAg
ICAvLyBmcm9tIHRoZSBSR0JBIGRhdGEuCiAgICAgICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsK
ICAgICAgICAgICAgIGNhc2Uga0FscGhhRG9Ob3RoaW5nOgotICAgICAgICAgICAgICAgIGRvUGFj
a2luZzx1aW50OF90LCBwYWNrUkdCQThUb1I4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0
LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsK
KyAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SOD4oc291cmNl
RGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25t
ZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAg
ICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1I4UHJlbXVsdGlwbHk+KHNv
dXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0Fs
aWdubWVudCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50
OF90LCBwYWNrUkdCQThUb1I4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3Jt
YXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVy
MTZCaWcsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIGNhc2Uga0FscGhhRG9Vbm11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1
aW50OF90LCBwYWNrUkdCQThUb1I4VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZv
cm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwg
MSk7CisgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUjhVbm11
bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh
azsKQEAgLTkwNiwxMyArOTI2LDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhl
bHMoY29uc3QKICAgICAgICAgICAgIC8vIGFyZSBjaG9zZW4gZnJvbSB0aGUgUkdCQSBkYXRhLgog
ICAgICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgICAgICBjYXNlIGtBbHBoYURv
Tm90aGluZzoKLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9S
QTg+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVu
cGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDIpOworICAgICAgICAgICAgICAgIGRvUGFja2lu
Zzx1aW50OF90LCBwYWNrUkdCQThUb1JBOD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwg
d2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJp
ZywgZGVzdGluYXRpb24sIDIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Y2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50
OF90LCBwYWNrUkdCQThUb1JBOFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9y
bWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAy
KTsKKyAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SQThQcmVt
dWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291
cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDIp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVs
dGlwbHk6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkE4
VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
c291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMik7CisgICAgICAgICAgICAgICAg
ZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkE4VW5tdWx0aXBseT4oc291cmNlRGF0YSwg
c291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBz
b3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDIpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC05MjMsMTMgKzk0Mywx
MyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0CiAgICAgICAgIHVp
bnQxNl90KiBkZXN0aW5hdGlvbiA9IHN0YXRpY19jYXN0PHVpbnQxNl90Kj4oZGVzdGluYXRpb25E
YXRhKTsKICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgIGNhc2Uga0FscGhhRG9O
b3RoaW5nOgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2ln
bmVkU2hvcnQ0NDQ0Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0
LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRv
UGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0ND4oc291cmNlRGF0
YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50
LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAgICAgICAgICAgIGRvUGFj
a2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NFByZW11bHRpcGx5Pihz
b3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tB
bGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZf
dCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBz
b3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNv
dXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8
dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDQ0NDRVbm11bHRpcGx5Pihzb3VyY2VE
YXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFj
a1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NFVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURh
dGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0
ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGJyZWFrOwpAQCAtOTM4LDEzICs5NTgsMTMgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6cGFja1BpeGVscyhjb25zdAogICAgICAgICB1aW50MTZfdCogZGVzdGluYXRpb24g
PSBzdGF0aWNfY2FzdDx1aW50MTZfdCo+KGRlc3RpbmF0aW9uRGF0YSk7CiAgICAgICAgIHN3aXRj
aCAoYWxwaGFPcCkgewogICAgICAgICBjYXNlIGtBbHBoYURvTm90aGluZzoKLSAgICAgICAgICAg
IGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTU1MT4oc291cmNl
RGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25t
ZW50LCBkZXN0aW5hdGlvbiwgMSk7CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBh
Y2tSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTE+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQs
IHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZC
aWcsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIGtB
bHBoYURvUHJlbXVsdGlwbHk6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tS
R0JBOFRvVW5zaWduZWRTaG9ydDU1NTFQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0
YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlv
biwgMSk7CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWdu
ZWRTaG9ydDU1NTFQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lk
dGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywg
ZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Uga0FscGhh
RG9Vbm11bHRpcGx5OgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThU
b1Vuc2lnbmVkU2hvcnQ1NTUxVW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1h
dCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7
CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9y
dDU1NTFVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVp
Z2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5h
dGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBicmVhazsK
QEAgLTk1MywxMyArOTczLDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMo
Y29uc3QKICAgICAgICAgdWludDE2X3QqIGRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8dWludDE2
X3QqPihkZXN0aW5hdGlvbkRhdGEpOwogICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsKICAgICAg
ICAgY2FzZSBrQWxwaGFEb05vdGhpbmc6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3Qs
IHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU2NT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1h
dCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7
CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9y
dDU2NT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNl
VW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAg
ICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTY1
UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQs
IHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgZG9Q
YWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVQcmVtdWx0aXBseT4o
c291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNr
QWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Uga0FscGhhRG9Vbm11bHRpcGx5OgotICAgICAgICAg
ICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVVbm11bHRp
cGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VV
bnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1
aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTY1VW5tdWx0aXBseT4oc291cmNlRGF0
YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50
LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCShyZXZpc2lvbiA2OTgwNikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpA
QCAtODM4LDYgKzgzOCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50IHdpZHRoLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LAogICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlVW5wYWNrQWxpZ25tZW50LAorICAg
ICAgICAgICAgICAgICAgICBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbnQgZGVzdGluYXRpb25Gb3JtYXQsCiAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBkZXN0aW5hdGlvblR5cGUsCiAgICAgICAgICAgICAgICAgICAgIEFs
cGhhT3AgYWxwaGFPcCwKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0M0RDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAkocmV2aXNpb24gNjk4MDYpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03Miw2ICs3Miw5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0
YShJbWEKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChiaXRzUGVyUGl4ZWwgJSBiaXRz
UGVyQ29tcG9uZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY29uc3QgQ0dGbG9hdCog
ZGVjb2RlID0gQ0dJbWFnZUdldERlY29kZShjZ0ltYWdlKTsKKyAgICBpZiAoIWRlY29kZSkKKyAg
ICAgICAgZGVjb2RlID0gMDsKICAgICBzaXplX3QgY29tcG9uZW50c1BlclBpeGVsID0gYml0c1Bl
clBpeGVsIC8gYml0c1BlckNvbXBvbmVudDsKICAgICBTb3VyY2VEYXRhRm9ybWF0IHNyY0RhdGFG
b3JtYXQgPSBrU291cmNlRm9ybWF0UkdCQTg7CiAgICAgQWxwaGFPcCBuZWVkZWRBbHBoYU9wID0g
a0FscGhhRG9Ob3RoaW5nOwpAQCAtMjQ4LDcgKzI1MSwyNyBAQCBib29sIEdyYXBoaWNzQ29udGV4
dDNEOjpnZXRJbWFnZURhdGEoSW1hCiAgICAgICAgIHdoaWxlIChieXRlc1BlclJvdyAlIHNyY1Vu
cGFja0FsaWdubWVudCkKICAgICAgICAgICAgICsrc3JjVW5wYWNrQWxpZ25tZW50OwogICAgIH0K
LSAgICBib29sIHJ0ID0gcGFja1BpeGVscyhyZ2JhLCBzcmNEYXRhRm9ybWF0LCB3aWR0aCwgaGVp
Z2h0LCBzcmNVbnBhY2tBbGlnbm1lbnQsCisgICAgYm9vbCBzcmNCeXRlT3JkZXIxNkJpZzsKKyAg
ICBpZiAoYml0c1BlckNvbXBvbmVudCA9PSAxNikgeworICAgICAgICBDR0JpdG1hcEluZm8gYml0
SW5mbyA9IENHSW1hZ2VHZXRCaXRtYXBJbmZvKGNnSW1hZ2UpOworICAgICAgICBzd2l0Y2ggKGJp
dEluZm8gJiBrQ0dCaXRtYXBCeXRlT3JkZXJNYXNrKSB7CisgICAgICAgIGNhc2Uga0NHQml0bWFw
Qnl0ZU9yZGVyMTZCaWc6CisgICAgICAgICAgICBzcmNCeXRlT3JkZXIxNkJpZyA9IHRydWU7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBrQ0dCaXRtYXBCeXRlT3JkZXIxNkxpdHRs
ZToKKyAgICAgICAgICAgIHNyY0J5dGVPcmRlcjE2QmlnID0gZmFsc2U7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBrQ0dCaXRtYXBCeXRlT3JkZXJEZWZhdWx0OgorICAgICAgICAg
ICAgLy8gU2VlbXMgbGlrZSBCeXRlT3JkZXJEZWZhdWx0IGlzIG9ubHkgcmV0dXJuZWQgZm9yIE1h
Y09TIGVhcmxpZXIgdGhhbiAxMC42LjQsCisgICAgICAgICAgICAvLyBhbmQgc28gZmFyIHdlIG9u
bHkgZW5jb3VudGVyZWQgQnl0ZU9yZGVyMTZCaWcgb24gdGhlbS4KKyAgICAgICAgICAgIC8vIEl0
IHdvdWxkIGJlIG5pY2UgaWYgd2UgaGF2ZSBhIG1lY2hhbmlzbSB0byBxdWVyeSB0aGUgZGVmYXVs
dCBieXRlIG9yZGVyLgorICAgICAgICAgICAgc3JjQnl0ZU9yZGVyMTZCaWcgPSB0cnVlOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIH0KKyAgICB9CisgICAgYm9vbCBydCA9IHBhY2tQaXhlbHMocmdiYSwgc3Jj
RGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc3JjVW5wYWNrQWxpZ25tZW50LCBzcmNCeXRlT3Jk
ZXIxNkJpZywKICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQsIHR5cGUsIG5lZWRlZEFs
cGhhT3AsIG91dHB1dFZlY3Rvci5kYXRhKCkpOwogICAgIHJldHVybiBydDsKIH0K
</data>
<flag name="commit-queue"
          id="60855"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70923</attachid>
            <date>2010-10-15 17:02:00 -0700</date>
            <delta_ts>2010-10-18 10:11:08 -0700</delta_ts>
            <desc>revised patch: remove some temporary code I added for debugging (forgot to remove them)</desc>
            <filename>png16.patch</filename>
            <type>text/plain</type>
            <size>41987</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTg5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMTAtMTUgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnbC10ZXhp
bWFnZS5odG1sIGZhaWxzIG9uIGNocm9taXVtIHdlYmtpdCBtYWMgYm90CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzAzNAorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOiBBZGQgcGFyYW1ldGVyIG9mIGJ5
dGUgb3JkZXIuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0Q29sb3IxNlRvOCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdFRleHR1cmVEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRvVW5wYWNraW5nQW5kUGFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpk
b1BhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhl
bHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cu
Y3BwOiBBZGRpbmcgY29kZSB0byBoYW5kbGUgYnl0ZSBvcmRlci4KKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorCiAyMDEwLTEwLTE1ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUgUGV0
ZXJzb24uCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmNwcAkocmV2aXNpb24gNjk4MDYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTEgKzM1LDE2IEBA
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKIAorI2luY2x1ZGUg
PHd0Zi9VbnVzZWRQYXJhbS5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB1aW50
OF90IGNvbnZlcnRDb2xvcjE2VG84KHVpbnQxNl90IHZhbHVlKQorc3RhdGljIHVpbnQ4X3QgY29u
dmVydENvbG9yMTZUbzgodWludDE2X3QgdmFsdWUsIGJvb2wgYnl0ZU9yZGVyQmlnKQogewotICAg
IHJldHVybiB2YWx1ZSA+PiA4OworICAgIHVpbnQ4X3QqIHZhbHVlOCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8dWludDhfdCo+KCZ2YWx1ZSk7CisgICAgaWYgKGJ5dGVPcmRlckJpZykKKyAgICAgICAgcmV0
dXJuIHZhbHVlOFswXTsKKyAgICByZXR1cm4gdmFsdWU4WzFdOwogfQogCiBQYXNzUmVmUHRyPERy
YXdpbmdCdWZmZXI+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVEcmF3aW5nQnVmZmVyKGNvbnN0
IEludFNpemUmIHNpemUpCkBAIC0xMzEsNiArMTM2LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQz
RDo6ZXh0cmFjdEltYWdlRGF0YQogICAgICAgICAgICAgICAgICAgICB3aWR0aCwKICAgICAgICAg
ICAgICAgICAgICAgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAg
ICAgICAgICBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LAogICAgICAgICAgICAg
ICAgICAgICB0eXBlLAogICAgICAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhID8ga0Fs
cGhhRG9QcmVtdWx0aXBseSA6IGtBbHBoYURvTm90aGluZywKQEAgLTIwNiw3ICsyMTIsNyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhCiAKICAgICBpZiAoIXBhY2tQ
aXhlbHMoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHBpeGVscyksCiAgICAgICAgICAgICAg
ICAgICAgIHNvdXJjZURhdGFGb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgIHdpZHRoLCBoZWln
aHQsIHVucGFja0FsaWdubWVudCwKKyAgICAgICAgICAgICAgICAgICAgd2lkdGgsIGhlaWdodCwg
dW5wYWNrQWxpZ25tZW50LCBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCB0eXBl
LAogICAgICAgICAgICAgICAgICAgICAocHJlbXVsdGlwbHlBbHBoYSA/IGtBbHBoYURvUHJlbXVs
dGlwbHkgOiBrQWxwaGFEb05vdGhpbmcpLAogICAgICAgICAgICAgICAgICAgICBkYXRhLmRhdGEo
KSkpCkBAIC0yNTAsNzIgKzI1Niw3NyBAQCBuYW1lc3BhY2UgewogLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAv
LyBQaXhlbCB1bnBhY2tpbmcgcm91dGluZXMuCiAKLXZvaWQgdW5wYWNrUkdCQThUb1JHQkE4KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja1JH
QkE4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBi
b29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQogeworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VCeXRl
T3JkZXIxNkJpZyk7CiAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CiAgICAgZGVzdGlu
YXRpb25bMV0gPSBzb3VyY2VbMV07CiAgICAgZGVzdGluYXRpb25bMl0gPSBzb3VyY2VbMl07CiAg
ICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbM107CiB9CiAKLXZvaWQgdW5wYWNrUkdCQTE2VG9S
R0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQg
dW5wYWNrUkdCQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKLSAgICBkZXN0aW5hdGlvblsw
XSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7Ci0gICAgZGVzdGluYXRpb25bMV0gPSBj
b252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0pOwotICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVy
dENvbG9yMTZUbzgoc291cmNlWzJdKTsKLSAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xv
cjE2VG84KHNvdXJjZVszXSk7CisgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRv
OChzb3VyY2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsxXSA9
IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAg
IGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzJdLCBzb3VyY2VCeXRl
T3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbM10sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKIH0KIAotdm9pZCB1bnBhY2tSR0I4VG9SR0JB
OChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBh
Y2tSR0I4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQogeworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VC
eXRlT3JkZXIxNkJpZyk7CiAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CiAgICAgZGVz
dGluYXRpb25bMV0gPSBzb3VyY2VbMV07CiAgICAgZGVzdGluYXRpb25bMl0gPSBzb3VyY2VbMl07
CiAgICAgZGVzdGluYXRpb25bM10gPSAweEZGOwogfQogCi12b2lkIHVucGFja1JHQjE2VG9SR0JB
OChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5w
YWNrUkdCMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0
aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQogewotICAgIGRlc3RpbmF0aW9uWzBdID0g
Y29udmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKLSAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7Ci0gICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29s
b3IxNlRvOChzb3VyY2VbMl0pOworICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZU
bzgoc291cmNlWzBdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMV0g
PSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAg
ICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsyXSwgc291cmNlQnl0
ZU9yZGVyMTZCaWcpOwogICAgIGRlc3RpbmF0aW9uWzNdID0gMHhGRjsKIH0KIAotdm9pZCB1bnBh
Y2tBUkdCOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
bikKK3ZvaWQgdW5wYWNrQVJHQjhUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcpCiB7CisgICAgVU5VU0VE
X1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJj
ZVsxXTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJjZVsyXTsKICAgICBkZXN0aW5hdGlvblsy
XSA9IHNvdXJjZVszXTsKICAgICBkZXN0aW5hdGlvblszXSA9IHNvdXJjZVswXTsKIH0KIAotdm9p
ZCB1bnBhY2tBUkdCMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uKQordm9pZCB1bnBhY2tBUkdCMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQogewot
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdKTsKLSAgICBk
ZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsyXSk7Ci0gICAgZGVzdGlu
YXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbM10pOwotICAgIGRlc3RpbmF0aW9u
WzNdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0aW5hdGlvblswXSA9
IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAg
IGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzJdLCBzb3VyY2VCeXRl
T3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbM10sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOwogfQogCi12b2lk
IHVucGFja0JHUkE4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uKQordm9pZCB1bnBhY2tCR1JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKKyAgICBV
TlVTRURfUEFSQU0oc291cmNlQnl0ZU9yZGVyMTZCaWcpOwogICAgIGRlc3RpbmF0aW9uWzBdID0g
c291cmNlWzJdOwogICAgIGRlc3RpbmF0aW9uWzFdID0gc291cmNlWzFdOwogICAgIGRlc3RpbmF0
aW9uWzJdID0gc291cmNlWzBdOwogICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzNdOwogfQog
Ci12b2lkIHVucGFja0JHUkExNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja0JHUkExNlRvUkdCQTgoY29uc3QgdWludDE2X3Qq
IHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcp
CiB7Ci0gICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMl0pOwot
ICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdKTsKLSAgICBk
ZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7Ci0gICAgZGVzdGlu
YXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbM10pOworICAgIGRlc3RpbmF0aW9u
WzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzJdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7
CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0sIHNvdXJj
ZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRlc3RpbmF0aW9uWzNdID0g
Y29udmVydENvbG9yMTZUbzgoc291cmNlWzNdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CiB9CiAK
LXZvaWQgdW5wYWNrUkdCQTU1NTFUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tSR0JBNTU1MVRvUkdCQTgoY29uc3QgdWludDE2
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZC
aWcpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICB1aW50
MTZfdCBwYWNrZWRWYWx1ZSA9IHNvdXJjZVswXTsKICAgICB1aW50OF90IHIgPSBwYWNrZWRWYWx1
ZSA+PiAxMTsKICAgICB1aW50OF90IGcgPSAocGFja2VkVmFsdWUgPj4gNikgJiAweDFGOwpAQCAt
MzI2LDggKzMzNyw5IEBAIHZvaWQgdW5wYWNrUkdCQTU1NTFUb1JHQkE4KGNvbnN0IHVpbnQxNl8K
ICAgICBkZXN0aW5hdGlvblszXSA9IChwYWNrZWRWYWx1ZSAmIDB4MSkgPyAweEZGIDogMHgwOwog
fQogCi12b2lkIHVucGFja1JHQkE0NDQ0VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUkdCQTQ0NDRUb1JHQkE4KGNvbnN0IHVp
bnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRl
cjE2QmlnKQogeworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CiAgICAg
dWludDE2X3QgcGFja2VkVmFsdWUgPSBzb3VyY2VbMF07CiAgICAgdWludDhfdCByID0gcGFja2Vk
VmFsdWUgPj4gMTI7CiAgICAgdWludDhfdCBnID0gKHBhY2tlZFZhbHVlID4+IDgpICYgMHgwRjsK
QEAgLTMzOSw4ICszNTEsOSBAQCB2b2lkIHVucGFja1JHQkE0NDQ0VG9SR0JBOChjb25zdCB1aW50
MTZfCiAgICAgZGVzdGluYXRpb25bM10gPSBhIDw8IDQgfCBhOwogfQogCi12b2lkIHVucGFja1JH
QjU2NVRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24p
Cit2b2lkIHVucGFja1JHQjU2NVRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcpCiB7CisgICAgVU5VU0VE
X1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICB1aW50MTZfdCBwYWNrZWRWYWx1ZSA9
IHNvdXJjZVswXTsKICAgICB1aW50OF90IHIgPSBwYWNrZWRWYWx1ZSA+PiAxMTsKICAgICB1aW50
OF90IGcgPSAocGFja2VkVmFsdWUgPj4gNSkgJiAweDNGOwpAQCAtMzUxLDY4ICszNjQsNzIgQEAg
dm9pZCB1bnBhY2tSR0I1NjVUb1JHQkE4KGNvbnN0IHVpbnQxNl90KgogICAgIGRlc3RpbmF0aW9u
WzNdID0gMHhGRjsKIH0KIAotdm9pZCB1bnBhY2tSOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291
cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUjhUb1JHQkE4KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVy
MTZCaWcpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBk
ZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJjZVsw
XTsKICAgICBkZXN0aW5hdGlvblsyXSA9IHNvdXJjZVswXTsKICAgICBkZXN0aW5hdGlvblszXSA9
IDB4RkY7CiB9CiAKLXZvaWQgdW5wYWNrUjE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUjE2VG9SR0JBOChjb25zdCB1aW50
MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIx
NkJpZykKIHsKLSAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsw
XSk7Ci0gICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOwot
ICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKKyAgICBk
ZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9y
ZGVyMTZCaWcpOworICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNl
WzBdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0
Q29sb3IxNlRvOChzb3VyY2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBkZXN0aW5h
dGlvblszXSA9IDB4RkY7CiB9CiAKLXZvaWQgdW5wYWNrUkE4VG9SR0JBOChjb25zdCB1aW50OF90
KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tSQThUb1JHQkE4KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0
ZU9yZGVyMTZCaWcpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsK
ICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNv
dXJjZVswXTsKICAgICBkZXN0aW5hdGlvblsyXSA9IHNvdXJjZVswXTsKICAgICBkZXN0aW5hdGlv
blszXSA9IHNvdXJjZVsxXTsKIH0KIAotdm9pZCB1bnBhY2tSQTE2VG9SR0JBOChjb25zdCB1aW50
MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUkExNlRvUkdC
QTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291
cmNlQnl0ZU9yZGVyMTZCaWcpCiB7Ci0gICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3Ix
NlRvOChzb3VyY2VbMF0pOwotICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgo
c291cmNlWzBdKTsKLSAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJj
ZVswXSk7Ci0gICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0p
OworICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdLCBzb3Vy
Y2VCeXRlT3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRv
OChzb3VyY2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9
IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAg
IGRlc3RpbmF0aW9uWzNdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdLCBzb3VyY2VCeXRl
T3JkZXIxNkJpZyk7CiB9CiAKLXZvaWQgdW5wYWNrQVI4VG9SR0JBOChjb25zdCB1aW50OF90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tBUjhUb1JHQkE4KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9y
ZGVyMTZCaWcpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAg
ICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsxXTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJj
ZVsxXTsKICAgICBkZXN0aW5hdGlvblsyXSA9IHNvdXJjZVsxXTsKICAgICBkZXN0aW5hdGlvblsz
XSA9IHNvdXJjZVswXTsKIH0KIAotdm9pZCB1bnBhY2tBUjE2VG9SR0JBOChjb25zdCB1aW50MTZf
dCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrQVIxNlRvUkdCQTgo
Y29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNl
Qnl0ZU9yZGVyMTZCaWcpCiB7Ci0gICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRv
OChzb3VyY2VbMV0pOwotICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291
cmNlWzFdKTsKLSAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsx
XSk7Ci0gICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOwor
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdLCBzb3VyY2VC
eXRlT3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChz
b3VyY2VbMV0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNv
bnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRl
c3RpbmF0aW9uWzNdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdLCBzb3VyY2VCeXRlT3Jk
ZXIxNkJpZyk7CiB9CiAKLXZvaWQgdW5wYWNrQThUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja0E4VG9SR0JBOChjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2
QmlnKQogeworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CiAgICAgZGVz
dGluYXRpb25bMF0gPSAweDA7CiAgICAgZGVzdGluYXRpb25bMV0gPSAweDA7CiAgICAgZGVzdGlu
YXRpb25bMl0gPSAweDA7CiAgICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbMF07CiB9CiAKLXZv
aWQgdW5wYWNrQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbikKK3ZvaWQgdW5wYWNrQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKICAgICBk
ZXN0aW5hdGlvblswXSA9IDB4MDsKICAgICBkZXN0aW5hdGlvblsxXSA9IDB4MDsKICAgICBkZXN0
aW5hdGlvblsyXSA9IDB4MDsKLSAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVswXSk7CisgICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKIH0KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC02
MzMsMTMgKzY1MCwxNCBAQCB2b2lkIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU2NVVubXVsdGlw
CiAvLyBpcyBub3QgaW4gUkdCQTggZm9ybWF0LCBvciB0aGUgdW5wYWNrIGFsaWdubWVudCBzcGVj
aWZpZXMgdGhhdCByb3dzCiAvLyBhcmUgbm90IHRpZ2h0bHkgcGFja2VkLgogdGVtcGxhdGU8dHlw
ZW5hbWUgU291cmNlVHlwZSwgdHlwZW5hbWUgRGVzdFR5cGUsCi0gICAgICAgICB2b2lkIHVucGFj
a2luZ0Z1bmMoY29uc3QgU291cmNlVHlwZSosIHVpbnQ4X3QqKSwKKyAgICAgICAgIHZvaWQgdW5w
YWNraW5nRnVuYyhjb25zdCBTb3VyY2VUeXBlKiwgdWludDhfdCosIGJvb2wpLAogICAgICAgICAg
dm9pZCBwYWNraW5nRnVuYyhjb25zdCB1aW50OF90KiwgRGVzdFR5cGUqKT4KIHN0YXRpYyB2b2lk
IGRvVW5wYWNraW5nQW5kUGFja2luZyhjb25zdCBTb3VyY2VUeXBlKiBzb3VyY2VEYXRhLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB3aWR0aCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1Bl
clBpeGVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBz
b3VyY2VFbGVtZW50c1BlclJvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERlc3RUeXBlKiBkZXN0aW5hdGlvbkRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCkKIHsKQEAg
LTY0OCw3ICs2NjYsNyBAQCBzdGF0aWMgdm9pZCBkb1VucGFja2luZ0FuZFBhY2tpbmcoY29uc3Qg
CiAgICAgICAgIGNvbnN0IFNvdXJjZVR5cGUqIGVuZFBvaW50ZXIgPSBzb3VyY2VEYXRhICsgbnVt
RWxlbWVudHM7CiAgICAgICAgIHVpbnQ4X3QgdGVtcG9yYXJ5UkdCQURhdGFbNF07CiAgICAgICAg
IHdoaWxlIChzb3VyY2VEYXRhIDwgZW5kUG9pbnRlcikgewotICAgICAgICAgICAgdW5wYWNraW5n
RnVuYyhzb3VyY2VEYXRhLCB0ZW1wb3JhcnlSR0JBRGF0YSk7CisgICAgICAgICAgICB1bnBhY2tp
bmdGdW5jKHNvdXJjZURhdGEsIHRlbXBvcmFyeVJHQkFEYXRhLCBzb3VyY2VCeXRlT3JkZXIxNkJp
Zyk7CiAgICAgICAgICAgICBwYWNraW5nRnVuYyh0ZW1wb3JhcnlSR0JBRGF0YSwgZGVzdGluYXRp
b25EYXRhKTsKICAgICAgICAgICAgIHNvdXJjZURhdGEgKz0gc291cmNlRWxlbWVudHNQZXJQaXhl
bDsKICAgICAgICAgICAgIGRlc3RpbmF0aW9uRGF0YSArPSBkZXN0aW5hdGlvbkVsZW1lbnRzUGVy
UGl4ZWw7CkBAIC02NTgsNyArNjc2LDcgQEAgc3RhdGljIHZvaWQgZG9VbnBhY2tpbmdBbmRQYWNr
aW5nKGNvbnN0IAogICAgICAgICBmb3IgKHVuc2lnbmVkIGludCB5ID0gMDsgeSA8IGhlaWdodDsg
Kyt5KSB7CiAgICAgICAgICAgICBjb25zdCBTb3VyY2VUeXBlKiBjdXJyZW50U291cmNlID0gc291
cmNlRGF0YTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW50IHggPSAwOyB4IDwgd2lkdGg7
ICsreCkgewotICAgICAgICAgICAgICAgIHVucGFja2luZ0Z1bmMoY3VycmVudFNvdXJjZSwgdGVt
cG9yYXJ5UkdCQURhdGEpOworICAgICAgICAgICAgICAgIHVucGFja2luZ0Z1bmMoY3VycmVudFNv
dXJjZSwgdGVtcG9yYXJ5UkdCQURhdGEsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICAgICAg
ICAgICAgICBwYWNraW5nRnVuYyh0ZW1wb3JhcnlSR0JBRGF0YSwgZGVzdGluYXRpb25EYXRhKTsK
ICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlICs9IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWw7
CiAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25EYXRhICs9IGRlc3RpbmF0aW9uRWxlbWVudHNQ
ZXJQaXhlbDsKQEAgLTY5OCw2ICs3MTYsNyBAQCBzdGF0aWMgdm9pZCBkb1BhY2tpbmcoY29uc3Qg
dm9pZCogc291cmNlCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHdpZHRoLAog
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoZWlnaHQsCiAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZVVucGFja0FsaWdubWVudCwKKyAgICAgICAgICAg
ICAgICAgICAgICBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAgICAgICAg
ICAgIERlc3RUeXBlKiBkZXN0aW5hdGlvbkRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCkKIHsKQEAgLTcxNSwxMTYgKzcz
NCwxMTYgQEAgc3RhdGljIHZvaWQgZG9QYWNraW5nKGNvbnN0IHZvaWQqIHNvdXJjZQogICAgICAg
ICAgICAgICAgIGRlc3RpbmF0aW9uRGF0YSArPSBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWw7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb1VucGFja2lu
Z0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JHQkE4VG9SR0JBOCwgcGFja2lu
Z0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhl
aWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3Rp
bmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgICAgIGRv
VW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrUkdCQThUb1JHQkE4
LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3
aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJv
dywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVt
ZW50c1BlclBpeGVsKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQkExNjogewogICAgICAgICB1bnNp
Z25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0g
ICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCA0LCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVu
dHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RU
eXBlLCB1bnBhY2tSR0JBMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3Qg
dWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25F
bGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWlu
dDE2X3Q+KHdpZHRoLCA4LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1Bl
clBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBh
Y2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0JBMTZUb1JHQkE4LCBwYWNraW5nRnVu
Yz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdo
dCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5
dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhl
bCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpr
U291cmNlRm9ybWF0UkdCODogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQ
YXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAzLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3Vy
Y2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1Vu
cGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JHQjhUb1JHQkE4LCBw
YWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywg
ZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBk
b1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JHQjhUb1JHQkE4
LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3
aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJv
dywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVt
ZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0IxNjogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAgICAgIGNvbXB1
dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAzLCBzb3VyY2VVbnBhY2tBbGln
bm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwot
ICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tS
R0IxNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNv
dXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VF
bGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4
ZWwpOworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgs
IDYsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3Vy
Y2VFbGVtZW50c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZf
dCwgRGVzdFR5cGUsIHVucGFja1JHQjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0
PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1l
bnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywg
ZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEFS
R0I4OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3Vy
Y2VFbGVtZW50c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWlu
dDhfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFj
a2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrQVJHQjhUb1JHQkE4LCBwYWNraW5nRnVuYz4o
c3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBz
b3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25E
YXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBkb1VucGFja2luZ0Fu
ZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0FSR0I4VG9SR0JBOCwgcGFja2luZ0Z1
bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdo
dCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5
dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhl
bCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpr
U291cmNlRm9ybWF0QVJHQjE2OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50
c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKLSAgICAgICAgY29tcHV0ZUluY3JlbWVu
dFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNv
dXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRv
VW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja0FSR0IxNlRvUkdC
QTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEp
LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1Bl
clJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAg
ICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDgsIHNvdXJj
ZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50
c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5
cGUsIHVucGFja0FSR0IxNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1
aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0
aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRCR1JBODogewog
ICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVu
dHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdp
ZHRoLCA0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAm
c291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWlu
dDhfdCwgRGVzdFR5cGUsIHVucGFja0JHUkE4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVz
dGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5n
PHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tCR1JBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0
aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIx
NkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZv
cm1hdEJHUkExNjogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhl
bCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0
ZXJzPHVpbnQ4X3Q+KHdpZHRoLCA0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVt
ZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2lu
Z0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tCR1JBMTZUb1JHQkE4LCBwYWNr
aW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgs
IGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRl
c3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgY29t
cHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDE2X3Q+KHdpZHRoLCA4LCBzb3VyY2VVbnBhY2tB
bGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cp
OworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBh
Y2tCR1JBMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3Qq
Pihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291
cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEs
IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkdCQTU1NTE6IHsKICAgICAg
ICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVy
Um93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgs
IDIsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3Vy
Y2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZf
dCwgRGVzdFR5cGUsIHVucGFja1JHQkE1NTUxVG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVs
ZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRl
c3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2lu
Zzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQkE1NTUxVG9SR0JBOCwgcGFja2luZ0Z1bmM+
KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQs
IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRl
T3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwp
OwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1Nv
dXJjZUZvcm1hdFJHQkE0NDQ0OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50
c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVu
dFBhcmFtZXRlcnM8dWludDE2X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZz
b3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBk
b1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0JBNDQ0NFRv
UkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURh
dGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwor
ICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tS
R0JBNDQ0NFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+
KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3Vy
Y2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwg
ZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0I1NjU6IHsKICAgICAgICAg
dW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93
OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDIs
IHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VF
bGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwg
RGVzdFR5cGUsIHVucGFja1JHQjU2NVRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxj
b25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50
c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5h
dGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWlu
dDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0I1NjVUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGlj
X2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNl
RWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2
QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9y
bWF0Ujg6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNv
dXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1
aW50OF90Pih3aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQ
YWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tSOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihz
dGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNv
dXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRh
dGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5k
UGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrUjhUb1JHQkE4LCBwYWNraW5nRnVuYz4o
c3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBz
b3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9y
ZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3Vy
Y2VGb3JtYXRSMTY6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4
ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1l
dGVyczx1aW50OF90Pih3aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tp
bmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUjE2VG9SR0JBOCwgcGFja2lu
Z0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBo
ZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0
aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1
dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxp
Z25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsK
KyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNr
UjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291
cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVs
ZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0
aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJBODogewogICAgICAgICB1bnNpZ25l
ZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAg
ICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAyLCBzb3VyY2VV
bnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQ
ZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUs
IHVucGFja1JBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90
Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNv
dXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQ
ZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlw
ZSwgdW5wYWNrUkE4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4
X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwg
c291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRh
dGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkExNjogewogICAgICAg
ICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJS
b3c7Ci0gICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAy
LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNl
RWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3Qs
IERlc3RUeXBlLCB1bnBhY2tSQTE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNv
bnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRz
UGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0
aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJz
PHVpbnQxNl90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVu
dHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdB
bmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkExNlRvUkdCQTgsIHBhY2tpbmdG
dW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVp
Z2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNl
Qnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBp
eGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OmtTb3VyY2VGb3JtYXRBUjg6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRz
UGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50
UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9V
bnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tBUjhUb1JHQkE4LCBw
YWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywg
ZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBk
b1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0FSOFRvUkdCQTgs
IHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdp
ZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93
LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1l
bnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6a1NvdXJjZUZvcm1hdEFSMTY6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBjb21wdXRl
SW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25t
ZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAg
ICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQVIx
NlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJj
ZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVt
ZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwp
OworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDQs
IHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VF
bGVtZW50c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwg
RGVzdFR5cGUsIHVucGFja0FSMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0
aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QTg6IHsK
ICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1l
bnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3
aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwg
JnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVp
bnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2Fz
dDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1l
bnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3Rp
bmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1
aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrQThUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nh
c3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVt
ZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcs
IGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRB
MTY6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJj
ZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50
OF90Pih3aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNr
aW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQTE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0
YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNv
dXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRh
dGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1dGVJbmNyZW1l
bnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAm
c291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAg
ZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQTE2VG9SR0JB
OCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSks
IHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVy
Um93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVs
ZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgfQpAQCAtODM1LDYg
Kzg1NCw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHdpZHRoLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlVW5wYWNrQWxp
Z25tZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNvdXJjZUJ5
dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgZGVzdGluYXRpb25Gb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBkZXN0aW5hdGlvblR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFscGhhT3AgYWxwaGFPcCwKQEAgLTg1MiwxMyArODcyLDEzIEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAgY2FzZSBSR0I6CiAg
ICAgICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsKICAgICAgICAgICAgIGNhc2Uga0FscGhhRG9O
b3RoaW5nOgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JH
Qjg+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVu
cGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDMpOworICAgICAgICAgICAgICAgIGRvUGFja2lu
Zzx1aW50OF90LCBwYWNrUkdCQThUb1JHQjg+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQs
IHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZC
aWcsIGRlc3RpbmF0aW9uLCAzKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWlu
dDhfdCwgcGFja1JHQkE4VG9SR0I4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFG
b3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24s
IDMpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQjhQ
cmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
c291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24s
IDMpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1Vu
bXVsdGlwbHk6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRv
UkdCOFVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWln
aHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDMpOworICAgICAgICAgICAg
ICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQjhVbm11bHRpcGx5Pihzb3VyY2VE
YXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMyk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTg2NiwxMyAr
ODg2LDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAg
ICAgICAgIHN3aXRjaCAoYWxwaGFPcCkgewogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb05vdGhp
bmc6CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNvdXJjZURhdGFGb3JtYXQgIT0ga1NvdXJjZUZv
cm1hdFJHQkE4IHx8IHNvdXJjZVVucGFja0FsaWdubWVudCA+IDQpOyAvLyBIYW5kbGVkIGFib3Zl
IHdpdGggZmFzdCBjYXNlLgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNr
UkdCQThUb1JHQkE4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0
LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCA0KTsKKyAgICAgICAgICAgICAg
ICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SR0JBOD4oc291cmNlRGF0YSwgc291cmNl
RGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VC
eXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRv
UGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQkE4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEs
IHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwg
ZGVzdGluYXRpb24sIDQpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNr
UkdCQThUb1JHQkE4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdp
ZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZCaWcs
IGRlc3RpbmF0aW9uLCA0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2Uga0FscGhhRG9Vbm11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90
LCBwYWNrUkdCQThUb1JHQkE4VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1h
dCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgNCk7
CisgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQThVbm11
bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgNCk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODgyLDcgKzkwMiw3IEBAIGJvb2wgR3Jh
cGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAgICAgIC8vIEZyb20gdGhl
IGRlc2t0b3AgT3BlbkdMIGNvbnZlcnNpb24gcnVsZXMgKE9wZW5HTCAyLjEKICAgICAgICAgICAg
IC8vIHNwZWNpZmljYXRpb24sIFRhYmxlIDMuMTUpLCB0aGUgYWxwaGEgY2hhbm5lbCBpcyBjaG9z
ZW4KICAgICAgICAgICAgIC8vIGZyb20gdGhlIFJHQkEgZGF0YS4KLSAgICAgICAgICAgIGRvUGFj
a2luZzx1aW50OF90LCBwYWNrUkdCQThUb0E4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0
LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsK
KyAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb0E4Pihzb3VyY2VEYXRh
LCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQs
IHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBMVU1JTkFOQ0U6CiAgICAgICAgICAgICAvLyBGcm9tIHRoZSBkZXNr
dG9wIE9wZW5HTCBjb252ZXJzaW9uIHJ1bGVzIChPcGVuR0wgMi4xCkBAIC04OTAsMTMgKzkxMCwx
MyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0CiAgICAgICAgICAg
ICAvLyBmcm9tIHRoZSBSR0JBIGRhdGEuCiAgICAgICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsK
ICAgICAgICAgICAgIGNhc2Uga0FscGhhRG9Ob3RoaW5nOgotICAgICAgICAgICAgICAgIGRvUGFj
a2luZzx1aW50OF90LCBwYWNrUkdCQThUb1I4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0
LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsK
KyAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SOD4oc291cmNl
RGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25t
ZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAg
ICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1I4UHJlbXVsdGlwbHk+KHNv
dXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0Fs
aWdubWVudCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50
OF90LCBwYWNrUkdCQThUb1I4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3Jt
YXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVy
MTZCaWcsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIGNhc2Uga0FscGhhRG9Vbm11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1
aW50OF90LCBwYWNrUkdCQThUb1I4VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZv
cm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwg
MSk7CisgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUjhVbm11
bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh
azsKQEAgLTkwNiwxMyArOTI2LDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhl
bHMoY29uc3QKICAgICAgICAgICAgIC8vIGFyZSBjaG9zZW4gZnJvbSB0aGUgUkdCQSBkYXRhLgog
ICAgICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgICAgICBjYXNlIGtBbHBoYURv
Tm90aGluZzoKLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9S
QTg+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVu
cGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDIpOworICAgICAgICAgICAgICAgIGRvUGFja2lu
Zzx1aW50OF90LCBwYWNrUkdCQThUb1JBOD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwg
d2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJp
ZywgZGVzdGluYXRpb24sIDIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Y2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50
OF90LCBwYWNrUkdCQThUb1JBOFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9y
bWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAy
KTsKKyAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SQThQcmVt
dWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291
cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDIp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVs
dGlwbHk6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkE4
VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
c291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMik7CisgICAgICAgICAgICAgICAg
ZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkE4VW5tdWx0aXBseT4oc291cmNlRGF0YSwg
c291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBz
b3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDIpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC05MjMsMTMgKzk0Mywx
MyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0CiAgICAgICAgIHVp
bnQxNl90KiBkZXN0aW5hdGlvbiA9IHN0YXRpY19jYXN0PHVpbnQxNl90Kj4oZGVzdGluYXRpb25E
YXRhKTsKICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgIGNhc2Uga0FscGhhRG9O
b3RoaW5nOgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2ln
bmVkU2hvcnQ0NDQ0Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0
LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRv
UGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0ND4oc291cmNlRGF0
YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50
LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAgICAgICAgICAgIGRvUGFj
a2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NFByZW11bHRpcGx5Pihz
b3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tB
bGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZf
dCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBz
b3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNv
dXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8
dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDQ0NDRVbm11bHRpcGx5Pihzb3VyY2VE
YXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFj
a1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NFVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURh
dGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0
ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGJyZWFrOwpAQCAtOTM4LDEzICs5NTgsMTMgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6cGFja1BpeGVscyhjb25zdAogICAgICAgICB1aW50MTZfdCogZGVzdGluYXRpb24g
PSBzdGF0aWNfY2FzdDx1aW50MTZfdCo+KGRlc3RpbmF0aW9uRGF0YSk7CiAgICAgICAgIHN3aXRj
aCAoYWxwaGFPcCkgewogICAgICAgICBjYXNlIGtBbHBoYURvTm90aGluZzoKLSAgICAgICAgICAg
IGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTU1MT4oc291cmNl
RGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25t
ZW50LCBkZXN0aW5hdGlvbiwgMSk7CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBh
Y2tSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTE+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQs
IHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZC
aWcsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIGtB
bHBoYURvUHJlbXVsdGlwbHk6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tS
R0JBOFRvVW5zaWduZWRTaG9ydDU1NTFQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0
YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlv
biwgMSk7CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWdu
ZWRTaG9ydDU1NTFQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lk
dGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywg
ZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Uga0FscGhh
RG9Vbm11bHRpcGx5OgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThU
b1Vuc2lnbmVkU2hvcnQ1NTUxVW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1h
dCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7
CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9y
dDU1NTFVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVp
Z2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5h
dGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBicmVhazsK
QEAgLTk1MywxMyArOTczLDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMo
Y29uc3QKICAgICAgICAgdWludDE2X3QqIGRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8dWludDE2
X3QqPihkZXN0aW5hdGlvbkRhdGEpOwogICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsKICAgICAg
ICAgY2FzZSBrQWxwaGFEb05vdGhpbmc6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3Qs
IHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU2NT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1h
dCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7
CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9y
dDU2NT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNl
VW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAg
ICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTY1
UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQs
IHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgZG9Q
YWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVQcmVtdWx0aXBseT4o
c291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNr
QWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Uga0FscGhhRG9Vbm11bHRpcGx5OgotICAgICAgICAg
ICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVVbm11bHRp
cGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VV
bnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1
aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTY1VW5tdWx0aXBseT4oc291cmNlRGF0
YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50
LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCShyZXZpc2lvbiA2OTgwNikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpA
QCAtODM4LDYgKzgzOCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50IHdpZHRoLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LAogICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlVW5wYWNrQWxpZ25tZW50LAorICAg
ICAgICAgICAgICAgICAgICBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbnQgZGVzdGluYXRpb25Gb3JtYXQsCiAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBkZXN0aW5hdGlvblR5cGUsCiAgICAgICAgICAgICAgICAgICAgIEFs
cGhhT3AgYWxwaGFPcCwKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0M0RDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAkocmV2aXNpb24gNjk4MDYpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNDgsNyArMjQ4LDI3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdl
RGF0YShJbWEKICAgICAgICAgd2hpbGUgKGJ5dGVzUGVyUm93ICUgc3JjVW5wYWNrQWxpZ25tZW50
KQogICAgICAgICAgICAgKytzcmNVbnBhY2tBbGlnbm1lbnQ7CiAgICAgfQotICAgIGJvb2wgcnQg
PSBwYWNrUGl4ZWxzKHJnYmEsIHNyY0RhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNyY1VucGFj
a0FsaWdubWVudCwKKyAgICBib29sIHNyY0J5dGVPcmRlcjE2QmlnOworICAgIGlmIChiaXRzUGVy
Q29tcG9uZW50ID09IDE2KSB7CisgICAgICAgIENHQml0bWFwSW5mbyBiaXRJbmZvID0gQ0dJbWFn
ZUdldEJpdG1hcEluZm8oY2dJbWFnZSk7CisgICAgICAgIHN3aXRjaCAoYml0SW5mbyAmIGtDR0Jp
dG1hcEJ5dGVPcmRlck1hc2spIHsKKyAgICAgICAgY2FzZSBrQ0dCaXRtYXBCeXRlT3JkZXIxNkJp
ZzoKKyAgICAgICAgICAgIHNyY0J5dGVPcmRlcjE2QmlnID0gdHJ1ZTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlcjE2TGl0dGxlOgorICAgICAgICAg
ICAgc3JjQnl0ZU9yZGVyMTZCaWcgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlckRlZmF1bHQ6CisgICAgICAgICAgICAvLyBTZWVtcyBs
aWtlIEJ5dGVPcmRlckRlZmF1bHQgaXMgb25seSByZXR1cm5lZCBmb3IgTWFjT1MgZWFybGllciB0
aGFuIDEwLjYuNCwKKyAgICAgICAgICAgIC8vIGFuZCBzbyBmYXIgd2Ugb25seSBlbmNvdW50ZXJl
ZCBCeXRlT3JkZXIxNkJpZyBvbiB0aGVtLgorICAgICAgICAgICAgLy8gSXQgd291bGQgYmUgbmlj
ZSBpZiB3ZSBoYXZlIGEgbWVjaGFuaXNtIHRvIHF1ZXJ5IHRoZSBkZWZhdWx0IGJ5dGUgb3JkZXIu
CisgICAgICAgICAgICBzcmNCeXRlT3JkZXIxNkJpZyA9IHRydWU7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQorICAgIH0KKyAgICBib29sIHJ0ID0gcGFja1BpeGVscyhyZ2JhLCBzcmNEYXRhRm9ybWF0LCB3
aWR0aCwgaGVpZ2h0LCBzcmNVbnBhY2tBbGlnbm1lbnQsIHNyY0J5dGVPcmRlcjE2QmlnLAogICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCwgdHlwZSwgbmVlZGVkQWxwaGFPcCwgb3V0cHV0
VmVjdG9yLmRhdGEoKSk7CiAgICAgcmV0dXJuIHJ0OwogfQo=
</data>
<flag name="commit-queue"
          id="60858"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71050</attachid>
            <date>2010-10-18 10:11:08 -0700</date>
            <delta_ts>2010-10-18 15:13:36 -0700</delta_ts>
            <desc>revised patch: fixed the skia port compile error</desc>
            <filename>png16.patch</filename>
            <type>text/plain</type>
            <size>42959</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTg5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMTAtMTUgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnbC10ZXhp
bWFnZS5odG1sIGZhaWxzIG9uIGNocm9taXVtIHdlYmtpdCBtYWMgYm90CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzAzNAorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOiBBZGQgcGFyYW1ldGVyIG9mIGJ5
dGUgb3JkZXIuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0Q29sb3IxNlRvOCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdFRleHR1cmVEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRvVW5wYWNraW5nQW5kUGFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpk
b1BhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhl
bHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cu
Y3BwOiBBZGRpbmcgY29kZSB0byBoYW5kbGUgYnl0ZSBvcmRlci4KKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcDogRGVhbCB3aXRoIGV4dHJhIGJ5
dGVPcmRlciBwYXJhbWV0ZXIgaW4gcGFja1BpeGVscy4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorCiAyMDEwLTEwLTE1ICBEYW4gQmVybnN0ZWlu
ICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUgUGV0ZXJzb24u
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmNwcAkocmV2aXNpb24gNjk4MDYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTEgKzM1LDE2IEBACiAjaW5j
bHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKIAorI2luY2x1ZGUgPHd0Zi9V
bnVzZWRQYXJhbS5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB1aW50OF90IGNv
bnZlcnRDb2xvcjE2VG84KHVpbnQxNl90IHZhbHVlKQorc3RhdGljIHVpbnQ4X3QgY29udmVydENv
bG9yMTZUbzgodWludDE2X3QgdmFsdWUsIGJvb2wgYnl0ZU9yZGVyQmlnKQogewotICAgIHJldHVy
biB2YWx1ZSA+PiA4OworICAgIHVpbnQ4X3QqIHZhbHVlOCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCo+KCZ2YWx1ZSk7CisgICAgaWYgKGJ5dGVPcmRlckJpZykKKyAgICAgICAgcmV0dXJuIHZh
bHVlOFswXTsKKyAgICByZXR1cm4gdmFsdWU4WzFdOwogfQogCiBQYXNzUmVmUHRyPERyYXdpbmdC
dWZmZXI+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVEcmF3aW5nQnVmZmVyKGNvbnN0IEludFNp
emUmIHNpemUpCkBAIC0xMzEsNiArMTM2LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0
cmFjdEltYWdlRGF0YQogICAgICAgICAgICAgICAgICAgICB3aWR0aCwKICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAg
ICBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LAogICAgICAgICAgICAgICAgICAg
ICB0eXBlLAogICAgICAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhID8ga0FscGhhRG9Q
cmVtdWx0aXBseSA6IGtBbHBoYURvTm90aGluZywKQEAgLTIwNiw3ICsyMTIsNyBAQCBib29sIEdy
YXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhCiAKICAgICBpZiAoIXBhY2tQaXhlbHMo
c3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHBpeGVscyksCiAgICAgICAgICAgICAgICAgICAg
IHNvdXJjZURhdGFGb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgIHdpZHRoLCBoZWlnaHQsIHVu
cGFja0FsaWdubWVudCwKKyAgICAgICAgICAgICAgICAgICAgd2lkdGgsIGhlaWdodCwgdW5wYWNr
QWxpZ25tZW50LCBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCB0eXBlLAogICAg
ICAgICAgICAgICAgICAgICAocHJlbXVsdGlwbHlBbHBoYSA/IGtBbHBoYURvUHJlbXVsdGlwbHkg
OiBrQWxwaGFEb05vdGhpbmcpLAogICAgICAgICAgICAgICAgICAgICBkYXRhLmRhdGEoKSkpCkBA
IC0yNTAsNzIgKzI1Niw3NyBAQCBuYW1lc3BhY2UgewogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBQaXhl
bCB1bnBhY2tpbmcgcm91dGluZXMuCiAKLXZvaWQgdW5wYWNrUkdCQThUb1JHQkE4KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja1JHQkE4VG9S
R0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNv
dXJjZUJ5dGVPcmRlcjE2QmlnKQogeworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VCeXRlT3JkZXIx
NkJpZyk7CiAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CiAgICAgZGVzdGluYXRpb25b
MV0gPSBzb3VyY2VbMV07CiAgICAgZGVzdGluYXRpb25bMl0gPSBzb3VyY2VbMl07CiAgICAgZGVz
dGluYXRpb25bM10gPSBzb3VyY2VbM107CiB9CiAKLXZvaWQgdW5wYWNrUkdCQTE2VG9SR0JBOChj
b25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNr
UkdCQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
biwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKLSAgICBkZXN0aW5hdGlvblswXSA9IGNv
bnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7Ci0gICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0
Q29sb3IxNlRvOChzb3VyY2VbMV0pOwotICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9y
MTZUbzgoc291cmNlWzJdKTsKLSAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVszXSk7CisgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVsxXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRlc3Rp
bmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzJdLCBzb3VyY2VCeXRlT3JkZXIx
NkJpZyk7CisgICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbM10s
IHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKIH0KIAotdm9pZCB1bnBhY2tSR0I4VG9SR0JBOChjb25z
dCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tSR0I4
VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29s
IHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQogeworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VCeXRlT3Jk
ZXIxNkJpZyk7CiAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CiAgICAgZGVzdGluYXRp
b25bMV0gPSBzb3VyY2VbMV07CiAgICAgZGVzdGluYXRpb25bMl0gPSBzb3VyY2VbMl07CiAgICAg
ZGVzdGluYXRpb25bM10gPSAweEZGOwogfQogCi12b2lkIHVucGFja1JHQjE2VG9SR0JBOChjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUkdC
MTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBi
b29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQogewotICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVy
dENvbG9yMTZUbzgoc291cmNlWzBdKTsKLSAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xv
cjE2VG84KHNvdXJjZVsxXSk7Ci0gICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNlRv
OChzb3VyY2VbMl0pOworICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291
cmNlWzBdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252
ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0
aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsyXSwgc291cmNlQnl0ZU9yZGVy
MTZCaWcpOwogICAgIGRlc3RpbmF0aW9uWzNdID0gMHhGRjsKIH0KIAotdm9pZCB1bnBhY2tBUkdC
OFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3Zv
aWQgdW5wYWNrQVJHQjhUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcpCiB7CisgICAgVU5VU0VEX1BBUkFN
KHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsxXTsK
ICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJjZVsyXTsKICAgICBkZXN0aW5hdGlvblsyXSA9IHNv
dXJjZVszXTsKICAgICBkZXN0aW5hdGlvblszXSA9IHNvdXJjZVswXTsKIH0KIAotdm9pZCB1bnBh
Y2tBUkdCMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0
aW9uKQordm9pZCB1bnBhY2tBUkdCMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVp
bnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQogewotICAgIGRl
c3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdKTsKLSAgICBkZXN0aW5h
dGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsyXSk7Ci0gICAgZGVzdGluYXRpb25b
Ml0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbM10pOwotICAgIGRlc3RpbmF0aW9uWzNdID0g
Y29udmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVsxXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRlc3Rp
bmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzJdLCBzb3VyY2VCeXRlT3JkZXIx
NkJpZyk7CisgICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbM10s
IHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xv
cjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOwogfQogCi12b2lkIHVucGFj
a0JHUkE4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
KQordm9pZCB1bnBhY2tCR1JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKKyAgICBVTlVTRURf
UEFSQU0oc291cmNlQnl0ZU9yZGVyMTZCaWcpOwogICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNl
WzJdOwogICAgIGRlc3RpbmF0aW9uWzFdID0gc291cmNlWzFdOwogICAgIGRlc3RpbmF0aW9uWzJd
ID0gc291cmNlWzBdOwogICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzNdOwogfQogCi12b2lk
IHVucGFja0JHUkExNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24pCit2b2lkIHVucGFja0JHUkExNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcpCiB7Ci0g
ICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMl0pOwotICAgIGRl
c3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdKTsKLSAgICBkZXN0aW5h
dGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7Ci0gICAgZGVzdGluYXRpb25b
M10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbM10pOworICAgIGRlc3RpbmF0aW9uWzBdID0g
Y29udmVydENvbG9yMTZUbzgoc291cmNlWzJdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CisgICAg
ZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0sIHNvdXJjZUJ5dGVP
cmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJj
ZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRlc3RpbmF0aW9uWzNdID0gY29udmVy
dENvbG9yMTZUbzgoc291cmNlWzNdLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CiB9CiAKLXZvaWQg
dW5wYWNrUkdCQTU1NTFUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uKQordm9pZCB1bnBhY2tSR0JBNTU1MVRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcpCiB7
CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICB1aW50MTZfdCBw
YWNrZWRWYWx1ZSA9IHNvdXJjZVswXTsKICAgICB1aW50OF90IHIgPSBwYWNrZWRWYWx1ZSA+PiAx
MTsKICAgICB1aW50OF90IGcgPSAocGFja2VkVmFsdWUgPj4gNikgJiAweDFGOwpAQCAtMzI2LDgg
KzMzNyw5IEBAIHZvaWQgdW5wYWNrUkdCQTU1NTFUb1JHQkE4KGNvbnN0IHVpbnQxNl8KICAgICBk
ZXN0aW5hdGlvblszXSA9IChwYWNrZWRWYWx1ZSAmIDB4MSkgPyAweEZGIDogMHgwOwogfQogCi12
b2lkIHVucGFja1JHQkE0NDQ0VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUkdCQTQ0NDRUb1JHQkE4KGNvbnN0IHVpbnQxNl90
KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2Qmln
KQogeworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CiAgICAgdWludDE2
X3QgcGFja2VkVmFsdWUgPSBzb3VyY2VbMF07CiAgICAgdWludDhfdCByID0gcGFja2VkVmFsdWUg
Pj4gMTI7CiAgICAgdWludDhfdCBnID0gKHBhY2tlZFZhbHVlID4+IDgpICYgMHgwRjsKQEAgLTMz
OSw4ICszNTEsOSBAQCB2b2lkIHVucGFja1JHQkE0NDQ0VG9SR0JBOChjb25zdCB1aW50MTZfCiAg
ICAgZGVzdGluYXRpb25bM10gPSBhIDw8IDQgfCBhOwogfQogCi12b2lkIHVucGFja1JHQjU2NVRv
UkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit2b2lk
IHVucGFja1JHQjU2NVRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcpCiB7CisgICAgVU5VU0VEX1BBUkFN
KHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICB1aW50MTZfdCBwYWNrZWRWYWx1ZSA9IHNvdXJj
ZVswXTsKICAgICB1aW50OF90IHIgPSBwYWNrZWRWYWx1ZSA+PiAxMTsKICAgICB1aW50OF90IGcg
PSAocGFja2VkVmFsdWUgPj4gNSkgJiAweDNGOwpAQCAtMzUxLDY4ICszNjQsNzIgQEAgdm9pZCB1
bnBhY2tSR0I1NjVUb1JHQkE4KGNvbnN0IHVpbnQxNl90KgogICAgIGRlc3RpbmF0aW9uWzNdID0g
MHhGRjsKIH0KIAotdm9pZCB1bnBhY2tSOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUjhUb1JHQkE4KGNvbnN0IHVpbnQ4X3Qq
IHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZCaWcp
CiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVswXTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJjZVswXTsKICAg
ICBkZXN0aW5hdGlvblsyXSA9IHNvdXJjZVswXTsKICAgICBkZXN0aW5hdGlvblszXSA9IDB4RkY7
CiB9CiAKLXZvaWQgdW5wYWNrUjE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50
OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUjE2VG9SR0JBOChjb25zdCB1aW50MTZfdCog
c291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykK
IHsKLSAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7Ci0g
ICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOwotICAgIGRl
c3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0aW5h
dGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZC
aWcpOworICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdLCBz
b3VyY2VCeXRlT3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3Ix
NlRvOChzb3VyY2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBkZXN0aW5hdGlvblsz
XSA9IDB4RkY7CiB9CiAKLXZvaWQgdW5wYWNrUkE4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tSQThUb1JHQkE4KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVy
MTZCaWcpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBk
ZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJjZVsw
XTsKICAgICBkZXN0aW5hdGlvblsyXSA9IHNvdXJjZVswXTsKICAgICBkZXN0aW5hdGlvblszXSA9
IHNvdXJjZVsxXTsKIH0KIAotdm9pZCB1bnBhY2tSQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCog
c291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrUkExNlRvUkdCQTgoY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0
ZU9yZGVyMTZCaWcpCiB7Ci0gICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRvOChz
b3VyY2VbMF0pOwotICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNl
WzBdKTsKLSAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7
Ci0gICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0pOworICAg
IGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdLCBzb3VyY2VCeXRl
T3JkZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMF0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVswXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRlc3Rp
bmF0aW9uWzNdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdLCBzb3VyY2VCeXRlT3JkZXIx
NkJpZyk7CiB9CiAKLXZvaWQgdW5wYWNrQVI4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tBUjhUb1JHQkE4KGNvbnN0IHVpbnQ4
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9yZGVyMTZC
aWcpCiB7CisgICAgVU5VU0VEX1BBUkFNKHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICBkZXN0
aW5hdGlvblswXSA9IHNvdXJjZVsxXTsKICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJjZVsxXTsK
ICAgICBkZXN0aW5hdGlvblsyXSA9IHNvdXJjZVsxXTsKICAgICBkZXN0aW5hdGlvblszXSA9IHNv
dXJjZVswXTsKIH0KIAotdm9pZCB1bnBhY2tBUjE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291
cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3ZvaWQgdW5wYWNrQVIxNlRvUkdCQTgoY29uc3Qg
dWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIGJvb2wgc291cmNlQnl0ZU9y
ZGVyMTZCaWcpCiB7Ci0gICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbMV0pOwotICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFd
KTsKLSAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7Ci0g
ICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOworICAgIGRl
c3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdLCBzb3VyY2VCeXRlT3Jk
ZXIxNkJpZyk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2Vb
MV0sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRD
b2xvcjE2VG84KHNvdXJjZVsxXSwgc291cmNlQnl0ZU9yZGVyMTZCaWcpOworICAgIGRlc3RpbmF0
aW9uWzNdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdLCBzb3VyY2VCeXRlT3JkZXIxNkJp
Zyk7CiB9CiAKLXZvaWQgdW5wYWNrQThUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWlu
dDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja0E4VG9SR0JBOChjb25zdCB1aW50OF90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKQog
eworICAgIFVOVVNFRF9QQVJBTShzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CiAgICAgZGVzdGluYXRp
b25bMF0gPSAweDA7CiAgICAgZGVzdGluYXRpb25bMV0gPSAweDA7CiAgICAgZGVzdGluYXRpb25b
Ml0gPSAweDA7CiAgICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbMF07CiB9CiAKLXZvaWQgdW5w
YWNrQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
bikKK3ZvaWQgdW5wYWNrQTE2VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgYm9vbCBzb3VyY2VCeXRlT3JkZXIxNkJpZykKIHsKICAgICBkZXN0aW5h
dGlvblswXSA9IDB4MDsKICAgICBkZXN0aW5hdGlvblsxXSA9IDB4MDsKICAgICBkZXN0aW5hdGlv
blsyXSA9IDB4MDsKLSAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJj
ZVswXSk7CisgICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0s
IHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKIH0KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC02MzMsMTMg
KzY1MCwxNCBAQCB2b2lkIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU2NVVubXVsdGlwCiAvLyBp
cyBub3QgaW4gUkdCQTggZm9ybWF0LCBvciB0aGUgdW5wYWNrIGFsaWdubWVudCBzcGVjaWZpZXMg
dGhhdCByb3dzCiAvLyBhcmUgbm90IHRpZ2h0bHkgcGFja2VkLgogdGVtcGxhdGU8dHlwZW5hbWUg
U291cmNlVHlwZSwgdHlwZW5hbWUgRGVzdFR5cGUsCi0gICAgICAgICB2b2lkIHVucGFja2luZ0Z1
bmMoY29uc3QgU291cmNlVHlwZSosIHVpbnQ4X3QqKSwKKyAgICAgICAgIHZvaWQgdW5wYWNraW5n
RnVuYyhjb25zdCBTb3VyY2VUeXBlKiwgdWludDhfdCosIGJvb2wpLAogICAgICAgICAgdm9pZCBw
YWNraW5nRnVuYyhjb25zdCB1aW50OF90KiwgRGVzdFR5cGUqKT4KIHN0YXRpYyB2b2lkIGRvVW5w
YWNraW5nQW5kUGFja2luZyhjb25zdCBTb3VyY2VUeXBlKiBzb3VyY2VEYXRhLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB3aWR0aCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVs
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VF
bGVtZW50c1BlclJvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNv
dXJjZUJ5dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERl
c3RUeXBlKiBkZXN0aW5hdGlvbkRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCkKIHsKQEAgLTY0OCw3
ICs2NjYsNyBAQCBzdGF0aWMgdm9pZCBkb1VucGFja2luZ0FuZFBhY2tpbmcoY29uc3QgCiAgICAg
ICAgIGNvbnN0IFNvdXJjZVR5cGUqIGVuZFBvaW50ZXIgPSBzb3VyY2VEYXRhICsgbnVtRWxlbWVu
dHM7CiAgICAgICAgIHVpbnQ4X3QgdGVtcG9yYXJ5UkdCQURhdGFbNF07CiAgICAgICAgIHdoaWxl
IChzb3VyY2VEYXRhIDwgZW5kUG9pbnRlcikgewotICAgICAgICAgICAgdW5wYWNraW5nRnVuYyhz
b3VyY2VEYXRhLCB0ZW1wb3JhcnlSR0JBRGF0YSk7CisgICAgICAgICAgICB1bnBhY2tpbmdGdW5j
KHNvdXJjZURhdGEsIHRlbXBvcmFyeVJHQkFEYXRhLCBzb3VyY2VCeXRlT3JkZXIxNkJpZyk7CiAg
ICAgICAgICAgICBwYWNraW5nRnVuYyh0ZW1wb3JhcnlSR0JBRGF0YSwgZGVzdGluYXRpb25EYXRh
KTsKICAgICAgICAgICAgIHNvdXJjZURhdGEgKz0gc291cmNlRWxlbWVudHNQZXJQaXhlbDsKICAg
ICAgICAgICAgIGRlc3RpbmF0aW9uRGF0YSArPSBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWw7
CkBAIC02NTgsNyArNjc2LDcgQEAgc3RhdGljIHZvaWQgZG9VbnBhY2tpbmdBbmRQYWNraW5nKGNv
bnN0IAogICAgICAgICBmb3IgKHVuc2lnbmVkIGludCB5ID0gMDsgeSA8IGhlaWdodDsgKyt5KSB7
CiAgICAgICAgICAgICBjb25zdCBTb3VyY2VUeXBlKiBjdXJyZW50U291cmNlID0gc291cmNlRGF0
YTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW50IHggPSAwOyB4IDwgd2lkdGg7ICsreCkg
ewotICAgICAgICAgICAgICAgIHVucGFja2luZ0Z1bmMoY3VycmVudFNvdXJjZSwgdGVtcG9yYXJ5
UkdCQURhdGEpOworICAgICAgICAgICAgICAgIHVucGFja2luZ0Z1bmMoY3VycmVudFNvdXJjZSwg
dGVtcG9yYXJ5UkdCQURhdGEsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnKTsKICAgICAgICAgICAgICAg
ICBwYWNraW5nRnVuYyh0ZW1wb3JhcnlSR0JBRGF0YSwgZGVzdGluYXRpb25EYXRhKTsKICAgICAg
ICAgICAgICAgICBjdXJyZW50U291cmNlICs9IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWw7CiAgICAg
ICAgICAgICAgICAgZGVzdGluYXRpb25EYXRhICs9IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhl
bDsKQEAgLTY5OCw2ICs3MTYsNyBAQCBzdGF0aWMgdm9pZCBkb1BhY2tpbmcoY29uc3Qgdm9pZCog
c291cmNlCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHdpZHRoLAogICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50IHNvdXJjZVVucGFja0FsaWdubWVudCwKKyAgICAgICAgICAgICAgICAg
ICAgICBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAgICAgICAgICAgIERl
c3RUeXBlKiBkZXN0aW5hdGlvbkRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCkKIHsKQEAgLTcxNSwxMTYgKzczNCwxMTYg
QEAgc3RhdGljIHZvaWQgZG9QYWNraW5nKGNvbnN0IHZvaWQqIHNvdXJjZQogICAgICAgICAgICAg
ICAgIGRlc3RpbmF0aW9uRGF0YSArPSBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWw7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb1VucGFja2luZ0FuZFBh
Y2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JHQkE4VG9SR0JBOCwgcGFja2luZ0Z1bmM+
KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwg
c291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9u
RGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgICAgIGRvVW5wYWNr
aW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrUkdCQThUb1JHQkE4LCBwYWNr
aW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwg
aGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291
cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1Bl
clBpeGVsKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQkExNjogewogICAgICAgICB1bnNpZ25lZCBp
bnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAgICAg
IGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCA0LCBzb3VyY2VVbnBh
Y2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJS
b3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1
bnBhY2tSR0JBMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2
X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwg
c291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50
c1BlclBpeGVsKTsKKyAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDE2X3Q+
KHdpZHRoLCA4LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVs
LCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8
dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0JBMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3Rh
dGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRl
cjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNl
Rm9ybWF0UkdCODogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhl
bCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0
ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAzLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVt
ZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2lu
Z0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JHQjhUb1JHQkE4LCBwYWNraW5n
RnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVp
Z2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGlu
YXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBkb1VucGFj
a2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JHQjhUb1JHQkE4LCBwYWNr
aW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwg
aGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291
cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1Bl
clBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OmtTb3VyY2VGb3JtYXRSR0IxNjogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAgICAgIGNvbXB1dGVJbmNy
ZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAzLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQs
ICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAg
ICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0IxNlRv
UkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURh
dGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwor
ICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDYsIHNv
dXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVt
ZW50c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVz
dFR5cGUsIHVucGFja1JHQjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0
IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGlu
YXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsK
ICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEFSR0I4OiB7
CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVt
ZW50c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4o
d2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
ICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1
aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrQVJHQjhUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGlj
X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VF
bGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBk
ZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tp
bmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0FSR0I4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0
YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRl
cjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNl
Rm9ybWF0QVJHQjE2OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKLSAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFt
ZXRlcnM8dWludDhfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVs
ZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNr
aW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja0FSR0IxNlRvUkdCQTgsIHBh
Y2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywg
ZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBj
b21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDgsIHNvdXJjZVVucGFj
a0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJv
dyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVu
cGFja0FSR0IxNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZf
dCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBz
b3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0
YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRCR1JBODogewogICAgICAg
ICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJS
b3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCA0
LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNl
RWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwg
RGVzdFR5cGUsIHVucGFja0JHUkE4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNv
bnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRp
b25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4
X3QsIERlc3RUeXBlLCB1bnBhY2tCR1JBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2Fz
dDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1l
bnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywg
ZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEJH
UkExNjogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291
cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVp
bnQ4X3Q+KHdpZHRoLCA0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1Bl
clBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBh
Y2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tCR1JBMTZUb1JHQkE4LCBwYWNraW5nRnVu
Yz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdo
dCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0
aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgY29tcHV0ZUlu
Y3JlbWVudFBhcmFtZXRlcnM8dWludDE2X3Q+KHdpZHRoLCA4LCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAg
ICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tCR1JB
MTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3Vy
Y2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxl
bWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3Rp
bmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkdCQTU1NTE6IHsKICAgICAgICAgdW5z
aWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93Owog
ICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDIsIHNv
dXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVt
ZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVz
dFR5cGUsIHVucGFja1JHQkE1NTUxVG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNv
bnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRz
UGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0
aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50
MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQkE1NTUxVG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRp
Y19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3VyY2VCeXRlT3JkZXIx
NkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZv
cm1hdFJHQkE0NDQ0OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFt
ZXRlcnM8dWludDE2X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VF
bGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1VucGFj
a2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0JBNDQ0NFRvUkdCQTgs
IHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3
aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJv
dywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAg
ICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0JBNDQ0
NFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJj
ZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVt
ZW50c1BlclJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGlu
YXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0I1NjU6IHsKICAgICAgICAgdW5zaWdu
ZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAg
ICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDIsIHNvdXJj
ZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50
c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5
cGUsIHVucGFja1JHQjU2NVRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1
aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVs
ZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3Qs
IERlc3RUeXBlLCB1bnBhY2tSR0I1NjVUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8
Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVu
dHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBk
ZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0Ujg6
IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVs
ZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90
Pih3aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhl
bCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5n
PHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tSOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNf
Y2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVs
ZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRl
c3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2lu
Zzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrUjhUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGlj
X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VF
bGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9yZGVyMTZC
aWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3Jt
YXRSMTY6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNv
dXJjZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1
aW50OF90Pih3aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQ
YWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+
KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQs
IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlv
bkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1dGVJbmNy
ZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50
LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAg
ICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUjE2VG9S
R0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0
YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRz
UGVyUm93LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlv
bkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJBODogewogICAgICAgICB1bnNpZ25lZCBpbnQg
c291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNv
bXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tB
bGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cp
OwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFj
a1JBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291
cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVs
ZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhl
bCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5w
YWNrUkE4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihz
b3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNl
RWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbkRhdGEsIGRl
c3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkExNjogewogICAgICAgICB1bnNp
Z25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0g
ICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAyLCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVu
dHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RU
eXBlLCB1bnBhY2tSQTE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVp
bnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4
ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxl
bWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQx
Nl90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNr
aW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkExNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihz
dGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBz
b3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9y
ZGVyMTZCaWcsIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3Vy
Y2VGb3JtYXRBUjg6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4
ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1l
dGVyczx1aW50OF90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tp
bmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tBUjhUb1JHQkE4LCBwYWNraW5n
RnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVp
Z2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGlu
YXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBkb1VucGFj
a2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0FSOFRvUkdCQTgsIHBhY2tp
bmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBo
ZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBzb3Vy
Y2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVy
UGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6a1NvdXJjZUZvcm1hdEFSMTY6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1l
bnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBjb21wdXRlSW5jcmVt
ZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAm
c291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAg
ZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQVIxNlRvUkdC
QTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEp
LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1Bl
clJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAg
ICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDQsIHNvdXJj
ZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50
c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5
cGUsIHVucGFja0FSMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWlu
dDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhl
bCwgc291cmNlRWxlbWVudHNQZXJSb3csIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlv
bkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QTg6IHsKICAgICAg
ICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVy
Um93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwg
MSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJj
ZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3Qs
IERlc3RUeXBlLCB1bnBhY2tBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25z
dCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9u
RWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90
LCBEZXN0VHlwZSwgdW5wYWNrQThUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1Bl
clBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3Rp
bmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRBMTY6IHsK
ICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1l
bnRzUGVyUm93OwotICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3
aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwg
JnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVp
bnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQTE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVs
ZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRl
c3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJh
bWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNl
RWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBh
Y2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQTE2VG9SR0JBOCwgcGFj
a2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRo
LCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBz
b3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRz
UGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgfQpAQCAtODM1LDYgKzg1NCw3
IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHdpZHRoLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlVW5wYWNrQWxpZ25tZW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNvdXJjZUJ5dGVPcmRl
cjE2QmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg
ZGVzdGluYXRpb25Gb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCBkZXN0aW5hdGlvblR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFscGhhT3AgYWxwaGFPcCwKQEAgLTg1MiwxMyArODcyLDEzIEBAIGJvb2wgR3JhcGhp
Y3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAgY2FzZSBSR0I6CiAgICAgICAg
ICAgICBzd2l0Y2ggKGFscGhhT3ApIHsKICAgICAgICAgICAgIGNhc2Uga0FscGhhRG9Ob3RoaW5n
OgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQjg+KHNv
dXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0Fs
aWdubWVudCwgZGVzdGluYXRpb24sIDMpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50
OF90LCBwYWNrUkdCQThUb1JHQjg+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRo
LCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRl
c3RpbmF0aW9uLCAzKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug
a0FscGhhRG9QcmVtdWx0aXBseToKLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwg
cGFja1JHQkE4VG9SR0I4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQs
IHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDMpOwor
ICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQjhQcmVtdWx0
aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNl
VW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDMpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVsdGlw
bHk6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCOFVu
bXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNv
dXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDMpOworICAgICAgICAgICAgICAgIGRv
UGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQjhVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBz
b3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNv
dXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMyk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTg2NiwxMyArODg2LDEz
IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAgICAg
IHN3aXRjaCAoYWxwaGFPcCkgewogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb05vdGhpbmc6CiAg
ICAgICAgICAgICAgICAgQVNTRVJUKHNvdXJjZURhdGFGb3JtYXQgIT0ga1NvdXJjZUZvcm1hdFJH
QkE4IHx8IHNvdXJjZVVucGFja0FsaWdubWVudCA+IDQpOyAvLyBIYW5kbGVkIGFib3ZlIHdpdGgg
ZmFzdCBjYXNlLgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThU
b1JHQkE4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCA0KTsKKyAgICAgICAgICAgICAgICBkb1Bh
Y2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SR0JBOD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZv
cm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3Jk
ZXIxNkJpZywgZGVzdGluYXRpb24sIDQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFja2lu
Zzx1aW50OF90LCBwYWNrUkdCQThUb1JHQkE4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJj
ZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGlu
YXRpb24sIDQpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThU
b1JHQkE4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBo
ZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRlc3Rp
bmF0aW9uLCA0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Uga0Fs
cGhhRG9Vbm11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNr
UkdCQThUb1JHQkE4VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lk
dGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgNCk7CisgICAg
ICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQThVbm11bHRpcGx5
Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBh
Y2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgNCk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODgyLDcgKzkwMiw3IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAgICAgIC8vIEZyb20gdGhlIGRlc2t0
b3AgT3BlbkdMIGNvbnZlcnNpb24gcnVsZXMgKE9wZW5HTCAyLjEKICAgICAgICAgICAgIC8vIHNw
ZWNpZmljYXRpb24sIFRhYmxlIDMuMTUpLCB0aGUgYWxwaGEgY2hhbm5lbCBpcyBjaG9zZW4KICAg
ICAgICAgICAgIC8vIGZyb20gdGhlIFJHQkEgZGF0YS4KLSAgICAgICAgICAgIGRvUGFja2luZzx1
aW50OF90LCBwYWNrUkdCQThUb0E4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAg
ICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb0E4Pihzb3VyY2VEYXRhLCBzb3Vy
Y2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJj
ZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBMVU1JTkFOQ0U6CiAgICAgICAgICAgICAvLyBGcm9tIHRoZSBkZXNrdG9wIE9w
ZW5HTCBjb252ZXJzaW9uIHJ1bGVzIChPcGVuR0wgMi4xCkBAIC04OTAsMTMgKzkxMCwxMyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0CiAgICAgICAgICAgICAvLyBm
cm9tIHRoZSBSR0JBIGRhdGEuCiAgICAgICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsKICAgICAg
ICAgICAgIGNhc2Uga0FscGhhRG9Ob3RoaW5nOgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1
aW50OF90LCBwYWNrUkdCQThUb1I4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAg
ICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SOD4oc291cmNlRGF0YSwg
c291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBz
b3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAgICAgICAg
ICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1I4UHJlbXVsdGlwbHk+KHNvdXJjZURh
dGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVu
dCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBw
YWNrUkdCQThUb1I4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdp
ZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZCaWcs
IGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2Uga0FscGhhRG9Vbm11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90
LCBwYWNrUkdCQThUb1I4VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwg
d2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7Cisg
ICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUjhVbm11bHRpcGx5
Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBh
Y2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAg
LTkwNiwxMyArOTI2LDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29u
c3QKICAgICAgICAgICAgIC8vIGFyZSBjaG9zZW4gZnJvbSB0aGUgUkdCQSBkYXRhLgogICAgICAg
ICAgICAgc3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgICAgICBjYXNlIGtBbHBoYURvTm90aGlu
ZzoKLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SQTg+KHNv
dXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0Fs
aWdubWVudCwgZGVzdGluYXRpb24sIDIpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50
OF90LCBwYWNrUkdCQThUb1JBOD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgs
IGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVz
dGluYXRpb24sIDIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBr
QWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBw
YWNrUkdCQThUb1JBOFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3
aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAyKTsKKyAg
ICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SQThQcmVtdWx0aXBs
eT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5w
YWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDIpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6
Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkE4VW5tdWx0
aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNl
VW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMik7CisgICAgICAgICAgICAgICAgZG9QYWNr
aW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkE4VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNl
RGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VC
eXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC05MjMsMTMgKzk0MywxMyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0CiAgICAgICAgIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiA9IHN0YXRpY19jYXN0PHVpbnQxNl90Kj4oZGVzdGluYXRpb25EYXRhKTsK
ICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgIGNhc2Uga0FscGhhRG9Ob3RoaW5n
OgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hv
cnQ0NDQ0Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2lu
Zzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0ND4oc291cmNlRGF0YSwgc291
cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3Vy
Y2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAgICAgICAgICAgIGRvUGFja2luZzx1
aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NFByZW11bHRpcGx5Pihzb3VyY2VE
YXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFj
a1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VE
YXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5
dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2
X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDQ0NDRVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBz
b3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRl
c3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4
VG9VbnNpZ25lZFNob3J0NDQ0NFVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3Jt
YXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVy
MTZCaWcsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGJyZWFrOwpAQCAtOTM4LDEzICs5NTgsMTMgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQz
RDo6cGFja1BpeGVscyhjb25zdAogICAgICAgICB1aW50MTZfdCogZGVzdGluYXRpb24gPSBzdGF0
aWNfY2FzdDx1aW50MTZfdCo+KGRlc3RpbmF0aW9uRGF0YSk7CiAgICAgICAgIHN3aXRjaCAoYWxw
aGFPcCkgewogICAgICAgICBjYXNlIGtBbHBoYURvTm90aGluZzoKLSAgICAgICAgICAgIGRvUGFj
a2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTU1MT4oc291cmNlRGF0YSwg
c291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBk
ZXN0aW5hdGlvbiwgMSk7CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JB
OFRvVW5zaWduZWRTaG9ydDU1NTE+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRo
LCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgc291cmNlQnl0ZU9yZGVyMTZCaWcsIGRl
c3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIGtBbHBoYURv
UHJlbXVsdGlwbHk6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRv
VW5zaWduZWRTaG9ydDU1NTFQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1h
dCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7
CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9y
dDU1NTFQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhl
aWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGlu
YXRpb24sIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Uga0FscGhhRG9Vbm11
bHRpcGx5OgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2ln
bmVkU2hvcnQ1NTUxVW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lk
dGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CisgICAg
ICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTFV
bm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBz
b3VyY2VVbnBhY2tBbGlnbm1lbnQsIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLCBkZXN0aW5hdGlvbiwg
MSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBicmVhazsKQEAgLTk1
MywxMyArOTczLDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QK
ICAgICAgICAgdWludDE2X3QqIGRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8dWludDE2X3QqPihk
ZXN0aW5hdGlvbkRhdGEpOwogICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsKICAgICAgICAgY2Fz
ZSBrQWxwaGFEb05vdGhpbmc6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tS
R0JBOFRvVW5zaWduZWRTaG9ydDU2NT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lk
dGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CisgICAg
ICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU2NT4o
c291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNr
QWxpZ25tZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAgICAgICAg
ICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTY1UHJlbXVs
dGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJj
ZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgZG9QYWNraW5n
PHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVQcmVtdWx0aXBseT4oc291cmNl
RGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25t
ZW50LCBzb3VyY2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2Uga0FscGhhRG9Vbm11bHRpcGx5OgotICAgICAgICAgICAgZG9Q
YWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVVbm11bHRpcGx5Pihz
b3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tB
bGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZf
dCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTY1VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291
cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBzb3Vy
Y2VCeXRlT3JkZXIxNkJpZywgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRC5oCShyZXZpc2lvbiA2OTgwNikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtODM4
LDYgKzgzOCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHdp
ZHRoLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LAogICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlVW5wYWNrQWxpZ25tZW50LAorICAgICAgICAg
ICAgICAgICAgICBib29sIHNvdXJjZUJ5dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBpbnQgZGVzdGluYXRpb25Gb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCBkZXN0aW5hdGlvblR5cGUsCiAgICAgICAgICAgICAgICAgICAgIEFscGhhT3Ag
YWxwaGFPcCwKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0M0RDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9H
cmFwaGljc0NvbnRleHQzRENHLmNwcAkocmV2aXNpb24gNjk4MDYpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNDgsNyArMjQ4LDI3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJ
bWEKICAgICAgICAgd2hpbGUgKGJ5dGVzUGVyUm93ICUgc3JjVW5wYWNrQWxpZ25tZW50KQogICAg
ICAgICAgICAgKytzcmNVbnBhY2tBbGlnbm1lbnQ7CiAgICAgfQotICAgIGJvb2wgcnQgPSBwYWNr
UGl4ZWxzKHJnYmEsIHNyY0RhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNyY1VucGFja0FsaWdu
bWVudCwKKyAgICBib29sIHNyY0J5dGVPcmRlcjE2QmlnOworICAgIGlmIChiaXRzUGVyQ29tcG9u
ZW50ID09IDE2KSB7CisgICAgICAgIENHQml0bWFwSW5mbyBiaXRJbmZvID0gQ0dJbWFnZUdldEJp
dG1hcEluZm8oY2dJbWFnZSk7CisgICAgICAgIHN3aXRjaCAoYml0SW5mbyAmIGtDR0JpdG1hcEJ5
dGVPcmRlck1hc2spIHsKKyAgICAgICAgY2FzZSBrQ0dCaXRtYXBCeXRlT3JkZXIxNkJpZzoKKyAg
ICAgICAgICAgIHNyY0J5dGVPcmRlcjE2QmlnID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlcjE2TGl0dGxlOgorICAgICAgICAgICAgc3Jj
Qnl0ZU9yZGVyMTZCaWcgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IGtDR0JpdG1hcEJ5dGVPcmRlckRlZmF1bHQ6CisgICAgICAgICAgICAvLyBUaGlzIGlzIGEgYnVn
IGluIGVhcmxpZXIgdmVyc2lvbiBvZiBjZyB3aGVyZSB0aGUgZGVmYXVsdCBlbmRpYW4KKyAgICAg
ICAgICAgIC8vIGlzIGxpdHRsZSB3aGVyZWFzIHRoZSBkZWNvZGVkIDE2LWJpdCBwbmcgaW1hZ2Ug
ZGF0YSBpcyBhY3R1YWxseQorICAgICAgICAgICAgLy8gQmlnLiBMYXRlciB2ZXJzaW9uICgxMC42
LjQpIG5vIGxvbmdlciByZXR1cm5zIEJ5dGVPcmRlckRlZmF1bHQuCisgICAgICAgICAgICBzcmNC
eXRlT3JkZXIxNkJpZyA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBib29s
IHJ0ID0gcGFja1BpeGVscyhyZ2JhLCBzcmNEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzcmNV
bnBhY2tBbGlnbm1lbnQsIHNyY0J5dGVPcmRlcjE2QmlnLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvcm1hdCwgdHlwZSwgbmVlZGVkQWxwaGFPcCwgb3V0cHV0VmVjdG9yLmRhdGEoKSk7CiAg
ICAgcmV0dXJuIHJ0OwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dy
YXBoaWNzQ29udGV4dDNEU2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHAJKHJldmlzaW9uIDY5ODA2KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQz
RDo6Z2V0SW1hZ2VEYXRhKEltYQogICAgIEFTU0VSVChza2lhSW1hZ2UtPnJvd0J5dGVzKCkgPT0g
c2tpYUltYWdlLT53aWR0aCgpICogNCk7CiAgICAgb3V0cHV0VmVjdG9yLnJlc2l6ZShza2lhSW1h
Z2UtPnJvd0J5dGVzKCkgKiBza2lhSW1hZ2UtPmhlaWdodCgpKTsKICAgICByZXR1cm4gcGFja1Bp
eGVscyhyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihza2lhSW1hZ2UtPmdldFBpeGVs
cygpKSwKLSAgICAgICAgICAgICAgICAgICAgICBrU291cmNlRm9ybWF0QkdSQTgsIHNraWFJbWFn
ZS0+d2lkdGgoKSwgc2tpYUltYWdlLT5oZWlnaHQoKSwgMCwKKyAgICAgICAgICAgICAgICAgICAg
ICBrU291cmNlRm9ybWF0QkdSQTgsIHNraWFJbWFnZS0+d2lkdGgoKSwgc2tpYUltYWdlLT5oZWln
aHQoKSwgMCwgZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCB0eXBlLCBuZWVk
ZWRBbHBoYU9wLCBvdXRwdXRWZWN0b3IuZGF0YSgpKTsKIH0KIAo=
</data>
<flag name="review"
          id="61007"
          type_id="1"
          status="-"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="61008"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71091</attachid>
            <date>2010-10-18 15:13:36 -0700</date>
            <delta_ts>2010-10-19 11:39:01 -0700</delta_ts>
            <desc>revised patch: responding to kbr&apos;s review</desc>
            <filename>png16.patch</filename>
            <type>text/plain</type>
            <size>31964</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTk5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMTAtMTggIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnbC10ZXhp
bWFnZS5odG1sIGZhaWxzIG9uIGNocm9taXVtIHdlYmtpdCBtYWMgYm90CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzAzNAorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOiBEZWFsIHdpdGggZW5kaWFucyBp
biAxNiBiaXQgaW1hZ2UgZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRDb2xvcjE2TGl0
dGxlVG84KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRDb2xvcjE2QmlnVG84KToKKyAgICAg
ICAgKFdlYkNvcmU6OmRvUGFja2luZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0QuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
R3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisKIDIwMTAtMTAtMTggIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgbmV3ZXIg
dmVyc2lvbnMgb2YgR1RLKyAyLjAuIEluc3RlYWQgb2YgdXNpbmcgR0RLX0RJU1BMQVkoKQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAJ
KHJldmlzaW9uIDY5ODA2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQzRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDExICszNywxNiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB1aW50OF90IGNvbnZlcnRDb2xvcjE2VG84KHVpbnQxNl90
IHZhbHVlKQorc3RhdGljIHVpbnQ4X3QgY29udmVydENvbG9yMTZMaXR0bGVUbzgodWludDE2X3Qg
dmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVlID4+IDg7CiB9CiAKK3N0YXRpYyB1aW50OF90IGNv
bnZlcnRDb2xvcjE2QmlnVG84KHVpbnQxNl90IHZhbHVlKQoreworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDx1aW50OF90Pih2YWx1ZSAmIDB4MDBGRik7Cit9CisKIFBhc3NSZWZQdHI8RHJhd2luZ0J1
ZmZlcj4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZURyYXdpbmdCdWZmZXIoY29uc3QgSW50U2l6
ZSYgc2l6ZSkKIHsKICAgICByZXR1cm4gRHJhd2luZ0J1ZmZlcjo6Y3JlYXRlKHRoaXMsIHNpemUp
OwpAQCAtMjU4LDEyICsyNjMsMjAgQEAgdm9pZCB1bnBhY2tSR0JBOFRvUkdCQTgoY29uc3QgdWlu
dDhfdCogcwogICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzNdOwogfQogCi12b2lkIHVucGFj
a1JHQkExNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRp
b24pCit2b2lkIHVucGFja1JHQkExNkxpdHRsZVRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24pCiB7Ci0gICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0
Q29sb3IxNlRvOChzb3VyY2VbMF0pOwotICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9y
MTZUbzgoc291cmNlWzFdKTsKLSAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84
KHNvdXJjZVsyXSk7Ci0gICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3Vy
Y2VbM10pOworICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZMaXR0bGVUbzgoc291
cmNlWzBdKTsKKyAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2TGl0dGxlVG84KHNv
dXJjZVsxXSk7CisgICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChz
b3VyY2VbMl0pOworICAgIGRlc3RpbmF0aW9uWzNdID0gY29udmVydENvbG9yMTZMaXR0bGVUbzgo
c291cmNlWzNdKTsKK30KKwordm9pZCB1bnBhY2tSR0JBMTZCaWdUb1JHQkE4KGNvbnN0IHVpbnQx
Nl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQoreworICAgIGRlc3RpbmF0aW9uWzBd
ID0gY29udmVydENvbG9yMTZCaWdUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0aW5hdGlvblsxXSA9
IGNvbnZlcnRDb2xvcjE2QmlnVG84KHNvdXJjZVsxXSk7CisgICAgZGVzdGluYXRpb25bMl0gPSBj
b252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMl0pOworICAgIGRlc3RpbmF0aW9uWzNdID0gY29u
dmVydENvbG9yMTZCaWdUbzgoc291cmNlWzNdKTsKIH0KIAogdm9pZCB1bnBhY2tSR0I4VG9SR0JB
OChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQpAQCAtMjc0LDEx
ICsyODcsMTkgQEAgdm9pZCB1bnBhY2tSR0I4VG9SR0JBOChjb25zdCB1aW50OF90KiBzbwogICAg
IGRlc3RpbmF0aW9uWzNdID0gMHhGRjsKIH0KIAotdm9pZCB1bnBhY2tSR0IxNlRvUkdCQTgoY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja1JH
QjE2TGl0dGxlVG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbikKIHsKLSAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsw
XSk7Ci0gICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0pOwot
ICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzJdKTsKKyAgICBk
ZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2TGl0dGxlVG84KHNvdXJjZVswXSk7CisgICAg
ZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChzb3VyY2VbMV0pOworICAg
IGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZMaXR0bGVUbzgoc291cmNlWzJdKTsKKyAg
ICBkZXN0aW5hdGlvblszXSA9IDB4RkY7Cit9CisKK3ZvaWQgdW5wYWNrUkdCMTZCaWdUb1JHQkE4
KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQoreworICAgIGRl
c3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZCaWdUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0
aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2QmlnVG84KHNvdXJjZVsxXSk7CisgICAgZGVzdGlu
YXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMl0pOwogICAgIGRlc3RpbmF0
aW9uWzNdID0gMHhGRjsKIH0KIApAQCAtMjkwLDEyICszMTEsMjAgQEAgdm9pZCB1bnBhY2tBUkdC
OFRvUkdCQTgoY29uc3QgdWludDhfdCogcwogICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzBd
OwogfQogCi12b2lkIHVucGFja0FSR0IxNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwg
dWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja0FSR0IxNkxpdHRsZVRvUkdCQTgoY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit7CisgICAgZGVzdGlu
YXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChzb3VyY2VbMV0pOworICAgIGRlc3Rp
bmF0aW9uWzFdID0gY29udmVydENvbG9yMTZMaXR0bGVUbzgoc291cmNlWzJdKTsKKyAgICBkZXN0
aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2TGl0dGxlVG84KHNvdXJjZVszXSk7CisgICAgZGVz
dGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChzb3VyY2VbMF0pOworfQorCit2
b2lkIHVucGFja0FSR0IxNkJpZ1RvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24pCiB7Ci0gICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNlRv
OChzb3VyY2VbMV0pOwotICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVydENvbG9yMTZUbzgoc291
cmNlWzJdKTsKLSAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsz
XSk7Ci0gICAgZGVzdGluYXRpb25bM10gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOwor
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZCaWdUbzgoc291cmNlWzFdKTsKKyAg
ICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2QmlnVG84KHNvdXJjZVsyXSk7CisgICAg
ZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbM10pOworICAgIGRl
c3RpbmF0aW9uWzNdID0gY29udmVydENvbG9yMTZCaWdUbzgoc291cmNlWzBdKTsKIH0KIAogdm9p
ZCB1bnBhY2tCR1JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbikKQEAgLTMwNiwxMiArMzM1LDIwIEBAIHZvaWQgdW5wYWNrQkdSQThUb1JHQkE4KGNv
bnN0IHVpbnQ4X3QqIHMKICAgICBkZXN0aW5hdGlvblszXSA9IHNvdXJjZVszXTsKIH0KIAotdm9p
ZCB1bnBhY2tCR1JBMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uKQordm9pZCB1bnBhY2tCR1JBMTZMaXR0bGVUb1JHQkE4KGNvbnN0IHVpbnQxNl90
KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQogewotICAgIGRlc3RpbmF0aW9uWzBdID0g
Y29udmVydENvbG9yMTZUbzgoc291cmNlWzJdKTsKLSAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZl
cnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7Ci0gICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29s
b3IxNlRvOChzb3VyY2VbMF0pOwotICAgIGRlc3RpbmF0aW9uWzNdID0gY29udmVydENvbG9yMTZU
bzgoc291cmNlWzNdKTsKKyAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2TGl0dGxl
VG84KHNvdXJjZVsyXSk7CisgICAgZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNkxpdHRs
ZVRvOChzb3VyY2VbMV0pOworICAgIGRlc3RpbmF0aW9uWzJdID0gY29udmVydENvbG9yMTZMaXR0
bGVUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0aW5hdGlvblszXSA9IGNvbnZlcnRDb2xvcjE2TGl0
dGxlVG84KHNvdXJjZVszXSk7Cit9CisKK3ZvaWQgdW5wYWNrQkdSQTE2QmlnVG9SR0JBOChjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3sKKyAgICBkZXN0aW5h
dGlvblswXSA9IGNvbnZlcnRDb2xvcjE2QmlnVG84KHNvdXJjZVsyXSk7CisgICAgZGVzdGluYXRp
b25bMV0gPSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMV0pOworICAgIGRlc3RpbmF0aW9u
WzJdID0gY29udmVydENvbG9yMTZCaWdUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0aW5hdGlvblsz
XSA9IGNvbnZlcnRDb2xvcjE2QmlnVG84KHNvdXJjZVszXSk7CiB9CiAKIHZvaWQgdW5wYWNrUkdC
QTU1NTFUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
KQpAQCAtMzU5LDExICszOTYsMTkgQEAgdm9pZCB1bnBhY2tSOFRvUkdCQTgoY29uc3QgdWludDhf
dCogc291cgogICAgIGRlc3RpbmF0aW9uWzNdID0gMHhGRjsKIH0KIAotdm9pZCB1bnBhY2tSMTZU
b1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9p
ZCB1bnBhY2tSMTZMaXR0bGVUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3Qq
IGRlc3RpbmF0aW9uKQoreworICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZMaXR0
bGVUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2TGl0
dGxlVG84KHNvdXJjZVswXSk7CisgICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNkxp
dHRsZVRvOChzb3VyY2VbMF0pOworICAgIGRlc3RpbmF0aW9uWzNdID0gMHhGRjsKK30KKwordm9p
ZCB1bnBhY2tSMTZCaWdUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uKQogewotICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZUbzgoc291
cmNlWzBdKTsKLSAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsw
XSk7Ci0gICAgZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOwor
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZCaWdUbzgoc291cmNlWzBdKTsKKyAg
ICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2QmlnVG84KHNvdXJjZVswXSk7CisgICAg
ZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMF0pOwogICAgIGRl
c3RpbmF0aW9uWzNdID0gMHhGRjsKIH0KIApAQCAtMzc1LDEyICs0MjAsMjAgQEAgdm9pZCB1bnBh
Y2tSQThUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdQogICAgIGRlc3RpbmF0aW9uWzNdID0gc291
cmNlWzFdOwogfQogCi12b2lkIHVucGFja1JBMTZUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQordm9pZCB1bnBhY2tSQTE2TGl0dGxlVG9SR0JBOChj
b25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKIHsKLSAgICBkZXN0
aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7Ci0gICAgZGVzdGluYXRp
b25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOwotICAgIGRlc3RpbmF0aW9uWzJd
ID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzBdKTsKLSAgICBkZXN0aW5hdGlvblszXSA9IGNv
bnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7CisgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0
Q29sb3IxNkxpdHRsZVRvOChzb3VyY2VbMF0pOworICAgIGRlc3RpbmF0aW9uWzFdID0gY29udmVy
dENvbG9yMTZMaXR0bGVUbzgoc291cmNlWzBdKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNvbnZl
cnRDb2xvcjE2TGl0dGxlVG84KHNvdXJjZVswXSk7CisgICAgZGVzdGluYXRpb25bM10gPSBjb252
ZXJ0Q29sb3IxNkxpdHRsZVRvOChzb3VyY2VbMV0pOworfQorCit2b2lkIHVucGFja1JBMTZCaWdU
b1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQorewor
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZCaWdUbzgoc291cmNlWzBdKTsKKyAg
ICBkZXN0aW5hdGlvblsxXSA9IGNvbnZlcnRDb2xvcjE2QmlnVG84KHNvdXJjZVswXSk7CisgICAg
ZGVzdGluYXRpb25bMl0gPSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMF0pOworICAgIGRl
c3RpbmF0aW9uWzNdID0gY29udmVydENvbG9yMTZCaWdUbzgoc291cmNlWzFdKTsKIH0KIAogdm9p
ZCB1bnBhY2tBUjhUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGlu
YXRpb24pCkBAIC0zOTEsMTIgKzQ0NCwyMCBAQCB2b2lkIHVucGFja0FSOFRvUkdCQTgoY29uc3Qg
dWludDhfdCogc291CiAgICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbMF07CiB9CiAKLXZvaWQg
dW5wYWNrQVIxNlRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGlu
YXRpb24pCit2b2lkIHVucGFja0FSMTZMaXR0bGVUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQoreworICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVy
dENvbG9yMTZMaXR0bGVUbzgoc291cmNlWzFdKTsKKyAgICBkZXN0aW5hdGlvblsxXSA9IGNvbnZl
cnRDb2xvcjE2TGl0dGxlVG84KHNvdXJjZVsxXSk7CisgICAgZGVzdGluYXRpb25bMl0gPSBjb252
ZXJ0Q29sb3IxNkxpdHRsZVRvOChzb3VyY2VbMV0pOworICAgIGRlc3RpbmF0aW9uWzNdID0gY29u
dmVydENvbG9yMTZMaXR0bGVUbzgoc291cmNlWzBdKTsKK30KKwordm9pZCB1bnBhY2tBUjE2Qmln
VG9SR0JBOChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKIHsK
LSAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVsxXSk7Ci0gICAg
ZGVzdGluYXRpb25bMV0gPSBjb252ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMV0pOwotICAgIGRlc3Rp
bmF0aW9uWzJdID0gY29udmVydENvbG9yMTZUbzgoc291cmNlWzFdKTsKLSAgICBkZXN0aW5hdGlv
blszXSA9IGNvbnZlcnRDb2xvcjE2VG84KHNvdXJjZVswXSk7CisgICAgZGVzdGluYXRpb25bMF0g
PSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMV0pOworICAgIGRlc3RpbmF0aW9uWzFdID0g
Y29udmVydENvbG9yMTZCaWdUbzgoc291cmNlWzFdKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGNv
bnZlcnRDb2xvcjE2QmlnVG84KHNvdXJjZVsxXSk7CisgICAgZGVzdGluYXRpb25bM10gPSBjb252
ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMF0pOwogfQogCiB2b2lkIHVucGFja0E4VG9SR0JBOChj
b25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQpAQCAtNDA3LDEyICs0
NjgsMjAgQEAgdm9pZCB1bnBhY2tBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cgogICAgIGRl
c3RpbmF0aW9uWzNdID0gc291cmNlWzBdOwogfQogCi12b2lkIHVucGFja0ExNlRvUkdCQTgoY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit2b2lkIHVucGFja0Ex
NkxpdHRsZVRvUkdCQTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRp
b24pCiB7CiAgICAgZGVzdGluYXRpb25bMF0gPSAweDA7CiAgICAgZGVzdGluYXRpb25bMV0gPSAw
eDA7CiAgICAgZGVzdGluYXRpb25bMl0gPSAweDA7Ci0gICAgZGVzdGluYXRpb25bM10gPSBjb252
ZXJ0Q29sb3IxNlRvOChzb3VyY2VbMF0pOworICAgIGRlc3RpbmF0aW9uWzNdID0gY29udmVydENv
bG9yMTZMaXR0bGVUbzgoc291cmNlWzBdKTsKK30KKwordm9pZCB1bnBhY2tBMTZCaWdUb1JHQkE4
KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQoreworICAgIGRl
c3RpbmF0aW9uWzBdID0gMHgwOworICAgIGRlc3RpbmF0aW9uWzFdID0gMHgwOworICAgIGRlc3Rp
bmF0aW9uWzJdID0gMHgwOworICAgIGRlc3RpbmF0aW9uWzNdID0gY29udmVydENvbG9yMTZCaWdU
bzgoc291cmNlWzBdKTsKIH0KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC03MTksMTAgKzc4OCwxNiBA
QCBzdGF0aWMgdm9pZCBkb1BhY2tpbmcoY29uc3Qgdm9pZCogc291cmNlCiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VG
b3JtYXRSR0JBMTY6IHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0
UkdCQTE2TGl0dGxlOiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKLSAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFt
ZXRlcnM8dWludDhfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVs
ZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNr
aW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQkExNlRvUkdCQTgsIHBh
Y2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywg
ZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBj
b21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDgsIHNvdXJjZVVucGFj
a0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJv
dyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVu
cGFja1JHQkExNkxpdHRsZVRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1
aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVs
ZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQkExNkJpZzogeworICAgICAgICB1bnNpZ25lZCBp
bnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAg
IGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgOCwgc291cmNlVW5w
YWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVy
Um93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwg
dW5wYWNrUkdCQTE2QmlnVG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVp
bnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4
ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxl
bWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjprU291cmNlRm9ybWF0UkdCODogewpAQCAtNzMxLDEwICs4MDYsMTYgQEAgc3Rh
dGljIHZvaWQgZG9QYWNraW5nKGNvbnN0IHZvaWQqIHNvdXJjZQogICAgICAgICBkb1VucGFja2lu
Z0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JHQjhUb1JHQkE4LCBwYWNraW5n
RnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVp
Z2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGlu
YXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsK
ICAgICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQjE2OiB7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQjE2TGl0dGxlOiB7
CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVt
ZW50c1BlclJvdzsKLSAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4o
d2lkdGgsIDMsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
ICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1
aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQjE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRp
Y19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEs
IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQ
YXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgNiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9V
bnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkdCMTZMaXR0bGVU
b1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VE
YXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVu
dHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3Vy
Y2VGb3JtYXRSR0IxNkJpZzogeworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQ
YXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgNiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9V
bnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkdCMTZCaWdUb1JH
QkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRh
KSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQ
ZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VG
b3JtYXRBUkdCODogewpAQCAtNzQzLDEwICs4MjQsMTYgQEAgc3RhdGljIHZvaWQgZG9QYWNraW5n
KGNvbnN0IHZvaWQqIHNvdXJjZQogICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhf
dCwgRGVzdFR5cGUsIHVucGFja0FSR0I4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0
PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVu
dHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGlu
YXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRBUkdCMTY6IHsKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QVJHQjE2TGl0dGxlOiB7CiAgICAgICAgIHVuc2ln
bmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKLSAg
ICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDQsIHNvdXJj
ZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50
c1BlclJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5
cGUsIHVucGFja0FSR0IxNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1
aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVs
ZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50
MTZfdD4od2lkdGgsIDgsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFj
a2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja0FSR0IxNkxpdHRsZVRvUkdCQTgsIHBhY2tp
bmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwg
aGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVz
dGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEFSR0Ix
NkJpZzogeworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291
cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVp
bnQxNl90Pih3aWR0aCwgOCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQ
YWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrQVJHQjE2QmlnVG9SR0JBOCwgcGFja2lu
Z0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBo
ZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0
aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QkdSQTg6
IHsKQEAgLTc1NSwxMCArODQyLDE2IEBAIHN0YXRpYyB2b2lkIGRvUGFja2luZyhjb25zdCB2b2lk
KiBzb3VyY2UKICAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBl
LCB1bnBhY2tCR1JBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50
OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
IHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVu
dHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjprU291cmNlRm9ybWF0QkdSQTE2OiB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6a1NvdXJjZUZvcm1hdEJHUkExNkxpdHRsZTogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAgICAgIGNvbXB1
dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCA0LCBzb3VyY2VVbnBhY2tBbGln
bm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwot
ICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tC
R1JBMTZUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihz
b3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNl
RWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBp
eGVsKTsKKyAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDE2X3Q+KHdpZHRo
LCA4LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291
cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2
X3QsIERlc3RUeXBlLCB1bnBhY2tCR1JBMTZMaXR0bGVUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3Rh
dGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0
YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRCR1JBMTZCaWc6IHsKKyAg
ICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRz
UGVyUm93OworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lk
dGgsIDgsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZz
b3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50
MTZfdCwgRGVzdFR5cGUsIHVucGFja0JHUkExNkJpZ1RvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0
aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRh
LCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQkE1NTUxOiB7CkBAIC03
ODUsMTAgKzg3OCwxNiBAQCBzdGF0aWMgdm9pZCBkb1BhY2tpbmcoY29uc3Qgdm9pZCogc291cmNl
CiAgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNr
UjhUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJj
ZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVt
ZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwp
OwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1Nv
dXJjZUZvcm1hdFIxNjogeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3Jt
YXRSMTZMaXR0bGU6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4
ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1l
dGVyczx1aW50OF90Pih3aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKLSAgICAgICAgZG9VbnBhY2tp
bmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUjE2VG9SR0JBOCwgcGFja2lu
Z0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBo
ZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0
aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1
dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxp
Z25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsK
KyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNr
UjE2TGl0dGxlVG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90
Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNv
dXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQ
ZXJQaXhlbCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjprU291cmNlRm9ybWF0UjE2QmlnOiB7CisgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VF
bGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgY29tcHV0ZUlu
Y3JlbWVudFBhcmFtZXRlcnM8dWludDE2X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAg
ICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSMTZC
aWdUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3Vy
Y2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxl
bWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVs
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtT
b3VyY2VGb3JtYXRSQTg6IHsKQEAgLTc5NywxMCArODk2LDE2IEBAIHN0YXRpYyB2b2lkIGRvUGFj
a2luZyhjb25zdCB2b2lkKiBzb3VyY2UKICAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVp
bnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tSQThUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nh
c3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVt
ZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0
aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJBMTY6IHsKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkExNkxpdHRsZTogewogICAgICAgICB1bnNpZ25l
ZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAg
ICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAyLCBzb3VyY2VV
bnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQ
ZXJSb3cpOwotICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBl
LCB1bnBhY2tSQTE2VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQx
Nl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
IHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVu
dHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90
Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhl
bCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5n
PHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkExNkxpdHRsZVRvUkdCQTgsIHBhY2tpbmdGdW5j
PihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0
LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRp
b25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJBMTZCaWc6IHsK
KyAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1l
bnRzUGVyUm93OworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4o
d2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
ICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1
aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JBMTZCaWdUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3Rh
dGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0
YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRBUjg6IHsKQEAgLTgwOSwx
MCArOTE0LDE2IEBAIHN0YXRpYyB2b2lkIGRvUGFja2luZyhjb25zdCB2b2lkKiBzb3VyY2UKICAg
ICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tBUjhU
b1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURh
dGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwog
ICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJj
ZUZvcm1hdEFSMTY6IHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0
QVIxNkxpdHRsZTogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhl
bCwgc291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0
ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVt
ZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwotICAgICAgICBkb1VucGFja2lu
Z0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tBUjE2VG9SR0JBOCwgcGFja2lu
Z0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBo
ZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0
aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAgICAgIGNvbXB1
dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxp
Z25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsK
KyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNr
QVIxNkxpdHRsZVRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZf
dCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBz
b3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRz
UGVyUGl4ZWwpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6a1NvdXJjZUZvcm1hdEFSMTZCaWc6IHsKKyAgICAgICAgdW5zaWduZWQgaW50IHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICBjb21wdXRl
SW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdu
bWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Cisg
ICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja0FS
MTZCaWdUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihz
b3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNl
RWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBp
eGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OmtTb3VyY2VGb3JtYXRBODogewpAQCAtODIxLDEwICs5MzIsMTYgQEAgc3RhdGljIHZvaWQgZG9Q
YWNraW5nKGNvbnN0IHZvaWQqIHNvdXJjZQogICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8
dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0E4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVz
dGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRBMTY6IHsKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QTE2TGl0dGxlOiB7CiAgICAgICAgIHVuc2lnbmVk
IGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKLSAgICAg
ICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDEsIHNvdXJjZVVu
cGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1Bl
clJvdyk7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUs
IHVucGFja0ExNlRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZf
dCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBz
b3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRz
UGVyUGl4ZWwpOworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4o
d2lkdGgsIDIsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
ICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1
aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja0ExNkxpdHRsZVRvUkdCQTgsIHBhY2tpbmdGdW5jPihz
dGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBz
b3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25E
YXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBicmVhazsKKyAgICB9
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEExNkJpZzogeworICAg
ICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQ
ZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0
aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNv
dXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQx
Nl90LCBEZXN0VHlwZSwgdW5wYWNrQTE2QmlnVG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVs
ZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRl
c3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICB9
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
CShyZXZpc2lvbiA2OTgwNikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtNTQxLDI0ICs1NDEsMzIgQEAgcHVibGljOgog
ICAgIC8vIGJ5IG5vbi1tZW1iZXIgZnVuY3Rpb25zLgogICAgIGVudW0gU291cmNlRGF0YUZvcm1h
dCB7CiAgICAgICAgIGtTb3VyY2VGb3JtYXRSR0JBOCwKLSAgICAgICAga1NvdXJjZUZvcm1hdFJH
QkExNiwKKyAgICAgICAga1NvdXJjZUZvcm1hdFJHQkExNkxpdHRsZSwKKyAgICAgICAga1NvdXJj
ZUZvcm1hdFJHQkExNkJpZywKICAgICAgICAga1NvdXJjZUZvcm1hdFJHQjgsCi0gICAgICAgIGtT
b3VyY2VGb3JtYXRSR0IxNiwKKyAgICAgICAga1NvdXJjZUZvcm1hdFJHQjE2TGl0dGxlLAorICAg
ICAgICBrU291cmNlRm9ybWF0UkdCMTZCaWcsCiAgICAgICAgIGtTb3VyY2VGb3JtYXRCR1JBOCwK
LSAgICAgICAga1NvdXJjZUZvcm1hdEJHUkExNiwKKyAgICAgICAga1NvdXJjZUZvcm1hdEJHUkEx
NkxpdHRsZSwKKyAgICAgICAga1NvdXJjZUZvcm1hdEJHUkExNkJpZywKICAgICAgICAga1NvdXJj
ZUZvcm1hdEFSR0I4LAotICAgICAgICBrU291cmNlRm9ybWF0QVJHQjE2LAorICAgICAgICBrU291
cmNlRm9ybWF0QVJHQjE2TGl0dGxlLAorICAgICAgICBrU291cmNlRm9ybWF0QVJHQjE2QmlnLAog
ICAgICAgICBrU291cmNlRm9ybWF0UkdCQTU1NTEsCiAgICAgICAgIGtTb3VyY2VGb3JtYXRSR0JB
NDQ0NCwKICAgICAgICAga1NvdXJjZUZvcm1hdFJHQjU2NSwKICAgICAgICAga1NvdXJjZUZvcm1h
dFI4LAotICAgICAgICBrU291cmNlRm9ybWF0UjE2LAorICAgICAgICBrU291cmNlRm9ybWF0UjE2
TGl0dGxlLAorICAgICAgICBrU291cmNlRm9ybWF0UjE2QmlnLAogICAgICAgICBrU291cmNlRm9y
bWF0UkE4LAotICAgICAgICBrU291cmNlRm9ybWF0UkExNiwKKyAgICAgICAga1NvdXJjZUZvcm1h
dFJBMTZMaXR0bGUsCisgICAgICAgIGtTb3VyY2VGb3JtYXRSQTE2QmlnLAogICAgICAgICBrU291
cmNlRm9ybWF0QVI4LAotICAgICAgICBrU291cmNlRm9ybWF0QVIxNiwKKyAgICAgICAga1NvdXJj
ZUZvcm1hdEFSMTZMaXR0bGUsCisgICAgICAgIGtTb3VyY2VGb3JtYXRBUjE2QmlnLAogICAgICAg
ICBrU291cmNlRm9ybWF0QTgsCi0gICAgICAgIGtTb3VyY2VGb3JtYXRBMTYKKyAgICAgICAga1Nv
dXJjZUZvcm1hdEExNkxpdHRsZSwKKyAgICAgICAga1NvdXJjZUZvcm1hdEExNkJpZwogICAgIH07
CiAKICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAkocmV2aXNpb24gNjk4MDYpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3MywyNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpn
ZXRJbWFnZURhdGEoSW1hCiAgICAgaWYgKGJpdHNQZXJQaXhlbCAlIGJpdHNQZXJDb21wb25lbnQp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBzaXplX3QgY29tcG9uZW50c1BlclBpeGVsID0g
Yml0c1BlclBpeGVsIC8gYml0c1BlckNvbXBvbmVudDsKKyAgICBib29sIHNyY0J5dGVPcmRlcjE2
QmlnOworICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDE2KSB7CisgICAgICAgIENHQml0bWFw
SW5mbyBiaXRJbmZvID0gQ0dJbWFnZUdldEJpdG1hcEluZm8oY2dJbWFnZSk7CisgICAgICAgIHN3
aXRjaCAoYml0SW5mbyAmIGtDR0JpdG1hcEJ5dGVPcmRlck1hc2spIHsKKyAgICAgICAgY2FzZSBr
Q0dCaXRtYXBCeXRlT3JkZXIxNkJpZzoKKyAgICAgICAgICAgIHNyY0J5dGVPcmRlcjE2QmlnID0g
dHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRl
cjE2TGl0dGxlOgorICAgICAgICAgICAgc3JjQnl0ZU9yZGVyMTZCaWcgPSBmYWxzZTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlckRlZmF1bHQ6Cisg
ICAgICAgICAgICAvLyBUaGlzIGlzIGEgYnVnIGluIGVhcmxpZXIgdmVyc2lvbiBvZiBjZyB3aGVy
ZSB0aGUgZGVmYXVsdCBlbmRpYW4KKyAgICAgICAgICAgIC8vIGlzIGxpdHRsZSB3aGVyZWFzIHRo
ZSBkZWNvZGVkIDE2LWJpdCBwbmcgaW1hZ2UgZGF0YSBpcyBhY3R1YWxseQorICAgICAgICAgICAg
Ly8gQmlnLiBMYXRlciB2ZXJzaW9uICgxMC42LjQpIG5vIGxvbmdlciByZXR1cm5zIEJ5dGVPcmRl
ckRlZmF1bHQuCisgICAgICAgICAgICBzcmNCeXRlT3JkZXIxNkJpZyA9IHRydWU7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorICAgIH0KICAgICBTb3VyY2VEYXRhRm9ybWF0IHNyY0RhdGFGb3JtYXQgPSBr
U291cmNlRm9ybWF0UkdCQTg7CiAgICAgQWxwaGFPcCBuZWVkZWRBbHBoYU9wID0ga0FscGhhRG9O
b3RoaW5nOwogICAgIHN3aXRjaCAoQ0dJbWFnZUdldEFscGhhSW5mbyhjZ0ltYWdlKSkgewpAQCAt
ODgsMTMgKzEwOCwxMyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEoSW1h
CiAgICAgICAgICAgICBpZiAoYml0c1BlckNvbXBvbmVudCA9PSA4KQogICAgICAgICAgICAgICAg
IHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0QVI4OwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0QVIxNjsKKyAgICAgICAg
ICAgICAgICBzcmNEYXRhRm9ybWF0ID0gc3JjQnl0ZU9yZGVyMTZCaWcgPyBrU291cmNlRm9ybWF0
QVIxNkJpZyA6IGtTb3VyY2VGb3JtYXRBUjE2TGl0dGxlOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCiAg
ICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBUkdCODsKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1h
dEFSR0IxNjsKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0gc3JjQnl0ZU9yZGVyMTZC
aWcgPyBrU291cmNlRm9ybWF0QVJHQjE2QmlnIDoga1NvdXJjZUZvcm1hdEFSR0IxNkxpdHRsZTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTA5LDE5ICsxMjksMTkgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0
SW1hZ2VEYXRhKEltYQogICAgICAgICAgICAgaWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkKICAg
ICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEE4OwogICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0QTE2
OworICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBzcmNCeXRlT3JkZXIxNkJpZyA/IGtT
b3VyY2VGb3JtYXRBMTZCaWcgOiBrU291cmNlRm9ybWF0QTE2TGl0dGxlOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50
ID09IDgpCiAgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBUjg7
CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3Vy
Y2VGb3JtYXRBUjE2OworICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBzcmNCeXRlT3Jk
ZXIxNkJpZyA/IGtTb3VyY2VGb3JtYXRBUjE2QmlnIDoga1NvdXJjZUZvcm1hdEFSMTZMaXR0bGU7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgaWYgKGJp
dHNQZXJDb21wb25lbnQgPT0gOCkKICAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1Nv
dXJjZUZvcm1hdEFSR0I4OwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNyY0Rh
dGFGb3JtYXQgPSBrU291cmNlRm9ybWF0QVJHQjE2OworICAgICAgICAgICAgICAgIHNyY0RhdGFG
b3JtYXQgPSBzcmNCeXRlT3JkZXIxNkJpZyA/IGtTb3VyY2VGb3JtYXRBUkdCMTZCaWcgOiBrU291
cmNlRm9ybWF0QVJHQjE2TGl0dGxlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzQsMTMgKzE1NCwxMyBAQCBib29s
IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEoSW1hCiAgICAgICAgICAgICBpZiAoYml0
c1BlckNvbXBvbmVudCA9PSA4KQogICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291
cmNlRm9ybWF0QVI4OwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNyY0RhdGFG
b3JtYXQgPSBrU291cmNlRm9ybWF0QVIxNjsKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0
ID0gc3JjQnl0ZU9yZGVyMTZCaWcgPyBrU291cmNlRm9ybWF0QVIxNkJpZyA6IGtTb3VyY2VGb3Jt
YXRBUjE2TGl0dGxlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgNDoKICAgICAg
ICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCiAgICAgICAgICAgICAgICAgc3JjRGF0
YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBUkdCODsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEFSR0IxNjsKKyAgICAgICAgICAg
ICAgICBzcmNEYXRhRm9ybWF0ID0gc3JjQnl0ZU9yZGVyMTZCaWcgPyBrU291cmNlRm9ybWF0QVJH
QjE2QmlnIDoga1NvdXJjZUZvcm1hdEFSR0IxNkxpdHRsZTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTU3LDEzICsx
NzcsMTMgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYQogICAgICAg
ICAgICAgaWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkKICAgICAgICAgICAgICAgICBzcmNEYXRh
Rm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJBODsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJBMTY7CisgICAgICAgICAgICAgICAg
c3JjRGF0YUZvcm1hdCA9IHNyY0J5dGVPcmRlcjE2QmlnID8ga1NvdXJjZUZvcm1hdFJBMTZCaWcg
OiBrU291cmNlRm9ybWF0UkExNkxpdHRsZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIDQ6CiAgICAgICAgICAgICBpZiAoYml0c1BlckNvbXBvbmVudCA9PSA4KQogICAgICAgICAg
ICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0UkdCQTg7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0JBMTY7
CisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IHNyY0J5dGVPcmRlcjE2QmlnID8ga1Nv
dXJjZUZvcm1hdFJHQkExNkJpZyA6IGtTb3VyY2VGb3JtYXRSR0JBMTZMaXR0bGU7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTE3NywxOSArMTk3LDE5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0
YShJbWEKICAgICAgICAgICAgIGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCiAgICAgICAgICAg
ICAgICAgc3JjRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBODsKICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdEExNjsKKyAgICAg
ICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0gc3JjQnl0ZU9yZGVyMTZCaWcgPyBrU291cmNlRm9y
bWF0QTE2QmlnIDogIGtTb3VyY2VGb3JtYXRBMTZMaXR0bGU7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgaWYgKGJpdHNQZXJDb21wb25lbnQgPT0gOCkK
ICAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJBODsKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1h
dFJBMTY7CisgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1hdCA9IHNyY0J5dGVPcmRlcjE2Qmln
ID8ga1NvdXJjZUZvcm1hdFJBMTZCaWcgOiAga1NvdXJjZUZvcm1hdFJBMTZMaXR0bGU7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgaWYgKGJpdHNQZXJD
b21wb25lbnQgPT0gOCkKICAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZv
cm1hdFJHQkE4OwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNyY0RhdGFGb3Jt
YXQgPSBrU291cmNlRm9ybWF0UkdCQTE2OworICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQg
PSBzcmNCeXRlT3JkZXIxNkJpZyA/IGtTb3VyY2VGb3JtYXRSR0JBMTZCaWcgOiBrU291cmNlRm9y
bWF0UkdCQTE2TGl0dGxlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDEsMTMgKzIyMSwxMyBAQCBib29sIEdyYXBo
aWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEoSW1hCiAgICAgICAgICAgICBpZiAoYml0c1BlckNv
bXBvbmVudCA9PSA4KQogICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQgPSBrU291cmNlRm9y
bWF0UkE4OwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNyY0RhdGFGb3JtYXQg
PSBrU291cmNlRm9ybWF0UkExNjsKKyAgICAgICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0gc3Jj
Qnl0ZU9yZGVyMTZCaWcgPyBrU291cmNlRm9ybWF0UkExNkJpZyA6IGtTb3VyY2VGb3JtYXRSQTE2
TGl0dGxlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAg
IGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCiAgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1h
dCA9IGtTb3VyY2VGb3JtYXRSR0JBODsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJHQkExNjsKKyAgICAgICAgICAgICAgICBz
cmNEYXRhRm9ybWF0ID0gc3JjQnl0ZU9yZGVyMTZCaWcgPyBrU291cmNlRm9ybWF0UkdCQTE2Qmln
IDogIGtTb3VyY2VGb3JtYXRSR0JBMTZMaXR0bGU7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIxOSwxMyArMjM5LDEz
IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWEKICAgICAgICAgICAg
IGlmIChiaXRzUGVyQ29tcG9uZW50ID09IDgpCiAgICAgICAgICAgICAgICAgc3JjRGF0YUZvcm1h
dCA9IGtTb3VyY2VGb3JtYXRSODsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBz
cmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFIxNjsKKyAgICAgICAgICAgICAgICBzcmNEYXRh
Rm9ybWF0ID0gc3JjQnl0ZU9yZGVyMTZCaWcgPyBrU291cmNlRm9ybWF0UjE2QmlnIDoga1NvdXJj
ZUZvcm1hdFIxNkxpdHRsZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIDM6CiAg
ICAgICAgICAgICBpZiAoYml0c1BlckNvbXBvbmVudCA9PSA4KQogICAgICAgICAgICAgICAgIHNy
Y0RhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0UkdCODsKICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBzcmNEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJHQjE2OworICAgICAgICAg
ICAgICAgIHNyY0RhdGFGb3JtYXQgPSBzcmNCeXRlT3JkZXIxNkJpZyA/IGtTb3VyY2VGb3JtYXRS
R0IxNkJpZyA6IGtTb3VyY2VGb3JtYXRSR0IxNkxpdHRsZTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo=
</data>
<flag name="review"
          id="61050"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="61051"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
      

    </bug>

</bugzilla>