<?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>163394</bug_id>
          
          <creation_ts>2016-10-13 10:58:34 -0700</creation_ts>
          <short_desc>B3 needs a special WasmAddress Opcode</short_desc>
          <delta_ts>2016-10-14 16:24:48 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>163171</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1239837</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-10-13 10:58:34 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239838</commentid>
    <comment_count>1</comment_count>
      <attachid>291495</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-10-13 11:00:00 -0700</bug_when>
    <thetext>Created attachment 291495
Working but looking into lea failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239848</commentid>
    <comment_count>2</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-10-13 11:12:12 -0700</bug_when>
    <thetext>For some reason the test case in the patch produces the following disassembly on x86_64:

      0x21d1cec01000: push %rbp
      0x21d1cec01001: mov %rsp, %rbp
      0x21d1cec01004: cmp $0x0, %edi
      0x21d1cec01007: ja 0x21d1cec0100f
      0x21d1cec0100d: pop %rbp
      0x21d1cec0100e: ret
      0x21d1cec0100f: xor %rax, %rax
      0x21d1cec01012: mov %eax, %ecx
      0x21d1cec01014: shl $0x2, %ecx
      0x21d1cec01017: add %rsi, %rcx
      0x21d1cec0101a: mov $0x2a, (%rcx)
      0x21d1cec01020: inc %eax
      0x21d1cec01022: cmp %edi, %eax
      0x21d1cec01024: jb 0x21d1cec01012
      0x21d1cec0102a: jmp 0x21d1cec0100d

I want to figure out why the add and mov are not being compressed into one instruction.

It&apos;s also to bad that we can&apos;t fuse the shl, add, and mov since I expect that case to be common. Note, we can&apos;t fuse the shl with the others since it&apos;s 32-bit and the other values are 64-bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239850</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-13 11:14:04 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; For some reason the test case in the patch produces the following
&gt; disassembly on x86_64:
&gt; 
&gt;       0x21d1cec01000: push %rbp
&gt;       0x21d1cec01001: mov %rsp, %rbp
&gt;       0x21d1cec01004: cmp $0x0, %edi
&gt;       0x21d1cec01007: ja 0x21d1cec0100f
&gt;       0x21d1cec0100d: pop %rbp
&gt;       0x21d1cec0100e: ret
&gt;       0x21d1cec0100f: xor %rax, %rax
&gt;       0x21d1cec01012: mov %eax, %ecx
&gt;       0x21d1cec01014: shl $0x2, %ecx
&gt;       0x21d1cec01017: add %rsi, %rcx
&gt;       0x21d1cec0101a: mov $0x2a, (%rcx)
&gt;       0x21d1cec01020: inc %eax
&gt;       0x21d1cec01022: cmp %edi, %eax
&gt;       0x21d1cec01024: jb 0x21d1cec01012
&gt;       0x21d1cec0102a: jmp 0x21d1cec0100d
&gt; 
&gt; I want to figure out why the add and mov are not being compressed into one
&gt; instruction.
&gt; 
&gt; It&apos;s also to bad that we can&apos;t fuse the shl, add, and mov since I expect
&gt; that case to be common. Note, we can&apos;t fuse the shl with the others since
&gt; it&apos;s 32-bit and the other values are 64-bit.

Can you please JSC_dumpGraphAtEachPhase=true?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239859</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-13 11:20:57 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; For some reason the test case in the patch produces the following
&gt; disassembly on x86_64:
&gt; 
&gt;       0x21d1cec01000: push %rbp
&gt;       0x21d1cec01001: mov %rsp, %rbp
&gt;       0x21d1cec01004: cmp $0x0, %edi
&gt;       0x21d1cec01007: ja 0x21d1cec0100f
&gt;       0x21d1cec0100d: pop %rbp
&gt;       0x21d1cec0100e: ret
&gt;       0x21d1cec0100f: xor %rax, %rax
&gt;       0x21d1cec01012: mov %eax, %ecx
&gt;       0x21d1cec01014: shl $0x2, %ecx

This is a 32-bit left-shift-by-2.  There is no lea for that.

Lea is only for Add(Shl(value, const), value).  A lone Shl is better off as a lone Shl.

&gt;       0x21d1cec01017: add %rsi, %rcx

You&apos;re emitting this instruction yourself.  This add instruction is there because of the code you added to B3LowerToAir.

&gt;       0x21d1cec0101a: mov $0x2a, (%rcx)
&gt;       0x21d1cec01020: inc %eax
&gt;       0x21d1cec01022: cmp %edi, %eax
&gt;       0x21d1cec01024: jb 0x21d1cec01012
&gt;       0x21d1cec0102a: jmp 0x21d1cec0100d
&gt; 
&gt; I want to figure out why the add and mov are not being compressed into one
&gt; instruction.
&gt; 
&gt; It&apos;s also to bad that we can&apos;t fuse the shl, add, and mov since I expect
&gt; that case to be common. Note, we can&apos;t fuse the shl with the others since
&gt; it&apos;s 32-bit and the other values are 64-bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240435</commentid>
    <comment_count>5</comment_count>
      <attachid>291672</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-10-14 15:30:38 -0700</bug_when>
    <thetext>Created attachment 291672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240437</commentid>
    <comment_count>6</comment_count>
      <attachid>291672</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-14 15:36:42 -0700</bug_when>
    <thetext>Comment on attachment 291672
Patch

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

&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:521
&gt; +            // We would further pattern match on the opcode of the pointer and
&gt; +            // try to construct a more complete addressing mode. But since any
&gt; +            // math on the pointer would be 32-bit there is not much we can do.

Remove this comment, since you already say specifically about the ARM thing.

&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:526
&gt; +            // FIXME: We should support ARM64 LDR 32-bit addressing, which will
&gt; +            // allow us to fuse a Shl ptr, 2 into the address. Additionally, and
&gt; +            // perhaps more importantly, it would allow us to avoid a truncating
&gt; +            // move.

File a bug and reference it here.

&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:528
&gt; +            return Arg::index(Air::Tmp(wasmAddress-&gt;pinnedGPR()), tmp(pointer), 1, offset);

Do you have to say Air:: here?

&gt; Source/JavaScriptCore/b3/testb3.cpp:13766
&gt; +void testWasmAddress()
&gt; +    {

Indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240459</commentid>
    <comment_count>7</comment_count>
      <attachid>291677</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-10-14 16:08:06 -0700</bug_when>
    <thetext>Created attachment 291677
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240466</commentid>
    <comment_count>8</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-10-14 16:24:48 -0700</bug_when>
    <thetext>Committed r207360: &lt;http://trac.webkit.org/changeset/207360&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291495</attachid>
            <date>2016-10-13 11:00:00 -0700</date>
            <delta_ts>2016-10-14 15:30:36 -0700</delta_ts>
            <desc>Working but looking into lea failures</desc>
            <filename>bug-163394-20161013105634.patch</filename>
            <type>text/plain</type>
            <size>18050</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3MjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ODExM2M5Nzk4NTYwOTM5ODA0M2ExYTcwOGVkMDFkNTE2NTA2NWFjLi4wMWYzMzA2YjRkYmFlZWI3
ZGJiMzUwOTgzMGE4YzA4NGZiYzQ3OTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxNi0xMC0xMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBCMyBuZWVkcyBhIHNwZWNpYWwgV2FzbUFkZHJlc3MgT3Bjb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMzOTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYjMvQjNMb3dlclRv
QWlyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6bG93ZXIpOgorICAg
ICAgICAqIGIzL0IzT3Bjb2RlLmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6Cisg
ICAgICAgICogYjMvQjNPcGNvZGUuaDoKKyAgICAgICAgKiBiMy9CM1ZhbGlkYXRlLmNwcDoKKyAg
ICAgICAgKiBiMy9CM1ZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjplZmZlY3Rz
KToKKyAgICAgICAgKiBiMy9CM1dhc21BZGRyZXNzVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAg
KEpTQzo6QjM6Oldhc21BZGRyZXNzVmFsdWU6On5XYXNtQWRkcmVzc1ZhbHVlKToKKyAgICAgICAg
KEpTQzo6QjM6Oldhc21BZGRyZXNzVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6
Oldhc21BZGRyZXNzVmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpXYXNtQWRk
cmVzc1ZhbHVlOjpXYXNtQWRkcmVzc1ZhbHVlKToKKyAgICAgICAgKiBiMy9CM1dhc21BZGRyZXNz
VmFsdWUuaDogQWRkZWQuCisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgorICAg
ICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0V2FzbUFkZHJlc3Mp
OgorICAgICAgICAoSlNDOjpCMzo6cnVuKToKKwogMjAxNi0xMC0xMyAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbjY0XSBDb21waWxlIGZpeC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTA4ZmU4YWUwZjk0YjlmNzQ3MzRkNzgxODhm
MGNmNWNmYzhhMTgxOS4uZWU4YzdmOWJmMzA5ZTg5Zjc5NTIxZjQxNGQyNjI3YjdhYjMzYWVjMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMjEsNiArMTIyMSw4IEBACiAJCTUz
OUVCMDdBMUQ1NTYwNzAwMEM4MkVGNyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzJGNUJEOTA4MjJB
MUM3MDA3MzY5NzUgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9OwogCQk1MzlFQjA4
MTFENTU2MDhBMDBDODJFRjcgLyogdGVzdFdBU00uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM5RUIwNzExRDU1M0RGODAwQzgyRUY3IC8qIHRlc3RX
QVNNLmNwcCAqLzsgfTsKIAkJNTM5RkI4QkExQzk5REE3QzAwOTQwRkExIC8qIEpTQXJyYXlJbmxp
bmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzlG
QjhCOTFDOTlEQTdDMDA5NDBGQTEgLyogSlNBcnJheUlubGluZXMuaCAqLzsgfTsKKwkJNTNENDQ0
REMxREFGMDhBQjAwQjkyNzg0IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNENDQ0REIxREFGMDhBQjAwQjkyNzg0
IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5oICovOyB9OworCQk1M0Q0NDRERTFEQUYwOUEwMDBCOTI3
ODQgLyogQjNXYXNtQWRkcmVzc1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUzRDQ0NEREMURBRjA5QTAwMEI5Mjc4NCAvKiBCM1dhc21BZGRy
ZXNzVmFsdWUuY3BwICovOyB9OwogCQk1M0Y0MEU4NTFENThGOTc3MDA5OUExQjYgLyogV0FTTVNl
Y3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
M0Y0MEU4NDFENThGOTc3MDA5OUExQjYgLyogV0FTTVNlY3Rpb25zLmggKi87IH07CiAJCTUzRjQw
RThCMUQ1OTAxQkIwMDk5QTFCNiAvKiBXQVNNRnVuY3Rpb25QYXJzZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjQwRThBMUQ1OTAxQkIwMDk5QTFC
NiAvKiBXQVNNRnVuY3Rpb25QYXJzZXIuaCAqLzsgfTsKIAkJNTNGNDBFOEQxRDU5MDFGMjAwOTlB
MUI2IC8qIFdBU01QYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUzRjQwRThDMUQ1OTAxRjIwMDk5QTFCNiAvKiBXQVNNUGFyc2VyLmggKi87IH07
CkBAIC0zNDYxLDYgKzM0NjMsOCBAQAogCQk1MzlFQjA3MTFENTUzREY4MDBDODJFRjcgLyogdGVz
dFdBU00uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gdGVzdFdBU00u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzlFQjA4MDFENTU2MDcwMDBDODJF
RjcgLyogdGVzdFdBU00gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsg
cGF0aCA9IHRlc3RXQVNNOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1
MzlGQjhCOTFDOTlEQTdDMDA5NDBGQTEgLyogSlNBcnJheUlubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcnJheUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTNENDQ0REIxREFGMDhBQjAwQjkyNzg0IC8qIEIzV2FzbUFkZHJlc3NWYWx1
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1dhc21BZGRyZXNzVmFsdWUu
aDsgcGF0aCA9IGIzL0IzV2FzbUFkZHJlc3NWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1M0Q0NDRERDFEQUYwOUEwMDBCOTI3ODQgLyogQjNXYXNtQWRkcmVzc1ZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzV2FzbUFkZHJlc3NWYWx1
ZS5jcHA7IHBhdGggPSBiMy9CM1dhc21BZGRyZXNzVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1M0YyNTZFMTFCODdFMjgwMDBCNEI3NjggLyogSlNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1R5
cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTNGNDBFODQxRDU4Rjk3NzAwOTlBMUI2IC8qIFdBU01TZWN0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXQVNNU2VjdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTNGNDBFOEExRDU5MDFCQjAwOTlBMUI2IC8qIFdBU01GdW5jdGlvblBhcnNlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXQVNNRnVuY3Rpb25QYXJzZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUwMDUsNiArNTAwOSw4IEBACiAJCQkJMEYy
QkJEOTMxQzVGRjNGNTAwMjNFRjIzIC8qIEIzVmFyaWFibGUuaCAqLywKIAkJCQkwRjJCQkQ5NDFD
NUZGM0Y1MDAyM0VGMjMgLyogQjNWYXJpYWJsZVZhbHVlLmNwcCAqLywKIAkJCQkwRjJCQkQ5NTFD
NUZGM0Y1MDAyM0VGMjMgLyogQjNWYXJpYWJsZVZhbHVlLmggKi8sCisJCQkJNTNENDQ0REQxREFG
MDlBMDAwQjkyNzg0IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5jcHAgKi8sCisJCQkJNTNENDQ0REIx
REFGMDhBQjAwQjkyNzg0IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5oICovLAogCQkJCTBGRUM4NUFF
MUJEQjVENUUwMDgwRkY3NCAvKiB0ZXN0YjMuY3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSBiMzsK
QEAgLTcyNDgsNiArNzI1NCw3IEBACiAJCQkJMEYzNzMwOTMxQzBENjdFRTAwMDUyQkZBIC8qIEFp
clVzZUNvdW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NTcwMzkxQkU0NEM5MTAwNjJBNjI5
IC8qIEFpckVsaW1pbmF0ZURlYWRDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OUIwMENCRDFD
NkFCMDdFMDA4OEM2NUQgLyogUHJveHlDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NTNENDQ0REMxREFGMDhBQjAwQjkyNzg0IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTkwREE2N0YxQzhFMzE2QTAwMjk1MTU5IC8qIGdlbmVyYXRlX29iamNfcHJv
dG9jb2xfdHlwZV9jb252ZXJzaW9uc19pbXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAog
CQkJCURDMTdFODE5MUM5QzkxREIwMDhBNkFCMyAvKiBTaGFkb3dDaGlja2VuSW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJREMxN0U4MTgxQzlDOTFEOTAwOEE2QUIzIC8qIFNoYWRvd0NoaWNr
ZW4uaCBpbiBIZWFkZXJzICovLApAQCAtOTc4Niw2ICs5NzkzLDcgQEAKIAkJCQkwRjkxOUQyNTE1
ODUzQ0UwMDA0QTRFN0QgLyogV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUNG
NzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEU4
NEY5RTE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha0Jsb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTUzRDQ0NERFMURBRjA5QTAwMEI5Mjc4NCAvKiBCM1dhc21BZGRyZXNzVmFsdWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTRGNzI1NjUxNEVFMjY1RTAwQjE2NTJCIC8qIFdlYWtIYW5kbGVPd25l
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0NBM0FFMzE3REE0MUFFMDA2NTM4QUYgLyogV2Vh
a01hcENvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMzM4REY5MUJFOTZBQTgw
MDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IDVjODljYmRiOTY5MjczM2Q0NDczMWY2
YWI1NmQ4ZDFhYWM3NmYyMDMuLmU3Y2M2YzhjNzcwYjMwYTg4MWNiY2E5MmYwYmEzNjhlNzA1ZDBj
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC01NCw2
ICs1NCw3IEBACiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1Zhcmlh
YmxlLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCisjaW5jbHVkZSAiQjNXYXNtQWRk
cmVzc1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL0luZGV4TWFwLmg+CiAjaW5jbHVkZSA8d3RmL0lu
ZGV4U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CkBAIC0yMjc2LDcgKzIyNzcsMTUg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIGFwcGVuZFN0b3JlKEFpcjo6U3RvcmUxNiwgdmFsdWVU
b1N0b3JlLCBhZGRyKG1fdmFsdWUpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQot
ICAgICAgICAgICAgCisKKyAgICAgICAgY2FzZSBXYXNtQWRkcmVzczogeworICAgICAgICAgICAg
V2FzbUFkZHJlc3NWYWx1ZSogYWRkcmVzcyA9IG1fdmFsdWUtPmFzPFdhc21BZGRyZXNzVmFsdWU+
KCk7CisKKyAgICAgICAgICAgIGFwcGVuZChNb3ZlMzIsIHRtcChhZGRyZXNzLT5jaGlsZCgwKSks
IHRtcChhZGRyZXNzKSk7CisgICAgICAgICAgICBhcHBlbmQoQWRkNjQsIEFyZyhhZGRyZXNzLT5w
aW5uZWRHUFIoKSksIHRtcChhZGRyZXNzKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKwogICAgICAgICBjYXNlIEZlbmNlOiB7CiAgICAgICAgICAgICBGZW5jZVZhbHVlKiBmZW5j
ZSA9IG1fdmFsdWUtPmFzPEZlbmNlVmFsdWU+KCk7CiAgICAgICAgICAgICBpZiAoIWZlbmNlLT53
cml0ZSAmJiAhZmVuY2UtPnJlYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNPcGNvZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcApp
bmRleCBlMTAwZDNiMzlmZjUyYzIyMjgyY2NkN2NkNTk5NzFlY2FjMjQ3N2QwLi4wMjA4YjMzOWQy
YmE0NWYyMjRhOGJiMTVhNmI3MzI3NzlhNTA0Mzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M09wY29kZS5jcHAKQEAgLTI1MSw2ICsyNTEsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRT
dHJlYW0mIG91dCwgT3Bjb2RlIG9wY29kZSkKICAgICBjYXNlIFN0b3JlOgogICAgICAgICBvdXQu
cHJpbnQoIlN0b3JlIik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFdhc21BZGRyZXNzOgor
ICAgICAgICBvdXQucHJpbnQoIldhc21BZGRyZXNzIik7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIEZlbmNlOgogICAgICAgICBvdXQucHJpbnQoIkZlbmNlIik7CiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKaW5kZXggZTMyZTlkMzAyMGRmNjM5NmQwNjAy
OWM3ZmE1NTIzMzk4OTgwZTI5MC4uMGZjNTQ0OWQ1NmRlN2NjZDY5YjVkYmVhYzdiM2I5ZjdlODc5
MmE5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKQEAgLTE1Nyw2ICsxNTcsMTAg
QEAgZW51bSBPcGNvZGUgOiBpbnQxNl90IHsKICAgICBTdG9yZTE2LAogICAgIC8vIFRoaXMgaXMg
YSBwb2x5bW9ycGhpYyBzdG9yZSBmb3IgSW50MzIsIEludDY0LCBGbG9hdCwgYW5kIERvdWJsZS4K
ICAgICBTdG9yZSwKKworICAgIC8vIFRoaXMgaXMgdXNlZCB0byBjb21wdXRlIHRoZSBhY3R1YWwg
YWRkcmVzcyBvZiBhIFdhc20gbWVtb3J5IG9wZXJhdGlvbi4gSXQgdGFrZXMgYW4gSW50MzIKKyAg
ICAvLyBhbmQgYSBwaW5uZWQgcmVnaXN0ZXIgdGhlbiBjb21wdXRlcyB0aGUgYXBwcm9wcmlhdGUg
SW50NjQgYWRkcmVzcy4KKyAgICBXYXNtQWRkcmVzcywKICAgICAKICAgICAvLyBUaGlzIGlzIHVz
ZWQgdG8gcmVwcmVzZW50IHN0YW5kYWxvbmUgZmVuY2VzIC0gaS5lLiBmZW5jZXMgdGhhdCBhcmUg
bm90IHBhcnQgb2Ygb3RoZXIKICAgICAvLyBpbnN0cnVjdGlvbnMuIEl0J3MgZXhwcmVzc2l2ZSBl
bm91Z2ggdG8gZXhwb3NlIG1mZW5jZSBvbiB4ODYgYW5kIGRtYiBpc2gvaXNoc3Qgb24gQVJNLiBP
bgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCmluZGV4IGIwNjM0NGU0MDU3
YmYzMTFkZDZlNmY2ZTEzN2MxZjAxZGQwNzA5OWQuLjA0NjA5YWY3MDcwMDRjZGJhYjEyYjk3ZjNm
YTZjYjY0YWIwNzMxZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zh
bGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAK
QEAgLTM3MSw2ICszNzEsMTIgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZh
bHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICB2
YWxpZGF0ZVN0YWNrQWNjZXNzKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgV2FzbUFkZHJlc3M6CisgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVl
LT5raW5kKCkuaGFzRXh0cmFCaXRzKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSA9PSBJbnQz
MiwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlw
ZSgpID09IEludDY0LCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBDQ2FsbDoKICAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUt
PmtpbmQoKS5oYXNFeHRyYUJpdHMoKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAg
ICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA+PSAxLCAoIkF0ICIsICp2YWx1ZSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCmluZGV4IDViNDExOTg2MDZjNTY3YTc3ZDVi
ZTg0MTJjNWE2ZWQ5NGU5Zjg3MzAuLjcxYjllZGE2ZGNmNDQ1NzIxYTI0N2U5NzI0YzMzYjJhNTMx
NTAxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKQEAgLTU4Niw2ICs1ODYs
OSBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICAgICAgcmVzdWx0LndyaXRl
cyA9IGFzPE1lbW9yeVZhbHVlPigpLT5yYW5nZSgpOwogICAgICAgICByZXN1bHQuY29udHJvbERl
cGVuZGVudCA9IHRydWU7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbUFkZHJlc3M6Cisg
ICAgICAgIHJlc3VsdC5yZWFkc1Bpbm5lZCA9IHRydWU7CisgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRmVuY2U6IHsKICAgICAgICAgY29uc3QgRmVuY2VWYWx1ZSogZmVuY2UgPSBhczxGZW5jZVZh
bHVlPigpOwogICAgICAgICByZXN1bHQucmVhZHMgPSBmZW5jZS0+cmVhZDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dhc21BZGRyZXNzVmFsdWUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzV2FzbUFkZHJlc3NWYWx1ZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdk
NzYyODUyNTg1OTBjOGMwN2Y4OTY3NmI2ZDViNzIyNjUzNzBlNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dhc21BZGRyZXNzVmFsdWUuY3BwCkBAIC0wLDAg
KzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNXYXNtQWRkcmVzc1ZhbHVlLmgiCisKKyNp
ZiBFTkFCTEUoQjNfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworV2Fz
bUFkZHJlc3NWYWx1ZTo6fldhc21BZGRyZXNzVmFsdWUoKQoreworfQorCit2b2lkIFdhc21BZGRy
ZXNzVmFsdWU6OmR1bXBNZXRhKENvbW1hUHJpbnRlciYgY29tbWEsIFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0Cit7CisgICAgb3V0LnByaW50KGNvbW1hLCBtX3Bpbm5lZEdQUik7Cit9CisKK1ZhbHVl
KiBXYXNtQWRkcmVzc1ZhbHVlOjpjbG9uZUltcGwoKSBjb25zdAoreworICAgIHJldHVybiBuZXcg
V2FzbUFkZHJlc3NWYWx1ZSgqdGhpcyk7Cit9CisKK1dhc21BZGRyZXNzVmFsdWU6Oldhc21BZGRy
ZXNzVmFsdWUoT3JpZ2luIG9yaWdpbiwgVmFsdWUqIHZhbHVlLCBHUFJSZWcgcGlubmVkR1BSKQor
ICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgV2FzbUFkZHJlc3MsIEludDY0LCBvcmlnaW4sIHZh
bHVlKQorICAgICwgbV9waW5uZWRHUFIocGlubmVkR1BSKQoreworfQorCit9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dhc21BZGRyZXNzVmFsdWUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1dhc21BZGRyZXNzVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTM4NjAyNzU1
YmM4MTc1YTJjN2E0N2NiODUyZDM1N2JhNmI4ZGQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzV2FzbUFkZHJlc3NWYWx1ZS5oCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM1ZhbHVlLmgiCisKK25hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBXYXNt
QWRkcmVzc1ZhbHVlIDogcHVibGljIFZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBh
Y2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBXYXNtQWRkcmVzczsgfQorCisgICAg
fldhc21BZGRyZXNzVmFsdWUoKTsKKworICAgIEdQUlJlZyBwaW5uZWRHUFIoKSBjb25zdCB7IHJl
dHVybiBtX3Bpbm5lZEdQUjsgfQorCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBkdW1wTWV0YShDb21t
YVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworCisgICAgVmFsdWUqIGNs
b25lSW1wbCgpIGNvbnN0IG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQ
cm9jZWR1cmU7CisKKyAgICBXYXNtQWRkcmVzc1ZhbHVlKE9yaWdpbiwgVmFsdWUqLCBHUFJSZWcp
OworCisgICAgR1BSUmVnIG1fcGlubmVkR1BSOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkIzCisKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwppbmRleCAxNzk3MmEzZDM1YThiNzhhMTFkZTRl
NmM5ZWZkNjlhNjcyMDZjN2IzLi5mODA4NmJlYjE5MTMzNTc4MDU0NzQ3NTdiN2IxYWQ5OTdlZGVj
NzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5v
cGNvZGVzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29k
ZXMKQEAgLTg5Miw0ICs4OTIsMyBAQCBjdXN0b20gQ29sZENDYWxsCiAjIFRoaXMgaXMgYSBzcGVj
aWFsIHdhc20gb3Bjb2RlIHRoYXQgYnJhbmNoZXMgdG8gYSB0cmFwIGhhbmRsZXIuIFRoaXMgdXNl
cyB0aGUgZ2VuZXJhdG9yIGxvY2F0ZWQgdG8gQWlyOjpDb2RlCiAjIHRvIHByb2R1Y2UgdGhlIHNp
ZGUtZXhpdCBjb2RlLgogY3VzdG9tIFdhc21Cb3VuZHNDaGVjawotCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjMuY3BwCmluZGV4IGFjMzFjM2NmNjMxZGUxZjBjNTVmMWI3YjBmMDA5NmE2ZmEzOTcz
MTIuLjJhMjYyZDA3MjNiYWEwOWE4ODMyYTVmNTBhNjZhYTlkMGVkMzJiNzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiQjNWYWxp
ZGF0ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJs
ZVZhbHVlLmgiCisjaW5jbHVkZSAiQjNXYXNtQWRkcmVzc1ZhbHVlLmgiCiAjaW5jbHVkZSAiQjNX
YXNtQm91bmRzQ2hlY2tWYWx1ZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1
ZGUgIkZQUkluZm8uaCIKQEAgLTEzNzYxLDYgKzEzNzYyLDUzIEBAIHZvaWQgdGVzdFdhc21Cb3Vu
ZHNDaGVjayh1bnNpZ25lZCBvZmZzZXQpCiAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDMyX3Q+KCpj
b2RlLCAyLCAyICsgb2Zmc2V0KSwgNDIpOwogfQogCit2b2lkIHRlc3RXYXNtQWRkcmVzcygpCisg
ICAgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgR1BSUmVnIHBpbm5lZEdQUiA9
IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKKyAgICAgICAgcHJvYy5waW5SZWdpc3RlcihwaW5uZWRH
UFIpOworCisgICAgICAgIHVuc2lnbmVkIGxvb3BDb3VudCA9IDEwMDsKKyAgICAgICAgVmVjdG9y
PHVuc2lnbmVkPiB2YWx1ZXMobG9vcENvdW50KTsKKyAgICAgICAgdW5zaWduZWQgbnVtVG9TdG9y
ZSA9IDQyOworCisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Cisg
ICAgICAgIEJhc2ljQmxvY2sqIGhlYWRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAgICAgICAgQmFz
aWNCbG9jayogYm9keSA9IHByb2MuYWRkQmxvY2soKTsKKyAgICAgICAgQmFzaWNCbG9jayogY29u
dGludWF0aW9uID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIC8vIFJvb3QKKyAgICAgICAg
VmFsdWUqIGxvb3BDb3VudFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVu
YywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgICAgIFVwc2lsb25WYWx1ZSogYmVn
aW5VcHNpbG9uID0gcm9vdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAg
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgaGVh
ZGVyKTsKKworICAgICAgICAvLyBIZWFkZXIKKyAgICAgICAgVmFsdWUqIGluZGV4UGhpID0gaGVh
ZGVyLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKKyAgICAg
ICAgaGVhZGVyLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
KyAgICAgICAgICAgIGhlYWRlci0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCZWxvdywgT3JpZ2lu
KCksIGluZGV4UGhpLCBsb29wQ291bnRWYWx1ZSksCisgICAgICAgICAgICBib2R5LCBjb250aW51
YXRpb24pOworCisgICAgICAgIC8vIEJvZHkKKyAgICAgICAgVmFsdWUqIHBvaW50ZXIgPSBib2R5
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGluZGV4UGhpLAorICAgICAg
ICAgICAgYm9keS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHNpemVv
Zih1bnNpZ25lZCkpKTsKKyAgICAgICAgYm9keS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZSwgT3JpZ2luKCksCisgICAgICAgICAgICBib2R5LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtVG9TdG9yZSksCisgICAgICAgICAgICBib2R5LT5hcHBl
bmROZXc8V2FzbUFkZHJlc3NWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHBvaW50ZXIsIHBpbm5lZEdQ
UikpOworICAgICAgICBVcHNpbG9uVmFsdWUqIGluY1Vwc2lsb24gPSBib2R5LT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIGJvZHktPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgaW5kZXhQaGksCisgICAgICAgICAgICAgICAg
Ym9keS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKSk7CisgICAg
ICAgIGJvZHktPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgaGVh
ZGVyKTsKKworICAgICAgICAvLyBDb250aW51YXRpb24KKyAgICAgICAgY29udGludWF0aW9uLT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSk7CisKKyAgICAgICAg
YmVnaW5VcHNpbG9uLT5zZXRQaGkoaW5kZXhQaGkpOworICAgICAgICBpbmNVcHNpbG9uLT5zZXRQ
aGkoaW5kZXhQaGkpOworCisKKyAgICAgICAgY29tcGlsZShwcm9jKTsKKyAgICB9CisKIC8vIE1h
a2Ugc3VyZSB0aGUgY29tcGlsZXIgZG9lcyBub3QgdHJ5IHRvIG9wdGltaXplIGFueXRoaW5nIG91
dC4KIE5FVkVSX0lOTElORSBkb3VibGUgemVybygpCiB7CkBAIC0xNTIwNSw2ICsxNTI1Myw3IEBA
IHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU4odGVzdFdhc21Cb3VuZHNDaGVj
aygxMDApKTsKICAgICBSVU4odGVzdFdhc21Cb3VuZHNDaGVjaygxMDAwMCkpOwogICAgIFJVTih0
ZXN0V2FzbUJvdW5kc0NoZWNrKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSAt
IDUpKTsKKyAgICBSVU4odGVzdFdhc21BZGRyZXNzKCkpOwogCiAgICAgaWYgKGlzWDg2KCkpIHsK
ICAgICAgICAgUlVOKHRlc3RCcmFuY2hCaXRBbmRJbW1GdXNpb24oSWRlbnRpdHksIEludDY0LCAx
LCBBaXI6OkJyYW5jaFRlc3QzMiwgQWlyOjpBcmc6OlRtcCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291672</attachid>
            <date>2016-10-14 15:30:38 -0700</date>
            <delta_ts>2016-10-14 16:08:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163394-20161014152711.patch</filename>
            <type>text/plain</type>
            <size>22255</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3MjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ODExM2M5Nzk4NTYwOTM5ODA0M2ExYTcwOGVkMDFkNTE2NTA2NWFjLi4zZjUxNjljMmRjNjEzYmVj
YTQ1OWFiYjJmZDY2ODhlNzM2NzVlMTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNi0xMC0xNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBCMyBuZWVkcyBhIHNwZWNpYWwgV2FzbUFkZHJlc3MgT3Bjb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMzOTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgc3VwcG9ydCBmb3IgV2FzbUFkZHJlc3MuIFdhc21BZGRyZXNzIHdpbGwgYmUgdXNlZCBi
eQorICAgICAgICBXYXNtIHRvIGNvbXB1dGUgdGhlIGFkZHJlc3Mgb2YgYSBtZW1vcnkgb3BlcmF0
aW9uIGZyb20gdGhlIHBpbm5lZAorICAgICAgICBiYXNlIHBvaW50ZXIuIFdhc21BZGRyZXNzIHRh
a2VzIGFuIEludFB0ciBzbyB3ZSBjYW4gYXZvaWQgZW1pdHRpbmcKKyAgICAgICAgdW5uZWNlc3Nh
cnkgTW92ZTMycyBpbiBBaXIuIFRoaXMgY291bGQgaGFwcGVuIGluIHRoZSBmb2xsb3dpbmcgY2Fz
ZToKKworICAgICAgICBAcHRyID0gVHJ1bmMoLi4uKQorICAgICAgICBXYXNtQWRkcmVzcyhAcHRy
LCBwaW5uZWRHUFIpCisgICAgICAgIC4uLgorICAgICAgICBQYXRjaFBvaW50KC4uLikgLy8gRG8g
V2FzbSBjYWxsCisgICAgICAgIFdhc21BZGRyZXNzKEBwdHIsIHBpbm5lZEdQUikKKyAgICAgICAg
Li4uCisKKyAgICAgICAgSW4gdGhpcyBjYXNlIHdlIHdpbGwgbm90IGJlIGFibGUgdG8gQ1NFIHRo
ZSBXYXNtQWRkcmVzc2VzIHNpbmNlIHRoZQorICAgICAgICBjYWxsIHdyaXRlcyB0byBwaW5uZWRH
UFIuIFRodXMgaWYgV2FzbUFkZHJlc3MgdG9vayBhbiBJbnQzMiB3ZSB3b3VsZCBuZWVkCisgICAg
ICAgIHRvIGVtaXQgYW4gZXh0cmEgTW92ZTMyIGF0IHRoZSBzZWNvbmQgV2FzbUFkZHJlc3MgdG8g
ZW5zdXJlIGl0IHNhdyBhIHByb3BlcgorICAgICAgICAzMi1iaXQgdmFsdWUuIElmIFdhc20gZW5z
dXJlcyB0aGF0IHRoZXJlIHRoZXJlIGlzIGEgbGVhZGluZyBaRXh0MzIgdGhlbgorICAgICAgICB0
aGUgZHVwbGljYXRlZCBtb3ZlcyBiZWNvbWUgdW5uZWNlc3NhcnkuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6Okxvd2VyVG9BaXI6OmVmZmVjdGl2ZUFkZHIpOgorICAgICAgICAoSlNDOjpCMzo6QWly
OjpMb3dlclRvQWlyOjpsb3dlcik6CisgICAgICAgICogYjMvQjNPcGNvZGUuY3BwOgorICAgICAg
ICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5oOgorICAgICAg
ICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAg
ICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAgICAgICAqIGIzL0IzV2FzbUFkZHJlc3NW
YWx1ZS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpCMzo6V2FzbUFkZHJlc3NWYWx1ZTo6fldh
c21BZGRyZXNzVmFsdWUpOgorICAgICAgICAoSlNDOjpCMzo6V2FzbUFkZHJlc3NWYWx1ZTo6ZHVt
cE1ldGEpOgorICAgICAgICAoSlNDOjpCMzo6V2FzbUFkZHJlc3NWYWx1ZTo6Y2xvbmVJbXBsKToK
KyAgICAgICAgKEpTQzo6QjM6Oldhc21BZGRyZXNzVmFsdWU6Oldhc21BZGRyZXNzVmFsdWUpOgor
ICAgICAgICAqIGIzL0IzV2FzbUFkZHJlc3NWYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBiMy90
ZXN0YjMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFdhc21BZGRyZXNzKToKKyAgICAgICAg
KEpTQzo6QjM6OnJ1bik6CisKIDIwMTYtMTAtMTMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtXaW42NF0gQ29tcGlsZSBmaXguCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYWFlNzFiNDJmMDQ1MmM4NTRlOThjNGU4OTNiMWI4Yzdm
ZjNjYWZhZi4uMGZkYjhkZGNlYWY3MzZkODNmZGI1MDg0MDczZmY3MzQ5NzNiZWQ4NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTcyLDYgKzE3Miw3IEBAIHNldChKYXZh
U2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgYjMvQjNWYWx1ZVJlcC5jcHAKICAgICBiMy9CM1Zhcmlh
YmxlLmNwcAogICAgIGIzL0IzVmFyaWFibGVWYWx1ZS5jcHAKKyAgICBiMy9CM1dhc21BZGRyZXNz
VmFsdWUuY3BwCiAgICAgYjMvQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5jcHAKIAogICAgIGJpbmRp
bmdzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMTA4ZmU4YWUwZjk0YjlmNzQ3MzRkNzgxODhmMGNmNWNmYzhhMTgxOS4uZWU4YzdmOWJmMzA5
ZTg5Zjc5NTIxZjQxNGQyNjI3YjdhYjMzYWVjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEyMjEsNiArMTIyMSw4IEBACiAJCTUzOUVCMDdBMUQ1NTYwNzAwMEM4MkVGNyAvKiBK
YXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzJGNUJEOTA4MjJBMUM3MDA3MzY5NzUgLyogSmF2YVNjcmlwdENv
cmUuZnJhbWV3b3JrICovOyB9OwogCQk1MzlFQjA4MTFENTU2MDhBMDBDODJFRjcgLyogdGVzdFdB
U00uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM5
RUIwNzExRDU1M0RGODAwQzgyRUY3IC8qIHRlc3RXQVNNLmNwcCAqLzsgfTsKIAkJNTM5RkI4QkEx
Qzk5REE3QzAwOTQwRkExIC8qIEpTQXJyYXlJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzlGQjhCOTFDOTlEQTdDMDA5NDBGQTEgLyogSlNB
cnJheUlubGluZXMuaCAqLzsgfTsKKwkJNTNENDQ0REMxREFGMDhBQjAwQjkyNzg0IC8qIEIzV2Fz
bUFkZHJlc3NWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTNENDQ0REIxREFGMDhBQjAwQjkyNzg0IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5oICov
OyB9OworCQk1M0Q0NDRERTFEQUYwOUEwMDBCOTI3ODQgLyogQjNXYXNtQWRkcmVzc1ZhbHVlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRDQ0NERE
MURBRjA5QTAwMEI5Mjc4NCAvKiBCM1dhc21BZGRyZXNzVmFsdWUuY3BwICovOyB9OwogCQk1M0Y0
MEU4NTFENThGOTc3MDA5OUExQjYgLyogV0FTTVNlY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0Y0MEU4NDFENThGOTc3MDA5OUExQjYgLyog
V0FTTVNlY3Rpb25zLmggKi87IH07CiAJCTUzRjQwRThCMUQ1OTAxQkIwMDk5QTFCNiAvKiBXQVNN
RnVuY3Rpb25QYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzRjQwRThBMUQ1OTAxQkIwMDk5QTFCNiAvKiBXQVNNRnVuY3Rpb25QYXJzZXIuaCAq
LzsgfTsKIAkJNTNGNDBFOEQxRDU5MDFGMjAwOTlBMUI2IC8qIFdBU01QYXJzZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjQwRThDMUQ1OTAxRjIw
MDk5QTFCNiAvKiBXQVNNUGFyc2VyLmggKi87IH07CkBAIC0zNDYxLDYgKzM0NjMsOCBAQAogCQk1
MzlFQjA3MTFENTUzREY4MDBDODJFRjcgLyogdGVzdFdBU00uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gdGVzdFdBU00uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MzlFQjA4MDFENTU2MDcwMDBDODJFRjcgLyogdGVzdFdBU00gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhl
Y3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IHRlc3RXQVNNOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MzlGQjhCOTFDOTlEQTdDMDA5NDBGQTEgLyog
SlNBcnJheUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcnJh
eUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTNENDQ0REIxREFGMDhB
QjAwQjkyNzg0IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBCM1dhc21BZGRyZXNzVmFsdWUuaDsgcGF0aCA9IGIzL0IzV2FzbUFkZHJlc3NW
YWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1M0Q0NDRERDFEQUYwOUEwMDBC
OTI3ODQgLyogQjNXYXNtQWRkcmVzc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEIzV2FzbUFkZHJlc3NWYWx1ZS5jcHA7IHBhdGggPSBiMy9CM1dhc21BZGRy
ZXNzVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0YyNTZFMTFCODdF
MjgwMDBCNEI3NjggLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNGNDBFODQxRDU4Rjk3NzAwOTlBMUI2IC8q
IFdBU01TZWN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXQVNNU2Vj
dGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNGNDBFOEExRDU5MDFCQjAw
OTlBMUI2IC8qIFdBU01GdW5jdGlvblBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXQVNNRnVuY3Rpb25QYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTUwMDUsNiArNTAwOSw4IEBACiAJCQkJMEYyQkJEOTMxQzVGRjNGNTAwMjNFRjIzIC8qIEIz
VmFyaWFibGUuaCAqLywKIAkJCQkwRjJCQkQ5NDFDNUZGM0Y1MDAyM0VGMjMgLyogQjNWYXJpYWJs
ZVZhbHVlLmNwcCAqLywKIAkJCQkwRjJCQkQ5NTFDNUZGM0Y1MDAyM0VGMjMgLyogQjNWYXJpYWJs
ZVZhbHVlLmggKi8sCisJCQkJNTNENDQ0REQxREFGMDlBMDAwQjkyNzg0IC8qIEIzV2FzbUFkZHJl
c3NWYWx1ZS5jcHAgKi8sCisJCQkJNTNENDQ0REIxREFGMDhBQjAwQjkyNzg0IC8qIEIzV2FzbUFk
ZHJlc3NWYWx1ZS5oICovLAogCQkJCTBGRUM4NUFFMUJEQjVENUUwMDgwRkY3NCAvKiB0ZXN0YjMu
Y3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSBiMzsKQEAgLTcyNDgsNiArNzI1NCw3IEBACiAJCQkJ
MEYzNzMwOTMxQzBENjdFRTAwMDUyQkZBIC8qIEFpclVzZUNvdW50cy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY0NTcwMzkxQkU0NEM5MTAwNjJBNjI5IC8qIEFpckVsaW1pbmF0ZURlYWRDb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3OUIwMENCRDFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlDb25z
dHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTNENDQ0REMxREFGMDhBQjAwQjkyNzg0IC8q
IEIzV2FzbUFkZHJlc3NWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTkwREE2N0YxQzhFMzE2
QTAwMjk1MTU5IC8qIGdlbmVyYXRlX29iamNfcHJvdG9jb2xfdHlwZV9jb252ZXJzaW9uc19pbXBs
ZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAogCQkJCURDMTdFODE5MUM5QzkxREIwMDhBNkFC
MyAvKiBTaGFkb3dDaGlja2VuSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREMxN0U4MTgx
QzlDOTFEOTAwOEE2QUIzIC8qIFNoYWRvd0NoaWNrZW4uaCBpbiBIZWFkZXJzICovLApAQCAtOTc4
Niw2ICs5NzkzLDcgQEAKIAkJCQkwRjkxOUQyNTE1ODUzQ0UwMDA0QTRFN0QgLyogV2F0Y2hwb2lu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUNGNzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vh
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEU4NEY5RTE0RUUxQUNDMDBENkQ1RDQgLyogV2Vh
a0Jsb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUzRDQ0NERFMURBRjA5QTAwMEI5Mjc4NCAv
KiBCM1dhc21BZGRyZXNzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRGNzI1NjUxNEVF
MjY1RTAwQjE2NTJCIC8qIFdlYWtIYW5kbGVPd25lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
N0NBM0FFMzE3REE0MUFFMDA2NTM4QUYgLyogV2Vha01hcENvbnN0cnVjdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMzM4REY5MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNM
b3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3Bw
CmluZGV4IDVjODljYmRiOTY5MjczM2Q0NDczMWY2YWI1NmQ4ZDFhYWM3NmYyMDMuLjcxOGI2ZGVi
NTkzYjVjYjE0OGQzMmE5Y2NkMTk3OGE5MmJmNjFmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiQjNWYWx1
ZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJs
ZVZhbHVlLmgiCisjaW5jbHVkZSAiQjNXYXNtQWRkcmVzc1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3Rm
L0luZGV4TWFwLmg+CiAjaW5jbHVkZSA8d3RmL0luZGV4U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xp
c3REdW1wLmg+CkBAIC01MDgsNiArNTA5LDI1IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgU2xv
dEJhc2U6CiAgICAgICAgICAgICByZXR1cm4gQXJnOjpzdGFjayhtX3N0YWNrVG9TdGFjay5nZXQo
YWRkcmVzcy0+YXM8U2xvdEJhc2VWYWx1ZT4oKS0+c2xvdCgpKSwgb2Zmc2V0KTsKIAorICAgICAg
ICBjYXNlIFdhc21BZGRyZXNzOiB7CisgICAgICAgICAgICBXYXNtQWRkcmVzc1ZhbHVlKiB3YXNt
QWRkcmVzcyA9IGFkZHJlc3MtPmFzPFdhc21BZGRyZXNzVmFsdWU+KCk7CisgICAgICAgICAgICBW
YWx1ZSogcG9pbnRlciA9IHdhc21BZGRyZXNzLT5jaGlsZCgwKTsKKyAgICAgICAgICAgIEFTU0VS
VChBcmc6OmlzVmFsaWRJbmRleEZvcm0oMSwgb2Zmc2V0LCB3aWR0aCkpOworICAgICAgICAgICAg
aWYgKG1fbG9ja2VkLmNvbnRhaW5zKHBvaW50ZXIpKQorICAgICAgICAgICAgICAgIHJldHVybiBm
YWxsYmFjaygpOworCisgICAgICAgICAgICAvLyBXZSB3b3VsZCBmdXJ0aGVyIHBhdHRlcm4gbWF0
Y2ggb24gdGhlIG9wY29kZSBvZiB0aGUgcG9pbnRlciBhbmQKKyAgICAgICAgICAgIC8vIHRyeSB0
byBjb25zdHJ1Y3QgYSBtb3JlIGNvbXBsZXRlIGFkZHJlc3NpbmcgbW9kZS4gQnV0IHNpbmNlIGFu
eQorICAgICAgICAgICAgLy8gbWF0aCBvbiB0aGUgcG9pbnRlciB3b3VsZCBiZSAzMi1iaXQgdGhl
cmUgaXMgbm90IG11Y2ggd2UgY2FuIGRvLgorCisgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIHN1cHBvcnQgQVJNNjQgTERSIDMyLWJpdCBhZGRyZXNzaW5nLCB3aGljaCB3aWxsCisgICAg
ICAgICAgICAvLyBhbGxvdyB1cyB0byBmdXNlIGEgU2hsIHB0ciwgMiBpbnRvIHRoZSBhZGRyZXNz
LiBBZGRpdGlvbmFsbHksIGFuZAorICAgICAgICAgICAgLy8gcGVyaGFwcyBtb3JlIGltcG9ydGFu
dGx5LCBpdCB3b3VsZCBhbGxvdyB1cyB0byBhdm9pZCBhIHRydW5jYXRpbmcKKyAgICAgICAgICAg
IC8vIG1vdmUuCisKKyAgICAgICAgICAgIHJldHVybiBBcmc6OmluZGV4KEFpcjo6VG1wKHdhc21B
ZGRyZXNzLT5waW5uZWRHUFIoKSksIHRtcChwb2ludGVyKSwgMSwgb2Zmc2V0KTsKKyAgICAgICAg
fQorCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsbGJhY2soKTsKICAg
ICAgICAgfQpAQCAtMjI3Niw3ICsyMjk2LDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBhcHBl
bmRTdG9yZShBaXI6OlN0b3JlMTYsIHZhbHVlVG9TdG9yZSwgYWRkcihtX3ZhbHVlKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgICAgIAorCisgICAgICAgIGNhc2Ug
V2FzbUFkZHJlc3M6IHsKKyAgICAgICAgICAgIFdhc21BZGRyZXNzVmFsdWUqIGFkZHJlc3MgPSBt
X3ZhbHVlLT5hczxXYXNtQWRkcmVzc1ZhbHVlPigpOworCisgICAgICAgICAgICBhcHBlbmQoQWRk
NjQsIEFyZyhhZGRyZXNzLT5waW5uZWRHUFIoKSksIHRtcChhZGRyZXNzKSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIEZlbmNlOiB7CiAgICAgICAgICAg
ICBGZW5jZVZhbHVlKiBmZW5jZSA9IG1fdmFsdWUtPmFzPEZlbmNlVmFsdWU+KCk7CiAgICAgICAg
ICAgICBpZiAoIWZlbmNlLT53cml0ZSAmJiAhZmVuY2UtPnJlYWQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzT3Bjb2RlLmNwcAppbmRleCBlMTAwZDNiMzlmZjUyYzIyMjgyY2NkN2NkNTk5NzFlY2Fj
MjQ3N2QwLi4wMjA4YjMzOWQyYmE0NWYyMjRhOGJiMTVhNmI3MzI3NzlhNTA0Mzg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKQEAgLTI1MSw2ICsyNTEsOSBAQCB2b2lkIHBy
aW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3Bjb2RlIG9wY29kZSkKICAgICBjYXNlIFN0
b3JlOgogICAgICAgICBvdXQucHJpbnQoIlN0b3JlIik7CiAgICAgICAgIHJldHVybjsKKyAgICBj
YXNlIFdhc21BZGRyZXNzOgorICAgICAgICBvdXQucHJpbnQoIldhc21BZGRyZXNzIik7CisgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIEZlbmNlOgogICAgICAgICBvdXQucHJpbnQoIkZlbmNlIik7
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M09wY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKaW5kZXggZTMy
ZTlkMzAyMGRmNjM5NmQwNjAyOWM3ZmE1NTIzMzk4OTgwZTI5MC4uNmZjYWEzMTE2NjcxZDY0NTlk
NDJkZDc5YmJiODNiYmQ5M2ZiOGE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzT3Bjb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgK
QEAgLTE1Nyw2ICsxNTcsMTIgQEAgZW51bSBPcGNvZGUgOiBpbnQxNl90IHsKICAgICBTdG9yZTE2
LAogICAgIC8vIFRoaXMgaXMgYSBwb2x5bW9ycGhpYyBzdG9yZSBmb3IgSW50MzIsIEludDY0LCBG
bG9hdCwgYW5kIERvdWJsZS4KICAgICBTdG9yZSwKKworICAgIC8vIFRoaXMgaXMgdXNlZCB0byBj
b21wdXRlIHRoZSBhY3R1YWwgYWRkcmVzcyBvZiBhIFdhc20gbWVtb3J5IG9wZXJhdGlvbi4gSXQg
dGFrZXMgYW4gSW50UHRyCisgICAgLy8gYW5kIGEgcGlubmVkIHJlZ2lzdGVyIHRoZW4gY29tcHV0
ZXMgdGhlIGFwcHJvcHJpYXRlIEludFB0ciBhZGRyZXNzLiBGb3IgdGhlIHVzZS1jYXNlIG9mCisg
ICAgLy8gV2FzbSBpdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgZmlyc3QgY2hpbGQgaW5pdGlhbGx5
IGJlIGEgWkV4dDMyIHNvIHRoZSB0b3AgYml0cyBhcmUgY2xlYXJlZC4KKyAgICAvLyBXZSBkbyBX
YXNtQWRkcmVzcyhaRXh0MzIocHRyKSwgLi4uKSBzbyB0aGF0IHdlIGNhbiBhdm9pZCBnZW5lcmF0
aW5nIGV4dHJhbmVvdXMgbW92ZXMgaW4gQWlyLgorICAgIFdhc21BZGRyZXNzLAogICAgIAogICAg
IC8vIFRoaXMgaXMgdXNlZCB0byByZXByZXNlbnQgc3RhbmRhbG9uZSBmZW5jZXMgLSBpLmUuIGZl
bmNlcyB0aGF0IGFyZSBub3QgcGFydCBvZiBvdGhlcgogICAgIC8vIGluc3RydWN0aW9ucy4gSXQn
cyBleHByZXNzaXZlIGVub3VnaCB0byBleHBvc2UgbWZlbmNlIG9uIHg4NiBhbmQgZG1iIGlzaC9p
c2hzdCBvbiBBUk0uIE9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWxpZGF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKaW5k
ZXggYjA2MzQ0ZTQwNTdiZjMxMWRkNmU2ZjZlMTM3YzFmMDFkZDA3MDk5ZC4uM2MwMDJlZDg0NTI5
ZTU2NGIzNjBhM2U2Y2E4ZTYzNjcyYThjN2Y2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbGlkYXRlLmNwcApAQCAtMzcxLDYgKzM3MSwxMiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwogICAg
ICAgICAgICAgICAgIHZhbGlkYXRlU3RhY2tBY2Nlc3ModmFsdWUpOwogICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBXYXNtQWRkcmVzczoKKyAgICAgICAgICAgICAgICBW
QUxJREFURSghdmFsdWUtPmtpbmQoKS5oYXNFeHRyYUJpdHMoKSwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0
ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5jaGlsZCgwKS0+
dHlwZSgpID09IHBvaW50ZXJUeXBlKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIsICp2YWx1
ZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDQ2FsbDoKICAg
ICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPmtpbmQoKS5oYXNFeHRyYUJpdHMoKSwgKCJB
dCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRy
ZW4oKSA+PSAxLCAoIkF0ICIsICp2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUu
Y3BwCmluZGV4IDViNDExOTg2MDZjNTY3YTc3ZDViZTg0MTJjNWE2ZWQ5NGU5Zjg3MzAuLjcxYjll
ZGE2ZGNmNDQ1NzIxYTI0N2U5NzI0YzMzYjJhNTMxNTAxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWx1ZS5jcHAKQEAgLTU4Niw2ICs1ODYsOSBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3Rz
KCkgY29uc3QKICAgICAgICAgcmVzdWx0LndyaXRlcyA9IGFzPE1lbW9yeVZhbHVlPigpLT5yYW5n
ZSgpOwogICAgICAgICByZXN1bHQuY29udHJvbERlcGVuZGVudCA9IHRydWU7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgV2FzbUFkZHJlc3M6CisgICAgICAgIHJlc3VsdC5yZWFkc1Bpbm5lZCA9
IHRydWU7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmVuY2U6IHsKICAgICAgICAgY29uc3Qg
RmVuY2VWYWx1ZSogZmVuY2UgPSBhczxGZW5jZVZhbHVlPigpOwogICAgICAgICByZXN1bHQucmVh
ZHMgPSBmZW5jZS0+cmVhZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1dhc21BZGRyZXNzVmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzV2FzbUFk
ZHJlc3NWYWx1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdkNzYyODUyNTg1OTBjOGMwN2Y4OTY3NmI2ZDVi
NzIyNjUzNzBlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1dhc21BZGRyZXNzVmFsdWUuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiQjNXYXNtQWRkcmVzc1ZhbHVlLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworV2FzbUFkZHJlc3NWYWx1ZTo6fldhc21BZGRyZXNz
VmFsdWUoKQoreworfQorCit2b2lkIFdhc21BZGRyZXNzVmFsdWU6OmR1bXBNZXRhKENvbW1hUHJp
bnRlciYgY29tbWEsIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgb3V0LnByaW50KGNv
bW1hLCBtX3Bpbm5lZEdQUik7Cit9CisKK1ZhbHVlKiBXYXNtQWRkcmVzc1ZhbHVlOjpjbG9uZUlt
cGwoKSBjb25zdAoreworICAgIHJldHVybiBuZXcgV2FzbUFkZHJlc3NWYWx1ZSgqdGhpcyk7Cit9
CisKK1dhc21BZGRyZXNzVmFsdWU6Oldhc21BZGRyZXNzVmFsdWUoT3JpZ2luIG9yaWdpbiwgVmFs
dWUqIHZhbHVlLCBHUFJSZWcgcGlubmVkR1BSKQorICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwg
V2FzbUFkZHJlc3MsIEludDY0LCBvcmlnaW4sIHZhbHVlKQorICAgICwgbV9waW5uZWRHUFIocGlu
bmVkR1BSKQoreworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVO
QUJMRShCM19KSVQpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dh
c21BZGRyZXNzVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dhc21BZGRyZXNz
VmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kOTM4NjAyNzU1YmM4MTc1YTJjN2E0N2NiODUyZDM1N2JhNmI4
ZGQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzV2FzbUFk
ZHJlc3NWYWx1ZS5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShCM19KSVQpCisK
KyNpbmNsdWRlICJCM1ZhbHVlLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewor
CitjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBXYXNtQWRkcmVzc1ZhbHVlIDogcHVibGljIFZhbHVl
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4g
a2luZCA9PSBXYXNtQWRkcmVzczsgfQorCisgICAgfldhc21BZGRyZXNzVmFsdWUoKTsKKworICAg
IEdQUlJlZyBwaW5uZWRHUFIoKSBjb25zdCB7IHJldHVybiBtX3Bpbm5lZEdQUjsgfQorCitwcm90
ZWN0ZWQ6CisgICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNv
bnN0IG92ZXJyaWRlOworCisgICAgVmFsdWUqIGNsb25lSW1wbCgpIGNvbnN0IG92ZXJyaWRlOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CisKKyAgICBXYXNtQWRkcmVz
c1ZhbHVlKE9yaWdpbiwgVmFsdWUqLCBHUFJSZWcpOworCisgICAgR1BSUmVnIG1fcGlubmVkR1BS
OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKworI2VuZGlmIC8vIEVOQUJMRShC
M19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4IGFjMzFjM2NmNjMxZGUx
ZjBjNTVmMWI3YjBmMDA5NmE2ZmEzOTczMTIuLjFlZjQxNmM2NWJhMDg4OTRjZDdjZmI1NTc1Y2E5
OTBiZDQyNjNlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC01NCw2ICs1
NCw3IEBACiAjaW5jbHVkZSAiQjNWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCisjaW5jbHVkZSAiQjNXYXNtQWRkcmVz
c1ZhbHVlLmgiCiAjaW5jbHVkZSAiQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oIgogI2luY2x1ZGUg
IkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkZQUkluZm8uaCIKQEAgLTEzNzYxLDYgKzEzNzYy
LDU1IEBAIHZvaWQgdGVzdFdhc21Cb3VuZHNDaGVjayh1bnNpZ25lZCBvZmZzZXQpCiAgICAgQ0hF
Q0tfRVEoaW52b2tlPGludDMyX3Q+KCpjb2RlLCAyLCAyICsgb2Zmc2V0KSwgNDIpOwogfQogCit2
b2lkIHRlc3RXYXNtQWRkcmVzcygpCisgICAgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAg
ICAgICAgR1BSUmVnIHBpbm5lZEdQUiA9IEdQUkluZm86OmFyZ3VtZW50R1BSMjsKKyAgICAgICAg
cHJvYy5waW5SZWdpc3RlcihwaW5uZWRHUFIpOworCisgICAgICAgIHVuc2lnbmVkIGxvb3BDb3Vu
dCA9IDEwMDsKKyAgICAgICAgVmVjdG9yPHVuc2lnbmVkPiB2YWx1ZXMobG9vcENvdW50KTsKKyAg
ICAgICAgdW5zaWduZWQgbnVtVG9TdG9yZSA9IDQyOworCisgICAgICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgICAgIEJhc2ljQmxvY2sqIGhlYWRlciA9IHByb2Mu
YWRkQmxvY2soKTsKKyAgICAgICAgQmFzaWNCbG9jayogYm9keSA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICAgICAgQmFzaWNCbG9jayogY29udGludWF0aW9uID0gcHJvYy5hZGRCbG9jaygpOworCisg
ICAgICAgIC8vIFJvb3QKKyAgICAgICAgVmFsdWUqIGxvb3BDb3VudFZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Cisg
ICAgICAgIFZhbHVlKiB2YWx1ZVRvU3RvcmUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKKyAgICAgICAgVXBzaWxvblZhbHVl
KiBiZWdpblVwc2lsb24gPSByb290LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmln
aW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigp
LCBoZWFkZXIpOworCisgICAgICAgIC8vIEhlYWRlcgorICAgICAgICBWYWx1ZSogaW5kZXhQaGkg
PSBoZWFkZXItPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwor
ICAgICAgICBoZWFkZXItPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAorICAgICAgICAgICAgaGVhZGVyLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJlbG93LCBP
cmlnaW4oKSwgaW5kZXhQaGksIGxvb3BDb3VudFZhbHVlKSwKKyAgICAgICAgICAgIGJvZHksIGNv
bnRpbnVhdGlvbik7CisKKyAgICAgICAgLy8gQm9keQorICAgICAgICBWYWx1ZSogcG9pbnRlciA9
IGJvZHktPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgaW5kZXhQaGksCisg
ICAgICAgICAgICBib2R5LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
c2l6ZW9mKHVuc2lnbmVkKSkpOworICAgICAgICBwb2ludGVyID0gYm9keS0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBaRXh0MzIsIE9yaWdpbigpLCBwb2ludGVyKTsKKyAgICAgICAgYm9keS0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlVG9TdG9yZSwK
KyAgICAgICAgICAgIGJvZHktPmFwcGVuZE5ldzxXYXNtQWRkcmVzc1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgcG9pbnRlciwgcGlubmVkR1BSKSk7CisgICAgICAgIFVwc2lsb25WYWx1ZSogaW5jVXBz
aWxvbiA9IGJvZHktPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLAorICAg
ICAgICAgICAgYm9keS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBpbmRl
eFBoaSwKKyAgICAgICAgICAgICAgICBib2R5LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMSkpKTsKKyAgICAgICAgYm9keS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBoZWFkZXIpOworCisgICAgICAgIC8vIENvbnRpbnVhdGlvbgor
ICAgICAgICBjb250aW51YXRpb24tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpKTsKKworICAgICAgICBiZWdpblVwc2lsb24tPnNldFBoaShpbmRleFBoaSk7Cisg
ICAgICAgIGluY1Vwc2lsb24tPnNldFBoaShpbmRleFBoaSk7CisKKworICAgICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOworICAgICAgICBpbnZva2U8dm9pZD4oKmNvZGUsIGxvb3BDb3Vu
dCwgbnVtVG9TdG9yZSwgdmFsdWVzLmRhdGEoKSk7CisgICAgfQorCiAvLyBNYWtlIHN1cmUgdGhl
IGNvbXBpbGVyIGRvZXMgbm90IHRyeSB0byBvcHRpbWl6ZSBhbnl0aGluZyBvdXQuCiBORVZFUl9J
TkxJTkUgZG91YmxlIHplcm8oKQogewpAQCAtMTUyMDUsNiArMTUyNTUsNyBAQCB2b2lkIHJ1bihj
b25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHRlc3RXYXNtQm91bmRzQ2hlY2soMTAwKSk7CiAg
ICAgUlVOKHRlc3RXYXNtQm91bmRzQ2hlY2soMTAwMDApKTsKICAgICBSVU4odGVzdFdhc21Cb3Vu
ZHNDaGVjayhzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgLSA1KSk7CisgICAg
UlVOKHRlc3RXYXNtQWRkcmVzcygpKTsKIAogICAgIGlmIChpc1g4NigpKSB7CiAgICAgICAgIFJV
Tih0ZXN0QnJhbmNoQml0QW5kSW1tRnVzaW9uKElkZW50aXR5LCBJbnQ2NCwgMSwgQWlyOjpCcmFu
Y2hUZXN0MzIsIEFpcjo6QXJnOjpUbXApKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3dlYmtpdC5v
cmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cKaW5kZXggNmNlMTNk
ODE2NjhiYWUwMGU4ODlkZDcyMWRiNDMwMGIyZmMzYTE4Yi4uMGUwY2MyZDlhYmExNGVlYzI3N2Jm
ZjdjMjlkM2IwMWJiODRhMDA5NyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFu
Z2VMb2cKKysrIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxNi0xMC0xNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBCMyBuZWVkcyBhIHNwZWNpYWwgV2FzbUFkZHJlc3MgT3Bjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMzOTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIGIzIGRvY3Mg
Zm9yIHRoZSBuZXcgV2FzbUFkZHJlc3Mgb3Bjb2RlLgorCisgICAgICAgICogZG9jcy9iMy9pbnRl
cm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbDoKKwogMjAxNi0xMC0xMiAgS2VpdGggTWlsbGVy
ICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBCMyBuZWVkcyBhIHNwZWNpYWwg
V2FzbUJvdW5kc0NoZWNrIE9wY29kZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy9k
b2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sIGIvV2Vic2l0ZXMvd2Via2l0
Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCmluZGV4IDYyYWM5
N2NiM2NlYTQ2ZGFiYmUwZjg0NmM3MWU2ZGJmMmM5NzM5N2EuLjczYmZmNTc1ZTQzMGM0NjhlYTE5
ZmRlODg5OTM5NWQ0ODQxNGM4YTUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvZG9j
cy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAorKysgYi9XZWJzaXRlcy93ZWJr
aXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwKQEAgLTQyMyw3
ICs0MjMsMTIgQEAKICAgICAgIDxkZD5TdG9yZXMgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBjaGls
ZCBpbnRvIHRoZSBhZGRyZXNzIGNvbXB1dGVkIGJ5IGFkZGluZyB0aGUKICAgICAgICAgY29tcGls
ZS10aW1lIDMyLWJpdCBzaWduZWQgaW50ZWdlciBvZmZzZXQgdG8gdGhlIHNlY29uZCBjaGlsZC4g
IE1pc2FsaWduZWQgc3RvcmVzIGFyZQogICAgICAgICBub3QgcGVuYWxpemVkLiAgTXVzdCB1c2Ug
dGhlIE1lbW9yeVZhbHVlIGNsYXNzLiAgTWF5IGhhdmUgdGhlIFRyYXBzIGZsYWcgc2V0LjwvZGQ+
Ci0gICAgICAKKworICAgICAgPGR0PkludFB0ciBXYXNtQWRkcmVzcyhJbnRQdHIsIHBpbm5lZEdQ
Uik8L2R0PgorICAgICAgPGRkPlRoaXMgaXMgdXNlZCB0byBjb21wdXRlIHRoZSBhZGRyZXNzIG9m
IGEgd2FzbSBtZW1vcnkgbG9hZCBmcm9tIGEgcGlubmVkIGJhc2UgR1BSLgorICAgICAgICBNdXN0
IHVzZSB0aGUgV2FzbUFkZHJlc3NWYWx1ZSBjbGFzcy48L2RkPgorCisKICAgICAgIDxkdD5Wb2lk
IEZlbmNlKCk8L2R0PgogICAgICAgPGRkPkFic3RyYWN0cyBzdGFuZGFsb25lIGRhdGEgZmVuY2Vz
IG9uIHg4NiBhbmQgQVJNLiBNdXN0IHVzZSB0aGUgRmVuY2VWYWx1ZSBjbGFzcywgd2hpY2ggaGFz
CiAgICAgICAgIHR3byBhZGRpdGlvbmFsIG1lbWJlcnMgdGhhdCBjb25maWd1cmUgdGhlIHByZWNp
c2UgbWVhbmluZyBvZiB0aGUgZmVuY2U6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291677</attachid>
            <date>2016-10-14 16:08:06 -0700</date>
            <delta_ts>2016-10-14 16:22:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-163394-20161014160438.patch</filename>
            <type>text/plain</type>
            <size>21974</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3MjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ODExM2M5Nzk4NTYwOTM5ODA0M2ExYTcwOGVkMDFkNTE2NTA2NWFjLi4wMmFjYzNmOTExMzQ2MjM3
ZDNlYjMzM2YxMDQ5ZDkyNGQ3MDI4YTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNi0xMC0xNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBCMyBuZWVkcyBhIHNwZWNpYWwgV2FzbUFkZHJlc3MgT3Bjb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMzOTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAgICBUaGlzIHBhdGNoIGFk
ZHMgc3VwcG9ydCBmb3IgV2FzbUFkZHJlc3MuIFdhc21BZGRyZXNzIHdpbGwgYmUgdXNlZCBieQor
ICAgICAgICBXYXNtIHRvIGNvbXB1dGUgdGhlIGFkZHJlc3Mgb2YgYSBtZW1vcnkgb3BlcmF0aW9u
IGZyb20gdGhlIHBpbm5lZAorICAgICAgICBiYXNlIHBvaW50ZXIuIFdhc21BZGRyZXNzIHRha2Vz
IGFuIEludFB0ciBzbyB3ZSBjYW4gYXZvaWQgZW1pdHRpbmcKKyAgICAgICAgdW5uZWNlc3Nhcnkg
TW92ZTMycyBpbiBBaXIuIFRoaXMgY291bGQgaGFwcGVuIGluIHRoZSBmb2xsb3dpbmcgY2FzZToK
KworICAgICAgICBAcHRyID0gVHJ1bmMoLi4uKQorICAgICAgICBXYXNtQWRkcmVzcyhAcHRyLCBw
aW5uZWRHUFIpCisgICAgICAgIC4uLgorICAgICAgICBQYXRjaFBvaW50KC4uLikgLy8gRG8gV2Fz
bSBjYWxsCisgICAgICAgIFdhc21BZGRyZXNzKEBwdHIsIHBpbm5lZEdQUikKKyAgICAgICAgLi4u
CisKKyAgICAgICAgSW4gdGhpcyBjYXNlIHdlIHdpbGwgbm90IGJlIGFibGUgdG8gQ1NFIHRoZSBX
YXNtQWRkcmVzc2VzIHNpbmNlIHRoZQorICAgICAgICBjYWxsIHdyaXRlcyB0byBwaW5uZWRHUFIu
IFRodXMgaWYgV2FzbUFkZHJlc3MgdG9vayBhbiBJbnQzMiB3ZSB3b3VsZCBuZWVkCisgICAgICAg
IHRvIGVtaXQgYW4gZXh0cmEgTW92ZTMyIGF0IHRoZSBzZWNvbmQgV2FzbUFkZHJlc3MgdG8gZW5z
dXJlIGl0IHNhdyBhIHByb3BlcgorICAgICAgICAzMi1iaXQgdmFsdWUuIElmIFdhc20gZW5zdXJl
cyB0aGF0IHRoZXJlIHRoZXJlIGlzIGEgbGVhZGluZyBaRXh0MzIgdGhlbgorICAgICAgICB0aGUg
ZHVwbGljYXRlZCBtb3ZlcyBiZWNvbWUgdW5uZWNlc3NhcnkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpB
aXI6Okxvd2VyVG9BaXI6OmVmZmVjdGl2ZUFkZHIpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpM
b3dlclRvQWlyOjpsb3dlcik6CisgICAgICAgICogYjMvQjNPcGNvZGUuY3BwOgorICAgICAgICAo
V1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5oOgorICAgICAgICAq
IGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAo
SlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAgICAgICAqIGIzL0IzV2FzbUFkZHJlc3NWYWx1
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpCMzo6V2FzbUFkZHJlc3NWYWx1ZTo6fldhc21B
ZGRyZXNzVmFsdWUpOgorICAgICAgICAoSlNDOjpCMzo6V2FzbUFkZHJlc3NWYWx1ZTo6ZHVtcE1l
dGEpOgorICAgICAgICAoSlNDOjpCMzo6V2FzbUFkZHJlc3NWYWx1ZTo6Y2xvbmVJbXBsKToKKyAg
ICAgICAgKEpTQzo6QjM6Oldhc21BZGRyZXNzVmFsdWU6Oldhc21BZGRyZXNzVmFsdWUpOgorICAg
ICAgICAqIGIzL0IzV2FzbUFkZHJlc3NWYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBiMy90ZXN0
YjMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFdhc21BZGRyZXNzKToKKyAgICAgICAgKEpT
Qzo6QjM6OnJ1bik6CisKIDIwMTYtMTAtMTMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXaW42NF0gQ29tcGlsZSBmaXguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggYWFlNzFiNDJmMDQ1MmM4NTRlOThjNGU4OTNiMWI4YzdmZjNj
YWZhZi4uMGZkYjhkZGNlYWY3MzZkODNmZGI1MDg0MDczZmY3MzQ5NzNiZWQ4NCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTcyLDYgKzE3Miw3IEBAIHNldChKYXZhU2Ny
aXB0Q29yZV9TT1VSQ0VTCiAgICAgYjMvQjNWYWx1ZVJlcC5jcHAKICAgICBiMy9CM1ZhcmlhYmxl
LmNwcAogICAgIGIzL0IzVmFyaWFibGVWYWx1ZS5jcHAKKyAgICBiMy9CM1dhc21BZGRyZXNzVmFs
dWUuY3BwCiAgICAgYjMvQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5jcHAKIAogICAgIGJpbmRpbmdz
L1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MTA4ZmU4YWUwZjk0YjlmNzQ3MzRkNzgxODhmMGNmNWNmYzhhMTgxOS4uZWU4YzdmOWJmMzA5ZTg5
Zjc5NTIxZjQxNGQyNjI3YjdhYjMzYWVjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEyMjEsNiArMTIyMSw4IEBACiAJCTUzOUVCMDdBMUQ1NTYwNzAwMEM4MkVGNyAvKiBKYXZh
U2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzJGNUJEOTA4MjJBMUM3MDA3MzY5NzUgLyogSmF2YVNjcmlwdENvcmUu
ZnJhbWV3b3JrICovOyB9OwogCQk1MzlFQjA4MTFENTU2MDhBMDBDODJFRjcgLyogdGVzdFdBU00u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM5RUIw
NzExRDU1M0RGODAwQzgyRUY3IC8qIHRlc3RXQVNNLmNwcCAqLzsgfTsKIAkJNTM5RkI4QkExQzk5
REE3QzAwOTQwRkExIC8qIEpTQXJyYXlJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzlGQjhCOTFDOTlEQTdDMDA5NDBGQTEgLyogSlNBcnJh
eUlubGluZXMuaCAqLzsgfTsKKwkJNTNENDQ0REMxREFGMDhBQjAwQjkyNzg0IC8qIEIzV2FzbUFk
ZHJlc3NWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTNENDQ0REIxREFGMDhBQjAwQjkyNzg0IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5oICovOyB9
OworCQk1M0Q0NDRERTFEQUYwOUEwMDBCOTI3ODQgLyogQjNXYXNtQWRkcmVzc1ZhbHVlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRDQ0NEREMURB
RjA5QTAwMEI5Mjc4NCAvKiBCM1dhc21BZGRyZXNzVmFsdWUuY3BwICovOyB9OwogCQk1M0Y0MEU4
NTFENThGOTc3MDA5OUExQjYgLyogV0FTTVNlY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0Y0MEU4NDFENThGOTc3MDA5OUExQjYgLyogV0FT
TVNlY3Rpb25zLmggKi87IH07CiAJCTUzRjQwRThCMUQ1OTAxQkIwMDk5QTFCNiAvKiBXQVNNRnVu
Y3Rpb25QYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUzRjQwRThBMUQ1OTAxQkIwMDk5QTFCNiAvKiBXQVNNRnVuY3Rpb25QYXJzZXIuaCAqLzsg
fTsKIAkJNTNGNDBFOEQxRDU5MDFGMjAwOTlBMUI2IC8qIFdBU01QYXJzZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjQwRThDMUQ1OTAxRjIwMDk5
QTFCNiAvKiBXQVNNUGFyc2VyLmggKi87IH07CkBAIC0zNDYxLDYgKzM0NjMsOCBAQAogCQk1MzlF
QjA3MTFENTUzREY4MDBDODJFRjcgLyogdGVzdFdBU00uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gdGVzdFdBU00uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MzlFQjA4MDFENTU2MDcwMDBDODJFRjcgLyogdGVzdFdBU00gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0
YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IHRlc3RXQVNNOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MzlGQjhCOTFDOTlEQTdDMDA5NDBGQTEgLyogSlNB
cnJheUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcnJheUlu
bGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTNENDQ0REIxREFGMDhBQjAw
QjkyNzg0IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBCM1dhc21BZGRyZXNzVmFsdWUuaDsgcGF0aCA9IGIzL0IzV2FzbUFkZHJlc3NWYWx1
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1M0Q0NDRERDFEQUYwOUEwMDBCOTI3
ODQgLyogQjNXYXNtQWRkcmVzc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEIzV2FzbUFkZHJlc3NWYWx1ZS5jcHA7IHBhdGggPSBiMy9CM1dhc21BZGRyZXNz
VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0YyNTZFMTFCODdFMjgw
MDBCNEI3NjggLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNGNDBFODQxRDU4Rjk3NzAwOTlBMUI2IC8qIFdB
U01TZWN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXQVNNU2VjdGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNGNDBFOEExRDU5MDFCQjAwOTlB
MUI2IC8qIFdBU01GdW5jdGlvblBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXQVNNRnVuY3Rpb25QYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUwMDUsNiArNTAwOSw4IEBACiAJCQkJMEYyQkJEOTMxQzVGRjNGNTAwMjNFRjIzIC8qIEIzVmFy
aWFibGUuaCAqLywKIAkJCQkwRjJCQkQ5NDFDNUZGM0Y1MDAyM0VGMjMgLyogQjNWYXJpYWJsZVZh
bHVlLmNwcCAqLywKIAkJCQkwRjJCQkQ5NTFDNUZGM0Y1MDAyM0VGMjMgLyogQjNWYXJpYWJsZVZh
bHVlLmggKi8sCisJCQkJNTNENDQ0REQxREFGMDlBMDAwQjkyNzg0IC8qIEIzV2FzbUFkZHJlc3NW
YWx1ZS5jcHAgKi8sCisJCQkJNTNENDQ0REIxREFGMDhBQjAwQjkyNzg0IC8qIEIzV2FzbUFkZHJl
c3NWYWx1ZS5oICovLAogCQkJCTBGRUM4NUFFMUJEQjVENUUwMDgwRkY3NCAvKiB0ZXN0YjMuY3Bw
ICovLAogCQkJKTsKIAkJCW5hbWUgPSBiMzsKQEAgLTcyNDgsNiArNzI1NCw3IEBACiAJCQkJMEYz
NzMwOTMxQzBENjdFRTAwMDUyQkZBIC8qIEFpclVzZUNvdW50cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY0NTcwMzkxQkU0NEM5MTAwNjJBNjI5IC8qIEFpckVsaW1pbmF0ZURlYWRDb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3OUIwMENCRDFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlDb25zdHJ1
Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTNENDQ0REMxREFGMDhBQjAwQjkyNzg0IC8qIEIz
V2FzbUFkZHJlc3NWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTkwREE2N0YxQzhFMzE2QTAw
Mjk1MTU5IC8qIGdlbmVyYXRlX29iamNfcHJvdG9jb2xfdHlwZV9jb252ZXJzaW9uc19pbXBsZW1l
bnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAogCQkJCURDMTdFODE5MUM5QzkxREIwMDhBNkFCMyAv
KiBTaGFkb3dDaGlja2VuSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREMxN0U4MTgxQzlD
OTFEOTAwOEE2QUIzIC8qIFNoYWRvd0NoaWNrZW4uaCBpbiBIZWFkZXJzICovLApAQCAtOTc4Niw2
ICs5NzkzLDcgQEAKIAkJCQkwRjkxOUQyNTE1ODUzQ0UwMDA0QTRFN0QgLyogV2F0Y2hwb2ludC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUNGNzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEU4NEY5RTE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha0Js
b2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUzRDQ0NERFMURBRjA5QTAwMEI5Mjc4NCAvKiBC
M1dhc21BZGRyZXNzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRGNzI1NjUxNEVFMjY1
RTAwQjE2NTJCIC8qIFdlYWtIYW5kbGVPd25lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0NB
M0FFMzE3REE0MUFFMDA2NTM4QUYgLyogV2Vha01hcENvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGMzM4REY5MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dl
clRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmlu
ZGV4IDVjODljYmRiOTY5MjczM2Q0NDczMWY2YWI1NmQ4ZDFhYWM3NmYyMDMuLmExMzQ5M2Q1NjQ5
NDg0YmZlZjUwMTEwZDU2NjRkMjBiZDBlMmEyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0xvd2VyVG9BaXIuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiQjNWYWx1ZUlu
bGluZXMuaCIKICNpbmNsdWRlICJCM1ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZVZh
bHVlLmgiCisjaW5jbHVkZSAiQjNXYXNtQWRkcmVzc1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL0lu
ZGV4TWFwLmg+CiAjaW5jbHVkZSA8d3RmL0luZGV4U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RE
dW1wLmg+CkBAIC01MDgsNiArNTA5LDIxIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgU2xvdEJh
c2U6CiAgICAgICAgICAgICByZXR1cm4gQXJnOjpzdGFjayhtX3N0YWNrVG9TdGFjay5nZXQoYWRk
cmVzcy0+YXM8U2xvdEJhc2VWYWx1ZT4oKS0+c2xvdCgpKSwgb2Zmc2V0KTsKIAorICAgICAgICBj
YXNlIFdhc21BZGRyZXNzOiB7CisgICAgICAgICAgICBXYXNtQWRkcmVzc1ZhbHVlKiB3YXNtQWRk
cmVzcyA9IGFkZHJlc3MtPmFzPFdhc21BZGRyZXNzVmFsdWU+KCk7CisgICAgICAgICAgICBWYWx1
ZSogcG9pbnRlciA9IHdhc21BZGRyZXNzLT5jaGlsZCgwKTsKKyAgICAgICAgICAgIEFTU0VSVChB
cmc6OmlzVmFsaWRJbmRleEZvcm0oMSwgb2Zmc2V0LCB3aWR0aCkpOworICAgICAgICAgICAgaWYg
KG1fbG9ja2VkLmNvbnRhaW5zKHBvaW50ZXIpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxs
YmFjaygpOworCisgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHN1cHBvcnQgQVJNNjQg
TERSIDMyLWJpdCBhZGRyZXNzaW5nLCB3aGljaCB3aWxsCisgICAgICAgICAgICAvLyBhbGxvdyB1
cyB0byBmdXNlIGEgU2hsIHB0ciwgMiBpbnRvIHRoZSBhZGRyZXNzLiBBZGRpdGlvbmFsbHksIGFu
ZAorICAgICAgICAgICAgLy8gcGVyaGFwcyBtb3JlIGltcG9ydGFudGx5LCBpdCB3b3VsZCBhbGxv
dyB1cyB0byBhdm9pZCBhIHRydW5jYXRpbmcKKyAgICAgICAgICAgIC8vIG1vdmUuIFNlZTogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQ2NQorCisgICAgICAgICAg
ICByZXR1cm4gQXJnOjppbmRleChUbXAod2FzbUFkZHJlc3MtPnBpbm5lZEdQUigpKSwgdG1wKHBv
aW50ZXIpLCAxLCBvZmZzZXQpOworICAgICAgICB9CisKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIHJldHVybiBmYWxsYmFjaygpOwogICAgICAgICB9CkBAIC0yMjc2LDcgKzIyOTIsMTQg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIGFwcGVuZFN0b3JlKEFpcjo6U3RvcmUxNiwgdmFsdWVU
b1N0b3JlLCBhZGRyKG1fdmFsdWUpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQot
ICAgICAgICAgICAgCisKKyAgICAgICAgY2FzZSBXYXNtQWRkcmVzczogeworICAgICAgICAgICAg
V2FzbUFkZHJlc3NWYWx1ZSogYWRkcmVzcyA9IG1fdmFsdWUtPmFzPFdhc21BZGRyZXNzVmFsdWU+
KCk7CisKKyAgICAgICAgICAgIGFwcGVuZChBZGQ2NCwgQXJnKGFkZHJlc3MtPnBpbm5lZEdQUigp
KSwgdG1wKGFkZHJlc3MpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAg
ICAgIGNhc2UgRmVuY2U6IHsKICAgICAgICAgICAgIEZlbmNlVmFsdWUqIGZlbmNlID0gbV92YWx1
ZS0+YXM8RmVuY2VWYWx1ZT4oKTsKICAgICAgICAgICAgIGlmICghZmVuY2UtPndyaXRlICYmICFm
ZW5jZS0+cmVhZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29k
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCmluZGV4IGUxMDBk
M2IzOWZmNTJjMjIyODJjY2Q3Y2Q1OTk3MWVjYWMyNDc3ZDAuLjAyMDhiMzM5ZDJiYTQ1ZjIyNGE4
YmIxNWE2YjczMjc3OWE1MDQzODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM09wY29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNw
cApAQCAtMjUxLDYgKzI1MSw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBPcGNvZGUgb3Bjb2RlKQogICAgIGNhc2UgU3RvcmU6CiAgICAgICAgIG91dC5wcmludCgiU3Rv
cmUiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgV2FzbUFkZHJlc3M6CisgICAgICAgIG91
dC5wcmludCgiV2FzbUFkZHJlc3MiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRmVuY2U6
CiAgICAgICAgIG91dC5wcmludCgiRmVuY2UiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNPcGNvZGUuaAppbmRleCBlMzJlOWQzMDIwZGY2Mzk2ZDA2MDI5YzdmYTU1MjMz
OTg5ODBlMjkwLi42ZmNhYTMxMTY2NzFkNjQ1OWQ0MmRkNzliYmI4M2JiZDkzZmI4YThlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaApAQCAtMTU3LDYgKzE1NywxMiBAQCBlbnVtIE9w
Y29kZSA6IGludDE2X3QgewogICAgIFN0b3JlMTYsCiAgICAgLy8gVGhpcyBpcyBhIHBvbHltb3Jw
aGljIHN0b3JlIGZvciBJbnQzMiwgSW50NjQsIEZsb2F0LCBhbmQgRG91YmxlLgogICAgIFN0b3Jl
LAorCisgICAgLy8gVGhpcyBpcyB1c2VkIHRvIGNvbXB1dGUgdGhlIGFjdHVhbCBhZGRyZXNzIG9m
IGEgV2FzbSBtZW1vcnkgb3BlcmF0aW9uLiBJdCB0YWtlcyBhbiBJbnRQdHIKKyAgICAvLyBhbmQg
YSBwaW5uZWQgcmVnaXN0ZXIgdGhlbiBjb21wdXRlcyB0aGUgYXBwcm9wcmlhdGUgSW50UHRyIGFk
ZHJlc3MuIEZvciB0aGUgdXNlLWNhc2Ugb2YKKyAgICAvLyBXYXNtIGl0IGlzIGltcG9ydGFudCB0
aGF0IHRoZSBmaXJzdCBjaGlsZCBpbml0aWFsbHkgYmUgYSBaRXh0MzIgc28gdGhlIHRvcCBiaXRz
IGFyZSBjbGVhcmVkLgorICAgIC8vIFdlIGRvIFdhc21BZGRyZXNzKFpFeHQzMihwdHIpLCAuLi4p
IHNvIHRoYXQgd2UgY2FuIGF2b2lkIGdlbmVyYXRpbmcgZXh0cmFuZW91cyBtb3ZlcyBpbiBBaXIu
CisgICAgV2FzbUFkZHJlc3MsCiAgICAgCiAgICAgLy8gVGhpcyBpcyB1c2VkIHRvIHJlcHJlc2Vu
dCBzdGFuZGFsb25lIGZlbmNlcyAtIGkuZS4gZmVuY2VzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIG90
aGVyCiAgICAgLy8gaW5zdHJ1Y3Rpb25zLiBJdCdzIGV4cHJlc3NpdmUgZW5vdWdoIHRvIGV4cG9z
ZSBtZmVuY2Ugb24geDg2IGFuZCBkbWIgaXNoL2lzaHN0IG9uIEFSTS4gT24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAppbmRleCBiMDYzNDRlNDA1N2JmMzExZGQ2ZTZmNmUx
MzdjMWYwMWRkMDcwOTlkLi4zYzAwMmVkODQ1MjllNTY0YjM2MGEzZTZjYThlNjM2NzJhOGM3ZjY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCkBAIC0zNzEsNiArMzcx
LDEyIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09
IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgdmFsaWRhdGVTdGFja0Fj
Y2Vzcyh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdh
c21BZGRyZXNzOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+a2luZCgpLmhhc0V4
dHJhQml0cygpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZh
bHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWUtPmNoaWxkKDApLT50eXBlKCkgPT0gcG9pbnRlclR5cGUoKSwgKCJB
dCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09
IHBvaW50ZXJUeXBlKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBjYXNlIENDYWxsOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1
ZS0+a2luZCgpLmhhc0V4dHJhQml0cygpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAg
ICAgIFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJlbigpID49IDEsICgiQXQgIiwgKnZhbHVlKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKaW5kZXggNWI0MTE5ODYwNmM1NjdhNzdk
NWJlODQxMmM1YTZlZDk0ZTlmODczMC4uNzFiOWVkYTZkY2Y0NDU3MjFhMjQ3ZTk3MjRjMzNiMmE1
MzE1MDExNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcApAQCAtNTg2LDYgKzU4
Niw5IEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25zdAogICAgICAgICByZXN1bHQud3Jp
dGVzID0gYXM8TWVtb3J5VmFsdWU+KCktPnJhbmdlKCk7CiAgICAgICAgIHJlc3VsdC5jb250cm9s
RGVwZW5kZW50ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXNtQWRkcmVzczoK
KyAgICAgICAgcmVzdWx0LnJlYWRzUGlubmVkID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBGZW5jZTogewogICAgICAgICBjb25zdCBGZW5jZVZhbHVlKiBmZW5jZSA9IGFzPEZlbmNl
VmFsdWU+KCk7CiAgICAgICAgIHJlc3VsdC5yZWFkcyA9IGZlbmNlLT5yZWFkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzV2FzbUFkZHJlc3NWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQWRkcmVzc1ZhbHVlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
N2Q3NjI4NTI1ODU5MGM4YzA3Zjg5Njc2YjZkNWI3MjI2NTM3MGU2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzV2FzbUFkZHJlc3NWYWx1ZS5jcHAKQEAgLTAs
MCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCM1dhc21BZGRyZXNzVmFsdWUuaCIKKwor
I2lmIEVOQUJMRShCM19KSVQpCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitX
YXNtQWRkcmVzc1ZhbHVlOjp+V2FzbUFkZHJlc3NWYWx1ZSgpCit7Cit9CisKK3ZvaWQgV2FzbUFk
ZHJlc3NWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91
dCkgY29uc3QKK3sKKyAgICBvdXQucHJpbnQoY29tbWEsIG1fcGlubmVkR1BSKTsKK30KKworVmFs
dWUqIFdhc21BZGRyZXNzVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG5l
dyBXYXNtQWRkcmVzc1ZhbHVlKCp0aGlzKTsKK30KKworV2FzbUFkZHJlc3NWYWx1ZTo6V2FzbUFk
ZHJlc3NWYWx1ZShPcmlnaW4gb3JpZ2luLCBWYWx1ZSogdmFsdWUsIEdQUlJlZyBwaW5uZWRHUFIp
CisgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBXYXNtQWRkcmVzcywgSW50NjQsIG9yaWdpbiwg
dmFsdWUpCisgICAgLCBtX3Bpbm5lZEdQUihwaW5uZWRHUFIpCit7Cit9CisKK30gfSAvLyBuYW1l
c3BhY2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzV2FzbUFkZHJlc3NWYWx1ZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzV2FzbUFkZHJlc3NWYWx1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5Mzg2MDI3
NTViYzgxNzVhMmM3YTQ3Y2I4NTJkMzU3YmE2YjhkZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQWRkcmVzc1ZhbHVlLmgKQEAgLTAsMCArMSw1OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzVmFsdWUuaCIKKworbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFdh
c21BZGRyZXNzVmFsdWUgOiBwdWJsaWMgVmFsdWUgeworcHVibGljOgorICAgIHN0YXRpYyBib29s
IGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IFdhc21BZGRyZXNzOyB9CisKKyAg
ICB+V2FzbUFkZHJlc3NWYWx1ZSgpOworCisgICAgR1BSUmVnIHBpbm5lZEdQUigpIGNvbnN0IHsg
cmV0dXJuIG1fcGlubmVkR1BSOyB9CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGR1bXBNZXRhKENv
bW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBWYWx1ZSog
Y2xvbmVJbXBsKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNz
IFByb2NlZHVyZTsKKworICAgIFdhc21BZGRyZXNzVmFsdWUoT3JpZ2luLCBWYWx1ZSosIEdQUlJl
Zyk7CisKKyAgICBHUFJSZWcgbV9waW5uZWRHUFI7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6QjMKKworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiMy5jcHAKaW5kZXggYWMzMWMzY2Y2MzFkZTFmMGM1NWYxYjdiMGYwMDk2YTZmYTM5NzMxMi4u
YzYzODFiMTZmOTU3MWY4OTVmNzM1MDYzODFhNzUyZjBlYzg5YmQ5YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiMy5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJCM1ZhbGlkYXRl
LmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1ZhcmlhYmxlVmFs
dWUuaCIKKyNpbmNsdWRlICJCM1dhc21BZGRyZXNzVmFsdWUuaCIKICNpbmNsdWRlICJCM1dhc21C
b3VuZHNDaGVja1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAi
RlBSSW5mby5oIgpAQCAtMTM3NjEsNiArMTM3NjIsNTcgQEAgdm9pZCB0ZXN0V2FzbUJvdW5kc0No
ZWNrKHVuc2lnbmVkIG9mZnNldCkKICAgICBDSEVDS19FUShpbnZva2U8aW50MzJfdD4oKmNvZGUs
IDIsIDIgKyBvZmZzZXQpLCA0Mik7CiB9CiAKK3ZvaWQgdGVzdFdhc21BZGRyZXNzKCkKK3sKKyAg
ICBQcm9jZWR1cmUgcHJvYzsKKyAgICBHUFJSZWcgcGlubmVkR1BSID0gR1BSSW5mbzo6YXJndW1l
bnRHUFIyOworICAgIHByb2MucGluUmVnaXN0ZXIocGlubmVkR1BSKTsKKworICAgIHVuc2lnbmVk
IGxvb3BDb3VudCA9IDEwMDsKKyAgICBWZWN0b3I8dW5zaWduZWQ+IHZhbHVlcyhsb29wQ291bnQp
OworICAgIHVuc2lnbmVkIG51bVRvU3RvcmUgPSA0MjsKKworICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogaGVhZGVyID0gcHJvYy5hZGRCbG9j
aygpOworICAgIEJhc2ljQmxvY2sqIGJvZHkgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNC
bG9jayogY29udGludWF0aW9uID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgLy8gUm9vdAorICAg
IFZhbHVlKiBsb29wQ291bnRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1
bmMsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIFZhbHVlKiB2YWx1ZVRvU3RvcmUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpKTsKKyAgICBVcHNpbG9uVmFsdWUqIGJlZ2luVXBzaWxvbiA9IHJvb3QtPmFwcGVuZE5l
dzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgaGVhZGVyKTsKKworICAgIC8vIEhlYWRlcgorICAgIFZh
bHVlKiBpbmRleFBoaSA9IGhlYWRlci0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMy
LCBPcmlnaW4oKSk7CisgICAgaGVhZGVyLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKKyAgICAgICAgaGVhZGVyLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJl
bG93LCBPcmlnaW4oKSwgaW5kZXhQaGksIGxvb3BDb3VudFZhbHVlKSwKKyAgICAgICAgYm9keSwg
Y29udGludWF0aW9uKTsKKworICAgIC8vIEJvZHkKKyAgICBWYWx1ZSogcG9pbnRlciA9IGJvZHkt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgaW5kZXhQaGksCisgICAgICAg
IGJvZHktPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBzaXplb2YodW5z
aWduZWQpKSk7CisgICAgcG9pbnRlciA9IGJvZHktPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWkV4
dDMyLCBPcmlnaW4oKSwgcG9pbnRlcik7CisgICAgYm9keS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlVG9TdG9yZSwKKyAgICAgICAgYm9keS0+YXBw
ZW5kTmV3PFdhc21BZGRyZXNzVmFsdWU+KHByb2MsIE9yaWdpbigpLCBwb2ludGVyLCBwaW5uZWRH
UFIpKTsKKyAgICBVcHNpbG9uVmFsdWUqIGluY1Vwc2lsb24gPSBib2R5LT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKKyAgICAgICAgYm9keS0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBZGQsIE9yaWdpbigpLCBpbmRleFBoaSwKKyAgICAgICAgICAgIGJvZHktPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSkpOworICAgIGJvZHktPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgaGVhZGVyKTsKKworICAgIC8v
IENvbnRpbnVhdGlvbgorICAgIGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCkpOworCisgICAgYmVnaW5VcHNpbG9uLT5zZXRQaGkoaW5kZXhQ
aGkpOworICAgIGluY1Vwc2lsb24tPnNldFBoaShpbmRleFBoaSk7CisKKworICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CisgICAgaW52b2tlPHZvaWQ+KCpjb2RlLCBsb29wQ291bnQsIG51
bVRvU3RvcmUsIHZhbHVlcy5kYXRhKCkpOworICAgIGZvciAodW5zaWduZWQgdmFsdWUgOiB2YWx1
ZXMpCisgICAgICAgIENIRUNLX0VRKG51bVRvU3RvcmUsIHZhbHVlKTsKK30KKwogLy8gTWFrZSBz
dXJlIHRoZSBjb21waWxlciBkb2VzIG5vdCB0cnkgdG8gb3B0aW1pemUgYW55dGhpbmcgb3V0Lgog
TkVWRVJfSU5MSU5FIGRvdWJsZSB6ZXJvKCkKIHsKQEAgLTE1MjA1LDYgKzE1MjU3LDcgQEAgdm9p
ZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0V2FzbUJvdW5kc0NoZWNrKDEw
MCkpOwogICAgIFJVTih0ZXN0V2FzbUJvdW5kc0NoZWNrKDEwMDAwKSk7CiAgICAgUlVOKHRlc3RX
YXNtQm91bmRzQ2hlY2soc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpIC0gNSkp
OworICAgIFJVTih0ZXN0V2FzbUFkZHJlc3MoKSk7CiAKICAgICBpZiAoaXNYODYoKSkgewogICAg
ICAgICBSVU4odGVzdEJyYW5jaEJpdEFuZEltbUZ1c2lvbihJZGVudGl0eSwgSW50NjQsIDEsIEFp
cjo6QnJhbmNoVGVzdDMyLCBBaXI6OkFyZzo6VG1wKSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy93
ZWJraXQub3JnL0NoYW5nZUxvZyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCmluZGV4
IDZjZTEzZDgxNjY4YmFlMDBlODg5ZGQ3MjFkYjQzMDBiMmZjM2ExOGIuLmQ1Y2NmMzVjZWY3NDFj
Mzc1ZjlmMjUzMDgzN2IwZTA0NWFmYTUwNTQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3dlYmtpdC5v
cmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTYtMTAtMTQgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CisKKyAgICAgICAgQjMgbmVlZHMgYSBzcGVjaWFsIFdhc21BZGRyZXNzIE9wY29kZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMzk0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRmlsaXAgUGl6bG8uCisKKyAgICAgICAgVXBkYXRlIHRoZSBiMyBk
b2NzIGZvciB0aGUgbmV3IFdhc21BZGRyZXNzIG9wY29kZS4KKworICAgICAgICAqIGRvY3MvYjMv
aW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWw6CisKIDIwMTYtMTAtMTIgIEtlaXRoIE1p
bGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgQjMgbmVlZHMgYSBzcGVj
aWFsIFdhc21Cb3VuZHNDaGVjayBPcGNvZGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3dlYmtpdC5v
cmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbCBiL1dlYnNpdGVzL3dl
YmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAppbmRleCA2
MmFjOTdjYjNjZWE0NmRhYmJlMGY4NDZjNzFlNmRiZjJjOTczOTdhLi43M2JmZjU3NWU0MzBjNDY4
ZWExOWZkZTg4OTkzOTVkNDg0MTRjOGE1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy93ZWJraXQub3Jn
L2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwKKysrIGIvV2Vic2l0ZXMv
d2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCkBAIC00
MjMsNyArNDIzLDEyIEBACiAgICAgICA8ZGQ+U3RvcmVzIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3Qg
Y2hpbGQgaW50byB0aGUgYWRkcmVzcyBjb21wdXRlZCBieSBhZGRpbmcgdGhlCiAgICAgICAgIGNv
bXBpbGUtdGltZSAzMi1iaXQgc2lnbmVkIGludGVnZXIgb2Zmc2V0IHRvIHRoZSBzZWNvbmQgY2hp
bGQuICBNaXNhbGlnbmVkIHN0b3JlcyBhcmUKICAgICAgICAgbm90IHBlbmFsaXplZC4gIE11c3Qg
dXNlIHRoZSBNZW1vcnlWYWx1ZSBjbGFzcy4gIE1heSBoYXZlIHRoZSBUcmFwcyBmbGFnIHNldC48
L2RkPgotICAgICAgCisKKyAgICAgIDxkdD5JbnRQdHIgV2FzbUFkZHJlc3MoSW50UHRyLCBwaW5u
ZWRHUFIpPC9kdD4KKyAgICAgIDxkZD5UaGlzIGlzIHVzZWQgdG8gY29tcHV0ZSB0aGUgYWRkcmVz
cyBvZiBhIHdhc20gbWVtb3J5IGxvYWQgZnJvbSBhIHBpbm5lZCBiYXNlIEdQUi4KKyAgICAgICAg
TXVzdCB1c2UgdGhlIFdhc21BZGRyZXNzVmFsdWUgY2xhc3MuPC9kZD4KKworCiAgICAgICA8ZHQ+
Vm9pZCBGZW5jZSgpPC9kdD4KICAgICAgIDxkZD5BYnN0cmFjdHMgc3RhbmRhbG9uZSBkYXRhIGZl
bmNlcyBvbiB4ODYgYW5kIEFSTS4gTXVzdCB1c2UgdGhlIEZlbmNlVmFsdWUgY2xhc3MsIHdoaWNo
IGhhcwogICAgICAgICB0d28gYWRkaXRpb25hbCBtZW1iZXJzIHRoYXQgY29uZmlndXJlIHRoZSBw
cmVjaXNlIG1lYW5pbmcgb2YgdGhlIGZlbmNlOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>