<?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>156826</bug_id>
          
          <creation_ts>2016-04-20 17:13:56 -0700</creation_ts>
          <short_desc>Modern IDB (Workers): Remove IDBRequest/IDBOpenDBRequest&apos;s requirement to get an IDBServerConnection around</short_desc>
          <delta_ts>2016-04-20 21:42:03 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
    
    <blocked>149953</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1185624</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 17:13:56 -0700</bug_when>
    <thetext>Modern IDB (Workers): Remove IDBRequest/IDBOpenDBRequest&apos;s requirement to get an IDBServerConnection around

This shuffles around how the Connection is accessed and adds some &quot;main thread only&quot; ASSERTs.

This is the first in a series of baby steps removing this dependency from all IDBFoo* objects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185627</commentid>
    <comment_count>1</comment_count>
      <attachid>276874</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 17:20:19 -0700</bug_when>
    <thetext>Created attachment 276874
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185678</commentid>
    <comment_count>2</comment_count>
      <attachid>276874</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-04-20 21:04:49 -0700</bug_when>
    <thetext>Comment on attachment 276874
Patch v1

r=me.
Do we really need to put &quot;maybe&quot; before the names of all these functions?  Doesn&apos;t just the fact that they return a RefPtr instead of a Ref imply that they could return nullptr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185685</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 21:36:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 276874 [details]
&gt; Patch v1
&gt; 
&gt; r=me.
&gt; Do we really need to put &quot;maybe&quot; before the names of all these functions? 
&gt; Doesn&apos;t just the fact that they return a RefPtr instead of a Ref imply that
&gt; they could return nullptr?

Back in the days before Ref&lt;&gt;, &quot;maybe&quot; denoted &quot;known to possibly fail&quot;

I think it&apos;s still common enough that it&apos;s worth doing.

But, don&apos;t worry - the maybe&apos;s will go away and revert back to normal &quot;create&quot; once this code push is done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185690</commentid>
    <comment_count>4</comment_count>
      <attachid>276874</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-20 21:41:59 -0700</bug_when>
    <thetext>Comment on attachment 276874
Patch v1

Clearing flags on attachment: 276874

Committed r199804: &lt;http://trac.webkit.org/changeset/199804&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185691</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-20 21:42:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276874</attachid>
            <date>2016-04-20 17:20:19 -0700</date>
            <delta_ts>2016-04-20 21:41:59 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>20626</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMGFhY2Y0Li4wMmYwNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDYg
QEAKIDIwMTYtMDQtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIE1vZGVybiBJREIgKFdvcmtlcnMpOiBSZW1vdmUgSURCUmVxdWVzdC9JREJPcGVuREJSZXF1
ZXN0J3MgcmVxdWlyZW1lbnQgdG8gZ2V0IGFuIElEQlNlcnZlckNvbm5lY3Rpb24gYXJvdW5kLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2ODI2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChObyBiZWhhdmlvciBjaGFuZ2UsIGV4aXN0aW5nIHRlc3RzIHBhc3MpLgorCisgICAgICAg
IFRoaXMgZG9lc24ndCBhcHBlYXIgdG8gZG8gbXVjaCBidXQgbWFrZSB0aGluZ3MgYSBsaXR0bGUg
bW9yZSBjb21wbGljYXRlZCwgYnV0IGl0J3MgdGhlIGZpcnN0IG9mIGEgZmV3IAorICAgICAgICBz
bWFsbCBwdXNoZXMgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbi4KKyAgICAgICAgCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJPcGVuREJSZXF1ZXN0OjptYXliZUNyZWF0ZURlbGV0ZVJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SURCT3BlbkRCUmVxdWVzdDo6bWF5YmVDcmVhdGVPcGVuUmVxdWVzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpJREJPcGVuREJSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6Om9uU3VjY2Vzcyk6CisgICAgICAgIChXZWJD
b3JlOjpJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCT3BlbkRCUmVxdWVzdDo6cmVxdWVzdENvbXBsZXRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJPcGVuREJSZXF1ZXN0OjpjcmVhdGVEZWxldGVSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZU9wZW5SZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0Lmg6CisgICAg
ICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6SURCUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJSZXF1ZXN0Ojpjb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmNvbm5lY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6
SURCQ29ubmVjdGlvblByb3h5OjpJREJDb25uZWN0aW9uUHJveHkpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmNvbm5lY3Rpb25Ub1NlcnZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6b3BlbkRhdGFi
YXNlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5Ojpk
ZWxldGVEYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Qcm94eS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0
aW9uUHJveHk6OnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKToKKyAgICAgICAgCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc291cmNlSWRlbnRpZmllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXI6OklEQlJlc291cmNlSWRlbnRp
Zmllcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc291cmNlSWRl
bnRpZmllci5oOgorCisyMDE2LTA0LTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKwogICAgICAgICBNb2Rlcm4gSURCIChXb3JrZXJzKTogSW50cm9kdWNlICJJREJDb25uZWN0
aW9uUHJveHkiIGZvciBmdXR1cmUgdGhyZWFkaW5nIGFic3RyYWN0aW9uLCBhbmQgYWRvcHQgaXQg
aW4gSURCRmFjdG9yeS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NjgxMAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCmluZGV4IDg3NzI5MmMuLmQ1ZDk3NzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3Qu
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yOSw2ICsyOSw4IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNs
dWRlICJET01FcnJvci5oIgorI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94eS5oIgorI2luY2x1
ZGUgIklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCiAj
aW5jbHVkZSAiSURCRXJyb3IuaCIKICNpbmNsdWRlICJJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50
LmgiCkBAIC0zNiwyMyArMzgsMzIgQEAKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbi5oIgogI2lu
Y2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VFdmVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUmVmPElEQk9wZW5EQlJlcXVlc3Q+IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZURlbGV0ZVJl
cXVlc3QoSURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGNvbm5lY3Rpb24sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYg
ZGF0YWJhc2VJZGVudGlmaWVyKQorUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQk9wZW5EQlJl
cXVlc3Q6Om1heWJlQ3JlYXRlRGVsZXRlUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGRhdGFiYXNlSWRlbnRpZmllcikK
IHsKICAgICBBU1NFUlQoZGF0YWJhc2VJZGVudGlmaWVyLmlzVmFsaWQoKSk7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgSURCT3BlbkRCUmVxdWVzdChjb25uZWN0aW9uLCBjb250ZXh0LCBkYXRh
YmFzZUlkZW50aWZpZXIsIDAsIEluZGV4ZWREQjo6UmVxdWVzdFR5cGU6OkRlbGV0ZSkpOworICAg
IGF1dG8qIHByb3h5ID0gY29udGV4dC5pZGJDb25uZWN0aW9uUHJveHkoKTsKKyAgICBpZiAoIXBy
b3h5KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SURCT3BlbkRCUmVxdWVzdChjb250ZXh0LCBwcm94eS0+c2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIoKSwgZGF0YWJhc2VJZGVudGlmaWVyLCAwLCBJbmRleGVkREI6OlJlcXVlc3RUeXBlOjpEZWxl
dGUpKTsKIH0KIAotUmVmPElEQk9wZW5EQlJlcXVlc3Q+IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0
ZU9wZW5SZXF1ZXN0KElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBjb25uZWN0aW9u
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJEYXRhYmFzZUlkZW50
aWZpZXImIGRhdGFiYXNlSWRlbnRpZmllciwgdWludDY0X3QgdmVyc2lvbikKK1JlZlB0cjxJREJP
cGVuREJSZXF1ZXN0PiBJREJPcGVuREJSZXF1ZXN0OjptYXliZUNyZWF0ZU9wZW5SZXF1ZXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmll
ciYgZGF0YWJhc2VJZGVudGlmaWVyLCB1aW50NjRfdCB2ZXJzaW9uKQogewogICAgIEFTU0VSVChk
YXRhYmFzZUlkZW50aWZpZXIuaXNWYWxpZCgpKTsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
REJPcGVuREJSZXF1ZXN0KGNvbm5lY3Rpb24sIGNvbnRleHQsIGRhdGFiYXNlSWRlbnRpZmllciwg
dmVyc2lvbiwgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZTo6T3BlbikpOworICAgIGF1dG8qIHByb3h5
ID0gY29udGV4dC5pZGJDb25uZWN0aW9uUHJveHkoKTsKKyAgICBpZiAoIXByb3h5KQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCT3BlbkRCUmVx
dWVzdChjb250ZXh0LCBwcm94eS0+c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgZGF0YWJh
c2VJZGVudGlmaWVyLCB2ZXJzaW9uLCBJbmRleGVkREI6OlJlcXVlc3RUeXBlOjpPcGVuKSk7CiB9
CiAgICAgCi1JREJPcGVuREJSZXF1ZXN0OjpJREJPcGVuREJSZXF1ZXN0KElEQkNsaWVudDo6SURC
Q29ubmVjdGlvblRvU2VydmVyJiBjb25uZWN0aW9uLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGRhdGFiYXNlSWRlbnRpZmllciwg
dWludDY0X3QgdmVyc2lvbiwgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZSByZXF1ZXN0VHlwZSkKLSAg
ICA6IElEQlJlcXVlc3QoY29ubmVjdGlvbiwgY29udGV4dCkKK0lEQk9wZW5EQlJlcXVlc3Q6OklE
Qk9wZW5EQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgdWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYg
ZGF0YWJhc2VJZGVudGlmaWVyLCB1aW50NjRfdCB2ZXJzaW9uLCBJbmRleGVkREI6OlJlcXVlc3RU
eXBlIHJlcXVlc3RUeXBlKQorICAgIDogSURCUmVxdWVzdChjb250ZXh0LCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcikKICAgICAsIG1fZGF0YWJhc2VJZGVudGlmaWVyKGRhdGFiYXNlSWRlbnRp
ZmllcikKICAgICAsIG1fdmVyc2lvbih2ZXJzaW9uKQogewpAQCAtMTE3LDEwICsxMjgsMTEgQEAg
dm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvblN1Y2Nlc3MoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVz
dWx0RGF0YSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCT3BlbkRCUmVxdWVzdDo6b25TdWNj
ZXNzKCkiKTsKIAotICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgIGF1dG8q
IGNvbm5lY3Rpb24gPSBjb25uZWN0aW9uVG9TZXJ2ZXIoKTsKKyAgICBpZiAoIWNvbm5lY3Rpb24p
CiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFJlc3VsdChJREJEYXRhYmFzZTo6Y3JlYXRlKCpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGNvbm5lY3Rpb24oKSwgcmVzdWx0RGF0YSkpOworICAg
IHNldFJlc3VsdChJREJEYXRhYmFzZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
ICpjb25uZWN0aW9uLCByZXN1bHREYXRhKSk7CiAgICAgbV9pc0RvbmUgPSB0cnVlOwogCiAgICAg
ZW5xdWV1ZUV2ZW50KElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuc3VjY2Vzc0V2ZW50LCBmYWxzZSwgZmFsc2UsICp0aGlzKSk7CkBAIC0xMjgsNyArMTQwLDEx
IEBAIHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25TdWNjZXNzKGNvbnN0IElEQlJlc3VsdERhdGEm
IHJlc3VsdERhdGEpCiAKIHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKGNv
bnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiB7Ci0gICAgUmVmPElEQkRhdGFiYXNlPiBk
YXRhYmFzZSA9IElEQkRhdGFiYXNlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
Y29ubmVjdGlvbigpLCByZXN1bHREYXRhKTsKKyAgICBhdXRvKiBjb25uZWN0aW9uID0gY29ubmVj
dGlvblRvU2VydmVyKCk7CisgICAgaWYgKCFjb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisK
KyAgICBSZWY8SURCRGF0YWJhc2U+IGRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZSgqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqY29ubmVjdGlvbiwgcmVzdWx0RGF0YSk7CiAgICAgUmVm
PElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbiA9IGRhdGFiYXNlLT5zdGFydFZlcnNpb25DaGFu
Z2VUcmFuc2FjdGlvbihyZXN1bHREYXRhLnRyYW5zYWN0aW9uSW5mbygpLCAqdGhpcyk7CiAKICAg
ICBBU1NFUlQodHJhbnNhY3Rpb24tPmluZm8oKS5tb2RlKCkgPT0gSW5kZXhlZERCOjpUcmFuc2Fj
dGlvbk1vZGU6OlZlcnNpb25DaGFuZ2UpOwpAQCAtMTYzLDE2ICsxNzksMjAgQEAgdm9pZCBJREJP
cGVuREJSZXF1ZXN0OjpyZXF1ZXN0Q29tcGxldGVkKGNvbnN0IElEQlJlc3VsdERhdGEmIGRhdGEp
CiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQk9wZW5EQlJlcXVlc3Q6OnJlcXVlc3RDb21wbGV0
ZWQiKTsKIAorICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBjb25uZWN0aW9uVG9TZXJ2ZXIoKTsKKyAg
ICBpZiAoIWNvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKwogICAgIC8vIElmIGFuIE9wZW4g
cmVxdWVzdCB3YXMgY29tcGxldGVkIGFmdGVyIHRoZSBwYWdlIGhhcyBuYXZpZ2F0ZWQsIGxlYXZp
bmcgdGhpcyByZXF1ZXN0CiAgICAgLy8gd2l0aCBhIHN0b3BwZWQgc2NyaXB0IGV4ZWN1dGlvbiBj
b250ZXh0LCB3ZSBuZWVkIHRvIG1lc3NhZ2UgYmFjayB0byB0aGUgc2VydmVyIHNvIGl0CiAgICAg
Ly8gZG9lc24ndCBoYW5nIHdhaXRpbmcgb24gYSBkYXRhYmFzZSBjb25uZWN0aW9uIG9yIHRyYW5z
YWN0aW9uIHRoYXQgd2lsbCBuZXZlciBleGlzdC4KICAgICBpZiAobV9jb250ZXh0U3RvcHBlZCkg
ewogICAgICAgICBzd2l0Y2ggKGRhdGEudHlwZSgpKSB7CiAgICAgICAgIGNhc2UgSURCUmVzdWx0
VHlwZTo6T3BlbkRhdGFiYXNlU3VjY2VzczoKLSAgICAgICAgICAgIGNvbm5lY3Rpb24oKS5hYm9y
dE9wZW5BbmRVcGdyYWRlTmVlZGVkKGRhdGEuZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcigp
LCBJREJSZXNvdXJjZUlkZW50aWZpZXI6OmVtcHR5VmFsdWUoKSk7CisgICAgICAgICAgICBjb25u
ZWN0aW9uLT5hYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKGRhdGEuZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllcigpLCBJREJSZXNvdXJjZUlkZW50aWZpZXI6OmVtcHR5VmFsdWUoKSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJREJSZXN1bHRUeXBlOjpPcGVuRGF0YWJhc2VV
cGdyYWRlTmVlZGVkOgotICAgICAgICAgICAgY29ubmVjdGlvbigpLmFib3J0T3BlbkFuZFVwZ3Jh
ZGVOZWVkZWQoZGF0YS5kYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGRhdGEudHJhbnNh
Y3Rpb25JbmZvKCkuaWRlbnRpZmllcigpKTsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPmFib3J0
T3BlbkFuZFVwZ3JhZGVOZWVkZWQoZGF0YS5kYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKCks
IGRhdGEudHJhbnNhY3Rpb25JbmZvKCkuaWRlbnRpZmllcigpKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgKaW5kZXggMGVhNjlh
MS4uODFiNmZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT3BlbkRCUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9wZW5EQlJlcXVlc3QuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE1LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsOCArMzYsOCBAQCBjbGFzcyBJREJSZXN1bHREYXRhOwog
CiBjbGFzcyBJREJPcGVuREJSZXF1ZXN0IGZpbmFsIDogcHVibGljIElEQlJlcXVlc3QgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8SURCT3BlbkRCUmVxdWVzdD4gY3JlYXRlRGVsZXRlUmVxdWVz
dChJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImKTsKLSAgICBzdGF0aWMgUmVmPElEQk9w
ZW5EQlJlcXVlc3Q+IGNyZWF0ZU9wZW5SZXF1ZXN0KElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRv
U2VydmVyJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRp
ZmllciYsIHVpbnQ2NF90IHZlcnNpb24pOworICAgIHN0YXRpYyBSZWZQdHI8SURCT3BlbkRCUmVx
dWVzdD4gbWF5YmVDcmVhdGVEZWxldGVSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBj
b25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImKTsKKyAgICBzdGF0aWMgUmVmUHRyPElEQk9wZW5E
QlJlcXVlc3Q+IG1heWJlQ3JlYXRlT3BlblJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYsIHVpbnQ2NF90IHZlcnNpb24pOwogCiAgICAg
dmlydHVhbCB+SURCT3BlbkRCUmVxdWVzdCgpOwogICAgIApAQCAtNTIsNyArNTIsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBmaXJlRXJyb3JBZnRlclZlcnNpb25DaGFuZ2VDb21wbGV0aW9uKCk7CiAK
IHByaXZhdGU6Ci0gICAgSURCT3BlbkRCUmVxdWVzdChJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25U
b1NlcnZlciYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBJREJEYXRhYmFzZUlkZW50
aWZpZXImLCB1aW50NjRfdCB2ZXJzaW9uLCBJbmRleGVkREI6OlJlcXVlc3RUeXBlKTsKKyAgICBJ
REJPcGVuREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1aW50NjRfdCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJiwgdWludDY0
X3QgdmVyc2lvbiwgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZSk7CiAKICAgICBib29sIGRpc3BhdGNo
RXZlbnQoRXZlbnQmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCBhNzYwZmEzLi5mNTNiNGM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUg
IklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJJREJDb25uZWN0aW9uUHJveHkuaCIK
ICNpbmNsdWRlICJJREJDdXJzb3IuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogI2luY2x1
ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCkBAIC02OCwxMCArNjksOSBAQCBSZWY8SURCUmVx
dWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRlR2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIElEQkluZGV4JgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4
dCwgaW5kZXgsIHJlcXVlc3RlZFJlY29yZFR5cGUsIHRyYW5zYWN0aW9uKSk7CiB9CiAKLUlEQlJl
cXVlc3Q6OklEQlJlcXVlc3QoSURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGNvbm5l
Y3Rpb24sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCitJREJSZXF1ZXN0OjpJREJS
ZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVpbnQ2NF90IGNvbm5lY3Rp
b25JZGVudGlmaWVyKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQotICAgICwgbV9j
b25uZWN0aW9uKGNvbm5lY3Rpb24pCi0gICAgLCBtX3Jlc291cmNlSWRlbnRpZmllcihjb25uZWN0
aW9uKQorICAgICwgbV9yZXNvdXJjZUlkZW50aWZpZXIoY29ubmVjdGlvbklkZW50aWZpZXIpCiB7
CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CkBAIC03OSw3ICs3OSw2IEBAIElEQlJlcXVlc3Q6
OklEQlJlcXVlc3QoSURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGNvbm5lY3Rpb24s
IFNjcmlwdEV4ZWN1CiBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgSURCVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV90
cmFuc2FjdGlvbigmdHJhbnNhY3Rpb24pCi0gICAgLCBtX2Nvbm5lY3Rpb24odHJhbnNhY3Rpb24u
c2VydmVyQ29ubmVjdGlvbigpKQogICAgICwgbV9yZXNvdXJjZUlkZW50aWZpZXIodHJhbnNhY3Rp
b24uc2VydmVyQ29ubmVjdGlvbigpKQogICAgICwgbV9vYmplY3RTdG9yZVNvdXJjZSgmb2JqZWN0
U3RvcmUpCiB7CkBAIC04OSw3ICs4OCw2IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0CiBJREJS
ZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkN1
cnNvciYgY3Vyc29yLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiAgICAgOiBBY3RpdmVE
T01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX3RyYW5zYWN0aW9uKCZ0cmFuc2FjdGlvbikKLSAg
ICAsIG1fY29ubmVjdGlvbih0cmFuc2FjdGlvbi5zZXJ2ZXJDb25uZWN0aW9uKCkpCiAgICAgLCBt
X3Jlc291cmNlSWRlbnRpZmllcih0cmFuc2FjdGlvbi5zZXJ2ZXJDb25uZWN0aW9uKCkpCiAgICAg
LCBtX29iamVjdFN0b3JlU291cmNlKGN1cnNvci5vYmplY3RTdG9yZSgpKQogICAgICwgbV9pbmRl
eFNvdXJjZShjdXJzb3IuaW5kZXgoKSkKQEAgLTEwMyw3ICsxMDEsNiBAQCBJREJSZXF1ZXN0OjpJ
REJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkN1cnNvciYgY3Vy
c29yLCBJREJUcgogSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBJREJJbmRleCYgaW5kZXgsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikK
ICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1fdHJhbnNhY3Rpb24oJnRy
YW5zYWN0aW9uKQotICAgICwgbV9jb25uZWN0aW9uKHRyYW5zYWN0aW9uLnNlcnZlckNvbm5lY3Rp
b24oKSkKICAgICAsIG1fcmVzb3VyY2VJZGVudGlmaWVyKHRyYW5zYWN0aW9uLnNlcnZlckNvbm5l
Y3Rpb24oKSkKICAgICAsIG1faW5kZXhTb3VyY2UoJmluZGV4KQogewpAQCAtNDEwLDYgKzQwNywx
NyBAQCB2b2lkIElEQlJlcXVlc3Q6OnNldFJlc3VsdChSZWY8SURCRGF0YWJhc2U+JiYgZGF0YWJh
c2UpCiAgICAgbV9kYXRhYmFzZVJlc3VsdCA9IFdURk1vdmUoZGF0YWJhc2UpOwogfQogCisvLyBG
SVhNRTogVGVtcG9yYXJpbHkgcmVxdWlyZWQgZHVyaW5nIGJyaW5ndXAgb2YgSURCLWluLVdvcmtl
cnMuCisvLyBPbmNlIGFsbCBJREIgb2JqZWN0IHJlbGlhbmNlIG9uIHRoZSBJREJDb25uZWN0aW9u
VG9TZXJ2ZXIgaGFzIGJlZW4gc2hpZnRlZCB0byByZWxpYW5jZSBvbgorLy8gSURCQ29ubmVjdGlv
blByb3h5LCByZW1vdmUgdGhpcy4KK0lEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyKiBJ
REJSZXF1ZXN0Ojpjb25uZWN0aW9uVG9TZXJ2ZXIoKQoreworICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAg
ICBhdXRvKiBwcm94eSA9IGNvbnRleHQgPyBjb250ZXh0LT5pZGJDb25uZWN0aW9uUHJveHkoKSA6
IG51bGxwdHI7CisgICAgcmV0dXJuIHByb3h5ID8gJnByb3h5LT5jb25uZWN0aW9uVG9TZXJ2ZXIo
KSA6IG51bGxwdHI7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5oCmluZGV4IDRkYTY3M2IuLjEwYmM4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwNCwxNSArMTA0LDE4IEBAIHB1
YmxpYzoKICAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IGZpbmFsOwogCiBwcm90
ZWN0ZWQ6Ci0gICAgSURCUmVxdWVzdChJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICBJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCB1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcik7CiAKICAgICB2b2lkIGVu
cXVldWVFdmVudChSZWY8RXZlbnQ+JiYpOwogICAgIGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudCYp
IG92ZXJyaWRlOwogCi0gICAgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGNvbm5l
Y3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb247IH0KLQogICAgIHZvaWQgc2V0UmVzdWx0KFJl
ZjxJREJEYXRhYmFzZT4mJik7CiAKKyAgICAvLyBGSVhNRTogVGVtcG9yYXJpbHkgcmVxdWlyZWQg
ZHVyaW5nIGJyaW5ndXAgb2YgSURCLWluLVdvcmtlcnMuCisgICAgLy8gT25jZSBhbGwgSURCIG9i
amVjdCByZWxpYW5jZSBvbiB0aGUgSURCQ29ubmVjdGlvblRvU2VydmVyIGhhcyBiZWVuIHNoaWZ0
ZWQgdG8gcmVsaWFuY2Ugb24KKyAgICAvLyBJREJDb25uZWN0aW9uUHJveHksIHJlbW92ZSB0aGlz
LgorICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyKiBjb25uZWN0aW9uVG9TZXJ2
ZXIoKTsKKwogICAgIC8vIEZJWE1FOiBQcm90ZWN0ZWQgZGF0YSBtZW1iZXJzIGFyZW4ndCBncmVh
dCBmb3IgbWFpbnRhaW5hYmlsaXR5LgogICAgIC8vIENvbnNpZGVyIGFkZGluZyBwcm90ZWN0ZWQg
aGVscGVyIGZ1bmN0aW9ucyBhbmQgbWFraW5nIHRoZXNlIHByaXZhdGUuCiAgICAgYm9vbCBtX2lz
RG9uZSB7IGZhbHNlIH07CkBAIC0xNTQsNyArMTU3LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8
SURCRGF0YWJhc2U+IG1fZGF0YWJhc2VSZXN1bHQ7CiAKICAgICBJREJFcnJvciBtX2lkYkVycm9y
OwotICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBtX2Nvbm5lY3Rpb247CiAg
ICAgSURCUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVzb3VyY2VJZGVudGlmaWVyOwogCiAgICAgLy8g
Q291bGQgY29uc2lkZXIgc3RvcmluZyB0aGVzZSB0aHJlZSBpbiBhIHVuaW9uIG9yIHVuaW9uLWxp
a2UgY2xhc3MgaW5zdGVhZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKaW5kZXggNDc3ZTE0
NS4uNmNjZjNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKQEAgLTM2LDcgKzM2LDE4
IEBAIG5hbWVzcGFjZSBJREJDbGllbnQgewogCiBJREJDb25uZWN0aW9uUHJveHk6OklEQkNvbm5l
Y3Rpb25Qcm94eShJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGNvbm5lY3Rpb24pCiAgICAgOiBtX2Nv
bm5lY3Rpb25Ub1NlcnZlcihjb25uZWN0aW9uKQorICAgICwgbV9zZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllcihjb25uZWN0aW9uLmlkZW50aWZpZXIoKSkKIHsKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworfQorCisvLyBGSVhNRTogVGVtcG9yYXJpbHkgcmVxdWlyZWQgZHVyaW5nIGJyaW5n
dXAgb2YgSURCLWluLVdvcmtlcnMuCisvLyBPbmNlIGFsbCBJREIgb2JqZWN0IHJlbGlhbmNlIG9u
IHRoZSBJREJDb25uZWN0aW9uVG9TZXJ2ZXIgaGFzIGJlZW4gc2hpZnRlZCB0byByZWxpYW5jZSBv
bgorLy8gSURCQ29ubmVjdGlvblByb3h5LCByZW1vdmUgdGhpcy4KK0lEQkNvbm5lY3Rpb25Ub1Nl
cnZlciYgSURCQ29ubmVjdGlvblByb3h5Ojpjb25uZWN0aW9uVG9TZXJ2ZXIoKQoreworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvblRvU2VydmVyLmdl
dCgpOwogfQogCiBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCQ29ubmVjdGlvblByb3h5Ojpv
cGVuRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgSURCRGF0
YWJhc2VJZGVudGlmaWVyJiBkYXRhYmFzZUlkZW50aWZpZXIsIHVpbnQ2NF90IHZlcnNpb24pCkBA
IC00NiwxMCArNTcsMTIgQEAgUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkNvbm5lY3Rpb25Q
cm94eTo6b3BlbkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKICAgICBpZiAoIWlzTWFp
blRocmVhZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gcmVxdWVzdCA9
IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZU9wZW5SZXF1ZXN0KG1fY29ubmVjdGlvblRvU2VydmVy
LmdldCgpLCBjb250ZXh0LCBkYXRhYmFzZUlkZW50aWZpZXIsIHZlcnNpb24pOwotICAgIG1fY29u
bmVjdGlvblRvU2VydmVyLT5vcGVuRGF0YWJhc2UocmVxdWVzdC5nZXQoKSk7CisgICAgYXV0byBy
ZXF1ZXN0ID0gSURCT3BlbkRCUmVxdWVzdDo6bWF5YmVDcmVhdGVPcGVuUmVxdWVzdChjb250ZXh0
LCBkYXRhYmFzZUlkZW50aWZpZXIsIHZlcnNpb24pOworICAgIGlmICghcmVxdWVzdCkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoJnJlcXVlc3QubGVha1Jl
ZigpKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+b3BlbkRhdGFiYXNlKCpyZXF1ZXN0KTsK
KyAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAogUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkNv
bm5lY3Rpb25Qcm94eTo6ZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJiBkYXRhYmFzZUlkZW50aWZpZXIpCkBA
IC01OSwxMCArNzIsMTIgQEAgUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkNvbm5lY3Rpb25Q
cm94eTo6ZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGUKICAgICBpZiAoIWlzTWFp
blRocmVhZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gcmVxdWVzdCA9
IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZURlbGV0ZVJlcXVlc3QobV9jb25uZWN0aW9uVG9TZXJ2
ZXIuZ2V0KCksIGNvbnRleHQsIGRhdGFiYXNlSWRlbnRpZmllcik7Ci0gICAgbV9jb25uZWN0aW9u
VG9TZXJ2ZXItPmRlbGV0ZURhdGFiYXNlKHJlcXVlc3QuZ2V0KCkpOworICAgIGF1dG8gcmVxdWVz
dCA9IElEQk9wZW5EQlJlcXVlc3Q6Om1heWJlQ3JlYXRlRGVsZXRlUmVxdWVzdChjb250ZXh0LCBk
YXRhYmFzZUlkZW50aWZpZXIpOworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoJnJlcXVlc3QubGVha1JlZigpKTsKKyAgICBt
X2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGVsZXRlRGF0YWJhc2UoKnJlcXVlc3QpOworICAgIHJldHVy
biByZXF1ZXN0OwogfQogCiB9IC8vIG5hbWVzYXBjZSBJREJDbGllbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHku
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9u
UHJveHkuaAppbmRleCA5YjNmZjE4Li4yNGU5NjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5o
CkBAIC0zOCwxNCArMzgsMjMgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIG5hbWVz
cGFjZSBJREJDbGllbnQgewogCiBjbGFzcyBJREJDb25uZWN0aW9uUHJveHkgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKElEQkNvbm5lY3Rpb25Qcm94eSk7CiBwdWJsaWM6CiAgICAgSURCQ29u
bmVjdGlvblByb3h5KElEQkNvbm5lY3Rpb25Ub1NlcnZlciYpOwogCiAgICAgUmVmUHRyPElEQk9w
ZW5EQlJlcXVlc3Q+IG9wZW5EYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3Qg
SURCRGF0YWJhc2VJZGVudGlmaWVyJiwgdWludDY0X3QgdmVyc2lvbik7CiAgICAgUmVmUHRyPElE
Qk9wZW5EQlJlcXVlc3Q+IGRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBj
b25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImKTsKIAorICAgIHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllcjsgfQorCisgICAgLy8gRklYTUU6IFRlbXBvcmFyaWx5IHJlcXVpcmVkIGR1cmluZyBicmlu
Z3VwIG9mIElEQi1pbi1Xb3JrZXJzLgorICAgIC8vIE9uY2UgYWxsIElEQiBvYmplY3QgcmVsaWFu
Y2Ugb24gdGhlIElEQkNvbm5lY3Rpb25Ub1NlcnZlciBoYXMgYmVlbiBzaGlmdGVkIHRvIHJlbGlh
bmNlIG9uCisgICAgLy8gSURCQ29ubmVjdGlvblByb3h5LCByZW1vdmUgdGhpcy4KKyAgICBJREJD
b25uZWN0aW9uVG9TZXJ2ZXImIGNvbm5lY3Rpb25Ub1NlcnZlcigpOworCiBwcml2YXRlOgogICAg
IFJlZjxJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1fY29ubmVjdGlvblRvU2VydmVyOworICAgIHVp
bnQ2NF90IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBJREJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJSZXNvdXJjZUlkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc291cmNlSWRlbnRpZmllci5jcHAKaW5kZXggNzczYzU0
YS4uNWY2MjIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQlJlc291cmNlSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc291cmNlSWRlbnRpZmllci5jcHAKQEAgLTUzLDYg
KzUzLDEzIEBAIElEQlJlc291cmNlSWRlbnRpZmllcjo6SURCUmVzb3VyY2VJZGVudGlmaWVyKCkK
IHsKIH0KIAorSURCUmVzb3VyY2VJZGVudGlmaWVyOjpJREJSZXNvdXJjZUlkZW50aWZpZXIodWlu
dDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgOiBtX2lkYkNvbm5lY3Rpb25JZGVudGlm
aWVyKGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgICwgbV9yZXNvdXJjZU51bWJlcihuZXh0Q2xp
ZW50UmVzb3VyY2VOdW1iZXIoKSkKK3sKK30KKworCiBJREJSZXNvdXJjZUlkZW50aWZpZXI6OklE
QlJlc291cmNlSWRlbnRpZmllcih1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3QgcmVzb3VyY2VJZGVudGlmaWVyKQogICAgIDogbV9pZGJDb25uZWN0aW9uSWRlbnRpZmllcihj
b25uZWN0aW9uSWRlbnRpZmllcikKICAgICAsIG1fcmVzb3VyY2VOdW1iZXIocmVzb3VyY2VJZGVu
dGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQlJlc291cmNlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQlJlc291cmNlSWRlbnRpZmllci5oCmluZGV4IDI1MTdlYTguLmJkMGM5
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9J
REJSZXNvdXJjZUlkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCUmVzb3VyY2VJZGVudGlmaWVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIElEQlJlc291cmNl
SWRlbnRpZmllcl9oCi0jZGVmaW5lIElEQlJlc291cmNlSWRlbnRpZmllcl9oCisjcHJhZ21hIG9u
Y2UKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCkBAIC00OCw2ICs0NywxMCBAQCBw
dWJsaWM6CiAgICAgSURCUmVzb3VyY2VJZGVudGlmaWVyKGNvbnN0IElEQkNsaWVudDo6SURCQ29u
bmVjdGlvblRvU2VydmVyJiwgY29uc3QgSURCUmVxdWVzdCYpOwogICAgIGV4cGxpY2l0IElEQlJl
c291cmNlSWRlbnRpZmllcihjb25zdCBJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudCYp
OwogCisgICAgLy8gRklYTUU6IFRoaXMgY29uc3RydWN0b3Igd2lsbCBiZSBuZWVkZWQgZHVyaW5n
IHRoZSBkZXZlbG9wbWVudCBvZiBJREItaW4tV29ya2Vycy4KKyAgICAvLyBJdCBzaG91bGQgYmUg
cmVtb3ZlZCB3aGVuIG5vIGxvbmdlciBuZWNlc3NhcnkuCisgICAgZXhwbGljaXQgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyKHVpbnQ2NF90IGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKwogICAgIHN0YXRp
YyBJREJSZXNvdXJjZUlkZW50aWZpZXIgZGVsZXRlZFZhbHVlKCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0OwogCkBAIC0xNDksNCArMTUy
LDMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6SURCUmVzb3VyY2VJ
ZGVudGlmaWVyPiB7CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQotI2VuZGlmIC8vIElEQlJlc291cmNlSWRlbnRpZmllcl9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>