<?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>211037</bug_id>
          
          <creation_ts>2020-04-25 18:34:53 -0700</creation_ts>
          <short_desc>[JSC] isCallable is redundant with isFunction</short_desc>
          <delta_ts>2020-04-28 12:29:50 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211053</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=211059</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=211140</see_also>
          <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="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1645726</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-25 18:34:53 -0700</bug_when>
    <thetext>[JSC] isCallable is redundant with isFunction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645728</commentid>
    <comment_count>1</comment_count>
      <attachid>397603</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-25 18:42:25 -0700</bug_when>
    <thetext>Created attachment 397603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645737</commentid>
    <comment_count>2</comment_count>
      <attachid>397606</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-25 20:07:19 -0700</bug_when>
    <thetext>Created attachment 397606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645740</commentid>
    <comment_count>3</comment_count>
      <attachid>397606</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-25 20:22:57 -0700</bug_when>
    <thetext>Comment on attachment 397606
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645754</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-25 22:07:26 -0700</bug_when>
    <thetext>Committed r260722: &lt;https://trac.webkit.org/changeset/260722&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397606.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645755</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-25 22:08:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/62380487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645790</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-26 09:47:47 -0700</bug_when>
    <thetext>Two other thoughts:

1) Is there something analogous we should be doing with getConstructData?

2) Seems that getCallData could be changed to have a return value, instead of a return value plus two out arguments, and be renamed to callData. Could be more elegant and similar in performance, maybe better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645797</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-04-26 11:16:39 -0700</bug_when>
    <thetext>(In reply to EWS from comment #4)
&gt; Committed r260722: &lt;https://trac.webkit.org/changeset/260722&gt;

I really like this change, especially the usage of isFunction&apos;s fast path. Great job, Ross!
We might also want to use isFunction() in JSObjectIsFunction() of JSObjectRef.cpp.

(In reply to Darin Adler from comment #6)
&gt; 2) Seems that getCallData could be changed to have a return value, instead
&gt; of a return value plus two out arguments, and be renamed to callData. Could
&gt; be more elegant and similar in performance, maybe better.

getCallData() seems to be nicely aligned with getConstructData(): they both return a value + one out argument.
However, isConstructor() has an overload which returns a value + two out arguments, with only one call site.
It would be nice to use getConstructData() instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645823</commentid>
    <comment_count>8</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-26 13:42:28 -0700</bug_when>
    <thetext>I hadn&apos;t looked into getConstructData but I&apos;ll do so in a follow-up bug!

(In reply to Alexey Shvayka from comment #7)
&gt; We might also want to use isFunction() in JSObjectIsFunction() of
&gt; JSObjectRef.cpp.

Oops, yeah, that was an oversight on my part! Will add to the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646508</commentid>
    <comment_count>9</comment_count>
      <attachid>397606</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-04-28 09:12:31 -0700</bug_when>
    <thetext>Comment on attachment 397606
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Where CallData is needed, getCallData should be used; where CallData is not needed, isFunction should be used.

I’m not a fan of us having the “isFunction” name. I would’ve opted for isCallable everywhere. isFunction js ambiguous when I read it. E.g, Is it asking if it’s a JSFunction?

All JSFunctions are callable, not all callable objects are JSFunctions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646509</commentid>
    <comment_count>10</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-04-28 09:14:12 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #9)
&gt; Comment on attachment 397606 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=397606&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:9
&gt; &gt; +        Where CallData is needed, getCallData should be used; where CallData is not needed, isFunction should be used.
&gt; 
&gt; I’m not a fan of us having the “isFunction” name. I would’ve opted for
&gt; isCallable everywhere. isFunction js ambiguous when I read it. E.g, Is it
&gt; asking if it’s a JSFunction?
&gt; 
&gt; All JSFunctions are callable, not all callable objects are JSFunctions

Oops, I meant “is ambiguous”, not “js ambiguous”</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646546</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-28 10:14:34 -0700</bug_when>
    <thetext>I suggest using do-webcore-rename to rename isFunction to isCallable. There’s very little else besides the isFunction in JavaScriptCore to collide so it should be largely mechanical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646598</commentid>
    <comment_count>12</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-28 12:09:05 -0700</bug_when>
    <thetext>Yeah, I agree with that renaming direction. On the plus side, it&apos;ll be easier now that everything&apos;s clear-cut. Will open a new ticket shortly.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397603</attachid>
            <date>2020-04-25 18:42:25 -0700</date>
            <delta_ts>2020-04-25 20:07:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211037-20200425184225.patch</filename>
            <type>text/plain</type>
            <size>12420</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTNiZmU4MWVjMzQxZDRmMTBiODFjN2M0YTU0NDM1M2Q5Y2JmYzE2Li5hNDAxNGMxN2I0MGNhZDA1
Y2QxMDVhYzE1OTI3ZjE0OGNhNzdiYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAyMC0wNC0yNSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gaXNDYWxsYWJsZSBpcyByZWR1bmRhbnQgd2l0aCBpc0Z1
bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTEwMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBp
c0NhbGxhYmxlIGlzIG9ubHkgYmVpbmcgdXNlZCBpbiB0d28gcGxhY2VzIGFuZCBoYXMgdGhlIHNh
bWUgZGVmaW5pdGlvbiBhcyBpc0Z1bmN0aW9uIChhc2lkZSBmcm9tIG91dCBwYXJhbXMpLgorICAg
ICAgICBXaGVyZSBDYWxsRGF0YSBpcyBuZWVkZWQsIGdldENhbGxEYXRhIHNob3VsZCBiZSB1c2Vk
OyB3aGVyZSBDYWxsRGF0YSBpcyBub3QgbmVlZGVkLCBpc0Z1bmN0aW9uIHNob3VsZCBiZSB1c2Vk
LgorCisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisgICAgICAgICogcnVudGltZS9K
U0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0NhbGxhYmxlIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDZWxsSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmlzQ2FsbGFibGUp
OiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgaXNDYWxsYWJsZS4KKworICAgICAgICAqIHJ1bnRp
bWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpTdHJpbmdpZmll
cik6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjp0b0pTT04pOgorICAgICAgICBVc2UgZ2V0
Q2FsbERhdGEgaWYgeW91IG5lZWQgQ2FsbERhdGEuCisKKyAgICAgICAgKiBydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjplcnJvckRlc2NyaXB0aW9uRm9yVmFsdWUp
OgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
Ojp0b1Byb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNEZWZpbmVHZXR0ZXIpOgorICAg
ICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNEZWZpbmVTZXR0ZXIpOgorICAgICAgICBEb24ndCB1
c2UgZ2V0Q2FsbERhdGEgaWYgeW91IGRvbid0IG5lZWQgQ2FsbERhdGEuIAorCiAyMDIwLTA0LTI1
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIERlYWwg
d2l0aCBhbm90aGVyIHJvdW5kIG9mIFhjb2RlIHVwZ3JhZGUgY2hlY2tzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTdjOGEzNjg0NWUyYjQ2MzBjODVlN2EzMjhiZWEyNzExZDI2MTk3OC4uY2U4MjBkMDc0ZDgzOWMz
MDQ3ZDcxNmM5Y2M4MmJiZDEwMmU0MjYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIwLTA0LTI1ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAg
ICAgICBbSlNDXSBpc0NhbGxhYmxlIGlzIHJlZHVuZGFudCB3aXRoIGlzRnVuY3Rpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTAzNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01Db252ZXJ0U2NoZWR1bGVkQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpDb252ZXJ0
ZXI8SURMU2NoZWR1bGVkQWN0aW9uPjo6Y29udmVydCk6CisgICAgICAgICogd29ya2xldHMvUGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGU6OnJlZ2lzdGVyUGFpbnQpOgorICAgICAgICBEb24ndCB1c2UgZ2V0Q2FsbERh
dGEgaWYgeW91IGRvbid0IG5lZWQgQ2FsbERhdGEuIAorCiAyMDIwLTA0LTI1ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHN0YXRpYyBpbml0aWFsaXpl
ZCBMb2NrIGluc3RlYWQgb2YgTGF6eU5ldmVyRGVzdHJveWVkPExvY2s+CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCmluZGV4IGFmOThk
NGQyN2I0MWQxNDMzNmEwMjE4ZTgwYjc2Y2U0ZDhiNDBiNzIuLjc5MTUwZmViMzJmMzNlOWZjNDlk
NDZhNzY2ODg3ODA2MTMwOTYyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCkBAIC05NCw5ICs5NCw4IEBAIFN0cmluZyBlcnJv
ckRlc2NyaXB0aW9uRm9yVmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSB2KQogICAgICAgICByZXR1cm4gYXNTeW1ib2wodiktPmRlc2NyaXB0aXZlU3RyaW5nKCk7CiAg
ICAgaWYgKHYuaXNPYmplY3QoKSkgewogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7Ci0gICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAgICAgICBKU09iamVjdCogb2JqZWN0
ID0gYXNPYmplY3Qodik7Ci0gICAgICAgIGlmIChvYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0
Q2FsbERhdGEob2JqZWN0LCBjYWxsRGF0YSkgIT0gQ2FsbFR5cGU6Ok5vbmUpCisgICAgICAgIGlm
IChvYmplY3QtPmlzRnVuY3Rpb24odm0pKQogICAgICAgICAgICAgcmV0dXJuIHZtLnNtYWxsU3Ry
aW5ncy5mdW5jdGlvblN0cmluZygpLT52YWx1ZShnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1
cm4gSlNPYmplY3Q6OmNhbGN1bGF0ZWRDbGFzc05hbWUob2JqZWN0KTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMjU0ZDQ3ZjAzNDMyMGM2
ZjVkZGNjYThjMzdiNTQ5OTM0ODk2MTcwMy4uZjUyYmM3YmRmODAwYTJjMTRjYzUyZTY1NmRlMGYw
M2FkNTEwYmJkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
aApAQCAtMjM0LDggKzIzNCw2IEBAIHB1YmxpYzoKICAgICAvLyBRdWVyeWluZyB0aGUgdHlwZS4K
ICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKICAgICBib29sIGlzRnVuY3Rpb24oVk0mKSBjb25z
dDsKLSAgICBib29sIGlzQ2FsbGFibGUoVk0mKSBjb25zdDsKLSAgICBib29sIGlzQ2FsbGFibGUo
Vk0mLCBDYWxsVHlwZSYsIENhbGxEYXRhJikgY29uc3Q7CiAgICAgYm9vbCBpc0NvbnN0cnVjdG9y
KFZNJikgY29uc3Q7CiAgICAgYm9vbCBpc0NvbnN0cnVjdG9yKFZNJiwgQ29uc3RydWN0VHlwZSYs
IENvbnN0cnVjdERhdGEmKSBjb25zdDsKICAgICBib29sIGlzVW5kZWZpbmVkKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaApp
bmRleCBlZGIwYjgyMzE3M2RiZmE4OGNlMjU2YzFmZGZhYmNjNDAyZWE4MzUxLi5jMmFmNmExNmMx
NmU4ODg4OWZmMjZmMzkyYzg4YzhiYWQ3NjZhNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKQEAgLTg4MiwyMCArODgyLDYgQEAg
aW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNGdW5jdGlvbihWTSYgdm0pIGNvbnN0CiAgICAgcmV0dXJu
IGFzQ2VsbCgpLT5pc0Z1bmN0aW9uKHZtKTsKIH0KIAotaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXND
YWxsYWJsZShWTSYgdm0pIGNvbnN0Ci17Ci0gICAgQ2FsbFR5cGUgdW51c2VkVHlwZTsKLSAgICBD
YWxsRGF0YSB1bnVzZWREYXRhOwotICAgIHJldHVybiBpc0NhbGxhYmxlKHZtLCB1bnVzZWRUeXBl
LCB1bnVzZWREYXRhKTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDYWxsYWJsZShWTSYg
dm0sIENhbGxUeXBlJiBjYWxsVHlwZSwgQ2FsbERhdGEmIGNhbGxEYXRhKSBjb25zdAotewotICAg
IGlmICghaXNDZWxsKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gYXNDZWxs
KCktPmlzQ2FsbGFibGUodm0sIGNhbGxUeXBlLCBjYWxsRGF0YSk7Ci19Ci0KIGlubGluZSBib29s
IEpTVmFsdWU6OmlzQ29uc3RydWN0b3IoVk0mIHZtKSBjb25zdAogewogICAgIGlmICghaXNDZWxs
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IDA2ZWQ0ZTcwOTJl
M2Q0M2U3NzcxMDFiZjQ4NDZhYmM0N2VhNDg3MjkuLjAyYzNjYjRiOGZlNWUzOTM2YjhmZGMxYzMw
MGE4ZjliOWEzMWY1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBA
IC0xMDgsNyArMTA4LDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNDdXN0b21HZXR0ZXJTZXR0ZXIo
KSBjb25zdDsKICAgICBib29sIGlzUHJveHkoKSBjb25zdDsKICAgICBib29sIGlzRnVuY3Rpb24o
Vk0mKTsKLSAgICBib29sIGlzQ2FsbGFibGUoVk0mLCBDYWxsVHlwZSYsIENhbGxEYXRhJik7CiAg
ICAgYm9vbCBpc0NvbnN0cnVjdG9yKFZNJik7CiAgICAgYm9vbCBpc0NvbnN0cnVjdG9yKFZNJiwg
Q29uc3RydWN0VHlwZSYsIENvbnN0cnVjdERhdGEmKTsKICAgICBib29sIGluaGVyaXRzKFZNJiwg
Y29uc3QgQ2xhc3NJbmZvKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGxJbmxpbmVzLmgKaW5kZXggODc5OGM1YTk3OGIxYTIwMDFiZWZlMWUzNTM4Y2IwOTRl
NmQyOWNmMC4uNDg5M2UwNzA3NGNjMTA5MTNiNmE1Zjg2MDAwNmI0YTY4NTRkMTQxMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaApAQCAtMjQwLDE0
ICsyNDAsNiBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNDZWxsOjppc0Z1bmN0aW9uKFZNJiB2bSkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWlubGluZSBib29sIEpTQ2VsbDo6aXNDYWxsYWJsZShW
TSYgdm0sIENhbGxUeXBlJiBjYWxsVHlwZSwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGlm
ICh0eXBlKCkgIT0gSlNGdW5jdGlvblR5cGUgJiYgIShpbmxpbmVUeXBlRmxhZ3MoKSAmIE92ZXJy
aWRlc0dldENhbGxEYXRhKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhbGxUeXBlID0g
bWV0aG9kVGFibGUodm0pLT5nZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Ci0gICAgcmV0dXJu
IGNhbGxUeXBlICE9IENhbGxUeXBlOjpOb25lOwotfQotCiBpbmxpbmUgYm9vbCBKU0NlbGw6Omlz
Q29uc3RydWN0b3IoVk0mIHZtKQogewogICAgIENvbnN0cnVjdFR5cGUgY29uc3RydWN0VHlwZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKaW5kZXggMzYw
ZGQ5ZTMzZTJjZTM2NTI1YjIyOTc0MTI3OThlYWJjODAxZDhiMC4uOTc1MWJjNmNhYzRkYTQ0OGQw
ZjNmYzI3NTU4YmNhMWI1Y2U5NWZkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5jcHAKQEAgLTIzMSw4ICsyMzEsOCBAQCBTdHJpbmdpZmllcjo6U3RyaW5n
aWZpZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSByZXBsYWNlciwgSlNW
YWx1ZQogICAgIGlmIChtX3JlcGxhY2VyLmlzT2JqZWN0KCkpIHsKICAgICAgICAgSlNPYmplY3Qq
IHJlcGxhY2VyT2JqZWN0ID0gYXNPYmplY3QobV9yZXBsYWNlcik7CiAKLSAgICAgICAgbV9yZXBs
YWNlckNhbGxUeXBlID0gQ2FsbFR5cGU6Ok5vbmU7Ci0gICAgICAgIGlmICghcmVwbGFjZXJPYmpl
Y3QtPmlzQ2FsbGFibGUodm0sIG1fcmVwbGFjZXJDYWxsVHlwZSwgbV9yZXBsYWNlckNhbGxEYXRh
KSkgeworICAgICAgICBtX3JlcGxhY2VyQ2FsbFR5cGUgPSBnZXRDYWxsRGF0YSh2bSwgcmVwbGFj
ZXJPYmplY3QsIG1fcmVwbGFjZXJDYWxsRGF0YSk7CisgICAgICAgIGlmIChtX3JlcGxhY2VyQ2Fs
bFR5cGUgIT0gQ2FsbFR5cGU6Ok5vbmUpIHsKICAgICAgICAgICAgIGJvb2wgaXNBcnJheVJlcGxh
Y2VyID0gSlNDOjppc0FycmF5KGdsb2JhbE9iamVjdCwgcmVwbGFjZXJPYmplY3QpOwogICAgICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgKTsKICAgICAgICAgICAgIGlmIChpc0Fy
cmF5UmVwbGFjZXIpIHsKQEAgLTMwNCw5ICszMDQsOSBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUg
U3RyaW5naWZpZXI6OnRvSlNPTihKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgUHJvcGVydHlOYW1l
RgogICAgIEpTVmFsdWUgdG9KU09ORnVuY3Rpb24gPSBiYXNlVmFsdWUuZ2V0KG1fZ2xvYmFsT2Jq
ZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT50b0pTT04pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CiAKLSAgICBDYWxsVHlwZSBjYWxsVHlwZTsKICAgICBDYWxsRGF0YSBjYWxs
RGF0YTsKLSAgICBpZiAoIXRvSlNPTkZ1bmN0aW9uLmlzQ2FsbGFibGUodm0sIGNhbGxUeXBlLCBj
YWxsRGF0YSkpCisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YSh2bSwgdG9KU09O
RnVuY3Rpb24sIGNhbGxEYXRhKTsKKyAgICBpZiAoY2FsbFR5cGUgIT0gQ2FsbFR5cGU6Ok5vbmUp
CiAgICAgICAgIHJldHVybiBiYXNlVmFsdWU7CiAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBh
cmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3Ry
dWN0b3IuY3BwCmluZGV4IDk1ZWU0YzQxYmY5NzBiZDkxYjU0YjU4YjU1M2IzNjJjZDA0NWFjYWQu
LmRiNWE3MDgwMjc3NzI1NThmMDE3ODg3ZmI2NDFkZjlhODdkYzllODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTUz
MSwxMiArNTMxLDkgQEAgYm9vbCB0b1Byb3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGluLCBQcm9wZXJ0eURlc2MKICAgICBpZiAoaGFzUHJvcGVy
dHkpIHsKICAgICAgICAgSlNWYWx1ZSBnZXQgPSBkZXNjcmlwdGlvbi0+Z2V0KGdsb2JhbE9iamVj
dCwgdm0ucHJvcGVydHlOYW1lcy0+Z2V0KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgZmFsc2UpOwotICAgICAgICBpZiAoIWdldC5pc1VuZGVmaW5lZCgpKSB7Ci0gICAgICAg
ICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICAgICAgICAgIGlmIChnZXRDYWxsRGF0YSh2bSwg
Z2V0LCBjYWxsRGF0YSkgPT0gQ2FsbFR5cGU6Ok5vbmUpIHsKLSAgICAgICAgICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiR2V0dGVyIG11c3QgYmUgYSBmdW5jdGlv
bi4iX3MpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KKyAg
ICAgICAgaWYgKCFnZXQuaXNVbmRlZmluZWQoKSAmJiAhZ2V0LmlzRnVuY3Rpb24odm0pKSB7Cisg
ICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiR2V0dGVyIG11
c3QgYmUgYSBmdW5jdGlvbi4iX3MpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICB9CiAgICAgICAgIGRlc2Muc2V0R2V0dGVyKGdldCk7CiAgICAgfSBlbHNlCkBAIC01NDcsMTIg
KzU0NCw5IEBAIGJvb2wgdG9Qcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBpbiwgUHJvcGVydHlEZXNjCiAgICAgaWYgKGhhc1Byb3BlcnR5KSB7
CiAgICAgICAgIEpTVmFsdWUgc2V0ID0gZGVzY3JpcHRpb24tPmdldChnbG9iYWxPYmplY3QsIHZt
LnByb3BlcnR5TmFtZXMtPnNldCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGZhbHNlKTsKLSAgICAgICAgaWYgKCFzZXQuaXNVbmRlZmluZWQoKSkgewotICAgICAgICAgICAg
Q2FsbERhdGEgY2FsbERhdGE7Ci0gICAgICAgICAgICBpZiAoZ2V0Q2FsbERhdGEodm0sIHNldCwg
Y2FsbERhdGEpID09IENhbGxUeXBlOjpOb25lKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlNldHRlciBtdXN0IGJlIGEgZnVuY3Rpb24uIl9z
KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9CisgICAgICAg
IGlmICghc2V0LmlzVW5kZWZpbmVkKCkgJiYgIXNldC5pc0Z1bmN0aW9uKHZtKSkgeworICAgICAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlNldHRlciBtdXN0IGJl
IGEgZnVuY3Rpb24uIl9zKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgICAgICBkZXNjLnNldFNldHRlcihzZXQpOwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5kZXggNDFjZThhYWYx
ZGIyY2Q3MDcwZTE1YjZhNmQzMWI3NTQxNzUyYzg1YS4uNWVlNDFmYTEyOTQwMDBjZmEwNjJlNGYz
MWVmMGJjYTYzNjljODQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC0xNTQsOCArMTU0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNEZWZpbmVHZXR0ZXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE8KICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgp
KTsKIAogICAgIEpTVmFsdWUgZ2V0ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKLSAgICBDYWxs
RGF0YSBjYWxsRGF0YTsKLSAgICBpZiAoZ2V0Q2FsbERhdGEodm0sIGdldCwgY2FsbERhdGEpID09
IENhbGxUeXBlOjpOb25lKQorICAgIGlmICghZ2V0LmlzRnVuY3Rpb24odm0pKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiaW52YWxpZCBnZXR0
ZXIgdXNhZ2UiX3MpOwogCiAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApLnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKQEAgLTE4Miw4ICsxODEsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOwogCiAgICAgSlNWYWx1ZSBzZXQgPSBjYWxsRnJhbWUtPmFyZ3VtZW50
KDEpOwotICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIGlmIChnZXRDYWxsRGF0YSh2bSwgc2V0
LCBjYWxsRGF0YSkgPT0gQ2FsbFR5cGU6Ok5vbmUpCisgICAgaWYgKCFzZXQuaXNGdW5jdGlvbih2
bSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJpbnZhbGlkIHNldHRlciB1c2FnZSJfcyk7CiAKICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IGNh
bGxGcmFtZS0+YXJndW1lbnQoMCkudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2NoZWR1bGVkQWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTY2hlZHVsZWRB
Y3Rpb24uaAppbmRleCBkMTZkMjNmZDRiMTg0MTVhMmQ4OTBhZjJjMDFhMzViNjhkNTQ3ZTFiLi4y
YzlkNTU3NWY3MmViNTE3NTc2OTQ0YTBjYjBmZmU1MzA2MzljOWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTY2hlZHVsZWRBY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTY2hlZHVsZWRBY3Rpb24u
aApAQCAtMzgsOCArMzgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJ0ZXI8SURMU2NoZWR1
bGVkQWN0aW9uPiA6IERlZmF1bHRDb252ZXJ0ZXI8SURMU2NoZWR1bGVkQQogICAgICAgICBKU0M6
OlZNJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICAgICAgSlNDOjpDYWxsRGF0
YSBjYWxsRGF0YTsKLSAgICAgICAgaWYgKGdldENhbGxEYXRhKHZtLCB2YWx1ZSwgY2FsbERhdGEp
ID09IEpTQzo6Q2FsbFR5cGU6Ok5vbmUpIHsKKyAgICAgICAgaWYgKCF2YWx1ZS5pc0Z1bmN0aW9u
KHZtKSkgewogICAgICAgICAgICAgYXV0byBjb2RlID0gQ29udmVydGVyPElETERPTVN0cmluZz46
OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAgICAgICByZXR1cm4gU2NoZWR1
bGVkQWN0aW9uOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LndvcmxkKCksIFdURk1vdmUoY29kZSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwCmluZGV4IDE4MTgwYzUxNmVkNmM1NTU4ODBlNzRlMzk0ZDY1ZjU5NjljNTU0YjQuLjRkYTY4
MzNiZmFjMjYzOWZiMzFmM2ZhMDVhYjJmMjRlZmIxNjljNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTc1LDggKzc1
LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OnJlZ2lzdGVy
UGFpbnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgZ2wKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAKICAgICAvLyBWYWxpZGF0ZSB0aGF0IHBhaW50Q29uc3RydWN0b3Ig
aXMgYSBWb2lkRnVuY3Rpb24KLSAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBpZiAoSlNDOjpn
ZXRDYWxsRGF0YSh2bSwgcGFpbnRDb25zdHJ1Y3Rvci5nZXQoKSwgY2FsbERhdGEpID09IEpTQzo6
Q2FsbFR5cGU6Ok5vbmUpCisgICAgaWYgKCFwYWludENvbnN0cnVjdG9yLT5pc0Z1bmN0aW9uKHZt
KSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgInBhaW50Q29uc3RydWN0
b3IgbXVzdCBiZSBjYWxsYWJsZSIgfTsKIAogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397606</attachid>
            <date>2020-04-25 20:07:19 -0700</date>
            <delta_ts>2020-04-25 22:07:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211037-20200425200718.patch</filename>
            <type>text/plain</type>
            <size>12420</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTNiZmU4MWVjMzQxZDRmMTBiODFjN2M0YTU0NDM1M2Q5Y2JmYzE2Li5hNDAxNGMxN2I0MGNhZDA1
Y2QxMDVhYzE1OTI3ZjE0OGNhNzdiYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAyMC0wNC0yNSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gaXNDYWxsYWJsZSBpcyByZWR1bmRhbnQgd2l0aCBpc0Z1
bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTEwMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBp
c0NhbGxhYmxlIGlzIG9ubHkgYmVpbmcgdXNlZCBpbiB0d28gcGxhY2VzIGFuZCBoYXMgdGhlIHNh
bWUgZGVmaW5pdGlvbiBhcyBpc0Z1bmN0aW9uIChhc2lkZSBmcm9tIG91dCBwYXJhbXMpLgorICAg
ICAgICBXaGVyZSBDYWxsRGF0YSBpcyBuZWVkZWQsIGdldENhbGxEYXRhIHNob3VsZCBiZSB1c2Vk
OyB3aGVyZSBDYWxsRGF0YSBpcyBub3QgbmVlZGVkLCBpc0Z1bmN0aW9uIHNob3VsZCBiZSB1c2Vk
LgorCisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisgICAgICAgICogcnVudGltZS9K
U0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppc0NhbGxhYmxlIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDZWxsSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmlzQ2FsbGFibGUp
OiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgaXNDYWxsYWJsZS4KKworICAgICAgICAqIHJ1bnRp
bWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpTdHJpbmdpZmll
cik6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjp0b0pTT04pOgorICAgICAgICBVc2UgZ2V0
Q2FsbERhdGEgaWYgeW91IG5lZWQgQ2FsbERhdGEuCisKKyAgICAgICAgKiBydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjplcnJvckRlc2NyaXB0aW9uRm9yVmFsdWUp
OgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
Ojp0b1Byb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNEZWZpbmVHZXR0ZXIpOgorICAg
ICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNEZWZpbmVTZXR0ZXIpOgorICAgICAgICBEb24ndCB1
c2UgZ2V0Q2FsbERhdGEgaWYgeW91IGRvbid0IG5lZWQgQ2FsbERhdGEuIAorCiAyMDIwLTA0LTI1
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIERlYWwg
d2l0aCBhbm90aGVyIHJvdW5kIG9mIFhjb2RlIHVwZ3JhZGUgY2hlY2tzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTdjOGEzNjg0NWUyYjQ2MzBjODVlN2EzMjhiZWEyNzExZDI2MTk3OC4uY2U4MjBkMDc0ZDgzOWMz
MDQ3ZDcxNmM5Y2M4MmJiZDEwMmU0MjYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIwLTA0LTI1ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAg
ICAgICBbSlNDXSBpc0NhbGxhYmxlIGlzIHJlZHVuZGFudCB3aXRoIGlzRnVuY3Rpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTAzNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01Db252ZXJ0U2NoZWR1bGVkQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpDb252ZXJ0
ZXI8SURMU2NoZWR1bGVkQWN0aW9uPjo6Y29udmVydCk6CisgICAgICAgICogd29ya2xldHMvUGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGU6OnJlZ2lzdGVyUGFpbnQpOgorICAgICAgICBEb24ndCB1c2UgZ2V0Q2FsbERh
dGEgaWYgeW91IGRvbid0IG5lZWQgQ2FsbERhdGEuIAorCiAyMDIwLTA0LTI1ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHN0YXRpYyBpbml0aWFsaXpl
ZCBMb2NrIGluc3RlYWQgb2YgTGF6eU5ldmVyRGVzdHJveWVkPExvY2s+CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCmluZGV4IGFmOThk
NGQyN2I0MWQxNDMzNmEwMjE4ZTgwYjc2Y2U0ZDhiNDBiNzIuLjc5MTUwZmViMzJmMzNlOWZjNDlk
NDZhNzY2ODg3ODA2MTMwOTYyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCkBAIC05NCw5ICs5NCw4IEBAIFN0cmluZyBlcnJv
ckRlc2NyaXB0aW9uRm9yVmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSB2KQogICAgICAgICByZXR1cm4gYXNTeW1ib2wodiktPmRlc2NyaXB0aXZlU3RyaW5nKCk7CiAg
ICAgaWYgKHYuaXNPYmplY3QoKSkgewogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7Ci0gICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAgICAgICBKU09iamVjdCogb2JqZWN0
ID0gYXNPYmplY3Qodik7Ci0gICAgICAgIGlmIChvYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0
Q2FsbERhdGEob2JqZWN0LCBjYWxsRGF0YSkgIT0gQ2FsbFR5cGU6Ok5vbmUpCisgICAgICAgIGlm
IChvYmplY3QtPmlzRnVuY3Rpb24odm0pKQogICAgICAgICAgICAgcmV0dXJuIHZtLnNtYWxsU3Ry
aW5ncy5mdW5jdGlvblN0cmluZygpLT52YWx1ZShnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1
cm4gSlNPYmplY3Q6OmNhbGN1bGF0ZWRDbGFzc05hbWUob2JqZWN0KTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMjU0ZDQ3ZjAzNDMyMGM2
ZjVkZGNjYThjMzdiNTQ5OTM0ODk2MTcwMy4uZjUyYmM3YmRmODAwYTJjMTRjYzUyZTY1NmRlMGYw
M2FkNTEwYmJkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
aApAQCAtMjM0LDggKzIzNCw2IEBAIHB1YmxpYzoKICAgICAvLyBRdWVyeWluZyB0aGUgdHlwZS4K
ICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKICAgICBib29sIGlzRnVuY3Rpb24oVk0mKSBjb25z
dDsKLSAgICBib29sIGlzQ2FsbGFibGUoVk0mKSBjb25zdDsKLSAgICBib29sIGlzQ2FsbGFibGUo
Vk0mLCBDYWxsVHlwZSYsIENhbGxEYXRhJikgY29uc3Q7CiAgICAgYm9vbCBpc0NvbnN0cnVjdG9y
KFZNJikgY29uc3Q7CiAgICAgYm9vbCBpc0NvbnN0cnVjdG9yKFZNJiwgQ29uc3RydWN0VHlwZSYs
IENvbnN0cnVjdERhdGEmKSBjb25zdDsKICAgICBib29sIGlzVW5kZWZpbmVkKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaApp
bmRleCBlZGIwYjgyMzE3M2RiZmE4OGNlMjU2YzFmZGZhYmNjNDAyZWE4MzUxLi5jMmFmNmExNmMx
NmU4ODg4OWZmMjZmMzkyYzg4YzhiYWQ3NjZhNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKQEAgLTg4MiwyMCArODgyLDYgQEAg
aW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNGdW5jdGlvbihWTSYgdm0pIGNvbnN0CiAgICAgcmV0dXJu
IGFzQ2VsbCgpLT5pc0Z1bmN0aW9uKHZtKTsKIH0KIAotaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXND
YWxsYWJsZShWTSYgdm0pIGNvbnN0Ci17Ci0gICAgQ2FsbFR5cGUgdW51c2VkVHlwZTsKLSAgICBD
YWxsRGF0YSB1bnVzZWREYXRhOwotICAgIHJldHVybiBpc0NhbGxhYmxlKHZtLCB1bnVzZWRUeXBl
LCB1bnVzZWREYXRhKTsKLX0KLQotaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNDYWxsYWJsZShWTSYg
dm0sIENhbGxUeXBlJiBjYWxsVHlwZSwgQ2FsbERhdGEmIGNhbGxEYXRhKSBjb25zdAotewotICAg
IGlmICghaXNDZWxsKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gYXNDZWxs
KCktPmlzQ2FsbGFibGUodm0sIGNhbGxUeXBlLCBjYWxsRGF0YSk7Ci19Ci0KIGlubGluZSBib29s
IEpTVmFsdWU6OmlzQ29uc3RydWN0b3IoVk0mIHZtKSBjb25zdAogewogICAgIGlmICghaXNDZWxs
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IDA2ZWQ0ZTcwOTJl
M2Q0M2U3NzcxMDFiZjQ4NDZhYmM0N2VhNDg3MjkuLjAyYzNjYjRiOGZlNWUzOTM2YjhmZGMxYzMw
MGE4ZjliOWEzMWY1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBA
IC0xMDgsNyArMTA4LDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNDdXN0b21HZXR0ZXJTZXR0ZXIo
KSBjb25zdDsKICAgICBib29sIGlzUHJveHkoKSBjb25zdDsKICAgICBib29sIGlzRnVuY3Rpb24o
Vk0mKTsKLSAgICBib29sIGlzQ2FsbGFibGUoVk0mLCBDYWxsVHlwZSYsIENhbGxEYXRhJik7CiAg
ICAgYm9vbCBpc0NvbnN0cnVjdG9yKFZNJik7CiAgICAgYm9vbCBpc0NvbnN0cnVjdG9yKFZNJiwg
Q29uc3RydWN0VHlwZSYsIENvbnN0cnVjdERhdGEmKTsKICAgICBib29sIGluaGVyaXRzKFZNJiwg
Y29uc3QgQ2xhc3NJbmZvKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGxJbmxpbmVzLmgKaW5kZXggODc5OGM1YTk3OGIxYTIwMDFiZWZlMWUzNTM4Y2IwOTRl
NmQyOWNmMC4uNDg5M2UwNzA3NGNjMTA5MTNiNmE1Zjg2MDAwNmI0YTY4NTRkMTQxMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaApAQCAtMjQwLDE0
ICsyNDAsNiBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNDZWxsOjppc0Z1bmN0aW9uKFZNJiB2bSkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWlubGluZSBib29sIEpTQ2VsbDo6aXNDYWxsYWJsZShW
TSYgdm0sIENhbGxUeXBlJiBjYWxsVHlwZSwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGlm
ICh0eXBlKCkgIT0gSlNGdW5jdGlvblR5cGUgJiYgIShpbmxpbmVUeXBlRmxhZ3MoKSAmIE92ZXJy
aWRlc0dldENhbGxEYXRhKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhbGxUeXBlID0g
bWV0aG9kVGFibGUodm0pLT5nZXRDYWxsRGF0YSh0aGlzLCBjYWxsRGF0YSk7Ci0gICAgcmV0dXJu
IGNhbGxUeXBlICE9IENhbGxUeXBlOjpOb25lOwotfQotCiBpbmxpbmUgYm9vbCBKU0NlbGw6Omlz
Q29uc3RydWN0b3IoVk0mIHZtKQogewogICAgIENvbnN0cnVjdFR5cGUgY29uc3RydWN0VHlwZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKaW5kZXggMzYw
ZGQ5ZTMzZTJjZTM2NTI1YjIyOTc0MTI3OThlYWJjODAxZDhiMC4uYjM3NDU4Yjc3NmM5YzRkMWFh
NGE4ZTU0MjBhOWI5MDFjOTFhM2I2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5jcHAKQEAgLTIzMSw4ICsyMzEsOCBAQCBTdHJpbmdpZmllcjo6U3RyaW5n
aWZpZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSByZXBsYWNlciwgSlNW
YWx1ZQogICAgIGlmIChtX3JlcGxhY2VyLmlzT2JqZWN0KCkpIHsKICAgICAgICAgSlNPYmplY3Qq
IHJlcGxhY2VyT2JqZWN0ID0gYXNPYmplY3QobV9yZXBsYWNlcik7CiAKLSAgICAgICAgbV9yZXBs
YWNlckNhbGxUeXBlID0gQ2FsbFR5cGU6Ok5vbmU7Ci0gICAgICAgIGlmICghcmVwbGFjZXJPYmpl
Y3QtPmlzQ2FsbGFibGUodm0sIG1fcmVwbGFjZXJDYWxsVHlwZSwgbV9yZXBsYWNlckNhbGxEYXRh
KSkgeworICAgICAgICBtX3JlcGxhY2VyQ2FsbFR5cGUgPSBnZXRDYWxsRGF0YSh2bSwgcmVwbGFj
ZXJPYmplY3QsIG1fcmVwbGFjZXJDYWxsRGF0YSk7CisgICAgICAgIGlmIChtX3JlcGxhY2VyQ2Fs
bFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUpIHsKICAgICAgICAgICAgIGJvb2wgaXNBcnJheVJlcGxh
Y2VyID0gSlNDOjppc0FycmF5KGdsb2JhbE9iamVjdCwgcmVwbGFjZXJPYmplY3QpOwogICAgICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgKTsKICAgICAgICAgICAgIGlmIChpc0Fy
cmF5UmVwbGFjZXIpIHsKQEAgLTMwNCw5ICszMDQsOSBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUg
U3RyaW5naWZpZXI6OnRvSlNPTihKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgUHJvcGVydHlOYW1l
RgogICAgIEpTVmFsdWUgdG9KU09ORnVuY3Rpb24gPSBiYXNlVmFsdWUuZ2V0KG1fZ2xvYmFsT2Jq
ZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT50b0pTT04pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CiAKLSAgICBDYWxsVHlwZSBjYWxsVHlwZTsKICAgICBDYWxsRGF0YSBjYWxs
RGF0YTsKLSAgICBpZiAoIXRvSlNPTkZ1bmN0aW9uLmlzQ2FsbGFibGUodm0sIGNhbGxUeXBlLCBj
YWxsRGF0YSkpCisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YSh2bSwgdG9KU09O
RnVuY3Rpb24sIGNhbGxEYXRhKTsKKyAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUp
CiAgICAgICAgIHJldHVybiBiYXNlVmFsdWU7CiAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBh
cmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3Ry
dWN0b3IuY3BwCmluZGV4IDk1ZWU0YzQxYmY5NzBiZDkxYjU0YjU4YjU1M2IzNjJjZDA0NWFjYWQu
LmRiNWE3MDgwMjc3NzI1NThmMDE3ODg3ZmI2NDFkZjlhODdkYzllODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTUz
MSwxMiArNTMxLDkgQEAgYm9vbCB0b1Byb3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGluLCBQcm9wZXJ0eURlc2MKICAgICBpZiAoaGFzUHJvcGVy
dHkpIHsKICAgICAgICAgSlNWYWx1ZSBnZXQgPSBkZXNjcmlwdGlvbi0+Z2V0KGdsb2JhbE9iamVj
dCwgdm0ucHJvcGVydHlOYW1lcy0+Z2V0KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgZmFsc2UpOwotICAgICAgICBpZiAoIWdldC5pc1VuZGVmaW5lZCgpKSB7Ci0gICAgICAg
ICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICAgICAgICAgIGlmIChnZXRDYWxsRGF0YSh2bSwg
Z2V0LCBjYWxsRGF0YSkgPT0gQ2FsbFR5cGU6Ok5vbmUpIHsKLSAgICAgICAgICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiR2V0dGVyIG11c3QgYmUgYSBmdW5jdGlv
bi4iX3MpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KKyAg
ICAgICAgaWYgKCFnZXQuaXNVbmRlZmluZWQoKSAmJiAhZ2V0LmlzRnVuY3Rpb24odm0pKSB7Cisg
ICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiR2V0dGVyIG11
c3QgYmUgYSBmdW5jdGlvbi4iX3MpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICB9CiAgICAgICAgIGRlc2Muc2V0R2V0dGVyKGdldCk7CiAgICAgfSBlbHNlCkBAIC01NDcsMTIg
KzU0NCw5IEBAIGJvb2wgdG9Qcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBpbiwgUHJvcGVydHlEZXNjCiAgICAgaWYgKGhhc1Byb3BlcnR5KSB7
CiAgICAgICAgIEpTVmFsdWUgc2V0ID0gZGVzY3JpcHRpb24tPmdldChnbG9iYWxPYmplY3QsIHZt
LnByb3BlcnR5TmFtZXMtPnNldCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGZhbHNlKTsKLSAgICAgICAgaWYgKCFzZXQuaXNVbmRlZmluZWQoKSkgewotICAgICAgICAgICAg
Q2FsbERhdGEgY2FsbERhdGE7Ci0gICAgICAgICAgICBpZiAoZ2V0Q2FsbERhdGEodm0sIHNldCwg
Y2FsbERhdGEpID09IENhbGxUeXBlOjpOb25lKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlNldHRlciBtdXN0IGJlIGEgZnVuY3Rpb24uIl9z
KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9CisgICAgICAg
IGlmICghc2V0LmlzVW5kZWZpbmVkKCkgJiYgIXNldC5pc0Z1bmN0aW9uKHZtKSkgeworICAgICAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlNldHRlciBtdXN0IGJl
IGEgZnVuY3Rpb24uIl9zKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgICAgICBkZXNjLnNldFNldHRlcihzZXQpOwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5kZXggNDFjZThhYWYx
ZGIyY2Q3MDcwZTE1YjZhNmQzMWI3NTQxNzUyYzg1YS4uNWVlNDFmYTEyOTQwMDBjZmEwNjJlNGYz
MWVmMGJjYTYzNjljODQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC0xNTQsOCArMTU0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNEZWZpbmVHZXR0ZXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE8KICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgp
KTsKIAogICAgIEpTVmFsdWUgZ2V0ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKLSAgICBDYWxs
RGF0YSBjYWxsRGF0YTsKLSAgICBpZiAoZ2V0Q2FsbERhdGEodm0sIGdldCwgY2FsbERhdGEpID09
IENhbGxUeXBlOjpOb25lKQorICAgIGlmICghZ2V0LmlzRnVuY3Rpb24odm0pKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiaW52YWxpZCBnZXR0
ZXIgdXNhZ2UiX3MpOwogCiAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApLnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKQEAgLTE4Miw4ICsxODEsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOwogCiAgICAgSlNWYWx1ZSBzZXQgPSBjYWxsRnJhbWUtPmFyZ3VtZW50
KDEpOwotICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIGlmIChnZXRDYWxsRGF0YSh2bSwgc2V0
LCBjYWxsRGF0YSkgPT0gQ2FsbFR5cGU6Ok5vbmUpCisgICAgaWYgKCFzZXQuaXNGdW5jdGlvbih2
bSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJpbnZhbGlkIHNldHRlciB1c2FnZSJfcyk7CiAKICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IGNh
bGxGcmFtZS0+YXJndW1lbnQoMCkudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2NoZWR1bGVkQWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTY2hlZHVsZWRB
Y3Rpb24uaAppbmRleCBkMTZkMjNmZDRiMTg0MTVhMmQ4OTBhZjJjMDFhMzViNjhkNTQ3ZTFiLi4y
YzlkNTU3NWY3MmViNTE3NTc2OTQ0YTBjYjBmZmU1MzA2MzljOWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTY2hlZHVsZWRBY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTY2hlZHVsZWRBY3Rpb24u
aApAQCAtMzgsOCArMzgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJ0ZXI8SURMU2NoZWR1
bGVkQWN0aW9uPiA6IERlZmF1bHRDb252ZXJ0ZXI8SURMU2NoZWR1bGVkQQogICAgICAgICBKU0M6
OlZNJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICAgICAgSlNDOjpDYWxsRGF0
YSBjYWxsRGF0YTsKLSAgICAgICAgaWYgKGdldENhbGxEYXRhKHZtLCB2YWx1ZSwgY2FsbERhdGEp
ID09IEpTQzo6Q2FsbFR5cGU6Ok5vbmUpIHsKKyAgICAgICAgaWYgKCF2YWx1ZS5pc0Z1bmN0aW9u
KHZtKSkgewogICAgICAgICAgICAgYXV0byBjb2RlID0gQ29udmVydGVyPElETERPTVN0cmluZz46
OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAgICAgICByZXR1cm4gU2NoZWR1
bGVkQWN0aW9uOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LndvcmxkKCksIFdURk1vdmUoY29kZSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwCmluZGV4IDE4MTgwYzUxNmVkNmM1NTU4ODBlNzRlMzk0ZDY1ZjU5NjljNTU0YjQuLjRkYTY4
MzNiZmFjMjYzOWZiMzFmM2ZhMDVhYjJmMjRlZmIxNjljNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTc1LDggKzc1
LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OnJlZ2lzdGVy
UGFpbnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgZ2wKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAKICAgICAvLyBWYWxpZGF0ZSB0aGF0IHBhaW50Q29uc3RydWN0b3Ig
aXMgYSBWb2lkRnVuY3Rpb24KLSAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBpZiAoSlNDOjpn
ZXRDYWxsRGF0YSh2bSwgcGFpbnRDb25zdHJ1Y3Rvci5nZXQoKSwgY2FsbERhdGEpID09IEpTQzo6
Q2FsbFR5cGU6Ok5vbmUpCisgICAgaWYgKCFwYWludENvbnN0cnVjdG9yLT5pc0Z1bmN0aW9uKHZt
KSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgInBhaW50Q29uc3RydWN0
b3IgbXVzdCBiZSBjYWxsYWJsZSIgfTsKIAogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>