<?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>236727</bug_id>
          
          <creation_ts>2022-02-16 12:10:35 -0800</creation_ts>
          <short_desc>Ensure NetworkStorageManager::moveData performs move operation based on data types</short_desc>
          <delta_ts>2022-02-17 10:20:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Website Storage</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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842439</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-16 12:10:35 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842440</commentid>
    <comment_count>1</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-16 12:11:10 -0800</bug_when>
    <thetext>rdar://89009881</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842451</commentid>
    <comment_count>2</comment_count>
      <attachid>452229</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-16 12:27:53 -0800</bug_when>
    <thetext>Created attachment 452229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842589</commentid>
    <comment_count>3</comment_count>
      <attachid>452229</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-16 16:16:27 -0800</bug_when>
    <thetext>Comment on attachment 452229
Patch

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

r=me

&gt; Source/WebKit/ChangeLog:3
&gt; +        Ensure NetworkStorageManager::moveData perform move operation based on data types

perform -&gt; performs

&gt; Source/WebKit/ChangeLog:9
&gt; +        In r286936, we introduced NetworkStorageManager::moveData to move data from one origin from another origin.

&quot;from one origin from another origin&quot; doesn&apos;t really make sense. Maybe you mean &quot;from one origin to another&quot;.

&gt; Source/WebKit/ChangeLog:11
&gt; +        NetworkStorageManager would try to move every storage type it manages. This has caused unexpected failure, as

&quot;failures&quot; or &quot;an unexpected failure&quot;

&gt; Source/WebKit/ChangeLog:16
&gt; +        Updated existing API test to ensure only expected type of data is moved.

&quot;type of data is moved&quot; -&gt; &quot;data types are moved&quot;

&gt; Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:221
&gt; +    void moveData(OptionSet&lt;WebsiteDataType&gt; types, const String&amp; localStoragePath, const String&amp; idbStoragePath)

Would be nice to move the implementation out of the class to improve readability. This is too huge to be inline IMO.

&gt; Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:223
&gt; +        // This is only supported for IndexedDB and LocalStorage now.

Do we need to add an assertion to make sure we only get types we can handle?

&gt; Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:247
&gt; +    String resolvedLocalStoragePath()

Would be nice to move the implementation out of the class to improve readability. This is too huge to be inline IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842595</commentid>
    <comment_count>4</comment_count>
      <attachid>452229</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-16 16:32:37 -0800</bug_when>
    <thetext>Comment on attachment 452229
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:3
&gt;&gt; +        Ensure NetworkStorageManager::moveData perform move operation based on data types
&gt; 
&gt; perform -&gt; performs

Updated.

&gt;&gt; Source/WebKit/ChangeLog:9
&gt;&gt; +        In r286936, we introduced NetworkStorageManager::moveData to move data from one origin from another origin.
&gt; 
&gt; &quot;from one origin from another origin&quot; doesn&apos;t really make sense. Maybe you mean &quot;from one origin to another&quot;.

Yes it should be &quot;to&quot;.

&gt;&gt; Source/WebKit/ChangeLog:16
&gt;&gt; +        Updated existing API test to ensure only expected type of data is moved.
&gt; 
&gt; &quot;type of data is moved&quot; -&gt; &quot;data types are moved&quot;

Okay.

&gt;&gt; Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:221
&gt;&gt; +    void moveData(OptionSet&lt;WebsiteDataType&gt; types, const String&amp; localStoragePath, const String&amp; idbStoragePath)
&gt; 
&gt; Would be nice to move the implementation out of the class to improve readability. This is too huge to be inline IMO.

We may move all the StorageBucket functions outside of the class altogether. I will do it in a followup.

&gt;&gt; Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:223
&gt;&gt; +        // This is only supported for IndexedDB and LocalStorage now.
&gt; 
&gt; Do we need to add an assertion to make sure we only get types we can handle?

There&apos;s an assertion in:
- (void)_renameOrigin:(NSURL *)oldName to:(NSURL *)newName forDataOfTypes:(NSSet&lt;NSString *&gt; *)dataTypes completionHandler:(void (^)(void))completionHandler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842596</commentid>
    <comment_count>5</comment_count>
      <attachid>452271</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-16 16:34:54 -0800</bug_when>
    <thetext>Created attachment 452271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842958</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-17 10:20:44 -0800</bug_when>
    <thetext>Committed r290033 (247413@main): &lt;https://commits.webkit.org/247413@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452271.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452229</attachid>
            <date>2022-02-16 12:27:53 -0800</date>
            <delta_ts>2022-02-16 16:34:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236727-20220216122754.patch</filename>
            <type>text/plain</type>
            <size>15897</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwMTgzNTNhYzI5MTY2NmEw
MmZiZTdiYTRjZjc1NWRiMjg2MzExMGYuLjAzNmRmOWNlNDYzZjdjYTQ5OTVmZGU4YmZkNzcyZmNm
MzlmNmQyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDItMTYgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5zdXJlIE5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6bW92ZURhdGEgcGVyZm9ybSBtb3ZlIG9wZXJhdGlvbiBiYXNlZCBvbiBkYXRhIHR5
cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3
MjcKKyAgICAgICAgcmRhcjovLzg5MDA5ODgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gcjI4NjkzNiwgd2UgaW50cm9kdWNlZCBOZXR3b3JrU3Rv
cmFnZU1hbmFnZXI6Om1vdmVEYXRhIHRvIG1vdmUgZGF0YSBmcm9tIG9uZSBvcmlnaW4gZnJvbSBh
bm90aGVyIG9yaWdpbi4KKyAgICAgICAgSG93ZXZlciwgdGhlIGZ1bmN0aW9uIGRvZXMgbm90IHRh
a2UgZGF0YVR5cGVzIHBhcmFtZXRlciBhcyBOZXR3b3JrUHJvY2Vzczo6cmVuYW1lT3JpZ2luSW5X
ZWJzaXRlRGF0YSBkb2VzLCBhbmQKKyAgICAgICAgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyIHdvdWxk
IHRyeSB0byBtb3ZlIGV2ZXJ5IHN0b3JhZ2UgdHlwZSBpdCBtYW5hZ2VzLiBUaGlzIGhhcyBjYXVz
ZWQgdW5leHBlY3RlZCBmYWlsdXJlLCBhcworICAgICAgICBGaWxlU3lzdGVtIHN0b3JhZ2UgbmVl
ZHMgc3BlY2lhbCBoYW5kbGluZyBiZWZvcmUgZGF0YSBjYW4gYmUgbW92ZWQuIFRvIGFkZHJlc3Mg
dGhlIHJlZ3Jlc3Npb24sIGxldCdzIHJldmVydCAKKyAgICAgICAgdGhlIGJlaGF2aW9yIGNoYW5n
ZSBieSBtYWtpbmcgc3VyZSBOZXR3b3JrU3RvcmFnZU1hbmFnZXIgY2hlY2tzIHRoZSB0eXBlcyB2
YWx1ZSwgYW5kIG9ubHkgcGVyZm9ybXMgbW92ZSAKKyAgICAgICAgb3BlcmF0aW9uIGZvciBJbmRl
eGVkREIgYW5kIExvY2FsU3RvcmFnZSBkYXRhLgorCisgICAgICAgIFVwZGF0ZWQgZXhpc3Rpbmcg
QVBJIHRlc3QgdG8gZW5zdXJlIG9ubHkgZXhwZWN0ZWQgdHlwZSBvZiBkYXRhIGlzIG1vdmVkLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cmVuYW1lT3JpZ2luSW5XZWJzaXRlRGF0YSk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6Om1vdmVEYXRhKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpPcmlnaW5TdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUJ1Y2tldDo6bW92
ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpPcmlnaW5TdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUJ1
Y2tldDo6cmVzb2x2ZWRMb2NhbFN0b3JhZ2VQYXRoKToKKyAgICAgICAgKFdlYktpdDo6T3JpZ2lu
U3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VCdWNrZXQ6OmRlbGV0ZUlEQlN0b3JhZ2VEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6T3JpZ2luU3RvcmFnZU1hbmFnZXI6OnJlc29sdmVkTG9jYWxTdG9yYWdl
UGF0aCk6CisgICAgICAgIChXZWJLaXQ6Ok9yaWdpblN0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZlZElE
QlN0b3JhZ2VQYXRoKToKKyAgICAgICAgKFdlYktpdDo6T3JpZ2luU3RvcmFnZU1hbmFnZXI6Om1v
dmVEYXRhKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL09yaWdpblN0b3JhZ2VN
YW5hZ2VyLmg6CisKIDIwMjItMDItMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW21hY09TXSBBZGQgYW4gIk1hcmt1cCBJbWFnZSIgaXRlbSB0byB0
aGUgc2hhcmluZyBzZXJ2aWNlcyBwaWNrZXIgY29udGV4dCBtZW51CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDEyZjhlOGE1YjU5ZjAw
ZGQ3YjdlZmQzYjJhZDEzNTdmYTI1MTY5MzMuLmY0ZjhhNGM0ZjRhZjk2YWY2ODk0MmM1YzZjOTg5
MmZmN2UxOTkzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCkBAIC0yMjQ3LDcgKzIyNDcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpy
ZW5hbWVPcmlnaW5JbldlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
VQogCiAgICAgYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCk7CiAgICAg
aWYgKGF1dG8qIG1hbmFnZXIgPSBzZXNzaW9uID8gc2Vzc2lvbi0+c3RvcmFnZU1hbmFnZXIoKSA6
IG51bGxwdHIpCi0gICAgICAgIG1hbmFnZXItPm1vdmVEYXRhKG9sZE9yaWdpbiwgbmV3T3JpZ2lu
LCBbYWdncmVnYXRvcl0geyB9KTsKKyAgICAgICAgbWFuYWdlci0+bW92ZURhdGEoZGF0YVR5cGVz
LCBvbGRPcmlnaW4sIG5ld09yaWdpbiwgW2FnZ3JlZ2F0b3JdIHsgfSk7CiB9CiAKICNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IGU2MDhi
ODg1ZDU4YThmYjI5YWQ0OGY1MWZjZTAzMTZkMjNkOWU0NDkuLjkyMWU0YzhkYjZjZjViNTY0OTc3
ODM1NDQ0YTY3NmFmMjNiMjBlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC02
MDksMjcgKzYwOSwyMiBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6ZGVsZXRlRGF0YUZv
clJlZ2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vic2l0ZURhdAogICAgIH0pOwogfQogCi12
b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6bW92ZURhdGEoY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dGFyZ2V0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6bW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4gdHlwZXMsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgc291cmNlLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRhcmdldCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CiAgICAgQVNTRVJUKCFtX2Nsb3NlZCk7CiAKLSAgICBtX3F1ZXVlLT5kaXNwYXRj
aChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHNvdXJjZSA9IGNyb3NzVGhy
ZWFkQ29weShzb3VyY2UpLCB0YXJnZXQgPSBjcm9zc1RocmVhZENvcHkodGFyZ2V0KSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAg
ICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0s
IHR5cGVzLCBzb3VyY2UgPSBjcm9zc1RocmVhZENvcHkoc291cmNlKSwgdGFyZ2V0ID0gY3Jvc3NU
aHJlYWRDb3B5KHRhcmdldCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gc291cmNlT3JpZ2luID0gV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luIHsgc291cmNlLCBzb3VyY2UgfTsKICAgICAgICAgYXV0byB0YXJnZXRP
cmlnaW4gPSBXZWJDb3JlOjpDbGllbnRPcmlnaW4geyB0YXJnZXQsIHRhcmdldCB9OwogICAgICAg
ICAKICAgICAgICAgLy8gQ2xlYXIgZXhpc3RpbmcgZGF0YSBvZiB0YXJnZXQgb3JpZ2luLgotICAg
ICAgICBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB0eXBlcyA9IHsKLSAgICAgICAgICAgIFdl
YnNpdGVEYXRhVHlwZTo6RmlsZVN5c3RlbSwKLSAgICAgICAgICAgIFdlYnNpdGVEYXRhVHlwZTo6
TG9jYWxTdG9yYWdlLAotICAgICAgICAgICAgV2Vic2l0ZURhdGFUeXBlOjpTZXNzaW9uU3RvcmFn
ZSwKLSAgICAgICAgICAgIFdlYnNpdGVEYXRhVHlwZTo6SW5kZXhlZERCRGF0YWJhc2VzCi0gICAg
ICAgIH07CiAgICAgICAgIGxvY2FsT3JpZ2luU3RvcmFnZU1hbmFnZXIodGFyZ2V0T3JpZ2luKS5k
ZWxldGVEYXRhKHR5cGVzLCAtV2FsbFRpbWU6OmluZmluaXR5KCkpOwotICAgICAgICByZW1vdmVP
cmlnaW5TdG9yYWdlTWFuYWdlcklmUG9zc2libGUodGFyZ2V0T3JpZ2luKTsKIAogICAgICAgICAv
LyBNb3ZlIGRhdGEgZnJvbSBzb3VyY2Ugb3JpZ2luIHRvIHRhcmdldCBvcmlnaW4uCi0gICAgICAg
IGxvY2FsT3JpZ2luU3RvcmFnZU1hbmFnZXIoc291cmNlT3JpZ2luKS5tb3ZlRGF0YShvcmlnaW5E
aXJlY3RvcnlQYXRoKG1fcGF0aCwgdGFyZ2V0T3JpZ2luLCBtX3NhbHQpLCBMb2NhbFN0b3JhZ2VN
YW5hZ2VyOjpsb2NhbFN0b3JhZ2VGaWxlUGF0aChtX2N1c3RvbUxvY2FsU3RvcmFnZVBhdGgsIHRh
cmdldE9yaWdpbiksIElEQlN0b3JhZ2VNYW5hZ2VyOjppZGJTdG9yYWdlT3JpZ2luRGlyZWN0b3J5
KG1fY3VzdG9tSURCU3RvcmFnZVBhdGgsIHRhcmdldE9yaWdpbikpOworICAgICAgICBsb2NhbE9y
aWdpblN0b3JhZ2VNYW5hZ2VyKHNvdXJjZU9yaWdpbikubW92ZURhdGEodHlwZXMsIGxvY2FsT3Jp
Z2luU3RvcmFnZU1hbmFnZXIodGFyZ2V0T3JpZ2luKS5yZXNvbHZlZExvY2FsU3RvcmFnZVBhdGgo
KSwgbG9jYWxPcmlnaW5TdG9yYWdlTWFuYWdlcih0YXJnZXRPcmlnaW4pLnJlc29sdmVkSURCU3Rv
cmFnZVBhdGgoKSk7CisKKyAgICAgICAgcmVtb3ZlT3JpZ2luU3RvcmFnZU1hbmFnZXJJZlBvc3Np
YmxlKHRhcmdldE9yaWdpbik7CiAgICAgICAgIHJlbW92ZU9yaWdpblN0b3JhZ2VNYW5hZ2VySWZQ
b3NzaWJsZShzb3VyY2VPcmlnaW4pOwogCiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRj
aChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5k
ZXggYzczNWEwZTRlOTU2Y2VmNmFjNTg2MDhmY2E3ZTZmMjBkYzM0MDE5Mi4uMGU1YmJhNzYwOWNh
ZmUxMjQyZTA4ZWQ2YWNmMzZjMjMzZDgzMDFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApA
QCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVEYXRhKE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
PiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVEYXRhTW9k
aWZpZWRTaW5jZShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV2FsbFRpbWUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVEYXRhRm9yUmVnaXN0cmFibGVE
b21haW5zKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik7Ci0gICAgdm9pZCBtb3ZlRGF0YShjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHNvdXJjZSwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiB0YXJnZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAg
dm9pZCBtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgdGFyZ2V0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc3Vz
cGVuZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAg
ICAgdm9pZCBoYW5kbGVMb3dNZW1vcnlXYXJuaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL09yaWdpblN0b3JhZ2VNYW5hZ2VyLmNw
cAppbmRleCAxNTY3ZGVhMTI3NWUzNTQxZjYwZDliYjE1NjE4NGMxZjUyNTE0NjgwLi44NTczNmI4
OTlhYjFlNTEzYmQyNDU2N2YzMGU2OWRiNjA2ZWQ5NjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdl
ci5jcHAKQEAgLTIxOCwyOSArMjE4LDUxIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGRlbGV0ZUlE
QlN0b3JhZ2VEYXRhKG1vZGlmaWVkU2luY2VUaW1lKTsKICAgICB9CiAKLSAgICB2b2lkIG1vdmVE
YXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VQYXRoLCBj
b25zdCBTdHJpbmcmIGlkYlN0b3JhZ2VQYXRoKQorICAgIHZvaWQgbW92ZURhdGEoT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4gdHlwZXMsIGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdlUGF0aCwg
Y29uc3QgU3RyaW5nJiBpZGJTdG9yYWdlUGF0aCkKICAgICB7Ci0gICAgICAgIG1fZmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyID0gbnVsbHB0cjsKLSAgICAgICAgaWYgKG1fbG9jYWxTdG9yYWdlTWFu
YWdlcikKLSAgICAgICAgICAgIG1fbG9jYWxTdG9yYWdlTWFuYWdlci0+Y2xvc2UoKTsKKyAgICAg
ICAgLy8gVGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgSW5kZXhlZERCIGFuZCBMb2NhbFN0b3Jh
Z2Ugbm93LgorICAgICAgICBpZiAodHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpMb2Nh
bFN0b3JhZ2UpICYmICFsb2NhbFN0b3JhZ2VQYXRoLmlzRW1wdHkoKSkgeworICAgICAgICAgICAg
aWYgKG1fbG9jYWxTdG9yYWdlTWFuYWdlcikKKyAgICAgICAgICAgICAgICBtX2xvY2FsU3RvcmFn
ZU1hbmFnZXItPmNsb3NlKCk7CiAKLSAgICAgICAgaWYgKG1faWRiU3RvcmFnZU1hbmFnZXIpCi0g
ICAgICAgICAgICBtX2lkYlN0b3JhZ2VNYW5hZ2VyLT5jbG9zZURhdGFiYXNlc0ZvckRlbGV0aW9u
KCk7CisgICAgICAgICAgICBhdXRvIGN1cnJlbnRMb2NhbFN0b3JhZ2VQYXRoID0gcmVzb2x2ZWRM
b2NhbFN0b3JhZ2VQYXRoKCk7CisgICAgICAgICAgICBpZiAoIWN1cnJlbnRMb2NhbFN0b3JhZ2VQ
YXRoLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJl
Y3RvcmllcyhGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKGxvY2FsU3RvcmFnZVBhdGgpKTsKKyAgICAg
ICAgICAgICAgICBXZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVtOjptb3ZlRGF0YWJhc2VGaWxlKGN1
cnJlbnRMb2NhbFN0b3JhZ2VQYXRoLCBsb2NhbFN0b3JhZ2VQYXRoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQogCi0gICAgICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhGaWxl
U3lzdGVtOjpwYXJlbnRQYXRoKHBhdGgpKTsKLSAgICAgICAgRmlsZVN5c3RlbTo6bW92ZUZpbGUo
bV9yb290UGF0aCwgcGF0aCk7CisgICAgICAgIGlmICh0eXBlcy5jb250YWlucyhXZWJzaXRlRGF0
YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlcykgJiYgIWlkYlN0b3JhZ2VQYXRoLmlzRW1wdHkoKSkg
eworICAgICAgICAgICAgaWYgKG1faWRiU3RvcmFnZU1hbmFnZXIpCisgICAgICAgICAgICAgICAg
bV9pZGJTdG9yYWdlTWFuYWdlci0+Y2xvc2VEYXRhYmFzZXNGb3JEZWxldGlvbigpOwogCi0gICAg
ICAgIGF1dG8gY3VycmVudExvY2FsU3RvcmFnZVBhdGggPSByZXNvbHZlZExvY2FsU3RvcmFnZVBh
dGgoKTsKLSAgICAgICAgaWYgKCFjdXJyZW50TG9jYWxTdG9yYWdlUGF0aC5pc0VtcHR5KCkgJiYg
IWxvY2FsU3RvcmFnZVBhdGguaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBGaWxlU3lzdGVtOjpt
YWtlQWxsRGlyZWN0b3JpZXMoRmlsZVN5c3RlbTo6cGFyZW50UGF0aChsb2NhbFN0b3JhZ2VQYXRo
KSk7Ci0gICAgICAgICAgICBXZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVtOjptb3ZlRGF0YWJhc2VG
aWxlKGN1cnJlbnRMb2NhbFN0b3JhZ2VQYXRoLCBsb2NhbFN0b3JhZ2VQYXRoKTsKKyAgICAgICAg
ICAgIGF1dG8gY3VycmVudElEQlN0b3JhZ2VQYXRoID0gcmVzb2x2ZWRJREJTdG9yYWdlUGF0aCgp
OworICAgICAgICAgICAgaWYgKCFjdXJyZW50SURCU3RvcmFnZVBhdGguaXNFbXB0eSgpKSB7Cisg
ICAgICAgICAgICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKEZpbGVTeXN0ZW06
OnBhcmVudFBhdGgoaWRiU3RvcmFnZVBhdGgpKTsKKyAgICAgICAgICAgICAgICBGaWxlU3lzdGVt
Ojptb3ZlRmlsZShjdXJyZW50SURCU3RvcmFnZVBhdGgsIGlkYlN0b3JhZ2VQYXRoKTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfQorICAgIH0KKworICAgIFN0cmluZyByZXNvbHZlZExvY2FsU3Rv
cmFnZVBhdGgoKQorICAgIHsKKyAgICAgICAgaWYgKCFtX3Jlc29sdmVkTG9jYWxTdG9yYWdlUGF0
aC5pc051bGwoKSkKKyAgICAgICAgICAgIHJldHVybiBtX3Jlc29sdmVkTG9jYWxTdG9yYWdlUGF0
aDsKKworICAgICAgICBpZiAobV9zaG91bGRVc2VDdXN0b21QYXRocykgeworICAgICAgICAgICAg
QVNTRVJUKG1fY3VzdG9tTG9jYWxTdG9yYWdlUGF0aC5pc0VtcHR5KCkgPT0gbV9yb290UGF0aC5p
c0VtcHR5KCkpOworICAgICAgICAgICAgbV9yZXNvbHZlZExvY2FsU3RvcmFnZVBhdGggPSBtX2N1
c3RvbUxvY2FsU3RvcmFnZVBhdGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhdXRv
IGxvY2FsU3RvcmFnZVBhdGggPSBMb2NhbFN0b3JhZ2VNYW5hZ2VyOjpsb2NhbFN0b3JhZ2VGaWxl
UGF0aCh0eXBlU3RvcmFnZVBhdGgoU3RvcmFnZVR5cGU6OkxvY2FsU3RvcmFnZSkpOworICAgICAg
ICAgICAgaWYgKCFtX2N1c3RvbUxvY2FsU3RvcmFnZVBhdGguaXNFbXB0eSgpICYmICFGaWxlU3lz
dGVtOjpmaWxlRXhpc3RzKGxvY2FsU3RvcmFnZVBhdGgpKSB7CisgICAgICAgICAgICAgICAgRmls
ZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKEZpbGVTeXN0ZW06OnBhcmVudFBhdGgobG9jYWxT
dG9yYWdlUGF0aCkpOworICAgICAgICAgICAgICAgIFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06
Om1vdmVEYXRhYmFzZUZpbGUobV9jdXN0b21Mb2NhbFN0b3JhZ2VQYXRoLCBsb2NhbFN0b3JhZ2VQ
YXRoKTsKKyAgICAgICAgICAgIH0KIAotICAgICAgICBhdXRvIGN1cnJlbnRJREJTdG9yYWdlUGF0
aCA9IHJlc29sdmVkSURCU3RvcmFnZVBhdGgoKTsKLSAgICAgICAgaWYgKCFjdXJyZW50SURCU3Rv
cmFnZVBhdGguaXNFbXB0eSgpICYmICFpZGJTdG9yYWdlUGF0aC5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhGaWxlU3lzdGVtOjpwYXJlbnRQ
YXRoKGlkYlN0b3JhZ2VQYXRoKSk7Ci0gICAgICAgICAgICBXZWJDb3JlOjpTUUxpdGVGaWxlU3lz
dGVtOjptb3ZlRGF0YWJhc2VGaWxlKGN1cnJlbnRJREJTdG9yYWdlUGF0aCwgaWRiU3RvcmFnZVBh
dGgpOworICAgICAgICAgICAgbV9yZXNvbHZlZExvY2FsU3RvcmFnZVBhdGggPSBsb2NhbFN0b3Jh
Z2VQYXRoOwogICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG1fcmVzb2x2ZWRMb2NhbFN0b3Jh
Z2VQYXRoOwogICAgIH0KIAogICAgIFN0cmluZyByZXNvbHZlZElEQlN0b3JhZ2VQYXRoKCkKQEAg
LTM1MiwyNyArMzc0LDYgQEAgcHJpdmF0ZToKIAogICAgICAgICBGaWxlU3lzdGVtOjpkZWxldGVB
bGxGaWxlc01vZGlmaWVkU2luY2UocmVzb2x2ZWRJREJTdG9yYWdlUGF0aCgpLCB0aW1lKTsKICAg
ICB9Ci0gICAgCi0gICAgU3RyaW5nIHJlc29sdmVkTG9jYWxTdG9yYWdlUGF0aCgpCi0gICAgewot
ICAgICAgICBpZiAoIW1fcmVzb2x2ZWRMb2NhbFN0b3JhZ2VQYXRoLmlzTnVsbCgpKQotICAgICAg
ICAgICAgcmV0dXJuIG1fcmVzb2x2ZWRMb2NhbFN0b3JhZ2VQYXRoOwotCi0gICAgICAgIGlmICht
X3Nob3VsZFVzZUN1c3RvbVBhdGhzKSB7Ci0gICAgICAgICAgICBBU1NFUlQobV9jdXN0b21Mb2Nh
bFN0b3JhZ2VQYXRoLmlzRW1wdHkoKSA9PSBtX3Jvb3RQYXRoLmlzRW1wdHkoKSk7Ci0gICAgICAg
ICAgICBtX3Jlc29sdmVkTG9jYWxTdG9yYWdlUGF0aCA9IG1fY3VzdG9tTG9jYWxTdG9yYWdlUGF0
aDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGF1dG8gbG9jYWxTdG9yYWdlUGF0aCA9
IExvY2FsU3RvcmFnZU1hbmFnZXI6OmxvY2FsU3RvcmFnZUZpbGVQYXRoKHR5cGVTdG9yYWdlUGF0
aChTdG9yYWdlVHlwZTo6TG9jYWxTdG9yYWdlKSk7Ci0gICAgICAgICAgICBpZiAoIW1fY3VzdG9t
TG9jYWxTdG9yYWdlUGF0aC5pc0VtcHR5KCkgJiYgIUZpbGVTeXN0ZW06OmZpbGVFeGlzdHMobG9j
YWxTdG9yYWdlUGF0aCkpIHsKLSAgICAgICAgICAgICAgICBGaWxlU3lzdGVtOjptYWtlQWxsRGly
ZWN0b3JpZXMoRmlsZVN5c3RlbTo6cGFyZW50UGF0aChsb2NhbFN0b3JhZ2VQYXRoKSk7Ci0gICAg
ICAgICAgICAgICAgV2ViQ29yZTo6U1FMaXRlRmlsZVN5c3RlbTo6bW92ZURhdGFiYXNlRmlsZSht
X2N1c3RvbUxvY2FsU3RvcmFnZVBhdGgsIGxvY2FsU3RvcmFnZVBhdGgpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBtX3Jlc29sdmVkTG9jYWxTdG9yYWdlUGF0aCA9IGxvY2FsU3RvcmFn
ZVBhdGg7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbV9yZXNvbHZlZExvY2FsU3RvcmFn
ZVBhdGg7Ci0gICAgfQogCiAgICAgU3RyaW5nIG1fcm9vdFBhdGg7CiAgICAgU3RyaW5nIG1faWRl
bnRpZmllcjsKQEAgLTQ4MSw2ICs0ODIsMTYgQEAgSURCU3RvcmFnZU1hbmFnZXIqIE9yaWdpblN0
b3JhZ2VNYW5hZ2VyOjpleGlzdGluZ0lEQlN0b3JhZ2VNYW5hZ2VyKCkKICAgICByZXR1cm4gZGVm
YXVsdEJ1Y2tldCgpLmV4aXN0aW5nSURCU3RvcmFnZU1hbmFnZXIoKTsKIH0KIAorU3RyaW5nIE9y
aWdpblN0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZlZExvY2FsU3RvcmFnZVBhdGgoKQoreworICAgIHJl
dHVybiBkZWZhdWx0QnVja2V0KCkucmVzb2x2ZWRMb2NhbFN0b3JhZ2VQYXRoKCk7Cit9CisKK1N0
cmluZyBPcmlnaW5TdG9yYWdlTWFuYWdlcjo6cmVzb2x2ZWRJREJTdG9yYWdlUGF0aCgpCit7Cisg
ICAgcmV0dXJuIGRlZmF1bHRCdWNrZXQoKS5yZXNvbHZlZElEQlN0b3JhZ2VQYXRoKCk7Cit9CisK
IGJvb2wgT3JpZ2luU3RvcmFnZU1hbmFnZXI6OmlzQWN0aXZlKCkKIHsKICAgICByZXR1cm4gZGVm
YXVsdEJ1Y2tldCgpLmlzQWN0aXZlKCk7CkBAIC01MTMsMTEgKzUyNCwxMSBAQCB2b2lkIE9yaWdp
blN0b3JhZ2VNYW5hZ2VyOjpkZWxldGVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHR5
cGVzLCBXYWxsVGltZQogICAgIGRlZmF1bHRCdWNrZXQoKS5kZWxldGVEYXRhKHR5cGVzLCBtb2Rp
ZmllZFNpbmNlKTsKIH0KIAotdm9pZCBPcmlnaW5TdG9yYWdlTWFuYWdlcjo6bW92ZURhdGEoY29u
c3QgU3RyaW5nJiBuZXdQYXRoLCBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZVBhdGgsIGNvbnN0
IFN0cmluZyYgaWRiU3RvcmFnZVBhdGgpCit2b2lkIE9yaWdpblN0b3JhZ2VNYW5hZ2VyOjptb3Zl
RGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB0eXBlcywgY29uc3QgU3RyaW5nJiBsb2Nh
bFN0b3JhZ2VQYXRoLCBjb25zdCBTdHJpbmcmIGlkYlN0b3JhZ2VQYXRoKQogewogICAgIEFTU0VS
VCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgZGVmYXVsdEJ1Y2tldCgpLm1vdmVEYXRhKG5l
d1BhdGgsIGxvY2FsU3RvcmFnZVBhdGgsIGlkYlN0b3JhZ2VQYXRoKTsKKyAgICBkZWZhdWx0QnVj
a2V0KCkubW92ZURhdGEodHlwZXMsIGxvY2FsU3RvcmFnZVBhdGgsIGlkYlN0b3JhZ2VQYXRoKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5oCmluZGV4IGRk
ZGIzMjZhODNiNDc4NDJjMjA3ZjU2ZmNjNTgyNGE2NzQ4YmNiZjYuLmQ4ODJiMTdlNjQ1NjU5ZThk
MTcxZDUwODg1YTc1Nzg0MTcyYTM2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5oCkBAIC01OSwx
MSArNTksMTMgQEAgcHVibGljOgogICAgIFNlc3Npb25TdG9yYWdlTWFuYWdlciogZXhpc3RpbmdT
ZXNzaW9uU3RvcmFnZU1hbmFnZXIoKTsKICAgICBJREJTdG9yYWdlTWFuYWdlciYgaWRiU3RvcmFn
ZU1hbmFnZXIoSURCU3RvcmFnZVJlZ2lzdHJ5Jik7CiAgICAgSURCU3RvcmFnZU1hbmFnZXIqIGV4
aXN0aW5nSURCU3RvcmFnZU1hbmFnZXIoKTsKKyAgICBTdHJpbmcgcmVzb2x2ZWRMb2NhbFN0b3Jh
Z2VQYXRoKCk7CisgICAgU3RyaW5nIHJlc29sdmVkSURCU3RvcmFnZVBhdGgoKTsKICAgICBib29s
IGlzQWN0aXZlKCk7CiAgICAgYm9vbCBpc0VtcHR5KCk7CiAgICAgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gZmV0Y2hEYXRhVHlwZXNJbkxpc3QoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4p
OwogICAgIHZvaWQgZGVsZXRlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV2FsbFRp
bWUpOwotICAgIHZvaWQgbW92ZURhdGEoY29uc3QgU3RyaW5nJiBuZXdQYXRoLCBjb25zdCBTdHJp
bmcmIGxvY2FsU3RvcmFnZVBhdGgsIGNvbnN0IFN0cmluZyYgaWRiU3RvcmFnZVBhdGgpOworICAg
IHZvaWQgbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFN0cmluZyYg
bG9jYWxTdG9yYWdlUGF0aCwgY29uc3QgU3RyaW5nJiBpZGJTdG9yYWdlUGF0aCk7CiAKIHByaXZh
dGU6CiAgICAgZW51bSBjbGFzcyBTdG9yYWdlQnVja2V0TW9kZSA6IGJvb2w7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzg4ZGQ5MGQ2ZGRhMWNk
M2IyNmVjM2UyZGM2NzY1ODgwNDY5ZjI4Zi4uMjRlOGU4OTlkNzNkM2EwMThlNmU2ZGI4YTJmOWZj
YzIwOGRlZmJlMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAyLTE2ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVA
YXBwbGUuY29tPgorCisgICAgICAgIEVuc3VyZSBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6Om1vdmVE
YXRhIHBlcmZvcm0gbW92ZSBvcGVyYXRpb24gYmFzZWQgb24gZGF0YSB0eXBlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzI3CisgICAgICAgIHJk
YXI6Ly84OTAwOTg4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3Jl
Q3VzdG9tUGF0aHMubW06CisgICAgICAgIChURVNUKToKKwogMjAyMi0wMi0xNSAgSm9uYXRoYW4g
QmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0VXU10gU3VwcG9ydCBQUnMg
d2hlbiBzZW5kaW5nIGxheW91dCB0ZXN0IGZhaWx1cmUgZW1haWxzCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21Q
YXRocy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURh
dGFTdG9yZUN1c3RvbVBhdGhzLm1tCmluZGV4IGM5ZDUwYzg2YzkyYjFhMTU4N2QzMGFmOWM0YTk5
MDk0ZjI2YTI4ZTAuLjZmMjQ1NWMzNTE2ZmI5NjRjNDNhMjBhMWE4ZjNiN2ZjOWY1MmZhMDYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURh
dGFTdG9yZUN1c3RvbVBhdGhzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCkBAIC01NDIsNiArNTQyLDcg
QEAgVEVTVChXZWJLaXQsIFdlYnNpdGVEYXRhU3RvcmVSZW5hbWVPcmlnaW5Gb3JJbmRleGVkRGF0
YWJhc2UpCiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0U3RyaW5nIGJhc2VVUkw6
ZXhhbXBsZVVSTF07CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJkYXRhYmFzZSBpcyBjcmVhdGVkIiwg
Z2V0TmV4dE1lc3NhZ2UoKS5ib2R5KTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAibG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Rlc3RrZXknLCAndGVzdHZhbHVlJyki
XTsKIAogICAgIGF1dG8gZGF0YVN0b3JlID0gd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLndl
YnNpdGVEYXRhU3RvcmU7CiAgICAgYXV0byBpbmRleGVkREJUeXBlID0gYWRvcHROUyhbW05TU2V0
IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6V0tXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRhYmFz
ZXMsIG5pbF0pOwpAQCAtNTU0LDYgKzU1NSw4IEBAIFRFU1QoV2ViS2l0LCBXZWJzaXRlRGF0YVN0
b3JlUmVuYW1lT3JpZ2luRm9ySW5kZXhlZERhdGFiYXNlKQogICAgIAogICAgIFt3ZWJWaWV3IGxv
YWRIVE1MU3RyaW5nOnRlc3RTdHJpbmcgYmFzZVVSTDp3ZWJLaXRVUkxdOwogICAgIEVYUEVDVF9X
S19TVFJFUSgiZGF0YWJhc2UgZXhpc3RzIiwgZ2V0TmV4dE1lc3NhZ2UoKS5ib2R5KTsKKyAgICAv
LyBFbnN1cmUgTG9jYWxTdG9yYWdlIGRhdGEgaXMgbm90IG1vdmVkLgorICAgIEVYUEVDVF9XS19T
VFJFUSgiPG51bGw+IiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImxv
Y2FsU3RvcmFnZS5nZXRJdGVtKCd0ZXN0a2V5JykiXSk7CiAKICAgICBbd2ViVmlldyBsb2FkSFRN
TFN0cmluZzp0ZXN0U3RyaW5nIGJhc2VVUkw6ZXhhbXBsZVVSTF07CiAgICAgRVhQRUNUX1dLX1NU
UkVRKCJkYXRhYmFzZSBpcyBjcmVhdGVkIiwgZ2V0TmV4dE1lc3NhZ2UoKS5ib2R5KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452271</attachid>
            <date>2022-02-16 16:34:54 -0800</date>
            <delta_ts>2022-02-17 10:20:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236727-20220216163453.patch</filename>
            <type>text/plain</type>
            <size>15888</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwMTgzNTNhYzI5MTY2NmEw
MmZiZTdiYTRjZjc1NWRiMjg2MzExMGYuLjY1M2U2NDAyODFkY2UxNDZkZGI0MDEwYWY1ZDQ3ODk3
MGU3ZjNkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDItMTYgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5zdXJlIE5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6bW92ZURhdGEgcGVyZm9ybXMgbW92ZSBvcGVyYXRpb24gYmFzZWQgb24gZGF0YSB0
eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2
NzI3CisgICAgICAgIHJkYXI6Ly84OTAwOTg4MQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlz
IER1bWV6LgorCisgICAgICAgIEluIHIyODY5MzYsIHdlIGludHJvZHVjZWQgTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjptb3ZlRGF0YSB0byBtb3ZlIGRhdGEgZnJvbSBvbmUgb3JpZ2luIHRvIGFub3Ro
ZXIuIEhvd2V2ZXIsIHRoZSAKKyAgICAgICAgZnVuY3Rpb24gZG9lcyBub3QgdGFrZSBkYXRhVHlw
ZXMgcGFyYW1ldGVyIGFzIE5ldHdvcmtQcm9jZXNzOjpyZW5hbWVPcmlnaW5JbldlYnNpdGVEYXRh
IGRvZXMsIGFuZCAKKyAgICAgICAgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyIHdvdWxkIHRyeSB0byBt
b3ZlIGV2ZXJ5IHN0b3JhZ2UgdHlwZSBpdCBtYW5hZ2VzLiBUaGlzIGhhcyBjYXVzZWQgYW4gdW5l
eHBlY3RlZCBmYWlsdXJlLCBhcworICAgICAgICBGaWxlU3lzdGVtIHN0b3JhZ2UgbmVlZHMgc3Bl
Y2lhbCBoYW5kbGluZyBiZWZvcmUgZGF0YSBjYW4gYmUgbW92ZWQuIFRvIGFkZHJlc3MgdGhlIHJl
Z3Jlc3Npb24sIGxldCdzIHJldmVydCAKKyAgICAgICAgdGhlIGJlaGF2aW9yIGNoYW5nZSBieSBt
YWtpbmcgc3VyZSBOZXR3b3JrU3RvcmFnZU1hbmFnZXIgY2hlY2tzIHRoZSB0eXBlcyB2YWx1ZSwg
YW5kIG9ubHkgcGVyZm9ybXMgbW92ZSAKKyAgICAgICAgb3BlcmF0aW9uIGZvciBJbmRleGVkREIg
YW5kIExvY2FsU3RvcmFnZSBkYXRhLgorCisgICAgICAgIFVwZGF0ZWQgZXhpc3RpbmcgQVBJIHRl
c3QgdG8gZW5zdXJlIG9ubHkgZXhwZWN0ZWQgZGF0YSB0eXBlcyBhcmUgbW92ZWQuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpyZW5hbWVPcmlnaW5JbldlYnNpdGVEYXRhKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6bW92ZURhdGEpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok9yaWdpblN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQnVja2V0Ojptb3ZlRGF0YSk6
CisgICAgICAgIChXZWJLaXQ6Ok9yaWdpblN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQnVja2V0Ojpy
ZXNvbHZlZExvY2FsU3RvcmFnZVBhdGgpOgorICAgICAgICAoV2ViS2l0OjpPcmlnaW5TdG9yYWdl
TWFuYWdlcjo6U3RvcmFnZUJ1Y2tldDo6ZGVsZXRlSURCU3RvcmFnZURhdGEpOgorICAgICAgICAo
V2ViS2l0OjpPcmlnaW5TdG9yYWdlTWFuYWdlcjo6cmVzb2x2ZWRMb2NhbFN0b3JhZ2VQYXRoKToK
KyAgICAgICAgKFdlYktpdDo6T3JpZ2luU3RvcmFnZU1hbmFnZXI6OnJlc29sdmVkSURCU3RvcmFn
ZVBhdGgpOgorICAgICAgICAoV2ViS2l0OjpPcmlnaW5TdG9yYWdlTWFuYWdlcjo6bW92ZURhdGEp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIu
aDoKKwogMjAyMi0wMi0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEFkZCBhbiAiTWFya3VwIEltYWdlIiBpdGVtIHRvIHRoZSBzaGFy
aW5nIHNlcnZpY2VzIHBpY2tlciBjb250ZXh0IG1lbnUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMTJmOGU4YTViNTlmMDBkZDdiN2Vm
ZDNiMmFkMTM1N2ZhMjUxNjkzMy4uZjRmOGE0YzRmNGFmOTZhZjY4OTQyYzVjNmM5ODkyZmY3ZTE5
OTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlbmFtZU9y
aWdpbkluV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVCiAKICAg
ICBhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKICAgICBpZiAoYXV0
byogbWFuYWdlciA9IHNlc3Npb24gPyBzZXNzaW9uLT5zdG9yYWdlTWFuYWdlcigpIDogbnVsbHB0
cikKLSAgICAgICAgbWFuYWdlci0+bW92ZURhdGEob2xkT3JpZ2luLCBuZXdPcmlnaW4sIFthZ2dy
ZWdhdG9yXSB7IH0pOworICAgICAgICBtYW5hZ2VyLT5tb3ZlRGF0YShkYXRhVHlwZXMsIG9sZE9y
aWdpbiwgbmV3T3JpZ2luLCBbYWdncmVnYXRvcl0geyB9KTsKIH0KIAogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggZTYwOGI4ODVkNThh
OGZiMjlhZDQ4ZjUxZmNlMDMxNmQyM2Q5ZTQ0OS4uOTIxZTRjOGRiNmNmNWI1NjQ5Nzc4MzU0NDRh
Njc2YWYyM2IyMGVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTYwOSwyNyAr
NjA5LDIyIEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpkZWxldGVEYXRhRm9yUmVnaXN0
cmFibGVEb21haW5zKE9wdGlvblNldDxXZWJzaXRlRGF0CiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjptb3ZlRGF0YShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHNvdXJjZSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0YXJnZXQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjptb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB0
eXBlcywgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBzb3VyY2UsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdGFyZ2V0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKICAgICBBU1NFUlQoIW1fY2xvc2VkKTsKIAotICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgc291cmNlID0gY3Jvc3NUaHJlYWRDb3B5
KHNvdXJjZSksIHRhcmdldCA9IGNyb3NzVGhyZWFkQ29weSh0YXJnZXQpLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgIG1fcXVl
dWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgdHlwZXMs
IHNvdXJjZSA9IGNyb3NzVGhyZWFkQ29weShzb3VyY2UpLCB0YXJnZXQgPSBjcm9zc1RocmVhZENv
cHkodGFyZ2V0KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBzb3VyY2VPcmlnaW4gPSBXZWJDb3JlOjpDbGll
bnRPcmlnaW4geyBzb3VyY2UsIHNvdXJjZSB9OwogICAgICAgICBhdXRvIHRhcmdldE9yaWdpbiA9
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiB7IHRhcmdldCwgdGFyZ2V0IH07CiAgICAgICAgIAogICAg
ICAgICAvLyBDbGVhciBleGlzdGluZyBkYXRhIG9mIHRhcmdldCBvcmlnaW4uCi0gICAgICAgIE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHR5cGVzID0gewotICAgICAgICAgICAgV2Vic2l0ZURh
dGFUeXBlOjpGaWxlU3lzdGVtLAotICAgICAgICAgICAgV2Vic2l0ZURhdGFUeXBlOjpMb2NhbFN0
b3JhZ2UsCi0gICAgICAgICAgICBXZWJzaXRlRGF0YVR5cGU6OlNlc3Npb25TdG9yYWdlLAotICAg
ICAgICAgICAgV2Vic2l0ZURhdGFUeXBlOjpJbmRleGVkREJEYXRhYmFzZXMKLSAgICAgICAgfTsK
ICAgICAgICAgbG9jYWxPcmlnaW5TdG9yYWdlTWFuYWdlcih0YXJnZXRPcmlnaW4pLmRlbGV0ZURh
dGEodHlwZXMsIC1XYWxsVGltZTo6aW5maW5pdHkoKSk7Ci0gICAgICAgIHJlbW92ZU9yaWdpblN0
b3JhZ2VNYW5hZ2VySWZQb3NzaWJsZSh0YXJnZXRPcmlnaW4pOwogCiAgICAgICAgIC8vIE1vdmUg
ZGF0YSBmcm9tIHNvdXJjZSBvcmlnaW4gdG8gdGFyZ2V0IG9yaWdpbi4KLSAgICAgICAgbG9jYWxP
cmlnaW5TdG9yYWdlTWFuYWdlcihzb3VyY2VPcmlnaW4pLm1vdmVEYXRhKG9yaWdpbkRpcmVjdG9y
eVBhdGgobV9wYXRoLCB0YXJnZXRPcmlnaW4sIG1fc2FsdCksIExvY2FsU3RvcmFnZU1hbmFnZXI6
OmxvY2FsU3RvcmFnZUZpbGVQYXRoKG1fY3VzdG9tTG9jYWxTdG9yYWdlUGF0aCwgdGFyZ2V0T3Jp
Z2luKSwgSURCU3RvcmFnZU1hbmFnZXI6OmlkYlN0b3JhZ2VPcmlnaW5EaXJlY3RvcnkobV9jdXN0
b21JREJTdG9yYWdlUGF0aCwgdGFyZ2V0T3JpZ2luKSk7CisgICAgICAgIGxvY2FsT3JpZ2luU3Rv
cmFnZU1hbmFnZXIoc291cmNlT3JpZ2luKS5tb3ZlRGF0YSh0eXBlcywgbG9jYWxPcmlnaW5TdG9y
YWdlTWFuYWdlcih0YXJnZXRPcmlnaW4pLnJlc29sdmVkTG9jYWxTdG9yYWdlUGF0aCgpLCBsb2Nh
bE9yaWdpblN0b3JhZ2VNYW5hZ2VyKHRhcmdldE9yaWdpbikucmVzb2x2ZWRJREJTdG9yYWdlUGF0
aCgpKTsKKworICAgICAgICByZW1vdmVPcmlnaW5TdG9yYWdlTWFuYWdlcklmUG9zc2libGUodGFy
Z2V0T3JpZ2luKTsKICAgICAgICAgcmVtb3ZlT3JpZ2luU3RvcmFnZU1hbmFnZXJJZlBvc3NpYmxl
KHNvdXJjZU9yaWdpbik7CiAKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCBjNzM1
YTBlNGU5NTZjZWY2YWM1ODYwOGZjYTdlNmYyMGRjMzQwMTkyLi4wZTViYmE3NjA5Y2FmZTEyNDJl
MDhlZDZhY2YzNmMyMzNkODMwMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC04NCw3
ICs4NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbGV0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGRlbGV0ZURhdGFNb2RpZmllZFNp
bmNlKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBXYWxsVGltZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGRlbGV0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMo
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4+JiYpPiYmKTsKLSAgICB2b2lkIG1vdmVEYXRhKGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgc291cmNlLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHRhcmdldCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1v
dmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIHNvdXJjZSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0
YXJnZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzdXNwZW5kKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXN1bWUoKTsKICAgICB2b2lk
IGhhbmRsZUxvd01lbW9yeVdhcm5pbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4
IDE1NjdkZWExMjc1ZTM1NDFmNjBkOWJiMTU2MTg0YzFmNTI1MTQ2ODAuLjg1NzM2Yjg5OWFiMWU1
MTNiZDI0NTY3ZjMwZTY5ZGI2MDZlZDk2NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL09yaWdpblN0b3JhZ2VNYW5hZ2VyLmNwcApA
QCAtMjE4LDI5ICsyMTgsNTEgQEAgcHVibGljOgogICAgICAgICAgICAgZGVsZXRlSURCU3RvcmFn
ZURhdGEobW9kaWZpZWRTaW5jZVRpbWUpOwogICAgIH0KIAotICAgIHZvaWQgbW92ZURhdGEoY29u
c3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZVBhdGgsIGNvbnN0IFN0
cmluZyYgaWRiU3RvcmFnZVBhdGgpCisgICAgdm9pZCBtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiB0eXBlcywgY29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VQYXRoLCBjb25zdCBT
dHJpbmcmIGlkYlN0b3JhZ2VQYXRoKQogICAgIHsKLSAgICAgICAgbV9maWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXIgPSBudWxscHRyOwotICAgICAgICBpZiAobV9sb2NhbFN0b3JhZ2VNYW5hZ2VyKQot
ICAgICAgICAgICAgbV9sb2NhbFN0b3JhZ2VNYW5hZ2VyLT5jbG9zZSgpOworICAgICAgICAvLyBU
aGlzIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBJbmRleGVkREIgYW5kIExvY2FsU3RvcmFnZSBub3cu
CisgICAgICAgIGlmICh0eXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkxvY2FsU3RvcmFn
ZSkgJiYgIWxvY2FsU3RvcmFnZVBhdGguaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAobV9s
b2NhbFN0b3JhZ2VNYW5hZ2VyKQorICAgICAgICAgICAgICAgIG1fbG9jYWxTdG9yYWdlTWFuYWdl
ci0+Y2xvc2UoKTsKIAotICAgICAgICBpZiAobV9pZGJTdG9yYWdlTWFuYWdlcikKLSAgICAgICAg
ICAgIG1faWRiU3RvcmFnZU1hbmFnZXItPmNsb3NlRGF0YWJhc2VzRm9yRGVsZXRpb24oKTsKKyAg
ICAgICAgICAgIGF1dG8gY3VycmVudExvY2FsU3RvcmFnZVBhdGggPSByZXNvbHZlZExvY2FsU3Rv
cmFnZVBhdGgoKTsKKyAgICAgICAgICAgIGlmICghY3VycmVudExvY2FsU3RvcmFnZVBhdGguaXNF
bXB0eSgpKSB7CisgICAgICAgICAgICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVz
KEZpbGVTeXN0ZW06OnBhcmVudFBhdGgobG9jYWxTdG9yYWdlUGF0aCkpOworICAgICAgICAgICAg
ICAgIFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06Om1vdmVEYXRhYmFzZUZpbGUoY3VycmVudExv
Y2FsU3RvcmFnZVBhdGgsIGxvY2FsU3RvcmFnZVBhdGgpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CiAKLSAgICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKEZpbGVTeXN0ZW06
OnBhcmVudFBhdGgocGF0aCkpOwotICAgICAgICBGaWxlU3lzdGVtOjptb3ZlRmlsZShtX3Jvb3RQ
YXRoLCBwYXRoKTsKKyAgICAgICAgaWYgKHR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6
SW5kZXhlZERCRGF0YWJhc2VzKSAmJiAhaWRiU3RvcmFnZVBhdGguaXNFbXB0eSgpKSB7CisgICAg
ICAgICAgICBpZiAobV9pZGJTdG9yYWdlTWFuYWdlcikKKyAgICAgICAgICAgICAgICBtX2lkYlN0
b3JhZ2VNYW5hZ2VyLT5jbG9zZURhdGFiYXNlc0ZvckRlbGV0aW9uKCk7CiAKLSAgICAgICAgYXV0
byBjdXJyZW50TG9jYWxTdG9yYWdlUGF0aCA9IHJlc29sdmVkTG9jYWxTdG9yYWdlUGF0aCgpOwot
ICAgICAgICBpZiAoIWN1cnJlbnRMb2NhbFN0b3JhZ2VQYXRoLmlzRW1wdHkoKSAmJiAhbG9jYWxT
dG9yYWdlUGF0aC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxE
aXJlY3RvcmllcyhGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKGxvY2FsU3RvcmFnZVBhdGgpKTsKLSAg
ICAgICAgICAgIFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06Om1vdmVEYXRhYmFzZUZpbGUoY3Vy
cmVudExvY2FsU3RvcmFnZVBhdGgsIGxvY2FsU3RvcmFnZVBhdGgpOworICAgICAgICAgICAgYXV0
byBjdXJyZW50SURCU3RvcmFnZVBhdGggPSByZXNvbHZlZElEQlN0b3JhZ2VQYXRoKCk7CisgICAg
ICAgICAgICBpZiAoIWN1cnJlbnRJREJTdG9yYWdlUGF0aC5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgICAgICBGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoRmlsZVN5c3RlbTo6cGFyZW50
UGF0aChpZGJTdG9yYWdlUGF0aCkpOworICAgICAgICAgICAgICAgIEZpbGVTeXN0ZW06Om1vdmVG
aWxlKGN1cnJlbnRJREJTdG9yYWdlUGF0aCwgaWRiU3RvcmFnZVBhdGgpOworICAgICAgICAgICAg
fQogICAgICAgICB9CisgICAgfQorCisgICAgU3RyaW5nIHJlc29sdmVkTG9jYWxTdG9yYWdlUGF0
aCgpCisgICAgeworICAgICAgICBpZiAoIW1fcmVzb2x2ZWRMb2NhbFN0b3JhZ2VQYXRoLmlzTnVs
bCgpKQorICAgICAgICAgICAgcmV0dXJuIG1fcmVzb2x2ZWRMb2NhbFN0b3JhZ2VQYXRoOworCisg
ICAgICAgIGlmIChtX3Nob3VsZFVzZUN1c3RvbVBhdGhzKSB7CisgICAgICAgICAgICBBU1NFUlQo
bV9jdXN0b21Mb2NhbFN0b3JhZ2VQYXRoLmlzRW1wdHkoKSA9PSBtX3Jvb3RQYXRoLmlzRW1wdHko
KSk7CisgICAgICAgICAgICBtX3Jlc29sdmVkTG9jYWxTdG9yYWdlUGF0aCA9IG1fY3VzdG9tTG9j
YWxTdG9yYWdlUGF0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGF1dG8gbG9jYWxT
dG9yYWdlUGF0aCA9IExvY2FsU3RvcmFnZU1hbmFnZXI6OmxvY2FsU3RvcmFnZUZpbGVQYXRoKHR5
cGVTdG9yYWdlUGF0aChTdG9yYWdlVHlwZTo6TG9jYWxTdG9yYWdlKSk7CisgICAgICAgICAgICBp
ZiAoIW1fY3VzdG9tTG9jYWxTdG9yYWdlUGF0aC5pc0VtcHR5KCkgJiYgIUZpbGVTeXN0ZW06OmZp
bGVFeGlzdHMobG9jYWxTdG9yYWdlUGF0aCkpIHsKKyAgICAgICAgICAgICAgICBGaWxlU3lzdGVt
OjptYWtlQWxsRGlyZWN0b3JpZXMoRmlsZVN5c3RlbTo6cGFyZW50UGF0aChsb2NhbFN0b3JhZ2VQ
YXRoKSk7CisgICAgICAgICAgICAgICAgV2ViQ29yZTo6U1FMaXRlRmlsZVN5c3RlbTo6bW92ZURh
dGFiYXNlRmlsZShtX2N1c3RvbUxvY2FsU3RvcmFnZVBhdGgsIGxvY2FsU3RvcmFnZVBhdGgpOwor
ICAgICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gY3VycmVudElEQlN0b3JhZ2VQYXRoID0gcmVz
b2x2ZWRJREJTdG9yYWdlUGF0aCgpOwotICAgICAgICBpZiAoIWN1cnJlbnRJREJTdG9yYWdlUGF0
aC5pc0VtcHR5KCkgJiYgIWlkYlN0b3JhZ2VQYXRoLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
RmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoaWRi
U3RvcmFnZVBhdGgpKTsKLSAgICAgICAgICAgIFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06Om1v
dmVEYXRhYmFzZUZpbGUoY3VycmVudElEQlN0b3JhZ2VQYXRoLCBpZGJTdG9yYWdlUGF0aCk7Cisg
ICAgICAgICAgICBtX3Jlc29sdmVkTG9jYWxTdG9yYWdlUGF0aCA9IGxvY2FsU3RvcmFnZVBhdGg7
CiAgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbV9yZXNvbHZlZExvY2FsU3RvcmFnZVBhdGg7
CiAgICAgfQogCiAgICAgU3RyaW5nIHJlc29sdmVkSURCU3RvcmFnZVBhdGgoKQpAQCAtMzUyLDI3
ICszNzQsNiBAQCBwcml2YXRlOgogCiAgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUFsbEZpbGVz
TW9kaWZpZWRTaW5jZShyZXNvbHZlZElEQlN0b3JhZ2VQYXRoKCksIHRpbWUpOwogICAgIH0KLSAg
ICAKLSAgICBTdHJpbmcgcmVzb2x2ZWRMb2NhbFN0b3JhZ2VQYXRoKCkKLSAgICB7Ci0gICAgICAg
IGlmICghbV9yZXNvbHZlZExvY2FsU3RvcmFnZVBhdGguaXNOdWxsKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gbV9yZXNvbHZlZExvY2FsU3RvcmFnZVBhdGg7Ci0KLSAgICAgICAgaWYgKG1fc2hvdWxk
VXNlQ3VzdG9tUGF0aHMpIHsKLSAgICAgICAgICAgIEFTU0VSVChtX2N1c3RvbUxvY2FsU3RvcmFn
ZVBhdGguaXNFbXB0eSgpID09IG1fcm9vdFBhdGguaXNFbXB0eSgpKTsKLSAgICAgICAgICAgIG1f
cmVzb2x2ZWRMb2NhbFN0b3JhZ2VQYXRoID0gbV9jdXN0b21Mb2NhbFN0b3JhZ2VQYXRoOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXV0byBsb2NhbFN0b3JhZ2VQYXRoID0gTG9jYWxT
dG9yYWdlTWFuYWdlcjo6bG9jYWxTdG9yYWdlRmlsZVBhdGgodHlwZVN0b3JhZ2VQYXRoKFN0b3Jh
Z2VUeXBlOjpMb2NhbFN0b3JhZ2UpKTsKLSAgICAgICAgICAgIGlmICghbV9jdXN0b21Mb2NhbFN0
b3JhZ2VQYXRoLmlzRW1wdHkoKSAmJiAhRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhsb2NhbFN0b3Jh
Z2VQYXRoKSkgewotICAgICAgICAgICAgICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3Rvcmll
cyhGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKGxvY2FsU3RvcmFnZVBhdGgpKTsKLSAgICAgICAgICAg
ICAgICBXZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVtOjptb3ZlRGF0YWJhc2VGaWxlKG1fY3VzdG9t
TG9jYWxTdG9yYWdlUGF0aCwgbG9jYWxTdG9yYWdlUGF0aCk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIG1fcmVzb2x2ZWRMb2NhbFN0b3JhZ2VQYXRoID0gbG9jYWxTdG9yYWdlUGF0aDsK
LSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBtX3Jlc29sdmVkTG9jYWxTdG9yYWdlUGF0aDsK
LSAgICB9CiAKICAgICBTdHJpbmcgbV9yb290UGF0aDsKICAgICBTdHJpbmcgbV9pZGVudGlmaWVy
OwpAQCAtNDgxLDYgKzQ4MiwxNiBAQCBJREJTdG9yYWdlTWFuYWdlciogT3JpZ2luU3RvcmFnZU1h
bmFnZXI6OmV4aXN0aW5nSURCU3RvcmFnZU1hbmFnZXIoKQogICAgIHJldHVybiBkZWZhdWx0QnVj
a2V0KCkuZXhpc3RpbmdJREJTdG9yYWdlTWFuYWdlcigpOwogfQogCitTdHJpbmcgT3JpZ2luU3Rv
cmFnZU1hbmFnZXI6OnJlc29sdmVkTG9jYWxTdG9yYWdlUGF0aCgpCit7CisgICAgcmV0dXJuIGRl
ZmF1bHRCdWNrZXQoKS5yZXNvbHZlZExvY2FsU3RvcmFnZVBhdGgoKTsKK30KKworU3RyaW5nIE9y
aWdpblN0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZlZElEQlN0b3JhZ2VQYXRoKCkKK3sKKyAgICByZXR1
cm4gZGVmYXVsdEJ1Y2tldCgpLnJlc29sdmVkSURCU3RvcmFnZVBhdGgoKTsKK30KKwogYm9vbCBP
cmlnaW5TdG9yYWdlTWFuYWdlcjo6aXNBY3RpdmUoKQogewogICAgIHJldHVybiBkZWZhdWx0QnVj
a2V0KCkuaXNBY3RpdmUoKTsKQEAgLTUxMywxMSArNTI0LDExIEBAIHZvaWQgT3JpZ2luU3RvcmFn
ZU1hbmFnZXI6OmRlbGV0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gdHlwZXMsIFdh
bGxUaW1lCiAgICAgZGVmYXVsdEJ1Y2tldCgpLmRlbGV0ZURhdGEodHlwZXMsIG1vZGlmaWVkU2lu
Y2UpOwogfQogCi12b2lkIE9yaWdpblN0b3JhZ2VNYW5hZ2VyOjptb3ZlRGF0YShjb25zdCBTdHJp
bmcmIG5ld1BhdGgsIGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdlUGF0aCwgY29uc3QgU3RyaW5n
JiBpZGJTdG9yYWdlUGF0aCkKK3ZvaWQgT3JpZ2luU3RvcmFnZU1hbmFnZXI6Om1vdmVEYXRhKE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHR5cGVzLCBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFn
ZVBhdGgsIGNvbnN0IFN0cmluZyYgaWRiU3RvcmFnZVBhdGgpCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAKLSAgICBkZWZhdWx0QnVja2V0KCkubW92ZURhdGEobmV3UGF0aCwg
bG9jYWxTdG9yYWdlUGF0aCwgaWRiU3RvcmFnZVBhdGgpOworICAgIGRlZmF1bHRCdWNrZXQoKS5t
b3ZlRGF0YSh0eXBlcywgbG9jYWxTdG9yYWdlUGF0aCwgaWRiU3RvcmFnZVBhdGgpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL09yaWdpblN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggZGRkYjMyNmE4
M2I0Nzg0MmMyMDdmNTZmY2M1ODI0YTY3NDhiY2JmNi4uZDg4MmIxN2U2NDU2NTllOGQxNzFkNTA4
ODVhNzU3ODQxNzJhMzYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL09yaWdpblN0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL09yaWdpblN0b3JhZ2VNYW5hZ2VyLmgKQEAgLTU5LDExICs1OSwx
MyBAQCBwdWJsaWM6CiAgICAgU2Vzc2lvblN0b3JhZ2VNYW5hZ2VyKiBleGlzdGluZ1Nlc3Npb25T
dG9yYWdlTWFuYWdlcigpOwogICAgIElEQlN0b3JhZ2VNYW5hZ2VyJiBpZGJTdG9yYWdlTWFuYWdl
cihJREJTdG9yYWdlUmVnaXN0cnkmKTsKICAgICBJREJTdG9yYWdlTWFuYWdlciogZXhpc3RpbmdJ
REJTdG9yYWdlTWFuYWdlcigpOworICAgIFN0cmluZyByZXNvbHZlZExvY2FsU3RvcmFnZVBhdGgo
KTsKKyAgICBTdHJpbmcgcmVzb2x2ZWRJREJTdG9yYWdlUGF0aCgpOwogICAgIGJvb2wgaXNBY3Rp
dmUoKTsKICAgICBib29sIGlzRW1wdHkoKTsKICAgICBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiBmZXRjaERhdGFUeXBlc0luTGlzdChPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPik7CiAgICAg
dm9pZCBkZWxldGVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBXYWxsVGltZSk7Ci0g
ICAgdm9pZCBtb3ZlRGF0YShjb25zdCBTdHJpbmcmIG5ld1BhdGgsIGNvbnN0IFN0cmluZyYgbG9j
YWxTdG9yYWdlUGF0aCwgY29uc3QgU3RyaW5nJiBpZGJTdG9yYWdlUGF0aCk7CisgICAgdm9pZCBt
b3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgU3RyaW5nJiBsb2NhbFN0
b3JhZ2VQYXRoLCBjb25zdCBTdHJpbmcmIGlkYlN0b3JhZ2VQYXRoKTsKIAogcHJpdmF0ZToKICAg
ICBlbnVtIGNsYXNzIFN0b3JhZ2VCdWNrZXRNb2RlIDogYm9vbDsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzODhkZDkwZDZkZGExY2QzYjI2ZWMz
ZTJkYzY3NjU4ODA0NjlmMjhmLi43OGNlMThjYjQ5NjU0ZDEwMDA3MzZlNzU5MDE0ZTFhZjM3ZmMx
ZjAyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjItMDItMTYgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgRW5zdXJlIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6bW92ZURhdGEgcGVy
Zm9ybXMgbW92ZSBvcGVyYXRpb24gYmFzZWQgb24gZGF0YSB0eXBlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzI3CisgICAgICAgIHJkYXI6Ly84
OTAwOTg4MQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0
aHMubW06CisgICAgICAgIChURVNUKToKKwogMjAyMi0wMi0xNSAgSm9uYXRoYW4gQmVkYXJkICA8
amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0VXU10gU3VwcG9ydCBQUnMgd2hlbiBzZW5k
aW5nIGxheW91dCB0ZXN0IGZhaWx1cmUgZW1haWxzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1
c3RvbVBhdGhzLm1tCmluZGV4IGM5ZDUwYzg2YzkyYjFhMTU4N2QzMGFmOWM0YTk5MDk0ZjI2YTI4
ZTAuLjZmMjQ1NWMzNTE2ZmI5NjRjNDNhMjBhMWE4ZjNiN2ZjOWY1MmZhMDYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1
c3RvbVBhdGhzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCkBAIC01NDIsNiArNTQyLDcgQEAgVEVTVChX
ZWJLaXQsIFdlYnNpdGVEYXRhU3RvcmVSZW5hbWVPcmlnaW5Gb3JJbmRleGVkRGF0YWJhc2UpCiAK
ICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0U3RyaW5nIGJhc2VVUkw6ZXhhbXBsZVVS
TF07CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJkYXRhYmFzZSBpcyBjcmVhdGVkIiwgZ2V0TmV4dE1l
c3NhZ2UoKS5ib2R5KTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAibG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Rlc3RrZXknLCAndGVzdHZhbHVlJykiXTsKIAogICAg
IGF1dG8gZGF0YVN0b3JlID0gd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLndlYnNpdGVEYXRh
U3RvcmU7CiAgICAgYXV0byBpbmRleGVkREJUeXBlID0gYWRvcHROUyhbW05TU2V0IGFsbG9jXSBp
bml0V2l0aE9iamVjdHM6V0tXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRhYmFzZXMsIG5pbF0p
OwpAQCAtNTU0LDYgKzU1NSw4IEBAIFRFU1QoV2ViS2l0LCBXZWJzaXRlRGF0YVN0b3JlUmVuYW1l
T3JpZ2luRm9ySW5kZXhlZERhdGFiYXNlKQogICAgIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3Ry
aW5nOnRlc3RTdHJpbmcgYmFzZVVSTDp3ZWJLaXRVUkxdOwogICAgIEVYUEVDVF9XS19TVFJFUSgi
ZGF0YWJhc2UgZXhpc3RzIiwgZ2V0TmV4dE1lc3NhZ2UoKS5ib2R5KTsKKyAgICAvLyBFbnN1cmUg
TG9jYWxTdG9yYWdlIGRhdGEgaXMgbm90IG1vdmVkLgorICAgIEVYUEVDVF9XS19TVFJFUSgiPG51
bGw+IiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImxvY2FsU3RvcmFn
ZS5nZXRJdGVtKCd0ZXN0a2V5JykiXSk7CiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0
ZXN0U3RyaW5nIGJhc2VVUkw6ZXhhbXBsZVVSTF07CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJkYXRh
YmFzZSBpcyBjcmVhdGVkIiwgZ2V0TmV4dE1lc3NhZ2UoKS5ib2R5KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>