<?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>199599</bug_id>
          
          <creation_ts>2019-07-08 16:09:14 -0700</creation_ts>
          <short_desc>Speculative fix for crashes under LocalStorageDatabaseTracker::databasePath()</short_desc>
          <delta_ts>2019-07-08 20:06:19 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>rniwa</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>1551021</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-08 16:09:14 -0700</bug_when>
    <thetext>Speculative fix for crashes under LocalStorageDatabaseTracker::databasePath():
Thread 2 name:  Dispatch queue: com.apple.WebKit.StorageManager
Thread 2 Crashed ↩:
0   CoreFoundation                	0x00000001a2d33458 __CFStringCreateImmutableFunnel3 + 688 (CFString.c:1617)
1   CoreFoundation                	0x00000001a2d3320c __CFStringCreateImmutableFunnel3 + 100 (CFInternal.h:390)
2   CoreFoundation                	0x00000001a2d33e20 CFStringCreateWithCharacters + 60 (CFString.c:1873)
3   JavaScriptCore                	0x00000001b22f5ef8 WTF::StringImpl::createCFString() + 140 (StringImplCF.cpp:128)
4   JavaScriptCore                	0x00000001b22cadc0 WTF::FileSystemImpl::fileSystemRepresentation(WTF::String const&amp;) + 36 (FileSystemCF.cpp:41)
5   JavaScriptCore                	0x00000001b22ccfe0 WTF::FileSystemImpl::makeAllDirectories(WTF::String const&amp;) + 28 (FileSystemPOSIX.cpp:313)
6   WebKit                        	0x00000001aa4b0924 WebKit::LocalStorageDatabaseTracker::databasePath(WTF::String const&amp;) const + 52 (LocalStorageDatabaseTracker.cpp:153)
7   WebKit                        	0x00000001aa4af9d8 WebKit::LocalStorageDatabaseTracker::databasePath(WebCore::SecurityOriginData const&amp;) const + 124 (LocalStorageDatabaseTracker.cpp:66)
8   WebKit                        	0x00000001aa4af934 WebKit::LocalStorageDatabase::LocalStorageDatabase(WTF::Ref&lt;WTF::WorkQueue, WTF::DumbPtrTraits&lt;WTF::WorkQueue&gt; &gt;&amp;&amp;, WTF::Ref&lt;WebKit::LocalStorageDatabaseTracker, WTF::DumbPtrTraits&lt;WebKit::LocalStorageDatabaseTracker&gt; &gt;&amp;&amp;, WebCore::SecurityOriginData const&amp;) + 144 (LocalStorageDatabase.cpp:57)
9   WebKit                        	0x00000001aa4b1558 WebKit::StorageManager::StorageArea::openDatabaseAndImportItemsIfNeeded() const + 180 (LocalStorageDatabase.cpp:63)
10  WebKit                        	0x00000001aa4bec34 WTF::Detail::CallableWrapper&lt;WebKit::StorageManager::getValues(IPC::Connection&amp;, WebCore::SecurityOriginData&amp;&amp;, unsigned long long, unsigned long long, WTF::CompletionHandler&lt;void (WTF::HashMap&lt;WTF::String, WTF::String, WTF::StringHash, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt; &gt; const&amp;)&gt;&amp;&amp;)::$_27, void&gt;::call() + 52 (StorageManager.cpp:289)
11  JavaScriptCore                	0x00000001b232c3cc WTF::BlockPtr&lt;void ()&gt; WTF::BlockPtr&lt;void ()&gt;::fromCallable&lt;WTF::WorkQueue::dispatch(WTF::Function&lt;void ()&gt;&amp;&amp;)::$_0&gt;(WTF::WorkQueue::dispatch(WTF::Function&lt;void ()&gt;&amp;&amp;)::$_0)::&apos;lambda&apos;(void*)::__invoke(void*) + 32 (Function.h:79)
12  libdispatch.dylib             	0x00000001a2a3ecb0 _dispatch_call_block_and_release + 32 (init.c:1408)
13  libdispatch.dylib             	0x00000001a2a4010c _dispatch_client_callout + 20 (object.m:495)
14  libdispatch.dylib             	0x00000001a2a4652c _dispatch_lane_serial_drain + 568 (inline_internal.h:2487)
15  libdispatch.dylib             	0x00000001a2a46f54 _dispatch_lane_invoke + 364 (inline_internal.h:1854)
16  libdispatch.dylib             	0x00000001a2a4ffc8 _dispatch_workloop_worker_thread + 580 (queue.c:6380)
17  libsystem_pthread.dylib       	0x00000001a2aa5a64 _pthread_wqthread + 308 (pthread.c:2329)
18  libsystem_pthread.dylib       	0x00000001a2aabc44 start_wqthread + 8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551022</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-08 16:09:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/31169686&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551025</commentid>
    <comment_count>2</comment_count>
      <attachid>373678</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-08 16:17:01 -0700</bug_when>
    <thetext>Created attachment 373678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551111</commentid>
    <comment_count>3</comment_count>
      <attachid>373678</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-07-08 19:25:37 -0700</bug_when>
    <thetext>Comment on attachment 373678
Patch

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

&gt; Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h:78
&gt; -    String m_localStorageDirectory;
&gt; +    const String m_localStorageDirectory;

Can we add a comment saying why it&apos;s not safe to use this in a background thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551126</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-08 20:06:19 -0700</bug_when>
    <thetext>Committed r247250: &lt;https://trac.webkit.org/changeset/247250&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373678</attachid>
            <date>2019-07-08 16:17:01 -0700</date>
            <delta_ts>2019-07-08 19:25:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199599-20190708161700.patch</filename>
            <type>text/plain</type>
            <size>17939</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3MjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg2YjgyM2VmZGYxNTJkNzRj
MDZhYjEzY2NmNTA2MGMyYzZjNGRkNjEuLmZiM2Q1MzAxMWViNTViODkyNWEzYjYxYjhjMzAxNDc0
NmJlMTlmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTktMDctMDggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTcGVjdWxhdGl2ZSBmaXggZm9yIGNy
YXNoZXMgdW5kZXIgTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpkYXRhYmFzZVBhdGgoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5NTk5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTE2OTY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGVjdWxhdGl2ZSBmaXggZm9yIGNyYXNoZXMgdW5k
ZXIgTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpkYXRhYmFzZVBhdGgoKToKKyAgICAgICAg
LSBBZGQgbmV3IGxvY2FsU3RvcmFnZURpcmVjdG9yeSgpIGdldHRlciB0byBMb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXIgd2hpY2gKKyAgICAgICAgICBjYWxscyBpc29sYXRlZENvcHkoKSBvbiBt
X2xvY2FsU3RvcmFnZURpcmVjdG9yeSBiZWZvcmUgcmV0dXJuaW5nIGl0LgorICAgICAgICAgIFVz
ZSBpdCBldmVyeXdoZXJlIGluc3RlYWQgb2YgbV9sb2NhbFN0b3JhZ2VEaXJlY3Rvcnkgc2luY2Ug
aXQgaXMgbm90IHNhZmUKKyAgICAgICAgICB0byB1c2UgdGhlIHNhbWUgU3RyaW5nIGZyb20gdmFy
aW91cyB0aHJlYWRzIGxpa2UgaXQgd2FzIGRvbmUuCisgICAgICAgIC0gTW92ZSBsb2NhbFN0b3Jh
Z2VEaXJlY3Rvcnkgd2hlbiBjb25zdHJ1Y3RpbmcgdGhlIExvY2FsU3RvcmFnZURhdGFiYXNlVHJh
Y2tlcgorICAgICAgICAgIGluc3RlYWQgb2YgY29weWluZyBpdC4KKyAgICAgICAgLSBNYWtlIHN1
cmUgdGhhdCBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIgYW5kIFN0b3JhZ2VNYW5hZ2VyIGFy
ZSBib3RoCisgICAgICAgICAgY29uc3RydWN0ZWQgYW5kIGRlc3Ryb3llZCBvbiB0aGUgbWFpbiB0
aHJlYWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbik6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVRyYWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6
OmxvY2FsU3RvcmFnZURpcmVjdG9yeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsU3Rv
cmFnZURhdGFiYXNlVHJhY2tlcjo6fkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcik6CisgICAg
ICAgIChXZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlQWxsRGF0YWJh
c2VzKToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpvcmln
aW5zIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2Vy
OjpkYXRhYmFzZVBhdGggY29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3Jh
Z2UvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3Jh
Z2VNYW5hZ2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6U3Rv
cmFnZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6flN0b3JhZ2VN
YW5hZ2VyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9pb3MvTG9jYWxTdG9y
YWdlRGF0YWJhc2VUcmFja2VySU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpMb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXI6OnBsYXRmb3JtTWF5YmVFeGNsdWRlRnJvbUJhY2t1cCBjb25zdCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkN1cmw6Ok5ldHdvcmtTZXNzaW9uQ3VybCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvblNvdXA6Ok5ldHdvcmtTZXNzaW9uU291cCk6
CisKIDIwMTktMDctMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBDbGVhbnVwIHVzZXMgb2YgTmV0d29ya1Byb2Nlc3M6Om1fc2Vzc2lvbkJ5Q29ubmVjdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRl
eCA4MDQ4MDViYWVlYTA4YWUxYTJkY2IyNTQyYzgwOTZjZGVhNzlhYzAzLi4xZTNhMGQ5MWFkOTk1
NGE1YjYwZjA2OGE3YzJlNTg5ZjEzZGZmNTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNzcsMTEgKzc3LDExIEBAIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiogTmV0d29ya1Nlc3Npb246Om5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpIGNv
bnN0CiAgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9uOwogfQogCi1OZXR3b3JrU2Vzc2lvbjo6TmV0
d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmIGhhbmRsZSkKK05ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lv
bihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgU3RyaW5nJiYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmIGhhbmRsZSkKICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fbmV0d29y
a1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCiAgICAgLCBtX2FkQ2xpY2tBdHRyaWJ1dGlvbihtYWtl
VW5pcXVlUmVmPEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI+KHNlc3Npb25JRCkpCi0gICAgLCBt
X3N0b3JhZ2VNYW5hZ2VyKFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGUobG9jYWxTdG9yYWdlRGlyZWN0
b3J5KSkKKyAgICAsIG1fc3RvcmFnZU1hbmFnZXIoU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShXVEZN
b3ZlKGxvY2FsU3RvcmFnZURpcmVjdG9yeSkpKQogewogICAgIFNhbmRib3hFeHRlbnNpb246OmNv
bnN1bWVQZXJtYW5lbnRseShoYW5kbGUpOwogICAgIG1fYWRDbGlja0F0dHJpYnV0aW9uLT5zZXRQ
aW5nTG9hZEZ1bmN0aW9uKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCBmNTIxYWQzY2FmZjAyOTQz
NDE2YTk1MGNlZjdkNWY5NmJiYzU5Mzg1Li40ZDQ4NzMyZTI2MTZmNWNkMjU4OWUyZDIyOTQ2MDhj
N2JmZDllYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oCkBAIC0xMDgsNyArMTA4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRX
ZWJTb2NrZXRUYXNrKFdlYlNvY2tldFRhc2smKSB7IH0KIAogcHJvdGVjdGVkOgotICAgIE5ldHdv
cmtTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYg
bG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKKyAgICBO
ZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiBs
b2NhbFN0b3JhZ2VEaXJlY3RvcnksIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogCiAgICAg
UEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25l
dHdvcmtQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9X
ZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNw
cAppbmRleCA4ODk4N2E0NWNkNGZiOWMyY2JmMWYwNGQ4YTJlMDA4NWQwNTJlMDEwLi4wN2E2MzNm
YmZlOWJlNTllZGJlZDUzOWM5NmUxOWU0YjFiYmQyNTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxT
dG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcApAQCAtMzksMTUgKzM5LDE3IEBACiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8TG9jYWxTdG9yYWdlRGF0
YWJhc2VUcmFja2VyPiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6OmNyZWF0ZShSZWY8V29y
a1F1ZXVlPiYmIHF1ZXVlLCBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSkKK1Jl
ZjxMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI+IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
cjo6Y3JlYXRlKFJlZjxXb3JrUXVldWU+JiYgcXVldWUsIFN0cmluZyYmIGxvY2FsU3RvcmFnZURp
cmVjdG9yeSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVRyYWNrZXIoV1RGTW92ZShxdWV1ZSksIGxvY2FsU3RvcmFnZURpcmVjdG9yeSkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcihXVEZNb3ZlKHF1
ZXVlKSwgV1RGTW92ZShsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpKSk7CiB9CiAKLUxvY2FsU3RvcmFn
ZURhdGFiYXNlVHJhY2tlcjo6TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyKFJlZjxXb3JrUXVl
dWU+JiYgcXVldWUsIGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5KQorTG9jYWxT
dG9yYWdlRGF0YWJhc2VUcmFja2VyOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIoUmVmPFdv
cmtRdWV1ZT4mJiBxdWV1ZSwgU3RyaW5nJiYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5KQogICAgIDog
bV9xdWV1ZShXVEZNb3ZlKHF1ZXVlKSkKLSAgICAsIG1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5KGxv
Y2FsU3RvcmFnZURpcmVjdG9yeS5pc29sYXRlZENvcHkoKSkKKyAgICAsIG1fbG9jYWxTdG9yYWdl
RGlyZWN0b3J5KFdURk1vdmUobG9jYWxTdG9yYWdlRGlyZWN0b3J5KSkKIHsKKyAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOworCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBlbmNvZGluZyBpcyBp
bml0aWFsaXplZCBiZWZvcmUgd2Ugc3RhcnQgZGlzcGF0Y2hpbmcgdGhpbmdzIHRvIHRoZSBxdWV1
ZS4KICAgICBVVEY4RW5jb2RpbmcoKTsKIApAQCAtNTcsOCArNTksMTQgQEAgTG9jYWxTdG9yYWdl
RGF0YWJhc2VUcmFja2VyOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIoUmVmPFdvcmtRdWV1
ZT4mJiBxdWV1ZSwKICAgICB9KTsKIH0KIAorU3RyaW5nIExvY2FsU3RvcmFnZURhdGFiYXNlVHJh
Y2tlcjo6bG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sb2Nh
bFN0b3JhZ2VEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5KCk7Cit9CisKIExvY2FsU3RvcmFnZURhdGFi
YXNlVHJhY2tlcjo6fkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcigpCiB7CisgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKIH0KIAogU3RyaW5nIExvY2FsU3RvcmFnZURhdGFiYXNlVHJh
Y2tlcjo6ZGF0YWJhc2VQYXRoKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmln
aW4pIGNvbnN0CkBAIC04MiwxNCArOTAsMTUgQEAgdm9pZCBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXI6OmRlbGV0ZURhdGFiYXNlV2l0aE9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkQKIAog
dm9pZCBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZUFsbERhdGFiYXNlcygpCiB7
Ci0gICAgYXV0byBwYXRocyA9IEZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkobV9sb2NhbFN0b3Jh
Z2VEaXJlY3RvcnksICIqLmxvY2Fsc3RvcmFnZSIpOworICAgIGF1dG8gbG9jYWxTdG9yYWdlRGly
ZWN0b3J5ID0gdGhpcy0+bG9jYWxTdG9yYWdlRGlyZWN0b3J5KCk7CisgICAgYXV0byBwYXRocyA9
IEZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkobG9jYWxTdG9yYWdlRGlyZWN0b3J5LCAiKi5sb2Nh
bHN0b3JhZ2UiKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhdGggOiBwYXRocykgewogICAgICAg
ICBTUUxpdGVGaWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiAKICAgICAgICAg
Ly8gRklYTUU6IENhbGwgb3V0IHRvIHRoZSBjbGllbnQuCiAgICAgfQogCi0gICAgU1FMaXRlRmls
ZVN5c3RlbTo6ZGVsZXRlRW1wdHlEYXRhYmFzZURpcmVjdG9yeShtX2xvY2FsU3RvcmFnZURpcmVj
dG9yeSk7CisgICAgU1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRlRW1wdHlEYXRhYmFzZURpcmVjdG9y
eShsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpOwogfQogCiBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRh
PiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6OmRhdGFiYXNlc01vZGlmaWVkU2luY2UoV2Fs
bFRpbWUgdGltZSkKQEAgLTExNCw3ICsxMjMsNyBAQCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRh
PiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6OmRhdGFiYXNlc01vZGlmaWVkU2luY2UoVwog
VmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpv
cmlnaW5zKCkgY29uc3QKIHsKICAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBkYXRhYmFz
ZU9yaWdpbnM7Ci0gICAgYXV0byBwYXRocyA9IEZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkobV9s
b2NhbFN0b3JhZ2VEaXJlY3RvcnksICIqLmxvY2Fsc3RvcmFnZSIpOworICAgIGF1dG8gcGF0aHMg
PSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGxvY2FsU3RvcmFnZURpcmVjdG9yeSgpLCAiKi5s
b2NhbHN0b3JhZ2UiKTsKICAgICAKICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhdGggOiBwYXRocykg
ewogICAgICAgICBhdXRvIGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6cGF0aEdldEZpbGVOYW1lKHBh
dGgpOwpAQCAtMTUwLDcgKzE1OSw4IEBAIFZlY3RvcjxMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNr
ZXI6Ok9yaWdpbkRldGFpbHM+IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6CiAKIFN0cmlu
ZyBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6OmRhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcm
IGZpbGVuYW1lKSBjb25zdAogewotICAgIGlmICghU1FMaXRlRmlsZVN5c3RlbTo6ZW5zdXJlRGF0
YWJhc2VEaXJlY3RvcnlFeGlzdHMobV9sb2NhbFN0b3JhZ2VEaXJlY3RvcnkpKSB7CisgICAgYXV0
byBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSB0aGlzLT5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkoKTsK
KyAgICBpZiAoIVNRTGl0ZUZpbGVTeXN0ZW06OmVuc3VyZURhdGFiYXNlRGlyZWN0b3J5RXhpc3Rz
KGxvY2FsU3RvcmFnZURpcmVjdG9yeSkpIHsKICAgICAgICAgaWYgKCFtX2xvY2FsU3RvcmFnZURp
cmVjdG9yeS5pc051bGwoKSkKICAgICAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNyZWF0
ZSBMb2NhbFN0b3JhZ2UgZGF0YWJhc2UgcGF0aCAlcyIsIG1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5
LnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC0xNjIsNyArMTcy
LDcgQEAgU3RyaW5nIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6ZGF0YWJhc2VQYXRoKGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUpIGNvbnN0CiAgICAgfSk7CiAjZW5kaWYKIAotICAgIHJldHVy
biBTUUxpdGVGaWxlU3lzdGVtOjphcHBlbmREYXRhYmFzZUZpbGVOYW1lVG9QYXRoKG1fbG9jYWxT
dG9yYWdlRGlyZWN0b3J5LCBmaWxlbmFtZSk7CisgICAgcmV0dXJuIFNRTGl0ZUZpbGVTeXN0ZW06
OmFwcGVuZERhdGFiYXNlRmlsZU5hbWVUb1BhdGgobG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBmaWxl
bmFtZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
ci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFn
ZURhdGFiYXNlVHJhY2tlci5oCmluZGV4IDcyYjkzYzMyMjc3ZDA3ZTdjYzgzYjMzNWE3MzJiY2Yx
Nzg1ZTdhZjkuLmZjYWExMjNjMmZhOGQyNTc0NjVjNzNiNzIyN2Q3OWM5MzkwOTM1YzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dl
YlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmgKQEAgLTM1LDkgKzM1LDkgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
ciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNr
ZXI+IHsKK2NsYXNzIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlciA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIsIFdURjo6RGVzdHJ1Y3Rp
b25UaHJlYWQ6Ok1haW5SdW5Mb29wPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxMb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXI+IGNyZWF0ZShSZWY8V29ya1F1ZXVlPiYmLCBjb25zdCBTdHJp
bmcmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSk7CisgICAgc3RhdGljIFJlZjxMb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXI+IGNyZWF0ZShSZWY8V29ya1F1ZXVlPiYmLCBTdHJpbmcmJiBsb2NhbFN0
b3JhZ2VEaXJlY3RvcnkpOwogICAgIH5Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIoKTsKIAog
ICAgIFN0cmluZyBkYXRhYmFzZVBhdGgoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JikgY29uc3Q7CkBAIC02NCw5ICs2NCwxMCBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPE9yaWdpbkRl
dGFpbHM+IG9yaWdpbkRldGFpbHMoKTsKIAogcHJpdmF0ZToKLSAgICBMb2NhbFN0b3JhZ2VEYXRh
YmFzZVRyYWNrZXIoUmVmPFdvcmtRdWV1ZT4mJiwgY29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VE
aXJlY3RvcnkpOworICAgIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcihSZWY8V29ya1F1ZXVl
PiYmLCBTdHJpbmcmJiBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpOwogCiAgICAgU3RyaW5nIGRhdGFi
YXNlUGF0aChjb25zdCBTdHJpbmcmIGZpbGVuYW1lKSBjb25zdDsKKyAgICBTdHJpbmcgbG9jYWxT
dG9yYWdlRGlyZWN0b3J5KCkgY29uc3Q7CiAKICAgICBlbnVtIERhdGFiYXNlT3BlbmluZ1N0cmF0
ZWd5IHsKICAgICAgICAgQ3JlYXRlSWZOb25FeGlzdGVudCwKQEAgLTc0LDcgKzc1LDcgQEAgcHJp
dmF0ZToKICAgICB9OwogCiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKLSAgICBTdHJpbmcg
bV9sb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CisgICAgY29uc3QgU3RyaW5nIG1fbG9jYWxTdG9yYWdl
RGlyZWN0b3J5OwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2b2lkIHBsYXRmb3Jt
TWF5YmVFeGNsdWRlRnJvbUJhY2t1cCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXgg
MTVhZGQyZTVhOTdiY2NlNzhiZTlmY2JkNmVjMDIwYmRjZWVmODUzNS4uNjY5MTI5NGJhYWVkYzE2
YTc3NWIwZDhmMjY2ZTM4NTQ1MDc3NGRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC00ODEs
MjIgKzQ4MSwyNSBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpTZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZTo6Y2xvbmVUbyhTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSYgbgogICAgICAgICBuZXdTZXNzaW9u
U3RvcmFnZU5hbWVzcGFjZS5tX3N0b3JhZ2VBcmVhTWFwLmFkZChwYWlyLmtleSwgcGFpci52YWx1
ZS0+Y2xvbmUoKSk7CiB9CiAKLVJlZjxTdG9yYWdlTWFuYWdlcj4gU3RvcmFnZU1hbmFnZXI6OmNy
ZWF0ZShjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSkKK1JlZjxTdG9yYWdlTWFu
YWdlcj4gU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShTdHJpbmcmJiBsb2NhbFN0b3JhZ2VEaXJlY3Rv
cnkpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU1hbmFnZXIobG9jYWxTdG9y
YWdlRGlyZWN0b3J5KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU1hbmFnZXIo
V1RGTW92ZShsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpKSk7CiB9CiAKLVN0b3JhZ2VNYW5hZ2VyOjpT
dG9yYWdlTWFuYWdlcihjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSkKK1N0b3Jh
Z2VNYW5hZ2VyOjpTdG9yYWdlTWFuYWdlcihTdHJpbmcmJiBsb2NhbFN0b3JhZ2VEaXJlY3Rvcnkp
CiAgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlN0b3Jh
Z2VNYW5hZ2VyIikpCiB7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKwogICAgIC8v
IE1ha2Ugc3VyZSB0aGUgZW5jb2RpbmcgaXMgaW5pdGlhbGl6ZWQgYmVmb3JlIHdlIHN0YXJ0IGRp
c3BhdGNoaW5nIHRoaW5ncyB0byB0aGUgcXVldWUuCiAgICAgVVRGOEVuY29kaW5nKCk7CiAgICAg
aWYgKCFsb2NhbFN0b3JhZ2VEaXJlY3RvcnkuaXNOdWxsKCkpCi0gICAgICAgIG1fbG9jYWxTdG9y
YWdlRGF0YWJhc2VUcmFja2VyID0gTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpjcmVhdGUo
bV9xdWV1ZS5jb3B5UmVmKCksIGxvY2FsU3RvcmFnZURpcmVjdG9yeSk7CisgICAgICAgIG1fbG9j
YWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyID0gTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpj
cmVhdGUobV9xdWV1ZS5jb3B5UmVmKCksIFdURk1vdmUobG9jYWxTdG9yYWdlRGlyZWN0b3J5KSk7
CiB9CiAKIFN0b3JhZ2VNYW5hZ2VyOjp+U3RvcmFnZU1hbmFnZXIoKQogeworICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CiB9CiAKIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlKHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgdW5zaWduZWQg
cXVvdGFJbkJ5dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9X
ZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaAppbmRleCA3NWZiMDk5MzM0NzVhZGQwMGRkNDJh
YjNhNTRlNGI2MTMzNGM4YjExLi5mYjliN2U2ZmNiNjRjM2E1M2FiMGIzYTEyMWU4ZjZmM2UzODFk
NmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2Uv
U3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaApAQCAtNDUsOSArNDUsOSBAQCBjbGFzcyBXZWJQcm9jZXNz
UHJveHk7CiAKIHVzaW5nIEdldFZhbHVlc0NhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYpPjsKIAotY2xhc3MgU3RvcmFnZU1hbmFn
ZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U3RvcmFnZU1hbmFnZXI+IHsKK2NsYXNz
IFN0b3JhZ2VNYW5hZ2VyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFN0b3JhZ2VNYW5h
Z2VyLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVuTG9vcD4gewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8U3RvcmFnZU1hbmFnZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGxvY2FsU3Rv
cmFnZURpcmVjdG9yeSk7CisgICAgc3RhdGljIFJlZjxTdG9yYWdlTWFuYWdlcj4gY3JlYXRlKFN0
cmluZyYmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSk7CiAgICAgflN0b3JhZ2VNYW5hZ2VyKCk7CiAK
ICAgICB2b2lkIGNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHVpbnQ2NF90IHN0b3JhZ2VO
YW1lc3BhY2VJRCwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKTsKQEAgLTc3LDcgKzc3LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIp
OwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFN0b3JhZ2VNYW5hZ2VyKGNvbnN0IFN0cmluZyYg
bG9jYWxTdG9yYWdlRGlyZWN0b3J5KTsKKyAgICBleHBsaWNpdCBTdG9yYWdlTWFuYWdlcihTdHJp
bmcmJiBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4K
ICAgICB2b2lkIGNyZWF0ZUxvY2FsU3RvcmFnZU1hcChJUEM6OkNvbm5lY3Rpb24mLCB1aW50NjRf
dCBzdG9yYWdlTWFwSUQsIHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXJJT1MubW0gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvaW9zL0xvY2FsU3RvcmFnZURh
dGFiYXNlVHJhY2tlcklPUy5tbQppbmRleCA5YjAxZTg5NjM2MGY0MmM5ZjUwOTdmZjI4MGI3ZmY2
MTVlNjU0MTRmLi4wMDcyNDg0MzkyNzA3MDU5NDEwYTkzNDIxYWU5MzExZTI1Y2I5ZGFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvaW9zL0xvY2Fs
U3RvcmFnZURhdGFiYXNlVHJhY2tlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1dlYlN0b3JhZ2UvaW9zL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcklPUy5tbQpA
QCAtNDAsNyArNDAsNyBAQCB2b2lkIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6cGxhdGZv
cm1NYXliZUV4Y2x1ZGVGcm9tQmFja3VwKCkgY29uc3QKICAgICBtX2hhc0V4Y2x1ZGVkRnJvbUJh
Y2t1cCA9IHRydWU7CiAKICAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0
VG9FeGNsdWRlTG9jYWxTdG9yYWdlRnJvbUJhY2t1cCkpCi0gICAgICAgIFtbTlNVUkwgZmlsZVVS
TFdpdGhQYXRoOihOU1N0cmluZyAqKW1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5IGlzRGlyZWN0b3J5
OllFU10gc2V0UmVzb3VyY2VWYWx1ZTpAWUVTIGZvcktleTpOU1VSTElzRXhjbHVkZWRGcm9tQmFj
a3VwS2V5IGVycm9yOm5pbF07CisgICAgICAgIFtbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOihOU1N0
cmluZyAqKWxvY2FsU3RvcmFnZURpcmVjdG9yeSgpIGlzRGlyZWN0b3J5OllFU10gc2V0UmVzb3Vy
Y2VWYWx1ZTpAWUVTIGZvcktleTpOU1VSTElzRXhjbHVkZWRGcm9tQmFja3VwS2V5IGVycm9yOm5p
bF07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IGM5
MGVmMGE2NmFiYzBlZTNiZjllOTJiOGEyOTg2MDI1YmI4ZTA2MDcuLjAxODg4OWEyODY2ZWViNzMz
MzEwMDcxMmIxZWE5ZDA3OTlkM2UzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTkyNCw3ICs5
MjQsNyBAQCBzdGF0aWMgTlNEaWN0aW9uYXJ5ICpwcm94eURpY3Rpb25hcnkoY29uc3QgVVJMJiBo
dHRwUHJveHksIGNvbnN0IFVSTCYgaHR0cHNQcm94eQogfQogCiBOZXR3b3JrU2Vzc2lvbkNvY29h
OjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQotICAgIDogTmV0d29y
a1Nlc3Npb24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMuc2Vzc2lvbklELCBwYXJhbWV0ZXJz
LmxvY2FsU3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGUpCisgICAgOiBOZXR3b3JrU2Vzc2lvbihuZXR3b3JrUHJvY2VzcywgcGFy
YW1ldGVycy5zZXNzaW9uSUQsIFdURk1vdmUocGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3Rv
cnkpLCBwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAg
ICAsIG1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKHBhcmFtZXRlcnMuYm91bmRJbnRlcmZhY2VJ
ZGVudGlmaWVyKQogICAgICwgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIocGFy
YW1ldGVycy5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCiAgICAgLCBtX3NvdXJj
ZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcihwYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0
aW9uU2Vjb25kYXJ5SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtTZXNzaW9uQ3VybC5jcHAKaW5kZXggNDJkYjIwYzhhYTgz
MmQwYjQ2OTFjMGRiYjUyMWRiZjA4ZDk3YTk2MC4uMTgzNDhhOGQ1NTc4M2E3YTBiMWQyZmRiZGE0
MWEwNjdmZjA2NzAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
dXJsL05ldHdvcmtTZXNzaW9uQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jdXJsL05ldHdvcmtTZXNzaW9uQ3VybC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogTmV0d29ya1Nlc3Npb25D
dXJsOjpOZXR3b3JrU2Vzc2lvbkN1cmwoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBOZXR3
b3JrU2Vzc2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQsIHBhcmFtZXRl
cnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSkKKyAgICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdvcmtQcm9jZXNzLCBw
YXJhbWV0ZXJzLnNlc3Npb25JRCwgV1RGTW92ZShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVj
dG9yeSksIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQog
ewogICAgIGlmICghcGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZUZpbGUuaXNFbXB0
eSgpKQogICAgICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKS0+c2V0Q29va2llRGF0YWJhc2Uo
bWFrZVVuaXF1ZVJlZjxDb29raWVKYXJEQj4ocGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3Rv
cmFnZUZpbGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAKaW5kZXggNzBkOTEzN2M1OWQ3NjVhMWQ2ZGE0Njk5
YjA0ZGQwODVjZjg1MDljZS4uZjdiYmZhNWM4YTY3NjYxZjc5NDQyNWUxNGY1YmJmMmY1ODZjMjAz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtT
ZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtTZXNzaW9uU291cC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogTmV0d29ya1Nlc3Npb25Tb3VwOjpOZXR3b3Jr
U2Vzc2lvblNvdXAoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBOZXR3b3JrU2Vzc2lvbihu
ZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQsIHBhcmFtZXRlcnMubG9jYWxTdG9y
YWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSkKKyAgICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdvcmtQcm9jZXNzLCBwYXJhbWV0ZXJzLnNl
c3Npb25JRCwgV1RGTW92ZShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSksIHBhcmFt
ZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogewogICAgIG5ldHdv
cmtTdG9yYWdlU2Vzc2lvbigpLT5zZXRDb29raWVPYnNlcnZlckhhbmRsZXIoW3RoaXNdIHsKICAg
ICAgICAgdGhpcy0+bmV0d29ya1Byb2Nlc3MoKS5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXI+
KCktPm5vdGlmeUNvb2tpZXNEaWRDaGFuZ2UobV9zZXNzaW9uSUQpOwo=
</data>
<flag name="review"
          id="389477"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>