<?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>234367</bug_id>
          
          <creation_ts>2021-12-15 14:26:33 -0800</creation_ts>
          <short_desc>Use arm64&apos;s fmax/fmin instructions in Wasm</short_desc>
          <delta_ts>2021-12-16 18:40:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1824544</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-15 14:26:33 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824842</commentid>
    <comment_count>1</comment_count>
      <attachid>447383</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-16 12:28:01 -0800</bug_when>
    <thetext>Created attachment 447383
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824844</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-12-16 12:29:19 -0800</bug_when>
    <thetext>This patch modifies one of the wasm.json files. Please ensure that any changes in one have been mirrored to the other. You can find the wasm.json files at &quot;Source/JavaScriptCore/wasm/wasm.json&quot; and &quot;JSTests/wasm/wasm.json&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824849</commentid>
    <comment_count>3</comment_count>
      <attachid>447383</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-12-16 12:41:59 -0800</bug_when>
    <thetext>Comment on attachment 447383
patch

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

R=me with nit

&gt; Source/JavaScriptCore/b3/B3Common.h:163
&gt; +        return a + b;

nit: Why not just return PNaN? This makes me think I forgot how adding nans work lol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824850</commentid>
    <comment_count>4</comment_count>
      <attachid>447383</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-12-16 12:42:14 -0800</bug_when>
    <thetext>Comment on attachment 447383
patch

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

R=me with nit

&gt; Source/JavaScriptCore/b3/B3Common.h:163
&gt; +        return a + b;

nit: Why not just return PNaN? This makes me think I forgot how adding nans work lol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824887</commentid>
    <comment_count>5</comment_count>
      <attachid>447383</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-16 15:00:16 -0800</bug_when>
    <thetext>Comment on attachment 447383
patch

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

&gt;&gt;&gt; Source/JavaScriptCore/b3/B3Common.h:163
&gt;&gt;&gt; +        return a + b;
&gt;&gt; 
&gt;&gt; nit: Why not just return PNaN? This makes me think I forgot how adding nans work lol.
&gt; 
&gt; nit: Why not just return PNaN? This makes me think I forgot how adding nans work lol.

I’m just copying what we do at runtime on x86 in the generated code so hopefully the bits might stay the same even if not guaranteed or required to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824893</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-16 15:31:38 -0800</bug_when>
    <thetext>Committed r287160 (245337@main): &lt;https://commits.webkit.org/245337@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447383.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824946</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-16 18:40:54 -0800</bug_when>
    <thetext>&lt;rdar://problem/86608449&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447383</attachid>
            <date>2021-12-16 12:28:01 -0800</date>
            <delta_ts>2021-12-16 15:31:39 -0800</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>34835</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg3MTQ3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBA
CisyMDIxLTEyLTE2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBhcm02NCdzIGZtYXgvZm1pbiBpbnN0cnVjdGlvbnMgaW4gV2FzbQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MzY3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBv
cnQgaW4gQjMgZm9yIEZNYXggYW5kIEZNaW4uIFdlIHVzZSB0aGlzIGZvciBXYXNtJ3MgZjMyLzY0
CisgICAgICAgIG1pbi9tYXggb3BlcmF0aW9ucy4gT24gYXJtNjQsIHdlIHNlbGVjdCB0aGUgYXJt
NjQgZm1pbi9mbWF4IGluc3RydWN0aW9ucworICAgICAgICBmb3IgdGhlc2UgQjMgb3Bjb2Rlcy4g
T24geDg2LCB3ZSBsb3dlciB0aGVzZSB0byBjb250cm9sIGZsb3cgdG8gY2FsY3VsYXRlIHRoZQor
ICAgICAgICByZXN1bHQgaW5zaWRlIG9mIGxvd2VyIG1hY3Jvcy4KKyAgICAgICAgCisgICAgICAg
IFRoaXMgc3BlZWRzIHVwIFdhc20gcHJvZ3JhbXMgdGhhdCBtYWtlIGhlYXZ5IHVzYWdlIG9mIG1p
bi9tYXguCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpmbG9hdE1heCk6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmZsb2F0TWluKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NDo6ZG91YmxlTWF4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02
NDo6ZG91YmxlTWluKToKKyAgICAgICAgKiBiMy9CM0NvbW1vbi5oOgorICAgICAgICAoSlNDOjpC
Mzo6Zk1heCk6CisgICAgICAgIChKU0M6OkIzOjpmTWluKToKKyAgICAgICAgKiBiMy9CM0NvbnN0
RG91YmxlVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3REb3VibGVWYWx1ZTo6Zk1p
bkNvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0RG91YmxlVmFsdWU6OmZN
YXhDb25zdGFudCBjb25zdCk6CisgICAgICAgICogYjMvQjNDb25zdERvdWJsZVZhbHVlLmg6Cisg
ICAgICAgICogYjMvQjNDb25zdEZsb2F0VmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6Q29u
c3RGbG9hdFZhbHVlOjpmTWluQ29uc3RhbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6Q29u
c3RGbG9hdFZhbHVlOjpmTWF4Q29uc3RhbnQgY29uc3QpOgorICAgICAgICAqIGIzL0IzQ29uc3RG
bG9hdFZhbHVlLmg6CisgICAgICAgICogYjMvQjNMb3dlck1hY3Jvcy5jcHA6CisgICAgICAgICog
YjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAg
IChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAg
ICogYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHA6CisgICAgICAgICogYjMvQjNWYWxpZGF0ZS5jcHA6
CisgICAgICAgICogYjMvQjNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6Zk1p
bkNvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpmTWF4Q29uc3RhbnQg
Y29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMgY29uc3QpOgorICAgICAg
ICAoSlNDOjpCMzo6VmFsdWU6OmtleSBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6
dHlwZUZvcik6CisgICAgICAgICogYjMvQjNWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzVmFsdWVJ
bmxpbmVzLmg6CisgICAgICAgICogYjMvQjNWYWx1ZUtleS5jcHA6CisgICAgICAgIChKU0M6OkIz
OjpWYWx1ZUtleTo6bWF0ZXJpYWxpemUgY29uc3QpOgorICAgICAgICAqIGIzL2Fpci9BaXJPcGNv
ZGUub3Bjb2RlczoKKyAgICAgICAgKiBiMy90ZXN0YjMuaDoKKyAgICAgICAgKiBiMy90ZXN0YjNf
MS5jcHA6CisgICAgICAgIChydW4pOgorICAgICAgICAqIGIzL3Rlc3RiM183LmNwcDoKKyAgICAg
ICAgKHRlc3RGTWF4TWluKToKKyAgICAgICAgKHRlc3RGbG9hdE1heE1pbik6CisgICAgICAgICh0
ZXN0RG91YmxlTWF4TWluKToKKyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6
CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjphZGRGbG9hdGluZ1BvaW50TWlu
T3JNYXgpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6YWRkT3A8T3BUeXBl
OjpGMzJNaW4+KToKKyAgICAgICAgKiB3YXNtL3dhc20uanNvbjoKKwogMjAyMS0xMi0xNiAgTWlj
aGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmVhdGUgc3ltbGlu
a3MgcG9pbnRpbmcgdG8gYWx0ZXJuYXRlIHJvb3QgZnJhbWV3b3JrIGxvY2F0aW9ucwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmgJKHJldmlzaW9uIDI4NzExMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzA2LDYgKzI3
MDYsMjYgQEAgcHVibGljOgogICAgICAgICBvckRvdWJsZShvcDEsIG9wMiwgZGVzdCk7CiAgICAg
fQogCisgICAgdm9pZCBmbG9hdE1heChGUFJlZ2lzdGVySUQgb3AxLCBGUFJlZ2lzdGVySUQgb3Ay
LCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmZtYXg8MzI+
KGRlc3QsIG9wMSwgb3AyKTsKKyAgICB9CisKKyAgICB2b2lkIGZsb2F0TWluKEZQUmVnaXN0ZXJJ
RCBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAg
ICAgbV9hc3NlbWJsZXIuZm1pbjwzMj4oZGVzdCwgb3AxLCBvcDIpOworICAgIH0KKworICAgIHZv
aWQgZG91YmxlTWF4KEZQUmVnaXN0ZXJJRCBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuZm1heDw2ND4oZGVzdCwgb3Ax
LCBvcDIpOworICAgIH0KKworICAgIHZvaWQgZG91YmxlTWluKEZQUmVnaXN0ZXJJRCBvcDEsIEZQ
UmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3Nl
bWJsZXIuZm1pbjw2ND4oZGVzdCwgb3AxLCBvcDIpOworICAgIH0KKwogICAgIHZvaWQgbmVnYXRl
RG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAg
ICAgbV9hc3NlbWJsZXIuZm5lZzw2ND4oZGVzdCwgc3JjKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbW1vbi5oCShyZXZpc2lvbiAyODcxMTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTU2LDYgKzE1NiwyNiBAQCBzdGF0
aWMgSW50VHlwZSBjaGlsbFVNb2QoSW50VHlwZSBudW1lcmF0CiAgICAgcmV0dXJuIHVuc2lnbmVk
TnVtZXJhdG9yICUgdW5zaWduZWREZW5vbWluYXRvcjsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUg
RmxvYXRUeXBlPgorc3RhdGljIEZsb2F0VHlwZSBmTWF4KEZsb2F0VHlwZSBhLCBGbG9hdFR5cGUg
YikKK3sKKyAgICBpZiAoc3RkOjppc25hbihhKSB8fCBzdGQ6OmlzbmFuKGIpKQorICAgICAgICBy
ZXR1cm4gYSArIGI7CisgICAgaWYgKGEgPT0gc3RhdGljX2Nhc3Q8RmxvYXRUeXBlPigwLjApICYm
IGIgPT0gc3RhdGljX2Nhc3Q8RmxvYXRUeXBlPigwLjApICYmIHN0ZDo6c2lnbmJpdChhKSAhPSBz
dGQ6OnNpZ25iaXQoYikpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxGbG9hdFR5cGU+KDAu
MCk7CisgICAgcmV0dXJuIHN0ZDo6bWF4KGEsIGIpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBG
bG9hdFR5cGU+CitzdGF0aWMgRmxvYXRUeXBlIGZNaW4oRmxvYXRUeXBlIGEsIEZsb2F0VHlwZSBi
KQoreworICAgIGlmIChzdGQ6OmlzbmFuKGEpIHx8IHN0ZDo6aXNuYW4oYikpCisgICAgICAgIHJl
dHVybiBhICsgYjsKKyAgICBpZiAoYSA9PSBzdGF0aWNfY2FzdDxGbG9hdFR5cGU+KDAuMCkgJiYg
YiA9PSBzdGF0aWNfY2FzdDxGbG9hdFR5cGU+KDAuMCkgJiYgc3RkOjpzaWduYml0KGEpICE9IHN0
ZDo6c2lnbmJpdChiKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEZsb2F0VHlwZT4oLTAu
MCk7CisgICAgcmV0dXJuIHN0ZDo6bWluKGEsIGIpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJ
bnRUeXBlPgogc3RhdGljIEludFR5cGUgcm90YXRlUmlnaHQoSW50VHlwZSB2YWx1ZSwgaW50MzJf
dCBzaGlmdCkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RG91Ymxl
VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0
RG91YmxlVmFsdWUuY3BwCShyZXZpc2lvbiAyODcxMTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDYgKzEz
OCwyMCBAQCBWYWx1ZSogQ29uc3REb3VibGVWYWx1ZTo6bW9kQ29uc3RhbnQoUHJvCiAgICAgcmV0
dXJuIHByb2MuYWRkPENvbnN0RG91YmxlVmFsdWU+KG9yaWdpbigpLCBmbW9kKG1fdmFsdWUsIG90
aGVyLT5hc0RvdWJsZSgpKSk7CiB9CiAKK1ZhbHVlKiBDb25zdERvdWJsZVZhbHVlOjpmTWluQ29u
c3RhbnQoUHJvY2VkdXJlJiBwcm9jLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0Cit7CisgICAg
aWYgKCFvdGhlci0+aGFzRG91YmxlKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBwcm9jLmFkZDxDb25zdERvdWJsZVZhbHVlPihvcmlnaW4oKSwgZk1pbihtX3ZhbHVlLCBv
dGhlci0+YXNEb3VibGUoKSkpOworfQorCitWYWx1ZSogQ29uc3REb3VibGVWYWx1ZTo6Zk1heENv
bnN0YW50KFByb2NlZHVyZSYgcHJvYywgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAoreworICAg
IGlmICghb3RoZXItPmhhc0RvdWJsZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gcHJvYy5hZGQ8Q29uc3REb3VibGVWYWx1ZT4ob3JpZ2luKCksIGZNYXgobV92YWx1ZSwg
b3RoZXItPmFzRG91YmxlKCkpKTsKK30KKwogVHJpU3RhdGUgQ29uc3REb3VibGVWYWx1ZTo6ZXF1
YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFvdGhlci0+
aGFzRG91YmxlKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJs
ZVZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RE
b3VibGVWYWx1ZS5oCShyZXZpc2lvbiAyODcxMTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDb25zdERvdWJsZVZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDggQEAg
cHVibGljOgogICAgIFZhbHVlKiBjZWlsQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmluYWw7
CiAgICAgVmFsdWUqIGZsb29yQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmluYWw7CiAgICAg
VmFsdWUqIHNxcnRDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSog
Zk1pbkNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7
CisgICAgVmFsdWUqIGZNYXhDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIp
IGNvbnN0IGZpbmFsOwogCiAgICAgVHJpU3RhdGUgZXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSog
b3RoZXIpIGNvbnN0IGZpbmFsOwogICAgIFRyaVN0YXRlIG5vdEVxdWFsQ29uc3RhbnQoY29uc3Qg
VmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0NvbnN0RmxvYXRWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmNwcAkocmV2aXNpb24gMjg3MTEwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTMwLDYgKzEzMCwyMCBAQCBWYWx1ZSogQ29uc3RGbG9hdFZhbHVlOjpkaXZDb25zdGFudChQ
cm9jCiAgICAgcmV0dXJuIHByb2MuYWRkPENvbnN0RmxvYXRWYWx1ZT4ob3JpZ2luKCksIG1fdmFs
dWUgLyBvdGhlci0+YXNGbG9hdCgpKTsKIH0KIAorVmFsdWUqIENvbnN0RmxvYXRWYWx1ZTo6Zk1p
bkNvbnN0YW50KFByb2NlZHVyZSYgcHJvYywgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAorewor
ICAgIGlmICghb3RoZXItPmhhc0Zsb2F0KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBwcm9jLmFkZDxDb25zdEZsb2F0VmFsdWU+KG9yaWdpbigpLCBmTWluKG1fdmFsdWUs
IG90aGVyLT5hc0Zsb2F0KCkpKTsKK30KKworVmFsdWUqIENvbnN0RmxvYXRWYWx1ZTo6Zk1heENv
bnN0YW50KFByb2NlZHVyZSYgcHJvYywgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAoreworICAg
IGlmICghb3RoZXItPmhhc0Zsb2F0KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBwcm9jLmFkZDxDb25zdEZsb2F0VmFsdWU+KG9yaWdpbigpLCBmTWF4KG1fdmFsdWUsIG90
aGVyLT5hc0Zsb2F0KCkpKTsKK30KKwogVHJpU3RhdGUgQ29uc3RGbG9hdFZhbHVlOjplcXVhbENv
bnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKICAgICBpZiAoIW90aGVyLT5oYXNG
bG9hdCgpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZh
bHVlLmgJKHJldmlzaW9uIDI4NzExMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nv
bnN0RmxvYXRWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw4IEBAIHB1YmxpYzoK
ICAgICBWYWx1ZSogY2VpbENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IGZpbmFsOwogICAgIFZh
bHVlKiBmbG9vckNvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IGZpbmFsOwogICAgIFZhbHVlKiBz
cXJ0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGZNaW5Db25z
dGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAgIFZh
bHVlKiBmTWF4Q29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBm
aW5hbDsKIAogICAgIFRyaVN0YXRlIGVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBj
b25zdCBmaW5hbDsKICAgICBUcmlTdGF0ZSBub3RFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBv
dGhlcikgY29uc3QgZmluYWw7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dl
ck1hY3Jvcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93
ZXJNYWNyb3MuY3BwCShyZXZpc2lvbiAyODcxMTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNMb3dlck1hY3Jvcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw2ICsxNjksNzEgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAorICAgICAg
ICAgICAgY2FzZSBGTWF4OgorICAgICAgICAgICAgY2FzZSBGTWluOiB7CisgICAgICAgICAgICAg
ICAgaWYgKGlzWDg2KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBpc01heCA9IG1fdmFs
dWUtPm9wY29kZSgpID09IEZNYXg7CisKKyAgICAgICAgICAgICAgICAgICAgVmFsdWUqIGEgPSBt
X3ZhbHVlLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICAgICAgVmFsdWUqIGIgPSBtX3ZhbHVl
LT5jaGlsZCgxKTsKKworICAgICAgICAgICAgICAgICAgICBWYWx1ZSogaXNFcXVhbFZhbHVlID0g
bV9pbnNlcnRpb25TZXQuaW5zZXJ0PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
aW5kZXgsIEVxdWFsLCBtX29yaWdpbiwgYSwgYik7CisKKyAgICAgICAgICAgICAgICAgICAgQmFz
aWNCbG9jayogYmVmb3JlID0gbV9ibG9ja0luc2VydGlvblNldC5zcGxpdEZvcndhcmQobV9ibG9j
aywgbV9pbmRleCwgJm1faW5zZXJ0aW9uU2V0KTsKKworICAgICAgICAgICAgICAgICAgICBCYXNp
Y0Jsb2NrKiBpc0VxdWFsID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRCZWZvcmUobV9ibG9j
ayk7CisgICAgICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIG5vdEVxdWFsID0gbV9ibG9ja0lu
c2VydGlvblNldC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CisgICAgICAgICAgICAgICAgICAgIEJh
c2ljQmxvY2sqIGlzTGVzc1RoYW4gPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZSht
X2Jsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogbm90TGVzc1RoYW4gPSBt
X2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShtX2Jsb2NrKTsKKyAgICAgICAgICAgICAg
ICAgICAgQmFzaWNCbG9jayogaXNHcmVhdGVyVGhhbiA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5z
ZXJ0QmVmb3JlKG1fYmxvY2spOworICAgICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBpc05h
TiA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxvY2spOworCisgICAgICAg
ICAgICAgICAgICAgIGJlZm9yZS0+cmVwbGFjZUxhc3RXaXRoTmV3PFZhbHVlPihtX3Byb2MsIEJy
YW5jaCwgbV9vcmlnaW4sIGlzRXF1YWxWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJlZm9y
ZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soaXNFcXVhbCksIEZyZXF1ZW50ZWRCbG9j
ayhub3RFcXVhbCkpOworCisgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBsZXNzVGhhblZhbHVl
ID0gbm90RXF1YWwtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4s
IGEsIGIpOworICAgICAgICAgICAgICAgICAgICBub3RFcXVhbC0+YXBwZW5kTmV3PFZhbHVlPiht
X3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sIGxlc3NUaGFuVmFsdWUpOworICAgICAgICAgICAgICAg
ICAgICBub3RFcXVhbC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soaXNMZXNzVGhhbiks
IEZyZXF1ZW50ZWRCbG9jayhub3RMZXNzVGhhbikpOworCisgICAgICAgICAgICAgICAgICAgIFZh
bHVlKiBncmVhdGVyVGhhblZhbHVlID0gbm90TGVzc1RoYW4tPmFwcGVuZE5ldzxWYWx1ZT4obV9w
cm9jLCBHcmVhdGVyVGhhbiwgbV9vcmlnaW4sIGEsIGIpOworICAgICAgICAgICAgICAgICAgICBu
b3RMZXNzVGhhbi0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sIGdy
ZWF0ZXJUaGFuVmFsdWUpOworICAgICAgICAgICAgICAgICAgICBub3RMZXNzVGhhbi0+c2V0U3Vj
Y2Vzc29ycyhGcmVxdWVudGVkQmxvY2soaXNHcmVhdGVyVGhhbiksIEZyZXF1ZW50ZWRCbG9jayhp
c05hTikpOworCisgICAgICAgICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogaXNMZXNzVGhhblJl
c3VsdCA9IGlzTGVzc1RoYW4tPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgaXNNYXggPyBiIDogYSk7CisgICAgICAgICAg
ICAgICAgICAgIGlzTGVzc1RoYW4tPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29y
aWdpbik7CisgICAgICAgICAgICAgICAgICAgIGlzTGVzc1RoYW4tPnNldFN1Y2Nlc3NvcnMoRnJl
cXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKKworICAgICAgICAgICAgICAgICAgICBVcHNpbG9uVmFs
dWUqIGlzR3JlYXRlclRoYW5SZXN1bHQgPSBpc0dyZWF0ZXJUaGFuLT5hcHBlbmROZXc8VXBzaWxv
blZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIGlzTWF4
ID8gYSA6IGIpOworICAgICAgICAgICAgICAgICAgICBpc0dyZWF0ZXJUaGFuLT5hcHBlbmROZXc8
VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBpc0dy
ZWF0ZXJUaGFuLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisKKyAg
ICAgICAgICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBpc0VxdWFsUmVzdWx0ID0gaXNFcXVhbC0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2Ms
IG1fb3JpZ2luLCBpc0VxdWFsLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgaXNNYXggPyBCaXRB
bmQgOiBCaXRPciwgbV9vcmlnaW4sIGEsIGIpKTsKKyAgICAgICAgICAgICAgICAgICAgaXNFcXVh
bC0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgICAg
ICAgICAgICAgaXNFcXVhbC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykp
OworCisgICAgICAgICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogaXNOYU5SZXN1bHQgPSBpc05h
Ti0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgICAgICBtX3By
b2MsIG1fb3JpZ2luLCBpc05hTi0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEFkZCwgbV9vcmln
aW4sIGEsIGIpKTsKKyAgICAgICAgICAgICAgICAgICAgaXNOYU4tPmFwcGVuZE5ldzxWYWx1ZT4o
bV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIGlzTmFOLT5zZXRT
dWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisKKyAgICAgICAgICAgICAgICAg
ICAgVmFsdWUqIHBoaSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4oCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX2luZGV4LCBQaGksIG1fdmFsdWUtPnR5cGUoKSwgbV9vcmlnaW4pOwor
ICAgICAgICAgICAgICAgICAgICBpc0xlc3NUaGFuUmVzdWx0LT5zZXRQaGkocGhpKTsKKyAgICAg
ICAgICAgICAgICAgICAgaXNHcmVhdGVyVGhhblJlc3VsdC0+c2V0UGhpKHBoaSk7CisgICAgICAg
ICAgICAgICAgICAgIGlzRXF1YWxSZXN1bHQtPnNldFBoaShwaGkpOworICAgICAgICAgICAgICAg
ICAgICBpc05hTlJlc3VsdC0+c2V0UGhpKHBoaSk7CisKKyAgICAgICAgICAgICAgICAgICAgbV92
YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShwaGkpOworICAgICAgICAgICAgICAgICAgICBiZWZv
cmUtPnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVyKCk7CisgICAgICAgICAgICAgICAgICAgIG1fY2hh
bmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBjYXNlIERpdjogewogICAgICAgICAgICAgICAg
IGlmIChtX3ZhbHVlLT5pc0NoaWxsKCkpCiAgICAgICAgICAgICAgICAgICAgIG1ha2VEaXZpc2lv
bkNoaWxsKERpdik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWly
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWly
LmNwcAkocmV2aXNpb24gMjg3MTEwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93
ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MTEsNiArMjkxMSwxOCBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBGTWluOiB7
CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0FSTTY0KCkpOworICAgICAgICAgICAgYXBw
ZW5kKG1fdmFsdWUtPnR5cGUoKSA9PSBGbG9hdCA/IEZsb2F0TWluIDogRG91YmxlTWluLCB0bXAo
bV92YWx1ZS0+Y2hpbGQoMCkpLCB0bXAobV92YWx1ZS0+Y2hpbGQoMSkpLCB0bXAobV92YWx1ZSkp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBGTWF4OiB7
CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0FSTTY0KCkpOworICAgICAgICAgICAgYXBw
ZW5kKG1fdmFsdWUtPnR5cGUoKSA9PSBGbG9hdCA/IEZsb2F0TWF4IDogRG91YmxlTWF4LCB0bXAo
bV92YWx1ZS0+Y2hpbGQoMCkpLCB0bXAobV92YWx1ZS0+Y2hpbGQoMSkpLCB0bXAobV92YWx1ZSkp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBCaXRBbmQ6
IHsKICAgICAgICAgICAgIFZhbHVlKiBsZWZ0ID0gbV92YWx1ZS0+Y2hpbGQoMCk7CiAgICAgICAg
ICAgICBWYWx1ZSogcmlnaHQgPSBtX3ZhbHVlLT5jaGlsZCgxKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkocmV2aXNpb24gMjg3MTEwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYgKzE1OSwx
MiBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3BjCiAgICAgY2FzZSBV
TW9kOgogICAgICAgICBvdXQucHJpbnQoIlVNb2QiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNh
c2UgRk1pbjoKKyAgICAgICAgb3V0LnByaW50KCJGTWluIik7CisgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIEZNYXg6CisgICAgICAgIG91dC5wcmludCgiRk1heCIpOworICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBOZWc6CiAgICAgICAgIG91dC5wcmludCgiTmVnIik7CiAgICAgICAgIHJldHVy
bjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCShyZXZpc2lvbiAyODcxMTAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMTExLDYgKzExMSw4IEBAIGVudW0gT3Bjb2RlIDogdWludDhfdCB7CiAgICAgQ2VpbCwKICAg
ICBGbG9vciwKICAgICBTcXJ0LAorICAgIEZNYXgsCisgICAgRk1pbiwKIAogICAgIC8vIENhc3Rz
IGFuZCBzdWNoLgogICAgIC8vIEJpdHdpc2UgQ2FzdCBvZiBEb3VibGUtPkludDY0IG9yIEludDY0
LT5Eb3VibGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3Ro
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJl
bmd0aC5jcHAJKHJldmlzaW9uIDI4NzExMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1JlZHVjZVN0cmVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTc0LDcgKzk3NCw3IEBAIHBy
aXZhdGU6CiAKICAgICAgICAgY2FzZSBNb2Q6CiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IE1v
ZChjb25zdGFudDEsIGNvbnN0YW50MikKLSAgICAgICAgICAgIC8vIEludG8gdGhpczogY29uc3Rh
bnQxIC8gY29uc3RhbnQyCisgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IGNvbnN0YW50MSAlIGNv
bnN0YW50MgogICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHRoaXMgdXNlcyBNb2Q8Q2hpbGw+IHNl
bWFudGljcy4KICAgICAgICAgICAgIGlmIChyZXBsYWNlV2l0aE5ld1ZhbHVlKG1fdmFsdWUtPmNo
aWxkKDApLT5tb2RDb25zdGFudChtX3Byb2MsIG1fdmFsdWUtPmNoaWxkKDEpKSkpCiAgICAgICAg
ICAgICAgICAgYnJlYWs7CkBAIC0xMDM0LDEyICsxMDM0LDIwIEBAIHByaXZhdGU6CiAKICAgICAg
ICAgY2FzZSBVTW9kOgogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBVTW9kKGNvbnN0YW50MSwg
Y29uc3RhbnQyKQotICAgICAgICAgICAgLy8gSW50byB0aGlzOiBjb25zdGFudDEgLyBjb25zdGFu
dDIKKyAgICAgICAgICAgIC8vIEludG8gdGhpczogY29uc3RhbnQxICUgY29uc3RhbnQyCiAgICAg
ICAgICAgICByZXBsYWNlV2l0aE5ld1ZhbHVlKG1fdmFsdWUtPmNoaWxkKDApLT51TW9kQ29uc3Rh
bnQobV9wcm9jLCBtX3ZhbHVlLT5jaGlsZCgxKSkpOwogICAgICAgICAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBkbyB3aGF0IHdlIGRvIGZvciBNb2Qgc2luY2UgdGhlIHNhbWUgcHJpbmNpcGxlIGFw
cGxpZXMgaGVyZS4KICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjQ4MDkKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgRk1h
eDoKKyAgICAgICAgICAgIHJlcGxhY2VXaXRoTmV3VmFsdWUobV92YWx1ZS0+Y2hpbGQoMCktPmZN
YXhDb25zdGFudChtX3Byb2MsIG1fdmFsdWUtPmNoaWxkKDEpKSk7CisgICAgICAgICAgICBicmVh
azsKKworICAgICAgICBjYXNlIEZNaW46CisgICAgICAgICAgICByZXBsYWNlV2l0aE5ld1ZhbHVl
KG1fdmFsdWUtPmNoaWxkKDApLT5mTWluQ29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLT5jaGlsZCgx
KSkpOworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBCaXRBbmQ6CiAgICAgICAg
ICAgICBoYW5kbGVDb21tdXRhdGl2aXR5KCk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1ZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDI4NzExMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYgKzIyNywxMyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSB2YWx1
ZS0+Y2hpbGQoMSktPnR5cGUoKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBW
QUxJREFURSh2YWx1ZS0+dHlwZSgpLmlzTnVtZXJpYygpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBGTWF4OgorICAgICAgICAgICAg
Y2FzZSBGTWluOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJlbigp
ID09IDIsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUt
PnR5cGUoKSA9PSB2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAg
ICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IHZhbHVlLT5jaGlsZCgxKS0+
dHlwZSgpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVl
LT50eXBlKCkgPT0gRmxvYXQgfHwgdmFsdWUtPnR5cGUoKSA9PSBEb3VibGUsICgiQXQgIiwgKnZh
bHVlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5lZzoKICAg
ICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPmtpbmQoKS5oYXNFeHRyYUJpdHMoKSwgKCJB
dCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRy
ZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlLmNwcAkocmV2aXNpb24gMjg3MTEwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5LDE2IEBAIFZhbHVlKiBW
YWx1ZTo6dU1vZENvbnN0YW50KFByb2NlZHVyZSYsIGMKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAorVmFsdWUqIFZhbHVlOjpmTWluQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqKSBj
b25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCitWYWx1ZSogVmFsdWU6OmZNYXhDb25z
dGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSopIGNvbnN0Cit7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKIFZhbHVlKiBWYWx1ZTo6Yml0QW5kQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3Qg
VmFsdWUqKSBjb25zdAogewogICAgIHJldHVybiBudWxscHRyOwpAQCAtNTIzLDcgKzUzMyw3IEBA
IFRyaVN0YXRlIFZhbHVlOjphc1RyaVN0YXRlKCkgY29uc3QKIAogRWZmZWN0cyBWYWx1ZTo6ZWZm
ZWN0cygpIGNvbnN0CiB7Ci0gICAgRWZmZWN0cyByZXN1bHQ7CisgICAgRWZmZWN0cyByZXN1bHQg
PSBFZmZlY3RzOjpub25lKCk7CiAgICAgc3dpdGNoIChvcGNvZGUoKSkgewogICAgIGNhc2UgTm9w
OgogICAgIGNhc2UgSWRlbnRpdHk6CkBAIC01NzcsNiArNTg3LDggQEAgRWZmZWN0cyBWYWx1ZTo6
ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBTZWxlY3Q6CiAgICAgY2FzZSBEZXBlbmQ6CiAgICAg
Y2FzZSBFeHRyYWN0OgorICAgIGNhc2UgRk1pbjoKKyAgICBjYXNlIEZNYXg6CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgRGl2OgogICAgIGNhc2UgVURpdjoKQEAgLTcxNyw2ICs3MjksOCBAQCBW
YWx1ZUtleSBWYWx1ZTo6a2V5KCkgY29uc3QKICAgICBjYXNlIFVEaXY6CiAgICAgY2FzZSBNb2Q6
CiAgICAgY2FzZSBVTW9kOgorICAgIGNhc2UgRk1heDoKKyAgICBjYXNlIEZNaW46CiAgICAgY2Fz
ZSBCaXRBbmQ6CiAgICAgY2FzZSBCaXRPcjoKICAgICBjYXNlIEJpdFhvcjoKQEAgLTgxNSw2ICs4
MjksOCBAQCBUeXBlIFZhbHVlOjp0eXBlRm9yKEtpbmQga2luZCwgVmFsdWUqIGZpCiAgICAgY2Fz
ZSBVRGl2OgogICAgIGNhc2UgTW9kOgogICAgIGNhc2UgVU1vZDoKKyAgICBjYXNlIEZNYXg6Cisg
ICAgY2FzZSBGTWluOgogICAgIGNhc2UgTmVnOgogICAgIGNhc2UgQml0QW5kOgogICAgIGNhc2Ug
Qml0T3I6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHJldmlzaW9uIDI4NzEx
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIxOCw2ICsyMTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBWYWx1ZSogdURpdkNvbnN0
YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Q7CiAgICAgdmlydHVhbCBW
YWx1ZSogbW9kQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdDsg
Ly8gVGhpcyBjaG9vc2VzIE1vZDxDaGlsbD4gc2VtYW50aWNzLgogICAgIHZpcnR1YWwgVmFsdWUq
IHVNb2RDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OworICAg
IHZpcnR1YWwgVmFsdWUqIGZNaW5Db25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0OworICAgIHZpcnR1YWwgVmFsdWUqIGZNYXhDb25zdGFudChQcm9jZWR1cmUmLCBj
b25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OwogICAgIHZpcnR1YWwgVmFsdWUqIGJpdEFuZENvbnN0
YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Q7CiAgICAgdmlydHVhbCBW
YWx1ZSogYml0T3JDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0
OwogICAgIHZpcnR1YWwgVmFsdWUqIGJpdFhvckNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZh
bHVlKiBvdGhlcikgY29uc3Q7CkBAIC00MzYsNiArNDM4LDggQEAgcHJvdGVjdGVkOgogICAgICAg
ICBjYXNlIFVEaXY6CiAgICAgICAgIGNhc2UgTW9kOgogICAgICAgICBjYXNlIFVNb2Q6CisgICAg
ICAgIGNhc2UgRk1pbjoKKyAgICAgICAgY2FzZSBGTWF4OgogICAgICAgICBjYXNlIEJpdEFuZDoK
ICAgICAgICAgY2FzZSBCaXRPcjoKICAgICAgICAgY2FzZSBCaXRYb3I6CkBAIC02MDEsNiArNjA1
LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBVRGl2OgogICAgICAgICBjYXNlIE1vZDoKICAg
ICAgICAgY2FzZSBVTW9kOgorICAgICAgICBjYXNlIEZNaW46CisgICAgICAgIGNhc2UgRk1heDoK
ICAgICAgICAgY2FzZSBCaXRBbmQ6CiAgICAgICAgIGNhc2UgQml0T3I6CiAgICAgICAgIGNhc2Ug
Qml0WG9yOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVJbmxpbmVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVJbmxpbmVzLmgJ
KHJldmlzaW9uIDI4NzExMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlSW5s
aW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04OSw2ICs4OSw4IEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQjMgewogICAgIGNhc2UgVURpdjogXAogICAgIGNhc2UgTW9kOiBcCiAgICAgY2Fz
ZSBVTW9kOiBcCisgICAgY2FzZSBGTWF4OiBcCisgICAgY2FzZSBGTWluOiBcCiAgICAgY2FzZSBC
aXRBbmQ6IFwKICAgICBjYXNlIEJpdE9yOiBcCiAgICAgY2FzZSBCaXRYb3I6IFwKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlS2V5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZUtleS5jcHAJKHJldmlzaW9uIDI4NzExMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlS2V5LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODgsNiArODgsOCBAQCBWYWx1ZSogVmFsdWVLZXk6Om1hdGVyaWFsaXplKFByb2NlZHVyZSYg
CiAgICAgY2FzZSBVRGl2OgogICAgIGNhc2UgTW9kOgogICAgIGNhc2UgVU1vZDoKKyAgICBjYXNl
IEZNYXg6CisgICAgY2FzZSBGTWluOgogICAgIGNhc2UgQml0QW5kOgogICAgIGNhc2UgQml0T3I6
CiAgICAgY2FzZSBCaXRYb3I6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCShyZXZp
c2lvbiAyODcxMTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTExNzMsNCArMTE3Myw3IEBAIHZvaWQgdGVzdFN0b3JlUHJlSW5kZXg2NCgp
Owogdm9pZCB0ZXN0U3RvcmVQb3N0SW5kZXgzMigpOwogdm9pZCB0ZXN0U3RvcmVQb3N0SW5kZXg2
NCgpOwogCit2b2lkIHRlc3RGbG9hdE1heE1pbigpOwordm9pZCB0ZXN0RG91YmxlTWF4TWluKCk7
CisKICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiM18xLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzXzEuY3BwCShyZXZpc2lvbiAyODcxMTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzXzEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MjgsNiArODI4LDkgQEAgdm9pZCBy
dW4oY29uc3QgY2hhciogZmlsdGVyKQogCiAgICAgUlVOKHRlc3RJbmZpbml0ZUxvb3BEb2VzbnRD
YXVzZUJhZEhvaXN0aW5nKCkpOwogCisgICAgUlVOKHRlc3RGbG9hdE1heE1pbigpKTsKKyAgICBS
VU4odGVzdERvdWJsZU1heE1pbigpKTsKKwogICAgIGlmIChpc1g4NigpKSB7CiAgICAgICAgIFJV
Tih0ZXN0QnJhbmNoQml0QW5kSW1tRnVzaW9uKElkZW50aXR5LCBJbnQ2NCwgMSwgQWlyOjpCcmFu
Y2hUZXN0MzIsIEFpcjo6QXJnOjpUbXApKTsKICAgICAgICAgUlVOKHRlc3RCcmFuY2hCaXRBbmRJ
bW1GdXNpb24oSWRlbnRpdHksIEludDY0LCAweGZmLCBBaXI6OkJyYW5jaFRlc3QzMiwgQWlyOjpB
cmc6OlRtcCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM183LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzcuY3BwCShyZXZp
c2lvbiAyODcxMTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODg4LDQgKzE4ODgsMTEyIEBAIHZvaWQgYWRkVHVwbGVUZXN0cyhj
b25zdCBjaGFyKiBmaWx0ZXIsIEQKICAgICBSVU5fQklOQVJZKHR1cGxlTmVzdGVkTG9vcDxmYWxz
ZT4sIGludDMyT3BlcmFuZHMoKSwgaW50NjRPcGVyYW5kcygpKTsKIH0KIAordGVtcGxhdGUgPHR5
cGVuYW1lIEZsb2F0VHlwZT4KK3N0YXRpYyB2b2lkIHRlc3RGTWF4TWluKCkKK3sKKyAgICBhdXRv
IGNoZWNrUmVzdWx0ID0gWyZdIChGbG9hdFR5cGUgcmVzdWx0LCBGbG9hdFR5cGUgZXhwZWN0ZWQp
IHsKKyAgICAgICAgQ0hFQ0tfRVEoc3RkOjppc25hbihyZXN1bHQpLCBzdGQ6OmlzbmFuKGV4cGVj
dGVkKSk7CisgICAgICAgIGlmICghc3RkOjppc25hbihleHBlY3RlZCkpIHsKKyAgICAgICAgICAg
IENIRUNLX0VRKHJlc3VsdCwgZXhwZWN0ZWQpOworICAgICAgICAgICAgQ0hFQ0tfRVEoc3RkOjpz
aWduYml0KHJlc3VsdCksIHN0ZDo6c2lnbmJpdChleHBlY3RlZCkpOworICAgICAgICB9CisgICAg
fTsKKworICAgIGF1dG8gcnVuQXJnVGVzdCA9IFsmXSAoYm9vbCBtYXgsIEZsb2F0VHlwZSBhcmcx
LCBGbG9hdFR5cGUgYXJnMikgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICAgICAgVmFsdWUqIGEgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFy
Z3VtZW50RlBSMCk7CisgICAgICAgIFZhbHVlKiBiID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOworICAgICAg
ICBpZiAoc3RkOjppc19zYW1lX3Y8RmxvYXRUeXBlLCBmbG9hdD4pIHsKKyAgICAgICAgICAgIGEg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYSk7CisgICAg
ICAgICAgICBiID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCks
IGIpOworICAgICAgICB9CisgICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIG1heCA/IEZNYXggOiBGTWluLCBPcmlnaW4oKSwgYSwgYik7CisgICAgICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOworICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAgICAgcmV0
dXJuIGludm9rZTxGbG9hdFR5cGU+KCpjb2RlLCBhcmcxLCBhcmcyKTsKKyAgICB9OworCisgICAg
YXV0byBydW5Db25zdFRlc3QgPSBbJl0gKGJvb2wgbWF4LCBGbG9hdFR5cGUgYXJnMSwgRmxvYXRU
eXBlIGFyZzIpIHsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgICAgIFZhbHVlKiBhOworICAgICAgICBWYWx1
ZSogYjsKKyAgICAgICAgaWYgKHN0ZDo6aXNfc2FtZV92PEZsb2F0VHlwZSwgZmxvYXQ+KSB7Cisg
ICAgICAgICAgICBhID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGFyZzEpOworICAgICAgICAgICAgYiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcmcyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIGEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGFyZzEpOworICAgICAgICAgICAgYiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYXJnMik7CisgICAgICAgIH0KKyAgICAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgbWF4ID8gRk1heCA6IEZNaW4sIE9yaWdp
bigpLCBhLCBiKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9j
KHByb2MpOworICAgICAgICByZXR1cm4gaW52b2tlPEZsb2F0VHlwZT4oKmNvZGUsIGFyZzEsIGFy
ZzIpOworICAgIH07CisKKyAgICBhdXRvIHJ1bk1pblRlc3QgPSBbJl0gKEZsb2F0VHlwZSBhLCBG
bG9hdFR5cGUgYiwgRmxvYXRUeXBlIGV4cGVjdGVkKSB7CisgICAgICAgIGNoZWNrUmVzdWx0KHJ1
bkFyZ1Rlc3QoZmFsc2UsIGEsIGIpLCBleHBlY3RlZCk7CisgICAgICAgIGNoZWNrUmVzdWx0KHJ1
bkFyZ1Rlc3QoZmFsc2UsIGIsIGEpLCBleHBlY3RlZCk7CisgICAgICAgIGNoZWNrUmVzdWx0KHJ1
bkNvbnN0VGVzdChmYWxzZSwgYSwgYiksIGV4cGVjdGVkKTsKKyAgICAgICAgY2hlY2tSZXN1bHQo
cnVuQ29uc3RUZXN0KGZhbHNlLCBiLCBhKSwgZXhwZWN0ZWQpOworICAgIH07CisKKyAgICBhdXRv
IHJ1bk1heFRlc3QgPSBbJl0gKEZsb2F0VHlwZSBhLCBGbG9hdFR5cGUgYiwgRmxvYXRUeXBlIGV4
cGVjdGVkKSB7CisgICAgICAgIGNoZWNrUmVzdWx0KHJ1bkFyZ1Rlc3QodHJ1ZSwgYSwgYiksIGV4
cGVjdGVkKTsKKyAgICAgICAgY2hlY2tSZXN1bHQocnVuQ29uc3RUZXN0KHRydWUsIGEsIGIpLCBl
eHBlY3RlZCk7CisgICAgICAgIGNoZWNrUmVzdWx0KHJ1bkFyZ1Rlc3QodHJ1ZSwgYiwgYSksIGV4
cGVjdGVkKTsKKyAgICAgICAgY2hlY2tSZXN1bHQocnVuQ29uc3RUZXN0KHRydWUsIGIsIGEpLCBl
eHBlY3RlZCk7CisgICAgfTsKKworICAgIGF1dG8gaW5mID0gc3RkOjpudW1lcmljX2xpbWl0czxG
bG9hdFR5cGU+OjppbmZpbml0eSgpOworCisgICAgcnVuTWluVGVzdCgxMC4wLCAwLjAsIDAuMCk7
CisgICAgcnVuTWluVGVzdCgtMTAuMCwgNC4wLCAtMTAuMCk7CisgICAgcnVuTWluVGVzdCg0LjEs
IDQuMiwgNC4xKTsKKyAgICBydW5NaW5UZXN0KC00LjEsIC00LjIsIC00LjIpOworICAgIHJ1bk1p
blRlc3QoMC4wLCAtMC4wLCAtMC4wKTsKKyAgICBydW5NaW5UZXN0KC0wLjAsIC0wLjAsIC0wLjAp
OworICAgIHJ1bk1pblRlc3QoMC4wLCAwLjAsIDAuMCk7CisgICAgcnVuTWluVGVzdCgtaW5mLCAw
LCAtaW5mKTsKKyAgICBydW5NaW5UZXN0KC1pbmYsIGluZiwgLWluZik7CisgICAgcnVuTWluVGVz
dChpbmYsIDQyLjAsIDQyLjApOworICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19zYW1lX3Y8Rmxv
YXRUeXBlLCBmbG9hdD4pIHsKKyAgICAgICAgcnVuTWluVGVzdCgwLjAsIHN0ZDo6bmFuZigiIiks
IHN0ZDo6bmFuZigiIikpOworICAgICAgICBydW5NaW5UZXN0KHN0ZDo6bmFuZigiIiksIDQyLjAs
IHN0ZDo6bmFuZigiIikpOworICAgIH0gZWxzZSBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfc2FtZV92
PEZsb2F0VHlwZSwgZG91YmxlPikgeworICAgICAgICBydW5NaW5UZXN0KDAuMCwgc3RkOjpuYW4o
IiIpLCBzdGQ6Om5hbigiIikpOworICAgICAgICBydW5NaW5UZXN0KHN0ZDo6bmFuKCIiKSwgNDIu
MCwgc3RkOjpuYW4oIiIpKTsKKyAgICB9CisKKworICAgIHJ1bk1heFRlc3QoMC4wLCAxMC4wLCAx
MC4wKTsKKyAgICBydW5NYXhUZXN0KC0xMC4wLCA0LjAsIDQuMCk7CisgICAgcnVuTWF4VGVzdCg0
LjEsIDQuMiwgNC4yKTsKKyAgICBydW5NYXhUZXN0KC00LjEsIC00LjIsIC00LjEpOworICAgIHJ1
bk1heFRlc3QoMC4wLCAtMC4wLCAwLjApOworICAgIHJ1bk1heFRlc3QoLTAuMCwgLTAuMCwgLTAu
MCk7CisgICAgcnVuTWF4VGVzdCgwLjAsIDAuMCwgMC4wKTsKKyAgICBydW5NYXhUZXN0KC1pbmYs
IDAsIDApOworICAgIHJ1bk1heFRlc3QoLWluZiwgaW5mLCBpbmYpOworICAgIHJ1bk1heFRlc3Qo
aW5mLCA0Mi4wLCBpbmYpOworICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19zYW1lX3Y8RmxvYXRU
eXBlLCBmbG9hdD4pIHsKKyAgICAgICAgcnVuTWF4VGVzdCgwLjAsIHN0ZDo6bmFuZigiIiksIHN0
ZDo6bmFuZigiIikpOworICAgICAgICBydW5NYXhUZXN0KHN0ZDo6bmFuZigiIiksIDQyLjAsIHN0
ZDo6bmFuZigiIikpOworICAgIH0gZWxzZSBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfc2FtZV92PEZs
b2F0VHlwZSwgZG91YmxlPikgeworICAgICAgICBydW5NYXhUZXN0KDAuMCwgc3RkOjpuYW4oIiIp
LCBzdGQ6Om5hbigiIikpOworICAgICAgICBydW5NYXhUZXN0KHN0ZDo6bmFuKCIiKSwgNDIuMCwg
c3RkOjpuYW4oIiIpKTsKKyAgICB9Cit9CisKK3ZvaWQgdGVzdEZsb2F0TWF4TWluKCkKK3sKKyAg
ICB0ZXN0Rk1heE1pbjxmbG9hdD4oKTsKK30KKwordm9pZCB0ZXN0RG91YmxlTWF4TWluKCkKK3sK
KyAgICB0ZXN0Rk1heE1pbjxkb3VibGU+KCk7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoQjNfSklU
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2Rlcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNv
ZGVzCShyZXZpc2lvbiAyODcxMTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEyLDYgKzEwMTIsMTggQEAgYXJt
NjQ6IE9yUmlnaHRTaGlmdDY0IFU6Rzo2NCwgVTpHOjY0LCBVOgogYXJtNjQ6IE9yVW5zaWduZWRS
aWdodFNoaWZ0NjQgVTpHOjY0LCBVOkc6NjQsIFU6Rzo2NCwgRDpHOjY0CiAgICAgVG1wLCBUbXAs
IEltbSwgVG1wCiAKK2FybTY0OiBGbG9hdE1heCBVOkY6MzIsIFU6RjozMiwgRDpGOjMyCisgICAg
VG1wLCBUbXAsIFRtcAorCithcm02NDogRmxvYXRNaW4gVTpGOjMyLCBVOkY6MzIsIEQ6RjozMgor
ICAgIFRtcCwgVG1wLCBUbXAKKworYXJtNjQ6IERvdWJsZU1heCBVOkY6NjQsIFU6Rjo2NCwgRDpG
OjY0CisgICAgVG1wLCBUbXAsIFRtcAorCithcm02NDogRG91YmxlTWluIFU6Rjo2NCwgVTpGOjY0
LCBEOkY6NjQKKyAgICBUbXAsIFRtcCwgVG1wCisKICMgVGhlIGZpcnN0IG9wZXJhbmQgaXMgcmF4
LgogIyBGSVhNRTogVGhpcyBmb3JtdWxhdGlvbiBtZWFucyB0aGF0IHRoZSBib29sZWFuIHJlc3Vs
dCBjYW5ub3QgYmUgcHV0IGluIGVheCwgZXZlbiB0aG91Z2ggYWxsIHVzZXJzCiAjIG9mIHRoaXMg
d291bGQgYmUgT0sgd2l0aCB0aGF0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUFpcklSR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyODcxMTApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00NDAxLDExICs0NDAxLDYgQEAgdGVtcGxhdGU8PiBhdXRvIEFpcklSR2VuZXJhdG9y
OjphZGRPcDxPcAogICAgIHJldHVybiB7IH07CiB9CiAKLXRlbXBsYXRlPD4gYXV0byBBaXJJUkdl
bmVyYXRvcjo6YWRkT3A8T3BUeXBlOjpGMzJNaW4+KEV4cHJlc3Npb25UeXBlIGFyZzAsIEV4cHJl
c3Npb25UeXBlIGFyZzEsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQK
LXsKLSAgICByZXR1cm4gYWRkRmxvYXRpbmdQb2ludE1pbk9yTWF4KFR5cGVzOjpGMzIsIE1pbk9y
TWF4OjpNaW4sIGFyZzAsIGFyZzEsIHJlc3VsdCk7Ci19Ci0KIHRlbXBsYXRlPD4gYXV0byBBaXJJ
UkdlbmVyYXRvcjo6YWRkT3A8T3BUeXBlOjpGNjROZT4oRXhwcmVzc2lvblR5cGUgYXJnMCwgRXhw
cmVzc2lvblR5cGUgYXJnMSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3Vs
dAogewogICAgIHJlc3VsdCA9IGczMigpOwpAQCAtNDQyNSw2ICs0NDIwLDE0IEBAIGF1dG8gQWly
SVJHZW5lcmF0b3I6OmFkZEZsb2F0aW5nUG9pbnRNaW4KICAgICBBU1NFUlQoZmxvYXRUeXBlLmlz
RjMyKCkgfHwgZmxvYXRUeXBlLmlzRjY0KCkpOwogICAgIHJlc3VsdCA9IHRtcEZvclR5cGUoZmxv
YXRUeXBlKTsKIAorICAgIGlmIChpc0FSTTY0KCkpIHsKKyAgICAgICAgaWYgKGZsb2F0VHlwZS5p
c0YzMigpKQorICAgICAgICAgICAgYXBwZW5kKG1fY3VycmVudEJsb2NrLCBtaW5Pck1heCA9PSBN
aW5Pck1heDo6TWF4ID8gRmxvYXRNYXggOiBGbG9hdE1pbiwgYXJnMCwgYXJnMSwgcmVzdWx0KTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXBwZW5kKG1fY3VycmVudEJsb2NrLCBtaW5Pck1h
eCA9PSBNaW5Pck1heDo6TWF4ID8gRG91YmxlTWF4IDogRG91YmxlTWluLCBhcmcwLCBhcmcxLCBy
ZXN1bHQpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKwogICAgIEJhc2ljQmxvY2sqIGlz
RXF1YWwgPSBtX2NvZGUuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBub3RFcXVhbCA9IG1f
Y29kZS5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGlzTGVzc1RoYW4gPSBtX2NvZGUuYWRk
QmxvY2soKTsKQEAgLTQ0NjksMTEgKzQ0NzIsMjYgQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRk
RmxvYXRpbmdQb2ludE1pbgogICAgIHJldHVybiB7IH07CiB9CiAKK3RlbXBsYXRlPD4gYXV0byBB
aXJJUkdlbmVyYXRvcjo6YWRkT3A8T3BUeXBlOjpGMzJNaW4+KEV4cHJlc3Npb25UeXBlIGFyZzAs
IEV4cHJlc3Npb25UeXBlIGFyZzEsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxS
ZXN1bHQKK3sKKyAgICByZXR1cm4gYWRkRmxvYXRpbmdQb2ludE1pbk9yTWF4KFR5cGVzOjpGMzIs
IE1pbk9yTWF4OjpNaW4sIGFyZzAsIGFyZzEsIHJlc3VsdCk7Cit9CisKIHRlbXBsYXRlPD4gYXV0
byBBaXJJUkdlbmVyYXRvcjo6YWRkT3A8T3BUeXBlOjpGMzJNYXg+KEV4cHJlc3Npb25UeXBlIGFy
ZzAsIEV4cHJlc3Npb25UeXBlIGFyZzEsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRp
YWxSZXN1bHQKIHsKICAgICByZXR1cm4gYWRkRmxvYXRpbmdQb2ludE1pbk9yTWF4KFR5cGVzOjpG
MzIsIE1pbk9yTWF4OjpNYXgsIGFyZzAsIGFyZzEsIHJlc3VsdCk7CiB9CiAKK3RlbXBsYXRlPD4g
YXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkT3A8T3BUeXBlOjpGNjRNaW4+KEV4cHJlc3Npb25UeXBl
IGFyZzAsIEV4cHJlc3Npb25UeXBlIGFyZzEsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBh
cnRpYWxSZXN1bHQKK3sKKyAgICByZXR1cm4gYWRkRmxvYXRpbmdQb2ludE1pbk9yTWF4KFR5cGVz
OjpGNjQsIE1pbk9yTWF4OjpNaW4sIGFyZzAsIGFyZzEsIHJlc3VsdCk7Cit9CisKK3RlbXBsYXRl
PD4gYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkT3A8T3BUeXBlOjpGNjRNYXg+KEV4cHJlc3Npb25U
eXBlIGFyZzAsIEV4cHJlc3Npb25UeXBlIGFyZzEsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+
IFBhcnRpYWxSZXN1bHQKK3sKKyAgICByZXR1cm4gYWRkRmxvYXRpbmdQb2ludE1pbk9yTWF4KFR5
cGVzOjpGNjQsIE1pbk9yTWF4OjpNYXgsIGFyZzAsIGFyZzEsIHJlc3VsdCk7Cit9CisKIHRlbXBs
YXRlPD4gYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkT3A8T3BUeXBlOjpGNjRNdWw+KEV4cHJlc3Np
b25UeXBlIGFyZzAsIEV4cHJlc3Npb25UeXBlIGFyZzEsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQp
IC0+IFBhcnRpYWxSZXN1bHQKIHsKICAgICByZXR1cm4gYWRkRmxvYXRpbmdQb2ludEJpbk9wKFR5
cGVzOjpGNjQsIE11bERvdWJsZSwgYXJnMCwgYXJnMSwgcmVzdWx0KTsKQEAgLTQ4MjksMTEgKzQ4
NDcsNiBAQCB0ZW1wbGF0ZTw+IGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZE9wPE9wCiAgICAgcmV0
dXJuIGFkZEZsb2F0aW5nUG9pbnRBYnMoQWJzRmxvYXQsIGFyZzAsIHJlc3VsdCk7CiB9CiAKLXRl
bXBsYXRlPD4gYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkT3A8T3BUeXBlOjpGNjRNaW4+KEV4cHJl
c3Npb25UeXBlIGFyZzAsIEV4cHJlc3Npb25UeXBlIGFyZzEsIEV4cHJlc3Npb25UeXBlJiByZXN1
bHQpIC0+IFBhcnRpYWxSZXN1bHQKLXsKLSAgICByZXR1cm4gYWRkRmxvYXRpbmdQb2ludE1pbk9y
TWF4KFR5cGVzOjpGNjQsIE1pbk9yTWF4OjpNaW4sIGFyZzAsIGFyZzEsIHJlc3VsdCk7Ci19Ci0K
IHRlbXBsYXRlPD4gYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkT3A8T3BUeXBlOjpGMzJNdWw+KEV4
cHJlc3Npb25UeXBlIGFyZzAsIEV4cHJlc3Npb25UeXBlIGFyZzEsIEV4cHJlc3Npb25UeXBlJiBy
ZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQKIHsKICAgICByZXN1bHQgPSBmMzIoKTsKQEAgLTUxNDQs
MTEgKzUxNTcsNiBAQCB0ZW1wbGF0ZTw+IGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZE9wPE9wCiAg
ICAgcmV0dXJuIHsgfTsKIH0KIAotdGVtcGxhdGU8PiBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRP
cDxPcFR5cGU6OkY2NE1heD4oRXhwcmVzc2lvblR5cGUgYXJnMCwgRXhwcmVzc2lvblR5cGUgYXJn
MSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAotewotICAgIHJldHVy
biBhZGRGbG9hdGluZ1BvaW50TWluT3JNYXgoVHlwZXM6OkY2NCwgTWluT3JNYXg6Ok1heCwgYXJn
MCwgYXJnMSwgcmVzdWx0KTsKLX0KLQogdGVtcGxhdGU8PiBhdXRvIEFpcklSR2VuZXJhdG9yOjph
ZGRPcDxPcFR5cGU6Okk2NExlVT4oRXhwcmVzc2lvblR5cGUgYXJnMCwgRXhwcmVzc2lvblR5cGUg
YXJnMSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAogewogICAgIHJl
c3VsdCA9IGczMigpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29u
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dhc20uanNvbgkocmV2
aXNpb24gMjg3MTEwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29uCSh3
b3JraW5nIGNvcHkpCkBAIC0xODMsOCArMTgzLDggQEAKICAgICAgICAgImYzMi5zdWIiOiAgICAg
ICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTQ3LCAicmV0dXJu
IjogWyJmMzIiXSwgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImYzMiIs
ICJmMzIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiU3ViIiAg
ICAgICAgICB9LAogICAgICAgICAiZjMyLm11bCI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5Ijog
ImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNDgsICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgInBhcmFtZXRlciI6IFsiZjMyIiwgImYzMiJdLCAgICAgICAgICAgICAg
ICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJNdWwiICAgICAgICAgIH0sCiAgICAgICAgICJm
MzIuZGl2IjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6
IDE0OSwgInJldHVybiI6IFsiZjMyIl0sICAgICAgICAgICAgICAgICAgICAgICAgICAicGFyYW1l
dGVyIjogWyJmMzIiLCAiZjMyIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJi
M29wIjogIkRpdiIgICAgICAgICAgfSwKLSAgICAgICAgImYzMi5taW4iOiAgICAgICAgICAgICB7
ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTUwLCAicmV0dXJuIjogWyJmMzIi
XSwgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImYzMiIsICJmMzIiXSwg
ICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiU2VsZWN0KEVxdWFsKEAw
LCBAMSksIEJpdE9yKEAwLCBAMSksIFNlbGVjdChMZXNzVGhhbihAMCwgQDEpLCBAMCwgU2VsZWN0
KEdyZWF0ZXJUaGFuKEAwLCBAMSksIEAxLCBBZGQoQDAsIEAxKSkpKSIgfSwKLSAgICAgICAgImYz
Mi5tYXgiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjog
MTUxLCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJhbWV0
ZXIiOiBbImYzMiIsICJmMzIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIz
b3AiOiAiU2VsZWN0KEVxdWFsKEAwLCBAMSksIEJpdEFuZChAMCwgQDEpLCBTZWxlY3QoTGVzc1Ro
YW4oQDAsIEAxKSwgQDEsIFNlbGVjdChHcmVhdGVyVGhhbihAMCwgQDEpLCBAMCwgQWRkKEAwLCBA
MSkpKSkiIH0sCisgICAgICAgICJmMzIubWluIjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAi
YXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE1MCwgInJldHVybiI6IFsiZjMyIl0sICAgICAgICAgICAg
ICAgICAgICAgICAgICAicGFyYW1ldGVyIjogWyJmMzIiLCAiZjMyIl0sICAgICAgICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkZNaW4iIH0sCisgICAgICAgICJmMzIubWF4Ijog
ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE1MSwgInJl
dHVybiI6IFsiZjMyIl0sICAgICAgICAgICAgICAgICAgICAgICAgICAicGFyYW1ldGVyIjogWyJm
MzIiLCAiZjMyIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkZN
YXgiIH0sCiAgICAgICAgICJmMzIuYWJzIjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJp
dGhtZXRpYyIsICJ2YWx1ZSI6IDEzOSwgInJldHVybiI6IFsiZjMyIl0sICAgICAgICAgICAgICAg
ICAgICAgICAgICAicGFyYW1ldGVyIjogWyJmMzIiXSwgICAgICAgICAgICAgICAgICAgICAgICAi
aW1tZWRpYXRlIjogW10sICJiM29wIjogIkFicyIgICAgICAgICAgfSwKICAgICAgICAgImYzMi5u
ZWciOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTQw
LCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJhbWV0ZXIi
OiBbImYzMiJdLCAgICAgICAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3Ai
OiAiTmVnIiAgICAgICAgICB9LAogICAgICAgICAiZjMyLmNvcHlzaWduIjogICAgICAgIHsgImNh
dGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNTIsICJyZXR1cm4iOiBbImYzMiJdLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgInBhcmFtZXRlciI6IFsiZjMyIiwgImYzMiJdLCAgICAg
ICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJCaXR3aXNlQ2FzdChCaXRPcihC
aXRBbmQoQml0d2lzZUNhc3QoQDEpLCBpMzIoMHg4MDAwMDAwMCkpLCBCaXRBbmQoQml0d2lzZUNh
c3QoQDApLCBpMzIoMHg3ZmZmZmZmZikpKSkiIH0sCkBAIC0yMDMsOCArMjAzLDggQEAKICAgICAg
ICAgImY2NC5zdWIiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZh
bHVlIjogMTYxLCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAgICAgICAgICAgICAgICAgICAgICJw
YXJhbWV0ZXIiOiBbImY2NCIsICJmNjQiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBb
XSwgImIzb3AiOiAiU3ViIiAgICAgICAgICB9LAogICAgICAgICAiZjY0Lm11bCI6ICAgICAgICAg
ICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNjIsICJyZXR1cm4iOiBb
ImY2NCJdLCAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcmFtZXRlciI6IFsiZjY0IiwgImY2
NCJdLCAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJNdWwiICAgICAg
ICAgIH0sCiAgICAgICAgICJmNjQuZGl2IjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJp
dGhtZXRpYyIsICJ2YWx1ZSI6IDE2MywgInJldHVybiI6IFsiZjY0Il0sICAgICAgICAgICAgICAg
ICAgICAgICAgICAicGFyYW1ldGVyIjogWyJmNjQiLCAiZjY0Il0sICAgICAgICAgICAgICAgICAi
aW1tZWRpYXRlIjogW10sICJiM29wIjogIkRpdiIgICAgICAgICAgfSwKLSAgICAgICAgImY2NC5t
aW4iOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTY0
LCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJhbWV0ZXIi
OiBbImY2NCIsICJmNjQiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3Ai
OiAiU2VsZWN0KEVxdWFsKEAwLCBAMSksIEJpdE9yKEAwLCBAMSksIFNlbGVjdChMZXNzVGhhbihA
MCwgQDEpLCBAMCwgU2VsZWN0KEdyZWF0ZXJUaGFuKEAwLCBAMSksIEAxLCBBZGQoQDAsIEAxKSkp
KSIgfSwKLSAgICAgICAgImY2NC5tYXgiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0
aG1ldGljIiwgInZhbHVlIjogMTY1LCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAgICAgICAgICAg
ICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImY2NCIsICJmNjQiXSwgICAgICAgICAgICAgICAgICJp
bW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiU2VsZWN0KEVxdWFsKEAwLCBAMSksIEJpdEFuZChAMCwg
QDEpLCBTZWxlY3QoTGVzc1RoYW4oQDAsIEAxKSwgQDEsIFNlbGVjdChHcmVhdGVyVGhhbihAMCwg
QDEpLCBAMCwgQWRkKEAwLCBAMSkpKSkiIH0sCisgICAgICAgICJmNjQubWluIjogICAgICAgICAg
ICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE2NCwgInJldHVybiI6IFsi
ZjY0Il0sICAgICAgICAgICAgICAgICAgICAgICAgICAicGFyYW1ldGVyIjogWyJmNjQiLCAiZjY0
Il0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkZNaW4iIH0sCisg
ICAgICAgICJmNjQubWF4IjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIs
ICJ2YWx1ZSI6IDE2NSwgInJldHVybiI6IFsiZjY0Il0sICAgICAgICAgICAgICAgICAgICAgICAg
ICAicGFyYW1ldGVyIjogWyJmNjQiLCAiZjY0Il0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRl
IjogW10sICJiM29wIjogIkZNYXgiIH0sCiAgICAgICAgICJmNjQuYWJzIjogICAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE1MywgInJldHVybiI6IFsiZjY0
Il0sICAgICAgICAgICAgICAgICAgICAgICAgICAicGFyYW1ldGVyIjogWyJmNjQiXSwgICAgICAg
ICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkFicyIgICAgICAgICAg
fSwKICAgICAgICAgImY2NC5uZWciOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1l
dGljIiwgInZhbHVlIjogMTU0LCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICJwYXJhbWV0ZXIiOiBbImY2NCJdLCAgICAgICAgICAgICAgICAgICAgICAgICJpbW1l
ZGlhdGUiOiBbXSwgImIzb3AiOiAiTmVnIiAgICAgICAgICB9LAogICAgICAgICAiZjY0LmNvcHlz
aWduIjogICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNjYsICJy
ZXR1cm4iOiBbImY2NCJdLCAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcmFtZXRlciI6IFsi
ZjY0IiwgImY2NCJdLCAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJC
aXR3aXNlQ2FzdChCaXRPcihCaXRBbmQoQml0d2lzZUNhc3QoQDEpLCBpNjQoMHg4MDAwMDAwMDAw
MDAwMDAwKSksIEJpdEFuZChCaXR3aXNlQ2FzdChAMCksIGk2NCgweDdmZmZmZmZmZmZmZmZmZmYp
KSkpIiB9LAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>