<?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>175440</bug_id>
          
          <creation_ts>2017-08-10 13:50:36 -0700</creation_ts>
          <short_desc>Apply the UNLIKELY macro to some unlikely things.</short_desc>
          <delta_ts>2017-08-10 16:00:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1337569</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-10 13:50:36 -0700</bug_when>
    <thetext>These changes came about from noticing that VM::m_perBytecodeProfiler is only used when Options::useProfiler() is true.  Options::useProfiler() is false by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337571</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-10 13:52:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/33834767&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337583</commentid>
    <comment_count>2</comment_count>
      <attachid>317843</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-10 14:13:21 -0700</bug_when>
    <thetext>Created attachment 317843
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337585</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-10 14:15:14 -0700</bug_when>
    <thetext>Attachment 317843 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:147:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337586</commentid>
    <comment_count>4</comment_count>
      <attachid>317843</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-08-10 14:17:28 -0700</bug_when>
    <thetext>Comment on attachment 317843
proposed patch.

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

r=me

&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:1920
&gt; +        if (UNLIKELY(Profiler::Compilation* compilation = jitCode()-&gt;dfgCommon()-&gt;compilation.get()))

IIRC, this does not work in some platforms (it causes compiling error). `if (UNLIKELY(Type x = ...))`
Please check EWS. If EWS becomes green, ignore this comment :)

&gt; Source/JavaScriptCore/ftl/FTLLink.cpp:71
&gt; +    if (UNLIKELY(Profiler::Compilation* compilation = graph.compilation())) {

Ditto.

&gt; Source/JavaScriptCore/runtime/ScriptExecutable.cpp:160
&gt; +        if (UNLIKELY(Debugger* debugger = genericCodeBlock-&gt;globalObject()-&gt;debugger()))

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337592</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-10 14:25:20 -0700</bug_when>
    <thetext>Thanks for the review.  I&apos;ve fixed the issues, and will retest on EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337595</commentid>
    <comment_count>6</comment_count>
      <attachid>317848</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-10 14:28:54 -0700</bug_when>
    <thetext>Created attachment 317848
patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337597</commentid>
    <comment_count>7</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-10 14:31:44 -0700</bug_when>
    <thetext>Attachment 317848 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:147:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337660</commentid>
    <comment_count>8</comment_count>
      <attachid>317848</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-10 16:00:09 -0700</bug_when>
    <thetext>Comment on attachment 317848
patch for landing.

Clearing flags on attachment: 317848

Committed r220556: &lt;http://trac.webkit.org/changeset/220556&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337661</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-10 16:00:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317843</attachid>
            <date>2017-08-10 14:13:21 -0700</date>
            <delta_ts>2017-08-10 14:27:28 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-175440.patch</filename>
            <type>text/plain</type>
            <size>18365</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNTQyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBA
CisyMDE3LTA4LTEwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
cHBseSB0aGUgVU5MSUtFTFkgbWFjcm8gdG8gc29tZSB1bmxpa2VseSB0aGluZ3MuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU0NDAKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMzODM0NzY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q29kZUJsb2NrOjp+Q29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpqZXR0
aXNvbik6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbCk6CisgICAgICAgIChKU0M6OkRGRzo6
Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVZhcmFyZ3NDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpC
eXRlQ29kZVBhcnNlcjo6aGFuZGxlR2V0QnlJZCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZVB1dEJ5SWQpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFy
c2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFy
c2VDb2RlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OkpJVENvbXBpbGVyKToKKyAgICAgICAgKEpTQzo6REZH
OjpKSVRDb21waWxlcjo6bGlua09TUkV4aXRzKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21w
aWxlcjo6bGluayk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmRpc2Fzc2VtYmxl
KToKKyAgICAgICAgKiBkZmcvREZHSklURmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpKSVRGaW5hbGl6ZXI6OmZpbmFsaXplQ29tbW9uKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhp
dC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdDo6Y29tcGlsZU9TUkV4aXQpOgorICAg
ICAgICAqIGRmZy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpQbGFuKToK
KyAgICAgICAgKiBmdGwvRlRMSklURmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpK
SVRGaW5hbGl6ZXI6OmZpbmFsaXplQ29tbW9uKToKKyAgICAgICAgKiBmdGwvRlRMTGluay5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6bGluayk6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21w
aWxlci5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y29tcGlsZVN0dWIpOgorICAgICAgICAqIGpp
dC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVXaXRob3V0TGlua2luZyk6CisgICAgICAgIChKU0M6
OkpJVDo6bGluayk6CisgICAgICAgICogcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmNwcDoKKyAg
ICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUpOgorICAgICAgICAqIHJ1
bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6Vk0pOgorCiAyMDE3LTA4LTEwICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzb21l
IHVudXNlZCBsYW1iZGEgY2FwdHVyZXMgc28gdGhhdCBXZWJLaXQgYnVpbGRzIHdpdGggLVd1bnVz
ZWQtbGFtYmRhLWNhcHR1cmUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAyMjA1NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODM5LDcgKzgzOSw3
IEBAIGJvb2wgQ29kZUJsb2NrOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFMKIAogQ29kZUJsb2Nr
Ojp+Q29kZUJsb2NrKCkKIHsKLSAgICBpZiAobV92bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyKQor
ICAgIGlmIChVTkxJS0VMWShtX3ZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIpKQogICAgICAgICBt
X3ZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPm5vdGlmeURlc3RydWN0aW9uKHRoaXMpOwogCiAg
ICAgaWYgKHVubGlua2VkQ29kZUJsb2NrKCktPmRpZE9wdGltaXplKCkgPT0gTWl4ZWRUcmlTdGF0
ZSkKQEAgLTE5MTcsNyArMTkxNyw3IEBAIHZvaWQgQ29kZUJsb2NrOjpqZXR0aXNvbihQcm9maWxl
cjo6SmV0dGkKIAogI2lmIEVOQUJMRShERkdfSklUKQogICAgIGlmIChyZWFzb24gIT0gUHJvZmls
ZXI6OkpldHRpc29uRHVlVG9PbGRBZ2UpIHsKLSAgICAgICAgaWYgKFByb2ZpbGVyOjpDb21waWxh
dGlvbiogY29tcGlsYXRpb24gPSBqaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5jb21waWxhdGlvbi5n
ZXQoKSkKKyAgICAgICAgaWYgKFVOTElLRUxZKFByb2ZpbGVyOjpDb21waWxhdGlvbiogY29tcGls
YXRpb24gPSBqaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5jb21waWxhdGlvbi5nZXQoKSkpCiAgICAg
ICAgICAgICBjb21waWxhdGlvbi0+c2V0SmV0dGlzb25SZWFzb24ocmVhc29uLCBkZXRhaWwpOwog
ICAgICAgICAKICAgICAgICAgLy8gVGhpcyBhY2NvbXBsaXNoZXMgKDEpLCBhbmQgZG9lcyBpdHMg
b3duIGJvb2sta2VlcGluZyBhYm91dCB3aGV0aGVyIGl0IGhhcyBhbHJlYWR5IGhhcHBlbmVkLgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAJKHJldmlzaW9uIDIyMDU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzE2LDcgKzEzMTYsNyBAQCBCeXRl
Q29kZVBhcnNlcjo6VGVybWluYWxpdHkgQnl0ZUNvZGVQYXJzCiAgICAgdW5zaWduZWQgbmV4dE9m
ZnNldCA9IG1fY3VycmVudEluZGV4ICsgaW5zdHJ1Y3Rpb25TaXplOwogICAgIAogICAgIGlmICho
YW5kbGVJbmxpbmluZyhjYWxsVGFyZ2V0LCByZXN1bHQsIGNhbGxMaW5rU3RhdHVzLCByZWdpc3Rl
ck9mZnNldCwgdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoMCwgcmVnaXN0ZXJPZmZzZXQpLCBW
aXJ0dWFsUmVnaXN0ZXIoKSwgMCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIG5leHRPZmZz
ZXQsIG9wLCBraW5kLCBwcmVkaWN0aW9uKSkgewotICAgICAgICBpZiAobV9ncmFwaC5jb21waWxh
dGlvbigpKQorICAgICAgICBpZiAoVU5MSUtFTFkobV9ncmFwaC5jb21waWxhdGlvbigpKSkKICAg
ICAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5lZENhbGwoKTsKICAg
ICAgICAgcmV0dXJuIE5vblRlcm1pbmFsOwogICAgIH0KQEAgLTEzNTQsNyArMTM1NCw3IEBAIEJ5
dGVDb2RlUGFyc2VyOjpUZXJtaW5hbGl0eSBCeXRlQ29kZVBhcnMKICAgICAKICAgICBpZiAoY2Fs
bExpbmtTdGF0dXMuY2FuT3B0aW1pemUoKQogICAgICAgICAmJiBoYW5kbGVJbmxpbmluZyhjYWxs
VGFyZ2V0LCByZXN1bHQsIGNhbGxMaW5rU3RhdHVzLCBmaXJzdEZyZWVSZWcsIFZpcnR1YWxSZWdp
c3Rlcih0aGlzUmVnKSwgVmlydHVhbFJlZ2lzdGVyKGFyZ3VtZW50cyksIGZpcnN0VmFyQXJnT2Zm
c2V0LCAwLCBtX2N1cnJlbnRJbmRleCArIE9QQ09ERV9MRU5HVEgob3BfY2FsbF92YXJhcmdzKSwg
b3AsIElubGluZUNhbGxGcmFtZTo6dmFyYXJnc0tpbmRGb3IoY2FsbE1vZGUpLCBwcmVkaWN0aW9u
KSkgewotICAgICAgICBpZiAobV9ncmFwaC5jb21waWxhdGlvbigpKQorICAgICAgICBpZiAoVU5M
SUtFTFkobV9ncmFwaC5jb21waWxhdGlvbigpKSkKICAgICAgICAgICAgIG1fZ3JhcGguY29tcGls
YXRpb24oKS0+bm90aWNlSW5saW5lZENhbGwoKTsKICAgICAgICAgcmV0dXJuIE5vblRlcm1pbmFs
OwogICAgIH0KQEAgLTM3MTcsNyArMzcxNyw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRs
ZUdldEJ5SWQoCiAKICAgICBpZiAoZ2V0QnlJZCAhPSBUcnlHZXRCeUlkICYmIGdldEJ5SWRTdGF0
dXMuaXNNb2R1bGVOYW1lc3BhY2UoKSkgewogICAgICAgICBpZiAoaGFuZGxlTW9kdWxlTmFtZXNw
YWNlTG9hZChkZXN0aW5hdGlvbk9wZXJhbmQsIHByZWRpY3Rpb24sIGJhc2UsIGdldEJ5SWRTdGF0
dXMpKSB7Ci0gICAgICAgICAgICBpZiAobV9ncmFwaC5jb21waWxhdGlvbigpKQorICAgICAgICAg
ICAgaWYgKFVOTElLRUxZKG1fZ3JhcGguY29tcGlsYXRpb24oKSkpCiAgICAgICAgICAgICAgICAg
bV9ncmFwaC5jb21waWxhdGlvbigpLT5ub3RpY2VJbmxpbmVkR2V0QnlJZCgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0zNzMxLDcgKzM3MzEsNyBAQCB2b2lkIEJ5dGVDb2Rl
UGFyc2VyOjpoYW5kbGVHZXRCeUlkKAogICAgICAgICBHZXRCeUlkVmFyaWFudCB2YXJpYW50ID0g
Z2V0QnlJZFN0YXR1c1swXTsKICAgICAgICAgQVNTRVJUKHZhcmlhbnQuZG9tQXR0cmlidXRlKCkp
OwogICAgICAgICBpZiAoaGFuZGxlRE9NSklUR2V0dGVyKGRlc3RpbmF0aW9uT3BlcmFuZCwgdmFy
aWFudCwgYmFzZSwgaWRlbnRpZmllck51bWJlciwgcHJlZGljdGlvbikpIHsKLSAgICAgICAgICAg
IGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpCisgICAgICAgICAgICBpZiAoVU5MSUtFTFkobV9n
cmFwaC5jb21waWxhdGlvbigpKSkKICAgICAgICAgICAgICAgICBtX2dyYXBoLmNvbXBpbGF0aW9u
KCktPm5vdGljZUlubGluZWRHZXRCeUlkKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KQEAgLTM3ODIsNyArMzc4Miw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5
SWQoCiAgICAgICAgICAgICBjYXNlcy5hcHBlbmQoTXVsdGlHZXRCeU9mZnNldENhc2UoKm1fZ3Jh
cGguYWRkU3RydWN0dXJlU2V0KHZhcmlhbnQuc3RydWN0dXJlU2V0KCkpLCBtZXRob2QpKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpCisgICAgICAgIGlm
IChVTkxJS0VMWShtX2dyYXBoLmNvbXBpbGF0aW9uKCkpKQogICAgICAgICAgICAgbV9ncmFwaC5j
b21waWxhdGlvbigpLT5ub3RpY2VJbmxpbmVkR2V0QnlJZCgpOwogICAgIAogICAgICAgICAvLyAy
KSBFbWl0IGEgTXVsdGlHZXRCeU9mZnNldApAQCAtMzgwNCw3ICszODA0LDcgQEAgdm9pZCBCeXRl
Q29kZVBhcnNlcjo6aGFuZGxlR2V0QnlJZCgKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpCisgICAgaWYgKFVOTElLRUxZKG1fZ3JhcGguY29t
cGlsYXRpb24oKSkpCiAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5l
ZEdldEJ5SWQoKTsKIAogICAgIEFTU0VSVCh0eXBlID09IEFjY2Vzc1R5cGU6OkdldCB8fCAhdmFy
aWFudC5jYWxsTGlua1N0YXR1cygpKTsKQEAgLTM5MDMsNyArMzkwMyw3IEBAIHZvaWQgQnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZVB1dEJ5SWQoCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgCi0gICAgICAgIGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpCisgICAgICAgIGlmIChVTkxJ
S0VMWShtX2dyYXBoLmNvbXBpbGF0aW9uKCkpKQogICAgICAgICAgICAgbV9ncmFwaC5jb21waWxh
dGlvbigpLT5ub3RpY2VJbmxpbmVkUHV0QnlJZCgpOwogCiAgICAgICAgIGZvciAoY29uc3QgUHV0
QnlJZFZhcmlhbnQmIHZhcmlhbnQgOiBwdXRCeUlkU3RhdHVzLnZhcmlhbnRzKCkpIHsKQEAgLTM5
MjcsNyArMzkyNyw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVB1dEJ5SWQoCiAgICAg
c3dpdGNoICh2YXJpYW50LmtpbmQoKSkgewogICAgIGNhc2UgUHV0QnlJZFZhcmlhbnQ6OlJlcGxh
Y2U6IHsKICAgICAgICAgc3RvcmUoYmFzZSwgaWRlbnRpZmllck51bWJlciwgdmFyaWFudCwgdmFs
dWUpOwotICAgICAgICBpZiAobV9ncmFwaC5jb21waWxhdGlvbigpKQorICAgICAgICBpZiAoVU5M
SUtFTFkobV9ncmFwaC5jb21waWxhdGlvbigpKSkKICAgICAgICAgICAgIG1fZ3JhcGguY29tcGls
YXRpb24oKS0+bm90aWNlSW5saW5lZFB1dEJ5SWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTM5OTQsNyArMzk5NCw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVB1dEJ5SWQo
CiAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI5
MjQuCiAgICAgICAgIGFkZFRvR3JhcGgoUHV0U3RydWN0dXJlLCBPcEluZm8odHJhbnNpdGlvbiks
IGJhc2UpOwogCi0gICAgICAgIGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpCisgICAgICAgIGlm
IChVTkxJS0VMWShtX2dyYXBoLmNvbXBpbGF0aW9uKCkpKQogICAgICAgICAgICAgbV9ncmFwaC5j
b21waWxhdGlvbigpLT5ub3RpY2VJbmxpbmVkUHV0QnlJZCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtNDEyNCw3ICs0MTI0LDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9j
ayh1bnNpZ25lZAogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZURGR0J5dGVDb2RlUGFyc2lu
ZygpKQogICAgICAgICAgICAgZGF0YUxvZygiICAgIHBhcnNpbmcgIiwgY3VycmVudENvZGVPcmln
aW4oKSwgIjogIiwgb3Bjb2RlSUQsICJcbiIpOwogICAgICAgICAKLSAgICAgICAgaWYgKG1fZ3Jh
cGguY29tcGlsYXRpb24oKSkgeworICAgICAgICBpZiAoVU5MSUtFTFkobV9ncmFwaC5jb21waWxh
dGlvbigpKSkgewogICAgICAgICAgICAgYWRkVG9HcmFwaChDb3VudEV4ZWN1dGlvbiwgT3BJbmZv
KG1fZ3JhcGguY29tcGlsYXRpb24oKS0+ZXhlY3V0aW9uQ291bnRlckZvcigKICAgICAgICAgICAg
ICAgICBQcm9maWxlcjo6T3JpZ2luU3RhY2soKm1fdm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlciwg
bV9jb2RlQmxvY2ssIGN1cnJlbnRDb2RlT3JpZ2luKCkpKSkpOwogICAgICAgICB9CkBAIC02MDYx
LDcgKzYwNjEsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUNvZGVCbG9jaygpCiAgICAg
CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBtX2lubGluZVN0YWNrVG9wLT5tX2NvZGVCbG9j
azsKICAgICAKLSAgICBpZiAobV9ncmFwaC5jb21waWxhdGlvbigpKSB7CisgICAgaWYgKFVOTElL
RUxZKG1fZ3JhcGguY29tcGlsYXRpb24oKSkpIHsKICAgICAgICAgbV9ncmFwaC5jb21waWxhdGlv
bigpLT5hZGRQcm9maWxlZEJ5dGVjb2RlcygKICAgICAgICAgICAgICptX3ZtLT5tX3BlckJ5dGVj
b2RlUHJvZmlsZXIsIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jayk7CiAgICAgfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHJl
dmlzaW9uIDIyMDU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGls
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIEpJVENvbXBpbGVyOjpKSVRD
b21waWxlcihHcmFwaCYgZGZnKQogICAgICwgbV9ibG9ja0hlYWRzKGRmZy5udW1CbG9ja3MoKSkK
ICAgICAsIG1fcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVyKGRmZy5tX3ZtKQogewotICAgIGlmIChz
aG91bGREdW1wRGlzYXNzZW1ibHkoKSB8fCBtX2dyYXBoLm1fdm0ubV9wZXJCeXRlY29kZVByb2Zp
bGVyKQorICAgIGlmIChVTkxJS0VMWShzaG91bGREdW1wRGlzYXNzZW1ibHkoKSB8fCBtX2dyYXBo
Lm1fdm0ubV9wZXJCeXRlY29kZVByb2ZpbGVyKSkKICAgICAgICAgbV9kaXNhc3NlbWJsZXIgPSBz
dGQ6Om1ha2VfdW5pcXVlPERpc2Fzc2VtYmxlcj4oZGZnKTsKICNpZiBFTkFCTEUoRlRMX0pJVCkK
ICAgICBtX2ppdENvZGUtPnRpZXJVcEluTG9vcEhpZXJhcmNoeSA9IFdURk1vdmUobV9ncmFwaC5t
X3BsYW4udGllclVwSW5Mb29wSGllcmFyY2h5KTsKQEAgLTcyLDcgKzcyLDcgQEAgSklUQ29tcGls
ZXI6On5KSVRDb21waWxlcigpCiB2b2lkIEpJVENvbXBpbGVyOjpsaW5rT1NSRXhpdHMoKQogewog
ICAgIEFTU0VSVChtX2ppdENvZGUtPm9zckV4aXQuc2l6ZSgpID09IG1fZXhpdENvbXBpbGF0aW9u
SW5mby5zaXplKCkpOwotICAgIGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpIHsKKyAgICBpZiAo
VU5MSUtFTFkobV9ncmFwaC5jb21waWxhdGlvbigpKSkgewogICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV9qaXRDb2RlLT5vc3JFeGl0LnNpemUoKTsgKytpKSB7CiAgICAgICAgICAg
ICBPU1JFeGl0Q29tcGlsYXRpb25JbmZvJiBpbmZvID0gbV9leGl0Q29tcGlsYXRpb25JbmZvW2ld
OwogICAgICAgICAgICAgVmVjdG9yPExhYmVsPiBsYWJlbHM7CkBAIC0zMTcsNyArMzE3LDcgQEAg
dm9pZCBKSVRDb21waWxlcjo6bGluayhMaW5rQnVmZmVyJiBsaW5rQgogICAgICAgICB9CiAgICAg
fQogICAgIAotICAgIGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpIHsKKyAgICBpZiAoVU5MSUtF
TFkobV9ncmFwaC5jb21waWxhdGlvbigpKSkgewogICAgICAgICBBU1NFUlQobV9leGl0U2l0ZUxh
YmVscy5zaXplKCkgPT0gbV9qaXRDb2RlLT5vc3JFeGl0LnNpemUoKSk7CiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBtX2V4aXRTaXRlTGFiZWxzLnNpemUoKTsgKytpKSB7CiAgICAg
ICAgICAgICBWZWN0b3I8TGFiZWw+JiBsYWJlbHMgPSBtX2V4aXRTaXRlTGFiZWxzW2ldOwpAQCAt
NTI4LDcgKzUyOCw3IEBAIHZvaWQgSklUQ29tcGlsZXI6OmRpc2Fzc2VtYmxlKExpbmtCdWZmZXIK
ICAgICAgICAgbGlua0J1ZmZlci5kaWRBbHJlYWR5RGlzYXNzZW1ibGUoKTsKICAgICB9CiAgICAg
Ci0gICAgaWYgKG1fZ3JhcGgubV9wbGFuLmNvbXBpbGF0aW9uKQorICAgIGlmIChVTkxJS0VMWSht
X2dyYXBoLm1fcGxhbi5jb21waWxhdGlvbikpCiAgICAgICAgIG1fZGlzYXNzZW1ibGVyLT5yZXBv
cnRUb1Byb2ZpbGVyKG1fZ3JhcGgubV9wbGFuLmNvbXBpbGF0aW9uLmdldCgpLCBsaW5rQnVmZmVy
KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxp
emVyLmNwcAkocmV2aXNpb24gMjIwNTQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRGaW5hbGl6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQg
SklURmluYWxpemVyOjpmaW5hbGl6ZUNvbW1vbigpCiAgICAgbV9qaXRDb2RlLT5vcHRpbWl6ZUFm
dGVyV2FybVVwKG1fcGxhbi5jb2RlQmxvY2spOwogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQog
ICAgIAotICAgIGlmIChtX3BsYW4uY29tcGlsYXRpb24pCisgICAgaWYgKFVOTElLRUxZKG1fcGxh
bi5jb21waWxhdGlvbikpCiAgICAgICAgIG1fcGxhbi52bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVy
LT5hZGRDb21waWxhdGlvbihtX3BsYW4uY29kZUJsb2NrLCAqbV9wbGFuLmNvbXBpbGF0aW9uKTsK
ICAgICAKICAgICBpZiAoIW1fcGxhbi53aWxsVHJ5VG9UaWVyVXApCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAJKHJldmlzaW9uIDIyMDU0MikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5
Niw3ICsxOTYsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gT1NSRXhpdDo6Y29tcGlsZU9TUkV4CiAK
ICAgICAgICAgaml0LmppdEFzc2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCk7CiAKLSAgICAgICAgaWYg
KHZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIgJiYgY29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZ0Nv
bW1vbigpLT5jb21waWxhdGlvbikgeworICAgICAgICBpZiAoVU5MSUtFTFkodm0tPm1fcGVyQnl0
ZWNvZGVQcm9maWxlciAmJiBjb2RlQmxvY2stPmppdENvZGUoKS0+ZGZnQ29tbW9uKCktPmNvbXBp
bGF0aW9uKSkgewogICAgICAgICAgICAgUHJvZmlsZXI6OkRhdGFiYXNlJiBkYXRhYmFzZSA9ICp2
bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyOwogICAgICAgICAgICAgUHJvZmlsZXI6OkNvbXBpbGF0
aW9uKiBjb21waWxhdGlvbiA9IGNvZGVCbG9jay0+aml0Q29kZSgpLT5kZmdDb21tb24oKS0+Y29t
cGlsYXRpb24uZ2V0KCk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxh
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNw
cAkocmV2aXNpb24gMjIwNTQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDcgKzE0NCw3IEBAIFBsYW46OlBsYW4oQ29kZUJs
b2NrKiBwYXNzZWRDb2RlQmxvY2ssIEMKICAgICAsIG1vZGUobW9kZSkKICAgICAsIG9zckVudHJ5
Qnl0ZWNvZGVJbmRleChvc3JFbnRyeUJ5dGVjb2RlSW5kZXgpCiAgICAgLCBtdXN0SGFuZGxlVmFs
dWVzKG11c3RIYW5kbGVWYWx1ZXMpCi0gICAgLCBjb21waWxhdGlvbih2bS0+bV9wZXJCeXRlY29k
ZVByb2ZpbGVyID8gYWRvcHRSZWYobmV3IFByb2ZpbGVyOjpDb21waWxhdGlvbih2bS0+bV9wZXJC
eXRlY29kZVByb2ZpbGVyLT5lbnN1cmVCeXRlY29kZXNGb3IoY29kZUJsb2NrKSwgcHJvZmlsZXJD
b21waWxhdGlvbktpbmRGb3JNb2RlKG1vZGUpKSkgOiAwKQorICAgICwgY29tcGlsYXRpb24oVU5M
SUtFTFkodm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlcikgPyBhZG9wdFJlZihuZXcgUHJvZmlsZXI6
OkNvbXBpbGF0aW9uKHZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmVuc3VyZUJ5dGVjb2Rlc0Zv
cihjb2RlQmxvY2spLCBwcm9maWxlckNvbXBpbGF0aW9uS2luZEZvck1vZGUobW9kZSkpKSA6IG51
bGxwdHIpCiAgICAgLCBpbmxpbmVDYWxsRnJhbWVzKGFkb3B0UmVmKG5ldyBJbmxpbmVDYWxsRnJh
bWVTZXQoKSkpCiAgICAgLCBpZGVudGlmaWVycyhjb2RlQmxvY2spCiAgICAgLCB3ZWFrUmVmZXJl
bmNlcyhjb2RlQmxvY2spCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZp
bmFsaXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExK
SVRGaW5hbGl6ZXIuY3BwCShyZXZpc2lvbiAyMjA1NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEpJVEZpbmFsaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcg
QEAgYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplQ29tbW9uKCkKICAgICAKICAgICBtX3BsYW4u
Y29kZUJsb2NrLT5zZXRKSVRDb2RlKCpqaXRDb2RlKTsKIAotICAgIGlmIChtX3BsYW4uY29tcGls
YXRpb24pCisgICAgaWYgKFVOTElLRUxZKG1fcGxhbi5jb21waWxhdGlvbikpCiAgICAgICAgIG1f
cGxhbi52bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyLT5hZGRDb21waWxhdGlvbihtX3BsYW4uY29k
ZUJsb2NrLCAqbV9wbGFuLmNvbXBpbGF0aW9uKTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAkocmV2aXNpb24gMjIwNTQyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjgsNyArNjgsNyBAQCB2b2lkIGxpbmsoU3RhdGUmIHN0YXRlKQogICAgIENDYWxsSGVscGVy
czo6QWRkcmVzcyBmcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcygKICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgLXN0YXRpY19jYXN0PGludDMyX3Q+KEFzc2Vt
Ymx5SGVscGVyczo6cHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpKSk7CiAgICAgCi0gICAgaWYg
KFByb2ZpbGVyOjpDb21waWxhdGlvbiogY29tcGlsYXRpb24gPSBncmFwaC5jb21waWxhdGlvbigp
KSB7CisgICAgaWYgKFVOTElLRUxZKFByb2ZpbGVyOjpDb21waWxhdGlvbiogY29tcGlsYXRpb24g
PSBncmFwaC5jb21waWxhdGlvbigpKSkgewogICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3Jp
cHRpb24oCiAgICAgICAgICAgICBQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwKICAgICAgICAgICAg
IHRvQ1N0cmluZygiR2VuZXJhdGVkIEZUTCBKSVQgY29kZSBmb3IgIiwgQ29kZUJsb2NrV2l0aEpJ
VFR5cGUoY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAiLCBpbnN0cnVjdGlvbiBjb3VudCA9
ICIsIGdyYXBoLm1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbkNvdW50KCksICI6XG4iKSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3Bw
CShyZXZpc2lvbiAyMjA1NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4
aXRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0OCw3ICsyNDgsNyBAQCBzdGF0aWMg
dm9pZCBjb21waWxlU3R1YigKICAgICBqaXQucG9wVG9SZXN0b3JlKEdQUkluZm86OnJlZ1QwKTsK
ICAgICBqaXQuY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKICAgICAKLSAgICBpZiAodm0t
Pm1fcGVyQnl0ZWNvZGVQcm9maWxlciAmJiBqaXRDb2RlLT5kZmdDb21tb24oKS0+Y29tcGlsYXRp
b24pIHsKKyAgICBpZiAoVU5MSUtFTFkodm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlciAmJiBqaXRD
b2RlLT5kZmdDb21tb24oKS0+Y29tcGlsYXRpb24pKSB7CiAgICAgICAgIFByb2ZpbGVyOjpEYXRh
YmFzZSYgZGF0YWJhc2UgPSAqdm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlcjsKICAgICAgICAgUHJv
ZmlsZXI6OkNvbXBpbGF0aW9uKiBjb21waWxhdGlvbiA9IGppdENvZGUtPmRmZ0NvbW1vbigpLT5j
b21waWxhdGlvbi5nZXQoKTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCShyZXZpc2lvbiAyMjA1NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Myw3ICsyNDMsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNv
bXBpbGVNYWluUGFzcygpCiAgICAgICAgIAogICAgICAgICBPcGNvZGVJRCBvcGNvZGVJRCA9IElu
dGVycHJldGVyOjpnZXRPcGNvZGVJRChjdXJyZW50SW5zdHJ1Y3Rpb24tPnUub3Bjb2RlKTsKIAot
ICAgICAgICBpZiAobV9jb21waWxhdGlvbikgeworICAgICAgICBpZiAoVU5MSUtFTFkobV9jb21w
aWxhdGlvbikpIHsKICAgICAgICAgICAgIGFkZDY0KAogICAgICAgICAgICAgICAgIFRydXN0ZWRJ
bW0zMigxKSwKICAgICAgICAgICAgICAgICBBYnNvbHV0ZUFkZHJlc3MobV9jb21waWxhdGlvbi0+
ZXhlY3V0aW9uQ291bnRlckZvcihQcm9maWxlcjo6T3JpZ2luU3RhY2soUHJvZmlsZXI6Ok9yaWdp
bigKQEAgLTYxMSw5ICs2MTEsOSBAQCB2b2lkIEpJVDo6Y29tcGlsZVdpdGhvdXRMaW5raW5nKEpJ
VENvbXBpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlmIChPcHRpb25zOjpkdW1wRGlz
YXNzZW1ibHkoKSB8fCAobV92bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyICYmIE9wdGlvbnM6OmRp
c2Fzc2VtYmxlQmFzZWxpbmVGb3JQcm9maWxlcigpKSkKKyAgICBpZiAoVU5MSUtFTFkoT3B0aW9u
czo6ZHVtcERpc2Fzc2VtYmx5KCkgfHwgKG1fdm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlciAmJiBP
cHRpb25zOjpkaXNhc3NlbWJsZUJhc2VsaW5lRm9yUHJvZmlsZXIoKSkpKQogICAgICAgICBtX2Rp
c2Fzc2VtYmxlciA9IHN0ZDo6bWFrZV91bmlxdWU8SklURGlzYXNzZW1ibGVyPihtX2NvZGVCbG9j
ayk7Ci0gICAgaWYgKG1fdm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlcikgeworICAgIGlmIChVTkxJ
S0VMWShtX3ZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIpKSB7CiAgICAgICAgIG1fY29tcGlsYXRp
b24gPSBhZG9wdFJlZigKICAgICAgICAgICAgIG5ldyBQcm9maWxlcjo6Q29tcGlsYXRpb24oCiAg
ICAgICAgICAgICAgICAgbV92bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyLT5lbnN1cmVCeXRlY29k
ZXNGb3IobV9jb2RlQmxvY2spLApAQCAtODQxLDcgKzg0MSw3IEBAIENvbXBpbGF0aW9uUmVzdWx0
IEpJVDo6bGluaygpCiAgICAgICAgIG1fZGlzYXNzZW1ibGVyLT5kdW1wKHBhdGNoQnVmZmVyKTsK
ICAgICAgICAgcGF0Y2hCdWZmZXIuZGlkQWxyZWFkeURpc2Fzc2VtYmxlKCk7CiAgICAgfQotICAg
IGlmIChtX2NvbXBpbGF0aW9uKSB7CisgICAgaWYgKFVOTElLRUxZKG1fY29tcGlsYXRpb24pKSB7
CiAgICAgICAgIGlmIChPcHRpb25zOjpkaXNhc3NlbWJsZUJhc2VsaW5lRm9yUHJvZmlsZXIoKSkK
ICAgICAgICAgICAgIG1fZGlzYXNzZW1ibGVyLT5yZXBvcnRUb1Byb2ZpbGVyKG1fY29tcGlsYXRp
b24uZ2V0KCksIHBhdGNoQnVmZmVyKTsKICAgICAgICAgbV92bS0+bV9wZXJCeXRlY29kZVByb2Zp
bGVyLT5hZGRDb21waWxhdGlvbihtX2NvZGVCbG9jaywgKm1fY29tcGlsYXRpb24pOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5j
cHAJKHJldmlzaW9uIDIyMDU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nj
cmlwdEV4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsMTMgKzE1MSwxMyBAQCB2
b2lkIFNjcmlwdEV4ZWN1dGFibGU6Omluc3RhbGxDb2RlKFZNJiB2CiAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKGdlbmVyaWNDb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpID09IHRoaXMpOwogICAg
ICAgICBSRUxFQVNFX0FTU0VSVChKSVRDb2RlOjppc0V4ZWN1dGFibGVTY3JpcHQoZ2VuZXJpY0Nv
ZGVCbG9jay0+aml0VHlwZSgpKSk7CiAgICAgICAgIAotICAgICAgICBpZiAoT3B0aW9uczo6dmVy
Ym9zZU9TUigpKQorICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dmVyYm9zZU9TUigpKSkK
ICAgICAgICAgICAgIGRhdGFMb2coIkluc3RhbGxpbmcgIiwgKmdlbmVyaWNDb2RlQmxvY2ssICJc
biIpOwogICAgICAgICAKLSAgICAgICAgaWYgKHZtLm1fcGVyQnl0ZWNvZGVQcm9maWxlcikKKyAg
ICAgICAgaWYgKFVOTElLRUxZKHZtLm1fcGVyQnl0ZWNvZGVQcm9maWxlcikpCiAgICAgICAgICAg
ICB2bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmVuc3VyZUJ5dGVjb2Rlc0ZvcihnZW5lcmljQ29k
ZUJsb2NrKTsKICAgICAgICAgCi0gICAgICAgIGlmIChEZWJ1Z2dlciogZGVidWdnZXIgPSBnZW5l
cmljQ29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+ZGVidWdnZXIoKSkKKyAgICAgICAgaWYgKFVO
TElLRUxZKERlYnVnZ2VyKiBkZWJ1Z2dlciA9IGdlbmVyaWNDb2RlQmxvY2stPmdsb2JhbE9iamVj
dCgpLT5kZWJ1Z2dlcigpKSkKICAgICAgICAgICAgIGRlYnVnZ2VyLT5yZWdpc3RlckNvZGVCbG9j
ayhnZW5lcmljQ29kZUJsb2NrKTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAJKHJldmlzaW9uIDIyMDU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAwLDcgKzMwMCw3IEBAIFZNOjpWTShW
TVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAKICAgICBMTEludDo6RGF0YTo6
cGVyZm9ybUFzc2VydGlvbnMoKnRoaXMpOwogICAgIAotICAgIGlmIChPcHRpb25zOjp1c2VQcm9m
aWxlcigpKSB7CisgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZVByb2ZpbGVyKCkpKSB7CiAg
ICAgICAgIG1fcGVyQnl0ZWNvZGVQcm9maWxlciA9IHN0ZDo6bWFrZV91bmlxdWU8UHJvZmlsZXI6
OkRhdGFiYXNlPigqdGhpcyk7CiAKICAgICAgICAgU3RyaW5nUHJpbnRTdHJlYW0gcGF0aE91dDsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjA1NDIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA4LTEwICBNYXJrIExhbSAg
PG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBBcHBseSB0aGUgVU5MSUtFTFkgbWFjcm8g
dG8gc29tZSB1bmxpa2VseSB0aGluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzU0NDAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzODM0NzY3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpn
ZXRCeXRlY29kZVByb2ZpbGUpOgorCiAyMDE3LTA4LTEwICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBw
bGUuY29tPgogCiAgICAgICAgIFdLUHJlZmVyZW5jZXMgc2hvdWxkIGNvbmZvcm0gdG8gTlNDb3B5
aW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAkocmV2aXNpb24gMjIwNTQyKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3MDksNyArNTcwOSw3IEBAIHZvaWQgV2Vi
UGFnZTo6dXBkYXRlQ2FjaGVkRG9jdW1lbnRMb2FkZXIKIAogdm9pZCBXZWJQYWdlOjpnZXRCeXRl
Y29kZVByb2ZpbGUoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewotICAgIGlmICghY29tbW9uVk0o
KS5tX3BlckJ5dGVjb2RlUHJvZmlsZXIpIHsKKyAgICBpZiAoTElLRUxZKCFjb21tb25WTSgpLm1f
cGVyQnl0ZWNvZGVQcm9maWxlcikpIHsKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTdHJpbmdDYWxsYmFjayhTdHJpbmcoKSwgY2FsbGJhY2tJRCkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQo=
</data>
<flag name="review"
          id="338339"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317848</attachid>
            <date>2017-08-10 14:28:54 -0700</date>
            <delta_ts>2017-08-10 16:00:09 -0700</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-175440.patch</filename>
            <type>text/plain</type>
            <size>18401</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNTQ4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBA
CisyMDE3LTA4LTEwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
cHBseSB0aGUgVU5MSUtFTFkgbWFjcm8gdG8gc29tZSB1bmxpa2VseSB0aGluZ3MuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU0NDAKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMzODM0NzY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBT
dXp1a2kuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlND
OjpDb2RlQmxvY2s6On5Db2RlQmxvY2spOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmpldHRp
c29uKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlND
OjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpC
eXRlQ29kZVBhcnNlcjo6aGFuZGxlVmFyYXJnc0NhbGwpOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29k
ZVBhcnNlcjo6aGFuZGxlUHV0QnlJZCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJz
ZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJz
ZUNvZGVCbG9jayk6CisgICAgICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpKSVRDb21waWxlcjo6SklUQ29tcGlsZXIpOgorICAgICAgICAoSlNDOjpERkc6
OkpJVENvbXBpbGVyOjpsaW5rT1NSRXhpdHMpOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBp
bGVyOjpsaW5rKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6ZGlzYXNzZW1ibGUp
OgorICAgICAgICAqIGRmZy9ERkdKSVRGaW5hbGl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkpJVEZpbmFsaXplcjo6ZmluYWxpemVDb21tb24pOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxlT1NSRXhpdCk6CisgICAg
ICAgICogZGZnL0RGR1BsYW4uY3BwOgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OlBsYW4pOgor
ICAgICAgICAqIGZ0bC9GVExKSVRGaW5hbGl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpJ
VEZpbmFsaXplcjo6ZmluYWxpemVDb21tb24pOgorICAgICAgICAqIGZ0bC9GVExMaW5rLmNwcDoK
KyAgICAgICAgKEpTQzo6RlRMOjpsaW5rKToKKyAgICAgICAgKiBmdGwvRlRMT1NSRXhpdENvbXBp
bGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlU3R1Yik6CisgICAgICAgICogaml0
L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6Cisg
ICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZVdpdGhvdXRMaW5raW5nKToKKyAgICAgICAgKEpTQzo6
SklUOjpsaW5rKToKKyAgICAgICAgKiBydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuY3BwOgorICAg
ICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjppbnN0YWxsQ29kZSk6CisgICAgICAgICogcnVu
dGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpWTSk6CisKIDIwMTctMDgtMDkgIFl1c3Vr
ZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW1dURl0gVGhyZWFk
U3BlY2lmaWMgc2hvdWxkIG5vdCBpbnRyb2R1Y2UgYWRkaXRpb25hbCBpbmRpcmVjdGlvbgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlz
aW9uIDIyMDU0OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MzksNyArODM5LDcgQEAgYm9vbCBDb2RlQmxvY2s6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgUwogCiBDb2RlQmxvY2s6On5Db2RlQmxvY2soKQogewotICAg
IGlmIChtX3ZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIpCisgICAgaWYgKFVOTElLRUxZKG1fdm0t
Pm1fcGVyQnl0ZWNvZGVQcm9maWxlcikpCiAgICAgICAgIG1fdm0tPm1fcGVyQnl0ZWNvZGVQcm9m
aWxlci0+bm90aWZ5RGVzdHJ1Y3Rpb24odGhpcyk7CiAKICAgICBpZiAodW5saW5rZWRDb2RlQmxv
Y2soKS0+ZGlkT3B0aW1pemUoKSA9PSBNaXhlZFRyaVN0YXRlKQpAQCAtMTkxNyw3ICsxOTE3LDgg
QEAgdm9pZCBDb2RlQmxvY2s6OmpldHRpc29uKFByb2ZpbGVyOjpKZXR0aQogCiAjaWYgRU5BQkxF
KERGR19KSVQpCiAgICAgaWYgKHJlYXNvbiAhPSBQcm9maWxlcjo6SmV0dGlzb25EdWVUb09sZEFn
ZSkgewotICAgICAgICBpZiAoUHJvZmlsZXI6OkNvbXBpbGF0aW9uKiBjb21waWxhdGlvbiA9IGpp
dENvZGUoKS0+ZGZnQ29tbW9uKCktPmNvbXBpbGF0aW9uLmdldCgpKQorICAgICAgICBQcm9maWxl
cjo6Q29tcGlsYXRpb24qIGNvbXBpbGF0aW9uID0gaml0Q29kZSgpLT5kZmdDb21tb24oKS0+Y29t
cGlsYXRpb24uZ2V0KCk7CisgICAgICAgIGlmIChVTkxJS0VMWShjb21waWxhdGlvbikpCiAgICAg
ICAgICAgICBjb21waWxhdGlvbi0+c2V0SmV0dGlzb25SZWFzb24ocmVhc29uLCBkZXRhaWwpOwog
ICAgICAgICAKICAgICAgICAgLy8gVGhpcyBhY2NvbXBsaXNoZXMgKDEpLCBhbmQgZG9lcyBpdHMg
b3duIGJvb2sta2VlcGluZyBhYm91dCB3aGV0aGVyIGl0IGhhcyBhbHJlYWR5IGhhcHBlbmVkLgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAJKHJldmlzaW9uIDIyMDU0OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzE2LDcgKzEzMTYsNyBAQCBCeXRl
Q29kZVBhcnNlcjo6VGVybWluYWxpdHkgQnl0ZUNvZGVQYXJzCiAgICAgdW5zaWduZWQgbmV4dE9m
ZnNldCA9IG1fY3VycmVudEluZGV4ICsgaW5zdHJ1Y3Rpb25TaXplOwogICAgIAogICAgIGlmICho
YW5kbGVJbmxpbmluZyhjYWxsVGFyZ2V0LCByZXN1bHQsIGNhbGxMaW5rU3RhdHVzLCByZWdpc3Rl
ck9mZnNldCwgdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoMCwgcmVnaXN0ZXJPZmZzZXQpLCBW
aXJ0dWFsUmVnaXN0ZXIoKSwgMCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIG5leHRPZmZz
ZXQsIG9wLCBraW5kLCBwcmVkaWN0aW9uKSkgewotICAgICAgICBpZiAobV9ncmFwaC5jb21waWxh
dGlvbigpKQorICAgICAgICBpZiAoVU5MSUtFTFkobV9ncmFwaC5jb21waWxhdGlvbigpKSkKICAg
ICAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5lZENhbGwoKTsKICAg
ICAgICAgcmV0dXJuIE5vblRlcm1pbmFsOwogICAgIH0KQEAgLTEzNTQsNyArMTM1NCw3IEBAIEJ5
dGVDb2RlUGFyc2VyOjpUZXJtaW5hbGl0eSBCeXRlQ29kZVBhcnMKICAgICAKICAgICBpZiAoY2Fs
bExpbmtTdGF0dXMuY2FuT3B0aW1pemUoKQogICAgICAgICAmJiBoYW5kbGVJbmxpbmluZyhjYWxs
VGFyZ2V0LCByZXN1bHQsIGNhbGxMaW5rU3RhdHVzLCBmaXJzdEZyZWVSZWcsIFZpcnR1YWxSZWdp
c3Rlcih0aGlzUmVnKSwgVmlydHVhbFJlZ2lzdGVyKGFyZ3VtZW50cyksIGZpcnN0VmFyQXJnT2Zm
c2V0LCAwLCBtX2N1cnJlbnRJbmRleCArIE9QQ09ERV9MRU5HVEgob3BfY2FsbF92YXJhcmdzKSwg
b3AsIElubGluZUNhbGxGcmFtZTo6dmFyYXJnc0tpbmRGb3IoY2FsbE1vZGUpLCBwcmVkaWN0aW9u
KSkgewotICAgICAgICBpZiAobV9ncmFwaC5jb21waWxhdGlvbigpKQorICAgICAgICBpZiAoVU5M
SUtFTFkobV9ncmFwaC5jb21waWxhdGlvbigpKSkKICAgICAgICAgICAgIG1fZ3JhcGguY29tcGls
YXRpb24oKS0+bm90aWNlSW5saW5lZENhbGwoKTsKICAgICAgICAgcmV0dXJuIE5vblRlcm1pbmFs
OwogICAgIH0KQEAgLTM3MTcsNyArMzcxNyw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRs
ZUdldEJ5SWQoCiAKICAgICBpZiAoZ2V0QnlJZCAhPSBUcnlHZXRCeUlkICYmIGdldEJ5SWRTdGF0
dXMuaXNNb2R1bGVOYW1lc3BhY2UoKSkgewogICAgICAgICBpZiAoaGFuZGxlTW9kdWxlTmFtZXNw
YWNlTG9hZChkZXN0aW5hdGlvbk9wZXJhbmQsIHByZWRpY3Rpb24sIGJhc2UsIGdldEJ5SWRTdGF0
dXMpKSB7Ci0gICAgICAgICAgICBpZiAobV9ncmFwaC5jb21waWxhdGlvbigpKQorICAgICAgICAg
ICAgaWYgKFVOTElLRUxZKG1fZ3JhcGguY29tcGlsYXRpb24oKSkpCiAgICAgICAgICAgICAgICAg
bV9ncmFwaC5jb21waWxhdGlvbigpLT5ub3RpY2VJbmxpbmVkR2V0QnlJZCgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0zNzMxLDcgKzM3MzEsNyBAQCB2b2lkIEJ5dGVDb2Rl
UGFyc2VyOjpoYW5kbGVHZXRCeUlkKAogICAgICAgICBHZXRCeUlkVmFyaWFudCB2YXJpYW50ID0g
Z2V0QnlJZFN0YXR1c1swXTsKICAgICAgICAgQVNTRVJUKHZhcmlhbnQuZG9tQXR0cmlidXRlKCkp
OwogICAgICAgICBpZiAoaGFuZGxlRE9NSklUR2V0dGVyKGRlc3RpbmF0aW9uT3BlcmFuZCwgdmFy
aWFudCwgYmFzZSwgaWRlbnRpZmllck51bWJlciwgcHJlZGljdGlvbikpIHsKLSAgICAgICAgICAg
IGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpCisgICAgICAgICAgICBpZiAoVU5MSUtFTFkobV9n
cmFwaC5jb21waWxhdGlvbigpKSkKICAgICAgICAgICAgICAgICBtX2dyYXBoLmNvbXBpbGF0aW9u
KCktPm5vdGljZUlubGluZWRHZXRCeUlkKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KQEAgLTM3ODIsNyArMzc4Miw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5
SWQoCiAgICAgICAgICAgICBjYXNlcy5hcHBlbmQoTXVsdGlHZXRCeU9mZnNldENhc2UoKm1fZ3Jh
cGguYWRkU3RydWN0dXJlU2V0KHZhcmlhbnQuc3RydWN0dXJlU2V0KCkpLCBtZXRob2QpKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpCisgICAgICAgIGlm
IChVTkxJS0VMWShtX2dyYXBoLmNvbXBpbGF0aW9uKCkpKQogICAgICAgICAgICAgbV9ncmFwaC5j
b21waWxhdGlvbigpLT5ub3RpY2VJbmxpbmVkR2V0QnlJZCgpOwogICAgIAogICAgICAgICAvLyAy
KSBFbWl0IGEgTXVsdGlHZXRCeU9mZnNldApAQCAtMzgwNCw3ICszODA0LDcgQEAgdm9pZCBCeXRl
Q29kZVBhcnNlcjo6aGFuZGxlR2V0QnlJZCgKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpCisgICAgaWYgKFVOTElLRUxZKG1fZ3JhcGguY29t
cGlsYXRpb24oKSkpCiAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5l
ZEdldEJ5SWQoKTsKIAogICAgIEFTU0VSVCh0eXBlID09IEFjY2Vzc1R5cGU6OkdldCB8fCAhdmFy
aWFudC5jYWxsTGlua1N0YXR1cygpKTsKQEAgLTM5MDMsNyArMzkwMyw3IEBAIHZvaWQgQnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZVB1dEJ5SWQoCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgCi0gICAgICAgIGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpCisgICAgICAgIGlmIChVTkxJ
S0VMWShtX2dyYXBoLmNvbXBpbGF0aW9uKCkpKQogICAgICAgICAgICAgbV9ncmFwaC5jb21waWxh
dGlvbigpLT5ub3RpY2VJbmxpbmVkUHV0QnlJZCgpOwogCiAgICAgICAgIGZvciAoY29uc3QgUHV0
QnlJZFZhcmlhbnQmIHZhcmlhbnQgOiBwdXRCeUlkU3RhdHVzLnZhcmlhbnRzKCkpIHsKQEAgLTM5
MjcsNyArMzkyNyw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVB1dEJ5SWQoCiAgICAg
c3dpdGNoICh2YXJpYW50LmtpbmQoKSkgewogICAgIGNhc2UgUHV0QnlJZFZhcmlhbnQ6OlJlcGxh
Y2U6IHsKICAgICAgICAgc3RvcmUoYmFzZSwgaWRlbnRpZmllck51bWJlciwgdmFyaWFudCwgdmFs
dWUpOwotICAgICAgICBpZiAobV9ncmFwaC5jb21waWxhdGlvbigpKQorICAgICAgICBpZiAoVU5M
SUtFTFkobV9ncmFwaC5jb21waWxhdGlvbigpKSkKICAgICAgICAgICAgIG1fZ3JhcGguY29tcGls
YXRpb24oKS0+bm90aWNlSW5saW5lZFB1dEJ5SWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTM5OTQsNyArMzk5NCw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVB1dEJ5SWQo
CiAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI5
MjQuCiAgICAgICAgIGFkZFRvR3JhcGgoUHV0U3RydWN0dXJlLCBPcEluZm8odHJhbnNpdGlvbiks
IGJhc2UpOwogCi0gICAgICAgIGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpCisgICAgICAgIGlm
IChVTkxJS0VMWShtX2dyYXBoLmNvbXBpbGF0aW9uKCkpKQogICAgICAgICAgICAgbV9ncmFwaC5j
b21waWxhdGlvbigpLT5ub3RpY2VJbmxpbmVkUHV0QnlJZCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtNDEyNCw3ICs0MTI0LDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9j
ayh1bnNpZ25lZAogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZURGR0J5dGVDb2RlUGFyc2lu
ZygpKQogICAgICAgICAgICAgZGF0YUxvZygiICAgIHBhcnNpbmcgIiwgY3VycmVudENvZGVPcmln
aW4oKSwgIjogIiwgb3Bjb2RlSUQsICJcbiIpOwogICAgICAgICAKLSAgICAgICAgaWYgKG1fZ3Jh
cGguY29tcGlsYXRpb24oKSkgeworICAgICAgICBpZiAoVU5MSUtFTFkobV9ncmFwaC5jb21waWxh
dGlvbigpKSkgewogICAgICAgICAgICAgYWRkVG9HcmFwaChDb3VudEV4ZWN1dGlvbiwgT3BJbmZv
KG1fZ3JhcGguY29tcGlsYXRpb24oKS0+ZXhlY3V0aW9uQ291bnRlckZvcigKICAgICAgICAgICAg
ICAgICBQcm9maWxlcjo6T3JpZ2luU3RhY2soKm1fdm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlciwg
bV9jb2RlQmxvY2ssIGN1cnJlbnRDb2RlT3JpZ2luKCkpKSkpOwogICAgICAgICB9CkBAIC02MDYx
LDcgKzYwNjEsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUNvZGVCbG9jaygpCiAgICAg
CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBtX2lubGluZVN0YWNrVG9wLT5tX2NvZGVCbG9j
azsKICAgICAKLSAgICBpZiAobV9ncmFwaC5jb21waWxhdGlvbigpKSB7CisgICAgaWYgKFVOTElL
RUxZKG1fZ3JhcGguY29tcGlsYXRpb24oKSkpIHsKICAgICAgICAgbV9ncmFwaC5jb21waWxhdGlv
bigpLT5hZGRQcm9maWxlZEJ5dGVjb2RlcygKICAgICAgICAgICAgICptX3ZtLT5tX3BlckJ5dGVj
b2RlUHJvZmlsZXIsIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jayk7CiAgICAgfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHJl
dmlzaW9uIDIyMDU0OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGls
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIEpJVENvbXBpbGVyOjpKSVRD
b21waWxlcihHcmFwaCYgZGZnKQogICAgICwgbV9ibG9ja0hlYWRzKGRmZy5udW1CbG9ja3MoKSkK
ICAgICAsIG1fcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVyKGRmZy5tX3ZtKQogewotICAgIGlmIChz
aG91bGREdW1wRGlzYXNzZW1ibHkoKSB8fCBtX2dyYXBoLm1fdm0ubV9wZXJCeXRlY29kZVByb2Zp
bGVyKQorICAgIGlmIChVTkxJS0VMWShzaG91bGREdW1wRGlzYXNzZW1ibHkoKSB8fCBtX2dyYXBo
Lm1fdm0ubV9wZXJCeXRlY29kZVByb2ZpbGVyKSkKICAgICAgICAgbV9kaXNhc3NlbWJsZXIgPSBz
dGQ6Om1ha2VfdW5pcXVlPERpc2Fzc2VtYmxlcj4oZGZnKTsKICNpZiBFTkFCTEUoRlRMX0pJVCkK
ICAgICBtX2ppdENvZGUtPnRpZXJVcEluTG9vcEhpZXJhcmNoeSA9IFdURk1vdmUobV9ncmFwaC5t
X3BsYW4udGllclVwSW5Mb29wSGllcmFyY2h5KTsKQEAgLTcyLDcgKzcyLDcgQEAgSklUQ29tcGls
ZXI6On5KSVRDb21waWxlcigpCiB2b2lkIEpJVENvbXBpbGVyOjpsaW5rT1NSRXhpdHMoKQogewog
ICAgIEFTU0VSVChtX2ppdENvZGUtPm9zckV4aXQuc2l6ZSgpID09IG1fZXhpdENvbXBpbGF0aW9u
SW5mby5zaXplKCkpOwotICAgIGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpIHsKKyAgICBpZiAo
VU5MSUtFTFkobV9ncmFwaC5jb21waWxhdGlvbigpKSkgewogICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV9qaXRDb2RlLT5vc3JFeGl0LnNpemUoKTsgKytpKSB7CiAgICAgICAgICAg
ICBPU1JFeGl0Q29tcGlsYXRpb25JbmZvJiBpbmZvID0gbV9leGl0Q29tcGlsYXRpb25JbmZvW2ld
OwogICAgICAgICAgICAgVmVjdG9yPExhYmVsPiBsYWJlbHM7CkBAIC0zMTcsNyArMzE3LDcgQEAg
dm9pZCBKSVRDb21waWxlcjo6bGluayhMaW5rQnVmZmVyJiBsaW5rQgogICAgICAgICB9CiAgICAg
fQogICAgIAotICAgIGlmIChtX2dyYXBoLmNvbXBpbGF0aW9uKCkpIHsKKyAgICBpZiAoVU5MSUtF
TFkobV9ncmFwaC5jb21waWxhdGlvbigpKSkgewogICAgICAgICBBU1NFUlQobV9leGl0U2l0ZUxh
YmVscy5zaXplKCkgPT0gbV9qaXRDb2RlLT5vc3JFeGl0LnNpemUoKSk7CiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBtX2V4aXRTaXRlTGFiZWxzLnNpemUoKTsgKytpKSB7CiAgICAg
ICAgICAgICBWZWN0b3I8TGFiZWw+JiBsYWJlbHMgPSBtX2V4aXRTaXRlTGFiZWxzW2ldOwpAQCAt
NTI4LDcgKzUyOCw3IEBAIHZvaWQgSklUQ29tcGlsZXI6OmRpc2Fzc2VtYmxlKExpbmtCdWZmZXIK
ICAgICAgICAgbGlua0J1ZmZlci5kaWRBbHJlYWR5RGlzYXNzZW1ibGUoKTsKICAgICB9CiAgICAg
Ci0gICAgaWYgKG1fZ3JhcGgubV9wbGFuLmNvbXBpbGF0aW9uKQorICAgIGlmIChVTkxJS0VMWSht
X2dyYXBoLm1fcGxhbi5jb21waWxhdGlvbikpCiAgICAgICAgIG1fZGlzYXNzZW1ibGVyLT5yZXBv
cnRUb1Byb2ZpbGVyKG1fZ3JhcGgubV9wbGFuLmNvbXBpbGF0aW9uLmdldCgpLCBsaW5rQnVmZmVy
KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxp
emVyLmNwcAkocmV2aXNpb24gMjIwNTQ4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRGaW5hbGl6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQg
SklURmluYWxpemVyOjpmaW5hbGl6ZUNvbW1vbigpCiAgICAgbV9qaXRDb2RlLT5vcHRpbWl6ZUFm
dGVyV2FybVVwKG1fcGxhbi5jb2RlQmxvY2spOwogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQog
ICAgIAotICAgIGlmIChtX3BsYW4uY29tcGlsYXRpb24pCisgICAgaWYgKFVOTElLRUxZKG1fcGxh
bi5jb21waWxhdGlvbikpCiAgICAgICAgIG1fcGxhbi52bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVy
LT5hZGRDb21waWxhdGlvbihtX3BsYW4uY29kZUJsb2NrLCAqbV9wbGFuLmNvbXBpbGF0aW9uKTsK
ICAgICAKICAgICBpZiAoIW1fcGxhbi53aWxsVHJ5VG9UaWVyVXApCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAJKHJldmlzaW9uIDIyMDU0OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5
Niw3ICsxOTYsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gT1NSRXhpdDo6Y29tcGlsZU9TUkV4CiAK
ICAgICAgICAgaml0LmppdEFzc2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCk7CiAKLSAgICAgICAgaWYg
KHZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIgJiYgY29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZ0Nv
bW1vbigpLT5jb21waWxhdGlvbikgeworICAgICAgICBpZiAoVU5MSUtFTFkodm0tPm1fcGVyQnl0
ZWNvZGVQcm9maWxlciAmJiBjb2RlQmxvY2stPmppdENvZGUoKS0+ZGZnQ29tbW9uKCktPmNvbXBp
bGF0aW9uKSkgewogICAgICAgICAgICAgUHJvZmlsZXI6OkRhdGFiYXNlJiBkYXRhYmFzZSA9ICp2
bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyOwogICAgICAgICAgICAgUHJvZmlsZXI6OkNvbXBpbGF0
aW9uKiBjb21waWxhdGlvbiA9IGNvZGVCbG9jay0+aml0Q29kZSgpLT5kZmdDb21tb24oKS0+Y29t
cGlsYXRpb24uZ2V0KCk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxh
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNw
cAkocmV2aXNpb24gMjIwNTQ4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDcgKzE0NCw3IEBAIFBsYW46OlBsYW4oQ29kZUJs
b2NrKiBwYXNzZWRDb2RlQmxvY2ssIEMKICAgICAsIG1vZGUobW9kZSkKICAgICAsIG9zckVudHJ5
Qnl0ZWNvZGVJbmRleChvc3JFbnRyeUJ5dGVjb2RlSW5kZXgpCiAgICAgLCBtdXN0SGFuZGxlVmFs
dWVzKG11c3RIYW5kbGVWYWx1ZXMpCi0gICAgLCBjb21waWxhdGlvbih2bS0+bV9wZXJCeXRlY29k
ZVByb2ZpbGVyID8gYWRvcHRSZWYobmV3IFByb2ZpbGVyOjpDb21waWxhdGlvbih2bS0+bV9wZXJC
eXRlY29kZVByb2ZpbGVyLT5lbnN1cmVCeXRlY29kZXNGb3IoY29kZUJsb2NrKSwgcHJvZmlsZXJD
b21waWxhdGlvbktpbmRGb3JNb2RlKG1vZGUpKSkgOiAwKQorICAgICwgY29tcGlsYXRpb24oVU5M
SUtFTFkodm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlcikgPyBhZG9wdFJlZihuZXcgUHJvZmlsZXI6
OkNvbXBpbGF0aW9uKHZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmVuc3VyZUJ5dGVjb2Rlc0Zv
cihjb2RlQmxvY2spLCBwcm9maWxlckNvbXBpbGF0aW9uS2luZEZvck1vZGUobW9kZSkpKSA6IG51
bGxwdHIpCiAgICAgLCBpbmxpbmVDYWxsRnJhbWVzKGFkb3B0UmVmKG5ldyBJbmxpbmVDYWxsRnJh
bWVTZXQoKSkpCiAgICAgLCBpZGVudGlmaWVycyhjb2RlQmxvY2spCiAgICAgLCB3ZWFrUmVmZXJl
bmNlcyhjb2RlQmxvY2spCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZp
bmFsaXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExK
SVRGaW5hbGl6ZXIuY3BwCShyZXZpc2lvbiAyMjA1NDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEpJVEZpbmFsaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcg
QEAgYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplQ29tbW9uKCkKICAgICAKICAgICBtX3BsYW4u
Y29kZUJsb2NrLT5zZXRKSVRDb2RlKCpqaXRDb2RlKTsKIAotICAgIGlmIChtX3BsYW4uY29tcGls
YXRpb24pCisgICAgaWYgKFVOTElLRUxZKG1fcGxhbi5jb21waWxhdGlvbikpCiAgICAgICAgIG1f
cGxhbi52bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyLT5hZGRDb21waWxhdGlvbihtX3BsYW4uY29k
ZUJsb2NrLCAqbV9wbGFuLmNvbXBpbGF0aW9uKTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAkocmV2aXNpb24gMjIwNTQ4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjgsNyArNjgsOCBAQCB2b2lkIGxpbmsoU3RhdGUmIHN0YXRlKQogICAgIENDYWxsSGVscGVy
czo6QWRkcmVzcyBmcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcygKICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgLXN0YXRpY19jYXN0PGludDMyX3Q+KEFzc2Vt
Ymx5SGVscGVyczo6cHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpKSk7CiAgICAgCi0gICAgaWYg
KFByb2ZpbGVyOjpDb21waWxhdGlvbiogY29tcGlsYXRpb24gPSBncmFwaC5jb21waWxhdGlvbigp
KSB7CisgICAgUHJvZmlsZXI6OkNvbXBpbGF0aW9uKiBjb21waWxhdGlvbiA9IGdyYXBoLmNvbXBp
bGF0aW9uKCk7CisgICAgaWYgKFVOTElLRUxZKGNvbXBpbGF0aW9uKSkgewogICAgICAgICBjb21w
aWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oCiAgICAgICAgICAgICBQcm9maWxlcjo6T3JpZ2luU3Rh
Y2soKSwKICAgICAgICAgICAgIHRvQ1N0cmluZygiR2VuZXJhdGVkIEZUTCBKSVQgY29kZSBmb3Ig
IiwgQ29kZUJsb2NrV2l0aEpJVFR5cGUoY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAiLCBp
bnN0cnVjdGlvbiBjb3VudCA9ICIsIGdyYXBoLm1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbkNvdW50
KCksICI6XG4iKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRD
b21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
U1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAyMjA1NDgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0OCw3
ICsyNDgsNyBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigKICAgICBqaXQucG9wVG9SZXN0b3Jl
KEdQUkluZm86OnJlZ1QwKTsKICAgICBqaXQuY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsK
ICAgICAKLSAgICBpZiAodm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlciAmJiBqaXRDb2RlLT5kZmdD
b21tb24oKS0+Y29tcGlsYXRpb24pIHsKKyAgICBpZiAoVU5MSUtFTFkodm0tPm1fcGVyQnl0ZWNv
ZGVQcm9maWxlciAmJiBqaXRDb2RlLT5kZmdDb21tb24oKS0+Y29tcGlsYXRpb24pKSB7CiAgICAg
ICAgIFByb2ZpbGVyOjpEYXRhYmFzZSYgZGF0YWJhc2UgPSAqdm0tPm1fcGVyQnl0ZWNvZGVQcm9m
aWxlcjsKICAgICAgICAgUHJvZmlsZXI6OkNvbXBpbGF0aW9uKiBjb21waWxhdGlvbiA9IGppdENv
ZGUtPmRmZ0NvbW1vbigpLT5jb21waWxhdGlvbi5nZXQoKTsKICAgICAgICAgCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuY3BwCShyZXZpc2lvbiAyMjA1NDgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Myw3ICsyNDMsNyBAQCB2
b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIAogICAgICAgICBPcGNv
ZGVJRCBvcGNvZGVJRCA9IEludGVycHJldGVyOjpnZXRPcGNvZGVJRChjdXJyZW50SW5zdHJ1Y3Rp
b24tPnUub3Bjb2RlKTsKIAotICAgICAgICBpZiAobV9jb21waWxhdGlvbikgeworICAgICAgICBp
ZiAoVU5MSUtFTFkobV9jb21waWxhdGlvbikpIHsKICAgICAgICAgICAgIGFkZDY0KAogICAgICAg
ICAgICAgICAgIFRydXN0ZWRJbW0zMigxKSwKICAgICAgICAgICAgICAgICBBYnNvbHV0ZUFkZHJl
c3MobV9jb21waWxhdGlvbi0+ZXhlY3V0aW9uQ291bnRlckZvcihQcm9maWxlcjo6T3JpZ2luU3Rh
Y2soUHJvZmlsZXI6Ok9yaWdpbigKQEAgLTYxMSw5ICs2MTEsOSBAQCB2b2lkIEpJVDo6Y29tcGls
ZVdpdGhvdXRMaW5raW5nKEpJVENvbXBpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlm
IChPcHRpb25zOjpkdW1wRGlzYXNzZW1ibHkoKSB8fCAobV92bS0+bV9wZXJCeXRlY29kZVByb2Zp
bGVyICYmIE9wdGlvbnM6OmRpc2Fzc2VtYmxlQmFzZWxpbmVGb3JQcm9maWxlcigpKSkKKyAgICBp
ZiAoVU5MSUtFTFkoT3B0aW9uczo6ZHVtcERpc2Fzc2VtYmx5KCkgfHwgKG1fdm0tPm1fcGVyQnl0
ZWNvZGVQcm9maWxlciAmJiBPcHRpb25zOjpkaXNhc3NlbWJsZUJhc2VsaW5lRm9yUHJvZmlsZXIo
KSkpKQogICAgICAgICBtX2Rpc2Fzc2VtYmxlciA9IHN0ZDo6bWFrZV91bmlxdWU8SklURGlzYXNz
ZW1ibGVyPihtX2NvZGVCbG9jayk7Ci0gICAgaWYgKG1fdm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxl
cikgeworICAgIGlmIChVTkxJS0VMWShtX3ZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIpKSB7CiAg
ICAgICAgIG1fY29tcGlsYXRpb24gPSBhZG9wdFJlZigKICAgICAgICAgICAgIG5ldyBQcm9maWxl
cjo6Q29tcGlsYXRpb24oCiAgICAgICAgICAgICAgICAgbV92bS0+bV9wZXJCeXRlY29kZVByb2Zp
bGVyLT5lbnN1cmVCeXRlY29kZXNGb3IobV9jb2RlQmxvY2spLApAQCAtODQxLDcgKzg0MSw3IEBA
IENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6bGluaygpCiAgICAgICAgIG1fZGlzYXNzZW1ibGVyLT5k
dW1wKHBhdGNoQnVmZmVyKTsKICAgICAgICAgcGF0Y2hCdWZmZXIuZGlkQWxyZWFkeURpc2Fzc2Vt
YmxlKCk7CiAgICAgfQotICAgIGlmIChtX2NvbXBpbGF0aW9uKSB7CisgICAgaWYgKFVOTElLRUxZ
KG1fY29tcGlsYXRpb24pKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjpkaXNhc3NlbWJsZUJhc2Vs
aW5lRm9yUHJvZmlsZXIoKSkKICAgICAgICAgICAgIG1fZGlzYXNzZW1ibGVyLT5yZXBvcnRUb1By
b2ZpbGVyKG1fY29tcGlsYXRpb24uZ2V0KCksIHBhdGNoQnVmZmVyKTsKICAgICAgICAgbV92bS0+
bV9wZXJCeXRlY29kZVByb2ZpbGVyLT5hZGRDb21waWxhdGlvbihtX2NvZGVCbG9jaywgKm1fY29t
cGlsYXRpb24pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhl
Y3V0YWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2NyaXB0RXhlY3V0YWJsZS5jcHAJKHJldmlzaW9uIDIyMDU0OCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NTEsMTMgKzE1MSwxNCBAQCB2b2lkIFNjcmlwdEV4ZWN1dGFibGU6Omluc3RhbGxDb2RlKFZNJiB2
CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGdlbmVyaWNDb2RlQmxvY2stPm93bmVyRXhlY3V0YWJs
ZSgpID09IHRoaXMpOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChKSVRDb2RlOjppc0V4ZWN1dGFi
bGVTY3JpcHQoZ2VuZXJpY0NvZGVCbG9jay0+aml0VHlwZSgpKSk7CiAgICAgICAgIAotICAgICAg
ICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQorICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9u
czo6dmVyYm9zZU9TUigpKSkKICAgICAgICAgICAgIGRhdGFMb2coIkluc3RhbGxpbmcgIiwgKmdl
bmVyaWNDb2RlQmxvY2ssICJcbiIpOwogICAgICAgICAKLSAgICAgICAgaWYgKHZtLm1fcGVyQnl0
ZWNvZGVQcm9maWxlcikKKyAgICAgICAgaWYgKFVOTElLRUxZKHZtLm1fcGVyQnl0ZWNvZGVQcm9m
aWxlcikpCiAgICAgICAgICAgICB2bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmVuc3VyZUJ5dGVj
b2Rlc0ZvcihnZW5lcmljQ29kZUJsb2NrKTsKICAgICAgICAgCi0gICAgICAgIGlmIChEZWJ1Z2dl
ciogZGVidWdnZXIgPSBnZW5lcmljQ29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+ZGVidWdnZXIo
KSkKKyAgICAgICAgRGVidWdnZXIqIGRlYnVnZ2VyID0gZ2VuZXJpY0NvZGVCbG9jay0+Z2xvYmFs
T2JqZWN0KCktPmRlYnVnZ2VyKCk7CisgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z2dlcikpCiAg
ICAgICAgICAgICBkZWJ1Z2dlci0+cmVnaXN0ZXJDb2RlQmxvY2soZ2VuZXJpY0NvZGVCbG9jayk7
CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lv
biAyMjA1NDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMwMCw3ICszMDAsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5
cGUgaGVhcFR5cGUpCiAgICAgCiAgICAgTExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKCp0
aGlzKTsKICAgICAKLSAgICBpZiAoT3B0aW9uczo6dXNlUHJvZmlsZXIoKSkgeworICAgIGlmIChV
TkxJS0VMWShPcHRpb25zOjp1c2VQcm9maWxlcigpKSkgewogICAgICAgICBtX3BlckJ5dGVjb2Rl
UHJvZmlsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFByb2ZpbGVyOjpEYXRhYmFzZT4oKnRoaXMpOwog
CiAgICAgICAgIFN0cmluZ1ByaW50U3RyZWFtIHBhdGhPdXQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNp
b24gMjIwNTQ4KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNCBAQAorMjAxNy0wOC0xMCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+
CisKKyAgICAgICAgQXBwbHkgdGhlIFVOTElLRUxZIG1hY3JvIHRvIHNvbWUgdW5saWtlbHkgdGhp
bmdzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1
NDQwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzgzNDc2Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRCeXRlY29kZVByb2ZpbGUpOgor
CiAyMDE3LTA4LTEwICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdL
UHJlZmVyZW5jZXMgc2hvdWxkIGNvbmZvcm0gdG8gTlNDb3B5aW5nCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjIwNTQ4KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU3MDksNyArNTcwOSw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlQ2FjaGVkRG9j
dW1lbnRMb2FkZXIKIAogdm9pZCBXZWJQYWdlOjpnZXRCeXRlY29kZVByb2ZpbGUoQ2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogewotICAgIGlmICghY29tbW9uVk0oKS5tX3BlckJ5dGVjb2RlUHJvZmls
ZXIpIHsKKyAgICBpZiAoTElLRUxZKCFjb21tb25WTSgpLm1fcGVyQnl0ZWNvZGVQcm9maWxlcikp
IHsKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhT
dHJpbmcoKSwgY2FsbGJhY2tJRCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>