<?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>185831</bug_id>
          
          <creation_ts>2018-05-21 12:43:18 -0700</creation_ts>
          <short_desc>[iOS] TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool fails because cookies use different files with/without processpool</short_desc>
          <delta_ts>2018-08-30 11:18:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=144820</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>realdawei</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1425755</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-05-21 12:43:18 -0700</bug_when>
    <thetext>TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool
        2018-05-21 12:14:45.165 TestWebKitAPI[42919:17694317] *** Terminating app due to uncaught exception &apos;NSInternalInconsistencyException&apos;, reason: &apos;Completion handler passed to -[CookieUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:] was not called&apos;
        *** First throw call stack:
        (
        	0   CoreFoundation                      0x0000000111cab1e6 __exceptionPreprocess + 294
        	1   libobjc.A.dylib                     0x00000001112ad031 objc_exception_throw + 48
        	2   CoreFoundation                      0x0000000111d20975 +[NSException raise:format:] + 197
        	3   WebKit                              0x00000001092d55bf _ZN6WebKit28CompletionHandlerCallCheckerD2Ev + 129
        	4   WebKit                              0x00000001092df11c _ZNK3WTF20ThreadSafeRefCountedIN6WebKit28CompletionHandlerCallCheckerELNS_17DestructionThreadE0EE5derefEv + 36
        	5   WebKit                              0x00000001093f0193 _ZZN3WTF8BlockPtrIFvvEE12fromCallableIZN6WebKit10UIDelegate8UIClient18runJavaScriptAlertEPNS4_12WebPageProxyERKNS_6StringEPNS4_13WebFrameProxyERKN7WebCore18SecurityOriginDataEONS_8FunctionIS1_EEE3$_1EES2_T_ENUlPKvE_8__invokeESO_ + 29
        	6   libsystem_blocks.dylib              0x00000001122ea98a _Block_release + 111
        	7   WebKit                              0x00000001093ee344 _ZN6WebKit10UIDelegate8UIClient18runJavaScriptAlertEPNS_12WebPageProxyERKN3WTF6StringEPNS_13WebFrameProxyERKN7WebCore18SecurityOriginDataEONS4_8FunctionIFvvEEE + 376
        	8   WebKit                              0x00000001094e7aa7 _ZN6WebKit12WebPageProxy18runJavaScriptAlertEyRKN7WebCore18SecurityOriginDataERKN3WTF6StringEONS5_17CompletionHandlerIFvvEEE + 199
        	9   WebKit                              0x000000010950c4b9 _ZN3IPC20handleMessageDelayedIN8Messages12WebPageProxy18RunJavaScriptAlertEN6WebKit12WebPageProxyEMS5_FvyRKN7WebCore18SecurityOriginDataERKN3WTF6StringEONSA_17CompletionHandlerIFvvEEEEEEvRNS_10ConnectionERNS_7DecoderERNSt3__110unique_ptrINS_7EncoderENSO_14default_deleteISQ_EEEEPT0_T1_ + 175
        	10  WebKit                              0x000000010930cde7 _ZN3IPC18MessageReceiverMap19dispatchSyncMessageERNS_10ConnectionERNS_7DecoderERNSt3__110unique_ptrINS_7EncoderENS5_14default_deleteIS7_EEEE + 141
        	11  WebKit                              0x0000000109568e94 _ZN6WebKit15WebProcessProxy21didReceiveSyncMessageERN3IPC10ConnectionERNS1_7DecoderERNSt3__110unique_ptrINS1_7EncoderENS6_14default_deleteIS8_EEEE + 28
        	12  WebKit                              0x00000001092d81a9 _ZN3IPC10Connection19dispatchSyncMessageERNS_7DecoderE + 209
        	13  WebKit                              0x00000001092d5b20 _ZN3IPC10Connection15dispatchMessageENSt3__110unique_ptrINS_7DecoderENS1_14default_deleteIS3_EEEE + 104
        	14  WebKit                              0x00000001092d83d1 _ZN3IPC10Connection18dispatchOneMessageEv + 177
        	15  JavaScriptCore                      0x000000010836d9dc _ZN3WTF7RunLoop11performWorkEv + 236
        	16  JavaScriptCore                      0x000000010836dc82 _ZN3WTF7RunLoop11performWorkEPv + 34
        	17  CoreFoundation                      0x0000000111c4dbb1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
        	18  CoreFoundation                      0x0000000111c324af __CFRunLoopDoSources0 + 271
        	19  CoreFoundation                      0x0000000111c31a6f __CFRunLoopRun + 1263
        	20  CoreFoundation                      0x0000000111c3130b CFRunLoopRunSpecific + 635
        	21  Foundation                          0x0000000110ca8b4a -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 274
        	22  TestWebKitAPI                       0x0000000107e56d54 _ZN13TestWebKitAPI4Util3runEPb + 119
        	23  TestWebKitAPI                       0x0000000107e84eb9 _ZN47WebKit_WKHTTPCookieStoreWithoutProcessPool_Test8TestBodyEv + 1849
        	24  TestWebKitAPI                       0x0000000107eb7018 _ZN7testing4Test3RunEv + 92
        	25  TestWebKitAPI                       0x0000000107eb74d6 _ZN7testing8internal12TestInfoImpl3RunEv + 180
        	26  TestWebKitAPI                       0x0000000107eb784e _ZN7testing8TestCase3RunEv + 196
        	27  TestWebKitAPI                       0x0000000107ebaab8 _ZN7testing8internal12UnitTestImpl11RunAllTestsEv + 614
        	28  TestWebKitAPI                       0x0000000107e070a4 _ZN13TestWebKitAPI15TestsController3runEiPPc + 120
        	29  TestWebKitAPI                       0x0000000107e9c0d8 main + 322
        	30  libdyld.dylib                       0x0000000112278955 start + 1
        )
        libc++abi.dylib: terminating with uncaught exception of type NSException
        Child process terminated with signal 6: Abort trap

https://build.webkit.org/builders/Apple%20iOS%2011%20Simulator%20Release%20WK2%20%28Tests%29/builds/5109</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425756</commentid>
    <comment_count>1</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-05-21 12:45:06 -0700</bug_when>
    <thetext>It looks like this started with https://trac.webkit.org/changeset/231999/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425757</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-21 12:47:35 -0700</bug_when>
    <thetext>ASSERT_TRUE(cookies == &quot;PersistentCookieName=CookieValue; SessionCookieName=CookieValue&quot; || cookies == &quot;SessionCookieName=CookieValue; PersistentCookieName=CookieValue&quot;);

We could try EXPECT_TRUE instead of ASSERT_TRUE here, to make sure the completionHandler gets called. However, I think this means the string comparison fails and the test is thus still flaky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426187</commentid>
    <comment_count>3</comment_count>
      <attachid>340990</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-05-22 09:58:26 -0700</bug_when>
    <thetext>Created attachment 340990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426357</commentid>
    <comment_count>4</comment_count>
      <attachid>340990</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-22 15:53:24 -0700</bug_when>
    <thetext>Comment on attachment 340990
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426372</commentid>
    <comment_count>5</comment_count>
      <attachid>340990</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-22 16:20:56 -0700</bug_when>
    <thetext>Comment on attachment 340990
Patch

Clearing flags on attachment: 340990

Committed r232083: &lt;https://trac.webkit.org/changeset/232083&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426373</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-22 16:20:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426374</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-22 16:21:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/40468716&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426736</commentid>
    <comment_count>8</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-05-23 14:24:26 -0700</bug_when>
    <thetext>The test is no longer crashing on iOS after this change, but now it is failing again:

    TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool
        
        /Volumes/Data/slave/ios-simulator-11-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:381
        Value of: cookies == &quot;PersistentCookieName=CookieValue; SessionCookieName=CookieValue&quot; || cookies == &quot;SessionCookieName=CookieValue; PersistentCookieName=CookieValue&quot;
          Actual: false
        Expected: true
        
https://build.webkit.org/builders/Apple%20iOS%2011%20Simulator%20Release%20WK2%20%28Tests%29/builds/5186</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426977</commentid>
    <comment_count>9</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-05-24 10:39:47 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426978</commentid>
    <comment_count>10</comment_count>
      <attachid>341206</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-05-24 10:39:48 -0700</bug_when>
    <thetext>Created attachment 341206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427918</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-28 05:56:59 -0700</bug_when>
    <thetext>The TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool test is still failing on the iOS 11 Simulator WK2 tests.  For example:

&lt;https://build.webkit.org/builders/Apple%20iOS%2011%20Simulator%20Release%20WK2%20(Tests)/builds/5259&gt;

Ran 1590 tests of 1611 with 1589 successful
------------------------------
Test suite failed

Failed

    TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool
        
        /Volumes/Data/slave/ios-simulator-11-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:436
        Value of: cookies == &quot;PersistentCookieName=CookieValue; SessionCookieName=CookieValue&quot; || cookies == &quot;SessionCookieName=CookieValue; PersistentCookieName=CookieValue&quot;
          Actual: false
        Expected: true
        

Testing completed, Exit status: 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427919</commentid>
    <comment_count>12</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-28 05:57:39 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #11)
&gt; The TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool test is still
&gt; failing on the iOS 11 Simulator WK2 tests.  For example:
&gt; 
&gt; &lt;https://build.webkit.org/builders/
&gt; Apple%20iOS%2011%20Simulator%20Release%20WK2%20(Tests)/builds/5259&gt;
&gt; 
&gt; Ran 1590 tests of 1611 with 1589 successful
&gt; ------------------------------
&gt; Test suite failed
&gt; 
&gt; Failed
&gt; 
&gt;     TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool
&gt;         
&gt;        
&gt; /Volumes/Data/slave/ios-simulator-11-release/build/Tools/TestWebKitAPI/Tests/
&gt; WebKitCocoa/WKHTTPCookieStore.mm:436
&gt;         Value of: cookies == &quot;PersistentCookieName=CookieValue;
&gt; SessionCookieName=CookieValue&quot; || cookies == &quot;SessionCookieName=CookieValue;
&gt; PersistentCookieName=CookieValue&quot;
&gt;           Actual: false
&gt;         Expected: true
&gt;         
&gt; 
&gt; Testing completed, Exit status: 3

Oops!  Didn&apos;t see Comment #8 before posting this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427920</commentid>
    <comment_count>13</comment_count>
      <attachid>341206</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-28 06:04:29 -0700</bug_when>
    <thetext>Comment on attachment 341206
Patch

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

r=me, but consider making changes in feedback.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:380
&gt; -    auto cookies = String(message.UTF8String);
&gt; -    EXPECT_TRUE(cookies == &quot;PersistentCookieName=CookieValue; SessionCookieName=CookieValue&quot; || cookies == &quot;SessionCookieName=CookieValue; PersistentCookieName=CookieValue&quot;);
&gt; +    EXPECT_STREQ(&quot;PersistentCookieName=CookieValue,SessionCookieName=CookieValue&quot;, message.UTF8String);

Much better to use EXPECT_STREQ() here so we can see how the strings differ when they fail!

Reminder: The expected value will change from using a comma to a semi-colon if #2 is changed below.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:401
&gt; -    NSString *alertCookieHTML = @&quot;&lt;script&gt;alert(document.cookie);&lt;/script&gt;&quot;;
&gt; +    NSString *alertCookieHTML = @&quot;&lt;script&gt;var cookies = document.cookie.split(&apos;;&apos;); for (let i = 0; i &lt; cookies.length; i ++) {cookies[i] = cookies[i].trim();} cookies.sort(); alert(cookies);&lt;/script&gt;&quot;;

This is okay, but two things:

1. There should be spaces around the &apos;{&apos; and &apos;}&apos; brackets in the inline JavaScript.
2. It looks like alert(cookies) uses a comma to separate cookies; I would prefer you use join(&apos;;&apos;) so the list still looks cookie-like.

    NSString *alertCookieHTML = @&quot;&lt;script&gt;var cookies = document.cookie.split(&apos;;&apos;); for (let i = 0; i &lt; cookies.length; i ++) { cookies[i] = cookies[i].trim(); } cookies.sort(); alert(cookies.join(&apos;;&apos;));&lt;/script&gt;&quot;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427991</commentid>
    <comment_count>14</comment_count>
      <attachid>341464</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-05-28 19:08:37 -0700</bug_when>
    <thetext>Created attachment 341464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428049</commentid>
    <comment_count>15</comment_count>
      <attachid>341464</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-29 03:55:12 -0700</bug_when>
    <thetext>Comment on attachment 341464
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428886</commentid>
    <comment_count>16</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-05-31 10:27:14 -0700</bug_when>
    <thetext>Any reason not to land this? It would be good to get this test passing on the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428899</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-31 10:52:27 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #16)
&gt; Any reason not to land this? It would be good to get this test passing on
&gt; the bots.

Looking at the patch, I do not think it will fix the flakiness/failure on the bots. It will merely provide more useful output when failing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428904</commentid>
    <comment_count>18</comment_count>
      <attachid>341464</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-31 11:05:00 -0700</bug_when>
    <thetext>Comment on attachment 341464
Patch

Clearing flags on attachment: 341464

Committed r232357: &lt;https://trac.webkit.org/changeset/232357&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428905</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-31 11:05:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429236</commentid>
    <comment_count>20</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-06-01 09:03:35 -0700</bug_when>
    <thetext>Here is the failure output now:

    TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool
        
        /Volumes/Data/slave/ios-simulator-11-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:471
        Value of: message.UTF8String
          Actual: &quot;SessionCookieName=CookieValue&quot;
        Expected: &quot;PersistentCookieName=CookieValue; SessionCookieName=CookieValue&quot;

https://build.webkit.org/builders/Apple%20iOS%2011%20Simulator%20Release%20WK2%20%28Tests%29/builds/5348/steps/run-api-tests/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455288</commentid>
    <comment_count>21</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-08-30 11:02:12 -0700</bug_when>
    <thetext>What is the current state of this bug? It seems like the first patch here got reverted in https://trac.webkit.org/r234730</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455306</commentid>
    <comment_count>22</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-08-30 11:18:50 -0700</bug_when>
    <thetext>We disabled this test on iOS as the change is breaking some apps. The problem is that network process may not have access to the cookie storage file the UI process is using because of sandbox.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340990</attachid>
            <date>2018-05-22 09:58:26 -0700</date>
            <delta_ts>2018-05-24 10:39:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185831-20180522095825.patch</filename>
            <type>text/plain</type>
            <size>10414</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBjNjA1NmFmZDg2MDc1NmNl
YjA3Yjc5ZmFhYTNlNzE0MGMxMzMxYjYuLjBlMDUxZjIyYzU1MzAzOGNhZjYzOTQwYjgzZmEwMzlm
YTg2MDNhNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTgtMDUtMjIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gVGVzdFdlYktpdEFQSS5X
ZWJLaXQuV0tIVFRQQ29va2llU3RvcmVXaXRob3V0UHJvY2Vzc1Bvb2wgZmFpbHMgYmVjYXVzZSBj
b29raWVzIHVzZSBkaWZmZXJlbnQgZmlsZXMgd2l0aC93aXRob3V0IHByb2Nlc3Nwb29sCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU4MzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydGVkIHRvIHVz
ZSB1aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllciBmb3IgaU9TOiBtYWtlIHN1cmUgY29v
a2llcyBoYW5kbGVkIHdpdGhvdXQgCisgICAgICAgIHByb2Nlc3Nwb29sIHdvdWxkIHVzZSB0aGUg
c2FtZSBzdG9yYWdlIGZpbGUgYXMgd2hlbiBwcm9jZXNzcG9vbCBleGlzdHMuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5l
dHdvcmtQcm9jZXNzQ29jb2EpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9y
bUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisKIDIwMTgtMDUtMjEgIFNpaHVpIExpdSAgPHNp
aHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgZGlza0NhY2hlU2l6ZU92ZXJyaWRl
IGFjY2Vzc29yIGZ1bmN0aW9uIG9uIFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBkM2E3OTBiOTM1
OWZkYTRkNGM3MWRhY2E1MDcxMGI4MzI1MTcyYzdmLi5kYWI0ZjI0NjNjODgyYTZlMzg3MTQzYTFi
MTgwZDZkYjlkMzk5NzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCkBAIC0yNDQsNyArMjQ0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBQbGF0Zm9y
bSBIZWxwZXJzCiAgICAgdm9pZCBwbGF0Zm9ybVNldFVSTENhY2hlU2l6ZSh1bnNpZ25lZCB1cmxD
YWNoZU1lbW9yeUNhcGFjaXR5LCB1aW50NjRfdCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7CiAKLSNp
ZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgc3RhdGljIHZvaWQgc2V0
U2hhcmVkSFRUUENvb2tpZVN0b3JhZ2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpZGVudGlmaWVy
KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGExYjIy
YjljMzg1YmExMDRjZTg0MWZkM2EzMWRlYWVlZWU3M2FlZTIuLmQ2MWNmZjhkMDBhNDc0ZDczMDhh
YjM4YzRhOGU2MzNmZWFmZWVmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgRU5BQkxFKE5FVFdPUktf
Q0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKQogICAgIGVuY29kZXIgPDwgc2hvdWxkRW5h
YmxlTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb247CiAjZW5kaWYKLSNpZiBQTEFU
Rk9STShNQUMpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgZW5jb2RlciA8PCB1aVByb2Nlc3ND
b29raWVTdG9yYWdlSWRlbnRpZmllcjsKICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKQEAgLTE2
Nyw3ICsxNjcsNyBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvYwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0LnNob3VsZEVuYWJsZU5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUmV2YWxpZGF0
aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKQor
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVpUHJv
Y2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggZWQ2OTM4MzY1MTNiZDY0Y2I1
NDZjMTQ5MmYwM2JkNWMxN2YxNTJkNi4uMjViYzA4ZjU1Y2Y3YTRmNmU3MWU5MDFmYjAwMjYzNWI1
ZDk0NTk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNjcsNyArNjcsNyBA
QCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogI2lmIEVOQUJMRShO
RVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikKICAgICBib29sIHNob3VsZEVu
YWJsZU5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIHsgZmFsc2UgfTsKICNlbmRp
ZgotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBWZWN0b3I8dWlu
dDhfdD4gdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7CiAjZW5kaWYKICNpZiBQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5kZXggZGI5ZGMzOGQ3YTBkYzFjNmZkN2JmZjNh
MGE0YjgyMTE1ZTdkN2JhMC4uZTNmMThhY2Q0YmIzZTEwYmYxZDljMDBhNDk2NWEzYjAwYjg2Yjlh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
UHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtOTUsNyArOTUsNyBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKGNvbnN0IE5ldHdvcmtQ
cm9jZXNzQwogCiAgICAgaW5pdGlhbGl6ZU5ldHdvcmtTZXR0aW5ncygpOwogCi0jaWYgUExBVEZP
Uk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHNldFNoYXJlZEhUVFBDb29raWVTdG9y
YWdlKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIpOwogI2VuZGlm
CiAKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckRpc2tDYWNo
ZShXYWxsVGltZSBtb2RpZmllZFNpbmNlLCBGdW5jdGlvbjx2b2lkICgpPiYmCiAgICAgY2xlYXJO
U1VSTENhY2hlKG1fY2xlYXJDYWNoZURpc3BhdGNoR3JvdXAsIG1vZGlmaWVkU2luY2UsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFU
Rk9STShDT0NPQSkKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNoYXJlZEhUVFBDb29raWVTdG9y
YWdlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoaGFz
UHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCmluZGV4IGMzYzUwM2RiYTEyNmQ1ZjY5NDJjMDlhNTFlNjUyZjQxNWUwOTc1YWEu
LjlhMTY1OTcwNmVlNmVlMGIzYTYxNjY0MTdmNjBmZjg5Nzc0MDE3YWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBA
IC01Nyw3ICs1Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1lZGlhQ2FjaGVE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAgICAgZW5jb2RlciA8PCBqYXZhU2NyaXB0Q29uZmln
dXJhdGlvbkRpcmVjdG9yeTsKICAgICBlbmNvZGVyIDw8IGphdmFTY3JpcHRDb25maWd1cmF0aW9u
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVy
OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMjA5LDcgKzIwOSw3IEBAIGJvb2wgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
V2ViUHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBwYXJhbWV0ZXJzLmph
dmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgq
amF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogCi0jaWYg
UExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcikpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDIxZjkxNTE3NTBhNmQ4NTgxMjVkMDIy
ZDdjZTc4MzczNTkxODhhZTAuLjgxZDM0N2UyZjIwN2FhZjllZjVlNTU4NTQ2ZDFmNzFmNTVhN2M4
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKQEAgLTc5LDcgKzc5LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgewogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtZWRpYUNhY2hlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIFN0cmluZyBqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRp
cmVjdG9yeTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgamF2YVNjcmlwdENvbmZpZ3Vy
YXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIFZlY3Rvcjx1aW50OF90PiB1aVByb2Nlc3NDb29raWVTdG9yYWdl
SWRlbnRpZmllcjsKICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDM4MjM5
NDVkMTdkYzIwZDcxYjdiMTRjMjA1MjFkNDgyNTQ1ZjlhNmEuLjQ3MDM4MjQzOTA3NTk5ZDk4ZWRh
Y2Y0YzZjMjEyNTc5NzA1NGQzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMjQ2LDcgKzI0Niw3IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYKICAgICB9CiAgICAgcGFyYW1ldGVycy5uZXR3b3JrQVRTQ29udGV4
dCA9IGFkb3B0Q0YoX0NGTmV0d29ya0NvcHlBVFNDb250ZXh0KCkpOwogCi0jaWYgUExBVEZPUk0o
TUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIEFTU0VSVChwYXJhbWV0ZXJzLnVpUHJvY2Vz
c0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKGhhc1Byb2Nl
c3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogICAg
IHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIgPSBpZGVudGlmeWlu
Z0RhdGFGcm9tQ29va2llU3RvcmFnZShbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENv
b2tpZVN0b3JhZ2VdIF9jb29raWVTdG9yYWdlXSk7CkBAIC0zMDksNyArMzA5LDcgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmEKICAgICBwYXJhbWV0ZXJzLnNob3VsZFN1cHByZXNzTWVtb3J5UHJl
c3N1cmVIYW5kbGVyID0gW2RlZmF1bHRzIGJvb2xGb3JLZXk6V2ViS2l0U3VwcHJlc3NNZW1vcnlQ
cmVzc3VyZUhhbmRsZXJEZWZhdWx0c0tleV07CiAgICAgcGFyYW1ldGVycy5sb2FkVGhyb3R0bGVM
YXRlbmN5ID0gU2Vjb25kcyB7IFtkZWZhdWx0cyBpbnRlZ2VyRm9yS2V5OldlYktpdE5ldHdvcmtM
b2FkVGhyb3R0bGVMYXRlbmN5TWlsbGlzZWNvbmRzRGVmYXVsdHNLZXldIC8gMTAwMC4gfTsKIAot
I2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBBU1NFUlQocGFyYW1l
dGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5pc0VtcHR5KCkpOwogICAgIEFT
U0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nv
b2tpZXMpKTsKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVy
ID0gaWRlbnRpZnlpbmdEYXRhRnJvbUNvb2tpZVN0b3JhZ2UoW1tOU0hUVFBDb29raWVTdG9yYWdl
IHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBfY29va2llU3RvcmFnZV0pOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRiNTVlM2M4ODNkYTcxMGIw
M2U4Y2Q5YTFmMjJiOTc5ODdjYzY3MWMuLjk2NWQwNGU4YjhjOTk1YTUwNzYwOWI5M2IxOGUxNTE0
N2M0NDkxYWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wNS0yMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFw
cGxlLmNvbT4KKworICAgICAgICBbaU9TXSBUZXN0V2ViS2l0QVBJLldlYktpdC5XS0hUVFBDb29r
aWVTdG9yZVdpdGhvdXRQcm9jZXNzUG9vbCBpcyBjcmFzaGluZyB3aXRoIHJlYXNvbjogJ0NvbXBs
ZXRpb24gaGFuZGxlciBwYXNzZWQgdG8gLVtDb29raWVVSURlbGVnYXRlIHdlYlZpZXc6cnVuSmF2
YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25I
YW5kbGVyOl0gd2FzIG5vdCBjYWxsZWQnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODU4MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGVkIHRoZSB0ZXN0IHRvIHByZXZlbnQgY3Jhc2ggYWZ0ZXIg
YXNzZXJ0aW9uIGZhaWxzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbToKKyAgICAgICAgKC1bQ29va2llVUlEZWxlZ2F0ZSB3
ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFt
ZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKwogMjAxOC0wNS0yMSAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBDb21wbGV0ZSBmaXggZm9yIGVuYWJsaW5nIG1vZGVy
biBFTUUgYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0KaW5kZXggYjllN2EyYjgxMTE0ZDUz
ZjllNTRlNGQ1NjQxNDFhYTdmZTBmNjc3YS4uZGViMDlhMTI3ZWEwZTcwZGQ3ZWE0NTkyMjc0MDQ1
ZWViZmM3Nzg3MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCkBAIC0zNzgsNyArMzc4LDcgQEAgQGlt
cGxlbWVudGF0aW9uIENvb2tpZVVJRGVsZWdhdGUKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAq
KW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBhdXRvIGNv
b2tpZXMgPSBTdHJpbmcobWVzc2FnZS5VVEY4U3RyaW5nKTsKLSAgICBBU1NFUlRfVFJVRShjb29r
aWVzID09ICJQZXJzaXN0ZW50Q29va2llTmFtZT1Db29raWVWYWx1ZTsgU2Vzc2lvbkNvb2tpZU5h
bWU9Q29va2llVmFsdWUiIHx8IGNvb2tpZXMgPT0gIlNlc3Npb25Db29raWVOYW1lPUNvb2tpZVZh
bHVlOyBQZXJzaXN0ZW50Q29va2llTmFtZT1Db29raWVWYWx1ZSIpOworICAgIEVYUEVDVF9UUlVF
KGNvb2tpZXMgPT0gIlBlcnNpc3RlbnRDb29raWVOYW1lPUNvb2tpZVZhbHVlOyBTZXNzaW9uQ29v
a2llTmFtZT1Db29raWVWYWx1ZSIgfHwgY29va2llcyA9PSAiU2Vzc2lvbkNvb2tpZU5hbWU9Q29v
a2llVmFsdWU7IFBlcnNpc3RlbnRDb29raWVOYW1lPUNvb2tpZVZhbHVlIik7CiAgICAgZmluaXNo
ZWQgPSB0cnVlOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341206</attachid>
            <date>2018-05-24 10:39:48 -0700</date>
            <delta_ts>2018-05-28 19:08:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185831-20180524103948.patch</filename>
            <type>text/plain</type>
            <size>2428</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMTQwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjg0YTVjMWM5NmE5ZjJhMmE4NzBmNDQ0NjM4MmYwMjBl
YmRhMDdjMC4uZjY0NzVkNjQ3N2RkYTBmYThiYTI2NDNjMWY5OWNmMzA0ZGYzNWUyZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE4LTA1LTI0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAg
ICAgIFtpT1NdIFRlc3RXZWJLaXRBUEkuV2ViS2l0LldLSFRUUENvb2tpZVN0b3JlV2l0aG91dFBy
b2Nlc3NQb29sIGZhaWxzIGJlY2F1c2UgY29va2llcyB1c2UgZGlmZmVyZW50IGZpbGVzIHdpdGgv
d2l0aG91dCBwcm9jZXNzcG9vbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg1ODMxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MDQ2ODcxNj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29va2llU3RvcmUubW06CisgICAgICAgICgt
W0Nvb2tpZVVJRGVsZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNz
YWdlOmluaXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgIChURVNU
KToKKwogMjAxOC0wNS0yMyAgUm95IFJlYXBvciAgPHJyZWFwb3JAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVzZSBIZWx2ZXRpY2Egb24gYnVpbGQud2Via2l0Lm9yZyB3ZWJwYWdlcwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVTdG9y
ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29va2ll
U3RvcmUubW0KaW5kZXggZGViMDlhMTI3ZWEwZTcwZGQ3ZWE0NTkyMjc0MDQ1ZWViZmM3Nzg3MS4u
NmY3N2Q5MTZmMTllYzdiOTkyNjYxZjk3MmVkYjVlNWNjOWI0MzhkMCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSFRUUENvb2tpZVN0
b3JlLm1tCkBAIC0zNzcsOCArMzc3LDcgQEAgQGVuZAogQGltcGxlbWVudGF0aW9uIENvb2tpZVVJ
RGVsZWdhdGUKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2Ny
aXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlG
cmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9p
ZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBhdXRvIGNvb2tpZXMgPSBTdHJpbmcobWVzc2Fn
ZS5VVEY4U3RyaW5nKTsKLSAgICBFWFBFQ1RfVFJVRShjb29raWVzID09ICJQZXJzaXN0ZW50Q29v
a2llTmFtZT1Db29raWVWYWx1ZTsgU2Vzc2lvbkNvb2tpZU5hbWU9Q29va2llVmFsdWUiIHx8IGNv
b2tpZXMgPT0gIlNlc3Npb25Db29raWVOYW1lPUNvb2tpZVZhbHVlOyBQZXJzaXN0ZW50Q29va2ll
TmFtZT1Db29raWVWYWx1ZSIpOworICAgIEVYUEVDVF9TVFJFUSgiUGVyc2lzdGVudENvb2tpZU5h
bWU9Q29va2llVmFsdWUsU2Vzc2lvbkNvb2tpZU5hbWU9Q29va2llVmFsdWUiLCBtZXNzYWdlLlVU
RjhTdHJpbmcpOwogICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogfQpAQCAtMzk5LDcgKzM5OCw3IEBAIFRFU1QoV2ViS2l0LCBXS0hUVFBDb29raWVTdG9yZVdp
dGhvdXRQcm9jZXNzUG9vbCkKICAgICAgICAgTlNIVFRQQ29va2llRG9tYWluOiBAIjEyNy4wLjAu
MSIsCiAgICAgICAgIE5TSFRUUENvb2tpZUV4cGlyZXM6IFtOU0RhdGUgZGlzdGFudEZ1dHVyZV0s
CiAgICAgfV07Ci0gICAgTlNTdHJpbmcgKmFsZXJ0Q29va2llSFRNTCA9IEAiPHNjcmlwdD5hbGVy
dChkb2N1bWVudC5jb29raWUpOzwvc2NyaXB0PiI7CisgICAgTlNTdHJpbmcgKmFsZXJ0Q29va2ll
SFRNTCA9IEAiPHNjcmlwdD52YXIgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycp
OyBmb3IgKGxldCBpID0gMDsgaSA8IGNvb2tpZXMubGVuZ3RoOyBpICsrKSB7Y29va2llc1tpXSA9
IGNvb2tpZXNbaV0udHJpbSgpO30gY29va2llcy5zb3J0KCk7IGFsZXJ0KGNvb2tpZXMpOzwvc2Ny
aXB0PiI7CiAKICAgICAvLyBOb25QZXJzaXN0ZW50RGF0YVN0b3JlCiAgICAgUmV0YWluUHRyPFdL
V2Vic2l0ZURhdGFTdG9yZT4gZXBoZW1lcmFsU3RvcmVXaXRoQ29va2llcyA9IFtXS1dlYnNpdGVE
YXRhU3RvcmUgbm9uUGVyc2lzdGVudERhdGFTdG9yZV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341464</attachid>
            <date>2018-05-28 19:08:37 -0700</date>
            <delta_ts>2018-05-31 11:05:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185831-20180528190837.patch</filename>
            <type>text/plain</type>
            <size>2498</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMjUwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWI3MjYxZjFhMzc3YzM2MjAzOTc1NzM3MGVhNGQ5ZjMz
YjJkMTQyMy4uYTcxYWZhYmUyMWM3OWFkYjAxMWE1YjgzZTA5Mjk4NDQxZGVmNjBhYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE4LTA1LTI4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAg
ICAgIFtpT1NdIFRlc3RXZWJLaXRBUEkuV2ViS2l0LldLSFRUUENvb2tpZVN0b3JlV2l0aG91dFBy
b2Nlc3NQb29sIGZhaWxzIGJlY2F1c2UgY29va2llcyB1c2UgZGlmZmVyZW50IGZpbGVzIHdpdGgv
d2l0aG91dCBwcm9jZXNzcG9vbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg1ODMxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MDQ2ODcxNj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tOgorICAgICAgICAoLVtD
b29raWVVSURlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2Fn
ZTppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoVEVTVCk6
CisKIDIwMTgtMDUtMjggIFRoaWJhdWx0IFNhdW5pZXIgIDx0c2F1bmllckBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHU3RyZWFtZXJdIEhhbmRsZSBjaGFuZ2VzIGluIHRoZSAiZHJtLXByZWZlcnJl
ZC1kZWNyeXB0aW9uLXN5c3RlbS1pZCIgTkVFRF9DT05URVhUIG1lc3NhZ2UuCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSFRUUENvb2tpZVN0b3Jl
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVT
dG9yZS5tbQppbmRleCA4Zjk0YjM0ZDZkMDNhODVjYWI3N2FkN2VjNzE4NzgzODllOTA0NjdmLi5h
ZmU0M2VkNGU1ODY0NzIyNTk5MTVjZTQxNzBlZGRhYWZkOWQxZjU5IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29va2llU3Rv
cmUubW0KQEAgLTQzMiw4ICs0MzIsNyBAQCBAZW5kCiBAaW1wbGVtZW50YXRpb24gQ29va2llVUlE
ZWxlZ2F0ZQogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3Jp
cHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZy
YW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lk
KSljb21wbGV0aW9uSGFuZGxlcgogewotICAgIGF1dG8gY29va2llcyA9IFN0cmluZyhtZXNzYWdl
LlVURjhTdHJpbmcpOwotICAgIEVYUEVDVF9UUlVFKGNvb2tpZXMgPT0gIlBlcnNpc3RlbnRDb29r
aWVOYW1lPUNvb2tpZVZhbHVlOyBTZXNzaW9uQ29va2llTmFtZT1Db29raWVWYWx1ZSIgfHwgY29v
a2llcyA9PSAiU2Vzc2lvbkNvb2tpZU5hbWU9Q29va2llVmFsdWU7IFBlcnNpc3RlbnRDb29raWVO
YW1lPUNvb2tpZVZhbHVlIik7CisgICAgRVhQRUNUX1NUUkVRKCJQZXJzaXN0ZW50Q29va2llTmFt
ZT1Db29raWVWYWx1ZTsgU2Vzc2lvbkNvb2tpZU5hbWU9Q29va2llVmFsdWUiLCBtZXNzYWdlLlVU
RjhTdHJpbmcpOwogICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogfQpAQCAtNDU0LDcgKzQ1Myw3IEBAIFRFU1QoV2ViS2l0LCBXS0hUVFBDb29raWVTdG9yZVdp
dGhvdXRQcm9jZXNzUG9vbCkKICAgICAgICAgTlNIVFRQQ29va2llRG9tYWluOiBAIjEyNy4wLjAu
MSIsCiAgICAgICAgIE5TSFRUUENvb2tpZUV4cGlyZXM6IFtOU0RhdGUgZGlzdGFudEZ1dHVyZV0s
CiAgICAgfV07Ci0gICAgTlNTdHJpbmcgKmFsZXJ0Q29va2llSFRNTCA9IEAiPHNjcmlwdD5hbGVy
dChkb2N1bWVudC5jb29raWUpOzwvc2NyaXB0PiI7CisgICAgTlNTdHJpbmcgKmFsZXJ0Q29va2ll
SFRNTCA9IEAiPHNjcmlwdD52YXIgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycp
OyBmb3IgKGxldCBpID0gMDsgaSA8IGNvb2tpZXMubGVuZ3RoOyBpICsrKSB7IGNvb2tpZXNbaV0g
PSBjb29raWVzW2ldLnRyaW0oKTsgfSBjb29raWVzLnNvcnQoKTsgYWxlcnQoY29va2llcy5qb2lu
KCc7ICcpKTs8L3NjcmlwdD4iOwogCiAgICAgLy8gTm9uUGVyc2lzdGVudERhdGFTdG9yZQogICAg
IFJldGFpblB0cjxXS1dlYnNpdGVEYXRhU3RvcmU+IGVwaGVtZXJhbFN0b3JlV2l0aENvb2tpZXMg
PSBbV0tXZWJzaXRlRGF0YVN0b3JlIG5vblBlcnNpc3RlbnREYXRhU3RvcmVdOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>