<?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>121250</bug_id>
          
          <creation_ts>2013-09-12 13:01:26 -0700</creation_ts>
          <short_desc>GPRTemporary&apos;s reuse constructor should be templatized to reduce code duplication, and the bool to denote tag or payload should be replaced with an enum</short_desc>
          <delta_ts>2013-09-12 14:08:36 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>121064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>928450</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-12 13:01:26 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928451</commentid>
    <comment_count>1</comment_count>
      <attachid>211462</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-12 13:02:06 -0700</bug_when>
    <thetext>Created attachment 211462
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928452</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-12 13:06:23 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/155643</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928486</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-09-12 14:08:36 -0700</bug_when>
    <thetext>Qt build fixed in http://trac.webkit.org/changeset/155649 for

/ramdisk/qt-linux-release/build/Source/JavaScriptCore/dfg/DFGGPRInfo.h: In member function &apos;JSC::DFG::GPRReg JSC::DFG::JSValueRegs::gpr(JSC::WhichValueWord) const&apos;:
[1;31m/ramdisk/qt-linux-release/build/Source/JavaScriptCore/dfg/DFGGPRInfo.h:169:5: error: control reaches end of non-void function [-Werror=return-type][0m
cc1plus: all warnings being treated as errors

I&apos;ve sent out a complaint about the warning. It&apos;s totally bogus.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211462</attachid>
            <date>2013-09-12 13:02:06 -0700</date>
            <delta_ts>2013-09-12 13:04:07 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>37732</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU1NjQyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDEzLTA5LTEyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R1BSVGVtcG9yYXJ5J3MgcmV1c2UgY29uc3RydWN0b3Igc2hvdWxkIGJlIHRlbXBsYXRpemVkIHRv
IHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLCBhbmQgdGhlIGJvb2wgdG8gZGVub3RlIHRhZyBvciBw
YXlsb2FkIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIGFuIGVudW0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTI1MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZGZnL0RGR0dQUkluZm8uaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpKU1ZhbHVlUmVnczo6Z3ByKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdQUlRlbXBvcmFyeTo6R1BSVGVtcG9y
YXJ5KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlVG9J
bnQzMik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBZGQpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nRXF1YWxpdHkp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QXJndW1lbnRz
TGVuZ3RoKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFy
cmF5TGVuZ3RoKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAg
KEpTQzo6REZHOjpKU1ZhbHVlT3BlcmFuZDo6Z3ByKToKKyAgICAgICAgKEpTQzo6REZHOjpHUFJU
ZW1wb3Jhcnk6OkdQUlRlbXBvcmFyeSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpub25TcGVjdWxh
dGl2ZVVJbnQzMlRvTnVtYmVyKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
bm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmVOdWxsKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6bm9uU3BlY3VsYXRpdmVQZWVwaG9sZUJyYW5jaE51bGwpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpub25TcGVjdWxhdGl2ZU5vblBlZXBob2xl
Q29tcGFyZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0
aXZlUGVlcGhvbGVTdHJpY3RFcSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
Om5vblNwZWN1bGF0aXZlTm9uUGVlcGhvbGVTdHJpY3RFcSk6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RFcXVhbGl0eSk6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2dpY2FsTm90KToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpub25TcGVjdWxh
dGl2ZVVJbnQzMlRvTnVtYmVyKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
bm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmVOdWxsKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6bm9uU3BlY3VsYXRpdmVQZWVwaG9sZUJyYW5jaE51bGwpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpub25TcGVjdWxhdGl2ZVBlZXBob2xlQnJh
bmNoKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6bm9uU3BlY3VsYXRpdmVO
b25QZWVwaG9sZUNvbXBhcmUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlT2JqZWN0RXF1YWxpdHkpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlSW50ZWdlckNvbXBhcmUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlTG9naWNhbE5vdCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorCiAyMDEzLTA5
LTEyICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
TWFya2VkQmxvY2tzIHNob3VsZG4ndCBiZSBwdXQgaW4gQWxsb2NhdGVkIHN0YXRlIGlmIHRoZXkg
ZGlkbid0IHByb2R1Y2UgYSBGcmVlTGlzdApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHUFJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHUFJJbmZvLmgJKHJldmlzaW9uIDE1NTU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHR1BSSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNiArMTU4LDE1IEBAIHB1Ymxp
YzoKICAgICAKICAgICBHUFJSZWcgdGFnR1BSKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
R1BSUmVnPihtX3RhZ0dQUik7IH0KICAgICBHUFJSZWcgcGF5bG9hZEdQUigpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEdQUlJlZz4obV9wYXlsb2FkR1BSKTsgfQorICAgIEdQUlJlZyBncHIo
V2hpY2hWYWx1ZVdvcmQgd2hpY2gpIGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2ggKHdoaWNo
KSB7CisgICAgICAgIGNhc2UgVGFnV29yZDoKKyAgICAgICAgICAgIHJldHVybiB0YWdHUFIoKTsK
KyAgICAgICAgY2FzZSBQYXlsb2FkV29yZDoKKyAgICAgICAgICAgIHJldHVybiBwYXlsb2FkR1BS
KCk7CisgICAgICAgIH0KKyAgICB9CiAKIHByaXZhdGU6CiAgICAgaW50OF90IG1fdGFnR1BSOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCShyZXZpc2lvbiAxNTU1OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsNyAr
MjQ2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6bm9uU3BlY3VsYXRpdmVVSW50MwogewogICAg
IEludDMyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIEZQUlRlbXBvcmFy
eSBib3hlcih0aGlzKTsKLSAgICBHUFJUZW1wb3JhcnkgcmVzdWx0VGFnKHRoaXMsIG9wMSk7Cisg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFRhZyh0aGlzLCBSZXVzZSwgb3AxKTsKICAgICBHUFJUZW1w
b3JhcnkgcmVzdWx0UGF5bG9hZCh0aGlzKTsKICAgICAgICAgCiAgICAgSklUQ29tcGlsZXI6Okp1
bXAgcG9zaXRpdmUgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6R3JlYXRlclRoYW5P
ckVxdWFsLCBvcDEuZ3ByKCksIFRydXN0ZWRJbW0zMigwKSk7CkBAIC0zODMsNyArMzgzLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6bm9uU3BlY3VsYXRpdmVOb25QZQogICAgIEdQUlJlZyBhcmdU
YWdHUFIgPSBhcmcudGFnR1BSKCk7CiAgICAgR1BSUmVnIGFyZ1BheWxvYWRHUFIgPSBhcmcucGF5
bG9hZEdQUigpOwogCi0gICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxvYWQodGhpcywgYXJnLCBm
YWxzZSk7CisgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxvYWQodGhpcywgUmV1c2UsIGFyZywg
UGF5bG9hZFdvcmQpOwogICAgIEdQUlJlZyByZXN1bHRQYXlsb2FkR1BSID0gcmVzdWx0UGF5bG9h
ZC5ncHIoKTsKIAogICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdENlbGw7CkBAIC00NTAsNyArNDUw
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6bm9uU3BlY3VsYXRpdmVQZWVwaAogICAgIEdQUlJl
ZyBhcmdUYWdHUFIgPSBhcmcudGFnR1BSKCk7CiAgICAgR1BSUmVnIGFyZ1BheWxvYWRHUFIgPSBh
cmcucGF5bG9hZEdQUigpOwogICAgIAotICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgYXJn
KTsKKyAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBhcmcsIFRhZ1dvcmQpOwog
ICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAKICAgICBKSVRDb21waWxlcjo6
SnVtcCBub3RDZWxsOwpAQCAtNjQ0LDcgKzY0NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6Om5v
blNwZWN1bGF0aXZlTm9uUGUKICAgICAgICAgCiAgICAgICAgIGJvb2xlYW5SZXN1bHQocmVzdWx0
UGF5bG9hZEdQUiwgbm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKICAgICB9IGVs
c2UgewotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0UGF5bG9hZCh0aGlzLCBhcmcxLCBmYWxz
ZSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRQYXlsb2FkKHRoaXMsIFJldXNlLCBhcmcx
LCBQYXlsb2FkV29yZCk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRQYXlsb2FkR1BSID0gcmVzdWx0
UGF5bG9hZC5ncHIoKTsKIAogICAgICAgICBhcmcxLnVzZSgpOwpAQCAtNjg5LDcgKzY4OSw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0aXZlUGVlcGgKICAgICBHUFJSZWcgYXJn
MlRhZ0dQUiA9IGFyZzIudGFnR1BSKCk7CiAgICAgR1BSUmVnIGFyZzJQYXlsb2FkR1BSID0gYXJn
Mi5wYXlsb2FkR1BSKCk7CiAgICAgCi0gICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxvYWQodGhp
cywgYXJnMSwgZmFsc2UpOworICAgIEdQUlRlbXBvcmFyeSByZXN1bHRQYXlsb2FkKHRoaXMsIFJl
dXNlLCBhcmcxLCBQYXlsb2FkV29yZCk7CiAgICAgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIgPSBy
ZXN1bHRQYXlsb2FkLmdwcigpOwogICAgIAogICAgIGFyZzEudXNlKCk7CkBAIC03MjcsNyArNzI3
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6bm9uU3BlY3VsYXRpdmVOb25QZQogICAgIEdQUlJl
ZyBhcmcyVGFnR1BSID0gYXJnMi50YWdHUFIoKTsKICAgICBHUFJSZWcgYXJnMlBheWxvYWRHUFIg
PSBhcmcyLnBheWxvYWRHUFIoKTsKICAgICAKLSAgICBHUFJUZW1wb3JhcnkgcmVzdWx0UGF5bG9h
ZCh0aGlzLCBhcmcxLCBmYWxzZSk7CisgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxvYWQodGhp
cywgUmV1c2UsIGFyZzEsIFBheWxvYWRXb3JkKTsKICAgICBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQ
UiA9IHJlc3VsdFBheWxvYWQuZ3ByKCk7CiAgICAgCiAgICAgYXJnMS51c2UoKTsKQEAgLTEzMjks
NyArMTMyOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RFcXVhbGkKICAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKE1hc3F1ZXJhZGVzQXNV
bmRlZmluZWQpKSk7CiAgICAgfQogICAgIAotICAgIEdQUlRlbXBvcmFyeSByZXN1bHRQYXlsb2Fk
KHRoaXMsIG9wMik7CisgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxvYWQodGhpcywgUmV1c2Us
IG9wMik7CiAgICAgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIgPSByZXN1bHRQYXlsb2FkLmdwcigp
OwogICAgIAogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGZhbHNlQ2FzZSA9IG1faml0LmJyYW5j
aFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG9wMUdQUiwgb3AyR1BSKTsKQEAgLTE2ODIs
NyArMTY4Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2dpY2FsTm90KE4KICAg
ICBzd2l0Y2ggKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSkgewogICAgIGNhc2UgQm9vbGVhblVz
ZTogewogICAgICAgICBTcGVjdWxhdGVCb29sZWFuT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5j
aGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgdmFsdWUpOworICAg
ICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCB2YWx1ZSk7CiAgICAgICAgIG1f
aml0LnhvcjMyKFRydXN0ZWRJbW0zMigxKSwgdmFsdWUuZ3ByKCksIHJlc3VsdC5ncHIoKSk7CiAg
ICAgICAgIGJvb2xlYW5SZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtMTY5NSw3ICsxNjk1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvZ2lj
YWxOb3QoTgogICAgICAgICAKICAgICBjYXNlIEludDMyVXNlOiB7CiAgICAgICAgIFNwZWN1bGF0
ZUludDMyT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEdQUlRl
bXBvcmFyeSByZXN1bHRQYXlsb2FkKHRoaXMsIHZhbHVlKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5
IHJlc3VsdFBheWxvYWQodGhpcywgUmV1c2UsIHZhbHVlKTsKICAgICAgICAgbV9qaXQuY29tcGFy
ZTMyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgdmFsdWUuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMCksIHJlc3VsdFBheWxvYWQuZ3ByKCkpOwogICAgICAgICBib29sZWFuUmVz
dWx0KHJlc3VsdFBheWxvYWQuZ3ByKCksIG5vZGUpOwogICAgICAgICByZXR1cm47CkBAIC0xNzE1
LDcgKzE3MTUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTG9naWNhbE5vdChOCiAK
ICAgICBjYXNlIFVudHlwZWRVc2U6IHsKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMSh0aGlz
LCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRQYXlsb2FkKHRo
aXMsIGFyZzEsIGZhbHNlKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxvYWQodGhp
cywgUmV1c2UsIGFyZzEsIFBheWxvYWRXb3JkKTsKICAgICAgICAgR1BSUmVnIGFyZzFUYWdHUFIg
PSBhcmcxLnRhZ0dQUigpOwogICAgICAgICBHUFJSZWcgYXJnMVBheWxvYWRHUFIgPSBhcmcxLnBh
eWxvYWRHUFIoKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIgPSByZXN1bHRQYXls
b2FkLmdwcigpOwpAQCAtMjE3OCwxNCArMjE3OCwxNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBCaXRYb3I6CiAgICAgICAgIGlmIChpc0ludDMy
Q29uc3RhbnQobm9kZS0+Y2hpbGQxKCkubm9kZSgpKSkgewogICAgICAgICAgICAgU3BlY3VsYXRl
SW50MzJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBHUFJU
ZW1wb3JhcnkgcmVzdWx0KHRoaXMsIG9wMik7CisgICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVz
dWx0KHRoaXMsIFJldXNlLCBvcDIpOwogCiAgICAgICAgICAgICBiaXRPcChvcCwgdmFsdWVPZklu
dDMyQ29uc3RhbnQobm9kZS0+Y2hpbGQxKCkubm9kZSgpKSwgb3AyLmdwcigpLCByZXN1bHQuZ3By
KCkpOwogCiAgICAgICAgICAgICBpbnRlZ2VyUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CiAg
ICAgICAgIH0gZWxzZSBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkp
IHsKICAgICAgICAgICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOwotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBvcDEpOworICAg
ICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgb3AxKTsKIAogICAgICAg
ICAgICAgYml0T3Aob3AsIHZhbHVlT2ZJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMigpLm5vZGUo
KSksIG9wMS5ncHIoKSwgcmVzdWx0LmdwcigpKTsKIApAQCAtMjE5Myw3ICsyMTkzLDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEo
KSk7CiAgICAgICAgICAgICBTcGVjdWxhdGVJbnQzMk9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNo
aWxkMigpKTsKLSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgb3AxLCBvcDIp
OworICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgb3AxLCBvcDIp
OwogCiAgICAgICAgICAgICBHUFJSZWcgcmVnMSA9IG9wMS5ncHIoKTsKICAgICAgICAgICAgIEdQ
UlJlZyByZWcyID0gb3AyLmdwcigpOwpAQCAtMjIwOCw3ICsyMjA4LDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgQml0VVJTaGlmdDoKICAgICAg
ICAgaWYgKGlzSW50MzJDb25zdGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7CiAgICAgICAg
ICAgICBTcGVjdWxhdGVJbnQzMk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAg
ICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgb3AxKTsKKyAgICAgICAgICAgIEdQ
UlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIG9wMSk7CiAKICAgICAgICAgICAgIHNoaWZ0
T3Aob3AsIG9wMS5ncHIoKSwgdmFsdWVPZkludDMyQ29uc3RhbnQobm9kZS0+Y2hpbGQyKCkubm9k
ZSgpKSAmIDB4MWYsIHJlc3VsdC5ncHIoKSk7CiAKQEAgLTIyMTcsNyArMjIxNyw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIC8vIERvIG5v
dCBhbGxvdyBzaGlmdCBhbW91bnQgdG8gYmUgdXNlZCBhcyB0aGUgcmVzdWx0LCBNYWNyb0Fzc2Vt
YmxlciBkb2VzIG5vdCBwZXJtaXQgdGhpcy4KICAgICAgICAgICAgIFNwZWN1bGF0ZUludDMyT3Bl
cmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgU3BlY3VsYXRlSW50
MzJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBHUFJUZW1w
b3JhcnkgcmVzdWx0KHRoaXMsIG9wMSk7CisgICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0
KHRoaXMsIFJldXNlLCBvcDEpOwogCiAgICAgICAgICAgICBHUFJSZWcgcmVnMSA9IG9wMS5ncHIo
KTsKICAgICAgICAgICAgIEdQUlJlZyByZWcyID0gb3AyLmdwcigpOwpAQCAtMjI4Niw3ICsyMjg2
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBz
d2l0Y2ggKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSkgewogICAgICAgICBjYXNlIEludDMyVXNl
OiB7CiAgICAgICAgICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgb3AxKHRoaXMsIG5v
ZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgb3Ax
KTsKKyAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIG9wMSk7CiAg
ICAgICAgICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgbV9qaXQubW92ZShvcDEuZ3ByKCksIHJlc3VsdC5ncHIoKSk7CkBAIC0yMzIxLDcg
KzIzMjEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAg
ICAgIGNhc2UgSW50MzJVc2U6IHsKICAgICAgICAgICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3Bl
cmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgU3BlY3VsYXRlU3Ry
aWN0SW50MzJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBH
UFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIG9wMSk7CisgICAgICAgICAgICBHUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMsIFJldXNlLCBvcDEpOwogCiAgICAgICAgICAgICBHUFJSZWcgb3AxR1BSID0g
b3AxLmdwcigpOwogICAgICAgICAgICAgR1BSUmVnIG9wMkdQUiA9IG9wMi5ncHIoKTsKQEAgLTMy
NTIsOCArMzI1Miw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkK
ICAgICBjYXNlIFRvUHJpbWl0aXZlOiB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG5vZGUtPmNo
aWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKTsKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQg
b3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFRh
Zyh0aGlzLCBvcDEpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0UGF5bG9hZCh0aGlzLCBv
cDEsIGZhbHNlKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFRhZyh0aGlzLCBSZXVzZSwg
b3AxLCBUYWdXb3JkKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxvYWQodGhpcywg
UmV1c2UsIG9wMSwgUGF5bG9hZFdvcmQpOwogICAgICAgICAKICAgICAgICAgR1BSUmVnIG9wMVRh
Z0dQUiA9IG9wMS50YWdHUFIoKTsKICAgICAgICAgR1BSUmVnIG9wMVBheWxvYWRHUFIgPSBvcDEu
cGF5bG9hZEdQUigpOwpAQCAtMzc3Niw3ICszNzc2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAKICAgICBjYXNlIEdldFNjb3BlOiB7CiAgICAg
ICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGZ1bmN0aW9uKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
LSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBmdW5jdGlvbik7CisgICAgICAgIEdQ
UlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsKICAgICAgICAgbV9qaXQu
bG9hZFB0cihKSVRDb21waWxlcjo6QWRkcmVzcyhmdW5jdGlvbi5ncHIoKSwgSlNGdW5jdGlvbjo6
b2Zmc2V0T2ZTY29wZUNoYWluKCkpLCByZXN1bHQuZ3ByKCkpOwogICAgICAgICBjZWxsUmVzdWx0
KHJlc3VsdC5ncHIoKSwgbm9kZSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMzgwMCw3ICszODAwLDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAKICAg
ICBjYXNlIFNraXBUb3BTY29wZTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBzY29w
ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhp
cywgc2NvcGUpOworICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBzY29w
ZSk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIG1f
aml0Lm1vdmUoc2NvcGUuZ3ByKCksIHJlc3VsdEdQUik7CiAgICAgICAgIEpJVENvbXBpbGVyOjpK
dW1wIGFjdGl2YXRpb25Ob3RDcmVhdGVkID0KQEAgLTM4MTYsNyArMzgxNiw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgCiAgICAgY2FzZSBTa2lw
U2NvcGU6IHsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgc2NvcGUodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIHNjb3BlKTsKKyAg
ICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgc2NvcGUpOwogICAgICAgICBt
X2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKHNjb3BlLmdwcigpLCBKU1Njb3BlOjpv
ZmZzZXRPZk5leHQoKSksIHJlc3VsdC5ncHIoKSk7CiAgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0
LmdwcigpLCBub2RlKTsKICAgICAgICAgYnJlYWs7CkBAIC0zODcxLDcgKzM4NzEsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIHN3aXRjaCAobm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgQ2VsbFVzZTogewogICAgICAg
ICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0g
ICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0VGFnKHRoaXMsIGJhc2UpOworICAgICAgICAg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFRhZyh0aGlzLCBSZXVzZSwgYmFzZSk7CiAgICAgICAgICAg
ICBHUFJUZW1wb3JhcnkgcmVzdWx0UGF5bG9hZCh0aGlzKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwpAQCAtMzg4OCw3ICszODg4LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAKICAgICAg
ICAgY2FzZSBVbnR5cGVkVXNlOiB7CiAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNlKHRo
aXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRUYWco
dGhpcywgYmFzZSk7CisgICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0VGFnKHRoaXMsIFJl
dXNlLCBiYXNlLCBUYWdXb3JkKTsKICAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRQYXls
b2FkKHRoaXMpOwogICAgICAgICAKICAgICAgICAgICAgIEdQUlJlZyBiYXNlVGFnR1BSID0gYmFz
ZS50YWdHUFIoKTsKQEAgLTQwODIsNyArNDA4Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgCiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6IHsKICAg
ICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0g
ICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgYmFzZSk7CisgICAgICAgIEdQUlRlbXBv
cmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGJhc2UpOwogICAgICAgICAKICAgICAgICAgR1BSUmVn
IGJhc2VHUFIgPSBiYXNlLmdwcigpOwogICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0
LmdwcigpOwpAQCAtNDEwNSw3ICs0MTA1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlKiBub2RlKQogICAgICAgICAKICAgICBjYXNlIEdldEJ5T2Zmc2V0OiB7CiAgICAgICAg
IFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBH
UFJUZW1wb3JhcnkgcmVzdWx0VGFnKHRoaXMsIHN0b3JhZ2UpOworICAgICAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0VGFnKHRoaXMsIFJldXNlLCBzdG9yYWdlKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5
IHJlc3VsdFBheWxvYWQodGhpcyk7CiAgICAgICAgIAogICAgICAgICBHUFJSZWcgc3RvcmFnZUdQ
UiA9IHN0b3JhZ2UuZ3ByKCk7CkBAIC00MzA0LDcgKzQzMDQsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAKICAgICBjYXNlIElzQm9vbGVhbjogewogICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEdQ
UlRlbXBvcmFyeSByZXN1bHQodGhpcywgdmFsdWUpOworICAgICAgICBHUFJUZW1wb3JhcnkgcmVz
dWx0KHRoaXMsIFJldXNlLCB2YWx1ZSwgVGFnV29yZCk7CiAgICAgICAgIAogICAgICAgICBtX2pp
dC5jb21wYXJlMzIoSklUQ29tcGlsZXI6OkVxdWFsLCB2YWx1ZS50YWdHUFIoKSwgSklUQ29tcGls
ZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgcmVzdWx0LmdwcigpKTsKICAg
ICAgICAgYm9vbGVhblJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOwpAQCAtNDMxMyw3ICs0MzEz
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogCiAgICAgY2Fz
ZSBJc051bWJlcjogewogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5j
aGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgdmFsdWUpOworICAg
ICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCB2YWx1ZSwgVGFnV29yZCk7CiAg
ICAgICAgIAogICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIHZhbHVlLnRhZ0dQ
UigpLCByZXN1bHQuZ3ByKCkpOwogICAgICAgICBtX2ppdC5jb21wYXJlMzIoSklUQ29tcGlsZXI6
OkJlbG93LCByZXN1bHQuZ3ByKCksIEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
TG93ZXN0VGFnICsgMSksIHJlc3VsdC5ncHIoKSk7CkBAIC00MzIzLDcgKzQzMjMsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAKICAgICBjYXNlIElzU3RyaW5n
OiB7CiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
LSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCB2YWx1ZSk7CisgICAgICAgIEdQUlRl
bXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIHZhbHVlLCBUYWdXb3JkKTsKICAgICAgICAgCiAg
ICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGlzTm90Q2VsbCA9IG1faml0LmJyYW5jaDMyKEpJVENv
bXBpbGVyOjpOb3RFcXVhbCwgdmFsdWUudGFnR1BSKCksIEpJVENvbXBpbGVyOjpUcnVzdGVkSW1t
MzIoSlNWYWx1ZTo6Q2VsbFRhZykpOwogICAgICAgICAKQEAgLTQ0NDIsNyArNDQ0Miw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKIAogICAgIGNhc2UgQ3JlYXRl
QWN0aXZhdGlvbjogewogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5j
aGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgdmFsdWUsIGZhbHNl
KTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgdmFsdWUsIFBheWxv
YWRXb3JkKTsKICAgICAgICAgCiAgICAgICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHZhbHVlLnRh
Z0dQUigpOwogICAgICAgICBHUFJSZWcgdmFsdWVQYXlsb2FkR1BSID0gdmFsdWUucGF5bG9hZEdQ
UigpOwpAQCAtNDQ2MSw3ICs0NDYxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShO
b2RlKiBub2RlKQogICAgICAgICAKICAgICBjYXNlIENyZWF0ZUFyZ3VtZW50czogewogICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEdQ
UlRlbXBvcmFyeSByZXN1bHQodGhpcywgdmFsdWUsIGZhbHNlKTsKKyAgICAgICAgR1BSVGVtcG9y
YXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgdmFsdWUsIFBheWxvYWRXb3JkKTsKICAgICAgICAgCiAg
ICAgICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwogICAgICAgICBHUFJS
ZWcgdmFsdWVQYXlsb2FkR1BSID0gdmFsdWUucGF5bG9hZEdQUigpOwpAQCAtNDgwMSw4ICs0ODAx
LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAK
ICAgICBjYXNlIE5ld0Z1bmN0aW9uOiB7CiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRo
aXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFRhZyh0aGlz
LCB2YWx1ZSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRQYXlsb2FkKHRoaXMsIHZhbHVl
LCBmYWxzZSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRUYWcodGhpcywgUmV1c2UsIHZh
bHVlLCBUYWdXb3JkKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxvYWQodGhpcywg
UmV1c2UsIHZhbHVlLCBQYXlsb2FkV29yZCk7CiAgICAgICAgIAogICAgICAgICBHUFJSZWcgdmFs
dWVUYWdHUFIgPSB2YWx1ZS50YWdHUFIoKTsKICAgICAgICAgR1BSUmVnIHZhbHVlUGF5bG9hZEdQ
UiA9IHZhbHVlLnBheWxvYWRHUFIoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTU1NTk1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0
aXZlVUludDMKIHsKICAgICBJbnQzMk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
ICAgICBGUFJUZW1wb3JhcnkgYm94ZXIodGhpcyk7Ci0gICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0
aGlzLCBvcDEpOworICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIG9wMSk7CiAg
ICAgCiAgICAgSklUQ29tcGlsZXI6Okp1bXAgcG9zaXRpdmUgPSBtX2ppdC5icmFuY2gzMihNYWNy
b0Fzc2VtYmxlcjo6R3JlYXRlclRoYW5PckVxdWFsLCBvcDEuZ3ByKCksIFRydXN0ZWRJbW0zMigw
KSk7CiAgICAgCkBAIC0zMzAsNyArMzMwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6bm9uU3Bl
Y3VsYXRpdmVOb25QZQogICAgIEpTVmFsdWVPcGVyYW5kIGFyZyh0aGlzLCBvcGVyYW5kKTsKICAg
ICBHUFJSZWcgYXJnR1BSID0gYXJnLmdwcigpOwogICAgIAotICAgIEdQUlRlbXBvcmFyeSByZXN1
bHQodGhpcywgYXJnKTsKKyAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBhcmcp
OwogICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgCiAgICAgSklUQ29t
cGlsZXI6Okp1bXAgbm90Q2VsbDsKQEAgLTM5OCw3ICszOTgsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpub25TcGVjdWxhdGl2ZVBlZXBoCiAgICAgSlNWYWx1ZU9wZXJhbmQgYXJnKHRoaXMsIG9w
ZXJhbmQpOwogICAgIEdQUlJlZyBhcmdHUFIgPSBhcmcuZ3ByKCk7CiAgICAgCi0gICAgR1BSVGVt
cG9yYXJ5IHJlc3VsdCh0aGlzLCBhcmcpOworICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywg
UmV1c2UsIGFyZyk7CiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAK
ICAgICBKSVRDb21waWxlcjo6SnVtcCBub3RDZWxsOwpAQCAtNDk5LDcgKzQ5OSw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0aXZlUGVlcGgKIAogICAgICAgICBicmFuY2hUZXN0
MzIoY2FsbFJlc3VsdENvbmRpdGlvbiwgcmVzdWx0R1BSLCB0YWtlbik7CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBhcmcyKTsKKyAgICAgICAgR1BSVGVt
cG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgYXJnMik7CiAgICAgICAgIEdQUlJlZyByZXN1bHRH
UFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgCiAgICAgICAgIGFyZzEudXNlKCk7CkBAIC01ODIsNyAr
NTgyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6bm9uU3BlY3VsYXRpdmVOb25QZQogICAgICAg
ICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsKICAgICAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHRHUFIsIG1fY3VycmVudE5vZGUsIERhdGFGb3JtYXRKU0Jv
b2xlYW4sIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBhcmcyKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5
IHJlc3VsdCh0aGlzLCBSZXVzZSwgYXJnMik7CiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSBy
ZXN1bHQuZ3ByKCk7CiAKICAgICAgICAgYXJnMS51c2UoKTsKQEAgLTEzMTIsNyArMTMxMiw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RFcXVhbGkKIHsKICAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0gICAgR1BSVGVtcG9yYXJ5IHJl
c3VsdCh0aGlzLCBvcDEpOworICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIG9w
MSk7CiAgICAgCiAgICAgR1BSUmVnIG9wMUdQUiA9IG9wMS5ncHIoKTsKICAgICBHUFJSZWcgb3Ay
R1BSID0gb3AyLmdwcigpOwpAQCAtMTU3NCw3ICsxNTc0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUludGVnZXJDb21wYQogewogICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcDEo
dGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcDIodGhp
cywgbm9kZS0+Y2hpbGQyKCkpOwotICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgb3AxLCBv
cDIpOworICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIG9wMSwgb3AyKTsKICAg
ICAKICAgICBtX2ppdC5jb21wYXJlMzIoY29uZGl0aW9uLCBvcDEuZ3ByKCksIG9wMi5ncHIoKSwg
cmVzdWx0LmdwcigpKTsKICAgICAKQEAgLTE2OTgsNyArMTY5OCw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVMb2dpY2FsTm90KE4KICAgICAgICAgCiAgICAgY2FzZSBJbnQzMlVzZTog
ewogICAgICAgICBTcGVjdWxhdGVJbnQzMk9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQx
KCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIHZhbHVlKTsKKyAgICAgICAg
R1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgdmFsdWUpOwogICAgICAgICBtX2ppdC5j
b21wYXJlMzIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCB2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMigwKSwgcmVzdWx0LmdwcigpKTsKICAgICAgICAgbV9qaXQub3IzMihU
cnVzdGVkSW1tMzIoVmFsdWVGYWxzZSksIHJlc3VsdC5ncHIoKSk7CiAgICAgICAgIGpzVmFsdWVS
ZXN1bHQocmVzdWx0LmdwcigpLCBub2RlLCBEYXRhRm9ybWF0SlNCb29sZWFuKTsKQEAgLTE3MjAs
NyArMTcyMCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2dpY2FsTm90KE4KICAg
ICBjYXNlIEJvb2xlYW5Vc2U6IHsKICAgICAgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhub2RlLT5j
aGlsZDEoKSwgU3BlY0Jvb2xlYW4pKSB7CiAgICAgICAgICAgICBTcGVjdWxhdGVCb29sZWFuT3Bl
cmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMsIHZhbHVlKTsKKyAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQo
dGhpcywgUmV1c2UsIHZhbHVlKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9qaXQubW92
ZSh2YWx1ZS5ncHIoKSwgcmVzdWx0LmdwcigpKTsKICAgICAgICAgICAgIG1faml0LnhvcjY0KFRy
dXN0ZWRJbW0zMih0cnVlKSwgcmVzdWx0LmdwcigpKTsKQEAgLTIxMTUsMTQgKzIxMTUsMTQgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgQml0WG9y
OgogICAgICAgICBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMSgpLm5vZGUoKSkpIHsK
ICAgICAgICAgICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQy
KCkpOwotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBvcDIpOworICAgICAg
ICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgb3AyKTsKIAogICAgICAgICAg
ICAgYml0T3Aob3AsIHZhbHVlT2ZJbnQzMkNvbnN0YW50KG5vZGUtPmNoaWxkMSgpLm5vZGUoKSks
IG9wMi5ncHIoKSwgcmVzdWx0LmdwcigpKTsKIAogICAgICAgICAgICAgaW50ZWdlclJlc3VsdChy
ZXN1bHQuZ3ByKCksIG5vZGUpOwogICAgICAgICB9IGVsc2UgaWYgKGlzSW50MzJDb25zdGFudChu
b2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7CiAgICAgICAgICAgICBTcGVjdWxhdGVJbnQzMk9wZXJh
bmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHQodGhpcywgb3AxKTsKKyAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywg
UmV1c2UsIG9wMSk7CiAKICAgICAgICAgICAgIGJpdE9wKG9wLCB2YWx1ZU9mSW50MzJDb25zdGFu
dChub2RlLT5jaGlsZDIoKS5ub2RlKCkpLCBvcDEuZ3ByKCksIHJlc3VsdC5ncHIoKSk7CiAKQEAg
LTIxMzAsNyArMjEzMCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9k
ZSkKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBv
cDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVy
YW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBHUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMsIG9wMSwgb3AyKTsKKyAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQo
dGhpcywgUmV1c2UsIG9wMSwgb3AyKTsKIAogICAgICAgICAgICAgR1BSUmVnIHJlZzEgPSBvcDEu
Z3ByKCk7CiAgICAgICAgICAgICBHUFJSZWcgcmVnMiA9IG9wMi5ncHIoKTsKQEAgLTIxNDUsNyAr
MjE0NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBj
YXNlIEJpdFVSU2hpZnQ6CiAgICAgICAgIGlmIChpc0ludDMyQ29uc3RhbnQobm9kZS0+Y2hpbGQy
KCkubm9kZSgpKSkgewogICAgICAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIG9wMSh0aGlz
LCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMs
IG9wMSk7CisgICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBvcDEp
OwogCiAgICAgICAgICAgICBzaGlmdE9wKG9wLCBvcDEuZ3ByKCksIHZhbHVlT2ZJbnQzMkNvbnN0
YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkgJiAweDFmLCByZXN1bHQuZ3ByKCkpOwogCkBAIC0y
MTU0LDcgKzIxNTQsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUp
CiAgICAgICAgICAgICAvLyBEbyBub3QgYWxsb3cgc2hpZnQgYW1vdW50IHRvIGJlIHVzZWQgYXMg
dGhlIHJlc3VsdCwgTWFjcm9Bc3NlbWJsZXIgZG9lcyBub3QgcGVybWl0IHRoaXMuCiAgICAgICAg
ICAgICBTcGVjdWxhdGVJbnQzMk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkp
OwotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBvcDEpOworICAgICAgICAg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgb3AxKTsKIAogICAgICAgICAgICAg
R1BSUmVnIHJlZzEgPSBvcDEuZ3ByKCk7CiAgICAgICAgICAgICBHUFJSZWcgcmVnMiA9IG9wMi5n
cHIoKTsKQEAgLTIyNTcsNyArMjI1Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgU3BlY3Vs
YXRlU3RyaWN0SW50MzJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
ICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigp
KTsKLSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgb3AxKTsKKyAgICAgICAg
ICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIG9wMSk7CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG9wMUxlc3MgPSBtX2ppdC5icmFuY2gz
MihvcCA9PSBBcml0aE1pbiA/IE1hY3JvQXNzZW1ibGVyOjpMZXNzVGhhbiA6IE1hY3JvQXNzZW1i
bGVyOjpHcmVhdGVyVGhhbiwgb3AxLmdwcigpLCBvcDIuZ3ByKCkpOwogICAgICAgICAgICAgbV9q
aXQubW92ZShvcDIuZ3ByKCksIHJlc3VsdC5ncHIoKSk7CkBAIC0zMTc5LDcgKzMxNzksNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBUb1ByaW1p
dGl2ZTogewogICAgICAgICBSRUxFQVNFX0FTU0VSVChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkg
PT0gVW50eXBlZFVzZSk7CiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5j
aGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgb3AxKTsKKyAgICAg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgb3AxKTsKICAgICAgICAgCiAgICAg
ICAgIEdQUlJlZyBvcDFHUFIgPSBvcDEuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIg
PSByZXN1bHQuZ3ByKCk7CkBAIC0zNjgzLDcgKzM2ODMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIAogICAgIGNhc2UgR2V0U2NvcGU6IHsKICAg
ICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgZnVuY3Rpb24odGhpcywgbm9kZS0+Y2hpbGQxKCkp
OwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIGZ1bmN0aW9uKTsKKyAgICAgICAg
R1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgZnVuY3Rpb24pOwogICAgICAgICBtX2pp
dC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKGZ1bmN0aW9uLmdwcigpLCBKU0Z1bmN0aW9u
OjpvZmZzZXRPZlNjb3BlQ2hhaW4oKSksIHJlc3VsdC5ncHIoKSk7CiAgICAgICAgIGNlbGxSZXN1
bHQocmVzdWx0LmdwcigpLCBub2RlKTsKICAgICAgICAgYnJlYWs7CkBAIC0zNzA3LDcgKzM3MDcs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIAog
ICAgIGNhc2UgU2tpcFRvcFNjb3BlOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHNj
b3BlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0
aGlzLCBzY29wZSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIHNj
b3BlKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAgICAg
bV9qaXQubW92ZShzY29wZS5ncHIoKSwgcmVzdWx0R1BSKTsKICAgICAgICAgSklUQ29tcGlsZXI6
Okp1bXAgYWN0aXZhdGlvbk5vdENyZWF0ZWQgPQpAQCAtMzcyMyw3ICszNzIzLDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAKICAgICBjYXNlIFNr
aXBTY29wZTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBzY29wZSh0aGlzLCBub2Rl
LT5jaGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgc2NvcGUpOwor
ICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBzY29wZSk7CiAgICAgICAg
IG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OkFkZHJlc3Moc2NvcGUuZ3ByKCksIEpTU2NvcGU6
Om9mZnNldE9mTmV4dCgpKSwgcmVzdWx0LmdwcigpKTsKICAgICAgICAgY2VsbFJlc3VsdChyZXN1
bHQuZ3ByKCksIG5vZGUpOwogICAgICAgICBicmVhazsKQEAgLTM3NzQsNyArMzc3NCw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgc3dpdGNoIChu
b2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBDZWxsVXNlOiB7CiAgICAg
ICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
LSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgYmFzZSk7CisgICAgICAgICAg
ICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwogICAgICAgICAgICAgR1BS
UmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKQEAgLTM3ODksNyArMzc4OSw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgCiAgICAgICAgIGNh
c2UgVW50eXBlZFVzZTogewogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIGJh
c2UpOworICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgYmFzZSk7
CiAgICAgICAgIAogICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwogICAg
ICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKQEAgLTM5ODEsNyArMzk4
MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAg
CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6IHsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQg
YmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQo
dGhpcywgYmFzZSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGJh
c2UpOwogICAgICAgICAKICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwogICAg
ICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwpAQCAtNDAwNCw3ICs0MDA0LDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAKICAg
ICBjYXNlIEdldEJ5T2Zmc2V0OiB7CiAgICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhp
cywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIHN0
b3JhZ2UpOworICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBzdG9yYWdl
KTsKICAgICAgICAgCiAgICAgICAgIEdQUlJlZyBzdG9yYWdlR1BSID0gc3RvcmFnZS5ncHIoKTsK
ICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKQEAgLTQxODUsNyArNDE4
NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAg
CiAgICAgY2FzZSBJc0Jvb2xlYW46IHsKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhp
cywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIHZh
bHVlKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgdmFsdWUpOwog
ICAgICAgICAKICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZS5ncHIoKSwgcmVzdWx0LmdwcigpKTsK
ICAgICAgICAgbV9qaXQueG9yNjQoSklUQ29tcGlsZXI6OlRydXN0ZWRJbW0zMihWYWx1ZUZhbHNl
KSwgcmVzdWx0LmdwcigpKTsKQEAgLTQxOTcsNyArNDE5Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgCiAgICAgY2FzZSBJc051bWJlcjogewog
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAg
ICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgdmFsdWUpOworICAgICAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMsIFJldXNlLCB2YWx1ZSk7CiAgICAgICAgIAogICAgICAgICBtX2ppdC50
ZXN0NjQoSklUQ29tcGlsZXI6Ok5vblplcm8sIHZhbHVlLmdwcigpLCBHUFJJbmZvOjp0YWdUeXBl
TnVtYmVyUmVnaXN0ZXIsIHJlc3VsdC5ncHIoKSk7CiAgICAgICAgIG1faml0Lm9yMzIoVHJ1c3Rl
ZEltbTMyKFZhbHVlRmFsc2UpLCByZXN1bHQuZ3ByKCkpOwpAQCAtNDIwNyw3ICs0MjA3LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAKICAgICBj
YXNlIElzU3RyaW5nOiB7CiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUt
PmNoaWxkMSgpKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCB2YWx1ZSk7Cisg
ICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIHZhbHVlKTsKICAgICAgICAg
CiAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGlzTm90Q2VsbCA9IG1faml0LmJyYW5jaFRlc3Q2
NChKSVRDb21waWxlcjo6Tm9uWmVybywgdmFsdWUuZ3ByKCksIEdQUkluZm86OnRhZ01hc2tSZWdp
c3Rlcik7CiAgICAgICAgIApAQCAtNDMyNyw3ICs0MzI3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBSRUxFQVNFX0FTU0VSVCghbm9kZS0+Y29k
ZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUpOwogICAgICAgICAKICAgICAgICAgSlNWYWx1ZU9wZXJh
bmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVz
dWx0KHRoaXMsIHZhbHVlKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVz
ZSwgdmFsdWUpOwogICAgICAgICAKICAgICAgICAgR1BSUmVnIHZhbHVlR1BSID0gdmFsdWUuZ3By
KCk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CkBAIC00MzQ1LDcg
KzQzNDUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAg
ICAgIAogICAgIGNhc2UgQ3JlYXRlQXJndW1lbnRzOiB7CiAgICAgICAgIEpTVmFsdWVPcGVyYW5k
IHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3Vs
dCh0aGlzLCB2YWx1ZSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2Us
IHZhbHVlKTsKICAgICAgICAgCiAgICAgICAgIEdQUlJlZyB2YWx1ZUdQUiA9IHZhbHVlLmdwcigp
OwogICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwpAQCAtNDY0Niw3ICs0
NjQ2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAg
ICAKICAgICBjYXNlIE5ld0Z1bmN0aW9uOiB7CiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVl
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlz
LCB2YWx1ZSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIHZhbHVl
KTsKICAgICAgICAgCiAgICAgICAgIEdQUlJlZyB2YWx1ZUdQUiA9IHZhbHVlLmdwcigpOwogICAg
ICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDE1NTU5
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTg0LDExMSArMTE4NCwxOCBAQCBHUFJUZW1wb3Jhcnk6OkdQUlRl
bXBvcmFyeShTcGVjdWxhdGl2ZUpJCiAgICAgbV9ncHIgPSBtX2ppdC0+YWxsb2NhdGUoc3BlY2lm
aWMpOwogfQogCi1HUFJUZW1wb3Jhcnk6OkdQUlRlbXBvcmFyeShTcGVjdWxhdGl2ZUpJVCogaml0
LCBTcGVjdWxhdGVJbnQzMk9wZXJhbmQmIG9wMSkKLSAgICA6IG1faml0KGppdCkKLSAgICAsIG1f
Z3ByKEludmFsaWRHUFJSZWcpCi17Ci0gICAgaWYgKG1faml0LT5jYW5SZXVzZShvcDEubm9kZSgp
KSkKLSAgICAgICAgbV9ncHIgPSBtX2ppdC0+cmV1c2Uob3AxLmdwcigpKTsKLSAgICBlbHNlCi0g
ICAgICAgIG1fZ3ByID0gbV9qaXQtPmFsbG9jYXRlKCk7Ci19Ci0KLUdQUlRlbXBvcmFyeTo6R1BS
VGVtcG9yYXJ5KFNwZWN1bGF0aXZlSklUKiBqaXQsIFNwZWN1bGF0ZUludDMyT3BlcmFuZCYgb3Ax
LCBTcGVjdWxhdGVJbnQzMk9wZXJhbmQmIG9wMikKLSAgICA6IG1faml0KGppdCkKLSAgICAsIG1f
Z3ByKEludmFsaWRHUFJSZWcpCi17Ci0gICAgaWYgKG1faml0LT5jYW5SZXVzZShvcDEubm9kZSgp
KSkKLSAgICAgICAgbV9ncHIgPSBtX2ppdC0+cmV1c2Uob3AxLmdwcigpKTsKLSAgICBlbHNlIGlm
IChtX2ppdC0+Y2FuUmV1c2Uob3AyLm5vZGUoKSkpCi0gICAgICAgIG1fZ3ByID0gbV9qaXQtPnJl
dXNlKG9wMi5ncHIoKSk7Ci0gICAgZWxzZQotICAgICAgICBtX2dwciA9IG1faml0LT5hbGxvY2F0
ZSgpOwotfQotCi1HUFJUZW1wb3Jhcnk6OkdQUlRlbXBvcmFyeShTcGVjdWxhdGl2ZUpJVCogaml0
LCBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQmIG9wMSkKLSAgICA6IG1faml0KGppdCkKLSAg
ICAsIG1fZ3ByKEludmFsaWRHUFJSZWcpCi17Ci0gICAgaWYgKG1faml0LT5jYW5SZXVzZShvcDEu
bm9kZSgpKSkKLSAgICAgICAgbV9ncHIgPSBtX2ppdC0+cmV1c2Uob3AxLmdwcigpKTsKLSAgICBl
bHNlCi0gICAgICAgIG1fZ3ByID0gbV9qaXQtPmFsbG9jYXRlKCk7Ci19Ci0KLUdQUlRlbXBvcmFy
eTo6R1BSVGVtcG9yYXJ5KFNwZWN1bGF0aXZlSklUKiBqaXQsIEludDMyT3BlcmFuZCYgb3AxKQot
ICAgIDogbV9qaXQoaml0KQotICAgICwgbV9ncHIoSW52YWxpZEdQUlJlZykKLXsKLSAgICBpZiAo
bV9qaXQtPmNhblJldXNlKG9wMS5ub2RlKCkpKQotICAgICAgICBtX2dwciA9IG1faml0LT5yZXVz
ZShvcDEuZ3ByKCkpOwotICAgIGVsc2UKLSAgICAgICAgbV9ncHIgPSBtX2ppdC0+YWxsb2NhdGUo
KTsKLX0KLQotR1BSVGVtcG9yYXJ5OjpHUFJUZW1wb3JhcnkoU3BlY3VsYXRpdmVKSVQqIGppdCwg
SW50MzJPcGVyYW5kJiBvcDEsIEludDMyT3BlcmFuZCYgb3AyKQotICAgIDogbV9qaXQoaml0KQot
ICAgICwgbV9ncHIoSW52YWxpZEdQUlJlZykKLXsKLSAgICBpZiAobV9qaXQtPmNhblJldXNlKG9w
MS5ub2RlKCkpKQotICAgICAgICBtX2dwciA9IG1faml0LT5yZXVzZShvcDEuZ3ByKCkpOwotICAg
IGVsc2UgaWYgKG1faml0LT5jYW5SZXVzZShvcDIubm9kZSgpKSkKLSAgICAgICAgbV9ncHIgPSBt
X2ppdC0+cmV1c2Uob3AyLmdwcigpKTsKLSAgICBlbHNlCi0gICAgICAgIG1fZ3ByID0gbV9qaXQt
PmFsbG9jYXRlKCk7Ci19Ci0KLUdQUlRlbXBvcmFyeTo6R1BSVGVtcG9yYXJ5KFNwZWN1bGF0aXZl
SklUKiBqaXQsIFNwZWN1bGF0ZUNlbGxPcGVyYW5kJiBvcDEpCi0gICAgOiBtX2ppdChqaXQpCi0g
ICAgLCBtX2dwcihJbnZhbGlkR1BSUmVnKQotewotICAgIGlmIChtX2ppdC0+Y2FuUmV1c2Uob3Ax
Lm5vZGUoKSkpCi0gICAgICAgIG1fZ3ByID0gbV9qaXQtPnJldXNlKG9wMS5ncHIoKSk7Ci0gICAg
ZWxzZQotICAgICAgICBtX2dwciA9IG1faml0LT5hbGxvY2F0ZSgpOwotfQotCi1HUFJUZW1wb3Jh
cnk6OkdQUlRlbXBvcmFyeShTcGVjdWxhdGl2ZUpJVCogaml0LCBTcGVjdWxhdGVCb29sZWFuT3Bl
cmFuZCYgb3AxKQotICAgIDogbV9qaXQoaml0KQotICAgICwgbV9ncHIoSW52YWxpZEdQUlJlZykK
LXsKLSAgICBpZiAobV9qaXQtPmNhblJldXNlKG9wMS5ub2RlKCkpKQotICAgICAgICBtX2dwciA9
IG1faml0LT5yZXVzZShvcDEuZ3ByKCkpOwotICAgIGVsc2UKLSAgICAgICAgbV9ncHIgPSBtX2pp
dC0+YWxsb2NhdGUoKTsKLX0KLQotI2lmIFVTRShKU1ZBTFVFNjQpCi1HUFJUZW1wb3Jhcnk6OkdQ
UlRlbXBvcmFyeShTcGVjdWxhdGl2ZUpJVCogaml0LCBKU1ZhbHVlT3BlcmFuZCYgb3AxKQotICAg
IDogbV9qaXQoaml0KQotICAgICwgbV9ncHIoSW52YWxpZEdQUlJlZykKLXsKLSAgICBpZiAobV9q
aXQtPmNhblJldXNlKG9wMS5ub2RlKCkpKQotICAgICAgICBtX2dwciA9IG1faml0LT5yZXVzZShv
cDEuZ3ByKCkpOwotICAgIGVsc2UKLSAgICAgICAgbV9ncHIgPSBtX2ppdC0+YWxsb2NhdGUoKTsK
LX0KLSNlbHNlCi1HUFJUZW1wb3Jhcnk6OkdQUlRlbXBvcmFyeShTcGVjdWxhdGl2ZUpJVCogaml0
LCBKU1ZhbHVlT3BlcmFuZCYgb3AxLCBib29sIHRhZykKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQor
R1BSVGVtcG9yYXJ5OjpHUFJUZW1wb3JhcnkoCisgICAgU3BlY3VsYXRpdmVKSVQqIGppdCwgUmV1
c2VUYWcsIEpTVmFsdWVPcGVyYW5kJiBvcDEsIFdoaWNoVmFsdWVXb3JkIHdoaWNoKQogICAgIDog
bV9qaXQoaml0KQogICAgICwgbV9ncHIoSW52YWxpZEdQUlJlZykKIHsKICAgICBpZiAoIW9wMS5p
c0RvdWJsZSgpICYmIG1faml0LT5jYW5SZXVzZShvcDEubm9kZSgpKSkKLSAgICAgICAgbV9ncHIg
PSBtX2ppdC0+cmV1c2UodGFnID8gb3AxLnRhZ0dQUigpIDogb3AxLnBheWxvYWRHUFIoKSk7Ci0g
ICAgZWxzZQotICAgICAgICBtX2dwciA9IG1faml0LT5hbGxvY2F0ZSgpOwotfQotI2VuZGlmCi0K
LUdQUlRlbXBvcmFyeTo6R1BSVGVtcG9yYXJ5KFNwZWN1bGF0aXZlSklUKiBqaXQsIFN0b3JhZ2VP
cGVyYW5kJiBvcDEpCi0gICAgOiBtX2ppdChqaXQpCi0gICAgLCBtX2dwcihJbnZhbGlkR1BSUmVn
KQotewotICAgIGlmIChtX2ppdC0+Y2FuUmV1c2Uob3AxLm5vZGUoKSkpCi0gICAgICAgIG1fZ3By
ID0gbV9qaXQtPnJldXNlKG9wMS5ncHIoKSk7CisgICAgICAgIG1fZ3ByID0gbV9qaXQtPnJldXNl
KG9wMS5ncHIod2hpY2gpKTsKICAgICBlbHNlCiAgICAgICAgIG1fZ3ByID0gbV9qaXQtPmFsbG9j
YXRlKCk7CiB9CisjZW5kaWYgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAogdm9pZCBHUFJUZW1wb3Jh
cnk6OmFkb3B0KEdQUlRlbXBvcmFyeSYgb3RoZXIpCiB7CkBAIC0yMjM3LDcgKzIxNDQsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVUb0ludDMyCiAgICAgc3dpdGNoIChub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCkpIHsKICAgICBjYXNlIEludDMyVXNlOiB7CiAgICAgICAgIFNw
ZWN1bGF0ZUludDMyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBH
UFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIG9wMSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1
bHQodGhpcywgUmV1c2UsIG9wMSk7CiAgICAgICAgIG1faml0Lm1vdmUob3AxLmdwcigpLCByZXN1
bHQuZ3ByKCkpOwogICAgICAgICBpbnRlZ2VyUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSwgb3Ax
LmZvcm1hdCgpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjI0OCw3ICsyMTU1LDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlVG9JbnQzMgogICAgICAgICBzd2l0Y2ggKGNoZWNr
R2VuZXJhdGVkVHlwZUZvclRvSW50MzIobm9kZS0+Y2hpbGQxKCkubm9kZSgpKSkgewogICAgICAg
ICBjYXNlIEdlbmVyYXRlZE9wZXJhbmRJbnRlZ2VyOiB7CiAgICAgICAgICAgICBTcGVjdWxhdGVJ
bnQzMk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpLCBNYW51YWxPcGVyYW5kU3BlY3Vs
YXRpb24pOwotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBvcDEpOworICAg
ICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgb3AxKTsKICAgICAgICAg
ICAgIG1faml0Lm1vdmUob3AxLmdwcigpLCByZXN1bHQuZ3ByKCkpOwogICAgICAgICAgICAgaW50
ZWdlclJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUsIG9wMS5mb3JtYXQoKSk7CiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0yMzg3LDcgKzIyOTQsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlVmFsdWVUb0ludDMyCiAgICAgCiAgICAgY2FzZSBCb29sZWFuVXNlOiB7CiAgICAgICAgIFNw
ZWN1bGF0ZUJvb2xlYW5PcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAg
IEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgb3AxKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJl
c3VsdCh0aGlzLCBSZXVzZSwgb3AxKTsKICAgICAgICAgCiAgICAgICAgIG1faml0Lm1vdmUob3Ax
LmdwcigpLCByZXN1bHQuZ3ByKCkpOwogICAgICAgICBtX2ppdC5hbmQzMihKSVRDb21waWxlcjo6
VHJ1c3RlZEltbTMyKDEpLCByZXN1bHQuZ3ByKCkpOwpAQCAtMjk4MSw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFkZChOb2RlKiBubwogICAgICAgICAgICAgICAgIAog
ICAgICAgICBTcGVjdWxhdGVJbnQzMk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
ICAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7
Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgb3AxLCBvcDIpOworICAgICAgICBH
UFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBvcDEsIG9wMik7CiAKICAgICAgICAgR1BS
UmVnIGdwcjEgPSBvcDEuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyBncHIyID0gb3AyLmdwcigpOwpA
QCAtMzkwNSw4ICszODEyLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ0Vx
dWFsaQogICAgIEdQUlRlbXBvcmFyeSBsZW5ndGgodGhpcyk7CiAgICAgR1BSVGVtcG9yYXJ5IGxl
ZnRUZW1wKHRoaXMpOwogICAgIEdQUlRlbXBvcmFyeSByaWdodFRlbXAodGhpcyk7Ci0gICAgR1BS
VGVtcG9yYXJ5IGxlZnRUZW1wMih0aGlzLCBsZWZ0KTsKLSAgICBHUFJUZW1wb3JhcnkgcmlnaHRU
ZW1wMih0aGlzLCByaWdodCk7CisgICAgR1BSVGVtcG9yYXJ5IGxlZnRUZW1wMih0aGlzLCBSZXVz
ZSwgbGVmdCk7CisgICAgR1BSVGVtcG9yYXJ5IHJpZ2h0VGVtcDIodGhpcywgUmV1c2UsIHJpZ2h0
KTsKICAgICAKICAgICBHUFJSZWcgbGVmdEdQUiA9IGxlZnQuZ3ByKCk7CiAgICAgR1BSUmVnIHJp
Z2h0R1BSID0gcmlnaHQuZ3ByKCk7CkBAIC00MTU4LDcgKzQwNjUsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkFyCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
R2V0QXJndW1lbnRzTGVuZ3RoKE5vZGUqIG5vZGUpCiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0
aGlzLCBiYXNlKTsKKyAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsK
ICAgICAKICAgICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7CiAgICAgR1BSUmVnIHJlc3Vs
dFJlZyA9IHJlc3VsdC5ncHIoKTsKQEAgLTQxODcsNyArNDA5NCw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmcKICAgICBjYXNlIEFycmF5OjpEb3VibGU6CiAgICAg
Y2FzZSBBcnJheTo6Q29udGlndW91czogewogICAgICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdl
KHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlz
LCBzdG9yYWdlKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgc3Rv
cmFnZSk7CiAgICAgICAgIEdQUlJlZyBzdG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKICAgICAg
ICAgR1BSUmVnIHJlc3VsdFJlZyA9IHJlc3VsdC5ncHIoKTsKICAgICAgICAgbV9qaXQubG9hZDMy
KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQ
dWJsaWNMZW5ndGgoKSksIHJlc3VsdFJlZyk7CkBAIC00MTk4LDcgKzQxMDUsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QXJyYXlMZW5nCiAgICAgY2FzZSBBcnJheTo6QXJyYXlT
dG9yYWdlOgogICAgIGNhc2UgQXJyYXk6OlNsb3dQdXRBcnJheVN0b3JhZ2U6IHsKICAgICAgICAg
U3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgIEdQ
UlRlbXBvcmFyeSByZXN1bHQodGhpcywgc3RvcmFnZSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHQodGhpcywgUmV1c2UsIHN0b3JhZ2UpOwogICAgICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9
IHN0b3JhZ2UuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRSZWcgPSByZXN1bHQuZ3ByKCk7
CiAgICAgICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVn
LCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpLCByZXN1bHRSZWcpOwpAQCAtNDIx
MCw3ICs0MTE3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFycmF5TGVuZwog
ICAgIH0KICAgICBjYXNlIEFycmF5OjpTdHJpbmc6IHsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHQodGhpcywgYmFzZSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1
c2UsIGJhc2UpOwogICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CiAgICAgICAg
IEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIG1faml0LmxvYWQzMihN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU1N0cmluZzo6b2Zmc2V0T2ZMZW5ndGgo
KSksIHJlc3VsdEdQUik7CkBAIC00MjI0LDcgKzQxMzEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QXJyYXlMZW5nCiAgICAgZGVmYXVsdDogewogICAgICAgICBBU1NFUlQoaXNU
eXBlZFZpZXcobm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSkpOwogICAgICAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAg
R1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBiYXNlKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJl
c3VsdCh0aGlzLCBSZXVzZSwgYmFzZSk7CiAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5n
cHIoKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAgICAg
bV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTQXJyYXlCdWZm
ZXJWaWV3OjpvZmZzZXRPZkxlbmd0aCgpKSwgcmVzdWx0R1BSKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDE1NTU5NSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjM5OCwxMiArMjM5OCwxNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVCgh
bV9pc0RvdWJsZSk7CiAgICAgICAgIHJldHVybiBtX3JlZ2lzdGVyLnBhaXIucGF5bG9hZEdQUjsK
ICAgICB9Ci0KKyAgICAKICAgICBKU1ZhbHVlUmVncyBqc1ZhbHVlUmVncygpCiAgICAgewogICAg
ICAgICByZXR1cm4gSlNWYWx1ZVJlZ3ModGFnR1BSKCksIHBheWxvYWRHUFIoKSk7CiAgICAgfQog
CisgICAgR1BSUmVnIGdwcihXaGljaFZhbHVlV29yZCB3aGljaCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBqc1ZhbHVlUmVncygpLmdwcih3aGljaCk7CisgICAgfQorCiAgICAgRlBSUmVnIGZwcigp
CiAgICAgewogICAgICAgICBmaWxsKCk7CkBAIC0yNDg5LDI0ICsyNDk0LDM4IEBAIHByaXZhdGU6
CiAvLyBjdXJyZW50bHkgYWxsb2NhdGVkIHRvIGNoaWxkIG5vZGVzIHdob3NlIHZhbHVlIGlzIGNv
bnN1bWVkCiAvLyBieSwgYW5kIG5vdCBsaXZlIGFmdGVyLCB0aGlzIG9wZXJhdGlvbi4KIAorZW51
bSBSZXVzZVRhZyB7IFJldXNlIH07CisKIGNsYXNzIEdQUlRlbXBvcmFyeSB7CiBwdWJsaWM6CiAg
ICAgR1BSVGVtcG9yYXJ5KCk7CiAgICAgR1BSVGVtcG9yYXJ5KFNwZWN1bGF0aXZlSklUKik7CiAg
ICAgR1BSVGVtcG9yYXJ5KFNwZWN1bGF0aXZlSklUKiwgR1BSUmVnIHNwZWNpZmljKTsKLSAgICBH
UFJUZW1wb3JhcnkoU3BlY3VsYXRpdmVKSVQqLCBTcGVjdWxhdGVJbnQzMk9wZXJhbmQmKTsKLSAg
ICBHUFJUZW1wb3JhcnkoU3BlY3VsYXRpdmVKSVQqLCBTcGVjdWxhdGVJbnQzMk9wZXJhbmQmLCBT
cGVjdWxhdGVJbnQzMk9wZXJhbmQmKTsKLSAgICBHUFJUZW1wb3JhcnkoU3BlY3VsYXRpdmVKSVQq
LCBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQmKTsKLSAgICBHUFJUZW1wb3JhcnkoU3BlY3Vs
YXRpdmVKSVQqLCBJbnQzMk9wZXJhbmQmKTsKLSAgICBHUFJUZW1wb3JhcnkoU3BlY3VsYXRpdmVK
SVQqLCBJbnQzMk9wZXJhbmQmLCBJbnQzMk9wZXJhbmQmKTsKLSAgICBHUFJUZW1wb3JhcnkoU3Bl
Y3VsYXRpdmVKSVQqLCBTcGVjdWxhdGVDZWxsT3BlcmFuZCYpOwotICAgIEdQUlRlbXBvcmFyeShT
cGVjdWxhdGl2ZUpJVCosIFNwZWN1bGF0ZUJvb2xlYW5PcGVyYW5kJik7Ci0jaWYgVVNFKEpTVkFM
VUU2NCkKLSAgICBHUFJUZW1wb3JhcnkoU3BlY3VsYXRpdmVKSVQqLCBKU1ZhbHVlT3BlcmFuZCYp
OwotI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBHUFJUZW1wb3JhcnkoU3BlY3VsYXRpdmVK
SVQqLCBKU1ZhbHVlT3BlcmFuZCYsIGJvb2wgdGFnID0gdHJ1ZSk7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KKyAgICBHUFJUZW1wb3JhcnkoU3BlY3VsYXRpdmVKSVQqIGppdCwgUmV1c2VUYWcs
IFQmIG9wZXJhbmQpCisgICAgICAgIDogbV9qaXQoaml0KQorICAgICAgICAsIG1fZ3ByKEludmFs
aWRHUFJSZWcpCisgICAgeworICAgICAgICBpZiAobV9qaXQtPmNhblJldXNlKG9wZXJhbmQubm9k
ZSgpKSkKKyAgICAgICAgICAgIG1fZ3ByID0gbV9qaXQtPnJldXNlKG9wZXJhbmQuZ3ByKCkpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2dwciA9IG1faml0LT5hbGxvY2F0ZSgpOworICAg
IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CisgICAgR1BSVGVtcG9y
YXJ5KFNwZWN1bGF0aXZlSklUKiBqaXQsIFJldXNlVGFnLCBUMSYgb3AxLCBUMiYgb3AyKQorICAg
ICAgICA6IG1faml0KGppdCkKKyAgICAgICAgLCBtX2dwcihJbnZhbGlkR1BSUmVnKQorICAgIHsK
KyAgICAgICAgaWYgKG1faml0LT5jYW5SZXVzZShvcDEubm9kZSgpKSkKKyAgICAgICAgICAgIG1f
Z3ByID0gbV9qaXQtPnJldXNlKG9wMS5ncHIoKSk7CisgICAgICAgIGVsc2UgaWYgKG1faml0LT5j
YW5SZXVzZShvcDIubm9kZSgpKSkKKyAgICAgICAgICAgIG1fZ3ByID0gbV9qaXQtPnJldXNlKG9w
Mi5ncHIoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fZ3ByID0gbV9qaXQtPmFsbG9j
YXRlKCk7CisgICAgfQorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgR1BSVGVtcG9yYXJ5KFNw
ZWN1bGF0aXZlSklUKiwgUmV1c2VUYWcsIEpTVmFsdWVPcGVyYW5kJiwgV2hpY2hWYWx1ZVdvcmQp
OwogI2VuZGlmCi0gICAgR1BSVGVtcG9yYXJ5KFNwZWN1bGF0aXZlSklUKiwgU3RvcmFnZU9wZXJh
bmQmKTsKIAogICAgIHZvaWQgYWRvcHQoR1BSVGVtcG9yYXJ5Jik7CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHJldmlzaW9uIDE1NTU5MCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAkod29ya2luZyBjb3B5
KQpAQCAtOTgsNiArOTgsMTEgQEAgdW5pb24gRW5jb2RlZFZhbHVlRGVzY3JpcHRvciB7CiAjZW5k
aWYKIH07CiAKK2VudW0gV2hpY2hWYWx1ZVdvcmQgeworICAgIFRhZ1dvcmQsCisgICAgUGF5bG9h
ZFdvcmQKK307CisKIC8vIFRoaXMgaW1wbGVtZW50cyBUb0ludDMyLCBkZWZpbmVkIGluIEVDTUEt
MjYyIDkuNS4KIEpTX0VYUE9SVF9QUklWQVRFIGludDMyX3QgdG9JbnQzMihkb3VibGUpOwogCg==
</data>
<flag name="review"
          id="233566"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>