<?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>174895</bug_id>
          
          <creation_ts>2017-07-27 08:53:42 -0700</creation_ts>
          <short_desc>WKURLSchemeTaskImpl instances are being abandoned (except if the task is stopped)</short_desc>
          <delta_ts>2017-07-28 13:03:48 -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>WebKit API</component>
          <version>WebKit Local 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>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1332651</commentid>
    <comment_count>0</comment_count>
      <attachid>316550</attachid>
    <who name="">mitz</who>
    <bug_when>2017-07-27 08:53:42 -0700</bug_when>
    <thetext>Created attachment 316550
Test project

WKURLSchemeTaskImpl instances are being abandoned whenever the task completes without being stopped.

To reproduce: build and run the attached program, click the Load button a few times, then click the End button to get the WKWebView deallocated (not that it should matter). Then use a heap inspection tool (Xcode’s memory graph viewer or just &quot;heap TestSchemeHandler -addresses WKURLSchemeTaskImpl&quot;) to see if there are any remaining WKURLSchemeTaskImpl instances.

Note: The instances don’t seem to be leaked, just abandoned. The API::URLSchemeTask has a strong reference to its WebURLSchemeTask which holds a reference to the WebURLSchemeHandler, which holds references to all its unstopped tasks (I think that’s the cycle that should get broken, but currently only gets broken upon stop, not upon completion).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332653</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-07-27 08:54:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/33568276&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332893</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-07-27 22:58:08 -0700</bug_when>
    <thetext>Great test project, thanks!

Since writing an automated regression test for this would either:
1 - Be impossible
2 - Require SPI specific to getting heap counts just for testing, which is a practice that this bug reporter doesn&apos;t agree with in its current form

...I verified this upcoming fix manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332894</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-07-27 22:58:51 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #2)
&gt; Great test project, thanks!
&gt; 
&gt; Since writing an automated regression test for this would either:
&gt; 1 - Be impossible
&gt; 2 - Require SPI specific to getting heap counts just for testing, which is a
&gt; practice that this bug reporter doesn&apos;t agree with in its current form
&gt; 
&gt; ...I verified this upcoming fix manually.

(Both by checking heaps and by adding some logging to an API::URLSchemeTask destructor)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332895</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-07-27 23:00:52 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #2)
&gt; Great test project, thanks!
&gt; 
&gt; Since writing an automated regression test for this would either:
&gt; 1 - Be impossible
&gt; 2 - Require SPI specific to getting heap counts just for testing, which is a
&gt; practice that this bug reporter doesn&apos;t agree with in its current form

It’s neither. It should be testable using an Objective-C weak pointer to the WKURLSchemeTaskImpl. We may already have a test along those lines in TestWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332896</commentid>
    <comment_count>5</comment_count>
      <attachid>316622</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-07-27 23:07:47 -0700</bug_when>
    <thetext>Created attachment 316622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332899</commentid>
    <comment_count>6</comment_count>
      <attachid>316622</attachid>
    <who name="">mitz</who>
    <bug_when>2017-07-27 23:14:01 -0700</bug_when>
    <thetext>Comment on attachment 316622
Patch

Are there other possible scenarios where this bug can happen? For example, if a request has not completed and one of these things happens, will the task be stopped?

1. The web view is closed and deallocated
2. The Web Content process crashes
3. The Networking process crashes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332905</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-07-27 23:36:50 -0700</bug_when>
    <thetext>(In reply to mitz from comment #6)
&gt; Comment on attachment 316622 [details]
&gt; Patch
&gt; 
&gt; Are there other possible scenarios where this bug can happen? 
&gt; For example, if a request has not completed and one of these things happens, will the
&gt; task be stopped?
&gt; 
&gt; 1. The web view is closed and deallocated

Yes, the task is stopped.

&gt; 2. The Web Content process crashes
&gt; 3. The Networking process crashes

Let&apos;s see!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332906</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-07-27 23:39:22 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #7)
&gt; (In reply to mitz from comment #6)
&gt; 
&gt; &gt; 2. The Web Content process crashes
&gt; &gt; 3. The Networking process crashes
&gt; 
&gt; Let&apos;s see!

For both of these cases, no.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332907</commentid>
    <comment_count>9</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-07-27 23:40:57 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #8)
&gt; (In reply to Brady Eidson from comment #7)
&gt; &gt; (In reply to mitz from comment #6)
&gt; &gt; 
&gt; &gt; &gt; 2. The Web Content process crashes
&gt; &gt; &gt; 3. The Networking process crashes
&gt; &gt; 
&gt; &gt; Let&apos;s see!
&gt; 
&gt; For both of these cases, no.

These exceptional cases don’t need to be addressed as part of this bug, but they should be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332973</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-07-28 09:41:15 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #7)
&gt; (In reply to mitz from comment #6)
&gt; &gt; 
&gt; &gt; 1. The web view is closed and deallocated
&gt; 
&gt; Yes, the task is stopped.

This was wrong because the test app explicitly called stopLoading.

Removing that call reintroduces the leak.

Exploring now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332977</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-07-28 09:45:21 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #10)
&gt; (In reply to Brady Eidson from comment #7)
&gt; &gt; (In reply to mitz from comment #6)
&gt; &gt; &gt; 
&gt; &gt; &gt; 1. The web view is closed and deallocated
&gt; &gt; 
&gt; &gt; Yes, the task is stopped.
&gt; 
&gt; This was wrong because the test app explicitly called stopLoading.
&gt; 
&gt; Removing that call reintroduces the leak.
&gt; 
&gt; Exploring now.

When the WKWebView is torn down on the UIProcess side, it tells the WebProcess side.

In the WebProcess, it does *try* to stop these loaders, but it messages back to the WebPageProxy, which is already torn down (see previous step) so it never gets the message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332995</commentid>
    <comment_count>12</comment_count>
      <attachid>316647</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-07-28 10:52:14 -0700</bug_when>
    <thetext>Created attachment 316647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333019</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-07-28 11:32:14 -0700</bug_when>
    <thetext>In person we&apos;ve discussed a few testing strategies for this, and have some ideas.

Going to land the patch as-is, and followup with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333054</commentid>
    <comment_count>14</comment_count>
      <attachid>316647</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-28 13:03:46 -0700</bug_when>
    <thetext>Comment on attachment 316647
Patch

Clearing flags on attachment: 316647

Committed r220011: &lt;http://trac.webkit.org/changeset/220011&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333055</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-28 13:03:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>316550</attachid>
            <date>2017-07-27 08:53:42 -0700</date>
            <delta_ts>2017-07-27 08:53:42 -0700</delta_ts>
            <desc>Test project</desc>
            <filename>TestSchemeHandler.zip</filename>
            <type>application/zip</type>
            <size>13912</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAANFA+0oAAAAAAAAAAAAAAAASABAAVGVzdFNjaGVtZUhhbmRsZXIvVVgMAGwMell6
AXpZ9QFQAFBLAwQKAAAAAAAlRPtKAAAAAAAAAAAAAAAAJAAQAFRlc3RTY2hlbWVIYW5kbGVyL1Rl
c3RTY2hlbWVIYW5kbGVyL1VYDABsDHpZtQd6WfUBUABQSwMEFAAIAAgA0ED7SgAAAAAAAAAAAAAA
ADEAEABUZXN0U2NoZW1lSGFuZGxlci9UZXN0U2NoZW1lSGFuZGxlci9BcHBEZWxlZ2F0ZS5oVVgM
AHgBell4AXpZ9QFQAE2OQQ6CMBBF9z3FJO6psiExxoCw0A0u8AKlfKGmTElpTDiS1/BkAsbEzSz+
fy9/pBRSEmXDUMCiVQFRtyY3jKHSHXqcFTcWfk7XIveYqYbqiQrFdILnMcAwOaZExoncJdEXdMPk
TdsFer8o3u6SZcWCLqwjyqyltRzJY4R/olksITamH5wPdMiddkquN+qOQqSGA/xdafx/S3sqq2v9
gJ6VsloWjFbBOP4RsypScCPEB1BLBwizZOsRsQAAAOwAAABQSwMEFAAIAAgAJUT7SgAAAAAAAAAA
AAAAADEAEABUZXN0U2NoZW1lSGFuZGxlci9UZXN0U2NoZW1lSGFuZGxlci9BcHBEZWxlZ2F0ZS5t
VVgMALUHelm1B3pZ9QFQAKVU227aQBB991eMqCLZSQppXlKZNiI3FJSESkDKA6JosQezitl1d9cQ
0uaD+hv9ss76kmDaRKpiCbw7Mztz5sxZNxpOowFwkiTnGGPEDNYXmWWA2vSDOS7wkokwRkXWzHGm
kKJCmK7hnAk4RSW0QS5ACjhqHB41PhzV80CZrBWP5gZ+/4LDgw9HtkqM0BFBHU7iGDKnBoUa1RJD
e8px3vFFIpWB2iakec1xWoVjiNMrbprWIAyqGQtwEz64HnwaXt32rivojyk+UTJBZdbgrpDdedA5
/ZKaGA10+0MuQrmC3VX2br4a+5UjRS7pn0C8B7dzehIYLoUXSxb6Lg89jSJE1aw4yVTxOS1a5F3F
BFMYZsMqnfxwgJ7hFXWc15ys8lUzc3T7tx1iIEIFk0Cmloym85hBWkqqxFbsDttKLrp86mzlOpNi
xqNU5UV3g8r2M4xGL0SyOJbBGLjgZpyjGFXPajTb1Psa4xnMpHpy+K2aIXnVKEWWo+yrWnmz2JCb
eVsxOjqxxNen1G+ooVLbr+wKeGXqOkuNJKXxBy6iG6bvqFY+yiEPzbzPH9iUtPmzMF6i1WZhLRrN
KgMLw346tUu/zD2u0L6lgoL50VOP1t/D7ykR4I9ohr3rYkcXIXvbXslaOIF+1tI3ipBbY74Cnb0y
YqRaMFOQ6u/EaW0f3FRoHgm6p7EUkVcKZG9vTE8Fb1WYf8FVuJDLTEb9lG7EMu93a2qCx5Wchcd3
N8RbGgk4U88iGdAsbP3NO2ttx16q4udtgavbv5aR26plOSwLxo5yJ7Hygp0WNV45tbWtFwzXqZKX
NxFynTATzCdMr0XgPm0jNJMF42JCB1J0vX34liPI2KlkpRw00AD5EnuoEyk0+qNysvl+W8p2vC8i
g5vOzcVgneTX5N40kpiA1ADvEwzoy0s30tD34hpFZOb+AdiYCxHIkPjo2itC0xgXM3oV7TkzLEP6
sqJU2YCR/6B3E/UYQkp3qylDCcYnDgbtj3n20vg6sjYxpOdFyKP3P6KSyZs1JZPkrZp6LD7sfwBQ
SwcI7IK0aw0DAABYBwAAUEsDBAoAAAAAANBA+0oAAAAAAAAAAAAAAAA0ABAAVGVzdFNjaGVtZUhh
bmRsZXIvVGVzdFNjaGVtZUhhbmRsZXIvQXNzZXRzLnhjYXNzZXRzL1VYDABsDHpZeAF6WfUBUABQ
SwMECgAAAAAA0ED7SgAAAAAAAAAAAAAAAEcAEABUZXN0U2NoZW1lSGFuZGxlci9UZXN0U2NoZW1l
SGFuZGxlci9Bc3NldHMueGNhc3NldHMvQXBwSWNvbi5hcHBpY29uc2V0L1VYDABsDHpZeAF6WfUB
UABQSwMEFAAIAAgA0ED7SgAAAAAAAAAAAAAAAFQAEABUZXN0U2NoZW1lSGFuZGxlci9UZXN0U2No
ZW1lSGFuZGxlci9Bc3NldHMueGNhc3NldHMvQXBwSWNvbi5hcHBpY29uc2V0L0NvbnRlbnRzLmpz
b25VWAwAeAF6WXgBeln1AVAArZPBCsMgDIbvfQrJ2YsplbFXGTtI6zZhVqjbCC2++9RuY5f2IB4S
8A/5+Ai4NIyBseqqPbAjO8UnY0vuaTAYZ1MOVvXAv7E3s86pkCTkX96r+2dAkMPAKwGxENgitVjT
cBNYaijwQLGqXnEbWWqJnaRYNS13kKWWnUCKVdNyB/mzjP3M80caLy6NVjq89OSNG1Mi1n1Qz8fN
TXmdejfoRAhNeANQSwcIOA6BPqQAAACHAwAAUEsDBAoAAAAAAH1D+0oAAAAAAAAAAAAAAAAvABAA
VGVzdFNjaGVtZUhhbmRsZXIvVGVzdFNjaGVtZUhhbmRsZXIvQmFzZS5scHJvai9VWAwAbAx6WX0G
eln1AVAAUEsDBBQACAAIAH1D+0oAAAAAAAAAAAAAAAA7ABAAVGVzdFNjaGVtZUhhbmRsZXIvVGVz
dFNjaGVtZUhhbmRsZXIvQmFzZS5scHJvai9NYWluTWVudS54aWJVWAwAfQZ6WX0Geln1AVAA7V3Z
duLKkn3u+xUsXvqhe1eZ2e52nbsYbeZ58puQEpARktDA1N1r3a+5H3a/pDMlYSMQWFTZBlx11lnn
GIEiI2NHREZmRkbe/305lQJzoumiIv8Ihr7dBANE5hVBlEc/gu1WDrfBv//1t3tB4c0pkY2AsVLJ
jyCvTL9xqiqRb3nZINqQ40nKFCWBaJFvaYVXuG+9fCr4SjfC6BqKIumdl6YioVj8W5w+5rQRMRqm
bIhTSrrM8dVmz6YSDKiaohLNWCV5nuh6WpENTZF+BGVFJsGAqZOkaSgSt1JM40ewn20GA7ypG8q0
OngmvJGXdYOjZA3OoE2WiTFWhB9BQdTod8G//hag/9wLRCWyQLssEt1+tHksKSurxyL91hCHItF+
BKccr+jL4PetX6qSOcrLrl8dlo7drRp9RZS3xLORxTZdnlO5gSiJxiogc0wwGwj0gM7NiRAQ5YAx
JoEeBYsEbgNDRZtyRjAwFeWWS9C3VPYO4fvv+929VyxZbXd+W4a0Yz+CCFvC1krcgFDp50SJ/Lse
qC5kom0knpY4Xf8RrDSTtOMib0k8+ErTpqvIMiVJv9Hd39h8mIZEjBfEaYeJREacQYEWiG6IskXz
R7CjELSW0ErpoMXcwzqNURvR9mxbfnZ3PVukj7c6eLTfoZ1+a7oRaBBdVagMd7tuffv65fejhCMu
wtsy25Wn/dZxctsicb1OCWc2Uvw1MOYiWewAkS09YC3idlx2gGg/I5/CIhHeBcKb5EKUBWWXaH2e
RvkOq8TIJjrKq3hUcJu5e3d0+6UV4jGEBus9oeeooylzMjfaAZLanxmgDkWyHBW1wDJ9EAzoK90g
U/Y3cxHMtBn9ZN+EXsSsGd+VvUh/7SV1Rj5Pv9s00aKSafJjMiWPnCxITOUY4VDPwGMfZmoR3Cdi
E6IOnPmiMqdPAhNChU3/k52Z4pyTqAspb33thdVrX613dXMwtfp5mK1tCViuz+bUrK+QyaCQ0Q5w
ekwcR0WTHFB9ChwQUGzSQWeA+rJ5pNn3FJaL3lHL8nyDs34d0Kmp8oZCRxBFoy4kp1EtbNIRTOA0
wepvjZOJ9F+bIdP2T6y/2aWK9BM6ZOqLQW/D8f7pRu5+4RH1JlE5jaPdYJ+dUdlyUtUZVjdoZh/f
YnIP7JpGhkSjoxbR//WPfwYDLnx+BP/TbiBVzaFSRojv+m/gMLuLXBqtKprpwsnsNok2FymvNqFK
WYEyhTxZn0MZD1vxK5fbxqu7eB+v75CKoreKvSmEd9SU6DNBoQEz3jhZ9I80DvPyCjsaM7YbqkoL
yDUM6hU/0LyDXY8pex72W5MraPOYxm/Pbr/bcqzS+FLTDwmvI2gYquitq++t1wFFtYMBO6JXplMK
o/3pk/wvw8nq/VZkpnsA12lFwfXRS7cuBbjmWFkEkpJk81cUwpiqUNvXOhCaMoOC9ucNIDLjEUoE
S2V5diAO+7VJeolqFvPRm9qyB2vdFD2jnR3TnDkOVB8gqqNTEj/Jr9FZ7pSF8F7OrUUSUGX017kz
QHP//UhwaRPwiMOPEN5Dhk2G7Y4KZR18HtN1/Txh+SsnA3EAOhmbr833DrsrbBa4o3TOdKfL6Sgk
YTxIn6R0MllknDURD7WLNkX0KuBj0bN7BEd2VZXIXuGrYjOcTypo9jEU7j5JfnQeLh8R4KAjs3C6
WHm6JAEGGoSn/NosGj1qbhoWC/2yQmsXo9vRtWY92wjdCbIVajhVHkPxyUcvrJZ9WO4ep9uCTEuE
05y1C8bBvNKHtsZzNOyTg1fK7ytTF+2TVdz19p6686zTDTcAXpEEx+FOQCrSPplh/ybgfs2fObz+
3if8h4a3n2ncT3gzjUWR1yGWsieHN2lJ0cmeY1w4iHQUcA9QxYdPcowq0dhqusWUh4Y8Tqso0X4m
6pfiGJvcnHiNLI6DUZdLxO5Q63U+SYBsg+LIyGKQJ/RSmBX6lyTAQNJzcclR7tQigVwLYiR5Bhkm
vRzVNDPEWkP+Jn0pUmyQOdGMgKEEmDyFPVE6q7NFrouhgdvY4yeJUrP42gizpVjceUhULERQm2Oy
2NtJ8hbTWSaRXGEMMYoBGZ6+jMqNSKBJDFP1UvSaTX+Wb6J7i6ZYfPdlHX0sDo0zrupopsxEULL2
i72GflFmYdAo/eZqp0X/Eyyqpomy4QWW6ihDS0LIRCHna33nPYZGxpCH6GbcE6ILcEr1S07ys4Lo
TDli9RyqHNSb1nkm+a+cdKO3iA8RzRybb//UJL8tC8qexq2dRY5GAVG2mjP6JI0zKTMeCleOE/Am
RonOpdhqg3hI7cnmNi6MsW6iw00/bcjzlJqST6KhI17NnF1qh0e4bqODSh7Z5fr0eYRp7EGwdLai
GxLEPkz5s2YRvOcY0y8QxG+Rv9PPjsBGZoq62hMab3O7jMzx8ACx2/4soVFmPKT2EBrioYSCsroU
qdU43difsc6dpJVOEu0odKH0WcMy48ZDbu15E7cEdWF0UXIL0MgvUOYMfhxoGitpX44dxxOQFiId
rBeTr7fFaEGW1GsSJ8otsvTyFXx2jGIPi8LFLDSwZDLD2WRQuQjqeZjhdwfnkxAQrM54yP2mPEFZ
Qo0rX4rcmxbT9r7ujqlwNs8Nc4H4FKnwZ0UY9l+UI69t8coUZRGCWDm7AA+HGeZKwvgWvapnuqI3
tZedNllwdpmyFaySdDpwbKftlc6n7UC8chgaJCDdQF4uP2t3gbVtzVkNbkTb39PYoc1Ybx2DHEX1
pnvqpsM7bww4y72MbSvBLmn9wMsfZxKo60hVfG0puhr9nK0B6x0vOKwBt0FUiePJFjThQ9j0sysU
HtEa+slZc7f+aYOwq9lzqUQ3E8HDCLHkm1mCe42eWyUqNOhwFGFfD5zs69nNHYYtNFe76eNvNnku
QCoZBY0nzO/ezB3ca/TcgNQ0MhcVU3dAieyB8uBkLS7KmI5RL/vZznE1ey5QHqtj6H1EOF/TN1ej
ZwSlrbPVcslunJ2vCdijqoVOYg+dTe6NWYA5glo0rgWddiIOeQ415mtRyNXoGdEpmFPV2mraILQH
yLPdveaNCiWNaUk4MyAs84BoL/zm5Y6oiwOJJDXCecCSrz4gnsEolrpQWM6ciLCZGqlEkkR5ZIU4
DxpHgwhnnzEzD0FU0J8nLis233BscxnJV6C3EUn5WVC3KP9qfG6lCHuLbceC/stx3zkF/ArrZf7M
FqRTzh9MouuHDsLMc88o6hivIhdqM9Y7eyuwY8JPApv96UBF2c+x/O/NeYww0m2kG35U2tXme/sy
xvJGhzyAGK4T6KShEV9LKK62zgHE4VWCQWUBRcBU9bUnvE/ZBfGL0XXHokQCrZX64ga0QQaNMRZ5
P0dR3E1dTwqeoYxGEmGnuEXZpJGuJQ9LNN5alFjEUV/jZnKpQ6D1jjfWjk8NdEVjHHC7/GkxjrCK
aMHPVpS7qWvD2pHCEYynZgZ1Gc/RxVVhrGisisCrRbNCBFPOEHlOklaO9t72MU4iHp5/eZhfer+R
hyMf7wlHWCqjLqKbrF0o5BcS2ZoDnf5pWp21JXcn8siVoAz8LOZ+Zki7z2qOlJG5Rbdz7Oi3i/z7
xLX7nKzjOeS6iMgfuph5ZjvcOjG+LYFDgbIyMdnJCbHpK9XR1fRlxWej2hLpO5htX4ln+5Q3ukMH
KSPAUiG+Ozv7lrmtDERTkJvlL6w5tge3BJCXdZYoe2hfNJIvoEmQebqqhSIb2rqpGC+n2usDhOcY
9n+jgdnq/7Zr8MBXNWZYCqhXk9eHb4bTxxt8tVEZwyhW/G4FordpXy2+rP9vwKukDahV3I1O3147
O7wlUZ446PKLEmohPIsnr+deL7qs+xnqlA9F1A+iimwEOWV+TdBmOIML2N1SNAddo6FBFRCq+clo
d1O/WnSZHI6h2wjlUZmhOJCuCV2W1LbJOZi+HNl9zNUxKqKS83OOyk3/avFlktgShNfJk3kNOYLa
Kn6hCF/GjLilcbJuFzp8nd6FlTwaMp4K6cuaE3syy99yWMXRqfsdvH55VlzmJiTQVlWiBdKc7kxs
5tMO4gISzyfv6FyRFZqs0zztc5dOjj2MTq+N0ZqACOaFGp31jieeJWXhwlO4KyOdAVf+yjGRxDp9
BE+x/YRBDGPxqobJNKeKBieJawfKdvYJKR3S7CtvDvAvnT6AZTj+iFYJsj6+UCwvY0BsqoTwTj22
pZZF+QnPvZvLGge3eYxoTTwlUVH8HP226P7yorDBpo+UB27ysv/WlycY3oIv+S248kr9ekxMZx3f
9NvDwuKxKCojTFZX5S2bhqLuoFldrSGskHnwc/LBTfya0FTUI2AKvVvEVTyv9qokv9nUF3WXn1D4
zSm4zuT/vGyxvBw5f2jV4qNLv23x8pCtIr8AX3z3msusKvZmvSmGUBONeuqyxhqbw+2KW8MXnrke
RwNkFLjZp25IMpb2a6g6PNVjBLdFVDJ+eXpp68O2Dxm/u7uG25XSrVMPjxrkGcLLq9ooSCmScPDA
w8BR7NQdqmWQ8LkT7DhBYEi0NE40jiAxnk0w1qD3fZVBcDV5RiTyLPbnDx4QE51ThM9LLEXIz+c2
Dp9Y5B87qKbA31xV8mmb3VYhifL+IWxzU47hga0tFEMnr8i/93rOhlOPACjXbyI8QCHpq6SYq53L
ymeIjVooptFt/lo+Q0ocsbsrDp0k+g+n7rihollDJ+unToGrvXeG1ooQVszIjthXm09AENGWS1eB
8ev+pSS9QBHdgwLO4lVIQFbDrHmortDBBs8BxSPfQ2kIUhGuAoojJbmXEWQmWEZOyjDeA7lINKcK
8nOqDi2OTvGiSqkejphfOTekDKtspSRPTXayWjgxVt7jbvfgXYYMOVPaTDfaHEgV/KL/E6y9NvNx
Ana180sG6aK0PwTqZHMhDAPuwMqOMMGdhPTEV9GXg43/nKG6SZxutK73vRSjYl39Zh/HTyFfxHjQ
+M21wjA1uTocHtaI9i2H0RpljvtqGtESR2ODOB4sGq+BTyHZf/7dFcKWymGFGGsJVNa41ZSvphAl
RdE3+qCMeGg9GOnQb64PkiWUw+pwK0YxvEOu+Gbl7qPtnlcdfC8x7zf4yVOCkjjiqM/epKsqcQLt
BuXuyesc5wkZd9hf3EwxX6GZ9nNvxV4zHxo3ciMD7RJuSOQ3dwBbceMLel7nLc0GFgIyy5PT0FzN
X+Cw4I4cC4kVpDJmtVMrqLjbuH69cCLHYzoh9sIYJZGX3qzGerTpC9WJl5vSlvUMQkN0o6eWbXE3
cf0qwS7VlqRjGlGkMfYkiZZZvGKNuJ5oIcVRcMSN66pydfQi6OjKdQQLbu7F5wmyKQgj7uJihUh1
iuwK4Y6few8ON/MFHICs85qoeqWp38yfcBdDfyFfseVb7++ftVaJZvfbOXMx4xGJgs/nfnN10F8l
43UkdNbBUMFCPfm2LFerF6kRg219yN80MRojGvdzu+HhRr6CPgwOakM93kW0i/zDl4sVG5y4ybUP
jxPINpBUTk3Qdjdw/ZqgMZlsxnevGzj1CSIhJOonJyW62r1AbbCOXzjllY0lujdYZha/uTZYpzOO
aEM1F8KAR7F7cvFkV7t/Zg3e7/jY664IC8wiGHIn1fzwzmpMK5LicTV82imaNpKRboHP+rkawNXY
h6U1WgwfqoYybfbQWyPTuY7MrcMQi2Ud6yTauZPKUXteCXPgZg7nYphYZw5pjZSe+T0LhLN7anZy
ZF7O4heqWCZRil5HaR1j+14Wb8ydW23mxTSeyyhP/B7eeW3sS2Bu3dhyAPTCMIN0CRI5KW3PaueL
HsCwfudVE8BJ2OQk5KOoPZ3l9pgjp7ZfOBTueEwJSuFPO6uWlMSRHCiR4f4lZv9j8/RUDiFex2p1
6o72u6dEM1YZpx62sG7P0QjBTJ6cbXLWc7hWde49wf+vk4ue7yM5wpofXILgbV69jrSrPUwnmPBX
VeKnYOqGOHSqZhZibcQWGIVP3bO9puN8Fop2t0XPq4il5xISbTxXrqrUmu3AGiz7aM+Q/s/JFhiE
Mc9AmkUvwZAsVj3Er0VvMXhAn1z7cYKoHsZDH53hSXt1e8B2NdFgVW4zolPV1UkDDw3QFKHcFS7J
Vg8P7ge6cTvVoE/Rfz61eobV3HvuStUoiCONU8fBAJG5gUTYtL3qjP3zKh4mqLdPDb/dLX78StP7
LbdZh/UfdDzH0Ez+UpavbmgMeKvDlqyDf/2bs/13/93+8rKFarXzgct3U25ireU6JvJiIRWWBsB5
LZrMjA5iBO3UyVWcXZxc0vIu61ZpMEYhjFnHz5W3B0l66RsLl9mNNdag80frjmkdE1VLOTQ6N296
uGui3hx+Kc17zs1gpBAt+r2p0ZOkl+ZZgmSqx+T6R/OOaZ4lqpZyYGobG04wSyE5O/m6Pxc3F6V5
B2NHfaFipIELh346EtjbO3i9rGsvvuFncwyfkR+fWhnS3eK1xTcVRQX/jLtI/U9888H2ztb2/Mc3
Ui3Pqp0/Papfx9Zpt1KjMuYE/N0v5cT/iW+8KPnWuuPxDc91kZpjcXfNW+XW+y7Na6SiaE7xaPop
1HqQ5J/4xouSb807Ht9kexnENTy1Ty6J6uLmT5KG9zs+gq5hcYXRHUKj6a8naTRMaZOmNC9NEckj
3z650scVrarbZbetXnuViKku8VhAcXEda7rbqRgOkN6pGOVJBzUNtWLsQ7flqQgMTZEucF+e5WIc
Aj0REjHsItINXxPodjKGN+pOMkapU8akimHnQyt4XzDqVjbGIdj55pgdZJyVLxX2L1gPsyOShbMt
dDtGYoBy9ND9Sh9cDXOLk1UHwzEao+p718K0BtiWokgDj3uTnQwSXe6ieYv0wo9n/sQkqdNN8dBY
6wiACcPr4pJUr48Fj/VN2hdb/k3vpxOQ0qZuKFNxTTbY/esf/3QSudtF3Mqo12rnSEh6B0Q0U3b6
tOmkdfFEjTJkeF7nptbzGEVQbnXPjs7heHiciqCUw/jmzajtwH2QokC8TNQpXjDJ1zAfYsxl391E
f23ofD8bbSqmxpOSqHtN+MQFhxGPWNHXPd2fYaFZltoUyJmSFGjyGmG1XHagGzqpDYUEhBqMpZ+z
pNcJHZOCLQSvmt9tartJhBq+8ozfGbqPDye6oiwozjDOtXMQQogdrPT1wQHFhpftwtKLLf5aQgJc
BjHp2KHsnwozyqIsTq27QXaMYOqcqukn0M1BVfxUsngPxVSJxu40YnyxlXPKmodqdhYtdDPo18il
eJUnRXEk1ogqkMPI+kpAu8Rx3kGA9cjrJrG8BD5N/9XPLvrDgzoxI0iIWOXfHHX2qyFYq79JOjoY
SsA62ePMh7NhcA3c9Pykol0irJymcfKI5GWrU17INioYmhjVfV2Jc3X+/pFIqpMiqmqIzFDmD6Xj
fbC3tznZ9vXjF95y4SaGa1Q6x3Zrf8rTt4huNPkxmZJHGmxINAay+djx+393+Chm2V5K0fRz6cl7
qKdOg2nGkIdirhI9hOu4k30VE7xkxdwjtkvg3h71D2IWDHCSpCx0NhFriareHRM5qaqSyFtzsbye
l5lk58ROe+BMKlvCcxJvSpxB9CJZsbWLkqKo9g80Kn9OJwKjk5YUfZMvwdGowKKYImNuLjKAhO1i
JvV5GuU7rBKjHfVwOmCd83q1Hn3z0bEBYRP50iZZlobzcfoy6G891Ii+/fm7Z3s1RRcZu69NUlKG
yEnbXwQDEhkaTUMzjQ1ttlm1/YDdgrP1caAYdKK79WS3dbbpZbfHQnpqQA36IBhY/ghGIrFggD6P
3N0EAwtRMMZ0RnFL/x4T1ij9In5zhJxuReUv1G6+3VjUrP871MKx+Ba5UDSU2KM3p2C72LNXrhac
bOglbkW0rTEzK7ZQfkao6XVp1RZnQ42bkoNMvdVFi5itlhRWOtS+Irb71PNV6ktZpw7Z48CkgMmB
OdEMahLSozkaUWo1jWqwaNA2EjHK3lBcEiHHurFBnd2kaRlIcoeHvGwoaepH6C9EKrPXZKJItIZe
H8n1UT/tJbWwLbRQ5EVmiW2RHV1Q9iu5wFAiS3HAbG7Zczq59aj/5lTTEWSa0DjI1h/CCpkZK5XK
TDX18WuxRoUTqKGQNZEso/8R1BR2kYLAXJU4kqf2VpJz+GlgHZh2fmh/oPKcciPSpHBR9il1TVEV
jdksdXWrjLJgSfSyzgaEsHN4Is2B1CEab5Wouh843svuw+ZTMMB6kN+sbkpM8qlViuMnI4t39/MH
jVv5mprfs6uAHLStsHFKDI4d56TWbI31RwX+/VXiR37lf2jzqJ/AbR8E6igErSW0knOkXlFjkGuQ
1KPRn4/BddOTA9/y1toh80PvYofZ0gPWIm7Hx4rKH7PDeOjVd0W3DDGcOFpVxLclWrSbrhHNbqJ5
ZFTbEveLuM7t8cb9KaQ6SPxkj3cX2fV48egVe7ys/NkOT1o2kdHwlHwrsemPw9tyeEQ+5u9UNYlx
BcTYi5rcXP6Cv7v/7h2t3H+fu+z5/rsdxNpP7r8rg2faIn3p/rug8CZTqL/+9v9QSwcI+Y9K3OkY
AABJzwAAUEsDBBQACAAIANBA+0oAAAAAAAAAAAAAAAAuABAAVGVzdFNjaGVtZUhhbmRsZXIvVGVz
dFNjaGVtZUhhbmRsZXIvSW5mby5wbGlzdFVYDAB4AXpZeAF6WfUBUAB9U11vmzAUfV5+hYf60D0E
J3tYp4lSEXAyJD4sPqr2KXLBTawag8Ak5Sftb+yXzZB20qDs0b7nnHvO1b3G3WvBwYnWDSvFrbbW
VxqgIitzJg63Wppsl9+1O3NhfHZCO3nECFScNRLgdOO5NtCWEFpVxSmETuIA7LlxApQGhCjQgHaU
svoB4fl81kmP0rOy6IENxHVZ0Vp2nhJbKoKey1xTbS7q/9hRvznLpLn4ZLzQzrS3m1bknDr0RHlZ
FVTIiB4U2oB9WaEaWSvz5tW1g+6RF2IfBcnes4Jdau3QFwO+1Ud66JVmrSRPnE6F0AOy08TaeGgf
WP68hpuVYsumCrP4XLlnz4zW0544Cp3UTvabNHBUX9dRKdyti6L57uK5dNSk1CxI3d1fZjgW/qav
5vgBKT7I/u7jv8ExyV7IgSZdNVGwMPbmaPGxrOWb0XhAjNnrebszAddjvBf7TLCiLeKukbSYoV1d
+5Ydxg97B2EvfBx2JrGiHUomoYP4Z1sQEVGS9+til1VXs8NRjiX/FsDvX+Dran0DhlMBrsh0YHEO
hmIDatrQ+kRzfdrIJ0wE7OmjnepLPhXtlITVM2MV4TYnTTPmBXHvgmVEDlN4JxvwcmQGHE7QXPwB
UEsHCBoEDKjYAQAAGQQAAFBLAwQUAAgACADQQPtKAAAAAAAAAAAAAAAAKgAQAFRlc3RTY2hlbWVI
YW5kbGVyL1Rlc3RTY2hlbWVIYW5kbGVyL21haW4ubVVYDAB4AXpZeAF6WfUBUAAlTrsKAjEQ7PMV
AzYqclGbKxTBR6GFNtqJRcwtXuBuc+xFQcQP8jf8Mi9xi2WYBzNaK62B2jjO6gRP1IajLammreGi
IunYJKyFTKAC1yc2hrEi4TaQY3hGrqe5nuTZ3+ibp7hbGfD9YDqe5Fg2TUXYsc2wrCoksYVQS/Kg
IqaU6rm68RIwX3vrjU4/KxdKOQ5pXz8CIzc7gvVdNWxpBMNIPc6XAV4K3QmFuzAOx9jprAnO8z6m
/8loHszUW/0AUEsHCAZl+/6+AAAA+QAAAFBLAwQKAAAAAACcRvtKAAAAAAAAAAAAAAAALgAQAFRl
c3RTY2hlbWVIYW5kbGVyL1Rlc3RTY2hlbWVIYW5kbGVyLnhjb2RlcHJvai9VWAwAbAx6WVcMeln1
AVAAUEsDBBQACAAIAOBA+0oAAAAAAAAAAAAAAAA9ABAAVGVzdFNjaGVtZUhhbmRsZXIvVGVzdFNj
aGVtZUhhbmRsZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvalVYDACUAXpZlAF6WfUBUADtWltz
m0gWfpZ/hUaVh8RJJMv2xE55Z2tb0JLZIKC4aKy8dGHUlplgUAGK7drKf5/TDQgQSGAl87BVzoPF
5ZzDuXzn0t0ZDLq/vTm2zPHl8Zvfjv531LFD5979Tmc0jNzA7/7RHV4ddRzPjiIawR1Q/IAHwe1f
1IlzovPLzcOE6mhw3B3Rpet3tdHNaO16i7Hr0W4EBIzjeHDU6ZxdfDo9PRU/Dcen6OxyfHlycjH+
jM4uusCLViuRenRpx7T/0AUxRrAOHVDheMDku5ENP0XRV907+KvTO3ieCv69WfDx4KrL7Ml0uaxl
AdvjqP/k2PyCaaPT6OX6XLQRvq3RqI5parv+lPrr/pN7e7A6nxslb+uC6zgegOPgEIl7JKZfhwfY
X+yEUQlo40Q+Danv1INtWPdBk0ax4dzTB3pt+wuPhn17tdo2oyT7qkufVp7ruDF7bD6vKBA9hsCW
MMMrm337CvzieOsFlXzJX9AnoDq56q7s+B6uaj971U1CaYaUyRxZkmwSTVdFSzANIkp6OSTnTRi/
b7ADMjv+4gePfsGQRAMnWNC+07/f6FsSu6Vn71/LMFiv/t0rq9cqBX9KPSg6Tq2GD+00bJmUL9Xx
LvAWLKCMH6Bge8Ey17IsvZ2eqE7PkR3RQ5SDS5bgV13ffuAoAzkb9dhN31uFwV+DYjVop6ZQp6bk
3wV9yIkoPkDZmD7FCXP/6cHbaJnLbKfY/krz6yCYiNyrU17RdtarclULIUqPQfgt4hVQu2dRrylu
Qm19zrlTO4G+k9taI5t5rXPLbhH/xtSOvgH16fD84vzy7NP5BSdgIGK9/i27eccfhWtf9b3ncRCK
dOUFzw/Uj7UgigFL0Bci11/y+gekZS802FdyxoQ5stb6au/eNpbzck1hxvEW4PVM/wwlZ63aA3z2
Q5HrtI5LC4PF2uHF40Puoh2wSFzSWuABlr2o8RUUTitE9vEXGNHalwdY06rtlWLUqhOVOFp2hhJP
m5mqxNBcL0vk+6tYIWy7Rozm+OV5WUm1UiIqMOB8p6YdLmlcO2qdHBz/oui8GAmBf+cu1yEfrGTm
nGyMxLX5wotJ1ylydblP74KwYkCvoliPDaCbj/OiFG3BUKgNRz4GF0PXojiXyMd15MU5vxBsrqG+
rtTjBV1RmDp9x91+k2Z1PTxWSa4rLWjy5rUZ6V9UaIqy0tbac4IHPkLTfvriYwxvilN1Faq7wFhC
LNQwtkCtbR61iZsxJAvbOqSmFNwMO45D93YdZ+tk+CfD6GCtlqG9oMI9dVgXPfl8wjtgp6PqE6RI
X5EpqYqCppjZjpjdkP9Ov5cQJSahqujdWbah6Aghhcq2UH0zCLwoX61/7qcqJPU6+/nRJteE2orV
lGuZJ/ekGYQdipZ763pu/Jzr2rthU1b3sn/SSzH9nXrBio0WOgSW01Cfv4IUNRzb9+kCJhDsAx9M
HFE2cnS+sRku4ckTmfpJ1rGht5BRrKQm5W9jd2W82MqDMnljC8+4mVtEN9SSet3rFZ/rQRDnD2MO
he0a1L7M5uaVUqcmK0pZs6k5DcNnY8GqJE+N5ANGz5/Zuin11hfvtBTwcuDk2+DbUhyMVlFo6EiV
GFSk/kQEWm8Pldz+0u2/n/f6Xk+WfD6zQ9f2451rjlbzXsXnRal7p9x9a/7qiF5arL9gzNtlZO6J
G2FUaQp17sC1tUikt+tlxQ91MnPsGTSO0+KdNDMk/4nmBjEw0oVrYhlYJxoyrw0gUNSkiQkyUiYE
KUief4XXCnRVS5aBYI6NegprOoIfdfRfLJhEUJUZ1g1oxgkLQZOJjg1DmuEit3BzQ9iFhSaYGCZS
RKSLzL9Lf/3+/fC8VyGWRjrS54zEc2+d9+9LFFhBIxmTqSpaMjaqyqbvQUeBgOlVgj+RrpCRrApf
iIA009IxQZap6ljGyJCUyS4OVZUrJleoBHU6RTvfKcz8quMqlKKkMwdzGyQDQfTAd6mTsa6repVD
FawpVkw+G3Et4KbGO5wYTzVzDgaJ810EEOhmLSVlLCmSiQkoa+0nbGEzoA8ib2IdyYTBsJmDuydj
aUetqyqoIiPD2OtNHa4wkVVVS7BvSLtcaZi6JPDtZlM151odIBM6y9AkQVItA5A7wzuoLJYluohF
gmZIktFIAvPme7Mr5dMxEq458AVV3CWeiJYmSwKCkE2xea2KZIpM4bpEDdzEkCYQNBEQlHy99zHL
QFWbE+0aGZgbrhVqiYhH1oRBQtWnCQiTKyBZPNrhXUKVJmfqNR6SqTExsCIWlUipTAzpUnRB8nYi
CESorShQUIbDnEicwyJBEgBZBHxf0JW9hIcsS9S0FBjbX1A1U5qmaw0i4xmWN2Mxf6/pGIIuQEBU
nYiYZwKQGpuO1Olxl/wx7H1I79+8df17GrqwwHiXPnyXC+QR+nROTJWcnZKRtCtlNrRopFom5B5U
MIUw7FUhvaG1FBEDEHRAlgF1ToByVyvTUrgdSJa+MhBCWTR2oK/AAr1FJGNLEcxdqqY0M6RLLLJF
mikSVOMGPKjJ6pwVLWIifYIZboYn/eFpSmXKWWHPgVYUoyrynCDQYIZZ1S9h2hC/sLznW81OED0V
lm7pIMAb7tZuHK5dluswY+VHCK/N+bU5vzbn1+b8f9yce7w7f3x04/uPi+j5oVdqwQpYZkB1ylpb
JrBdH2/dqZua8WtvPKA3ZrFqbn9pU9tugLXHUb9mbQqYMgHqSFYnLPKaJEPnQhpkIWAg3dpFq5Xk
pGIA3NORpGByLYmaRKQp4KmEEmYzpI9hkrHEnVjZzxsUzr85iywS3VJY2836cNaCS5Na9z/0iTrr
2L71KGGHRIN+f5CfQqT5kv5/EzICNEEgkvwcS5hBKd+erz8Z2DBne9pv3iZx5g/e9VrOK7UnfL9q
XnkN2E8FrJxh6U5S0yZRcTuperxQt5f5D5w0bMOmokiOmtKr7b3O/Ttdxf3NpsG7sI+3oHf22otL
H5aimRu5EPvNeq2OStlb+f6p09Ff5sy9pbnkzIaq8FJnFtG7H5PMn2EQxGpyFLg5FWp3bnh19OPo
b1BLBwj6G79o7QgAAGorAABQSwMECgAAAAAAokb7SgAAAAAAAAAAAAAAAEIAEABUZXN0U2NoZW1l
SGFuZGxlci9UZXN0U2NoZW1lSGFuZGxlci54Y29kZXByb2ovcHJvamVjdC54Y3dvcmtzcGFjZS9V
WAwAbAx6WV8Meln1AVAAUEsDBBQACAAIANFA+0oAAAAAAAAAAAAAAABaABAAVGVzdFNjaGVtZUhh
bmRsZXIvVGVzdFNjaGVtZUhhbmRsZXIueGNvZGVwcm9qL3Byb2plY3QueGN3b3Jrc3BhY2UvY29u
dGVudHMueGN3b3Jrc3BhY2VkYXRhVVgMAHkBell5AXpZ9QFQAD2NsQ7CIBiEd57iD7utbsYA3ZrO
WuNM6FVRCg00po8vNehNl8vdfaJZJ0dvxGSDl/xQ7TnBmzBYf5f82re7I28UE7cQX2nWBozoVydJ
34HaMtFahzPGzWe5YPRSOgluPPVIy8U8MKHTfnCI1ZopmGN4loO6PGRa/ccp9gFQSwcIX/6eOXwA
AACiAAAAUEsBAhUDCgAAAAAA0UD7SgAAAAAAAAAAAAAAABIADAAAAAAAAAAAQO1BAAAAAFRlc3RT
Y2hlbWVIYW5kbGVyL1VYCABsDHpZegF6WVBLAQIVAwoAAAAAACVE+0oAAAAAAAAAAAAAAAAkAAwA
AAAAAAAAAEDtQUAAAABUZXN0U2NoZW1lSGFuZGxlci9UZXN0U2NoZW1lSGFuZGxlci9VWAgAbAx6
WbUHellQSwECFQMUAAgACADQQPtKs2TrEbEAAADsAAAAMQAMAAAAAAAAAABApIGSAAAAVGVzdFNj
aGVtZUhhbmRsZXIvVGVzdFNjaGVtZUhhbmRsZXIvQXBwRGVsZWdhdGUuaFVYCAB4AXpZeAF6WVBL
AQIVAxQACAAIACVE+0rsgrRrDQMAAFgHAAAxAAwAAAAAAAAAAECkgbIBAABUZXN0U2NoZW1lSGFu
ZGxlci9UZXN0U2NoZW1lSGFuZGxlci9BcHBEZWxlZ2F0ZS5tVVgIALUHelm1B3pZUEsBAhUDCgAA
AAAA0ED7SgAAAAAAAAAAAAAAADQADAAAAAAAAAAAQO1BLgUAAFRlc3RTY2hlbWVIYW5kbGVyL1Rl
c3RTY2hlbWVIYW5kbGVyL0Fzc2V0cy54Y2Fzc2V0cy9VWAgAbAx6WXgBellQSwECFQMKAAAAAADQ
QPtKAAAAAAAAAAAAAAAARwAMAAAAAAAAAABA7UGQBQAAVGVzdFNjaGVtZUhhbmRsZXIvVGVzdFNj
aGVtZUhhbmRsZXIvQXNzZXRzLnhjYXNzZXRzL0FwcEljb24uYXBwaWNvbnNldC9VWAgAbAx6WXgB
ellQSwECFQMUAAgACADQQPtKOA6BPqQAAACHAwAAVAAMAAAAAAAAAABApIEFBgAAVGVzdFNjaGVt
ZUhhbmRsZXIvVGVzdFNjaGVtZUhhbmRsZXIvQXNzZXRzLnhjYXNzZXRzL0FwcEljb24uYXBwaWNv
bnNldC9Db250ZW50cy5qc29uVVgIAHgBell4AXpZUEsBAhUDCgAAAAAAfUP7SgAAAAAAAAAAAAAA
AC8ADAAAAAAAAAAAQO1BOwcAAFRlc3RTY2hlbWVIYW5kbGVyL1Rlc3RTY2hlbWVIYW5kbGVyL0Jh
c2UubHByb2ovVVgIAGwMell9BnpZUEsBAhUDFAAIAAgAfUP7SvmPStzpGAAASc8AADsADAAAAAAA
AAAAQKSBmAcAAFRlc3RTY2hlbWVIYW5kbGVyL1Rlc3RTY2hlbWVIYW5kbGVyL0Jhc2UubHByb2ov
TWFpbk1lbnUueGliVVgIAH0Gell9BnpZUEsBAhUDFAAIAAgA0ED7ShoEDKjYAQAAGQQAAC4ADAAA
AAAAAAAAQKSB+iAAAFRlc3RTY2hlbWVIYW5kbGVyL1Rlc3RTY2hlbWVIYW5kbGVyL0luZm8ucGxp
c3RVWAgAeAF6WXgBellQSwECFQMUAAgACADQQPtKBmX7/r4AAAD5AAAAKgAMAAAAAAAAAABApIE+
IwAAVGVzdFNjaGVtZUhhbmRsZXIvVGVzdFNjaGVtZUhhbmRsZXIvbWFpbi5tVVgIAHgBell4AXpZ
UEsBAhUDCgAAAAAAnEb7SgAAAAAAAAAAAAAAAC4ADAAAAAAAAAAAQO1BZCQAAFRlc3RTY2hlbWVI
YW5kbGVyL1Rlc3RTY2hlbWVIYW5kbGVyLnhjb2RlcHJvai9VWAgAbAx6WVcMellQSwECFQMUAAgA
CADgQPtK+hu/aO0IAABqKwAAPQAMAAAAAAAAAABApIHAJAAAVGVzdFNjaGVtZUhhbmRsZXIvVGVz
dFNjaGVtZUhhbmRsZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvalVYCACUAXpZlAF6WVBLAQIV
AwoAAAAAAKJG+0oAAAAAAAAAAAAAAABCAAwAAAAAAAAAAEDtQSguAABUZXN0U2NoZW1lSGFuZGxl
ci9UZXN0U2NoZW1lSGFuZGxlci54Y29kZXByb2ovcHJvamVjdC54Y3dvcmtzcGFjZS9VWAgAbAx6
WV8MellQSwECFQMUAAgACADRQPtKX/6eOXwAAACiAAAAWgAMAAAAAAAAAABApIGYLgAAVGVzdFNj
aGVtZUhhbmRsZXIvVGVzdFNjaGVtZUhhbmRsZXIueGNvZGVwcm9qL3Byb2plY3QueGN3b3Jrc3Bh
Y2UvY29udGVudHMueGN3b3Jrc3BhY2VkYXRhVVgIAHkBell5AXpZUEsFBgAAAAAPAA8AlgYAAKwv
AAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316622</attachid>
            <date>2017-07-27 23:07:47 -0700</date>
            <delta_ts>2017-07-28 10:52:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174895-20170727230746.patch</filename>
            <type>text/plain</type>
            <size>5625</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5OTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIwNThkZjNiZTEyOTgzMTE1
ZTAyZWYzOGYxOGJlMzZkZmM5Mzg5NzYuLmQ2N2RkMWZjNDFlMWJhMTNlOGQ1N2FhMzE5MzQ1OGRl
NGFmZjkzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcgQEAKIDIwMTctMDctMjcgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIFdLVVJMU2NoZW1lVGFza0ltcGwg
aW5zdGFuY2VzIGFyZSBiZWluZyBhYmFuZG9uZWQgKGV4Y2VwdCBpZiB0aGUgdGFzayBpcyBzdG9w
cGVkKS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzNTY4Mjc2PiBhbmQgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDg5NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNj
aGVtZVRhc2subW06CisgICAgICAgICgtW1dLVVJMU2NoZW1lVGFza0ltcGwgZGVhbGxvY10pOiBD
YWxsIHRoZSBkZXN0cnVjdG9yIG9uIHRoZSB3cmFwcGVkIEFQSTo6VVJMU2NoZW1lVGFzay4KKyAg
ICAgICAgCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNjaGVtZUhhbmRsZXJDb2Nv
YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYTo6cGxhdGZvcm1U
YXNrQ29tcGxldGVkKToKKyAgICAgICAgCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVt
ZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyOjp0YXNr
Q29tcGxldGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oOgor
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZSk6IENhbGwgdGFza0NvbXBsZXRlZCgp
IG9uIHRoZSBoYW5kbGVyIHRvIHJlbW92ZSByZWNvcmRzCisgICAgICAgICAgb2YgdGhpcyB0YXNr
LgorCisyMDE3LTA3LTI3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwogICAg
ICAgICBQYXJ0IDIgb2Y6IFJlbmFtZSBEYXRhYmFzZVByb2Nlc3MgdG8gU3RvcmFnZVByb2Nlc3Mu
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ4ODAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2No
ZW1lVGFzay5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVt
ZVRhc2subW0KaW5kZXggZjBkZWVhNTU4ZGIxNzM5MjVhYjZmZDdjMjU3NzQ4ZGE4OTVhY2E2YS4u
Mzc5ODhmOTFlMDdiMDVjZjU2MTJkZjIxNDNmMzUwYWYzYjhmNjIzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLm1tCkBAIC02
MSw2ICs2MSwxMyBAQCBzdGF0aWMgdm9pZCByYWlzZUV4Y2VwdGlvbklmTmVjZXNzYXJ5KFdlYktp
dDo6V2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0aW9uVHlwZSBleAogCiBAaW1wbGVtZW50YXRpb24g
V0tVUkxTY2hlbWVUYXNrSW1wbAogCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBfdXJsU2NoZW1l
VGFzay0+QVBJOjpVUkxTY2hlbWVUYXNrOjp+VVJMU2NoZW1lVGFzaygpOworCisgICAgW3N1cGVy
IGRlYWxsb2NdOworfQorCiAtIChOU1VSTFJlcXVlc3QgKilyZXF1ZXN0CiB7CiAgICAgcmV0dXJu
IF91cmxTY2hlbWVUYXNrLT50YXNrKCkucmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05vdFVwZGF0
ZUhUVFBCb2R5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLmgKaW5kZXggMjU5MGFmMzMwMTM0YTBmYzBjNzk4MDdi
MjU1OTA0YjY3MDRlOWM4Mi4uY2E4ZjViNzJiNDQ0MGVhMDkzYjIyMzM1Y2Y0NmNjMmU1YjBhMzlk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1l
SGFuZGxlckNvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVVJM
U2NoZW1lSGFuZGxlckNvY29hLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgcGxhdGZvcm1TdGFydFRhc2soV2ViUGFnZVByb3h5JiwgV2ViVVJMU2NoZW1lVGFzayYpIGZp
bmFsOwogICAgIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hl
bWVUYXNrJikgZmluYWw7CisgICAgdm9pZCBwbGF0Zm9ybVRhc2tDb21wbGV0ZWQoV2ViVVJMU2No
ZW1lVGFzayYpIGZpbmFsOwogCiAgICAgUmV0YWluUHRyPGlkIDxXS1VSTFNjaGVtZUhhbmRsZXI+
PiBtX2FwaUhhbmRsZXI7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmPEFQSTo6VVJMU2NoZW1l
VGFzaz4+IG1fYXBpVGFza3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EubW0KaW5kZXggYjg0Y2M2NDJkM2RkMzgw
YzcxOTZiYjVjODFhYTg4ZDQ2MjE5NzE4Yy4uMTQzOWMzZTVjZWRlZGE0NzQ0OTI0ZmM2MmIxMzA2
YWNiZWE3ZDFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
VVJMU2NoZW1lSGFuZGxlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5tbQpAQCAtNzYsNCArNzYsMTMgQEAgdm9pZCBX
ZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2E6OnBsYXRmb3JtU3RvcFRhc2soV2ViUGFnZVByb3h5JiBw
YWdlLCBXZWJVUkxTY2hlbWUKICNlbmRpZgogfQogCit2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJD
b2NvYTo6cGxhdGZvcm1UYXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRhc2smIHRhc2spCit7Cisj
aWYgV0tfQVBJX0VOQUJMRUQKKyAgICBtX2FwaVRhc2tzLnJlbW92ZSh0YXNrLmlkZW50aWZpZXIo
KSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0YXNrKTsKKyNlbmRpZgorfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVS
TFNjaGVtZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1l
SGFuZGxlci5jcHAKaW5kZXggNDkwODU1YmE4ZmZlNTAwNDJjYWY4MWYzNjZjYzI3NDczODY4NDRh
Ny4uYjkxYThiMTIzMmJkMTY3Y2RlNDE4NDg1NWNkNWFhYjk4N2JkNWU1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKQEAgLTY5LDQgKzY5
LDEyIEBAIHZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlcjo6c3RvcFRhc2soV2ViUGFnZVByb3h5JiBw
YWdlLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllcikKICAgICBtX3Rhc2tzLnJlbW92ZShpdGVyYXRv
cik7CiB9CiAKK3ZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlcjo6dGFza0NvbXBsZXRlZChXZWJVUkxT
Y2hlbWVUYXNrJiB0YXNrKQoreworICAgIGF1dG8gdGFrZW5UYXNrID0gbV90YXNrcy50YWtlKHRh
c2suaWRlbnRpZmllcigpKTsKKyAgICBBU1NFUlRfVU5VU0VEKHRha2VuVGFzaywgdGFrZW5UYXNr
LT5wdHIoKSA9PSAmdGFzayk7CisKKyAgICBwbGF0Zm9ybVRhc2tDb21wbGV0ZWQodGFzayk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
VVJMU2NoZW1lSGFuZGxlci5oCmluZGV4IDcxNzlkY2JjMWFiOTE1M2VkYzhjODUzMGFlOTE1NzMx
MTEzZDMxYzUuLjQ4M2ZlOTA4NzY1YzcxY2Y3YmIyZDU3M2IwZjQ1Nzg5MTY5YzEzNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKQEAgLTQ3LDYg
KzQ3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydFRhc2soV2ViUGFnZVByb3h5JiwgdWlu
dDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwog
ICAgIHZvaWQgc3RvcFRhc2soV2ViUGFnZVByb3h5JiwgdWludDY0X3QgdGFza0lkZW50aWZpZXIp
OworICAgIHZvaWQgdGFza0NvbXBsZXRlZChXZWJVUkxTY2hlbWVUYXNrJik7CiAKIHByb3RlY3Rl
ZDoKICAgICBXZWJVUkxTY2hlbWVIYW5kbGVyKCk7CkBAIC01NCw2ICs1NSw3IEBAIHByb3RlY3Rl
ZDoKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtU3RhcnRUYXNrKFdlYlBhZ2VQ
cm94eSYsIFdlYlVSTFNjaGVtZVRhc2smKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3Jt
U3RvcFRhc2soV2ViUGFnZVByb3h5JiwgV2ViVVJMU2NoZW1lVGFzayYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcGxhdGZvcm1UYXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRhc2smKSA9IDA7CiAK
ICAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViVVJMU2NoZW1lVGFzay5jcHAKaW5kZXggMzczOTQ4NTg0NWE3ZjljNDZlMTEzMTgyZmI1OWZl
NDMzODhlOTcwZC4uNWFiOTY5MWIwMTE5NjU1OGQzYTM1ZGI5MTQ1OGIyZmY4ZWE3MmQ4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKQEAgLTExNSw2
ICsxMTUsOCBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRlKGNvbnN0IFJlc291
cmNlRXJyb3ImIGVycm9yKSAtPiBFeGNlcHRpb25UeXBlCiAKICAgICBtX2NvbXBsZXRlZCA9IHRy
dWU7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlk
Q29tcGxldGUobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwg
ZXJyb3IpKTsKKyAgICBtX3VybFNjaGVtZUhhbmRsZXItPnRhc2tDb21wbGV0ZWQoKnRoaXMpOwor
CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316647</attachid>
            <date>2017-07-28 10:52:14 -0700</date>
            <delta_ts>2017-07-28 13:03:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174895-20170728105213.patch</filename>
            <type>text/plain</type>
            <size>17473</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5OTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIwNThkZjNiZTEyOTgzMTE1
ZTAyZWYzOGYxOGJlMzZkZmM5Mzg5NzYuLmQ1ZDgyNWU4NjljZTc0Nzk1ZTE5OWE3ZDI5MTA2YzJi
ODY0M2FiNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTctMDctMjggIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdLVVJMU2NoZW1lVGFza0ltcGwg
aW5zdGFuY2VzIGFyZSBiZWluZyBhYmFuZG9uZWQgKGV4Y2VwdCBpZiB0aGUgdGFzayBpcyBzdG9w
cGVkKS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzNTY4Mjc2PiBhbmQgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDg5NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIHdhcyBhIGxvdCBnb2luZyBvbiBoZXJl
OgorICAgICAgICAtIFRoZXJlIHdhcyBhbiB1bmJyb2tlbiBjeWNsZSBiZXR3ZWVuIFVSTFNjaGVt
ZUhhbmRsZXJzIGFuZCBVUkxTY2hlbWVUYXNrcyAKKyAgICAgICAgLSBXS1VSTFNjaGVtZVRhc2tz
IHdlcmUgbm90IGRlc3Ryb3lpbmcgdGhlaXIgQVBJOjpVUkxTY2hlbWVUYXNrIGltcGxlbWVudGF0
aW9uIG9iamVjdAorICAgICAgICAtIFdoZW4gYSBXS1dlYlZpZXcgd2FzIGRlYWxsb2MnZWQsIGl0
IHdhcyBub3QgY2xlYW5pbmcgdXAgdGhlIHJlbGF0ZWQgVUlQcm9jZXNzIHRhc2tzCisgICAgICAg
IC0gSWYgdGhlIE5ldHdvcmtpbmdQcm9jZXNzIGNyYXNoZWQsIFdlYlByb2Nlc3NlcyB3ZXJlIG5v
dCBjbGVhbmluZyB1cCB0aGVpciB0YXNrcworICAgICAgICAgIChhbmQgdGhlcmVmb3JlIHRoZSBV
SVByb2Nlc3MgdGFza3Mgd2VyZSBhbHNvIG5vdCBnZXR0aW5nIGNsZWFuZWQgdXApCisgICAgICAg
IC0gSWYgYSBXZWJQcm9jZXNzIGNyYXNoZWQsIHRoZSBVSVByb2Nlc3Mgd2FzIG5vdCBjbGVhbmlu
ZyB1cCB0aGUgcmVsYXRlZCB0YXNrcworICAgICAgICAKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbToKKyAgICAgICAgKC1bV0tVUkxTY2hlbWVUYXNrSW1w
bCBkZWFsbG9jXSk6IENhbGwgQVBJOjp+VVJMU2NoZW1lVGFzaworICAgICAgICAKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlckNvY29hOjpwbGF0Zm9ybVRhc2tDb21wbGV0ZWQpOiBD
bGVhciBvdXQgdGhlIEFQSSB3cmFwcGVyIG1hcAorICAgICAgICAgIHNvIHRoZSB3cmFwcGVyIGFu
ZCBpbXBsZW1lbnRhdGlvbiBvYmplY3QgY2FuIGJvdGggYmUgZGVzdHJveWVkLgorICAgICAgICAK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpjbG9zZSk6IENhbGwgc3RvcEFsbFVSTFNjaGVtZVRhc2tzLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRUZXJtaW5hdGUpOiBDYWxsIHN0b3BB
bGxVUkxTY2hlbWVUYXNrcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdG9wQWxs
VVJMU2NoZW1lVGFza3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFydFRhc2spOgorICAgICAgICAo
V2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdG9wQWxsVGFza3NGb3JQYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6c3RvcFRhc2spOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyOjp0YXNrQ29tcGxldGVkKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oOgorICAgICAgICAKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViVVJMU2NoZW1lVGFzay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRh
c2s6OldlYlVSTFNjaGVtZVRhc2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVU
YXNrLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OnBhZ2VJRCk6IFN0b3Jl
IHNlcGFyYXRlIGZyb20gdGhlIFdlYlBhZ2Ugc28gbWVzc2FnaW5nCisgICAgICAgICAgaXMgcG9z
c2libGUgZXZlbiBhZnRlciB0aGUgV2ViUGFnZSogaGFzIGJlZW4gY2xlYXJlZC4KKyAgICAgICAg
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzdG9wQWxsVVJMU2NoZW1lVGFza3MpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJV
UkxTY2hlbWVIYW5kbGVyUHJveHk6OnN0b3BBbGxUYXNrcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVSTFNjaGVtZUhhbmRsZXJQcm94eTo6dGFza0RpZENvbXBsZXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVVJMU2NoZW1lSGFuZGxlclByb3h5Ojp0YXNrRGlkU3RvcExvYWRpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6OnJlbW92ZVRhc2spOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuaDoKKyAgICAg
ICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6bmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKTogQ2FsbCBzdG9w
QWxsVVJMU2NoZW1lVGFza3MgCisgICAgICAgICAgZm9yIGVhY2ggV2ViUGFnZS4KKwogMjAxNy0w
Ny0yNyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUGFydCAy
IG9mOiBSZW5hbWUgRGF0YWJhc2VQcm9jZXNzIHRvIFN0b3JhZ2VQcm9jZXNzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2subW0KaW5k
ZXggZjBkZWVhNTU4ZGIxNzM5MjVhYjZmZDdjMjU3NzQ4ZGE4OTVhY2E2YS4uNTFmODE3OTU5MTVk
MjA4MTNkMTc2NTY5YmViYzY5NDkyNjQ0OTI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLm1tCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpZiBXS19BUElfRU5BQkxFRAogCisjaW1wb3J0ICJXZWJVUkxTY2hlbWVIYW5kbGVyLmgi
CiAjaW1wb3J0ICJXZWJVUkxTY2hlbWVUYXNrLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNl
RXJyb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgpAQCAtNjEsNiAr
NjIsMTMgQEAgc3RhdGljIHZvaWQgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShXZWJLaXQ6Oldl
YlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGUgZXgKIAogQGltcGxlbWVudGF0aW9uIFdLVVJM
U2NoZW1lVGFza0ltcGwKIAorLSAodm9pZClkZWFsbG9jCit7CisgICAgX3VybFNjaGVtZVRhc2st
PkFQSTo6VVJMU2NoZW1lVGFzazo6flVSTFNjaGVtZVRhc2soKTsKKworICAgIFtzdXBlciBkZWFs
bG9jXTsKK30KKwogLSAoTlNVUkxSZXF1ZXN0ICopcmVxdWVzdAogewogICAgIHJldHVybiBfdXJs
U2NoZW1lVGFzay0+dGFzaygpLnJlcXVlc3QoKS5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQ
Qm9keSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJVUkxT
Y2hlbWVIYW5kbGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlVS
TFNjaGVtZUhhbmRsZXJDb2NvYS5oCmluZGV4IDI1OTBhZjMzMDEzNGEwZmMwYzc5ODA3YjI1NTkw
NGI2NzA0ZTljODIuLmNhOGY1YjcyYjQ0NDBlYTA5M2IyMjMzNWNmNDZjYzJlNWIwYTM5ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNjaGVtZUhhbmRs
ZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNjaGVt
ZUhhbmRsZXJDb2NvYS5oCkBAIC00Nyw2ICs0Nyw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBs
YXRmb3JtU3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYsIFdlYlVSTFNjaGVtZVRhc2smKSBmaW5hbDsK
ICAgICB2b2lkIHBsYXRmb3JtU3RvcFRhc2soV2ViUGFnZVByb3h5JiwgV2ViVVJMU2NoZW1lVGFz
ayYpIGZpbmFsOworICAgIHZvaWQgcGxhdGZvcm1UYXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRh
c2smKSBmaW5hbDsKIAogICAgIFJldGFpblB0cjxpZCA8V0tVUkxTY2hlbWVIYW5kbGVyPj4gbV9h
cGlIYW5kbGVyOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZjxBUEk6OlVSTFNjaGVtZVRhc2s+
PiBtX2FwaVRhc2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tCmluZGV4IGI4NGNjNjQyZDNkZDM4MGM3MTk2
YmI1YzgxYWE4OGQ0NjIxOTcxOGMuLjE0MzljM2U1Y2VkZWRhNDc0NDkyNGZjNjJiMTMwNmFjYmVh
N2QxZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNj
aGVtZUhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EubW0KQEAgLTc2LDQgKzc2LDEzIEBAIHZvaWQgV2ViVVJM
U2NoZW1lSGFuZGxlckNvY29hOjpwbGF0Zm9ybVN0b3BUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwg
V2ViVVJMU2NoZW1lCiAjZW5kaWYKIH0KIAordm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2E6
OnBsYXRmb3JtVGFza0NvbXBsZXRlZChXZWJVUkxTY2hlbWVUYXNrJiB0YXNrKQoreworI2lmIFdL
X0FQSV9FTkFCTEVECisgICAgbV9hcGlUYXNrcy5yZW1vdmUodGFzay5pZGVudGlmaWVyKCkpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odGFzayk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAz
MzE1MmZlMWE5ZjYwYzJlMzhkZjM0ZjVjMmU1YzdiZDhhYzA5NjhiLi45NmJjZTY2OGUyYzhiNGE1
MGIyMGNlYTEzNTU1ZTUyMDkyNTk3NjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTc4MSw2ICs3ODEsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2Uo
KQogICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCBob2xkIGEgcHJvY2VzcyBhc3NlcnRpb24gYWZ0
ZXIgZ2V0dGluZyBjbG9zZWQuCiAgICAgbV9hY3Rpdml0eVRva2VuID0gbnVsbHB0cjsKICNlbmRp
ZgorCisgICAgc3RvcEFsbFVSTFNjaGVtZVRhc2tzKCk7CiB9CiAKIGJvb2wgV2ViUGFnZVByb3h5
Ojp0cnlDbG9zZSgpCkBAIC01MzU1LDYgKzUzNTcsMTggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBy
b2Nlc3NEaWRUZXJtaW5hdGUoUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKICAgICAg
ICAgaWYgKGF1dG8qIGF1dG9tYXRpb25TZXNzaW9uID0gcHJvY2VzcygpLnByb2Nlc3NQb29sKCku
YXV0b21hdGlvblNlc3Npb24oKSkKICAgICAgICAgICAgIGF1dG9tYXRpb25TZXNzaW9uLT50ZXJt
aW5hdGUoKTsKICAgICB9CisKKyAgICBzdG9wQWxsVVJMU2NoZW1lVGFza3MoKTsKK30KKwordm9p
ZCBXZWJQYWdlUHJveHk6OnN0b3BBbGxVUkxTY2hlbWVUYXNrcygpCit7CisgICAgSGFzaFNldDxX
ZWJVUkxTY2hlbWVIYW5kbGVyKj4gaGFuZGxlcnM7CisgICAgZm9yIChhdXRvJiBoYW5kbGVyIDog
bV91cmxTY2hlbWVIYW5kbGVyc0J5U2NoZW1lLnZhbHVlcygpKQorICAgICAgICBoYW5kbGVycy5h
ZGQoaGFuZGxlci5wdHIoKSk7CisKKyAgICBmb3IgKGF1dG8qIGhhbmRsZXIgOiBoYW5kbGVycykK
KyAgICAgICAgaGFuZGxlci0+c3RvcEFsbFRhc2tzRm9yUGFnZSgqdGhpcyk7CiB9CiAKICNpZiBQ
TEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGJk
ZThjMjY5ZDcyNWFkYjI0NmYyYTY5MjUwNWE4Y2U2YjM3ZWVkNDIuLjI0YzNhZjhiMTY2ZDUxMjYw
ZDY1YmE2NjhlMzJmYzg2ZTFlN2MzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC0xNjIzLDYgKzE2MjMsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB2aWV3SXNC
ZWNvbWluZ1Zpc2libGUoKTsKIAorICAgIHZvaWQgc3RvcEFsbFVSTFNjaGVtZVRhc2tzKCk7CisK
ICAgICBQYWdlQ2xpZW50JiBtX3BhZ2VDbGllbnQ7CiAgICAgUmVmPEFQSTo6UGFnZUNvbmZpZ3Vy
YXRpb24+IG1fY29uZmlndXJhdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJVUkxTY2hlbWVIYW5kbGVyLmNwcAppbmRleCA0OTA4NTViYThmZmU1MDA0MmNhZjgxZjM2NmNj
Mjc0NzM4Njg0NGE3Li40YTgyMzNlZjExMTNjODZlYzg4OGVkOGI1MGRkYzBmNGE4ZDBhZTVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcApA
QCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlVSTFNj
aGVtZUhhbmRsZXIuaCIKIAorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldl
YlVSTFNjaGVtZVRhc2suaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01MywyMCAr
NTQsNTQgQEAgdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFydFRhc2soV2ViUGFnZVByb3h5
JiBwYWdlLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwKICAgICBhdXRvIHJlc3VsdCA9IG1fdGFz
a3MuYWRkKHRhc2tJZGVudGlmaWVyLCBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBh
Z2UsIHRhc2tJZGVudGlmaWVyLCByZXF1ZXN0KSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0Vu
dHJ5KTsKIAorICAgIGF1dG8gcGFnZUVudHJ5ID0gbV90YXNrc0J5UGFnZUlkZW50aWZpZXIuYWRk
KHBhZ2UucGFnZUlEKCksIEhhc2hTZXQ8dWludDY0X3Q+KCkpOworICAgIEFTU0VSVCghcGFnZUVu
dHJ5Lml0ZXJhdG9yLT52YWx1ZS5jb250YWlucyh0YXNrSWRlbnRpZmllcikpOworICAgIHBhZ2VF
bnRyeS5pdGVyYXRvci0+dmFsdWUuYWRkKHRhc2tJZGVudGlmaWVyKTsKKwogICAgIHBsYXRmb3Jt
U3RhcnRUYXNrKHBhZ2UsIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwogfQogCit2b2lkIFdlYlVS
TFNjaGVtZUhhbmRsZXI6OnN0b3BBbGxUYXNrc0ZvclBhZ2UoV2ViUGFnZVByb3h5JiBwYWdlKQor
eworICAgIGF1dG8gaXRlcmF0b3IgPSBtX3Rhc2tzQnlQYWdlSWRlbnRpZmllci5maW5kKHBhZ2Uu
cGFnZUlEKCkpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3Rhc2tzQnlQYWdlSWRlbnRpZmllci5l
bmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgdGFza3NCeVBhZ2UgPSBpdGVyYXRv
ci0+dmFsdWU7CisgICAgd2hpbGUgKCF0YXNrc0J5UGFnZS5pc0VtcHR5KCkpCisgICAgICAgIHN0
b3BUYXNrKHBhZ2UsICp0YXNrc0J5UGFnZS5iZWdpbigpKTsKKworICAgIEFTU0VSVChtX3Rhc2tz
QnlQYWdlSWRlbnRpZmllci5maW5kKHBhZ2UucGFnZUlEKCkpID09IG1fdGFza3NCeVBhZ2VJZGVu
dGlmaWVyLmVuZCgpKTsKK30KKwogdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdG9wVGFzayhX
ZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyKQogewogICAgIGF1dG8g
aXRlcmF0b3IgPSBtX3Rhc2tzLmZpbmQodGFza0lkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRv
ciA9PSBtX3Rhc2tzLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpdGVyYXRvci0+dmFs
dWUtPnN0b3AoKTsKKyAgICBhdXRvIHBhZ2VJdGVyYXRvciA9IG1fdGFza3NCeVBhZ2VJZGVudGlm
aWVyLmZpbmQocGFnZS5wYWdlSUQoKSk7CisgICAgQVNTRVJUKHBhZ2VJdGVyYXRvciAhPSBtX3Rh
c2tzQnlQYWdlSWRlbnRpZmllci5lbmQoKSk7CisgICAgQVNTRVJUKHBhZ2VJdGVyYXRvci0+dmFs
dWUuY29udGFpbnModGFza0lkZW50aWZpZXIpKTsKKyAgICBwYWdlSXRlcmF0b3ItPnZhbHVlLnJl
bW92ZSh0YXNrSWRlbnRpZmllcik7CiAKKyAgICBpdGVyYXRvci0+dmFsdWUtPnN0b3AoKTsKICAg
ICBwbGF0Zm9ybVN0b3BUYXNrKHBhZ2UsIGl0ZXJhdG9yLT52YWx1ZSk7CiAKICAgICBtX3Rhc2tz
LnJlbW92ZShpdGVyYXRvcik7CisgICAgaWYgKHBhZ2VJdGVyYXRvci0+dmFsdWUuaXNFbXB0eSgp
KQorICAgICAgICBtX3Rhc2tzQnlQYWdlSWRlbnRpZmllci5yZW1vdmUocGFnZUl0ZXJhdG9yKTsK
K30KKwordm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyOjp0YXNrQ29tcGxldGVkKFdlYlVSTFNjaGVt
ZVRhc2smIHRhc2spCit7CisgICAgYXV0byB0YWtlblRhc2sgPSBtX3Rhc2tzLnRha2UodGFzay5p
ZGVudGlmaWVyKCkpOworICAgIEFTU0VSVF9VTlVTRUQodGFrZW5UYXNrLCB0YWtlblRhc2stPnB0
cigpID09ICZ0YXNrKTsKKworICAgIEFTU0VSVChtX3Rhc2tzQnlQYWdlSWRlbnRpZmllci5nZXQo
dGFzay5wYWdlSUQoKSkuY29udGFpbnModGFzay5pZGVudGlmaWVyKCkpKTsKKyAgICBtX3Rhc2tz
QnlQYWdlSWRlbnRpZmllci5nZXQodGFzay5wYWdlSUQoKSkucmVtb3ZlKHRhc2suaWRlbnRpZmll
cigpKTsKKworICAgIHBsYXRmb3JtVGFza0NvbXBsZXRlZCh0YXNrKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxT
Y2hlbWVIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5k
bGVyLmgKaW5kZXggNzE3OWRjYmMxYWI5MTUzZWRjOGM4NTMwYWU5MTU3MzExMTNkMzFjNS4uNmI3
NjQwNWQzMGMyODU2MzNmNGJjNTVhMWU5OTNjYzA3OTk3NjEwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAj
aW5jbHVkZSAiV2ViVVJMU2NoZW1lVGFzay5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Cisj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApAQCAtNDcsNiArNDgsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdm9pZCBzdG9wVGFzayhXZWJQYWdl
UHJveHkmLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllcik7CisgICAgdm9pZCBzdG9wQWxsVGFza3NG
b3JQYWdlKFdlYlBhZ2VQcm94eSYpOworICAgIHZvaWQgdGFza0NvbXBsZXRlZChXZWJVUkxTY2hl
bWVUYXNrJik7CiAKIHByb3RlY3RlZDoKICAgICBXZWJVUkxTY2hlbWVIYW5kbGVyKCk7CkBAIC01
NCwxMCArNTcsMTIgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGxh
dGZvcm1TdGFydFRhc2soV2ViUGFnZVByb3h5JiwgV2ViVVJMU2NoZW1lVGFzayYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hl
bWVUYXNrJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybVRhc2tDb21wbGV0ZWQoV2Vi
VVJMU2NoZW1lVGFzayYpID0gMDsKIAogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKIAogICAg
IEhhc2hNYXA8dWludDY0X3QsIFJlZjxXZWJVUkxTY2hlbWVUYXNrPj4gbV90YXNrczsKKyAgICBI
YXNoTWFwPHVpbnQ2NF90LCBIYXNoU2V0PHVpbnQ2NF90Pj4gbV90YXNrc0J5UGFnZUlkZW50aWZp
ZXI7CiAKIH07IC8vIGNsYXNzIFdlYlVSTFNjaGVtZUhhbmRsZXIKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcAppbmRleCAzNzM5NDg1ODQ1YTdmOWM0NmUx
MTMxODJmYjU5ZmU0MzM4OGU5NzBkLi4zMDRlZWY4YjU4MmY0YWM0NTYwMTE2NWY0MDVlYWI5YTUz
YWFjMWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVU
YXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNw
cApAQCAtNDQsNiArNDQsNyBAQCBXZWJVUkxTY2hlbWVUYXNrOjpXZWJVUkxTY2hlbWVUYXNrKFdl
YlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcAogICAgIDogbV91cmxT
Y2hlbWVIYW5kbGVyKGhhbmRsZXIpCiAgICAgLCBtX3BhZ2UoJnBhZ2UpCiAgICAgLCBtX2lkZW50
aWZpZXIocmVzb3VyY2VJZGVudGlmaWVyKQorICAgICwgbV9wYWdlSWRlbnRpZmllcihwYWdlLnBh
Z2VJRCgpKQogICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCiB7CiB9CkBAIC0xMTUsNiArMTE2LDgg
QEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikgLT4gRXhjZXB0aW9uVHlwZQogCiAgICAgbV9jb21wbGV0ZWQgPSB0cnVlOwogICAg
IG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRl
KG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIGVycm9yKSk7
CisgICAgbV91cmxTY2hlbWVIYW5kbGVyLT50YXNrQ29tcGxldGVkKCp0aGlzKTsKKwogICAgIHJl
dHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJVUkxTY2hlbWVUYXNrLmgKaW5kZXggYzZmOTJjODRlODUyYjhkNzBlOWFkOTQ2ODEyNTgxY2Vl
NWUyNDU5Zi4uNjkxYjQzOTY5YzM4YzA5NjRjNDc1ZDdkZDA4OWNhOWZlOTRhNzQyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaApAQCAtNDYsNiArNDYsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJVUkxTY2hlbWVUYXNrPiBjcmVhdGUoV2ViVVJM
U2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIHVpbnQ2NF90IHBhZ2VJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFnZUlkZW50aWZpZXI7IH0KIAogICAgIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdDsgfQogCkBA
IC03MSw2ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXI+IG1f
dXJsU2NoZW1lSGFuZGxlcjsKICAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKICAgICB1aW50NjRf
dCBtX2lkZW50aWZpZXI7CisgICAgdWludDY0X3QgbV9wYWdlSWRlbnRpZmllcjsKICAgICBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIGJvb2wgbV9zdG9wcGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fcmVzcG9uc2VTZW50IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjIwMjViODUzNTA0Mjg4ZGI4
YmZlOTBkYmE1ZWI4OWFiYzEyNTMyZS4uYTkxMTUxY2I1Mjc4YzU2ZmZkM2NhZTMwYjcyYTg3Nzc5
NGYxMzQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTU5MDgsNiArNTkwOCwxNiBAQCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkqIFdlYlBh
Z2U6OnVybFNjaGVtZUhhbmRsZXJGb3JTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbQogICAgIHJl
dHVybiBtX3NjaGVtZVRvVVJMU2NoZW1lSGFuZGxlclByb3h5TWFwLmdldChzY2hlbWUpOwogfQog
Cit2b2lkIFdlYlBhZ2U6OnN0b3BBbGxVUkxTY2hlbWVUYXNrcygpCit7CisgICAgSGFzaFNldDxX
ZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkqPiBoYW5kbGVyczsKKyAgICBmb3IgKGF1dG8mIGhhbmRs
ZXIgOiBtX3NjaGVtZVRvVVJMU2NoZW1lSGFuZGxlclByb3h5TWFwLnZhbHVlcygpKQorICAgICAg
ICBoYW5kbGVycy5hZGQoaGFuZGxlci5nZXQoKSk7CisKKyAgICBmb3IgKGF1dG8qIGhhbmRsZXIg
OiBoYW5kbGVycykKKyAgICAgICAgaGFuZGxlci0+c3RvcEFsbFRhc2tzKCk7Cit9CisKIHZvaWQg
V2ViUGFnZTo6cmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBhdXRvIHNjaGVtZVJlc3VsdCA9IG1f
c2NoZW1lVG9VUkxTY2hlbWVIYW5kbGVyUHJveHlNYXAuYWRkKHNjaGVtZSwgV2ViVVJMU2NoZW1l
SGFuZGxlclByb3h5OjpjcmVhdGUoKnRoaXMsIGhhbmRsZXJJZGVudGlmaWVyKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggM2U1OTE5NjgxZWEwMmM2
M2Q2NWRhNjdhYWIzMjgzNDQ4YmQ3Y2FlOS4uZTA1Y2U3ZTQ0YzVhNWNmNDZmMDFmMTI2ZDZhNDhi
Y2FiYTk2YTMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtOTc5LDYgKzk3OSw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV2ViVVJMU2NoZW1l
SGFuZGxlclByb3h5KiB1cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKGNvbnN0IFN0cmluZyYpOwor
ICAgIHZvaWQgc3RvcEFsbFVSTFNjaGVtZVRhc2tzKCk7CisKICAgICBzdGQ6Om9wdGlvbmFsPGRv
dWJsZT4gY3B1TGltaXQoKSBjb25zdCB7IHJldHVybiBtX2NwdUxpbWl0OyB9CiAKICAgICBzdGF0
aWMgUGx1Z2luVmlldyogcGx1Z2luVmlld0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5k
bGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2No
ZW1lSGFuZGxlclByb3h5LmNwcAppbmRleCA1YWZiNzU0Mjc4YjQ5M2VjMjllYTkyMWNiOTA2YTgw
OGI5MTg2MzdhLi5jZGI0M2ZiOWVhZjA0ZDY4ZTU4NWEwM2QyMjMzOTk3MDUxNGMzZWFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5k
bGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVS
TFNjaGVtZUhhbmRsZXJQcm94eS5jcHAKQEAgLTU1LDYgKzU1LDEyIEBAIHZvaWQgV2ViVVJMU2No
ZW1lSGFuZGxlclByb3h5OjpzdGFydE5ld1Rhc2soUmVzb3VyY2VMb2FkZXImIGxvYWRlcikKICAg
ICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5zdGFydExvYWRpbmcoKTsKIH0KIAordm9pZCBXZWJV
UkxTY2hlbWVIYW5kbGVyUHJveHk6OnN0b3BBbGxUYXNrcygpCit7CisgICAgd2hpbGUgKCFtX3Rh
c2tzLmlzRW1wdHkoKSkKKyAgICAgICAgbV90YXNrcy5iZWdpbigpLT52YWx1ZS0+c3RvcExvYWRp
bmcoKTsKK30KKwogdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6OnRhc2tEaWRQZXJmb3Jt
UmVkaXJlY3Rpb24odWludDY0X3QgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiBuZXdS
ZXF1ZXN0KQogewogICAgIGF1dG8qIHRhc2sgPSBtX3Rhc2tzLmdldCh0YXNrSWRlbnRpZmllcik7
CkBAIC04NCwxOCArOTAsMjUgQEAgdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6OnRhc2tE
aWRSZWNlaXZlRGF0YSh1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgc2l6ZV8KIAogdm9pZCBXZWJV
UkxTY2hlbWVIYW5kbGVyUHJveHk6OnRhc2tEaWRDb21wbGV0ZSh1aW50NjRfdCB0YXNrSWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0gICAgYXV0byB0YXNrID0gbV90
YXNrcy50YWtlKHRhc2tJZGVudGlmaWVyKTsKLSAgICBpZiAoIXRhc2spCi0gICAgICAgIHJldHVy
bjsKLQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkucmVt
b3ZlVVJMU2NoZW1lVGFza1Byb3h5KCp0YXNrKTsKLSAgICB0YXNrLT5kaWRDb21wbGV0ZShlcnJv
cik7CisgICAgaWYgKGF1dG8gdGFzayA9IHJlbW92ZVRhc2sodGFza0lkZW50aWZpZXIpKQorICAg
ICAgICB0YXNrLT5kaWRDb21wbGV0ZShlcnJvcik7CiB9CiAKIHZvaWQgV2ViVVJMU2NoZW1lSGFu
ZGxlclByb3h5Ojp0YXNrRGlkU3RvcExvYWRpbmcoV2ViVVJMU2NoZW1lVGFza1Byb3h5JiB0YXNr
KQogewogICAgIEFTU0VSVChtX3Rhc2tzLmdldCh0YXNrLmlkZW50aWZpZXIoKSkgPT0gJnRhc2sp
OwotICAgIG1fdGFza3MucmVtb3ZlKHRhc2suaWRlbnRpZmllcigpKTsKKyAgICByZW1vdmVUYXNr
KHRhc2suaWRlbnRpZmllcigpKTsKK30KKworUmVmUHRyPFdlYlVSTFNjaGVtZVRhc2tQcm94eT4g
V2ViVVJMU2NoZW1lSGFuZGxlclByb3h5OjpyZW1vdmVUYXNrKHVpbnQ2NF90IGlkZW50aWZpZXIp
Cit7CisgICAgYXV0byB0YXNrID0gbV90YXNrcy50YWtlKGlkZW50aWZpZXIpOworICAgIGlmICgh
dGFzaykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJMb2FkZXJTdHJhdGVneSgpLnJlbW92ZVVSTFNjaGVtZVRhc2tQcm94eSgqdGFzayk7
CisKKyAgICByZXR1cm4gdGFzazsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhh
bmRsZXJQcm94eS5oCmluZGV4IDMxMzg2NzZmYThlZjA2MWIxODE2YjEzMjE4Y2JhMjg0MWU2OTRm
ODEuLjc0MjQxNWM3NzFhZjg2ZDlhZWY4YzQzMzk2MDVjMThlNWE1NmEyMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhh
bmRsZXJQcm94eS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB+V2ViVVJMU2NoZW1l
SGFuZGxlclByb3h5KCk7CiAKICAgICB2b2lkIHN0YXJ0TmV3VGFzayhXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlciYpOworICAgIHZvaWQgc3RvcEFsbFRhc2tzKCk7CiAKICAgICB1aW50NjRfdCBpZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgV2ViUGFnZSYgcGFn
ZSgpIHsgcmV0dXJuIG1fd2ViUGFnZTsgfQpAQCAtNjEsNiArNjIsOSBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5KFdlYlBhZ2UmLCB1aW50NjRfdCBp
ZGVudGlmaWVyKTsKKworICAgIFJlZlB0cjxXZWJVUkxTY2hlbWVUYXNrUHJveHk+IHJlbW92ZVRh
c2sodWludDY0X3QgaWRlbnRpZmllcik7CisKICAgICBXZWJQYWdlJiBtX3dlYlBhZ2U7CiAgICAg
dWludDY0X3QgbV9pZGVudGlmaWVyIHsgMCB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggZDQwMGE3MTkzNGJjYmZiNjFkYmQ1ZTdiYjQzZTdlMTZlMWU5NWY1
NS4uNmJhYjU0NWYxZGQ1Mjc2NTlmNmExZmUxZTM0MzMyOWYzMmUwM2I5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTEyOSw2ICsxMTI5LDkgQEAgdm9pZCBX
ZWJQcm9jZXNzOjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKiBjb25uZWMKIAogICAgIG1fd2ViTG9hZGVyU3RyYXRlZ3kubmV0d29ya1Byb2Nl
c3NDcmFzaGVkKCk7CiAgICAgV2ViU29ja2V0U3RyZWFtOjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQo
KTsKKworICAgIGZvciAoYXV0byYgcGFnZSA6IG1fcGFnZU1hcC52YWx1ZXMoKSkKKyAgICAgICAg
cGFnZS0+c3RvcEFsbFVSTFNjaGVtZVRhc2tzKCk7CiB9CiAKIFdlYkxvYWRlclN0cmF0ZWd5JiBX
ZWJQcm9jZXNzOjp3ZWJMb2FkZXJTdHJhdGVneSgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>